From 636807e68a85a978473764d171ed0c7cc36f9be6 Mon Sep 17 00:00:00 2001 From: lbavoil Date: Thu, 15 Mar 2018 11:08:34 +0100 Subject: HBAO+ 4.0.0.23740451 --- samples/D3D11/bin/AntTweakBar.dll | Bin 611328 -> 0 bytes samples/D3D11/bin/AntTweakBar64.dll | Bin 720384 -> 0 bytes .../AntTweakBar/1.16/include/AntTweakBar.h | 386 - .../AntTweakBar/1.16/lib/win32/AntTweakBar.lib | Bin 15270 -> 0 bytes .../AntTweakBar/1.16/lib/win64/AntTweakBar64.lib | Bin 14582 -> 0 bytes samples/D3D11/media/directx.ico | Bin 25214 -> 0 bytes samples/D3D11/src/BinMeshReader.h | 81 - samples/D3D11/src/DeviceManager.cpp | 608 - samples/D3D11/src/DeviceManager.h | 150 - samples/D3D11/src/GPUTimers.cpp | 133 - samples/D3D11/src/GPUTimers.h | 68 - samples/D3D11/src/InputDumpReader.h | 539 - samples/D3D11/src/InputDumpWriter.h | 265 - samples/D3D11/src/SSAO11.cpp | 601 - samples/D3D11/src/SSAO11.manifest | 22 - samples/D3D11/src/SSAO11.rc | 72 - samples/D3D11/src/SSAO11_2015.sln | 22 - samples/D3D11/src/SSAO11_2015.vcxproj | 447 - samples/D3D11/src/SSAO11_2015.vcxproj.filters | 25 - samples/D3D11/src/SceneRTs.h | 196 - samples/D3D11/src/SibenikIndices.bin | Bin 939564 -> 0 bytes samples/D3D11/src/SibenikVertices.bin | Bin 1189884 -> 0 bytes samples/D3D11/src/shaders/bin/CopyColorPS.h | 168 - .../D3D11/src/shaders/bin/FullScreenTriangleVS.h | 168 - samples/D3D11/src/shaders/bin/GeometryPS.h | 315 - samples/D3D11/src/shaders/bin/GeometryVS.h | 293 - samples/D3D11/src/shaders/compile.bat | 15 - samples/D3D11/src/shaders/src/Scene3D.hlsl | 122 - samples/D3D12/external/imgui/.travis.yml | 17 - samples/D3D12/external/imgui/README.md | 152 - .../directx12_example/directx12_example.vcxproj | 156 - .../directx12_example.vcxproj.filters | 42 - .../examples/directx12_example/imgui_impl_dx12.cpp | 826 - .../examples/directx12_example/imgui_impl_dx12.h | 23 - .../imgui/examples/directx12_example/main.cpp | 225 - .../external/imgui/extra_fonts/Cousine-Regular.ttf | Bin 43912 -> 0 bytes .../D3D12/external/imgui/extra_fonts/DroidSans.ttf | Bin 190044 -> 0 bytes .../external/imgui/extra_fonts/Karla-Regular.ttf | Bin 16848 -> 0 bytes .../external/imgui/extra_fonts/ProggyClean.ttf | Bin 41208 -> 0 bytes .../external/imgui/extra_fonts/ProggyTiny.ttf | Bin 35656 -> 0 bytes .../D3D12/external/imgui/extra_fonts/README.txt | 116 - .../imgui/extra_fonts/binary_to_compressed_c.cpp | 364 - samples/D3D12/external/imgui/imconfig.h | 56 - samples/D3D12/external/imgui/imgui.cpp | 8920 -- samples/D3D12/external/imgui/imgui.h | 1250 - samples/D3D12/external/imgui/imgui_demo.cpp | 2048 - samples/D3D12/external/imgui/imgui_draw.cpp | 2108 - samples/D3D12/external/imgui/imgui_internal.h | 664 - samples/D3D12/external/imgui/stb_rect_pack.h | 547 - samples/D3D12/external/imgui/stb_textedit.h | 1261 - samples/D3D12/external/imgui/stb_truetype.h | 3221 - samples/D3D12/src/BinMeshReader.h | 60 - samples/D3D12/src/SSAO12_2015.sln | 28 - samples/D3D12/src/SibenikIndices.bin | Bin 939564 -> 0 bytes samples/D3D12/src/SibenikVertices.bin | Bin 1189884 -> 0 bytes samples/D3D12/src/Viewer.cpp | 1205 - samples/D3D12/src/Viewer.hlsl | 40 - samples/D3D12/src/Viewer.vcxproj | 229 - samples/D3D12/src/Viewer.vcxproj.filters | 57 - samples/D3D12/src/WaveFrontReader.h | 541 - samples/D3D12/src/d3dx12.h | 1508 - samples/D3D12/src/d3dx12p.h | 1590 - samples/dual_layer/D3D11/media/Meshes/cube.obj | 28 + .../dual_layer/D3D11/media/Meshes/shaderBall.obj | 101517 ++++++++++++++++++ samples/dual_layer/D3D11/media/StaticMesh.hlsl | 35 + samples/dual_layer/D3D11/media/directx.ico | Bin 0 -> 25214 bytes samples/dual_layer/D3D11/src/Camera.cpp | 55 + samples/dual_layer/D3D11/src/Camera.h | 42 + samples/dual_layer/D3D11/src/D3D11Mesh.cpp | 50 + samples/dual_layer/D3D11/src/D3D11Mesh.h | 29 + samples/dual_layer/D3D11/src/DeviceManager11.cpp | 771 + samples/dual_layer/D3D11/src/DeviceManager11.h | 174 + samples/dual_layer/D3D11/src/GPUTimers.cpp | 133 + samples/dual_layer/D3D11/src/GPUTimers.h | 68 + samples/dual_layer/D3D11/src/HBAOSample.cpp | 134 + samples/dual_layer/D3D11/src/HBAOSample.h | 38 + samples/dual_layer/D3D11/src/HBAOSampleD3D11.cpp | 206 + samples/dual_layer/D3D11/src/HBAOSampleD3D11.h | 49 + samples/dual_layer/D3D11/src/Main.cpp | 20 + samples/dual_layer/D3D11/src/Mesh.cpp | 42 + samples/dual_layer/D3D11/src/Mesh.h | 31 + samples/dual_layer/D3D11/src/MeshRenderer.cpp | 80 + samples/dual_layer/D3D11/src/MeshRenderer.h | 40 + samples/dual_layer/D3D11/src/SSAO11.rc | 72 + samples/dual_layer/D3D11/src/SSAO11_2015.vcxproj | 466 + .../D3D11/src/SSAO11_2015.vcxproj.filters | 120 + samples/dual_layer/D3D11/src/Scene.cpp | 43 + samples/dual_layer/D3D11/src/Scene.h | 41 + samples/dual_layer/D3D11/src/SceneRenderer.cpp | 37 + samples/dual_layer/D3D11/src/SceneRenderer.h | 29 + samples/dual_layer/D3D11/src/imgui/imconfig.h | 56 + samples/dual_layer/D3D11/src/imgui/imgui.cpp | 8920 ++ samples/dual_layer/D3D11/src/imgui/imgui.h | 1250 + samples/dual_layer/D3D11/src/imgui/imgui_demo.cpp | 2048 + samples/dual_layer/D3D11/src/imgui/imgui_draw.cpp | 2108 + .../dual_layer/D3D11/src/imgui/imgui_impl_dx11.cpp | 498 + .../dual_layer/D3D11/src/imgui/imgui_impl_dx11.h | 20 + .../dual_layer/D3D11/src/imgui/imgui_internal.h | 664 + samples/dual_layer/D3D11/src/imgui/stb_rect_pack.h | 547 + samples/dual_layer/D3D11/src/imgui/stb_textedit.h | 1261 + samples/dual_layer/D3D11/src/imgui/stb_truetype.h | 3221 + samples/dual_layer/D3D11/src/tiny_obj_loader.h | 1578 + samples/dual_layer/D3D12/media/Meshes/cube.obj | 28 + .../dual_layer/D3D12/media/Meshes/shaderBall.obj | 101517 ++++++++++++++++++ samples/dual_layer/D3D12/media/StaticMesh.hlsl | 35 + samples/dual_layer/D3D12/src/Camera.cpp | 55 + samples/dual_layer/D3D12/src/Camera.h | 42 + samples/dual_layer/D3D12/src/D3D12Mesh.cpp | 49 + samples/dual_layer/D3D12/src/D3D12Mesh.h | 27 + samples/dual_layer/D3D12/src/DeviceManager12.cpp | 774 + samples/dual_layer/D3D12/src/DeviceManager12.h | 198 + samples/dual_layer/D3D12/src/GPUTimers.cpp | 132 + samples/dual_layer/D3D12/src/GPUTimers.h | 68 + samples/dual_layer/D3D12/src/HBAOSample.cpp | 143 + samples/dual_layer/D3D12/src/HBAOSample.h | 38 + samples/dual_layer/D3D12/src/HBAOSampleD3D12.cpp | 278 + samples/dual_layer/D3D12/src/HBAOSampleD3D12.h | 55 + samples/dual_layer/D3D12/src/Main.cpp | 20 + samples/dual_layer/D3D12/src/Mesh.cpp | 49 + samples/dual_layer/D3D12/src/Mesh.h | 31 + samples/dual_layer/D3D12/src/MeshRenderer.cpp | 90 + samples/dual_layer/D3D12/src/MeshRenderer.h | 30 + samples/dual_layer/D3D12/src/SSAO12_2015.vcxproj | 240 + .../D3D12/src/SSAO12_2015.vcxproj.filters | 117 + samples/dual_layer/D3D12/src/Scene.cpp | 37 + samples/dual_layer/D3D12/src/Scene.h | 41 + samples/dual_layer/D3D12/src/SceneRenderer.cpp | 37 + samples/dual_layer/D3D12/src/SceneRenderer.h | 29 + samples/dual_layer/D3D12/src/d3dx12.h | 1508 + samples/dual_layer/D3D12/src/imgui/imconfig.h | 56 + samples/dual_layer/D3D12/src/imgui/imgui.cpp | 8920 ++ samples/dual_layer/D3D12/src/imgui/imgui.h | 1250 + samples/dual_layer/D3D12/src/imgui/imgui_demo.cpp | 2048 + samples/dual_layer/D3D12/src/imgui/imgui_draw.cpp | 2108 + .../dual_layer/D3D12/src/imgui/imgui_impl_dx12.cpp | 826 + .../dual_layer/D3D12/src/imgui/imgui_impl_dx12.h | 23 + .../dual_layer/D3D12/src/imgui/imgui_internal.h | 664 + samples/dual_layer/D3D12/src/imgui/stb_rect_pack.h | 547 + samples/dual_layer/D3D12/src/imgui/stb_textedit.h | 1261 + samples/dual_layer/D3D12/src/imgui/stb_truetype.h | 3221 + samples/dual_layer/D3D12/src/tiny_obj_loader.h | 1578 + 141 files changed, 254691 insertions(+), 31950 deletions(-) delete mode 100644 samples/D3D11/bin/AntTweakBar.dll delete mode 100644 samples/D3D11/bin/AntTweakBar64.dll delete mode 100644 samples/D3D11/external/AntTweakBar/1.16/include/AntTweakBar.h delete mode 100644 samples/D3D11/external/AntTweakBar/1.16/lib/win32/AntTweakBar.lib delete mode 100644 samples/D3D11/external/AntTweakBar/1.16/lib/win64/AntTweakBar64.lib delete mode 100644 samples/D3D11/media/directx.ico delete mode 100644 samples/D3D11/src/BinMeshReader.h delete mode 100644 samples/D3D11/src/DeviceManager.cpp delete mode 100644 samples/D3D11/src/DeviceManager.h delete mode 100644 samples/D3D11/src/GPUTimers.cpp delete mode 100644 samples/D3D11/src/GPUTimers.h delete mode 100644 samples/D3D11/src/InputDumpReader.h delete mode 100644 samples/D3D11/src/InputDumpWriter.h delete mode 100644 samples/D3D11/src/SSAO11.cpp delete mode 100644 samples/D3D11/src/SSAO11.manifest delete mode 100644 samples/D3D11/src/SSAO11.rc delete mode 100644 samples/D3D11/src/SSAO11_2015.sln delete mode 100644 samples/D3D11/src/SSAO11_2015.vcxproj delete mode 100644 samples/D3D11/src/SSAO11_2015.vcxproj.filters delete mode 100644 samples/D3D11/src/SceneRTs.h delete mode 100644 samples/D3D11/src/SibenikIndices.bin delete mode 100644 samples/D3D11/src/SibenikVertices.bin delete mode 100644 samples/D3D11/src/shaders/bin/CopyColorPS.h delete mode 100644 samples/D3D11/src/shaders/bin/FullScreenTriangleVS.h delete mode 100644 samples/D3D11/src/shaders/bin/GeometryPS.h delete mode 100644 samples/D3D11/src/shaders/bin/GeometryVS.h delete mode 100644 samples/D3D11/src/shaders/compile.bat delete mode 100644 samples/D3D11/src/shaders/src/Scene3D.hlsl delete mode 100644 samples/D3D12/external/imgui/.travis.yml delete mode 100644 samples/D3D12/external/imgui/README.md delete mode 100644 samples/D3D12/external/imgui/examples/directx12_example/directx12_example.vcxproj delete mode 100644 samples/D3D12/external/imgui/examples/directx12_example/directx12_example.vcxproj.filters delete mode 100644 samples/D3D12/external/imgui/examples/directx12_example/imgui_impl_dx12.cpp delete mode 100644 samples/D3D12/external/imgui/examples/directx12_example/imgui_impl_dx12.h delete mode 100644 samples/D3D12/external/imgui/examples/directx12_example/main.cpp delete mode 100644 samples/D3D12/external/imgui/extra_fonts/Cousine-Regular.ttf delete mode 100644 samples/D3D12/external/imgui/extra_fonts/DroidSans.ttf delete mode 100644 samples/D3D12/external/imgui/extra_fonts/Karla-Regular.ttf delete mode 100644 samples/D3D12/external/imgui/extra_fonts/ProggyClean.ttf delete mode 100644 samples/D3D12/external/imgui/extra_fonts/ProggyTiny.ttf delete mode 100644 samples/D3D12/external/imgui/extra_fonts/README.txt delete mode 100644 samples/D3D12/external/imgui/extra_fonts/binary_to_compressed_c.cpp delete mode 100644 samples/D3D12/external/imgui/imconfig.h delete mode 100644 samples/D3D12/external/imgui/imgui.cpp delete mode 100644 samples/D3D12/external/imgui/imgui.h delete mode 100644 samples/D3D12/external/imgui/imgui_demo.cpp delete mode 100644 samples/D3D12/external/imgui/imgui_draw.cpp delete mode 100644 samples/D3D12/external/imgui/imgui_internal.h delete mode 100644 samples/D3D12/external/imgui/stb_rect_pack.h delete mode 100644 samples/D3D12/external/imgui/stb_textedit.h delete mode 100644 samples/D3D12/external/imgui/stb_truetype.h delete mode 100644 samples/D3D12/src/BinMeshReader.h delete mode 100644 samples/D3D12/src/SSAO12_2015.sln delete mode 100644 samples/D3D12/src/SibenikIndices.bin delete mode 100644 samples/D3D12/src/SibenikVertices.bin delete mode 100644 samples/D3D12/src/Viewer.cpp delete mode 100644 samples/D3D12/src/Viewer.hlsl delete mode 100644 samples/D3D12/src/Viewer.vcxproj delete mode 100644 samples/D3D12/src/Viewer.vcxproj.filters delete mode 100644 samples/D3D12/src/WaveFrontReader.h delete mode 100644 samples/D3D12/src/d3dx12.h delete mode 100644 samples/D3D12/src/d3dx12p.h create mode 100644 samples/dual_layer/D3D11/media/Meshes/cube.obj create mode 100644 samples/dual_layer/D3D11/media/Meshes/shaderBall.obj create mode 100644 samples/dual_layer/D3D11/media/StaticMesh.hlsl create mode 100644 samples/dual_layer/D3D11/media/directx.ico create mode 100644 samples/dual_layer/D3D11/src/Camera.cpp create mode 100644 samples/dual_layer/D3D11/src/Camera.h create mode 100644 samples/dual_layer/D3D11/src/D3D11Mesh.cpp create mode 100644 samples/dual_layer/D3D11/src/D3D11Mesh.h create mode 100644 samples/dual_layer/D3D11/src/DeviceManager11.cpp create mode 100644 samples/dual_layer/D3D11/src/DeviceManager11.h create mode 100644 samples/dual_layer/D3D11/src/GPUTimers.cpp create mode 100644 samples/dual_layer/D3D11/src/GPUTimers.h create mode 100644 samples/dual_layer/D3D11/src/HBAOSample.cpp create mode 100644 samples/dual_layer/D3D11/src/HBAOSample.h create mode 100644 samples/dual_layer/D3D11/src/HBAOSampleD3D11.cpp create mode 100644 samples/dual_layer/D3D11/src/HBAOSampleD3D11.h create mode 100644 samples/dual_layer/D3D11/src/Main.cpp create mode 100644 samples/dual_layer/D3D11/src/Mesh.cpp create mode 100644 samples/dual_layer/D3D11/src/Mesh.h create mode 100644 samples/dual_layer/D3D11/src/MeshRenderer.cpp create mode 100644 samples/dual_layer/D3D11/src/MeshRenderer.h create mode 100644 samples/dual_layer/D3D11/src/SSAO11.rc create mode 100644 samples/dual_layer/D3D11/src/SSAO11_2015.vcxproj create mode 100644 samples/dual_layer/D3D11/src/SSAO11_2015.vcxproj.filters create mode 100644 samples/dual_layer/D3D11/src/Scene.cpp create mode 100644 samples/dual_layer/D3D11/src/Scene.h create mode 100644 samples/dual_layer/D3D11/src/SceneRenderer.cpp create mode 100644 samples/dual_layer/D3D11/src/SceneRenderer.h create mode 100644 samples/dual_layer/D3D11/src/imgui/imconfig.h create mode 100644 samples/dual_layer/D3D11/src/imgui/imgui.cpp create mode 100644 samples/dual_layer/D3D11/src/imgui/imgui.h create mode 100644 samples/dual_layer/D3D11/src/imgui/imgui_demo.cpp create mode 100644 samples/dual_layer/D3D11/src/imgui/imgui_draw.cpp create mode 100644 samples/dual_layer/D3D11/src/imgui/imgui_impl_dx11.cpp create mode 100644 samples/dual_layer/D3D11/src/imgui/imgui_impl_dx11.h create mode 100644 samples/dual_layer/D3D11/src/imgui/imgui_internal.h create mode 100644 samples/dual_layer/D3D11/src/imgui/stb_rect_pack.h create mode 100644 samples/dual_layer/D3D11/src/imgui/stb_textedit.h create mode 100644 samples/dual_layer/D3D11/src/imgui/stb_truetype.h create mode 100644 samples/dual_layer/D3D11/src/tiny_obj_loader.h create mode 100644 samples/dual_layer/D3D12/media/Meshes/cube.obj create mode 100644 samples/dual_layer/D3D12/media/Meshes/shaderBall.obj create mode 100644 samples/dual_layer/D3D12/media/StaticMesh.hlsl create mode 100644 samples/dual_layer/D3D12/src/Camera.cpp create mode 100644 samples/dual_layer/D3D12/src/Camera.h create mode 100644 samples/dual_layer/D3D12/src/D3D12Mesh.cpp create mode 100644 samples/dual_layer/D3D12/src/D3D12Mesh.h create mode 100644 samples/dual_layer/D3D12/src/DeviceManager12.cpp create mode 100644 samples/dual_layer/D3D12/src/DeviceManager12.h create mode 100644 samples/dual_layer/D3D12/src/GPUTimers.cpp create mode 100644 samples/dual_layer/D3D12/src/GPUTimers.h create mode 100644 samples/dual_layer/D3D12/src/HBAOSample.cpp create mode 100644 samples/dual_layer/D3D12/src/HBAOSample.h create mode 100644 samples/dual_layer/D3D12/src/HBAOSampleD3D12.cpp create mode 100644 samples/dual_layer/D3D12/src/HBAOSampleD3D12.h create mode 100644 samples/dual_layer/D3D12/src/Main.cpp create mode 100644 samples/dual_layer/D3D12/src/Mesh.cpp create mode 100644 samples/dual_layer/D3D12/src/Mesh.h create mode 100644 samples/dual_layer/D3D12/src/MeshRenderer.cpp create mode 100644 samples/dual_layer/D3D12/src/MeshRenderer.h create mode 100644 samples/dual_layer/D3D12/src/SSAO12_2015.vcxproj create mode 100644 samples/dual_layer/D3D12/src/SSAO12_2015.vcxproj.filters create mode 100644 samples/dual_layer/D3D12/src/Scene.cpp create mode 100644 samples/dual_layer/D3D12/src/Scene.h create mode 100644 samples/dual_layer/D3D12/src/SceneRenderer.cpp create mode 100644 samples/dual_layer/D3D12/src/SceneRenderer.h create mode 100644 samples/dual_layer/D3D12/src/d3dx12.h create mode 100644 samples/dual_layer/D3D12/src/imgui/imconfig.h create mode 100644 samples/dual_layer/D3D12/src/imgui/imgui.cpp create mode 100644 samples/dual_layer/D3D12/src/imgui/imgui.h create mode 100644 samples/dual_layer/D3D12/src/imgui/imgui_demo.cpp create mode 100644 samples/dual_layer/D3D12/src/imgui/imgui_draw.cpp create mode 100644 samples/dual_layer/D3D12/src/imgui/imgui_impl_dx12.cpp create mode 100644 samples/dual_layer/D3D12/src/imgui/imgui_impl_dx12.h create mode 100644 samples/dual_layer/D3D12/src/imgui/imgui_internal.h create mode 100644 samples/dual_layer/D3D12/src/imgui/stb_rect_pack.h create mode 100644 samples/dual_layer/D3D12/src/imgui/stb_textedit.h create mode 100644 samples/dual_layer/D3D12/src/imgui/stb_truetype.h create mode 100644 samples/dual_layer/D3D12/src/tiny_obj_loader.h (limited to 'samples') diff --git a/samples/D3D11/bin/AntTweakBar.dll b/samples/D3D11/bin/AntTweakBar.dll deleted file mode 100644 index caf019c..0000000 Binary files a/samples/D3D11/bin/AntTweakBar.dll and /dev/null differ diff --git a/samples/D3D11/bin/AntTweakBar64.dll b/samples/D3D11/bin/AntTweakBar64.dll deleted file mode 100644 index 16f079c..0000000 Binary files a/samples/D3D11/bin/AntTweakBar64.dll and /dev/null differ diff --git a/samples/D3D11/external/AntTweakBar/1.16/include/AntTweakBar.h b/samples/D3D11/external/AntTweakBar/1.16/include/AntTweakBar.h deleted file mode 100644 index cc503a2..0000000 --- a/samples/D3D11/external/AntTweakBar/1.16/include/AntTweakBar.h +++ /dev/null @@ -1,386 +0,0 @@ -// ---------------------------------------------------------------------------- -// -// @file AntTweakBar.h -// -// @brief AntTweakBar is a light and intuitive graphical user interface -// that can be readily integrated into OpenGL and DirectX -// applications in order to interactively tweak parameters. -// -// @author Philippe Decaudin -// -// @doc http://anttweakbar.sourceforge.net/doc -// -// @license This file is part of the AntTweakBar library. -// AntTweakBar is a free software released under the zlib license. -// For conditions of distribution and use, see License.txt -// -// ---------------------------------------------------------------------------- - - -#if !defined TW_INCLUDED -#define TW_INCLUDED - -#include - -#define TW_VERSION 116 // Version Mmm : M=Major mm=minor (e.g., 102 is version 1.02) - - -#ifdef __cplusplus -# if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable: 4995 4530) -# include -# pragma warning(pop) -# else -# include -# endif - extern "C" { -#endif // __cplusplus - - -// ---------------------------------------------------------------------------- -// OS specific definitions -// ---------------------------------------------------------------------------- - -#if (defined(_WIN32) || defined(_WIN64)) && !defined(TW_STATIC) -# define TW_CALL __stdcall -# define TW_CDECL_CALL __cdecl -# define TW_EXPORT_API __declspec(dllexport) -# define TW_IMPORT_API __declspec(dllimport) -#else -# define TW_CALL -# define TW_CDECL_CALL -# define TW_EXPORT_API -# define TW_IMPORT_API -#endif - -#if defined TW_EXPORTS -# define TW_API TW_EXPORT_API -#elif defined TW_STATIC -# define TW_API -# if defined(_MSC_VER) && !defined(TW_NO_LIB_PRAGMA) -# ifdef _WIN64 -# pragma comment(lib, "AntTweakBarStatic64") -# else -# pragma comment(lib, "AntTweakBarStatic") -# endif -# endif -#else -# define TW_API TW_IMPORT_API -# if defined(_MSC_VER) && !defined(TW_NO_LIB_PRAGMA) -# ifdef _WIN64 -# pragma comment(lib, "AntTweakBar64") -# else -# pragma comment(lib, "AntTweakBar") -# endif -# endif -#endif - - -// ---------------------------------------------------------------------------- -// Bar functions and definitions -// ---------------------------------------------------------------------------- - -typedef struct CTwBar TwBar; // structure CTwBar is not exposed. - -TW_API TwBar * TW_CALL TwNewBar(const char *barName); -TW_API int TW_CALL TwDeleteBar(TwBar *bar); -TW_API int TW_CALL TwDeleteAllBars(); -TW_API int TW_CALL TwSetTopBar(const TwBar *bar); -TW_API TwBar * TW_CALL TwGetTopBar(); -TW_API int TW_CALL TwSetBottomBar(const TwBar *bar); -TW_API TwBar * TW_CALL TwGetBottomBar(); -TW_API const char * TW_CALL TwGetBarName(const TwBar *bar); -TW_API int TW_CALL TwGetBarCount(); -TW_API TwBar * TW_CALL TwGetBarByIndex(int barIndex); -TW_API TwBar * TW_CALL TwGetBarByName(const char *barName); -TW_API int TW_CALL TwRefreshBar(TwBar *bar); - -// ---------------------------------------------------------------------------- -// Var functions and definitions -// ---------------------------------------------------------------------------- - -typedef enum ETwType -{ - TW_TYPE_UNDEF = 0, -#ifdef __cplusplus - TW_TYPE_BOOLCPP = 1, -#endif // __cplusplus - TW_TYPE_BOOL8 = 2, - TW_TYPE_BOOL16, - TW_TYPE_BOOL32, - TW_TYPE_CHAR, - TW_TYPE_INT8, - TW_TYPE_UINT8, - TW_TYPE_INT16, - TW_TYPE_UINT16, - TW_TYPE_INT32, - TW_TYPE_UINT32, - TW_TYPE_FLOAT, - TW_TYPE_DOUBLE, - TW_TYPE_COLOR32, // 32 bits color. Order is RGBA if API is OpenGL or Direct3D10, and inversed if API is Direct3D9 (can be modified by defining 'colorOrder=...', see doc) - TW_TYPE_COLOR3F, // 3 floats color. Order is RGB. - TW_TYPE_COLOR4F, // 4 floats color. Order is RGBA. - TW_TYPE_CDSTRING, // Null-terminated C Dynamic String (pointer to an array of char dynamically allocated with malloc/realloc/strdup) -#ifdef __cplusplus -# if defined(_MSC_VER) && (_MSC_VER == 1600) - TW_TYPE_STDSTRING = (0x2ffe0000+sizeof(std::string)), // VS2010 C++ STL string (std::string) -# else - TW_TYPE_STDSTRING = (0x2fff0000+sizeof(std::string)), // C++ STL string (std::string) -# endif -#endif // __cplusplus - TW_TYPE_QUAT4F = TW_TYPE_CDSTRING+2, // 4 floats encoding a quaternion {qx,qy,qz,qs} - TW_TYPE_QUAT4D, // 4 doubles encoding a quaternion {qx,qy,qz,qs} - TW_TYPE_DIR3F, // direction vector represented by 3 floats - TW_TYPE_DIR3D // direction vector represented by 3 doubles -} TwType; -#define TW_TYPE_CSSTRING(n) ((TwType)(0x30000000+((n)&0xfffffff))) // Null-terminated C Static String of size n (defined as char[n], with n<2^28) - -typedef void (TW_CALL * TwSetVarCallback)(const void *value, void *clientData); -typedef void (TW_CALL * TwGetVarCallback)(void *value, void *clientData); -typedef void (TW_CALL * TwButtonCallback)(void *clientData); - -TW_API int TW_CALL TwAddVarRW(TwBar *bar, const char *name, TwType type, void *var, const char *def); -TW_API int TW_CALL TwAddVarRO(TwBar *bar, const char *name, TwType type, const void *var, const char *def); -TW_API int TW_CALL TwAddVarCB(TwBar *bar, const char *name, TwType type, TwSetVarCallback setCallback, TwGetVarCallback getCallback, void *clientData, const char *def); -TW_API int TW_CALL TwAddButton(TwBar *bar, const char *name, TwButtonCallback callback, void *clientData, const char *def); -TW_API int TW_CALL TwAddSeparator(TwBar *bar, const char *name, const char *def); -TW_API int TW_CALL TwRemoveVar(TwBar *bar, const char *name); -TW_API int TW_CALL TwRemoveAllVars(TwBar *bar); - -typedef struct CTwEnumVal -{ - int Value; - const char * Label; -} TwEnumVal; -typedef struct CTwStructMember -{ - const char * Name; - TwType Type; - size_t Offset; - const char * DefString; -} TwStructMember; -typedef void (TW_CALL * TwSummaryCallback)(char *summaryString, size_t summaryMaxLength, const void *value, void *clientData); - -TW_API int TW_CALL TwDefine(const char *def); -TW_API TwType TW_CALL TwDefineEnum(const char *name, const TwEnumVal *enumValues, unsigned int nbValues); -TW_API TwType TW_CALL TwDefineEnumFromString(const char *name, const char *enumString); -TW_API TwType TW_CALL TwDefineStruct(const char *name, const TwStructMember *structMembers, unsigned int nbMembers, size_t structSize, TwSummaryCallback summaryCallback, void *summaryClientData); - -typedef void (TW_CALL * TwCopyCDStringToClient)(char **destinationClientStringPtr, const char *sourceString); -TW_API void TW_CALL TwCopyCDStringToClientFunc(TwCopyCDStringToClient copyCDStringFunc); -TW_API void TW_CALL TwCopyCDStringToLibrary(char **destinationLibraryStringPtr, const char *sourceClientString); -#ifdef __cplusplus -typedef void (TW_CALL * TwCopyStdStringToClient)(std::string& destinationClientString, const std::string& sourceString); -TW_API void TW_CALL TwCopyStdStringToClientFunc(TwCopyStdStringToClient copyStdStringToClientFunc); -TW_API void TW_CALL TwCopyStdStringToLibrary(std::string& destinationLibraryString, const std::string& sourceClientString); -#endif // __cplusplus - -typedef enum ETwParamValueType -{ - TW_PARAM_INT32, - TW_PARAM_FLOAT, - TW_PARAM_DOUBLE, - TW_PARAM_CSTRING // Null-terminated array of char (ie, c-string) -} TwParamValueType; -TW_API int TW_CALL TwGetParam(TwBar *bar, const char *varName, const char *paramName, TwParamValueType paramValueType, unsigned int outValueMaxCount, void *outValues); -TW_API int TW_CALL TwSetParam(TwBar *bar, const char *varName, const char *paramName, TwParamValueType paramValueType, unsigned int inValueCount, const void *inValues); - - -// ---------------------------------------------------------------------------- -// Text drawing functions -// ---------------------------------------------------------------------------- - -TW_API void TW_CALL TwBeginText(int _X, int _Y, int _Sep, int _BgWidth); -TW_API void TW_CALL TwAddTextLine(const char *_TextLine, unsigned int _Color, unsigned int _BgColor); -TW_API void TW_CALL TwEndText(); - -// ---------------------------------------------------------------------------- -// Management functions and definitions -// ---------------------------------------------------------------------------- - -typedef enum ETwGraphAPI -{ - TW_OPENGL = 1, - TW_DIRECT3D9 = 2, - TW_DIRECT3D10 = 3, - TW_DIRECT3D11 = 4, - TW_OPENGL_CORE = 5 -} TwGraphAPI; - -TW_API int TW_CALL TwInit(TwGraphAPI graphAPI, void *device); -TW_API int TW_CALL TwTerminate(); - -TW_API int TW_CALL TwDraw(); -TW_API int TW_CALL TwWindowSize(int width, int height); - -TW_API int TW_CALL TwSetCurrentWindow(int windowID); // multi-windows support -TW_API int TW_CALL TwGetCurrentWindow(); -TW_API int TW_CALL TwWindowExists(int windowID); - -typedef enum ETwKeyModifier -{ - TW_KMOD_NONE = 0x0000, // same codes as SDL keysym.mod - TW_KMOD_SHIFT = 0x0003, - TW_KMOD_CTRL = 0x00c0, - TW_KMOD_ALT = 0x0100, - TW_KMOD_META = 0x0c00 -} TwKeyModifier; -typedef enum EKeySpecial -{ - TW_KEY_BACKSPACE = '\b', - TW_KEY_TAB = '\t', - TW_KEY_CLEAR = 0x0c, - TW_KEY_RETURN = '\r', - TW_KEY_PAUSE = 0x13, - TW_KEY_ESCAPE = 0x1b, - TW_KEY_SPACE = ' ', - TW_KEY_DELETE = 0x7f, - TW_KEY_UP = 273, // same codes and order as SDL 1.2 keysym.sym - TW_KEY_DOWN, - TW_KEY_RIGHT, - TW_KEY_LEFT, - TW_KEY_INSERT, - TW_KEY_HOME, - TW_KEY_END, - TW_KEY_PAGE_UP, - TW_KEY_PAGE_DOWN, - TW_KEY_F1, - TW_KEY_F2, - TW_KEY_F3, - TW_KEY_F4, - TW_KEY_F5, - TW_KEY_F6, - TW_KEY_F7, - TW_KEY_F8, - TW_KEY_F9, - TW_KEY_F10, - TW_KEY_F11, - TW_KEY_F12, - TW_KEY_F13, - TW_KEY_F14, - TW_KEY_F15, - TW_KEY_LAST -} TwKeySpecial; - -TW_API int TW_CALL TwKeyPressed(int key, int modifiers); -TW_API int TW_CALL TwKeyTest(int key, int modifiers); - -typedef enum ETwMouseAction -{ - TW_MOUSE_RELEASED, - TW_MOUSE_PRESSED -} TwMouseAction; -typedef enum ETwMouseButtonID -{ - TW_MOUSE_LEFT = 1, // same code as SDL_BUTTON_LEFT - TW_MOUSE_MIDDLE = 2, // same code as SDL_BUTTON_MIDDLE - TW_MOUSE_RIGHT = 3 // same code as SDL_BUTTON_RIGHT -} TwMouseButtonID; - -TW_API int TW_CALL TwMouseButton(TwMouseAction action, TwMouseButtonID button); -TW_API int TW_CALL TwMouseMotion(int mouseX, int mouseY); -TW_API int TW_CALL TwMouseWheel(int pos); - -TW_API const char * TW_CALL TwGetLastError(); -typedef void (TW_CALL * TwErrorHandler)(const char *errorMessage); -TW_API void TW_CALL TwHandleErrors(TwErrorHandler errorHandler); - - -// ---------------------------------------------------------------------------- -// Helper functions to translate events from some common window management -// frameworks to AntTweakBar. -// They call TwKeyPressed, TwMouse* and TwWindowSize for you (implemented in -// files TwEventWin.c TwEventSDL*.c TwEventGLFW.c TwEventGLUT.c) -// ---------------------------------------------------------------------------- - -// For Windows message proc -#ifndef _W64 // Microsoft specific (detection of 64 bits portability issues) -# define _W64 -#endif // _W64 -#ifdef _WIN64 - TW_API int TW_CALL TwEventWin(void *wnd, unsigned int msg, unsigned __int64 _W64 wParam, __int64 _W64 lParam); -#else - TW_API int TW_CALL TwEventWin(void *wnd, unsigned int msg, unsigned int _W64 wParam, int _W64 lParam); -#endif -#define TwEventWin32 TwEventWin // For compatibility with AntTweakBar versions prior to 1.11 - -// For libSDL event loop -TW_API int TW_CALL TwEventSDL(const void *sdlEvent, unsigned char sdlMajorVersion, unsigned char sdlMinorVersion); - -// For GLFW event callbacks -// You should define GLFW_CDECL before including AntTweakBar.h if your version of GLFW uses cdecl calling convensions -#ifdef GLFW_CDECL - TW_API int TW_CDECL_CALL TwEventMouseButtonGLFWcdecl(int glfwButton, int glfwAction); - TW_API int TW_CDECL_CALL TwEventKeyGLFWcdecl(int glfwKey, int glfwAction); - TW_API int TW_CDECL_CALL TwEventCharGLFWcdecl(int glfwChar, int glfwAction); - TW_API int TW_CDECL_CALL TwEventMousePosGLFWcdecl(int mouseX, int mouseY); - TW_API int TW_CDECL_CALL TwEventMouseWheelGLFWcdecl(int wheelPos); -# define TwEventMouseButtonGLFW TwEventMouseButtonGLFWcdecl -# define TwEventKeyGLFW TwEventKeyGLFWcdecl -# define TwEventCharGLFW TwEventCharGLFWcdecl -# define TwEventMousePosGLFW TwEventMousePosGLFWcdecl -# define TwEventMouseWheelGLFW TwEventMouseWheelGLFWcdecl -#else - TW_API int TW_CALL TwEventMouseButtonGLFW(int glfwButton, int glfwAction); - TW_API int TW_CALL TwEventKeyGLFW(int glfwKey, int glfwAction); - TW_API int TW_CALL TwEventCharGLFW(int glfwChar, int glfwAction); -# define TwEventMousePosGLFW TwMouseMotion -# define TwEventMouseWheelGLFW TwMouseWheel -#endif - -// For GLUT event callbacks (Windows calling convention for GLUT callbacks is cdecl) -#if defined(_WIN32) || defined(_WIN64) -# define TW_GLUT_CALL TW_CDECL_CALL -#else -# define TW_GLUT_CALL -#endif -TW_API int TW_GLUT_CALL TwEventMouseButtonGLUT(int glutButton, int glutState, int mouseX, int mouseY); -TW_API int TW_GLUT_CALL TwEventMouseMotionGLUT(int mouseX, int mouseY); -TW_API int TW_GLUT_CALL TwEventKeyboardGLUT(unsigned char glutKey, int mouseX, int mouseY); -TW_API int TW_GLUT_CALL TwEventSpecialGLUT(int glutKey, int mouseX, int mouseY); -TW_API int TW_CALL TwGLUTModifiersFunc(int (TW_CALL *glutGetModifiersFunc)(void)); -typedef void (TW_GLUT_CALL *GLUTmousebuttonfun)(int glutButton, int glutState, int mouseX, int mouseY); -typedef void (TW_GLUT_CALL *GLUTmousemotionfun)(int mouseX, int mouseY); -typedef void (TW_GLUT_CALL *GLUTkeyboardfun)(unsigned char glutKey, int mouseX, int mouseY); -typedef void (TW_GLUT_CALL *GLUTspecialfun)(int glutKey, int mouseX, int mouseY); - -// For SFML event loop -TW_API int TW_CALL TwEventSFML(const void *sfmlEvent, unsigned char sfmlMajorVersion, unsigned char sfmlMinorVersion); - -// For X11 event loop -#if defined(_UNIX) - TW_API int TW_CDECL_CALL TwEventX11(void *xevent); -#endif - -// ---------------------------------------------------------------------------- -// Make sure the types have the right sizes -// ---------------------------------------------------------------------------- - -#define TW_COMPILE_TIME_ASSERT(name, x) typedef int TW_DUMMY_ ## name[(x) * 2 - 1] - -TW_COMPILE_TIME_ASSERT(TW_CHAR, sizeof(char) == 1); -TW_COMPILE_TIME_ASSERT(TW_SHORT, sizeof(short) == 2); -TW_COMPILE_TIME_ASSERT(TW_INT, sizeof(int) == 4); -TW_COMPILE_TIME_ASSERT(TW_FLOAT, sizeof(float) == 4); -TW_COMPILE_TIME_ASSERT(TW_DOUBLE, sizeof(double) == 8); - -// Check pointer size on Windows -#if !defined(_WIN64) && defined(_WIN32) - // If the following assert failed, the platform is not 32-bit and _WIN64 is not defined. - // When targetting 64-bit Windows platform, _WIN64 must be defined. - TW_COMPILE_TIME_ASSERT(TW_PTR32, sizeof(void*) == 4); -#elif defined(_WIN64) - // If the following assert failed, _WIN64 is defined but the targeted platform is not 64-bit. - TW_COMPILE_TIME_ASSERT(TW_PTR64, sizeof(void*) == 8); -#endif - -// --------------------------------------------------------------------------- - - -#ifdef __cplusplus - } // extern "C" -#endif // __cplusplus - - -#endif // !defined TW_INCLUDED diff --git a/samples/D3D11/external/AntTweakBar/1.16/lib/win32/AntTweakBar.lib b/samples/D3D11/external/AntTweakBar/1.16/lib/win32/AntTweakBar.lib deleted file mode 100644 index 7f39ff1..0000000 Binary files a/samples/D3D11/external/AntTweakBar/1.16/lib/win32/AntTweakBar.lib and /dev/null differ diff --git a/samples/D3D11/external/AntTweakBar/1.16/lib/win64/AntTweakBar64.lib b/samples/D3D11/external/AntTweakBar/1.16/lib/win64/AntTweakBar64.lib deleted file mode 100644 index 4426437..0000000 Binary files a/samples/D3D11/external/AntTweakBar/1.16/lib/win64/AntTweakBar64.lib and /dev/null differ diff --git a/samples/D3D11/media/directx.ico b/samples/D3D11/media/directx.ico deleted file mode 100644 index eda6490..0000000 Binary files a/samples/D3D11/media/directx.ico and /dev/null differ diff --git a/samples/D3D11/src/BinMeshReader.h b/samples/D3D11/src/BinMeshReader.h deleted file mode 100644 index 32ebd26..0000000 --- a/samples/D3D11/src/BinMeshReader.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -* Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. -* -* NVIDIA CORPORATION and its licensors retain all intellectual property -* and proprietary rights in and to this software, related documentation -* and any modifications thereto. Any use, reproduction, disclosure or -* distribution of this software and related documentation without an express -* license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ - -#pragma once -#include - -struct Vertex -{ - DirectX::XMFLOAT3 position; - DirectX::XMFLOAT3 normal; - DirectX::XMFLOAT2 textureCoordinate; -}; - -struct Mesh -{ - std::vector vertices; - std::vector indices; -}; - -FILE *OpenFile(std::string Path, const char* Mode) -{ - FILE *fp = NULL; - if (fopen_s(&fp, Path.c_str(), Mode) || !fp) - { - MessageBox(NULL, L"Failed to open data file", L"Error", MB_OK | MB_ICONERROR); - exit(1); - } - return fp; -} - -bool LoadVertices(const char* FileName, std::vector& OutVertices) -{ - FILE* fp = OpenFile(FileName, "rb"); - - fseek(fp, 0L, SEEK_END); - UINT FileSize = ftell(fp); - fseek(fp, 0L, SEEK_SET); - - UINT NumVertices = FileSize / sizeof(Vertex::position); - - for (UINT Idx = 0; Idx < NumVertices; ++Idx) - { - Vertex vertex; - fread(&vertex.position, sizeof(DirectX::XMFLOAT3), 1, fp); - vertex.normal.x = vertex.normal.y = 0; - vertex.normal.z = 1.0; - vertex.textureCoordinate.x = vertex.textureCoordinate.y = 0; - OutVertices.push_back(vertex); - } - - fclose(fp); - return true; -} - -bool LoadIndices(const char* FileName, std::vector& OutIndices) -{ - FILE* fp = OpenFile(FileName, "rb"); - - fseek(fp, 0L, SEEK_END); - UINT FileSize = ftell(fp); - fseek(fp, 0L, SEEK_SET); - - UINT NumIndices = FileSize / sizeof(uint32_t); - - for (UINT Idx = 0; Idx < NumIndices; ++Idx) - { - uint32_t index; - fread(&index, sizeof(index), 1, fp); - OutIndices.push_back(index); - } - - fclose(fp); - return true; -} diff --git a/samples/D3D11/src/DeviceManager.cpp b/samples/D3D11/src/DeviceManager.cpp deleted file mode 100644 index 55bf233..0000000 --- a/samples/D3D11/src/DeviceManager.cpp +++ /dev/null @@ -1,608 +0,0 @@ -// TAGRELEASE: PUBLIC - -#include "DeviceManager.h" -#include -#include - -#ifndef SAFE_RELEASE -#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } } -#endif - -#define WINDOW_CLASS_NAME L"NvDX11" - -#define WINDOW_STYLE_NORMAL (WS_OVERLAPPEDWINDOW | WS_VISIBLE) -#define WINDOW_STYLE_FULLSCREEN (WS_POPUP | WS_SYSMENU | WS_VISIBLE) - -// A singleton, sort of... To pass the events from WindowProc to the object. -DeviceManager* g_DeviceManagerInstance = NULL; - -LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - if(g_DeviceManagerInstance) - return g_DeviceManagerInstance->MsgProc(hWnd, uMsg, wParam, lParam); - else - return DefWindowProc(hWnd, uMsg, wParam, lParam); -} - - -HRESULT -DeviceManager::CreateWindowDeviceAndSwapChain(const DeviceCreationParameters& params, LPWSTR title) -{ - g_DeviceManagerInstance = this; - m_WindowTitle = title; - - HINSTANCE hInstance = GetModuleHandle(NULL); - WNDCLASSEX windowClass = { sizeof(WNDCLASSEX), CS_HREDRAW | CS_VREDRAW, WindowProc, - 0L, 0L, hInstance, NULL, NULL, NULL, NULL, WINDOW_CLASS_NAME, NULL }; - - RegisterClassEx(&windowClass); - - UINT windowStyle = params.startFullscreen - ? WINDOW_STYLE_FULLSCREEN - : params.startMaximized - ? (WINDOW_STYLE_NORMAL | WS_MAXIMIZE) - : WINDOW_STYLE_NORMAL; - - RECT rect = { 0, 0, params.backBufferWidth, params.backBufferHeight }; - AdjustWindowRect(&rect, windowStyle, FALSE); - - m_hWnd = CreateWindowEx( - 0, - WINDOW_CLASS_NAME, - title, - windowStyle, - CW_USEDEFAULT, - CW_USEDEFAULT, - rect.right - rect.left, - rect.bottom - rect.top, - GetDesktopWindow(), - NULL, - hInstance, - NULL - ); - - if(!m_hWnd) - { -#ifdef DEBUG - DWORD errorCode = GetLastError(); - printf("CreateWindowEx error code = 0x%x\n", errorCode); -#endif - - MessageBox(NULL, L"Cannot create window", m_WindowTitle.c_str(), MB_OK | MB_ICONERROR); - return E_FAIL; - } - - UpdateWindow(m_hWnd); - - HRESULT hr = E_FAIL; - - RECT clientRect; - GetClientRect(m_hWnd, &clientRect); - UINT width = clientRect.right - clientRect.left; - UINT height = clientRect.bottom - clientRect.top; - - ZeroMemory(&m_SwapChainDesc, sizeof(m_SwapChainDesc)); - m_SwapChainDesc.BufferCount = params.swapChainBufferCount; - m_SwapChainDesc.BufferDesc.Width = width; - m_SwapChainDesc.BufferDesc.Height = height; - m_SwapChainDesc.BufferDesc.Format = params.swapChainFormat; - m_SwapChainDesc.BufferDesc.RefreshRate.Numerator = params.refreshRate; - m_SwapChainDesc.BufferDesc.RefreshRate.Denominator = 0; - m_SwapChainDesc.BufferUsage = params.swapChainUsage; - m_SwapChainDesc.OutputWindow = m_hWnd; - m_SwapChainDesc.SampleDesc.Count = params.swapChainSampleCount; - m_SwapChainDesc.SampleDesc.Quality = params.swapChainSampleQuality; - m_SwapChainDesc.Windowed = !params.startFullscreen; - m_SwapChainDesc.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; - - hr = D3D11CreateDeviceAndSwapChain( - NULL, // pAdapter - params.driverType, // DriverType - NULL, // Software - params.createDeviceFlags, // Flags - ¶ms.featureLevel, // pFeatureLevels - 1, // FeatureLevels - D3D11_SDK_VERSION, // SDKVersion - &m_SwapChainDesc, // pSwapChainDesc - &m_SwapChain, // ppSwapChain - &m_Device, // ppDevice - NULL, // pFeatureLevel - &m_ImmediateContext // ppImmediateContext - ); - - if(FAILED(hr)) - return hr; - - m_DepthStencilDesc.ArraySize = 1; - m_DepthStencilDesc.BindFlags = D3D11_BIND_DEPTH_STENCIL; - m_DepthStencilDesc.CPUAccessFlags = 0; - m_DepthStencilDesc.Format = params.depthStencilFormat; - m_DepthStencilDesc.Width = width; - m_DepthStencilDesc.Height = height; - m_DepthStencilDesc.MipLevels = 1; - m_DepthStencilDesc.MiscFlags = 0; - m_DepthStencilDesc.SampleDesc.Count = params.swapChainSampleCount; - m_DepthStencilDesc.SampleDesc.Quality = 0; - m_DepthStencilDesc.Usage = D3D11_USAGE_DEFAULT; - - hr = CreateRenderTargetAndDepthStencil(); - - if(FAILED(hr)) - return hr; - - DeviceCreated(); - BackBufferResized(); - - return S_OK; -} - -void -DeviceManager::Shutdown() -{ - if(m_SwapChain && GetWindowState() == kWindowFullscreen) - m_SwapChain->SetFullscreenState(false, NULL); - - DeviceDestroyed(); - - SAFE_RELEASE(m_BackBufferRTV); - SAFE_RELEASE(m_DepthStencilDSV); - SAFE_RELEASE(m_DepthStencilBuffer); - - g_DeviceManagerInstance = NULL; - SAFE_RELEASE(m_SwapChain); - SAFE_RELEASE(m_Device); - - if(m_hWnd) - { - DestroyWindow(m_hWnd); - m_hWnd = NULL; - } -} - -HRESULT -DeviceManager::CreateRenderTargetAndDepthStencil() -{ - HRESULT hr; - - ID3D11Texture2D *backBuffer = NULL; - hr = m_SwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&backBuffer); - if (FAILED(hr)) - return hr; - - hr = m_Device->CreateRenderTargetView(backBuffer, NULL, &m_BackBufferRTV); - backBuffer->Release(); - if (FAILED(hr)) - return hr; - - if(m_DepthStencilDesc.Format != DXGI_FORMAT_UNKNOWN) - { - hr = m_Device->CreateTexture2D(&m_DepthStencilDesc, NULL, &m_DepthStencilBuffer); - if (FAILED(hr)) - return hr; - - hr = m_Device->CreateDepthStencilView(m_DepthStencilBuffer, NULL, &m_DepthStencilDSV); - if (FAILED(hr)) - return hr; - } - - return S_OK; -} - -void -DeviceManager::MessageLoop() -{ - MSG msg = {0}; - - LARGE_INTEGER perfFreq, previousTime; - QueryPerformanceFrequency(&perfFreq); - QueryPerformanceCounter(&previousTime); - - while (WM_QUIT != msg.message) - { - if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - else - { - LARGE_INTEGER newTime; - QueryPerformanceCounter(&newTime); - - double elapsedSeconds = (m_FixedFrameInterval >= 0) - ? m_FixedFrameInterval - : (double)(newTime.QuadPart - previousTime.QuadPart) / (double)perfFreq.QuadPart; - - if(m_SwapChain && GetWindowState() != kWindowMinimized) - { - Animate(elapsedSeconds); - Render(); - m_SwapChain->Present(m_SyncInterval, 0); - Sleep(0); - } - else - { - // Release CPU resources when idle - Sleep(1); - } - - { - m_vFrameTimes.push_back(elapsedSeconds); - double timeSum = 0; - for(auto it = m_vFrameTimes.begin(); it != m_vFrameTimes.end(); it++) - timeSum += *it; - - if(timeSum > m_AverageTimeUpdateInterval) - { - m_AverageFrameTime = timeSum / (double)m_vFrameTimes.size(); - m_vFrameTimes.clear(); - } - } - - previousTime = newTime; - } - } -} - -LRESULT -DeviceManager::MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - switch(uMsg) - { - case WM_DESTROY: - case WM_CLOSE: - PostQuitMessage(0); - return 0; - - case WM_SYSKEYDOWN: - if(wParam == VK_F4) - { - PostQuitMessage(0); - return 0; - } - break; - - case WM_SIZE: - // Ignore the WM_SIZE event if there is no device, - // or if the window has been minimized (size == 0), - // or if it has been restored to the previous size - if (m_Device - && (lParam != 0) - && (LOWORD(lParam) != m_SwapChainDesc.BufferDesc.Width || HIWORD(lParam) != m_SwapChainDesc.BufferDesc.Height)) - { - ID3D11RenderTargetView *nullRTV = NULL; - m_ImmediateContext->OMSetRenderTargets(1, &nullRTV, NULL); - SAFE_RELEASE(m_BackBufferRTV); - SAFE_RELEASE(m_DepthStencilDSV); - SAFE_RELEASE(m_DepthStencilBuffer); - - if (m_SwapChain) - { - // Resize the swap chain - m_SwapChainDesc.BufferDesc.Width = LOWORD(lParam); - m_SwapChainDesc.BufferDesc.Height = HIWORD(lParam); - m_SwapChain->ResizeBuffers(m_SwapChainDesc.BufferCount, m_SwapChainDesc.BufferDesc.Width, - m_SwapChainDesc.BufferDesc.Height, m_SwapChainDesc.BufferDesc.Format, - m_SwapChainDesc.Flags); - - m_DepthStencilDesc.Width = LOWORD(lParam); - m_DepthStencilDesc.Height = HIWORD(lParam); - - CreateRenderTargetAndDepthStencil(); - - BackBufferResized(); - } - } - } - - if( uMsg >= WM_MOUSEFIRST && uMsg <= WM_MOUSELAST || - uMsg >= WM_KEYFIRST && uMsg <= WM_KEYLAST ) - { - // processing messages front-to-back - for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) - { - if((*it)->IsEnabled()) - { - // for kb/mouse messages, 0 means the message has been handled - if(0 == (*it)->MsgProc(hWnd, uMsg, wParam, lParam)) - return 0; - } - } - } - - return DefWindowProc(hWnd, uMsg, wParam, lParam); -} - -void -DeviceManager::Render() -{ - D3D11_VIEWPORT viewport = { 0.0f, 0.0f, (float)m_SwapChainDesc.BufferDesc.Width, (float)m_SwapChainDesc.BufferDesc.Height, 0.0f, 1.0f }; - - // rendering back-to-front - for(auto it = m_vControllers.rbegin(); it != m_vControllers.rend(); it++) - { - if((*it)->IsEnabled()) - { - m_ImmediateContext->OMSetRenderTargets(1, &m_BackBufferRTV, m_DepthStencilDSV); - m_ImmediateContext->RSSetViewports(1, &viewport); - - (*it)->Render(m_Device, m_ImmediateContext, m_BackBufferRTV, m_DepthStencilDSV); - } - } - - m_ImmediateContext->OMSetRenderTargets(0, NULL, NULL); -} - -void -DeviceManager::Animate(double fElapsedTimeSeconds) -{ - for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) - { - if((*it)->IsEnabled()) - { - (*it)->Animate(fElapsedTimeSeconds); - } - } -} - -void -DeviceManager::DeviceCreated() -{ - for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) - { - (*it)->DeviceCreated(m_Device); - } -} - -void -DeviceManager::DeviceDestroyed() -{ - for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) - { - (*it)->DeviceDestroyed(); - } -} - -void -DeviceManager::BackBufferResized() -{ - if(m_SwapChain == NULL) - return; - - DXGI_SURFACE_DESC backSD; - backSD.Format = m_SwapChainDesc.BufferDesc.Format; - backSD.Width = m_SwapChainDesc.BufferDesc.Width; - backSD.Height = m_SwapChainDesc.BufferDesc.Height; - backSD.SampleDesc = m_SwapChainDesc.SampleDesc; - - for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) - { - (*it)->BackBufferResized(m_Device, &backSD); - } -} - -HRESULT -DeviceManager::ChangeBackBufferFormat(DXGI_FORMAT format, UINT sampleCount) -{ - HRESULT hr = E_FAIL; - - if((format == DXGI_FORMAT_UNKNOWN || format == m_SwapChainDesc.BufferDesc.Format) && - (sampleCount == 0 || sampleCount == m_SwapChainDesc.SampleDesc.Count)) - return S_FALSE; - - if(m_Device) - { - bool fullscreen = (GetWindowState() == kWindowFullscreen); - if(fullscreen) - m_SwapChain->SetFullscreenState(false, NULL); - - IDXGISwapChain* newSwapChain = NULL; - DXGI_SWAP_CHAIN_DESC newSwapChainDesc = m_SwapChainDesc; - - if(format != DXGI_FORMAT_UNKNOWN) - newSwapChainDesc.BufferDesc.Format = format; - if(sampleCount != 0) - newSwapChainDesc.SampleDesc.Count = sampleCount; - - IDXGIAdapter* pDXGIAdapter = GetDXGIAdapter(); - - IDXGIFactory* pDXGIFactory = NULL; - pDXGIAdapter->GetParent(__uuidof(IDXGIFactory), reinterpret_cast(&pDXGIFactory)); - - hr = pDXGIFactory->CreateSwapChain(m_Device, &newSwapChainDesc, &newSwapChain); - - pDXGIFactory->Release(); - pDXGIAdapter->Release(); - - if (FAILED(hr)) - { - if(fullscreen) - m_SwapChain->SetFullscreenState(true, NULL); - - return hr; - } - - SAFE_RELEASE(m_BackBufferRTV); - SAFE_RELEASE(m_SwapChain); - SAFE_RELEASE(m_DepthStencilBuffer); - SAFE_RELEASE(m_DepthStencilDSV); - - m_SwapChain = newSwapChain; - m_SwapChainDesc = newSwapChainDesc; - - m_DepthStencilDesc.SampleDesc.Count = sampleCount; - - if(fullscreen) - m_SwapChain->SetFullscreenState(true, NULL); - - CreateRenderTargetAndDepthStencil(); - BackBufferResized(); - } - - return S_OK; -} - -void -DeviceManager::AddControllerToFront(IVisualController* pController) -{ - m_vControllers.remove(pController); - m_vControllers.push_front(pController); -} - -void -DeviceManager::AddControllerToBack(IVisualController* pController) -{ - m_vControllers.remove(pController); - m_vControllers.push_back(pController); -} - -void -DeviceManager::RemoveController(IVisualController* pController) -{ - m_vControllers.remove(pController); -} - -HRESULT -DeviceManager::ResizeWindow(int width, int height) -{ - if(m_SwapChain == NULL) - return E_FAIL; - - RECT rect; - GetWindowRect(m_hWnd, &rect); - - ShowWindow(m_hWnd, SW_RESTORE); - - if(!MoveWindow(m_hWnd, rect.left, rect.top, width, height, true)) - return E_FAIL; - - // No need to call m_SwapChain->ResizeBackBuffer because MoveWindow will send WM_SIZE, which calls that function. - - return S_OK; -} - -HRESULT -DeviceManager::EnterFullscreenMode(int width, int height) -{ - if(m_SwapChain == NULL) - return E_FAIL; - - if(GetWindowState() == kWindowFullscreen) - return S_FALSE; - - if(width <= 0 || height <= 0) - { - width = m_SwapChainDesc.BufferDesc.Width; - height = m_SwapChainDesc.BufferDesc.Height; - } - - SetWindowLong(m_hWnd, GWL_STYLE, WINDOW_STYLE_FULLSCREEN); - MoveWindow(m_hWnd, 0, 0, width, height, true); - - HRESULT hr = m_SwapChain->SetFullscreenState(true, NULL); - - if(FAILED(hr)) - { - SetWindowLong(m_hWnd, GWL_STYLE, WINDOW_STYLE_NORMAL); - return hr; - } - - UpdateWindow(m_hWnd); - m_SwapChain->GetDesc(&m_SwapChainDesc); - - return S_OK; -} - -HRESULT -DeviceManager::LeaveFullscreenMode(int windowWidth, int windowHeight) -{ - if(m_SwapChain == NULL) - return E_FAIL; - - if(GetWindowState() != kWindowFullscreen) - return S_FALSE; - - HRESULT hr = m_SwapChain->SetFullscreenState(false, NULL); - if(FAILED(hr)) return hr; - - SetWindowLong(m_hWnd, GWL_STYLE, WINDOW_STYLE_NORMAL); - - if(windowWidth <= 0 || windowHeight <= 0) - { - windowWidth = m_SwapChainDesc.BufferDesc.Width; - windowHeight = m_SwapChainDesc.BufferDesc.Height; - } - - RECT rect = { 0, 0, windowWidth, windowHeight }; - AdjustWindowRect(&rect, WINDOW_STYLE_NORMAL, FALSE); - MoveWindow(m_hWnd, 0, 0, rect.right - rect.left, rect.bottom - rect.top, true); - UpdateWindow(m_hWnd); - - m_SwapChain->GetDesc(&m_SwapChainDesc); - - return S_OK; -} - -HRESULT -DeviceManager::ToggleFullscreen() -{ - if(GetWindowState() == kWindowFullscreen) - return LeaveFullscreenMode(); - else - return EnterFullscreenMode(); -} - -DeviceManager::WindowState -DeviceManager::GetWindowState() -{ - if(m_SwapChain && !m_SwapChainDesc.Windowed) - return kWindowFullscreen; - - if(m_hWnd == INVALID_HANDLE_VALUE) - return kWindowNone; - - if(IsZoomed(m_hWnd)) - return kWindowMaximized; - - if(IsIconic(m_hWnd)) - return kWindowMinimized; - - return kWindowNormal; -} - -HRESULT -DeviceManager::GetDisplayResolution(int& width, int& height) -{ - if(m_hWnd != INVALID_HANDLE_VALUE) - { - HMONITOR monitor = MonitorFromWindow(m_hWnd, MONITOR_DEFAULTTOPRIMARY); - MONITORINFO info; - info.cbSize = sizeof(MONITORINFO); - - if(GetMonitorInfo(monitor, &info)) - { - width = info.rcMonitor.right - info.rcMonitor.left; - height = info.rcMonitor.bottom - info.rcMonitor.top; - return S_OK; - } - } - - return E_FAIL; -} - -IDXGIAdapter* -DeviceManager::GetDXGIAdapter() -{ - if(!m_Device) - return NULL; - - IDXGIDevice* pDXGIDevice = NULL; - m_Device->QueryInterface(__uuidof(IDXGIDevice), reinterpret_cast(&pDXGIDevice)); - - IDXGIAdapter* pDXGIAdapter = NULL; - pDXGIDevice->GetParent(__uuidof(IDXGIAdapter), reinterpret_cast(&pDXGIAdapter)); - - pDXGIDevice->Release(); - - return pDXGIAdapter; -} diff --git a/samples/D3D11/src/DeviceManager.h b/samples/D3D11/src/DeviceManager.h deleted file mode 100644 index a6d5b88..0000000 --- a/samples/D3D11/src/DeviceManager.h +++ /dev/null @@ -1,150 +0,0 @@ -// TAGRELEASE: PUBLIC - -#pragma once -#include -#include -#include -#include - - -struct DeviceCreationParameters -{ - bool startMaximized; - bool startFullscreen; - int backBufferWidth; - int backBufferHeight; - int refreshRate; - int swapChainBufferCount; - DXGI_FORMAT swapChainFormat; - DXGI_FORMAT depthStencilFormat; - DXGI_USAGE swapChainUsage; - int swapChainSampleCount; - int swapChainSampleQuality; - UINT createDeviceFlags; - D3D_DRIVER_TYPE driverType; - D3D_FEATURE_LEVEL featureLevel; - - DeviceCreationParameters() - : startMaximized(false) - , startFullscreen(false) - , backBufferWidth(1280) - , backBufferHeight(720) - , refreshRate(0) - , swapChainBufferCount(1) - , swapChainFormat(DXGI_FORMAT_R8G8B8A8_UNORM) - , depthStencilFormat(DXGI_FORMAT_D24_UNORM_S8_UINT) - , swapChainUsage(DXGI_USAGE_SHADER_INPUT | DXGI_USAGE_RENDER_TARGET_OUTPUT) - , swapChainSampleCount(1) - , swapChainSampleQuality(0) - , createDeviceFlags(0) - , driverType(D3D_DRIVER_TYPE_HARDWARE) - , featureLevel(D3D_FEATURE_LEVEL_11_0) - { } -}; - -#pragma warning(push) -#pragma warning(disable: 4100) // unreferenced formal parameter -class IVisualController -{ -private: - bool m_Enabled; -public: - IVisualController() : m_Enabled(true) { } - - virtual LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { return 1; } - virtual void Render(ID3D11Device* pDevice, ID3D11DeviceContext* pDeviceContext, ID3D11RenderTargetView* pRTV, ID3D11DepthStencilView* pDSV) { } - virtual void Animate(double fElapsedTimeSeconds) { } - virtual HRESULT DeviceCreated(ID3D11Device* pDevice) { return S_OK; } - virtual void DeviceDestroyed() { } - virtual void BackBufferResized(ID3D11Device* pDevice, const DXGI_SURFACE_DESC* pBackBufferSurfaceDesc) { } - - virtual void EnableController() { m_Enabled = true; } - virtual void DisableController() { m_Enabled = false; } - virtual bool IsEnabled() { return m_Enabled; } -}; -#pragma warning(pop) - -class DeviceManager -{ -public: - enum WindowState - { - kWindowNone, - kWindowNormal, - kWindowMinimized, - kWindowMaximized, - kWindowFullscreen - }; - -protected: - ID3D11Device* m_Device; - ID3D11DeviceContext* m_ImmediateContext; - IDXGISwapChain* m_SwapChain; - ID3D11RenderTargetView* m_BackBufferRTV; - ID3D11Texture2D* m_DepthStencilBuffer; - ID3D11DepthStencilView* m_DepthStencilDSV; - DXGI_SWAP_CHAIN_DESC m_SwapChainDesc; - D3D11_TEXTURE2D_DESC m_DepthStencilDesc; - HWND m_hWnd; - std::list m_vControllers; - std::wstring m_WindowTitle; - double m_FixedFrameInterval; - UINT m_SyncInterval; - std::list m_vFrameTimes; - double m_AverageFrameTime; - double m_AverageTimeUpdateInterval; -private: - HRESULT CreateRenderTargetAndDepthStencil(); -public: - - DeviceManager() - : m_Device(NULL) - , m_ImmediateContext(NULL) - , m_SwapChain(NULL) - , m_BackBufferRTV(NULL) - , m_DepthStencilBuffer(NULL) - , m_DepthStencilDSV(NULL) - , m_hWnd(NULL) - , m_WindowTitle(L"") - , m_FixedFrameInterval(-1) - , m_SyncInterval(0) - , m_AverageFrameTime(0) - , m_AverageTimeUpdateInterval(0.5) - { } - - virtual ~DeviceManager() - { Shutdown(); } - - virtual HRESULT CreateWindowDeviceAndSwapChain(const DeviceCreationParameters& params, LPWSTR windowTitle); - virtual HRESULT ChangeBackBufferFormat(DXGI_FORMAT format, UINT sampleCount); - virtual HRESULT ResizeWindow(int width, int height); - virtual HRESULT EnterFullscreenMode(int width = 0, int height = 0); - virtual HRESULT LeaveFullscreenMode(int windowWidth = 0, int windowHeight = 0); - virtual HRESULT ToggleFullscreen(); - - virtual void Shutdown(); - virtual void MessageLoop(); - virtual LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); - virtual void Render(); - virtual void Animate(double fElapsedTimeSeconds); - virtual void DeviceCreated(); - virtual void DeviceDestroyed(); - virtual void BackBufferResized(); - - void AddControllerToFront(IVisualController* pController); - void AddControllerToBack(IVisualController* pController); - void RemoveController(IVisualController* pController); - - void SetFixedFrameInterval(double seconds) { m_FixedFrameInterval = seconds; } - void DisableFixedFrameInterval() { m_FixedFrameInterval = -1; } - - HWND GetHWND() { return m_hWnd; } - ID3D11Device* GetDevice() { return m_Device; } - WindowState GetWindowState(); - bool GetVsyncEnabled() { return m_SyncInterval > 0; } - void SetVsyncEnabled(bool enabled) { m_SyncInterval = enabled ? 1 : 0; } - HRESULT GetDisplayResolution(int& width, int& height); - IDXGIAdapter* GetDXGIAdapter(); - double GetAverageFrameTime() { return m_AverageFrameTime; } - void SetAverageTimeUpdateInterval(double value) { m_AverageTimeUpdateInterval = value; } -}; diff --git a/samples/D3D11/src/GPUTimers.cpp b/samples/D3D11/src/GPUTimers.cpp deleted file mode 100644 index cef0094..0000000 --- a/samples/D3D11/src/GPUTimers.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* -* Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. -* -* NVIDIA CORPORATION and its licensors retain all intellectual property -* and proprietary rights in and to this software, related documentation -* and any modifications thereto. Any use, reproduction, disclosure or -* distribution of this software and related documentation without an express -* license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ - -#include "GPUTimers.h" -#include - -#ifndef SAFE_RELEASE -#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } } -#endif - -#ifndef SAFE_D3D_CALL -#define SAFE_D3D_CALL(x) { if (x != S_OK) assert(0); } -#endif - -//-------------------------------------------------------------------------------- -void GPUTimers::Create(ID3D11Device* pD3DDevice, UINT NumTimers) -{ - m_Timers.resize(NumTimers); - - D3D11_QUERY_DESC queryDesc; - queryDesc.MiscFlags = 0; - - queryDesc.Query = D3D11_QUERY_TIMESTAMP_DISJOINT; - SAFE_D3D_CALL( pD3DDevice->CreateQuery(&queryDesc, &m_pDisjointTimestampQuery) ); - m_DisjointQueryInFlight = false; - - queryDesc.Query = D3D11_QUERY_TIMESTAMP; - for (UINT i = 0; i < m_Timers.size(); ++i) - { - SAFE_D3D_CALL( pD3DDevice->CreateQuery(&queryDesc, &m_Timers[i].pGPUTimersBegin) ); - SAFE_D3D_CALL( pD3DDevice->CreateQuery(&queryDesc, &m_Timers[i].pGPUTimersEnd) ); - m_Timers[i].TimestampQueryInFlight = false; - } -} - -//-------------------------------------------------------------------------------- -void GPUTimers::Release() -{ - SAFE_RELEASE(m_pDisjointTimestampQuery); - - for (UINT i = 0; i < m_Timers.size(); ++i) - { - SAFE_RELEASE(m_Timers[i].pGPUTimersBegin); - SAFE_RELEASE(m_Timers[i].pGPUTimersEnd); - } - - m_Timers.clear(); -} - -//-------------------------------------------------------------------------------- -void GPUTimers::BeginFrame(ID3D11DeviceContext* pDeviceContext) -{ - if (!m_DisjointQueryInFlight) - { - pDeviceContext->Begin(m_pDisjointTimestampQuery); - } -} - -//-------------------------------------------------------------------------------- -void GPUTimers::EndFrame(ID3D11DeviceContext* pDeviceContext) -{ - if (!m_DisjointQueryInFlight) - { - pDeviceContext->End(m_pDisjointTimestampQuery); - } - m_DisjointQueryInFlight = true; - - D3D11_QUERY_DATA_TIMESTAMP_DISJOINT disjointTimestampValue; - if (pDeviceContext->GetData(m_pDisjointTimestampQuery, &disjointTimestampValue, sizeof(disjointTimestampValue), D3D11_ASYNC_GETDATA_DONOTFLUSH) == S_OK) - { - m_DisjointQueryInFlight = false; - - if (!disjointTimestampValue.Disjoint) - { - double InvFrequencyMS = 1000.0 / disjointTimestampValue.Frequency; - for (UINT i = 0; i < m_Timers.size(); ++i) - { - if (m_Timers[i].TimestampQueryInFlight) - { - UINT64 TimestampValueBegin; - UINT64 TimestampValueEnd; - if ((pDeviceContext->GetData(m_Timers[i].pGPUTimersBegin, &TimestampValueBegin, sizeof(UINT64), D3D11_ASYNC_GETDATA_DONOTFLUSH) == S_OK) && - (pDeviceContext->GetData(m_Timers[i].pGPUTimersEnd, &TimestampValueEnd, sizeof(UINT64), D3D11_ASYNC_GETDATA_DONOTFLUSH) == S_OK)) - { - m_Timers[i].TimestampQueryInFlight = false; - m_Timers[i].GPUTimeInMS = float(double(TimestampValueEnd - TimestampValueBegin) * InvFrequencyMS); - } - } - else - { - m_Timers[i].GPUTimeInMS = 0.f; - } - } - } - } -} - -//-------------------------------------------------------------------------------- -void GPUTimers::StartTimer(ID3D11DeviceContext* pDeviceContext, UINT i) -{ - if (!m_Timers[i].TimestampQueryInFlight) - { - pDeviceContext->End(m_Timers[i].pGPUTimersBegin); - } -} - -//-------------------------------------------------------------------------------- -void GPUTimers::StopTimer(ID3D11DeviceContext* pDeviceContext, UINT i) -{ - if (!m_Timers[i].TimestampQueryInFlight) - { - pDeviceContext->End(m_Timers[i].pGPUTimersEnd); - } - m_Timers[i].TimestampQueryInFlight = true; -} - -//-------------------------------------------------------------------------------- -float GPUTimers::GetGPUTimeInMS(UINT i) -{ - if (i < m_Timers.size()) - { - return m_Timers[i].GPUTimeInMS; - } - assert(0); - return 0.f; -} diff --git a/samples/D3D11/src/GPUTimers.h b/samples/D3D11/src/GPUTimers.h deleted file mode 100644 index 1e7b256..0000000 --- a/samples/D3D11/src/GPUTimers.h +++ /dev/null @@ -1,68 +0,0 @@ -/* -* Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. -* -* NVIDIA CORPORATION and its licensors retain all intellectual property -* and proprietary rights in and to this software, related documentation -* and any modifications thereto. Any use, reproduction, disclosure or -* distribution of this software and related documentation without an express -* license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ - -#pragma once -#pragma warning( disable : 4995 ) -#include -#include - -typedef int RenderTimeId; - -//-------------------------------------------------------------------------------- -struct GPUTimerState -{ - bool TimestampQueryInFlight; - ID3D11Query* pGPUTimersBegin; - ID3D11Query* pGPUTimersEnd; - float GPUTimeInMS; -}; - -//-------------------------------------------------------------------------------- -class GPUTimers -{ -public: - void Create(ID3D11Device* pD3DDevice, UINT NumTimers); - void Release(); - - void BeginFrame(ID3D11DeviceContext* pDeviceContext); - void EndFrame(ID3D11DeviceContext* pDeviceContext); - - void StartTimer(ID3D11DeviceContext* pDeviceContext, UINT Id); - void StopTimer(ID3D11DeviceContext* pDeviceContext, UINT Id); - - float GetGPUTimeInMS(UINT Id); - -protected: - bool m_DisjointQueryInFlight; - ID3D11Query* m_pDisjointTimestampQuery; - std::vector m_Timers; -}; - -//-------------------------------------------------------------------------------- -class GPUTimer -{ -public: - GPUTimer(GPUTimers* pGPUTimers, ID3D11DeviceContext* pDeviceContext, RenderTimeId Id) - : m_pGPUTimers(pGPUTimers) - , m_pDeviceContext(pDeviceContext) - , m_RenderTimeId(Id) - { - m_pGPUTimers->StartTimer(m_pDeviceContext, m_RenderTimeId); - } - ~GPUTimer() - { - m_pGPUTimers->StopTimer(m_pDeviceContext, m_RenderTimeId); - } - -private: - GPUTimers* m_pGPUTimers; - ID3D11DeviceContext* m_pDeviceContext; - RenderTimeId m_RenderTimeId; -}; diff --git a/samples/D3D11/src/InputDumpReader.h b/samples/D3D11/src/InputDumpReader.h deleted file mode 100644 index fa8eee1..0000000 --- a/samples/D3D11/src/InputDumpReader.h +++ /dev/null @@ -1,539 +0,0 @@ -// This code contains NVIDIA Confidential Information and is disclosed -// under the Mutual Non-Disclosure Agreement. -// -// Notice -// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES -// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. -// -// NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. No third party distribution is allowed unless -// expressly authorized by NVIDIA. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright © 2008-2015 NVIDIA Corporation. All rights reserved. -// -// NVIDIA Corporation and its licensors retain all intellectual property and proprietary -// rights in and to this software and related documentation and any modifications thereto. -// Any use, reproduction, disclosure or distribution of this software and related -// documentation without an express license agreement from NVIDIA Corporation is -// strictly prohibited. -// - -#pragma once -#include "GFSDK_SSAO.h" -#include "InputDumpWriter.h" - -namespace GFSDK -{ -namespace SSAO -{ -namespace D3D11 -{ - -class InputDumpReader -{ -public: - InputDumpReader() - : m_pFile(NULL) - { - } - - ~InputDumpReader() - { - SafeCloseFile(); - } - - struct InputDumpData - { - InputDumpData() - { - memset(this, 0, sizeof(*this)); - } - void Release() - { - SAFE_RELEASE(InputData.DepthData.pFullResDepthTextureSRV); - SAFE_RELEASE(InputData.NormalData.pFullResNormalTextureSRV); - SAFE_RELEASE(pDepthTexture); - SAFE_RELEASE(pNormalTexture); - } - GFSDK_SSAO_InputData_D3D11 InputData; - GFSDK_SSAO_Parameters Parameters; - ID3D11Texture2D* pDepthTexture; - ID3D11Texture2D* pNormalTexture; - }; - - enum Status - { - STATUS_OK, - STATUS_NULL_ARGUMENT, - STATUS_FOPEN_ERROR, - STATUS_FREAD_ERROR, - STATUS_FILE_VERSION_MISMATCH, - STATUS_BUILD_VERSION_MISMATCH, - STATUS_STRUCT_SIZE_MISMATCH, - STATUS_CREATE_TEXTURE_ERROR, - STATUS_CREATE_SRV_ERROR, - }; - - #define READ_STRUCT(S, FP)\ - {\ - UINT StructSize = 0;\ - if (fread(&StructSize, sizeof(StructSize), 1, FP) != 1)\ - {\ - return STATUS_FREAD_ERROR;\ - }\ - if (StructSize != sizeof(S))\ - {\ - return STATUS_STRUCT_SIZE_MISMATCH;\ - }\ - if (fread(&S, sizeof(S), 1, FP) != 1)\ - {\ - return STATUS_FREAD_ERROR;\ - }\ - } - - Status Read( - ID3D11Device* pDevice, - InputDumpData* pInputDumpData, - const char* pDumpFilename) - { - InputDumpReader::Status Status = STATUS_OK; - - if (!pDevice || !pInputDumpData || !pDumpFilename) - { - return STATUS_NULL_ARGUMENT; - } - - SafeCloseFile(); - if (fopen_s(&m_pFile, pDumpFilename, "rb") || !m_pFile) - { - return STATUS_FOPEN_ERROR; - } - - UINT FileVersion = 0; - if (fread(&FileVersion, sizeof(FileVersion), 1, m_pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - if (FileVersion != InputDumpWriter::FILE_VERSION) - { - return STATUS_FILE_VERSION_MISMATCH; - } - - GFSDK_SSAO_Version Version; - READ_STRUCT(Version, m_pFile); - - const GFSDK_SSAO_Version BuildVersion; - if (BuildVersion.Major != Version.Major || - BuildVersion.Minor != Version.Minor) - { - return STATUS_BUILD_VERSION_MISMATCH; - } - - Status = ReadInputData(pDevice, pInputDumpData, m_pFile); - if (Status != STATUS_OK) - { - return Status; - } - - Status = ReadParameters(pDevice, pInputDumpData, m_pFile); - if (Status != STATUS_OK) - { - return Status; - } - - Status = ReadTexture(pDevice, pInputDumpData->pDepthTexture, pInputDumpData->InputData.DepthData.pFullResDepthTextureSRV, m_pFile); - if (Status != STATUS_OK) - { - return Status; - } - - if (pInputDumpData->InputData.NormalData.Enable) - { - Status = ReadTexture(pDevice, pInputDumpData->pNormalTexture, pInputDumpData->InputData.NormalData.pFullResNormalTextureSRV, m_pFile); - if (Status != STATUS_OK) - { - return Status; - } - } - - return STATUS_OK; - } - -private: - void SafeCloseFile() - { - if (m_pFile) - { - fclose(m_pFile); - m_pFile = NULL; - } - } - - static Status ReadInputData( - ID3D11Device* pDevice, - InputDumpData* pInputDumpData, - FILE *pFile) - { - GFSDK_SSAO_InputDepthData LoadedDepthData; - READ_STRUCT(LoadedDepthData, pFile); - - GFSDK_SSAO_InputNormalData LoadedNormalData; - READ_STRUCT(LoadedNormalData, pFile); - - GFSDK_SSAO_InputData_D3D11& InputData = pInputDumpData->InputData; - memset(&InputData, 0, sizeof(InputData)); - memcpy(&InputData.DepthData, &LoadedDepthData, sizeof(LoadedDepthData)); - memcpy(&InputData.NormalData, &LoadedNormalData, sizeof(LoadedNormalData)); - - return STATUS_OK; - } - - static Status ReadParameters( - ID3D11Device* pDevice, - InputDumpData* pInputDumpData, - FILE *pFile) - { - GFSDK_SSAO_Parameters LoadedParameters; - READ_STRUCT(LoadedParameters, pFile); - - GFSDK_SSAO_Parameters& Parameters = pInputDumpData->Parameters; - memset(&Parameters, 0, sizeof(Parameters)); - memcpy(&Parameters, &LoadedParameters, sizeof(LoadedParameters)); - - return STATUS_OK; - } - -protected: - static Status ReadTexture( - ID3D11Device* pDevice, - ID3D11Texture2D*& pOutTexture, - ID3D11ShaderResourceView*& pOutSRV, - FILE *pFile) - { - D3D11_TEXTURE2D_DESC TextureDesc; - if (fread(&TextureDesc, sizeof(TextureDesc), 1, pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - D3D11_SHADER_RESOURCE_VIEW_DESC SrvDesc; - if (fread(&SrvDesc, sizeof(SrvDesc), 1, pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - UINT RowPitch = 0; - if (fread(&RowPitch, sizeof(RowPitch), 1, pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - BYTE* pData = new BYTE[TextureDesc.Height * RowPitch]; - assert(pData); - - if (fread(pData, TextureDesc.Height * RowPitch, 1, pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - TextureDesc.Usage = D3D11_USAGE_IMMUTABLE; - TextureDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE; - TextureDesc.CPUAccessFlags = 0; - TextureDesc.MiscFlags = 0; - - D3D11_SUBRESOURCE_DATA SubresourceData; - SubresourceData.pSysMem = pData; - SubresourceData.SysMemPitch = RowPitch; - SubresourceData.SysMemSlicePitch = 0; - - assert(!pOutTexture); - if (pDevice->CreateTexture2D(&TextureDesc, &SubresourceData, &pOutTexture) != S_OK) - { - return STATUS_CREATE_TEXTURE_ERROR; - } - - delete[] pData; - - assert(!pOutSRV); - if (pDevice->CreateShaderResourceView(pOutTexture, &SrvDesc, &pOutSRV) != S_OK) - { - return STATUS_CREATE_SRV_ERROR; - } - - return STATUS_OK; - } - - FILE* m_pFile; -}; - -class InputDumpReader_2 : public InputDumpReader -{ -public: - static Status Read( - ID3D11Device* pDevice, - InputDumpReader::InputDumpData* pInputDumpData, - const char* pDumpFilename) - { - Status ReadStatus = STATUS_OK; - - if (!pDevice || !pInputDumpData || !pDumpFilename) - { - return STATUS_NULL_ARGUMENT; - } - - FILE *pFile = NULL; - if (fopen_s(&pFile, pDumpFilename, "rb") || !pFile) - { - return STATUS_FOPEN_ERROR; - } - - UINT FileVersion = 0; - if (fread(&FileVersion, sizeof(FileVersion), 1, pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - if (FileVersion != 2) - { - return STATUS_FILE_VERSION_MISMATCH; - } - - GFSDK_SSAO_Version Version; - if (fread(&Version, sizeof(Version), 1, pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - ReadStatus = ReadStructs(pFile, pInputDumpData); - if (ReadStatus != STATUS_OK) - { - return ReadStatus; - } - - ReadStatus = InputDumpReader::ReadTexture(pDevice, pInputDumpData->pDepthTexture, pInputDumpData->InputData.DepthData.pFullResDepthTextureSRV, pFile); - if (ReadStatus != STATUS_OK) - { - return ReadStatus; - } - - if (pInputDumpData->InputData.NormalData.Enable) - { - ReadStatus = InputDumpReader::ReadTexture(pDevice, pInputDumpData->pNormalTexture, pInputDumpData->InputData.NormalData.pFullResNormalTextureSRV, pFile); - if (ReadStatus != STATUS_OK) - { - return ReadStatus; - } - } - - fclose(pFile); - - return STATUS_OK; - } - -private: - struct InputViewport - { - GFSDK_SSAO_UINT TopLeftX; - GFSDK_SSAO_UINT TopLeftY; - GFSDK_SSAO_UINT Width; - GFSDK_SSAO_UINT Height; - GFSDK_SSAO_FLOAT MinDepth; - GFSDK_SSAO_FLOAT MaxDepth; - - InputViewport() - : TopLeftX(0) - , TopLeftY(0) - , Width(0) - , Height(0) - , MinDepth(0.f) - , MaxDepth(1.f) - { - } - }; - - struct Matrix - { - Matrix() - { - memset(this, 0, sizeof(*this)); - } - Matrix(const GFSDK_SSAO_FLOAT* pMatrix) - { - memcpy(&Data, pMatrix, sizeof(Data)); - } - GFSDK_SSAO_FLOAT Data[16]; - }; - - struct InputDepthData - { - GFSDK_SSAO_DepthTextureType DepthTextureType; // HARDWARE_DEPTHS, HARDWARE_DEPTHS_SUB_RANGE or VIEW_DEPTHS - Matrix ProjectionMatrix; // 4x4 perspective matrix from the depth generation pass - GFSDK_SSAO_MatrixLayout ProjectionMatrixLayout; // Memory layout of the projection matrix - GFSDK_SSAO_FLOAT MetersToViewSpaceUnits; // DistanceInViewSpaceUnits = MetersToViewSpaceUnits * DistanceInMeters - - InputDepthData() - : DepthTextureType(GFSDK_SSAO_HARDWARE_DEPTHS) - , ProjectionMatrixLayout(GFSDK_SSAO_ROW_MAJOR_ORDER) - , MetersToViewSpaceUnits(1.f) - { - } - }; - - struct InputDepthData_D3D11 : InputDepthData - { - ID3D11ShaderResourceView* pFullResDepthTextureSRV; // Full-resolution depth texture - InputViewport Viewport; // Viewport from the depth generation pass - - InputDepthData_D3D11() - : pFullResDepthTextureSRV(NULL) - { - } - }; - - struct InputNormalData - { - GFSDK_SSAO_BOOL Enable; // To use the provided normals (instead of reconstructed ones) - Matrix WorldToViewMatrix; // 4x4 WorldToView matrix from the depth generation pass - GFSDK_SSAO_MatrixLayout WorldToViewMatrixLayout; // Memory layout of the WorldToView matrix - GFSDK_SSAO_FLOAT DecodeScale; // Optional pre-matrix scale - GFSDK_SSAO_FLOAT DecodeBias; // Optional pre-matrix bias - - InputNormalData() - : Enable(false) - , WorldToViewMatrixLayout(GFSDK_SSAO_ROW_MAJOR_ORDER) - , DecodeScale(1.f) - , DecodeBias(0.f) - { - } - }; - - struct InputNormalData_D3D11 : InputNormalData - { - ID3D11ShaderResourceView* pFullResNormalTextureSRV; // Full-resolution world-space normal texture - - InputNormalData_D3D11() - : pFullResNormalTextureSRV(NULL) - { - } - }; - - struct InputData_D3D11 - { - InputDepthData_D3D11 DepthData; // Required - InputNormalData_D3D11 NormalData; // Optional GBuffer normals - }; - - - struct OutputParameters - { - GFSDK_SSAO_BlendMode BlendMode; // Blend mode used to composite the AO to the output render target - - OutputParameters() - : BlendMode(GFSDK_SSAO_OVERWRITE_RGB) - { - } - }; - - struct CustomBlendState_D3D11 - { - ID3D11BlendState* pBlendState; // Custom blend state to composite the AO with - const GFSDK_SSAO_FLOAT* pBlendFactor; // Relevant only if pBlendState uses D3D11_BLEND_BLEND_FACTOR - - CustomBlendState_D3D11() - : pBlendState(NULL) - , pBlendFactor(NULL) - { - } - }; - - struct Parameters_D3D11 - { - GFSDK_SSAO_FLOAT Radius; // The AO radius in meters - GFSDK_SSAO_FLOAT Bias; // To hide low-tessellation artifacts // 0.0~1.0 - GFSDK_SSAO_FLOAT DetailAO; // Scale factor for the detail AO, the greater the darker // 0.0~2.0 - GFSDK_SSAO_FLOAT CoarseAO; // Scale factor for the coarse AO, the greater the darker // 0.0~2.0 - GFSDK_SSAO_FLOAT PowerExponent; // The final AO output is pow(AO, powerExponent) - GFSDK_SSAO_DepthStorage DepthStorage; // Quality / performance tradeoff - GFSDK_SSAO_DepthClampMode DepthClampMode; // To hide possible false-occlusion artifacts near screen borders - GFSDK_SSAO_DepthThreshold DepthThreshold; // Optional Z threshold, to hide possible depth-precision artifacts - GFSDK_SSAO_BlurParameters Blur; // Optional AO blur, to blur the AO before compositing it - - Parameters_D3D11() - : Radius(1.f) - , Bias(0.1f) - , DetailAO(0.f) - , CoarseAO(1.f) - , PowerExponent(2.f) - , DepthStorage(GFSDK_SSAO_FP32_VIEW_DEPTHS) - , DepthClampMode(GFSDK_SSAO_CLAMP_TO_EDGE) - { - } - }; - - static Status ReadStructs(FILE *pFile, InputDumpReader::InputDumpData* pOut) - { - InputDepthData InputDepthData; - if (fread(&InputDepthData, sizeof(InputDepthData), 1, pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - InputViewport InputViewport; - if (fread(&InputViewport, sizeof(InputViewport), 1, pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - InputNormalData InputNormalData; - if (fread(&InputNormalData, sizeof(InputNormalData), 1, pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - GFSDK_SSAO_InputData_D3D11& OutInputData = pOut->InputData; - memset(&OutInputData, 0, sizeof(OutInputData)); - - OutInputData.DepthData.DepthTextureType = InputDepthData.DepthTextureType; - memcpy(&OutInputData.DepthData.ProjectionMatrix.Data, &InputDepthData.ProjectionMatrix, sizeof(InputDepthData.ProjectionMatrix)); - OutInputData.DepthData.ProjectionMatrix.Layout = InputDepthData.ProjectionMatrixLayout; - OutInputData.DepthData.MetersToViewSpaceUnits = InputDepthData.MetersToViewSpaceUnits; - OutInputData.DepthData.Viewport.Enable = 0; - - OutInputData.NormalData.Enable = InputNormalData.Enable; - memcpy(&OutInputData.NormalData.WorldToViewMatrix.Data, &InputNormalData.WorldToViewMatrix, sizeof(InputNormalData.WorldToViewMatrix)); - OutInputData.NormalData.WorldToViewMatrix.Layout = InputNormalData.WorldToViewMatrixLayout; - OutInputData.NormalData.DecodeScale = InputNormalData.DecodeScale; - OutInputData.NormalData.DecodeBias = InputNormalData.DecodeBias; - - Parameters_D3D11 Parameters; - if (fread(&Parameters, sizeof(Parameters), 1, pFile) != 1) - { - return STATUS_FREAD_ERROR; - } - - pOut->Parameters.Radius = Parameters.Radius; - pOut->Parameters.Bias = Parameters.Bias; - pOut->Parameters.DetailAO = Parameters.DetailAO; - pOut->Parameters.CoarseAO = Parameters.CoarseAO; - pOut->Parameters.DepthStorage = Parameters.DepthStorage; - pOut->Parameters.PowerExponent = Parameters.PowerExponent; - pOut->Parameters.DepthClampMode = Parameters.DepthClampMode; - pOut->Parameters.DepthThreshold = Parameters.DepthThreshold; - pOut->Parameters.Blur = Parameters.Blur; - - return STATUS_OK; - } -}; - -} // namespace D3D11 -} // namespace SSAO -} // namespace GFSDK diff --git a/samples/D3D11/src/InputDumpWriter.h b/samples/D3D11/src/InputDumpWriter.h deleted file mode 100644 index f55f634..0000000 --- a/samples/D3D11/src/InputDumpWriter.h +++ /dev/null @@ -1,265 +0,0 @@ -// This code contains NVIDIA Confidential Information and is disclosed -// under the Mutual Non-Disclosure Agreement. -// -// Notice -// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES -// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. -// -// NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. No third party distribution is allowed unless -// expressly authorized by NVIDIA. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright © 2008-2015 NVIDIA Corporation. All rights reserved. -// -// NVIDIA Corporation and its licensors retain all intellectual property and proprietary -// rights in and to this software and related documentation and any modifications thereto. -// Any use, reproduction, disclosure or distribution of this software and related -// documentation without an express license agreement from NVIDIA Corporation is -// strictly prohibited. -// - -#pragma once -#include "GFSDK_SSAO.h" -#include -#include - -namespace GFSDK -{ -namespace SSAO -{ -namespace D3D11 -{ - -class InputDumpWriter -{ -public: - static const UINT FILE_VERSION = 5; - - enum Status - { - STATUS_NULL_ARGUMENT, - STATUS_UNSUPPORTED_TEXTURE_SAMPLE_COUNT, - STATUS_UNSUPPORTED_TEXTURE_ARRAY_SIZE, - STATUS_UNSUPPORTED_TEXTURE_MIP_COUNT, - STATUS_FOPEN_FAILED, - STATUS_FWRITE_FAILED, - STATUS_CREATE_TEXTURE_FAILED, - STATUS_MAP_TEXTURE_FAILED, - STATUS_OK, - }; - - InputDumpWriter() - : m_pFile(NULL) - , m_pBaseTexture(NULL) - , m_pStagingTexture(NULL) - { - } - - ~InputDumpWriter() - { - SafeCloseFile(); - SAFE_RELEASE(m_pBaseTexture); - SAFE_RELEASE(m_pStagingTexture); - } - - #define WRITE_STRUCT(S)\ - {\ - UINT StructSize = sizeof(S);\ - if (fwrite(&StructSize, sizeof(StructSize), 1, m_pFile) != 1)\ - {\ - return STATUS_FWRITE_FAILED;\ - }\ - if (fwrite(&S, sizeof(S), 1, m_pFile) != 1)\ - {\ - return STATUS_FWRITE_FAILED;\ - }\ - } - - Status Write( - ID3D11Device* pDevice, - ID3D11DeviceContext* pDeviceContext, - const GFSDK_SSAO_InputData_D3D11* pInputData, - const GFSDK_SSAO_Parameters* pParameters, - const char* pFilename) - { - if (!pDevice || !pDeviceContext || !pInputData || !pParameters || !pFilename) - { - return STATUS_NULL_ARGUMENT; - } - - SafeCloseFile(); - if (fopen_s(&m_pFile, pFilename, "wb") || !m_pFile) - { - return STATUS_FOPEN_FAILED; - } - - const UINT FileVersion = FILE_VERSION; - if (fwrite(&FileVersion, sizeof(FileVersion), 1, m_pFile) != 1) - { - return STATUS_FWRITE_FAILED; - } - - const GFSDK_SSAO_Version BuildVersion; - WRITE_STRUCT(BuildVersion); - - GFSDK_SSAO_InputDepthData InputDepthData = pInputData->DepthData; - WRITE_STRUCT(InputDepthData); - - GFSDK_SSAO_InputNormalData InputNormalData = pInputData->NormalData; - WRITE_STRUCT(InputNormalData); - - GFSDK_SSAO_Parameters Parameters = *pParameters; - WRITE_STRUCT(Parameters); - - InputDumpWriter::Status Status = WriteTexture(pDevice, pDeviceContext, pInputData->DepthData.pFullResDepthTextureSRV); - if (Status != GFSDK_SSAO_OK) - { - return Status; - } - - if (pInputData->NormalData.Enable) - { - Status = WriteTexture(pDevice, pDeviceContext, pInputData->NormalData.pFullResNormalTextureSRV); - if (Status != GFSDK_SSAO_OK) - { - return Status; - } - } - - return STATUS_OK; - } - -private: - void SafeCloseFile() - { - if (m_pFile) - { - fclose(m_pFile); - m_pFile = NULL; - } - } - - static void GetTextureDesc(ID3D11ShaderResourceView* pSRV, D3D11_TEXTURE2D_DESC* pTextureDesc) - { - ID3D11Texture2D* pBaseTexture; - pSRV->GetResource((ID3D11Resource**)&pBaseTexture); - - pBaseTexture->GetDesc(pTextureDesc); - SAFE_RELEASE(pBaseTexture); - } - - bool CreateStagingTexture( - ID3D11Device* pDevice, - ID3D11DeviceContext* pDeviceContext, - ID3D11ShaderResourceView* pSRV) - { - SAFE_RELEASE(m_pBaseTexture); - pSRV->GetResource((ID3D11Resource**)&m_pBaseTexture); - - D3D11_TEXTURE2D_DESC TextureDesc; - m_pBaseTexture->GetDesc(&TextureDesc); - - assert(TextureDesc.SampleDesc.Count == 1); - assert(TextureDesc.ArraySize == 1); - assert(TextureDesc.MipLevels == 1); - - D3D11_TEXTURE2D_DESC StagingTextureDesc = TextureDesc; - StagingTextureDesc.Usage = D3D11_USAGE_STAGING; - StagingTextureDesc.BindFlags = 0; - StagingTextureDesc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; - StagingTextureDesc.MiscFlags = 0; - - SAFE_RELEASE(m_pStagingTexture); - if (pDevice->CreateTexture2D(&StagingTextureDesc, NULL, &m_pStagingTexture) != S_OK) - { - return false; - } - - pDeviceContext->CopyResource(m_pStagingTexture, m_pBaseTexture); - - return true; - } - - Status WriteTexture( - ID3D11Device* pDevice, - ID3D11DeviceContext* pDeviceContext, - ID3D11ShaderResourceView* pSRV) - { - if (!pSRV) - { - return STATUS_NULL_ARGUMENT; - } - - D3D11_SHADER_RESOURCE_VIEW_DESC SrvDesc; - pSRV->GetDesc(&SrvDesc); - - D3D11_TEXTURE2D_DESC TextureDesc; - GetTextureDesc(pSRV, &TextureDesc); - - if (TextureDesc.SampleDesc.Count != 1) - { - return STATUS_UNSUPPORTED_TEXTURE_SAMPLE_COUNT; - } - - if (TextureDesc.ArraySize != 1) - { - return STATUS_UNSUPPORTED_TEXTURE_ARRAY_SIZE; - } - - if (TextureDesc.MipLevels != 1) - { - return STATUS_UNSUPPORTED_TEXTURE_MIP_COUNT; - } - - if (!CreateStagingTexture(pDevice, pDeviceContext, pSRV)) - { - return STATUS_CREATE_TEXTURE_FAILED; - } - - D3D11_MAPPED_SUBRESOURCE LockedRect; - if (pDeviceContext->Map(m_pStagingTexture, 0, D3D11_MAP_READ, 0, &LockedRect) != S_OK) - { - return STATUS_MAP_TEXTURE_FAILED; - } - - if (fwrite(&TextureDesc, sizeof(TextureDesc), 1, m_pFile) != 1) - { - return STATUS_FWRITE_FAILED; - } - - if (fwrite(&SrvDesc, sizeof(SrvDesc), 1, m_pFile) != 1) - { - return STATUS_FWRITE_FAILED; - } - - if (fwrite(&LockedRect.RowPitch, sizeof(LockedRect.RowPitch), 1, m_pFile) != 1) - { - return STATUS_FWRITE_FAILED; - } - - if (fwrite(LockedRect.pData, TextureDesc.Height * LockedRect.RowPitch, 1, m_pFile) != 1) - { - return STATUS_FWRITE_FAILED; - } - - pDeviceContext->Unmap(m_pStagingTexture, 0); - - return STATUS_OK; - } - - FILE* m_pFile; - ID3D11Texture2D* m_pBaseTexture; - ID3D11Texture2D* m_pStagingTexture; -}; - -} // namespace D3D11 -} // namespace SSAO -} // namespace GFSDK diff --git a/samples/D3D11/src/SSAO11.cpp b/samples/D3D11/src/SSAO11.cpp deleted file mode 100644 index cd8db30..0000000 --- a/samples/D3D11/src/SSAO11.cpp +++ /dev/null @@ -1,601 +0,0 @@ -/* -* Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. -* -* NVIDIA CORPORATION and its licensors retain all intellectual property -* and proprietary rights in and to this software, related documentation -* and any modifications thereto. Any use, reproduction, disclosure or -* distribution of this software and related documentation without an express -* license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ - -#include -#include -#include -#include -#include - -#include "GFSDK_SSAO.h" -#include "AntTweakBar.h" -#include "DeviceManager.h" -#include "GPUTimers.h" -#include "BinMeshReader.h" -#include "SceneRTs.h" - -#include "shaders/bin/GeometryVS.h" -#include "shaders/bin/GeometryPS.h" - -#define VERTEX_BIN_FILE_PATH "..\\src\\SibenikVertices.bin" -#define INDEX_BIN_FILE_PATH "..\\src\\SibenikIndices.bin" - -#ifndef SAFE_RELEASE -#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } } -#endif - -#ifndef SAFE_DELETE -#define SAFE_DELETE(p) { if (p) { delete (p); (p)=NULL; } } -#endif - -#ifndef SIZEOF_ARRAY -#define SIZEOF_ARRAY(A) (sizeof(A) / sizeof(A[0])) -#endif - -#ifndef SAFE_D3D_CALL -#define SAFE_D3D_CALL(x) { if(FAILED(x)) assert(0); } -#endif - -enum GPUTimeId -{ - GPU_TIME_Z, - GPU_TIME_AO, - GPU_TIME_UI, - NUM_GPU_TIMES -}; -GPUTimers g_GPUTimers; - -DeviceManager* g_DeviceManager = NULL; -bool g_bRenderHUD = true; - -using namespace DirectX; - -class VisualController : public IVisualController -{ -public: - VisualController() - : m_pAOContext(NULL) - , m_AORadius(2.f) - , m_AOBias(0.2f) - , m_BlurAO(true) - , m_BlurSharpness(32.f) - , m_PowerExponent(2.f) - , m_SmallScaleAO(1.f) - , m_LargeScaleAO(1.f) - , m_pVB(NULL) - , m_pIB(NULL) - , m_pConstantBuffer(NULL) - , m_pInputLayout(NULL) - , m_pGeometryVS(NULL) - , m_pGeometryPS(NULL) - , m_pDepthStencilState_Enabled(NULL) - , m_pBlendState_Disabled(NULL) - , m_pRasterizerState_NoCull_NoScissor(NULL) - , m_pSceneRTs(NULL) - , m_UseGBufferNormals(false) - , m_DebugNormals(false) - { - m_BackBufferDesc = {}; - } - - virtual LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) - { - if (uMsg == WM_KEYDOWN) - { - int iKeyPressed = static_cast(wParam); - - switch (iKeyPressed) - { - case VK_TAB: - g_bRenderHUD = !g_bRenderHUD; - return 0; - break; - - case VK_ESCAPE: - PostQuitMessage(0); - break; - - default: - break; - } - } - - if (g_bRenderHUD || uMsg == WM_KEYDOWN || uMsg == WM_CHAR) - { - if (TwEventWin(hWnd, uMsg, wParam, lParam)) - { - return 0; // Event has been handled by AntTweakBar - } - } - - return 1; - } - - virtual void Render(ID3D11Device* pDevice, ID3D11DeviceContext* pDeviceContext, ID3D11RenderTargetView* pRTV, ID3D11DepthStencilView* pDSV) - { - g_GPUTimers.BeginFrame(pDeviceContext); - - DrawGeometry(pDevice, pDeviceContext); - - DrawHBAO(pDevice, pDeviceContext, pRTV); - - DrawUI(pDevice, pDeviceContext, pRTV, pDSV); - - g_GPUTimers.EndFrame(pDeviceContext); - } - - static void TW_CALL CopyStdStringToClient(std::string& destinationClientString, const std::string& sourceLibraryString) - { - destinationClientString = sourceLibraryString; - } - - virtual HRESULT DeviceCreated(ID3D11Device* pDevice) - { - TwInit(TW_DIRECT3D11, pDevice); - TwCopyStdStringToClientFunc(CopyStdStringToClient); - InitGeometry(pDevice); - InitHBAO(pDevice); - InitUI(); - - return S_OK; - } - - virtual void DeviceDestroyed() - { - TwTerminate(); - ReleaseGeometry(); - ReleaseHBAO(); - SAFE_DELETE(m_pSceneRTs); - } - - virtual void BackBufferResized(ID3D11Device* pDevice, const DXGI_SURFACE_DESC* pBackBufferSurfaceDesc) - { - TwWindowSize(pBackBufferSurfaceDesc->Width, pBackBufferSurfaceDesc->Height); - ReallocateSceneRTs(pDevice, pBackBufferSurfaceDesc); - m_BackBufferDesc = *pBackBufferSurfaceDesc; - } - -private: - void InitGeometry(ID3D11Device* pDevice) - { - if (!LoadVertices(VERTEX_BIN_FILE_PATH, m_Mesh.vertices)) - { - throw std::runtime_error("Failed to load " VERTEX_BIN_FILE_PATH); - } - if (!LoadIndices(INDEX_BIN_FILE_PATH, m_Mesh.indices)) - { - throw std::runtime_error("Failed to load " INDEX_BIN_FILE_PATH); - } - - SAFE_D3D_CALL(pDevice->CreateVertexShader(g_GeometryVS, sizeof(g_GeometryVS), NULL, &m_pGeometryVS)); - SAFE_D3D_CALL(pDevice->CreatePixelShader(g_GeometryPS, sizeof(g_GeometryPS), NULL, &m_pGeometryPS)); - } - - void ReallocateSceneRTs(ID3D11Device* pd3dDevice, const DXGI_SURFACE_DESC* pBackBufferSurfaceDesc) - { - SceneRTs::Desc desc; - desc.OutputWidth = pBackBufferSurfaceDesc->Width; - desc.OutputHeight = pBackBufferSurfaceDesc->Height; - desc.BorderPixels = 0; - desc.SampleCount = 1; - - SAFE_DELETE(m_pSceneRTs); - m_pSceneRTs = new SceneRTs(pd3dDevice, desc); - } - - void InitHBAO(ID3D11Device* pDevice) - { - GFSDK_SSAO_CustomHeap CustomHeap; - CustomHeap.new_ = ::operator new; - CustomHeap.delete_ = ::operator delete; - - GFSDK_SSAO_Status status; - status = GFSDK_SSAO_CreateContext_D3D11(pDevice, &m_pAOContext, &CustomHeap); - assert(status == GFSDK_SSAO_OK); - - g_GPUTimers.Create(pDevice, NUM_GPU_TIMES); - } - - void InitUI() - { - TwBar* bar = TwNewBar("barMain"); - - TwAddVarRW(bar, "Radius", TW_TYPE_FLOAT, &m_AORadius, "min=1.0 max=8.0 group=AO"); - TwAddVarRW(bar, "Bias", TW_TYPE_FLOAT, &m_AOBias, "min=0.0 max=0.5 group=AO"); - TwAddVarRW(bar, "SmallScaleAO", TW_TYPE_FLOAT, &m_SmallScaleAO, "min=0.0 max=2.0 group=AO"); - TwAddVarRW(bar, "LargeScaleAO", TW_TYPE_FLOAT, &m_LargeScaleAO, "min=0.0 max=2.0 group=AO"); - TwAddVarRW(bar, "Power Exponent", TW_TYPE_FLOAT, &m_PowerExponent, "min=0.0 max=4.0 group=AO"); - TwAddVarRW(bar, "Enable Blur", TW_TYPE_BOOLCPP, &m_BlurAO, "group=Blur"); - TwAddVarRW(bar, "Blur Sharpness", TW_TYPE_FLOAT, &m_BlurSharpness, "group=Blur min=0.0 max=100.0"); - TwAddVarRW(bar, "GBuffer Normals", TW_TYPE_BOOLCPP, &m_UseGBufferNormals, "group=Normals"); - TwAddVarRW(bar, "Debug Normals", TW_TYPE_BOOLCPP, &m_DebugNormals, "group=Normals"); - } - - void UpdateUI() - { - const int barWidth = 200; - const int barHeight = 220; - const int border = 20; - - char buffer[2048]; - _snprintf_s(buffer, sizeof(buffer), - "barMain label='HBAO+' color='19 25 19' alpha=128 size='%d %d' position='%d %d' valueswidth=fit", - barWidth, barHeight, - m_BackBufferDesc.Width - barWidth - border, border); - TwDefine(buffer); - } - - void DrawText() - { - char msg[1024]; - - TwBeginText(2, 0, 0, 220); - - GFSDK_SSAO_Version Version; - GFSDK_SSAO_Status Status; - Status = GFSDK_SSAO_GetVersion(&Version); - assert(Status == GFSDK_SSAO_OK); - - unsigned int Color = 0xFFFFFFFF; - unsigned int BgColor = 0xFF000000; - - _snprintf_s(msg, sizeof(msg), "D3D11 HBAO+ %d.%d.%d.%d", Version.Major, Version.Minor, Version.Branch, Version.Revision); - TwAddTextLine(msg, Color, BgColor); - - _snprintf_s(msg, sizeof(msg), "Resolution: %d x %d", m_BackBufferDesc.Width, m_BackBufferDesc.Height); - TwAddTextLine(msg, Color, BgColor); - - _snprintf_s(msg, sizeof(msg), "GPU times (ms): Z=%.2f AO=%.2f", - g_GPUTimers.GetGPUTimeInMS(GPU_TIME_Z), - g_GPUTimers.GetGPUTimeInMS(GPU_TIME_AO)); - TwAddTextLine(msg, Color, BgColor); - - _snprintf_s(msg, sizeof(msg), "Allocated Video Memory: %d MB", m_pAOContext->GetAllocatedVideoMemoryBytes() / (1024 * 1024)); - TwAddTextLine(msg, Color, BgColor); - - TwEndText(); - } - - void DrawUI(ID3D11Device* , ID3D11DeviceContext* pDeviceContext, ID3D11RenderTargetView* pRTV, ID3D11DepthStencilView* pDSV) - { - GPUTimer TimerScope(&g_GPUTimers, pDeviceContext, GPU_TIME_UI); - - if (!g_bRenderHUD) - { - return; - } - - pDeviceContext->OMSetRenderTargets(1, &pRTV, pDSV); - pDeviceContext->OMSetDepthStencilState(NULL, 0); - pDeviceContext->OMSetBlendState(NULL, NULL, 0xffffffff); - - UpdateUI(); - DrawText(); - TwDraw(); - } - - void DrawGeometry(ID3D11Device* pDevice, ID3D11DeviceContext* pDeviceContext) - { - GPUTimer TimerScope(&g_GPUTimers, pDeviceContext, GPU_TIME_Z); - - D3D11_VIEWPORT Viewport; - Viewport.TopLeftX = 0.f; - Viewport.TopLeftY = 0.f; - Viewport.MinDepth = 0.f; - Viewport.MaxDepth = 1.f; - Viewport.Width = FLOAT(m_pSceneRTs->Width); - Viewport.Height = FLOAT(m_pSceneRTs->Height); - pDeviceContext->RSSetViewports(1, &Viewport); - - float ClearColor[4] = { 1.f, 1.f, 1.f, 0.f }; - pDeviceContext->ClearRenderTargetView(m_pSceneRTs->ColorRTV, ClearColor); - pDeviceContext->ClearDepthStencilView(m_pSceneRTs->DepthStencilDSV, D3D11_CLEAR_DEPTH, 1.0, 0); - - if (m_UseGBufferNormals) - { - ID3D11RenderTargetView* pMRTs[] = { NULL, m_pSceneRTs->NormalRTV }; - pDeviceContext->OMSetRenderTargets(SIZEOF_ARRAY(pMRTs), pMRTs, m_pSceneRTs->DepthStencilDSV); - } - else - { - pDeviceContext->OMSetRenderTargets(0, NULL, m_pSceneRTs->DepthStencilDSV); - } - - if (!m_pDepthStencilState_Enabled) - { - static D3D11_DEPTH_STENCIL_DESC DepthStencilStateDesc = - { - FALSE, //DepthEnable - D3D11_DEPTH_WRITE_MASK_ZERO, //DepthWriteMask - D3D11_COMPARISON_NEVER, //DepthFunc - FALSE, //StencilEnable - 0, //StencilReadMask - 0xFF, //StencilWriteMask - - { D3D11_STENCIL_OP_REPLACE, //StencilFailOp - D3D11_STENCIL_OP_REPLACE, //StencilDepthFailOp - D3D11_STENCIL_OP_REPLACE, //StencilPassOp - D3D11_COMPARISON_ALWAYS //StencilFunc - }, //FrontFace - - { D3D11_STENCIL_OP_REPLACE, //StencilFailOp - D3D11_STENCIL_OP_REPLACE, //StencilDepthFailOp - D3D11_STENCIL_OP_REPLACE, //StencilPassOp - D3D11_COMPARISON_ALWAYS //StencilFunc - } //BackFace - }; - DepthStencilStateDesc.DepthEnable = TRUE; - DepthStencilStateDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; - DepthStencilStateDesc.DepthFunc = D3D11_COMPARISON_LESS_EQUAL; - DepthStencilStateDesc.StencilEnable = FALSE; - SAFE_D3D_CALL(pDevice->CreateDepthStencilState(&DepthStencilStateDesc, &m_pDepthStencilState_Enabled)); - } - pDeviceContext->OMSetDepthStencilState(m_pDepthStencilState_Enabled, 0); - - if (!m_pBlendState_Disabled) - { - D3D11_BLEND_DESC BlendStateDesc; - BlendStateDesc.AlphaToCoverageEnable = FALSE; - BlendStateDesc.IndependentBlendEnable = TRUE; - for (int i = 0; i < SIZEOF_ARRAY(BlendStateDesc.RenderTarget); ++i) - { - BlendStateDesc.RenderTarget[i].BlendEnable = FALSE; - BlendStateDesc.RenderTarget[i].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; - } - SAFE_D3D_CALL(pDevice->CreateBlendState(&BlendStateDesc, &m_pBlendState_Disabled)); - } - pDeviceContext->OMSetBlendState(m_pBlendState_Disabled, NULL, 0xFFFFFFFF); - - if (!m_pRasterizerState_NoCull_NoScissor) - { - static D3D11_RASTERIZER_DESC RasterStateDesc = - { - D3D11_FILL_SOLID, //FillMode - D3D11_CULL_NONE, //CullMode - 0x0, //FrontCounterClockwise - 0x0/*0.000000f*/, //DepthBias - 0.f, //DepthBiasClamp - 0.f, //SlopeScaledDepthBias - 0x1, //DepthClipEnable - 0x0, //ScissorEnable - 0x0, //MultisampleEnable - 0x0 //AntialiasedLineEnable - }; - SAFE_D3D_CALL(pDevice->CreateRasterizerState(&RasterStateDesc, &m_pRasterizerState_NoCull_NoScissor)); - } - pDeviceContext->RSSetState(m_pRasterizerState_NoCull_NoScissor); - - pDeviceContext->VSSetShader(m_pGeometryVS, NULL, 0); - pDeviceContext->PSSetShader(m_pGeometryPS, NULL, 0); - - struct GlobalConstantBuffer - { - XMMATRIX WorldView; - XMMATRIX WorldViewInverse; - XMMATRIX WorldViewProjection; - float IsWhite; - float Pad[3]; - }; - - if (!m_pConstantBuffer) - { - static D3D11_BUFFER_DESC desc = - { - sizeof(GlobalConstantBuffer), //ByteWidth - D3D11_USAGE_DEFAULT, //Usage - D3D11_BIND_CONSTANT_BUFFER, //BindFlags - 0, //CPUAccessFlags - 0 //MiscFlags - }; - SAFE_D3D_CALL(pDevice->CreateBuffer(&desc, NULL, &m_pConstantBuffer)); - } - - float NearPlane = .01f; - float FarPlane = 500.0f; - float AspectRatio = (float)m_BackBufferDesc.Width / (float)m_BackBufferDesc.Height; - m_ViewInfo.ProjectionMatrix = XMMatrixPerspectiveFovLH(40.f * 3.141592f / 180.f, AspectRatio, NearPlane, FarPlane); - m_ViewInfo.WorldViewMatrix = XMMatrixIdentity(); - - XMMATRIX WorldViewMatrix; - GlobalConstantBuffer Constants = {}; - Constants.WorldView = m_ViewInfo.WorldViewMatrix; - Constants.WorldViewProjection = m_ViewInfo.ProjectionMatrix; - Constants.IsWhite = true; - Constants.WorldViewInverse = XMMatrixInverse(NULL, Constants.WorldView); - pDeviceContext->UpdateSubresource(m_pConstantBuffer, 0, NULL, &Constants, 0, 0); - - pDeviceContext->VSSetConstantBuffers(0, 1, &m_pConstantBuffer); - pDeviceContext->PSSetConstantBuffers(0, 1, &m_pConstantBuffer); - - if (!m_pVB) - { - static D3D11_BUFFER_DESC BufferDesc = - { - UINT(m_Mesh.vertices.size() * sizeof(m_Mesh.vertices[0])), //ByteWidth - D3D11_USAGE_DEFAULT, //Usage - D3D11_BIND_VERTEX_BUFFER, //BindFlags - 0, //CPUAccessFlags - 0, //MiscFlags - 0 //StructureByteStride - }; - - D3D11_SUBRESOURCE_DATA SubResourceData = { m_Mesh.vertices.data() /*pSysMem*/, 0 /*SysMemPitch*/, 0 /*SysMemSlicePitch*/ }; - SAFE_D3D_CALL(pDevice->CreateBuffer(&BufferDesc, &SubResourceData, &m_pVB)); - } - - if (!m_pIB) - { - static D3D11_BUFFER_DESC BufferDesc = - { - UINT(m_Mesh.indices.size() * sizeof(m_Mesh.indices[0])), //ByteWidth - D3D11_USAGE_DEFAULT, //Usage - D3D11_BIND_INDEX_BUFFER, //BindFlags - 0, //CPUAccessFlags - 0, //MiscFlags - 0 //StructureByteStride - }; - - D3D11_SUBRESOURCE_DATA SubResourceData = { m_Mesh.indices.data() /*pSysMem*/, 0 /*SysMemPitch*/, 0 /*SysMemSlicePitch*/ }; - SAFE_D3D_CALL(pDevice->CreateBuffer(&BufferDesc, &SubResourceData, &m_pIB)); - } - - if (!m_pInputLayout) - { - D3D11_INPUT_ELEMENT_DESC VertexLayout[] = - { - { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, - { "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 }, - }; - - UINT NumElements = sizeof(VertexLayout) / sizeof(VertexLayout[0]); - SAFE_D3D_CALL(pDevice->CreateInputLayout(VertexLayout, NumElements, g_GeometryVS, sizeof(g_GeometryVS), &m_pInputLayout)); - } - - assert(sizeof(m_Mesh.indices[0]) == 4); - DXGI_FORMAT IBFormat = DXGI_FORMAT_R32_UINT; - UINT Stride = sizeof(m_Mesh.vertices[0]); - UINT Offset = 0; - pDeviceContext->IASetVertexBuffers(0, 1, &m_pVB, &Stride, &Offset); - pDeviceContext->IASetIndexBuffer(m_pIB, IBFormat, 0); - pDeviceContext->IASetInputLayout(m_pInputLayout); - pDeviceContext->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); - - pDeviceContext->DrawIndexed(UINT(m_Mesh.indices.size()), 0, 0); - } - - void DrawHBAO(ID3D11Device*, ID3D11DeviceContext* pDeviceContext, ID3D11RenderTargetView* pRTV) - { - GPUTimer TimerScope(&g_GPUTimers, pDeviceContext, GPU_TIME_AO); - - GFSDK_SSAO_InputData_D3D11 Input; - - Input.DepthData.DepthTextureType = GFSDK_SSAO_HARDWARE_DEPTHS; - Input.DepthData.pFullResDepthTextureSRV = m_pSceneRTs->DepthStencilSRV; - Input.DepthData.ProjectionMatrix.Data = GFSDK_SSAO_Float4x4((CONST FLOAT*)&m_ViewInfo.ProjectionMatrix); - Input.DepthData.ProjectionMatrix.Layout = GFSDK_SSAO_ROW_MAJOR_ORDER; - Input.DepthData.MetersToViewSpaceUnits = 0.005f; - - if (m_UseGBufferNormals) - { - Input.NormalData.Enable = TRUE; - Input.NormalData.pFullResNormalTextureSRV = m_pSceneRTs->NormalSRV; - Input.NormalData.WorldToViewMatrix.Data = GFSDK_SSAO_Float4x4((CONST FLOAT*)&m_ViewInfo.WorldViewMatrix); - Input.NormalData.WorldToViewMatrix.Layout = GFSDK_SSAO_ROW_MAJOR_ORDER; - Input.NormalData.DecodeScale = 2.f; - Input.NormalData.DecodeBias = -1.f; - } - - GFSDK_SSAO_Output_D3D11 Output; - Output.pRenderTargetView = pRTV;// m_pSceneRTs->ColorRTV; - Output.Blend.Mode = GFSDK_SSAO_OVERWRITE_RGB; - - GFSDK_SSAO_Parameters AOParams; - AOParams.Radius = m_AORadius; - AOParams.Bias = m_AOBias; - AOParams.SmallScaleAO = m_SmallScaleAO; - AOParams.LargeScaleAO = m_LargeScaleAO; - AOParams.PowerExponent = m_PowerExponent; - AOParams.Blur.Enable = m_BlurAO; - AOParams.Blur.Sharpness = m_BlurSharpness; - AOParams.Blur.Radius = GFSDK_SSAO_BLUR_RADIUS_4; - - const GFSDK_SSAO_RenderMask RenderMask = m_DebugNormals ? GFSDK_SSAO_RENDER_DEBUG_NORMAL_Z : GFSDK_SSAO_RENDER_AO; - - GFSDK_SSAO_Status Status; - Status = m_pAOContext->RenderAO(pDeviceContext, Input, AOParams, Output, RenderMask); - assert(Status == GFSDK_SSAO_OK); - } - - void ReleaseHBAO() - { - SAFE_RELEASE(m_pAOContext); - - g_GPUTimers.Release(); - } - - void ReleaseGeometry() - { - SAFE_RELEASE(m_pVB); - SAFE_RELEASE(m_pIB); - SAFE_RELEASE(m_pConstantBuffer); - SAFE_RELEASE(m_pInputLayout); - - SAFE_RELEASE(m_pDepthStencilState_Enabled); - SAFE_RELEASE(m_pBlendState_Disabled); - SAFE_RELEASE(m_pRasterizerState_NoCull_NoScissor); - } - - DXGI_SURFACE_DESC m_BackBufferDesc; - GFSDK_SSAO_Context_D3D11* m_pAOContext; - float m_AORadius; - float m_AOBias; - bool m_BlurAO; - float m_BlurSharpness; - float m_PowerExponent; - float m_SmallScaleAO; - float m_LargeScaleAO; - - Mesh m_Mesh; - ID3D11Buffer* m_pVB; - ID3D11Buffer* m_pIB; - ID3D11Buffer* m_pConstantBuffer; - ID3D11InputLayout* m_pInputLayout; - ID3D11VertexShader* m_pGeometryVS; - ID3D11PixelShader* m_pGeometryPS; - - struct ViewInfo - { - XMMATRIX WorldViewMatrix; - XMMATRIX ProjectionMatrix; - }; - ViewInfo m_ViewInfo; - - ID3D11DepthStencilState* m_pDepthStencilState_Enabled; - ID3D11BlendState* m_pBlendState_Disabled; - ID3D11RasterizerState* m_pRasterizerState_NoCull_NoScissor; - - SceneRTs* m_pSceneRTs; - bool m_UseGBufferNormals; - bool m_DebugNormals; -}; - -int WINAPI wWinMain(HINSTANCE , HINSTANCE , LPWSTR , int ) -{ - // Enable run-time memory check for debug builds. -#if defined(DEBUG) - _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); -#endif - - g_DeviceManager = new DeviceManager(); - VisualController Controller; - g_DeviceManager->AddControllerToFront(&Controller); - - DeviceCreationParameters DeviceParams; -#if _DEBUG - DeviceParams.createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG; -#endif - DeviceParams.swapChainFormat = DXGI_FORMAT_R8G8B8A8_UNORM; - DeviceParams.swapChainSampleCount = 1; - DeviceParams.startFullscreen = false; - DeviceParams.backBufferWidth = 1280; - DeviceParams.backBufferHeight = 720; - - if(FAILED(g_DeviceManager->CreateWindowDeviceAndSwapChain(DeviceParams, L"NVIDIA HBAO+"))) - { - MessageBox(NULL, L"Cannot initialize the D3D11 device with the requested parameters", L"Error", MB_OK | MB_ICONERROR); - return 1; - } - - g_DeviceManager->MessageLoop(); - - delete g_DeviceManager; // destructor calls Shutdown() - - return 0; -} diff --git a/samples/D3D11/src/SSAO11.manifest b/samples/D3D11/src/SSAO11.manifest deleted file mode 100644 index 504a407..0000000 --- a/samples/D3D11/src/SSAO11.manifest +++ /dev/null @@ -1,22 +0,0 @@ - - - - SSAO11 - - - - - - diff --git a/samples/D3D11/src/SSAO11.rc b/samples/D3D11/src/SSAO11.rc deleted file mode 100644 index 628e3ee..0000000 --- a/samples/D3D11/src/SSAO11.rc +++ /dev/null @@ -1,72 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "WinResRc.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""WinResRc.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON1 ICON "..\\Media\\directx.ico" -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/samples/D3D11/src/SSAO11_2015.sln b/samples/D3D11/src/SSAO11_2015.sln deleted file mode 100644 index 37ced06..0000000 --- a/samples/D3D11/src/SSAO11_2015.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.24720.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Demo", "SSAO11_2015.vcxproj", "{A66D14E4-918C-493C-81C9-7661CCCE336D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A66D14E4-918C-493C-81C9-7661CCCE336D}.Debug|x86.ActiveCfg = Debug|Win32 - {A66D14E4-918C-493C-81C9-7661CCCE336D}.Debug|x86.Build.0 = Debug|Win32 - {A66D14E4-918C-493C-81C9-7661CCCE336D}.Release|x86.ActiveCfg = Release|Win32 - {A66D14E4-918C-493C-81C9-7661CCCE336D}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/samples/D3D11/src/SSAO11_2015.vcxproj b/samples/D3D11/src/SSAO11_2015.vcxproj deleted file mode 100644 index f1b50a0..0000000 --- a/samples/D3D11/src/SSAO11_2015.vcxproj +++ /dev/null @@ -1,447 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - SampleApp_D3D11 - {A66D14E4-918C-493C-81C9-7661CCCE336D} - EmptyProject10 - Win32Proj - 8.1 - - - - Application - v100 - - - Application - v100 - - - Application - v140 - Unicode - - - Application - v140 - Unicode - - - Application - v140 - Unicode - - - Application - v140 - Unicode - - - Application - v100 - Unicode - - - Application - v140 - Unicode - - - Application - v140 - Unicode - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>11.0.50727.1 - - - ..\Bin\ - ..\Temp\$(Configuration)\$(ProjectName)\ - true - true - true - $(ProjectName)d.win32 - - - true - true - true - $(ProjectName)d.win64 - - - ..\Bin\ - ..\Temp\$(Configuration)\$(ProjectName)\ - true - false - - - ..\Bin\ - ..\Temp\$(Configuration)\$(ProjectName)\ - false - true - true - $(ProjectName).win32 - - - false - true - true - $(ProjectName).win64 - - - ..\Bin\ - ..\Temp\$(Configuration)\$(ProjectName)\ - false - false - - - ..\..\Bin\ - ..\..\Temp\$(Configuration)\$(ProjectName)\ - false - false - - - ..\Temp\$(Configuration)\$(ProjectName)\ - ..\Bin\ - - - - Disabled - ..\external\AntTweakBar\1.16\include;..\external\zlib\1.2.8\src;..\..\..\include;..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - Default - MultiThreadedDebugDLL - false - NotUsing - - - - - Level4 - EditAndContinue - - - 0x0000 - - - /IGNORE:4089 %(AdditionalOptions) - GFSDK_SSAO_D3D11.win32.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) - $(OutDir)$(TargetName)$(TargetExt) - ..\external\AntTweakBar\1.16\Lib\Win32;..\..\..\lib;%(AdditionalLibraryDirectories) - $(IntDir)$(ProjectName).manifest - %(IgnoreSpecificDefaultLibraries) - true - $(TargetDir)$(TargetName).pdb - Windows - false - - MachineX86 - - - copy /Y ..\..\..\lib\GFSDK_SSAO_D3D11.win32.dll ..\Bin - - - - - Disabled - ..\external\AntTweakBar\1.16\include;..\external\zlib\1.2.8\src;..\..\..\lib;..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - Default - MultiThreadedDebugDLL - false - - - DXUT.h - - - Level4 - ProgramDatabase - - - 0x0000 - - - /IGNORE:4089 %(AdditionalOptions) - GFSDK_SSAO_D3D11.win32.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) - $(OutDir)$(TargetName)$(TargetExt) - ..\external\AntTweakBar\1.16\Lib\Win32;..\external\zlib\lib\x86;%OUTPUT_DIR_LIB%;..\..\..\lib;%(AdditionalLibraryDirectories) - $(IntDir)$(ProjectName).manifest - %(IgnoreSpecificDefaultLibraries) - true - $(TargetDir)$(TargetName).pdb - Windows - false - - - - - copy /Y ..\..\..\lib\GFSDK_SSAO_D3D11.win64.dll ..\Bin - - - - - X64 - - - Disabled - ..\external\AntTweakBar\1.16\include;..\external\zlib\1.2.8\src;..\..\..\include;..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;PROFILE;%(PreprocessorDefinitions) - true - Default - MultiThreadedDebug - NotUsing - - - Level4 - ProgramDatabase - - - /IGNORE:4089 %(AdditionalOptions) - GFSDK_SSAO_D3D11.win64.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) - true - $(OutDir)EmptyProject10.pdb - Windows - false - - MachineX64 - ..\external\AntTweakBar\1.16\Lib\Win64;..\..\..\lib;%(AdditionalLibraryDirectories) - - - - - MaxSpeed - OnlyExplicitInline - true - ..\external\AntTweakBar\1.16\include;..\external\zlib\1.2.8\src;..\..\..\include;..\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - Sync - MultiThreadedDLL - false - true - StreamingSIMDExtensions - NotUsing - - - - - Level4 - - - - 0x0000 - - - /IGNORE:4089 %(AdditionalOptions) - GFSDK_SSAO_D3D11.win32.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) - $(OutDir)$(TargetName)$(TargetExt) - ..\external\AntTweakBar\1.16\Lib\Win32;..\..\..\lib;%(AdditionalLibraryDirectories) - $(IntDir)$(ProjectName).manifest - %(IgnoreSpecificDefaultLibraries) - false - Windows - true - true - false - - MachineX86 - - - copy /Y ..\..\..\lib\GFSDK_SSAO_D3D11.win32.dll ..\Bin - - - - - MaxSpeed - OnlyExplicitInline - true - ..\external\AntTweakBar\1.16\include;..\external\zlib\1.2.8\src;..\..\..\lib;..\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - Sync - MultiThreadedDLL - false - true - - - DXUT.h - - - Level4 - - - - - 0x0000 - - - /IGNORE:4089 %(AdditionalOptions) - GFSDK_SSAO_D3D11.win32.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) - $(OutDir)$(ProjectName).win32.exe - ..\external\AntTweakBar\1.16\Lib\Win32;%OUTPUT_DIR_LIB%;..\..\..\lib;%(AdditionalLibraryDirectories) - $(IntDir)$(ProjectName).manifest - %(IgnoreSpecificDefaultLibraries) - false - Windows - true - true - false - - - - - copy /Y ..\..\..\lib\GFSDK_SSAO_D3D11.win64.dll ..\Bin - - - - - X64 - - - MaxSpeed - OnlyExplicitInline - true - ..\external\AntTweakBar\1.16\include;..\external\zlib\1.2.8\src;..\..\..\include;..\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - Async - MultiThreaded - true - NotUsing - - - Level4 - ProgramDatabase - - - /IGNORE:4089 %(AdditionalOptions) - GFSDK_SSAO_D3D11.win64.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) - $(OutDir)$(TargetName)$(TargetExt) - true - Windows - true - true - false - - MachineX64 - ..\external\AntTweakBar\1.16\Lib\Win64;..\..\..\lib;%(AdditionalLibraryDirectories) - - - - - X64 - - - MaxSpeed - OnlyExplicitInline - true - ..\..\..\public\testapp\include\DXSDK;..\..\..\public\testapp\include\DXUT\Core;..\..\..\public\testapp\include\DXUT\Optional;..\..\..\public\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;PROFILE;%(PreprocessorDefinitions) - true - - MultiThreaded - true - Create - DXUT.h - Level4 - ProgramDatabase - - - /IGNORE:4089 %(AdditionalOptions) - dxerr9.lib;dxguid.lib;d3dx9.lib;d3d9.lib;winmm.lib;comctl32.lib;%(AdditionalDependencies) - $(OutDir)EmptyProject10.exe - true - Windows - true - true - false - - MachineX64 - ..\..\lib\x64;..\lib;%(AdditionalLibraryDirectories) - - - - - ..\external\DXSDK\June_2010\Include;..\include\DXUT\Core;..\include\DXUT\Optional;..\..\..\lib;..\include;%(AdditionalIncludeDirectories) - - - ..\external\DXSDK\June_2010\Lib\x86;%OUTPUT_DIR_LIB%;..\..\..\lib;..\lib;%(AdditionalLibraryDirectories) - - - copy /Y ..\..\..\lib\GFSDK_SSAO.win32.dll ..\Bin - - - - - - ..\external\DXSDK\June_2010\Include;..\include\DXUT\Core;..\include\DXUT\Optional;..\..\..\lib;..\include;%(AdditionalIncludeDirectories) - - - ..\external\DXSDK\June_2010\Lib\x86;%OUTPUT_DIR_LIB%;..\..\..\lib;..\lib;%(AdditionalLibraryDirectories) - - - copy /Y ..\..\..\lib\GFSDK_SSAO.win32.dll ..\Bin - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/D3D11/src/SSAO11_2015.vcxproj.filters b/samples/D3D11/src/SSAO11_2015.vcxproj.filters deleted file mode 100644 index 2fad1ae..0000000 --- a/samples/D3D11/src/SSAO11_2015.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/D3D11/src/SceneRTs.h b/samples/D3D11/src/SceneRTs.h deleted file mode 100644 index be6105f..0000000 --- a/samples/D3D11/src/SceneRTs.h +++ /dev/null @@ -1,196 +0,0 @@ -/* -* Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. -* -* NVIDIA CORPORATION and its licensors retain all intellectual property -* and proprietary rights in and to this software, related documentation -* and any modifications thereto. Any use, reproduction, disclosure or -* distribution of this software and related documentation without an express -* license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ - -#pragma once - -#include - -#ifndef SAFE_RELEASE -#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } } -#endif - -struct SceneRTs -{ - struct Desc - { - UINT OutputWidth; - UINT OutputHeight; - UINT BorderPixels; - UINT SampleCount; - }; - - SceneRTs(ID3D11Device* pDevice, Desc &desc) - : Width(desc.OutputWidth + 2 * desc.BorderPixels) - , Height(desc.OutputHeight + 2 * desc.BorderPixels) - , OutputWidth(desc.OutputWidth) - , OutputHeight(desc.OutputHeight) - , BorderPixels(desc.BorderPixels) - , SampleCount(desc.SampleCount) - { - CreateGBufferTextures(pDevice); - CreateOutputTexture(pDevice); - CreateDepthTexture(pDevice); - } - - void CreateGBufferTextures(ID3D11Device* pDevice) - { - D3D11_TEXTURE2D_DESC texDesc; - texDesc.Width = Width; - texDesc.Height = Height; - texDesc.ArraySize = 1; - texDesc.MiscFlags = 0; - texDesc.MipLevels = 1; - texDesc.BindFlags = D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE; - texDesc.Usage = D3D11_USAGE_DEFAULT; - texDesc.CPUAccessFlags = NULL; - - // Allocate MSAA color buffer - texDesc.SampleDesc.Count = SampleCount; - texDesc.SampleDesc.Quality = 0; - texDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - - pDevice->CreateTexture2D(&texDesc, NULL, &ColorTexture); - pDevice->CreateRenderTargetView(ColorTexture, NULL, &ColorRTV); - pDevice->CreateShaderResourceView(ColorTexture, NULL, &ColorSRV); - - // Allocate MSAA normal buffer - texDesc.Format = DXGI_FORMAT_R11G11B10_FLOAT; - - pDevice->CreateTexture2D(&texDesc, NULL, &NormalTexture); - pDevice->CreateRenderTargetView(NormalTexture, NULL, &NormalRTV); - pDevice->CreateShaderResourceView(NormalTexture, NULL, &NormalSRV); - - // Allocate non-MSAA color buffer - texDesc.SampleDesc.Count = 1; - texDesc.SampleDesc.Quality = 0; - texDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - - pDevice->CreateTexture2D(&texDesc, NULL, &ResolvedColorTexture); - pDevice->CreateRenderTargetView(ColorTexture, NULL, &ResolvedColorRTV); - pDevice->CreateShaderResourceView(ColorTexture, NULL, &ResolvedColorSRV); - } - - void CreateOutputTexture(ID3D11Device* pDevice) - { - D3D11_TEXTURE2D_DESC texDesc; - texDesc.Width = OutputWidth; - texDesc.Height = OutputHeight; - texDesc.ArraySize = 1; - texDesc.MiscFlags = 0; - texDesc.MipLevels = 1; - texDesc.BindFlags = D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE; - texDesc.Usage = D3D11_USAGE_DEFAULT; - texDesc.CPUAccessFlags = NULL; - texDesc.SampleDesc.Count = 1; - texDesc.SampleDesc.Quality = 0; - texDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - - pDevice->CreateTexture2D(&texDesc, NULL, &OutputTexture); - pDevice->CreateRenderTargetView(OutputTexture, NULL, &OutputRTV); - pDevice->CreateShaderResourceView(OutputTexture, NULL, &OutputSRV); - } - - void CreateDepthTexture(ID3D11Device* pDevice) - { - // Create a hardware-depth texture that can be fetched from a shader. - // To do so, use a TYPELESS format and set the D3D11_BIND_SHADER_RESOURCE flag. - // D3D10.0 did not allow creating such a depth texture with SampleCount > 1. - // This is now possible since D3D10.1. - D3D11_TEXTURE2D_DESC texDesc; - texDesc.ArraySize = 1; - texDesc.BindFlags = D3D11_BIND_DEPTH_STENCIL | D3D11_BIND_SHADER_RESOURCE; - texDesc.CPUAccessFlags = NULL; - texDesc.Width = Width; - texDesc.Height = Height; - texDesc.MipLevels = 1; - texDesc.MiscFlags = NULL; - texDesc.SampleDesc.Count = SampleCount; - texDesc.SampleDesc.Quality = 0; - texDesc.Usage = D3D11_USAGE_DEFAULT; - texDesc.Format = DXGI_FORMAT_R24G8_TYPELESS; - pDevice->CreateTexture2D(&texDesc, NULL, &DepthStencilTexture); - - // Create a depth-stencil view - D3D11_DEPTH_STENCIL_VIEW_DESC dsvDesc; - dsvDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; - if (SampleCount > 1) - { - dsvDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DMS; - } - else - { - dsvDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; - } - dsvDesc.Texture2D.MipSlice = 0; - dsvDesc.Flags = 0; // new in D3D11 - pDevice->CreateDepthStencilView(DepthStencilTexture, &dsvDesc, &DepthStencilDSV); - - // Create a shader resource view - D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc; - if (SampleCount > 1) - { - srvDesc.Format = DXGI_FORMAT_R24_UNORM_X8_TYPELESS; - srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DMS; - } - else - { - srvDesc.Format = DXGI_FORMAT_R24_UNORM_X8_TYPELESS; - srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; - srvDesc.Texture2D.MipLevels = 1; - srvDesc.Texture2D.MostDetailedMip = 0; - } - pDevice->CreateShaderResourceView(DepthStencilTexture, &srvDesc, &DepthStencilSRV); - } - - ~SceneRTs() - { - SAFE_RELEASE(ColorTexture); - SAFE_RELEASE(ColorRTV); - SAFE_RELEASE(ColorSRV); - - SAFE_RELEASE(ResolvedColorTexture); - SAFE_RELEASE(ResolvedColorRTV); - SAFE_RELEASE(ResolvedColorSRV); - - SAFE_RELEASE(NormalTexture); - SAFE_RELEASE(NormalRTV); - SAFE_RELEASE(NormalSRV); - - SAFE_RELEASE(OutputTexture); - SAFE_RELEASE(OutputRTV); - SAFE_RELEASE(OutputSRV); - - SAFE_RELEASE(DepthStencilTexture); - SAFE_RELEASE(DepthStencilSRV); - SAFE_RELEASE(DepthStencilDSV); - } - - UINT Width; - UINT Height; - UINT OutputWidth; - UINT OutputHeight; - UINT BorderPixels; - UINT SampleCount; - ID3D11Texture2D* ColorTexture; - ID3D11RenderTargetView* ColorRTV; - ID3D11ShaderResourceView* ColorSRV; - ID3D11Texture2D* ResolvedColorTexture; - ID3D11RenderTargetView* ResolvedColorRTV; - ID3D11ShaderResourceView* ResolvedColorSRV; - ID3D11Texture2D* NormalTexture; - ID3D11RenderTargetView* NormalRTV; - ID3D11ShaderResourceView* NormalSRV; - ID3D11Texture2D* OutputTexture; - ID3D11RenderTargetView* OutputRTV; - ID3D11ShaderResourceView* OutputSRV; - ID3D11Texture2D* DepthStencilTexture; - ID3D11ShaderResourceView* DepthStencilSRV; - ID3D11DepthStencilView* DepthStencilDSV; -}; diff --git a/samples/D3D11/src/SibenikIndices.bin b/samples/D3D11/src/SibenikIndices.bin deleted file mode 100644 index 8775c0c..0000000 Binary files a/samples/D3D11/src/SibenikIndices.bin and /dev/null differ diff --git a/samples/D3D11/src/SibenikVertices.bin b/samples/D3D11/src/SibenikVertices.bin deleted file mode 100644 index 561d39e..0000000 Binary files a/samples/D3D11/src/SibenikVertices.bin and /dev/null differ diff --git a/samples/D3D11/src/shaders/bin/CopyColorPS.h b/samples/D3D11/src/shaders/bin/CopyColorPS.h deleted file mode 100644 index 03a551e..0000000 --- a/samples/D3D11/src/shaders/bin/CopyColorPS.h +++ /dev/null @@ -1,168 +0,0 @@ -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// -// fxc /O3 /T ps_5_0 src/Scene3D.hlsl /E CopyColorPS /Fh bin/CopyColorPS.h -// -// -// Resource Bindings: -// -// Name Type Format Dim Slot Elements -// ------------------------------ ---------- ------- ----------- ---- -------- -// PointSampler sampler NA NA 0 1 -// tColor texture float3 2d 0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_Position 0 xyzw 0 POS float -// TexCoord 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_TARGET 0 xyzw 0 TARGET float xyzw -// -ps_5_0 -dcl_globalFlags refactoringAllowed -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -dcl_temps 1 -sample_indexable(texture2d)(float,float,float,float) r0.xyz, v1.xyxx, t0.xyzw, s0 -mov o0.xyz, r0.xyzx -mov o0.w, l(1.000000) -ret -// Approximately 4 instruction slots used -#endif - -const BYTE g_CopyColorPS[] = -{ - 68, 88, 66, 67, 135, 247, - 240, 213, 242, 107, 236, 51, - 243, 123, 169, 205, 39, 122, - 55, 177, 1, 0, 0, 0, - 208, 2, 0, 0, 5, 0, - 0, 0, 52, 0, 0, 0, - 0, 1, 0, 0, 88, 1, - 0, 0, 140, 1, 0, 0, - 52, 2, 0, 0, 82, 68, - 69, 70, 196, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 60, 0, 0, 0, 0, 5, - 255, 255, 0, 129, 0, 0, - 144, 0, 0, 0, 82, 68, - 49, 49, 60, 0, 0, 0, - 24, 0, 0, 0, 32, 0, - 0, 0, 40, 0, 0, 0, - 36, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 0, 0, - 124, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 137, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 1, 0, 0, 0, - 9, 0, 0, 0, 80, 111, - 105, 110, 116, 83, 97, 109, - 112, 108, 101, 114, 0, 116, - 67, 111, 108, 111, 114, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 57, 46, 57, 53, - 50, 46, 51, 49, 49, 49, - 0, 171, 171, 171, 73, 83, - 71, 78, 80, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 68, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 3, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 84, 101, 120, 67, - 111, 111, 114, 100, 0, 171, - 171, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 65, 82, - 71, 69, 84, 0, 171, 171, - 83, 72, 69, 88, 160, 0, - 0, 0, 80, 0, 0, 0, - 40, 0, 0, 0, 106, 8, - 0, 1, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 69, 0, 0, 139, - 194, 0, 0, 128, 67, 85, - 21, 0, 114, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 5, 114, 32, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 5, 130, 32, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 62, 0, 0, 1, - 83, 84, 65, 84, 148, 0, - 0, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 -}; diff --git a/samples/D3D11/src/shaders/bin/FullScreenTriangleVS.h b/samples/D3D11/src/shaders/bin/FullScreenTriangleVS.h deleted file mode 100644 index 64e3281..0000000 --- a/samples/D3D11/src/shaders/bin/FullScreenTriangleVS.h +++ /dev/null @@ -1,168 +0,0 @@ -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// -// fxc /O3 /T vs_5_0 src/Scene3D.hlsl /E FullScreenTriangleVS /Fh -// bin/FullScreenTriangleVS.h -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_VertexID 0 x 0 VERTID uint x -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_Position 0 xyzw 0 POS float xyzw -// TexCoord 0 xy 1 NONE float xy -// -vs_5_0 -dcl_globalFlags refactoringAllowed -dcl_input_sgv v0.x, vertex_id -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -dcl_temps 1 -bfi r0.x, l(1), l(1), v0.x, l(0) -and r0.z, v0.x, l(2) -utof r0.xy, r0.xzxx -mad o0.xy, r0.xyxx, l(2.000000, -2.000000, 0.000000, 0.000000), l(-1.000000, 1.000000, 0.000000, 0.000000) -mov o1.xy, r0.xyxx -mov o0.zw, l(0,0,0,1.000000) -ret -// Approximately 7 instruction slots used -#endif - -const BYTE g_FullScreenTriangleVS[] = -{ - 68, 88, 66, 67, 52, 104, - 138, 187, 33, 254, 6, 251, - 172, 170, 188, 203, 33, 161, - 7, 239, 1, 0, 0, 0, - 236, 2, 0, 0, 5, 0, - 0, 0, 52, 0, 0, 0, - 172, 0, 0, 0, 224, 0, - 0, 0, 56, 1, 0, 0, - 80, 2, 0, 0, 82, 68, - 69, 70, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 60, 0, 0, 0, 0, 5, - 254, 255, 0, 129, 0, 0, - 60, 0, 0, 0, 82, 68, - 49, 49, 60, 0, 0, 0, - 24, 0, 0, 0, 32, 0, - 0, 0, 40, 0, 0, 0, - 36, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 0, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 57, 46, 57, 53, - 50, 46, 51, 49, 49, 49, - 0, 171, 171, 171, 73, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 1, - 0, 0, 83, 86, 95, 86, - 101, 114, 116, 101, 120, 73, - 68, 0, 79, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 12, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 84, 101, 120, 67, 111, 111, - 114, 100, 0, 171, 171, 171, - 83, 72, 69, 88, 16, 1, - 0, 0, 80, 0, 1, 0, - 68, 0, 0, 0, 106, 8, - 0, 1, 96, 0, 0, 4, - 18, 16, 16, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 1, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 140, 0, 0, 11, 18, 0, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 1, 0, - 0, 0, 1, 64, 0, 0, - 1, 0, 0, 0, 10, 16, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 7, - 66, 0, 16, 0, 0, 0, - 0, 0, 10, 16, 16, 0, - 0, 0, 0, 0, 1, 64, - 0, 0, 2, 0, 0, 0, - 86, 0, 0, 5, 50, 0, - 16, 0, 0, 0, 0, 0, - 134, 0, 16, 0, 0, 0, - 0, 0, 50, 0, 0, 15, - 50, 32, 16, 0, 0, 0, - 0, 0, 70, 0, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 64, - 0, 0, 0, 192, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 191, 0, 0, 128, 63, - 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 5, - 50, 32, 16, 0, 1, 0, - 0, 0, 70, 0, 16, 0, - 0, 0, 0, 0, 54, 0, - 0, 8, 194, 32, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 63, - 62, 0, 0, 1, 83, 84, - 65, 84, 148, 0, 0, 0, - 7, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 -}; diff --git a/samples/D3D11/src/shaders/bin/GeometryPS.h b/samples/D3D11/src/shaders/bin/GeometryPS.h deleted file mode 100644 index 8cbc839..0000000 --- a/samples/D3D11/src/shaders/bin/GeometryPS.h +++ /dev/null @@ -1,315 +0,0 @@ -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// -// fxc /O3 /T ps_5_0 src/Scene3D.hlsl /E GeometryPS /Fh bin/GeometryPS.h -// -// -// Buffer Definitions: -// -// cbuffer GlobalConstantBuffer -// { -// -// row_major float4x4 g_WorldView; // Offset: 0 Size: 64 [unused] -// row_major float4x4 g_WorldViewInverse;// Offset: 64 Size: 64 -// row_major float4x4 g_WorldViewProjection;// Offset: 128 Size: 64 [unused] -// float g_IsWhite; // Offset: 192 Size: 4 -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim Slot Elements -// ------------------------------ ---------- ------- ----------- ---- -------- -// GlobalConstantBuffer cbuffer NA NA 0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_POSITION 0 xyzw 0 POS float -// TEXCOORD 0 xyz 1 NONE float xyz -// TEXCOORD 1 xyz 2 NONE float -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_Target 0 xyzw 0 TARGET float xyzw -// SV_Target 1 xyz 1 TARGET float xyz -// -ps_5_0 -dcl_globalFlags refactoringAllowed -dcl_constantbuffer cb0[13], immediateIndexed -dcl_input_ps linear centroid v1.xyz -dcl_output o0.xyzw -dcl_output o1.xyz -dcl_temps 3 -ne r0.x, l(0.000000, 0.000000, 0.000000, 0.000000), cb0[12].x -movc o0.xyzw, r0.xxxx, l(1.000000,1.000000,1.000000,1.000000), l(0.457000,0.722000,0,1.000000) -deriv_rtx_coarse r0.xyz, v1.zxyz -deriv_rty_coarse r1.xyz, v1.yzxy -mul r2.xyz, r0.xyzx, r1.xyzx -mad r0.xyz, r0.zxyz, r1.yzxy, -r2.xyzx -dp3 r0.w, r0.xyzx, r0.xyzx -rsq r0.w, r0.w -mul r0.xyz, r0.wwww, r0.xyzx -mul r1.xyz, r0.yyyy, cb0[5].xyzx -mad r0.xyw, r0.xxxx, cb0[4].xyxz, r1.xyxz -mad r0.xyz, r0.zzzz, cb0[6].xyzx, r0.xywx -mad o1.xyz, r0.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000) -ret -// Approximately 14 instruction slots used -#endif - -const BYTE g_GeometryPS[] = -{ - 68, 88, 66, 67, 166, 194, - 48, 172, 249, 92, 247, 65, - 27, 247, 154, 59, 213, 36, - 173, 34, 1, 0, 0, 0, - 176, 5, 0, 0, 5, 0, - 0, 0, 52, 0, 0, 0, - 56, 2, 0, 0, 168, 2, - 0, 0, 244, 2, 0, 0, - 20, 5, 0, 0, 82, 68, - 69, 70, 252, 1, 0, 0, - 1, 0, 0, 0, 116, 0, - 0, 0, 1, 0, 0, 0, - 60, 0, 0, 0, 0, 5, - 255, 255, 0, 129, 0, 0, - 200, 1, 0, 0, 82, 68, - 49, 49, 60, 0, 0, 0, - 24, 0, 0, 0, 32, 0, - 0, 0, 40, 0, 0, 0, - 36, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 0, 0, - 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 71, 108, 111, 98, - 97, 108, 67, 111, 110, 115, - 116, 97, 110, 116, 66, 117, - 102, 102, 101, 114, 0, 171, - 171, 171, 92, 0, 0, 0, - 4, 0, 0, 0, 140, 0, - 0, 0, 208, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 44, 1, 0, 0, - 0, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 68, 1, 0, 0, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 104, 1, 0, 0, 64, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 68, 1, - 0, 0, 0, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 123, 1, - 0, 0, 128, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 68, 1, 0, 0, - 0, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 145, 1, 0, 0, - 192, 0, 0, 0, 4, 0, - 0, 0, 2, 0, 0, 0, - 164, 1, 0, 0, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 103, 95, 87, 111, 114, 108, - 100, 86, 105, 101, 119, 0, - 102, 108, 111, 97, 116, 52, - 120, 52, 0, 171, 171, 171, - 2, 0, 3, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 56, 1, 0, 0, - 103, 95, 87, 111, 114, 108, - 100, 86, 105, 101, 119, 73, - 110, 118, 101, 114, 115, 101, - 0, 103, 95, 87, 111, 114, - 108, 100, 86, 105, 101, 119, - 80, 114, 111, 106, 101, 99, - 116, 105, 111, 110, 0, 103, - 95, 73, 115, 87, 104, 105, - 116, 101, 0, 102, 108, 111, - 97, 116, 0, 171, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 155, 1, 0, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 57, 46, 57, 53, - 50, 46, 51, 49, 49, 49, - 0, 171, 171, 171, 73, 83, - 71, 78, 104, 0, 0, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 80, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 7, 7, - 0, 0, 92, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 7, 0, - 0, 0, 83, 86, 95, 80, - 79, 83, 73, 84, 73, 79, - 78, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 171, 171, 79, 83, 71, 78, - 68, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 56, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 7, 8, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171, - 83, 72, 69, 88, 24, 2, - 0, 0, 80, 0, 0, 0, - 134, 0, 0, 0, 106, 8, - 0, 1, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 13, 0, 0, 0, - 98, 24, 0, 3, 114, 16, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 1, 0, 0, 0, - 104, 0, 0, 2, 3, 0, - 0, 0, 57, 0, 0, 11, - 18, 0, 16, 0, 0, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 55, 0, - 0, 15, 242, 32, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 128, 63, 2, 64, 0, 0, - 231, 251, 233, 62, 254, 212, - 56, 63, 0, 0, 0, 0, - 0, 0, 128, 63, 122, 0, - 0, 5, 114, 0, 16, 0, - 0, 0, 0, 0, 38, 25, - 16, 0, 1, 0, 0, 0, - 124, 0, 0, 5, 114, 0, - 16, 0, 1, 0, 0, 0, - 150, 20, 16, 0, 1, 0, - 0, 0, 56, 0, 0, 7, - 114, 0, 16, 0, 2, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 114, 0, - 16, 0, 0, 0, 0, 0, - 38, 9, 16, 0, 0, 0, - 0, 0, 150, 4, 16, 0, - 1, 0, 0, 0, 70, 2, - 16, 128, 65, 0, 0, 0, - 2, 0, 0, 0, 16, 0, - 0, 7, 130, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 68, 0, 0, 5, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 7, 114, 0, 16, 0, - 0, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 114, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 50, 0, - 0, 10, 178, 0, 16, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 136, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 70, 8, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 114, 0, 16, 0, 0, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 70, 3, - 16, 0, 0, 0, 0, 0, - 50, 0, 0, 15, 114, 32, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 0, 63, 0, 0, - 0, 63, 0, 0, 0, 63, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 63, - 0, 0, 0, 63, 0, 0, - 0, 63, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 148, 0, 0, 0, - 14, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 -}; diff --git a/samples/D3D11/src/shaders/bin/GeometryVS.h b/samples/D3D11/src/shaders/bin/GeometryVS.h deleted file mode 100644 index 3d3af34..0000000 --- a/samples/D3D11/src/shaders/bin/GeometryVS.h +++ /dev/null @@ -1,293 +0,0 @@ -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// -// fxc /O3 /T vs_5_0 src/Scene3D.hlsl /E GeometryVS /Fh bin/GeometryVS.h -// -// -// Buffer Definitions: -// -// cbuffer GlobalConstantBuffer -// { -// -// row_major float4x4 g_WorldView; // Offset: 0 Size: 64 -// row_major float4x4 g_WorldViewInverse;// Offset: 64 Size: 64 [unused] -// row_major float4x4 g_WorldViewProjection;// Offset: 128 Size: 64 -// float g_IsWhite; // Offset: 192 Size: 4 [unused] -// -// } -// -// -// Resource Bindings: -// -// Name Type Format Dim Slot Elements -// ------------------------------ ---------- ------- ----------- ---- -------- -// GlobalConstantBuffer cbuffer NA NA 0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// POSITION 0 xyz 0 NONE float xyz -// NORMAL 0 xyz 1 NONE float xyz -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_POSITION 0 xyzw 0 POS float xyzw -// TEXCOORD 0 xyz 1 NONE float xyz -// TEXCOORD 1 xyz 2 NONE float xyz -// -vs_5_0 -dcl_globalFlags refactoringAllowed -dcl_constantbuffer cb0[12], immediateIndexed -dcl_input v0.xyz -dcl_input v1.xyz -dcl_output_siv o0.xyzw, position -dcl_output o1.xyz -dcl_output o2.xyz -dcl_temps 1 -mul r0.xyzw, v0.yyyy, cb0[9].xyzw -mad r0.xyzw, v0.xxxx, cb0[8].xyzw, r0.xyzw -mad r0.xyzw, v0.zzzz, cb0[10].xyzw, r0.xyzw -add o0.xyzw, r0.xyzw, cb0[11].xyzw -mul r0.xyz, v0.yyyy, cb0[1].xyzx -mad r0.xyz, v0.xxxx, cb0[0].xyzx, r0.xyzx -mad r0.xyz, v0.zzzz, cb0[2].xyzx, r0.xyzx -add o1.xyz, r0.xyzx, cb0[3].xyzx -mov o2.xyz, v1.xyzx -ret -// Approximately 10 instruction slots used -#endif - -const BYTE g_GeometryVS[] = -{ - 68, 88, 66, 67, 229, 202, - 254, 249, 218, 193, 230, 243, - 132, 191, 240, 223, 106, 250, - 79, 79, 1, 0, 0, 0, - 56, 5, 0, 0, 5, 0, - 0, 0, 52, 0, 0, 0, - 56, 2, 0, 0, 136, 2, - 0, 0, 248, 2, 0, 0, - 156, 4, 0, 0, 82, 68, - 69, 70, 252, 1, 0, 0, - 1, 0, 0, 0, 116, 0, - 0, 0, 1, 0, 0, 0, - 60, 0, 0, 0, 0, 5, - 254, 255, 0, 129, 0, 0, - 200, 1, 0, 0, 82, 68, - 49, 49, 60, 0, 0, 0, - 24, 0, 0, 0, 32, 0, - 0, 0, 40, 0, 0, 0, - 36, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 0, 0, - 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 71, 108, 111, 98, - 97, 108, 67, 111, 110, 115, - 116, 97, 110, 116, 66, 117, - 102, 102, 101, 114, 0, 171, - 171, 171, 92, 0, 0, 0, - 4, 0, 0, 0, 140, 0, - 0, 0, 208, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 44, 1, 0, 0, - 0, 0, 0, 0, 64, 0, - 0, 0, 2, 0, 0, 0, - 68, 1, 0, 0, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 104, 1, 0, 0, 64, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 68, 1, - 0, 0, 0, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 123, 1, - 0, 0, 128, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 68, 1, 0, 0, - 0, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 145, 1, 0, 0, - 192, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 164, 1, 0, 0, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 103, 95, 87, 111, 114, 108, - 100, 86, 105, 101, 119, 0, - 102, 108, 111, 97, 116, 52, - 120, 52, 0, 171, 171, 171, - 2, 0, 3, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 56, 1, 0, 0, - 103, 95, 87, 111, 114, 108, - 100, 86, 105, 101, 119, 73, - 110, 118, 101, 114, 115, 101, - 0, 103, 95, 87, 111, 114, - 108, 100, 86, 105, 101, 119, - 80, 114, 111, 106, 101, 99, - 116, 105, 111, 110, 0, 103, - 95, 73, 115, 87, 104, 105, - 116, 101, 0, 102, 108, 111, - 97, 116, 0, 171, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 155, 1, 0, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 57, 46, 57, 53, - 50, 46, 51, 49, 49, 49, - 0, 171, 171, 171, 73, 83, - 71, 78, 72, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 7, 7, - 0, 0, 65, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 7, 7, - 0, 0, 80, 79, 83, 73, - 84, 73, 79, 78, 0, 78, - 79, 82, 77, 65, 76, 0, - 79, 83, 71, 78, 104, 0, - 0, 0, 3, 0, 0, 0, - 8, 0, 0, 0, 80, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 92, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 7, 8, 0, 0, 92, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 2, 0, 0, 0, - 7, 8, 0, 0, 83, 86, - 95, 80, 79, 83, 73, 84, - 73, 79, 78, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 171, 171, 83, 72, - 69, 88, 156, 1, 0, 0, - 80, 0, 1, 0, 103, 0, - 0, 0, 106, 8, 0, 1, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 0, 0, 0, 0, 95, 0, - 0, 3, 114, 16, 16, 0, - 1, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 2, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 86, 21, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 8, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 0, 0, 0, 0, 166, 26, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 0, 0, 0, 0, 86, 21, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 114, 0, - 16, 0, 0, 0, 0, 0, - 6, 16, 16, 0, 0, 0, - 0, 0, 70, 130, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 50, 0, - 0, 10, 114, 0, 16, 0, - 0, 0, 0, 0, 166, 26, - 16, 0, 0, 0, 0, 0, - 70, 130, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 8, - 114, 32, 16, 0, 1, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 70, 130, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 54, 0, - 0, 5, 114, 32, 16, 0, - 2, 0, 0, 0, 70, 18, - 16, 0, 1, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 148, 0, 0, 0, - 10, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 -}; diff --git a/samples/D3D11/src/shaders/compile.bat b/samples/D3D11/src/shaders/compile.bat deleted file mode 100644 index 85e81d3..0000000 --- a/samples/D3D11/src/shaders/compile.bat +++ /dev/null @@ -1,15 +0,0 @@ -@echo off -cd %~dp0 -del /F /Q bin\* - -set FXC=fxc.exe - -%FXC% /O3 /T ps_5_0 src/Scene3D.hlsl /E GeometryPS /Fh bin/GeometryPS.h - -%FXC% /O3 /T ps_5_0 src/Scene3D.hlsl /E CopyColorPS /Fh bin/CopyColorPS.h - -%FXC% /O3 /T vs_5_0 src/Scene3D.hlsl /E FullScreenTriangleVS /Fh bin/FullScreenTriangleVS.h - -%FXC% /O3 /T vs_5_0 src/Scene3D.hlsl /E GeometryVS /Fh bin/GeometryVS.h - -pause diff --git a/samples/D3D11/src/shaders/src/Scene3D.hlsl b/samples/D3D11/src/shaders/src/Scene3D.hlsl deleted file mode 100644 index 460f4e6..0000000 --- a/samples/D3D11/src/shaders/src/Scene3D.hlsl +++ /dev/null @@ -1,122 +0,0 @@ -// This code contains NVIDIA Confidential Information and is disclosed -// under the Mutual Non-Disclosure Agreement. -// -// Notice -// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES -// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. -// -// NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. No third party distribution is allowed unless -// expressly authorized by NVIDIA. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright © 2008-2013 NVIDIA Corporation. All rights reserved. -// -// NVIDIA Corporation and its licensors retain all intellectual property and proprietary -// rights in and to this software and related documentation and any modifications thereto. -// Any use, reproduction, disclosure or distribution of this software and related -// documentation without an express license agreement from NVIDIA Corporation is -// strictly prohibited. -// - -#pragma pack_matrix( row_major ) - -#define USE_DDX_DDY 1 -#define USE_PER_SAMPLE_SHADING 0 - -cbuffer GlobalConstantBuffer : register(b0) -{ - float4x4 g_WorldView; - float4x4 g_WorldViewInverse; - float4x4 g_WorldViewProjection; - float g_IsWhite; -}; - -Texture2D tColor : register(t0); -SamplerState PointSampler : register(s0); - -//----------------------------------------------------------------------------- -// Geometry-rendering shaders -//----------------------------------------------------------------------------- - -struct VS_INPUT -{ - float3 WorldPosition : POSITION; - float3 WorldNormal : NORMAL; -}; - -struct VS_OUTPUT -{ - float4 HPosition : SV_POSITION; - centroid float3 ViewPosition : TEXCOORD0; - centroid float3 WorldNormal : TEXCOORD1; -}; - -struct PS_OUTPUT -{ - float4 Color : SV_Target0; - float3 WorldNormal : SV_Target1; -}; - -VS_OUTPUT GeometryVS( VS_INPUT input ) -{ - VS_OUTPUT output; - output.HPosition = mul( float4(input.WorldPosition,1), g_WorldViewProjection ); - output.ViewPosition = mul( float4(input.WorldPosition,1), g_WorldView ).xyz; - output.WorldNormal = input.WorldNormal.xyz; - return output; -} - -PS_OUTPUT GeometryPS( VS_OUTPUT input -#if USE_PER_SAMPLE_SHADING - , uint SampleIndex : SV_SampleIndex -#endif - ) -{ - PS_OUTPUT output; - output.Color = g_IsWhite ? float4(1,1,1,1) : float4(.457,.722, 0.0, 1); - -#if USE_DDX_DDY - float3 ViewNormal = normalize(cross(ddx(input.ViewPosition.xyz), ddy(input.ViewPosition.xyz))); - output.WorldNormal = mul(ViewNormal, (float3x3)g_WorldViewInverse); -#else - output.WorldNormal = input.WorldNormal; -#endif - - // Lerp to [0,1]^3 to store in the non-signed R11G11B10_FLOAT format - output.WorldNormal = output.WorldNormal * 0.5 + 0.5; - return output; -} - -//----------------------------------------------------------------------------- -// Post-processing shaders -//----------------------------------------------------------------------------- - -struct PostProc_VSOut -{ - float4 pos : SV_Position; - float2 uv : TexCoord; -}; - -// Vertex shader that generates a full screen quad with texcoords -// To use draw 3 vertices with primitive type triangle list -PostProc_VSOut FullScreenTriangleVS( uint id : SV_VertexID ) -{ - PostProc_VSOut output = (PostProc_VSOut)0.0f; - output.uv = float2( (id << 1) & 2, id & 2 ); - output.pos = float4( output.uv * float2( 2.0f, -2.0f ) + float2( -1.0f, 1.0f), 0.0f, 1.0f ); - return output; -} - -float4 CopyColorPS( PostProc_VSOut IN ) : SV_TARGET -{ - float3 color = tColor.Sample(PointSampler, IN.uv); - return float4(color,1); -} diff --git a/samples/D3D12/external/imgui/.travis.yml b/samples/D3D12/external/imgui/.travis.yml deleted file mode 100644 index 3127a5c..0000000 --- a/samples/D3D12/external/imgui/.travis.yml +++ /dev/null @@ -1,17 +0,0 @@ -language: cpp - -os: - - linux - -compiler: - - gcc - - clang - -before_install: - - if [ $TRAVIS_OS_NAME == linux ]; then sudo add-apt-repository -y ppa:pyglfw/pyglfw && sudo apt-get update -qq && sudo apt-get install -y --no-install-recommends libglfw3-dev libxrandr-dev libxi-dev libxxf86vm-dev; fi - - if [ $TRAVIS_OS_NAME == osx ]; then brew update && brew install glfw3; fi - -script: - - make -C examples/opengl_example - - make -C examples/opengl3_example - diff --git a/samples/D3D12/external/imgui/README.md b/samples/D3D12/external/imgui/README.md deleted file mode 100644 index 9837013..0000000 --- a/samples/D3D12/external/imgui/README.md +++ /dev/null @@ -1,152 +0,0 @@ -ImGui -===== -[![Build Status](https://travis-ci.org/ocornut/imgui.svg?branch=master)](https://travis-ci.org/ocornut/imgui) -[![Coverity Status](https://scan.coverity.com/projects/4720/badge.svg)](https://scan.coverity.com/projects/4720) - -[![Patreon](https://cloud.githubusercontent.com/assets/8225057/5990484/70413560-a9ab-11e4-8942-1a63607c0b00.png)](http://www.patreon.com/imgui) [![PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5Q73FPZ9C526U) - -ImGui is a bloat-free graphical user interface library for C++. It outputs vertex buffers that you can render in your 3D-pipeline enabled application. It is portable, renderer agnostic and self-contained (no external dependencies). It is based on an "immediate mode" graphical user interface paradigm which enables you to build user interfaces with ease. - -ImGui is designed to enable fast iteration and allow programmers to create "content creation" or "debug" tools (as opposed to UI for the average end-user). It favors simplicity and productivity toward this goal, and thus lacks certain features normally found in more high-level libraries. - -ImGui is particularly suited to integration in realtime 3D applications, fullscreen applications, embedded applications, games, or any applications on consoles platforms where operating system features are non-standard. - -ImGui is self-contained within a few files that you can easily copy and compile into your application/engine: - - - imgui.cpp - - imgui.h - - imgui_demo.cpp - - imgui_draw.cpp - - imgui_internal.h - - imconfig.h (empty by default, user-editable) - - stb_rect_pack.h - - stb_textedit.h - - stb_truetype.h - -No specific build process is required. You can add the .cpp files to your project or #include them from an existing file. - -Your code passes mouse/keyboard inputs and settings to ImGui (see example applications for more details). After ImGui is setup, you can use it like in this example: - -![screenshot of sample code alongside its output with ImGui](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/code_sample_01.png) - -ImGui outputs vertex buffers and simple command-lists that you can render in your application. Because it doesn't know or touch graphics state directly, you can call ImGui commands anywhere in your code (e.g. in the middle of a running algorithm, or in the middle of your own rendering process). Refer to the sample applications in the examples/ folder for instructions on how to integrate ImGui with your existing codebase. - -ImGui allows you create elaborate tools as well as very short-lived ones. On the extreme side of short-liveness: using the Edit&Continue feature of modern compilers you can add a few widgets to tweaks variables while your application is running, and remove the code a minute later! ImGui is not just for tweaking values. You can use it to trace a running algorithm by just emitting text commands. You can use it along with your own reflection data to browse your dataset live. You can use it to expose the internals of a subsystem in your engine, to create a logger, an inspection tool, a profiler, a debugger, etc. - -Demo ----- - -You should be able to build the examples from sources (tested on Windows/Mac/Linux). If you don't, let me know! If you want to have a quick look at the features of ImGui, you can download binaries of the demo app here. -- [imgui-demo-binaries-20150716.zip](http://www.miracleworld.net/imgui/binaries/imgui-demo-binaries-20150716.zip) (Windows binaries, ImGui 1.43 WIP 2015/07/16, 4 executables, 475 KB) - - -Gallery -------- - -![screenshot 1](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v143/test_window_01.png) -![screenshot 2](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v143/test_window_02.png) -![screenshot 3](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v143/test_window_03.png) -![screenshot 5](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v140/test_window_05_menus.png) -![screenshot 4](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v143/skinning_sample_02.png) -![screenshot 6](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v143/examples_04.png) -![screenshot 7](https://cloud.githubusercontent.com/assets/8225057/7903336/96f0fb7c-07d0-11e5-95d6-41c6a1595e5a.png) - -ImGui can load TTF fonts. UTF-8 is supported for text display and input. Here using Arial Unicode font to display Japanese. Initialize custom font with: -``` -ImGuiIO& io = ImGui::GetIO(); -io.Fonts->AddFontFromFileTTF("ArialUni.ttf", 18.0f, io.Fonts->GetGlyphRangesJapanese()); -``` -For Microsoft IME, pass your HWND to enable IME positioning: -``` -io.ImeWindowHandle = my_hwnd; -``` -![Japanese screenshot](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/code_sample_01.png) - -References ----------- - -The Immediate Mode GUI paradigm may at first appear unusual to some users. This is mainly because "Retained Mode" GUIs have been so widespread and predominant. The following links can give you a better understanding about how Immediate Mode GUIs works. -- [Johannes 'johno' Norneby's article](http://www.johno.se/book/imgui.html). -- [A presentation by Rickard Gustafsson and Johannes Algelind](http://www.cse.chalmers.se/edu/year/2011/course/TDA361/Advanced%20Computer%20Graphics/IMGUI.pdf). -- [Jari Komppa's tutorial on building an ImGui library](http://iki.fi/sol/imgui/). -- [Casey Muratori's original video that popularized the concept](https://mollyrocket.com/861). - -Frequently Asked Question -------------------------- - -Where is the documentation? - -- The documentation is at the top of imgui.cpp + effectively imgui.h. -- Example code is in imgui_demo.cpp and particularly the ImGui::ShowTestWindow() function. It covers most features of ImGui so you can read the code and call the function itself to see its output. -- Standalone example applications using e.g. OpenGL/DirectX are provided in the examples/ folder. - -How do you use ImGui on a platform that may not have a mouse or keyboard? - -I recommend using [Synergy](http://synergy-project.org) ([sources](https://github.com/synergy/synergy)). In particular, the _src/micro/uSynergy.c_ file contains a small client that you can use on any platform to connect to your host PC. You can seamlessly use your PC input devices from a video game console or a tablet. ImGui allows to increase the hit box of widgets (via the _TouchPadding_ setting) to accomodate a little for the lack of precision of touch inputs, but it is recommended you use a mouse to allow optimising for screen real-estate. - -I integrated ImGui in my engine and the text or lines are blurry.. - -In your Render function, try translating your projection matrix by (0.5f,0.5f) or (0.375f,0.375f). - -Can you create elaborate/serious tools with ImGui? - -Yes. I have written data browsers, debuggers, profilers and all sort of non-trivial tools with the library. In my experience the simplicity of the API is very empowering. Your UI runs close to your live data. Make the tools always-on and everybody in the team will be inclined to create new tools (as opposed to more "offline" UI toolkits where only a fraction of your team effectively creates tools). - -ImGui is very programmer centric and the immediate-mode GUI paradigm might requires a bit of adaptation before you can realize its full potential. Many programmers have unfortunately been taught by their environment to make unnecessarily complicated things. ImGui is about making things that are simple, efficient and powerful. - -Is ImGui fast? - -Down to the fundation of its visual design, ImGui is engineered to be fairly performant both in term of CPU and GPU usage. Running elaborate code and creating elaborate UI will of course have a cost but ImGui aims to minimize it. - -Mileage may vary but the following screenshot can give you a rough idea of the cost of running and rendering UI code (In the case of a trivial demo application like this one, your driver/os setup are likely to be the bottleneck. Testing performance as part of a real application is recommended). - -![performance screenshot](https://raw.githubusercontent.com/wiki/ocornut/imgui/web/v138/performance_01.png) - -This is showing framerate for the full application loop on my 2011 iMac running Windows 7, OpenGL, AMD Radeon HD 6700M with an optimized executable. In contrast, librairies featuring higher-quality rendering and layouting techniques may have a higher resources footprint. - -If you intend to display large lists of items (say, 1000+) it can be beneficial for your code to perform clipping manually - using helpers such as ImGuiListClipper - in order to avoid submitting them to ImGui in the first place. Even though ImGui will discard your clipped items it still needs to calculate their size and that overhead will add up if you have thousands of items. If you can handle clipping and height positionning yourself then browsing a list with millions of items isn't a problem. - -Can you reskin the look of ImGui? - -You can alter the look of the interface to some degree: changing colors, sizes, padding, rounding, fonts. However, as ImGui is designed and optimised to create debug tools, the amount of skinning you can apply is limited. There is only so much you can stray away from the default look and feel of the interface. - -Why using C++ (as opposed to C)? - -ImGui takes advantage of a few C++ features for convenience but nothing anywhere Boost-insanity/quagmire. In particular, function overloading and default parameters are used to make the API easier to use and code more terse. Doing so I believe the API is sitting on a sweet spot and giving up on those features would make the API more cumbersome. Other features such as namespace, constructors and templates (in the case of the ImVector<> class) are also relied on as a convenience but could be removed. - -Shall someone really need to use ImGui from another language, there is an unofficial but reasonably maintained [c-api for ImGui](https://github.com/Extrawurst/cimgui) by Stephan Dilly. I would suggest using your target language functionality to try replicating the function overloading and default parameters used in C++ else the API may be harder to use. It was really designed with C++ in mind and may not make the same amount of sense with another language. - -Donate ------- - -Can I donate to support the development of ImGui? - -[![Patreon](https://cloud.githubusercontent.com/assets/8225057/5990484/70413560-a9ab-11e4-8942-1a63607c0b00.png)](http://www.patreon.com/imgui) [![PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5Q73FPZ9C526U) - -I'm currently an independant developer and your contributions are very meaningful to me. I have setup an [**ImGui Patreon page**](http://www.patreon.com/imgui) if you want to donate and enable me to spend more time improving the library. If your company uses ImGui please consider making a contribution. One-off donations are also greatly appreciated (PayPal link above). I am also available for hire to work on or with ImGui. Thanks! - -Credits -------- - -Developed by [Omar Cornut](http://www.miracleworld.net) and every direct or indirect contributors to the GitHub. The early version of this library was developed with the support of [Media Molecule](http://www.mediamolecule.com) and first used internally on the game [Tearaway](http://tearaway.mediamolecule.com). - -Embeds [ProggyClean.ttf](http://upperbounds.net) font by Tristan Grimmer (MIT license). - -Embeds [stb_textedit.h, stb_truetype.h, stb_rectpack.h](https://github.com/nothings/stb/) by Sean Barrett (public domain). - -Inspiration, feedback, and testing for early versions: Casey Muratori, Atman Binstock, Mikko Mononen, Emmanuel Briney, Stefan Kamoda, Anton Mikhailov, Matt Willis. And everybody posting feedback, questions and patches on the GitHub. - -ImGui development is financially supported on [**Patreon**](http://www.patreon.com/imgui). - -Special supporters: -- Jetha Chan, Wild Sheep Studio, Pastagames, MÄrtiņš Možeiko, Daniel Collin, Stefano Cristiano. - -And: -- Michel Courtine, César Leblic, Dale Kim, Alex Evans, Rui Figueira, Paul Patrashcu, Jerome Lanquetot, Ctrl Alt Ninja, Paul Fleming, Neil Henning, Stephan Dilly, Neil Blakey-Milner, Aleksei. - -And other supporters; thanks! - -License -------- - -ImGui is licensed under the MIT License, see LICENSE for more information. diff --git a/samples/D3D12/external/imgui/examples/directx12_example/directx12_example.vcxproj b/samples/D3D12/external/imgui/examples/directx12_example/directx12_example.vcxproj deleted file mode 100644 index d3dcd0e..0000000 --- a/samples/D3D12/external/imgui/examples/directx12_example/directx12_example.vcxproj +++ /dev/null @@ -1,156 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {9F316E83-5AE5-4939-A723-305A94F48005} - directx11_example - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - $(ProjectDir)$(Configuration)\ - $(ProjectDir)$(Configuration)\ - - - - Level4 - Disabled - ..\..;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include; - - - true - d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - Disabled - ..\..;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include; - - - true - d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include; - - - true - true - true - d3d11.lib;d3dcompiler.lib;dxgi.lib;imm32.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - Console - - - - - Level4 - MaxSpeed - true - true - ..\..;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include; - - - true - true - true - d3d11.lib;d3dcompiler.lib;dxgi.lib;imm32.lib;%(AdditionalDependencies) - $(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories) - Console - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/D3D12/external/imgui/examples/directx12_example/directx12_example.vcxproj.filters b/samples/D3D12/external/imgui/examples/directx12_example/directx12_example.vcxproj.filters deleted file mode 100644 index ac905dd..0000000 --- a/samples/D3D12/external/imgui/examples/directx12_example/directx12_example.vcxproj.filters +++ /dev/null @@ -1,42 +0,0 @@ - - - - - {0587d7a3-f2ce-4d56-b84f-a0005d3bfce6} - - - {08e36723-ce4f-4cff-9662-c40801cf1acf} - - - - - imgui - - - imgui - - - sources - - - imgui - - - - - imgui - - - sources - - - sources - - - imgui - - - imgui - - - \ No newline at end of file diff --git a/samples/D3D12/external/imgui/examples/directx12_example/imgui_impl_dx12.cpp b/samples/D3D12/external/imgui/examples/directx12_example/imgui_impl_dx12.cpp deleted file mode 100644 index 5947cd4..0000000 --- a/samples/D3D12/external/imgui/examples/directx12_example/imgui_impl_dx12.cpp +++ /dev/null @@ -1,826 +0,0 @@ -// ImGui Win32 + DirectX11 binding -// https://github.com/ocornut/imgui - -#include -#include "imgui_impl_dx12.h" - -// DirectX -#include -#include - -#include -#define DIRECTINPUT_VERSION 0x0800 -#include - -#define ALIGNED_SIZE(size, align) ((size + (align - 1)) & ~(align - 1)) - -// Data -static INT64 g_Time = 0; -static INT64 g_TicksPerSecond = 0; - -static HWND g_hWnd = 0; -static ID3D12Device* g_pd3dDevice = NULL; -static ID3D12GraphicsCommandList* g_pd3dCmdList = NULL; -static ID3D12CommandQueue* g_pd3dCmdQueue = NULL; -static ID3D12Resource* g_pFontTextureUploadHeap = NULL; - -enum DescHeapHandleLayout -{ - eVertexCB = 0, - eFontTexture = 1, -}; - -struct GpuFence -{ - ID3D12Fence* pFence = NULL; - HANDLE hFenceEvent = 0; - UINT64 FenceValue = 0; - - void Init() - { - if (FAILED(g_pd3dDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)))) return; - pFence->SetName(L"ImguiFence"); - FenceValue = 0; - hFenceEvent = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); - } - - void Release() - { - if (pFence) pFence->Release(); - pFence = NULL; - FenceValue = 0; - CloseHandle(hFenceEvent); - } - - void IncrFence() - { - FenceValue++; - } - - void WaitForFence() - { - // Schedule a Signal command in the queue. - if (FAILED(g_pd3dCmdQueue->Signal(pFence, FenceValue))) return; - - if (FAILED(pFence->SetEventOnCompletion(FenceValue, hFenceEvent))) return; - - WaitForSingleObjectEx(hFenceEvent, INFINITE, FALSE); - } -}; - -static GpuFence g_GpuFence; - -struct DescHeapInfo -{ - ID3D12DescriptorHeap* DescHeap; - UINT BaseOffset; - UINT IncrSize; - - D3D12_CPU_DESCRIPTOR_HANDLE GetCpuHandle(UINT Index) - { - D3D12_CPU_DESCRIPTOR_HANDLE CpuHandle = DescHeap->GetCPUDescriptorHandleForHeapStart(); - CpuHandle.ptr += IncrSize * (BaseOffset + Index); - return CpuHandle; - } - - D3D12_GPU_DESCRIPTOR_HANDLE GetGpuHandle(UINT Index) - { - D3D12_GPU_DESCRIPTOR_HANDLE GpuHandle = DescHeap->GetGPUDescriptorHandleForHeapStart(); - GpuHandle.ptr += IncrSize * (BaseOffset + Index); - return GpuHandle; - } -}; - -DescHeapInfo g_DescHeapCbvSrvUav; - -static ID3D12Resource* g_pVB = NULL; -static ID3D12Resource* g_pIB = NULL; -static D3D12_VERTEX_BUFFER_VIEW g_VBView = {}; -static D3D12_INDEX_BUFFER_VIEW g_IBView = {}; -static ID3D10Blob* g_pVertexShader = NULL; -static ID3D12Resource* g_pVertexConstantBuffer = NULL; -static ID3D10Blob* g_pPixelShader = NULL; -static ID3D12RootSignature* g_pRootSignature = NULL; -static ID3D12PipelineState* g_pPSO = NULL; -static ID3D12Resource* g_pFontTexture = NULL; -static D3D12_STATIC_SAMPLER_DESC g_FontSampler; -static D3D12_CPU_DESCRIPTOR_HANDLE g_cbCpuHandle; - -static int VERTEX_BUFFER_SIZE = 20000; // TODO: Make buffers smaller and grow dynamically as needed. -static int INDEX_BUFFER_SIZE = 40000; // TODO: Make buffers smaller and grow dynamically as needed. - -struct VERTEX_CONSTANT_BUFFER -{ - float mvp[4][4]; -}; - -// This is the main rendering function that you have to implement and provide to ImGui (via setting up 'RenderDrawListsFn' in the ImGuiIO structure) -// If text or lines are blurry when integrating ImGui in your engine: -// - in your Render function, try translating your projection matrix by (0.5f,0.5f) or (0.375f,0.375f) -static void ImGui_ImplDX12_RenderDrawLists(ImDrawData* draw_data) -{ - ImDrawVert* vtx_dst = NULL; - ImDrawIdx* idx_dst = NULL; - - // Copy and convert all vertices into a single contiguous buffer - if (g_pVB->Map(0, nullptr, reinterpret_cast(&vtx_dst)) != S_OK) - return; - if (g_pIB->Map(0, nullptr, reinterpret_cast(&idx_dst)) != S_OK) - return; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* cmd_list = draw_data->CmdLists[n]; - memcpy(vtx_dst, &cmd_list->VtxBuffer[0], cmd_list->VtxBuffer.size() * sizeof(ImDrawVert)); - memcpy(idx_dst, &cmd_list->IdxBuffer[0], cmd_list->IdxBuffer.size() * sizeof(ImDrawIdx)); - vtx_dst += cmd_list->VtxBuffer.size(); - idx_dst += cmd_list->IdxBuffer.size(); - } - g_pVB->Unmap(0, nullptr); - g_pIB->Unmap(0, nullptr); - - // Setup orthographic projection matrix into our constant buffer - { - VERTEX_CONSTANT_BUFFER* pConstantBuffer = NULL; - g_pVertexConstantBuffer->Map(0, nullptr, reinterpret_cast(&pConstantBuffer)); - - const float L = 0.0f; - const float R = ImGui::GetIO().DisplaySize.x; - const float B = ImGui::GetIO().DisplaySize.y; - const float T = 0.0f; - const float mvp[4][4] = - { - { 2.0f/(R-L), 0.0f, 0.0f, 0.0f}, - { 0.0f, 2.0f/(T-B), 0.0f, 0.0f,}, - { 0.0f, 0.0f, 0.5f, 0.0f }, - { (R+L)/(L-R), (T+B)/(B-T), 0.5f, 1.0f }, - }; - memcpy(&pConstantBuffer->mvp, mvp, sizeof(mvp)); - g_pVertexConstantBuffer->Unmap(0, nullptr); - } - - // Setup viewport - { - D3D12_VIEWPORT vp; - memset(&vp, 0, sizeof(D3D12_VIEWPORT)); - vp.Width = ImGui::GetIO().DisplaySize.x; - vp.Height = ImGui::GetIO().DisplaySize.y; - vp.MinDepth = 0.0f; - vp.MaxDepth = 1.0f; - vp.TopLeftX = 0; - vp.TopLeftY = 0; - g_pd3dCmdList->RSSetViewports(1, &vp); - } - - ID3D12DescriptorHeap* descHeaps[] = { g_DescHeapCbvSrvUav.DescHeap }; - g_pd3dCmdList->SetDescriptorHeaps(ARRAYSIZE(descHeaps), descHeaps); - - // Bind shader and vertex buffers - g_pd3dCmdList->SetGraphicsRootSignature(g_pRootSignature); - g_pd3dCmdList->SetPipelineState(g_pPSO); - g_pd3dCmdList->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); - g_pd3dCmdList->IASetVertexBuffers(0, 1, &g_VBView); - g_pd3dCmdList->IASetIndexBuffer(&g_IBView); - - g_pd3dCmdList->SetGraphicsRootConstantBufferView(0, g_pVertexConstantBuffer->GetGPUVirtualAddress()); - //g_pd3dCmdList->SetGraphicsRootDescriptorTable(0, g_DescHeapCbvSrvUav.GetGpuHandle(eCB)); - - // Setup render state - const float blendFactor[4] = { 0.f, 0.f, 0.f, 0.f }; - g_pd3dCmdList->OMSetBlendFactor(blendFactor); - - // Render command lists - int vtx_offset = 0; - int idx_offset = 0; - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* cmd_list = draw_data->CmdLists[n]; - for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.size(); cmd_i++) - { - const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback) - { - pcmd->UserCallback(cmd_list, pcmd); - } - else - { - const D3D12_RECT r = { (LONG)pcmd->ClipRect.x, (LONG)pcmd->ClipRect.y, (LONG)pcmd->ClipRect.z, (LONG)pcmd->ClipRect.w }; - D3D12_GPU_DESCRIPTOR_HANDLE* FontTextureGpuHandle = (D3D12_GPU_DESCRIPTOR_HANDLE*)pcmd->TextureId; - g_pd3dCmdList->SetGraphicsRootDescriptorTable(1, *FontTextureGpuHandle); - g_pd3dCmdList->RSSetScissorRects(1, &r); - g_pd3dCmdList->DrawIndexedInstanced(pcmd->ElemCount, 1, idx_offset, vtx_offset, 0); - } - idx_offset += pcmd->ElemCount; - } - vtx_offset += cmd_list->VtxBuffer.size(); - } - - g_GpuFence.IncrFence(); -} - -LRESULT ImGui_ImplDX12_WndProcHandler(HWND, UINT msg, WPARAM wParam, LPARAM lParam) -{ - ImGuiIO& io = ImGui::GetIO(); - switch (msg) - { - case WM_LBUTTONDOWN: - io.MouseDown[0] = true; - return true; - case WM_LBUTTONUP: - io.MouseDown[0] = false; - return true; - case WM_RBUTTONDOWN: - io.MouseDown[1] = true; - return true; - case WM_RBUTTONUP: - io.MouseDown[1] = false; - return true; - case WM_MOUSEWHEEL: - io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; - return true; - case WM_MOUSEMOVE: - io.MousePos.x = (signed short)(lParam); - io.MousePos.y = (signed short)(lParam >> 16); - return true; - case WM_KEYDOWN: - if (wParam < 256) - io.KeysDown[wParam] = 1; - return true; - case WM_KEYUP: - if (wParam < 256) - io.KeysDown[wParam] = 0; - return true; - case WM_CHAR: - // You can also use ToAscii()+GetKeyboardState() to retrieve characters. - if (wParam > 0 && wParam < 0x10000) - io.AddInputCharacter((unsigned short)wParam); - return true; - } - return 0; -} - -void SetResourceBarrier(ID3D12GraphicsCommandList* commandList, - ID3D12Resource* res, - D3D12_RESOURCE_STATES before, - D3D12_RESOURCE_STATES after) -{ - D3D12_RESOURCE_BARRIER desc = {}; - desc.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; - desc.Transition.pResource = res; - desc.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES; - desc.Transition.StateBefore = before; - desc.Transition.StateAfter = after; - desc.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE; - commandList->ResourceBarrier(1, &desc); -} - -static void ImGui_ImplDX12_CreateFontsTexture() -{ - ImGuiIO& io = ImGui::GetIO(); - - ImFont* font0 = io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18); - - // Build - unsigned char* pixels; - int width, height; - io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); - - // Create DX12 texture - { - D3D12_RESOURCE_DESC Desc = {}; - Desc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE2D; - Desc.Width = width; - Desc.Height = height; - Desc.MipLevels = 1; - Desc.DepthOrArraySize = 1; - Desc.SampleDesc.Count = 1; - Desc.SampleDesc.Quality = 0; - Desc.Flags = D3D12_RESOURCE_FLAG_NONE; - Desc.Layout = D3D12_TEXTURE_LAYOUT_UNKNOWN; - Desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - Desc.Alignment = 0; - - D3D12_HEAP_PROPERTIES texHeapProp = { - D3D12_HEAP_TYPE_DEFAULT, - D3D12_CPU_PAGE_PROPERTY_UNKNOWN, - D3D12_MEMORY_POOL_UNKNOWN, - 1, 1 - }; - - if (g_pFontTexture) g_pFontTexture->Release(); - - if (g_pd3dDevice->CreateCommittedResource( - &texHeapProp, - D3D12_HEAP_FLAG_NONE, - &Desc, - D3D12_RESOURCE_STATE_GENERIC_READ, - nullptr, - IID_PPV_ARGS(&g_pFontTexture)) != S_OK) - { - assert(0); - return; - } - - g_pFontTexture->SetName(L"ImGuiFontTexture"); - - // Initialize texture - { - // Create the texture. - const UINT64 uploadBufferSize = GetRequiredIntermediateSize(g_pFontTexture, 0, 1); - - // Create the GPU upload buffer. - if (g_pd3dDevice->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Buffer(uploadBufferSize), - D3D12_RESOURCE_STATE_GENERIC_READ, - nullptr, - IID_PPV_ARGS(&g_pFontTextureUploadHeap)) != S_OK) - { - assert(0); - return; - } - g_pFontTextureUploadHeap->SetName(L"Imgui_TextureUploadHeap"); - // Copy data to the intermediate upload heap and then schedule a copy - // from the upload heap to the Texture2D. - D3D12_SUBRESOURCE_DATA textureData = {}; - textureData.pData = pixels; - textureData.RowPitch = width * 4; - textureData.SlicePitch = textureData.RowPitch * height; - - SetResourceBarrier(g_pd3dCmdList, g_pFontTexture, D3D12_RESOURCE_STATE_GENERIC_READ, D3D12_RESOURCE_STATE_COPY_DEST); - - UpdateSubresources(g_pd3dCmdList, g_pFontTexture, g_pFontTextureUploadHeap, 0, 0, 1, &textureData); - - SetResourceBarrier(g_pd3dCmdList, g_pFontTexture, D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE); - } - - // SRV - D3D12_SHADER_RESOURCE_VIEW_DESC SRVDesc = {}; - SRVDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; - SRVDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; - SRVDesc.Texture2D.MipLevels = 1; - SRVDesc.Texture2D.MostDetailedMip = 0; // No MIP - SRVDesc.Texture2D.PlaneSlice = 0; - SRVDesc.Texture2D.ResourceMinLODClamp = 0.0f; - - D3D12_CPU_DESCRIPTOR_HANDLE CpuHandle = g_DescHeapCbvSrvUav.GetCpuHandle(eFontTexture); - g_pd3dDevice->CreateShaderResourceView(g_pFontTexture, &SRVDesc, CpuHandle); - - // Store our identifier - D3D12_GPU_DESCRIPTOR_HANDLE* pGpuHandle = new D3D12_GPU_DESCRIPTOR_HANDLE; - (*pGpuHandle) = g_DescHeapCbvSrvUav.GetGpuHandle(eFontTexture); - io.Fonts->TexID = (void *)pGpuHandle; - - //D3D12_SAMPLER_DESC samplerDesc; - //samplerDesc.Filter = D3D12_FILTER_MIN_MAG_MIP_LINEAR; - //samplerDesc.AddressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - //samplerDesc.AddressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - //samplerDesc.AddressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - //samplerDesc.MinLOD = -FLT_MAX; - //samplerDesc.MaxLOD = FLT_MAX; - //samplerDesc.MipLODBias = 0; - //samplerDesc.MaxAnisotropy = 0; - //samplerDesc.ComparisonFunc = D3D12_COMPARISON_FUNC_ALWAYS; - //mDev->CreateSampler(&samplerDesc, mDescHeapSampler->GetCPUDescriptorHandleForHeapStart()); - } - - // Cleanup (don't clear the input data if you want to append new fonts later) - io.Fonts->ClearInputData(); - io.Fonts->ClearTexData(); -} - -bool ImGui_ImplDX12_CreateDeviceObjects() -{ - if (!g_pd3dDevice) - return false; - if (g_pVB) - ImGui_ImplDX12_InvalidateDeviceObjects(); - - D3D12_HEAP_PROPERTIES uploadHeapProp = { - D3D12_HEAP_TYPE_UPLOAD, - D3D12_CPU_PAGE_PROPERTY_UNKNOWN, - D3D12_MEMORY_POOL_UNKNOWN, - 1, 1 - }; - - ID3D10Blob* pVertexShaderBlob = NULL; - ID3D10Blob* pPixelShaderBlob = NULL; - - // Create the vertex shader - { - static const char* vertexShader = - "cbuffer vertexBuffer : register(b0) \ - {\ - float4x4 ProjectionMatrix; \ - };\ - struct VS_INPUT\ - {\ - float2 pos : POSITION;\ - float2 uv : TEXCOORD0;\ - float4 col : COLOR0;\ - };\ - \ - struct PS_INPUT\ - {\ - float4 pos : SV_POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - \ - PS_INPUT main(VS_INPUT input)\ - {\ - PS_INPUT output;\ - output.pos = mul( ProjectionMatrix, float4(input.pos.xy, 0.f, 1.f));\ - output.col = input.col;\ - output.uv = input.uv;\ - return output;\ - }"; - - D3DCompile(vertexShader, strlen(vertexShader), NULL, NULL, NULL, "main", "vs_5_0", 0, 0, &pVertexShaderBlob, NULL); - if (pVertexShaderBlob == NULL) // NB: Pass ID3D10Blob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! - { - assert(0); - return false; - } - - // Create the constant buffer - { - D3D12_RESOURCE_DESC cbResourceDesc = { - D3D12_RESOURCE_DIMENSION_BUFFER, - 0, - D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT, - 1, 1, 1, - DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, D3D12_RESOURCE_FLAG_NONE - }; - - if (g_pd3dDevice->CreateCommittedResource( - &uploadHeapProp, - D3D12_HEAP_FLAG_NONE, - &cbResourceDesc, - D3D12_RESOURCE_STATE_GENERIC_READ, - nullptr, - IID_PPV_ARGS(&g_pVertexConstantBuffer)) != S_OK) - { - assert(0); - return false; - } - - g_pVertexConstantBuffer->SetName(L"ImguiVertexCB"); - - D3D12_CONSTANT_BUFFER_VIEW_DESC cbvDesc = {}; - cbvDesc.BufferLocation = g_pVertexConstantBuffer->GetGPUVirtualAddress(); - cbvDesc.SizeInBytes = D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT; - - D3D12_CPU_DESCRIPTOR_HANDLE g_cbCpuHandle = g_DescHeapCbvSrvUav.GetCpuHandle(eVertexCB); - g_pd3dDevice->CreateConstantBufferView(&cbvDesc, g_cbCpuHandle); - } - } - - // Create the pixel shader - { - static const char* pixelShader = - "struct PS_INPUT\ - {\ - float4 pos : SV_POSITION;\ - float4 col : COLOR0;\ - float2 uv : TEXCOORD0;\ - };\ - sampler sampler0;\ - Texture2D texture0;\ - \ - float4 main(PS_INPUT input) : SV_Target\ - {\ - float4 out_col = input.col * texture0.Sample(sampler0, input.uv); \ - return out_col; \ - }"; - - D3DCompile(pixelShader, strlen(pixelShader), NULL, NULL, NULL, "main", "ps_5_0", 0, 0, &pPixelShaderBlob, NULL); - if (pPixelShaderBlob == NULL) // NB: Pass ID3D10Blob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! - { - assert(0); - return false; - } - } - - // Create the blending setup - D3D12_BLEND_DESC localBlendState; - { - ZeroMemory(&localBlendState, sizeof(localBlendState)); - localBlendState.IndependentBlendEnable = false; - localBlendState.AlphaToCoverageEnable = false; - localBlendState.RenderTarget[0].BlendEnable = true; - localBlendState.RenderTarget[0].SrcBlend = D3D12_BLEND_SRC_ALPHA; - localBlendState.RenderTarget[0].DestBlend = D3D12_BLEND_INV_SRC_ALPHA; - localBlendState.RenderTarget[0].BlendOp = D3D12_BLEND_OP_ADD; - localBlendState.RenderTarget[0].SrcBlendAlpha = D3D12_BLEND_INV_SRC_ALPHA; - localBlendState.RenderTarget[0].DestBlendAlpha = D3D12_BLEND_ZERO; - localBlendState.RenderTarget[0].BlendOpAlpha = D3D12_BLEND_OP_ADD; - localBlendState.RenderTarget[0].RenderTargetWriteMask = D3D12_COLOR_WRITE_ENABLE_ALL; - } - - // Create the rasterizer state - D3D12_RASTERIZER_DESC localRasterizeState; - { - ZeroMemory(&localRasterizeState, sizeof(localRasterizeState)); - localRasterizeState.FillMode = D3D12_FILL_MODE_SOLID; - localRasterizeState.CullMode = D3D12_CULL_MODE_NONE; - //localRasterizeState.ScissorEnable = true; - localRasterizeState.DepthClipEnable = true; - } - - // Create the vertex buffer - { - UINT VBSizeInByte = VERTEX_BUFFER_SIZE * sizeof(ImDrawVert); - D3D12_RESOURCE_DESC vbResourceDesc = { - D3D12_RESOURCE_DIMENSION_BUFFER, - 0, - VBSizeInByte, 1, 1, 1, - DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, D3D12_RESOURCE_FLAG_NONE - }; - - if (FAILED(g_pd3dDevice->CreateCommittedResource( - &uploadHeapProp, - D3D12_HEAP_FLAG_NONE, - &vbResourceDesc, - D3D12_RESOURCE_STATE_GENERIC_READ, - nullptr, - IID_PPV_ARGS(&g_pVB)))) - { - assert(0); - return false; - } - - g_VBView.BufferLocation = g_pVB->GetGPUVirtualAddress(); - g_VBView.StrideInBytes = sizeof(ImDrawVert); - g_VBView.SizeInBytes = VBSizeInByte; - } - - // Create the index buffer - { - UINT IBSizeInByte = INDEX_BUFFER_SIZE * sizeof(ImDrawIdx);; - D3D12_RESOURCE_DESC ibResourceDesc = { - D3D12_RESOURCE_DIMENSION_BUFFER, - 0, - IBSizeInByte, 1, 1, 1, - DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, D3D12_RESOURCE_FLAG_NONE - }; - - if (FAILED(g_pd3dDevice->CreateCommittedResource( - &uploadHeapProp, - D3D12_HEAP_FLAG_NONE, - &ibResourceDesc, - D3D12_RESOURCE_STATE_GENERIC_READ, - nullptr, - IID_PPV_ARGS(&g_pIB)))) - { - assert(0); - return false; - } - - g_IBView.BufferLocation = g_pIB->GetGPUVirtualAddress(); - g_IBView.Format = DXGI_FORMAT_R16_UINT; - g_IBView.SizeInBytes = IBSizeInByte; - } - - D3D12_INPUT_ELEMENT_DESC localLayout[] = { - { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, - { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 8, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, - { "COLOR", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, 8 + 8, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, - }; - - { -#if (1) - D3D12_DESCRIPTOR_RANGE range1[1]; - range1[0].RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_CBV; - range1[0].NumDescriptors = 1; - range1[0].BaseShaderRegister = 0; - range1[0].RegisterSpace = 0; - range1[0].OffsetInDescriptorsFromTableStart = 0; - - D3D12_DESCRIPTOR_RANGE range2[1]; - range2[0].RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV; - range2[0].NumDescriptors = 1; - range2[0].BaseShaderRegister = 0; - range2[0].RegisterSpace = 0; - range2[0].OffsetInDescriptorsFromTableStart = 0; - - D3D12_ROOT_PARAMETER rootParam[2]; - // Init as constants - rootParam[0].ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; - rootParam[0].Descriptor.RegisterSpace = 0; - rootParam[0].Descriptor.ShaderRegister = 0; - rootParam[0].ShaderVisibility = D3D12_SHADER_VISIBILITY_VERTEX; - - rootParam[1].ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - rootParam[1].DescriptorTable.NumDescriptorRanges = 1; - rootParam[1].DescriptorTable.pDescriptorRanges = range2; - rootParam[1].ShaderVisibility = D3D12_SHADER_VISIBILITY_PIXEL; - - //rootParam[0].ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - //rootParam[0].DescriptorTable.NumDescriptorRanges = 1; - //rootParam[0].DescriptorTable.pDescriptorRanges = range1; - //rootParam[0].ShaderVisibility = D3D12_SHADER_VISIBILITY_VERTEX; - - //rootParam[1].ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - //rootParam[1].DescriptorTable.NumDescriptorRanges = 1; - //rootParam[1].DescriptorTable.pDescriptorRanges = range2; - //rootParam[1].ShaderVisibility = D3D12_SHADER_VISIBILITY_PIXEL; -#else - CD3DX12_DESCRIPTOR_RANGE descRange1[1]; - descRange1[0].Init(D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 1, 0); // b0 - CD3DX12_DESCRIPTOR_RANGE descRange2[1]; - descRange2[0].Init(D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 1, 0); // srv0 - - CD3DX12_ROOT_PARAMETER rootParam[2]; - rootParam[0].InitAsDescriptorTable(ARRAYSIZE(descRange1), descRange1, D3D12_SHADER_VISIBILITY_VERTEX); - rootParam[1].InitAsDescriptorTable(ARRAYSIZE(descRange2), descRange2, D3D12_SHADER_VISIBILITY_PIXEL); -#endif - - D3D12_STATIC_SAMPLER_DESC samplerDesc; - { - ZeroMemory(&samplerDesc, sizeof(samplerDesc)); - samplerDesc.Filter = D3D12_FILTER_MIN_MAG_MIP_LINEAR; - samplerDesc.AddressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - samplerDesc.AddressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - samplerDesc.AddressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - samplerDesc.MipLODBias = 0.f; - samplerDesc.ComparisonFunc = D3D12_COMPARISON_FUNC_ALWAYS; - samplerDesc.MinLOD = 0.f; - samplerDesc.MaxLOD = 0.f; - } - - ID3D10Blob *sig, *info; - D3D12_ROOT_SIGNATURE_DESC rootSigDesc = {}; - rootSigDesc.NumParameters = sizeof(rootParam)/sizeof(rootParam[0]); - rootSigDesc.pParameters = rootParam; - rootSigDesc.NumStaticSamplers = 1; - rootSigDesc.pStaticSamplers = &samplerDesc; - rootSigDesc.Flags = D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT; - - if (FAILED(D3D12SerializeRootSignature(&rootSigDesc, D3D_ROOT_SIGNATURE_VERSION_1, &sig, &info))) - { - assert(0); - return false; - } - - g_pd3dDevice->CreateRootSignature(0, sig->GetBufferPointer(), sig->GetBufferSize(), IID_PPV_ARGS(&g_pRootSignature)); - g_pRootSignature->SetName(L"ImguiRS"); - sig->Release(); - } - - D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {}; - psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - psoDesc.InputLayout.NumElements = 3; - psoDesc.InputLayout.pInputElementDescs = localLayout; - psoDesc.IBStripCutValue = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED; - psoDesc.pRootSignature = g_pRootSignature; - psoDesc.VS.pShaderBytecode = pVertexShaderBlob->GetBufferPointer(); - psoDesc.VS.BytecodeLength = pVertexShaderBlob->GetBufferSize(); - psoDesc.PS.pShaderBytecode = pPixelShaderBlob->GetBufferPointer(); - psoDesc.PS.BytecodeLength = pPixelShaderBlob->GetBufferSize(); - psoDesc.RasterizerState = localRasterizeState; - psoDesc.BlendState = localBlendState; - psoDesc.DepthStencilState.DepthEnable = false; - psoDesc.DepthStencilState.DepthFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL; - psoDesc.DepthStencilState.DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; - psoDesc.DepthStencilState.StencilEnable = false; - psoDesc.SampleMask = UINT_MAX; - psoDesc.NumRenderTargets = 1; - psoDesc.RTVFormats[0] = DXGI_FORMAT_R8G8B8A8_UNORM; - psoDesc.DSVFormat = DXGI_FORMAT_UNKNOWN; - psoDesc.SampleDesc.Count = 1; - if (FAILED(g_pd3dDevice->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&g_pPSO)))) - { - assert(0); - return false; - } - g_pPSO->SetName(L"ImGuiPso"); - pVertexShaderBlob->Release(); - pPixelShaderBlob->Release(); - - ImGui_ImplDX12_CreateFontsTexture(); - - return true; -} - -void ImGui_ImplDX12_InvalidateDeviceObjects() -{ - if (!g_pd3dDevice) - return; - - if (g_pFontTexture) - { - g_pFontTexture->Release(); - g_pFontTexture = NULL; - D3D12_GPU_DESCRIPTOR_HANDLE* pGpuHandle = (D3D12_GPU_DESCRIPTOR_HANDLE*)ImGui::GetIO().Fonts->TexID; - delete pGpuHandle; - ImGui::GetIO().Fonts->TexID = 0; - } - - if (g_pIB) { g_pIB->Release(); g_pIB = NULL; } - if (g_pVB) { g_pVB->Release(); g_pVB = NULL; } - if (g_pVertexConstantBuffer) { g_pVertexConstantBuffer->Release(); g_pVertexConstantBuffer = NULL; } - if (g_pPSO) { g_pPSO->Release(); g_pPSO = NULL; } - if (g_pRootSignature) { g_pRootSignature->Release(); g_pRootSignature = NULL; } -} - -bool ImGui_ImplDX12_Init(void* hwnd, ID3D12Device* device, ID3D12CommandQueue* pCmdQueue, ID3D12GraphicsCommandList* pCmdList, ID3D12DescriptorHeap* descHeap, unsigned int descHeapBaseOffset) -{ - g_hWnd = (HWND)hwnd; - g_pd3dDevice = device; - g_pd3dCmdList = pCmdList; - g_pd3dCmdQueue = pCmdQueue; - - if (!descHeap) - return false; - - g_GpuFence.Init(); - - g_DescHeapCbvSrvUav.DescHeap = descHeap; - g_DescHeapCbvSrvUav.BaseOffset = descHeapBaseOffset; - g_DescHeapCbvSrvUav.IncrSize = g_pd3dDevice->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV); - - if (!QueryPerformanceFrequency((LARGE_INTEGER *)&g_TicksPerSecond)) - return false; - if (!QueryPerformanceCounter((LARGE_INTEGER *)&g_Time)) - return false; - - ImGuiIO& io = ImGui::GetIO(); - io.KeyMap[ImGuiKey_Tab] = VK_TAB; // Keyboard mapping. ImGui will use those indices to peek into the io.KeyDown[] array that we will update during the application lifetime. - io.KeyMap[ImGuiKey_LeftArrow] = VK_LEFT; - io.KeyMap[ImGuiKey_RightArrow] = VK_RIGHT; - io.KeyMap[ImGuiKey_UpArrow] = VK_UP; - io.KeyMap[ImGuiKey_DownArrow] = VK_DOWN; - io.KeyMap[ImGuiKey_PageUp] = VK_PRIOR; - io.KeyMap[ImGuiKey_PageDown] = VK_NEXT; - io.KeyMap[ImGuiKey_Home] = VK_HOME; - io.KeyMap[ImGuiKey_End] = VK_END; - io.KeyMap[ImGuiKey_Delete] = VK_DELETE; - io.KeyMap[ImGuiKey_Backspace] = VK_BACK; - io.KeyMap[ImGuiKey_Enter] = VK_RETURN; - io.KeyMap[ImGuiKey_Escape] = VK_ESCAPE; - io.KeyMap[ImGuiKey_A] = 'A'; - io.KeyMap[ImGuiKey_C] = 'C'; - io.KeyMap[ImGuiKey_V] = 'V'; - io.KeyMap[ImGuiKey_X] = 'X'; - io.KeyMap[ImGuiKey_Y] = 'Y'; - io.KeyMap[ImGuiKey_Z] = 'Z'; - - io.RenderDrawListsFn = ImGui_ImplDX12_RenderDrawLists; - io.ImeWindowHandle = g_hWnd; - - return true; -} - -void ImGui_ImplDX12_Shutdown() -{ - // Command list should be closed before this method - g_GpuFence.WaitForFence(); - g_GpuFence.Release(); - - if (g_pFontTextureUploadHeap) g_pFontTextureUploadHeap->Release(); - g_pFontTextureUploadHeap = NULL; - if (g_pFontTexture) g_pFontTexture->Release(); - g_pFontTexture = NULL; - - ImGui_ImplDX12_InvalidateDeviceObjects(); - ImGui::Shutdown(); - g_pd3dDevice = NULL; - g_pd3dCmdList = NULL; - g_hWnd = (HWND)0; -} - -void ImGui_ImplDX12_NewFrame() -{ - if (!g_pVB) - ImGui_ImplDX12_CreateDeviceObjects(); - - ImGuiIO& io = ImGui::GetIO(); - - // Setup display size (every frame to accommodate for window resizing) - RECT rect; - GetClientRect(g_hWnd, &rect); - io.DisplaySize = ImVec2((float)(rect.right - rect.left), (float)(rect.bottom - rect.top)); - - // Setup time step - INT64 current_time; - QueryPerformanceCounter((LARGE_INTEGER *)¤t_time); - io.DeltaTime = (float)(current_time - g_Time) / g_TicksPerSecond; - g_Time = current_time; - - // Read keyboard modifiers inputs - io.KeyCtrl = (GetKeyState(VK_CONTROL) & 0x8000) != 0; - io.KeyShift = (GetKeyState(VK_SHIFT) & 0x8000) != 0; - io.KeyAlt = (GetKeyState(VK_MENU) & 0x8000) != 0; - // io.KeysDown : filled by WM_KEYDOWN/WM_KEYUP events - // io.MousePos : filled by WM_MOUSEMOVE events - // io.MouseDown : filled by WM_*BUTTON* events - // io.MouseWheel : filled by WM_MOUSEWHEEL events - - // Hide OS mouse cursor if ImGui is drawing it - SetCursor(io.MouseDrawCursor ? NULL : LoadCursor(NULL, IDC_ARROW)); - - // Start the frame - ImGui::NewFrame(); -} diff --git a/samples/D3D12/external/imgui/examples/directx12_example/imgui_impl_dx12.h b/samples/D3D12/external/imgui/examples/directx12_example/imgui_impl_dx12.h deleted file mode 100644 index 0555607..0000000 --- a/samples/D3D12/external/imgui/examples/directx12_example/imgui_impl_dx12.h +++ /dev/null @@ -1,23 +0,0 @@ -// ImGui Win32 + DirectX12 binding -// https://github.com/ocornut/imgui - -struct ID3D12Device; -struct ID3D12DeviceContext; -struct ID3D12DescriptorHeap; -struct ID3D12GraphicsCommandList; -struct ID3D12CommandQueue; - -bool ImGui_ImplDX12_Init(void* hwnd, ID3D12Device* device, ID3D12CommandQueue* pCmdQueue, ID3D12GraphicsCommandList* pCmdList, ID3D12DescriptorHeap* descHeap, unsigned int descHeapBaseOffset); -void ImGui_ImplDX12_Shutdown(); -void ImGui_ImplDX12_NewFrame(); - -// Use if you want to reset your rendering device without losing ImGui state. -void ImGui_ImplDX12_InvalidateDeviceObjects(); -bool ImGui_ImplDX12_CreateDeviceObjects(); - -// Handler for Win32 messages, update mouse/keyboard data. -// You may or not need this for your implementation, but it can serve as reference for handling inputs. -// Commented out to avoid dragging dependencies on types. You can copy the extern declaration in your code. -/* -extern LRESULT ImGui_ImplDX12_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); -*/ diff --git a/samples/D3D12/external/imgui/examples/directx12_example/main.cpp b/samples/D3D12/external/imgui/examples/directx12_example/main.cpp deleted file mode 100644 index 7ac1fd1..0000000 --- a/samples/D3D12/external/imgui/examples/directx12_example/main.cpp +++ /dev/null @@ -1,225 +0,0 @@ -// ImGui - standalone example application for DirectX 11 - -#include -#include "imgui_impl_dx11.h" -#include -#include -#define DIRECTINPUT_VERSION 0x0800 -#include - -// Data -static ID3D11Device* g_pd3dDevice = NULL; -static ID3D11DeviceContext* g_pd3dDeviceContext = NULL; -static IDXGISwapChain* g_pSwapChain = NULL; -static ID3D11RenderTargetView* g_mainRenderTargetView = NULL; - -void CreateRenderTarget() -{ - DXGI_SWAP_CHAIN_DESC sd; - g_pSwapChain->GetDesc(&sd); - - // Create the render target - ID3D11Texture2D* pBackBuffer; - D3D11_RENDER_TARGET_VIEW_DESC render_target_view_desc; - ZeroMemory(&render_target_view_desc, sizeof(render_target_view_desc)); - render_target_view_desc.Format = sd.BufferDesc.Format; - render_target_view_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; - g_pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer); - g_pd3dDevice->CreateRenderTargetView(pBackBuffer, &render_target_view_desc, &g_mainRenderTargetView); - g_pd3dDeviceContext->OMSetRenderTargets(1, &g_mainRenderTargetView, NULL); - pBackBuffer->Release(); -} - -void CleanupRenderTarget() -{ - if (g_mainRenderTargetView) { g_mainRenderTargetView->Release(); g_mainRenderTargetView = NULL; } -} - -HRESULT CreateDeviceD3D(HWND hWnd) -{ - // Setup swap chain - DXGI_SWAP_CHAIN_DESC sd; - { - ZeroMemory(&sd, sizeof(sd)); - sd.BufferCount = 2; - sd.BufferDesc.Width = 0; - sd.BufferDesc.Height = 0; - sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - sd.BufferDesc.RefreshRate.Numerator = 60; - sd.BufferDesc.RefreshRate.Denominator = 1; - sd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; - sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - sd.OutputWindow = hWnd; - sd.SampleDesc.Count = 1; - sd.SampleDesc.Quality = 0; - sd.Windowed = TRUE; - sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; - } - - UINT createDeviceFlags = 0; -#ifdef _DEBUG - createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG; -#endif - D3D_FEATURE_LEVEL featureLevel; - const D3D_FEATURE_LEVEL featureLevelArray[1] = { D3D_FEATURE_LEVEL_11_0, }; - if (D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, createDeviceFlags, featureLevelArray, 1, D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice, &featureLevel, &g_pd3dDeviceContext) != S_OK) - return E_FAIL; - - // Setup rasterizer - { - D3D11_RASTERIZER_DESC RSDesc; - memset(&RSDesc, 0, sizeof(D3D11_RASTERIZER_DESC)); - RSDesc.FillMode = D3D11_FILL_SOLID; - RSDesc.CullMode = D3D11_CULL_NONE; - RSDesc.FrontCounterClockwise = FALSE; - RSDesc.DepthBias = 0; - RSDesc.SlopeScaledDepthBias = 0.0f; - RSDesc.DepthBiasClamp = 0; - RSDesc.DepthClipEnable = TRUE; - RSDesc.ScissorEnable = TRUE; - RSDesc.AntialiasedLineEnable = FALSE; - RSDesc.MultisampleEnable = (sd.SampleDesc.Count > 1) ? TRUE : FALSE; - - ID3D11RasterizerState* pRState = NULL; - g_pd3dDevice->CreateRasterizerState(&RSDesc, &pRState); - g_pd3dDeviceContext->RSSetState(pRState); - pRState->Release(); - } - - CreateRenderTarget(); - - return S_OK; -} - -void CleanupDeviceD3D() -{ - CleanupRenderTarget(); - if (g_pSwapChain) { g_pSwapChain->Release(); g_pSwapChain = NULL; } - if (g_pd3dDeviceContext) { g_pd3dDeviceContext->Release(); g_pd3dDeviceContext = NULL; } - if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = NULL; } -} - -extern LRESULT ImGui_ImplDX11_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); -LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - if (ImGui_ImplDX11_WndProcHandler(hWnd, msg, wParam, lParam)) - return true; - - switch (msg) - { - case WM_SIZE: - if (g_pd3dDevice != NULL && wParam != SIZE_MINIMIZED) - { - ImGui_ImplDX11_InvalidateDeviceObjects(); - CleanupRenderTarget(); - g_pSwapChain->ResizeBuffers(0, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam), DXGI_FORMAT_UNKNOWN, 0); - CreateRenderTarget(); - ImGui_ImplDX11_CreateDeviceObjects(); - } - return 0; - case WM_SYSCOMMAND: - if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu - return 0; - break; - case WM_DESTROY: - PostQuitMessage(0); - return 0; - } - return DefWindowProc(hWnd, msg, wParam, lParam); -} - -int main(int, char**) -{ - // Create application window - WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(NULL), NULL, LoadCursor(NULL, IDC_ARROW), NULL, NULL, L"ImGui Example", NULL }; - RegisterClassEx(&wc); - HWND hwnd = CreateWindow(L"ImGui Example", L"ImGui DirectX11 Example", WS_OVERLAPPEDWINDOW, 100, 100, 1280, 800, NULL, NULL, wc.hInstance, NULL); - - // Initialize Direct3D - if (CreateDeviceD3D(hwnd) < 0) - { - CleanupDeviceD3D(); - UnregisterClass(L"ImGui Example", wc.hInstance); - return 1; - } - - // Show the window - ShowWindow(hwnd, SW_SHOWDEFAULT); - UpdateWindow(hwnd); - - // Setup ImGui binding - ImGui_ImplDX11_Init(hwnd, g_pd3dDevice, g_pd3dDeviceContext); - - // Load Fonts - // (see extra_fonts/README.txt for more details) - //ImGuiIO& io = ImGui::GetIO(); - //io.Fonts->AddFontDefault(); - //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f); - //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f); - //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyClean.ttf", 13.0f); - //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f); - //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese()); - - // Merge glyphs from multiple fonts into one (e.g. combine default font with another with Chinese glyphs, or add icons) - //ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; - //ImFontConfig icons_config; icons_config.MergeMode = true; icons_config.PixelSnapH = true; - //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 18.0f); - //io.Fonts->AddFontFromFileTTF("../../extra_fonts/fontawesome-webfont.ttf", 18.0f, &icons_config, icons_ranges); - - bool show_test_window = true; - bool show_another_window = false; - ImVec4 clear_col = ImColor(114, 144, 154); - - // Main loop - MSG msg; - ZeroMemory(&msg, sizeof(msg)); - while (msg.message != WM_QUIT) - { - if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - continue; - } - ImGui_ImplDX11_NewFrame(); - - // 1. Show a simple window - // Tip: if we don't call ImGui::Begin()/ImGui::End() the widgets appears in a window automatically called "Debug" - { - static float f = 0.0f; - ImGui::Text("Hello, world!"); - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); - ImGui::ColorEdit3("clear color", (float*)&clear_col); - if (ImGui::Button("Test Window")) show_test_window ^= 1; - if (ImGui::Button("Another Window")) show_another_window ^= 1; - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate); - } - - // 2. Show another simple window, this time using an explicit Begin/End pair - if (show_another_window) - { - ImGui::SetNextWindowSize(ImVec2(200,100), ImGuiSetCond_FirstUseEver); - ImGui::Begin("Another Window", &show_another_window); - ImGui::Text("Hello"); - ImGui::End(); - } - - // 3. Show the ImGui test window. Most of the sample code is in ImGui::ShowTestWindow() - if (show_test_window) - { - ImGui::SetNextWindowPos(ImVec2(650, 20), ImGuiSetCond_FirstUseEver); // Normally user code doesn't need/want to call it because positions are saved in .ini file anyway. Here we just want to make the demo initial state a bit more friendly! - ImGui::ShowTestWindow(&show_test_window); - } - - // Rendering - g_pd3dDeviceContext->ClearRenderTargetView(g_mainRenderTargetView, (float*)&clear_col); - ImGui::Render(); - g_pSwapChain->Present(0, 0); - } - - ImGui_ImplDX11_Shutdown(); - CleanupDeviceD3D(); - UnregisterClass(L"ImGui Example", wc.hInstance); - - return 0; -} diff --git a/samples/D3D12/external/imgui/extra_fonts/Cousine-Regular.ttf b/samples/D3D12/external/imgui/extra_fonts/Cousine-Regular.ttf deleted file mode 100644 index 70a0bf9..0000000 Binary files a/samples/D3D12/external/imgui/extra_fonts/Cousine-Regular.ttf and /dev/null differ diff --git a/samples/D3D12/external/imgui/extra_fonts/DroidSans.ttf b/samples/D3D12/external/imgui/extra_fonts/DroidSans.ttf deleted file mode 100644 index 767c63a..0000000 Binary files a/samples/D3D12/external/imgui/extra_fonts/DroidSans.ttf and /dev/null differ diff --git a/samples/D3D12/external/imgui/extra_fonts/Karla-Regular.ttf b/samples/D3D12/external/imgui/extra_fonts/Karla-Regular.ttf deleted file mode 100644 index 81b3de6..0000000 Binary files a/samples/D3D12/external/imgui/extra_fonts/Karla-Regular.ttf and /dev/null differ diff --git a/samples/D3D12/external/imgui/extra_fonts/ProggyClean.ttf b/samples/D3D12/external/imgui/extra_fonts/ProggyClean.ttf deleted file mode 100644 index 0270cdf..0000000 Binary files a/samples/D3D12/external/imgui/extra_fonts/ProggyClean.ttf and /dev/null differ diff --git a/samples/D3D12/external/imgui/extra_fonts/ProggyTiny.ttf b/samples/D3D12/external/imgui/extra_fonts/ProggyTiny.ttf deleted file mode 100644 index 1c4312c..0000000 Binary files a/samples/D3D12/external/imgui/extra_fonts/ProggyTiny.ttf and /dev/null differ diff --git a/samples/D3D12/external/imgui/extra_fonts/README.txt b/samples/D3D12/external/imgui/extra_fonts/README.txt deleted file mode 100644 index f446f36..0000000 --- a/samples/D3D12/external/imgui/extra_fonts/README.txt +++ /dev/null @@ -1,116 +0,0 @@ - - The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' that you can use without any external files. - Those are only provided as a convenience, you can load your own .TTF files. - ---------------------------------- - LOADING INSTRUCTIONS ---------------------------------- - - Load default font with: - - ImGuiIO& io = ImGui::GetIO(); - io.Fonts->AddFontDefault(); - - Load .TTF file with: - - ImGuiIO& io = ImGui::GetIO(); - io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels); - - Detailed options: - - ImFontConfig config; - config.OversampleH = 3; - config.OversampleV = 3; - config.GlyphExtraSpacing.x = 1.0f; - io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config); - - Combine two fonts into one: - - // Load main font - io.Fonts->AddFontDefault(); - - // Add character ranges and merge into main font - ImWchar ranges[] = { 0xf000, 0xf3ff, 0 }; - ImFontConfig config; - config.MergeMode = true; - io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 16.0f, &config, ranges); - io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config, io.Fonts->GetGlyphRangesJapanese()); - - Add a fourth parameter to bake specific font ranges only: - - // Basic Latin, Extended Latin - io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault()); - - // Include full set of about 21000 CJK Unified Ideographs - io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese()); - - // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs - io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese()); - - Offset font vertically by altering the io.Font->DisplayOffset value: - - ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels); - font->DisplayOffset.y += 1; // Render 1 pixel down - ---------------------------------- - EMBED A FONT IN SOURCE CODE ---------------------------------- - - Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array. Then load the font with: - - ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...); - - Or - - ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...); - ---------------------------------- - INCLUDED FONT FILES ---------------------------------- - - Cousine-Regular.ttf - Digitized data copyright (c) 2010 Google Corporation. - Licensed under the SIL Open Font License, Version 1.1 - - DroidSans.ttf - Copyright (c) Steve Matteson - Apache License, version 2.0 - http://www.google.com/fonts/specimen/Droid+Sans - - ProggyClean.ttf - Copyright (c) 2004, 2005 Tristan Grimmer - MIT License - recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1 - - ProggyTiny.ttf - Copyright (c) 2004, 2005 Tristan Grimmer - MIT License - recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1 - - Karla-Regular - Copyright (c) 2012, Jonathan Pinhorn - SIL OPEN FONT LICENSE Version 1.1 - ---------------------------------- - LINKS ---------------------------------- - - Typefaces for source code beautification - https://github.com/chrissimpkins/codeface - - Proggy Programming Fonts - http://upperbounds.net - - Inconsolata - http://www.levien.com/type/myfonts/inconsolata.html - - Adobe Source Code Pro: Monospaced font family for user interface and coding environments - https://github.com/adobe-fonts/source-code-pro - - Monospace/Fixed Width Programmer's Fonts - http://www.lowing.org/fonts/ - - (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need. - http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html - - Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing). diff --git a/samples/D3D12/external/imgui/extra_fonts/binary_to_compressed_c.cpp b/samples/D3D12/external/imgui/extra_fonts/binary_to_compressed_c.cpp deleted file mode 100644 index 34411a0..0000000 --- a/samples/D3D12/external/imgui/extra_fonts/binary_to_compressed_c.cpp +++ /dev/null @@ -1,364 +0,0 @@ -// ImGui - binary_to_compressed_c.cpp -// Helper tool to turn a file into a C array. -// The data is first compressed with stb_compress() to reduce source code size. -// Then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex) -// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes.) -// Useful if you want to embed fonts into your code. -// Note that even with compression, the output array is likely to be bigger than the binary file.. -// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF() - -#define _CRT_SECURE_NO_WARNINGS -#include -#include -#include -#include - -// stb_compress* from stb.h - declaration -typedef unsigned int stb_uint; -typedef unsigned char stb_uchar; -stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len); - -static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding); - -int main(int argc, char** argv) -{ - if (argc < 3) - { - printf("Syntax: %s [-base85] \n", argv[0]); - return 0; - } - - int argn = 1; - bool use_base85_encoding = false; - if (argv[argn][0] == '-') - { - if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; } - else - { - printf("Unknown argument: '%s'\n", argv[argn]); - return 1; - } - } - - binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding); - return 1; -} - -char Encode85Byte(unsigned int x) -{ - x = (x % 85) + 35; - return (x>='\\') ? x+1 : x; -} - -bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding) -{ - // Read file - FILE* f = fopen(filename, "rb"); - if (!f) return false; - int data_sz; - if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; } - char* data = new char[data_sz+4]; - if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; } - memset((void *)(((char*)data) + data_sz), 0, 4); - fclose(f); - - // Compress - int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess - char* compressed = new char[maxlen]; - int compressed_sz = stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz); - memset(compressed + compressed_sz, 0, maxlen - compressed_sz); - - // Output as Base85 encoded - FILE* out = stdout; - fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz); - fprintf(out, "// Exported using binary_to_compressed_c.cpp\n"); - if (use_base85_encoding) - { - fprintf(out, "static const char %s_compressed_data_base85[%d+1] =\n \"", symbol, (int)((compressed_sz+3)/4)*5); - int column = 0; - for (int i = 0; i < compressed_sz; i += 4) - { - unsigned int d = *(unsigned int*)(compressed + i); - fprintf(out, "%c%c%c%c%c", Encode85Byte(d), Encode85Byte(d/85), Encode85Byte(d/7225), Encode85Byte(d/614125), Encode85Byte(d/52200625)); - if ((i % 112) == 112-4) - fprintf(out, "\"\n \""); - } - fprintf(out, "\";\n\n"); - } - else - { - fprintf(out, "static const unsigned int %s_compressed_size = %d;\n", symbol, (int)compressed_sz); - fprintf(out, "static const unsigned int %s_compressed_data[%d/4] =\n{", symbol, (int)((compressed_sz+3)/4)*4); - int column = 0; - for (int i = 0; i < compressed_sz; i += 4) - { - unsigned int d = *(unsigned int*)(compressed + i); - if ((column++ % 12) == 0) - fprintf(out, "\n 0x%08x, ", d); - else - fprintf(out, "0x%08x, ", d); - } - fprintf(out, "\n};\n\n"); - } - - // Cleanup - delete[] data; - delete[] compressed; - return true; -} - -// stb_compress* from stb.h - definition - -//////////////////// compressor /////////////////////// - -static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen) -{ - const unsigned long ADLER_MOD = 65521; - unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16; - unsigned long blocklen, i; - - blocklen = buflen % 5552; - while (buflen) { - for (i=0; i + 7 < blocklen; i += 8) { - s1 += buffer[0], s2 += s1; - s1 += buffer[1], s2 += s1; - s1 += buffer[2], s2 += s1; - s1 += buffer[3], s2 += s1; - s1 += buffer[4], s2 += s1; - s1 += buffer[5], s2 += s1; - s1 += buffer[6], s2 += s1; - s1 += buffer[7], s2 += s1; - - buffer += 8; - } - - for (; i < blocklen; ++i) - s1 += *buffer++, s2 += s1; - - s1 %= ADLER_MOD, s2 %= ADLER_MOD; - buflen -= blocklen; - blocklen = 5552; - } - return (s2 << 16) + s1; -} - -static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen) -{ - stb_uint i; - for (i=0; i < maxlen; ++i) - if (m1[i] != m2[i]) return i; - return i; -} - -// simple implementation that just takes the source data in a big block - -static stb_uchar *stb__out; -static FILE *stb__outfile; -static stb_uint stb__outbytes; - -static void stb__write(unsigned char v) -{ - fputc(v, stb__outfile); - ++stb__outbytes; -} - -#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v))) - -static void stb_out2(stb_uint v) -{ - stb_out(v >> 8); - stb_out(v); -} - -static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); } -static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); -stb_out(v >> 8 ); stb_out(v); } - -static void outliterals(stb_uchar *in, int numlit) -{ - while (numlit > 65536) { - outliterals(in,65536); - in += 65536; - numlit -= 65536; - } - - if (numlit == 0) ; - else if (numlit <= 32) stb_out (0x000020 + numlit-1); - else if (numlit <= 2048) stb_out2(0x000800 + numlit-1); - else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1); - - if (stb__out) { - memcpy(stb__out,in,numlit); - stb__out += numlit; - } else - fwrite(in, 1, numlit, stb__outfile); -} - -static int stb__window = 0x40000; // 256K - -static int stb_not_crap(int best, int dist) -{ - return ((best > 2 && dist <= 0x00100) - || (best > 5 && dist <= 0x04000) - || (best > 7 && dist <= 0x80000)); -} - -static stb_uint stb__hashsize = 32768; - -// note that you can play with the hashing functions all you -// want without needing to change the decompressor -#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c]) -#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d]) -#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e]) - -static unsigned int stb__running_adler; - -static int stb_compress_chunk(stb_uchar *history, - stb_uchar *start, - stb_uchar *end, - int length, - int *pending_literals, - stb_uchar **chash, - stb_uint mask) -{ - (void)history; - int window = stb__window; - stb_uint match_max; - stb_uchar *lit_start = start - *pending_literals; - stb_uchar *q = start; - -#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask) - - // stop short of the end so we don't scan off the end doing - // the hashing; this means we won't compress the last few bytes - // unless they were part of something longer - while (q < start+length && q+12 < end) { - int m; - stb_uint h1,h2,h3,h4, h; - stb_uchar *t; - int best = 2, dist=0; - - if (q+65536 > end) - match_max = end-q; - else - match_max = 65536; - -#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d))) - -#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \ - if (p ? dist != q-t : 1) \ - if ((m = stb_matchlen(t, q, match_max)) > best) \ - if (stb__nc(m,q-(t))) \ - best = m, dist = q - (t) - - // rather than search for all matches, only try 4 candidate locations, - // chosen based on 4 different hash functions of different lengths. - // this strategy is inspired by LZO; hashing is unrolled here using the - // 'hc' macro - h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h); - t = chash[h1]; if (t) STB__TRY(t,0); - h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h); - h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1); - h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h); - h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1); - h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h); - t = chash[h4]; if (t) STB__TRY(t,1); - - // because we use a shared hash table, can only update it - // _after_ we've probed all of them - chash[h1] = chash[h2] = chash[h3] = chash[h4] = q; - - if (best > 2) - assert(dist > 0); - - // see if our best match qualifies - if (best < 3) { // fast path literals - ++q; - } else if (best > 2 && best <= 0x80 && dist <= 0x100) { - outliterals(lit_start, q-lit_start); lit_start = (q += best); - stb_out(0x80 + best-1); - stb_out(dist-1); - } else if (best > 5 && best <= 0x100 && dist <= 0x4000) { - outliterals(lit_start, q-lit_start); lit_start = (q += best); - stb_out2(0x4000 + dist-1); - stb_out(best-1); - } else if (best > 7 && best <= 0x100 && dist <= 0x80000) { - outliterals(lit_start, q-lit_start); lit_start = (q += best); - stb_out3(0x180000 + dist-1); - stb_out(best-1); - } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) { - outliterals(lit_start, q-lit_start); lit_start = (q += best); - stb_out3(0x100000 + dist-1); - stb_out2(best-1); - } else if (best > 9 && dist <= 0x1000000) { - if (best > 65536) best = 65536; - outliterals(lit_start, q-lit_start); lit_start = (q += best); - if (best <= 0x100) { - stb_out(0x06); - stb_out3(dist-1); - stb_out(best-1); - } else { - stb_out(0x04); - stb_out3(dist-1); - stb_out2(best-1); - } - } else { // fallback literals if no match was a balanced tradeoff - ++q; - } - } - - // if we didn't get all the way, add the rest to literals - if (q-start < length) - q = start+length; - - // the literals are everything from lit_start to q - *pending_literals = (q - lit_start); - - stb__running_adler = stb_adler32(stb__running_adler, start, q - start); - return q - start; -} - -static int stb_compress_inner(stb_uchar *input, stb_uint length) -{ - int literals = 0; - stb_uint len,i; - - stb_uchar **chash; - chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*)); - if (chash == NULL) return 0; // failure - for (i=0; i < stb__hashsize; ++i) - chash[i] = NULL; - - // stream signature - stb_out(0x57); stb_out(0xbc); - stb_out2(0); - - stb_out4(0); // 64-bit length requires 32-bit leading 0 - stb_out4(length); - stb_out4(stb__window); - - stb__running_adler = 1; - - len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1); - assert(len == length); - - outliterals(input+length - literals, literals); - - free(chash); - - stb_out2(0x05fa); // end opcode - - stb_out4(stb__running_adler); - - return 1; // success -} - -stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length) -{ - stb__out = out; - stb__outfile = NULL; - - stb_compress_inner(input, length); - - return stb__out - out; -} diff --git a/samples/D3D12/external/imgui/imconfig.h b/samples/D3D12/external/imgui/imconfig.h deleted file mode 100644 index 20f58b2..0000000 --- a/samples/D3D12/external/imgui/imconfig.h +++ /dev/null @@ -1,56 +0,0 @@ -//----------------------------------------------------------------------------- -// USER IMPLEMENTATION -// This file contains compile-time options for ImGui. -// Other options (memory allocation overrides, callbacks, etc.) can be set at runtime via the ImGuiIO structure - ImGui::GetIO(). -//----------------------------------------------------------------------------- - -#pragma once - -//---- Define assertion handler. Defaults to calling assert(). -//#define IM_ASSERT(_EXPR) MyAssert(_EXPR) - -//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows. -//#define IMGUI_API __declspec( dllexport ) -//#define IMGUI_API __declspec( dllimport ) - -//---- Include imgui_user.inl at the end of imgui.cpp so you can include code that extends ImGui using its private data/functions. -//#define IMGUI_INCLUDE_IMGUI_USER_INL - -//---- Include imgui_user.h at the end of imgui.h -//#define IMGUI_INCLUDE_IMGUI_USER_H - -//---- Don't implement default handlers for Windows (so as not to link with OpenClipboard() and others Win32 functions) -//#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS -//#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS - -//---- Don't implement help and test window functionality (ShowUserGuide()/ShowStyleEditor()/ShowTestWindow() methods will be empty) -//#define IMGUI_DISABLE_TEST_WINDOWS - -//---- Don't define obsolete functions names -//#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS - -//---- Implement STB libraries in a namespace to avoid conflicts -//#define IMGUI_STB_NAMESPACE ImGuiStb - -//---- Define constructor and implicit cast operators to convert back<>forth from your math types and ImVec2/ImVec4. -/* -#define IM_VEC2_CLASS_EXTRA \ - ImVec2(const MyVec2& f) { x = f.x; y = f.y; } \ - operator MyVec2() const { return MyVec2(x,y); } - -#define IM_VEC4_CLASS_EXTRA \ - ImVec4(const MyVec4& f) { x = f.x; y = f.y; z = f.z; w = f.w; } \ - operator MyVec4() const { return MyVec4(x,y,z,w); } -*/ - -//---- Freely implement extra functions within the ImGui:: namespace. -//---- Declare helpers or widgets implemented in imgui_user.inl or elsewhere, so end-user doesn't need to include multiple files. -//---- e.g. you can create variants of the ImGui::Value() helper for your low-level math types, or your own widgets/helpers. -/* -namespace ImGui -{ - void Value(const char* prefix, const MyVec2& v, const char* float_format = NULL); - void Value(const char* prefix, const MyVec4& v, const char* float_format = NULL); -} -*/ - diff --git a/samples/D3D12/external/imgui/imgui.cpp b/samples/D3D12/external/imgui/imgui.cpp deleted file mode 100644 index d9b0cf2..0000000 --- a/samples/D3D12/external/imgui/imgui.cpp +++ /dev/null @@ -1,8920 +0,0 @@ -// ImGui library v1.44 -// Main code & documentation - -// See ImGui::ShowTestWindow() in imgui_demo.cpp for demo code. -// Read 'Programmer guide' below for notes on how to setup ImGui in your codebase. -// Get latest version at https://github.com/ocornut/imgui -// Releases change-log at https://github.com/ocornut/imgui/releases -// Developed by Omar Cornut and ImGui contributors. - -/* - - Index - - MISSION STATEMENT - - END-USER GUIDE - - PROGRAMMER GUIDE (read me!) - - API BREAKING CHANGES (read me when you update!) - - FREQUENTLY ASKED QUESTIONS (FAQ), TIPS - - How do I update to a newer version of ImGui? - - Can I have multiple widgets with the same label? Can I have widget without a label? (Yes) - - Why is my text output blurry? - - How can I load a different font than the default? - - How can I load multiple fonts? - - How can I display and input non-latin characters such as Chinese, Japanese, Korean, Cyrillic? - - ISSUES & TODO-LIST - - CODE - - - MISSION STATEMENT - ================= - - - easy to use to create code-driven and data-driven tools - - easy to use to create ad hoc short-lived tools and long-lived, more elaborate tools - - easy to hack and improve - - minimize screen real-estate usage - - minimize setup and maintenance - - minimize state storage on user side - - portable, minimize dependencies, run on target (consoles, phones, etc.) - - efficient runtime (NB- we do allocate when "growing" content - creating a window / opening a tree node for the first time, etc. - but a typical frame won't allocate anything) - - read about immediate-mode gui principles @ http://mollyrocket.com/861, http://mollyrocket.com/forums/index.html - - Designed for developers and content-creators, not the typical end-user! Some of the weaknesses includes: - - doesn't look fancy, doesn't animate - - limited layout features, intricate layouts are typically crafted in code - - occasionally uses statically sized buffers for string manipulations - won't crash, but some very long pieces of text may be clipped. functions like ImGui::TextUnformatted() don't have such restriction. - - - END-USER GUIDE - ============== - - - double-click title bar to collapse window - - click upper right corner to close a window, available when 'bool* p_opened' is passed to ImGui::Begin() - - click and drag on lower right corner to resize window - - click and drag on any empty space to move window - - double-click/double-tap on lower right corner grip to auto-fit to content - - TAB/SHIFT+TAB to cycle through keyboard editable fields - - use mouse wheel to scroll - - use CTRL+mouse wheel to zoom window contents (if IO.FontAllowScaling is true) - - CTRL+Click on a slider or drag box to input value as text - - text editor: - - Hold SHIFT or use mouse to select text. - - CTRL+Left/Right to word jump - - CTRL+Shift+Left/Right to select words - - CTRL+A our Double-Click to select all - - CTRL+X,CTRL+C,CTRL+V to use OS clipboard - - CTRL+Z,CTRL+Y to undo/redo - - ESCAPE to revert text to its original value - - You can apply arithmetic operators +,*,/ on numerical values. Use +- to subtract (because - would set a negative value!) - - - PROGRAMMER GUIDE - ================ - - - read the FAQ below this section! - - your code creates the UI, if your code doesn't run the UI is gone! == very dynamic UI, no construction/destructions steps, less data retention on your side, no state duplication, less sync, less bugs. - - call and read ImGui::ShowTestWindow() for demo code demonstrating most features. - - see examples/ folder for standalone sample applications. e.g. examples/opengl_example/ - - customization: PushStyleColor()/PushStyleVar() or the style editor to tweak the look of the interface (e.g. if you want a more compact UI or a different color scheme). - - - getting started: - - initialisation: call ImGui::GetIO() to retrieve the ImGuiIO structure and fill the 'Settings' data. - - every frame: - 1/ in your mainloop or right after you got your keyboard/mouse info, call ImGui::GetIO() and fill the 'Input' data, then call ImGui::NewFrame(). - 2/ use any ImGui function you want between NewFrame() and Render() - 3/ ImGui::Render() to render all the accumulated command-lists. it will call your RenderDrawListFn handler that you set in the IO structure. - - all rendering information are stored into command-lists until ImGui::Render() is called. - - ImGui never touches or know about your GPU state. the only function that knows about GPU is the RenderDrawListFn handler that you must provide. - - effectively it means you can create widgets at any time in your code, regardless of "update" vs "render" considerations. - - refer to the examples applications in the examples/ folder for instruction on how to setup your code. - - a typical application skeleton may be: - - // Application init - ImGuiIO& io = ImGui::GetIO(); - io.DisplaySize.x = 1920.0f; - io.DisplaySize.y = 1280.0f; - io.DeltaTime = 1.0f/60.0f; - io.IniFilename = "imgui.ini"; - // TODO: Fill others settings of the io structure - - // Load texture - unsigned char* pixels; - int width, height, bytes_per_pixels; - io.Fonts->GetTexDataAsRGBA32(pixels, &width, &height, &bytes_per_pixels); - // TODO: copy texture to graphics memory. - // TODO: store your texture pointer/identifier in 'io.Fonts->TexID' - - // Application main loop - while (true) - { - // 1) get low-level input - // e.g. on Win32, GetKeyboardState(), or poll your events, etc. - - // 2) TODO: fill all fields of IO structure and call NewFrame - ImGuiIO& io = ImGui::GetIO(); - io.MousePos = mouse_pos; - io.MouseDown[0] = mouse_button_0; - io.KeysDown[i] = ... - ImGui::NewFrame(); - - // 3) most of your application code here - you can use any of ImGui::* functions at any point in the frame - ImGui::Begin("My window"); - ImGui::Text("Hello, world."); - ImGui::End(); - GameUpdate(); - GameRender(); - - // 4) render & swap video buffers - ImGui::Render(); - // swap video buffer, etc. - } - - - after calling ImGui::NewFrame() you can read back 'io.WantCaptureMouse' and 'io.WantCaptureKeyboard' to tell if ImGui - wants to use your inputs. if it does you can discard/hide the inputs from the rest of your application. - - API BREAKING CHANGES - ==================== - - Occasionally introducing changes that are breaking the API. The breakage are generally minor and easy to fix. - Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code. - Also read releases logs https://github.com/ocornut/imgui/releases for more details. - - - 2015/08/05 (1.44) - split imgui.cpp into extra files: imgui_demo.cpp imgui_draw.cpp imgui_internal.h that you need to add to your project. - - 2015/07/18 (1.44) - fixed angles in ImDrawList::PathArcTo(), PathArcToFast() (introduced in 1.43) being off by an extra PI for no justifiable reason - - 2015/07/14 (1.43) - add new ImFontAtlas::AddFont() API. For the old AddFont***, moved the 'font_no' parameter of ImFontAtlas::AddFont** functions to the ImFontConfig structure. - you need to render your textured triangles with bilinear filtering to benefit from sub-pixel positioning of text. - - 2015/07/08 (1.43) - switched rendering data to use indexed rendering. this is saving a fair amount of CPU/GPU and enables us to get anti-aliasing for a marginal cost. - this necessary change will break your rendering function! the fix should be very easy. sorry for that :( - - if you are using a vanilla copy of one of the imgui_impl_XXXX.cpp provided in the example, you just need to update your copy and you can ignore the rest. - - the signature of the io.RenderDrawListsFn handler has changed! - ImGui_XXXX_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_count) - became: - ImGui_XXXX_RenderDrawLists(ImDrawData* draw_data). - argument 'cmd_lists' -> 'draw_data->CmdLists' - argument 'cmd_lists_count' -> 'draw_data->CmdListsCount' - ImDrawList 'commands' -> 'CmdBuffer' - ImDrawList 'vtx_buffer' -> 'VtxBuffer' - ImDrawList n/a -> 'IdxBuffer' (new) - ImDrawCmd 'vtx_count' -> 'ElemCount' - ImDrawCmd 'clip_rect' -> 'ClipRect' - ImDrawCmd 'user_callback' -> 'UserCallback' - ImDrawCmd 'texture_id' -> 'TextureId' - - each ImDrawList now contains both a vertex buffer and an index buffer. For each command, render ElemCount/3 triangles using indices from the index buffer. - - if you REALLY cannot render indexed primitives, you can call the draw_data->DeIndexAllBuffers() method to de-index the buffers. This is slow and a waste of CPU/GPU. Prefer using indexed rendering! - - refer to code in the examples/ folder or ask on the GitHub if you are unsure of how to upgrade. please upgrade! - - 2015/07/10 (1.43) - changed SameLine() parameters from int to float. - - 2015/07/02 (1.42) - renamed SetScrollPosHere() to SetScrollFromCursorPos(). Kept inline redirection function (will obsolete). - - 2015/07/02 (1.42) - renamed GetScrollPosY() to GetScrollY(). Necessary to reduce confusion along with other scrolling functions, because positions (e.g. cursor position) are not equivalent to scrolling amount. - - 2015/06/14 (1.41) - changed ImageButton() default bg_col parameter from (0,0,0,1) (black) to (0,0,0,0) (transparent) - makes a difference when texture have transparence - - 2015/06/14 (1.41) - changed Selectable() API from (label, selected, size) to (label, selected, flags, size). Size override should have been rarely be used. Sorry! - - 2015/05/31 (1.40) - renamed GetWindowCollapsed() to IsWindowCollapsed() for consistency. Kept inline redirection function (will obsolete). - - 2015/05/31 (1.40) - renamed IsRectClipped() to IsRectVisible() for consistency. Note that return value is opposite! Kept inline redirection function (will obsolete). - - 2015/05/27 (1.40) - removed the third 'repeat_if_held' parameter from Button() - sorry! it was rarely used and inconsistent. Use PushButtonRepeat(true) / PopButtonRepeat() to enable repeat on desired buttons. - - 2015/05/11 (1.40) - changed BeginPopup() API, takes a string identifier instead of a bool. ImGui needs to manage the open/closed state of popups. Call OpenPopup() to actually set the "opened" state of a popup. BeginPopup() returns true if the popup is opened. - - 2015/05/03 (1.40) - removed style.AutoFitPadding, using style.WindowPadding makes more sense (the default values were already the same). - - 2015/04/13 (1.38) - renamed IsClipped() to IsRectClipped(). Kept inline redirection function (will obsolete). - - 2015/04/09 (1.38) - renamed ImDrawList::AddArc() to ImDrawList::AddArcFast() for compatibility with future API - - 2015/04/03 (1.38) - removed ImGuiCol_CheckHovered, ImGuiCol_CheckActive, replaced with the more general ImGuiCol_FrameBgHovered, ImGuiCol_FrameBgActive. - - 2014/04/03 (1.38) - removed support for passing -FLT_MAX..+FLT_MAX as the range for a SliderFloat(). Use DragFloat() or Inputfloat() instead. - - 2015/03/17 (1.36) - renamed GetItemBoxMin()/GetItemBoxMax()/IsMouseHoveringBox() to GetItemRectMin()/GetItemRectMax()/IsMouseHoveringRect(). Kept inline redirection function (will obsolete). - - 2015/03/15 (1.36) - renamed style.TreeNodeSpacing to style.IndentSpacing, ImGuiStyleVar_TreeNodeSpacing to ImGuiStyleVar_IndentSpacing - - 2015/03/13 (1.36) - renamed GetWindowIsFocused() to IsWindowFocused(). Kept inline redirection function (will obsolete). - - 2015/03/08 (1.35) - renamed style.ScrollBarWidth to style.ScrollbarWidth - - 2015/02/27 (1.34) - renamed OpenNextNode(bool) to SetNextTreeNodeOpened(bool, ImGuiSetCond). Kept inline redirection function (will obsolete). - - 2015/02/27 (1.34) - renamed ImGuiSetCondition_*** to ImGuiSetCond_***, and _FirstUseThisSession becomes _Once. - - 2015/02/11 (1.32) - changed text input callback ImGuiTextEditCallback return type from void-->int. reserved for future use, return 0 for now. - - 2015/02/10 (1.32) - renamed GetItemWidth() to CalcItemWidth() to clarify its evolving behavior - - 2015/02/08 (1.31) - renamed GetTextLineSpacing() to GetTextLineHeightWithSpacing() - - 2015/02/01 (1.31) - removed IO.MemReallocFn (unused) - - 2015/01/19 (1.30) - renamed ImGuiStorage::GetIntPtr()/GetFloatPtr() to GetIntRef()/GetIntRef() because Ptr was conflicting with actual pointer storage functions. - - 2015/01/11 (1.30) - big font/image API change! now loads TTF file. allow for multiple fonts. no need for a PNG loader. - (1.30) - removed GetDefaultFontData(). uses io.Fonts->GetTextureData*() API to retrieve uncompressed pixels. - this sequence: - const void* png_data; - unsigned int png_size; - ImGui::GetDefaultFontData(NULL, NULL, &png_data, &png_size); - // - became: - unsigned char* pixels; - int width, height; - io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); - // - io.Fonts->TexID = (your_texture_identifier); - you now have much more flexibility to load multiple TTF fonts and manage the texture buffer for internal needs. - it is now recommended that you sample the font texture with bilinear interpolation. - (1.30) - added texture identifier in ImDrawCmd passed to your render function (we can now render images). make sure to set io.Fonts->TexID. - (1.30) - removed IO.PixelCenterOffset (unnecessary, can be handled in user projection matrix) - (1.30) - removed ImGui::IsItemFocused() in favor of ImGui::IsItemActive() which handles all widgets - - 2014/12/10 (1.18) - removed SetNewWindowDefaultPos() in favor of new generic API SetNextWindowPos(pos, ImGuiSetCondition_FirstUseEver) - - 2014/11/28 (1.17) - moved IO.Font*** options to inside the IO.Font-> structure (FontYOffset, FontTexUvForWhite, FontBaseScale, FontFallbackGlyph) - - 2014/11/26 (1.17) - reworked syntax of IMGUI_ONCE_UPON_A_FRAME helper macro to increase compiler compatibility - - 2014/11/07 (1.15) - renamed IsHovered() to IsItemHovered() - - 2014/10/02 (1.14) - renamed IMGUI_INCLUDE_IMGUI_USER_CPP to IMGUI_INCLUDE_IMGUI_USER_INL and imgui_user.cpp to imgui_user.inl (more IDE friendly) - - 2014/09/25 (1.13) - removed 'text_end' parameter from IO.SetClipboardTextFn (the string is now always zero-terminated for simplicity) - - 2014/09/24 (1.12) - renamed SetFontScale() to SetWindowFontScale() - - 2014/09/24 (1.12) - moved IM_MALLOC/IM_REALLOC/IM_FREE preprocessor defines to IO.MemAllocFn/IO.MemReallocFn/IO.MemFreeFn - - 2014/08/30 (1.09) - removed IO.FontHeight (now computed automatically) - - 2014/08/30 (1.09) - moved IMGUI_FONT_TEX_UV_FOR_WHITE preprocessor define to IO.FontTexUvForWhite - - 2014/08/28 (1.09) - changed the behavior of IO.PixelCenterOffset following various rendering fixes - - - FREQUENTLY ASKED QUESTIONS (FAQ), TIPS - ====================================== - - Q: How do I update to a newer version of ImGui? - A: Overwrite the following files: - imgui.cpp - imgui.h - imgui_demo.cpp - imgui_draw.cpp - imgui_internal.h - stb_rect_pack.h - stb_textedit.h - stb_truetype.h - Don't overwrite imconfig.h if you have modification to your copy. - Check the "API BREAKING CHANGES" sections for a list of occasional API breaking changes. If you have a problem with a function, search for its name - in the code, there will likely be a comment about it. Please report any issue to the GitHub page! - - Q: Can I have multiple widgets with the same label? Can I have widget without a label? (Yes) - A: Yes. A primer on the use of labels/IDs in ImGui.. - - - Elements that are not clickable, such as Text() items don't need an ID. - - - Interactive widgets require state to be carried over multiple frames (most typically ImGui often needs to remember what is the "active" widget). - to do so they need an unique ID. unique ID are typically derived from a string label, an integer index or a pointer. - - Button("OK"); // Label = "OK", ID = hash of "OK" - Button("Cancel"); // Label = "Cancel", ID = hash of "Cancel" - - - ID are uniquely scoped within windows, tree nodes, etc. so no conflict can happen if you have two buttons called "OK" in two different windows - or in two different locations of a tree. - - - if you have a same ID twice in the same location, you'll have a conflict: - - Button("OK"); - Button("OK"); // ID collision! Both buttons will be treated as the same. - - Fear not! this is easy to solve and there are many ways to solve it! - - - when passing a label you can optionally specify extra unique ID information within string itself. This helps solving the simpler collision cases. - use "##" to pass a complement to the ID that won't be visible to the end-user: - - Button("Play##0"); // Label = "Play", ID = hash of "Play##0" - Button("Play##1"); // Label = "Play", ID = hash of "Play##1" (different from above) - - - so if you want to hide the label but need an ID: - - Checkbox("##On", &b); // Label = "", ID = hash of "##On" - - - occasionally (rarely) you might want change a label while preserving a constant ID. This allows you to animate labels. - use "###" to pass a label that isn't part of ID: - - Button("Hello###ID"; // Label = "Hello", ID = hash of "ID" - Button("World###ID"; // Label = "World", ID = hash of "ID" (same as above) - - - use PushID() / PopID() to create scopes and avoid ID conflicts within the same Window. - this is the most convenient way of distinguish ID if you are iterating and creating many UI elements. - you can push a pointer, a string or an integer value. remember that ID are formed from the addition of everything in the ID stack! - - for (int i = 0; i < 100; i++) - { - PushID(i); - Button("Click"); // Label = "Click", ID = hash of integer + "label" (unique) - PopID(); - } - - for (int i = 0; i < 100; i++) - { - MyObject* obj = Objects[i]; - PushID(obj); - Button("Click"); // Label = "Click", ID = hash of pointer + "label" (unique) - PopID(); - } - - for (int i = 0; i < 100; i++) - { - MyObject* obj = Objects[i]; - PushID(obj->Name); - Button("Click"); // Label = "Click", ID = hash of string + "label" (unique) - PopID(); - } - - - more example showing that you can stack multiple prefixes into the ID stack: - - Button("Click"); // Label = "Click", ID = hash of "Click" - PushID("node"); - Button("Click"); // Label = "Click", ID = hash of "node" + "Click" - PushID(my_ptr); - Button("Click"); // Label = "Click", ID = hash of "node" + ptr + "Click" - PopID(); - PopID(); - - - tree nodes implicitly creates a scope for you by calling PushID(). - - Button("Click"); // Label = "Click", ID = hash of "Click" - if (TreeNode("node")) - { - Button("Click"); // Label = "Click", ID = hash of "node" + "Click" - TreePop(); - } - - - when working with trees, ID are used to preserve the opened/closed state of each tree node. - depending on your use cases you may want to use strings, indices or pointers as ID. - e.g. when displaying a single object that may change over time (1-1 relationship), using a static string as ID will preserve your node open/closed state when the targeted object change. - e.g. when displaying a list of objects, using indices or pointers as ID will preserve the node open/closed state differently. experiment and see what makes more sense! - - Q: Why is my text output blurry? - A: In your Render function, try translating your projection matrix by (0.5f,0.5f) or (0.375f,0.375f) - - Q: How can I load a different font than the default? (default is an embedded version of ProggyClean.ttf, rendered at size 13) - A: Use the font atlas to load the TTF file you want: - - io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels); - io.Fonts->GetTexDataAsRGBA32() or GetTexDataAsAlpha8() - - Q: How can I load multiple fonts? - A: Use the font atlas to pack them into a single texture: - - ImFont* font0 = io.Fonts->AddFontDefault(); - ImFont* font1 = io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels); - ImFont* font2 = io.Fonts->AddFontFromFileTTF("myfontfile2.ttf", size_in_pixels); - io.Fonts->GetTexDataAsRGBA32() or GetTexDataAsAlpha8() - // the first loaded font gets used by default - // use ImGui::PushFont()/ImGui::PopFont() to change the font at runtime - - // Options - ImFontConfig config; - config.OversampleH = 3; - config.OversampleV = 3; - config.GlyphExtraSpacing.x = 1.0f; - io.Fonts->LoadFromFileTTF("myfontfile.ttf", size_pixels, &config); - - // Combine multiple fonts into one - ImWchar ranges[] = { 0xf000, 0xf3ff, 0 }; - ImFontConfig config; - config.MergeMode = true; - io.Fonts->AddFontDefault(); - io.Fonts->LoadFromFileTTF("fontawesome-webfont.ttf", 16.0f, &config, ranges); - io.Fonts->LoadFromFileTTF("myfontfile.ttf", size_pixels, NULL, &config, io.Fonts->GetGlyphRangesJapanese()); - - Read extra_fonts/README.txt or ImFontAtlas class for more details. - - Q: How can I display and input non-latin characters such as Chinese, Japanese, Korean, Cyrillic? - A: When loading a font, pass custom Unicode ranges to specify the glyphs to load. ImGui will support UTF-8 encoding across the board. - Character input depends on you passing the right character code to io.AddInputCharacter(). The example applications do that. - - io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, io.Fonts->GetGlyphRangesJapanese()); // Load Japanese characters - io.Fonts->GetTexDataAsRGBA32() or GetTexDataAsAlpha8() - io.ImeWindowHandle = MY_HWND; // To input using Microsoft IME, give ImGui the hwnd of your application - - - tip: the construct 'IMGUI_ONCE_UPON_A_FRAME { ... }' will run the block of code only once a frame. You can use it to quickly add custom UI in the middle of a deep nested inner loop in your code. - - tip: you can create widgets without a Begin()/End() block, they will go in an implicit window called "Debug" - - tip: you can call Begin() multiple times with the same name during the same frame, it will keep appending to the same window. this is also useful to set yourself in the context of a window (to get/set other settings) - - tip: you can call Render() multiple times (e.g for VR renders). - - tip: call and read the ShowTestWindow() code for more example of how to use ImGui! - - - ISSUES & TODO-LIST - ================== - Issue numbers (#) refer to github issues. - The list below consist mostly of notes of things to do before they are requested/discussed by users (at that point it usually happens on the github) - - - window: autofit feedback loop when user relies on any dynamic layout (window width multiplier, column). maybe just clearly drop manual autofit? - - window: add a way for very transient windows (non-saved, temporary overlay over hundreds of objects) to "clean" up from the global window list. - - window: allow resizing of child windows (possibly given min/max for each axis?) - - window: background options for child windows, border option (disable rounding) - - window: resizing from any sides? + mouse cursor directives for app. - - window: get size/pos helpers given names (see discussion in #249) - - window: a collapsed window can be stuck behind the main menu bar? - - scrolling: add horizontal scroll -!- scrolling: allow immediately effective change of scroll if we haven't appended items yet - - widgets: display mode: widget-label, label-widget (aligned on column or using fixed size), label-newline-tab-widget etc. - - widgets: clean up widgets internal toward exposing everything. - - widgets: add a disabled/read-only mode (#211) - - main: considering adding EndFrame()/Init(). some constructs are awkward in the implementation because of the lack of them. - - main: IsItemHovered() make it more consistent for various type of widgets, widgets with multiple components, etc. also effectively IsHovered() region sometimes differs from hot region, e.g tree nodes - - main: IsItemHovered() info stored in a stack? so that 'if TreeNode() { Text; TreePop; } if IsHovered' return the hover state of the TreeNode? - - input text: add ImGuiInputTextFlags_EnterToApply? (off #218) - - input text multi-line: way to dynamically grow the buffer without forcing the user to initially allocate for worse case (follow up on #200) - - input text multi-line: line numbers? status bar? (follow up on #200) - - input number: optional range min/max for Input*() functions - - input number: holding [-]/[+] buttons could increase the step speed non-linearly (or user-controlled) - - input number: use mouse wheel to step up/down - - input number: applying arithmetics ops (+,-,*,/) messes up with text edit undo stack. - - text: proper alignment options - - layout: horizontal layout helper (#97) - - layout: more generic alignment state (left/right/centered) for single items? - - layout: clean up the InputFloatN/SliderFloatN/ColorEdit4 layout code. item width should include frame padding. - - columns: separator function or parameter that works within the column (currently Separator() bypass all columns) (#125) - - columns: declare column set (each column: fixed size, %, fill, distribute default size among fills) (#125) - - columns: columns header to act as button (~sort op) and allow resize/reorder (#125) - - columns: user specify columns size (#125) - - popup: border options. richer api like BeginChild() perhaps? (#197) - - combo: sparse combo boxes (via function call?) - - combo: contents should extends to fit label if combo widget is small - - combo/listbox: keyboard control. need InputText-like non-active focus + key handling. considering keybord for custom listbox (pr #203) - - listbox: multiple selection - - listbox: user may want to initial scroll to focus on the one selected value? - - listbox: keyboard navigation. - - listbox: scrolling should track modified selection. - - menus: local shortcuts, global shortcuts (#126) - - menus: icons - - menus: menubars: some sort of priority / effect of main menu-bar on desktop size? - - tabs - - separator: separator on the initial position of a window is not visible (cursorpos.y <= clippos.y) - - gauge: various forms of gauge/loading bars widgets - - color: add a better color picker (perhaps a popup). - - plot: plotlines should use the polygon-stroke facilities (currently issues with averaging normals) - - plot: make it easier for user to draw extra stuff into the graph (e.g: draw basis, highlight certain points, 2d plots, multiple plots) - - plot: "smooth" automatic scale over time, user give an input 0.0(full user scale) 1.0(full derived from value) - - plot: add a helper e.g. Plot(char* label, float value, float time_span=2.0f) that stores values and Plot them for you - probably another function name. and/or automatically allow to plot ANY displayed value (more reliance on stable ID) - - file selection widget -> build the tool in our codebase to improve model-dialog idioms - - slider: allow using the [-]/[+] buttons used by InputFloat()/InputInt() - - slider: initial absolute click is imprecise. change to relative movement slider (same as scrollbar). - - slider: add dragging-based widgets to edit values with mouse (on 2 axises), saving screen real-estate. - - slider: tint background based on value (e.g. v_min -> v_max, or use 0.0f either side of the sign) - - slider & drag: int data passing through a float - - drag float: up/down axis - - text edit: clean up the mess caused by converting UTF-8 <> wchar. the code is rather inefficient right now. - - text edit: centered text for slider as input text so it matches typical positioning. - - text edit: flag to disable live update of the user buffer. - - text edit: field resize behavior - field could stretch when being edited? hover tooltip shows more text? - - tree: add treenode/treepush int variants? because (void*) cast from int warns on some platforms/settings - - textwrapped: figure out better way to use TextWrapped() in an always auto-resize context (tooltip, etc.) (git issue #249) - - settings: write more decent code to allow saving/loading new fields - - settings: api for per-tool simple persistent data (bool,int,float,columns sizes,etc.) in .ini file - - style: store rounded corners in texture to use 1 quad per corner (filled and wireframe). so rounding have minor cost. - - style: colorbox not always square? - - text: simple markup language for color change? - - log: LogButtons() options for specifying depth and/or hiding depth slider - - log: have more control over the log scope (e.g. stop logging when leaving current tree node scope) - - log: be able to log anything (e.g. right-click on a window/tree-node, shows context menu? log into tty/file/clipboard) - - log: let user copy any window content to clipboard easily (CTRL+C on windows? while moving it? context menu?). code is commented because it fails with multiple Begin/End pairs. - - filters: set a current filter that tree node can automatically query to hide themselves - - filters: handle wildcards (with implicit leading/trailing *), regexps - - shortcuts: add a shortcut api, e.g. parse "&Save" and/or "Save (CTRL+S)", pass in to widgets or provide simple ways to use (button=activate, input=focus) -!- keyboard: tooltip & combo boxes are messing up / not honoring keyboard tabbing - - keyboard: full keyboard navigation and focus. - - focus: SetKeyboardFocusHere() on with >= 0 offset could be done on same frame (else latch and modulate on beginning of next frame) - - input: rework IO to be able to pass actual events to fix temporal aliasing issues. - - input: support track pad style scrolling & slider edit. - - memory: add a way to discard allocs of unused/transient windows. with the current architecture new windows (including popup, opened combos, listbox) perform at least 3 allocs. - - misc: mark printf compiler attributes on relevant functions - - misc: provide a way to compile out the entire implementation while providing a dummy API (e.g. #define IMGUI_DUMMY_IMPL) - - misc: double-clicking on title bar to minimize isn't consistent, perhaps move to single-click on left-most collapse icon? - - style editor: have a more global HSV setter (e.g. alter hue on all elements). consider replacing active/hovered by offset in HSV space? - - style editor: color child window height expressed in multiple of line height. - - optimization/render: merge command-lists with same clip-rect into one even if they aren't sequential? (as long as in-between clip rectangle don't overlap)? - - optimization: turn some the various stack vectors into statically-sized arrays - - optimization: better clipping for multi-component widgets -*/ - -#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "imgui.h" -#define IMGUI_DEFINE_MATH_OPERATORS -#include "imgui_internal.h" - -#include // toupper, isprint -#include // sqrtf, fabsf, fmodf, powf, cosf, sinf, floorf, ceilf -#include // vsnprintf, sscanf, printf -#include // new (ptr) -#if defined(_MSC_VER) && _MSC_VER <= 1500 // MSVC 2008 or earlier -#include // intptr_t -#else -#include // intptr_t -#endif - -#ifdef _MSC_VER -#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) -#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen -#define snprintf _snprintf -#endif - -// Clang warnings with -Weverything -#ifdef __clang__ -#pragma clang diagnostic ignored "-Wold-style-cast" // warning : use of old-style cast // yes, they are more terse. -#pragma clang diagnostic ignored "-Wfloat-equal" // warning : comparing floating point with == or != is unsafe // storing and comparing against same constants ok. -#pragma clang diagnostic ignored "-Wformat-nonliteral" // warning : format string is not a string literal // passing non-literal to vsnformat(). yes, user passing incorrect format strings can crash the code. -#pragma clang diagnostic ignored "-Wexit-time-destructors" // warning : declaration requires an exit-time destructor // exit-time destruction order is undefined. if MemFree() leads to users code that has been disabled before exit it might cause problems. ImGui coding style welcomes static/globals. -#pragma clang diagnostic ignored "-Wglobal-constructors" // warning : declaration requires a global destructor // similar to above, not sure what the exact difference it. -#pragma clang diagnostic ignored "-Wsign-conversion" // warning : implicit conversion changes signedness // -#pragma clang diagnostic ignored "-Wmissing-noreturn" // warning : function xx could be declared with attribute 'noreturn' warning // GetDefaultFontData() asserts which some implementation makes it never return. -#pragma clang diagnostic ignored "-Wdeprecated-declarations"// warning : 'xx' is deprecated: The POSIX name for this item.. // for strdup used in demo code (so user can copy & paste the code) -#pragma clang diagnostic ignored "-Wint-to-void-pointer-cast" // warning : cast to 'void *' from smaller integer type 'int' -#endif -#ifdef __GNUC__ -#pragma GCC diagnostic ignored "-Wunused-function" // warning: 'xxxx' defined but not used -#pragma GCC diagnostic ignored "-Wint-to-pointer-cast" // warning: cast to pointer from integer of different size -#endif - -//------------------------------------------------------------------------- -// Forward Declarations -//------------------------------------------------------------------------- - -static void LogRenderedText(const ImVec2& ref_pos, const char* text, const char* text_end = NULL); -static const char* FindTextDisplayEnd(const char* text, const char* text_end = NULL); - -static void PushMultiItemsWidths(int components, float w_full = 0.0f); -static float GetDraggedColumnOffset(int column_index); - -static bool IsKeyPressedMap(ImGuiKey key, bool repeat = true); - -static void SetCurrentFont(ImFont* font); -static void SetCurrentWindow(ImGuiWindow* window); -static void SetWindowScrollY(ImGuiWindow* window, float new_scroll_y); -static void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiSetCond cond); -static void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiSetCond cond); -static void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiSetCond cond); -static ImGuiWindow* FindWindowByName(const char* name); -static ImGuiWindow* FindHoveredWindow(ImVec2 pos, bool excluding_childs); -static ImGuiWindow* CreateNewWindow(const char* name, ImVec2 size, ImGuiWindowFlags flags); -static inline bool IsWindowContentHoverable(ImGuiWindow* window); -static void ClearSetNextWindowData(); -static void CheckStacksSize(ImGuiWindow* window, bool write); -static void Scrollbar(ImGuiWindow* window); -static bool CloseWindowButton(bool* p_opened); - -static void AddDrawListToRenderList(ImVector& out_render_list, ImDrawList* draw_list); -static void AddWindowToRenderList(ImVector& out_render_list, ImGuiWindow* window); -static void AddWindowToSortedBuffer(ImVector& out_sorted_windows, ImGuiWindow* window); - -static ImGuiIniData* FindWindowSettings(const char* name); -static ImGuiIniData* AddWindowSettings(const char* name); -static void LoadSettings(); -static void SaveSettings(); -static void MarkSettingsDirty(); - -static void PushClipRect(const ImRect& clip_rect, bool clipped_by_current = true); -static void PushColumnClipRect(int column_index = -1); -static void PopClipRect(); -static ImRect GetVisibleRect(); - -static bool BeginPopupEx(const char* str_id, ImGuiWindowFlags extra_flags); -static void CloseInactivePopups(); -static void ClosePopupToLevel(int remaining); -static void ClosePopup(ImGuiID id); -static bool IsPopupOpen(ImGuiID id); -static ImGuiWindow* GetFrontMostModalRootWindow(); -static ImVec2 FindBestPopupWindowPos(const ImVec2& base_pos, const ImVec2& size, ImGuiWindowFlags flags, int* last_dir, const ImRect& r_inner); - -static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data); -static int InputTextCalcTextLenAndLineCount(const char* text_begin, const char** out_text_end); -static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const ImWchar* text_end, const ImWchar** remaining = NULL, ImVec2* out_offset = NULL, bool stop_on_new_line = false); - -static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, const char* display_format, char* buf, int buf_size); -static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, int decimal_precision, char* buf, int buf_size); -static void DataTypeApplyOp(ImGuiDataType data_type, int op, void* value1, const void* value2); -static void DataTypeApplyOpFromText(const char* buf, const char* initial_value_buf, ImGuiDataType data_type, void* data_ptr, const char* scalar_format); - -//----------------------------------------------------------------------------- -// Platform dependent default implementations -//----------------------------------------------------------------------------- - -static const char* GetClipboardTextFn_DefaultImpl(); -static void SetClipboardTextFn_DefaultImpl(const char* text); -static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y); - -//----------------------------------------------------------------------------- -// Context -//----------------------------------------------------------------------------- - -// We access everything through this pointer (always assumed to be != NULL) -// You can swap the pointer to a different context by calling ImGui::SetInternalState() -static ImGuiState GImDefaultState; -ImGuiState* GImGui = &GImDefaultState; - -// Statically allocated default font atlas. This is merely a maneuver to keep ImFontAtlas definition at the bottom of the .h file (otherwise it'd be inside ImGuiIO) -// Also we wouldn't be able to new() one at this point, before users may define IO.MemAllocFn. -static ImFontAtlas GImDefaultFontAtlas; - -//----------------------------------------------------------------------------- -// User facing structures -//----------------------------------------------------------------------------- - -ImGuiStyle::ImGuiStyle() -{ - Alpha = 1.0f; // Global alpha applies to everything in ImGui - WindowPadding = ImVec2(8,8); // Padding within a window - WindowMinSize = ImVec2(32,32); // Minimum window size - WindowRounding = 9.0f; // Radius of window corners rounding. Set to 0.0f to have rectangular windows - WindowTitleAlign = ImGuiAlign_Left; // Alignment for title bar text - ChildWindowRounding = 0.0f; // Radius of child window corners rounding. Set to 0.0f to have rectangular windows - FramePadding = ImVec2(4,3); // Padding within a framed rectangle (used by most widgets) - FrameRounding = 0.0f; // Radius of frame corners rounding. Set to 0.0f to have rectangular frames (used by most widgets). - ItemSpacing = ImVec2(8,4); // Horizontal and vertical spacing between widgets/lines - ItemInnerSpacing = ImVec2(4,4); // Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label) - TouchExtraPadding = ImVec2(0,0); // Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! - WindowFillAlphaDefault = 0.70f; // Default alpha of window background, if not specified in ImGui::Begin() - IndentSpacing = 22.0f; // Horizontal spacing when e.g. entering a tree node - ColumnsMinSpacing = 6.0f; // Minimum horizontal spacing between two columns - ScrollbarWidth = 16.0f; // Width of the vertical scrollbar - ScrollbarRounding = 0.0f; // Radius of grab corners rounding for scrollbar - GrabMinSize = 10.0f; // Minimum width/height of a grab box for slider/scrollbar - GrabRounding = 0.0f; // Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. - DisplayWindowPadding = ImVec2(22,22); // Window positions are clamped to be visible within the display area by at least this amount. Only covers regular windows. - DisplaySafeAreaPadding = ImVec2(4,4); // If you cannot see the edge of your screen (e.g. on a TV) increase the safe area padding. Covers popups/tooltips as well regular windows. - AntiAliasedLines = true; // Enable anti-aliasing on lines/borders. Disable if you are really short on CPU/GPU. - AntiAliasedShapes = true; // Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.) - - Colors[ImGuiCol_Text] = ImVec4(0.90f, 0.90f, 0.90f, 1.00f); - Colors[ImGuiCol_TextDisabled] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f); - Colors[ImGuiCol_WindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 1.00f); - Colors[ImGuiCol_ChildWindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); - Colors[ImGuiCol_Border] = ImVec4(0.70f, 0.70f, 0.70f, 0.65f); - Colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); - Colors[ImGuiCol_FrameBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.30f); // Background of checkbox, radio button, plot, slider, text input - Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.90f, 0.80f, 0.80f, 0.40f); - Colors[ImGuiCol_FrameBgActive] = ImVec4(0.90f, 0.65f, 0.65f, 0.45f); - Colors[ImGuiCol_TitleBg] = ImVec4(0.50f, 0.50f, 1.00f, 0.45f); - Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.40f, 0.40f, 0.80f, 0.20f); - Colors[ImGuiCol_TitleBgActive] = ImVec4(0.50f, 0.50f, 1.00f, 0.55f); - Colors[ImGuiCol_MenuBarBg] = ImVec4(0.40f, 0.40f, 0.55f, 0.60f); - Colors[ImGuiCol_ScrollbarBg] = ImVec4(0.40f, 0.40f, 0.80f, 0.15f); - Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.40f, 0.40f, 0.80f, 0.30f); - Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.40f, 0.40f, 0.80f, 0.40f); - Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.80f, 0.50f, 0.50f, 0.40f); - Colors[ImGuiCol_ComboBg] = ImVec4(0.20f, 0.20f, 0.20f, 0.99f); - Colors[ImGuiCol_CheckMark] = ImVec4(0.90f, 0.90f, 0.90f, 0.50f); - Colors[ImGuiCol_SliderGrab] = ImVec4(1.00f, 1.00f, 1.00f, 0.30f); - Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.80f, 0.50f, 0.50f, 1.00f); - Colors[ImGuiCol_Button] = ImVec4(0.67f, 0.40f, 0.40f, 0.60f); - Colors[ImGuiCol_ButtonHovered] = ImVec4(0.67f, 0.40f, 0.40f, 1.00f); - Colors[ImGuiCol_ButtonActive] = ImVec4(0.80f, 0.50f, 0.50f, 1.00f); - Colors[ImGuiCol_Header] = ImVec4(0.40f, 0.40f, 0.90f, 0.45f); - Colors[ImGuiCol_HeaderHovered] = ImVec4(0.45f, 0.45f, 0.90f, 0.80f); - Colors[ImGuiCol_HeaderActive] = ImVec4(0.53f, 0.53f, 0.87f, 0.80f); - Colors[ImGuiCol_Column] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f); - Colors[ImGuiCol_ColumnHovered] = ImVec4(0.70f, 0.60f, 0.60f, 1.00f); - Colors[ImGuiCol_ColumnActive] = ImVec4(0.90f, 0.70f, 0.70f, 1.00f); - Colors[ImGuiCol_ResizeGrip] = ImVec4(1.00f, 1.00f, 1.00f, 0.30f); - Colors[ImGuiCol_ResizeGripHovered] = ImVec4(1.00f, 1.00f, 1.00f, 0.60f); - Colors[ImGuiCol_ResizeGripActive] = ImVec4(1.00f, 1.00f, 1.00f, 0.90f); - Colors[ImGuiCol_CloseButton] = ImVec4(0.50f, 0.50f, 0.90f, 0.50f); - Colors[ImGuiCol_CloseButtonHovered] = ImVec4(0.70f, 0.70f, 0.90f, 0.60f); - Colors[ImGuiCol_CloseButtonActive] = ImVec4(0.70f, 0.70f, 0.70f, 1.00f); - Colors[ImGuiCol_PlotLines] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f); - Colors[ImGuiCol_PlotLinesHovered] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); - Colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); - Colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f); - Colors[ImGuiCol_TextSelectedBg] = ImVec4(0.00f, 0.00f, 1.00f, 0.35f); - Colors[ImGuiCol_TooltipBg] = ImVec4(0.05f, 0.05f, 0.10f, 0.90f); - Colors[ImGuiCol_ModalWindowDarkening] = ImVec4(0.20f, 0.20f, 0.20f, 0.35f); -} - -ImGuiIO::ImGuiIO() -{ - // Most fields are initialized with zero - memset(this, 0, sizeof(*this)); - - DisplaySize = ImVec2(-1.0f, -1.0f); - DeltaTime = 1.0f/60.0f; - IniSavingRate = 5.0f; - IniFilename = "imgui.ini"; - LogFilename = "imgui_log.txt"; - Fonts = &GImDefaultFontAtlas; - FontGlobalScale = 1.0f; - MousePos = ImVec2(-1,-1); - MousePosPrev = ImVec2(-1,-1); - MouseDoubleClickTime = 0.30f; - MouseDoubleClickMaxDist = 6.0f; - MouseDragThreshold = 6.0f; - for (int i = 0; i < ImGuiKey_COUNT; i++) - KeyMap[i] = -1; - KeyRepeatDelay = 0.250f; - KeyRepeatRate = 0.050f; - UserData = NULL; - - // User functions - RenderDrawListsFn = NULL; - MemAllocFn = malloc; - MemFreeFn = free; - GetClipboardTextFn = GetClipboardTextFn_DefaultImpl; // Platform dependent default implementations - SetClipboardTextFn = SetClipboardTextFn_DefaultImpl; - ImeSetInputScreenPosFn = ImeSetInputScreenPosFn_DefaultImpl; -} - -// Pass in translated ASCII characters for text input. -// - with glfw you can get those from the callback set in glfwSetCharCallback() -// - on Windows you can get those using ToAscii+keyboard state, or via the WM_CHAR message -void ImGuiIO::AddInputCharacter(ImWchar c) -{ - const int n = ImStrlenW(InputCharacters); - if (n + 1 < IM_ARRAYSIZE(InputCharacters)) - { - InputCharacters[n] = c; - InputCharacters[n+1] = '\0'; - } -} - -void ImGuiIO::AddInputCharactersUTF8(const char* utf8_chars) -{ - // We can't pass more wchars than ImGuiIO::InputCharacters[] can hold so don't convert more - const int wchars_buf_len = sizeof(ImGuiIO::InputCharacters) / sizeof(ImWchar); - ImWchar wchars[wchars_buf_len]; - ImTextStrFromUtf8(wchars, wchars_buf_len, utf8_chars, NULL); - for (int i = 0; wchars[i] != 0 && i < wchars_buf_len; i++) - AddInputCharacter(wchars[i]); -} - -//----------------------------------------------------------------------------- -// HELPERS -//----------------------------------------------------------------------------- - -#define IM_INT_MIN (-2147483647-1) -#define IM_INT_MAX (2147483647) - -// Play it nice with Windows users. Notepad in 2015 still doesn't display text data with Unix-style \n. -#ifdef _MSC_VER -#define IM_NEWLINE "\r\n" -#else -#define IM_NEWLINE "\n" -#endif - -bool ImIsPointInTriangle(const ImVec2& p, const ImVec2& a, const ImVec2& b, const ImVec2& c) -{ - bool b1 = ((p.x - b.x) * (a.y - b.y) - (p.y - b.y) * (a.x - b.x)) < 0.0f; - bool b2 = ((p.x - c.x) * (b.y - c.y) - (p.y - c.y) * (b.x - c.x)) < 0.0f; - bool b3 = ((p.x - a.x) * (c.y - a.y) - (p.y - a.y) * (c.x - a.x)) < 0.0f; - return ((b1 == b2) && (b2 == b3)); -} - -int ImStricmp(const char* str1, const char* str2) -{ - int d; - while ((d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; } - return d; -} - -int ImStrnicmp(const char* str1, const char* str2, int count) -{ - int d = 0; - while (count > 0 && (d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; count--; } - return d; -} - -char* ImStrdup(const char *str) -{ - char *buff = (char*)ImGui::MemAlloc(strlen(str) + 1); - IM_ASSERT(buff); - strcpy(buff, str); - return buff; -} - -int ImStrlenW(const ImWchar* str) -{ - int n = 0; - while (*str++) n++; - return n; -} - -const ImWchar* ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin) // find beginning-of-line -{ - while (buf_mid_line > buf_begin && buf_mid_line[-1] != '\n') - buf_mid_line--; - return buf_mid_line; -} - -const char* ImStristr(const char* haystack, const char* needle, const char* needle_end) -{ - if (!needle_end) - needle_end = needle + strlen(needle); - - const char un0 = (char)toupper(*needle); - while (*haystack) - { - if (toupper(*haystack) == un0) - { - const char* b = needle + 1; - for (const char* a = haystack + 1; b < needle_end; a++, b++) - if (toupper(*a) != toupper(*b)) - break; - if (b == needle_end) - return haystack; - } - haystack++; - } - return NULL; -} - -int ImFormatString(char* buf, int buf_size, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - int w = vsnprintf(buf, buf_size, fmt, args); - va_end(args); - buf[buf_size-1] = 0; - return (w == -1) ? buf_size : w; -} - -int ImFormatStringV(char* buf, int buf_size, const char* fmt, va_list args) -{ - int w = vsnprintf(buf, buf_size, fmt, args); - buf[buf_size-1] = 0; - return (w == -1) ? buf_size : w; -} - -// Pass data_size==0 for zero-terminated string -// FIXME-OPT: Replace with e.g. FNV1a hash? CRC32 pretty much randomly access 1KB. Need to do proper measurements. -ImU32 ImHash(const void* data, int data_size, ImU32 seed = 0) -{ - static ImU32 crc32_lut[256] = { 0 }; - if (!crc32_lut[1]) - { - const ImU32 polynomial = 0xEDB88320; - for (ImU32 i = 0; i < 256; i++) - { - ImU32 crc = i; - for (ImU32 j = 0; j < 8; j++) - crc = (crc >> 1) ^ (ImU32(-int(crc & 1)) & polynomial); - crc32_lut[i] = crc; - } - } - - seed = ~seed; - ImU32 crc = seed; - const unsigned char* current = (const unsigned char*)data; - - if (data_size > 0) - { - // Known size - while (data_size--) - crc = (crc >> 8) ^ crc32_lut[(crc & 0xFF) ^ *current++]; - } - else - { - // Zero-terminated string - while (unsigned char c = *current++) - { - // We support a syntax of "label###id" where only "###id" is included in the hash, and only "label" gets displayed. - // Because this syntax is rarely used we are optimizing for the common case. - // - If we reach ### in the string we discard the hash so far and reset to the seed. - // - We don't do 'current += 2; continue;' after handling ### to keep the code smaller. - if (c == '#' && current[0] == '#' && current[1] == '#') - crc = seed; - - crc = (crc >> 8) ^ crc32_lut[(crc & 0xFF) ^ c]; - } - } - return ~crc; -} - -//----------------------------------------------------------------------------- -// ImText* helpers -//----------------------------------------------------------------------------- - -// Convert UTF-8 to 32-bits character, process single character input. -// Based on stb_from_utf8() from github.com/nothings/stb/ -// We handle UTF-8 decoding error by skipping forward. -int ImTextCharFromUtf8(unsigned int* out_char, const char* in_text, const char* in_text_end) -{ - unsigned int c = (unsigned int)-1; - const unsigned char* str = (const unsigned char*)in_text; - if (!(*str & 0x80)) - { - c = (unsigned int)(*str++); - *out_char = c; - return 1; - } - if ((*str & 0xe0) == 0xc0) - { - *out_char = 0; - if (in_text_end && in_text_end - (const char*)str < 2) return 0; - if (*str < 0xc2) return 0; - c = (unsigned int)((*str++ & 0x1f) << 6); - if ((*str & 0xc0) != 0x80) return 0; - c += (*str++ & 0x3f); - *out_char = c; - return 2; - } - if ((*str & 0xf0) == 0xe0) - { - *out_char = 0; - if (in_text_end && in_text_end - (const char*)str < 3) return 0; - if (*str == 0xe0 && (str[1] < 0xa0 || str[1] > 0xbf)) return 0; - if (*str == 0xed && str[1] > 0x9f) return 0; // str[1] < 0x80 is checked below - c = (unsigned int)((*str++ & 0x0f) << 12); - if ((*str & 0xc0) != 0x80) return 0; - c += (unsigned int)((*str++ & 0x3f) << 6); - if ((*str & 0xc0) != 0x80) return 0; - c += (*str++ & 0x3f); - *out_char = c; - return 3; - } - if ((*str & 0xf8) == 0xf0) - { - *out_char = 0; - if (in_text_end && in_text_end - (const char*)str < 4) return 0; - if (*str > 0xf4) return 0; - if (*str == 0xf0 && (str[1] < 0x90 || str[1] > 0xbf)) return 0; - if (*str == 0xf4 && str[1] > 0x8f) return 0; // str[1] < 0x80 is checked below - c = (unsigned int)((*str++ & 0x07) << 18); - if ((*str & 0xc0) != 0x80) return 0; - c += (unsigned int)((*str++ & 0x3f) << 12); - if ((*str & 0xc0) != 0x80) return 0; - c += (unsigned int)((*str++ & 0x3f) << 6); - if ((*str & 0xc0) != 0x80) return 0; - c += (*str++ & 0x3f); - // utf-8 encodings of values used in surrogate pairs are invalid - if ((c & 0xFFFFF800) == 0xD800) return 0; - *out_char = c; - return 4; - } - *out_char = 0; - return 0; -} - -int ImTextStrFromUtf8(ImWchar* buf, int buf_size, const char* in_text, const char* in_text_end, const char** in_text_remaining) -{ - ImWchar* buf_out = buf; - ImWchar* buf_end = buf + buf_size; - while (buf_out < buf_end-1 && (!in_text_end || in_text < in_text_end) && *in_text) - { - unsigned int c; - in_text += ImTextCharFromUtf8(&c, in_text, in_text_end); - if (c == 0) - break; - if (c < 0x10000) // FIXME: Losing characters that don't fit in 2 bytes - *buf_out++ = (ImWchar)c; - } - *buf_out = 0; - if (in_text_remaining) - *in_text_remaining = in_text; - return (int)(buf_out - buf); -} - -int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end) -{ - int char_count = 0; - while ((!in_text_end || in_text < in_text_end) && *in_text) - { - unsigned int c; - in_text += ImTextCharFromUtf8(&c, in_text, in_text_end); - if (c == 0) - break; - if (c < 0x10000) - char_count++; - } - return char_count; -} - -// Based on stb_to_utf8() from github.com/nothings/stb/ -static inline int ImTextCharToUtf8(char* buf, int buf_size, unsigned int c) -{ - if (c < 0x80) - { - buf[0] = (char)c; - return 1; - } - if (c < 0x800) - { - if (buf_size < 2) return 0; - buf[0] = (char)(0xc0 + (c >> 6)); - buf[1] = (char)(0x80 + (c & 0x3f)); - return 2; - } - if (c >= 0xdc00 && c < 0xe000) - { - return 0; - } - if (c >= 0xd800 && c < 0xdc00) - { - if (buf_size < 4) return 0; - buf[0] = (char)(0xf0 + (c >> 18)); - buf[1] = (char)(0x80 + ((c >> 12) & 0x3f)); - buf[2] = (char)(0x80 + ((c >> 6) & 0x3f)); - buf[3] = (char)(0x80 + ((c ) & 0x3f)); - return 4; - } - //else if (c < 0x10000) - { - if (buf_size < 3) return 0; - buf[0] = (char)(0xe0 + (c >> 12)); - buf[1] = (char)(0x80 + ((c>> 6) & 0x3f)); - buf[2] = (char)(0x80 + ((c ) & 0x3f)); - return 3; - } -} - -static inline int ImTextCountUtf8BytesFromChar(unsigned int c) -{ - if (c < 0x80) return 1; - if (c < 0x800) return 2; - if (c >= 0xdc00 && c < 0xe000) return 0; - if (c >= 0xd800 && c < 0xdc00) return 4; - return 3; -} - -int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, const ImWchar* in_text_end) -{ - char* buf_out = buf; - const char* buf_end = buf + buf_size; - while (buf_out < buf_end-1 && (!in_text_end || in_text < in_text_end) && *in_text) - { - unsigned int c = (unsigned int)(*in_text++); - if (c < 0x80) - *buf_out++ = (char)c; - else - buf_out += ImTextCharToUtf8(buf_out, (int)(buf_end-buf_out-1), c); - } - *buf_out = 0; - return (int)(buf_out - buf); -} - -int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* in_text_end) -{ - int bytes_count = 0; - while ((!in_text_end || in_text < in_text_end) && *in_text) - { - unsigned int c = (unsigned int)(*in_text++); - if (c < 0x80) - bytes_count++; - else - bytes_count += ImTextCountUtf8BytesFromChar(c); - } - return bytes_count; -} - -ImU32 ImGui::ColorConvertFloat4ToU32(const ImVec4& in) -{ - ImU32 out = ((ImU32)(ImSaturate(in.x)*255.f)); - out |= ((ImU32)(ImSaturate(in.y)*255.f) << 8); - out |= ((ImU32)(ImSaturate(in.z)*255.f) << 16); - out |= ((ImU32)(ImSaturate(in.w)*255.f) << 24); - return out; -} - -// Convert rgb floats ([0-1],[0-1],[0-1]) to hsv floats ([0-1],[0-1],[0-1]), from Foley & van Dam p592 -// Optimized http://lolengine.net/blog/2013/01/13/fast-rgb-to-hsv -void ImGui::ColorConvertRGBtoHSV(float r, float g, float b, float& out_h, float& out_s, float& out_v) -{ - float K = 0.f; - if (g < b) - { - const float tmp = g; g = b; b = tmp; - K = -1.f; - } - if (r < g) - { - const float tmp = r; r = g; g = tmp; - K = -2.f / 6.f - K; - } - - const float chroma = r - (g < b ? g : b); - out_h = fabsf(K + (g - b) / (6.f * chroma + 1e-20f)); - out_s = chroma / (r + 1e-20f); - out_v = r; -} - -// Convert hsv floats ([0-1],[0-1],[0-1]) to rgb floats ([0-1],[0-1],[0-1]), from Foley & van Dam p593 -// also http://en.wikipedia.org/wiki/HSL_and_HSV -void ImGui::ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b) -{ - if (s == 0.0f) - { - // gray - out_r = out_g = out_b = v; - return; - } - - h = fmodf(h, 1.0f) / (60.0f/360.0f); - int i = (int)h; - float f = h - (float)i; - float p = v * (1.0f - s); - float q = v * (1.0f - s * f); - float t = v * (1.0f - s * (1.0f - f)); - - switch (i) - { - case 0: out_r = v; out_g = t; out_b = p; break; - case 1: out_r = q; out_g = v; out_b = p; break; - case 2: out_r = p; out_g = v; out_b = t; break; - case 3: out_r = p; out_g = q; out_b = v; break; - case 4: out_r = t; out_g = p; out_b = v; break; - case 5: default: out_r = v; out_g = p; out_b = q; break; - } -} - -// Load file content into memory -// Memory allocated with ImGui::MemAlloc(), must be freed by user using ImGui::MemFree() -bool ImLoadFileToMemory(const char* filename, const char* file_open_mode, void** out_file_data, int* out_file_size, int padding_bytes) -{ - IM_ASSERT(filename && file_open_mode && out_file_data && out_file_size); - *out_file_data = NULL; - *out_file_size = 0; - - FILE* f; - if ((f = fopen(filename, file_open_mode)) == NULL) - return false; - - long file_size_signed; - if (fseek(f, 0, SEEK_END) || (file_size_signed = ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) - { - fclose(f); - return false; - } - - int file_size = (int)file_size_signed; - void* file_data = ImGui::MemAlloc(file_size + padding_bytes); - if (file_data == NULL) - { - fclose(f); - return false; - } - if (fread(file_data, 1, (size_t)file_size, f) != (size_t)file_size) - { - fclose(f); - ImGui::MemFree(file_data); - return false; - } - if (padding_bytes > 0) - memset((void *)(((char*)file_data) + file_size), 0, padding_bytes); - - fclose(f); - *out_file_data = file_data; - if (out_file_size) - *out_file_size = file_size; - - return true; -} - -//----------------------------------------------------------------------------- -// ImGuiStorage -//----------------------------------------------------------------------------- - -// Helper: Key->value storage -void ImGuiStorage::Clear() -{ - Data.clear(); -} - -// std::lower_bound but without the bullshit -static ImVector::iterator LowerBound(ImVector& data, ImU32 key) -{ - ImVector::iterator first = data.begin(); - ImVector::iterator last = data.end(); - int count = (int)(last - first); - while (count > 0) - { - int count2 = count / 2; - ImVector::iterator mid = first + count2; - if (mid->key < key) - { - first = ++mid; - count -= count2 + 1; - } - else - { - count = count2; - } - } - return first; -} - -int ImGuiStorage::GetInt(ImU32 key, int default_val) const -{ - ImVector::iterator it = LowerBound(const_cast&>(Data), key); - if (it == Data.end() || it->key != key) - return default_val; - return it->val_i; -} - -float ImGuiStorage::GetFloat(ImU32 key, float default_val) const -{ - ImVector::iterator it = LowerBound(const_cast&>(Data), key); - if (it == Data.end() || it->key != key) - return default_val; - return it->val_f; -} - -void* ImGuiStorage::GetVoidPtr(ImGuiID key) const -{ - ImVector::iterator it = LowerBound(const_cast&>(Data), key); - if (it == Data.end() || it->key != key) - return NULL; - return it->val_p; -} - -// References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer. -int* ImGuiStorage::GetIntRef(ImGuiID key, int default_val) -{ - ImVector::iterator it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - it = Data.insert(it, Pair(key, default_val)); - return &it->val_i; -} - -float* ImGuiStorage::GetFloatRef(ImGuiID key, float default_val) -{ - ImVector::iterator it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - it = Data.insert(it, Pair(key, default_val)); - return &it->val_f; -} - -void** ImGuiStorage::GetVoidPtrRef(ImGuiID key, void* default_val) -{ - ImVector::iterator it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - it = Data.insert(it, Pair(key, default_val)); - return &it->val_p; -} - -// FIXME-OPT: Need a way to reuse the result of lower_bound when doing GetInt()/SetInt() - not too bad because it only happens on explicit interaction (maximum one a frame) -void ImGuiStorage::SetInt(ImU32 key, int val) -{ - ImVector::iterator it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - { - Data.insert(it, Pair(key, val)); - return; - } - it->val_i = val; -} - -void ImGuiStorage::SetFloat(ImU32 key, float val) -{ - ImVector::iterator it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - { - Data.insert(it, Pair(key, val)); - return; - } - it->val_f = val; -} - -void ImGuiStorage::SetVoidPtr(ImU32 key, void* val) -{ - ImVector::iterator it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - { - Data.insert(it, Pair(key, val)); - return; - } - it->val_p = val; -} - -void ImGuiStorage::SetAllInt(int v) -{ - for (int i = 0; i < Data.Size; i++) - Data[i].val_i = v; -} - -//----------------------------------------------------------------------------- -// ImGuiTextFilter -//----------------------------------------------------------------------------- - -// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" -ImGuiTextFilter::ImGuiTextFilter(const char* default_filter) -{ - if (default_filter) - { - ImFormatString(InputBuf, IM_ARRAYSIZE(InputBuf), "%s", default_filter); - Build(); - } - else - { - InputBuf[0] = 0; - CountGrep = 0; - } -} - -void ImGuiTextFilter::Draw(const char* label, float width) -{ - if (width > 0.0f) - ImGui::PushItemWidth(width); - ImGui::InputText(label, InputBuf, IM_ARRAYSIZE(InputBuf)); - if (width > 0.0f) - ImGui::PopItemWidth(); - Build(); -} - -void ImGuiTextFilter::TextRange::split(char separator, ImVector& out) -{ - out.resize(0); - const char* wb = b; - const char* we = wb; - while (we < e) - { - if (*we == separator) - { - out.push_back(TextRange(wb, we)); - wb = we + 1; - } - we++; - } - if (wb != we) - out.push_back(TextRange(wb, we)); -} - -void ImGuiTextFilter::Build() -{ - Filters.resize(0); - TextRange input_range(InputBuf, InputBuf+strlen(InputBuf)); - input_range.split(',', Filters); - - CountGrep = 0; - for (int i = 0; i != Filters.Size; i++) - { - Filters[i].trim_blanks(); - if (Filters[i].empty()) - continue; - if (Filters[i].front() != '-') - CountGrep += 1; - } -} - -bool ImGuiTextFilter::PassFilter(const char* val) const -{ - if (Filters.empty()) - return true; - - if (val == NULL) - val = ""; - - for (int i = 0; i != Filters.Size; i++) - { - const TextRange& f = Filters[i]; - if (f.empty()) - continue; - if (f.front() == '-') - { - // Subtract - if (ImStristr(val, f.begin()+1, f.end()) != NULL) - return false; - } - else - { - // Grep - if (ImStristr(val, f.begin(), f.end()) != NULL) - return true; - } - } - - // Implicit * grep - if (CountGrep == 0) - return true; - - return false; -} - -//----------------------------------------------------------------------------- -// ImGuiTextBuffer -//----------------------------------------------------------------------------- - -// On some platform vsnprintf() takes va_list by reference and modifies it. -// va_copy is the 'correct' way to copy a va_list but Visual Studio prior to 2013 doesn't have it. -#ifndef va_copy -#define va_copy(dest, src) (dest = src) -#endif - -// Helper: Text buffer for logging/accumulating text -void ImGuiTextBuffer::appendv(const char* fmt, va_list args) -{ - va_list args_copy; - va_copy(args_copy, args); - - int len = vsnprintf(NULL, 0, fmt, args); // FIXME-OPT: could do a first pass write attempt, likely successful on first pass. - if (len <= 0) - return; - - const int write_off = Buf.Size; - const int needed_sz = write_off + len; - if (write_off + len >= Buf.Capacity) - { - int double_capacity = Buf.Capacity * 2; - Buf.reserve(needed_sz > double_capacity ? needed_sz : double_capacity); - } - - Buf.resize(needed_sz); - ImFormatStringV(&Buf[write_off] - 1, len+1, fmt, args_copy); -} - -void ImGuiTextBuffer::append(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - appendv(fmt, args); - va_end(args); -} - -//----------------------------------------------------------------------------- -// ImGuiSimpleColumns -//----------------------------------------------------------------------------- - -ImGuiSimpleColumns::ImGuiSimpleColumns() -{ - Count = 0; - Spacing = Width = NextWidth = 0.0f; - memset(Pos, 0, sizeof(Pos)); - memset(NextWidths, 0, sizeof(NextWidths)); -} - -void ImGuiSimpleColumns::Update(int count, float spacing, bool clear) -{ - IM_ASSERT(Count <= IM_ARRAYSIZE(Pos)); - Count = count; - Width = NextWidth = 0.0f; - Spacing = spacing; - if (clear) memset(NextWidths, 0, sizeof(NextWidths)); - for (int i = 0; i < Count; i++) - { - if (i > 0 && NextWidths[i] > 0.0f) - Width += Spacing; - Pos[i] = (float)(int)Width; - Width += NextWidths[i]; - NextWidths[i] = 0.0f; - } -} - -float ImGuiSimpleColumns::DeclColumns(float w0, float w1, float w2) // not using va_arg because they promote float to double -{ - NextWidth = 0.0f; - NextWidths[0] = ImMax(NextWidths[0], w0); - NextWidths[1] = ImMax(NextWidths[1], w1); - NextWidths[2] = ImMax(NextWidths[2], w2); - for (int i = 0; i < 3; i++) - NextWidth += NextWidths[i] + ((i > 0 && NextWidths[i] > 0.0f) ? Spacing : 0.0f); - return ImMax(Width, NextWidth); -} - -float ImGuiSimpleColumns::CalcExtraSpace(float avail_w) -{ - return ImMax(0.0f, avail_w - Width); -} - -//----------------------------------------------------------------------------- -// ImGuiWindow -//----------------------------------------------------------------------------- - -ImGuiWindow::ImGuiWindow(const char* name) -{ - Name = ImStrdup(name); - ID = ImHash(name, 0); - IDStack.push_back(ID); - MoveID = GetID("#MOVE"); - - Flags = 0; - PosFloat = Pos = ImVec2(0.0f, 0.0f); - Size = SizeFull = ImVec2(0.0f, 0.0f); - SizeContents = ImVec2(0.0f, 0.0f); - WindowPadding = ImVec2(0.0f, 0.0f); - ScrollY = 0.0f; - ScrollTargetRelY = FLT_MAX; - ScrollTargetCenterRatioY = 0.5f; - ScrollbarY = false; - Active = WasActive = false; - Accessed = false; - Collapsed = false; - SkipItems = false; - BeginCount = 0; - PopupID = 0; - AutoFitFramesX = AutoFitFramesY = -1; - AutoFitOnlyGrows = false; - AutoPosLastDirection = -1; - HiddenFrames = 0; - SetWindowPosAllowFlags = SetWindowSizeAllowFlags = SetWindowCollapsedAllowFlags = ImGuiSetCond_Always | ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing; - SetWindowPosCenterWanted = false; - - LastFrameDrawn = -1; - ItemWidthDefault = 0.0f; - FontWindowScale = 1.0f; - - DrawList = (ImDrawList*)ImGui::MemAlloc(sizeof(ImDrawList)); - new(DrawList) ImDrawList(); - DrawList->_OwnerName = Name; - RootWindow = NULL; - RootNonPopupWindow = NULL; - - FocusIdxAllCounter = FocusIdxTabCounter = -1; - FocusIdxAllRequestCurrent = FocusIdxTabRequestCurrent = IM_INT_MAX; - FocusIdxAllRequestNext = FocusIdxTabRequestNext = IM_INT_MAX; -} - -ImGuiWindow::~ImGuiWindow() -{ - DrawList->~ImDrawList(); - ImGui::MemFree(DrawList); - DrawList = NULL; - ImGui::MemFree(Name); - Name = NULL; -} - -ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end) -{ - ImGuiID seed = IDStack.back(); - ImGuiID id = ImHash(str, str_end ? (int)(str_end - str) : 0, seed); - ImGui::KeepAliveID(id); - return id; -} - -ImGuiID ImGuiWindow::GetID(const void* ptr) -{ - ImGuiID seed = IDStack.back(); - ImGuiID id = ImHash(&ptr, sizeof(void*), seed); - ImGui::KeepAliveID(id); - return id; -} - -//----------------------------------------------------------------------------- -// Internal API exposed in imgui_internal.h -//----------------------------------------------------------------------------- - -ImGuiWindow* ImGui::GetCurrentWindow() -{ - // If this ever crash it probably means that ImGui::NewFrame() has never been called (which is illegal). We should always have a CurrentWindow in the stack (there is an implicit "Debug" window) - ImGuiState& g = *GImGui; - g.CurrentWindow->Accessed = true; - return g.CurrentWindow; -} - -static void SetCurrentWindow(ImGuiWindow* window) -{ - ImGuiState& g = *GImGui; - g.CurrentWindow = window; - if (window) - g.FontSize = window->CalcFontSize(); -} - -ImGuiWindow* ImGui::GetParentWindow() -{ - ImGuiState& g = *GImGui; - IM_ASSERT(g.CurrentWindowStack.Size >= 2); - return g.CurrentWindowStack[g.CurrentWindowStack.Size - 2]; -} - -void ImGui::SetActiveID(ImGuiID id, ImGuiWindow* window = NULL) -{ - ImGuiState& g = *GImGui; - g.ActiveId = id; - g.ActiveIdIsFocusedOnly = false; - g.ActiveIdIsJustActivated = true; - g.ActiveIdWindow = window; -} - -void ImGui::KeepAliveID(ImGuiID id) -{ - ImGuiState& g = *GImGui; - if (g.ActiveId == id) - g.ActiveIdIsAlive = true; -} - -// Advance cursor given item size for layout. -void ImGui::ItemSize(const ImVec2& size, float text_offset_y) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - // Always align ourselves on pixel boundaries - ImGuiState& g = *GImGui; - const float line_height = ImMax(window->DC.CurrentLineHeight, size.y); - const float text_base_offset = ImMax(window->DC.CurrentLineTextBaseOffset, text_offset_y); - window->DC.CursorPosPrevLine = ImVec2(window->DC.CursorPos.x + size.x, window->DC.CursorPos.y); - window->DC.CursorPos = ImVec2((float)(int)(window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX), (float)(int)(window->DC.CursorPos.y + line_height + g.Style.ItemSpacing.y)); - window->DC.CursorMaxPos.x = ImMax(window->DC.CursorMaxPos.x, window->DC.CursorPosPrevLine.x); - window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, window->DC.CursorPos.y); - - //window->DrawList->AddCircle(window->DC.CursorMaxPos, 3.0f, 0xFF0000FF, 4); // Debug - - window->DC.PrevLineHeight = line_height; - window->DC.PrevLineTextBaseOffset = text_base_offset; - window->DC.CurrentLineHeight = window->DC.CurrentLineTextBaseOffset = 0.0f; -} - -void ImGui::ItemSize(const ImRect& bb, float text_offset_y) -{ - ItemSize(bb.GetSize(), text_offset_y); -} - -// Declare item bounding box for clipping and interaction. -// Note that the size can be different than the one provided to ItemSize(). Typically, widgets that spread over available surface -// declares their minimum size requirement to ItemSize() and then use a larger region for drawing/interaction, which is passed to ItemAdd(). -bool ImGui::ItemAdd(const ImRect& bb, const ImGuiID* id) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.LastItemID = id ? *id : 0; - window->DC.LastItemRect = bb; - if (IsClippedEx(bb, id, false)) - { - window->DC.LastItemHoveredAndUsable = window->DC.LastItemHoveredRect = false; - return false; - } - - // This is a sensible default, but widgets are free to override it after calling ItemAdd() - ImGuiState& g = *GImGui; - if (IsMouseHoveringRect(bb.Min, bb.Max)) - { - // Matching the behavior of IsHovered() but ignore if ActiveId==window->MoveID (we clicked on the window background) - // So that clicking on items with no active id such as Text() still returns true with IsItemHovered() - window->DC.LastItemHoveredRect = true; - window->DC.LastItemHoveredAndUsable = false; - if (g.HoveredRootWindow == window->RootWindow) - if (g.ActiveId == 0 || (id && g.ActiveId == *id) || g.ActiveIdIsFocusedOnly || (g.ActiveId == window->MoveID)) - if (IsWindowContentHoverable(window)) - window->DC.LastItemHoveredAndUsable = true; - } - else - { - window->DC.LastItemHoveredAndUsable = window->DC.LastItemHoveredRect = false; - } - - return true; -} - -bool ImGui::IsClippedEx(const ImRect& bb, const ImGuiID* id, bool clip_even_when_logged) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - if (!bb.Overlaps(window->ClipRect)) - { - if (!id || *id != GImGui->ActiveId) - if (clip_even_when_logged || !g.LogEnabled) - return true; - } - return false; -} - -bool ImGui::IsHovered(const ImRect& bb, ImGuiID id, bool flatten_childs) -{ - ImGuiState& g = *GImGui; - if (g.HoveredId == 0 || g.HoveredId == id) - { - ImGuiWindow* window = GetCurrentWindow(); - if (g.HoveredWindow == window || (flatten_childs && g.HoveredRootWindow == window->RootWindow)) - if ((g.ActiveId == 0 || g.ActiveId == id || g.ActiveIdIsFocusedOnly) && ImGui::IsMouseHoveringRect(bb.Min, bb.Max)) - if (IsWindowContentHoverable(g.HoveredRootWindow)) - return true; - } - return false; -} - -bool ImGui::FocusableItemRegister(ImGuiWindow* window, bool is_active, bool tab_stop) -{ - ImGuiState& g = *GImGui; - - const bool allow_keyboard_focus = window->DC.AllowKeyboardFocus; - window->FocusIdxAllCounter++; - if (allow_keyboard_focus) - window->FocusIdxTabCounter++; - - // Process keyboard input at this point: TAB, Shift-TAB switch focus - // We can always TAB out of a widget that doesn't allow tabbing in. - if (tab_stop && window->FocusIdxAllRequestNext == IM_INT_MAX && window->FocusIdxTabRequestNext == IM_INT_MAX && is_active && IsKeyPressedMap(ImGuiKey_Tab)) - { - // Modulo on index will be applied at the end of frame once we've got the total counter of items. - window->FocusIdxTabRequestNext = window->FocusIdxTabCounter + (g.IO.KeyShift ? (allow_keyboard_focus ? -1 : 0) : +1); - } - - if (window->FocusIdxAllCounter == window->FocusIdxAllRequestCurrent) - return true; - - if (allow_keyboard_focus) - if (window->FocusIdxTabCounter == window->FocusIdxTabRequestCurrent) - return true; - - return false; -} - -void ImGui::FocusableItemUnregister(ImGuiWindow* window) -{ - window->FocusIdxAllCounter--; - window->FocusIdxTabCounter--; -} - -ImVec2 ImGui::CalcItemSize(ImVec2 size, float default_x, float default_y) -{ - ImGuiState& g = *GImGui; - ImVec2 content_max; - if (size.x < 0.0f || size.y < 0.0f) - content_max = g.CurrentWindow->Pos + ImGui::GetContentRegionMax(); - if (size.x <= 0.0f) - size.x = (size.x == 0.0f) ? default_x : ImMax(content_max.x - g.CurrentWindow->DC.CursorPos.x, 4.0f) + size.x; - if (size.y <= 0.0f) - size.y = (size.y == 0.0f) ? default_y : ImMax(content_max.y - g.CurrentWindow->DC.CursorPos.y, 4.0f) + size.y; - return size; -} - -float ImGui::CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x) -{ - if (wrap_pos_x < 0.0f) - return 0.0f; - - ImGuiWindow* window = ImGui::GetCurrentWindow(); - if (wrap_pos_x == 0.0f) - wrap_pos_x = ImGui::GetContentRegionMax().x; - if (wrap_pos_x > 0.0f) - wrap_pos_x += window->Pos.x; // wrap_pos_x is provided is window local space - - const float wrap_width = wrap_pos_x > 0.0f ? ImMax(wrap_pos_x - pos.x, 0.00001f) : 0.0f; - return wrap_width; -} - -//----------------------------------------------------------------------------- - -void* ImGui::MemAlloc(size_t sz) -{ - GImGui->IO.MetricsAllocs++; - return GImGui->IO.MemAllocFn(sz); -} - -void ImGui::MemFree(void* ptr) -{ - if (ptr) GImGui->IO.MetricsAllocs--; - return GImGui->IO.MemFreeFn(ptr); -} - -const char* ImGui::GetVersion() -{ - return IMGUI_VERSION; -} - -// Internal state access - if you want to share ImGui state between modules (e.g. DLL) or allocate it yourself -// Note that we still point to some static data and members (such as GFontAtlas), so the state instance you end up using will point to the static data within its module -void* ImGui::GetInternalState() -{ - return GImGui; -} - -size_t ImGui::GetInternalStateSize() -{ - return sizeof(ImGuiState); -} - -void ImGui::SetInternalState(void* state, bool construct) -{ - if (construct) - new (state) ImGuiState(); - GImGui = (ImGuiState*)state; -} - -ImGuiIO& ImGui::GetIO() -{ - return GImGui->IO; -} - -ImGuiStyle& ImGui::GetStyle() -{ - return GImGui->Style; -} - -float ImGui::GetTime() -{ - return GImGui->Time; -} - -int ImGui::GetFrameCount() -{ - return GImGui->FrameCount; -} - -void ImGui::NewFrame() -{ - ImGuiState& g = *GImGui; - - // Check user data - IM_ASSERT(g.IO.DeltaTime >= 0.0f); - IM_ASSERT(g.IO.DisplaySize.x >= 0.0f && g.IO.DisplaySize.y >= 0.0f); - IM_ASSERT(g.IO.RenderDrawListsFn != NULL); // Must be implemented - IM_ASSERT(g.IO.Fonts->Fonts.Size > 0); // Font Atlas not created. Did you call io.Fonts->GetTexDataAsRGBA32 / GetTexDataAsAlpha8 ? - IM_ASSERT(g.IO.Fonts->Fonts[0]->IsLoaded()); // Font Atlas not created. Did you call io.Fonts->GetTexDataAsRGBA32 / GetTexDataAsAlpha8 ? - - if (!g.Initialized) - { - // Initialize on first frame - g.LogClipboard = (ImGuiTextBuffer*)ImGui::MemAlloc(sizeof(ImGuiTextBuffer)); - new(g.LogClipboard) ImGuiTextBuffer(); - - IM_ASSERT(g.Settings.empty()); - LoadSettings(); - g.Initialized = true; - } - - SetCurrentFont(g.IO.Fonts->Fonts[0]); - - g.Time += g.IO.DeltaTime; - g.FrameCount += 1; - g.Tooltip[0] = '\0'; - g.OverlayDrawList.Clear(); - g.OverlayDrawList.PushTextureID(g.IO.Fonts->TexID); - g.OverlayDrawList.PushClipRectFullScreen(); - g.OverlayDrawList.AddDrawCmd(); - - // Update inputs state - if (g.IO.MousePos.x < 0 && g.IO.MousePos.y < 0) - g.IO.MousePos = ImVec2(-9999.0f, -9999.0f); - if ((g.IO.MousePos.x < 0 && g.IO.MousePos.y < 0) || (g.IO.MousePosPrev.x < 0 && g.IO.MousePosPrev.y < 0)) // if mouse just appeared or disappeared (negative coordinate) we cancel out movement in MouseDelta - g.IO.MouseDelta = ImVec2(0.0f, 0.0f); - else - g.IO.MouseDelta = g.IO.MousePos - g.IO.MousePosPrev; - g.IO.MousePosPrev = g.IO.MousePos; - for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) - { - g.IO.MouseDownDurationPrev[i] = g.IO.MouseDownDuration[i]; - g.IO.MouseDownDuration[i] = g.IO.MouseDown[i] ? (g.IO.MouseDownDuration[i] < 0.0f ? 0.0f : g.IO.MouseDownDuration[i] + g.IO.DeltaTime) : -1.0f; - g.IO.MouseClicked[i] = g.IO.MouseDownDuration[i] == 0.0f; - g.IO.MouseReleased[i] = g.IO.MouseDownDurationPrev[i] >= 0.0f && !g.IO.MouseDown[i]; - g.IO.MouseDoubleClicked[i] = false; - if (g.IO.MouseClicked[i]) - { - if (g.Time - g.IO.MouseClickedTime[i] < g.IO.MouseDoubleClickTime) - { - if (ImLengthSqr(g.IO.MousePos - g.IO.MouseClickedPos[i]) < g.IO.MouseDoubleClickMaxDist * g.IO.MouseDoubleClickMaxDist) - g.IO.MouseDoubleClicked[i] = true; - g.IO.MouseClickedTime[i] = -FLT_MAX; // so the third click isn't turned into a double-click - } - else - { - g.IO.MouseClickedTime[i] = g.Time; - } - g.IO.MouseClickedPos[i] = g.IO.MousePos; - g.IO.MouseDragMaxDistanceSqr[i] = 0.0f; - } - else if (g.IO.MouseDown[i]) - { - g.IO.MouseDragMaxDistanceSqr[i] = ImMax(g.IO.MouseDragMaxDistanceSqr[i], ImLengthSqr(g.IO.MousePos - g.IO.MouseClickedPos[i])); - } - } - memcpy(g.IO.KeysDownDurationPrev, g.IO.KeysDownDuration, sizeof(g.IO.KeysDownDuration)); - for (int i = 0; i < IM_ARRAYSIZE(g.IO.KeysDown); i++) - g.IO.KeysDownDuration[i] = g.IO.KeysDown[i] ? (g.IO.KeysDownDuration[i] < 0.0f ? 0.0f : g.IO.KeysDownDuration[i] + g.IO.DeltaTime) : -1.0f; - - // Calculate frame-rate for the user, as a purely luxurious feature - g.FramerateSecPerFrameAccum += g.IO.DeltaTime - g.FramerateSecPerFrame[g.FramerateSecPerFrameIdx]; - g.FramerateSecPerFrame[g.FramerateSecPerFrameIdx] = g.IO.DeltaTime; - g.FramerateSecPerFrameIdx = (g.FramerateSecPerFrameIdx + 1) % IM_ARRAYSIZE(g.FramerateSecPerFrame); - g.IO.Framerate = 1.0f / (g.FramerateSecPerFrameAccum / (float)IM_ARRAYSIZE(g.FramerateSecPerFrame)); - - // Clear reference to active widget if the widget isn't alive anymore - g.HoveredIdPreviousFrame = g.HoveredId; - g.HoveredId = 0; - if (!g.ActiveIdIsAlive && g.ActiveIdPreviousFrame == g.ActiveId && g.ActiveId != 0) - SetActiveID(0); - g.ActiveIdPreviousFrame = g.ActiveId; - g.ActiveIdIsAlive = false; - g.ActiveIdIsJustActivated = false; - if (!g.ActiveId) - g.MovedWindow = NULL; - - // Delay saving settings so we don't spam disk too much - if (g.SettingsDirtyTimer > 0.0f) - { - g.SettingsDirtyTimer -= g.IO.DeltaTime; - if (g.SettingsDirtyTimer <= 0.0f) - SaveSettings(); - } - - // Find the window we are hovering. Child windows can extend beyond the limit of their parent so we need to derive HoveredRootWindow from HoveredWindow - g.HoveredWindow = FindHoveredWindow(g.IO.MousePos, false); - if (g.HoveredWindow && (g.HoveredWindow->Flags & ImGuiWindowFlags_ChildWindow)) - g.HoveredRootWindow = g.HoveredWindow->RootWindow; - else - g.HoveredRootWindow = FindHoveredWindow(g.IO.MousePos, true); - - if (ImGuiWindow* modal_window = GetFrontMostModalRootWindow()) - { - g.ModalWindowDarkeningRatio = ImMin(g.ModalWindowDarkeningRatio + g.IO.DeltaTime * 6.0f, 1.0f); - if (g.HoveredRootWindow != modal_window) - g.HoveredRootWindow = g.HoveredWindow = NULL; - } - else - { - g.ModalWindowDarkeningRatio = 0.0f; - } - - // Are we using inputs? Tell user so they can capture/discard the inputs away from the rest of their application. - // When clicking outside of a window we assume the click is owned by the application and won't request capture. - int mouse_earliest_button_down = -1; - bool mouse_any_down = false; - for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) - { - if (g.IO.MouseClicked[i]) - g.IO.MouseDownOwned[i] = (g.HoveredWindow != NULL) || (!g.OpenedPopupStack.empty()); - mouse_any_down |= g.IO.MouseDown[i]; - if (g.IO.MouseDown[i]) - if (mouse_earliest_button_down == -1 || g.IO.MouseClickedTime[mouse_earliest_button_down] > g.IO.MouseClickedTime[i]) - mouse_earliest_button_down = i; - } - bool mouse_owned_by_application = mouse_earliest_button_down != -1 && !g.IO.MouseDownOwned[mouse_earliest_button_down]; - g.IO.WantCaptureMouse = (!mouse_owned_by_application && g.HoveredWindow != NULL) || (!mouse_owned_by_application && mouse_any_down) || (g.ActiveId != 0) || (!g.OpenedPopupStack.empty()) || (g.CaptureMouseNextFrame); - g.IO.WantCaptureKeyboard = (g.ActiveId != 0) || (g.CaptureKeyboardNextFrame); - g.MouseCursor = ImGuiMouseCursor_Arrow; - g.CaptureMouseNextFrame = g.CaptureKeyboardNextFrame = false; - - // If mouse was first clicked outside of ImGui bounds we also cancel out hovering. - if (mouse_owned_by_application) - g.HoveredWindow = g.HoveredRootWindow = NULL; - - // Scale & Scrolling - if (g.HoveredWindow && g.IO.MouseWheel != 0.0f && !g.HoveredWindow->Collapsed) - { - ImGuiWindow* window = g.HoveredWindow; - if (g.IO.KeyCtrl) - { - if (g.IO.FontAllowUserScaling) - { - // Zoom / Scale window - float new_font_scale = ImClamp(window->FontWindowScale + g.IO.MouseWheel * 0.10f, 0.50f, 2.50f); - float scale = new_font_scale / window->FontWindowScale; - window->FontWindowScale = new_font_scale; - - const ImVec2 offset = window->Size * (1.0f - scale) * (g.IO.MousePos - window->Pos) / window->Size; - window->Pos += offset; - window->PosFloat += offset; - window->Size *= scale; - window->SizeFull *= scale; - } - } - else - { - // Scroll - if (!(window->Flags & ImGuiWindowFlags_NoScrollWithMouse)) - { - const int scroll_lines = (window->Flags & ImGuiWindowFlags_ComboBox) ? 3 : 5; - SetWindowScrollY(window, window->ScrollY - g.IO.MouseWheel * window->CalcFontSize() * scroll_lines); - } - } - } - - // Pressing TAB activate widget focus - // NB: Don't discard FocusedWindow if it isn't active, so that a window that go on/off programatically won't lose its keyboard focus. - if (g.ActiveId == 0 && g.FocusedWindow != NULL && g.FocusedWindow->Active && IsKeyPressedMap(ImGuiKey_Tab, false)) - g.FocusedWindow->FocusIdxTabRequestNext = 0; - - // Mark all windows as not visible - for (int i = 0; i != g.Windows.Size; i++) - { - ImGuiWindow* window = g.Windows[i]; - window->WasActive = window->Active; - window->Active = false; - window->Accessed = false; - } - - // No window should be open at the beginning of the frame. - // But in order to allow the user to call NewFrame() multiple times without calling Render(), we are doing an explicit clear. - g.CurrentWindowStack.resize(0); - g.CurrentPopupStack.resize(0); - CloseInactivePopups(); - - // Create implicit window - we will only render it if the user has added something to it. - ImGui::SetNextWindowSize(ImVec2(400,400), ImGuiSetCond_FirstUseEver); - ImGui::Begin("Debug"); -} - -// NB: behavior of ImGui after Shutdown() is not tested/guaranteed at the moment. This function is merely here to free heap allocations. -void ImGui::Shutdown() -{ - ImGuiState& g = *GImGui; - if (!g.Initialized) - return; - - SaveSettings(); - - for (int i = 0; i < g.Windows.Size; i++) - { - g.Windows[i]->~ImGuiWindow(); - ImGui::MemFree(g.Windows[i]); - } - g.Windows.clear(); - g.WindowsSortBuffer.clear(); - g.CurrentWindowStack.clear(); - g.FocusedWindow = NULL; - g.HoveredWindow = NULL; - g.HoveredRootWindow = NULL; - for (int i = 0; i < g.Settings.Size; i++) - ImGui::MemFree(g.Settings[i].Name); - g.Settings.clear(); - g.ColorModifiers.clear(); - g.StyleModifiers.clear(); - g.FontStack.clear(); - g.OpenedPopupStack.clear(); - g.CurrentPopupStack.clear(); - for (int i = 0; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) - g.RenderDrawLists[i].clear(); - g.OverlayDrawList.ClearFreeMemory(); - g.ColorEditModeStorage.Clear(); - if (g.PrivateClipboard) - { - ImGui::MemFree(g.PrivateClipboard); - g.PrivateClipboard = NULL; - } - g.InputTextState.Text.clear(); - g.InputTextState.InitialText.clear(); - g.InputTextState.TempTextBuffer.clear(); - - if (g.LogFile && g.LogFile != stdout) - { - fclose(g.LogFile); - g.LogFile = NULL; - } - if (g.LogClipboard) - { - g.LogClipboard->~ImGuiTextBuffer(); - ImGui::MemFree(g.LogClipboard); - } - - if (g.IO.Fonts) // Testing for NULL to allow user to NULLify in case of running Shutdown() on multiple contexts. Bit hacky. - g.IO.Fonts->Clear(); - - g.Initialized = false; -} - -static ImGuiIniData* FindWindowSettings(const char* name) -{ - ImGuiState& g = *GImGui; - ImGuiID id = ImHash(name, 0); - for (int i = 0; i != g.Settings.Size; i++) - { - ImGuiIniData* ini = &g.Settings[i]; - if (ini->ID == id) - return ini; - } - return NULL; -} - -static ImGuiIniData* AddWindowSettings(const char* name) -{ - GImGui->Settings.resize(GImGui->Settings.Size + 1); - ImGuiIniData* ini = &GImGui->Settings.back(); - ini->Name = ImStrdup(name); - ini->ID = ImHash(name, 0); - ini->Collapsed = false; - ini->Pos = ImVec2(FLT_MAX,FLT_MAX); - ini->Size = ImVec2(0,0); - return ini; -} - -// Zero-tolerance, poor-man .ini parsing -// FIXME: Write something less rubbish -static void LoadSettings() -{ - ImGuiState& g = *GImGui; - const char* filename = g.IO.IniFilename; - if (!filename) - return; - - char* file_data; - int file_size; - if (!ImLoadFileToMemory(filename, "rb", (void**)&file_data, &file_size, 1)) - return; - - ImGuiIniData* settings = NULL; - const char* buf_end = file_data + file_size; - for (const char* line_start = file_data; line_start < buf_end; ) - { - const char* line_end = line_start; - while (line_end < buf_end && *line_end != '\n' && *line_end != '\r') - line_end++; - - if (line_start[0] == '[' && line_end > line_start && line_end[-1] == ']') - { - char name[64]; - ImFormatString(name, IM_ARRAYSIZE(name), "%.*s", line_end-line_start-2, line_start+1); - settings = FindWindowSettings(name); - if (!settings) - settings = AddWindowSettings(name); - } - else if (settings) - { - float x, y; - int i; - if (sscanf(line_start, "Pos=%f,%f", &x, &y) == 2) - settings->Pos = ImVec2(x, y); - else if (sscanf(line_start, "Size=%f,%f", &x, &y) == 2) - settings->Size = ImMax(ImVec2(x, y), g.Style.WindowMinSize); - else if (sscanf(line_start, "Collapsed=%d", &i) == 1) - settings->Collapsed = (i != 0); - } - - line_start = line_end+1; - } - - ImGui::MemFree(file_data); -} - -static void SaveSettings() -{ - ImGuiState& g = *GImGui; - const char* filename = g.IO.IniFilename; - if (!filename) - return; - - // Gather data from windows that were active during this session - for (int i = 0; i != g.Windows.Size; i++) - { - ImGuiWindow* window = g.Windows[i]; - if (window->Flags & ImGuiWindowFlags_NoSavedSettings) - continue; - ImGuiIniData* settings = FindWindowSettings(window->Name); - settings->Pos = window->Pos; - settings->Size = window->SizeFull; - settings->Collapsed = window->Collapsed; - } - - // Write .ini file - // If a window wasn't opened in this session we preserve its settings - FILE* f = fopen(filename, "wt"); - if (!f) - return; - for (int i = 0; i != g.Settings.Size; i++) - { - const ImGuiIniData* settings = &g.Settings[i]; - if (settings->Pos.x == FLT_MAX) - continue; - const char* name = settings->Name; - if (const char* p = strstr(name, "###")) // Skip to the "###" marker if any. We don't skip past to match the behavior of GetID() - name = p; - fprintf(f, "[%s]\n", name); - fprintf(f, "Pos=%d,%d\n", (int)settings->Pos.x, (int)settings->Pos.y); - fprintf(f, "Size=%d,%d\n", (int)settings->Size.x, (int)settings->Size.y); - fprintf(f, "Collapsed=%d\n", settings->Collapsed); - fprintf(f, "\n"); - } - - fclose(f); -} - -static void MarkSettingsDirty() -{ - ImGuiState& g = *GImGui; - if (g.SettingsDirtyTimer <= 0.0f) - g.SettingsDirtyTimer = g.IO.IniSavingRate; -} - -// FIXME: Add a more explicit sort order in the window structure. -static int ChildWindowComparer(const void* lhs, const void* rhs) -{ - const ImGuiWindow* a = *(const ImGuiWindow**)lhs; - const ImGuiWindow* b = *(const ImGuiWindow**)rhs; - if (int d = (a->Flags & ImGuiWindowFlags_Popup) - (b->Flags & ImGuiWindowFlags_Popup)) - return d; - if (int d = (a->Flags & ImGuiWindowFlags_Tooltip) - (b->Flags & ImGuiWindowFlags_Tooltip)) - return d; - if (int d = (a->Flags & ImGuiWindowFlags_ComboBox) - (b->Flags & ImGuiWindowFlags_ComboBox)) - return d; - return 0; -} - -static void AddWindowToSortedBuffer(ImVector& out_sorted_windows, ImGuiWindow* window) -{ - out_sorted_windows.push_back(window); - if (window->Active) - { - int count = window->DC.ChildWindows.Size; - if (count > 1) - qsort(window->DC.ChildWindows.begin(), (size_t)count, sizeof(ImGuiWindow*), ChildWindowComparer); - for (int i = 0; i < count; i++) - { - ImGuiWindow* child = window->DC.ChildWindows[i]; - if (child->Active) - AddWindowToSortedBuffer(out_sorted_windows, child); - } - } -} - -static void AddDrawListToRenderList(ImVector& out_render_list, ImDrawList* draw_list) -{ - if (!draw_list->CmdBuffer.empty() && !draw_list->VtxBuffer.empty()) - { - if (draw_list->CmdBuffer.back().ElemCount == 0) - draw_list->CmdBuffer.pop_back(); - out_render_list.push_back(draw_list); - GImGui->IO.MetricsRenderVertices += draw_list->VtxBuffer.Size; - GImGui->IO.MetricsRenderIndices += draw_list->IdxBuffer.Size; - } -} - -static void AddWindowToRenderList(ImVector& out_render_list, ImGuiWindow* window) -{ - AddDrawListToRenderList(out_render_list, window->DrawList); - for (int i = 0; i < window->DC.ChildWindows.Size; i++) - { - ImGuiWindow* child = window->DC.ChildWindows[i]; - if (!child->Active) // clipped children may have been marked not active - continue; - if ((child->Flags & ImGuiWindowFlags_Popup) && child->HiddenFrames > 0) - continue; - AddWindowToRenderList(out_render_list, child); - } -} - -static void PushClipRect(const ImRect& clip_rect, bool clipped) -{ - ImGuiWindow* window = ImGui::GetCurrentWindow(); - - ImRect cr = clip_rect; - if (clipped) - { - // Clip our argument with the current clip rect - cr.Clip(window->ClipRect); - } - cr.Max.x = ImMax(cr.Min.x, cr.Max.x); - cr.Max.y = ImMax(cr.Min.y, cr.Max.y); - - IM_ASSERT(cr.Min.x <= cr.Max.x && cr.Min.y <= cr.Max.y); - window->ClipRect = cr; - window->DrawList->PushClipRect(ImVec4(cr.Min.x, cr.Min.y, cr.Max.x, cr.Max.y)); -} - -static void PopClipRect() -{ - ImGuiWindow* window = ImGui::GetCurrentWindow(); - window->DrawList->PopClipRect(); - window->ClipRect = window->DrawList->_ClipRectStack.back(); -} - -void ImGui::Render() -{ - ImGuiState& g = *GImGui; - IM_ASSERT(g.Initialized); // Forgot to call ImGui::NewFrame() - - const bool first_render_of_the_frame = (g.FrameCountRendered != g.FrameCount); - g.FrameCountRendered = g.FrameCount; - - if (first_render_of_the_frame) - { - // Hide implicit "Debug" window if it hasn't been used - IM_ASSERT(g.CurrentWindowStack.Size == 1); // Mismatched Begin/End - if (g.CurrentWindow && !g.CurrentWindow->Accessed) - g.CurrentWindow->Active = false; - ImGui::End(); - - // Click to focus window and start moving (after we're done with all our widgets) - if (!g.ActiveId) - g.MovedWindow = NULL; - if (g.ActiveId == 0 && g.HoveredId == 0 && g.IO.MouseClicked[0]) - { - if (!(g.FocusedWindow && !g.FocusedWindow->WasActive && g.FocusedWindow->Active)) // Unless we just made a popup appear - { - if (g.HoveredRootWindow != NULL) - { - g.MovedWindow = g.HoveredWindow; - SetActiveID(g.HoveredRootWindow->MoveID, g.HoveredRootWindow); - } - else if (g.FocusedWindow != NULL && GetFrontMostModalRootWindow() == NULL) - { - // Clicking on void disable focus - FocusWindow(NULL); - } - } - } - - // Sort the window list so that all child windows are after their parent - // We cannot do that on FocusWindow() because childs may not exist yet - g.WindowsSortBuffer.resize(0); - g.WindowsSortBuffer.reserve(g.Windows.Size); - for (int i = 0; i != g.Windows.Size; i++) - { - ImGuiWindow* window = g.Windows[i]; - if (window->Flags & ImGuiWindowFlags_ChildWindow) // if a child is active its parent will add it - if (window->Active) - continue; - AddWindowToSortedBuffer(g.WindowsSortBuffer, window); - } - IM_ASSERT(g.Windows.Size == g.WindowsSortBuffer.Size); // we done something wrong - g.Windows.swap(g.WindowsSortBuffer); - - // Clear Input data for next frame - g.IO.MouseWheel = 0.0f; - memset(g.IO.InputCharacters, 0, sizeof(g.IO.InputCharacters)); - } - - // Skip render altogether if alpha is 0.0 - // Note that vertex buffers have been created and are wasted, so it is best practice that you don't create windows in the first place, or respond to Begin() returning false. - if (g.Style.Alpha > 0.0f) - { - // Render tooltip - if (g.Tooltip[0]) - { - ImGui::BeginTooltip(); - ImGui::TextUnformatted(g.Tooltip); - ImGui::EndTooltip(); - } - - // Gather windows to render - g.IO.MetricsRenderVertices = g.IO.MetricsRenderIndices = g.IO.MetricsActiveWindows = 0; - for (int i = 0; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) - g.RenderDrawLists[i].resize(0); - for (int i = 0; i != g.Windows.Size; i++) - { - ImGuiWindow* window = g.Windows[i]; - if (window->Active && window->HiddenFrames <= 0 && (window->Flags & (ImGuiWindowFlags_ChildWindow)) == 0) - { - // FIXME: Generalize this with a proper layering system so e.g. user can draw in specific layers, below text, .. - g.IO.MetricsActiveWindows++; - if (window->Flags & ImGuiWindowFlags_Popup) - AddWindowToRenderList(g.RenderDrawLists[1], window); - else if (window->Flags & ImGuiWindowFlags_Tooltip) - AddWindowToRenderList(g.RenderDrawLists[2], window); - else - AddWindowToRenderList(g.RenderDrawLists[0], window); - } - } - - // Flatten layers - int n = g.RenderDrawLists[0].Size; - int flattened_size = n; - for (int i = 1; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) - flattened_size += g.RenderDrawLists[i].Size; - g.RenderDrawLists[0].resize(flattened_size); - for (int i = 1; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) - { - ImVector& layer = g.RenderDrawLists[i]; - if (!layer.empty()) - { - memcpy(&g.RenderDrawLists[0][n], &layer[0], layer.Size * sizeof(ImDrawList*)); - n += layer.Size; - } - } - - if (g.IO.MouseDrawCursor) - { - const ImGuiMouseCursorData& cursor_data = g.MouseCursorData[g.MouseCursor]; - const ImVec2 pos = g.IO.MousePos - cursor_data.HotOffset; - const ImVec2 size = cursor_data.Size; - const ImTextureID tex_id = g.IO.Fonts->TexID; - g.OverlayDrawList.PushTextureID(tex_id); - g.OverlayDrawList.AddImage(tex_id, pos+ImVec2(1,0), pos+ImVec2(1,0) + size, cursor_data.TexUvMin[1], cursor_data.TexUvMax[1], 0x30000000); // Shadow - g.OverlayDrawList.AddImage(tex_id, pos+ImVec2(2,0), pos+ImVec2(2,0) + size, cursor_data.TexUvMin[1], cursor_data.TexUvMax[1], 0x30000000); // Shadow - g.OverlayDrawList.AddImage(tex_id, pos, pos + size, cursor_data.TexUvMin[1], cursor_data.TexUvMax[1], 0xFF000000); // Black border - g.OverlayDrawList.AddImage(tex_id, pos, pos + size, cursor_data.TexUvMin[0], cursor_data.TexUvMax[0], 0xFFFFFFFF); // White fill - g.OverlayDrawList.PopTextureID(); - } - if (!g.OverlayDrawList.VtxBuffer.empty()) - AddDrawListToRenderList(g.RenderDrawLists[0], &g.OverlayDrawList); - - // Render - if (!g.RenderDrawLists[0].empty()) - { - ImDrawData data; - data.CmdLists = &g.RenderDrawLists[0][0]; - data.CmdListsCount = g.RenderDrawLists[0].Size; - data.TotalVtxCount = g.IO.MetricsRenderVertices; - data.TotalIdxCount = g.IO.MetricsRenderIndices; - g.IO.RenderDrawListsFn(&data); - } - } -} - -// Find the optional ## from which we stop displaying text. -static const char* FindTextDisplayEnd(const char* text, const char* text_end) -{ - const char* text_display_end = text; - if (!text_end) - text_end = (const char*)-1; - - ImGuiState& g = *GImGui; - if (g.DisableHideTextAfterDoubleHash > 0) - { - while (text_display_end < text_end && *text_display_end != '\0') - text_display_end++; - } - else - { - while (text_display_end < text_end && *text_display_end != '\0' && (text_display_end[0] != '#' || text_display_end[1] != '#')) - text_display_end++; - } - return text_display_end; -} - -// Pass text data straight to log (without being displayed) -void ImGui::LogText(const char* fmt, ...) -{ - ImGuiState& g = *GImGui; - if (!g.LogEnabled) - return; - - va_list args; - va_start(args, fmt); - if (g.LogFile) - { - vfprintf(g.LogFile, fmt, args); - } - else - { - g.LogClipboard->appendv(fmt, args); - } - va_end(args); -} - -// Internal version that takes a position to decide on newline placement and pad items according to their depth. -// We split text into individual lines to add current tree level padding -static void LogRenderedText(const ImVec2& ref_pos, const char* text, const char* text_end) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = ImGui::GetCurrentWindow(); - - if (!text_end) - text_end = FindTextDisplayEnd(text, text_end); - - const bool log_new_line = ref_pos.y > window->DC.LogLinePosY+1; - window->DC.LogLinePosY = ref_pos.y; - - const char* text_remaining = text; - if (g.LogStartDepth > window->DC.TreeDepth) // Re-adjust padding if we have popped out of our starting depth - g.LogStartDepth = window->DC.TreeDepth; - const int tree_depth = (window->DC.TreeDepth - g.LogStartDepth); - for (;;) - { - // Split the string. Each new line (after a '\n') is followed by spacing corresponding to the current depth of our log entry. - const char* line_end = text_remaining; - while (line_end < text_end) - if (*line_end == '\n') - break; - else - line_end++; - if (line_end >= text_end) - line_end = NULL; - - const bool is_first_line = (text == text_remaining); - bool is_last_line = false; - if (line_end == NULL) - { - is_last_line = true; - line_end = text_end; - } - if (line_end != NULL && !(is_last_line && (line_end - text_remaining)==0)) - { - const int char_count = (int)(line_end - text_remaining); - if (log_new_line || !is_first_line) - ImGui::LogText(IM_NEWLINE "%*s%.*s", tree_depth*4, "", char_count, text_remaining); - else - ImGui::LogText(" %.*s", char_count, text_remaining); - } - - if (is_last_line) - break; - text_remaining = line_end + 1; - } -} - -// Internal ImGui functions to render text -// RenderText***() functions calls ImDrawList::AddText() calls ImBitmapFont::RenderText() -void ImGui::RenderText(ImVec2 pos, const char* text, const char* text_end, bool hide_text_after_hash) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - // Hide anything after a '##' string - const char* text_display_end; - if (hide_text_after_hash) - { - text_display_end = FindTextDisplayEnd(text, text_end); - } - else - { - if (!text_end) - text_end = text + strlen(text); // FIXME-OPT - text_display_end = text_end; - } - - const int text_len = (int)(text_display_end - text); - if (text_len > 0) - { - // Render - window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_display_end); - - // Log as text - if (g.LogEnabled) - LogRenderedText(pos, text, text_display_end); - } -} - -void ImGui::RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - if (!text_end) - text_end = text + strlen(text); // FIXME-OPT - - const int text_len = (int)(text_end - text); - if (text_len > 0) - { - window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_end, wrap_width); - if (g.LogEnabled) - LogRenderedText(pos, text, text_end); - } -} - -void ImGui::RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, ImGuiAlign align, const ImVec2* clip_min, const ImVec2* clip_max) -{ - // Hide anything after a '##' string - const char* text_display_end = FindTextDisplayEnd(text, text_end); - const int text_len = (int)(text_display_end - text); - if (text_len == 0) - return; - - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - // Perform CPU side clipping for single clipped element to avoid using scissor state - ImVec2 pos = pos_min; - const ImVec2 text_size = text_size_if_known ? *text_size_if_known : ImGui::CalcTextSize(text, text_display_end, false, 0.0f); - - if (!clip_max) clip_max = &pos_max; - bool need_clipping = (pos.x + text_size.x >= clip_max->x) || (pos.y + text_size.y >= clip_max->y); - if (!clip_min) clip_min = &pos_min; else need_clipping |= (pos.x < clip_min->x) || (pos.y < clip_min->y); - - // Align - if (align & ImGuiAlign_Center) pos.x = ImMax(pos.x, (pos.x + pos_max.x - text_size.x) * 0.5f); - else if (align & ImGuiAlign_Right) pos.x = ImMax(pos.x, pos_max.x - text_size.x); - if (align & ImGuiAlign_VCenter) pos.y = ImMax(pos.y, (pos.y + pos_max.y - text_size.y) * 0.5f); - - // Render - if (need_clipping) - { - ImVec4 fine_clip_rect(clip_min->x, clip_min->y, clip_max->x, clip_max->y); - window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_display_end, 0.0f, &fine_clip_rect); - } - else - { - window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_display_end, 0.0f, NULL); - } - if (g.LogEnabled) - LogRenderedText(pos, text, text_display_end); -} - -// Render a rectangle shaped with optional rounding and borders -void ImGui::RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border, float rounding) -{ - ImGuiWindow* window = GetCurrentWindow(); - - window->DrawList->AddRectFilled(p_min, p_max, fill_col, rounding); - if (border && (window->Flags & ImGuiWindowFlags_ShowBorders)) - { - window->DrawList->AddRect(p_min+ImVec2(1,1), p_max, window->Color(ImGuiCol_BorderShadow), rounding); - window->DrawList->AddRect(p_min, p_max-ImVec2(1,1), window->Color(ImGuiCol_Border), rounding); - } -} - -// Render a triangle to denote expanded/collapsed state -void ImGui::RenderCollapseTriangle(ImVec2 p_min, bool opened, float scale, bool shadow) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - const float h = g.FontSize * 1.00f; - const float r = h * 0.40f * scale; - ImVec2 center = p_min + ImVec2(h*0.50f, h*0.50f*scale); - - ImVec2 a, b, c; - if (opened) - { - center.y -= r*0.25f; - a = center + ImVec2(0,1)*r; - b = center + ImVec2(-0.866f,-0.5f)*r; - c = center + ImVec2(0.866f,-0.5f)*r; - } - else - { - a = center + ImVec2(1,0)*r; - b = center + ImVec2(-0.500f,0.866f)*r; - c = center + ImVec2(-0.500f,-0.866f)*r; - } - - if (shadow && (window->Flags & ImGuiWindowFlags_ShowBorders) != 0) - window->DrawList->AddTriangleFilled(a+ImVec2(2,2), b+ImVec2(2,2), c+ImVec2(2,2), window->Color(ImGuiCol_BorderShadow)); - window->DrawList->AddTriangleFilled(a, b, c, window->Color(ImGuiCol_Text)); -} - -void ImGui::RenderCheckMark(ImVec2 pos, ImU32 col) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - ImVec2 a, b, c; - float start_x = (float)(int)(g.FontSize * 0.307f + 0.5f); - float rem_third = (float)(int)((g.FontSize - start_x) / 3.0f); - a.x = pos.x + 0.5f + start_x; - b.x = a.x + rem_third; - c.x = a.x + rem_third * 3.0f; - b.y = pos.y - 1.0f + (float)(int)(g.Font->Ascent * (g.FontSize / g.Font->FontSize) + 0.5f) + (float)(int)(g.Font->DisplayOffset.y); - a.y = b.y - rem_third; - c.y = b.y - rem_third * 2.0f; - - window->DrawList->PathLineTo(a); - window->DrawList->PathLineTo(b); - window->DrawList->PathLineTo(c); - window->DrawList->PathStroke(col, false); -} - -// Calculate text size. Text can be multi-line. Optionally ignore text after a ## marker. -// CalcTextSize("") should return ImVec2(0.0f, GImGui->FontSize) -ImVec2 ImGui::CalcTextSize(const char* text, const char* text_end, bool hide_text_after_double_hash, float wrap_width) -{ - ImGuiState& g = *GImGui; - - const char* text_display_end; - if (hide_text_after_double_hash) - text_display_end = FindTextDisplayEnd(text, text_end); // Hide anything after a '##' string - else - text_display_end = text_end; - - ImFont* font = g.Font; - const float font_size = g.FontSize; - ImVec2 text_size = font->CalcTextSizeA(font_size, FLT_MAX, wrap_width, text, text_display_end, NULL); - - // Cancel out character spacing for the last character of a line (it is baked into glyph->XAdvance field) - const float font_scale = font_size / font->FontSize; - const float character_spacing_x = 1.0f * font_scale; - if (text_size.x > 0.0f) - text_size.x -= character_spacing_x; - - return text_size; -} - -// Helper to calculate coarse clipping of large list of evenly sized items. -// NB: Prefer using the ImGuiListClipper higher-level helper if you can! -// If you are displaying thousands of items and you have a random access to the list, you can perform clipping yourself to save on CPU. -// { -// float item_height = ImGui::GetTextLineHeightWithSpacing(); -// int display_start, display_end; -// ImGui::CalcListClipping(count, item_height, &display_start, &display_end); // calculate how many to clip/display -// ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (display_start) * item_height); // advance cursor -// for (int i = display_start; i < display_end; i++) // display only visible items -// // TODO: display visible item -// ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (count - display_end) * item_height); // advance cursor -// } -void ImGui::CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - if (g.LogEnabled) - { - // If logging is active, do not perform any clipping - *out_items_display_start = 0; - *out_items_display_end = items_count; - return; - } - - const ImVec2 pos = window->DC.CursorPos; - int start = (int)((window->ClipRect.Min.y - pos.y) / items_height); - int end = (int)((window->ClipRect.Max.y - pos.y) / items_height); - start = ImClamp(start, 0, items_count); - end = ImClamp(end + 1, start, items_count); - *out_items_display_start = start; - *out_items_display_end = end; -} - -// Find window given position, search front-to-back -static ImGuiWindow* FindHoveredWindow(ImVec2 pos, bool excluding_childs) -{ - ImGuiState& g = *GImGui; - for (int i = g.Windows.Size-1; i >= 0; i--) - { - ImGuiWindow* window = g.Windows[i]; - if (!window->Active) - continue; - if (window->Flags & ImGuiWindowFlags_NoInputs) - continue; - if (excluding_childs && (window->Flags & ImGuiWindowFlags_ChildWindow) != 0) - continue; - - // Using the clipped AABB so a child window will typically be clipped by its parent. - ImRect bb(window->ClippedWindowRect.Min - g.Style.TouchExtraPadding, window->ClippedWindowRect.Max + g.Style.TouchExtraPadding); - if (bb.Contains(pos)) - return window; - } - return NULL; -} - -// Test if mouse cursor is hovering given rectangle -// NB- Rectangle is clipped by our current clip setting -// NB- Expand the rectangle to be generous on imprecise inputs systems (g.Style.TouchExtraPadding) -bool ImGui::IsMouseHoveringRect(const ImVec2& rect_min, const ImVec2& rect_max) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - // Clip - ImRect rect_clipped(rect_min, rect_max); - rect_clipped.Clip(window->ClipRect); - - // Expand for touch input - const ImRect rect_for_touch(rect_clipped.Min - g.Style.TouchExtraPadding, rect_clipped.Max + g.Style.TouchExtraPadding); - return rect_for_touch.Contains(g.IO.MousePos); -} - -bool ImGui::IsMouseHoveringWindow() -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - return g.HoveredWindow == window; -} - -bool ImGui::IsMouseHoveringAnyWindow() -{ - ImGuiState& g = *GImGui; - return g.HoveredWindow != NULL; -} - -bool ImGui::IsPosHoveringAnyWindow(const ImVec2& pos) -{ - return FindHoveredWindow(pos, false) != NULL; -} - -static bool IsKeyPressedMap(ImGuiKey key, bool repeat) -{ - const int key_index = GImGui->IO.KeyMap[key]; - return ImGui::IsKeyPressed(key_index, repeat); -} - -int ImGui::GetKeyIndex(ImGuiKey key) -{ - IM_ASSERT(key >= 0 && key < ImGuiKey_COUNT); - return GImGui->IO.KeyMap[key]; -} - -bool ImGui::IsKeyDown(int key_index) -{ - if (key_index < 0) return false; - IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(GImGui->IO.KeysDown)); - return GImGui->IO.KeysDown[key_index]; -} - -bool ImGui::IsKeyPressed(int key_index, bool repeat) -{ - ImGuiState& g = *GImGui; - if (key_index < 0) return false; - IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(g.IO.KeysDown)); - const float t = g.IO.KeysDownDuration[key_index]; - if (t == 0.0f) - return true; - - if (repeat && t > g.IO.KeyRepeatDelay) - { - float delay = g.IO.KeyRepeatDelay, rate = g.IO.KeyRepeatRate; - if ((fmodf(t - delay, rate) > rate*0.5f) != (fmodf(t - delay - g.IO.DeltaTime, rate) > rate*0.5f)) - return true; - } - return false; -} - -bool ImGui::IsKeyReleased(int key_index) -{ - ImGuiState& g = *GImGui; - if (key_index < 0) return false; - IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(g.IO.KeysDown)); - if (g.IO.KeysDownDurationPrev[key_index] >= 0.0f && !g.IO.KeysDown[key_index]) - return true; - return false; -} - -bool ImGui::IsMouseDown(int button) -{ - ImGuiState& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - return g.IO.MouseDown[button]; -} - -bool ImGui::IsMouseClicked(int button, bool repeat) -{ - ImGuiState& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - const float t = g.IO.MouseDownDuration[button]; - if (t == 0.0f) - return true; - - if (repeat && t > g.IO.KeyRepeatDelay) - { - float delay = g.IO.KeyRepeatDelay, rate = g.IO.KeyRepeatRate; - if ((fmodf(t - delay, rate) > rate*0.5f) != (fmodf(t - delay - g.IO.DeltaTime, rate) > rate*0.5f)) - return true; - } - - return false; -} - -bool ImGui::IsMouseReleased(int button) -{ - ImGuiState& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - return g.IO.MouseReleased[button]; -} - -bool ImGui::IsMouseDoubleClicked(int button) -{ - ImGuiState& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - return g.IO.MouseDoubleClicked[button]; -} - -bool ImGui::IsMouseDragging(int button, float lock_threshold) -{ - ImGuiState& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - if (!g.IO.MouseDown[button]) - return false; - if (lock_threshold < 0.0f) - lock_threshold = g.IO.MouseDragThreshold; - return g.IO.MouseDragMaxDistanceSqr[button] >= lock_threshold * lock_threshold; -} - -ImVec2 ImGui::GetMousePos() -{ - return GImGui->IO.MousePos; -} - -ImVec2 ImGui::GetMouseDragDelta(int button, float lock_threshold) -{ - ImGuiState& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - if (lock_threshold < 0.0f) - lock_threshold = g.IO.MouseDragThreshold; - if (g.IO.MouseDown[button]) - if (g.IO.MouseDragMaxDistanceSqr[button] >= lock_threshold * lock_threshold) - return g.IO.MousePos - g.IO.MouseClickedPos[button]; // Assume we can only get active with left-mouse button (at the moment). - return ImVec2(0.0f, 0.0f); -} - -void ImGui::ResetMouseDragDelta(int button) -{ - ImGuiState& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - // NB: We don't need to reset g.IO.MouseDragMaxDistanceSqr - g.IO.MouseClickedPos[button] = g.IO.MousePos; -} - -ImGuiMouseCursor ImGui::GetMouseCursor() -{ - return GImGui->MouseCursor; -} - -void ImGui::SetMouseCursor(ImGuiMouseCursor cursor_type) -{ - GImGui->MouseCursor = cursor_type; -} - -void ImGui::CaptureKeyboardFromApp() -{ - GImGui->CaptureKeyboardNextFrame = true; -} - -void ImGui::CaptureMouseFromApp() -{ - GImGui->CaptureMouseNextFrame = true; -} - -bool ImGui::IsItemHovered() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.LastItemHoveredAndUsable; -} - -bool ImGui::IsItemHoveredRect() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.LastItemHoveredRect; -} - -bool ImGui::IsItemActive() -{ - ImGuiState& g = *GImGui; - if (g.ActiveId) - { - ImGuiWindow* window = GetCurrentWindow(); - return g.ActiveId == window->DC.LastItemID; - } - return false; -} - -bool ImGui::IsAnyItemHovered() -{ - return GImGui->HoveredId != 0 || GImGui->HoveredIdPreviousFrame != 0; -} - -bool ImGui::IsAnyItemActive() -{ - return GImGui->ActiveId != 0; -} - -bool ImGui::IsItemVisible() -{ - ImGuiWindow* window = GetCurrentWindow(); - ImRect r(window->ClipRect); - return r.Overlaps(window->DC.LastItemRect); -} - -ImVec2 ImGui::GetItemRectMin() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.LastItemRect.Min; -} - -ImVec2 ImGui::GetItemRectMax() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.LastItemRect.Max; -} - -ImVec2 ImGui::GetItemRectSize() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.LastItemRect.GetSize(); -} - -ImVec2 ImGui::CalcItemRectClosestPoint(const ImVec2& pos, bool on_edge, float outward) -{ - ImGuiWindow* window = GetCurrentWindow(); - ImRect rect = window->DC.LastItemRect; - rect.Expand(outward); - return rect.GetClosestPoint(pos, on_edge); -} - -// Tooltip is stored and turned into a BeginTooltip()/EndTooltip() sequence at the end of the frame. Each call override previous value. -void ImGui::SetTooltipV(const char* fmt, va_list args) -{ - ImGuiState& g = *GImGui; - ImFormatStringV(g.Tooltip, IM_ARRAYSIZE(g.Tooltip), fmt, args); -} - -void ImGui::SetTooltip(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - SetTooltipV(fmt, args); - va_end(args); -} - -static ImRect GetVisibleRect() -{ - ImGuiState& g = *GImGui; - if (g.IO.DisplayVisibleMin.x != g.IO.DisplayVisibleMax.x && g.IO.DisplayVisibleMin.y != g.IO.DisplayVisibleMax.y) - return ImRect(g.IO.DisplayVisibleMin, g.IO.DisplayVisibleMax); - return ImRect(0.0f, 0.0f, g.IO.DisplaySize.x, g.IO.DisplaySize.y); -} - -void ImGui::BeginTooltip() -{ - ImGuiState& g = *GImGui; - ImGuiWindowFlags flags = ImGuiWindowFlags_Tooltip|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_AlwaysAutoResize; - ImGui::Begin("##Tooltip", NULL, ImVec2(0,0), g.Style.Colors[ImGuiCol_TooltipBg].w, flags); -} - -void ImGui::EndTooltip() -{ - IM_ASSERT(GetCurrentWindow()->Flags & ImGuiWindowFlags_Tooltip); - ImGui::End(); -} - -static bool IsPopupOpen(ImGuiID id) -{ - ImGuiState& g = *GImGui; - const bool opened = g.OpenedPopupStack.Size > g.CurrentPopupStack.Size && g.OpenedPopupStack[g.CurrentPopupStack.Size].PopupID == id; - return opened; -} - -// One open popup per level of the popup hierarchy (NB: when assigning we reset the Window member of ImGuiPopupRef to NULL) -void ImGui::OpenPopup(const char* str_id) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - ImGuiID id = window->GetID(str_id); - int current_stack_size = g.CurrentPopupStack.Size; - ImGuiPopupRef popup_ref = ImGuiPopupRef(id, window, window->GetID("##menus")); // Tagged as new ref because constructor sets Window to NULL (we are passing the ParentWindow info here) - if (g.OpenedPopupStack.Size < current_stack_size + 1) - g.OpenedPopupStack.push_back(popup_ref); - else if (g.OpenedPopupStack[current_stack_size].PopupID != id) - { - g.OpenedPopupStack.resize(current_stack_size+1); - g.OpenedPopupStack[current_stack_size] = popup_ref; - } -} - -static void CloseInactivePopups() -{ - ImGuiState& g = *GImGui; - if (g.OpenedPopupStack.empty()) - return; - - // When popups are stacked, clicking on a lower level popups puts focus back to it and close popups above it. - // Don't close our own child popup windows - int n = 0; - if (g.FocusedWindow) - { - for (n = 0; n < g.OpenedPopupStack.Size; n++) - { - ImGuiPopupRef& popup = g.OpenedPopupStack[n]; - if (!popup.Window) - continue; - IM_ASSERT((popup.Window->Flags & ImGuiWindowFlags_Popup) != 0); - if (popup.Window->Flags & ImGuiWindowFlags_ChildWindow) - continue; - - bool has_focus = false; - for (int m = n; m < g.OpenedPopupStack.Size && !has_focus; m++) - has_focus = (g.OpenedPopupStack[m].Window && g.OpenedPopupStack[m].Window->RootWindow == g.FocusedWindow->RootWindow); - if (!has_focus) - break; - } - } - if (n < g.OpenedPopupStack.Size) // This test is not required but it allows to set a useful breakpoint on the line below - g.OpenedPopupStack.resize(n); -} - -static ImGuiWindow* GetFrontMostModalRootWindow() -{ - ImGuiState& g = *GImGui; - if (!g.OpenedPopupStack.empty()) - if (ImGuiWindow* front_most_popup = g.OpenedPopupStack.back().Window) - if (front_most_popup->Flags & ImGuiWindowFlags_Modal) - return front_most_popup; - return NULL; -} - -static void ClosePopupToLevel(int remaining) -{ - ImGuiState& g = *GImGui; - if (remaining > 0) - ImGui::FocusWindow(g.OpenedPopupStack[remaining-1].Window); - else - ImGui::FocusWindow(g.OpenedPopupStack[0].ParentWindow); - g.OpenedPopupStack.resize(remaining); -} - -static void ClosePopup(ImGuiID id) -{ - if (!IsPopupOpen(id)) - return; - ImGuiState& g = *GImGui; - ClosePopupToLevel(g.OpenedPopupStack.Size - 1); -} - -// Close the popup we have begin-ed into. -void ImGui::CloseCurrentPopup() -{ - ImGuiState& g = *GImGui; - int popup_idx = g.CurrentPopupStack.Size - 1; - if (popup_idx < 0 || popup_idx > g.OpenedPopupStack.Size || g.CurrentPopupStack[popup_idx].PopupID != g.OpenedPopupStack[popup_idx].PopupID) - return; - while (popup_idx > 0 && g.OpenedPopupStack[popup_idx].Window && (g.OpenedPopupStack[popup_idx].Window->Flags & ImGuiWindowFlags_ChildMenu)) - popup_idx--; - ClosePopupToLevel(popup_idx); -} - -static void ClearSetNextWindowData() -{ - ImGuiState& g = *GImGui; - g.SetNextWindowPosCond = g.SetNextWindowSizeCond = g.SetNextWindowCollapsedCond = g.SetNextWindowFocus = 0; -} - -static bool BeginPopupEx(const char* str_id, ImGuiWindowFlags extra_flags) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - const ImGuiID id = window->GetID(str_id); - if (!IsPopupOpen(id)) - { - ClearSetNextWindowData(); // We behave like Begin() and need to consume those values - return false; - } - - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); - ImGuiWindowFlags flags = extra_flags|ImGuiWindowFlags_Popup|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_AlwaysAutoResize; - - char name[32]; - if (flags & ImGuiWindowFlags_ChildMenu) - ImFormatString(name, 20, "##menu_%d", g.CurrentPopupStack.Size); // Recycle windows based on depth - else - ImFormatString(name, 20, "##popup_%08x", id); // Not recycling, so we can close/open during the same frame - float alpha = 1.0f; - - bool opened = ImGui::Begin(name, NULL, ImVec2(0.0f, 0.0f), alpha, flags); - if (!(window->Flags & ImGuiWindowFlags_ShowBorders)) - g.CurrentWindow->Flags &= ~ImGuiWindowFlags_ShowBorders; - if (!opened) // opened can be 'false' when the popup is completely clipped (e.g. zero size display) - ImGui::EndPopup(); - - return opened; -} - -bool ImGui::BeginPopup(const char* str_id) -{ - return BeginPopupEx(str_id, ImGuiWindowFlags_ShowBorders); -} - -bool ImGui::BeginPopupModal(const char* name, bool* p_opened, ImGuiWindowFlags extra_flags) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - const ImGuiID id = window->GetID(name); - if (!IsPopupOpen(id)) - { - ClearSetNextWindowData(); // We behave like Begin() and need to consume those values - return false; - } - - ImGuiWindowFlags flags = extra_flags|ImGuiWindowFlags_Popup|ImGuiWindowFlags_Modal|ImGuiWindowFlags_NoCollapse|ImGuiWindowFlags_NoSavedSettings; - bool opened = ImGui::Begin(name, p_opened, ImVec2(0.0f, 0.0f), -1.0f, flags); - if (!opened || (p_opened && !*p_opened)) // Opened can be 'false' when the popup is completely clipped (e.g. zero size display) - { - ImGui::EndPopup(); - if (opened) - ClosePopup(id); - return false; - } - - return opened; -} - -void ImGui::EndPopup() -{ - ImGuiWindow* window = GetCurrentWindow(); - IM_ASSERT(window->Flags & ImGuiWindowFlags_Popup); - IM_ASSERT(GImGui->CurrentPopupStack.Size > 0); - ImGui::End(); - if (!(window->Flags & ImGuiWindowFlags_Modal)) - ImGui::PopStyleVar(); -} - -bool ImGui::BeginPopupContextItem(const char* str_id, int mouse_button) -{ - if (ImGui::IsItemHovered() && ImGui::IsMouseClicked(mouse_button)) - ImGui::OpenPopup(str_id); - return ImGui::BeginPopup(str_id); -} - -bool ImGui::BeginPopupContextWindow(bool also_over_items, const char* str_id, int mouse_button) -{ - if (!str_id) str_id = "window_context_menu"; - if (ImGui::IsMouseHoveringWindow() && ImGui::IsMouseClicked(mouse_button)) - if (also_over_items || !ImGui::IsAnyItemHovered()) - ImGui::OpenPopup(str_id); - return ImGui::BeginPopup(str_id); -} - -bool ImGui::BeginPopupContextVoid(const char* str_id, int mouse_button) -{ - if (!str_id) str_id = "void_context_menu"; - if (!ImGui::IsMouseHoveringAnyWindow() && ImGui::IsMouseClicked(mouse_button)) - ImGui::OpenPopup(str_id); - return ImGui::BeginPopup(str_id); -} - -bool ImGui::BeginChild(const char* str_id, const ImVec2& size_arg, bool border, ImGuiWindowFlags extra_flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - ImGuiWindowFlags flags = ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_ChildWindow; - - const ImVec2 content_avail = ImGui::GetContentRegionAvail(); - ImVec2 size = size_arg; - if (size.x <= 0.0f) - { - if (size.x == 0.0f) - flags |= ImGuiWindowFlags_ChildWindowAutoFitX; - size.x = ImMax(content_avail.x, 4.0f) - fabsf(size.x); // Arbitrary minimum zero-ish child size of 4.0f (0.0f causing too much issues) - } - if (size.y <= 0.0f) - { - if (size.y == 0.0f) - flags |= ImGuiWindowFlags_ChildWindowAutoFitY; - size.y = ImMax(content_avail.y, 4.0f) - fabsf(size.y); - } - if (border) - flags |= ImGuiWindowFlags_ShowBorders; - flags |= extra_flags; - - char title[256]; - ImFormatString(title, IM_ARRAYSIZE(title), "%s.%s", window->Name, str_id); - - const float alpha = 1.0f; - bool ret = ImGui::Begin(title, NULL, size, alpha, flags); - - if (!(window->Flags & ImGuiWindowFlags_ShowBorders)) - GetCurrentWindow()->Flags &= ~ImGuiWindowFlags_ShowBorders; - - return ret; -} - -bool ImGui::BeginChild(ImGuiID id, const ImVec2& size, bool border, ImGuiWindowFlags extra_flags) -{ - char str_id[32]; - ImFormatString(str_id, IM_ARRAYSIZE(str_id), "child_%08x", id); - bool ret = ImGui::BeginChild(str_id, size, border, extra_flags); - return ret; -} - -void ImGui::EndChild() -{ - ImGuiWindow* window = GetCurrentWindow(); - - IM_ASSERT(window->Flags & ImGuiWindowFlags_ChildWindow); - if ((window->Flags & ImGuiWindowFlags_ComboBox) || window->BeginCount > 1) - { - ImGui::End(); - } - else - { - // When using auto-filling child window, we don't provide full width/height to ItemSize so that it doesn't feed back into automatic size-fitting. - ImGuiState& g = *GImGui; - ImVec2 sz = ImGui::GetWindowSize(); - if (window->Flags & ImGuiWindowFlags_ChildWindowAutoFitX) // Arbitrary minimum zeroish child size of 4.0f - sz.x = ImMax(4.0f, sz.x - g.Style.WindowPadding.x); - if (window->Flags & ImGuiWindowFlags_ChildWindowAutoFitY) - sz.y = ImMax(4.0f, sz.y - g.Style.WindowPadding.y); - - ImGui::End(); - - window = GetCurrentWindow(); - ImRect bb(window->DC.CursorPos, window->DC.CursorPos + sz); - ItemSize(sz); - ItemAdd(bb, NULL); - } -} - -// Helper to create a child window / scrolling region that looks like a normal widget frame. -bool ImGui::BeginChildFrame(ImGuiID id, const ImVec2& size) -{ - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - ImGui::PushStyleColor(ImGuiCol_ChildWindowBg, style.Colors[ImGuiCol_FrameBg]); - ImGui::PushStyleVar(ImGuiStyleVar_ChildWindowRounding, style.FrameRounding); - return ImGui::BeginChild(id, size); -} - -void ImGui::EndChildFrame() -{ - ImGui::EndChild(); - ImGui::PopStyleVar(); - ImGui::PopStyleColor(); -} - -// Save and compare stack sizes on Begin()/End() to detect usage errors -static void CheckStacksSize(ImGuiWindow* window, bool write) -{ - // NOT checking: DC.ItemWidth, DC.AllowKeyboardFocus, DC.ButtonRepeat, DC.TextWrapPos (per window) to allow user to conveniently push once and not pop (they are cleared on Begin) - ImGuiState& g = *GImGui; - int* p_backup = &window->DC.StackSizesBackup[0]; - { int current = window->IDStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopID() - { int current = window->DC.GroupStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot EndGroup() - { int current = g.CurrentPopupStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot EndPopup()/EndMenu() - { int current = g.ColorModifiers.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopStyleColor() - { int current = g.StyleModifiers.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopStyleVar() - { int current = g.FontStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopFont() - IM_ASSERT(p_backup == window->DC.StackSizesBackup + IM_ARRAYSIZE(window->DC.StackSizesBackup)); -} - -static ImVec2 FindBestPopupWindowPos(const ImVec2& base_pos, const ImVec2& size, ImGuiWindowFlags flags, int* last_dir, const ImRect& r_inner) -{ - const ImGuiStyle& style = GImGui->Style; - - // Clamp into visible area while not overlapping the cursor - ImRect r_outer(GetVisibleRect()); - r_outer.Reduce(style.DisplaySafeAreaPadding); - ImVec2 base_pos_clamped = ImClamp(base_pos, r_outer.Min, r_outer.Max - size); - - for (int n = (*last_dir != -1) ? -1 : 0; n < 4; n++) // Right, down, up, left. Favor last used direction. - { - const int dir = (n == -1) ? *last_dir : n; - ImRect rect(dir == 0 ? r_inner.Max.x : r_outer.Min.x, dir == 1 ? r_inner.Max.y : r_outer.Min.y, dir == 3 ? r_inner.Min.x : r_outer.Max.x, dir == 2 ? r_inner.Min.y : r_outer.Max.y); - if (rect.GetWidth() < size.x || rect.GetHeight() < size.y) - continue; - *last_dir = dir; - return ImVec2(dir == 0 ? r_inner.Max.x : dir == 3 ? r_inner.Min.x - size.x : base_pos_clamped.x, dir == 1 ? r_inner.Max.y : dir == 2 ? r_inner.Min.y - size.y : base_pos_clamped.y); - } - - // Fallback - *last_dir = -1; - if (flags & ImGuiWindowFlags_Tooltip) // For tooltip we prefer avoiding the cursor at all cost even if it means that part of the tooltip won't be visible. - return base_pos + ImVec2(2,2); - - // Otherwise try to keep within display - ImVec2 pos = base_pos; - pos.x = ImMax(ImMin(pos.x + size.x, r_outer.Max.x) - size.x, r_outer.Min.x); - pos.y = ImMax(ImMin(pos.y + size.y, r_outer.Max.y) - size.y, r_outer.Min.y); - return pos; -} - -static ImGuiWindow* FindWindowByName(const char* name) -{ - // FIXME-OPT: Store sorted hashes -> pointers. - ImGuiState& g = *GImGui; - ImGuiID id = ImHash(name, 0); - for (int i = 0; i < g.Windows.Size; i++) - if (g.Windows[i]->ID == id) - return g.Windows[i]; - return NULL; -} - -static ImGuiWindow* CreateNewWindow(const char* name, ImVec2 size, ImGuiWindowFlags flags) -{ - ImGuiState& g = *GImGui; - - // Create window the first time - ImGuiWindow* window = (ImGuiWindow*)ImGui::MemAlloc(sizeof(ImGuiWindow)); - new(window) ImGuiWindow(name); - window->Flags = flags; - - if (flags & ImGuiWindowFlags_NoSavedSettings) - { - // User can disable loading and saving of settings. Tooltip and child windows also don't store settings. - window->Size = window->SizeFull = size; - } - else - { - // Retrieve settings from .ini file - // Use SetWindowPos() or SetNextWindowPos() with the appropriate condition flag to change the initial position of a window. - window->PosFloat = ImVec2(60, 60); - window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); - - ImGuiIniData* settings = FindWindowSettings(name); - if (!settings) - { - settings = AddWindowSettings(name); - } - else - { - window->SetWindowPosAllowFlags &= ~ImGuiSetCond_FirstUseEver; - window->SetWindowSizeAllowFlags &= ~ImGuiSetCond_FirstUseEver; - window->SetWindowCollapsedAllowFlags &= ~ImGuiSetCond_FirstUseEver; - } - - if (settings->Pos.x != FLT_MAX) - { - window->PosFloat = settings->Pos; - window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); - window->Collapsed = settings->Collapsed; - } - - if (ImLengthSqr(settings->Size) > 0.00001f && !(flags & ImGuiWindowFlags_NoResize)) - size = settings->Size; - window->Size = window->SizeFull = size; - } - - if ((flags & ImGuiWindowFlags_AlwaysAutoResize) != 0) - { - window->AutoFitFramesX = window->AutoFitFramesY = 2; - window->AutoFitOnlyGrows = false; - } - else - { - if (window->Size.x <= 0.0f) - window->AutoFitFramesX = 2; - if (window->Size.y <= 0.0f) - window->AutoFitFramesY = 2; - window->AutoFitOnlyGrows = (window->AutoFitFramesX > 0) || (window->AutoFitFramesY > 0); - } - - g.Windows.push_back(window); - return window; -} - -// Push a new ImGui window to add widgets to. -// - A default window called "Debug" is automatically stacked at the beginning of every frame so you can use widgets without explicitly calling a Begin/End pair. -// - Begin/End can be called multiple times during the frame with the same window name to append content. -// - 'size_on_first_use' for a regular window denote the initial size for first-time creation (no saved data) and isn't that useful. Use SetNextWindowSize() prior to calling Begin() for more flexible window manipulation. -// - The window name is used as a unique identifier to preserve window information across frames (and save rudimentary information to the .ini file). -// You can use the "##" or "###" markers to use the same label with different id, or same id with different label. See documentation at the top of this file. -// - Return false when window is collapsed, so you can early out in your code. You always need to call ImGui::End() even if false is returned. -// - Passing 'bool* p_opened' displays a Close button on the upper-right corner of the window, the pointed value will be set to false when the button is pressed. -// - Passing non-zero 'size' is roughly equivalent to calling SetNextWindowSize(size, ImGuiSetCond_FirstUseEver) prior to calling Begin(). -bool ImGui::Begin(const char* name, bool* p_opened, ImGuiWindowFlags flags) -{ - return ImGui::Begin(name, p_opened, ImVec2(0.f, 0.f), -1.0f, flags); -} - -bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_use, float bg_alpha, ImGuiWindowFlags flags) -{ - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - IM_ASSERT(g.Initialized); // Forgot to call ImGui::NewFrame() - IM_ASSERT(name != NULL); // Must pass a name - - if (flags & ImGuiWindowFlags_NoInputs) - flags |= ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize; - - // Find or create - bool window_is_new = false; - ImGuiWindow* window = FindWindowByName(name); - if (!window) - { - window = CreateNewWindow(name, size_on_first_use, flags); - window_is_new = true; - } - window->Flags = (ImGuiWindowFlags)flags; - - // Add to stack - ImGuiWindow* parent_window = !g.CurrentWindowStack.empty() ? g.CurrentWindowStack.back() : NULL; - g.CurrentWindowStack.push_back(window); - SetCurrentWindow(window); - CheckStacksSize(window, true); - IM_ASSERT(parent_window != NULL || !(flags & ImGuiWindowFlags_ChildWindow)); - - const int current_frame = ImGui::GetFrameCount(); - bool window_was_visible = (window->LastFrameDrawn == current_frame - 1); // Not using !WasActive because the implicit "Debug" window would always toggle off->on - if (flags & ImGuiWindowFlags_Popup) - { - ImGuiPopupRef& popup_ref = g.OpenedPopupStack[g.CurrentPopupStack.Size]; - window_was_visible &= (window->PopupID == popup_ref.PopupID); - window_was_visible &= (window == popup_ref.Window); - popup_ref.Window = window; - g.CurrentPopupStack.push_back(popup_ref); - window->PopupID = popup_ref.PopupID; - } - - // Process SetNextWindow***() calls - bool window_pos_set_by_api = false, window_size_set_by_api = false; - if (g.SetNextWindowPosCond) - { - const ImVec2 backup_cursor_pos = window->DC.CursorPos; // FIXME: not sure of the exact reason of this anymore :( need to look into that. - if (!window_was_visible) window->SetWindowPosAllowFlags |= ImGuiSetCond_Appearing; - window_pos_set_by_api = (window->SetWindowPosAllowFlags & g.SetNextWindowPosCond) != 0; - if (window_pos_set_by_api && ImLengthSqr(g.SetNextWindowPosVal - ImVec2(-FLT_MAX,-FLT_MAX)) < 0.001f) - { - window->SetWindowPosCenterWanted = true; // May be processed on the next frame if this is our first frame and we are measuring size - window->SetWindowPosAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); - } - else - { - ImGui::SetWindowPos(g.SetNextWindowPosVal, g.SetNextWindowPosCond); - } - window->DC.CursorPos = backup_cursor_pos; - g.SetNextWindowPosCond = 0; - } - if (g.SetNextWindowSizeCond) - { - if (!window_was_visible) window->SetWindowSizeAllowFlags |= ImGuiSetCond_Appearing; - window_size_set_by_api = (window->SetWindowSizeAllowFlags & g.SetNextWindowSizeCond) != 0; - ImGui::SetWindowSize(g.SetNextWindowSizeVal, g.SetNextWindowSizeCond); - g.SetNextWindowSizeCond = 0; - } - if (g.SetNextWindowCollapsedCond) - { - if (!window_was_visible) window->SetWindowCollapsedAllowFlags |= ImGuiSetCond_Appearing; - ImGui::SetWindowCollapsed(g.SetNextWindowCollapsedVal, g.SetNextWindowCollapsedCond); - g.SetNextWindowCollapsedCond = 0; - } - if (g.SetNextWindowFocus) - { - ImGui::SetWindowFocus(); - g.SetNextWindowFocus = false; - } - - // Update known root window (if we are a child window, otherwise window == window->RootWindow) - int root_idx, root_non_popup_idx; - for (root_idx = g.CurrentWindowStack.Size - 1; root_idx > 0; root_idx--) - if (!(g.CurrentWindowStack[root_idx]->Flags & ImGuiWindowFlags_ChildWindow)) - break; - for (root_non_popup_idx = root_idx; root_non_popup_idx > 0; root_non_popup_idx--) - if (!(g.CurrentWindowStack[root_non_popup_idx]->Flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup))) - break; - window->RootWindow = g.CurrentWindowStack[root_idx]; - window->RootNonPopupWindow = g.CurrentWindowStack[root_non_popup_idx]; // This is merely for displaying the TitleBgActive color. - - // Default alpha - if (bg_alpha < 0.0f) - bg_alpha = style.WindowFillAlphaDefault; - - // When reusing window again multiple times a frame, just append content (don't need to setup again) - const bool first_begin_of_the_frame = (window->LastFrameDrawn != current_frame); - if (first_begin_of_the_frame) - { - window->Active = true; - window->BeginCount = 0; - window->DrawList->Clear(); - window->ClipRect = ImVec4(-FLT_MAX,-FLT_MAX,+FLT_MAX,+FLT_MAX); - window->LastFrameDrawn = current_frame; - window->IDStack.resize(1); - - // Setup texture, outer clipping rectangle - window->DrawList->PushTextureID(g.Font->ContainerAtlas->TexID); - if ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & (ImGuiWindowFlags_ComboBox|ImGuiWindowFlags_Popup))) - PushClipRect(parent_window->ClipRect); - else - PushClipRect(GetVisibleRect()); - - // New windows appears in front - if (!window_was_visible) - { - window->AutoPosLastDirection = -1; - - if (!(flags & (ImGuiWindowFlags_ChildWindow|ImGuiWindowFlags_Tooltip)) || (flags & ImGuiWindowFlags_Popup)) - FocusWindow(window); - - // Popup first latch mouse position, will position itself when it appears next frame - if ((flags & ImGuiWindowFlags_Popup) != 0 && !window_pos_set_by_api) - window->PosFloat = g.IO.MousePos; - } - - // Collapse window by double-clicking on title bar - // At this point we don't have a clipping rectangle setup yet, so we can use the title bar area for hit detection and drawing - if (!(flags & ImGuiWindowFlags_NoTitleBar) && !(flags & ImGuiWindowFlags_NoCollapse)) - { - ImRect title_bar_rect = window->TitleBarRect(); - if (g.HoveredWindow == window && IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max) && g.IO.MouseDoubleClicked[0]) - { - window->Collapsed = !window->Collapsed; - if (!(flags & ImGuiWindowFlags_NoSavedSettings)) - MarkSettingsDirty(); - FocusWindow(window); - } - } - else - { - window->Collapsed = false; - } - - const bool window_appearing_after_being_hidden = (window->HiddenFrames == 1); - if (window->HiddenFrames > 0) - window->HiddenFrames--; - - // SIZE - - // Save contents size from last frame for auto-fitting - window->SizeContents = window_is_new ? ImVec2(0.0f, 0.0f) : window->DC.CursorMaxPos - window->Pos; - window->SizeContents.y += window->ScrollY; - - // Hide popup/tooltip window when first appearing while we measure size (because we recycle them) - if ((flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_Tooltip)) != 0 && !window_was_visible) - { - window->HiddenFrames = 1; - if (flags & ImGuiWindowFlags_AlwaysAutoResize) - { - if (!window_size_set_by_api) - window->Size = window->SizeFull = ImVec2(0.f, 0.f); - window->SizeContents = ImVec2(0.f, 0.f); - } - } - - // Lock window padding so that altering the ShowBorders flag for childs doesn't have side-effects. - window->WindowPadding = ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & (ImGuiWindowFlags_ShowBorders | ImGuiWindowFlags_ComboBox | ImGuiWindowFlags_Popup))) ? ImVec2(0,0) : style.WindowPadding; - - // Calculate auto-fit size - ImVec2 size_auto_fit; - if ((flags & ImGuiWindowFlags_Tooltip) != 0) - { - // Tooltip always resize. We keep the spacing symmetric on both axises for aesthetic purpose. - size_auto_fit = window->SizeContents + window->WindowPadding - ImVec2(0.0f, style.ItemSpacing.y); - } - else - { - size_auto_fit = ImClamp(window->SizeContents + window->WindowPadding, style.WindowMinSize, ImMax(style.WindowMinSize, g.IO.DisplaySize - window->WindowPadding)); - if (size_auto_fit.y < window->SizeContents.y && !(flags & ImGuiWindowFlags_NoScrollbar)) - size_auto_fit.x += style.ScrollbarWidth; - size_auto_fit.y = ImMax(size_auto_fit.y - style.ItemSpacing.y, 0.0f); - } - - // Handle automatic resize - if (window->Collapsed) - { - // We still process initial auto-fit on collapsed windows to get a window width, - // But otherwise we don't honor ImGuiWindowFlags_AlwaysAutoResize when collapsed. - if (window->AutoFitFramesX > 0) - window->SizeFull.x = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.x, size_auto_fit.x) : size_auto_fit.x; - if (window->AutoFitFramesY > 0) - window->SizeFull.y = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.y, size_auto_fit.y) : size_auto_fit.y; - window->Size = window->TitleBarRect().GetSize(); - } - else - { - if ((flags & ImGuiWindowFlags_AlwaysAutoResize) && !window_size_set_by_api) - { - window->SizeFull = size_auto_fit; - } - else if ((window->AutoFitFramesX > 0 || window->AutoFitFramesY > 0) && !window_size_set_by_api) - { - // Auto-fit only grows during the first few frames - if (window->AutoFitFramesX > 0) - window->SizeFull.x = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.x, size_auto_fit.x) : size_auto_fit.x; - if (window->AutoFitFramesY > 0) - window->SizeFull.y = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.y, size_auto_fit.y) : size_auto_fit.y; - if (!(flags & ImGuiWindowFlags_NoSavedSettings)) - MarkSettingsDirty(); - } - window->Size = window->SizeFull; - } - - // Minimum window size - if (!(flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_AlwaysAutoResize))) - { - window->SizeFull = ImMax(window->SizeFull, style.WindowMinSize); - if (!window->Collapsed) - window->Size = window->SizeFull; - } - - // POSITION - - // Position child window - if (flags & ImGuiWindowFlags_ChildWindow) - parent_window->DC.ChildWindows.push_back(window); - if ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Popup)) - { - window->Pos = window->PosFloat = parent_window->DC.CursorPos; - window->Size = window->SizeFull = size_on_first_use; // NB: argument name 'size_on_first_use' misleading here, it's really just 'size' as provided by user. - } - - bool window_pos_center = false; - window_pos_center |= (window->SetWindowPosCenterWanted && window->HiddenFrames == 0); - window_pos_center |= ((flags & ImGuiWindowFlags_Modal) && !window_pos_set_by_api && window_appearing_after_being_hidden); - if (window_pos_center) - { - // Center (any sort of window) - ImRect fullscreen_rect(GetVisibleRect()); - SetWindowPos(ImMax(style.DisplaySafeAreaPadding, fullscreen_rect.GetCenter() - window->SizeFull * 0.5f)); - } - else if (flags & ImGuiWindowFlags_ChildMenu) - { - IM_ASSERT(window_pos_set_by_api); - ImRect rect_to_avoid; - if (parent_window->DC.MenuBarAppending) - rect_to_avoid = ImRect(-FLT_MAX, parent_window->Pos.y + parent_window->TitleBarHeight(), FLT_MAX, parent_window->Pos.y + parent_window->TitleBarHeight() + parent_window->MenuBarHeight()); - else - rect_to_avoid = ImRect(parent_window->Pos.x + style.ItemSpacing.x, -FLT_MAX, parent_window->Pos.x + parent_window->Size.x - style.ItemSpacing.x - parent_window->ScrollbarWidth(), FLT_MAX); // We want some overlap to convey the relative depth of each popup (here hard-coded to 4) - window->PosFloat = FindBestPopupWindowPos(window->PosFloat, window->Size, flags, &window->AutoPosLastDirection, rect_to_avoid); - } - else if ((flags & ImGuiWindowFlags_Popup) != 0 && !window_pos_set_by_api && window_appearing_after_being_hidden) - { - ImRect rect_to_avoid(window->PosFloat.x - 1, window->PosFloat.y - 1, window->PosFloat.x + 1, window->PosFloat.y + 1); - window->PosFloat = FindBestPopupWindowPos(window->PosFloat, window->Size, flags, &window->AutoPosLastDirection, rect_to_avoid); - } - - // Position tooltip (always follows mouse) - if ((flags & ImGuiWindowFlags_Tooltip) != 0 && !window_pos_set_by_api) - { - ImRect rect_to_avoid(g.IO.MousePos.x - 16, g.IO.MousePos.y - 8, g.IO.MousePos.x + 24, g.IO.MousePos.y + 24); // FIXME: Completely hard-coded. Perhaps center on cursor hit-point instead? - window->PosFloat = FindBestPopupWindowPos(g.IO.MousePos, window->Size, flags, &window->AutoPosLastDirection, rect_to_avoid); - } - - // User moving window (at the beginning of the frame to avoid input lag or sheering). Only valid for root windows. - KeepAliveID(window->MoveID); - if (g.ActiveId == window->MoveID) - { - if (g.IO.MouseDown[0]) - { - if (!(flags & ImGuiWindowFlags_NoMove)) - { - window->PosFloat += g.IO.MouseDelta; - if (!(flags & ImGuiWindowFlags_NoSavedSettings)) - MarkSettingsDirty(); - } - IM_ASSERT(g.MovedWindow != NULL); - FocusWindow(g.MovedWindow); - } - else - { - SetActiveID(0); - g.MovedWindow = NULL; // Not strictly necessary but doing it for sanity. - } - } - - // Clamp position so it stays visible - if (!(flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Tooltip)) - { - if (!window_pos_set_by_api && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0 && g.IO.DisplaySize.x > 0.0f && g.IO.DisplaySize.y > 0.0f) // Ignore zero-sized display explicitly to avoid losing positions if a window manager reports zero-sized window when initializing or minimizing. - { - ImVec2 padding = ImMax(style.DisplayWindowPadding, style.DisplaySafeAreaPadding); - window->PosFloat = ImMax(window->PosFloat + window->Size, padding) - window->Size; - window->PosFloat = ImMin(window->PosFloat, g.IO.DisplaySize - padding); - } - } - window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); - - // Default item width. Make it proportional to window size if window manually resizes - if (window->Size.x > 0.0f && !(flags & ImGuiWindowFlags_Tooltip) && !(flags & ImGuiWindowFlags_AlwaysAutoResize)) - window->ItemWidthDefault = (float)(int)(window->Size.x * 0.65f); - else - window->ItemWidthDefault = (float)(int)(g.FontSize * 16.0f); - - // Prepare for focus requests - window->FocusIdxAllRequestCurrent = (window->FocusIdxAllRequestNext == IM_INT_MAX || window->FocusIdxAllCounter == -1) ? IM_INT_MAX : (window->FocusIdxAllRequestNext + (window->FocusIdxAllCounter+1)) % (window->FocusIdxAllCounter+1); - window->FocusIdxTabRequestCurrent = (window->FocusIdxTabRequestNext == IM_INT_MAX || window->FocusIdxTabCounter == -1) ? IM_INT_MAX : (window->FocusIdxTabRequestNext + (window->FocusIdxTabCounter+1)) % (window->FocusIdxTabCounter+1); - window->FocusIdxAllCounter = window->FocusIdxTabCounter = -1; - window->FocusIdxAllRequestNext = window->FocusIdxTabRequestNext = IM_INT_MAX; - - // Apply scrolling - if (window->ScrollTargetRelY < FLT_MAX) - { - float center_ratio_y = window->ScrollTargetCenterRatioY; - window->ScrollY = window->ScrollTargetRelY - ((1.0f - center_ratio_y) * window->TitleBarHeight()) - (center_ratio_y * window->SizeFull.y); - window->ScrollTargetRelY = FLT_MAX; - } - window->ScrollY = ImMax(window->ScrollY, 0.0f); - if (!window->Collapsed && !window->SkipItems) - window->ScrollY = ImMin(window->ScrollY, ImMax(0.0f, window->SizeContents.y - window->SizeFull.y)); - - // Modal window darkens what is behind them - if ((flags & ImGuiWindowFlags_Modal) != 0 && window == GetFrontMostModalRootWindow()) - { - ImRect fullscreen_rect = GetVisibleRect(); - window->DrawList->AddRectFilled(fullscreen_rect.Min, fullscreen_rect.Max, window->Color(ImGuiCol_ModalWindowDarkening, g.ModalWindowDarkeningRatio)); - } - - // Draw window + handle manual resize - ImRect title_bar_rect = window->TitleBarRect(); - const float window_rounding = (flags & ImGuiWindowFlags_ChildWindow) ? style.ChildWindowRounding : style.WindowRounding; - if (window->Collapsed) - { - // Draw title bar only - window->DrawList->AddRectFilled(title_bar_rect.GetTL(), title_bar_rect.GetBR(), window->Color(ImGuiCol_TitleBgCollapsed), window_rounding); - if (flags & ImGuiWindowFlags_ShowBorders) - { - window->DrawList->AddRect(title_bar_rect.GetTL()+ImVec2(1,1), title_bar_rect.GetBR()+ImVec2(1,1), window->Color(ImGuiCol_BorderShadow), window_rounding); - window->DrawList->AddRect(title_bar_rect.GetTL(), title_bar_rect.GetBR(), window->Color(ImGuiCol_Border), window_rounding); - } - } - else - { - ImU32 resize_col = 0; - const float resize_corner_size = ImMax(g.FontSize * 1.35f, window_rounding + 1.0f + g.FontSize * 0.2f); - if (!(flags & ImGuiWindowFlags_AlwaysAutoResize) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0 && !(flags & ImGuiWindowFlags_NoResize)) - { - // Manual resize - const ImVec2 br = window->Rect().GetBR(); - const ImRect resize_rect(br - ImVec2(resize_corner_size * 0.75f, resize_corner_size * 0.75f), br); - const ImGuiID resize_id = window->GetID("#RESIZE"); - bool hovered, held; - ButtonBehavior(resize_rect, resize_id, &hovered, &held, true, ImGuiButtonFlags_FlattenChilds); - resize_col = window->Color(held ? ImGuiCol_ResizeGripActive : hovered ? ImGuiCol_ResizeGripHovered : ImGuiCol_ResizeGrip); - - if (hovered || held) - g.MouseCursor = ImGuiMouseCursor_ResizeNWSE; - - if (g.HoveredWindow == window && held && g.IO.MouseDoubleClicked[0]) - { - // Manual auto-fit when double-clicking - window->SizeFull = size_auto_fit; - if (!(flags & ImGuiWindowFlags_NoSavedSettings)) - MarkSettingsDirty(); - SetActiveID(0); - } - else if (held) - { - window->SizeFull = ImMax(window->SizeFull + g.IO.MouseDelta, style.WindowMinSize); - if (!(flags & ImGuiWindowFlags_NoSavedSettings)) - MarkSettingsDirty(); - } - - window->Size = window->SizeFull; - title_bar_rect = window->TitleBarRect(); - } - - // Scrollbar - window->ScrollbarY = (window->SizeContents.y > window->Size.y + style.ItemSpacing.y) && !(flags & ImGuiWindowFlags_NoScrollbar); - - // Window background - if (bg_alpha > 0.0f) - { - if ((flags & ImGuiWindowFlags_ComboBox) != 0) - window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_ComboBg, bg_alpha), window_rounding); - else if ((flags & ImGuiWindowFlags_Tooltip) != 0) - window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_TooltipBg, bg_alpha), window_rounding); - else if ((flags & ImGuiWindowFlags_Popup) != 0) - window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_WindowBg, bg_alpha), window_rounding); - else if ((flags & ImGuiWindowFlags_ChildWindow) != 0) - window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size-ImVec2(window->ScrollbarWidth(),0.0f), window->Color(ImGuiCol_ChildWindowBg, bg_alpha), window_rounding, window->ScrollbarY ? (1|8) : (0xF)); - else - window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_WindowBg, bg_alpha), window_rounding); - } - - // Title bar - if (!(flags & ImGuiWindowFlags_NoTitleBar)) - window->DrawList->AddRectFilled(title_bar_rect.GetTL(), title_bar_rect.GetBR(), window->Color((g.FocusedWindow && window->RootNonPopupWindow == g.FocusedWindow->RootNonPopupWindow) ? ImGuiCol_TitleBgActive : ImGuiCol_TitleBg), window_rounding, 1|2); - - // Menu bar - if (flags & ImGuiWindowFlags_MenuBar) - { - ImRect menu_bar_rect = window->MenuBarRect(); - window->DrawList->AddRectFilled(menu_bar_rect.GetTL(), menu_bar_rect.GetBR(), window->Color(ImGuiCol_MenuBarBg), (flags & ImGuiWindowFlags_NoTitleBar) ? window_rounding : 0.0f, 1|2); - } - - // Borders - if (flags & ImGuiWindowFlags_ShowBorders) - { - window->DrawList->AddRect(window->Pos+ImVec2(1,1), window->Pos+window->Size+ImVec2(1,1), window->Color(ImGuiCol_BorderShadow), window_rounding); - window->DrawList->AddRect(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_Border), window_rounding); - if (!(flags & ImGuiWindowFlags_NoTitleBar)) - window->DrawList->AddLine(title_bar_rect.GetBL(), title_bar_rect.GetBR(), window->Color(ImGuiCol_Border)); - } - - // Scrollbar - if (window->ScrollbarY) - Scrollbar(window); - - // Render resize grip - // (after the input handling so we don't have a frame of latency) - if (!(flags & ImGuiWindowFlags_NoResize)) - { - const ImVec2 br = window->Rect().GetBR(); - window->DrawList->PathLineTo(br + ImVec2(-resize_corner_size, 0.0f)); - window->DrawList->PathLineTo(br + ImVec2(0.0f, -resize_corner_size)); - window->DrawList->PathArcToFast(ImVec2(br.x - window_rounding, br.y - window_rounding), window_rounding, 0, 3); - window->DrawList->PathFill(resize_col); - } - } - - // Setup drawing context - window->DC.ColumnsStartX = window->WindowPadding.x; - window->DC.ColumnsOffsetX = 0.0f; - window->DC.CursorStartPos = window->Pos + ImVec2(window->DC.ColumnsStartX + window->DC.ColumnsOffsetX, window->TitleBarHeight() + window->MenuBarHeight() + window->WindowPadding.y) - ImVec2(0.0f, window->ScrollY); - window->DC.CursorPos = window->DC.CursorStartPos; - window->DC.CursorPosPrevLine = window->DC.CursorPos; - window->DC.CursorMaxPos = window->DC.CursorStartPos; - window->DC.CurrentLineHeight = window->DC.PrevLineHeight = 0.0f; - window->DC.CurrentLineTextBaseOffset = window->DC.PrevLineTextBaseOffset = 0.0f; - window->DC.MenuBarAppending = false; - window->DC.MenuBarOffsetX = ImMax(window->DC.ColumnsStartX, style.ItemSpacing.x); - window->DC.LogLinePosY = window->DC.CursorPos.y - 9999.0f; - window->DC.ChildWindows.resize(0); - window->DC.LayoutType = ImGuiLayoutType_Vertical; - window->DC.ItemWidth = window->ItemWidthDefault; - window->DC.ItemWidthStack.resize(0); - window->DC.ButtonRepeat = false; - window->DC.ButtonRepeatStack.resize(0); - window->DC.AllowKeyboardFocus = true; - window->DC.AllowKeyboardFocusStack.resize(0); - window->DC.TextWrapPos = -1.0f; // disabled - window->DC.TextWrapPosStack.resize(0); - window->DC.ColorEditMode = ImGuiColorEditMode_UserSelect; - window->DC.ColumnsCurrent = 0; - window->DC.ColumnsCount = 1; - window->DC.ColumnsStartPos = window->DC.CursorPos; - window->DC.ColumnsCellMinY = window->DC.ColumnsCellMaxY = window->DC.ColumnsStartPos.y; - window->DC.TreeDepth = 0; - window->DC.StateStorage = &window->StateStorage; - window->DC.GroupStack.resize(0); - window->MenuColumns.Update(3, style.ItemSpacing.x, !window_was_visible); - - if (window->AutoFitFramesX > 0) - window->AutoFitFramesX--; - if (window->AutoFitFramesY > 0) - window->AutoFitFramesY--; - - // Title bar - if (!(flags & ImGuiWindowFlags_NoTitleBar)) - { - if (p_opened != NULL) - CloseWindowButton(p_opened); - - const ImVec2 text_size = CalcTextSize(name, NULL, true); - if (!(flags & ImGuiWindowFlags_NoCollapse)) - RenderCollapseTriangle(window->Pos + style.FramePadding, !window->Collapsed, 1.0f, true); - - ImVec2 text_min = window->Pos + style.FramePadding; - ImVec2 text_max = window->Pos + ImVec2(window->Size.x - style.FramePadding.x, style.FramePadding.y*2 + text_size.y); - ImVec2 clip_max = ImVec2(window->Pos.x + window->Size.x - (p_opened ? title_bar_rect.GetHeight() - 3 : style.FramePadding.x), text_max.y); // Match the size of CloseWindowButton() - bool pad_left = (flags & ImGuiWindowFlags_NoCollapse) == 0; - bool pad_right = (p_opened != NULL); - if (style.WindowTitleAlign & ImGuiAlign_Center) pad_right = pad_left; - if (pad_left) text_min.x += g.FontSize + style.ItemInnerSpacing.x; - if (pad_right) text_max.x -= g.FontSize + style.ItemInnerSpacing.x; - RenderTextClipped(text_min, text_max, name, NULL, &text_size, style.WindowTitleAlign, NULL, &clip_max); - } - - // Save clipped aabb so we can access it in constant-time in FindHoveredWindow() - window->ClippedWindowRect = window->Rect(); - window->ClippedWindowRect.Clip(window->ClipRect); - - // Pressing CTRL+C while holding on a window copy its content to the clipboard - // This works but 1. doesn't handle multiple Begin/End pairs, 2. recursing into another Begin/End pair - so we need to work that out and add better logging scope. - // Maybe we can support CTRL+C on every element? - /* - if (g.ActiveId == move_id) - if (g.IO.KeyCtrl && IsKeyPressedMap(ImGuiKey_C)) - ImGui::LogToClipboard(); - */ - } - window->BeginCount++; - - // Inner clipping rectangle - // We set this up after processing the resize grip so that our clip rectangle doesn't lag by a frame - // Note that if our window is collapsed we will end up with a null clipping rectangle which is the correct behavior. - const ImRect title_bar_rect = window->TitleBarRect(); - ImVec4 clip_rect(title_bar_rect.Min.x+0.5f+window->WindowPadding.x*0.5f, title_bar_rect.Max.y+window->MenuBarHeight()+0.5f, window->Rect().Max.x+0.5f-window->WindowPadding.x*0.5f, window->Rect().Max.y-1.5f); - if (window->ScrollbarY) - clip_rect.z -= style.ScrollbarWidth; - PushClipRect(clip_rect); - - // Clear 'accessed' flag last thing - if (first_begin_of_the_frame) - window->Accessed = false; - - // Child window can be out of sight and have "negative" clip windows. - // Mark them as collapsed so commands are skipped earlier (we can't manually collapse because they have no title bar). - if (flags & ImGuiWindowFlags_ChildWindow) - { - IM_ASSERT((flags & ImGuiWindowFlags_NoTitleBar) != 0); - window->Collapsed = parent_window && parent_window->Collapsed; - - if (!(flags & ImGuiWindowFlags_AlwaysAutoResize) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0) - window->Collapsed |= (window->ClipRect.Min.x >= window->ClipRect.Max.x || window->ClipRect.Min.y >= window->ClipRect.Max.y); - - // We also hide the window from rendering because we've already added its border to the command list. - // (we could perform the check earlier in the function but it is simpler at this point) - if (window->Collapsed) - window->Active = false; - } - if (style.Alpha <= 0.0f) - window->Active = false; - - // Return false if we don't intend to display anything to allow user to perform an early out optimization - window->SkipItems = (window->Collapsed || !window->Active) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0; - return !window->SkipItems; -} - -void ImGui::End() -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - ImGui::Columns(1, "#CloseColumns"); - PopClipRect(); // inner window clip rectangle - - // Stop logging - if (!(window->Flags & ImGuiWindowFlags_ChildWindow)) // FIXME: add more options for scope of logging - ImGui::LogFinish(); - - // Pop - // NB: we don't clear 'window->RootWindow'. The pointer is allowed to live until the next call to Begin(). - g.CurrentWindowStack.pop_back(); - if (window->Flags & ImGuiWindowFlags_Popup) - g.CurrentPopupStack.pop_back(); - CheckStacksSize(window, false); - SetCurrentWindow(g.CurrentWindowStack.empty() ? NULL : g.CurrentWindowStack.back()); -} - -// Vertical scrollbar -// The entire piece of code below is rather confusing because: -// - We handle absolute seeking (when first clicking outside the grab) and relative manipulation (afterward or when clicking inside the grab) -// - We store values as ratio and in a form that allows the window content to change while we are holding on a scrollbar -static void Scrollbar(ImGuiWindow* window) -{ - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID("#SCROLLY"); - - // Render background - ImRect bb(window->Rect().Max.x - style.ScrollbarWidth, window->Pos.y + window->TitleBarHeight()+1, window->Rect().Max.x, window->Rect().Max.y-1); - window->DrawList->AddRectFilled(bb.Min, bb.Max, window->Color(ImGuiCol_ScrollbarBg)); - bb.Expand(-3.0f); - const float scrollbar_height = bb.GetHeight(); - - // The grabable box size generally represent the amount visible (vs the total scrollable amount) - // But we maintain a minimum size in pixel to allow for the user to still aim inside. - const float grab_h_pixels = ImMin(ImMax(scrollbar_height * ImSaturate(window->Size.y / ImMax(window->SizeContents.y, window->Size.y)), style.GrabMinSize), scrollbar_height); - const float grab_h_norm = grab_h_pixels / scrollbar_height; - - // Handle input right away. None of the code of Begin() is relying on scrolling position before calling Scrollbar(). - bool held = false; - bool hovered = false; - const bool previously_held = (g.ActiveId == id); - ImGui::ButtonBehavior(bb, id, &hovered, &held, true); - - const float scroll_max = ImMax(1.0f, window->SizeContents.y - window->Size.y); - float scroll_ratio = ImSaturate(window->ScrollY / scroll_max); - float grab_y_norm = scroll_ratio * (scrollbar_height - grab_h_pixels) / scrollbar_height; - if (held) - { - const float clicked_y_norm = ImSaturate((g.IO.MousePos.y - bb.Min.y) / scrollbar_height); // Click position in scrollbar space (0.0f->1.0f) - g.HoveredId = id; - - bool seek_absolute = false; - if (!previously_held) - { - // On initial click calculate the distance between mouse and the center of the grab - if (clicked_y_norm >= grab_y_norm && clicked_y_norm <= grab_y_norm + grab_h_norm) - { - g.ScrollbarClickDeltaToGrabCenter = clicked_y_norm - grab_y_norm - grab_h_norm*0.5f; - } - else - { - seek_absolute = true; - g.ScrollbarClickDeltaToGrabCenter = 0; - } - } - - // Apply scroll - // It is ok to modify ScrollY here because we are being called in Begin() after the calculation of SizeContents and before setting up our starting position - const float scroll_y_norm = ImSaturate((clicked_y_norm - g.ScrollbarClickDeltaToGrabCenter - grab_h_norm*0.5f) / (1.0f - grab_h_norm)); - window->ScrollY = (float)(int)(0.5f + scroll_y_norm * (window->SizeContents.y - window->Size.y)); - - // Update values for rendering - scroll_ratio = ImSaturate(window->ScrollY / scroll_max); - grab_y_norm = scroll_ratio * (scrollbar_height - grab_h_pixels) / scrollbar_height; - - // Update distance to grab now that we have seeked and saturated - if (seek_absolute) - g.ScrollbarClickDeltaToGrabCenter = clicked_y_norm - grab_y_norm - grab_h_norm*0.5f; - } - - // Render - const ImU32 grab_col = window->Color(held ? ImGuiCol_ScrollbarGrabActive : hovered ? ImGuiCol_ScrollbarGrabHovered : ImGuiCol_ScrollbarGrab); - window->DrawList->AddRectFilled(ImVec2(bb.Min.x, ImLerp(bb.Min.y, bb.Max.y, grab_y_norm)), ImVec2(bb.Max.x, ImLerp(bb.Min.y, bb.Max.y, grab_y_norm) + grab_h_pixels), grab_col, style.ScrollbarRounding); -} - -// Moving window to front of display (which happens to be back of our sorted list) -void ImGui::FocusWindow(ImGuiWindow* window) -{ - ImGuiState& g = *GImGui; - - // Always mark the window we passed as focused. This is used for keyboard interactions such as tabbing. - g.FocusedWindow = window; - - // Passing NULL allow to disable keyboard focus - if (!window) - return; - - // And move its root window to the top of the pile - if (window->RootWindow) - window = window->RootWindow; - - // Steal focus on active widgets - if (window->Flags & ImGuiWindowFlags_Popup) // FIXME: This statement should be unnecessary. Need further testing before removing it.. - if (g.ActiveId != 0 && g.ActiveIdWindow && g.ActiveIdWindow->RootWindow != window) - ImGui::SetActiveID(0); - - if (g.Windows.back() == window) - return; - - for (int i = 0; i < g.Windows.Size; i++) - if (g.Windows[i] == window) - { - g.Windows.erase(g.Windows.begin() + i); - break; - } - g.Windows.push_back(window); -} - -void ImGui::PushItemWidth(float item_width) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.ItemWidth = (item_width == 0.0f ? window->ItemWidthDefault : item_width); - window->DC.ItemWidthStack.push_back(window->DC.ItemWidth); -} - -static void PushMultiItemsWidths(int components, float w_full) -{ - ImGuiWindow* window = ImGui::GetCurrentWindow(); - const ImGuiStyle& style = GImGui->Style; - if (w_full <= 0.0f) - w_full = ImGui::CalcItemWidth(); - const float w_item_one = ImMax(1.0f, (float)(int)((w_full - (style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1)) / (float)components)); - const float w_item_last = ImMax(1.0f, (float)(int)(w_full - (w_item_one + style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1))); - window->DC.ItemWidthStack.push_back(w_item_last); - for (int i = 0; i < components-1; i++) - window->DC.ItemWidthStack.push_back(w_item_one); - window->DC.ItemWidth = window->DC.ItemWidthStack.back(); -} - -void ImGui::PopItemWidth() -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.ItemWidthStack.pop_back(); - window->DC.ItemWidth = window->DC.ItemWidthStack.empty() ? window->ItemWidthDefault : window->DC.ItemWidthStack.back(); -} - -float ImGui::CalcItemWidth() -{ - ImGuiWindow* window = GetCurrentWindow(); - float w = window->DC.ItemWidth; - if (w < 0.0f) - { - // Align to a right-side limit. We include 1 frame padding in the calculation because this is how the width is always used (we add 2 frame padding to it), but we could move that responsibility to the widget as well. - ImGuiState& g = *GImGui; - float width_to_right_edge = ImGui::GetContentRegionAvail().x; - w = ImMax(1.0f, width_to_right_edge + w - g.Style.FramePadding.x * 2.0f); - } - w = (float)(int)w; - return w; -} - -static void SetCurrentFont(ImFont* font) -{ - ImGuiState& g = *GImGui; - IM_ASSERT(font && font->IsLoaded()); - IM_ASSERT(font->Scale > 0.0f); - g.Font = font; - g.FontBaseSize = g.IO.FontGlobalScale * g.Font->FontSize * g.Font->Scale; - g.FontSize = g.CurrentWindow ? g.CurrentWindow->CalcFontSize() : 0.0f; - g.FontTexUvWhitePixel = g.Font->ContainerAtlas->TexUvWhitePixel; -} - -void ImGui::PushFont(ImFont* font) -{ - ImGuiState& g = *GImGui; - if (!font) - font = g.IO.Fonts->Fonts[0]; - SetCurrentFont(font); - g.FontStack.push_back(font); - g.CurrentWindow->DrawList->PushTextureID(font->ContainerAtlas->TexID); -} - -void ImGui::PopFont() -{ - ImGuiState& g = *GImGui; - g.CurrentWindow->DrawList->PopTextureID(); - g.FontStack.pop_back(); - SetCurrentFont(g.FontStack.empty() ? g.IO.Fonts->Fonts[0] : g.FontStack.back()); -} - -void ImGui::PushAllowKeyboardFocus(bool allow_keyboard_focus) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.AllowKeyboardFocus = allow_keyboard_focus; - window->DC.AllowKeyboardFocusStack.push_back(allow_keyboard_focus); -} - -void ImGui::PopAllowKeyboardFocus() -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.AllowKeyboardFocusStack.pop_back(); - window->DC.AllowKeyboardFocus = window->DC.AllowKeyboardFocusStack.empty() ? true : window->DC.AllowKeyboardFocusStack.back(); -} - -void ImGui::PushButtonRepeat(bool repeat) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.ButtonRepeat = repeat; - window->DC.ButtonRepeatStack.push_back(repeat); -} - -void ImGui::PopButtonRepeat() -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.ButtonRepeatStack.pop_back(); - window->DC.ButtonRepeat = window->DC.ButtonRepeatStack.empty() ? false : window->DC.ButtonRepeatStack.back(); -} - -void ImGui::PushTextWrapPos(float wrap_pos_x) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.TextWrapPos = wrap_pos_x; - window->DC.TextWrapPosStack.push_back(wrap_pos_x); -} - -void ImGui::PopTextWrapPos() -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.TextWrapPosStack.pop_back(); - window->DC.TextWrapPos = window->DC.TextWrapPosStack.empty() ? -1.0f : window->DC.TextWrapPosStack.back(); -} - -void ImGui::PushStyleColor(ImGuiCol idx, const ImVec4& col) -{ - ImGuiState& g = *GImGui; - ImGuiColMod backup; - backup.Col = idx; - backup.PreviousValue = g.Style.Colors[idx]; - g.ColorModifiers.push_back(backup); - g.Style.Colors[idx] = col; -} - -void ImGui::PopStyleColor(int count) -{ - ImGuiState& g = *GImGui; - while (count > 0) - { - ImGuiColMod& backup = g.ColorModifiers.back(); - g.Style.Colors[backup.Col] = backup.PreviousValue; - g.ColorModifiers.pop_back(); - count--; - } -} - -static float* GetStyleVarFloatAddr(ImGuiStyleVar idx) -{ - ImGuiState& g = *GImGui; - switch (idx) - { - case ImGuiStyleVar_Alpha: return &g.Style.Alpha; - case ImGuiStyleVar_WindowRounding: return &g.Style.WindowRounding; - case ImGuiStyleVar_ChildWindowRounding: return &g.Style.ChildWindowRounding; - case ImGuiStyleVar_FrameRounding: return &g.Style.FrameRounding; - case ImGuiStyleVar_IndentSpacing: return &g.Style.IndentSpacing; - case ImGuiStyleVar_GrabMinSize: return &g.Style.GrabMinSize; - } - return NULL; -} - -static ImVec2* GetStyleVarVec2Addr(ImGuiStyleVar idx) -{ - ImGuiState& g = *GImGui; - switch (idx) - { - case ImGuiStyleVar_WindowPadding: return &g.Style.WindowPadding; - case ImGuiStyleVar_WindowMinSize: return &g.Style.WindowMinSize; - case ImGuiStyleVar_FramePadding: return &g.Style.FramePadding; - case ImGuiStyleVar_ItemSpacing: return &g.Style.ItemSpacing; - case ImGuiStyleVar_ItemInnerSpacing: return &g.Style.ItemInnerSpacing; - } - return NULL; -} - -void ImGui::PushStyleVar(ImGuiStyleVar idx, float val) -{ - ImGuiState& g = *GImGui; - float* pvar = GetStyleVarFloatAddr(idx); - IM_ASSERT(pvar != NULL); // Called function with wrong-type? Variable is not a float. - ImGuiStyleMod backup; - backup.Var = idx; - backup.PreviousValue = ImVec2(*pvar, 0.0f); - g.StyleModifiers.push_back(backup); - *pvar = val; -} - - -void ImGui::PushStyleVar(ImGuiStyleVar idx, const ImVec2& val) -{ - ImGuiState& g = *GImGui; - ImVec2* pvar = GetStyleVarVec2Addr(idx); - IM_ASSERT(pvar != NULL); // Called function with wrong-type? Variable is not a ImVec2. - ImGuiStyleMod backup; - backup.Var = idx; - backup.PreviousValue = *pvar; - g.StyleModifiers.push_back(backup); - *pvar = val; -} - -void ImGui::PopStyleVar(int count) -{ - ImGuiState& g = *GImGui; - while (count > 0) - { - ImGuiStyleMod& backup = g.StyleModifiers.back(); - if (float* pvar_f = GetStyleVarFloatAddr(backup.Var)) - *pvar_f = backup.PreviousValue.x; - else if (ImVec2* pvar_v = GetStyleVarVec2Addr(backup.Var)) - *pvar_v = backup.PreviousValue; - g.StyleModifiers.pop_back(); - count--; - } -} - -const char* ImGui::GetStyleColName(ImGuiCol idx) -{ - // Create switch-case from enum with regexp: ImGuiCol_{.*}, --> case ImGuiCol_\1: return "\1"; - switch (idx) - { - case ImGuiCol_Text: return "Text"; - case ImGuiCol_TextDisabled: return "TextDisabled"; - case ImGuiCol_WindowBg: return "WindowBg"; - case ImGuiCol_ChildWindowBg: return "ChildWindowBg"; - case ImGuiCol_Border: return "Border"; - case ImGuiCol_BorderShadow: return "BorderShadow"; - case ImGuiCol_FrameBg: return "FrameBg"; - case ImGuiCol_FrameBgHovered: return "FrameBgHovered"; - case ImGuiCol_FrameBgActive: return "FrameBgActive"; - case ImGuiCol_TitleBg: return "TitleBg"; - case ImGuiCol_TitleBgCollapsed: return "TitleBgCollapsed"; - case ImGuiCol_TitleBgActive: return "TitleBgActive"; - case ImGuiCol_MenuBarBg: return "MenuBarBg"; - case ImGuiCol_ScrollbarBg: return "ScrollbarBg"; - case ImGuiCol_ScrollbarGrab: return "ScrollbarGrab"; - case ImGuiCol_ScrollbarGrabHovered: return "ScrollbarGrabHovered"; - case ImGuiCol_ScrollbarGrabActive: return "ScrollbarGrabActive"; - case ImGuiCol_ComboBg: return "ComboBg"; - case ImGuiCol_CheckMark: return "CheckMark"; - case ImGuiCol_SliderGrab: return "SliderGrab"; - case ImGuiCol_SliderGrabActive: return "SliderGrabActive"; - case ImGuiCol_Button: return "Button"; - case ImGuiCol_ButtonHovered: return "ButtonHovered"; - case ImGuiCol_ButtonActive: return "ButtonActive"; - case ImGuiCol_Header: return "Header"; - case ImGuiCol_HeaderHovered: return "HeaderHovered"; - case ImGuiCol_HeaderActive: return "HeaderActive"; - case ImGuiCol_Column: return "Column"; - case ImGuiCol_ColumnHovered: return "ColumnHovered"; - case ImGuiCol_ColumnActive: return "ColumnActive"; - case ImGuiCol_ResizeGrip: return "ResizeGrip"; - case ImGuiCol_ResizeGripHovered: return "ResizeGripHovered"; - case ImGuiCol_ResizeGripActive: return "ResizeGripActive"; - case ImGuiCol_CloseButton: return "CloseButton"; - case ImGuiCol_CloseButtonHovered: return "CloseButtonHovered"; - case ImGuiCol_CloseButtonActive: return "CloseButtonActive"; - case ImGuiCol_PlotLines: return "PlotLines"; - case ImGuiCol_PlotLinesHovered: return "PlotLinesHovered"; - case ImGuiCol_PlotHistogram: return "PlotHistogram"; - case ImGuiCol_PlotHistogramHovered: return "PlotHistogramHovered"; - case ImGuiCol_TextSelectedBg: return "TextSelectedBg"; - case ImGuiCol_TooltipBg: return "TooltipBg"; - case ImGuiCol_ModalWindowDarkening: return "ModalWindowDarkening"; - } - IM_ASSERT(0); - return "Unknown"; -} - -bool ImGui::IsWindowHovered() -{ - ImGuiState& g = *GImGui; - return g.HoveredWindow == g.CurrentWindow; -} - -bool ImGui::IsWindowFocused() -{ - ImGuiState& g = *GImGui; - return g.FocusedWindow == g.CurrentWindow; -} - -bool ImGui::IsRootWindowFocused() -{ - ImGuiState& g = *GImGui; - ImGuiWindow* root_window = g.CurrentWindow->RootWindow; - return g.FocusedWindow == root_window; -} - -bool ImGui::IsRootWindowOrAnyChildFocused() -{ - ImGuiState& g = *GImGui; - ImGuiWindow* root_window = g.CurrentWindow->RootWindow; - return g.FocusedWindow && g.FocusedWindow->RootWindow == root_window; -} - -float ImGui::GetWindowWidth() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->Size.x; -} - -ImVec2 ImGui::GetWindowPos() -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - return window->Pos; -} - -static void SetWindowScrollY(ImGuiWindow* window, float new_scroll_y) -{ - window->DC.CursorMaxPos.y += window->ScrollY; - window->ScrollY = new_scroll_y; - window->DC.CursorMaxPos.y -= window->ScrollY; -} - -static void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiSetCond cond) -{ - // Test condition (NB: bit 0 is always true) and clear flags for next time - if (cond && (window->SetWindowPosAllowFlags & cond) == 0) - return; - window->SetWindowPosAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); - window->SetWindowPosCenterWanted = false; - - // Set - const ImVec2 old_pos = window->Pos; - window->PosFloat = pos; - window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); - window->DC.CursorPos += (window->Pos - old_pos); // As we happen to move the window while it is being appended to (which is a bad idea - will smear) let's at least offset the cursor - window->DC.CursorMaxPos += (window->Pos - old_pos); // And more importantly we need to adjust this so size calculation doesn't get affected. -} - -void ImGui::SetWindowPos(const ImVec2& pos, ImGuiSetCond cond) -{ - ImGuiWindow* window = GetCurrentWindow(); - SetWindowPos(window, pos, cond); -} - -void ImGui::SetWindowPos(const char* name, const ImVec2& pos, ImGuiSetCond cond) -{ - ImGuiWindow* window = FindWindowByName(name); - if (window) - SetWindowPos(window, pos, cond); -} - -ImVec2 ImGui::GetWindowSize() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->Size; -} - -static void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiSetCond cond) -{ - // Test condition (NB: bit 0 is always true) and clear flags for next time - if (cond && (window->SetWindowSizeAllowFlags & cond) == 0) - return; - window->SetWindowSizeAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); - - // Set - if (size.x > 0.0f) - { - window->AutoFitFramesX = 0; - window->SizeFull.x = size.x; - } - else - { - window->AutoFitFramesX = 2; - window->AutoFitOnlyGrows = false; - } - if (size.y > 0.0f) - { - window->AutoFitFramesY = 0; - window->SizeFull.y = size.y; - } - else - { - window->AutoFitFramesY = 2; - window->AutoFitOnlyGrows = false; - } -} - -void ImGui::SetWindowSize(const ImVec2& size, ImGuiSetCond cond) -{ - ImGuiWindow* window = GetCurrentWindow(); - SetWindowSize(window, size, cond); -} - -void ImGui::SetWindowSize(const char* name, const ImVec2& size, ImGuiSetCond cond) -{ - ImGuiWindow* window = FindWindowByName(name); - if (window) - SetWindowSize(window, size, cond); -} - -static void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiSetCond cond) -{ - // Test condition (NB: bit 0 is always true) and clear flags for next time - if (cond && (window->SetWindowCollapsedAllowFlags & cond) == 0) - return; - window->SetWindowCollapsedAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); - - // Set - window->Collapsed = collapsed; -} - -void ImGui::SetWindowCollapsed(bool collapsed, ImGuiSetCond cond) -{ - ImGuiWindow* window = GetCurrentWindow(); - SetWindowCollapsed(window, collapsed, cond); -} - -bool ImGui::IsWindowCollapsed() -{ - return GImGui->CurrentWindow->Collapsed; -} - -void ImGui::SetWindowCollapsed(const char* name, bool collapsed, ImGuiSetCond cond) -{ - ImGuiWindow* window = FindWindowByName(name); - if (window) - SetWindowCollapsed(window, collapsed, cond); -} - -void ImGui::SetWindowFocus() -{ - ImGuiWindow* window = GetCurrentWindow(); - FocusWindow(window); -} - -void ImGui::SetWindowFocus(const char* name) -{ - if (name) - { - ImGuiWindow* window = FindWindowByName(name); - if (window) - FocusWindow(window); - } - else - { - FocusWindow(NULL); - } -} - -void ImGui::SetNextWindowPos(const ImVec2& pos, ImGuiSetCond cond) -{ - ImGuiState& g = *GImGui; - g.SetNextWindowPosVal = pos; - g.SetNextWindowPosCond = cond ? cond : ImGuiSetCond_Always; -} - -void ImGui::SetNextWindowPosCenter(ImGuiSetCond cond) -{ - ImGuiState& g = *GImGui; - g.SetNextWindowPosVal = ImVec2(-FLT_MAX, -FLT_MAX); - g.SetNextWindowPosCond = cond ? cond : ImGuiSetCond_Always; -} - -void ImGui::SetNextWindowSize(const ImVec2& size, ImGuiSetCond cond) -{ - ImGuiState& g = *GImGui; - g.SetNextWindowSizeVal = size; - g.SetNextWindowSizeCond = cond ? cond : ImGuiSetCond_Always; -} - -void ImGui::SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond) -{ - ImGuiState& g = *GImGui; - g.SetNextWindowCollapsedVal = collapsed; - g.SetNextWindowCollapsedCond = cond ? cond : ImGuiSetCond_Always; -} - -void ImGui::SetNextWindowFocus() -{ - ImGuiState& g = *GImGui; - g.SetNextWindowFocus = true; -} - -// In window space (not screen space!) -ImVec2 ImGui::GetContentRegionMax() -{ - ImGuiWindow* window = GetCurrentWindow(); - ImVec2 mx = window->Size - window->WindowPadding; - if (window->DC.ColumnsCount != 1) - mx.x = ImGui::GetColumnOffset(window->DC.ColumnsCurrent + 1) - window->WindowPadding.x; - else - mx.x -= window->ScrollbarWidth(); - return mx; -} - -ImVec2 ImGui::GetContentRegionAvail() -{ - ImGuiWindow* window = GetCurrentWindow(); - return GetContentRegionMax() - (window->DC.CursorPos - window->Pos); -} - -// In window space (not screen space!) -ImVec2 ImGui::GetWindowContentRegionMin() -{ - ImGuiWindow* window = GetCurrentWindow(); - return ImVec2(0, window->TitleBarHeight() + window->MenuBarHeight()) + window->WindowPadding; -} - -ImVec2 ImGui::GetWindowContentRegionMax() -{ - ImGuiWindow* window = GetCurrentWindow(); - ImVec2 m = window->Size - window->WindowPadding; - m.x -= window->ScrollbarWidth(); - return m; -} - -float ImGui::GetTextLineHeight() -{ - ImGuiState& g = *GImGui; - return g.FontSize; -} - -float ImGui::GetTextLineHeightWithSpacing() -{ - ImGuiState& g = *GImGui; - return g.FontSize + g.Style.ItemSpacing.y; -} - -float ImGui::GetItemsLineHeightWithSpacing() -{ - ImGuiState& g = *GImGui; - return g.FontSize + g.Style.FramePadding.y * 2.0f + g.Style.ItemSpacing.y; -} - -ImDrawList* ImGui::GetWindowDrawList() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DrawList; -} - -ImFont* ImGui::GetWindowFont() -{ - ImGuiState& g = *GImGui; - return g.Font; -} - -float ImGui::GetWindowFontSize() -{ - ImGuiState& g = *GImGui; - return g.FontSize; -} - -void ImGui::SetWindowFontScale(float scale) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - window->FontWindowScale = scale; - g.FontSize = window->CalcFontSize(); -} - -// User generally sees positions in window coordinates. Internally we store CursorPos in absolute screen coordinates because it is more convenient. -// Conversion happens as we pass the value to user, but it makes our naming convention confusing because GetCursorPos() == (DC.CursorPos - window.Pos). May want to rename 'DC.CursorPos'. -ImVec2 ImGui::GetCursorPos() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.CursorPos - window->Pos; -} - -float ImGui::GetCursorPosX() -{ - return ImGui::GetCursorPos().x; -} - -float ImGui::GetCursorPosY() -{ - return ImGui::GetCursorPos().y; -} - -void ImGui::SetCursorPos(const ImVec2& pos) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.CursorPos = window->Pos + pos; - window->DC.CursorMaxPos = ImMax(window->DC.CursorMaxPos, window->DC.CursorPos); -} - -void ImGui::SetCursorPosX(float x) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.CursorPos.x = window->Pos.x + x; - window->DC.CursorMaxPos.x = ImMax(window->DC.CursorMaxPos.x, window->DC.CursorPos.x); -} - -void ImGui::SetCursorPosY(float y) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.CursorPos.y = window->Pos.y + y; - window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, window->DC.CursorPos.y); -} - -ImVec2 ImGui::GetCursorStartPos() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.CursorStartPos - window->Pos; -} - -ImVec2 ImGui::GetCursorScreenPos() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.CursorPos; -} - -void ImGui::SetCursorScreenPos(const ImVec2& screen_pos) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.CursorPos = screen_pos; -} - -float ImGui::GetScrollY() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->ScrollY; -} - -float ImGui::GetScrollMaxY() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->SizeContents.y - window->SizeFull.y; -} - -void ImGui::SetScrollY(float scroll_y) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->ScrollTargetRelY = scroll_y + window->TitleBarHeight(); // title bar height cancelled out when using ScrollTargetRelY - window->ScrollTargetCenterRatioY = 0.0f; -} - -void ImGui::SetScrollFromPosY(float pos_y, float center_y_ratio) -{ - // We store a target position so centering can occur on the next frame when we are guaranteed to have a known window size - ImGuiWindow* window = GetCurrentWindow(); - IM_ASSERT(center_y_ratio >= 0.0f && center_y_ratio <= 1.0f); - window->ScrollTargetRelY = (float)(int)(pos_y + window->ScrollY); - if (center_y_ratio <= 0.0f && window->ScrollTargetRelY <= window->WindowPadding.y) // Minor hack to make "scroll to top" take account of WindowPadding, else it would scroll to (WindowPadding.y - ItemSpacing.y) - window->ScrollTargetRelY = 0.0f; - window->ScrollTargetCenterRatioY = center_y_ratio; -} - -void ImGui::SetScrollHere(float center_y_ratio) -{ - ImGuiWindow* window = GetCurrentWindow(); - float target_y = window->DC.CursorPosPrevLine.y + (window->DC.PrevLineHeight * center_y_ratio) + (GImGui->Style.ItemSpacing.y * (center_y_ratio - 0.5f) * 2.0f); // Precisely aim above, in the middle or below the last line. - ImGui::SetScrollFromPosY(target_y - window->Pos.y, center_y_ratio); -} - -void ImGui::SetKeyboardFocusHere(int offset) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->FocusIdxAllRequestNext = window->FocusIdxAllCounter + 1 + offset; - window->FocusIdxTabRequestNext = IM_INT_MAX; -} - -void ImGui::SetStateStorage(ImGuiStorage* tree) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.StateStorage = tree ? tree : &window->StateStorage; -} - -ImGuiStorage* ImGui::GetStateStorage() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.StateStorage; -} - -void ImGui::TextV(const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiState& g = *GImGui; - const char* text_end = g.TempBuffer + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); - TextUnformatted(g.TempBuffer, text_end); -} - -void ImGui::Text(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - TextV(fmt, args); - va_end(args); -} - -void ImGui::TextColoredV(const ImVec4& col, const char* fmt, va_list args) -{ - ImGui::PushStyleColor(ImGuiCol_Text, col); - TextV(fmt, args); - ImGui::PopStyleColor(); -} - -void ImGui::TextColored(const ImVec4& col, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - TextColoredV(col, fmt, args); - va_end(args); -} - -void ImGui::TextDisabledV(const char* fmt, va_list args) -{ - ImGui::PushStyleColor(ImGuiCol_Text, GImGui->Style.Colors[ImGuiCol_TextDisabled]); - TextV(fmt, args); - ImGui::PopStyleColor(); -} - -void ImGui::TextDisabled(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - TextDisabledV(fmt, args); - va_end(args); -} - -void ImGui::TextWrappedV(const char* fmt, va_list args) -{ - ImGui::PushTextWrapPos(0.0f); - TextV(fmt, args); - ImGui::PopTextWrapPos(); -} - -void ImGui::TextWrapped(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - TextWrappedV(fmt, args); - va_end(args); -} - -void ImGui::TextUnformatted(const char* text, const char* text_end) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiState& g = *GImGui; - IM_ASSERT(text != NULL); - const char* text_begin = text; - if (text_end == NULL) - text_end = text + strlen(text); // FIXME-OPT - - const float wrap_pos_x = window->DC.TextWrapPos; - const bool wrap_enabled = wrap_pos_x >= 0.0f; - if (text_end - text > 2000 && !wrap_enabled) - { - // Long text! - // Perform manual coarse clipping to optimize for long multi-line text - // From this point we will only compute the width of lines that are visible. Optimization only available when word-wrapping is disabled. - // We also don't vertically center the text within the line full height, which is unlikely to matter because we are likely the biggest and only item on the line. - const char* line = text; - const float line_height = ImGui::GetTextLineHeight(); - const ImVec2 text_pos = window->DC.CursorPos + ImVec2(0.0f, window->DC.CurrentLineTextBaseOffset); - const ImRect clip_rect = window->ClipRect; - ImVec2 text_size(0,0); - - if (text_pos.y <= clip_rect.Max.y) - { - ImVec2 pos = text_pos; - - // Lines to skip (can't skip when logging text) - if (!g.LogEnabled) - { - int lines_skippable = (int)((clip_rect.Min.y - text_pos.y) / line_height); - if (lines_skippable > 0) - { - int lines_skipped = 0; - while (line < text_end && lines_skipped < lines_skippable) - { - const char* line_end = strchr(line, '\n'); - line = line_end + 1; - lines_skipped++; - } - pos.y += lines_skipped * line_height; - } - } - - // Lines to render - if (line < text_end) - { - ImRect line_rect(pos, pos + ImVec2(ImGui::GetWindowWidth(), line_height)); - while (line < text_end) - { - const char* line_end = strchr(line, '\n'); - if (IsClippedEx(line_rect, NULL, false)) - break; - - const ImVec2 line_size = CalcTextSize(line, line_end, false); - text_size.x = ImMax(text_size.x, line_size.x); - RenderText(pos, line, line_end, false); - if (!line_end) - line_end = text_end; - line = line_end + 1; - line_rect.Min.y += line_height; - line_rect.Max.y += line_height; - pos.y += line_height; - } - - // Count remaining lines - int lines_skipped = 0; - while (line < text_end) - { - const char* line_end = strchr(line, '\n'); - if (!line_end) - line_end = text_end; - line = line_end + 1; - lines_skipped++; - } - pos.y += lines_skipped * line_height; - } - - text_size.y += (pos - text_pos).y; - } - - ImRect bb(text_pos, text_pos + text_size); - ItemSize(bb); - ItemAdd(bb, NULL); - } - else - { - const float wrap_width = wrap_enabled ? CalcWrapWidthForPos(window->DC.CursorPos, wrap_pos_x) : 0.0f; - const ImVec2 text_size = CalcTextSize(text_begin, text_end, false, wrap_width); - - // Account of baseline offset - ImVec2 text_pos = window->DC.CursorPos; - text_pos.y += window->DC.CurrentLineTextBaseOffset; - - ImRect bb(text_pos, text_pos + text_size); - ItemSize(bb.GetSize()); - if (!ItemAdd(bb, NULL)) - return; - - // Render (we don't hide text after ## in this end-user function) - RenderTextWrapped(bb.Min, text_begin, text_end, wrap_width); - } -} - -void ImGui::AlignFirstTextHeightToWidgets() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - // Declare a dummy item size to that upcoming items that are smaller will center-align on the newly expanded line height. - ImGuiState& g = *GImGui; - ItemSize(ImVec2(0, g.FontSize + g.Style.FramePadding.y*2), g.Style.FramePadding.y); - ImGui::SameLine(0, 0); -} - -// Add a label+text combo aligned to other label+value widgets -void ImGui::LabelTextV(const char* label, const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const float w = ImGui::CalcItemWidth(); - - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImRect value_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w + style.FramePadding.x*2, label_size.y + style.FramePadding.y*2)); - const ImRect total_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w + style.FramePadding.x*2 + (label_size.x > 0.0f ? style.ItemInnerSpacing.x : 0.0f), style.FramePadding.y*2) + label_size); - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, NULL)) - return; - - // Render - const char* value_text_begin = &g.TempBuffer[0]; - const char* value_text_end = value_text_begin + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); - RenderTextClipped(value_bb.Min, value_bb.Max, value_text_begin, value_text_end, NULL, ImGuiAlign_VCenter); - RenderText(ImVec2(value_bb.Max.x + style.ItemInnerSpacing.x, value_bb.Min.y + style.FramePadding.y), label); -} - -void ImGui::LabelText(const char* label, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - LabelTextV(label, fmt, args); - va_end(args); -} - -static inline bool IsWindowContentHoverable(ImGuiWindow* window) -{ - // An active popup disable hovering on other windows (apart from its own children) - ImGuiState& g = *GImGui; - if (ImGuiWindow* focused_window = g.FocusedWindow) - if (ImGuiWindow* focused_root_window = focused_window->RootWindow) - if ((focused_root_window->Flags & ImGuiWindowFlags_Popup) != 0 && focused_root_window->WasActive && focused_root_window != window->RootWindow) - return false; - - return true; -} - -bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, bool allow_key_modifiers, ImGuiButtonFlags flags) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - if (flags & ImGuiButtonFlags_Disabled) - { - if (out_hovered) *out_hovered = false; - if (out_held) *out_held = false; - if (g.ActiveId == id) SetActiveID(0); - return false; - } - - bool pressed = false; - const bool hovered = IsHovered(bb, id, (flags & ImGuiButtonFlags_FlattenChilds) != 0); - if (hovered) - { - g.HoveredId = id; - if (allow_key_modifiers || (!g.IO.KeyCtrl && !g.IO.KeyShift && !g.IO.KeyAlt)) - { - if (g.IO.MouseClicked[0]) - { - if (flags & ImGuiButtonFlags_PressedOnClick) - { - pressed = true; - SetActiveID(0); - } - else - { - SetActiveID(id, window); - } - FocusWindow(window); - } - else if (g.IO.MouseReleased[0] && (flags & ImGuiButtonFlags_PressedOnRelease)) - { - pressed = true; - SetActiveID(0); - } - else if ((flags & ImGuiButtonFlags_Repeat) && g.ActiveId == id && ImGui::IsMouseClicked(0, true)) - { - pressed = true; - } - } - } - - bool held = false; - if (g.ActiveId == id) - { - if (g.IO.MouseDown[0]) - { - held = true; - } - else - { - if (hovered) - pressed = true; - SetActiveID(0); - } - } - - if (out_hovered) *out_hovered = hovered; - if (out_held) *out_held = held; - - return pressed; -} - -bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); - - ImVec2 pos = window->DC.CursorPos; - if ((flags & ImGuiButtonFlags_AlignTextBaseLine) && style.FramePadding.y < window->DC.CurrentLineTextBaseOffset) - pos.y += window->DC.CurrentLineTextBaseOffset - style.FramePadding.y; - ImVec2 size = CalcItemSize(size_arg, label_size.x + style.FramePadding.x * 2.0f, label_size.y + style.FramePadding.y * 2.0f); - - const ImRect bb(pos, pos + size); - ItemSize(bb, style.FramePadding.y); - if (!ItemAdd(bb, &id)) - return false; - - if (window->DC.ButtonRepeat) flags |= ImGuiButtonFlags_Repeat; - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held, true, flags); - - // Render - const ImU32 col = window->Color((hovered && held) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); - RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding); - RenderTextClipped(bb.Min, bb.Max, label, NULL, &label_size, ImGuiAlign_Center | ImGuiAlign_VCenter); - - // Automatically close popups - //if (pressed && !(flags & ImGuiButtonFlags_DontClosePopups) && (window->Flags & ImGuiWindowFlags_Popup)) - // ImGui::CloseCurrentPopup(); - - return pressed; -} - -bool ImGui::Button(const char* label, const ImVec2& size_arg) -{ - return ButtonEx(label, size_arg, 0); -} - -// Small buttons fits within text without additional vertical spacing. -bool ImGui::SmallButton(const char* label) -{ - ImGuiState& g = *GImGui; - float backup_padding_y = g.Style.FramePadding.y; - g.Style.FramePadding.y = 0.0f; - bool pressed = ButtonEx(label, ImVec2(0,0), ImGuiButtonFlags_AlignTextBaseLine); - g.Style.FramePadding.y = backup_padding_y; - return pressed; -} - -// Tip: use ImGui::PushID()/PopID() to push indices or pointers in the ID stack. -// Then you can keep 'str_id' empty or the same for all your buttons (instead of creating a string based on a non-string id) -bool ImGui::InvisibleButton(const char* str_id, const ImVec2& size) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - const ImGuiID id = window->GetID(str_id); - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); - ItemSize(bb); - if (!ItemAdd(bb, &id)) - return false; - - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held, true); - - return pressed; -} - -// Upper-right button to close a window. -static bool CloseWindowButton(bool* p_opened) -{ - ImGuiWindow* window = ImGui::GetCurrentWindow(); - - const ImGuiID id = window->GetID("#CLOSE"); - const float size = window->TitleBarHeight() - 4.0f; - const ImRect bb(window->Rect().GetTR() + ImVec2(-2.0f-size,2.0f), window->Rect().GetTR() + ImVec2(-2.0f,2.0f+size)); - - bool hovered, held; - bool pressed = ImGui::ButtonBehavior(bb, id, &hovered, &held, true); - - // Render - const ImU32 col = window->Color((held && hovered) ? ImGuiCol_CloseButtonActive : hovered ? ImGuiCol_CloseButtonHovered : ImGuiCol_CloseButton); - const ImVec2 center = bb.GetCenter(); - window->DrawList->AddCircleFilled(center, ImMax(2.0f,size*0.5f), col, 16); - - const float cross_extent = (size * 0.5f * 0.7071f) - 1.0f; - if (hovered) - { - window->DrawList->AddLine(center + ImVec2(+cross_extent,+cross_extent), center + ImVec2(-cross_extent,-cross_extent), window->Color(ImGuiCol_Text)); - window->DrawList->AddLine(center + ImVec2(+cross_extent,-cross_extent), center + ImVec2(-cross_extent,+cross_extent), window->Color(ImGuiCol_Text)); - } - - if (p_opened != NULL && pressed) - *p_opened = !*p_opened; - - return pressed; -} - -void ImGui::Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, const ImVec4& tint_col, const ImVec4& border_col) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); - if (border_col.w > 0.0f) - bb.Max += ImVec2(2,2); - ItemSize(bb); - if (!ItemAdd(bb, NULL)) - return; - - if (border_col.w > 0.0f) - { - window->DrawList->AddRect(bb.Min, bb.Max, window->Color(border_col), 0.0f); - window->DrawList->AddImage(user_texture_id, bb.Min+ImVec2(1,1), bb.Max-ImVec2(1,1), uv0, uv1, window->Color(tint_col)); - } - else - { - window->DrawList->AddImage(user_texture_id, bb.Min, bb.Max, uv0, uv1, window->Color(tint_col)); - } -} - -// frame_padding < 0: uses FramePadding from style (default) -// frame_padding = 0: no framing -// frame_padding > 0: set framing size -// The color used are the button colors. -bool ImGui::ImageButton(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, int frame_padding, const ImVec4& bg_col, const ImVec4& tint_col) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - - // Default to using texture ID as ID. User can still push string/integer prefixes. - // We could hash the size/uv to create a unique ID but that would prevent the user from animating UV. - ImGui::PushID((void *)user_texture_id); - const ImGuiID id = window->GetID("#image"); - ImGui::PopID(); - - const ImVec2 padding = (frame_padding >= 0) ? ImVec2((float)frame_padding, (float)frame_padding) : style.FramePadding; - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size + padding*2); - const ImRect image_bb(window->DC.CursorPos + padding, window->DC.CursorPos + padding + size); - ItemSize(bb); - if (!ItemAdd(bb, &id)) - return false; - - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held, true); - - // Render - const ImU32 col = window->Color((hovered && held) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); - RenderFrame(bb.Min, bb.Max, col); - if (bg_col.w > 0.0f) - window->DrawList->AddRectFilled(image_bb.Min, image_bb.Max, window->Color(bg_col)); - window->DrawList->AddImage(user_texture_id, image_bb.Min, image_bb.Max, uv0, uv1, window->Color(tint_col)); - - return pressed; -} - -// Start logging ImGui output to TTY -void ImGui::LogToTTY(int max_depth) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - if (g.LogEnabled) - return; - - g.LogEnabled = true; - g.LogFile = stdout; - g.LogStartDepth = window->DC.TreeDepth; - if (max_depth >= 0) - g.LogAutoExpandMaxDepth = max_depth; -} - -// Start logging ImGui output to given file -void ImGui::LogToFile(int max_depth, const char* filename) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - if (g.LogEnabled) - return; - if (!filename) - { - filename = g.IO.LogFilename; - if (!filename) - return; - } - - g.LogFile = fopen(filename, "ab"); - if (!g.LogFile) - { - IM_ASSERT(g.LogFile != NULL); // Consider this an error - return; - } - g.LogEnabled = true; - g.LogStartDepth = window->DC.TreeDepth; - if (max_depth >= 0) - g.LogAutoExpandMaxDepth = max_depth; -} - -// Start logging ImGui output to clipboard -void ImGui::LogToClipboard(int max_depth) -{ - ImGuiWindow* window = GetCurrentWindow(); - ImGuiState& g = *GImGui; - if (g.LogEnabled) - return; - - g.LogEnabled = true; - g.LogFile = NULL; - g.LogStartDepth = window->DC.TreeDepth; - if (max_depth >= 0) - g.LogAutoExpandMaxDepth = max_depth; -} - -void ImGui::LogFinish() -{ - ImGuiState& g = *GImGui; - if (!g.LogEnabled) - return; - - ImGui::LogText(IM_NEWLINE); - g.LogEnabled = false; - if (g.LogFile != NULL) - { - if (g.LogFile == stdout) - fflush(g.LogFile); - else - fclose(g.LogFile); - g.LogFile = NULL; - } - if (g.LogClipboard->size() > 1) - { - if (g.IO.SetClipboardTextFn) - g.IO.SetClipboardTextFn(g.LogClipboard->begin()); - g.LogClipboard->clear(); - } -} - -// Helper to display logging buttons -void ImGui::LogButtons() -{ - ImGuiState& g = *GImGui; - - ImGui::PushID("LogButtons"); - const bool log_to_tty = ImGui::Button("Log To TTY"); - ImGui::SameLine(); - const bool log_to_file = ImGui::Button("Log To File"); - ImGui::SameLine(); - const bool log_to_clipboard = ImGui::Button("Log To Clipboard"); - ImGui::SameLine(); - - ImGui::PushItemWidth(80.0f); - ImGui::PushAllowKeyboardFocus(false); - ImGui::SliderInt("Depth", &g.LogAutoExpandMaxDepth, 0, 9, NULL); - ImGui::PopAllowKeyboardFocus(); - ImGui::PopItemWidth(); - ImGui::PopID(); - - // Start logging at the end of the function so that the buttons don't appear in the log - if (log_to_tty) - LogToTTY(g.LogAutoExpandMaxDepth); - if (log_to_file) - LogToFile(g.LogAutoExpandMaxDepth, g.IO.LogFilename); - if (log_to_clipboard) - LogToClipboard(g.LogAutoExpandMaxDepth); -} - -bool ImGui::CollapsingHeader(const char* label, const char* str_id, bool display_frame, bool default_open) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - - IM_ASSERT(str_id != NULL || label != NULL); - if (str_id == NULL) - str_id = label; - if (label == NULL) - label = str_id; - const ImGuiID id = window->GetID(str_id); - - // We only write to the tree storage if the user clicks (or explicitely use SetNextTreeNode*** functions) - ImGuiStorage* storage = window->DC.StateStorage; - bool opened; - if (g.SetNextTreeNodeOpenedCond != 0) - { - if (g.SetNextTreeNodeOpenedCond & ImGuiSetCond_Always) - { - opened = g.SetNextTreeNodeOpenedVal; - storage->SetInt(id, opened); - } - else - { - // We treat ImGuiSetCondition_Once and ImGuiSetCondition_FirstUseEver the same because tree node state are not saved persistently. - const int stored_value = storage->GetInt(id, -1); - if (stored_value == -1) - { - opened = g.SetNextTreeNodeOpenedVal; - storage->SetInt(id, opened); - } - else - { - opened = stored_value != 0; - } - } - g.SetNextTreeNodeOpenedCond = 0; - } - else - { - opened = storage->GetInt(id, default_open) != 0; - } - - // Framed header expand a little outside the default padding - const ImVec2 window_padding = window->WindowPadding; - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImVec2 pos_min = window->DC.CursorPos; - const ImVec2 pos_max = window->Pos + GetContentRegionMax(); - ImRect bb = ImRect(pos_min, ImVec2(pos_max.x, pos_min.y + label_size.y)); - if (display_frame) - { - bb.Min.x -= (float)(int)(window_padding.x*0.5f) - 1; - bb.Max.x += (float)(int)(window_padding.x*0.5f) - 1; - bb.Max.y += style.FramePadding.y * 2; - } - - // FIXME: we don't provide our width so that it doesn't get feed back into AutoFit. Should manage that better so we can still hover without extending ContentsSize - const ImRect text_bb(bb.Min, bb.Min + ImVec2(g.FontSize + style.FramePadding.x*2*2,0) + label_size); - ItemSize(ImVec2(text_bb.GetSize().x, bb.GetSize().y), display_frame ? style.FramePadding.y : 0.0f); - - // When logging is enabled, if automatically expand tree nodes (but *NOT* collapsing headers.. seems like sensible behavior). - // NB- If we are above max depth we still allow manually opened nodes to be logged. - if (g.LogEnabled && !display_frame && window->DC.TreeDepth < g.LogAutoExpandMaxDepth) - opened = true; - - if (!ItemAdd(bb, &id)) - return opened; - - bool hovered, held; - bool pressed = ButtonBehavior(display_frame ? bb : text_bb, id, &hovered, &held, false); - if (pressed) - { - opened = !opened; - storage->SetInt(id, opened); - } - - // Render - const ImU32 col = window->Color((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); - if (display_frame) - { - // Framed type - RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding); - RenderCollapseTriangle(bb.Min + style.FramePadding, opened, 1.0f, true); - if (g.LogEnabled) - { - // NB: '##' is normally used to hide text (as a library-wide feature), so we need to specify the text range to make sure the ## aren't stripped out here. - const char log_prefix[] = "\n##"; - LogRenderedText(bb.Min + style.FramePadding, log_prefix, log_prefix+3); - } - RenderTextClipped(bb.Min + style.FramePadding + ImVec2(g.FontSize + style.FramePadding.x*2,0), bb.Max, label, NULL, &label_size); - if (g.LogEnabled) - { - const char log_suffix[] = "##"; - LogRenderedText(bb.Min + style.FramePadding, log_suffix, log_suffix+2); - } - } - else - { - // Unframed typed for tree nodes - if ((held && hovered) || hovered) - RenderFrame(bb.Min, bb.Max, col, false); - RenderCollapseTriangle(bb.Min + ImVec2(style.FramePadding.x, g.FontSize*0.15f), opened, 0.70f, false); - if (g.LogEnabled) - LogRenderedText(bb.Min, ">"); - RenderText(bb.Min + ImVec2(g.FontSize + style.FramePadding.x*2,0), label); - } - - return opened; -} - -void ImGui::Bullet() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const float line_height = g.FontSize; - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(line_height, line_height)); - ItemSize(bb); - if (!ItemAdd(bb, NULL)) - return; - - // Render - const float bullet_size = line_height*0.15f; - window->DrawList->AddCircleFilled(bb.Min + ImVec2(style.FramePadding.x + line_height*0.5f, line_height*0.5f), bullet_size, window->Color(ImGuiCol_Text)); - - // Stay on same line - ImGui::SameLine(0, -1); -} - -// Text with a little bullet aligned to the typical tree node. -void ImGui::BulletTextV(const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - - const char* text_begin = g.TempBuffer; - const char* text_end = text_begin + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); - const float line_height = g.FontSize; - const ImVec2 label_size = CalcTextSize(text_begin, text_end, true); - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(line_height + (label_size.x > 0.0f ? (style.FramePadding.x*2) : 0.0f),0) + label_size); // Empty text doesn't add padding - ItemSize(bb); - if (!ItemAdd(bb, NULL)) - return; - - // Render - const float bullet_size = line_height*0.15f; - window->DrawList->AddCircleFilled(bb.Min + ImVec2(style.FramePadding.x + line_height*0.5f, line_height*0.5f), bullet_size, window->Color(ImGuiCol_Text)); - RenderText(bb.Min+ImVec2(g.FontSize + style.FramePadding.x*2,0), text_begin, text_end); -} - -void ImGui::BulletText(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - BulletTextV(fmt, args); - va_end(args); -} - -// If returning 'true' the node is open and the user is responsible for calling TreePop -bool ImGui::TreeNodeV(const char* str_id, const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); - if (!str_id || !str_id[0]) - str_id = fmt; - - ImGui::PushID(str_id); - const bool opened = ImGui::CollapsingHeader(g.TempBuffer, "", false); - ImGui::PopID(); - - if (opened) - ImGui::TreePush(str_id); - - return opened; -} - -bool ImGui::TreeNode(const char* str_id, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - bool s = TreeNodeV(str_id, fmt, args); - va_end(args); - return s; -} - -// If returning 'true' the node is open and the user is responsible for calling TreePop -bool ImGui::TreeNodeV(const void* ptr_id, const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); - - if (!ptr_id) - ptr_id = fmt; - - ImGui::PushID(ptr_id); - const bool opened = ImGui::CollapsingHeader(g.TempBuffer, "", false); - ImGui::PopID(); - - if (opened) - ImGui::TreePush(ptr_id); - - return opened; -} - -bool ImGui::TreeNode(const void* ptr_id, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - bool s = TreeNodeV(ptr_id, fmt, args); - va_end(args); - return s; -} - -bool ImGui::TreeNode(const char* str_label_id) -{ - return TreeNode(str_label_id, "%s", str_label_id); -} - -void ImGui::SetNextTreeNodeOpened(bool opened, ImGuiSetCond cond) -{ - ImGuiState& g = *GImGui; - g.SetNextTreeNodeOpenedVal = opened; - g.SetNextTreeNodeOpenedCond = cond ? cond : ImGuiSetCond_Always; -} - -void ImGui::PushID(const char* str_id) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->IDStack.push_back(window->GetID(str_id)); -} - -void ImGui::PushID(const char* str_id_begin, const char* str_id_end) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->IDStack.push_back(window->GetID(str_id_begin, str_id_end)); -} - -void ImGui::PushID(const void* ptr_id) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->IDStack.push_back(window->GetID(ptr_id)); -} - -void ImGui::PushID(int int_id) -{ - const void* ptr_id = (void*)(intptr_t)int_id; - ImGuiWindow* window = GetCurrentWindow(); - window->IDStack.push_back(window->GetID(ptr_id)); -} - -void ImGui::PopID() -{ - ImGuiWindow* window = GetCurrentWindow(); - window->IDStack.pop_back(); -} - -ImGuiID ImGui::GetID(const char* str_id) -{ - return GImGui->CurrentWindow->GetID(str_id); -} - -ImGuiID ImGui::GetID(const char* str_id_begin, const char* str_id_end) -{ - return GImGui->CurrentWindow->GetID(str_id_begin, str_id_end); -} - -ImGuiID ImGui::GetID(const void* ptr_id) -{ - return GImGui->CurrentWindow->GetID(ptr_id); -} - -static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, const char* display_format, char* buf, int buf_size) -{ - if (data_type == ImGuiDataType_Int) - ImFormatString(buf, buf_size, display_format, *(int*)data_ptr); - else if (data_type == ImGuiDataType_Float) - ImFormatString(buf, buf_size, display_format, *(float*)data_ptr); -} - -static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, int decimal_precision, char* buf, int buf_size) -{ - if (data_type == ImGuiDataType_Int) - { - if (decimal_precision < 0) - ImFormatString(buf, buf_size, "%d", *(int*)data_ptr); - else - ImFormatString(buf, buf_size, "%.*d", decimal_precision, *(int*)data_ptr); - } - else if (data_type == ImGuiDataType_Float) - { - if (decimal_precision < 0) - ImFormatString(buf, buf_size, "%f", *(float*)data_ptr); // Ideally we'd have a minimum decimal precision of 1 to visually denote that it is a float, while hiding non-significant digits? - else - ImFormatString(buf, buf_size, "%.*f", decimal_precision, *(float*)data_ptr); - } -} - -static void DataTypeApplyOp(ImGuiDataType data_type, int op, void* value1, const void* value2)// Store into value1 -{ - if (data_type == ImGuiDataType_Int) - { - if (op == '+') - *(int*)value1 = *(int*)value1 + *(const int*)value2; - else if (op == '-') - *(int*)value1 = *(int*)value1 - *(const int*)value2; - } - else if (data_type == ImGuiDataType_Float) - { - if (op == '+') - *(float*)value1 = *(float*)value1 + *(const float*)value2; - else if (op == '-') - *(float*)value1 = *(float*)value1 - *(const float*)value2; - } -} - -// User can input math operators (e.g. +100) to edit a numerical values. -static void DataTypeApplyOpFromText(const char* buf, const char* initial_value_buf, ImGuiDataType data_type, void* data_ptr, const char* scalar_format) -{ - while (ImCharIsSpace(*buf)) - buf++; - - // We don't support '-' op because it would conflict with inputing negative value. - // Instead you can use +-100 to subtract from an existing value - char op = buf[0]; - if (op == '+' || op == '*' || op == '/') - { - buf++; - while (ImCharIsSpace(*buf)) - buf++; - } - else - { - op = 0; - } - if (!buf[0]) - return; - - if (data_type == ImGuiDataType_Int) - { - if (!scalar_format) - scalar_format = "%d"; - int* v = (int*)data_ptr; - int ref_v = *v; - if (op && sscanf(initial_value_buf, scalar_format, &ref_v) < 1) - return; - - // Store operand in a float so we can use fractional value for multipliers (*1.1), but constant always parsed as integer so we can fit big integers (e.g. 2000000003) past float precision - float op_v = 0.0f; - if (op == '+') { if (sscanf(buf, "%f", &op_v) == 1) *v = (int)(ref_v + op_v); } // Add (use "+-" to subtract) - else if (op == '*') { if (sscanf(buf, "%f", &op_v) == 1) *v = (int)(ref_v * op_v); } // Multiply - else if (op == '/') { if (sscanf(buf, "%f", &op_v) == 1 && op_v != 0.0f) *v = (int)(ref_v / op_v); }// Divide - else { if (sscanf(buf, scalar_format, &ref_v) == 1) *v = ref_v; } // Assign constant - } - else if (data_type == ImGuiDataType_Float) - { - if (!scalar_format) - scalar_format = "%f"; - float* v = (float*)data_ptr; - float ref_v = *v; - if (op && sscanf(initial_value_buf, scalar_format, &ref_v) < 1) - return; - float op_v = 0.0f; - if (sscanf(buf, scalar_format, &op_v) < 1) - return; - - if (op == '+') { *v = ref_v + op_v; } // Add (use "+-" to subtract) - else if (op == '*') { *v = ref_v * op_v; } // Multiply - else if (op == '/') { if (op_v != 0.0f) *v = ref_v / op_v; } // Divide - else { *v = op_v; } // Assign constant - } -} - -// Create text input in place of a slider (when CTRL+Clicking on slider) -bool ImGui::InputScalarAsWidgetReplacement(const ImRect& aabb, const char* label, ImGuiDataType data_type, void* data_ptr, ImGuiID id, int decimal_precision) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - // Our replacement widget will override the focus ID (registered previously to allow for a TAB focus to happen) - SetActiveID(g.ScalarAsInputTextId, window); - g.HoveredId = 0; - FocusableItemUnregister(window); - - char buf[32]; - DataTypeFormatString(data_type, data_ptr, decimal_precision, buf, IM_ARRAYSIZE(buf)); - bool value_changed = InputTextEx(label, buf, IM_ARRAYSIZE(buf), aabb.GetSize() - g.Style.FramePadding*2.0f, ImGuiInputTextFlags_CharsDecimal | ImGuiInputTextFlags_AutoSelectAll); - if (g.ScalarAsInputTextId == 0) - { - // First frame - IM_ASSERT(g.ActiveId == id); // InputText ID expected to match the Slider ID (else we'd need to store them both, which is also possible) - g.ScalarAsInputTextId = g.ActiveId; - g.HoveredId = id; - } - else if (g.ActiveId != g.ScalarAsInputTextId) - { - // Release - g.ScalarAsInputTextId = 0; - } - if (value_changed) - DataTypeApplyOpFromText(buf, GImGui->InputTextState.InitialText.begin(), data_type, data_ptr, NULL); - return value_changed; -} - -// Parse display precision back from the display format string -int ImGui::ParseFormatPrecision(const char* fmt, int default_precision) -{ - int precision = default_precision; - while ((fmt = strchr(fmt, '%')) != NULL) - { - fmt++; - if (fmt[0] == '%') { fmt++; continue; } // Ignore "%%" - while (*fmt >= '0' && *fmt <= '9') - fmt++; - if (*fmt == '.') - { - precision = atoi(fmt + 1); - if (precision < 0 || precision > 10) - precision = default_precision; - } - break; - } - return precision; -} - -float ImGui::RoundScalar(float value, int decimal_precision) -{ - // Round past decimal precision - // So when our value is 1.99999 with a precision of 0.001 we'll end up rounding to 2.0 - // FIXME: Investigate better rounding methods - static const float min_steps[10] = { 1.0f, 0.1f, 0.01f, 0.001f, 0.0001f, 0.00001f, 0.000001f, 0.0000001f, 0.00000001f, 0.000000001f }; - float min_step = (decimal_precision >= 0 && decimal_precision < 10) ? min_steps[decimal_precision] : powf(10.0f, (float)-decimal_precision); - bool negative = value < 0.0f; - value = fabsf(value); - float remainder = fmodf(value, min_step); - if (remainder <= min_step*0.5f) - value -= remainder; - else - value += (min_step - remainder); - return negative ? -value : value; -} - -bool ImGui::SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_min, float v_max, float power, int decimal_precision, bool horizontal) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - const ImGuiStyle& style = g.Style; - - // Draw frame - RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); - - const bool is_non_linear = fabsf(power - 1.0f) > 0.0001f; - - const float grab_padding = 2.0f; - const float slider_sz = horizontal ? (frame_bb.GetWidth() - grab_padding * 2.0f) : (frame_bb.GetHeight() - grab_padding * 2.0f); - float grab_sz; - if (decimal_precision > 0) - grab_sz = ImMin(style.GrabMinSize, slider_sz); - else - grab_sz = ImMin(ImMax(1.0f * (slider_sz / (v_max-v_min+1.0f)), style.GrabMinSize), slider_sz); // Integer sliders, if possible have the grab size represent 1 unit - const float slider_usable_sz = slider_sz - grab_sz; - const float slider_usable_pos_min = (horizontal ? frame_bb.Min.x : frame_bb.Min.y) + grab_padding + grab_sz*0.5f; - const float slider_usable_pos_max = (horizontal ? frame_bb.Max.x : frame_bb.Max.y) - grab_padding - grab_sz*0.5f; - - // For logarithmic sliders that cross over sign boundary we want the exponential increase to be symmetric around 0.0f - float linear_zero_pos = 0.0f; // 0.0->1.0f - if (v_min * v_max < 0.0f) - { - // Different sign - const float linear_dist_min_to_0 = powf(fabsf(0.0f - v_min), 1.0f/power); - const float linear_dist_max_to_0 = powf(fabsf(v_max - 0.0f), 1.0f/power); - linear_zero_pos = linear_dist_min_to_0 / (linear_dist_min_to_0+linear_dist_max_to_0); - } - else - { - // Same sign - linear_zero_pos = v_min < 0.0f ? 1.0f : 0.0f; - } - - // Process clicking on the slider - bool value_changed = false; - if (g.ActiveId == id) - { - if (g.IO.MouseDown[0]) - { - const float mouse_abs_pos = horizontal ? g.IO.MousePos.x : g.IO.MousePos.y; - float normalized_pos = ImClamp((mouse_abs_pos - slider_usable_pos_min) / slider_usable_sz, 0.0f, 1.0f); - if (!horizontal) - normalized_pos = 1.0f - normalized_pos; - - float new_value; - if (is_non_linear) - { - // Account for logarithmic scale on both sides of the zero - if (normalized_pos < linear_zero_pos) - { - // Negative: rescale to the negative range before powering - float a = 1.0f - (normalized_pos / linear_zero_pos); - a = powf(a, power); - new_value = ImLerp(ImMin(v_max,0.0f), v_min, a); - } - else - { - // Positive: rescale to the positive range before powering - float a; - if (fabsf(linear_zero_pos - 1.0f) > 1.e-6) - a = (normalized_pos - linear_zero_pos) / (1.0f - linear_zero_pos); - else - a = normalized_pos; - a = powf(a, power); - new_value = ImLerp(ImMax(v_min,0.0f), v_max, a); - } - } - else - { - // Linear slider - new_value = ImLerp(v_min, v_max, normalized_pos); - } - - // Round past decimal precision - new_value = RoundScalar(new_value, decimal_precision); - if (*v != new_value) - { - *v = new_value; - value_changed = true; - } - } - else - { - SetActiveID(0); - } - } - - // Calculate slider grab positioning - float grab_t; - if (is_non_linear) - { - float v_clamped = ImClamp(*v, v_min, v_max); - if (v_clamped < 0.0f) - { - const float f = 1.0f - (v_clamped - v_min) / (ImMin(0.0f,v_max) - v_min); - grab_t = (1.0f - powf(f, 1.0f/power)) * linear_zero_pos; - } - else - { - const float f = (v_clamped - ImMax(0.0f,v_min)) / (v_max - ImMax(0.0f,v_min)); - grab_t = linear_zero_pos + powf(f, 1.0f/power) * (1.0f - linear_zero_pos); - } - } - else - { - // Linear slider - grab_t = (ImClamp(*v, v_min, v_max) - v_min) / (v_max - v_min); - } - - // Draw - if (!horizontal) - grab_t = 1.0f - grab_t; - const float grab_pos = ImLerp(slider_usable_pos_min, slider_usable_pos_max, grab_t); - ImRect grab_bb; - if (horizontal) - grab_bb = ImRect(ImVec2(grab_pos - grab_sz*0.5f, frame_bb.Min.y + grab_padding), ImVec2(grab_pos + grab_sz*0.5f, frame_bb.Max.y - grab_padding)); - else - grab_bb = ImRect(ImVec2(frame_bb.Min.x + grab_padding, grab_pos - grab_sz*0.5f), ImVec2(frame_bb.Max.x - grab_padding, grab_pos + grab_sz*0.5f)); - window->DrawList->AddRectFilled(grab_bb.Min, grab_bb.Max, window->Color(g.ActiveId == id ? ImGuiCol_SliderGrabActive : ImGuiCol_SliderGrab), style.GrabRounding); - - return value_changed; -} - -// Use power!=1.0 for logarithmic sliders. -// Adjust display_format to decorate the value with a prefix or a suffix. -// "%.3f" 1.234 -// "%5.2f secs" 01.23 secs -// "Gold: %.0f" Gold: 1 -bool ImGui::SliderFloat(const char* label, float* v, float v_min, float v_max, const char* display_format, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const float w = ImGui::CalcItemWidth(); - - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); - const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); - - // NB- we don't call ItemSize() yet because we may turn into a text edit box below - if (!ItemAdd(total_bb, &id)) - { - ItemSize(total_bb, style.FramePadding.y); - return false; - } - - const bool hovered = IsHovered(frame_bb, id); - if (hovered) - g.HoveredId = id; - - if (!display_format) - display_format = "%.3f"; - int decimal_precision = ParseFormatPrecision(display_format, 3); - - // Tabbing or CTRL-clicking on Slider turns it into an input box - bool start_text_input = false; - const bool tab_focus_requested = FocusableItemRegister(window, g.ActiveId == id); - if (tab_focus_requested || (hovered && g.IO.MouseClicked[0])) - { - SetActiveID(id, window); - FocusWindow(window); - - if (tab_focus_requested || g.IO.KeyCtrl) - { - start_text_input = true; - g.ScalarAsInputTextId = 0; - } - } - if (start_text_input || (g.ActiveId == id && g.ScalarAsInputTextId == id)) - return InputScalarAsWidgetReplacement(frame_bb, label, ImGuiDataType_Float, v, id, decimal_precision); - - ItemSize(total_bb, style.FramePadding.y); - - // Actual slider behavior + render grab - const bool value_changed = SliderBehavior(frame_bb, id, v, v_min, v_max, power, decimal_precision, true); - - // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. - char value_buf[64]; - const char* value_buf_end = value_buf + ImFormatString(value_buf, IM_ARRAYSIZE(value_buf), display_format, *v); - RenderTextClipped(frame_bb.Min, frame_bb.Max, value_buf, value_buf_end, NULL, ImGuiAlign_Center|ImGuiAlign_VCenter); - - if (label_size.x > 0.0f) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - return value_changed; -} - -bool ImGui::VSliderFloat(const char* label, const ImVec2& size, float* v, float v_min, float v_max, const char* display_format, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + size); - const ImRect bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); - - ItemSize(bb, style.FramePadding.y); - if (!ItemAdd(frame_bb, &id)) - return false; - - const bool hovered = IsHovered(frame_bb, id); - if (hovered) - g.HoveredId = id; - - if (!display_format) - display_format = "%.3f"; - int decimal_precision = ParseFormatPrecision(display_format, 3); - - if (hovered && g.IO.MouseClicked[0]) - { - SetActiveID(id, window); - FocusWindow(window); - } - - // Actual slider behavior + render grab - bool value_changed = SliderBehavior(frame_bb, id, v, v_min, v_max, power, decimal_precision, false); - - // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. - // For the vertical slider we allow centered text to overlap the frame padding - char value_buf[64]; - char* value_buf_end = value_buf + ImFormatString(value_buf, IM_ARRAYSIZE(value_buf), display_format, *v); - RenderTextClipped(ImVec2(frame_bb.Min.x, frame_bb.Min.y + style.FramePadding.y), frame_bb.Max, value_buf, value_buf_end, NULL, ImGuiAlign_Center); - - if (label_size.x > 0.0f) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - return value_changed; -} - -bool ImGui::SliderAngle(const char* label, float* v_rad, float v_degrees_min, float v_degrees_max) -{ - float v_deg = (*v_rad) * 360.0f / (2*IM_PI); - bool value_changed = ImGui::SliderFloat(label, &v_deg, v_degrees_min, v_degrees_max, "%.0f deg", 1.0f); - *v_rad = v_deg * (2*IM_PI) / 360.0f; - return value_changed; -} - -bool ImGui::SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format) -{ - if (!display_format) - display_format = "%.0f"; - float v_f = (float)*v; - bool value_changed = ImGui::SliderFloat(label, &v_f, (float)v_min, (float)v_max, display_format, 1.0f); - *v = (int)v_f; - return value_changed; -} - -bool ImGui::VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* display_format) -{ - if (!display_format) - display_format = "%.0f"; - float v_f = (float)*v; - bool value_changed = ImGui::VSliderFloat(label, size, &v_f, (float)v_min, (float)v_max, display_format, 1.0f); - *v = (int)v_f; - return value_changed; -} - -// Add multiple sliders on 1 line for compact edition of multiple components -bool ImGui::SliderFloatN(const char* label, float* v, int components, float v_min, float v_max, const char* display_format, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - bool value_changed = false; - ImGui::BeginGroup(); - ImGui::PushID(label); - PushMultiItemsWidths(components); - for (int i = 0; i < components; i++) - { - ImGui::PushID(i); - value_changed |= ImGui::SliderFloat("##v", &v[i], v_min, v_max, display_format, power); - ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - ImGui::PopID(); - ImGui::PopItemWidth(); - } - ImGui::PopID(); - - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); - ImGui::EndGroup(); - - return value_changed; -} - -bool ImGui::SliderFloat2(const char* label, float v[2], float v_min, float v_max, const char* display_format, float power) -{ - return SliderFloatN(label, v, 2, v_min, v_max, display_format, power); -} - -bool ImGui::SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* display_format, float power) -{ - return SliderFloatN(label, v, 3, v_min, v_max, display_format, power); -} - -bool ImGui::SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* display_format, float power) -{ - return SliderFloatN(label, v, 4, v_min, v_max, display_format, power); -} - -bool ImGui::SliderIntN(const char* label, int* v, int components, int v_min, int v_max, const char* display_format) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - bool value_changed = false; - ImGui::BeginGroup(); - ImGui::PushID(label); - PushMultiItemsWidths(components); - for (int i = 0; i < components; i++) - { - ImGui::PushID(i); - value_changed |= ImGui::SliderInt("##v", &v[i], v_min, v_max, display_format); - ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - ImGui::PopID(); - ImGui::PopItemWidth(); - } - ImGui::PopID(); - - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); - ImGui::EndGroup(); - - return value_changed; -} - -bool ImGui::SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* display_format) -{ - return SliderIntN(label, v, 2, v_min, v_max, display_format); -} - -bool ImGui::SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* display_format) -{ - return SliderIntN(label, v, 3, v_min, v_max, display_format); -} - -bool ImGui::SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* display_format) -{ - return SliderIntN(label, v, 4, v_min, v_max, display_format); -} - -bool ImGui::DragBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_speed, float v_min, float v_max, int decimal_precision, float power) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - const ImGuiStyle& style = g.Style; - - // Draw frame - const ImU32 frame_col = window->Color(g.ActiveId == id ? ImGuiCol_FrameBgActive : g.HoveredId == id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg); - RenderFrame(frame_bb.Min, frame_bb.Max, frame_col, true, style.FrameRounding); - - bool value_changed = false; - - // Process clicking on the drag - if (g.ActiveId == id) - { - if (g.IO.MouseDown[0]) - { - if (g.ActiveIdIsJustActivated) - { - // Lock current value on click - g.DragCurrentValue = *v; - g.DragLastMouseDelta = ImVec2(0.f, 0.f); - } - - const ImVec2 mouse_drag_delta = ImGui::GetMouseDragDelta(0, 1.0f); - if (fabsf(mouse_drag_delta.x - g.DragLastMouseDelta.x) > 0.0f) - { - float speed = v_speed; - if (speed == 0.0f && (v_max - v_min) != 0.0f && (v_max - v_min) < FLT_MAX) - speed = (v_max - v_min) * g.DragSpeedDefaultRatio; - if (g.IO.KeyShift && g.DragSpeedScaleFast >= 0.0f) - speed = speed * g.DragSpeedScaleFast; - if (g.IO.KeyAlt && g.DragSpeedScaleSlow >= 0.0f) - speed = speed * g.DragSpeedScaleSlow; - - float v_cur = g.DragCurrentValue; - float delta = (mouse_drag_delta.x - g.DragLastMouseDelta.x) * speed; - if (fabsf(power - 1.0f) > 0.001f) - { - // Logarithmic curve on both side of 0.0 - float v0_abs = v_cur >= 0.0f ? v_cur : -v_cur; - float v0_sign = v_cur >= 0.0f ? 1.0f : -1.0f; - float v1 = powf(v0_abs, 1.0f / power) + (delta * v0_sign); - float v1_abs = v1 >= 0.0f ? v1 : -v1; - float v1_sign = v1 >= 0.0f ? 1.0f : -1.0f; // Crossed sign line - v_cur = powf(v1_abs, power) * v0_sign * v1_sign; // Reapply sign - } - else - { - v_cur += delta; - } - g.DragLastMouseDelta.x = mouse_drag_delta.x; - - // Clamp - if (v_min < v_max) - v_cur = ImClamp(v_cur, v_min, v_max); - g.DragCurrentValue = v_cur; - - // Round to user desired precision, then apply - v_cur = RoundScalar(v_cur, decimal_precision); - if (*v != v_cur) - { - *v = v_cur; - value_changed = true; - } - } - } - else - { - SetActiveID(0); - } - } - - return value_changed; -} - -bool ImGui::DragFloat(const char* label, float* v, float v_speed, float v_min, float v_max, const char* display_format, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const float w = ImGui::CalcItemWidth(); - - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); - const ImRect inner_bb(frame_bb.Min + style.FramePadding, frame_bb.Max - style.FramePadding); - const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); - - // NB- we don't call ItemSize() yet because we may turn into a text edit box below - if (!ItemAdd(total_bb, &id)) - { - ItemSize(total_bb, style.FramePadding.y); - return false; - } - - const bool hovered = IsHovered(frame_bb, id); - if (hovered) - g.HoveredId = id; - - if (!display_format) - display_format = "%.3f"; - int decimal_precision = ParseFormatPrecision(display_format, 3); - - // Tabbing or CTRL-clicking on Drag turns it into an input box - bool start_text_input = false; - const bool tab_focus_requested = FocusableItemRegister(window, g.ActiveId == id); - if (tab_focus_requested || (hovered && (g.IO.MouseClicked[0] | g.IO.MouseDoubleClicked[0]))) - { - SetActiveID(id, window); - FocusWindow(window); - - if (tab_focus_requested || g.IO.KeyCtrl || g.IO.MouseDoubleClicked[0]) - { - start_text_input = true; - g.ScalarAsInputTextId = 0; - } - } - if (start_text_input || (g.ActiveId == id && g.ScalarAsInputTextId == id)) - return InputScalarAsWidgetReplacement(frame_bb, label, ImGuiDataType_Float, v, id, decimal_precision); - - // Actual drag behavior - ItemSize(total_bb, style.FramePadding.y); - const bool value_changed = DragBehavior(frame_bb, id, v, v_speed, v_min, v_max, decimal_precision, power); - - // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. - char value_buf[64]; - const char* value_buf_end = value_buf + ImFormatString(value_buf, IM_ARRAYSIZE(value_buf), display_format, *v); - RenderTextClipped(frame_bb.Min, frame_bb.Max, value_buf, value_buf_end, NULL, ImGuiAlign_Center|ImGuiAlign_VCenter); - - if (label_size.x > 0.0f) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, inner_bb.Min.y), label); - - return value_changed; -} - -bool ImGui::DragFloatN(const char* label, float* v, int components, float v_speed, float v_min, float v_max, const char* display_format, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - bool value_changed = false; - ImGui::BeginGroup(); - ImGui::PushID(label); - PushMultiItemsWidths(components); - for (int i = 0; i < components; i++) - { - ImGui::PushID(i); - value_changed |= ImGui::DragFloat("##v", &v[i], v_speed, v_min, v_max, display_format, power); - ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - ImGui::PopID(); - ImGui::PopItemWidth(); - } - ImGui::PopID(); - - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); - ImGui::EndGroup(); - - return value_changed; -} - -bool ImGui::DragFloat2(const char* label, float v[2], float v_speed, float v_min, float v_max, const char* display_format, float power) -{ - return DragFloatN(label, v, 2, v_speed, v_min, v_max, display_format, power); -} - -bool ImGui::DragFloat3(const char* label, float v[3], float v_speed, float v_min, float v_max, const char* display_format, float power) -{ - return DragFloatN(label, v, 3, v_speed, v_min, v_max, display_format, power); -} - -bool ImGui::DragFloat4(const char* label, float v[4], float v_speed, float v_min, float v_max, const char* display_format, float power) -{ - return DragFloatN(label, v, 4, v_speed, v_min, v_max, display_format, power); -} - -bool ImGui::DragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, const char* display_format, const char* display_format_max, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - ImGui::PushID(label); - ImGui::BeginGroup(); - PushMultiItemsWidths(2); - - bool value_changed = ImGui::DragFloat("##min", v_current_min, v_speed, (v_min >= v_max) ? -FLT_MAX : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format, power); - ImGui::PopItemWidth(); - ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - value_changed |= ImGui::DragFloat("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? FLT_MAX : v_max, display_format_max ? display_format_max : display_format, power); - ImGui::PopItemWidth(); - ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); - ImGui::EndGroup(); - ImGui::PopID(); - - return value_changed; -} - -// NB: v_speed is float to allow adjusting the drag speed with more precision -bool ImGui::DragInt(const char* label, int* v, float v_speed, int v_min, int v_max, const char* display_format) -{ - if (!display_format) - display_format = "%.0f"; - float v_f = (float)*v; - bool value_changed = ImGui::DragFloat(label, &v_f, v_speed, (float)v_min, (float)v_max, display_format); - *v = (int)v_f; - return value_changed; -} - -bool ImGui::DragIntN(const char* label, int* v, int components, float v_speed, int v_min, int v_max, const char* display_format) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - bool value_changed = false; - ImGui::BeginGroup(); - ImGui::PushID(label); - PushMultiItemsWidths(components); - for (int i = 0; i < components; i++) - { - ImGui::PushID(i); - value_changed |= ImGui::DragInt("##v", &v[i], v_speed, v_min, v_max, display_format); - ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - ImGui::PopID(); - ImGui::PopItemWidth(); - } - ImGui::PopID(); - - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); - ImGui::EndGroup(); - - return value_changed; -} - -bool ImGui::DragInt2(const char* label, int v[2], float v_speed, int v_min, int v_max, const char* display_format) -{ - return DragIntN(label, v, 2, v_speed, v_min, v_max, display_format); -} - -bool ImGui::DragInt3(const char* label, int v[3], float v_speed, int v_min, int v_max, const char* display_format) -{ - return DragIntN(label, v, 3, v_speed, v_min, v_max, display_format); -} - -bool ImGui::DragInt4(const char* label, int v[4], float v_speed, int v_min, int v_max, const char* display_format) -{ - return DragIntN(label, v, 4, v_speed, v_min, v_max, display_format); -} - -bool ImGui::DragIntRange2(const char* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, const char* display_format, const char* display_format_max) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - ImGui::PushID(label); - ImGui::BeginGroup(); - PushMultiItemsWidths(2); - - bool value_changed = ImGui::DragInt("##min", v_current_min, v_speed, (v_min >= v_max) ? IM_INT_MIN : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format); - ImGui::PopItemWidth(); - ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - value_changed |= ImGui::DragInt("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? IM_INT_MAX : v_max, display_format_max ? display_format_max : display_format); - ImGui::PopItemWidth(); - ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); - ImGui::EndGroup(); - ImGui::PopID(); - - return value_changed; -} - -void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - - const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); - if (graph_size.x == 0.0f) - graph_size.x = ImGui::CalcItemWidth() + (style.FramePadding.x * 2); - if (graph_size.y == 0.0f) - graph_size.y = label_size.y + (style.FramePadding.y * 2); - - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(graph_size.x, graph_size.y)); - const ImRect inner_bb(frame_bb.Min + style.FramePadding, frame_bb.Max - style.FramePadding); - const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0)); - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, NULL)) - return; - - // Determine scale from values if not specified - if (scale_min == FLT_MAX || scale_max == FLT_MAX) - { - float v_min = FLT_MAX; - float v_max = -FLT_MAX; - for (int i = 0; i < values_count; i++) - { - const float v = values_getter(data, i); - v_min = ImMin(v_min, v); - v_max = ImMax(v_max, v); - } - if (scale_min == FLT_MAX) - scale_min = v_min; - if (scale_max == FLT_MAX) - scale_max = v_max; - } - - RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); - - int res_w = ImMin((int)graph_size.x, values_count); - if (plot_type == ImGuiPlotType_Lines) - res_w -= 1; - - // Tooltip on hover - int v_hovered = -1; - if (IsHovered(inner_bb, 0)) - { - const float t = ImClamp((g.IO.MousePos.x - inner_bb.Min.x) / (inner_bb.Max.x - inner_bb.Min.x), 0.0f, 0.9999f); - const int v_idx = (int)(t * (values_count + ((plot_type == ImGuiPlotType_Lines) ? -1 : 0))); - IM_ASSERT(v_idx >= 0 && v_idx < values_count); - - const float v0 = values_getter(data, (v_idx + values_offset) % values_count); - const float v1 = values_getter(data, (v_idx + 1 + values_offset) % values_count); - if (plot_type == ImGuiPlotType_Lines) - ImGui::SetTooltip("%d: %8.4g\n%d: %8.4g", v_idx, v0, v_idx+1, v1); - else if (plot_type == ImGuiPlotType_Histogram) - ImGui::SetTooltip("%d: %8.4g", v_idx, v0); - v_hovered = v_idx; - } - - const float t_step = 1.0f / (float)res_w; - - float v0 = values_getter(data, (0 + values_offset) % values_count); - float t0 = 0.0f; - ImVec2 p0 = ImVec2( t0, 1.0f - ImSaturate((v0 - scale_min) / (scale_max - scale_min)) ); - - const ImU32 col_base = window->Color((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram); - const ImU32 col_hovered = window->Color((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered); - - for (int n = 0; n < res_w; n++) - { - const float t1 = t0 + t_step; - const int v_idx = (int)(t0 * values_count); - IM_ASSERT(v_idx >= 0 && v_idx < values_count); - const float v1 = values_getter(data, (v_idx + values_offset + 1) % values_count); - const ImVec2 p1 = ImVec2( t1, 1.0f - ImSaturate((v1 - scale_min) / (scale_max - scale_min)) ); - - // NB- Draw calls are merged together by the DrawList system. - if (plot_type == ImGuiPlotType_Lines) - window->DrawList->AddLine(ImLerp(inner_bb.Min, inner_bb.Max, p0), ImLerp(inner_bb.Min, inner_bb.Max, p1), v_hovered == v_idx ? col_hovered : col_base); - else if (plot_type == ImGuiPlotType_Histogram) - window->DrawList->AddRectFilled(ImLerp(inner_bb.Min, inner_bb.Max, p0), ImLerp(inner_bb.Min, inner_bb.Max, ImVec2(p1.x, 1.0f))+ImVec2(-1,0), v_hovered == v_idx ? col_hovered : col_base); - - t0 = t1; - p0 = p1; - } - - // Text overlay - if (overlay_text) - RenderTextClipped(ImVec2(frame_bb.Min.x, frame_bb.Min.y + style.FramePadding.y), frame_bb.Max, overlay_text, NULL, NULL, ImGuiAlign_Center); - - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, inner_bb.Min.y), label); -} - -struct ImGuiPlotArrayGetterData -{ - const float* Values; - int Stride; - - ImGuiPlotArrayGetterData(const float* values, int stride) { Values = values; Stride = stride; } -}; - -static float Plot_ArrayGetter(void* data, int idx) -{ - ImGuiPlotArrayGetterData* plot_data = (ImGuiPlotArrayGetterData*)data; - const float v = *(float*)(void*)((unsigned char*)plot_data->Values + (size_t)idx * plot_data->Stride); - return v; -} - -void ImGui::PlotLines(const char* label, const float* values, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) -{ - ImGuiPlotArrayGetterData data(values, stride); - PlotEx(ImGuiPlotType_Lines, label, &Plot_ArrayGetter, (void*)&data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); -} - -void ImGui::PlotLines(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) -{ - PlotEx(ImGuiPlotType_Lines, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); -} - -void ImGui::PlotHistogram(const char* label, const float* values, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) -{ - ImGuiPlotArrayGetterData data(values, stride); - PlotEx(ImGuiPlotType_Histogram, label, &Plot_ArrayGetter, (void*)&data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); -} - -void ImGui::PlotHistogram(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) -{ - PlotEx(ImGuiPlotType_Histogram, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); -} - -bool ImGui::Checkbox(const char* label, bool* v) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const ImVec2 label_size = CalcTextSize(label, NULL, true); - - const ImRect check_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(label_size.y + style.FramePadding.y*2, label_size.y + style.FramePadding.y*2)); - ItemSize(check_bb, style.FramePadding.y); - - ImRect total_bb = check_bb; - if (label_size.x > 0) - SameLine(0, style.ItemInnerSpacing.x); - const ImRect text_bb(window->DC.CursorPos + ImVec2(0,style.FramePadding.y), window->DC.CursorPos + ImVec2(0,style.FramePadding.y) + label_size); - if (label_size.x > 0) - { - ItemSize(ImVec2(text_bb.GetWidth(), check_bb.GetHeight()), style.FramePadding.y); - total_bb = ImRect(ImMin(check_bb.Min, text_bb.Min), ImMax(check_bb.Max, text_bb.Max)); - } - - if (!ItemAdd(total_bb, &id)) - return false; - - bool hovered, held; - bool pressed = ButtonBehavior(total_bb, id, &hovered, &held, true); - if (pressed) - *v = !(*v); - - RenderFrame(check_bb.Min, check_bb.Max, window->Color((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), true, style.FrameRounding); - if (*v) - { - const float check_sz = ImMin(check_bb.GetWidth(), check_bb.GetHeight()); - const float pad = ImMax(1.0f, (float)(int)(check_sz / 6.0f)); - window->DrawList->AddRectFilled(check_bb.Min+ImVec2(pad,pad), check_bb.Max-ImVec2(pad,pad), window->Color(ImGuiCol_CheckMark), style.FrameRounding); - } - - if (g.LogEnabled) - LogRenderedText(text_bb.GetTL(), *v ? "[x]" : "[ ]"); - RenderText(text_bb.GetTL(), label); - - return pressed; -} - -bool ImGui::CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value) -{ - bool v = (*flags & flags_value) ? true : false; - bool pressed = ImGui::Checkbox(label, &v); - if (v) - *flags |= flags_value; - else - *flags &= ~flags_value; - return pressed; -} - -bool ImGui::RadioButton(const char* label, bool active) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const ImVec2 label_size = CalcTextSize(label, NULL, true); - - const ImRect check_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(label_size.y + style.FramePadding.y*2-1, label_size.y + style.FramePadding.y*2-1)); - ItemSize(check_bb, style.FramePadding.y); - - ImRect total_bb = check_bb; - if (label_size.x > 0) - SameLine(0, style.ItemInnerSpacing.x); - const ImRect text_bb(window->DC.CursorPos + ImVec2(0, style.FramePadding.y), window->DC.CursorPos + ImVec2(0, style.FramePadding.y) + label_size); - if (label_size.x > 0) - { - ItemSize(ImVec2(text_bb.GetWidth(), check_bb.GetHeight()), style.FramePadding.y); - total_bb.Add(text_bb); - } - - if (!ItemAdd(total_bb, &id)) - return false; - - ImVec2 center = check_bb.GetCenter(); - center.x = (float)(int)center.x + 0.5f; - center.y = (float)(int)center.y + 0.5f; - const float radius = check_bb.GetHeight() * 0.5f; - - bool hovered, held; - bool pressed = ButtonBehavior(total_bb, id, &hovered, &held, true); - - window->DrawList->AddCircleFilled(center, radius, window->Color((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), 16); - if (active) - { - const float check_sz = ImMin(check_bb.GetWidth(), check_bb.GetHeight()); - const float pad = ImMax(1.0f, (float)(int)(check_sz / 6.0f)); - window->DrawList->AddCircleFilled(center, radius-pad, window->Color(ImGuiCol_CheckMark), 16); - } - - if (window->Flags & ImGuiWindowFlags_ShowBorders) - { - window->DrawList->AddCircle(center+ImVec2(1,1), radius, window->Color(ImGuiCol_BorderShadow), 16); - window->DrawList->AddCircle(center, radius, window->Color(ImGuiCol_Border), 16); - } - - if (g.LogEnabled) - LogRenderedText(text_bb.GetTL(), active ? "(x)" : "( )"); - RenderText(text_bb.GetTL(), label); - - return pressed; -} - -bool ImGui::RadioButton(const char* label, int* v, int v_button) -{ - const bool pressed = ImGui::RadioButton(label, *v == v_button); - if (pressed) - { - *v = v_button; - } - return pressed; -} - -static int InputTextCalcTextLenAndLineCount(const char* text_begin, const char** out_text_end) -{ - int line_count = 0; - const char* s = text_begin; - while (char c = *s++) // We are only matching for \n so we can ignore UTF-8 decoding - if (c == '\n') - line_count++; - s--; - if (s[0] != '\n' && s[0] != '\r') - line_count++; - *out_text_end = s; - return line_count; -} - -static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const ImWchar* text_end, const ImWchar** remaining, ImVec2* out_offset, bool stop_on_new_line) -{ - ImFont* font = GImGui->Font; - const float line_height = GImGui->FontSize; - const float scale = line_height / font->FontSize; - - ImVec2 text_size = ImVec2(0,0); - float line_width = 0.0f; - - const ImWchar* s = text_begin; - while (s < text_end) - { - unsigned int c = (unsigned int)(*s++); - if (c == '\n') - { - text_size.x = ImMax(text_size.x, line_width); - text_size.y += line_height; - line_width = 0.0f; - if (stop_on_new_line) - break; - continue; - } - if (c == '\r') - continue; - - const float char_width = font->GetCharAdvance((unsigned short)c) * scale; - line_width += char_width; - } - - if (text_size.x < line_width) - text_size.x = line_width; - - if (out_offset) - *out_offset = ImVec2(line_width, text_size.y + line_height); // offset allow for the possibility of sitting after a trailing \n - - if (line_width > 0 || text_size.y == 0.0f) // whereas size.y will ignore the trailing \n - text_size.y += line_height; - - if (remaining) - *remaining = s; - - return text_size; -} - -// Wrapper for stb_textedit.h to edit text (our wrapper is for: statically sized buffer, single-line, wchar characters. InputText converts between UTF-8 and wchar) -namespace ImGuiStb -{ - -static int STB_TEXTEDIT_STRINGLEN(const STB_TEXTEDIT_STRING* obj) { return obj->CurLenW; } -static ImWchar STB_TEXTEDIT_GETCHAR(const STB_TEXTEDIT_STRING* obj, int idx) { return obj->Text[idx]; } -static float STB_TEXTEDIT_GETWIDTH(STB_TEXTEDIT_STRING* obj, int line_start_idx, int char_idx) { ImWchar c = obj->Text[line_start_idx+char_idx]; if (c == '\n') return STB_TEXTEDIT_GETWIDTH_NEWLINE; return GImGui->Font->GetCharAdvance(c) * (GImGui->FontSize / GImGui->Font->FontSize); } -static int STB_TEXTEDIT_KEYTOTEXT(int key) { return key >= 0x10000 ? 0 : key; } -static ImWchar STB_TEXTEDIT_NEWLINE = '\n'; -static void STB_TEXTEDIT_LAYOUTROW(StbTexteditRow* r, STB_TEXTEDIT_STRING* obj, int line_start_idx) -{ - const ImWchar* text = obj->Text.Data; - const ImWchar* text_remaining = NULL; - const ImVec2 size = InputTextCalcTextSizeW(text + line_start_idx, text + obj->CurLenW, &text_remaining, NULL, true); - r->x0 = 0.0f; - r->x1 = size.x; - r->baseline_y_delta = size.y; - r->ymin = 0.0f; - r->ymax = size.y; - r->num_chars = (int)(text_remaining - (text + line_start_idx)); -} - -static bool is_separator(unsigned int c) { return c==',' || c==';' || c=='(' || c==')' || c=='{' || c=='}' || c=='[' || c==']' || c=='|'; } -#define STB_TEXTEDIT_IS_SPACE(CH) ( ImCharIsSpace((unsigned int)CH) || is_separator((unsigned int)CH) ) -static void STB_TEXTEDIT_DELETECHARS(STB_TEXTEDIT_STRING* obj, int pos, int n) -{ - ImWchar* dst = obj->Text.Data + pos; - - // We maintain our buffer length in both UTF-8 and wchar formats - obj->CurLenA -= ImTextCountUtf8BytesFromStr(dst, dst + n); - obj->CurLenW -= n; - - // Offset remaining text - const ImWchar* src = obj->Text.Data + pos + n; - while (ImWchar c = *src++) - *dst++ = c; - *dst = '\0'; -} - -static bool STB_TEXTEDIT_INSERTCHARS(STB_TEXTEDIT_STRING* obj, int pos, const ImWchar* new_text, int new_text_len) -{ - const int text_len = obj->CurLenW; - if (new_text_len + text_len + 1 > obj->Text.Size) - return false; - - const int new_text_len_utf8 = ImTextCountUtf8BytesFromStr(new_text, new_text + new_text_len); - if (new_text_len_utf8 + obj->CurLenA + 1 > obj->BufSizeA) - return false; - - ImWchar* text = obj->Text.Data; - if (pos != text_len) - memmove(text + pos + new_text_len, text + pos, (size_t)(text_len - pos) * sizeof(ImWchar)); - memcpy(text + pos, new_text, (size_t)new_text_len * sizeof(ImWchar)); - - obj->CurLenW += new_text_len; - obj->CurLenA += new_text_len_utf8; - obj->Text[obj->CurLenW] = '\0'; - - return true; -} - -// We don't use an enum so we can build even with conflicting symbols (if another user of stb_textedit.h leak their STB_TEXTEDIT_K_* symbols) -#define STB_TEXTEDIT_K_LEFT 0x10000 // keyboard input to move cursor left -#define STB_TEXTEDIT_K_RIGHT 0x10001 // keyboard input to move cursor right -#define STB_TEXTEDIT_K_UP 0x10002 // keyboard input to move cursor up -#define STB_TEXTEDIT_K_DOWN 0x10003 // keyboard input to move cursor down -#define STB_TEXTEDIT_K_LINESTART 0x10004 // keyboard input to move cursor to start of line -#define STB_TEXTEDIT_K_LINEEND 0x10005 // keyboard input to move cursor to end of line -#define STB_TEXTEDIT_K_TEXTSTART 0x10006 // keyboard input to move cursor to start of text -#define STB_TEXTEDIT_K_TEXTEND 0x10007 // keyboard input to move cursor to end of text -#define STB_TEXTEDIT_K_DELETE 0x10008 // keyboard input to delete selection or character under cursor -#define STB_TEXTEDIT_K_BACKSPACE 0x10009 // keyboard input to delete selection or character left of cursor -#define STB_TEXTEDIT_K_UNDO 0x1000A // keyboard input to perform undo -#define STB_TEXTEDIT_K_REDO 0x1000B // keyboard input to perform redo -#define STB_TEXTEDIT_K_WORDLEFT 0x1000C // keyboard input to move cursor left one word -#define STB_TEXTEDIT_K_WORDRIGHT 0x1000D // keyboard input to move cursor right one word -#define STB_TEXTEDIT_K_SHIFT 0x20000 - -#define STB_TEXTEDIT_IMPLEMENTATION -#include "stb_textedit.h" - -} - -void ImGuiTextEditState::OnKeyPressed(int key) -{ - stb_textedit_key(this, &StbState, key); - CursorFollow = true; - CursorAnimReset(); -} - -// Public API to manipulate UTF-8 text -// We expose UTF-8 to the user (unlike the STB_TEXTEDIT_* functions which are manipulating wchar) -void ImGuiTextEditCallbackData::DeleteChars(int pos, int bytes_count) -{ - char* dst = Buf + pos; - const char* src = Buf + pos + bytes_count; - while (char c = *src++) - *dst++ = c; - *dst = '\0'; - - BufDirty = true; - if (CursorPos + bytes_count >= pos) - CursorPos -= bytes_count; - else if (CursorPos >= pos) - CursorPos = pos; - SelectionStart = SelectionEnd = CursorPos; -} - -void ImGuiTextEditCallbackData::InsertChars(int pos, const char* new_text, const char* new_text_end) -{ - const int text_len = (int)strlen(Buf); - if (!new_text_end) - new_text_end = new_text + strlen(new_text); - const int new_text_len = (int)(new_text_end - new_text); - - if (new_text_len + text_len + 1 >= BufSize) - return; - - if (text_len != pos) - memmove(Buf + pos + new_text_len, Buf + pos, (size_t)(text_len - pos)); - memcpy(Buf + pos, new_text, (size_t)new_text_len * sizeof(char)); - Buf[text_len + new_text_len] = '\0'; - - BufDirty = true; - if (CursorPos >= pos) - CursorPos += new_text_len; - SelectionStart = SelectionEnd = CursorPos; -} - -// Return false to discard a character. -static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) -{ - unsigned int c = *p_char; - - if (c < 128 && c != ' ' && !isprint((int)(c & 0xFF))) - { - bool pass = false; - pass |= (c == '\n' && (flags & ImGuiInputTextFlags_Multiline)); - pass |= (c == '\t' && (flags & ImGuiInputTextFlags_AllowTabInput)); - if (!pass) - return false; - } - - if (c >= 0xE000 && c <= 0xF8FF) // Filter private Unicode range. I don't imagine anybody would want to input them. GLFW on OSX seems to send private characters for special keys like arrow keys. - return false; - - if (flags & (ImGuiInputTextFlags_CharsDecimal | ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase | ImGuiInputTextFlags_CharsNoBlank)) - { - if (flags & ImGuiInputTextFlags_CharsDecimal) - if (!(c >= '0' && c <= '9') && (c != '.') && (c != '-') && (c != '+') && (c != '*') && (c != '/')) - return false; - - if (flags & ImGuiInputTextFlags_CharsHexadecimal) - if (!(c >= '0' && c <= '9') && !(c >= 'a' && c <= 'f') && !(c >= 'A' && c <= 'F')) - return false; - - if (flags & ImGuiInputTextFlags_CharsUppercase) - if (c >= 'a' && c <= 'z') - *p_char = (c += (unsigned int)('A'-'a')); - - if (flags & ImGuiInputTextFlags_CharsNoBlank) - if (ImCharIsSpace(c)) - return false; - } - - if (flags & ImGuiInputTextFlags_CallbackCharFilter) - { - ImGuiTextEditCallbackData callback_data; - memset(&callback_data, 0, sizeof(ImGuiTextEditCallbackData)); - callback_data.EventFlag = ImGuiInputTextFlags_CallbackCharFilter; - callback_data.EventChar = (ImWchar)c; - callback_data.Flags = flags; - callback_data.UserData = user_data; - if (callback(&callback_data) != 0) - return false; - *p_char = callback_data.EventChar; - if (!callback_data.EventChar) - return false; - } - - return true; -} - -// Edit a string of text -bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2& size_arg, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - IM_ASSERT(!((flags & ImGuiInputTextFlags_CallbackHistory) && (flags & ImGuiInputTextFlags_Multiline))); // Can't use both together (they both use up/down keys) - IM_ASSERT(!((flags & ImGuiInputTextFlags_CallbackCompletion) && (flags & ImGuiInputTextFlags_AllowTabInput))); // Can't use both together (they both use tab key) - - ImGuiState& g = *GImGui; - const ImGuiIO& io = g.IO; - const ImGuiStyle& style = g.Style; - - const ImGuiID id = window->GetID(label); - const bool is_multiline = (flags & ImGuiInputTextFlags_Multiline) != 0; - - ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); - ImVec2 size = CalcItemSize(size_arg, ImGui::CalcItemWidth(), is_multiline ? ImGui::GetTextLineHeight() * 8.0f : label_size.y); // Arbitrary default of 8 lines high for multi-line - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + size + style.FramePadding*2.0f); - const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? (style.ItemInnerSpacing.x + label_size.x) : 0.0f, 0.0f)); - - ImGuiWindow* draw_window = window; - if (is_multiline) - { - ImGui::BeginGroup(); - if (!ImGui::BeginChildFrame(id, frame_bb.GetSize())) - { - ImGui::EndChildFrame(); - ImGui::EndGroup(); - return false; - } - draw_window = GetCurrentWindow(); - draw_window->DC.CursorPos += style.FramePadding; - size.x -= draw_window->ScrollbarWidth(); - } - else - { - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, &id)) - return false; - } - - // NB: we are only allowed to access 'edit_state' if we are the active widget. - ImGuiTextEditState& edit_state = g.InputTextState; - - const bool is_ctrl_down = io.KeyCtrl; - const bool is_shift_down = io.KeyShift; - const bool is_alt_down = io.KeyAlt; - const bool focus_requested = FocusableItemRegister(window, g.ActiveId == id, (flags & (ImGuiInputTextFlags_CallbackCompletion|ImGuiInputTextFlags_AllowTabInput)) == 0); // Using completion callback disable keyboard tabbing - const bool focus_requested_by_code = focus_requested && (window->FocusIdxAllCounter == window->FocusIdxAllRequestCurrent); - const bool focus_requested_by_tab = focus_requested && !focus_requested_by_code; - - const bool hovered = IsHovered(frame_bb, id); - if (hovered) - { - g.HoveredId = id; - g.MouseCursor = ImGuiMouseCursor_TextInput; - } - const bool user_clicked = hovered && io.MouseClicked[0]; - const bool user_scrolled = is_multiline && g.ActiveId == 0 && edit_state.Id == id && g.ActiveIdPreviousFrame == draw_window->GetID("#SCROLLY"); - - bool select_all = (g.ActiveId != id) && (flags & ImGuiInputTextFlags_AutoSelectAll) != 0; - if (focus_requested || user_clicked || user_scrolled) - { - if (g.ActiveId != id) - { - // Start edition - // Take a copy of the initial buffer value (both in original UTF-8 format and converted to wchar) - // From the moment we focused we are ignoring the content of 'buf' - edit_state.Text.resize(buf_size); // wchar count <= utf-8 count - edit_state.InitialText.resize(buf_size); // utf-8 - ImFormatString(edit_state.InitialText.Data, edit_state.InitialText.Size, "%s", buf); - const char* buf_end = NULL; - edit_state.CurLenW = ImTextStrFromUtf8(edit_state.Text.Data, edit_state.Text.Size, buf, NULL, &buf_end); - edit_state.CurLenA = (int)(buf_end - buf); // We can't get the result from ImFormatString() above because it is not UTF-8 aware. Here we'll cut off malformed UTF-8. - edit_state.InputCursorScreenPos = ImVec2(-1.f, -1.f); - edit_state.CursorAnimReset(); - - if (edit_state.Id != id) - { - edit_state.Id = id; - edit_state.ScrollX = 0.f; - stb_textedit_initialize_state(&edit_state.StbState, !is_multiline); - if (!is_multiline && focus_requested_by_code) - select_all = true; - } - else - { - // Recycle existing cursor/selection/undo stack but clamp position - // Note a single mouse click will override the cursor/position immediately by calling stb_textedit_click handler. - edit_state.StbState.cursor = ImMin(edit_state.StbState.cursor, edit_state.CurLenW); - edit_state.StbState.select_start = ImMin(edit_state.StbState.select_start, edit_state.CurLenW); - edit_state.StbState.select_end = ImMin(edit_state.StbState.select_end, edit_state.CurLenW); - } - if (flags & ImGuiInputTextFlags_AlwaysInsertMode) - edit_state.StbState.insert_mode = true; - if (!is_multiline && (focus_requested_by_tab || (user_clicked && is_ctrl_down))) - select_all = true; - } - SetActiveID(id, window); - FocusWindow(window); - } - else if (io.MouseClicked[0]) - { - // Release focus when we click outside - if (g.ActiveId == id) - SetActiveID(0); - } - - bool value_changed = false; - bool cancel_edit = false; - bool enter_pressed = false; - - if (g.ActiveId == id) - { - edit_state.BufSizeA = buf_size; - - // Although we are active we don't prevent mouse from hovering other elements unless we are interacting right now with the widget. - // Down the line we should have a cleaner concept of focused vs active in the library. - g.ActiveIdIsFocusedOnly = !io.MouseDown[0]; - - // Edit in progress - const float mouse_x = (g.IO.MousePos.x - frame_bb.Min.x - style.FramePadding.x) + edit_state.ScrollX; - const float mouse_y = (is_multiline ? (g.IO.MousePos.y - draw_window->DC.CursorPos.y - style.FramePadding.y) : (g.FontSize*0.5f)); - - if (select_all || (hovered && io.MouseDoubleClicked[0])) - { - edit_state.SelectAll(); - edit_state.SelectedAllMouseLock = true; - } - else if (io.MouseClicked[0] && !edit_state.SelectedAllMouseLock) - { - stb_textedit_click(&edit_state, &edit_state.StbState, mouse_x, mouse_y); - edit_state.CursorAnimReset(); - } - else if (io.MouseDown[0] && !edit_state.SelectedAllMouseLock) - { - stb_textedit_drag(&edit_state, &edit_state.StbState, mouse_x, mouse_y); - edit_state.CursorAnimReset(); - } - if (edit_state.SelectedAllMouseLock && !io.MouseDown[0]) - edit_state.SelectedAllMouseLock = false; - - if (g.IO.InputCharacters[0]) - { - // Process text input (before we check for Return because using some IME will effectively send a Return?) - for (int n = 0; n < IM_ARRAYSIZE(g.IO.InputCharacters) && g.IO.InputCharacters[n]; n++) - { - if (unsigned int c = (unsigned int)g.IO.InputCharacters[n]) - { - // Insert character if they pass filtering - if (!InputTextFilterCharacter(&c, flags, callback, user_data)) - continue; - edit_state.OnKeyPressed((int)c); - } - } - - // Consume characters - memset(g.IO.InputCharacters, 0, sizeof(g.IO.InputCharacters)); - } - - const int k_mask = (is_shift_down ? STB_TEXTEDIT_K_SHIFT : 0); - const bool is_ctrl_only = is_ctrl_down && !is_alt_down && !is_shift_down; - if (IsKeyPressedMap(ImGuiKey_LeftArrow)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_WORDLEFT | k_mask : STB_TEXTEDIT_K_LEFT | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_RightArrow)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_WORDRIGHT | k_mask : STB_TEXTEDIT_K_RIGHT | k_mask); } - else if (is_multiline && IsKeyPressedMap(ImGuiKey_UpArrow)) { if (is_ctrl_down) SetWindowScrollY(draw_window, draw_window->ScrollY - g.FontSize); else edit_state.OnKeyPressed(STB_TEXTEDIT_K_UP | k_mask); } - else if (is_multiline && IsKeyPressedMap(ImGuiKey_DownArrow)) { if (is_ctrl_down) SetWindowScrollY(draw_window, draw_window->ScrollY + g.FontSize); else edit_state.OnKeyPressed(STB_TEXTEDIT_K_DOWN| k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Home)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_TEXTSTART | k_mask : STB_TEXTEDIT_K_LINESTART | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_End)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_TEXTEND | k_mask : STB_TEXTEDIT_K_LINEEND | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Delete)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_DELETE | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Backspace)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_BACKSPACE | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Enter)) - { - bool ctrl_enter_for_new_line = (flags & ImGuiInputTextFlags_CtrlEnterForNewLine) != 0; - if (!is_multiline || (ctrl_enter_for_new_line && !is_ctrl_down) || (!ctrl_enter_for_new_line && is_ctrl_down)) - { - SetActiveID(0); - enter_pressed = true; - } - else // New line - { - unsigned int c = '\n'; - if (InputTextFilterCharacter(&c, flags, callback, user_data)) - edit_state.OnKeyPressed((int)c); - } - } - else if ((flags & ImGuiInputTextFlags_AllowTabInput) && IsKeyPressedMap(ImGuiKey_Tab) && !is_ctrl_down && !is_shift_down && !is_alt_down) - { - unsigned int c = '\t'; - if (InputTextFilterCharacter(&c, flags, callback, user_data)) - edit_state.OnKeyPressed((int)c); - } - else if (IsKeyPressedMap(ImGuiKey_Escape)) { SetActiveID(0); cancel_edit = true; } - else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_Z)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_UNDO); edit_state.ClearSelection(); } - else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_Y)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_REDO); edit_state.ClearSelection(); } - else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_A)) { edit_state.SelectAll(); edit_state.CursorFollow = true; } - else if (is_ctrl_only && (IsKeyPressedMap(ImGuiKey_X) || IsKeyPressedMap(ImGuiKey_C)) && (!is_multiline || edit_state.HasSelection())) - { - // Cut, Copy - const bool cut = IsKeyPressedMap(ImGuiKey_X); - if (cut && !edit_state.HasSelection()) - edit_state.SelectAll(); - - if (g.IO.SetClipboardTextFn) - { - const int ib = edit_state.HasSelection() ? ImMin(edit_state.StbState.select_start, edit_state.StbState.select_end) : 0; - const int ie = edit_state.HasSelection() ? ImMax(edit_state.StbState.select_start, edit_state.StbState.select_end) : edit_state.CurLenW; - edit_state.TempTextBuffer.resize((ie-ib) * 4 + 1); - ImTextStrToUtf8(edit_state.TempTextBuffer.Data, edit_state.TempTextBuffer.Size, edit_state.Text.Data+ib, edit_state.Text.Data+ie); - g.IO.SetClipboardTextFn(edit_state.TempTextBuffer.Data); - } - - if (cut) - { - edit_state.CursorFollow = true; - stb_textedit_cut(&edit_state, &edit_state.StbState); - } - } - else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_V)) - { - // Paste - if (g.IO.GetClipboardTextFn) - { - if (const char* clipboard = g.IO.GetClipboardTextFn()) - { - // Remove new-line from pasted buffer - const int clipboard_len = (int)strlen(clipboard); - ImWchar* clipboard_filtered = (ImWchar*)ImGui::MemAlloc((clipboard_len+1) * sizeof(ImWchar)); - int clipboard_filtered_len = 0; - for (const char* s = clipboard; *s; ) - { - unsigned int c; - s += ImTextCharFromUtf8(&c, s, NULL); - if (c == 0) - break; - if (c >= 0x10000 || !InputTextFilterCharacter(&c, flags, callback, user_data)) - continue; - clipboard_filtered[clipboard_filtered_len++] = (ImWchar)c; - } - clipboard_filtered[clipboard_filtered_len] = 0; - if (clipboard_filtered_len > 0) // If everything was filtered, ignore the pasting operation - { - stb_textedit_paste(&edit_state, &edit_state.StbState, clipboard_filtered, clipboard_filtered_len); - edit_state.CursorFollow = true; - } - ImGui::MemFree(clipboard_filtered); - } - } - } - - if (cancel_edit) - { - // Restore initial value - ImFormatString(buf, buf_size, "%s", edit_state.InitialText.Data); - value_changed = true; - } - else - { - // Apply new value immediately - copy modified buffer back - // Note that as soon as we can focus into the input box, the in-widget value gets priority over any underlying modification of the input buffer - // FIXME: We actually always render 'buf' in RenderTextScrolledClipped - // FIXME-OPT: CPU waste to do this every time the widget is active, should mark dirty state from the stb_textedit callbacks - edit_state.TempTextBuffer.resize(edit_state.Text.Size * 4); - ImTextStrToUtf8(edit_state.TempTextBuffer.Data, edit_state.TempTextBuffer.Size, edit_state.Text.Data, NULL); - - // User callback - if ((flags & (ImGuiInputTextFlags_CallbackCompletion | ImGuiInputTextFlags_CallbackHistory | ImGuiInputTextFlags_CallbackAlways)) != 0) - { - IM_ASSERT(callback != NULL); - - // The reason we specify the usage semantic (Completion/History) is that Completion needs to disable keyboard TABBING at the moment. - ImGuiInputTextFlags event_flag = 0; - ImGuiKey event_key = ImGuiKey_COUNT; - if ((flags & ImGuiInputTextFlags_CallbackCompletion) != 0 && IsKeyPressedMap(ImGuiKey_Tab)) - { - event_flag = ImGuiInputTextFlags_CallbackCompletion; - event_key = ImGuiKey_Tab; - } - else if ((flags & ImGuiInputTextFlags_CallbackHistory) != 0 && IsKeyPressedMap(ImGuiKey_UpArrow)) - { - event_flag = ImGuiInputTextFlags_CallbackHistory; - event_key = ImGuiKey_UpArrow; - } - else if ((flags & ImGuiInputTextFlags_CallbackHistory) != 0 && IsKeyPressedMap(ImGuiKey_DownArrow)) - { - event_flag = ImGuiInputTextFlags_CallbackHistory; - event_key = ImGuiKey_DownArrow; - } - - if (event_key != ImGuiKey_COUNT || (flags & ImGuiInputTextFlags_CallbackAlways) != 0) - { - ImGuiTextEditCallbackData callback_data; - callback_data.EventFlag = event_flag; - callback_data.EventKey = event_key; - callback_data.Buf = edit_state.TempTextBuffer.Data; - callback_data.BufSize = edit_state.BufSizeA; - callback_data.BufDirty = false; - callback_data.Flags = flags; - callback_data.UserData = user_data; - - // We have to convert from position from wchar to UTF-8 positions - ImWchar* text = edit_state.Text.Data; - const int utf8_cursor_pos = callback_data.CursorPos = ImTextCountUtf8BytesFromStr(text, text + edit_state.StbState.cursor); - const int utf8_selection_start = callback_data.SelectionStart = ImTextCountUtf8BytesFromStr(text, text + edit_state.StbState.select_start); - const int utf8_selection_end = callback_data.SelectionEnd = ImTextCountUtf8BytesFromStr(text, text + edit_state.StbState.select_end); - - // Call user code - callback(&callback_data); - - // Read back what user may have modified - IM_ASSERT(callback_data.Buf == edit_state.TempTextBuffer.Data); // Invalid to modify those fields - IM_ASSERT(callback_data.BufSize == edit_state.BufSizeA); - IM_ASSERT(callback_data.Flags == flags); - if (callback_data.CursorPos != utf8_cursor_pos) edit_state.StbState.cursor = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.CursorPos); - if (callback_data.SelectionStart != utf8_selection_start) edit_state.StbState.select_start = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.SelectionStart); - if (callback_data.SelectionEnd != utf8_selection_end) edit_state.StbState.select_end = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.SelectionEnd); - if (callback_data.BufDirty) - { - edit_state.CurLenW = ImTextStrFromUtf8(text, edit_state.Text.Size, edit_state.TempTextBuffer.Data, NULL); - edit_state.CurLenA = (int)strlen(edit_state.TempTextBuffer.Data); - edit_state.CursorAnimReset(); - } - } - } - - if (strcmp(edit_state.TempTextBuffer.Data, buf) != 0) - { - ImFormatString(buf, buf_size, "%s", edit_state.TempTextBuffer.Data); - value_changed = true; - } - } - } - - if (!is_multiline) - RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); - - ImVec2 render_pos = is_multiline ? draw_window->DC.CursorPos : frame_bb.Min + style.FramePadding; - - ImVec4 clip_rect(frame_bb.Min.x, frame_bb.Min.y, frame_bb.Min.x + size.x + style.FramePadding.x*2.0f, frame_bb.Min.y + size.y + style.FramePadding.y*2.0f); - ImVec2 text_size(0.f, 0.f); - if (g.ActiveId == id || (edit_state.Id == id && is_multiline && g.ActiveId == draw_window->GetID("#SCROLLY"))) - { - edit_state.CursorAnim += g.IO.DeltaTime; - - // We need to: - // - Display the text (this can be more easily clipped) - // - Handle scrolling, highlight selection, display cursor (those all requires some form of 1d->2d cursor position calculation) - // - Measure text height (for scrollbar) - // We are attempting to do most of that in one main pass to minimize the computation cost (non-negligible for large amount of text) + 2nd pass for selection rendering (we could merge them by an extra refactoring effort) - const ImWchar* text_begin = edit_state.Text.Data; - const ImWchar* text_end = text_begin + edit_state.CurLenW; - ImVec2 cursor_offset, select_start_offset; - - { - // Count lines + find lines numbers of cursor and select_start - int matches_remaining = 0; - int matches_line_no[2] = { -1, -999 }; - const ImWchar* matches_ptr[2] = { NULL, NULL }; - matches_ptr[0] = text_begin + edit_state.StbState.cursor; matches_remaining++; - if (edit_state.StbState.select_start != edit_state.StbState.select_end) - { - matches_ptr[1] = text_begin + ImMin(edit_state.StbState.select_start, edit_state.StbState.select_end); - matches_line_no[1] = -1; - matches_remaining++; - } - matches_remaining += is_multiline ? 1 : 0; // So that we never exit the loop until all lines are counted. - - int line_count = 0; - for (const ImWchar* s = text_begin; s < text_end+1; s++) - if ((*s) == '\n' || s == text_end) - { - line_count++; - if (matches_line_no[0] == -1 && s >= matches_ptr[0]) { matches_line_no[0] = line_count; if (--matches_remaining <= 0) break; } - if (matches_line_no[1] == -1 && s >= matches_ptr[1]) { matches_line_no[1] = line_count; if (--matches_remaining <= 0) break; } - } - - // Calculate 2d position - IM_ASSERT(matches_line_no[0] != -1); - cursor_offset.x = InputTextCalcTextSizeW(ImStrbolW(matches_ptr[0], text_begin), matches_ptr[0]).x; - cursor_offset.y = matches_line_no[0] * g.FontSize; - if (matches_line_no[1] >= 0) - { - select_start_offset.x = InputTextCalcTextSizeW(ImStrbolW(matches_ptr[1], text_begin), matches_ptr[1]).x; - select_start_offset.y = matches_line_no[1] * g.FontSize; - } - - // Calculate text height - if (is_multiline) - text_size = ImVec2(size.x, line_count * g.FontSize); - } - - // Scroll - if (edit_state.CursorFollow) - { - // Horizontal scroll in chunks of quarter width - if (!(flags & ImGuiInputTextFlags_NoHorizontalScroll)) - { - const float scroll_increment_x = size.x * 0.25f; - if (cursor_offset.x < edit_state.ScrollX) - edit_state.ScrollX = ImMax(0.0f, cursor_offset.x - scroll_increment_x); - else if (cursor_offset.x - size.x >= edit_state.ScrollX) - edit_state.ScrollX = cursor_offset.x - size.x + scroll_increment_x; - } - else - { - edit_state.ScrollX = 0.0f; - } - - // Vertical scroll - if (is_multiline) - { - float scroll_y = draw_window->ScrollY; - if (cursor_offset.y - g.FontSize < scroll_y) - scroll_y = ImMax(0.0f, cursor_offset.y - g.FontSize); - else if (cursor_offset.y - size.y >= scroll_y) - scroll_y = cursor_offset.y - size.y; - draw_window->DC.CursorPos.y += (draw_window->ScrollY - scroll_y); // To avoid a frame of lag - draw_window->ScrollY = scroll_y; - render_pos.y = draw_window->DC.CursorPos.y; - } - } - edit_state.CursorFollow = false; - ImVec2 render_scroll = ImVec2(edit_state.ScrollX, 0.0f); - - // Draw selection - if (edit_state.StbState.select_start != edit_state.StbState.select_end) - { - const ImWchar* text_selected_begin = text_begin + ImMin(edit_state.StbState.select_start, edit_state.StbState.select_end); - const ImWchar* text_selected_end = text_begin + ImMax(edit_state.StbState.select_start, edit_state.StbState.select_end); - - float bg_offy_up = is_multiline ? 0.0f : -1.0f; // FIXME: those offsets should be part of the style? they don't play so well with multi-line selection. - float bg_offy_dn = is_multiline ? 0.0f : 2.0f; - ImU32 bg_color = draw_window->Color(ImGuiCol_TextSelectedBg); - ImVec2 rect_pos = render_pos + select_start_offset - render_scroll; - for (const ImWchar* p = text_selected_begin; p < text_selected_end; ) - { - if (rect_pos.y > clip_rect.w + g.FontSize) - break; - if (rect_pos.y < clip_rect.y) - { - while (p < text_selected_end) - if (*p++ == '\n') - break; - } - else - { - ImVec2 rect_size = InputTextCalcTextSizeW(p, text_selected_end, &p, NULL, true); - if (rect_size.x <= 0.0f) rect_size.x = (float)(int)(g.Font->GetCharAdvance((unsigned short)' ') * 0.50f); // So we can see selected empty lines - ImRect rect(rect_pos + ImVec2(0.0f, bg_offy_up - g.FontSize), rect_pos +ImVec2(rect_size.x, bg_offy_dn)); - rect.Clip(clip_rect); - if (rect.Overlaps(clip_rect)) - draw_window->DrawList->AddRectFilled(rect.Min, rect.Max, bg_color); - } - rect_pos.x = render_pos.x - render_scroll.x; - rect_pos.y += g.FontSize; - } - } - - draw_window->DrawList->AddText(g.Font, g.FontSize, render_pos - render_scroll, draw_window->Color(ImGuiCol_Text), buf, buf+edit_state.CurLenA, 0.0f, is_multiline ? NULL : &clip_rect); - - // Draw blinking cursor - ImVec2 cursor_screen_pos = render_pos + cursor_offset - render_scroll; - bool cursor_is_visible = (g.InputTextState.CursorAnim <= 0.0f) || fmodf(g.InputTextState.CursorAnim, 1.20f) <= 0.80f; - if (cursor_is_visible) - draw_window->DrawList->AddLine(cursor_screen_pos + ImVec2(0.0f,-g.FontSize+0.5f), cursor_screen_pos + ImVec2(0.0f,-1.5f), window->Color(ImGuiCol_Text)); - - // Notify OS of text input position for advanced IME - if (io.ImeSetInputScreenPosFn && ImLengthSqr(edit_state.InputCursorScreenPos - cursor_screen_pos) > 0.0001f) - io.ImeSetInputScreenPosFn((int)cursor_screen_pos.x - 1, (int)(cursor_screen_pos.y - g.FontSize)); // -1 x offset so that Windows IME can cover our cursor. Bit of an extra nicety. - - edit_state.InputCursorScreenPos = cursor_screen_pos; - } - else - { - // Render text only - const char* buf_end = NULL; - if (is_multiline) - text_size = ImVec2(size.x, InputTextCalcTextLenAndLineCount(buf, &buf_end) * g.FontSize); // We don't need width - draw_window->DrawList->AddText(g.Font, g.FontSize, render_pos, draw_window->Color(ImGuiCol_Text), buf, buf_end, 0.0f, is_multiline ? NULL : &clip_rect); - } - - if (is_multiline) - { - ImGui::Dummy(text_size + ImVec2(0.0f, g.FontSize)); // Always add room to scroll an extra line - ImGui::EndChildFrame(); - ImGui::EndGroup(); - } - - // Log as text - if (g.LogEnabled) - LogRenderedText(render_pos, buf, NULL); - - if (label_size.x > 0) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - if ((flags & ImGuiInputTextFlags_EnterReturnsTrue) != 0) - return enter_pressed; - else - return value_changed; -} - -bool ImGui::InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) -{ - IM_ASSERT(!(flags & ImGuiInputTextFlags_Multiline)); // call InputTextMultiline() - bool ret = InputTextEx(label, buf, (int)buf_size, ImVec2(0,0), flags, callback, user_data); - return ret; -} - -bool ImGui::InputTextMultiline(const char* label, char* buf, size_t buf_size, const ImVec2& size, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) -{ - bool ret = InputTextEx(label, buf, (int)buf_size, size, flags | ImGuiInputTextFlags_Multiline, callback, user_data); - return ret; -} - -// NB: scalar_format here must be a simple "%xx" format string with no prefix/suffix (unlike the Drag/Slider functions "display_format" argument) -bool ImGui::InputScalarEx(const char* label, ImGuiDataType data_type, void* data_ptr, void* step_ptr, void* step_fast_ptr, const char* scalar_format, ImGuiInputTextFlags extra_flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const float w = ImGui::CalcItemWidth(); - const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); - - ImGui::BeginGroup(); - ImGui::PushID(label); - const ImVec2 button_sz = ImVec2(g.FontSize, g.FontSize) + style.FramePadding * 2; - if (step_ptr) - ImGui::PushItemWidth(ImMax(1.0f, w - (button_sz.x + style.ItemInnerSpacing.x)*2)); - - char buf[64]; - DataTypeFormatString(data_type, data_ptr, scalar_format, buf, IM_ARRAYSIZE(buf)); - - bool value_changed = false; - if (!(extra_flags & ImGuiInputTextFlags_CharsHexadecimal)) - extra_flags |= ImGuiInputTextFlags_CharsDecimal; - extra_flags |= ImGuiInputTextFlags_AutoSelectAll; - if (ImGui::InputText("", buf, IM_ARRAYSIZE(buf), extra_flags)) - { - DataTypeApplyOpFromText(buf, GImGui->InputTextState.InitialText.begin(), data_type, data_ptr, scalar_format); - value_changed = true; - } - - // Step buttons - if (step_ptr) - { - ImGui::PopItemWidth(); - ImGui::SameLine(0, style.ItemInnerSpacing.x); - if (ButtonEx("-", button_sz, ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups)) - { - DataTypeApplyOp(data_type, '-', data_ptr, g.IO.KeyCtrl && step_fast_ptr ? step_fast_ptr : step_ptr); - value_changed = true; - } - ImGui::SameLine(0, style.ItemInnerSpacing.x); - if (ButtonEx("+", button_sz, ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups)) - { - DataTypeApplyOp(data_type, '+', data_ptr, g.IO.KeyCtrl && step_fast_ptr ? step_fast_ptr : step_ptr); - value_changed = true; - } - } - ImGui::PopID(); - - if (label_size.x > 0) - { - ImGui::SameLine(0, style.ItemInnerSpacing.x); - RenderText(ImVec2(window->DC.CursorPos.x, window->DC.CursorPos.y + style.FramePadding.y), label); - ItemSize(label_size, style.FramePadding.y); - } - ImGui::EndGroup(); - - return value_changed; -} - -bool ImGui::InputFloat(const char* label, float* v, float step, float step_fast, int decimal_precision, ImGuiInputTextFlags extra_flags) -{ - char display_format[16]; - if (decimal_precision < 0) - strcpy(display_format, "%f"); // Ideally we'd have a minimum decimal precision of 1 to visually denote that this is a float, while hiding non-significant digits? %f doesn't have a minimum of 1 - else - ImFormatString(display_format, 16, "%%%df", decimal_precision); - return InputScalarEx(label, ImGuiDataType_Float, (void*)v, (void*)(step>0.0f ? &step : NULL), (void*)(step_fast>0.0f ? &step_fast : NULL), display_format, extra_flags); -} - -bool ImGui::InputInt(const char* label, int* v, int step, int step_fast, ImGuiInputTextFlags extra_flags) -{ - // Hexadecimal input provided as a convenience but the flag name is awkward. Typically you'd use InputText() to parse your own data, if you want to handle prefixes. - const char* scalar_format = (extra_flags & ImGuiInputTextFlags_CharsHexadecimal) ? "%08X" : "%d"; - return InputScalarEx(label, ImGuiDataType_Int, (void*)v, (void*)(step>0.0f ? &step : NULL), (void*)(step_fast>0.0f ? &step_fast : NULL), scalar_format, extra_flags); -} - -bool ImGui::InputFloatN(const char* label, float* v, int components, int decimal_precision, ImGuiInputTextFlags extra_flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - bool value_changed = false; - ImGui::BeginGroup(); - ImGui::PushID(label); - PushMultiItemsWidths(components); - for (int i = 0; i < components; i++) - { - ImGui::PushID(i); - value_changed |= ImGui::InputFloat("##v", &v[i], 0, 0, decimal_precision, extra_flags); - ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - ImGui::PopID(); - ImGui::PopItemWidth(); - } - ImGui::PopID(); - - window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.CurrentLineTextBaseOffset, g.Style.FramePadding.y); - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); - ImGui::EndGroup(); - - return value_changed; -} - -bool ImGui::InputFloat2(const char* label, float v[2], int decimal_precision, ImGuiInputTextFlags extra_flags) -{ - return InputFloatN(label, v, 2, decimal_precision, extra_flags); -} - -bool ImGui::InputFloat3(const char* label, float v[3], int decimal_precision, ImGuiInputTextFlags extra_flags) -{ - return InputFloatN(label, v, 3, decimal_precision, extra_flags); -} - -bool ImGui::InputFloat4(const char* label, float v[4], int decimal_precision, ImGuiInputTextFlags extra_flags) -{ - return InputFloatN(label, v, 4, decimal_precision, extra_flags); -} - -bool ImGui::InputIntN(const char* label, int* v, int components, ImGuiInputTextFlags extra_flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - bool value_changed = false; - ImGui::BeginGroup(); - ImGui::PushID(label); - PushMultiItemsWidths(components); - for (int i = 0; i < components; i++) - { - ImGui::PushID(i); - value_changed |= ImGui::InputInt("##v", &v[i], 0, 0, extra_flags); - ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - ImGui::PopID(); - ImGui::PopItemWidth(); - } - ImGui::PopID(); - - window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.CurrentLineTextBaseOffset, g.Style.FramePadding.y); - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); - ImGui::EndGroup(); - - return value_changed; -} - -bool ImGui::InputInt2(const char* label, int v[2], ImGuiInputTextFlags extra_flags) -{ - return InputIntN(label, v, 2, extra_flags); -} - -bool ImGui::InputInt3(const char* label, int v[3], ImGuiInputTextFlags extra_flags) -{ - return InputIntN(label, v, 3, extra_flags); -} - -bool ImGui::InputInt4(const char* label, int v[4], ImGuiInputTextFlags extra_flags) -{ - return InputIntN(label, v, 4, extra_flags); -} - -static bool Items_ArrayGetter(void* data, int idx, const char** out_text) -{ - const char** items = (const char**)data; - if (out_text) - *out_text = items[idx]; - return true; -} - -static bool Items_SingleStringGetter(void* data, int idx, const char** out_text) -{ - // FIXME-OPT: we could pre-compute the indices to fasten this. But only 1 active combo means the waste is limited. - const char* items_separated_by_zeros = (const char*)data; - int items_count = 0; - const char* p = items_separated_by_zeros; - while (*p) - { - if (idx == items_count) - break; - p += strlen(p) + 1; - items_count++; - } - if (!*p) - return false; - if (out_text) - *out_text = p; - return true; -} - -// Combo box helper allowing to pass an array of strings. -bool ImGui::Combo(const char* label, int* current_item, const char** items, int items_count, int height_in_items) -{ - const bool value_changed = Combo(label, current_item, Items_ArrayGetter, (void*)items, items_count, height_in_items); - return value_changed; -} - -// Combo box helper allowing to pass all items in a single string. -bool ImGui::Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items) -{ - int items_count = 0; - const char* p = items_separated_by_zeros; // FIXME-OPT: Avoid computing this, or at least only when combo is open - while (*p) - { - p += strlen(p) + 1; - items_count++; - } - bool value_changed = Combo(label, current_item, Items_SingleStringGetter, (void*)items_separated_by_zeros, items_count, height_in_items); - return value_changed; -} - -// Combo box function. -bool ImGui::Combo(const char* label, int* current_item, bool (*items_getter)(void*, int, const char**), void* data, int items_count, int height_in_items) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const float w = ImGui::CalcItemWidth(); - - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); - const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, &id)) - return false; - - const float arrow_size = (g.FontSize + style.FramePadding.x * 2.0f); - const bool hovered = IsHovered(frame_bb, id); - - const ImRect value_bb(frame_bb.Min, frame_bb.Max - ImVec2(arrow_size, 0.0f)); - RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); - RenderFrame(ImVec2(frame_bb.Max.x-arrow_size, frame_bb.Min.y), frame_bb.Max, window->Color(hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button), true, style.FrameRounding); // FIXME-ROUNDING - RenderCollapseTriangle(ImVec2(frame_bb.Max.x-arrow_size, frame_bb.Min.y) + style.FramePadding, true); - - if (*current_item >= 0 && *current_item < items_count) - { - const char* item_text; - if (items_getter(data, *current_item, &item_text)) - RenderTextClipped(frame_bb.Min + style.FramePadding, value_bb.Max, item_text, NULL, NULL); - } - - if (label_size.x > 0) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - bool menu_toggled = false; - if (hovered) - { - g.HoveredId = id; - if (g.IO.MouseClicked[0]) - { - SetActiveID(0); - if (IsPopupOpen(id)) - { - ClosePopup(id); - } - else - { - FocusWindow(window); - ImGui::OpenPopup(label); - menu_toggled = true; - } - } - } - - bool value_changed = false; - if (IsPopupOpen(id)) - { - // Size default to hold ~7 items - if (height_in_items < 0) - height_in_items = 7; - - float popup_height = (label_size.y + style.ItemSpacing.y) * ImMin(items_count, height_in_items) + (style.FramePadding.y * 3); - ImRect popup_rect(ImVec2(frame_bb.Min.x, frame_bb.Max.y), ImVec2(frame_bb.Max.x, frame_bb.Max.y + popup_height)); - popup_rect.Max.y = ImMin(popup_rect.Max.y, g.IO.DisplaySize.y - style.DisplaySafeAreaPadding.y); // Adhoc height limit for Combo. Ideally should be handled in Begin() along with other popups size, we want to have the possibility of moving the popup above as well. - ImGui::SetNextWindowPos(popup_rect.Min); - ImGui::SetNextWindowSize(popup_rect.GetSize()); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, style.FramePadding); - - const ImGuiWindowFlags flags = ImGuiWindowFlags_ComboBox | ((window->Flags & ImGuiWindowFlags_ShowBorders) ? ImGuiWindowFlags_ShowBorders : 0); - if (BeginPopupEx(label, flags)) - { - // Display items - ImGui::Spacing(); - for (int i = 0; i < items_count; i++) - { - ImGui::PushID((void*)(intptr_t)i); - const bool item_selected = (i == *current_item); - const char* item_text; - if (!items_getter(data, i, &item_text)) - item_text = "*Unknown item*"; - if (ImGui::Selectable(item_text, item_selected)) - { - SetActiveID(0); - value_changed = true; - *current_item = i; - } - if (item_selected && menu_toggled) - ImGui::SetScrollHere(); - ImGui::PopID(); - } - ImGui::EndPopup(); - } - ImGui::PopStyleVar(); - } - return value_changed; -} - -// Tip: pass an empty label (e.g. "##dummy") then you can use the space to draw other text or image. -// But you need to make sure the ID is unique, e.g. enclose calls in PushID/PopID. -bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags flags, const ImVec2& size_arg) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - - if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsCount > 1) - PopClipRect(); - - ImGuiID id = window->GetID(label); - ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); - ImVec2 size(size_arg.x != 0.0f ? size_arg.x : label_size.x, size_arg.y != 0.0f ? size_arg.y : label_size.y); - ImVec2 pos = window->DC.CursorPos; - pos.y += window->DC.CurrentLineTextBaseOffset; - ImRect bb(pos, pos + size); - ItemSize(bb); - - // Fill horizontal space. - ImVec2 window_padding = window->WindowPadding; - float max_x = (flags & ImGuiSelectableFlags_SpanAllColumns) ? ImGui::GetWindowContentRegionMax().x : ImGui::GetContentRegionMax().x; - float w_draw = ImMax(label_size.x, window->Pos.x + max_x - window_padding.x - window->DC.CursorPos.x); - ImVec2 size_draw((size_arg.x != 0 && !(flags & ImGuiSelectableFlags_DrawFillAvailWidth)) ? size_arg.x : w_draw, size_arg.y != 0.0f ? size_arg.y : size.y); - ImRect bb_with_spacing(pos, pos + size_draw); - if (size_arg.x == 0.0f || (flags & ImGuiSelectableFlags_DrawFillAvailWidth)) - bb_with_spacing.Max.x += window_padding.x; - - // Selectables are tightly packed together, we extend the box to cover spacing between selectable. - float spacing_L = (float)(int)(style.ItemSpacing.x * 0.5f); - float spacing_U = (float)(int)(style.ItemSpacing.y * 0.5f); - float spacing_R = style.ItemSpacing.x - spacing_L; - float spacing_D = style.ItemSpacing.y - spacing_U; - bb_with_spacing.Min.x -= spacing_L; - bb_with_spacing.Min.y -= spacing_U; - bb_with_spacing.Max.x += spacing_R; - bb_with_spacing.Max.y += spacing_D; - if (!ItemAdd(bb_with_spacing, &id)) - { - if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsCount > 1) - PushColumnClipRect(); - return false; - } - - ImGuiButtonFlags button_flags = 0; - if (flags & ImGuiSelectableFlags_Menu) button_flags |= ImGuiButtonFlags_PressedOnClick; - if (flags & ImGuiSelectableFlags_MenuItem) button_flags |= ImGuiButtonFlags_PressedOnClick|ImGuiButtonFlags_PressedOnRelease; - if (flags & ImGuiSelectableFlags_Disabled) button_flags |= ImGuiButtonFlags_Disabled; - bool hovered, held; - bool pressed = ButtonBehavior(bb_with_spacing, id, &hovered, &held, true, button_flags); - if (flags & ImGuiSelectableFlags_Disabled) - selected = false; - - // Render - if (hovered || selected) - { - const ImU32 col = window->Color((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); - RenderFrame(bb_with_spacing.Min, bb_with_spacing.Max, col, false, 0.0f); - } - - if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsCount > 1) - { - PushColumnClipRect(); - bb_with_spacing.Max.x -= (ImGui::GetContentRegionMax().x - max_x); - } - - if (flags & ImGuiSelectableFlags_Disabled) ImGui::PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]); - RenderTextClipped(bb.Min, bb_with_spacing.Max, label, NULL, &label_size); - if (flags & ImGuiSelectableFlags_Disabled) ImGui::PopStyleColor(); - - // Automatically close popups - if (pressed && !(flags & ImGuiSelectableFlags_DontClosePopups) && (window->Flags & ImGuiWindowFlags_Popup)) - ImGui::CloseCurrentPopup(); - return pressed; -} - -bool ImGui::Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags flags, const ImVec2& size_arg) -{ - if (ImGui::Selectable(label, *p_selected, flags, size_arg)) - { - *p_selected = !*p_selected; - return true; - } - return false; -} - -// Helper to calculate the size of a listbox and display a label on the right. -// Tip: To have a list filling the entire window width, PushItemWidth(-1) and pass an empty label "##empty" -bool ImGui::ListBoxHeader(const char* label, const ImVec2& size_arg) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - const ImGuiStyle& style = ImGui::GetStyle(); - const ImGuiID id = ImGui::GetID(label); - const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); - - // Size default to hold ~7 items. Fractional number of items helps seeing that we can scroll down/up without looking at scrollbar. - ImVec2 size = CalcItemSize(size_arg, ImGui::CalcItemWidth() + style.FramePadding.x * 2.0f, ImGui::GetTextLineHeightWithSpacing() * 7.4f + style.ItemSpacing.y); - ImVec2 frame_size = ImVec2(size.x, ImMax(size.y, label_size.y)); - ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + frame_size); - ImRect bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); - window->DC.LastItemRect = bb; - - ImGui::BeginGroup(); - if (label_size.x > 0) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - ImGui::BeginChildFrame(id, frame_bb.GetSize()); - return true; -} - -bool ImGui::ListBoxHeader(const char* label, int items_count, int height_in_items) -{ - // Size default to hold ~7 items. Fractional number of items helps seeing that we can scroll down/up without looking at scrollbar. - // However we don't add +0.40f if items_count <= height_in_items. It is slightly dodgy, because it means a dynamic list of items will make the widget resize occasionally when it crosses that size. - // I am expecting that someone will come and complain about this behavior in a remote future, then we can advise on a better solution. - if (height_in_items < 0) - height_in_items = ImMin(items_count, 7); - float height_in_items_f = height_in_items < items_count ? (height_in_items + 0.40f) : (height_in_items + 0.00f); - - // We include ItemSpacing.y so that a list sized for the exact number of items doesn't make a scrollbar appears. We could also enforce that by passing a flag to BeginChild(). - ImVec2 size; - size.x = 0.0f; - size.y = ImGui::GetTextLineHeightWithSpacing() * height_in_items_f + ImGui::GetStyle().ItemSpacing.y; - return ImGui::ListBoxHeader(label, size); -} - -void ImGui::ListBoxFooter() -{ - ImGuiWindow* parent_window = GetParentWindow(); - const ImRect bb = parent_window->DC.LastItemRect; - const ImGuiStyle& style = ImGui::GetStyle(); - - ImGui::EndChildFrame(); - - // Redeclare item size so that it includes the label (we have stored the full size in LastItemRect) - // We call SameLine() to restore DC.CurrentLine* data - ImGui::SameLine(); - parent_window->DC.CursorPos = bb.Min; - ItemSize(bb, style.FramePadding.y); - ImGui::EndGroup(); -} - -bool ImGui::ListBox(const char* label, int* current_item, const char** items, int items_count, int height_items) -{ - const bool value_changed = ListBox(label, current_item, Items_ArrayGetter, (void*)items, items_count, height_items); - return value_changed; -} - -bool ImGui::ListBox(const char* label, int* current_item, bool (*items_getter)(void*, int, const char**), void* data, int items_count, int height_in_items) -{ - if (!ImGui::ListBoxHeader(label, items_count, height_in_items)) - return false; - - // Assume all items have even height (= 1 line of text). If you need items of different or variable sizes you can create a custom version of ListBox() in your code without using the clipper. - bool value_changed = false; - ImGuiListClipper clipper(items_count, ImGui::GetTextLineHeightWithSpacing()); - for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) - { - const bool item_selected = (i == *current_item); - const char* item_text; - if (!items_getter(data, i, &item_text)) - item_text = "*Unknown item*"; - - ImGui::PushID(i); - if (ImGui::Selectable(item_text, item_selected)) - { - *current_item = i; - value_changed = true; - } - ImGui::PopID(); - } - clipper.End(); - ImGui::ListBoxFooter(); - return value_changed; -} - -bool ImGui::MenuItem(const char* label, const char* shortcut, bool selected, bool enabled) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - ImVec2 pos = window->DC.CursorPos; - ImVec2 label_size = CalcTextSize(label, NULL, true); - ImVec2 shortcut_size = shortcut ? CalcTextSize(shortcut, NULL) : ImVec2(0.0f, 0.0f); - float w = window->MenuColumns.DeclColumns(label_size.x, shortcut_size.x, (float)(int)(g.FontSize * 1.20f)); // Feedback for next frame - float extra_w = ImMax(0.0f, ImGui::GetContentRegionAvail().x - w); - - bool pressed = ImGui::Selectable(label, false, ImGuiSelectableFlags_MenuItem | ImGuiSelectableFlags_DrawFillAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f)); - if (shortcut_size.x > 0.0f) - { - ImGui::PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]); - RenderText(pos + ImVec2(window->MenuColumns.Pos[1] + extra_w, 0.0f), shortcut, NULL, false); - ImGui::PopStyleColor(); - } - - if (selected) - RenderCheckMark(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.20f, 0.0f), window->Color(ImGuiCol_Text)); - - return pressed; -} - -bool ImGui::MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled) -{ - if (ImGui::MenuItem(label, shortcut, p_selected ? *p_selected : false, enabled)) - { - if (p_selected) - *p_selected = !*p_selected; - return true; - } - return false; -} - -bool ImGui::BeginMainMenuBar() -{ - ImGuiState& g = *GImGui; - ImGui::SetNextWindowPos(ImVec2(0.0f, 0.0f)); - ImGui::SetNextWindowSize(ImVec2(g.IO.DisplaySize.x, g.FontBaseSize + g.Style.FramePadding.y * 2.0f)); - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); - ImGui::PushStyleVar(ImGuiStyleVar_WindowMinSize, ImVec2(0,0)); - if (!ImGui::Begin("##MainMenuBar", NULL, ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_MenuBar) - || !ImGui::BeginMenuBar()) - { - ImGui::End(); - ImGui::PopStyleVar(2); - return false; - } - g.CurrentWindow->DC.MenuBarOffsetX += g.Style.DisplaySafeAreaPadding.x; - return true; -} - -void ImGui::EndMainMenuBar() -{ - ImGui::EndMenuBar(); - ImGui::End(); - ImGui::PopStyleVar(2); -} - -bool ImGui::BeginMenuBar() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - if (!(window->Flags & ImGuiWindowFlags_MenuBar)) - return false; - - IM_ASSERT(!window->DC.MenuBarAppending); - ImGui::BeginGroup(); // Save position - ImGui::PushID("##menubar"); - ImRect rect = window->MenuBarRect(); - PushClipRect(ImVec4(rect.Min.x+0.5f, rect.Min.y-0.5f, rect.Max.x+0.5f, rect.Max.y-1.5f), false); - window->DC.CursorPos = ImVec2(rect.Min.x + window->DC.MenuBarOffsetX, rect.Min.y);// + g.Style.FramePadding.y); - window->DC.LayoutType = ImGuiLayoutType_Horizontal; - window->DC.MenuBarAppending = true; - ImGui::AlignFirstTextHeightToWidgets(); - return true; -} - -void ImGui::EndMenuBar() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - IM_ASSERT(window->Flags & ImGuiWindowFlags_MenuBar); - IM_ASSERT(window->DC.MenuBarAppending); - PopClipRect(); - ImGui::PopID(); - window->DC.MenuBarOffsetX = window->DC.CursorPos.x - window->MenuBarRect().Min.x; - window->DC.GroupStack.back().AdvanceCursor = false; - ImGui::EndGroup(); - window->DC.LayoutType = ImGuiLayoutType_Vertical; - window->DC.MenuBarAppending = false; -} - -bool ImGui::BeginMenu(const char* label, bool enabled) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - - ImVec2 label_size = CalcTextSize(label, NULL, true); - ImGuiWindow* backed_focused_window = g.FocusedWindow; - - bool pressed; - bool opened = IsPopupOpen(id); - bool menuset_opened = !(window->Flags & ImGuiWindowFlags_Popup) && (g.OpenedPopupStack.Size > g.CurrentPopupStack.Size && g.OpenedPopupStack[g.CurrentPopupStack.Size].ParentMenuSet == window->GetID("##menus")); - if (menuset_opened) - g.FocusedWindow = window; - - ImVec2 popup_pos, pos = window->DC.CursorPos; - if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) - { - popup_pos = ImVec2(pos.x - window->WindowPadding.x, pos.y - style.FramePadding.y + window->MenuBarHeight()); - window->DC.CursorPos.x += (float)(int)(style.ItemSpacing.x * 0.5f); - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, style.ItemSpacing * 2.0f); - float w = label_size.x; - pressed = ImGui::Selectable(label, opened, ImGuiSelectableFlags_Menu | ImGuiSelectableFlags_DontClosePopups | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f)); - ImGui::PopStyleVar(); - ImGui::SameLine(); - window->DC.CursorPos.x += (float)(int)(style.ItemSpacing.x * 0.5f); - } - else - { - popup_pos = ImVec2(pos.x, pos.y - style.WindowPadding.y); - float w = window->MenuColumns.DeclColumns(label_size.x, 0.0f, (float)(int)(g.FontSize * 1.20f)); // Feedback to next frame - float extra_w = ImMax(0.0f, ImGui::GetContentRegionAvail().x - w); - pressed = ImGui::Selectable(label, opened, ImGuiSelectableFlags_Menu | ImGuiSelectableFlags_DontClosePopups | ImGuiSelectableFlags_DrawFillAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f)); - if (!enabled) ImGui::PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]); - RenderCollapseTriangle(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.20f, 0.0f), false); - if (!enabled) ImGui::PopStyleColor(); - } - - bool hovered = enabled && IsHovered(window->DC.LastItemRect, id); - if (menuset_opened) - g.FocusedWindow = backed_focused_window; - - bool want_open = false, want_close = false; - if (window->Flags & (ImGuiWindowFlags_Popup|ImGuiWindowFlags_ChildMenu)) - { - // Implement http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown to avoid using timers so menus feel more reactive. - bool moving_within_opened_triangle = false; - if (g.HoveredWindow == window && g.OpenedPopupStack.Size > g.CurrentPopupStack.Size && g.OpenedPopupStack[g.CurrentPopupStack.Size].ParentWindow == window) - { - if (ImGuiWindow* next_window = g.OpenedPopupStack[g.CurrentPopupStack.Size].Window) - { - ImRect next_window_rect = next_window->Rect(); - ImVec2 ta = g.IO.MousePos - g.IO.MouseDelta; - ImVec2 tb = (window->Pos.x < next_window->Pos.x) ? next_window_rect.GetTL() : next_window_rect.GetTR(); - ImVec2 tc = (window->Pos.x < next_window->Pos.x) ? next_window_rect.GetBL() : next_window_rect.GetBR(); - float extra = ImClamp(fabsf(ta.x - tb.x) * 0.30f, 5.0f, 30.0f); // add a bit of extra slack. - ta.x += (window->Pos.x < next_window->Pos.x) ? -0.5f : +0.5f; // to avoid numerical issues - tb.y = ta.y + ImMax((tb.y - extra) - ta.y, -100.0f); // triangle is maximum 200 high to limit the slope and the bias toward large sub-menus - tc.y = ta.y + ImMin((tc.y + extra) - ta.y, +100.0f); - moving_within_opened_triangle = ImIsPointInTriangle(g.IO.MousePos, ta, tb, tc); - //window->DrawList->PushClipRectFullScreen(); window->DrawList->AddTriangleFilled(ta, tb, tc, moving_within_opened_triangle ? 0x80008000 : 0x80000080); window->DrawList->PopClipRect(); // Debug - } - } - - want_close = (opened && !hovered && g.HoveredWindow == window && g.HoveredIdPreviousFrame != 0 && g.HoveredIdPreviousFrame != id && !moving_within_opened_triangle); - want_open = (!opened && hovered && !moving_within_opened_triangle) || (!opened && hovered && pressed); - } - else if (opened && pressed && menuset_opened) // menu-bar: click open menu to close - { - want_close = true; - want_open = opened = false; - } - else if (pressed || (hovered && menuset_opened && !opened)) // menu-bar: first click to open, then hover to open others - want_open = true; - - if (want_close && IsPopupOpen(id)) - ClosePopupToLevel(GImGui->CurrentPopupStack.Size); - - if (!opened && want_open && g.OpenedPopupStack.Size > g.CurrentPopupStack.Size) - { - // Don't recycle same menu level in the same frame, first close the other menu and yield for a frame. - ImGui::OpenPopup(label); - return false; - } - - opened |= want_open; - if (want_open) - ImGui::OpenPopup(label); - - if (opened) - { - ImGui::SetNextWindowPos(popup_pos, ImGuiSetCond_Always); - ImGuiWindowFlags flags = ImGuiWindowFlags_ShowBorders | ((window->Flags & (ImGuiWindowFlags_Popup|ImGuiWindowFlags_ChildMenu)) ? ImGuiWindowFlags_ChildMenu|ImGuiWindowFlags_ChildWindow : ImGuiWindowFlags_ChildMenu); - opened = BeginPopupEx(label, flags); // opened can be 'false' when the popup is completely clipped (e.g. zero size display) - } - - return opened; -} - -void ImGui::EndMenu() -{ - ImGui::EndPopup(); -} - -// A little colored square. Return true when clicked. -bool ImGui::ColorButton(const ImVec4& col, bool small_height, bool outline_border) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID("#colorbutton"); - const float square_size = g.FontSize; - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(square_size + style.FramePadding.y*2, square_size + (small_height ? 0 : style.FramePadding.y*2))); - ItemSize(bb, small_height ? 0.0f : style.FramePadding.y); - if (!ItemAdd(bb, &id)) - return false; - - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held, true); - RenderFrame(bb.Min, bb.Max, window->Color(col), outline_border, style.FrameRounding); - - if (hovered) - { - int ix = (int)(col.x * 255.0f + 0.5f); - int iy = (int)(col.y * 255.0f + 0.5f); - int iz = (int)(col.z * 255.0f + 0.5f); - int iw = (int)(col.w * 255.0f + 0.5f); - ImGui::SetTooltip("Color:\n(%.2f,%.2f,%.2f,%.2f)\n#%02X%02X%02X%02X", col.x, col.y, col.z, col.w, ix, iy, iz, iw); - } - - return pressed; -} - -bool ImGui::ColorEdit3(const char* label, float col[3]) -{ - float col4[4]; - col4[0] = col[0]; - col4[1] = col[1]; - col4[2] = col[2]; - col4[3] = 1.0f; - const bool value_changed = ImGui::ColorEdit4(label, col4, false); - col[0] = col4[0]; - col[1] = col4[1]; - col[2] = col4[2]; - return value_changed; -} - -// Edit colors components (each component in 0.0f..1.0f range -// Use CTRL-Click to input value and TAB to go to next item. -bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiState& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const float w_full = ImGui::CalcItemWidth(); - const float square_sz = (g.FontSize + style.FramePadding.y * 2.0f); - - ImGuiColorEditMode edit_mode = window->DC.ColorEditMode; - if (edit_mode == ImGuiColorEditMode_UserSelect || edit_mode == ImGuiColorEditMode_UserSelectShowButton) - edit_mode = g.ColorEditModeStorage.GetInt(id, 0) % 3; - - float f[4] = { col[0], col[1], col[2], col[3] }; - - if (edit_mode == ImGuiColorEditMode_HSV) - ImGui::ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]); - - int i[4] = { (int)(f[0] * 255.0f + 0.5f), (int)(f[1] * 255.0f + 0.5f), (int)(f[2] * 255.0f + 0.5f), (int)(f[3] * 255.0f + 0.5f) }; - - int components = alpha ? 4 : 3; - bool value_changed = false; - - ImGui::BeginGroup(); - ImGui::PushID(label); - - const bool hsv = (edit_mode == 1); - switch (edit_mode) - { - case ImGuiColorEditMode_RGB: - case ImGuiColorEditMode_HSV: - { - // RGB/HSV 0..255 Sliders - const float w_items_all = w_full - (square_sz + style.ItemInnerSpacing.x); - const float w_item_one = ImMax(1.0f, (float)(int)((w_items_all - (style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1)) / (float)components)); - const float w_item_last = ImMax(1.0f, (float)(int)(w_items_all - (w_item_one + style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1))); - - const bool hide_prefix = (w_item_one <= CalcTextSize("M:999").x); - const char* ids[4] = { "##X", "##Y", "##Z", "##W" }; - const char* fmt_table[3][4] = - { - { "%3.0f", "%3.0f", "%3.0f", "%3.0f" }, - { "R:%3.0f", "G:%3.0f", "B:%3.0f", "A:%3.0f" }, - { "H:%3.0f", "S:%3.0f", "V:%3.0f", "A:%3.0f" } - }; - const char** fmt = hide_prefix ? fmt_table[0] : hsv ? fmt_table[2] : fmt_table[1]; - - ImGui::PushItemWidth(w_item_one); - for (int n = 0; n < components; n++) - { - if (n > 0) - ImGui::SameLine(0, style.ItemInnerSpacing.x); - if (n + 1 == components) - ImGui::PushItemWidth(w_item_last); - value_changed |= ImGui::DragInt(ids[n], &i[n], 1.0f, 0, 255, fmt[n]); - } - ImGui::PopItemWidth(); - ImGui::PopItemWidth(); - } - break; - case ImGuiColorEditMode_HEX: - { - // RGB Hexadecimal Input - const float w_slider_all = w_full - square_sz; - char buf[64]; - if (alpha) - ImFormatString(buf, IM_ARRAYSIZE(buf), "#%02X%02X%02X%02X", i[0], i[1], i[2], i[3]); - else - ImFormatString(buf, IM_ARRAYSIZE(buf), "#%02X%02X%02X", i[0], i[1], i[2]); - ImGui::PushItemWidth(w_slider_all - style.ItemInnerSpacing.x); - value_changed |= ImGui::InputText("##Text", buf, IM_ARRAYSIZE(buf), ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase); - ImGui::PopItemWidth(); - char* p = buf; - while (*p == '#' || ImCharIsSpace(*p)) - p++; - - // Treat at unsigned (%X is unsigned) - i[0] = i[1] = i[2] = i[3] = 0; - if (alpha) - sscanf(p, "%02X%02X%02X%02X", (unsigned int*)&i[0], (unsigned int*)&i[1], (unsigned int*)&i[2], (unsigned int*)&i[3]); - else - sscanf(p, "%02X%02X%02X", (unsigned int*)&i[0], (unsigned int*)&i[1], (unsigned int*)&i[2]); - } - break; - } - - ImGui::SameLine(0, style.ItemInnerSpacing.x); - - const ImVec4 col_display(col[0], col[1], col[2], 1.0f); - if (ImGui::ColorButton(col_display)) - g.ColorEditModeStorage.SetInt(id, (edit_mode + 1) % 3); // Don't set local copy of 'edit_mode' right away! - - if (window->DC.ColorEditMode == ImGuiColorEditMode_UserSelectShowButton) - { - ImGui::SameLine(0, style.ItemInnerSpacing.x); - const char* button_titles[3] = { "RGB", "HSV", "HEX" }; - if (ButtonEx(button_titles[edit_mode], ImVec2(0,0), ImGuiButtonFlags_DontClosePopups)) - g.ColorEditModeStorage.SetInt(id, (edit_mode + 1) % 3); // Don't set local copy of 'edit_mode' right away! - ImGui::SameLine(); - } - else - { - ImGui::SameLine(0, style.ItemInnerSpacing.x); - } - - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); - - // Convert back - for (int n = 0; n < 4; n++) - f[n] = i[n] / 255.0f; - if (edit_mode == 1) - ImGui::ColorConvertHSVtoRGB(f[0], f[1], f[2], f[0], f[1], f[2]); - - if (value_changed) - { - col[0] = f[0]; - col[1] = f[1]; - col[2] = f[2]; - if (alpha) - col[3] = f[3]; - } - - ImGui::PopID(); - ImGui::EndGroup(); - - return value_changed; -} - -void ImGui::ColorEditMode(ImGuiColorEditMode mode) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.ColorEditMode = mode; -} - -// Horizontal separating line. -void ImGui::Separator() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - if (window->DC.ColumnsCount > 1) - PopClipRect(); - - float x1 = window->Pos.x; - float x2 = window->Pos.x + window->Size.x; - if (!window->DC.GroupStack.empty()) - x1 += window->DC.ColumnsStartX; - - const ImRect bb(ImVec2(x1, window->DC.CursorPos.y), ImVec2(x2, window->DC.CursorPos.y)); - ItemSize(ImVec2(0.0f, bb.GetSize().y)); // NB: we don't provide our width so that it doesn't get feed back into AutoFit - if (!ItemAdd(bb, NULL)) - { - if (window->DC.ColumnsCount > 1) - PushColumnClipRect(); - return; - } - - window->DrawList->AddLine(bb.Min, bb.Max, window->Color(ImGuiCol_Border)); - - ImGuiState& g = *GImGui; - if (g.LogEnabled) - ImGui::LogText(IM_NEWLINE "--------------------------------"); - - if (window->DC.ColumnsCount > 1) - { - PushColumnClipRect(); - window->DC.ColumnsCellMinY = window->DC.CursorPos.y; - } -} - -void ImGui::Spacing() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - ItemSize(ImVec2(0,0)); -} - -void ImGui::Dummy(const ImVec2& size) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - ItemSize(size); -} - -bool ImGui::IsRectVisible(const ImVec2& size) -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->ClipRect.Overlaps(ImRect(window->DC.CursorPos, window->DC.CursorPos + size)); -} - -void ImGui::BeginGroup() -{ - ImGuiWindow* window = GetCurrentWindow(); - - window->DC.GroupStack.resize(window->DC.GroupStack.Size + 1); - ImGuiGroupData& group_data = window->DC.GroupStack.back(); - group_data.BackupCursorPos = window->DC.CursorPos; - group_data.BackupCursorMaxPos = window->DC.CursorMaxPos; - group_data.BackupColumnsStartX = window->DC.ColumnsStartX; - group_data.BackupCurrentLineHeight = window->DC.CurrentLineHeight; - group_data.BackupCurrentLineTextBaseOffset = window->DC.CurrentLineTextBaseOffset; - group_data.BackupLogLinePosY = window->DC.LogLinePosY; - group_data.AdvanceCursor = true; - - window->DC.ColumnsStartX = window->DC.CursorPos.x - window->Pos.x; - window->DC.CursorMaxPos = window->DC.CursorPos; - window->DC.CurrentLineHeight = 0.0f; - window->DC.LogLinePosY = window->DC.CursorPos.y - 9999.0f; -} - -void ImGui::EndGroup() -{ - ImGuiWindow* window = GetCurrentWindow(); - ImGuiStyle& style = ImGui::GetStyle(); - - IM_ASSERT(!window->DC.GroupStack.empty()); - - ImGuiGroupData& group_data = window->DC.GroupStack.back(); - - ImRect group_bb(group_data.BackupCursorPos, window->DC.CursorMaxPos); - group_bb.Max.y -= style.ItemSpacing.y; // Cancel out last vertical spacing because we are adding one ourselves. - group_bb.Max = ImMax(group_bb.Min, group_bb.Max); - - window->DC.CursorPos = group_data.BackupCursorPos; - window->DC.CursorMaxPos = ImMax(group_data.BackupCursorMaxPos, window->DC.CursorMaxPos); - window->DC.CurrentLineHeight = group_data.BackupCurrentLineHeight; - window->DC.CurrentLineTextBaseOffset = group_data.BackupCurrentLineTextBaseOffset; - window->DC.ColumnsStartX = group_data.BackupColumnsStartX; - window->DC.LogLinePosY = window->DC.CursorPos.y - 9999.0f; - - if (group_data.AdvanceCursor) - { - window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.PrevLineTextBaseOffset, group_data.BackupCurrentLineTextBaseOffset); // FIXME: Incorrect, we should grab the base offset from the *first line* of the group but it is hard to obtain now. - ItemSize(group_bb.GetSize(), group_data.BackupCurrentLineTextBaseOffset); - ItemAdd(group_bb, NULL); - } - - window->DC.GroupStack.pop_back(); - - //window->DrawList->AddRect(group_bb.Min, group_bb.Max, 0xFFFF00FF); // Debug -} - -// Gets back to previous line and continue with horizontal layout -// pos_x == 0 : follow on previous item -// pos_x != 0 : align to specified column -// spacing_w < 0 : use default spacing if column_x==0, no spacing if column_x!=0 -// spacing_w >= 0 : enforce spacing -void ImGui::SameLine(float pos_x, float spacing_w) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiState& g = *GImGui; - float x, y; - if (pos_x != 0.0f) - { - if (spacing_w < 0.0f) spacing_w = 0.0f; - x = window->Pos.x + pos_x + spacing_w; - y = window->DC.CursorPosPrevLine.y; - } - else - { - if (spacing_w < 0.0f) spacing_w = g.Style.ItemSpacing.x; - x = window->DC.CursorPosPrevLine.x + spacing_w; - y = window->DC.CursorPosPrevLine.y; - } - window->DC.CurrentLineHeight = window->DC.PrevLineHeight; - window->DC.CurrentLineTextBaseOffset = window->DC.PrevLineTextBaseOffset; - window->DC.CursorPos = ImVec2(x, y); -} - -void ImGui::NextColumn() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiState& g = *GImGui; - if (window->DC.ColumnsCount > 1) - { - ImGui::PopItemWidth(); - PopClipRect(); - - window->DC.ColumnsCellMaxY = ImMax(window->DC.ColumnsCellMaxY, window->DC.CursorPos.y); - if (++window->DC.ColumnsCurrent < window->DC.ColumnsCount) - { - window->DC.ColumnsOffsetX = ImGui::GetColumnOffset(window->DC.ColumnsCurrent) - window->DC.ColumnsStartX + g.Style.ItemSpacing.x; - window->DrawList->ChannelsSetCurrent(window->DC.ColumnsCurrent); - } - else - { - window->DC.ColumnsCurrent = 0; - window->DC.ColumnsOffsetX = 0.0f; - window->DC.ColumnsCellMinY = window->DC.ColumnsCellMaxY; - window->DrawList->ChannelsSetCurrent(0); - } - window->DC.CursorPos.x = (float)(int)(window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX); - window->DC.CursorPos.y = window->DC.ColumnsCellMinY; - window->DC.CurrentLineHeight = 0.0f; - window->DC.CurrentLineTextBaseOffset = 0.0f; - - PushColumnClipRect(); - ImGui::PushItemWidth(ImGui::GetColumnWidth() * 0.65f); // FIXME - } -} - -int ImGui::GetColumnIndex() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.ColumnsCurrent; -} - -int ImGui::GetColumnsCount() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DC.ColumnsCount; -} - -static float GetDraggedColumnOffset(int column_index) -{ - // Active (dragged) column always follow mouse. The reason we need this is that dragging a column to the right edge of an auto-resizing - // window creates a feedback loop because we store normalized positions/ So while dragging we enforce absolute positioning - ImGuiState& g = *GImGui; - ImGuiWindow* window = ImGui::GetCurrentWindow(); - IM_ASSERT(column_index > 0); // We cannot drag column 0. If you get this assert you may have a conflict between the ID of your columns and another widgets. - IM_ASSERT(g.ActiveId == window->DC.ColumnsSetID + ImGuiID(column_index)); - - float x = g.IO.MousePos.x + g.ActiveClickDeltaToCenter.x - window->Pos.x; - x = ImClamp(x, ImGui::GetColumnOffset(column_index-1)+g.Style.ColumnsMinSpacing, ImGui::GetColumnOffset(column_index+1)-g.Style.ColumnsMinSpacing); - - return (float)(int)x; -} - -float ImGui::GetColumnOffset(int column_index) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - if (column_index < 0) - column_index = window->DC.ColumnsCurrent; - - if (g.ActiveId) - { - const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); - if (g.ActiveId == column_id) - return GetDraggedColumnOffset(column_index); - } - - // Read from cache - IM_ASSERT(column_index < window->DC.ColumnsOffsetsT.Size); - const float t = window->DC.ColumnsOffsetsT[column_index]; - - const float min_x = window->DC.ColumnsStartX; - const float max_x = window->Size.x - ((window->Flags & ImGuiWindowFlags_NoScrollbar) ? 0 : g.Style.ScrollbarWidth);// - window->WindowPadding().x; - const float x = min_x + t * (max_x - min_x); - return (float)(int)x; -} - -void ImGui::SetColumnOffset(int column_index, float offset) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - if (column_index < 0) - column_index = window->DC.ColumnsCurrent; - - IM_ASSERT(column_index < window->DC.ColumnsOffsetsT.Size); - const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); - - const float min_x = window->DC.ColumnsStartX; - const float max_x = window->Size.x - ((window->Flags & ImGuiWindowFlags_NoScrollbar) ? 0 : g.Style.ScrollbarWidth);// - window->WindowPadding().x; - const float t = (offset - min_x) / (max_x - min_x); - window->DC.StateStorage->SetFloat(column_id, t); - window->DC.ColumnsOffsetsT[column_index] = t; -} - -float ImGui::GetColumnWidth(int column_index) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (column_index < 0) - column_index = window->DC.ColumnsCurrent; - - const float w = GetColumnOffset(column_index+1) - GetColumnOffset(column_index); - return w; -} - -static void PushColumnClipRect(int column_index) -{ - ImGuiWindow* window = ImGui::GetCurrentWindow(); - if (column_index < 0) - column_index = window->DC.ColumnsCurrent; - - const float x1 = window->Pos.x + ImGui::GetColumnOffset(column_index) - 1; - const float x2 = window->Pos.x + ImGui::GetColumnOffset(column_index+1) - 1; - PushClipRect(ImVec4(x1,-FLT_MAX,x2,+FLT_MAX)); -} - -void ImGui::Columns(int columns_count, const char* id, bool border) -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - if (window->DC.ColumnsCount != 1) - { - if (window->DC.ColumnsCurrent != 0) - ItemSize(ImVec2(0,0)); // Advance to column 0 - ImGui::PopItemWidth(); - PopClipRect(); - window->DrawList->ChannelsMerge(window->DC.ColumnsCount); - - window->DC.ColumnsCellMaxY = ImMax(window->DC.ColumnsCellMaxY, window->DC.CursorPos.y); - window->DC.CursorPos.y = window->DC.ColumnsCellMaxY; - } - - // Draw columns borders and handle resize at the time of "closing" a columns set - if (window->DC.ColumnsCount != columns_count && window->DC.ColumnsCount != 1 && window->DC.ColumnsShowBorders && !window->SkipItems) - { - const float y1 = window->DC.ColumnsStartPos.y; - const float y2 = window->DC.CursorPos.y; - for (int i = 1; i < window->DC.ColumnsCount; i++) - { - float x = window->Pos.x + GetColumnOffset(i); - const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(i); - const ImRect column_rect(ImVec2(x-4,y1),ImVec2(x+4,y2)); - if (IsClippedEx(column_rect, &column_id, false)) - continue; - - bool hovered, held; - ButtonBehavior(column_rect, column_id, &hovered, &held, true); - if (hovered || held) - g.MouseCursor = ImGuiMouseCursor_ResizeEW; - - // Draw before resize so our items positioning are in sync with the line being drawn - const ImU32 col = window->Color(held ? ImGuiCol_ColumnActive : hovered ? ImGuiCol_ColumnHovered : ImGuiCol_Column); - const float xi = (float)(int)x; - window->DrawList->AddLine(ImVec2(xi, y1+1.0f), ImVec2(xi, y2), col); - - if (held) - { - if (g.ActiveIdIsJustActivated) - g.ActiveClickDeltaToCenter.x = x - g.IO.MousePos.x; - - x = GetDraggedColumnOffset(i); - SetColumnOffset(i, x); - } - } - } - - // Set state for first column - ImGui::PushID(0x11223344); // Differentiate column ID with an arbitrary/random prefix for cases where users name their columns set the same as another non-scope widget - window->DC.ColumnsSetID = window->GetID(id ? id : ""); - ImGui::PopID(); - window->DC.ColumnsCurrent = 0; - window->DC.ColumnsCount = columns_count; - window->DC.ColumnsShowBorders = border; - window->DC.ColumnsStartPos = window->DC.CursorPos; - window->DC.ColumnsCellMinY = window->DC.ColumnsCellMaxY = window->DC.CursorPos.y; - window->DC.ColumnsOffsetX = 0.0f; - window->DC.CursorPos.x = (float)(int)(window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX); - - if (window->DC.ColumnsCount != 1) - { - // Cache column offsets - window->DC.ColumnsOffsetsT.resize(columns_count + 1); - for (int column_index = 0; column_index < columns_count + 1; column_index++) - { - const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); - KeepAliveID(column_id); - const float default_t = column_index / (float)window->DC.ColumnsCount; - const float t = window->DC.StateStorage->GetFloat(column_id, default_t); // Cheaply store our floating point value inside the integer (could store an union into the map?) - window->DC.ColumnsOffsetsT[column_index] = t; - } - window->DrawList->ChannelsSplit(window->DC.ColumnsCount); - PushColumnClipRect(); - ImGui::PushItemWidth(ImGui::GetColumnWidth() * 0.65f); - } - else - { - window->DC.ColumnsOffsetsT.resize(2); - window->DC.ColumnsOffsetsT[0] = 0.0f; - window->DC.ColumnsOffsetsT[1] = 1.0f; - } -} - -void ImGui::Indent() -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - window->DC.ColumnsStartX += g.Style.IndentSpacing; - window->DC.CursorPos.x = window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX; -} - -void ImGui::Unindent() -{ - ImGuiState& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - window->DC.ColumnsStartX -= g.Style.IndentSpacing; - window->DC.CursorPos.x = window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX; -} - -void ImGui::TreePush(const char* str_id) -{ - ImGuiWindow* window = GetCurrentWindow(); - ImGui::Indent(); - window->DC.TreeDepth++; - PushID(str_id ? str_id : "#TreePush"); -} - -void ImGui::TreePush(const void* ptr_id) -{ - ImGuiWindow* window = GetCurrentWindow(); - ImGui::Indent(); - window->DC.TreeDepth++; - PushID(ptr_id ? ptr_id : (const void*)"#TreePush"); -} - -void ImGui::TreePop() -{ - ImGuiWindow* window = GetCurrentWindow(); - ImGui::Unindent(); - window->DC.TreeDepth--; - PopID(); -} - -void ImGui::Value(const char* prefix, bool b) -{ - ImGui::Text("%s: %s", prefix, (b ? "true" : "false")); -} - -void ImGui::Value(const char* prefix, int v) -{ - ImGui::Text("%s: %d", prefix, v); -} - -void ImGui::Value(const char* prefix, unsigned int v) -{ - ImGui::Text("%s: %d", prefix, v); -} - -void ImGui::Value(const char* prefix, float v, const char* float_format) -{ - if (float_format) - { - char fmt[64]; - ImFormatString(fmt, IM_ARRAYSIZE(fmt), "%%s: %s", float_format); - ImGui::Text(fmt, prefix, v); - } - else - { - ImGui::Text("%s: %.3f", prefix, v); - } -} - -void ImGui::Color(const char* prefix, const ImVec4& v) -{ - ImGui::Text("%s: (%.2f,%.2f,%.2f,%.2f)", prefix, v.x, v.y, v.z, v.w); - ImGui::SameLine(); - ImGui::ColorButton(v, true); -} - -void ImGui::Color(const char* prefix, unsigned int v) -{ - ImGui::Text("%s: %08X", prefix, v); - ImGui::SameLine(); - - ImVec4 col; - col.x = (float)((v >> 0) & 0xFF) / 255.0f; - col.y = (float)((v >> 8) & 0xFF) / 255.0f; - col.z = (float)((v >> 16) & 0xFF) / 255.0f; - col.w = (float)((v >> 24) & 0xFF) / 255.0f; - ImGui::ColorButton(col, true); -} - -//----------------------------------------------------------------------------- -// PLATFORM DEPENDANT HELPERS -//----------------------------------------------------------------------------- - -#if defined(_MSC_VER) && !defined(IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS) - -#ifndef _WINDOWS_ -#define WIN32_LEAN_AND_MEAN -#include -#endif -#pragma comment(lib, "user32") - -// Win32 API clipboard implementation -static const char* GetClipboardTextFn_DefaultImpl() -{ - static char* buf_local = NULL; - if (buf_local) - { - ImGui::MemFree(buf_local); - buf_local = NULL; - } - if (!OpenClipboard(NULL)) - return NULL; - HANDLE wbuf_handle = GetClipboardData(CF_UNICODETEXT); - if (wbuf_handle == NULL) - return NULL; - if (ImWchar* wbuf_global = (ImWchar*)GlobalLock(wbuf_handle)) - { - int buf_len = ImTextCountUtf8BytesFromStr(wbuf_global, NULL) + 1; - buf_local = (char*)ImGui::MemAlloc(buf_len * sizeof(char)); - ImTextStrToUtf8(buf_local, buf_len, wbuf_global, NULL); - } - GlobalUnlock(wbuf_handle); - CloseClipboard(); - return buf_local; -} - -// Win32 API clipboard implementation -static void SetClipboardTextFn_DefaultImpl(const char* text) -{ - if (!OpenClipboard(NULL)) - return; - - const int wbuf_length = ImTextCountCharsFromUtf8(text, NULL) + 1; - HGLOBAL wbuf_handle = GlobalAlloc(GMEM_MOVEABLE, (SIZE_T)wbuf_length * sizeof(ImWchar)); - if (wbuf_handle == NULL) - return; - ImWchar* wbuf_global = (ImWchar*)GlobalLock(wbuf_handle); - ImTextStrFromUtf8(wbuf_global, wbuf_length, text, NULL); - GlobalUnlock(wbuf_handle); - EmptyClipboard(); - SetClipboardData(CF_UNICODETEXT, wbuf_handle); - CloseClipboard(); -} - -#else - -// Local ImGui-only clipboard implementation, if user hasn't defined better clipboard handlers -static const char* GetClipboardTextFn_DefaultImpl() -{ - return GImGui->PrivateClipboard; -} - -// Local ImGui-only clipboard implementation, if user hasn't defined better clipboard handlers -static void SetClipboardTextFn_DefaultImpl(const char* text) -{ - ImGuiState& g = *GImGui; - if (g.PrivateClipboard) - { - ImGui::MemFree(g.PrivateClipboard); - g.PrivateClipboard = NULL; - } - const char* text_end = text + strlen(text); - g.PrivateClipboard = (char*)ImGui::MemAlloc((size_t)(text_end - text) + 1); - memcpy(g.PrivateClipboard, text, (size_t)(text_end - text)); - g.PrivateClipboard[(int)(text_end - text)] = 0; -} - -#endif - -#if defined(_MSC_VER) && !defined(IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS) - -#ifndef _WINDOWS_ -#define WIN32_LEAN_AND_MEAN -#include -#endif -#include -#pragma comment(lib, "imm32") - -static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y) -{ - // Notify OS Input Method Editor of text input position - if (HWND hwnd = (HWND)GImGui->IO.ImeWindowHandle) - if (HIMC himc = ImmGetContext(hwnd)) - { - COMPOSITIONFORM cf; - cf.ptCurrentPos.x = x; - cf.ptCurrentPos.y = y; - cf.dwStyle = CFS_FORCE_POSITION; - ImmSetCompositionWindow(himc, &cf); - } -} - -#else - -static void ImeSetInputScreenPosFn_DefaultImpl(int, int) {} - -#endif - -//----------------------------------------------------------------------------- -// HELP -//----------------------------------------------------------------------------- - -void ImGui::ShowMetricsWindow(bool* opened) -{ - if (ImGui::Begin("ImGui Metrics", opened)) - { - ImGui::Text("ImGui %s", ImGui::GetVersion()); - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate); - ImGui::Text("%d vertices, %d triangles", ImGui::GetIO().MetricsRenderVertices, ImGui::GetIO().MetricsRenderIndices / 3); - ImGui::Text("%d allocations", ImGui::GetIO().MetricsAllocs); - static bool show_clip_rects = true; - ImGui::Checkbox("Show clipping rectangles when hovering ImDrawList", &show_clip_rects); - ImGui::Separator(); - - struct Funcs - { - static void NodeDrawList(ImDrawList* draw_list, const char* label) - { - bool node_opened = ImGui::TreeNode(draw_list, "%s: '%s' %d vtx, %d indices, %d cmds", label, draw_list->_OwnerName ? draw_list->_OwnerName : "", draw_list->VtxBuffer.Size, draw_list->IdxBuffer.Size, draw_list->CmdBuffer.Size); - if (draw_list == ImGui::GetWindowDrawList()) - { - ImGui::SameLine(); - ImGui::TextColored(ImColor(255,100,100), "CURRENTLY APPENDING"); // Can't display stats for active draw list! (we don't have the data double-buffered) - } - if (!node_opened) - return; - - int elem_offset = 0; - for (const ImDrawCmd* pcmd = draw_list->CmdBuffer.begin(); pcmd < draw_list->CmdBuffer.end(); elem_offset += pcmd->ElemCount, pcmd++) - { - if (pcmd->UserCallback) - ImGui::BulletText("Callback %p, user_data %p", pcmd->UserCallback, pcmd->UserCallbackData); - else - { - ImGui::BulletText("Draw %d indexed vtx, tex = %p, clip_rect = (%.0f,%.0f)..(%.0f,%.0f)", pcmd->ElemCount, pcmd->TextureId, pcmd->ClipRect.x, pcmd->ClipRect.y, pcmd->ClipRect.z, pcmd->ClipRect.w); - if (show_clip_rects && ImGui::IsItemHovered()) - { - ImRect clip_rect = pcmd->ClipRect; - ImRect vtxs_rect; - for (int i = elem_offset; i < elem_offset + (int)pcmd->ElemCount; i++) - vtxs_rect.Add(draw_list->VtxBuffer[draw_list->IdxBuffer[i]].pos); - GImGui->OverlayDrawList.PushClipRectFullScreen(); - clip_rect.Round(); GImGui->OverlayDrawList.AddRect(clip_rect.Min, clip_rect.Max, ImColor(255,255,0)); - vtxs_rect.Round(); GImGui->OverlayDrawList.AddRect(vtxs_rect.Min, vtxs_rect.Max, ImColor(255,0,255)); - GImGui->OverlayDrawList.PopClipRect(); - } - } - } - ImGui::TreePop(); - } - - static void NodeWindows(ImVector& windows, const char* label) - { - if (!ImGui::TreeNode(label, "%s (%d)", label, windows.Size)) - return; - for (int i = 0; i < windows.Size; i++) - Funcs::NodeWindow(windows[i], "Window"); - ImGui::TreePop(); - } - - static void NodeWindow(ImGuiWindow* window, const char* label) - { - if (!ImGui::TreeNode(window, "%s '%s', %d @ 0x%p", label, window->Name, window->Active || window->WasActive, window)) - return; - NodeDrawList(window->DrawList, "DrawList"); - if (window->RootWindow != window) NodeWindow(window->RootWindow, "RootWindow"); - if (window->DC.ChildWindows.Size > 0) NodeWindows(window->DC.ChildWindows, "ChildWindows"); - ImGui::BulletText("Storage: %d bytes", window->StateStorage.Data.Size * sizeof(ImGuiStorage::Pair)); - ImGui::TreePop(); - } - }; - - ImGuiState& g = *GImGui; // Access private state - g.DisableHideTextAfterDoubleHash++; // Not exposed (yet). Disable processing that hides text after '##' markers. - Funcs::NodeWindows(g.Windows, "Windows"); - if (ImGui::TreeNode("DrawList", "Active DrawLists (%d)", g.RenderDrawLists[0].Size)) - { - for (int i = 0; i < g.RenderDrawLists[0].Size; i++) - Funcs::NodeDrawList(g.RenderDrawLists[0][i], "DrawList"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Popups", "Opened Popups Stack (%d)", g.OpenedPopupStack.Size)) - { - for (int i = 0; i < g.OpenedPopupStack.Size; i++) - { - ImGuiWindow* window = g.OpenedPopupStack[i].Window; - ImGui::BulletText("PopupID: %08x, Window: '%s'%s%s", g.OpenedPopupStack[i].PopupID, window ? window->Name : "NULL", window && (window->Flags & ImGuiWindowFlags_ChildWindow) ? " ChildWindow" : "", window && (window->Flags & ImGuiWindowFlags_ChildMenu) ? " ChildMenu" : ""); - } - ImGui::TreePop(); - } - g.DisableHideTextAfterDoubleHash--; - } - ImGui::End(); -} - -//----------------------------------------------------------------------------- - -//---- Include imgui_user.inl at the end of imgui.cpp -//---- So you can include code that extends ImGui using its private data/functions. -#ifdef IMGUI_INCLUDE_IMGUI_USER_INL -#include "imgui_user.inl" -#endif - -//----------------------------------------------------------------------------- diff --git a/samples/D3D12/external/imgui/imgui.h b/samples/D3D12/external/imgui/imgui.h deleted file mode 100644 index f958c85..0000000 --- a/samples/D3D12/external/imgui/imgui.h +++ /dev/null @@ -1,1250 +0,0 @@ -// ImGui library v1.44 -// Headers - -// See imgui.cpp file for documentation. -// See ImGui::ShowTestWindow() in imgui_demo.cpp for demo code. -// Read 'Programmer guide' in .cpp for notes on how to setup ImGui in your codebase. -// Get latest version at https://github.com/ocornut/imgui - -#pragma once - -#if !defined(IMGUI_DISABLE_INCLUDE_IMCONFIG_H) || defined(IMGUI_INCLUDE_IMCONFIG_H) -#include "imconfig.h" // User-editable configuration file -#endif -#include // FLT_MAX -#include // va_list -#include // ptrdiff_t, NULL -#include // NULL, malloc, free, qsort, atoi -#include // memset, memmove, memcpy, strlen, strchr, strcpy, strcmp - -#define IMGUI_VERSION "1.44" - -// Define assertion handler. -#ifndef IM_ASSERT -#include -#define IM_ASSERT(_EXPR) assert(_EXPR) -#endif - -// Define attributes of all API symbols declarations, e.g. for DLL under Windows. -#ifndef IMGUI_API -#define IMGUI_API -#endif - -// Forward declarations -struct ImDrawCmd; -struct ImDrawList; -struct ImDrawData; -struct ImFont; -struct ImFontAtlas; -struct ImGuiIO; -struct ImGuiStorage; -struct ImGuiStyle; - -typedef unsigned int ImU32; -typedef unsigned short ImWchar; // character for keyboard input/display -typedef void* ImTextureID; // user data to refer to a texture (e.g. store your texture handle/id) -typedef ImU32 ImGuiID; // unique ID used by widgets (typically hashed from a stack of string) -typedef int ImGuiCol; // enum ImGuiCol_ -typedef int ImGuiStyleVar; // enum ImGuiStyleVar_ -typedef int ImGuiKey; // enum ImGuiKey_ -typedef int ImGuiAlign; // enum ImGuiAlign_ -typedef int ImGuiColorEditMode; // enum ImGuiColorEditMode_ -typedef int ImGuiMouseCursor; // enum ImGuiMouseCursor_ -typedef int ImGuiWindowFlags; // enum ImGuiWindowFlags_ -typedef int ImGuiSetCond; // enum ImGuiSetCond_ -typedef int ImGuiInputTextFlags; // enum ImGuiInputTextFlags_ -typedef int ImGuiSelectableFlags; // enum ImGuiSelectableFlags_ -struct ImGuiTextEditCallbackData; // for advanced uses of InputText() -typedef int (*ImGuiTextEditCallback)(ImGuiTextEditCallbackData *data); - -struct ImVec2 -{ - float x, y; - ImVec2() { x = y = 0.0f; } - ImVec2(float _x, float _y) { x = _x; y = _y; } - -#ifdef IM_VEC2_CLASS_EXTRA // Define constructor and implicit cast operators in imconfig.h to convert back<>forth from your math types and ImVec2. - IM_VEC2_CLASS_EXTRA -#endif -}; - -struct ImVec4 -{ - float x, y, z, w; - ImVec4() { x = y = z = w = 0.0f; } - ImVec4(float _x, float _y, float _z, float _w) { x = _x; y = _y; z = _z; w = _w; } - -#ifdef IM_VEC4_CLASS_EXTRA // Define constructor and implicit cast operators in imconfig.h to convert back<>forth from your math types and ImVec4. - IM_VEC4_CLASS_EXTRA -#endif -}; - -// Helpers at bottom of the file: -// - class ImVector<> // Lightweight std::vector like class. -// - IMGUI_ONCE_UPON_A_FRAME // Execute a block of code once per frame only (convenient for creating UI within deep-nested code that runs multiple times) -// - struct ImGuiTextFilter // Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" -// - struct ImGuiTextBuffer // Text buffer for logging/accumulating text -// - struct ImGuiStorage // Custom key value storage (if you need to alter open/close states manually) -// - struct ImGuiTextEditCallbackData // Shared state of ImGui::InputText() when using custom callbacks -// - struct ImGuiListClipper // Helper to manually clip large list of items. -// - struct ImColor // Helper functions to created packed 32-bit RGBA color values -// - struct ImDrawList // Draw command list -// - struct ImFontAtlas // Bake multiple fonts into a single texture, TTF font loader, bake glyphs into bitmap -// - struct ImFont // Single font - -// ImGui end-user API -// In a namespace so that user can add extra functions in a separate file (e.g. Value() helpers for your vector or common types) -namespace ImGui -{ - // Main - IMGUI_API ImGuiIO& GetIO(); - IMGUI_API ImGuiStyle& GetStyle(); - IMGUI_API void NewFrame(); - IMGUI_API void Render(); - IMGUI_API void Shutdown(); - IMGUI_API void ShowUserGuide(); // help block - IMGUI_API void ShowStyleEditor(ImGuiStyle* ref = NULL); // style editor block - IMGUI_API void ShowTestWindow(bool* opened = NULL); // test window, demonstrate ImGui features - IMGUI_API void ShowMetricsWindow(bool* opened = NULL); // metrics window for debugging imgui - - // Window - IMGUI_API bool Begin(const char* name = "Debug", bool* p_opened = NULL, ImGuiWindowFlags flags = 0); // see .cpp for details. return false when window is collapsed, so you can early out in your code. 'bool* p_opened' creates a widget on the upper-right to close the window (which sets your bool to false). - IMGUI_API bool Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_use, float bg_alpha = -1.0f, ImGuiWindowFlags flags = 0); // this is the older/longer API. call SetNextWindowSize() instead if you want to set a window size. For regular windows, 'size_on_first_use' only applies to the first time EVER the window is created and probably not what you want! maybe obsolete this API eventually. - IMGUI_API void End(); - IMGUI_API bool BeginChild(const char* str_id, const ImVec2& size = ImVec2(0,0), bool border = false, ImGuiWindowFlags extra_flags = 0); // begin a scrolling region. size==0.0f: use remaining window size, size<0.0f: use remaining window size minus abs(size). size>0.0f: fixed size. each axis can use a different mode, e.g. ImVec2(0,400). - IMGUI_API bool BeginChild(ImGuiID id, const ImVec2& size = ImVec2(0,0), bool border = false, ImGuiWindowFlags extra_flags = 0); // " - IMGUI_API void EndChild(); - IMGUI_API ImVec2 GetContentRegionMax(); // window or current column boundaries, in windows coordinates - IMGUI_API ImVec2 GetContentRegionAvail(); // == GetContentRegionMax() - GetCursorPos() - IMGUI_API ImVec2 GetWindowContentRegionMin(); // window boundaries, in windows coordinates - IMGUI_API ImVec2 GetWindowContentRegionMax(); - IMGUI_API ImDrawList* GetWindowDrawList(); // get rendering command-list if you want to append your own draw primitives - IMGUI_API ImFont* GetWindowFont(); - IMGUI_API float GetWindowFontSize(); // size (also height in pixels) of current font with current scale applied - IMGUI_API void SetWindowFontScale(float scale); // per-window font scale. Adjust IO.FontGlobalScale if you want to scale all windows - IMGUI_API ImVec2 GetWindowPos(); // get current window position in screen space (useful if you want to do your own drawing via the DrawList api) - IMGUI_API ImVec2 GetWindowSize(); // get current window size - IMGUI_API float GetWindowWidth(); - IMGUI_API bool IsWindowCollapsed(); - - IMGUI_API void SetNextWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0); // set next window position. call before Begin() - IMGUI_API void SetNextWindowPosCenter(ImGuiSetCond cond = 0); // set next window position to be centered on screen. call before Begin() - IMGUI_API void SetNextWindowSize(const ImVec2& size, ImGuiSetCond cond = 0); // set next window size. set to ImVec2(0,0) to force an auto-fit. call before Begin() - IMGUI_API void SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0); // set next window collapsed state. call before Begin() - IMGUI_API void SetNextWindowFocus(); // set next window to be focused / front-most. call before Begin() - IMGUI_API void SetWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0); // set current window position - call within Begin()/End(). may incur tearing - IMGUI_API void SetWindowSize(const ImVec2& size, ImGuiSetCond cond = 0); // set current window size. set to ImVec2(0,0) to force an auto-fit. may incur tearing - IMGUI_API void SetWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0); // set current window collapsed state - IMGUI_API void SetWindowFocus(); // set current window to be focused / front-most - IMGUI_API void SetWindowPos(const char* name, const ImVec2& pos, ImGuiSetCond cond = 0); // set named window position - call within Begin()/End(). may incur tearing - IMGUI_API void SetWindowSize(const char* name, const ImVec2& size, ImGuiSetCond cond = 0); // set named window size. set to ImVec2(0,0) to force an auto-fit. may incur tearing - IMGUI_API void SetWindowCollapsed(const char* name, bool collapsed, ImGuiSetCond cond = 0); // set named window collapsed state - IMGUI_API void SetWindowFocus(const char* name); // set named window to be focused / front-most. use NULL to remove focus. - - IMGUI_API float GetScrollY(); // get scrolling amount [0..GetScrollMaxY()] - IMGUI_API float GetScrollMaxY(); // get maximum scrolling amount == ContentSize.Y - WindowSize.Y - IMGUI_API void SetScrollY(float scroll_y); // set scrolling amount [0..GetScrollMaxY()] - IMGUI_API void SetScrollHere(float center_y_ratio = 0.5f); // adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. - IMGUI_API void SetScrollFromPosY(float pos_y, float center_y_ratio = 0.5f); // adjust scrolling amount to make given position valid. use GetCursorPos() or GetCursorStartPos()+offset to get valid positions. - IMGUI_API void SetKeyboardFocusHere(int offset = 0); // focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget - IMGUI_API void SetStateStorage(ImGuiStorage* tree); // replace tree state storage with our own (if you want to manipulate it yourself, typically clear subsection of it) - IMGUI_API ImGuiStorage* GetStateStorage(); - - // Parameters stacks (shared) - IMGUI_API void PushFont(ImFont* font); // use NULL as a shortcut to push default font - IMGUI_API void PopFont(); - IMGUI_API void PushStyleColor(ImGuiCol idx, const ImVec4& col); - IMGUI_API void PopStyleColor(int count = 1); - IMGUI_API void PushStyleVar(ImGuiStyleVar idx, float val); - IMGUI_API void PushStyleVar(ImGuiStyleVar idx, const ImVec2& val); - IMGUI_API void PopStyleVar(int count = 1); - - // Parameters stacks (current window) - IMGUI_API void PushItemWidth(float item_width); // width of items for the common item+label case, pixels. 0.0f = default to ~2/3 of windows width, >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -1.0f always align width to the right side) - IMGUI_API void PopItemWidth(); - IMGUI_API float CalcItemWidth(); // width of item given pushed settings and current cursor position - IMGUI_API void PushAllowKeyboardFocus(bool v); // allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets - IMGUI_API void PopAllowKeyboardFocus(); - IMGUI_API void PushTextWrapPos(float wrap_pos_x = 0.0f); // word-wrapping for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrap_pos_x' position in window local space - IMGUI_API void PopTextWrapPos(); - IMGUI_API void PushButtonRepeat(bool repeat); // in 'repeat' mode, Button*() functions return true multiple times as you hold them (uses io.KeyRepeatDelay/io.KeyRepeatRate for now) - IMGUI_API void PopButtonRepeat(); - - // Cursor / Layout - IMGUI_API void BeginGroup(); // once closing a group it is seen as a single item (so you can use IsItemHovered() on a group, SameLine() between groups, etc. - IMGUI_API void EndGroup(); - IMGUI_API void Separator(); // horizontal line - IMGUI_API void SameLine(float pos_x = 0.0f, float spacing_w = -1.0f); // call between widgets or groups to layout them horizontally - IMGUI_API void Spacing(); // add spacing - IMGUI_API void Dummy(const ImVec2& size); // add a dummy item of given size - IMGUI_API void Indent(); // move content position toward the right by style.IndentSpacing pixels - IMGUI_API void Unindent(); // move content position back to the left (cancel Indent) - IMGUI_API void Columns(int count = 1, const char* id = NULL, bool border=true); // setup number of columns. use an identifier to distinguish multiple column sets. close with Columns(1). - IMGUI_API void NextColumn(); // next column - IMGUI_API int GetColumnIndex(); // get current column index - IMGUI_API float GetColumnOffset(int column_index = -1); // get position of column line (in pixels, from the left side of the contents region). pass -1 to use current column, otherwise 0..GetcolumnsCount() inclusive. column 0 is usually 0.0f and not resizable unless you call this - IMGUI_API void SetColumnOffset(int column_index, float offset_x); // set position of column line (in pixels, from the left side of the contents region). pass -1 to use current column - IMGUI_API float GetColumnWidth(int column_index = -1); // column width (== GetColumnOffset(GetColumnIndex()+1) - GetColumnOffset(GetColumnOffset()) - IMGUI_API int GetColumnsCount(); // number of columns (what was passed to Columns()) - IMGUI_API ImVec2 GetCursorPos(); // cursor position is relative to window position - IMGUI_API float GetCursorPosX(); // " - IMGUI_API float GetCursorPosY(); // " - IMGUI_API void SetCursorPos(const ImVec2& pos); // " - IMGUI_API void SetCursorPosX(float x); // " - IMGUI_API void SetCursorPosY(float y); // " - IMGUI_API ImVec2 GetCursorStartPos(); // initial cursor position - IMGUI_API ImVec2 GetCursorScreenPos(); // cursor position in absolute screen coordinates [0..io.DisplaySize] - IMGUI_API void SetCursorScreenPos(const ImVec2& pos); // cursor position in absolute screen coordinates [0..io.DisplaySize] - IMGUI_API void AlignFirstTextHeightToWidgets(); // call once if the first item on the line is a Text() item and you want to vertically lower it to match subsequent (bigger) widgets - IMGUI_API float GetTextLineHeight(); // height of font == GetWindowFontSize() - IMGUI_API float GetTextLineHeightWithSpacing(); // distance (in pixels) between 2 consecutive lines of text == GetWindowFontSize() + GetStyle().ItemSpacing.y - IMGUI_API float GetItemsLineHeightWithSpacing(); // distance (in pixels) between 2 consecutive lines of standard height widgets == GetWindowFontSize() + GetStyle().FramePadding.y*2 + GetStyle().ItemSpacing.y - - // ID scopes - // If you are creating widgets in a loop you most likely want to push a unique identifier so ImGui can differentiate them. - // You can also use "##extra" within your widget name to distinguish them from each others. Read the FAQ for more details. - IMGUI_API void PushID(const char* str_id); // push identifier into the ID stack. IDs are hash of the *entire* stack! - IMGUI_API void PushID(const char* str_id_begin, const char* str_id_end); - IMGUI_API void PushID(const void* ptr_id); - IMGUI_API void PushID(int int_id); - IMGUI_API void PopID(); - IMGUI_API ImGuiID GetID(const char* str_id); // calculate unique ID (hash of whole ID stack + given parameter). useful if you want to query into ImGuiStorage yourself. otherwise rarely needed - IMGUI_API ImGuiID GetID(const char* str_id_begin, const char* str_id_end); - IMGUI_API ImGuiID GetID(const void* ptr_id); - - // Widgets - IMGUI_API void Text(const char* fmt, ...); - IMGUI_API void TextV(const char* fmt, va_list args); - IMGUI_API void TextColored(const ImVec4& col, const char* fmt, ...); // shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor(); - IMGUI_API void TextColoredV(const ImVec4& col, const char* fmt, va_list args); - IMGUI_API void TextDisabled(const char* fmt, ...); // shortcut for PushStyleColor(ImGuiCol_Text, style.Colors[ImGuiCol_TextDisabled]); Text(fmt, ...); PopStyleColor(); - IMGUI_API void TextDisabledV(const char* fmt, va_list args); - IMGUI_API void TextWrapped(const char* fmt, ...); // shortcut for PushTextWrapPos(0.0f); Text(fmt, ...); PopTextWrapPos();. Note that this won't work on an auto-resizing window if there's no other widgets to extend the window width, yoy may need to set a size using SetNextWindowSize(). - IMGUI_API void TextWrappedV(const char* fmt, va_list args); - IMGUI_API void TextUnformatted(const char* text, const char* text_end = NULL); // doesn't require null terminated string if 'text_end' is specified. no copy done to any bounded stack buffer, recommended for long chunks of text - IMGUI_API void LabelText(const char* label, const char* fmt, ...); // display text+label aligned the same way as value+label widgets - IMGUI_API void LabelTextV(const char* label, const char* fmt, va_list args); - IMGUI_API void Bullet(); - IMGUI_API void BulletText(const char* fmt, ...); - IMGUI_API void BulletTextV(const char* fmt, va_list args); - IMGUI_API bool Button(const char* label, const ImVec2& size = ImVec2(0,0)); - IMGUI_API bool SmallButton(const char* label); - IMGUI_API bool InvisibleButton(const char* str_id, const ImVec2& size); - IMGUI_API void Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0 = ImVec2(0,0), const ImVec2& uv1 = ImVec2(1,1), const ImVec4& tint_col = ImVec4(1,1,1,1), const ImVec4& border_col = ImVec4(0,0,0,0)); - IMGUI_API bool ImageButton(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0 = ImVec2(0,0), const ImVec2& uv1 = ImVec2(1,1), int frame_padding = -1, const ImVec4& bg_col = ImVec4(0,0,0,0), const ImVec4& tint_col = ImVec4(1,1,1,1)); // <0 frame_padding uses default frame padding settings. 0 for no padding - IMGUI_API bool CollapsingHeader(const char* label, const char* str_id = NULL, bool display_frame = true, bool default_open = false); - IMGUI_API bool Checkbox(const char* label, bool* v); - IMGUI_API bool CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value); - IMGUI_API bool RadioButton(const char* label, bool active); - IMGUI_API bool RadioButton(const char* label, int* v, int v_button); - IMGUI_API bool Combo(const char* label, int* current_item, const char** items, int items_count, int height_in_items = -1); - IMGUI_API bool Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items = -1); // separate items with \0, end item-list with \0\0 - IMGUI_API bool Combo(const char* label, int* current_item, bool (*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int height_in_items = -1); - IMGUI_API bool ColorButton(const ImVec4& col, bool small_height = false, bool outline_border = true); - IMGUI_API bool ColorEdit3(const char* label, float col[3]); - IMGUI_API bool ColorEdit4(const char* label, float col[4], bool show_alpha = true); - IMGUI_API void ColorEditMode(ImGuiColorEditMode mode); - IMGUI_API void PlotLines(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0), int stride = sizeof(float)); - IMGUI_API void PlotLines(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0)); - IMGUI_API void PlotHistogram(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0), int stride = sizeof(float)); - IMGUI_API void PlotHistogram(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0)); - - // Widgets: Drags (tip: ctrl+click on a drag box to input text) - IMGUI_API bool DragFloat(const char* label, float* v, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); // If v_min >= v_max we have no bound - IMGUI_API bool DragFloat2(const char* label, float v[2], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); - IMGUI_API bool DragFloat3(const char* label, float v[3], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); - IMGUI_API bool DragFloat4(const char* label, float v[4], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); - IMGUI_API bool DragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", const char* display_format_max = NULL, float power = 1.0f); - IMGUI_API bool DragInt(const char* label, int* v, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); // If v_min >= v_max we have no bound - IMGUI_API bool DragInt2(const char* label, int v[2], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); - IMGUI_API bool DragInt3(const char* label, int v[3], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); - IMGUI_API bool DragInt4(const char* label, int v[4], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); - IMGUI_API bool DragIntRange2(const char* label, int* v_current_min, int* v_current_max, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f", const char* display_format_max = NULL); - - // Widgets: Input - IMGUI_API bool InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags = 0, ImGuiTextEditCallback callback = NULL, void* user_data = NULL); - IMGUI_API bool InputTextMultiline(const char* label, char* buf, size_t buf_size, const ImVec2& size = ImVec2(0,0), ImGuiInputTextFlags flags = 0, ImGuiTextEditCallback callback = NULL, void* user_data = NULL); - IMGUI_API bool InputFloat(const char* label, float* v, float step = 0.0f, float step_fast = 0.0f, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); - IMGUI_API bool InputFloat2(const char* label, float v[2], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); - IMGUI_API bool InputFloat3(const char* label, float v[3], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); - IMGUI_API bool InputFloat4(const char* label, float v[4], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); - IMGUI_API bool InputInt(const char* label, int* v, int step = 1, int step_fast = 100, ImGuiInputTextFlags extra_flags = 0); - IMGUI_API bool InputInt2(const char* label, int v[2], ImGuiInputTextFlags extra_flags = 0); - IMGUI_API bool InputInt3(const char* label, int v[3], ImGuiInputTextFlags extra_flags = 0); - IMGUI_API bool InputInt4(const char* label, int v[4], ImGuiInputTextFlags extra_flags = 0); - - // Widgets: Sliders (tip: ctrl+click on a slider to input text) - IMGUI_API bool SliderFloat(const char* label, float* v, float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); // adjust display_format to decorate the value with a prefix or a suffix. Use power!=1.0 for logarithmic sliders - IMGUI_API bool SliderFloat2(const char* label, float v[2], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); - IMGUI_API bool SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); - IMGUI_API bool SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); - IMGUI_API bool SliderAngle(const char* label, float* v_rad, float v_degrees_min = -360.0f, float v_degrees_max = +360.0f); - IMGUI_API bool SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format = "%.0f"); - IMGUI_API bool SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* display_format = "%.0f"); - IMGUI_API bool SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* display_format = "%.0f"); - IMGUI_API bool SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* display_format = "%.0f"); - IMGUI_API bool VSliderFloat(const char* label, const ImVec2& size, float* v, float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); - IMGUI_API bool VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* display_format = "%.0f"); - - // Widgets: Trees - IMGUI_API bool TreeNode(const char* str_label_id); // if returning 'true' the node is open and the user is responsible for calling TreePop - IMGUI_API bool TreeNode(const char* str_id, const char* fmt, ...); // " - IMGUI_API bool TreeNode(const void* ptr_id, const char* fmt, ...); // " - IMGUI_API bool TreeNodeV(const char* str_id, const char* fmt, va_list args); // " - IMGUI_API bool TreeNodeV(const void* ptr_id, const char* fmt, va_list args); // " - IMGUI_API void TreePush(const char* str_id = NULL); // already called by TreeNode(), but you can call Push/Pop yourself for layouting purpose - IMGUI_API void TreePush(const void* ptr_id = NULL); // " - IMGUI_API void TreePop(); - IMGUI_API void SetNextTreeNodeOpened(bool opened, ImGuiSetCond cond = 0); // set next tree node to be opened. - - // Widgets: Selectable / Lists - IMGUI_API bool Selectable(const char* label, bool selected = false, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0,0)); // size.x==0.0: use remaining width, size.x>0.0: specify width. size.y==0.0: use label height, size.y>0.0: specify height - IMGUI_API bool Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0,0)); - IMGUI_API bool ListBox(const char* label, int* current_item, const char** items, int items_count, int height_in_items = -1); - IMGUI_API bool ListBox(const char* label, int* current_item, bool (*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int height_in_items = -1); - IMGUI_API bool ListBoxHeader(const char* label, const ImVec2& size = ImVec2(0,0)); // use if you want to reimplement ListBox() will custom data or interactions. make sure to call ListBoxFooter() afterwards. - IMGUI_API bool ListBoxHeader(const char* label, int items_count, int height_in_items = -1); // " - IMGUI_API void ListBoxFooter(); // terminate the scrolling region - - // Widgets: Value() Helpers. Output single value in "name: value" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace) - IMGUI_API void Value(const char* prefix, bool b); - IMGUI_API void Value(const char* prefix, int v); - IMGUI_API void Value(const char* prefix, unsigned int v); - IMGUI_API void Value(const char* prefix, float v, const char* float_format = NULL); - IMGUI_API void Color(const char* prefix, const ImVec4& v); - IMGUI_API void Color(const char* prefix, unsigned int v); - - // Tooltip - IMGUI_API void SetTooltip(const char* fmt, ...); // set tooltip under mouse-cursor, typically use with ImGui::IsHovered(). last call wins - IMGUI_API void SetTooltipV(const char* fmt, va_list args); - IMGUI_API void BeginTooltip(); // use to create full-featured tooltip windows that aren't just text - IMGUI_API void EndTooltip(); - - // Menus - IMGUI_API bool BeginMainMenuBar(); // create and append to a full screen menu-bar. only call EndMainMenuBar() if this returns true! - IMGUI_API void EndMainMenuBar(); - IMGUI_API bool BeginMenuBar(); // append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set). only call EndMenuBar() if this returns true! - IMGUI_API void EndMenuBar(); - IMGUI_API bool BeginMenu(const char* label, bool enabled = true); // create a sub-menu entry. only call EndMenu() if this returns true! - IMGUI_API void EndMenu(); - IMGUI_API bool MenuItem(const char* label, const char* shortcut = NULL, bool selected = false, bool enabled = true); // return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment - IMGUI_API bool MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled = true); // return true when activated + toggle (*p_selected) if p_selected != NULL - - // Popup - IMGUI_API void OpenPopup(const char* str_id); // mark popup as open. popup identifiers are relative to the current ID-stack (so OpenPopup and BeginPopup needs to be at the same level). close childs popups if any. will close popup when user click outside, or activate a pressable item, or CloseCurrentPopup() is called within a BeginPopup()/EndPopup() block. - IMGUI_API bool BeginPopup(const char* str_id); // return true if popup if opened and start outputting to it. only call EndPopup() if BeginPopup() returned true! - IMGUI_API bool BeginPopupModal(const char* name, bool* p_opened = NULL, ImGuiWindowFlags extra_flags = 0); // modal dialog (can't close them by clicking outside) - IMGUI_API bool BeginPopupContextItem(const char* str_id, int mouse_button = 1); // helper to open and begin popup when clicked on last item - IMGUI_API bool BeginPopupContextWindow(bool also_over_items = true, const char* str_id = NULL, int mouse_button = 1); // helper to open and begin popup when clicked on current window - IMGUI_API bool BeginPopupContextVoid(const char* str_id = NULL, int mouse_button = 1); // helper to open and begin popup when clicked in void (no window) - IMGUI_API void EndPopup(); - IMGUI_API void CloseCurrentPopup(); // close the popup we have begin-ed into. clicking on a MenuItem or Selectable automatically close the current popup. - - // Logging: all text output from interface is redirected to tty/file/clipboard. Tree nodes are automatically opened. - IMGUI_API void LogToTTY(int max_depth = -1); // start logging to tty - IMGUI_API void LogToFile(int max_depth = -1, const char* filename = NULL); // start logging to file - IMGUI_API void LogToClipboard(int max_depth = -1); // start logging to OS clipboard - IMGUI_API void LogFinish(); // stop logging (close file, etc.) - IMGUI_API void LogButtons(); // helper to display buttons for logging to tty/file/clipboard - IMGUI_API void LogText(const char* fmt, ...); // pass text data straight to log (without being displayed) - - // Utilities - IMGUI_API bool IsItemHovered(); // was the last item hovered by mouse? - IMGUI_API bool IsItemHoveredRect(); // was the last item hovered by mouse? even if another item is active while we are hovering this - IMGUI_API bool IsItemActive(); // was the last item active? (e.g. button being held, text field being edited- items that don't interact will always return false) - IMGUI_API bool IsItemVisible(); - IMGUI_API bool IsAnyItemHovered(); - IMGUI_API bool IsAnyItemActive(); - IMGUI_API ImVec2 GetItemRectMin(); // get bounding rect of last item in screen space - IMGUI_API ImVec2 GetItemRectMax(); // " - IMGUI_API ImVec2 GetItemRectSize(); // " - IMGUI_API bool IsWindowHovered(); - IMGUI_API bool IsWindowFocused(); // is current window focused (differentiate child windows from each others) - IMGUI_API bool IsRootWindowFocused(); // is current root window focused (top parent window in case of child windows) - IMGUI_API bool IsRootWindowOrAnyChildFocused(); // is current root window or any of its child (including current window) focused - IMGUI_API bool IsRectVisible(const ImVec2& size); // test if rectangle of given size starting from cursor pos is visible (not clipped). to perform coarse clipping on user's side (as an optimization) - IMGUI_API bool IsPosHoveringAnyWindow(const ImVec2& pos); // is given position hovering any active imgui window - IMGUI_API float GetTime(); - IMGUI_API int GetFrameCount(); - IMGUI_API const char* GetStyleColName(ImGuiCol idx); - IMGUI_API ImVec2 CalcItemRectClosestPoint(const ImVec2& pos, bool on_edge = false, float outward = +0.0f); // utility to find the closest point the last item bounding rectangle edge. useful to visually link items - IMGUI_API ImVec2 CalcTextSize(const char* text, const char* text_end = NULL, bool hide_text_after_double_hash = false, float wrap_width = -1.0f); - IMGUI_API void CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end); // calculate coarse clipping for large list of evenly sized items. Prefer using the ImGuiListClipper higher-level helper if you can. - - IMGUI_API bool BeginChildFrame(ImGuiID id, const ImVec2& size); // helper to create a child window / scrolling region that looks like a normal widget frame - IMGUI_API void EndChildFrame(); - - IMGUI_API ImU32 ColorConvertFloat4ToU32(const ImVec4& in); - IMGUI_API void ColorConvertRGBtoHSV(float r, float g, float b, float& out_h, float& out_s, float& out_v); - IMGUI_API void ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b); - - // Inputs - IMGUI_API int GetKeyIndex(ImGuiKey key); // map ImGuiKey_* values into user's key index. == io.KeyMap[key] - IMGUI_API bool IsKeyDown(int key_index); // key_index into the keys_down[] array, imgui doesn't know the semantic of each entry, uses your own indices! - IMGUI_API bool IsKeyPressed(int key_index, bool repeat = true); // uses user's key indices as stored in the keys_down[] array. if repeat=true. uses io.KeyRepeatDelay / KeyRepeatRate - IMGUI_API bool IsKeyReleased(int key_index); // " - IMGUI_API bool IsMouseDown(int button); // is mouse button held - IMGUI_API bool IsMouseClicked(int button, bool repeat = false); // did mouse button clicked (went from !Down to Down) - IMGUI_API bool IsMouseDoubleClicked(int button); // did mouse button double-clicked. a double-click returns false in IsMouseClicked(). uses io.MouseDoubleClickTime. - IMGUI_API bool IsMouseReleased(int button); // did mouse button released (went from Down to !Down) - IMGUI_API bool IsMouseHoveringWindow(); // is mouse hovering current window ("window" in API names always refer to current window) - IMGUI_API bool IsMouseHoveringAnyWindow(); // is mouse hovering any active imgui window - IMGUI_API bool IsMouseHoveringRect(const ImVec2& rect_min, const ImVec2& rect_max);// is mouse hovering given bounding rect - IMGUI_API bool IsMouseDragging(int button = 0, float lock_threshold = -1.0f); // is mouse dragging. if lock_threshold < -1.0f uses io.MouseDraggingThreshold - IMGUI_API ImVec2 GetMousePos(); // shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls - IMGUI_API ImVec2 GetMouseDragDelta(int button = 0, float lock_threshold = -1.0f); // dragging amount since clicking, also see: GetItemActiveDragDelta(). if lock_threshold < -1.0f uses io.MouseDraggingThreshold - IMGUI_API void ResetMouseDragDelta(int button = 0); // - IMGUI_API ImGuiMouseCursor GetMouseCursor(); // get desired cursor type, reset in ImGui::NewFrame(), this updated during the frame. valid before Render(). If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you - IMGUI_API void SetMouseCursor(ImGuiMouseCursor type); // set desired cursor type - IMGUI_API void CaptureKeyboardFromApp(); // manually enforce imgui setting the io.WantCaptureKeyboard flag next frame (your application needs to handle it). e.g. capture keyboard when your widget is being hovered. - IMGUI_API void CaptureMouseFromApp(); // manually enforce imgui setting the io.WantCaptureMouse flag next frame (your application needs to handle it). - - // Helpers functions to access the MemAllocFn/MemFreeFn pointers in ImGui::GetIO() - IMGUI_API void* MemAlloc(size_t sz); - IMGUI_API void MemFree(void* ptr); - - // Internal state/context access - if you want to use multiple ImGui context, or share context between modules (e.g. DLL), or allocate the memory yourself - IMGUI_API const char* GetVersion(); - IMGUI_API void* GetInternalState(); - IMGUI_API size_t GetInternalStateSize(); - IMGUI_API void SetInternalState(void* state, bool construct = false); - - // Obsolete (will be removed) -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - static inline void OpenNextNode(bool open) { ImGui::SetNextTreeNodeOpened(open, 0); } // OBSOLETE 1.34+ - static inline bool GetWindowIsFocused() { return ImGui::IsWindowFocused(); } // OBSOLETE 1.36+ - static inline bool GetWindowCollapsed() { return ImGui::IsWindowCollapsed(); } // OBSOLETE 1.39+ - static inline ImVec2 GetItemBoxMin() { return GetItemRectMin(); } // OBSOLETE 1.36+ - static inline ImVec2 GetItemBoxMax() { return GetItemRectMax(); } // OBSOLETE 1.36+ - static inline bool IsClipped(const ImVec2& size) { return !IsRectVisible(size); } // OBSOLETE 1.38+ - static inline bool IsRectClipped(const ImVec2& size) { return !IsRectVisible(size); } // OBSOLETE 1.39+ - static inline bool IsMouseHoveringBox(const ImVec2& rect_min, const ImVec2& rect_max) { return IsMouseHoveringRect(rect_min, rect_max); } // OBSOLETE 1.36+ - static inline void SetScrollPosHere() { SetScrollHere(); } // OBSOLETE 1.42+ -#endif - -} // namespace ImGui - -// Flags for ImGui::Begin() -enum ImGuiWindowFlags_ -{ - // Default: 0 - ImGuiWindowFlags_NoTitleBar = 1 << 0, // Disable title-bar - ImGuiWindowFlags_NoResize = 1 << 1, // Disable user resizing with the lower-right grip - ImGuiWindowFlags_NoMove = 1 << 2, // Disable user moving the window - ImGuiWindowFlags_NoScrollbar = 1 << 3, // Disable scrollbar (window can still scroll with mouse or programatically) - ImGuiWindowFlags_NoScrollWithMouse = 1 << 4, // Disable user scrolling with mouse wheel - ImGuiWindowFlags_NoCollapse = 1 << 5, // Disable user collapsing window by double-clicking on it - ImGuiWindowFlags_AlwaysAutoResize = 1 << 6, // Resize every window to its content every frame - ImGuiWindowFlags_ShowBorders = 1 << 7, // Show borders around windows and items - ImGuiWindowFlags_NoSavedSettings = 1 << 8, // Never load/save settings in .ini file - ImGuiWindowFlags_NoInputs = 1 << 9, // Disable catching mouse or keyboard inputs - ImGuiWindowFlags_MenuBar = 1 << 10, // Has a menu-bar - // [Internal] - ImGuiWindowFlags_ChildWindow = 1 << 20, // Don't use! For internal use by BeginChild() - ImGuiWindowFlags_ChildWindowAutoFitX = 1 << 21, // Don't use! For internal use by BeginChild() - ImGuiWindowFlags_ChildWindowAutoFitY = 1 << 22, // Don't use! For internal use by BeginChild() - ImGuiWindowFlags_ComboBox = 1 << 23, // Don't use! For internal use by ComboBox() - ImGuiWindowFlags_Tooltip = 1 << 24, // Don't use! For internal use by BeginTooltip() - ImGuiWindowFlags_Popup = 1 << 25, // Don't use! For internal use by BeginPopup() - ImGuiWindowFlags_Modal = 1 << 26, // Don't use! For internal use by BeginPopupModal() - ImGuiWindowFlags_ChildMenu = 1 << 27 // Don't use! For internal use by BeginMenu() -}; - -// Flags for ImGui::InputText() -enum ImGuiInputTextFlags_ -{ - // Default: 0 - ImGuiInputTextFlags_CharsDecimal = 1 << 0, // Allow 0123456789.+-*/ - ImGuiInputTextFlags_CharsHexadecimal = 1 << 1, // Allow 0123456789ABCDEFabcdef - ImGuiInputTextFlags_CharsUppercase = 1 << 2, // Turn a..z into A..Z - ImGuiInputTextFlags_CharsNoBlank = 1 << 3, // Filter out spaces, tabs - ImGuiInputTextFlags_AutoSelectAll = 1 << 4, // Select entire text when first taking mouse focus - ImGuiInputTextFlags_EnterReturnsTrue = 1 << 5, // Return 'true' when Enter is pressed (as opposed to when the value was modified) - ImGuiInputTextFlags_CallbackCompletion = 1 << 6, // Call user function on pressing TAB (for completion handling) - ImGuiInputTextFlags_CallbackHistory = 1 << 7, // Call user function on pressing Up/Down arrows (for history handling) - ImGuiInputTextFlags_CallbackAlways = 1 << 8, // Call user function every time - ImGuiInputTextFlags_CallbackCharFilter = 1 << 9, // Call user function to filter character. Modify data->EventChar to replace/filter input, or return 1 to discard character. - ImGuiInputTextFlags_AllowTabInput = 1 << 10, // Pressing TAB input a '\t' character into the text field - ImGuiInputTextFlags_CtrlEnterForNewLine = 1 << 11, // In multi-line mode, allow exiting edition by pressing Enter. Ctrl+Enter to add new line (by default adds new lines with Enter). - ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12, // Disable following the cursor horizontally - ImGuiInputTextFlags_AlwaysInsertMode = 1 << 13, // Insert mode - // [Internal] - ImGuiInputTextFlags_Multiline = 1 << 20 // For internal use by InputTextMultiline() -}; - -// Flags for ImGui::Selectable() -enum ImGuiSelectableFlags_ -{ - // Default: 0 - ImGuiSelectableFlags_DontClosePopups = 1 << 0, // Clicking this don't close parent popup window - ImGuiSelectableFlags_SpanAllColumns = 1 << 1 // Selectable frame can span all columns (text will still fit in current column) -}; - -// User fill ImGuiIO.KeyMap[] array with indices into the ImGuiIO.KeysDown[512] array -enum ImGuiKey_ -{ - ImGuiKey_Tab, // for tabbing through fields - ImGuiKey_LeftArrow, // for text edit - ImGuiKey_RightArrow,// for text edit - ImGuiKey_UpArrow, // for text edit - ImGuiKey_DownArrow, // for text edit - ImGuiKey_PageUp, - ImGuiKey_PageDown, - ImGuiKey_Home, // for text edit - ImGuiKey_End, // for text edit - ImGuiKey_Delete, // for text edit - ImGuiKey_Backspace, // for text edit - ImGuiKey_Enter, // for text edit - ImGuiKey_Escape, // for text edit - ImGuiKey_A, // for text edit CTRL+A: select all - ImGuiKey_C, // for text edit CTRL+C: copy - ImGuiKey_V, // for text edit CTRL+V: paste - ImGuiKey_X, // for text edit CTRL+X: cut - ImGuiKey_Y, // for text edit CTRL+Y: redo - ImGuiKey_Z, // for text edit CTRL+Z: undo - ImGuiKey_COUNT -}; - -// Enumeration for PushStyleColor() / PopStyleColor() -enum ImGuiCol_ -{ - ImGuiCol_Text, - ImGuiCol_TextDisabled, - ImGuiCol_WindowBg, - ImGuiCol_ChildWindowBg, - ImGuiCol_Border, - ImGuiCol_BorderShadow, - ImGuiCol_FrameBg, // Background of checkbox, radio button, plot, slider, text input - ImGuiCol_FrameBgHovered, - ImGuiCol_FrameBgActive, - ImGuiCol_TitleBg, - ImGuiCol_TitleBgCollapsed, - ImGuiCol_TitleBgActive, - ImGuiCol_MenuBarBg, - ImGuiCol_ScrollbarBg, - ImGuiCol_ScrollbarGrab, - ImGuiCol_ScrollbarGrabHovered, - ImGuiCol_ScrollbarGrabActive, - ImGuiCol_ComboBg, - ImGuiCol_CheckMark, - ImGuiCol_SliderGrab, - ImGuiCol_SliderGrabActive, - ImGuiCol_Button, - ImGuiCol_ButtonHovered, - ImGuiCol_ButtonActive, - ImGuiCol_Header, - ImGuiCol_HeaderHovered, - ImGuiCol_HeaderActive, - ImGuiCol_Column, - ImGuiCol_ColumnHovered, - ImGuiCol_ColumnActive, - ImGuiCol_ResizeGrip, - ImGuiCol_ResizeGripHovered, - ImGuiCol_ResizeGripActive, - ImGuiCol_CloseButton, - ImGuiCol_CloseButtonHovered, - ImGuiCol_CloseButtonActive, - ImGuiCol_PlotLines, - ImGuiCol_PlotLinesHovered, - ImGuiCol_PlotHistogram, - ImGuiCol_PlotHistogramHovered, - ImGuiCol_TextSelectedBg, - ImGuiCol_TooltipBg, - ImGuiCol_ModalWindowDarkening, // darken entire screen when a modal window is active - ImGuiCol_COUNT -}; - -// Enumeration for PushStyleVar() / PopStyleVar() -// NB: the enum only refers to fields of ImGuiStyle() which makes sense to be pushed/poped in UI code. Feel free to add others. -enum ImGuiStyleVar_ -{ - ImGuiStyleVar_Alpha, // float - ImGuiStyleVar_WindowPadding, // ImVec2 - ImGuiStyleVar_WindowRounding, // float - ImGuiStyleVar_WindowMinSize, // ImVec2 - ImGuiStyleVar_ChildWindowRounding, // float - ImGuiStyleVar_FramePadding, // ImVec2 - ImGuiStyleVar_FrameRounding, // float - ImGuiStyleVar_ItemSpacing, // ImVec2 - ImGuiStyleVar_ItemInnerSpacing, // ImVec2 - ImGuiStyleVar_IndentSpacing, // float - ImGuiStyleVar_GrabMinSize // float -}; - -enum ImGuiAlign_ -{ - ImGuiAlign_Left = 1 << 0, - ImGuiAlign_Center = 1 << 1, - ImGuiAlign_Right = 1 << 2, - ImGuiAlign_Top = 1 << 3, - ImGuiAlign_VCenter = 1 << 4, - ImGuiAlign_Default = ImGuiAlign_Left | ImGuiAlign_Top -}; - -// Enumeration for ColorEditMode() -enum ImGuiColorEditMode_ -{ - ImGuiColorEditMode_UserSelect = -2, - ImGuiColorEditMode_UserSelectShowButton = -1, - ImGuiColorEditMode_RGB = 0, - ImGuiColorEditMode_HSV = 1, - ImGuiColorEditMode_HEX = 2 -}; - -// Enumeration for GetMouseCursor() -enum ImGuiMouseCursor_ -{ - ImGuiMouseCursor_Arrow = 0, - ImGuiMouseCursor_TextInput, // When hovering over InputText, etc. - ImGuiMouseCursor_Move, // Unused - ImGuiMouseCursor_ResizeNS, // Unused - ImGuiMouseCursor_ResizeEW, // When hovering over a column - ImGuiMouseCursor_ResizeNESW, // Unused - ImGuiMouseCursor_ResizeNWSE, // When hovering over the bottom-right corner of a window - ImGuiMouseCursor_Count_ -}; - -// Condition flags for ImGui::SetWindow***(), SetNextWindow***(), SetNextTreeNode***() functions -// All those functions treat 0 as a shortcut to ImGuiSetCond_Always -enum ImGuiSetCond_ -{ - ImGuiSetCond_Always = 1 << 0, // Set the variable - ImGuiSetCond_Once = 1 << 1, // Only set the variable on the first call per runtime session - ImGuiSetCond_FirstUseEver = 1 << 2, // Only set the variable if the window doesn't exist in the .ini file - ImGuiSetCond_Appearing = 1 << 3 // Only set the variable if the window is appearing after being inactive (or the first time) -}; - -struct ImGuiStyle -{ - float Alpha; // Global alpha applies to everything in ImGui - ImVec2 WindowPadding; // Padding within a window - ImVec2 WindowMinSize; // Minimum window size - float WindowRounding; // Radius of window corners rounding. Set to 0.0f to have rectangular windows - ImGuiAlign WindowTitleAlign; // Alignment for title bar text - float ChildWindowRounding; // Radius of child window corners rounding. Set to 0.0f to have rectangular windows - ImVec2 FramePadding; // Padding within a framed rectangle (used by most widgets) - float FrameRounding; // Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets). - ImVec2 ItemSpacing; // Horizontal and vertical spacing between widgets/lines - ImVec2 ItemInnerSpacing; // Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label) - ImVec2 TouchExtraPadding; // Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! - float WindowFillAlphaDefault; // Default alpha of window background, if not specified in ImGui::Begin() - float IndentSpacing; // Horizontal indentation when e.g. entering a tree node - float ColumnsMinSpacing; // Minimum horizontal spacing between two columns - float ScrollbarWidth; // Width of the vertical scrollbar - float ScrollbarRounding; // Radius of grab corners for scrollbar - float GrabMinSize; // Minimum width/height of a grab box for slider/scrollbar - float GrabRounding; // Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. - ImVec2 DisplayWindowPadding; // Window positions are clamped to be visible within the display area by at least this amount. Only covers regular windows. - ImVec2 DisplaySafeAreaPadding; // If you cannot see the edge of your screen (e.g. on a TV) increase the safe area padding. Covers popups/tooltips as well regular windows. - bool AntiAliasedLines; // Enable anti-aliasing on lines/borders. Disable if you are really tight on CPU/GPU. - bool AntiAliasedShapes; // Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.) - ImVec4 Colors[ImGuiCol_COUNT]; - - IMGUI_API ImGuiStyle(); -}; - -// This is where your app communicate with ImGui. Access via ImGui::GetIO(). -// Read 'Programmer guide' section in .cpp file for general usage. -struct ImGuiIO -{ - //------------------------------------------------------------------ - // Settings (fill once) // Default value: - //------------------------------------------------------------------ - - ImVec2 DisplaySize; // // Display size, in pixels. For clamping windows positions. - float DeltaTime; // = 1.0f/60.0f // Time elapsed since last frame, in seconds. - float IniSavingRate; // = 5.0f // Maximum time between saving positions/sizes to .ini file, in seconds. - const char* IniFilename; // = "imgui.ini" // Path to .ini file. NULL to disable .ini saving. - const char* LogFilename; // = "imgui_log.txt" // Path to .log file (default parameter to ImGui::LogToFile when no file is specified). - float MouseDoubleClickTime; // = 0.30f // Time for a double-click, in seconds. - float MouseDoubleClickMaxDist; // = 6.0f // Distance threshold to stay in to validate a double-click, in pixels. - float MouseDragThreshold; // = 6.0f // Distance threshold before considering we are dragging - int KeyMap[ImGuiKey_COUNT]; // // Map of indices into the KeysDown[512] entries array - float KeyRepeatDelay; // = 0.250f // When holding a key/button, time before it starts repeating, in seconds. (for actions where 'repeat' is active) - float KeyRepeatRate; // = 0.020f // When holding a key/button, rate at which it repeats, in seconds. - void* UserData; // = NULL // Store your own data for retrieval by callbacks. - - ImFontAtlas* Fonts; // // Load and assemble one or more fonts into a single tightly packed texture. Output to Fonts array. - float FontGlobalScale; // = 1.0f // Global scale all fonts - bool FontAllowUserScaling; // = false // Allow user scaling text of individual window with CTRL+Wheel. - ImVec2 DisplayVisibleMin; // (0.0f,0.0f) // If you use DisplaySize as a virtual space larger than your screen, set DisplayVisibleMin/Max to the visible area. - ImVec2 DisplayVisibleMax; // (0.0f,0.0f) // If the values are the same, we defaults to Min=(0.0f) and Max=DisplaySize - - //------------------------------------------------------------------ - // User Functions - //------------------------------------------------------------------ - - // REQUIRED: rendering function. - // See example code if you are unsure of how to implement this. - void (*RenderDrawListsFn)(ImDrawData* data); - - // Optional: access OS clipboard - // (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures) - const char* (*GetClipboardTextFn)(); - void (*SetClipboardTextFn)(const char* text); - - // Optional: override memory allocations. MemFreeFn() may be called with a NULL pointer. - // (default to posix malloc/free) - void* (*MemAllocFn)(size_t sz); - void (*MemFreeFn)(void* ptr); - - // Optional: notify OS Input Method Editor of the screen position of your cursor for text input position (e.g. when using Japanese/Chinese IME in Windows) - // (default to use native imm32 api on Windows) - void (*ImeSetInputScreenPosFn)(int x, int y); - void* ImeWindowHandle; // (Windows) Set this to your HWND to get automatic IME cursor positioning. - - //------------------------------------------------------------------ - // Input - Fill before calling NewFrame() - //------------------------------------------------------------------ - - ImVec2 MousePos; // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.) - bool MouseDown[5]; // Mouse buttons: left, right, middle + extras. ImGui itself mostly only uses left button (BeginPopupContext** are using right button). Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. - float MouseWheel; // Mouse wheel: 1 unit scrolls about 5 lines text. - bool MouseDrawCursor; // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). - bool KeyCtrl; // Keyboard modifier pressed: Control - bool KeyShift; // Keyboard modifier pressed: Shift - bool KeyAlt; // Keyboard modifier pressed: Alt - bool KeysDown[512]; // Keyboard keys that are pressed (in whatever storage order you naturally have access to keyboard data) - ImWchar InputCharacters[16+1]; // List of characters input (translated by user from keypress+keyboard state). Fill using AddInputCharacter() helper. - - // Functions - IMGUI_API void AddInputCharacter(ImWchar c); // Helper to add a new character into InputCharacters[] - IMGUI_API void AddInputCharactersUTF8(const char* utf8_chars); // Helper to add new characters into InputCharacters[] from an UTF-8 string - - //------------------------------------------------------------------ - // Output - Retrieve after calling NewFrame(), you can use them to discard inputs or hide them from the rest of your application - //------------------------------------------------------------------ - - bool WantCaptureMouse; // Mouse is hovering a window or widget is active (= ImGui will use your mouse input) - bool WantCaptureKeyboard; // Widget is active (= ImGui will use your keyboard input) - float Framerate; // Framerate estimation, in frame per second. Rolling average estimation based on IO.DeltaTime over 120 frames - int MetricsAllocs; // Number of active memory allocations - int MetricsRenderVertices; // Vertices output during last call to Render() - int MetricsRenderIndices; // Indices output during last call to Render() = number of triangles * 3 - int MetricsActiveWindows; // Number of visible windows (exclude child windows) - - //------------------------------------------------------------------ - // [Internal] ImGui will maintain those fields for you - //------------------------------------------------------------------ - - ImVec2 MousePosPrev; // Previous mouse position - ImVec2 MouseDelta; // Mouse delta. Note that this is zero if either current or previous position are negative to allow mouse enabling/disabling. - bool MouseClicked[5]; // Mouse button went from !Down to Down - ImVec2 MouseClickedPos[5]; // Position at time of clicking - float MouseClickedTime[5]; // Time of last click (used to figure out double-click) - bool MouseDoubleClicked[5]; // Has mouse button been double-clicked? - bool MouseReleased[5]; // Mouse button went from Down to !Down - bool MouseDownOwned[5]; // Track if button was clicked inside a window. We don't request mouse capture from the application if click started outside ImGui bounds. - float MouseDownDuration[5]; // Duration the mouse button has been down (0.0f == just clicked) - float MouseDownDurationPrev[5]; // Previous time the mouse button has been down - float MouseDragMaxDistanceSqr[5]; // Squared maximum distance of how much mouse has traveled from the click point - float KeysDownDuration[512]; // Duration the keyboard key has been down (0.0f == just pressed) - float KeysDownDurationPrev[512]; // Previous duration the key has been down - - IMGUI_API ImGuiIO(); -}; - -//----------------------------------------------------------------------------- -// Helpers -//----------------------------------------------------------------------------- - -// Lightweight std::vector<> like class to avoid dragging dependencies (also: windows implementation of STL with debug enabled is absurdly slow, so let's bypass it so our code runs fast in debug). -// Our implementation does NOT call c++ constructors because we don't use them in ImGui. Don't use this class as a straight std::vector replacement in your code! -template -class ImVector -{ -public: - int Size; - int Capacity; - T* Data; - - typedef T value_type; - typedef value_type* iterator; - typedef const value_type* const_iterator; - - ImVector() { Size = Capacity = 0; Data = NULL; } - ~ImVector() { if (Data) ImGui::MemFree(Data); } - - inline bool empty() const { return Size == 0; } - inline int size() const { return Size; } - inline int capacity() const { return Capacity; } - - inline value_type& operator[](int i) { IM_ASSERT(i < Size); return Data[i]; } - inline const value_type& operator[](int i) const { IM_ASSERT(i < Size); return Data[i]; } - - inline void clear() { if (Data) { Size = Capacity = 0; ImGui::MemFree(Data); Data = NULL; } } - inline iterator begin() { return Data; } - inline const_iterator begin() const { return Data; } - inline iterator end() { return Data + Size; } - inline const_iterator end() const { return Data + Size; } - inline value_type& front() { IM_ASSERT(Size > 0); return Data[0]; } - inline const value_type& front() const { IM_ASSERT(Size > 0); return Data[0]; } - inline value_type& back() { IM_ASSERT(Size > 0); return Data[Size-1]; } - inline const value_type& back() const { IM_ASSERT(Size > 0); return Data[Size-1]; } - inline void swap(ImVector& rhs) { int rhs_size = rhs.Size; rhs.Size = Size; Size = rhs_size; int rhs_cap = rhs.Capacity; rhs.Capacity = Capacity; Capacity = rhs_cap; value_type* rhs_data = rhs.Data; rhs.Data = Data; Data = rhs_data; } - - inline int _grow_capacity(int new_size) { int new_capacity = Capacity ? (Capacity + Capacity/2) : 8; return new_capacity > new_size ? new_capacity : new_size; } - - inline void resize(int new_size) { if (new_size > Capacity) reserve(_grow_capacity(new_size)); Size = new_size; } - inline void reserve(int new_capacity) - { - if (new_capacity <= Capacity) return; - T* new_data = (value_type*)ImGui::MemAlloc((size_t)new_capacity * sizeof(value_type)); - memcpy(new_data, Data, (size_t)Size * sizeof(value_type)); - ImGui::MemFree(Data); - Data = new_data; - Capacity = new_capacity; - } - - inline void push_back(const value_type& v) { if (Size == Capacity) reserve(_grow_capacity(Size+1)); Data[Size++] = v; } - inline void pop_back() { IM_ASSERT(Size > 0); Size--; } - - inline iterator erase(const_iterator it) { IM_ASSERT(it >= begin() && it < end()); const ptrdiff_t off = it - begin(); memmove(Data + off, Data + off + 1, ((size_t)Size - (size_t)off - 1) * sizeof(value_type)); Size--; return Data + off; } - inline iterator insert(const_iterator it, const value_type& v) { IM_ASSERT(it >= begin() && it <= end()); const ptrdiff_t off = it - begin(); if (Size == Capacity) reserve(Capacity ? Capacity * 2 : 4); if (off < (int)Size) memmove(Data + off + 1, Data + off, ((size_t)Size - (size_t)off) * sizeof(value_type)); Data[off] = v; Size++; return Data + off; } -}; - -// Helper: execute a block of code once a frame only -// Convenient if you want to quickly create an UI within deep-nested code that runs multiple times every frame. -// Usage: -// IMGUI_ONCE_UPON_A_FRAME -// { -// // code block will be executed one per frame -// } -// Attention! the macro expands into 2 statement so make sure you don't use it within e.g. an if() statement without curly braces. -#define IMGUI_ONCE_UPON_A_FRAME static ImGuiOnceUponAFrame imgui_oaf##__LINE__; if (imgui_oaf##__LINE__) -struct ImGuiOnceUponAFrame -{ - ImGuiOnceUponAFrame() { RefFrame = -1; } - mutable int RefFrame; - operator bool() const { int current_frame = ImGui::GetFrameCount(); if (RefFrame == current_frame) return false; RefFrame = current_frame; return true; } -}; - -// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" -struct ImGuiTextFilter -{ - struct TextRange - { - const char* b; - const char* e; - - TextRange() { b = e = NULL; } - TextRange(const char* _b, const char* _e) { b = _b; e = _e; } - const char* begin() const { return b; } - const char* end() const { return e; } - bool empty() const { return b == e; } - char front() const { return *b; } - static bool isblank(char c) { return c == ' ' || c == '\t'; } - void trim_blanks() { while (b < e && isblank(*b)) b++; while (e > b && isblank(*(e-1))) e--; } - IMGUI_API void split(char separator, ImVector& out); - }; - - char InputBuf[256]; - ImVector Filters; - int CountGrep; - - ImGuiTextFilter(const char* default_filter = ""); - void Clear() { InputBuf[0] = 0; Build(); } - void Draw(const char* label = "Filter (inc,-exc)", float width = -1.0f); // Helper calling InputText+Build - bool PassFilter(const char* val) const; - bool IsActive() const { return !Filters.empty(); } - IMGUI_API void Build(); -}; - -// Helper: Text buffer for logging/accumulating text -struct ImGuiTextBuffer -{ - ImVector Buf; - - ImGuiTextBuffer() { Buf.push_back(0); } - const char* begin() const { return &Buf.front(); } - const char* end() const { return &Buf.back(); } // Buf is zero-terminated, so end() will point on the zero-terminator - int size() const { return Buf.Size-1; } - bool empty() { return size() >= 1; } - void clear() { Buf.clear(); Buf.push_back(0); } - IMGUI_API void append(const char* fmt, ...); - IMGUI_API void appendv(const char* fmt, va_list args); -}; - -// Helper: Key->value storage -// - Store collapse state for a tree (Int 0/1) -// - Store color edit options (Int using values in ImGuiColorEditMode enum). -// - Custom user storage for temporary values. -// Typically you don't have to worry about this since a storage is held within each Window. -// Declare your own storage if: -// - You want to manipulate the open/close state of a particular sub-tree in your interface (tree node uses Int 0/1 to store their state). -// - You want to store custom debug data easily without adding or editing structures in your code. -struct ImGuiStorage -{ - struct Pair - { - ImGuiID key; - union { int val_i; float val_f; void* val_p; }; - Pair(ImGuiID _key, int _val_i) { key = _key; val_i = _val_i; } - Pair(ImGuiID _key, float _val_f) { key = _key; val_f = _val_f; } - Pair(ImGuiID _key, void* _val_p) { key = _key; val_p = _val_p; } - }; - ImVector Data; - - // - Get***() functions find pair, never add/allocate. Pairs are sorted so a query is O(log N) - // - Set***() functions find pair, insertion on demand if missing. - // - Sorted insertion is costly but should amortize. A typical frame shouldn't need to insert any new pair. - IMGUI_API void Clear(); - IMGUI_API int GetInt(ImGuiID key, int default_val = 0) const; - IMGUI_API void SetInt(ImGuiID key, int val); - IMGUI_API float GetFloat(ImGuiID key, float default_val = 0.0f) const; - IMGUI_API void SetFloat(ImGuiID key, float val); - IMGUI_API void* GetVoidPtr(ImGuiID key) const; // default_val is NULL - IMGUI_API void SetVoidPtr(ImGuiID key, void* val); - - // - Get***Ref() functions finds pair, insert on demand if missing, return pointer. Useful if you intend to do Get+Set. - // - References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer. - // - A typical use case where this is convenient: - // float* pvar = ImGui::GetFloatRef(key); ImGui::SliderFloat("var", pvar, 0, 100.0f); some_var += *pvar; - // - You can also use this to quickly create temporary editable values during a session of using Edit&Continue, without restarting your application. - IMGUI_API int* GetIntRef(ImGuiID key, int default_val = 0); - IMGUI_API float* GetFloatRef(ImGuiID key, float default_val = 0); - IMGUI_API void** GetVoidPtrRef(ImGuiID key, void* default_val = NULL); - - // Use on your own storage if you know only integer are being stored (open/close all tree nodes) - IMGUI_API void SetAllInt(int val); -}; - -// Shared state of InputText(), passed to callback when a ImGuiInputTextFlags_Callback* flag is used. -struct ImGuiTextEditCallbackData -{ - ImGuiInputTextFlags EventFlag; // One of ImGuiInputTextFlags_Callback* // Read-only - ImGuiInputTextFlags Flags; // What user passed to InputText() // Read-only - void* UserData; // What user passed to InputText() // Read-only - - // CharFilter event: - ImWchar EventChar; // Character input // Read-write (replace character or set to zero) - - // Completion,History,Always events: - ImGuiKey EventKey; // Key pressed (Up/Down/TAB) // Read-only - char* Buf; // Current text // Read-write (pointed data only) - int BufSize; // // Read-only - bool BufDirty; // Set if you modify Buf directly // Write - int CursorPos; // // Read-write - int SelectionStart; // // Read-write (== to SelectionEnd when no selection) - int SelectionEnd; // // Read-write - - // NB: calling those function loses selection. - void DeleteChars(int pos, int bytes_count); - void InsertChars(int pos, const char* text, const char* text_end = NULL); - bool HasSelection() const { return SelectionStart != SelectionEnd; } -}; - -// ImColor() is just a helper that implicity converts to either ImU32 (packed 4x1 byte) or ImVec4 (4x1 float) -// None of the ImGui API are using ImColor directly but you can use it as a convenience to pass colors in either ImU32 or ImVec4 formats. -struct ImColor -{ - ImVec4 Value; - - ImColor(int r, int g, int b, int a = 255) { Value.x = (float)r / 255.0f; Value.y = (float)g / 255.0f; Value.z = (float)b / 255.0f; Value.w = (float)a / 255.0f; } - ImColor(float r, float g, float b, float a = 1.0f) { Value.x = r; Value.y = g; Value.z = b; Value.w = a; } - ImColor(const ImVec4& col) { Value = col; } - operator ImU32() const { return ImGui::ColorConvertFloat4ToU32(Value); } - operator ImVec4() const { return Value; } - - static ImColor HSV(float h, float s, float v, float a = 1.0f) { float r,g,b; ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b); return ImColor(r,g,b,a); } -}; - -// Helper: Manually clip large list of items. -// If you are displaying thousands of even spaced items and you have a random access to the list, you can perform clipping yourself to save on CPU. -// Usage: -// ImGuiListClipper clipper(count, ImGui::GetTextLineHeightWithSpacing()); -// for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) // display only visible items -// ImGui::Text("line number %d", i); -// clipper.End(); -struct ImGuiListClipper -{ - float ItemsHeight; - int ItemsCount, DisplayStart, DisplayEnd; - - ImGuiListClipper() { ItemsHeight = 0.0f; ItemsCount = DisplayStart = DisplayEnd = -1; } - ImGuiListClipper(int count, float height) { ItemsCount = -1; Begin(count, height); } - ~ImGuiListClipper() { IM_ASSERT(ItemsCount == -1); } // user forgot to call End() - - void Begin(int count, float height) // items_height: generally pass GetTextLineHeightWithSpacing() or GetItemsLineHeightWithSpacing() - { - IM_ASSERT(ItemsCount == -1); - ItemsCount = count; - ItemsHeight = height; - ImGui::CalcListClipping(ItemsCount, ItemsHeight, &DisplayStart, &DisplayEnd); // calculate how many to clip/display - ImGui::SetCursorPosY(ImGui::GetCursorPosY() + DisplayStart * ItemsHeight); // advance cursor - } - void End() - { - IM_ASSERT(ItemsCount >= 0); - ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (ItemsCount - DisplayEnd) * ItemsHeight); // advance cursor - ItemsCount = -1; - } -}; - -//----------------------------------------------------------------------------- -// Draw List -// Hold a series of drawing commands. The user provides a renderer for ImDrawData which essentially contains an array of ImDrawList. -//----------------------------------------------------------------------------- - -// Draw callbacks for advanced uses. -// NB- You most likely do NOT need to use draw callbacks just to create your own widget or customized UI rendering (you can poke into the draw list for that) -// Draw callback are useful for example if you want to render a complex 3D scene inside a UI element. -// The expected behavior from your rendering loop is: -// if (cmd.UserCallback != NULL) -// cmd.UserCallback(parent_list, cmd); -// else -// RenderTriangles() -// It is up to you to decide if your rendering loop or the callback should be responsible for backup/restoring rendering state. -typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd); - -// Typically, 1 command = 1 gpu draw call (unless command is a callback) -struct ImDrawCmd -{ - unsigned int ElemCount; // Number of indices (multiple of 3) to be rendered as triangles. Vertices are stored in the callee ImDrawList's vtx_buffer[] array, indices in idx_buffer[]. - ImVec4 ClipRect; // Clipping rectangle (x1, y1, x2, y2) - ImTextureID TextureId; // User-provided texture ID. Set by user in ImfontAtlas::SetTexID() for fonts or passed to Image*() functions. Ignore if never using images or multiple fonts atlas. - ImDrawCallback UserCallback; // If != NULL, call the function instead of rendering the vertices. clip_rect and texture_id will be set normally. - void* UserCallbackData; // The draw callback code can access this. -}; - -// Vertex index -typedef unsigned short ImDrawIdx; - -// Vertex layout -#ifndef IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT -struct ImDrawVert -{ - ImVec2 pos; - ImVec2 uv; - ImU32 col; -}; -#else -// You can change the vertex format layout by defining IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT in imconfig.h -// The code expect ImVec2 pos (8 bytes), ImVec2 uv (8 bytes), ImU32 col (4 bytes), but you can re-order them or add other fields as needed to simplify integration in your engine. -// The type has to be described by the #define (you can either declare the struct or use a typedef) -IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT; -#endif - -// Draw channels are used by the Columns API to "split" the render list into different channels while building, so items of each column can be batched together. -struct ImDrawChannel -{ - ImVector CmdBuffer; - ImVector IdxBuffer; -}; - -// Draw command list -// This is the low-level list of polygons that ImGui functions are filling. At the end of the frame, all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering. -// At the moment, each ImGui window contains its own ImDrawList but they could potentially be merged in the future. -// If you want to add custom rendering within a window, you can use ImGui::GetWindowDrawList() to access the current draw list and add your own primitives. -// You can interleave normal ImGui:: calls and adding primitives to the current draw list. -// All positions are in screen coordinates (0,0=top-left, 1 pixel per unit). Primitives are always added to the list and not culled (culling is done at render time and at a higher-level by ImGui:: functions). -// Note that this only gives you access to rendering polygons. If your intent is to create custom widgets and the publicly exposed functions/data aren't sufficient, you can add code in imgui_user.inl -struct ImDrawList -{ - // This is what you have to render - ImVector CmdBuffer; // Commands. Typically 1 command = 1 gpu draw call. - ImVector IdxBuffer; // Index buffer. Each command consume ImDrawCmd::ElemCount of those - ImVector VtxBuffer; // Vertex buffer. - - // [Internal, used while building lists] - const char* _OwnerName; // Pointer to owner window's name (if any) for debugging - unsigned int _VtxCurrentIdx; // [Internal] == VtxBuffer.Size - ImDrawVert* _VtxWritePtr; // [Internal] point within VtxBuffer.Data after each add command (to avoid using the ImVector<> operators too much) - ImDrawIdx* _IdxWritePtr; // [Internal] point within IdxBuffer.Data after each add command (to avoid using the ImVector<> operators too much) - ImVector _ClipRectStack; // [Internal] - ImVector _TextureIdStack; // [Internal] - ImVector _Path; // [Internal] current path building - int _ChannelCurrent; // [Internal] current channel number (0) - ImVector _Channels; // [Internal] draw channels for columns API - - ImDrawList() { _OwnerName = NULL; Clear(); } - ~ImDrawList() { ClearFreeMemory(); } - IMGUI_API void Clear(); - IMGUI_API void ClearFreeMemory(); - IMGUI_API void PushClipRect(const ImVec4& clip_rect); // Scissoring. The values are x1, y1, x2, y2. - IMGUI_API void PushClipRectFullScreen(); - IMGUI_API void PopClipRect(); - IMGUI_API void PushTextureID(const ImTextureID& texture_id); - IMGUI_API void PopTextureID(); - - // Primitives - IMGUI_API void AddLine(const ImVec2& a, const ImVec2& b, ImU32 col, float thickness = 1.0f); - IMGUI_API void AddRect(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding = 0.0f, int rounding_corners = 0x0F); - IMGUI_API void AddRectFilled(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding = 0.0f, int rounding_corners = 0x0F); - IMGUI_API void AddRectFilledMultiColor(const ImVec2& a, const ImVec2& b, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left); - IMGUI_API void AddTriangleFilled(const ImVec2& a, const ImVec2& b, const ImVec2& c, ImU32 col); - IMGUI_API void AddCircle(const ImVec2& centre, float radius, ImU32 col, int num_segments = 12); - IMGUI_API void AddCircleFilled(const ImVec2& centre, float radius, ImU32 col, int num_segments = 12); - IMGUI_API void AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL); - IMGUI_API void AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL, float wrap_width = 0.0f, const ImVec4* cpu_fine_clip_rect = NULL); - IMGUI_API void AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv0, const ImVec2& uv1, ImU32 col = 0xFFFFFFFF); - IMGUI_API void AddPolyline(const ImVec2* points, const int num_points, ImU32 col, bool closed, float thickness, bool anti_aliased); - IMGUI_API void AddConvexPolyFilled(const ImVec2* points, const int num_points, ImU32 col, bool anti_aliased); - - // Stateful path API, add points then finish with PathFill() or PathStroke() - inline void PathClear() { _Path.resize(0); } - inline void PathLineTo(const ImVec2& p) { _Path.push_back(p); } - IMGUI_API void PathArcTo(const ImVec2& centre, float radius, float a_min, float a_max, int num_segments = 10); - IMGUI_API void PathArcToFast(const ImVec2& centre, float radius, int a_min_of_12, int a_max_of_12); - IMGUI_API void PathRect(const ImVec2& a, const ImVec2& b, float rounding = 0.0f, int rounding_corners = 0x0F); - inline void PathFill(ImU32 col) { AddConvexPolyFilled(_Path.Data, _Path.Size, col, true); PathClear(); } - inline void PathStroke(ImU32 col, bool closed, float thickness = 1.0f) { AddPolyline(_Path.Data, _Path.Size, col, closed, thickness, true); PathClear(); } - - // Advanced - IMGUI_API void AddCallback(ImDrawCallback callback, void* callback_data); // Your rendering function must check for 'UserCallback' in ImDrawCmd and call the function instead of rendering triangles. - IMGUI_API void AddDrawCmd(); // This is useful if you need to forcefully create a new draw call (to allow for dependent rendering / blending). Otherwise primitives are merged into the same draw-call as much as possible - IMGUI_API void ChannelsSplit(int channel_count); - IMGUI_API void ChannelsMerge(int channel_count); - IMGUI_API void ChannelsSetCurrent(int idx); - - // Internal helpers - // NB: all primitives needs to be reserved via PrimReserve() beforehand! - IMGUI_API void PrimReserve(int idx_count, int vtx_count); - IMGUI_API void PrimRect(const ImVec2& a, const ImVec2& b, ImU32 col); - IMGUI_API void PrimRectUV(const ImVec2& a, const ImVec2& b, const ImVec2& uv_a, const ImVec2& uv_b, ImU32 col); - inline void PrimVtx(const ImVec2& pos, const ImVec2& uv, ImU32 col) { PrimWriteIdx((ImDrawIdx)_VtxCurrentIdx); PrimWriteVtx(pos, uv, col); } - inline void PrimWriteVtx(const ImVec2& pos, const ImVec2& uv, ImU32 col){ _VtxWritePtr->pos = pos; _VtxWritePtr->uv = uv; _VtxWritePtr->col = col; _VtxWritePtr++; _VtxCurrentIdx++; } - inline void PrimWriteIdx(ImDrawIdx idx) { *_IdxWritePtr = idx; _IdxWritePtr++; } - IMGUI_API void UpdateClipRect(); - IMGUI_API void UpdateTextureID(); -}; - -// All draw data to render an ImGui frame -struct ImDrawData -{ - ImDrawList** CmdLists; - int CmdListsCount; - int TotalVtxCount; // For convenience, sum of all cmd_lists vtx_buffer.Size - int TotalIdxCount; // For convenience, sum of all cmd_lists idx_buffer.Size - - // Functions - void DeIndexAllBuffers(); // For backward compatibility: convert all buffers from indexed to de-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. Always prefer indexed rendering! -}; - -struct ImFontConfig -{ - void* FontData; // // TTF data - int FontDataSize; // // TTF data size - bool FontDataOwnedByAtlas; // true // TTF data ownership taken by the container ImFontAtlas (will delete memory itself). Set to true - int FontNo; // 0 // Index of font within TTF file - float SizePixels; // // Size in pixels for rasterizer - int OversampleH, OversampleV; // 3, 1 // Rasterize at higher quality for sub-pixel positioning. We don't use sub-pixel positions on the Y axis. - bool PixelSnapH; // false // Align every character to pixel boundary (if enabled, set OversampleH/V to 1) - ImVec2 GlyphExtraSpacing; // 0, 0 // Extra spacing (in pixels) between glyphs - const ImWchar* GlyphRanges; // // List of Unicode range (2 value per range, values are inclusive, zero-terminated list) - bool MergeMode; // false // Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). - bool MergeGlyphCenterV; // false // When merging (multiple ImFontInput for one ImFont), vertically center new glyphs instead of aligning their baseline - - // [Internal] - char Name[32]; // Name (strictly for debugging) - ImFont* DstFont; - - IMGUI_API ImFontConfig(); -}; - -// Load and rasterize multiple TTF fonts into a same texture. -// Sharing a texture for multiple fonts allows us to reduce the number of draw calls during rendering. -// We also add custom graphic data into the texture that serves for ImGui. -// 1. (Optional) Call AddFont*** functions. If you don't call any, the default font will be loaded for you. -// 2. Call GetTexDataAsAlpha8() or GetTexDataAsRGBA32() to build and retrieve pixels data. -// 3. Upload the pixels data into a texture within your graphics system. -// 4. Call SetTexID(my_tex_id); and pass the pointer/identifier to your texture. This value will be passed back to you during rendering to identify the texture. -// 5. Call ClearTexData() to free textures memory on the heap. -struct ImFontAtlas -{ - IMGUI_API ImFontAtlas(); - IMGUI_API ~ImFontAtlas(); - IMGUI_API ImFont* AddFont(const ImFontConfig* font_cfg); - IMGUI_API ImFont* AddFontDefault(const ImFontConfig* font_cfg = NULL); - IMGUI_API ImFont* AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); - IMGUI_API ImFont* AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // Transfer ownership of 'ttf_data' to ImFontAtlas, will be deleted after Build() - IMGUI_API ImFont* AddFontFromMemoryCompressedTTF(const void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // 'compressed_ttf_data' still owned by caller. Compress with binary_to_compressed_c.cpp - IMGUI_API ImFont* AddFontFromMemoryCompressedBase85TTF(const char* compressed_ttf_data_base85, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // 'compressed_ttf_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 paramaeter - IMGUI_API void ClearTexData(); // Clear the CPU-side texture data. Saves RAM once the texture has been copied to graphics memory. - IMGUI_API void ClearInputData(); // Clear the input TTF data (inc sizes, glyph ranges) - IMGUI_API void ClearFonts(); // Clear the ImGui-side font data (glyphs storage, UV coordinates) - IMGUI_API void Clear(); // Clear all - - // Retrieve texture data - // User is in charge of copying the pixels into graphics memory, then call SetTextureUserID() - // After loading the texture into your graphic system, store your texture handle in 'TexID' (ignore if you aren't using multiple fonts nor images) - // RGBA32 format is provided for convenience and high compatibility, but note that all RGB pixels are white, so 75% of the memory is wasted. - // Pitch = Width * BytesPerPixels - IMGUI_API void GetTexDataAsAlpha8(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel = NULL); // 1 byte per-pixel - IMGUI_API void GetTexDataAsRGBA32(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel = NULL); // 4 bytes-per-pixel - IMGUI_API void SetTexID(void* id) { TexID = id; } - - // Helpers to retrieve list of common Unicode ranges (2 value per range, values are inclusive, zero-terminated list) - // (Those functions could be static but aren't so most users don't have to refer to the ImFontAtlas:: name ever if in their code; just using io.Fonts->) - IMGUI_API const ImWchar* GetGlyphRangesDefault(); // Basic Latin, Extended Latin - IMGUI_API const ImWchar* GetGlyphRangesJapanese(); // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs - IMGUI_API const ImWchar* GetGlyphRangesChinese(); // Japanese + full set of about 21000 CJK Unified Ideographs - IMGUI_API const ImWchar* GetGlyphRangesCyrillic(); // Default + about 400 Cyrillic characters - - // Members - // (Access texture data via GetTexData*() calls which will setup a default font for you.) - void* TexID; // User data to refer to the texture once it has been uploaded to user's graphic systems. It ia passed back to you during rendering. - unsigned char* TexPixelsAlpha8; // 1 component per pixel, each component is unsigned 8-bit. Total size = TexWidth * TexHeight - unsigned int* TexPixelsRGBA32; // 4 component per pixel, each component is unsigned 8-bit. Total size = TexWidth * TexHeight * 4 - int TexWidth; - int TexHeight; - ImVec2 TexUvWhitePixel; // Texture coordinates to a white pixel (part of the TexExtraData block) - ImVector Fonts; - - // Private - ImVector ConfigData; // Internal data - IMGUI_API bool Build(); // Build pixels data. This is automatically for you by the GetTexData*** functions. - IMGUI_API void RenderCustomTexData(int pass, void* rects); -}; - -// Font runtime data and rendering -// ImFontAtlas automatically loads a default embedded font for you when you call GetTexDataAsAlpha8() or GetTexDataAsRGBA32(). -struct ImFont -{ - // Members: Settings - float FontSize; // // Height of characters, set during loading (don't change after loading) - float Scale; // = 1.0f // Base font scale, multiplied by the per-window font scale which you can adjust with SetFontScale() - ImVec2 DisplayOffset; // = (0.0f,0.0f) // Offset font rendering by xx pixels - ImWchar FallbackChar; // = '?' // Replacement glyph if one isn't found. Only set via SetFallbackChar() - ImFontConfig* ConfigData; // // Pointer within ImFontAtlas->ConfigData - int ConfigDataCount; // - - // Members: Runtime data - struct Glyph - { - ImWchar Codepoint; - float XAdvance; - float X0, Y0, X1, Y1; - float U0, V0, U1, V1; // Texture coordinates - }; - float Ascent, Descent; // Ascent: distance from top to bottom of e.g. 'A' [0..FontSize] - ImFontAtlas* ContainerAtlas; // What we has been loaded into - ImVector Glyphs; - const Glyph* FallbackGlyph; // == FindGlyph(FontFallbackChar) - float FallbackXAdvance; // - ImVector IndexXAdvance; // Sparse. Glyphs->XAdvance directly indexable (for CalcTextSize functions which are often bottleneck in large UI) - ImVector IndexLookup; // Sparse. Index glyphs by Unicode code-point - - // Methods - IMGUI_API ImFont(); - IMGUI_API ~ImFont(); - IMGUI_API void Clear(); - IMGUI_API void BuildLookupTable(); - IMGUI_API float GetCharAdvance(unsigned short c) const { return ((int)c < IndexXAdvance.Size) ? IndexXAdvance[(int)c] : FallbackXAdvance; } - IMGUI_API const Glyph* FindGlyph(unsigned short c) const; - IMGUI_API void SetFallbackChar(ImWchar c); - IMGUI_API bool IsLoaded() const { return ContainerAtlas != NULL; } - - // 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. - // 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. - IMGUI_API ImVec2 CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end = NULL, const char** remaining = NULL) const; // utf8 - IMGUI_API const char* CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const; - IMGUI_API void RenderText(float size, ImVec2 pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, ImDrawList* draw_list, float wrap_width = 0.0f, bool cpu_fine_clip = false) const; -}; - -//---- Include imgui_user.h at the end of imgui.h -//---- So you can include code that extends ImGui using any of the types declared above. -//---- (also convenient for user to only explicitly include vanilla imgui.h) -#ifdef IMGUI_INCLUDE_IMGUI_USER_H -#include "imgui_user.h" -#endif diff --git a/samples/D3D12/external/imgui/imgui_demo.cpp b/samples/D3D12/external/imgui/imgui_demo.cpp deleted file mode 100644 index 255c463..0000000 --- a/samples/D3D12/external/imgui/imgui_demo.cpp +++ /dev/null @@ -1,2048 +0,0 @@ -// ImGui library v1.44 -// Demo code - -// Don't remove this file from your project! It is useful reference code that you can execute. -// You can call ImGui::ShowTestWindow() in your code to learn about various features of ImGui. -// Everything in this file will be stripped out by the linker if you don't call ImGui::ShowTestWindow(). - -#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "imgui.h" -#include // toupper, isprint -#include // sqrtf, fabsf, fmodf, powf, cosf, sinf, floorf, ceilf -#include // vsnprintf, sscanf, printf - -#ifdef _MSC_VER -#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) -#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen -#define snprintf _snprintf -#endif -#ifdef __clang__ -#pragma clang diagnostic ignored "-Wdeprecated-declarations" // warning : 'xx' is deprecated: The POSIX name for this item.. // for strdup used in demo code (so user can copy & paste the code) -#pragma clang diagnostic ignored "-Wint-to-void-pointer-cast" // warning : cast to 'void *' from smaller integer type 'int' -#endif -#ifdef __GNUC__ -#pragma GCC diagnostic ignored "-Wint-to-pointer-cast" // warning: cast to pointer from integer of different size -#endif - -// Play it nice with Windows users. Notepad in 2015 still doesn't display text data with Unix-style \n. -#ifdef _MSC_VER -#define IM_NEWLINE "\r\n" -#else -#define IM_NEWLINE "\n" -#endif - -#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR)/sizeof(*_ARR))) - -//----------------------------------------------------------------------------- -// DEMO CODE -//----------------------------------------------------------------------------- - -#ifndef IMGUI_DISABLE_TEST_WINDOWS - -static void ShowExampleAppConsole(bool* opened); -static void ShowExampleAppLayout(bool* opened); -static void ShowExampleAppLongText(bool* opened); -static void ShowExampleAppAutoResize(bool* opened); -static void ShowExampleAppFixedOverlay(bool* opened); -static void ShowExampleAppManipulatingWindowTitle(bool* opened); -static void ShowExampleAppCustomRendering(bool* opened); -static void ShowExampleAppMainMenuBar(); -static void ShowExampleMenuFile(); - -static void ShowHelpMarker(const char* desc) -{ - ImGui::TextDisabled("(?)"); - if (ImGui::IsItemHovered()) - ImGui::SetTooltip(desc); -} - -void ImGui::ShowUserGuide() -{ - ImGui::BulletText("Double-click on title bar to collapse window."); - ImGui::BulletText("Click and drag on lower right corner to resize window."); - ImGui::BulletText("Click and drag on any empty space to move window."); - ImGui::BulletText("Mouse Wheel to scroll."); - if (ImGui::GetIO().FontAllowUserScaling) - ImGui::BulletText("CTRL+Mouse Wheel to zoom window contents."); - ImGui::BulletText("TAB/SHIFT+TAB to cycle through keyboard editable fields."); - ImGui::BulletText("CTRL+Click on a slider or drag box to input text."); - ImGui::BulletText( - "While editing text:\n" - "- Hold SHIFT or use mouse to select text\n" - "- CTRL+Left/Right to word jump\n" - "- CTRL+A or double-click to select all\n" - "- CTRL+X,CTRL+C,CTRL+V clipboard\n" - "- CTRL+Z,CTRL+Y undo/redo\n" - "- ESCAPE to revert\n" - "- You can apply arithmetic operators +,*,/ on numerical values.\n" - " Use +- to subtract.\n"); -} - -// Demonstrate most ImGui features (big function!) -void ImGui::ShowTestWindow(bool* opened) -{ - // Examples apps - static bool show_app_metrics = false; - static bool show_app_main_menu_bar = false; - static bool show_app_console = false; - static bool show_app_layout = false; - static bool show_app_long_text = false; - static bool show_app_auto_resize = false; - static bool show_app_fixed_overlay = false; - static bool show_app_custom_rendering = false; - static bool show_app_manipulating_window_title = false; - static bool show_app_about = false; - if (show_app_metrics) ImGui::ShowMetricsWindow(&show_app_metrics); - if (show_app_main_menu_bar) ShowExampleAppMainMenuBar(); - if (show_app_console) ShowExampleAppConsole(&show_app_console); - if (show_app_layout) ShowExampleAppLayout(&show_app_layout); - if (show_app_long_text) ShowExampleAppLongText(&show_app_long_text); - if (show_app_auto_resize) ShowExampleAppAutoResize(&show_app_auto_resize); - if (show_app_fixed_overlay) ShowExampleAppFixedOverlay(&show_app_fixed_overlay); - if (show_app_manipulating_window_title) ShowExampleAppManipulatingWindowTitle(&show_app_manipulating_window_title); - if (show_app_custom_rendering) ShowExampleAppCustomRendering(&show_app_custom_rendering); - if (show_app_about) - { - ImGui::Begin("About ImGui", &show_app_about, ImGuiWindowFlags_AlwaysAutoResize); - ImGui::Text("ImGui %s", ImGui::GetVersion()); - ImGui::Separator(); - ImGui::Text("By Omar Cornut and all github contributors."); - ImGui::Text("ImGui is licensed under the MIT License, see LICENSE for more information."); - ImGui::End(); - } - - static bool no_titlebar = false; - static bool no_border = true; - static bool no_resize = false; - static bool no_move = false; - static bool no_scrollbar = false; - static bool no_collapse = false; - static bool no_menu = false; - static float bg_alpha = 0.65f; - - // Demonstrate the various window flags. Typically you would just use the default. - ImGuiWindowFlags window_flags = 0; - if (no_titlebar) window_flags |= ImGuiWindowFlags_NoTitleBar; - if (!no_border) window_flags |= ImGuiWindowFlags_ShowBorders; - if (no_resize) window_flags |= ImGuiWindowFlags_NoResize; - if (no_move) window_flags |= ImGuiWindowFlags_NoMove; - if (no_scrollbar) window_flags |= ImGuiWindowFlags_NoScrollbar; - if (no_collapse) window_flags |= ImGuiWindowFlags_NoCollapse; - if (!no_menu) window_flags |= ImGuiWindowFlags_MenuBar; - if (!ImGui::Begin("ImGui Demo", opened, ImVec2(550,680), bg_alpha, window_flags)) - { - // Early out if the window is collapsed, as an optimization. - ImGui::End(); - return; - } - - //ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.65f); // 2/3 of the space for widget and 1/3 for labels - ImGui::PushItemWidth(-140); // Right align, keep 140 pixels for labels - - ImGui::Text("ImGui says hello."); - - // Menu - if (ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("Menu")) - { - ShowExampleMenuFile(); - ImGui::EndMenu(); - } - if (ImGui::BeginMenu("Examples")) - { - ImGui::MenuItem("Main menu bar", NULL, &show_app_main_menu_bar); - ImGui::MenuItem("Console", NULL, &show_app_console); - ImGui::MenuItem("Simple layout", NULL, &show_app_layout); - ImGui::MenuItem("Long text display", NULL, &show_app_long_text); - ImGui::MenuItem("Auto-resizing window", NULL, &show_app_auto_resize); - ImGui::MenuItem("Simple overlay", NULL, &show_app_fixed_overlay); - ImGui::MenuItem("Manipulating window title", NULL, &show_app_manipulating_window_title); - ImGui::MenuItem("Custom rendering", NULL, &show_app_custom_rendering); - ImGui::EndMenu(); - } - if (ImGui::BeginMenu("Help")) - { - ImGui::MenuItem("Metrics", NULL, &show_app_metrics); - ImGui::MenuItem("About ImGui", NULL, &show_app_about); - ImGui::EndMenu(); - } - ImGui::EndMenuBar(); - } - - ImGui::Spacing(); - if (ImGui::CollapsingHeader("Help")) - { - ImGui::TextWrapped("This window is being created by the ShowTestWindow() function. Please refer to the code for programming reference.\n\nUser Guide:"); - ImGui::ShowUserGuide(); - } - - if (ImGui::CollapsingHeader("Window options")) - { - ImGui::Checkbox("no titlebar", &no_titlebar); ImGui::SameLine(150); - ImGui::Checkbox("no border", &no_border); ImGui::SameLine(300); - ImGui::Checkbox("no resize", &no_resize); - ImGui::Checkbox("no move", &no_move); ImGui::SameLine(150); - ImGui::Checkbox("no scrollbar", &no_scrollbar); ImGui::SameLine(300); - ImGui::Checkbox("no collapse", &no_collapse); - ImGui::Checkbox("no menu", &no_menu); - ImGui::SliderFloat("bg alpha", &bg_alpha, 0.0f, 1.0f); - - if (ImGui::TreeNode("Style")) - { - ImGui::ShowStyleEditor(); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Fonts", "Fonts (%d)", ImGui::GetIO().Fonts->Fonts.Size)) - { - ImGui::TextWrapped("Tip: Load fonts with io.Fonts->AddFontFromFileTTF()."); - ImFontAtlas* atlas = ImGui::GetIO().Fonts; - if (ImGui::TreeNode("Atlas texture")) - { - ImGui::Text("%dx%d pixels", atlas->TexWidth, atlas->TexHeight); - ImGui::Image(atlas->TexID, ImVec2((float)atlas->TexWidth, (float)atlas->TexHeight), ImVec2(0,0), ImVec2(1,1), ImColor(255,255,255,255), ImColor(255,255,255,128)); - ImGui::TreePop(); - } - ImGui::PushItemWidth(100); - for (int i = 0; i < atlas->Fonts.Size; i++) - { - ImFont* font = atlas->Fonts[i]; - ImGui::BulletText("Font %d: \'%s\', %.2f px, %d glyphs", i, font->ConfigData ? font->ConfigData[0].Name : "", font->FontSize, font->Glyphs.Size); - ImGui::TreePush((void*)i); - if (i > 0) { ImGui::SameLine(); if (ImGui::SmallButton("Set as default")) { atlas->Fonts[i] = atlas->Fonts[0]; atlas->Fonts[0] = font; } } - ImGui::PushFont(font); - ImGui::Text("The quick brown fox jumps over the lazy dog"); - ImGui::PopFont(); - if (ImGui::TreeNode("Details")) - { - ImGui::DragFloat("font scale", &font->Scale, 0.005f, 0.3f, 2.0f, "%.1f"); // scale only this font - ImGui::Text("Ascent: %f, Descent: %f, Height: %f", font->Ascent, font->Descent, font->Ascent - font->Descent); - ImGui::Text("Fallback character: '%c' (%d)", font->FallbackChar, font->FallbackChar); - for (int config_i = 0; config_i < font->ConfigDataCount; config_i++) - ImGui::BulletText("Input %d: \'%s\'", config_i, font->ConfigData[config_i].Name); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - static float window_scale = 1.0f; - ImGui::DragFloat("this window scale", &window_scale, 0.005f, 0.3f, 2.0f, "%.1f"); // scale only this window - ImGui::DragFloat("global scale", &ImGui::GetIO().FontGlobalScale, 0.005f, 0.3f, 2.0f, "%.1f"); // scale everything - ImGui::PopItemWidth(); - ImGui::SetWindowFontScale(window_scale); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Logging")) - { - ImGui::TextWrapped("The logging API redirects all text output so you can easily capture the content of a window or a block. Tree nodes can be automatically expanded. You can also call ImGui::LogText() to output directly to the log without a visual output."); - ImGui::LogButtons(); - ImGui::TreePop(); - } - } - - if (ImGui::CollapsingHeader("Widgets")) - { - if (ImGui::TreeNode("Tree")) - { - for (int i = 0; i < 5; i++) - { - if (ImGui::TreeNode((void*)i, "Child %d", i)) - { - ImGui::Text("blah blah"); - ImGui::SameLine(); - if (ImGui::SmallButton("print")) - printf("Child %d pressed", i); - ImGui::TreePop(); - } - } - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Bullets")) - { - ImGui::BulletText("Bullet point 1"); - ImGui::BulletText("Bullet point 2\nOn multiple lines"); - ImGui::Bullet(); ImGui::Text("Bullet point 3 (two calls)"); - ImGui::Bullet(); ImGui::SmallButton("Button"); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Colored Text")) - { - // Using shortcut. You can use PushStyleColor()/PopStyleColor() for more flexibility. - ImGui::TextColored(ImVec4(1.0f,0.0f,1.0f,1.0f), "Pink"); - ImGui::TextColored(ImVec4(1.0f,1.0f,0.0f,1.0f), "Yellow"); - ImGui::TextDisabled("Disabled"); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Word Wrapping")) - { - // Using shortcut. You can use PushTextWrapPos()/PopTextWrapPos() for more flexibility. - ImGui::TextWrapped("This text should automatically wrap on the edge of the window. The current implementation for text wrapping follows simple rules suitable for English and possibly other languages."); - ImGui::Spacing(); - - static float wrap_width = 200.0f; - ImGui::SliderFloat("Wrap width", &wrap_width, -20, 600, "%.0f"); - - ImGui::Text("Test paragraph 1:"); - ImVec2 pos = ImGui::GetCursorScreenPos(); - ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(pos.x + wrap_width, pos.y), ImVec2(pos.x + wrap_width + 10, pos.y + ImGui::GetTextLineHeight()), 0xFFFF00FF); - ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + wrap_width); - ImGui::Text("lazy dog. This paragraph is made to fit within %.0f pixels. The quick brown fox jumps over the lazy dog.", wrap_width); - ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), 0xFF00FFFF); - ImGui::PopTextWrapPos(); - - ImGui::Text("Test paragraph 2:"); - pos = ImGui::GetCursorScreenPos(); - ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(pos.x + wrap_width, pos.y), ImVec2(pos.x + wrap_width + 10, pos.y + ImGui::GetTextLineHeight()), 0xFFFF00FF); - ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + wrap_width); - ImGui::Text("aaaaaaaa bbbbbbbb, cccccccc,dddddddd. eeeeeeee ffffffff. gggggggg!hhhhhhhh"); - ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), 0xFF00FFFF); - ImGui::PopTextWrapPos(); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("UTF-8 Text")) - { - // UTF-8 test with Japanese characters - // (needs a suitable font, try Arial Unicode or M+ fonts http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html) - // Most compiler appears to support UTF-8 in source code (with Visual Studio you need to save your file as 'UTF-8 without signature') - // However for the sake for maximum portability here we are *not* including raw UTF-8 character in this source file, instead we encode the string with hexadecimal constants. - // In your own application be reasonable and use UTF-8 in source or retrieve the data from file system! - // Note that characters values are preserved even if the font cannot be displayed, so you can safely copy & paste garbled characters into another application. - ImGui::TextWrapped("CJK text will only appears if the font was loaded with the appropriate CJK character ranges. Call io.Font->LoadFromFileTTF() manually to load extra character ranges."); - ImGui::Text("Hiragana: \xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91\xe3\x81\x93 (kakikukeko)"); - ImGui::Text("Kanjis: \xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e (nihongo)"); - static char buf[32] = "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"; - ImGui::InputText("UTF-8 input", buf, IM_ARRAYSIZE(buf)); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Images")) - { - ImGui::TextWrapped("Below we are displaying the font texture (which is the only texture we have access to in this demo). Use the 'ImTextureID' type as storage to pass pointers or identifier to your own texture data. Hover the texture for a zoomed view!"); - ImVec2 tex_screen_pos = ImGui::GetCursorScreenPos(); - float tex_w = (float)ImGui::GetIO().Fonts->TexWidth; - float tex_h = (float)ImGui::GetIO().Fonts->TexHeight; - ImTextureID tex_id = ImGui::GetIO().Fonts->TexID; - ImGui::Text("%.0fx%.0f", tex_w, tex_h); - ImGui::Image(tex_id, ImVec2(tex_w, tex_h), ImVec2(0,0), ImVec2(1,1), ImColor(255,255,255,255), ImColor(255,255,255,128)); - if (ImGui::IsItemHovered()) - { - ImGui::BeginTooltip(); - float focus_sz = 32.0f; - float focus_x = ImGui::GetMousePos().x - tex_screen_pos.x - focus_sz * 0.5f; if (focus_x < 0.0f) focus_x = 0.0f; else if (focus_x > tex_w - focus_sz) focus_x = tex_w - focus_sz; - float focus_y = ImGui::GetMousePos().y - tex_screen_pos.y - focus_sz * 0.5f; if (focus_y < 0.0f) focus_y = 0.0f; else if (focus_y > tex_h - focus_sz) focus_y = tex_h - focus_sz; - ImGui::Text("Min: (%.2f, %.2f)", focus_x, focus_y); - ImGui::Text("Max: (%.2f, %.2f)", focus_x + focus_sz, focus_y + focus_sz); - ImVec2 uv0 = ImVec2((focus_x) / tex_w, (focus_y) / tex_h); - ImVec2 uv1 = ImVec2((focus_x + focus_sz) / tex_w, (focus_y + focus_sz) / tex_h); - ImGui::Image(tex_id, ImVec2(128,128), uv0, uv1, ImColor(255,255,255,255), ImColor(255,255,255,128)); - ImGui::EndTooltip(); - } - ImGui::TextWrapped("And now some textured buttons.."); - static int pressed_count = 0; - for (int i = 0; i < 8; i++) - { - if (i > 0) - ImGui::SameLine(); - ImGui::PushID(i); - int frame_padding = -1 + i; // -1 = uses default padding - if (ImGui::ImageButton(tex_id, ImVec2(32,32), ImVec2(0,0), ImVec2(32.0f/tex_w,32/tex_h), frame_padding, ImColor(0,0,0,255))) - pressed_count += 1; - ImGui::PopID(); - } - ImGui::Text("Pressed %d times.", pressed_count); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Selectables")) - { - if (ImGui::TreeNode("Basic")) - { - static bool selected[3] = { false, true, false }; - ImGui::Selectable("1. I am selectable", &selected[0]); - ImGui::Selectable("2. I am selectable", &selected[1]); - ImGui::Text("3. I am not selectable"); - ImGui::Selectable("4. I am selectable", &selected[2]); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Rendering more text into the same block")) - { - static bool selected[3] = { false, false, false }; - ImGui::Selectable("main.c", &selected[0]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); - ImGui::Selectable("Hello.cpp", &selected[1]); ImGui::SameLine(300); ImGui::Text("12,345 bytes"); - ImGui::Selectable("Hello.h", &selected[2]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Grid")) - { - static bool selected[16] = { true, false, false, false, false, true, false, false, false, false, true, false, false, false, false, true }; - for (int i = 0; i < 16; i++) - { - ImGui::PushID(i); - if (ImGui::Selectable("Me", &selected[i], 0, ImVec2(50,50))) - { - int x = i % 4, y = i / 4; - if (x > 0) selected[i - 1] ^= 1; - if (x < 3) selected[i + 1] ^= 1; - if (y > 0) selected[i - 4] ^= 1; - if (y < 3) selected[i + 4] ^= 1; - } - if ((i % 4) < 3) ImGui::SameLine(); - ImGui::PopID(); - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Filtered Text Input")) - { - static char buf1[64] = ""; ImGui::InputText("default", buf1, 64); - static char buf2[64] = ""; ImGui::InputText("decimal", buf2, 64, ImGuiInputTextFlags_CharsDecimal); - static char buf3[64] = ""; ImGui::InputText("hexadecimal", buf3, 64, ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase); - static char buf4[64] = ""; ImGui::InputText("uppercase", buf4, 64, ImGuiInputTextFlags_CharsUppercase); - static char buf5[64] = ""; ImGui::InputText("no blank", buf5, 64, ImGuiInputTextFlags_CharsNoBlank); - struct TextFilters { static int FilterImGuiLetters(ImGuiTextEditCallbackData* data) { if (data->EventChar < 256 && strchr("imgui", (char)data->EventChar)) return 0; return 1; } }; - static char buf6[64] = ""; ImGui::InputText("\"imgui\" letters", buf6, 64, ImGuiInputTextFlags_CallbackCharFilter, TextFilters::FilterImGuiLetters); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Multi-line Text Input")) - { - static char text[1024*16] = "// F00F bug\nlabel:\n\tlock cmpxchg8b eax\n"; - ImGui::InputTextMultiline("##source", text, IM_ARRAYSIZE(text), ImVec2(-1.0f, ImGui::GetTextLineHeight() * 16), ImGuiInputTextFlags_AllowTabInput); - ImGui::TreePop(); - } - - static bool a=false; - if (ImGui::Button("Button")) { printf("Clicked\n"); a ^= 1; } - if (a) - { - ImGui::SameLine(); - ImGui::Text("Thanks for clicking me!"); - } - - static bool check = true; - ImGui::Checkbox("checkbox", &check); - - static int e = 0; - ImGui::RadioButton("radio a", &e, 0); ImGui::SameLine(); - ImGui::RadioButton("radio b", &e, 1); ImGui::SameLine(); - ImGui::RadioButton("radio c", &e, 2); - - // Color buttons, demonstrate using PushID() to add unique identifier in the ID stack, and changing style. - for (int i = 0; i < 7; i++) - { - if (i > 0) ImGui::SameLine(); - ImGui::PushID(i); - ImGui::PushStyleColor(ImGuiCol_Button, ImColor::HSV(i/7.0f, 0.6f, 0.6f)); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImColor::HSV(i/7.0f, 0.7f, 0.7f)); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImColor::HSV(i/7.0f, 0.8f, 0.8f)); - ImGui::Button("Click"); - ImGui::PopStyleColor(3); - ImGui::PopID(); - } - - ImGui::Text("Hover over me"); - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("I am a tooltip"); - - ImGui::SameLine(); - ImGui::Text("- or me"); - if (ImGui::IsItemHovered()) - { - ImGui::BeginTooltip(); - ImGui::Text("I am a fancy tooltip"); - static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f }; - ImGui::PlotLines("Curve", arr, IM_ARRAYSIZE(arr)); - ImGui::EndTooltip(); - } - - // Testing IMGUI_ONCE_UPON_A_FRAME macro - //for (int i = 0; i < 5; i++) - //{ - // IMGUI_ONCE_UPON_A_FRAME - // { - // ImGui::Text("This will be displayed only once."); - // } - //} - - ImGui::Separator(); - - ImGui::LabelText("label", "Value"); - - static int item = 1; - ImGui::Combo("combo", &item, "aaaa\0bbbb\0cccc\0dddd\0eeee\0\0"); // Combo using values packed in a single constant string (for really quick combo) - - const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGG", "HHHH", "IIII", "JJJJ", "KKKK" }; - static int item2 = -1; - ImGui::Combo("combo scroll", &item2, items, IM_ARRAYSIZE(items)); // Combo using proper array. You can also pass a callback to retrieve array value, no need to create/copy an array just for that. - - { - static char str0[128] = "Hello, world!"; - static int i0=123; - static float f0=0.001f; - ImGui::InputText("input text", str0, IM_ARRAYSIZE(str0)); - ImGui::SameLine(); ShowHelpMarker("Hold SHIFT or use mouse to select text.\n" "CTRL+Left/Right to word jump.\n" "CTRL+A or double-click to select all.\n" "CTRL+X,CTRL+C,CTRL+V clipboard.\n" "CTRL+Z,CTRL+Y undo/redo.\n" "ESCAPE to revert.\n"); - - ImGui::InputInt("input int", &i0); - ImGui::SameLine(); ShowHelpMarker("You can apply arithmetic operators +,*,/ on numerical values.\n e.g. [ 100 ], input \'*2\', result becomes [ 200 ]\nUse +- to subtract.\n"); - - ImGui::InputFloat("input float", &f0, 0.01f, 1.0f); - - static float vec4a[4] = { 0.10f, 0.20f, 0.30f, 0.44f }; - ImGui::InputFloat3("input float3", vec4a); - } - - { - static int i1=50, i2=42; - ImGui::DragInt("drag int", &i1, 1); - ImGui::SameLine(); ShowHelpMarker("Click and drag to edit value.\nHold SHIFT/ALT for faster/slower edit.\nDouble-click or CTRL+click to input value."); - - ImGui::DragInt("drag int 0..100", &i2, 1, 0, 100, "%.0f%%"); - - static float f1=1.00f, f2=0.0067f; - ImGui::DragFloat("drag float", &f1, 0.005f); - ImGui::DragFloat("drag small float", &f2, 0.0001f, 0.0f, 0.0f, "%.06f ns"); - } - - { - static int i1=0; - ImGui::SliderInt("slider int", &i1, -1, 3); - ImGui::SameLine(); ShowHelpMarker("CTRL+click to input value."); - - static float f1=0.123f, f2=0.0f; - ImGui::SliderFloat("slider float", &f1, 0.0f, 1.0f, "ratio = %.3f"); - ImGui::SliderFloat("slider log float", &f2, -10.0f, 10.0f, "%.4f", 3.0f); - static float angle = 0.0f; - ImGui::SliderAngle("slider angle", &angle); - } - - static float col1[3] = { 1.0f,0.0f,0.2f }; - static float col2[4] = { 0.4f,0.7f,0.0f,0.5f }; - ImGui::ColorEdit3("color 1", col1); - ImGui::SameLine(); ShowHelpMarker("Click on the colored square to change edit mode.\nCTRL+click on individual component to input value.\n"); - - ImGui::ColorEdit4("color 2", col2); - - const char* listbox_items[] = { "Apple", "Banana", "Cherry", "Kiwi", "Mango", "Orange", "Pineapple", "Strawberry", "Watermelon" }; - static int listbox_item_current = 1; - ImGui::ListBox("listbox\n(single select)", &listbox_item_current, listbox_items, IM_ARRAYSIZE(listbox_items), 4); - - //static int listbox_item_current2 = 2; - //ImGui::PushItemWidth(-1); - //ImGui::ListBox("##listbox2", &listbox_item_current2, listbox_items, IM_ARRAYSIZE(listbox_items), 4); - //ImGui::PopItemWidth(); - - if (ImGui::TreeNode("Range Widgets")) - { - ImGui::Unindent(); - - static float begin = 10, end = 90; - static int begin_i = 100, end_i = 1000; - ImGui::DragFloatRange2("range", &begin, &end, 0.25f, 0.0f, 100.0f, "Min: %.1f %%", "Max: %.1f %%"); - ImGui::DragIntRange2("range int (no bounds)", &begin_i, &end_i, 5, 0, 0, "Min: %.0f units", "Max: %.0f units"); - - ImGui::Indent(); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Multi-component Widgets")) - { - ImGui::Unindent(); - - static float vec4f[4] = { 0.10f, 0.20f, 0.30f, 0.44f }; - static int vec4i[4] = { 1, 5, 100, 255 }; - - ImGui::InputFloat2("input float2", vec4f); - ImGui::DragFloat2("drag float2", vec4f, 0.01f, 0.0f, 1.0f); - ImGui::SliderFloat2("slider float2", vec4f, 0.0f, 1.0f); - ImGui::DragInt2("drag int2", vec4i, 1, 0, 255); - ImGui::InputInt2("input int2", vec4i); - ImGui::SliderInt2("slider int2", vec4i, 0, 255); - ImGui::Spacing(); - - ImGui::InputFloat3("input float3", vec4f); - ImGui::DragFloat3("drag float3", vec4f, 0.01f, 0.0f, 1.0f); - ImGui::SliderFloat3("slider float3", vec4f, 0.0f, 1.0f); - ImGui::DragInt3("drag int3", vec4i, 1, 0, 255); - ImGui::InputInt3("input int3", vec4i); - ImGui::SliderInt3("slider int3", vec4i, 0, 255); - ImGui::Spacing(); - - ImGui::InputFloat4("input float4", vec4f); - ImGui::DragFloat4("drag float4", vec4f, 0.01f, 0.0f, 1.0f); - ImGui::SliderFloat4("slider float4", vec4f, 0.0f, 1.0f); - ImGui::InputInt4("input int4", vec4i); - ImGui::DragInt4("drag int4", vec4i, 1, 0, 255); - ImGui::SliderInt4("slider int4", vec4i, 0, 255); - - ImGui::Indent(); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Vertical Sliders")) - { - ImGui::Unindent(); - const float spacing = 4; - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(spacing, spacing)); - - static int int_value = 0; - ImGui::VSliderInt("##int", ImVec2(18,160), &int_value, 0, 5); - ImGui::SameLine(); - - static float values[7] = { 0.0f, 0.60f, 0.35f, 0.9f, 0.70f, 0.20f, 0.0f }; - ImGui::PushID("set1"); - for (int i = 0; i < 7; i++) - { - if (i > 0) ImGui::SameLine(); - ImGui::PushID(i); - ImGui::PushStyleColor(ImGuiCol_FrameBg, ImColor::HSV(i/7.0f, 0.5f, 0.5f)); - ImGui::PushStyleColor(ImGuiCol_FrameBgHovered, ImColor::HSV(i/7.0f, 0.6f, 0.5f)); - ImGui::PushStyleColor(ImGuiCol_FrameBgActive, ImColor::HSV(i/7.0f, 0.7f, 0.5f)); - ImGui::PushStyleColor(ImGuiCol_SliderGrab, ImColor::HSV(i/7.0f, 0.9f, 0.9f)); - ImGui::VSliderFloat("##v", ImVec2(18,160), &values[i], 0.0f, 1.0f, ""); - if (ImGui::IsItemActive() || ImGui::IsItemHovered()) - ImGui::SetTooltip("%.3f", values[i]); - ImGui::PopStyleColor(4); - ImGui::PopID(); - } - ImGui::PopID(); - - ImGui::SameLine(); - ImGui::PushID("set2"); - static float values2[4] = { 0.20f, 0.80f, 0.40f, 0.25f }; - const int rows = 3; - const ImVec2 small_slider_size(18, (160.0f-(rows-1)*spacing)/rows); - for (int nx = 0; nx < 4; nx++) - { - if (nx > 0) ImGui::SameLine(); - ImGui::BeginGroup(); - for (int ny = 0; ny < rows; ny++) - { - ImGui::PushID(nx*rows+ny); - ImGui::VSliderFloat("##v", small_slider_size, &values2[nx], 0.0f, 1.0f, ""); - if (ImGui::IsItemActive() || ImGui::IsItemHovered()) - ImGui::SetTooltip("%.3f", values2[nx]); - ImGui::PopID(); - } - ImGui::EndGroup(); - } - ImGui::PopID(); - - ImGui::SameLine(); - ImGui::PushID("set3"); - for (int i = 0; i < 4; i++) - { - if (i > 0) ImGui::SameLine(); - ImGui::PushID(i); - ImGui::PushStyleVar(ImGuiStyleVar_GrabMinSize, 40); - ImGui::VSliderFloat("##v", ImVec2(40,160), &values[i], 0.0f, 1.0f, "%.2f"); - ImGui::PopStyleVar(); - ImGui::PopID(); - } - ImGui::PopID(); - ImGui::PopStyleVar(); - - ImGui::Indent(); - ImGui::TreePop(); - } - } - - if (ImGui::CollapsingHeader("Graphs widgets")) - { - static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f }; - ImGui::PlotLines("Frame Times", arr, IM_ARRAYSIZE(arr)); - - static bool pause; - static ImVector values; if (values.empty()) { values.resize(90); memset(values.Data, 0, values.Size*sizeof(float)); } - static int values_offset = 0; - if (!pause) - { - static float refresh_time = ImGui::GetTime(); // Create dummy data at fixed 60 hz rate for the demo - for (; ImGui::GetTime() > refresh_time + 1.0f/60.0f; refresh_time += 1.0f/60.0f) - { - static float phase = 0.0f; - values[values_offset] = cosf(phase); - values_offset = (values_offset+1)%values.Size; - phase += 0.10f*values_offset; - } - } - ImGui::PlotLines("##Graph", values.Data, values.Size, values_offset, "avg 0.0", -1.0f, 1.0f, ImVec2(0,80)); - ImGui::SameLine(0, ImGui::GetStyle().ItemInnerSpacing.x); - ImGui::BeginGroup(); - ImGui::Text("Graph"); - ImGui::Checkbox("pause", &pause); - ImGui::EndGroup(); - ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0,80)); - } - - if (ImGui::CollapsingHeader("Layout")) - { - if (ImGui::TreeNode("Child regions")) - { - ImGui::Text("Without border"); - static int line = 50; - bool goto_line = ImGui::Button("Goto"); - ImGui::SameLine(); - ImGui::PushItemWidth(100); - goto_line |= ImGui::InputInt("##Line", &line, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue); - ImGui::PopItemWidth(); - ImGui::BeginChild("Sub1", ImVec2(ImGui::GetWindowWidth() * 0.5f,300)); - for (int i = 0; i < 100; i++) - { - ImGui::Text("%04d: scrollable region", i); - if (goto_line && line == i) - ImGui::SetScrollHere(); - } - if (goto_line && line >= 100) - ImGui::SetScrollHere(); - ImGui::EndChild(); - - ImGui::SameLine(); - - ImGui::PushStyleVar(ImGuiStyleVar_ChildWindowRounding, 5.0f); - ImGui::BeginChild("Sub2", ImVec2(0,300), true); - ImGui::Text("With border"); - ImGui::Columns(2); - for (int i = 0; i < 100; i++) - { - if (i == 50) - ImGui::NextColumn(); - char buf[32]; - sprintf(buf, "%08x", i*5731); - ImGui::Button(buf, ImVec2(-1.0f, 0.0f)); - } - ImGui::EndChild(); - ImGui::PopStyleVar(); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Widgets Alignment")) - { - static float f = 0.0f; - ImGui::Text("Fixed: 100 pixels"); - ImGui::PushItemWidth(100); - ImGui::InputFloat("float##1", &f); - ImGui::PopItemWidth(); - - ImGui::Text("Proportional: 50%% of window width"); - ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.5f); - ImGui::InputFloat("float##2", &f); - ImGui::PopItemWidth(); - - ImGui::Text("Right-aligned: Leave 100 pixels for label"); - ImGui::PushItemWidth(-100); - ImGui::InputFloat("float##3", &f); - ImGui::PopItemWidth(); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Basic Horizontal Layout")) - { - ImGui::TextWrapped("(Use ImGui::SameLine() to keep adding items to the right of the preceeding item)"); - - // Text - ImGui::Text("Two items: Hello"); ImGui::SameLine(); - ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); - - // Adjust spacing - ImGui::Text("More spacing: Hello"); ImGui::SameLine(0, 20); - ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); - - // Button - ImGui::AlignFirstTextHeightToWidgets(); - ImGui::Text("Normal buttons"); ImGui::SameLine(); - ImGui::Button("Banana"); ImGui::SameLine(); - ImGui::Button("Apple"); ImGui::SameLine(); - ImGui::Button("Corniflower"); - - // Button - ImGui::Text("Small buttons"); ImGui::SameLine(); - ImGui::SmallButton("Like this one"); ImGui::SameLine(); - ImGui::Text("can fit within a text block."); - - // Aligned to arbitrary position. Easy/cheap column. - ImGui::Text("Aligned"); - ImGui::SameLine(150); ImGui::Text("x=150"); - ImGui::SameLine(300); ImGui::Text("x=300"); - ImGui::Text("Aligned"); - ImGui::SameLine(150); ImGui::SmallButton("x=150"); - ImGui::SameLine(300); ImGui::SmallButton("x=300"); - - // Checkbox - static bool c1=false,c2=false,c3=false,c4=false; - ImGui::Checkbox("My", &c1); ImGui::SameLine(); - ImGui::Checkbox("Tailor", &c2); ImGui::SameLine(); - ImGui::Checkbox("Is", &c3); ImGui::SameLine(); - ImGui::Checkbox("Rich", &c4); - - // Various - static float f0=1.0f, f1=2.0f, f2=3.0f; - ImGui::PushItemWidth(80); - const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD" }; - static int item = -1; - ImGui::Combo("Combo", &item, items, IM_ARRAYSIZE(items)); ImGui::SameLine(); - ImGui::SliderFloat("X", &f0, 0.0f,5.0f); ImGui::SameLine(); - ImGui::SliderFloat("Y", &f1, 0.0f,5.0f); ImGui::SameLine(); - ImGui::SliderFloat("Z", &f2, 0.0f,5.0f); - ImGui::PopItemWidth(); - - ImGui::PushItemWidth(80); - ImGui::Text("Lists:"); - static int selection[4] = { 0, 1, 2, 3 }; - for (int i = 0; i < 4; i++) - { - if (i > 0) ImGui::SameLine(); - ImGui::PushID(i); - ImGui::ListBox("", &selection[i], items, IM_ARRAYSIZE(items)); - ImGui::PopID(); - //if (ImGui::IsItemHovered()) ImGui::SetTooltip("ListBox %d hovered", i); - } - ImGui::PopItemWidth(); - - // Dummy - ImVec2 sz(30,30); - ImGui::Button("A", sz); ImGui::SameLine(); - ImGui::Dummy(sz); ImGui::SameLine(); - ImGui::Button("B", sz); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Groups")) - { - ImGui::TextWrapped("(Using ImGui::BeginGroup()/EndGroup() to layout items)"); - ImGui::BeginGroup(); - { - ImGui::BeginGroup(); - ImGui::Button("AAA"); - ImGui::SameLine(); - ImGui::Button("BBB"); - ImGui::SameLine(); - ImGui::BeginGroup(); - ImGui::Button("CCC"); - ImGui::Button("DDD"); - ImGui::EndGroup(); - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("Group hovered"); - ImGui::SameLine(); - ImGui::Button("EEE"); - ImGui::EndGroup(); - } - // Capture the group size and create widgets using the same size - ImVec2 size = ImGui::GetItemRectSize(); - const float values[5] = { 0.5f, 0.20f, 0.80f, 0.60f, 0.25f }; - ImGui::PlotHistogram("##values", values, IM_ARRAYSIZE(values), 0, NULL, 0.0f, 1.0f, size); - - ImGui::Button("ACTION", ImVec2((size.x - ImGui::GetStyle().ItemSpacing.x)*0.5f,size.y)); - ImGui::SameLine(); - ImGui::Button("REACTION", ImVec2((size.x - ImGui::GetStyle().ItemSpacing.x)*0.5f,size.y)); - ImGui::EndGroup(); - ImGui::SameLine(); - - ImGui::Button("LEVERAGE\nBUZZWORD", size); - ImGui::SameLine(); - - ImGui::ListBoxHeader("List", size); - ImGui::Selectable("Selected", true); - ImGui::Selectable("Not Selected", false); - ImGui::ListBoxFooter(); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Text Baseline Alignment")) - { - ImGui::TextWrapped("(This is testing the vertical alignment that occurs on text to keep it at the same baseline as widgets. Lines only composed of text or \"small\" widgets fit in less vertical spaces than lines with normal widgets)"); - - ImGui::Text("One\nTwo\nThree"); ImGui::SameLine(); - ImGui::Text("Hello\nWorld"); ImGui::SameLine(); - ImGui::Text("Banana"); - - ImGui::Text("Banana"); ImGui::SameLine(); - ImGui::Text("Hello\nWorld"); ImGui::SameLine(); - ImGui::Text("One\nTwo\nThree"); - - ImGui::Button("HOP"); ImGui::SameLine(); - ImGui::Text("Banana"); ImGui::SameLine(); - ImGui::Text("Hello\nWorld"); ImGui::SameLine(); - ImGui::Text("Banana"); - - ImGui::Button("HOP"); ImGui::SameLine(); - ImGui::Text("Hello\nWorld"); ImGui::SameLine(); - ImGui::Text("Banana"); - - ImGui::Button("TEST"); ImGui::SameLine(); - ImGui::Text("TEST"); ImGui::SameLine(); - ImGui::SmallButton("TEST"); - - ImGui::AlignFirstTextHeightToWidgets(); // If your line starts with text, call this to align it to upcoming widgets. - ImGui::Text("Text aligned to Widget"); ImGui::SameLine(); - ImGui::Button("Widget"); ImGui::SameLine(); - ImGui::Text("Widget"); ImGui::SameLine(); - ImGui::SmallButton("Widget"); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Scrolling")) - { - ImGui::TextWrapped("Use SetScrollHere() or SetScrollFromPosY() to scroll to a given position."); - static bool track = true; - static int track_line = 50, scroll_to_px = 200; - ImGui::Checkbox("Track", &track); - ImGui::SameLine(130); track |= ImGui::DragInt("##line", &track_line, 0.25f, 0, 9999, "Line %.0f"); - bool scroll_to = ImGui::Button("Scroll To"); - ImGui::SameLine(130); scroll_to |= ImGui::DragInt("##pos_y", &scroll_to_px, 1.00f, 0, 9999, "y = %.0f px"); - if (scroll_to) track = false; - - for (int i = 0; i < 5; i++) - { - if (i > 0) ImGui::SameLine(); - ImGui::BeginGroup(); - ImGui::Text("%s", i == 0 ? "Top" : i == 1 ? "25%" : i == 2 ? "Center" : i == 3 ? "75%" : "Bottom"); - ImGui::BeginChild(ImGui::GetID((void*)i), ImVec2(ImGui::GetWindowWidth() * 0.17f, 200.0f), true); - if (scroll_to) - ImGui::SetScrollFromPosY(ImGui::GetCursorStartPos().y + scroll_to_px, i * 0.25f); - for (int line = 0; line < 100; line++) - { - if (track && line == track_line) - { - ImGui::TextColored(ImColor(255,255,0), "Line %d", line); - ImGui::SetScrollHere(i * 0.25f); // 0.0f:top, 0.5f:center, 1.0f:bottom - } - else - { - ImGui::Text("Line %d", line); - } - } - ImGui::EndChild(); - ImGui::EndGroup(); - } - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Clipping")) - { - static ImVec2 size(100, 100), offset(50, 20); - ImGui::TextWrapped("On a per-widget basis we are occasionally clipping text CPU-side if it won't fit in its frame. Otherwise we are doing coarser clipping + passing a scissor rectangle to the renderer. The system is designed to try minimizing both execution and CPU/GPU rendering cost."); - ImGui::DragFloat2("size", (float*)&size, 0.5f, 0.0f, 200.0f, "%.0f"); - ImGui::DragFloat2("offset", (float*)&offset, 0.5f, -200, 200.0f, "%.0f"); - ImVec2 pos = ImGui::GetCursorScreenPos(); - ImVec4 clip_rect(pos.x, pos.y, pos.x+size.x, pos.y+size.y); - ImGui::GetWindowDrawList()->AddRectFilled(pos, ImVec2(pos.x+size.x,pos.y+size.y), ImColor(90,90,120,255)); - ImGui::GetWindowDrawList()->AddText(ImGui::GetWindowFont(), ImGui::GetWindowFontSize()*2.0f, ImVec2(pos.x+offset.x,pos.y+offset.y), ImColor(255,255,255,255), "Line 1 hello\nLine 2 clip me!", NULL, 0.0f, &clip_rect); - ImGui::Dummy(size); - ImGui::TreePop(); - } - } - - if (ImGui::CollapsingHeader("Popups & Modal windows")) - { - if (ImGui::TreeNode("Popups")) - { - ImGui::TextWrapped("When a popup is active, it inhibits interacting with windows that are behind the popup. Clicking outside the popup closes it."); - - static int selected_fish = -1; - const char* names[] = { "Bream", "Haddock", "Mackerel", "Pollock", "Tilefish" }; - static bool toggles[] = { true, false, false, false, false }; - - if (ImGui::Button("Select..")) - ImGui::OpenPopup("select"); - ImGui::SameLine(); - ImGui::Text(selected_fish == -1 ? "" : names[selected_fish]); - if (ImGui::BeginPopup("select")) - { - ImGui::Text("Aquarium"); - ImGui::Separator(); - for (int i = 0; i < IM_ARRAYSIZE(names); i++) - if (ImGui::Selectable(names[i])) - selected_fish = i; - ImGui::EndPopup(); - } - - if (ImGui::Button("Toggle..")) - ImGui::OpenPopup("toggle"); - if (ImGui::BeginPopup("toggle")) - { - for (int i = 0; i < IM_ARRAYSIZE(names); i++) - ImGui::MenuItem(names[i], "", &toggles[i]); - if (ImGui::BeginMenu("Sub-menu")) - { - ImGui::MenuItem("Click me"); - ImGui::EndMenu(); - } - - ImGui::Separator(); - ImGui::Text("Tooltip here"); - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("I am a tooltip over a popup"); - - if (ImGui::Button("Stacked Popup")) - ImGui::OpenPopup("another popup"); - if (ImGui::BeginPopup("another popup")) - { - for (int i = 0; i < IM_ARRAYSIZE(names); i++) - ImGui::MenuItem(names[i], "", &toggles[i]); - if (ImGui::BeginMenu("Sub-menu")) - { - ImGui::MenuItem("Click me"); - ImGui::EndMenu(); - } - ImGui::EndPopup(); - } - ImGui::EndPopup(); - } - - if (ImGui::Button("Popup Menu..")) - ImGui::OpenPopup("popup from button"); - if (ImGui::BeginPopup("popup from button")) - { - ShowExampleMenuFile(); - ImGui::EndPopup(); - } - - ImGui::TextWrapped("Below we are testing adding menu items to a regular window. It's rather unusual but should work!"); - ImGui::Separator(); - ImGui::MenuItem("Menu item", "CTRL+M"); - if (ImGui::BeginMenu("Menu")) - { - ShowExampleMenuFile(); - ImGui::EndMenu(); - } - ImGui::Separator(); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Context menus")) - { - static float value = 0.5f; - ImGui::Text("Value = %.3f (<-- right-click here)", value); - if (ImGui::BeginPopupContextItem("item context menu")) - { - if (ImGui::Selectable("Set to zero")) value = 0.0f; - if (ImGui::Selectable("Set to PI")) value = 3.1415f; - ImGui::EndPopup(); - } - - static ImVec4 color = ImColor(1.0f, 0.0f, 1.0f, 1.0f); - ImGui::ColorButton(color); - if (ImGui::BeginPopupContextItem("color context menu")) - { - ImGui::Text("Edit color"); - ImGui::ColorEdit3("##edit", (float*)&color); - if (ImGui::Button("Close")) - ImGui::CloseCurrentPopup(); - ImGui::EndPopup(); - } - ImGui::SameLine(); ImGui::Text("(<-- right-click here)"); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Modals")) - { - ImGui::TextWrapped("Modal windows are like popups but the user cannot close them by clicking outside the window."); - - if (ImGui::Button("Delete..")) - ImGui::OpenPopup("Delete?"); - if (ImGui::BeginPopupModal("Delete?", NULL, ImGuiWindowFlags_AlwaysAutoResize)) - { - ImGui::Text("All those beautiful files will be deleted.\nThis operation cannot be undone!\n\n"); - ImGui::Separator(); - - static bool dont_ask_me_next_time = false; - ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0,0)); - ImGui::Checkbox("Don't ask me next time", &dont_ask_me_next_time); - ImGui::PopStyleVar(); - - if (ImGui::Button("OK", ImVec2(120,0))) { ImGui::CloseCurrentPopup(); } - ImGui::SameLine(); - if (ImGui::Button("Cancel", ImVec2(120,0))) { ImGui::CloseCurrentPopup(); } - ImGui::EndPopup(); - } - - if (ImGui::Button("Stacked modals..")) - ImGui::OpenPopup("Stacked 1"); - if (ImGui::BeginPopupModal("Stacked 1")) - { - ImGui::Text("Hello from Stacked The First"); - - if (ImGui::Button("Another one..")) - ImGui::OpenPopup("Stacked 2"); - if (ImGui::BeginPopupModal("Stacked 2")) - { - ImGui::Text("Hello from Stacked The Second"); - if (ImGui::Button("Close")) - ImGui::CloseCurrentPopup(); - ImGui::EndPopup(); - } - - if (ImGui::Button("Close")) - ImGui::CloseCurrentPopup(); - ImGui::EndPopup(); - } - - ImGui::TreePop(); - } - } - - if (ImGui::CollapsingHeader("Columns")) - { - // Basic columns - ImGui::Text("Basic:"); - ImGui::Columns(4, "mycolumns"); - ImGui::Separator(); - ImGui::Text("ID"); ImGui::NextColumn(); - ImGui::Text("Name"); ImGui::NextColumn(); - ImGui::Text("Path"); ImGui::NextColumn(); - ImGui::Text("Flags"); ImGui::NextColumn(); - ImGui::Separator(); - const char* names[3] = { "One", "Two", "Three" }; - const char* paths[3] = { "/path/one", "/path/two", "/path/three" }; - static int selected = -1; - for (int i = 0; i < 3; i++) - { - char label[32]; - sprintf(label, "%04d", i); - if (ImGui::Selectable(label, selected == i, ImGuiSelectableFlags_SpanAllColumns)) - selected = i; - ImGui::NextColumn(); - ImGui::Text(names[i]); ImGui::NextColumn(); - ImGui::Text(paths[i]); ImGui::NextColumn(); - ImGui::Text("...."); ImGui::NextColumn(); - } - ImGui::Columns(1); - - ImGui::Separator(); - ImGui::Spacing(); - - // Scrolling columns - /* - ImGui::Text("Scrolling:"); - ImGui::BeginChild("##header", ImVec2(0, ImGui::GetTextLineHeightWithSpacing()+ImGui::GetStyle().ItemSpacing.y)); - ImGui::Columns(3); - ImGui::Text("ID"); ImGui::NextColumn(); - ImGui::Text("Name"); ImGui::NextColumn(); - ImGui::Text("Path"); ImGui::NextColumn(); - ImGui::Columns(1); - ImGui::Separator(); - ImGui::EndChild(); - ImGui::BeginChild("##scrollingregion", ImVec2(0, 60)); - ImGui::Columns(3); - for (int i = 0; i < 10; i++) - { - ImGui::Text("%04d", i); ImGui::NextColumn(); - ImGui::Text("Foobar"); ImGui::NextColumn(); - ImGui::Text("/path/foobar/%04d/", i); ImGui::NextColumn(); - } - ImGui::Columns(1); - ImGui::EndChild(); - - ImGui::Separator(); - ImGui::Spacing(); - */ - - // Create multiple items in a same cell before switching to next column - ImGui::Text("Mixed items:"); - ImGui::Columns(3, "mixed"); - ImGui::Separator(); - - static int e = 0; - ImGui::Text("Hello"); - ImGui::Button("Banana"); - ImGui::RadioButton("radio a", &e, 0); - ImGui::NextColumn(); - - ImGui::Text("ImGui"); - ImGui::Button("Apple"); - ImGui::RadioButton("radio b", &e, 1); - static float foo = 1.0f; - ImGui::InputFloat("red", &foo, 0.05f, 0, 3); - ImGui::Text("An extra line here."); - ImGui::NextColumn(); - - ImGui::Text("Sailor"); - ImGui::Button("Corniflower"); - ImGui::RadioButton("radio c", &e, 2); - static float bar = 1.0f; - ImGui::InputFloat("blue", &bar, 0.05f, 0, 3); - ImGui::NextColumn(); - - if (ImGui::CollapsingHeader("Category A")) ImGui::Text("Blah blah blah"); ImGui::NextColumn(); - if (ImGui::CollapsingHeader("Category B")) ImGui::Text("Blah blah blah"); ImGui::NextColumn(); - if (ImGui::CollapsingHeader("Category C")) ImGui::Text("Blah blah blah"); ImGui::NextColumn(); - ImGui::Columns(1); - - ImGui::Separator(); - ImGui::Spacing(); - - // Tree items - ImGui::Text("Tree items:"); - ImGui::Columns(2, "tree items"); - ImGui::Separator(); - if (ImGui::TreeNode("Hello")) { ImGui::BulletText("Sailor"); ImGui::TreePop(); } ImGui::NextColumn(); - if (ImGui::TreeNode("Bonjour")) { ImGui::BulletText("Marin"); ImGui::TreePop(); } ImGui::NextColumn(); - ImGui::Columns(1); - - ImGui::Separator(); - ImGui::Spacing(); - - // Word-wrapping - ImGui::Text("Word-wrapping:"); - ImGui::Columns(2, "word-wrapping"); - ImGui::Separator(); - ImGui::TextWrapped("The quick brown fox jumps over the lazy dog."); - ImGui::Text("Hello Left"); - ImGui::NextColumn(); - ImGui::TextWrapped("The quick brown fox jumps over the lazy dog."); - ImGui::Text("Hello Right"); - ImGui::Columns(1); - - ImGui::Separator(); - ImGui::Spacing(); - - if (ImGui::TreeNode("Inside a tree..")) - { - if (ImGui::TreeNode("node 1 (with borders)")) - { - ImGui::Columns(4); - for (int i = 0; i < 8; i++) - { - ImGui::Text("%c%c%c", 'a'+i, 'a'+i, 'a'+i); - ImGui::NextColumn(); - } - ImGui::Columns(1); - ImGui::TreePop(); - } - if (ImGui::TreeNode("node 2 (without borders)")) - { - ImGui::Columns(4, NULL, false); - for (int i = 0; i < 8; i++) - { - ImGui::Text("%c%c%c", 'a'+i, 'a'+i, 'a'+i); - ImGui::NextColumn(); - } - ImGui::Columns(1); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - } - - if (ImGui::CollapsingHeader("Filtering")) - { - static ImGuiTextFilter filter; - ImGui::Text("Filter usage:\n" - " \"\" display all lines\n" - " \"xxx\" display lines containing \"xxx\"\n" - " \"xxx,yyy\" display lines containing \"xxx\" or \"yyy\"\n" - " \"-xxx\" hide lines containing \"xxx\""); - filter.Draw(); - const char* lines[] = { "aaa1.c", "bbb1.c", "ccc1.c", "aaa2.cpp", "bbb2.cpp", "ccc2.cpp", "abc.h", "hello, world" }; - for (int i = 0; i < IM_ARRAYSIZE(lines); i++) - if (filter.PassFilter(lines[i])) - ImGui::BulletText("%s", lines[i]); - } - - if (ImGui::CollapsingHeader("Keyboard, Mouse & Focus")) - { - if (ImGui::TreeNode("Tabbing")) - { - ImGui::Text("Use TAB/SHIFT+TAB to cycle through keyboard editable fields."); - static char buf[32] = "dummy"; - ImGui::InputText("1", buf, IM_ARRAYSIZE(buf)); - ImGui::InputText("2", buf, IM_ARRAYSIZE(buf)); - ImGui::InputText("3", buf, IM_ARRAYSIZE(buf)); - ImGui::PushAllowKeyboardFocus(false); - ImGui::InputText("4 (tab skip)", buf, IM_ARRAYSIZE(buf)); - //ImGui::SameLine(); ShowHelperMarker("Use ImGui::PushAllowKeyboardFocus(bool)\nto disable tabbing through certain widgets."); - ImGui::PopAllowKeyboardFocus(); - ImGui::InputText("5", buf, IM_ARRAYSIZE(buf)); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Focus from code")) - { - bool focus_1 = ImGui::Button("Focus on 1"); ImGui::SameLine(); - bool focus_2 = ImGui::Button("Focus on 2"); ImGui::SameLine(); - bool focus_3 = ImGui::Button("Focus on 3"); - int has_focus = 0; - static char buf[128] = "click on a button to set focus"; - - if (focus_1) ImGui::SetKeyboardFocusHere(); - ImGui::InputText("1", buf, IM_ARRAYSIZE(buf)); - if (ImGui::IsItemActive()) has_focus = 1; - - if (focus_2) ImGui::SetKeyboardFocusHere(); - ImGui::InputText("2", buf, IM_ARRAYSIZE(buf)); - if (ImGui::IsItemActive()) has_focus = 2; - - ImGui::PushAllowKeyboardFocus(false); - if (focus_3) ImGui::SetKeyboardFocusHere(); - ImGui::InputText("3 (tab skip)", buf, IM_ARRAYSIZE(buf)); - if (ImGui::IsItemActive()) has_focus = 3; - ImGui::PopAllowKeyboardFocus(); - if (has_focus) - ImGui::Text("Item with focus: %d", has_focus); - else - ImGui::Text("Item with focus: "); - ImGui::TextWrapped("Cursor & selection are preserved when refocusing last used item in code."); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Dragging")) - { - ImGui::TextWrapped("You can use ImGui::GetItemActiveDragDelta() to query for the dragged amount on any widget."); - ImGui::Button("Drag Me"); - if (ImGui::IsItemActive()) - { - // Draw a line between the button and the mouse cursor - ImDrawList* draw_list = ImGui::GetWindowDrawList(); - draw_list->PushClipRectFullScreen(); - draw_list->AddLine(ImGui::CalcItemRectClosestPoint(ImGui::GetIO().MousePos, true, -2.0f), ImGui::GetIO().MousePos, ImColor(ImGui::GetStyle().Colors[ImGuiCol_Button]), 4.0f); - draw_list->PopClipRect(); - ImVec2 value_raw = ImGui::GetMouseDragDelta(0, 0.0f); - ImVec2 value_with_lock_threshold = ImGui::GetMouseDragDelta(0); - ImGui::SameLine(); ImGui::Text("Raw (%.1f, %.1f), WithLockThresold (%.1f, %.1f)", value_raw.x, value_raw.y, value_with_lock_threshold.x, value_with_lock_threshold.y); - } - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Keyboard & Mouse State")) - { - ImGuiIO& io = ImGui::GetIO(); - - ImGui::Text("MousePos: (%g, %g)", io.MousePos.x, io.MousePos.y); - ImGui::Text("Mouse down:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (io.MouseDownDuration[i] >= 0.0f) { ImGui::SameLine(); ImGui::Text("%d (%.02f secs)", i, io.MouseDownDuration[i]); } - ImGui::Text("Mouse clicked:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseClicked(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } - ImGui::Text("Mouse released:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseReleased(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } - ImGui::Text("MouseWheel: %.1f", io.MouseWheel); - - ImGui::Text("Keys down:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (io.KeysDownDuration[i] >= 0.0f) { ImGui::SameLine(); ImGui::Text("%d (%.02f secs)", i, io.KeysDownDuration[i]); } - ImGui::Text("Keys pressed:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (ImGui::IsKeyPressed(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } - ImGui::Text("Keys release:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (ImGui::IsKeyReleased(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } - ImGui::Text("KeyMods: %s%s%s", io.KeyCtrl ? "CTRL " : "", io.KeyShift ? "SHIFT " : "", io.KeyAlt ? "ALT " : ""); - - ImGui::Text("WantCaptureMouse: %s", io.WantCaptureMouse ? "true" : "false"); - ImGui::Text("WantCaptureKeyboard: %s", io.WantCaptureKeyboard ? "true" : "false"); - - ImGui::Button("Hover me\nto enforce\ninputs capture"); - if (ImGui::IsItemHovered()) - ImGui::CaptureKeyboardFromApp(); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Mouse cursors")) - { - ImGui::TextWrapped("Your application can render a different mouse cursor based on what ImGui::GetMouseCursor() returns. You can also set io.MouseDrawCursor to ask ImGui to render the cursor for you in software."); - ImGui::Checkbox("io.MouseDrawCursor", &ImGui::GetIO().MouseDrawCursor); - ImGui::Text("Hover to see mouse cursors:"); - for (int i = 0; i < ImGuiMouseCursor_Count_; i++) - { - char label[32]; - sprintf(label, "Mouse cursor %d", i); - ImGui::Bullet(); ImGui::Selectable(label, false); - if (ImGui::IsItemHovered()) - ImGui::SetMouseCursor(i); - } - ImGui::TreePop(); - } - } - - ImGui::End(); -} - -void ImGui::ShowStyleEditor(ImGuiStyle* ref) -{ - ImGuiStyle& style = ImGui::GetStyle(); - - const ImGuiStyle def; // Default style - if (ImGui::Button("Revert Style")) - style = ref ? *ref : def; - if (ref) - { - ImGui::SameLine(); - if (ImGui::Button("Save Style")) - *ref = style; - } - - ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.55f); - - if (ImGui::TreeNode("Rendering")) - { - ImGui::Checkbox("Anti-aliased lines", &style.AntiAliasedLines); - ImGui::Checkbox("Anti-aliased shapes", &style.AntiAliasedShapes); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Sizes")) - { - ImGui::SliderFloat("Alpha", &style.Alpha, 0.20f, 1.0f, "%.2f"); // Not exposing zero here so user doesn't "lose" the UI. But application code could have a toggle to switch between zero and non-zero. - ImGui::SliderFloat2("WindowPadding", (float*)&style.WindowPadding, 0.0f, 20.0f, "%.0f"); - ImGui::SliderFloat("WindowRounding", &style.WindowRounding, 0.0f, 16.0f, "%.0f"); - ImGui::SliderFloat("ChildWindowRounding", &style.ChildWindowRounding, 0.0f, 16.0f, "%.0f"); - ImGui::SliderFloat2("FramePadding", (float*)&style.FramePadding, 0.0f, 20.0f, "%.0f"); - ImGui::SliderFloat("FrameRounding", &style.FrameRounding, 0.0f, 16.0f, "%.0f"); - ImGui::SliderFloat2("ItemSpacing", (float*)&style.ItemSpacing, 0.0f, 20.0f, "%.0f"); - ImGui::SliderFloat2("ItemInnerSpacing", (float*)&style.ItemInnerSpacing, 0.0f, 20.0f, "%.0f"); - ImGui::SliderFloat2("TouchExtraPadding", (float*)&style.TouchExtraPadding, 0.0f, 10.0f, "%.0f"); - ImGui::SliderFloat("IndentSpacing", &style.IndentSpacing, 0.0f, 30.0f, "%.0f"); - ImGui::SliderFloat("ScrollbarWidth", &style.ScrollbarWidth, 1.0f, 20.0f, "%.0f"); - ImGui::SliderFloat("ScrollbarRounding", &style.ScrollbarRounding, 0.0f, 16.0f, "%.0f"); - ImGui::SliderFloat("GrabMinSize", &style.GrabMinSize, 1.0f, 20.0f, "%.0f"); - ImGui::SliderFloat("GrabRounding", &style.GrabRounding, 0.0f, 16.0f, "%.0f"); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Colors")) - { - static int output_dest = 0; - static bool output_only_modified = false; - if (ImGui::Button("Output Colors")) - { - if (output_dest == 0) - ImGui::LogToClipboard(); - else - ImGui::LogToTTY(); - ImGui::LogText("ImGuiStyle& style = ImGui::GetStyle();" IM_NEWLINE); - for (int i = 0; i < ImGuiCol_COUNT; i++) - { - const ImVec4& col = style.Colors[i]; - const char* name = ImGui::GetStyleColName(i); - if (!output_only_modified || memcmp(&col, (ref ? &ref->Colors[i] : &def.Colors[i]), sizeof(ImVec4)) != 0) - ImGui::LogText("style.Colors[ImGuiCol_%s]%*s= ImVec4(%.2ff, %.2ff, %.2ff, %.2ff);" IM_NEWLINE, name, 22 - strlen(name), "", col.x, col.y, col.z, col.w); - } - ImGui::LogFinish(); - } - ImGui::SameLine(); ImGui::PushItemWidth(120); ImGui::Combo("##output_type", &output_dest, "To Clipboard\0To TTY"); ImGui::PopItemWidth(); - ImGui::SameLine(); ImGui::Checkbox("Only Modified Fields", &output_only_modified); - - static ImGuiColorEditMode edit_mode = ImGuiColorEditMode_RGB; - ImGui::RadioButton("RGB", &edit_mode, ImGuiColorEditMode_RGB); - ImGui::SameLine(); - ImGui::RadioButton("HSV", &edit_mode, ImGuiColorEditMode_HSV); - ImGui::SameLine(); - ImGui::RadioButton("HEX", &edit_mode, ImGuiColorEditMode_HEX); - //ImGui::Text("Tip: Click on colored square to change edit mode."); - - static ImGuiTextFilter filter; - filter.Draw("Filter colors", 200); - - ImGui::BeginChild("#colors", ImVec2(0, 300), true); - ImGui::PushItemWidth(-160); - ImGui::ColorEditMode(edit_mode); - for (int i = 0; i < ImGuiCol_COUNT; i++) - { - const char* name = ImGui::GetStyleColName(i); - if (!filter.PassFilter(name)) - continue; - ImGui::PushID(i); - ImGui::ColorEdit4(name, (float*)&style.Colors[i], true); - if (memcmp(&style.Colors[i], (ref ? &ref->Colors[i] : &def.Colors[i]), sizeof(ImVec4)) != 0) - { - ImGui::SameLine(); if (ImGui::Button("Revert")) style.Colors[i] = ref ? ref->Colors[i] : def.Colors[i]; - if (ref) { ImGui::SameLine(); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i]; } - } - ImGui::PopID(); - } - ImGui::PopItemWidth(); - ImGui::EndChild(); - - ImGui::TreePop(); - } - - ImGui::PopItemWidth(); -} - -static void ShowExampleAppMainMenuBar() -{ - if (ImGui::BeginMainMenuBar()) - { - if (ImGui::BeginMenu("File")) - { - ShowExampleMenuFile(); - ImGui::EndMenu(); - } - if (ImGui::BeginMenu("Edit")) - { - if (ImGui::MenuItem("Undo", "CTRL+Z")) {} - if (ImGui::MenuItem("Redo", "CTRL+Y", false, false)) {} // Disabled item - ImGui::Separator(); - if (ImGui::MenuItem("Cut", "CTRL+X")) {} - if (ImGui::MenuItem("Copy", "CTRL+C")) {} - if (ImGui::MenuItem("Paste", "CTRL+V")) {} - ImGui::EndMenu(); - } - ImGui::EndMainMenuBar(); - } -} - -static void ShowExampleMenuFile() -{ - ImGui::MenuItem("(dummy menu)", NULL, false, false); - if (ImGui::MenuItem("New")) {} - if (ImGui::MenuItem("Open", "Ctrl+O")) {} - if (ImGui::BeginMenu("Open Recent")) - { - ImGui::MenuItem("fish_hat.c"); - ImGui::MenuItem("fish_hat.inl"); - ImGui::MenuItem("fish_hat.h"); - if (ImGui::BeginMenu("More..")) - { - ImGui::MenuItem("Hello"); - ImGui::MenuItem("Sailor"); - if (ImGui::BeginMenu("Recurse..")) - { - ShowExampleMenuFile(); - ImGui::EndMenu(); - } - ImGui::EndMenu(); - } - ImGui::EndMenu(); - } - if (ImGui::MenuItem("Save", "Ctrl+S")) {} - if (ImGui::MenuItem("Save As..")) {} - ImGui::Separator(); - if (ImGui::BeginMenu("Options")) - { - static bool enabled = true; - ImGui::MenuItem("Enabled", "", &enabled); - ImGui::BeginChild("child", ImVec2(0, 60), true); - for (int i = 0; i < 10; i++) - ImGui::Text("Scrolling Text %d", i); - ImGui::EndChild(); - static float f = 0.5f; - static int n = 0; - ImGui::SliderFloat("Value", &f, 0.0f, 1.0f); - ImGui::InputFloat("Input", &f, 0.1f); - ImGui::Combo("Combo", &n, "Yes\0No\0Maybe\0\0"); - ImGui::EndMenu(); - } - if (ImGui::BeginMenu("Colors")) - { - for (int i = 0; i < ImGuiCol_COUNT; i++) - ImGui::MenuItem(ImGui::GetStyleColName((ImGuiCol)i)); - ImGui::EndMenu(); - } - if (ImGui::BeginMenu("Disabled", false)) // Disabled - { - IM_ASSERT(0); - } - if (ImGui::MenuItem("Checked", NULL, true)) {} - if (ImGui::MenuItem("Quit", "Alt+F4")) {} -} - -static void ShowExampleAppAutoResize(bool* opened) -{ - if (!ImGui::Begin("Example: Auto-resizing window", opened, ImGuiWindowFlags_AlwaysAutoResize)) - { - ImGui::End(); - return; - } - - static int lines = 10; - ImGui::Text("Window will resize every-frame to the size of its content.\nNote that you probably don't want to query the window size to\noutput your content because that would create a feedback loop."); - ImGui::SliderInt("Number of lines", &lines, 1, 20); - for (int i = 0; i < lines; i++) - ImGui::Text("%*sThis is line %d", i*4, "", i); // Pad with space to extend size horizontally - ImGui::End(); -} - -static void ShowExampleAppFixedOverlay(bool* opened) -{ - ImGui::SetNextWindowPos(ImVec2(10,10)); - if (!ImGui::Begin("Example: Fixed Overlay", opened, ImVec2(0,0), 0.3f, ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoSavedSettings)) - { - ImGui::End(); - return; - } - ImGui::Text("Simple overlay\non the top-left side of the screen."); - ImGui::Separator(); - ImGui::Text("Mouse Position: (%.1f,%.1f)", ImGui::GetIO().MousePos.x, ImGui::GetIO().MousePos.y); - ImGui::End(); -} - -static void ShowExampleAppManipulatingWindowTitle(bool* opened) -{ - (void)opened; - - // By default, Windows are uniquely identified by their title. - // You can use the "##" and "###" markers to manipulate the display/ID. Read FAQ at the top of this file! - - // Using "##" to display same title but have unique identifier. - ImGui::SetNextWindowPos(ImVec2(100,100), ImGuiSetCond_FirstUseEver); - ImGui::Begin("Same title as another window##1"); - ImGui::Text("This is window 1.\nMy title is the same as window 2, but my identifier is unique."); - ImGui::End(); - - ImGui::SetNextWindowPos(ImVec2(100,200), ImGuiSetCond_FirstUseEver); - ImGui::Begin("Same title as another window##2"); - ImGui::Text("This is window 2.\nMy title is the same as window 1, but my identifier is unique."); - ImGui::End(); - - // Using "###" to display a changing title but keep a static identifier "AnimatedTitle" - char buf[128]; - sprintf(buf, "Animated title %c %d###AnimatedTitle", "|/-\\"[(int)(ImGui::GetTime()/0.25f)&3], rand()); - ImGui::SetNextWindowPos(ImVec2(100,300), ImGuiSetCond_FirstUseEver); - ImGui::Begin(buf); - ImGui::Text("This window has a changing title."); - ImGui::End(); -} - -static void ShowExampleAppCustomRendering(bool* opened) -{ - ImGui::SetNextWindowSize(ImVec2(300,350), ImGuiSetCond_FirstUseEver); - if (!ImGui::Begin("Example: Custom rendering", opened)) - { - ImGui::End(); - return; - } - - // Tip: If you do a lot of custom rendering, you probably want to use your own geometrical types and benefit of overloaded operators, etc. - // Define IM_VEC2_CLASS_EXTRA in imconfig.h to create implicit conversions between your types and ImVec2/ImVec4. - // ImGui defines overloaded operators but they are internal to imgui.cpp and not exposed outside (to avoid messing with your types) - // In this example we aren't using the operators. - - static ImVector points; - static bool adding_line = false; - if (ImGui::Button("Clear")) points.clear(); - if (points.Size >= 2) { ImGui::SameLine(); if (ImGui::Button("Undo")) { points.pop_back(); points.pop_back(); } } - ImGui::Text("Left-click and drag to add lines"); - ImGui::Text("Right-click to undo"); - - ImDrawList* draw_list = ImGui::GetWindowDrawList(); - - // Here we are using InvisibleButton() as a convenience to 1) advance the cursor and 2) allows us to use IsItemHovered() - // However you can draw directly and poll mouse/keyboard by yourself. You can manipulate the cursor using GetCursorPos() and SetCursorPos(). - // If you only use the ImDrawList API, you can notify the owner window of its extends by using SetCursorPos(max). - ImVec2 canvas_pos = ImGui::GetCursorScreenPos(); // ImDrawList API uses screen coordinates! - ImVec2 canvas_size = ImGui::GetContentRegionAvail(); // Resize canvas to what's available - if (canvas_size.x < 50.0f) canvas_size.x = 50.0f; - if (canvas_size.y < 50.0f) canvas_size.y = 50.0f; - draw_list->AddRectFilledMultiColor(canvas_pos, ImVec2(canvas_pos.x + canvas_size.x, canvas_pos.y + canvas_size.y), ImColor(0,0,0), ImColor(255,0,0), ImColor(255,255,0), ImColor(0,255,0)); - draw_list->AddRect(canvas_pos, ImVec2(canvas_pos.x + canvas_size.x, canvas_pos.y + canvas_size.y), ImColor(255,255,255)); - bool adding_preview = false; - ImGui::InvisibleButton("canvas", canvas_size); - if (ImGui::IsItemHovered()) - { - ImVec2 mouse_pos_in_canvas = ImVec2(ImGui::GetIO().MousePos.x - canvas_pos.x, ImGui::GetIO().MousePos.y - canvas_pos.y); - if (!adding_line && ImGui::GetIO().MouseClicked[0]) - { - points.push_back(mouse_pos_in_canvas); - adding_line = true; - } - if (adding_line) - { - adding_preview = true; - points.push_back(mouse_pos_in_canvas); - if (!ImGui::GetIO().MouseDown[0]) - adding_line = adding_preview = false; - } - if (ImGui::GetIO().MouseClicked[1] && !points.empty()) - { - adding_line = false; - points.pop_back(); - points.pop_back(); - } - } - draw_list->PushClipRect(ImVec4(canvas_pos.x, canvas_pos.y, canvas_pos.x+canvas_size.x, canvas_pos.y+canvas_size.y)); // clip lines within the canvas (if we resize it, etc.) - for (int i = 0; i < points.Size - 1; i += 2) - draw_list->AddLine(ImVec2(canvas_pos.x + points[i].x, canvas_pos.y + points[i].y), ImVec2(canvas_pos.x + points[i+1].x, canvas_pos.y + points[i+1].y), 0xFF00FFFF); - draw_list->PopClipRect(); - if (adding_preview) - points.pop_back(); - ImGui::End(); -} - -// For the console example, here we are using a more C++ like approach of declaring a class to hold the data and the functions. -struct ExampleAppConsole -{ - char InputBuf[256]; - ImVector Items; - bool ScrollToBottom; - ImVector History; - int HistoryPos; // -1: new line, 0..History.Size-1 browsing history. - ImVector Commands; - - ExampleAppConsole() - { - ClearLog(); - HistoryPos = -1; - Commands.push_back("HELP"); - Commands.push_back("HISTORY"); - Commands.push_back("CLEAR"); - Commands.push_back("CLASSIFY"); // "classify" is here to provide an example of "C"+[tab] completing to "CL" and displaying matches. - } - ~ExampleAppConsole() - { - ClearLog(); - for (int i = 0; i < Items.Size; i++) - free(History[i]); - } - - void ClearLog() - { - for (int i = 0; i < Items.Size; i++) - free(Items[i]); - Items.clear(); - ScrollToBottom = true; - } - - void AddLog(const char* fmt, ...) - { - char buf[1024]; - va_list args; - va_start(args, fmt); - vsnprintf(buf, IM_ARRAYSIZE(buf), fmt, args); - buf[IM_ARRAYSIZE(buf)-1] = 0; - va_end(args); - Items.push_back(strdup(buf)); - ScrollToBottom = true; - } - - void Run(const char* title, bool* opened) - { - ImGui::SetNextWindowSize(ImVec2(520,600), ImGuiSetCond_FirstUseEver); - if (!ImGui::Begin(title, opened)) - { - ImGui::End(); - return; - } - - ImGui::TextWrapped("This example implements a console with basic coloring, completion and history. A more elaborate implementation may want to store entries along with extra data such as timestamp, emitter, etc."); - ImGui::TextWrapped("Enter 'HELP' for help, press TAB to use text completion."); - - // TODO: display items starting from the bottom - - if (ImGui::SmallButton("Add Dummy Text")) { AddLog("%d some text", Items.Size); AddLog("some more text"); AddLog("display very important message here!"); } ImGui::SameLine(); - if (ImGui::SmallButton("Add Dummy Error")) AddLog("[error] something went wrong"); ImGui::SameLine(); - if (ImGui::SmallButton("Clear")) ClearLog(); - //static float t = 0.0f; if (ImGui::GetTime() - t > 0.02f) { t = ImGui::GetTime(); AddLog("Spam %f", t); } - - ImGui::Separator(); - - ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0,0)); - static ImGuiTextFilter filter; - filter.Draw("Filter (\"incl,-excl\") (\"error\")", 180); - ImGui::PopStyleVar(); - ImGui::Separator(); - - // Display every line as a separate entry so we can change their color or add custom widgets. If you only want raw text you can use ImGui::TextUnformatted(log.begin(), log.end()); - // NB- if you have thousands of entries this approach may be too inefficient. You can seek and display only the lines that are visible - CalcListClipping() is a helper to compute this information. - // If your items are of variable size you may want to implement code similar to what CalcListClipping() does. Or split your data into fixed height items to allow random-seeking into your list. - ImGui::BeginChild("ScrollingRegion", ImVec2(0,-ImGui::GetItemsLineHeightWithSpacing())); - if (ImGui::BeginPopupContextWindow()) - { - if (ImGui::Selectable("Clear")) ClearLog(); - ImGui::EndPopup(); - } - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(4,1)); // Tighten spacing - for (int i = 0; i < Items.Size; i++) - { - const char* item = Items[i]; - if (!filter.PassFilter(item)) - continue; - ImVec4 col = ImColor(255,255,255); // A better implementation may store a type per-item. For the sample let's just parse the text. - if (strstr(item, "[error]")) col = ImColor(255,100,100); - else if (strncmp(item, "# ", 2) == 0) col = ImColor(255,200,150); - ImGui::PushStyleColor(ImGuiCol_Text, col); - ImGui::TextUnformatted(item); - ImGui::PopStyleColor(); - } - if (ScrollToBottom) - ImGui::SetScrollHere(); - ScrollToBottom = false; - ImGui::PopStyleVar(); - ImGui::EndChild(); - ImGui::Separator(); - - // Command-line - if (ImGui::InputText("Input", InputBuf, IM_ARRAYSIZE(InputBuf), ImGuiInputTextFlags_EnterReturnsTrue|ImGuiInputTextFlags_CallbackCompletion|ImGuiInputTextFlags_CallbackHistory, &TextEditCallbackStub, (void*)this)) - { - char* input_end = InputBuf+strlen(InputBuf); - while (input_end > InputBuf && input_end[-1] == ' ') input_end--; *input_end = 0; - if (InputBuf[0]) - ExecCommand(InputBuf); - strcpy(InputBuf, ""); - } - - // Demonstrate keeping auto focus on the input box - if (ImGui::IsItemHovered() || (ImGui::IsRootWindowOrAnyChildFocused() && !ImGui::IsAnyItemActive() && !ImGui::IsMouseClicked(0))) - ImGui::SetKeyboardFocusHere(-1); // Auto focus - - ImGui::End(); - } - - static int Stricmp(const char* str1, const char* str2) { int d; while ((d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; } return d; } - static int Strnicmp(const char* str1, const char* str2, int count) { int d = 0; while (count > 0 && (d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; count--; } return d; } - - void ExecCommand(const char* command_line) - { - AddLog("# %s\n", command_line); - - // Insert into history. First find match and delete it so it can be pushed to the back. This isn't trying to be smart or optimal. - HistoryPos = -1; - for (int i = History.Size-1; i >= 0; i--) - if (Stricmp(History[i], command_line) == 0) - { - free(History[i]); - History.erase(History.begin() + i); - break; - } - History.push_back(strdup(command_line)); - - // Process command - if (Stricmp(command_line, "CLEAR") == 0) - { - ClearLog(); - } - else if (Stricmp(command_line, "HELP") == 0) - { - AddLog("Commands:"); - for (int i = 0; i < Commands.Size; i++) - AddLog("- %s", Commands[i]); - } - else if (Stricmp(command_line, "HISTORY") == 0) - { - for (int i = History.Size >= 10 ? History.Size - 10 : 0; i < History.Size; i++) - AddLog("%3d: %s\n", i, History[i]); - } - else - { - AddLog("Unknown command: '%s'\n", command_line); - } - } - - static int TextEditCallbackStub(ImGuiTextEditCallbackData* data) // In C++11 you are better off using lambdas for this sort of forwarding callbacks - { - ExampleAppConsole* console = (ExampleAppConsole*)data->UserData; - return console->TextEditCallback(data); - } - - int TextEditCallback(ImGuiTextEditCallbackData* data) - { - //AddLog("cursor: %d, selection: %d-%d", data->CursorPos, data->SelectionStart, data->SelectionEnd); - switch (data->EventFlag) - { - case ImGuiInputTextFlags_CallbackCompletion: - { - // Example of TEXT COMPLETION - - // Locate beginning of current word - const char* word_end = data->Buf + data->CursorPos; - const char* word_start = word_end; - while (word_start > data->Buf) - { - const char c = word_start[-1]; - if (c == ' ' || c == '\t' || c == ',' || c == ';') - break; - word_start--; - } - - // Build a list of candidates - ImVector candidates; - for (int i = 0; i < Commands.Size; i++) - if (Strnicmp(Commands[i], word_start, (int)(word_end-word_start)) == 0) - candidates.push_back(Commands[i]); - - if (candidates.Size == 0) - { - // No match - AddLog("No match for \"%.*s\"!\n", word_end-word_start, word_start); - } - else if (candidates.Size == 1) - { - // Single match. Delete the beginning of the word and replace it entirely so we've got nice casing - data->DeleteChars((int)(word_start-data->Buf), (int)(word_end-word_start)); - data->InsertChars(data->CursorPos, candidates[0]); - data->InsertChars(data->CursorPos, " "); - } - else - { - // Multiple matches. Complete as much as we can, so inputing "C" will complete to "CL" and display "CLEAR" and "CLASSIFY" - int match_len = (int)(word_end - word_start); - for (;;) - { - int c = 0; - bool all_candidates_matches = true; - for (int i = 0; i < candidates.Size && all_candidates_matches; i++) - if (i == 0) - c = toupper(candidates[i][match_len]); - else if (c != toupper(candidates[i][match_len])) - all_candidates_matches = false; - if (!all_candidates_matches) - break; - match_len++; - } - - if (match_len > 0) - { - data->DeleteChars((int)(word_start - data->Buf), (int)(word_end-word_start)); - data->InsertChars(data->CursorPos, candidates[0], candidates[0] + match_len); - } - - // List matches - AddLog("Possible matches:\n"); - for (int i = 0; i < candidates.Size; i++) - AddLog("- %s\n", candidates[i]); - } - - break; - } - case ImGuiInputTextFlags_CallbackHistory: - { - // Example of HISTORY - const int prev_history_pos = HistoryPos; - if (data->EventKey == ImGuiKey_UpArrow) - { - if (HistoryPos == -1) - HistoryPos = History.Size - 1; - else if (HistoryPos > 0) - HistoryPos--; - } - else if (data->EventKey == ImGuiKey_DownArrow) - { - if (HistoryPos != -1) - if (++HistoryPos >= History.Size) - HistoryPos = -1; - } - - // A better implementation would preserve the data on the current input line along with cursor position. - if (prev_history_pos != HistoryPos) - { - snprintf(data->Buf, data->BufSize, "%s", (HistoryPos >= 0) ? History[HistoryPos] : ""); - data->BufDirty = true; - data->CursorPos = data->SelectionStart = data->SelectionEnd = (int)strlen(data->Buf); - } - } - } - return 0; - } -}; - -static void ShowExampleAppConsole(bool* opened) -{ - static ExampleAppConsole console; - console.Run("Example: Console", opened); -} - -static void ShowExampleAppLayout(bool* opened) -{ - ImGui::SetNextWindowSize(ImVec2(500, 440), ImGuiSetCond_FirstUseEver); - if (ImGui::Begin("Example: Layout", opened, ImGuiWindowFlags_MenuBar)) - { - if (ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("File")) - { - if (ImGui::MenuItem("Close")) *opened = false; - ImGui::EndMenu(); - } - ImGui::EndMenuBar(); - } - - // left - static int selected = 0; - ImGui::BeginChild("left pane", ImVec2(150, 0), true); - for (int i = 0; i < 100; i++) - { - char label[128]; - sprintf(label, "MyObject %d", i); - if (ImGui::Selectable(label, selected == i)) - selected = i; - } - ImGui::EndChild(); - ImGui::SameLine(); - - // right - ImGui::BeginGroup(); - ImGui::BeginChild("item view", ImVec2(0, -ImGui::GetItemsLineHeightWithSpacing())); // Leave room for 1 line below us - ImGui::Text("MyObject: %d", selected); - ImGui::Separator(); - ImGui::TextWrapped("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "); - ImGui::EndChild(); - ImGui::BeginChild("buttons"); - if (ImGui::Button("Revert")) {} - ImGui::SameLine(); - if (ImGui::Button("Save")) {} - ImGui::EndChild(); - ImGui::EndGroup(); - } - ImGui::End(); -} - -static void ShowExampleAppLongText(bool* opened) -{ - ImGui::SetNextWindowSize(ImVec2(520,600), ImGuiSetCond_FirstUseEver); - if (!ImGui::Begin("Example: Long text display", opened)) - { - ImGui::End(); - return; - } - - static int test_type = 0; - static ImGuiTextBuffer log; - static int lines = 0; - ImGui::Text("Printing unusually long amount of text."); - ImGui::Combo("Test type", &test_type, "Single call to TextUnformatted()\0Multiple calls to Text(), clipped manually\0Multiple calls to Text(), not clipped"); - ImGui::Text("Buffer contents: %d lines, %d bytes", lines, log.size()); - if (ImGui::Button("Clear")) { log.clear(); lines = 0; } - ImGui::SameLine(); - if (ImGui::Button("Add 1000 lines")) - { - for (int i = 0; i < 1000; i++) - log.append("%i The quick brown fox jumps over the lazy dog\n", lines+i); - lines += 1000; - } - ImGui::BeginChild("Log"); - switch (test_type) - { - case 0: - // Single call to TextUnformatted() with a big buffer - ImGui::TextUnformatted(log.begin(), log.end()); - break; - case 1: - // Multiple calls to Text(), manually coarsely clipped - demonstrate how to use the CalcListClipping() helper. - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0,0)); - int display_start, display_end; - ImGui::CalcListClipping(lines, ImGui::GetTextLineHeight(), &display_start, &display_end); - ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (display_start) * ImGui::GetTextLineHeight()); - for (int i = display_start; i < display_end; i++) - ImGui::Text("%i The quick brown fox jumps over the lazy dog\n", i); - ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (lines - display_end) * ImGui::GetTextLineHeight()); - ImGui::PopStyleVar(); - break; - case 2: - // Multiple calls to Text(), not clipped (slow) - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0,0)); - for (int i = 0; i < lines; i++) - ImGui::Text("%i The quick brown fox jumps over the lazy dog\n", i); - ImGui::PopStyleVar(); - break; - } - ImGui::EndChild(); - ImGui::End(); -} - -// End of Demo code -#else - -void ImGui::ShowTestWindow(bool*) {} -void ImGui::ShowUserGuide(bool*) {} -void ImGui::ShowStyleEditor(bool*) {} - -#endif diff --git a/samples/D3D12/external/imgui/imgui_draw.cpp b/samples/D3D12/external/imgui/imgui_draw.cpp deleted file mode 100644 index d4d8ccb..0000000 --- a/samples/D3D12/external/imgui/imgui_draw.cpp +++ /dev/null @@ -1,2108 +0,0 @@ -// ImGui library v1.44 -// Drawing and font code - -// Contains implementation for -// - ImDrawList -// - ImDrawData -// - ImFontAtlas -// - ImFont -// - Default font data - -#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "imgui.h" -#define IMGUI_DEFINE_MATH_OPERATORS -#include "imgui_internal.h" - -#include // vsnprintf, sscanf, printf -#include // new (ptr) -#ifndef alloca -#if defined(_MSC_VER) || defined(__MINGW32__) -#include // alloca -#else -#include // alloca -#endif -#endif - -#ifdef _MSC_VER -#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) -#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen -#define snprintf _snprintf -#endif - -//------------------------------------------------------------------------- -// STB libraries implementation -//------------------------------------------------------------------------- - -//#define IMGUI_STB_NAMESPACE ImGuiStb -//#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION -//#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION - -#ifdef IMGUI_STB_NAMESPACE -namespace IMGUI_STB_NAMESPACE -{ -#endif - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunused-function" -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#endif - -#define STBRP_ASSERT(x) IM_ASSERT(x) -#ifndef IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION -#define STBRP_STATIC -#define STB_RECT_PACK_IMPLEMENTATION -#endif -#include "stb_rect_pack.h" - -#define STBTT_malloc(x,u) ((void)(u), ImGui::MemAlloc(x)) -#define STBTT_free(x,u) ((void)(u), ImGui::MemFree(x)) -#define STBTT_assert(x) IM_ASSERT(x) -#ifndef IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION -#define STBTT_STATIC -#define STB_TRUETYPE_IMPLEMENTATION -#else -#define STBTT_DEF extern -#endif -#include "stb_truetype.h" - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#ifdef IMGUI_STB_NAMESPACE -} // namespace ImGuiStb -using namespace IMGUI_STB_NAMESPACE; -#endif - -//----------------------------------------------------------------------------- -// ImDrawList -//----------------------------------------------------------------------------- - -static ImVec4 GNullClipRect(-9999.0f,-9999.0f, +9999.0f, +9999.0f); - -void ImDrawList::Clear() -{ - CmdBuffer.resize(0); - IdxBuffer.resize(0); - VtxBuffer.resize(0); - _VtxCurrentIdx = 0; - _VtxWritePtr = NULL; - _IdxWritePtr = NULL; - _ClipRectStack.resize(0); - _TextureIdStack.resize(0); - _Path.resize(0); - _ChannelCurrent = 0; - // NB: Do not clear channels so our allocations are re-used after the first frame. -} - -void ImDrawList::ClearFreeMemory() -{ - CmdBuffer.clear(); - IdxBuffer.clear(); - VtxBuffer.clear(); - _VtxCurrentIdx = 0; - _VtxWritePtr = NULL; - _IdxWritePtr = NULL; - _ClipRectStack.clear(); - _TextureIdStack.clear(); - _Path.clear(); - _ChannelCurrent = 0; - for (int i = 0; i < _Channels.Size; i++) - { - if (i == 0) memset(&_Channels[0], 0, sizeof(_Channels[0])); // channel 0 is a copy of CmdBuffer/IdxBuffer, don't destruct again - _Channels[i].CmdBuffer.clear(); - _Channels[i].IdxBuffer.clear(); - } - _Channels.clear(); -} - -void ImDrawList::AddDrawCmd() -{ - ImDrawCmd draw_cmd; - draw_cmd.ElemCount = 0; - draw_cmd.ClipRect = _ClipRectStack.Size ? _ClipRectStack.back() : GNullClipRect; - draw_cmd.TextureId = _TextureIdStack.Size ? _TextureIdStack.back() : NULL; - draw_cmd.UserCallback = NULL; - draw_cmd.UserCallbackData = NULL; - - IM_ASSERT(draw_cmd.ClipRect.x <= draw_cmd.ClipRect.z && draw_cmd.ClipRect.y <= draw_cmd.ClipRect.w); - CmdBuffer.push_back(draw_cmd); -} - -void ImDrawList::AddCallback(ImDrawCallback callback, void* callback_data) -{ - ImDrawCmd* current_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; - if (!current_cmd || current_cmd->ElemCount != 0 || current_cmd->UserCallback != NULL) - { - AddDrawCmd(); - current_cmd = &CmdBuffer.back(); - } - current_cmd->UserCallback = callback; - current_cmd->UserCallbackData = callback_data; - - // Force a new command after us (we function this way so that the most common calls AddLine, AddRect, etc. always have a command to add to without doing any check). - AddDrawCmd(); -} - -void ImDrawList::ChannelsSplit(int channel_count) -{ - IM_ASSERT(_ChannelCurrent == 0); - int old_channels_count = _Channels.Size; - if (old_channels_count < channel_count) - _Channels.resize(channel_count); - for (int i = 0; i < channel_count; i++) - if (i >= old_channels_count) - new(&_Channels[i]) ImDrawChannel(); - else - _Channels[i].CmdBuffer.resize(0), _Channels[i].IdxBuffer.resize(0); -} - -void ImDrawList::ChannelsMerge(int channel_count) -{ - // Note that we never use or rely on channels.Size because it is merely a buffer that we never shrink back to 0 to keep all sub-buffers ready for use. - // This is why this function takes 'channel_count' as a parameter of how many channels to merge (the user knows) - if (channel_count < 2) - return; - - ChannelsSetCurrent(0); - if (CmdBuffer.Size && CmdBuffer.back().ElemCount == 0) - CmdBuffer.pop_back(); - - int new_cmd_buffer_count = 0, new_idx_buffer_count = 0; - for (int i = 1; i < channel_count; i++) - { - ImDrawChannel& ch = _Channels[i]; - if (ch.CmdBuffer.Size && ch.CmdBuffer.back().ElemCount == 0) - ch.CmdBuffer.pop_back(); - new_cmd_buffer_count += ch.CmdBuffer.Size; - new_idx_buffer_count += ch.IdxBuffer.Size; - } - CmdBuffer.resize(CmdBuffer.Size + new_cmd_buffer_count); - IdxBuffer.resize(IdxBuffer.Size + new_idx_buffer_count); - - ImDrawCmd* cmd_write = CmdBuffer.Data + CmdBuffer.Size - new_cmd_buffer_count; - _IdxWritePtr = IdxBuffer.Data + IdxBuffer.Size - new_idx_buffer_count; - for (int i = 1; i < channel_count; i++) - { - ImDrawChannel& ch = _Channels[i]; - if (int sz = ch.CmdBuffer.Size) { memcpy(cmd_write, ch.CmdBuffer.Data, sz * sizeof(ImDrawCmd)); cmd_write += sz; } - if (int sz = ch.IdxBuffer.Size) { memcpy(_IdxWritePtr, ch.IdxBuffer.Data, sz * sizeof(ImDrawIdx)); _IdxWritePtr += sz; } - } - AddDrawCmd(); -} - -void ImDrawList::ChannelsSetCurrent(int idx) -{ - if (_ChannelCurrent == idx) return; - memcpy(&_Channels.Data[_ChannelCurrent].CmdBuffer, &CmdBuffer, sizeof(CmdBuffer)); - memcpy(&_Channels.Data[_ChannelCurrent].IdxBuffer, &IdxBuffer, sizeof(IdxBuffer)); - _ChannelCurrent = idx; - memcpy(&CmdBuffer, &_Channels.Data[_ChannelCurrent].CmdBuffer, sizeof(CmdBuffer)); - memcpy(&IdxBuffer, &_Channels.Data[_ChannelCurrent].IdxBuffer, sizeof(IdxBuffer)); - _IdxWritePtr = IdxBuffer.Data + IdxBuffer.Size; -} - -void ImDrawList::UpdateClipRect() -{ - ImDrawCmd* current_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; - if (!current_cmd || (current_cmd->ElemCount != 0) || current_cmd->UserCallback != NULL) - { - AddDrawCmd(); - } - else - { - ImVec4 current_clip_rect = _ClipRectStack.Size ? _ClipRectStack.back() : GNullClipRect; - if (CmdBuffer.Size >= 2 && ImLengthSqr(CmdBuffer.Data[CmdBuffer.Size-2].ClipRect - current_clip_rect) < 0.00001f) - CmdBuffer.pop_back(); - else - current_cmd->ClipRect = current_clip_rect; - } -} - -// Scissoring. The values in clip_rect are x1, y1, x2, y2. -void ImDrawList::PushClipRect(const ImVec4& clip_rect) -{ - _ClipRectStack.push_back(clip_rect); - UpdateClipRect(); -} - -void ImDrawList::PushClipRectFullScreen() -{ - PushClipRect(GNullClipRect); - - // This would be more correct but we're not supposed to access ImGuiState from here? - //ImGuiState& g = *GImGui; - //PushClipRect(GetVisibleRect()); -} - -void ImDrawList::PopClipRect() -{ - IM_ASSERT(_ClipRectStack.Size > 0); - _ClipRectStack.pop_back(); - UpdateClipRect(); -} - -void ImDrawList::UpdateTextureID() -{ - ImDrawCmd* current_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; - const ImTextureID texture_id = _TextureIdStack.Size ? _TextureIdStack.back() : NULL; - if (!current_cmd || (current_cmd->ElemCount != 0 && current_cmd->TextureId != texture_id) || current_cmd->UserCallback != NULL) - AddDrawCmd(); - else - current_cmd->TextureId = texture_id; -} - -void ImDrawList::PushTextureID(const ImTextureID& texture_id) -{ - _TextureIdStack.push_back(texture_id); - UpdateTextureID(); -} - -void ImDrawList::PopTextureID() -{ - IM_ASSERT(_TextureIdStack.Size > 0); - _TextureIdStack.pop_back(); - UpdateTextureID(); -} - -// NB: this can be called with negative count for removing primitives (as long as the result does not underflow) -void ImDrawList::PrimReserve(int idx_count, int vtx_count) -{ - ImDrawCmd& draw_cmd = CmdBuffer.Data[CmdBuffer.Size-1]; - draw_cmd.ElemCount += idx_count; - - int vtx_buffer_size = VtxBuffer.Size; - VtxBuffer.resize(vtx_buffer_size + vtx_count); - _VtxWritePtr = VtxBuffer.Data + vtx_buffer_size; - - int idx_buffer_size = IdxBuffer.Size; - IdxBuffer.resize(idx_buffer_size + idx_count); - _IdxWritePtr = IdxBuffer.Data + idx_buffer_size; -} - -void ImDrawList::PrimRect(const ImVec2& a, const ImVec2& c, ImU32 col) -{ - const ImVec2 uv = GImGui->FontTexUvWhitePixel; - const ImVec2 b(c.x, a.y); - const ImVec2 d(a.x, c.y); - _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+2); - _IdxWritePtr[3] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[4] = (ImDrawIdx)(_VtxCurrentIdx+2); _IdxWritePtr[5] = (ImDrawIdx)(_VtxCurrentIdx+3); - _VtxWritePtr[0].pos = a; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; - _VtxWritePtr[1].pos = b; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; - _VtxWritePtr[2].pos = c; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; - _VtxWritePtr[3].pos = d; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col; - _VtxWritePtr += 4; - _VtxCurrentIdx += 4; - _IdxWritePtr += 6; -} - -void ImDrawList::PrimRectUV(const ImVec2& a, const ImVec2& c, const ImVec2& uv_a, const ImVec2& uv_c, ImU32 col) -{ - const ImVec2 b(c.x, a.y); - const ImVec2 d(a.x, c.y); - const ImVec2 uv_b(uv_c.x, uv_a.y); - const ImVec2 uv_d(uv_a.x, uv_c.y); - _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+2); - _IdxWritePtr[3] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[4] = (ImDrawIdx)(_VtxCurrentIdx+2); _IdxWritePtr[5] = (ImDrawIdx)(_VtxCurrentIdx+3); - _VtxWritePtr[0].pos = a; _VtxWritePtr[0].uv = uv_a; _VtxWritePtr[0].col = col; - _VtxWritePtr[1].pos = b; _VtxWritePtr[1].uv = uv_b; _VtxWritePtr[1].col = col; - _VtxWritePtr[2].pos = c; _VtxWritePtr[2].uv = uv_c; _VtxWritePtr[2].col = col; - _VtxWritePtr[3].pos = d; _VtxWritePtr[3].uv = uv_d; _VtxWritePtr[3].col = col; - _VtxWritePtr += 4; - _VtxCurrentIdx += 4; - _IdxWritePtr += 6; -} - -// TODO: Thickness anti-aliased lines cap are missing their AA fringe. -void ImDrawList::AddPolyline(const ImVec2* points, const int points_count, ImU32 col, bool closed, float thickness, bool anti_aliased) -{ - if (points_count < 2) - return; - - const ImVec2 uv = GImGui->FontTexUvWhitePixel; - anti_aliased &= GImGui->Style.AntiAliasedLines; - //if (ImGui::GetIO().KeyCtrl) anti_aliased = false; - - int count = points_count; - if (!closed) - count = points_count-1; - - const bool thick_line = thickness > 1.0f; - if (anti_aliased) - { - // Anti-aliased stroke - const float AA_SIZE = 1.0f; - const ImU32 col_trans = col & 0x00ffffff; - - const int idx_count = thick_line ? count*18 : count*12; - const int vtx_count = thick_line ? points_count*4 : points_count*3; - PrimReserve(idx_count, vtx_count); - - // Temporary buffer - ImVec2* temp_normals = (ImVec2*)alloca(points_count * (thick_line ? 5 : 3) * sizeof(ImVec2)); - ImVec2* temp_points = temp_normals + points_count; - - for (int i1 = 0; i1 < count; i1++) - { - const int i2 = (i1+1) == points_count ? 0 : i1+1; - ImVec2 diff = points[i2] - points[i1]; - diff *= ImInvLength(diff, 1.0f); - temp_normals[i1].x = diff.y; - temp_normals[i1].y = -diff.x; - } - if (!closed) - temp_normals[points_count-1] = temp_normals[points_count-2]; - - if (!thick_line) - { - if (!closed) - { - temp_points[0] = points[0] + temp_normals[0] * AA_SIZE; - temp_points[1] = points[0] - temp_normals[0] * AA_SIZE; - temp_points[(points_count-1)*2+0] = points[points_count-1] + temp_normals[points_count-1] * AA_SIZE; - temp_points[(points_count-1)*2+1] = points[points_count-1] - temp_normals[points_count-1] * AA_SIZE; - } - - // FIXME-OPT: Merge the different loops, possibly remove the temporary buffer. - unsigned int idx1 = _VtxCurrentIdx; - for (int i1 = 0; i1 < count; i1++) - { - const int i2 = (i1+1) == points_count ? 0 : i1+1; - unsigned int idx2 = (i1+1) == points_count ? _VtxCurrentIdx : idx1+3; - - // Average normals - ImVec2 dm = (temp_normals[i1] + temp_normals[i2]) * 0.5f; - float dmr2 = dm.x*dm.x + dm.y*dm.y; - if (dmr2 > 0.000001f) - { - float scale = 1.0f / dmr2; - if (scale > 100.0f) scale = 100.0f; - dm *= scale; - } - dm *= AA_SIZE; - temp_points[i2*2+0] = points[i2] + dm; - temp_points[i2*2+1] = points[i2] - dm; - - // Add indexes - _IdxWritePtr[0] = (ImDrawIdx)(idx2+0); _IdxWritePtr[1] = (ImDrawIdx)(idx1+0); _IdxWritePtr[2] = (ImDrawIdx)(idx1+2); - _IdxWritePtr[3] = (ImDrawIdx)(idx1+2); _IdxWritePtr[4] = (ImDrawIdx)(idx2+2); _IdxWritePtr[5] = (ImDrawIdx)(idx2+0); - _IdxWritePtr[6] = (ImDrawIdx)(idx2+1); _IdxWritePtr[7] = (ImDrawIdx)(idx1+1); _IdxWritePtr[8] = (ImDrawIdx)(idx1+0); - _IdxWritePtr[9] = (ImDrawIdx)(idx1+0); _IdxWritePtr[10]= (ImDrawIdx)(idx2+0); _IdxWritePtr[11]= (ImDrawIdx)(idx2+1); - _IdxWritePtr += 12; - - idx1 = idx2; - } - - // Add vertexes - for (int i = 0; i < points_count; i++) - { - _VtxWritePtr[0].pos = points[i]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; - _VtxWritePtr[1].pos = temp_points[i*2+0]; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col_trans; - _VtxWritePtr[2].pos = temp_points[i*2+1]; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col_trans; - _VtxWritePtr += 3; - } - } - else - { - const float half_inner_thickness = (thickness - AA_SIZE) * 0.5f; - if (!closed) - { - temp_points[0] = points[0] + temp_normals[0] * (half_inner_thickness + AA_SIZE); - temp_points[1] = points[0] + temp_normals[0] * (half_inner_thickness); - temp_points[2] = points[0] - temp_normals[0] * (half_inner_thickness); - temp_points[3] = points[0] - temp_normals[0] * (half_inner_thickness + AA_SIZE); - temp_points[(points_count-1)*4+0] = points[points_count-1] + temp_normals[points_count-1] * (half_inner_thickness + AA_SIZE); - temp_points[(points_count-1)*4+1] = points[points_count-1] + temp_normals[points_count-1] * (half_inner_thickness); - temp_points[(points_count-1)*4+2] = points[points_count-1] - temp_normals[points_count-1] * (half_inner_thickness); - temp_points[(points_count-1)*4+3] = points[points_count-1] - temp_normals[points_count-1] * (half_inner_thickness + AA_SIZE); - } - - // FIXME-OPT: Merge the different loops, possibly remove the temporary buffer. - unsigned int idx1 = _VtxCurrentIdx; - for (int i1 = 0; i1 < count; i1++) - { - const int i2 = (i1+1) == points_count ? 0 : i1+1; - unsigned int idx2 = (i1+1) == points_count ? _VtxCurrentIdx : idx1+4; - - // Average normals - ImVec2 dm = (temp_normals[i1] + temp_normals[i2]) * 0.5f; - float dmr2 = dm.x*dm.x + dm.y*dm.y; - if (dmr2 > 0.000001f) - { - float scale = 1.0f / dmr2; - if (scale > 100.0f) scale = 100.0f; - dm *= scale; - } - ImVec2 dm_out = dm * (half_inner_thickness + AA_SIZE); - ImVec2 dm_in = dm * half_inner_thickness; - temp_points[i2*4+0] = points[i2] + dm_out; - temp_points[i2*4+1] = points[i2] + dm_in; - temp_points[i2*4+2] = points[i2] - dm_in; - temp_points[i2*4+3] = points[i2] - dm_out; - - // Add indexes - _IdxWritePtr[0] = (ImDrawIdx)(idx2+1); _IdxWritePtr[1] = (ImDrawIdx)(idx1+1); _IdxWritePtr[2] = (ImDrawIdx)(idx1+2); - _IdxWritePtr[3] = (ImDrawIdx)(idx1+2); _IdxWritePtr[4] = (ImDrawIdx)(idx2+2); _IdxWritePtr[5] = (ImDrawIdx)(idx2+1); - _IdxWritePtr[6] = (ImDrawIdx)(idx2+1); _IdxWritePtr[7] = (ImDrawIdx)(idx1+1); _IdxWritePtr[8] = (ImDrawIdx)(idx1+0); - _IdxWritePtr[9] = (ImDrawIdx)(idx1+0); _IdxWritePtr[10] = (ImDrawIdx)(idx2+0); _IdxWritePtr[11] = (ImDrawIdx)(idx2+1); - _IdxWritePtr[12] = (ImDrawIdx)(idx2+2); _IdxWritePtr[13] = (ImDrawIdx)(idx1+2); _IdxWritePtr[14] = (ImDrawIdx)(idx1+3); - _IdxWritePtr[15] = (ImDrawIdx)(idx1+3); _IdxWritePtr[16] = (ImDrawIdx)(idx2+3); _IdxWritePtr[17] = (ImDrawIdx)(idx2+2); - _IdxWritePtr += 18; - - idx1 = idx2; - } - - // Add vertexes - for (int i = 0; i < points_count; i++) - { - _VtxWritePtr[0].pos = temp_points[i*4+0]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col_trans; - _VtxWritePtr[1].pos = temp_points[i*4+1]; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; - _VtxWritePtr[2].pos = temp_points[i*4+2]; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; - _VtxWritePtr[3].pos = temp_points[i*4+3]; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col_trans; - _VtxWritePtr += 4; - } - } - _VtxCurrentIdx += (ImDrawIdx)vtx_count; - } - else - { - // Non Anti-aliased Stroke - const int idx_count = count*6; - const int vtx_count = count*4; // FIXME-OPT: Not sharing edges - PrimReserve(idx_count, vtx_count); - - for (int i1 = 0; i1 < count; i1++) - { - const int i2 = (i1+1) == points_count ? 0 : i1+1; - const ImVec2& p1 = points[i1]; - const ImVec2& p2 = points[i2]; - ImVec2 diff = p2 - p1; - diff *= ImInvLength(diff, 1.0f); - - const float dx = diff.x * (thickness * 0.5f); - const float dy = diff.y * (thickness * 0.5f); - _VtxWritePtr[0].pos.x = p1.x + dy; _VtxWritePtr[0].pos.y = p1.y - dx; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; - _VtxWritePtr[1].pos.x = p2.x + dy; _VtxWritePtr[1].pos.y = p2.y - dx; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; - _VtxWritePtr[2].pos.x = p2.x - dy; _VtxWritePtr[2].pos.y = p2.y + dx; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; - _VtxWritePtr[3].pos.x = p1.x - dy; _VtxWritePtr[3].pos.y = p1.y + dx; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col; - _VtxWritePtr += 4; - - _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+2); - _IdxWritePtr[3] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[4] = (ImDrawIdx)(_VtxCurrentIdx+2); _IdxWritePtr[5] = (ImDrawIdx)(_VtxCurrentIdx+3); - _IdxWritePtr += 6; - _VtxCurrentIdx += 4; - } - } -} - -void ImDrawList::AddConvexPolyFilled(const ImVec2* points, const int points_count, ImU32 col, bool anti_aliased) -{ - const ImVec2 uv = GImGui->FontTexUvWhitePixel; - anti_aliased &= GImGui->Style.AntiAliasedShapes; - //if (ImGui::GetIO().KeyCtrl) anti_aliased = false; - - if (anti_aliased) - { - // Anti-aliased Fill - const float AA_SIZE = 1.0f; - const ImU32 col_trans = col & 0x00ffffff; - const int idx_count = (points_count-2)*3 + points_count*6; - const int vtx_count = (points_count*2); - PrimReserve(idx_count, vtx_count); - - // Add indexes for fill - unsigned int vtx_inner_idx = _VtxCurrentIdx; - unsigned int vtx_outer_idx = _VtxCurrentIdx+1; - for (int i = 2; i < points_count; i++) - { - _IdxWritePtr[0] = (ImDrawIdx)(vtx_inner_idx); _IdxWritePtr[1] = (ImDrawIdx)(vtx_inner_idx+((i-1)<<1)); _IdxWritePtr[2] = (ImDrawIdx)(vtx_inner_idx+(i<<1)); - _IdxWritePtr += 3; - } - - // Compute normals - ImVec2* temp_normals = (ImVec2*)alloca(points_count * sizeof(ImVec2)); - for (int i0 = points_count-1, i1 = 0; i1 < points_count; i0 = i1++) - { - const ImVec2& p0 = points[i0]; - const ImVec2& p1 = points[i1]; - ImVec2 diff = p1 - p0; - diff *= ImInvLength(diff, 1.0f); - temp_normals[i0].x = diff.y; - temp_normals[i0].y = -diff.x; - } - - for (int i0 = points_count-1, i1 = 0; i1 < points_count; i0 = i1++) - { - // Average normals - const ImVec2& n0 = temp_normals[i0]; - const ImVec2& n1 = temp_normals[i1]; - ImVec2 dm = (n0 + n1) * 0.5f; - float dmr2 = dm.x*dm.x + dm.y*dm.y; - if (dmr2 > 0.000001f) - { - float scale = 1.0f / dmr2; - if (scale > 100.0f) scale = 100.0f; - dm *= scale; - } - dm *= AA_SIZE * 0.5f; - - // Add vertices - _VtxWritePtr[0].pos = (points[i1] - dm); _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; // Inner - _VtxWritePtr[1].pos = (points[i1] + dm); _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col_trans; // Outer - _VtxWritePtr += 2; - - // Add indexes for fringes - _IdxWritePtr[0] = (ImDrawIdx)(vtx_inner_idx+(i1<<1)); _IdxWritePtr[1] = (ImDrawIdx)(vtx_inner_idx+(i0<<1)); _IdxWritePtr[2] = (ImDrawIdx)(vtx_outer_idx+(i0<<1)); - _IdxWritePtr[3] = (ImDrawIdx)(vtx_outer_idx+(i0<<1)); _IdxWritePtr[4] = (ImDrawIdx)(vtx_outer_idx+(i1<<1)); _IdxWritePtr[5] = (ImDrawIdx)(vtx_inner_idx+(i1<<1)); - _IdxWritePtr += 6; - } - _VtxCurrentIdx += (ImDrawIdx)vtx_count; - } - else - { - // Non Anti-aliased Fill - const int idx_count = (points_count-2)*3; - const int vtx_count = points_count; - PrimReserve(idx_count, vtx_count); - for (int i = 0; i < vtx_count; i++) - { - _VtxWritePtr[0].pos = points[i]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; - _VtxWritePtr++; - } - for (int i = 2; i < points_count; i++) - { - _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+i-1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+i); - _IdxWritePtr += 3; - } - _VtxCurrentIdx += (ImDrawIdx)vtx_count; - } -} - -void ImDrawList::PathArcToFast(const ImVec2& centre, float radius, int amin, int amax) -{ - static ImVec2 circle_vtx[12]; - static bool circle_vtx_builds = false; - const int circle_vtx_count = IM_ARRAYSIZE(circle_vtx); - if (!circle_vtx_builds) - { - for (int i = 0; i < circle_vtx_count; i++) - { - const float a = ((float)i / (float)circle_vtx_count) * 2*IM_PI; - circle_vtx[i].x = cosf(a); - circle_vtx[i].y = sinf(a); - } - circle_vtx_builds = true; - } - - if (amin > amax) return; - if (radius == 0.0f) - { - _Path.push_back(centre); - } - else - { - _Path.reserve(_Path.Size + (amax - amin + 1)); - for (int a = amin; a <= amax; a++) - { - const ImVec2& c = circle_vtx[a % circle_vtx_count]; - _Path.push_back(ImVec2(centre.x + c.x * radius, centre.y + c.y * radius)); - } - } -} - -void ImDrawList::PathArcTo(const ImVec2& centre, float radius, float amin, float amax, int num_segments) -{ - if (radius == 0.0f) - _Path.push_back(centre); - _Path.reserve(_Path.Size + (num_segments + 1)); - for (int i = 0; i <= num_segments; i++) - { - const float a = amin + ((float)i / (float)num_segments) * (amax - amin); - _Path.push_back(ImVec2(centre.x + cosf(a) * radius, centre.y + sinf(a) * radius)); - } -} - -void ImDrawList::PathRect(const ImVec2& a, const ImVec2& b, float rounding, int rounding_corners) -{ - float r = rounding; - r = ImMin(r, fabsf(b.x-a.x) * ( ((rounding_corners&(1|2))==(1|2)) || ((rounding_corners&(4|8))==(4|8)) ? 0.5f : 1.0f ) - 1.0f); - r = ImMin(r, fabsf(b.y-a.y) * ( ((rounding_corners&(1|8))==(1|8)) || ((rounding_corners&(2|4))==(2|4)) ? 0.5f : 1.0f ) - 1.0f); - - if (r == 0.0f || rounding_corners == 0) - { - PathLineTo(a); - PathLineTo(ImVec2(b.x,a.y)); - PathLineTo(b); - PathLineTo(ImVec2(a.x,b.y)); - } - else - { - const float r0 = (rounding_corners & 1) ? r : 0.0f; - const float r1 = (rounding_corners & 2) ? r : 0.0f; - const float r2 = (rounding_corners & 4) ? r : 0.0f; - const float r3 = (rounding_corners & 8) ? r : 0.0f; - PathArcToFast(ImVec2(a.x+r0,a.y+r0), r0, 6, 9); - PathArcToFast(ImVec2(b.x-r1,a.y+r1), r1, 9, 12); - PathArcToFast(ImVec2(b.x-r2,b.y-r2), r2, 0, 3); - PathArcToFast(ImVec2(a.x+r3,b.y-r3), r3, 3, 6); - } -} - -void ImDrawList::AddLine(const ImVec2& a, const ImVec2& b, ImU32 col, float thickness) -{ - if ((col >> 24) == 0) - return; - PathLineTo(a + ImVec2(0.5f,0.5f)); - PathLineTo(b + ImVec2(0.5f,0.5f)); - PathStroke(col, false, thickness); -} - -void ImDrawList::AddRect(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding, int rounding_corners) -{ - if ((col >> 24) == 0) - return; - PathRect(a + ImVec2(0.5f,0.5f), b + ImVec2(0.5f,0.5f), rounding, rounding_corners); - PathStroke(col, true); -} - -void ImDrawList::AddRectFilled(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding, int rounding_corners) -{ - if ((col >> 24) == 0) - return; - if (rounding > 0.0f) - { - PathRect(a, b, rounding, rounding_corners); - PathFill(col); - } - else - { - PrimReserve(6, 4); - PrimRect(a, b, col); - } -} - -void ImDrawList::AddRectFilledMultiColor(const ImVec2& a, const ImVec2& c, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left) -{ - if (((col_upr_left | col_upr_right | col_bot_right | col_bot_left) >> 24) == 0) - return; - - const ImVec2 uv = GImGui->FontTexUvWhitePixel; - PrimReserve(6, 4); - PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+1)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+2)); - PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+2)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+3)); - PrimWriteVtx(a, uv, col_upr_left); - PrimWriteVtx(ImVec2(c.x, a.y), uv, col_upr_right); - PrimWriteVtx(c, uv, col_bot_right); - PrimWriteVtx(ImVec2(a.x, c.y), uv, col_bot_left); -} - -void ImDrawList::AddTriangleFilled(const ImVec2& a, const ImVec2& b, const ImVec2& c, ImU32 col) -{ - if ((col >> 24) == 0) - return; - PathLineTo(a); - PathLineTo(b); - PathLineTo(c); - PathFill(col); -} - -void ImDrawList::AddCircle(const ImVec2& centre, float radius, ImU32 col, int num_segments) -{ - if ((col >> 24) == 0) - return; - - const float a_max = IM_PI*2.0f * ((float)num_segments - 1.0f) / (float)num_segments; - PathArcTo(centre, radius, 0.0f, a_max, num_segments); - PathStroke(col, true); -} - -void ImDrawList::AddCircleFilled(const ImVec2& centre, float radius, ImU32 col, int num_segments) -{ - if ((col >> 24) == 0) - return; - - const float a_max = IM_PI*2.0f * ((float)num_segments - 1.0f) / (float)num_segments; - PathArcTo(centre, radius, 0.0f, a_max, num_segments); - PathFill(col); -} - -void ImDrawList::AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end, float wrap_width, const ImVec4* cpu_fine_clip_rect) -{ - if ((col >> 24) == 0) - return; - - if (text_end == NULL) - text_end = text_begin + strlen(text_begin); - if (text_begin == text_end) - return; - - IM_ASSERT(font->ContainerAtlas->TexID == _TextureIdStack.back()); // Use high-level ImGui::PushFont() or low-level ImDrawList::PushTextureId() to change font. - - // reserve vertices for worse case - const int char_count = (int)(text_end - text_begin); - const int vtx_count_max = char_count * 4; - const int idx_count_max = char_count * 6; - const int vtx_begin = VtxBuffer.Size; - const int idx_begin = IdxBuffer.Size; - PrimReserve(idx_count_max, vtx_count_max); - - ImVec4 clip_rect = _ClipRectStack.back(); - if (cpu_fine_clip_rect) - { - clip_rect.x = ImMax(clip_rect.x, cpu_fine_clip_rect->x); - clip_rect.y = ImMax(clip_rect.y, cpu_fine_clip_rect->y); - clip_rect.z = ImMin(clip_rect.z, cpu_fine_clip_rect->z); - clip_rect.w = ImMin(clip_rect.w, cpu_fine_clip_rect->w); - } - font->RenderText(font_size, pos, col, clip_rect, text_begin, text_end, this, wrap_width, cpu_fine_clip_rect != NULL); - - // give back unused vertices - // FIXME-OPT - VtxBuffer.resize((int)(_VtxWritePtr - VtxBuffer.Data)); - IdxBuffer.resize((int)(_IdxWritePtr - IdxBuffer.Data)); - int vtx_unused = vtx_count_max - (VtxBuffer.Size - vtx_begin); - int idx_unused = idx_count_max - (IdxBuffer.Size - idx_begin); - CmdBuffer.back().ElemCount -= idx_unused; - _VtxWritePtr -= vtx_unused; - _IdxWritePtr -= idx_unused; - _VtxCurrentIdx = (ImDrawIdx)VtxBuffer.Size; -} - -// This is one of the few function breaking the encapsulation of ImDrawLst, but it is just so useful. -void ImDrawList::AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end) -{ - if ((col >> 24) == 0) - return; - AddText(ImGui::GetWindowFont(), ImGui::GetWindowFontSize(), pos, col, text_begin, text_end); -} - -void ImDrawList::AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv0, const ImVec2& uv1, ImU32 col) -{ - if ((col >> 24) == 0) - return; - - // FIXME-OPT: This is wasting draw calls. - const bool push_texture_id = _TextureIdStack.empty() || user_texture_id != _TextureIdStack.back(); - if (push_texture_id) - PushTextureID(user_texture_id); - - PrimReserve(6, 4); - PrimRectUV(a, b, uv0, uv1, col); - - if (push_texture_id) - PopTextureID(); -} - -//----------------------------------------------------------------------------- -// ImDrawData -//----------------------------------------------------------------------------- - -// For backward compatibility: convert all buffers from indexed to de-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. Always prefer indexed rendering! -void ImDrawData::DeIndexAllBuffers() -{ - ImVector new_vtx_buffer; - TotalVtxCount = TotalIdxCount = 0; - for (int i = 0; i < CmdListsCount; i++) - { - ImDrawList* cmd_list = CmdLists[i]; - if (cmd_list->IdxBuffer.empty()) - continue; - new_vtx_buffer.resize(cmd_list->IdxBuffer.Size); - for (int j = 0; j < cmd_list->IdxBuffer.Size; j++) - new_vtx_buffer[j] = cmd_list->VtxBuffer[cmd_list->IdxBuffer[j]]; - cmd_list->VtxBuffer.swap(new_vtx_buffer); - cmd_list->IdxBuffer.resize(0); - TotalVtxCount += cmd_list->VtxBuffer.Size; - } -} - -//----------------------------------------------------------------------------- -// ImFontAtlias -//----------------------------------------------------------------------------- - -ImFontConfig::ImFontConfig() -{ - FontData = NULL; - FontDataSize = 0; - FontDataOwnedByAtlas = true; - FontNo = 0; - SizePixels = 0.0f; - OversampleH = 3; - OversampleV = 1; - PixelSnapH = false; - GlyphExtraSpacing = ImVec2(0.0f, 0.0f); - GlyphRanges = NULL; - MergeMode = false; - MergeGlyphCenterV = false; - DstFont = NULL; - memset(Name, 0, sizeof(Name)); -} - -ImFontAtlas::ImFontAtlas() -{ - TexID = NULL; - TexPixelsAlpha8 = NULL; - TexPixelsRGBA32 = NULL; - TexWidth = TexHeight = 0; - TexUvWhitePixel = ImVec2(0, 0); -} - -ImFontAtlas::~ImFontAtlas() -{ - Clear(); -} - -void ImFontAtlas::ClearInputData() -{ - for (int i = 0; i < ConfigData.Size; i++) - if (ConfigData[i].FontData && ConfigData[i].FontDataOwnedByAtlas) - { - ImGui::MemFree(ConfigData[i].FontData); - ConfigData[i].FontData = NULL; - } - - // When clearing this we lose access to the font name and other information used to build the font. - for (int i = 0; i < Fonts.Size; i++) - if (Fonts[i]->ConfigData >= ConfigData.Data && Fonts[i]->ConfigData < ConfigData.Data + ConfigData.Size) - { - Fonts[i]->ConfigData = NULL; - Fonts[i]->ConfigDataCount = 0; - } - ConfigData.clear(); -} - -void ImFontAtlas::ClearTexData() -{ - if (TexPixelsAlpha8) - ImGui::MemFree(TexPixelsAlpha8); - if (TexPixelsRGBA32) - ImGui::MemFree(TexPixelsRGBA32); - TexPixelsAlpha8 = NULL; - TexPixelsRGBA32 = NULL; -} - -void ImFontAtlas::ClearFonts() -{ - for (int i = 0; i < Fonts.Size; i++) - { - Fonts[i]->~ImFont(); - ImGui::MemFree(Fonts[i]); - } - Fonts.clear(); -} - -void ImFontAtlas::Clear() -{ - ClearInputData(); - ClearTexData(); - ClearFonts(); -} - -void ImFontAtlas::GetTexDataAsAlpha8(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel) -{ - // Lazily build - if (TexPixelsAlpha8 == NULL) - { - if (ConfigData.empty()) - AddFontDefault(); - Build(); - } - - *out_pixels = TexPixelsAlpha8; - if (out_width) *out_width = TexWidth; - if (out_height) *out_height = TexHeight; - if (out_bytes_per_pixel) *out_bytes_per_pixel = 1; -} - -void ImFontAtlas::GetTexDataAsRGBA32(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel) -{ - // Lazily convert to RGBA32 format - // Although it is likely to be the most commonly used format, our font rendering is 8 bpp - if (!TexPixelsRGBA32) - { - unsigned char* pixels; - GetTexDataAsAlpha8(&pixels, NULL, NULL); - TexPixelsRGBA32 = (unsigned int*)ImGui::MemAlloc((size_t)(TexWidth * TexHeight * 4)); - const unsigned char* src = pixels; - unsigned int* dst = TexPixelsRGBA32; - for (int n = TexWidth * TexHeight; n > 0; n--) - *dst++ = ((unsigned int)(*src++) << 24) | 0x00FFFFFF; - } - - *out_pixels = (unsigned char*)TexPixelsRGBA32; - if (out_width) *out_width = TexWidth; - if (out_height) *out_height = TexHeight; - if (out_bytes_per_pixel) *out_bytes_per_pixel = 4; -} - -ImFont* ImFontAtlas::AddFont(const ImFontConfig* font_cfg) -{ - IM_ASSERT(font_cfg->FontData != NULL && font_cfg->FontDataSize > 0); - IM_ASSERT(font_cfg->SizePixels > 0.0f); - - // Create new font - if (!font_cfg->MergeMode) - { - ImFont* font = (ImFont*)ImGui::MemAlloc(sizeof(ImFont)); - new (font) ImFont(); - Fonts.push_back(font); - } - - ConfigData.push_back(*font_cfg); - ImFontConfig& new_font_cfg = ConfigData.back(); - new_font_cfg.DstFont = Fonts.back(); - if (!new_font_cfg.FontDataOwnedByAtlas) - { - new_font_cfg.FontData = ImGui::MemAlloc(new_font_cfg.FontDataSize); - new_font_cfg.FontDataOwnedByAtlas = true; - memcpy(new_font_cfg.FontData, font_cfg->FontData, (size_t)new_font_cfg.FontDataSize); - } - - // Invalidate texture - ClearTexData(); - return Fonts.back(); -} - -// Default font ttf is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder) -static unsigned int stb_decompress_length(unsigned char *input); -static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length); -static const char* GetDefaultCompressedFontDataTTFBase85(); -static unsigned int Decode85Byte(char c) { return c >= '\\' ? c-36 : c-35; } -static void Decode85(const unsigned char* src, unsigned int* dst) { for (; *src; src += 5) *dst++ = Decode85Byte(src[0]) + 85*(Decode85Byte(src[1]) + 85*(Decode85Byte(src[2]) + 85*(Decode85Byte(src[3]) + 85*Decode85Byte(src[4])))); } - -// Load embedded ProggyClean.ttf at size 13 -ImFont* ImFontAtlas::AddFontDefault(const ImFontConfig* font_cfg_template) -{ - ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); - if (!font_cfg_template) - { - font_cfg.OversampleH = font_cfg.OversampleV = 1; - font_cfg.PixelSnapH = true; - } - if (font_cfg.Name[0] == '\0') strcpy(font_cfg.Name, ""); - - const char* ttf_compressed_base85 = GetDefaultCompressedFontDataTTFBase85(); - ImFont* font = AddFontFromMemoryCompressedBase85TTF(ttf_compressed_base85, 13.0f, &font_cfg, GetGlyphRangesDefault()); - return font; -} - -ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) -{ - void* data = NULL; - int data_size = 0; - if (!ImLoadFileToMemory(filename, "rb", (void**)&data, &data_size, 0)) - { - IM_ASSERT(0); // Could not load file. - return NULL; - } - ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); - if (font_cfg.Name[0] == '\0') - { - const char* p; - for (p = filename + strlen(filename); p > filename && p[-1] != '/' && p[-1] != '\\'; p--) {} - snprintf(font_cfg.Name, IM_ARRAYSIZE(font_cfg.Name), "%s", p); - } - return AddFontFromMemoryTTF(data, data_size, size_pixels, &font_cfg, glyph_ranges); -} - -// Transfer ownership of 'ttf_data' to ImFontAtlas, will be deleted after Build() -ImFont* ImFontAtlas::AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) -{ - ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); - IM_ASSERT(font_cfg.FontData == NULL); - font_cfg.FontData = ttf_data; - font_cfg.FontDataSize = ttf_size; - font_cfg.SizePixels = size_pixels; - if (glyph_ranges) - font_cfg.GlyphRanges = glyph_ranges; - return AddFont(&font_cfg); -} - -ImFont* ImFontAtlas::AddFontFromMemoryCompressedTTF(const void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) -{ - const unsigned int buf_decompressed_size = stb_decompress_length((unsigned char*)compressed_ttf_data); - unsigned char* buf_decompressed_data = (unsigned char *)ImGui::MemAlloc(buf_decompressed_size); - stb_decompress(buf_decompressed_data, (unsigned char*)compressed_ttf_data, (unsigned int)compressed_ttf_size); - - ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); - IM_ASSERT(font_cfg.FontData == NULL); - font_cfg.FontDataOwnedByAtlas = true; - return AddFontFromMemoryTTF(buf_decompressed_data, (int)buf_decompressed_size, size_pixels, font_cfg_template, glyph_ranges); -} - -ImFont* ImFontAtlas::AddFontFromMemoryCompressedBase85TTF(const char* compressed_ttf_data_base85, float size_pixels, const ImFontConfig* font_cfg, const ImWchar* glyph_ranges) -{ - int compressed_ttf_size = (((int)strlen(compressed_ttf_data_base85) + 4) / 5) * 4; - void* compressed_ttf = ImGui::MemAlloc(compressed_ttf_size); - Decode85((const unsigned char*)compressed_ttf_data_base85, (unsigned int*)compressed_ttf); - ImFont* font = AddFontFromMemoryCompressedTTF(compressed_ttf, compressed_ttf_size, size_pixels, font_cfg, glyph_ranges); - ImGui::MemFree(compressed_ttf); - return font; -} - -bool ImFontAtlas::Build() -{ - IM_ASSERT(ConfigData.Size > 0); - - TexID = NULL; - TexWidth = TexHeight = 0; - TexUvWhitePixel = ImVec2(0, 0); - ClearTexData(); - - struct ImFontTempBuildData - { - stbtt_fontinfo FontInfo; - stbrp_rect* Rects; - stbtt_pack_range* Ranges; - int RangesCount; - }; - ImFontTempBuildData* tmp_array = (ImFontTempBuildData*)ImGui::MemAlloc((size_t)ConfigData.Size * sizeof(ImFontTempBuildData)); - - // Initialize font information early (so we can error without any cleanup) + count glyphs - int total_glyph_count = 0; - int total_glyph_range_count = 0; - for (int input_i = 0; input_i < ConfigData.Size; input_i++) - { - ImFontConfig& cfg = ConfigData[input_i]; - ImFontTempBuildData& tmp = tmp_array[input_i]; - - IM_ASSERT(cfg.DstFont && (!cfg.DstFont->IsLoaded() || cfg.DstFont->ContainerAtlas == this)); - const int font_offset = stbtt_GetFontOffsetForIndex((unsigned char*)cfg.FontData, cfg.FontNo); - IM_ASSERT(font_offset >= 0); - if (!stbtt_InitFont(&tmp.FontInfo, (unsigned char*)cfg.FontData, font_offset)) - return false; - - if (!cfg.GlyphRanges) - cfg.GlyphRanges = GetGlyphRangesDefault(); - for (const ImWchar* in_range = cfg.GlyphRanges; in_range[0] && in_range[1]; in_range += 2) - { - total_glyph_count += (in_range[1] - in_range[0]) + 1; - total_glyph_range_count++; - } - } - - // Start packing - TexWidth = (total_glyph_count > 1000) ? 1024 : 512; // Width doesn't actually matters. - TexHeight = 0; - const int max_tex_height = 1024*32; - stbtt_pack_context spc; - stbtt_PackBegin(&spc, NULL, TexWidth, max_tex_height, 0, 1, NULL); - - // Pack our extra data rectangles first, so it will be on the upper-left corner of our texture (UV will have small values). - ImVector extra_rects; - RenderCustomTexData(0, &extra_rects); - stbtt_PackSetOversampling(&spc, 1, 1); - stbrp_pack_rects((stbrp_context*)spc.pack_info, &extra_rects[0], extra_rects.Size); - for (int i = 0; i < extra_rects.Size; i++) - if (extra_rects[i].was_packed) - TexHeight = ImMax(TexHeight, extra_rects[i].y + extra_rects[i].h); - - // Allocate packing character data and flag packed characters buffer as non-packed (x0=y0=x1=y1=0) - int buf_packedchars_n = 0, buf_rects_n = 0, buf_ranges_n = 0; - stbtt_packedchar* buf_packedchars = (stbtt_packedchar*)ImGui::MemAlloc(total_glyph_count * sizeof(stbtt_packedchar)); - stbrp_rect* buf_rects = (stbrp_rect*)ImGui::MemAlloc(total_glyph_count * sizeof(stbrp_rect)); - stbtt_pack_range* buf_ranges = (stbtt_pack_range*)ImGui::MemAlloc(total_glyph_range_count * sizeof(stbtt_pack_range)); - memset(buf_packedchars, 0, total_glyph_count * sizeof(stbtt_packedchar)); - memset(buf_rects, 0, total_glyph_count * sizeof(stbrp_rect)); // Unnecessary but let's clear this for the sake of sanity. - memset(buf_ranges, 0, total_glyph_range_count * sizeof(stbtt_pack_range)); - - // First font pass: pack all glyphs (no rendering at this point, we are working with glyph sizes only) - for (int input_i = 0; input_i < ConfigData.Size; input_i++) - { - ImFontConfig& cfg = ConfigData[input_i]; - ImFontTempBuildData& tmp = tmp_array[input_i]; - - // Setup ranges - int glyph_count = 0; - int glyph_ranges_count = 0; - for (const ImWchar* in_range = cfg.GlyphRanges; in_range[0] && in_range[1]; in_range += 2) - { - glyph_count += (in_range[1] - in_range[0]) + 1; - glyph_ranges_count++; - } - tmp.Ranges = buf_ranges + buf_ranges_n; - tmp.RangesCount = glyph_ranges_count; - buf_ranges_n += glyph_ranges_count; - for (int i = 0; i < glyph_ranges_count; i++) - { - const ImWchar* in_range = &cfg.GlyphRanges[i * 2]; - stbtt_pack_range& range = tmp.Ranges[i]; - range.font_size = cfg.SizePixels; - range.first_unicode_codepoint_in_range = in_range[0]; - range.num_chars = (in_range[1] - in_range[0]) + 1; - range.chardata_for_range = buf_packedchars + buf_packedchars_n; - buf_packedchars_n += range.num_chars; - } - - // Pack - tmp.Rects = buf_rects + buf_rects_n; - buf_rects_n += glyph_count; - stbtt_PackSetOversampling(&spc, cfg.OversampleH, cfg.OversampleV); - int n = stbtt_PackFontRangesGatherRects(&spc, &tmp.FontInfo, tmp.Ranges, tmp.RangesCount, tmp.Rects); - stbrp_pack_rects((stbrp_context*)spc.pack_info, tmp.Rects, n); - - // Extend texture height - for (int i = 0; i < n; i++) - if (tmp.Rects[i].was_packed) - TexHeight = ImMax(TexHeight, tmp.Rects[i].y + tmp.Rects[i].h); - } - IM_ASSERT(buf_rects_n == total_glyph_count); - IM_ASSERT(buf_packedchars_n == total_glyph_count); - IM_ASSERT(buf_ranges_n == total_glyph_range_count); - - // Create texture - TexHeight = ImUpperPowerOfTwo(TexHeight); - TexPixelsAlpha8 = (unsigned char*)ImGui::MemAlloc(TexWidth * TexHeight); - memset(TexPixelsAlpha8, 0, TexWidth * TexHeight); - spc.pixels = TexPixelsAlpha8; - spc.height = TexHeight; - - // Second pass: render characters - for (int input_i = 0; input_i < ConfigData.Size; input_i++) - { - ImFontConfig& cfg = ConfigData[input_i]; - ImFontTempBuildData& tmp = tmp_array[input_i]; - stbtt_PackSetOversampling(&spc, cfg.OversampleH, cfg.OversampleV); - stbtt_PackFontRangesRenderIntoRects(&spc, &tmp.FontInfo, tmp.Ranges, tmp.RangesCount, tmp.Rects); - tmp.Rects = NULL; - } - - // End packing - stbtt_PackEnd(&spc); - ImGui::MemFree(buf_rects); - buf_rects = NULL; - - // Third pass: setup ImFont and glyphs for runtime - for (int input_i = 0; input_i < ConfigData.Size; input_i++) - { - ImFontConfig& cfg = ConfigData[input_i]; - ImFontTempBuildData& tmp = tmp_array[input_i]; - ImFont* dst_font = cfg.DstFont; - - float font_scale = stbtt_ScaleForPixelHeight(&tmp.FontInfo, cfg.SizePixels); - int unscaled_ascent, unscaled_descent, unscaled_line_gap; - stbtt_GetFontVMetrics(&tmp.FontInfo, &unscaled_ascent, &unscaled_descent, &unscaled_line_gap); - - float ascent = unscaled_ascent * font_scale; - float descent = unscaled_descent * font_scale; - if (!cfg.MergeMode) - { - dst_font->ContainerAtlas = this; - dst_font->ConfigData = &cfg; - dst_font->ConfigDataCount = 0; - dst_font->FontSize = cfg.SizePixels; - dst_font->Ascent = ascent; - dst_font->Descent = descent; - dst_font->Glyphs.resize(0); - } - dst_font->ConfigDataCount++; - float off_y = (cfg.MergeMode && cfg.MergeGlyphCenterV) ? (ascent - dst_font->Ascent) * 0.5f : 0.0f; - - dst_font->FallbackGlyph = NULL; // Always clear fallback so FindGlyph can return NULL. It will be set again in BuildLookupTable() - for (int i = 0; i < tmp.RangesCount; i++) - { - stbtt_pack_range& range = tmp.Ranges[i]; - for (int char_idx = 0; char_idx < range.num_chars; char_idx += 1) - { - const stbtt_packedchar& pc = range.chardata_for_range[char_idx]; - if (!pc.x0 && !pc.x1 && !pc.y0 && !pc.y1) - continue; - - const int codepoint = range.first_unicode_codepoint_in_range + char_idx; - if (cfg.MergeMode && dst_font->FindGlyph((unsigned short)codepoint)) - continue; - - stbtt_aligned_quad q; - float dummy_x = 0.0f, dummy_y = 0.0f; - stbtt_GetPackedQuad(range.chardata_for_range, TexWidth, TexHeight, char_idx, &dummy_x, &dummy_y, &q, 0); - - dst_font->Glyphs.resize(dst_font->Glyphs.Size + 1); - ImFont::Glyph& glyph = dst_font->Glyphs.back(); - glyph.Codepoint = (ImWchar)codepoint; - glyph.X0 = q.x0; glyph.Y0 = q.y0; glyph.X1 = q.x1; glyph.Y1 = q.y1; - glyph.U0 = q.s0; glyph.V0 = q.t0; glyph.U1 = q.s1; glyph.V1 = q.t1; - glyph.Y0 += (float)(int)(dst_font->Ascent + off_y + 0.5f); - glyph.Y1 += (float)(int)(dst_font->Ascent + off_y + 0.5f); - glyph.XAdvance = (pc.xadvance + cfg.GlyphExtraSpacing.x); // Bake spacing into XAdvance - if (cfg.PixelSnapH) - glyph.XAdvance = (float)(int)(glyph.XAdvance + 0.5f); - } - } - cfg.DstFont->BuildLookupTable(); - } - - // Cleanup temporaries - ImGui::MemFree(buf_packedchars); - ImGui::MemFree(buf_ranges); - ImGui::MemFree(tmp_array); - - // Render into our custom data block - RenderCustomTexData(1, &extra_rects); - - return true; -} - -void ImFontAtlas::RenderCustomTexData(int pass, void* p_rects) -{ - // . = white layer, X = black layer, others are blank - const int TEX_DATA_W = 90; - const int TEX_DATA_H = 27; - const char texture_data[TEX_DATA_W*TEX_DATA_H+1] = - { - "..- -XXXXXXX- X - X -XXXXXXX - XXXXXXX" - "..- -X.....X- X.X - X.X -X.....X - X.....X" - "--- -XXX.XXX- X...X - X...X -X....X - X....X" - "X - X.X - X.....X - X.....X -X...X - X...X" - "XX - X.X -X.......X- X.......X -X..X.X - X.X..X" - "X.X - X.X -XXXX.XXXX- XXXX.XXXX -X.X X.X - X.X X.X" - "X..X - X.X - X.X - X.X -XX X.X - X.X XX" - "X...X - X.X - X.X - XX X.X XX - X.X - X.X " - "X....X - X.X - X.X - X.X X.X X.X - X.X - X.X " - "X.....X - X.X - X.X - X..X X.X X..X - X.X - X.X " - "X......X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X XX-XX X.X " - "X.......X - X.X - X.X -X.....................X- X.X X.X-X.X X.X " - "X........X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X..X-X..X.X " - "X.........X -XXX.XXX- X.X - X..X X.X X..X - X...X-X...X " - "X..........X-X.....X- X.X - X.X X.X X.X - X....X-X....X " - "X......XXXXX-XXXXXXX- X.X - XX X.X XX - X.....X-X.....X " - "X...X..X --------- X.X - X.X - XXXXXXX-XXXXXXX " - "X..X X..X - -XXXX.XXXX- XXXX.XXXX ------------------------------------" - "X.X X..X - -X.......X- X.......X - XX XX - " - "XX X..X - - X.....X - X.....X - X.X X.X - " - " X..X - X...X - X...X - X..X X..X - " - " XX - X.X - X.X - X...XXXXXXXXXXXXX...X - " - "------------ - X - X -X.....................X- " - " ----------------------------------- X...XXXXXXXXXXXXX...X - " - " - X..X X..X - " - " - X.X X.X - " - " - XX XX - " - }; - - ImVector& rects = *(ImVector*)p_rects; - if (pass == 0) - { - stbrp_rect r; - memset(&r, 0, sizeof(r)); - r.w = (TEX_DATA_W*2)+1; - r.h = TEX_DATA_H+1; - rects.push_back(r); - } - else if (pass == 1) - { - // Copy pixels - const stbrp_rect& r = rects[0]; - for (int y = 0, n = 0; y < TEX_DATA_H; y++) - for (int x = 0; x < TEX_DATA_W; x++, n++) - { - const int offset0 = (int)(r.x + x) + (int)(r.y + y) * TexWidth; - const int offset1 = offset0 + 1 + TEX_DATA_W; - TexPixelsAlpha8[offset0] = texture_data[n] == '.' ? 0xFF : 0x00; - TexPixelsAlpha8[offset1] = texture_data[n] == 'X' ? 0xFF : 0x00; - } - const ImVec2 tex_uv_scale(1.0f / TexWidth, 1.0f / TexHeight); - TexUvWhitePixel = ImVec2((r.x + 0.5f) * tex_uv_scale.x, (r.y + 0.5f) * tex_uv_scale.y); - - const ImVec2 cursor_datas[ImGuiMouseCursor_Count_][3] = - { - // Pos ........ Size ......... Offset ...... - { ImVec2(0,3), ImVec2(12,19), ImVec2( 0, 0) }, // ImGuiMouseCursor_Arrow - { ImVec2(13,0), ImVec2(7,16), ImVec2( 4, 8) }, // ImGuiMouseCursor_TextInput - { ImVec2(31,0), ImVec2(23,23), ImVec2(11,11) }, // ImGuiMouseCursor_Move - { ImVec2(21,0), ImVec2( 9,23), ImVec2( 5,11) }, // ImGuiMouseCursor_ResizeNS - { ImVec2(55,18),ImVec2(23, 9), ImVec2(11, 5) }, // ImGuiMouseCursor_ResizeEW - { ImVec2(73,0), ImVec2(17,17), ImVec2( 9, 9) }, // ImGuiMouseCursor_ResizeNESW - { ImVec2(55,0), ImVec2(17,17), ImVec2( 9, 9) }, // ImGuiMouseCursor_ResizeNWSE - }; - - for (int type = 0; type < ImGuiMouseCursor_Count_; type++) - { - ImGuiMouseCursorData& cursor_data = GImGui->MouseCursorData[type]; - ImVec2 pos = cursor_datas[type][0] + ImVec2((float)r.x, (float)r.y); - const ImVec2 size = cursor_datas[type][1]; - cursor_data.Type = type; - cursor_data.Size = size; - cursor_data.HotOffset = cursor_datas[type][2]; - cursor_data.TexUvMin[0] = (pos) * tex_uv_scale; - cursor_data.TexUvMax[0] = (pos + size) * tex_uv_scale; - pos.x += TEX_DATA_W+1; - cursor_data.TexUvMin[1] = (pos) * tex_uv_scale; - cursor_data.TexUvMax[1] = (pos + size) * tex_uv_scale; - } - } -} - -// Retrieve list of range (2 int per range, values are inclusive) -const ImWchar* ImFontAtlas::GetGlyphRangesDefault() -{ - static const ImWchar ranges[] = - { - 0x0020, 0x00FF, // Basic Latin + Latin Supplement - 0, - }; - return &ranges[0]; -} - -const ImWchar* ImFontAtlas::GetGlyphRangesChinese() -{ - static const ImWchar ranges[] = - { - 0x0020, 0x00FF, // Basic Latin + Latin Supplement - 0x3000, 0x30FF, // Punctuations, Hiragana, Katakana - 0x31F0, 0x31FF, // Katakana Phonetic Extensions - 0xFF00, 0xFFEF, // Half-width characters - 0x4e00, 0x9FAF, // CJK Ideograms - 0, - }; - return &ranges[0]; -} - -const ImWchar* ImFontAtlas::GetGlyphRangesJapanese() -{ - // Store the 1946 ideograms code points as successive offsets from the initial unicode codepoint 0x4E00. Each offset has an implicit +1. - // This encoding helps us reduce the source code size. - static const short offsets_from_0x4E00[] = - { - -1,0,1,3,0,0,0,0,1,0,5,1,1,0,7,4,6,10,0,1,9,9,7,1,3,19,1,10,7,1,0,1,0,5,1,0,6,4,2,6,0,0,12,6,8,0,3,5,0,1,0,9,0,0,8,1,1,3,4,5,13,0,0,8,2,17, - 4,3,1,1,9,6,0,0,0,2,1,3,2,22,1,9,11,1,13,1,3,12,0,5,9,2,0,6,12,5,3,12,4,1,2,16,1,1,4,6,5,3,0,6,13,15,5,12,8,14,0,0,6,15,3,6,0,18,8,1,6,14,1, - 5,4,12,24,3,13,12,10,24,0,0,0,1,0,1,1,2,9,10,2,2,0,0,3,3,1,0,3,8,0,3,2,4,4,1,6,11,10,14,6,15,3,4,15,1,0,0,5,2,2,0,0,1,6,5,5,6,0,3,6,5,0,0,1,0, - 11,2,2,8,4,7,0,10,0,1,2,17,19,3,0,2,5,0,6,2,4,4,6,1,1,11,2,0,3,1,2,1,2,10,7,6,3,16,0,8,24,0,0,3,1,1,3,0,1,6,0,0,0,2,0,1,5,15,0,1,0,0,2,11,19, - 1,4,19,7,6,5,1,0,0,0,0,5,1,0,1,9,0,0,5,0,2,0,1,0,3,0,11,3,0,2,0,0,0,0,0,9,3,6,4,12,0,14,0,0,29,10,8,0,14,37,13,0,31,16,19,0,8,30,1,20,8,3,48, - 21,1,0,12,0,10,44,34,42,54,11,18,82,0,2,1,2,12,1,0,6,2,17,2,12,7,0,7,17,4,2,6,24,23,8,23,39,2,16,23,1,0,5,1,2,15,14,5,6,2,11,0,8,6,2,2,2,14, - 20,4,15,3,4,11,10,10,2,5,2,1,30,2,1,0,0,22,5,5,0,3,1,5,4,1,0,0,2,2,21,1,5,1,2,16,2,1,3,4,0,8,4,0,0,5,14,11,2,16,1,13,1,7,0,22,15,3,1,22,7,14, - 22,19,11,24,18,46,10,20,64,45,3,2,0,4,5,0,1,4,25,1,0,0,2,10,0,0,0,1,0,1,2,0,0,9,1,2,0,0,0,2,5,2,1,1,5,5,8,1,1,1,5,1,4,9,1,3,0,1,0,1,1,2,0,0, - 2,0,1,8,22,8,1,0,0,0,0,4,2,1,0,9,8,5,0,9,1,30,24,2,6,4,39,0,14,5,16,6,26,179,0,2,1,1,0,0,0,5,2,9,6,0,2,5,16,7,5,1,1,0,2,4,4,7,15,13,14,0,0, - 3,0,1,0,0,0,2,1,6,4,5,1,4,9,0,3,1,8,0,0,10,5,0,43,0,2,6,8,4,0,2,0,0,9,6,0,9,3,1,6,20,14,6,1,4,0,7,2,3,0,2,0,5,0,3,1,0,3,9,7,0,3,4,0,4,9,1,6,0, - 9,0,0,2,3,10,9,28,3,6,2,4,1,2,32,4,1,18,2,0,3,1,5,30,10,0,2,2,2,0,7,9,8,11,10,11,7,2,13,7,5,10,0,3,40,2,0,1,6,12,0,4,5,1,5,11,11,21,4,8,3,7, - 8,8,33,5,23,0,0,19,8,8,2,3,0,6,1,1,1,5,1,27,4,2,5,0,3,5,6,3,1,0,3,1,12,5,3,3,2,0,7,7,2,1,0,4,0,1,1,2,0,10,10,6,2,5,9,7,5,15,15,21,6,11,5,20, - 4,3,5,5,2,5,0,2,1,0,1,7,28,0,9,0,5,12,5,5,18,30,0,12,3,3,21,16,25,32,9,3,14,11,24,5,66,9,1,2,0,5,9,1,5,1,8,0,8,3,3,0,1,15,1,4,8,1,2,7,0,7,2, - 8,3,7,5,3,7,10,2,1,0,0,2,25,0,6,4,0,10,0,4,2,4,1,12,5,38,4,0,4,1,10,5,9,4,0,14,4,2,5,18,20,21,1,3,0,5,0,7,0,3,7,1,3,1,1,8,1,0,0,0,3,2,5,2,11, - 6,0,13,1,3,9,1,12,0,16,6,2,1,0,2,1,12,6,13,11,2,0,28,1,7,8,14,13,8,13,0,2,0,5,4,8,10,2,37,42,19,6,6,7,4,14,11,18,14,80,7,6,0,4,72,12,36,27, - 7,7,0,14,17,19,164,27,0,5,10,7,3,13,6,14,0,2,2,5,3,0,6,13,0,0,10,29,0,4,0,3,13,0,3,1,6,51,1,5,28,2,0,8,0,20,2,4,0,25,2,10,13,10,0,16,4,0,1,0, - 2,1,7,0,1,8,11,0,0,1,2,7,2,23,11,6,6,4,16,2,2,2,0,22,9,3,3,5,2,0,15,16,21,2,9,20,15,15,5,3,9,1,0,0,1,7,7,5,4,2,2,2,38,24,14,0,0,15,5,6,24,14, - 5,5,11,0,21,12,0,3,8,4,11,1,8,0,11,27,7,2,4,9,21,59,0,1,39,3,60,62,3,0,12,11,0,3,30,11,0,13,88,4,15,5,28,13,1,4,48,17,17,4,28,32,46,0,16,0, - 18,11,1,8,6,38,11,2,6,11,38,2,0,45,3,11,2,7,8,4,30,14,17,2,1,1,65,18,12,16,4,2,45,123,12,56,33,1,4,3,4,7,0,0,0,3,2,0,16,4,2,4,2,0,7,4,5,2,26, - 2,25,6,11,6,1,16,2,6,17,77,15,3,35,0,1,0,5,1,0,38,16,6,3,12,3,3,3,0,9,3,1,3,5,2,9,0,18,0,25,1,3,32,1,72,46,6,2,7,1,3,14,17,0,28,1,40,13,0,20, - 15,40,6,38,24,12,43,1,1,9,0,12,6,0,6,2,4,19,3,7,1,48,0,9,5,0,5,6,9,6,10,15,2,11,19,3,9,2,0,1,10,1,27,8,1,3,6,1,14,0,26,0,27,16,3,4,9,6,2,23, - 9,10,5,25,2,1,6,1,1,48,15,9,15,14,3,4,26,60,29,13,37,21,1,6,4,0,2,11,22,23,16,16,2,2,1,3,0,5,1,6,4,0,0,4,0,0,8,3,0,2,5,0,7,1,7,3,13,2,4,10, - 3,0,2,31,0,18,3,0,12,10,4,1,0,7,5,7,0,5,4,12,2,22,10,4,2,15,2,8,9,0,23,2,197,51,3,1,1,4,13,4,3,21,4,19,3,10,5,40,0,4,1,1,10,4,1,27,34,7,21, - 2,17,2,9,6,4,2,3,0,4,2,7,8,2,5,1,15,21,3,4,4,2,2,17,22,1,5,22,4,26,7,0,32,1,11,42,15,4,1,2,5,0,19,3,1,8,6,0,10,1,9,2,13,30,8,2,24,17,19,1,4, - 4,25,13,0,10,16,11,39,18,8,5,30,82,1,6,8,18,77,11,13,20,75,11,112,78,33,3,0,0,60,17,84,9,1,1,12,30,10,49,5,32,158,178,5,5,6,3,3,1,3,1,4,7,6, - 19,31,21,0,2,9,5,6,27,4,9,8,1,76,18,12,1,4,0,3,3,6,3,12,2,8,30,16,2,25,1,5,5,4,3,0,6,10,2,3,1,0,5,1,19,3,0,8,1,5,2,6,0,0,0,19,1,2,0,5,1,2,5, - 1,3,7,0,4,12,7,3,10,22,0,9,5,1,0,2,20,1,1,3,23,30,3,9,9,1,4,191,14,3,15,6,8,50,0,1,0,0,4,0,0,1,0,2,4,2,0,2,3,0,2,0,2,2,8,7,0,1,1,1,3,3,17,11, - 91,1,9,3,2,13,4,24,15,41,3,13,3,1,20,4,125,29,30,1,0,4,12,2,21,4,5,5,19,11,0,13,11,86,2,18,0,7,1,8,8,2,2,22,1,2,6,5,2,0,1,2,8,0,2,0,5,2,1,0, - 2,10,2,0,5,9,2,1,2,0,1,0,4,0,0,10,2,5,3,0,6,1,0,1,4,4,33,3,13,17,3,18,6,4,7,1,5,78,0,4,1,13,7,1,8,1,0,35,27,15,3,0,0,0,1,11,5,41,38,15,22,6, - 14,14,2,1,11,6,20,63,5,8,27,7,11,2,2,40,58,23,50,54,56,293,8,8,1,5,1,14,0,1,12,37,89,8,8,8,2,10,6,0,0,0,4,5,2,1,0,1,1,2,7,0,3,3,0,4,6,0,3,2, - 19,3,8,0,0,0,4,4,16,0,4,1,5,1,3,0,3,4,6,2,17,10,10,31,6,4,3,6,10,126,7,3,2,2,0,9,0,0,5,20,13,0,15,0,6,0,2,5,8,64,50,3,2,12,2,9,0,0,11,8,20, - 109,2,18,23,0,0,9,61,3,0,28,41,77,27,19,17,81,5,2,14,5,83,57,252,14,154,263,14,20,8,13,6,57,39,38, - }; - static int ranges_unpacked = false; - static ImWchar ranges[8 + IM_ARRAYSIZE(offsets_from_0x4E00)*2 + 1] = - { - 0x0020, 0x00FF, // Basic Latin + Latin Supplement - 0x3000, 0x30FF, // Punctuations, Hiragana, Katakana - 0x31F0, 0x31FF, // Katakana Phonetic Extensions - 0xFF00, 0xFFEF, // Half-width characters - }; - if (!ranges_unpacked) - { - // Unpack - int codepoint = 0x4e00; - ImWchar* dst = &ranges[8]; - for (int n = 0; n < IM_ARRAYSIZE(offsets_from_0x4E00); n++, dst += 2) - dst[0] = dst[1] = (ImWchar)(codepoint += (offsets_from_0x4E00[n] + 1)); - dst[0] = 0; - ranges_unpacked = true; - } - return &ranges[0]; -} - -const ImWchar* ImFontAtlas::GetGlyphRangesCyrillic() -{ - static const ImWchar ranges[] = - { - 0x0020, 0x00FF, // Basic Latin + Latin Supplement - 0x0400, 0x052F, // Cyrillic + Cyrillic Supplement - 0x2DE0, 0x2DFF, // Cyrillic Extended-A - 0xA640, 0xA69F, // Cyrillic Extended-B - 0, - }; - return &ranges[0]; -} - -//----------------------------------------------------------------------------- -// ImFont -//----------------------------------------------------------------------------- - -ImFont::ImFont() -{ - Scale = 1.0f; - FallbackChar = (ImWchar)'?'; - Clear(); -} - -ImFont::~ImFont() -{ - // Invalidate active font so that the user gets a clear crash instead of a dangling pointer. - // If you want to delete fonts you need to do it between Render() and NewFrame(). - // FIXME-CLEANUP - /* - ImGuiState& g = *GImGui; - if (g.Font == this) - g.Font = NULL; - */ - Clear(); -} - -void ImFont::Clear() -{ - FontSize = 0.0f; - DisplayOffset = ImVec2(0.0f, 1.0f); - ConfigData = NULL; - ConfigDataCount = 0; - Ascent = Descent = 0.0f; - ContainerAtlas = NULL; - Glyphs.clear(); - FallbackGlyph = NULL; - FallbackXAdvance = 0.0f; - IndexXAdvance.clear(); - IndexLookup.clear(); -} - -void ImFont::BuildLookupTable() -{ - int max_codepoint = 0; - for (int i = 0; i != Glyphs.Size; i++) - max_codepoint = ImMax(max_codepoint, (int)Glyphs[i].Codepoint); - - IndexXAdvance.clear(); - IndexXAdvance.resize(max_codepoint + 1); - IndexLookup.clear(); - IndexLookup.resize(max_codepoint + 1); - for (int i = 0; i < max_codepoint + 1; i++) - { - IndexXAdvance[i] = -1.0f; - IndexLookup[i] = -1; - } - for (int i = 0; i < Glyphs.Size; i++) - { - int codepoint = (int)Glyphs[i].Codepoint; - IndexXAdvance[codepoint] = Glyphs[i].XAdvance; - IndexLookup[codepoint] = i; - } - - // Create a glyph to handle TAB - // FIXME: Needs proper TAB handling but it needs to be contextualized (can arbitrary say that each string starts at "column 0" - if (FindGlyph((unsigned short)' ')) - { - if (Glyphs.back().Codepoint != '\t') // So we can call this function multiple times - Glyphs.resize(Glyphs.Size + 1); - ImFont::Glyph& tab_glyph = Glyphs.back(); - tab_glyph = *FindGlyph((unsigned short)' '); - tab_glyph.Codepoint = '\t'; - tab_glyph.XAdvance *= 4; - IndexXAdvance[(int)tab_glyph.Codepoint] = (float)tab_glyph.XAdvance; - IndexLookup[(int)tab_glyph.Codepoint] = (int)(Glyphs.Size-1); - } - - FallbackGlyph = NULL; - FallbackGlyph = FindGlyph(FallbackChar); - FallbackXAdvance = FallbackGlyph ? FallbackGlyph->XAdvance : 0.0f; - for (int i = 0; i < max_codepoint + 1; i++) - if (IndexXAdvance[i] < 0.0f) - IndexXAdvance[i] = FallbackXAdvance; -} - -void ImFont::SetFallbackChar(ImWchar c) -{ - FallbackChar = c; - BuildLookupTable(); -} - -const ImFont::Glyph* ImFont::FindGlyph(unsigned short c) const -{ - if (c < IndexLookup.Size) - { - const int i = IndexLookup[c]; - if (i != -1) - return &Glyphs[i]; - } - return FallbackGlyph; -} - -const char* ImFont::CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const -{ - // Simple word-wrapping for English, not full-featured. Please submit failing cases! - // FIXME: Much possible improvements (don't cut things like "word !", "word!!!" but cut within "word,,,,", more sensible support for punctuations, support for Unicode punctuations, etc.) - - // For references, possible wrap point marked with ^ - // "aaa bbb, ccc,ddd. eee fff. ggg!" - // ^ ^ ^ ^ ^__ ^ ^ - - // List of hardcoded separators: .,;!?'" - - // Skip extra blanks after a line returns (that includes not counting them in width computation) - // e.g. "Hello world" --> "Hello" "World" - - // Cut words that cannot possibly fit within one line. - // e.g.: "The tropical fish" with ~5 characters worth of width --> "The tr" "opical" "fish" - - float line_width = 0.0f; - float word_width = 0.0f; - float blank_width = 0.0f; - - const char* word_end = text; - const char* prev_word_end = NULL; - bool inside_word = true; - - const char* s = text; - while (s < text_end) - { - unsigned int c = (unsigned int)*s; - const char* next_s; - if (c < 0x80) - next_s = s + 1; - else - next_s = s + ImTextCharFromUtf8(&c, s, text_end); - if (c == 0) - break; - - if (c < 32) - { - if (c == '\n') - { - line_width = word_width = blank_width = 0.0f; - inside_word = true; - s = next_s; - continue; - } - if (c == '\r') - { - s = next_s; - continue; - } - } - - const float char_width = ((int)c < IndexXAdvance.Size) ? IndexXAdvance[(int)c] * scale : FallbackXAdvance; - if (ImCharIsSpace(c)) - { - if (inside_word) - { - line_width += blank_width; - blank_width = 0.0f; - } - blank_width += char_width; - inside_word = false; - } - else - { - word_width += char_width; - if (inside_word) - { - word_end = next_s; - } - else - { - prev_word_end = word_end; - line_width += word_width + blank_width; - word_width = blank_width = 0.0f; - } - - // Allow wrapping after punctuation. - inside_word = !(c == '.' || c == ',' || c == ';' || c == '!' || c == '?' || c == '\"'); - } - - // We ignore blank width at the end of the line (they can be skipped) - if (line_width + word_width >= wrap_width) - { - // Words that cannot possibly fit within an entire line will be cut anywhere. - if (word_width < wrap_width) - s = prev_word_end ? prev_word_end : word_end; - break; - } - - s = next_s; - } - - return s; -} - -ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end, const char** remaining) const -{ - if (!text_end) - text_end = text_begin + strlen(text_begin); // FIXME-OPT: Need to avoid this. - - const float line_height = size; - const float scale = size / FontSize; - - ImVec2 text_size = ImVec2(0,0); - float line_width = 0.0f; - - const bool word_wrap_enabled = (wrap_width > 0.0f); - const char* word_wrap_eol = NULL; - - const char* s = text_begin; - while (s < text_end) - { - if (word_wrap_enabled) - { - // Calculate how far we can render. Requires two passes on the string data but keeps the code simple and not intrusive for what's essentially an uncommon feature. - if (!word_wrap_eol) - { - word_wrap_eol = CalcWordWrapPositionA(scale, s, text_end, wrap_width - line_width); - if (word_wrap_eol == s) // Wrap_width is too small to fit anything. Force displaying 1 character to minimize the height discontinuity. - word_wrap_eol++; // +1 may not be a character start point in UTF-8 but it's ok because we use s >= word_wrap_eol below - } - - if (s >= word_wrap_eol) - { - if (text_size.x < line_width) - text_size.x = line_width; - text_size.y += line_height; - line_width = 0.0f; - word_wrap_eol = NULL; - - // Wrapping skips upcoming blanks - while (s < text_end) - { - const char c = *s; - if (ImCharIsSpace(c)) { s++; } else if (c == '\n') { s++; break; } else { break; } - } - continue; - } - } - - // Decode and advance source (handle unlikely UTF-8 decoding failure by skipping to the next byte) - const char* prev_s = s; - unsigned int c = (unsigned int)*s; - if (c < 0x80) - { - s += 1; - } - else - { - s += ImTextCharFromUtf8(&c, s, text_end); - if (c == 0) - break; - } - - if (c < 32) - { - if (c == '\n') - { - text_size.x = ImMax(text_size.x, line_width); - text_size.y += line_height; - line_width = 0.0f; - continue; - } - if (c == '\r') - continue; - } - - const float char_width = ((int)c < IndexXAdvance.Size ? IndexXAdvance[(int)c] : FallbackXAdvance) * scale; - if (line_width + char_width >= max_width) - { - s = prev_s; - break; - } - - line_width += char_width; - } - - if (text_size.x < line_width) - text_size.x = line_width; - - if (line_width > 0 || text_size.y == 0.0f) - text_size.y += line_height; - - if (remaining) - *remaining = s; - - return text_size; -} - -void ImFont::RenderText(float size, ImVec2 pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, ImDrawList* draw_list, float wrap_width, bool cpu_fine_clip) const -{ - if (!text_end) - text_end = text_begin + strlen(text_begin); - - // Align to be pixel perfect - pos.x = (float)(int)pos.x + DisplayOffset.x; - pos.y = (float)(int)pos.y + DisplayOffset.y; - float x = pos.x; - float y = pos.y; - if (y > clip_rect.w) - return; - - const float scale = size / FontSize; - const float line_height = FontSize * scale; - const bool word_wrap_enabled = (wrap_width > 0.0f); - const char* word_wrap_eol = NULL; - - ImDrawVert* vtx_write = draw_list->_VtxWritePtr; - ImDrawIdx* idx_write = draw_list->_IdxWritePtr; - unsigned int vtx_current_idx = draw_list->_VtxCurrentIdx; - - const char* s = text_begin; - if (!word_wrap_enabled && y + line_height < clip_rect.y) - while (s < text_end && *s != '\n') // Fast-forward to next line - s++; - while (s < text_end) - { - if (word_wrap_enabled) - { - // Calculate how far we can render. Requires two passes on the string data but keeps the code simple and not intrusive for what's essentially an uncommon feature. - if (!word_wrap_eol) - { - word_wrap_eol = CalcWordWrapPositionA(scale, s, text_end, wrap_width - (x - pos.x)); - if (word_wrap_eol == s) // Wrap_width is too small to fit anything. Force displaying 1 character to minimize the height discontinuity. - word_wrap_eol++; // +1 may not be a character start point in UTF-8 but it's ok because we use s >= word_wrap_eol below - } - - if (s >= word_wrap_eol) - { - x = pos.x; - y += line_height; - word_wrap_eol = NULL; - - // Wrapping skips upcoming blanks - while (s < text_end) - { - const char c = *s; - if (ImCharIsSpace(c)) { s++; } else if (c == '\n') { s++; break; } else { break; } - } - continue; - } - } - - // Decode and advance source (handle unlikely UTF-8 decoding failure by skipping to the next byte) - unsigned int c = (unsigned int)*s; - if (c < 0x80) - { - s += 1; - } - else - { - s += ImTextCharFromUtf8(&c, s, text_end); - if (c == 0) - break; - } - - if (c < 32) - { - if (c == '\n') - { - x = pos.x; - y += line_height; - - if (y > clip_rect.w) - break; - if (!word_wrap_enabled && y + line_height < clip_rect.y) - while (s < text_end && *s != '\n') // Fast-forward to next line - s++; - continue; - } - if (c == '\r') - continue; - } - - float char_width = 0.0f; - if (const Glyph* glyph = FindGlyph((unsigned short)c)) - { - char_width = glyph->XAdvance * scale; - - // Clipping on Y is more likely - if (c != ' ' && c != '\t') - { - // We don't do a second finer clipping test on the Y axis (todo: do some measurement see if it is worth it, probably not) - float y1 = (float)(y + glyph->Y0 * scale); - float y2 = (float)(y + glyph->Y1 * scale); - - float x1 = (float)(x + glyph->X0 * scale); - float x2 = (float)(x + glyph->X1 * scale); - if (x1 <= clip_rect.z && x2 >= clip_rect.x) - { - // Render a character - float u1 = glyph->U0; - float v1 = glyph->V0; - float u2 = glyph->U1; - float v2 = glyph->V1; - - // CPU side clipping used to fit text in their frame when the frame is too small. Only does clipping for axis aligned quads - if (cpu_fine_clip) - { - if (x1 < clip_rect.x) - { - u1 = u1 + (1.0f - (x2 - clip_rect.x) / (x2 - x1)) * (u2 - u1); - x1 = clip_rect.x; - } - if (y1 < clip_rect.y) - { - v1 = v1 + (1.0f - (y2 - clip_rect.y) / (y2 - y1)) * (v2 - v1); - y1 = clip_rect.y; - } - if (x2 > clip_rect.z) - { - u2 = u1 + ((clip_rect.z - x1) / (x2 - x1)) * (u2 - u1); - x2 = clip_rect.z; - } - if (y2 > clip_rect.w) - { - v2 = v1 + ((clip_rect.w - y1) / (y2 - y1)) * (v2 - v1); - y2 = clip_rect.w; - } - if (y1 >= y2) - { - x += char_width; - continue; - } - } - - // NB: we are not calling PrimRectUV() here because non-inlined causes too much overhead in a debug build. - // inlined: - { - idx_write[0] = (ImDrawIdx)(vtx_current_idx); idx_write[1] = (ImDrawIdx)(vtx_current_idx+1); idx_write[2] = (ImDrawIdx)(vtx_current_idx+2); - idx_write[3] = (ImDrawIdx)(vtx_current_idx); idx_write[4] = (ImDrawIdx)(vtx_current_idx+2); idx_write[5] = (ImDrawIdx)(vtx_current_idx+3); - vtx_write[0].pos.x = x1; vtx_write[0].pos.y = y1; vtx_write[0].col = col; vtx_write[0].uv.x = u1; vtx_write[0].uv.y = v1; - vtx_write[1].pos.x = x2; vtx_write[1].pos.y = y1; vtx_write[1].col = col; vtx_write[1].uv.x = u2; vtx_write[1].uv.y = v1; - vtx_write[2].pos.x = x2; vtx_write[2].pos.y = y2; vtx_write[2].col = col; vtx_write[2].uv.x = u2; vtx_write[2].uv.y = v2; - vtx_write[3].pos.x = x1; vtx_write[3].pos.y = y2; vtx_write[3].col = col; vtx_write[3].uv.x = u1; vtx_write[3].uv.y = v2; - vtx_write += 4; - vtx_current_idx += 4; - idx_write += 6; - } - } - } - } - - x += char_width; - } - - draw_list->_VtxWritePtr = vtx_write; - draw_list->_VtxCurrentIdx = vtx_current_idx; - draw_list->_IdxWritePtr = idx_write; -} - -//----------------------------------------------------------------------------- -// DEFAULT FONT DATA -//----------------------------------------------------------------------------- -// Compressed with stb_compress() then converted to a C array. -// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file. -// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h -//----------------------------------------------------------------------------- - -static unsigned int stb_decompress_length(unsigned char *input) -{ - return (input[8] << 24) + (input[9] << 16) + (input[10] << 8) + input[11]; -} - -static unsigned char *stb__barrier, *stb__barrier2, *stb__barrier3, *stb__barrier4; -static unsigned char *stb__dout; -static void stb__match(unsigned char *data, unsigned int length) -{ - // INVERSE of memmove... write each byte before copying the next... - IM_ASSERT (stb__dout + length <= stb__barrier); - if (stb__dout + length > stb__barrier) { stb__dout += length; return; } - if (data < stb__barrier4) { stb__dout = stb__barrier+1; return; } - while (length--) *stb__dout++ = *data++; -} - -static void stb__lit(unsigned char *data, unsigned int length) -{ - IM_ASSERT (stb__dout + length <= stb__barrier); - if (stb__dout + length > stb__barrier) { stb__dout += length; return; } - if (data < stb__barrier2) { stb__dout = stb__barrier+1; return; } - memcpy(stb__dout, data, length); - stb__dout += length; -} - -#define stb__in2(x) ((i[x] << 8) + i[(x)+1]) -#define stb__in3(x) ((i[x] << 16) + stb__in2((x)+1)) -#define stb__in4(x) ((i[x] << 24) + stb__in3((x)+1)) - -static unsigned char *stb_decompress_token(unsigned char *i) -{ - if (*i >= 0x20) { // use fewer if's for cases that expand small - if (*i >= 0x80) stb__match(stb__dout-i[1]-1, i[0] - 0x80 + 1), i += 2; - else if (*i >= 0x40) stb__match(stb__dout-(stb__in2(0) - 0x4000 + 1), i[2]+1), i += 3; - else /* *i >= 0x20 */ stb__lit(i+1, i[0] - 0x20 + 1), i += 1 + (i[0] - 0x20 + 1); - } else { // more ifs for cases that expand large, since overhead is amortized - if (*i >= 0x18) stb__match(stb__dout-(stb__in3(0) - 0x180000 + 1), i[3]+1), i += 4; - else if (*i >= 0x10) stb__match(stb__dout-(stb__in3(0) - 0x100000 + 1), stb__in2(3)+1), i += 5; - else if (*i >= 0x08) stb__lit(i+2, stb__in2(0) - 0x0800 + 1), i += 2 + (stb__in2(0) - 0x0800 + 1); - else if (*i == 0x07) stb__lit(i+3, stb__in2(1) + 1), i += 3 + (stb__in2(1) + 1); - else if (*i == 0x06) stb__match(stb__dout-(stb__in3(1)+1), i[4]+1), i += 5; - else if (*i == 0x04) stb__match(stb__dout-(stb__in3(1)+1), stb__in2(4)+1), i += 6; - } - return i; -} - -static unsigned int stb_adler32(unsigned int adler32, unsigned char *buffer, unsigned int buflen) -{ - const unsigned long ADLER_MOD = 65521; - unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16; - unsigned long blocklen, i; - - blocklen = buflen % 5552; - while (buflen) { - for (i=0; i + 7 < blocklen; i += 8) { - s1 += buffer[0], s2 += s1; - s1 += buffer[1], s2 += s1; - s1 += buffer[2], s2 += s1; - s1 += buffer[3], s2 += s1; - s1 += buffer[4], s2 += s1; - s1 += buffer[5], s2 += s1; - s1 += buffer[6], s2 += s1; - s1 += buffer[7], s2 += s1; - - buffer += 8; - } - - for (; i < blocklen; ++i) - s1 += *buffer++, s2 += s1; - - s1 %= ADLER_MOD, s2 %= ADLER_MOD; - buflen -= blocklen; - blocklen = 5552; - } - return (unsigned int)(s2 << 16) + (unsigned int)s1; -} - -static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length) -{ - unsigned int olen; - if (stb__in4(0) != 0x57bC0000) return 0; - if (stb__in4(4) != 0) return 0; // error! stream is > 4GB - olen = stb_decompress_length(i); - stb__barrier2 = i; - stb__barrier3 = i+length; - stb__barrier = output + olen; - stb__barrier4 = output; - i += 16; - - stb__dout = output; - for (;;) { - unsigned char *old_i = i; - i = stb_decompress_token(i); - if (i == old_i) { - if (*i == 0x05 && i[1] == 0xfa) { - IM_ASSERT(stb__dout == output + olen); - if (stb__dout != output + olen) return 0; - if (stb_adler32(1, output, olen) != (unsigned int) stb__in4(2)) - return 0; - return olen; - } else { - IM_ASSERT(0); /* NOTREACHED */ - return 0; - } - } - IM_ASSERT(stb__dout <= output + olen); - if (stb__dout > output + olen) - return 0; - } -} - -//----------------------------------------------------------------------------- -// ProggyClean.ttf -// Copyright (c) 2004, 2005 Tristan Grimmer -// MIT license (see License.txt in http://www.upperbounds.net/download/ProggyClean.ttf.zip) -// Download and more information at http://upperbounds.net -//----------------------------------------------------------------------------- -// File: 'ProggyClean.ttf' (41208 bytes) -// Exported using binary_to_compressed_c.cpp -//----------------------------------------------------------------------------- -static const char proggy_clean_ttf_compressed_data_base85[11980+1] = - "7])#######hV0qs'/###[),##/l:$#Q6>##5[n42>c-TH`->>#/e>11NNV=Bv(*:.F?uu#(gRU.o0XGH`$vhLG1hxt9?W`#,5LsCp#-i>.r$<$6pD>Lb';9Crc6tgXmKVeU2cD4Eo3R/" - "2*>]b(MC;$jPfY.;h^`IWM9Qo#t'X#(v#Y9w0#1D$CIf;W'#pWUPXOuxXuU(H9M(1=Ke$$'5F%)]0^#0X@U.a$FBjVQTSDgEKnIS7EM9>ZY9w0#L;>>#Mx&4Mvt//L[MkA#W@lK.N'[0#7RL_&#w+F%HtG9M#XL`N&.,GM4Pg;--VsM.M0rJfLH2eTM`*oJMHRC`N" - "kfimM2J,W-jXS:)r0wK#@Fge$U>`w'N7G#$#fB#$E^$#:9:hk+eOe--6x)F7*E%?76%^GMHePW-Z5l'&GiF#$956:rS?dA#fiK:)Yr+`�j@'DbG&#^$PG.Ll+DNa&VZ>1i%h1S9u5o@YaaW$e+bROPOpxTO7Stwi1::iB1q)C_=dV26J;2,]7op$]uQr@_V7$q^%lQwtuHY]=DX,n3L#0PHDO4f9>dC@O>HBuKPpP*E,N+b3L#lpR/MrTEH.IAQk.a>D[.e;mc." - "x]Ip.PH^'/aqUO/$1WxLoW0[iLAw=4h(9.`G" - "CRUxHPeR`5Mjol(dUWxZa(>STrPkrJiWx`5U7F#.g*jrohGg`cg:lSTvEY/EV_7H4Q9[Z%cnv;JQYZ5q.l7Zeas:HOIZOB?Ggv:[7MI2k).'2($5FNP&EQ(,)" - "U]W]+fh18.vsai00);D3@4ku5P?DP8aJt+;qUM]=+b'8@;mViBKx0DE[-auGl8:PJ&Dj+M6OC]O^((##]`0i)drT;-7X`=-H3[igUnPG-NZlo.#k@h#=Ork$m>a>$-?Tm$UV(?#P6YY#" - "'/###xe7q.73rI3*pP/$1>s9)W,JrM7SN]'/4C#v$U`0#V.[0>xQsH$fEmPMgY2u7Kh(G%siIfLSoS+MK2eTM$=5,M8p`A.;_R%#u[K#$x4AG8.kK/HSB==-'Ie/QTtG?-.*^N-4B/ZM" - "_3YlQC7(p7q)&](`6_c)$/*JL(L-^(]$wIM`dPtOdGA,U3:w2M-0+WomX2u7lqM2iEumMTcsF?-aT=Z-97UEnXglEn1K-bnEO`gu" - "Ft(c%=;Am_Qs@jLooI&NX;]0#j4#F14;gl8-GQpgwhrq8'=l_f-b49'UOqkLu7-##oDY2L(te+Mch&gLYtJ,MEtJfLh'x'M=$CS-ZZ%P]8bZ>#S?YY#%Q&q'3^Fw&?D)UDNrocM3A76/" - "/oL?#h7gl85[qW/NDOk%16ij;+:1a'iNIdb-ou8.P*w,v5#EI$TWS>Pot-R*H'-SEpA:g)f+O$%%`kA#G=8RMmG1&O`>to8bC]T&$,n.LoO>29sp3dt-52U%VM#q7'DHpg+#Z9%H[Ket`e;)f#Km8&+DC$I46>#Kr]]u-[=99tts1.qb#q72g1WJO81q+eN'03'eM>&1XxY-caEnO" - "j%2n8)),?ILR5^.Ibn<-X-Mq7[a82Lq:F&#ce+S9wsCK*x`569E8ew'He]h:sI[2LM$[guka3ZRd6:t%IG:;$%YiJ:Nq=?eAw;/:nnDq0(CYcMpG)qLN4$##&J-XTt,%OVU4)S1+R-#dg0/Nn?Ku1^0f$B*P:Rowwm-`0PKjYDDM'3]d39VZHEl4,.j']Pk-M.h^&:0FACm$maq-&sgw0t7/6(^xtk%" - "LuH88Fj-ekm>GA#_>568x6(OFRl-IZp`&b,_P'$MhLbxfc$mj`,O;&%W2m`Zh:/)Uetw:aJ%]K9h:TcF]u_-Sj9,VK3M.*'&0D[Ca]J9gp8,kAW]" - "%(?A%R$f<->Zts'^kn=-^@c4%-pY6qI%J%1IGxfLU9CP8cbPlXv);C=b),<2mOvP8up,UVf3839acAWAW-W?#ao/^#%KYo8fRULNd2.>%m]UK:n%r$'sw]J;5pAoO_#2mO3n,'=H5(et" - "Hg*`+RLgv>=4U8guD$I%D:W>-r5V*%j*W:Kvej.Lp$'?;++O'>()jLR-^u68PHm8ZFWe+ej8h:9r6L*0//c&iH&R8pRbA#Kjm%upV1g:" - "a_#Ur7FuA#(tRh#.Y5K+@?3<-8m0$PEn;J:rh6?I6uG<-`wMU'ircp0LaE_OtlMb&1#6T.#FDKu#1Lw%u%+GM+X'e?YLfjM[VO0MbuFp7;>Q&#WIo)0@F%q7c#4XAXN-U&VBpqB>0ie&jhZ[?iLR@@_AvA-iQC(=ksRZRVp7`.=+NpBC%rh&3]R:8XDmE5^V8O(x<-+k?'(^](H.aREZSi,#1:[IXaZFOm<-ui#qUq2$##Ri;u75OK#(RtaW-K-F`S+cF]uN`-KMQ%rP/Xri.LRcB##=YL3BgM/3M" - "D?@f&1'BW-)Ju#bmmWCMkk&#TR`C,5d>g)F;t,4:@_l8G/5h4vUd%&%950:VXD'QdWoY-F$BtUwmfe$YqL'8(PWX(" - "P?^@Po3$##`MSs?DWBZ/S>+4%>fX,VWv/w'KD`LP5IbH;rTV>n3cEK8U#bX]l-/V+^lj3;vlMb&[5YQ8#pekX9JP3XUC72L,,?+Ni&co7ApnO*5NK,((W-i:$,kp'UDAO(G0Sq7MVjJs" - "bIu)'Z,*[>br5fX^:FPAWr-m2KgLQ_nN6'8uTGT5g)uLv:873UpTLgH+#FgpH'_o1780Ph8KmxQJ8#H72L4@768@Tm&Q" - "h4CB/5OvmA&,Q&QbUoi$a_%3M01H)4x7I^&KQVgtFnV+;[Pc>[m4k//,]1?#`VY[Jr*3&&slRfLiVZJ:]?=K3Sw=[$=uRB?3xk48@aege0jT6'N#(q%.O=?2S]u*(m<-" - "V8J'(1)G][68hW$5'q[GC&5j`TE?m'esFGNRM)j,ffZ?-qx8;->g4t*:CIP/[Qap7/9'#(1sao7w-.qNUdkJ)tCF&#B^;xGvn2r9FEPFFFcL@.iFNkTve$m%#QvQS8U@)2Z+3K:AKM5i" - "sZ88+dKQ)W6>J%CL`.d*(B`-n8D9oK-XV1q['-5k'cAZ69e;D_?$ZPP&s^+7])$*$#@QYi9,5P r+$%CE=68>K8r0=dSC%%(@p7" - ".m7jilQ02'0-VWAgTlGW'b)Tq7VT9q^*^$$.:&N@@" - "$&)WHtPm*5_rO0&e%K&#-30j(E4#'Zb.o/(Tpm$>K'f@[PvFl,hfINTNU6u'0pao7%XUp9]5.>%h`8_=VYbxuel.NTSsJfLacFu3B'lQSu/m6-Oqem8T+oE--$0a/k]uj9EwsG>%veR*" - "hv^BFpQj:K'#SJ,sB-'#](j.Lg92rTw-*n%@/;39rrJF,l#qV%OrtBeC6/,;qB3ebNW[?,Hqj2L.1NP&GjUR=1D8QaS3Up&@*9wP?+lo7b?@%'k4`p0Z$22%K3+iCZj?XJN4Nm&+YF]u" - "@-W$U%VEQ/,,>>#)D#%8cY#YZ?=,`Wdxu/ae&#" - "w6)R89tI#6@s'(6Bf7a&?S=^ZI_kS&ai`&=tE72L_D,;^R)7[$so8lKN%5/$(vdfq7+ebA#" - "u1p]ovUKW&Y%q]'>$1@-[xfn$7ZTp7mM,G,Ko7a&Gu%G[RMxJs[0MM%wci.LFDK)(%:_i2B5CsR8&9Z&#=mPEnm0f`<&c)QL5uJ#%u%lJj+D-r;BoFDoS97h5g)E#o:&S4weDF,9^Hoe`h*L+_a*NrLW-1pG_&2UdB8" - "6e%B/:=>)N4xeW.*wft-;$'58-ESqr#U`'6AQ]m&6/`Z>#S?YY#Vc;r7U2&326d=w&H####?TZ`*4?&.MK?LP8Vxg>$[QXc%QJv92.(Db*B)gb*BM9dM*hJMAo*c&#" - "b0v=Pjer]$gG&JXDf->'StvU7505l9$AFvgYRI^&<^b68?j#q9QX4SM'RO#&sL1IM.rJfLUAj221]d##DW=m83u5;'bYx,*Sl0hL(W;;$doB&O/TQ:(Z^xBdLjLV#*8U_72Lh+2Q8Cj0i:6hp&$C/:p(HK>T8Y[gHQ4`4)'$Ab(Nof%V'8hL&#SfD07&6D@M.*J:;$-rv29'M]8qMv-tLp,'886iaC=Hb*YJoKJ,(j%K=H`K.v9HggqBIiZu'QvBT.#=)0ukruV&.)3=(^1`o*Pj4<-#MJ+gLq9-##@HuZPN0]u:h7.T..G:;$/Usj(T7`Q8tT72LnYl<-qx8;-HV7Q-&Xdx%1a,hC=0u+HlsV>nuIQL-5" - "_>@kXQtMacfD.m-VAb8;IReM3$wf0''hra*so568'Ip&vRs849'MRYSp%:t:h5qSgwpEr$B>Q,;s(C#$)`svQuF$##-D,##,g68@2[T;.XSdN9Qe)rpt._K-#5wF)sP'##p#C0c%-Gb%" - "hd+<-j'Ai*x&&HMkT]C'OSl##5RG[JXaHN;d'uA#x._U;.`PU@(Z3dt4r152@:v,'R.Sj'w#0<-;kPI)FfJ&#AYJ&#//)>-k=m=*XnK$>=)72L]0I%>.G690a:$##<,);?;72#?x9+d;" - "^V'9;jY@;)br#q^YQpx:X#Te$Z^'=-=bGhLf:D6&bNwZ9-ZD#n^9HhLMr5G;']d&6'wYmTFmLq9wI>P(9mI[>kC-ekLC/R&CH+s'B;K-M6$EB%is00:" - "+A4[7xks.LrNk0&E)wILYF@2L'0Nb$+pv<(2.768/FrY&h$^3i&@+G%JT'<-,v`3;_)I9M^AE]CN?Cl2AZg+%4iTpT3$U4O]GKx'm9)b@p7YsvK3w^YR-" - "CdQ*:Ir<($u&)#(&?L9Rg3H)4fiEp^iI9O8KnTj,]H?D*r7'M;PwZ9K0E^k&-cpI;.p/6_vwoFMV<->#%Xi.LxVnrU(4&8/P+:hLSKj$#U%]49t'I:rgMi'FL@a:0Y-uA[39',(vbma*" - "hU%<-SRF`Tt:542R_VV$p@[p8DV[A,?1839FWdFTi1O*H&#(AL8[_P%.M>v^-))qOT*F5Cq0`Ye%+$B6i:7@0IXSsDiWP,##P`%/L-" - "S(qw%sf/@%#B6;/U7K]uZbi^Oc^2n%t<)'mEVE''n`WnJra$^TKvX5B>;_aSEK',(hwa0:i4G?.Bci.(X[?b*($,=-n<.Q%`(X=?+@Am*Js0&=3bh8K]mL69=Lb,OcZV/);TTm8VI;?%OtJ<(b4mq7M6:u?KRdFl*:xP?Yb.5)%w_I?7uk5JC+FS(m#i'k.'a0i)9<7b'fs'59hq$*5Uhv##pi^8+hIEBF`nvo`;'l0.^S1<-wUK2/Coh58KKhLj" - "M=SO*rfO`+qC`W-On.=AJ56>>i2@2LH6A:&5q`?9I3@@'04&p2/LVa*T-4<-i3;M9UvZd+N7>b*eIwg:CC)c<>nO&#$(>.Z-I&J(Q0Hd5Q%7Co-b`-cP)hI;*_F]u`Rb[.j8_Q/<&>uu+VsH$sM9TA%?)(vmJ80),P7E>)tjD%2L=-t#fK[%`v=Q8WlA2);Sa" - ">gXm8YB`1d@K#n]76-a$U,mF%Ul:#/'xoFM9QX-$.QN'>" - "[%$Z$uF6pA6Ki2O5:8w*vP1<-1`[G,)-m#>0`P&#eb#.3i)rtB61(o'$?X3B2Qft^ae_5tKL9MUe9b*sLEQ95C&`=G?@Mj=wh*'3E>=-<)Gt*Iw)'QG:`@I" - "wOf7&]1i'S01B+Ev/Nac#9S;=;YQpg_6U`*kVY39xK,[/6Aj7:'1Bm-_1EYfa1+o&o4hp7KN_Q(OlIo@S%;jVdn0'1h19w,WQhLI)3S#f$2(eb,jr*b;3Vw]*7NH%$c4Vs,eD9>XW8?N]o+(*pgC%/72LV-uW%iewS8W6m2rtCpo'RS1R84=@paTKt)>=%&1[)*vp'u+x,VrwN;&]kuO9JDbg=pO$J*.jVe;u'm0dr9l,<*wMK*Oe=g8lV_KEBFkO'oU]^=[-792#ok,)" - "i]lR8qQ2oA8wcRCZ^7w/Njh;?.stX?Q1>S1q4Bn$)K1<-rGdO'$Wr.Lc.CG)$/*JL4tNR/,SVO3,aUw'DJN:)Ss;wGn9A32ijw%FL+Z0Fn.U9;reSq)bmI32U==5ALuG&#Vf1398/pVo" - "1*c-(aY168o<`JsSbk-,1N;$>0:OUas(3:8Z972LSfF8eb=c-;>SPw7.6hn3m`9^Xkn(r.qS[0;T%&Qc=+STRxX'q1BNk3&*eu2;&8q$&x>Q#Q7^Tf+6<(d%ZVmj2bDi%.3L2n+4W'$P" - "iDDG)g,r%+?,$@?uou5tSe2aN_AQU*'IAO" - "URQ##V^Fv-XFbGM7Fl(N<3DhLGF%q.1rC$#:T__&Pi68%0xi_&[qFJ(77j_&JWoF.V735&T,[R*:xFR*K5>>#`bW-?4Ne_&6Ne_&6Ne_&n`kr-#GJcM6X;uM6X;uM(.a..^2TkL%oR(#" - ";u.T%fAr%4tJ8&><1=GHZ_+m9/#H1F^R#SC#*N=BA9(D?v[UiFY>>^8p,KKF.W]L29uLkLlu/+4T" - "w$)F./^n3+rlo+DB;5sIYGNk+i1t-69Jg--0pao7Sm#K)pdHW&;LuDNH@H>#/X-TI(;P>#,Gc>#0Su>#4`1?#8lC?#xL$#B.`$#F:r$#JF.%#NR@%#R_R%#Vke%#Zww%#_-4^Rh%Sflr-k'MS.o?.5/sWel/wpEM0%3'/1)K^f1-d>G21&v(35>V`39V7A4=onx4" - "A1OY5EI0;6Ibgr6M$HS7Q<)58C5w,;WoA*#[%T*#`1g*#d=#+#hI5+#lUG+#pbY+#tnl+#x$),#&1;,#*=M,#.I`,#2Ur,#6b.-#;w[H#iQtA#m^0B#qjBB#uvTB##-hB#'9$C#+E6C#" - "/QHC#3^ZC#7jmC#;v)D#?,)4kMYD4lVu`4m`:&5niUA5@(A5BA1]PBB:xlBCC=2CDLXMCEUtiCf&0g2'tN?PGT4CPGT4CPGT4CPGT4CPGT4CPGT4CPGT4CP" - "GT4CPGT4CPGT4CPGT4CPGT4CPGT4CP-qekC`.9kEg^+F$kwViFJTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5o,^<-28ZI'O?;xp" - "O?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xp;7q-#lLYI:xvD=#"; - -static const char* GetDefaultCompressedFontDataTTFBase85() -{ - return proggy_clean_ttf_compressed_data_base85; -} diff --git a/samples/D3D12/external/imgui/imgui_internal.h b/samples/D3D12/external/imgui/imgui_internal.h deleted file mode 100644 index dc5714f..0000000 --- a/samples/D3D12/external/imgui/imgui_internal.h +++ /dev/null @@ -1,664 +0,0 @@ -// ImGui library v1.44 -// Internals -// You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility! - -// Implement maths operators for ImVec2 (disabled by default to not collide with using IM_VEC2_CLASS_EXTRA along with your own math types+operators) -// #define IMGUI_DEFINE_MATH_OPERATORS - -#pragma once - -#include // FILE* -#include // sqrtf() - -//----------------------------------------------------------------------------- -// Forward Declarations -//----------------------------------------------------------------------------- - -struct ImRect; -struct ImGuiColMod; -struct ImGuiStyleMod; -struct ImGuiGroupData; -struct ImGuiSimpleColumns; -struct ImGuiDrawContext; -struct ImGuiTextEditState; -struct ImGuiIniData; -struct ImGuiMouseCursorData; -struct ImGuiPopupRef; -struct ImGuiState; -struct ImGuiWindow; - -typedef int ImGuiLayoutType; // enum ImGuiLayoutType_ -typedef int ImGuiButtonFlags; // enum ImGuiButtonFlags_ - -//------------------------------------------------------------------------- -// STB libraries -//------------------------------------------------------------------------- - -namespace ImGuiStb -{ - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunused-function" -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#endif - -#undef STB_TEXTEDIT_STRING -#undef STB_TEXTEDIT_CHARTYPE -#define STB_TEXTEDIT_STRING ImGuiTextEditState -#define STB_TEXTEDIT_CHARTYPE ImWchar -#define STB_TEXTEDIT_GETWIDTH_NEWLINE -1.0f -#include "stb_textedit.h" - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -} // namespace ImGuiStb - -//----------------------------------------------------------------------------- -// Context -//----------------------------------------------------------------------------- - -extern ImGuiState* GImGui; - -//----------------------------------------------------------------------------- -// Helpers -//----------------------------------------------------------------------------- - -#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR)/sizeof(*_ARR))) -#define IM_PI 3.14159265358979323846f - -// Helpers: UTF-8 <> wchar -int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, const ImWchar* in_text_end); // return output UTF-8 bytes count -int ImTextCharFromUtf8(unsigned int* out_char, const char* in_text, const char* in_text_end); // return input UTF-8 bytes count -int ImTextStrFromUtf8(ImWchar* buf, int buf_size, const char* in_text, const char* in_text_end, const char** in_remaining = NULL); // return input UTF-8 bytes count -int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end); // return number of UTF-8 code-points (NOT bytes count) -int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* in_text_end); // return number of bytes to express string as UTF-8 code-points - -// Helpers: Misc -ImU32 ImHash(const void* data, int data_size, ImU32 seed); -bool ImLoadFileToMemory(const char* filename, const char* file_open_mode, void** out_file_data, int* out_file_size = NULL, int padding_bytes = 0); -bool ImIsPointInTriangle(const ImVec2& p, const ImVec2& a, const ImVec2& b, const ImVec2& c); -static inline bool ImCharIsSpace(int c) { return c == ' ' || c == '\t' || c == 0x3000; } -static inline int ImUpperPowerOfTwo(int v) { v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; v++; return v; } - -// Helpers: String -int ImStricmp(const char* str1, const char* str2); -int ImStrnicmp(const char* str1, const char* str2, int count); -char* ImStrdup(const char* str); -int ImStrlenW(const ImWchar* str); -const ImWchar* ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin); // Find beginning-of-line -const char* ImStristr(const char* haystack, const char* needle, const char* needle_end); -int ImFormatString(char* buf, int buf_size, const char* fmt, ...); -int ImFormatStringV(char* buf, int buf_size, const char* fmt, va_list args); - -// Helpers: Math -// We are keeping those not leaking to the user by default, in the case the user has implicit cast operators between ImVec2 and its own types (when IM_VEC2_CLASS_EXTRA is defined) -#ifdef IMGUI_DEFINE_MATH_OPERATORS -static inline ImVec2 operator*(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x*rhs, lhs.y*rhs); } -static inline ImVec2 operator/(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x/rhs, lhs.y/rhs); } -static inline ImVec2 operator+(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x+rhs.x, lhs.y+rhs.y); } -static inline ImVec2 operator-(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x-rhs.x, lhs.y-rhs.y); } -static inline ImVec2 operator*(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x*rhs.x, lhs.y*rhs.y); } -static inline ImVec2 operator/(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x/rhs.x, lhs.y/rhs.y); } -static inline ImVec2& operator+=(ImVec2& lhs, const ImVec2& rhs) { lhs.x += rhs.x; lhs.y += rhs.y; return lhs; } -static inline ImVec2& operator-=(ImVec2& lhs, const ImVec2& rhs) { lhs.x -= rhs.x; lhs.y -= rhs.y; return lhs; } -static inline ImVec2& operator*=(ImVec2& lhs, const float rhs) { lhs.x *= rhs; lhs.y *= rhs; return lhs; } -static inline ImVec2& operator/=(ImVec2& lhs, const float rhs) { lhs.x /= rhs; lhs.y /= rhs; return lhs; } -static inline ImVec4 operator-(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x-rhs.x, lhs.y-rhs.y, lhs.z-rhs.z, lhs.w-lhs.w); } -#endif - -static inline int ImMin(int lhs, int rhs) { return lhs < rhs ? lhs : rhs; } -static inline int ImMax(int lhs, int rhs) { return lhs >= rhs ? lhs : rhs; } -static inline float ImMin(float lhs, float rhs) { return lhs < rhs ? lhs : rhs; } -static inline float ImMax(float lhs, float rhs) { return lhs >= rhs ? lhs : rhs; } -static inline ImVec2 ImMin(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(ImMin(lhs.x,rhs.x), ImMin(lhs.y,rhs.y)); } -static inline ImVec2 ImMax(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(ImMax(lhs.x,rhs.x), ImMax(lhs.y,rhs.y)); } -static inline int ImClamp(int v, int mn, int mx) { return (v < mn) ? mn : (v > mx) ? mx : v; } -static inline float ImClamp(float v, float mn, float mx) { return (v < mn) ? mn : (v > mx) ? mx : v; } -static inline ImVec2 ImClamp(const ImVec2& f, const ImVec2& mn, ImVec2 mx) { return ImVec2(ImClamp(f.x,mn.x,mx.x), ImClamp(f.y,mn.y,mx.y)); } -static inline float ImSaturate(float f) { return (f < 0.0f) ? 0.0f : (f > 1.0f) ? 1.0f : f; } -static inline float ImLerp(float a, float b, float t) { return a + (b - a) * t; } -static inline ImVec2 ImLerp(const ImVec2& a, const ImVec2& b, const ImVec2& t) { return ImVec2(a.x + (b.x - a.x) * t.x, a.y + (b.y - a.y) * t.y); } -static inline float ImLengthSqr(const ImVec2& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y; } -static inline float ImLengthSqr(const ImVec4& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y + lhs.z*lhs.z + lhs.w*lhs.w; } -static inline float ImInvLength(const ImVec2& lhs, float fail_value) { float d = lhs.x*lhs.x + lhs.y*lhs.y; if (d > 0.0f) return 1.0f / sqrtf(d); return fail_value; } - -//----------------------------------------------------------------------------- -// Types -//----------------------------------------------------------------------------- - -enum ImGuiButtonFlags_ -{ - ImGuiButtonFlags_Repeat = 1 << 0, - ImGuiButtonFlags_PressedOnClick = 1 << 1, // return pressed on click only (default requires click+release) - ImGuiButtonFlags_PressedOnRelease = 1 << 2, // return pressed on release only (default requires click+release) - ImGuiButtonFlags_FlattenChilds = 1 << 3, - ImGuiButtonFlags_DontClosePopups = 1 << 4, - ImGuiButtonFlags_Disabled = 1 << 5, - ImGuiButtonFlags_AlignTextBaseLine = 1 << 6 -}; - -enum ImGuiSelectableFlagsPrivate_ -{ - // NB: need to be in sync with last value of ImGuiSelectableFlags_ - ImGuiSelectableFlags_Menu = 1 << 2, - ImGuiSelectableFlags_MenuItem = 1 << 3, - ImGuiSelectableFlags_Disabled = 1 << 4, - ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 5 -}; - -// FIXME: this is in development, not exposed/functional as a generic feature yet. -enum ImGuiLayoutType_ -{ - ImGuiLayoutType_Vertical, - ImGuiLayoutType_Horizontal -}; - -enum ImGuiPlotType -{ - ImGuiPlotType_Lines, - ImGuiPlotType_Histogram -}; - -enum ImGuiDataType -{ - ImGuiDataType_Int, - ImGuiDataType_Float -}; - -// 2D axis aligned bounding-box -// NB: we can't rely on ImVec2 math operators being available here -struct ImRect -{ - ImVec2 Min; // Upper-left - ImVec2 Max; // Lower-right - - ImRect() : Min(FLT_MAX,FLT_MAX), Max(-FLT_MAX,-FLT_MAX) {} - ImRect(const ImVec2& min, const ImVec2& max) : Min(min), Max(max) {} - ImRect(const ImVec4& v) : Min(v.x, v.y), Max(v.z, v.w) {} - ImRect(float x1, float y1, float x2, float y2) : Min(x1, y1), Max(x2, y2) {} - - ImVec2 GetCenter() const { return ImVec2((Min.x+Max.x)*0.5f, (Min.y+Max.y)*0.5f); } - ImVec2 GetSize() const { return ImVec2(Max.x-Min.x, Max.y-Min.y); } - float GetWidth() const { return Max.x-Min.x; } - float GetHeight() const { return Max.y-Min.y; } - ImVec2 GetTL() const { return Min; } - ImVec2 GetTR() const { return ImVec2(Max.x, Min.y); } - ImVec2 GetBL() const { return ImVec2(Min.x, Max.y); } - ImVec2 GetBR() const { return Max; } - bool Contains(const ImVec2& p) const { return p.x >= Min.x && p.y >= Min.y && p.x < Max.x && p.y < Max.y; } - bool Contains(const ImRect& r) const { return r.Min.x >= Min.x && r.Min.y >= Min.y && r.Max.x < Max.x && r.Max.y < Max.y; } - bool Overlaps(const ImRect& r) const { return r.Min.y < Max.y && r.Max.y > Min.y && r.Min.x < Max.x && r.Max.x > Min.x; } - void Add(const ImVec2& rhs) { if (Min.x > rhs.x) Min.x = rhs.x; if (Min.y > rhs.y) Min.y = rhs.y; if (Max.x < rhs.x) Max.x = rhs.x; if (Max.y < rhs.y) Max.y = rhs.y; } - void Add(const ImRect& rhs) { if (Min.x > rhs.Min.x) Min.x = rhs.Min.x; if (Min.y > rhs.Min.y) Min.y = rhs.Min.y; if (Max.x < rhs.Max.x) Max.x = rhs.Max.x; if (Max.y < rhs.Max.y) Max.y = rhs.Max.y; } - void Expand(const float amount) { Min.x -= amount; Min.y -= amount; Max.x += amount; Max.y += amount; } - void Expand(const ImVec2& amount) { Min.x -= amount.x; Min.y -= amount.y; Max.x += amount.x; Max.y += amount.y; } - void Reduce(const ImVec2& amount) { Min.x += amount.x; Min.y += amount.y; Max.x -= amount.x; Max.y -= amount.y; } - void Clip(const ImRect& clip) { if (Min.x < clip.Min.x) Min.x = clip.Min.x; if (Min.y < clip.Min.y) Min.y = clip.Min.y; if (Max.x > clip.Max.x) Max.x = clip.Max.x; if (Max.y > clip.Max.y) Max.y = clip.Max.y; } - void Round() { Min.x = (float)(int)Min.x; Min.y = (float)(int)Min.y; Max.x = (float)(int)Max.x; Max.y = (float)(int)Max.y; } - ImVec2 GetClosestPoint(ImVec2 p, bool on_edge) const - { - if (!on_edge && Contains(p)) - return p; - if (p.x > Max.x) p.x = Max.x; - else if (p.x < Min.x) p.x = Min.x; - if (p.y > Max.y) p.y = Max.y; - else if (p.y < Min.y) p.y = Min.y; - return p; - } -}; - -// Stacked color modifier, backup of modified data so we can restore it -struct ImGuiColMod -{ - ImGuiCol Col; - ImVec4 PreviousValue; -}; - -// Stacked style modifier, backup of modified data so we can restore it -struct ImGuiStyleMod -{ - ImGuiStyleVar Var; - ImVec2 PreviousValue; -}; - -// Stacked data for BeginGroup()/EndGroup() -struct ImGuiGroupData -{ - ImVec2 BackupCursorPos; - ImVec2 BackupCursorMaxPos; - float BackupColumnsStartX; - float BackupCurrentLineHeight; - float BackupCurrentLineTextBaseOffset; - float BackupLogLinePosY; - bool AdvanceCursor; -}; - -// Simple column measurement currently used for MenuItem() only. This is very short-sighted for now and not a generic helper. -struct ImGuiSimpleColumns -{ - int Count; - float Spacing; - float Width, NextWidth; - float Pos[8], NextWidths[8]; - - ImGuiSimpleColumns(); - void Update(int count, float spacing, bool clear); - float DeclColumns(float w0, float w1, float w2); - float CalcExtraSpace(float avail_w); -}; - -// Internal state of the currently focused/edited text input box -struct ImGuiTextEditState -{ - ImGuiID Id; // widget id owning the text state - ImVector Text; // edit buffer, we need to persist but can't guarantee the persistence of the user-provided buffer. so we copy into own buffer. - ImVector InitialText; // backup of end-user buffer at the time of focus (in UTF-8, unaltered) - ImVector TempTextBuffer; - int CurLenA, CurLenW; // we need to maintain our buffer length in both UTF-8 and wchar format. - int BufSizeA; // end-user buffer size - float ScrollX; - ImGuiStb::STB_TexteditState StbState; - float CursorAnim; - bool CursorFollow; - ImVec2 InputCursorScreenPos; // Cursor position in screen space to be used by IME callback. - bool SelectedAllMouseLock; - - ImGuiTextEditState() { memset(this, 0, sizeof(*this)); } - void CursorAnimReset() { CursorAnim = -0.30f; } // After a user-input the cursor stays on for a while without blinking - bool HasSelection() const { return StbState.select_start != StbState.select_end; } - void ClearSelection() { StbState.select_start = StbState.select_end = StbState.cursor; } - void SelectAll() { StbState.select_start = 0; StbState.select_end = CurLenW; StbState.cursor = StbState.select_end; StbState.has_preferred_x = false; } - void OnKeyPressed(int key); -}; - -// Data saved in imgui.ini file -struct ImGuiIniData -{ - char* Name; - ImGuiID ID; - ImVec2 Pos; - ImVec2 Size; - bool Collapsed; -}; - -// Mouse cursor data (used when io.MouseDrawCursor is set) -struct ImGuiMouseCursorData -{ - ImGuiMouseCursor Type; - ImVec2 HotOffset; - ImVec2 Size; - ImVec2 TexUvMin[2]; - ImVec2 TexUvMax[2]; -}; - -// Storage for current popup stack -struct ImGuiPopupRef -{ - ImGuiID PopupID; // Set on OpenPopup() - ImGuiWindow* Window; // Resolved on BeginPopup() - may stay unresolved if user never calls OpenPopup() - ImGuiWindow* ParentWindow; // Set on OpenPopup() - ImGuiID ParentMenuSet; // Set on OpenPopup() - - ImGuiPopupRef(ImGuiID id, ImGuiWindow* parent_window, ImGuiID parent_menu_set) { PopupID = id; Window = NULL; ParentWindow = parent_window; ParentMenuSet = parent_menu_set; } -}; - -// Main state for ImGui -struct ImGuiState -{ - bool Initialized; - ImGuiIO IO; - ImGuiStyle Style; - ImFont* Font; // (Shortcut) == FontStack.empty() ? IO.Font : FontStack.back() - float FontSize; // (Shortcut) == FontBaseSize * g.CurrentWindow->FontWindowScale == window->FontSize() - float FontBaseSize; // (Shortcut) == IO.FontGlobalScale * Font->Scale * Font->FontSize. Size of characters. - ImVec2 FontTexUvWhitePixel; // (Shortcut) == Font->TexUvForWhite - - float Time; - int FrameCount; - int FrameCountRendered; - ImVector Windows; - ImVector WindowsSortBuffer; - ImGuiWindow* CurrentWindow; // Being drawn into - ImVector CurrentWindowStack; - ImGuiWindow* FocusedWindow; // Will catch keyboard inputs - ImGuiWindow* HoveredWindow; // Will catch mouse inputs - ImGuiWindow* HoveredRootWindow; // Will catch mouse inputs (for focus/move only) - ImGuiID HoveredId; // Hovered widget - ImGuiID HoveredIdPreviousFrame; - ImGuiID ActiveId; // Active widget - ImGuiID ActiveIdPreviousFrame; - bool ActiveIdIsAlive; - bool ActiveIdIsJustActivated; // Set at the time of activation for one frame - bool ActiveIdIsFocusedOnly; // Set only by active widget. Denote focus but no active interaction - ImGuiWindow* ActiveIdWindow; - ImGuiWindow* MovedWindow; // Track the child window we clicked on to move a window. Pointer is only valid if ActiveID is the "#MOVE" identifier of a window. - ImVector Settings; // .ini Settings - float SettingsDirtyTimer; // Save .ini settinngs on disk when time reaches zero - int DisableHideTextAfterDoubleHash; - ImVector ColorModifiers; // Stack for PushStyleColor()/PopStyleColor() - ImVector StyleModifiers; // Stack for PushStyleVar()/PopStyleVar() - ImVector FontStack; // Stack for PushFont()/PopFont() - ImVector OpenedPopupStack; // Which popups are open (persistent) - ImVector CurrentPopupStack; // Which level of BeginPopup() we are in (reset every frame) - - // Storage for SetNexWindow** and SetNextTreeNode*** functions - ImVec2 SetNextWindowPosVal; - ImVec2 SetNextWindowSizeVal; - bool SetNextWindowCollapsedVal; - ImGuiSetCond SetNextWindowPosCond; - ImGuiSetCond SetNextWindowSizeCond; - ImGuiSetCond SetNextWindowCollapsedCond; - bool SetNextWindowFocus; - bool SetNextTreeNodeOpenedVal; - ImGuiSetCond SetNextTreeNodeOpenedCond; - - // Render - ImVector RenderDrawLists[3]; - float ModalWindowDarkeningRatio; - ImDrawList OverlayDrawList; // Optional software render of mouse cursors, if io.MouseDrawCursor is set + a few debug overlays - ImGuiMouseCursor MouseCursor; - ImGuiMouseCursorData MouseCursorData[ImGuiMouseCursor_Count_]; - - // Widget state - ImGuiTextEditState InputTextState; - ImGuiID ScalarAsInputTextId; // Temporary text input when CTRL+clicking on a slider, etc. - ImGuiStorage ColorEditModeStorage; // Store user selection of color edit mode - ImVec2 ActiveClickDeltaToCenter; - float DragCurrentValue; // Currently dragged value, always float, not rounded by end-user precision settings - ImVec2 DragLastMouseDelta; - float DragSpeedDefaultRatio; // If speed == 0.0f, uses (max-min) * DragSpeedDefaultRatio - float DragSpeedScaleSlow; - float DragSpeedScaleFast; - float ScrollbarClickDeltaToGrabCenter; // Distance between mouse and center of grab box, normalized in parent space - char Tooltip[1024]; - char* PrivateClipboard; // If no custom clipboard handler is defined - - // Logging - bool LogEnabled; - FILE* LogFile; // If != NULL log to stdout/ file - ImGuiTextBuffer* LogClipboard; // Else log to clipboard. This is pointer so our GImGui static constructor doesn't call heap allocators. - int LogStartDepth; - int LogAutoExpandMaxDepth; - - // Misc - float FramerateSecPerFrame[120]; // calculate estimate of framerate for user - int FramerateSecPerFrameIdx; - float FramerateSecPerFrameAccum; - bool CaptureMouseNextFrame; // explicit capture via CaptureInputs() sets those flags - bool CaptureKeyboardNextFrame; - char TempBuffer[1024*3+1]; // temporary text buffer - - ImGuiState() - { - Initialized = false; - Font = NULL; - FontSize = FontBaseSize = 0.0f; - FontTexUvWhitePixel = ImVec2(0.0f, 0.0f); - - Time = 0.0f; - FrameCount = 0; - FrameCountRendered = -1; - CurrentWindow = NULL; - FocusedWindow = NULL; - HoveredWindow = NULL; - HoveredRootWindow = NULL; - HoveredId = 0; - HoveredIdPreviousFrame = 0; - ActiveId = 0; - ActiveIdPreviousFrame = 0; - ActiveIdIsAlive = false; - ActiveIdIsJustActivated = false; - ActiveIdIsFocusedOnly = false; - ActiveIdWindow = NULL; - MovedWindow = NULL; - SettingsDirtyTimer = 0.0f; - DisableHideTextAfterDoubleHash = 0; - - SetNextWindowPosVal = ImVec2(0.0f, 0.0f); - SetNextWindowSizeVal = ImVec2(0.0f, 0.0f); - SetNextWindowCollapsedVal = false; - SetNextWindowPosCond = 0; - SetNextWindowSizeCond = 0; - SetNextWindowCollapsedCond = 0; - SetNextWindowFocus = false; - SetNextTreeNodeOpenedVal = false; - SetNextTreeNodeOpenedCond = 0; - - ScalarAsInputTextId = 0; - ActiveClickDeltaToCenter = ImVec2(0.0f, 0.0f); - DragCurrentValue = 0.0f; - DragLastMouseDelta = ImVec2(0.0f, 0.0f); - DragSpeedDefaultRatio = 0.01f; - DragSpeedScaleSlow = 0.01f; - DragSpeedScaleFast = 10.0f; - ScrollbarClickDeltaToGrabCenter = 0.0f; - memset(Tooltip, 0, sizeof(Tooltip)); - PrivateClipboard = NULL; - - ModalWindowDarkeningRatio = 0.0f; - OverlayDrawList._OwnerName = "##Overlay"; // Give it a name for debugging - MouseCursor = ImGuiMouseCursor_Arrow; - - LogEnabled = false; - LogFile = NULL; - LogClipboard = NULL; - LogStartDepth = 0; - LogAutoExpandMaxDepth = 2; - - memset(FramerateSecPerFrame, 0, sizeof(FramerateSecPerFrame)); - FramerateSecPerFrameIdx = 0; - FramerateSecPerFrameAccum = 0.0f; - CaptureMouseNextFrame = CaptureKeyboardNextFrame = false; - } -}; - -// Transient per-window data, reset at the beginning of the frame -// FIXME: That's theory, in practice the delimitation between ImGuiWindow and ImGuiDrawContext is quite tenuous and could be reconsidered. -struct ImGuiDrawContext -{ - ImVec2 CursorPos; - ImVec2 CursorPosPrevLine; - ImVec2 CursorStartPos; - ImVec2 CursorMaxPos; // Implicitly calculate the size of our contents, always extending. Saved into window->SizeContents at the end of the frame - float CurrentLineHeight; - float CurrentLineTextBaseOffset; - float PrevLineHeight; - float PrevLineTextBaseOffset; - float LogLinePosY; - int TreeDepth; - ImGuiID LastItemID; - ImRect LastItemRect; - bool LastItemHoveredAndUsable; - bool LastItemHoveredRect; - bool MenuBarAppending; - float MenuBarOffsetX; - ImVector ChildWindows; - ImGuiStorage* StateStorage; - ImGuiLayoutType LayoutType; - - // We store the current settings outside of the vectors to increase memory locality (reduce cache misses). The vectors are rarely modified. Also it allows us to not heap allocate for short-lived windows which are not using those settings. - bool ButtonRepeat; // == ButtonRepeatStack.back() [empty == false] - bool AllowKeyboardFocus; // == AllowKeyboardFocusStack.back() [empty == true] - float ItemWidth; // == ItemWidthStack.back(). 0.0: default, >0.0: width in pixels, <0.0: align xx pixels to the right of window - float TextWrapPos; // == TextWrapPosStack.back() [empty == -1.0f] - ImVector ButtonRepeatStack; - ImVector AllowKeyboardFocusStack; - ImVector ItemWidthStack; - ImVector TextWrapPosStack; - ImVectorGroupStack; - ImGuiColorEditMode ColorEditMode; - int StackSizesBackup[6]; // Store size of various stacks for asserting - - float ColumnsStartX; // Indentation / start position from left of window (increased by TreePush/TreePop, etc.) - float ColumnsOffsetX; // Offset to the current column (if ColumnsCurrent > 0). FIXME: This and the above should be a stack to allow use cases like Tree->Column->Tree. Need revamp columns API. - int ColumnsCurrent; - int ColumnsCount; - ImVec2 ColumnsStartPos; - float ColumnsCellMinY; - float ColumnsCellMaxY; - bool ColumnsShowBorders; - ImGuiID ColumnsSetID; - ImVector ColumnsOffsetsT; // Columns offset normalized 0.0 (far left) -> 1.0 (far right) - - ImGuiDrawContext() - { - CursorPos = CursorPosPrevLine = CursorStartPos = CursorMaxPos = ImVec2(0.0f, 0.0f); - CurrentLineHeight = PrevLineHeight = 0.0f; - CurrentLineTextBaseOffset = PrevLineTextBaseOffset = 0.0f; - LogLinePosY = -1.0f; - TreeDepth = 0; - LastItemID = 0; - LastItemRect = ImRect(0.0f,0.0f,0.0f,0.0f); - LastItemHoveredAndUsable = LastItemHoveredRect = false; - MenuBarAppending = false; - MenuBarOffsetX = 0.0f; - StateStorage = NULL; - LayoutType = ImGuiLayoutType_Vertical; - ItemWidth = 0.0f; - ButtonRepeat = false; - AllowKeyboardFocus = true; - TextWrapPos = -1.0f; - ColorEditMode = ImGuiColorEditMode_RGB; - memset(StackSizesBackup, 0, sizeof(StackSizesBackup)); - - ColumnsStartX = 0.0f; - ColumnsOffsetX = 0.0f; - ColumnsCurrent = 0; - ColumnsCount = 1; - ColumnsStartPos = ImVec2(0.0f, 0.0f); - ColumnsCellMinY = ColumnsCellMaxY = 0.0f; - ColumnsShowBorders = true; - ColumnsSetID = 0; - } -}; - -// Windows data -struct ImGuiWindow -{ - char* Name; - ImGuiID ID; - ImGuiWindowFlags Flags; - ImVec2 PosFloat; - ImVec2 Pos; // Position rounded-up to nearest pixel - ImVec2 Size; // Current size (==SizeFull or collapsed title bar size) - ImVec2 SizeFull; // Size when non collapsed - ImVec2 SizeContents; // Size of contents (== extents reach of the drawing cursor) from previous frame - ImVec2 WindowPadding; // Window padding at the time of begin. We need to lock it, in particular manipulation of the ShowBorder would have an effect - ImGuiID MoveID; // == window->GetID("#MOVE") - float ScrollY; - float ScrollTargetRelY; // target scroll position. stored as cursor position with scrolling canceled out, so the highest point is always 0.0f. (FLT_MAX for no change) - float ScrollTargetCenterRatioY; // 0.0f = scroll so that target position is at top, 0.5f = scroll so that target position is centered - bool ScrollbarY; - bool Active; // Set to true on Begin() - bool WasActive; - bool Accessed; // Set to true when any widget access the current window - bool Collapsed; // Set when collapsing window to become only title-bar - bool SkipItems; // == Visible && !Collapsed - int BeginCount; // Number of Begin() during the current frame (generally 0 or 1, 1+ if appending via multiple Begin/End pairs) - ImGuiID PopupID; // ID in the popup stack when this window is used as a popup/menu (because we use generic Name/ID for recycling) - int AutoFitFramesX, AutoFitFramesY; - bool AutoFitOnlyGrows; - int AutoPosLastDirection; - int HiddenFrames; - int SetWindowPosAllowFlags; // bit ImGuiSetCond_*** specify if SetWindowPos() call will succeed with this particular flag. - int SetWindowSizeAllowFlags; // bit ImGuiSetCond_*** specify if SetWindowSize() call will succeed with this particular flag. - int SetWindowCollapsedAllowFlags; // bit ImGuiSetCond_*** specify if SetWindowCollapsed() call will succeed with this particular flag. - bool SetWindowPosCenterWanted; - - ImGuiDrawContext DC; // Temporary per-window data, reset at the beginning of the frame - ImVector IDStack; // ID stack. ID are hashes seeded with the value at the top of the stack - ImRect ClipRect; // = DrawList->clip_rect_stack.back(). Scissoring / clipping rectangle. x1, y1, x2, y2. - ImRect ClippedWindowRect; // = ClipRect just after setup in Begin() - int LastFrameDrawn; - float ItemWidthDefault; - ImGuiSimpleColumns MenuColumns; // Simplified columns storage for menu items - ImGuiStorage StateStorage; - float FontWindowScale; // Scale multiplier per-window - ImDrawList* DrawList; - ImGuiWindow* RootWindow; - ImGuiWindow* RootNonPopupWindow; - - // Focus - int FocusIdxAllCounter; // Start at -1 and increase as assigned via FocusItemRegister() - int FocusIdxTabCounter; // (same, but only count widgets which you can Tab through) - int FocusIdxAllRequestCurrent; // Item being requested for focus - int FocusIdxTabRequestCurrent; // Tab-able item being requested for focus - int FocusIdxAllRequestNext; // Item being requested for focus, for next update (relies on layout to be stable between the frame pressing TAB and the next frame) - int FocusIdxTabRequestNext; // " - -public: - ImGuiWindow(const char* name); - ~ImGuiWindow(); - - ImGuiID GetID(const char* str, const char* str_end = NULL); - ImGuiID GetID(const void* ptr); - - ImRect Rect() const { return ImRect(Pos.x, Pos.y, Pos.x+Size.x, Pos.y+Size.y); } - float CalcFontSize() const { return GImGui->FontBaseSize * FontWindowScale; } - float TitleBarHeight() const { return (Flags & ImGuiWindowFlags_NoTitleBar) ? 0.0f : CalcFontSize() + GImGui->Style.FramePadding.y * 2.0f; } - ImRect TitleBarRect() const { return ImRect(Pos, ImVec2(Pos.x + SizeFull.x, Pos.y + TitleBarHeight())); } - float MenuBarHeight() const { return (Flags & ImGuiWindowFlags_MenuBar) ? CalcFontSize() + GImGui->Style.FramePadding.y * 2.0f : 0.0f; } - ImRect MenuBarRect() const { float y1 = Pos.y + TitleBarHeight(); return ImRect(Pos.x, y1, Pos.x + SizeFull.x, y1 + MenuBarHeight()); } - float ScrollbarWidth() const { return ScrollbarY ? GImGui->Style.ScrollbarWidth : 0.0f; } - ImU32 Color(ImGuiCol idx, float a=1.f) const { ImVec4 c = GImGui->Style.Colors[idx]; c.w *= GImGui->Style.Alpha * a; return ImGui::ColorConvertFloat4ToU32(c); } - ImU32 Color(const ImVec4& col) const { ImVec4 c = col; c.w *= GImGui->Style.Alpha; return ImGui::ColorConvertFloat4ToU32(c); } -}; - -//----------------------------------------------------------------------------- -// Internal API -// No guarantee of forward compatibility here. -//----------------------------------------------------------------------------- - -namespace ImGui -{ - IMGUI_API ImGuiWindow* GetCurrentWindow(); - IMGUI_API ImGuiWindow* GetParentWindow(); - IMGUI_API void FocusWindow(ImGuiWindow* window); - - IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow* window); - IMGUI_API void KeepAliveID(ImGuiID id); - - IMGUI_API void ItemSize(const ImVec2& size, float text_offset_y = 0.0f); - IMGUI_API void ItemSize(const ImRect& bb, float text_offset_y = 0.0f); - IMGUI_API bool ItemAdd(const ImRect& bb, const ImGuiID* id); - IMGUI_API bool IsClippedEx(const ImRect& bb, const ImGuiID* id, bool clip_even_when_logged); - IMGUI_API bool IsHovered(const ImRect& bb, ImGuiID id, bool flatten_childs = false); - IMGUI_API bool FocusableItemRegister(ImGuiWindow* window, bool is_active, bool tab_stop = true); // Return true if focus is requested - IMGUI_API void FocusableItemUnregister(ImGuiWindow* window); - IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_x, float default_y); - IMGUI_API float CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x); - - IMGUI_API void RenderText(ImVec2 pos, const char* text, const char* text_end = NULL, bool hide_text_after_hash = true); - IMGUI_API void RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width); - IMGUI_API void RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, ImGuiAlign align = ImGuiAlign_Default, const ImVec2* clip_min = NULL, const ImVec2* clip_max = NULL); - IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border = true, float rounding = 0.0f); - IMGUI_API void RenderCollapseTriangle(ImVec2 p_min, bool opened, float scale = 1.0f, bool shadow = false); - IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col); - - IMGUI_API bool ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, bool allow_key_modifiers, ImGuiButtonFlags flags = 0); - IMGUI_API bool ButtonEx(const char* label, const ImVec2& size_arg = ImVec2(0,0), ImGuiButtonFlags flags = 0); - - IMGUI_API bool SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_min, float v_max, float power, int decimal_precision, bool horizontal); - IMGUI_API bool SliderFloatN(const char* label, float* v, int components, float v_min, float v_max, const char* display_format, float power); - IMGUI_API bool SliderIntN(const char* label, int* v, int components, int v_min, int v_max, const char* display_format); - - IMGUI_API bool DragBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_speed, float v_min, float v_max, int decimal_precision, float power); - IMGUI_API bool DragFloatN(const char* label, float* v, int components, float v_speed, float v_min, float v_max, const char* display_format, float power); - IMGUI_API bool DragIntN(const char* label, int* v, int components, float v_speed, int v_min, int v_max, const char* display_format); - - IMGUI_API bool InputTextEx(const char* label, char* buf, int buf_size, const ImVec2& size_arg, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback = NULL, void* user_data = NULL); - IMGUI_API bool InputFloatN(const char* label, float* v, int components, int decimal_precision, ImGuiInputTextFlags extra_flags); - IMGUI_API bool InputIntN(const char* label, int* v, int components, ImGuiInputTextFlags extra_flags); - IMGUI_API bool InputScalarEx(const char* label, ImGuiDataType data_type, void* data_ptr, void* step_ptr, void* step_fast_ptr, const char* scalar_format, ImGuiInputTextFlags extra_flags); - IMGUI_API bool InputScalarAsWidgetReplacement(const ImRect& aabb, const char* label, ImGuiDataType data_type, void* data_ptr, ImGuiID id, int decimal_precision); - - IMGUI_API void PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size); - - IMGUI_API int ParseFormatPrecision(const char* fmt, int default_value); - IMGUI_API float RoundScalar(float value, int decimal_precision); - -} // namespace ImGuiP - diff --git a/samples/D3D12/external/imgui/stb_rect_pack.h b/samples/D3D12/external/imgui/stb_rect_pack.h deleted file mode 100644 index eb0ef2f..0000000 --- a/samples/D3D12/external/imgui/stb_rect_pack.h +++ /dev/null @@ -1,547 +0,0 @@ -// stb_rect_pack.h - v0.05 - public domain - rectangle packing -// Sean Barrett 2014 -// -// Useful for e.g. packing rectangular textures into an atlas. -// Does not do rotation. -// -// Not necessarily the awesomest packing method, but better than -// the totally naive one in stb_truetype (which is primarily what -// this is meant to replace). -// -// Has only had a few tests run, may have issues. -// -// More docs to come. -// -// No memory allocations; uses qsort() and assert() from stdlib. -// -// This library currently uses the Skyline Bottom-Left algorithm. -// -// Please note: better rectangle packers are welcome! Please -// implement them to the same API, but with a different init -// function. -// -// Version history: -// -// 0.05: added STBRP_ASSERT to allow replacing assert -// 0.04: fixed minor bug in STBRP_LARGE_RECTS support -// 0.01: initial release - -////////////////////////////////////////////////////////////////////////////// -// -// INCLUDE SECTION -// - -#ifndef STB_INCLUDE_STB_RECT_PACK_H -#define STB_INCLUDE_STB_RECT_PACK_H - -#define STB_RECT_PACK_VERSION 1 - -#ifdef STBRP_STATIC -#define STBRP_DEF static -#else -#define STBRP_DEF extern -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct stbrp_context stbrp_context; -typedef struct stbrp_node stbrp_node; -typedef struct stbrp_rect stbrp_rect; - -#ifdef STBRP_LARGE_RECTS -typedef int stbrp_coord; -#else -typedef unsigned short stbrp_coord; -#endif - -STBRP_DEF void stbrp_pack_rects (stbrp_context *context, stbrp_rect *rects, int num_rects); -// Assign packed locations to rectangles. The rectangles are of type -// 'stbrp_rect' defined below, stored in the array 'rects', and there -// are 'num_rects' many of them. -// -// Rectangles which are successfully packed have the 'was_packed' flag -// set to a non-zero value and 'x' and 'y' store the minimum location -// on each axis (i.e. bottom-left in cartesian coordinates, top-left -// if you imagine y increasing downwards). Rectangles which do not fit -// have the 'was_packed' flag set to 0. -// -// You should not try to access the 'rects' array from another thread -// while this function is running, as the function temporarily reorders -// the array while it executes. -// -// To pack into another rectangle, you need to call stbrp_init_target -// again. To continue packing into the same rectangle, you can call -// this function again. Calling this multiple times with multiple rect -// arrays will probably produce worse packing results than calling it -// a single time with the full rectangle array, but the option is -// available. - -struct stbrp_rect -{ - // reserved for your use: - int id; - - // input: - stbrp_coord w, h; - - // output: - stbrp_coord x, y; - int was_packed; // non-zero if valid packing - -}; // 16 bytes, nominally - - -STBRP_DEF void stbrp_init_target (stbrp_context *context, int width, int height, stbrp_node *nodes, int num_nodes); -// Initialize a rectangle packer to: -// pack a rectangle that is 'width' by 'height' in dimensions -// using temporary storage provided by the array 'nodes', which is 'num_nodes' long -// -// You must call this function every time you start packing into a new target. -// -// There is no "shutdown" function. The 'nodes' memory must stay valid for -// the following stbrp_pack_rects() call (or calls), but can be freed after -// the call (or calls) finish. -// -// Note: to guarantee best results, either: -// 1. make sure 'num_nodes' >= 'width' -// or 2. call stbrp_allow_out_of_mem() defined below with 'allow_out_of_mem = 1' -// -// If you don't do either of the above things, widths will be quantized to multiples -// of small integers to guarantee the algorithm doesn't run out of temporary storage. -// -// If you do #2, then the non-quantized algorithm will be used, but the algorithm -// may run out of temporary storage and be unable to pack some rectangles. - -STBRP_DEF void stbrp_setup_allow_out_of_mem (stbrp_context *context, int allow_out_of_mem); -// Optionally call this function after init but before doing any packing to -// change the handling of the out-of-temp-memory scenario, described above. -// If you call init again, this will be reset to the default (false). - - -STBRP_DEF void stbrp_setup_heuristic (stbrp_context *context, int heuristic); -// Optionally select which packing heuristic the library should use. Different -// heuristics will produce better/worse results for different data sets. -// If you call init again, this will be reset to the default. - -enum -{ - STBRP_HEURISTIC_Skyline_default=0, - STBRP_HEURISTIC_Skyline_BL_sortHeight = STBRP_HEURISTIC_Skyline_default, - STBRP_HEURISTIC_Skyline_BF_sortHeight -}; - - -////////////////////////////////////////////////////////////////////////////// -// -// the details of the following structures don't matter to you, but they must -// be visible so you can handle the memory allocations for them - -struct stbrp_node -{ - stbrp_coord x,y; - stbrp_node *next; -}; - -struct stbrp_context -{ - int width; - int height; - int align; - int init_mode; - int heuristic; - int num_nodes; - stbrp_node *active_head; - stbrp_node *free_head; - stbrp_node extra[2]; // we allocate two extra nodes so optimal user-node-count is 'width' not 'width+2' -}; - -#ifdef __cplusplus -} -#endif - -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// IMPLEMENTATION SECTION -// - -#ifdef STB_RECT_PACK_IMPLEMENTATION -#include - -#ifndef STBRP_ASSERT -#include -#define STBRP_ASSERT assert -#endif - -enum -{ - STBRP__INIT_skyline = 1 -}; - -STBRP_DEF void stbrp_setup_heuristic(stbrp_context *context, int heuristic) -{ - switch (context->init_mode) { - case STBRP__INIT_skyline: - STBRP_ASSERT(heuristic == STBRP_HEURISTIC_Skyline_BL_sortHeight || heuristic == STBRP_HEURISTIC_Skyline_BF_sortHeight); - context->heuristic = heuristic; - break; - default: - STBRP_ASSERT(0); - } -} - -STBRP_DEF void stbrp_setup_allow_out_of_mem(stbrp_context *context, int allow_out_of_mem) -{ - if (allow_out_of_mem) - // if it's ok to run out of memory, then don't bother aligning them; - // this gives better packing, but may fail due to OOM (even though - // the rectangles easily fit). @TODO a smarter approach would be to only - // quantize once we've hit OOM, then we could get rid of this parameter. - context->align = 1; - else { - // if it's not ok to run out of memory, then quantize the widths - // so that num_nodes is always enough nodes. - // - // I.e. num_nodes * align >= width - // align >= width / num_nodes - // align = ceil(width/num_nodes) - - context->align = (context->width + context->num_nodes-1) / context->num_nodes; - } -} - -STBRP_DEF void stbrp_init_target(stbrp_context *context, int width, int height, stbrp_node *nodes, int num_nodes) -{ - int i; -#ifndef STBRP_LARGE_RECTS - STBRP_ASSERT(width <= 0xffff && height <= 0xffff); -#endif - - for (i=0; i < num_nodes-1; ++i) - nodes[i].next = &nodes[i+1]; - nodes[i].next = NULL; - context->init_mode = STBRP__INIT_skyline; - context->heuristic = STBRP_HEURISTIC_Skyline_default; - context->free_head = &nodes[0]; - context->active_head = &context->extra[0]; - context->width = width; - context->height = height; - context->num_nodes = num_nodes; - stbrp_setup_allow_out_of_mem(context, 0); - - // node 0 is the full width, node 1 is the sentinel (lets us not store width explicitly) - context->extra[0].x = 0; - context->extra[0].y = 0; - context->extra[0].next = &context->extra[1]; - context->extra[1].x = (stbrp_coord) width; -#ifdef STBRP_LARGE_RECTS - context->extra[1].y = (1<<30); -#else - context->extra[1].y = 65535; -#endif - context->extra[1].next = NULL; -} - -// find minimum y position if it starts at x1 -static int stbrp__skyline_find_min_y(stbrp_context *c, stbrp_node *first, int x0, int width, int *pwaste) -{ - (void)c; - stbrp_node *node = first; - int x1 = x0 + width; - int min_y, visited_width, waste_area; - STBRP_ASSERT(first->x <= x0); - - #if 0 - // skip in case we're past the node - while (node->next->x <= x0) - ++node; - #else - STBRP_ASSERT(node->next->x > x0); // we ended up handling this in the caller for efficiency - #endif - - STBRP_ASSERT(node->x <= x0); - - min_y = 0; - waste_area = 0; - visited_width = 0; - while (node->x < x1) { - if (node->y > min_y) { - // raise min_y higher. - // we've accounted for all waste up to min_y, - // but we'll now add more waste for everything we've visted - waste_area += visited_width * (node->y - min_y); - min_y = node->y; - // the first time through, visited_width might be reduced - if (node->x < x0) - visited_width += node->next->x - x0; - else - visited_width += node->next->x - node->x; - } else { - // add waste area - int under_width = node->next->x - node->x; - if (under_width + visited_width > width) - under_width = width - visited_width; - waste_area += under_width * (min_y - node->y); - visited_width += under_width; - } - node = node->next; - } - - *pwaste = waste_area; - return min_y; -} - -typedef struct -{ - int x,y; - stbrp_node **prev_link; -} stbrp__findresult; - -static stbrp__findresult stbrp__skyline_find_best_pos(stbrp_context *c, int width, int height) -{ - int best_waste = (1<<30), best_x, best_y = (1 << 30); - stbrp__findresult fr; - stbrp_node **prev, *node, *tail, **best = NULL; - - // align to multiple of c->align - width = (width + c->align - 1); - width -= width % c->align; - STBRP_ASSERT(width % c->align == 0); - - node = c->active_head; - prev = &c->active_head; - while (node->x + width <= c->width) { - int y,waste; - y = stbrp__skyline_find_min_y(c, node, node->x, width, &waste); - if (c->heuristic == STBRP_HEURISTIC_Skyline_BL_sortHeight) { // actually just want to test BL - // bottom left - if (y < best_y) { - best_y = y; - best = prev; - } - } else { - // best-fit - if (y + height <= c->height) { - // can only use it if it first vertically - if (y < best_y || (y == best_y && waste < best_waste)) { - best_y = y; - best_waste = waste; - best = prev; - } - } - } - prev = &node->next; - node = node->next; - } - - best_x = (best == NULL) ? 0 : (*best)->x; - - // if doing best-fit (BF), we also have to try aligning right edge to each node position - // - // e.g, if fitting - // - // ____________________ - // |____________________| - // - // into - // - // | | - // | ____________| - // |____________| - // - // then right-aligned reduces waste, but bottom-left BL is always chooses left-aligned - // - // This makes BF take about 2x the time - - if (c->heuristic == STBRP_HEURISTIC_Skyline_BF_sortHeight) { - tail = c->active_head; - node = c->active_head; - prev = &c->active_head; - // find first node that's admissible - while (tail->x < width) - tail = tail->next; - while (tail) { - int xpos = tail->x - width; - int y,waste; - STBRP_ASSERT(xpos >= 0); - // find the left position that matches this - while (node->next->x <= xpos) { - prev = &node->next; - node = node->next; - } - STBRP_ASSERT(node->next->x > xpos && node->x <= xpos); - y = stbrp__skyline_find_min_y(c, node, xpos, width, &waste); - if (y + height < c->height) { - if (y <= best_y) { - if (y < best_y || waste < best_waste || (waste==best_waste && xpos < best_x)) { - best_x = xpos; - STBRP_ASSERT(y <= best_y); - best_y = y; - best_waste = waste; - best = prev; - } - } - } - tail = tail->next; - } - } - - fr.prev_link = best; - fr.x = best_x; - fr.y = best_y; - return fr; -} - -static stbrp__findresult stbrp__skyline_pack_rectangle(stbrp_context *context, int width, int height) -{ - // find best position according to heuristic - stbrp__findresult res = stbrp__skyline_find_best_pos(context, width, height); - stbrp_node *node, *cur; - - // bail if: - // 1. it failed - // 2. the best node doesn't fit (we don't always check this) - // 3. we're out of memory - if (res.prev_link == NULL || res.y + height > context->height || context->free_head == NULL) { - res.prev_link = NULL; - return res; - } - - // on success, create new node - node = context->free_head; - node->x = (stbrp_coord) res.x; - node->y = (stbrp_coord) (res.y + height); - - context->free_head = node->next; - - // insert the new node into the right starting point, and - // let 'cur' point to the remaining nodes needing to be - // stiched back in - - cur = *res.prev_link; - if (cur->x < res.x) { - // preserve the existing one, so start testing with the next one - stbrp_node *next = cur->next; - cur->next = node; - cur = next; - } else { - *res.prev_link = node; - } - - // from here, traverse cur and free the nodes, until we get to one - // that shouldn't be freed - while (cur->next && cur->next->x <= res.x + width) { - stbrp_node *next = cur->next; - // move the current node to the free list - cur->next = context->free_head; - context->free_head = cur; - cur = next; - } - - // stitch the list back in - node->next = cur; - - if (cur->x < res.x + width) - cur->x = (stbrp_coord) (res.x + width); - -#ifdef _DEBUG - cur = context->active_head; - while (cur->x < context->width) { - STBRP_ASSERT(cur->x < cur->next->x); - cur = cur->next; - } - STBRP_ASSERT(cur->next == NULL); - - { - stbrp_node *L1 = NULL, *L2 = NULL; - int count=0; - cur = context->active_head; - while (cur) { - L1 = cur; - cur = cur->next; - ++count; - } - cur = context->free_head; - while (cur) { - L2 = cur; - cur = cur->next; - ++count; - } - STBRP_ASSERT(count == context->num_nodes+2); - } -#endif - - return res; -} - -static int rect_height_compare(const void *a, const void *b) -{ - stbrp_rect *p = (stbrp_rect *) a; - stbrp_rect *q = (stbrp_rect *) b; - if (p->h > q->h) - return -1; - if (p->h < q->h) - return 1; - return (p->w > q->w) ? -1 : (p->w < q->w); -} - -static int rect_width_compare(const void *a, const void *b) -{ - stbrp_rect *p = (stbrp_rect *) a; - stbrp_rect *q = (stbrp_rect *) b; - if (p->w > q->w) - return -1; - if (p->w < q->w) - return 1; - return (p->h > q->h) ? -1 : (p->h < q->h); -} - -static int rect_original_order(const void *a, const void *b) -{ - stbrp_rect *p = (stbrp_rect *) a; - stbrp_rect *q = (stbrp_rect *) b; - return (p->was_packed < q->was_packed) ? -1 : (p->was_packed > q->was_packed); -} - -#ifdef STBRP_LARGE_RECTS -#define STBRP__MAXVAL 0xffffffff -#else -#define STBRP__MAXVAL 0xffff -#endif - -STBRP_DEF void stbrp_pack_rects(stbrp_context *context, stbrp_rect *rects, int num_rects) -{ - int i; - - // we use the 'was_packed' field internally to allow sorting/unsorting - for (i=0; i < num_rects; ++i) { - rects[i].was_packed = i; - #ifndef STBRP_LARGE_RECTS - STBRP_ASSERT(rects[i].w <= 0xffff && rects[i].h <= 0xffff); - #endif - } - - // sort according to heuristic - qsort(rects, num_rects, sizeof(rects[0]), rect_height_compare); - - for (i=0; i < num_rects; ++i) { - stbrp__findresult fr = stbrp__skyline_pack_rectangle(context, rects[i].w, rects[i].h); - if (fr.prev_link) { - rects[i].x = (stbrp_coord) fr.x; - rects[i].y = (stbrp_coord) fr.y; - } else { - rects[i].x = rects[i].y = STBRP__MAXVAL; - } - } - - // unsort - qsort(rects, num_rects, sizeof(rects[0]), rect_original_order); - - // set was_packed flags - for (i=0; i < num_rects; ++i) - rects[i].was_packed = !(rects[i].x == STBRP__MAXVAL && rects[i].y == STBRP__MAXVAL); -} -#endif diff --git a/samples/D3D12/external/imgui/stb_textedit.h b/samples/D3D12/external/imgui/stb_textedit.h deleted file mode 100644 index 3972c0f..0000000 --- a/samples/D3D12/external/imgui/stb_textedit.h +++ /dev/null @@ -1,1261 +0,0 @@ -// [ImGui] this is a slightly modified version of stb_truetype.h 1.4 -// [ImGui] we made a fix for using the END key on multi-line text edit, see https://github.com/ocornut/imgui/issues/275 - -// stb_textedit.h - v1.4 - public domain - Sean Barrett -// Development of this library was sponsored by RAD Game Tools -// -// This C header file implements the guts of a multi-line text-editing -// widget; you implement display, word-wrapping, and low-level string -// insertion/deletion, and stb_textedit will map user inputs into -// insertions & deletions, plus updates to the cursor position, -// selection state, and undo state. -// -// It is intended for use in games and other systems that need to build -// their own custom widgets and which do not have heavy text-editing -// requirements (this library is not recommended for use for editing large -// texts, as its performance does not scale and it has limited undo). -// -// Non-trivial behaviors are modelled after Windows text controls. -// -// -// LICENSE -// -// This software has been placed in the public domain by its author. -// Where that dedication is not recognized, you are granted a perpetual, -// irrevocable license to copy and modify this file as you see fit. -// -// -// DEPENDENCIES -// -// Uses the C runtime function 'memmove'. Uses no other functions. -// Performs no runtime allocations. -// -// -// VERSION HISTORY -// -// 1.4 (2014-08-17) fix signed/unsigned warnings -// 1.3 (2014-06-19) fix mouse clicking to round to nearest char boundary -// 1.2 (2014-05-27) fix some RAD types that had crept into the new code -// 1.1 (2013-12-15) move-by-word (requires STB_TEXTEDIT_IS_SPACE ) -// 1.0 (2012-07-26) improve documentation, initial public release -// 0.3 (2012-02-24) bugfixes, single-line mode; insert mode -// 0.2 (2011-11-28) fixes to undo/redo -// 0.1 (2010-07-08) initial version -// -// ADDITIONAL CONTRIBUTORS -// -// Ulf Winklemann: move-by-word in 1.1 -// Scott Graham: mouse selection bugfix in 1.3 -// -// USAGE -// -// This file behaves differently depending on what symbols you define -// before including it. -// -// -// Header-file mode: -// -// If you do not define STB_TEXTEDIT_IMPLEMENTATION before including this, -// it will operate in "header file" mode. In this mode, it declares a -// single public symbol, STB_TexteditState, which encapsulates the current -// state of a text widget (except for the string, which you will store -// separately). -// -// To compile in this mode, you must define STB_TEXTEDIT_CHARTYPE to a -// primitive type that defines a single character (e.g. char, wchar_t, etc). -// -// To save space or increase undo-ability, you can optionally define the -// following things that are used by the undo system: -// -// STB_TEXTEDIT_POSITIONTYPE small int type encoding a valid cursor position -// STB_TEXTEDIT_UNDOSTATECOUNT the number of undo states to allow -// STB_TEXTEDIT_UNDOCHARCOUNT the number of characters to store in the undo buffer -// -// If you don't define these, they are set to permissive types and -// moderate sizes. The undo system does no memory allocations, so -// it grows STB_TexteditState by the worst-case storage which is (in bytes): -// -// [4 + sizeof(STB_TEXTEDIT_POSITIONTYPE)] * STB_TEXTEDIT_UNDOSTATE_COUNT -// + sizeof(STB_TEXTEDIT_CHARTYPE) * STB_TEXTEDIT_UNDOCHAR_COUNT -// -// -// Implementation mode: -// -// If you define STB_TEXTEDIT_IMPLEMENTATION before including this, it -// will compile the implementation of the text edit widget, depending -// on a large number of symbols which must be defined before the include. -// -// The implementation is defined only as static functions. You will then -// need to provide your own APIs in the same file which will access the -// static functions. -// -// The basic concept is that you provide a "string" object which -// behaves like an array of characters. stb_textedit uses indices to -// refer to positions in the string, implicitly representing positions -// in the displayed textedit. This is true for both plain text and -// rich text; even with rich text stb_truetype interacts with your -// code as if there was an array of all the displayed characters. -// -// Symbols that must be the same in header-file and implementation mode: -// -// STB_TEXTEDIT_CHARTYPE the character type -// STB_TEXTEDIT_POSITIONTYPE small type that a valid cursor position -// STB_TEXTEDIT_UNDOSTATECOUNT the number of undo states to allow -// STB_TEXTEDIT_UNDOCHARCOUNT the number of characters to store in the undo buffer -// -// Symbols you must define for implementation mode: -// -// STB_TEXTEDIT_STRING the type of object representing a string being edited, -// typically this is a wrapper object with other data you need -// -// STB_TEXTEDIT_STRINGLEN(obj) the length of the string (ideally O(1)) -// STB_TEXTEDIT_LAYOUTROW(&r,obj,n) returns the results of laying out a line of characters -// starting from character #n (see discussion below) -// STB_TEXTEDIT_GETWIDTH(obj,n,i) returns the pixel delta from the xpos of the i'th character -// to the xpos of the i+1'th char for a line of characters -// starting at character #n (i.e. accounts for kerning -// with previous char) -// STB_TEXTEDIT_KEYTOTEXT(k) maps a keyboard input to an insertable character -// (return type is int, -1 means not valid to insert) -// STB_TEXTEDIT_GETCHAR(obj,i) returns the i'th character of obj, 0-based -// STB_TEXTEDIT_NEWLINE the character returned by _GETCHAR() we recognize -// as manually wordwrapping for end-of-line positioning -// -// STB_TEXTEDIT_DELETECHARS(obj,i,n) delete n characters starting at i -// STB_TEXTEDIT_INSERTCHARS(obj,i,c*,n) insert n characters at i (pointed to by STB_TEXTEDIT_CHARTYPE*) -// -// STB_TEXTEDIT_K_SHIFT a power of two that is or'd in to a keyboard input to represent the shift key -// -// STB_TEXTEDIT_K_LEFT keyboard input to move cursor left -// STB_TEXTEDIT_K_RIGHT keyboard input to move cursor right -// STB_TEXTEDIT_K_UP keyboard input to move cursor up -// STB_TEXTEDIT_K_DOWN keyboard input to move cursor down -// STB_TEXTEDIT_K_LINESTART keyboard input to move cursor to start of line // e.g. HOME -// STB_TEXTEDIT_K_LINEEND keyboard input to move cursor to end of line // e.g. END -// STB_TEXTEDIT_K_TEXTSTART keyboard input to move cursor to start of text // e.g. ctrl-HOME -// STB_TEXTEDIT_K_TEXTEND keyboard input to move cursor to end of text // e.g. ctrl-END -// STB_TEXTEDIT_K_DELETE keyboard input to delete selection or character under cursor -// STB_TEXTEDIT_K_BACKSPACE keyboard input to delete selection or character left of cursor -// STB_TEXTEDIT_K_UNDO keyboard input to perform undo -// STB_TEXTEDIT_K_REDO keyboard input to perform redo -// -// Optional: -// STB_TEXTEDIT_K_INSERT keyboard input to toggle insert mode -// STB_TEXTEDIT_IS_SPACE(ch) true if character is whitespace (e.g. 'isspace'), -// required for WORDLEFT/WORDRIGHT -// STB_TEXTEDIT_K_WORDLEFT keyboard input to move cursor left one word // e.g. ctrl-LEFT -// STB_TEXTEDIT_K_WORDRIGHT keyboard input to move cursor right one word // e.g. ctrl-RIGHT -// -// Todo: -// STB_TEXTEDIT_K_PGUP keyboard input to move cursor up a page -// STB_TEXTEDIT_K_PGDOWN keyboard input to move cursor down a page -// -// Keyboard input must be encoded as a single integer value; e.g. a character code -// and some bitflags that represent shift states. to simplify the interface, SHIFT must -// be a bitflag, so we can test the shifted state of cursor movements to allow selection, -// i.e. (STB_TEXTED_K_RIGHT|STB_TEXTEDIT_K_SHIFT) should be shifted right-arrow. -// -// You can encode other things, such as CONTROL or ALT, in additional bits, and -// then test for their presence in e.g. STB_TEXTEDIT_K_WORDLEFT. For example, -// my Windows implementations add an additional CONTROL bit, and an additional KEYDOWN -// bit. Then all of the STB_TEXTEDIT_K_ values bitwise-or in the KEYDOWN bit, -// and I pass both WM_KEYDOWN and WM_CHAR events to the "key" function in the -// API below. The control keys will only match WM_KEYDOWN events because of the -// keydown bit I add, and STB_TEXTEDIT_KEYTOTEXT only tests for the KEYDOWN -// bit so it only decodes WM_CHAR events. -// -// STB_TEXTEDIT_LAYOUTROW returns information about the shape of one displayed -// row of characters assuming they start on the i'th character--the width and -// the height and the number of characters consumed. This allows this library -// to traverse the entire layout incrementally. You need to compute word-wrapping -// here. -// -// Each textfield keeps its own insert mode state, which is not how normal -// applications work. To keep an app-wide insert mode, update/copy the -// "insert_mode" field of STB_TexteditState before/after calling API functions. -// -// API -// -// void stb_textedit_initialize_state(STB_TexteditState *state, int is_single_line) -// -// void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) -// void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) -// int stb_textedit_cut(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -// int stb_textedit_paste(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXTEDIT_CHARTYPE *text, int len) -// void stb_textedit_key(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int key) -// -// Each of these functions potentially updates the string and updates the -// state. -// -// initialize_state: -// set the textedit state to a known good default state when initially -// constructing the textedit. -// -// click: -// call this with the mouse x,y on a mouse down; it will update the cursor -// and reset the selection start/end to the cursor point. the x,y must -// be relative to the text widget, with (0,0) being the top left. -// -// drag: -// call this with the mouse x,y on a mouse drag/up; it will update the -// cursor and the selection end point -// -// cut: -// call this to delete the current selection; returns true if there was -// one. you should FIRST copy the current selection to the system paste buffer. -// (To copy, just copy the current selection out of the string yourself.) -// -// paste: -// call this to paste text at the current cursor point or over the current -// selection if there is one. -// -// key: -// call this for keyboard inputs sent to the textfield. you can use it -// for "key down" events or for "translated" key events. if you need to -// do both (as in Win32), or distinguish Unicode characters from control -// inputs, set a high bit to distinguish the two; then you can define the -// various definitions like STB_TEXTEDIT_K_LEFT have the is-key-event bit -// set, and make STB_TEXTEDIT_KEYTOCHAR check that the is-key-event bit is -// clear. -// -// When rendering, you can read the cursor position and selection state from -// the STB_TexteditState. -// -// -// Notes: -// -// This is designed to be usable in IMGUI, so it allows for the possibility of -// running in an IMGUI that has NOT cached the multi-line layout. For this -// reason, it provides an interface that is compatible with computing the -// layout incrementally--we try to make sure we make as few passes through -// as possible. (For example, to locate the mouse pointer in the text, we -// could define functions that return the X and Y positions of characters -// and binary search Y and then X, but if we're doing dynamic layout this -// will run the layout algorithm many times, so instead we manually search -// forward in one pass. Similar logic applies to e.g. up-arrow and -// down-arrow movement.) -// -// If it's run in a widget that *has* cached the layout, then this is less -// efficient, but it's not horrible on modern computers. But you wouldn't -// want to edit million-line files with it. - - -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//// -//// Header-file mode -//// -//// - -#ifndef INCLUDE_STB_TEXTEDIT_H -#define INCLUDE_STB_TEXTEDIT_H - -//////////////////////////////////////////////////////////////////////// -// -// STB_TexteditState -// -// Definition of STB_TexteditState which you should store -// per-textfield; it includes cursor position, selection state, -// and undo state. -// - -#ifndef STB_TEXTEDIT_UNDOSTATECOUNT -#define STB_TEXTEDIT_UNDOSTATECOUNT 99 -#endif -#ifndef STB_TEXTEDIT_UNDOCHARCOUNT -#define STB_TEXTEDIT_UNDOCHARCOUNT 999 -#endif -#ifndef STB_TEXTEDIT_CHARTYPE -#define STB_TEXTEDIT_CHARTYPE int -#endif -#ifndef STB_TEXTEDIT_POSITIONTYPE -#define STB_TEXTEDIT_POSITIONTYPE int -#endif - -typedef struct -{ - // private data - STB_TEXTEDIT_POSITIONTYPE where; - short insert_length; - short delete_length; - short char_storage; -} StbUndoRecord; - -typedef struct -{ - // private data - StbUndoRecord undo_rec [STB_TEXTEDIT_UNDOSTATECOUNT]; - STB_TEXTEDIT_CHARTYPE undo_char[STB_TEXTEDIT_UNDOCHARCOUNT]; - short undo_point, redo_point; - short undo_char_point, redo_char_point; -} StbUndoState; - -typedef struct -{ - ///////////////////// - // - // public data - // - - int cursor; - // position of the text cursor within the string - - int select_start; // selection start point - int select_end; - // selection start and end point in characters; if equal, no selection. - // note that start may be less than or greater than end (e.g. when - // dragging the mouse, start is where the initial click was, and you - // can drag in either direction) - - unsigned char insert_mode; - // each textfield keeps its own insert mode state. to keep an app-wide - // insert mode, copy this value in/out of the app state - - ///////////////////// - // - // private data - // - unsigned char cursor_at_end_of_line; // not implemented yet - unsigned char initialized; - unsigned char has_preferred_x; - unsigned char single_line; - unsigned char padding1, padding2, padding3; - float preferred_x; // this determines where the cursor up/down tries to seek to along x - StbUndoState undostate; -} STB_TexteditState; - - -//////////////////////////////////////////////////////////////////////// -// -// StbTexteditRow -// -// Result of layout query, used by stb_textedit to determine where -// the text in each row is. - -// result of layout query -typedef struct -{ - float x0,x1; // starting x location, end x location (allows for align=right, etc) - float baseline_y_delta; // position of baseline relative to previous row's baseline - float ymin,ymax; // height of row above and below baseline - int num_chars; -} StbTexteditRow; -#endif //INCLUDE_STB_TEXTEDIT_H - - -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//// -//// Implementation mode -//// -//// - - -// implementation isn't include-guarded, since it might have indirectly -// included just the "header" portion -#ifdef STB_TEXTEDIT_IMPLEMENTATION - -#include // memmove - - -///////////////////////////////////////////////////////////////////////////// -// -// Mouse input handling -// - -// traverse the layout to locate the nearest character to a display position -static int stb_text_locate_coord(STB_TEXTEDIT_STRING *str, float x, float y) -{ - StbTexteditRow r; - int n = STB_TEXTEDIT_STRINGLEN(str); - float base_y = 0, prev_x; - int i=0, k; - - if (y < 0) - return 0; - - r.x0 = r.x1 = 0; - r.ymin = r.ymax = 0; - r.num_chars = 0; - - // search rows to find one that straddles 'y' - while (i < n) { - STB_TEXTEDIT_LAYOUTROW(&r, str, i); - if (r.num_chars <= 0) - return n; - - if (y < base_y + r.ymax) - break; - - i += r.num_chars; - base_y += r.baseline_y_delta; - } - - // below all text, return 'after' last character - if (i >= n) - return n; - - // check if it's before the beginning of the line - if (x < r.x0) - return i; - - // check if it's before the end of the line - if (x < r.x1) { - // search characters in row for one that straddles 'x' - k = i; - prev_x = r.x0; - for (i=0; i < r.num_chars; ++i) { - float w = STB_TEXTEDIT_GETWIDTH(str, k, i); - if (x < prev_x+w) { - if (x < prev_x+w/2) - return k+i; - else - return k+i+1; - } - prev_x += w; - } - // shouldn't happen, but if it does, fall through to end-of-line case - } - - // if the last character is a newline, return that. otherwise return 'after' the last character - if (STB_TEXTEDIT_GETCHAR(str, i+r.num_chars-1) == STB_TEXTEDIT_NEWLINE) - return i+r.num_chars-1; - else - return i+r.num_chars; -} - -// API click: on mouse down, move the cursor to the clicked location, and reset the selection -static void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) -{ - state->cursor = stb_text_locate_coord(str, x, y); - state->select_start = state->cursor; - state->select_end = state->cursor; - state->has_preferred_x = 0; -} - -// API drag: on mouse drag, move the cursor and selection endpoint to the clicked location -static void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) -{ - int p = stb_text_locate_coord(str, x, y); - state->cursor = state->select_end = p; -} - -///////////////////////////////////////////////////////////////////////////// -// -// Keyboard input handling -// - -// forward declarations -static void stb_text_undo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state); -static void stb_text_redo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state); -static void stb_text_makeundo_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int length); -static void stb_text_makeundo_insert(STB_TexteditState *state, int where, int length); -static void stb_text_makeundo_replace(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int old_length, int new_length); - -typedef struct -{ - float x,y; // position of n'th character - float height; // height of line - int first_char, length; // first char of row, and length - int prev_first; // first char of previous row -} StbFindState; - -// find the x/y location of a character, and remember info about the previous row in -// case we get a move-up event (for page up, we'll have to rescan) -static void stb_textedit_find_charpos(StbFindState *find, STB_TEXTEDIT_STRING *str, int n, int single_line) -{ - StbTexteditRow r; - int prev_start = 0; - int z = STB_TEXTEDIT_STRINGLEN(str); - int i=0, first; - - if (n == z) { - // if it's at the end, then find the last line -- simpler than trying to - // explicitly handle this case in the regular code - if (single_line) { - STB_TEXTEDIT_LAYOUTROW(&r, str, 0); - find->y = 0; - find->first_char = 0; - find->length = z; - find->height = r.ymax - r.ymin; - find->x = r.x1; - } else { - find->y = 0; - find->x = 0; - find->height = 1; - while (i < z) { - STB_TEXTEDIT_LAYOUTROW(&r, str, i); - prev_start = i; - i += r.num_chars; - } - find->first_char = i; - find->length = 0; - find->prev_first = prev_start; - } - return; - } - - // search rows to find the one that straddles character n - find->y = 0; - - for(;;) { - STB_TEXTEDIT_LAYOUTROW(&r, str, i); - if (n < i + r.num_chars) - break; - prev_start = i; - i += r.num_chars; - find->y += r.baseline_y_delta; - } - - find->first_char = first = i; - find->length = r.num_chars; - find->height = r.ymax - r.ymin; - find->prev_first = prev_start; - - // now scan to find xpos - find->x = r.x0; - i = 0; - for (i=0; first+i < n; ++i) - find->x += STB_TEXTEDIT_GETWIDTH(str, first, i); -} - -#define STB_TEXT_HAS_SELECTION(s) ((s)->select_start != (s)->select_end) - -// make the selection/cursor state valid if client altered the string -static void stb_textedit_clamp(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - int n = STB_TEXTEDIT_STRINGLEN(str); - if (STB_TEXT_HAS_SELECTION(state)) { - if (state->select_start > n) state->select_start = n; - if (state->select_end > n) state->select_end = n; - // if clamping forced them to be equal, move the cursor to match - if (state->select_start == state->select_end) - state->cursor = state->select_start; - } - if (state->cursor > n) state->cursor = n; -} - -// delete characters while updating undo -static void stb_textedit_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int len) -{ - stb_text_makeundo_delete(str, state, where, len); - STB_TEXTEDIT_DELETECHARS(str, where, len); - state->has_preferred_x = 0; -} - -// delete the section -static void stb_textedit_delete_selection(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - stb_textedit_clamp(str, state); - if (STB_TEXT_HAS_SELECTION(state)) { - if (state->select_start < state->select_end) { - stb_textedit_delete(str, state, state->select_start, state->select_end - state->select_start); - state->select_end = state->cursor = state->select_start; - } else { - stb_textedit_delete(str, state, state->select_end, state->select_start - state->select_end); - state->select_start = state->cursor = state->select_end; - } - state->has_preferred_x = 0; - } -} - -// canoncialize the selection so start <= end -static void stb_textedit_sortselection(STB_TexteditState *state) -{ - if (state->select_end < state->select_start) { - int temp = state->select_end; - state->select_end = state->select_start; - state->select_start = temp; - } -} - -// move cursor to first character of selection -static void stb_textedit_move_to_first(STB_TexteditState *state) -{ - if (STB_TEXT_HAS_SELECTION(state)) { - stb_textedit_sortselection(state); - state->cursor = state->select_start; - state->select_end = state->select_start; - state->has_preferred_x = 0; - } -} - -// move cursor to last character of selection -static void stb_textedit_move_to_last(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - if (STB_TEXT_HAS_SELECTION(state)) { - stb_textedit_sortselection(state); - stb_textedit_clamp(str, state); - state->cursor = state->select_end; - state->select_start = state->select_end; - state->has_preferred_x = 0; - } -} - -#ifdef STB_TEXTEDIT_IS_SPACE -static int is_word_boundary( STB_TEXTEDIT_STRING *_str, int _idx ) -{ - return _idx > 0 ? (STB_TEXTEDIT_IS_SPACE( STB_TEXTEDIT_GETCHAR(_str,_idx-1) ) && !STB_TEXTEDIT_IS_SPACE( STB_TEXTEDIT_GETCHAR(_str, _idx) ) ) : 1; -} - -static int stb_textedit_move_to_word_previous( STB_TEXTEDIT_STRING *_str, STB_TexteditState *_state ) -{ - int c = _state->cursor - 1; - while( c >= 0 && !is_word_boundary( _str, c ) ) - --c; - - if( c < 0 ) - c = 0; - - return c; -} - -static int stb_textedit_move_to_word_next( STB_TEXTEDIT_STRING *_str, STB_TexteditState *_state ) -{ - const int len = STB_TEXTEDIT_STRINGLEN(_str); - int c = _state->cursor+1; - while( c < len && !is_word_boundary( _str, c ) ) - ++c; - - if( c > len ) - c = len; - - return c; -} -#endif - -// update selection and cursor to match each other -static void stb_textedit_prep_selection_at_cursor(STB_TexteditState *state) -{ - if (!STB_TEXT_HAS_SELECTION(state)) - state->select_start = state->select_end = state->cursor; - else - state->cursor = state->select_end; -} - -// API cut: delete selection -static int stb_textedit_cut(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - if (STB_TEXT_HAS_SELECTION(state)) { - stb_textedit_delete_selection(str,state); // implicity clamps - state->has_preferred_x = 0; - return 1; - } - return 0; -} - -// API paste: replace existing selection with passed-in text -static int stb_textedit_paste(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXTEDIT_CHARTYPE const *ctext, int len) -{ - STB_TEXTEDIT_CHARTYPE *text = (STB_TEXTEDIT_CHARTYPE *) ctext; - // if there's a selection, the paste should delete it - stb_textedit_clamp(str, state); - stb_textedit_delete_selection(str,state); - // try to insert the characters - if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, text, len)) { - stb_text_makeundo_insert(state, state->cursor, len); - state->cursor += len; - state->has_preferred_x = 0; - return 1; - } - // remove the undo since we didn't actually insert the characters - if (state->undostate.undo_point) - --state->undostate.undo_point; - return 0; -} - -// API key: process a keyboard input -static void stb_textedit_key(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int key) -{ -retry: - switch (key) { - default: { - int c = STB_TEXTEDIT_KEYTOTEXT(key); - if (c > 0) { - STB_TEXTEDIT_CHARTYPE ch = (STB_TEXTEDIT_CHARTYPE) c; - - // can't add newline in single-line mode - if (c == '\n' && state->single_line) - break; - - if (state->insert_mode && !STB_TEXT_HAS_SELECTION(state) && state->cursor < STB_TEXTEDIT_STRINGLEN(str)) { - stb_text_makeundo_replace(str, state, state->cursor, 1, 1); - STB_TEXTEDIT_DELETECHARS(str, state->cursor, 1); - if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, &ch, 1)) { - ++state->cursor; - state->has_preferred_x = 0; - } - } else { - stb_textedit_delete_selection(str,state); // implicity clamps - if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, &ch, 1)) { - stb_text_makeundo_insert(state, state->cursor, 1); - ++state->cursor; - state->has_preferred_x = 0; - } - } - } - break; - } - -#ifdef STB_TEXTEDIT_K_INSERT - case STB_TEXTEDIT_K_INSERT: - state->insert_mode = !state->insert_mode; - break; -#endif - - case STB_TEXTEDIT_K_UNDO: - stb_text_undo(str, state); - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_REDO: - stb_text_redo(str, state); - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_LEFT: - // if currently there's a selection, move cursor to start of selection - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_first(state); - else - if (state->cursor > 0) - --state->cursor; - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_RIGHT: - // if currently there's a selection, move cursor to end of selection - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_last(str, state); - else - ++state->cursor; - stb_textedit_clamp(str, state); - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_LEFT | STB_TEXTEDIT_K_SHIFT: - stb_textedit_clamp(str, state); - stb_textedit_prep_selection_at_cursor(state); - // move selection left - if (state->select_end > 0) - --state->select_end; - state->cursor = state->select_end; - state->has_preferred_x = 0; - break; - -#ifdef STB_TEXTEDIT_IS_SPACE - case STB_TEXTEDIT_K_WORDLEFT: - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_first(state); - else { - state->cursor = stb_textedit_move_to_word_previous(str, state); - stb_textedit_clamp( str, state ); - } - break; - - case STB_TEXTEDIT_K_WORDRIGHT: - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_last(str, state); - else { - state->cursor = stb_textedit_move_to_word_next(str, state); - stb_textedit_clamp( str, state ); - } - break; - - case STB_TEXTEDIT_K_WORDLEFT | STB_TEXTEDIT_K_SHIFT: - if( !STB_TEXT_HAS_SELECTION( state ) ) - stb_textedit_prep_selection_at_cursor(state); - - state->cursor = stb_textedit_move_to_word_previous(str, state); - state->select_end = state->cursor; - - stb_textedit_clamp( str, state ); - break; - - case STB_TEXTEDIT_K_WORDRIGHT | STB_TEXTEDIT_K_SHIFT: - if( !STB_TEXT_HAS_SELECTION( state ) ) - stb_textedit_prep_selection_at_cursor(state); - - state->cursor = stb_textedit_move_to_word_next(str, state); - state->select_end = state->cursor; - - stb_textedit_clamp( str, state ); - break; -#endif - - case STB_TEXTEDIT_K_RIGHT | STB_TEXTEDIT_K_SHIFT: - stb_textedit_prep_selection_at_cursor(state); - // move selection right - ++state->select_end; - stb_textedit_clamp(str, state); - state->cursor = state->select_end; - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_DOWN: - case STB_TEXTEDIT_K_DOWN | STB_TEXTEDIT_K_SHIFT: { - StbFindState find; - StbTexteditRow row; - int i, sel = (key & STB_TEXTEDIT_K_SHIFT) != 0; - - if (state->single_line) { - // on windows, up&down in single-line behave like left&right - key = STB_TEXTEDIT_K_RIGHT | (key & STB_TEXTEDIT_K_SHIFT); - goto retry; - } - - if (sel) - stb_textedit_prep_selection_at_cursor(state); - else if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_last(str,state); - - // compute current position of cursor point - stb_textedit_clamp(str, state); - stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); - - // now find character position down a row - if (find.length) { - float goal_x = state->has_preferred_x ? state->preferred_x : find.x; - float x; - int start = find.first_char + find.length; - state->cursor = start; - STB_TEXTEDIT_LAYOUTROW(&row, str, state->cursor); - x = row.x0; - for (i=0; i < row.num_chars; ++i) { - float dx = STB_TEXTEDIT_GETWIDTH(str, start, i); - #ifdef STB_TEXTEDIT_GETWIDTH_NEWLINE - if (dx == STB_TEXTEDIT_GETWIDTH_NEWLINE) - break; - #endif - x += dx; - if (x > goal_x) - break; - ++state->cursor; - } - stb_textedit_clamp(str, state); - - state->has_preferred_x = 1; - state->preferred_x = goal_x; - - if (sel) - state->select_end = state->cursor; - } - break; - } - - case STB_TEXTEDIT_K_UP: - case STB_TEXTEDIT_K_UP | STB_TEXTEDIT_K_SHIFT: { - StbFindState find; - StbTexteditRow row; - int i, sel = (key & STB_TEXTEDIT_K_SHIFT) != 0; - - if (state->single_line) { - // on windows, up&down become left&right - key = STB_TEXTEDIT_K_LEFT | (key & STB_TEXTEDIT_K_SHIFT); - goto retry; - } - - if (sel) - stb_textedit_prep_selection_at_cursor(state); - else if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_first(state); - - // compute current position of cursor point - stb_textedit_clamp(str, state); - stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); - - // can only go up if there's a previous row - if (find.prev_first != find.first_char) { - // now find character position up a row - float goal_x = state->has_preferred_x ? state->preferred_x : find.x; - float x; - state->cursor = find.prev_first; - STB_TEXTEDIT_LAYOUTROW(&row, str, state->cursor); - x = row.x0; - for (i=0; i < row.num_chars; ++i) { - float dx = STB_TEXTEDIT_GETWIDTH(str, find.prev_first, i); - #ifdef STB_TEXTEDIT_GETWIDTH_NEWLINE - if (dx == STB_TEXTEDIT_GETWIDTH_NEWLINE) - break; - #endif - x += dx; - if (x > goal_x) - break; - ++state->cursor; - } - stb_textedit_clamp(str, state); - - state->has_preferred_x = 1; - state->preferred_x = goal_x; - - if (sel) - state->select_end = state->cursor; - } - break; - } - - case STB_TEXTEDIT_K_DELETE: - case STB_TEXTEDIT_K_DELETE | STB_TEXTEDIT_K_SHIFT: - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_delete_selection(str, state); - else { - int n = STB_TEXTEDIT_STRINGLEN(str); - if (state->cursor < n) - stb_textedit_delete(str, state, state->cursor, 1); - } - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_BACKSPACE: - case STB_TEXTEDIT_K_BACKSPACE | STB_TEXTEDIT_K_SHIFT: - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_delete_selection(str, state); - else { - stb_textedit_clamp(str, state); - if (state->cursor > 0) { - stb_textedit_delete(str, state, state->cursor-1, 1); - --state->cursor; - } - } - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_TEXTSTART: - state->cursor = state->select_start = state->select_end = 0; - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_TEXTEND: - state->cursor = STB_TEXTEDIT_STRINGLEN(str); - state->select_start = state->select_end = 0; - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_TEXTSTART | STB_TEXTEDIT_K_SHIFT: - stb_textedit_prep_selection_at_cursor(state); - state->cursor = state->select_end = 0; - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_TEXTEND | STB_TEXTEDIT_K_SHIFT: - stb_textedit_prep_selection_at_cursor(state); - state->cursor = state->select_end = STB_TEXTEDIT_STRINGLEN(str); - state->has_preferred_x = 0; - break; - - - case STB_TEXTEDIT_K_LINESTART: { - StbFindState find; - stb_textedit_clamp(str, state); - stb_textedit_move_to_first(state); - stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); - state->cursor = find.first_char; - state->has_preferred_x = 0; - break; - } - - case STB_TEXTEDIT_K_LINEEND: { - StbFindState find; - stb_textedit_clamp(str, state); - stb_textedit_move_to_first(state); - stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); - state->cursor = find.first_char + find.length; - if (find.length > 0 && STB_TEXTEDIT_GETCHAR(str, state->cursor-1) == STB_TEXTEDIT_NEWLINE) - state->cursor--; - state->has_preferred_x = 0; - break; - } - - case STB_TEXTEDIT_K_LINESTART | STB_TEXTEDIT_K_SHIFT: { - StbFindState find; - stb_textedit_clamp(str, state); - stb_textedit_prep_selection_at_cursor(state); - stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); - state->cursor = state->select_end = find.first_char; - state->has_preferred_x = 0; - break; - } - - case STB_TEXTEDIT_K_LINEEND | STB_TEXTEDIT_K_SHIFT: { - StbFindState find; - stb_textedit_clamp(str, state); - stb_textedit_prep_selection_at_cursor(state); - stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); - state->cursor = state->select_end = find.first_char + find.length; - if (find.length > 0 && STB_TEXTEDIT_GETCHAR(str, state->cursor-1) == STB_TEXTEDIT_NEWLINE) - state->cursor = state->select_end = state->cursor - 1; - state->has_preferred_x = 0; - break; - } - -// @TODO: -// STB_TEXTEDIT_K_PGUP - move cursor up a page -// STB_TEXTEDIT_K_PGDOWN - move cursor down a page - } -} - -///////////////////////////////////////////////////////////////////////////// -// -// Undo processing -// -// @OPTIMIZE: the undo/redo buffer should be circular - -static void stb_textedit_flush_redo(StbUndoState *state) -{ - state->redo_point = STB_TEXTEDIT_UNDOSTATECOUNT; - state->redo_char_point = STB_TEXTEDIT_UNDOCHARCOUNT; -} - -// discard the oldest entry in the undo list -static void stb_textedit_discard_undo(StbUndoState *state) -{ - if (state->undo_point > 0) { - // if the 0th undo state has characters, clean those up - if (state->undo_rec[0].char_storage >= 0) { - int n = state->undo_rec[0].insert_length, i; - // delete n characters from all other records - state->undo_char_point = state->undo_char_point - (short) n; // vsnet05 - memmove(state->undo_char, state->undo_char + n, (size_t) ((size_t)state->undo_char_point*sizeof(STB_TEXTEDIT_CHARTYPE))); - for (i=0; i < state->undo_point; ++i) - if (state->undo_rec[i].char_storage >= 0) - state->undo_rec[i].char_storage = state->undo_rec[i].char_storage - (short) n; // vsnet05 // @OPTIMIZE: get rid of char_storage and infer it - } - --state->undo_point; - memmove(state->undo_rec, state->undo_rec+1, (size_t) ((size_t)state->undo_point*sizeof(state->undo_rec[0]))); - } -} - -// discard the oldest entry in the redo list--it's bad if this -// ever happens, but because undo & redo have to store the actual -// characters in different cases, the redo character buffer can -// fill up even though the undo buffer didn't -static void stb_textedit_discard_redo(StbUndoState *state) -{ - int k = STB_TEXTEDIT_UNDOSTATECOUNT-1; - - if (state->redo_point <= k) { - // if the k'th undo state has characters, clean those up - if (state->undo_rec[k].char_storage >= 0) { - int n = state->undo_rec[k].insert_length, i; - // delete n characters from all other records - state->redo_char_point = state->redo_char_point + (short) n; // vsnet05 - memmove(state->undo_char + state->redo_char_point, state->undo_char + state->redo_char_point-n, (size_t) ((size_t)(STB_TEXTEDIT_UNDOSTATECOUNT - state->redo_char_point)*sizeof(STB_TEXTEDIT_CHARTYPE))); - for (i=state->redo_point; i < k; ++i) - if (state->undo_rec[i].char_storage >= 0) - state->undo_rec[i].char_storage = state->undo_rec[i].char_storage + (short) n; // vsnet05 - } - ++state->redo_point; - memmove(state->undo_rec + state->redo_point-1, state->undo_rec + state->redo_point, (size_t) ((size_t)(STB_TEXTEDIT_UNDOSTATECOUNT - state->redo_point)*sizeof(state->undo_rec[0]))); - } -} - -static StbUndoRecord *stb_text_create_undo_record(StbUndoState *state, int numchars) -{ - // any time we create a new undo record, we discard redo - stb_textedit_flush_redo(state); - - // if we have no free records, we have to make room, by sliding the - // existing records down - if (state->undo_point == STB_TEXTEDIT_UNDOSTATECOUNT) - stb_textedit_discard_undo(state); - - // if the characters to store won't possibly fit in the buffer, we can't undo - if (numchars > STB_TEXTEDIT_UNDOCHARCOUNT) { - state->undo_point = 0; - state->undo_char_point = 0; - return NULL; - } - - // if we don't have enough free characters in the buffer, we have to make room - while (state->undo_char_point + numchars > STB_TEXTEDIT_UNDOCHARCOUNT) - stb_textedit_discard_undo(state); - - return &state->undo_rec[state->undo_point++]; -} - -static STB_TEXTEDIT_CHARTYPE *stb_text_createundo(StbUndoState *state, int pos, int insert_len, int delete_len) -{ - StbUndoRecord *r = stb_text_create_undo_record(state, insert_len); - if (r == NULL) - return NULL; - - r->where = pos; - r->insert_length = (short) insert_len; - r->delete_length = (short) delete_len; - - if (insert_len == 0) { - r->char_storage = -1; - return NULL; - } else { - r->char_storage = state->undo_char_point; - state->undo_char_point = state->undo_char_point + (short) insert_len; - return &state->undo_char[r->char_storage]; - } -} - -static void stb_text_undo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - StbUndoState *s = &state->undostate; - StbUndoRecord u, *r; - if (s->undo_point == 0) - return; - - // we need to do two things: apply the undo record, and create a redo record - u = s->undo_rec[s->undo_point-1]; - r = &s->undo_rec[s->redo_point-1]; - r->char_storage = -1; - - r->insert_length = u.delete_length; - r->delete_length = u.insert_length; - r->where = u.where; - - if (u.delete_length) { - // if the undo record says to delete characters, then the redo record will - // need to re-insert the characters that get deleted, so we need to store - // them. - - // there are three cases: - // there's enough room to store the characters - // characters stored for *redoing* don't leave room for redo - // characters stored for *undoing* don't leave room for redo - // if the last is true, we have to bail - - if (s->undo_char_point + u.delete_length >= STB_TEXTEDIT_UNDOCHARCOUNT) { - // the undo records take up too much character space; there's no space to store the redo characters - r->insert_length = 0; - } else { - int i; - - // there's definitely room to store the characters eventually - while (s->undo_char_point + u.delete_length > s->redo_char_point) { - // there's currently not enough room, so discard a redo record - stb_textedit_discard_redo(s); - // should never happen: - if (s->redo_point == STB_TEXTEDIT_UNDOSTATECOUNT) - return; - } - r = &s->undo_rec[s->redo_point-1]; - - r->char_storage = s->redo_char_point - u.delete_length; - s->redo_char_point = s->redo_char_point - (short) u.delete_length; - - // now save the characters - for (i=0; i < u.delete_length; ++i) - s->undo_char[r->char_storage + i] = STB_TEXTEDIT_GETCHAR(str, u.where + i); - } - - // now we can carry out the deletion - STB_TEXTEDIT_DELETECHARS(str, u.where, u.delete_length); - } - - // check type of recorded action: - if (u.insert_length) { - // easy case: was a deletion, so we need to insert n characters - STB_TEXTEDIT_INSERTCHARS(str, u.where, &s->undo_char[u.char_storage], u.insert_length); - s->undo_char_point -= u.insert_length; - } - - state->cursor = u.where + u.insert_length; - - s->undo_point--; - s->redo_point--; -} - -static void stb_text_redo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - StbUndoState *s = &state->undostate; - StbUndoRecord *u, r; - if (s->redo_point == STB_TEXTEDIT_UNDOSTATECOUNT) - return; - - // we need to do two things: apply the redo record, and create an undo record - u = &s->undo_rec[s->undo_point]; - r = s->undo_rec[s->redo_point]; - - // we KNOW there must be room for the undo record, because the redo record - // was derived from an undo record - - u->delete_length = r.insert_length; - u->insert_length = r.delete_length; - u->where = r.where; - u->char_storage = -1; - - if (r.delete_length) { - // the redo record requires us to delete characters, so the undo record - // needs to store the characters - - if (s->undo_char_point + u->insert_length > s->redo_char_point) { - u->insert_length = 0; - u->delete_length = 0; - } else { - int i; - u->char_storage = s->undo_char_point; - s->undo_char_point = s->undo_char_point + u->insert_length; - - // now save the characters - for (i=0; i < u->insert_length; ++i) - s->undo_char[u->char_storage + i] = STB_TEXTEDIT_GETCHAR(str, u->where + i); - } - - STB_TEXTEDIT_DELETECHARS(str, r.where, r.delete_length); - } - - if (r.insert_length) { - // easy case: need to insert n characters - STB_TEXTEDIT_INSERTCHARS(str, r.where, &s->undo_char[r.char_storage], r.insert_length); - } - - state->cursor = r.where + r.insert_length; - - s->undo_point++; - s->redo_point++; -} - -static void stb_text_makeundo_insert(STB_TexteditState *state, int where, int length) -{ - stb_text_createundo(&state->undostate, where, 0, length); -} - -static void stb_text_makeundo_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int length) -{ - int i; - STB_TEXTEDIT_CHARTYPE *p = stb_text_createundo(&state->undostate, where, length, 0); - if (p) { - for (i=0; i < length; ++i) - p[i] = STB_TEXTEDIT_GETCHAR(str, where+i); - } -} - -static void stb_text_makeundo_replace(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int old_length, int new_length) -{ - int i; - STB_TEXTEDIT_CHARTYPE *p = stb_text_createundo(&state->undostate, where, old_length, new_length); - if (p) { - for (i=0; i < old_length; ++i) - p[i] = STB_TEXTEDIT_GETCHAR(str, where+i); - } -} - -// reset the state to default -static void stb_textedit_clear_state(STB_TexteditState *state, int is_single_line) -{ - state->undostate.undo_point = 0; - state->undostate.undo_char_point = 0; - state->undostate.redo_point = STB_TEXTEDIT_UNDOSTATECOUNT; - state->undostate.redo_char_point = STB_TEXTEDIT_UNDOCHARCOUNT; - state->select_end = state->select_start = 0; - state->cursor = 0; - state->has_preferred_x = 0; - state->preferred_x = 0; - state->cursor_at_end_of_line = 0; - state->initialized = 1; - state->single_line = (unsigned char) is_single_line; - state->insert_mode = 0; -} - -// API initialize -static void stb_textedit_initialize_state(STB_TexteditState *state, int is_single_line) -{ - stb_textedit_clear_state(state, is_single_line); -} -#endif//STB_TEXTEDIT_IMPLEMENTATION diff --git a/samples/D3D12/external/imgui/stb_truetype.h b/samples/D3D12/external/imgui/stb_truetype.h deleted file mode 100644 index 3eba786..0000000 --- a/samples/D3D12/external/imgui/stb_truetype.h +++ /dev/null @@ -1,3221 +0,0 @@ -// stb_truetype.h - v1.07 - public domain -// authored from 2009-2015 by Sean Barrett / RAD Game Tools -// -// This library processes TrueType files: -// parse files -// extract glyph metrics -// extract glyph shapes -// render glyphs to one-channel bitmaps with antialiasing (box filter) -// -// Todo: -// non-MS cmaps -// crashproof on bad data -// hinting? (no longer patented) -// cleartype-style AA? -// optimize: use simple memory allocator for intermediates -// optimize: build edge-list directly from curves -// optimize: rasterize directly from curves? -// -// ADDITIONAL CONTRIBUTORS -// -// Mikko Mononen: compound shape support, more cmap formats -// Tor Andersson: kerning, subpixel rendering -// -// Bug/warning reports/fixes: -// "Zer" on mollyrocket (with fix) -// Cass Everitt -// stoiko (Haemimont Games) -// Brian Hook -// Walter van Niftrik -// David Gow -// David Given -// Ivan-Assen Ivanov -// Anthony Pesch -// Johan Duparc -// Hou Qiming -// Fabian "ryg" Giesen -// Martins Mozeiko -// Cap Petschulat -// Omar Cornut -// github:aloucks -// Peter LaValle -// Giumo X. Clanjor -// -// Misc other: -// Ryan Gordon -// -// VERSION HISTORY -// -// 1.07 (2015-08-01) allow PackFontRanges to accept arrays of sparse codepoints; -// variant PackFontRanges to pack and render in separate phases; -// fix stbtt_GetFontOFfsetForIndex (never worked for non-0 input?); -// fixed an assert() bug in the new rasterizer -// replace assert() with STBTT_assert() in new rasterizer -// 1.06 (2015-07-14) performance improvements (~35% faster on x86 and x64 on test machine) -// also more precise AA rasterizer, except if shapes overlap -// remove need for STBTT_sort -// 1.05 (2015-04-15) fix misplaced definitions for STBTT_STATIC -// 1.04 (2015-04-15) typo in example -// 1.03 (2015-04-12) STBTT_STATIC, fix memory leak in new packing, various fixes -// -// Full history can be found at the end of this file. -// -// LICENSE -// -// This software is in the public domain. Where that dedication is not -// recognized, you are granted a perpetual, irrevocable license to copy, -// distribute, and modify this file as you see fit. -// -// USAGE -// -// Include this file in whatever places neeed to refer to it. In ONE C/C++ -// file, write: -// #define STB_TRUETYPE_IMPLEMENTATION -// before the #include of this file. This expands out the actual -// implementation into that C/C++ file. -// -// To make the implementation private to the file that generates the implementation, -// #define STBTT_STATIC -// -// Simple 3D API (don't ship this, but it's fine for tools and quick start) -// stbtt_BakeFontBitmap() -- bake a font to a bitmap for use as texture -// stbtt_GetBakedQuad() -- compute quad to draw for a given char -// -// Improved 3D API (more shippable): -// #include "stb_rect_pack.h" -- optional, but you really want it -// stbtt_PackBegin() -// stbtt_PackSetOversample() -- for improved quality on small fonts -// stbtt_PackFontRanges() -- pack and renders -// stbtt_PackEnd() -// stbtt_GetPackedQuad() -// -// "Load" a font file from a memory buffer (you have to keep the buffer loaded) -// stbtt_InitFont() -// stbtt_GetFontOffsetForIndex() -- use for TTC font collections -// -// Render a unicode codepoint to a bitmap -// stbtt_GetCodepointBitmap() -- allocates and returns a bitmap -// stbtt_MakeCodepointBitmap() -- renders into bitmap you provide -// stbtt_GetCodepointBitmapBox() -- how big the bitmap must be -// -// Character advance/positioning -// stbtt_GetCodepointHMetrics() -// stbtt_GetFontVMetrics() -// stbtt_GetCodepointKernAdvance() -// -// Starting with version 1.06, the rasterizer was replaced with a new, -// faster and generally-more-precise rasterizer. The new rasterizer more -// accurately measures pixel coverage for anti-aliasing, except in the case -// where multiple shapes overlap, in which case it overestimates the AA pixel -// coverage. Thus, anti-aliasing of intersecting shapes may look wrong. If -// this turns out to be a problem, you can re-enable the old rasterizer with -// #define STBTT_RASTERIZER_VERSION 1 -// which will incur about a 15% speed hit. -// -// ADDITIONAL DOCUMENTATION -// -// Immediately after this block comment are a series of sample programs. -// -// After the sample programs is the "header file" section. This section -// includes documentation for each API function. -// -// Some important concepts to understand to use this library: -// -// Codepoint -// Characters are defined by unicode codepoints, e.g. 65 is -// uppercase A, 231 is lowercase c with a cedilla, 0x7e30 is -// the hiragana for "ma". -// -// Glyph -// A visual character shape (every codepoint is rendered as -// some glyph) -// -// Glyph index -// A font-specific integer ID representing a glyph -// -// Baseline -// Glyph shapes are defined relative to a baseline, which is the -// bottom of uppercase characters. Characters extend both above -// and below the baseline. -// -// Current Point -// As you draw text to the screen, you keep track of a "current point" -// which is the origin of each character. The current point's vertical -// position is the baseline. Even "baked fonts" use this model. -// -// Vertical Font Metrics -// The vertical qualities of the font, used to vertically position -// and space the characters. See docs for stbtt_GetFontVMetrics. -// -// Font Size in Pixels or Points -// The preferred interface for specifying font sizes in stb_truetype -// is to specify how tall the font's vertical extent should be in pixels. -// If that sounds good enough, skip the next paragraph. -// -// Most font APIs instead use "points", which are a common typographic -// measurement for describing font size, defined as 72 points per inch. -// stb_truetype provides a point API for compatibility. However, true -// "per inch" conventions don't make much sense on computer displays -// since they different monitors have different number of pixels per -// inch. For example, Windows traditionally uses a convention that -// there are 96 pixels per inch, thus making 'inch' measurements have -// nothing to do with inches, and thus effectively defining a point to -// be 1.333 pixels. Additionally, the TrueType font data provides -// an explicit scale factor to scale a given font's glyphs to points, -// but the author has observed that this scale factor is often wrong -// for non-commercial fonts, thus making fonts scaled in points -// according to the TrueType spec incoherently sized in practice. -// -// ADVANCED USAGE -// -// Quality: -// -// - Use the functions with Subpixel at the end to allow your characters -// to have subpixel positioning. Since the font is anti-aliased, not -// hinted, this is very import for quality. (This is not possible with -// baked fonts.) -// -// - Kerning is now supported, and if you're supporting subpixel rendering -// then kerning is worth using to give your text a polished look. -// -// Performance: -// -// - Convert Unicode codepoints to glyph indexes and operate on the glyphs; -// if you don't do this, stb_truetype is forced to do the conversion on -// every call. -// -// - There are a lot of memory allocations. We should modify it to take -// a temp buffer and allocate from the temp buffer (without freeing), -// should help performance a lot. -// -// NOTES -// -// The system uses the raw data found in the .ttf file without changing it -// and without building auxiliary data structures. This is a bit inefficient -// on little-endian systems (the data is big-endian), but assuming you're -// caching the bitmaps or glyph shapes this shouldn't be a big deal. -// -// It appears to be very hard to programmatically determine what font a -// given file is in a general way. I provide an API for this, but I don't -// recommend it. -// -// -// SOURCE STATISTICS (based on v0.6c, 2050 LOC) -// -// Documentation & header file 520 LOC \___ 660 LOC documentation -// Sample code 140 LOC / -// Truetype parsing 620 LOC ---- 620 LOC TrueType -// Software rasterization 240 LOC \ . -// Curve tesselation 120 LOC \__ 550 LOC Bitmap creation -// Bitmap management 100 LOC / -// Baked bitmap interface 70 LOC / -// Font name matching & access 150 LOC ---- 150 -// C runtime library abstraction 60 LOC ---- 60 -// -// -// PERFORMANCE MEASUREMENTS FOR 1.06: -// -// 32-bit 64-bit -// Previous release: 8.83 s 7.68 s -// Pool allocations: 7.72 s 6.34 s -// Inline sort : 6.54 s 5.65 s -// New rasterizer : 5.63 s 5.00 s - -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -//// -//// SAMPLE PROGRAMS -//// -// -// Incomplete text-in-3d-api example, which draws quads properly aligned to be lossless -// -#if 0 -#define STB_TRUETYPE_IMPLEMENTATION // force following include to generate implementation -#include "stb_truetype.h" - -unsigned char ttf_buffer[1<<20]; -unsigned char temp_bitmap[512*512]; - -stbtt_bakedchar cdata[96]; // ASCII 32..126 is 95 glyphs -GLuint ftex; - -void my_stbtt_initfont(void) -{ - fread(ttf_buffer, 1, 1<<20, fopen("c:/windows/fonts/times.ttf", "rb")); - stbtt_BakeFontBitmap(ttf_buffer,0, 32.0, temp_bitmap,512,512, 32,96, cdata); // no guarantee this fits! - // can free ttf_buffer at this point - glGenTextures(1, &ftex); - glBindTexture(GL_TEXTURE_2D, ftex); - glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 512,512, 0, GL_ALPHA, GL_UNSIGNED_BYTE, temp_bitmap); - // can free temp_bitmap at this point - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); -} - -void my_stbtt_print(float x, float y, char *text) -{ - // assume orthographic projection with units = screen pixels, origin at top left - glEnable(GL_TEXTURE_2D); - glBindTexture(GL_TEXTURE_2D, ftex); - glBegin(GL_QUADS); - while (*text) { - if (*text >= 32 && *text < 128) { - stbtt_aligned_quad q; - stbtt_GetBakedQuad(cdata, 512,512, *text-32, &x,&y,&q,1);//1=opengl & d3d10+,0=d3d9 - glTexCoord2f(q.s0,q.t1); glVertex2f(q.x0,q.y0); - glTexCoord2f(q.s1,q.t1); glVertex2f(q.x1,q.y0); - glTexCoord2f(q.s1,q.t0); glVertex2f(q.x1,q.y1); - glTexCoord2f(q.s0,q.t0); glVertex2f(q.x0,q.y1); - } - ++text; - } - glEnd(); -} -#endif -// -// -////////////////////////////////////////////////////////////////////////////// -// -// Complete program (this compiles): get a single bitmap, print as ASCII art -// -#if 0 -#include -#define STB_TRUETYPE_IMPLEMENTATION // force following include to generate implementation -#include "stb_truetype.h" - -char ttf_buffer[1<<25]; - -int main(int argc, char **argv) -{ - stbtt_fontinfo font; - unsigned char *bitmap; - int w,h,i,j,c = (argc > 1 ? atoi(argv[1]) : 'a'), s = (argc > 2 ? atoi(argv[2]) : 20); - - fread(ttf_buffer, 1, 1<<25, fopen(argc > 3 ? argv[3] : "c:/windows/fonts/arialbd.ttf", "rb")); - - stbtt_InitFont(&font, ttf_buffer, stbtt_GetFontOffsetForIndex(ttf_buffer,0)); - bitmap = stbtt_GetCodepointBitmap(&font, 0,stbtt_ScaleForPixelHeight(&font, s), c, &w, &h, 0,0); - - for (j=0; j < h; ++j) { - for (i=0; i < w; ++i) - putchar(" .:ioVM@"[bitmap[j*w+i]>>5]); - putchar('\n'); - } - return 0; -} -#endif -// -// Output: -// -// .ii. -// @@@@@@. -// V@Mio@@o -// :i. V@V -// :oM@@M -// :@@@MM@M -// @@o o@M -// :@@. M@M -// @@@o@@@@ -// :M@@V:@@. -// -////////////////////////////////////////////////////////////////////////////// -// -// Complete program: print "Hello World!" banner, with bugs -// -#if 0 -char buffer[24<<20]; -unsigned char screen[20][79]; - -int main(int arg, char **argv) -{ - stbtt_fontinfo font; - int i,j,ascent,baseline,ch=0; - float scale, xpos=2; // leave a little padding in case the character extends left - char *text = "Heljo World!"; // intentionally misspelled to show 'lj' brokenness - - fread(buffer, 1, 1000000, fopen("c:/windows/fonts/arialbd.ttf", "rb")); - stbtt_InitFont(&font, buffer, 0); - - scale = stbtt_ScaleForPixelHeight(&font, 15); - stbtt_GetFontVMetrics(&font, &ascent,0,0); - baseline = (int) (ascent*scale); - - while (text[ch]) { - int advance,lsb,x0,y0,x1,y1; - float x_shift = xpos - (float) floor(xpos); - stbtt_GetCodepointHMetrics(&font, text[ch], &advance, &lsb); - stbtt_GetCodepointBitmapBoxSubpixel(&font, text[ch], scale,scale,x_shift,0, &x0,&y0,&x1,&y1); - stbtt_MakeCodepointBitmapSubpixel(&font, &screen[baseline + y0][(int) xpos + x0], x1-x0,y1-y0, 79, scale,scale,x_shift,0, text[ch]); - // note that this stomps the old data, so where character boxes overlap (e.g. 'lj') it's wrong - // because this API is really for baking character bitmaps into textures. if you want to render - // a sequence of characters, you really need to render each bitmap to a temp buffer, then - // "alpha blend" that into the working buffer - xpos += (advance * scale); - if (text[ch+1]) - xpos += scale*stbtt_GetCodepointKernAdvance(&font, text[ch],text[ch+1]); - ++ch; - } - - for (j=0; j < 20; ++j) { - for (i=0; i < 78; ++i) - putchar(" .:ioVM@"[screen[j][i]>>5]); - putchar('\n'); - } - - return 0; -} -#endif - - -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -//// -//// INTEGRATION WITH YOUR CODEBASE -//// -//// The following sections allow you to supply alternate definitions -//// of C library functions used by stb_truetype. - -#ifdef STB_TRUETYPE_IMPLEMENTATION - // #define your own (u)stbtt_int8/16/32 before including to override this - #ifndef stbtt_uint8 - typedef unsigned char stbtt_uint8; - typedef signed char stbtt_int8; - typedef unsigned short stbtt_uint16; - typedef signed short stbtt_int16; - typedef unsigned int stbtt_uint32; - typedef signed int stbtt_int32; - #endif - - typedef char stbtt__check_size32[sizeof(stbtt_int32)==4 ? 1 : -1]; - typedef char stbtt__check_size16[sizeof(stbtt_int16)==2 ? 1 : -1]; - - // #define your own STBTT_ifloor/STBTT_iceil() to avoid math.h - #ifndef STBTT_ifloor - #include - #define STBTT_ifloor(x) ((int) floor(x)) - #define STBTT_iceil(x) ((int) ceil(x)) - #endif - - #ifndef STBTT_sqrt - #include - #define STBTT_sqrt(x) sqrt(x) - #endif - - // #define your own functions "STBTT_malloc" / "STBTT_free" to avoid malloc.h - #ifndef STBTT_malloc - #include - #define STBTT_malloc(x,u) ((void)(u),malloc(x)) - #define STBTT_free(x,u) ((void)(u),free(x)) - #endif - - #ifndef STBTT_assert - #include - #define STBTT_assert(x) assert(x) - #endif - - #ifndef STBTT_strlen - #include - #define STBTT_strlen(x) strlen(x) - #endif - - #ifndef STBTT_memcpy - #include - #define STBTT_memcpy memcpy - #define STBTT_memset memset - #endif -#endif - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -//// -//// INTERFACE -//// -//// - -#ifndef __STB_INCLUDE_STB_TRUETYPE_H__ -#define __STB_INCLUDE_STB_TRUETYPE_H__ - -#ifdef STBTT_STATIC -#define STBTT_DEF static -#else -#define STBTT_DEF extern -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// TEXTURE BAKING API -// -// If you use this API, you only have to call two functions ever. -// - -typedef struct -{ - unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap - float xoff,yoff,xadvance; -} stbtt_bakedchar; - -STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) - float pixel_height, // height of font in pixels - unsigned char *pixels, int pw, int ph, // bitmap to be filled in - int first_char, int num_chars, // characters to bake - stbtt_bakedchar *chardata); // you allocate this, it's num_chars long -// if return is positive, the first unused row of the bitmap -// if return is negative, returns the negative of the number of characters that fit -// if return is 0, no characters fit and no rows were used -// This uses a very crappy packing. - -typedef struct -{ - float x0,y0,s0,t0; // top-left - float x1,y1,s1,t1; // bottom-right -} stbtt_aligned_quad; - -STBTT_DEF void stbtt_GetBakedQuad(stbtt_bakedchar *chardata, int pw, int ph, // same data as above - int char_index, // character to display - float *xpos, float *ypos, // pointers to current position in screen pixel space - stbtt_aligned_quad *q, // output: quad to draw - int opengl_fillrule); // true if opengl fill rule; false if DX9 or earlier -// Call GetBakedQuad with char_index = 'character - first_char', and it -// creates the quad you need to draw and advances the current position. -// -// The coordinate system used assumes y increases downwards. -// -// Characters will extend both above and below the current position; -// see discussion of "BASELINE" above. -// -// It's inefficient; you might want to c&p it and optimize it. - - - -////////////////////////////////////////////////////////////////////////////// -// -// NEW TEXTURE BAKING API -// -// This provides options for packing multiple fonts into one atlas, not -// perfectly but better than nothing. - -typedef struct -{ - unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap - float xoff,yoff,xadvance; - float xoff2,yoff2; -} stbtt_packedchar; - -typedef struct stbtt_pack_context stbtt_pack_context; -typedef struct stbtt_fontinfo stbtt_fontinfo; -#ifndef STB_RECT_PACK_VERSION -typedef struct stbrp_rect stbrp_rect; -#endif - -STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, int width, int height, int stride_in_bytes, int padding, void *alloc_context); -// Initializes a packing context stored in the passed-in stbtt_pack_context. -// Future calls using this context will pack characters into the bitmap passed -// in here: a 1-channel bitmap that is weight x height. stride_in_bytes is -// the distance from one row to the next (or 0 to mean they are packed tightly -// together). "padding" is the amount of padding to leave between each -// character (normally you want '1' for bitmaps you'll use as textures with -// bilinear filtering). -// -// Returns 0 on failure, 1 on success. - -STBTT_DEF void stbtt_PackEnd (stbtt_pack_context *spc); -// Cleans up the packing context and frees all memory. - -#define STBTT_POINT_SIZE(x) (-(x)) - -STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, float font_size, - int first_unicode_char_in_range, int num_chars_in_range, stbtt_packedchar *chardata_for_range); -// Creates character bitmaps from the font_index'th font found in fontdata (use -// font_index=0 if you don't know what that is). It creates num_chars_in_range -// bitmaps for characters with unicode values starting at first_unicode_char_in_range -// and increasing. Data for how to render them is stored in chardata_for_range; -// pass these to stbtt_GetPackedQuad to get back renderable quads. -// -// font_size is the full height of the character from ascender to descender, -// as computed by stbtt_ScaleForPixelHeight. To use a point size as computed -// by stbtt_ScaleForMappingEmToPixels, wrap the point size in STBTT_POINT_SIZE() -// and pass that result as 'font_size': -// ..., 20 , ... // font max minus min y is 20 pixels tall -// ..., STBTT_POINT_SIZE(20), ... // 'M' is 20 pixels tall - -typedef struct -{ - float font_size; - int first_unicode_codepoint_in_range; // if non-zero, then the chars are continuous, and this is the first codepoint - int *array_of_unicode_codepoints; // if non-zero, then this is an array of unicode codepoints - int num_chars; - stbtt_packedchar *chardata_for_range; // output - unsigned char h_oversample, v_oversample; // don't set these, they're used internally -} stbtt_pack_range; - -STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, stbtt_pack_range *ranges, int num_ranges); -// Creates character bitmaps from multiple ranges of characters stored in -// ranges. This will usually create a better-packed bitmap than multiple -// calls to stbtt_PackFontRange. Note that you can call this multiple -// times within a single PackBegin/PackEnd. - -STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample); -// Oversampling a font increases the quality by allowing higher-quality subpixel -// positioning, and is especially valuable at smaller text sizes. -// -// This function sets the amount of oversampling for all following calls to -// stbtt_PackFontRange(s) or stbtt_PackFontRangesGatherRects for a given -// pack context. The default (no oversampling) is achieved by h_oversample=1 -// and v_oversample=1. The total number of pixels required is -// h_oversample*v_oversample larger than the default; for example, 2x2 -// oversampling requires 4x the storage of 1x1. For best results, render -// oversampled textures with bilinear filtering. Look at the readme in -// stb/tests/oversample for information about oversampled fonts -// -// To use with PackFontRangesGather etc., you must set it before calls -// call to PackFontRangesGatherRects. - -STBTT_DEF void stbtt_GetPackedQuad(stbtt_packedchar *chardata, int pw, int ph, // same data as above - int char_index, // character to display - float *xpos, float *ypos, // pointers to current position in screen pixel space - stbtt_aligned_quad *q, // output: quad to draw - int align_to_integer); - -STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); -STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, stbrp_rect *rects, int num_rects); -STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); -// Calling these functions in sequence is roughly equivalent to calling -// stbtt_PackFontRanges(). If you more control over the packing of multiple -// fonts, or if you want to pack custom data into a font texture, take a look -// at the source to of stbtt_PackFontRanges() and create a custom version -// using these functions, e.g. call GatherRects multiple times, -// building up a single array of rects, then call PackRects once, -// then call RenderIntoRects repeatedly. This may result in a -// better packing than calling PackFontRanges multiple times -// (or it may not). - -// this is an opaque structure that you shouldn't mess with which holds -// all the context needed from PackBegin to PackEnd. -struct stbtt_pack_context { - void *user_allocator_context; - void *pack_info; - int width; - int height; - int stride_in_bytes; - int padding; - unsigned int h_oversample, v_oversample; - unsigned char *pixels; - void *nodes; -}; - -////////////////////////////////////////////////////////////////////////////// -// -// FONT LOADING -// -// - -STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *data, int index); -// Each .ttf/.ttc file may have more than one font. Each font has a sequential -// index number starting from 0. Call this function to get the font offset for -// a given index; it returns -1 if the index is out of range. A regular .ttf -// file will only define one font and it always be at offset 0, so it will -// return '0' for index 0, and -1 for all other indices. You can just skip -// this step if you know it's that kind of font. - - -// The following structure is defined publically so you can declare one on -// the stack or as a global or etc, but you should treat it as opaque. -typedef struct stbtt_fontinfo -{ - void * userdata; - unsigned char * data; // pointer to .ttf file - int fontstart; // offset of start of font - - int numGlyphs; // number of glyphs, needed for range checking - - int loca,head,glyf,hhea,hmtx,kern; // table locations as offset from start of .ttf - int index_map; // a cmap mapping for our chosen character encoding - int indexToLocFormat; // format needed to map from glyph index to glyph -} stbtt_fontinfo; - -STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *data, int offset); -// Given an offset into the file that defines a font, this function builds -// the necessary cached info for the rest of the system. You must allocate -// the stbtt_fontinfo yourself, and stbtt_InitFont will fill it out. You don't -// need to do anything special to free it, because the contents are pure -// value data with no additional data structures. Returns 0 on failure. - - -////////////////////////////////////////////////////////////////////////////// -// -// CHARACTER TO GLYPH-INDEX CONVERSIOn - -STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint); -// If you're going to perform multiple operations on the same character -// and you want a speed-up, call this function with the character you're -// going to process, then use glyph-based functions instead of the -// codepoint-based functions. - - -////////////////////////////////////////////////////////////////////////////// -// -// CHARACTER PROPERTIES -// - -STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, float pixels); -// computes a scale factor to produce a font whose "height" is 'pixels' tall. -// Height is measured as the distance from the highest ascender to the lowest -// descender; in other words, it's equivalent to calling stbtt_GetFontVMetrics -// and computing: -// scale = pixels / (ascent - descent) -// so if you prefer to measure height by the ascent only, use a similar calculation. - -STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *info, float pixels); -// computes a scale factor to produce a font whose EM size is mapped to -// 'pixels' tall. This is probably what traditional APIs compute, but -// I'm not positive. - -STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *ascent, int *descent, int *lineGap); -// ascent is the coordinate above the baseline the font extends; descent -// is the coordinate below the baseline the font extends (i.e. it is typically negative) -// lineGap is the spacing between one row's descent and the next row's ascent... -// so you should advance the vertical position by "*ascent - *descent + *lineGap" -// these are expressed in unscaled coordinates, so you must multiply by -// the scale factor for a given size - -STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int *x0, int *y0, int *x1, int *y1); -// the bounding box around all possible characters - -STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint, int *advanceWidth, int *leftSideBearing); -// leftSideBearing is the offset from the current horizontal position to the left edge of the character -// advanceWidth is the offset from the current horizontal position to the next horizontal position -// these are expressed in unscaled coordinates - -STBTT_DEF int stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2); -// an additional amount to add to the 'advance' value between ch1 and ch2 - -STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1); -// Gets the bounding box of the visible part of the glyph, in unscaled coordinates - -STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int glyph_index, int *advanceWidth, int *leftSideBearing); -STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2); -STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1); -// as above, but takes one or more glyph indices for greater efficiency - - -////////////////////////////////////////////////////////////////////////////// -// -// GLYPH SHAPES (you probably don't need these, but they have to go before -// the bitmaps for C declaration-order reasons) -// - -#ifndef STBTT_vmove // you can predefine these to use different values (but why?) - enum { - STBTT_vmove=1, - STBTT_vline, - STBTT_vcurve - }; -#endif - -#ifndef stbtt_vertex // you can predefine this to use different values - // (we share this with other code at RAD) - #define stbtt_vertex_type short // can't use stbtt_int16 because that's not visible in the header file - typedef struct - { - stbtt_vertex_type x,y,cx,cy; - unsigned char type,padding; - } stbtt_vertex; -#endif - -STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_index); -// returns non-zero if nothing is drawn for this glyph - -STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codepoint, stbtt_vertex **vertices); -STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **vertices); -// returns # of vertices and fills *vertices with the pointer to them -// these are expressed in "unscaled" coordinates -// -// The shape is a series of countours. Each one starts with -// a STBTT_moveto, then consists of a series of mixed -// STBTT_lineto and STBTT_curveto segments. A lineto -// draws a line from previous endpoint to its x,y; a curveto -// draws a quadratic bezier from previous endpoint to -// its x,y, using cx,cy as the bezier control point. - -STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *vertices); -// frees the data allocated above - -////////////////////////////////////////////////////////////////////////////// -// -// BITMAP RENDERING -// - -STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata); -// frees the bitmap allocated below - -STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff); -// allocates a large-enough single-channel 8bpp bitmap and renders the -// specified character/glyph at the specified scale into it, with -// antialiasing. 0 is no coverage (transparent), 255 is fully covered (opaque). -// *width & *height are filled out with the width & height of the bitmap, -// which is stored left-to-right, top-to-bottom. -// -// xoff/yoff are the offset it pixel space from the glyph origin to the top-left of the bitmap - -STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff); -// the same as stbtt_GetCodepoitnBitmap, but you can specify a subpixel -// shift for the character - -STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint); -// the same as stbtt_GetCodepointBitmap, but you pass in storage for the bitmap -// in the form of 'output', with row spacing of 'out_stride' bytes. the bitmap -// is clipped to out_w/out_h bytes. Call stbtt_GetCodepointBitmapBox to get the -// width and height and positioning info for it first. - -STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint); -// same as stbtt_MakeCodepointBitmap, but you can specify a subpixel -// shift for the character - -STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1); -// get the bbox of the bitmap centered around the glyph origin; so the -// bitmap width is ix1-ix0, height is iy1-iy0, and location to place -// the bitmap top left is (leftSideBearing*scale,iy0). -// (Note that the bitmap uses y-increases-down, but the shape uses -// y-increases-up, so CodepointBitmapBox and CodepointBox are inverted.) - -STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1); -// same as stbtt_GetCodepointBitmapBox, but you can specify a subpixel -// shift for the character - -// the following functions are equivalent to the above functions, but operate -// on glyph indices instead of Unicode codepoints (for efficiency) -STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff); -STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int glyph, int *width, int *height, int *xoff, int *yoff); -STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int glyph); -STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int glyph); -STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1); -STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y,float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1); - - -// @TODO: don't expose this structure -typedef struct -{ - int w,h,stride; - unsigned char *pixels; -} stbtt__bitmap; - -STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, float flatness_in_pixels, stbtt_vertex *vertices, int num_verts, float scale_x, float scale_y, float shift_x, float shift_y, int x_off, int y_off, int invert, void *userdata); - -////////////////////////////////////////////////////////////////////////////// -// -// Finding the right font... -// -// You should really just solve this offline, keep your own tables -// of what font is what, and don't try to get it out of the .ttf file. -// That's because getting it out of the .ttf file is really hard, because -// the names in the file can appear in many possible encodings, in many -// possible languages, and e.g. if you need a case-insensitive comparison, -// the details of that depend on the encoding & language in a complex way -// (actually underspecified in truetype, but also gigantic). -// -// But you can use the provided functions in two possible ways: -// stbtt_FindMatchingFont() will use *case-sensitive* comparisons on -// unicode-encoded names to try to find the font you want; -// you can run this before calling stbtt_InitFont() -// -// stbtt_GetFontNameString() lets you get any of the various strings -// from the file yourself and do your own comparisons on them. -// You have to have called stbtt_InitFont() first. - - -STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *fontdata, const char *name, int flags); -// returns the offset (not index) of the font that matches, or -1 if none -// if you use STBTT_MACSTYLE_DONTCARE, use a font name like "Arial Bold". -// if you use any other flag, use a font name like "Arial"; this checks -// the 'macStyle' header field; i don't know if fonts set this consistently -#define STBTT_MACSTYLE_DONTCARE 0 -#define STBTT_MACSTYLE_BOLD 1 -#define STBTT_MACSTYLE_ITALIC 2 -#define STBTT_MACSTYLE_UNDERSCORE 4 -#define STBTT_MACSTYLE_NONE 8 // <= not same as 0, this makes us check the bitfield is 0 - -STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2); -// returns 1/0 whether the first string interpreted as utf8 is identical to -// the second string interpreted as big-endian utf16... useful for strings from next func - -STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font, int *length, int platformID, int encodingID, int languageID, int nameID); -// returns the string (which may be big-endian double byte, e.g. for unicode) -// and puts the length in bytes in *length. -// -// some of the values for the IDs are below; for more see the truetype spec: -// http://developer.apple.com/textfonts/TTRefMan/RM06/Chap6name.html -// http://www.microsoft.com/typography/otspec/name.htm - -enum { // platformID - STBTT_PLATFORM_ID_UNICODE =0, - STBTT_PLATFORM_ID_MAC =1, - STBTT_PLATFORM_ID_ISO =2, - STBTT_PLATFORM_ID_MICROSOFT =3 -}; - -enum { // encodingID for STBTT_PLATFORM_ID_UNICODE - STBTT_UNICODE_EID_UNICODE_1_0 =0, - STBTT_UNICODE_EID_UNICODE_1_1 =1, - STBTT_UNICODE_EID_ISO_10646 =2, - STBTT_UNICODE_EID_UNICODE_2_0_BMP=3, - STBTT_UNICODE_EID_UNICODE_2_0_FULL=4 -}; - -enum { // encodingID for STBTT_PLATFORM_ID_MICROSOFT - STBTT_MS_EID_SYMBOL =0, - STBTT_MS_EID_UNICODE_BMP =1, - STBTT_MS_EID_SHIFTJIS =2, - STBTT_MS_EID_UNICODE_FULL =10 -}; - -enum { // encodingID for STBTT_PLATFORM_ID_MAC; same as Script Manager codes - STBTT_MAC_EID_ROMAN =0, STBTT_MAC_EID_ARABIC =4, - STBTT_MAC_EID_JAPANESE =1, STBTT_MAC_EID_HEBREW =5, - STBTT_MAC_EID_CHINESE_TRAD =2, STBTT_MAC_EID_GREEK =6, - STBTT_MAC_EID_KOREAN =3, STBTT_MAC_EID_RUSSIAN =7 -}; - -enum { // languageID for STBTT_PLATFORM_ID_MICROSOFT; same as LCID... - // problematic because there are e.g. 16 english LCIDs and 16 arabic LCIDs - STBTT_MS_LANG_ENGLISH =0x0409, STBTT_MS_LANG_ITALIAN =0x0410, - STBTT_MS_LANG_CHINESE =0x0804, STBTT_MS_LANG_JAPANESE =0x0411, - STBTT_MS_LANG_DUTCH =0x0413, STBTT_MS_LANG_KOREAN =0x0412, - STBTT_MS_LANG_FRENCH =0x040c, STBTT_MS_LANG_RUSSIAN =0x0419, - STBTT_MS_LANG_GERMAN =0x0407, STBTT_MS_LANG_SPANISH =0x0409, - STBTT_MS_LANG_HEBREW =0x040d, STBTT_MS_LANG_SWEDISH =0x041D -}; - -enum { // languageID for STBTT_PLATFORM_ID_MAC - STBTT_MAC_LANG_ENGLISH =0 , STBTT_MAC_LANG_JAPANESE =11, - STBTT_MAC_LANG_ARABIC =12, STBTT_MAC_LANG_KOREAN =23, - STBTT_MAC_LANG_DUTCH =4 , STBTT_MAC_LANG_RUSSIAN =32, - STBTT_MAC_LANG_FRENCH =1 , STBTT_MAC_LANG_SPANISH =6 , - STBTT_MAC_LANG_GERMAN =2 , STBTT_MAC_LANG_SWEDISH =5 , - STBTT_MAC_LANG_HEBREW =10, STBTT_MAC_LANG_CHINESE_SIMPLIFIED =33, - STBTT_MAC_LANG_ITALIAN =3 , STBTT_MAC_LANG_CHINESE_TRAD =19 -}; - -#ifdef __cplusplus -} -#endif - -#endif // __STB_INCLUDE_STB_TRUETYPE_H__ - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -//// -//// IMPLEMENTATION -//// -//// - -#ifdef STB_TRUETYPE_IMPLEMENTATION - -#ifndef STBTT_MAX_OVERSAMPLE -#define STBTT_MAX_OVERSAMPLE 8 -#endif - -#if STBTT_MAX_OVERSAMPLE > 255 -#error "STBTT_MAX_OVERSAMPLE cannot be > 255" -#endif - -typedef int stbtt__test_oversample_pow2[(STBTT_MAX_OVERSAMPLE & (STBTT_MAX_OVERSAMPLE-1)) == 0 ? 1 : -1]; - -#ifndef STBTT_RASTERIZER_VERSION -#define STBTT_RASTERIZER_VERSION 2 -#endif - -////////////////////////////////////////////////////////////////////////// -// -// accessors to parse data from file -// - -// on platforms that don't allow misaligned reads, if we want to allow -// truetype fonts that aren't padded to alignment, define ALLOW_UNALIGNED_TRUETYPE - -#define ttBYTE(p) (* (stbtt_uint8 *) (p)) -#define ttCHAR(p) (* (stbtt_int8 *) (p)) -#define ttFixed(p) ttLONG(p) - -#if defined(STB_TRUETYPE_BIGENDIAN) && !defined(ALLOW_UNALIGNED_TRUETYPE) - - #define ttUSHORT(p) (* (stbtt_uint16 *) (p)) - #define ttSHORT(p) (* (stbtt_int16 *) (p)) - #define ttULONG(p) (* (stbtt_uint32 *) (p)) - #define ttLONG(p) (* (stbtt_int32 *) (p)) - -#else - - static stbtt_uint16 ttUSHORT(const stbtt_uint8 *p) { return p[0]*256 + p[1]; } - static stbtt_int16 ttSHORT(const stbtt_uint8 *p) { return p[0]*256 + p[1]; } - static stbtt_uint32 ttULONG(const stbtt_uint8 *p) { return (p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]; } - static stbtt_int32 ttLONG(const stbtt_uint8 *p) { return (p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]; } - -#endif - -#define stbtt_tag4(p,c0,c1,c2,c3) ((p)[0] == (c0) && (p)[1] == (c1) && (p)[2] == (c2) && (p)[3] == (c3)) -#define stbtt_tag(p,str) stbtt_tag4(p,str[0],str[1],str[2],str[3]) - -static int stbtt__isfont(const stbtt_uint8 *font) -{ - // check the version number - if (stbtt_tag4(font, '1',0,0,0)) return 1; // TrueType 1 - if (stbtt_tag(font, "typ1")) return 1; // TrueType with type 1 font -- we don't support this! - if (stbtt_tag(font, "OTTO")) return 1; // OpenType with CFF - if (stbtt_tag4(font, 0,1,0,0)) return 1; // OpenType 1.0 - return 0; -} - -// @OPTIMIZE: binary search -static stbtt_uint32 stbtt__find_table(stbtt_uint8 *data, stbtt_uint32 fontstart, const char *tag) -{ - stbtt_int32 num_tables = ttUSHORT(data+fontstart+4); - stbtt_uint32 tabledir = fontstart + 12; - stbtt_int32 i; - for (i=0; i < num_tables; ++i) { - stbtt_uint32 loc = tabledir + 16*i; - if (stbtt_tag(data+loc+0, tag)) - return ttULONG(data+loc+8); - } - return 0; -} - -STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *font_collection, int index) -{ - // if it's just a font, there's only one valid index - if (stbtt__isfont(font_collection)) - return index == 0 ? 0 : -1; - - // check if it's a TTC - if (stbtt_tag(font_collection, "ttcf")) { - // version 1? - if (ttULONG(font_collection+4) == 0x00010000 || ttULONG(font_collection+4) == 0x00020000) { - stbtt_int32 n = ttLONG(font_collection+8); - if (index >= n) - return -1; - return ttULONG(font_collection+12+index*4); - } - } - return -1; -} - -STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *data2, int fontstart) -{ - stbtt_uint8 *data = (stbtt_uint8 *) data2; - stbtt_uint32 cmap, t; - stbtt_int32 i,numTables; - - info->data = data; - info->fontstart = fontstart; - - cmap = stbtt__find_table(data, fontstart, "cmap"); // required - info->loca = stbtt__find_table(data, fontstart, "loca"); // required - info->head = stbtt__find_table(data, fontstart, "head"); // required - info->glyf = stbtt__find_table(data, fontstart, "glyf"); // required - info->hhea = stbtt__find_table(data, fontstart, "hhea"); // required - info->hmtx = stbtt__find_table(data, fontstart, "hmtx"); // required - info->kern = stbtt__find_table(data, fontstart, "kern"); // not required - if (!cmap || !info->loca || !info->head || !info->glyf || !info->hhea || !info->hmtx) - return 0; - - t = stbtt__find_table(data, fontstart, "maxp"); - if (t) - info->numGlyphs = ttUSHORT(data+t+4); - else - info->numGlyphs = 0xffff; - - // find a cmap encoding table we understand *now* to avoid searching - // later. (todo: could make this installable) - // the same regardless of glyph. - numTables = ttUSHORT(data + cmap + 2); - info->index_map = 0; - for (i=0; i < numTables; ++i) { - stbtt_uint32 encoding_record = cmap + 4 + 8 * i; - // find an encoding we understand: - switch(ttUSHORT(data+encoding_record)) { - case STBTT_PLATFORM_ID_MICROSOFT: - switch (ttUSHORT(data+encoding_record+2)) { - case STBTT_MS_EID_UNICODE_BMP: - case STBTT_MS_EID_UNICODE_FULL: - // MS/Unicode - info->index_map = cmap + ttULONG(data+encoding_record+4); - break; - } - break; - case STBTT_PLATFORM_ID_UNICODE: - // Mac/iOS has these - // all the encodingIDs are unicode, so we don't bother to check it - info->index_map = cmap + ttULONG(data+encoding_record+4); - break; - } - } - if (info->index_map == 0) - return 0; - - info->indexToLocFormat = ttUSHORT(data+info->head + 50); - return 1; -} - -STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint) -{ - stbtt_uint8 *data = info->data; - stbtt_uint32 index_map = info->index_map; - - stbtt_uint16 format = ttUSHORT(data + index_map + 0); - if (format == 0) { // apple byte encoding - stbtt_int32 bytes = ttUSHORT(data + index_map + 2); - if (unicode_codepoint < bytes-6) - return ttBYTE(data + index_map + 6 + unicode_codepoint); - return 0; - } else if (format == 6) { - stbtt_uint32 first = ttUSHORT(data + index_map + 6); - stbtt_uint32 count = ttUSHORT(data + index_map + 8); - if ((stbtt_uint32) unicode_codepoint >= first && (stbtt_uint32) unicode_codepoint < first+count) - return ttUSHORT(data + index_map + 10 + (unicode_codepoint - first)*2); - return 0; - } else if (format == 2) { - STBTT_assert(0); // @TODO: high-byte mapping for japanese/chinese/korean - return 0; - } else if (format == 4) { // standard mapping for windows fonts: binary search collection of ranges - stbtt_uint16 segcount = ttUSHORT(data+index_map+6) >> 1; - stbtt_uint16 searchRange = ttUSHORT(data+index_map+8) >> 1; - stbtt_uint16 entrySelector = ttUSHORT(data+index_map+10); - stbtt_uint16 rangeShift = ttUSHORT(data+index_map+12) >> 1; - - // do a binary search of the segments - stbtt_uint32 endCount = index_map + 14; - stbtt_uint32 search = endCount; - - if (unicode_codepoint > 0xffff) - return 0; - - // they lie from endCount .. endCount + segCount - // but searchRange is the nearest power of two, so... - if (unicode_codepoint >= ttUSHORT(data + search + rangeShift*2)) - search += rangeShift*2; - - // now decrement to bias correctly to find smallest - search -= 2; - while (entrySelector) { - stbtt_uint16 end; - searchRange >>= 1; - end = ttUSHORT(data + search + searchRange*2); - if (unicode_codepoint > end) - search += searchRange*2; - --entrySelector; - } - search += 2; - - { - stbtt_uint16 offset, start; - stbtt_uint16 item = (stbtt_uint16) ((search - endCount) >> 1); - - STBTT_assert(unicode_codepoint <= ttUSHORT(data + endCount + 2*item)); - start = ttUSHORT(data + index_map + 14 + segcount*2 + 2 + 2*item); - if (unicode_codepoint < start) - return 0; - - offset = ttUSHORT(data + index_map + 14 + segcount*6 + 2 + 2*item); - if (offset == 0) - return (stbtt_uint16) (unicode_codepoint + ttSHORT(data + index_map + 14 + segcount*4 + 2 + 2*item)); - - return ttUSHORT(data + offset + (unicode_codepoint-start)*2 + index_map + 14 + segcount*6 + 2 + 2*item); - } - } else if (format == 12 || format == 13) { - stbtt_uint32 ngroups = ttULONG(data+index_map+12); - stbtt_int32 low,high; - low = 0; high = (stbtt_int32)ngroups; - // Binary search the right group. - while (low < high) { - stbtt_int32 mid = low + ((high-low) >> 1); // rounds down, so low <= mid < high - stbtt_uint32 start_char = ttULONG(data+index_map+16+mid*12); - stbtt_uint32 end_char = ttULONG(data+index_map+16+mid*12+4); - if ((stbtt_uint32) unicode_codepoint < start_char) - high = mid; - else if ((stbtt_uint32) unicode_codepoint > end_char) - low = mid+1; - else { - stbtt_uint32 start_glyph = ttULONG(data+index_map+16+mid*12+8); - if (format == 12) - return start_glyph + unicode_codepoint-start_char; - else // format == 13 - return start_glyph; - } - } - return 0; // not found - } - // @TODO - STBTT_assert(0); - return 0; -} - -STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codepoint, stbtt_vertex **vertices) -{ - return stbtt_GetGlyphShape(info, stbtt_FindGlyphIndex(info, unicode_codepoint), vertices); -} - -static void stbtt_setvertex(stbtt_vertex *v, stbtt_uint8 type, stbtt_int32 x, stbtt_int32 y, stbtt_int32 cx, stbtt_int32 cy) -{ - v->type = type; - v->x = (stbtt_int16) x; - v->y = (stbtt_int16) y; - v->cx = (stbtt_int16) cx; - v->cy = (stbtt_int16) cy; -} - -static int stbtt__GetGlyfOffset(const stbtt_fontinfo *info, int glyph_index) -{ - int g1,g2; - - if (glyph_index >= info->numGlyphs) return -1; // glyph index out of range - if (info->indexToLocFormat >= 2) return -1; // unknown index->glyph map format - - if (info->indexToLocFormat == 0) { - g1 = info->glyf + ttUSHORT(info->data + info->loca + glyph_index * 2) * 2; - g2 = info->glyf + ttUSHORT(info->data + info->loca + glyph_index * 2 + 2) * 2; - } else { - g1 = info->glyf + ttULONG (info->data + info->loca + glyph_index * 4); - g2 = info->glyf + ttULONG (info->data + info->loca + glyph_index * 4 + 4); - } - - return g1==g2 ? -1 : g1; // if length is 0, return -1 -} - -STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1) -{ - int g = stbtt__GetGlyfOffset(info, glyph_index); - if (g < 0) return 0; - - if (x0) *x0 = ttSHORT(info->data + g + 2); - if (y0) *y0 = ttSHORT(info->data + g + 4); - if (x1) *x1 = ttSHORT(info->data + g + 6); - if (y1) *y1 = ttSHORT(info->data + g + 8); - return 1; -} - -STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1) -{ - return stbtt_GetGlyphBox(info, stbtt_FindGlyphIndex(info,codepoint), x0,y0,x1,y1); -} - -STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_index) -{ - stbtt_int16 numberOfContours; - int g = stbtt__GetGlyfOffset(info, glyph_index); - if (g < 0) return 1; - numberOfContours = ttSHORT(info->data + g); - return numberOfContours == 0; -} - -static int stbtt__close_shape(stbtt_vertex *vertices, int num_vertices, int was_off, int start_off, - stbtt_int32 sx, stbtt_int32 sy, stbtt_int32 scx, stbtt_int32 scy, stbtt_int32 cx, stbtt_int32 cy) -{ - if (start_off) { - if (was_off) - stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, (cx+scx)>>1, (cy+scy)>>1, cx,cy); - stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, sx,sy,scx,scy); - } else { - if (was_off) - stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve,sx,sy,cx,cy); - else - stbtt_setvertex(&vertices[num_vertices++], STBTT_vline,sx,sy,0,0); - } - return num_vertices; -} - -STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **pvertices) -{ - stbtt_int16 numberOfContours; - stbtt_uint8 *endPtsOfContours; - stbtt_uint8 *data = info->data; - stbtt_vertex *vertices=0; - int num_vertices=0; - int g = stbtt__GetGlyfOffset(info, glyph_index); - - *pvertices = NULL; - - if (g < 0) return 0; - - numberOfContours = ttSHORT(data + g); - - if (numberOfContours > 0) { - stbtt_uint8 flags=0,flagcount; - stbtt_int32 ins, i,j=0,m,n, next_move, was_off=0, off, start_off=0; - stbtt_int32 x,y,cx,cy,sx,sy, scx,scy; - stbtt_uint8 *points; - endPtsOfContours = (data + g + 10); - ins = ttUSHORT(data + g + 10 + numberOfContours * 2); - points = data + g + 10 + numberOfContours * 2 + 2 + ins; - - n = 1+ttUSHORT(endPtsOfContours + numberOfContours*2-2); - - m = n + 2*numberOfContours; // a loose bound on how many vertices we might need - vertices = (stbtt_vertex *) STBTT_malloc(m * sizeof(vertices[0]), info->userdata); - if (vertices == 0) - return 0; - - next_move = 0; - flagcount=0; - - // in first pass, we load uninterpreted data into the allocated array - // above, shifted to the end of the array so we won't overwrite it when - // we create our final data starting from the front - - off = m - n; // starting offset for uninterpreted data, regardless of how m ends up being calculated - - // first load flags - - for (i=0; i < n; ++i) { - if (flagcount == 0) { - flags = *points++; - if (flags & 8) - flagcount = *points++; - } else - --flagcount; - vertices[off+i].type = flags; - } - - // now load x coordinates - x=0; - for (i=0; i < n; ++i) { - flags = vertices[off+i].type; - if (flags & 2) { - stbtt_int16 dx = *points++; - x += (flags & 16) ? dx : -dx; // ??? - } else { - if (!(flags & 16)) { - x = x + (stbtt_int16) (points[0]*256 + points[1]); - points += 2; - } - } - vertices[off+i].x = (stbtt_int16) x; - } - - // now load y coordinates - y=0; - for (i=0; i < n; ++i) { - flags = vertices[off+i].type; - if (flags & 4) { - stbtt_int16 dy = *points++; - y += (flags & 32) ? dy : -dy; // ??? - } else { - if (!(flags & 32)) { - y = y + (stbtt_int16) (points[0]*256 + points[1]); - points += 2; - } - } - vertices[off+i].y = (stbtt_int16) y; - } - - // now convert them to our format - num_vertices=0; - sx = sy = cx = cy = scx = scy = 0; - for (i=0; i < n; ++i) { - flags = vertices[off+i].type; - x = (stbtt_int16) vertices[off+i].x; - y = (stbtt_int16) vertices[off+i].y; - - if (next_move == i) { - if (i != 0) - num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); - - // now start the new one - start_off = !(flags & 1); - if (start_off) { - // if we start off with an off-curve point, then when we need to find a point on the curve - // where we can start, and we need to save some state for when we wraparound. - scx = x; - scy = y; - if (!(vertices[off+i+1].type & 1)) { - // next point is also a curve point, so interpolate an on-point curve - sx = (x + (stbtt_int32) vertices[off+i+1].x) >> 1; - sy = (y + (stbtt_int32) vertices[off+i+1].y) >> 1; - } else { - // otherwise just use the next point as our start point - sx = (stbtt_int32) vertices[off+i+1].x; - sy = (stbtt_int32) vertices[off+i+1].y; - ++i; // we're using point i+1 as the starting point, so skip it - } - } else { - sx = x; - sy = y; - } - stbtt_setvertex(&vertices[num_vertices++], STBTT_vmove,sx,sy,0,0); - was_off = 0; - next_move = 1 + ttUSHORT(endPtsOfContours+j*2); - ++j; - } else { - if (!(flags & 1)) { // if it's a curve - if (was_off) // two off-curve control points in a row means interpolate an on-curve midpoint - stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, (cx+x)>>1, (cy+y)>>1, cx, cy); - cx = x; - cy = y; - was_off = 1; - } else { - if (was_off) - stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, x,y, cx, cy); - else - stbtt_setvertex(&vertices[num_vertices++], STBTT_vline, x,y,0,0); - was_off = 0; - } - } - } - num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); - } else if (numberOfContours == -1) { - // Compound shapes. - int more = 1; - stbtt_uint8 *comp = data + g + 10; - num_vertices = 0; - vertices = 0; - while (more) { - stbtt_uint16 flags, gidx; - int comp_num_verts = 0, i; - stbtt_vertex *comp_verts = 0, *tmp = 0; - float mtx[6] = {1,0,0,1,0,0}, m, n; - - flags = ttSHORT(comp); comp+=2; - gidx = ttSHORT(comp); comp+=2; - - if (flags & 2) { // XY values - if (flags & 1) { // shorts - mtx[4] = ttSHORT(comp); comp+=2; - mtx[5] = ttSHORT(comp); comp+=2; - } else { - mtx[4] = ttCHAR(comp); comp+=1; - mtx[5] = ttCHAR(comp); comp+=1; - } - } - else { - // @TODO handle matching point - STBTT_assert(0); - } - if (flags & (1<<3)) { // WE_HAVE_A_SCALE - mtx[0] = mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; - mtx[1] = mtx[2] = 0; - } else if (flags & (1<<6)) { // WE_HAVE_AN_X_AND_YSCALE - mtx[0] = ttSHORT(comp)/16384.0f; comp+=2; - mtx[1] = mtx[2] = 0; - mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; - } else if (flags & (1<<7)) { // WE_HAVE_A_TWO_BY_TWO - mtx[0] = ttSHORT(comp)/16384.0f; comp+=2; - mtx[1] = ttSHORT(comp)/16384.0f; comp+=2; - mtx[2] = ttSHORT(comp)/16384.0f; comp+=2; - mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; - } - - // Find transformation scales. - m = (float) STBTT_sqrt(mtx[0]*mtx[0] + mtx[1]*mtx[1]); - n = (float) STBTT_sqrt(mtx[2]*mtx[2] + mtx[3]*mtx[3]); - - // Get indexed glyph. - comp_num_verts = stbtt_GetGlyphShape(info, gidx, &comp_verts); - if (comp_num_verts > 0) { - // Transform vertices. - for (i = 0; i < comp_num_verts; ++i) { - stbtt_vertex* v = &comp_verts[i]; - stbtt_vertex_type x,y; - x=v->x; y=v->y; - v->x = (stbtt_vertex_type)(m * (mtx[0]*x + mtx[2]*y + mtx[4])); - v->y = (stbtt_vertex_type)(n * (mtx[1]*x + mtx[3]*y + mtx[5])); - x=v->cx; y=v->cy; - v->cx = (stbtt_vertex_type)(m * (mtx[0]*x + mtx[2]*y + mtx[4])); - v->cy = (stbtt_vertex_type)(n * (mtx[1]*x + mtx[3]*y + mtx[5])); - } - // Append vertices. - tmp = (stbtt_vertex*)STBTT_malloc((num_vertices+comp_num_verts)*sizeof(stbtt_vertex), info->userdata); - if (!tmp) { - if (vertices) STBTT_free(vertices, info->userdata); - if (comp_verts) STBTT_free(comp_verts, info->userdata); - return 0; - } - if (num_vertices > 0) STBTT_memcpy(tmp, vertices, num_vertices*sizeof(stbtt_vertex)); - STBTT_memcpy(tmp+num_vertices, comp_verts, comp_num_verts*sizeof(stbtt_vertex)); - if (vertices) STBTT_free(vertices, info->userdata); - vertices = tmp; - STBTT_free(comp_verts, info->userdata); - num_vertices += comp_num_verts; - } - // More components ? - more = flags & (1<<5); - } - } else if (numberOfContours < 0) { - // @TODO other compound variations? - STBTT_assert(0); - } else { - // numberOfCounters == 0, do nothing - } - - *pvertices = vertices; - return num_vertices; -} - -STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int glyph_index, int *advanceWidth, int *leftSideBearing) -{ - stbtt_uint16 numOfLongHorMetrics = ttUSHORT(info->data+info->hhea + 34); - if (glyph_index < numOfLongHorMetrics) { - if (advanceWidth) *advanceWidth = ttSHORT(info->data + info->hmtx + 4*glyph_index); - if (leftSideBearing) *leftSideBearing = ttSHORT(info->data + info->hmtx + 4*glyph_index + 2); - } else { - if (advanceWidth) *advanceWidth = ttSHORT(info->data + info->hmtx + 4*(numOfLongHorMetrics-1)); - if (leftSideBearing) *leftSideBearing = ttSHORT(info->data + info->hmtx + 4*numOfLongHorMetrics + 2*(glyph_index - numOfLongHorMetrics)); - } -} - -STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2) -{ - stbtt_uint8 *data = info->data + info->kern; - stbtt_uint32 needle, straw; - int l, r, m; - - // we only look at the first table. it must be 'horizontal' and format 0. - if (!info->kern) - return 0; - if (ttUSHORT(data+2) < 1) // number of tables, need at least 1 - return 0; - if (ttUSHORT(data+8) != 1) // horizontal flag must be set in format - return 0; - - l = 0; - r = ttUSHORT(data+10) - 1; - needle = glyph1 << 16 | glyph2; - while (l <= r) { - m = (l + r) >> 1; - straw = ttULONG(data+18+(m*6)); // note: unaligned read - if (needle < straw) - r = m - 1; - else if (needle > straw) - l = m + 1; - else - return ttSHORT(data+22+(m*6)); - } - return 0; -} - -STBTT_DEF int stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2) -{ - if (!info->kern) // if no kerning table, don't waste time looking up both codepoint->glyphs - return 0; - return stbtt_GetGlyphKernAdvance(info, stbtt_FindGlyphIndex(info,ch1), stbtt_FindGlyphIndex(info,ch2)); -} - -STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint, int *advanceWidth, int *leftSideBearing) -{ - stbtt_GetGlyphHMetrics(info, stbtt_FindGlyphIndex(info,codepoint), advanceWidth, leftSideBearing); -} - -STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *ascent, int *descent, int *lineGap) -{ - if (ascent ) *ascent = ttSHORT(info->data+info->hhea + 4); - if (descent) *descent = ttSHORT(info->data+info->hhea + 6); - if (lineGap) *lineGap = ttSHORT(info->data+info->hhea + 8); -} - -STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int *x0, int *y0, int *x1, int *y1) -{ - *x0 = ttSHORT(info->data + info->head + 36); - *y0 = ttSHORT(info->data + info->head + 38); - *x1 = ttSHORT(info->data + info->head + 40); - *y1 = ttSHORT(info->data + info->head + 42); -} - -STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, float height) -{ - int fheight = ttSHORT(info->data + info->hhea + 4) - ttSHORT(info->data + info->hhea + 6); - return (float) height / fheight; -} - -STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *info, float pixels) -{ - int unitsPerEm = ttUSHORT(info->data + info->head + 18); - return pixels / unitsPerEm; -} - -STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *v) -{ - STBTT_free(v, info->userdata); -} - -////////////////////////////////////////////////////////////////////////////// -// -// antialiasing software rasterizer -// - -STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y,float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1) -{ - int x0,y0,x1,y1; - if (!stbtt_GetGlyphBox(font, glyph, &x0,&y0,&x1,&y1)) { - // e.g. space character - if (ix0) *ix0 = 0; - if (iy0) *iy0 = 0; - if (ix1) *ix1 = 0; - if (iy1) *iy1 = 0; - } else { - // move to integral bboxes (treating pixels as little squares, what pixels get touched)? - if (ix0) *ix0 = STBTT_ifloor( x0 * scale_x + shift_x); - if (iy0) *iy0 = STBTT_ifloor(-y1 * scale_y + shift_y); - if (ix1) *ix1 = STBTT_iceil ( x1 * scale_x + shift_x); - if (iy1) *iy1 = STBTT_iceil (-y0 * scale_y + shift_y); - } -} - -STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1) -{ - stbtt_GetGlyphBitmapBoxSubpixel(font, glyph, scale_x, scale_y,0.0f,0.0f, ix0, iy0, ix1, iy1); -} - -STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1) -{ - stbtt_GetGlyphBitmapBoxSubpixel(font, stbtt_FindGlyphIndex(font,codepoint), scale_x, scale_y,shift_x,shift_y, ix0,iy0,ix1,iy1); -} - -STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1) -{ - stbtt_GetCodepointBitmapBoxSubpixel(font, codepoint, scale_x, scale_y,0.0f,0.0f, ix0,iy0,ix1,iy1); -} - -////////////////////////////////////////////////////////////////////////////// -// -// Rasterizer - -typedef struct stbtt__hheap_chunk -{ - struct stbtt__hheap_chunk *next; -} stbtt__hheap_chunk; - -typedef struct stbtt__hheap -{ - struct stbtt__hheap_chunk *head; - void *first_free; - int num_remaining_in_head_chunk; -} stbtt__hheap; - -static void *stbtt__hheap_alloc(stbtt__hheap *hh, size_t size, void *userdata) -{ - if (hh->first_free) { - void *p = hh->first_free; - hh->first_free = * (void **) p; - return p; - } else { - if (hh->num_remaining_in_head_chunk == 0) { - int count = (size < 32 ? 2000 : size < 128 ? 800 : 100); - stbtt__hheap_chunk *c = (stbtt__hheap_chunk *) STBTT_malloc(sizeof(stbtt__hheap_chunk) + size * count, userdata); - if (c == NULL) - return NULL; - c->next = hh->head; - hh->head = c; - hh->num_remaining_in_head_chunk = count; - } - --hh->num_remaining_in_head_chunk; - return (char *) (hh->head) + size * hh->num_remaining_in_head_chunk; - } -} - -static void stbtt__hheap_free(stbtt__hheap *hh, void *p) -{ - *(void **) p = hh->first_free; - hh->first_free = p; -} - -static void stbtt__hheap_cleanup(stbtt__hheap *hh, void *userdata) -{ - stbtt__hheap_chunk *c = hh->head; - while (c) { - stbtt__hheap_chunk *n = c->next; - STBTT_free(c, userdata); - c = n; - } -} - -typedef struct stbtt__edge { - float x0,y0, x1,y1; - int invert; -} stbtt__edge; - - -typedef struct stbtt__active_edge -{ - struct stbtt__active_edge *next; - #if STBTT_RASTERIZER_VERSION==1 - int x,dx; - float ey; - int direction; - #elif STBTT_RASTERIZER_VERSION==2 - float fx,fdx,fdy; - float direction; - float sy; - float ey; - #else - #error "Unrecognized value of STBTT_RASTERIZER_VERSION" - #endif -} stbtt__active_edge; - -#if STBTT_RASTERIZER_VERSION == 1 -#define STBTT_FIXSHIFT 10 -#define STBTT_FIX (1 << STBTT_FIXSHIFT) -#define STBTT_FIXMASK (STBTT_FIX-1) - -static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, int off_x, float start_point, void *userdata) -{ - stbtt__active_edge *z = (stbtt__active_edge *) stbtt__hheap_alloc(hh, sizeof(*z), userdata); - float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); - if (!z) return z; - - // round dx down to avoid overshooting - if (dxdy < 0) - z->dx = -STBTT_ifloor(STBTT_FIX * -dxdy); - else - z->dx = STBTT_ifloor(STBTT_FIX * dxdy); - - z->x = STBTT_ifloor(STBTT_FIX * e->x0 + z->dx * (start_point - e->y0)); // use z->dx so when we offset later it's by the same amount - z->x -= off_x * STBTT_FIX; - - z->ey = e->y1; - z->next = 0; - z->direction = e->invert ? 1 : -1; - return z; -} -#elif STBTT_RASTERIZER_VERSION == 2 -static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, int off_x, float start_point, void *userdata) -{ - stbtt__active_edge *z = (stbtt__active_edge *) stbtt__hheap_alloc(hh, sizeof(*z), userdata); - float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); - //STBTT_assert(e->y0 <= start_point); - if (!z) return z; - z->fdx = dxdy; - z->fdy = (1/dxdy); - z->fx = e->x0 + dxdy * (start_point - e->y0); - z->fx -= off_x; - z->direction = e->invert ? 1.0f : -1.0f; - z->sy = e->y0; - z->ey = e->y1; - z->next = 0; - return z; -} -#else -#error "Unrecognized value of STBTT_RASTERIZER_VERSION" -#endif - -#if STBTT_RASTERIZER_VERSION == 1 -// note: this routine clips fills that extend off the edges... ideally this -// wouldn't happen, but it could happen if the truetype glyph bounding boxes -// are wrong, or if the user supplies a too-small bitmap -static void stbtt__fill_active_edges(unsigned char *scanline, int len, stbtt__active_edge *e, int max_weight) -{ - // non-zero winding fill - int x0=0, w=0; - - while (e) { - if (w == 0) { - // if we're currently at zero, we need to record the edge start point - x0 = e->x; w += e->direction; - } else { - int x1 = e->x; w += e->direction; - // if we went to zero, we need to draw - if (w == 0) { - int i = x0 >> STBTT_FIXSHIFT; - int j = x1 >> STBTT_FIXSHIFT; - - if (i < len && j >= 0) { - if (i == j) { - // x0,x1 are the same pixel, so compute combined coverage - scanline[i] = scanline[i] + (stbtt_uint8) ((x1 - x0) * max_weight >> STBTT_FIXSHIFT); - } else { - if (i >= 0) // add antialiasing for x0 - scanline[i] = scanline[i] + (stbtt_uint8) (((STBTT_FIX - (x0 & STBTT_FIXMASK)) * max_weight) >> STBTT_FIXSHIFT); - else - i = -1; // clip - - if (j < len) // add antialiasing for x1 - scanline[j] = scanline[j] + (stbtt_uint8) (((x1 & STBTT_FIXMASK) * max_weight) >> STBTT_FIXSHIFT); - else - j = len; // clip - - for (++i; i < j; ++i) // fill pixels between x0 and x1 - scanline[i] = scanline[i] + (stbtt_uint8) max_weight; - } - } - } - } - - e = e->next; - } -} - -static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e, int n, int vsubsample, int off_x, int off_y, void *userdata) -{ - stbtt__hheap hh = { 0 }; - stbtt__active_edge *active = NULL; - int y,j=0; - int max_weight = (255 / vsubsample); // weight per vertical scanline - int s; // vertical subsample index - unsigned char scanline_data[512], *scanline; - - if (result->w > 512) - scanline = (unsigned char *) STBTT_malloc(result->w, userdata); - else - scanline = scanline_data; - - y = off_y * vsubsample; - e[n].y0 = (off_y + result->h) * (float) vsubsample + 1; - - while (j < result->h) { - STBTT_memset(scanline, 0, result->w); - for (s=0; s < vsubsample; ++s) { - // find center of pixel for this scanline - float scan_y = y + 0.5f; - stbtt__active_edge **step = &active; - - // update all active edges; - // remove all active edges that terminate before the center of this scanline - while (*step) { - stbtt__active_edge * z = *step; - if (z->ey <= scan_y) { - *step = z->next; // delete from list - STBTT_assert(z->direction); - z->direction = 0; - stbtt__hheap_free(&hh, z); - } else { - z->x += z->dx; // advance to position for current scanline - step = &((*step)->next); // advance through list - } - } - - // resort the list if needed - for(;;) { - int changed=0; - step = &active; - while (*step && (*step)->next) { - if ((*step)->x > (*step)->next->x) { - stbtt__active_edge *t = *step; - stbtt__active_edge *q = t->next; - - t->next = q->next; - q->next = t; - *step = q; - changed = 1; - } - step = &(*step)->next; - } - if (!changed) break; - } - - // insert all edges that start before the center of this scanline -- omit ones that also end on this scanline - while (e->y0 <= scan_y) { - if (e->y1 > scan_y) { - stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y, userdata); - // find insertion point - if (active == NULL) - active = z; - else if (z->x < active->x) { - // insert at front - z->next = active; - active = z; - } else { - // find thing to insert AFTER - stbtt__active_edge *p = active; - while (p->next && p->next->x < z->x) - p = p->next; - // at this point, p->next->x is NOT < z->x - z->next = p->next; - p->next = z; - } - } - ++e; - } - - // now process all active edges in XOR fashion - if (active) - stbtt__fill_active_edges(scanline, result->w, active, max_weight); - - ++y; - } - STBTT_memcpy(result->pixels + j * result->stride, scanline, result->w); - ++j; - } - - stbtt__hheap_cleanup(&hh, userdata); - - if (scanline != scanline_data) - STBTT_free(scanline, userdata); -} - -#elif STBTT_RASTERIZER_VERSION == 2 - -// the edge passed in here does not cross the vertical line at x or the vertical line at x+1 -// (i.e. it has already been clipped to those) -static void stbtt__handle_clipped_edge(float *scanline, int x, stbtt__active_edge *e, float x0, float y0, float x1, float y1) -{ - if (y0 == y1) return; - STBTT_assert(y0 < y1); - STBTT_assert(e->sy <= e->ey); - if (y0 > e->ey) return; - if (y1 < e->sy) return; - if (y0 < e->sy) { - x0 += (x1-x0) * (e->sy - y0) / (y1-y0); - y0 = e->sy; - } - if (y1 > e->ey) { - x1 += (x1-x0) * (e->ey - y1) / (y1-y0); - y1 = e->ey; - } - - if (x0 == x) - STBTT_assert(x1 <= x+1); - else if (x0 == x+1) - STBTT_assert(x1 >= x); - else if (x0 <= x) - STBTT_assert(x1 <= x); - else if (x0 >= x+1) - STBTT_assert(x1 >= x+1); - else - STBTT_assert(x1 >= x && x1 <= x+1); - - if (x0 <= x && x1 <= x) - scanline[x] += e->direction * (y1-y0); - else if (x0 >= x+1 && x1 >= x+1) - ; - else { - STBTT_assert(x0 >= x && x0 <= x+1 && x1 >= x && x1 <= x+1); - scanline[x] += e->direction * (y1-y0) * (1-((x0-x)+(x1-x))/2); // coverage = 1 - average x position - } -} - -static void stbtt__fill_active_edges_new(float *scanline, float *scanline_fill, int len, stbtt__active_edge *e, float y_top) -{ - float y_bottom = y_top+1; - - while (e) { - // brute force every pixel - - // compute intersection points with top & bottom - STBTT_assert(e->ey >= y_top); - - if (e->fdx == 0) { - float x0 = e->fx; - if (x0 < len) { - if (x0 >= 0) { - stbtt__handle_clipped_edge(scanline,(int) x0,e, x0,y_top, x0,y_bottom); - stbtt__handle_clipped_edge(scanline_fill-1,(int) x0+1,e, x0,y_top, x0,y_bottom); - } else { - stbtt__handle_clipped_edge(scanline_fill-1,0,e, x0,y_top, x0,y_bottom); - } - } - } else { - float x0 = e->fx; - float dx = e->fdx; - float xb = x0 + dx; - float x_top, x_bottom; - float y0,y1; - float dy = e->fdy; - STBTT_assert(e->sy <= y_bottom && e->ey >= y_top); - - // compute endpoints of line segment clipped to this scanline (if the - // line segment starts on this scanline. x0 is the intersection of the - // line with y_top, but that may be off the line segment. - if (e->sy > y_top) { - x_top = x0 + dx * (e->sy - y_top); - y0 = e->sy; - } else { - x_top = x0; - y0 = y_top; - } - if (e->ey < y_bottom) { - x_bottom = x0 + dx * (e->ey - y_top); - y1 = e->ey; - } else { - x_bottom = xb; - y1 = y_bottom; - } - - if (x_top >= 0 && x_bottom >= 0 && x_top < len && x_bottom < len) { - // from here on, we don't have to range check x values - - if ((int) x_top == (int) x_bottom) { - float height; - // simple case, only spans one pixel - int x = (int) x_top; - height = y1 - y0; - STBTT_assert(x >= 0 && x < len); - scanline[x] += e->direction * (1-((x_top - x) + (x_bottom-x))/2) * height; - scanline_fill[x] += e->direction * height; // everything right of this pixel is filled - } else { - int x,x1,x2; - float y_crossing, step, sign, area; - // covers 2+ pixels - if (x_top > x_bottom) { - // flip scanline vertically; signed area is the same - float t; - y0 = y_bottom - (y0 - y_top); - y1 = y_bottom - (y1 - y_top); - t = y0, y0 = y1, y1 = t; - t = x_bottom, x_bottom = x_top, x_top = t; - dx = -dx; - dy = -dy; - t = x0, x0 = xb, xb = t; - } - - x1 = (int) x_top; - x2 = (int) x_bottom; - // compute intersection with y axis at x1+1 - y_crossing = (x1+1 - x0) * dy + y_top; - - sign = e->direction; - // area of the rectangle covered from y0..y_crossing - area = sign * (y_crossing-y0); - // area of the triangle (x_top,y0), (x+1,y0), (x+1,y_crossing) - scanline[x1] += area * (1-((x_top - x1)+(x1+1-x1))/2); - - step = sign * dy; - for (x = x1+1; x < x2; ++x) { - scanline[x] += area + step/2; - area += step; - } - y_crossing += dy * (x2 - (x1+1)); - - STBTT_assert(fabs(area) <= 1.01f); - - scanline[x2] += area + sign * (1-((x2-x2)+(x_bottom-x2))/2) * (y1-y_crossing); - - scanline_fill[x2] += sign * (y1-y0); - } - } else { - // if edge goes outside of box we're drawing, we require - // clipping logic. since this does not match the intended use - // of this library, we use a different, very slow brute - // force implementation - int x; - for (x=0; x < len; ++x) { - // cases: - // - // there can be up to two intersections with the pixel. any intersection - // with left or right edges can be handled by splitting into two (or three) - // regions. intersections with top & bottom do not necessitate case-wise logic. - // - // the old way of doing this found the intersections with the left & right edges, - // then used some simple logic to produce up to three segments in sorted order - // from top-to-bottom. however, this had a problem: if an x edge was epsilon - // across the x border, then the corresponding y position might not be distinct - // from the other y segment, and it might ignored as an empty segment. to avoid - // that, we need to explicitly produce segments based on x positions. - - // rename variables to clear pairs - float y0 = y_top; - float x1 = (float) (x); - float x2 = (float) (x+1); - float x3 = xb; - float y3 = y_bottom; - float y1,y2; - - // x = e->x + e->dx * (y-y_top) - // (y-y_top) = (x - e->x) / e->dx - // y = (x - e->x) / e->dx + y_top - y1 = (x - x0) / dx + y_top; - y2 = (x+1 - x0) / dx + y_top; - - if (x0 < x1 && x3 > x2) { // three segments descending down-right - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); - stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x2,y2); - stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); - } else if (x3 < x1 && x0 > x2) { // three segments descending down-left - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); - stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x1,y1); - stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); - } else if (x0 < x1 && x3 > x1) { // two segments across x, down-right - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); - stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); - } else if (x3 < x1 && x0 > x1) { // two segments across x, down-left - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); - stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); - } else if (x0 < x2 && x3 > x2) { // two segments across x+1, down-right - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); - stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); - } else if (x3 < x2 && x0 > x2) { // two segments across x+1, down-left - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); - stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); - } else { // one segment - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x3,y3); - } - } - } - } - e = e->next; - } -} - -// directly AA rasterize edges w/o supersampling -static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e, int n, int vsubsample, int off_x, int off_y, void *userdata) -{ - (void)vsubsample; - stbtt__hheap hh = { 0 }; - stbtt__active_edge *active = NULL; - int y,j=0, i; - float scanline_data[129], *scanline, *scanline2; - - if (result->w > 64) - scanline = (float *) STBTT_malloc((result->w*2+1) * sizeof(float), userdata); - else - scanline = scanline_data; - - scanline2 = scanline + result->w; - - y = off_y; - e[n].y0 = (float) (off_y + result->h) + 1; - - while (j < result->h) { - // find center of pixel for this scanline - float scan_y_top = y + 0.0f; - float scan_y_bottom = y + 1.0f; - stbtt__active_edge **step = &active; - - STBTT_memset(scanline , 0, result->w*sizeof(scanline[0])); - STBTT_memset(scanline2, 0, (result->w+1)*sizeof(scanline[0])); - - // update all active edges; - // remove all active edges that terminate before the top of this scanline - while (*step) { - stbtt__active_edge * z = *step; - if (z->ey <= scan_y_top) { - *step = z->next; // delete from list - STBTT_assert(z->direction); - z->direction = 0; - stbtt__hheap_free(&hh, z); - } else { - step = &((*step)->next); // advance through list - } - } - - // insert all edges that start before the bottom of this scanline - while (e->y0 <= scan_y_bottom) { - stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y_top, userdata); - STBTT_assert(z->ey >= scan_y_top); - // insert at front - z->next = active; - active = z; - ++e; - } - - // now process all active edges - if (active) - stbtt__fill_active_edges_new(scanline, scanline2+1, result->w, active, scan_y_top); - - { - float sum = 0; - for (i=0; i < result->w; ++i) { - float k; - int m; - sum += scanline2[i]; - k = scanline[i] + sum; - k = (float) fabs(k)*255 + 0.5f; - m = (int) k; - if (m > 255) m = 255; - result->pixels[j*result->stride + i] = (unsigned char) m; - } - } - // advance all the edges - step = &active; - while (*step) { - stbtt__active_edge *z = *step; - z->fx += z->fdx; // advance to position for current scanline - step = &((*step)->next); // advance through list - } - - ++y; - ++j; - } - - stbtt__hheap_cleanup(&hh, userdata); - - if (scanline != scanline_data) - STBTT_free(scanline, userdata); -} -#else -#error "Unrecognized value of STBTT_RASTERIZER_VERSION" -#endif - -#define STBTT__COMPARE(a,b) ((a)->y0 < (b)->y0) - -static void stbtt__sort_edges_ins_sort(stbtt__edge *p, int n) -{ - int i,j; - for (i=1; i < n; ++i) { - stbtt__edge t = p[i], *a = &t; - j = i; - while (j > 0) { - stbtt__edge *b = &p[j-1]; - int c = STBTT__COMPARE(a,b); - if (!c) break; - p[j] = p[j-1]; - --j; - } - if (i != j) - p[j] = t; - } -} - -static void stbtt__sort_edges_quicksort(stbtt__edge *p, int n) -{ - /* threshhold for transitioning to insertion sort */ - while (n > 12) { - stbtt__edge t; - int c01,c12,c,m,i,j; - - /* compute median of three */ - m = n >> 1; - c01 = STBTT__COMPARE(&p[0],&p[m]); - c12 = STBTT__COMPARE(&p[m],&p[n-1]); - /* if 0 >= mid >= end, or 0 < mid < end, then use mid */ - if (c01 != c12) { - /* otherwise, we'll need to swap something else to middle */ - int z; - c = STBTT__COMPARE(&p[0],&p[n-1]); - /* 0>mid && midn => n; 0 0 */ - /* 0n: 0>n => 0; 0 n */ - z = (c == c12) ? 0 : n-1; - t = p[z]; - p[z] = p[m]; - p[m] = t; - } - /* now p[m] is the median-of-three */ - /* swap it to the beginning so it won't move around */ - t = p[0]; - p[0] = p[m]; - p[m] = t; - - /* partition loop */ - i=1; - j=n-1; - for(;;) { - /* handling of equality is crucial here */ - /* for sentinels & efficiency with duplicates */ - for (;;++i) { - if (!STBTT__COMPARE(&p[i], &p[0])) break; - } - for (;;--j) { - if (!STBTT__COMPARE(&p[0], &p[j])) break; - } - /* make sure we haven't crossed */ - if (i >= j) break; - t = p[i]; - p[i] = p[j]; - p[j] = t; - - ++i; - --j; - } - /* recurse on smaller side, iterate on larger */ - if (j < (n-i)) { - stbtt__sort_edges_quicksort(p,j); - p = p+i; - n = n-i; - } else { - stbtt__sort_edges_quicksort(p+i, n-i); - n = j; - } - } -} - -static void stbtt__sort_edges(stbtt__edge *p, int n) -{ - stbtt__sort_edges_quicksort(p, n); - stbtt__sort_edges_ins_sort(p, n); -} - -typedef struct -{ - float x,y; -} stbtt__point; - -static void stbtt__rasterize(stbtt__bitmap *result, stbtt__point *pts, int *wcount, int windings, float scale_x, float scale_y, float shift_x, float shift_y, int off_x, int off_y, int invert, void *userdata) -{ - float y_scale_inv = invert ? -scale_y : scale_y; - stbtt__edge *e; - int n,i,j,k,m; -#if STBTT_RASTERIZER_VERSION == 1 - int vsubsample = result->h < 8 ? 15 : 5; -#elif STBTT_RASTERIZER_VERSION == 2 - int vsubsample = 1; -#else - #error "Unrecognized value of STBTT_RASTERIZER_VERSION" -#endif - // vsubsample should divide 255 evenly; otherwise we won't reach full opacity - - // now we have to blow out the windings into explicit edge lists - n = 0; - for (i=0; i < windings; ++i) - n += wcount[i]; - - e = (stbtt__edge *) STBTT_malloc(sizeof(*e) * (n+1), userdata); // add an extra one as a sentinel - if (e == 0) return; - n = 0; - - m=0; - for (i=0; i < windings; ++i) { - stbtt__point *p = pts + m; - m += wcount[i]; - j = wcount[i]-1; - for (k=0; k < wcount[i]; j=k++) { - int a=k,b=j; - // skip the edge if horizontal - if (p[j].y == p[k].y) - continue; - // add edge from j to k to the list - e[n].invert = 0; - if (invert ? p[j].y > p[k].y : p[j].y < p[k].y) { - e[n].invert = 1; - a=j,b=k; - } - e[n].x0 = p[a].x * scale_x + shift_x; - e[n].y0 = (p[a].y * y_scale_inv + shift_y) * vsubsample; - e[n].x1 = p[b].x * scale_x + shift_x; - e[n].y1 = (p[b].y * y_scale_inv + shift_y) * vsubsample; - ++n; - } - } - - // now sort the edges by their highest point (should snap to integer, and then by x) - //STBTT_sort(e, n, sizeof(e[0]), stbtt__edge_compare); - stbtt__sort_edges(e, n); - - // now, traverse the scanlines and find the intersections on each scanline, use xor winding rule - stbtt__rasterize_sorted_edges(result, e, n, vsubsample, off_x, off_y, userdata); - - STBTT_free(e, userdata); -} - -static void stbtt__add_point(stbtt__point *points, int n, float x, float y) -{ - if (!points) return; // during first pass, it's unallocated - points[n].x = x; - points[n].y = y; -} - -// tesselate until threshhold p is happy... @TODO warped to compensate for non-linear stretching -static int stbtt__tesselate_curve(stbtt__point *points, int *num_points, float x0, float y0, float x1, float y1, float x2, float y2, float objspace_flatness_squared, int n) -{ - // midpoint - float mx = (x0 + 2*x1 + x2)/4; - float my = (y0 + 2*y1 + y2)/4; - // versus directly drawn line - float dx = (x0+x2)/2 - mx; - float dy = (y0+y2)/2 - my; - if (n > 16) // 65536 segments on one curve better be enough! - return 1; - if (dx*dx+dy*dy > objspace_flatness_squared) { // half-pixel error allowed... need to be smaller if AA - stbtt__tesselate_curve(points, num_points, x0,y0, (x0+x1)/2.0f,(y0+y1)/2.0f, mx,my, objspace_flatness_squared,n+1); - stbtt__tesselate_curve(points, num_points, mx,my, (x1+x2)/2.0f,(y1+y2)/2.0f, x2,y2, objspace_flatness_squared,n+1); - } else { - stbtt__add_point(points, *num_points,x2,y2); - *num_points = *num_points+1; - } - return 1; -} - -// returns number of contours -static stbtt__point *stbtt_FlattenCurves(stbtt_vertex *vertices, int num_verts, float objspace_flatness, int **contour_lengths, int *num_contours, void *userdata) -{ - stbtt__point *points=0; - int num_points=0; - - float objspace_flatness_squared = objspace_flatness * objspace_flatness; - int i,n=0,start=0, pass; - - // count how many "moves" there are to get the contour count - for (i=0; i < num_verts; ++i) - if (vertices[i].type == STBTT_vmove) - ++n; - - *num_contours = n; - if (n == 0) return 0; - - *contour_lengths = (int *) STBTT_malloc(sizeof(**contour_lengths) * n, userdata); - - if (*contour_lengths == 0) { - *num_contours = 0; - return 0; - } - - // make two passes through the points so we don't need to realloc - for (pass=0; pass < 2; ++pass) { - float x=0,y=0; - if (pass == 1) { - points = (stbtt__point *) STBTT_malloc(num_points * sizeof(points[0]), userdata); - if (points == NULL) goto error; - } - num_points = 0; - n= -1; - for (i=0; i < num_verts; ++i) { - switch (vertices[i].type) { - case STBTT_vmove: - // start the next contour - if (n >= 0) - (*contour_lengths)[n] = num_points - start; - ++n; - start = num_points; - - x = vertices[i].x, y = vertices[i].y; - stbtt__add_point(points, num_points++, x,y); - break; - case STBTT_vline: - x = vertices[i].x, y = vertices[i].y; - stbtt__add_point(points, num_points++, x, y); - break; - case STBTT_vcurve: - stbtt__tesselate_curve(points, &num_points, x,y, - vertices[i].cx, vertices[i].cy, - vertices[i].x, vertices[i].y, - objspace_flatness_squared, 0); - x = vertices[i].x, y = vertices[i].y; - break; - } - } - (*contour_lengths)[n] = num_points - start; - } - - return points; -error: - STBTT_free(points, userdata); - STBTT_free(*contour_lengths, userdata); - *contour_lengths = 0; - *num_contours = 0; - return NULL; -} - -STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, float flatness_in_pixels, stbtt_vertex *vertices, int num_verts, float scale_x, float scale_y, float shift_x, float shift_y, int x_off, int y_off, int invert, void *userdata) -{ - float scale = scale_x > scale_y ? scale_y : scale_x; - int winding_count, *winding_lengths; - stbtt__point *windings = stbtt_FlattenCurves(vertices, num_verts, flatness_in_pixels / scale, &winding_lengths, &winding_count, userdata); - if (windings) { - stbtt__rasterize(result, windings, winding_lengths, winding_count, scale_x, scale_y, shift_x, shift_y, x_off, y_off, invert, userdata); - STBTT_free(winding_lengths, userdata); - STBTT_free(windings, userdata); - } -} - -STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata) -{ - STBTT_free(bitmap, userdata); -} - -STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int glyph, int *width, int *height, int *xoff, int *yoff) -{ - int ix0,iy0,ix1,iy1; - stbtt__bitmap gbm; - stbtt_vertex *vertices; - int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); - - if (scale_x == 0) scale_x = scale_y; - if (scale_y == 0) { - if (scale_x == 0) return NULL; - scale_y = scale_x; - } - - stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,&ix1,&iy1); - - // now we get the size - gbm.w = (ix1 - ix0); - gbm.h = (iy1 - iy0); - gbm.pixels = NULL; // in case we error - - if (width ) *width = gbm.w; - if (height) *height = gbm.h; - if (xoff ) *xoff = ix0; - if (yoff ) *yoff = iy0; - - if (gbm.w && gbm.h) { - gbm.pixels = (unsigned char *) STBTT_malloc(gbm.w * gbm.h, info->userdata); - if (gbm.pixels) { - gbm.stride = gbm.w; - - stbtt_Rasterize(&gbm, 0.35f, vertices, num_verts, scale_x, scale_y, shift_x, shift_y, ix0, iy0, 1, info->userdata); - } - } - STBTT_free(vertices, info->userdata); - return gbm.pixels; -} - -STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff) -{ - return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y, 0.0f, 0.0f, glyph, width, height, xoff, yoff); -} - -STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int glyph) -{ - int ix0,iy0; - stbtt_vertex *vertices; - int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); - stbtt__bitmap gbm; - - stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,0,0); - gbm.pixels = output; - gbm.w = out_w; - gbm.h = out_h; - gbm.stride = out_stride; - - if (gbm.w && gbm.h) - stbtt_Rasterize(&gbm, 0.35f, vertices, num_verts, scale_x, scale_y, shift_x, shift_y, ix0,iy0, 1, info->userdata); - - STBTT_free(vertices, info->userdata); -} - -STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int glyph) -{ - stbtt_MakeGlyphBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, 0.0f,0.0f, glyph); -} - -STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff) -{ - return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y,shift_x,shift_y, stbtt_FindGlyphIndex(info,codepoint), width,height,xoff,yoff); -} - -STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint) -{ - stbtt_MakeGlyphBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, shift_x, shift_y, stbtt_FindGlyphIndex(info,codepoint)); -} - -STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff) -{ - return stbtt_GetCodepointBitmapSubpixel(info, scale_x, scale_y, 0.0f,0.0f, codepoint, width,height,xoff,yoff); -} - -STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint) -{ - stbtt_MakeCodepointBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, 0.0f,0.0f, codepoint); -} - -////////////////////////////////////////////////////////////////////////////// -// -// bitmap baking -// -// This is SUPER-CRAPPY packing to keep source code small - -STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) - float pixel_height, // height of font in pixels - unsigned char *pixels, int pw, int ph, // bitmap to be filled in - int first_char, int num_chars, // characters to bake - stbtt_bakedchar *chardata) -{ - float scale; - int x,y,bottom_y, i; - stbtt_fontinfo f; - if (!stbtt_InitFont(&f, data, offset)) - return -1; - STBTT_memset(pixels, 0, pw*ph); // background of 0 around pixels - x=y=1; - bottom_y = 1; - - scale = stbtt_ScaleForPixelHeight(&f, pixel_height); - - for (i=0; i < num_chars; ++i) { - int advance, lsb, x0,y0,x1,y1,gw,gh; - int g = stbtt_FindGlyphIndex(&f, first_char + i); - stbtt_GetGlyphHMetrics(&f, g, &advance, &lsb); - stbtt_GetGlyphBitmapBox(&f, g, scale,scale, &x0,&y0,&x1,&y1); - gw = x1-x0; - gh = y1-y0; - if (x + gw + 1 >= pw) - y = bottom_y, x = 1; // advance to next row - if (y + gh + 1 >= ph) // check if it fits vertically AFTER potentially moving to next row - return -i; - STBTT_assert(x+gw < pw); - STBTT_assert(y+gh < ph); - stbtt_MakeGlyphBitmap(&f, pixels+x+y*pw, gw,gh,pw, scale,scale, g); - chardata[i].x0 = (stbtt_int16) x; - chardata[i].y0 = (stbtt_int16) y; - chardata[i].x1 = (stbtt_int16) (x + gw); - chardata[i].y1 = (stbtt_int16) (y + gh); - chardata[i].xadvance = scale * advance; - chardata[i].xoff = (float) x0; - chardata[i].yoff = (float) y0; - x = x + gw + 1; - if (y+gh+1 > bottom_y) - bottom_y = y+gh+1; - } - return bottom_y; -} - -STBTT_DEF void stbtt_GetBakedQuad(stbtt_bakedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int opengl_fillrule) -{ - float d3d_bias = opengl_fillrule ? 0 : -0.5f; - float ipw = 1.0f / pw, iph = 1.0f / ph; - stbtt_bakedchar *b = chardata + char_index; - int round_x = STBTT_ifloor((*xpos + b->xoff) + 0.5f); - int round_y = STBTT_ifloor((*ypos + b->yoff) + 0.5f); - - q->x0 = round_x + d3d_bias; - q->y0 = round_y + d3d_bias; - q->x1 = round_x + b->x1 - b->x0 + d3d_bias; - q->y1 = round_y + b->y1 - b->y0 + d3d_bias; - - q->s0 = b->x0 * ipw; - q->t0 = b->y0 * iph; - q->s1 = b->x1 * ipw; - q->t1 = b->y1 * iph; - - *xpos += b->xadvance; -} - -////////////////////////////////////////////////////////////////////////////// -// -// rectangle packing replacement routines if you don't have stb_rect_pack.h -// - -#ifndef STB_RECT_PACK_VERSION -#ifdef _MSC_VER -#define STBTT__NOTUSED(v) (void)(v) -#else -#define STBTT__NOTUSED(v) (void)sizeof(v) -#endif - -typedef int stbrp_coord; - -//////////////////////////////////////////////////////////////////////////////////// -// // -// // -// COMPILER WARNING ?!?!? // -// // -// // -// if you get a compile warning due to these symbols being defined more than // -// once, move #include "stb_rect_pack.h" before #include "stb_truetype.h" // -// // -//////////////////////////////////////////////////////////////////////////////////// - -typedef struct -{ - int width,height; - int x,y,bottom_y; -} stbrp_context; - -typedef struct -{ - unsigned char x; -} stbrp_node; - -struct stbrp_rect -{ - stbrp_coord x,y; - int id,w,h,was_packed; -}; - -static void stbrp_init_target(stbrp_context *con, int pw, int ph, stbrp_node *nodes, int num_nodes) -{ - con->width = pw; - con->height = ph; - con->x = 0; - con->y = 0; - con->bottom_y = 0; - STBTT__NOTUSED(nodes); - STBTT__NOTUSED(num_nodes); -} - -static void stbrp_pack_rects(stbrp_context *con, stbrp_rect *rects, int num_rects) -{ - int i; - for (i=0; i < num_rects; ++i) { - if (con->x + rects[i].w > con->width) { - con->x = 0; - con->y = con->bottom_y; - } - if (con->y + rects[i].h > con->height) - break; - rects[i].x = con->x; - rects[i].y = con->y; - rects[i].was_packed = 1; - con->x += rects[i].w; - if (con->y + rects[i].h > con->bottom_y) - con->bottom_y = con->y + rects[i].h; - } - for ( ; i < num_rects; ++i) - rects[i].was_packed = 0; -} -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// bitmap baking -// -// This is SUPER-AWESOME (tm Ryan Gordon) packing using stb_rect_pack.h. If -// stb_rect_pack.h isn't available, it uses the BakeFontBitmap strategy. - -STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, int pw, int ph, int stride_in_bytes, int padding, void *alloc_context) -{ - stbrp_context *context = (stbrp_context *) STBTT_malloc(sizeof(*context) ,alloc_context); - int num_nodes = pw - padding; - stbrp_node *nodes = (stbrp_node *) STBTT_malloc(sizeof(*nodes ) * num_nodes,alloc_context); - - if (context == NULL || nodes == NULL) { - if (context != NULL) STBTT_free(context, alloc_context); - if (nodes != NULL) STBTT_free(nodes , alloc_context); - return 0; - } - - spc->user_allocator_context = alloc_context; - spc->width = pw; - spc->height = ph; - spc->pixels = pixels; - spc->pack_info = context; - spc->nodes = nodes; - spc->padding = padding; - spc->stride_in_bytes = stride_in_bytes != 0 ? stride_in_bytes : pw; - spc->h_oversample = 1; - spc->v_oversample = 1; - - stbrp_init_target(context, pw-padding, ph-padding, nodes, num_nodes); - - if (pixels) - STBTT_memset(pixels, 0, pw*ph); // background of 0 around pixels - - return 1; -} - -STBTT_DEF void stbtt_PackEnd (stbtt_pack_context *spc) -{ - STBTT_free(spc->nodes , spc->user_allocator_context); - STBTT_free(spc->pack_info, spc->user_allocator_context); -} - -STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample) -{ - STBTT_assert(h_oversample <= STBTT_MAX_OVERSAMPLE); - STBTT_assert(v_oversample <= STBTT_MAX_OVERSAMPLE); - if (h_oversample <= STBTT_MAX_OVERSAMPLE) - spc->h_oversample = h_oversample; - if (v_oversample <= STBTT_MAX_OVERSAMPLE) - spc->v_oversample = v_oversample; -} - -#define STBTT__OVER_MASK (STBTT_MAX_OVERSAMPLE-1) - -static void stbtt__h_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width) -{ - unsigned char buffer[STBTT_MAX_OVERSAMPLE]; - int safe_w = w - kernel_width; - int j; - for (j=0; j < h; ++j) { - int i; - unsigned int total; - STBTT_memset(buffer, 0, kernel_width); - - total = 0; - - // make kernel_width a constant in common cases so compiler can optimize out the divide - switch (kernel_width) { - case 2: - for (i=0; i <= safe_w; ++i) { - total += pixels[i] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; - pixels[i] = (unsigned char) (total / 2); - } - break; - case 3: - for (i=0; i <= safe_w; ++i) { - total += pixels[i] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; - pixels[i] = (unsigned char) (total / 3); - } - break; - case 4: - for (i=0; i <= safe_w; ++i) { - total += pixels[i] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; - pixels[i] = (unsigned char) (total / 4); - } - break; - case 5: - for (i=0; i <= safe_w; ++i) { - total += pixels[i] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; - pixels[i] = (unsigned char) (total / 5); - } - break; - default: - for (i=0; i <= safe_w; ++i) { - total += pixels[i] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; - pixels[i] = (unsigned char) (total / kernel_width); - } - break; - } - - for (; i < w; ++i) { - STBTT_assert(pixels[i] == 0); - total -= buffer[i & STBTT__OVER_MASK]; - pixels[i] = (unsigned char) (total / kernel_width); - } - - pixels += stride_in_bytes; - } -} - -static void stbtt__v_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width) -{ - unsigned char buffer[STBTT_MAX_OVERSAMPLE]; - int safe_h = h - kernel_width; - int j; - for (j=0; j < w; ++j) { - int i; - unsigned int total; - STBTT_memset(buffer, 0, kernel_width); - - total = 0; - - // make kernel_width a constant in common cases so compiler can optimize out the divide - switch (kernel_width) { - case 2: - for (i=0; i <= safe_h; ++i) { - total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; - pixels[i*stride_in_bytes] = (unsigned char) (total / 2); - } - break; - case 3: - for (i=0; i <= safe_h; ++i) { - total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; - pixels[i*stride_in_bytes] = (unsigned char) (total / 3); - } - break; - case 4: - for (i=0; i <= safe_h; ++i) { - total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; - pixels[i*stride_in_bytes] = (unsigned char) (total / 4); - } - break; - case 5: - for (i=0; i <= safe_h; ++i) { - total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; - pixels[i*stride_in_bytes] = (unsigned char) (total / 5); - } - break; - default: - for (i=0; i <= safe_h; ++i) { - total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; - pixels[i*stride_in_bytes] = (unsigned char) (total / kernel_width); - } - break; - } - - for (; i < h; ++i) { - STBTT_assert(pixels[i*stride_in_bytes] == 0); - total -= buffer[i & STBTT__OVER_MASK]; - pixels[i*stride_in_bytes] = (unsigned char) (total / kernel_width); - } - - pixels += 1; - } -} - -static float stbtt__oversample_shift(int oversample) -{ - if (!oversample) - return 0.0f; - - // The prefilter is a box filter of width "oversample", - // which shifts phase by (oversample - 1)/2 pixels in - // oversampled space. We want to shift in the opposite - // direction to counter this. - return (float)-(oversample - 1) / (2.0f * (float)oversample); -} - -// rects array must be big enough to accommodate all characters in the given ranges -STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) -{ - int i,j,k; - - k=0; - for (i=0; i < num_ranges; ++i) { - float fh = ranges[i].font_size; - float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); - ranges[i].h_oversample = (unsigned char) spc->h_oversample; - ranges[i].v_oversample = (unsigned char) spc->v_oversample; - for (j=0; j < ranges[i].num_chars; ++j) { - int x0,y0,x1,y1; - int codepoint = ranges[i].first_unicode_codepoint_in_range ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; - int glyph = stbtt_FindGlyphIndex(info, codepoint); - stbtt_GetGlyphBitmapBoxSubpixel(info,glyph, - scale * spc->h_oversample, - scale * spc->v_oversample, - 0,0, - &x0,&y0,&x1,&y1); - rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1); - rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1); - ++k; - } - } - - return k; -} - -// rects array must be big enough to accommodate all characters in the given ranges -STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) -{ - int i,j,k, return_value = 1; - - // save current values - int old_h_over = spc->h_oversample; - int old_v_over = spc->v_oversample; - - k = 0; - for (i=0; i < num_ranges; ++i) { - float fh = ranges[i].font_size; - float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); - float recip_h,recip_v,sub_x,sub_y; - spc->h_oversample = ranges[i].h_oversample; - spc->v_oversample = ranges[i].v_oversample; - recip_h = 1.0f / spc->h_oversample; - recip_v = 1.0f / spc->v_oversample; - sub_x = stbtt__oversample_shift(spc->h_oversample); - sub_y = stbtt__oversample_shift(spc->v_oversample); - for (j=0; j < ranges[i].num_chars; ++j) { - stbrp_rect *r = &rects[k]; - if (r->was_packed) { - stbtt_packedchar *bc = &ranges[i].chardata_for_range[j]; - int advance, lsb, x0,y0,x1,y1; - int codepoint = ranges[i].first_unicode_codepoint_in_range ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; - int glyph = stbtt_FindGlyphIndex(info, codepoint); - stbrp_coord pad = (stbrp_coord) spc->padding; - - // pad on left and top - r->x += pad; - r->y += pad; - r->w -= pad; - r->h -= pad; - stbtt_GetGlyphHMetrics(info, glyph, &advance, &lsb); - stbtt_GetGlyphBitmapBox(info, glyph, - scale * spc->h_oversample, - scale * spc->v_oversample, - &x0,&y0,&x1,&y1); - stbtt_MakeGlyphBitmapSubpixel(info, - spc->pixels + r->x + r->y*spc->stride_in_bytes, - r->w - spc->h_oversample+1, - r->h - spc->v_oversample+1, - spc->stride_in_bytes, - scale * spc->h_oversample, - scale * spc->v_oversample, - 0,0, - glyph); - - if (spc->h_oversample > 1) - stbtt__h_prefilter(spc->pixels + r->x + r->y*spc->stride_in_bytes, - r->w, r->h, spc->stride_in_bytes, - spc->h_oversample); - - if (spc->v_oversample > 1) - stbtt__v_prefilter(spc->pixels + r->x + r->y*spc->stride_in_bytes, - r->w, r->h, spc->stride_in_bytes, - spc->v_oversample); - - bc->x0 = (stbtt_int16) r->x; - bc->y0 = (stbtt_int16) r->y; - bc->x1 = (stbtt_int16) (r->x + r->w); - bc->y1 = (stbtt_int16) (r->y + r->h); - bc->xadvance = scale * advance; - bc->xoff = (float) x0 * recip_h + sub_x; - bc->yoff = (float) y0 * recip_v + sub_y; - bc->xoff2 = (x0 + r->w) * recip_h + sub_x; - bc->yoff2 = (y0 + r->h) * recip_v + sub_y; - } else { - return_value = 0; // if any fail, report failure - } - - ++k; - } - } - - // restore original values - spc->h_oversample = old_h_over; - spc->v_oversample = old_v_over; - - return return_value; -} - -STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, stbrp_rect *rects, int num_rects) -{ - stbrp_pack_rects((stbrp_context *) spc->pack_info, rects, num_rects); -} - -STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, stbtt_pack_range *ranges, int num_ranges) -{ - stbtt_fontinfo info; - int i,j,n, return_value = 1; - //stbrp_context *context = (stbrp_context *) spc->pack_info; - stbrp_rect *rects; - - // flag all characters as NOT packed - for (i=0; i < num_ranges; ++i) - for (j=0; j < ranges[i].num_chars; ++j) - ranges[i].chardata_for_range[j].x0 = - ranges[i].chardata_for_range[j].y0 = - ranges[i].chardata_for_range[j].x1 = - ranges[i].chardata_for_range[j].y1 = 0; - - n = 0; - for (i=0; i < num_ranges; ++i) - n += ranges[i].num_chars; - - rects = (stbrp_rect *) STBTT_malloc(sizeof(*rects) * n, spc->user_allocator_context); - if (rects == NULL) - return 0; - - stbtt_InitFont(&info, fontdata, stbtt_GetFontOffsetForIndex(fontdata,font_index)); - - n = stbtt_PackFontRangesGatherRects(spc, &info, ranges, num_ranges, rects); - - stbtt_PackFontRangesPackRects(spc, rects, n); - - return_value = stbtt_PackFontRangesRenderIntoRects(spc, &info, ranges, num_ranges, rects); - - STBTT_free(rects, spc->user_allocator_context); - return return_value; -} - -STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, float font_size, - int first_unicode_codepoint_in_range, int num_chars_in_range, stbtt_packedchar *chardata_for_range) -{ - stbtt_pack_range range; - range.first_unicode_codepoint_in_range = first_unicode_codepoint_in_range; - range.array_of_unicode_codepoints = NULL; - range.num_chars = num_chars_in_range; - range.chardata_for_range = chardata_for_range; - range.font_size = font_size; - return stbtt_PackFontRanges(spc, fontdata, font_index, &range, 1); -} - -STBTT_DEF void stbtt_GetPackedQuad(stbtt_packedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int align_to_integer) -{ - float ipw = 1.0f / pw, iph = 1.0f / ph; - stbtt_packedchar *b = chardata + char_index; - - if (align_to_integer) { - float x = (float) STBTT_ifloor((*xpos + b->xoff) + 0.5f); - float y = (float) STBTT_ifloor((*ypos + b->yoff) + 0.5f); - q->x0 = x; - q->y0 = y; - q->x1 = x + b->xoff2 - b->xoff; - q->y1 = y + b->yoff2 - b->yoff; - } else { - q->x0 = *xpos + b->xoff; - q->y0 = *ypos + b->yoff; - q->x1 = *xpos + b->xoff2; - q->y1 = *ypos + b->yoff2; - } - - q->s0 = b->x0 * ipw; - q->t0 = b->y0 * iph; - q->s1 = b->x1 * ipw; - q->t1 = b->y1 * iph; - - *xpos += b->xadvance; -} - - -////////////////////////////////////////////////////////////////////////////// -// -// font name matching -- recommended not to use this -// - -// check if a utf8 string contains a prefix which is the utf16 string; if so return length of matching utf8 string -static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 *s1, stbtt_int32 len1, const stbtt_uint8 *s2, stbtt_int32 len2) -{ - stbtt_int32 i=0; - - // convert utf16 to utf8 and compare the results while converting - while (len2) { - stbtt_uint16 ch = s2[0]*256 + s2[1]; - if (ch < 0x80) { - if (i >= len1) return -1; - if (s1[i++] != ch) return -1; - } else if (ch < 0x800) { - if (i+1 >= len1) return -1; - if (s1[i++] != 0xc0 + (ch >> 6)) return -1; - if (s1[i++] != 0x80 + (ch & 0x3f)) return -1; - } else if (ch >= 0xd800 && ch < 0xdc00) { - stbtt_uint32 c; - stbtt_uint16 ch2 = s2[2]*256 + s2[3]; - if (i+3 >= len1) return -1; - c = ((ch - 0xd800) << 10) + (ch2 - 0xdc00) + 0x10000; - if (s1[i++] != 0xf0 + (c >> 18)) return -1; - if (s1[i++] != 0x80 + ((c >> 12) & 0x3f)) return -1; - if (s1[i++] != 0x80 + ((c >> 6) & 0x3f)) return -1; - if (s1[i++] != 0x80 + ((c ) & 0x3f)) return -1; - s2 += 2; // plus another 2 below - len2 -= 2; - } else if (ch >= 0xdc00 && ch < 0xe000) { - return -1; - } else { - if (i+2 >= len1) return -1; - if (s1[i++] != 0xe0 + (ch >> 12)) return -1; - if (s1[i++] != 0x80 + ((ch >> 6) & 0x3f)) return -1; - if (s1[i++] != 0x80 + ((ch ) & 0x3f)) return -1; - } - s2 += 2; - len2 -= 2; - } - return i; -} - -STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2) -{ - return len1 == stbtt__CompareUTF8toUTF16_bigendian_prefix((const stbtt_uint8*) s1, len1, (const stbtt_uint8*) s2, len2); -} - -// returns results in whatever encoding you request... but note that 2-byte encodings -// will be BIG-ENDIAN... use stbtt_CompareUTF8toUTF16_bigendian() to compare -STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font, int *length, int platformID, int encodingID, int languageID, int nameID) -{ - stbtt_int32 i,count,stringOffset; - stbtt_uint8 *fc = font->data; - stbtt_uint32 offset = font->fontstart; - stbtt_uint32 nm = stbtt__find_table(fc, offset, "name"); - if (!nm) return NULL; - - count = ttUSHORT(fc+nm+2); - stringOffset = nm + ttUSHORT(fc+nm+4); - for (i=0; i < count; ++i) { - stbtt_uint32 loc = nm + 6 + 12 * i; - if (platformID == ttUSHORT(fc+loc+0) && encodingID == ttUSHORT(fc+loc+2) - && languageID == ttUSHORT(fc+loc+4) && nameID == ttUSHORT(fc+loc+6)) { - *length = ttUSHORT(fc+loc+8); - return (const char *) (fc+stringOffset+ttUSHORT(fc+loc+10)); - } - } - return NULL; -} - -static int stbtt__matchpair(stbtt_uint8 *fc, stbtt_uint32 nm, stbtt_uint8 *name, stbtt_int32 nlen, stbtt_int32 target_id, stbtt_int32 next_id) -{ - stbtt_int32 i; - stbtt_int32 count = ttUSHORT(fc+nm+2); - stbtt_int32 stringOffset = nm + ttUSHORT(fc+nm+4); - - for (i=0; i < count; ++i) { - stbtt_uint32 loc = nm + 6 + 12 * i; - stbtt_int32 id = ttUSHORT(fc+loc+6); - if (id == target_id) { - // find the encoding - stbtt_int32 platform = ttUSHORT(fc+loc+0), encoding = ttUSHORT(fc+loc+2), language = ttUSHORT(fc+loc+4); - - // is this a Unicode encoding? - if (platform == 0 || (platform == 3 && encoding == 1) || (platform == 3 && encoding == 10)) { - stbtt_int32 slen = ttUSHORT(fc+loc+8); - stbtt_int32 off = ttUSHORT(fc+loc+10); - - // check if there's a prefix match - stbtt_int32 matchlen = stbtt__CompareUTF8toUTF16_bigendian_prefix(name, nlen, fc+stringOffset+off,slen); - if (matchlen >= 0) { - // check for target_id+1 immediately following, with same encoding & language - if (i+1 < count && ttUSHORT(fc+loc+12+6) == next_id && ttUSHORT(fc+loc+12) == platform && ttUSHORT(fc+loc+12+2) == encoding && ttUSHORT(fc+loc+12+4) == language) { - slen = ttUSHORT(fc+loc+12+8); - off = ttUSHORT(fc+loc+12+10); - if (slen == 0) { - if (matchlen == nlen) - return 1; - } else if (matchlen < nlen && name[matchlen] == ' ') { - ++matchlen; - if (stbtt_CompareUTF8toUTF16_bigendian((char*) (name+matchlen), nlen-matchlen, (char*)(fc+stringOffset+off),slen)) - return 1; - } - } else { - // if nothing immediately following - if (matchlen == nlen) - return 1; - } - } - } - - // @TODO handle other encodings - } - } - return 0; -} - -static int stbtt__matches(stbtt_uint8 *fc, stbtt_uint32 offset, stbtt_uint8 *name, stbtt_int32 flags) -{ - stbtt_int32 nlen = (stbtt_int32) STBTT_strlen((char *) name); - stbtt_uint32 nm,hd; - if (!stbtt__isfont(fc+offset)) return 0; - - // check italics/bold/underline flags in macStyle... - if (flags) { - hd = stbtt__find_table(fc, offset, "head"); - if ((ttUSHORT(fc+hd+44) & 7) != (flags & 7)) return 0; - } - - nm = stbtt__find_table(fc, offset, "name"); - if (!nm) return 0; - - if (flags) { - // if we checked the macStyle flags, then just check the family and ignore the subfamily - if (stbtt__matchpair(fc, nm, name, nlen, 16, -1)) return 1; - if (stbtt__matchpair(fc, nm, name, nlen, 1, -1)) return 1; - if (stbtt__matchpair(fc, nm, name, nlen, 3, -1)) return 1; - } else { - if (stbtt__matchpair(fc, nm, name, nlen, 16, 17)) return 1; - if (stbtt__matchpair(fc, nm, name, nlen, 1, 2)) return 1; - if (stbtt__matchpair(fc, nm, name, nlen, 3, -1)) return 1; - } - - return 0; -} - -STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *font_collection, const char *name_utf8, stbtt_int32 flags) -{ - stbtt_int32 i; - for (i=0;;++i) { - stbtt_int32 off = stbtt_GetFontOffsetForIndex(font_collection, i); - if (off < 0) return off; - if (stbtt__matches((stbtt_uint8 *) font_collection, off, (stbtt_uint8*) name_utf8, flags)) - return off; - } -} - -#endif // STB_TRUETYPE_IMPLEMENTATION - - -// FULL VERSION HISTORY -// -// 1.07 (2015-08-01) allow PackFontRanges to accept arrays of sparse codepoints; -// allow PackFontRanges to pack and render in separate phases; -// fix stbtt_GetFontOFfsetForIndex (never worked for non-0 input?); -// fixed an assert() bug in the new rasterizer -// replace assert() with STBTT_assert() in new rasterizer -// 1.06 (2015-07-14) performance improvements (~35% faster on x86 and x64 on test machine) -// also more precise AA rasterizer, except if shapes overlap -// remove need for STBTT_sort -// 1.05 (2015-04-15) fix misplaced definitions for STBTT_STATIC -// 1.04 (2015-04-15) typo in example -// 1.03 (2015-04-12) STBTT_STATIC, fix memory leak in new packing, various fixes -// 1.02 (2014-12-10) fix various warnings & compile issues w/ stb_rect_pack, C++ -// 1.01 (2014-12-08) fix subpixel position when oversampling to exactly match -// non-oversampled; STBTT_POINT_SIZE for packed case only -// 1.00 (2014-12-06) add new PackBegin etc. API, w/ support for oversampling -// 0.99 (2014-09-18) fix multiple bugs with subpixel rendering (ryg) -// 0.9 (2014-08-07) support certain mac/iOS fonts without an MS platformID -// 0.8b (2014-07-07) fix a warning -// 0.8 (2014-05-25) fix a few more warnings -// 0.7 (2013-09-25) bugfix: subpixel glyph bug fixed in 0.5 had come back -// 0.6c (2012-07-24) improve documentation -// 0.6b (2012-07-20) fix a few more warnings -// 0.6 (2012-07-17) fix warnings; added stbtt_ScaleForMappingEmToPixels, -// stbtt_GetFontBoundingBox, stbtt_IsGlyphEmpty -// 0.5 (2011-12-09) bugfixes: -// subpixel glyph renderer computed wrong bounding box -// first vertex of shape can be off-curve (FreeSans) -// 0.4b (2011-12-03) fixed an error in the font baking example -// 0.4 (2011-12-01) kerning, subpixel rendering (tor) -// bugfixes for: -// codepoint-to-glyph conversion using table fmt=12 -// codepoint-to-glyph conversion using table fmt=4 -// stbtt_GetBakedQuad with non-square texture (Zer) -// updated Hello World! sample to use kerning and subpixel -// fixed some warnings -// 0.3 (2009-06-24) cmap fmt=12, compound shapes (MM) -// userdata, malloc-from-userdata, non-zero fill (stb) -// 0.2 (2009-03-11) Fix unsigned/signed char warnings -// 0.1 (2009-03-09) First public release -// diff --git a/samples/D3D12/src/BinMeshReader.h b/samples/D3D12/src/BinMeshReader.h deleted file mode 100644 index 90f0719..0000000 --- a/samples/D3D12/src/BinMeshReader.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -* Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. -* -* NVIDIA CORPORATION and its licensors retain all intellectual property -* and proprietary rights in and to this software, related documentation -* and any modifications thereto. Any use, reproduction, disclosure or -* distribution of this software and related documentation without an express -* license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ - -#pragma once - -bool LoadVertices(const WCHAR* FileName, std::vector& OutVertices) -{ - FILE* fp = _wfopen(FileName, L"rb"); - if (!fp) return false; - - fseek(fp, 0L, SEEK_END); - UINT FileSize = ftell(fp); - fseek(fp, 0L, SEEK_SET); - - UINT NumVertices = FileSize / sizeof(Vertex::position); - - for (UINT Idx = 0; Idx < NumVertices; ++Idx) - { - Vertex vertex; - fread(&vertex.position, sizeof(XMFLOAT3), 1, fp); - vertex.normal.x = vertex.normal.y = 0; - vertex.normal.z = 1.0; - vertex.textureCoordinate.x = vertex.textureCoordinate.y = 0; - OutVertices.push_back(vertex); - } - - fclose(fp); - return true; -} - -bool LoadIndices(const WCHAR* FileName, std::vector& OutIndices) -{ - FILE* fp = _wfopen(FileName, L"rb"); - if (!fp) return false; - - fseek(fp, 0L, SEEK_END); - UINT FileSize = ftell(fp); - fseek(fp, 0L, SEEK_SET); - - UINT NumIndices = FileSize / sizeof(uint32_t); - - for (UINT Idx = 0; Idx < NumIndices; ++Idx) - { - uint32_t index; - fread(&index, sizeof(index), 1, fp); - OutIndices.push_back(index); - } - - fclose(fp); - return true; -} - - diff --git a/samples/D3D12/src/SSAO12_2015.sln b/samples/D3D12/src/SSAO12_2015.sln deleted file mode 100644 index d0f2f76..0000000 --- a/samples/D3D12/src/SSAO12_2015.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Viewer", "Viewer.vcxproj", "{CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8}.Debug|x64.ActiveCfg = Debug|x64 - {CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8}.Debug|x64.Build.0 = Debug|x64 - {CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8}.Debug|x86.ActiveCfg = Debug|Win32 - {CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8}.Debug|x86.Build.0 = Debug|Win32 - {CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8}.Release|x64.ActiveCfg = Release|x64 - {CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8}.Release|x64.Build.0 = Release|x64 - {CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8}.Release|x86.ActiveCfg = Release|Win32 - {CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/samples/D3D12/src/SibenikIndices.bin b/samples/D3D12/src/SibenikIndices.bin deleted file mode 100644 index 8775c0c..0000000 Binary files a/samples/D3D12/src/SibenikIndices.bin and /dev/null differ diff --git a/samples/D3D12/src/SibenikVertices.bin b/samples/D3D12/src/SibenikVertices.bin deleted file mode 100644 index 561d39e..0000000 Binary files a/samples/D3D12/src/SibenikVertices.bin and /dev/null differ diff --git a/samples/D3D12/src/Viewer.cpp b/samples/D3D12/src/Viewer.cpp deleted file mode 100644 index f7a7ffb..0000000 --- a/samples/D3D12/src/Viewer.cpp +++ /dev/null @@ -1,1205 +0,0 @@ -/* -* Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. -* -* NVIDIA CORPORATION and its licensors retain all intellectual property -* and proprietary rights in and to this software, related documentation -* and any modifications thereto. Any use, reproduction, disclosure or -* distribution of this software and related documentation without an express -* license agreement from NVIDIA CORPORATION is strictly prohibited. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -// For UI rendering -#include -#include "imgui_impl_dx12.h" - -#include -#include - -// Header for HBAO+ -#include "GFSDK_SSAO.h" - -// Library link for HBAO+ -#ifdef _WIN64 -#pragma comment(lib, "GFSDK_SSAO_D3D12.win64.lib") -#else -#pragma comment(lib, "GFSDK_SSAO_D3D12.win32.lib") -#endif - -// Use binary mesh reader or obj reader -#define USE_BIN_MESH_READER 1 - -// MSAA sample count for Viewer application -#define MSAA_SAMPLE_COUNT 1 - -#define SRC_PATH L"..\\src\\" -#define HLSL_FILE_PATH SRC_PATH L"Viewer.hlsl" -#define VERTEX_BIN_FILE_PATH SRC_PATH L"SibenikVertices.bin" -#define INDEX_BIN_FILE_PATH SRC_PATH L"SibenikIndices.bin" - -using namespace std; -using namespace DirectX; -using Microsoft::WRL::ComPtr; - -struct Vertex -{ - DirectX::XMFLOAT3 position; - DirectX::XMFLOAT3 normal; - DirectX::XMFLOAT2 textureCoordinate; -}; - -struct Mesh -{ - std::vector vertices; - std::vector indices; -}; - -// For mesh loading -#if USE_BIN_MESH_READER -#include "BinMeshReader.h" -#else -#include "WaveFrontReader.h" -#endif - -#pragma comment(lib, "dxgi.lib") -#pragma comment(lib, "d3d12.lib") -#pragma comment(lib, "d3dcompiler.lib") - -namespace -{ - int gWindowWidth = 1280; - int gWindowHeight = 720; - bool gIsWindowed = true; - int gAdapterIndex = -1; - HWND gMainWindowHandle = 0; - float gCameraDistance = 1.0f; - float gModelRotation = 90.0f; - bool gUseSSAO = true; - bool gDrawUI = true; - std::string gSelectedGraphicsAdapter; - DXGI_FORMAT gColorTextureFormat = DXGI_FORMAT_R8G8B8A8_UNORM; - DXGI_FORMAT gNormalTextureFormat = DXGI_FORMAT_R32G32B32A32_FLOAT; - DXGI_FORMAT gDepthTextureFormat = DXGI_FORMAT_D32_FLOAT; -}; - -void CHK(HRESULT hr) -{ - if (FAILED(hr)) - throw runtime_error("HRESULT is failed value."); -} - -class D3D -{ -public: - // Number of swap chains - static const UINT FrameCount = 4; - - ComPtr mDxgiFactory; - ComPtr mSwapChain; - - int mBufferWidth, mBufferHeight; - UINT mFrameIndex = 0; - - ID3D12Device* mDev; - ComPtr mCmdAllocs[FrameCount]; - ComPtr mCmdQueue; - - ComPtr mCmdList; - - ComPtr mFence; - UINT64 mFenceValues[FrameCount]; - HANDLE mFenceEvent = 0; - - ComPtr mDescHeapRtv; - ComPtr mDescHeapDsv; - ComPtr mDescHeapCbvSrvUav; - ComPtr mDescHeapSampler; - ComPtr mSsaoDescHeapCbvSrvUav; - - ComPtr mRootSignature; - ComPtr mPso; - - ComPtr mVB; - D3D12_VERTEX_BUFFER_VIEW mVBView = {}; - D3D12_INDEX_BUFFER_VIEW mIBView = {}; - UINT mIndexCount = 0; - UINT mVBIndexOffset = 0; - - ComPtr mDepthBuffer; - ComPtr mConstantBuffer; - void* mCBUploadPtr = nullptr; - - // Normal buffer and render target - ComPtr mNormalBuffer[FrameCount]; - GFSDK_SSAO_RenderTargetView_D3D12 mNormalRTV[FrameCount]; - GFSDK_SSAO_ShaderResourceView_D3D12 mNormalSRV[FrameCount]; - - // Color buffer and render target - ComPtr mColorBuffer[FrameCount]; - GFSDK_SSAO_RenderTargetView_D3D12 mColorRTV[FrameCount]; - - // HBAO+ context and parameter - GFSDK_SSAO_Context_D3D12* mSSAO; - GFSDK_SSAO_Parameters mAOParams; - -public: - //-------------------------------------------------------------------------------- - D3D(int Width, int Height, HWND hWnd, BOOL IsWindowed, INT AdapterIndex) - : mBufferWidth(Width), mBufferHeight(Height), mDev(nullptr), mFrameIndex(0), mSSAO(nullptr) - { - CHK(CreateDXGIFactory1(IID_PPV_ARGS(mDxgiFactory.ReleaseAndGetAddressOf()))); - - ZeroMemory(mFenceValues, sizeof(mFenceValues)); - - ID3D12Device* dev = nullptr; - bool UseWarpDevice = false; - - if (UseWarpDevice) - { - ComPtr warpAdapter; - CHK(mDxgiFactory->EnumWarpAdapter(IID_PPV_ARGS(&warpAdapter))); - - CHK(D3D12CreateDevice( - warpAdapter.Get(), - D3D_FEATURE_LEVEL_11_0, - IID_PPV_ARGS(&dev) - )); - } - else - { - ComPtr Adapter; - UINT NumAdapters = 0; - std::vector< ComPtr > Adapters; - for (UINT idx = 0; mDxgiFactory->EnumAdapters(idx, Adapter.GetAddressOf()) != DXGI_ERROR_NOT_FOUND; ++idx) - { - DXGI_ADAPTER_DESC AdapterDesc; - Adapter->GetDesc(&AdapterDesc); - // GPU name : adapter_desc.Description - wchar_t buff[1024]; - swprintf(buff, L"Graphics Adapter(%d) : %s\n", idx, &AdapterDesc.Description); - OutputDebugStringW(buff); - Adapters.push_back(Adapter); - NumAdapters++; - } - - if ((AdapterIndex >= 0) && (AdapterIndex < (INT)NumAdapters)) - { - Adapter = Adapters[AdapterIndex]; - } - else - { - Adapter = Adapters[0]; - } - - DXGI_ADAPTER_DESC AdapterDesc; - Adapter->GetDesc(&AdapterDesc); - std::wstring DescW = AdapterDesc.Description; - std::string DescA = std::string(DescW.begin(), DescW.end()); - gSelectedGraphicsAdapter = DescA; - Adapters.push_back(Adapter); - - CHK(D3D12CreateDevice(Adapter.Get(), D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&dev))); - } - - mDev = dev; - - const UINT NodeMask = 1; - - for (UINT n = 0; n < FrameCount; n++) - { - CHK(mDev->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&mCmdAllocs[n]))); - } - - D3D12_COMMAND_QUEUE_DESC queueDesc = {}; - queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT; - queueDesc.NodeMask = NodeMask; - CHK(mDev->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(mCmdQueue.ReleaseAndGetAddressOf()))); - - CHK(mDev->CreateCommandList(NodeMask, D3D12_COMMAND_LIST_TYPE_DIRECT, mCmdAllocs[mFrameIndex].Get(), nullptr, IID_PPV_ARGS(&mCmdList))); - -#define SSAO_NUM_DEPTH_SRV 1 -#define SSAO_NUM_NORMAL_SRV FrameCount -#define SSAO_NUM_SRV (SSAO_NUM_DEPTH_SRV + SSAO_NUM_NORMAL_SRV + GFSDK_SSAO_NUM_DESCRIPTORS_CBV_SRV_UAV_HEAP_D3D12) - -#define IMGUI_NUM_CBV 1 -#define IMGUI_NUM_SRV 1 - -#define VIEWER_NUM_CBV 1 -#define VIEWER_NUM_COLOR_RTV FrameCount -#define VIEWER_NUM_NORMAL_RTV FrameCount - -#define VIEWER_NUM_RTV (VIEWER_NUM_COLOR_RTV + VIEWER_NUM_NORMAL_RTV) -#define VIEWER_NUM_DSV 1 -#define VIEWER_NUM_SAMPLER 0 - - { - D3D12_DESCRIPTOR_HEAP_DESC desc = {}; - - desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV; - desc.NumDescriptors = VIEWER_NUM_RTV + GFSDK_SSAO_NUM_DESCRIPTORS_RTV_HEAP_D3D12; - desc.NodeMask = NodeMask; - CHK(mDev->CreateDescriptorHeap(&desc, IID_PPV_ARGS(mDescHeapRtv.ReleaseAndGetAddressOf()))); - mDescHeapRtv->SetName(L"ViewerDescHeapRtv"); - - desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_DSV; - desc.NumDescriptors = VIEWER_NUM_DSV; - desc.NodeMask = NodeMask; - CHK(mDev->CreateDescriptorHeap(&desc, IID_PPV_ARGS(mDescHeapDsv.ReleaseAndGetAddressOf()))); - mDescHeapDsv->SetName(L"ViewerDescHeapDsv"); - - desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV; - desc.NumDescriptors = VIEWER_NUM_CBV + IMGUI_NUM_CBV + IMGUI_NUM_SRV; - desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE; - desc.NodeMask = NodeMask; - CHK(mDev->CreateDescriptorHeap(&desc, IID_PPV_ARGS(mDescHeapCbvSrvUav.ReleaseAndGetAddressOf()))); - mDescHeapCbvSrvUav->SetName(L"ViewerDescHeapCbvSrvUav"); - - desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER; - desc.NumDescriptors = VIEWER_NUM_SAMPLER; - desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE; - desc.NodeMask = NodeMask; - if (desc.NumDescriptors > 0) - { - CHK(mDev->CreateDescriptorHeap(&desc, IID_PPV_ARGS(mDescHeapSampler.ReleaseAndGetAddressOf()))); - mDescHeapSampler->SetName(L"ViewerDescHeapSampler"); - } - } - - // Create a desc heap for SSAO - { - D3D12_DESCRIPTOR_HEAP_DESC desc = {}; - - desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV; - desc.NumDescriptors = SSAO_NUM_SRV; - desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE; - desc.NodeMask = NodeMask; - CHK(mDev->CreateDescriptorHeap(&desc, IID_PPV_ARGS(mSsaoDescHeapCbvSrvUav.ReleaseAndGetAddressOf()))); - mSsaoDescHeapCbvSrvUav->SetName(L"ViewerSsaoDescHeapCbvSrvUav"); - } - - CHK(mDev->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(mFence.ReleaseAndGetAddressOf()))); - mFence->SetName(L"ViewerFence"); - - mFenceValues[mFrameIndex]++; - - mFenceEvent = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); - - ResizeD3D(hWnd, Width, Height, IsWindowed); - - { - CD3DX12_DESCRIPTOR_RANGE descRange1[1]; - descRange1[0].Init(D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 1, 0); - - CD3DX12_ROOT_PARAMETER rootParam[1]; - rootParam[0].InitAsDescriptorTable(ARRAYSIZE(descRange1), descRange1); - - ID3D10Blob *sig, *info; - auto rootSigDesc = D3D12_ROOT_SIGNATURE_DESC(); - rootSigDesc.NumParameters = 1; - rootSigDesc.NumStaticSamplers = 0; - rootSigDesc.pParameters = rootParam; - rootSigDesc.pStaticSamplers = nullptr; - rootSigDesc.Flags = D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT; - CHK(D3D12SerializeRootSignature(&rootSigDesc, D3D_ROOT_SIGNATURE_VERSION_1, &sig, &info)); - mDev->CreateRootSignature( - 0, - sig->GetBufferPointer(), - sig->GetBufferSize(), - IID_PPV_ARGS(mRootSignature.ReleaseAndGetAddressOf())); - mRootSignature->SetName(L"ViewerRS"); - sig->Release(); - } - - ID3D10Blob *vs, *ps; - { - ID3D10Blob *info; - UINT flag = 0; -#if _DEBUG - flag |= D3DCOMPILE_DEBUG; -#endif /* _DEBUG */ - CHK(D3DCompileFromFile(HLSL_FILE_PATH, nullptr, nullptr, "VSMain", "vs_5_0", flag, 0, &vs, &info)); - CHK(D3DCompileFromFile(HLSL_FILE_PATH, nullptr, nullptr, "PSMain", "ps_5_0", flag, 0, &ps, &info)); - } - D3D12_INPUT_ELEMENT_DESC inputLayout[] = { - { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, - { "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, - { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 24, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, - }; - - D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {}; - psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - psoDesc.InputLayout.NumElements = 3; - psoDesc.InputLayout.pInputElementDescs = inputLayout; - psoDesc.IBStripCutValue = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED; - psoDesc.pRootSignature = mRootSignature.Get(); - psoDesc.VS.pShaderBytecode = vs->GetBufferPointer(); - psoDesc.VS.BytecodeLength = vs->GetBufferSize(); - psoDesc.PS.pShaderBytecode = ps->GetBufferPointer(); - psoDesc.PS.BytecodeLength = ps->GetBufferSize(); - psoDesc.RasterizerState = CD3DX12_RASTERIZER_DESC(D3D12_DEFAULT); - psoDesc.RasterizerState.CullMode = D3D12_CULL_MODE_NONE; - psoDesc.BlendState = CD3DX12_BLEND_DESC(D3D12_DEFAULT); - psoDesc.DepthStencilState.DepthEnable = true; - psoDesc.DepthStencilState.DepthFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL; - psoDesc.DepthStencilState.DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; - psoDesc.DepthStencilState.StencilEnable = false; - psoDesc.SampleMask = UINT_MAX; - psoDesc.NumRenderTargets = 1; - psoDesc.RTVFormats[0] = gNormalTextureFormat; - psoDesc.DSVFormat = gDepthTextureFormat; - psoDesc.SampleDesc.Count = MSAA_SAMPLE_COUNT; - CHK(mDev->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(mPso.ReleaseAndGetAddressOf()))); - mPso->SetName(L"ViewerPSO"); - vs->Release(); - ps->Release(); - -#if (USE_BIN_MESH_READER) - Mesh mesh; - LoadVertices(VERTEX_BIN_FILE_PATH, mesh.vertices); - LoadIndices(INDEX_BIN_FILE_PATH, mesh.indices); -#else - WaveFrontReader mesh; - CHK(mesh.Load(L"sibenik.obj")); -#endif - - mIndexCount = static_cast(mesh.indices.size()); - mVBIndexOffset = static_cast(sizeof(mesh.vertices[0]) * mesh.vertices.size()); - UINT IBSize = static_cast(sizeof(mesh.indices[0]) * mIndexCount); - - void* vbData = mesh.vertices.data(); - void* ibData = mesh.indices.data(); - CHK(mDev->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Buffer(mVBIndexOffset + IBSize), - D3D12_RESOURCE_STATE_GENERIC_READ, - nullptr, - IID_PPV_ARGS(mVB.ReleaseAndGetAddressOf()))); - mVB->SetName(L"VertexBuffer"); - - char* vbUploadPtr = nullptr; - CHK(mVB->Map(0, nullptr, reinterpret_cast(&vbUploadPtr))); - memcpy_s(vbUploadPtr, mVBIndexOffset, vbData, mVBIndexOffset); - memcpy_s(vbUploadPtr + mVBIndexOffset, IBSize, ibData, IBSize); - mVB->Unmap(0, nullptr); - - mVBView.BufferLocation = mVB->GetGPUVirtualAddress(); - mVBView.StrideInBytes = sizeof(mesh.vertices[0]); - mVBView.SizeInBytes = mVBIndexOffset; - mIBView.BufferLocation = mVB->GetGPUVirtualAddress() + mVBIndexOffset; - mIBView.Format = (sizeof(mesh.indices[0]) == 2) ? DXGI_FORMAT_R16_UINT : DXGI_FORMAT_R32_UINT; - mIBView.SizeInBytes = IBSize; - - // Constant buffer - CHK(mDev->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Buffer(D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT), - D3D12_RESOURCE_STATE_GENERIC_READ, - nullptr, - IID_PPV_ARGS(mConstantBuffer.ReleaseAndGetAddressOf()))); - mConstantBuffer->SetName(L"ViewerConstantBuffer"); - - D3D12_CONSTANT_BUFFER_VIEW_DESC cbvDesc = {}; - cbvDesc.BufferLocation = mConstantBuffer->GetGPUVirtualAddress(); - cbvDesc.SizeInBytes = D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT; // must be a multiple of 256 - mDev->CreateConstantBufferView(&cbvDesc, mDescHeapCbvSrvUav->GetCPUDescriptorHandleForHeapStart()); - CHK(mConstantBuffer->Map(0, nullptr, reinterpret_cast(&mCBUploadPtr))); - - InitSSAO(); - - mAOParams = {}; - mAOParams.Radius = 2.f; - mAOParams.Bias = 0.2f; - mAOParams.PowerExponent = 2.f; - mAOParams.Blur.Enable = true; - mAOParams.Blur.Sharpness = 32.f; - mAOParams.Blur.Radius = GFSDK_SSAO_BLUR_RADIUS_4; - - ImGui_ImplDX12_Init(hWnd, dev, mCmdQueue.Get(), mCmdList.Get(), mDescHeapCbvSrvUav.Get(), VIEWER_NUM_CBV); - } - - //-------------------------------------------------------------------------------- - void Release() - { - ReleaseSSAO(); - ImGui_ImplDX12_Shutdown(); - - mConstantBuffer->Unmap(0, nullptr); - CloseHandle(mFenceEvent); - for (UINT Idx = 0; Idx < FrameCount; ++Idx) - { - mCmdAllocs[Idx].Reset(); - mColorBuffer[Idx].Reset(); - mNormalBuffer[Idx].Reset(); - } - mCmdList.Reset(); - mFence.Reset(); - mCmdQueue.Reset(); - mSsaoDescHeapCbvSrvUav.Reset(); - mDescHeapCbvSrvUav.Reset(); - mDescHeapDsv.Reset(); - mDescHeapRtv.Reset(); - mDescHeapSampler.Reset(); - if (mSwapChain) - { - mSwapChain->SetFullscreenState(FALSE, NULL); - mSwapChain.Reset(); - } - mConstantBuffer.Reset(); - mDepthBuffer.Reset(); - mDxgiFactory.Reset(); - mPso.Reset(); - mRootSignature.Reset(); - mVB.Reset(); - } - - //-------------------------------------------------------------------------------- - ~D3D() - { - Release(); - } - - //-------------------------------------------------------------------------------- - void ResizeD3D(HWND hWnd, int Width, int Height, BOOL IsWindowed) - { - if (!mDev) - { - return; - } - - DXGI_SWAP_CHAIN_DESC scDesc = {}; - scDesc.BufferCount = FrameCount; - scDesc.BufferDesc.Width = Width; - scDesc.BufferDesc.Height = Height; - scDesc.BufferDesc.Format = gColorTextureFormat; - scDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - //scDesc.Flags = DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT; // For better framerate in windowed mode, but it won't allow fullscreen switching - scDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; - scDesc.OutputWindow = hWnd; - scDesc.SampleDesc.Count = 1; - scDesc.SampleDesc.Quality = 0; - scDesc.Windowed = IsWindowed; - - WaitForGpuIdle(); - - // Release color/normal render targets before calling ResizeBuffers(). - // Also reset the frame fence values. - for (UINT Idx = 0; Idx < FrameCount; ++Idx) - { - mColorBuffer[Idx].Reset(); - mNormalBuffer[Idx].Reset(); - mFenceValues[Idx] = mFenceValues[mFrameIndex]; - } - - ComPtr swapChain; - if (!mSwapChain) - { - CHK(mDxgiFactory->CreateSwapChain(mCmdQueue.Get(), &scDesc, &swapChain)); - swapChain.As(&mSwapChain); - } - - DXGI_SWAP_CHAIN_DESC desc = {}; - mSwapChain->GetDesc(&desc); - CHK(mSwapChain->ResizeBuffers(FrameCount, Width, Height, gColorTextureFormat, desc.Flags)); - - mBufferWidth = Width; - mBufferHeight = Height; - - mFrameIndex = mSwapChain->GetCurrentBackBufferIndex(); - - for (UINT i = 0; i < FrameCount; i++) - { - CHK(mSwapChain->GetBuffer(i, IID_PPV_ARGS(mColorBuffer[i].ReleaseAndGetAddressOf()))); - mColorBuffer[i]->SetName(L"SwapChain_Buffer"); - } - - for (UINT FrameIndex = 0; FrameIndex < FrameCount; ++FrameIndex) - { - // Create color buffer RTV - { - D3D12_RENDER_TARGET_VIEW_DESC colorRTVDesc = {}; - colorRTVDesc.Format = gColorTextureFormat; - colorRTVDesc.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2D; - - CD3DX12_CPU_DESCRIPTOR_HANDLE ColorRTV( - mDescHeapRtv->GetCPUDescriptorHandleForHeapStart(), - FrameIndex * mDev->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV)); - mDev->CreateRenderTargetView(mColorBuffer[FrameIndex].Get(), &colorRTVDesc, ColorRTV); - - mColorRTV[FrameIndex] = {}; - mColorRTV[FrameIndex].CpuHandle = ColorRTV.ptr; - mColorRTV[FrameIndex].pResource = mColorBuffer[FrameIndex].Get(); - } - } - - // Create depth buffer and SRV - { - // Create depth resource - { - D3D12_RESOURCE_DESC resourceDesc = CD3DX12_RESOURCE_DESC::Tex2D( - DXGI_FORMAT_R32_TYPELESS, mBufferWidth, mBufferHeight, 1, 1, MSAA_SAMPLE_COUNT, 0, D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL, - D3D12_TEXTURE_LAYOUT_UNKNOWN, 0); - - D3D12_CLEAR_VALUE dsvClearValue; - dsvClearValue.Format = gDepthTextureFormat; - dsvClearValue.DepthStencil.Depth = 1.0f; - dsvClearValue.DepthStencil.Stencil = 0; - - CHK(mDev->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), // No need to read/write by CPU - D3D12_HEAP_FLAG_NONE, - &resourceDesc, - D3D12_RESOURCE_STATE_COMMON, - &dsvClearValue, - IID_PPV_ARGS(mDepthBuffer.ReleaseAndGetAddressOf()))); - mDepthBuffer->SetName(L"DepthTexture"); - } - - // Depth DSV - { - D3D12_DEPTH_STENCIL_VIEW_DESC dsvDesc = {}; -#if MSAA_SAMPLE_COUNT > 1 - dsvDesc.ViewDimension = D3D12_DSV_DIMENSION_TEXTURE2DMS; -#else - dsvDesc.ViewDimension = D3D12_DSV_DIMENSION_TEXTURE2D; -#endif - dsvDesc.Format = gDepthTextureFormat; - dsvDesc.Flags = D3D12_DSV_FLAG_NONE; - - CD3DX12_CPU_DESCRIPTOR_HANDLE DepthDSV(mDescHeapDsv->GetCPUDescriptorHandleForHeapStart()); - mDev->CreateDepthStencilView(mDepthBuffer.Get(), &dsvDesc, DepthDSV); - } - - // Depth SRV - { - D3D12_SHADER_RESOURCE_VIEW_DESC depthSRVDesc = {}; - - depthSRVDesc.Format = DXGI_FORMAT_R32_FLOAT; - depthSRVDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; -#if MSAA_SAMPLE_COUNT > 1 - depthSRVDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2DMS; -#else - depthSRVDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; - depthSRVDesc.Texture2D.MipLevels = 1; - depthSRVDesc.Texture2D.MostDetailedMip = 0; // No MIP - depthSRVDesc.Texture2D.PlaneSlice = 0; - depthSRVDesc.Texture2D.ResourceMinLODClamp = 0.0f; -#endif - - CD3DX12_CPU_DESCRIPTOR_HANDLE DepthSRV( - mSsaoDescHeapCbvSrvUav->GetCPUDescriptorHandleForHeapStart()); - mDev->CreateShaderResourceView(mDepthBuffer.Get(), &depthSRVDesc, DepthSRV); - } - } - - // Normal render targets - for (UINT FrameIndex = 0; FrameIndex < FrameCount; ++FrameIndex) - { - D3D12_RESOURCE_DESC NormalRTVDesc = CD3DX12_RESOURCE_DESC::Tex2D( - gNormalTextureFormat, mBufferWidth, mBufferHeight, 1, 1, MSAA_SAMPLE_COUNT, 0, D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET, - D3D12_TEXTURE_LAYOUT_UNKNOWN, 0); - - FLOAT ClearColor[] = { 0, 0, 0, 1.0f }; - CD3DX12_CLEAR_VALUE NormalClearValue(NormalRTVDesc.Format, ClearColor); - mDev->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), D3D12_HEAP_FLAG_NONE, - &NormalRTVDesc, D3D12_RESOURCE_STATE_COMMON, &NormalClearValue, IID_PPV_ARGS(mNormalBuffer[FrameIndex].ReleaseAndGetAddressOf())); - mNormalBuffer[FrameIndex]->SetName(L"NormalBuffer"); - - // SRV - D3D12_SHADER_RESOURCE_VIEW_DESC NormalSRVDesc = {}; - NormalSRVDesc.Format = NormalRTVDesc.Format; - NormalSRVDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; -#if MSAA_SAMPLE_COUNT > 1 - NormalSRVDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2DMS; -#else - NormalSRVDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; - NormalSRVDesc.Texture2D.MipLevels = 1; - NormalSRVDesc.Texture2D.MostDetailedMip = 0; // No MIP - NormalSRVDesc.Texture2D.PlaneSlice = 0; - NormalSRVDesc.Texture2D.ResourceMinLODClamp = 0.0f; -#endif - - mNormalSRV[FrameIndex] = {}; - mNormalSRV[FrameIndex].pResource = mNormalBuffer[FrameIndex].Get(); - CD3DX12_CPU_DESCRIPTOR_HANDLE NormalSRVHandle( - mSsaoDescHeapCbvSrvUav->GetCPUDescriptorHandleForHeapStart(), - SSAO_NUM_DEPTH_SRV + FrameIndex, - mDev->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV)); - mDev->CreateShaderResourceView(mNormalBuffer[FrameIndex].Get(), &NormalSRVDesc, NormalSRVHandle); - - // RTV - D3D12_RENDER_TARGET_VIEW_DESC normalRTVDesc = {}; - normalRTVDesc.Format = NormalRTVDesc.Format; -#if MSAA_SAMPLE_COUNT > 1 - normalRTVDesc.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2DMS; -#else - normalRTVDesc.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2D; - normalRTVDesc.Texture2D.MipSlice = 0; -#endif - mNormalRTV[FrameIndex] = {}; - mNormalRTV[FrameIndex].pResource = mNormalBuffer[FrameIndex].Get(); - mNormalRTV[FrameIndex].CpuHandle = CD3DX12_CPU_DESCRIPTOR_HANDLE( - mDescHeapRtv->GetCPUDescriptorHandleForHeapStart(), - VIEWER_NUM_COLOR_RTV + FrameIndex, - mDev->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV)).ptr; - mDev->CreateRenderTargetView(mNormalBuffer[FrameIndex].Get(), &normalRTVDesc, { mNormalRTV[FrameIndex].CpuHandle }); - } - } - - void InitSSAO() - { - const UINT NodeMask = 1; - - GFSDK_SSAO_CustomHeap CustomHeap; - CustomHeap.new_ = ::operator new; - CustomHeap.delete_ = ::operator delete; - - GFSDK_SSAO_DescriptorHeaps_D3D12 DescriptorHeaps; - - DescriptorHeaps.CBV_SRV_UAV.pDescHeap = mSsaoDescHeapCbvSrvUav.Get(); - DescriptorHeaps.CBV_SRV_UAV.BaseIndex = SSAO_NUM_DEPTH_SRV + SSAO_NUM_NORMAL_SRV; - DescriptorHeaps.CBV_SRV_UAV.NumDescriptors = GFSDK_SSAO_NUM_DESCRIPTORS_CBV_SRV_UAV_HEAP_D3D12; - - DescriptorHeaps.RTV.pDescHeap = mDescHeapRtv.Get(); - DescriptorHeaps.RTV.BaseIndex = VIEWER_NUM_RTV; - DescriptorHeaps.RTV.NumDescriptors = GFSDK_SSAO_NUM_DESCRIPTORS_RTV_HEAP_D3D12; - - GFSDK_SSAO_Status status = GFSDK_SSAO_CreateContext_D3D12(mDev, NodeMask, DescriptorHeaps, &mSSAO, &CustomHeap); - assert(status == GFSDK_SSAO_OK); - } - - void ReleaseSSAO() - { - if (mSSAO) - { - mSSAO->Release(); - mSSAO = nullptr; - } - } - - //-------------------------------------------------------------------------------- - ID3D12Device* GetDevice() const - { - return mDev; - } - - void WaitForGpuIdle() - { - // Schedule a Signal command in the queue. - const UINT64 currentFenceValue = mFenceValues[mFrameIndex]; - CHK(mCmdQueue->Signal(mFence.Get(), currentFenceValue)); - - CHK(mFence->SetEventOnCompletion(mFenceValues[mFrameIndex], mFenceEvent)); - WaitForSingleObjectEx(mFenceEvent, INFINITE, FALSE); - } - - //-------------------------------------------------------------------------------- - void Draw() - { - // Upload constant buffer - XMMATRIX ViewMat, ProjMat, WorldMat, ViewProjMat; - { -#if USE_BIN_MESH_READER - ViewMat = XMMatrixIdentity(); - WorldMat = XMMatrixIdentity(); -#else - WorldMat = XMMatrixRotationY(XMConvertToRadians(gModelRotation)); - ViewMat = XMMatrixLookAtLH({ 0, 1, gCameraDistance }, { 0, 0, 0 }, { 0, 1, 0 }); -#endif - - float nearPlane = .01f; - float farPlane = 500.0f; - ProjMat = XMMatrixPerspectiveFovLH(40 * 3.141592f / 180.f, (float)mBufferWidth / mBufferHeight, nearPlane, farPlane); - XMMATRIX MVPTransMat = XMMatrixTranspose(WorldMat * ViewMat * ProjMat); - XMMATRIX WorldTransMat = XMMatrixTranspose(WorldMat); - - ViewProjMat = XMMatrixMultiply(ViewMat, ProjMat); - - // mCBUploadPtr is Write-Combine memory - memcpy_s(mCBUploadPtr, 64, &MVPTransMat, 64); - memcpy_s(reinterpret_cast(mCBUploadPtr) + 64, 64, &WorldTransMat, 64); - } - - // Get current RTV descriptor - CD3DX12_CPU_DESCRIPTOR_HANDLE descHandleRtv( - mDescHeapRtv->GetCPUDescriptorHandleForHeapStart(), - mFrameIndex, - mDev->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV)); - - // Get current swap chain - ID3D12Resource* ColorBuffer = mColorBuffer[mFrameIndex].Get(); - ID3D12Resource* DepthBuffer = mDepthBuffer.Get(); - - // Get DSV - CD3DX12_CPU_DESCRIPTOR_HANDLE DepthDSV(mDescHeapDsv->GetCPUDescriptorHandleForHeapStart()); - - SetResourceBarrier(mCmdList.Get(), ColorBuffer, D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_RENDER_TARGET); - SetResourceBarrier(mCmdList.Get(), DepthBuffer, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE, D3D12_RESOURCE_STATE_DEPTH_WRITE); - - // Viewport & Scissor - D3D12_VIEWPORT viewport = {}; - viewport.Width = (float)mBufferWidth; - viewport.Height = (float)mBufferHeight; - viewport.MinDepth = 0.0f; - viewport.MaxDepth = 1.0f; - mCmdList->RSSetViewports(1, &viewport); - D3D12_RECT scissor = {}; - scissor.right = (LONG)mBufferWidth; - scissor.bottom = (LONG)mBufferHeight; - mCmdList->RSSetScissorRects(1, &scissor); - - // Clear DepthTexturesh - mCmdList->ClearDepthStencilView(DepthDSV, D3D12_CLEAR_FLAG_DEPTH, 1.0f, 0, 0, nullptr); - - // Draw the geometry - D3D12_CPU_DESCRIPTOR_HANDLE RTVs[] = { { mNormalRTV[mFrameIndex].CpuHandle } }; - mCmdList->OMSetRenderTargets(ARRAYSIZE(RTVs), RTVs, false, &DepthDSV); - - mCmdList->SetGraphicsRootSignature(mRootSignature.Get()); - ID3D12DescriptorHeap* descHeaps[] = { mDescHeapCbvSrvUav.Get() }; - mCmdList->SetDescriptorHeaps(ARRAYSIZE(descHeaps), descHeaps); - - mCmdList->SetGraphicsRootDescriptorTable(0, mDescHeapCbvSrvUav->GetGPUDescriptorHandleForHeapStart()); - mCmdList->SetPipelineState(mPso.Get()); - mCmdList->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); - mCmdList->IASetVertexBuffers(0, 1, &mVBView); - mCmdList->IASetIndexBuffer(&mIBView); - mCmdList->DrawIndexedInstanced(mIndexCount, 1, 0, 0, 0); - - SetResourceBarrier(mCmdList.Get(), DepthBuffer, D3D12_RESOURCE_STATE_DEPTH_WRITE, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE); - - if (gUseSSAO) - { - // Set input data - GFSDK_SSAO_InputData_D3D12 InputData = {}; - InputData.DepthData.DepthTextureType = GFSDK_SSAO_HARDWARE_DEPTHS; - - // FullResDepthTextureSRV - { - CD3DX12_GPU_DESCRIPTOR_HANDLE DepthSrvGpuHandle( - mSsaoDescHeapCbvSrvUav->GetGPUDescriptorHandleForHeapStart()); - InputData.DepthData.FullResDepthTextureSRV.pResource = DepthBuffer; - InputData.DepthData.FullResDepthTextureSRV.GpuHandle = DepthSrvGpuHandle.ptr; - } - - // DepthData - InputData.DepthData.ProjectionMatrix.Data = GFSDK_SSAO_Float4x4((const GFSDK_SSAO_FLOAT*)&ProjMat); - InputData.DepthData.ProjectionMatrix.Layout = GFSDK_SSAO_ROW_MAJOR_ORDER; - -#if USE_BIN_MESH_READER - InputData.DepthData.MetersToViewSpaceUnits = 0.005f; -#else - InputData.DepthData.MetersToViewSpaceUnits = 1.f; -#endif - - // NormalData - { - CD3DX12_GPU_DESCRIPTOR_HANDLE NormalSrvGpuHandle( - mSsaoDescHeapCbvSrvUav->GetGPUDescriptorHandleForHeapStart(), - SSAO_NUM_DEPTH_SRV + mFrameIndex, - mDev->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV)); - - mNormalSRV[mFrameIndex].GpuHandle = NormalSrvGpuHandle.ptr; - -#if USE_BIN_MESH_READER - InputData.NormalData.Enable = false; -#else - InputData.NormalData.Enable = true; -#endif - - if (InputData.NormalData.Enable) - { - InputData.NormalData.WorldToViewMatrix.Data = GFSDK_SSAO_Float4x4((const GFSDK_SSAO_FLOAT*)&ViewMat); - InputData.NormalData.WorldToViewMatrix.Layout = GFSDK_SSAO_ROW_MAJOR_ORDER; - InputData.NormalData.FullResNormalTextureSRV = mNormalSRV[mFrameIndex]; - } - } - - //GFSDK_SSAO_RenderMask RenderMask = GFSDK_SSAO_RENDER_DEBUG_NORMAL; - GFSDK_SSAO_RenderMask RenderMask = GFSDK_SSAO_RENDER_AO; - - // Set SSAO descriptor heap - { - ID3D12DescriptorHeap* descHeaps[] = { mSsaoDescHeapCbvSrvUav.Get() }; - mCmdList->SetDescriptorHeaps(ARRAYSIZE(descHeaps), descHeaps); - } - - GFSDK_SSAO_Output_D3D12 Output; - Output.pRenderTargetView = &mColorRTV[mFrameIndex]; - - GFSDK_SSAO_Status status = mSSAO->RenderAO(mCmdQueue.Get(), mCmdList.Get(), InputData, mAOParams, Output, RenderMask); - assert(status == GFSDK_SSAO_OK); - - // Revert to the original descriptor heap - { - ID3D12DescriptorHeap* descHeaps[] = { mDescHeapCbvSrvUav.Get() }; - mCmdList->SetDescriptorHeaps(ARRAYSIZE(descHeaps), descHeaps); - } - } - - if (gDrawUI) - { - D3D12_CPU_DESCRIPTOR_HANDLE RTVs[] = { mColorRTV[mFrameIndex].CpuHandle }; - - mCmdList->OMSetRenderTargets(ARRAYSIZE(RTVs), RTVs, false, nullptr); - DrawUI(); - } - - // Barrier RenderTarget -> Present - SetResourceBarrier(mCmdList.Get(), ColorBuffer, D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT); - - // Exec - CHK(mCmdList->Close()); - ID3D12CommandList* const cmdList = mCmdList.Get(); - mCmdQueue->ExecuteCommandLists(1, &cmdList); - - // Present - CHK(mSwapChain->Present(0, 0)); - - // Move to next frame - { - // Schedule a Signal command in the queue. - const UINT64 currentFenceValue = mFenceValues[mFrameIndex]; - CHK(mCmdQueue->Signal(mFence.Get(), currentFenceValue)); - - // Update the frame index. - mFrameIndex = mSwapChain->GetCurrentBackBufferIndex(); - - // If the next frame is not ready to be rendered yet, wait until it is ready. - UINT64 CompletedValue = mFence->GetCompletedValue(); - if (CompletedValue < mFenceValues[mFrameIndex]) - { - CHK(mFence->SetEventOnCompletion(mFenceValues[mFrameIndex], mFenceEvent)); - WaitForSingleObjectEx(mFenceEvent, INFINITE, FALSE); - } - - // Set the fence value for the next frame. - mFenceValues[mFrameIndex] = currentFenceValue + 1; - } - - // Command list allocators can only be reset when the associated - // command lists have finished execution on the GPU; apps should use - // fences to determine GPU execution progress. - CHK(mCmdAllocs[mFrameIndex]->Reset()); - - // However, when ExecuteCommandList() is called on a particular command - // list, that command list can then be reset at any time and must be before - // re-recording. - CHK(mCmdList->Reset(mCmdAllocs[mFrameIndex].Get(), nullptr)); - } - - //-------------------------------------------------------------------------------- - void DrawUI() - { - // Draw UI - ImGui_ImplDX12_NewFrame(); - - bool show_ssao_window = true; - bool show_test_window = false; - - // Show SSAO property window - if (show_ssao_window) - { - ImGui::SetNextWindowPos(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); - ImGui::SetNextWindowSize(ImVec2(400, 300), ImGuiSetCond_FirstUseEver); - ImGui::Begin("HBAO+", &show_ssao_window); - - GFSDK_SSAO_Version Version; - GFSDK_SSAO_Status Status; - Status = GFSDK_SSAO_GetVersion(&Version); - assert(Status == GFSDK_SSAO_OK); - - ImGui::Text("D3D12 HBAO+ %d.%d.%d.%d", Version.Major, Version.Minor, Version.Branch, Version.Revision); - - ImGui::Text("%s", gSelectedGraphicsAdapter.c_str()); -#if MSAA_SAMPLE_COUNT > 1 - ImGui::Text("%dx MSAA", MSAA_SAMPLE_COUNT); -#endif - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate); - - float radius = mAOParams.Radius; - ImGui::DragFloat("Radius", &radius, 0.05f, 0.0f, 100.0f); - if (radius != mAOParams.Radius) - { - mAOParams.Radius = radius; - int stop = 0; - stop = stop; - } - ImGui::DragFloat("PowerExponent", &mAOParams.PowerExponent, 0.05f, 1.f, 8.f); - ImGui::DragFloat("Bias", &mAOParams.Bias, 0.001f, 0, 0.5f); - - ImGui::DragFloat("SmallScaleAO", &mAOParams.SmallScaleAO, 0.01f, 0.f, 2.f); - ImGui::DragFloat("LargeScaleAO", &mAOParams.LargeScaleAO, 0.01f, 0.f, 2.f); - - bool BlurEnabled = mAOParams.Blur.Enable ? true : false; - ImGui::Checkbox("Blur.Enable", &BlurEnabled); - mAOParams.Blur.Enable = BlurEnabled; - - const char* listbox_items[] = { "GFSDK_SSAO_BLUR_RADIUS_2", "GFSDK_SSAO_BLUR_RADIUS_4" }; - int listbox_item_current = (int)mAOParams.Blur.Radius; - ImGui::ListBox("Blur.Radius", &listbox_item_current, listbox_items, ARRAYSIZE(listbox_items), 2); - mAOParams.Blur.Radius = (GFSDK_SSAO_BlurRadius)(listbox_item_current); - - ImGui::DragFloat("Blur.Sharpness", &mAOParams.Blur.Sharpness, 0.f, 0.f, 32.0f); - - ImGui::End(); - } - - // Show the ImGui test window. Most of the sample code is in ImGui::ShowTestWindow() - if (show_test_window) - { - ImGui::SetNextWindowPos(ImVec2(650, 20), ImGuiSetCond_FirstUseEver); // Normally user code doesn't need/want to call it because positions are saved in .ini file anyway. Here we just want to make the demo initial state a bit more friendly! - ImGui::ShowTestWindow(&show_test_window); - } - - ImGui::Render(); - } - -private: - void SetResourceBarrier(ID3D12GraphicsCommandList* commandList, - ID3D12Resource* res, - D3D12_RESOURCE_STATES before, - D3D12_RESOURCE_STATES after) - { - D3D12_RESOURCE_BARRIER desc = {}; - desc.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; - desc.Transition.pResource = res; - desc.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES; - desc.Transition.StateBefore = before; - desc.Transition.StateAfter = after; - desc.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE; - commandList->ResourceBarrier(1, &desc); - } -}; - -D3D* gD3D = nullptr; - -extern LRESULT ImGui_ImplDX12_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); - -//-------------------------------------------------------------------------------- -LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - static WORD sLastX = 0, sLastY = 0; - - ImGui_ImplDX12_WndProcHandler(hWnd, message, wParam, lParam); - - switch (message) - { - case WM_SIZE: - { - if (gD3D) - { - BOOL IsFullScreen = FALSE; - if (gD3D->mSwapChain) { - gD3D->mSwapChain->GetFullscreenState(&IsFullScreen, NULL); - } - gD3D->ResizeD3D(hWnd, LOWORD(lParam), HIWORD(lParam), !IsFullScreen); - } - } - break; - case WM_KEYDOWN: - if (wParam == VK_ESCAPE) - { - gDrawUI = !gDrawUI; - //PostMessage(hWnd, WM_DESTROY, 0, 0); - //return 0; - } - if (wParam == VK_F5) - { - gD3D->ReleaseSSAO(); - gD3D->InitSSAO(); - OutputDebugStringA("SSAO Reloaded\n"); - } - if (wParam == 'W') - { - gCameraDistance -= 0.1f; - } - else if (wParam == 'S') - { - gCameraDistance += 0.1f; - } - - break; - - case WM_MOUSEMOVE: - { - WORD x = LOWORD(lParam); - WORD y = HIWORD(lParam); - - if (wParam & MK_RBUTTON) - { - gModelRotation -= float(x - sLastX); - } - sLastX = x; - sLastY = y; - } - break; - case WM_PAINT: - if (gD3D) gD3D->Draw(); - break; - - case WM_DESTROY: - PostQuitMessage(0); - break; - - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - return 0; -} - -//-------------------------------------------------------------------------------- -void FitToDesiredClientSize(HWND hwnd, int Width, int Height, DWORD window_style, bool has_menu) -{ - RECT current_win_rect; - ::GetWindowRect(hwnd, ¤t_win_rect); - RECT desired_rect = current_win_rect; - desired_rect.right = current_win_rect.left + Width; - desired_rect.bottom = current_win_rect.top + Height; - ::AdjustWindowRect(&desired_rect, window_style, (has_menu) ? TRUE : FALSE); - Width = desired_rect.right - desired_rect.left; - Height = desired_rect.bottom - desired_rect.top; - ::SetWindowLongPtr(hwnd, GWL_STYLE, window_style); - ::SetWindowPos(hwnd, HWND_TOP, 0, 0, Width, Height, SWP_SHOWWINDOW); -} - -//-------------------------------------------------------------------------------- -static HWND SetupWindow(int Width, int Height, bool IsWindowed) -{ - WNDCLASSEX wcex; - wcex.cbSize = sizeof(WNDCLASSEX); - wcex.style = CS_HREDRAW | CS_VREDRAW; - wcex.lpfnWndProc = WndProc; - wcex.cbClsExtra = 0; - wcex.cbWndExtra = 0; - wcex.hInstance = (HMODULE)GetModuleHandle(0); - wcex.hIcon = nullptr; - wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); - wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - wcex.lpszMenuName = nullptr; - wcex.lpszClassName = _T("WindowClass"); - wcex.hIconSm = nullptr; - if (!RegisterClassEx(&wcex)) - { - throw runtime_error("RegisterClassEx()"); - } - - DWORD windowStyle = WS_OVERLAPPEDWINDOW; - HWND hWnd = CreateWindowEx( - 0, // WS_EX_TOPMOST, - _T("WindowClass"), _T("HBAO+ DX12"), - windowStyle, - 0, 0, Width, Height, - nullptr, nullptr, nullptr, nullptr); - if (!hWnd) - { - throw runtime_error("CreateWindow()"); - } - - if (IsWindowed) - { - FitToDesiredClientSize(hWnd, Width, Height, windowStyle, false); - } - - return hWnd; -} - -//-------------------------------------------------------------------------------- -int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR CmdLine, int) -{ - MSG msg; - ZeroMemory(&msg, sizeof msg); - - ID3D12Device* dev = nullptr; - - std::vector arguments; - if (CmdLine) - { - char buff[1024]; - strcpy(buff, CmdLine); - char * pch = strtok(buff, " "); - while (pch != NULL) - { - arguments.push_back(pch); - pch = strtok(NULL, " "); - } - } - - for (size_t idx = 0; idx < arguments.size(); ++idx) - { - std::string arg = arguments[idx]; - if (_stricmp(arg.c_str(), "-width") == 0) - { - gWindowWidth = atoi(arguments[idx + 1].c_str()); - idx++; - } - else if (_stricmp(arg.c_str(), "-height") == 0) - { - gWindowHeight = atoi(arguments[idx + 1].c_str()); - idx++; - } - else if (_stricmp(arg.c_str(), "-window") == 0) - { - gIsWindowed = (atoi(arguments[idx + 1].c_str()) == 1) ? true : false; - idx++; - } - else if (_stricmp(arg.c_str(), "-ui") == 0) - { - gDrawUI = (atoi(arguments[idx + 1].c_str()) == 1) ? true : false; - idx++; - } - else if (_stricmp(arg.c_str(), "-adapter") == 0) - { - gAdapterIndex = (atoi(arguments[idx + 1].c_str()) == 1) ? true : false; - idx++; - } - } - -#ifdef NDEBUG - try -#endif - { - gMainWindowHandle = SetupWindow(gWindowWidth, gWindowHeight, gIsWindowed); - ShowWindow(gMainWindowHandle, SW_SHOW); - UpdateWindow(gMainWindowHandle); - - gD3D = new D3D(gWindowWidth, gWindowHeight, gMainWindowHandle, gIsWindowed, gAdapterIndex); - dev = gD3D->GetDevice(); - - while (msg.message != WM_QUIT) - { - if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - } -#ifdef NDEBUG - catch (std::exception &e) - { - MessageBoxA(gMainWindowHandle, e.what(), "Exception occured.", MB_ICONSTOP); - } -#endif - - if (gD3D) - delete gD3D; - - if (dev) - dev->Release(); - - return static_cast(msg.wParam); -} diff --git a/samples/D3D12/src/Viewer.hlsl b/samples/D3D12/src/Viewer.hlsl deleted file mode 100644 index b3b418c..0000000 --- a/samples/D3D12/src/Viewer.hlsl +++ /dev/null @@ -1,40 +0,0 @@ -struct VSIn -{ - float3 pos : POSITION; - float3 normal : NORMAL; -}; - -struct VSOut -{ - float4 pos : SV_POSITION; - float3 normal : TEXCOORD; -}; - -cbuffer Scene -{ - float4x4 worldViewProjMatrix; - float4x4 worldMatrix; -}; - -VSOut VSMain(VSIn vsIn) -{ - VSOut output; - output.pos = mul(float4(vsIn.pos.xyz, 1), worldViewProjMatrix); - output.normal = mul(vsIn.normal.xyz, (float3x3)(worldMatrix)); - return output; -} - -struct PSOutputDepthTextures -{ - float4 WorldNormal : SV_Target0; -}; - -PSOutputDepthTextures PSMain(VSOut vsOut) -{ - PSOutputDepthTextures OUT; - - float3 worldNormal = normalize(vsOut.normal); - OUT.WorldNormal = float4(worldNormal.xyz, 1.f); - - return OUT; -} \ No newline at end of file diff --git a/samples/D3D12/src/Viewer.vcxproj b/samples/D3D12/src/Viewer.vcxproj deleted file mode 100644 index 2bb2dfe..0000000 --- a/samples/D3D12/src/Viewer.vcxproj +++ /dev/null @@ -1,229 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8} - Win32Proj - hbaop_dx12 - 10.0.10586.0 - SampleApp_D3D12 - - - - Application - true - v140 - MultiByte - - - Application - true - v140 - MultiByte - - - Application - false - v140 - true - MultiByte - - - Application - false - v140 - true - MultiByte - - - - - - - - - - - - - - - - - - - true - $(ProjectDir)..\..\..\include;$(WindowsSDK_IncludePath);$(ProjectDir);$(VC_IncludePath);$(ProjectDir)..\external\imgui\examples\directx12_example;$(ProjectDir)..\external\imgui\ - $(ProjectDir)..\..\..\lib;$(WindowsSDK_LibraryPath_x86);$(VC_LibraryPath_x86) - ..\Bin\ - ..\Temp\$(ProjectName)\$(Platform)\$(Configuration)\ - $(ProjectName).debug.win32 - - - true - $(ProjectDir)..\..\..\include;$(WindowsSDK_IncludePath);$(ProjectDir);$(VC_IncludePath);$(ProjectDir)..\external\imgui\examples\directx12_example;$(ProjectDir)..\external\imgui\ - $(ProjectDir)..\..\..\lib;$(WindowsSDK_LibraryPath_x64);$(VC_LibraryPath_x64) - ..\Bin\ - ..\Temp\$(ProjectName)\$(Platform)\$(Configuration)\ - $(ProjectName).debug.win64 - - - false - $(ProjectDir)..\..\..\include;$(WindowsSDK_IncludePath);$(ProjectDir);$(VC_IncludePath);$(ProjectDir)..\external\imgui\examples\directx12_example;$(ProjectDir)..\external\imgui\ - $(ProjectDir)..\..\..\lib;$(WindowsSDK_LibraryPath_x86);$(VC_LibraryPath_x86) - ..\Bin\ - ..\Temp\$(ProjectName)\$(Platform)\$(Configuration)\ - $(ProjectName).win32 - - - false - $(ProjectDir)..\..\..\include;$(WindowsSDK_IncludePath);$(ProjectDir);$(VC_IncludePath);$(ProjectDir)..\external\imgui\examples\directx12_example;$(ProjectDir)..\external\imgui\ - $(ProjectDir)..\..\..\lib;$(WindowsSDK_LibraryPath_x64);$(VC_LibraryPath_x64) - ..\Bin\ - ..\Temp\$(ProjectName)\$(Platform)\$(Configuration)\ - $(ProjectName).win64 - - - - - - Level3 - Disabled - _CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebug - 4312 - - - - - Windows - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - copy /Y ..\..\..\lib\GFSDK_SSAO_D3D12.win32.dll ..\Bin - - - - - - - Level3 - Disabled - _CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebug - 4312 - - - - - Windows - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - copy /Y ..\..\..\lib\GFSDK_SSAO_D3D12.win64.dll ..\Bin - - - - - Level3 - - - MaxSpeed - true - true - _CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreaded - 4312 - - - - - Windows - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - copy /Y ..\..\..\lib\GFSDK_SSAO_D3D12.win32.dll ..\Bin - - - - - Level3 - - - MaxSpeed - true - true - _CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreaded - 4312 - - - - - Windows - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - copy /Y ..\..\..\lib\GFSDK_SSAO_D3D12.win64.dll ..\Bin - - - - - - - - - - - - PSMain - Pixel - PSMain - Pixel - 5.0 - 5.0 - true - true - true - true - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/D3D12/src/Viewer.vcxproj.filters b/samples/D3D12/src/Viewer.vcxproj.filters deleted file mode 100644 index bd01d4e..0000000 --- a/samples/D3D12/src/Viewer.vcxproj.filters +++ /dev/null @@ -1,57 +0,0 @@ - - - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {0e1a96a7-3888-4f55-b5b2-5aa8917b7309} - - - {837694ff-54c1-41d9-a277-db25d377c998} - - - - - imgui - - - imgui - - - imgui - - - imgui - - - - - - - imgui - - - imgui - - - imgui - - - imgui - - - imgui - - - imgui - - - - - - shaders - - - \ No newline at end of file diff --git a/samples/D3D12/src/WaveFrontReader.h b/samples/D3D12/src/WaveFrontReader.h deleted file mode 100644 index f68f2bf..0000000 --- a/samples/D3D12/src/WaveFrontReader.h +++ /dev/null @@ -1,541 +0,0 @@ -//-------------------------------------------------------------------------------------- -// File: WaveFrontReader.h -// -// Code for loading basic mesh data from a WaveFront OBJ file -// -// http://en.wikipedia.org/wiki/Wavefront_.obj_file -// -// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF -// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO -// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -// PARTICULAR PURPOSE. -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// http://go.microsoft.com/fwlink/?LinkID=324981 -//-------------------------------------------------------------------------------------- - -#include - -#include -#include -#include -#include -#include - -#pragma warning(push) -#pragma warning(disable : 4005) -#include -#pragma warning(pop) - -#include -#include - -template -class WaveFrontReader -{ -public: - typedef index_t index_t; - - struct Vertex - { - DirectX::XMFLOAT3 position; - DirectX::XMFLOAT3 normal; - DirectX::XMFLOAT2 textureCoordinate; - }; - - WaveFrontReader() : hasNormals(false), hasTexcoords(false) {} - - HRESULT Load( _In_z_ const wchar_t* szFileName, bool ccw = true ) - { - Clear(); - - static const size_t MAX_POLY = 64; - - using namespace DirectX; - - std::wifstream InFile( szFileName ); - if( !InFile ) - return HRESULT_FROM_WIN32( ERROR_FILE_NOT_FOUND ); - - WCHAR fname[_MAX_FNAME]; - _wsplitpath_s( szFileName, nullptr, 0, nullptr, 0, fname, _MAX_FNAME, nullptr, 0 ); - - name = fname; - - std::vector positions; - std::vector normals; - std::vector texCoords; - - VertexCache vertexCache; - - Material defmat; - - wcscpy_s( defmat.strName, L"default" ); - materials.push_back( defmat ); - - uint32_t curSubset = 0; - - WCHAR strCommand[256] = {0}; - WCHAR strMaterialFilename[MAX_PATH] = {0}; - for( ;; ) - { - InFile >> strCommand; - if( !InFile ) - break; - - if( 0 == wcscmp( strCommand, L"#" ) ) - { - // Comment - } - else if( 0 == wcscmp( strCommand, L"v" ) ) - { - // Vertex Position - float x, y, z; - InFile >> x >> y >> z; - positions.push_back( XMFLOAT3( x, y, z ) ); - } - else if( 0 == wcscmp( strCommand, L"vt" ) ) - { - // Vertex TexCoord - float u, v; - InFile >> u >> v; - texCoords.push_back( XMFLOAT2( u, v ) ); - - hasTexcoords = true; - } - else if( 0 == wcscmp( strCommand, L"vn" ) ) - { - // Vertex Normal - float x, y, z; - InFile >> x >> y >> z; - normals.push_back( XMFLOAT3( x, y, z ) ); - - hasNormals = true; - } - else if( 0 == wcscmp( strCommand, L"f" ) ) - { - // Face - UINT iPosition, iTexCoord, iNormal; - Vertex vertex; - - DWORD faceIndex[ MAX_POLY ]; - size_t iFace = 0; - for(;;) - { - if ( iFace >= MAX_POLY ) - { - // Too many polygon verts for the reader - return E_FAIL; - } - - memset( &vertex, 0, sizeof( vertex ) ); - - // OBJ format uses 1-based arrays - InFile >> iPosition; - if ( iPosition > positions.size() ) - return E_FAIL; - - vertex.position = positions[ iPosition - 1 ]; - - if( '/' == InFile.peek() ) - { - InFile.ignore(); - - if( '/' != InFile.peek() ) - { - // Optional texture coordinate - InFile >> iTexCoord; - if ( iTexCoord > texCoords.size() ) - return E_FAIL; - - vertex.textureCoordinate = texCoords[ iTexCoord - 1 ]; - } - - if( '/' == InFile.peek() ) - { - InFile.ignore(); - - // Optional vertex normal - InFile >> iNormal; - if ( iNormal > normals.size() ) - return E_FAIL; - - vertex.normal = normals[ iNormal - 1 ]; - } - } - - // If a duplicate vertex doesn't exist, add this vertex to the Vertices - // list. Store the index in the Indices array. The Vertices and Indices - // lists will eventually become the Vertex Buffer and Index Buffer for - // the mesh. - DWORD index = AddVertex( iPosition, &vertex, vertexCache ); - if ( index == (DWORD)-1 ) - return E_OUTOFMEMORY; - -#pragma warning( suppress : 4127 ) - if ( sizeof(index_t) == 2 && ( index >= 0xFFFF ) ) - { - // Too many indices for 16-bit IB! - return E_FAIL; - } - else if ( sizeof(index_t) == 4 && ( index >= 0xFFFFFFFF ) ) - { - // Too many indices for 32-bit IB! - return E_FAIL; - } - - faceIndex[ iFace ] = index; - ++iFace; - - // Check for more face data or end of the face statement - bool faceEnd = false; - for(;;) - { - wchar_t p = InFile.peek(); - - if ( '\n' == p || !InFile ) - { - faceEnd = true; - break; - } - else if ( isdigit( p ) ) - break; - - InFile.ignore(); - } - - if ( faceEnd ) - break; - } - - if ( iFace < 3 ) - { - // Need at least 3 points to form a triangle - return E_FAIL; - } - - // Convert polygons to triangles - DWORD i0 = faceIndex[0]; - DWORD i1 = faceIndex[1]; - - for( size_t j = 2; j < iFace; ++ j ) - { - DWORD index = faceIndex[ j ]; - indices.push_back( static_cast( i0 ) ); - if ( ccw ) - { - indices.push_back( static_cast( i1 ) ); - indices.push_back( static_cast( index ) ); - } - else - { - indices.push_back( static_cast( index ) ); - indices.push_back( static_cast( i1 ) ); - } - - attributes.push_back( curSubset ); - - i1 = index; - } - - assert( attributes.size()*3 == indices.size() ); - } - else if( 0 == wcscmp( strCommand, L"mtllib" ) ) - { - // Material library - InFile >> strMaterialFilename; - } - else if( 0 == wcscmp( strCommand, L"usemtl" ) ) - { - // Material - WCHAR strName[MAX_PATH] = {0}; - InFile >> strName; - - bool bFound = false; - uint32_t count = 0; - for( auto it = materials.cbegin(); it != materials.cend(); ++it, ++count ) - { - if( 0 == wcscmp( it->strName, strName ) ) - { - bFound = true; - curSubset = count; - break; - } - } - - if( !bFound ) - { - Material mat; - curSubset = static_cast( materials.size() ); - wcscpy_s( mat.strName, MAX_PATH - 1, strName ); - materials.push_back( mat ); - } - } - else - { - // Unimplemented or unrecognized command - //OutputDebugStringW( strCommand ); - } - - InFile.ignore( 1000, '\n' ); - } - - // Cleanup - InFile.close(); - - BoundingBox::CreateFromPoints( bounds, positions.size(), &positions.front(), sizeof(XMFLOAT3) ); - - // If an associated material file was found, read that in as well. - if (0) //@jihoc if( *strMaterialFilename ) - { - WCHAR ext[_MAX_EXT]; - _wsplitpath_s( strMaterialFilename, nullptr, 0, nullptr, 0, fname, _MAX_FNAME, ext, _MAX_EXT ); - - WCHAR drive[_MAX_DRIVE]; - WCHAR dir[_MAX_DIR]; - _wsplitpath_s( szFileName, drive, _MAX_DRIVE, dir, _MAX_DIR, nullptr, 0, nullptr, 0 ); - - WCHAR szPath[ MAX_PATH ]; - _wmakepath_s( szPath, MAX_PATH, drive, dir, fname, ext ); - - HRESULT hr = LoadMTL( szPath ); - if ( FAILED(hr) ) - return hr; - } - - return S_OK; - } - - HRESULT LoadMTL( _In_z_ const wchar_t* szFileName ) - { - // Assumes MTL is in CWD along with OBJ - std::wifstream InFile( szFileName ); - if( !InFile ) - return HRESULT_FROM_WIN32( ERROR_FILE_NOT_FOUND ); - - auto curMaterial = materials.end(); - - WCHAR strCommand[256] = {0}; - for( ;; ) - { - InFile >> strCommand; - if( !InFile ) - break; - - if( 0 == wcscmp( strCommand, L"newmtl" ) ) - { - // Switching active materials - WCHAR strName[MAX_PATH] = {0}; - InFile >> strName; - - curMaterial = materials.end(); - for( auto it = materials.begin(); it != materials.end(); ++it ) - { - if( 0 == wcscmp( it->strName, strName ) ) - { - curMaterial = it; - break; - } - } - } - - // The rest of the commands rely on an active material - if( curMaterial == materials.end() ) - continue; - - if( 0 == wcscmp( strCommand, L"#" ) ) - { - // Comment - } - else if( 0 == wcscmp( strCommand, L"Ka" ) ) - { - // Ambient color - float r, g, b; - InFile >> r >> g >> b; - curMaterial->vAmbient = XMFLOAT3( r, g, b ); - } - else if( 0 == wcscmp( strCommand, L"Kd" ) ) - { - // Diffuse color - float r, g, b; - InFile >> r >> g >> b; - curMaterial->vDiffuse = XMFLOAT3( r, g, b ); - } - else if( 0 == wcscmp( strCommand, L"Ks" ) ) - { - // Specular color - float r, g, b; - InFile >> r >> g >> b; - curMaterial->vSpecular = XMFLOAT3( r, g, b ); - } - else if( 0 == wcscmp( strCommand, L"d" ) || - 0 == wcscmp( strCommand, L"Tr" ) ) - { - // Alpha - InFile >> curMaterial->fAlpha; - } - else if( 0 == wcscmp( strCommand, L"Ns" ) ) - { - // Shininess - int nShininess; - InFile >> nShininess; - curMaterial->nShininess = nShininess; - } - else if( 0 == wcscmp( strCommand, L"illum" ) ) - { - // Specular on/off - int illumination; - InFile >> illumination; - curMaterial->bSpecular = ( illumination == 2 ); - } - else if( 0 == wcscmp( strCommand, L"map_Kd" ) ) - { - // Texture - InFile >> curMaterial->strTexture; - } - else - { - // Unimplemented or unrecognized command - } - - InFile.ignore( 1000, L'\n' ); - } - - InFile.close(); - - return S_OK; - } - - void Clear() - { - vertices.clear(); - indices.clear(); - attributes.clear(); - materials.clear(); - name.clear(); - hasNormals = false; - hasTexcoords = false; - - bounds.Center.x = bounds.Center.y = bounds.Center.z = 0.f; - bounds.Extents.x = bounds.Extents.y = bounds.Extents.z = 0.f; - } - - HRESULT LoadVBO( _In_z_ const wchar_t* szFileName ) - { - Clear(); - - WCHAR fname[_MAX_FNAME]; - _wsplitpath_s( szFileName, nullptr, 0, nullptr, 0, fname, _MAX_FNAME, nullptr, 0 ); - - name = fname; - - Material defmat; - wcscpy_s( defmat.strName, L"default" ); - materials.push_back( defmat ); - - std::ifstream vboFile(szFileName, std::ifstream::in | std::ifstream::binary); - if ( !vboFile.is_open() ) - return HRESULT_FROM_WIN32( ERROR_FILE_NOT_FOUND ); - - hasNormals = hasTexcoords = true; - - uint32_t numVertices = 0; - uint32_t numIndices = 0; - - vboFile.read( reinterpret_cast( &numVertices ), sizeof(uint32_t ) ); - if ( !numVertices ) - return E_FAIL; - - vboFile.read( reinterpret_cast( &numIndices ), sizeof(uint32_t ) ); - if ( !numIndices ) - return E_FAIL; - - vertices.resize( numVertices ); - vboFile.read( reinterpret_cast( &vertices.front() ), sizeof(Vertex) * numVertices ); - -#pragma warning( suppress : 4127 ) - if ( sizeof( index_t ) == 2 ) - { - indices.resize( numIndices ); - vboFile.read( reinterpret_cast( &indices.front() ), sizeof(uint16_t) * numIndices ); - } - else - { - std::vector tmp; - tmp.resize( numIndices ); - vboFile.read( reinterpret_cast( &tmp.front() ), sizeof(uint16_t) * numIndices ); - - indices.reserve( numIndices ); - for( auto it = tmp.cbegin(); it != tmp.cend(); ++it ) - { - indices.push_back( *it ); - } - } - - BoundingBox::CreateFromPoints( bounds, vertices.size(), reinterpret_cast( &vertices.front() ), sizeof(Vertex) ); - - vboFile.close(); - - return S_OK; - } - - struct Material - { - DirectX::XMFLOAT3 vAmbient; - DirectX::XMFLOAT3 vDiffuse; - DirectX::XMFLOAT3 vSpecular; - uint32_t nShininess; - float fAlpha; - - bool bSpecular; - - WCHAR strName[MAX_PATH]; - WCHAR strTexture[MAX_PATH]; - - Material() : - vAmbient( 0.2f, 0.2f, 0.2f ), - vDiffuse( 0.8f, 0.8f, 0.8f ), - vSpecular( 1.0f, 1.0f, 1.0f ), - nShininess( 0 ), - fAlpha( 1.f ), - bSpecular( false ) - { memset(strName, 0, MAX_PATH); memset(strTexture, 0, MAX_PATH); } - }; - - std::vector vertices; - std::vector indices; - std::vector attributes; - std::vector materials; - - std::wstring name; - bool hasNormals; - bool hasTexcoords; - - DirectX::BoundingBox bounds; - -private: - typedef std::unordered_multimap VertexCache; - - DWORD AddVertex( UINT hash, Vertex* pVertex, VertexCache& cache ) - { - auto f = cache.equal_range( hash ); - - for( auto it = f.first; it != f.second; ++it ) - { - auto& tv = vertices[ it->second ]; - - if ( 0 == memcmp( pVertex, &tv, sizeof(Vertex) ) ) - { - return it->second; - } - } - - DWORD index = static_cast( vertices.size() ); - vertices.push_back( *pVertex ); - - VertexCache::value_type entry( hash, index ); - cache.insert( entry ); - return index; - } -}; diff --git a/samples/D3D12/src/d3dx12.h b/samples/D3D12/src/d3dx12.h deleted file mode 100644 index ba59dfc..0000000 --- a/samples/D3D12/src/d3dx12.h +++ /dev/null @@ -1,1508 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// Copyright (C) Microsoft Corporation. All Rights Reserved. -// -// File: d3dx12.h -// Content: D3DX12 utility library -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef __D3DX12_H__ -#define __D3DX12_H__ - -#include "d3d12.h" - -#if defined( __cplusplus ) - -struct CD3DX12_DEFAULT {}; -extern const DECLSPEC_SELECTANY CD3DX12_DEFAULT D3D12_DEFAULT; - -//------------------------------------------------------------------------------------------------ -inline bool operator==( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r ) -{ - return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width && - l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth; -} - -//------------------------------------------------------------------------------------------------ -inline bool operator!=( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r ) -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RECT : public D3D12_RECT -{ - CD3DX12_RECT() - {} - explicit CD3DX12_RECT( const D3D12_RECT& o ) : - D3D12_RECT( o ) - {} - explicit CD3DX12_RECT( - LONG Left, - LONG Top, - LONG Right, - LONG Bottom ) - { - left = Left; - top = Top; - right = Right; - bottom = Bottom; - } - ~CD3DX12_RECT() {} - operator const D3D12_RECT&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_BOX : public D3D12_BOX -{ - CD3DX12_BOX() - {} - explicit CD3DX12_BOX( const D3D12_BOX& o ) : - D3D12_BOX( o ) - {} - explicit CD3DX12_BOX( - LONG Left, - LONG Right ) - { - left = Left; - top = 0; - front = 0; - right = Right; - bottom = 1; - back = 1; - } - explicit CD3DX12_BOX( - LONG Left, - LONG Top, - LONG Right, - LONG Bottom ) - { - left = Left; - top = Top; - front = 0; - right = Right; - bottom = Bottom; - back = 1; - } - explicit CD3DX12_BOX( - LONG Left, - LONG Top, - LONG Front, - LONG Right, - LONG Bottom, - LONG Back ) - { - left = Left; - top = Top; - front = Front; - right = Right; - bottom = Bottom; - back = Back; - } - ~CD3DX12_BOX() {} - operator const D3D12_BOX&() const { return *this; } -}; -inline bool operator==( const D3D12_BOX& l, const D3D12_BOX& r ) -{ - return l.left == r.left && l.top == r.top && l.front == r.front && - l.right == r.right && l.bottom == r.bottom && l.back == r.back; -} -inline bool operator!=( const D3D12_BOX& l, const D3D12_BOX& r ) -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_DEPTH_STENCIL_DESC : public D3D12_DEPTH_STENCIL_DESC -{ - CD3DX12_DEPTH_STENCIL_DESC() - {} - explicit CD3DX12_DEPTH_STENCIL_DESC( const D3D12_DEPTH_STENCIL_DESC& o ) : - D3D12_DEPTH_STENCIL_DESC( o ) - {} - explicit CD3DX12_DEPTH_STENCIL_DESC( CD3DX12_DEFAULT ) - { - DepthEnable = TRUE; - DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; - DepthFunc = D3D12_COMPARISON_FUNC_LESS; - StencilEnable = FALSE; - StencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK; - StencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK; - const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp = - { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS }; - FrontFace = defaultStencilOp; - BackFace = defaultStencilOp; - } - explicit CD3DX12_DEPTH_STENCIL_DESC( - BOOL depthEnable, - D3D12_DEPTH_WRITE_MASK depthWriteMask, - D3D12_COMPARISON_FUNC depthFunc, - BOOL stencilEnable, - UINT8 stencilReadMask, - UINT8 stencilWriteMask, - D3D12_STENCIL_OP frontStencilFailOp, - D3D12_STENCIL_OP frontStencilDepthFailOp, - D3D12_STENCIL_OP frontStencilPassOp, - D3D12_COMPARISON_FUNC frontStencilFunc, - D3D12_STENCIL_OP backStencilFailOp, - D3D12_STENCIL_OP backStencilDepthFailOp, - D3D12_STENCIL_OP backStencilPassOp, - D3D12_COMPARISON_FUNC backStencilFunc ) - { - DepthEnable = depthEnable; - DepthWriteMask = depthWriteMask; - DepthFunc = depthFunc; - StencilEnable = stencilEnable; - StencilReadMask = stencilReadMask; - StencilWriteMask = stencilWriteMask; - FrontFace.StencilFailOp = frontStencilFailOp; - FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; - FrontFace.StencilPassOp = frontStencilPassOp; - FrontFace.StencilFunc = frontStencilFunc; - BackFace.StencilFailOp = backStencilFailOp; - BackFace.StencilDepthFailOp = backStencilDepthFailOp; - BackFace.StencilPassOp = backStencilPassOp; - BackFace.StencilFunc = backStencilFunc; - } - ~CD3DX12_DEPTH_STENCIL_DESC() {} - operator const D3D12_DEPTH_STENCIL_DESC&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_BLEND_DESC : public D3D12_BLEND_DESC -{ - CD3DX12_BLEND_DESC() - {} - explicit CD3DX12_BLEND_DESC( const D3D12_BLEND_DESC& o ) : - D3D12_BLEND_DESC( o ) - {} - explicit CD3DX12_BLEND_DESC( CD3DX12_DEFAULT ) - { - AlphaToCoverageEnable = FALSE; - IndependentBlendEnable = FALSE; - const D3D12_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = - { - FALSE,FALSE, - D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, - D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, - D3D12_LOGIC_OP_NOOP, - D3D12_COLOR_WRITE_ENABLE_ALL, - }; - for (UINT i = 0; i < D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) - RenderTarget[ i ] = defaultRenderTargetBlendDesc; - } - ~CD3DX12_BLEND_DESC() {} - operator const D3D12_BLEND_DESC&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RASTERIZER_DESC : public D3D12_RASTERIZER_DESC -{ - CD3DX12_RASTERIZER_DESC() - {} - explicit CD3DX12_RASTERIZER_DESC( const D3D12_RASTERIZER_DESC& o ) : - D3D12_RASTERIZER_DESC( o ) - {} - explicit CD3DX12_RASTERIZER_DESC( CD3DX12_DEFAULT ) - { - FillMode = D3D12_FILL_MODE_SOLID; - CullMode = D3D12_CULL_MODE_BACK; - FrontCounterClockwise = FALSE; - DepthBias = D3D12_DEFAULT_DEPTH_BIAS; - DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; - SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; - DepthClipEnable = TRUE; - MultisampleEnable = FALSE; - AntialiasedLineEnable = FALSE; - ForcedSampleCount = 0; - ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; - } - explicit CD3DX12_RASTERIZER_DESC( - D3D12_FILL_MODE fillMode, - D3D12_CULL_MODE cullMode, - BOOL frontCounterClockwise, - INT depthBias, - FLOAT depthBiasClamp, - FLOAT slopeScaledDepthBias, - BOOL depthClipEnable, - BOOL multisampleEnable, - BOOL antialiasedLineEnable, - UINT forcedSampleCount, - D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) - { - FillMode = fillMode; - CullMode = cullMode; - FrontCounterClockwise = frontCounterClockwise; - DepthBias = depthBias; - DepthBiasClamp = depthBiasClamp; - SlopeScaledDepthBias = slopeScaledDepthBias; - DepthClipEnable = depthClipEnable; - MultisampleEnable = multisampleEnable; - AntialiasedLineEnable = antialiasedLineEnable; - ForcedSampleCount = forcedSampleCount; - ConservativeRaster = conservativeRaster; - } - ~CD3DX12_RASTERIZER_DESC() {} - operator const D3D12_RASTERIZER_DESC&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_ALLOCATION_INFO : public D3D12_RESOURCE_ALLOCATION_INFO -{ - CD3DX12_RESOURCE_ALLOCATION_INFO() - {} - explicit CD3DX12_RESOURCE_ALLOCATION_INFO( const D3D12_RESOURCE_ALLOCATION_INFO& o ) : - D3D12_RESOURCE_ALLOCATION_INFO( o ) - {} - CD3DX12_RESOURCE_ALLOCATION_INFO( - UINT64 size, - UINT64 alignment ) - { - SizeInBytes = size; - Alignment = alignment; - } - operator const D3D12_RESOURCE_ALLOCATION_INFO&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_HEAP_PROPERTIES : public D3D12_HEAP_PROPERTIES -{ - CD3DX12_HEAP_PROPERTIES() - {} - explicit CD3DX12_HEAP_PROPERTIES(const D3D12_HEAP_PROPERTIES &o) : - D3D12_HEAP_PROPERTIES(o) - {} - CD3DX12_HEAP_PROPERTIES( - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - UINT creationNodeMask = 1, - UINT nodeMask = 1 ) - { - Type = D3D12_HEAP_TYPE_CUSTOM; - CPUPageProperty = cpuPageProperty; - MemoryPoolPreference = memoryPoolPreference; - CreationNodeMask = creationNodeMask; - VisibleNodeMask = nodeMask; - } - explicit CD3DX12_HEAP_PROPERTIES( - D3D12_HEAP_TYPE type, - UINT creationNodeMask = 1, - UINT nodeMask = 1 ) - { - Type = type; - CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; - MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; - CreationNodeMask = creationNodeMask; - VisibleNodeMask = nodeMask; - } - operator const D3D12_HEAP_PROPERTIES&() const { return *this; } - bool IsCPUAccessible() const - { - return Type == D3D12_HEAP_TYPE_UPLOAD || Type == D3D12_HEAP_TYPE_READBACK || (Type == D3D12_HEAP_TYPE_CUSTOM && - (CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE || CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_BACK)); - } -}; -inline bool operator==( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r ) -{ - return l.Type == r.Type && l.CPUPageProperty == r.CPUPageProperty && - l.MemoryPoolPreference == r.MemoryPoolPreference && - l.CreationNodeMask == r.CreationNodeMask && - l.VisibleNodeMask == r.VisibleNodeMask; -} -inline bool operator!=( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r ) -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_HEAP_DESC : public D3D12_HEAP_DESC -{ - CD3DX12_HEAP_DESC() - {} - explicit CD3DX12_HEAP_DESC(const D3D12_HEAP_DESC &o) : - D3D12_HEAP_DESC(o) - {} - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_HEAP_PROPERTIES properties, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = size; - Properties = properties; - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_HEAP_TYPE type, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = size; - Properties = CD3DX12_HEAP_PROPERTIES( type ); - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = size; - Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference ); - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_HEAP_PROPERTIES properties, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = properties; - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_HEAP_TYPE type, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = CD3DX12_HEAP_PROPERTIES( type ); - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference ); - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - operator const D3D12_HEAP_DESC&() const { return *this; } - bool IsCPUAccessible() const - { return static_cast< const CD3DX12_HEAP_PROPERTIES* >( &Properties )->IsCPUAccessible(); } -}; -inline bool operator==( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r ) -{ - return l.SizeInBytes == r.SizeInBytes && - l.Properties == r.Properties && - l.Alignment == r.Alignment && - l.Flags == r.Flags; -} -inline bool operator!=( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r ) -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_CLEAR_VALUE : public D3D12_CLEAR_VALUE -{ - CD3DX12_CLEAR_VALUE() - {} - explicit CD3DX12_CLEAR_VALUE(const D3D12_CLEAR_VALUE &o) : - D3D12_CLEAR_VALUE(o) - {} - CD3DX12_CLEAR_VALUE( - DXGI_FORMAT format, - const FLOAT color[4] ) - { - Format = format; - memcpy( Color, color, sizeof( Color ) ); - } - CD3DX12_CLEAR_VALUE( - DXGI_FORMAT format, - FLOAT depth, - UINT8 stencil ) - { - Format = format; - /* Use memcpy to preserve NAN values */ - memcpy( &DepthStencil.Depth, &depth, sizeof( depth ) ); - DepthStencil.Stencil = stencil; - } - operator const D3D12_CLEAR_VALUE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RANGE : public D3D12_RANGE -{ - CD3DX12_RANGE() - {} - explicit CD3DX12_RANGE(const D3D12_RANGE &o) : - D3D12_RANGE(o) - {} - CD3DX12_RANGE( - SIZE_T begin, - SIZE_T end ) - { - Begin = begin; - End = end; - } - operator const D3D12_RANGE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILED_RESOURCE_COORDINATE : public D3D12_TILED_RESOURCE_COORDINATE -{ - CD3DX12_TILED_RESOURCE_COORDINATE() - {} - explicit CD3DX12_TILED_RESOURCE_COORDINATE(const D3D12_TILED_RESOURCE_COORDINATE &o) : - D3D12_TILED_RESOURCE_COORDINATE(o) - {} - CD3DX12_TILED_RESOURCE_COORDINATE( - UINT x, - UINT y, - UINT z, - UINT subresource ) - { - X = x; - Y = y; - Z = z; - Subresource = subresource; - } - operator const D3D12_TILED_RESOURCE_COORDINATE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILE_REGION_SIZE : public D3D12_TILE_REGION_SIZE -{ - CD3DX12_TILE_REGION_SIZE() - {} - explicit CD3DX12_TILE_REGION_SIZE(const D3D12_TILE_REGION_SIZE &o) : - D3D12_TILE_REGION_SIZE(o) - {} - CD3DX12_TILE_REGION_SIZE( - UINT numTiles, - BOOL useBox, - UINT width, - UINT16 height, - UINT16 depth ) - { - NumTiles = numTiles; - UseBox = useBox; - Width = width; - Height = height; - Depth = depth; - } - operator const D3D12_TILE_REGION_SIZE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_SUBRESOURCE_TILING : public D3D12_SUBRESOURCE_TILING -{ - CD3DX12_SUBRESOURCE_TILING() - {} - explicit CD3DX12_SUBRESOURCE_TILING(const D3D12_SUBRESOURCE_TILING &o) : - D3D12_SUBRESOURCE_TILING(o) - {} - CD3DX12_SUBRESOURCE_TILING( - UINT widthInTiles, - UINT16 heightInTiles, - UINT16 depthInTiles, - UINT startTileIndexInOverallResource ) - { - WidthInTiles = widthInTiles; - HeightInTiles = heightInTiles; - DepthInTiles = depthInTiles; - StartTileIndexInOverallResource = startTileIndexInOverallResource; - } - operator const D3D12_SUBRESOURCE_TILING&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILE_SHAPE : public D3D12_TILE_SHAPE -{ - CD3DX12_TILE_SHAPE() - {} - explicit CD3DX12_TILE_SHAPE(const D3D12_TILE_SHAPE &o) : - D3D12_TILE_SHAPE(o) - {} - CD3DX12_TILE_SHAPE( - UINT widthInTexels, - UINT heightInTexels, - UINT depthInTexels ) - { - WidthInTexels = widthInTexels; - HeightInTexels = heightInTexels; - DepthInTexels = depthInTexels; - } - operator const D3D12_TILE_SHAPE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_BARRIER : public D3D12_RESOURCE_BARRIER -{ - CD3DX12_RESOURCE_BARRIER() - {} - explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) : - D3D12_RESOURCE_BARRIER(o) - {} - static inline CD3DX12_RESOURCE_BARRIER Transition( - _In_ ID3D12Resource* pResource, - D3D12_RESOURCE_STATES stateBefore, - D3D12_RESOURCE_STATES stateAfter, - UINT subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES, - D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) - { - CD3DX12_RESOURCE_BARRIER result; - ZeroMemory(&result, sizeof(result)); - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; - result.Flags = flags; - barrier.Transition.pResource = pResource; - barrier.Transition.StateBefore = stateBefore; - barrier.Transition.StateAfter = stateAfter; - barrier.Transition.Subresource = subresource; - return result; - } - static inline CD3DX12_RESOURCE_BARRIER Aliasing( - _In_ ID3D12Resource* pResourceBefore, - _In_ ID3D12Resource* pResourceAfter) - { - CD3DX12_RESOURCE_BARRIER result; - ZeroMemory(&result, sizeof(result)); - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_ALIASING; - barrier.Aliasing.pResourceBefore = pResourceBefore; - barrier.Aliasing.pResourceAfter = pResourceAfter; - return result; - } - static inline CD3DX12_RESOURCE_BARRIER UAV( - _In_ ID3D12Resource* pResource) - { - CD3DX12_RESOURCE_BARRIER result; - ZeroMemory(&result, sizeof(result)); - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV; - barrier.UAV.pResource = pResource; - return result; - } - operator const D3D12_RESOURCE_BARRIER&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_PACKED_MIP_INFO : public D3D12_PACKED_MIP_INFO -{ - CD3DX12_PACKED_MIP_INFO() - {} - explicit CD3DX12_PACKED_MIP_INFO(const D3D12_PACKED_MIP_INFO &o) : - D3D12_PACKED_MIP_INFO(o) - {} - CD3DX12_PACKED_MIP_INFO( - UINT8 numStandardMips, - UINT8 numPackedMips, - UINT numTilesForPackedMips, - UINT startTileIndexInOverallResource ) - { - NumStandardMips = numStandardMips; - NumPackedMips = numPackedMips; - NumTilesForPackedMips = numTilesForPackedMips; - StartTileIndexInOverallResource = startTileIndexInOverallResource; - } - operator const D3D12_PACKED_MIP_INFO&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_SUBRESOURCE_FOOTPRINT : public D3D12_SUBRESOURCE_FOOTPRINT -{ - CD3DX12_SUBRESOURCE_FOOTPRINT() - {} - explicit CD3DX12_SUBRESOURCE_FOOTPRINT(const D3D12_SUBRESOURCE_FOOTPRINT &o) : - D3D12_SUBRESOURCE_FOOTPRINT(o) - {} - CD3DX12_SUBRESOURCE_FOOTPRINT( - DXGI_FORMAT format, - UINT width, - UINT height, - UINT depth, - UINT rowPitch ) - { - Format = format; - Width = width; - Height = height; - Depth = depth; - RowPitch = rowPitch; - } - explicit CD3DX12_SUBRESOURCE_FOOTPRINT( - const D3D12_RESOURCE_DESC& resDesc, - UINT rowPitch ) - { - Format = resDesc.Format; - Width = UINT( resDesc.Width ); - Height = resDesc.Height; - Depth = (resDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? resDesc.DepthOrArraySize : 1); - RowPitch = rowPitch; - } - operator const D3D12_SUBRESOURCE_FOOTPRINT&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TEXTURE_COPY_LOCATION : public D3D12_TEXTURE_COPY_LOCATION -{ - CD3DX12_TEXTURE_COPY_LOCATION() - {} - explicit CD3DX12_TEXTURE_COPY_LOCATION(const D3D12_TEXTURE_COPY_LOCATION &o) : - D3D12_TEXTURE_COPY_LOCATION(o) - {} - CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes) { pResource = pRes; } - CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, D3D12_PLACED_SUBRESOURCE_FOOTPRINT const& Footprint) - { - pResource = pRes; - Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT; - PlacedFootprint = Footprint; - } - CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, UINT Sub) - { - pResource = pRes; - Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; - SubresourceIndex = Sub; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_DESCRIPTOR_RANGE : public D3D12_DESCRIPTOR_RANGE -{ - CD3DX12_DESCRIPTOR_RANGE() { } - explicit CD3DX12_DESCRIPTOR_RANGE(const D3D12_DESCRIPTOR_RANGE &o) : - D3D12_DESCRIPTOR_RANGE(o) - {} - CD3DX12_DESCRIPTOR_RANGE( - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) - { - Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); - } - - inline void Init( - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) - { - Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); - } - - static inline void Init( - _Out_ D3D12_DESCRIPTOR_RANGE &range, - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) - { - range.RangeType = rangeType; - range.NumDescriptors = numDescriptors; - range.BaseShaderRegister = baseShaderRegister; - range.RegisterSpace = registerSpace; - range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_DESCRIPTOR_TABLE : public D3D12_ROOT_DESCRIPTOR_TABLE -{ - CD3DX12_ROOT_DESCRIPTOR_TABLE() {} - explicit CD3DX12_ROOT_DESCRIPTOR_TABLE(const D3D12_ROOT_DESCRIPTOR_TABLE &o) : - D3D12_ROOT_DESCRIPTOR_TABLE(o) - {} - CD3DX12_ROOT_DESCRIPTOR_TABLE( - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) - { - Init(numDescriptorRanges, _pDescriptorRanges); - } - - inline void Init( - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) - { - Init(*this, numDescriptorRanges, _pDescriptorRanges); - } - - static inline void Init( - _Out_ D3D12_ROOT_DESCRIPTOR_TABLE &rootDescriptorTable, - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) - { - rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; - rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_CONSTANTS : public D3D12_ROOT_CONSTANTS -{ - CD3DX12_ROOT_CONSTANTS() {} - explicit CD3DX12_ROOT_CONSTANTS(const D3D12_ROOT_CONSTANTS &o) : - D3D12_ROOT_CONSTANTS(o) - {} - CD3DX12_ROOT_CONSTANTS( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(num32BitValues, shaderRegister, registerSpace); - } - - inline void Init( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(*this, num32BitValues, shaderRegister, registerSpace); - } - - static inline void Init( - _Out_ D3D12_ROOT_CONSTANTS &rootConstants, - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) - { - rootConstants.Num32BitValues = num32BitValues; - rootConstants.ShaderRegister = shaderRegister; - rootConstants.RegisterSpace = registerSpace; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_DESCRIPTOR : public D3D12_ROOT_DESCRIPTOR -{ - CD3DX12_ROOT_DESCRIPTOR() {} - explicit CD3DX12_ROOT_DESCRIPTOR(const D3D12_ROOT_DESCRIPTOR &o) : - D3D12_ROOT_DESCRIPTOR(o) - {} - CD3DX12_ROOT_DESCRIPTOR( - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(shaderRegister, registerSpace); - } - - inline void Init( - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(*this, shaderRegister, registerSpace); - } - - static inline void Init(_Out_ D3D12_ROOT_DESCRIPTOR &table, UINT shaderRegister, UINT registerSpace = 0) - { - table.ShaderRegister = shaderRegister; - table.RegisterSpace = registerSpace; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_PARAMETER : public D3D12_ROOT_PARAMETER -{ - CD3DX12_ROOT_PARAMETER() {} - explicit CD3DX12_ROOT_PARAMETER(const D3D12_ROOT_PARAMETER &o) : - D3D12_ROOT_PARAMETER(o) - {} - - static inline void InitAsDescriptorTable( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT numDescriptorRanges, - _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR_TABLE::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); - } - - static inline void InitAsConstants( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); - } - - static inline void InitAsConstantBufferView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - static inline void InitAsShaderResourceView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - static inline void InitAsUnorderedAccessView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - inline void InitAsDescriptorTable( - UINT numDescriptorRanges, - _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); - } - - inline void InitAsConstants( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); - } - - inline void InitAsConstantBufferView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsConstantBufferView(*this, shaderRegister, registerSpace, visibility); - } - - inline void InitAsShaderResourceView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsShaderResourceView(*this, shaderRegister, registerSpace, visibility); - } - - inline void InitAsUnorderedAccessView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, visibility); - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_STATIC_SAMPLER_DESC : public D3D12_STATIC_SAMPLER_DESC -{ - CD3DX12_STATIC_SAMPLER_DESC() {} - explicit CD3DX12_STATIC_SAMPLER_DESC(const D3D12_STATIC_SAMPLER_DESC &o) : - D3D12_STATIC_SAMPLER_DESC(o) - {} - CD3DX12_STATIC_SAMPLER_DESC( - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) - { - Init( - shaderRegister, - filter, - addressU, - addressV, - addressW, - mipLODBias, - maxAnisotropy, - comparisonFunc, - borderColor, - minLOD, - maxLOD, - shaderVisibility, - registerSpace); - } - - static inline void Init( - _Out_ D3D12_STATIC_SAMPLER_DESC &samplerDesc, - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) - { - samplerDesc.ShaderRegister = shaderRegister; - samplerDesc.Filter = filter; - samplerDesc.AddressU = addressU; - samplerDesc.AddressV = addressV; - samplerDesc.AddressW = addressW; - samplerDesc.MipLODBias = mipLODBias; - samplerDesc.MaxAnisotropy = maxAnisotropy; - samplerDesc.ComparisonFunc = comparisonFunc; - samplerDesc.BorderColor = borderColor; - samplerDesc.MinLOD = minLOD; - samplerDesc.MaxLOD = maxLOD; - samplerDesc.ShaderVisibility = shaderVisibility; - samplerDesc.RegisterSpace = registerSpace; - } - inline void Init( - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) - { - Init( - *this, - shaderRegister, - filter, - addressU, - addressV, - addressW, - mipLODBias, - maxAnisotropy, - comparisonFunc, - borderColor, - minLOD, - maxLOD, - shaderVisibility, - registerSpace); - } - -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_SIGNATURE_DESC : public D3D12_ROOT_SIGNATURE_DESC -{ - CD3DX12_ROOT_SIGNATURE_DESC() {} - explicit CD3DX12_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) : - D3D12_ROOT_SIGNATURE_DESC(o) - {} - CD3DX12_ROOT_SIGNATURE_DESC( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) - { - Init(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - CD3DX12_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) - { - Init(0, NULL, 0, NULL, D3D12_ROOT_SIGNATURE_FLAG_NONE); - } - - inline void Init( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) - { - Init(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - - static inline void Init( - _Out_ D3D12_ROOT_SIGNATURE_DESC &desc, - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) - { - desc.NumParameters = numParameters; - desc.pParameters = _pParameters; - desc.NumStaticSamplers = numStaticSamplers; - desc.pStaticSamplers = _pStaticSamplers; - desc.Flags = flags; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_CPU_DESCRIPTOR_HANDLE : public D3D12_CPU_DESCRIPTOR_HANDLE -{ - CD3DX12_CPU_DESCRIPTOR_HANDLE() {} - explicit CD3DX12_CPU_DESCRIPTOR_HANDLE(const D3D12_CPU_DESCRIPTOR_HANDLE &o) : - D3D12_CPU_DESCRIPTOR_HANDLE(o) - {} - CD3DX12_CPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } - CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) - { - InitOffsetted(other, offsetScaledByIncrementSize); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) - { - ptr += offsetInDescriptors * descriptorIncrementSize; - return *this; - } - CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) - { - ptr += offsetScaledByIncrementSize; - return *this; - } - bool operator==(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) - { - return (ptr == other.ptr); - } - bool operator!=(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) - { - return (ptr != other.ptr); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE &operator=(const D3D12_CPU_DESCRIPTOR_HANDLE &other) - { - ptr = other.ptr; - return *this; - } - - inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - InitOffsetted(*this, base, offsetScaledByIncrementSize); - } - - inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); - } - - static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - handle.ptr = base.ptr + offsetScaledByIncrementSize; - } - - static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_GPU_DESCRIPTOR_HANDLE : public D3D12_GPU_DESCRIPTOR_HANDLE -{ - CD3DX12_GPU_DESCRIPTOR_HANDLE() {} - explicit CD3DX12_GPU_DESCRIPTOR_HANDLE(const D3D12_GPU_DESCRIPTOR_HANDLE &o) : - D3D12_GPU_DESCRIPTOR_HANDLE(o) - {} - CD3DX12_GPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } - CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) - { - InitOffsetted(other, offsetScaledByIncrementSize); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) - { - ptr += offsetInDescriptors * descriptorIncrementSize; - return *this; - } - CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) - { - ptr += offsetScaledByIncrementSize; - return *this; - } - inline bool operator==(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) - { - return (ptr == other.ptr); - } - inline bool operator!=(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) - { - return (ptr != other.ptr); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE &operator=(const D3D12_GPU_DESCRIPTOR_HANDLE &other) - { - ptr = other.ptr; - return *this; - } - - inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - InitOffsetted(*this, base, offsetScaledByIncrementSize); - } - - inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); - } - - static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - handle.ptr = base.ptr + offsetScaledByIncrementSize; - } - - static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; - } -}; - -//------------------------------------------------------------------------------------------------ -inline UINT D3D12CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT PlaneSlice, UINT MipLevels, UINT ArraySize ) -{ - return MipSlice + ArraySlice * MipLevels + PlaneSlice * MipLevels * ArraySize; -} - -//------------------------------------------------------------------------------------------------ -template -inline void D3D12DecomposeSubresource( UINT Subresource, UINT MipLevels, UINT ArraySize, _Out_ T& MipSlice, _Out_ U& ArraySlice, _Out_ V& PlaneSlice ) -{ - MipSlice = static_cast(Subresource % MipLevels); - ArraySlice = static_cast((Subresource / MipLevels) % ArraySize); - PlaneSlice = static_cast(Subresource / (MipLevels * ArraySize)); -} - -//------------------------------------------------------------------------------------------------ -inline UINT8 D3D12GetFormatPlaneCount( - _In_ ID3D12Device* pDevice, - DXGI_FORMAT Format - ) -{ - D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = {Format}; - if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo)))) - { - return 0; - } - return formatInfo.PlaneCount; -} - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_DESC : public D3D12_RESOURCE_DESC -{ - CD3DX12_RESOURCE_DESC() - {} - explicit CD3DX12_RESOURCE_DESC( const D3D12_RESOURCE_DESC& o ) : - D3D12_RESOURCE_DESC( o ) - {} - CD3DX12_RESOURCE_DESC( - D3D12_RESOURCE_DIMENSION dimension, - UINT64 alignment, - UINT64 width, - UINT height, - UINT16 depthOrArraySize, - UINT16 mipLevels, - DXGI_FORMAT format, - UINT sampleCount, - UINT sampleQuality, - D3D12_TEXTURE_LAYOUT layout, - D3D12_RESOURCE_FLAGS flags ) - { - Dimension = dimension; - Alignment = alignment; - Width = width; - Height = height; - DepthOrArraySize = depthOrArraySize; - MipLevels = mipLevels; - Format = format; - SampleDesc.Count = sampleCount; - SampleDesc.Quality = sampleQuality; - Layout = layout; - Flags = flags; - } - static inline CD3DX12_RESOURCE_DESC Buffer( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE ) - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes, - 1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags ); - } - static inline CD3DX12_RESOURCE_DESC Buffer( - UINT64 width, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - UINT64 alignment = 0 ) - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1, - DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags ); - } - static inline CD3DX12_RESOURCE_DESC Tex1D( - DXGI_FORMAT format, - UINT64 width, - UINT16 arraySize = 1, - UINT16 mipLevels = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize, - mipLevels, format, 1, 0, layout, flags ); - } - static inline CD3DX12_RESOURCE_DESC Tex2D( - DXGI_FORMAT format, - UINT64 width, - UINT height, - UINT16 arraySize = 1, - UINT16 mipLevels = 0, - UINT sampleCount = 1, - UINT sampleQuality = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize, - mipLevels, format, sampleCount, sampleQuality, layout, flags ); - } - static inline CD3DX12_RESOURCE_DESC Tex3D( - DXGI_FORMAT format, - UINT64 width, - UINT height, - UINT16 depth, - UINT16 mipLevels = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth, - mipLevels, format, 1, 0, layout, flags ); - } - inline UINT16 Depth() const - { return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); } - inline UINT16 ArraySize() const - { return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); } - inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const - { return D3D12GetFormatPlaneCount(pDevice, Format); } - inline UINT Subresources(_In_ ID3D12Device* pDevice) const - { return MipLevels * ArraySize() * PlaneCount(pDevice); } - inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice) - { return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); } - operator const D3D12_RESOURCE_DESC&() const { return *this; } -}; -inline bool operator==( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r ) -{ - return l.Dimension == r.Dimension && - l.Alignment == r.Alignment && - l.Width == r.Width && - l.Height == r.Height && - l.DepthOrArraySize == r.DepthOrArraySize && - l.MipLevels == r.MipLevels && - l.Format == r.Format && - l.SampleDesc.Count == r.SampleDesc.Count && - l.SampleDesc.Quality == r.SampleDesc.Quality && - l.Layout == r.Layout && - l.Flags == r.Flags; -} -inline bool operator!=( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r ) -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -// Row-by-row memcpy -inline void MemcpySubresource( - _In_ const D3D12_MEMCPY_DEST* pDest, - _In_ const D3D12_SUBRESOURCE_DATA* pSrc, - SIZE_T RowSizeInBytes, - UINT NumRows, - UINT NumSlices) -{ - for (UINT z = 0; z < NumSlices; ++z) - { - BYTE* pDestSlice = reinterpret_cast(pDest->pData) + pDest->SlicePitch * z; - const BYTE* pSrcSlice = reinterpret_cast(pSrc->pData) + pSrc->SlicePitch * z; - for (UINT y = 0; y < NumRows; ++y) - { - memcpy(pDestSlice + pDest->RowPitch * y, - pSrcSlice + pSrc->RowPitch * y, - RowSizeInBytes); - } - } -} - -//------------------------------------------------------------------------------------------------ -// Returns required size of a buffer to be used for data upload -inline UINT64 GetRequiredIntermediateSize( - _In_ ID3D12Resource* pDestinationResource, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources) -{ - D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); - UINT64 RequiredSize = 0; - - ID3D12Device* pDevice; - pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize); - pDevice->Release(); - - return RequiredSize; -} - -//------------------------------------------------------------------------------------------------ -// All arrays must be populated (e.g. by calling GetCopyableFootprints) -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 RequiredSize, - _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, - _In_reads_(NumSubresources) const UINT* pNumRows, - _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes, - _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) -{ - // Minor validation - D3D12_RESOURCE_DESC IntermediateDesc = pIntermediate->GetDesc(); - D3D12_RESOURCE_DESC DestinationDesc = pDestinationResource->GetDesc(); - if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER || - IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset || - RequiredSize > (SIZE_T)-1 || - (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && - (FirstSubresource != 0 || NumSubresources != 1))) - { - return 0; - } - - BYTE* pData; - HRESULT hr = pIntermediate->Map(0, NULL, reinterpret_cast(&pData)); - if (FAILED(hr)) - { - return 0; - } - - for (UINT i = 0; i < NumSubresources; ++i) - { - if (pRowSizesInBytes[i] > (SIZE_T)-1) return 0; - D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, pLayouts[i].Footprint.RowPitch * pNumRows[i] }; - MemcpySubresource(&DestData, &pSrcData[i], (SIZE_T)pRowSizesInBytes[i], pNumRows[i], pLayouts[i].Footprint.Depth); - } - pIntermediate->Unmap(0, NULL); - - if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) - { - CD3DX12_BOX SrcBox( UINT( pLayouts[0].Offset ), UINT( pLayouts[0].Offset + pLayouts[0].Footprint.Width ) ); - pCmdList->CopyBufferRegion( - pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width); - } - else - { - for (UINT i = 0; i < NumSubresources; ++i) - { - CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource); - CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]); - pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr); - } - } - return RequiredSize; -} - -//------------------------------------------------------------------------------------------------ -// Heap-allocating UpdateSubresources implementation -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - UINT64 IntermediateOffset, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData) -{ - UINT64 RequiredSize = 0; - UINT64 MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources; - if (MemToAlloc > SIZE_MAX) - { - return 0; - } - void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast(MemToAlloc)); - if (pMem == NULL) - { - return 0; - } - D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts = reinterpret_cast(pMem); - UINT64* pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources); - UINT* pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources); - - D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); - ID3D12Device* pDevice; - pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize); - pDevice->Release(); - - UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pSrcData); - HeapFree(GetProcessHeap(), 0, pMem); - return Result; -} - -//------------------------------------------------------------------------------------------------ -// Stack-allocating UpdateSubresources implementation -template -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - UINT64 IntermediateOffset, - _In_range_(0, MaxSubresources) UINT FirstSubresource, - _In_range_(1, MaxSubresources - FirstSubresource) UINT NumSubresources, - _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData) -{ - UINT64 RequiredSize = 0; - D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources]; - UINT NumRows[MaxSubresources]; - UINT64 RowSizesInBytes[MaxSubresources]; - - D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); - ID3D12Device* pDevice; - pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize); - pDevice->Release(); - - return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData); -} - -//------------------------------------------------------------------------------------------------ -inline bool D3D12IsLayoutOpaque( D3D12_TEXTURE_LAYOUT Layout ) -{ return Layout == D3D12_TEXTURE_LAYOUT_UNKNOWN || Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE; } - -//------------------------------------------------------------------------------------------------ -inline ID3D12CommandList * const * CommandListCast(ID3D12GraphicsCommandList * const * pp) -{ - // This cast is useful for passing strongly typed command list pointers into - // ExecuteCommandLists. - // This cast is valid as long as the const-ness is respected. D3D12 APIs do - // respect the const-ness of their arguments. - return reinterpret_cast(pp); -} - - -#endif // defined( __cplusplus ) - -#endif //__D3DX12_H__ - - - diff --git a/samples/D3D12/src/d3dx12p.h b/samples/D3D12/src/d3dx12p.h deleted file mode 100644 index 40535a8..0000000 --- a/samples/D3D12/src/d3dx12p.h +++ /dev/null @@ -1,1590 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// Copyright (C) Microsoft Corporation. All Rights Reserved. -// -// File: d3dx12.h -// Content: D3DX12 utility library -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef __D3DX12_H__ -#define __D3DX12_H__ - -#include "d3d12p.h" - -#if defined( __cplusplus ) - -struct CD3DX12_DEFAULT {}; -extern const DECLSPEC_SELECTANY CD3DX12_DEFAULT D3D12_DEFAULT; - -//------------------------------------------------------------------------------------------------ -inline bool operator==( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r ) -{ - return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width && - l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth; -} - -//------------------------------------------------------------------------------------------------ -inline bool operator!=( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r ) -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RECT : public D3D12_RECT -{ - CD3DX12_RECT() - {} - explicit CD3DX12_RECT( const D3D12_RECT& o ) : - D3D12_RECT( o ) - {} - explicit CD3DX12_RECT( - LONG Left, - LONG Top, - LONG Right, - LONG Bottom ) - { - left = Left; - top = Top; - right = Right; - bottom = Bottom; - } - ~CD3DX12_RECT() {} - operator const D3D12_RECT&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_BOX : public D3D12_BOX -{ - CD3DX12_BOX() - {} - explicit CD3DX12_BOX( const D3D12_BOX& o ) : - D3D12_BOX( o ) - {} - explicit CD3DX12_BOX( - LONG Left, - LONG Right ) - { - left = Left; - top = 0; - front = 0; - right = Right; - bottom = 1; - back = 1; - } - explicit CD3DX12_BOX( - LONG Left, - LONG Top, - LONG Right, - LONG Bottom ) - { - left = Left; - top = Top; - front = 0; - right = Right; - bottom = Bottom; - back = 1; - } - explicit CD3DX12_BOX( - LONG Left, - LONG Top, - LONG Front, - LONG Right, - LONG Bottom, - LONG Back ) - { - left = Left; - top = Top; - front = Front; - right = Right; - bottom = Bottom; - back = Back; - } - ~CD3DX12_BOX() {} - operator const D3D12_BOX&() const { return *this; } -}; -inline bool operator==( const D3D12_BOX& l, const D3D12_BOX& r ) -{ - return l.left == r.left && l.top == r.top && l.front == r.front && - l.right == r.right && l.bottom == r.bottom && l.back == r.back; -} -inline bool operator!=( const D3D12_BOX& l, const D3D12_BOX& r ) -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_DEPTH_STENCIL_DESC : public D3D12_DEPTH_STENCIL_DESC -{ - CD3DX12_DEPTH_STENCIL_DESC() - {} - explicit CD3DX12_DEPTH_STENCIL_DESC( const D3D12_DEPTH_STENCIL_DESC& o ) : - D3D12_DEPTH_STENCIL_DESC( o ) - {} - explicit CD3DX12_DEPTH_STENCIL_DESC( CD3DX12_DEFAULT ) - { - DepthEnable = TRUE; - DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; - DepthFunc = D3D12_COMPARISON_FUNC_LESS; - StencilEnable = FALSE; - StencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK; - StencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK; - const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp = - { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS }; - FrontFace = defaultStencilOp; - BackFace = defaultStencilOp; - } - explicit CD3DX12_DEPTH_STENCIL_DESC( - BOOL depthEnable, - D3D12_DEPTH_WRITE_MASK depthWriteMask, - D3D12_COMPARISON_FUNC depthFunc, - BOOL stencilEnable, - UINT8 stencilReadMask, - UINT8 stencilWriteMask, - D3D12_STENCIL_OP frontStencilFailOp, - D3D12_STENCIL_OP frontStencilDepthFailOp, - D3D12_STENCIL_OP frontStencilPassOp, - D3D12_COMPARISON_FUNC frontStencilFunc, - D3D12_STENCIL_OP backStencilFailOp, - D3D12_STENCIL_OP backStencilDepthFailOp, - D3D12_STENCIL_OP backStencilPassOp, - D3D12_COMPARISON_FUNC backStencilFunc ) - { - DepthEnable = depthEnable; - DepthWriteMask = depthWriteMask; - DepthFunc = depthFunc; - StencilEnable = stencilEnable; - StencilReadMask = stencilReadMask; - StencilWriteMask = stencilWriteMask; - FrontFace.StencilFailOp = frontStencilFailOp; - FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; - FrontFace.StencilPassOp = frontStencilPassOp; - FrontFace.StencilFunc = frontStencilFunc; - BackFace.StencilFailOp = backStencilFailOp; - BackFace.StencilDepthFailOp = backStencilDepthFailOp; - BackFace.StencilPassOp = backStencilPassOp; - BackFace.StencilFunc = backStencilFunc; - } - ~CD3DX12_DEPTH_STENCIL_DESC() {} - operator const D3D12_DEPTH_STENCIL_DESC&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_BLEND_DESC : public D3D12_BLEND_DESC -{ - CD3DX12_BLEND_DESC() - {} - explicit CD3DX12_BLEND_DESC( const D3D12_BLEND_DESC& o ) : - D3D12_BLEND_DESC( o ) - {} - explicit CD3DX12_BLEND_DESC( CD3DX12_DEFAULT ) - { - AlphaToCoverageEnable = FALSE; - IndependentBlendEnable = FALSE; - const D3D12_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = - { - FALSE,FALSE, - D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, - D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, - D3D12_LOGIC_OP_NOOP, - D3D12_COLOR_WRITE_ENABLE_ALL, - }; - for (UINT i = 0; i < D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) - RenderTarget[ i ] = defaultRenderTargetBlendDesc; - } - ~CD3DX12_BLEND_DESC() {} - operator const D3D12_BLEND_DESC&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RASTERIZER_DESC : public D3D12_RASTERIZER_DESC -{ - CD3DX12_RASTERIZER_DESC() - {} - explicit CD3DX12_RASTERIZER_DESC( const D3D12_RASTERIZER_DESC& o ) : - D3D12_RASTERIZER_DESC( o ) - {} - explicit CD3DX12_RASTERIZER_DESC( CD3DX12_DEFAULT ) - { - FillMode = D3D12_FILL_MODE_SOLID; - CullMode = D3D12_CULL_MODE_BACK; - FrontCounterClockwise = FALSE; - DepthBias = D3D12_DEFAULT_DEPTH_BIAS; - DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; - SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; - DepthClipEnable = TRUE; - MultisampleEnable = FALSE; - AntialiasedLineEnable = FALSE; - ForcedSampleCount = 0; - ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; - } - explicit CD3DX12_RASTERIZER_DESC( - D3D12_FILL_MODE fillMode, - D3D12_CULL_MODE cullMode, - BOOL frontCounterClockwise, - INT depthBias, - FLOAT depthBiasClamp, - FLOAT slopeScaledDepthBias, - BOOL depthClipEnable, - BOOL multisampleEnable, - BOOL antialiasedLineEnable, - UINT forcedSampleCount, - D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) - { - FillMode = fillMode; - CullMode = cullMode; - FrontCounterClockwise = frontCounterClockwise; - DepthBias = depthBias; - DepthBiasClamp = depthBiasClamp; - SlopeScaledDepthBias = slopeScaledDepthBias; - DepthClipEnable = depthClipEnable; - MultisampleEnable = multisampleEnable; - AntialiasedLineEnable = antialiasedLineEnable; - ForcedSampleCount = forcedSampleCount; - ConservativeRaster = conservativeRaster; - } - ~CD3DX12_RASTERIZER_DESC() {} - operator const D3D12_RASTERIZER_DESC&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_ALLOCATION_INFO : public D3D12_RESOURCE_ALLOCATION_INFO -{ - CD3DX12_RESOURCE_ALLOCATION_INFO() - {} - explicit CD3DX12_RESOURCE_ALLOCATION_INFO( const D3D12_RESOURCE_ALLOCATION_INFO& o ) : - D3D12_RESOURCE_ALLOCATION_INFO( o ) - {} - CD3DX12_RESOURCE_ALLOCATION_INFO( - UINT64 size, - UINT64 alignment ) - { - SizeInBytes = size; - Alignment = alignment; - } - operator const D3D12_RESOURCE_ALLOCATION_INFO&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_HEAP_PROPERTIES : public D3D12_HEAP_PROPERTIES -{ - CD3DX12_HEAP_PROPERTIES() - {} - explicit CD3DX12_HEAP_PROPERTIES(const D3D12_HEAP_PROPERTIES &o) : - D3D12_HEAP_PROPERTIES(o) - {} - CD3DX12_HEAP_PROPERTIES( - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - UINT creationNodeMask = 1, - UINT nodeMask = 1 ) - { - Type = D3D12_HEAP_TYPE_CUSTOM; - CPUPageProperty = cpuPageProperty; - MemoryPoolPreference = memoryPoolPreference; - CreationNodeMask = creationNodeMask; - VisibleNodeMask = nodeMask; - } - explicit CD3DX12_HEAP_PROPERTIES( - D3D12_HEAP_TYPE type, - UINT creationNodeMask = 1, - UINT nodeMask = 1 ) - { - Type = type; - CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; - MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; - CreationNodeMask = creationNodeMask; - VisibleNodeMask = nodeMask; - } - operator const D3D12_HEAP_PROPERTIES&() const { return *this; } - bool IsCPUAccessible() const - { - return Type == D3D12_HEAP_TYPE_UPLOAD || Type == D3D12_HEAP_TYPE_READBACK || (Type == D3D12_HEAP_TYPE_CUSTOM && - (CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE || CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_BACK)); - } -}; -inline bool operator==( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r ) -{ - return l.Type == r.Type && l.CPUPageProperty == r.CPUPageProperty && - l.MemoryPoolPreference == r.MemoryPoolPreference && - l.CreationNodeMask == r.CreationNodeMask && - l.VisibleNodeMask == r.VisibleNodeMask; -} -inline bool operator!=( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r ) -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_HEAP_DESC : public D3D12_HEAP_DESC -{ - CD3DX12_HEAP_DESC() - {} - explicit CD3DX12_HEAP_DESC(const D3D12_HEAP_DESC &o) : - D3D12_HEAP_DESC(o) - {} - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_HEAP_PROPERTIES properties, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = size; - Properties = properties; - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_HEAP_TYPE type, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = size; - Properties = CD3DX12_HEAP_PROPERTIES( type ); - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = size; - Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference ); - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_HEAP_PROPERTIES properties, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = properties; - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_HEAP_TYPE type, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = CD3DX12_HEAP_PROPERTIES( type ); - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference ); - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - operator const D3D12_HEAP_DESC&() const { return *this; } - bool IsCPUAccessible() const - { return static_cast< const CD3DX12_HEAP_PROPERTIES* >( &Properties )->IsCPUAccessible(); } -}; -inline bool operator==( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r ) -{ - return l.SizeInBytes == r.SizeInBytes && - l.Properties == r.Properties && - l.Alignment == r.Alignment && - l.Flags == r.Flags; -} -inline bool operator!=( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r ) -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_CLEAR_VALUE : public D3D12_CLEAR_VALUE -{ - CD3DX12_CLEAR_VALUE() - {} - explicit CD3DX12_CLEAR_VALUE(const D3D12_CLEAR_VALUE &o) : - D3D12_CLEAR_VALUE(o) - {} - CD3DX12_CLEAR_VALUE( - DXGI_FORMAT format, - const FLOAT color[4] ) - { - Format = format; - memcpy( Color, color, sizeof( Color ) ); - } - CD3DX12_CLEAR_VALUE( - DXGI_FORMAT format, - FLOAT depth, - UINT8 stencil ) - { - Format = format; - /* Use memcpy to preserve NAN values */ - memcpy( &DepthStencil.Depth, &depth, sizeof( depth ) ); - DepthStencil.Stencil = stencil; - } - operator const D3D12_CLEAR_VALUE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RANGE : public D3D12_RANGE -{ - CD3DX12_RANGE() - {} - explicit CD3DX12_RANGE(const D3D12_RANGE &o) : - D3D12_RANGE(o) - {} - CD3DX12_RANGE( - SIZE_T begin, - SIZE_T end ) - { - Begin = begin; - End = end; - } - operator const D3D12_RANGE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILED_RESOURCE_COORDINATE : public D3D12_TILED_RESOURCE_COORDINATE -{ - CD3DX12_TILED_RESOURCE_COORDINATE() - {} - explicit CD3DX12_TILED_RESOURCE_COORDINATE(const D3D12_TILED_RESOURCE_COORDINATE &o) : - D3D12_TILED_RESOURCE_COORDINATE(o) - {} - CD3DX12_TILED_RESOURCE_COORDINATE( - UINT x, - UINT y, - UINT z, - UINT subresource ) - { - X = x; - Y = y; - Z = z; - Subresource = subresource; - } - operator const D3D12_TILED_RESOURCE_COORDINATE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILE_REGION_SIZE : public D3D12_TILE_REGION_SIZE -{ - CD3DX12_TILE_REGION_SIZE() - {} - explicit CD3DX12_TILE_REGION_SIZE(const D3D12_TILE_REGION_SIZE &o) : - D3D12_TILE_REGION_SIZE(o) - {} - CD3DX12_TILE_REGION_SIZE( - UINT numTiles, - BOOL useBox, - UINT width, - UINT16 height, - UINT16 depth ) - { - NumTiles = numTiles; - UseBox = useBox; - Width = width; - Height = height; - Depth = depth; - } - operator const D3D12_TILE_REGION_SIZE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_SUBRESOURCE_TILING : public D3D12_SUBRESOURCE_TILING -{ - CD3DX12_SUBRESOURCE_TILING() - {} - explicit CD3DX12_SUBRESOURCE_TILING(const D3D12_SUBRESOURCE_TILING &o) : - D3D12_SUBRESOURCE_TILING(o) - {} - CD3DX12_SUBRESOURCE_TILING( - UINT widthInTiles, - UINT16 heightInTiles, - UINT16 depthInTiles, - UINT startTileIndexInOverallResource ) - { - WidthInTiles = widthInTiles; - HeightInTiles = heightInTiles; - DepthInTiles = depthInTiles; - StartTileIndexInOverallResource = startTileIndexInOverallResource; - } - operator const D3D12_SUBRESOURCE_TILING&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILE_SHAPE : public D3D12_TILE_SHAPE -{ - CD3DX12_TILE_SHAPE() - {} - explicit CD3DX12_TILE_SHAPE(const D3D12_TILE_SHAPE &o) : - D3D12_TILE_SHAPE(o) - {} - CD3DX12_TILE_SHAPE( - UINT widthInTexels, - UINT heightInTexels, - UINT depthInTexels ) - { - WidthInTexels = widthInTexels; - HeightInTexels = heightInTexels; - DepthInTexels = depthInTexels; - } - operator const D3D12_TILE_SHAPE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_BARRIER : public D3D12_RESOURCE_BARRIER -{ - CD3DX12_RESOURCE_BARRIER() - {} - explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) : - D3D12_RESOURCE_BARRIER(o) - {} - static inline CD3DX12_RESOURCE_BARRIER Transition( - _In_ ID3D12Resource* pResource, - D3D12_RESOURCE_STATES stateBefore, - D3D12_RESOURCE_STATES stateAfter, - UINT subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES, - D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) - { - CD3DX12_RESOURCE_BARRIER result; - ZeroMemory(&result, sizeof(result)); - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; - result.Flags = flags; - barrier.Transition.pResource = pResource; - barrier.Transition.StateBefore = stateBefore; - barrier.Transition.StateAfter = stateAfter; - barrier.Transition.Subresource = subresource; - return result; - } - static inline CD3DX12_RESOURCE_BARRIER Aliasing( - _In_ ID3D12Resource* pResourceBefore, - _In_ ID3D12Resource* pResourceAfter) - { - CD3DX12_RESOURCE_BARRIER result; - ZeroMemory(&result, sizeof(result)); - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_ALIASING; - barrier.Aliasing.pResourceBefore = pResourceBefore; - barrier.Aliasing.pResourceAfter = pResourceAfter; - return result; - } - static inline CD3DX12_RESOURCE_BARRIER UAV( - _In_ ID3D12Resource* pResource) - { - CD3DX12_RESOURCE_BARRIER result; - ZeroMemory(&result, sizeof(result)); - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV; - barrier.UAV.pResource = pResource; - return result; - } - operator const D3D12_RESOURCE_BARRIER&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_PACKED_MIP_INFO : public D3D12_PACKED_MIP_INFO -{ - CD3DX12_PACKED_MIP_INFO() - {} - explicit CD3DX12_PACKED_MIP_INFO(const D3D12_PACKED_MIP_INFO &o) : - D3D12_PACKED_MIP_INFO(o) - {} - CD3DX12_PACKED_MIP_INFO( - UINT8 numStandardMips, - UINT8 numPackedMips, - UINT numTilesForPackedMips, - UINT startTileIndexInOverallResource ) - { - NumStandardMips = numStandardMips; - NumPackedMips = numPackedMips; - NumTilesForPackedMips = numTilesForPackedMips; - StartTileIndexInOverallResource = startTileIndexInOverallResource; - } - operator const D3D12_PACKED_MIP_INFO&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_SUBRESOURCE_FOOTPRINT : public D3D12_SUBRESOURCE_FOOTPRINT -{ - CD3DX12_SUBRESOURCE_FOOTPRINT() - {} - explicit CD3DX12_SUBRESOURCE_FOOTPRINT(const D3D12_SUBRESOURCE_FOOTPRINT &o) : - D3D12_SUBRESOURCE_FOOTPRINT(o) - {} - CD3DX12_SUBRESOURCE_FOOTPRINT( - DXGI_FORMAT format, - UINT width, - UINT height, - UINT depth, - UINT rowPitch ) - { - Format = format; - Width = width; - Height = height; - Depth = depth; - RowPitch = rowPitch; - } - explicit CD3DX12_SUBRESOURCE_FOOTPRINT( - const D3D12_RESOURCE_DESC& resDesc, - UINT rowPitch ) - { - Format = resDesc.Format; - Width = UINT( resDesc.Width ); - Height = resDesc.Height; - Depth = (resDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? resDesc.DepthOrArraySize : 1); - RowPitch = rowPitch; - } - operator const D3D12_SUBRESOURCE_FOOTPRINT&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TEXTURE_COPY_LOCATION : public D3D12_TEXTURE_COPY_LOCATION -{ - CD3DX12_TEXTURE_COPY_LOCATION() - {} - explicit CD3DX12_TEXTURE_COPY_LOCATION(const D3D12_TEXTURE_COPY_LOCATION &o) : - D3D12_TEXTURE_COPY_LOCATION(o) - {} - CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes) { pResource = pRes; } - CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, D3D12_PLACED_SUBRESOURCE_FOOTPRINT const& Footprint) - { - pResource = pRes; - Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT; - PlacedFootprint = Footprint; - } - CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, UINT Sub) - { - pResource = pRes; - Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; - SubresourceIndex = Sub; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_DESCRIPTOR_RANGE : public D3D12_DESCRIPTOR_RANGE -{ - CD3DX12_DESCRIPTOR_RANGE() { } - explicit CD3DX12_DESCRIPTOR_RANGE(const D3D12_DESCRIPTOR_RANGE &o) : - D3D12_DESCRIPTOR_RANGE(o) - {} - CD3DX12_DESCRIPTOR_RANGE( - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) - { - Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); - } - - inline void Init( - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) - { - Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); - } - - static inline void Init( - _Out_ D3D12_DESCRIPTOR_RANGE &range, - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) - { - range.RangeType = rangeType; - range.NumDescriptors = numDescriptors; - range.BaseShaderRegister = baseShaderRegister; - range.RegisterSpace = registerSpace; - range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_DESCRIPTOR_TABLE : public D3D12_ROOT_DESCRIPTOR_TABLE -{ - CD3DX12_ROOT_DESCRIPTOR_TABLE() {} - explicit CD3DX12_ROOT_DESCRIPTOR_TABLE(const D3D12_ROOT_DESCRIPTOR_TABLE &o) : - D3D12_ROOT_DESCRIPTOR_TABLE(o) - {} - CD3DX12_ROOT_DESCRIPTOR_TABLE( - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) - { - Init(numDescriptorRanges, _pDescriptorRanges); - } - - inline void Init( - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) - { - Init(*this, numDescriptorRanges, _pDescriptorRanges); - } - - static inline void Init( - _Out_ D3D12_ROOT_DESCRIPTOR_TABLE &rootDescriptorTable, - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) - { - rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; - rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_CONSTANTS : public D3D12_ROOT_CONSTANTS -{ - CD3DX12_ROOT_CONSTANTS() {} - explicit CD3DX12_ROOT_CONSTANTS(const D3D12_ROOT_CONSTANTS &o) : - D3D12_ROOT_CONSTANTS(o) - {} - CD3DX12_ROOT_CONSTANTS( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(num32BitValues, shaderRegister, registerSpace); - } - - inline void Init( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(*this, num32BitValues, shaderRegister, registerSpace); - } - - static inline void Init( - _Out_ D3D12_ROOT_CONSTANTS &rootConstants, - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) - { - rootConstants.Num32BitValues = num32BitValues; - rootConstants.ShaderRegister = shaderRegister; - rootConstants.RegisterSpace = registerSpace; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_DESCRIPTOR : public D3D12_ROOT_DESCRIPTOR -{ - CD3DX12_ROOT_DESCRIPTOR() {} - explicit CD3DX12_ROOT_DESCRIPTOR(const D3D12_ROOT_DESCRIPTOR &o) : - D3D12_ROOT_DESCRIPTOR(o) - {} - CD3DX12_ROOT_DESCRIPTOR( - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(shaderRegister, registerSpace); - } - - inline void Init( - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(*this, shaderRegister, registerSpace); - } - - static inline void Init(_Out_ D3D12_ROOT_DESCRIPTOR &table, UINT shaderRegister, UINT registerSpace = 0) - { - table.ShaderRegister = shaderRegister; - table.RegisterSpace = registerSpace; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_PARAMETER : public D3D12_ROOT_PARAMETER -{ - CD3DX12_ROOT_PARAMETER() {} - explicit CD3DX12_ROOT_PARAMETER(const D3D12_ROOT_PARAMETER &o) : - D3D12_ROOT_PARAMETER(o) - {} - - static inline void InitAsDescriptorTable( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT numDescriptorRanges, - _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR_TABLE::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); - } - - static inline void InitAsConstants( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); - } - - static inline void InitAsConstantBufferView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - static inline void InitAsShaderResourceView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - static inline void InitAsUnorderedAccessView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - inline void InitAsDescriptorTable( - UINT numDescriptorRanges, - _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); - } - - inline void InitAsConstants( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); - } - - inline void InitAsConstantBufferView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsConstantBufferView(*this, shaderRegister, registerSpace, visibility); - } - - inline void InitAsShaderResourceView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsShaderResourceView(*this, shaderRegister, registerSpace, visibility); - } - - inline void InitAsUnorderedAccessView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, visibility); - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_STATIC_SAMPLER_DESC : public D3D12_STATIC_SAMPLER_DESC -{ - CD3DX12_STATIC_SAMPLER_DESC() {} - explicit CD3DX12_STATIC_SAMPLER_DESC(const D3D12_STATIC_SAMPLER_DESC &o) : - D3D12_STATIC_SAMPLER_DESC(o) - {} - CD3DX12_STATIC_SAMPLER_DESC( - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) - { - Init( - shaderRegister, - filter, - addressU, - addressV, - addressW, - mipLODBias, - maxAnisotropy, - comparisonFunc, - borderColor, - minLOD, - maxLOD, - shaderVisibility, - registerSpace); - } - - static inline void Init( - _Out_ D3D12_STATIC_SAMPLER_DESC &samplerDesc, - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) - { - samplerDesc.ShaderRegister = shaderRegister; - samplerDesc.Filter = filter; - samplerDesc.AddressU = addressU; - samplerDesc.AddressV = addressV; - samplerDesc.AddressW = addressW; - samplerDesc.MipLODBias = mipLODBias; - samplerDesc.MaxAnisotropy = maxAnisotropy; - samplerDesc.ComparisonFunc = comparisonFunc; - samplerDesc.BorderColor = borderColor; - samplerDesc.MinLOD = minLOD; - samplerDesc.MaxLOD = maxLOD; - samplerDesc.ShaderVisibility = shaderVisibility; - samplerDesc.RegisterSpace = registerSpace; - } - inline void Init( - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) - { - Init( - *this, - shaderRegister, - filter, - addressU, - addressV, - addressW, - mipLODBias, - maxAnisotropy, - comparisonFunc, - borderColor, - minLOD, - maxLOD, - shaderVisibility, - registerSpace); - } - -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_SIGNATURE_DESC : public D3D12_ROOT_SIGNATURE_DESC -{ - CD3DX12_ROOT_SIGNATURE_DESC() {} - explicit CD3DX12_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) : - D3D12_ROOT_SIGNATURE_DESC(o) - {} - CD3DX12_ROOT_SIGNATURE_DESC( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) - { - Init(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - CD3DX12_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) - { - Init(0, NULL, 0, NULL, D3D12_ROOT_SIGNATURE_FLAG_NONE); - } - - inline void Init( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) - { - Init(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - - static inline void Init( - _Out_ D3D12_ROOT_SIGNATURE_DESC &desc, - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) - { - desc.NumParameters = numParameters; - desc.pParameters = _pParameters; - desc.NumStaticSamplers = numStaticSamplers; - desc.pStaticSamplers = _pStaticSamplers; - desc.Flags = flags; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_CPU_DESCRIPTOR_HANDLE : public D3D12_CPU_DESCRIPTOR_HANDLE -{ - CD3DX12_CPU_DESCRIPTOR_HANDLE() {} - explicit CD3DX12_CPU_DESCRIPTOR_HANDLE(const D3D12_CPU_DESCRIPTOR_HANDLE &o) : - D3D12_CPU_DESCRIPTOR_HANDLE(o) - {} - CD3DX12_CPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } - CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) - { - InitOffsetted(other, offsetScaledByIncrementSize); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) - { - ptr += offsetInDescriptors * descriptorIncrementSize; - return *this; - } - CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) - { - ptr += offsetScaledByIncrementSize; - return *this; - } - bool operator==(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) - { - return (ptr == other.ptr); - } - bool operator!=(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) - { - return (ptr != other.ptr); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE &operator=(const D3D12_CPU_DESCRIPTOR_HANDLE &other) - { - ptr = other.ptr; - return *this; - } - - inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - InitOffsetted(*this, base, offsetScaledByIncrementSize); - } - - inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); - } - - static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - handle.ptr = base.ptr + offsetScaledByIncrementSize; - } - - static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_GPU_DESCRIPTOR_HANDLE : public D3D12_GPU_DESCRIPTOR_HANDLE -{ - CD3DX12_GPU_DESCRIPTOR_HANDLE() {} - explicit CD3DX12_GPU_DESCRIPTOR_HANDLE(const D3D12_GPU_DESCRIPTOR_HANDLE &o) : - D3D12_GPU_DESCRIPTOR_HANDLE(o) - {} - CD3DX12_GPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } - CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) - { - InitOffsetted(other, offsetScaledByIncrementSize); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) - { - ptr += offsetInDescriptors * descriptorIncrementSize; - return *this; - } - CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) - { - ptr += offsetScaledByIncrementSize; - return *this; - } - inline bool operator==(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) - { - return (ptr == other.ptr); - } - inline bool operator!=(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) - { - return (ptr != other.ptr); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE &operator=(const D3D12_GPU_DESCRIPTOR_HANDLE &other) - { - ptr = other.ptr; - return *this; - } - - inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - InitOffsetted(*this, base, offsetScaledByIncrementSize); - } - - inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); - } - - static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - handle.ptr = base.ptr + offsetScaledByIncrementSize; - } - - static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; - } -}; - -//------------------------------------------------------------------------------------------------ -inline UINT D3D12CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT PlaneSlice, UINT MipLevels, UINT ArraySize ) -{ - return MipSlice + ArraySlice * MipLevels + PlaneSlice * MipLevels * ArraySize; -} - -//------------------------------------------------------------------------------------------------ -template -inline void D3D12DecomposeSubresource( UINT Subresource, UINT MipLevels, UINT ArraySize, _Out_ T& MipSlice, _Out_ U& ArraySlice, _Out_ V& PlaneSlice ) -{ - MipSlice = static_cast(Subresource % MipLevels); - ArraySlice = static_cast((Subresource / MipLevels) % ArraySize); - PlaneSlice = static_cast(Subresource / (MipLevels * ArraySize)); -} - -//------------------------------------------------------------------------------------------------ -inline UINT8 D3D12GetFormatPlaneCount( - _In_ ID3D12Device* pDevice, - DXGI_FORMAT Format - ) -{ - D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = {Format}; - if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo)))) - { - return 0; - } - return formatInfo.PlaneCount; -} - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_DESC : public D3D12_RESOURCE_DESC -{ - CD3DX12_RESOURCE_DESC() - {} - explicit CD3DX12_RESOURCE_DESC( const D3D12_RESOURCE_DESC& o ) : - D3D12_RESOURCE_DESC( o ) - {} - CD3DX12_RESOURCE_DESC( - D3D12_RESOURCE_DIMENSION dimension, - UINT64 alignment, - UINT64 width, - UINT height, - UINT16 depthOrArraySize, - UINT16 mipLevels, - DXGI_FORMAT format, - UINT sampleCount, - UINT sampleQuality, - D3D12_TEXTURE_LAYOUT layout, - D3D12_RESOURCE_FLAGS flags ) - { - Dimension = dimension; - Alignment = alignment; - Width = width; - Height = height; - DepthOrArraySize = depthOrArraySize; - MipLevels = mipLevels; - Format = format; - SampleDesc.Count = sampleCount; - SampleDesc.Quality = sampleQuality; - Layout = layout; - Flags = flags; - } - static inline CD3DX12_RESOURCE_DESC Buffer( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE ) - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes, - 1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags ); - } - static inline CD3DX12_RESOURCE_DESC Buffer( - UINT64 width, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - UINT64 alignment = 0 ) - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1, - DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags ); - } - static inline CD3DX12_RESOURCE_DESC Tex1D( - DXGI_FORMAT format, - UINT64 width, - UINT16 arraySize = 1, - UINT16 mipLevels = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize, - mipLevels, format, 1, 0, layout, flags ); - } - static inline CD3DX12_RESOURCE_DESC Tex2D( - DXGI_FORMAT format, - UINT64 width, - UINT height, - UINT16 arraySize = 1, - UINT16 mipLevels = 0, - UINT sampleCount = 1, - UINT sampleQuality = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize, - mipLevels, format, sampleCount, sampleQuality, layout, flags ); - } - static inline CD3DX12_RESOURCE_DESC Tex3D( - DXGI_FORMAT format, - UINT64 width, - UINT height, - UINT16 depth, - UINT16 mipLevels = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0 ) - { - return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth, - mipLevels, format, 1, 0, layout, flags ); - } - inline UINT16 Depth() const - { return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); } - inline UINT16 ArraySize() const - { return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); } - inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const - { return D3D12GetFormatPlaneCount(pDevice, Format); } - inline UINT Subresources(_In_ ID3D12Device* pDevice) const - { return MipLevels * ArraySize() * PlaneCount(pDevice); } - inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice) - { return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); } - operator const D3D12_RESOURCE_DESC&() const { return *this; } -}; -inline bool operator==( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r ) -{ - return l.Dimension == r.Dimension && - l.Alignment == r.Alignment && - l.Width == r.Width && - l.Height == r.Height && - l.DepthOrArraySize == r.DepthOrArraySize && - l.MipLevels == r.MipLevels && - l.Format == r.Format && - l.SampleDesc.Count == r.SampleDesc.Count && - l.SampleDesc.Quality == r.SampleDesc.Quality && - l.Layout == r.Layout && - l.Flags == r.Flags; -} -inline bool operator!=( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r ) -{ return !( l == r ); } - -//------------------------------------------------------------------------------------------------ -// Row-by-row memcpy -inline void MemcpySubresource( - _In_ const D3D12_MEMCPY_DEST* pDest, - _In_ const D3D12_SUBRESOURCE_DATA* pSrc, - SIZE_T RowSizeInBytes, - UINT NumRows, - UINT NumSlices) -{ - for (UINT z = 0; z < NumSlices; ++z) - { - BYTE* pDestSlice = reinterpret_cast(pDest->pData) + pDest->SlicePitch * z; - const BYTE* pSrcSlice = reinterpret_cast(pSrc->pData) + pSrc->SlicePitch * z; - for (UINT y = 0; y < NumRows; ++y) - { - memcpy(pDestSlice + pDest->RowPitch * y, - pSrcSlice + pSrc->RowPitch * y, - RowSizeInBytes); - } - } -} - -//------------------------------------------------------------------------------------------------ -// Returns required size of a buffer to be used for data upload -inline UINT64 GetRequiredIntermediateSize( - _In_ ID3D12Resource* pDestinationResource, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources) -{ - D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); - UINT64 RequiredSize = 0; - - ID3D12Device* pDevice; - pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize); - pDevice->Release(); - - return RequiredSize; -} - -//------------------------------------------------------------------------------------------------ -// All arrays must be populated (e.g. by calling GetCopyableFootprints) -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - UINT64 RequiredSize, - _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, - _In_reads_(NumSubresources) const UINT* pNumRows, - _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes, - _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) -{ - // Minor validation - D3D12_RESOURCE_DESC IntermediateDesc = pIntermediate->GetDesc(); - D3D12_RESOURCE_DESC DestinationDesc = pDestinationResource->GetDesc(); - if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER || - IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset || - RequiredSize > (SIZE_T)-1 || - (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && - (FirstSubresource != 0 || NumSubresources != 1))) - { - return 0; - } - - BYTE* pData; - HRESULT hr = pIntermediate->Map(0, NULL, reinterpret_cast(&pData)); - if (FAILED(hr)) - { - return 0; - } - - for (UINT i = 0; i < NumSubresources; ++i) - { - if (pRowSizesInBytes[i] > (SIZE_T)-1) return 0; - D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, pLayouts[i].Footprint.RowPitch * pNumRows[i] }; - MemcpySubresource(&DestData, &pSrcData[i], (SIZE_T)pRowSizesInBytes[i], pNumRows[i], pLayouts[i].Footprint.Depth); - } - pIntermediate->Unmap(0, NULL); - - if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) - { - CD3DX12_BOX SrcBox( UINT( pLayouts[0].Offset ), UINT( pLayouts[0].Offset + pLayouts[0].Footprint.Width ) ); - pCmdList->CopyBufferRegion( - pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width); - } - else - { - for (UINT i = 0; i < NumSubresources; ++i) - { - CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource); - CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]); - pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr); - } - } - return RequiredSize; -} - -//------------------------------------------------------------------------------------------------ -// Heap-allocating UpdateSubresources implementation -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - UINT64 IntermediateOffset, - _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, - _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData) -{ - UINT64 RequiredSize = 0; - UINT64 MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources; - if (MemToAlloc > SIZE_MAX) - { - return 0; - } - void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast(MemToAlloc)); - if (pMem == NULL) - { - return 0; - } - D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts = reinterpret_cast(pMem); - UINT64* pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources); - UINT* pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources); - - D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); - ID3D12Device* pDevice; - pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize); - pDevice->Release(); - - UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pSrcData); - HeapFree(GetProcessHeap(), 0, pMem); - return Result; -} - -//------------------------------------------------------------------------------------------------ -// Stack-allocating UpdateSubresources implementation -template -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - UINT64 IntermediateOffset, - _In_range_(0, MaxSubresources) UINT FirstSubresource, - _In_range_(1, MaxSubresources - FirstSubresource) UINT NumSubresources, - _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData) -{ - UINT64 RequiredSize = 0; - D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources]; - UINT NumRows[MaxSubresources]; - UINT64 RowSizesInBytes[MaxSubresources]; - - D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); - ID3D12Device* pDevice; - pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize); - pDevice->Release(); - - return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData); -} - -//------------------------------------------------------------------------------------------------ -inline bool D3D12IsLayoutOpaque( D3D12_TEXTURE_LAYOUT Layout ) -{ return Layout == D3D12_TEXTURE_LAYOUT_UNKNOWN || Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE; } - -//------------------------------------------------------------------------------------------------ -inline ID3D12CommandList * const * CommandListCast(ID3D12GraphicsCommandList * const * pp) -{ - // This cast is useful for passing strongly typed command list pointers into - // ExecuteCommandLists. - // This cast is valid as long as the const-ness is respected. D3D12 APIs do - // respect the const-ness of their arguments. - return reinterpret_cast(pp); -} - -// -//------------------------------------------------------------------------------------------------ -inline const char* D3D12ToStr( const D3D12_RESOURCE_DIMENSION& val ) -{ - switch( val ) - { - case D3D12_RESOURCE_DIMENSION_UNKNOWN: return "D3D12_RESOURCE_DIMENSION_UNKNOWN"; - case D3D12_RESOURCE_DIMENSION_BUFFER: return "D3D12_RESOURCE_DIMENSION_BUFFER"; - case D3D12_RESOURCE_DIMENSION_TEXTURE1D: return "D3D12_RESOURCE_DIMENSION_TEXTURE1D"; - case D3D12_RESOURCE_DIMENSION_TEXTURE2D: return "D3D12_RESOURCE_DIMENSION_TEXTURE2D"; - case D3D12_RESOURCE_DIMENSION_TEXTURE3D: return "D3D12_RESOURCE_DIMENSION_TEXTURE3D"; - case D3D12_RESOURCE_DIMENSION_MAX_VALID: return "D3D12_RESOURCE_DIMENSION_MAX_VALID"; - default: return "Unrecognized"; - } -} - -//------------------------------------------------------------------------------------------------ -inline const char* D3D12ToStr( const D3D12_TEXTURE_LAYOUT& val ) -{ - switch( val ) - { - case D3D12_TEXTURE_LAYOUT_UNKNOWN: return "D3D12_TEXTURE_LAYOUT_UNKNOWN"; - case D3D12_TEXTURE_LAYOUT_ROW_MAJOR: return "D3D12_TEXTURE_LAYOUT_ROW_MAJOR"; - case D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE: return "D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE"; - case D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE: return "D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE"; - default: return "Unrecognized"; - } -} - -//------------------------------------------------------------------------------------------------ -inline const char* D3D12ToStr( const D3D12_RESOURCE_HEAP_TIER& val ) -{ - switch( val ) - { - case D3D12_RESOURCE_HEAP_TIER_1: return "D3D12_RESOURCE_HEAP_TIER_1"; - case D3D12_RESOURCE_HEAP_TIER_2: return "D3D12_RESOURCE_HEAP_TIER_2"; - default: return "Unrecognized"; - } -} - -//------------------------------------------------------------------------------------------------ -inline const char* D3D12ToStr( const D3D12_HEAP_TYPE& val ) -{ - switch( val ) - { - case D3D12_HEAP_TYPE_UNKNOWN: return "D3D12_HEAP_TYPE_UNKNOWN"; - case D3D12_HEAP_TYPE_DEFAULT: return "D3D12_HEAP_TYPE_DEFAULT"; - case D3D12_HEAP_TYPE_UPLOAD: return "D3D12_HEAP_TYPE_UPLOAD"; - case D3D12_HEAP_TYPE_READBACK: return "D3D12_HEAP_TYPE_READBACK"; - case D3D12_HEAP_TYPE_CUSTOM: return "D3D12_HEAP_TYPE_CUSTOM"; - case D3D12_HEAP_TYPE_MAX_VALID: return "D3D12_HEAP_TYPE_MAX_VALID"; - default: return "Unrecognized"; - } -} - -//------------------------------------------------------------------------------------------------ -inline const char* D3D12ToStr( const D3D12_CPU_PAGE_PROPERTY& val ) -{ - switch( val ) - { - case D3D12_CPU_PAGE_PROPERTY_UNKNOWN: return "D3D12_CPU_PAGE_PROPERTY_UNKNOWN"; - case D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE: return "D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE"; - case D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE: return "D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE"; - case D3D12_CPU_PAGE_PROPERTY_WRITE_BACK: return "D3D12_CPU_PAGE_PROPERTY_WRITE_BACK"; - case D3D12_CPU_PAGE_PROPERTY_MAX_VALID: return "D3D12_CPU_PAGE_PROPERTY_MAX_VALID"; - default: return "Unrecognized"; - } -} - -//------------------------------------------------------------------------------------------------ -inline const char* D3D12ToStr( const D3D12_MEMORY_POOL& val ) -{ - switch( val ) - { - case D3D12_MEMORY_POOL_UNKNOWN: return "D3D12_MEMORY_POOL_UNKNOWN"; - case D3D12_MEMORY_POOL_L0: return "D3D12_MEMORY_POOL_L0"; - case D3D12_MEMORY_POOL_L1: return "D3D12_MEMORY_POOL_L1"; - case D3D12_MEMORY_POOL_MAX_VALID: return "D3D12_MEMORY_POOL_MAX_VALID"; - default: return "Unrecognized"; - } -} -// - -#endif // defined( __cplusplus ) - -#endif //__D3DX12_H__ - - - diff --git a/samples/dual_layer/D3D11/media/Meshes/cube.obj b/samples/dual_layer/D3D11/media/Meshes/cube.obj new file mode 100644 index 0000000..7339cae --- /dev/null +++ b/samples/dual_layer/D3D11/media/Meshes/cube.obj @@ -0,0 +1,28 @@ +o Cube +v 9.900001 9.900000 19.800001 +v 9.900001 -9.900001 19.800001 +v -9.900002 -9.899999 19.800001 +v -9.899997 9.900004 19.800001 +v 9.900005 9.899995 0.000000 +v 9.899994 -9.900006 0.000000 +v -9.900004 -9.899997 0.000000 +v -9.900000 9.900001 0.000000 +vn -0.0000 0.0000 -1.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 -1.0000 0.0000 +s off +f 2//1 4//1 1//1 +f 8//2 6//2 5//2 +f 5//3 2//3 1//3 +f 6//4 3//4 2//4 +f 7//5 4//5 3//5 +f 1//6 8//6 5//6 +f 2//1 3//1 4//1 +f 8//2 7//2 6//2 +f 5//3 6//3 2//3 +f 6//4 7//4 3//4 +f 7//5 8//5 4//5 +f 1//6 4//6 8//6 diff --git a/samples/dual_layer/D3D11/media/Meshes/shaderBall.obj b/samples/dual_layer/D3D11/media/Meshes/shaderBall.obj new file mode 100644 index 0000000..4e57fb6 --- /dev/null +++ b/samples/dual_layer/D3D11/media/Meshes/shaderBall.obj @@ -0,0 +1,101517 @@ +# Source: https://github.com/derkreature/ShaderBall +# License: https://github.com/derkreature/ShaderBall/blob/master/LICENSE + +o ShaderBall +v 0.762625 -0.029111 1.973589 +v 0.769852 -0.029092 1.960994 +v 0.770320 -0.000211 1.961160 +v 0.763046 -0.000179 1.973839 +v 0.761402 -0.057967 1.972861 +v 0.768551 -0.057903 1.960410 +v 0.777023 -0.029014 1.948431 +v 0.777528 -0.000277 1.948511 +v 0.775653 -0.057693 1.947992 +v 0.759385 -0.086657 1.971662 +v 0.756591 -0.115117 1.970000 +v 0.763635 -0.114951 1.957772 +v 0.766461 -0.086546 1.959354 +v 0.770665 -0.114447 1.945591 +v 0.773504 -0.086200 1.947083 +v 0.783976 -0.112087 1.921205 +v 0.786759 -0.084511 1.922484 +v 0.780159 -0.085526 1.934709 +v 0.777337 -0.113493 1.933320 +v 0.788949 -0.056616 1.923080 +v 0.782337 -0.057270 1.935462 +v 0.790380 -0.028533 1.923211 +v 0.790934 -0.000417 1.923122 +v 0.784287 -0.000355 1.935744 +v 0.783749 -0.028834 1.935747 +v 0.721503 -0.289239 1.949130 +v 0.731288 -0.288590 1.932490 +v 0.742193 -0.243924 1.941706 +v 0.733633 -0.244466 1.956345 +v 0.705634 -0.338307 1.939692 +v 0.716940 -0.337554 1.920561 +v 0.741056 -0.286735 1.915938 +v 0.750758 -0.242395 1.927153 +v 0.728206 -0.335367 1.901521 +v 0.662831 -0.440541 1.914234 +v 0.677510 -0.439560 1.889444 +v 0.698972 -0.388579 1.906097 +v 0.685970 -0.389427 1.927996 +v 0.692129 -0.436701 1.864766 +v 0.711922 -0.386071 1.884294 +v 0.737427 -0.376123 1.841341 +v 0.724776 -0.381924 1.862685 +v 0.706657 -0.432003 1.840318 +v 0.720975 -0.425444 1.816179 +v 0.750465 -0.326750 1.864044 +v 0.739396 -0.331762 1.882655 +v 0.760343 -0.279406 1.883349 +v 0.767456 -0.236228 1.898383 +v 0.759203 -0.239836 1.912697 +v 0.750781 -0.283683 1.899547 +v 0.769699 -0.273907 1.867413 +v 0.775663 -0.231632 1.884361 +v 0.761253 -0.320291 1.845721 +v 0.778795 -0.267216 1.851804 +v 0.783569 -0.226000 1.870585 +v 0.771852 -0.312485 1.827821 +v 0.734993 -0.417026 1.792446 +v 0.749788 -0.368669 1.820345 +v 0.748797 -0.406881 1.769271 +v 0.761938 -0.359674 1.799839 +v 0.785143 -0.337092 1.760539 +v 0.773759 -0.349142 1.779880 +v 0.762127 -0.394942 1.746682 +v 0.775111 -0.381359 1.724836 +v 0.792036 -0.292866 1.793491 +v 0.782153 -0.303341 1.810394 +v 0.796273 -0.250480 1.821916 +v 0.798673 -0.211881 1.844151 +v 0.791316 -0.219428 1.857189 +v 0.787679 -0.259401 1.836622 +v 0.804529 -0.240483 1.807746 +v 0.805786 -0.203450 1.831594 +v 0.801671 -0.281184 1.777258 +v 0.812378 -0.229440 1.794126 +v 0.812722 -0.194186 1.819513 +v 0.810833 -0.268276 1.761692 +v 0.787492 -0.366078 1.703779 +v 0.796200 -0.323639 1.741951 +v 0.799440 -0.349283 1.683648 +v 0.806742 -0.308784 1.724148 +v 0.826250 -0.275200 1.691234 +v 0.816761 -0.292611 1.707215 +v 0.810767 -0.330984 1.664495 +v 0.821444 -0.311267 1.646411 +v 0.827810 -0.239094 1.732855 +v 0.819516 -0.254213 1.746862 +v 0.827013 -0.204480 1.768722 +v 0.825404 -0.173074 1.796474 +v 0.819144 -0.184016 1.807776 +v 0.819949 -0.217446 1.781128 +v 0.833767 -0.190651 1.756994 +v 0.831343 -0.161342 1.785539 +v 0.835510 -0.222919 1.719690 +v 0.839971 -0.176982 1.745014 +v 0.837041 -0.150670 1.773333 +v 0.842649 -0.206041 1.707203 +v 0.831467 -0.290226 1.629485 +v 0.835064 -0.256582 1.676260 +v 0.840723 -0.267930 1.613773 +v 0.843238 -0.236871 1.662365 +v 0.857700 -0.194556 1.638057 +v 0.850826 -0.216176 1.649617 +v 0.849346 -0.244534 1.599356 +v 0.857037 -0.220055 1.586275 +v 0.855179 -0.170670 1.684677 +v 0.849177 -0.188785 1.695208 +v 0.847521 -0.139061 1.743700 +v 0.842839 -0.142943 1.758255 +v 0.845914 -0.164629 1.731966 +v 0.850868 -0.151162 1.721379 +v 0.854789 -0.134333 1.716927 +v 0.848283 -0.124160 1.748925 +v 0.860206 -0.151098 1.676503 +v 0.858050 -0.115764 1.714641 +v 0.850071 -0.106357 1.751349 +v 0.864721 -0.130623 1.669772 +v 0.864024 -0.194666 1.574613 +v 0.863791 -0.172089 1.627740 +v 0.869958 -0.168402 1.564394 +v 0.869033 -0.148873 1.618700 +v 0.877436 -0.100693 1.604639 +v 0.873602 -0.125045 1.610990 +v 0.875123 -0.141448 1.555673 +v 0.879439 -0.113899 1.548486 +v 0.872072 -0.088341 1.658044 +v 0.868772 -0.109703 1.663507 +v 0.855018 -0.071782 1.746266 +v 0.852504 -0.089045 1.749680 +v 0.861183 -0.097099 1.710568 +v 0.864058 -0.078217 1.706081 +v 0.866338 -0.058977 1.702520 +v 0.857161 -0.054161 1.743476 +v 0.874557 -0.066585 1.653750 +v 0.867916 -0.039464 1.699910 +v 0.858607 -0.036256 1.741341 +v 0.876384 -0.044549 1.650665 +v 0.882695 -0.085845 1.542869 +v 0.880334 -0.075894 1.599670 +v 0.885057 -0.057432 1.538840 +v 0.882432 -0.050776 1.596107 +v 0.884174 0.000000 1.593243 +v 0.883717 -0.025442 1.593961 +v 0.886492 -0.028777 1.536412 +v 0.886982 0.000000 1.535598 +v 0.877969 -0.000003 1.648177 +v 0.877527 -0.022324 1.648801 +v 0.859904 -0.000033 1.739490 +v 0.859495 -0.018183 1.739977 +v 0.868932 -0.019781 1.698315 +v 0.869359 -0.000013 1.697773 +v 0.868936 0.019751 1.698289 +v 0.859510 0.018105 1.739914 +v 0.877528 0.022316 1.648795 +v 0.867928 0.039424 1.699862 +v 0.858640 0.036157 1.741223 +v 0.876386 0.044539 1.650652 +v 0.886492 0.028777 1.536412 +v 0.883717 0.025442 1.593961 +v 0.885057 0.057432 1.538840 +v 0.882432 0.050775 1.596107 +v 0.877436 0.100693 1.604638 +v 0.880334 0.075894 1.599670 +v 0.882695 0.085845 1.542869 +v 0.879439 0.113899 1.548486 +v 0.872077 0.088328 1.658026 +v 0.874560 0.066572 1.653734 +v 0.864076 0.078166 1.706012 +v 0.855076 0.071654 1.746093 +v 0.857210 0.054041 1.743319 +v 0.866355 0.058929 1.702456 +v 0.861201 0.097053 1.710505 +v 0.852561 0.088933 1.749522 +v 0.868777 0.109691 1.663491 +v 0.858066 0.115728 1.714591 +v 0.850115 0.106270 1.751224 +v 0.864726 0.130614 1.669760 +v 0.875123 0.141447 1.555673 +v 0.873602 0.125045 1.610989 +v 0.869958 0.168401 1.564394 +v 0.869033 0.148873 1.618700 +v 0.857700 0.194556 1.638057 +v 0.863792 0.172089 1.627740 +v 0.864024 0.194665 1.574613 +v 0.857037 0.220055 1.586275 +v 0.855183 0.170665 1.684670 +v 0.860210 0.151091 1.676494 +v 0.847547 0.139018 1.743636 +v 0.848315 0.124101 1.748838 +v 0.854802 0.134307 1.716890 +v 0.850878 0.151142 1.721349 +v 0.845929 0.164604 1.731929 +v 0.842874 0.142885 1.758168 +v 0.849180 0.188778 1.695198 +v 0.839993 0.176948 1.744962 +v 0.837097 0.150584 1.773205 +v 0.842654 0.206032 1.707190 +v 0.849346 0.244534 1.599356 +v 0.850826 0.216176 1.649616 +v 0.840723 0.267930 1.613773 +v 0.843239 0.236870 1.662365 +v 0.826250 0.275199 1.691234 +v 0.835064 0.256581 1.676260 +v 0.831468 0.290225 1.629485 +v 0.821444 0.311267 1.646410 +v 0.827819 0.239079 1.732835 +v 0.835516 0.222907 1.719674 +v 0.825505 0.172923 1.796273 +v 0.831418 0.161223 1.785368 +v 0.833795 0.190604 1.756926 +v 0.827053 0.204421 1.768642 +v 0.819993 0.217375 1.781041 +v 0.819259 0.183836 1.807559 +v 0.819528 0.254196 1.746840 +v 0.812429 0.229360 1.794039 +v 0.812855 0.193982 1.819299 +v 0.810846 0.268256 1.761670 +v 0.810767 0.330984 1.664495 +v 0.816761 0.292610 1.707215 +v 0.799440 0.349283 1.683647 +v 0.806742 0.308783 1.724148 +v 0.785143 0.337092 1.760540 +v 0.796200 0.323638 1.741951 +v 0.787493 0.366078 1.703779 +v 0.775111 0.381358 1.724836 +v 0.792051 0.292841 1.793473 +v 0.801685 0.281161 1.777238 +v 0.798815 0.211628 1.843965 +v 0.805921 0.203222 1.831389 +v 0.804583 0.240393 1.807664 +v 0.796333 0.250382 1.821842 +v 0.787741 0.259293 1.836558 +v 0.791456 0.219147 1.857026 +v 0.782170 0.303314 1.810378 +v 0.778856 0.267101 1.851750 +v 0.783718 0.225705 1.870451 +v 0.771869 0.312457 1.827809 +v 0.762127 0.394942 1.746682 +v 0.773760 0.349142 1.779880 +v 0.748798 0.406881 1.769271 +v 0.761939 0.359673 1.799839 +v 0.737428 0.376122 1.841341 +v 0.749789 0.368669 1.820345 +v 0.734993 0.417025 1.792446 +v 0.720975 0.425444 1.816179 +v 0.750479 0.326725 1.864036 +v 0.761269 0.320263 1.845711 +v 0.767578 0.235961 1.898299 +v 0.775801 0.231336 1.884252 +v 0.769757 0.273793 1.867370 +v 0.760398 0.279305 1.883316 +v 0.750821 0.283608 1.899523 +v 0.759297 0.239636 1.912634 +v 0.739407 0.331743 1.882649 +v 0.741082 0.286692 1.915921 +v 0.750818 0.242275 1.927109 +v 0.728213 0.335356 1.901517 +v 0.706657 0.432003 1.840318 +v 0.724776 0.381923 1.862685 +v 0.692129 0.436701 1.864766 +v 0.711922 0.386070 1.884294 +v 0.685970 0.389427 1.927996 +v 0.698972 0.388578 1.906097 +v 0.677511 0.439559 1.889444 +v 0.662831 0.440540 1.914234 +v 0.705634 0.338306 1.939692 +v 0.716943 0.337550 1.920559 +v 0.733638 0.244446 1.956348 +v 0.742222 0.243873 1.941683 +v 0.731299 0.288573 1.932481 +v 0.721505 0.289235 1.949131 +v 0.636858 -0.489866 1.898786 +v 0.653164 -0.488757 1.871212 +v 0.608144 -0.537194 1.881707 +v 0.626028 -0.535972 1.851471 +v 0.669445 -0.485594 1.843785 +v 0.643902 -0.532517 1.821404 +v 0.542934 -0.625030 1.842922 +v 0.563788 -0.623638 1.807767 +v 0.596202 -0.581003 1.830298 +v 0.576795 -0.582317 1.863062 +v 0.584535 -0.619562 1.772761 +v 0.615528 -0.577209 1.797682 +v 0.653677 -0.562334 1.733475 +v 0.634730 -0.570995 1.765370 +v 0.605139 -0.612882 1.738076 +v 0.625430 -0.603538 1.703828 +v 0.679058 -0.518767 1.762153 +v 0.661590 -0.526763 1.791582 +v 0.685640 -0.480397 1.816618 +v 0.701510 -0.473064 1.789755 +v 0.717095 -0.463696 1.763369 +v 0.696140 -0.508479 1.733218 +v 0.732487 -0.452444 1.737612 +v 0.712979 -0.496117 1.704961 +v 0.645365 -0.591602 1.670187 +v 0.672199 -0.551175 1.702115 +v 0.664806 -0.577093 1.637282 +v 0.690369 -0.537713 1.671466 +v 0.725184 -0.503987 1.612765 +v 0.708078 -0.521978 1.641643 +v 0.683804 -0.560197 1.605276 +v 0.702136 -0.540861 1.574285 +v 0.744948 -0.464908 1.650771 +v 0.729221 -0.481537 1.677424 +v 0.747292 -0.439151 1.712492 +v 0.761687 -0.424023 1.688192 +v 0.775538 -0.407069 1.664801 +v 0.760155 -0.446329 1.625130 +v 0.788743 -0.388353 1.642405 +v 0.774725 -0.425851 1.600589 +v 0.719850 -0.519257 1.544461 +v 0.741566 -0.483774 1.584962 +v 0.736697 -0.495359 1.515914 +v 0.757284 -0.461531 1.558361 +v 0.786362 -0.411274 1.509186 +v 0.772240 -0.437332 1.533065 +v 0.752715 -0.469360 1.488772 +v 0.767844 -0.441372 1.463152 +v 0.801567 -0.379493 1.555207 +v 0.788561 -0.403547 1.577247 +v 0.801356 -0.368013 1.621115 +v 0.813241 -0.346092 1.601013 +v 0.824345 -0.322678 1.582194 +v 0.813760 -0.353823 1.534576 +v 0.834683 -0.297903 1.564732 +v 0.825098 -0.326656 1.515433 +v 0.782043 -0.411519 1.439166 +v 0.799607 -0.383465 1.486832 +v 0.795292 -0.379947 1.416899 +v 0.811947 -0.354044 1.466084 +v 0.833266 -0.290693 1.429785 +v 0.823160 -0.323062 1.447039 +v 0.807315 -0.346690 1.396472 +v 0.818182 -0.311955 1.377963 +v 0.844799 -0.268224 1.481923 +v 0.835478 -0.298088 1.497854 +v 0.844233 -0.271879 1.548699 +v 0.852730 -0.244644 1.534160 +v 0.860477 -0.216414 1.521192 +v 0.853268 -0.237267 1.467704 +v 0.867069 -0.187211 1.509840 +v 0.860523 -0.205253 1.455268 +v 0.828094 -0.275972 1.361412 +v 0.842460 -0.257147 1.414371 +v 0.836491 -0.238717 1.346979 +v 0.850408 -0.222470 1.400892 +v 0.862759 -0.150439 1.379900 +v 0.857190 -0.186852 1.389382 +v 0.843869 -0.200520 1.334611 +v 0.849839 -0.161441 1.324442 +v 0.872121 -0.138831 1.435871 +v 0.866862 -0.172409 1.444638 +v 0.872802 -0.157245 1.500147 +v 0.877559 -0.126614 1.492157 +v 0.881186 -0.095428 1.485917 +v 0.876033 -0.104627 1.429043 +v 0.883829 -0.063844 1.481440 +v 0.878893 -0.069996 1.424141 +v 0.854475 -0.121675 1.316507 +v 0.867171 -0.113396 1.372482 +v 0.857920 -0.081411 1.310784 +v 0.870252 -0.075860 1.367176 +v 0.872873 0.000000 1.362880 +v 0.872139 -0.038010 1.363973 +v 0.859891 -0.040789 1.307361 +v 0.860679 0.000000 1.306181 +v 0.881333 0.000000 1.420179 +v 0.880666 -0.035073 1.421180 +v 0.885453 -0.031991 1.478740 +v 0.886039 0.000000 1.477832 +v 0.885453 0.031991 1.478740 +v 0.880666 0.035073 1.421180 +v 0.883829 0.063844 1.481439 +v 0.878893 0.069995 1.424141 +v 0.859891 0.040788 1.307361 +v 0.872139 0.038010 1.363973 +v 0.857921 0.081410 1.310784 +v 0.870252 0.075859 1.367176 +v 0.862759 0.150439 1.379900 +v 0.867171 0.113396 1.372482 +v 0.854475 0.121674 1.316507 +v 0.849839 0.161440 1.324442 +v 0.872121 0.138831 1.435871 +v 0.876033 0.104627 1.429043 +v 0.881186 0.095428 1.485917 +v 0.877559 0.126614 1.492155 +v 0.872802 0.157244 1.500147 +v 0.866862 0.172409 1.444638 +v 0.867069 0.187211 1.509840 +v 0.860523 0.205253 1.455268 +v 0.843869 0.200519 1.334611 +v 0.857190 0.186851 1.389382 +v 0.836491 0.238716 1.346978 +v 0.850408 0.222469 1.400891 +v 0.833266 0.290692 1.429783 +v 0.842460 0.257146 1.414371 +v 0.828094 0.275972 1.361412 +v 0.818182 0.311955 1.377963 +v 0.844799 0.268224 1.481923 +v 0.853268 0.237266 1.467704 +v 0.860477 0.216413 1.521191 +v 0.852730 0.244644 1.534160 +v 0.844233 0.271879 1.548698 +v 0.835479 0.298088 1.497854 +v 0.834683 0.297903 1.564732 +v 0.825098 0.326656 1.515432 +v 0.807316 0.346690 1.396472 +v 0.823160 0.323062 1.447039 +v 0.795292 0.379947 1.416899 +v 0.811948 0.354043 1.466084 +v 0.786362 0.411273 1.509185 +v 0.799607 0.383465 1.486832 +v 0.782043 0.411518 1.439165 +v 0.767844 0.441372 1.463152 +v 0.801568 0.379493 1.555206 +v 0.813760 0.353823 1.534576 +v 0.824345 0.322677 1.582193 +v 0.813241 0.346091 1.601013 +v 0.801358 0.368012 1.621115 +v 0.788561 0.403546 1.577246 +v 0.788743 0.388353 1.642405 +v 0.774725 0.425851 1.600588 +v 0.752715 0.469360 1.488772 +v 0.772240 0.437332 1.533065 +v 0.736697 0.495359 1.515914 +v 0.757284 0.461530 1.558360 +v 0.725185 0.503986 1.612765 +v 0.741566 0.483774 1.584962 +v 0.719850 0.519257 1.544460 +v 0.702137 0.540861 1.574285 +v 0.744948 0.464908 1.650771 +v 0.760155 0.446329 1.625130 +v 0.775538 0.407069 1.664800 +v 0.761687 0.424023 1.688192 +v 0.747292 0.439151 1.712492 +v 0.729222 0.481537 1.677424 +v 0.732487 0.452444 1.737611 +v 0.712979 0.496117 1.704960 +v 0.683804 0.560197 1.605276 +v 0.708078 0.521978 1.641643 +v 0.664806 0.577093 1.637282 +v 0.690369 0.537713 1.671465 +v 0.653678 0.562334 1.733474 +v 0.672199 0.551175 1.702114 +v 0.645365 0.591602 1.670187 +v 0.625430 0.603538 1.703828 +v 0.679059 0.518767 1.762153 +v 0.696141 0.508479 1.733218 +v 0.717096 0.463696 1.763368 +v 0.701510 0.473064 1.789755 +v 0.685641 0.480397 1.816618 +v 0.661590 0.526763 1.791582 +v 0.669445 0.485593 1.843784 +v 0.643902 0.532517 1.821404 +v 0.605140 0.612883 1.738075 +v 0.634730 0.570995 1.765369 +v 0.584535 0.619562 1.772761 +v 0.615528 0.577209 1.797682 +v 0.576795 0.582317 1.863062 +v 0.596202 0.581003 1.830298 +v 0.563788 0.623638 1.807767 +v 0.542934 0.625030 1.842922 +v 0.608144 0.537194 1.881707 +v 0.626028 0.535972 1.851471 +v 0.653164 0.488757 1.871212 +v 0.636859 0.489866 1.898786 +v 0.506691 -0.665142 1.821365 +v 0.528861 -0.663624 1.783944 +v 0.468209 -0.702466 1.798477 +v 0.491627 -0.700856 1.758959 +v 0.550935 -0.659274 1.746693 +v 0.514936 -0.696247 1.719619 +v 0.385110 -0.767928 1.749052 +v 0.410763 -0.766237 1.705877 +v 0.452225 -0.735149 1.732909 +v 0.427616 -0.736772 1.774333 +v 0.436268 -0.761204 1.662879 +v 0.476667 -0.730288 1.691643 +v 0.524837 -0.711313 1.610398 +v 0.500947 -0.722394 1.650759 +v 0.461567 -0.752955 1.620264 +v 0.486487 -0.741416 1.578203 +v 0.560877 -0.678196 1.642158 +v 0.538089 -0.688733 1.680641 +v 0.572869 -0.652175 1.709788 +v 0.594467 -0.642230 1.673349 +v 0.615739 -0.629583 1.637566 +v 0.583316 -0.664811 1.604368 +v 0.636434 -0.614136 1.602555 +v 0.605251 -0.648576 1.567410 +v 0.511004 -0.726754 1.536894 +v 0.548365 -0.697261 1.570764 +v 0.534941 -0.708936 1.496501 +v 0.571332 -0.680180 1.532004 +v 0.615290 -0.637392 1.457788 +v 0.593668 -0.660191 1.494292 +v 0.558262 -0.688140 1.457196 +v 0.580801 -0.664366 1.419153 +v 0.647171 -0.607797 1.496629 +v 0.626549 -0.629525 1.531443 +v 0.656566 -0.596074 1.568491 +v 0.676079 -0.575497 1.535522 +v 0.694884 -0.552471 1.503790 +v 0.666970 -0.583419 1.463127 +v 0.712891 -0.527097 1.473420 +v 0.685933 -0.556576 1.431067 +v 0.602470 -0.637721 1.382547 +v 0.636153 -0.611911 1.422647 +v 0.623279 -0.608438 1.347500 +v 0.656028 -0.583735 1.389032 +v 0.692813 -0.520127 1.326893 +v 0.674916 -0.553078 1.357076 +v 0.642953 -0.576460 1.314206 +v 0.661613 -0.542117 1.282751 +v 0.720995 -0.495933 1.371806 +v 0.703974 -0.527378 1.400582 +v 0.729994 -0.499465 1.444540 +v 0.746036 -0.469639 1.417293 +v 0.761115 -0.437852 1.391782 +v 0.736891 -0.462343 1.344881 +v 0.775212 -0.404260 1.368090 +v 0.751740 -0.426852 1.319873 +v 0.679007 -0.505395 1.253335 +v 0.709477 -0.484886 1.298668 +v 0.695109 -0.466508 1.226059 +v 0.724988 -0.447624 1.272465 +v 0.752101 -0.367555 1.226611 +v 0.739226 -0.408464 1.248407 +v 0.709957 -0.425697 1.200990 +v 0.723416 -0.383079 1.178265 +v 0.777576 -0.350498 1.276139 +v 0.765276 -0.389491 1.296938 +v 0.788007 -0.368871 1.346365 +v 0.799614 -0.331927 1.326671 +v 0.810014 -0.293589 1.309095 +v 0.788493 -0.309987 1.257606 +v 0.819077 -0.253990 1.293718 +v 0.798102 -0.268187 1.241364 +v 0.735316 -0.338778 1.158049 +v 0.763616 -0.325097 1.207159 +v 0.745883 -0.293117 1.140276 +v 0.773684 -0.281254 1.190136 +v 0.789311 -0.190181 1.163646 +v 0.782217 -0.236204 1.175629 +v 0.754812 -0.246176 1.125150 +v 0.762159 -0.198196 1.112690 +v 0.812983 -0.181343 1.216100 +v 0.806342 -0.225262 1.227484 +v 0.826899 -0.213343 1.280566 +v 0.833228 -0.171758 1.269761 +v 0.838183 -0.129453 1.261318 +v 0.818334 -0.136696 1.207146 +v 0.841844 -0.086615 1.255227 +v 0.822101 -0.091451 1.200750 +v 0.767927 -0.149385 1.102942 +v 0.794865 -0.143348 1.154280 +v 0.772090 -0.099945 1.095935 +v 0.798830 -0.095902 1.147570 +v 0.802114 0.000000 1.142125 +v 0.801252 -0.048054 1.143510 +v 0.774577 -0.050078 1.091724 +v 0.775459 0.000000 1.090286 +v 0.825258 0.000000 1.195552 +v 0.824395 -0.045823 1.196885 +v 0.843960 -0.043397 1.251585 +v 0.844791 0.000000 1.250325 +v 0.843960 0.043396 1.251585 +v 0.824395 0.045822 1.196885 +v 0.841844 0.086615 1.255227 +v 0.822102 0.091450 1.200750 +v 0.774577 0.050077 1.091724 +v 0.801252 0.048053 1.143510 +v 0.772090 0.099944 1.095935 +v 0.798830 0.095901 1.147570 +v 0.789311 0.190180 1.163646 +v 0.794865 0.143347 1.154280 +v 0.767927 0.149385 1.102942 +v 0.762159 0.198196 1.112690 +v 0.812983 0.181343 1.216100 +v 0.818334 0.136695 1.207146 +v 0.838183 0.129453 1.261318 +v 0.833228 0.171758 1.269761 +v 0.826899 0.213342 1.280566 +v 0.806342 0.225261 1.227483 +v 0.819078 0.253990 1.293718 +v 0.798102 0.268187 1.241364 +v 0.754812 0.246175 1.125149 +v 0.782217 0.236204 1.175629 +v 0.745883 0.293117 1.140276 +v 0.773684 0.281254 1.190135 +v 0.752101 0.367555 1.226611 +v 0.763616 0.325096 1.207159 +v 0.735316 0.338777 1.158048 +v 0.723416 0.383079 1.178265 +v 0.777576 0.350497 1.276138 +v 0.788493 0.309986 1.257605 +v 0.810014 0.293588 1.309094 +v 0.799614 0.331927 1.326671 +v 0.788007 0.368870 1.346364 +v 0.765277 0.389491 1.296937 +v 0.775212 0.404260 1.368089 +v 0.751741 0.426851 1.319873 +v 0.709957 0.425696 1.200989 +v 0.739226 0.408463 1.248406 +v 0.695110 0.466508 1.226059 +v 0.724988 0.447623 1.272465 +v 0.692813 0.520127 1.326893 +v 0.709477 0.484885 1.298668 +v 0.679007 0.505394 1.253335 +v 0.661613 0.542116 1.282750 +v 0.720995 0.495932 1.371806 +v 0.736891 0.462342 1.344881 +v 0.761115 0.437851 1.391782 +v 0.746036 0.469639 1.417293 +v 0.729994 0.499464 1.444540 +v 0.703974 0.527378 1.400581 +v 0.712891 0.527097 1.473418 +v 0.685933 0.556575 1.431067 +v 0.642953 0.576459 1.314206 +v 0.674917 0.553077 1.357074 +v 0.623279 0.608438 1.347499 +v 0.656028 0.583734 1.389032 +v 0.615290 0.637392 1.457786 +v 0.636153 0.611911 1.422647 +v 0.602470 0.637721 1.382547 +v 0.580801 0.664366 1.419153 +v 0.647171 0.607797 1.496628 +v 0.666970 0.583419 1.463127 +v 0.694884 0.552471 1.503790 +v 0.676080 0.575496 1.535522 +v 0.656567 0.596074 1.568490 +v 0.626549 0.629525 1.531443 +v 0.636434 0.614136 1.602555 +v 0.605252 0.648576 1.567410 +v 0.558262 0.688140 1.457196 +v 0.593668 0.660191 1.494290 +v 0.534941 0.708936 1.496501 +v 0.571332 0.680180 1.532004 +v 0.524837 0.711313 1.610397 +v 0.548365 0.697261 1.570763 +v 0.511005 0.726753 1.536894 +v 0.486487 0.741416 1.578202 +v 0.560877 0.678196 1.642158 +v 0.583316 0.664811 1.604367 +v 0.615739 0.629582 1.637565 +v 0.594467 0.642230 1.673349 +v 0.572870 0.652175 1.709788 +v 0.538089 0.688733 1.680641 +v 0.550935 0.659274 1.746693 +v 0.514936 0.696247 1.719619 +v 0.461567 0.752954 1.620264 +v 0.500947 0.722394 1.650759 +v 0.436268 0.761204 1.662879 +v 0.476667 0.730288 1.691643 +v 0.427616 0.736772 1.774333 +v 0.452225 0.735149 1.732908 +v 0.410763 0.766237 1.705877 +v 0.385110 0.767928 1.749052 +v 0.468209 0.702466 1.798477 +v 0.491627 0.700856 1.758959 +v 0.528861 0.663624 1.783944 +v 0.506691 0.665142 1.821365 +v 0.340879 -0.795797 1.722744 +v 0.367469 -0.794052 1.678006 +v 0.295114 -0.820240 1.695525 +v 0.322525 -0.818443 1.649414 +v 0.393909 -0.788837 1.633452 +v 0.349786 -0.813074 1.603496 +v 0.199853 -0.858366 1.638866 +v 0.228535 -0.856460 1.590613 +v 0.276137 -0.839282 1.620234 +v 0.248029 -0.841132 1.667519 +v 0.257079 -0.850857 1.542570 +v 0.304102 -0.833786 1.573153 +v 0.359155 -0.812108 1.480431 +v 0.331825 -0.824742 1.526484 +v 0.285368 -0.841607 1.494949 +v 0.313288 -0.828773 1.447955 +v 0.403498 -0.792015 1.513069 +v 0.376843 -0.804315 1.557986 +v 0.420150 -0.780325 1.589296 +v 0.445985 -0.768362 1.545712 +v 0.471393 -0.753157 1.502906 +v 0.429660 -0.776279 1.468953 +v 0.496243 -0.734743 1.461048 +v 0.455231 -0.757220 1.425822 +v 0.340688 -0.812317 1.401801 +v 0.386024 -0.796040 1.435194 +v 0.367521 -0.792489 1.356658 +v 0.412277 -0.776535 1.390965 +v 0.462495 -0.727617 1.306300 +v 0.437821 -0.753723 1.347932 +v 0.393545 -0.769107 1.312770 +v 0.418752 -0.742498 1.270286 +v 0.504211 -0.709564 1.343239 +v 0.480181 -0.735050 1.383839 +v 0.520346 -0.713089 1.420329 +v 0.543735 -0.688483 1.380908 +v 0.566181 -0.660846 1.342987 +v 0.527396 -0.681131 1.304148 +v 0.587741 -0.630493 1.306673 +v 0.549606 -0.649826 1.266730 +v 0.443012 -0.712718 1.229402 +v 0.486275 -0.698455 1.266222 +v 0.466232 -0.679915 1.190278 +v 0.509051 -0.666349 1.227858 +v 0.551005 -0.593620 1.157039 +v 0.530645 -0.631333 1.191417 +v 0.488296 -0.644211 1.153088 +v 0.509118 -0.605771 1.117988 +v 0.590521 -0.578928 1.197636 +v 0.570650 -0.615676 1.231187 +v 0.608109 -0.597322 1.272195 +v 0.627406 -0.561696 1.239624 +v 0.645505 -0.523701 1.209120 +v 0.609127 -0.539720 1.166231 +v 0.662220 -0.483418 1.180857 +v 0.626403 -0.498235 1.137086 +v 0.528638 -0.564778 1.085112 +v 0.570080 -0.553405 1.124851 +v 0.546679 -0.521318 1.054666 +v 0.587813 -0.510877 1.094963 +v 0.618772 -0.419460 1.042709 +v 0.604009 -0.466119 1.067586 +v 0.563300 -0.475714 1.026666 +v 0.578292 -0.428036 1.001350 +v 0.656549 -0.409062 1.086132 +v 0.642267 -0.454643 1.110325 +v 0.677547 -0.441084 1.154919 +v 0.691465 -0.396907 1.131396 +v 0.703946 -0.351076 1.110376 +v 0.669381 -0.361809 1.064494 +v 0.714807 -0.303719 1.092014 +v 0.680522 -0.312977 1.045616 +v 0.591693 -0.378568 0.978746 +v 0.631866 -0.370965 1.020578 +v 0.603453 -0.327518 0.958932 +v 0.643360 -0.320927 1.001181 +v 0.661293 -0.217023 0.970945 +v 0.653207 -0.269552 0.984593 +v 0.613466 -0.275070 0.942042 +v 0.621674 -0.221449 0.928162 +v 0.698011 -0.211649 1.016120 +v 0.690086 -0.262861 1.029463 +v 0.724012 -0.255061 1.076378 +v 0.731656 -0.205356 1.063458 +v 0.737684 -0.154792 1.053328 +v 0.704168 -0.159523 1.005721 +v 0.741947 -0.103555 1.046102 +v 0.708574 -0.106721 0.998268 +v 0.628108 -0.166905 0.917301 +v 0.667589 -0.163568 0.960303 +v 0.632727 -0.111660 0.909506 +v 0.672114 -0.109428 0.952660 +v 0.675761 0.000000 0.946506 +v 0.674843 -0.054829 0.948053 +v 0.635507 -0.055947 0.904811 +v 0.636433 0.000000 0.903242 +v 0.712148 0.000000 0.992250 +v 0.711240 -0.053474 0.993769 +v 0.744534 -0.051887 1.041734 +v 0.745430 0.000000 1.040251 +v 0.744534 0.051886 1.041734 +v 0.711240 0.053473 0.993769 +v 0.741947 0.103554 1.046101 +v 0.708574 0.106721 0.998268 +v 0.635507 0.055946 0.904811 +v 0.674843 0.054829 0.948053 +v 0.632727 0.111660 0.909506 +v 0.672114 0.109427 0.952660 +v 0.661293 0.217023 0.970945 +v 0.667589 0.163567 0.960303 +v 0.628108 0.166904 0.917301 +v 0.621674 0.221448 0.928162 +v 0.698011 0.211648 1.016119 +v 0.704168 0.159522 1.005721 +v 0.737684 0.154791 1.053328 +v 0.731656 0.205355 1.063457 +v 0.724012 0.255060 1.076378 +v 0.690086 0.262860 1.029462 +v 0.714807 0.303719 1.092013 +v 0.680522 0.312976 1.045616 +v 0.613466 0.275070 0.942041 +v 0.653208 0.269552 0.984592 +v 0.603453 0.327517 0.958932 +v 0.643360 0.320927 1.001181 +v 0.618772 0.419459 1.042708 +v 0.631866 0.370964 1.020578 +v 0.591693 0.378567 0.978745 +v 0.578292 0.428035 1.001350 +v 0.656550 0.409062 1.086132 +v 0.669381 0.361808 1.064494 +v 0.703946 0.351075 1.110375 +v 0.691465 0.396906 1.131396 +v 0.677547 0.441083 1.154919 +v 0.642267 0.454642 1.110324 +v 0.662220 0.483418 1.180856 +v 0.626403 0.498233 1.137086 +v 0.563300 0.475713 1.026665 +v 0.604009 0.466119 1.067585 +v 0.546679 0.521318 1.054666 +v 0.587814 0.510877 1.094963 +v 0.551005 0.593620 1.157038 +v 0.570081 0.553404 1.124850 +v 0.528638 0.564778 1.085112 +v 0.509119 0.605770 1.117988 +v 0.590521 0.578928 1.197635 +v 0.609127 0.539719 1.166230 +v 0.645505 0.523700 1.209120 +v 0.627406 0.561696 1.239624 +v 0.608109 0.597322 1.272194 +v 0.570650 0.615676 1.231186 +v 0.587741 0.630492 1.306672 +v 0.549606 0.649826 1.266729 +v 0.488296 0.644211 1.153088 +v 0.530646 0.631333 1.191417 +v 0.466232 0.679914 1.190278 +v 0.509052 0.666348 1.227858 +v 0.462495 0.727616 1.306300 +v 0.486275 0.698455 1.266222 +v 0.443013 0.712717 1.229402 +v 0.418753 0.742498 1.270286 +v 0.504211 0.709563 1.343238 +v 0.527396 0.681131 1.304147 +v 0.566181 0.660845 1.342986 +v 0.543736 0.688483 1.380908 +v 0.520347 0.713089 1.420329 +v 0.480181 0.735050 1.383839 +v 0.496243 0.734742 1.461048 +v 0.455232 0.757220 1.425822 +v 0.393546 0.769106 1.312770 +v 0.437822 0.753723 1.347931 +v 0.367522 0.792488 1.356657 +v 0.412278 0.776535 1.390965 +v 0.359156 0.812108 1.480431 +v 0.386024 0.796040 1.435194 +v 0.340689 0.812316 1.401801 +v 0.313288 0.828773 1.447954 +v 0.403498 0.792015 1.513069 +v 0.429660 0.776278 1.468951 +v 0.471393 0.753157 1.502905 +v 0.445985 0.768362 1.545712 +v 0.420151 0.780325 1.589296 +v 0.376843 0.804315 1.557986 +v 0.393909 0.788837 1.633452 +v 0.349786 0.813074 1.603496 +v 0.285368 0.841606 1.494948 +v 0.331825 0.824742 1.526483 +v 0.257080 0.850856 1.542570 +v 0.304102 0.833786 1.573152 +v 0.248029 0.841132 1.667519 +v 0.276137 0.839282 1.620234 +v 0.228535 0.856460 1.590613 +v 0.199853 0.858366 1.638866 +v 0.295114 0.820240 1.695525 +v 0.322525 0.818443 1.649414 +v 0.367470 0.794052 1.678006 +v 0.340879 0.795797 1.722744 +v 0.150845 -0.871896 1.609717 +v 0.179974 -0.869927 1.560703 +v 0.101142 -0.881897 1.580155 +v 0.130580 -0.879758 1.530575 +v 0.208966 -0.864212 1.511907 +v 0.159899 -0.873961 1.481231 +v 0.000270 -0.891163 1.520159 +v 0.029812 -0.887680 1.470037 +v 0.080500 -0.885791 1.500329 +v 0.050831 -0.887769 1.550232 +v 0.059407 -0.881865 1.420249 +v 0.109991 -0.879798 1.450652 +v 0.168068 -0.856728 1.352867 +v 0.139210 -0.870052 1.401434 +v 0.088670 -0.871977 1.370929 +v 0.117583 -0.858587 1.322260 +v 0.217596 -0.851096 1.384081 +v 0.188926 -0.864310 1.432333 +v 0.237720 -0.854874 1.463539 +v 0.266054 -0.841748 1.415817 +v 0.293915 -0.825097 1.368934 +v 0.245759 -0.834231 1.336685 +v 0.321155 -0.804915 1.323092 +v 0.273290 -0.813788 1.290347 +v 0.145994 -0.841560 1.274452 +v 0.196416 -0.839738 1.305162 +v 0.173767 -0.820927 1.227712 +v 0.224130 -0.819155 1.258521 +v 0.277176 -0.767583 1.169230 +v 0.251089 -0.795070 1.213144 +v 0.200784 -0.796783 1.182240 +v 0.226927 -0.769234 1.138234 +v 0.325969 -0.762527 1.201647 +v 0.300065 -0.789849 1.245269 +v 0.347613 -0.781197 1.278514 +v 0.373222 -0.754165 1.235369 +v 0.397876 -0.723924 1.193844 +v 0.350895 -0.731937 1.159671 +v 0.421449 -0.690577 1.154124 +v 0.374751 -0.698246 1.119502 +v 0.252091 -0.738401 1.095880 +v 0.302287 -0.736820 1.126964 +v 0.276167 -0.704419 1.055355 +v 0.326302 -0.702898 1.086532 +v 0.370646 -0.626207 1.011851 +v 0.349114 -0.665961 1.048113 +v 0.299050 -0.667436 1.016832 +v 0.320618 -0.627573 0.980506 +v 0.418797 -0.622070 1.045304 +v 0.397397 -0.661539 1.081344 +v 0.443848 -0.654285 1.116373 +v 0.465003 -0.615243 1.080729 +v 0.484781 -0.573550 1.047390 +v 0.438785 -0.579894 1.011616 +v 0.503166 -0.529469 1.016425 +v 0.457345 -0.535291 0.980345 +v 0.340802 -0.585041 0.946510 +v 0.390775 -0.583756 0.977937 +v 0.359522 -0.540030 0.914977 +v 0.409444 -0.538834 0.946483 +v 0.442104 -0.442377 0.891447 +v 0.426577 -0.491641 0.917612 +v 0.376700 -0.492737 0.886038 +v 0.392265 -0.443364 0.859815 +v 0.489831 -0.439509 0.925615 +v 0.474397 -0.488443 0.951624 +v 0.519976 -0.483085 0.988063 +v 0.535240 -0.434691 0.962331 +v 0.548892 -0.384479 0.939342 +v 0.503581 -0.388700 0.902434 +v 0.560802 -0.332611 0.919259 +v 0.515623 -0.336260 0.882139 +v 0.406157 -0.392122 0.836416 +v 0.455966 -0.391250 0.868098 +v 0.418316 -0.339224 0.815936 +v 0.468100 -0.338472 0.847658 +v 0.486990 -0.228869 0.815835 +v 0.478456 -0.284269 0.830212 +v 0.428691 -0.284898 0.798457 +v 0.437241 -0.229374 0.784054 +v 0.534376 -0.227370 0.850530 +v 0.525903 -0.282408 0.864812 +v 0.570948 -0.279334 0.902138 +v 0.579314 -0.224891 0.888022 +v 0.585868 -0.169504 0.876977 +v 0.541013 -0.171375 0.839355 +v 0.590574 -0.113401 0.869048 +v 0.545778 -0.114654 0.831333 +v 0.443934 -0.172884 0.772785 +v 0.493673 -0.172505 0.804585 +v 0.448740 -0.115664 0.764696 +v 0.498471 -0.115411 0.796510 +v 0.502343 0.000000 0.789998 +v 0.501365 -0.057828 0.791639 +v 0.451639 -0.057955 0.759817 +v 0.452619 0.000000 0.758171 +v 0.549620 0.000000 0.824870 +v 0.548652 -0.057449 0.826497 +v 0.593411 -0.056821 0.864270 +v 0.594362 0.000000 0.862667 +v 0.593411 0.056820 0.864270 +v 0.548652 0.057448 0.826497 +v 0.590574 0.113401 0.869048 +v 0.545778 0.114653 0.831333 +v 0.451639 0.057954 0.759817 +v 0.501365 0.057827 0.791639 +v 0.448740 0.115663 0.764696 +v 0.498471 0.115410 0.796510 +v 0.486990 0.228869 0.815835 +v 0.493673 0.172505 0.804585 +v 0.443934 0.172884 0.772785 +v 0.437241 0.229373 0.784054 +v 0.534377 0.227369 0.850530 +v 0.541013 0.171374 0.839355 +v 0.585869 0.169503 0.876977 +v 0.579314 0.224890 0.888022 +v 0.570948 0.279334 0.902137 +v 0.525903 0.282407 0.864812 +v 0.560803 0.332610 0.919259 +v 0.515623 0.336259 0.882138 +v 0.428691 0.284897 0.798457 +v 0.478456 0.284268 0.830212 +v 0.418316 0.339223 0.815935 +v 0.468100 0.338471 0.847658 +v 0.442105 0.442376 0.891447 +v 0.455966 0.391249 0.868098 +v 0.406157 0.392121 0.836416 +v 0.392265 0.443364 0.859814 +v 0.489831 0.439508 0.925614 +v 0.503582 0.388699 0.902434 +v 0.548893 0.384479 0.939342 +v 0.535240 0.434691 0.962331 +v 0.519976 0.483084 0.988063 +v 0.474398 0.488442 0.951623 +v 0.503166 0.529469 1.016425 +v 0.457345 0.535290 0.980345 +v 0.376701 0.492737 0.886037 +v 0.426577 0.491640 0.917611 +v 0.359523 0.540029 0.914976 +v 0.409444 0.538833 0.946482 +v 0.370646 0.626206 1.011850 +v 0.390775 0.583755 0.977937 +v 0.340802 0.585040 0.946509 +v 0.320618 0.627572 0.980505 +v 0.418798 0.622069 1.045303 +v 0.438785 0.579893 1.011615 +v 0.484781 0.573549 1.047389 +v 0.465003 0.615242 1.080728 +v 0.443848 0.654284 1.116372 +v 0.397397 0.661538 1.081343 +v 0.421450 0.690576 1.154124 +v 0.374751 0.698245 1.119502 +v 0.299051 0.667435 1.016832 +v 0.349114 0.665961 1.048113 +v 0.276167 0.704418 1.055355 +v 0.326303 0.702898 1.086532 +v 0.277177 0.767582 1.169229 +v 0.302287 0.736820 1.126964 +v 0.252091 0.738401 1.095880 +v 0.226928 0.769233 1.138233 +v 0.325969 0.762526 1.201646 +v 0.350895 0.731937 1.159671 +v 0.397876 0.723923 1.193844 +v 0.373223 0.754165 1.235368 +v 0.347613 0.781196 1.278513 +v 0.300065 0.789849 1.245268 +v 0.321155 0.804915 1.323091 +v 0.273291 0.813788 1.290346 +v 0.200784 0.796782 1.182240 +v 0.251090 0.795070 1.213143 +v 0.173768 0.820927 1.227711 +v 0.224130 0.819154 1.258520 +v 0.168069 0.856728 1.352866 +v 0.196416 0.839737 1.305161 +v 0.145994 0.841559 1.274452 +v 0.117583 0.858587 1.322259 +v 0.217597 0.851096 1.384080 +v 0.245760 0.834230 1.336684 +v 0.293915 0.825097 1.368934 +v 0.266055 0.841747 1.415816 +v 0.237721 0.854874 1.463538 +v 0.188926 0.864310 1.432333 +v 0.208966 0.864212 1.511907 +v 0.159899 0.873959 1.481230 +v 0.088670 0.871977 1.370928 +v 0.139210 0.870048 1.401434 +v 0.059408 0.881869 1.420249 +v 0.109990 0.879790 1.450652 +v 0.050831 0.887769 1.550232 +v 0.080501 0.885797 1.500328 +v 0.029813 0.887680 1.470037 +v 0.000270 0.891163 1.520159 +v 0.101141 0.881893 1.580154 +v 0.130582 0.879770 1.530575 +v 0.179974 0.869928 1.560703 +v 0.150845 0.871894 1.609717 +v 0.780123 -0.195710 1.895723 +v 0.772801 -0.199543 1.908582 +v 0.787188 -0.191005 1.883085 +v 0.783779 -0.164626 1.902831 +v 0.777104 -0.167796 1.915118 +v 0.790347 -0.160753 1.890808 +v 0.800577 -0.179163 1.858752 +v 0.794013 -0.185477 1.870744 +v 0.802685 -0.150943 1.867561 +v 0.796558 -0.156156 1.878994 +v 0.801980 -0.104690 1.885544 +v 0.799240 -0.129815 1.883470 +v 0.805003 -0.125556 1.872175 +v 0.807521 -0.101316 1.874173 +v 0.796296 -0.107647 1.897249 +v 0.793377 -0.133563 1.895123 +v 0.780770 -0.139250 1.919023 +v 0.787096 -0.136696 1.906933 +v 0.790187 -0.110108 1.909103 +v 0.806942 -0.172120 1.847186 +v 0.813043 -0.164333 1.835908 +v 0.808403 -0.145077 1.856423 +v 0.814117 -0.138628 1.845517 +v 0.824562 -0.146563 1.813819 +v 0.818834 -0.155792 1.824793 +v 0.824835 -0.123731 1.823297 +v 0.819431 -0.131485 1.834485 +v 0.822890 -0.088647 1.840480 +v 0.820960 -0.109631 1.839051 +v 0.826145 -0.103190 1.827335 +v 0.828113 -0.083478 1.828248 +v 0.817780 -0.093317 1.851971 +v 0.815722 -0.115480 1.850230 +v 0.810383 -0.120770 1.861157 +v 0.812680 -0.097526 1.863074 +v 0.830071 -0.136607 1.802832 +v 0.835731 -0.128053 1.789769 +v 0.830225 -0.115316 1.811711 +v 0.836059 -0.108265 1.797447 +v 0.841799 -0.122979 1.772494 +v 0.842577 -0.104553 1.778114 +v 0.846656 -0.070482 1.776194 +v 0.844461 -0.087336 1.778435 +v 0.839521 -0.072948 1.798294 +v 0.837501 -0.090282 1.799349 +v 0.831508 -0.096150 1.814859 +v 0.833441 -0.077755 1.814886 +v 0.850931 0.017741 1.771212 +v 0.851326 -0.000067 1.770875 +v 0.850070 0.035453 1.772266 +v 0.843742 0.018315 1.794549 +v 0.844128 -0.000112 1.794280 +v 0.842889 0.036630 1.795388 +v 0.846781 0.070228 1.775853 +v 0.848713 0.052984 1.773871 +v 0.839738 0.072535 1.797758 +v 0.841592 0.054744 1.796551 +v 0.830211 0.062411 1.827377 +v 0.835492 0.058239 1.813623 +v 0.833738 0.077164 1.814163 +v 0.828501 0.082714 1.827393 +v 0.831639 0.041751 1.826929 +v 0.836797 0.038965 1.812845 +v 0.833050 -0.000209 1.826259 +v 0.838102 -0.000161 1.811979 +v 0.837708 0.019468 1.812191 +v 0.832640 0.020846 1.826429 +v 0.827754 0.022076 1.839305 +v 0.828174 -0.000254 1.839163 +v 0.826689 0.044245 1.839698 +v 0.823071 0.023177 1.851303 +v 0.823507 -0.000294 1.851185 +v 0.821922 0.046480 1.851605 +v 0.823341 0.087727 1.839571 +v 0.825155 0.066163 1.839923 +v 0.818280 0.092254 1.851070 +v 0.820257 0.069534 1.851666 +v 0.810341 0.075244 1.874256 +v 0.815322 0.072548 1.862962 +v 0.813179 0.096321 1.862215 +v 0.808034 0.099972 1.873396 +v 0.812225 0.050246 1.874425 +v 0.817093 0.048470 1.863018 +v 0.813946 -0.000367 1.874209 +v 0.818740 -0.000331 1.862692 +v 0.818296 0.024154 1.862790 +v 0.813491 0.025025 1.874281 +v 0.808164 0.025786 1.886049 +v 0.808621 -0.000404 1.886004 +v 0.806871 0.051806 1.886105 +v 0.802668 0.026461 1.898199 +v 0.803119 -0.000431 1.898187 +v 0.801358 0.053184 1.898158 +v 0.802474 0.103196 1.884850 +v 0.804915 0.077619 1.885822 +v 0.796782 0.106047 1.896659 +v 0.799338 0.079717 1.897746 +v 0.787105 0.083066 1.922127 +v 0.793273 0.081514 1.909805 +v 0.790628 0.108485 1.908609 +v 0.784389 0.110578 1.920824 +v 0.789176 0.055395 1.922798 +v 0.795330 0.054367 1.910346 +v 0.797106 -0.000439 1.910523 +v 0.796656 0.027045 1.910496 +v 0.790493 0.027565 1.923057 +v 0.783853 0.028017 1.935637 +v 0.782536 0.056254 1.935256 +v 0.777098 0.028385 1.948357 +v 0.775802 0.056931 1.947859 +v 0.777680 0.112277 1.933040 +v 0.780446 0.084342 1.934445 +v 0.770911 0.113584 1.945406 +v 0.773713 0.085336 1.946909 +v 0.759429 0.086193 1.971688 +v 0.766581 0.085956 1.959274 +v 0.763774 0.114391 1.957687 +v 0.756643 0.114697 1.970030 +v 0.761432 0.057523 1.972879 +v 0.768636 0.057358 1.960348 +v 0.769897 0.028623 1.960960 +v 0.762641 0.028718 1.973598 +v 0.753034 -0.143328 1.967884 +v 0.760123 -0.143087 1.955611 +v 0.748401 -0.173094 1.965128 +v 0.755701 -0.172763 1.952538 +v 0.767227 -0.142386 1.943403 +v 0.763037 -0.171825 1.940030 +v 0.742172 -0.206227 1.961424 +v 0.749934 -0.205795 1.948094 +v 0.757729 -0.204580 1.934853 +v 0.765299 -0.202483 1.921630 +v 0.770072 -0.170154 1.927481 +v 0.773995 -0.141099 1.931123 +v 0.809910 -0.076525 1.874967 +v 0.804504 -0.079040 1.886459 +v 0.811925 -0.051323 1.874963 +v 0.806589 -0.052998 1.886591 +v 0.798937 -0.081239 1.898293 +v 0.801090 -0.054460 1.898579 +v 0.813345 -0.025878 1.874572 +v 0.808029 -0.026727 1.886313 +v 0.802545 -0.027466 1.898432 +v 0.796540 -0.028069 1.910693 +v 0.795087 -0.055665 1.910703 +v 0.792912 -0.083060 1.910267 +v 0.829858 -0.063135 1.828149 +v 0.824768 -0.067039 1.840751 +v 0.831389 -0.042361 1.827510 +v 0.826416 -0.044983 1.840321 +v 0.819831 -0.070548 1.852486 +v 0.821622 -0.047335 1.852223 +v 0.832515 -0.021331 1.826741 +v 0.827619 -0.022663 1.839639 +v 0.822922 -0.023857 1.851635 +v 0.818152 -0.024922 1.863109 +v 0.816800 -0.049438 1.863609 +v 0.814900 -0.073697 1.863746 +v 0.826519 0.102524 1.826553 +v 0.821371 0.108827 1.838210 +v 0.825141 0.123237 1.822686 +v 0.819770 0.130890 1.833828 +v 0.816204 0.114558 1.849406 +v 0.814493 0.137943 1.844865 +v 0.819064 0.155423 1.824366 +v 0.824757 0.146253 1.813419 +v 0.813286 0.163907 1.835479 +v 0.800847 0.178635 1.858384 +v 0.807213 0.171647 1.846785 +v 0.803080 0.150082 1.866997 +v 0.808803 0.144307 1.855807 +v 0.810869 0.119726 1.860371 +v 0.805504 0.124392 1.871466 +v 0.799726 0.128521 1.882840 +v 0.796962 0.155203 1.878501 +v 0.793853 0.132176 1.894587 +v 0.790733 0.159731 1.890386 +v 0.794290 0.184893 1.870423 +v 0.787453 0.190379 1.882812 +v 0.773035 0.198975 1.908415 +v 0.780394 0.195088 1.895510 +v 0.777447 0.166856 1.914860 +v 0.784147 0.163598 1.902488 +v 0.787535 0.135293 1.906489 +v 0.781149 0.137950 1.918669 +v 0.774329 0.140073 1.930874 +v 0.770345 0.169423 1.927289 +v 0.767464 0.141684 1.943240 +v 0.763219 0.171344 1.939899 +v 0.765482 0.202050 1.921505 +v 0.757848 0.204308 1.934767 +v 0.742187 0.206156 1.961433 +v 0.749995 0.205661 1.948051 +v 0.748430 0.172925 1.965146 +v 0.755800 0.172497 1.952476 +v 0.760252 0.142661 1.955534 +v 0.753078 0.143029 1.967910 +v 0.848607 -0.053223 1.774182 +v 0.849989 -0.035652 1.772498 +v 0.841404 -0.055135 1.797039 +v 0.842749 -0.036957 1.795753 +v 0.850891 -0.017898 1.771336 +v 0.843677 -0.018574 1.794746 +v 0.837613 -0.019841 1.812455 +v 0.836605 -0.039434 1.813336 +v 0.835222 -0.058798 1.814276 +v 0.844583 0.087113 1.778123 +v 0.842671 0.104384 1.777869 +v 0.837710 0.089920 1.798859 +v 0.836222 0.107993 1.797063 +v 0.841866 0.122869 1.772331 +v 0.835836 0.127880 1.789516 +v 0.830222 0.136366 1.802495 +v 0.830459 0.114931 1.811195 +v 0.831793 0.095633 1.814198 +v 0.755409 -0.000211 1.986302 +v 0.755039 -0.029093 1.985971 +v 0.747735 -0.000277 1.998674 +v 0.747422 -0.029015 1.998269 +v 0.753904 -0.057905 1.985105 +v 0.746390 -0.057695 1.997279 +v 0.739803 -0.000354 2.010747 +v 0.731882 -0.000416 2.022614 +v 0.731694 -0.028536 2.022083 +v 0.739547 -0.028837 2.010272 +v 0.730891 -0.056622 2.020886 +v 0.738620 -0.057276 2.009167 +v 0.726881 -0.112102 2.017419 +v 0.734348 -0.113507 2.005794 +v 0.736918 -0.085536 2.007611 +v 0.729331 -0.084522 2.019252 +v 0.741904 -0.114454 1.994046 +v 0.744570 -0.086205 1.995828 +v 0.749238 -0.114955 1.982044 +v 0.751978 -0.086550 1.983773 +v 0.724895 -0.243940 1.970879 +v 0.711600 -0.288612 1.965702 +v 0.716209 -0.242416 1.985362 +v 0.701740 -0.286767 1.982203 +v 0.694278 -0.337585 1.958795 +v 0.682957 -0.335415 1.977808 +v 0.707599 -0.239882 1.999728 +v 0.698970 -0.236278 2.013823 +v 0.682395 -0.279479 2.014776 +v 0.691999 -0.283725 1.998589 +v 0.660711 -0.326831 2.015310 +v 0.671751 -0.331826 1.996672 +v 0.618943 -0.432105 1.988136 +v 0.647223 -0.381997 1.993359 +v 0.634558 -0.376229 2.014711 +v 0.604616 -0.425582 2.012289 +v 0.633441 -0.436767 1.963656 +v 0.660033 -0.386118 1.971714 +v 0.672971 -0.388602 1.949899 +v 0.648095 -0.439587 1.938991 +v 0.690573 -0.231685 2.027738 +v 0.672875 -0.273988 2.030623 +v 0.682298 -0.226076 2.041309 +v 0.663515 -0.267303 2.046085 +v 0.649786 -0.320386 2.033564 +v 0.639158 -0.312602 2.051465 +v 0.674229 -0.219505 2.054522 +v 0.666333 -0.211976 2.067261 +v 0.645658 -0.250594 2.075783 +v 0.654472 -0.259514 2.061195 +v 0.618685 -0.293011 2.085665 +v 0.628803 -0.303479 2.068883 +v 0.563306 -0.395162 2.081775 +v 0.598008 -0.349318 2.076111 +v 0.586470 -0.337279 2.095384 +v 0.550335 -0.381596 2.103662 +v 0.576756 -0.407076 2.059225 +v 0.609874 -0.359832 2.056154 +v 0.622064 -0.368810 2.035651 +v 0.590494 -0.417194 2.035983 +v 0.658691 -0.203543 2.079512 +v 0.637154 -0.240598 2.089818 +v 0.651430 -0.194292 2.091425 +v 0.628978 -0.229572 2.103273 +v 0.609030 -0.281331 2.101904 +v 0.599779 -0.268447 2.117455 +v 0.644177 -0.184117 2.102676 +v 0.637271 -0.173184 2.113621 +v 0.613682 -0.204619 2.128329 +v 0.621171 -0.217574 2.116143 +v 0.582549 -0.239255 2.146176 +v 0.590895 -0.254380 2.132184 +v 0.514393 -0.331246 2.163941 +v 0.554791 -0.292831 2.148772 +v 0.545281 -0.275413 2.164765 +v 0.503611 -0.311526 2.181997 +v 0.525804 -0.349545 2.144805 +v 0.564836 -0.308982 2.131806 +v 0.575435 -0.323834 2.114012 +v 0.537769 -0.366330 2.124646 +v 0.630486 -0.161444 2.124062 +v 0.606593 -0.190781 2.139869 +v 0.622519 -0.150779 2.134952 +v 0.599064 -0.177118 2.151096 +v 0.574694 -0.223089 2.159287 +v 0.567123 -0.206199 2.171532 +v 0.601525 -0.139175 2.158383 +v 0.583521 -0.151288 2.172011 +v 0.590430 -0.164754 2.162556 +v 0.612036 -0.143047 2.147257 +v 0.553337 -0.170814 2.193360 +v 0.559735 -0.188945 2.183056 +v 0.475624 -0.244773 2.229116 +v 0.520478 -0.216370 2.206336 +v 0.513630 -0.194745 2.217954 +v 0.467831 -0.220289 2.242192 +v 0.484180 -0.268189 2.214635 +v 0.528065 -0.237083 2.193571 +v 0.536333 -0.256786 2.179681 +v 0.493567 -0.290499 2.198972 +v 0.606467 -0.124260 2.156542 +v 0.581498 -0.134451 2.177611 +v 0.609446 -0.106443 2.156954 +v 0.581036 -0.115864 2.181562 +v 0.548573 -0.151233 2.201717 +v 0.544834 -0.130746 2.208937 +v 0.607362 -0.071842 2.163758 +v 0.576383 -0.078285 2.190938 +v 0.578937 -0.097180 2.186245 +v 0.609148 -0.089118 2.159899 +v 0.538027 -0.088423 2.220997 +v 0.541281 -0.109811 2.215523 +v 0.449602 -0.141613 2.272803 +v 0.497467 -0.125179 2.244942 +v 0.493698 -0.100798 2.251326 +v 0.445323 -0.114027 2.280003 +v 0.454780 -0.168589 2.264049 +v 0.502041 -0.149024 2.237202 +v 0.507459 -0.172254 2.228230 +v 0.460904 -0.194869 2.253897 +v 0.605938 -0.054207 2.166980 +v 0.574352 -0.059029 2.194660 +v 0.604717 -0.036284 2.169229 +v 0.572821 -0.039500 2.197307 +v 0.535453 -0.066649 2.225254 +v 0.533622 -0.044593 2.228351 +v 0.603717 -0.000033 2.171262 +v 0.571638 -0.000013 2.199608 +v 0.571908 -0.019799 2.198969 +v 0.603947 -0.018197 2.170667 +v 0.532200 -0.000003 2.230945 +v 0.532536 -0.022347 2.230255 +v 0.438107 -0.028812 2.292039 +v 0.487333 -0.025470 2.261993 +v 0.486921 0.000000 2.262741 +v 0.437627 0.000000 2.292863 +v 0.439550 -0.057500 2.289603 +v 0.488600 -0.050830 2.259827 +v 0.490720 -0.075974 2.256261 +v 0.441954 -0.085945 2.285579 +v 0.603900 0.018120 2.170712 +v 0.571889 0.019769 2.198986 +v 0.604630 0.036186 2.169315 +v 0.572785 0.039461 2.197341 +v 0.532531 0.022339 2.230259 +v 0.533613 0.044583 2.228358 +v 0.605821 0.054087 2.167094 +v 0.607239 0.071715 2.163891 +v 0.576331 0.078234 2.190987 +v 0.574305 0.058982 2.194705 +v 0.538013 0.088410 2.221009 +v 0.535441 0.066636 2.225264 +v 0.441954 0.085944 2.285579 +v 0.490720 0.075974 2.256261 +v 0.493698 0.100797 2.251327 +v 0.445323 0.114027 2.280003 +v 0.439550 0.057500 2.289603 +v 0.488600 0.050830 2.259827 +v 0.487333 0.025470 2.261993 +v 0.438107 0.028812 2.292039 +v 0.609038 0.089006 2.160024 +v 0.578891 0.097134 2.186291 +v 0.609359 0.106356 2.157052 +v 0.581000 0.115829 2.181600 +v 0.541269 0.109800 2.215534 +v 0.544825 0.130737 2.208946 +v 0.601481 0.139132 2.158435 +v 0.583501 0.151268 2.172035 +v 0.581472 0.134426 2.177640 +v 0.606406 0.124201 2.156612 +v 0.553332 0.170809 2.193366 +v 0.548566 0.151226 2.201724 +v 0.460904 0.194868 2.253897 +v 0.507459 0.172253 2.228230 +v 0.513630 0.194745 2.217954 +v 0.467831 0.220289 2.242192 +v 0.454780 0.168588 2.264049 +v 0.502041 0.149024 2.237202 +v 0.497467 0.125179 2.244942 +v 0.449602 0.141613 2.272803 +v 0.611976 0.142989 2.147329 +v 0.590404 0.164730 2.162586 +v 0.622434 0.150693 2.135061 +v 0.599029 0.177084 2.151140 +v 0.559728 0.188939 2.183064 +v 0.567115 0.206190 2.171542 +v 0.637144 0.173034 2.113807 +v 0.613631 0.204559 2.128403 +v 0.606548 0.190733 2.139927 +v 0.630373 0.161325 2.124209 +v 0.582536 0.239240 2.146194 +v 0.574683 0.223077 2.159301 +v 0.493566 0.290499 2.198972 +v 0.536334 0.256786 2.179681 +v 0.545281 0.275413 2.164765 +v 0.503611 0.311526 2.181997 +v 0.484180 0.268188 2.214635 +v 0.528065 0.237082 2.193571 +v 0.520479 0.216370 2.206336 +v 0.475624 0.244773 2.229116 +v 0.644042 0.183937 2.102880 +v 0.621117 0.217502 2.116224 +v 0.651309 0.194089 2.091645 +v 0.628928 0.229492 2.103360 +v 0.590882 0.254362 2.132204 +v 0.599766 0.268427 2.117476 +v 0.666240 0.211723 2.067475 +v 0.645623 0.250495 2.075871 +v 0.637109 0.240508 2.089905 +v 0.658578 0.203314 2.079729 +v 0.618676 0.292986 2.085687 +v 0.609019 0.281309 2.101926 +v 0.537769 0.366330 2.124646 +v 0.575436 0.323834 2.114012 +v 0.586470 0.337278 2.095384 +v 0.550335 0.381596 2.103663 +v 0.525804 0.349544 2.144805 +v 0.564837 0.308981 2.131806 +v 0.554791 0.292831 2.148772 +v 0.514393 0.331245 2.163941 +v 0.674154 0.219223 2.054724 +v 0.654446 0.259405 2.061281 +v 0.682252 0.225780 2.041505 +v 0.663497 0.267188 2.046164 +v 0.628797 0.303452 2.068905 +v 0.639154 0.312573 2.051486 +v 0.698955 0.236011 2.013971 +v 0.682393 0.279378 2.014838 +v 0.672866 0.273874 2.030695 +v 0.690544 0.231389 2.027911 +v 0.660711 0.326806 2.015326 +v 0.649784 0.320358 2.033583 +v 0.590494 0.417194 2.035984 +v 0.622064 0.368809 2.035651 +v 0.634558 0.376228 2.014711 +v 0.604616 0.425582 2.012289 +v 0.576756 0.407076 2.059225 +v 0.609875 0.359831 2.056154 +v 0.598008 0.349317 2.076111 +v 0.563306 0.395162 2.081776 +v 0.707590 0.239682 1.999841 +v 0.691997 0.283650 1.998636 +v 0.716200 0.242296 1.985436 +v 0.701738 0.286724 1.982234 +v 0.671751 0.331808 1.996684 +v 0.682957 0.335404 1.977816 +v 0.711598 0.288596 1.965716 +v 0.724890 0.243889 1.970916 +v 0.694278 0.337581 1.958798 +v 0.648095 0.439587 1.938992 +v 0.672971 0.388601 1.949899 +v 0.633441 0.436766 1.963657 +v 0.660033 0.386117 1.971715 +v 0.647223 0.381996 1.993359 +v 0.618943 0.432104 1.988136 +v 0.620462 -0.488797 1.926309 +v 0.604193 -0.485683 1.953754 +v 0.590170 -0.536025 1.911894 +v 0.572323 -0.532610 1.941986 +v 0.572106 -0.473225 2.007806 +v 0.588080 -0.480511 1.980982 +v 0.537136 -0.518955 2.001263 +v 0.554622 -0.526915 1.971822 +v 0.480648 -0.613074 1.947764 +v 0.518761 -0.571165 1.960734 +v 0.499820 -0.562553 1.992661 +v 0.460294 -0.603807 1.982014 +v 0.501245 -0.619691 1.913050 +v 0.537945 -0.577329 1.928390 +v 0.557332 -0.581069 1.895797 +v 0.522050 -0.623700 1.878063 +v 0.556405 -0.463898 2.034154 +v 0.541166 -0.452686 2.060038 +v 0.519912 -0.508718 2.030151 +v 0.503154 -0.496392 2.058494 +v 0.511721 -0.424297 2.109380 +v 0.526167 -0.439398 2.085067 +v 0.470861 -0.465247 2.112585 +v 0.486737 -0.481839 2.085968 +v 0.401649 -0.560609 2.080556 +v 0.445213 -0.522349 2.084514 +v 0.428012 -0.504367 2.113379 +v 0.383200 -0.541323 2.111552 +v 0.420681 -0.577465 2.048514 +v 0.462923 -0.538031 2.054633 +v 0.481153 -0.551455 2.023977 +v 0.440285 -0.591925 2.015654 +v 0.497802 -0.407360 2.132772 +v 0.484451 -0.388658 2.155129 +v 0.455620 -0.446696 2.138264 +v 0.441035 -0.426237 2.162856 +v 0.459838 -0.346428 2.196571 +v 0.471784 -0.368325 2.176432 +v 0.413997 -0.379885 2.208233 +v 0.427145 -0.403940 2.186223 +v 0.332242 -0.469880 2.197061 +v 0.380510 -0.437785 2.193020 +v 0.366279 -0.411729 2.216903 +v 0.316958 -0.441896 2.222668 +v 0.348433 -0.495863 2.169941 +v 0.395580 -0.461970 2.167723 +v 0.411429 -0.484188 2.141129 +v 0.365463 -0.519742 2.141430 +v 0.448610 -0.323006 2.215360 +v 0.438204 -0.298215 2.232820 +v 0.401698 -0.354207 2.228854 +v 0.390297 -0.327028 2.248016 +v 0.419981 -0.244928 2.263386 +v 0.428686 -0.272179 2.248920 +v 0.370277 -0.268562 2.281452 +v 0.379833 -0.298459 2.265627 +v 0.277230 -0.347188 2.289454 +v 0.329271 -0.323496 2.279150 +v 0.318926 -0.291089 2.296306 +v 0.266143 -0.312411 2.307882 +v 0.289420 -0.380442 2.269008 +v 0.340625 -0.354473 2.260086 +v 0.352964 -0.383912 2.239279 +v 0.302663 -0.412033 2.246671 +v 0.412273 -0.216664 2.276395 +v 0.405466 -0.187441 2.287673 +v 0.361817 -0.237567 2.295703 +v 0.354367 -0.205527 2.308085 +v 0.394928 -0.126772 2.305370 +v 0.399701 -0.157447 2.297397 +v 0.342856 -0.139022 2.327590 +v 0.348066 -0.172651 2.318798 +v 0.240308 -0.200842 2.351332 +v 0.294858 -0.187137 2.336803 +v 0.289165 -0.150662 2.346205 +v 0.234213 -0.161700 2.361448 +v 0.247655 -0.239090 2.338891 +v 0.301721 -0.222791 2.325267 +v 0.309760 -0.257498 2.311766 +v 0.256319 -0.276377 2.324521 +v 0.391188 -0.095551 2.311573 +v 0.388523 -0.063928 2.316061 +v 0.338732 -0.104775 2.334330 +v 0.335794 -0.070097 2.339214 +v 0.386413 0.000000 2.319749 +v 0.386929 -0.032034 2.318794 +v 0.333482 0.000000 2.343277 +v 0.334043 -0.035124 2.342206 +v 0.224008 -0.040859 2.378551 +v 0.279660 -0.038070 2.362157 +v 0.279051 0.000000 2.363332 +v 0.223348 0.000000 2.379815 +v 0.226074 -0.081548 2.375163 +v 0.281572 -0.075979 2.358949 +v 0.284759 -0.113569 2.353669 +v 0.229455 -0.121876 2.369361 +v 0.386930 0.032033 2.318794 +v 0.388523 0.063928 2.316061 +v 0.334043 0.035124 2.342206 +v 0.335794 0.070096 2.339214 +v 0.394928 0.126771 2.305370 +v 0.391188 0.095550 2.311573 +v 0.342855 0.139021 2.327590 +v 0.338732 0.104775 2.334329 +v 0.229455 0.121875 2.369361 +v 0.284759 0.113569 2.353669 +v 0.289165 0.150662 2.346205 +v 0.234213 0.161699 2.361448 +v 0.226074 0.081548 2.375163 +v 0.281572 0.075978 2.358949 +v 0.279660 0.038070 2.362157 +v 0.224009 0.040858 2.378551 +v 0.399701 0.157447 2.297397 +v 0.405465 0.187440 2.287673 +v 0.348066 0.172650 2.318798 +v 0.354367 0.205527 2.308086 +v 0.419981 0.244928 2.263386 +v 0.412273 0.216663 2.276395 +v 0.370277 0.268562 2.281452 +v 0.361817 0.237566 2.295703 +v 0.256319 0.276376 2.324521 +v 0.309760 0.257498 2.311766 +v 0.318926 0.291088 2.296306 +v 0.266143 0.312410 2.307882 +v 0.247655 0.239089 2.338891 +v 0.301721 0.222791 2.325267 +v 0.294858 0.187136 2.336803 +v 0.240308 0.200841 2.351332 +v 0.428686 0.272178 2.248920 +v 0.438204 0.298215 2.232820 +v 0.379833 0.298459 2.265627 +v 0.390297 0.327028 2.248016 +v 0.459838 0.346428 2.196571 +v 0.448610 0.323005 2.215360 +v 0.413997 0.379884 2.208233 +v 0.401698 0.354207 2.228854 +v 0.302663 0.412033 2.246671 +v 0.352964 0.383912 2.239279 +v 0.366279 0.411729 2.216903 +v 0.316958 0.441895 2.222668 +v 0.289420 0.380441 2.269008 +v 0.340625 0.354472 2.260087 +v 0.329271 0.323495 2.279150 +v 0.277230 0.347188 2.289454 +v 0.471784 0.368325 2.176432 +v 0.484451 0.388658 2.155129 +v 0.427145 0.403940 2.186223 +v 0.441035 0.426237 2.162856 +v 0.511721 0.424297 2.109380 +v 0.497801 0.407360 2.132773 +v 0.470860 0.465246 2.112585 +v 0.455620 0.446695 2.138265 +v 0.365462 0.519742 2.141430 +v 0.411429 0.484188 2.141129 +v 0.428012 0.504367 2.113380 +v 0.383200 0.541323 2.111552 +v 0.348433 0.495863 2.169941 +v 0.395580 0.461969 2.167723 +v 0.380509 0.437785 2.193020 +v 0.332242 0.469879 2.197061 +v 0.526167 0.439397 2.085068 +v 0.541166 0.452685 2.060039 +v 0.486737 0.481839 2.085968 +v 0.503154 0.496392 2.058494 +v 0.572106 0.473225 2.007806 +v 0.556405 0.463897 2.034154 +v 0.537135 0.518955 2.001264 +v 0.519912 0.508718 2.030151 +v 0.440284 0.591925 2.015654 +v 0.481153 0.551455 2.023978 +v 0.499819 0.562553 1.992662 +v 0.460294 0.603807 1.982014 +v 0.420681 0.577465 2.048514 +v 0.462923 0.538031 2.054634 +v 0.445213 0.522349 2.084515 +v 0.401649 0.560609 2.080556 +v 0.588080 0.480511 1.980982 +v 0.604193 0.485683 1.953754 +v 0.554622 0.526915 1.971822 +v 0.572323 0.532610 1.941987 +v 0.620462 0.488797 1.926309 +v 0.590170 0.536025 1.911894 +v 0.522049 0.623700 1.878063 +v 0.557332 0.581069 1.895797 +v 0.501245 0.619691 1.913051 +v 0.537945 0.577329 1.928390 +v 0.518761 0.571165 1.960734 +v 0.480647 0.613074 1.947765 +v 0.484446 -0.663700 1.858748 +v 0.462305 -0.659431 1.895977 +v 0.444719 -0.700946 1.837960 +v 0.421323 -0.696418 1.877268 +v 0.418717 -0.642522 1.969354 +v 0.440392 -0.652406 1.932924 +v 0.375266 -0.678525 1.954736 +v 0.398169 -0.688987 1.916277 +v 0.308561 -0.753250 1.877853 +v 0.354171 -0.722673 1.897904 +v 0.330142 -0.711679 1.938233 +v 0.283525 -0.741807 1.919899 +v 0.333899 -0.761408 1.835225 +v 0.378466 -0.730475 1.856994 +v 0.403014 -0.735243 1.815770 +v 0.359465 -0.766337 1.792239 +v 0.397457 -0.629931 2.005192 +v 0.376610 -0.614558 2.040178 +v 0.352805 -0.665220 1.992572 +v 0.330820 -0.649038 2.029561 +v 0.336670 -0.576007 2.107176 +v 0.356312 -0.596549 2.074213 +v 0.288671 -0.608372 2.100369 +v 0.309400 -0.630043 2.065529 +v 0.211498 -0.688761 2.040991 +v 0.261033 -0.660770 2.054392 +v 0.239283 -0.638016 2.090908 +v 0.188835 -0.665060 2.079069 +v 0.234897 -0.709491 2.001643 +v 0.283497 -0.680698 2.016672 +v 0.306570 -0.697702 1.977901 +v 0.258950 -0.727228 1.961239 +v 0.317784 -0.553026 2.138949 +v 0.299693 -0.527658 2.169337 +v 0.268696 -0.584043 2.133866 +v 0.249573 -0.557207 2.165909 +v 0.266213 -0.470234 2.225457 +v 0.282494 -0.500053 2.198259 +v 0.214241 -0.496600 2.225223 +v 0.231399 -0.528028 2.196414 +v 0.126260 -0.577252 2.184108 +v 0.179248 -0.553800 2.191695 +v 0.161265 -0.520868 2.221951 +v 0.107509 -0.542898 2.215610 +v 0.146135 -0.609206 2.150811 +v 0.198318 -0.584439 2.159736 +v 0.218370 -0.612587 2.126124 +v 0.167004 -0.638443 2.115674 +v 0.250992 -0.438436 2.250966 +v 0.236896 -0.404821 2.274735 +v 0.198163 -0.462998 2.252132 +v 0.183270 -0.427491 2.277214 +v 0.212151 -0.332443 2.316139 +v 0.223918 -0.369420 2.296457 +v 0.157159 -0.351081 2.320992 +v 0.169563 -0.390089 2.300120 +v 0.058688 -0.426431 2.297457 +v 0.114409 -0.409125 2.300463 +v 0.101395 -0.368199 2.322322 +v 0.045122 -0.383746 2.320182 +v 0.073650 -0.467283 2.272351 +v 0.128771 -0.448331 2.276399 +v 0.144404 -0.485611 2.250159 +v 0.089947 -0.506168 2.245043 +v 0.201659 -0.294052 2.333715 +v 0.192476 -0.254413 2.349113 +v 0.146068 -0.310505 2.339467 +v 0.136381 -0.268663 2.355777 +v 0.178163 -0.172052 2.373062 +v 0.184637 -0.213695 2.362276 +v 0.121263 -0.181673 2.380997 +v 0.128100 -0.225655 2.369645 +v 0.013383 -0.246656 2.373395 +v 0.070926 -0.236641 2.373294 +v 0.063774 -0.190546 2.385333 +v 0.005928 -0.198594 2.385874 +v 0.022429 -0.293663 2.358225 +v 0.079617 -0.281778 2.358855 +v 0.089781 -0.325675 2.341782 +v 0.033021 -0.339408 2.340422 +v 0.173111 -0.129682 2.381509 +v 0.169505 -0.086771 2.387673 +v 0.115946 -0.136953 2.390039 +v 0.112121 -0.091625 2.396444 +v 0.166604 0.000000 2.392640 +v 0.167315 -0.043476 2.391300 +v 0.109050 0.000000 2.401671 +v 0.109814 -0.045910 2.400296 +v -0.006592 -0.050178 2.406843 +v 0.051758 -0.048146 2.405475 +v 0.050951 0.000000 2.406902 +v -0.007437 0.000000 2.408313 +v -0.004074 -0.100144 2.402617 +v 0.054176 -0.096091 2.401443 +v 0.058187 -0.143630 2.394743 +v 0.000104 -0.149694 2.395667 +v 0.167315 0.043476 2.391300 +v 0.169505 0.086770 2.387673 +v 0.109814 0.045909 2.400296 +v 0.112121 0.091625 2.396444 +v 0.178163 0.172051 2.373063 +v 0.173111 0.129681 2.381509 +v 0.121263 0.181672 2.380997 +v 0.115946 0.136952 2.390039 +v 0.000104 0.149693 2.395667 +v 0.058187 0.143629 2.394743 +v 0.063774 0.190545 2.385333 +v 0.005928 0.198593 2.385874 +v -0.004074 0.100143 2.402617 +v 0.054176 0.096090 2.401443 +v 0.051758 0.048146 2.405475 +v -0.006592 0.050178 2.406842 +v 0.184637 0.213694 2.362276 +v 0.192475 0.254412 2.349113 +v 0.128099 0.225655 2.369645 +v 0.136381 0.268662 2.355777 +v 0.212150 0.332442 2.316139 +v 0.201659 0.294052 2.333715 +v 0.157159 0.351081 2.320992 +v 0.146068 0.310504 2.339467 +v 0.033021 0.339407 2.340422 +v 0.089781 0.325674 2.341782 +v 0.101395 0.368199 2.322322 +v 0.045122 0.383745 2.320183 +v 0.022428 0.293662 2.358226 +v 0.079617 0.281777 2.358855 +v 0.070926 0.236640 2.373294 +v 0.013383 0.246655 2.373395 +v 0.223918 0.369419 2.296457 +v 0.236896 0.404821 2.274735 +v 0.169563 0.390088 2.300120 +v 0.183270 0.427491 2.277214 +v 0.266213 0.470233 2.225457 +v 0.250991 0.438435 2.250966 +v 0.214241 0.496600 2.225223 +v 0.198162 0.462997 2.252132 +v 0.089946 0.506168 2.245043 +v 0.144404 0.485610 2.250159 +v 0.161265 0.520868 2.221951 +v 0.107509 0.542897 2.215610 +v 0.073650 0.467282 2.272352 +v 0.128770 0.448331 2.276399 +v 0.114409 0.409124 2.300463 +v 0.058688 0.426430 2.297458 +v 0.282494 0.500051 2.198260 +v 0.299692 0.527656 2.169337 +v 0.231398 0.528027 2.196415 +v 0.249573 0.557207 2.165909 +v 0.336670 0.576006 2.107177 +v 0.317784 0.553026 2.138949 +v 0.288670 0.608372 2.100369 +v 0.268696 0.584043 2.133866 +v 0.167004 0.638443 2.115675 +v 0.218370 0.612587 2.126125 +v 0.239283 0.638016 2.090908 +v 0.188834 0.665059 2.079070 +v 0.146135 0.609206 2.150812 +v 0.198318 0.584438 2.159737 +v 0.179248 0.553800 2.191695 +v 0.126260 0.577251 2.184108 +v 0.356312 0.596548 2.074214 +v 0.376610 0.614557 2.040179 +v 0.309400 0.630042 2.065530 +v 0.330820 0.649038 2.029561 +v 0.418717 0.642522 1.969355 +v 0.397457 0.629931 2.005192 +v 0.375266 0.678525 1.954736 +v 0.352805 0.665220 1.992572 +v 0.258949 0.727228 1.961240 +v 0.306570 0.697702 1.977902 +v 0.330141 0.711678 1.938233 +v 0.283525 0.741807 1.919900 +v 0.234897 0.709491 2.001644 +v 0.283496 0.680698 2.016673 +v 0.261032 0.660770 2.054393 +v 0.211498 0.688761 2.040991 +v 0.440392 0.652406 1.932925 +v 0.462305 0.659431 1.895977 +v 0.398169 0.688987 1.916277 +v 0.421323 0.696417 1.877268 +v 0.484446 0.663700 1.858748 +v 0.444719 0.700946 1.837959 +v 0.359465 0.766337 1.792239 +v 0.403014 0.735243 1.815770 +v 0.333899 0.761408 1.835225 +v 0.378466 0.730475 1.856994 +v 0.354171 0.722673 1.897904 +v 0.308560 0.753250 1.877853 +v 0.314303 -0.794160 1.767500 +v 0.287812 -0.789060 1.812049 +v 0.267718 -0.818557 1.741653 +v 0.240416 -0.813310 1.787574 +v 0.235619 -0.768778 1.899815 +v 0.261563 -0.780643 1.856240 +v 0.186635 -0.792478 1.878068 +v 0.213366 -0.804670 1.833134 +v 0.114267 -0.841983 1.782829 +v 0.164174 -0.825112 1.808607 +v 0.136761 -0.812586 1.854674 +v 0.086301 -0.829252 1.829857 +v 0.142600 -0.851115 1.735186 +v 0.191932 -0.834034 1.761911 +v 0.219929 -0.839403 1.714819 +v 0.171170 -0.856586 1.687128 +v 0.210147 -0.753662 1.942653 +v 0.185242 -0.735359 1.984576 +v 0.160365 -0.776838 1.922197 +v 0.134670 -0.757856 1.965339 +v 0.137480 -0.689199 2.064741 +v 0.160964 -0.713759 2.025278 +v 0.085465 -0.710346 2.048008 +v 0.109684 -0.735777 2.007412 +v 0.005784 -0.769876 1.965180 +v 0.057861 -0.754455 1.987305 +v 0.033039 -0.728443 2.028983 +v -0.019540 -0.743341 2.007718 +v 0.031946 -0.793161 1.921257 +v 0.083499 -0.777217 1.944235 +v 0.109835 -0.796609 1.899952 +v 0.058821 -0.812923 1.876053 +v 0.114868 -0.661639 2.102698 +v 0.093230 -0.631291 2.139062 +v 0.062165 -0.681970 2.087158 +v 0.039864 -0.650692 2.124642 +v 0.053211 -0.562547 2.206177 +v 0.072640 -0.598158 2.173548 +v -0.001373 -0.579825 2.193815 +v 0.018651 -0.616557 2.160211 +v -0.089438 -0.645197 2.125145 +v -0.035466 -0.632266 2.144052 +v -0.055992 -0.594562 2.178475 +v -0.110382 -0.606756 2.160314 +v -0.067250 -0.680876 2.087881 +v -0.013721 -0.667276 2.107578 +v 0.009148 -0.699334 2.069124 +v -0.043918 -0.713630 2.048676 +v 0.035021 -0.524527 2.236732 +v 0.018139 -0.484219 2.265016 +v -0.020119 -0.540630 2.225300 +v -0.037514 -0.499112 2.254498 +v -0.011413 -0.397637 2.314552 +v 0.002638 -0.441878 2.291019 +v -0.067960 -0.409843 2.305515 +v -0.053486 -0.455452 2.281274 +v -0.164897 -0.476625 2.251878 +v -0.109409 -0.466993 2.268109 +v -0.124256 -0.420273 2.293051 +v -0.180023 -0.428878 2.277224 +v -0.148184 -0.522276 2.223797 +v -0.093042 -0.511778 2.240677 +v -0.075207 -0.554333 2.210716 +v -0.129997 -0.565753 2.193280 +v -0.023951 -0.351763 2.335688 +v -0.034923 -0.304306 2.354012 +v -0.080874 -0.362504 2.327173 +v -0.092175 -0.313610 2.346093 +v -0.052013 -0.205786 2.382643 +v -0.044289 -0.255576 2.369669 +v -0.109792 -0.212097 2.375681 +v -0.101832 -0.263415 2.362313 +v -0.215446 -0.275651 2.336677 +v -0.158987 -0.270136 2.351353 +v -0.167131 -0.217486 2.364974 +v -0.223755 -0.221931 2.350599 +v -0.205368 -0.328219 2.319803 +v -0.149081 -0.321602 2.334695 +v -0.137487 -0.371710 2.315220 +v -0.193532 -0.379348 2.299907 +v -0.058045 -0.155108 2.392750 +v -0.062372 -0.103770 2.399988 +v -0.116003 -0.159860 2.386074 +v -0.120461 -0.106951 2.393552 +v -0.065859 0.000000 2.405879 +v -0.064981 -0.051996 2.404375 +v -0.124054 0.000000 2.399603 +v -0.123150 -0.053590 2.398072 +v -0.237727 -0.056075 2.374049 +v -0.180827 -0.054952 2.387950 +v -0.181751 0.000000 2.389503 +v -0.238667 0.000000 2.375624 +v -0.234917 -0.111913 2.369333 +v -0.178071 -0.109671 2.383324 +v -0.173500 -0.163925 2.375652 +v -0.230253 -0.167277 2.361503 +v -0.064981 0.051995 2.404375 +v -0.062372 0.103769 2.399988 +v -0.123150 0.053589 2.398072 +v -0.120461 0.106950 2.393552 +v -0.052014 0.205786 2.382643 +v -0.058046 0.155107 2.392750 +v -0.109792 0.212097 2.375681 +v -0.116003 0.159859 2.386074 +v -0.230253 0.167276 2.361504 +v -0.173500 0.163924 2.375652 +v -0.167131 0.217485 2.364974 +v -0.223755 0.221930 2.350599 +v -0.234917 0.111913 2.369333 +v -0.178071 0.109670 2.383324 +v -0.180827 0.054951 2.387950 +v -0.237727 0.056075 2.374049 +v -0.044289 0.255575 2.369669 +v -0.034923 0.304306 2.354012 +v -0.101832 0.263414 2.362314 +v -0.092176 0.313609 2.346093 +v -0.011413 0.397637 2.314552 +v -0.023952 0.351762 2.335688 +v -0.067961 0.409842 2.305516 +v -0.080875 0.362504 2.327173 +v -0.193532 0.379347 2.299907 +v -0.137487 0.371709 2.315221 +v -0.124256 0.420272 2.293052 +v -0.180023 0.428877 2.277224 +v -0.205368 0.328218 2.319803 +v -0.149081 0.321601 2.334695 +v -0.158987 0.270135 2.351353 +v -0.215446 0.275650 2.336677 +v 0.002638 0.441877 2.291019 +v 0.018139 0.484218 2.265016 +v -0.053486 0.455451 2.281274 +v -0.037515 0.499112 2.254498 +v 0.053210 0.562547 2.206178 +v 0.035021 0.524527 2.236732 +v -0.001373 0.579825 2.193815 +v -0.020119 0.540630 2.225300 +v -0.129997 0.565753 2.193281 +v -0.075207 0.554332 2.210716 +v -0.055993 0.594562 2.178476 +v -0.110383 0.606756 2.160314 +v -0.148184 0.522274 2.223797 +v -0.093042 0.511778 2.240677 +v -0.109409 0.466993 2.268110 +v -0.164897 0.476624 2.251878 +v 0.072640 0.598157 2.173548 +v 0.093230 0.631291 2.139062 +v 0.018651 0.616557 2.160211 +v 0.039864 0.650691 2.124643 +v 0.137480 0.689199 2.064741 +v 0.114867 0.661638 2.102698 +v 0.085464 0.710346 2.048009 +v 0.062165 0.681969 2.087158 +v -0.043918 0.713630 2.048676 +v 0.009148 0.699334 2.069124 +v 0.033039 0.728442 2.028983 +v -0.019541 0.743341 2.007718 +v -0.067251 0.680875 2.087882 +v -0.013721 0.667276 2.107578 +v -0.035466 0.632265 2.144052 +v -0.089438 0.645196 2.125146 +v 0.160964 0.713758 2.025278 +v 0.185241 0.735359 1.984577 +v 0.109684 0.735777 2.007412 +v 0.134670 0.757855 1.965340 +v 0.235619 0.768778 1.899815 +v 0.210146 0.753662 1.942653 +v 0.186635 0.792477 1.878069 +v 0.160364 0.776837 1.922198 +v 0.058820 0.812923 1.876054 +v 0.109835 0.796608 1.899953 +v 0.136761 0.812586 1.854674 +v 0.086301 0.829252 1.829858 +v 0.031946 0.793161 1.921257 +v 0.083499 0.777217 1.944236 +v 0.057861 0.754454 1.987306 +v 0.005784 0.769876 1.965180 +v 0.261563 0.780642 1.856241 +v 0.287812 0.789060 1.812049 +v 0.213366 0.804670 1.833135 +v 0.240416 0.813310 1.787574 +v 0.314303 0.794160 1.767500 +v 0.267718 0.818557 1.741653 +v 0.171170 0.856586 1.687128 +v 0.219929 0.839403 1.714819 +v 0.142600 0.851115 1.735186 +v 0.191932 0.834034 1.761912 +v 0.164174 0.825112 1.808608 +v 0.114267 0.841982 1.782829 +v 0.121702 -0.870059 1.658733 +v 0.092677 -0.864472 1.707539 +v 0.071650 -0.879935 1.629717 +v 0.042287 -0.874202 1.679059 +v 0.035492 -0.842255 1.803691 +v 0.063904 -0.855245 1.755943 +v -0.015544 -0.851621 1.776256 +v 0.013178 -0.864702 1.727961 +v -0.088649 -0.872399 1.669178 +v -0.037713 -0.870454 1.699023 +v -0.066627 -0.857242 1.747625 +v -0.117627 -0.859121 1.717878 +v -0.059272 -0.882175 1.619875 +v -0.008404 -0.880143 1.649819 +v 0.021149 -0.885840 1.600130 +v -0.029654 -0.887857 1.570069 +v 0.007583 -0.825727 1.850636 +v -0.019716 -0.805608 1.896528 +v -0.043765 -0.834872 1.823707 +v -0.071366 -0.814530 1.870108 +v -0.072004 -0.755035 1.984370 +v -0.046284 -0.781981 1.941156 +v -0.124232 -0.763439 1.958951 +v -0.098228 -0.790686 1.915256 +v -0.201033 -0.797606 1.858081 +v -0.149854 -0.795881 1.887531 +v -0.176030 -0.768479 1.931528 +v -0.227262 -0.770129 1.902165 +v -0.173937 -0.821666 1.812540 +v -0.122816 -0.819883 1.842087 +v -0.095034 -0.840366 1.795383 +v -0.146095 -0.842200 1.765737 +v -0.096762 -0.724853 2.025970 +v -0.120455 -0.691556 2.065771 +v -0.149261 -0.732902 2.001003 +v -0.173215 -0.699238 2.041249 +v -0.164246 -0.616234 2.139304 +v -0.142980 -0.655282 2.103591 +v -0.217487 -0.623086 2.115610 +v -0.195988 -0.662573 2.079501 +v -0.299660 -0.668453 2.023840 +v -0.248275 -0.667025 2.052945 +v -0.269908 -0.627248 2.089274 +v -0.321351 -0.628631 2.060285 +v -0.276680 -0.705412 1.985222 +v -0.225340 -0.703889 2.014399 +v -0.201224 -0.737759 1.973871 +v -0.252513 -0.739353 1.944606 +v -0.184155 -0.574553 2.172742 +v -0.202628 -0.530421 2.203766 +v -0.237605 -0.580914 2.149391 +v -0.256280 -0.536295 2.180763 +v -0.234957 -0.435571 2.258038 +v -0.219579 -0.484009 2.232212 +v -0.288953 -0.440382 2.235619 +v -0.273431 -0.489402 2.209573 +v -0.377756 -0.493703 2.155013 +v -0.326185 -0.492605 2.183774 +v -0.341818 -0.443284 2.210024 +v -0.393420 -0.444268 2.181315 +v -0.360473 -0.541044 2.125991 +v -0.308939 -0.539838 2.154815 +v -0.290154 -0.584784 2.123271 +v -0.341645 -0.586085 2.094370 +v -0.248678 -0.385275 2.281091 +v -0.260670 -0.333307 2.301205 +v -0.302808 -0.389506 2.258878 +v -0.314940 -0.336982 2.279249 +v -0.279355 -0.225392 2.332556 +v -0.270912 -0.279939 2.318387 +v -0.333838 -0.227886 2.310984 +v -0.325299 -0.283033 2.296643 +v -0.430078 -0.285530 2.242880 +v -0.378413 -0.284912 2.271491 +v -0.387008 -0.229399 2.285927 +v -0.438686 -0.229892 2.257334 +v -0.419634 -0.339959 2.225341 +v -0.367985 -0.339217 2.253976 +v -0.355770 -0.392083 2.233458 +v -0.407398 -0.392948 2.204790 +v -0.285960 -0.169889 2.343653 +v -0.290700 -0.113663 2.351621 +v -0.340518 -0.171772 2.322212 +v -0.345314 -0.114923 2.330274 +v -0.294516 0.000000 2.358037 +v -0.293557 -0.056953 2.356424 +v -0.349177 0.000000 2.336775 +v -0.348205 -0.057585 2.335137 +v -0.453168 -0.058090 2.281674 +v -0.401469 -0.057967 2.310239 +v -0.402450 0.000000 2.311893 +v -0.454151 0.000000 2.283330 +v -0.450253 -0.115932 2.276772 +v -0.398558 -0.115686 2.305343 +v -0.393731 -0.172911 2.297229 +v -0.445419 -0.173281 2.268649 +v -0.293558 0.056952 2.356424 +v -0.290700 0.113663 2.351621 +v -0.348205 0.057584 2.335136 +v -0.345314 0.114923 2.330274 +v -0.279355 0.225391 2.332556 +v -0.285960 0.169889 2.343653 +v -0.333838 0.227886 2.310984 +v -0.340519 0.171771 2.322212 +v -0.445419 0.173280 2.268649 +v -0.393732 0.172911 2.297229 +v -0.387008 0.229398 2.285927 +v -0.438686 0.229892 2.257334 +v -0.450253 0.115931 2.276772 +v -0.398558 0.115685 2.305344 +v -0.401469 0.057966 2.310239 +v -0.453168 0.058089 2.281674 +v -0.270912 0.279939 2.318387 +v -0.260670 0.333307 2.301205 +v -0.325299 0.283033 2.296644 +v -0.314940 0.336982 2.279249 +v -0.234957 0.435570 2.258039 +v -0.248678 0.385274 2.281091 +v -0.288954 0.440381 2.235619 +v -0.302808 0.389505 2.258878 +v -0.407398 0.392947 2.204791 +v -0.355770 0.392082 2.233459 +v -0.341818 0.443283 2.210024 +v -0.393420 0.444267 2.181315 +v -0.419634 0.339958 2.225341 +v -0.367985 0.339216 2.253976 +v -0.378413 0.284911 2.271491 +v -0.430078 0.285529 2.242880 +v -0.219579 0.484008 2.232212 +v -0.202628 0.530420 2.203766 +v -0.273431 0.489401 2.209574 +v -0.256281 0.536295 2.180763 +v -0.164246 0.616233 2.139304 +v -0.184155 0.574552 2.172743 +v -0.217487 0.623085 2.115610 +v -0.237605 0.580913 2.149391 +v -0.341645 0.586084 2.094371 +v -0.290154 0.584783 2.123271 +v -0.269908 0.627248 2.089274 +v -0.321352 0.628631 2.060286 +v -0.360473 0.541043 2.125991 +v -0.308939 0.539838 2.154816 +v -0.326185 0.492605 2.183775 +v -0.377756 0.493703 2.155013 +v -0.142981 0.655282 2.103591 +v -0.120455 0.691555 2.065772 +v -0.195988 0.662572 2.079502 +v -0.173215 0.699237 2.041250 +v -0.072004 0.755035 1.984371 +v -0.096762 0.724852 2.025971 +v -0.124233 0.763438 1.958951 +v -0.149261 0.732901 2.001003 +v -0.252513 0.739353 1.944606 +v -0.201225 0.737758 1.973872 +v -0.176030 0.768478 1.931529 +v -0.227263 0.770129 1.902165 +v -0.276680 0.705411 1.985223 +v -0.225340 0.703888 2.014399 +v -0.248275 0.667024 2.052946 +v -0.299661 0.668453 2.023840 +v -0.046284 0.781981 1.941157 +v -0.019716 0.805608 1.896529 +v -0.098229 0.790686 1.915256 +v -0.071367 0.814530 1.870108 +v 0.035492 0.842255 1.803692 +v 0.007583 0.825727 1.850636 +v -0.015545 0.851620 1.776256 +v -0.043765 0.834872 1.823707 +v -0.146096 0.842200 1.765738 +v -0.095034 0.840365 1.795383 +v -0.066628 0.857242 1.747625 +v -0.117627 0.859120 1.717878 +v -0.173938 0.821665 1.812541 +v -0.122816 0.819883 1.842087 +v -0.149854 0.795880 1.887531 +v -0.201033 0.797606 1.858081 +v 0.063903 0.855245 1.755943 +v 0.092676 0.864472 1.707539 +v 0.013178 0.864702 1.727962 +v 0.042287 0.874198 1.679059 +v 0.121702 0.870059 1.658734 +v 0.071652 0.879954 1.629720 +v -0.029654 0.887857 1.570069 +v 0.021146 0.885817 1.600127 +v -0.059272 0.882177 1.619876 +v -0.008405 0.880139 1.649819 +v -0.037714 0.870450 1.699023 +v -0.088649 0.872400 1.669179 +v 0.710461 -0.199577 2.013634 +v 0.702711 -0.195764 2.026249 +v 0.718246 -0.167821 2.014284 +v 0.710689 -0.164666 2.026056 +v 0.694979 -0.191059 2.038495 +v 0.703256 -0.160792 2.037567 +v 0.719254 -0.110131 2.028684 +v 0.715872 -0.136726 2.027006 +v 0.723421 -0.139268 2.015636 +v 0.711777 -0.107674 2.039732 +v 0.708499 -0.133595 2.038172 +v 0.693969 -0.125606 2.059417 +v 0.701095 -0.129855 2.048918 +v 0.704225 -0.104720 2.050333 +v 0.696926 -0.101354 2.060672 +v 0.688759 -0.150993 2.059548 +v 0.695889 -0.156208 2.048708 +v 0.687443 -0.185548 2.050428 +v 0.680033 -0.179231 2.061924 +v 0.672954 -0.172202 2.073084 +v 0.681745 -0.145138 2.069933 +v 0.665949 -0.164410 2.083833 +v 0.674922 -0.138696 2.080197 +v 0.689623 -0.097562 2.070501 +v 0.686842 -0.120817 2.069401 +v 0.682344 -0.093359 2.080327 +v 0.679830 -0.115534 2.079352 +v 0.664716 -0.103248 2.099489 +v 0.672495 -0.109681 2.089291 +v 0.674673 -0.088686 2.090301 +v 0.666461 -0.083522 2.100782 +v 0.660549 -0.123805 2.100278 +v 0.667762 -0.131551 2.090141 +v 0.658985 -0.155879 2.094272 +v 0.652064 -0.146643 2.104544 +v 0.645076 -0.136695 2.114680 +v 0.652928 -0.115383 2.110546 +v 0.636291 -0.128135 2.125896 +v 0.643224 -0.108342 2.122546 +v 0.657254 -0.077797 2.111849 +v 0.656302 -0.096203 2.110161 +v 0.645628 -0.072997 2.125186 +v 0.645582 -0.090343 2.122900 +v 0.630541 -0.087400 2.139037 +v 0.629631 -0.070534 2.142048 +v 0.629357 -0.104631 2.137532 +v 0.624060 -0.123073 2.139550 +v 0.627204 -0.000067 2.148716 +v 0.627314 0.017756 2.148211 +v 0.644268 -0.000111 2.131117 +v 0.644320 0.018327 2.130649 +v 0.627825 0.035481 2.146944 +v 0.644653 0.036652 2.129500 +v 0.667089 -0.000209 2.106083 +v 0.667041 0.020858 2.105641 +v 0.656940 0.019480 2.116901 +v 0.656942 -0.000160 2.117349 +v 0.666998 0.041774 2.104518 +v 0.657076 0.038987 2.115784 +v 0.656764 0.077207 2.112457 +v 0.657132 0.058272 2.114261 +v 0.666706 0.062444 2.103045 +v 0.665899 0.082758 2.101533 +v 0.645264 0.072584 2.125634 +v 0.645082 0.054780 2.127832 +v 0.628583 0.053024 2.144978 +v 0.629392 0.070281 2.142323 +v 0.676055 -0.000253 2.095584 +v 0.675979 0.022087 2.095147 +v 0.684406 -0.000292 2.085744 +v 0.684299 0.023189 2.085303 +v 0.675812 0.044265 2.094019 +v 0.684012 0.046501 2.084147 +v 0.700000 -0.000366 2.066277 +v 0.699850 0.025034 2.065846 +v 0.692070 0.024164 2.075579 +v 0.692197 -0.000330 2.076017 +v 0.699385 0.050263 2.064675 +v 0.691693 0.048488 2.074410 +v 0.689111 0.096356 2.071352 +v 0.690794 0.072575 2.072878 +v 0.698348 0.075272 2.063109 +v 0.696492 0.100010 2.061496 +v 0.681796 0.092296 2.081198 +v 0.683267 0.069566 2.082652 +v 0.675273 0.066192 2.092561 +v 0.674095 0.087766 2.091135 +v 0.707814 -0.000403 2.055954 +v 0.707634 0.025794 2.055532 +v 0.715840 -0.000430 2.045264 +v 0.715633 0.026467 2.044860 +v 0.707063 0.051821 2.054366 +v 0.714970 0.053195 2.043727 +v 0.731614 0.027569 2.022256 +v 0.723575 0.027051 2.033707 +v 0.723815 -0.000438 2.034091 +v 0.730755 0.055402 2.021222 +v 0.722808 0.054378 2.032613 +v 0.719032 0.108508 2.029310 +v 0.721348 0.081531 2.031063 +v 0.729173 0.083076 2.019719 +v 0.726732 0.110592 2.017956 +v 0.711475 0.106071 2.040428 +v 0.713650 0.079734 2.042154 +v 0.705876 0.077641 2.052781 +v 0.703855 0.103226 2.051100 +v 0.739501 0.028021 2.010417 +v 0.747392 0.028386 1.998369 +v 0.738536 0.056261 2.009440 +v 0.746337 0.056934 1.997469 +v 0.755031 0.028625 1.986026 +v 0.753890 0.057361 1.985210 +v 0.749231 0.114396 1.982207 +v 0.751965 0.085959 1.983917 +v 0.741854 0.113590 1.994346 +v 0.744511 0.085340 1.996091 +v 0.736824 0.084352 2.007991 +v 0.734268 0.112291 2.006230 +v 0.745663 -0.143094 1.979990 +v 0.738335 -0.142394 1.992066 +v 0.740853 -0.172772 1.977572 +v 0.733366 -0.171834 1.989991 +v 0.730823 -0.141117 2.003907 +v 0.725753 -0.170179 2.002202 +v 0.718342 -0.202517 2.000808 +v 0.726290 -0.204594 1.987803 +v 0.734198 -0.205807 1.974629 +v 0.706237 -0.079061 2.052114 +v 0.698767 -0.076552 2.062392 +v 0.713953 -0.081257 2.041551 +v 0.707353 -0.053012 2.053886 +v 0.699728 -0.051340 2.064166 +v 0.715219 -0.054470 2.043296 +v 0.721579 -0.083076 2.030524 +v 0.723004 -0.055675 2.032228 +v 0.723693 -0.028073 2.033512 +v 0.715779 -0.027470 2.044640 +v 0.700043 -0.025885 2.065584 +v 0.707800 -0.026734 2.055286 +v 0.675812 -0.067067 2.091824 +v 0.667211 -0.063167 2.102365 +v 0.683780 -0.070578 2.081884 +v 0.676227 -0.045002 2.093481 +v 0.667386 -0.042383 2.104020 +v 0.684409 -0.047355 2.083587 +v 0.691277 -0.073723 2.072131 +v 0.692069 -0.049454 2.073868 +v 0.692279 -0.024930 2.075299 +v 0.684518 -0.023866 2.085013 +v 0.667253 -0.021342 2.105381 +v 0.676206 -0.022672 2.094866 +v 0.671958 0.108878 2.090056 +v 0.664212 0.102582 2.100193 +v 0.679342 0.114612 2.080171 +v 0.667350 0.130956 2.090753 +v 0.660162 0.123310 2.100840 +v 0.674515 0.138006 2.080824 +v 0.693569 0.124438 2.060182 +v 0.686388 0.119773 2.070205 +v 0.688456 0.150132 2.060166 +v 0.681399 0.144368 2.070579 +v 0.672734 0.171728 2.073515 +v 0.679842 0.178702 2.062338 +v 0.665689 0.163984 2.084250 +v 0.651807 0.146333 2.104906 +v 0.658722 0.155510 2.094679 +v 0.700776 0.128560 2.049648 +v 0.708246 0.132205 2.038838 +v 0.695652 0.155256 2.049300 +v 0.703072 0.159769 2.038109 +v 0.723293 0.137968 2.016140 +v 0.715694 0.135324 2.027605 +v 0.718184 0.166881 2.014709 +v 0.710566 0.163638 2.026543 +v 0.702654 0.195141 2.026589 +v 0.710427 0.199009 2.013919 +v 0.694867 0.190432 2.038859 +v 0.687296 0.184963 2.050826 +v 0.730765 0.140092 2.004320 +v 0.738297 0.141690 1.992347 +v 0.725716 0.169448 2.002534 +v 0.733338 0.171353 1.990214 +v 0.745658 0.142668 1.980141 +v 0.740846 0.172506 1.977689 +v 0.734190 0.205673 1.974703 +v 0.726272 0.204321 1.987949 +v 0.718321 0.202084 2.001028 +v 0.628803 -0.053263 2.144734 +v 0.645432 -0.055172 2.127449 +v 0.627990 -0.035679 2.146761 +v 0.644912 -0.036979 2.129210 +v 0.657574 -0.058829 2.113711 +v 0.657413 -0.039455 2.115380 +v 0.657124 -0.019851 2.116690 +v 0.644461 -0.018585 2.130498 +v 0.627404 -0.017912 2.148115 +v 0.630327 0.087177 2.139294 +v 0.645255 0.089981 2.123319 +v 0.629189 0.104461 2.137733 +v 0.642967 0.108069 2.122873 +v 0.655862 0.095686 2.110729 +v 0.652589 0.114998 2.110999 +v 0.644854 0.136454 2.114974 +v 0.636120 0.127962 2.126108 +v 0.623950 0.122963 2.139686 +v -0.062609 0.795521 0.022996 +v -0.062754 0.797361 0.021715 +v 0.000000 0.799830 0.021715 +v 0.000000 0.797985 0.022996 +v -0.062608 0.795510 0.028075 +v 0.000000 0.797974 0.028075 +v -0.124831 0.788149 0.028075 +v -0.124833 0.788161 0.022996 +v -0.125121 0.789983 0.021715 +v -0.063181 0.802784 0.111857 +v -0.062738 0.797167 0.106276 +v 0.000000 0.799636 0.106276 +v 0.000000 0.805270 0.111857 +v -0.063953 0.812603 0.117523 +v 0.000000 0.815120 0.117523 +v -0.127513 0.805084 0.117523 +v -0.125972 0.795356 0.111857 +v -0.125091 0.789791 0.106276 +v -0.088215 1.120876 0.360559 +v -0.086923 1.104465 0.358702 +v 0.000000 1.107886 0.358702 +v 0.000000 1.124348 0.360559 +v 0.000000 1.197354 0.360548 +v -0.093943 1.193658 0.360548 +v -0.187308 1.182613 0.360548 +v -0.175887 1.110505 0.360560 +v -0.173312 1.094246 0.358702 +v -0.098571 1.252464 0.244878 +v -0.098359 1.249770 0.295392 +v 0.000000 1.253641 0.295392 +v 0.000000 1.256343 0.244878 +v -0.098646 1.253413 0.193502 +v 0.000000 1.257295 0.193502 +v -0.196684 1.241815 0.193502 +v -0.196535 1.240875 0.244878 +v -0.196113 1.238206 0.295392 +v -0.105213 1.336859 0.062279 +v -0.104991 1.334033 0.069397 +v 0.000000 1.338164 0.069397 +v 0.000000 1.340999 0.062279 +v -0.105370 1.338851 0.053092 +v 0.000000 1.342998 0.053092 +v -0.210091 1.326463 0.053092 +v -0.209779 1.324489 0.062279 +v -0.209335 1.321689 0.069397 +v -0.186285 0.775933 0.022996 +v -0.186716 0.777727 0.021715 +v -0.186283 0.775922 0.028075 +v -0.246588 0.758918 0.028075 +v -0.246591 0.758929 0.022996 +v -0.247161 0.760684 0.021715 +v -0.187986 0.783017 0.111857 +v -0.186671 0.777538 0.106276 +v -0.190285 0.792594 0.117523 +v -0.251886 0.775225 0.117523 +v -0.248842 0.765857 0.111857 +v -0.247101 0.760499 0.106276 +v -0.262473 1.093277 0.360560 +v -0.258630 1.077270 0.358702 +v -0.279516 1.164266 0.360548 +v -0.370003 1.138752 0.360548 +v -0.347443 1.069318 0.360560 +v -0.342356 1.053662 0.358702 +v -0.293286 1.221624 0.244878 +v -0.292655 1.218997 0.295392 +v -0.293508 1.222550 0.193502 +v -0.388526 1.195758 0.193502 +v -0.388231 1.194853 0.244878 +v -0.387397 1.192283 0.295392 +v -0.313049 1.303941 0.062279 +v -0.312387 1.301184 0.069397 +v -0.313515 1.305884 0.053092 +v -0.415009 1.277267 0.053092 +v -0.414392 1.275366 0.062279 +v -0.413516 1.272670 0.069397 +v -0.305375 0.737239 0.022996 +v -0.306081 0.738943 0.021715 +v -0.305370 0.737228 0.028075 +v -0.362273 0.711000 0.028075 +v -0.362278 0.711010 0.022996 +v -0.363116 0.712654 0.021715 +v -0.308162 0.743969 0.111857 +v -0.306006 0.738764 0.106276 +v -0.311932 0.753069 0.117523 +v -0.370057 0.726277 0.117523 +v -0.365585 0.717501 0.111857 +v -0.363028 0.712481 0.106276 +v -0.430268 1.038757 0.360560 +v -0.423968 1.023548 0.358702 +v -0.458205 1.106206 0.360548 +v -0.543587 1.066851 0.360548 +v -0.510443 1.001801 0.360560 +v -0.502969 0.987133 0.358702 +v -0.480779 1.160704 0.244878 +v -0.479746 1.158207 0.295392 +v -0.481144 1.161583 0.193502 +v -0.570799 1.120258 0.193502 +v -0.570367 1.119409 0.244878 +v -0.569140 1.117002 0.295392 +v -0.513175 1.238915 0.062279 +v -0.512091 1.236297 0.069397 +v -0.513941 1.240762 0.053092 +v -0.609708 1.196620 0.053092 +v -0.608800 1.194839 0.062279 +v -0.607513 1.192313 0.069397 +v -0.416945 0.680391 0.022996 +v -0.417909 0.681964 0.021715 +v -0.416939 0.680381 0.028075 +v -0.469038 0.645574 0.028076 +v -0.469044 0.645583 0.022996 +v -0.470129 0.647076 0.021715 +v -0.420751 0.686602 0.111857 +v -0.417807 0.681798 0.106276 +v -0.425897 0.695000 0.117523 +v -0.479115 0.659446 0.117523 +v -0.473326 0.651477 0.111857 +v -0.470015 0.646919 0.106276 +v -0.587467 0.958659 0.360560 +v -0.578865 0.944623 0.358702 +v -0.625612 1.020908 0.360548 +v -0.703787 0.968680 0.360548 +v -0.660874 0.909616 0.360560 +v -0.651198 0.896298 0.358702 +v -0.656434 1.071203 0.244879 +v -0.655022 1.068899 0.295392 +v -0.656931 1.072015 0.193502 +v -0.739019 1.017173 0.193502 +v -0.738459 1.016402 0.244879 +v -0.736871 1.014217 0.295392 +v -0.700666 1.143384 0.062279 +v -0.699185 1.140967 0.069397 +v -0.701711 1.145088 0.053092 +v -0.789394 1.086508 0.053092 +v -0.788219 1.084891 0.062279 +v -0.786553 1.082597 0.069397 +v -0.518247 0.606790 0.022996 +v -0.519445 0.608193 0.021715 +v -0.518239 0.606781 0.028076 +v -0.564252 0.564252 0.028076 +v -0.564260 0.564260 0.022996 +v -0.565565 0.565565 0.021715 +v -0.522978 0.612329 0.111857 +v -0.519319 0.608045 0.106276 +v -0.529375 0.619819 0.117523 +v -0.576376 0.576376 0.117523 +v -0.569412 0.569412 0.111857 +v -0.565428 0.565428 0.106276 +v -0.730201 0.854956 0.360560 +v -0.719510 0.842439 0.358702 +v -0.777615 0.910471 0.360548 +v -0.846657 0.846657 0.360548 +v -0.795033 0.795034 0.360560 +v -0.783393 0.783393 0.358702 +v -0.815925 0.955326 0.244879 +v -0.814170 0.953271 0.295392 +v -0.816543 0.956050 0.193502 +v -0.889041 0.889041 0.193502 +v -0.888368 0.888368 0.244879 +v -0.886458 0.886458 0.295392 +v -0.870904 1.019698 0.062279 +v -0.869064 1.017543 0.069397 +v -0.872203 1.021218 0.053092 +v -0.949642 0.949642 0.053092 +v -0.948229 0.948229 0.062279 +v -0.946225 0.946225 0.069397 +v -0.606789 0.518247 0.022996 +v -0.608192 0.519445 0.021715 +v -0.606781 0.518241 0.028076 +v -0.645574 0.469038 0.028076 +v -0.645583 0.469044 0.022996 +v -0.647076 0.470129 0.021715 +v -0.612329 0.522978 0.111857 +v -0.608045 0.519319 0.106276 +v -0.619819 0.529375 0.117523 +v -0.659445 0.479116 0.117523 +v -0.651477 0.473326 0.111857 +v -0.646919 0.470015 0.106276 +v -0.854956 0.730202 0.360560 +v -0.842438 0.719511 0.358702 +v -0.910471 0.777616 0.360548 +v -0.968680 0.703787 0.360548 +v -0.909616 0.660875 0.360560 +v -0.896298 0.651199 0.358702 +v -0.955326 0.815925 0.244879 +v -0.953271 0.814170 0.295392 +v -0.956050 0.816543 0.193502 +v -1.017173 0.739019 0.193502 +v -1.016402 0.738459 0.244879 +v -1.014217 0.736871 0.295392 +v -1.019698 0.870905 0.062279 +v -1.017543 0.869064 0.069397 +v -1.021218 0.872203 0.053092 +v -1.086508 0.789394 0.053092 +v -1.084891 0.788219 0.062279 +v -1.082597 0.786553 0.069397 +v -0.680391 0.416945 0.022996 +v -0.681964 0.417909 0.021715 +v -0.680381 0.416939 0.028076 +v -0.711000 0.362273 0.028076 +v -0.711010 0.362278 0.022996 +v -0.712654 0.363116 0.021715 +v -0.686602 0.420751 0.111857 +v -0.681798 0.417807 0.106276 +v -0.695000 0.425897 0.117523 +v -0.726277 0.370057 0.117523 +v -0.717501 0.365585 0.111857 +v -0.712481 0.363028 0.106276 +v -0.958659 0.587467 0.360560 +v -0.944623 0.578866 0.358702 +v -1.020907 0.625613 0.360548 +v -1.066850 0.543587 0.360548 +v -1.001801 0.510444 0.360560 +v -0.987133 0.502970 0.358702 +v -1.071203 0.656434 0.244879 +v -1.068899 0.655022 0.295392 +v -1.072015 0.656931 0.193503 +v -1.120257 0.570799 0.193503 +v -1.119409 0.570367 0.244879 +v -1.117002 0.569141 0.295392 +v -1.143384 0.700666 0.062279 +v -1.140967 0.699185 0.069397 +v -1.145088 0.701711 0.053092 +v -1.196619 0.609708 0.053092 +v -1.194838 0.608800 0.062279 +v -1.192313 0.607513 0.069397 +v -0.737238 0.305375 0.022996 +v -0.738943 0.306081 0.021715 +v -0.737228 0.305370 0.028076 +v -0.758918 0.246588 0.028076 +v -0.758929 0.246591 0.022996 +v -0.760684 0.247162 0.021715 +v -0.743969 0.308163 0.111857 +v -0.738764 0.306006 0.106276 +v -0.753069 0.311932 0.117523 +v -0.775225 0.251886 0.117523 +v -0.765857 0.248843 0.111857 +v -0.760499 0.247101 0.106276 +v -1.038757 0.430268 0.360560 +v -1.023548 0.423968 0.358702 +v -1.106206 0.458206 0.360548 +v -1.138751 0.370003 0.360548 +v -1.069318 0.347443 0.360560 +v -1.053662 0.342356 0.358702 +v -1.160704 0.480780 0.244879 +v -1.158207 0.479746 0.295392 +v -1.161583 0.481144 0.193503 +v -1.195758 0.388526 0.193503 +v -1.194853 0.388232 0.244879 +v -1.192283 0.387397 0.295392 +v -1.238915 0.513175 0.062279 +v -1.236296 0.512091 0.069397 +v -1.240762 0.513941 0.053092 +v -1.277267 0.415009 0.053092 +v -1.275366 0.414392 0.062279 +v -1.272670 0.413516 0.069397 +v -0.775933 0.186285 0.022996 +v -0.777727 0.186716 0.021715 +v -0.775922 0.186283 0.028076 +v -0.788149 0.124831 0.028076 +v -0.788160 0.124833 0.022996 +v -0.789983 0.125121 0.021715 +v -0.783017 0.187986 0.111857 +v -0.777538 0.186671 0.106276 +v -0.792594 0.190285 0.117523 +v -0.805084 0.127513 0.117523 +v -0.795356 0.125972 0.111857 +v -0.789791 0.125091 0.106276 +v -1.093276 0.262473 0.360560 +v -1.077269 0.258630 0.358702 +v -1.164266 0.279516 0.360548 +v -1.182613 0.187308 0.360548 +v -1.110505 0.175887 0.360560 +v -1.094246 0.173312 0.358702 +v -1.221624 0.293286 0.244879 +v -1.218997 0.292656 0.295392 +v -1.222550 0.293509 0.193503 +v -1.241815 0.196685 0.193503 +v -1.240875 0.196536 0.244879 +v -1.238206 0.196113 0.295392 +v -1.303940 0.313049 0.062279 +v -1.301184 0.312387 0.069397 +v -1.305884 0.313515 0.053092 +v -1.326463 0.210091 0.053092 +v -1.324489 0.209779 0.062279 +v -1.321689 0.209335 0.069397 +v -0.795521 0.062609 0.022996 +v -0.797361 0.062754 0.021715 +v -0.795510 0.062608 0.028076 +v -0.797973 0.000000 0.028076 +v -0.797985 0.000000 0.022996 +v -0.799830 0.000000 0.021715 +v -0.802784 0.063181 0.111857 +v -0.797167 0.062739 0.106276 +v -0.812603 0.063953 0.117523 +v -0.815120 0.000000 0.117523 +v -0.805270 0.000000 0.111857 +v -0.799636 0.000000 0.106276 +v -1.120876 0.088215 0.360560 +v -1.104465 0.086924 0.358702 +v -1.193658 0.093943 0.360548 +v -1.197354 0.000000 0.360548 +v -1.124348 0.000000 0.360560 +v -1.107886 0.000000 0.358702 +v -1.252464 0.098571 0.244879 +v -1.249770 0.098359 0.295392 +v -1.253413 0.098646 0.193503 +v -1.257295 0.000000 0.193503 +v -1.256343 0.000000 0.244879 +v -1.253641 0.000000 0.295392 +v -1.336858 0.105213 0.062279 +v -1.334033 0.104991 0.069397 +v -1.338851 0.105370 0.053092 +v -1.342998 0.000000 0.053092 +v -1.340999 0.000000 0.062279 +v -1.338164 0.000000 0.069397 +v 0.563271 0.568336 0.022996 +v 0.565111 0.569137 0.021715 +v 0.568783 0.567770 0.022047 +v 0.567702 0.566866 0.022996 +v 0.563262 0.568328 0.028075 +v 0.567693 0.566858 0.028075 +v 0.549958 0.579691 0.028075 +v 0.549966 0.579699 0.022996 +v 0.551372 0.580911 0.021715 +v 0.568861 0.573077 0.110196 +v 0.564550 0.569402 0.105063 +v 0.567529 0.568721 0.104223 +v 0.571679 0.570563 0.107413 +v 0.576353 0.579849 0.115659 +v 0.580101 0.576907 0.112537 +v 0.562022 0.591974 0.117057 +v 0.555099 0.584880 0.111442 +v 0.551133 0.580871 0.105972 +v 0.794832 0.800175 0.358966 +v 0.783351 0.788589 0.357130 +v 0.788425 0.785387 0.354499 +v 0.799716 0.796703 0.356297 +v 0.849791 0.846892 0.356286 +v 0.845750 0.851555 0.358954 +v 0.825353 0.869518 0.360149 +v 0.775191 0.816636 0.360161 +v 0.763880 0.804712 0.358309 +v 0.886623 0.892803 0.244267 +v 0.884778 0.890940 0.294475 +v 0.887787 0.884977 0.292939 +v 0.889537 0.886731 0.243243 +v 0.887281 0.893466 0.193175 +v 0.890172 0.887367 0.192627 +v 0.866469 0.912867 0.193420 +v 0.865816 0.912179 0.244725 +v 0.863969 0.910232 0.295162 +v 0.946685 0.953401 0.062147 +v 0.944684 0.951382 0.069057 +v 0.948320 0.945641 0.068488 +v 0.950329 0.947654 0.061925 +v 0.948075 0.954803 0.053059 +v 0.951687 0.949015 0.053003 +v 0.925610 0.975201 0.053083 +v 0.924237 0.973754 0.062246 +v 0.922284 0.971695 0.069312 +v 0.416944 0.680391 0.022996 +v 0.417908 0.681964 0.021715 +v 0.469444 0.647661 0.021715 +v 0.468361 0.646167 0.022996 +v 0.416938 0.680381 0.028075 +v 0.468355 0.646157 0.028075 +v 0.362273 0.711000 0.028075 +v 0.362278 0.711010 0.022996 +v 0.363115 0.712654 0.021715 +v 0.420751 0.686602 0.111857 +v 0.417807 0.681798 0.106276 +v 0.469330 0.647503 0.106276 +v 0.472637 0.652066 0.111857 +v 0.425897 0.695000 0.117523 +v 0.478418 0.660041 0.117523 +v 0.370057 0.726277 0.117523 +v 0.365585 0.717501 0.111857 +v 0.363027 0.712481 0.106276 +v 0.587467 0.958659 0.360559 +v 0.578866 0.944623 0.358702 +v 0.650250 0.897108 0.358702 +v 0.659912 0.910438 0.360559 +v 0.702762 0.969555 0.360548 +v 0.625612 1.020908 0.360548 +v 0.543588 1.066851 0.360548 +v 0.510443 1.001801 0.360559 +v 0.502970 0.987133 0.358702 +v 0.656433 1.071203 0.244878 +v 0.655022 1.068899 0.295392 +v 0.735798 1.015133 0.295392 +v 0.737384 1.017321 0.244878 +v 0.656931 1.072015 0.193502 +v 0.737943 1.018092 0.193502 +v 0.570800 1.120258 0.193502 +v 0.570368 1.119409 0.244878 +v 0.569140 1.117002 0.295392 +v 0.700666 1.143384 0.062279 +v 0.699185 1.140967 0.069397 +v 0.785408 1.083576 0.069397 +v 0.787071 1.085871 0.062279 +v 0.701710 1.145088 0.053092 +v 0.788244 1.087489 0.053092 +v 0.609707 1.196620 0.053092 +v 0.608800 1.194839 0.062279 +v 0.607513 1.192313 0.069396 +v 0.305374 0.737239 0.022996 +v 0.306080 0.738943 0.021715 +v 0.305370 0.737228 0.028075 +v 0.246588 0.758918 0.028075 +v 0.246591 0.758929 0.022996 +v 0.247161 0.760684 0.021715 +v 0.308162 0.743969 0.111857 +v 0.306006 0.738764 0.106276 +v 0.311931 0.753069 0.117523 +v 0.251886 0.775225 0.117523 +v 0.248842 0.765857 0.111857 +v 0.247101 0.760499 0.106276 +v 0.430267 1.038757 0.360559 +v 0.423968 1.023548 0.358702 +v 0.458206 1.106206 0.360548 +v 0.370003 1.138752 0.360548 +v 0.347443 1.069318 0.360559 +v 0.342356 1.053662 0.358702 +v 0.480779 1.160704 0.244878 +v 0.479745 1.158208 0.295392 +v 0.481144 1.161583 0.193502 +v 0.388526 1.195758 0.193502 +v 0.388231 1.194853 0.244878 +v 0.387396 1.192283 0.295392 +v 0.513175 1.238915 0.062279 +v 0.512091 1.236297 0.069397 +v 0.513941 1.240762 0.053092 +v 0.415009 1.277267 0.053092 +v 0.414392 1.275366 0.062279 +v 0.413516 1.272670 0.069397 +v 0.186285 0.775933 0.022996 +v 0.186716 0.777727 0.021715 +v 0.186282 0.775922 0.028075 +v 0.124831 0.788149 0.028075 +v 0.124832 0.788161 0.022996 +v 0.125121 0.789983 0.021715 +v 0.187986 0.783017 0.111857 +v 0.186671 0.777538 0.106276 +v 0.190285 0.792594 0.117523 +v 0.127513 0.805084 0.117523 +v 0.125972 0.795356 0.111857 +v 0.125091 0.789791 0.106276 +v 0.262473 1.093277 0.360559 +v 0.258630 1.077270 0.358702 +v 0.279516 1.164266 0.360548 +v 0.187308 1.182613 0.360548 +v 0.175887 1.110505 0.360559 +v 0.173312 1.094246 0.358702 +v 0.293286 1.221624 0.244878 +v 0.292655 1.218997 0.295392 +v 0.293508 1.222550 0.193502 +v 0.196684 1.241815 0.193502 +v 0.196535 1.240875 0.244878 +v 0.196113 1.238206 0.295392 +v 0.313049 1.303941 0.062279 +v 0.312387 1.301184 0.069397 +v 0.313515 1.305884 0.053092 +v 0.210091 1.326463 0.053092 +v 0.209778 1.324489 0.062279 +v 0.209335 1.321689 0.069397 +v 0.062609 0.795521 0.022996 +v 0.062754 0.797361 0.021715 +v 0.062608 0.795510 0.028075 +v 0.063180 0.802784 0.111857 +v 0.062738 0.797167 0.106276 +v 0.063953 0.812603 0.117523 +v 0.088215 1.120876 0.360559 +v 0.086923 1.104465 0.358702 +v 0.093943 1.193658 0.360548 +v 0.098571 1.252464 0.244878 +v 0.098359 1.249770 0.295392 +v 0.098646 1.253413 0.193502 +v 0.105213 1.336859 0.062279 +v 0.104991 1.334033 0.069397 +v 0.105370 1.338851 0.053092 +v -0.083818 1.065009 0.332047 +v -0.167120 1.055154 0.332047 +v -0.166026 1.048244 0.303722 +v -0.083269 1.058034 0.303722 +v 0.000000 1.068307 0.332047 +v 0.000000 1.061310 0.303722 +v 0.000000 1.078596 0.344249 +v -0.084625 1.075266 0.344249 +v -0.168730 1.065316 0.344249 +v -0.096283 1.223387 0.350053 +v -0.191973 1.212067 0.350053 +v -0.189767 1.198142 0.357912 +v -0.095177 1.209332 0.357912 +v 0.000000 1.227176 0.350053 +v 0.000000 1.213077 0.357912 +v 0.000000 1.238983 0.338096 +v -0.097209 1.235157 0.338096 +v -0.193820 1.223729 0.338096 +v -0.249390 1.038785 0.332047 +v -0.330125 1.016020 0.332047 +v -0.327963 1.009366 0.303722 +v -0.247757 1.031981 0.303722 +v -0.251792 1.048789 0.344249 +v -0.333305 1.025805 0.344249 +v -0.286477 1.193263 0.350053 +v -0.379219 1.167114 0.350053 +v -0.374862 1.153705 0.357912 +v -0.283186 1.179554 0.357912 +v -0.289234 1.204744 0.338096 +v -0.382867 1.178343 0.338096 +v -0.408822 0.986982 0.332047 +v -0.485001 0.951869 0.332047 +v -0.481824 0.945634 0.303722 +v -0.406144 0.980518 0.303722 +v -0.412759 0.996488 0.344249 +v -0.489672 0.961036 0.344249 +v -0.469617 1.133757 0.350053 +v -0.557126 1.093422 0.350053 +v -0.550725 1.080860 0.357912 +v -0.464222 1.120732 0.357912 +v -0.474135 1.144665 0.338096 +v -0.562486 1.103942 0.338097 +v -0.558186 0.910877 0.332047 +v -0.627935 0.864278 0.332047 +v -0.623822 0.858618 0.303722 +v -0.554530 0.904911 0.303722 +v -0.563561 0.919649 0.344249 +v -0.633982 0.872602 0.344249 +v -0.641194 1.046335 0.350053 +v -0.721315 0.992806 0.350053 +v -0.713028 0.981400 0.357912 +v -0.633827 1.034313 0.357912 +v -0.647363 1.056401 0.338097 +v -0.728255 1.002358 0.338097 +v -0.693806 0.812343 0.332047 +v -0.755407 0.755407 0.332047 +v -0.750459 0.750460 0.303722 +v -0.689262 0.807023 0.303722 +v -0.700488 0.820166 0.344249 +v -0.762682 0.762682 0.344249 +v -0.796983 0.933147 0.350053 +v -0.867744 0.867744 0.350053 +v -0.857774 0.857775 0.357912 +v -0.787826 0.922427 0.357912 +v -0.804651 0.942125 0.338097 +v -0.876093 0.876093 0.338097 +v -0.812343 0.693806 0.332047 +v -0.864278 0.627935 0.332047 +v -0.858618 0.623822 0.303722 +v -0.807023 0.689262 0.303722 +v -0.820166 0.700488 0.344249 +v -0.872602 0.633982 0.344249 +v -0.933147 0.796983 0.350053 +v -0.992806 0.721316 0.350053 +v -0.981400 0.713028 0.357913 +v -0.922426 0.787827 0.357912 +v -0.942125 0.804651 0.338097 +v -1.002358 0.728255 0.338097 +v -0.910877 0.558186 0.332047 +v -0.951868 0.485002 0.332047 +v -0.945634 0.481825 0.303722 +v -0.904911 0.554530 0.303722 +v -0.919649 0.563562 0.344249 +v -0.961036 0.489673 0.344249 +v -1.046334 0.641194 0.350053 +v -1.093422 0.557126 0.350053 +v -1.080859 0.550725 0.357913 +v -1.034313 0.633828 0.357913 +v -1.056401 0.647363 0.338097 +v -1.103942 0.562486 0.338097 +v -0.986982 0.408822 0.332047 +v -1.016020 0.330126 0.332047 +v -1.009366 0.327963 0.303722 +v -0.980518 0.406144 0.303722 +v -0.996488 0.412759 0.344249 +v -1.025805 0.333305 0.344249 +v -1.133757 0.469618 0.350053 +v -1.167114 0.379219 0.350053 +v -1.153705 0.374862 0.357913 +v -1.120732 0.464223 0.357913 +v -1.144665 0.474136 0.338097 +v -1.178342 0.382867 0.338097 +v -1.038785 0.249390 0.332047 +v -1.055154 0.167120 0.332047 +v -1.048244 0.166026 0.303722 +v -1.031981 0.247757 0.303722 +v -1.048789 0.251792 0.344249 +v -1.065316 0.168730 0.344249 +v -1.193263 0.286478 0.350053 +v -1.212067 0.191973 0.350053 +v -1.198142 0.189767 0.357913 +v -1.179554 0.283186 0.357913 +v -1.204744 0.289234 0.338097 +v -1.223729 0.193820 0.338097 +v -1.065009 0.083818 0.332047 +v -1.068307 0.000000 0.332047 +v -1.061310 0.000000 0.303722 +v -1.058034 0.083269 0.303722 +v -1.075265 0.084625 0.344249 +v -1.078596 0.000000 0.344249 +v -1.223387 0.096283 0.350053 +v -1.227176 0.000000 0.350053 +v -1.213077 0.000000 0.357913 +v -1.209332 0.095177 0.357913 +v -1.235157 0.097209 0.338097 +v -1.238983 0.000000 0.338097 +v 0.690149 0.815467 0.332047 +v 0.627020 0.865059 0.332047 +v 0.622914 0.859394 0.303722 +v 0.685629 0.810126 0.303722 +v 0.736709 0.776066 0.331733 +v 0.731918 0.771014 0.303459 +v 0.743761 0.783502 0.343899 +v 0.696796 0.823320 0.344249 +v 0.633059 0.873390 0.344249 +v 0.792782 0.936735 0.350053 +v 0.720265 0.993703 0.350053 +v 0.711990 0.982287 0.357912 +v 0.783674 0.925973 0.357912 +v 0.845843 0.891119 0.349686 +v 0.836156 0.880907 0.357522 +v 0.853947 0.899663 0.337765 +v 0.800409 0.945748 0.338096 +v 0.727195 1.003264 0.338096 +v 0.558187 0.910877 0.332047 +v 0.485001 0.951869 0.332047 +v 0.481825 0.945634 0.303722 +v 0.554531 0.904911 0.303722 +v 0.563562 0.919649 0.344249 +v 0.489672 0.961036 0.344249 +v 0.641194 1.046335 0.350053 +v 0.557126 1.093422 0.350053 +v 0.550726 1.080860 0.357912 +v 0.633827 1.034313 0.357912 +v 0.647363 1.056401 0.338096 +v 0.562486 1.103942 0.338096 +v 0.408822 0.986982 0.332047 +v 0.330125 1.016020 0.332047 +v 0.327963 1.009366 0.303722 +v 0.406144 0.980518 0.303722 +v 0.412759 0.996488 0.344249 +v 0.333305 1.025805 0.344249 +v 0.469618 1.133757 0.350053 +v 0.379218 1.167114 0.350053 +v 0.374862 1.153705 0.357912 +v 0.464222 1.120732 0.357912 +v 0.474136 1.144665 0.338096 +v 0.382867 1.178343 0.338096 +v 0.249390 1.038785 0.332047 +v 0.167120 1.055154 0.332047 +v 0.166026 1.048244 0.303722 +v 0.247757 1.031981 0.303722 +v 0.251792 1.048789 0.344249 +v 0.168730 1.065316 0.344249 +v 0.286477 1.193263 0.350053 +v 0.191973 1.212067 0.350053 +v 0.189767 1.198142 0.357912 +v 0.283186 1.179554 0.357912 +v 0.289234 1.204744 0.338096 +v 0.193820 1.223729 0.338096 +v 0.083818 1.065009 0.332047 +v 0.083269 1.058034 0.303722 +v 0.084625 1.075265 0.344249 +v 0.096283 1.223387 0.350053 +v 0.095177 1.209332 0.357912 +v 0.097209 1.235157 0.338096 +v -0.085694 1.088840 0.353200 +v -0.170860 1.078765 0.353200 +v 0.000000 1.092212 0.353200 +v -0.254971 1.062029 0.353200 +v -0.337512 1.038755 0.353200 +v -0.417970 1.009067 0.353200 +v -0.495853 0.973168 0.353200 +v -0.570676 0.931259 0.353200 +v -0.641985 0.883618 0.353200 +v -0.709331 0.830520 0.353200 +v -0.772310 0.772310 0.353200 +v -0.830520 0.709331 0.353200 +v -0.883618 0.641986 0.353200 +v -0.931259 0.570676 0.353200 +v -0.973168 0.495854 0.353200 +v -1.009067 0.417970 0.353200 +v -1.038755 0.337512 0.353200 +v -1.062029 0.254971 0.353200 +v -1.078765 0.170860 0.353200 +v -1.088840 0.085694 0.353200 +v -1.092212 0.000000 0.353200 +v 0.705592 0.833714 0.353200 +v 0.641051 0.884416 0.353200 +v 0.753111 0.793359 0.352823 +v 0.715718 0.845678 0.358702 +v 0.570677 0.931259 0.353200 +v 0.495854 0.973168 0.353200 +v 0.417970 1.009067 0.353200 +v 0.337512 1.038755 0.353200 +v 0.254971 1.062029 0.353200 +v 0.170860 1.078765 0.353200 +v 0.085694 1.088840 0.353200 +v -0.098996 1.257856 0.128281 +v -0.098781 1.255128 0.144491 +v 0.000000 1.259015 0.144491 +v 0.000000 1.261752 0.128281 +v -0.099365 1.262556 0.114410 +v 0.000000 1.266466 0.114410 +v -0.198119 1.250874 0.114410 +v -0.197382 1.246218 0.128281 +v -0.196954 1.243515 0.144491 +v -0.294549 1.226884 0.128281 +v -0.293910 1.224223 0.144492 +v -0.295650 1.231468 0.114410 +v -0.391360 1.204481 0.114410 +v -0.389903 1.199997 0.128281 +v -0.389057 1.197394 0.144492 +v -0.482850 1.165701 0.128281 +v -0.481802 1.163173 0.144492 +v -0.484654 1.170057 0.114410 +v -0.574963 1.128430 0.114410 +v -0.572823 1.124229 0.128281 +v -0.571580 1.121791 0.144492 +v -0.659260 1.075815 0.128281 +v -0.657830 1.073482 0.144492 +v -0.661723 1.079835 0.114410 +v -0.744410 1.024593 0.114410 +v -0.741639 1.020779 0.128281 +v -0.740030 1.018565 0.144492 +v -0.819438 0.959439 0.128281 +v -0.817661 0.957358 0.144492 +v -0.822500 0.963024 0.114410 +v -0.895527 0.895527 0.114410 +v -0.892193 0.892193 0.128281 +v -0.890258 0.890258 0.144492 +v -0.959439 0.819438 0.128281 +v -0.957358 0.817661 0.144492 +v -0.963024 0.822500 0.114410 +v -1.024593 0.744410 0.114410 +v -1.020779 0.741639 0.128281 +v -1.018565 0.740030 0.144492 +v -1.075815 0.659260 0.128281 +v -1.073482 0.657830 0.144492 +v -1.079835 0.661723 0.114410 +v -1.128430 0.574963 0.114410 +v -1.124229 0.572823 0.128281 +v -1.121790 0.571580 0.144492 +v -1.165701 0.482850 0.128281 +v -1.163173 0.481802 0.144492 +v -1.170057 0.484654 0.114410 +v -1.204481 0.391360 0.114410 +v -1.199997 0.389903 0.128281 +v -1.197394 0.389057 0.144492 +v -1.226884 0.294549 0.128281 +v -1.224223 0.293910 0.144492 +v -1.231468 0.295650 0.114410 +v -1.250874 0.198119 0.114410 +v -1.246218 0.197382 0.128281 +v -1.243514 0.196954 0.144492 +v -1.257856 0.098996 0.128281 +v -1.255128 0.098781 0.144492 +v -1.262556 0.099365 0.114410 +v -1.266466 0.000000 0.114410 +v -1.261752 0.000000 0.128281 +v -1.259015 0.000000 0.144492 +v 0.890580 0.896794 0.127690 +v 0.888524 0.894720 0.144279 +v 0.891468 0.888665 0.143924 +v 0.893738 0.890940 0.126702 +v 0.894033 0.900277 0.113414 +v 0.897414 0.894623 0.111746 +v 0.872859 0.919600 0.114161 +v 0.869579 0.916143 0.128133 +v 0.867662 0.914124 0.144438 +v 0.659260 1.075815 0.128281 +v 0.657830 1.073482 0.144491 +v 0.738952 1.019485 0.144491 +v 0.740559 1.021701 0.128281 +v 0.661723 1.079835 0.114410 +v 0.743326 1.025518 0.114410 +v 0.574963 1.128430 0.114410 +v 0.572822 1.124229 0.128281 +v 0.571580 1.121791 0.144491 +v 0.482849 1.165701 0.128281 +v 0.481802 1.163173 0.144491 +v 0.484653 1.170057 0.114410 +v 0.391360 1.204481 0.114410 +v 0.389903 1.199997 0.128281 +v 0.389057 1.197394 0.144491 +v 0.294549 1.226884 0.128281 +v 0.293910 1.224223 0.144491 +v 0.295649 1.231468 0.114410 +v 0.198119 1.250874 0.114410 +v 0.197382 1.246218 0.128281 +v 0.196953 1.243515 0.144491 +v 0.098995 1.257856 0.128281 +v 0.098781 1.255128 0.144491 +v 0.099365 1.262556 0.114410 +v -0.104682 1.330110 0.076381 +v -0.103948 1.320786 0.082693 +v 0.000000 1.324876 0.082693 +v 0.000000 1.334229 0.076381 +v -0.208720 1.317802 0.076381 +v -0.207256 1.308565 0.082693 +v -0.311468 1.297358 0.076381 +v -0.309285 1.288264 0.082693 +v -0.412300 1.268927 0.076381 +v -0.409410 1.260032 0.082693 +v -0.510584 1.232661 0.076381 +v -0.507006 1.224020 0.082693 +v -0.605727 1.188807 0.076381 +v -0.601481 1.180473 0.082693 +v -0.697129 1.137612 0.076381 +v -0.692242 1.129637 0.082693 +v -0.784240 1.079414 0.076381 +v -0.778742 1.071847 0.082693 +v -0.866508 1.014551 0.076381 +v -0.860434 1.007439 0.082693 +v -0.943442 0.943442 0.076381 +v -0.936829 0.936829 0.082693 +v -1.014551 0.866508 0.076381 +v -1.007439 0.860434 0.082693 +v -1.079414 0.784240 0.076381 +v -1.071847 0.778742 0.082693 +v -1.137612 0.697129 0.076381 +v -1.129637 0.692242 0.082693 +v -1.188807 0.605727 0.076381 +v -1.180473 0.601481 0.082693 +v -1.232661 0.510584 0.076381 +v -1.224020 0.507006 0.082693 +v -1.268927 0.412300 0.076381 +v -1.260032 0.409410 0.082693 +v -1.297358 0.311468 0.076381 +v -1.288264 0.309285 0.082693 +v -1.317802 0.208720 0.076381 +v -1.308565 0.207256 0.082693 +v -1.330109 0.104682 0.076381 +v -1.320786 0.103948 0.082693 +v -1.334229 0.000000 0.076381 +v -1.324876 0.000000 0.082693 +v 0.941907 0.948580 0.075683 +v 0.935305 0.941919 0.081670 +v 0.938906 0.936207 0.079957 +v 0.945533 0.942847 0.074515 +v 0.919572 0.968836 0.076207 +v 0.913126 0.962042 0.082437 +v 0.697129 1.137612 0.076381 +v 0.692242 1.129637 0.082693 +v 0.777608 1.072816 0.082693 +v 0.783098 1.080389 0.076381 +v 0.605726 1.188807 0.076381 +v 0.601480 1.180474 0.082693 +v 0.510584 1.232661 0.076381 +v 0.507006 1.224020 0.082693 +v 0.412300 1.268927 0.076381 +v 0.409409 1.260032 0.082693 +v 0.311468 1.297358 0.076381 +v 0.309285 1.288264 0.082693 +v 0.208719 1.317802 0.076381 +v 0.207256 1.308565 0.082693 +v 0.104682 1.330110 0.076381 +v 0.103948 1.320786 0.082693 +v -0.105482 1.340275 0.039899 +v 0.000000 1.344426 0.039899 +v -0.105552 1.341161 0.028075 +v 0.000000 1.345315 0.028075 +v -0.210454 1.328752 0.028075 +v -0.210315 1.327874 0.039899 +v -0.313849 1.307273 0.039899 +v -0.314056 1.308138 0.028075 +v -0.415726 1.279471 0.028075 +v -0.415451 1.278625 0.039899 +v -0.514486 1.242082 0.039899 +v -0.514827 1.242903 0.028076 +v -0.610760 1.198684 0.028076 +v -0.610356 1.197892 0.039899 +v -0.702457 1.146306 0.039899 +v -0.702921 1.147064 0.028076 +v -0.790756 1.088382 0.028076 +v -0.790233 1.087663 0.039899 +v -0.873130 1.022304 0.039899 +v -0.873708 1.022980 0.028076 +v -0.951281 0.951281 0.028076 +v -0.950652 0.950652 0.039899 +v -1.022304 0.873130 0.039899 +v -1.022980 0.873708 0.028076 +v -1.088382 0.790756 0.028076 +v -1.087663 0.790233 0.039899 +v -1.146306 0.702457 0.039899 +v -1.147064 0.702921 0.028076 +v -1.198684 0.610760 0.028076 +v -1.197892 0.610356 0.039899 +v -1.242081 0.514486 0.039899 +v -1.242903 0.514827 0.028076 +v -1.279470 0.415725 0.028076 +v -1.278625 0.415451 0.039899 +v -1.307273 0.313849 0.039899 +v -1.308137 0.314056 0.028076 +v -1.328752 0.210454 0.028076 +v -1.327874 0.210315 0.039899 +v -1.340275 0.105482 0.039899 +v -1.341161 0.105552 0.028076 +v -1.345315 0.000000 0.028076 +v -1.344426 0.000000 0.039899 +v 0.949018 0.955756 0.039899 +v 0.952526 0.949856 0.039899 +v 0.949579 0.956322 0.028075 +v 0.952976 0.950308 0.028075 +v 0.927174 0.976851 0.028075 +v 0.926578 0.976222 0.039899 +v 0.702456 1.146306 0.039899 +v 0.789083 1.088646 0.039899 +v 0.702921 1.147064 0.028075 +v 0.789604 1.089366 0.028075 +v 0.610759 1.198684 0.028075 +v 0.610356 1.197892 0.039899 +v 0.514486 1.242082 0.039899 +v 0.514827 1.242903 0.028075 +v 0.415725 1.279471 0.028075 +v 0.415451 1.278625 0.039899 +v 0.313849 1.307273 0.039899 +v 0.314056 1.308138 0.028075 +v 0.210454 1.328752 0.028075 +v 0.210315 1.327874 0.039899 +v 0.105482 1.340275 0.039899 +v 0.105552 1.341161 0.028075 +v -0.082976 1.054304 0.246404 +v -0.082712 1.050952 0.188328 +v 0.000000 1.054207 0.188328 +v 0.000000 1.057570 0.246404 +v -0.165440 1.044549 0.246404 +v -0.164914 1.041228 0.188328 +v -0.246884 1.028344 0.246404 +v -0.246099 1.025075 0.188328 +v -0.326807 1.005809 0.246404 +v -0.325768 1.002611 0.188328 +v -0.404713 0.977062 0.246404 +v -0.403426 0.973956 0.188328 +v -0.480127 0.942301 0.246404 +v -0.478601 0.939305 0.188328 +v -0.552575 0.901722 0.246404 +v -0.550819 0.898855 0.188328 +v -0.621623 0.855592 0.246404 +v -0.619647 0.852871 0.188328 +v -0.686833 0.804178 0.246404 +v -0.684649 0.801621 0.188328 +v -0.747814 0.747814 0.246404 +v -0.745437 0.745437 0.188328 +v -0.804178 0.686833 0.246404 +v -0.801621 0.684649 0.188328 +v -0.855592 0.621623 0.246404 +v -0.852871 0.619647 0.188328 +v -0.901722 0.552576 0.246404 +v -0.898855 0.550819 0.188328 +v -0.942301 0.480127 0.246404 +v -0.939305 0.478601 0.188328 +v -0.977062 0.404713 0.246404 +v -0.973956 0.403426 0.188328 +v -1.005808 0.326807 0.246404 +v -1.002611 0.325768 0.188328 +v -1.028344 0.246884 0.246404 +v -1.025074 0.246099 0.188328 +v -1.044549 0.165441 0.246404 +v -1.041228 0.164915 0.188328 +v -1.054304 0.082976 0.246404 +v -1.050952 0.082712 0.188328 +v -1.057570 0.000000 0.246404 +v -1.054207 0.000000 0.188328 +v 0.748425 0.753345 0.245628 +v 0.746021 0.750920 0.187669 +v 0.751897 0.748775 0.186565 +v 0.754360 0.751243 0.244329 +v 0.751022 0.755965 0.302669 +v 0.756892 0.753782 0.300907 +v 0.729350 0.768308 0.246210 +v 0.727026 0.765857 0.188163 +v 0.552576 0.901722 0.246404 +v 0.550819 0.898855 0.188328 +v 0.618745 0.853642 0.188328 +v 0.620718 0.856365 0.246404 +v 0.480127 0.942302 0.246404 +v 0.478600 0.939306 0.188328 +v 0.404713 0.977062 0.246404 +v 0.403426 0.973956 0.188328 +v 0.326807 1.005808 0.246404 +v 0.325768 1.002611 0.188328 +v 0.246884 1.028344 0.246404 +v 0.246099 1.025075 0.188328 +v 0.165440 1.044549 0.246404 +v 0.164914 1.041228 0.188328 +v 0.082976 1.054304 0.246404 +v 0.082712 1.050952 0.188328 +v -0.080433 1.022001 0.130196 +v -0.077740 0.987774 0.122188 +v 0.000000 0.990833 0.122188 +v 0.000000 1.025166 0.130196 +v -0.081518 1.035787 0.142417 +v 0.000000 1.038994 0.142417 +v -0.162535 1.026203 0.142417 +v -0.160371 1.012544 0.130196 +v -0.155001 0.978635 0.122188 +v -0.239319 0.996836 0.130196 +v -0.231305 0.963452 0.122188 +v -0.242547 1.010282 0.142417 +v -0.321067 0.988142 0.142417 +v -0.316794 0.974991 0.130196 +v -0.306185 0.942338 0.122188 +v -0.392312 0.947125 0.130196 +v -0.379174 0.915406 0.122188 +v -0.397604 0.959901 0.142417 +v -0.471694 0.925751 0.142417 +v -0.465416 0.913429 0.130196 +v -0.449829 0.882839 0.122188 +v -0.535645 0.874093 0.130196 +v -0.517707 0.844820 0.122188 +v -0.542871 0.885884 0.142417 +v -0.610705 0.840564 0.142417 +v -0.602577 0.829377 0.130196 +v -0.582397 0.801601 0.122188 +v -0.665788 0.779538 0.130196 +v -0.643491 0.753432 0.122188 +v -0.674769 0.790054 0.142417 +v -0.734679 0.734680 0.142417 +v -0.724901 0.724901 0.130196 +v -0.700625 0.700625 0.122188 +v -0.779538 0.665788 0.130196 +v -0.753432 0.643491 0.122188 +v -0.790053 0.674769 0.142417 +v -0.840564 0.610705 0.142417 +v -0.829376 0.602577 0.130196 +v -0.801601 0.582397 0.122188 +v -0.874093 0.535645 0.130196 +v -0.844820 0.517707 0.122188 +v -0.885884 0.542871 0.142417 +v -0.925750 0.471694 0.142417 +v -0.913429 0.465416 0.130196 +v -0.882839 0.449829 0.122188 +v -0.947125 0.392313 0.130196 +v -0.915406 0.379174 0.122188 +v -0.959901 0.397605 0.142417 +v -0.988142 0.321067 0.142417 +v -0.974990 0.316794 0.130196 +v -0.942338 0.306185 0.122188 +v -0.996836 0.239319 0.130196 +v -0.963452 0.231305 0.122188 +v -1.010282 0.242548 0.142417 +v -1.026202 0.162535 0.142417 +v -1.012544 0.160372 0.130196 +v -0.978634 0.155001 0.122188 +v -1.022000 0.080433 0.130196 +v -0.987774 0.077740 0.122188 +v -1.035786 0.081518 0.142417 +v -1.038994 0.000000 0.142417 +v -1.025166 0.000000 0.130196 +v -0.990833 0.000000 0.122188 +v 0.724908 0.729623 0.128631 +v 0.700433 0.704930 0.120512 +v 0.704715 0.701495 0.117704 +v 0.729681 0.726515 0.126010 +v 0.734989 0.739792 0.141084 +v 0.740334 0.737189 0.138850 +v 0.716467 0.754733 0.142084 +v 0.706857 0.744607 0.129804 +v 0.683135 0.719606 0.121769 +v 0.535644 0.874093 0.130196 +v 0.517707 0.844820 0.122188 +v 0.581549 0.802325 0.122188 +v 0.601699 0.830126 0.130196 +v 0.542871 0.885884 0.142417 +v 0.609816 0.841323 0.142417 +v 0.471693 0.925751 0.142417 +v 0.465416 0.913429 0.130196 +v 0.449829 0.882839 0.122188 +v 0.392312 0.947125 0.130196 +v 0.379174 0.915406 0.122188 +v 0.397604 0.959901 0.142417 +v 0.321067 0.988142 0.142417 +v 0.316794 0.974991 0.130196 +v 0.306184 0.942338 0.122188 +v 0.239319 0.996836 0.130196 +v 0.231304 0.963452 0.122188 +v 0.242547 1.010282 0.142417 +v 0.162535 1.026203 0.142417 +v 0.160371 1.012544 0.130196 +v 0.155001 0.978635 0.122188 +v 0.080433 1.022001 0.130196 +v 0.077740 0.987774 0.122188 +v 0.081518 1.035787 0.142417 +v -0.064762 0.822876 0.119519 +v 0.000000 0.825425 0.119519 +v -0.066829 0.849140 0.119519 +v 0.000000 0.851770 0.119519 +v -0.133246 0.841283 0.119519 +v -0.129125 0.815262 0.119519 +v -0.192691 0.802614 0.119519 +v -0.198841 0.828232 0.119519 +v -0.263212 0.810082 0.119519 +v -0.255070 0.785025 0.119519 +v -0.315875 0.762589 0.119519 +v -0.325957 0.786929 0.119519 +v -0.386696 0.758933 0.119519 +v -0.374735 0.735459 0.119519 +v -0.431282 0.703787 0.119519 +v -0.445047 0.726250 0.119519 +v -0.500657 0.689096 0.119519 +v -0.485173 0.667782 0.119519 +v -0.536067 0.627655 0.119519 +v -0.553177 0.647688 0.119519 +v -0.602292 0.602292 0.119519 +v -0.583663 0.583663 0.119519 +v -0.627654 0.536067 0.119519 +v -0.647688 0.553177 0.119519 +v -0.689096 0.500659 0.119519 +v -0.667782 0.485173 0.119519 +v -0.703787 0.431282 0.119519 +v -0.726250 0.445047 0.119519 +v -0.758933 0.386696 0.119519 +v -0.735458 0.374735 0.119519 +v -0.762589 0.315875 0.119519 +v -0.786929 0.325957 0.119519 +v -0.810081 0.263212 0.119519 +v -0.785025 0.255071 0.119519 +v -0.802614 0.192691 0.119519 +v -0.828231 0.198841 0.119519 +v -0.841283 0.133246 0.119519 +v -0.815262 0.129125 0.119519 +v -0.822876 0.064762 0.119519 +v -0.849140 0.066829 0.119519 +v -0.851770 0.000000 0.119519 +v -0.825424 0.000000 0.119519 +v 0.583903 0.587352 0.117805 +v 0.588139 0.584661 0.114935 +v 0.602454 0.606070 0.117805 +v 0.606680 0.603243 0.114935 +v 0.587339 0.618628 0.119091 +v 0.569193 0.599501 0.119091 +v 0.431281 0.703787 0.119519 +v 0.484466 0.668386 0.119519 +v 0.445047 0.726250 0.119519 +v 0.499929 0.689719 0.119519 +v 0.386696 0.758933 0.119519 +v 0.374735 0.735459 0.119519 +v 0.315875 0.762589 0.119519 +v 0.325957 0.786929 0.119519 +v 0.263212 0.810082 0.119519 +v 0.255070 0.785025 0.119519 +v 0.192691 0.802614 0.119519 +v 0.198841 0.828232 0.119519 +v 0.133246 0.841283 0.119519 +v 0.129125 0.815262 0.119519 +v 0.064762 0.822876 0.119519 +v 0.066829 0.849140 0.119519 +v -0.062592 0.795308 0.100423 +v -0.062594 0.795330 0.093749 +v 0.000000 0.797793 0.093749 +v 0.000000 0.797771 0.100423 +v -0.124799 0.787949 0.100423 +v -0.124802 0.787970 0.093749 +v -0.186235 0.775725 0.100423 +v -0.186240 0.775746 0.093749 +v -0.246525 0.758725 0.100423 +v -0.246532 0.758746 0.093749 +v -0.305293 0.737041 0.100423 +v -0.305301 0.737061 0.093749 +v -0.362181 0.710819 0.100423 +v -0.362191 0.710839 0.093749 +v -0.416833 0.680208 0.100423 +v -0.416844 0.680227 0.093749 +v -0.468918 0.645410 0.100423 +v -0.468931 0.645428 0.093749 +v -0.518109 0.606627 0.100423 +v -0.518122 0.606643 0.093749 +v -0.564109 0.564109 0.100423 +v -0.564124 0.564124 0.093749 +v -0.606627 0.518109 0.100423 +v -0.606643 0.518122 0.093749 +v -0.645410 0.468919 0.100423 +v -0.645428 0.468931 0.093749 +v -0.680208 0.416833 0.100423 +v -0.680227 0.416844 0.093749 +v -0.710819 0.362181 0.100423 +v -0.710838 0.362191 0.093749 +v -0.737041 0.305293 0.100423 +v -0.737061 0.305301 0.093749 +v -0.758725 0.246525 0.100423 +v -0.758746 0.246532 0.093749 +v -0.775725 0.186235 0.100423 +v -0.775746 0.186241 0.093749 +v -0.787949 0.124799 0.100423 +v -0.787970 0.124803 0.093749 +v -0.795308 0.062592 0.100423 +v -0.795330 0.062594 0.093749 +v -0.797771 0.000000 0.100423 +v -0.797793 0.000000 0.093749 +v 0.563121 0.568185 0.099786 +v 0.563135 0.568199 0.093590 +v 0.567460 0.566831 0.093985 +v 0.567138 0.567129 0.100118 +v 0.549819 0.579544 0.100264 +v 0.549833 0.579559 0.093709 +v 0.416832 0.680208 0.100423 +v 0.416844 0.680227 0.093749 +v 0.468249 0.646011 0.093749 +v 0.468236 0.645993 0.100423 +v 0.362181 0.710819 0.100423 +v 0.362190 0.710839 0.093749 +v 0.305292 0.737041 0.100423 +v 0.305301 0.737061 0.093749 +v 0.246525 0.758725 0.100423 +v 0.246532 0.758746 0.093749 +v 0.186235 0.775725 0.100423 +v 0.186240 0.775746 0.093749 +v 0.124799 0.787949 0.100423 +v 0.124802 0.787970 0.093749 +v 0.062592 0.795308 0.100423 +v 0.062594 0.795330 0.093749 +v -0.072180 0.917130 0.119519 +v 0.000000 0.919971 0.119519 +v -0.143915 0.908644 0.119519 +v -0.214762 0.894547 0.119519 +v -0.284287 0.874944 0.119519 +v -0.352056 0.849938 0.119519 +v -0.417658 0.819700 0.119519 +v -0.480681 0.784400 0.119519 +v -0.540745 0.744272 0.119519 +v -0.597470 0.699548 0.119519 +v -0.650517 0.650517 0.119519 +v -0.699547 0.597470 0.119519 +v -0.744271 0.540745 0.119519 +v -0.784400 0.480682 0.119519 +v -0.819700 0.417658 0.119519 +v -0.849938 0.352056 0.119519 +v -0.874944 0.284287 0.119519 +v -0.894547 0.214762 0.119519 +v -0.908644 0.143915 0.119519 +v -0.917130 0.072180 0.119519 +v -0.919970 0.000000 0.119519 +v 0.650456 0.654504 0.117805 +v 0.654626 0.651296 0.114935 +v 0.634307 0.668138 0.119091 +v 0.480681 0.784400 0.119519 +v 0.539957 0.744944 0.119519 +v 0.417658 0.819700 0.119519 +v 0.352056 0.849938 0.119519 +v 0.284287 0.874944 0.119519 +v 0.214762 0.894547 0.119519 +v 0.143915 0.908644 0.119519 +v 0.072180 0.917130 0.119519 +v -0.082252 1.045108 0.157730 +v 0.000000 1.048345 0.157730 +v -0.163997 1.035438 0.157730 +v -0.244730 1.019374 0.157730 +v -0.323957 0.997035 0.157730 +v -0.401183 0.968540 0.157730 +v -0.475938 0.934082 0.157730 +v -0.547756 0.893857 0.157730 +v -0.616201 0.848129 0.157730 +v -0.680842 0.797164 0.157730 +v -0.741292 0.741292 0.157730 +v -0.797164 0.680842 0.157730 +v -0.848129 0.616201 0.157730 +v -0.893857 0.547756 0.157730 +v -0.934082 0.475939 0.157730 +v -0.968540 0.401183 0.157730 +v -0.997035 0.323957 0.157730 +v -1.019374 0.244731 0.157730 +v -1.035438 0.163998 0.157730 +v -1.045108 0.082252 0.157730 +v -1.048345 0.000000 0.157730 +v 0.741785 0.746647 0.156792 +v 0.747481 0.744350 0.155220 +v 0.722961 0.761574 0.157496 +v 0.547755 0.893857 0.157730 +v 0.615304 0.848895 0.157730 +v 0.475939 0.934082 0.157730 +v 0.401182 0.968540 0.157730 +v 0.323957 0.997036 0.157730 +v 0.244730 1.019374 0.157730 +v 0.163997 1.035438 0.157730 +v 0.082252 1.045108 0.157730 +v -0.102451 1.301758 0.087791 +v -0.100879 1.281785 0.093786 +v 0.000000 1.285754 0.093786 +v 0.000000 1.305789 0.087791 +v -0.204271 1.289713 0.087791 +v -0.201136 1.269925 0.093786 +v -0.304829 1.269704 0.087791 +v -0.300152 1.250223 0.093786 +v -0.403511 1.241879 0.087791 +v -0.397320 1.222825 0.093786 +v -0.499702 1.206386 0.087791 +v -0.492034 1.187876 0.093786 +v -0.592815 1.163467 0.087791 +v -0.583720 1.145615 0.093786 +v -0.682269 1.113363 0.087791 +v -0.671801 1.096280 0.093786 +v -0.767523 1.056406 0.087791 +v -0.755747 1.040197 0.093786 +v -0.848038 0.992925 0.087791 +v -0.835026 0.977690 0.093786 +v -0.923332 0.923332 0.087791 +v -0.909165 0.909165 0.093786 +v -0.992925 0.848038 0.087791 +v -0.977690 0.835026 0.093786 +v -1.056406 0.767523 0.087791 +v -1.040197 0.755747 0.093786 +v -1.113363 0.682269 0.087791 +v -1.096280 0.671801 0.093786 +v -1.163467 0.592816 0.087791 +v -1.145615 0.583720 0.093786 +v -1.206386 0.499702 0.087791 +v -1.187876 0.492035 0.093786 +v -1.241879 0.403512 0.087791 +v -1.222825 0.397320 0.093786 +v -1.269704 0.304829 0.087791 +v -1.250223 0.300152 0.093786 +v -1.289713 0.204271 0.087791 +v -1.269924 0.201136 0.093786 +v -1.301758 0.102451 0.087791 +v -1.281784 0.100879 0.093786 +v -1.305789 0.000000 0.087791 +v -1.285754 0.000000 0.093786 +v 0.921832 0.928325 0.086660 +v 0.907690 0.914056 0.092655 +v 0.911190 0.908430 0.090761 +v 0.925384 0.922655 0.084766 +v 0.899971 0.948176 0.087509 +v 0.886163 0.933622 0.093503 +v 0.682269 1.113363 0.087791 +v 0.671801 1.096280 0.093786 +v 0.754646 1.041137 0.093786 +v 0.766406 1.057360 0.087791 +v 0.592815 1.163467 0.087791 +v 0.583719 1.145615 0.093786 +v 0.499702 1.206386 0.087791 +v 0.492035 1.187876 0.093786 +v 0.403511 1.241880 0.087791 +v 0.397320 1.222825 0.093786 +v 0.304829 1.269704 0.087791 +v 0.300152 1.250223 0.093786 +v 0.204270 1.289713 0.087791 +v 0.201136 1.269925 0.093786 +v 0.102451 1.301758 0.087791 +v 0.100879 1.281785 0.093786 +v -0.097903 1.243977 0.323170 +v 0.000000 1.247829 0.323170 +v -0.195204 1.232466 0.323170 +v -0.291299 1.213346 0.323170 +v -0.385601 1.186756 0.323170 +v -0.477522 1.152838 0.323170 +v -0.566502 1.111824 0.323170 +v -0.651985 1.063944 0.323170 +v -0.733455 1.009515 0.323170 +v -0.810396 0.948852 0.323170 +v -0.882348 0.882348 0.323170 +v -0.948852 0.810396 0.323170 +v -1.009515 0.733455 0.323170 +v -1.063944 0.651986 0.323170 +v -1.111824 0.566502 0.323170 +v -1.152838 0.477522 0.323170 +v -1.186756 0.385601 0.323170 +v -1.213346 0.291299 0.323170 +v -1.232466 0.195204 0.323170 +v -1.243977 0.097903 0.323170 +v -1.247829 0.000000 0.323170 +v 0.880823 0.886949 0.322021 +v 0.874750 0.880820 0.336770 +v 0.878257 0.875423 0.334549 +v 0.884066 0.881246 0.320097 +v 0.860001 0.906047 0.322883 +v 0.651985 1.063944 0.323170 +v 0.732387 1.010427 0.323170 +v 0.566503 1.111824 0.323170 +v 0.477521 1.152839 0.323170 +v 0.385601 1.186756 0.323170 +v 0.291299 1.213346 0.323170 +v 0.195204 1.232466 0.323170 +v 0.097903 1.243977 0.323170 +v -0.099922 1.269625 0.102785 +v 0.000000 1.273557 0.102785 +v -0.199228 1.257877 0.102785 +v -0.297305 1.238362 0.102785 +v -0.393551 1.211225 0.102785 +v -0.487366 1.176607 0.102785 +v -0.578182 1.134747 0.102785 +v -0.665428 1.085880 0.102785 +v -0.748577 1.030329 0.102785 +v -0.827105 0.968415 0.102785 +v -0.900540 0.900540 0.102785 +v -0.968415 0.827105 0.102785 +v -1.030329 0.748577 0.102785 +v -1.085880 0.665428 0.102785 +v -1.134747 0.578182 0.102785 +v -1.176607 0.487367 0.102785 +v -1.211224 0.393551 0.102785 +v -1.238362 0.297305 0.102785 +v -1.257877 0.199228 0.102785 +v -1.269625 0.099922 0.102785 +v -1.273557 0.000000 0.102785 +v 0.899080 0.905369 0.101654 +v 0.902549 0.899770 0.099760 +v 0.877757 0.924761 0.102502 +v 0.665428 1.085881 0.102785 +v 0.747487 1.031260 0.102785 +v 0.578182 1.134748 0.102785 +v 0.487367 1.176608 0.102785 +v 0.393551 1.211225 0.102785 +v 0.297305 1.238362 0.102785 +v 0.199228 1.257877 0.102785 +v 0.099922 1.269625 0.102785 +v 0.856715 0.862620 0.356349 +v 0.860575 0.857701 0.353734 +v 0.783034 0.772817 0.344619 +v 0.793399 0.783181 0.349748 +v 0.777674 0.774612 0.349172 +v 0.774159 0.763942 0.336274 +v 0.768395 0.765312 0.340506 +v 0.778665 0.764764 0.331848 +v 0.786479 0.771289 0.336409 +v 0.796890 0.781698 0.340606 +v 0.767741 0.757525 0.324899 +v 0.761519 0.758420 0.328692 +v 0.763480 0.753265 0.297724 +v 0.772045 0.756856 0.294823 +v 0.775549 0.760359 0.322084 +v 0.872281 0.862056 0.341685 +v 0.879905 0.869679 0.330538 +v 0.870245 0.867393 0.346125 +v 0.862958 0.852734 0.349012 +v 0.864131 0.848930 0.339263 +v 0.873512 0.858309 0.332940 +v 0.879107 0.865194 0.326331 +v 0.885203 0.874977 0.316624 +v 0.888483 0.878257 0.290167 +v 0.882643 0.867439 0.314735 +v 0.885101 0.869897 0.288083 +v 0.852561 0.842338 0.351469 +v 0.804285 0.794065 0.351480 +v 0.807564 0.792370 0.341944 +v 0.854002 0.838802 0.341455 +v 0.761077 0.750862 0.241984 +v 0.769942 0.754754 0.239833 +v 0.758521 0.748306 0.184572 +v 0.767396 0.752208 0.182985 +v 0.890050 0.879824 0.241394 +v 0.886324 0.871119 0.239697 +v 0.886787 0.871583 0.190509 +v 0.890640 0.880414 0.191637 +v 0.753802 0.743587 0.152383 +v 0.746057 0.735843 0.134818 +v 0.754556 0.739369 0.131487 +v 0.762561 0.747373 0.150151 +v 0.658679 0.648473 0.109753 +v 0.708700 0.698490 0.112635 +v 0.611091 0.600890 0.109753 +v 0.614469 0.599302 0.102284 +v 0.661674 0.646501 0.102284 +v 0.719233 0.703455 0.104617 +v 0.592666 0.582467 0.109753 +v 0.583786 0.574225 0.106900 +v 0.586531 0.572316 0.099216 +v 0.596172 0.581007 0.102284 +v 0.734425 0.724212 0.121279 +v 0.742500 0.727315 0.117151 +v 0.573723 0.568624 0.102389 +v 0.574971 0.567391 0.095490 +v 0.575402 0.566994 0.087082 +v 0.567581 0.566745 0.086047 +v 0.575426 0.567017 0.077358 +v 0.567603 0.566767 0.076652 +v 0.587470 0.571703 0.079312 +v 0.587455 0.571688 0.089953 +v 0.926863 0.916633 0.081346 +v 0.940402 0.930170 0.076865 +v 0.912652 0.902423 0.087341 +v 0.908264 0.892459 0.080998 +v 0.926964 0.911754 0.075451 +v 0.940630 0.925418 0.071780 +v 0.947036 0.936804 0.072405 +v 0.949827 0.939595 0.067461 +v 0.947493 0.932280 0.068629 +v 0.949645 0.935723 0.066003 +v 0.951838 0.941605 0.061526 +v 0.953133 0.942900 0.052903 +v 0.951095 0.935881 0.061515 +v 0.952120 0.936906 0.052901 +v 0.904000 0.893772 0.096340 +v 0.898732 0.888504 0.108735 +v 0.894303 0.879098 0.105871 +v 0.899115 0.883909 0.092947 +v 0.894672 0.884445 0.124917 +v 0.892024 0.881797 0.143282 +v 0.887852 0.872648 0.142360 +v 0.890423 0.875218 0.123088 +v 0.953777 0.943544 0.039899 +v 0.952515 0.937301 0.039899 +v 0.952577 0.937363 0.028075 +v 0.954025 0.943793 0.028075 +v 0.662672 0.645843 0.092555 +v 0.713620 0.696783 0.092482 +v 0.615595 0.598773 0.092555 +v 0.615595 0.598773 0.081085 +v 0.662672 0.645843 0.081085 +v 0.713359 0.696523 0.080989 +v 0.597340 0.580521 0.092555 +v 0.597340 0.580521 0.081085 +v 0.878030 0.861168 0.121966 +v 0.880444 0.863581 0.104644 +v 0.876611 0.859748 0.141161 +v 0.862581 0.845721 0.139892 +v 0.862398 0.845538 0.121238 +v 0.862900 0.846040 0.104326 +v -0.098690 1.253974 0.163136 +v 0.000000 1.257857 0.163136 +v -0.196772 1.242371 0.163136 +v -0.293640 1.223097 0.163136 +v -0.388700 1.196293 0.163136 +v -0.481358 1.162103 0.163136 +v -0.571055 1.120759 0.163136 +v -0.657225 1.072495 0.163136 +v -0.739350 1.017628 0.163136 +v -0.816909 0.956478 0.163136 +v -0.889439 0.889439 0.163136 +v -0.956478 0.816909 0.163136 +v -1.017628 0.739350 0.163136 +v -1.072494 0.657225 0.163136 +v -1.120759 0.571055 0.163136 +v -1.162103 0.481359 0.163136 +v -1.196293 0.388700 0.163136 +v -1.223097 0.293640 0.163136 +v -1.242371 0.196773 0.163136 +v -1.253974 0.098690 0.163136 +v -1.257857 0.000000 0.163136 +v 0.887669 0.893858 0.162977 +v 0.890547 0.887743 0.162710 +v 0.866854 0.913274 0.163096 +v 0.657225 1.072495 0.163136 +v 0.738273 1.018547 0.163136 +v 0.571054 1.120759 0.163136 +v 0.481359 1.162103 0.163136 +v 0.388699 1.196293 0.163136 +v 0.293640 1.223097 0.163136 +v 0.196772 1.242371 0.163136 +v 0.098690 1.253974 0.163136 +v 0.890989 0.880762 0.162228 +v 0.886969 0.871764 0.161448 +v 0.876459 0.859597 0.160290 +v 0.876715 0.859853 0.189548 +v 0.864199 0.847338 0.188713 +v 0.863399 0.846539 0.159009 +v 0.876519 0.859657 0.239131 +v 0.875877 0.859015 0.288612 +v 0.864229 0.847369 0.290125 +v 0.864325 0.847465 0.239129 +v 0.757269 0.740425 0.116337 +v 0.774458 0.757612 0.117139 +v 0.783655 0.766808 0.132753 +v 0.768228 0.751382 0.131357 +v 0.747439 0.730597 0.103813 +v 0.766061 0.749216 0.103897 +v 0.775570 0.758724 0.150397 +v 0.789931 0.773082 0.151805 +v 0.793788 0.776938 0.184019 +v 0.780024 0.763177 0.183101 +v 0.782318 0.765470 0.239117 +v 0.795727 0.778877 0.239119 +v 0.796665 0.779815 0.293811 +v 0.783843 0.766995 0.293904 +v 0.789795 0.772946 0.117854 +v 0.797420 0.780570 0.133998 +v 0.782868 0.766020 0.103961 +v 0.802744 0.785893 0.153061 +v 0.806067 0.789216 0.184837 +v 0.807691 0.790839 0.239121 +v 0.808300 0.791448 0.293390 +v 0.848430 0.831572 0.120587 +v 0.850044 0.833186 0.138758 +v 0.847415 0.830557 0.104186 +v 0.851729 0.834871 0.157865 +v 0.853014 0.836156 0.187967 +v 0.853429 0.836571 0.239127 +v 0.853575 0.836716 0.290989 +v 0.785989 0.769141 0.322919 +v 0.797515 0.780665 0.324800 +v 0.808580 0.791728 0.325122 +v 0.854053 0.837194 0.323196 +v 0.864360 0.847499 0.321568 +v 0.874793 0.857931 0.317565 +v -0.062601 0.795417 0.066031 +v -0.062603 0.795449 0.054030 +v 0.000000 0.797913 0.054030 +v 0.000000 0.797880 0.066031 +v -0.062598 0.795386 0.076417 +v 0.000000 0.797849 0.076417 +v -0.124811 0.788026 0.076417 +v -0.124816 0.788057 0.066031 +v -0.124821 0.788089 0.054030 +v -0.186261 0.775831 0.066031 +v -0.186268 0.775863 0.054030 +v -0.186253 0.775801 0.076417 +v -0.246549 0.758799 0.076417 +v -0.246559 0.758829 0.066031 +v -0.246569 0.758860 0.054030 +v -0.305334 0.737142 0.066031 +v -0.305347 0.737172 0.054030 +v -0.305322 0.737113 0.076417 +v -0.362216 0.710889 0.076417 +v -0.362230 0.710916 0.066031 +v -0.362245 0.710946 0.054030 +v -0.416890 0.680301 0.066031 +v -0.416907 0.680329 0.054030 +v -0.416873 0.680275 0.076417 +v -0.468964 0.645473 0.076417 +v -0.468983 0.645498 0.066031 +v -0.469002 0.645525 0.054030 +v -0.518180 0.606710 0.066031 +v -0.518201 0.606735 0.054030 +v -0.518160 0.606686 0.076417 +v -0.564164 0.564164 0.076417 +v -0.564186 0.564186 0.066031 +v -0.564209 0.564209 0.054030 +v -0.606710 0.518180 0.066031 +v -0.606734 0.518201 0.054030 +v -0.606686 0.518160 0.076417 +v -0.645473 0.468964 0.076417 +v -0.645498 0.468983 0.066031 +v -0.645525 0.469002 0.054030 +v -0.680301 0.416890 0.066031 +v -0.680329 0.416907 0.054030 +v -0.680274 0.416874 0.076417 +v -0.710889 0.362216 0.076417 +v -0.710916 0.362231 0.066031 +v -0.710945 0.362245 0.054030 +v -0.737141 0.305335 0.066031 +v -0.737172 0.305347 0.054030 +v -0.737113 0.305323 0.076417 +v -0.758799 0.246549 0.076417 +v -0.758829 0.246559 0.066031 +v -0.758860 0.246569 0.054030 +v -0.775831 0.186261 0.066031 +v -0.775863 0.186269 0.054030 +v -0.775800 0.186254 0.076417 +v -0.788026 0.124811 0.076417 +v -0.788057 0.124816 0.066031 +v -0.788089 0.124821 0.054030 +v -0.795417 0.062601 0.066031 +v -0.795449 0.062603 0.054030 +v -0.795386 0.062598 0.076417 +v -0.797849 0.000000 0.076417 +v -0.797880 0.000000 0.066031 +v -0.797913 0.000000 0.054030 +v 0.563196 0.568261 0.066031 +v 0.563219 0.568284 0.054030 +v 0.567649 0.566814 0.054060 +v 0.567625 0.566790 0.066150 +v 0.563174 0.568239 0.076417 +v 0.549872 0.579600 0.076417 +v 0.549893 0.579623 0.066031 +v 0.549916 0.579647 0.054030 +v 0.416890 0.680301 0.066031 +v 0.416907 0.680329 0.054030 +v 0.468319 0.646108 0.054030 +v 0.468300 0.646082 0.066031 +v 0.416873 0.680275 0.076417 +v 0.468281 0.646056 0.076417 +v 0.362216 0.710889 0.076417 +v 0.362230 0.710917 0.066031 +v 0.362245 0.710946 0.054030 +v 0.305334 0.737142 0.066031 +v 0.305347 0.737172 0.054030 +v 0.305322 0.737113 0.076417 +v 0.246549 0.758799 0.076417 +v 0.246559 0.758829 0.066031 +v 0.246569 0.758860 0.054030 +v 0.186261 0.775831 0.066031 +v 0.186268 0.775863 0.054030 +v 0.186253 0.775801 0.076417 +v 0.124811 0.788026 0.076417 +v 0.124816 0.788057 0.066031 +v 0.124821 0.788089 0.054030 +v 0.062601 0.795417 0.066031 +v 0.062603 0.795449 0.054030 +v 0.062598 0.795386 0.076417 +v 0.575502 0.567094 0.039899 +v 0.575475 0.567067 0.054149 +v 0.567674 0.566838 0.039899 +v 0.575523 0.567114 0.028075 +v 0.587532 0.571765 0.028075 +v 0.587518 0.571752 0.039899 +v 0.587501 0.571735 0.054396 +v 0.662672 0.645843 0.039899 +v 0.662672 0.645843 0.054621 +v 0.615595 0.598773 0.054621 +v 0.615595 0.598773 0.039899 +v 0.662672 0.645843 0.028075 +v 0.615595 0.598773 0.028075 +v 0.712802 0.695965 0.028075 +v 0.712802 0.695965 0.039899 +v 0.712873 0.696036 0.054605 +v 0.597340 0.580521 0.039899 +v 0.597340 0.580521 0.054621 +v 0.597340 0.580521 0.028075 +v 0.740213 0.723372 0.039899 +v 0.740495 0.723654 0.054559 +v 0.740213 0.723372 0.028075 +v 0.756981 0.740138 0.028075 +v 0.756981 0.740138 0.039899 +v 0.757430 0.740586 0.054495 +v 0.925463 0.908594 0.022996 +v 0.907073 0.890206 0.022996 +v 0.905153 0.892409 0.021715 +v 0.923529 0.910824 0.021715 +v 0.940016 0.923144 0.022996 +v 0.938083 0.925408 0.021715 +v 0.940016 0.923144 0.028075 +v 0.925463 0.908594 0.028075 +v 0.907073 0.890206 0.028075 +v 0.948480 0.931607 0.022996 +v 0.946488 0.933830 0.021715 +v 0.952603 0.937390 0.022996 +v 0.950669 0.939474 0.021715 +v 0.948480 0.931607 0.028075 +v 0.947979 0.931106 0.062460 +v 0.940430 0.923558 0.064089 +v 0.940119 0.923247 0.053544 +v 0.948355 0.931482 0.053137 +v 0.926384 0.909514 0.066129 +v 0.907912 0.891045 0.067548 +v 0.907282 0.890416 0.054409 +v 0.925694 0.908824 0.054054 +v 0.887093 0.870229 0.022996 +v 0.867361 0.850500 0.022996 +v 0.865659 0.852835 0.021715 +v 0.885280 0.872496 0.021715 +v 0.887093 0.870229 0.028075 +v 0.867361 0.850500 0.028075 +v 0.848037 0.835175 0.021715 +v 0.849715 0.832857 0.022996 +v 0.775181 0.758335 0.022996 +v 0.773391 0.760370 0.021715 +v 0.849715 0.832857 0.028075 +v 0.775181 0.758335 0.028075 +v 0.756981 0.740138 0.022996 +v 0.755197 0.742137 0.021715 +v 0.743486 0.726644 0.092263 +v 0.762185 0.745341 0.091964 +v 0.742442 0.725601 0.080702 +v 0.760526 0.743682 0.080306 +v 0.776718 0.759871 0.067616 +v 0.758776 0.741932 0.067890 +v 0.775566 0.758719 0.054426 +v 0.849526 0.832668 0.054146 +v 0.848961 0.832103 0.066498 +v 0.778216 0.761369 0.079886 +v 0.848226 0.831368 0.078173 +v 0.847528 0.830671 0.090392 +v 0.864135 0.847275 0.090437 +v 0.779637 0.762790 0.091653 +v 0.865540 0.848679 0.078283 +v 0.887083 0.870219 0.067312 +v 0.866549 0.849688 0.066577 +v 0.867158 0.850297 0.054166 +v 0.887090 0.870227 0.054350 +v 0.886202 0.869339 0.079376 +v 0.575450 0.567042 0.066507 +v 0.587485 0.571719 0.067497 +v 0.662672 0.645843 0.068395 +v 0.615595 0.598773 0.068395 +v 0.713084 0.696248 0.068333 +v 0.597340 0.580521 0.068395 +v -0.062596 0.795356 0.085702 +v 0.000000 0.797819 0.085702 +v -0.124807 0.787997 0.085702 +v -0.186247 0.775772 0.085702 +v -0.246540 0.758771 0.085702 +v -0.305311 0.737085 0.085702 +v -0.362203 0.710862 0.085702 +v -0.416858 0.680249 0.085702 +v -0.468947 0.645449 0.085702 +v -0.518139 0.606663 0.085702 +v -0.564143 0.564143 0.085702 +v -0.606663 0.518139 0.085702 +v -0.645449 0.468947 0.085702 +v -0.680249 0.416858 0.085702 +v -0.710862 0.362203 0.085702 +v -0.737085 0.305311 0.085702 +v -0.758771 0.246540 0.085702 +v -0.775772 0.186247 0.085702 +v -0.787997 0.124807 0.085702 +v -0.795356 0.062596 0.085702 +v -0.797819 0.000000 0.085702 +v 0.563153 0.568218 0.085702 +v 0.549851 0.579579 0.085702 +v 0.416858 0.680249 0.085702 +v 0.468264 0.646032 0.085702 +v 0.362202 0.710862 0.085702 +v 0.305311 0.737085 0.085702 +v 0.246540 0.758771 0.085702 +v 0.186246 0.775772 0.085702 +v 0.124806 0.787997 0.085702 +v 0.062596 0.795356 0.085702 +v 0.741342 0.724501 0.068147 +v 0.883579 0.866715 0.091134 +v 0.515490 0.609093 0.039899 +v 0.549939 0.579671 0.039899 +v 0.515469 0.609067 0.054030 +v 0.468339 0.646135 0.039899 +v 0.515509 0.609114 0.028075 +v 0.520222 0.614683 0.111857 +v 0.526586 0.622202 0.117523 +v 0.516582 0.610383 0.106276 +v 0.726353 0.858244 0.360559 +v 0.811624 0.958999 0.244878 +v 0.812239 0.959726 0.193502 +v 0.809878 0.956937 0.295392 +v 0.866314 1.023619 0.062279 +v 0.867605 1.025145 0.053092 +v 0.864483 1.021456 0.069397 +v 0.755837 0.760825 0.330792 +v 0.762945 0.767998 0.342849 +v 0.866548 0.872543 0.348583 +v 0.772419 0.777559 0.351694 +v 0.815119 0.963128 0.128281 +v 0.818164 0.966727 0.114410 +v 0.813350 0.961039 0.144491 +v 0.861940 1.018452 0.076381 +v 0.855898 1.011313 0.082693 +v 0.869349 1.027205 0.022996 +v 0.927430 0.977122 0.022996 +v 0.926618 0.976052 0.021715 +v 0.868477 1.026175 0.021715 +v 0.789829 1.089675 0.022996 +v 0.789037 1.088583 0.021715 +v 0.869102 1.026914 0.028075 +v 0.683212 0.807270 0.246404 +v 0.681040 0.804704 0.188328 +v 0.662279 0.782536 0.130196 +v 0.671212 0.793091 0.142417 +v 0.640099 0.756329 0.122188 +v 0.533242 0.630068 0.119519 +v 0.550261 0.650178 0.119519 +v 0.515378 0.608959 0.100423 +v 0.515392 0.608976 0.093749 +v 0.594320 0.702237 0.119519 +v 0.677253 0.800229 0.157730 +v 0.843568 0.996743 0.087791 +v 0.830625 0.981450 0.093786 +v 0.806124 0.952501 0.323170 +v 0.822745 0.972139 0.102785 +v 0.773517 0.913972 0.360548 +v 0.812603 0.960155 0.163136 +v 0.515447 0.609043 0.066031 +v 0.515428 0.609019 0.076417 +v 0.515409 0.608996 0.085702 +v 0.865696 1.022890 0.021288 +v 0.786510 1.085097 0.021288 +v 0.924010 0.972661 0.021288 +v 0.920206 0.968011 0.021288 +v 0.861814 1.018302 0.021288 +v 0.782983 1.080230 0.021288 +v 0.420796 0.686677 0.021288 +v 0.472688 0.652136 0.021288 +v 0.365625 0.717579 0.021288 +v 0.370968 0.728066 0.021288 +v 0.426946 0.696712 0.021288 +v 0.479597 0.661667 0.021288 +v 0.512810 1.238032 0.021288 +v 0.414096 1.274456 0.021288 +v 0.415426 1.278551 0.021715 +v 0.514457 1.242009 0.021715 +v 0.608366 1.193987 0.021288 +v 0.610320 1.197822 0.021715 +v 0.605637 1.188632 0.021288 +v 0.510509 1.232480 0.021288 +v 0.412239 1.268741 0.021288 +v 0.188006 0.783102 0.021288 +v 0.248869 0.765940 0.021288 +v 0.125986 0.795442 0.021288 +v 0.127827 0.807067 0.021288 +v 0.190754 0.794546 0.021288 +v 0.252506 0.777134 0.021288 +v 0.105138 1.335906 0.021288 +v 0.000000 1.340043 0.021288 +v 0.000000 1.344348 0.021715 +v 0.105476 1.340197 0.021715 +v 0.209629 1.323545 0.021288 +v 0.210302 1.327797 0.021715 +v 0.208689 1.317609 0.021288 +v 0.104666 1.329914 0.021288 +v 0.000000 1.334033 0.021288 +v -0.063187 0.802871 0.021288 +v 0.000000 0.805357 0.021288 +v -0.125986 0.795442 0.021288 +v -0.127827 0.807067 0.021288 +v -0.064111 0.814604 0.021288 +v 0.000000 0.817127 0.021288 +v -0.312826 1.303011 0.021288 +v -0.414096 1.274456 0.021288 +v -0.415427 1.278550 0.021715 +v -0.313830 1.307197 0.021715 +v -0.209629 1.323545 0.021288 +v -0.210303 1.327797 0.021715 +v -0.208689 1.317609 0.021288 +v -0.311423 1.297167 0.021288 +v -0.412239 1.268741 0.021288 +v -0.512810 1.238032 0.021288 +v -0.608366 1.193987 0.021288 +v -0.610321 1.197822 0.021715 +v -0.514457 1.242009 0.021715 +v -0.510509 1.232480 0.021288 +v -0.605638 1.188632 0.021288 +v -0.420796 0.686677 0.021288 +v -0.365625 0.717579 0.021288 +v -0.473378 0.651548 0.021288 +v -0.480296 0.661070 0.021288 +v -0.426946 0.696712 0.021288 +v -0.370968 0.728066 0.021288 +v -0.870284 1.018971 0.021288 +v -0.947553 0.947553 0.021289 +v -0.950597 0.950597 0.021715 +v -0.873079 1.022245 0.021715 +v -0.787657 1.084117 0.021288 +v -0.790187 1.087600 0.021715 +v -0.784124 1.079255 0.021288 +v -0.866381 1.014401 0.021288 +v -0.943303 0.943303 0.021288 +v -0.612395 0.523036 0.021288 +v -0.569473 0.569473 0.021288 +v -0.651547 0.473378 0.021288 +v -0.661070 0.480296 0.021288 +v -0.621345 0.530680 0.021288 +v -0.577796 0.577796 0.021288 +v -1.142569 0.700167 0.021289 +v -1.193987 0.608366 0.021289 +v -1.197822 0.610321 0.021715 +v -1.146239 0.702416 0.021715 +v -1.084117 0.787657 0.021289 +v -1.087600 0.790187 0.021715 +v -1.079255 0.784124 0.021289 +v -1.137444 0.697026 0.021289 +v -1.188632 0.605638 0.021289 +v -0.744049 0.308196 0.021288 +v -0.717578 0.365625 0.021288 +v -0.765940 0.248870 0.021288 +v -0.777134 0.252507 0.021288 +v -0.754923 0.312700 0.021288 +v -0.728066 0.370969 0.021288 +v -1.303011 0.312826 0.021289 +v -1.323545 0.209629 0.021289 +v -1.327796 0.210303 0.021715 +v -1.307197 0.313830 0.021715 +v -1.274456 0.414096 0.021289 +v -1.278550 0.415427 0.021715 +v -1.268740 0.412239 0.021289 +v -1.297167 0.311423 0.021289 +v -1.317609 0.208689 0.021289 +v -0.802871 0.063187 0.021288 +v -0.795442 0.125986 0.021288 +v -0.805357 0.000000 0.021288 +v -0.817127 0.000000 0.021288 +v -0.814604 0.064111 0.021288 +v -0.807067 0.127827 0.021288 +v 0.520279 0.614750 0.021288 +v 0.527882 0.623734 0.021288 +v 0.564153 0.592629 0.021288 +v 0.555586 0.584542 0.021288 +v 0.516707 0.610531 0.021715 +v 0.308196 0.744050 0.021288 +v 0.312700 0.754924 0.021288 +v 0.063187 0.802871 0.021288 +v 0.064111 0.814604 0.021288 +v -0.188006 0.783102 0.021288 +v -0.190754 0.794546 0.021288 +v -0.248869 0.765940 0.021288 +v -0.252507 0.777134 0.021288 +v -0.308196 0.744050 0.021288 +v -0.312700 0.754924 0.021288 +v -0.523036 0.612396 0.021288 +v -0.530680 0.621345 0.021288 +v -0.686676 0.420797 0.021288 +v -0.696712 0.426946 0.021288 +v -0.783101 0.188006 0.021288 +v -0.794546 0.190754 0.021288 +v 0.433806 0.707907 0.021288 +v 0.376929 0.739764 0.021288 +v 0.447446 0.730166 0.021288 +v 0.388781 0.763025 0.021288 +v 0.502625 0.693438 0.021288 +v 0.487303 0.672299 0.021288 +v 0.193819 0.807313 0.021288 +v 0.129881 0.820035 0.021288 +v 0.199913 0.832697 0.021288 +v 0.133965 0.845819 0.021288 +v 0.264631 0.814449 0.021288 +v 0.256564 0.789621 0.021288 +v -0.065141 0.827694 0.021288 +v -0.129881 0.820035 0.021288 +v -0.067189 0.853719 0.021288 +v -0.133965 0.845819 0.021288 +v 0.000000 0.856363 0.021288 +v 0.000000 0.830257 0.021288 +v -0.433806 0.707907 0.021288 +v -0.488013 0.671692 0.021288 +v -0.447447 0.730166 0.021288 +v -0.503358 0.692812 0.021288 +v -0.388781 0.763025 0.021288 +v -0.376929 0.739764 0.021288 +v -0.631329 0.539207 0.021288 +v -0.671692 0.488014 0.021288 +v -0.651180 0.556160 0.021288 +v -0.692812 0.503358 0.021288 +v -0.605539 0.605540 0.021288 +v -0.587080 0.587080 0.021288 +v -0.767054 0.317725 0.021288 +v -0.789621 0.256564 0.021288 +v -0.791172 0.327715 0.021288 +v -0.814449 0.264631 0.021288 +v -0.763025 0.388781 0.021288 +v -0.739764 0.376929 0.021288 +v -0.827693 0.065141 0.021288 +v -0.830257 0.000000 0.021288 +v -0.853719 0.067189 0.021288 +v -0.856363 0.000000 0.021288 +v -0.845819 0.133965 0.021288 +v -0.820035 0.129881 0.021288 +v 0.536364 0.633757 0.021288 +v 0.553228 0.653684 0.021288 +v 0.591223 0.621028 0.021288 +v 0.573263 0.602097 0.021288 +v 0.317724 0.767054 0.021288 +v 0.327714 0.791172 0.021288 +v 0.065141 0.827694 0.021288 +v 0.067189 0.853719 0.021288 +v -0.193819 0.807313 0.021288 +v -0.199913 0.832697 0.021288 +v -0.256564 0.789621 0.021288 +v -0.264631 0.814449 0.021288 +v -0.317724 0.767054 0.021288 +v -0.327715 0.791172 0.021288 +v -0.539207 0.631329 0.021288 +v -0.556160 0.651180 0.021288 +v -0.707907 0.433807 0.021288 +v -0.730165 0.447447 0.021288 +v -0.807313 0.193819 0.021288 +v -0.832697 0.199913 0.021288 +v 0.482897 0.788015 0.021288 +v 0.419583 0.823478 0.021288 +v 0.520468 0.849325 0.021288 +v 0.452228 0.887547 0.021288 +v 0.584650 0.806604 0.021288 +v 0.542446 0.748377 0.021288 +v 0.215752 0.898670 0.021288 +v 0.144578 0.912832 0.021288 +v 0.232538 0.968590 0.021288 +v 0.155827 0.983853 0.021288 +v 0.307817 0.947364 0.021288 +v 0.285597 0.878977 0.021288 +v -0.072512 0.921357 0.021288 +v -0.144579 0.912832 0.021288 +v -0.078154 0.993042 0.021288 +v -0.155827 0.983853 0.021288 +v 0.000000 0.996117 0.021288 +v 0.000000 0.924211 0.021288 +v -0.482897 0.788015 0.021288 +v -0.543237 0.747702 0.021288 +v -0.520468 0.849325 0.021288 +v -0.585502 0.805876 0.021288 +v -0.452228 0.887547 0.021288 +v -0.419583 0.823478 0.021288 +v -0.702772 0.600224 0.021288 +v -0.747702 0.543237 0.021288 +v -0.757450 0.646923 0.021288 +v -0.805876 0.585503 0.021288 +v -0.704361 0.704361 0.021288 +v -0.653515 0.653515 0.021288 +v -0.853855 0.353679 0.021288 +v -0.878976 0.285597 0.021288 +v -0.920288 0.381196 0.021289 +v -0.947364 0.307817 0.021288 +v -0.887547 0.452228 0.021288 +v -0.823477 0.419583 0.021288 +v -0.921357 0.072513 0.021289 +v -0.924210 0.000000 0.021289 +v -0.993042 0.078154 0.021289 +v -0.996117 0.000000 0.021289 +v -0.983853 0.155827 0.021289 +v -0.912832 0.144579 0.021289 +v 0.597060 0.705474 0.021288 +v 0.643513 0.760362 0.021288 +v 0.687301 0.722312 0.021288 +v 0.637852 0.670185 0.021288 +v 0.353679 0.853855 0.021288 +v 0.381196 0.920288 0.021288 +v 0.072512 0.921357 0.021288 +v 0.078154 0.993042 0.021288 +v -0.215752 0.898670 0.021288 +v -0.232538 0.968590 0.021288 +v -0.285597 0.878976 0.021288 +v -0.307817 0.947364 0.021288 +v -0.353679 0.853855 0.021288 +v -0.381196 0.920288 0.021288 +v -0.600223 0.702772 0.021288 +v -0.646923 0.757450 0.021288 +v -0.788015 0.482897 0.021288 +v -0.849325 0.520468 0.021288 +v -0.898670 0.215752 0.021288 +v -0.968590 0.232538 0.021289 +v 0.540469 0.881967 0.021288 +v 0.469608 0.921657 0.021288 +v 0.552448 0.901515 0.021288 +v 0.480016 0.942085 0.021288 +v 0.620576 0.856168 0.021288 +v 0.607119 0.837603 0.021288 +v 0.241475 1.005815 0.021288 +v 0.161816 1.021665 0.021288 +v 0.246827 1.028107 0.021288 +v 0.165402 1.044309 0.021288 +v 0.326732 1.005577 0.021288 +v 0.319647 0.983773 0.021288 +v -0.081158 1.031206 0.021288 +v -0.161816 1.021665 0.021288 +v -0.082957 1.054062 0.021288 +v -0.165402 1.044309 0.021288 +v 0.000000 1.057326 0.021288 +v 0.000000 1.034400 0.021288 +v -0.540469 0.881967 0.021288 +v -0.608005 0.836847 0.021288 +v -0.552448 0.901515 0.021288 +v -0.621480 0.855395 0.021288 +v -0.480017 0.942085 0.021288 +v -0.469608 0.921657 0.021288 +v -0.786560 0.671785 0.021288 +v -0.836847 0.608005 0.021288 +v -0.803993 0.686675 0.021288 +v -0.855395 0.621480 0.021288 +v -0.747642 0.747642 0.021288 +v -0.731431 0.731431 0.021288 +v -0.955656 0.395846 0.021289 +v -0.983773 0.319648 0.021289 +v -0.976837 0.404620 0.021289 +v -1.005577 0.326732 0.021289 +v -0.942084 0.480017 0.021288 +v -0.921657 0.469608 0.021289 +v -1.031206 0.081158 0.021289 +v -1.034400 0.000000 0.021289 +v -1.054062 0.082957 0.021289 +v -1.057326 0.000000 0.021289 +v -1.044309 0.165403 0.021289 +v -1.021665 0.161816 0.021289 +v 0.668244 0.789584 0.021288 +v 0.683055 0.807085 0.021288 +v 0.729581 0.766872 0.021288 +v 0.713717 0.750154 0.021288 +v 0.395846 0.955657 0.021288 +v 0.404620 0.976838 0.021288 +v 0.081158 1.031206 0.021288 +v 0.082956 1.054062 0.021288 +v -0.241475 1.005815 0.021288 +v -0.246827 1.028107 0.021288 +v -0.319647 0.983773 0.021288 +v -0.326732 1.005577 0.021288 +v -0.395846 0.955656 0.021288 +v -0.404620 0.976838 0.021288 +v -0.671785 0.786560 0.021288 +v -0.686675 0.803993 0.021288 +v -0.881967 0.540470 0.021288 +v -0.901514 0.552448 0.021288 +v -1.005814 0.241475 0.021289 +v -1.028107 0.246827 0.021289 +v 0.565948 0.923545 0.021288 +v 0.491746 0.965106 0.021288 +v 0.540497 1.060785 0.021288 +v 0.622055 1.015103 0.021288 +v 0.698766 0.964043 0.021288 +v 0.635741 0.877090 0.021288 +v 0.252859 1.053231 0.021288 +v 0.169444 1.069829 0.021288 +v 0.186243 1.175889 0.021288 +v 0.277926 1.157646 0.021288 +v 0.367899 1.132277 0.021288 +v 0.334716 1.030150 0.021288 +v -0.084984 1.079820 0.021288 +v -0.169444 1.069829 0.021288 +v -0.186243 1.175889 0.021288 +v -0.093409 1.186871 0.021288 +v 0.000000 1.190547 0.021288 +v 0.000000 1.083164 0.021288 +v -0.565949 0.923545 0.021288 +v -0.636667 0.876298 0.021288 +v -0.699785 0.963172 0.021288 +v -0.622055 1.015103 0.021288 +v -0.540497 1.060785 0.021288 +v -0.491747 0.965106 0.021288 +v -0.823640 0.703455 0.021288 +v -0.876298 0.636668 0.021288 +v -0.963172 0.699785 0.021289 +v -0.905294 0.773194 0.021288 +v -0.841843 0.841843 0.021288 +v -0.765912 0.765913 0.021288 +v -1.000708 0.414508 0.021289 +v -1.030150 0.334717 0.021289 +v -1.132277 0.367900 0.021289 +v -1.099916 0.455601 0.021289 +v -1.060785 0.540497 0.021289 +v -0.965106 0.491747 0.021289 +v -1.079820 0.084984 0.021289 +v -1.083164 0.000000 0.021289 +v -1.190546 0.000000 0.021289 +v -1.186871 0.093409 0.021289 +v -1.175889 0.186243 0.021289 +v -1.069829 0.169445 0.021289 +v 0.747373 0.785626 0.021288 +v 0.699747 0.826807 0.021288 +v 0.769119 0.908775 0.021288 +v 0.821176 0.863429 0.021288 +v 0.414507 1.000709 0.021288 +v 0.455600 1.099917 0.021288 +v 0.084984 1.079820 0.021288 +v 0.093409 1.186871 0.021288 +v -0.252859 1.053231 0.021288 +v -0.277927 1.157646 0.021288 +v -0.334716 1.030150 0.021288 +v -0.367899 1.132277 0.021288 +v -0.414507 1.000709 0.021288 +v -0.455601 1.099916 0.021288 +v -0.703455 0.823640 0.021288 +v -0.773194 0.905294 0.021288 +v -0.923545 0.565949 0.021289 +v -1.015103 0.622056 0.021289 +v -1.053231 0.252859 0.021289 +v -1.157646 0.277927 0.021289 +v 0.635041 1.036294 0.021288 +v 0.551780 1.082930 0.021288 +v 0.713354 0.984168 0.021288 +v 0.283728 1.181813 0.021288 +v 0.190131 1.200437 0.021288 +v 0.375580 1.155914 0.021288 +v -0.095359 1.211648 0.021288 +v -0.190131 1.200437 0.021288 +v 0.000000 1.215400 0.021288 +v -0.635041 1.036294 0.021288 +v -0.714394 0.983279 0.021288 +v -0.551780 1.082930 0.021288 +v -0.924193 0.789335 0.021289 +v -0.983279 0.714394 0.021289 +v -0.859418 0.859418 0.021288 +v -1.122878 0.465112 0.021289 +v -1.155914 0.375580 0.021289 +v -1.082929 0.551780 0.021289 +v -1.211648 0.095359 0.021289 +v -1.215400 0.000000 0.021289 +v -1.200437 0.190131 0.021289 +v 0.857637 1.013367 0.021288 +v 0.915807 0.963163 0.021288 +v 0.850290 1.004686 0.021288 +v 0.907919 0.954852 0.021288 +v 0.772513 1.065786 0.021288 +v 0.779188 1.074995 0.021288 +v 0.508036 1.226507 0.021288 +v 0.602702 1.182872 0.021288 +v 0.503684 1.215999 0.021288 +v 0.597539 1.172738 0.021288 +v 0.406727 1.251775 0.021288 +v 0.410241 1.262592 0.021288 +v 0.104159 1.323469 0.021288 +v 0.207677 1.311223 0.021288 +v 0.103267 1.312131 0.021288 +v 0.205898 1.299990 0.021288 +v 0.000000 1.316195 0.021288 +v 0.000000 1.327568 0.021288 +v -0.309913 1.290881 0.021288 +v -0.207678 1.311223 0.021288 +v -0.307258 1.279822 0.021288 +v -0.205898 1.299990 0.021288 +v -0.406727 1.251775 0.021288 +v -0.410241 1.262592 0.021288 +v -0.508036 1.226507 0.021288 +v -0.503684 1.215999 0.021288 +v -0.597539 1.172738 0.021288 +v -0.602703 1.182871 0.021288 +v -0.862182 1.009485 0.021288 +v -0.780324 1.074025 0.021288 +v -0.854796 1.000837 0.021288 +v -0.773639 1.064824 0.021288 +v -0.930690 0.930690 0.021288 +v -0.938732 0.938732 0.021289 +v -1.131932 0.693648 0.021289 +v -1.074025 0.780324 0.021289 +v -1.122235 0.687706 0.021289 +v -1.064823 0.773639 0.021289 +v -1.172738 0.597539 0.021289 +v -1.182871 0.602703 0.021289 +v -1.290881 0.309913 0.021289 +v -1.262592 0.410241 0.021289 +v -1.279822 0.307258 0.021289 +v -1.251775 0.406727 0.021289 +v -1.299990 0.205898 0.021289 +v -1.311223 0.207678 0.021289 +v 0.700166 1.142569 0.021288 +v 0.697026 1.137445 0.021288 +v 0.702416 1.146239 0.021715 +v 0.312825 1.303011 0.021288 +v 0.311422 1.297167 0.021288 +v 0.313830 1.307197 0.021715 +v -0.105138 1.335906 0.021288 +v -0.104667 1.329914 0.021288 +v -0.105476 1.340197 0.021715 +v -0.700167 1.142569 0.021288 +v -0.697026 1.137445 0.021288 +v -0.702416 1.146239 0.021715 +v -1.018971 0.870284 0.021289 +v -1.014401 0.866381 0.021289 +v -1.022245 0.873079 0.021715 +v -1.238032 0.512810 0.021289 +v -1.232480 0.510509 0.021289 +v -1.242009 0.514458 0.021715 +v -1.335906 0.105138 0.021289 +v -1.329914 0.104667 0.021289 +v -1.334033 0.000000 0.021289 +v -1.340043 0.000000 0.021289 +v -1.340197 0.105476 0.021715 +v -1.344348 0.000000 0.021715 +v 0.693648 1.131932 0.021288 +v 0.687706 1.122235 0.021288 +v 0.309913 1.290881 0.021288 +v 0.307258 1.279822 0.021288 +v -0.104159 1.323469 0.021288 +v -0.103267 1.312131 0.021288 +v -0.693648 1.131932 0.021288 +v -0.687706 1.122235 0.021288 +v -1.009485 0.862182 0.021289 +v -1.000837 0.854796 0.021289 +v -1.226507 0.508036 0.021289 +v -1.215999 0.503684 0.021289 +v -1.323469 0.104159 0.021289 +v -1.312131 0.103267 0.021289 +v -1.316195 0.000000 0.021289 +v -1.327568 0.000000 0.021289 +v 0.836895 0.988859 0.021288 +v 0.893649 0.939809 0.021288 +v 0.820089 0.969001 0.021288 +v 0.875727 0.920918 0.021288 +v 0.745074 1.027931 0.021288 +v 0.760343 1.048996 0.021288 +v 0.495749 1.196844 0.021288 +v 0.588126 1.154264 0.021288 +v 0.485793 1.172809 0.021288 +v 0.576315 1.131084 0.021288 +v 0.392280 1.207314 0.021288 +v 0.400319 1.232056 0.021288 +v 0.101640 1.291461 0.021288 +v 0.202655 1.279511 0.021288 +v 0.099599 1.265526 0.021288 +v 0.198585 1.253817 0.021288 +v 0.000000 1.269445 0.021288 +v 0.000000 1.295460 0.021288 +v -0.302418 1.259661 0.021288 +v -0.202655 1.279511 0.021288 +v -0.296345 1.234365 0.021288 +v -0.198585 1.253817 0.021288 +v -0.392280 1.207314 0.021288 +v -0.400320 1.232056 0.021288 +v -0.495749 1.196844 0.021288 +v -0.485794 1.172809 0.021288 +v -0.576316 1.131084 0.021288 +v -0.588126 1.154264 0.021288 +v -0.841330 0.985071 0.021288 +v -0.761452 1.048049 0.021288 +v -0.824435 0.965289 0.021288 +v -0.746161 1.027003 0.021288 +v -0.897633 0.897633 0.021288 +v -0.916029 0.916029 0.021289 +v -1.104556 0.676873 0.021289 +v -1.048049 0.761452 0.021289 +v -1.082375 0.663280 0.021289 +v -1.027003 0.746161 0.021289 +v -1.131084 0.576316 0.021289 +v -1.154264 0.588126 0.021289 +v -1.259661 0.302418 0.021289 +v -1.232056 0.400320 0.021289 +v -1.234364 0.296345 0.021289 +v -1.207314 0.392281 0.021289 +v -1.253816 0.198585 0.021289 +v -1.279511 0.202655 0.021289 +v 0.676872 1.104556 0.021288 +v 0.663280 1.082375 0.021288 +v 0.302418 1.259661 0.021288 +v 0.296345 1.234365 0.021288 +v -0.101640 1.291461 0.021288 +v -0.099599 1.265526 0.021288 +v -0.676873 1.104556 0.021288 +v -0.663280 1.082375 0.021288 +v -0.985071 0.841330 0.021289 +v -0.965289 0.824435 0.021289 +v -1.196844 0.495749 0.021289 +v -1.172809 0.485794 0.021289 +v -1.291461 0.101640 0.021289 +v -1.265526 0.099599 0.021289 +v -1.269445 0.000000 0.021289 +v -1.295460 0.000000 0.021289 +v 0.802507 0.948226 0.021288 +v 0.856885 0.901063 0.021288 +v 0.785175 0.927747 0.021288 +v 0.838307 0.881486 0.021288 +v 0.729101 1.005892 0.021288 +v 0.475378 1.147665 0.021288 +v 0.563959 1.106834 0.021288 +v 0.465111 1.122878 0.021288 +v 0.383870 1.181430 0.021288 +v 0.097464 1.238394 0.021288 +v 0.194328 1.226935 0.021288 +v 0.095359 1.211648 0.021288 +v 0.000000 1.242229 0.021288 +v -0.289992 1.207901 0.021288 +v -0.194328 1.226935 0.021288 +v -0.283728 1.181813 0.021288 +v -0.375580 1.155914 0.021288 +v -0.383870 1.181430 0.021288 +v -0.475379 1.147665 0.021288 +v -0.465112 1.122878 0.021288 +v -0.563960 1.106834 0.021288 +v -0.806759 0.944594 0.021288 +v -0.730164 1.004985 0.021288 +v -0.789335 0.924193 0.021288 +v -0.878388 0.878389 0.021288 +v -1.059169 0.649060 0.021289 +v -1.004984 0.730164 0.021289 +v -1.036294 0.635042 0.021289 +v -1.106834 0.563960 0.021289 +v -1.207901 0.289992 0.021289 +v -1.181430 0.383870 0.021289 +v -1.181813 0.283729 0.021289 +v -1.226935 0.194328 0.021289 +v 0.947736 0.951125 0.021288 +v 0.949339 0.955246 0.021715 +v 0.952061 0.950477 0.022047 +v 0.952551 0.945724 0.021715 +v 0.944847 0.945708 0.021288 +v 0.570626 0.571534 0.021288 +v 0.580762 0.578065 0.021288 +v 0.585844 0.573345 0.021715 +v 0.574307 0.568228 0.021715 +v 0.590274 0.587134 0.021288 +v 0.608570 0.605595 0.021288 +v 0.613839 0.600479 0.021715 +v 0.595573 0.582174 0.021715 +v 0.655939 0.653390 0.021288 +v 0.706259 0.704163 0.021288 +v 0.711166 0.698015 0.021715 +v 0.660989 0.647730 0.021715 +v 0.733410 0.731555 0.021288 +v 0.749846 0.748136 0.021288 +v 0.738512 0.725418 0.021715 +v 0.768021 0.766473 0.021288 +v 0.843003 0.842131 0.021288 +v 0.649059 1.059170 0.021288 +v 0.289991 1.207901 0.021288 +v -0.097464 1.238394 0.021288 +v -0.649060 1.059170 0.021288 +v -0.944594 0.806759 0.021289 +v -1.147665 0.475379 0.021289 +v -1.238394 0.097464 0.021289 +v -1.242229 0.000000 0.021289 +v 0.860555 0.859839 0.021288 +v 0.879844 0.879297 0.021288 +v 0.899393 0.899017 0.021288 +v 0.917725 0.917513 0.021288 +v 0.932284 0.932202 0.021288 +v 0.940510 0.940500 0.021288 +v -0.062606 0.795483 0.039899 +v 0.000000 0.797947 0.039899 +v -0.124827 0.788123 0.039899 +v -0.186276 0.775896 0.039899 +v -0.246579 0.758892 0.039899 +v -0.305360 0.737203 0.039899 +v -0.362261 0.710976 0.039899 +v -0.416925 0.680358 0.039899 +v -0.469022 0.645552 0.039899 +v -0.518223 0.606760 0.039899 +v -0.564233 0.564233 0.039899 +v -0.606760 0.518223 0.039899 +v -0.645552 0.469022 0.039899 +v -0.680358 0.416925 0.039899 +v -0.710976 0.362261 0.039899 +v -0.737203 0.305360 0.039899 +v -0.758892 0.246580 0.039899 +v -0.775896 0.186276 0.039899 +v -0.788122 0.124827 0.039899 +v -0.795483 0.062606 0.039899 +v -0.797947 0.000000 0.039899 +v 0.563244 0.568308 0.039899 +v 0.416924 0.680358 0.039899 +v 0.362260 0.710976 0.039899 +v 0.305360 0.737203 0.039899 +v 0.246579 0.758892 0.039899 +v 0.186276 0.775896 0.039899 +v 0.124826 0.788123 0.039899 +v 0.062606 0.795483 0.039899 +v -0.105582 1.341542 0.022996 +v 0.000000 1.345697 0.022996 +v -0.210514 1.329129 0.022996 +v -0.314145 1.308509 0.022996 +v -0.415844 1.279834 0.022996 +v -0.514974 1.243256 0.022996 +v -0.610933 1.199025 0.022996 +v -0.703121 1.147390 0.022996 +v -0.790980 1.088692 0.022996 +v -0.873956 1.023271 0.022996 +v -0.951551 0.951551 0.022996 +v -1.023271 0.873956 0.022996 +v -1.088691 0.790980 0.022996 +v -1.147390 0.703121 0.022996 +v -1.199024 0.610933 0.022996 +v -1.243256 0.514974 0.022996 +v -1.279834 0.415844 0.022996 +v -1.308509 0.314146 0.022996 +v -1.329129 0.210514 0.022996 +v -1.341542 0.105582 0.022996 +v -1.345697 0.000000 0.022996 +v 0.949819 0.956565 0.022996 +v 0.953170 0.950502 0.022996 +v 0.703121 1.147390 0.022996 +v 0.610933 1.199025 0.022996 +v 0.514974 1.243256 0.022996 +v 0.415843 1.279834 0.022996 +v 0.314145 1.308509 0.022996 +v 0.210513 1.329129 0.022996 +v 0.105582 1.341542 0.022996 +v 0.954132 0.943899 0.022996 +v 0.575532 0.567124 0.022996 +v 0.587537 0.571771 0.022996 +v 0.662672 0.645843 0.022996 +v 0.615595 0.598773 0.022996 +v 0.712802 0.695965 0.022996 +v 0.597340 0.580521 0.022996 +v 0.740213 0.723372 0.022996 +v 0.925464 0.908594 0.039899 +v 0.940016 0.923144 0.039899 +v 0.907073 0.890206 0.039899 +v 0.948480 0.931607 0.039899 +v 0.887093 0.870229 0.039899 +v 0.867361 0.850500 0.039899 +v 0.849715 0.832857 0.039899 +v 0.775181 0.758335 0.039899 +v 0.515516 0.609123 0.022996 +v 0.868528 1.026235 0.039899 +v -0.062609 -0.795521 0.022996 +v 0.000000 -0.797985 0.022996 +v 0.000000 -0.799830 0.021715 +v -0.062754 -0.797361 0.021715 +v -0.062608 -0.795510 0.028075 +v 0.000000 -0.797973 0.028075 +v -0.124833 -0.788160 0.022996 +v -0.124831 -0.788149 0.028075 +v -0.125121 -0.789983 0.021715 +v -0.063181 -0.802784 0.111857 +v 0.000000 -0.805270 0.111857 +v 0.000000 -0.799636 0.106276 +v -0.062738 -0.797167 0.106276 +v -0.063953 -0.812603 0.117523 +v 0.000000 -0.815120 0.117523 +v -0.125972 -0.795356 0.111857 +v -0.127513 -0.805084 0.117523 +v -0.125091 -0.789791 0.106276 +v -0.088215 -1.120876 0.360559 +v 0.000000 -1.124348 0.360559 +v 0.000000 -1.107886 0.358702 +v -0.086923 -1.104465 0.358702 +v 0.000000 -1.197354 0.360548 +v -0.093943 -1.193658 0.360548 +v -0.175887 -1.110505 0.360560 +v -0.187308 -1.182613 0.360548 +v -0.173312 -1.094246 0.358702 +v -0.098571 -1.252464 0.244878 +v 0.000000 -1.256342 0.244878 +v 0.000000 -1.253641 0.295392 +v -0.098359 -1.249770 0.295392 +v -0.098646 -1.253413 0.193502 +v 0.000000 -1.257295 0.193502 +v -0.196535 -1.240875 0.244878 +v -0.196684 -1.241815 0.193502 +v -0.196113 -1.238206 0.295392 +v -0.105213 -1.336858 0.062279 +v 0.000000 -1.340999 0.062279 +v 0.000000 -1.338164 0.069397 +v -0.104991 -1.334033 0.069397 +v -0.105370 -1.338851 0.053092 +v 0.000000 -1.342998 0.053092 +v -0.209779 -1.324489 0.062279 +v -0.210091 -1.326463 0.053092 +v -0.209335 -1.321689 0.069397 +v -0.186285 -0.775933 0.022996 +v -0.186716 -0.777727 0.021715 +v -0.186283 -0.775922 0.028075 +v -0.246591 -0.758929 0.022996 +v -0.246588 -0.758918 0.028075 +v -0.247161 -0.760684 0.021715 +v -0.187986 -0.783017 0.111857 +v -0.186671 -0.777538 0.106276 +v -0.190285 -0.792594 0.117523 +v -0.248842 -0.765857 0.111857 +v -0.251886 -0.775225 0.117523 +v -0.247101 -0.760499 0.106276 +v -0.262473 -1.093277 0.360560 +v -0.258630 -1.077270 0.358702 +v -0.279516 -1.164266 0.360548 +v -0.347443 -1.069318 0.360560 +v -0.370003 -1.138752 0.360548 +v -0.342356 -1.053662 0.358702 +v -0.293286 -1.221624 0.244878 +v -0.292655 -1.218997 0.295392 +v -0.293508 -1.222550 0.193502 +v -0.388231 -1.194853 0.244878 +v -0.388526 -1.195758 0.193502 +v -0.387397 -1.192283 0.295392 +v -0.313049 -1.303941 0.062279 +v -0.312387 -1.301184 0.069397 +v -0.313515 -1.305884 0.053092 +v -0.414392 -1.275366 0.062279 +v -0.415009 -1.277267 0.053092 +v -0.413516 -1.272670 0.069397 +v -0.305375 -0.737238 0.022996 +v -0.306081 -0.738943 0.021715 +v -0.305370 -0.737228 0.028075 +v -0.362278 -0.711010 0.022996 +v -0.362273 -0.710999 0.028075 +v -0.363116 -0.712654 0.021715 +v -0.308162 -0.743969 0.111857 +v -0.306006 -0.738764 0.106276 +v -0.311932 -0.753069 0.117523 +v -0.365585 -0.717501 0.111857 +v -0.370057 -0.726277 0.117523 +v -0.363028 -0.712481 0.106276 +v -0.430268 -1.038757 0.360560 +v -0.423968 -1.023548 0.358702 +v -0.458205 -1.106206 0.360548 +v -0.510443 -1.001801 0.360560 +v -0.543587 -1.066851 0.360548 +v -0.502969 -0.987133 0.358702 +v -0.480779 -1.160704 0.244878 +v -0.479746 -1.158207 0.295392 +v -0.481144 -1.161583 0.193502 +v -0.570367 -1.119409 0.244878 +v -0.570799 -1.120258 0.193502 +v -0.569140 -1.117002 0.295392 +v -0.513175 -1.238915 0.062279 +v -0.512091 -1.236297 0.069397 +v -0.513941 -1.240762 0.053092 +v -0.608800 -1.194838 0.062279 +v -0.609708 -1.196620 0.053092 +v -0.607513 -1.192313 0.069397 +v -0.416945 -0.680391 0.022996 +v -0.417909 -0.681964 0.021715 +v -0.416939 -0.680381 0.028075 +v -0.469044 -0.645583 0.022996 +v -0.469038 -0.645574 0.028076 +v -0.470129 -0.647076 0.021715 +v -0.420751 -0.686602 0.111857 +v -0.417807 -0.681798 0.106276 +v -0.425897 -0.695000 0.117523 +v -0.473326 -0.651477 0.111857 +v -0.479115 -0.659445 0.117523 +v -0.470015 -0.646919 0.106276 +v -0.587467 -0.958659 0.360560 +v -0.578865 -0.944623 0.358702 +v -0.625612 -1.020907 0.360548 +v -0.660874 -0.909616 0.360560 +v -0.703787 -0.968680 0.360548 +v -0.651198 -0.896298 0.358702 +v -0.656434 -1.071203 0.244879 +v -0.655022 -1.068899 0.295392 +v -0.656931 -1.072015 0.193502 +v -0.738459 -1.016402 0.244879 +v -0.739019 -1.017173 0.193502 +v -0.736871 -1.014217 0.295392 +v -0.700666 -1.143384 0.062279 +v -0.699185 -1.140967 0.069397 +v -0.701711 -1.145088 0.053092 +v -0.788219 -1.084891 0.062279 +v -0.789394 -1.086508 0.053092 +v -0.786553 -1.082597 0.069397 +v -0.518247 -0.606790 0.022996 +v -0.519445 -0.608192 0.021715 +v -0.518239 -0.606781 0.028076 +v -0.564260 -0.564260 0.022996 +v -0.564252 -0.564252 0.028076 +v -0.565565 -0.565565 0.021715 +v -0.522978 -0.612329 0.111857 +v -0.519319 -0.608045 0.106276 +v -0.529375 -0.619819 0.117523 +v -0.569412 -0.569412 0.111857 +v -0.576376 -0.576376 0.117523 +v -0.565428 -0.565428 0.106276 +v -0.730201 -0.854956 0.360560 +v -0.719510 -0.842438 0.358702 +v -0.777615 -0.910471 0.360548 +v -0.795033 -0.795034 0.360560 +v -0.846657 -0.846657 0.360548 +v -0.783393 -0.783393 0.358702 +v -0.815925 -0.955325 0.244879 +v -0.814170 -0.953271 0.295392 +v -0.816543 -0.956049 0.193502 +v -0.888368 -0.888368 0.244879 +v -0.889041 -0.889041 0.193502 +v -0.886458 -0.886458 0.295392 +v -0.870904 -1.019698 0.062279 +v -0.869064 -1.017543 0.069397 +v -0.872203 -1.021218 0.053092 +v -0.948229 -0.948229 0.062279 +v -0.949642 -0.949642 0.053092 +v -0.946225 -0.946225 0.069397 +v -0.606789 -0.518247 0.022996 +v -0.608192 -0.519445 0.021715 +v -0.606781 -0.518241 0.028076 +v -0.645583 -0.469044 0.022996 +v -0.645574 -0.469038 0.028076 +v -0.647076 -0.470129 0.021715 +v -0.612329 -0.522978 0.111857 +v -0.608045 -0.519319 0.106276 +v -0.619819 -0.529375 0.117523 +v -0.651477 -0.473326 0.111857 +v -0.659445 -0.479116 0.117523 +v -0.646919 -0.470015 0.106276 +v -0.854956 -0.730202 0.360560 +v -0.842438 -0.719510 0.358702 +v -0.910471 -0.777615 0.360548 +v -0.909616 -0.660875 0.360560 +v -0.968680 -0.703787 0.360548 +v -0.896298 -0.651199 0.358702 +v -0.955326 -0.815925 0.244879 +v -0.953271 -0.814170 0.295392 +v -0.956050 -0.816543 0.193502 +v -1.016402 -0.738459 0.244879 +v -1.017173 -0.739019 0.193502 +v -1.014217 -0.736871 0.295392 +v -1.019698 -0.870904 0.062279 +v -1.017543 -0.869064 0.069397 +v -1.021218 -0.872203 0.053092 +v -1.084891 -0.788219 0.062279 +v -1.086508 -0.789394 0.053092 +v -1.082597 -0.786553 0.069397 +v -0.680391 -0.416945 0.022996 +v -0.681964 -0.417909 0.021715 +v -0.680381 -0.416939 0.028076 +v -0.711010 -0.362278 0.022996 +v -0.711000 -0.362273 0.028076 +v -0.712654 -0.363116 0.021715 +v -0.686602 -0.420751 0.111857 +v -0.681798 -0.417807 0.106276 +v -0.695000 -0.425897 0.117523 +v -0.717501 -0.365585 0.111857 +v -0.726277 -0.370057 0.117523 +v -0.712481 -0.363028 0.106276 +v -0.958659 -0.587467 0.360560 +v -0.944623 -0.578866 0.358702 +v -1.020907 -0.625612 0.360548 +v -1.001801 -0.510444 0.360560 +v -1.066850 -0.543587 0.360548 +v -0.987133 -0.502970 0.358702 +v -1.071203 -0.656434 0.244879 +v -1.068899 -0.655022 0.295392 +v -1.072015 -0.656931 0.193503 +v -1.119409 -0.570367 0.244879 +v -1.120257 -0.570799 0.193503 +v -1.117002 -0.569140 0.295392 +v -1.143384 -0.700666 0.062279 +v -1.140967 -0.699185 0.069397 +v -1.145088 -0.701710 0.053092 +v -1.194838 -0.608800 0.062279 +v -1.196619 -0.609708 0.053092 +v -1.192313 -0.607513 0.069397 +v -0.737238 -0.305375 0.022996 +v -0.738943 -0.306081 0.021715 +v -0.737228 -0.305370 0.028076 +v -0.758929 -0.246591 0.022996 +v -0.758918 -0.246588 0.028076 +v -0.760684 -0.247161 0.021715 +v -0.743969 -0.308162 0.111857 +v -0.738764 -0.306006 0.106276 +v -0.753069 -0.311932 0.117523 +v -0.765857 -0.248843 0.111857 +v -0.775225 -0.251886 0.117523 +v -0.760499 -0.247101 0.106276 +v -1.038757 -0.430268 0.360560 +v -1.023548 -0.423968 0.358702 +v -1.106206 -0.458206 0.360548 +v -1.069318 -0.347443 0.360560 +v -1.138751 -0.370003 0.360548 +v -1.053662 -0.342356 0.358702 +v -1.160704 -0.480780 0.244879 +v -1.158207 -0.479746 0.295392 +v -1.161583 -0.481144 0.193503 +v -1.194853 -0.388231 0.244879 +v -1.195758 -0.388526 0.193503 +v -1.192283 -0.387397 0.295392 +v -1.238915 -0.513175 0.062279 +v -1.236296 -0.512091 0.069397 +v -1.240762 -0.513941 0.053092 +v -1.275366 -0.414392 0.062279 +v -1.277267 -0.415009 0.053092 +v -1.272670 -0.413516 0.069397 +v -0.775933 -0.186285 0.022996 +v -0.777727 -0.186716 0.021715 +v -0.775922 -0.186283 0.028076 +v -0.788160 -0.124833 0.022996 +v -0.788149 -0.124831 0.028076 +v -0.789983 -0.125121 0.021715 +v -0.783017 -0.187986 0.111857 +v -0.777538 -0.186671 0.106276 +v -0.792594 -0.190285 0.117523 +v -0.795356 -0.125972 0.111857 +v -0.805084 -0.127513 0.117523 +v -0.789791 -0.125091 0.106276 +v -1.093276 -0.262473 0.360560 +v -1.077269 -0.258630 0.358702 +v -1.164266 -0.279516 0.360548 +v -1.110505 -0.175887 0.360560 +v -1.182613 -0.187308 0.360548 +v -1.094246 -0.173312 0.358702 +v -1.221624 -0.293286 0.244879 +v -1.218997 -0.292656 0.295392 +v -1.222550 -0.293509 0.193503 +v -1.240875 -0.196536 0.244879 +v -1.241815 -0.196684 0.193503 +v -1.238206 -0.196113 0.295392 +v -1.303940 -0.313049 0.062279 +v -1.301184 -0.312387 0.069397 +v -1.305884 -0.313515 0.053092 +v -1.324489 -0.209779 0.062279 +v -1.326463 -0.210091 0.053092 +v -1.321689 -0.209335 0.069397 +v -0.795521 -0.062609 0.022996 +v -0.797361 -0.062754 0.021715 +v -0.795510 -0.062608 0.028076 +v -0.802784 -0.063181 0.111857 +v -0.797167 -0.062738 0.106276 +v -0.812603 -0.063953 0.117523 +v -1.120876 -0.088215 0.360560 +v -1.104465 -0.086923 0.358702 +v -1.193658 -0.093943 0.360548 +v -1.252464 -0.098571 0.244879 +v -1.249770 -0.098359 0.295392 +v -1.253413 -0.098646 0.193503 +v -1.336858 -0.105213 0.062279 +v -1.334033 -0.104991 0.069397 +v -1.338851 -0.105370 0.053092 +v 0.563271 -0.568336 0.022996 +v 0.567702 -0.566866 0.022996 +v 0.568783 -0.567770 0.022047 +v 0.565111 -0.569137 0.021715 +v 0.563262 -0.568327 0.028075 +v 0.567693 -0.566858 0.028075 +v 0.549966 -0.579699 0.022996 +v 0.549958 -0.579691 0.028075 +v 0.551372 -0.580911 0.021715 +v 0.568861 -0.573077 0.110196 +v 0.571679 -0.570563 0.107413 +v 0.567529 -0.568721 0.104223 +v 0.564550 -0.569402 0.105063 +v 0.576353 -0.579849 0.115659 +v 0.580101 -0.576907 0.112537 +v 0.555099 -0.584879 0.111442 +v 0.562022 -0.591974 0.117057 +v 0.551133 -0.580871 0.105972 +v 0.794832 -0.800175 0.358966 +v 0.799716 -0.796703 0.356297 +v 0.788425 -0.785387 0.354499 +v 0.783351 -0.788589 0.357130 +v 0.849791 -0.846892 0.356286 +v 0.845750 -0.851555 0.358954 +v 0.775191 -0.816636 0.360161 +v 0.825353 -0.869518 0.360149 +v 0.763880 -0.804712 0.358309 +v 0.886623 -0.892803 0.244267 +v 0.889537 -0.886731 0.243243 +v 0.887787 -0.884977 0.292939 +v 0.884778 -0.890940 0.294475 +v 0.887281 -0.893466 0.193175 +v 0.890172 -0.887367 0.192627 +v 0.865816 -0.912179 0.244725 +v 0.866469 -0.912867 0.193420 +v 0.863969 -0.910232 0.295162 +v 0.946685 -0.953401 0.062147 +v 0.950329 -0.947653 0.061925 +v 0.948320 -0.945641 0.068488 +v 0.944684 -0.951382 0.069057 +v 0.948075 -0.954803 0.053059 +v 0.951687 -0.949015 0.053003 +v 0.924237 -0.973754 0.062246 +v 0.925610 -0.975201 0.053083 +v 0.922284 -0.971695 0.069312 +v 0.416944 -0.680391 0.022996 +v 0.468361 -0.646167 0.022996 +v 0.469444 -0.647661 0.021715 +v 0.417908 -0.681964 0.021715 +v 0.416938 -0.680381 0.028075 +v 0.468355 -0.646157 0.028075 +v 0.362278 -0.711010 0.022996 +v 0.362273 -0.711000 0.028075 +v 0.363115 -0.712654 0.021715 +v 0.420751 -0.686602 0.111857 +v 0.472637 -0.652066 0.111857 +v 0.469330 -0.647504 0.106276 +v 0.417807 -0.681798 0.106276 +v 0.425897 -0.695000 0.117523 +v 0.478418 -0.660041 0.117523 +v 0.365585 -0.717501 0.111857 +v 0.370057 -0.726277 0.117523 +v 0.363027 -0.712481 0.106276 +v 0.587467 -0.958659 0.360559 +v 0.659912 -0.910438 0.360559 +v 0.650250 -0.897108 0.358702 +v 0.578866 -0.944623 0.358702 +v 0.702762 -0.969555 0.360548 +v 0.625612 -1.020907 0.360548 +v 0.510443 -1.001801 0.360559 +v 0.543588 -1.066851 0.360548 +v 0.502970 -0.987133 0.358702 +v 0.656433 -1.071203 0.244878 +v 0.737384 -1.017321 0.244878 +v 0.735798 -1.015133 0.295392 +v 0.655022 -1.068899 0.295392 +v 0.656931 -1.072015 0.193502 +v 0.737943 -1.018092 0.193502 +v 0.570368 -1.119409 0.244878 +v 0.570800 -1.120258 0.193502 +v 0.569140 -1.117002 0.295392 +v 0.700666 -1.143384 0.062279 +v 0.787071 -1.085871 0.062279 +v 0.785408 -1.083575 0.069397 +v 0.699185 -1.140967 0.069397 +v 0.701710 -1.145088 0.053092 +v 0.788244 -1.087489 0.053092 +v 0.608800 -1.194839 0.062279 +v 0.609707 -1.196620 0.053092 +v 0.607513 -1.192313 0.069396 +v 0.305374 -0.737238 0.022996 +v 0.306080 -0.738943 0.021715 +v 0.305370 -0.737228 0.028075 +v 0.246591 -0.758929 0.022996 +v 0.246588 -0.758918 0.028075 +v 0.247161 -0.760684 0.021715 +v 0.308162 -0.743969 0.111857 +v 0.306006 -0.738764 0.106276 +v 0.311931 -0.753069 0.117523 +v 0.248842 -0.765857 0.111857 +v 0.251886 -0.775225 0.117523 +v 0.247101 -0.760499 0.106276 +v 0.430267 -1.038757 0.360559 +v 0.423968 -1.023548 0.358702 +v 0.458206 -1.106206 0.360548 +v 0.347443 -1.069318 0.360559 +v 0.370003 -1.138752 0.360548 +v 0.342356 -1.053662 0.358702 +v 0.480779 -1.160704 0.244878 +v 0.479745 -1.158208 0.295392 +v 0.481144 -1.161583 0.193502 +v 0.388231 -1.194853 0.244878 +v 0.388526 -1.195758 0.193502 +v 0.387396 -1.192283 0.295392 +v 0.513175 -1.238916 0.062279 +v 0.512091 -1.236297 0.069397 +v 0.513941 -1.240762 0.053092 +v 0.414392 -1.275366 0.062279 +v 0.415009 -1.277267 0.053092 +v 0.413516 -1.272670 0.069397 +v 0.186285 -0.775933 0.022996 +v 0.186716 -0.777727 0.021715 +v 0.186282 -0.775922 0.028075 +v 0.124832 -0.788160 0.022996 +v 0.124831 -0.788149 0.028075 +v 0.125121 -0.789983 0.021715 +v 0.187986 -0.783017 0.111857 +v 0.186671 -0.777538 0.106276 +v 0.190285 -0.792594 0.117523 +v 0.125972 -0.795356 0.111857 +v 0.127513 -0.805084 0.117523 +v 0.125091 -0.789791 0.106276 +v 0.262473 -1.093277 0.360559 +v 0.258630 -1.077270 0.358702 +v 0.279516 -1.164266 0.360548 +v 0.175887 -1.110505 0.360559 +v 0.187308 -1.182613 0.360548 +v 0.173312 -1.094246 0.358702 +v 0.293286 -1.221624 0.244878 +v 0.292655 -1.218997 0.295392 +v 0.293508 -1.222550 0.193502 +v 0.196535 -1.240875 0.244878 +v 0.196684 -1.241815 0.193502 +v 0.196113 -1.238206 0.295392 +v 0.313049 -1.303941 0.062279 +v 0.312387 -1.301184 0.069397 +v 0.313515 -1.305884 0.053092 +v 0.209778 -1.324489 0.062279 +v 0.210091 -1.326463 0.053092 +v 0.209335 -1.321689 0.069397 +v 0.062609 -0.795521 0.022996 +v 0.062754 -0.797361 0.021715 +v 0.062608 -0.795510 0.028075 +v 0.063180 -0.802784 0.111857 +v 0.062738 -0.797167 0.106276 +v 0.063953 -0.812603 0.117523 +v 0.088215 -1.120876 0.360559 +v 0.086923 -1.104465 0.358702 +v 0.093943 -1.193658 0.360548 +v 0.098571 -1.252464 0.244878 +v 0.098359 -1.249770 0.295392 +v 0.098646 -1.253413 0.193502 +v 0.105213 -1.336858 0.062279 +v 0.104991 -1.334033 0.069397 +v 0.105370 -1.338851 0.053092 +v -0.083818 -1.065009 0.332047 +v -0.083269 -1.058033 0.303722 +v -0.166026 -1.048244 0.303722 +v -0.167120 -1.055154 0.332047 +v 0.000000 -1.068307 0.332047 +v 0.000000 -1.061310 0.303722 +v -0.084625 -1.075265 0.344249 +v 0.000000 -1.078595 0.344249 +v -0.168730 -1.065316 0.344249 +v -0.096283 -1.223387 0.350053 +v -0.095177 -1.209332 0.357912 +v -0.189767 -1.198142 0.357912 +v -0.191973 -1.212067 0.350053 +v 0.000000 -1.227176 0.350053 +v 0.000000 -1.213077 0.357912 +v -0.097209 -1.235157 0.338096 +v 0.000000 -1.238983 0.338096 +v -0.193820 -1.223729 0.338096 +v -0.249390 -1.038785 0.332047 +v -0.247757 -1.031981 0.303722 +v -0.327963 -1.009366 0.303722 +v -0.330125 -1.016020 0.332047 +v -0.251792 -1.048789 0.344249 +v -0.333305 -1.025805 0.344249 +v -0.286477 -1.193263 0.350053 +v -0.283186 -1.179554 0.357912 +v -0.374862 -1.153705 0.357912 +v -0.379219 -1.167114 0.350053 +v -0.289234 -1.204744 0.338096 +v -0.382867 -1.178343 0.338096 +v -0.408822 -0.986982 0.332047 +v -0.406144 -0.980518 0.303722 +v -0.481824 -0.945634 0.303722 +v -0.485001 -0.951868 0.332047 +v -0.412759 -0.996488 0.344249 +v -0.489672 -0.961036 0.344249 +v -0.469617 -1.133757 0.350053 +v -0.464222 -1.120732 0.357912 +v -0.550725 -1.080860 0.357912 +v -0.557126 -1.093422 0.350053 +v -0.474135 -1.144665 0.338096 +v -0.562486 -1.103942 0.338097 +v -0.558186 -0.910877 0.332047 +v -0.554530 -0.904911 0.303722 +v -0.623822 -0.858618 0.303722 +v -0.627935 -0.864278 0.332047 +v -0.563561 -0.919649 0.344249 +v -0.633982 -0.872602 0.344249 +v -0.641194 -1.046335 0.350053 +v -0.633827 -1.034313 0.357912 +v -0.713028 -0.981400 0.357912 +v -0.721315 -0.992806 0.350053 +v -0.647363 -1.056401 0.338097 +v -0.728255 -1.002358 0.338097 +v -0.693806 -0.812343 0.332047 +v -0.689262 -0.807023 0.303722 +v -0.750459 -0.750459 0.303722 +v -0.755407 -0.755407 0.332047 +v -0.700488 -0.820166 0.344249 +v -0.762682 -0.762682 0.344249 +v -0.796983 -0.933147 0.350053 +v -0.787826 -0.922426 0.357912 +v -0.857774 -0.857775 0.357912 +v -0.867744 -0.867744 0.350053 +v -0.804651 -0.942125 0.338097 +v -0.876093 -0.876093 0.338097 +v -0.812343 -0.693806 0.332047 +v -0.807023 -0.689262 0.303722 +v -0.858618 -0.623822 0.303722 +v -0.864278 -0.627935 0.332047 +v -0.820166 -0.700488 0.344249 +v -0.872602 -0.633982 0.344249 +v -0.933147 -0.796983 0.350053 +v -0.922426 -0.787827 0.357912 +v -0.981400 -0.713028 0.357913 +v -0.992806 -0.721315 0.350053 +v -0.942125 -0.804651 0.338097 +v -1.002358 -0.728255 0.338097 +v -0.910877 -0.558186 0.332047 +v -0.904911 -0.554530 0.303722 +v -0.945634 -0.481825 0.303722 +v -0.951868 -0.485002 0.332047 +v -0.919649 -0.563562 0.344249 +v -0.961036 -0.489673 0.344249 +v -1.046334 -0.641194 0.350053 +v -1.034313 -0.633828 0.357913 +v -1.080859 -0.550725 0.357913 +v -1.093422 -0.557126 0.350053 +v -1.056401 -0.647363 0.338097 +v -1.103942 -0.562486 0.338097 +v -0.986982 -0.408822 0.332047 +v -0.980518 -0.406144 0.303722 +v -1.009366 -0.327963 0.303722 +v -1.016020 -0.330125 0.332047 +v -0.996488 -0.412759 0.344249 +v -1.025805 -0.333305 0.344249 +v -1.133757 -0.469618 0.350053 +v -1.120732 -0.464223 0.357913 +v -1.153705 -0.374862 0.357913 +v -1.167114 -0.379219 0.350053 +v -1.144665 -0.474136 0.338097 +v -1.178342 -0.382867 0.338097 +v -1.038785 -0.249390 0.332047 +v -1.031981 -0.247757 0.303722 +v -1.048244 -0.166026 0.303722 +v -1.055154 -0.167120 0.332047 +v -1.048789 -0.251792 0.344249 +v -1.065316 -0.168730 0.344249 +v -1.193263 -0.286478 0.350053 +v -1.179554 -0.283186 0.357913 +v -1.198142 -0.189767 0.357913 +v -1.212067 -0.191973 0.350053 +v -1.204744 -0.289234 0.338097 +v -1.223729 -0.193820 0.338097 +v -1.065009 -0.083818 0.332047 +v -1.058034 -0.083269 0.303722 +v -1.075265 -0.084625 0.344249 +v -1.223387 -0.096283 0.350053 +v -1.209332 -0.095177 0.357913 +v -1.235157 -0.097209 0.338097 +v 0.690149 -0.815466 0.332047 +v 0.685629 -0.810126 0.303722 +v 0.622914 -0.859393 0.303722 +v 0.627020 -0.865059 0.332047 +v 0.736709 -0.776066 0.331733 +v 0.731918 -0.771014 0.303459 +v 0.696796 -0.823320 0.344249 +v 0.743761 -0.783502 0.343899 +v 0.633059 -0.873390 0.344249 +v 0.792782 -0.936735 0.350053 +v 0.783674 -0.925973 0.357912 +v 0.711990 -0.982286 0.357912 +v 0.720265 -0.993703 0.350053 +v 0.845843 -0.891119 0.349686 +v 0.836156 -0.880907 0.357522 +v 0.800409 -0.945748 0.338096 +v 0.853947 -0.899663 0.337765 +v 0.727195 -1.003264 0.338096 +v 0.558187 -0.910877 0.332047 +v 0.554531 -0.904911 0.303722 +v 0.481825 -0.945634 0.303722 +v 0.485001 -0.951868 0.332047 +v 0.563562 -0.919649 0.344249 +v 0.489672 -0.961036 0.344249 +v 0.641194 -1.046335 0.350053 +v 0.633827 -1.034313 0.357912 +v 0.550726 -1.080860 0.357912 +v 0.557126 -1.093422 0.350053 +v 0.647363 -1.056401 0.338096 +v 0.562486 -1.103942 0.338096 +v 0.408822 -0.986982 0.332047 +v 0.406144 -0.980518 0.303722 +v 0.327963 -1.009366 0.303722 +v 0.330125 -1.016020 0.332047 +v 0.412759 -0.996488 0.344249 +v 0.333305 -1.025805 0.344249 +v 0.469618 -1.133757 0.350053 +v 0.464222 -1.120732 0.357912 +v 0.374862 -1.153705 0.357912 +v 0.379218 -1.167114 0.350053 +v 0.474136 -1.144665 0.338096 +v 0.382867 -1.178343 0.338096 +v 0.249390 -1.038784 0.332047 +v 0.247757 -1.031981 0.303722 +v 0.166026 -1.048244 0.303722 +v 0.167120 -1.055154 0.332047 +v 0.251792 -1.048789 0.344249 +v 0.168730 -1.065316 0.344249 +v 0.286477 -1.193263 0.350053 +v 0.283186 -1.179554 0.357912 +v 0.189767 -1.198142 0.357912 +v 0.191973 -1.212067 0.350053 +v 0.289234 -1.204744 0.338096 +v 0.193820 -1.223729 0.338096 +v 0.083818 -1.065009 0.332047 +v 0.083269 -1.058033 0.303722 +v 0.084625 -1.075265 0.344249 +v 0.096283 -1.223387 0.350053 +v 0.095177 -1.209332 0.357912 +v 0.097209 -1.235157 0.338096 +v -0.085694 -1.088840 0.353200 +v -0.170860 -1.078765 0.353200 +v 0.000000 -1.092212 0.353200 +v -0.254971 -1.062029 0.353200 +v -0.337512 -1.038755 0.353200 +v -0.417970 -1.009067 0.353200 +v -0.495853 -0.973168 0.353200 +v -0.570676 -0.931259 0.353200 +v -0.641985 -0.883618 0.353200 +v -0.709331 -0.830520 0.353200 +v -0.772310 -0.772310 0.353200 +v -0.830520 -0.709331 0.353200 +v -0.883618 -0.641986 0.353200 +v -0.931259 -0.570676 0.353200 +v -0.973168 -0.495854 0.353200 +v -1.009067 -0.417970 0.353200 +v -1.038755 -0.337512 0.353200 +v -1.062029 -0.254971 0.353200 +v -1.078765 -0.170860 0.353200 +v -1.088840 -0.085694 0.353200 +v 0.705592 -0.833713 0.353200 +v 0.641051 -0.884416 0.353200 +v 0.753111 -0.793359 0.352823 +v 0.715718 -0.845678 0.358702 +v 0.570677 -0.931259 0.353200 +v 0.495854 -0.973168 0.353200 +v 0.417970 -1.009067 0.353200 +v 0.337512 -1.038755 0.353200 +v 0.254971 -1.062029 0.353200 +v 0.170860 -1.078765 0.353200 +v 0.085694 -1.088840 0.353200 +v -0.098996 -1.257856 0.128281 +v 0.000000 -1.261752 0.128281 +v 0.000000 -1.259015 0.144491 +v -0.098781 -1.255128 0.144491 +v -0.099365 -1.262556 0.114410 +v 0.000000 -1.266466 0.114410 +v -0.197382 -1.246218 0.128281 +v -0.198119 -1.250874 0.114410 +v -0.196954 -1.243515 0.144491 +v -0.294549 -1.226884 0.128281 +v -0.293910 -1.224223 0.144492 +v -0.295650 -1.231468 0.114410 +v -0.389903 -1.199997 0.128281 +v -0.391360 -1.204481 0.114410 +v -0.389057 -1.197394 0.144492 +v -0.482850 -1.165701 0.128281 +v -0.481802 -1.163172 0.144492 +v -0.484654 -1.170057 0.114410 +v -0.572823 -1.124229 0.128281 +v -0.574963 -1.128430 0.114410 +v -0.571580 -1.121790 0.144492 +v -0.659260 -1.075815 0.128281 +v -0.657830 -1.073482 0.144492 +v -0.661723 -1.079835 0.114410 +v -0.741639 -1.020779 0.128281 +v -0.744410 -1.024593 0.114410 +v -0.740030 -1.018564 0.144492 +v -0.819438 -0.959439 0.128281 +v -0.817661 -0.957358 0.144492 +v -0.822500 -0.963024 0.114410 +v -0.892193 -0.892193 0.128281 +v -0.895527 -0.895527 0.114410 +v -0.890258 -0.890258 0.144492 +v -0.959439 -0.819438 0.128281 +v -0.957358 -0.817661 0.144492 +v -0.963024 -0.822500 0.114410 +v -1.020779 -0.741639 0.128281 +v -1.024593 -0.744410 0.114410 +v -1.018565 -0.740030 0.144492 +v -1.075815 -0.659260 0.128281 +v -1.073482 -0.657830 0.144492 +v -1.079835 -0.661723 0.114410 +v -1.124229 -0.572823 0.128281 +v -1.128430 -0.574963 0.114410 +v -1.121790 -0.571580 0.144492 +v -1.165701 -0.482850 0.128281 +v -1.163173 -0.481802 0.144492 +v -1.170057 -0.484654 0.114410 +v -1.199997 -0.389903 0.128281 +v -1.204481 -0.391360 0.114410 +v -1.197394 -0.389057 0.144492 +v -1.226884 -0.294549 0.128281 +v -1.224223 -0.293910 0.144492 +v -1.231468 -0.295649 0.114410 +v -1.246218 -0.197382 0.128281 +v -1.250874 -0.198119 0.114410 +v -1.243514 -0.196954 0.144492 +v -1.257856 -0.098996 0.128281 +v -1.255128 -0.098781 0.144492 +v -1.262556 -0.099365 0.114410 +v 0.890580 -0.896794 0.127690 +v 0.893738 -0.890940 0.126702 +v 0.891468 -0.888665 0.143924 +v 0.888524 -0.894720 0.144279 +v 0.894033 -0.900277 0.113414 +v 0.897414 -0.894623 0.111746 +v 0.869579 -0.916143 0.128133 +v 0.872859 -0.919600 0.114161 +v 0.867662 -0.914124 0.144438 +v 0.659260 -1.075815 0.128281 +v 0.740559 -1.021701 0.128281 +v 0.738952 -1.019485 0.144491 +v 0.657830 -1.073482 0.144491 +v 0.661723 -1.079835 0.114410 +v 0.743326 -1.025518 0.114410 +v 0.572822 -1.124229 0.128281 +v 0.574963 -1.128430 0.114410 +v 0.571580 -1.121791 0.144491 +v 0.482849 -1.165701 0.128281 +v 0.481802 -1.163173 0.144491 +v 0.484653 -1.170057 0.114410 +v 0.389903 -1.199997 0.128281 +v 0.391360 -1.204481 0.114410 +v 0.389057 -1.197394 0.144491 +v 0.294549 -1.226884 0.128281 +v 0.293910 -1.224223 0.144491 +v 0.295649 -1.231468 0.114410 +v 0.197382 -1.246218 0.128281 +v 0.198119 -1.250874 0.114410 +v 0.196953 -1.243515 0.144491 +v 0.098995 -1.257856 0.128281 +v 0.098781 -1.255128 0.144491 +v 0.099365 -1.262556 0.114410 +v -0.104682 -1.330109 0.076381 +v 0.000000 -1.334229 0.076381 +v 0.000000 -1.324876 0.082693 +v -0.103948 -1.320786 0.082693 +v -0.208720 -1.317802 0.076381 +v -0.207256 -1.308565 0.082693 +v -0.311468 -1.297358 0.076381 +v -0.309285 -1.288264 0.082693 +v -0.412300 -1.268927 0.076381 +v -0.409410 -1.260032 0.082693 +v -0.510584 -1.232661 0.076381 +v -0.507006 -1.224020 0.082693 +v -0.605727 -1.188807 0.076381 +v -0.601481 -1.180473 0.082693 +v -0.697129 -1.137612 0.076381 +v -0.692242 -1.129637 0.082693 +v -0.784240 -1.079414 0.076381 +v -0.778742 -1.071847 0.082693 +v -0.866508 -1.014550 0.076381 +v -0.860434 -1.007439 0.082693 +v -0.943442 -0.943442 0.076381 +v -0.936829 -0.936829 0.082693 +v -1.014551 -0.866508 0.076381 +v -1.007439 -0.860434 0.082693 +v -1.079414 -0.784240 0.076381 +v -1.071847 -0.778743 0.082693 +v -1.137612 -0.697129 0.076381 +v -1.129637 -0.692242 0.082693 +v -1.188807 -0.605727 0.076381 +v -1.180473 -0.601481 0.082693 +v -1.232661 -0.510584 0.076381 +v -1.224020 -0.507006 0.082693 +v -1.268927 -0.412300 0.076381 +v -1.260032 -0.409410 0.082693 +v -1.297358 -0.311468 0.076381 +v -1.288264 -0.309285 0.082693 +v -1.317802 -0.208720 0.076381 +v -1.308565 -0.207256 0.082693 +v -1.330109 -0.104682 0.076381 +v -1.320786 -0.103948 0.082693 +v 0.941907 -0.948580 0.075683 +v 0.945533 -0.942847 0.074515 +v 0.938906 -0.936207 0.079957 +v 0.935305 -0.941919 0.081670 +v 0.919572 -0.968836 0.076207 +v 0.913126 -0.962042 0.082437 +v 0.697129 -1.137612 0.076381 +v 0.783098 -1.080389 0.076381 +v 0.777608 -1.072816 0.082693 +v 0.692242 -1.129637 0.082693 +v 0.605726 -1.188807 0.076381 +v 0.601480 -1.180474 0.082693 +v 0.510584 -1.232661 0.076381 +v 0.507006 -1.224020 0.082693 +v 0.412300 -1.268927 0.076381 +v 0.409409 -1.260032 0.082693 +v 0.311468 -1.297358 0.076381 +v 0.309285 -1.288264 0.082693 +v 0.208719 -1.317802 0.076381 +v 0.207256 -1.308565 0.082693 +v 0.104682 -1.330109 0.076381 +v 0.103948 -1.320786 0.082693 +v -0.105482 -1.340275 0.039899 +v 0.000000 -1.344426 0.039899 +v -0.105552 -1.341161 0.028075 +v 0.000000 -1.345315 0.028075 +v -0.210315 -1.327874 0.039899 +v -0.210454 -1.328752 0.028075 +v -0.313849 -1.307273 0.039899 +v -0.314056 -1.308138 0.028075 +v -0.415451 -1.278625 0.039899 +v -0.415726 -1.279470 0.028075 +v -0.514486 -1.242081 0.039899 +v -0.514827 -1.242903 0.028076 +v -0.610356 -1.197892 0.039899 +v -0.610760 -1.198684 0.028076 +v -0.702457 -1.146306 0.039899 +v -0.702921 -1.147064 0.028076 +v -0.790233 -1.087663 0.039899 +v -0.790756 -1.088382 0.028076 +v -0.873130 -1.022304 0.039899 +v -0.873708 -1.022980 0.028076 +v -0.950652 -0.950652 0.039899 +v -0.951281 -0.951281 0.028076 +v -1.022304 -0.873130 0.039899 +v -1.022980 -0.873707 0.028076 +v -1.087663 -0.790233 0.039899 +v -1.088382 -0.790756 0.028076 +v -1.146306 -0.702457 0.039899 +v -1.147064 -0.702921 0.028076 +v -1.197892 -0.610356 0.039899 +v -1.198684 -0.610760 0.028076 +v -1.242081 -0.514486 0.039899 +v -1.242903 -0.514827 0.028076 +v -1.278625 -0.415451 0.039899 +v -1.279470 -0.415725 0.028076 +v -1.307273 -0.313849 0.039899 +v -1.308137 -0.314056 0.028076 +v -1.327874 -0.210315 0.039899 +v -1.328752 -0.210454 0.028076 +v -1.340275 -0.105482 0.039899 +v -1.341161 -0.105552 0.028076 +v 0.949018 -0.955756 0.039899 +v 0.952526 -0.949856 0.039899 +v 0.949579 -0.956322 0.028075 +v 0.952976 -0.950308 0.028075 +v 0.926578 -0.976222 0.039899 +v 0.927174 -0.976851 0.028075 +v 0.702456 -1.146306 0.039899 +v 0.789083 -1.088646 0.039899 +v 0.702921 -1.147064 0.028075 +v 0.789604 -1.089366 0.028075 +v 0.610356 -1.197892 0.039899 +v 0.610759 -1.198684 0.028075 +v 0.514486 -1.242082 0.039899 +v 0.514827 -1.242903 0.028075 +v 0.415451 -1.278625 0.039899 +v 0.415725 -1.279470 0.028075 +v 0.313849 -1.307273 0.039899 +v 0.314056 -1.308138 0.028075 +v 0.210315 -1.327874 0.039899 +v 0.210454 -1.328752 0.028075 +v 0.105482 -1.340275 0.039899 +v 0.105552 -1.341161 0.028075 +v -0.082976 -1.054304 0.246404 +v 0.000000 -1.057570 0.246404 +v 0.000000 -1.054207 0.188328 +v -0.082712 -1.050952 0.188328 +v -0.165440 -1.044549 0.246404 +v -0.164914 -1.041228 0.188328 +v -0.246884 -1.028344 0.246404 +v -0.246099 -1.025074 0.188328 +v -0.326807 -1.005808 0.246404 +v -0.325768 -1.002611 0.188328 +v -0.404713 -0.977062 0.246404 +v -0.403426 -0.973956 0.188328 +v -0.480127 -0.942301 0.246404 +v -0.478601 -0.939305 0.188328 +v -0.552575 -0.901722 0.246404 +v -0.550819 -0.898855 0.188328 +v -0.621623 -0.855592 0.246404 +v -0.619647 -0.852871 0.188328 +v -0.686833 -0.804178 0.246404 +v -0.684649 -0.801621 0.188328 +v -0.747814 -0.747814 0.246404 +v -0.745437 -0.745437 0.188328 +v -0.804178 -0.686833 0.246404 +v -0.801621 -0.684649 0.188328 +v -0.855592 -0.621623 0.246404 +v -0.852871 -0.619647 0.188328 +v -0.901722 -0.552576 0.246404 +v -0.898855 -0.550819 0.188328 +v -0.942301 -0.480127 0.246404 +v -0.939305 -0.478601 0.188328 +v -0.977062 -0.404713 0.246404 +v -0.973956 -0.403426 0.188328 +v -1.005808 -0.326807 0.246404 +v -1.002611 -0.325768 0.188328 +v -1.028344 -0.246884 0.246404 +v -1.025074 -0.246099 0.188328 +v -1.044549 -0.165441 0.246404 +v -1.041228 -0.164914 0.188328 +v -1.054304 -0.082976 0.246404 +v -1.050952 -0.082712 0.188328 +v 0.748425 -0.753345 0.245628 +v 0.754360 -0.751243 0.244329 +v 0.751897 -0.748775 0.186565 +v 0.746021 -0.750920 0.187669 +v 0.751022 -0.755965 0.302669 +v 0.756892 -0.753781 0.300907 +v 0.729350 -0.768308 0.246210 +v 0.727026 -0.765857 0.188163 +v 0.552576 -0.901722 0.246404 +v 0.620718 -0.856365 0.246404 +v 0.618745 -0.853642 0.188328 +v 0.550819 -0.898855 0.188328 +v 0.480127 -0.942301 0.246404 +v 0.478600 -0.939306 0.188328 +v 0.404713 -0.977062 0.246404 +v 0.403426 -0.973956 0.188328 +v 0.326807 -1.005808 0.246404 +v 0.325768 -1.002611 0.188328 +v 0.246884 -1.028344 0.246404 +v 0.246099 -1.025074 0.188328 +v 0.165440 -1.044549 0.246404 +v 0.164914 -1.041228 0.188328 +v 0.082976 -1.054304 0.246404 +v 0.082712 -1.050952 0.188328 +v -0.080433 -1.022001 0.130196 +v 0.000000 -1.025166 0.130196 +v 0.000000 -0.990833 0.122188 +v -0.077740 -0.987774 0.122188 +v -0.081518 -1.035786 0.142417 +v 0.000000 -1.038994 0.142417 +v -0.160371 -1.012544 0.130196 +v -0.162535 -1.026202 0.142417 +v -0.155001 -0.978634 0.122188 +v -0.239319 -0.996836 0.130196 +v -0.231305 -0.963452 0.122188 +v -0.242547 -1.010282 0.142417 +v -0.316794 -0.974991 0.130196 +v -0.321067 -0.988142 0.142417 +v -0.306185 -0.942339 0.122188 +v -0.392312 -0.947125 0.130196 +v -0.379174 -0.915406 0.122188 +v -0.397604 -0.959901 0.142417 +v -0.465416 -0.913429 0.130196 +v -0.471694 -0.925751 0.142417 +v -0.449829 -0.882839 0.122188 +v -0.535645 -0.874093 0.130196 +v -0.517707 -0.844820 0.122188 +v -0.542871 -0.885884 0.142417 +v -0.602577 -0.829377 0.130196 +v -0.610705 -0.840564 0.142417 +v -0.582397 -0.801601 0.122188 +v -0.665788 -0.779538 0.130196 +v -0.643491 -0.753432 0.122188 +v -0.674769 -0.790054 0.142417 +v -0.724901 -0.724901 0.130196 +v -0.734679 -0.734680 0.142417 +v -0.700625 -0.700625 0.122188 +v -0.779538 -0.665788 0.130196 +v -0.753432 -0.643491 0.122188 +v -0.790053 -0.674769 0.142417 +v -0.829376 -0.602577 0.130196 +v -0.840564 -0.610705 0.142417 +v -0.801601 -0.582397 0.122188 +v -0.874093 -0.535645 0.130196 +v -0.844820 -0.517707 0.122188 +v -0.885884 -0.542871 0.142417 +v -0.913429 -0.465416 0.130196 +v -0.925750 -0.471694 0.142417 +v -0.882839 -0.449829 0.122188 +v -0.947125 -0.392313 0.130196 +v -0.915406 -0.379174 0.122188 +v -0.959901 -0.397604 0.142417 +v -0.974990 -0.316794 0.130196 +v -0.988142 -0.321067 0.142417 +v -0.942338 -0.306185 0.122188 +v -0.996836 -0.239319 0.130196 +v -0.963452 -0.231305 0.122188 +v -1.010282 -0.242548 0.142417 +v -1.012544 -0.160371 0.130196 +v -1.026202 -0.162535 0.142417 +v -0.978634 -0.155001 0.122188 +v -1.022000 -0.080433 0.130196 +v -0.987774 -0.077740 0.122188 +v -1.035786 -0.081518 0.142417 +v 0.724908 -0.729623 0.128631 +v 0.729681 -0.726515 0.126010 +v 0.704715 -0.701495 0.117704 +v 0.700433 -0.704930 0.120512 +v 0.734989 -0.739792 0.141084 +v 0.740334 -0.737189 0.138850 +v 0.706857 -0.744607 0.129804 +v 0.716467 -0.754733 0.142084 +v 0.683135 -0.719606 0.121769 +v 0.535644 -0.874093 0.130196 +v 0.601699 -0.830126 0.130196 +v 0.581549 -0.802325 0.122188 +v 0.517707 -0.844820 0.122188 +v 0.542871 -0.885884 0.142417 +v 0.609816 -0.841323 0.142417 +v 0.465416 -0.913430 0.130196 +v 0.471693 -0.925751 0.142417 +v 0.449829 -0.882839 0.122188 +v 0.392312 -0.947125 0.130196 +v 0.379174 -0.915406 0.122188 +v 0.397604 -0.959901 0.142417 +v 0.316794 -0.974991 0.130196 +v 0.321067 -0.988142 0.142417 +v 0.306184 -0.942339 0.122188 +v 0.239319 -0.996836 0.130196 +v 0.231304 -0.963452 0.122188 +v 0.242547 -1.010282 0.142417 +v 0.160371 -1.012544 0.130196 +v 0.162535 -1.026202 0.142417 +v 0.155001 -0.978634 0.122188 +v 0.080433 -1.022001 0.130196 +v 0.077740 -0.987774 0.122188 +v 0.081518 -1.035786 0.142417 +v -0.064762 -0.822876 0.119519 +v 0.000000 -0.825424 0.119519 +v -0.066829 -0.849140 0.119519 +v 0.000000 -0.851770 0.119519 +v -0.129125 -0.815262 0.119519 +v -0.133246 -0.841283 0.119519 +v -0.192691 -0.802614 0.119519 +v -0.198841 -0.828232 0.119519 +v -0.255070 -0.785025 0.119519 +v -0.263212 -0.810081 0.119519 +v -0.315875 -0.762589 0.119519 +v -0.325957 -0.786929 0.119519 +v -0.374735 -0.735459 0.119519 +v -0.386696 -0.758933 0.119519 +v -0.431282 -0.703787 0.119519 +v -0.445047 -0.726250 0.119519 +v -0.485173 -0.667782 0.119519 +v -0.500657 -0.689096 0.119519 +v -0.536067 -0.627655 0.119519 +v -0.553177 -0.647688 0.119519 +v -0.583663 -0.583663 0.119519 +v -0.602292 -0.602292 0.119519 +v -0.627654 -0.536067 0.119519 +v -0.647688 -0.553177 0.119519 +v -0.667782 -0.485173 0.119519 +v -0.689096 -0.500657 0.119519 +v -0.703787 -0.431282 0.119519 +v -0.726250 -0.445047 0.119519 +v -0.735458 -0.374735 0.119519 +v -0.758933 -0.386696 0.119519 +v -0.762589 -0.315875 0.119519 +v -0.786929 -0.325957 0.119519 +v -0.785025 -0.255071 0.119519 +v -0.810081 -0.263212 0.119519 +v -0.802614 -0.192691 0.119519 +v -0.828231 -0.198841 0.119519 +v -0.815262 -0.129125 0.119519 +v -0.841283 -0.133246 0.119519 +v -0.822876 -0.064762 0.119519 +v -0.849140 -0.066829 0.119519 +v 0.583903 -0.587352 0.117805 +v 0.588139 -0.584661 0.114935 +v 0.602454 -0.606070 0.117805 +v 0.606680 -0.603243 0.114935 +v 0.569193 -0.599501 0.119091 +v 0.587339 -0.618628 0.119091 +v 0.431281 -0.703787 0.119519 +v 0.484466 -0.668386 0.119519 +v 0.445047 -0.726250 0.119519 +v 0.499929 -0.689719 0.119519 +v 0.374735 -0.735459 0.119519 +v 0.386696 -0.758933 0.119519 +v 0.315875 -0.762589 0.119519 +v 0.325957 -0.786929 0.119519 +v 0.255070 -0.785025 0.119519 +v 0.263212 -0.810081 0.119519 +v 0.192691 -0.802614 0.119519 +v 0.198841 -0.828232 0.119519 +v 0.129125 -0.815262 0.119519 +v 0.133246 -0.841283 0.119519 +v 0.064762 -0.822876 0.119519 +v 0.066829 -0.849140 0.119519 +v -0.062592 -0.795308 0.100423 +v 0.000000 -0.797771 0.100423 +v 0.000000 -0.797793 0.093749 +v -0.062594 -0.795330 0.093749 +v -0.124799 -0.787949 0.100423 +v -0.124802 -0.787970 0.093749 +v -0.186235 -0.775725 0.100423 +v -0.186240 -0.775746 0.093749 +v -0.246525 -0.758725 0.100423 +v -0.246532 -0.758746 0.093749 +v -0.305293 -0.737041 0.100423 +v -0.305301 -0.737061 0.093749 +v -0.362181 -0.710819 0.100423 +v -0.362191 -0.710838 0.093749 +v -0.416833 -0.680208 0.100423 +v -0.416844 -0.680227 0.093749 +v -0.468918 -0.645410 0.100423 +v -0.468931 -0.645428 0.093749 +v -0.518109 -0.606627 0.100423 +v -0.518122 -0.606643 0.093749 +v -0.564109 -0.564109 0.100423 +v -0.564124 -0.564124 0.093749 +v -0.606627 -0.518109 0.100423 +v -0.606643 -0.518122 0.093749 +v -0.645410 -0.468919 0.100423 +v -0.645428 -0.468931 0.093749 +v -0.680208 -0.416833 0.100423 +v -0.680227 -0.416844 0.093749 +v -0.710819 -0.362181 0.100423 +v -0.710838 -0.362191 0.093749 +v -0.737041 -0.305293 0.100423 +v -0.737061 -0.305301 0.093749 +v -0.758725 -0.246525 0.100423 +v -0.758746 -0.246532 0.093749 +v -0.775725 -0.186235 0.100423 +v -0.775746 -0.186240 0.093749 +v -0.787949 -0.124799 0.100423 +v -0.787970 -0.124803 0.093749 +v -0.795308 -0.062592 0.100423 +v -0.795330 -0.062594 0.093749 +v 0.563121 -0.568185 0.099786 +v 0.567138 -0.567129 0.100118 +v 0.567460 -0.566831 0.093985 +v 0.563135 -0.568199 0.093590 +v 0.549819 -0.579544 0.100264 +v 0.549833 -0.579559 0.093709 +v 0.416832 -0.680208 0.100423 +v 0.468236 -0.645993 0.100423 +v 0.468249 -0.646011 0.093749 +v 0.416844 -0.680227 0.093749 +v 0.362181 -0.710819 0.100423 +v 0.362190 -0.710838 0.093749 +v 0.305292 -0.737041 0.100423 +v 0.305301 -0.737061 0.093749 +v 0.246525 -0.758725 0.100423 +v 0.246532 -0.758746 0.093749 +v 0.186235 -0.775725 0.100423 +v 0.186240 -0.775746 0.093749 +v 0.124799 -0.787949 0.100423 +v 0.124802 -0.787970 0.093749 +v 0.062592 -0.795308 0.100423 +v 0.062594 -0.795330 0.093749 +v -0.072180 -0.917130 0.119519 +v 0.000000 -0.919971 0.119519 +v -0.143915 -0.908644 0.119519 +v -0.214762 -0.894547 0.119519 +v -0.284287 -0.874944 0.119519 +v -0.352056 -0.849938 0.119519 +v -0.417658 -0.819700 0.119519 +v -0.480681 -0.784400 0.119519 +v -0.540745 -0.744272 0.119519 +v -0.597470 -0.699548 0.119519 +v -0.650517 -0.650517 0.119519 +v -0.699547 -0.597470 0.119519 +v -0.744271 -0.540745 0.119519 +v -0.784400 -0.480681 0.119519 +v -0.819700 -0.417658 0.119519 +v -0.849938 -0.352056 0.119519 +v -0.874944 -0.284287 0.119519 +v -0.894547 -0.214762 0.119519 +v -0.908644 -0.143915 0.119519 +v -0.917130 -0.072180 0.119519 +v 0.650456 -0.654504 0.117805 +v 0.654626 -0.651296 0.114935 +v 0.634307 -0.668138 0.119091 +v 0.480681 -0.784400 0.119519 +v 0.539957 -0.744944 0.119519 +v 0.417658 -0.819700 0.119519 +v 0.352056 -0.849938 0.119519 +v 0.284287 -0.874944 0.119519 +v 0.214762 -0.894547 0.119519 +v 0.143915 -0.908644 0.119519 +v 0.072180 -0.917130 0.119519 +v -0.082252 -1.045108 0.157730 +v 0.000000 -1.048345 0.157730 +v -0.163997 -1.035438 0.157730 +v -0.244730 -1.019374 0.157730 +v -0.323957 -0.997035 0.157730 +v -0.401183 -0.968540 0.157730 +v -0.475938 -0.934082 0.157730 +v -0.547756 -0.893857 0.157730 +v -0.616201 -0.848129 0.157730 +v -0.680842 -0.797164 0.157730 +v -0.741292 -0.741292 0.157730 +v -0.797164 -0.680842 0.157730 +v -0.848129 -0.616201 0.157730 +v -0.893857 -0.547756 0.157730 +v -0.934082 -0.475939 0.157730 +v -0.968540 -0.401183 0.157730 +v -0.997035 -0.323957 0.157730 +v -1.019374 -0.244730 0.157730 +v -1.035438 -0.163998 0.157730 +v -1.045108 -0.082252 0.157730 +v 0.741785 -0.746647 0.156792 +v 0.747481 -0.744350 0.155220 +v 0.722961 -0.761574 0.157496 +v 0.547755 -0.893857 0.157730 +v 0.615304 -0.848895 0.157730 +v 0.475939 -0.934082 0.157730 +v 0.401182 -0.968540 0.157730 +v 0.323957 -0.997035 0.157730 +v 0.244730 -1.019374 0.157730 +v 0.163997 -1.035438 0.157730 +v 0.082252 -1.045108 0.157730 +v -0.102451 -1.301758 0.087791 +v 0.000000 -1.305789 0.087791 +v 0.000000 -1.285754 0.093786 +v -0.100879 -1.281785 0.093786 +v -0.204271 -1.289713 0.087791 +v -0.201136 -1.269924 0.093786 +v -0.304829 -1.269704 0.087791 +v -0.300152 -1.250223 0.093786 +v -0.403511 -1.241879 0.087791 +v -0.397320 -1.222825 0.093786 +v -0.499702 -1.206386 0.087791 +v -0.492034 -1.187876 0.093786 +v -0.592815 -1.163467 0.087791 +v -0.583720 -1.145615 0.093786 +v -0.682269 -1.113363 0.087791 +v -0.671801 -1.096280 0.093786 +v -0.767523 -1.056405 0.087791 +v -0.755747 -1.040197 0.093786 +v -0.848038 -0.992925 0.087791 +v -0.835026 -0.977690 0.093786 +v -0.923332 -0.923332 0.087791 +v -0.909165 -0.909165 0.093786 +v -0.992925 -0.848038 0.087791 +v -0.977690 -0.835026 0.093786 +v -1.056406 -0.767523 0.087791 +v -1.040197 -0.755747 0.093786 +v -1.113363 -0.682269 0.087791 +v -1.096280 -0.671801 0.093786 +v -1.163467 -0.592815 0.087791 +v -1.145615 -0.583720 0.093786 +v -1.206386 -0.499702 0.087791 +v -1.187876 -0.492035 0.093786 +v -1.241879 -0.403511 0.087791 +v -1.222825 -0.397320 0.093786 +v -1.269704 -0.304829 0.087791 +v -1.250223 -0.300152 0.093786 +v -1.289713 -0.204271 0.087791 +v -1.269924 -0.201136 0.093786 +v -1.301758 -0.102451 0.087791 +v -1.281784 -0.100879 0.093786 +v 0.921832 -0.928325 0.086660 +v 0.925384 -0.922655 0.084766 +v 0.911190 -0.908430 0.090761 +v 0.907690 -0.914056 0.092655 +v 0.899971 -0.948176 0.087509 +v 0.886163 -0.933622 0.093503 +v 0.682269 -1.113363 0.087791 +v 0.766406 -1.057360 0.087791 +v 0.754646 -1.041137 0.093786 +v 0.671801 -1.096280 0.093786 +v 0.592815 -1.163467 0.087791 +v 0.583719 -1.145615 0.093786 +v 0.499702 -1.206386 0.087791 +v 0.492035 -1.187876 0.093786 +v 0.403511 -1.241879 0.087791 +v 0.397320 -1.222825 0.093786 +v 0.304829 -1.269704 0.087791 +v 0.300152 -1.250223 0.093786 +v 0.204270 -1.289713 0.087791 +v 0.201136 -1.269924 0.093786 +v 0.102451 -1.301758 0.087791 +v 0.100879 -1.281785 0.093786 +v -0.097903 -1.243977 0.323170 +v 0.000000 -1.247829 0.323170 +v -0.195204 -1.232466 0.323170 +v -0.291299 -1.213346 0.323170 +v -0.385601 -1.186756 0.323170 +v -0.477522 -1.152838 0.323170 +v -0.566502 -1.111824 0.323170 +v -0.651985 -1.063944 0.323170 +v -0.733455 -1.009515 0.323170 +v -0.810396 -0.948852 0.323170 +v -0.882348 -0.882348 0.323170 +v -0.948852 -0.810396 0.323170 +v -1.009515 -0.733455 0.323170 +v -1.063944 -0.651985 0.323170 +v -1.111824 -0.566502 0.323170 +v -1.152838 -0.477522 0.323170 +v -1.186756 -0.385601 0.323170 +v -1.213346 -0.291299 0.323170 +v -1.232466 -0.195204 0.323170 +v -1.243977 -0.097903 0.323170 +v 0.880823 -0.886949 0.322021 +v 0.884066 -0.881246 0.320097 +v 0.878257 -0.875423 0.334549 +v 0.874750 -0.880820 0.336770 +v 0.860001 -0.906047 0.322883 +v 0.651985 -1.063944 0.323170 +v 0.732387 -1.010427 0.323170 +v 0.566503 -1.111824 0.323170 +v 0.477521 -1.152838 0.323170 +v 0.385601 -1.186756 0.323170 +v 0.291299 -1.213346 0.323170 +v 0.195204 -1.232466 0.323170 +v 0.097903 -1.243976 0.323170 +v -0.099922 -1.269625 0.102785 +v 0.000000 -1.273557 0.102785 +v -0.199228 -1.257877 0.102785 +v -0.297305 -1.238363 0.102785 +v -0.393551 -1.211224 0.102785 +v -0.487366 -1.176607 0.102785 +v -0.578182 -1.134747 0.102785 +v -0.665428 -1.085880 0.102785 +v -0.748577 -1.030329 0.102785 +v -0.827105 -0.968415 0.102785 +v -0.900540 -0.900540 0.102785 +v -0.968415 -0.827104 0.102785 +v -1.030329 -0.748577 0.102785 +v -1.085880 -0.665428 0.102785 +v -1.134747 -0.578182 0.102785 +v -1.176607 -0.487367 0.102785 +v -1.211224 -0.393551 0.102785 +v -1.238362 -0.297305 0.102785 +v -1.257877 -0.199228 0.102785 +v -1.269625 -0.099922 0.102785 +v 0.899080 -0.905369 0.101654 +v 0.902549 -0.899769 0.099760 +v 0.877757 -0.924761 0.102502 +v 0.665428 -1.085880 0.102785 +v 0.747487 -1.031260 0.102785 +v 0.578182 -1.134747 0.102785 +v 0.487367 -1.176608 0.102785 +v 0.393551 -1.211224 0.102785 +v 0.297305 -1.238363 0.102785 +v 0.199228 -1.257877 0.102785 +v 0.099922 -1.269625 0.102785 +v 0.856715 -0.862621 0.356349 +v 0.860575 -0.857700 0.353734 +v 0.783034 -0.772817 0.344619 +v 0.777674 -0.774612 0.349172 +v 0.793399 -0.783180 0.349748 +v 0.774159 -0.763942 0.336274 +v 0.768395 -0.765312 0.340506 +v 0.786479 -0.771289 0.336409 +v 0.778665 -0.764764 0.331848 +v 0.796890 -0.781698 0.340606 +v 0.767741 -0.757525 0.324899 +v 0.761519 -0.758419 0.328692 +v 0.763480 -0.753265 0.297724 +v 0.775549 -0.760359 0.322084 +v 0.772045 -0.756856 0.294823 +v 0.872281 -0.862056 0.341685 +v 0.870245 -0.867393 0.346125 +v 0.879905 -0.869679 0.330538 +v 0.862958 -0.852733 0.349012 +v 0.873512 -0.858309 0.332940 +v 0.864131 -0.848930 0.339263 +v 0.879107 -0.865194 0.326331 +v 0.885203 -0.874977 0.316624 +v 0.888483 -0.878257 0.290167 +v 0.882643 -0.867439 0.314735 +v 0.885101 -0.869897 0.288083 +v 0.852561 -0.842338 0.351469 +v 0.804285 -0.794065 0.351480 +v 0.854002 -0.838802 0.341455 +v 0.807564 -0.792370 0.341944 +v 0.761077 -0.750862 0.241984 +v 0.769942 -0.754753 0.239833 +v 0.758521 -0.748306 0.184572 +v 0.767396 -0.752208 0.182985 +v 0.890050 -0.879824 0.241394 +v 0.886324 -0.871119 0.239697 +v 0.890640 -0.880414 0.191637 +v 0.886787 -0.871583 0.190509 +v 0.753802 -0.743587 0.152383 +v 0.746057 -0.735843 0.134818 +v 0.762561 -0.747373 0.150151 +v 0.754556 -0.739369 0.131487 +v 0.658679 -0.648473 0.109753 +v 0.708700 -0.698490 0.112635 +v 0.611091 -0.600890 0.109753 +v 0.661674 -0.646501 0.102284 +v 0.614469 -0.599302 0.102284 +v 0.719233 -0.703455 0.104617 +v 0.592666 -0.582467 0.109753 +v 0.583786 -0.574225 0.106900 +v 0.596172 -0.581007 0.102284 +v 0.586531 -0.572315 0.099216 +v 0.734425 -0.724212 0.121279 +v 0.742500 -0.727315 0.117151 +v 0.573723 -0.568624 0.102389 +v 0.574971 -0.567391 0.095490 +v 0.575402 -0.566994 0.087082 +v 0.567581 -0.566745 0.086047 +v 0.575426 -0.567017 0.077358 +v 0.567603 -0.566767 0.076652 +v 0.587455 -0.571688 0.089953 +v 0.587470 -0.571703 0.079312 +v 0.926863 -0.916633 0.081346 +v 0.940402 -0.930170 0.076865 +v 0.912652 -0.902423 0.087341 +v 0.926964 -0.911754 0.075451 +v 0.908264 -0.892459 0.080998 +v 0.940630 -0.925418 0.071780 +v 0.947036 -0.936804 0.072405 +v 0.949827 -0.939595 0.067461 +v 0.947493 -0.932280 0.068629 +v 0.949645 -0.935723 0.066003 +v 0.951838 -0.941605 0.061526 +v 0.953133 -0.942900 0.052903 +v 0.951095 -0.935881 0.061515 +v 0.952120 -0.936906 0.052901 +v 0.904000 -0.893772 0.096340 +v 0.898732 -0.888504 0.108735 +v 0.899115 -0.883909 0.092947 +v 0.894303 -0.879097 0.105871 +v 0.894672 -0.884445 0.124917 +v 0.892024 -0.881797 0.143282 +v 0.890423 -0.875218 0.123088 +v 0.887852 -0.872648 0.142360 +v 0.953777 -0.943544 0.039899 +v 0.952515 -0.937301 0.039899 +v 0.954025 -0.943792 0.028075 +v 0.952577 -0.937363 0.028075 +v 0.662672 -0.645843 0.092555 +v 0.713620 -0.696783 0.092482 +v 0.615595 -0.598773 0.092555 +v 0.662672 -0.645843 0.081085 +v 0.615595 -0.598773 0.081085 +v 0.713359 -0.696523 0.080989 +v 0.597340 -0.580521 0.092555 +v 0.597340 -0.580521 0.081085 +v 0.878030 -0.861168 0.121966 +v 0.880444 -0.863581 0.104644 +v 0.876611 -0.859748 0.141161 +v 0.862398 -0.845538 0.121238 +v 0.862581 -0.845721 0.139892 +v 0.862900 -0.846040 0.104326 +v -0.098690 -1.253974 0.163136 +v 0.000000 -1.257857 0.163136 +v -0.196772 -1.242371 0.163136 +v -0.293640 -1.223097 0.163136 +v -0.388700 -1.196293 0.163136 +v -0.481358 -1.162103 0.163136 +v -0.571055 -1.120759 0.163136 +v -0.657225 -1.072494 0.163136 +v -0.739350 -1.017628 0.163136 +v -0.816909 -0.956478 0.163136 +v -0.889439 -0.889439 0.163136 +v -0.956478 -0.816909 0.163136 +v -1.017628 -0.739350 0.163136 +v -1.072494 -0.657225 0.163136 +v -1.120759 -0.571055 0.163136 +v -1.162103 -0.481359 0.163136 +v -1.196293 -0.388700 0.163136 +v -1.223097 -0.293640 0.163136 +v -1.242371 -0.196773 0.163136 +v -1.253974 -0.098690 0.163136 +v 0.887669 -0.893858 0.162977 +v 0.890547 -0.887743 0.162710 +v 0.866854 -0.913274 0.163096 +v 0.657225 -1.072494 0.163136 +v 0.738273 -1.018547 0.163136 +v 0.571054 -1.120759 0.163136 +v 0.481359 -1.162103 0.163136 +v 0.388699 -1.196293 0.163136 +v 0.293640 -1.223097 0.163136 +v 0.196772 -1.242371 0.163136 +v 0.098690 -1.253974 0.163136 +v 0.890989 -0.880762 0.162228 +v 0.886969 -0.871764 0.161448 +v 0.876459 -0.859596 0.160290 +v 0.876715 -0.859853 0.189548 +v 0.863399 -0.846539 0.159009 +v 0.864199 -0.847338 0.188713 +v 0.876519 -0.859657 0.239131 +v 0.875877 -0.859015 0.288612 +v 0.864325 -0.847465 0.239129 +v 0.864229 -0.847369 0.290125 +v 0.757269 -0.740425 0.116337 +v 0.768228 -0.751382 0.131357 +v 0.783655 -0.766808 0.132753 +v 0.774458 -0.757612 0.117139 +v 0.747439 -0.730597 0.103813 +v 0.766061 -0.749216 0.103897 +v 0.775570 -0.758724 0.150397 +v 0.780024 -0.763177 0.183101 +v 0.793788 -0.776938 0.184019 +v 0.789931 -0.773082 0.151805 +v 0.782318 -0.765470 0.239117 +v 0.783843 -0.766995 0.293904 +v 0.796665 -0.779815 0.293811 +v 0.795727 -0.778877 0.239119 +v 0.797420 -0.780570 0.133998 +v 0.789795 -0.772946 0.117854 +v 0.782868 -0.766020 0.103961 +v 0.806067 -0.789216 0.184837 +v 0.802744 -0.785893 0.153061 +v 0.808300 -0.791448 0.293390 +v 0.807691 -0.790839 0.239121 +v 0.848430 -0.831572 0.120587 +v 0.850044 -0.833186 0.138758 +v 0.847415 -0.830557 0.104186 +v 0.851729 -0.834871 0.157865 +v 0.853014 -0.836156 0.187967 +v 0.853429 -0.836570 0.239127 +v 0.853575 -0.836716 0.290989 +v 0.785989 -0.769141 0.322919 +v 0.797515 -0.780665 0.324800 +v 0.808580 -0.791728 0.325122 +v 0.854053 -0.837194 0.323196 +v 0.864360 -0.847499 0.321568 +v 0.874793 -0.857931 0.317565 +v -0.062601 -0.795417 0.066031 +v 0.000000 -0.797880 0.066031 +v 0.000000 -0.797913 0.054030 +v -0.062603 -0.795449 0.054030 +v -0.062598 -0.795386 0.076417 +v 0.000000 -0.797849 0.076417 +v -0.124816 -0.788057 0.066031 +v -0.124811 -0.788026 0.076417 +v -0.124821 -0.788089 0.054030 +v -0.186261 -0.775831 0.066031 +v -0.186268 -0.775863 0.054030 +v -0.186253 -0.775801 0.076417 +v -0.246559 -0.758829 0.066031 +v -0.246549 -0.758799 0.076417 +v -0.246569 -0.758860 0.054030 +v -0.305334 -0.737141 0.066031 +v -0.305347 -0.737172 0.054030 +v -0.305322 -0.737113 0.076417 +v -0.362230 -0.710916 0.066031 +v -0.362216 -0.710889 0.076417 +v -0.362245 -0.710945 0.054030 +v -0.416890 -0.680301 0.066031 +v -0.416907 -0.680329 0.054030 +v -0.416873 -0.680275 0.076417 +v -0.468983 -0.645498 0.066031 +v -0.468964 -0.645473 0.076417 +v -0.469002 -0.645525 0.054030 +v -0.518180 -0.606710 0.066031 +v -0.518201 -0.606735 0.054030 +v -0.518160 -0.606686 0.076417 +v -0.564186 -0.564186 0.066031 +v -0.564164 -0.564164 0.076417 +v -0.564209 -0.564209 0.054030 +v -0.606710 -0.518180 0.066031 +v -0.606734 -0.518201 0.054030 +v -0.606686 -0.518160 0.076417 +v -0.645498 -0.468983 0.066031 +v -0.645473 -0.468964 0.076417 +v -0.645525 -0.469002 0.054030 +v -0.680301 -0.416890 0.066031 +v -0.680329 -0.416907 0.054030 +v -0.680274 -0.416874 0.076417 +v -0.710916 -0.362230 0.066031 +v -0.710889 -0.362216 0.076417 +v -0.710945 -0.362245 0.054030 +v -0.737141 -0.305335 0.066031 +v -0.737172 -0.305347 0.054030 +v -0.737113 -0.305322 0.076417 +v -0.758829 -0.246559 0.066031 +v -0.758799 -0.246549 0.076417 +v -0.758860 -0.246569 0.054030 +v -0.775831 -0.186261 0.066031 +v -0.775863 -0.186269 0.054030 +v -0.775800 -0.186254 0.076417 +v -0.788057 -0.124816 0.066031 +v -0.788026 -0.124811 0.076417 +v -0.788089 -0.124821 0.054030 +v -0.795417 -0.062601 0.066031 +v -0.795449 -0.062603 0.054030 +v -0.795386 -0.062598 0.076417 +v 0.563196 -0.568261 0.066031 +v 0.567625 -0.566790 0.066150 +v 0.567649 -0.566813 0.054060 +v 0.563219 -0.568284 0.054030 +v 0.563174 -0.568239 0.076417 +v 0.549893 -0.579623 0.066031 +v 0.549872 -0.579600 0.076417 +v 0.549916 -0.579646 0.054030 +v 0.416890 -0.680301 0.066031 +v 0.468300 -0.646082 0.066031 +v 0.468319 -0.646108 0.054030 +v 0.416907 -0.680329 0.054030 +v 0.416873 -0.680275 0.076417 +v 0.468281 -0.646056 0.076417 +v 0.362230 -0.710916 0.066031 +v 0.362216 -0.710889 0.076417 +v 0.362245 -0.710945 0.054030 +v 0.305334 -0.737142 0.066031 +v 0.305347 -0.737172 0.054030 +v 0.305322 -0.737113 0.076417 +v 0.246559 -0.758829 0.066031 +v 0.246549 -0.758799 0.076417 +v 0.246569 -0.758860 0.054030 +v 0.186261 -0.775831 0.066031 +v 0.186268 -0.775863 0.054030 +v 0.186253 -0.775801 0.076417 +v 0.124816 -0.788057 0.066031 +v 0.124811 -0.788026 0.076417 +v 0.124821 -0.788089 0.054030 +v 0.062601 -0.795417 0.066031 +v 0.062603 -0.795449 0.054030 +v 0.062598 -0.795386 0.076417 +v 0.575502 -0.567093 0.039899 +v 0.567674 -0.566838 0.039899 +v 0.575475 -0.567067 0.054149 +v 0.575523 -0.567114 0.028075 +v 0.587518 -0.571752 0.039899 +v 0.587532 -0.571765 0.028075 +v 0.587501 -0.571735 0.054396 +v 0.662672 -0.645843 0.039899 +v 0.615595 -0.598773 0.039899 +v 0.615595 -0.598773 0.054621 +v 0.662672 -0.645843 0.054621 +v 0.662672 -0.645843 0.028075 +v 0.615595 -0.598773 0.028075 +v 0.712802 -0.695965 0.039899 +v 0.712802 -0.695965 0.028075 +v 0.712873 -0.696036 0.054605 +v 0.597340 -0.580521 0.039899 +v 0.597340 -0.580521 0.054621 +v 0.597340 -0.580521 0.028075 +v 0.740213 -0.723372 0.039899 +v 0.740495 -0.723654 0.054559 +v 0.740213 -0.723372 0.028075 +v 0.756981 -0.740138 0.039899 +v 0.756981 -0.740138 0.028075 +v 0.757430 -0.740586 0.054495 +v 0.925463 -0.908594 0.022996 +v 0.923529 -0.910824 0.021715 +v 0.905153 -0.892408 0.021715 +v 0.907073 -0.890206 0.022996 +v 0.940016 -0.923144 0.022996 +v 0.938083 -0.925408 0.021715 +v 0.925463 -0.908594 0.028075 +v 0.940016 -0.923144 0.028075 +v 0.907073 -0.890206 0.028075 +v 0.948480 -0.931607 0.022996 +v 0.946488 -0.933830 0.021715 +v 0.952603 -0.937390 0.022996 +v 0.950669 -0.939474 0.021715 +v 0.948480 -0.931607 0.028075 +v 0.947979 -0.931106 0.062460 +v 0.948355 -0.931482 0.053137 +v 0.940119 -0.923248 0.053544 +v 0.940430 -0.923558 0.064089 +v 0.926384 -0.909514 0.066129 +v 0.925694 -0.908824 0.054054 +v 0.907282 -0.890416 0.054409 +v 0.907912 -0.891045 0.067548 +v 0.887093 -0.870229 0.022996 +v 0.885280 -0.872496 0.021715 +v 0.865659 -0.852835 0.021715 +v 0.867361 -0.850500 0.022996 +v 0.887093 -0.870229 0.028075 +v 0.867361 -0.850500 0.028075 +v 0.848037 -0.835175 0.021715 +v 0.773391 -0.760370 0.021715 +v 0.775181 -0.758335 0.022996 +v 0.849715 -0.832857 0.022996 +v 0.849715 -0.832857 0.028075 +v 0.775181 -0.758335 0.028075 +v 0.755197 -0.742137 0.021715 +v 0.756981 -0.740138 0.022996 +v 0.743486 -0.726644 0.092263 +v 0.762185 -0.745341 0.091964 +v 0.742442 -0.725601 0.080702 +v 0.760526 -0.743681 0.080306 +v 0.776718 -0.759871 0.067616 +v 0.775566 -0.758719 0.054426 +v 0.758776 -0.741932 0.067890 +v 0.849526 -0.832668 0.054146 +v 0.848961 -0.832103 0.066498 +v 0.778216 -0.761369 0.079886 +v 0.848226 -0.831368 0.078173 +v 0.847528 -0.830671 0.090392 +v 0.864135 -0.847275 0.090437 +v 0.779637 -0.762790 0.091653 +v 0.865540 -0.848679 0.078283 +v 0.887083 -0.870219 0.067312 +v 0.887090 -0.870227 0.054350 +v 0.867158 -0.850297 0.054166 +v 0.866549 -0.849688 0.066577 +v 0.886202 -0.869339 0.079376 +v 0.575450 -0.567042 0.066507 +v 0.587485 -0.571719 0.067497 +v 0.662672 -0.645843 0.068395 +v 0.615595 -0.598773 0.068395 +v 0.713084 -0.696247 0.068333 +v 0.597340 -0.580521 0.068395 +v -0.062596 -0.795356 0.085702 +v 0.000000 -0.797819 0.085702 +v -0.124807 -0.787997 0.085702 +v -0.186247 -0.775772 0.085702 +v -0.246540 -0.758771 0.085702 +v -0.305311 -0.737085 0.085702 +v -0.362203 -0.710862 0.085702 +v -0.416858 -0.680249 0.085702 +v -0.468947 -0.645449 0.085702 +v -0.518139 -0.606663 0.085702 +v -0.564143 -0.564143 0.085702 +v -0.606663 -0.518139 0.085702 +v -0.645449 -0.468947 0.085702 +v -0.680249 -0.416858 0.085702 +v -0.710862 -0.362203 0.085702 +v -0.737085 -0.305311 0.085702 +v -0.758771 -0.246540 0.085702 +v -0.775772 -0.186247 0.085702 +v -0.787997 -0.124807 0.085702 +v -0.795356 -0.062596 0.085702 +v 0.563153 -0.568217 0.085702 +v 0.549851 -0.579579 0.085702 +v 0.416858 -0.680249 0.085702 +v 0.468264 -0.646032 0.085702 +v 0.362202 -0.710862 0.085702 +v 0.305311 -0.737085 0.085702 +v 0.246540 -0.758771 0.085702 +v 0.186246 -0.775772 0.085702 +v 0.124806 -0.787997 0.085702 +v 0.062596 -0.795356 0.085702 +v 0.741342 -0.724501 0.068147 +v 0.883579 -0.866716 0.091134 +v 0.515490 -0.609093 0.039899 +v 0.515469 -0.609067 0.054030 +v 0.549939 -0.579671 0.039899 +v 0.468339 -0.646136 0.039899 +v 0.515509 -0.609114 0.028075 +v 0.520222 -0.614684 0.111857 +v 0.526586 -0.622202 0.117523 +v 0.516582 -0.610383 0.106276 +v 0.726353 -0.858244 0.360559 +v 0.811624 -0.958999 0.244878 +v 0.812239 -0.959726 0.193502 +v 0.809878 -0.956936 0.295392 +v 0.866314 -1.023619 0.062279 +v 0.867605 -1.025145 0.053092 +v 0.864483 -1.021456 0.069397 +v 0.755837 -0.760825 0.330792 +v 0.762945 -0.767998 0.342849 +v 0.866548 -0.872543 0.348583 +v 0.772419 -0.777559 0.351694 +v 0.815119 -0.963128 0.128281 +v 0.818164 -0.966727 0.114410 +v 0.813350 -0.961039 0.144491 +v 0.861940 -1.018452 0.076381 +v 0.855898 -1.011313 0.082693 +v 0.869349 -1.027205 0.022996 +v 0.868477 -1.026175 0.021715 +v 0.926618 -0.976052 0.021715 +v 0.927430 -0.977122 0.022996 +v 0.789829 -1.089675 0.022996 +v 0.789037 -1.088582 0.021715 +v 0.869102 -1.026914 0.028075 +v 0.683212 -0.807270 0.246404 +v 0.681040 -0.804704 0.188328 +v 0.662279 -0.782536 0.130196 +v 0.671212 -0.793091 0.142417 +v 0.640099 -0.756329 0.122188 +v 0.533242 -0.630068 0.119519 +v 0.550261 -0.650178 0.119519 +v 0.515378 -0.608959 0.100423 +v 0.515392 -0.608976 0.093749 +v 0.594320 -0.702237 0.119519 +v 0.677253 -0.800229 0.157730 +v 0.843568 -0.996743 0.087791 +v 0.830625 -0.981449 0.093786 +v 0.806124 -0.952500 0.323170 +v 0.822745 -0.972139 0.102785 +v 0.773517 -0.913972 0.360548 +v 0.812603 -0.960155 0.163136 +v 0.515447 -0.609043 0.066031 +v 0.515428 -0.609019 0.076417 +v 0.515409 -0.608996 0.085702 +v 0.865696 -1.022889 0.021288 +v 0.786510 -1.085097 0.021288 +v 0.924010 -0.972661 0.021288 +v 0.861814 -1.018302 0.021288 +v 0.920206 -0.968011 0.021288 +v 0.782983 -1.080230 0.021288 +v 0.420796 -0.686677 0.021288 +v 0.472688 -0.652136 0.021288 +v 0.365625 -0.717579 0.021288 +v 0.426946 -0.696712 0.021288 +v 0.370968 -0.728066 0.021288 +v 0.479597 -0.661667 0.021288 +v 0.512810 -1.238032 0.021288 +v 0.514457 -1.242009 0.021715 +v 0.415426 -1.278550 0.021715 +v 0.414096 -1.274456 0.021288 +v 0.608366 -1.193987 0.021288 +v 0.610320 -1.197822 0.021715 +v 0.510509 -1.232480 0.021288 +v 0.605637 -1.188632 0.021288 +v 0.412239 -1.268741 0.021288 +v 0.188006 -0.783101 0.021288 +v 0.248869 -0.765940 0.021288 +v 0.125986 -0.795442 0.021288 +v 0.190754 -0.794546 0.021288 +v 0.127827 -0.807067 0.021288 +v 0.252506 -0.777134 0.021288 +v 0.105138 -1.335906 0.021288 +v 0.105476 -1.340197 0.021715 +v 0.000000 -1.344347 0.021715 +v 0.000000 -1.340043 0.021288 +v 0.209629 -1.323545 0.021288 +v 0.210302 -1.327797 0.021715 +v 0.104666 -1.329914 0.021288 +v 0.208689 -1.317609 0.021288 +v 0.000000 -1.334033 0.021288 +v -0.063187 -0.802871 0.021288 +v 0.000000 -0.805357 0.021288 +v -0.125986 -0.795442 0.021288 +v -0.064111 -0.814604 0.021288 +v -0.127827 -0.807067 0.021288 +v 0.000000 -0.817127 0.021288 +v -0.312826 -1.303011 0.021288 +v -0.313830 -1.307197 0.021715 +v -0.415427 -1.278550 0.021715 +v -0.414096 -1.274456 0.021288 +v -0.209629 -1.323545 0.021288 +v -0.210303 -1.327797 0.021715 +v -0.311423 -1.297167 0.021288 +v -0.208689 -1.317609 0.021288 +v -0.412239 -1.268741 0.021288 +v -0.512810 -1.238032 0.021288 +v -0.514457 -1.242009 0.021715 +v -0.610321 -1.197822 0.021715 +v -0.608366 -1.193987 0.021288 +v -0.510509 -1.232480 0.021288 +v -0.605638 -1.188632 0.021288 +v -0.420796 -0.686677 0.021288 +v -0.365625 -0.717578 0.021288 +v -0.473378 -0.651548 0.021288 +v -0.426946 -0.696712 0.021288 +v -0.480296 -0.661070 0.021288 +v -0.370968 -0.728066 0.021288 +v -0.870284 -1.018972 0.021288 +v -0.873079 -1.022245 0.021715 +v -0.950597 -0.950597 0.021715 +v -0.947553 -0.947553 0.021289 +v -0.787657 -1.084117 0.021288 +v -0.790187 -1.087600 0.021715 +v -0.866381 -1.014401 0.021288 +v -0.784124 -1.079255 0.021288 +v -0.943303 -0.943303 0.021288 +v -0.612395 -0.523036 0.021288 +v -0.569473 -0.569473 0.021288 +v -0.651547 -0.473378 0.021288 +v -0.621345 -0.530680 0.021288 +v -0.661070 -0.480296 0.021288 +v -0.577796 -0.577796 0.021288 +v -1.142569 -0.700167 0.021289 +v -1.146239 -0.702416 0.021715 +v -1.197822 -0.610320 0.021715 +v -1.193987 -0.608366 0.021289 +v -1.084117 -0.787657 0.021289 +v -1.087600 -0.790187 0.021715 +v -1.137444 -0.697027 0.021289 +v -1.079255 -0.784124 0.021289 +v -1.188632 -0.605638 0.021289 +v -0.744049 -0.308196 0.021288 +v -0.717578 -0.365625 0.021288 +v -0.765940 -0.248870 0.021288 +v -0.754923 -0.312700 0.021288 +v -0.777134 -0.252506 0.021288 +v -0.728066 -0.370968 0.021288 +v -1.303011 -0.312825 0.021289 +v -1.307197 -0.313830 0.021715 +v -1.327796 -0.210303 0.021715 +v -1.323545 -0.209629 0.021289 +v -1.274456 -0.414096 0.021289 +v -1.278550 -0.415426 0.021715 +v -1.297167 -0.311423 0.021289 +v -1.268740 -0.412239 0.021289 +v -1.317609 -0.208689 0.021289 +v -0.802871 -0.063187 0.021288 +v -0.795442 -0.125986 0.021288 +v -0.814604 -0.064111 0.021288 +v -0.807067 -0.127827 0.021288 +v 0.520279 -0.614750 0.021288 +v 0.555586 -0.584541 0.021288 +v 0.564153 -0.592629 0.021288 +v 0.527882 -0.623734 0.021288 +v 0.516707 -0.610531 0.021715 +v 0.308196 -0.744050 0.021288 +v 0.312700 -0.754924 0.021288 +v 0.063187 -0.802871 0.021288 +v 0.064111 -0.814604 0.021288 +v -0.188006 -0.783101 0.021288 +v -0.190754 -0.794546 0.021288 +v -0.248869 -0.765940 0.021288 +v -0.252507 -0.777134 0.021288 +v -0.308196 -0.744050 0.021288 +v -0.312700 -0.754924 0.021288 +v -0.523036 -0.612395 0.021288 +v -0.530680 -0.621345 0.021288 +v -0.686676 -0.420797 0.021288 +v -0.696712 -0.426946 0.021288 +v -0.783101 -0.188006 0.021288 +v -0.794546 -0.190754 0.021288 +v 0.433806 -0.707907 0.021288 +v 0.376929 -0.739764 0.021288 +v 0.447446 -0.730166 0.021288 +v 0.388781 -0.763025 0.021288 +v 0.487303 -0.672299 0.021288 +v 0.502625 -0.693438 0.021288 +v 0.193819 -0.807313 0.021288 +v 0.129881 -0.820035 0.021288 +v 0.199913 -0.832697 0.021288 +v 0.133965 -0.845819 0.021288 +v 0.256564 -0.789621 0.021288 +v 0.264631 -0.814449 0.021288 +v -0.065141 -0.827693 0.021288 +v -0.129881 -0.820035 0.021288 +v -0.067189 -0.853719 0.021288 +v -0.133965 -0.845819 0.021288 +v 0.000000 -0.830257 0.021288 +v 0.000000 -0.856363 0.021288 +v -0.433806 -0.707907 0.021288 +v -0.488013 -0.671692 0.021288 +v -0.447447 -0.730166 0.021288 +v -0.503358 -0.692812 0.021288 +v -0.376929 -0.739764 0.021288 +v -0.388781 -0.763025 0.021288 +v -0.631329 -0.539207 0.021288 +v -0.671692 -0.488013 0.021288 +v -0.651180 -0.556160 0.021288 +v -0.692812 -0.503358 0.021288 +v -0.587080 -0.587080 0.021288 +v -0.605539 -0.605540 0.021288 +v -0.767054 -0.317725 0.021288 +v -0.789621 -0.256564 0.021288 +v -0.791172 -0.327715 0.021288 +v -0.814449 -0.264631 0.021288 +v -0.739764 -0.376929 0.021288 +v -0.763025 -0.388781 0.021288 +v -0.827693 -0.065141 0.021288 +v -0.853719 -0.067189 0.021288 +v -0.820035 -0.129881 0.021288 +v -0.845819 -0.133965 0.021288 +v 0.536364 -0.633757 0.021288 +v 0.573263 -0.602097 0.021288 +v 0.591223 -0.621028 0.021288 +v 0.553228 -0.653684 0.021288 +v 0.317724 -0.767054 0.021288 +v 0.327714 -0.791172 0.021288 +v 0.065141 -0.827693 0.021288 +v 0.067189 -0.853719 0.021288 +v -0.193819 -0.807313 0.021288 +v -0.199913 -0.832697 0.021288 +v -0.256564 -0.789621 0.021288 +v -0.264631 -0.814449 0.021288 +v -0.317724 -0.767054 0.021288 +v -0.327715 -0.791172 0.021288 +v -0.539207 -0.631329 0.021288 +v -0.556160 -0.651180 0.021288 +v -0.707907 -0.433807 0.021288 +v -0.730165 -0.447447 0.021288 +v -0.807313 -0.193819 0.021288 +v -0.832697 -0.199913 0.021288 +v 0.482897 -0.788015 0.021288 +v 0.419583 -0.823478 0.021288 +v 0.520468 -0.849326 0.021288 +v 0.452228 -0.887547 0.021288 +v 0.542446 -0.748377 0.021288 +v 0.584650 -0.806604 0.021288 +v 0.215752 -0.898670 0.021288 +v 0.144578 -0.912832 0.021288 +v 0.232538 -0.968590 0.021288 +v 0.155827 -0.983853 0.021288 +v 0.285597 -0.878976 0.021288 +v 0.307817 -0.947364 0.021288 +v -0.072512 -0.921357 0.021288 +v -0.144579 -0.912832 0.021288 +v -0.078154 -0.993042 0.021288 +v -0.155827 -0.983853 0.021288 +v 0.000000 -0.924211 0.021288 +v 0.000000 -0.996117 0.021288 +v -0.482897 -0.788015 0.021288 +v -0.543237 -0.747702 0.021288 +v -0.520468 -0.849325 0.021288 +v -0.585502 -0.805876 0.021288 +v -0.419583 -0.823477 0.021288 +v -0.452228 -0.887547 0.021288 +v -0.702772 -0.600224 0.021288 +v -0.747702 -0.543237 0.021288 +v -0.757450 -0.646923 0.021288 +v -0.805876 -0.585503 0.021288 +v -0.653515 -0.653515 0.021288 +v -0.704361 -0.704361 0.021288 +v -0.853855 -0.353679 0.021288 +v -0.878976 -0.285597 0.021288 +v -0.920288 -0.381196 0.021289 +v -0.947364 -0.307817 0.021288 +v -0.823477 -0.419583 0.021288 +v -0.887547 -0.452228 0.021288 +v -0.921357 -0.072512 0.021289 +v -0.993042 -0.078154 0.021289 +v -0.912832 -0.144578 0.021289 +v -0.983853 -0.155827 0.021289 +v 0.597060 -0.705474 0.021288 +v 0.637852 -0.670185 0.021288 +v 0.687301 -0.722312 0.021288 +v 0.643513 -0.760362 0.021288 +v 0.353679 -0.853855 0.021288 +v 0.381196 -0.920288 0.021288 +v 0.072512 -0.921357 0.021288 +v 0.078154 -0.993042 0.021288 +v -0.215752 -0.898670 0.021288 +v -0.232538 -0.968590 0.021288 +v -0.285597 -0.878976 0.021288 +v -0.307817 -0.947364 0.021288 +v -0.353679 -0.853855 0.021288 +v -0.381196 -0.920288 0.021288 +v -0.600223 -0.702771 0.021288 +v -0.646923 -0.757450 0.021288 +v -0.788015 -0.482897 0.021288 +v -0.849325 -0.520468 0.021288 +v -0.898670 -0.215752 0.021288 +v -0.968590 -0.232538 0.021289 +v 0.540469 -0.881967 0.021288 +v 0.469608 -0.921657 0.021288 +v 0.552448 -0.901514 0.021288 +v 0.480016 -0.942085 0.021288 +v 0.607119 -0.837603 0.021288 +v 0.620576 -0.856168 0.021288 +v 0.241475 -1.005815 0.021288 +v 0.161816 -1.021665 0.021288 +v 0.246827 -1.028107 0.021288 +v 0.165402 -1.044309 0.021288 +v 0.319647 -0.983773 0.021288 +v 0.326732 -1.005577 0.021288 +v -0.081158 -1.031206 0.021288 +v -0.161816 -1.021665 0.021288 +v -0.082957 -1.054062 0.021288 +v -0.165402 -1.044309 0.021288 +v 0.000000 -1.034400 0.021288 +v 0.000000 -1.057326 0.021288 +v -0.540469 -0.881967 0.021288 +v -0.608005 -0.836847 0.021288 +v -0.552448 -0.901514 0.021288 +v -0.621480 -0.855395 0.021288 +v -0.469608 -0.921657 0.021288 +v -0.480017 -0.942084 0.021288 +v -0.786560 -0.671785 0.021288 +v -0.836847 -0.608005 0.021288 +v -0.803993 -0.686675 0.021288 +v -0.855395 -0.621480 0.021288 +v -0.731431 -0.731431 0.021288 +v -0.747642 -0.747642 0.021288 +v -0.955656 -0.395846 0.021289 +v -0.983773 -0.319647 0.021289 +v -0.976837 -0.404620 0.021289 +v -1.005577 -0.326732 0.021289 +v -0.921657 -0.469608 0.021289 +v -0.942084 -0.480017 0.021288 +v -1.031206 -0.081158 0.021289 +v -1.054062 -0.082957 0.021289 +v -1.021665 -0.161816 0.021289 +v -1.044309 -0.165402 0.021289 +v 0.668244 -0.789584 0.021288 +v 0.713717 -0.750154 0.021288 +v 0.729581 -0.766872 0.021288 +v 0.683055 -0.807085 0.021288 +v 0.395846 -0.955656 0.021288 +v 0.404620 -0.976838 0.021288 +v 0.081158 -1.031206 0.021288 +v 0.082956 -1.054062 0.021288 +v -0.241475 -1.005815 0.021288 +v -0.246827 -1.028107 0.021288 +v -0.319647 -0.983773 0.021288 +v -0.326732 -1.005577 0.021288 +v -0.395846 -0.955656 0.021288 +v -0.404620 -0.976837 0.021288 +v -0.671785 -0.786560 0.021288 +v -0.686675 -0.803993 0.021288 +v -0.881967 -0.540470 0.021288 +v -0.901514 -0.552448 0.021288 +v -1.005814 -0.241475 0.021289 +v -1.028107 -0.246827 0.021289 +v 0.565948 -0.923545 0.021288 +v 0.491746 -0.965106 0.021288 +v 0.540497 -1.060785 0.021288 +v 0.622055 -1.015103 0.021288 +v 0.635741 -0.877090 0.021288 +v 0.698766 -0.964043 0.021288 +v 0.252859 -1.053231 0.021288 +v 0.169444 -1.069829 0.021288 +v 0.186243 -1.175889 0.021288 +v 0.277926 -1.157646 0.021288 +v 0.334716 -1.030150 0.021288 +v 0.367899 -1.132277 0.021288 +v -0.084984 -1.079820 0.021288 +v -0.169444 -1.069829 0.021288 +v -0.186243 -1.175889 0.021288 +v -0.093409 -1.186871 0.021288 +v 0.000000 -1.083164 0.021288 +v 0.000000 -1.190547 0.021288 +v -0.565949 -0.923545 0.021288 +v -0.636667 -0.876298 0.021288 +v -0.699785 -0.963172 0.021288 +v -0.622055 -1.015103 0.021288 +v -0.491747 -0.965106 0.021288 +v -0.540497 -1.060785 0.021288 +v -0.823640 -0.703455 0.021288 +v -0.876298 -0.636668 0.021288 +v -0.963172 -0.699785 0.021289 +v -0.905294 -0.773194 0.021288 +v -0.765912 -0.765912 0.021288 +v -0.841843 -0.841843 0.021288 +v -1.000708 -0.414508 0.021289 +v -1.030150 -0.334716 0.021289 +v -1.132277 -0.367900 0.021289 +v -1.099916 -0.455601 0.021289 +v -0.965106 -0.491747 0.021289 +v -1.060785 -0.540497 0.021289 +v -1.079820 -0.084984 0.021289 +v -1.186871 -0.093409 0.021289 +v -1.069829 -0.169444 0.021289 +v -1.175889 -0.186243 0.021289 +v 0.747373 -0.785626 0.021288 +v 0.821176 -0.863428 0.021288 +v 0.769119 -0.908775 0.021288 +v 0.699747 -0.826807 0.021288 +v 0.414507 -1.000709 0.021288 +v 0.455600 -1.099916 0.021288 +v 0.084984 -1.079820 0.021288 +v 0.093409 -1.186871 0.021288 +v -0.252859 -1.053231 0.021288 +v -0.277927 -1.157646 0.021288 +v -0.334716 -1.030150 0.021288 +v -0.367899 -1.132277 0.021288 +v -0.414507 -1.000709 0.021288 +v -0.455601 -1.099916 0.021288 +v -0.703455 -0.823640 0.021288 +v -0.773194 -0.905294 0.021288 +v -0.923545 -0.565949 0.021289 +v -1.015103 -0.622056 0.021289 +v -1.053231 -0.252859 0.021289 +v -1.157646 -0.277927 0.021289 +v 0.635041 -1.036294 0.021288 +v 0.551780 -1.082930 0.021288 +v 0.713354 -0.984168 0.021288 +v 0.283728 -1.181813 0.021288 +v 0.190131 -1.200437 0.021288 +v 0.375580 -1.155914 0.021288 +v -0.095359 -1.211648 0.021288 +v -0.190131 -1.200437 0.021288 +v 0.000000 -1.215400 0.021288 +v -0.635041 -1.036294 0.021288 +v -0.714394 -0.983279 0.021288 +v -0.551780 -1.082930 0.021288 +v -0.924193 -0.789335 0.021289 +v -0.983279 -0.714394 0.021289 +v -0.859418 -0.859418 0.021288 +v -1.122878 -0.465112 0.021289 +v -1.155914 -0.375580 0.021289 +v -1.082929 -0.551780 0.021289 +v -1.211648 -0.095359 0.021289 +v -1.200437 -0.190131 0.021289 +v 0.857637 -1.013367 0.021288 +v 0.915807 -0.963163 0.021288 +v 0.850290 -1.004686 0.021288 +v 0.907919 -0.954852 0.021288 +v 0.779188 -1.074995 0.021288 +v 0.772513 -1.065786 0.021288 +v 0.508036 -1.226507 0.021288 +v 0.602702 -1.182872 0.021288 +v 0.503684 -1.215999 0.021288 +v 0.597539 -1.172738 0.021288 +v 0.410241 -1.262592 0.021288 +v 0.406727 -1.251775 0.021288 +v 0.104159 -1.323469 0.021288 +v 0.207677 -1.311223 0.021288 +v 0.103267 -1.312131 0.021288 +v 0.205898 -1.299990 0.021288 +v 0.000000 -1.327568 0.021288 +v 0.000000 -1.316194 0.021288 +v -0.309913 -1.290881 0.021288 +v -0.207678 -1.311223 0.021288 +v -0.307258 -1.279822 0.021288 +v -0.205898 -1.299990 0.021288 +v -0.410241 -1.262592 0.021288 +v -0.406727 -1.251775 0.021288 +v -0.508036 -1.226507 0.021288 +v -0.503684 -1.215999 0.021288 +v -0.602703 -1.182871 0.021288 +v -0.597539 -1.172738 0.021288 +v -0.862182 -1.009485 0.021288 +v -0.780324 -1.074025 0.021288 +v -0.854796 -1.000837 0.021288 +v -0.773639 -1.064823 0.021288 +v -0.938732 -0.938732 0.021289 +v -0.930690 -0.930690 0.021288 +v -1.131932 -0.693649 0.021289 +v -1.074025 -0.780324 0.021289 +v -1.122235 -0.687706 0.021289 +v -1.064823 -0.773639 0.021289 +v -1.182871 -0.602703 0.021289 +v -1.172738 -0.597539 0.021289 +v -1.290881 -0.309913 0.021289 +v -1.262592 -0.410241 0.021289 +v -1.279822 -0.307258 0.021289 +v -1.251775 -0.406727 0.021289 +v -1.311223 -0.207677 0.021289 +v -1.299990 -0.205898 0.021289 +v 0.700166 -1.142569 0.021288 +v 0.697026 -1.137444 0.021288 +v 0.702416 -1.146239 0.021715 +v 0.312825 -1.303011 0.021288 +v 0.311422 -1.297167 0.021288 +v 0.313830 -1.307197 0.021715 +v -0.105138 -1.335906 0.021288 +v -0.104667 -1.329914 0.021288 +v -0.105476 -1.340197 0.021715 +v -0.700167 -1.142569 0.021288 +v -0.697026 -1.137444 0.021288 +v -0.702416 -1.146239 0.021715 +v -1.018971 -0.870284 0.021289 +v -1.014401 -0.866380 0.021289 +v -1.022245 -0.873079 0.021715 +v -1.238032 -0.512810 0.021289 +v -1.232480 -0.510509 0.021289 +v -1.242009 -0.514458 0.021715 +v -1.335906 -0.105138 0.021289 +v -1.329914 -0.104667 0.021289 +v -1.340197 -0.105476 0.021715 +v 0.693648 -1.131932 0.021288 +v 0.687706 -1.122235 0.021288 +v 0.309913 -1.290881 0.021288 +v 0.307258 -1.279822 0.021288 +v -0.104159 -1.323469 0.021288 +v -0.103267 -1.312131 0.021288 +v -0.693648 -1.131932 0.021288 +v -0.687706 -1.122235 0.021288 +v -1.009485 -0.862182 0.021289 +v -1.000837 -0.854795 0.021289 +v -1.226507 -0.508036 0.021289 +v -1.215999 -0.503684 0.021289 +v -1.323469 -0.104159 0.021289 +v -1.312131 -0.103267 0.021289 +v 0.836895 -0.988858 0.021288 +v 0.893649 -0.939809 0.021288 +v 0.820089 -0.969001 0.021288 +v 0.875727 -0.920918 0.021288 +v 0.760343 -1.048996 0.021288 +v 0.745074 -1.027931 0.021288 +v 0.495749 -1.196844 0.021288 +v 0.588126 -1.154264 0.021288 +v 0.485793 -1.172809 0.021288 +v 0.576315 -1.131084 0.021288 +v 0.400319 -1.232056 0.021288 +v 0.392280 -1.207314 0.021288 +v 0.101640 -1.291461 0.021288 +v 0.202655 -1.279511 0.021288 +v 0.099599 -1.265526 0.021288 +v 0.198585 -1.253816 0.021288 +v 0.000000 -1.295460 0.021288 +v 0.000000 -1.269445 0.021288 +v -0.302418 -1.259661 0.021288 +v -0.202655 -1.279511 0.021288 +v -0.296345 -1.234364 0.021288 +v -0.198585 -1.253816 0.021288 +v -0.400320 -1.232056 0.021288 +v -0.392280 -1.207314 0.021288 +v -0.495749 -1.196844 0.021288 +v -0.485794 -1.172809 0.021288 +v -0.588126 -1.154264 0.021288 +v -0.576316 -1.131084 0.021288 +v -0.841330 -0.985071 0.021288 +v -0.761452 -1.048049 0.021288 +v -0.824435 -0.965289 0.021288 +v -0.746161 -1.027003 0.021288 +v -0.916029 -0.916028 0.021289 +v -0.897633 -0.897633 0.021288 +v -1.104556 -0.676873 0.021289 +v -1.048049 -0.761452 0.021289 +v -1.082375 -0.663280 0.021289 +v -1.027003 -0.746161 0.021289 +v -1.154264 -0.588126 0.021289 +v -1.131084 -0.576315 0.021289 +v -1.259661 -0.302418 0.021289 +v -1.232056 -0.400320 0.021289 +v -1.234364 -0.296345 0.021289 +v -1.207314 -0.392280 0.021289 +v -1.279511 -0.202655 0.021289 +v -1.253816 -0.198585 0.021289 +v 0.676872 -1.104556 0.021288 +v 0.663280 -1.082375 0.021288 +v 0.302418 -1.259661 0.021288 +v 0.296345 -1.234364 0.021288 +v -0.101640 -1.291461 0.021288 +v -0.099599 -1.265526 0.021288 +v -0.676873 -1.104556 0.021288 +v -0.663280 -1.082375 0.021288 +v -0.985071 -0.841330 0.021289 +v -0.965289 -0.824435 0.021289 +v -1.196844 -0.495749 0.021289 +v -1.172809 -0.485794 0.021289 +v -1.291461 -0.101640 0.021289 +v -1.265526 -0.099599 0.021289 +v 0.802507 -0.948226 0.021288 +v 0.856885 -0.901063 0.021288 +v 0.785175 -0.927747 0.021288 +v 0.838307 -0.881486 0.021288 +v 0.729101 -1.005892 0.021288 +v 0.475378 -1.147665 0.021288 +v 0.563959 -1.106834 0.021288 +v 0.465111 -1.122878 0.021288 +v 0.383870 -1.181430 0.021288 +v 0.097464 -1.238394 0.021288 +v 0.194328 -1.226935 0.021288 +v 0.095359 -1.211648 0.021288 +v 0.000000 -1.242229 0.021288 +v -0.289992 -1.207901 0.021288 +v -0.194328 -1.226935 0.021288 +v -0.283728 -1.181813 0.021288 +v -0.383870 -1.181430 0.021288 +v -0.375580 -1.155914 0.021288 +v -0.475379 -1.147665 0.021288 +v -0.465112 -1.122878 0.021288 +v -0.563960 -1.106834 0.021288 +v -0.806759 -0.944594 0.021288 +v -0.730164 -1.004984 0.021288 +v -0.789335 -0.924193 0.021288 +v -0.878388 -0.878388 0.021288 +v -1.059169 -0.649059 0.021289 +v -1.004984 -0.730164 0.021289 +v -1.036294 -0.635041 0.021289 +v -1.106834 -0.563960 0.021289 +v -1.207901 -0.289991 0.021289 +v -1.181430 -0.383870 0.021289 +v -1.181813 -0.283729 0.021289 +v -1.226935 -0.194328 0.021289 +v 0.947736 -0.951125 0.021288 +v 0.952551 -0.945723 0.021715 +v 0.952061 -0.950477 0.022047 +v 0.949339 -0.955246 0.021715 +v 0.944847 -0.945708 0.021288 +v 0.570626 -0.571534 0.021288 +v 0.574307 -0.568228 0.021715 +v 0.585844 -0.573345 0.021715 +v 0.580762 -0.578065 0.021288 +v 0.590274 -0.587134 0.021288 +v 0.595573 -0.582174 0.021715 +v 0.613839 -0.600479 0.021715 +v 0.608570 -0.605595 0.021288 +v 0.655939 -0.653390 0.021288 +v 0.660989 -0.647730 0.021715 +v 0.711166 -0.698015 0.021715 +v 0.706259 -0.704163 0.021288 +v 0.733410 -0.731555 0.021288 +v 0.738512 -0.725418 0.021715 +v 0.749846 -0.748136 0.021288 +v 0.768021 -0.766473 0.021288 +v 0.843003 -0.842130 0.021288 +v 0.649059 -1.059169 0.021288 +v 0.289991 -1.207901 0.021288 +v -0.097464 -1.238394 0.021288 +v -0.649060 -1.059169 0.021288 +v -0.944594 -0.806759 0.021289 +v -1.147665 -0.475379 0.021289 +v -1.238394 -0.097464 0.021289 +v 0.860555 -0.859839 0.021288 +v 0.879844 -0.879297 0.021288 +v 0.899393 -0.899017 0.021288 +v 0.917725 -0.917513 0.021288 +v 0.932284 -0.932202 0.021288 +v 0.940510 -0.940500 0.021288 +v -0.062606 -0.795483 0.039899 +v 0.000000 -0.797947 0.039899 +v -0.124827 -0.788123 0.039899 +v -0.186276 -0.775896 0.039899 +v -0.246579 -0.758892 0.039899 +v -0.305360 -0.737203 0.039899 +v -0.362261 -0.710976 0.039899 +v -0.416925 -0.680358 0.039899 +v -0.469022 -0.645552 0.039899 +v -0.518223 -0.606760 0.039899 +v -0.564233 -0.564233 0.039899 +v -0.606760 -0.518223 0.039899 +v -0.645552 -0.469022 0.039899 +v -0.680358 -0.416925 0.039899 +v -0.710976 -0.362261 0.039899 +v -0.737203 -0.305360 0.039899 +v -0.758892 -0.246580 0.039899 +v -0.775896 -0.186276 0.039899 +v -0.788122 -0.124827 0.039899 +v -0.795483 -0.062606 0.039899 +v 0.563244 -0.568308 0.039899 +v 0.416924 -0.680358 0.039899 +v 0.362260 -0.710976 0.039899 +v 0.305360 -0.737203 0.039899 +v 0.246579 -0.758892 0.039899 +v 0.186276 -0.775896 0.039899 +v 0.124826 -0.788123 0.039899 +v 0.062606 -0.795483 0.039899 +v -0.105582 -1.341542 0.022996 +v 0.000000 -1.345697 0.022996 +v -0.210514 -1.329129 0.022996 +v -0.314145 -1.308509 0.022996 +v -0.415844 -1.279834 0.022996 +v -0.514974 -1.243256 0.022996 +v -0.610933 -1.199025 0.022996 +v -0.703121 -1.147390 0.022996 +v -0.790980 -1.088691 0.022996 +v -0.873956 -1.023271 0.022996 +v -0.951551 -0.951551 0.022996 +v -1.023271 -0.873956 0.022996 +v -1.088691 -0.790980 0.022996 +v -1.147390 -0.703121 0.022996 +v -1.199024 -0.610933 0.022996 +v -1.243256 -0.514974 0.022996 +v -1.279834 -0.415844 0.022996 +v -1.308509 -0.314145 0.022996 +v -1.329129 -0.210514 0.022996 +v -1.341542 -0.105582 0.022996 +v 0.949819 -0.956565 0.022996 +v 0.953170 -0.950502 0.022996 +v 0.703121 -1.147390 0.022996 +v 0.610933 -1.199025 0.022996 +v 0.514974 -1.243256 0.022996 +v 0.415843 -1.279834 0.022996 +v 0.314145 -1.308509 0.022996 +v 0.210513 -1.329129 0.022996 +v 0.105582 -1.341542 0.022996 +v 0.954132 -0.943899 0.022996 +v 0.575532 -0.567123 0.022996 +v 0.587537 -0.571770 0.022996 +v 0.662672 -0.645843 0.022996 +v 0.615595 -0.598773 0.022996 +v 0.712802 -0.695965 0.022996 +v 0.597340 -0.580521 0.022996 +v 0.740213 -0.723372 0.022996 +v 0.925464 -0.908594 0.039899 +v 0.940016 -0.923144 0.039899 +v 0.907073 -0.890206 0.039899 +v 0.948480 -0.931607 0.039899 +v 0.887093 -0.870229 0.039899 +v 0.867361 -0.850500 0.039899 +v 0.849715 -0.832857 0.039899 +v 0.775181 -0.758335 0.039899 +v 0.515516 -0.609123 0.022996 +v 0.868528 -1.026235 0.039899 +v 0.700918 0.327055 0.169324 +v 0.699479 0.327109 0.169068 +v 0.698657 0.326721 0.172670 +v 0.700061 0.326649 0.173076 +v 0.702334 0.326696 0.169553 +v 0.701445 0.326275 0.173439 +v 0.702729 0.326883 0.166062 +v 0.701295 0.327233 0.165944 +v 0.699836 0.327278 0.165812 +v 0.280214 0.129141 0.308918 +v 0.280536 0.130886 0.308388 +v 0.280013 0.130638 0.306899 +v 0.279657 0.128877 0.307355 +v 0.279175 0.128208 0.309592 +v 0.278575 0.127924 0.307936 +v 0.279740 0.128475 0.310991 +v 0.280714 0.129377 0.310203 +v 0.280985 0.131099 0.309585 +v 0.703870 -0.325725 0.169756 +v 0.702477 -0.326389 0.169553 +v 0.702871 -0.326576 0.166062 +v 0.704281 -0.325919 0.166166 +v 0.705240 -0.324755 0.169931 +v 0.705665 -0.324956 0.166257 +v 0.704298 -0.324310 0.174037 +v 0.702952 -0.325291 0.173759 +v 0.701587 -0.325969 0.173439 +v 0.283817 -0.130695 0.312139 +v 0.283823 -0.130257 0.313610 +v 0.283002 -0.129869 0.313502 +v 0.283118 -0.130364 0.312055 +v 0.283317 -0.132056 0.310984 +v 0.282713 -0.131770 0.310918 +v 0.284071 -0.132414 0.311013 +v 0.284650 -0.131089 0.312176 +v 0.284755 -0.130697 0.313656 +v 0.280271 -0.129019 0.308918 +v 0.279231 -0.128086 0.309592 +v 0.278631 -0.127802 0.307936 +v 0.279713 -0.128755 0.307355 +v 0.280593 -0.130764 0.308388 +v 0.280070 -0.130516 0.306899 +v 0.281042 -0.130977 0.309585 +v 0.280770 -0.129255 0.310203 +v 0.279796 -0.128353 0.310991 +v 0.703728 0.326032 0.169756 +v 0.705099 0.325063 0.169931 +v 0.705523 0.325263 0.166257 +v 0.704138 0.326226 0.166166 +v 0.702810 0.325597 0.173759 +v 0.704157 0.324617 0.174037 +v 0.706447 0.323789 0.170079 +v 0.707772 0.322210 0.170200 +v 0.708217 0.322421 0.166395 +v 0.706882 0.323995 0.166333 +v 0.705484 0.323333 0.174271 +v 0.706792 0.321746 0.174463 +v 0.701156 0.324815 0.178186 +v 0.702464 0.323816 0.178568 +v 0.699834 0.325513 0.177745 +v 0.697379 0.324351 0.182484 +v 0.698648 0.323628 0.183038 +v 0.699910 0.322607 0.183518 +v 0.698499 0.325910 0.177245 +v 0.697151 0.326008 0.176686 +v 0.694824 0.324906 0.181154 +v 0.696104 0.324777 0.181856 +v 0.709075 0.320326 0.170295 +v 0.710354 0.318138 0.170362 +v 0.710812 0.318355 0.166479 +v 0.709527 0.320541 0.166444 +v 0.708082 0.319857 0.174613 +v 0.709352 0.317664 0.174720 +v 0.692748 0.323189 0.186936 +v 0.693958 0.322732 0.187670 +v 0.691539 0.323352 0.186116 +v 0.687183 0.321291 0.191516 +v 0.688318 0.321093 0.192433 +v 0.689463 0.320605 0.193254 +v 0.690332 0.323222 0.185209 +v 0.688558 0.324819 0.184497 +v 0.684350 0.322819 0.189706 +v 0.686057 0.321199 0.190502 +v 0.693537 0.324738 0.180378 +v 0.691697 0.326311 0.179769 +v 0.680593 0.318613 0.196200 +v 0.681640 0.318667 0.197301 +v 0.678952 0.320254 0.195335 +v 0.672259 0.317072 0.201327 +v 0.673835 0.315415 0.202247 +v 0.674806 0.315433 0.203419 +v 0.665678 0.311555 0.208589 +v 0.666579 0.311540 0.209818 +v 0.664164 0.313225 0.207623 +v 0.654571 0.308665 0.214173 +v 0.656025 0.306987 0.215176 +v 0.656860 0.306941 0.216452 +v 0.682704 0.318435 0.198297 +v 0.683784 0.317917 0.199189 +v 0.675802 0.315169 0.204479 +v 0.676821 0.314622 0.205428 +v 0.695170 0.321982 0.188317 +v 0.696383 0.320938 0.188878 +v 0.690617 0.319827 0.193978 +v 0.691780 0.318760 0.194605 +v 0.703760 0.322517 0.178892 +v 0.705042 0.320918 0.179157 +v 0.701167 0.321290 0.183925 +v 0.702417 0.319676 0.184257 +v 0.706311 0.319019 0.179363 +v 0.707567 0.316819 0.179510 +v 0.703661 0.317765 0.184516 +v 0.704900 0.315556 0.184701 +v 0.697598 0.319601 0.189353 +v 0.698814 0.317971 0.189742 +v 0.692952 0.317403 0.195136 +v 0.694134 0.315756 0.195571 +v 0.684882 0.317113 0.199975 +v 0.685996 0.316023 0.200657 +v 0.677865 0.313793 0.206265 +v 0.678932 0.312680 0.206991 +v 0.711612 0.315644 0.170403 +v 0.715152 0.307373 0.170423 +v 0.715617 0.307586 0.166510 +v 0.712073 0.315863 0.166500 +v 0.710604 0.315167 0.174784 +v 0.714136 0.306907 0.174816 +v 0.708810 0.314318 0.179598 +v 0.712328 0.306079 0.179642 +v 0.706132 0.313051 0.184811 +v 0.709631 0.304843 0.184867 +v 0.700032 0.316047 0.190044 +v 0.701252 0.313830 0.190260 +v 0.695324 0.313819 0.195909 +v 0.696524 0.311593 0.196150 +v 0.723280 0.287851 0.170430 +v 0.723753 0.288047 0.166514 +v 0.722247 0.287423 0.174826 +v 0.732822 0.259466 0.174826 +v 0.733874 0.259843 0.170430 +v 0.734356 0.260016 0.166514 +v 0.687127 0.314646 0.201233 +v 0.688274 0.312983 0.201705 +v 0.680023 0.311285 0.207604 +v 0.681139 0.309606 0.208107 +v 0.667510 0.311246 0.210931 +v 0.668473 0.310671 0.211926 +v 0.657732 0.306618 0.217606 +v 0.658641 0.306019 0.218639 +v 0.644777 0.301664 0.221957 +v 0.643380 0.303346 0.220925 +v 0.630492 0.297221 0.227835 +v 0.631836 0.295540 0.228891 +v 0.645552 0.301589 0.223272 +v 0.632555 0.295439 0.230236 +v 0.617100 0.288566 0.235933 +v 0.617770 0.288442 0.237302 +v 0.615808 0.290241 0.234858 +v 0.600552 0.282990 0.241506 +v 0.601798 0.281325 0.242597 +v 0.602425 0.281180 0.243985 +v 0.646369 0.301241 0.224460 +v 0.647228 0.300618 0.225524 +v 0.633322 0.295066 0.231452 +v 0.634137 0.294423 0.232541 +v 0.669466 0.309818 0.212804 +v 0.670489 0.308685 0.213565 +v 0.659587 0.305143 0.219551 +v 0.660570 0.303990 0.220341 +v 0.689439 0.311034 0.202072 +v 0.690620 0.308799 0.202334 +v 0.682278 0.307645 0.208497 +v 0.683441 0.305402 0.208776 +v 0.671544 0.307272 0.214209 +v 0.672629 0.305579 0.214736 +v 0.661590 0.302561 0.221009 +v 0.662646 0.300855 0.221556 +v 0.648131 0.299722 0.226463 +v 0.649076 0.298551 0.227276 +v 0.635000 0.293507 0.233501 +v 0.635911 0.292321 0.234334 +v 0.618493 0.288049 0.238541 +v 0.619268 0.287386 0.239650 +v 0.603109 0.280768 0.245241 +v 0.603848 0.280089 0.246365 +v 0.650064 0.297107 0.227964 +v 0.651095 0.295389 0.228528 +v 0.636870 0.290863 0.235038 +v 0.637877 0.289134 0.235614 +v 0.620095 0.286454 0.240628 +v 0.620976 0.285253 0.241475 +v 0.604644 0.279142 0.247357 +v 0.605498 0.277929 0.248217 +v 0.588395 0.273805 0.251067 +v 0.589104 0.273111 0.252204 +v 0.587745 0.274233 0.249797 +v 0.572797 0.267159 0.255164 +v 0.573416 0.266717 0.256445 +v 0.574099 0.266010 0.257591 +v 0.587156 0.274396 0.248393 +v 0.585952 0.276051 0.247290 +v 0.571074 0.268979 0.252636 +v 0.572240 0.267337 0.253748 +v 0.556118 0.259707 0.259085 +v 0.556643 0.259515 0.260511 +v 0.554987 0.261333 0.257964 +v 0.537656 0.253095 0.263258 +v 0.538751 0.251489 0.264385 +v 0.539250 0.251284 0.265819 +v 0.520105 0.242665 0.269631 +v 0.520578 0.242447 0.271073 +v 0.519045 0.244249 0.268498 +v 0.499113 0.234776 0.273668 +v 0.500138 0.233216 0.274806 +v 0.500587 0.232987 0.276254 +v 0.557236 0.259060 0.261801 +v 0.557895 0.258342 0.262955 +v 0.539818 0.250817 0.267117 +v 0.540455 0.250089 0.268278 +v 0.589873 0.272152 0.253206 +v 0.590703 0.270927 0.254075 +v 0.574845 0.265040 0.258603 +v 0.575655 0.263805 0.259479 +v 0.478810 0.223123 0.279894 +v 0.479237 0.222883 0.281348 +v 0.477821 0.224655 0.278752 +v 0.455126 0.213869 0.283734 +v 0.456080 0.212366 0.284880 +v 0.456485 0.212117 0.286338 +v 0.521123 0.241970 0.272377 +v 0.521739 0.241232 0.273544 +v 0.501110 0.232499 0.277564 +v 0.501707 0.231752 0.278736 +v 0.558619 0.257362 0.263974 +v 0.559412 0.256119 0.264856 +v 0.541161 0.249099 0.269303 +v 0.541935 0.247848 0.270191 +v 0.621909 0.283783 0.242192 +v 0.622895 0.282044 0.242779 +v 0.606408 0.276448 0.248944 +v 0.607377 0.274699 0.249539 +v 0.591595 0.269437 0.254811 +v 0.592546 0.267681 0.255412 +v 0.576528 0.262307 0.260221 +v 0.577466 0.260544 0.260828 +v 0.560270 0.254613 0.265603 +v 0.561194 0.252844 0.266214 +v 0.542779 0.246336 0.270942 +v 0.543692 0.244562 0.271557 +v 0.623934 0.280035 0.243235 +v 0.625025 0.277757 0.243561 +v 0.640035 0.284860 0.236383 +v 0.638932 0.287133 0.236063 +v 0.608400 0.272684 0.250002 +v 0.609481 0.270401 0.250333 +v 0.593557 0.265660 0.255880 +v 0.594630 0.263373 0.256214 +v 0.578466 0.258518 0.261300 +v 0.579530 0.256227 0.261637 +v 0.652168 0.293397 0.228966 +v 0.653285 0.291131 0.229278 +v 0.664871 0.296613 0.222285 +v 0.663740 0.298873 0.221981 +v 0.673744 0.303607 0.215146 +v 0.674891 0.301355 0.215439 +v 0.654444 0.288591 0.229466 +v 0.657637 0.281014 0.229560 +v 0.669296 0.286357 0.222558 +v 0.666038 0.294078 0.222467 +v 0.641186 0.282317 0.236575 +v 0.644307 0.274904 0.236671 +v 0.676067 0.298824 0.215614 +v 0.679382 0.290980 0.215702 +v 0.687993 0.294926 0.209027 +v 0.684628 0.302875 0.208944 +v 0.691818 0.306277 0.202492 +v 0.695225 0.298241 0.202570 +v 0.701177 0.300969 0.196367 +v 0.697733 0.309077 0.196295 +v 0.702472 0.311319 0.190389 +v 0.705946 0.303154 0.190454 +v 0.703035 0.279460 0.202597 +v 0.709081 0.281966 0.196391 +v 0.695688 0.276415 0.209055 +v 0.705754 0.249775 0.209055 +v 0.713241 0.252456 0.202597 +v 0.719403 0.254662 0.196391 +v 0.720410 0.286662 0.179657 +v 0.717669 0.285526 0.184885 +v 0.728156 0.257796 0.184885 +v 0.730949 0.258796 0.179657 +v 0.713926 0.283974 0.190475 +v 0.724341 0.256430 0.190475 +v 0.686943 0.272791 0.215731 +v 0.676699 0.268545 0.222589 +v 0.686401 0.242846 0.222589 +v 0.696841 0.246584 0.215731 +v 0.744811 0.226114 0.170430 +v 0.745301 0.226263 0.166514 +v 0.743741 0.225789 0.174826 +v 0.753925 0.189023 0.174826 +v 0.755009 0.189295 0.170430 +v 0.755506 0.189420 0.166514 +v 0.763388 0.152021 0.170430 +v 0.763890 0.152121 0.166514 +v 0.762291 0.151802 0.174826 +v 0.768822 0.114216 0.174826 +v 0.769928 0.114380 0.170430 +v 0.770434 0.114455 0.166514 +v 0.741838 0.225211 0.179657 +v 0.739000 0.224349 0.184885 +v 0.749118 0.187818 0.184885 +v 0.751996 0.188540 0.179657 +v 0.774612 0.076463 0.170430 +v 0.775122 0.076514 0.166514 +v 0.773500 0.076354 0.174826 +v 0.776315 0.038308 0.174826 +v 0.777432 0.038363 0.170430 +v 0.777943 0.038388 0.166514 +v 0.778377 0.000170 0.170430 +v 0.778889 0.000170 0.166514 +v 0.777259 0.000170 0.174826 +v 0.776332 -0.037969 0.174826 +v 0.777448 -0.038024 0.170430 +v 0.777960 -0.038049 0.166514 +v 0.760341 0.151414 0.179657 +v 0.757431 0.150834 0.184885 +v 0.763920 0.113487 0.184885 +v 0.766855 0.113923 0.179657 +v 0.771521 0.076158 0.179657 +v 0.768568 0.075867 0.184885 +v 0.771366 0.038063 0.184885 +v 0.774329 0.038210 0.179657 +v 0.775271 0.000169 0.179657 +v 0.772304 0.000168 0.184885 +v 0.771382 -0.037727 0.184885 +v 0.774345 -0.037872 0.179657 +v 0.764536 0.075469 0.190476 +v 0.759316 0.074953 0.196391 +v 0.762080 0.037605 0.196391 +v 0.767318 0.037864 0.190476 +v 0.759912 0.112892 0.190476 +v 0.754724 0.112121 0.196391 +v 0.768251 0.000168 0.190476 +v 0.763007 0.000166 0.196391 +v 0.762096 -0.037273 0.196391 +v 0.767335 -0.037529 0.190476 +v 0.774646 -0.076125 0.170430 +v 0.775155 -0.076175 0.166514 +v 0.773533 -0.076016 0.174826 +v 0.768872 -0.113880 0.174826 +v 0.769978 -0.114044 0.170430 +v 0.770484 -0.114119 0.166514 +v 0.763454 -0.151687 0.170430 +v 0.763956 -0.151787 0.166514 +v 0.762357 -0.151470 0.174826 +v 0.754007 -0.188694 0.174826 +v 0.755092 -0.188966 0.170430 +v 0.755588 -0.189090 0.166514 +v 0.771554 -0.075822 0.179657 +v 0.768601 -0.075531 0.184885 +v 0.763970 -0.113154 0.184885 +v 0.766905 -0.113589 0.179657 +v 0.744910 -0.225789 0.170430 +v 0.745399 -0.225937 0.166514 +v 0.743840 -0.225464 0.174826 +v 0.732935 -0.259147 0.174826 +v 0.733987 -0.259523 0.170430 +v 0.734470 -0.259695 0.166514 +v 0.760407 -0.151082 0.179657 +v 0.757497 -0.150504 0.184885 +v 0.749200 -0.187491 0.184885 +v 0.752078 -0.188212 0.179657 +v 0.723406 -0.287536 0.170430 +v 0.723879 -0.287731 0.166514 +v 0.722373 -0.287108 0.174826 +v 0.714269 -0.306596 0.174816 +v 0.715286 -0.307061 0.170423 +v 0.715751 -0.307274 0.166510 +v 0.741937 -0.224887 0.179657 +v 0.739097 -0.224027 0.184885 +v 0.728269 -0.257478 0.184885 +v 0.731062 -0.258477 0.179657 +v 0.711749 -0.315334 0.170403 +v 0.710493 -0.317828 0.170362 +v 0.710951 -0.318044 0.166479 +v 0.712210 -0.315552 0.166500 +v 0.710741 -0.314857 0.174784 +v 0.709491 -0.317354 0.174720 +v 0.720535 -0.286347 0.179657 +v 0.717794 -0.285213 0.184885 +v 0.709764 -0.304533 0.184867 +v 0.712461 -0.305768 0.179642 +v 0.708947 -0.314009 0.179598 +v 0.707705 -0.316510 0.179510 +v 0.706268 -0.312743 0.184812 +v 0.705037 -0.315249 0.184701 +v 0.709214 -0.320017 0.170295 +v 0.707912 -0.321901 0.170200 +v 0.708358 -0.322112 0.166396 +v 0.709667 -0.320231 0.166444 +v 0.708221 -0.319548 0.174613 +v 0.706933 -0.321438 0.174464 +v 0.706588 -0.323481 0.170079 +v 0.707024 -0.323687 0.166333 +v 0.705625 -0.323025 0.174271 +v 0.703900 -0.322210 0.178892 +v 0.702606 -0.323510 0.178569 +v 0.705182 -0.320611 0.179157 +v 0.702557 -0.319370 0.184257 +v 0.701307 -0.320984 0.183925 +v 0.700051 -0.322302 0.183519 +v 0.702608 -0.311013 0.190389 +v 0.701388 -0.313524 0.190260 +v 0.706079 -0.302846 0.190454 +v 0.701309 -0.300663 0.196367 +v 0.697868 -0.308772 0.196295 +v 0.696660 -0.311289 0.196150 +v 0.714050 -0.283663 0.190476 +v 0.709204 -0.281657 0.196391 +v 0.724453 -0.256114 0.190476 +v 0.719514 -0.254348 0.196391 +v 0.700170 -0.315742 0.190044 +v 0.698953 -0.317666 0.189742 +v 0.703800 -0.317458 0.184516 +v 0.695461 -0.313516 0.195909 +v 0.694271 -0.315453 0.195571 +v 0.735219 -0.222851 0.190476 +v 0.730200 -0.221330 0.196391 +v 0.745269 -0.186508 0.190476 +v 0.740181 -0.185234 0.196391 +v 0.691951 -0.305976 0.202492 +v 0.690755 -0.308498 0.202334 +v 0.695355 -0.297937 0.202570 +v 0.688122 -0.294626 0.209027 +v 0.684760 -0.302576 0.208944 +v 0.683575 -0.305103 0.208776 +v 0.703157 -0.279153 0.202597 +v 0.695809 -0.276112 0.209055 +v 0.713352 -0.252144 0.202597 +v 0.705863 -0.249467 0.209055 +v 0.753522 -0.149714 0.190476 +v 0.748378 -0.148692 0.196391 +v 0.759961 -0.112560 0.190476 +v 0.754773 -0.111792 0.196391 +v 0.723937 -0.219432 0.202597 +v 0.716326 -0.217125 0.209055 +v 0.733832 -0.183645 0.202597 +v 0.726118 -0.181715 0.209055 +v 0.764569 -0.075135 0.190476 +v 0.759349 -0.074622 0.196391 +v 0.741959 -0.147417 0.202597 +v 0.734159 -0.145867 0.209055 +v 0.748299 -0.110833 0.202597 +v 0.740432 -0.109668 0.209055 +v 0.752835 -0.073982 0.202597 +v 0.744921 -0.073204 0.209055 +v 0.755559 -0.036953 0.202597 +v 0.747616 -0.036565 0.209055 +v 0.756462 0.000165 0.202597 +v 0.748509 0.000163 0.209055 +v 0.755543 0.037283 0.202597 +v 0.747600 0.036891 0.209055 +v 0.724873 -0.144022 0.215731 +v 0.713997 -0.141861 0.222589 +v 0.706176 -0.176724 0.222589 +v 0.716934 -0.179417 0.215731 +v 0.731067 -0.108281 0.215731 +v 0.720098 -0.106656 0.222589 +v 0.735499 -0.072278 0.215731 +v 0.724463 -0.071194 0.222589 +v 0.738160 -0.036102 0.215731 +v 0.727085 -0.035560 0.222589 +v 0.707266 -0.214379 0.215731 +v 0.696654 -0.211162 0.222589 +v 0.686507 -0.242546 0.222589 +v 0.696949 -0.246279 0.215731 +v 0.687062 -0.272491 0.215731 +v 0.676816 -0.268249 0.222589 +v 0.669421 -0.286065 0.222558 +v 0.679509 -0.290684 0.215702 +v 0.684387 -0.207444 0.229591 +v 0.670361 -0.203192 0.236703 +v 0.660638 -0.233296 0.236703 +v 0.674437 -0.238230 0.229591 +v 0.693741 -0.173612 0.229591 +v 0.679525 -0.170055 0.236703 +v 0.676198 -0.298529 0.215614 +v 0.675022 -0.301061 0.215439 +v 0.666167 -0.293787 0.222467 +v 0.665000 -0.296323 0.222285 +v 0.664972 -0.263347 0.229591 +v 0.651432 -0.257741 0.236703 +v 0.644427 -0.274623 0.236671 +v 0.657760 -0.280727 0.229560 +v 0.654569 -0.288305 0.229466 +v 0.653412 -0.290846 0.229278 +v 0.641309 -0.282037 0.236575 +v 0.640159 -0.284581 0.236383 +v 0.689575 -0.310733 0.202072 +v 0.688411 -0.312683 0.201705 +v 0.682412 -0.307348 0.208497 +v 0.681274 -0.309309 0.208107 +v 0.673877 -0.303313 0.215146 +v 0.672762 -0.305286 0.214736 +v 0.663870 -0.298583 0.221981 +v 0.662778 -0.300566 0.221556 +v 0.697738 -0.319297 0.189353 +v 0.696524 -0.320635 0.188878 +v 0.693091 -0.317100 0.195136 +v 0.691919 -0.318458 0.194605 +v 0.701297 -0.324509 0.178186 +v 0.699976 -0.325207 0.177745 +v 0.698789 -0.323323 0.183038 +v 0.697521 -0.324047 0.182484 +v 0.687264 -0.314346 0.201233 +v 0.686134 -0.315723 0.200657 +v 0.680159 -0.310988 0.207604 +v 0.679069 -0.312384 0.206991 +v 0.695311 -0.321679 0.188317 +v 0.694099 -0.322429 0.187670 +v 0.690756 -0.319526 0.193978 +v 0.689603 -0.320304 0.193254 +v 0.698641 -0.325606 0.177245 +v 0.697293 -0.325703 0.176686 +v 0.698800 -0.326416 0.172671 +v 0.700203 -0.326344 0.173076 +v 0.696246 -0.324473 0.181856 +v 0.694965 -0.324603 0.181154 +v 0.695932 -0.325501 0.176068 +v 0.694033 -0.327051 0.175583 +v 0.695430 -0.327714 0.171870 +v 0.697377 -0.326184 0.172222 +v 0.693678 -0.324436 0.180378 +v 0.691840 -0.326010 0.179769 +v 0.692889 -0.322887 0.186936 +v 0.691680 -0.323050 0.186116 +v 0.688458 -0.320792 0.192433 +v 0.687323 -0.320991 0.191516 +v 0.685020 -0.316814 0.199975 +v 0.683923 -0.317619 0.199189 +v 0.678002 -0.313497 0.206265 +v 0.676959 -0.314327 0.205428 +v 0.690473 -0.322921 0.185209 +v 0.688699 -0.324519 0.184497 +v 0.686197 -0.320900 0.190502 +v 0.684491 -0.322521 0.189706 +v 0.682843 -0.318138 0.198297 +v 0.681779 -0.318370 0.197301 +v 0.675939 -0.314874 0.204479 +v 0.674944 -0.315139 0.203419 +v 0.680732 -0.318316 0.196200 +v 0.679092 -0.319958 0.195335 +v 0.673972 -0.315121 0.202247 +v 0.672397 -0.316779 0.201327 +v 0.669601 -0.309526 0.212804 +v 0.668608 -0.310380 0.211926 +v 0.670624 -0.308392 0.213565 +v 0.660702 -0.303702 0.220341 +v 0.659720 -0.304855 0.219551 +v 0.658775 -0.305732 0.218639 +v 0.665814 -0.311265 0.208589 +v 0.664301 -0.312935 0.207623 +v 0.666715 -0.311249 0.209819 +v 0.656994 -0.306654 0.216452 +v 0.656159 -0.306701 0.215176 +v 0.654706 -0.308380 0.214173 +v 0.667646 -0.310954 0.210931 +v 0.657866 -0.306331 0.217606 +v 0.644909 -0.301383 0.221958 +v 0.643512 -0.303066 0.220925 +v 0.645683 -0.301308 0.223272 +v 0.632684 -0.295163 0.230236 +v 0.631965 -0.295264 0.228891 +v 0.630622 -0.296946 0.227835 +v 0.646500 -0.300959 0.224460 +v 0.647360 -0.300336 0.225524 +v 0.634265 -0.294146 0.232541 +v 0.633450 -0.294790 0.231452 +v 0.617226 -0.288297 0.235933 +v 0.615934 -0.289973 0.234858 +v 0.617896 -0.288173 0.237303 +v 0.602547 -0.280917 0.243985 +v 0.601921 -0.281063 0.242597 +v 0.600676 -0.282728 0.241506 +v 0.587277 -0.274140 0.248394 +v 0.586073 -0.275795 0.247291 +v 0.587865 -0.273977 0.249797 +v 0.572913 -0.266909 0.255164 +v 0.572358 -0.267088 0.253748 +v 0.571192 -0.268730 0.252636 +v 0.618618 -0.287779 0.238541 +v 0.619393 -0.287116 0.239650 +v 0.603970 -0.279825 0.246366 +v 0.603230 -0.280505 0.245241 +v 0.588513 -0.273548 0.251067 +v 0.589222 -0.272854 0.252204 +v 0.574215 -0.265760 0.257591 +v 0.573532 -0.266467 0.256445 +v 0.557350 -0.258817 0.261801 +v 0.556757 -0.259272 0.260511 +v 0.558008 -0.258099 0.262955 +v 0.540564 -0.249853 0.268278 +v 0.539928 -0.250582 0.267117 +v 0.539360 -0.251048 0.265819 +v 0.589992 -0.271895 0.253206 +v 0.590822 -0.270670 0.254075 +v 0.575769 -0.263554 0.259479 +v 0.574961 -0.264789 0.258603 +v 0.604766 -0.278879 0.247357 +v 0.605619 -0.277664 0.248217 +v 0.558733 -0.257118 0.263974 +v 0.559524 -0.255875 0.264856 +v 0.542043 -0.247612 0.270191 +v 0.541269 -0.248863 0.269303 +v 0.620220 -0.286184 0.240628 +v 0.621100 -0.284982 0.241475 +v 0.635128 -0.293230 0.233501 +v 0.636039 -0.292044 0.234334 +v 0.648262 -0.299439 0.226463 +v 0.649207 -0.298268 0.227276 +v 0.591712 -0.269179 0.254811 +v 0.592663 -0.267423 0.255412 +v 0.577578 -0.260293 0.260828 +v 0.576643 -0.262055 0.260221 +v 0.606529 -0.276183 0.248944 +v 0.607495 -0.274434 0.249539 +v 0.622033 -0.283512 0.242192 +v 0.623018 -0.281772 0.242779 +v 0.636997 -0.290585 0.235038 +v 0.638003 -0.288855 0.235614 +v 0.650194 -0.296823 0.227964 +v 0.651224 -0.295105 0.228528 +v 0.661722 -0.302272 0.221009 +v 0.671678 -0.306979 0.214209 +v 0.652296 -0.293112 0.228966 +v 0.639057 -0.286854 0.236063 +v 0.624056 -0.279763 0.243236 +v 0.625147 -0.277484 0.243562 +v 0.609598 -0.270135 0.250333 +v 0.608519 -0.272418 0.250002 +v 0.626289 -0.274937 0.243757 +v 0.629325 -0.267710 0.243855 +v 0.613688 -0.260551 0.250630 +v 0.610735 -0.267585 0.250531 +v 0.636094 -0.251392 0.243888 +v 0.620213 -0.244818 0.250663 +v 0.645008 -0.227707 0.243888 +v 0.628823 -0.221921 0.250663 +v 0.593674 -0.265401 0.255880 +v 0.594745 -0.263113 0.256215 +v 0.579642 -0.255974 0.261637 +v 0.578578 -0.258265 0.261300 +v 0.595876 -0.260560 0.256415 +v 0.598747 -0.253712 0.256515 +v 0.583560 -0.246759 0.261940 +v 0.580768 -0.253419 0.261839 +v 0.605042 -0.238538 0.256549 +v 0.589617 -0.232153 0.261974 +v 0.613361 -0.216392 0.256549 +v 0.597642 -0.210771 0.261974 +v 0.654476 -0.198377 0.243888 +v 0.638027 -0.193392 0.250663 +v 0.663422 -0.166025 0.243888 +v 0.646749 -0.161852 0.250663 +v 0.701424 -0.139363 0.229591 +v 0.687050 -0.136507 0.236703 +v 0.707418 -0.104778 0.229591 +v 0.692921 -0.102631 0.236703 +v 0.622313 -0.188628 0.256549 +v 0.606337 -0.183786 0.261974 +v 0.630819 -0.157866 0.256549 +v 0.614625 -0.153813 0.261974 +v 0.670769 -0.133272 0.243888 +v 0.653911 -0.129923 0.250663 +v 0.676501 -0.100199 0.243887 +v 0.659499 -0.097680 0.250663 +v 0.572981 -0.225266 0.267369 +v 0.555089 -0.217859 0.272718 +v 0.549559 -0.231194 0.272684 +v 0.567177 -0.239259 0.267335 +v 0.580688 -0.204709 0.267369 +v 0.562454 -0.198189 0.272718 +v 0.564472 -0.245716 0.267233 +v 0.563349 -0.248273 0.267029 +v 0.546947 -0.237432 0.272581 +v 0.545829 -0.239991 0.272376 +v 0.562294 -0.250568 0.266690 +v 0.561304 -0.252599 0.266214 +v 0.544779 -0.242288 0.272035 +v 0.543798 -0.244324 0.271557 +v 0.589105 -0.178563 0.267369 +v 0.570574 -0.172946 0.272718 +v 0.597157 -0.149442 0.267369 +v 0.578372 -0.144741 0.272718 +v 0.528151 -0.228547 0.277869 +v 0.527036 -0.231108 0.277663 +v 0.530663 -0.222544 0.277972 +v 0.510448 -0.213290 0.283183 +v 0.508042 -0.219042 0.283080 +v 0.506931 -0.221604 0.282873 +v 0.535900 -0.209916 0.278006 +v 0.515371 -0.201418 0.283218 +v 0.542899 -0.191197 0.278006 +v 0.521978 -0.183717 0.283218 +v 0.560381 -0.254368 0.265603 +v 0.542886 -0.246099 0.270942 +v 0.525992 -0.233408 0.277319 +v 0.525020 -0.235448 0.276839 +v 0.505893 -0.223907 0.282528 +v 0.504929 -0.225951 0.282046 +v 0.524119 -0.237228 0.276221 +v 0.523290 -0.238747 0.275466 +v 0.504038 -0.227735 0.281425 +v 0.503221 -0.229261 0.280667 +v 0.522531 -0.240006 0.274574 +v 0.521844 -0.241004 0.273544 +v 0.502478 -0.230527 0.279770 +v 0.501808 -0.231533 0.278736 +v 0.484439 -0.213766 0.287646 +v 0.483483 -0.215813 0.287161 +v 0.485472 -0.211460 0.287992 +v 0.462618 -0.200657 0.293004 +v 0.461591 -0.202965 0.292657 +v 0.460641 -0.205016 0.292171 +v 0.521229 -0.241743 0.272377 +v 0.520684 -0.242220 0.271073 +v 0.501212 -0.232281 0.277564 +v 0.500689 -0.232769 0.276254 +v 0.482602 -0.217603 0.286539 +v 0.481797 -0.219133 0.285777 +v 0.459770 -0.206810 0.291546 +v 0.458976 -0.208346 0.290782 +v 0.481068 -0.220406 0.284877 +v 0.480414 -0.221420 0.283839 +v 0.458260 -0.209625 0.289879 +v 0.457621 -0.210646 0.288838 +v 0.520211 -0.242438 0.269631 +v 0.519152 -0.244023 0.268498 +v 0.537767 -0.252861 0.263258 +v 0.538861 -0.251254 0.264385 +v 0.500240 -0.232998 0.274806 +v 0.499216 -0.234558 0.273668 +v 0.556231 -0.259465 0.259085 +v 0.555102 -0.261091 0.257964 +v 0.479836 -0.222176 0.282663 +v 0.479334 -0.222674 0.281348 +v 0.457061 -0.211411 0.287657 +v 0.456578 -0.211918 0.286338 +v 0.478908 -0.222914 0.279894 +v 0.477919 -0.224447 0.278752 +v 0.456173 -0.212167 0.284880 +v 0.455219 -0.213670 0.283734 +v 0.431996 -0.200739 0.289747 +v 0.431078 -0.202208 0.288598 +v 0.432380 -0.200479 0.291209 +v 0.406700 -0.188340 0.295945 +v 0.406335 -0.188609 0.294479 +v 0.405452 -0.190042 0.293327 +v 0.432845 -0.199964 0.292532 +v 0.433389 -0.199192 0.293716 +v 0.407676 -0.187037 0.298457 +v 0.407147 -0.187817 0.297271 +v 0.379927 -0.174950 0.301859 +v 0.379496 -0.175481 0.300529 +v 0.380441 -0.174163 0.303048 +v 0.351642 -0.160550 0.307471 +v 0.351142 -0.161343 0.306280 +v 0.350727 -0.161882 0.304948 +v 0.434013 -0.198163 0.294760 +v 0.434716 -0.196879 0.295665 +v 0.408977 -0.184712 0.300412 +v 0.408286 -0.186002 0.299505 +v 0.381038 -0.173122 0.304097 +v 0.381718 -0.171826 0.305006 +v 0.352897 -0.158203 0.309433 +v 0.352227 -0.159503 0.308522 +v 0.435499 -0.195337 0.296431 +v 0.436362 -0.193540 0.297058 +v 0.410606 -0.181364 0.301808 +v 0.409751 -0.183166 0.301180 +v 0.382482 -0.170276 0.305776 +v 0.383329 -0.168471 0.306405 +v 0.354491 -0.154839 0.310835 +v 0.353652 -0.156648 0.310204 +v 0.437305 -0.191486 0.297545 +v 0.438328 -0.189175 0.297894 +v 0.412560 -0.176995 0.302646 +v 0.411542 -0.179307 0.302297 +v 0.384259 -0.166411 0.306895 +v 0.385273 -0.164096 0.307245 +v 0.356425 -0.150460 0.311676 +v 0.355416 -0.152777 0.311325 +v 0.323218 -0.142262 0.314449 +v 0.322472 -0.143821 0.313677 +v 0.324051 -0.140451 0.315080 +v 0.300305 -0.129225 0.318231 +v 0.299479 -0.131041 0.317598 +v 0.298742 -0.132604 0.316825 +v 0.324971 -0.138386 0.315572 +v 0.325976 -0.136067 0.315922 +v 0.302219 -0.124837 0.319074 +v 0.301218 -0.127158 0.318723 +v 0.386370 -0.161527 0.307455 +v 0.388137 -0.157297 0.307560 +v 0.359136 -0.144021 0.311991 +v 0.357520 -0.147890 0.311886 +v 0.413659 -0.174427 0.302855 +v 0.415570 -0.169855 0.302960 +v 0.321812 -0.145126 0.312764 +v 0.321238 -0.146178 0.311711 +v 0.298094 -0.133915 0.315911 +v 0.297533 -0.134973 0.314857 +v 0.327069 -0.133496 0.316133 +v 0.328526 -0.130008 0.316238 +v 0.304642 -0.119074 0.319390 +v 0.303309 -0.122265 0.319285 +v 0.320751 -0.146977 0.310518 +v 0.320350 -0.147523 0.309185 +v 0.297060 -0.135779 0.313662 +v 0.296676 -0.136332 0.312326 +v 0.379149 -0.175758 0.299060 +v 0.350396 -0.162167 0.303476 +v 0.378303 -0.177153 0.297906 +v 0.349587 -0.163519 0.302320 +v 0.320035 -0.147815 0.307711 +v 0.319263 -0.149122 0.306553 +v 0.296379 -0.136633 0.310850 +v 0.295641 -0.137907 0.309691 +v 0.289374 -0.129793 0.317050 +v 0.288831 -0.130859 0.315994 +v 0.290008 -0.128475 0.317966 +v 0.288762 -0.127886 0.318082 +v 0.288150 -0.129215 0.317165 +v 0.287633 -0.130293 0.316107 +v 0.287744 -0.132551 0.311981 +v 0.287031 -0.133820 0.310819 +v 0.288016 -0.132239 0.313459 +v 0.286881 -0.131702 0.313569 +v 0.286646 -0.132032 0.312088 +v 0.285963 -0.133312 0.310924 +v 0.288378 -0.131675 0.314797 +v 0.287210 -0.131123 0.314909 +v 0.285604 -0.131539 0.312156 +v 0.284964 -0.132839 0.310991 +v 0.285784 -0.131184 0.313638 +v 0.286063 -0.130581 0.314980 +v 0.286442 -0.129730 0.316180 +v 0.285283 -0.129183 0.316194 +v 0.284966 -0.130062 0.314996 +v 0.286920 -0.128633 0.317239 +v 0.287497 -0.127288 0.318157 +v 0.286237 -0.126693 0.318168 +v 0.285707 -0.128060 0.317252 +v 0.283945 -0.129579 0.314941 +v 0.284182 -0.128662 0.316131 +v 0.283153 -0.128176 0.315982 +v 0.283014 -0.129139 0.314811 +v 0.284535 -0.127506 0.317182 +v 0.285004 -0.126110 0.318092 +v 0.283814 -0.125547 0.317911 +v 0.283420 -0.126978 0.317016 +v 0.282188 -0.128748 0.314603 +v 0.282212 -0.127731 0.315739 +v 0.281351 -0.127324 0.315389 +v 0.281454 -0.128402 0.314312 +v 0.282305 -0.129539 0.313334 +v 0.281712 -0.129259 0.313107 +v 0.282562 -0.130102 0.311932 +v 0.282270 -0.131559 0.310830 +v 0.282125 -0.129895 0.311775 +v 0.281955 -0.131410 0.310729 +v 0.282376 -0.126485 0.316740 +v 0.282682 -0.125012 0.317608 +v 0.281614 -0.124508 0.317165 +v 0.281405 -0.126026 0.316340 +v 0.280505 -0.125601 0.315801 +v 0.280567 -0.126953 0.314924 +v 0.280614 -0.124035 0.316561 +v 0.279679 -0.123593 0.315763 +v 0.279666 -0.125204 0.315085 +v 0.279840 -0.126609 0.314302 +v 0.280895 -0.122256 0.317205 +v 0.281346 -0.120264 0.317731 +v 0.280263 -0.119752 0.316807 +v 0.279878 -0.121775 0.316337 +v 0.281979 -0.122769 0.317862 +v 0.282500 -0.120809 0.318433 +v 0.283129 -0.123312 0.318343 +v 0.283717 -0.121384 0.318944 +v 0.284335 -0.123882 0.318669 +v 0.284984 -0.121983 0.319289 +v 0.285589 -0.124475 0.318863 +v 0.286289 -0.122600 0.319493 +v 0.286874 -0.125082 0.318944 +v 0.287617 -0.123228 0.319578 +v 0.281969 -0.118059 0.318140 +v 0.282763 -0.115640 0.318433 +v 0.281590 -0.115086 0.317433 +v 0.280834 -0.117522 0.317172 +v 0.283177 -0.118630 0.318876 +v 0.284009 -0.116229 0.319193 +v 0.288173 -0.125697 0.318934 +v 0.288949 -0.123858 0.319570 +v 0.289467 -0.126308 0.318858 +v 0.290266 -0.124480 0.319493 +v 0.284445 -0.119229 0.319412 +v 0.285314 -0.116846 0.319745 +v 0.285760 -0.119850 0.319772 +v 0.286663 -0.117484 0.320116 +v 0.287106 -0.120487 0.319983 +v 0.288038 -0.118134 0.320333 +v 0.288466 -0.121130 0.320072 +v 0.289422 -0.118788 0.320424 +v 0.290732 -0.126906 0.318740 +v 0.291547 -0.125086 0.319374 +v 0.289823 -0.121771 0.320064 +v 0.290797 -0.119438 0.320417 +v 0.291158 -0.122403 0.319986 +v 0.292145 -0.120075 0.320339 +v 0.292452 -0.123014 0.319867 +v 0.293447 -0.120691 0.320219 +v 0.289086 -0.115541 0.320543 +v 0.290324 -0.112520 0.320648 +v 0.288916 -0.111875 0.320426 +v 0.287693 -0.114883 0.320323 +v 0.290484 -0.116202 0.320636 +v 0.291737 -0.113167 0.320742 +v 0.294533 -0.118117 0.320430 +v 0.295819 -0.115035 0.320536 +v 0.294502 -0.114433 0.320656 +v 0.293226 -0.117499 0.320550 +v 0.291870 -0.116858 0.320629 +v 0.293135 -0.113807 0.320735 +v 0.297413 -0.111192 0.320571 +v 0.296075 -0.110638 0.320692 +v 0.306373 -0.114901 0.319426 +v 0.308986 -0.107559 0.319426 +v 0.299855 -0.104295 0.320571 +v 0.298492 -0.103807 0.320692 +v 0.294686 -0.110063 0.320770 +v 0.293264 -0.109475 0.320777 +v 0.297076 -0.103301 0.320770 +v 0.295626 -0.102782 0.320777 +v 0.291827 -0.108880 0.320684 +v 0.290394 -0.108287 0.320461 +v 0.294162 -0.102259 0.320684 +v 0.292702 -0.101737 0.320461 +v 0.286325 -0.114236 0.319946 +v 0.287530 -0.111241 0.320046 +v 0.286184 -0.110625 0.319479 +v 0.284997 -0.113609 0.319384 +v 0.288983 -0.107702 0.320079 +v 0.287612 -0.107135 0.319510 +v 0.291264 -0.101222 0.320079 +v 0.289867 -0.100723 0.319510 +v 0.283728 -0.113009 0.318608 +v 0.284896 -0.110035 0.318696 +v 0.283684 -0.109481 0.317668 +v 0.282533 -0.112444 0.317590 +v 0.286301 -0.106592 0.318725 +v 0.285066 -0.106081 0.317694 +v 0.288530 -0.100245 0.318725 +v 0.287272 -0.099795 0.317694 +v 0.297898 -0.090295 0.320684 +v 0.296413 -0.089845 0.320461 +v 0.299386 -0.090746 0.320777 +v 0.303478 -0.075947 0.320777 +v 0.301970 -0.075569 0.320684 +v 0.300465 -0.075193 0.320461 +v 0.281430 -0.111923 0.316299 +v 0.280507 -0.114574 0.316165 +v 0.282566 -0.108969 0.316366 +v 0.281559 -0.108508 0.314760 +v 0.280436 -0.111453 0.314704 +v 0.279528 -0.114111 0.314591 +v 0.294952 -0.089402 0.320079 +v 0.293533 -0.088972 0.319510 +v 0.298984 -0.074822 0.320079 +v 0.297545 -0.074462 0.319510 +v 0.283927 -0.105610 0.316388 +v 0.282902 -0.105185 0.314779 +v 0.286112 -0.099380 0.316388 +v 0.285067 -0.099007 0.314779 +v 0.292174 -0.088560 0.318725 +v 0.290895 -0.088173 0.317694 +v 0.296168 -0.074118 0.318725 +v 0.294872 -0.073793 0.317694 +v 0.279783 -0.117025 0.315941 +v 0.279258 -0.119277 0.315629 +v 0.278830 -0.116575 0.314404 +v 0.278340 -0.118843 0.314141 +v 0.278932 -0.121328 0.315226 +v 0.278805 -0.123180 0.314735 +v 0.278060 -0.120916 0.313804 +v 0.277988 -0.122794 0.313391 +v 0.279568 -0.111042 0.312773 +v 0.278669 -0.113705 0.312676 +v 0.280681 -0.108106 0.312821 +v 0.279868 -0.107734 0.310714 +v 0.278762 -0.110661 0.310673 +v 0.277869 -0.113327 0.310590 +v 0.282009 -0.104816 0.312837 +v 0.281183 -0.104474 0.310728 +v 0.284157 -0.098681 0.312837 +v 0.283315 -0.098380 0.310728 +v 0.277986 -0.116176 0.312516 +v 0.277518 -0.118454 0.312291 +v 0.277196 -0.115803 0.310452 +v 0.276743 -0.118088 0.310258 +v 0.287729 -0.087213 0.312837 +v 0.286873 -0.086954 0.310728 +v 0.288654 -0.087494 0.314779 +v 0.292600 -0.073225 0.314779 +v 0.291662 -0.072990 0.312837 +v 0.290794 -0.072773 0.310728 +v 0.277265 -0.120540 0.312002 +v 0.277227 -0.122434 0.311648 +v 0.276509 -0.120183 0.310009 +v 0.276494 -0.122087 0.309705 +v 0.278877 -0.124831 0.314154 +v 0.279148 -0.126282 0.313483 +v 0.278126 -0.124476 0.312904 +v 0.278474 -0.125964 0.312341 +v 0.277405 -0.124135 0.311231 +v 0.277799 -0.125645 0.310749 +v 0.276699 -0.123802 0.309346 +v 0.277123 -0.125325 0.308931 +v 0.278407 -0.126962 0.310203 +v 0.279030 -0.127256 0.311704 +v 0.277767 -0.126659 0.308461 +v 0.279618 -0.127534 0.312724 +v 0.280287 -0.128585 0.311874 +v 0.280744 -0.128801 0.312423 +v 0.280199 -0.127808 0.313415 +v 0.281155 -0.129437 0.310936 +v 0.281343 -0.131120 0.310199 +v 0.281555 -0.131220 0.310467 +v 0.281475 -0.129588 0.311328 +v 0.294892 -0.058591 0.312837 +v 0.294015 -0.058417 0.310728 +v 0.295840 -0.058779 0.314779 +v 0.298368 -0.044192 0.314779 +v 0.297412 -0.044051 0.312837 +v 0.296527 -0.043920 0.310728 +v 0.289716 -0.087815 0.316388 +v 0.293676 -0.073494 0.316388 +v 0.296928 -0.058995 0.316388 +v 0.298137 -0.059236 0.317694 +v 0.300685 -0.044535 0.317694 +v 0.299465 -0.044355 0.316388 +v 0.299448 -0.059496 0.318725 +v 0.300840 -0.059773 0.319510 +v 0.303411 -0.044939 0.319510 +v 0.302006 -0.044731 0.318725 +v 0.299215 -0.029404 0.312837 +v 0.298325 -0.029317 0.310728 +v 0.300177 -0.029499 0.314779 +v 0.301263 -0.014734 0.314779 +v 0.300298 -0.014687 0.312837 +v 0.299404 -0.014643 0.310728 +v 0.301281 -0.029607 0.316388 +v 0.302508 -0.029728 0.317694 +v 0.303602 -0.014849 0.317694 +v 0.302371 -0.014788 0.316388 +v 0.300656 0.000066 0.312837 +v 0.299762 0.000065 0.310728 +v 0.301623 0.000066 0.314779 +v 0.301256 0.014866 0.314779 +v 0.300291 0.014818 0.312837 +v 0.299398 0.014774 0.310728 +v 0.302732 0.000066 0.316388 +v 0.303965 0.000066 0.317694 +v 0.303596 0.014981 0.317694 +v 0.302364 0.014920 0.316388 +v 0.303837 -0.029858 0.318725 +v 0.305250 -0.029997 0.319510 +v 0.306354 -0.014983 0.319510 +v 0.304937 -0.014914 0.318725 +v 0.305301 0.000067 0.318725 +v 0.306720 0.000067 0.319510 +v 0.306348 0.015117 0.319510 +v 0.304930 0.015047 0.318725 +v 0.299202 0.029535 0.312837 +v 0.298312 0.029447 0.310728 +v 0.300164 0.029630 0.314779 +v 0.298349 0.044322 0.314779 +v 0.297393 0.044180 0.312837 +v 0.296508 0.044049 0.310728 +v 0.301268 0.029739 0.316388 +v 0.302495 0.029860 0.317694 +v 0.300665 0.044666 0.317694 +v 0.299446 0.044485 0.316388 +v 0.294867 0.058719 0.312837 +v 0.293989 0.058545 0.310728 +v 0.295814 0.058908 0.314779 +v 0.292568 0.073352 0.314779 +v 0.291630 0.073117 0.312837 +v 0.290763 0.072900 0.310728 +v 0.296902 0.059125 0.316388 +v 0.298111 0.059366 0.317694 +v 0.294839 0.073922 0.317694 +v 0.293644 0.073622 0.316388 +v 0.303824 0.029991 0.318725 +v 0.305237 0.030130 0.319510 +v 0.303391 0.045071 0.319510 +v 0.301987 0.044863 0.318725 +v 0.299422 0.059626 0.318725 +v 0.300814 0.059904 0.319510 +v 0.297512 0.074592 0.319510 +v 0.296135 0.074247 0.318725 +v 0.287691 0.087339 0.312837 +v 0.286835 0.087079 0.310728 +v 0.288616 0.087619 0.314779 +v 0.285024 0.099131 0.314779 +v 0.284114 0.098805 0.312837 +v 0.283272 0.098504 0.310728 +v 0.289677 0.087942 0.316388 +v 0.290857 0.088300 0.317694 +v 0.287229 0.099921 0.317694 +v 0.286068 0.099505 0.316388 +v 0.281964 0.104939 0.312837 +v 0.281137 0.104596 0.310728 +v 0.282856 0.105309 0.314779 +v 0.281512 0.108631 0.314760 +v 0.280634 0.108228 0.312821 +v 0.279821 0.107856 0.310714 +v 0.279519 0.111164 0.312773 +v 0.278619 0.113827 0.312676 +v 0.277820 0.113448 0.310590 +v 0.278714 0.110783 0.310673 +v 0.280388 0.111575 0.314704 +v 0.279479 0.114233 0.314591 +v 0.283881 0.105734 0.316388 +v 0.285020 0.106205 0.317694 +v 0.283636 0.109604 0.317668 +v 0.282518 0.109092 0.316366 +v 0.281381 0.112045 0.316299 +v 0.280457 0.114696 0.316165 +v 0.282484 0.112567 0.317590 +v 0.281540 0.115209 0.317433 +v 0.277935 0.116297 0.312516 +v 0.277466 0.118575 0.312291 +v 0.276691 0.118208 0.310258 +v 0.277146 0.115924 0.310452 +v 0.278779 0.116696 0.314404 +v 0.278288 0.118964 0.314141 +v 0.286254 0.106717 0.318725 +v 0.287566 0.107261 0.319510 +v 0.286136 0.110750 0.319479 +v 0.284848 0.110160 0.318696 +v 0.288487 0.100371 0.318725 +v 0.289823 0.100849 0.319510 +v 0.277212 0.120661 0.312002 +v 0.277174 0.122555 0.311648 +v 0.276441 0.122208 0.309705 +v 0.276456 0.120303 0.310009 +v 0.278007 0.121037 0.313804 +v 0.277935 0.122915 0.313391 +v 0.279732 0.117147 0.315941 +v 0.279206 0.119398 0.315629 +v 0.280782 0.117644 0.317172 +v 0.280210 0.119874 0.316807 +v 0.283678 0.113132 0.318608 +v 0.282712 0.115763 0.318433 +v 0.284947 0.113733 0.319384 +v 0.283958 0.116353 0.319193 +v 0.277351 0.124256 0.311231 +v 0.277744 0.125766 0.310749 +v 0.277069 0.125446 0.308931 +v 0.276645 0.123922 0.309346 +v 0.278072 0.124597 0.312904 +v 0.278419 0.126085 0.312341 +v 0.278879 0.121450 0.315226 +v 0.278751 0.123301 0.314735 +v 0.279825 0.121897 0.316337 +v 0.279625 0.123715 0.315763 +v 0.278352 0.127083 0.310203 +v 0.277712 0.126780 0.308461 +v 0.278975 0.127378 0.311704 +v 0.278822 0.124952 0.314154 +v 0.279093 0.126404 0.313483 +v 0.279612 0.125326 0.315085 +v 0.279784 0.126731 0.314302 +v 0.279562 0.127656 0.312724 +v 0.280231 0.128707 0.311874 +v 0.280143 0.127931 0.313415 +v 0.280688 0.128924 0.312423 +v 0.281099 0.129559 0.310936 +v 0.281285 0.131242 0.310199 +v 0.281419 0.129711 0.311328 +v 0.281497 0.131343 0.310467 +v 0.280451 0.125723 0.315801 +v 0.280512 0.127076 0.314924 +v 0.280560 0.124157 0.316561 +v 0.281560 0.124630 0.317165 +v 0.281350 0.126149 0.316340 +v 0.281296 0.127447 0.315389 +v 0.280841 0.122378 0.317205 +v 0.281294 0.120386 0.317731 +v 0.282447 0.120932 0.318433 +v 0.281926 0.122892 0.317862 +v 0.282321 0.126608 0.316740 +v 0.282156 0.127854 0.315739 +v 0.282628 0.125136 0.317608 +v 0.283759 0.125671 0.317911 +v 0.283364 0.127102 0.317016 +v 0.283097 0.128299 0.315982 +v 0.283075 0.123435 0.318343 +v 0.283664 0.121508 0.318944 +v 0.284930 0.122107 0.319289 +v 0.284281 0.124006 0.318669 +v 0.282131 0.128871 0.314603 +v 0.282248 0.129662 0.313334 +v 0.281655 0.129381 0.313107 +v 0.281398 0.128524 0.314312 +v 0.282958 0.129262 0.314811 +v 0.282945 0.129992 0.313502 +v 0.283888 0.129703 0.314941 +v 0.283766 0.130380 0.313610 +v 0.284126 0.128786 0.316131 +v 0.285227 0.129307 0.316194 +v 0.284909 0.130186 0.314996 +v 0.284698 0.130821 0.313656 +v 0.284479 0.127630 0.317182 +v 0.284949 0.126234 0.318092 +v 0.286182 0.126818 0.318168 +v 0.285651 0.128184 0.317252 +v 0.286007 0.130705 0.314980 +v 0.286386 0.129855 0.316180 +v 0.287577 0.130419 0.316107 +v 0.287153 0.131248 0.314908 +v 0.285727 0.131308 0.313638 +v 0.286824 0.131827 0.313569 +v 0.285534 0.124599 0.318863 +v 0.286236 0.122725 0.319493 +v 0.287563 0.123353 0.319578 +v 0.286819 0.125207 0.318944 +v 0.286864 0.128758 0.317239 +v 0.287442 0.127414 0.318157 +v 0.288706 0.128012 0.318082 +v 0.288094 0.129340 0.317165 +v 0.288119 0.125822 0.318934 +v 0.288895 0.123984 0.319570 +v 0.290211 0.124607 0.319493 +v 0.289411 0.126434 0.318858 +v 0.287053 0.120612 0.319983 +v 0.287986 0.118259 0.320333 +v 0.289370 0.118914 0.320424 +v 0.288413 0.121256 0.320072 +v 0.285707 0.119975 0.319772 +v 0.286612 0.117609 0.320116 +v 0.289770 0.121898 0.320064 +v 0.290745 0.119565 0.320417 +v 0.292093 0.120203 0.320339 +v 0.291105 0.122529 0.319986 +v 0.290677 0.127033 0.318740 +v 0.289952 0.128602 0.317966 +v 0.291492 0.125213 0.319374 +v 0.300248 0.129356 0.318231 +v 0.299422 0.131171 0.317598 +v 0.298685 0.132734 0.316825 +v 0.284393 0.119353 0.319412 +v 0.285263 0.116971 0.319745 +v 0.283125 0.118753 0.318876 +v 0.289317 0.129919 0.317050 +v 0.288774 0.130985 0.315994 +v 0.298035 0.134045 0.315911 +v 0.297474 0.135103 0.314857 +v 0.288321 0.131800 0.314797 +v 0.287958 0.132364 0.313459 +v 0.297001 0.135908 0.313662 +v 0.296616 0.136461 0.312326 +v 0.292398 0.123141 0.319867 +v 0.293395 0.120819 0.320219 +v 0.302165 0.124969 0.319074 +v 0.301162 0.127289 0.318723 +v 0.323156 0.142403 0.314449 +v 0.322409 0.143961 0.313677 +v 0.323990 0.140592 0.315080 +v 0.354424 0.154994 0.310835 +v 0.353583 0.156802 0.310204 +v 0.352828 0.158357 0.309433 +v 0.324910 0.138527 0.315572 +v 0.325917 0.136209 0.315922 +v 0.356360 0.150616 0.311676 +v 0.355349 0.152932 0.311325 +v 0.321748 0.145266 0.312764 +v 0.321174 0.146318 0.311711 +v 0.352157 0.159657 0.308522 +v 0.351572 0.160703 0.307471 +v 0.287686 0.132676 0.311981 +v 0.286973 0.133945 0.310819 +v 0.285904 0.133437 0.310924 +v 0.286588 0.132157 0.312088 +v 0.296320 0.136762 0.310850 +v 0.295580 0.138036 0.309691 +v 0.285546 0.131664 0.312156 +v 0.284907 0.132963 0.310991 +v 0.284013 0.132538 0.311013 +v 0.284593 0.131213 0.312176 +v 0.320687 0.147117 0.310518 +v 0.320285 0.147662 0.309185 +v 0.351072 0.161496 0.306279 +v 0.350656 0.162035 0.304948 +v 0.379850 0.175115 0.301859 +v 0.379420 0.175647 0.300529 +v 0.380365 0.174329 0.303048 +v 0.407594 0.187215 0.298457 +v 0.407065 0.187994 0.297271 +v 0.406618 0.188518 0.295945 +v 0.380962 0.173288 0.304097 +v 0.381643 0.171993 0.305006 +v 0.408897 0.184890 0.300412 +v 0.408205 0.186180 0.299505 +v 0.382408 0.170443 0.305776 +v 0.383255 0.168638 0.306405 +v 0.410526 0.181543 0.301808 +v 0.409671 0.183345 0.301180 +v 0.433926 0.198353 0.294760 +v 0.433302 0.199381 0.293716 +v 0.434630 0.197068 0.295665 +v 0.458885 0.208546 0.290782 +v 0.458168 0.209825 0.289879 +v 0.457529 0.210846 0.288838 +v 0.384187 0.166579 0.306895 +v 0.385201 0.164264 0.307245 +v 0.412482 0.177175 0.302646 +v 0.411464 0.179487 0.302297 +v 0.435414 0.195527 0.296431 +v 0.436278 0.193730 0.297058 +v 0.460552 0.205217 0.292171 +v 0.459679 0.207010 0.291546 +v 0.437222 0.191676 0.297545 +v 0.438245 0.189367 0.297894 +v 0.462530 0.200859 0.293004 +v 0.461502 0.203167 0.292657 +v 0.386299 0.161696 0.307455 +v 0.388068 0.157467 0.307560 +v 0.415495 0.170037 0.302960 +v 0.413583 0.174607 0.302855 +v 0.357455 0.148046 0.311886 +v 0.359074 0.144178 0.311991 +v 0.439348 0.186800 0.298102 +v 0.441396 0.181907 0.298207 +v 0.465812 0.193097 0.293316 +v 0.463636 0.198294 0.293212 +v 0.484346 0.213977 0.287646 +v 0.483389 0.216024 0.287161 +v 0.485379 0.211672 0.287992 +v 0.506834 0.221825 0.282873 +v 0.505795 0.224128 0.282528 +v 0.504830 0.226171 0.282046 +v 0.327010 0.133638 0.316133 +v 0.328469 0.130151 0.316238 +v 0.303255 0.122397 0.319285 +v 0.304590 0.119207 0.319390 +v 0.482507 0.217813 0.286538 +v 0.481701 0.219343 0.285777 +v 0.503939 0.227955 0.281425 +v 0.503121 0.229480 0.280667 +v 0.294482 0.118245 0.320430 +v 0.295769 0.115164 0.320536 +v 0.293175 0.117626 0.320550 +v 0.294452 0.114561 0.320656 +v 0.391098 0.150171 0.307595 +v 0.418950 0.161716 0.302995 +v 0.361653 0.137967 0.312026 +v 0.365328 0.127884 0.312026 +v 0.395336 0.138629 0.307595 +v 0.423722 0.148792 0.302995 +v 0.291819 0.116985 0.320629 +v 0.293086 0.113935 0.320735 +v 0.290433 0.116329 0.320636 +v 0.291687 0.113294 0.320742 +v 0.330573 0.125086 0.316273 +v 0.306323 0.115035 0.319426 +v 0.308939 0.107694 0.319426 +v 0.333654 0.116543 0.316273 +v 0.297365 0.111322 0.320571 +v 0.296027 0.110768 0.320692 +v 0.298446 0.103937 0.320692 +v 0.299810 0.104425 0.320571 +v 0.289035 0.115667 0.320543 +v 0.290275 0.112647 0.320648 +v 0.287643 0.115009 0.320323 +v 0.288867 0.112001 0.320426 +v 0.294638 0.110192 0.320770 +v 0.293216 0.109602 0.320777 +v 0.295581 0.102911 0.320777 +v 0.297031 0.103430 0.320770 +v 0.303644 0.092182 0.320571 +v 0.312923 0.094999 0.319426 +v 0.302258 0.091761 0.320692 +v 0.306397 0.076819 0.320692 +v 0.307801 0.077172 0.320571 +v 0.317208 0.079530 0.319426 +v 0.300819 0.091324 0.320770 +v 0.299346 0.090877 0.320777 +v 0.303445 0.076079 0.320777 +v 0.304938 0.076454 0.320770 +v 0.291779 0.109007 0.320684 +v 0.290346 0.108413 0.320461 +v 0.292657 0.101864 0.320461 +v 0.294117 0.102387 0.320684 +v 0.338042 0.102624 0.316273 +v 0.370234 0.112397 0.312026 +v 0.342670 0.085914 0.316273 +v 0.375303 0.094096 0.312026 +v 0.297858 0.090425 0.320684 +v 0.296374 0.089975 0.320461 +v 0.300432 0.075324 0.320461 +v 0.301937 0.075701 0.320684 +v 0.294913 0.089531 0.320079 +v 0.293494 0.089100 0.319510 +v 0.298951 0.074953 0.320079 +v 0.291219 0.101349 0.320079 +v 0.286275 0.114361 0.319946 +v 0.287481 0.111366 0.320046 +v 0.281917 0.118181 0.318140 +v 0.288936 0.107828 0.320079 +v 0.292135 0.088688 0.318725 +v 0.302268 0.060193 0.320079 +v 0.303766 0.060492 0.320461 +v 0.304858 0.045289 0.320079 +v 0.306369 0.045514 0.320461 +v 0.305287 0.060795 0.320684 +v 0.306812 0.061098 0.320777 +v 0.307903 0.045742 0.320684 +v 0.309441 0.045970 0.320777 +v 0.306713 0.030276 0.320079 +v 0.308233 0.030426 0.320461 +v 0.307829 0.015190 0.320079 +v 0.309355 0.015265 0.320461 +v 0.308322 0.061399 0.320770 +v 0.309797 0.061693 0.320692 +v 0.310964 0.046196 0.320770 +v 0.312451 0.046417 0.320692 +v 0.309776 0.030578 0.320684 +v 0.311324 0.030731 0.320777 +v 0.310904 0.015342 0.320684 +v 0.312457 0.015418 0.320777 +v 0.308204 0.000067 0.320079 +v 0.309731 0.000068 0.320461 +v 0.307836 -0.015056 0.320079 +v 0.309361 -0.015130 0.320461 +v 0.311217 0.061975 0.320571 +v 0.320728 0.063869 0.319426 +v 0.313883 0.046630 0.320571 +v 0.323475 0.048055 0.319426 +v 0.312856 0.030882 0.320770 +v 0.314352 0.031030 0.320692 +v 0.313994 0.015494 0.320770 +v 0.315496 0.015568 0.320692 +v 0.311282 0.000068 0.320684 +v 0.312837 0.000068 0.320777 +v 0.310910 -0.015206 0.320684 +v 0.312463 -0.015282 0.320777 +v 0.306726 -0.030142 0.320079 +v 0.308246 -0.030292 0.320461 +v 0.304878 -0.045156 0.320079 +v 0.306388 -0.045380 0.320461 +v 0.302295 -0.060062 0.320079 +v 0.303792 -0.060359 0.320461 +v 0.309789 -0.030443 0.320684 +v 0.311337 -0.030595 0.320777 +v 0.307923 -0.045607 0.320684 +v 0.309461 -0.045835 0.320777 +v 0.314376 0.000069 0.320770 +v 0.315880 0.000069 0.320692 +v 0.314001 -0.015357 0.320770 +v 0.315503 -0.015431 0.320692 +v 0.305314 -0.060661 0.320684 +v 0.306839 -0.060965 0.320777 +v 0.312869 -0.030746 0.320770 +v 0.314365 -0.030893 0.320692 +v 0.310984 -0.046061 0.320770 +v 0.312471 -0.046281 0.320692 +v 0.308349 -0.061264 0.320770 +v 0.309824 -0.061557 0.320692 +v 0.304972 -0.076321 0.320770 +v 0.306430 -0.076686 0.320692 +v 0.300859 -0.091193 0.320770 +v 0.302298 -0.091629 0.320692 +v 0.315807 -0.031035 0.320571 +v 0.325457 -0.031983 0.319426 +v 0.326635 -0.015975 0.319426 +v 0.316949 -0.015501 0.320571 +v 0.313904 -0.046493 0.320571 +v 0.323496 -0.047914 0.319426 +v 0.303684 -0.092049 0.320571 +v 0.312964 -0.094862 0.319426 +v 0.317242 -0.079392 0.319426 +v 0.307835 -0.077037 0.320571 +v 0.311244 -0.061840 0.320571 +v 0.320755 -0.063729 0.319426 +v 0.338086 -0.102477 0.316273 +v 0.370283 -0.112236 0.312026 +v 0.375344 -0.093932 0.312026 +v 0.342708 -0.085764 0.316273 +v 0.333705 -0.116398 0.316273 +v 0.365384 -0.127725 0.312026 +v 0.346503 -0.068845 0.316273 +v 0.379501 -0.075401 0.312026 +v 0.382744 -0.056689 0.312026 +v 0.349464 -0.051760 0.316273 +v 0.351582 -0.034550 0.316273 +v 0.385064 -0.037841 0.312026 +v 0.386457 -0.018901 0.312026 +v 0.352854 -0.017258 0.316273 +v 0.317328 0.000069 0.320571 +v 0.327025 0.000071 0.319426 +v 0.326628 0.016118 0.319426 +v 0.316943 0.015640 0.320571 +v 0.353276 0.000077 0.316273 +v 0.386919 0.000084 0.312026 +v 0.386449 0.019069 0.312026 +v 0.352847 0.017411 0.316273 +v 0.315793 0.031172 0.320571 +v 0.325443 0.032125 0.319426 +v 0.351567 0.034704 0.316273 +v 0.385048 0.038009 0.312026 +v 0.382719 0.056856 0.312026 +v 0.349441 0.051913 0.316273 +v 0.346473 0.068996 0.316273 +v 0.379468 0.075567 0.312026 +v 0.416767 0.041140 0.307595 +v 0.446772 0.044102 0.302995 +v 0.444070 0.065971 0.302995 +v 0.414247 0.061540 0.307595 +v 0.418284 0.020640 0.307595 +v 0.448398 0.022126 0.302995 +v 0.400733 0.121657 0.307595 +v 0.429583 0.130415 0.302995 +v 0.406220 0.101847 0.307595 +v 0.435465 0.109179 0.302995 +v 0.410728 0.081792 0.307595 +v 0.440298 0.087680 0.302995 +v 0.445253 0.172617 0.298242 +v 0.470048 0.182894 0.293351 +v 0.450528 0.158390 0.298242 +v 0.475797 0.167438 0.293351 +v 0.456828 0.138686 0.298242 +v 0.482511 0.146483 0.293351 +v 0.463083 0.116104 0.298242 +v 0.489118 0.122631 0.293351 +v 0.468222 0.093241 0.298242 +v 0.494545 0.098483 0.293351 +v 0.472233 0.070154 0.298242 +v 0.498782 0.074099 0.293351 +v 0.418793 0.000091 0.307595 +v 0.448943 0.000098 0.302995 +v 0.418293 -0.020458 0.307595 +v 0.448407 -0.021931 0.302995 +v 0.475107 0.046899 0.298242 +v 0.501817 0.049535 0.293351 +v 0.476836 0.023530 0.298242 +v 0.503643 0.024853 0.293351 +v 0.416785 -0.040958 0.307595 +v 0.446791 -0.043907 0.302995 +v 0.414274 -0.061359 0.307595 +v 0.444099 -0.065777 0.302995 +v 0.477416 0.000104 0.298242 +v 0.504256 0.000110 0.293351 +v 0.476846 -0.023322 0.298242 +v 0.503654 -0.024633 0.293351 +v 0.410764 -0.081613 0.307595 +v 0.440336 -0.087488 0.302995 +v 0.406265 -0.101670 0.307595 +v 0.435513 -0.108989 0.302995 +v 0.475127 -0.046691 0.298242 +v 0.501839 -0.049316 0.293351 +v 0.472264 -0.069948 0.298242 +v 0.498815 -0.073881 0.293351 +v 0.526949 0.052016 0.288338 +v 0.550547 0.054345 0.283218 +v 0.547217 0.081294 0.283218 +v 0.523762 0.077810 0.288338 +v 0.528867 0.026097 0.288338 +v 0.552551 0.027266 0.283218 +v 0.529510 0.000116 0.288338 +v 0.553223 0.000121 0.283218 +v 0.528878 -0.025866 0.288338 +v 0.552563 -0.027025 0.283218 +v 0.519313 0.103416 0.288338 +v 0.542569 0.108047 0.283218 +v 0.536614 0.134539 0.283218 +v 0.513613 0.128773 0.288338 +v 0.468263 -0.093037 0.298242 +v 0.494588 -0.098268 0.293351 +v 0.463134 -0.115902 0.298242 +v 0.489171 -0.122418 0.293351 +v 0.506676 0.153819 0.288338 +v 0.529366 0.160708 0.283218 +v 0.521898 0.183944 0.283218 +v 0.499573 0.175951 0.288338 +v 0.400786 -0.121482 0.307595 +v 0.429640 -0.130228 0.302995 +v 0.395396 -0.138456 0.307595 +v 0.423787 -0.148607 0.302995 +v 0.330628 -0.124942 0.316273 +v 0.361713 -0.137810 0.312026 +v 0.391163 -0.150001 0.307595 +v 0.419021 -0.161533 0.302995 +v 0.456889 -0.138487 0.298242 +v 0.482575 -0.146272 0.293351 +v 0.450597 -0.158194 0.298242 +v 0.475870 -0.167230 0.293351 +v 0.439430 -0.186609 0.298103 +v 0.441475 -0.181715 0.298207 +v 0.463723 -0.198092 0.293212 +v 0.465896 -0.192894 0.293316 +v 0.445328 -0.172423 0.298242 +v 0.470128 -0.182689 0.293351 +v 0.486580 -0.208896 0.288200 +v 0.488873 -0.203413 0.288303 +v 0.493461 -0.192348 0.288338 +v 0.499650 -0.175733 0.288338 +v 0.506743 -0.153598 0.288338 +v 0.529436 -0.160477 0.283218 +v 0.536673 -0.134305 0.283218 +v 0.513669 -0.128548 0.288338 +v 0.550699 -0.166921 0.278006 +v 0.558226 -0.139699 0.278006 +v 0.519358 -0.103189 0.288338 +v 0.542616 -0.107810 0.283218 +v 0.547253 -0.081055 0.283218 +v 0.523796 -0.077581 0.288338 +v 0.564408 -0.112140 0.278006 +v 0.584777 -0.116187 0.272718 +v 0.589774 -0.087353 0.272718 +v 0.569230 -0.084310 0.278006 +v 0.603770 -0.119961 0.267369 +v 0.621431 -0.123470 0.261974 +v 0.626741 -0.092829 0.261974 +v 0.608930 -0.090191 0.267369 +v 0.526971 -0.051786 0.288338 +v 0.550570 -0.054105 0.283218 +v 0.572681 -0.056278 0.278006 +v 0.593349 -0.058309 0.272718 +v 0.595497 -0.029125 0.272718 +v 0.574754 -0.028110 0.278006 +v 0.575440 0.000126 0.278006 +v 0.596209 0.000130 0.272718 +v 0.595483 0.029384 0.272718 +v 0.574740 0.028361 0.278006 +v 0.612621 -0.060203 0.267369 +v 0.630541 -0.061964 0.261974 +v 0.632822 -0.030950 0.261974 +v 0.614837 -0.030071 0.267369 +v 0.615572 0.000134 0.267369 +v 0.633578 0.000138 0.261974 +v 0.632809 0.031226 0.261974 +v 0.614824 0.030339 0.267369 +v 0.572657 0.056528 0.278006 +v 0.593324 0.058568 0.272718 +v 0.589737 0.087611 0.272718 +v 0.569193 0.084559 0.278006 +v 0.612595 0.060470 0.267369 +v 0.630514 0.062239 0.261974 +v 0.626701 0.093102 0.261974 +v 0.608890 0.090456 0.267369 +v 0.564359 0.112386 0.278006 +v 0.584727 0.116442 0.272718 +v 0.578310 0.144993 0.272718 +v 0.558165 0.139943 0.278006 +v 0.603718 0.120224 0.267369 +v 0.621377 0.123741 0.261974 +v 0.614557 0.154081 0.261974 +v 0.597093 0.149702 0.267369 +v 0.550626 0.167162 0.278006 +v 0.570498 0.173195 0.272718 +v 0.562368 0.198435 0.272718 +v 0.542815 0.191434 0.278006 +v 0.589028 0.178820 0.267369 +v 0.606256 0.184051 0.261974 +v 0.597551 0.211032 0.261974 +v 0.580598 0.204962 0.267369 +v 0.637749 0.127001 0.256549 +v 0.653854 0.130208 0.250663 +v 0.646678 0.162135 0.250663 +v 0.630750 0.158141 0.256549 +v 0.643214 0.095555 0.256549 +v 0.659456 0.097968 0.250663 +v 0.622230 0.188900 0.256549 +v 0.637943 0.193670 0.250663 +v 0.628726 0.222195 0.250663 +v 0.613267 0.216660 0.256549 +v 0.572882 0.225516 0.267369 +v 0.554994 0.218101 0.272718 +v 0.589516 0.232410 0.261974 +v 0.583452 0.247013 0.261940 +v 0.567073 0.239507 0.267335 +v 0.549458 0.231433 0.272684 +v 0.647127 0.063879 0.256549 +v 0.663468 0.065492 0.250663 +v 0.649482 0.032049 0.256549 +v 0.665883 0.032858 0.250663 +v 0.535808 0.210149 0.278006 +v 0.515283 0.201643 0.283218 +v 0.530566 0.222775 0.277972 +v 0.510355 0.213512 0.283183 +v 0.650272 0.000142 0.256549 +v 0.666693 0.000145 0.250663 +v 0.649496 -0.031766 0.256549 +v 0.665897 -0.032568 0.250663 +v 0.493377 0.192563 0.288338 +v 0.488784 0.203626 0.288303 +v 0.486489 0.209109 0.288200 +v 0.507946 0.219263 0.283080 +v 0.528051 0.228777 0.277869 +v 0.526935 0.231337 0.277663 +v 0.546843 0.237670 0.272581 +v 0.545724 0.240229 0.272376 +v 0.564365 0.245962 0.267233 +v 0.563242 0.248519 0.267029 +v 0.580657 0.253672 0.261839 +v 0.525890 0.233637 0.277319 +v 0.524917 0.235677 0.276839 +v 0.544673 0.242526 0.272035 +v 0.562185 0.250813 0.266690 +v 0.524016 0.237456 0.276221 +v 0.523185 0.238975 0.275466 +v 0.522427 0.240234 0.274574 +v 0.502377 0.230746 0.279770 +v 0.480971 0.220616 0.284877 +v 0.480317 0.221630 0.283839 +v 0.479739 0.222386 0.282663 +v 0.456968 0.211610 0.287657 +v 0.432757 0.200152 0.292532 +v 0.432293 0.200668 0.291209 +v 0.379072 0.175923 0.299060 +v 0.378226 0.177318 0.297906 +v 0.349516 0.163672 0.302320 +v 0.350326 0.162320 0.303476 +v 0.406252 0.188786 0.294479 +v 0.405369 0.190219 0.293327 +v 0.319971 0.147955 0.307711 +v 0.319198 0.149261 0.306553 +v 0.595761 0.260820 0.256415 +v 0.598637 0.253973 0.256515 +v 0.613573 0.260819 0.250630 +v 0.610618 0.267851 0.250531 +v 0.604937 0.238802 0.256549 +v 0.620106 0.245089 0.250663 +v 0.626169 0.275210 0.243757 +v 0.629208 0.267984 0.243855 +v 0.635984 0.251670 0.243887 +v 0.651320 0.258025 0.236703 +v 0.644908 0.227989 0.243887 +v 0.660536 0.233584 0.236703 +v 0.664857 0.263637 0.229591 +v 0.674333 0.238525 0.229591 +v 0.654389 0.198663 0.243887 +v 0.670273 0.203485 0.236703 +v 0.663350 0.166315 0.243887 +v 0.679450 0.170351 0.236703 +v 0.684296 0.207742 0.229591 +v 0.696562 0.211466 0.222589 +v 0.693666 0.173915 0.229591 +v 0.706099 0.177033 0.222589 +v 0.670711 0.133565 0.243887 +v 0.686990 0.136807 0.236703 +v 0.676457 0.100494 0.243887 +v 0.692876 0.102933 0.236703 +v 0.707172 0.214687 0.215731 +v 0.716231 0.217437 0.209055 +v 0.716855 0.179729 0.215731 +v 0.726038 0.182032 0.209055 +v 0.701363 0.139669 0.229591 +v 0.713935 0.142173 0.222589 +v 0.707372 0.105087 0.229591 +v 0.720051 0.106970 0.222589 +v 0.680573 0.067181 0.243887 +v 0.697092 0.068811 0.236703 +v 0.683050 0.033705 0.243887 +v 0.699629 0.034524 0.236703 +v 0.723841 0.219747 0.202597 +v 0.730103 0.221649 0.196391 +v 0.733752 0.183966 0.202597 +v 0.740100 0.185557 0.196391 +v 0.724810 0.144338 0.215731 +v 0.734095 0.146187 0.209055 +v 0.731020 0.108600 0.215731 +v 0.740384 0.109991 0.209055 +v 0.711676 0.070251 0.229591 +v 0.724432 0.071510 0.222589 +v 0.714266 0.035246 0.229591 +v 0.727069 0.035878 0.222589 +v 0.735122 0.223172 0.190475 +v 0.745188 0.186833 0.190476 +v 0.741894 0.147740 0.202597 +v 0.748313 0.149019 0.196391 +v 0.748250 0.111159 0.202597 +v 0.753457 0.150043 0.190476 +v 0.752803 0.074311 0.202597 +v 0.744889 0.073529 0.209055 +v 0.735468 0.072599 0.215731 +v 0.738145 0.036424 0.215731 +v 0.739042 0.000161 0.215731 +v 0.727953 0.000159 0.222589 +v 0.711706 -0.069940 0.229591 +v 0.697122 -0.068507 0.236703 +v 0.714281 -0.034934 0.229591 +v 0.699644 -0.034218 0.236703 +v 0.715135 0.000156 0.229591 +v 0.700480 0.000153 0.236703 +v 0.680602 -0.066884 0.243887 +v 0.663497 -0.065203 0.250663 +v 0.683064 -0.033407 0.243887 +v 0.637805 -0.126723 0.256549 +v 0.643255 -0.095275 0.256549 +v 0.683880 0.000149 0.243887 +v 0.647154 -0.063597 0.256549 +v 0.280745 0.128215 0.313930 +v 0.281149 0.129142 0.312819 +v 0.281724 0.129855 0.311591 +v 0.281681 0.131430 0.310626 +v 0.282069 0.130018 0.311775 +v 0.281898 0.131533 0.310729 +v 0.282506 0.130225 0.311932 +v 0.282212 0.131682 0.310830 +v 0.283061 0.130488 0.312055 +v 0.282655 0.131893 0.310918 +v 0.283760 0.130819 0.312139 +v 0.283259 0.132180 0.310984 +v 0.281781 -0.129732 0.311591 +v 0.281205 -0.129019 0.312819 +v 0.281738 -0.131307 0.310626 +v 0.280801 -0.128093 0.313930 +v 0.695790 0.325805 0.176068 +v 0.693890 0.327354 0.175583 +v 0.697235 0.326489 0.172222 +v 0.695287 0.328017 0.171870 +v 0.698455 0.327066 0.162776 +v 0.696450 0.328570 0.162729 +v 0.696354 0.328525 0.165551 +v 0.698352 0.327017 0.165666 +v 0.699947 0.327331 0.162836 +v 0.699937 0.327326 0.160000 +v 0.698442 0.327060 0.160000 +v 0.696435 0.328563 0.160000 +v 0.701415 0.327290 0.162890 +v 0.702856 0.326943 0.162939 +v 0.702849 0.326939 0.160000 +v 0.701406 0.327286 0.160000 +v 0.704272 0.326289 0.162982 +v 0.705662 0.325329 0.163019 +v 0.705658 0.325327 0.160000 +v 0.704266 0.326287 0.160000 +v 0.707026 0.324063 0.163050 +v 0.708364 0.322490 0.163076 +v 0.708363 0.322490 0.160000 +v 0.707023 0.324062 0.160000 +v 0.709677 0.320612 0.163096 +v 0.710965 0.318427 0.163111 +v 0.710964 0.318426 0.160000 +v 0.709676 0.320611 0.160000 +v 0.712226 0.315935 0.163119 +v 0.715772 0.307657 0.163123 +v 0.715772 0.307657 0.160000 +v 0.712226 0.315935 0.160000 +v 0.723910 0.288113 0.163125 +v 0.723910 0.288113 0.160000 +v 0.734517 0.260073 0.163125 +v 0.734517 0.260073 0.160000 +v 0.745464 0.226312 0.163125 +v 0.745464 0.226312 0.160000 +v 0.755671 0.189461 0.163125 +v 0.755671 0.189461 0.160000 +v 0.764057 0.152154 0.163125 +v 0.764057 0.152154 0.160000 +v 0.770603 0.114480 0.163125 +v 0.770603 0.114480 0.160000 +v 0.775292 0.076530 0.163125 +v 0.775292 0.076530 0.160000 +v 0.778113 0.038396 0.163125 +v 0.778113 0.038396 0.160000 +v 0.779060 0.000170 0.163125 +v 0.779060 0.000170 0.160000 +v 0.778130 -0.038057 0.163125 +v 0.778130 -0.038057 0.160000 +v 0.775325 -0.076192 0.163125 +v 0.775325 -0.076192 0.160000 +v 0.770653 -0.114144 0.163125 +v 0.770653 -0.114144 0.160000 +v 0.764123 -0.151820 0.163125 +v 0.764123 -0.151820 0.160000 +v 0.755754 -0.189131 0.163125 +v 0.755754 -0.189131 0.160000 +v 0.745563 -0.225987 0.163125 +v 0.745563 -0.225987 0.160000 +v 0.734630 -0.259753 0.163125 +v 0.734630 -0.259753 0.160000 +v 0.724036 -0.287797 0.163125 +v 0.724036 -0.287797 0.160000 +v 0.715906 -0.307345 0.163123 +v 0.715906 -0.307345 0.160000 +v 0.712364 -0.315625 0.163119 +v 0.711104 -0.318116 0.163111 +v 0.711103 -0.318116 0.160000 +v 0.712364 -0.315624 0.160000 +v 0.709817 -0.320302 0.163096 +v 0.708505 -0.322181 0.163076 +v 0.708503 -0.322181 0.160000 +v 0.709816 -0.320302 0.160000 +v 0.707167 -0.323754 0.163051 +v 0.705804 -0.325021 0.163019 +v 0.705800 -0.325019 0.160000 +v 0.707165 -0.323753 0.160000 +v 0.704414 -0.325982 0.162982 +v 0.702998 -0.326636 0.162939 +v 0.702992 -0.326633 0.160000 +v 0.704409 -0.325979 0.160000 +v 0.701557 -0.326984 0.162890 +v 0.700090 -0.327026 0.162836 +v 0.700080 -0.327021 0.160000 +v 0.701549 -0.326980 0.160000 +v 0.701437 -0.326927 0.165944 +v 0.699978 -0.326973 0.165812 +v 0.698597 -0.326761 0.162776 +v 0.696593 -0.328266 0.162729 +v 0.696579 -0.328260 0.160000 +v 0.698585 -0.326755 0.160000 +v 0.698494 -0.326712 0.165666 +v 0.696497 -0.328221 0.165551 +v 0.698160 -0.326554 0.168785 +v 0.699621 -0.326804 0.169068 +v 0.696180 -0.328070 0.168562 +v 0.701060 -0.326749 0.169324 +v 0.431908 0.200927 0.289747 +v 0.430989 0.202396 0.288598 +v 0.698017 0.326859 0.168785 +v 0.696037 0.328374 0.168562 +v 0.706450 -0.318710 0.179363 +v 0.181689 0.751824 0.169324 +v 0.180748 0.750734 0.169068 +v 0.180540 0.749849 0.172670 +v 0.181471 0.750901 0.173076 +v 0.182853 0.752707 0.169553 +v 0.182627 0.751750 0.173439 +v 0.182953 0.753132 0.166062 +v 0.181784 0.752230 0.165944 +v 0.180839 0.751118 0.165812 +v 0.073894 0.299562 0.308918 +v 0.072664 0.300916 0.308388 +v 0.072533 0.300352 0.306899 +v 0.073752 0.298962 0.307355 +v 0.073975 0.298168 0.309592 +v 0.073822 0.297521 0.307936 +v 0.074118 0.298775 0.310991 +v 0.074021 0.300100 0.310203 +v 0.072777 0.301399 0.309585 +v 0.693690 0.346877 0.169756 +v 0.693340 0.345373 0.169553 +v 0.693733 0.345565 0.166062 +v 0.694098 0.347077 0.166166 +v 0.693787 0.348553 0.169931 +v 0.694209 0.348759 0.166257 +v 0.692851 0.348094 0.174037 +v 0.692779 0.346430 0.173759 +v 0.692457 0.344940 0.173439 +v 0.279209 0.140271 0.312139 +v 0.278870 0.140549 0.313610 +v 0.278054 0.140150 0.313502 +v 0.278514 0.139931 0.312055 +v 0.279960 0.139031 0.310984 +v 0.279359 0.138737 0.310918 +v 0.280711 0.139397 0.311013 +v 0.280036 0.140676 0.312176 +v 0.279795 0.141002 0.313656 +v 0.275686 0.138545 0.308918 +v 0.274309 0.138315 0.309592 +v 0.273712 0.138022 0.307936 +v 0.275132 0.138274 0.307355 +v 0.277251 0.137708 0.308388 +v 0.276731 0.137455 0.306899 +v 0.277697 0.137926 0.309585 +v 0.276182 0.138788 0.310203 +v 0.274869 0.138589 0.310991 +v 0.184241 0.753382 0.169756 +v 0.185854 0.753849 0.169931 +v 0.185962 0.754306 0.166257 +v 0.184346 0.753824 0.166166 +v 0.184008 0.752394 0.173759 +v 0.185615 0.752834 0.174037 +v 0.187691 0.754108 0.170079 +v 0.189751 0.754158 0.170200 +v 0.189864 0.754638 0.166395 +v 0.187801 0.754577 0.166333 +v 0.187446 0.753071 0.174271 +v 0.189502 0.753103 0.174463 +v 0.183588 0.750612 0.178186 +v 0.185185 0.751012 0.178568 +v 0.182218 0.750015 0.177745 +v 0.181594 0.747372 0.182484 +v 0.182951 0.747912 0.183038 +v 0.184536 0.748262 0.183518 +v 0.181074 0.749220 0.177245 +v 0.180157 0.748227 0.176686 +v 0.179566 0.745721 0.181154 +v 0.180466 0.746641 0.181856 +v 0.192036 0.754001 0.170295 +v 0.194545 0.753636 0.170362 +v 0.194661 0.754129 0.166479 +v 0.192151 0.754489 0.166444 +v 0.191784 0.752932 0.174613 +v 0.194290 0.752557 0.174720 +v 0.179613 0.743028 0.186936 +v 0.180725 0.743688 0.187670 +v 0.178732 0.742185 0.186116 +v 0.177625 0.737494 0.191516 +v 0.178488 0.738258 0.192433 +v 0.179583 0.738848 0.193254 +v 0.178080 0.741160 0.185209 +v 0.175563 0.740805 0.184497 +v 0.174501 0.736269 0.189706 +v 0.176994 0.736557 0.190502 +v 0.178894 0.744611 0.180378 +v 0.176354 0.744190 0.179769 +v 0.175606 0.730673 0.196200 +v 0.176217 0.731525 0.197301 +v 0.173140 0.730449 0.195335 +v 0.171452 0.723233 0.201327 +v 0.173889 0.723396 0.202247 +v 0.174481 0.724167 0.203419 +v 0.171817 0.714614 0.208589 +v 0.172391 0.715308 0.209818 +v 0.169411 0.714507 0.207623 +v 0.166991 0.704164 0.214173 +v 0.169365 0.704220 0.215176 +v 0.169922 0.704844 0.216452 +v 0.177062 0.732212 0.198297 +v 0.178141 0.732734 0.199189 +v 0.175308 0.724780 0.204479 +v 0.176372 0.725236 0.205428 +v 0.182068 0.744168 0.188317 +v 0.183640 0.744465 0.188878 +v 0.180911 0.739265 0.193978 +v 0.182471 0.739508 0.194605 +v 0.187008 0.751214 0.178892 +v 0.189058 0.751219 0.179157 +v 0.186349 0.748423 0.183925 +v 0.188391 0.748393 0.184257 +v 0.191334 0.751026 0.179363 +v 0.193837 0.750635 0.179510 +v 0.190661 0.748173 0.184516 +v 0.193159 0.747763 0.184701 +v 0.185443 0.744580 0.189353 +v 0.187476 0.744513 0.189742 +v 0.184262 0.739577 0.195136 +v 0.186287 0.739473 0.195571 +v 0.179454 0.733089 0.199975 +v 0.181001 0.733280 0.200657 +v 0.177671 0.725534 0.206265 +v 0.179207 0.725674 0.206991 +v 0.197278 0.753063 0.170403 +v 0.205951 0.750669 0.170423 +v 0.206074 0.751166 0.166510 +v 0.197395 0.753559 0.166500 +v 0.197022 0.751978 0.174784 +v 0.205681 0.749585 0.174816 +v 0.196566 0.750046 0.179598 +v 0.205200 0.747655 0.179642 +v 0.195886 0.747163 0.184811 +v 0.204484 0.744776 0.184867 +v 0.189739 0.744265 0.190044 +v 0.192233 0.743834 0.190260 +v 0.188543 0.739196 0.195909 +v 0.191032 0.738744 0.196150 +v 0.226278 0.744843 0.170430 +v 0.226420 0.745334 0.166514 +v 0.225969 0.743768 0.174826 +v 0.254415 0.734591 0.174826 +v 0.254777 0.735648 0.170430 +v 0.254943 0.736133 0.166514 +v 0.182783 0.733305 0.201233 +v 0.184798 0.733164 0.201705 +v 0.180978 0.725656 0.207604 +v 0.182985 0.725481 0.208107 +v 0.173202 0.715853 0.210931 +v 0.174251 0.716247 0.211926 +v 0.170718 0.705324 0.217606 +v 0.171753 0.705660 0.218639 +v 0.166507 0.692108 0.221957 +v 0.164169 0.692099 0.220925 +v 0.160919 0.678204 0.227835 +v 0.163220 0.678173 0.228891 +v 0.167049 0.692667 0.223272 +v 0.163747 0.678672 0.230236 +v 0.159476 0.662307 0.235933 +v 0.159991 0.662753 0.237302 +v 0.157216 0.662373 0.234858 +v 0.153369 0.645926 0.241506 +v 0.155589 0.645831 0.242597 +v 0.156093 0.646230 0.243985 +v 0.167831 0.693088 0.224460 +v 0.168854 0.693372 0.225524 +v 0.164517 0.679040 0.231452 +v 0.165528 0.679275 0.232541 +v 0.175538 0.716490 0.212804 +v 0.177062 0.716583 0.213565 +v 0.173028 0.705853 0.219551 +v 0.174542 0.705902 0.220341 +v 0.187048 0.732858 0.202072 +v 0.189532 0.732387 0.202334 +v 0.185229 0.725148 0.208497 +v 0.187708 0.724657 0.208776 +v 0.178824 0.716525 0.214209 +v 0.180823 0.716317 0.214736 +v 0.176295 0.705807 0.221009 +v 0.178288 0.705569 0.221556 +v 0.170118 0.693518 0.226463 +v 0.171622 0.693526 0.227276 +v 0.166782 0.679379 0.233501 +v 0.168278 0.679350 0.234334 +v 0.160749 0.663072 0.238541 +v 0.161751 0.663265 0.239650 +v 0.156841 0.646506 0.245241 +v 0.157834 0.646661 0.246365 +v 0.173367 0.693397 0.227964 +v 0.175353 0.693131 0.228528 +v 0.170015 0.679190 0.235038 +v 0.171995 0.678898 0.235614 +v 0.162996 0.663330 0.240628 +v 0.164484 0.663269 0.241475 +v 0.159070 0.646693 0.247357 +v 0.160552 0.646603 0.248217 +v 0.153103 0.630663 0.251067 +v 0.154088 0.630785 0.252204 +v 0.152364 0.630423 0.249797 +v 0.148566 0.614327 0.255164 +v 0.149298 0.614535 0.256445 +v 0.150276 0.614627 0.257591 +v 0.151869 0.630064 0.248393 +v 0.149686 0.630185 0.247290 +v 0.145934 0.614145 0.252636 +v 0.148080 0.614004 0.253748 +v 0.143984 0.596643 0.259085 +v 0.144463 0.596934 0.260511 +v 0.141878 0.596802 0.257964 +v 0.137507 0.578117 0.263258 +v 0.139572 0.577943 0.264385 +v 0.140044 0.578205 0.265819 +v 0.134835 0.557865 0.269631 +v 0.135300 0.558100 0.271073 +v 0.132813 0.558052 0.268498 +v 0.127787 0.536565 0.273668 +v 0.129763 0.536366 0.274806 +v 0.130222 0.536574 0.276254 +v 0.145188 0.597113 0.261801 +v 0.146160 0.597180 0.262955 +v 0.140763 0.578358 0.267117 +v 0.141729 0.578401 0.268278 +v 0.155318 0.630788 0.253206 +v 0.156793 0.630673 0.254075 +v 0.151500 0.614605 0.258603 +v 0.152970 0.614468 0.259479 +v 0.124345 0.513402 0.279894 +v 0.124798 0.513586 0.281348 +v 0.122417 0.513609 0.278752 +v 0.116694 0.489142 0.283734 +v 0.118571 0.488927 0.284880 +v 0.119018 0.489088 0.286338 +v 0.136014 0.558227 0.272377 +v 0.136975 0.558248 0.273544 +v 0.130930 0.536678 0.277564 +v 0.131886 0.536680 0.278736 +v 0.147378 0.597135 0.263974 +v 0.148844 0.596978 0.264856 +v 0.142943 0.578335 0.269303 +v 0.144404 0.578160 0.270191 +v 0.166215 0.663081 0.242192 +v 0.168189 0.662766 0.242779 +v 0.162277 0.646390 0.248944 +v 0.164247 0.646056 0.249539 +v 0.158514 0.630439 0.254811 +v 0.160479 0.630087 0.255412 +v 0.154686 0.614216 0.260221 +v 0.156648 0.613848 0.260828 +v 0.150556 0.596709 0.265603 +v 0.152515 0.596328 0.266214 +v 0.146112 0.577876 0.270942 +v 0.148068 0.577482 0.271557 +v 0.170407 0.662325 0.243235 +v 0.172868 0.661757 0.243561 +v 0.176681 0.677919 0.236383 +v 0.174217 0.678475 0.236063 +v 0.166461 0.645599 0.250002 +v 0.168919 0.645019 0.250333 +v 0.162690 0.629616 0.255880 +v 0.165146 0.629027 0.256214 +v 0.158856 0.613366 0.261300 +v 0.161310 0.612769 0.261637 +v 0.177580 0.692727 0.228966 +v 0.180047 0.692186 0.229278 +v 0.182990 0.704661 0.222285 +v 0.180519 0.705187 0.221981 +v 0.183061 0.715959 0.215146 +v 0.185536 0.715450 0.215439 +v 0.182755 0.691507 0.229466 +v 0.190669 0.689275 0.229560 +v 0.193767 0.701721 0.222558 +v 0.185701 0.703992 0.222467 +v 0.179387 0.677232 0.236575 +v 0.187127 0.675046 0.236671 +v 0.188248 0.714790 0.215614 +v 0.196447 0.712488 0.215702 +v 0.198734 0.721679 0.209027 +v 0.190423 0.724008 0.208944 +v 0.192250 0.731750 0.202492 +v 0.200656 0.729399 0.202570 +v 0.202238 0.735752 0.196367 +v 0.193752 0.738120 0.196295 +v 0.194956 0.743222 0.190389 +v 0.203505 0.740843 0.190454 +v 0.220206 0.723785 0.202597 +v 0.222019 0.730074 0.196391 +v 0.218002 0.716144 0.209055 +v 0.245102 0.707391 0.209055 +v 0.247678 0.714915 0.202597 +v 0.249798 0.721107 0.196391 +v 0.225418 0.741858 0.179657 +v 0.224596 0.739007 0.184885 +v 0.252810 0.729902 0.184885 +v 0.253771 0.732709 0.179657 +v 0.223473 0.735114 0.190475 +v 0.251497 0.726069 0.190475 +v 0.215379 0.707048 0.215731 +v 0.212306 0.696393 0.222589 +v 0.238444 0.687943 0.222589 +v 0.242036 0.698434 0.215731 +v 0.287960 0.723153 0.170430 +v 0.288150 0.723628 0.166514 +v 0.287547 0.722114 0.174826 +v 0.322633 0.707136 0.174826 +v 0.323097 0.708153 0.170430 +v 0.323310 0.708618 0.166514 +v 0.357455 0.691445 0.170430 +v 0.357690 0.691900 0.166514 +v 0.356942 0.690452 0.174826 +v 0.390391 0.672107 0.174826 +v 0.390953 0.673074 0.170430 +v 0.391210 0.673516 0.166514 +v 0.286811 0.720267 0.179657 +v 0.285714 0.717510 0.184885 +v 0.320576 0.702627 0.184885 +v 0.321808 0.705326 0.179657 +v 0.423508 0.653079 0.170430 +v 0.423786 0.653509 0.166514 +v 0.422899 0.652141 0.174826 +v 0.454389 0.630605 0.174826 +v 0.455043 0.631512 0.170430 +v 0.455342 0.631928 0.166514 +v 0.485481 0.608423 0.170430 +v 0.485801 0.608824 0.166514 +v 0.484784 0.607550 0.174826 +v 0.514012 0.583031 0.174826 +v 0.514751 0.583870 0.170430 +v 0.515090 0.584254 0.166514 +v 0.356029 0.688686 0.179657 +v 0.354666 0.686050 0.184885 +v 0.387902 0.667822 0.184885 +v 0.389392 0.670387 0.179657 +v 0.421817 0.650473 0.179657 +v 0.420203 0.647983 0.184885 +v 0.451493 0.626585 0.184885 +v 0.453227 0.628992 0.179657 +v 0.483544 0.605995 0.179657 +v 0.481693 0.603676 0.184885 +v 0.510735 0.579314 0.184885 +v 0.512697 0.581539 0.179657 +v 0.417999 0.644584 0.190476 +v 0.415145 0.640183 0.196391 +v 0.446057 0.619042 0.196391 +v 0.449124 0.623297 0.190476 +v 0.385867 0.664318 0.190476 +v 0.383233 0.659783 0.196391 +v 0.479166 0.600509 0.190476 +v 0.475895 0.596409 0.196391 +v 0.504586 0.572340 0.196391 +v 0.508055 0.576274 0.190476 +v 0.542780 0.557908 0.170430 +v 0.543136 0.558275 0.166514 +v 0.542000 0.557107 0.174826 +v 0.568683 0.529842 0.174826 +v 0.569501 0.530604 0.170430 +v 0.569875 0.530954 0.166514 +v 0.594850 0.502021 0.170430 +v 0.595241 0.502351 0.166514 +v 0.593995 0.501300 0.174826 +v 0.617878 0.471551 0.174826 +v 0.618767 0.472229 0.170430 +v 0.619173 0.472539 0.166514 +v 0.540612 0.555682 0.179657 +v 0.538545 0.553555 0.184885 +v 0.565058 0.526465 0.184885 +v 0.567228 0.528486 0.179657 +v 0.641192 0.441298 0.170430 +v 0.641614 0.441588 0.166514 +v 0.640271 0.440664 0.174826 +v 0.659791 0.411128 0.174826 +v 0.660742 0.411716 0.170430 +v 0.661177 0.411985 0.166514 +v 0.592476 0.500017 0.179657 +v 0.590209 0.498103 0.184885 +v 0.613939 0.468544 0.184885 +v 0.616297 0.470344 0.179657 +v 0.676033 0.385970 0.170430 +v 0.676481 0.386217 0.166514 +v 0.675054 0.385429 0.174826 +v 0.685229 0.366938 0.174816 +v 0.686226 0.367442 0.170423 +v 0.686683 0.367673 0.166510 +v 0.638633 0.439537 0.179657 +v 0.636189 0.437855 0.184885 +v 0.655576 0.408522 0.184885 +v 0.658100 0.410083 0.179657 +v 0.690485 0.359517 0.170403 +v 0.691651 0.356980 0.170362 +v 0.692106 0.357202 0.166479 +v 0.690944 0.359742 0.166500 +v 0.689484 0.359027 0.174784 +v 0.690655 0.356492 0.174720 +v 0.673313 0.384468 0.179657 +v 0.670716 0.383033 0.184885 +v 0.680806 0.364704 0.184867 +v 0.683454 0.366041 0.179642 +v 0.687702 0.358153 0.179598 +v 0.688881 0.355623 0.179510 +v 0.685041 0.356850 0.184812 +v 0.686232 0.354325 0.184701 +v 0.692564 0.354614 0.170295 +v 0.693224 0.352421 0.170200 +v 0.693667 0.352638 0.166396 +v 0.693014 0.354835 0.166444 +v 0.691577 0.354131 0.174613 +v 0.692251 0.351945 0.174464 +v 0.693632 0.350401 0.170079 +v 0.694065 0.350613 0.166333 +v 0.692676 0.349932 0.174271 +v 0.690963 0.349093 0.178892 +v 0.691170 0.347270 0.178569 +v 0.690512 0.351093 0.179157 +v 0.687904 0.349815 0.184257 +v 0.688387 0.347831 0.183925 +v 0.688633 0.346027 0.183519 +v 0.681405 0.355069 0.190389 +v 0.682607 0.352549 0.190260 +v 0.677188 0.362876 0.190454 +v 0.672506 0.360511 0.196367 +v 0.676697 0.352762 0.196295 +v 0.677911 0.350248 0.196150 +v 0.667169 0.381074 0.190476 +v 0.662578 0.378538 0.196391 +v 0.652129 0.406392 0.190476 +v 0.647668 0.403634 0.196391 +v 0.683580 0.350213 0.190044 +v 0.684325 0.348062 0.189742 +v 0.687186 0.351980 0.184516 +v 0.678903 0.347922 0.195909 +v 0.679674 0.345783 0.195571 +v 0.632851 0.435558 0.190476 +v 0.628531 0.432584 0.196391 +v 0.610717 0.466086 0.190476 +v 0.606548 0.462904 0.196391 +v 0.670820 0.349883 0.202492 +v 0.672045 0.347374 0.202334 +v 0.666662 0.357558 0.202570 +v 0.659561 0.353971 0.209027 +v 0.663677 0.346384 0.208944 +v 0.664912 0.343880 0.208776 +v 0.656849 0.375374 0.202597 +v 0.649888 0.371529 0.209055 +v 0.642101 0.400192 0.202597 +v 0.635337 0.396010 0.209055 +v 0.587112 0.495491 0.190476 +v 0.583103 0.492108 0.196391 +v 0.562093 0.523701 0.190476 +v 0.558256 0.520127 0.196391 +v 0.623139 0.428873 0.202597 +v 0.616588 0.424365 0.209055 +v 0.601345 0.458933 0.202597 +v 0.595024 0.454109 0.209055 +v 0.535719 0.550651 0.190476 +v 0.532062 0.546892 0.196391 +v 0.578102 0.487887 0.202597 +v 0.572025 0.482758 0.209055 +v 0.553466 0.515665 0.202597 +v 0.547649 0.510243 0.209055 +v 0.527498 0.542201 0.202597 +v 0.521952 0.536501 0.209055 +v 0.500258 0.567431 0.202597 +v 0.494999 0.561465 0.209055 +v 0.471813 0.591293 0.202597 +v 0.466853 0.585077 0.209055 +v 0.442231 0.613732 0.202597 +v 0.437582 0.607280 0.209055 +v 0.564790 0.476652 0.215731 +v 0.556316 0.469500 0.222589 +v 0.578683 0.441637 0.222589 +v 0.587498 0.448365 0.215731 +v 0.540722 0.503790 0.215731 +v 0.532609 0.496232 0.222589 +v 0.515351 0.529715 0.215731 +v 0.507618 0.521767 0.222589 +v 0.488738 0.554365 0.215731 +v 0.481405 0.546046 0.222589 +v 0.608790 0.418997 0.215731 +v 0.599655 0.412710 0.222589 +v 0.617853 0.385201 0.222589 +v 0.627284 0.391032 0.215731 +v 0.641600 0.366952 0.215731 +v 0.631894 0.361591 0.222589 +v 0.641204 0.344697 0.222558 +v 0.651107 0.349700 0.215702 +v 0.589096 0.405443 0.229591 +v 0.577025 0.397135 0.236703 +v 0.594485 0.370754 0.236703 +v 0.606949 0.378461 0.229591 +v 0.568493 0.433861 0.229591 +v 0.556843 0.424970 0.236703 +v 0.655172 0.342217 0.215614 +v 0.656417 0.339719 0.215439 +v 0.645208 0.337336 0.222467 +v 0.646462 0.334842 0.222285 +v 0.620673 0.355394 0.229591 +v 0.607844 0.348308 0.236703 +v 0.616668 0.332302 0.236671 +v 0.629756 0.338914 0.229560 +v 0.633689 0.331693 0.229466 +v 0.634952 0.329203 0.229278 +v 0.620517 0.325240 0.236575 +v 0.621789 0.322754 0.236383 +v 0.673056 0.345057 0.202072 +v 0.673853 0.342932 0.201705 +v 0.665941 0.341572 0.208497 +v 0.666764 0.339459 0.208107 +v 0.657463 0.337418 0.215146 +v 0.658309 0.335317 0.214736 +v 0.647524 0.332549 0.221981 +v 0.648392 0.330458 0.221556 +v 0.684841 0.346094 0.189353 +v 0.685129 0.344311 0.188878 +v 0.680225 0.343833 0.195136 +v 0.680555 0.342070 0.194605 +v 0.691135 0.345625 0.178186 +v 0.690856 0.344156 0.177745 +v 0.688643 0.344404 0.183038 +v 0.688418 0.342961 0.182484 +v 0.674438 0.340998 0.201233 +v 0.674809 0.339255 0.200657 +v 0.667381 0.337540 0.207604 +v 0.667791 0.335817 0.206991 +v 0.685188 0.342712 0.188317 +v 0.685019 0.341296 0.187670 +v 0.680664 0.340495 0.193978 +v 0.680553 0.339109 0.193254 +v 0.690335 0.342865 0.177245 +v 0.689571 0.341750 0.176686 +v 0.691067 0.342483 0.172671 +v 0.691886 0.343625 0.173076 +v 0.687956 0.341699 0.181856 +v 0.687258 0.340617 0.181154 +v 0.688563 0.340812 0.176068 +v 0.688590 0.338361 0.175583 +v 0.689979 0.339039 0.171870 +v 0.689999 0.341516 0.172222 +v 0.686325 0.339716 0.180378 +v 0.686408 0.337297 0.179769 +v 0.684621 0.340065 0.186936 +v 0.683995 0.339019 0.186116 +v 0.680221 0.337910 0.192433 +v 0.679667 0.336898 0.191516 +v 0.674967 0.337704 0.199975 +v 0.674911 0.336345 0.199189 +v 0.667995 0.334289 0.206265 +v 0.667993 0.332956 0.205428 +v 0.683141 0.338156 0.185209 +v 0.683283 0.335773 0.184497 +v 0.678894 0.336075 0.190502 +v 0.679096 0.333730 0.189706 +v 0.674642 0.335177 0.198297 +v 0.674160 0.334200 0.197301 +v 0.667785 0.331818 0.204479 +v 0.667371 0.330874 0.203419 +v 0.673465 0.333416 0.196200 +v 0.673725 0.331110 0.195335 +v 0.666751 0.330126 0.202247 +v 0.667064 0.327861 0.201327 +v 0.659651 0.330201 0.212804 +v 0.659699 0.328892 0.211926 +v 0.659403 0.331708 0.213565 +v 0.649548 0.326880 0.220341 +v 0.649836 0.325393 0.219551 +v 0.649931 0.324107 0.218639 +v 0.658647 0.326157 0.208589 +v 0.659009 0.323932 0.207623 +v 0.659197 0.326870 0.209819 +v 0.649541 0.322140 0.216452 +v 0.649057 0.321458 0.215176 +v 0.649462 0.319275 0.214173 +v 0.659548 0.327782 0.210931 +v 0.649833 0.323023 0.217606 +v 0.637882 0.315984 0.221958 +v 0.638326 0.313842 0.220925 +v 0.638306 0.316636 0.223272 +v 0.625394 0.310310 0.230236 +v 0.625024 0.309685 0.228891 +v 0.625501 0.307586 0.227835 +v 0.638543 0.317492 0.224460 +v 0.638593 0.318552 0.225524 +v 0.625586 0.312181 0.232541 +v 0.625581 0.311142 0.231452 +v 0.610385 0.302513 0.235933 +v 0.610888 0.300458 0.234858 +v 0.610705 0.303114 0.237303 +v 0.595460 0.295645 0.243985 +v 0.595182 0.295065 0.242597 +v 0.595707 0.293053 0.241506 +v 0.580635 0.287939 0.248394 +v 0.581178 0.285965 0.247291 +v 0.580876 0.288500 0.249797 +v 0.566024 0.281224 0.255164 +v 0.565817 0.280679 0.253748 +v 0.566373 0.278743 0.252636 +v 0.610848 0.303924 0.238541 +v 0.610813 0.304943 0.239650 +v 0.595493 0.297438 0.246366 +v 0.595563 0.296436 0.245241 +v 0.580945 0.289275 0.251067 +v 0.580845 0.290262 0.252204 +v 0.565938 0.282959 0.257591 +v 0.566064 0.281984 0.256445 +v 0.549990 0.274110 0.261801 +v 0.549976 0.273363 0.260511 +v 0.549839 0.275072 0.262955 +v 0.532512 0.266584 0.268278 +v 0.532684 0.265632 0.267117 +v 0.532695 0.264897 0.265819 +v 0.580575 0.291462 0.253206 +v 0.580136 0.292875 0.254075 +v 0.565184 0.285550 0.259479 +v 0.565643 0.284147 0.258603 +v 0.595250 0.298651 0.247357 +v 0.594835 0.300076 0.248217 +v 0.549525 0.276250 0.263974 +v 0.549047 0.277644 0.264856 +v 0.531684 0.269138 0.270191 +v 0.532179 0.267752 0.269303 +v 0.610601 0.306172 0.240628 +v 0.610211 0.307609 0.241475 +v 0.625409 0.313426 0.233501 +v 0.625049 0.314878 0.234334 +v 0.638455 0.319817 0.226463 +v 0.638129 0.321286 0.227276 +v 0.579525 0.294500 0.254811 +v 0.578746 0.296339 0.255412 +v 0.563763 0.288999 0.260828 +v 0.564557 0.287167 0.260221 +v 0.594243 0.301711 0.248944 +v 0.593480 0.303557 0.249539 +v 0.609644 0.309255 0.242192 +v 0.608898 0.311111 0.242779 +v 0.624507 0.316537 0.235038 +v 0.623783 0.318403 0.235614 +v 0.637616 0.322959 0.227964 +v 0.636915 0.324836 0.228528 +v 0.649066 0.328568 0.221009 +v 0.658956 0.333413 0.214209 +v 0.636027 0.326917 0.228966 +v 0.622877 0.320475 0.236063 +v 0.607976 0.313175 0.243236 +v 0.606875 0.315448 0.243562 +v 0.591433 0.307883 0.250333 +v 0.592542 0.305614 0.250002 +v 0.605597 0.317931 0.243757 +v 0.601843 0.324812 0.243855 +v 0.586493 0.317057 0.250630 +v 0.590149 0.310362 0.250531 +v 0.593315 0.340283 0.243888 +v 0.578269 0.331973 0.250663 +v 0.580365 0.362026 0.243888 +v 0.565746 0.352988 0.250663 +v 0.577797 0.298390 0.255880 +v 0.576678 0.300654 0.256215 +v 0.561675 0.293305 0.261637 +v 0.562803 0.291045 0.261300 +v 0.575387 0.303131 0.256415 +v 0.571828 0.309648 0.256515 +v 0.556918 0.302116 0.261940 +v 0.560382 0.295780 0.261839 +v 0.563896 0.324034 0.256549 +v 0.549283 0.315963 0.261974 +v 0.551778 0.344353 0.256549 +v 0.537580 0.335574 0.261974 +v 0.563350 0.387724 0.243888 +v 0.549192 0.377979 0.250663 +v 0.543648 0.414899 0.243888 +v 0.529985 0.404472 0.250663 +v 0.546520 0.461232 0.229591 +v 0.535320 0.451780 0.236703 +v 0.523230 0.487494 0.229591 +v 0.512508 0.477504 0.236703 +v 0.535666 0.368669 0.256549 +v 0.521914 0.359205 0.261974 +v 0.516931 0.394510 0.256549 +v 0.503661 0.384382 0.261974 +v 0.522635 0.441075 0.243888 +v 0.509500 0.429989 0.250663 +v 0.500363 0.466188 0.243887 +v 0.487788 0.454472 0.250663 +v 0.533521 0.307258 0.267369 +v 0.516570 0.297895 0.272718 +v 0.523541 0.285255 0.272684 +v 0.540836 0.293992 0.267335 +v 0.522264 0.326106 0.267369 +v 0.505793 0.315923 0.272718 +v 0.544195 0.287850 0.267233 +v 0.545493 0.285377 0.267029 +v 0.526787 0.279322 0.272581 +v 0.528089 0.276851 0.272376 +v 0.546628 0.283120 0.266690 +v 0.547598 0.281079 0.266214 +v 0.529230 0.274597 0.272035 +v 0.530209 0.272561 0.271557 +v 0.507081 0.348996 0.267369 +v 0.491130 0.338018 0.272718 +v 0.489347 0.373458 0.267369 +v 0.473953 0.361710 0.272718 +v 0.508116 0.270175 0.277869 +v 0.509422 0.267706 0.277663 +v 0.504992 0.275884 0.277972 +v 0.485149 0.265859 0.283183 +v 0.488143 0.260390 0.283080 +v 0.489452 0.257923 0.282873 +v 0.498390 0.287855 0.278006 +v 0.478942 0.277113 0.283218 +v 0.488128 0.305003 0.278006 +v 0.469230 0.293320 0.283218 +v 0.548404 0.279254 0.265603 +v 0.531027 0.270741 0.270942 +v 0.510569 0.265455 0.277319 +v 0.511557 0.263423 0.276839 +v 0.490604 0.255675 0.282528 +v 0.491600 0.253646 0.282046 +v 0.512386 0.261609 0.276221 +v 0.513055 0.260012 0.275466 +v 0.492439 0.251837 0.281425 +v 0.493121 0.250247 0.280667 +v 0.513566 0.258634 0.274574 +v 0.513918 0.257474 0.273544 +v 0.493647 0.248876 0.279770 +v 0.494016 0.247724 0.278736 +v 0.469294 0.245235 0.287646 +v 0.470298 0.243210 0.287161 +v 0.468137 0.247480 0.287992 +v 0.445436 0.236359 0.293004 +v 0.446599 0.234117 0.292657 +v 0.447609 0.232095 0.292171 +v 0.514111 0.256533 0.272377 +v 0.514144 0.255809 0.271073 +v 0.494228 0.246792 0.277564 +v 0.494283 0.246079 0.276254 +v 0.471146 0.241406 0.286539 +v 0.471841 0.239821 0.285777 +v 0.448467 0.230295 0.291546 +v 0.449172 0.228716 0.290782 +v 0.472380 0.238457 0.284877 +v 0.472765 0.237314 0.283839 +v 0.449725 0.227359 0.289879 +v 0.450125 0.226223 0.288838 +v 0.514019 0.255303 0.269631 +v 0.514597 0.253487 0.268498 +v 0.533118 0.262521 0.263258 +v 0.532544 0.264379 0.264385 +v 0.494182 0.245585 0.274806 +v 0.494762 0.243811 0.273668 +v 0.549798 0.272832 0.259085 +v 0.550364 0.270934 0.257964 +v 0.472995 0.236390 0.282663 +v 0.473071 0.235687 0.281348 +v 0.450373 0.225308 0.287657 +v 0.450468 0.224614 0.286338 +v 0.472992 0.235205 0.279894 +v 0.473574 0.233475 0.278752 +v 0.450410 0.224142 0.284880 +v 0.450990 0.222459 0.283734 +v 0.426395 0.212377 0.289747 +v 0.426970 0.210742 0.288598 +v 0.426432 0.212839 0.291209 +v 0.400924 0.200343 0.295945 +v 0.400906 0.199890 0.294479 +v 0.401475 0.198306 0.293327 +v 0.426319 0.213524 0.292532 +v 0.426055 0.214431 0.293716 +v 0.400514 0.201918 0.298457 +v 0.400793 0.201019 0.297271 +v 0.373755 0.187773 0.301859 +v 0.373902 0.187105 0.300529 +v 0.373461 0.188665 0.303048 +v 0.344856 0.174652 0.307471 +v 0.345163 0.173766 0.306280 +v 0.345325 0.173105 0.304948 +v 0.425640 0.215560 0.294760 +v 0.425075 0.216911 0.295665 +v 0.399509 0.204386 0.300412 +v 0.400086 0.203041 0.299505 +v 0.373020 0.189782 0.304097 +v 0.372432 0.191122 0.305006 +v 0.343804 0.177097 0.309433 +v 0.344402 0.175762 0.308522 +v 0.424359 0.218485 0.296431 +v 0.423493 0.220281 0.297058 +v 0.397908 0.207747 0.301808 +v 0.398783 0.205955 0.301180 +v 0.371697 0.192686 0.305776 +v 0.370815 0.194474 0.306405 +v 0.342170 0.180441 0.310835 +v 0.343060 0.178657 0.310204 +v 0.422476 0.222299 0.297545 +v 0.421308 0.224539 0.297894 +v 0.395713 0.212000 0.302646 +v 0.396885 0.209762 0.302297 +v 0.369785 0.196486 0.306895 +v 0.368609 0.198722 0.307245 +v 0.339955 0.184685 0.311676 +v 0.341135 0.182451 0.311325 +v 0.312830 0.163847 0.314449 +v 0.313583 0.162292 0.313677 +v 0.311934 0.165629 0.315080 +v 0.288346 0.154073 0.318231 +v 0.289250 0.152296 0.317598 +v 0.290012 0.150744 0.316825 +v 0.310894 0.167635 0.315572 +v 0.309709 0.169868 0.315922 +v 0.286111 0.158307 0.319074 +v 0.287300 0.156077 0.318723 +v 0.367285 0.201182 0.307455 +v 0.365082 0.205203 0.307560 +v 0.336614 0.190821 0.311991 +v 0.338628 0.187144 0.311886 +v 0.394392 0.214462 0.302855 +v 0.392011 0.218807 0.302960 +v 0.314191 0.160961 0.312764 +v 0.314655 0.159856 0.311711 +v 0.290632 0.149420 0.315911 +v 0.291109 0.148321 0.314857 +v 0.308381 0.172326 0.316133 +v 0.306565 0.175640 0.316238 +v 0.283119 0.163796 0.319390 +v 0.284780 0.160764 0.319285 +v 0.314975 0.158977 0.310518 +v 0.315152 0.158323 0.309185 +v 0.291444 0.147449 0.313662 +v 0.291636 0.146803 0.312326 +v 0.373902 0.186661 0.299060 +v 0.345342 0.172669 0.303476 +v 0.374464 0.185130 0.297906 +v 0.345894 0.171193 0.302320 +v 0.315184 0.157895 0.307711 +v 0.315724 0.156476 0.306553 +v 0.291687 0.146384 0.310850 +v 0.292221 0.145012 0.309691 +v 0.281970 0.145177 0.317050 +v 0.282465 0.144087 0.315994 +v 0.281336 0.146494 0.317966 +v 0.280098 0.145888 0.318082 +v 0.280755 0.144581 0.317165 +v 0.281276 0.143504 0.316107 +v 0.283109 0.142182 0.311981 +v 0.283655 0.140833 0.310819 +v 0.283034 0.142589 0.313459 +v 0.281907 0.142037 0.313569 +v 0.282018 0.141647 0.312088 +v 0.282593 0.140315 0.310924 +v 0.282820 0.143224 0.314797 +v 0.281660 0.142656 0.314909 +v 0.280983 0.141140 0.312156 +v 0.281600 0.139830 0.310991 +v 0.280817 0.141503 0.313638 +v 0.280521 0.142098 0.314980 +v 0.280092 0.142924 0.316180 +v 0.278941 0.142360 0.316194 +v 0.279430 0.141564 0.314996 +v 0.279533 0.143982 0.317239 +v 0.278842 0.145272 0.318157 +v 0.277591 0.144659 0.318168 +v 0.278328 0.143392 0.317252 +v 0.278416 0.141067 0.314941 +v 0.277847 0.141824 0.316131 +v 0.276825 0.141324 0.315982 +v 0.277492 0.140614 0.314811 +v 0.277164 0.142822 0.317182 +v 0.276366 0.144059 0.318092 +v 0.275183 0.143480 0.317911 +v 0.276056 0.142279 0.317016 +v 0.276671 0.140212 0.314603 +v 0.275890 0.140866 0.315739 +v 0.275036 0.140447 0.315389 +v 0.275942 0.139855 0.314312 +v 0.277361 0.139810 0.313334 +v 0.276772 0.139522 0.313107 +v 0.277962 0.139660 0.311932 +v 0.278919 0.138522 0.310830 +v 0.277528 0.139448 0.311775 +v 0.278606 0.138370 0.310729 +v 0.275020 0.141771 0.316740 +v 0.274059 0.142929 0.317608 +v 0.272999 0.142410 0.317165 +v 0.274055 0.141299 0.316340 +v 0.273161 0.140861 0.315801 +v 0.274257 0.140066 0.314924 +v 0.272006 0.141923 0.316561 +v 0.271077 0.141468 0.315763 +v 0.272328 0.140453 0.315085 +v 0.273534 0.139711 0.314302 +v 0.270790 0.143252 0.317205 +v 0.269515 0.144848 0.317731 +v 0.268439 0.144320 0.316807 +v 0.269780 0.142757 0.316337 +v 0.271867 0.143780 0.317862 +v 0.270661 0.145409 0.318433 +v 0.273009 0.144339 0.318343 +v 0.271869 0.146001 0.318944 +v 0.274207 0.144926 0.318669 +v 0.273128 0.146618 0.319289 +v 0.275453 0.145536 0.318863 +v 0.274425 0.147253 0.319493 +v 0.276729 0.146162 0.318944 +v 0.275743 0.147899 0.319578 +v 0.268180 0.146710 0.318140 +v 0.266785 0.148839 0.318433 +v 0.265620 0.148269 0.317433 +v 0.267052 0.146158 0.317172 +v 0.269380 0.147298 0.318876 +v 0.268023 0.149446 0.319193 +v 0.278020 0.146794 0.318934 +v 0.277067 0.148547 0.319570 +v 0.279305 0.147423 0.318858 +v 0.278374 0.149188 0.319493 +v 0.270639 0.147915 0.319412 +v 0.269320 0.150081 0.319745 +v 0.271945 0.148555 0.319772 +v 0.270659 0.150737 0.320116 +v 0.273282 0.149210 0.319983 +v 0.272025 0.151406 0.320333 +v 0.274634 0.149872 0.320072 +v 0.273400 0.152080 0.320424 +v 0.280561 0.148039 0.318740 +v 0.279647 0.149811 0.319374 +v 0.275982 0.150532 0.320064 +v 0.274766 0.152749 0.320417 +v 0.277308 0.151182 0.319986 +v 0.276105 0.153405 0.320339 +v 0.278593 0.151811 0.319867 +v 0.277398 0.154039 0.320219 +v 0.270653 0.153843 0.320543 +v 0.269064 0.156695 0.320648 +v 0.267682 0.155997 0.320426 +v 0.269270 0.153165 0.320323 +v 0.272042 0.154523 0.320636 +v 0.270451 0.157396 0.320742 +v 0.276064 0.156493 0.320430 +v 0.274458 0.159420 0.320536 +v 0.273165 0.158767 0.320656 +v 0.274765 0.155857 0.320550 +v 0.273419 0.155198 0.320629 +v 0.271824 0.158090 0.320735 +v 0.272449 0.163064 0.320571 +v 0.271182 0.162364 0.320692 +v 0.280938 0.167752 0.319426 +v 0.276830 0.174375 0.319426 +v 0.268582 0.169276 0.320571 +v 0.267350 0.168514 0.320692 +v 0.269865 0.161637 0.320770 +v 0.268518 0.160893 0.320777 +v 0.266071 0.167724 0.320770 +v 0.264762 0.166914 0.320777 +v 0.267157 0.160141 0.320684 +v 0.265799 0.159391 0.320461 +v 0.263439 0.166096 0.320684 +v 0.262120 0.165281 0.320461 +v 0.267910 0.152499 0.319946 +v 0.266321 0.155309 0.320046 +v 0.265000 0.154642 0.319479 +v 0.266591 0.151853 0.319384 +v 0.264462 0.158653 0.320079 +v 0.263164 0.157936 0.319510 +v 0.260821 0.164478 0.320079 +v 0.259559 0.163698 0.319510 +v 0.265330 0.151235 0.318608 +v 0.263736 0.154003 0.318696 +v 0.262546 0.153402 0.317668 +v 0.264144 0.150654 0.317590 +v 0.261921 0.157249 0.318725 +v 0.260752 0.156603 0.317694 +v 0.258352 0.162951 0.318725 +v 0.257215 0.162249 0.317694 +v 0.256420 0.176480 0.320684 +v 0.255142 0.175600 0.320461 +v 0.257701 0.177361 0.320777 +v 0.248688 0.189793 0.320777 +v 0.247452 0.188849 0.320684 +v 0.246219 0.187908 0.320461 +v 0.263049 0.150117 0.316299 +v 0.264545 0.147742 0.316165 +v 0.261448 0.152848 0.316366 +v 0.260460 0.152348 0.314760 +v 0.262061 0.149634 0.314704 +v 0.263572 0.147265 0.314591 +v 0.253884 0.174735 0.320079 +v 0.252663 0.173894 0.319510 +v 0.245005 0.186982 0.320079 +v 0.243826 0.186082 0.319510 +v 0.259673 0.156007 0.316388 +v 0.258702 0.155471 0.314779 +v 0.256167 0.161601 0.316388 +v 0.255223 0.161017 0.314779 +v 0.251493 0.173089 0.318725 +v 0.250393 0.172332 0.317694 +v 0.242697 0.185221 0.318725 +v 0.241635 0.184410 0.317694 +v 0.266009 0.145646 0.315941 +v 0.267441 0.143831 0.315629 +v 0.265062 0.145182 0.314404 +v 0.266529 0.143385 0.314141 +v 0.268840 0.142297 0.315226 +v 0.270208 0.141042 0.314735 +v 0.267974 0.141872 0.313804 +v 0.269397 0.140645 0.313391 +v 0.261198 0.149211 0.312773 +v 0.262719 0.146847 0.312676 +v 0.259599 0.151913 0.312821 +v 0.258800 0.151510 0.310714 +v 0.260398 0.148819 0.310673 +v 0.261925 0.146458 0.310590 +v 0.257856 0.155004 0.312837 +v 0.257072 0.154571 0.310728 +v 0.254401 0.160509 0.312837 +v 0.253640 0.160039 0.310728 +v 0.264223 0.144772 0.312516 +v 0.265712 0.142985 0.312291 +v 0.263439 0.144388 0.310452 +v 0.264942 0.142608 0.310258 +v 0.247667 0.170456 0.312837 +v 0.246930 0.169949 0.310728 +v 0.248463 0.171004 0.314779 +v 0.239773 0.182989 0.314779 +v 0.239005 0.182403 0.312837 +v 0.238294 0.181860 0.310728 +v 0.267185 0.141486 0.312002 +v 0.268641 0.140275 0.311648 +v 0.266434 0.141118 0.310009 +v 0.267913 0.139918 0.309705 +v 0.271543 0.140068 0.314154 +v 0.272847 0.139375 0.313483 +v 0.270798 0.139703 0.312904 +v 0.272177 0.139047 0.312341 +v 0.270082 0.139353 0.311231 +v 0.271507 0.138718 0.310749 +v 0.269380 0.139009 0.309346 +v 0.270836 0.138390 0.308931 +v 0.272916 0.138372 0.310203 +v 0.273534 0.138675 0.311704 +v 0.272280 0.138061 0.308461 +v 0.274118 0.138961 0.312724 +v 0.275357 0.138828 0.311874 +v 0.275811 0.139051 0.312423 +v 0.274695 0.139244 0.313415 +v 0.276564 0.138976 0.310936 +v 0.277996 0.138072 0.310199 +v 0.278208 0.138175 0.310467 +v 0.276882 0.139131 0.311328 +v 0.229767 0.193911 0.312837 +v 0.229083 0.193334 0.310728 +v 0.230506 0.194534 0.314779 +v 0.220683 0.205610 0.314779 +v 0.219976 0.204951 0.312837 +v 0.219321 0.204341 0.310728 +v 0.249377 0.171633 0.316388 +v 0.240655 0.183662 0.316388 +v 0.231353 0.195249 0.316388 +v 0.232295 0.196044 0.317694 +v 0.222396 0.207207 0.317694 +v 0.221495 0.206366 0.316388 +v 0.233316 0.196906 0.318725 +v 0.234401 0.197822 0.319510 +v 0.224413 0.209085 0.319510 +v 0.223374 0.208117 0.318725 +v 0.209654 0.215498 0.312837 +v 0.209030 0.214857 0.310728 +v 0.210328 0.216191 0.314779 +v 0.199467 0.226251 0.314779 +v 0.198828 0.225526 0.312837 +v 0.198236 0.224855 0.310728 +v 0.211102 0.216986 0.316388 +v 0.211961 0.217869 0.317694 +v 0.201016 0.228008 0.317694 +v 0.200201 0.227083 0.316388 +v 0.187522 0.235010 0.312837 +v 0.186964 0.234311 0.310728 +v 0.188125 0.235765 0.314779 +v 0.176330 0.244712 0.314779 +v 0.175765 0.243928 0.312837 +v 0.175242 0.243203 0.310728 +v 0.188817 0.236633 0.316388 +v 0.189586 0.237596 0.317694 +v 0.177699 0.246613 0.317694 +v 0.176979 0.245613 0.316388 +v 0.212893 0.218827 0.318725 +v 0.213883 0.219844 0.319510 +v 0.202838 0.230075 0.319510 +v 0.201899 0.229010 0.318725 +v 0.190419 0.238640 0.318725 +v 0.191304 0.239750 0.319510 +v 0.179310 0.248848 0.319510 +v 0.178480 0.247697 0.318725 +v 0.163584 0.252259 0.312837 +v 0.163097 0.251508 0.310728 +v 0.164110 0.253070 0.314779 +v 0.151495 0.260817 0.314779 +v 0.151010 0.259982 0.312837 +v 0.150560 0.259208 0.310728 +v 0.164714 0.254000 0.316388 +v 0.165384 0.255035 0.317694 +v 0.152671 0.262843 0.317694 +v 0.152052 0.261777 0.316388 +v 0.138071 0.267078 0.312837 +v 0.137660 0.266283 0.310728 +v 0.138515 0.267937 0.314779 +v 0.125201 0.274411 0.314779 +v 0.124800 0.273531 0.312837 +v 0.124428 0.272717 0.310728 +v 0.139024 0.268922 0.316388 +v 0.139590 0.270017 0.317694 +v 0.126173 0.276541 0.317694 +v 0.125661 0.275420 0.316388 +v 0.166111 0.256156 0.318725 +v 0.166884 0.257347 0.319510 +v 0.154055 0.265225 0.319510 +v 0.153342 0.263998 0.318725 +v 0.140204 0.271204 0.318725 +v 0.140856 0.272465 0.319510 +v 0.127317 0.279048 0.319510 +v 0.126728 0.277757 0.318725 +v 0.111228 0.279325 0.312837 +v 0.110897 0.278494 0.310728 +v 0.111585 0.280223 0.314779 +v 0.100347 0.284598 0.314779 +v 0.100034 0.283684 0.312837 +v 0.099745 0.282837 0.310728 +v 0.111996 0.281254 0.316388 +v 0.112452 0.282399 0.317694 +v 0.101106 0.286814 0.317694 +v 0.100707 0.285647 0.316388 +v 0.093900 0.285830 0.312837 +v 0.093652 0.284970 0.310728 +v 0.094167 0.286758 0.314779 +v 0.090732 0.287780 0.314760 +v 0.090499 0.286843 0.312821 +v 0.090283 0.285975 0.310714 +v 0.087509 0.287803 0.312773 +v 0.084867 0.288761 0.312676 +v 0.084664 0.287900 0.310590 +v 0.087305 0.286936 0.310673 +v 0.087730 0.288738 0.314704 +v 0.085085 0.289686 0.314591 +v 0.094475 0.287824 0.316388 +v 0.094816 0.289008 0.317694 +v 0.091297 0.290048 0.317668 +v 0.091000 0.288854 0.316366 +v 0.087982 0.289808 0.316299 +v 0.085334 0.290740 0.316165 +v 0.088262 0.290995 0.317590 +v 0.085609 0.291906 0.317433 +v 0.082509 0.289767 0.312516 +v 0.080436 0.290822 0.312291 +v 0.080240 0.289988 0.310258 +v 0.082309 0.288918 0.310452 +v 0.082724 0.290676 0.314404 +v 0.080645 0.291707 0.314141 +v 0.095187 0.290292 0.318725 +v 0.095580 0.291656 0.319510 +v 0.091961 0.292715 0.319479 +v 0.091619 0.291341 0.318696 +v 0.101539 0.288078 0.318725 +v 0.101999 0.289421 0.319510 +v 0.078648 0.291925 0.312002 +v 0.077144 0.293077 0.311648 +v 0.076958 0.292287 0.309705 +v 0.078456 0.291111 0.310009 +v 0.078850 0.292781 0.313804 +v 0.077337 0.293896 0.313391 +v 0.082966 0.291702 0.315941 +v 0.080878 0.292695 0.315629 +v 0.083233 0.292833 0.317172 +v 0.081134 0.293777 0.316807 +v 0.088566 0.292281 0.318608 +v 0.085907 0.293168 0.318433 +v 0.088888 0.293648 0.319384 +v 0.086223 0.294510 0.319193 +v 0.075925 0.294277 0.311231 +v 0.074990 0.295525 0.310749 +v 0.074819 0.294798 0.308931 +v 0.075746 0.293516 0.309346 +v 0.076108 0.295053 0.312904 +v 0.075162 0.296252 0.312341 +v 0.079071 0.293720 0.315226 +v 0.077545 0.294775 0.314735 +v 0.079312 0.294738 0.316337 +v 0.077767 0.295716 0.315763 +v 0.074340 0.296822 0.310203 +v 0.074178 0.296133 0.308461 +v 0.074498 0.297493 0.311704 +v 0.076299 0.295861 0.314154 +v 0.075333 0.296978 0.313483 +v 0.076499 0.296711 0.315085 +v 0.075509 0.297722 0.314302 +v 0.074648 0.298125 0.312724 +v 0.074243 0.299304 0.311874 +v 0.074795 0.298751 0.313415 +v 0.074359 0.299796 0.312423 +v 0.074118 0.300514 0.310936 +v 0.072853 0.301724 0.310199 +v 0.074200 0.300858 0.311328 +v 0.072907 0.301952 0.310467 +v 0.076712 0.297614 0.315801 +v 0.075693 0.298506 0.314924 +v 0.078004 0.296723 0.316561 +v 0.078258 0.297799 0.317165 +v 0.076941 0.298582 0.316340 +v 0.075893 0.299350 0.315389 +v 0.079570 0.295833 0.317205 +v 0.081409 0.294943 0.317731 +v 0.081702 0.296186 0.318433 +v 0.079845 0.297000 0.317862 +v 0.077187 0.299628 0.316740 +v 0.076111 0.300276 0.315739 +v 0.078530 0.298949 0.317608 +v 0.078817 0.300167 0.317911 +v 0.077452 0.300751 0.317016 +v 0.076350 0.301290 0.315982 +v 0.080137 0.298238 0.318343 +v 0.082011 0.297495 0.318944 +v 0.082333 0.298859 0.319289 +v 0.080444 0.299536 0.318669 +v 0.075300 0.300892 0.314603 +v 0.074755 0.301476 0.313334 +v 0.074605 0.300838 0.313107 +v 0.075114 0.300102 0.314312 +v 0.075510 0.301781 0.314811 +v 0.074932 0.302227 0.313502 +v 0.075747 0.302783 0.314941 +v 0.075141 0.303111 0.313610 +v 0.076612 0.302397 0.316131 +v 0.076891 0.303583 0.316194 +v 0.076006 0.303883 0.314996 +v 0.075378 0.304114 0.313656 +v 0.077736 0.301952 0.317182 +v 0.079119 0.301448 0.318092 +v 0.079433 0.302776 0.318168 +v 0.078033 0.303214 0.317252 +v 0.076285 0.305064 0.314980 +v 0.077186 0.304830 0.316180 +v 0.077488 0.306113 0.316107 +v 0.076576 0.306299 0.314908 +v 0.075639 0.305222 0.313638 +v 0.075918 0.306403 0.313569 +v 0.080762 0.300886 0.318863 +v 0.082664 0.300265 0.319493 +v 0.083002 0.301694 0.319578 +v 0.081089 0.302269 0.318944 +v 0.078342 0.304520 0.317239 +v 0.079753 0.304132 0.318157 +v 0.080074 0.305493 0.318082 +v 0.078654 0.305844 0.317165 +v 0.081419 0.303669 0.318934 +v 0.083340 0.303128 0.319570 +v 0.083674 0.304545 0.319493 +v 0.081747 0.305061 0.318858 +v 0.084826 0.299585 0.319983 +v 0.087247 0.298847 0.320333 +v 0.087598 0.300337 0.320424 +v 0.085171 0.301050 0.320072 +v 0.084484 0.298136 0.319772 +v 0.086897 0.297367 0.320116 +v 0.085516 0.302511 0.320064 +v 0.087948 0.301817 0.320417 +v 0.088290 0.303269 0.320339 +v 0.085855 0.303948 0.319986 +v 0.082069 0.306423 0.318740 +v 0.080390 0.306835 0.317966 +v 0.084000 0.305925 0.319374 +v 0.086224 0.315353 0.318231 +v 0.084290 0.315840 0.317598 +v 0.082609 0.316238 0.316825 +v 0.084150 0.296721 0.319412 +v 0.086555 0.295915 0.319745 +v 0.083828 0.295355 0.318876 +v 0.078965 0.307161 0.317050 +v 0.077792 0.307402 0.315994 +v 0.081179 0.316548 0.315911 +v 0.080002 0.316770 0.314857 +v 0.076873 0.307556 0.314797 +v 0.076206 0.307624 0.313459 +v 0.079078 0.316903 0.313662 +v 0.078405 0.316947 0.312326 +v 0.086184 0.305341 0.319867 +v 0.088621 0.304670 0.320219 +v 0.090849 0.314114 0.319074 +v 0.088410 0.314778 0.318723 +v 0.090320 0.341396 0.314449 +v 0.088636 0.341784 0.313677 +v 0.092255 0.340917 0.315080 +v 0.099987 0.373687 0.310835 +v 0.098049 0.374158 0.310204 +v 0.096363 0.374538 0.309433 +v 0.094443 0.340348 0.315572 +v 0.096883 0.339689 0.315922 +v 0.104616 0.372469 0.311676 +v 0.102176 0.373124 0.311325 +v 0.087204 0.342082 0.312764 +v 0.086023 0.342289 0.311711 +v 0.094929 0.374825 0.308522 +v 0.093745 0.375020 0.307471 +v 0.075792 0.307607 0.311981 +v 0.074288 0.307855 0.310819 +v 0.074019 0.306703 0.310924 +v 0.075513 0.306425 0.312088 +v 0.077985 0.316903 0.310850 +v 0.076459 0.317135 0.309691 +v 0.075248 0.305303 0.312156 +v 0.073767 0.305627 0.310991 +v 0.073542 0.304664 0.311013 +v 0.075006 0.304276 0.312176 +v 0.085095 0.342406 0.310518 +v 0.084418 0.342433 0.309185 +v 0.092814 0.375124 0.306279 +v 0.092134 0.375135 0.304948 +v 0.100125 0.406112 0.301859 +v 0.099441 0.406107 0.300529 +v 0.101060 0.406023 0.303048 +v 0.107977 0.435343 0.298457 +v 0.107038 0.435415 0.297271 +v 0.106350 0.435393 0.295945 +v 0.102246 0.405841 0.304097 +v 0.103683 0.405565 0.305006 +v 0.110607 0.434911 0.300412 +v 0.109167 0.435174 0.299505 +v 0.105372 0.405195 0.305776 +v 0.107311 0.404732 0.306405 +v 0.114239 0.434096 0.301808 +v 0.112298 0.434551 0.301180 +v 0.115701 0.462870 0.294760 +v 0.114508 0.463024 0.293716 +v 0.117144 0.462619 0.295665 +v 0.123306 0.488735 0.290782 +v 0.121859 0.488973 0.289879 +v 0.120663 0.489111 0.288838 +v 0.109502 0.404175 0.306895 +v 0.111943 0.403524 0.307245 +v 0.118874 0.432899 0.302646 +v 0.116431 0.433545 0.302297 +v 0.118837 0.462271 0.296431 +v 0.120781 0.461824 0.297058 +v 0.126947 0.487961 0.292171 +v 0.125002 0.488398 0.291546 +v 0.122975 0.461281 0.297545 +v 0.125418 0.460639 0.297894 +v 0.131588 0.486789 0.293004 +v 0.129143 0.487425 0.292657 +v 0.114636 0.402779 0.307455 +v 0.119045 0.401524 0.307560 +v 0.126332 0.430801 0.302960 +v 0.121567 0.432157 0.302855 +v 0.107308 0.371721 0.311886 +v 0.111341 0.370573 0.311991 +v 0.128112 0.459901 0.298102 +v 0.133214 0.458448 0.298207 +v 0.139701 0.484511 0.293316 +v 0.134282 0.486053 0.293212 +v 0.134946 0.512022 0.287646 +v 0.132749 0.512551 0.287161 +v 0.137392 0.511392 0.287992 +v 0.142843 0.534492 0.282873 +v 0.140395 0.535118 0.282528 +v 0.138196 0.535639 0.282046 +v 0.099574 0.338940 0.316133 +v 0.103209 0.337904 0.316238 +v 0.093539 0.313361 0.319285 +v 0.096864 0.312414 0.319390 +v 0.130801 0.512977 0.286538 +v 0.129102 0.513303 0.285777 +v 0.136245 0.536054 0.281425 +v 0.134544 0.536366 0.280667 +v 0.091310 0.303914 0.320430 +v 0.094521 0.302998 0.320536 +v 0.090978 0.302507 0.320550 +v 0.094171 0.301593 0.320656 +v 0.126636 0.399340 0.307595 +v 0.134991 0.428309 0.302995 +v 0.117803 0.368714 0.312026 +v 0.127976 0.365295 0.312026 +v 0.138301 0.395451 0.307595 +v 0.148067 0.423976 0.302995 +v 0.090634 0.301047 0.320629 +v 0.093808 0.300134 0.320735 +v 0.090282 0.299555 0.320636 +v 0.093436 0.298641 0.320742 +v 0.108481 0.336389 0.316273 +v 0.101206 0.311166 0.319426 +v 0.108576 0.308631 0.319426 +v 0.117079 0.333466 0.316273 +v 0.098519 0.301848 0.320571 +v 0.098118 0.300457 0.320692 +v 0.104966 0.298086 0.320692 +v 0.105435 0.299456 0.320571 +v 0.089927 0.298050 0.320543 +v 0.093061 0.297134 0.320648 +v 0.089573 0.296551 0.320323 +v 0.092687 0.295631 0.320426 +v 0.097701 0.299012 0.320770 +v 0.097275 0.297533 0.320777 +v 0.103980 0.295207 0.320777 +v 0.104478 0.296664 0.320770 +v 0.117395 0.294814 0.320571 +v 0.120983 0.303823 0.319426 +v 0.116860 0.293469 0.320692 +v 0.131119 0.287381 0.320692 +v 0.131720 0.288699 0.320571 +v 0.135745 0.297521 0.319426 +v 0.116303 0.292072 0.320770 +v 0.115734 0.290642 0.320777 +v 0.129856 0.284613 0.320777 +v 0.130495 0.286013 0.320770 +v 0.096844 0.296039 0.320684 +v 0.096414 0.294548 0.320461 +v 0.102974 0.292269 0.320461 +v 0.103476 0.293736 0.320684 +v 0.130694 0.328212 0.316273 +v 0.143140 0.359468 0.312026 +v 0.146642 0.321404 0.316273 +v 0.160606 0.352012 0.312026 +v 0.115159 0.289197 0.320684 +v 0.114585 0.287756 0.320461 +v 0.128566 0.281787 0.320461 +v 0.129210 0.283198 0.320684 +v 0.114020 0.286337 0.320079 +v 0.113471 0.284959 0.319510 +v 0.127932 0.280398 0.320079 +v 0.102479 0.290824 0.320079 +v 0.089226 0.295077 0.319946 +v 0.092319 0.294152 0.320046 +v 0.083521 0.294055 0.318140 +v 0.095991 0.293081 0.320079 +v 0.112946 0.283640 0.318725 +v 0.141537 0.273783 0.320079 +v 0.142238 0.275139 0.320461 +v 0.154800 0.266508 0.320079 +v 0.155567 0.267828 0.320461 +v 0.142950 0.276517 0.320684 +v 0.143664 0.277898 0.320777 +v 0.156346 0.269170 0.320684 +v 0.157127 0.270514 0.320777 +v 0.167691 0.258591 0.320079 +v 0.168521 0.259872 0.320461 +v 0.180177 0.250052 0.320079 +v 0.181070 0.251291 0.320461 +v 0.144371 0.279266 0.320770 +v 0.145062 0.280601 0.320692 +v 0.157900 0.271845 0.320770 +v 0.158656 0.273146 0.320692 +v 0.169365 0.261174 0.320684 +v 0.170211 0.262478 0.320777 +v 0.181977 0.252549 0.320684 +v 0.182886 0.253811 0.320777 +v 0.192229 0.240909 0.320079 +v 0.193182 0.242103 0.320461 +v 0.203819 0.231187 0.320079 +v 0.204829 0.232333 0.320461 +v 0.145727 0.281888 0.320571 +v 0.150180 0.290502 0.319426 +v 0.159383 0.274398 0.320571 +v 0.164254 0.282783 0.319426 +v 0.171049 0.263770 0.320770 +v 0.171867 0.265032 0.320692 +v 0.183786 0.255059 0.320770 +v 0.184665 0.256279 0.320692 +v 0.194149 0.243315 0.320684 +v 0.195119 0.244531 0.320777 +v 0.205854 0.233496 0.320684 +v 0.206883 0.234662 0.320777 +v 0.214917 0.220908 0.320079 +v 0.215982 0.222002 0.320461 +v 0.225498 0.210096 0.320079 +v 0.226615 0.211137 0.320461 +v 0.235535 0.198778 0.320079 +v 0.236702 0.199763 0.320461 +v 0.217063 0.223114 0.320684 +v 0.218148 0.224228 0.320777 +v 0.227750 0.212194 0.320684 +v 0.228888 0.213255 0.320777 +v 0.196079 0.245734 0.320770 +v 0.197017 0.246909 0.320692 +v 0.207901 0.235817 0.320770 +v 0.208895 0.236945 0.320692 +v 0.237887 0.200764 0.320684 +v 0.239076 0.201767 0.320777 +v 0.219221 0.225332 0.320770 +v 0.220270 0.226410 0.320692 +v 0.230014 0.214304 0.320770 +v 0.231114 0.215329 0.320692 +v 0.240252 0.202759 0.320770 +v 0.241401 0.203729 0.320692 +v 0.249912 0.190727 0.320770 +v 0.251107 0.191639 0.320692 +v 0.258969 0.178234 0.320770 +v 0.260208 0.179087 0.320692 +v 0.221280 0.227448 0.320571 +v 0.228042 0.234398 0.319426 +v 0.216266 0.245305 0.319426 +v 0.209853 0.238031 0.320571 +v 0.232174 0.216316 0.320571 +v 0.239269 0.222926 0.319426 +v 0.261401 0.179908 0.320571 +v 0.269389 0.185406 0.319426 +v 0.259967 0.198401 0.319426 +v 0.252258 0.192517 0.320571 +v 0.242508 0.204663 0.320571 +v 0.249919 0.210917 0.319426 +v 0.291013 0.200288 0.316273 +v 0.318727 0.219362 0.312026 +v 0.307579 0.234737 0.312026 +v 0.280835 0.214327 0.316273 +v 0.299159 0.188179 0.316273 +v 0.327775 0.205870 0.312026 +v 0.269980 0.227848 0.316273 +v 0.295691 0.249546 0.312026 +v 0.283090 0.263755 0.312026 +v 0.258475 0.240821 0.316273 +v 0.246347 0.253214 0.316273 +v 0.269807 0.277328 0.312026 +v 0.255874 0.290232 0.312026 +v 0.233626 0.264996 0.316273 +v 0.197920 0.248041 0.320571 +v 0.203969 0.255621 0.319426 +v 0.191180 0.265322 0.319426 +v 0.185511 0.257454 0.320571 +v 0.220341 0.276140 0.316273 +v 0.241325 0.302438 0.312026 +v 0.226194 0.313915 0.312026 +v 0.206527 0.286620 0.316273 +v 0.172655 0.266247 0.320571 +v 0.177931 0.274383 0.319426 +v 0.192214 0.296408 0.316273 +v 0.210519 0.324635 0.312026 +v 0.194336 0.334574 0.312026 +v 0.177439 0.305483 0.316273 +v 0.162235 0.313821 0.316273 +v 0.177685 0.343707 0.312026 +v 0.227861 0.351378 0.307595 +v 0.244266 0.376675 0.302995 +v 0.225489 0.388207 0.302995 +v 0.210345 0.362136 0.307595 +v 0.244828 0.339775 0.307595 +v 0.262454 0.364236 0.302995 +v 0.154932 0.389080 0.307595 +v 0.166086 0.417092 0.302995 +v 0.173837 0.381010 0.307595 +v 0.186352 0.408440 0.302995 +v 0.192323 0.372021 0.307595 +v 0.206169 0.398804 0.302995 +v 0.142880 0.455667 0.298242 +v 0.150318 0.481456 0.293351 +v 0.157290 0.450913 0.298242 +v 0.165984 0.476306 0.293351 +v 0.176620 0.443544 0.298242 +v 0.186549 0.468480 0.293351 +v 0.198171 0.434344 0.298242 +v 0.209312 0.458762 0.293351 +v 0.219244 0.424096 0.298242 +v 0.231570 0.447939 0.293351 +v 0.239790 0.412828 0.298242 +v 0.253271 0.436037 0.293351 +v 0.261205 0.327352 0.307595 +v 0.280010 0.350919 0.302995 +v 0.276953 0.314141 0.307595 +v 0.296892 0.336758 0.302995 +v 0.259757 0.400565 0.298242 +v 0.274361 0.423084 0.293351 +v 0.279099 0.387337 0.298242 +v 0.294790 0.409113 0.293351 +v 0.292033 0.300173 0.307595 +v 0.313058 0.321784 0.302995 +v 0.306410 0.285483 0.307595 +v 0.328470 0.306036 0.302995 +v 0.297768 0.373175 0.298242 +v 0.314509 0.394155 0.293351 +v 0.315721 0.358115 0.298242 +v 0.333471 0.378248 0.293351 +v 0.320049 0.270104 0.307595 +v 0.343091 0.289549 0.302995 +v 0.332917 0.254074 0.307595 +v 0.356885 0.272366 0.302995 +v 0.332912 0.342192 0.298242 +v 0.351628 0.361430 0.293351 +v 0.349302 0.325445 0.298242 +v 0.368940 0.343741 0.293351 +v 0.288101 0.444273 0.288338 +v 0.301003 0.464169 0.283218 +v 0.277865 0.478379 0.283218 +v 0.265955 0.457875 0.288338 +v 0.309554 0.429602 0.288338 +v 0.323416 0.448840 0.283218 +v 0.330260 0.413895 0.288338 +v 0.345050 0.432430 0.283218 +v 0.350171 0.397191 0.288338 +v 0.365853 0.414979 0.283218 +v 0.243167 0.470372 0.288338 +v 0.254057 0.491437 0.283218 +v 0.229637 0.503311 0.283218 +v 0.219794 0.481738 0.288338 +v 0.364850 0.307913 0.298242 +v 0.385362 0.325224 0.293351 +v 0.379519 0.289640 0.298242 +v 0.400856 0.305923 0.293351 +v 0.195892 0.491942 0.288338 +v 0.204664 0.513973 0.283218 +v 0.181845 0.522633 0.283218 +v 0.174164 0.500199 0.288338 +v 0.344983 0.237433 0.307595 +v 0.369819 0.254526 0.302995 +v 0.354886 0.222631 0.307595 +v 0.380531 0.238485 0.302995 +v 0.303917 0.180444 0.316273 +v 0.333366 0.196709 0.312026 +v 0.361267 0.212120 0.307595 +v 0.387660 0.226696 0.302995 +v 0.393274 0.270669 0.298242 +v 0.415383 0.285886 0.293351 +v 0.404750 0.253457 0.298242 +v 0.427580 0.267571 0.293351 +v 0.419990 0.227002 0.298103 +v 0.417441 0.231654 0.298207 +v 0.444120 0.238823 0.293212 +v 0.441414 0.243765 0.293316 +v 0.412583 0.240462 0.298242 +v 0.436078 0.253439 0.293351 +v 0.466824 0.249946 0.288200 +v 0.463969 0.255159 0.288303 +v 0.458184 0.265648 0.288338 +v 0.449060 0.280850 0.288338 +v 0.436186 0.300203 0.288338 +v 0.455720 0.313647 0.283218 +v 0.439781 0.335631 0.283218 +v 0.420931 0.321245 0.288338 +v 0.474022 0.326243 0.278006 +v 0.457443 0.349110 0.278006 +v 0.404661 0.341511 0.288338 +v 0.422783 0.356805 0.283218 +v 0.404766 0.377121 0.283218 +v 0.387417 0.360956 0.288338 +v 0.439762 0.371135 0.278006 +v 0.455633 0.384529 0.272718 +v 0.436217 0.406423 0.272718 +v 0.421022 0.392266 0.278006 +v 0.470432 0.397019 0.267369 +v 0.484193 0.408632 0.261974 +v 0.463559 0.431898 0.261974 +v 0.450385 0.419624 0.267369 +v 0.369239 0.379531 0.288338 +v 0.385774 0.396527 0.283218 +v 0.401267 0.412452 0.278006 +v 0.415749 0.427338 0.272718 +v 0.394280 0.447223 0.272718 +v 0.380546 0.431645 0.278006 +v 0.358907 0.449797 0.278006 +v 0.371861 0.466030 0.272718 +v 0.348546 0.483716 0.272718 +v 0.336405 0.466866 0.278006 +v 0.429252 0.441217 0.267369 +v 0.441808 0.454123 0.261974 +v 0.418994 0.475255 0.261974 +v 0.407086 0.461749 0.267369 +v 0.383938 0.481167 0.267369 +v 0.395169 0.495241 0.261974 +v 0.370393 0.514035 0.261974 +v 0.359866 0.499426 0.267369 +v 0.313091 0.482810 0.278006 +v 0.324391 0.500234 0.272718 +v 0.299455 0.515550 0.272718 +v 0.289024 0.497591 0.278006 +v 0.334927 0.516482 0.267369 +v 0.344724 0.531590 0.261974 +v 0.318225 0.547864 0.261974 +v 0.309181 0.532295 0.267369 +v 0.264260 0.511172 0.278006 +v 0.273797 0.529621 0.272718 +v 0.247480 0.542418 0.272718 +v 0.238860 0.523525 0.278006 +v 0.282690 0.546824 0.267369 +v 0.290959 0.562818 0.261974 +v 0.262993 0.576417 0.261974 +v 0.255518 0.560036 0.267369 +v 0.212884 0.534613 0.278006 +v 0.220567 0.553908 0.272718 +v 0.195769 0.563300 0.272718 +v 0.189042 0.543652 0.278006 +v 0.227731 0.571898 0.267369 +v 0.234392 0.588627 0.261974 +v 0.207874 0.598656 0.261974 +v 0.202041 0.581621 0.267369 +v 0.298625 0.577647 0.256549 +v 0.306166 0.592234 0.250663 +v 0.276738 0.606544 0.250663 +v 0.269922 0.591605 0.256549 +v 0.326610 0.562299 0.256549 +v 0.334857 0.576499 0.250663 +v 0.240568 0.604136 0.256549 +v 0.246643 0.619392 0.250663 +v 0.218600 0.629985 0.250663 +v 0.213281 0.614450 0.256549 +v 0.181164 0.588413 0.267369 +v 0.175799 0.569807 0.272718 +v 0.186154 0.605714 0.261974 +v 0.170958 0.610086 0.261940 +v 0.166606 0.592601 0.267335 +v 0.161926 0.573798 0.272684 +v 0.353807 0.545595 0.256549 +v 0.362741 0.559373 0.250663 +v 0.380152 0.527578 0.256549 +v 0.389752 0.540901 0.250663 +v 0.170044 0.549852 0.278006 +v 0.163887 0.528504 0.283218 +v 0.156906 0.553632 0.277972 +v 0.151536 0.532058 0.283183 +v 0.405581 0.508290 0.256549 +v 0.415823 0.521125 0.250663 +v 0.430033 0.487777 0.256549 +v 0.440893 0.500095 0.250663 +v 0.157316 0.505721 0.288338 +v 0.145805 0.509033 0.288303 +v 0.140088 0.510660 0.288200 +v 0.145539 0.533763 0.283080 +v 0.150646 0.555411 0.277869 +v 0.147949 0.556136 0.277663 +v 0.155420 0.575646 0.272581 +v 0.152722 0.576367 0.272376 +v 0.159871 0.594513 0.267233 +v 0.157172 0.595230 0.267029 +v 0.164010 0.612056 0.261839 +v 0.145500 0.556755 0.277319 +v 0.143299 0.557267 0.276839 +v 0.150271 0.576979 0.272035 +v 0.154720 0.595835 0.266690 +v 0.141346 0.557672 0.276221 +v 0.139641 0.557971 0.275466 +v 0.138184 0.558163 0.274574 +v 0.133090 0.536575 0.279770 +v 0.127652 0.513526 0.284877 +v 0.126452 0.513647 0.283839 +v 0.125500 0.513668 0.282663 +v 0.119716 0.489149 0.287657 +v 0.113565 0.463080 0.292532 +v 0.112873 0.463038 0.291209 +v 0.099008 0.406008 0.299060 +v 0.097301 0.406235 0.297906 +v 0.090061 0.375283 0.302320 +v 0.091705 0.375055 0.303476 +v 0.105912 0.435274 0.294479 +v 0.104146 0.435499 0.293327 +v 0.083993 0.342370 0.307711 +v 0.082415 0.342597 0.306553 +v 0.167847 0.628320 0.256415 +v 0.174992 0.626295 0.256515 +v 0.178961 0.642240 0.250630 +v 0.171622 0.644317 0.250531 +v 0.190780 0.621754 0.256549 +v 0.195330 0.637532 0.250663 +v 0.175572 0.661062 0.243757 +v 0.183115 0.658929 0.243855 +v 0.200093 0.654046 0.243887 +v 0.204693 0.669995 0.236703 +v 0.224168 0.646246 0.243887 +v 0.229544 0.661951 0.236703 +v 0.208754 0.684077 0.229591 +v 0.234291 0.675816 0.229591 +v 0.253001 0.635360 0.243887 +v 0.259142 0.650782 0.236703 +v 0.283873 0.622181 0.243887 +v 0.290763 0.637283 0.236703 +v 0.264564 0.664397 0.229591 +v 0.269306 0.676306 0.222589 +v 0.296846 0.650616 0.229591 +v 0.302167 0.662278 0.222589 +v 0.314060 0.607503 0.243887 +v 0.321682 0.622248 0.236703 +v 0.343490 0.591361 0.243887 +v 0.351827 0.605714 0.236703 +v 0.273409 0.686609 0.215731 +v 0.276911 0.695404 0.209055 +v 0.306770 0.672366 0.215731 +v 0.310699 0.680979 0.209055 +v 0.328412 0.635266 0.229591 +v 0.334299 0.646653 0.222589 +v 0.359188 0.618387 0.229591 +v 0.365627 0.629471 0.222589 +v 0.372093 0.573794 0.243887 +v 0.381124 0.587721 0.236703 +v 0.399800 0.554845 0.243887 +v 0.409504 0.568313 0.236703 +v 0.279853 0.702792 0.202597 +v 0.282274 0.708873 0.196391 +v 0.314000 0.688214 0.202597 +v 0.316717 0.694169 0.196391 +v 0.339392 0.656504 0.215731 +v 0.343739 0.664913 0.209055 +v 0.371196 0.639060 0.215731 +v 0.375951 0.647246 0.209055 +v 0.389098 0.600017 0.229591 +v 0.396073 0.610772 0.222589 +v 0.418071 0.580203 0.229591 +v 0.425565 0.590603 0.222589 +v 0.284214 0.713746 0.190475 +v 0.318894 0.698941 0.190476 +v 0.347391 0.671978 0.202597 +v 0.350397 0.677792 0.196391 +v 0.379945 0.654123 0.202597 +v 0.352805 0.682451 0.190476 +v 0.411584 0.634692 0.202597 +v 0.407257 0.628019 0.209055 +v 0.402106 0.620076 0.215731 +v 0.432048 0.599599 0.215731 +v 0.460948 0.577677 0.215731 +v 0.454032 0.569009 0.222589 +v 0.498679 0.512580 0.229591 +v 0.488460 0.502075 0.236703 +v 0.472928 0.536431 0.229591 +v 0.463236 0.525438 0.236703 +v 0.446037 0.558990 0.229591 +v 0.436896 0.547535 0.236703 +v 0.476885 0.490178 0.243887 +v 0.464900 0.477858 0.250663 +v 0.452259 0.512986 0.243887 +v 0.496950 0.419399 0.256549 +v 0.475773 0.443278 0.256549 +v 0.426543 0.534559 0.243887 +v 0.453449 0.466089 0.256549 +v 0.074948 0.299399 0.313930 +v 0.074476 0.300293 0.312819 +v 0.074277 0.301187 0.311591 +v 0.072953 0.302150 0.310626 +v 0.074365 0.301558 0.311775 +v 0.073008 0.302384 0.310729 +v 0.074476 0.302029 0.311932 +v 0.073087 0.302723 0.310830 +v 0.074617 0.302626 0.312055 +v 0.073199 0.303200 0.310918 +v 0.074795 0.303380 0.312139 +v 0.073352 0.303851 0.310984 +v 0.277186 0.139280 0.311591 +v 0.276269 0.139275 0.312819 +v 0.278390 0.138264 0.310626 +v 0.275293 0.139537 0.313930 +v 0.179466 0.747036 0.176068 +v 0.176907 0.746554 0.175583 +v 0.179834 0.748593 0.172222 +v 0.177260 0.748059 0.171870 +v 0.180144 0.749906 0.162776 +v 0.177553 0.749314 0.162729 +v 0.177529 0.749210 0.165551 +v 0.180117 0.749795 0.165666 +v 0.180868 0.751238 0.162836 +v 0.180865 0.751227 0.160000 +v 0.180140 0.749892 0.160000 +v 0.177549 0.749298 0.160000 +v 0.181815 0.752359 0.162890 +v 0.182986 0.753269 0.162939 +v 0.182984 0.753262 0.160000 +v 0.181813 0.752350 0.160000 +v 0.184380 0.753968 0.162982 +v 0.185997 0.754455 0.163019 +v 0.185996 0.754451 0.160000 +v 0.184378 0.753962 0.160000 +v 0.187838 0.754731 0.163050 +v 0.189902 0.754796 0.163076 +v 0.189901 0.754795 0.160000 +v 0.187837 0.754728 0.160000 +v 0.192189 0.754650 0.163096 +v 0.194700 0.754293 0.163111 +v 0.194700 0.754293 0.160000 +v 0.192189 0.754649 0.160000 +v 0.197434 0.753725 0.163119 +v 0.206115 0.751331 0.163123 +v 0.206115 0.751331 0.160000 +v 0.197434 0.753725 0.160000 +v 0.226468 0.745498 0.163125 +v 0.226468 0.745498 0.160000 +v 0.254998 0.736294 0.163125 +v 0.254998 0.736294 0.160000 +v 0.288213 0.723787 0.163125 +v 0.288213 0.723787 0.160000 +v 0.323381 0.708773 0.163125 +v 0.323381 0.708773 0.160000 +v 0.357769 0.692052 0.163125 +v 0.357769 0.692052 0.160000 +v 0.391296 0.673664 0.163125 +v 0.391296 0.673664 0.160000 +v 0.423879 0.653652 0.163125 +v 0.423879 0.653652 0.160000 +v 0.455442 0.632066 0.163125 +v 0.455442 0.632066 0.160000 +v 0.485907 0.608957 0.163125 +v 0.485907 0.608957 0.160000 +v 0.515202 0.584381 0.163125 +v 0.515202 0.584381 0.160000 +v 0.543256 0.558397 0.163125 +v 0.543256 0.558397 0.160000 +v 0.570000 0.531069 0.163125 +v 0.570000 0.531069 0.160000 +v 0.595371 0.502461 0.163125 +v 0.595371 0.502461 0.160000 +v 0.619309 0.472643 0.163125 +v 0.619309 0.472643 0.160000 +v 0.641754 0.441685 0.163125 +v 0.641754 0.441685 0.160000 +v 0.661322 0.412075 0.163125 +v 0.661322 0.412075 0.160000 +v 0.676630 0.386300 0.163125 +v 0.676630 0.386300 0.160000 +v 0.686835 0.367750 0.163123 +v 0.686835 0.367750 0.160000 +v 0.691096 0.359816 0.163119 +v 0.692257 0.357277 0.163111 +v 0.692257 0.357276 0.160000 +v 0.691096 0.359816 0.160000 +v 0.693163 0.354908 0.163096 +v 0.693813 0.352710 0.163076 +v 0.693811 0.352709 0.160000 +v 0.693162 0.354907 0.160000 +v 0.694208 0.350683 0.163051 +v 0.694347 0.348827 0.163019 +v 0.694343 0.348825 0.160000 +v 0.694205 0.350681 0.160000 +v 0.694230 0.347141 0.162982 +v 0.693859 0.345627 0.162939 +v 0.693852 0.345624 0.160000 +v 0.694225 0.347139 0.160000 +v 0.693232 0.344284 0.162890 +v 0.692349 0.343111 0.162836 +v 0.692338 0.343106 0.160000 +v 0.693223 0.344279 0.160000 +v 0.693112 0.344225 0.165944 +v 0.692238 0.343057 0.165812 +v 0.691211 0.342109 0.162776 +v 0.691137 0.339604 0.162729 +v 0.691122 0.339597 0.160000 +v 0.691198 0.342103 0.160000 +v 0.691108 0.342059 0.165666 +v 0.691041 0.339557 0.165551 +v 0.690776 0.341896 0.168785 +v 0.691883 0.342883 0.169068 +v 0.690726 0.339404 0.168562 +v 0.692738 0.344042 0.169324 +v 0.112430 0.462899 0.289747 +v 0.110607 0.463120 0.288598 +v 0.180032 0.749435 0.168785 +v 0.177449 0.748868 0.168562 +v 0.689818 0.353269 0.179363 +v -0.475280 0.610212 0.169324 +v -0.475012 0.608798 0.169068 +v -0.474450 0.608084 0.172670 +v -0.474694 0.609467 0.173076 +v -0.475247 0.611673 0.169553 +v -0.474638 0.610900 0.173439 +v -0.475517 0.612016 0.166062 +v -0.475539 0.610540 0.165944 +v -0.475257 0.609108 0.165812 +v -0.188439 0.244311 0.308918 +v -0.190265 0.244192 0.308388 +v -0.189906 0.243738 0.306899 +v -0.188058 0.243827 0.307355 +v -0.187298 0.243507 0.309592 +v -0.186887 0.242985 0.307936 +v -0.187684 0.243997 0.310991 +v -0.188781 0.244746 0.310203 +v -0.190573 0.244582 0.309585 +v 0.160364 0.758823 0.169756 +v 0.161323 0.757613 0.169553 +v 0.161417 0.758040 0.166062 +v 0.160462 0.759267 0.166166 +v 0.159113 0.759942 0.169931 +v 0.159214 0.760401 0.166257 +v 0.158890 0.758925 0.174037 +v 0.160146 0.757832 0.173759 +v 0.161112 0.756653 0.173439 +v 0.064034 0.305832 0.312139 +v 0.063606 0.305740 0.313610 +v 0.063411 0.304853 0.313502 +v 0.063868 0.305076 0.312055 +v 0.065539 0.305632 0.310984 +v 0.065394 0.304979 0.310918 +v 0.065720 0.306447 0.311013 +v 0.064232 0.306731 0.312176 +v 0.063827 0.306746 0.313656 +v 0.063192 0.302000 0.308918 +v 0.062515 0.300779 0.309592 +v 0.062372 0.300130 0.307936 +v 0.063060 0.301398 0.307355 +v 0.064887 0.302688 0.308388 +v 0.064761 0.302123 0.306899 +v 0.064994 0.303173 0.309585 +v 0.063311 0.302540 0.310203 +v 0.062649 0.301389 0.310991 +v -0.474911 0.613180 0.169756 +v -0.474272 0.614732 0.169931 +v -0.474562 0.615101 0.166257 +v -0.475192 0.613537 0.166166 +v -0.474282 0.612382 0.173759 +v -0.473627 0.613914 0.174037 +v -0.473330 0.616331 0.170079 +v -0.472088 0.617975 0.170200 +v -0.472393 0.618362 0.166395 +v -0.473630 0.616710 0.166333 +v -0.472672 0.615494 0.174271 +v -0.471418 0.617124 0.174463 +v -0.473150 0.610944 0.178186 +v -0.472468 0.612443 0.178568 +v -0.473535 0.609500 0.177745 +v -0.471855 0.607367 0.182484 +v -0.471433 0.608765 0.183038 +v -0.470721 0.610223 0.183518 +v -0.473624 0.608110 0.177245 +v -0.473419 0.606774 0.176686 +v -0.471826 0.604752 0.181154 +v -0.471986 0.606029 0.181856 +v -0.470543 0.619665 0.170295 +v -0.468695 0.621402 0.170362 +v -0.469009 0.621800 0.166479 +v -0.470853 0.620059 0.166444 +v -0.469863 0.618802 0.174613 +v -0.468009 0.620531 0.174720 +v -0.469688 0.603112 0.186936 +v -0.469513 0.604394 0.187670 +v -0.469577 0.601897 0.186116 +v -0.466595 0.598111 0.191516 +v -0.466656 0.599262 0.192433 +v -0.466436 0.600487 0.193254 +v -0.469180 0.600749 0.185209 +v -0.470471 0.598558 0.184497 +v -0.467580 0.594904 0.189706 +v -0.466255 0.597034 0.190502 +v -0.471375 0.603535 0.180378 +v -0.472627 0.601285 0.179769 +v -0.462514 0.592285 0.196200 +v -0.462801 0.593293 0.197301 +v -0.463874 0.590216 0.195335 +v -0.459277 0.584403 0.201327 +v -0.457888 0.586411 0.202247 +v -0.458123 0.587354 0.203419 +v -0.452305 0.579322 0.208589 +v -0.452491 0.580204 0.209818 +v -0.453719 0.577373 0.207623 +v -0.447130 0.569041 0.214173 +v -0.445697 0.570933 0.215176 +v -0.445838 0.571757 0.216452 +v -0.462812 0.594382 0.198297 +v -0.462549 0.595551 0.199189 +v -0.458088 0.588384 0.204479 +v -0.457782 0.589500 0.205428 +v -0.469053 0.605742 0.188317 +v -0.468306 0.607158 0.188878 +v -0.465936 0.601785 0.193978 +v -0.465155 0.603157 0.194605 +v -0.471492 0.613996 0.178892 +v -0.470219 0.615602 0.179157 +v -0.469717 0.611742 0.183925 +v -0.468423 0.613321 0.184257 +v -0.468651 0.617264 0.179363 +v -0.466787 0.618979 0.179510 +v -0.466838 0.614961 0.184516 +v -0.464961 0.616661 0.184701 +v -0.467274 0.608641 0.189353 +v -0.465957 0.610190 0.189742 +v -0.464094 0.604603 0.195136 +v -0.462752 0.606122 0.195571 +v -0.462010 0.596801 0.199975 +v -0.461196 0.598130 0.200657 +v -0.457206 0.590702 0.206265 +v -0.456360 0.591991 0.206991 +v -0.466545 0.623184 0.170403 +v -0.459273 0.628481 0.170423 +v -0.459585 0.628887 0.166510 +v -0.466861 0.623584 0.166500 +v -0.465856 0.622308 0.174784 +v -0.458593 0.627594 0.174816 +v -0.464628 0.620749 0.179598 +v -0.457382 0.626017 0.179642 +v -0.462795 0.618421 0.184811 +v -0.455575 0.623664 0.184867 +v -0.464353 0.611807 0.190044 +v -0.462464 0.613490 0.190260 +v -0.461130 0.607715 0.195909 +v -0.459228 0.609382 0.196150 +v -0.442059 0.640762 0.170430 +v -0.442355 0.641180 0.166514 +v -0.441411 0.639851 0.174826 +v -0.416521 0.656400 0.174826 +v -0.417123 0.657342 0.170430 +v -0.417399 0.657773 0.166514 +v -0.460106 0.599540 0.201233 +v -0.458742 0.601030 0.201705 +v -0.455244 0.593366 0.207604 +v -0.453857 0.594828 0.208107 +v -0.452412 0.581178 0.210931 +v -0.452067 0.582244 0.211926 +v -0.445718 0.572679 0.217606 +v -0.445337 0.573699 0.218639 +v -0.437997 0.561157 0.221957 +v -0.439445 0.559321 0.220925 +v -0.430595 0.548128 0.227835 +v -0.429138 0.549909 0.228891 +v -0.438097 0.561929 0.223272 +v -0.429200 0.550633 0.230236 +v -0.419051 0.537103 0.235933 +v -0.419080 0.537784 0.237302 +v -0.420510 0.535375 0.234858 +v -0.410034 0.522126 0.241506 +v -0.408577 0.523804 0.242597 +v -0.408575 0.524448 0.243985 +v -0.437940 0.562803 0.224460 +v -0.437525 0.563780 0.225524 +v -0.429009 0.551464 0.231452 +v -0.428563 0.552402 0.232541 +v -0.451457 0.583402 0.212804 +v -0.450581 0.584653 0.213565 +v -0.444695 0.574817 0.219551 +v -0.443790 0.576032 0.220341 +v -0.457102 0.602600 0.202072 +v -0.455186 0.604250 0.202334 +v -0.452200 0.596376 0.208497 +v -0.450272 0.598011 0.208776 +v -0.449439 0.585996 0.214209 +v -0.448031 0.587432 0.214736 +v -0.442625 0.577345 0.221009 +v -0.441198 0.578756 0.221556 +v -0.436853 0.564860 0.226463 +v -0.435923 0.566043 0.227276 +v -0.427864 0.553448 0.233501 +v -0.426911 0.554601 0.234334 +v -0.418858 0.538576 0.238541 +v -0.418385 0.539479 0.239650 +v -0.408326 0.525204 0.245241 +v -0.407829 0.526078 0.246365 +v -0.434735 0.567328 0.227964 +v -0.433291 0.568717 0.228528 +v -0.425703 0.555861 0.235038 +v -0.424243 0.557229 0.235614 +v -0.417661 0.540495 0.240628 +v -0.416687 0.541620 0.241475 +v -0.407084 0.527066 0.247357 +v -0.406092 0.528168 0.248217 +v -0.398254 0.512417 0.251067 +v -0.397736 0.513264 0.252204 +v -0.398526 0.511689 0.249797 +v -0.388293 0.498697 0.255164 +v -0.388000 0.499399 0.256445 +v -0.387464 0.500222 0.257591 +v -0.398553 0.511078 0.248393 +v -0.400007 0.509445 0.247290 +v -0.389789 0.496524 0.252636 +v -0.388343 0.498116 0.253748 +v -0.377306 0.484103 0.259085 +v -0.377236 0.484658 0.260511 +v -0.378742 0.482553 0.257964 +v -0.366840 0.467501 0.263258 +v -0.365418 0.469009 0.264385 +v -0.365329 0.469541 0.265819 +v -0.352654 0.452803 0.269631 +v -0.352547 0.453313 0.271073 +v -0.354058 0.451337 0.268498 +v -0.340370 0.434026 0.273668 +v -0.338985 0.435450 0.274806 +v -0.338863 0.435939 0.276254 +v -0.376925 0.485337 0.261801 +v -0.376372 0.486140 0.262955 +v -0.365001 0.470199 0.267117 +v -0.364434 0.470982 0.268278 +v -0.396973 0.514229 0.253206 +v -0.395964 0.515311 0.254075 +v -0.386685 0.501167 0.258603 +v -0.385662 0.502232 0.259479 +v -0.324386 0.416913 0.279894 +v -0.324248 0.417383 0.281348 +v -0.325748 0.415534 0.278752 +v -0.310163 0.395824 0.283734 +v -0.308826 0.397159 0.284880 +v -0.308674 0.397609 0.286338 +v -0.352204 0.453951 0.272377 +v -0.351622 0.454716 0.273544 +v -0.338504 0.436557 0.277564 +v -0.337909 0.437306 0.278736 +v -0.375578 0.487065 0.263974 +v -0.374543 0.488114 0.264856 +v -0.363626 0.471891 0.269303 +v -0.362580 0.472925 0.270191 +v -0.415462 0.542858 0.242192 +v -0.413987 0.544208 0.242779 +v -0.404851 0.529387 0.248944 +v -0.403363 0.530719 0.249539 +v -0.394710 0.516511 0.254811 +v -0.393211 0.517830 0.255412 +v -0.384397 0.503418 0.260221 +v -0.382888 0.504724 0.260828 +v -0.373267 0.489287 0.265603 +v -0.371749 0.490583 0.266214 +v -0.361294 0.474085 0.270942 +v -0.359768 0.475371 0.271557 +v -0.412261 0.545668 0.243235 +v -0.410284 0.547242 0.243561 +v -0.420559 0.560286 0.236383 +v -0.422528 0.558704 0.236063 +v -0.401627 0.532169 0.250002 +v -0.399643 0.533731 0.250333 +v -0.391467 0.519269 0.255880 +v -0.389477 0.520824 0.256214 +v -0.381136 0.506151 0.261300 +v -0.379141 0.507701 0.261637 +v -0.431589 0.570208 0.228966 +v -0.429629 0.571802 0.229278 +v -0.437560 0.581871 0.222285 +v -0.439510 0.580265 0.221981 +v -0.446358 0.588959 0.215146 +v -0.444419 0.590579 0.215439 +v -0.427412 0.573498 0.229466 +v -0.420739 0.578303 0.229560 +v -0.428551 0.588475 0.222558 +v -0.435349 0.583575 0.222467 +v -0.418337 0.561976 0.236575 +v -0.411808 0.566673 0.236671 +v -0.442214 0.592292 0.215614 +v -0.435308 0.597274 0.215702 +v -0.441077 0.604786 0.209027 +v -0.448074 0.599732 0.208944 +v -0.452996 0.605981 0.202492 +v -0.445923 0.611096 0.202570 +v -0.449911 0.616289 0.196367 +v -0.457045 0.611122 0.196295 +v -0.460289 0.615241 0.190389 +v -0.453106 0.620450 0.190454 +v -0.429360 0.622901 0.202597 +v -0.433152 0.628235 0.196391 +v -0.424752 0.616420 0.209055 +v -0.401031 0.632180 0.209055 +v -0.405316 0.638879 0.202597 +v -0.408842 0.644393 0.196391 +v -0.440259 0.638231 0.179657 +v -0.438540 0.635813 0.184885 +v -0.413851 0.652225 0.184885 +v -0.415449 0.654725 0.179657 +v -0.436192 0.632510 0.190475 +v -0.411667 0.648812 0.190475 +v -0.419266 0.608705 0.215731 +v -0.412840 0.599667 0.222589 +v -0.389956 0.614862 0.222589 +v -0.395930 0.624204 0.215731 +v -0.386686 0.675533 0.170430 +v -0.386941 0.675977 0.166514 +v -0.386131 0.674563 0.174826 +v -0.352567 0.692697 0.174826 +v -0.353074 0.693694 0.170430 +v -0.353306 0.694150 0.166514 +v -0.318610 0.710182 0.170430 +v -0.318820 0.710649 0.166514 +v -0.318153 0.709162 0.174826 +v -0.282973 0.723919 0.174826 +v -0.283380 0.724960 0.170430 +v -0.283566 0.725437 0.166514 +v -0.385143 0.672837 0.179657 +v -0.383669 0.670262 0.184885 +v -0.350319 0.688281 0.184885 +v -0.351665 0.690925 0.179657 +v -0.247466 0.737992 0.170430 +v -0.247629 0.738477 0.166514 +v -0.247111 0.736932 0.174826 +v -0.210654 0.748170 0.174826 +v -0.210957 0.749246 0.170430 +v -0.211095 0.749738 0.166514 +v -0.173939 0.758694 0.170430 +v -0.174053 0.759193 0.166514 +v -0.173689 0.757604 0.174826 +v -0.136306 0.765215 0.174826 +v -0.136502 0.766315 0.170430 +v -0.136591 0.766819 0.166514 +v -0.317339 0.707347 0.179657 +v -0.316124 0.704641 0.184885 +v -0.281169 0.719304 0.184885 +v -0.282249 0.722067 0.179657 +v -0.246478 0.735046 0.179657 +v -0.245535 0.732233 0.184885 +v -0.209311 0.743400 0.184885 +v -0.210115 0.746255 0.179657 +v -0.173244 0.755666 0.179657 +v -0.172581 0.752774 0.184885 +v -0.135437 0.760336 0.184885 +v -0.135957 0.763257 0.179657 +v -0.244247 0.728391 0.190476 +v -0.242579 0.723419 0.196391 +v -0.206791 0.734451 0.196391 +v -0.208212 0.739499 0.190476 +v -0.279693 0.715530 0.190476 +v -0.277784 0.710645 0.196391 +v -0.171676 0.748824 0.190476 +v -0.170504 0.743712 0.196391 +v -0.133806 0.751183 0.196391 +v -0.134726 0.756347 0.190476 +v -0.098736 0.772089 0.170430 +v -0.098801 0.772597 0.166514 +v -0.098594 0.770981 0.174826 +v -0.060645 0.774890 0.174826 +v -0.060732 0.776005 0.170430 +v -0.060772 0.776515 0.166514 +v -0.022583 0.778049 0.170430 +v -0.022597 0.778561 0.166514 +v -0.022550 0.776932 0.174826 +v 0.015599 0.777103 0.174826 +v 0.015622 0.778221 0.170430 +v 0.015632 0.778733 0.166514 +v -0.098342 0.769008 0.179657 +v -0.097966 0.766065 0.184885 +v -0.060259 0.769950 0.184885 +v -0.060490 0.772908 0.179657 +v 0.053789 0.776516 0.170430 +v 0.053824 0.777027 0.166514 +v 0.053711 0.775401 0.174826 +v 0.088978 0.772291 0.174826 +v 0.089110 0.773401 0.170430 +v 0.089170 0.773909 0.166514 +v -0.022492 0.774944 0.179657 +v -0.022406 0.771979 0.184885 +v 0.015500 0.772149 0.184885 +v 0.015559 0.775115 0.179657 +v 0.118778 0.769340 0.170430 +v 0.118863 0.769845 0.166514 +v 0.118592 0.768238 0.174826 +v 0.139397 0.764690 0.174816 +v 0.139623 0.765784 0.170423 +v 0.139727 0.766285 0.166510 +v 0.053574 0.773417 0.179657 +v 0.053369 0.770457 0.184885 +v 0.088393 0.767370 0.184885 +v 0.088743 0.770316 0.179657 +v 0.148477 0.764184 0.170403 +v 0.151188 0.763516 0.170362 +v 0.151297 0.764011 0.166479 +v 0.148586 0.764682 0.166500 +v 0.148237 0.763095 0.174784 +v 0.150950 0.762433 0.174720 +v 0.118260 0.766277 0.179657 +v 0.117766 0.763352 0.184885 +v 0.138392 0.759837 0.184867 +v 0.138994 0.762743 0.179642 +v 0.147811 0.761156 0.179598 +v 0.150526 0.760504 0.179510 +v 0.147175 0.758263 0.184812 +v 0.149893 0.757622 0.184701 +v 0.153608 0.762758 0.170295 +v 0.155735 0.761910 0.170200 +v 0.155841 0.762391 0.166396 +v 0.153715 0.763248 0.166444 +v 0.153372 0.761686 0.174613 +v 0.155502 0.760852 0.174464 +v 0.157570 0.760972 0.170079 +v 0.157674 0.761442 0.166333 +v 0.157342 0.759931 0.174271 +v 0.156932 0.758068 0.178892 +v 0.158488 0.757096 0.178569 +v 0.155086 0.758960 0.179157 +v 0.154463 0.756124 0.184257 +v 0.156316 0.755267 0.183925 +v 0.157881 0.754336 0.183519 +v 0.146306 0.754309 0.190389 +v 0.149026 0.753680 0.190260 +v 0.137570 0.755869 0.190454 +v 0.136507 0.750731 0.196367 +v 0.145180 0.749188 0.196295 +v 0.147903 0.748573 0.196150 +v 0.117091 0.759356 0.190476 +v 0.116218 0.754184 0.196391 +v 0.087915 0.763346 0.190476 +v 0.087297 0.758138 0.196391 +v 0.151460 0.752988 0.190044 +v 0.153607 0.752232 0.189742 +v 0.152322 0.756910 0.184516 +v 0.150341 0.747901 0.195909 +v 0.152495 0.747174 0.195571 +v 0.053089 0.766415 0.190476 +v 0.052726 0.761183 0.196391 +v 0.015419 0.768097 0.190476 +v 0.015313 0.762854 0.196391 +v 0.143775 0.742796 0.202492 +v 0.146500 0.742193 0.202334 +v 0.135179 0.744320 0.202570 +v 0.133566 0.736529 0.209027 +v 0.142067 0.735028 0.208944 +v 0.144795 0.734436 0.208776 +v 0.115128 0.747731 0.202597 +v 0.113803 0.739890 0.209055 +v 0.086524 0.751639 0.202597 +v 0.085586 0.743742 0.209055 +v -0.022289 0.767928 0.190476 +v -0.022136 0.762685 0.196391 +v -0.059942 0.765910 0.190476 +v -0.059533 0.760681 0.196391 +v 0.052274 0.754653 0.202597 +v 0.051725 0.746720 0.209055 +v 0.015182 0.756310 0.202597 +v 0.015022 0.748359 0.209055 +v -0.097452 0.762046 0.190476 +v -0.096786 0.756843 0.196391 +v -0.021947 0.756143 0.202597 +v -0.021716 0.748194 0.209055 +v -0.059023 0.754156 0.202597 +v -0.058402 0.746228 0.209055 +v -0.095956 0.750351 0.202597 +v -0.094947 0.742463 0.209055 +v -0.132659 0.744739 0.202597 +v -0.131264 0.736910 0.209055 +v -0.169041 0.737333 0.202597 +v -0.167264 0.729581 0.209055 +v -0.205017 0.728150 0.202597 +v -0.202862 0.720496 0.209055 +v -0.021441 0.738731 0.215731 +v -0.021120 0.727647 0.222589 +v 0.014610 0.727807 0.222589 +v 0.014832 0.738894 0.215731 +v -0.057663 0.736790 0.215731 +v -0.056798 0.725734 0.222589 +v -0.093746 0.733072 0.215731 +v -0.092340 0.722073 0.222589 +v -0.129604 0.727590 0.215731 +v -0.127659 0.716673 0.222589 +v 0.051070 0.737276 0.215731 +v 0.050304 0.726213 0.222589 +v 0.083161 0.723329 0.222589 +v 0.084469 0.734341 0.215731 +v 0.112227 0.730555 0.215731 +v 0.110380 0.719620 0.222589 +v 0.129397 0.716390 0.222558 +v 0.131646 0.727255 0.215702 +v 0.049418 0.713425 0.229591 +v 0.048406 0.698805 0.236703 +v 0.079920 0.696047 0.236703 +v 0.081649 0.710600 0.229591 +v 0.014353 0.714991 0.229591 +v 0.014058 0.700339 0.236703 +v 0.140033 0.725778 0.215614 +v 0.142763 0.725197 0.215439 +v 0.137650 0.714941 0.222467 +v 0.140383 0.714371 0.222285 +v 0.108245 0.706981 0.229591 +v 0.105804 0.692531 0.236703 +v 0.123823 0.689472 0.236671 +v 0.126796 0.703831 0.229560 +v 0.134896 0.702413 0.229466 +v 0.137631 0.701852 0.229278 +v 0.131746 0.688088 0.236575 +v 0.134483 0.687535 0.236383 +v 0.148943 0.741542 0.202072 +v 0.151103 0.740843 0.201705 +v 0.147242 0.733804 0.208497 +v 0.149408 0.733133 0.208107 +v 0.145214 0.724584 0.215146 +v 0.147386 0.723937 0.214736 +v 0.142838 0.713774 0.221981 +v 0.145015 0.713151 0.221556 +v 0.155468 0.751411 0.189353 +v 0.157043 0.750526 0.188878 +v 0.154364 0.746391 0.195136 +v 0.155949 0.745551 0.194605 +v 0.159753 0.756044 0.178186 +v 0.160729 0.754912 0.177745 +v 0.159158 0.753334 0.183038 +v 0.160146 0.752259 0.182484 +v 0.152980 0.740096 0.201233 +v 0.154575 0.739302 0.200657 +v 0.151293 0.732421 0.207604 +v 0.152897 0.731669 0.206991 +v 0.158331 0.749577 0.188317 +v 0.159334 0.748563 0.187670 +v 0.157250 0.744657 0.193978 +v 0.158266 0.743706 0.193254 +v 0.161416 0.753700 0.177245 +v 0.161812 0.752407 0.176686 +v 0.162170 0.754035 0.172671 +v 0.161787 0.755387 0.173076 +v 0.160847 0.751112 0.181856 +v 0.161259 0.749893 0.181154 +v 0.161919 0.751035 0.176068 +v 0.164016 0.749492 0.175583 +v 0.164351 0.751001 0.171870 +v 0.162262 0.752597 0.172222 +v 0.161383 0.748601 0.180378 +v 0.163490 0.747121 0.179769 +v 0.160049 0.747486 0.186936 +v 0.160479 0.746344 0.186116 +v 0.158997 0.742699 0.192433 +v 0.159444 0.741637 0.191516 +v 0.155887 0.738460 0.199975 +v 0.156917 0.737570 0.199189 +v 0.154220 0.730878 0.206265 +v 0.155262 0.730047 0.205428 +v 0.160622 0.745138 0.185209 +v 0.162737 0.743728 0.184497 +v 0.159607 0.740519 0.190502 +v 0.161728 0.739179 0.189706 +v 0.157663 0.736633 0.198297 +v 0.158127 0.735648 0.197301 +v 0.156024 0.729175 0.204479 +v 0.156504 0.728264 0.203419 +v 0.158308 0.734615 0.196200 +v 0.160434 0.733345 0.195335 +v 0.156703 0.727313 0.202247 +v 0.158829 0.726110 0.201327 +v 0.152225 0.721803 0.212804 +v 0.153279 0.721026 0.211926 +v 0.150891 0.722547 0.213565 +v 0.148535 0.711829 0.220341 +v 0.149878 0.711128 0.219551 +v 0.150943 0.710402 0.218639 +v 0.154765 0.718499 0.208589 +v 0.156888 0.717361 0.207623 +v 0.154549 0.719374 0.209819 +v 0.152240 0.708873 0.216452 +v 0.152472 0.708069 0.215176 +v 0.154587 0.706991 0.214173 +v 0.154054 0.720216 0.210931 +v 0.151731 0.709651 0.217606 +v 0.149800 0.695916 0.221958 +v 0.151903 0.694894 0.220925 +v 0.149554 0.696654 0.223272 +v 0.146466 0.682611 0.230236 +v 0.146725 0.681932 0.228891 +v 0.148812 0.680963 0.227835 +v 0.149031 0.697372 0.224460 +v 0.148232 0.698071 0.225524 +v 0.145122 0.683925 0.232541 +v 0.145932 0.683275 0.231452 +v 0.143225 0.666011 0.235933 +v 0.145291 0.665091 0.234858 +v 0.142954 0.666636 0.237303 +v 0.139308 0.650055 0.243985 +v 0.139590 0.649477 0.242597 +v 0.141632 0.648601 0.241506 +v 0.136111 0.633655 0.248394 +v 0.138131 0.632818 0.247291 +v 0.135821 0.634193 0.249797 +v 0.132270 0.618040 0.255164 +v 0.132568 0.617539 0.253748 +v 0.134563 0.616736 0.252636 +v 0.142409 0.667252 0.238541 +v 0.141590 0.667859 0.239650 +v 0.137926 0.651197 0.246366 +v 0.138754 0.650628 0.245241 +v 0.135258 0.634730 0.251067 +v 0.134424 0.635266 0.252204 +v 0.130859 0.619052 0.257591 +v 0.131700 0.618545 0.256445 +v 0.127856 0.601063 0.261801 +v 0.128432 0.600587 0.260511 +v 0.127009 0.601544 0.262955 +v 0.122866 0.582700 0.268278 +v 0.123718 0.582242 0.267117 +v 0.124300 0.581793 0.265819 +v 0.133316 0.635802 0.253206 +v 0.131937 0.636337 0.254075 +v 0.128362 0.620076 0.259479 +v 0.129746 0.619563 0.258603 +v 0.136826 0.651762 0.247357 +v 0.135452 0.652323 0.248217 +v 0.125892 0.602032 0.263974 +v 0.124503 0.602525 0.264856 +v 0.120351 0.583641 0.270191 +v 0.121744 0.583166 0.269303 +v 0.140496 0.668457 0.240628 +v 0.139129 0.669047 0.241475 +v 0.144037 0.684562 0.233501 +v 0.142677 0.685184 0.234334 +v 0.147157 0.698750 0.226463 +v 0.145804 0.699410 0.227276 +v 0.130285 0.636872 0.254811 +v 0.128361 0.637406 0.255412 +v 0.124778 0.621111 0.260828 +v 0.126706 0.620592 0.260221 +v 0.133805 0.652879 0.248944 +v 0.131884 0.653430 0.249539 +v 0.137487 0.669628 0.242192 +v 0.135571 0.670199 0.242779 +v 0.141041 0.685793 0.235038 +v 0.139130 0.686388 0.235614 +v 0.144176 0.700050 0.227964 +v 0.142270 0.700670 0.228528 +v 0.146914 0.712503 0.221009 +v 0.149278 0.723258 0.214209 +v 0.140089 0.701271 0.228966 +v 0.136944 0.686968 0.236063 +v 0.133381 0.670762 0.243236 +v 0.130917 0.671316 0.243562 +v 0.127224 0.654521 0.250333 +v 0.129691 0.653978 0.250002 +v 0.128179 0.671862 0.243757 +v 0.120456 0.673208 0.243855 +v 0.116969 0.656366 0.250630 +v 0.124484 0.655059 0.250531 +v 0.103039 0.676163 0.243888 +v 0.100177 0.659216 0.250663 +v 0.077962 0.679564 0.243888 +v 0.075934 0.662496 0.250663 +v 0.126165 0.637940 0.255880 +v 0.123696 0.638473 0.256215 +v 0.120109 0.622158 0.261637 +v 0.122579 0.621633 0.261300 +v 0.120955 0.639006 0.256415 +v 0.113638 0.640277 0.256515 +v 0.110251 0.623920 0.261940 +v 0.117366 0.622685 0.261839 +v 0.097442 0.643024 0.256549 +v 0.094661 0.626564 0.261974 +v 0.073997 0.646190 0.256549 +v 0.072028 0.629613 0.261974 +v 0.047259 0.682246 0.243888 +v 0.046071 0.665099 0.250663 +v 0.013725 0.683743 0.243888 +v 0.013380 0.666559 0.250663 +v -0.020748 0.714834 0.229591 +v -0.020323 0.700185 0.236703 +v -0.055798 0.712955 0.229591 +v -0.054655 0.698345 0.236703 +v 0.044936 0.648717 0.256549 +v 0.043782 0.632064 0.261974 +v 0.013051 0.650141 0.256549 +v 0.012716 0.633451 0.261974 +v -0.019841 0.683593 0.243888 +v -0.019342 0.666412 0.250663 +v -0.053359 0.681796 0.243887 +v -0.052018 0.664661 0.250663 +v 0.091662 0.608809 0.267369 +v 0.088437 0.589715 0.272718 +v 0.102670 0.587302 0.272684 +v 0.106598 0.606276 0.267335 +v 0.069904 0.611733 0.267369 +v 0.067619 0.592504 0.272718 +v 0.113496 0.605081 0.267233 +v 0.116239 0.604558 0.267029 +v 0.109333 0.586148 0.272581 +v 0.112077 0.585630 0.272376 +v 0.118711 0.604041 0.266690 +v 0.120913 0.603530 0.266214 +v 0.114551 0.585119 0.272035 +v 0.116755 0.584618 0.271557 +v 0.042538 0.614100 0.267369 +v 0.041200 0.594782 0.272718 +v 0.012354 0.615448 0.267369 +v 0.011966 0.596088 0.272718 +v 0.104869 0.565843 0.277869 +v 0.107614 0.565328 0.277663 +v 0.098456 0.566952 0.277972 +v 0.093949 0.545181 0.283183 +v 0.100093 0.544120 0.283080 +v 0.102839 0.543609 0.282873 +v 0.084978 0.569237 0.278006 +v 0.081277 0.547329 0.283218 +v 0.065169 0.571880 0.278006 +v 0.062548 0.549818 0.283218 +v 0.122843 0.603024 0.265603 +v 0.118688 0.584125 0.270942 +v 0.110089 0.564824 0.277319 +v 0.112295 0.564332 0.276839 +v 0.105315 0.543112 0.282528 +v 0.107523 0.542628 0.282046 +v 0.114231 0.563851 0.276221 +v 0.115897 0.563382 0.275466 +v 0.109461 0.542158 0.281425 +v 0.111130 0.541702 0.280667 +v 0.117293 0.562924 0.274574 +v 0.118420 0.562477 0.273544 +v 0.112530 0.541260 0.279770 +v 0.113661 0.540833 0.278736 +v 0.100220 0.519935 0.287646 +v 0.102429 0.519460 0.287161 +v 0.097742 0.520428 0.287992 +v 0.092313 0.495739 0.293004 +v 0.094793 0.495253 0.292657 +v 0.097004 0.494785 0.292171 +v 0.119277 0.562041 0.272377 +v 0.119864 0.561617 0.271073 +v 0.114523 0.540417 0.277564 +v 0.115115 0.540017 0.276254 +v 0.104370 0.519001 0.286539 +v 0.106042 0.518559 0.285777 +v 0.098946 0.494336 0.291546 +v 0.100621 0.493905 0.290782 +v 0.107445 0.518132 0.284877 +v 0.108580 0.517721 0.283839 +v 0.102028 0.493492 0.289879 +v 0.103166 0.493098 0.288838 +v 0.120182 0.561206 0.269631 +v 0.122085 0.560497 0.268498 +v 0.126548 0.580614 0.263258 +v 0.124612 0.581352 0.264385 +v 0.115438 0.539630 0.274806 +v 0.117305 0.538953 0.273668 +v 0.128737 0.600117 0.259085 +v 0.130705 0.599348 0.257964 +v 0.109446 0.517327 0.282663 +v 0.110043 0.516948 0.281348 +v 0.104036 0.492723 0.287657 +v 0.104638 0.492365 0.286338 +v 0.110372 0.516586 0.279894 +v 0.112199 0.515936 0.278752 +v 0.104972 0.492026 0.284880 +v 0.106756 0.491406 0.283734 +v 0.099229 0.465908 0.289747 +v 0.100968 0.465316 0.288598 +v 0.098891 0.466225 0.291209 +v 0.092791 0.438483 0.295945 +v 0.093134 0.438186 0.294479 +v 0.094823 0.437623 0.293327 +v 0.098284 0.466562 0.292532 +v 0.097410 0.466920 0.293716 +v 0.091303 0.439143 0.298457 +v 0.092181 0.438801 0.297271 +v 0.085715 0.409395 0.301859 +v 0.086330 0.409094 0.300529 +v 0.084834 0.409721 0.303048 +v 0.077994 0.378610 0.307471 +v 0.078878 0.378299 0.306280 +v 0.079496 0.378015 0.304948 +v 0.096268 0.467299 0.294760 +v 0.094859 0.467698 0.295665 +v 0.088746 0.439892 0.300412 +v 0.090158 0.439506 0.299505 +v 0.083686 0.410070 0.304097 +v 0.082271 0.410444 0.305006 +v 0.075426 0.379309 0.309433 +v 0.076843 0.378946 0.308522 +v 0.093182 0.468117 0.296431 +v 0.091237 0.468557 0.297058 +v 0.085119 0.440732 0.301808 +v 0.087066 0.440301 0.301180 +v 0.080589 0.410843 0.305776 +v 0.078641 0.411265 0.306405 +v 0.071791 0.380112 0.310835 +v 0.073742 0.379698 0.310204 +v 0.089024 0.469017 0.297545 +v 0.086544 0.469498 0.297894 +v 0.080424 0.441661 0.302646 +v 0.082905 0.441185 0.302297 +v 0.076425 0.411712 0.306895 +v 0.073943 0.412183 0.307245 +v 0.067091 0.381020 0.311676 +v 0.069574 0.380553 0.311325 +v 0.066513 0.346821 0.314449 +v 0.068199 0.346441 0.313677 +v 0.064561 0.347228 0.315080 +v 0.058921 0.321575 0.318231 +v 0.060875 0.321176 0.317598 +v 0.062563 0.320806 0.316825 +v 0.062343 0.347663 0.315572 +v 0.059859 0.348126 0.315922 +v 0.054216 0.322462 0.319074 +v 0.056701 0.322003 0.318723 +v 0.071193 0.412679 0.307455 +v 0.066676 0.413458 0.307560 +v 0.060209 0.382225 0.311991 +v 0.064341 0.381513 0.311886 +v 0.077675 0.442160 0.302855 +v 0.072793 0.443001 0.302960 +v 0.069619 0.346089 0.312764 +v 0.070772 0.345765 0.311711 +v 0.063985 0.320467 0.315911 +v 0.065142 0.320156 0.314857 +v 0.057108 0.348617 0.316133 +v 0.053384 0.349259 0.316238 +v 0.048058 0.323536 0.319390 +v 0.051465 0.322949 0.319285 +v 0.071660 0.345468 0.310518 +v 0.072281 0.345199 0.309185 +v 0.066033 0.319875 0.313662 +v 0.066658 0.319624 0.312326 +v 0.086677 0.408818 0.299060 +v 0.079848 0.377757 0.303476 +v 0.088314 0.408283 0.297906 +v 0.081429 0.377250 0.302320 +v 0.072637 0.344958 0.307711 +v 0.074158 0.344478 0.306553 +v 0.067018 0.319403 0.310850 +v 0.068494 0.318950 0.309691 +v 0.061914 0.311047 0.317050 +v 0.063075 0.310755 0.315994 +v 0.060488 0.311370 0.317966 +v 0.060192 0.310024 0.318082 +v 0.061624 0.309725 0.317165 +v 0.062791 0.309462 0.316107 +v 0.064967 0.310073 0.311981 +v 0.066430 0.309645 0.310819 +v 0.064601 0.310269 0.313459 +v 0.064332 0.309043 0.313569 +v 0.064706 0.308887 0.312088 +v 0.066173 0.308491 0.310924 +v 0.063971 0.310496 0.314797 +v 0.063694 0.309234 0.314909 +v 0.064459 0.307761 0.312156 +v 0.065934 0.307412 0.310991 +v 0.064071 0.307858 0.313638 +v 0.063421 0.307996 0.314980 +v 0.062508 0.308175 0.316180 +v 0.062233 0.306923 0.316194 +v 0.063160 0.306810 0.314996 +v 0.061331 0.308396 0.317239 +v 0.059892 0.308658 0.318157 +v 0.059593 0.307297 0.318168 +v 0.061043 0.307085 0.317252 +v 0.062918 0.305707 0.314941 +v 0.061971 0.305733 0.316131 +v 0.061727 0.304622 0.315982 +v 0.062697 0.304701 0.314811 +v 0.060765 0.305819 0.317182 +v 0.059300 0.305965 0.318092 +v 0.059017 0.304679 0.317911 +v 0.060500 0.304615 0.317016 +v 0.062501 0.303809 0.314603 +v 0.061503 0.303605 0.315739 +v 0.061299 0.302676 0.315389 +v 0.062326 0.303016 0.314312 +v 0.063245 0.304099 0.313334 +v 0.063104 0.303459 0.313107 +v 0.063736 0.304476 0.311932 +v 0.065288 0.304500 0.310830 +v 0.063632 0.304004 0.311775 +v 0.065213 0.304160 0.310729 +v 0.060252 0.303487 0.316740 +v 0.058748 0.303457 0.317608 +v 0.058495 0.302303 0.317165 +v 0.060022 0.302438 0.316340 +v 0.059808 0.301466 0.315801 +v 0.061113 0.301829 0.314924 +v 0.058257 0.301223 0.316561 +v 0.058035 0.300213 0.315763 +v 0.059609 0.300560 0.315085 +v 0.060940 0.301042 0.314302 +v 0.056461 0.301099 0.317205 +v 0.054418 0.301094 0.317731 +v 0.054161 0.299924 0.316807 +v 0.056219 0.300001 0.316337 +v 0.056718 0.302271 0.317862 +v 0.054692 0.302341 0.318433 +v 0.056991 0.303513 0.318343 +v 0.054981 0.303655 0.318944 +v 0.057278 0.304815 0.318669 +v 0.055282 0.305024 0.319289 +v 0.057576 0.306170 0.318863 +v 0.055592 0.306434 0.319493 +v 0.057881 0.307558 0.318944 +v 0.055907 0.307868 0.319578 +v 0.052129 0.301209 0.318140 +v 0.049595 0.301443 0.318433 +v 0.049316 0.300176 0.317433 +v 0.051860 0.299982 0.317172 +v 0.052416 0.302514 0.318876 +v 0.049891 0.302789 0.319193 +v 0.058189 0.308962 0.318934 +v 0.056224 0.309307 0.319570 +v 0.058497 0.310359 0.318858 +v 0.056536 0.310730 0.319493 +v 0.052718 0.303884 0.319412 +v 0.050201 0.304199 0.319745 +v 0.053030 0.305304 0.319772 +v 0.050521 0.305656 0.320116 +v 0.053349 0.306758 0.319983 +v 0.050848 0.307142 0.320333 +v 0.053673 0.308228 0.320072 +v 0.051176 0.308637 0.320424 +v 0.058797 0.311726 0.318740 +v 0.056841 0.312114 0.319374 +v 0.053995 0.309694 0.320064 +v 0.051503 0.310122 0.320417 +v 0.054312 0.311136 0.319986 +v 0.051823 0.311579 0.320339 +v 0.054619 0.312534 0.319867 +v 0.052133 0.312985 0.320219 +v 0.048087 0.307584 0.320543 +v 0.044865 0.308117 0.320648 +v 0.044551 0.306600 0.320426 +v 0.047756 0.306080 0.320323 +v 0.048419 0.309095 0.320636 +v 0.045180 0.309638 0.320742 +v 0.049381 0.313469 0.320430 +v 0.046090 0.314035 0.320536 +v 0.045797 0.312616 0.320656 +v 0.049070 0.312057 0.320550 +v 0.048748 0.310592 0.320629 +v 0.045492 0.311144 0.320735 +v 0.041988 0.314731 0.320571 +v 0.041747 0.313303 0.320692 +v 0.043604 0.324292 0.319426 +v 0.035863 0.325201 0.319426 +v 0.034720 0.315571 0.320571 +v 0.034549 0.314133 0.320692 +v 0.041497 0.311820 0.320770 +v 0.041240 0.310302 0.320777 +v 0.034371 0.312640 0.320770 +v 0.034190 0.311111 0.320777 +v 0.040981 0.308769 0.320684 +v 0.040723 0.307239 0.320461 +v 0.034006 0.309567 0.320684 +v 0.033823 0.308027 0.320461 +v 0.047431 0.304602 0.319946 +v 0.044242 0.305107 0.320046 +v 0.043942 0.303658 0.319479 +v 0.047116 0.303167 0.319384 +v 0.040469 0.305734 0.320079 +v 0.040222 0.304271 0.319510 +v 0.033643 0.306510 0.320079 +v 0.033468 0.305038 0.319510 +v 0.046814 0.301796 0.318608 +v 0.043655 0.302271 0.318696 +v 0.043385 0.300966 0.317668 +v 0.046530 0.300505 0.317590 +v 0.039985 0.302872 0.318725 +v 0.039763 0.301554 0.317694 +v 0.033301 0.303628 0.318725 +v 0.033143 0.302301 0.317694 +v 0.021511 0.310538 0.320684 +v 0.021403 0.308990 0.320461 +v 0.021618 0.312089 0.320777 +v 0.006279 0.312774 0.320777 +v 0.006247 0.311219 0.320684 +v 0.006216 0.309669 0.320461 +v 0.046269 0.299314 0.316299 +v 0.049059 0.299006 0.316165 +v 0.043136 0.299762 0.316366 +v 0.042911 0.298677 0.314760 +v 0.046032 0.298240 0.314704 +v 0.048827 0.297949 0.314591 +v 0.021298 0.307467 0.320079 +v 0.021195 0.305987 0.319510 +v 0.006186 0.308142 0.320079 +v 0.006156 0.306659 0.319510 +v 0.039557 0.300339 0.316388 +v 0.039373 0.299245 0.314779 +v 0.032998 0.301077 0.316388 +v 0.032867 0.299976 0.314779 +v 0.021097 0.304571 0.318725 +v 0.021005 0.303238 0.317694 +v 0.006127 0.305240 0.318725 +v 0.006101 0.303904 0.317694 +v 0.051610 0.298848 0.315941 +v 0.053922 0.298838 0.315629 +v 0.051384 0.297818 0.314404 +v 0.053704 0.297847 0.314141 +v 0.055994 0.298978 0.315226 +v 0.057827 0.299268 0.314735 +v 0.055787 0.298036 0.313804 +v 0.057634 0.298386 0.313391 +v 0.045826 0.297302 0.312773 +v 0.048622 0.297020 0.312676 +v 0.042716 0.297732 0.312821 +v 0.042534 0.296856 0.310714 +v 0.045635 0.296432 0.310673 +v 0.048433 0.296157 0.310590 +v 0.039212 0.298292 0.312837 +v 0.039063 0.297410 0.310728 +v 0.032753 0.299016 0.312837 +v 0.032647 0.298127 0.310728 +v 0.051183 0.296906 0.312516 +v 0.053509 0.296958 0.312291 +v 0.050996 0.296053 0.310452 +v 0.053325 0.296121 0.310258 +v 0.020776 0.299938 0.312837 +v 0.020715 0.299045 0.310728 +v 0.020843 0.300902 0.314779 +v 0.006054 0.301562 0.314779 +v 0.006034 0.300596 0.312837 +v 0.006016 0.299702 0.310728 +v 0.055598 0.297178 0.312002 +v 0.057453 0.297564 0.311648 +v 0.055419 0.296361 0.310009 +v 0.057279 0.296772 0.309705 +v 0.059421 0.299707 0.314154 +v 0.060775 0.300295 0.313483 +v 0.059243 0.298896 0.312904 +v 0.060615 0.299567 0.312341 +v 0.059072 0.298117 0.311231 +v 0.060455 0.298838 0.310749 +v 0.058904 0.297354 0.309346 +v 0.060295 0.298108 0.308931 +v 0.061603 0.299725 0.310203 +v 0.061751 0.300398 0.311704 +v 0.061451 0.299033 0.308461 +v 0.061890 0.301033 0.312724 +v 0.062766 0.301920 0.311874 +v 0.062874 0.302413 0.312423 +v 0.062028 0.301660 0.313415 +v 0.063402 0.302956 0.310936 +v 0.065066 0.303498 0.310199 +v 0.065117 0.303727 0.310467 +v 0.063478 0.303302 0.311328 +v -0.008723 0.300530 0.312837 +v -0.008697 0.299636 0.310728 +v -0.008751 0.301496 0.314779 +v -0.023534 0.300703 0.314779 +v -0.023458 0.299740 0.312837 +v -0.023389 0.298848 0.310728 +v 0.020920 0.302008 0.316388 +v 0.006076 0.302671 0.316388 +v -0.008783 0.302605 0.316388 +v -0.008819 0.303837 0.317694 +v -0.023717 0.303038 0.317694 +v -0.023620 0.301809 0.316388 +v -0.008857 0.305172 0.318725 +v -0.008899 0.306591 0.319510 +v -0.023932 0.305786 0.319510 +v -0.023821 0.304370 0.318725 +v -0.038138 0.298228 0.312837 +v -0.038024 0.297340 0.310728 +v -0.038260 0.299186 0.314779 +v -0.052895 0.296949 0.314779 +v -0.052725 0.295997 0.312837 +v -0.052568 0.295117 0.310728 +v -0.038401 0.300287 0.316388 +v -0.038557 0.301509 0.317694 +v -0.053305 0.299255 0.317694 +v -0.053089 0.298041 0.316388 +v -0.067185 0.293054 0.312837 +v -0.066986 0.292182 0.310728 +v -0.067401 0.293995 0.314779 +v -0.081746 0.290334 0.314779 +v -0.081484 0.289404 0.312837 +v -0.081242 0.288543 0.310728 +v -0.067649 0.295077 0.316388 +v -0.067925 0.296278 0.317694 +v -0.082381 0.292589 0.317694 +v -0.082047 0.291402 0.316388 +v -0.038727 0.302835 0.318725 +v -0.038907 0.304243 0.319510 +v -0.053789 0.301967 0.319510 +v -0.053540 0.300570 0.318725 +v -0.068223 0.297580 0.318725 +v -0.068541 0.298964 0.319510 +v -0.083128 0.295241 0.319510 +v -0.082743 0.293875 0.318725 +v -0.095586 0.285057 0.312837 +v -0.095302 0.284209 0.310728 +v -0.095893 0.285973 0.314779 +v -0.109810 0.280924 0.314779 +v -0.109458 0.280024 0.312837 +v -0.109133 0.279191 0.310728 +v -0.096246 0.287025 0.316388 +v -0.096638 0.288194 0.317694 +v -0.110663 0.283105 0.317694 +v -0.110214 0.281957 0.316388 +v -0.123066 0.274315 0.312837 +v -0.122700 0.273499 0.310728 +v -0.123462 0.275197 0.314779 +v -0.136817 0.268808 0.314779 +v -0.136378 0.267947 0.312837 +v -0.135972 0.267149 0.310728 +v -0.123916 0.276209 0.316388 +v -0.124421 0.277334 0.317694 +v -0.137879 0.270895 0.317694 +v -0.137320 0.269796 0.316388 +v -0.097063 0.289461 0.318725 +v -0.097514 0.290806 0.319510 +v -0.111666 0.285672 0.319510 +v -0.111149 0.284349 0.318725 +v -0.124968 0.278553 0.318725 +v -0.125549 0.279848 0.319510 +v -0.139129 0.273351 0.319510 +v -0.138485 0.272086 0.318725 +v -0.149361 0.260932 0.312837 +v -0.148917 0.260155 0.310728 +v -0.149841 0.261770 0.314779 +v -0.160261 0.255699 0.314779 +v -0.159740 0.254885 0.312837 +v -0.159258 0.254131 0.310728 +v -0.150393 0.262733 0.316388 +v -0.151005 0.263803 0.317694 +v -0.161523 0.257672 0.317694 +v -0.160858 0.256634 0.316388 +v -0.165239 0.251420 0.312837 +v -0.164720 0.250690 0.310728 +v -0.165799 0.252207 0.314779 +v -0.168736 0.250155 0.314760 +v -0.168149 0.249389 0.312821 +v -0.167604 0.248680 0.310714 +v -0.170761 0.247647 0.312773 +v -0.173156 0.246176 0.312676 +v -0.172608 0.245481 0.310590 +v -0.170210 0.246947 0.310673 +v -0.171356 0.248402 0.314704 +v -0.173744 0.246922 0.314591 +v -0.166441 0.253111 0.316388 +v -0.167156 0.254116 0.317694 +v -0.170160 0.252009 0.317668 +v -0.169411 0.251033 0.316366 +v -0.172036 0.249266 0.316299 +v -0.174414 0.247773 0.316165 +v -0.172791 0.250224 0.317590 +v -0.175155 0.248714 0.317433 +v -0.175411 0.244957 0.312516 +v -0.177527 0.243991 0.312291 +v -0.176996 0.243318 0.310258 +v -0.174871 0.244271 0.310452 +v -0.175988 0.245690 0.314404 +v -0.178090 0.244706 0.314141 +v -0.167930 0.255205 0.318725 +v -0.168752 0.256362 0.319510 +v -0.171834 0.254189 0.319479 +v -0.170972 0.253066 0.318696 +v -0.162242 0.258798 0.318725 +v -0.163007 0.259994 0.319510 +v -0.179503 0.243278 0.312002 +v -0.181341 0.242818 0.311648 +v -0.180839 0.242181 0.309705 +v -0.178986 0.242621 0.310009 +v -0.180047 0.243969 0.313804 +v -0.181862 0.243479 0.313391 +v -0.176641 0.246519 0.315941 +v -0.178718 0.245503 0.315629 +v -0.177360 0.247431 0.317172 +v -0.179405 0.246376 0.316807 +v -0.173608 0.251262 0.318608 +v -0.175957 0.249733 0.318433 +v -0.174477 0.252365 0.319384 +v -0.176810 0.250816 0.319193 +v -0.183039 0.242611 0.311231 +v -0.184598 0.242657 0.310749 +v -0.184136 0.242070 0.308931 +v -0.182556 0.241997 0.309346 +v -0.183532 0.243238 0.312904 +v -0.185060 0.243243 0.312341 +v -0.180644 0.244727 0.315226 +v -0.182420 0.244189 0.314735 +v -0.181292 0.245549 0.316337 +v -0.183019 0.244949 0.315763 +v -0.186018 0.242955 0.310203 +v -0.185580 0.242399 0.308461 +v -0.186444 0.243496 0.311704 +v -0.184046 0.243889 0.314154 +v -0.185521 0.243829 0.313483 +v -0.184586 0.244576 0.315085 +v -0.185995 0.244430 0.314302 +v -0.186846 0.244007 0.312724 +v -0.188021 0.244424 0.311874 +v -0.187244 0.244512 0.313415 +v -0.188333 0.244821 0.312423 +v -0.189045 0.245080 0.310936 +v -0.190779 0.244843 0.310199 +v -0.189264 0.245358 0.311328 +v -0.190925 0.245027 0.310467 +v -0.185161 0.245305 0.315801 +v -0.186493 0.245063 0.314924 +v -0.183659 0.245761 0.316561 +v -0.184343 0.246630 0.317165 +v -0.185776 0.246086 0.316340 +v -0.187029 0.245744 0.315389 +v -0.181988 0.246432 0.317205 +v -0.180147 0.247318 0.317731 +v -0.180937 0.248321 0.318433 +v -0.182730 0.247375 0.317862 +v -0.186441 0.246930 0.316740 +v -0.187618 0.246491 0.315739 +v -0.185074 0.247558 0.317608 +v -0.185848 0.248541 0.317911 +v -0.187155 0.247837 0.317016 +v -0.188262 0.247309 0.315982 +v -0.183517 0.248374 0.318343 +v -0.181769 0.249378 0.318944 +v -0.182636 0.250478 0.319289 +v -0.184342 0.249422 0.318669 +v -0.188605 0.246240 0.314603 +v -0.189401 0.246177 0.313334 +v -0.188996 0.245662 0.313107 +v -0.188102 0.245602 0.314312 +v -0.189170 0.246958 0.314811 +v -0.189879 0.246784 0.313502 +v -0.189807 0.247767 0.314941 +v -0.190441 0.247497 0.313610 +v -0.188967 0.248203 0.316131 +v -0.189720 0.249160 0.316194 +v -0.190506 0.248654 0.314996 +v -0.191078 0.248306 0.313656 +v -0.187918 0.248806 0.317182 +v -0.186663 0.249575 0.318092 +v -0.187507 0.250647 0.318168 +v -0.188721 0.249825 0.317252 +v -0.191257 0.249608 0.314980 +v -0.190513 0.250167 0.316180 +v -0.191329 0.251202 0.316107 +v -0.192042 0.250604 0.314908 +v -0.191783 0.249201 0.313638 +v -0.192533 0.250154 0.313569 +v -0.185200 0.250511 0.318863 +v -0.183530 0.251613 0.319493 +v -0.184439 0.252767 0.319578 +v -0.186080 0.251628 0.318944 +v -0.189551 0.250879 0.317239 +v -0.188369 0.251742 0.318157 +v -0.189235 0.252840 0.318082 +v -0.190393 0.251948 0.317165 +v -0.186969 0.252757 0.318934 +v -0.185350 0.253924 0.319570 +v -0.186251 0.255068 0.319493 +v -0.187854 0.253881 0.318858 +v -0.181652 0.252882 0.319983 +v -0.179568 0.254316 0.320333 +v -0.180515 0.255519 0.320424 +v -0.182584 0.254064 0.320072 +v -0.180731 0.251712 0.319772 +v -0.178626 0.253122 0.320116 +v -0.183513 0.255243 0.320064 +v -0.181456 0.256714 0.320417 +v -0.182379 0.257886 0.320339 +v -0.184426 0.256403 0.319986 +v -0.188720 0.254980 0.318740 +v -0.190088 0.253923 0.317966 +v -0.187128 0.256181 0.319374 +v -0.193122 0.263791 0.318231 +v -0.194707 0.262581 0.317598 +v -0.196066 0.261513 0.316825 +v -0.179832 0.250570 0.319412 +v -0.177704 0.251950 0.319745 +v -0.178963 0.249468 0.318876 +v -0.191230 0.253011 0.317050 +v -0.192148 0.252243 0.315994 +v -0.197198 0.260588 0.315911 +v -0.198104 0.259804 0.314857 +v -0.192841 0.251619 0.314797 +v -0.193310 0.251140 0.313459 +v -0.198784 0.259164 0.313662 +v -0.199237 0.258665 0.312326 +v -0.185311 0.257527 0.319867 +v -0.183270 0.259017 0.320219 +v -0.189273 0.266639 0.319074 +v -0.191311 0.265144 0.318723 +v -0.210954 0.283209 0.314449 +v -0.212306 0.282133 0.313677 +v -0.209374 0.284426 0.315080 +v -0.230207 0.310876 0.310835 +v -0.231782 0.309653 0.310204 +v -0.233129 0.308570 0.309433 +v -0.207567 0.285784 0.315572 +v -0.205533 0.287283 0.315922 +v -0.226372 0.313741 0.311676 +v -0.228404 0.312239 0.311325 +v -0.213431 0.281197 0.312764 +v -0.214328 0.280403 0.311711 +v -0.234247 0.307626 0.308522 +v -0.235136 0.306822 0.307471 +v -0.193554 0.250805 0.311981 +v -0.194684 0.249782 0.310819 +v -0.193951 0.248855 0.310924 +v -0.192802 0.249851 0.312088 +v -0.199464 0.258309 0.310850 +v -0.200595 0.257258 0.309691 +v -0.192089 0.248945 0.312156 +v -0.193265 0.247988 0.310991 +v -0.192652 0.247212 0.311013 +v -0.191437 0.248117 0.312176 +v -0.214997 0.279749 0.310518 +v -0.215439 0.279236 0.309185 +v -0.235797 0.306157 0.306279 +v -0.236229 0.305632 0.304948 +v -0.255497 0.331169 0.301859 +v -0.255919 0.330630 0.300529 +v -0.254846 0.331846 0.303048 +v -0.273485 0.355511 0.298457 +v -0.274127 0.354822 0.297271 +v -0.274537 0.354269 0.295945 +v -0.253965 0.332661 0.304097 +v -0.252854 0.333614 0.305006 +v -0.271510 0.357300 0.300412 +v -0.272613 0.356337 0.299505 +v -0.251514 0.334705 0.305776 +v -0.249944 0.335934 0.306405 +v -0.268612 0.359636 0.301808 +v -0.270176 0.358399 0.301180 +v -0.290220 0.378692 0.294760 +v -0.291083 0.377854 0.293716 +v -0.289126 0.379665 0.295665 +v -0.305729 0.400745 0.290782 +v -0.306815 0.399761 0.289879 +v -0.307668 0.398910 0.288838 +v -0.248144 0.337301 0.306895 +v -0.246115 0.338807 0.307245 +v -0.264790 0.362518 0.302646 +v -0.266816 0.361008 0.302297 +v -0.287799 0.380773 0.296431 +v -0.286240 0.382017 0.297058 +v -0.302856 0.403113 0.292171 +v -0.304409 0.401862 0.291546 +v -0.284449 0.383395 0.297545 +v -0.282425 0.384908 0.297894 +v -0.299050 0.406015 0.293004 +v -0.301069 0.404497 0.292657 +v -0.243856 0.340451 0.307455 +v -0.240129 0.343120 0.307560 +v -0.258505 0.367048 0.302960 +v -0.262533 0.364163 0.302855 +v -0.224111 0.315382 0.311886 +v -0.220702 0.317823 0.311991 +v -0.280170 0.386556 0.298102 +v -0.275858 0.389645 0.298207 +v -0.292216 0.410946 0.293316 +v -0.296796 0.407666 0.293212 +v -0.316707 0.424351 0.287646 +v -0.318489 0.422961 0.287161 +v -0.314691 0.425873 0.287992 +v -0.329377 0.444520 0.282873 +v -0.331390 0.442993 0.282528 +v -0.333166 0.441596 0.282046 +v -0.203271 0.288922 0.316133 +v -0.200197 0.291123 0.316238 +v -0.187009 0.268277 0.319285 +v -0.184198 0.270289 0.319390 +v -0.320035 0.421702 0.286538 +v -0.321347 0.420575 0.285777 +v -0.334706 0.440329 0.281425 +v -0.336010 0.439191 0.280667 +v -0.181004 0.260651 0.320430 +v -0.178288 0.262593 0.320536 +v -0.180109 0.259515 0.320550 +v -0.177406 0.261445 0.320656 +v -0.233694 0.347701 0.307595 +v -0.251165 0.372274 0.302995 +v -0.215224 0.321724 0.312026 +v -0.206216 0.327557 0.312026 +v -0.223389 0.354409 0.307595 +v -0.239633 0.379810 0.302995 +v -0.179181 0.258337 0.320629 +v -0.176491 0.260253 0.320735 +v -0.178232 0.257133 0.320636 +v -0.175554 0.259033 0.320742 +v -0.195730 0.294305 0.316273 +v -0.180518 0.272910 0.319426 +v -0.173947 0.277099 0.319426 +v -0.188090 0.299214 0.316273 +v -0.174899 0.265007 0.320571 +v -0.174060 0.263827 0.320692 +v -0.167942 0.267710 0.320692 +v -0.168722 0.268930 0.320571 +v -0.177275 0.255918 0.320543 +v -0.174607 0.257800 0.320648 +v -0.176322 0.254708 0.320323 +v -0.173664 0.256572 0.320426 +v -0.173189 0.262601 0.320770 +v -0.172297 0.261347 0.320777 +v -0.166303 0.265146 0.320777 +v -0.167132 0.266443 0.320770 +v -0.157644 0.275401 0.320571 +v -0.162461 0.283817 0.319426 +v -0.156924 0.274144 0.320692 +v -0.143284 0.281514 0.320692 +v -0.143941 0.282804 0.320571 +v -0.148339 0.291447 0.319426 +v -0.156177 0.272839 0.320770 +v -0.155412 0.271503 0.320777 +v -0.141903 0.278802 0.320777 +v -0.142602 0.280174 0.320770 +v -0.171396 0.260079 0.320684 +v -0.170497 0.258815 0.320461 +v -0.164629 0.262530 0.320461 +v -0.165465 0.263836 0.320684 +v -0.175502 0.306599 0.316273 +v -0.192215 0.335797 0.312026 +v -0.160247 0.314841 0.316273 +v -0.175507 0.344824 0.312026 +v -0.154640 0.270153 0.320684 +v -0.153869 0.268807 0.320461 +v -0.140494 0.276034 0.320461 +v -0.141198 0.277416 0.320684 +v -0.153111 0.267482 0.320079 +v -0.152374 0.266195 0.319510 +v -0.139802 0.274673 0.320079 +v -0.163806 0.261243 0.320079 +v -0.175386 0.253519 0.319946 +v -0.172736 0.255363 0.320046 +v -0.178137 0.248418 0.318140 +v -0.169612 0.257571 0.320079 +v -0.151669 0.264963 0.318725 +v -0.126156 0.281201 0.320079 +v -0.126781 0.282595 0.320461 +v -0.112206 0.287053 0.320079 +v -0.112762 0.288475 0.320461 +v -0.127416 0.284010 0.320684 +v -0.128052 0.285429 0.320777 +v -0.113327 0.289920 0.320684 +v -0.113893 0.291368 0.320777 +v -0.097986 0.292213 0.320079 +v -0.098471 0.293661 0.320461 +v -0.083529 0.296669 0.320079 +v -0.083943 0.298139 0.320461 +v -0.128682 0.286833 0.320770 +v -0.129298 0.288205 0.320692 +v -0.114453 0.292802 0.320770 +v -0.115001 0.294202 0.320692 +v -0.098964 0.295131 0.320684 +v -0.099459 0.296606 0.320777 +v -0.084364 0.299632 0.320684 +v -0.084785 0.301129 0.320777 +v -0.068872 0.300410 0.320079 +v -0.069213 0.301898 0.320461 +v -0.054049 0.303428 0.320079 +v -0.054316 0.304931 0.320461 +v -0.129891 0.289526 0.320571 +v -0.133860 0.298374 0.319426 +v -0.115528 0.295551 0.320571 +v -0.119058 0.304583 0.319426 +v -0.099948 0.298065 0.320770 +v -0.100426 0.299491 0.320692 +v -0.085202 0.302610 0.320770 +v -0.085610 0.304058 0.320692 +v -0.069560 0.303410 0.320684 +v -0.069907 0.304926 0.320777 +v -0.054588 0.306458 0.320684 +v -0.054861 0.307989 0.320777 +v -0.039095 0.305714 0.320079 +v -0.039289 0.307229 0.320461 +v -0.024047 0.307264 0.320079 +v -0.024166 0.308787 0.320461 +v -0.008942 0.308074 0.320079 +v -0.008986 0.309600 0.320461 +v -0.039486 0.308767 0.320684 +v -0.039683 0.310310 0.320777 +v -0.024287 0.310333 0.320684 +v -0.024409 0.311883 0.320777 +v -0.070251 0.306426 0.320770 +v -0.070587 0.307892 0.320692 +v -0.055131 0.309504 0.320770 +v -0.055395 0.310985 0.320692 +v -0.009031 0.311151 0.320684 +v -0.009076 0.312705 0.320777 +v -0.039878 0.311837 0.320770 +v -0.040069 0.313328 0.320692 +v -0.024529 0.313418 0.320770 +v -0.024646 0.314917 0.320692 +v -0.009121 0.314244 0.320770 +v -0.009164 0.315747 0.320692 +v 0.006309 0.314313 0.320770 +v 0.006340 0.315816 0.320692 +v 0.021725 0.313625 0.320770 +v 0.021828 0.315125 0.320692 +v -0.040252 0.314765 0.320571 +v -0.041483 0.324384 0.319426 +v -0.057349 0.321958 0.319426 +v -0.055649 0.312411 0.320571 +v -0.024759 0.316361 0.320571 +v -0.025516 0.326028 0.319426 +v 0.021929 0.316569 0.320571 +v 0.022599 0.326243 0.319426 +v 0.006563 0.326960 0.319426 +v 0.006369 0.317264 0.320571 +v -0.009206 0.317194 0.320571 +v -0.009488 0.326888 0.319426 +v 0.024413 0.352432 0.316273 +v 0.026737 0.385994 0.312026 +v 0.007765 0.386841 0.312026 +v 0.007090 0.353205 0.316273 +v 0.038960 0.351268 0.316273 +v 0.042929 0.384676 0.312026 +v -0.010249 0.353127 0.316273 +v -0.011225 0.386756 0.312026 +v -0.030189 0.385740 0.312026 +v -0.027564 0.352199 0.316273 +v -0.044812 0.350422 0.316273 +v -0.049080 0.383793 0.312026 +v -0.067853 0.380923 0.312026 +v -0.061953 0.347802 0.316273 +v -0.070911 0.309304 0.320571 +v -0.073078 0.318755 0.319426 +v -0.088631 0.314786 0.319426 +v -0.086002 0.305452 0.320571 +v -0.078944 0.344342 0.316273 +v -0.086462 0.377135 0.312026 +v -0.104863 0.372438 0.312026 +v -0.095745 0.340054 0.316273 +v -0.100887 0.300864 0.320571 +v -0.103970 0.310058 0.319426 +v -0.112315 0.334947 0.316273 +v -0.123011 0.366844 0.312026 +v -0.140863 0.360367 0.312026 +v -0.128615 0.329032 0.316273 +v -0.144605 0.322325 0.316273 +v -0.158376 0.353020 0.312026 +v -0.133145 0.397064 0.307595 +v -0.142730 0.425650 0.302995 +v -0.163444 0.418134 0.302995 +v -0.152468 0.390053 0.307595 +v -0.113501 0.403119 0.307595 +v -0.121673 0.432141 0.302995 +v -0.208050 0.363459 0.307595 +v -0.223028 0.389626 0.302995 +v -0.189965 0.373230 0.307595 +v -0.203642 0.400100 0.302995 +v -0.171423 0.382102 0.307595 +v -0.183764 0.409610 0.302995 +v -0.267663 0.395479 0.298242 +v -0.283216 0.417354 0.293351 +v -0.254973 0.403796 0.298242 +v -0.269434 0.426408 0.293351 +v -0.237173 0.414337 0.298242 +v -0.250507 0.437631 0.293351 +v -0.216557 0.425475 0.298242 +v -0.228732 0.449395 0.293351 +v -0.195419 0.435588 0.298242 +v -0.206405 0.460077 0.293351 +v -0.173810 0.444653 0.298242 +v -0.183582 0.469651 0.293351 +v -0.093585 0.408203 0.307595 +v -0.100322 0.437591 0.302995 +v -0.073442 0.412303 0.307595 +v -0.078730 0.441986 0.302995 +v -0.151782 0.452645 0.298242 +v -0.160316 0.478093 0.293351 +v -0.129389 0.459548 0.298242 +v -0.136664 0.485384 0.293351 +v -0.053123 0.415410 0.307595 +v -0.056948 0.445317 0.302995 +v -0.032676 0.417516 0.307595 +v -0.035028 0.447575 0.302995 +v -0.106685 0.465343 0.298242 +v -0.112682 0.491505 0.293351 +v -0.083723 0.470018 0.298242 +v -0.088430 0.496442 0.293351 +v -0.012150 0.418616 0.307595 +v -0.013025 0.448754 0.302995 +v 0.008405 0.418709 0.307595 +v 0.009010 0.448853 0.302995 +v -0.060559 0.473559 0.298242 +v -0.063964 0.500183 0.293351 +v -0.037250 0.475961 0.298242 +v -0.039344 0.502719 0.293351 +v -0.168345 0.502037 0.288338 +v -0.175883 0.524518 0.283218 +v -0.201409 0.515257 0.283218 +v -0.192776 0.493172 0.288338 +v -0.143508 0.509692 0.288338 +v -0.149935 0.532517 0.283218 +v -0.118326 0.516119 0.288338 +v -0.123625 0.539232 0.283218 +v -0.092858 0.521304 0.288338 +v -0.097017 0.544649 0.283218 +v -0.216742 0.483118 0.288338 +v -0.226448 0.504754 0.283218 +v -0.250943 0.493035 0.283218 +v -0.240187 0.471902 0.288338 +v -0.013851 0.477215 0.298242 +v -0.014630 0.504044 0.293351 +v 0.009582 0.477320 0.298242 +v 0.010120 0.504155 0.293351 +v -0.263052 0.459548 0.288338 +v -0.274833 0.480127 0.283218 +v -0.295816 0.467660 0.283218 +v -0.283040 0.447683 0.288338 +v 0.028940 0.417792 0.307595 +v 0.031024 0.447870 0.302995 +v 0.046689 0.416328 0.307595 +v 0.050246 0.446267 0.302995 +v 0.047976 0.350177 0.316273 +v 0.053579 0.383350 0.312026 +v 0.058888 0.414778 0.307595 +v 0.063909 0.444508 0.302995 +v 0.032991 0.476274 0.298242 +v 0.034846 0.503050 0.293351 +v 0.053605 0.474541 0.298242 +v 0.056771 0.501194 0.293351 +v 0.083796 0.470000 0.298103 +v 0.078569 0.470901 0.298207 +v 0.089566 0.496242 0.293212 +v 0.084014 0.497201 0.293316 +v 0.068652 0.472582 0.298242 +v 0.073122 0.499048 0.293351 +v 0.094995 0.520934 0.288200 +v 0.089138 0.521946 0.288303 +v 0.077328 0.523948 0.288338 +v 0.059751 0.526271 0.288338 +v 0.036591 0.528244 0.288338 +v 0.038230 0.551899 0.283218 +v 0.011103 0.553111 0.283218 +v 0.010627 0.529402 0.288338 +v 0.039765 0.574064 0.278006 +v 0.011549 0.575324 0.278006 +v -0.015362 0.529287 0.288338 +v -0.016050 0.552989 0.283218 +v -0.043165 0.551535 0.283218 +v -0.041315 0.527896 0.288338 +v -0.016695 0.575197 0.278006 +v -0.017297 0.595957 0.272718 +v -0.046519 0.594390 0.272718 +v -0.044898 0.573686 0.278006 +v -0.017859 0.615313 0.267369 +v -0.018382 0.633312 0.261974 +v -0.049435 0.631647 0.261974 +v -0.048030 0.613696 0.267369 +v -0.067167 0.525231 0.288338 +v -0.070175 0.548753 0.283218 +v -0.072994 0.570791 0.278006 +v -0.075628 0.591391 0.272718 +v -0.104555 0.586969 0.272718 +v -0.100913 0.566522 0.278006 +v -0.128589 0.560888 0.278006 +v -0.133230 0.581131 0.272718 +v -0.161585 0.573894 0.272718 +v -0.155956 0.553903 0.278006 +v -0.078084 0.610599 0.267369 +v -0.080368 0.628460 0.261974 +v -0.111109 0.623760 0.261974 +v -0.107951 0.606033 0.267369 +v -0.137558 0.600006 0.267369 +v -0.141581 0.617556 0.261974 +v -0.171713 0.609866 0.261974 +v -0.166833 0.592534 0.267369 +v -0.182947 0.545583 0.278006 +v -0.189550 0.565274 0.272718 +v -0.217058 0.555293 0.272718 +v -0.209497 0.535950 0.278006 +v -0.195706 0.583633 0.267369 +v -0.201431 0.600705 0.261974 +v -0.230664 0.590099 0.261974 +v -0.224108 0.573328 0.267369 +v -0.235543 0.525024 0.278006 +v -0.244044 0.543974 0.272718 +v -0.270441 0.531343 0.272718 +v -0.261021 0.512834 0.278006 +v -0.251970 0.561641 0.267369 +v -0.259340 0.578069 0.261974 +v -0.287393 0.564648 0.261974 +v -0.279225 0.548601 0.267369 +v -0.285870 0.499410 0.278006 +v -0.296187 0.517434 0.272718 +v -0.318975 0.503874 0.272718 +v -0.307786 0.486377 0.278006 +v -0.305807 0.534239 0.267369 +v -0.314752 0.549866 0.261974 +v -0.339109 0.535357 0.261974 +v -0.329408 0.520186 0.267369 +v -0.266174 0.593300 0.256549 +v -0.272895 0.608282 0.250663 +v -0.302414 0.594160 0.250663 +v -0.294965 0.579526 0.256549 +v -0.236741 0.605647 0.256549 +v -0.242719 0.620941 0.250663 +v -0.323046 0.564354 0.256549 +v -0.331203 0.578605 0.250663 +v -0.356951 0.563253 0.250663 +v -0.348103 0.549419 0.256549 +v -0.347720 0.508077 0.267369 +v -0.336499 0.492295 0.272718 +v -0.358154 0.522752 0.261974 +v -0.371035 0.513581 0.261940 +v -0.360061 0.499291 0.267335 +v -0.348259 0.483923 0.272684 +v -0.206738 0.616533 0.256549 +v -0.211959 0.632102 0.250663 +v -0.176237 0.625935 0.256549 +v -0.180688 0.641741 0.250663 +v -0.324465 0.475369 0.278006 +v -0.311590 0.457261 0.283218 +v -0.335601 0.467441 0.277972 +v -0.322060 0.449808 0.283183 +v -0.145312 0.633828 0.256549 +v -0.148981 0.649834 0.250663 +v -0.114036 0.640195 0.256549 +v -0.116916 0.656362 0.250663 +v -0.297850 0.437935 0.288338 +v -0.307608 0.430989 0.288303 +v -0.312440 0.427527 0.288200 +v -0.327128 0.446176 0.283080 +v -0.340891 0.463649 0.277869 +v -0.343137 0.461990 0.277663 +v -0.353755 0.479982 0.272581 +v -0.355999 0.478319 0.272376 +v -0.365749 0.495210 0.267233 +v -0.367990 0.493544 0.267029 +v -0.376902 0.509369 0.261839 +v -0.345146 0.460458 0.277319 +v -0.346917 0.459054 0.276839 +v -0.358003 0.476782 0.272035 +v -0.369991 0.492002 0.266690 +v -0.348450 0.457778 0.276221 +v -0.349745 0.456630 0.275466 +v -0.350802 0.455609 0.274574 +v -0.337078 0.438184 0.279770 +v -0.322425 0.419580 0.284877 +v -0.323267 0.418716 0.283839 +v -0.323875 0.417983 0.282663 +v -0.308287 0.398193 0.287657 +v -0.291714 0.377151 0.292532 +v -0.292113 0.376583 0.291209 +v -0.256111 0.330230 0.299060 +v -0.257351 0.329036 0.297906 +v -0.237635 0.304101 0.302320 +v -0.236433 0.305246 0.303476 +v -0.274717 0.353852 0.294479 +v -0.275992 0.352610 0.293327 +v -0.215654 0.278864 0.307711 +v -0.216814 0.277770 0.306553 +v -0.387242 0.522498 0.256415 +v -0.381209 0.526828 0.256515 +v -0.391217 0.539860 0.250630 +v -0.397412 0.535410 0.250531 +v -0.367827 0.536357 0.256549 +v -0.377342 0.549739 0.250663 +v -0.408057 0.548925 0.243757 +v -0.401692 0.553500 0.243855 +v -0.387302 0.563748 0.243887 +v -0.396920 0.577276 0.236703 +v -0.366211 0.577733 0.243887 +v -0.375154 0.591717 0.236703 +v -0.405412 0.589220 0.229591 +v -0.383050 0.604063 0.229591 +v -0.339742 0.593522 0.243887 +v -0.347988 0.607928 0.236703 +v -0.310210 0.609478 0.243887 +v -0.317739 0.624271 0.236703 +v -0.355268 0.620647 0.229591 +v -0.361637 0.631771 0.222589 +v -0.324387 0.637332 0.229591 +v -0.330201 0.648756 0.222589 +v -0.279930 0.623964 0.243887 +v -0.286725 0.639109 0.236703 +v -0.248977 0.636949 0.243887 +v -0.255020 0.652409 0.236703 +v -0.367145 0.641395 0.215731 +v -0.371848 0.649611 0.209055 +v -0.335232 0.658638 0.215731 +v -0.339526 0.667075 0.209055 +v -0.292724 0.652480 0.229591 +v -0.297971 0.664176 0.222589 +v -0.260356 0.666058 0.229591 +v -0.265022 0.677997 0.222589 +v -0.217423 0.648398 0.243887 +v -0.222701 0.664136 0.236703 +v -0.185346 0.658286 0.243887 +v -0.189845 0.674264 0.236703 +v -0.375799 0.656513 0.202597 +v -0.379051 0.662193 0.196391 +v -0.343133 0.674162 0.202597 +v -0.346102 0.679995 0.196391 +v -0.302510 0.674293 0.215731 +v -0.306385 0.682931 0.209055 +v -0.269059 0.688325 0.215731 +v -0.272506 0.697142 0.209055 +v -0.227360 0.678030 0.229591 +v -0.231435 0.690184 0.222589 +v -0.193817 0.688370 0.229591 +v -0.197291 0.700709 0.222589 +v -0.381656 0.666745 0.190475 +v -0.348481 0.684670 0.190476 +v -0.309640 0.690187 0.202597 +v -0.312319 0.696158 0.196391 +v -0.275401 0.704549 0.202597 +v -0.314466 0.700944 0.190476 +v -0.240499 0.717213 0.202597 +v -0.237970 0.709673 0.209055 +v -0.234961 0.700698 0.215731 +v -0.200296 0.711383 0.215731 +v -0.165149 0.720354 0.215731 +v -0.162671 0.709545 0.222589 +v -0.090714 0.709358 0.229591 +v -0.088855 0.694821 0.236703 +v -0.125411 0.704053 0.229591 +v -0.122841 0.689625 0.236703 +v -0.159806 0.697051 0.229591 +v -0.156531 0.682766 0.236703 +v -0.086749 0.678356 0.243887 +v -0.084569 0.661307 0.250663 +v -0.119930 0.673283 0.243887 +v -0.018866 0.649998 0.256549 +v -0.050737 0.648290 0.256549 +v -0.152822 0.666587 0.243887 +v -0.082486 0.645019 0.256549 +v -0.187656 0.245035 0.313930 +v -0.188649 0.245222 0.312819 +v -0.189473 0.245624 0.311591 +v -0.191050 0.245187 0.310626 +v -0.189709 0.245923 0.311775 +v -0.191200 0.245375 0.310729 +v -0.190008 0.246303 0.311932 +v -0.191415 0.245648 0.310830 +v -0.190388 0.246785 0.312055 +v -0.191719 0.246033 0.310918 +v -0.190867 0.247393 0.312139 +v -0.192134 0.246557 0.310984 +v 0.063551 0.303632 0.311591 +v 0.062984 0.302911 0.312819 +v 0.065161 0.303926 0.310626 +v 0.062171 0.302310 0.313930 +v -0.472917 0.605493 0.176068 +v -0.474133 0.603190 0.175583 +v -0.473906 0.606749 0.172222 +v -0.475091 0.604402 0.171870 +v -0.474741 0.607809 0.162776 +v -0.475890 0.605413 0.162729 +v -0.475824 0.605329 0.165551 +v -0.474670 0.607719 0.165666 +v -0.475332 0.609205 0.162836 +v -0.475326 0.609196 0.160000 +v -0.474733 0.607798 0.160000 +v -0.475880 0.605400 0.160000 +v -0.475621 0.610644 0.162890 +v -0.475603 0.612127 0.162939 +v -0.475599 0.612121 0.160000 +v -0.475615 0.610637 0.160000 +v -0.475283 0.613652 0.162982 +v -0.474658 0.615222 0.163019 +v -0.474655 0.615218 0.160000 +v -0.475279 0.613648 0.160000 +v -0.473727 0.616834 0.163050 +v -0.472494 0.618490 0.163076 +v -0.472492 0.618489 0.160000 +v -0.473726 0.616832 0.160000 +v -0.470956 0.620189 0.163096 +v -0.469113 0.621932 0.163111 +v -0.469113 0.621932 0.160000 +v -0.470955 0.620189 0.160000 +v -0.466966 0.623718 0.163119 +v -0.459689 0.629022 0.163123 +v -0.459689 0.629022 0.160000 +v -0.466966 0.623718 0.160000 +v -0.442454 0.641319 0.163125 +v -0.442454 0.641319 0.160000 +v -0.417491 0.657917 0.163125 +v -0.417491 0.657917 0.160000 +v -0.387025 0.676125 0.163125 +v -0.387025 0.676125 0.160000 +v -0.353384 0.694302 0.163125 +v -0.353384 0.694302 0.160000 +v -0.318890 0.710805 0.163125 +v -0.318890 0.710805 0.160000 +v -0.283628 0.725596 0.163125 +v -0.283628 0.725596 0.160000 +v -0.247683 0.738639 0.163125 +v -0.247683 0.738639 0.160000 +v -0.211142 0.749903 0.163125 +v -0.211142 0.749903 0.160000 +v -0.174091 0.759359 0.163125 +v -0.174091 0.759359 0.160000 +v -0.136621 0.766987 0.163125 +v -0.136621 0.766987 0.160000 +v -0.098823 0.772766 0.163125 +v -0.098823 0.772766 0.160000 +v -0.060786 0.776685 0.163125 +v -0.060786 0.776685 0.160000 +v -0.022602 0.778732 0.163125 +v -0.022602 0.778732 0.160000 +v 0.015636 0.778903 0.163125 +v 0.015636 0.778903 0.160000 +v 0.053836 0.777197 0.163125 +v 0.053836 0.777197 0.160000 +v 0.089190 0.774079 0.163125 +v 0.089190 0.774079 0.160000 +v 0.118892 0.770013 0.163125 +v 0.118892 0.770013 0.160000 +v 0.139762 0.766452 0.163123 +v 0.139762 0.766452 0.160000 +v 0.148623 0.764848 0.163119 +v 0.151333 0.764176 0.163111 +v 0.151333 0.764175 0.160000 +v 0.148623 0.764848 0.160000 +v 0.153751 0.763410 0.163096 +v 0.155876 0.762550 0.163076 +v 0.155875 0.762548 0.160000 +v 0.153751 0.763409 0.160000 +v 0.157708 0.761597 0.163051 +v 0.159247 0.760551 0.163019 +v 0.159246 0.760547 0.160000 +v 0.157707 0.761594 0.160000 +v 0.160494 0.759411 0.162982 +v 0.161447 0.758177 0.162939 +v 0.161446 0.758170 0.160000 +v 0.160492 0.759405 0.160000 +v 0.162108 0.756850 0.162890 +v 0.162476 0.755429 0.162836 +v 0.162474 0.755418 0.160000 +v 0.162106 0.756841 0.160000 +v 0.162080 0.756721 0.165944 +v 0.162450 0.755308 0.165812 +v 0.162552 0.753915 0.162776 +v 0.164630 0.752259 0.162729 +v 0.164626 0.752243 0.160000 +v 0.162549 0.753901 0.160000 +v 0.162527 0.753804 0.165666 +v 0.164607 0.752155 0.165551 +v 0.162448 0.753442 0.168785 +v 0.162365 0.754923 0.169068 +v 0.164531 0.751812 0.168562 +v 0.161990 0.756313 0.169324 +v -0.292279 0.376150 0.289747 +v -0.293587 0.374861 0.288598 +v -0.474441 0.607429 0.168785 +v -0.475607 0.605054 0.168562 +v 0.152951 0.759772 0.179363 +v -0.773426 0.007908 0.169324 +v -0.772152 0.007238 0.169068 +v -0.771243 0.007233 0.172670 +v -0.772478 0.007904 0.173076 +v -0.774548 0.008844 0.169553 +v -0.773564 0.008839 0.173439 +v -0.774985 0.008846 0.166062 +v -0.773843 0.007910 0.165944 +v -0.772547 0.007239 0.165812 +v -0.308506 0.004613 0.308918 +v -0.309553 0.003313 0.308388 +v -0.308974 0.003311 0.306899 +v -0.307890 0.004610 0.307355 +v -0.307166 0.005006 0.309592 +v -0.306502 0.005002 0.307936 +v -0.307791 0.005009 0.310991 +v -0.309059 0.004616 0.310203 +v -0.310049 0.003315 0.309585 +v -0.494033 0.597881 0.169756 +v -0.492489 0.597878 0.169553 +v -0.492764 0.598217 0.166062 +v -0.494318 0.598233 0.166166 +v -0.495686 0.597598 0.169931 +v -0.495982 0.597963 0.166257 +v -0.495029 0.596790 0.174037 +v -0.493391 0.597093 0.173759 +v -0.491867 0.597115 0.173439 +v -0.199484 0.240499 0.312139 +v -0.199679 0.240106 0.313610 +v -0.199106 0.239401 0.313502 +v -0.198996 0.239898 0.312055 +v -0.198391 0.241552 0.310984 +v -0.197970 0.241032 0.310918 +v -0.198916 0.242201 0.311013 +v -0.200065 0.241213 0.312176 +v -0.200329 0.240905 0.313656 +v -0.197010 0.237454 0.308918 +v -0.196476 0.236164 0.309592 +v -0.196057 0.235649 0.307936 +v -0.196621 0.236976 0.307355 +v -0.196493 0.239209 0.308388 +v -0.196129 0.238759 0.306899 +v -0.196806 0.239595 0.309585 +v -0.197359 0.237883 0.310203 +v -0.196869 0.236649 0.310991 +v -0.775518 0.010045 0.169756 +v -0.776336 0.011511 0.169931 +v -0.776805 0.011514 0.166257 +v -0.775972 0.010047 0.166166 +v -0.774503 0.010040 0.173759 +v -0.775293 0.011506 0.174037 +v -0.777001 0.013243 0.170079 +v -0.777514 0.015239 0.170200 +v -0.778007 0.015242 0.166395 +v -0.777483 0.013245 0.166333 +v -0.775936 0.013238 0.174271 +v -0.776430 0.015234 0.174463 +v -0.772673 0.010032 0.178186 +v -0.773421 0.011497 0.178568 +v -0.771782 0.008831 0.177745 +v -0.769066 0.008818 0.182484 +v -0.769898 0.010018 0.183038 +v -0.770596 0.011484 0.183518 +v -0.770750 0.007895 0.177245 +v -0.769576 0.007225 0.176686 +v -0.767002 0.007213 0.181154 +v -0.768101 0.007883 0.181856 +v -0.777875 0.017501 0.170295 +v -0.778083 0.020027 0.170362 +v -0.778590 0.020030 0.166479 +v -0.778376 0.017503 0.166444 +v -0.776776 0.017496 0.174613 +v -0.776975 0.020022 0.174720 +v -0.764388 0.007865 0.186936 +v -0.765282 0.008800 0.187670 +v -0.763368 0.007195 0.186116 +v -0.758549 0.007172 0.191516 +v -0.759487 0.007841 0.192433 +v -0.760309 0.008776 0.193254 +v -0.762223 0.006791 0.185209 +v -0.761317 0.004916 0.184497 +v -0.756658 0.004899 0.189706 +v -0.757494 0.006768 0.190502 +v -0.765769 0.006808 0.180378 +v -0.764793 0.004928 0.179769 +v -0.751449 0.006739 0.196200 +v -0.752416 0.007143 0.197301 +v -0.750682 0.004878 0.195335 +v -0.743271 0.004852 0.201327 +v -0.743972 0.006703 0.202247 +v -0.744856 0.007107 0.203419 +v -0.734948 0.006660 0.208589 +v -0.735755 0.007063 0.209818 +v -0.734309 0.004820 0.207623 +v -0.723687 0.004782 0.214173 +v -0.724269 0.006609 0.215176 +v -0.725002 0.007011 0.216452 +v -0.753276 0.007812 0.198297 +v -0.754026 0.008746 0.199189 +v -0.745640 0.007775 0.204479 +v -0.746323 0.008709 0.205428 +v -0.766051 0.010000 0.188317 +v -0.766694 0.011465 0.188878 +v -0.761013 0.009976 0.193978 +v -0.761601 0.011441 0.194605 +v -0.774028 0.013228 0.178892 +v -0.774494 0.015225 0.179157 +v -0.771160 0.013215 0.183925 +v -0.771590 0.015211 0.184257 +v -0.774818 0.017486 0.179363 +v -0.775000 0.020013 0.179510 +v -0.771886 0.017472 0.184516 +v -0.772049 0.019999 0.184701 +v -0.767212 0.013196 0.189353 +v -0.767604 0.015192 0.189742 +v -0.762072 0.013171 0.195136 +v -0.762426 0.015167 0.195571 +v -0.754669 0.009945 0.199975 +v -0.755202 0.011410 0.200657 +v -0.746906 0.009908 0.206265 +v -0.747388 0.011372 0.206991 +v -0.778140 0.022819 0.170403 +v -0.777758 0.031808 0.170423 +v -0.778270 0.031817 0.166510 +v -0.778650 0.022822 0.166500 +v -0.777025 0.022814 0.174784 +v -0.776641 0.031789 0.174816 +v -0.775040 0.022805 0.179598 +v -0.774653 0.031755 0.179642 +v -0.772078 0.022790 0.184811 +v -0.771686 0.031705 0.184867 +v -0.767871 0.017453 0.190044 +v -0.768013 0.019979 0.190260 +v -0.762663 0.017428 0.195909 +v -0.762783 0.019954 0.196150 +v -0.776654 0.052926 0.170430 +v -0.777165 0.052953 0.166514 +v -0.775537 0.052866 0.174826 +v -0.772994 0.082647 0.174826 +v -0.774106 0.082762 0.170430 +v -0.774615 0.082815 0.166514 +v -0.755627 0.013140 0.201233 +v -0.755944 0.015136 0.201705 +v -0.747769 0.013102 0.207604 +v -0.748050 0.015098 0.208107 +v -0.736467 0.007731 0.210931 +v -0.737087 0.008664 0.211926 +v -0.725649 0.007679 0.217606 +v -0.726210 0.008612 0.218639 +v -0.711826 0.006549 0.221957 +v -0.711296 0.004738 0.220925 +v -0.697026 0.004688 0.227835 +v -0.697508 0.006480 0.228891 +v -0.712492 0.006951 0.223272 +v -0.698113 0.006882 0.230236 +v -0.681207 0.006402 0.235933 +v -0.681757 0.006804 0.237302 +v -0.680768 0.004630 0.234858 +v -0.663877 0.004570 0.241506 +v -0.664278 0.006321 0.242597 +v -0.664780 0.006722 0.243985 +v -0.713078 0.007619 0.224460 +v -0.713584 0.008552 0.225524 +v -0.698644 0.007549 0.231452 +v -0.699101 0.008482 0.232541 +v -0.737614 0.009863 0.212804 +v -0.738047 0.011328 0.213565 +v -0.726685 0.009811 0.219551 +v -0.727073 0.011275 0.220341 +v -0.756152 0.017396 0.202072 +v -0.756251 0.019923 0.202334 +v -0.748230 0.017358 0.208497 +v -0.748309 0.019885 0.208776 +v -0.738387 0.013057 0.214209 +v -0.738635 0.015053 0.214736 +v -0.727375 0.013005 0.221009 +v -0.727591 0.015000 0.221556 +v -0.714011 0.009750 0.226463 +v -0.714358 0.011214 0.227276 +v -0.699484 0.009680 0.233501 +v -0.699793 0.011144 0.234334 +v -0.682238 0.007471 0.238541 +v -0.682651 0.008403 0.239650 +v -0.665218 0.007389 0.245241 +v -0.665592 0.008321 0.246365 +v -0.714625 0.012943 0.227964 +v -0.714812 0.014938 0.228528 +v -0.700028 0.012873 0.235038 +v -0.700189 0.014868 0.235614 +v -0.682995 0.009601 0.240628 +v -0.683270 0.011065 0.241475 +v -0.665901 0.009519 0.247357 +v -0.666147 0.010983 0.248217 +v -0.648940 0.007311 0.251067 +v -0.649280 0.008243 0.252204 +v -0.648540 0.006644 0.249797 +v -0.632001 0.006565 0.255164 +v -0.632369 0.007231 0.256445 +v -0.632679 0.008163 0.257591 +v -0.648079 0.006243 0.248393 +v -0.647711 0.004513 0.247290 +v -0.631238 0.004455 0.252636 +v -0.631577 0.006164 0.253748 +v -0.613740 0.006078 0.259085 +v -0.614131 0.006479 0.260511 +v -0.613426 0.004391 0.257964 +v -0.594237 0.004323 0.263258 +v -0.594527 0.005986 0.264385 +v -0.594888 0.006387 0.265819 +v -0.573899 0.005887 0.269631 +v -0.574232 0.006288 0.271073 +v -0.573630 0.004250 0.268498 +v -0.551562 0.004172 0.273668 +v -0.551809 0.005781 0.274806 +v -0.552115 0.006181 0.276254 +v -0.614469 0.007145 0.261801 +v -0.614753 0.008077 0.262955 +v -0.595199 0.007053 0.267117 +v -0.595459 0.007985 0.268278 +v -0.649560 0.009441 0.253206 +v -0.649779 0.010904 0.254075 +v -0.632933 0.009361 0.258603 +v -0.633130 0.010824 0.259479 +v -0.528214 0.005668 0.279894 +v -0.528495 0.006068 0.281348 +v -0.527986 0.004088 0.278752 +v -0.502859 0.003999 0.283734 +v -0.503068 0.005547 0.284880 +v -0.503325 0.005947 0.286338 +v -0.574516 0.006954 0.272377 +v -0.574753 0.007885 0.273544 +v -0.552376 0.006847 0.277564 +v -0.552591 0.007779 0.278736 +v -0.614983 0.009275 0.263974 +v -0.615160 0.010738 0.264856 +v -0.595667 0.009182 0.269303 +v -0.595826 0.010645 0.270191 +v -0.683476 0.012794 0.242192 +v -0.683614 0.014788 0.242779 +v -0.666328 0.012712 0.248944 +v -0.666445 0.014706 0.249539 +v -0.649939 0.012633 0.254811 +v -0.650038 0.014627 0.255412 +v -0.633270 0.012553 0.260221 +v -0.633354 0.014547 0.260828 +v -0.615283 0.012467 0.265603 +v -0.615353 0.014461 0.266214 +v -0.595933 0.012374 0.270942 +v -0.595989 0.014368 0.271557 +v -0.683683 0.017049 0.243235 +v -0.683683 0.019574 0.243561 +v -0.700289 0.019654 0.236383 +v -0.700276 0.017128 0.236063 +v -0.666497 0.016966 0.250002 +v -0.666486 0.019492 0.250333 +v -0.650077 0.016887 0.255880 +v -0.650055 0.019413 0.256214 +v -0.633380 0.016807 0.261300 +v -0.633350 0.019333 0.261637 +v -0.714919 0.017199 0.228966 +v -0.714947 0.019724 0.229278 +v -0.727764 0.019786 0.222285 +v -0.727721 0.017260 0.221981 +v -0.738789 0.017313 0.215146 +v -0.738849 0.019839 0.215439 +v -0.714894 0.022516 0.229466 +v -0.714500 0.030729 0.229560 +v -0.727324 0.030948 0.222558 +v -0.727722 0.022577 0.222467 +v -0.700228 0.022445 0.236575 +v -0.699839 0.030479 0.236671 +v -0.738817 0.022631 0.215614 +v -0.738417 0.031137 0.215702 +v -0.747888 0.031298 0.209027 +v -0.748288 0.022676 0.208944 +v -0.756242 0.022714 0.202492 +v -0.755842 0.031434 0.202570 +v -0.762389 0.031546 0.196367 +v -0.762786 0.022746 0.196295 +v -0.768029 0.022771 0.190389 +v -0.767634 0.031635 0.190454 +v -0.754770 0.051745 0.202597 +v -0.761306 0.052098 0.196391 +v -0.746829 0.051317 0.209055 +v -0.744396 0.079692 0.209055 +v -0.752307 0.080509 0.202597 +v -0.758817 0.081182 0.196391 +v -0.773552 0.052759 0.179657 +v -0.770589 0.052599 0.184885 +v -0.768065 0.082138 0.184885 +v -0.771016 0.082443 0.179657 +v -0.766543 0.052380 0.190475 +v -0.764034 0.081721 0.190475 +v -0.737376 0.050807 0.215731 +v -0.726303 0.050210 0.222589 +v -0.723949 0.077579 0.222589 +v -0.734979 0.078719 0.215731 +v -0.769395 0.117906 0.170430 +v -0.769901 0.117983 0.166514 +v -0.768290 0.117737 0.174826 +v -0.761588 0.155293 0.174826 +v -0.762684 0.155517 0.170430 +v -0.763185 0.155619 0.166514 +v -0.754134 0.192752 0.170430 +v -0.754630 0.192879 0.166514 +v -0.753051 0.192475 0.174826 +v -0.742700 0.229194 0.174826 +v -0.743768 0.229524 0.170430 +v -0.744257 0.229675 0.166514 +v -0.766325 0.117435 0.179657 +v -0.763392 0.116986 0.184885 +v -0.756733 0.154303 0.184885 +v -0.759640 0.154896 0.179657 +v -0.731609 0.265742 0.170430 +v -0.732090 0.265917 0.166514 +v -0.730559 0.265361 0.174826 +v -0.716658 0.300888 0.174826 +v -0.717689 0.301321 0.170430 +v -0.718161 0.301519 0.166514 +v -0.702039 0.336173 0.170430 +v -0.702501 0.336394 0.166514 +v -0.701031 0.335690 0.174826 +v -0.683715 0.369684 0.174826 +v -0.684699 0.370216 0.170430 +v -0.685149 0.370459 0.166514 +v -0.751124 0.191983 0.179657 +v -0.748249 0.191248 0.184885 +v -0.737965 0.227733 0.184885 +v -0.740799 0.228608 0.179657 +v -0.728689 0.264682 0.179657 +v -0.725901 0.263669 0.184885 +v -0.712089 0.298970 0.184885 +v -0.714825 0.300118 0.179657 +v -0.699237 0.334831 0.179657 +v -0.696561 0.333550 0.184885 +v -0.679356 0.367327 0.184885 +v -0.681966 0.368738 0.179657 +v -0.722092 0.262285 0.190476 +v -0.717162 0.260495 0.196391 +v -0.703517 0.295371 0.196391 +v -0.708353 0.297401 0.190476 +v -0.734093 0.226538 0.190476 +v -0.729081 0.224992 0.196391 +v -0.692906 0.331800 0.190476 +v -0.688176 0.329535 0.196391 +v -0.671178 0.362905 0.196391 +v -0.675792 0.365400 0.190476 +v -0.665708 0.403366 0.170430 +v -0.666146 0.403631 0.166514 +v -0.664752 0.402787 0.174826 +v -0.644188 0.434920 0.174826 +v -0.645114 0.435545 0.170430 +v -0.645539 0.435832 0.166514 +v -0.622965 0.466675 0.170430 +v -0.623375 0.466982 0.166514 +v -0.622071 0.466004 0.174826 +v -0.598456 0.495967 0.174826 +v -0.599317 0.496680 0.170430 +v -0.599711 0.497007 0.166514 +v -0.663051 0.401756 0.179657 +v -0.660514 0.400219 0.184885 +v -0.640081 0.432147 0.184885 +v -0.642539 0.433807 0.179657 +v -0.574224 0.525488 0.170430 +v -0.574601 0.525835 0.166514 +v -0.573399 0.524733 0.174826 +v -0.549011 0.550397 0.174826 +v -0.549797 0.551192 0.170430 +v -0.550159 0.551556 0.166514 +v -0.620479 0.464812 0.179657 +v -0.618105 0.463033 0.184885 +v -0.594641 0.492805 0.184885 +v -0.596925 0.494698 0.179657 +v -0.528150 0.571882 0.170430 +v -0.528493 0.572263 0.166514 +v -0.527404 0.571050 0.174826 +v -0.511675 0.585123 0.174816 +v -0.512392 0.585982 0.170423 +v -0.512718 0.586375 0.166510 +v -0.571932 0.523391 0.179657 +v -0.569743 0.521389 0.184885 +v -0.545524 0.546876 0.184885 +v -0.547611 0.548984 0.179657 +v -0.505628 0.591915 0.170403 +v -0.503418 0.593621 0.170362 +v -0.503736 0.594014 0.166479 +v -0.505950 0.592310 0.166500 +v -0.504925 0.591049 0.174784 +v -0.502719 0.592761 0.174720 +v -0.526075 0.569570 0.179657 +v -0.524094 0.567362 0.184885 +v -0.508503 0.581316 0.184867 +v -0.510404 0.583596 0.179642 +v -0.503672 0.589509 0.179598 +v -0.501473 0.591228 0.179510 +v -0.501804 0.587210 0.184812 +v -0.499611 0.588938 0.184701 +v -0.501319 0.595043 0.170295 +v -0.499329 0.596179 0.170200 +v -0.499640 0.596562 0.166396 +v -0.501634 0.595431 0.166444 +v -0.500625 0.594190 0.174613 +v -0.498646 0.595338 0.174464 +v -0.497452 0.597031 0.170079 +v -0.497756 0.597406 0.166333 +v -0.496781 0.596205 0.174271 +v -0.495578 0.594724 0.178892 +v -0.493849 0.595337 0.178569 +v -0.497425 0.593836 0.179157 +v -0.495593 0.591582 0.184257 +v -0.493769 0.592498 0.183925 +v -0.492067 0.593144 0.183519 +v -0.499250 0.584068 0.190389 +v -0.497065 0.585806 0.190260 +v -0.505909 0.578203 0.190454 +v -0.502551 0.574172 0.196367 +v -0.495944 0.579999 0.196295 +v -0.493767 0.581747 0.196150 +v -0.521387 0.564347 0.190476 +v -0.517883 0.560444 0.196391 +v -0.542672 0.543997 0.190476 +v -0.538981 0.540271 0.196391 +v -0.495008 0.587279 0.190044 +v -0.493081 0.588489 0.189742 +v -0.497541 0.590395 0.184516 +v -0.491725 0.583237 0.195909 +v -0.489814 0.584470 0.195571 +v -0.566754 0.518652 0.190476 +v -0.562885 0.515112 0.196391 +v -0.591521 0.490219 0.190476 +v -0.587482 0.486873 0.196391 +v -0.491818 0.574921 0.202492 +v -0.489649 0.576678 0.202334 +v -0.498359 0.569142 0.202570 +v -0.493268 0.563030 0.209027 +v -0.486800 0.568748 0.208944 +v -0.484640 0.570515 0.208776 +v -0.513511 0.555573 0.202597 +v -0.508199 0.549655 0.209055 +v -0.534376 0.535621 0.202597 +v -0.528779 0.529971 0.209055 +v -0.614862 0.460604 0.190476 +v -0.610664 0.457459 0.196391 +v -0.636722 0.429880 0.190476 +v -0.632375 0.426945 0.196391 +v -0.558056 0.510694 0.202597 +v -0.552190 0.505325 0.209055 +v -0.582443 0.482696 0.202597 +v -0.576320 0.477622 0.209055 +v -0.657048 0.398119 0.190476 +v -0.652562 0.395401 0.196391 +v -0.605426 0.453535 0.202597 +v -0.599061 0.448768 0.209055 +v -0.626951 0.423282 0.202597 +v -0.620360 0.418833 0.209055 +v -0.646965 0.392009 0.202597 +v -0.640163 0.387888 0.209055 +v -0.665421 0.359792 0.202597 +v -0.658426 0.356010 0.209055 +v -0.682273 0.326708 0.202597 +v -0.675100 0.323273 0.209055 +v -0.697482 0.292837 0.202597 +v -0.690150 0.289759 0.209055 +v -0.591484 0.443092 0.215731 +v -0.582609 0.436443 0.222589 +v -0.560493 0.464505 0.222589 +v -0.569031 0.471581 0.215731 +v -0.612514 0.413535 0.215731 +v -0.603323 0.407330 0.222589 +v -0.632067 0.382982 0.215731 +v -0.622583 0.377236 0.222589 +v -0.650098 0.351507 0.215731 +v -0.640343 0.346233 0.222589 +v -0.545206 0.498933 0.215731 +v -0.537025 0.491447 0.222589 +v -0.514314 0.515365 0.222589 +v -0.522117 0.523245 0.215731 +v -0.501875 0.542610 0.215731 +v -0.494468 0.534359 0.222589 +v -0.480102 0.547230 0.222558 +v -0.487204 0.555754 0.215702 +v -0.527569 0.482794 0.229591 +v -0.516757 0.472900 0.236703 +v -0.494981 0.495847 0.236703 +v -0.505294 0.506259 0.229591 +v -0.550623 0.456326 0.229591 +v -0.539339 0.446974 0.236703 +v -0.480828 0.561398 0.215614 +v -0.478674 0.563173 0.215439 +v -0.473830 0.552787 0.222467 +v -0.471682 0.554571 0.222285 +v -0.485905 0.524819 0.229591 +v -0.476115 0.513914 0.236703 +v -0.462505 0.526111 0.236671 +v -0.471892 0.537377 0.229560 +v -0.465740 0.542834 0.229466 +v -0.463599 0.544623 0.229278 +v -0.456490 0.531451 0.236575 +v -0.454354 0.533248 0.236383 +v -0.487617 0.578184 0.202072 +v -0.485726 0.579440 0.201705 +v -0.482621 0.572036 0.208497 +v -0.480747 0.573313 0.208107 +v -0.476667 0.564709 0.215146 +v -0.474809 0.566007 0.214736 +v -0.469687 0.556120 0.221981 +v -0.467845 0.557436 0.221556 +v -0.491279 0.589435 0.189353 +v -0.489606 0.590116 0.188878 +v -0.488037 0.585446 0.195136 +v -0.486394 0.586164 0.194605 +v -0.492238 0.595672 0.178186 +v -0.490744 0.595731 0.177745 +v -0.490488 0.593519 0.183038 +v -0.489031 0.593624 0.182484 +v -0.483973 0.580444 0.201233 +v -0.482359 0.581198 0.200657 +v -0.479017 0.574346 0.207604 +v -0.477430 0.575133 0.206991 +v -0.488061 0.590534 0.188317 +v -0.486645 0.590687 0.187670 +v -0.484885 0.586624 0.193978 +v -0.483508 0.586828 0.193254 +v -0.489369 0.595514 0.177245 +v -0.488111 0.595020 0.176686 +v -0.489161 0.596313 0.172671 +v -0.490458 0.596855 0.173076 +v -0.487697 0.593458 0.181856 +v -0.486487 0.593022 0.181154 +v -0.486970 0.594249 0.176068 +v -0.484457 0.594930 0.175583 +v -0.485429 0.596131 0.171870 +v -0.487979 0.595490 0.172222 +v -0.485397 0.592315 0.180378 +v -0.482929 0.593043 0.179769 +v -0.485355 0.590577 0.186936 +v -0.484194 0.590202 0.186116 +v -0.482265 0.586773 0.192433 +v -0.481156 0.586462 0.191516 +v -0.480882 0.581700 0.199975 +v -0.479546 0.581952 0.199189 +v -0.475987 0.575676 0.206265 +v -0.474688 0.575974 0.205428 +v -0.483162 0.589563 0.185209 +v -0.480742 0.590341 0.184497 +v -0.480179 0.585893 0.190502 +v -0.477809 0.586720 0.189706 +v -0.478348 0.581953 0.198297 +v -0.477288 0.581703 0.197301 +v -0.473532 0.576027 0.204479 +v -0.472520 0.575836 0.203419 +v -0.476367 0.581202 0.196200 +v -0.474050 0.582074 0.195335 +v -0.471652 0.575400 0.202247 +v -0.469387 0.576314 0.201327 +v -0.470127 0.568465 0.212804 +v -0.468863 0.568806 0.211926 +v -0.471539 0.567885 0.213565 +v -0.464618 0.559368 0.220341 +v -0.463234 0.559983 0.219551 +v -0.462003 0.560365 0.218639 +v -0.465961 0.568397 0.208589 +v -0.463748 0.569349 0.207623 +v -0.466780 0.568772 0.209819 +v -0.459998 0.560428 0.216452 +v -0.459225 0.560109 0.215176 +v -0.457065 0.561094 0.214173 +v -0.467747 0.568909 0.210931 +v -0.460924 0.560513 0.217606 +v -0.451378 0.550452 0.221958 +v -0.449269 0.551462 0.220925 +v -0.452108 0.550719 0.223272 +v -0.443040 0.539560 0.230236 +v -0.442348 0.539342 0.228891 +v -0.440290 0.540371 0.227835 +v -0.452996 0.550757 0.224460 +v -0.454040 0.550568 0.225524 +v -0.444906 0.539328 0.232541 +v -0.443893 0.539557 0.231452 +v -0.432067 0.526691 0.235933 +v -0.430061 0.527734 0.234858 +v -0.432724 0.526867 0.237303 +v -0.422017 0.513692 0.243985 +v -0.421390 0.513553 0.242597 +v -0.419433 0.514607 0.241506 +v -0.411173 0.500982 0.248394 +v -0.409261 0.502042 0.247291 +v -0.411775 0.501090 0.249797 +v -0.401344 0.488255 0.255164 +v -0.400766 0.488176 0.253748 +v -0.398896 0.489238 0.252636 +v -0.433546 0.526824 0.238541 +v -0.434531 0.526561 0.239650 +v -0.423772 0.513322 0.246366 +v -0.422811 0.513615 0.245241 +v -0.412545 0.500984 0.251067 +v -0.413484 0.500664 0.252204 +v -0.403015 0.487781 0.257591 +v -0.402094 0.488123 0.256445 +v -0.390805 0.474232 0.261801 +v -0.390074 0.474387 0.260511 +v -0.391709 0.473869 0.262955 +v -0.379540 0.458896 0.268278 +v -0.378652 0.459278 0.267117 +v -0.377938 0.459453 0.265819 +v -0.414593 0.500131 0.253206 +v -0.415871 0.499385 0.254075 +v -0.405370 0.486464 0.259479 +v -0.404107 0.487228 0.258603 +v -0.424899 0.512812 0.247357 +v -0.426193 0.512087 0.248217 +v -0.392786 0.473298 0.263974 +v -0.394037 0.472518 0.264856 +v -0.381843 0.457514 0.270191 +v -0.380604 0.458308 0.269303 +v -0.435680 0.526078 0.240628 +v -0.436993 0.525374 0.241475 +v -0.446079 0.538875 0.233501 +v -0.447413 0.538198 0.234334 +v -0.455241 0.550148 0.226463 +v -0.456599 0.549500 0.227276 +v -0.417317 0.498425 0.254811 +v -0.418933 0.497252 0.255412 +v -0.408411 0.484304 0.260828 +v -0.406805 0.485489 0.260221 +v -0.427654 0.511144 0.248944 +v -0.429281 0.509984 0.249539 +v -0.438469 0.524451 0.242192 +v -0.440109 0.523308 0.242779 +v -0.448908 0.537296 0.235038 +v -0.450563 0.536171 0.235614 +v -0.458114 0.548624 0.227964 +v -0.459785 0.547519 0.228528 +v -0.466155 0.558519 0.221009 +v -0.473100 0.567065 0.214209 +v -0.461613 0.546186 0.228966 +v -0.452378 0.534822 0.236063 +v -0.441913 0.521945 0.243236 +v -0.443881 0.520362 0.243562 +v -0.433035 0.507016 0.250333 +v -0.431075 0.508608 0.250002 +v -0.446012 0.518557 0.243757 +v -0.451873 0.513352 0.243855 +v -0.440863 0.500140 0.250630 +v -0.435162 0.505207 0.250531 +v -0.465028 0.501562 0.243888 +v -0.453547 0.488771 0.250663 +v -0.483301 0.484053 0.243888 +v -0.471206 0.471841 0.250663 +v -0.420718 0.495865 0.255880 +v -0.422673 0.494265 0.256215 +v -0.412137 0.481301 0.261637 +v -0.410188 0.482908 0.261300 +v -0.424796 0.492451 0.256415 +v -0.430345 0.487516 0.256515 +v -0.419652 0.474683 0.261940 +v -0.414257 0.479483 0.261839 +v -0.442578 0.476551 0.256549 +v -0.431427 0.464128 0.261974 +v -0.459650 0.460174 0.256549 +v -0.447903 0.448314 0.261974 +v -0.504512 0.461693 0.243888 +v -0.491832 0.450090 0.250663 +v -0.526559 0.436382 0.243888 +v -0.513325 0.425415 0.250663 +v -0.572350 0.428758 0.229591 +v -0.560621 0.419971 0.236703 +v -0.592699 0.400158 0.229591 +v -0.580553 0.391957 0.236703 +v -0.479719 0.439004 0.256549 +v -0.467404 0.427734 0.261974 +v -0.500681 0.414937 0.256549 +v -0.487829 0.404285 0.261974 +v -0.547336 0.410019 0.243888 +v -0.533580 0.399715 0.250663 +v -0.566796 0.382669 0.243887 +v -0.552551 0.373052 0.250663 +v -0.419399 0.450729 0.267369 +v -0.406463 0.436318 0.272718 +v -0.395715 0.445955 0.272684 +v -0.408118 0.460841 0.267335 +v -0.435232 0.435520 0.267369 +v -0.421605 0.421762 0.272718 +v -0.402889 0.465495 0.267233 +v -0.400772 0.467317 0.267029 +v -0.390664 0.450452 0.272581 +v -0.388549 0.452276 0.272376 +v -0.398828 0.468930 0.266690 +v -0.397058 0.470334 0.266214 +v -0.386610 0.453895 0.272035 +v -0.384846 0.455307 0.271557 +v -0.454120 0.415578 0.267369 +v -0.439835 0.402505 0.272718 +v -0.473965 0.392795 0.267369 +v -0.459055 0.380439 0.272718 +v -0.377552 0.434317 0.277869 +v -0.375440 0.436145 0.277663 +v -0.382411 0.429989 0.277972 +v -0.368180 0.412909 0.283183 +v -0.363524 0.417057 0.283080 +v -0.361415 0.418887 0.282873 +v -0.392590 0.420863 0.278006 +v -0.377749 0.404330 0.283218 +v -0.406990 0.407006 0.278006 +v -0.391355 0.391221 0.283218 +v -0.395461 0.471530 0.265603 +v -0.383257 0.456514 0.270942 +v -0.373505 0.437769 0.277319 +v -0.371747 0.439188 0.276839 +v -0.359484 0.420516 0.282528 +v -0.357731 0.421942 0.282046 +v -0.370165 0.440404 0.276221 +v -0.368761 0.441416 0.275466 +v -0.356157 0.423167 0.281425 +v -0.354761 0.424189 0.280667 +v -0.367533 0.442224 0.274574 +v -0.366482 0.442827 0.273544 +v -0.353544 0.425010 0.279770 +v -0.352505 0.425628 0.278736 +v -0.344518 0.402101 0.287646 +v -0.342771 0.403534 0.287161 +v -0.346445 0.400467 0.287992 +v -0.330503 0.380850 0.293004 +v -0.328579 0.382488 0.292657 +v -0.326837 0.383927 0.292171 +v -0.365607 0.443227 0.272377 +v -0.364910 0.443422 0.271073 +v -0.351644 0.426045 0.277564 +v -0.350962 0.426259 0.276254 +v -0.341203 0.404767 0.286539 +v -0.339816 0.405799 0.285777 +v -0.325276 0.385168 0.291546 +v -0.323896 0.386210 0.290782 +v -0.338608 0.406632 0.284877 +v -0.337580 0.407264 0.283839 +v -0.322698 0.387054 0.289879 +v -0.321680 0.387699 0.288838 +v -0.364389 0.443414 0.269631 +v -0.362650 0.444463 0.268498 +v -0.375616 0.460479 0.263258 +v -0.377399 0.459423 0.264385 +v -0.350458 0.426271 0.274806 +v -0.348765 0.427310 0.273668 +v -0.389517 0.474333 0.259085 +v -0.387690 0.475394 0.257964 +v -0.336732 0.407696 0.282663 +v -0.336065 0.407928 0.281348 +v -0.320845 0.388146 0.287657 +v -0.320190 0.388395 0.286338 +v -0.335577 0.407960 0.279894 +v -0.333932 0.408986 0.278752 +v -0.319717 0.388445 0.284880 +v -0.318121 0.389456 0.283734 +v -0.302851 0.367692 0.289747 +v -0.301307 0.368684 0.288598 +v -0.303310 0.367624 0.291209 +v -0.285396 0.345581 0.295945 +v -0.284951 0.345665 0.294479 +v -0.283458 0.346636 0.293327 +v -0.303952 0.367360 0.292532 +v -0.304776 0.366899 0.293716 +v -0.286839 0.344827 0.298457 +v -0.286026 0.345302 0.297271 +v -0.267037 0.321936 0.301859 +v -0.266419 0.322230 0.300529 +v -0.267840 0.321449 0.303048 +v -0.247751 0.296729 0.307471 +v -0.246957 0.297228 0.306280 +v -0.246350 0.297534 0.304948 +v -0.305783 0.366241 0.294760 +v -0.306973 0.365386 0.295665 +v -0.289018 0.343293 0.300412 +v -0.287836 0.344157 0.299505 +v -0.268829 0.320768 0.304097 +v -0.270002 0.319894 0.305006 +v -0.249897 0.295154 0.309433 +v -0.248731 0.296038 0.308522 +v -0.308345 0.364335 0.296431 +v -0.309900 0.363086 0.297058 +v -0.291932 0.340977 0.301808 +v -0.290383 0.342232 0.301180 +v -0.271361 0.318825 0.305776 +v -0.272905 0.317564 0.306405 +v -0.252788 0.292810 0.310835 +v -0.251249 0.294078 0.310204 +v -0.311638 0.361641 0.297545 +v -0.313558 0.360000 0.297894 +v -0.295583 0.337881 0.302646 +v -0.293666 0.339527 0.302297 +v -0.274634 0.316108 0.306895 +v -0.276548 0.314458 0.307245 +v -0.256424 0.289697 0.311676 +v -0.254513 0.291349 0.311325 +v -0.230019 0.267955 0.314449 +v -0.228673 0.269038 0.313677 +v -0.231553 0.266681 0.315080 +v -0.214988 0.246297 0.318231 +v -0.213459 0.247578 0.317598 +v -0.212119 0.248669 0.316825 +v -0.233275 0.265216 0.315572 +v -0.235183 0.263560 0.315922 +v -0.218611 0.243167 0.319074 +v -0.216705 0.244827 0.318723 +v -0.278647 0.312615 0.307455 +v -0.282069 0.309564 0.307560 +v -0.261651 0.285061 0.311991 +v -0.258522 0.287851 0.311886 +v -0.297684 0.336040 0.302855 +v -0.301382 0.332743 0.302960 +v -0.227513 0.269930 0.312764 +v -0.226541 0.270631 0.311711 +v -0.210968 0.249571 0.315911 +v -0.210005 0.250283 0.314857 +v -0.237279 0.261713 0.316133 +v -0.240101 0.259197 0.316238 +v -0.223285 0.239016 0.319390 +v -0.220705 0.241318 0.319285 +v -0.225757 0.271141 0.310518 +v -0.225159 0.271459 0.309185 +v -0.209231 0.250805 0.313662 +v -0.208645 0.251138 0.312326 +v -0.265986 0.322329 0.299060 +v -0.245929 0.297649 0.303476 +v -0.264549 0.323277 0.297906 +v -0.244548 0.298570 0.302320 +v -0.224749 0.271587 0.307711 +v -0.223427 0.272479 0.306553 +v -0.208247 0.251282 0.310850 +v -0.206974 0.252155 0.309691 +v -0.204885 0.242086 0.317050 +v -0.203934 0.242813 0.315994 +v -0.206026 0.241171 0.317966 +v -0.205157 0.240102 0.318082 +v -0.204032 0.241036 0.317165 +v -0.203099 0.241785 0.316107 +v -0.202223 0.243869 0.311981 +v -0.200978 0.244747 0.310819 +v -0.202603 0.243704 0.313459 +v -0.201812 0.242731 0.313569 +v -0.201457 0.242926 0.312088 +v -0.200234 0.243828 0.310924 +v -0.203174 0.243353 0.314797 +v -0.202359 0.242350 0.314909 +v -0.200730 0.242032 0.312156 +v -0.199538 0.242969 0.310991 +v -0.201047 0.241789 0.313638 +v -0.201559 0.241366 0.314980 +v -0.202268 0.240763 0.316180 +v -0.201460 0.239768 0.316194 +v -0.200793 0.240424 0.314996 +v -0.203173 0.239980 0.317239 +v -0.204275 0.239016 0.318157 +v -0.203396 0.237935 0.318168 +v -0.202327 0.238938 0.317252 +v -0.200081 0.239547 0.314941 +v -0.200692 0.238823 0.316131 +v -0.199974 0.237939 0.315982 +v -0.199432 0.238748 0.314811 +v -0.201510 0.237932 0.317182 +v -0.202536 0.236876 0.318092 +v -0.201705 0.235854 0.317911 +v -0.200732 0.236975 0.317016 +v -0.198856 0.238039 0.314603 +v -0.199317 0.237131 0.315739 +v -0.198717 0.236393 0.315389 +v -0.198344 0.237409 0.314312 +v -0.198619 0.238802 0.313334 +v -0.198206 0.238293 0.313107 +v -0.198609 0.239421 0.311932 +v -0.197661 0.240651 0.310830 +v -0.198304 0.239046 0.311775 +v -0.197442 0.240381 0.310729 +v -0.200004 0.236079 0.316740 +v -0.200916 0.234883 0.317608 +v -0.200171 0.233967 0.317165 +v -0.199326 0.235245 0.316340 +v -0.198699 0.234473 0.315801 +v -0.198170 0.235720 0.314924 +v -0.199474 0.233108 0.316561 +v -0.198821 0.232305 0.315763 +v -0.198113 0.233753 0.315085 +v -0.197662 0.235095 0.314302 +v -0.200495 0.231625 0.317205 +v -0.201763 0.230024 0.317731 +v -0.201007 0.229094 0.316807 +v -0.199786 0.230752 0.316337 +v -0.201252 0.232556 0.317862 +v -0.202568 0.231014 0.318433 +v -0.202053 0.233543 0.318343 +v -0.203416 0.232058 0.318944 +v -0.202895 0.234578 0.318669 +v -0.204300 0.233146 0.319289 +v -0.203769 0.235654 0.318863 +v -0.205211 0.234267 0.319493 +v -0.204666 0.236757 0.318944 +v -0.206137 0.235406 0.319578 +v -0.203277 0.228304 0.318140 +v -0.205038 0.226466 0.318433 +v -0.204220 0.225459 0.317433 +v -0.202485 0.227329 0.317172 +v -0.204120 0.229341 0.318876 +v -0.205907 0.227536 0.319193 +v -0.205572 0.237873 0.318934 +v -0.207066 0.236550 0.319570 +v -0.206475 0.238983 0.318858 +v -0.207985 0.237680 0.319493 +v -0.205005 0.230429 0.319412 +v -0.206818 0.228656 0.319745 +v -0.205922 0.231558 0.319772 +v -0.207759 0.229814 0.320116 +v -0.206861 0.232713 0.319983 +v -0.208718 0.230994 0.320333 +v -0.207810 0.233881 0.320072 +v -0.209683 0.232182 0.320424 +v -0.207357 0.240069 0.318740 +v -0.208879 0.238779 0.319374 +v -0.208757 0.235046 0.320064 +v -0.210643 0.233363 0.320417 +v -0.209688 0.236192 0.319986 +v -0.211583 0.234520 0.320339 +v -0.210590 0.237302 0.319867 +v -0.212492 0.235637 0.320219 +v -0.210783 0.229109 0.320543 +v -0.213205 0.226919 0.320648 +v -0.212214 0.225729 0.320426 +v -0.209812 0.227914 0.320323 +v -0.211759 0.230309 0.320636 +v -0.214200 0.228113 0.320742 +v -0.214583 0.233785 0.320430 +v -0.217074 0.231562 0.320536 +v -0.216147 0.230449 0.320656 +v -0.213671 0.232663 0.320550 +v -0.212725 0.231499 0.320629 +v -0.215185 0.229294 0.320735 +v -0.220172 0.228785 0.320571 +v -0.219205 0.227707 0.320692 +v -0.226650 0.236001 0.319426 +v -0.232179 0.230509 0.319426 +v -0.225355 0.223619 0.320571 +v -0.224336 0.222590 0.320692 +v -0.218200 0.226588 0.320770 +v -0.217172 0.225443 0.320777 +v -0.223278 0.221522 0.320770 +v -0.222195 0.220428 0.320777 +v -0.216133 0.224286 0.320684 +v -0.215097 0.223131 0.320461 +v -0.221100 0.219324 0.320684 +v -0.220009 0.218222 0.320461 +v -0.208857 0.226739 0.319946 +v -0.211238 0.224558 0.320046 +v -0.210290 0.223421 0.319479 +v -0.207931 0.225599 0.319384 +v -0.214077 0.221995 0.320079 +v -0.213087 0.220891 0.319510 +v -0.218934 0.217137 0.320079 +v -0.217890 0.216083 0.319510 +v -0.207045 0.224509 0.318608 +v -0.209384 0.222333 0.318696 +v -0.208531 0.221309 0.317668 +v -0.206212 0.223484 0.317590 +v -0.212138 0.219835 0.318725 +v -0.211246 0.218841 0.317694 +v -0.216891 0.215074 0.318725 +v -0.215951 0.214125 0.317694 +v -0.229639 0.210149 0.320684 +v -0.228494 0.209102 0.320461 +v -0.230786 0.211199 0.320777 +v -0.240871 0.199620 0.320777 +v -0.239674 0.198628 0.320684 +v -0.238479 0.197638 0.320461 +v -0.205443 0.222538 0.316299 +v -0.203465 0.224530 0.316165 +v -0.207743 0.220364 0.316366 +v -0.207034 0.219514 0.314760 +v -0.204749 0.221684 0.314704 +v -0.202782 0.223690 0.314591 +v -0.227368 0.208071 0.320079 +v -0.226274 0.207069 0.319510 +v -0.237304 0.196664 0.320079 +v -0.236162 0.195717 0.319510 +v -0.210422 0.217923 0.316388 +v -0.209681 0.217098 0.314779 +v -0.215084 0.213249 0.316388 +v -0.214303 0.212461 0.314779 +v -0.225226 0.206111 0.318725 +v -0.224241 0.205209 0.317694 +v -0.235069 0.194811 0.318725 +v -0.234040 0.193959 0.317694 +v -0.201752 0.226428 0.315941 +v -0.200306 0.228231 0.315629 +v -0.201087 0.225609 0.314404 +v -0.199666 0.227443 0.314141 +v -0.199126 0.229940 0.315226 +v -0.198211 0.231555 0.314735 +v -0.198517 0.229191 0.313804 +v -0.197642 0.230854 0.313391 +v -0.204143 0.220939 0.312773 +v -0.202182 0.222952 0.312676 +v -0.206416 0.218772 0.312821 +v -0.205844 0.218085 0.310714 +v -0.203581 0.220247 0.310673 +v -0.201625 0.222266 0.310590 +v -0.209036 0.216379 0.312837 +v -0.208438 0.215713 0.310728 +v -0.213623 0.211774 0.312837 +v -0.212994 0.211139 0.310728 +v -0.200499 0.224885 0.312516 +v -0.199092 0.226737 0.312291 +v -0.199948 0.224207 0.310452 +v -0.198552 0.226072 0.310258 +v -0.221800 0.202976 0.312837 +v -0.221140 0.202371 0.310728 +v -0.222513 0.203628 0.314779 +v -0.232237 0.192464 0.314779 +v -0.231493 0.191848 0.312837 +v -0.230804 0.191277 0.310728 +v -0.197963 0.228509 0.312002 +v -0.197111 0.230201 0.311648 +v -0.197435 0.227860 0.310009 +v -0.196599 0.229572 0.309705 +v -0.197562 0.233075 0.314154 +v -0.197180 0.234501 0.313483 +v -0.197039 0.232431 0.312904 +v -0.196709 0.233923 0.312341 +v -0.196536 0.231812 0.311231 +v -0.196239 0.233343 0.310749 +v -0.196043 0.231206 0.309346 +v -0.195768 0.232764 0.308931 +v -0.196219 0.234794 0.310203 +v -0.196653 0.235328 0.311704 +v -0.195772 0.234245 0.308461 +v -0.197063 0.235833 0.312724 +v -0.197212 0.237070 0.311874 +v -0.197531 0.237463 0.312423 +v -0.197468 0.236332 0.313415 +v -0.197627 0.238213 0.310936 +v -0.197015 0.239853 0.310199 +v -0.197163 0.240036 0.310467 +v -0.197850 0.238488 0.311328 +v -0.240627 0.180258 0.312837 +v -0.239911 0.179721 0.310728 +v -0.241400 0.180837 0.314779 +v -0.249983 0.168775 0.314779 +v -0.249182 0.168234 0.312837 +v -0.248441 0.167733 0.310728 +v -0.223331 0.204377 0.316388 +v -0.233091 0.193172 0.316388 +v -0.242288 0.181502 0.316388 +v -0.243275 0.182241 0.317694 +v -0.251924 0.170085 0.317694 +v -0.250903 0.169395 0.316388 +v -0.244344 0.183042 0.318725 +v -0.245480 0.183894 0.319510 +v -0.254208 0.171627 0.319510 +v -0.253032 0.170833 0.318725 +v -0.257137 0.155804 0.312837 +v -0.256372 0.155341 0.310728 +v -0.257963 0.156305 0.314779 +v -0.265322 0.143459 0.314779 +v -0.264472 0.143000 0.312837 +v -0.263685 0.142574 0.310728 +v -0.258912 0.156880 0.316388 +v -0.259966 0.157519 0.317694 +v -0.267382 0.144573 0.317694 +v -0.266298 0.143987 0.316388 +v -0.271170 0.129850 0.312837 +v -0.270363 0.129464 0.310728 +v -0.272042 0.130268 0.314779 +v -0.278106 0.116762 0.314779 +v -0.277215 0.116388 0.312837 +v -0.276390 0.116042 0.310728 +v -0.273042 0.130747 0.316388 +v -0.274154 0.131279 0.317694 +v -0.280265 0.117669 0.317694 +v -0.279129 0.117192 0.316388 +v -0.261109 0.158211 0.318725 +v -0.262323 0.158947 0.319510 +v -0.269806 0.145884 0.319510 +v -0.268558 0.145209 0.318725 +v -0.275359 0.131856 0.318725 +v -0.276639 0.132469 0.319510 +v -0.282806 0.118736 0.319510 +v -0.281497 0.118186 0.318725 +v -0.282592 0.102646 0.312837 +v -0.281751 0.102340 0.310728 +v -0.283500 0.102976 0.314779 +v -0.288212 0.088941 0.314779 +v -0.287288 0.088656 0.312837 +v -0.286433 0.088392 0.310728 +v -0.284543 0.103354 0.316388 +v -0.285701 0.103775 0.317694 +v -0.290450 0.089632 0.317694 +v -0.289272 0.089268 0.316388 +v -0.291292 0.074453 0.312837 +v -0.290425 0.074231 0.310728 +v -0.292228 0.074692 0.314779 +v -0.295541 0.060263 0.314779 +v -0.294595 0.060070 0.312837 +v -0.293718 0.059891 0.310728 +v -0.293303 0.074967 0.316388 +v -0.294497 0.075272 0.317694 +v -0.297836 0.060731 0.317694 +v -0.296629 0.060485 0.316388 +v -0.286957 0.104231 0.318725 +v -0.288291 0.104716 0.319510 +v -0.293083 0.090444 0.319510 +v -0.291726 0.090026 0.318725 +v -0.295792 0.075603 0.318725 +v -0.297167 0.075954 0.319510 +v -0.300536 0.061281 0.319510 +v -0.299145 0.060998 0.318725 +v -0.297187 0.045542 0.312837 +v -0.296303 0.045407 0.310728 +v -0.298142 0.045689 0.314779 +v -0.299877 0.033755 0.314779 +v -0.298916 0.033656 0.312837 +v -0.298026 0.033564 0.310728 +v -0.299239 0.045857 0.316388 +v -0.300457 0.046044 0.317694 +v -0.302206 0.033996 0.317694 +v -0.300980 0.033869 0.316388 +v -0.299627 0.027195 0.312837 +v -0.298733 0.027147 0.310728 +v -0.300591 0.027247 0.314779 +v -0.300814 0.023671 0.314760 +v -0.299849 0.023654 0.312821 +v -0.298955 0.023639 0.310714 +v -0.300112 0.020525 0.312773 +v -0.300451 0.017735 0.312676 +v -0.299567 0.017731 0.310590 +v -0.299221 0.020521 0.310673 +v -0.301073 0.020530 0.314704 +v -0.301401 0.017740 0.314591 +v -0.301699 0.027307 0.316388 +v -0.302930 0.027374 0.317694 +v -0.303151 0.023711 0.317668 +v -0.301921 0.023690 0.316366 +v -0.302172 0.020535 0.316299 +v -0.302484 0.017745 0.316165 +v -0.303392 0.020541 0.317590 +v -0.303682 0.017750 0.317433 +v -0.300901 0.015211 0.312516 +v -0.301462 0.012954 0.312291 +v -0.300606 0.012950 0.310258 +v -0.300028 0.015207 0.310452 +v -0.301834 0.015216 0.314404 +v -0.302372 0.012959 0.314141 +v -0.304264 0.027445 0.318725 +v -0.305682 0.027522 0.319510 +v -0.305900 0.023758 0.319479 +v -0.304484 0.023733 0.318696 +v -0.303535 0.034133 0.318725 +v -0.304947 0.034279 0.319510 +v -0.302135 0.010963 0.312002 +v -0.302919 0.009239 0.311648 +v -0.302108 0.009235 0.309705 +v -0.301299 0.010959 0.310009 +v -0.303014 0.010968 0.313804 +v -0.303760 0.009243 0.313391 +v -0.302889 0.015221 0.315941 +v -0.303387 0.012963 0.315629 +v -0.304051 0.015227 0.317172 +v -0.304499 0.012969 0.316807 +v -0.304713 0.020547 0.318608 +v -0.304979 0.017757 0.318433 +v -0.306117 0.020554 0.319384 +v -0.306357 0.017763 0.319193 +v -0.303814 0.007781 0.311231 +v -0.304820 0.006590 0.310749 +v -0.304073 0.006586 0.308931 +v -0.303033 0.007777 0.309346 +v -0.304611 0.007785 0.312904 +v -0.305567 0.006593 0.312341 +v -0.303979 0.010972 0.315226 +v -0.304663 0.009248 0.314735 +v -0.305025 0.010977 0.316337 +v -0.305631 0.009252 0.315763 +v -0.305938 0.005664 0.310203 +v -0.305230 0.005661 0.308461 +v -0.306626 0.005668 0.311704 +v -0.305441 0.007789 0.314154 +v -0.306312 0.006597 0.313483 +v -0.306315 0.007793 0.315085 +v -0.307077 0.006600 0.314302 +v -0.307276 0.005671 0.312724 +v -0.308334 0.005011 0.311874 +v -0.307919 0.005674 0.313415 +v -0.308839 0.005014 0.312423 +v -0.309485 0.004618 0.310936 +v -0.310382 0.003316 0.310199 +v -0.309839 0.004620 0.311328 +v -0.310617 0.003317 0.310467 +v -0.307243 0.007798 0.315801 +v -0.307883 0.006604 0.314924 +v -0.306665 0.009257 0.316561 +v -0.307771 0.009262 0.317165 +v -0.308238 0.007802 0.316340 +v -0.308750 0.006608 0.315389 +v -0.306150 0.010983 0.317205 +v -0.305697 0.012975 0.317731 +v -0.306973 0.012981 0.318433 +v -0.307349 0.010989 0.317862 +v -0.309312 0.007808 0.316740 +v -0.309701 0.006613 0.315739 +v -0.308952 0.009268 0.317608 +v -0.310204 0.009274 0.317911 +v -0.310466 0.007813 0.317016 +v -0.310743 0.006618 0.315982 +v -0.308621 0.010995 0.318343 +v -0.308319 0.012987 0.318944 +v -0.309720 0.012994 0.319289 +v -0.309955 0.011001 0.318669 +v -0.310119 0.005684 0.314603 +v -0.310566 0.005022 0.313334 +v -0.309910 0.005019 0.313107 +v -0.309307 0.005681 0.314312 +v -0.311033 0.005689 0.314811 +v -0.311337 0.005026 0.313502 +v -0.312062 0.005694 0.314941 +v -0.312245 0.005030 0.313610 +v -0.311880 0.006623 0.316131 +v -0.313098 0.006629 0.316194 +v -0.313192 0.005699 0.314996 +v -0.313276 0.005035 0.313656 +v -0.311700 0.007819 0.317182 +v -0.311520 0.009280 0.318092 +v -0.312884 0.009287 0.318168 +v -0.312996 0.007825 0.317252 +v -0.314406 0.005705 0.314980 +v -0.314380 0.006636 0.316180 +v -0.315698 0.006642 0.316107 +v -0.315674 0.005711 0.314908 +v -0.314414 0.005040 0.313638 +v -0.315627 0.005046 0.313569 +v -0.311342 0.011008 0.318863 +v -0.311165 0.013001 0.319493 +v -0.312633 0.013008 0.319578 +v -0.312763 0.011014 0.318944 +v -0.314338 0.007832 0.317239 +v -0.314278 0.009294 0.318157 +v -0.315676 0.009300 0.318082 +v -0.315699 0.007838 0.317165 +v -0.314201 0.011021 0.318934 +v -0.314106 0.013015 0.319570 +v -0.315563 0.013022 0.319493 +v -0.315631 0.011028 0.318858 +v -0.310989 0.015260 0.319983 +v -0.310814 0.017785 0.320333 +v -0.312344 0.017792 0.320424 +v -0.312493 0.015267 0.320072 +v -0.309500 0.015253 0.319772 +v -0.309293 0.017777 0.320116 +v -0.313995 0.015274 0.320064 +v -0.313866 0.017799 0.320417 +v -0.315357 0.017807 0.320339 +v -0.315471 0.015281 0.319986 +v -0.317031 0.011035 0.318740 +v -0.317055 0.009307 0.317966 +v -0.316980 0.013029 0.319374 +v -0.326667 0.013075 0.318231 +v -0.326706 0.011081 0.317598 +v -0.326716 0.009353 0.316825 +v -0.308046 0.015246 0.319412 +v -0.307801 0.017770 0.319745 +v -0.306643 0.015239 0.318876 +v -0.317052 0.007845 0.317050 +v -0.317022 0.006648 0.315994 +v -0.326697 0.007891 0.315911 +v -0.326648 0.006694 0.314857 +v -0.316966 0.005717 0.314797 +v -0.316882 0.005052 0.313459 +v -0.326569 0.005763 0.313662 +v -0.326461 0.005098 0.312326 +v -0.316902 0.015288 0.319867 +v -0.316797 0.017813 0.320219 +v -0.326499 0.017860 0.319074 +v -0.326598 0.015335 0.318723 +v -0.352963 0.011207 0.314449 +v -0.352963 0.009479 0.313677 +v -0.352933 0.013201 0.315080 +v -0.386602 0.013363 0.310835 +v -0.386625 0.011369 0.310204 +v -0.386615 0.009641 0.309433 +v -0.352870 0.015461 0.315572 +v -0.352777 0.017986 0.315922 +v -0.386456 0.018148 0.311676 +v -0.386545 0.015622 0.311325 +v -0.352931 0.008017 0.312764 +v -0.352867 0.006820 0.311711 +v -0.386572 0.008178 0.308522 +v -0.386497 0.006982 0.307471 +v -0.316772 0.004653 0.311981 +v -0.316679 0.003339 0.310819 +v -0.315496 0.003335 0.310924 +v -0.315558 0.004647 0.312088 +v -0.326324 0.004699 0.310850 +v -0.326210 0.003373 0.309691 +v -0.314405 0.004642 0.312156 +v -0.314391 0.003331 0.310991 +v -0.313402 0.003328 0.311013 +v -0.313350 0.004637 0.312176 +v -0.352773 0.005889 0.310518 +v -0.352647 0.005224 0.309185 +v -0.386388 0.006051 0.306279 +v -0.386246 0.005385 0.304948 +v -0.418226 0.006203 0.301859 +v -0.418067 0.005538 0.300529 +v -0.418350 0.007135 0.303048 +v -0.448474 0.007279 0.298457 +v -0.448334 0.006348 0.297271 +v -0.448157 0.005682 0.295945 +v -0.418440 0.008331 0.304097 +v -0.418494 0.009794 0.305006 +v -0.448644 0.009939 0.300412 +v -0.448577 0.008476 0.299505 +v -0.418514 0.011522 0.305776 +v -0.418498 0.013516 0.306405 +v -0.448667 0.013661 0.301808 +v -0.448675 0.011667 0.301180 +v -0.477033 0.008613 0.294760 +v -0.476914 0.007416 0.293716 +v -0.477113 0.010075 0.295665 +v -0.503946 0.010204 0.290782 +v -0.503852 0.008741 0.289879 +v -0.503717 0.007544 0.288838 +v -0.418448 0.015776 0.306895 +v -0.418363 0.018301 0.307245 +v -0.448545 0.018446 0.302646 +v -0.448624 0.015920 0.302297 +v -0.477154 0.011804 0.296431 +v -0.477158 0.013798 0.297058 +v -0.504011 0.013926 0.292171 +v -0.503999 0.011932 0.291546 +v -0.477120 0.016057 0.297545 +v -0.477046 0.018583 0.297894 +v -0.503912 0.018712 0.293004 +v -0.503982 0.016186 0.292657 +v -0.418243 0.021092 0.307455 +v -0.418012 0.025670 0.307560 +v -0.448177 0.026185 0.302960 +v -0.448428 0.021237 0.302855 +v -0.386333 0.020939 0.311886 +v -0.386121 0.025126 0.311991 +v -0.476931 0.021374 0.298102 +v -0.476664 0.026671 0.298207 +v -0.503518 0.027129 0.293316 +v -0.503802 0.021503 0.293212 +v -0.529255 0.016307 0.287646 +v -0.529276 0.014048 0.287161 +v -0.529191 0.018833 0.287992 +v -0.552926 0.018947 0.282873 +v -0.552984 0.016421 0.282528 +v -0.552997 0.014162 0.282046 +v -0.352652 0.020777 0.316133 +v -0.352461 0.024552 0.316238 +v -0.326371 0.020651 0.319285 +v -0.326197 0.024104 0.319390 +v -0.529253 0.012054 0.286538 +v -0.529188 0.010325 0.285777 +v -0.552964 0.012167 0.281425 +v -0.552885 0.010439 0.280667 +v -0.316665 0.020604 0.320430 +v -0.316495 0.023939 0.320536 +v -0.315219 0.020597 0.320550 +v -0.315047 0.023914 0.320656 +v -0.417591 0.033558 0.307595 +v -0.447697 0.035182 0.302995 +v -0.385764 0.031841 0.312026 +v -0.384721 0.042523 0.312026 +v -0.416426 0.045799 0.307595 +v -0.446417 0.048898 0.302995 +v -0.313720 0.020590 0.320629 +v -0.313544 0.023888 0.320735 +v -0.312186 0.020583 0.320636 +v -0.312006 0.023862 0.320742 +v -0.352170 0.030029 0.316273 +v -0.325957 0.028616 0.319426 +v -0.325145 0.036366 0.319426 +v -0.351256 0.039065 0.316273 +v -0.316274 0.028093 0.320571 +v -0.314828 0.028015 0.320692 +v -0.314058 0.035221 0.320692 +v -0.315499 0.035369 0.320571 +v -0.310640 0.020575 0.320543 +v -0.310452 0.023835 0.320648 +v -0.309100 0.020568 0.320323 +v -0.308904 0.023809 0.320426 +v -0.313326 0.027934 0.320770 +v -0.311789 0.027851 0.320777 +v -0.311031 0.034908 0.320777 +v -0.312563 0.035066 0.320770 +v -0.313666 0.048068 0.320571 +v -0.323252 0.049537 0.319426 +v -0.312235 0.047848 0.320692 +v -0.309511 0.063111 0.320692 +v -0.310930 0.063401 0.320571 +v -0.320432 0.065338 0.319426 +v -0.310748 0.047621 0.320770 +v -0.309227 0.047387 0.320777 +v -0.306529 0.062503 0.320777 +v -0.308038 0.062811 0.320770 +v -0.310236 0.027768 0.320684 +v -0.308688 0.027684 0.320461 +v -0.307942 0.034589 0.320461 +v -0.309485 0.034748 0.320684 +v -0.349199 0.053513 0.316273 +v -0.382454 0.058609 0.312026 +v -0.346153 0.070583 0.316273 +v -0.379118 0.077305 0.312026 +v -0.307690 0.047152 0.320684 +v -0.306157 0.046917 0.320461 +v -0.303486 0.061883 0.320461 +v -0.305006 0.062193 0.320684 +v -0.304647 0.046686 0.320079 +v -0.303181 0.046461 0.319510 +v -0.301990 0.061578 0.320079 +v -0.306423 0.034432 0.320079 +v -0.307586 0.020561 0.319946 +v -0.307380 0.023783 0.320046 +v -0.305307 0.015233 0.318140 +v -0.307163 0.027602 0.320079 +v -0.301778 0.046246 0.318725 +v -0.298604 0.076322 0.320079 +v -0.300084 0.076700 0.320461 +v -0.294500 0.090882 0.320079 +v -0.295959 0.091332 0.320461 +v -0.301586 0.077084 0.320684 +v -0.303093 0.077469 0.320777 +v -0.297441 0.091789 0.320684 +v -0.298927 0.092248 0.320777 +v -0.289686 0.105222 0.320079 +v -0.291121 0.105744 0.320461 +v -0.284174 0.119310 0.320079 +v -0.285582 0.119901 0.320461 +v -0.304584 0.077850 0.320770 +v -0.306041 0.078222 0.320692 +v -0.300398 0.092702 0.320770 +v -0.301835 0.093145 0.320692 +v -0.292579 0.106273 0.320684 +v -0.294040 0.106804 0.320777 +v -0.287012 0.120501 0.320684 +v -0.288446 0.121103 0.320777 +v -0.277977 0.133110 0.320079 +v -0.279354 0.133769 0.320461 +v -0.271111 0.146589 0.320079 +v -0.272454 0.147316 0.320461 +v -0.307444 0.078581 0.320571 +v -0.316840 0.080982 0.319426 +v -0.303219 0.093572 0.320571 +v -0.312485 0.096431 0.319426 +v -0.295487 0.107330 0.320770 +v -0.296901 0.107843 0.320692 +v -0.289865 0.121699 0.320770 +v -0.291252 0.122281 0.320692 +v -0.280753 0.134439 0.320684 +v -0.282156 0.135111 0.320777 +v -0.273819 0.148053 0.320684 +v -0.275187 0.148793 0.320777 +v -0.263592 0.159715 0.320079 +v -0.264898 0.160507 0.320461 +v -0.255437 0.172457 0.320079 +v -0.256703 0.173311 0.320461 +v -0.246667 0.184783 0.320079 +v -0.247890 0.185698 0.320461 +v -0.266224 0.161310 0.320684 +v -0.267554 0.162116 0.320777 +v -0.257988 0.174179 0.320684 +v -0.259277 0.175049 0.320777 +v -0.283544 0.135776 0.320770 +v -0.284900 0.136425 0.320692 +v -0.276541 0.149525 0.320770 +v -0.277863 0.150240 0.320692 +v -0.249131 0.186628 0.320684 +v -0.250376 0.187561 0.320777 +v -0.268871 0.162914 0.320770 +v -0.270157 0.163693 0.320692 +v -0.260553 0.175911 0.320770 +v -0.261799 0.176752 0.320692 +v -0.251607 0.188483 0.320770 +v -0.252811 0.189385 0.320692 +v -0.242056 0.200602 0.320770 +v -0.243214 0.201562 0.320692 +v -0.231921 0.212238 0.320770 +v -0.233031 0.213253 0.320692 +v -0.271395 0.164444 0.320571 +v -0.279689 0.169469 0.319426 +v -0.287667 0.155541 0.319426 +v -0.279137 0.150929 0.320571 +v -0.263000 0.177562 0.320571 +v -0.271037 0.182989 0.319426 +v -0.234099 0.214230 0.320571 +v -0.241253 0.220777 0.319426 +v -0.251795 0.208674 0.319426 +v -0.244329 0.202486 0.320571 +v -0.253970 0.190253 0.320571 +v -0.261731 0.196067 0.319426 +v -0.260618 0.238499 0.316273 +v -0.285438 0.261212 0.312026 +v -0.297911 0.246892 0.312026 +v -0.272007 0.225424 0.316273 +v -0.250652 0.249160 0.316273 +v -0.274327 0.273063 0.312026 +v -0.282741 0.211806 0.316273 +v -0.309666 0.231976 0.312026 +v -0.320676 0.216502 0.312026 +v -0.292793 0.197677 0.316273 +v -0.302140 0.183072 0.316273 +v -0.330913 0.200507 0.312026 +v -0.340353 0.184028 0.312026 +v -0.310759 0.168027 0.316273 +v -0.286207 0.137051 0.320571 +v -0.294953 0.141239 0.319426 +v -0.301528 0.126596 0.319426 +v -0.292587 0.122842 0.320571 +v -0.318629 0.152576 0.316273 +v -0.348973 0.167106 0.312026 +v -0.356752 0.149782 0.312026 +v -0.325732 0.136758 0.316273 +v -0.298262 0.108337 0.320571 +v -0.307376 0.111648 0.319426 +v -0.332050 0.120610 0.316273 +v -0.363671 0.132096 0.312026 +v -0.369715 0.114093 0.312026 +v -0.337568 0.104172 0.316273 +v -0.342273 0.087483 0.316273 +v -0.374868 0.095814 0.312026 +v -0.393630 0.142978 0.307595 +v -0.421969 0.153272 0.302995 +v -0.428982 0.132382 0.302995 +v -0.400172 0.123491 0.307595 +v -0.386141 0.162121 0.307595 +v -0.413940 0.173792 0.302995 +v -0.413960 0.063437 0.307595 +v -0.443763 0.068004 0.302995 +v -0.410349 0.083673 0.307595 +v -0.439892 0.089697 0.302995 +v -0.405749 0.103707 0.307595 +v -0.434960 0.111173 0.302995 +v -0.476128 0.036716 0.298242 +v -0.502930 0.038161 0.293351 +v -0.474738 0.051825 0.298242 +v -0.501436 0.054584 0.293351 +v -0.471906 0.072317 0.298242 +v -0.498436 0.076383 0.293351 +v -0.467790 0.095386 0.298242 +v -0.494088 0.100748 0.293351 +v -0.462546 0.118224 0.298242 +v -0.488549 0.124871 0.293351 +v -0.456188 0.140778 0.298242 +v -0.481834 0.148692 0.293351 +v -0.377720 0.180872 0.307595 +v -0.404914 0.193894 0.302995 +v -0.368391 0.199188 0.307595 +v -0.394912 0.213528 0.302995 +v -0.448731 0.162992 0.298242 +v -0.473958 0.172156 0.293351 +v -0.440193 0.184814 0.298242 +v -0.464940 0.195204 0.293351 +v -0.358173 0.217024 0.307595 +v -0.383959 0.232648 0.302995 +v -0.347093 0.234338 0.307595 +v -0.372081 0.251208 0.302995 +v -0.430594 0.206191 0.298242 +v -0.454802 0.217783 0.293351 +v -0.419958 0.227071 0.298242 +v -0.443568 0.239837 0.293351 +v -0.335176 0.251086 0.307595 +v -0.359307 0.269163 0.302995 +v -0.322453 0.267230 0.307595 +v -0.345667 0.286469 0.302995 +v -0.408310 0.247403 0.298242 +v -0.431266 0.261312 0.293351 +v -0.395679 0.267140 0.298242 +v -0.417924 0.282159 0.293351 +v -0.497694 0.180777 0.288338 +v -0.519982 0.188873 0.283218 +v -0.528624 0.163131 0.283218 +v -0.505965 0.156139 0.288338 +v -0.488224 0.204980 0.288338 +v -0.510088 0.214160 0.283218 +v -0.477578 0.228689 0.288338 +v -0.498965 0.238931 0.283218 +v -0.465782 0.251848 0.288338 +v -0.486641 0.263126 0.283218 +v -0.513017 0.131124 0.288338 +v -0.535991 0.136996 0.283218 +v -0.542068 0.110532 0.283218 +v -0.518833 0.105794 0.288338 +v -0.382094 0.286233 0.298242 +v -0.403576 0.302325 0.293351 +v -0.367590 0.304637 0.298242 +v -0.388256 0.321764 0.293351 +v -0.523399 0.080208 0.288338 +v -0.546838 0.083800 0.283218 +v -0.550143 0.059618 0.283218 +v -0.526556 0.057180 0.288338 +v -0.308952 0.282730 0.307595 +v -0.331194 0.303085 0.302995 +v -0.296756 0.295709 0.307595 +v -0.317973 0.317131 0.302995 +v -0.244185 0.255536 0.316273 +v -0.266659 0.280572 0.312026 +v -0.287950 0.304292 0.307595 +v -0.308091 0.326729 0.302995 +v -0.352199 0.322307 0.298242 +v -0.371999 0.340427 0.293351 +v -0.338010 0.337361 0.298242 +v -0.356897 0.356430 0.293351 +v -0.315661 0.358161 0.298103 +v -0.319620 0.354632 0.298207 +v -0.332608 0.379014 0.293212 +v -0.336813 0.375265 0.293316 +v -0.327110 0.347917 0.298242 +v -0.345039 0.367890 0.293351 +v -0.348552 0.398634 0.288200 +v -0.352990 0.394679 0.288303 +v -0.361909 0.386683 0.288338 +v -0.374668 0.374373 0.288338 +v -0.390630 0.357476 0.288338 +v -0.408123 0.373485 0.283218 +v -0.425958 0.353009 0.283218 +v -0.407700 0.337878 0.288338 +v -0.424514 0.388484 0.278006 +v -0.443064 0.367187 0.278006 +v -0.423787 0.317466 0.288338 +v -0.442766 0.331683 0.283218 +v -0.458508 0.309558 0.283218 +v -0.438855 0.296290 0.288338 +v -0.460546 0.345004 0.278006 +v -0.477169 0.357455 0.272718 +v -0.494133 0.333611 0.272718 +v -0.476921 0.321991 0.278006 +v -0.492667 0.369065 0.267369 +v -0.507077 0.379861 0.261974 +v -0.525106 0.354522 0.261974 +v -0.510182 0.344447 0.267369 +v -0.452864 0.274399 0.288338 +v -0.473143 0.286688 0.283218 +v -0.492145 0.298201 0.278006 +v -0.509907 0.308963 0.272718 +v -0.524453 0.283572 0.272718 +v -0.506185 0.273694 0.278006 +v -0.519004 0.248526 0.278006 +v -0.537735 0.257496 0.272718 +v -0.549723 0.230801 0.272718 +v -0.530574 0.222761 0.278006 +v -0.526469 0.318998 0.267369 +v -0.541868 0.328329 0.261974 +v -0.557326 0.301346 0.261974 +v -0.541487 0.292782 0.267369 +v -0.555201 0.265859 0.267369 +v -0.571441 0.273636 0.261974 +v -0.584180 0.245267 0.261974 +v -0.567578 0.238297 0.267369 +v -0.540865 0.196458 0.278006 +v -0.560385 0.203549 0.272718 +v -0.569698 0.175807 0.272718 +v -0.549853 0.169683 0.278006 +v -0.578586 0.210160 0.267369 +v -0.595510 0.216307 0.261974 +v -0.605407 0.186826 0.261974 +v -0.588202 0.181517 0.267369 +v -0.557517 0.142498 0.278006 +v -0.577638 0.147641 0.272718 +v -0.584187 0.119120 0.272718 +v -0.563838 0.114971 0.278006 +v -0.596399 0.152436 0.267369 +v -0.613845 0.156895 0.261974 +v -0.620804 0.126586 0.261974 +v -0.603161 0.122989 0.267369 +v -0.568799 0.087166 0.278006 +v -0.589328 0.090312 0.272718 +v -0.592901 0.064036 0.272718 +v -0.572243 0.061901 0.278006 +v -0.608469 0.093245 0.267369 +v -0.626267 0.095972 0.261974 +v -0.630074 0.067878 0.261974 +v -0.612163 0.066027 0.267369 +v -0.630018 0.161029 0.256549 +v -0.645928 0.165096 0.250663 +v -0.653251 0.133203 0.250663 +v -0.637161 0.129922 0.256549 +v -0.621359 0.191749 0.256549 +v -0.637049 0.196591 0.250663 +v -0.642768 0.098501 0.256549 +v -0.659000 0.100988 0.250663 +v -0.663013 0.071282 0.250663 +v -0.646679 0.069594 0.256549 +v -0.614085 0.044157 0.267369 +v -0.594749 0.043114 0.272718 +v -0.632065 0.045127 0.261974 +v -0.632906 0.029337 0.261940 +v -0.614891 0.029029 0.267335 +v -0.595517 0.028699 0.272684 +v -0.611201 0.222007 0.256549 +v -0.626635 0.227613 0.250663 +v -0.599572 0.251730 0.256549 +v -0.614712 0.258086 0.250663 +v -0.574011 0.041995 0.278006 +v -0.551825 0.040799 0.283218 +v -0.574739 0.028344 0.277972 +v -0.552510 0.027965 0.283183 +v -0.586497 0.280846 0.256549 +v -0.601308 0.287938 0.250663 +v -0.572011 0.309286 0.256549 +v -0.586456 0.317096 0.250663 +v -0.528147 0.039522 0.288338 +v -0.528785 0.027560 0.288303 +v -0.529083 0.021624 0.288200 +v -0.552822 0.021738 0.283080 +v -0.575064 0.021845 0.277869 +v -0.575164 0.019054 0.277663 +v -0.595854 0.021944 0.272581 +v -0.595950 0.019153 0.272376 +v -0.615239 0.022037 0.267233 +v -0.615330 0.019246 0.267029 +v -0.633263 0.022124 0.261839 +v -0.575216 0.016528 0.277319 +v -0.575219 0.014268 0.276839 +v -0.595995 0.016628 0.272035 +v -0.615368 0.016721 0.266690 +v -0.575175 0.012274 0.276221 +v -0.575082 0.010545 0.275466 +v -0.574942 0.009083 0.274574 +v -0.552761 0.008976 0.279770 +v -0.529080 0.008862 0.284877 +v -0.528928 0.007665 0.283839 +v -0.528733 0.006734 0.282663 +v -0.503542 0.006613 0.287657 +v -0.476757 0.006484 0.292532 +v -0.476561 0.005819 0.291209 +v -0.417874 0.005138 0.299060 +v -0.417715 0.003697 0.297906 +v -0.385927 0.003585 0.302320 +v -0.386071 0.004986 0.303476 +v -0.447943 0.005283 0.294479 +v -0.447769 0.003804 0.293327 +v -0.352489 0.004824 0.307711 +v -0.352359 0.003466 0.306553 +v -0.649974 0.022204 0.256415 +v -0.649608 0.029622 0.256515 +v -0.666036 0.029902 0.250630 +v -0.666410 0.022283 0.250531 +v -0.648735 0.046026 0.256549 +v -0.665132 0.046910 0.250663 +v -0.683614 0.022366 0.243757 +v -0.683232 0.030195 0.243855 +v -0.682294 0.047836 0.243887 +v -0.698869 0.048730 0.236703 +v -0.680110 0.073048 0.243887 +v -0.696621 0.074755 0.236703 +v -0.713503 0.049520 0.229591 +v -0.711199 0.076261 0.229591 +v -0.675989 0.103592 0.243887 +v -0.692397 0.106106 0.236703 +v -0.670092 0.136637 0.243887 +v -0.686357 0.139953 0.236703 +v -0.706883 0.108326 0.229591 +v -0.719553 0.110268 0.222589 +v -0.700716 0.142881 0.229591 +v -0.713276 0.145442 0.222589 +v -0.662580 0.169352 0.243887 +v -0.678662 0.173462 0.236703 +v -0.653473 0.201659 0.243887 +v -0.669334 0.206554 0.236703 +v -0.730514 0.111948 0.215731 +v -0.739872 0.113382 0.209055 +v -0.724142 0.147658 0.215731 +v -0.733418 0.149549 0.209055 +v -0.692861 0.177091 0.229591 +v -0.705280 0.180266 0.222589 +v -0.683337 0.210875 0.229591 +v -0.695586 0.214655 0.222589 +v -0.642790 0.233481 0.243887 +v -0.658392 0.239148 0.236703 +v -0.630560 0.264740 0.243887 +v -0.645865 0.271166 0.236703 +v -0.747733 0.114586 0.202597 +v -0.754202 0.115578 0.196391 +v -0.741210 0.151138 0.202597 +v -0.747623 0.152446 0.196391 +v -0.716024 0.183012 0.215731 +v -0.725196 0.185356 0.209055 +v -0.706182 0.217925 0.215731 +v -0.715228 0.220717 0.209055 +v -0.672167 0.244151 0.229591 +v -0.684215 0.248527 0.222589 +v -0.659378 0.276839 0.229591 +v -0.671197 0.281801 0.222589 +v -0.759387 0.116372 0.190475 +v -0.752762 0.153493 0.190476 +v -0.732901 0.187325 0.202597 +v -0.739242 0.188946 0.196391 +v -0.722827 0.223062 0.202597 +v -0.744323 0.190245 0.190476 +v -0.711011 0.258260 0.202597 +v -0.703536 0.255545 0.209055 +v -0.694638 0.252313 0.215731 +v -0.681421 0.286094 0.215731 +v -0.666562 0.319185 0.215731 +v -0.656560 0.314395 0.222589 +v -0.611620 0.370593 0.229591 +v -0.599086 0.362999 0.236703 +v -0.629068 0.340136 0.229591 +v -0.616176 0.333166 0.236703 +v -0.644999 0.308859 0.229591 +v -0.631781 0.302530 0.236703 +v -0.584889 0.354397 0.243887 +v -0.570190 0.345490 0.250663 +v -0.601575 0.325271 0.243887 +v -0.520438 0.389870 0.256549 +v -0.538941 0.363863 0.256549 +v -0.616810 0.295361 0.243887 +v -0.556146 0.336980 0.256549 +v -0.308585 0.005677 0.313930 +v -0.309350 0.005016 0.312819 +v -0.310177 0.004621 0.311591 +v -0.310820 0.003318 0.310626 +v -0.310558 0.004623 0.311775 +v -0.311061 0.003319 0.310729 +v -0.311041 0.004625 0.311932 +v -0.311408 0.003320 0.310830 +v -0.311655 0.004628 0.312055 +v -0.311899 0.003322 0.310918 +v -0.312429 0.004632 0.312139 +v -0.312568 0.003325 0.310984 +v -0.198064 0.238750 0.311591 +v -0.197853 0.237859 0.312819 +v -0.197291 0.240194 0.310626 +v -0.197888 0.236848 0.313930 +v -0.768261 0.006820 0.176068 +v -0.767221 0.004937 0.175583 +v -0.769860 0.006828 0.172222 +v -0.768767 0.004942 0.171870 +v -0.771210 0.006834 0.162776 +v -0.770055 0.004947 0.162729 +v -0.769949 0.004947 0.165551 +v -0.771096 0.006834 0.165666 +v -0.772670 0.007240 0.162836 +v -0.772659 0.007240 0.160000 +v -0.771195 0.006834 0.160000 +v -0.770039 0.004947 0.160000 +v -0.773976 0.007911 0.162890 +v -0.775125 0.008847 0.162939 +v -0.775118 0.008847 0.160000 +v -0.773966 0.007911 0.160000 +v -0.776120 0.010048 0.162982 +v -0.776959 0.011514 0.163019 +v -0.776954 0.011514 0.160000 +v -0.776114 0.010048 0.160000 +v -0.777642 0.013246 0.163050 +v -0.778170 0.015242 0.163076 +v -0.778168 0.015242 0.160000 +v -0.777639 0.013246 0.160000 +v -0.778542 0.017504 0.163096 +v -0.778759 0.020031 0.163111 +v -0.778758 0.020031 0.160000 +v -0.778541 0.017504 0.160000 +v -0.778820 0.022823 0.163119 +v -0.778440 0.031820 0.163123 +v -0.778440 0.031820 0.160000 +v -0.778820 0.022823 0.160000 +v -0.777335 0.052963 0.163125 +v -0.777335 0.052963 0.160000 +v -0.774785 0.082832 0.163125 +v -0.774785 0.082832 0.160000 +v -0.770070 0.118009 0.163125 +v -0.770070 0.118009 0.160000 +v -0.763353 0.155653 0.163125 +v -0.763353 0.155653 0.160000 +v -0.754795 0.192921 0.163125 +v -0.754795 0.192921 0.160000 +v -0.744420 0.229725 0.163125 +v -0.744420 0.229725 0.160000 +v -0.732251 0.265975 0.163125 +v -0.732251 0.265975 0.160000 +v -0.718318 0.301585 0.163125 +v -0.718318 0.301585 0.160000 +v -0.702655 0.336468 0.163125 +v -0.702655 0.336468 0.160000 +v -0.685299 0.370540 0.163125 +v -0.685299 0.370540 0.160000 +v -0.666291 0.403720 0.163125 +v -0.666291 0.403720 0.160000 +v -0.645680 0.435927 0.163125 +v -0.645680 0.435927 0.160000 +v -0.623512 0.467084 0.163125 +v -0.623512 0.467084 0.160000 +v -0.599842 0.497116 0.163125 +v -0.599842 0.497116 0.160000 +v -0.574727 0.525950 0.163125 +v -0.574727 0.525950 0.160000 +v -0.550278 0.551677 0.163125 +v -0.550278 0.551677 0.160000 +v -0.528606 0.572390 0.163125 +v -0.528606 0.572390 0.160000 +v -0.512829 0.586506 0.163123 +v -0.512829 0.586506 0.160000 +v -0.506057 0.592442 0.163119 +v -0.503843 0.594145 0.163111 +v -0.503843 0.594145 0.160000 +v -0.506057 0.592442 0.160000 +v -0.501739 0.595560 0.163096 +v -0.499743 0.596688 0.163076 +v -0.499743 0.596687 0.160000 +v -0.501739 0.595559 0.160000 +v -0.497858 0.597529 0.163051 +v -0.496080 0.598082 0.163019 +v -0.496077 0.598079 0.160000 +v -0.497855 0.597526 0.160000 +v -0.494411 0.598348 0.162982 +v -0.492853 0.598326 0.162939 +v -0.492848 0.598320 0.160000 +v -0.494408 0.598343 0.160000 +v -0.491403 0.598017 0.162890 +v -0.490061 0.597421 0.162836 +v -0.490054 0.597412 0.160000 +v -0.491397 0.598010 0.160000 +v -0.491319 0.597914 0.165944 +v -0.489984 0.597325 0.165812 +v -0.488829 0.596537 0.162776 +v -0.486240 0.597132 0.162729 +v -0.486230 0.597120 0.160000 +v -0.488820 0.596526 0.160000 +v -0.488758 0.596449 0.165666 +v -0.486172 0.597050 0.165551 +v -0.488524 0.596162 0.168785 +v -0.489735 0.597019 0.169068 +v -0.485952 0.596777 0.168562 +v -0.491055 0.597591 0.169324 +v -0.476325 0.005419 0.289747 +v -0.476134 0.003905 0.288598 +v -0.770725 0.006832 0.168785 +v -0.769598 0.004945 0.168562 +v -0.499389 0.592670 0.179363 +v -0.490794 -0.597805 0.169324 +v -0.489473 -0.597232 0.169068 +v -0.488900 -0.596527 0.172670 +v -0.490197 -0.597069 0.173076 +v -0.492228 -0.598093 0.169553 +v -0.491608 -0.597329 0.173439 +v -0.492503 -0.598432 0.166062 +v -0.491058 -0.598129 0.165944 +v -0.489723 -0.597539 0.165812 +v -0.196906 -0.237540 0.308918 +v -0.196389 -0.239294 0.308388 +v -0.196025 -0.238845 0.306899 +v -0.196518 -0.237062 0.307355 +v -0.196373 -0.236250 0.309592 +v -0.195954 -0.235734 0.307936 +v -0.196766 -0.236734 0.310991 +v -0.197255 -0.237969 0.310203 +v -0.196701 -0.239681 0.309585 +v -0.775514 -0.010384 0.169756 +v -0.774544 -0.009182 0.169553 +v -0.774981 -0.009185 0.166062 +v -0.775968 -0.010386 0.166166 +v -0.776331 -0.011850 0.169931 +v -0.776800 -0.011853 0.166257 +v -0.775288 -0.011845 0.174037 +v -0.774499 -0.010378 0.173759 +v -0.773561 -0.009177 0.173439 +v -0.312427 -0.004768 0.312139 +v -0.312243 -0.005166 0.313610 +v -0.311335 -0.005162 0.313502 +v -0.311653 -0.004764 0.312055 +v -0.312566 -0.003461 0.310984 +v -0.311898 -0.003458 0.310918 +v -0.313401 -0.003464 0.311013 +v -0.313348 -0.004773 0.312176 +v -0.313273 -0.005172 0.313656 +v -0.308504 -0.004748 0.308918 +v -0.307164 -0.005140 0.309592 +v -0.306500 -0.005136 0.307936 +v -0.307888 -0.004745 0.307355 +v -0.309551 -0.003449 0.308388 +v -0.308973 -0.003446 0.306899 +v -0.310048 -0.003450 0.309585 +v -0.309057 -0.004751 0.310203 +v -0.307788 -0.005143 0.310991 +v -0.493772 -0.598096 0.169756 +v -0.495427 -0.597815 0.169931 +v -0.495722 -0.598179 0.166257 +v -0.494058 -0.598449 0.166166 +v -0.493132 -0.597308 0.173759 +v -0.494770 -0.597006 0.174037 +v -0.497193 -0.597248 0.170079 +v -0.499070 -0.596397 0.170200 +v -0.499380 -0.596780 0.166395 +v -0.497496 -0.597623 0.166333 +v -0.496520 -0.596422 0.174271 +v -0.498387 -0.595556 0.174463 +v -0.491977 -0.595887 0.178186 +v -0.493588 -0.595552 0.178568 +v -0.490484 -0.595946 0.177745 +v -0.488772 -0.593837 0.182484 +v -0.490229 -0.593733 0.183038 +v -0.491809 -0.593359 0.183518 +v -0.489109 -0.595727 0.177245 +v -0.487850 -0.595233 0.176686 +v -0.486227 -0.593234 0.181154 +v -0.487438 -0.593671 0.181856 +v -0.501059 -0.595261 0.170295 +v -0.503159 -0.593841 0.170362 +v -0.503478 -0.594234 0.166479 +v -0.501374 -0.595650 0.166444 +v -0.500365 -0.594409 0.174613 +v -0.502460 -0.592980 0.174720 +v -0.485097 -0.590788 0.186936 +v -0.486386 -0.590899 0.187670 +v -0.483937 -0.590413 0.186116 +v -0.480900 -0.586672 0.191516 +v -0.482009 -0.586984 0.192433 +v -0.483252 -0.587038 0.193254 +v -0.482905 -0.589774 0.185209 +v -0.480484 -0.590550 0.184497 +v -0.477554 -0.586928 0.189706 +v -0.479924 -0.586103 0.190502 +v -0.485140 -0.592527 0.180378 +v -0.482670 -0.593253 0.179769 +v -0.476113 -0.581410 0.196200 +v -0.477034 -0.581911 0.197301 +v -0.473796 -0.582281 0.195335 +v -0.469135 -0.576519 0.201327 +v -0.471400 -0.575605 0.202247 +v -0.472268 -0.576042 0.203419 +v -0.465712 -0.568600 0.208589 +v -0.466531 -0.568976 0.209818 +v -0.463500 -0.569551 0.207623 +v -0.456820 -0.561292 0.214173 +v -0.458981 -0.560309 0.215176 +v -0.459754 -0.560629 0.216452 +v -0.478094 -0.582162 0.198297 +v -0.479291 -0.582161 0.199189 +v -0.473280 -0.576234 0.204479 +v -0.474436 -0.576181 0.205428 +v -0.487803 -0.590747 0.188317 +v -0.489349 -0.590330 0.188878 +v -0.484628 -0.586836 0.193978 +v -0.486138 -0.586376 0.194605 +v -0.495318 -0.594941 0.178892 +v -0.497165 -0.594053 0.179157 +v -0.493511 -0.592714 0.183925 +v -0.495335 -0.591798 0.184257 +v -0.499132 -0.592888 0.179363 +v -0.501215 -0.591447 0.179510 +v -0.497284 -0.590612 0.184516 +v -0.499355 -0.589156 0.184701 +v -0.491021 -0.589649 0.189353 +v -0.492823 -0.588704 0.189742 +v -0.487781 -0.585658 0.195136 +v -0.489558 -0.584684 0.195571 +v -0.480629 -0.581910 0.199975 +v -0.482105 -0.581408 0.200657 +v -0.475736 -0.575884 0.206265 +v -0.477179 -0.575341 0.206991 +v -0.505369 -0.592135 0.170403 +v -0.512136 -0.586206 0.170423 +v -0.512462 -0.586599 0.166510 +v -0.505691 -0.592531 0.166500 +v -0.504667 -0.591269 0.174784 +v -0.511421 -0.585347 0.174816 +v -0.503416 -0.589729 0.179598 +v -0.510149 -0.583818 0.179642 +v -0.501547 -0.587429 0.184811 +v -0.508250 -0.581538 0.184867 +v -0.494752 -0.587495 0.190044 +v -0.496810 -0.586023 0.190260 +v -0.491470 -0.583452 0.195909 +v -0.493513 -0.581962 0.196150 +v -0.527901 -0.572112 0.170430 +v -0.528242 -0.572493 0.166514 +v -0.527155 -0.571280 0.174826 +v -0.548770 -0.550637 0.174826 +v -0.549557 -0.551431 0.170430 +v -0.549917 -0.551795 0.166514 +v -0.483720 -0.580655 0.201233 +v -0.485473 -0.579652 0.201705 +v -0.478765 -0.574555 0.207604 +v -0.480497 -0.573523 0.208107 +v -0.467499 -0.569113 0.210931 +v -0.468615 -0.569011 0.211926 +v -0.460680 -0.560714 0.217606 +v -0.461758 -0.560567 0.218639 +v -0.451137 -0.550649 0.221957 +v -0.449028 -0.551659 0.220925 +v -0.440054 -0.540563 0.227835 +v -0.442112 -0.539534 0.228891 +v -0.451868 -0.550916 0.223272 +v -0.442804 -0.539754 0.230236 +v -0.431837 -0.526879 0.235933 +v -0.432494 -0.527057 0.237302 +v -0.429830 -0.527923 0.234858 +v -0.419208 -0.514790 0.241506 +v -0.421166 -0.513736 0.242597 +v -0.421793 -0.513876 0.243985 +v -0.452755 -0.550955 0.224460 +v -0.453800 -0.550765 0.225524 +v -0.443657 -0.539749 0.231452 +v -0.444670 -0.539522 0.232541 +v -0.469879 -0.568670 0.212804 +v -0.471292 -0.568090 0.213565 +v -0.462990 -0.560185 0.219551 +v -0.464374 -0.559571 0.220341 +v -0.487365 -0.578397 0.202072 +v -0.489397 -0.576891 0.202334 +v -0.482372 -0.572247 0.208497 +v -0.484390 -0.570726 0.208776 +v -0.472853 -0.567272 0.214209 +v -0.474562 -0.566214 0.214736 +v -0.465911 -0.558722 0.221009 +v -0.467602 -0.557641 0.221556 +v -0.455001 -0.550346 0.226463 +v -0.456359 -0.549699 0.227276 +v -0.445844 -0.539069 0.233501 +v -0.447178 -0.538392 0.234334 +v -0.433316 -0.527013 0.238541 +v -0.434301 -0.526751 0.239650 +v -0.422587 -0.513801 0.245241 +v -0.423548 -0.513507 0.246365 +v -0.457874 -0.548824 0.227964 +v -0.459546 -0.547720 0.228528 +v -0.448673 -0.537492 0.235038 +v -0.450329 -0.536367 0.235614 +v -0.435450 -0.526268 0.240628 +v -0.436763 -0.525566 0.241475 +v -0.424675 -0.512998 0.247357 +v -0.425970 -0.512272 0.248217 +v -0.412326 -0.501164 0.251067 +v -0.413266 -0.500844 0.252204 +v -0.411556 -0.501269 0.249797 +v -0.401131 -0.488430 0.255164 +v -0.401881 -0.488299 0.256445 +v -0.402802 -0.487957 0.257591 +v -0.410955 -0.501162 0.248393 +v -0.409042 -0.502219 0.247290 +v -0.398683 -0.489412 0.252636 +v -0.400553 -0.488351 0.253748 +v -0.389309 -0.474503 0.259085 +v -0.389867 -0.474557 0.260511 +v -0.387482 -0.475563 0.257964 +v -0.375415 -0.460643 0.263258 +v -0.377199 -0.459588 0.264385 +v -0.377737 -0.459618 0.265819 +v -0.364196 -0.443573 0.269631 +v -0.364716 -0.443582 0.271073 +v -0.362456 -0.444621 0.268498 +v -0.348578 -0.427462 0.273668 +v -0.350272 -0.426424 0.274806 +v -0.350775 -0.426412 0.276254 +v -0.390598 -0.474403 0.261801 +v -0.391502 -0.474040 0.262955 +v -0.378451 -0.459443 0.267117 +v -0.379340 -0.459061 0.268278 +v -0.414375 -0.500312 0.253206 +v -0.415653 -0.499566 0.254075 +v -0.403894 -0.487404 0.258603 +v -0.405158 -0.486641 0.259479 +v -0.335398 -0.408106 0.279894 +v -0.335886 -0.408075 0.281348 +v -0.333753 -0.409132 0.278752 +v -0.317951 -0.389595 0.283734 +v -0.319548 -0.388585 0.284880 +v -0.320021 -0.388535 0.286338 +v -0.365414 -0.443386 0.272377 +v -0.366288 -0.442987 0.273544 +v -0.351458 -0.426198 0.277564 +v -0.352319 -0.425782 0.278736 +v -0.392580 -0.473469 0.263974 +v -0.393830 -0.472690 0.264856 +v -0.380404 -0.458474 0.269303 +v -0.381643 -0.457680 0.270191 +v -0.438240 -0.524642 0.242192 +v -0.439881 -0.523501 0.242779 +v -0.427430 -0.511330 0.248944 +v -0.429058 -0.510172 0.249539 +v -0.417100 -0.498607 0.254811 +v -0.418716 -0.497435 0.255412 +v -0.406593 -0.485667 0.260221 +v -0.408200 -0.484482 0.260828 +v -0.395255 -0.471703 0.265603 +v -0.396853 -0.470507 0.266214 +v -0.383057 -0.456681 0.270942 +v -0.384647 -0.455475 0.271557 +v -0.441685 -0.522137 0.243235 +v -0.443654 -0.520554 0.243561 +v -0.454121 -0.533446 0.236383 +v -0.452145 -0.535019 0.236063 +v -0.430853 -0.508797 0.250002 +v -0.432814 -0.507205 0.250333 +v -0.420502 -0.496049 0.255880 +v -0.422457 -0.494449 0.256214 +v -0.409977 -0.483087 0.261300 +v -0.411927 -0.481481 0.261637 +v -0.461375 -0.546387 0.228966 +v -0.463361 -0.544827 0.229278 +v -0.471440 -0.554776 0.222285 +v -0.469445 -0.556325 0.221981 +v -0.476421 -0.564917 0.215146 +v -0.478428 -0.563382 0.215439 +v -0.465503 -0.543036 0.229466 +v -0.471657 -0.537583 0.229560 +v -0.479863 -0.547439 0.222558 +v -0.473588 -0.552994 0.222467 +v -0.456258 -0.531650 0.236575 +v -0.462275 -0.526313 0.236671 +v -0.480583 -0.561608 0.215614 +v -0.486962 -0.555966 0.215702 +v -0.493022 -0.563245 0.209027 +v -0.486553 -0.568960 0.208944 +v -0.491566 -0.575135 0.202492 +v -0.498111 -0.569360 0.202570 +v -0.502300 -0.574392 0.196367 +v -0.495691 -0.580216 0.196295 +v -0.498996 -0.584286 0.190389 +v -0.505657 -0.578424 0.190454 +v -0.513268 -0.555797 0.202597 +v -0.517638 -0.560670 0.196391 +v -0.507959 -0.549877 0.209055 +v -0.528548 -0.530201 0.209055 +v -0.534142 -0.535854 0.202597 +v -0.538745 -0.540506 0.196391 +v -0.525828 -0.569799 0.179657 +v -0.523846 -0.567591 0.184885 +v -0.545285 -0.547114 0.184885 +v -0.547372 -0.549223 0.179657 +v -0.521140 -0.564574 0.190475 +v -0.542434 -0.544234 0.190475 +v -0.501638 -0.542830 0.215731 +v -0.494235 -0.534575 0.222589 +v -0.514089 -0.515591 0.222589 +v -0.521889 -0.523472 0.215731 +v -0.573994 -0.525739 0.170430 +v -0.574371 -0.526085 0.166514 +v -0.573170 -0.524984 0.174826 +v -0.598240 -0.496228 0.174826 +v -0.599100 -0.496942 0.170430 +v -0.599494 -0.497268 0.166514 +v -0.622762 -0.466947 0.170430 +v -0.623171 -0.467254 0.166514 +v -0.621867 -0.466276 0.174826 +v -0.643998 -0.435201 0.174826 +v -0.644924 -0.435827 0.170430 +v -0.645348 -0.436114 0.166514 +v -0.571703 -0.523641 0.179657 +v -0.569515 -0.521636 0.184885 +v -0.594425 -0.493065 0.184885 +v -0.596709 -0.494959 0.179657 +v -0.665532 -0.403657 0.170430 +v -0.665969 -0.403922 0.166514 +v -0.664576 -0.403077 0.174826 +v -0.683554 -0.369983 0.174826 +v -0.684537 -0.370515 0.170430 +v -0.684987 -0.370758 0.166514 +v -0.701892 -0.336479 0.170430 +v -0.702354 -0.336701 0.166514 +v -0.700884 -0.335996 0.174826 +v -0.716527 -0.301201 0.174826 +v -0.717558 -0.301634 0.170430 +v -0.718029 -0.301832 0.166514 +v -0.620276 -0.465083 0.179657 +v -0.617902 -0.463303 0.184885 +v -0.639892 -0.432426 0.184885 +v -0.642350 -0.434088 0.179657 +v -0.662875 -0.402046 0.179657 +v -0.660339 -0.400507 0.184885 +v -0.679196 -0.367624 0.184885 +v -0.681805 -0.369036 0.179657 +v -0.699091 -0.335136 0.179657 +v -0.696416 -0.333854 0.184885 +v -0.711959 -0.299281 0.184885 +v -0.714694 -0.300430 0.179657 +v -0.656874 -0.398406 0.190476 +v -0.652390 -0.395686 0.196391 +v -0.671020 -0.363198 0.196391 +v -0.675632 -0.365695 0.190476 +v -0.636534 -0.430158 0.190476 +v -0.632189 -0.427221 0.196391 +v -0.692762 -0.332102 0.190476 +v -0.688032 -0.329835 0.196391 +v -0.703388 -0.295678 0.196391 +v -0.708223 -0.297710 0.190476 +v -0.731493 -0.266062 0.170430 +v -0.731974 -0.266237 0.166514 +v -0.730443 -0.265680 0.174826 +v -0.742599 -0.229519 0.174826 +v -0.743668 -0.229849 0.170430 +v -0.744157 -0.230000 0.166514 +v -0.754049 -0.193082 0.170430 +v -0.754545 -0.193209 0.166514 +v -0.752966 -0.192804 0.174826 +v -0.761520 -0.155626 0.174826 +v -0.762616 -0.155850 0.170430 +v -0.763117 -0.155952 0.166514 +v -0.728574 -0.265000 0.179657 +v -0.725786 -0.263986 0.184885 +v -0.737865 -0.228055 0.184885 +v -0.740699 -0.228931 0.179657 +v -0.769344 -0.118242 0.170430 +v -0.769850 -0.118320 0.166514 +v -0.768239 -0.118072 0.174826 +v -0.772958 -0.082985 0.174826 +v -0.774070 -0.083100 0.170430 +v -0.774579 -0.083153 0.166514 +v -0.751040 -0.192311 0.179657 +v -0.748166 -0.191575 0.184885 +v -0.756665 -0.154634 0.184885 +v -0.759572 -0.155228 0.179657 +v -0.776631 -0.053265 0.170430 +v -0.777142 -0.053293 0.166514 +v -0.775514 -0.053204 0.174826 +v -0.776627 -0.032128 0.174816 +v -0.777744 -0.032148 0.170423 +v -0.778256 -0.032157 0.166510 +v -0.766273 -0.117770 0.179657 +v -0.763341 -0.117319 0.184885 +v -0.768029 -0.082473 0.184885 +v -0.770980 -0.082779 0.179657 +v -0.778130 -0.023159 0.170403 +v -0.778075 -0.020367 0.170362 +v -0.778581 -0.020370 0.166479 +v -0.778640 -0.023162 0.166500 +v -0.777015 -0.023153 0.174784 +v -0.776966 -0.020361 0.174720 +v -0.773529 -0.053096 0.179657 +v -0.770566 -0.052935 0.184885 +v -0.771673 -0.032041 0.184867 +v -0.774639 -0.032093 0.179642 +v -0.775030 -0.023143 0.179598 +v -0.774991 -0.020351 0.179510 +v -0.772068 -0.023127 0.184812 +v -0.772040 -0.020336 0.184701 +v -0.777867 -0.017840 0.170295 +v -0.777507 -0.015579 0.170200 +v -0.778000 -0.015581 0.166396 +v -0.778368 -0.017843 0.166444 +v -0.776769 -0.017835 0.174613 +v -0.776424 -0.015573 0.174464 +v -0.776995 -0.013582 0.170079 +v -0.777477 -0.013584 0.166333 +v -0.775930 -0.013576 0.174271 +v -0.774023 -0.013566 0.178892 +v -0.773416 -0.011835 0.178569 +v -0.774487 -0.015563 0.179157 +v -0.771583 -0.015548 0.184257 +v -0.771154 -0.013551 0.183925 +v -0.770591 -0.011820 0.183519 +v -0.768019 -0.023106 0.190389 +v -0.768004 -0.020314 0.190260 +v -0.767620 -0.031970 0.190454 +v -0.762375 -0.031879 0.196367 +v -0.762776 -0.023079 0.196295 +v -0.762774 -0.020287 0.196150 +v -0.766520 -0.052715 0.190476 +v -0.761283 -0.052430 0.196391 +v -0.763998 -0.082055 0.190476 +v -0.758782 -0.081513 0.196391 +v -0.767864 -0.017788 0.190044 +v -0.767598 -0.015527 0.189742 +v -0.771879 -0.017809 0.184516 +v -0.762655 -0.017761 0.195909 +v -0.762419 -0.015500 0.195571 +v -0.759336 -0.116704 0.190476 +v -0.754152 -0.115907 0.196391 +v -0.752695 -0.153822 0.190476 +v -0.747557 -0.152772 0.196391 +v -0.756232 -0.023044 0.202492 +v -0.756242 -0.020253 0.202334 +v -0.755829 -0.031764 0.202570 +v -0.747874 -0.031625 0.209027 +v -0.748278 -0.023003 0.208944 +v -0.748300 -0.020211 0.208776 +v -0.754748 -0.052075 0.202597 +v -0.746807 -0.051643 0.209055 +v -0.752271 -0.080838 0.202597 +v -0.744362 -0.080017 0.209055 +v -0.744240 -0.190570 0.190476 +v -0.739159 -0.189269 0.196391 +v -0.733993 -0.226859 0.190476 +v -0.728982 -0.225310 0.196391 +v -0.747683 -0.114913 0.202597 +v -0.739823 -0.113705 0.209055 +v -0.741144 -0.151462 0.202597 +v -0.733353 -0.149869 0.209055 +v -0.721977 -0.262601 0.190476 +v -0.717048 -0.260808 0.196391 +v -0.732819 -0.187645 0.202597 +v -0.725115 -0.185673 0.209055 +v -0.722729 -0.223377 0.202597 +v -0.715132 -0.221029 0.209055 +v -0.710898 -0.258571 0.202597 +v -0.703424 -0.255852 0.209055 +v -0.697354 -0.293141 0.202597 +v -0.690023 -0.290060 0.209055 +v -0.682130 -0.327006 0.202597 +v -0.674959 -0.323568 0.209055 +v -0.665264 -0.360083 0.202597 +v -0.658270 -0.356297 0.209055 +v -0.715944 -0.183324 0.215731 +v -0.705201 -0.180574 0.222589 +v -0.713213 -0.145754 0.222589 +v -0.724077 -0.147974 0.215731 +v -0.706087 -0.218233 0.215731 +v -0.695492 -0.214959 0.222589 +v -0.694528 -0.252616 0.215731 +v -0.684106 -0.248826 0.222589 +v -0.681296 -0.286391 0.215731 +v -0.671074 -0.282094 0.222589 +v -0.730465 -0.112267 0.215731 +v -0.719505 -0.110582 0.222589 +v -0.723915 -0.077895 0.222589 +v -0.734945 -0.079040 0.215731 +v -0.737354 -0.051129 0.215731 +v -0.726281 -0.050527 0.222589 +v -0.727311 -0.031265 0.222558 +v -0.738404 -0.031459 0.215702 +v -0.706835 -0.108635 0.229591 +v -0.692350 -0.106409 0.236703 +v -0.696588 -0.075059 0.236703 +v -0.711165 -0.076572 0.229591 +v -0.700654 -0.143187 0.229591 +v -0.686296 -0.140253 0.236703 +v -0.738807 -0.022953 0.215614 +v -0.738841 -0.020162 0.215439 +v -0.727712 -0.022895 0.222467 +v -0.727756 -0.020104 0.222285 +v -0.713482 -0.049831 0.229591 +v -0.698848 -0.049035 0.236703 +v -0.699826 -0.030784 0.236671 +v -0.714487 -0.031041 0.229560 +v -0.714884 -0.022828 0.229466 +v -0.714938 -0.020036 0.229278 +v -0.700218 -0.022751 0.236575 +v -0.700280 -0.019960 0.236383 +v -0.756144 -0.017727 0.202072 +v -0.755937 -0.015466 0.201705 +v -0.748222 -0.017685 0.208497 +v -0.748043 -0.015424 0.208107 +v -0.738781 -0.017636 0.215146 +v -0.738628 -0.015375 0.214736 +v -0.727713 -0.017578 0.221981 +v -0.727585 -0.015317 0.221556 +v -0.767206 -0.013531 0.189353 +v -0.766689 -0.011800 0.188878 +v -0.762066 -0.013504 0.195136 +v -0.761596 -0.011773 0.194605 +v -0.772668 -0.010369 0.178186 +v -0.771778 -0.009168 0.177745 +v -0.769894 -0.010354 0.183038 +v -0.769062 -0.009154 0.182484 +v -0.755622 -0.013470 0.201233 +v -0.755197 -0.011740 0.200657 +v -0.747763 -0.013429 0.207604 +v -0.747383 -0.011699 0.206991 +v -0.766046 -0.010334 0.188317 +v -0.765278 -0.009134 0.187670 +v -0.761009 -0.010308 0.193978 +v -0.760305 -0.009108 0.193254 +v -0.770747 -0.008232 0.177245 +v -0.769573 -0.007561 0.176686 +v -0.771240 -0.007570 0.172671 +v -0.772474 -0.008241 0.173076 +v -0.768098 -0.008218 0.181856 +v -0.766999 -0.007548 0.181154 +v -0.768258 -0.007155 0.176068 +v -0.767219 -0.005272 0.175583 +v -0.768765 -0.005278 0.171870 +v -0.769857 -0.007164 0.172222 +v -0.765766 -0.007142 0.180378 +v -0.764791 -0.005262 0.179769 +v -0.764384 -0.008199 0.186936 +v -0.763365 -0.007529 0.186116 +v -0.759484 -0.008173 0.192433 +v -0.758546 -0.007503 0.191516 +v -0.754664 -0.010275 0.199975 +v -0.754023 -0.009075 0.199189 +v -0.746901 -0.010234 0.206265 +v -0.746319 -0.009034 0.205428 +v -0.762220 -0.007124 0.185209 +v -0.761315 -0.005248 0.184497 +v -0.757491 -0.007099 0.190502 +v -0.756656 -0.005230 0.189706 +v -0.753272 -0.008140 0.198297 +v -0.752413 -0.007471 0.197301 +v -0.745637 -0.008100 0.204479 +v -0.744853 -0.007432 0.203419 +v -0.751446 -0.007067 0.196200 +v -0.750679 -0.005206 0.195335 +v -0.743969 -0.007028 0.202247 +v -0.743269 -0.005176 0.201327 +v -0.737609 -0.010185 0.212804 +v -0.737083 -0.008986 0.211926 +v -0.738042 -0.011650 0.213565 +v -0.727068 -0.011592 0.220341 +v -0.726681 -0.010128 0.219551 +v -0.726206 -0.008929 0.218639 +v -0.734946 -0.006981 0.208589 +v -0.734307 -0.005141 0.207623 +v -0.735751 -0.007384 0.209819 +v -0.724999 -0.007328 0.216452 +v -0.724266 -0.006925 0.215176 +v -0.723684 -0.005098 0.214173 +v -0.736464 -0.008052 0.210931 +v -0.725646 -0.007996 0.217606 +v -0.711823 -0.006860 0.221958 +v -0.711294 -0.005049 0.220925 +v -0.712489 -0.007262 0.223272 +v -0.698110 -0.007187 0.230236 +v -0.697505 -0.006785 0.228891 +v -0.697024 -0.004992 0.227835 +v -0.713075 -0.007930 0.224460 +v -0.713581 -0.008863 0.225524 +v -0.699097 -0.008787 0.232541 +v -0.698641 -0.007854 0.231452 +v -0.681204 -0.006700 0.235933 +v -0.680766 -0.004927 0.234858 +v -0.681754 -0.007101 0.237303 +v -0.664777 -0.007012 0.243985 +v -0.664275 -0.006611 0.242597 +v -0.663875 -0.004860 0.241506 +v -0.648076 -0.006526 0.248394 +v -0.647709 -0.004796 0.247291 +v -0.648537 -0.006927 0.249797 +v -0.631999 -0.006841 0.255164 +v -0.631575 -0.006440 0.253748 +v -0.631236 -0.004730 0.252636 +v -0.682235 -0.007768 0.238541 +v -0.682647 -0.008701 0.239650 +v -0.665588 -0.008612 0.246366 +v -0.665215 -0.007679 0.245241 +v -0.648937 -0.007594 0.251067 +v -0.649276 -0.008526 0.252204 +v -0.632676 -0.008439 0.257591 +v -0.632366 -0.007507 0.256445 +v -0.614466 -0.007414 0.261801 +v -0.614129 -0.006747 0.260511 +v -0.614750 -0.008346 0.262955 +v -0.595455 -0.008245 0.268278 +v -0.595196 -0.007313 0.267117 +v -0.594886 -0.006646 0.265819 +v -0.649556 -0.009724 0.253206 +v -0.649775 -0.011188 0.254075 +v -0.633125 -0.011100 0.259479 +v -0.632929 -0.009637 0.258603 +v -0.665897 -0.009810 0.247357 +v -0.666142 -0.011273 0.248217 +v -0.614979 -0.009543 0.263974 +v -0.615155 -0.011006 0.264856 +v -0.595821 -0.010905 0.270191 +v -0.595663 -0.009442 0.269303 +v -0.682991 -0.009899 0.240628 +v -0.683265 -0.011363 0.241475 +v -0.699480 -0.009986 0.233501 +v -0.699788 -0.011449 0.234334 +v -0.714007 -0.010062 0.226463 +v -0.714353 -0.011526 0.227276 +v -0.649933 -0.012917 0.254811 +v -0.650031 -0.014911 0.255412 +v -0.633347 -0.014824 0.260828 +v -0.633265 -0.012829 0.260221 +v -0.666322 -0.013002 0.248944 +v -0.666438 -0.014997 0.249539 +v -0.683471 -0.013092 0.242192 +v -0.683607 -0.015087 0.242779 +v -0.700022 -0.013179 0.235038 +v -0.700182 -0.015174 0.235614 +v -0.714619 -0.013255 0.227964 +v -0.714805 -0.015250 0.228528 +v -0.727370 -0.013322 0.221009 +v -0.738382 -0.013380 0.214209 +v -0.714912 -0.017511 0.228966 +v -0.700268 -0.017434 0.236063 +v -0.683675 -0.017347 0.243236 +v -0.683674 -0.019873 0.243562 +v -0.666477 -0.019783 0.250333 +v -0.666490 -0.017257 0.250002 +v -0.683604 -0.022664 0.243757 +v -0.683219 -0.030494 0.243855 +v -0.666023 -0.030193 0.250630 +v -0.666400 -0.022574 0.250531 +v -0.682273 -0.048134 0.243888 +v -0.665111 -0.047201 0.250663 +v -0.680078 -0.073345 0.243888 +v -0.662982 -0.071571 0.250663 +v -0.650069 -0.017171 0.255880 +v -0.650047 -0.019697 0.256215 +v -0.633342 -0.019609 0.261637 +v -0.633373 -0.017084 0.261300 +v -0.649964 -0.022488 0.256415 +v -0.649595 -0.029905 0.256515 +v -0.632893 -0.029613 0.261940 +v -0.633254 -0.022400 0.261839 +v -0.648714 -0.046309 0.256549 +v -0.632045 -0.045403 0.261974 +v -0.646649 -0.069876 0.256549 +v -0.630044 -0.068153 0.261974 +v -0.675944 -0.103887 0.243888 +v -0.658955 -0.101276 0.250663 +v -0.670032 -0.136929 0.243888 +v -0.653193 -0.133488 0.250663 +v -0.692784 -0.177394 0.229591 +v -0.678586 -0.173759 0.236703 +v -0.683245 -0.211174 0.229591 +v -0.669244 -0.206846 0.236703 +v -0.642725 -0.098782 0.256549 +v -0.626225 -0.096246 0.261974 +v -0.637105 -0.130200 0.256549 +v -0.620749 -0.126858 0.261974 +v -0.662506 -0.169641 0.243888 +v -0.645856 -0.165378 0.250663 +v -0.653385 -0.201945 0.243887 +v -0.636963 -0.196869 0.250663 +v -0.614066 -0.044425 0.267369 +v -0.594730 -0.043374 0.272718 +v -0.595505 -0.028959 0.272684 +v -0.614878 -0.029298 0.267335 +v -0.612134 -0.066294 0.267369 +v -0.592873 -0.064295 0.272718 +v -0.615229 -0.022306 0.267233 +v -0.615322 -0.019515 0.267029 +v -0.595845 -0.022204 0.272581 +v -0.595942 -0.019413 0.272376 +v -0.615361 -0.016989 0.266690 +v -0.615346 -0.014729 0.266214 +v -0.595988 -0.016888 0.272035 +v -0.595983 -0.014628 0.271557 +v -0.608428 -0.093511 0.267369 +v -0.589288 -0.090569 0.272718 +v -0.603107 -0.123252 0.267369 +v -0.584135 -0.119375 0.272718 +v -0.575054 -0.022096 0.277869 +v -0.575155 -0.019305 0.277663 +v -0.574726 -0.028595 0.277972 +v -0.552497 -0.028206 0.283183 +v -0.552813 -0.021979 0.283080 +v -0.552918 -0.019188 0.282873 +v -0.573992 -0.042246 0.278006 +v -0.551807 -0.041040 0.283218 +v -0.572216 -0.062151 0.278006 +v -0.550117 -0.059858 0.283218 +v -0.615278 -0.012735 0.265603 +v -0.595927 -0.012634 0.270942 +v -0.575208 -0.016779 0.277319 +v -0.575213 -0.014519 0.276839 +v -0.552977 -0.016663 0.282528 +v -0.552990 -0.014403 0.282046 +v -0.575170 -0.012525 0.276221 +v -0.575078 -0.010796 0.275466 +v -0.552958 -0.012409 0.281425 +v -0.552880 -0.010680 0.280667 +v -0.574938 -0.009333 0.274574 +v -0.574750 -0.008136 0.273544 +v -0.552757 -0.009217 0.279770 +v -0.552588 -0.008020 0.278736 +v -0.529248 -0.016538 0.287646 +v -0.529270 -0.014279 0.287161 +v -0.529182 -0.019064 0.287992 +v -0.503904 -0.018931 0.293004 +v -0.503975 -0.016406 0.292657 +v -0.504005 -0.014146 0.292171 +v -0.574513 -0.007204 0.272377 +v -0.574229 -0.006538 0.271073 +v -0.552373 -0.007088 0.277564 +v -0.552113 -0.006422 0.276254 +v -0.529248 -0.012285 0.286539 +v -0.529184 -0.010556 0.285777 +v -0.503994 -0.012152 0.291546 +v -0.503941 -0.010424 0.290782 +v -0.529076 -0.009093 0.284877 +v -0.528925 -0.007896 0.283839 +v -0.503848 -0.008961 0.289879 +v -0.503714 -0.007764 0.288838 +v -0.573896 -0.006138 0.269631 +v -0.573629 -0.004501 0.268498 +v -0.594235 -0.004583 0.263258 +v -0.594525 -0.006246 0.264385 +v -0.551807 -0.006022 0.274806 +v -0.551560 -0.004413 0.273668 +v -0.613737 -0.006346 0.259085 +v -0.613424 -0.004659 0.257964 +v -0.528730 -0.006965 0.282663 +v -0.528492 -0.006299 0.281348 +v -0.503539 -0.006833 0.287657 +v -0.503323 -0.006167 0.286338 +v -0.528211 -0.005898 0.279894 +v -0.527985 -0.004319 0.278752 +v -0.503065 -0.005767 0.284880 +v -0.502857 -0.004219 0.283734 +v -0.476323 -0.005627 0.289747 +v -0.476133 -0.004112 0.288598 +v -0.476558 -0.006027 0.291209 +v -0.448155 -0.005878 0.295945 +v -0.447941 -0.005478 0.294479 +v -0.447767 -0.003999 0.293327 +v -0.476754 -0.006692 0.292532 +v -0.476911 -0.007624 0.293716 +v -0.448471 -0.007475 0.298457 +v -0.448330 -0.006544 0.297271 +v -0.418224 -0.006386 0.301859 +v -0.418065 -0.005720 0.300529 +v -0.418347 -0.007317 0.303048 +v -0.386494 -0.007150 0.307471 +v -0.386385 -0.006219 0.306280 +v -0.386244 -0.005554 0.304948 +v -0.477029 -0.008821 0.294760 +v -0.477109 -0.010283 0.295665 +v -0.448641 -0.010134 0.300412 +v -0.448573 -0.008672 0.299505 +v -0.418436 -0.008514 0.304097 +v -0.418490 -0.009976 0.305006 +v -0.386611 -0.009810 0.309433 +v -0.386569 -0.008347 0.308522 +v -0.477149 -0.012012 0.296431 +v -0.477151 -0.014006 0.297058 +v -0.448662 -0.013857 0.301808 +v -0.448670 -0.011863 0.301180 +v -0.418509 -0.011705 0.305776 +v -0.418492 -0.013699 0.306405 +v -0.386596 -0.013532 0.310835 +v -0.386620 -0.011538 0.310204 +v -0.477113 -0.016265 0.297545 +v -0.477037 -0.018791 0.297894 +v -0.448536 -0.018641 0.302646 +v -0.448618 -0.016116 0.302297 +v -0.418441 -0.015958 0.306895 +v -0.418355 -0.018483 0.307245 +v -0.386448 -0.018316 0.311676 +v -0.386538 -0.015791 0.311325 +v -0.352958 -0.011361 0.314449 +v -0.352959 -0.009633 0.313677 +v -0.352927 -0.013355 0.315080 +v -0.326661 -0.013218 0.318231 +v -0.326701 -0.011224 0.317598 +v -0.326712 -0.009496 0.316825 +v -0.352864 -0.015615 0.315572 +v -0.352769 -0.018140 0.315922 +v -0.326492 -0.018002 0.319074 +v -0.326591 -0.015477 0.318723 +v -0.418234 -0.021274 0.307455 +v -0.418001 -0.025853 0.307560 +v -0.386110 -0.025295 0.311991 +v -0.386324 -0.021107 0.311886 +v -0.448418 -0.021432 0.302855 +v -0.448166 -0.026381 0.302960 +v -0.352927 -0.008171 0.312764 +v -0.352864 -0.006974 0.311711 +v -0.326693 -0.008033 0.315911 +v -0.326645 -0.006837 0.314857 +v -0.352643 -0.020931 0.316133 +v -0.352450 -0.024706 0.316238 +v -0.326186 -0.024246 0.319390 +v -0.326363 -0.020793 0.319285 +v -0.352770 -0.006043 0.310518 +v -0.352644 -0.005378 0.309185 +v -0.326567 -0.005906 0.313662 +v -0.326459 -0.005241 0.312326 +v -0.417871 -0.005321 0.299060 +v -0.386069 -0.005154 0.303476 +v -0.417713 -0.003880 0.297906 +v -0.385926 -0.003753 0.302320 +v -0.352487 -0.004978 0.307711 +v -0.352357 -0.003619 0.306553 +v -0.326322 -0.004841 0.310850 +v -0.326208 -0.003515 0.309691 +v -0.317049 -0.007983 0.317050 +v -0.317020 -0.006786 0.315994 +v -0.317051 -0.009445 0.317966 +v -0.315672 -0.009438 0.318082 +v -0.315695 -0.007976 0.317165 +v -0.315695 -0.006780 0.316107 +v -0.316770 -0.004791 0.311981 +v -0.316677 -0.003477 0.310819 +v -0.316880 -0.005191 0.313459 +v -0.315625 -0.005184 0.313569 +v -0.315556 -0.004785 0.312088 +v -0.315495 -0.003473 0.310924 +v -0.316963 -0.005856 0.314797 +v -0.315672 -0.005849 0.314909 +v -0.314403 -0.004779 0.312156 +v -0.314390 -0.003468 0.310991 +v -0.314412 -0.005178 0.313638 +v -0.314403 -0.005842 0.314980 +v -0.314378 -0.006773 0.316180 +v -0.313096 -0.006766 0.316194 +v -0.313189 -0.005836 0.314996 +v -0.314334 -0.007969 0.317239 +v -0.314274 -0.009431 0.318157 +v -0.312880 -0.009423 0.318168 +v -0.312993 -0.007962 0.317252 +v -0.312060 -0.005830 0.314941 +v -0.311878 -0.006760 0.316131 +v -0.310740 -0.006754 0.315982 +v -0.311030 -0.005825 0.314811 +v -0.311696 -0.007955 0.317182 +v -0.311516 -0.009416 0.318092 +v -0.310200 -0.009409 0.317911 +v -0.310463 -0.007949 0.317016 +v -0.310116 -0.005820 0.314603 +v -0.309698 -0.006748 0.315739 +v -0.308747 -0.006743 0.315389 +v -0.309305 -0.005816 0.314312 +v -0.310563 -0.005157 0.313334 +v -0.309908 -0.005154 0.313107 +v -0.311039 -0.004761 0.311932 +v -0.311407 -0.003456 0.310830 +v -0.310556 -0.004759 0.311775 +v -0.311059 -0.003455 0.310729 +v -0.309309 -0.007942 0.316740 +v -0.308948 -0.009403 0.317608 +v -0.307767 -0.009397 0.317165 +v -0.308234 -0.007937 0.316340 +v -0.307239 -0.007932 0.315801 +v -0.307880 -0.006739 0.314924 +v -0.306661 -0.009391 0.316561 +v -0.305627 -0.009385 0.315763 +v -0.306311 -0.007927 0.315085 +v -0.307075 -0.006734 0.314302 +v -0.306145 -0.011116 0.317205 +v -0.305691 -0.013108 0.317731 +v -0.304493 -0.013102 0.316807 +v -0.305020 -0.011110 0.316337 +v -0.307345 -0.011123 0.317862 +v -0.306968 -0.013115 0.318433 +v -0.308616 -0.011129 0.318343 +v -0.308313 -0.013122 0.318944 +v -0.309950 -0.011136 0.318669 +v -0.309715 -0.013129 0.319289 +v -0.311337 -0.011143 0.318863 +v -0.311159 -0.013137 0.319493 +v -0.312758 -0.011151 0.318944 +v -0.312627 -0.013144 0.319578 +v -0.305300 -0.015366 0.318140 +v -0.304971 -0.017890 0.318433 +v -0.303674 -0.017883 0.317433 +v -0.304044 -0.015359 0.317172 +v -0.306636 -0.015373 0.318876 +v -0.306350 -0.017897 0.319193 +v -0.314196 -0.011158 0.318934 +v -0.314101 -0.013152 0.319570 +v -0.315626 -0.011166 0.318858 +v -0.315557 -0.013160 0.319493 +v -0.308039 -0.015380 0.319412 +v -0.307794 -0.017904 0.319745 +v -0.309493 -0.015388 0.319772 +v -0.309285 -0.017912 0.320116 +v -0.310982 -0.015395 0.319983 +v -0.310806 -0.017920 0.320333 +v -0.312487 -0.015403 0.320072 +v -0.312337 -0.017928 0.320424 +v -0.317026 -0.011173 0.318740 +v -0.316974 -0.013167 0.319374 +v -0.313988 -0.015411 0.320064 +v -0.313858 -0.017936 0.320417 +v -0.315465 -0.015419 0.319986 +v -0.315349 -0.017944 0.320339 +v -0.316895 -0.015426 0.319867 +v -0.316789 -0.017952 0.320219 +v -0.310631 -0.020711 0.320543 +v -0.310442 -0.023971 0.320648 +v -0.308893 -0.023944 0.320426 +v -0.309091 -0.020703 0.320323 +v -0.312177 -0.020719 0.320636 +v -0.311995 -0.023998 0.320742 +v -0.316656 -0.020742 0.320430 +v -0.316484 -0.024077 0.320536 +v -0.315036 -0.024051 0.320656 +v -0.315210 -0.020735 0.320550 +v -0.313711 -0.020727 0.320629 +v -0.313533 -0.024025 0.320735 +v -0.316262 -0.028231 0.320571 +v -0.314816 -0.028153 0.320692 +v -0.325945 -0.028758 0.319426 +v -0.325129 -0.036508 0.319426 +v -0.315483 -0.035507 0.320571 +v -0.314043 -0.035358 0.320692 +v -0.313314 -0.028071 0.320770 +v -0.311777 -0.027987 0.320777 +v -0.312547 -0.035202 0.320770 +v -0.311016 -0.035044 0.320777 +v -0.310224 -0.027903 0.320684 +v -0.308676 -0.027819 0.320461 +v -0.309469 -0.034883 0.320684 +v -0.307927 -0.034723 0.320461 +v -0.307577 -0.020695 0.319946 +v -0.307369 -0.023917 0.320046 +v -0.305889 -0.023891 0.319479 +v -0.306108 -0.020687 0.319384 +v -0.307151 -0.027736 0.320079 +v -0.305670 -0.027655 0.319510 +v -0.306408 -0.034565 0.320079 +v -0.304932 -0.034412 0.319510 +v -0.304704 -0.020680 0.318608 +v -0.304473 -0.023866 0.318696 +v -0.303141 -0.023843 0.317668 +v -0.303383 -0.020673 0.317590 +v -0.304252 -0.027578 0.318725 +v -0.302918 -0.027506 0.317694 +v -0.303521 -0.034266 0.318725 +v -0.302192 -0.034128 0.317694 +v -0.307669 -0.047286 0.320684 +v -0.306136 -0.047051 0.320461 +v -0.309206 -0.047522 0.320777 +v -0.306502 -0.062637 0.320777 +v -0.304979 -0.062326 0.320684 +v -0.303459 -0.062015 0.320461 +v -0.302163 -0.020667 0.316299 +v -0.302476 -0.017877 0.316165 +v -0.301911 -0.023821 0.316366 +v -0.300804 -0.023802 0.314760 +v -0.301064 -0.020661 0.314704 +v -0.301394 -0.017871 0.314591 +v -0.304627 -0.046819 0.320079 +v -0.303161 -0.046593 0.319510 +v -0.301963 -0.061710 0.320079 +v -0.300510 -0.061413 0.319510 +v -0.301687 -0.027439 0.316388 +v -0.300580 -0.027379 0.314779 +v -0.300966 -0.034000 0.316388 +v -0.299862 -0.033886 0.314779 +v -0.301758 -0.046378 0.318725 +v -0.300437 -0.046175 0.317694 +v -0.299119 -0.061128 0.318725 +v -0.297810 -0.060861 0.317694 +v -0.302882 -0.015353 0.315941 +v -0.303382 -0.013096 0.315629 +v -0.301828 -0.015348 0.314404 +v -0.302366 -0.013090 0.314141 +v -0.303974 -0.011105 0.315226 +v -0.304659 -0.009380 0.314735 +v -0.303009 -0.011100 0.313804 +v -0.303756 -0.009376 0.313391 +v -0.300103 -0.020656 0.312773 +v -0.300443 -0.017866 0.312676 +v -0.299839 -0.023785 0.312821 +v -0.298945 -0.023769 0.310714 +v -0.299212 -0.020651 0.310673 +v -0.299559 -0.017861 0.310590 +v -0.299615 -0.027326 0.312837 +v -0.298721 -0.027277 0.310728 +v -0.298901 -0.033786 0.312837 +v -0.298011 -0.033694 0.310728 +v -0.300894 -0.015343 0.312516 +v -0.301457 -0.013086 0.312291 +v -0.300022 -0.015338 0.310452 +v -0.300600 -0.013081 0.310258 +v -0.297167 -0.045672 0.312837 +v -0.296283 -0.045536 0.310728 +v -0.298122 -0.045819 0.314779 +v -0.295515 -0.060392 0.314779 +v -0.294569 -0.060198 0.312837 +v -0.293692 -0.060019 0.310728 +v -0.302130 -0.011095 0.312002 +v -0.302915 -0.009371 0.311648 +v -0.301294 -0.011091 0.310009 +v -0.302104 -0.009367 0.309705 +v -0.305438 -0.007922 0.314154 +v -0.306309 -0.006730 0.313483 +v -0.304608 -0.007918 0.312904 +v -0.305564 -0.006726 0.312341 +v -0.303810 -0.007914 0.311231 +v -0.304817 -0.006723 0.310749 +v -0.303029 -0.007910 0.309346 +v -0.304070 -0.006719 0.308931 +v -0.305935 -0.005798 0.310203 +v -0.306624 -0.005801 0.311704 +v -0.305227 -0.005794 0.308461 +v -0.307274 -0.005805 0.312724 +v -0.308332 -0.005146 0.311874 +v -0.308837 -0.005148 0.312423 +v -0.307917 -0.005808 0.313415 +v -0.309483 -0.004753 0.310936 +v -0.310381 -0.003452 0.310199 +v -0.310616 -0.003453 0.310467 +v -0.309837 -0.004755 0.311328 +v -0.291260 -0.074580 0.312837 +v -0.290393 -0.074358 0.310728 +v -0.292196 -0.074819 0.314779 +v -0.288173 -0.089067 0.314779 +v -0.287250 -0.088781 0.312837 +v -0.286395 -0.088517 0.310728 +v -0.299219 -0.045987 0.316388 +v -0.296602 -0.060614 0.316388 +v -0.293270 -0.075095 0.316388 +v -0.294465 -0.075400 0.317694 +v -0.290410 -0.089758 0.317694 +v -0.289233 -0.089394 0.316388 +v -0.295759 -0.075732 0.318725 +v -0.297134 -0.076084 0.319510 +v -0.293043 -0.090572 0.319510 +v -0.291687 -0.090153 0.318725 +v -0.282547 -0.102769 0.312837 +v -0.281706 -0.102463 0.310728 +v -0.283455 -0.103099 0.314779 +v -0.278055 -0.116884 0.314779 +v -0.277164 -0.116509 0.312837 +v -0.276339 -0.116162 0.310728 +v -0.284498 -0.103478 0.316388 +v -0.285656 -0.103900 0.317694 +v -0.280214 -0.117791 0.317694 +v -0.279078 -0.117314 0.316388 +v -0.271113 -0.129969 0.312837 +v -0.270307 -0.129582 0.310728 +v -0.271985 -0.130386 0.314779 +v -0.265260 -0.143575 0.314779 +v -0.264410 -0.143115 0.312837 +v -0.263623 -0.142689 0.310728 +v -0.272985 -0.130866 0.316388 +v -0.274097 -0.131399 0.317694 +v -0.267319 -0.144690 0.317694 +v -0.266235 -0.144103 0.316388 +v -0.286912 -0.104356 0.318725 +v -0.288246 -0.104842 0.319510 +v -0.282754 -0.118859 0.319510 +v -0.281446 -0.118309 0.318725 +v -0.275301 -0.131976 0.318725 +v -0.276581 -0.132590 0.319510 +v -0.269743 -0.146002 0.319510 +v -0.268494 -0.145326 0.318725 +v -0.257069 -0.155917 0.312837 +v -0.256304 -0.155453 0.310728 +v -0.257895 -0.156418 0.314779 +v -0.249909 -0.168884 0.314779 +v -0.249109 -0.168343 0.312837 +v -0.248368 -0.167842 0.310728 +v -0.258844 -0.156993 0.316388 +v -0.259897 -0.157632 0.317694 +v -0.251850 -0.170195 0.317694 +v -0.250829 -0.169505 0.316388 +v -0.240548 -0.180363 0.312837 +v -0.239833 -0.179826 0.310728 +v -0.241322 -0.180943 0.314779 +v -0.232153 -0.192566 0.314779 +v -0.231409 -0.191949 0.312837 +v -0.230720 -0.191378 0.310728 +v -0.242209 -0.181608 0.316388 +v -0.243195 -0.182347 0.317694 +v -0.233955 -0.194061 0.317694 +v -0.233006 -0.193274 0.316388 +v -0.261040 -0.158325 0.318725 +v -0.262254 -0.159061 0.319510 +v -0.254133 -0.171738 0.319510 +v -0.252957 -0.170943 0.318725 +v -0.244264 -0.183149 0.318725 +v -0.245400 -0.184001 0.319510 +v -0.236076 -0.195820 0.319510 +v -0.234984 -0.194914 0.318725 +v -0.221711 -0.203072 0.312837 +v -0.221052 -0.202468 0.310728 +v -0.222424 -0.203725 0.314779 +v -0.214210 -0.212554 0.314779 +v -0.213531 -0.211868 0.312837 +v -0.212901 -0.211232 0.310728 +v -0.223242 -0.204474 0.316388 +v -0.224151 -0.205307 0.317694 +v -0.215858 -0.214219 0.317694 +v -0.214991 -0.213343 0.316388 +v -0.208941 -0.216470 0.312837 +v -0.208344 -0.215804 0.310728 +v -0.209587 -0.217189 0.314779 +v -0.206939 -0.219604 0.314760 +v -0.206321 -0.218862 0.312821 +v -0.205749 -0.218175 0.310714 +v -0.204047 -0.221028 0.312773 +v -0.202085 -0.223040 0.312676 +v -0.201528 -0.222354 0.310590 +v -0.203485 -0.220336 0.310673 +v -0.204653 -0.221774 0.314704 +v -0.202684 -0.223778 0.314591 +v -0.210327 -0.218015 0.316388 +v -0.211150 -0.218933 0.317694 +v -0.208434 -0.221400 0.317668 +v -0.207647 -0.220455 0.316366 +v -0.205346 -0.222627 0.316299 +v -0.203367 -0.224618 0.316165 +v -0.206115 -0.223574 0.317590 +v -0.204122 -0.225548 0.317433 +v -0.200400 -0.224972 0.312516 +v -0.198993 -0.226824 0.312291 +v -0.198453 -0.226159 0.310258 +v -0.199850 -0.224294 0.310452 +v -0.200989 -0.225697 0.314404 +v -0.199567 -0.227530 0.314141 +v -0.212042 -0.219927 0.318725 +v -0.212990 -0.220984 0.319510 +v -0.210193 -0.223513 0.319479 +v -0.209287 -0.222424 0.318696 +v -0.216798 -0.215169 0.318725 +v -0.217796 -0.216178 0.319510 +v -0.197863 -0.228596 0.312002 +v -0.197010 -0.230287 0.311648 +v -0.196499 -0.229657 0.309705 +v -0.197336 -0.227946 0.310009 +v -0.198417 -0.229278 0.313804 +v -0.197541 -0.230940 0.313391 +v -0.201654 -0.226515 0.315941 +v -0.200206 -0.228318 0.315629 +v -0.202386 -0.227418 0.317172 +v -0.200907 -0.229181 0.316807 +v -0.206947 -0.224600 0.318608 +v -0.204939 -0.226555 0.318433 +v -0.207832 -0.225690 0.319384 +v -0.205808 -0.227625 0.319193 +v -0.196435 -0.231898 0.311231 +v -0.196137 -0.233429 0.310749 +v -0.195666 -0.232849 0.308931 +v -0.195942 -0.231292 0.309346 +v -0.196938 -0.232517 0.312904 +v -0.196607 -0.234008 0.312341 +v -0.199025 -0.230027 0.315226 +v -0.198110 -0.231641 0.314735 +v -0.199685 -0.230839 0.316337 +v -0.198720 -0.232392 0.315763 +v -0.196116 -0.234880 0.310203 +v -0.195670 -0.234330 0.308461 +v -0.196550 -0.235414 0.311704 +v -0.197461 -0.233161 0.314154 +v -0.197077 -0.234587 0.313483 +v -0.198011 -0.233839 0.315085 +v -0.197560 -0.235181 0.314302 +v -0.196960 -0.235919 0.312724 +v -0.197109 -0.237156 0.311874 +v -0.197365 -0.236418 0.313415 +v -0.197427 -0.237549 0.312423 +v -0.197523 -0.238300 0.310936 +v -0.196911 -0.239939 0.310199 +v -0.197746 -0.238574 0.311328 +v -0.197058 -0.240122 0.310467 +v -0.198596 -0.234560 0.315801 +v -0.198067 -0.235806 0.314924 +v -0.199372 -0.233195 0.316561 +v -0.200069 -0.234054 0.317165 +v -0.199223 -0.235332 0.316340 +v -0.198614 -0.236480 0.315389 +v -0.200394 -0.231712 0.317205 +v -0.201662 -0.230112 0.317731 +v -0.202467 -0.231102 0.318433 +v -0.201150 -0.232644 0.317862 +v -0.199901 -0.236166 0.316740 +v -0.199213 -0.237218 0.315739 +v -0.200813 -0.234971 0.317608 +v -0.201602 -0.235942 0.317911 +v -0.200628 -0.237062 0.317016 +v -0.199870 -0.238027 0.315982 +v -0.201952 -0.233631 0.318343 +v -0.203315 -0.232147 0.318944 +v -0.204198 -0.233235 0.319289 +v -0.202792 -0.234666 0.318669 +v -0.198752 -0.238125 0.314603 +v -0.198515 -0.238889 0.313334 +v -0.198102 -0.238380 0.313107 +v -0.198240 -0.237495 0.314312 +v -0.199328 -0.238835 0.314811 +v -0.199002 -0.239488 0.313502 +v -0.199977 -0.239634 0.314941 +v -0.199574 -0.240193 0.313610 +v -0.200587 -0.238910 0.316131 +v -0.201355 -0.239856 0.316194 +v -0.200689 -0.240511 0.314996 +v -0.200224 -0.240993 0.313656 +v -0.201406 -0.238020 0.317182 +v -0.202432 -0.236964 0.318092 +v -0.203292 -0.238023 0.318168 +v -0.202223 -0.239026 0.317252 +v -0.201454 -0.241454 0.314980 +v -0.202163 -0.240851 0.316180 +v -0.202994 -0.241874 0.316107 +v -0.202253 -0.242438 0.314908 +v -0.200941 -0.241877 0.313638 +v -0.201706 -0.242819 0.313569 +v -0.203667 -0.235743 0.318863 +v -0.205109 -0.234356 0.319493 +v -0.206034 -0.235496 0.319578 +v -0.204563 -0.236847 0.318944 +v -0.203069 -0.240068 0.317239 +v -0.204170 -0.239105 0.318157 +v -0.205052 -0.240191 0.318082 +v -0.203927 -0.241125 0.317165 +v -0.205469 -0.237963 0.318934 +v -0.206963 -0.236640 0.319570 +v -0.207881 -0.237770 0.319493 +v -0.206370 -0.239073 0.318858 +v -0.206759 -0.232803 0.319983 +v -0.208617 -0.231085 0.320333 +v -0.209582 -0.232273 0.320424 +v -0.207708 -0.233972 0.320072 +v -0.205820 -0.231647 0.319772 +v -0.207659 -0.229904 0.320116 +v -0.208654 -0.235137 0.320064 +v -0.210541 -0.233454 0.320417 +v -0.211481 -0.234612 0.320339 +v -0.209585 -0.236283 0.319986 +v -0.207253 -0.240160 0.318740 +v -0.205921 -0.241261 0.317966 +v -0.208774 -0.238871 0.319374 +v -0.214880 -0.246391 0.318231 +v -0.213351 -0.247671 0.317598 +v -0.212011 -0.248761 0.316825 +v -0.204904 -0.230519 0.319412 +v -0.206718 -0.228746 0.319745 +v -0.204020 -0.229430 0.318876 +v -0.204780 -0.242175 0.317050 +v -0.203829 -0.242902 0.315994 +v -0.210859 -0.249663 0.315911 +v -0.209896 -0.250374 0.314857 +v -0.203068 -0.243441 0.314797 +v -0.202497 -0.243793 0.313459 +v -0.209121 -0.250896 0.313662 +v -0.208535 -0.251229 0.312326 +v -0.210486 -0.237394 0.319867 +v -0.212389 -0.235730 0.320219 +v -0.218505 -0.243262 0.319074 +v -0.216598 -0.244921 0.318723 +v -0.229902 -0.268055 0.314449 +v -0.228555 -0.269138 0.313677 +v -0.231437 -0.266782 0.315080 +v -0.252660 -0.292920 0.310835 +v -0.251121 -0.294188 0.310204 +v -0.249768 -0.295263 0.309433 +v -0.233159 -0.265317 0.315572 +v -0.235068 -0.263662 0.315922 +v -0.256298 -0.289808 0.311676 +v -0.254386 -0.291460 0.311325 +v -0.227396 -0.270029 0.312764 +v -0.226423 -0.270730 0.311711 +v -0.248601 -0.296146 0.308522 +v -0.247621 -0.296837 0.307471 +v -0.202117 -0.243957 0.311981 +v -0.200871 -0.244835 0.310819 +v -0.200127 -0.243915 0.310924 +v -0.201351 -0.243014 0.312088 +v -0.208138 -0.251372 0.310850 +v -0.206864 -0.252245 0.309691 +v -0.200625 -0.242119 0.312156 +v -0.199432 -0.243056 0.310991 +v -0.198810 -0.242287 0.311013 +v -0.199960 -0.241301 0.312176 +v -0.225638 -0.271239 0.310518 +v -0.225041 -0.271558 0.309185 +v -0.246827 -0.297336 0.306279 +v -0.246220 -0.297642 0.304948 +v -0.266897 -0.322053 0.301859 +v -0.266278 -0.322346 0.300529 +v -0.267700 -0.321566 0.303048 +v -0.286689 -0.344952 0.298457 +v -0.285875 -0.345426 0.297271 +v -0.285245 -0.345705 0.295945 +v -0.268689 -0.320886 0.304097 +v -0.269863 -0.320012 0.305006 +v -0.288868 -0.343419 0.300412 +v -0.287686 -0.344283 0.299505 +v -0.271222 -0.318944 0.305776 +v -0.272766 -0.317683 0.306405 +v -0.291784 -0.341104 0.301808 +v -0.290234 -0.342359 0.301180 +v -0.305623 -0.366374 0.294760 +v -0.304616 -0.367032 0.293716 +v -0.306813 -0.365520 0.295665 +v -0.323727 -0.386351 0.290782 +v -0.322529 -0.387195 0.289879 +v -0.321511 -0.387840 0.288838 +v -0.274496 -0.316228 0.306895 +v -0.276410 -0.314579 0.307245 +v -0.295435 -0.338010 0.302646 +v -0.293517 -0.339655 0.302297 +v -0.308186 -0.364469 0.296431 +v -0.309742 -0.363222 0.297058 +v -0.326669 -0.384069 0.292171 +v -0.325107 -0.385309 0.291546 +v -0.311480 -0.361777 0.297545 +v -0.313401 -0.360136 0.297894 +v -0.330336 -0.380994 0.293004 +v -0.328412 -0.382631 0.292657 +v -0.278511 -0.312737 0.307455 +v -0.281934 -0.309687 0.307560 +v -0.301237 -0.332874 0.302960 +v -0.297537 -0.336170 0.302855 +v -0.258396 -0.287964 0.311886 +v -0.261527 -0.285175 0.311991 +v -0.315505 -0.358299 0.298102 +v -0.319466 -0.354771 0.298207 +v -0.336650 -0.375412 0.293316 +v -0.332442 -0.379159 0.293212 +v -0.344342 -0.402251 0.287646 +v -0.342594 -0.403683 0.287161 +v -0.346270 -0.400618 0.287992 +v -0.361232 -0.419045 0.282873 +v -0.359300 -0.420673 0.282528 +v -0.357547 -0.422098 0.282046 +v -0.237165 -0.261816 0.316133 +v -0.239988 -0.259302 0.316238 +v -0.220600 -0.241414 0.319285 +v -0.223181 -0.239114 0.319390 +v -0.341026 -0.404915 0.286538 +v -0.339639 -0.405947 0.285777 +v -0.355972 -0.423322 0.281425 +v -0.354576 -0.424344 0.280667 +v -0.214481 -0.233879 0.320430 +v -0.216973 -0.231657 0.320536 +v -0.213570 -0.232756 0.320550 +v -0.216046 -0.230544 0.320656 +v -0.287818 -0.304417 0.307595 +v -0.307948 -0.326863 0.302995 +v -0.266536 -0.280689 0.312026 +v -0.274207 -0.273183 0.312026 +v -0.296627 -0.295839 0.307595 +v -0.317835 -0.317270 0.302995 +v -0.212625 -0.231592 0.320629 +v -0.215085 -0.229388 0.320735 +v -0.211658 -0.230401 0.320636 +v -0.214100 -0.228206 0.320742 +v -0.244074 -0.255643 0.316273 +v -0.226547 -0.236100 0.319426 +v -0.232078 -0.230611 0.319426 +v -0.250543 -0.249270 0.316273 +v -0.220072 -0.228881 0.320571 +v -0.219106 -0.227803 0.320692 +v -0.224239 -0.222688 0.320692 +v -0.225257 -0.223718 0.320571 +v -0.210683 -0.229201 0.320543 +v -0.213106 -0.227012 0.320648 +v -0.209712 -0.228005 0.320323 +v -0.212115 -0.225822 0.320426 +v -0.218102 -0.226683 0.320770 +v -0.217074 -0.225537 0.320777 +v -0.222098 -0.220525 0.320777 +v -0.223181 -0.221620 0.320770 +v -0.234005 -0.214333 0.320571 +v -0.241156 -0.220882 0.319426 +v -0.232937 -0.213354 0.320692 +v -0.243126 -0.201668 0.320692 +v -0.244241 -0.202593 0.320571 +v -0.251704 -0.208784 0.319426 +v -0.231829 -0.212339 0.320770 +v -0.230694 -0.211299 0.320777 +v -0.240784 -0.199725 0.320777 +v -0.241969 -0.200708 0.320770 +v -0.216036 -0.224380 0.320684 +v -0.215000 -0.223225 0.320461 +v -0.219914 -0.218318 0.320461 +v -0.221005 -0.219420 0.320684 +v -0.260514 -0.238613 0.316273 +v -0.285324 -0.261337 0.312026 +v -0.271909 -0.225543 0.316273 +v -0.297803 -0.247022 0.312026 +v -0.229547 -0.210249 0.320684 +v -0.228403 -0.209201 0.320461 +v -0.238393 -0.197742 0.320461 +v -0.239587 -0.198732 0.320684 +v -0.227277 -0.208170 0.320079 +v -0.226183 -0.207168 0.319510 +v -0.237218 -0.196767 0.320079 +v -0.218839 -0.217232 0.320079 +v -0.208758 -0.226830 0.319946 +v -0.211140 -0.224650 0.320046 +v -0.203178 -0.228392 0.318140 +v -0.213980 -0.222088 0.320079 +v -0.225136 -0.206209 0.318725 +v -0.246587 -0.184890 0.320079 +v -0.247809 -0.185806 0.320461 +v -0.255362 -0.172568 0.320079 +v -0.256627 -0.173423 0.320461 +v -0.249049 -0.186737 0.320684 +v -0.250294 -0.187670 0.320777 +v -0.257912 -0.174292 0.320684 +v -0.259201 -0.175163 0.320777 +v -0.263522 -0.159830 0.320079 +v -0.264827 -0.160622 0.320461 +v -0.271047 -0.146708 0.320079 +v -0.272390 -0.147434 0.320461 +v -0.251525 -0.188593 0.320770 +v -0.252728 -0.189495 0.320692 +v -0.260476 -0.176024 0.320770 +v -0.261722 -0.176866 0.320692 +v -0.266154 -0.161427 0.320684 +v -0.267483 -0.162233 0.320777 +v -0.273754 -0.148173 0.320684 +v -0.275122 -0.148913 0.320777 +v -0.277919 -0.133231 0.320079 +v -0.279296 -0.133891 0.320461 +v -0.284122 -0.119434 0.320079 +v -0.285529 -0.120026 0.320461 +v -0.253887 -0.190364 0.320571 +v -0.261645 -0.196181 0.319426 +v -0.262922 -0.177677 0.320571 +v -0.270957 -0.183107 0.319426 +v -0.268799 -0.163031 0.320770 +v -0.270085 -0.163811 0.320692 +v -0.276475 -0.149646 0.320770 +v -0.277798 -0.150361 0.320692 +v -0.280695 -0.134562 0.320684 +v -0.282097 -0.135234 0.320777 +v -0.286959 -0.120627 0.320684 +v -0.288393 -0.121229 0.320777 +v -0.289640 -0.105349 0.320079 +v -0.291075 -0.105871 0.320461 +v -0.294460 -0.091010 0.320079 +v -0.295919 -0.091461 0.320461 +v -0.298571 -0.076452 0.320079 +v -0.300050 -0.076831 0.320461 +v -0.292532 -0.106401 0.320684 +v -0.293994 -0.106932 0.320777 +v -0.297401 -0.091919 0.320684 +v -0.298887 -0.092378 0.320777 +v -0.283485 -0.135899 0.320770 +v -0.284841 -0.136549 0.320692 +v -0.289812 -0.121826 0.320770 +v -0.291198 -0.122408 0.320692 +v -0.301553 -0.077215 0.320684 +v -0.303059 -0.077601 0.320777 +v -0.295440 -0.107459 0.320770 +v -0.296853 -0.107973 0.320692 +v -0.300357 -0.092833 0.320770 +v -0.301794 -0.093277 0.320692 +v -0.304550 -0.077983 0.320770 +v -0.306007 -0.078356 0.320692 +v -0.308010 -0.062945 0.320770 +v -0.309484 -0.063247 0.320692 +v -0.310728 -0.047756 0.320770 +v -0.312214 -0.047985 0.320692 +v -0.298214 -0.108468 0.320571 +v -0.307327 -0.111782 0.319426 +v -0.301473 -0.126727 0.319426 +v -0.292533 -0.122970 0.320571 +v -0.303178 -0.093704 0.320571 +v -0.312442 -0.096568 0.319426 +v -0.313645 -0.048205 0.320571 +v -0.323230 -0.049678 0.319426 +v -0.320403 -0.065478 0.319426 +v -0.310902 -0.063536 0.320571 +v -0.307410 -0.078715 0.320571 +v -0.316804 -0.081121 0.319426 +v -0.349176 -0.053665 0.316273 +v -0.382429 -0.058776 0.312026 +v -0.379084 -0.077470 0.312026 +v -0.346123 -0.070734 0.316273 +v -0.351239 -0.039218 0.316273 +v -0.384703 -0.042691 0.312026 +v -0.342235 -0.087632 0.316273 +v -0.374826 -0.095978 0.312026 +v -0.369665 -0.114254 0.312026 +v -0.337523 -0.104319 0.316273 +v -0.331997 -0.120755 0.316273 +v -0.363614 -0.132255 0.312026 +v -0.356687 -0.149937 0.312026 +v -0.325672 -0.136900 0.316273 +v -0.286147 -0.137175 0.320571 +v -0.294891 -0.141367 0.319426 +v -0.287600 -0.155667 0.319426 +v -0.279071 -0.151051 0.320571 +v -0.318562 -0.152715 0.316273 +v -0.348900 -0.167258 0.312026 +v -0.340273 -0.184177 0.312026 +v -0.310686 -0.168162 0.316273 +v -0.271323 -0.164562 0.320571 +v -0.279615 -0.169591 0.319426 +v -0.302060 -0.183204 0.316273 +v -0.330825 -0.200651 0.312026 +v -0.320582 -0.216642 0.312026 +v -0.292707 -0.197805 0.316273 +v -0.282648 -0.211929 0.316273 +v -0.309565 -0.232112 0.312026 +v -0.358078 -0.217181 0.307595 +v -0.383858 -0.232816 0.302995 +v -0.371972 -0.251371 0.302995 +v -0.346991 -0.234489 0.307595 +v -0.368304 -0.199349 0.307595 +v -0.394819 -0.213701 0.302995 +v -0.308828 -0.282865 0.307595 +v -0.331062 -0.303230 0.302995 +v -0.322336 -0.267371 0.307595 +v -0.345542 -0.286620 0.302995 +v -0.335067 -0.251233 0.307595 +v -0.359189 -0.269320 0.302995 +v -0.326958 -0.348060 0.298242 +v -0.344879 -0.368041 0.293351 +v -0.337862 -0.337508 0.298242 +v -0.356742 -0.356586 0.293351 +v -0.352058 -0.322461 0.298242 +v -0.371851 -0.340589 0.293351 +v -0.367457 -0.304798 0.298242 +v -0.388115 -0.321934 0.293351 +v -0.381969 -0.286400 0.298242 +v -0.403444 -0.302502 0.293351 +v -0.395563 -0.267313 0.298242 +v -0.417801 -0.282341 0.293351 +v -0.377641 -0.181037 0.307595 +v -0.404829 -0.194070 0.302995 +v -0.386070 -0.162289 0.307595 +v -0.413864 -0.173973 0.302995 +v -0.408202 -0.247582 0.298242 +v -0.431151 -0.261501 0.293351 +v -0.419859 -0.227254 0.298242 +v -0.443464 -0.240030 0.293351 +v -0.393568 -0.143150 0.307595 +v -0.421902 -0.153456 0.302995 +v -0.400118 -0.123666 0.307595 +v -0.428924 -0.132569 0.302995 +v -0.430504 -0.206379 0.298242 +v -0.454706 -0.217981 0.293351 +v -0.440112 -0.185006 0.298242 +v -0.464855 -0.195407 0.293351 +v -0.405704 -0.103884 0.307595 +v -0.434912 -0.111363 0.302995 +v -0.410313 -0.083852 0.307595 +v -0.439853 -0.089889 0.302995 +v -0.448660 -0.163188 0.298242 +v -0.473882 -0.172362 0.293351 +v -0.456127 -0.140977 0.298242 +v -0.481769 -0.148903 0.293351 +v -0.452744 -0.274597 0.288338 +v -0.473018 -0.286894 0.283218 +v -0.458371 -0.309759 0.283218 +v -0.438725 -0.296481 0.288338 +v -0.465672 -0.252051 0.288338 +v -0.486526 -0.263339 0.283218 +v -0.477478 -0.228898 0.288338 +v -0.498861 -0.239149 0.283218 +v -0.488135 -0.205194 0.288338 +v -0.509995 -0.214383 0.283218 +v -0.423649 -0.317651 0.288338 +v -0.442621 -0.331877 0.283218 +v -0.425804 -0.353195 0.283218 +v -0.407552 -0.338056 0.288338 +v -0.462494 -0.118426 0.298242 +v -0.488495 -0.125084 0.293351 +v -0.467747 -0.095590 0.298242 +v -0.494044 -0.100964 0.293351 +v -0.390473 -0.357647 0.288338 +v -0.407960 -0.373663 0.283218 +v -0.391185 -0.391392 0.283218 +v -0.374505 -0.374537 0.288338 +v -0.413933 -0.063618 0.307595 +v -0.443733 -0.068198 0.302995 +v -0.416406 -0.045981 0.307595 +v -0.446396 -0.049093 0.302995 +v -0.352157 -0.030183 0.316273 +v -0.385750 -0.032010 0.312026 +v -0.417577 -0.033741 0.307595 +v -0.447682 -0.035378 0.302995 +v -0.471874 -0.072523 0.298242 +v -0.498403 -0.076601 0.293351 +v -0.474715 -0.052033 0.298242 +v -0.501412 -0.054803 0.293351 +v -0.476922 -0.021582 0.298103 +v -0.476652 -0.026879 0.298207 +v -0.503792 -0.021722 0.293212 +v -0.503506 -0.027349 0.293316 +v -0.476113 -0.036924 0.298242 +v -0.502913 -0.038381 0.293351 +v -0.529074 -0.021855 0.288200 +v -0.528773 -0.027791 0.288303 +v -0.528129 -0.039752 0.288338 +v -0.526531 -0.057410 0.288338 +v -0.523364 -0.080437 0.288338 +v -0.546801 -0.084039 0.283218 +v -0.542019 -0.110768 0.283218 +v -0.518787 -0.106020 0.288338 +v -0.568761 -0.087414 0.278006 +v -0.563787 -0.115217 0.278006 +v -0.512959 -0.131348 0.288338 +v -0.535931 -0.137230 0.283218 +v -0.528552 -0.163362 0.283218 +v -0.505897 -0.156360 0.288338 +v -0.557454 -0.142742 0.278006 +v -0.577573 -0.147893 0.272718 +v -0.569621 -0.176056 0.272718 +v -0.549779 -0.169923 0.278006 +v -0.596333 -0.152697 0.267369 +v -0.613776 -0.157163 0.261974 +v -0.605326 -0.187091 0.261974 +v -0.588122 -0.181774 0.267369 +v -0.497615 -0.180995 0.288338 +v -0.519899 -0.189100 0.283218 +v -0.540779 -0.196694 0.278006 +v -0.560296 -0.203793 0.272718 +v -0.549622 -0.231040 0.272718 +v -0.530477 -0.222992 0.278006 +v -0.518896 -0.248753 0.278006 +v -0.537623 -0.257731 0.272718 +v -0.524330 -0.283800 0.272718 +v -0.506065 -0.273915 0.278006 +v -0.578494 -0.210412 0.267369 +v -0.595416 -0.216567 0.261974 +v -0.584073 -0.245522 0.261974 +v -0.567473 -0.238544 0.267369 +v -0.555085 -0.266102 0.267369 +v -0.571321 -0.273885 0.261974 +v -0.557195 -0.301589 0.261974 +v -0.541359 -0.293018 0.267369 +v -0.492015 -0.298416 0.278006 +v -0.509772 -0.309186 0.272718 +v -0.493988 -0.333827 0.272718 +v -0.476781 -0.322199 0.278006 +v -0.526329 -0.319228 0.267369 +v -0.541725 -0.328566 0.261974 +v -0.524951 -0.354752 0.261974 +v -0.510032 -0.344670 0.267369 +v -0.460396 -0.345205 0.278006 +v -0.477013 -0.357664 0.272718 +v -0.458889 -0.380639 0.272718 +v -0.442904 -0.367380 0.278006 +v -0.492505 -0.369280 0.267369 +v -0.506911 -0.380082 0.261974 +v -0.487652 -0.404498 0.261974 +v -0.473793 -0.393002 0.267369 +v -0.424344 -0.388669 0.278006 +v -0.439659 -0.402697 0.272718 +v -0.421421 -0.421946 0.272718 +v -0.406812 -0.407184 0.278006 +v -0.453939 -0.415776 0.267369 +v -0.467217 -0.427938 0.261974 +v -0.447707 -0.448509 0.261974 +v -0.435041 -0.435710 0.267369 +v -0.520268 -0.390097 0.256549 +v -0.533406 -0.399948 0.250663 +v -0.513139 -0.425639 0.250663 +v -0.500500 -0.415156 0.256549 +v -0.538782 -0.364099 0.256549 +v -0.552388 -0.373293 0.250663 +v -0.479527 -0.439214 0.256549 +v -0.491636 -0.450305 0.250663 +v -0.471000 -0.472047 0.250663 +v -0.459449 -0.460375 0.256549 +v -0.419202 -0.450912 0.267369 +v -0.406273 -0.436496 0.272718 +v -0.431224 -0.464317 0.261974 +v -0.419445 -0.474866 0.261940 +v -0.407917 -0.461019 0.267335 +v -0.395520 -0.446127 0.272684 +v -0.555999 -0.337223 0.256549 +v -0.570039 -0.345739 0.250663 +v -0.571876 -0.309536 0.256549 +v -0.586317 -0.317352 0.250663 +v -0.392406 -0.421035 0.278006 +v -0.377572 -0.404495 0.283218 +v -0.382224 -0.430156 0.277972 +v -0.367999 -0.413070 0.283183 +v -0.586375 -0.281102 0.256549 +v -0.601182 -0.288200 0.250663 +v -0.599462 -0.251991 0.256549 +v -0.614600 -0.258355 0.250663 +v -0.361740 -0.386841 0.288338 +v -0.352818 -0.394833 0.288303 +v -0.348378 -0.398786 0.288200 +v -0.363342 -0.417215 0.283080 +v -0.377362 -0.434482 0.277869 +v -0.375249 -0.436309 0.277663 +v -0.390467 -0.450622 0.272581 +v -0.388352 -0.452446 0.272376 +v -0.402686 -0.465671 0.267233 +v -0.400568 -0.467491 0.267029 +v -0.414048 -0.479664 0.261839 +v -0.373314 -0.437932 0.277319 +v -0.371555 -0.439351 0.276839 +v -0.386412 -0.454063 0.272035 +v -0.398624 -0.469104 0.266690 +v -0.369973 -0.440566 0.276221 +v -0.368568 -0.441577 0.275466 +v -0.367340 -0.442384 0.274574 +v -0.353358 -0.425164 0.279770 +v -0.338430 -0.406779 0.284877 +v -0.337402 -0.407411 0.283839 +v -0.336554 -0.407843 0.282663 +v -0.320675 -0.388286 0.287657 +v -0.303792 -0.367493 0.292532 +v -0.303150 -0.367757 0.291209 +v -0.265845 -0.322445 0.299060 +v -0.264408 -0.323393 0.297906 +v -0.244418 -0.298677 0.302320 +v -0.245799 -0.297756 0.303476 +v -0.284800 -0.345789 0.294479 +v -0.283307 -0.346760 0.293327 +v -0.224631 -0.271685 0.307711 +v -0.223308 -0.272577 0.306553 +v -0.424581 -0.492637 0.256415 +v -0.430132 -0.487704 0.256515 +v -0.440645 -0.500332 0.250630 +v -0.434941 -0.505396 0.250531 +v -0.442370 -0.476744 0.256549 +v -0.453333 -0.488969 0.250663 +v -0.445786 -0.518753 0.243757 +v -0.451649 -0.513548 0.243855 +v -0.464809 -0.501764 0.243887 +v -0.475892 -0.514122 0.236703 +v -0.483088 -0.484264 0.243887 +v -0.494765 -0.496063 0.236703 +v -0.485676 -0.525032 0.229591 +v -0.505072 -0.506480 0.229591 +v -0.504310 -0.461914 0.243887 +v -0.516551 -0.473125 0.236703 +v -0.526368 -0.436612 0.243887 +v -0.539144 -0.447210 0.236703 +v -0.527358 -0.483024 0.229591 +v -0.536810 -0.491682 0.222589 +v -0.550424 -0.456566 0.229591 +v -0.560290 -0.464750 0.222589 +v -0.547157 -0.410258 0.243887 +v -0.560438 -0.420216 0.236703 +v -0.566629 -0.382917 0.243887 +v -0.580382 -0.392211 0.236703 +v -0.544988 -0.499171 0.215731 +v -0.551969 -0.505566 0.209055 +v -0.568825 -0.471829 0.215731 +v -0.576111 -0.477873 0.209055 +v -0.572163 -0.429008 0.229591 +v -0.582419 -0.436697 0.222589 +v -0.592524 -0.400417 0.229591 +v -0.603145 -0.407594 0.222589 +v -0.584735 -0.354652 0.243887 +v -0.598927 -0.363260 0.236703 +v -0.601433 -0.325533 0.243887 +v -0.616031 -0.333435 0.236703 +v -0.557833 -0.510936 0.202597 +v -0.562659 -0.515357 0.196391 +v -0.582232 -0.482951 0.202597 +v -0.587270 -0.487129 0.196391 +v -0.591291 -0.443350 0.215731 +v -0.598865 -0.449029 0.209055 +v -0.612333 -0.413803 0.215731 +v -0.620177 -0.419104 0.209055 +v -0.611458 -0.370860 0.229591 +v -0.622418 -0.377508 0.222589 +v -0.628919 -0.340411 0.229591 +v -0.640192 -0.346512 0.222589 +v -0.566527 -0.518901 0.190475 +v -0.591306 -0.490478 0.190476 +v -0.605228 -0.453800 0.202597 +v -0.610464 -0.457726 0.196391 +v -0.626766 -0.423556 0.202597 +v -0.614660 -0.460872 0.190476 +v -0.646793 -0.392292 0.202597 +v -0.639994 -0.388168 0.209055 +v -0.631899 -0.383258 0.215731 +v -0.649944 -0.351791 0.215731 +v -0.666422 -0.319476 0.215731 +v -0.656423 -0.314682 0.222589 +v -0.672060 -0.244444 0.229591 +v -0.658288 -0.239435 0.236703 +v -0.659257 -0.277127 0.229591 +v -0.645747 -0.271448 0.236703 +v -0.644864 -0.309141 0.229591 +v -0.631649 -0.302806 0.236703 +v -0.642688 -0.233761 0.243887 +v -0.626536 -0.227886 0.250663 +v -0.630444 -0.265015 0.243887 +v -0.629948 -0.161304 0.256549 +v -0.621275 -0.192020 0.256549 +v -0.616681 -0.295630 0.243887 +v -0.611104 -0.222273 0.256549 +v -0.197785 -0.236935 0.313930 +v -0.197749 -0.237945 0.312819 +v -0.197959 -0.238837 0.311591 +v -0.197186 -0.240280 0.310626 +v -0.198200 -0.239133 0.311775 +v -0.197337 -0.240467 0.310729 +v -0.198504 -0.239508 0.311932 +v -0.197556 -0.240737 0.310830 +v -0.198891 -0.239985 0.312055 +v -0.197865 -0.241118 0.310918 +v -0.199379 -0.240586 0.312139 +v -0.198285 -0.241638 0.310984 +v -0.310175 -0.004757 0.311591 +v -0.309347 -0.005151 0.312819 +v -0.310819 -0.003454 0.310626 +v -0.308582 -0.005812 0.313930 +v -0.486711 -0.594461 0.176068 +v -0.484197 -0.595141 0.175583 +v -0.487718 -0.595703 0.172222 +v -0.485168 -0.596343 0.171870 +v -0.488568 -0.596750 0.162776 +v -0.485979 -0.597345 0.162729 +v -0.485912 -0.597262 0.165551 +v -0.488497 -0.596662 0.165666 +v -0.489800 -0.597635 0.162836 +v -0.489794 -0.597626 0.160000 +v -0.488559 -0.596739 0.160000 +v -0.485969 -0.597332 0.160000 +v -0.491141 -0.598232 0.162890 +v -0.492592 -0.598541 0.162939 +v -0.492587 -0.598535 0.160000 +v -0.491136 -0.598224 0.160000 +v -0.494150 -0.598563 0.162982 +v -0.495819 -0.598298 0.163019 +v -0.495815 -0.598295 0.160000 +v -0.494146 -0.598559 0.160000 +v -0.497597 -0.597746 0.163050 +v -0.499482 -0.596906 0.163076 +v -0.499481 -0.596905 0.160000 +v -0.497594 -0.597744 0.160000 +v -0.501478 -0.595779 0.163096 +v -0.503583 -0.594365 0.163111 +v -0.503583 -0.594364 0.160000 +v -0.501478 -0.595778 0.160000 +v -0.505798 -0.592663 0.163119 +v -0.512573 -0.586730 0.163123 +v -0.512572 -0.586730 0.160000 +v -0.505798 -0.592663 0.160000 +v -0.528356 -0.572620 0.163125 +v -0.528356 -0.572620 0.160000 +v -0.550037 -0.551916 0.163125 +v -0.550037 -0.551916 0.160000 +v -0.574497 -0.526200 0.163125 +v -0.574497 -0.526200 0.160000 +v -0.599625 -0.497378 0.163125 +v -0.599625 -0.497378 0.160000 +v -0.623308 -0.467356 0.163125 +v -0.623308 -0.467356 0.160000 +v -0.645489 -0.436209 0.163125 +v -0.645489 -0.436209 0.160000 +v -0.666115 -0.404011 0.163125 +v -0.666115 -0.404011 0.160000 +v -0.685137 -0.370840 0.163125 +v -0.685137 -0.370840 0.160000 +v -0.702508 -0.336774 0.163125 +v -0.702508 -0.336774 0.160000 +v -0.718187 -0.301898 0.163125 +v -0.718187 -0.301899 0.160000 +v -0.732134 -0.266295 0.163125 +v -0.732134 -0.266295 0.160000 +v -0.744320 -0.230050 0.163125 +v -0.744320 -0.230050 0.160000 +v -0.754711 -0.193251 0.163125 +v -0.754711 -0.193251 0.160000 +v -0.763284 -0.155986 0.163125 +v -0.763284 -0.155986 0.160000 +v -0.770018 -0.118346 0.163125 +v -0.770018 -0.118346 0.160000 +v -0.774749 -0.083170 0.163125 +v -0.774749 -0.083170 0.160000 +v -0.777312 -0.053302 0.163125 +v -0.777312 -0.053302 0.160000 +v -0.778426 -0.032160 0.163123 +v -0.778426 -0.032160 0.160000 +v -0.778810 -0.023163 0.163119 +v -0.778750 -0.020371 0.163111 +v -0.778749 -0.020371 0.160000 +v -0.778810 -0.023163 0.160000 +v -0.778534 -0.017844 0.163096 +v -0.778163 -0.015582 0.163076 +v -0.778161 -0.015582 0.160000 +v -0.778533 -0.017844 0.160000 +v -0.777636 -0.013585 0.163051 +v -0.776953 -0.011854 0.163019 +v -0.776949 -0.011854 0.160000 +v -0.777633 -0.013585 0.160000 +v -0.776115 -0.010387 0.162982 +v -0.775122 -0.009185 0.162939 +v -0.775114 -0.009185 0.160000 +v -0.776110 -0.010387 0.160000 +v -0.773972 -0.008249 0.162890 +v -0.772667 -0.007577 0.162836 +v -0.772655 -0.007577 0.160000 +v -0.773963 -0.008249 0.160000 +v -0.773840 -0.008248 0.165944 +v -0.772543 -0.007577 0.165812 +v -0.771206 -0.007171 0.162776 +v -0.770053 -0.005283 0.162729 +v -0.770037 -0.005283 0.160000 +v -0.771192 -0.007171 0.160000 +v -0.771093 -0.007170 0.165666 +v -0.769947 -0.005283 0.165551 +v -0.770722 -0.007168 0.168785 +v -0.772149 -0.007575 0.169068 +v -0.769596 -0.005281 0.168562 +v -0.773423 -0.008246 0.169324 +v -0.302691 -0.367824 0.289747 +v -0.301146 -0.368816 0.288598 +v -0.488264 -0.596375 0.168785 +v -0.485691 -0.596989 0.168562 +v -0.774810 -0.017824 0.179363 +v 0.162320 -0.756243 0.169324 +v 0.162694 -0.754852 0.169068 +v 0.162499 -0.753964 0.172670 +v 0.162116 -0.755316 0.173076 +v 0.161654 -0.757543 0.169553 +v 0.161442 -0.756582 0.173439 +v 0.161748 -0.757969 0.166062 +v 0.162410 -0.756650 0.165944 +v 0.162779 -0.755237 0.165812 +v 0.063324 -0.301973 0.308918 +v 0.065019 -0.302660 0.308388 +v 0.064893 -0.302095 0.306899 +v 0.063191 -0.301371 0.307355 +v 0.062646 -0.300752 0.309592 +v 0.062503 -0.300103 0.307936 +v 0.062780 -0.301361 0.310991 +v 0.063442 -0.302513 0.310203 +v 0.065126 -0.303145 0.309585 +v -0.474642 -0.613387 0.169756 +v -0.474980 -0.611880 0.169553 +v -0.475250 -0.612224 0.166062 +v -0.474924 -0.613744 0.166166 +v -0.474003 -0.614939 0.169931 +v -0.474294 -0.615308 0.166257 +v -0.473359 -0.614120 0.174037 +v -0.474015 -0.612589 0.173759 +v -0.474371 -0.611107 0.173439 +v -0.190759 -0.247476 0.312139 +v -0.190333 -0.247580 0.313610 +v -0.189771 -0.246866 0.313502 +v -0.190280 -0.246868 0.312055 +v -0.192027 -0.246641 0.310984 +v -0.191612 -0.246117 0.310918 +v -0.192544 -0.247296 0.311013 +v -0.191328 -0.248200 0.312176 +v -0.190970 -0.248390 0.313656 +v -0.188333 -0.244394 0.308918 +v -0.187192 -0.243589 0.309592 +v -0.186781 -0.243066 0.307936 +v -0.187952 -0.243909 0.307355 +v -0.190158 -0.244275 0.308388 +v -0.189799 -0.243821 0.306899 +v -0.190466 -0.244665 0.309585 +v -0.188675 -0.244828 0.310203 +v -0.187578 -0.244079 0.310991 +v 0.160695 -0.758753 0.169756 +v 0.159445 -0.759873 0.169931 +v 0.159546 -0.760331 0.166257 +v 0.160793 -0.759197 0.166166 +v 0.160477 -0.757762 0.173759 +v 0.159221 -0.758855 0.174037 +v 0.157902 -0.760903 0.170079 +v 0.156067 -0.761842 0.170200 +v 0.156173 -0.762323 0.166395 +v 0.158006 -0.761374 0.166333 +v 0.157673 -0.759863 0.174271 +v 0.155834 -0.760784 0.174463 +v 0.160083 -0.755974 0.178186 +v 0.158818 -0.757027 0.178568 +v 0.161059 -0.754842 0.177745 +v 0.160474 -0.752189 0.182484 +v 0.159486 -0.753265 0.183038 +v 0.158210 -0.754268 0.183518 +v 0.161744 -0.753629 0.177245 +v 0.162140 -0.752337 0.176686 +v 0.161586 -0.749822 0.181154 +v 0.161174 -0.751042 0.181856 +v 0.153940 -0.762691 0.170295 +v 0.151521 -0.763450 0.170362 +v 0.151630 -0.763945 0.166479 +v 0.154048 -0.763180 0.166444 +v 0.153704 -0.761619 0.174613 +v 0.151283 -0.762367 0.174720 +v 0.160375 -0.747416 0.186936 +v 0.159660 -0.748494 0.187670 +v 0.160804 -0.746274 0.186116 +v 0.159767 -0.741567 0.191516 +v 0.159321 -0.742630 0.192433 +v 0.158590 -0.743637 0.193254 +v 0.160947 -0.745068 0.185209 +v 0.163062 -0.743657 0.184497 +v 0.162051 -0.739109 0.189706 +v 0.159930 -0.740449 0.190502 +v 0.161710 -0.748530 0.180378 +v 0.163816 -0.747050 0.179769 +v 0.158629 -0.734546 0.196200 +v 0.158448 -0.735579 0.197301 +v 0.160754 -0.733275 0.195335 +v 0.159145 -0.726040 0.201327 +v 0.157020 -0.727244 0.202247 +v 0.156821 -0.728195 0.203419 +v 0.155079 -0.718432 0.208589 +v 0.154863 -0.719307 0.209818 +v 0.157200 -0.717292 0.207623 +v 0.154895 -0.706923 0.214173 +v 0.152781 -0.708003 0.215176 +v 0.152550 -0.708806 0.216452 +v 0.157985 -0.736564 0.198297 +v 0.157238 -0.737502 0.199189 +v 0.156342 -0.729107 0.204479 +v 0.155581 -0.729979 0.205428 +v 0.158658 -0.749507 0.188317 +v 0.157370 -0.750457 0.188878 +v 0.157575 -0.744588 0.193978 +v 0.156274 -0.745483 0.194605 +v 0.157262 -0.758000 0.178892 +v 0.155417 -0.758893 0.179157 +v 0.156645 -0.755198 0.183925 +v 0.154793 -0.756057 0.184257 +v 0.153283 -0.759706 0.179363 +v 0.150858 -0.760439 0.179510 +v 0.152652 -0.756843 0.184516 +v 0.150223 -0.757557 0.184701 +v 0.155796 -0.751343 0.189353 +v 0.153935 -0.752164 0.189742 +v 0.154690 -0.746323 0.195136 +v 0.152821 -0.747107 0.195571 +v 0.156209 -0.738392 0.199975 +v 0.154898 -0.739234 0.200657 +v 0.154539 -0.730810 0.206265 +v 0.153216 -0.731603 0.206991 +v 0.148810 -0.764119 0.170403 +v 0.139957 -0.765723 0.170423 +v 0.140061 -0.766224 0.166510 +v 0.148920 -0.764617 0.166500 +v 0.148570 -0.763030 0.174784 +v 0.139730 -0.764629 0.174816 +v 0.148143 -0.761092 0.179598 +v 0.139326 -0.762682 0.179642 +v 0.147506 -0.758199 0.184811 +v 0.138724 -0.759777 0.184867 +v 0.151788 -0.752922 0.190044 +v 0.149355 -0.753615 0.190260 +v 0.150667 -0.747835 0.195909 +v 0.148229 -0.748508 0.196150 +v 0.119114 -0.769288 0.170430 +v 0.119199 -0.769793 0.166514 +v 0.118927 -0.768186 0.174826 +v 0.089315 -0.772252 0.174826 +v 0.089447 -0.773362 0.170430 +v 0.089508 -0.773870 0.166514 +v 0.153303 -0.740029 0.201233 +v 0.151426 -0.740777 0.201705 +v 0.151612 -0.732355 0.207604 +v 0.149728 -0.733067 0.208107 +v 0.154368 -0.720149 0.210931 +v 0.153594 -0.720959 0.211926 +v 0.152040 -0.709584 0.217606 +v 0.151253 -0.710336 0.218639 +v 0.150103 -0.695850 0.221957 +v 0.152206 -0.694828 0.220925 +v 0.149109 -0.680898 0.227835 +v 0.147023 -0.681868 0.228891 +v 0.149858 -0.696589 0.223272 +v 0.146764 -0.682546 0.230236 +v 0.143515 -0.665948 0.235933 +v 0.143245 -0.666573 0.237302 +v 0.145581 -0.665027 0.234858 +v 0.141915 -0.648539 0.241506 +v 0.139873 -0.649416 0.242597 +v 0.139592 -0.649994 0.243985 +v 0.149335 -0.697307 0.224460 +v 0.148537 -0.698006 0.225524 +v 0.146230 -0.683211 0.231452 +v 0.145420 -0.683862 0.232541 +v 0.152540 -0.721736 0.212804 +v 0.151206 -0.722481 0.213565 +v 0.150188 -0.711063 0.219551 +v 0.148845 -0.711764 0.220341 +v 0.149266 -0.741477 0.202072 +v 0.146824 -0.742129 0.202334 +v 0.147562 -0.733740 0.208497 +v 0.145115 -0.734373 0.208776 +v 0.149594 -0.723193 0.214209 +v 0.147702 -0.723873 0.214736 +v 0.147224 -0.712439 0.221009 +v 0.145326 -0.713088 0.221556 +v 0.147461 -0.698686 0.226463 +v 0.146109 -0.699346 0.227276 +v 0.144336 -0.684499 0.233501 +v 0.142976 -0.685122 0.234334 +v 0.142700 -0.667190 0.238541 +v 0.141881 -0.667797 0.239650 +v 0.139038 -0.650568 0.245241 +v 0.138210 -0.651137 0.246365 +v 0.144481 -0.699987 0.227964 +v 0.142576 -0.700608 0.228528 +v 0.141340 -0.685731 0.235038 +v 0.139430 -0.686327 0.235614 +v 0.140788 -0.668396 0.240628 +v 0.139420 -0.668986 0.241475 +v 0.137110 -0.651702 0.247357 +v 0.135736 -0.652263 0.248217 +v 0.135535 -0.634671 0.251067 +v 0.134701 -0.635207 0.252204 +v 0.136098 -0.634134 0.249797 +v 0.132539 -0.617982 0.255164 +v 0.131970 -0.618487 0.256445 +v 0.131129 -0.618995 0.257591 +v 0.136387 -0.633596 0.248393 +v 0.138407 -0.632758 0.247290 +v 0.134832 -0.616678 0.252636 +v 0.132837 -0.617481 0.253748 +v 0.128999 -0.600061 0.259085 +v 0.128694 -0.600531 0.260511 +v 0.130966 -0.599291 0.257964 +v 0.126802 -0.580559 0.263258 +v 0.124865 -0.581298 0.264385 +v 0.124554 -0.581738 0.265819 +v 0.120427 -0.561152 0.269631 +v 0.120109 -0.561565 0.271073 +v 0.122329 -0.560443 0.268498 +v 0.117540 -0.538902 0.273668 +v 0.115674 -0.539580 0.274806 +v 0.115350 -0.539967 0.276254 +v 0.128118 -0.601007 0.261801 +v 0.127272 -0.601489 0.262955 +v 0.123972 -0.582188 0.267117 +v 0.123120 -0.582646 0.268278 +v 0.133594 -0.635744 0.253206 +v 0.132214 -0.636279 0.254075 +v 0.130016 -0.619506 0.258603 +v 0.128632 -0.620020 0.259479 +v 0.110597 -0.516537 0.279894 +v 0.110268 -0.516899 0.281348 +v 0.112424 -0.515887 0.278752 +v 0.106970 -0.491360 0.283734 +v 0.105186 -0.491980 0.284880 +v 0.104853 -0.492319 0.286338 +v 0.119522 -0.561989 0.272377 +v 0.118665 -0.562425 0.273544 +v 0.114758 -0.540367 0.277564 +v 0.113897 -0.540783 0.278736 +v 0.126154 -0.601977 0.263974 +v 0.124766 -0.602471 0.264856 +v 0.121998 -0.583113 0.269303 +v 0.120606 -0.583589 0.270191 +v 0.137779 -0.669568 0.242192 +v 0.135863 -0.670140 0.242779 +v 0.134089 -0.652820 0.248944 +v 0.132169 -0.653373 0.249539 +v 0.130563 -0.636815 0.254811 +v 0.128639 -0.637350 0.255412 +v 0.126976 -0.620537 0.260221 +v 0.125049 -0.621057 0.260828 +v 0.123106 -0.602971 0.265603 +v 0.121176 -0.603477 0.266214 +v 0.118943 -0.584073 0.270942 +v 0.117010 -0.584567 0.271557 +v 0.133674 -0.670704 0.243235 +v 0.131210 -0.671259 0.243561 +v 0.134783 -0.687477 0.236383 +v 0.137244 -0.686909 0.236063 +v 0.129976 -0.653921 0.250002 +v 0.127510 -0.654465 0.250333 +v 0.126443 -0.637885 0.255880 +v 0.123974 -0.638419 0.256214 +v 0.122850 -0.621580 0.261300 +v 0.120380 -0.622105 0.261637 +v 0.140395 -0.701209 0.228966 +v 0.137937 -0.701791 0.229278 +v 0.140694 -0.714309 0.222285 +v 0.143149 -0.713711 0.221981 +v 0.145530 -0.724520 0.215146 +v 0.143080 -0.725135 0.215439 +v 0.135202 -0.702354 0.229466 +v 0.127103 -0.703775 0.229560 +v 0.129709 -0.716334 0.222558 +v 0.137962 -0.714881 0.222467 +v 0.132046 -0.688031 0.236575 +v 0.124124 -0.689418 0.236671 +v 0.140349 -0.725717 0.215614 +v 0.131963 -0.727197 0.215702 +v 0.133888 -0.736471 0.209027 +v 0.142387 -0.734966 0.208944 +v 0.144099 -0.742734 0.202492 +v 0.135504 -0.744261 0.202570 +v 0.136834 -0.750672 0.196367 +v 0.145507 -0.749125 0.196295 +v 0.146635 -0.754245 0.190389 +v 0.137900 -0.755809 0.190454 +v 0.115454 -0.747680 0.202597 +v 0.116547 -0.754134 0.196391 +v 0.114126 -0.739840 0.209055 +v 0.085911 -0.743704 0.209055 +v 0.086852 -0.751601 0.202597 +v 0.087627 -0.758100 0.196391 +v 0.118595 -0.766225 0.179657 +v 0.118099 -0.763300 0.184885 +v 0.088728 -0.767331 0.184885 +v 0.089079 -0.770277 0.179657 +v 0.117423 -0.759305 0.190475 +v 0.088248 -0.763308 0.190475 +v 0.112545 -0.730506 0.215731 +v 0.110694 -0.719572 0.222589 +v 0.083477 -0.723293 0.222589 +v 0.084790 -0.734304 0.215731 +v 0.054127 -0.776493 0.170430 +v 0.054163 -0.777003 0.166514 +v 0.054050 -0.775378 0.174826 +v 0.015939 -0.777096 0.174826 +v 0.015961 -0.778214 0.170430 +v 0.015972 -0.778726 0.166514 +v -0.022243 -0.778059 0.170430 +v -0.022258 -0.778571 0.166514 +v -0.022211 -0.776942 0.174826 +v -0.060307 -0.774917 0.174826 +v -0.060394 -0.776031 0.170430 +v -0.060434 -0.776542 0.166514 +v 0.053911 -0.773394 0.179657 +v 0.053705 -0.770434 0.184885 +v 0.015837 -0.772142 0.184885 +v 0.015898 -0.775108 0.179657 +v -0.098399 -0.772132 0.170430 +v -0.098464 -0.772640 0.166514 +v -0.098258 -0.771024 0.174826 +v -0.135972 -0.765274 0.174826 +v -0.136167 -0.766375 0.170430 +v -0.136257 -0.766879 0.166514 +v -0.173608 -0.758770 0.170430 +v -0.173722 -0.759269 0.166514 +v -0.173358 -0.757680 0.174826 +v -0.210327 -0.748261 0.174826 +v -0.210630 -0.749338 0.170430 +v -0.210768 -0.749831 0.166514 +v -0.022154 -0.774954 0.179657 +v -0.022069 -0.771988 0.184885 +v -0.059923 -0.769976 0.184885 +v -0.060153 -0.772934 0.179657 +v -0.098006 -0.769051 0.179657 +v -0.097631 -0.766108 0.184885 +v -0.135105 -0.760395 0.184885 +v -0.135624 -0.763316 0.179657 +v -0.172915 -0.755741 0.179657 +v -0.172253 -0.752849 0.184885 +v -0.208986 -0.743491 0.184885 +v -0.209789 -0.746347 0.179657 +v -0.097119 -0.762088 0.190476 +v -0.096456 -0.756885 0.196391 +v -0.133479 -0.751241 0.196391 +v -0.134396 -0.756405 0.190476 +v -0.059608 -0.765936 0.190476 +v -0.059201 -0.760707 0.196391 +v -0.171349 -0.748899 0.190476 +v -0.170179 -0.743786 0.196391 +v -0.206470 -0.734541 0.196391 +v -0.207890 -0.739590 0.190476 +v -0.247144 -0.738099 0.170430 +v -0.247307 -0.738585 0.166514 +v -0.246789 -0.737039 0.174826 +v -0.282657 -0.724043 0.174826 +v -0.283063 -0.725084 0.170430 +v -0.283250 -0.725561 0.166514 +v -0.318300 -0.710321 0.170430 +v -0.318510 -0.710788 0.166514 +v -0.317843 -0.709301 0.174826 +v -0.352265 -0.692851 0.174826 +v -0.352771 -0.693848 0.170430 +v -0.353003 -0.694304 0.166514 +v -0.246158 -0.735154 0.179657 +v -0.245216 -0.732340 0.184885 +v -0.280855 -0.719427 0.184885 +v -0.281934 -0.722190 0.179657 +v -0.386392 -0.675702 0.170430 +v -0.386646 -0.676146 0.166514 +v -0.385837 -0.674731 0.174826 +v -0.416234 -0.656582 0.174826 +v -0.416836 -0.657524 0.170430 +v -0.417112 -0.657955 0.166514 +v -0.317030 -0.707486 0.179657 +v -0.315817 -0.704779 0.184885 +v -0.350019 -0.688434 0.184885 +v -0.351363 -0.691078 0.179657 +v -0.441779 -0.640955 0.170430 +v -0.442076 -0.641373 0.166514 +v -0.441132 -0.640044 0.174826 +v -0.458319 -0.627794 0.174816 +v -0.458999 -0.628681 0.170423 +v -0.459311 -0.629087 0.166510 +v -0.384849 -0.673005 0.179657 +v -0.383377 -0.670429 0.184885 +v -0.413566 -0.652406 0.184885 +v -0.415163 -0.654906 0.179657 +v -0.466274 -0.623387 0.170403 +v -0.468424 -0.621606 0.170362 +v -0.468738 -0.622004 0.166479 +v -0.466589 -0.623788 0.166500 +v -0.465584 -0.622511 0.174784 +v -0.467739 -0.620735 0.174720 +v -0.439980 -0.638423 0.179657 +v -0.438262 -0.636004 0.184885 +v -0.455303 -0.623863 0.184867 +v -0.457108 -0.626217 0.179642 +v -0.464357 -0.620951 0.179598 +v -0.466517 -0.619183 0.179510 +v -0.462525 -0.618623 0.184812 +v -0.464692 -0.616864 0.184701 +v -0.470273 -0.619871 0.170295 +v -0.471819 -0.618181 0.170200 +v -0.472123 -0.618568 0.166396 +v -0.470582 -0.620264 0.166444 +v -0.469593 -0.619007 0.174613 +v -0.471148 -0.617329 0.174464 +v -0.473063 -0.616537 0.170079 +v -0.473361 -0.616916 0.166333 +v -0.472403 -0.615700 0.174271 +v -0.471224 -0.614201 0.178892 +v -0.472202 -0.612649 0.178569 +v -0.469950 -0.615807 0.179157 +v -0.468155 -0.613526 0.184257 +v -0.469450 -0.611947 0.183925 +v -0.470454 -0.610428 0.183519 +v -0.460021 -0.615441 0.190389 +v -0.462197 -0.613692 0.190260 +v -0.452835 -0.620648 0.190454 +v -0.449642 -0.616485 0.196367 +v -0.456779 -0.611321 0.196295 +v -0.458962 -0.609582 0.196150 +v -0.435916 -0.632700 0.190476 +v -0.432878 -0.628424 0.196391 +v -0.411384 -0.648991 0.190476 +v -0.408561 -0.644572 0.196391 +v -0.464086 -0.612009 0.190044 +v -0.465690 -0.610393 0.189742 +v -0.466568 -0.615164 0.184516 +v -0.460865 -0.607916 0.195909 +v -0.462488 -0.606324 0.195571 +v -0.381365 -0.666912 0.190476 +v -0.378762 -0.662359 0.196391 +v -0.348182 -0.684822 0.190476 +v -0.345805 -0.680146 0.196391 +v -0.452732 -0.606178 0.202492 +v -0.454923 -0.604449 0.202334 +v -0.445656 -0.611291 0.202570 +v -0.440814 -0.604979 0.209027 +v -0.447813 -0.599928 0.208944 +v -0.450011 -0.598207 0.208776 +v -0.429088 -0.623089 0.202597 +v -0.424483 -0.616605 0.209055 +v -0.405037 -0.639056 0.202597 +v -0.400755 -0.632355 0.209055 +v -0.314160 -0.701081 0.190476 +v -0.312015 -0.696294 0.196391 +v -0.279381 -0.715652 0.190476 +v -0.277474 -0.710766 0.196391 +v -0.375513 -0.656677 0.202597 +v -0.371565 -0.649774 0.209055 +v -0.342839 -0.674312 0.202597 +v -0.339235 -0.667224 0.209055 +v -0.243929 -0.728498 0.190476 +v -0.242264 -0.723524 0.196391 +v -0.309339 -0.690322 0.202597 +v -0.306087 -0.683065 0.209055 +v -0.275094 -0.704669 0.202597 +v -0.272202 -0.697261 0.209055 +v -0.240186 -0.717318 0.202597 +v -0.237661 -0.709777 0.209055 +v -0.204699 -0.728240 0.202597 +v -0.202548 -0.720584 0.209055 +v -0.168720 -0.737406 0.202597 +v -0.166946 -0.729654 0.209055 +v -0.132334 -0.744797 0.202597 +v -0.130943 -0.736968 0.209055 +v -0.302215 -0.674425 0.215731 +v -0.297681 -0.664306 0.222589 +v -0.329918 -0.648900 0.222589 +v -0.334944 -0.658784 0.215731 +v -0.268759 -0.688442 0.215731 +v -0.264726 -0.678113 0.222589 +v -0.234655 -0.700800 0.215731 +v -0.231134 -0.690285 0.222589 +v -0.199986 -0.711470 0.215731 +v -0.196985 -0.700795 0.222589 +v -0.366866 -0.641555 0.215731 +v -0.361361 -0.631929 0.222589 +v -0.389688 -0.615032 0.222589 +v -0.395658 -0.624377 0.215731 +v -0.419000 -0.608887 0.215731 +v -0.412579 -0.599847 0.222589 +v -0.428294 -0.588662 0.222558 +v -0.435048 -0.597464 0.215702 +v -0.354998 -0.620801 0.229591 +v -0.347723 -0.608080 0.236703 +v -0.374896 -0.591881 0.236703 +v -0.382786 -0.604230 0.229591 +v -0.324109 -0.637473 0.229591 +v -0.317467 -0.624410 0.236703 +v -0.441956 -0.592485 0.215614 +v -0.444161 -0.590773 0.215439 +v -0.435094 -0.583765 0.222467 +v -0.437306 -0.582062 0.222285 +v -0.405155 -0.589397 0.229591 +v -0.396669 -0.577449 0.236703 +v -0.411561 -0.566852 0.236671 +v -0.420487 -0.578486 0.229560 +v -0.427162 -0.573685 0.229466 +v -0.429380 -0.571989 0.229278 +v -0.418092 -0.562159 0.236575 +v -0.420315 -0.560470 0.236383 +v -0.456839 -0.602799 0.202072 +v -0.458479 -0.601230 0.201705 +v -0.451940 -0.596574 0.208497 +v -0.453597 -0.595026 0.208107 +v -0.446101 -0.589154 0.215146 +v -0.447775 -0.587627 0.214736 +v -0.439257 -0.580456 0.221981 +v -0.440946 -0.578948 0.221556 +v -0.467009 -0.608844 0.189353 +v -0.468041 -0.607362 0.188878 +v -0.463830 -0.604805 0.195136 +v -0.464892 -0.603360 0.194605 +v -0.472883 -0.611151 0.178186 +v -0.473269 -0.609707 0.177745 +v -0.471168 -0.608970 0.183038 +v -0.471590 -0.607572 0.182484 +v -0.459845 -0.599740 0.201233 +v -0.460935 -0.598331 0.200657 +v -0.454985 -0.593565 0.207604 +v -0.456102 -0.592190 0.206991 +v -0.468788 -0.605947 0.188317 +v -0.469250 -0.604598 0.187670 +v -0.465673 -0.601988 0.193978 +v -0.466174 -0.600690 0.193254 +v -0.473359 -0.608317 0.177245 +v -0.473154 -0.606981 0.176686 +v -0.474185 -0.608290 0.172671 +v -0.474427 -0.609674 0.173076 +v -0.471721 -0.606235 0.181856 +v -0.471562 -0.604957 0.181154 +v -0.472653 -0.605699 0.176068 +v -0.473869 -0.603396 0.175583 +v -0.474827 -0.604610 0.171870 +v -0.473642 -0.606956 0.172222 +v -0.471112 -0.603740 0.180378 +v -0.472364 -0.601491 0.179769 +v -0.469425 -0.603317 0.186936 +v -0.469315 -0.602102 0.186116 +v -0.466395 -0.599466 0.192433 +v -0.466335 -0.598315 0.191516 +v -0.461749 -0.597002 0.199975 +v -0.462289 -0.595753 0.199189 +v -0.456949 -0.590901 0.206265 +v -0.457525 -0.589699 0.205428 +v -0.468919 -0.600954 0.185209 +v -0.470210 -0.598763 0.184497 +v -0.465994 -0.597237 0.190502 +v -0.467321 -0.595108 0.189706 +v -0.462553 -0.594584 0.198297 +v -0.462542 -0.593495 0.197301 +v -0.457831 -0.588584 0.204479 +v -0.457867 -0.587554 0.203419 +v -0.462256 -0.592487 0.196200 +v -0.463617 -0.590418 0.195335 +v -0.457632 -0.586611 0.202247 +v -0.459023 -0.584603 0.201327 +v -0.451202 -0.583599 0.212804 +v -0.451814 -0.582441 0.211926 +v -0.450326 -0.584850 0.213565 +v -0.443539 -0.576225 0.220341 +v -0.444444 -0.575010 0.219551 +v -0.445087 -0.573893 0.218639 +v -0.452052 -0.579520 0.208589 +v -0.453467 -0.577571 0.207623 +v -0.452238 -0.580401 0.209819 +v -0.445589 -0.571952 0.216452 +v -0.445448 -0.571127 0.215176 +v -0.446882 -0.569236 0.214173 +v -0.452159 -0.581375 0.210931 +v -0.445469 -0.572874 0.217606 +v -0.437753 -0.561348 0.221958 +v -0.439201 -0.559513 0.220925 +v -0.437852 -0.562120 0.223272 +v -0.428960 -0.550820 0.230236 +v -0.428898 -0.550097 0.228891 +v -0.430356 -0.548316 0.227835 +v -0.437694 -0.562994 0.224460 +v -0.437279 -0.563971 0.225524 +v -0.428322 -0.552589 0.232541 +v -0.428768 -0.551651 0.231452 +v -0.418817 -0.537286 0.235933 +v -0.420277 -0.535559 0.234858 +v -0.418845 -0.537966 0.237303 +v -0.408347 -0.524625 0.243985 +v -0.408348 -0.523983 0.242597 +v -0.409806 -0.522305 0.241506 +v -0.398331 -0.511253 0.248394 +v -0.399784 -0.509620 0.247291 +v -0.398303 -0.511863 0.249797 +v -0.388076 -0.498866 0.255164 +v -0.388126 -0.498285 0.253748 +v -0.389573 -0.496694 0.252636 +v -0.418623 -0.538759 0.238541 +v -0.418149 -0.539662 0.239650 +v -0.407600 -0.526255 0.246366 +v -0.408097 -0.525383 0.245241 +v -0.398030 -0.512591 0.251067 +v -0.397512 -0.513436 0.252204 +v -0.387246 -0.500391 0.257591 +v -0.387782 -0.499568 0.256445 +v -0.376713 -0.485502 0.261801 +v -0.377025 -0.484823 0.260511 +v -0.376160 -0.486304 0.262955 +v -0.364228 -0.471141 0.268278 +v -0.364796 -0.470358 0.267117 +v -0.365125 -0.469700 0.265819 +v -0.396749 -0.514401 0.253206 +v -0.395740 -0.515483 0.254075 +v -0.385443 -0.502400 0.259479 +v -0.386466 -0.501334 0.258603 +v -0.406854 -0.527243 0.247357 +v -0.405861 -0.528345 0.248217 +v -0.375366 -0.487229 0.263974 +v -0.374331 -0.488278 0.264856 +v -0.362374 -0.473083 0.270191 +v -0.363421 -0.472049 0.269303 +v -0.417425 -0.540676 0.240628 +v -0.416451 -0.541803 0.241475 +v -0.427622 -0.553634 0.233501 +v -0.426669 -0.554788 0.234334 +v -0.436606 -0.565051 0.226463 +v -0.435676 -0.566233 0.227276 +v -0.394485 -0.516684 0.254811 +v -0.392985 -0.518003 0.255412 +v -0.382668 -0.504891 0.260828 +v -0.384177 -0.503585 0.260221 +v -0.404620 -0.529563 0.248944 +v -0.403132 -0.530895 0.249539 +v -0.415225 -0.543040 0.242192 +v -0.413749 -0.544388 0.242779 +v -0.425461 -0.556047 0.235038 +v -0.424000 -0.557414 0.235614 +v -0.434488 -0.567518 0.227964 +v -0.433043 -0.568906 0.228528 +v -0.442373 -0.577538 0.221009 +v -0.449183 -0.586192 0.214209 +v -0.431340 -0.570396 0.228966 +v -0.422284 -0.558888 0.236063 +v -0.412023 -0.545848 0.243236 +v -0.410045 -0.547421 0.243562 +v -0.399411 -0.533905 0.250333 +v -0.401395 -0.532344 0.250002 +v -0.407817 -0.549102 0.243757 +v -0.401450 -0.553675 0.243855 +v -0.390981 -0.540030 0.250630 +v -0.397178 -0.535582 0.250531 +v -0.387056 -0.563917 0.243888 +v -0.377103 -0.549904 0.250663 +v -0.365959 -0.577893 0.243888 +v -0.356705 -0.563409 0.250663 +v -0.391240 -0.519439 0.255880 +v -0.389250 -0.520993 0.256215 +v -0.378919 -0.507865 0.261637 +v -0.380915 -0.506318 0.261300 +v -0.387014 -0.522667 0.256415 +v -0.380979 -0.526995 0.256515 +v -0.370811 -0.513743 0.261940 +v -0.376680 -0.509534 0.261839 +v -0.367593 -0.536517 0.256549 +v -0.357926 -0.522907 0.261974 +v -0.347864 -0.549571 0.256549 +v -0.338876 -0.535504 0.261974 +v -0.339483 -0.593670 0.243888 +v -0.330951 -0.578750 0.250663 +v -0.309944 -0.609613 0.243888 +v -0.302154 -0.594292 0.250663 +v -0.292439 -0.652608 0.229591 +v -0.286446 -0.639234 0.236703 +v -0.260065 -0.666172 0.229591 +v -0.254735 -0.652520 0.236703 +v -0.322799 -0.564495 0.256549 +v -0.314513 -0.550003 0.261974 +v -0.294712 -0.579654 0.256549 +v -0.287146 -0.564773 0.261974 +v -0.279658 -0.624086 0.243888 +v -0.272630 -0.608401 0.250663 +v -0.248699 -0.637057 0.243887 +v -0.242449 -0.621046 0.250663 +v -0.347498 -0.508228 0.267369 +v -0.336284 -0.492442 0.272718 +v -0.348048 -0.484075 0.272684 +v -0.359843 -0.499448 0.267335 +v -0.329181 -0.520330 0.267369 +v -0.318755 -0.504013 0.272718 +v -0.365533 -0.495370 0.267233 +v -0.367775 -0.493705 0.267029 +v -0.353545 -0.480136 0.272581 +v -0.355790 -0.478475 0.272376 +v -0.369776 -0.492163 0.266690 +v -0.371536 -0.490745 0.266214 +v -0.357795 -0.476939 0.272035 +v -0.359561 -0.475528 0.271557 +v -0.305574 -0.534373 0.267369 +v -0.295962 -0.517563 0.272718 +v -0.278986 -0.548723 0.267369 +v -0.270210 -0.531461 0.272718 +v -0.340688 -0.463798 0.277869 +v -0.342936 -0.462139 0.277663 +v -0.335398 -0.467587 0.277972 +v -0.321864 -0.449948 0.283183 +v -0.326934 -0.446319 0.283080 +v -0.329183 -0.444663 0.282873 +v -0.324257 -0.475510 0.278006 +v -0.311391 -0.457397 0.283218 +v -0.307574 -0.486512 0.278006 +v -0.295612 -0.467789 0.283218 +v -0.373054 -0.489450 0.265603 +v -0.361087 -0.474243 0.270942 +v -0.344945 -0.460609 0.277319 +v -0.346716 -0.459205 0.276839 +v -0.331197 -0.443138 0.282528 +v -0.332974 -0.441741 0.282046 +v -0.348250 -0.457930 0.276221 +v -0.349546 -0.456782 0.275466 +v -0.334514 -0.440475 0.281425 +v -0.335819 -0.439338 0.280667 +v -0.350604 -0.455762 0.274574 +v -0.351424 -0.454869 0.273544 +v -0.336887 -0.438331 0.279770 +v -0.337718 -0.437453 0.278736 +v -0.316522 -0.424489 0.287646 +v -0.318304 -0.423100 0.287161 +v -0.314505 -0.426011 0.287992 +v -0.298873 -0.406145 0.293004 +v -0.300893 -0.404629 0.292657 +v -0.302680 -0.403245 0.292171 +v -0.352006 -0.454104 0.272377 +v -0.352350 -0.453467 0.271073 +v -0.338314 -0.436705 0.277564 +v -0.338673 -0.436087 0.276254 +v -0.319852 -0.421842 0.286539 +v -0.321164 -0.420715 0.285777 +v -0.304234 -0.401995 0.291546 +v -0.305554 -0.400878 0.290782 +v -0.322242 -0.419720 0.284877 +v -0.323085 -0.418857 0.283839 +v -0.306641 -0.399895 0.289879 +v -0.307494 -0.399045 0.288838 +v -0.352456 -0.452957 0.269631 +v -0.353862 -0.451492 0.268498 +v -0.366636 -0.467661 0.263258 +v -0.365213 -0.469168 0.264385 +v -0.338796 -0.435598 0.274806 +v -0.340181 -0.434175 0.273668 +v -0.377095 -0.484267 0.259085 +v -0.378531 -0.482718 0.257964 +v -0.323693 -0.418125 0.282663 +v -0.324066 -0.417524 0.281348 +v -0.308114 -0.398328 0.287657 +v -0.308500 -0.397744 0.286338 +v -0.324204 -0.417055 0.279894 +v -0.325567 -0.415676 0.278752 +v -0.308653 -0.397293 0.284880 +v -0.309990 -0.395959 0.283734 +v -0.292115 -0.376278 0.289747 +v -0.293423 -0.374989 0.288598 +v -0.291949 -0.376711 0.291209 +v -0.274383 -0.354388 0.295945 +v -0.274563 -0.353972 0.294479 +v -0.275839 -0.352730 0.293327 +v -0.291550 -0.377278 0.292532 +v -0.290919 -0.377981 0.293716 +v -0.273330 -0.355630 0.298457 +v -0.273972 -0.354941 0.297271 +v -0.255353 -0.331280 0.301859 +v -0.255775 -0.330742 0.300529 +v -0.254701 -0.331957 0.303048 +v -0.235002 -0.306924 0.307471 +v -0.235663 -0.306260 0.306280 +v -0.236096 -0.305735 0.304948 +v -0.290055 -0.378819 0.294760 +v -0.288960 -0.379791 0.295665 +v -0.271354 -0.357418 0.300412 +v -0.272458 -0.356456 0.299505 +v -0.253820 -0.332771 0.304097 +v -0.252709 -0.333724 0.305006 +v -0.232994 -0.308671 0.309433 +v -0.234113 -0.307728 0.308522 +v -0.287633 -0.380899 0.296431 +v -0.286073 -0.382141 0.297058 +v -0.268455 -0.359753 0.301808 +v -0.270020 -0.358517 0.301180 +v -0.251368 -0.334814 0.305776 +v -0.249797 -0.336043 0.306405 +v -0.230072 -0.310976 0.310835 +v -0.231647 -0.309754 0.310204 +v -0.284281 -0.383519 0.297545 +v -0.282258 -0.385031 0.297894 +v -0.264632 -0.362633 0.302646 +v -0.266659 -0.361125 0.302297 +v -0.247997 -0.337410 0.306895 +v -0.245967 -0.338914 0.307245 +v -0.226235 -0.313839 0.311676 +v -0.228268 -0.312338 0.311325 +v -0.210830 -0.283301 0.314449 +v -0.212183 -0.282225 0.313677 +v -0.209250 -0.284517 0.315080 +v -0.193007 -0.263876 0.318231 +v -0.194593 -0.262666 0.317598 +v -0.195952 -0.261599 0.316825 +v -0.207443 -0.285874 0.315572 +v -0.205407 -0.287372 0.315922 +v -0.189157 -0.266722 0.319074 +v -0.191195 -0.265228 0.318723 +v -0.243708 -0.340557 0.307455 +v -0.239979 -0.343224 0.307560 +v -0.220564 -0.317920 0.311991 +v -0.223974 -0.315480 0.311886 +v -0.262374 -0.364278 0.302855 +v -0.258345 -0.367161 0.302960 +v -0.213308 -0.281290 0.312764 +v -0.214205 -0.280496 0.311711 +v -0.197084 -0.260674 0.315911 +v -0.197991 -0.259891 0.314857 +v -0.203145 -0.289011 0.316133 +v -0.200071 -0.291210 0.316238 +v -0.184080 -0.270370 0.319390 +v -0.186893 -0.268358 0.319285 +v -0.214875 -0.279843 0.310518 +v -0.215318 -0.279330 0.309185 +v -0.198671 -0.259250 0.313662 +v -0.199124 -0.258752 0.312326 +v -0.255967 -0.330342 0.299060 +v -0.236300 -0.305349 0.303476 +v -0.257208 -0.329148 0.297906 +v -0.237503 -0.304205 0.302320 +v -0.215532 -0.278958 0.307711 +v -0.216693 -0.277865 0.306553 +v -0.199352 -0.258396 0.310850 +v -0.200483 -0.257346 0.309691 +v -0.191120 -0.253094 0.317050 +v -0.192038 -0.252327 0.315994 +v -0.189977 -0.254006 0.317966 +v -0.189124 -0.252923 0.318082 +v -0.190283 -0.252031 0.317165 +v -0.191219 -0.251286 0.316107 +v -0.193445 -0.250889 0.311981 +v -0.194575 -0.249867 0.310819 +v -0.193201 -0.251224 0.313459 +v -0.192424 -0.250238 0.313569 +v -0.192694 -0.249935 0.312088 +v -0.193842 -0.248939 0.310924 +v -0.192732 -0.251703 0.314797 +v -0.191933 -0.250688 0.314909 +v -0.191981 -0.249029 0.312156 +v -0.193157 -0.248072 0.310991 +v -0.191674 -0.249284 0.313638 +v -0.191149 -0.249691 0.314980 +v -0.190404 -0.250250 0.316180 +v -0.189612 -0.249243 0.316194 +v -0.190398 -0.248737 0.314996 +v -0.189441 -0.250961 0.317239 +v -0.188260 -0.251824 0.318157 +v -0.187398 -0.250729 0.318168 +v -0.188612 -0.249907 0.317252 +v -0.189699 -0.247850 0.314941 +v -0.188858 -0.248286 0.316131 +v -0.188155 -0.247391 0.315982 +v -0.189063 -0.247041 0.314811 +v -0.187810 -0.248888 0.317182 +v -0.186554 -0.249657 0.318092 +v -0.185740 -0.248622 0.317911 +v -0.187047 -0.247919 0.317016 +v -0.188497 -0.246322 0.314603 +v -0.187511 -0.246573 0.315739 +v -0.186922 -0.245825 0.315389 +v -0.187995 -0.245684 0.314312 +v -0.189294 -0.246260 0.313334 +v -0.188889 -0.245745 0.313107 +v -0.189900 -0.246386 0.311932 +v -0.191308 -0.245732 0.310830 +v -0.189602 -0.246006 0.311775 +v -0.191093 -0.245459 0.310729 +v -0.186333 -0.247012 0.316740 +v -0.184966 -0.247639 0.317608 +v -0.184236 -0.246710 0.317165 +v -0.185669 -0.246167 0.316340 +v -0.185054 -0.245385 0.315801 +v -0.186386 -0.245144 0.314924 +v -0.183552 -0.245841 0.316561 +v -0.182912 -0.245028 0.315763 +v -0.184480 -0.244656 0.315085 +v -0.185888 -0.244511 0.314302 +v -0.181880 -0.246512 0.317205 +v -0.180039 -0.247396 0.317731 +v -0.179298 -0.246455 0.316807 +v -0.181185 -0.245628 0.316337 +v -0.182622 -0.247454 0.317862 +v -0.180828 -0.248399 0.318433 +v -0.183408 -0.248454 0.318343 +v -0.181661 -0.249457 0.318944 +v -0.184233 -0.249502 0.318669 +v -0.182527 -0.250558 0.319289 +v -0.185091 -0.250592 0.318863 +v -0.183420 -0.251693 0.319493 +v -0.185970 -0.251709 0.318944 +v -0.184328 -0.252847 0.319578 +v -0.178029 -0.248496 0.318140 +v -0.175848 -0.249809 0.318433 +v -0.175047 -0.248790 0.317433 +v -0.177252 -0.247509 0.317172 +v -0.178855 -0.249546 0.318876 +v -0.176701 -0.250893 0.319193 +v -0.186859 -0.252839 0.318934 +v -0.185240 -0.254005 0.319570 +v -0.187744 -0.253962 0.318858 +v -0.186140 -0.255149 0.319493 +v -0.179722 -0.250648 0.319412 +v -0.177594 -0.252027 0.319745 +v -0.180621 -0.251791 0.319772 +v -0.178516 -0.253199 0.320116 +v -0.181542 -0.252961 0.319983 +v -0.179457 -0.254395 0.320333 +v -0.182473 -0.254143 0.320072 +v -0.180404 -0.255598 0.320424 +v -0.188609 -0.255062 0.318740 +v -0.187017 -0.256263 0.319374 +v -0.183401 -0.255323 0.320064 +v -0.181344 -0.256793 0.320417 +v -0.184314 -0.256484 0.319986 +v -0.182266 -0.257965 0.320339 +v -0.185199 -0.257608 0.319867 +v -0.183157 -0.259097 0.320219 +v -0.177164 -0.255995 0.320543 +v -0.174495 -0.257876 0.320648 +v -0.173552 -0.256648 0.320426 +v -0.176211 -0.254785 0.320323 +v -0.178120 -0.257210 0.320636 +v -0.175441 -0.259109 0.320742 +v -0.180890 -0.260730 0.320430 +v -0.178174 -0.262671 0.320536 +v -0.177292 -0.261522 0.320656 +v -0.179996 -0.259594 0.320550 +v -0.179068 -0.258415 0.320629 +v -0.176377 -0.260330 0.320735 +v -0.174784 -0.265083 0.320571 +v -0.173945 -0.263903 0.320692 +v -0.180399 -0.272989 0.319426 +v -0.173826 -0.277175 0.319426 +v -0.168605 -0.269004 0.320571 +v -0.167825 -0.267783 0.320692 +v -0.173074 -0.262677 0.320770 +v -0.172183 -0.261422 0.320777 +v -0.167016 -0.266516 0.320770 +v -0.166187 -0.265219 0.320777 +v -0.171282 -0.260154 0.320684 +v -0.170384 -0.258889 0.320461 +v -0.165350 -0.263908 0.320684 +v -0.164515 -0.262601 0.320461 +v -0.175275 -0.253595 0.319946 +v -0.172624 -0.255438 0.320046 +v -0.171723 -0.254264 0.319479 +v -0.174367 -0.252441 0.319384 +v -0.169500 -0.257645 0.320079 +v -0.168641 -0.256435 0.319510 +v -0.163692 -0.261315 0.320079 +v -0.162894 -0.260065 0.319510 +v -0.173499 -0.251337 0.318608 +v -0.170861 -0.253140 0.318696 +v -0.170050 -0.252083 0.317668 +v -0.172682 -0.250299 0.317590 +v -0.167819 -0.255278 0.318725 +v -0.167045 -0.254189 0.317694 +v -0.162130 -0.258868 0.318725 +v -0.161410 -0.257743 0.317694 +v -0.154522 -0.270221 0.320684 +v -0.153752 -0.268874 0.320461 +v -0.155294 -0.271571 0.320777 +v -0.141782 -0.278864 0.320777 +v -0.141077 -0.277477 0.320684 +v -0.140374 -0.276095 0.320461 +v -0.171927 -0.249341 0.316299 +v -0.174306 -0.247849 0.316165 +v -0.169301 -0.251107 0.316366 +v -0.168627 -0.250228 0.314760 +v -0.171247 -0.248477 0.314704 +v -0.173636 -0.246998 0.314591 +v -0.152994 -0.267549 0.320079 +v -0.152258 -0.266261 0.319510 +v -0.139682 -0.274734 0.320079 +v -0.139010 -0.273412 0.319510 +v -0.166331 -0.253184 0.316388 +v -0.165689 -0.252279 0.314779 +v -0.160747 -0.256704 0.316388 +v -0.160149 -0.255769 0.314779 +v -0.151553 -0.265029 0.318725 +v -0.150890 -0.263869 0.317694 +v -0.138366 -0.272146 0.318725 +v -0.137761 -0.270955 0.317694 +v -0.176533 -0.246596 0.315941 +v -0.178611 -0.245581 0.315629 +v -0.175881 -0.245767 0.314404 +v -0.177983 -0.244783 0.314141 +v -0.180538 -0.244805 0.315226 +v -0.182314 -0.244268 0.314735 +v -0.179941 -0.244047 0.313804 +v -0.181755 -0.243559 0.313391 +v -0.170653 -0.247722 0.312773 +v -0.173048 -0.246251 0.312676 +v -0.168040 -0.249463 0.312821 +v -0.167496 -0.248753 0.310714 +v -0.170102 -0.247021 0.310673 +v -0.172501 -0.245556 0.310590 +v -0.165129 -0.251492 0.312837 +v -0.164611 -0.250762 0.310728 +v -0.159629 -0.254955 0.312837 +v -0.159147 -0.254201 0.310728 +v -0.175304 -0.245033 0.312516 +v -0.177420 -0.244068 0.312291 +v -0.174764 -0.244347 0.310452 +v -0.176890 -0.243395 0.310258 +v -0.149248 -0.260997 0.312837 +v -0.148804 -0.260220 0.310728 +v -0.149727 -0.261836 0.314779 +v -0.136699 -0.268867 0.314779 +v -0.136262 -0.268006 0.312837 +v -0.135856 -0.267209 0.310728 +v -0.179397 -0.243356 0.312002 +v -0.181235 -0.242897 0.311648 +v -0.178880 -0.242699 0.310009 +v -0.180733 -0.242260 0.309705 +v -0.183940 -0.243970 0.314154 +v -0.185415 -0.243910 0.313483 +v -0.183426 -0.243318 0.312904 +v -0.184954 -0.243324 0.312341 +v -0.182933 -0.242691 0.311231 +v -0.184492 -0.242737 0.310749 +v -0.182450 -0.242077 0.309346 +v -0.184030 -0.242150 0.308931 +v -0.185912 -0.243037 0.310203 +v -0.186338 -0.243578 0.311704 +v -0.185474 -0.242480 0.308461 +v -0.186740 -0.244089 0.312724 +v -0.187914 -0.244506 0.311874 +v -0.188227 -0.244903 0.312423 +v -0.187137 -0.244594 0.313415 +v -0.188938 -0.245162 0.310936 +v -0.190672 -0.244926 0.310199 +v -0.190818 -0.245111 0.310467 +v -0.189157 -0.245440 0.311328 +v -0.122947 -0.274369 0.312837 +v -0.122581 -0.273553 0.310728 +v -0.123342 -0.275251 0.314779 +v -0.109688 -0.280972 0.314779 +v -0.109336 -0.280071 0.312837 +v -0.109011 -0.279238 0.310728 +v -0.150278 -0.262799 0.316388 +v -0.137202 -0.269856 0.316388 +v -0.123796 -0.276263 0.316388 +v -0.124300 -0.277388 0.317694 +v -0.110539 -0.283153 0.317694 +v -0.110091 -0.282005 0.316388 +v -0.124846 -0.278607 0.318725 +v -0.125427 -0.279903 0.319510 +v -0.111541 -0.285720 0.319510 +v -0.111025 -0.284398 0.318725 +v -0.095462 -0.285099 0.312837 +v -0.095178 -0.284250 0.310728 +v -0.095769 -0.286015 0.314779 +v -0.081619 -0.290370 0.314779 +v -0.081358 -0.289440 0.312837 +v -0.081116 -0.288578 0.310728 +v -0.096121 -0.287067 0.316388 +v -0.096512 -0.288236 0.317694 +v -0.082253 -0.292625 0.317694 +v -0.081920 -0.291438 0.316388 +v -0.067058 -0.293083 0.312837 +v -0.066858 -0.292211 0.310728 +v -0.067273 -0.294025 0.314779 +v -0.052765 -0.296972 0.314779 +v -0.052596 -0.296020 0.312837 +v -0.052440 -0.295140 0.310728 +v -0.067521 -0.295106 0.316388 +v -0.067796 -0.296308 0.317694 +v -0.053175 -0.299278 0.317694 +v -0.052959 -0.298064 0.316388 +v -0.096937 -0.289503 0.318725 +v -0.097387 -0.290849 0.319510 +v -0.082999 -0.295277 0.319510 +v -0.082615 -0.293911 0.318725 +v -0.068094 -0.297610 0.318725 +v -0.068410 -0.298994 0.319510 +v -0.053657 -0.301991 0.319510 +v -0.053409 -0.300593 0.318725 +v -0.038008 -0.298244 0.312837 +v -0.037895 -0.297357 0.310728 +v -0.038130 -0.299203 0.314779 +v -0.023403 -0.300714 0.314779 +v -0.023328 -0.299750 0.312837 +v -0.023258 -0.298858 0.310728 +v -0.038270 -0.300303 0.316388 +v -0.038426 -0.301526 0.317694 +v -0.023585 -0.303049 0.317694 +v -0.023489 -0.301820 0.316388 +v -0.008592 -0.300534 0.312837 +v -0.008566 -0.299639 0.310728 +v -0.008619 -0.301500 0.314779 +v 0.006185 -0.301560 0.314779 +v 0.006165 -0.300593 0.312837 +v 0.006147 -0.299699 0.310728 +v -0.008651 -0.302608 0.316388 +v -0.008686 -0.303841 0.317694 +v 0.006233 -0.303901 0.317694 +v 0.006208 -0.302669 0.316388 +v -0.038595 -0.302852 0.318725 +v -0.038774 -0.304260 0.319510 +v -0.023798 -0.305796 0.319510 +v -0.023688 -0.304381 0.318725 +v -0.008724 -0.305176 0.318725 +v -0.008765 -0.306595 0.319510 +v 0.006290 -0.306656 0.319510 +v 0.006260 -0.305237 0.318725 +v 0.020907 -0.299929 0.312837 +v 0.020845 -0.299036 0.310728 +v 0.020974 -0.300893 0.314779 +v 0.032998 -0.299961 0.314779 +v 0.032883 -0.299002 0.312837 +v 0.032777 -0.298113 0.310728 +v 0.021052 -0.301999 0.316388 +v 0.021137 -0.303229 0.317694 +v 0.033275 -0.302287 0.317694 +v 0.033129 -0.301063 0.316388 +v 0.039342 -0.298275 0.312837 +v 0.039192 -0.297393 0.310728 +v 0.039503 -0.299228 0.314779 +v 0.043041 -0.298658 0.314760 +v 0.042845 -0.297713 0.312821 +v 0.042664 -0.296838 0.310714 +v 0.045956 -0.297282 0.312773 +v 0.048752 -0.296999 0.312676 +v 0.048562 -0.296136 0.310590 +v 0.045764 -0.296412 0.310673 +v 0.046162 -0.298220 0.314704 +v 0.048956 -0.297927 0.314591 +v 0.039688 -0.300321 0.316388 +v 0.039894 -0.301537 0.317694 +v 0.043516 -0.300947 0.317668 +v 0.043266 -0.299743 0.316366 +v 0.046399 -0.299294 0.316299 +v 0.049189 -0.298985 0.316165 +v 0.046661 -0.300485 0.317590 +v 0.049447 -0.300155 0.317433 +v 0.051313 -0.296884 0.312516 +v 0.053638 -0.296935 0.312291 +v 0.053454 -0.296098 0.310258 +v 0.051125 -0.296031 0.310452 +v 0.051514 -0.297795 0.314404 +v 0.053834 -0.297823 0.314141 +v 0.040117 -0.302854 0.318725 +v 0.040354 -0.304254 0.319510 +v 0.044075 -0.303639 0.319479 +v 0.043787 -0.302252 0.318696 +v 0.033433 -0.303613 0.318725 +v 0.033601 -0.305023 0.319510 +v 0.055728 -0.297153 0.312002 +v 0.057582 -0.297539 0.311648 +v 0.057408 -0.296747 0.309705 +v 0.055548 -0.296337 0.310009 +v 0.055917 -0.298012 0.313804 +v 0.057764 -0.298361 0.313391 +v 0.051740 -0.298825 0.315941 +v 0.054052 -0.298815 0.315629 +v 0.051990 -0.299960 0.317172 +v 0.054291 -0.299900 0.316807 +v 0.046946 -0.301775 0.318608 +v 0.049726 -0.301421 0.318433 +v 0.047248 -0.303147 0.319384 +v 0.050023 -0.302767 0.319193 +v 0.059202 -0.298092 0.311231 +v 0.060585 -0.298811 0.310749 +v 0.060424 -0.298082 0.308931 +v 0.059033 -0.297329 0.309346 +v 0.059373 -0.298870 0.312904 +v 0.060746 -0.299540 0.312341 +v 0.056125 -0.298954 0.315226 +v 0.057958 -0.299243 0.314735 +v 0.056350 -0.299976 0.316337 +v 0.058166 -0.300187 0.315763 +v 0.061733 -0.299698 0.310203 +v 0.061581 -0.299007 0.308461 +v 0.061882 -0.300371 0.311704 +v 0.059552 -0.299681 0.314154 +v 0.060906 -0.300268 0.313483 +v 0.059740 -0.300534 0.315085 +v 0.061071 -0.301016 0.314302 +v 0.062021 -0.301006 0.312724 +v 0.062897 -0.301892 0.311874 +v 0.062160 -0.301633 0.313415 +v 0.063006 -0.302386 0.312423 +v 0.063534 -0.302928 0.310936 +v 0.065199 -0.303470 0.310199 +v 0.063610 -0.303274 0.311328 +v 0.065250 -0.303699 0.310467 +v 0.059939 -0.301440 0.315801 +v 0.061244 -0.301802 0.314924 +v 0.058388 -0.301197 0.316561 +v 0.058626 -0.302277 0.317165 +v 0.060153 -0.302412 0.316340 +v 0.061431 -0.302649 0.315389 +v 0.056592 -0.301074 0.317205 +v 0.054549 -0.301070 0.317731 +v 0.054824 -0.302317 0.318433 +v 0.056850 -0.302246 0.317862 +v 0.060385 -0.303461 0.316740 +v 0.061635 -0.303578 0.315739 +v 0.058881 -0.303431 0.317608 +v 0.059150 -0.304653 0.317911 +v 0.060633 -0.304588 0.317016 +v 0.061859 -0.304595 0.315982 +v 0.057123 -0.303488 0.318343 +v 0.055113 -0.303631 0.318944 +v 0.055415 -0.305000 0.319289 +v 0.057411 -0.304790 0.318669 +v 0.062633 -0.303781 0.314603 +v 0.063377 -0.304071 0.313334 +v 0.063236 -0.303431 0.313107 +v 0.062458 -0.302989 0.314312 +v 0.062830 -0.304674 0.314811 +v 0.063544 -0.304825 0.313502 +v 0.063051 -0.305679 0.314941 +v 0.063739 -0.305712 0.313610 +v 0.062104 -0.305706 0.316131 +v 0.062366 -0.306896 0.316194 +v 0.063294 -0.306782 0.314996 +v 0.063961 -0.306718 0.313656 +v 0.060898 -0.305793 0.317182 +v 0.059433 -0.305939 0.318092 +v 0.059727 -0.307271 0.318168 +v 0.061177 -0.307059 0.317252 +v 0.063555 -0.307968 0.314980 +v 0.062642 -0.308148 0.316180 +v 0.062926 -0.309434 0.316107 +v 0.063828 -0.309207 0.314908 +v 0.064206 -0.307830 0.313638 +v 0.064467 -0.309015 0.313569 +v 0.057709 -0.306145 0.318863 +v 0.055726 -0.306410 0.319493 +v 0.056041 -0.307844 0.319578 +v 0.058015 -0.307533 0.318944 +v 0.061466 -0.308369 0.317239 +v 0.060027 -0.308632 0.318157 +v 0.060327 -0.309998 0.318082 +v 0.061759 -0.309698 0.317165 +v 0.058324 -0.308937 0.318934 +v 0.056359 -0.309283 0.319570 +v 0.056672 -0.310705 0.319493 +v 0.058632 -0.310333 0.318858 +v 0.053483 -0.306735 0.319983 +v 0.050982 -0.307119 0.320333 +v 0.051311 -0.308614 0.320424 +v 0.053807 -0.308204 0.320072 +v 0.053163 -0.305281 0.319772 +v 0.050654 -0.305634 0.320116 +v 0.054130 -0.309671 0.320064 +v 0.051638 -0.310100 0.320417 +v 0.051959 -0.311556 0.320339 +v 0.054448 -0.311113 0.319986 +v 0.058933 -0.311700 0.318740 +v 0.060624 -0.311344 0.317966 +v 0.056977 -0.312089 0.319374 +v 0.059061 -0.321549 0.318231 +v 0.061015 -0.321149 0.317598 +v 0.062703 -0.320779 0.316825 +v 0.052850 -0.303861 0.319412 +v 0.050333 -0.304178 0.319745 +v 0.052548 -0.302491 0.318876 +v 0.062050 -0.311020 0.317050 +v 0.063211 -0.310728 0.315994 +v 0.064125 -0.320439 0.315911 +v 0.065282 -0.320128 0.314857 +v 0.064106 -0.310468 0.314797 +v 0.064737 -0.310240 0.313459 +v 0.066173 -0.319847 0.313662 +v 0.066798 -0.319595 0.312326 +v 0.054755 -0.312510 0.319867 +v 0.052269 -0.312963 0.320219 +v 0.054357 -0.322438 0.319074 +v 0.056842 -0.321979 0.318723 +v 0.066664 -0.346792 0.314449 +v 0.068350 -0.346411 0.313677 +v 0.064713 -0.347200 0.315080 +v 0.071957 -0.380081 0.310835 +v 0.073907 -0.379665 0.310204 +v 0.075591 -0.379276 0.309433 +v 0.062495 -0.347636 0.315572 +v 0.060011 -0.348100 0.315922 +v 0.067257 -0.380991 0.311676 +v 0.069740 -0.380523 0.311325 +v 0.069770 -0.346059 0.312764 +v 0.070923 -0.345734 0.311711 +v 0.077008 -0.378913 0.308522 +v 0.078159 -0.378576 0.307471 +v 0.065102 -0.310045 0.311981 +v 0.066564 -0.309616 0.310819 +v 0.066308 -0.308462 0.310924 +v 0.064841 -0.308859 0.312088 +v 0.067157 -0.319373 0.310850 +v 0.068633 -0.318920 0.309691 +v 0.064593 -0.307733 0.312156 +v 0.066068 -0.307383 0.310991 +v 0.065853 -0.306418 0.311013 +v 0.064366 -0.306703 0.312176 +v 0.071811 -0.345437 0.310518 +v 0.072432 -0.345167 0.309185 +v 0.079043 -0.378265 0.306279 +v 0.079661 -0.377980 0.304948 +v 0.085894 -0.409358 0.301859 +v 0.086508 -0.409057 0.300529 +v 0.085013 -0.409684 0.303048 +v 0.091494 -0.439103 0.298457 +v 0.092372 -0.438761 0.297271 +v 0.092982 -0.438442 0.295945 +v 0.083865 -0.410034 0.304097 +v 0.082450 -0.410409 0.305006 +v 0.088937 -0.439854 0.300412 +v 0.090350 -0.439467 0.299505 +v 0.080768 -0.410807 0.305776 +v 0.078820 -0.411231 0.306405 +v 0.085311 -0.440695 0.301808 +v 0.087258 -0.440263 0.301180 +v 0.096472 -0.467257 0.294760 +v 0.097614 -0.466878 0.293716 +v 0.095063 -0.467656 0.295665 +v 0.100836 -0.493861 0.290782 +v 0.102243 -0.493448 0.289879 +v 0.103381 -0.493053 0.288838 +v 0.076605 -0.411679 0.306895 +v 0.074122 -0.412151 0.307245 +v 0.080616 -0.441626 0.302646 +v 0.083098 -0.441149 0.302297 +v 0.093386 -0.468076 0.296431 +v 0.091441 -0.468517 0.297058 +v 0.097219 -0.494743 0.292171 +v 0.099162 -0.494293 0.291546 +v 0.089229 -0.468979 0.297545 +v 0.086749 -0.469460 0.297894 +v 0.092530 -0.495698 0.293004 +v 0.095009 -0.495211 0.292657 +v 0.071373 -0.412648 0.307455 +v 0.066856 -0.413428 0.307560 +v 0.072986 -0.442970 0.302960 +v 0.077868 -0.442126 0.302855 +v 0.064507 -0.381485 0.311886 +v 0.060376 -0.382199 0.311991 +v 0.084001 -0.469963 0.298102 +v 0.078774 -0.470867 0.298207 +v 0.084231 -0.497164 0.293316 +v 0.089783 -0.496204 0.293212 +v 0.100446 -0.519892 0.287646 +v 0.102655 -0.519415 0.287161 +v 0.097969 -0.520385 0.287992 +v 0.103076 -0.543564 0.282873 +v 0.105552 -0.543065 0.282528 +v 0.107759 -0.542581 0.282046 +v 0.057260 -0.348592 0.316133 +v 0.053536 -0.349235 0.316238 +v 0.051606 -0.322927 0.319285 +v 0.048199 -0.323515 0.319390 +v 0.104596 -0.518955 0.286538 +v 0.106268 -0.518512 0.285777 +v 0.109697 -0.542111 0.281425 +v 0.111366 -0.541654 0.280667 +v 0.049517 -0.313448 0.320430 +v 0.046227 -0.314014 0.320536 +v 0.049206 -0.312036 0.320550 +v 0.045933 -0.312596 0.320656 +v 0.059069 -0.414753 0.307595 +v 0.064103 -0.444480 0.302995 +v 0.053746 -0.383326 0.312026 +v 0.043097 -0.384657 0.312026 +v 0.046871 -0.416307 0.307595 +v 0.050441 -0.446245 0.302995 +v 0.048884 -0.310571 0.320629 +v 0.045628 -0.311125 0.320735 +v 0.048554 -0.309074 0.320636 +v 0.045315 -0.309618 0.320742 +v 0.048128 -0.350156 0.316273 +v 0.043745 -0.324273 0.319426 +v 0.036005 -0.325185 0.319426 +v 0.039113 -0.351251 0.316273 +v 0.042126 -0.314712 0.320571 +v 0.041884 -0.313284 0.320692 +v 0.034686 -0.314118 0.320692 +v 0.034857 -0.315556 0.320571 +v 0.048221 -0.307563 0.320543 +v 0.045000 -0.308097 0.320648 +v 0.047890 -0.306059 0.320323 +v 0.044685 -0.306581 0.320426 +v 0.041633 -0.311802 0.320770 +v 0.041376 -0.310284 0.320777 +v 0.034325 -0.311096 0.320777 +v 0.034508 -0.312625 0.320770 +v 0.022067 -0.316560 0.320571 +v 0.022741 -0.326234 0.319426 +v 0.021966 -0.315115 0.320692 +v 0.006477 -0.315814 0.320692 +v 0.006507 -0.317261 0.320571 +v 0.006706 -0.326957 0.319426 +v 0.021861 -0.313615 0.320770 +v 0.021754 -0.312079 0.320777 +v 0.006415 -0.312771 0.320777 +v 0.006447 -0.314310 0.320770 +v 0.041116 -0.308751 0.320684 +v 0.040857 -0.307222 0.320461 +v 0.033958 -0.308012 0.320461 +v 0.034141 -0.309552 0.320684 +v 0.024566 -0.352421 0.316273 +v 0.026906 -0.385982 0.312026 +v 0.007244 -0.353202 0.316273 +v 0.007934 -0.386838 0.312026 +v 0.021646 -0.310528 0.320684 +v 0.021538 -0.308981 0.320461 +v 0.006351 -0.309666 0.320461 +v 0.006383 -0.311216 0.320684 +v 0.021432 -0.307458 0.320079 +v 0.021329 -0.305978 0.319510 +v 0.006320 -0.308139 0.320079 +v 0.033777 -0.306496 0.320079 +v 0.047564 -0.304581 0.319946 +v 0.044375 -0.305088 0.320046 +v 0.052261 -0.301186 0.318140 +v 0.040602 -0.305716 0.320079 +v 0.021230 -0.304562 0.318725 +v -0.008807 -0.308078 0.320079 +v -0.008851 -0.309604 0.320461 +v -0.023913 -0.307275 0.320079 +v -0.024032 -0.308797 0.320461 +v -0.008895 -0.311155 0.320684 +v -0.008940 -0.312709 0.320777 +v -0.024152 -0.310344 0.320684 +v -0.024273 -0.311894 0.320777 +v -0.038962 -0.305731 0.320079 +v -0.039155 -0.307246 0.320461 +v -0.053916 -0.303451 0.320079 +v -0.054184 -0.304955 0.320461 +v -0.008984 -0.314248 0.320770 +v -0.009027 -0.315751 0.320692 +v -0.024392 -0.313429 0.320770 +v -0.024509 -0.314928 0.320692 +v -0.039351 -0.308784 0.320684 +v -0.039548 -0.310327 0.320777 +v -0.054455 -0.306482 0.320684 +v -0.054727 -0.308013 0.320777 +v -0.068741 -0.300440 0.320079 +v -0.069082 -0.301929 0.320461 +v -0.083400 -0.296705 0.320079 +v -0.083813 -0.298175 0.320461 +v -0.009068 -0.317198 0.320571 +v -0.009345 -0.326892 0.319426 +v -0.024621 -0.316372 0.320571 +v -0.025374 -0.326040 0.319426 +v -0.039742 -0.311854 0.320770 +v -0.039932 -0.313346 0.320692 +v -0.054996 -0.309528 0.320770 +v -0.055259 -0.311009 0.320692 +v -0.069428 -0.303440 0.320684 +v -0.069774 -0.304956 0.320777 +v -0.084233 -0.299669 0.320684 +v -0.084654 -0.301166 0.320777 +v -0.097858 -0.292255 0.320079 +v -0.098343 -0.293703 0.320461 +v -0.112081 -0.287102 0.320079 +v -0.112636 -0.288524 0.320461 +v -0.126033 -0.281256 0.320079 +v -0.126658 -0.282650 0.320461 +v -0.098836 -0.295174 0.320684 +v -0.099329 -0.296649 0.320777 +v -0.113200 -0.289969 0.320684 +v -0.113766 -0.291418 0.320777 +v -0.070118 -0.306457 0.320770 +v -0.070453 -0.307923 0.320692 +v -0.085070 -0.302647 0.320770 +v -0.085477 -0.304095 0.320692 +v -0.127292 -0.284065 0.320684 +v -0.127928 -0.285484 0.320777 +v -0.099818 -0.298108 0.320770 +v -0.100296 -0.299534 0.320692 +v -0.114325 -0.292852 0.320770 +v -0.114872 -0.294253 0.320692 +v -0.128557 -0.286889 0.320770 +v -0.129172 -0.288261 0.320692 +v -0.142479 -0.280236 0.320770 +v -0.143161 -0.281576 0.320692 +v -0.156058 -0.272907 0.320770 +v -0.156805 -0.274212 0.320692 +v -0.100755 -0.300908 0.320571 +v -0.103834 -0.310103 0.319426 +v -0.088493 -0.314825 0.319426 +v -0.085869 -0.305489 0.320571 +v -0.115399 -0.295602 0.320571 +v -0.118925 -0.304635 0.319426 +v -0.157524 -0.275469 0.320571 +v -0.162337 -0.283887 0.319426 +v -0.148212 -0.291511 0.319426 +v -0.143817 -0.282867 0.320571 +v -0.129764 -0.289583 0.320571 +v -0.133730 -0.298432 0.319426 +v -0.175368 -0.306676 0.316273 +v -0.192069 -0.335881 0.312026 +v -0.175357 -0.344901 0.312026 +v -0.160109 -0.314911 0.316273 +v -0.187960 -0.299296 0.316273 +v -0.206073 -0.327647 0.312026 +v -0.144464 -0.322388 0.316273 +v -0.158222 -0.353089 0.312026 +v -0.140706 -0.360428 0.312026 +v -0.128472 -0.329088 0.316273 +v -0.112169 -0.334995 0.316273 +v -0.122851 -0.366898 0.312026 +v -0.104701 -0.372484 0.312026 +v -0.095597 -0.340096 0.316273 +v -0.070776 -0.309334 0.320571 +v -0.072939 -0.318787 0.319426 +v -0.057209 -0.321983 0.319426 +v -0.055513 -0.312435 0.320571 +v -0.078794 -0.344377 0.316273 +v -0.086298 -0.377172 0.312026 +v -0.067687 -0.380953 0.312026 +v -0.061801 -0.347829 0.316273 +v -0.040115 -0.314782 0.320571 +v -0.041341 -0.324402 0.319426 +v -0.044660 -0.350442 0.316273 +v -0.048913 -0.383815 0.312026 +v -0.030021 -0.385753 0.312026 +v -0.027411 -0.352211 0.316273 +v -0.010095 -0.353132 0.316273 +v -0.011057 -0.386761 0.312026 +v -0.052942 -0.415433 0.307595 +v -0.056753 -0.445341 0.302995 +v -0.034833 -0.447590 0.302995 +v -0.032494 -0.417531 0.307595 +v -0.073263 -0.412335 0.307595 +v -0.078537 -0.442021 0.302995 +v 0.029122 -0.417779 0.307595 +v 0.031219 -0.447856 0.302995 +v 0.008588 -0.418705 0.307595 +v 0.009206 -0.448849 0.302995 +v -0.011967 -0.418622 0.307595 +v -0.012829 -0.448760 0.302995 +v 0.068858 -0.472552 0.298242 +v 0.073340 -0.499016 0.293351 +v 0.053812 -0.474518 0.298242 +v 0.056990 -0.501169 0.293351 +v 0.033199 -0.476260 0.298242 +v 0.035065 -0.503035 0.293351 +v 0.009790 -0.477316 0.298242 +v 0.010340 -0.504150 0.293351 +v -0.013643 -0.477221 0.298242 +v -0.014410 -0.504049 0.293351 +v -0.037042 -0.475977 0.298242 +v -0.039125 -0.502736 0.293351 +v -0.093407 -0.408243 0.307595 +v -0.100131 -0.437634 0.302995 +v -0.113326 -0.403169 0.307595 +v -0.121484 -0.432194 0.302995 +v -0.060353 -0.473586 0.298242 +v -0.063746 -0.500210 0.293351 +v -0.083518 -0.470054 0.298242 +v -0.088213 -0.496480 0.293351 +v -0.132972 -0.397122 0.307595 +v -0.142545 -0.425712 0.302995 +v -0.152297 -0.390119 0.307595 +v -0.163262 -0.418206 0.302995 +v -0.106482 -0.465389 0.298242 +v -0.112468 -0.491554 0.293351 +v -0.129189 -0.459604 0.298242 +v -0.136452 -0.485443 0.293351 +v -0.171256 -0.382176 0.307595 +v -0.183585 -0.409691 0.302995 +v -0.189802 -0.373313 0.307595 +v -0.203467 -0.400189 0.302995 +v -0.151585 -0.452711 0.298242 +v -0.160107 -0.478163 0.293351 +v -0.173616 -0.444729 0.298242 +v -0.183377 -0.469731 0.293351 +v -0.066938 -0.525262 0.288338 +v -0.069936 -0.548783 0.283218 +v -0.042924 -0.551554 0.283218 +v -0.041084 -0.527914 0.288338 +v -0.092631 -0.521344 0.288338 +v -0.096779 -0.544692 0.283218 +v -0.118101 -0.516171 0.288338 +v -0.123389 -0.539286 0.283218 +v -0.143286 -0.509754 0.288338 +v -0.149703 -0.532583 0.283218 +v -0.015131 -0.529294 0.288338 +v -0.015809 -0.552997 0.283218 +v 0.011344 -0.553106 0.283218 +v 0.010858 -0.529399 0.288338 +v -0.195229 -0.435674 0.298242 +v -0.206204 -0.460167 0.293351 +v -0.216371 -0.425570 0.298242 +v -0.228535 -0.449495 0.293351 +v 0.036821 -0.528228 0.288338 +v 0.038470 -0.551883 0.283218 +v 0.062788 -0.549790 0.283218 +v 0.059980 -0.526245 0.288338 +v -0.207891 -0.363550 0.307595 +v -0.222858 -0.389723 0.302995 +v -0.223234 -0.354507 0.307595 +v -0.239467 -0.379914 0.302995 +v -0.195601 -0.294390 0.316273 +v -0.215084 -0.321818 0.312026 +v -0.233542 -0.347803 0.307595 +v -0.251002 -0.372383 0.302995 +v -0.236992 -0.414440 0.298242 +v -0.250316 -0.437740 0.293351 +v -0.254797 -0.403907 0.298242 +v -0.269248 -0.426526 0.293351 +v -0.280002 -0.386679 0.298103 +v -0.275688 -0.389765 0.298207 +v -0.296619 -0.407795 0.293212 +v -0.292037 -0.411074 0.293316 +v -0.267491 -0.395595 0.298242 +v -0.283034 -0.417477 0.293351 +v -0.312253 -0.427663 0.288200 +v -0.307420 -0.431123 0.288303 +v -0.297659 -0.438065 0.288338 +v -0.282844 -0.447807 0.288338 +v -0.262852 -0.459662 0.288338 +v -0.274623 -0.480247 0.283218 +v -0.250728 -0.493144 0.283218 +v -0.239981 -0.472007 0.288338 +v -0.285652 -0.499534 0.278006 +v -0.260797 -0.512949 0.278006 +v -0.216531 -0.483213 0.288338 +v -0.226228 -0.504852 0.283218 +v -0.201184 -0.515345 0.283218 +v -0.192561 -0.493256 0.288338 +v -0.235314 -0.525127 0.278006 +v -0.243806 -0.544079 0.272718 +v -0.216816 -0.555387 0.272718 +v -0.209264 -0.536041 0.278006 +v -0.251725 -0.561750 0.267369 +v -0.259088 -0.578182 0.261974 +v -0.230406 -0.590199 0.261974 +v -0.223858 -0.573426 0.267369 +v -0.168126 -0.502110 0.288338 +v -0.175655 -0.524595 0.283218 +v -0.182709 -0.545663 0.278006 +v -0.189303 -0.565356 0.272718 +v -0.161335 -0.573964 0.272718 +v -0.155715 -0.553971 0.278006 +v -0.128345 -0.560944 0.278006 +v -0.132977 -0.581189 0.272718 +v -0.104299 -0.587014 0.272718 +v -0.100666 -0.566566 0.278006 +v -0.195452 -0.583719 0.267369 +v -0.201169 -0.600793 0.261974 +v -0.171447 -0.609941 0.261974 +v -0.166575 -0.592606 0.267369 +v -0.137296 -0.600066 0.267369 +v -0.141312 -0.617618 0.261974 +v -0.110837 -0.623809 0.261974 +v -0.107687 -0.606080 0.267369 +v -0.072745 -0.570823 0.278006 +v -0.075370 -0.591424 0.272718 +v -0.046259 -0.594411 0.272718 +v -0.044648 -0.573705 0.278006 +v -0.077818 -0.610633 0.267369 +v -0.080094 -0.628495 0.261974 +v -0.049159 -0.631669 0.261974 +v -0.047762 -0.613717 0.267369 +v -0.016444 -0.575204 0.278006 +v -0.017037 -0.595964 0.272718 +v 0.012226 -0.596083 0.272718 +v 0.011800 -0.575319 0.278006 +v -0.017591 -0.615321 0.267369 +v -0.018105 -0.633319 0.261974 +v 0.012992 -0.633446 0.261974 +v 0.012623 -0.615443 0.267369 +v 0.040015 -0.574046 0.278006 +v 0.041460 -0.594764 0.272718 +v 0.067878 -0.592474 0.272718 +v 0.065419 -0.571852 0.278006 +v 0.042806 -0.614082 0.267369 +v 0.044058 -0.632044 0.261974 +v 0.072302 -0.629582 0.261974 +v 0.070170 -0.611702 0.267369 +v -0.018582 -0.650006 0.256549 +v -0.019051 -0.666421 0.250663 +v 0.013671 -0.666553 0.250663 +v 0.013335 -0.650136 0.256549 +v -0.050454 -0.648312 0.256549 +v -0.051728 -0.664683 0.250663 +v 0.045219 -0.648698 0.256549 +v 0.046361 -0.665079 0.250663 +v 0.076223 -0.662463 0.250663 +v 0.074279 -0.646158 0.256549 +v 0.091928 -0.608769 0.267369 +v 0.088694 -0.589676 0.272718 +v 0.094934 -0.626522 0.261974 +v 0.110523 -0.623871 0.261940 +v 0.106863 -0.606230 0.267335 +v 0.102926 -0.587257 0.272684 +v -0.082205 -0.645055 0.256549 +v -0.084281 -0.661344 0.250663 +v -0.113757 -0.640245 0.256549 +v -0.116630 -0.656412 0.250663 +v 0.085226 -0.569200 0.278006 +v 0.081516 -0.547294 0.283218 +v 0.098703 -0.566909 0.277972 +v 0.094186 -0.545140 0.283183 +v -0.145035 -0.633891 0.256549 +v -0.148698 -0.649899 0.250663 +v -0.175964 -0.626012 0.256549 +v -0.180408 -0.641820 0.250663 +v 0.077557 -0.523914 0.288338 +v 0.089365 -0.521908 0.288303 +v 0.095222 -0.520894 0.288200 +v 0.100330 -0.544077 0.283080 +v 0.105116 -0.565797 0.277869 +v 0.107860 -0.565281 0.277663 +v 0.109589 -0.586101 0.272581 +v 0.112333 -0.585581 0.272376 +v 0.113760 -0.605032 0.267233 +v 0.116503 -0.604507 0.267029 +v 0.117638 -0.622634 0.261839 +v 0.110335 -0.564776 0.277319 +v 0.112541 -0.564283 0.276839 +v 0.114806 -0.585069 0.272035 +v 0.118975 -0.603989 0.266690 +v 0.114476 -0.563801 0.276221 +v 0.116142 -0.563331 0.275466 +v 0.117539 -0.562872 0.274574 +v 0.112766 -0.541211 0.279770 +v 0.107671 -0.518084 0.284877 +v 0.108805 -0.517673 0.283839 +v 0.109671 -0.517278 0.282663 +v 0.104251 -0.492677 0.287657 +v 0.098488 -0.466519 0.292532 +v 0.099094 -0.466181 0.291209 +v 0.086855 -0.408780 0.299060 +v 0.088492 -0.408244 0.297906 +v 0.081593 -0.377214 0.302320 +v 0.080013 -0.377722 0.303476 +v 0.093325 -0.438145 0.294479 +v 0.095014 -0.437582 0.293327 +v 0.072787 -0.344926 0.307711 +v 0.074308 -0.344446 0.306553 +v 0.121233 -0.638953 0.256415 +v 0.113917 -0.640227 0.256515 +v 0.117255 -0.656315 0.250630 +v 0.124770 -0.655005 0.250531 +v 0.097722 -0.642982 0.256549 +v 0.100464 -0.659172 0.250663 +v 0.128472 -0.671806 0.243757 +v 0.120750 -0.673155 0.243855 +v 0.103334 -0.676118 0.243887 +v 0.106106 -0.692484 0.236703 +v 0.078259 -0.679530 0.243887 +v 0.080224 -0.696012 0.236703 +v 0.108553 -0.706934 0.229591 +v 0.081959 -0.710565 0.229591 +v 0.047556 -0.682225 0.243887 +v 0.048711 -0.698784 0.236703 +v 0.014024 -0.683737 0.243887 +v 0.014364 -0.700333 0.236703 +v 0.049730 -0.713404 0.229591 +v 0.050621 -0.726191 0.222589 +v 0.014665 -0.714985 0.229591 +v 0.014928 -0.727801 0.222589 +v -0.019543 -0.683601 0.243887 +v -0.020017 -0.700194 0.236703 +v -0.053062 -0.681819 0.243887 +v -0.054350 -0.698368 0.236703 +v 0.051392 -0.737253 0.215731 +v 0.052050 -0.746697 0.209055 +v 0.015155 -0.738887 0.215731 +v 0.015349 -0.748352 0.209055 +v -0.020436 -0.714843 0.229591 +v -0.020802 -0.727656 0.222589 +v -0.055487 -0.712979 0.229591 +v -0.056481 -0.725759 0.222589 +v -0.086453 -0.678394 0.243887 +v -0.088552 -0.694860 0.236703 +v -0.119636 -0.673335 0.243887 +v -0.122540 -0.689678 0.236703 +v 0.052603 -0.754630 0.202597 +v 0.053059 -0.761160 0.196391 +v 0.015512 -0.756303 0.202597 +v 0.015646 -0.762847 0.196391 +v -0.021119 -0.738740 0.215731 +v -0.021389 -0.748204 0.209055 +v -0.057342 -0.736815 0.215731 +v -0.058076 -0.746253 0.209055 +v -0.090404 -0.709397 0.229591 +v -0.092025 -0.722113 0.222589 +v -0.125104 -0.704108 0.229591 +v -0.127346 -0.716728 0.222589 +v 0.053423 -0.766392 0.190475 +v 0.015754 -0.768091 0.190476 +v -0.021617 -0.756153 0.202597 +v -0.021804 -0.762695 0.196391 +v -0.058693 -0.754182 0.202597 +v -0.021954 -0.767938 0.190476 +v -0.095629 -0.750393 0.202597 +v -0.094623 -0.742504 0.209055 +v -0.093427 -0.733113 0.215731 +v -0.129286 -0.727646 0.215731 +v -0.164834 -0.720426 0.215731 +v -0.162361 -0.709616 0.222589 +v -0.227064 -0.678130 0.229591 +v -0.222411 -0.664233 0.236703 +v -0.193516 -0.688455 0.229591 +v -0.189551 -0.674346 0.236703 +v -0.159502 -0.697120 0.229591 +v -0.156234 -0.682834 0.236703 +v -0.217140 -0.648493 0.243887 +v -0.211683 -0.632194 0.250663 +v -0.185059 -0.658366 0.243887 +v -0.265915 -0.593416 0.256549 +v -0.236477 -0.605750 0.256549 +v -0.152531 -0.666653 0.243887 +v -0.206469 -0.616623 0.256549 +v 0.062303 -0.302283 0.313930 +v 0.063116 -0.302884 0.312819 +v 0.063683 -0.303604 0.311591 +v 0.065293 -0.303897 0.310626 +v 0.063765 -0.303976 0.311775 +v 0.065346 -0.304132 0.310729 +v 0.063869 -0.304448 0.311932 +v 0.065421 -0.304472 0.310830 +v 0.064001 -0.305048 0.312055 +v 0.065527 -0.304950 0.310918 +v 0.064168 -0.305804 0.312139 +v 0.065672 -0.305603 0.310984 +v -0.189366 -0.245706 0.311591 +v -0.188542 -0.245304 0.312819 +v -0.190944 -0.245270 0.310626 +v -0.187549 -0.245117 0.313930 +v 0.162246 -0.750965 0.176068 +v 0.164343 -0.749420 0.175583 +v 0.162590 -0.752526 0.172222 +v 0.164678 -0.750929 0.171870 +v 0.162881 -0.753844 0.162776 +v 0.164958 -0.752187 0.162729 +v 0.164935 -0.752083 0.165551 +v 0.162856 -0.753733 0.165666 +v 0.162806 -0.755358 0.162836 +v 0.162803 -0.755347 0.160000 +v 0.162878 -0.753830 0.160000 +v 0.164955 -0.752171 0.160000 +v 0.162438 -0.756779 0.162890 +v 0.161778 -0.758107 0.162939 +v 0.161776 -0.758099 0.160000 +v 0.162436 -0.756770 0.160000 +v 0.160825 -0.759341 0.162982 +v 0.159579 -0.760481 0.163019 +v 0.159578 -0.760477 0.160000 +v 0.160824 -0.759335 0.160000 +v 0.158040 -0.761529 0.163050 +v 0.156208 -0.762482 0.163076 +v 0.156208 -0.762480 0.160000 +v 0.158039 -0.761526 0.160000 +v 0.154084 -0.763343 0.163096 +v 0.151667 -0.764110 0.163111 +v 0.151666 -0.764109 0.160000 +v 0.154084 -0.763342 0.160000 +v 0.148957 -0.764783 0.163119 +v 0.140096 -0.766391 0.163123 +v 0.140096 -0.766391 0.160000 +v 0.148956 -0.764783 0.160000 +v 0.119228 -0.769961 0.163125 +v 0.119228 -0.769961 0.160000 +v 0.089528 -0.774040 0.163125 +v 0.089528 -0.774040 0.160000 +v 0.054175 -0.777174 0.163125 +v 0.054175 -0.777174 0.160000 +v 0.015976 -0.778896 0.163125 +v 0.015975 -0.778896 0.160000 +v -0.022262 -0.778741 0.163125 +v -0.022262 -0.778741 0.160000 +v -0.060447 -0.776712 0.163125 +v -0.060447 -0.776712 0.160000 +v -0.098485 -0.772810 0.163125 +v -0.098485 -0.772809 0.160000 +v -0.136287 -0.767047 0.163125 +v -0.136287 -0.767047 0.160000 +v -0.173760 -0.759435 0.163125 +v -0.173760 -0.759435 0.160000 +v -0.210814 -0.749995 0.163125 +v -0.210814 -0.749995 0.160000 +v -0.247361 -0.738747 0.163125 +v -0.247361 -0.738747 0.160000 +v -0.283312 -0.725720 0.163125 +v -0.283312 -0.725720 0.160000 +v -0.318580 -0.710944 0.163125 +v -0.318580 -0.710944 0.160000 +v -0.353081 -0.694456 0.163125 +v -0.353081 -0.694456 0.160000 +v -0.386730 -0.676294 0.163125 +v -0.386730 -0.676294 0.160000 +v -0.417204 -0.658099 0.163125 +v -0.417204 -0.658099 0.160000 +v -0.442175 -0.641512 0.163125 +v -0.442175 -0.641512 0.160000 +v -0.459414 -0.629222 0.163123 +v -0.459414 -0.629222 0.160000 +v -0.466694 -0.623922 0.163119 +v -0.468842 -0.622137 0.163111 +v -0.468841 -0.622136 0.160000 +v -0.466694 -0.623921 0.160000 +v -0.470685 -0.620395 0.163096 +v -0.472224 -0.618696 0.163076 +v -0.472223 -0.618695 0.160000 +v -0.470684 -0.620394 0.160000 +v -0.473459 -0.617041 0.163051 +v -0.474389 -0.615429 0.163019 +v -0.474387 -0.615425 0.160000 +v -0.473457 -0.617038 0.160000 +v -0.475015 -0.613860 0.162982 +v -0.475337 -0.612334 0.162939 +v -0.475332 -0.612328 0.160000 +v -0.475012 -0.613855 0.160000 +v -0.475354 -0.610851 0.162890 +v -0.475068 -0.609412 0.162836 +v -0.475060 -0.609403 0.160000 +v -0.475349 -0.610844 0.160000 +v -0.475271 -0.610747 0.165944 +v -0.474991 -0.609315 0.165812 +v -0.474476 -0.608016 0.162776 +v -0.475626 -0.605620 0.162729 +v -0.475616 -0.605608 0.160000 +v -0.474468 -0.608005 0.160000 +v -0.474406 -0.607926 0.165666 +v -0.475560 -0.605537 0.165551 +v -0.474177 -0.607636 0.168785 +v -0.474747 -0.609005 0.169068 +v -0.475343 -0.605262 0.168562 +v -0.475015 -0.610420 0.169324 +v 0.099432 -0.465864 0.289747 +v 0.101170 -0.465272 0.288598 +v 0.162776 -0.753371 0.168785 +v 0.164859 -0.751740 0.168562 +v -0.468382 -0.617468 0.179363 +v 0.692888 -0.343740 0.169324 +v 0.692033 -0.342581 0.169068 +v 0.691216 -0.342182 0.172670 +v 0.692036 -0.343323 0.173076 +v 0.693491 -0.345071 0.169553 +v 0.692607 -0.344638 0.173439 +v 0.693883 -0.345262 0.166062 +v 0.693263 -0.343923 0.165944 +v 0.692387 -0.342755 0.165812 +v 0.275746 -0.138425 0.308918 +v 0.277311 -0.137587 0.308388 +v 0.276791 -0.137334 0.306899 +v 0.275193 -0.138154 0.307355 +v 0.274369 -0.138195 0.309592 +v 0.273772 -0.137903 0.307936 +v 0.274930 -0.138469 0.310991 +v 0.276243 -0.138668 0.310203 +v 0.277757 -0.137805 0.309585 +v 0.184570 -0.753302 0.169756 +v 0.183181 -0.752627 0.169553 +v 0.183282 -0.753052 0.166062 +v 0.184675 -0.753744 0.166166 +v 0.186183 -0.753768 0.169931 +v 0.186291 -0.754224 0.166257 +v 0.185943 -0.752753 0.174037 +v 0.184337 -0.752314 0.173759 +v 0.182955 -0.751670 0.173439 +v 0.074927 -0.303347 0.312139 +v 0.075273 -0.303078 0.313610 +v 0.075064 -0.302194 0.313502 +v 0.074749 -0.302594 0.312055 +v 0.073484 -0.303819 0.310984 +v 0.073331 -0.303168 0.310918 +v 0.073675 -0.304632 0.311013 +v 0.075139 -0.304243 0.312176 +v 0.075510 -0.304081 0.313656 +v 0.074024 -0.299529 0.308918 +v 0.074105 -0.298135 0.309592 +v 0.073952 -0.297489 0.307936 +v 0.073883 -0.298930 0.307355 +v 0.072796 -0.300884 0.308388 +v 0.072663 -0.300321 0.306899 +v 0.072909 -0.301368 0.309585 +v 0.074152 -0.300067 0.310203 +v 0.074248 -0.298743 0.310991 +v 0.693841 -0.346574 0.169756 +v 0.693940 -0.348250 0.169931 +v 0.694361 -0.348456 0.166257 +v 0.694249 -0.346774 0.166166 +v 0.692930 -0.346128 0.173759 +v 0.693003 -0.347792 0.174037 +v 0.693785 -0.350098 0.170079 +v 0.693378 -0.352119 0.170200 +v 0.693820 -0.352335 0.166395 +v 0.694218 -0.350310 0.166333 +v 0.692828 -0.349630 0.174271 +v 0.692404 -0.351642 0.174463 +v 0.691286 -0.345323 0.178186 +v 0.691322 -0.346969 0.178568 +v 0.691006 -0.343855 0.177745 +v 0.688567 -0.342661 0.182484 +v 0.688793 -0.344104 0.183038 +v 0.688784 -0.345727 0.183518 +v 0.690484 -0.342563 0.177245 +v 0.689719 -0.341449 0.176686 +v 0.687407 -0.340317 0.181154 +v 0.688105 -0.341399 0.181856 +v 0.692718 -0.354312 0.170295 +v 0.691806 -0.356678 0.170362 +v 0.692262 -0.356900 0.166479 +v 0.693168 -0.354532 0.166444 +v 0.691732 -0.353829 0.174613 +v 0.690811 -0.356190 0.174720 +v 0.684770 -0.339767 0.186936 +v 0.685168 -0.340997 0.187670 +v 0.684143 -0.338720 0.186116 +v 0.679814 -0.336602 0.191516 +v 0.680368 -0.337613 0.192433 +v 0.680701 -0.338811 0.193254 +v 0.683288 -0.337858 0.185209 +v 0.683430 -0.335475 0.184497 +v 0.679242 -0.333434 0.189706 +v 0.679040 -0.335779 0.190502 +v 0.686473 -0.339416 0.180378 +v 0.686555 -0.336997 0.179769 +v 0.673610 -0.333122 0.196200 +v 0.674306 -0.333906 0.197301 +v 0.673869 -0.330816 0.195335 +v 0.667207 -0.327570 0.201327 +v 0.666894 -0.329835 0.202247 +v 0.667515 -0.330583 0.203419 +v 0.658789 -0.325869 0.208589 +v 0.659340 -0.326582 0.209818 +v 0.659150 -0.323644 0.207623 +v 0.649601 -0.318991 0.214173 +v 0.649197 -0.321175 0.215176 +v 0.649682 -0.321856 0.216452 +v 0.674788 -0.334882 0.198297 +v 0.675058 -0.336050 0.199189 +v 0.667930 -0.331526 0.204479 +v 0.668138 -0.332664 0.205428 +v 0.685338 -0.342413 0.188317 +v 0.685279 -0.344012 0.188878 +v 0.680813 -0.340198 0.193978 +v 0.680704 -0.341773 0.194605 +v 0.691115 -0.348792 0.178892 +v 0.690665 -0.350791 0.179157 +v 0.688538 -0.347531 0.183925 +v 0.688057 -0.349515 0.184257 +v 0.689972 -0.352968 0.179363 +v 0.689037 -0.355322 0.179510 +v 0.687339 -0.351680 0.184516 +v 0.686386 -0.354025 0.184701 +v 0.684992 -0.345795 0.189353 +v 0.684477 -0.347763 0.189742 +v 0.680375 -0.343536 0.195136 +v 0.679825 -0.345487 0.195571 +v 0.675114 -0.337409 0.199975 +v 0.674957 -0.338961 0.200657 +v 0.668141 -0.333997 0.206265 +v 0.667937 -0.335526 0.206991 +v 0.690642 -0.359216 0.170403 +v 0.686387 -0.367143 0.170423 +v 0.686843 -0.367373 0.166510 +v 0.691100 -0.359440 0.166500 +v 0.689641 -0.358726 0.174784 +v 0.685389 -0.366639 0.174816 +v 0.687858 -0.357853 0.179598 +v 0.683614 -0.365743 0.179642 +v 0.685197 -0.356551 0.184811 +v 0.680965 -0.364407 0.184867 +v 0.683733 -0.349915 0.190044 +v 0.682761 -0.352251 0.190260 +v 0.679055 -0.347626 0.195909 +v 0.678063 -0.349952 0.196150 +v 0.676201 -0.385674 0.170430 +v 0.676649 -0.385922 0.166514 +v 0.675222 -0.385134 0.174826 +v 0.659970 -0.410840 0.174826 +v 0.660922 -0.411428 0.170430 +v 0.661357 -0.411697 0.166514 +v 0.674586 -0.340703 0.201233 +v 0.674003 -0.342638 0.201705 +v 0.667528 -0.337249 0.207604 +v 0.666912 -0.339168 0.208107 +v 0.659691 -0.327494 0.210931 +v 0.659842 -0.328604 0.211926 +v 0.649974 -0.322739 0.217606 +v 0.650072 -0.323823 0.218639 +v 0.638020 -0.315705 0.221957 +v 0.638463 -0.313564 0.220925 +v 0.625635 -0.307313 0.227835 +v 0.625159 -0.309412 0.228891 +v 0.638444 -0.316357 0.223272 +v 0.625529 -0.310037 0.230236 +v 0.610518 -0.302247 0.235933 +v 0.610838 -0.302848 0.237302 +v 0.611019 -0.300192 0.234858 +v 0.595836 -0.292793 0.241506 +v 0.595312 -0.294806 0.242597 +v 0.595589 -0.295385 0.243985 +v 0.638682 -0.317213 0.224460 +v 0.638731 -0.318274 0.225524 +v 0.625717 -0.310869 0.231452 +v 0.625722 -0.311907 0.232541 +v 0.659795 -0.329913 0.212804 +v 0.659548 -0.331420 0.213565 +v 0.649978 -0.325109 0.219551 +v 0.649690 -0.326596 0.220341 +v 0.673206 -0.344763 0.202072 +v 0.672196 -0.347081 0.202334 +v 0.666090 -0.341281 0.208497 +v 0.665062 -0.343590 0.208776 +v 0.659101 -0.333125 0.214209 +v 0.658455 -0.335029 0.214736 +v 0.649210 -0.328285 0.221009 +v 0.648536 -0.330175 0.221556 +v 0.638594 -0.319538 0.226463 +v 0.638269 -0.321007 0.227276 +v 0.625545 -0.313153 0.233501 +v 0.625186 -0.314605 0.234334 +v 0.610982 -0.303658 0.238541 +v 0.610946 -0.304677 0.239650 +v 0.595693 -0.296176 0.245241 +v 0.595623 -0.297178 0.246365 +v 0.637757 -0.322680 0.227964 +v 0.637057 -0.324558 0.228528 +v 0.624645 -0.316264 0.235038 +v 0.623922 -0.318130 0.235614 +v 0.610735 -0.305905 0.240628 +v 0.610345 -0.307343 0.241475 +v 0.595380 -0.298392 0.247357 +v 0.594964 -0.299816 0.248217 +v 0.581071 -0.289021 0.251067 +v 0.580971 -0.290009 0.252204 +v 0.581002 -0.288247 0.249797 +v 0.566146 -0.280977 0.255164 +v 0.566186 -0.281737 0.256445 +v 0.566060 -0.282712 0.257591 +v 0.580760 -0.287685 0.248393 +v 0.581302 -0.285712 0.247290 +v 0.566494 -0.278496 0.252636 +v 0.565939 -0.280432 0.253748 +v 0.549917 -0.272592 0.259085 +v 0.550095 -0.273123 0.260511 +v 0.550481 -0.270694 0.257964 +v 0.533232 -0.262288 0.263258 +v 0.532660 -0.264147 0.264385 +v 0.532810 -0.264664 0.265819 +v 0.514130 -0.255079 0.269631 +v 0.514256 -0.255585 0.271073 +v 0.514708 -0.253262 0.268498 +v 0.494869 -0.243596 0.273668 +v 0.494289 -0.245370 0.274806 +v 0.494390 -0.245863 0.276254 +v 0.550108 -0.273870 0.261801 +v 0.549959 -0.274832 0.262955 +v 0.532800 -0.265399 0.267117 +v 0.532628 -0.266351 0.268278 +v 0.580703 -0.291209 0.253206 +v 0.580263 -0.292622 0.254075 +v 0.565768 -0.283900 0.258603 +v 0.565309 -0.285303 0.259479 +v 0.473095 -0.234998 0.279894 +v 0.473174 -0.235481 0.281348 +v 0.473675 -0.233269 0.278752 +v 0.451087 -0.222262 0.283734 +v 0.450508 -0.223945 0.284880 +v 0.450566 -0.224418 0.286338 +v 0.514222 -0.256308 0.272377 +v 0.514030 -0.257250 0.273544 +v 0.494335 -0.246576 0.277564 +v 0.494124 -0.247509 0.278736 +v 0.549645 -0.276011 0.263974 +v 0.549168 -0.277405 0.264856 +v 0.532295 -0.267520 0.269303 +v 0.531801 -0.268906 0.270191 +v 0.609778 -0.308989 0.242192 +v 0.609034 -0.310845 0.242779 +v 0.594375 -0.301451 0.248944 +v 0.593612 -0.303298 0.249539 +v 0.579655 -0.294248 0.254811 +v 0.578875 -0.296086 0.255412 +v 0.564683 -0.286921 0.260221 +v 0.563890 -0.288753 0.260828 +v 0.548526 -0.279015 0.265603 +v 0.547721 -0.280840 0.266214 +v 0.531145 -0.270509 0.270942 +v 0.530328 -0.272329 0.271557 +v 0.608112 -0.312910 0.243235 +v 0.607013 -0.315184 0.243561 +v 0.621929 -0.322483 0.236383 +v 0.623016 -0.320203 0.236063 +v 0.592677 -0.305356 0.250002 +v 0.591567 -0.307625 0.250333 +v 0.577927 -0.298138 0.255880 +v 0.576809 -0.300403 0.256214 +v 0.562930 -0.290799 0.261300 +v 0.561804 -0.293060 0.261637 +v 0.636170 -0.326640 0.228966 +v 0.635095 -0.328926 0.229278 +v 0.646608 -0.334560 0.222285 +v 0.647669 -0.332267 0.221981 +v 0.657610 -0.337132 0.215146 +v 0.656565 -0.339432 0.215439 +v 0.633833 -0.331416 0.229466 +v 0.629904 -0.338639 0.229560 +v 0.641354 -0.344417 0.222558 +v 0.645355 -0.337054 0.222467 +v 0.620659 -0.324969 0.236575 +v 0.616813 -0.332032 0.236671 +v 0.655321 -0.341931 0.215614 +v 0.651259 -0.349416 0.215702 +v 0.659715 -0.353683 0.209027 +v 0.663828 -0.346094 0.208944 +v 0.670973 -0.349590 0.202492 +v 0.666818 -0.357267 0.202570 +v 0.672663 -0.360217 0.196367 +v 0.676851 -0.352467 0.196295 +v 0.681560 -0.354771 0.190389 +v 0.677347 -0.362581 0.190454 +v 0.657013 -0.375087 0.202597 +v 0.662743 -0.378249 0.196391 +v 0.650050 -0.371246 0.209055 +v 0.635510 -0.395733 0.209055 +v 0.642276 -0.399912 0.202597 +v 0.647844 -0.403351 0.196391 +v 0.673481 -0.384174 0.179657 +v 0.670883 -0.382740 0.184885 +v 0.655754 -0.408236 0.184885 +v 0.658278 -0.409795 0.179657 +v 0.667335 -0.380783 0.190475 +v 0.652307 -0.406107 0.190475 +v 0.641761 -0.366672 0.215731 +v 0.632051 -0.361315 0.222589 +v 0.618020 -0.384931 0.222589 +v 0.627455 -0.390758 0.215731 +v 0.641384 -0.441018 0.170430 +v 0.641806 -0.441308 0.166514 +v 0.640463 -0.440385 0.174826 +v 0.618084 -0.471281 0.174826 +v 0.618973 -0.471959 0.170430 +v 0.619380 -0.472269 0.166514 +v 0.595069 -0.501761 0.170430 +v 0.595460 -0.502091 0.166514 +v 0.594214 -0.501041 0.174826 +v 0.568914 -0.529593 0.174826 +v 0.569732 -0.530355 0.170430 +v 0.570107 -0.530704 0.166514 +v 0.638825 -0.439258 0.179657 +v 0.636380 -0.437577 0.184885 +v 0.614143 -0.468276 0.184885 +v 0.616502 -0.470075 0.179657 +v 0.543022 -0.557671 0.170430 +v 0.543379 -0.558038 0.166514 +v 0.542242 -0.556870 0.174826 +v 0.514266 -0.582807 0.174826 +v 0.515005 -0.583645 0.170430 +v 0.515344 -0.584029 0.166514 +v 0.485747 -0.608211 0.170430 +v 0.486066 -0.608611 0.166514 +v 0.485049 -0.607338 0.174826 +v 0.454665 -0.630407 0.174826 +v 0.455319 -0.631314 0.170430 +v 0.455618 -0.631729 0.166514 +v 0.592694 -0.499759 0.179657 +v 0.590427 -0.497846 0.184885 +v 0.565288 -0.526218 0.184885 +v 0.567458 -0.528238 0.179657 +v 0.540856 -0.555447 0.179657 +v 0.538786 -0.553320 0.184885 +v 0.510987 -0.579091 0.184885 +v 0.512949 -0.581315 0.179657 +v 0.483808 -0.605784 0.179657 +v 0.481957 -0.603466 0.184885 +v 0.451766 -0.626388 0.184885 +v 0.453501 -0.628794 0.179657 +v 0.535959 -0.550417 0.190476 +v 0.532300 -0.546659 0.196391 +v 0.504836 -0.572120 0.196391 +v 0.508306 -0.576052 0.190476 +v 0.562322 -0.523457 0.190476 +v 0.558483 -0.519883 0.196391 +v 0.479428 -0.600300 0.190476 +v 0.476155 -0.596201 0.196391 +v 0.446327 -0.618847 0.196391 +v 0.449395 -0.623101 0.190476 +v 0.423793 -0.652894 0.170430 +v 0.424071 -0.653324 0.166514 +v 0.423184 -0.651957 0.174826 +v 0.390685 -0.671936 0.174826 +v 0.391247 -0.672903 0.170430 +v 0.391504 -0.673345 0.166514 +v 0.357757 -0.691289 0.170430 +v 0.357992 -0.691744 0.166514 +v 0.357243 -0.690297 0.174826 +v 0.322942 -0.706995 0.174826 +v 0.323406 -0.708011 0.170430 +v 0.323619 -0.708477 0.166514 +v 0.422101 -0.650288 0.179657 +v 0.420486 -0.647800 0.184885 +v 0.388194 -0.667652 0.184885 +v 0.389685 -0.670217 0.179657 +v 0.288276 -0.723027 0.170430 +v 0.288466 -0.723502 0.166514 +v 0.287862 -0.721989 0.174826 +v 0.254735 -0.734480 0.174826 +v 0.255098 -0.735537 0.170430 +v 0.255264 -0.736021 0.166514 +v 0.356329 -0.688530 0.179657 +v 0.354966 -0.685895 0.184885 +v 0.320883 -0.702487 0.184885 +v 0.322116 -0.705186 0.179657 +v 0.226604 -0.744744 0.170430 +v 0.226746 -0.745236 0.166514 +v 0.226293 -0.743670 0.174826 +v 0.206008 -0.749495 0.174816 +v 0.206278 -0.750579 0.170423 +v 0.206402 -0.751076 0.166510 +v 0.287126 -0.720141 0.179657 +v 0.286027 -0.717385 0.184885 +v 0.253128 -0.729792 0.184885 +v 0.254090 -0.732598 0.179657 +v 0.197607 -0.752977 0.170403 +v 0.194874 -0.753551 0.170362 +v 0.194990 -0.754044 0.166479 +v 0.197724 -0.753473 0.166500 +v 0.197350 -0.751892 0.174784 +v 0.194619 -0.752472 0.174720 +v 0.225741 -0.741759 0.179657 +v 0.224918 -0.738909 0.184885 +v 0.204809 -0.744687 0.184867 +v 0.205527 -0.747566 0.179642 +v 0.196893 -0.749960 0.179598 +v 0.194164 -0.750550 0.179510 +v 0.196212 -0.747077 0.184812 +v 0.193486 -0.747678 0.184701 +v 0.192365 -0.753917 0.170295 +v 0.190080 -0.754076 0.170200 +v 0.190194 -0.754555 0.166396 +v 0.192480 -0.754405 0.166444 +v 0.192112 -0.752848 0.174613 +v 0.189831 -0.753021 0.174464 +v 0.188020 -0.754026 0.170079 +v 0.188131 -0.754495 0.166333 +v 0.187775 -0.752989 0.174271 +v 0.187336 -0.751133 0.178892 +v 0.185512 -0.750931 0.178569 +v 0.189386 -0.751136 0.179157 +v 0.188717 -0.748310 0.184257 +v 0.186676 -0.748341 0.183925 +v 0.184862 -0.748182 0.183519 +v 0.195280 -0.743137 0.190389 +v 0.192557 -0.743751 0.190260 +v 0.203828 -0.740755 0.190454 +v 0.202559 -0.735664 0.196367 +v 0.194074 -0.738035 0.196295 +v 0.191354 -0.738661 0.196150 +v 0.223794 -0.735016 0.190476 +v 0.222338 -0.729977 0.196391 +v 0.251814 -0.725959 0.190476 +v 0.250113 -0.720998 0.196391 +v 0.190064 -0.744182 0.190044 +v 0.187801 -0.744432 0.189742 +v 0.190987 -0.748089 0.184516 +v 0.188866 -0.739113 0.195909 +v 0.186609 -0.739392 0.195571 +v 0.284526 -0.713621 0.190476 +v 0.282584 -0.708749 0.196391 +v 0.319199 -0.698801 0.190476 +v 0.317020 -0.694031 0.196391 +v 0.192569 -0.731666 0.202492 +v 0.189851 -0.732304 0.202334 +v 0.200974 -0.729311 0.202570 +v 0.199049 -0.721592 0.209027 +v 0.190739 -0.723925 0.208944 +v 0.188024 -0.724575 0.208776 +v 0.220522 -0.723689 0.202597 +v 0.218315 -0.716049 0.209055 +v 0.247990 -0.714806 0.202597 +v 0.245411 -0.707284 0.209055 +v 0.353103 -0.682297 0.190476 +v 0.350693 -0.677639 0.196391 +v 0.386157 -0.664149 0.190476 +v 0.383521 -0.659615 0.196391 +v 0.280160 -0.702670 0.202597 +v 0.277214 -0.695283 0.209055 +v 0.314301 -0.688077 0.202597 +v 0.310997 -0.680844 0.209055 +v 0.418280 -0.644401 0.190476 +v 0.415424 -0.640002 0.196391 +v 0.347684 -0.671826 0.202597 +v 0.344029 -0.664763 0.209055 +v 0.380231 -0.653957 0.202597 +v 0.376234 -0.647082 0.209055 +v 0.411861 -0.634512 0.202597 +v 0.407531 -0.627841 0.209055 +v 0.442499 -0.613539 0.202597 +v 0.437847 -0.607089 0.209055 +v 0.472071 -0.591087 0.202597 +v 0.467108 -0.584873 0.209055 +v 0.500506 -0.567212 0.202597 +v 0.495244 -0.561249 0.209055 +v 0.339678 -0.656355 0.215731 +v 0.334581 -0.646507 0.222589 +v 0.302456 -0.662146 0.222589 +v 0.307063 -0.672233 0.215731 +v 0.371475 -0.638898 0.215731 +v 0.365901 -0.629312 0.222589 +v 0.402377 -0.619901 0.215731 +v 0.396339 -0.610599 0.222589 +v 0.432309 -0.599411 0.215731 +v 0.425823 -0.590417 0.222589 +v 0.273708 -0.686489 0.215731 +v 0.269601 -0.676189 0.222589 +v 0.238744 -0.687839 0.222589 +v 0.242340 -0.698329 0.215731 +v 0.215687 -0.706954 0.215731 +v 0.212610 -0.696301 0.222589 +v 0.194073 -0.701637 0.222558 +v 0.196758 -0.712402 0.215702 +v 0.264854 -0.664282 0.229591 +v 0.259426 -0.650669 0.236703 +v 0.229833 -0.661851 0.236703 +v 0.234587 -0.675713 0.229591 +v 0.297130 -0.650486 0.229591 +v 0.291041 -0.637156 0.236703 +v 0.188560 -0.714708 0.215614 +v 0.185848 -0.715369 0.215439 +v 0.186008 -0.703910 0.222467 +v 0.183298 -0.704581 0.222285 +v 0.209052 -0.683986 0.229591 +v 0.204985 -0.669906 0.236703 +v 0.187422 -0.674964 0.236671 +v 0.190970 -0.689192 0.229560 +v 0.183057 -0.691427 0.229466 +v 0.180349 -0.692107 0.229278 +v 0.179683 -0.677153 0.236575 +v 0.176977 -0.677842 0.236383 +v 0.187368 -0.732777 0.202072 +v 0.185118 -0.733084 0.201705 +v 0.185545 -0.725067 0.208497 +v 0.183302 -0.725401 0.208107 +v 0.183373 -0.715879 0.215146 +v 0.181136 -0.716238 0.214736 +v 0.180827 -0.705108 0.221981 +v 0.178596 -0.705491 0.221556 +v 0.185768 -0.744499 0.189353 +v 0.183965 -0.744385 0.188878 +v 0.184585 -0.739497 0.195136 +v 0.182793 -0.739428 0.194605 +v 0.183916 -0.750532 0.178186 +v 0.182545 -0.749935 0.177745 +v 0.183277 -0.747832 0.183038 +v 0.181920 -0.747293 0.182484 +v 0.183103 -0.733225 0.201233 +v 0.181321 -0.733201 0.200657 +v 0.181295 -0.725577 0.207604 +v 0.179523 -0.725596 0.206991 +v 0.182392 -0.744088 0.188317 +v 0.181050 -0.743610 0.187670 +v 0.181233 -0.739186 0.193978 +v 0.179906 -0.738770 0.193254 +v 0.181401 -0.749141 0.177245 +v 0.180484 -0.748148 0.176686 +v 0.180867 -0.749770 0.172671 +v 0.181799 -0.750822 0.173076 +v 0.180792 -0.746563 0.181856 +v 0.179891 -0.745643 0.181154 +v 0.179792 -0.746958 0.176068 +v 0.177233 -0.746477 0.175583 +v 0.177586 -0.747982 0.171870 +v 0.180160 -0.748514 0.172222 +v 0.179219 -0.744533 0.180378 +v 0.176679 -0.744113 0.179769 +v 0.179937 -0.742949 0.186936 +v 0.179055 -0.742107 0.186116 +v 0.178810 -0.738180 0.192433 +v 0.177947 -0.737417 0.191516 +v 0.179774 -0.733011 0.199975 +v 0.178460 -0.732656 0.199189 +v 0.177988 -0.725456 0.206265 +v 0.176688 -0.725159 0.205428 +v 0.178403 -0.741082 0.185209 +v 0.175886 -0.740729 0.184497 +v 0.177315 -0.736479 0.190502 +v 0.174823 -0.736192 0.189706 +v 0.177381 -0.732135 0.198297 +v 0.176536 -0.731448 0.197301 +v 0.175625 -0.724704 0.204479 +v 0.174797 -0.724091 0.203419 +v 0.175925 -0.730596 0.196200 +v 0.173459 -0.730374 0.195335 +v 0.174205 -0.723320 0.202247 +v 0.171768 -0.723158 0.201327 +v 0.175850 -0.716413 0.212804 +v 0.174563 -0.716171 0.211926 +v 0.177375 -0.716506 0.213565 +v 0.174850 -0.705826 0.220341 +v 0.173336 -0.705778 0.219551 +v 0.172061 -0.705585 0.218639 +v 0.172129 -0.714539 0.208589 +v 0.169723 -0.714433 0.207623 +v 0.172703 -0.715233 0.209819 +v 0.170229 -0.704769 0.216452 +v 0.169672 -0.704146 0.215176 +v 0.167299 -0.704091 0.214173 +v 0.173514 -0.715777 0.210931 +v 0.171026 -0.705249 0.217606 +v 0.166809 -0.692036 0.221958 +v 0.164471 -0.692027 0.220925 +v 0.167351 -0.692594 0.223272 +v 0.164043 -0.678601 0.230236 +v 0.163516 -0.678102 0.228891 +v 0.161215 -0.678134 0.227835 +v 0.168134 -0.693015 0.224460 +v 0.169157 -0.693298 0.225524 +v 0.165825 -0.679203 0.232541 +v 0.164813 -0.678968 0.231452 +v 0.159765 -0.662238 0.235933 +v 0.157505 -0.662305 0.234858 +v 0.160280 -0.662683 0.237303 +v 0.156375 -0.646162 0.243985 +v 0.155871 -0.645763 0.242597 +v 0.153650 -0.645859 0.241506 +v 0.152144 -0.629998 0.248394 +v 0.149961 -0.630120 0.247291 +v 0.152639 -0.630357 0.249797 +v 0.148834 -0.614262 0.255164 +v 0.148348 -0.613939 0.253748 +v 0.146202 -0.614081 0.252636 +v 0.161039 -0.663002 0.238541 +v 0.162040 -0.663194 0.239650 +v 0.158116 -0.646592 0.246366 +v 0.157123 -0.646438 0.245241 +v 0.153378 -0.630596 0.251067 +v 0.154363 -0.630718 0.252204 +v 0.150544 -0.614562 0.257591 +v 0.149566 -0.614469 0.256445 +v 0.145448 -0.597050 0.261801 +v 0.144723 -0.596871 0.260511 +v 0.146420 -0.597116 0.262955 +v 0.141981 -0.578339 0.268278 +v 0.141015 -0.578296 0.267117 +v 0.140296 -0.578144 0.265819 +v 0.155593 -0.630720 0.253206 +v 0.157068 -0.630604 0.254075 +v 0.153238 -0.614401 0.259479 +v 0.151768 -0.614539 0.258603 +v 0.159353 -0.646624 0.247357 +v 0.160834 -0.646533 0.248217 +v 0.147639 -0.597071 0.263974 +v 0.149104 -0.596913 0.264856 +v 0.144656 -0.578097 0.270191 +v 0.143195 -0.578273 0.269303 +v 0.163285 -0.663259 0.240628 +v 0.164773 -0.663197 0.241475 +v 0.167078 -0.679306 0.233501 +v 0.168574 -0.679277 0.234334 +v 0.170420 -0.693444 0.226463 +v 0.171925 -0.693451 0.227276 +v 0.158789 -0.630370 0.254811 +v 0.160754 -0.630017 0.255412 +v 0.156916 -0.613780 0.260828 +v 0.154954 -0.614148 0.260221 +v 0.162559 -0.646319 0.248944 +v 0.164529 -0.645984 0.249539 +v 0.166504 -0.663008 0.242192 +v 0.168478 -0.662693 0.242779 +v 0.170312 -0.679116 0.235038 +v 0.172291 -0.678823 0.235614 +v 0.173670 -0.693322 0.227964 +v 0.175656 -0.693054 0.228528 +v 0.176603 -0.705730 0.221009 +v 0.179137 -0.716447 0.214209 +v 0.177882 -0.692650 0.228966 +v 0.174513 -0.678399 0.236063 +v 0.170696 -0.662250 0.243236 +v 0.173157 -0.661681 0.243562 +v 0.169200 -0.644945 0.250333 +v 0.166742 -0.645526 0.250002 +v 0.175861 -0.660985 0.243757 +v 0.183403 -0.658849 0.243855 +v 0.179241 -0.642161 0.250630 +v 0.171903 -0.644243 0.250531 +v 0.200379 -0.653959 0.243888 +v 0.195609 -0.637447 0.250663 +v 0.224450 -0.646149 0.243888 +v 0.218875 -0.629890 0.250663 +v 0.162965 -0.629545 0.255880 +v 0.165421 -0.628955 0.256215 +v 0.161578 -0.612698 0.261637 +v 0.159124 -0.613297 0.261300 +v 0.168122 -0.628247 0.256415 +v 0.175266 -0.626219 0.256515 +v 0.171224 -0.610011 0.261940 +v 0.164277 -0.611984 0.261839 +v 0.191051 -0.621671 0.256549 +v 0.186418 -0.605633 0.261974 +v 0.213550 -0.614357 0.256549 +v 0.208135 -0.598565 0.261974 +v 0.253279 -0.635250 0.243888 +v 0.246913 -0.619284 0.250663 +v 0.284144 -0.622057 0.243888 +v 0.277003 -0.606423 0.250663 +v 0.328690 -0.635123 0.229591 +v 0.321954 -0.622107 0.236703 +v 0.359458 -0.618230 0.229591 +v 0.352092 -0.605561 0.236703 +v 0.240832 -0.604031 0.256549 +v 0.234649 -0.588525 0.261974 +v 0.270180 -0.591487 0.256549 +v 0.263244 -0.576302 0.261974 +v 0.314325 -0.607365 0.243888 +v 0.306425 -0.592101 0.250663 +v 0.343748 -0.591211 0.243887 +v 0.335109 -0.576352 0.250663 +v 0.181421 -0.588334 0.267369 +v 0.176047 -0.569730 0.272718 +v 0.162176 -0.573728 0.272684 +v 0.166864 -0.592529 0.267335 +v 0.202295 -0.581533 0.267369 +v 0.196015 -0.563215 0.272718 +v 0.160131 -0.594443 0.267233 +v 0.157432 -0.595161 0.267029 +v 0.155671 -0.575578 0.272581 +v 0.152974 -0.576301 0.272376 +v 0.154980 -0.595768 0.266690 +v 0.152775 -0.596262 0.266214 +v 0.150523 -0.576914 0.272035 +v 0.148320 -0.577418 0.271557 +v 0.227980 -0.571799 0.267369 +v 0.220809 -0.553811 0.272718 +v 0.255763 -0.559924 0.267369 +v 0.247717 -0.542310 0.272718 +v 0.150888 -0.555345 0.277869 +v 0.148192 -0.556072 0.277663 +v 0.157148 -0.553564 0.277972 +v 0.151768 -0.531992 0.283183 +v 0.145772 -0.533700 0.283080 +v 0.143076 -0.534431 0.282873 +v 0.170284 -0.549778 0.278006 +v 0.164118 -0.528434 0.283218 +v 0.189279 -0.543569 0.278006 +v 0.182073 -0.522554 0.283218 +v 0.150816 -0.596643 0.265603 +v 0.146364 -0.577812 0.270942 +v 0.145743 -0.556691 0.277319 +v 0.143542 -0.557204 0.276839 +v 0.140628 -0.535056 0.282528 +v 0.138430 -0.535577 0.282046 +v 0.141589 -0.557611 0.276221 +v 0.139884 -0.557910 0.275466 +v 0.136479 -0.535995 0.281425 +v 0.134778 -0.536309 0.280667 +v 0.138427 -0.558103 0.274574 +v 0.137218 -0.558189 0.273544 +v 0.133324 -0.536517 0.279770 +v 0.132120 -0.536622 0.278736 +v 0.135169 -0.511963 0.287646 +v 0.132973 -0.512492 0.287161 +v 0.137615 -0.511331 0.287992 +v 0.131800 -0.486731 0.293004 +v 0.129355 -0.487369 0.292657 +v 0.127160 -0.487906 0.292171 +v 0.136257 -0.558168 0.272377 +v 0.135544 -0.558041 0.271073 +v 0.131164 -0.536622 0.277564 +v 0.130456 -0.536517 0.276254 +v 0.131025 -0.512920 0.286539 +v 0.129326 -0.513246 0.285777 +v 0.125215 -0.488344 0.291546 +v 0.123519 -0.488682 0.290782 +v 0.127876 -0.513471 0.284877 +v 0.126676 -0.513592 0.283839 +v 0.122073 -0.488920 0.289879 +v 0.120876 -0.489058 0.288838 +v 0.135079 -0.557806 0.269631 +v 0.133057 -0.557994 0.268498 +v 0.137759 -0.578057 0.263258 +v 0.139824 -0.577882 0.264385 +v 0.129997 -0.536309 0.274806 +v 0.128021 -0.536509 0.273668 +v 0.144244 -0.596580 0.259085 +v 0.142138 -0.596740 0.257964 +v 0.125724 -0.513613 0.282663 +v 0.125022 -0.513530 0.281348 +v 0.119929 -0.489097 0.287657 +v 0.119232 -0.489036 0.286338 +v 0.124569 -0.513347 0.279894 +v 0.122641 -0.513555 0.278752 +v 0.118784 -0.488876 0.284880 +v 0.116907 -0.489091 0.283734 +v 0.112632 -0.462850 0.289747 +v 0.110809 -0.463071 0.288598 +v 0.113075 -0.462989 0.291209 +v 0.106540 -0.435346 0.295945 +v 0.106102 -0.435228 0.294479 +v 0.104336 -0.435453 0.293327 +v 0.113767 -0.463030 0.292532 +v 0.114710 -0.462974 0.293716 +v 0.108167 -0.435296 0.298457 +v 0.107228 -0.435369 0.297271 +v 0.100302 -0.406068 0.301859 +v 0.099618 -0.406063 0.300529 +v 0.101237 -0.405979 0.303048 +v 0.093909 -0.374979 0.307471 +v 0.092977 -0.375083 0.306280 +v 0.092297 -0.375095 0.304948 +v 0.115903 -0.462820 0.294760 +v 0.117346 -0.462568 0.295665 +v 0.110797 -0.434862 0.300412 +v 0.109357 -0.435127 0.299505 +v 0.102423 -0.405796 0.304097 +v 0.103860 -0.405520 0.305006 +v 0.096527 -0.374496 0.309433 +v 0.095092 -0.374784 0.308522 +v 0.119039 -0.462219 0.296431 +v 0.120982 -0.461772 0.297058 +v 0.114428 -0.434046 0.301808 +v 0.112487 -0.434502 0.301180 +v 0.105548 -0.405149 0.305776 +v 0.107488 -0.404685 0.306405 +v 0.100150 -0.373643 0.310835 +v 0.098212 -0.374116 0.310204 +v 0.123176 -0.461227 0.297545 +v 0.125619 -0.460585 0.297894 +v 0.119062 -0.432847 0.302646 +v 0.116620 -0.433495 0.302297 +v 0.109678 -0.404127 0.306895 +v 0.112119 -0.403475 0.307245 +v 0.104779 -0.372423 0.311676 +v 0.102338 -0.373079 0.311325 +v 0.090468 -0.341356 0.314449 +v 0.088785 -0.341745 0.313677 +v 0.092404 -0.340877 0.315080 +v 0.086362 -0.315315 0.318231 +v 0.084428 -0.315803 0.317598 +v 0.082747 -0.316202 0.316825 +v 0.094591 -0.340307 0.315572 +v 0.097031 -0.339647 0.315922 +v 0.090986 -0.314074 0.319074 +v 0.088547 -0.314739 0.318723 +v 0.114811 -0.402729 0.307455 +v 0.119220 -0.401472 0.307560 +v 0.111502 -0.370524 0.311991 +v 0.107470 -0.371675 0.311886 +v 0.121755 -0.432104 0.302855 +v 0.126520 -0.430746 0.302960 +v 0.087353 -0.342044 0.312764 +v 0.086173 -0.342252 0.311711 +v 0.081317 -0.316513 0.315911 +v 0.080141 -0.316735 0.314857 +v 0.099722 -0.338896 0.316133 +v 0.103357 -0.337859 0.316238 +v 0.097001 -0.312372 0.319390 +v 0.093676 -0.313320 0.319285 +v 0.085244 -0.342369 0.310518 +v 0.084568 -0.342396 0.309185 +v 0.079216 -0.316868 0.313662 +v 0.078544 -0.316913 0.312326 +v 0.099185 -0.405965 0.299060 +v 0.091868 -0.375015 0.303476 +v 0.097478 -0.406192 0.297906 +v 0.090224 -0.375243 0.302320 +v 0.084143 -0.342333 0.307711 +v 0.082564 -0.342561 0.306553 +v 0.078123 -0.316869 0.310850 +v 0.076597 -0.317101 0.309691 +v 0.079099 -0.307127 0.317050 +v 0.077926 -0.307368 0.315994 +v 0.080524 -0.306800 0.317966 +v 0.080207 -0.305459 0.318082 +v 0.078787 -0.305810 0.317165 +v 0.077622 -0.306079 0.316107 +v 0.075926 -0.307573 0.311981 +v 0.074422 -0.307822 0.310819 +v 0.076340 -0.307591 0.313459 +v 0.076051 -0.306370 0.313569 +v 0.075647 -0.306392 0.312088 +v 0.074153 -0.306671 0.310924 +v 0.077007 -0.307522 0.314797 +v 0.076710 -0.306265 0.314909 +v 0.075381 -0.305270 0.312156 +v 0.073900 -0.305595 0.310991 +v 0.075772 -0.305189 0.313638 +v 0.076418 -0.305031 0.314980 +v 0.077319 -0.304797 0.316180 +v 0.077024 -0.303549 0.316194 +v 0.076138 -0.303849 0.314996 +v 0.078474 -0.304485 0.317239 +v 0.079885 -0.304098 0.318157 +v 0.079565 -0.302741 0.318168 +v 0.078166 -0.303180 0.317252 +v 0.075879 -0.302750 0.314941 +v 0.076743 -0.302364 0.316131 +v 0.076482 -0.301256 0.315982 +v 0.075642 -0.301749 0.314811 +v 0.077867 -0.301918 0.317182 +v 0.079251 -0.301414 0.318092 +v 0.078948 -0.300133 0.317911 +v 0.077584 -0.300718 0.317016 +v 0.075431 -0.300859 0.314603 +v 0.076242 -0.300243 0.315739 +v 0.076023 -0.299317 0.315389 +v 0.075245 -0.300069 0.314312 +v 0.074887 -0.301443 0.313334 +v 0.074736 -0.300805 0.313107 +v 0.074608 -0.301996 0.311932 +v 0.073219 -0.302691 0.310830 +v 0.074496 -0.301526 0.311775 +v 0.073140 -0.302352 0.310729 +v 0.077318 -0.299594 0.316740 +v 0.078660 -0.298915 0.317608 +v 0.078388 -0.297765 0.317165 +v 0.077071 -0.298549 0.316340 +v 0.076842 -0.297580 0.315801 +v 0.075824 -0.298473 0.314924 +v 0.078134 -0.296689 0.316561 +v 0.077896 -0.295682 0.315763 +v 0.076629 -0.296677 0.315085 +v 0.075638 -0.297689 0.314302 +v 0.079699 -0.295798 0.317205 +v 0.081537 -0.294908 0.317731 +v 0.081262 -0.293742 0.316807 +v 0.079440 -0.294704 0.316337 +v 0.079975 -0.296966 0.317862 +v 0.081831 -0.296150 0.318433 +v 0.080267 -0.298203 0.318343 +v 0.082141 -0.297459 0.318944 +v 0.080574 -0.299501 0.318669 +v 0.082463 -0.298823 0.319289 +v 0.080893 -0.300851 0.318863 +v 0.082795 -0.300229 0.319493 +v 0.081220 -0.302234 0.318944 +v 0.083133 -0.301658 0.319578 +v 0.083649 -0.294019 0.318140 +v 0.086035 -0.293130 0.318433 +v 0.085736 -0.291868 0.317433 +v 0.083360 -0.292797 0.317172 +v 0.083957 -0.295319 0.318876 +v 0.086352 -0.294472 0.319193 +v 0.081551 -0.303633 0.318934 +v 0.083472 -0.303092 0.319570 +v 0.081880 -0.305025 0.318858 +v 0.083807 -0.304509 0.319493 +v 0.084279 -0.296684 0.319412 +v 0.086684 -0.295877 0.319745 +v 0.084614 -0.298099 0.319772 +v 0.087027 -0.297329 0.320116 +v 0.084956 -0.299548 0.319983 +v 0.087377 -0.298809 0.320333 +v 0.085303 -0.301013 0.320072 +v 0.087729 -0.300299 0.320424 +v 0.082202 -0.306387 0.318740 +v 0.084133 -0.305888 0.319374 +v 0.085648 -0.302474 0.320064 +v 0.088079 -0.301779 0.320417 +v 0.085988 -0.303911 0.319986 +v 0.088422 -0.303230 0.320339 +v 0.086317 -0.305303 0.319867 +v 0.088753 -0.304632 0.320219 +v 0.090057 -0.298010 0.320543 +v 0.093191 -0.297093 0.320648 +v 0.092816 -0.295590 0.320426 +v 0.089702 -0.296512 0.320323 +v 0.090413 -0.299516 0.320636 +v 0.093566 -0.298601 0.320742 +v 0.091443 -0.303874 0.320430 +v 0.094653 -0.302957 0.320536 +v 0.094302 -0.301552 0.320656 +v 0.091110 -0.302467 0.320550 +v 0.090765 -0.301008 0.320629 +v 0.093939 -0.300093 0.320735 +v 0.098651 -0.301805 0.320571 +v 0.098249 -0.300414 0.320692 +v 0.101342 -0.311122 0.319426 +v 0.108710 -0.308583 0.319426 +v 0.105565 -0.299410 0.320571 +v 0.105096 -0.298040 0.320692 +v 0.097832 -0.298969 0.320770 +v 0.097405 -0.297491 0.320777 +v 0.104608 -0.296618 0.320770 +v 0.104109 -0.295162 0.320777 +v 0.096973 -0.295996 0.320684 +v 0.096543 -0.294506 0.320461 +v 0.103604 -0.293691 0.320684 +v 0.103101 -0.292224 0.320461 +v 0.089354 -0.295038 0.319946 +v 0.092447 -0.294111 0.320046 +v 0.092089 -0.292675 0.319479 +v 0.089016 -0.293609 0.319384 +v 0.096119 -0.293039 0.320079 +v 0.095707 -0.291614 0.319510 +v 0.102606 -0.290779 0.320079 +v 0.102125 -0.289376 0.319510 +v 0.088693 -0.292243 0.318608 +v 0.091746 -0.291301 0.318696 +v 0.091423 -0.290008 0.317668 +v 0.088389 -0.290957 0.317590 +v 0.095313 -0.290251 0.318725 +v 0.094942 -0.288967 0.317694 +v 0.101665 -0.288033 0.318725 +v 0.101231 -0.286769 0.317694 +v 0.115285 -0.289147 0.320684 +v 0.114710 -0.287706 0.320461 +v 0.115861 -0.290591 0.320777 +v 0.129980 -0.284556 0.320777 +v 0.129334 -0.283142 0.320684 +v 0.128689 -0.281731 0.320461 +v 0.088109 -0.289770 0.316299 +v 0.085461 -0.290702 0.316165 +v 0.091126 -0.288814 0.316366 +v 0.090858 -0.287740 0.314760 +v 0.087856 -0.288700 0.314704 +v 0.085212 -0.289649 0.314591 +v 0.114145 -0.286287 0.320079 +v 0.113595 -0.284910 0.319510 +v 0.128055 -0.280342 0.320079 +v 0.127438 -0.278993 0.319510 +v 0.094600 -0.287783 0.316388 +v 0.094292 -0.286717 0.314779 +v 0.100831 -0.285603 0.316388 +v 0.100472 -0.284554 0.314779 +v 0.113070 -0.283591 0.318725 +v 0.112575 -0.282350 0.317694 +v 0.126849 -0.277702 0.318725 +v 0.126294 -0.276486 0.317694 +v 0.083093 -0.291666 0.315941 +v 0.081006 -0.292660 0.315629 +v 0.082851 -0.290640 0.314404 +v 0.080772 -0.291672 0.314141 +v 0.079199 -0.293685 0.315226 +v 0.077673 -0.294741 0.314735 +v 0.078978 -0.292746 0.313804 +v 0.077466 -0.293862 0.313391 +v 0.087635 -0.287765 0.312773 +v 0.084993 -0.288724 0.312676 +v 0.090624 -0.286803 0.312821 +v 0.090408 -0.285936 0.310714 +v 0.087430 -0.286898 0.310673 +v 0.084790 -0.287863 0.310590 +v 0.094024 -0.285789 0.312837 +v 0.093776 -0.284929 0.310728 +v 0.100158 -0.283640 0.312837 +v 0.099868 -0.282794 0.310728 +v 0.082636 -0.289731 0.312516 +v 0.080563 -0.290787 0.312291 +v 0.082435 -0.288882 0.310452 +v 0.080366 -0.289953 0.310258 +v 0.111350 -0.279277 0.312837 +v 0.111018 -0.278446 0.310728 +v 0.111707 -0.280175 0.314779 +v 0.125320 -0.274356 0.314779 +v 0.124919 -0.273477 0.312837 +v 0.124547 -0.272663 0.310728 +v 0.078775 -0.291891 0.312002 +v 0.077272 -0.293043 0.311648 +v 0.078583 -0.291077 0.310009 +v 0.077085 -0.292254 0.309705 +v 0.076428 -0.295827 0.314154 +v 0.075462 -0.296945 0.313483 +v 0.076237 -0.295020 0.312904 +v 0.075291 -0.296219 0.312341 +v 0.076053 -0.294244 0.311231 +v 0.075119 -0.295493 0.310749 +v 0.075873 -0.293483 0.309346 +v 0.074947 -0.294766 0.308931 +v 0.074470 -0.296790 0.310203 +v 0.074628 -0.297460 0.311704 +v 0.074307 -0.296101 0.308461 +v 0.074778 -0.298093 0.312724 +v 0.074373 -0.299272 0.311874 +v 0.074490 -0.299764 0.312423 +v 0.074925 -0.298718 0.313415 +v 0.074249 -0.300481 0.310936 +v 0.072985 -0.301692 0.310199 +v 0.073039 -0.301921 0.310467 +v 0.074331 -0.300826 0.311328 +v 0.138187 -0.267018 0.312837 +v 0.137776 -0.266223 0.310728 +v 0.138631 -0.267876 0.314779 +v 0.151609 -0.260751 0.314779 +v 0.151123 -0.259916 0.312837 +v 0.150673 -0.259142 0.310728 +v 0.112118 -0.281205 0.316388 +v 0.125781 -0.275365 0.316388 +v 0.139141 -0.268861 0.316388 +v 0.139708 -0.269956 0.317694 +v 0.152786 -0.262776 0.317694 +v 0.152166 -0.261710 0.316388 +v 0.140322 -0.271143 0.318725 +v 0.140974 -0.272403 0.319510 +v 0.154171 -0.265158 0.319510 +v 0.153457 -0.263931 0.318725 +v 0.163694 -0.252187 0.312837 +v 0.163207 -0.251437 0.310728 +v 0.164220 -0.252998 0.314779 +v 0.176437 -0.244636 0.314779 +v 0.175871 -0.243852 0.312837 +v 0.175348 -0.243126 0.310728 +v 0.164824 -0.253929 0.316388 +v 0.165495 -0.254962 0.317694 +v 0.177807 -0.246535 0.317694 +v 0.177086 -0.245535 0.316388 +v 0.187625 -0.234928 0.312837 +v 0.187066 -0.234229 0.310728 +v 0.188228 -0.235683 0.314779 +v 0.199566 -0.226164 0.314779 +v 0.198926 -0.225439 0.312837 +v 0.198334 -0.224768 0.310728 +v 0.188920 -0.236550 0.316388 +v 0.189689 -0.237513 0.317694 +v 0.201115 -0.227920 0.317694 +v 0.200300 -0.226996 0.316388 +v 0.166223 -0.256083 0.318725 +v 0.166996 -0.257274 0.319510 +v 0.179419 -0.248770 0.319510 +v 0.178588 -0.247619 0.318725 +v 0.190523 -0.238557 0.318725 +v 0.191409 -0.239667 0.319510 +v 0.202938 -0.229986 0.319510 +v 0.201999 -0.228922 0.318725 +v 0.209748 -0.215407 0.312837 +v 0.209124 -0.214766 0.310728 +v 0.210422 -0.216099 0.314779 +v 0.220773 -0.205514 0.314779 +v 0.220065 -0.204855 0.312837 +v 0.219410 -0.204246 0.310728 +v 0.211196 -0.216894 0.316388 +v 0.212056 -0.217777 0.317694 +v 0.222487 -0.207110 0.317694 +v 0.221584 -0.206270 0.316388 +v 0.229852 -0.193811 0.312837 +v 0.229168 -0.193234 0.310728 +v 0.230590 -0.194433 0.314779 +v 0.239853 -0.182885 0.314779 +v 0.239085 -0.182299 0.312837 +v 0.238373 -0.181756 0.310728 +v 0.231439 -0.195149 0.316388 +v 0.232381 -0.195943 0.317694 +v 0.241716 -0.184305 0.317694 +v 0.240735 -0.183557 0.316388 +v 0.212988 -0.218734 0.318725 +v 0.213979 -0.219751 0.319510 +v 0.224504 -0.208987 0.319510 +v 0.223465 -0.208020 0.318725 +v 0.233402 -0.196804 0.318725 +v 0.234488 -0.197719 0.319510 +v 0.243907 -0.185976 0.319510 +v 0.242778 -0.185115 0.318725 +v 0.247742 -0.170348 0.312837 +v 0.247004 -0.169841 0.310728 +v 0.248538 -0.170895 0.314779 +v 0.255294 -0.160906 0.314779 +v 0.254471 -0.160398 0.312837 +v 0.253710 -0.159928 0.310728 +v 0.249452 -0.171524 0.316388 +v 0.250468 -0.172222 0.317694 +v 0.257286 -0.162137 0.317694 +v 0.256237 -0.161489 0.316388 +v 0.257923 -0.154891 0.312837 +v 0.257140 -0.154459 0.310728 +v 0.258769 -0.155358 0.314779 +v 0.260526 -0.152235 0.314760 +v 0.259665 -0.151800 0.312821 +v 0.258866 -0.151397 0.310714 +v 0.261263 -0.149097 0.312773 +v 0.262783 -0.146733 0.312676 +v 0.261988 -0.146344 0.310590 +v 0.260463 -0.148705 0.310673 +v 0.262126 -0.149519 0.314704 +v 0.263637 -0.147150 0.314591 +v 0.259741 -0.155894 0.316388 +v 0.260820 -0.156489 0.317694 +v 0.262613 -0.153288 0.317668 +v 0.261515 -0.152734 0.316366 +v 0.263114 -0.150003 0.316299 +v 0.264609 -0.147626 0.316165 +v 0.264209 -0.150539 0.317590 +v 0.265685 -0.148153 0.317433 +v 0.264286 -0.144657 0.312516 +v 0.265774 -0.142869 0.312291 +v 0.265005 -0.142492 0.310258 +v 0.263502 -0.144273 0.310452 +v 0.265125 -0.145067 0.314404 +v 0.266591 -0.143269 0.314141 +v 0.261990 -0.157135 0.318725 +v 0.263233 -0.157821 0.319510 +v 0.265067 -0.154526 0.319479 +v 0.263803 -0.153888 0.318696 +v 0.258423 -0.162839 0.318725 +v 0.259631 -0.163585 0.319510 +v 0.267246 -0.141369 0.312002 +v 0.268702 -0.140158 0.311648 +v 0.267974 -0.139801 0.309705 +v 0.266495 -0.141002 0.310009 +v 0.268036 -0.141756 0.313804 +v 0.269458 -0.140528 0.313391 +v 0.266072 -0.145530 0.315941 +v 0.267503 -0.143715 0.315629 +v 0.267116 -0.146041 0.317172 +v 0.268502 -0.144203 0.316807 +v 0.265396 -0.151119 0.318608 +v 0.266850 -0.148723 0.318433 +v 0.266658 -0.151737 0.319384 +v 0.268088 -0.149329 0.319193 +v 0.270143 -0.139235 0.311231 +v 0.271567 -0.138600 0.310749 +v 0.270896 -0.138272 0.308931 +v 0.269441 -0.138891 0.309346 +v 0.270859 -0.139585 0.312904 +v 0.272238 -0.138928 0.312341 +v 0.268902 -0.142180 0.315226 +v 0.270269 -0.140925 0.314735 +v 0.269842 -0.142640 0.316337 +v 0.271138 -0.141350 0.315763 +v 0.272976 -0.138253 0.310203 +v 0.272340 -0.137942 0.308461 +v 0.273595 -0.138556 0.311704 +v 0.271604 -0.139950 0.314154 +v 0.272908 -0.139256 0.313483 +v 0.272389 -0.140334 0.315085 +v 0.273595 -0.139592 0.314302 +v 0.274179 -0.138842 0.312724 +v 0.275418 -0.138708 0.311874 +v 0.274756 -0.139124 0.313415 +v 0.275872 -0.138930 0.312423 +v 0.276625 -0.138855 0.310936 +v 0.278057 -0.137951 0.310199 +v 0.276943 -0.139011 0.311328 +v 0.278268 -0.138054 0.310467 +v 0.273223 -0.140742 0.315801 +v 0.274318 -0.139946 0.314924 +v 0.272067 -0.141805 0.316561 +v 0.273061 -0.142291 0.317165 +v 0.274116 -0.141179 0.316340 +v 0.275097 -0.140327 0.315389 +v 0.270852 -0.143134 0.317205 +v 0.269578 -0.144730 0.317731 +v 0.270724 -0.145291 0.318433 +v 0.271930 -0.143661 0.317862 +v 0.275081 -0.141652 0.316740 +v 0.275951 -0.140745 0.315739 +v 0.274122 -0.142810 0.317608 +v 0.275246 -0.143360 0.317911 +v 0.276118 -0.142159 0.317016 +v 0.276887 -0.141203 0.315982 +v 0.273072 -0.144220 0.318343 +v 0.271933 -0.145883 0.318944 +v 0.273192 -0.146499 0.319289 +v 0.274270 -0.144806 0.318669 +v 0.276732 -0.140091 0.314603 +v 0.277422 -0.139689 0.313334 +v 0.276833 -0.139401 0.313107 +v 0.276003 -0.139734 0.314312 +v 0.277553 -0.140493 0.314811 +v 0.278115 -0.140028 0.313502 +v 0.278477 -0.140945 0.314941 +v 0.278931 -0.140427 0.313610 +v 0.277909 -0.141703 0.316131 +v 0.279003 -0.142239 0.316194 +v 0.279492 -0.141442 0.314996 +v 0.279856 -0.140880 0.313656 +v 0.277226 -0.142701 0.317182 +v 0.276428 -0.143939 0.318092 +v 0.277654 -0.144538 0.318168 +v 0.278390 -0.143271 0.317252 +v 0.280583 -0.141976 0.314980 +v 0.280155 -0.142802 0.316180 +v 0.281338 -0.143381 0.316107 +v 0.281722 -0.142533 0.314908 +v 0.280879 -0.141381 0.313638 +v 0.281969 -0.141914 0.313569 +v 0.275516 -0.145416 0.318863 +v 0.274489 -0.147133 0.319493 +v 0.275808 -0.147779 0.319578 +v 0.276793 -0.146041 0.318944 +v 0.279596 -0.143861 0.317239 +v 0.278905 -0.145151 0.318157 +v 0.280162 -0.145765 0.318082 +v 0.280818 -0.144459 0.317165 +v 0.278084 -0.146673 0.318934 +v 0.277131 -0.148426 0.319570 +v 0.278439 -0.149067 0.319493 +v 0.279369 -0.147301 0.318858 +v 0.273347 -0.149091 0.319983 +v 0.272091 -0.151288 0.320333 +v 0.273466 -0.151961 0.320424 +v 0.274699 -0.149752 0.320072 +v 0.272010 -0.148436 0.319772 +v 0.270725 -0.150619 0.320116 +v 0.276047 -0.150412 0.320064 +v 0.274832 -0.152629 0.320417 +v 0.276172 -0.153285 0.320339 +v 0.277374 -0.151061 0.319986 +v 0.280626 -0.147917 0.318740 +v 0.281400 -0.146371 0.317966 +v 0.279712 -0.149689 0.319374 +v 0.288413 -0.153947 0.318231 +v 0.289317 -0.152169 0.317598 +v 0.290078 -0.150618 0.316825 +v 0.270704 -0.147797 0.319412 +v 0.269385 -0.149964 0.319745 +v 0.269444 -0.147180 0.318876 +v 0.282034 -0.145054 0.317050 +v 0.282528 -0.143963 0.315994 +v 0.290697 -0.149293 0.315911 +v 0.291173 -0.148194 0.314857 +v 0.282882 -0.143101 0.314797 +v 0.283096 -0.142466 0.313459 +v 0.291508 -0.147322 0.313662 +v 0.291700 -0.146676 0.312326 +v 0.278659 -0.151690 0.319867 +v 0.277465 -0.153918 0.320219 +v 0.286180 -0.158182 0.319074 +v 0.287368 -0.155952 0.318723 +v 0.312902 -0.163711 0.314449 +v 0.313653 -0.162155 0.313677 +v 0.312006 -0.165493 0.315080 +v 0.342249 -0.180292 0.310835 +v 0.343138 -0.178507 0.310204 +v 0.343881 -0.176947 0.309433 +v 0.310967 -0.167500 0.315572 +v 0.309783 -0.169733 0.315922 +v 0.340035 -0.184536 0.311676 +v 0.341215 -0.182302 0.311325 +v 0.314261 -0.160824 0.312764 +v 0.314725 -0.159719 0.311711 +v 0.344479 -0.175612 0.308522 +v 0.344932 -0.174501 0.307471 +v 0.283171 -0.142058 0.311981 +v 0.283717 -0.140710 0.310819 +v 0.282654 -0.140192 0.310924 +v 0.282080 -0.141524 0.312088 +v 0.291751 -0.146257 0.310850 +v 0.292285 -0.144884 0.309691 +v 0.281045 -0.141018 0.312156 +v 0.281660 -0.139708 0.310991 +v 0.280771 -0.139274 0.311013 +v 0.280097 -0.140554 0.312176 +v 0.315045 -0.158840 0.310518 +v 0.315221 -0.158186 0.309185 +v 0.345239 -0.173615 0.306279 +v 0.345401 -0.172955 0.304948 +v 0.373837 -0.187610 0.301859 +v 0.373984 -0.186942 0.300529 +v 0.373544 -0.188502 0.303048 +v 0.400602 -0.201744 0.298457 +v 0.400881 -0.200844 0.297271 +v 0.401011 -0.200168 0.295945 +v 0.373103 -0.189619 0.304097 +v 0.372515 -0.190959 0.305006 +v 0.399598 -0.204212 0.300412 +v 0.400174 -0.202866 0.299505 +v 0.371781 -0.192524 0.305776 +v 0.370899 -0.194312 0.306405 +v 0.397999 -0.207573 0.301808 +v 0.398873 -0.205781 0.301180 +v 0.425734 -0.215374 0.294760 +v 0.426148 -0.214245 0.293716 +v 0.425170 -0.216726 0.295665 +v 0.449272 -0.228520 0.290782 +v 0.449824 -0.227162 0.289879 +v 0.450224 -0.226026 0.288838 +v 0.369871 -0.196325 0.306895 +v 0.368695 -0.198561 0.307245 +v 0.395805 -0.211828 0.302646 +v 0.396976 -0.209589 0.302297 +v 0.424455 -0.218300 0.296431 +v 0.423589 -0.220096 0.297058 +v 0.447710 -0.231900 0.292171 +v 0.448567 -0.230099 0.291546 +v 0.422573 -0.222115 0.297545 +v 0.421406 -0.224356 0.297894 +v 0.445539 -0.236165 0.293004 +v 0.446701 -0.233922 0.292657 +v 0.367373 -0.201022 0.307455 +v 0.365171 -0.205043 0.307560 +v 0.392106 -0.218636 0.302960 +v 0.394485 -0.214290 0.302855 +v 0.338710 -0.186996 0.311886 +v 0.336697 -0.190674 0.311991 +v 0.420089 -0.226819 0.298102 +v 0.417542 -0.231472 0.298207 +v 0.441520 -0.243572 0.293316 +v 0.444224 -0.238630 0.293212 +v 0.469401 -0.245030 0.287646 +v 0.470404 -0.243005 0.287161 +v 0.468244 -0.247276 0.287992 +v 0.489564 -0.257709 0.282873 +v 0.490716 -0.255461 0.282528 +v 0.491711 -0.253432 0.282046 +v 0.308456 -0.172191 0.316133 +v 0.306641 -0.175507 0.316238 +v 0.284850 -0.160639 0.319285 +v 0.283190 -0.163672 0.319390 +v 0.471252 -0.241200 0.286538 +v 0.471945 -0.239615 0.285777 +v 0.492549 -0.251622 0.281425 +v 0.493230 -0.250032 0.280667 +v 0.276132 -0.156373 0.320430 +v 0.274527 -0.159301 0.320536 +v 0.274833 -0.155737 0.320550 +v 0.273235 -0.158648 0.320656 +v 0.361360 -0.211962 0.307595 +v 0.387759 -0.226527 0.302995 +v 0.333452 -0.196564 0.312026 +v 0.327865 -0.205727 0.312026 +v 0.354983 -0.222476 0.307595 +v 0.380635 -0.238319 0.302995 +v 0.273486 -0.155078 0.320629 +v 0.271893 -0.157971 0.320735 +v 0.272109 -0.154404 0.320636 +v 0.270519 -0.157278 0.320742 +v 0.303995 -0.180311 0.316273 +v 0.281011 -0.167630 0.319426 +v 0.276906 -0.174254 0.319426 +v 0.299241 -0.188048 0.316273 +v 0.272520 -0.162945 0.320571 +v 0.271252 -0.162246 0.320692 +v 0.267424 -0.168398 0.320692 +v 0.268656 -0.169159 0.320571 +v 0.270720 -0.153725 0.320543 +v 0.269132 -0.156578 0.320648 +v 0.269336 -0.153048 0.320323 +v 0.267749 -0.155880 0.320426 +v 0.269936 -0.161519 0.320770 +v 0.268588 -0.160775 0.320777 +v 0.264835 -0.166799 0.320777 +v 0.266144 -0.167608 0.320770 +v 0.261479 -0.179794 0.320571 +v 0.269470 -0.185288 0.319426 +v 0.260286 -0.178973 0.320692 +v 0.251191 -0.191529 0.320692 +v 0.252342 -0.192407 0.320571 +v 0.260054 -0.198287 0.319426 +v 0.259047 -0.178121 0.320770 +v 0.257778 -0.177249 0.320777 +v 0.248771 -0.189684 0.320777 +v 0.249995 -0.190618 0.320770 +v 0.267226 -0.160024 0.320684 +v 0.265868 -0.159275 0.320461 +v 0.262192 -0.165167 0.320461 +v 0.263511 -0.165982 0.320684 +v 0.291100 -0.200161 0.316273 +v 0.318822 -0.219223 0.312026 +v 0.280928 -0.214204 0.316273 +v 0.307682 -0.234603 0.312026 +v 0.256497 -0.176368 0.320684 +v 0.255219 -0.175489 0.320461 +v 0.246301 -0.187801 0.320461 +v 0.247534 -0.188741 0.320684 +v 0.253961 -0.174624 0.320079 +v 0.252738 -0.173784 0.319510 +v 0.245086 -0.186875 0.320079 +v 0.260893 -0.164364 0.320079 +v 0.267977 -0.152382 0.319946 +v 0.266389 -0.155193 0.320046 +v 0.268244 -0.146593 0.318140 +v 0.264531 -0.158537 0.320079 +v 0.251569 -0.172979 0.318725 +v 0.235622 -0.198676 0.320079 +v 0.236789 -0.199660 0.320461 +v 0.225589 -0.209998 0.320079 +v 0.226707 -0.211038 0.320461 +v 0.237975 -0.200660 0.320684 +v 0.239164 -0.201662 0.320777 +v 0.227842 -0.212095 0.320684 +v 0.228981 -0.213155 0.320777 +v 0.215013 -0.220814 0.320079 +v 0.216079 -0.221908 0.320461 +v 0.203920 -0.231098 0.320079 +v 0.204930 -0.232243 0.320461 +v 0.240340 -0.202654 0.320770 +v 0.241490 -0.203624 0.320692 +v 0.230107 -0.214203 0.320770 +v 0.231208 -0.215228 0.320692 +v 0.217161 -0.223019 0.320684 +v 0.218246 -0.224133 0.320777 +v 0.205956 -0.233406 0.320684 +v 0.206985 -0.234572 0.320777 +v 0.192334 -0.240826 0.320079 +v 0.193287 -0.242019 0.320461 +v 0.180286 -0.249973 0.320079 +v 0.181179 -0.251212 0.320461 +v 0.242597 -0.204557 0.320571 +v 0.250011 -0.210808 0.319426 +v 0.232268 -0.216215 0.320571 +v 0.239366 -0.222822 0.319426 +v 0.219319 -0.225236 0.320770 +v 0.220368 -0.226313 0.320692 +v 0.208004 -0.235726 0.320770 +v 0.208999 -0.236854 0.320692 +v 0.194255 -0.243231 0.320684 +v 0.195226 -0.244446 0.320777 +v 0.182087 -0.252470 0.320684 +v 0.182996 -0.253731 0.320777 +v 0.167803 -0.258518 0.320079 +v 0.168635 -0.259799 0.320461 +v 0.154916 -0.266441 0.320079 +v 0.155684 -0.267761 0.320461 +v 0.141656 -0.273721 0.320079 +v 0.142358 -0.275077 0.320461 +v 0.169479 -0.261100 0.320684 +v 0.170326 -0.262404 0.320777 +v 0.156464 -0.269101 0.320684 +v 0.157245 -0.270446 0.320777 +v 0.196186 -0.245649 0.320770 +v 0.197125 -0.246824 0.320692 +v 0.183897 -0.254979 0.320770 +v 0.184776 -0.256199 0.320692 +v 0.143071 -0.276454 0.320684 +v 0.143786 -0.277836 0.320777 +v 0.171164 -0.263695 0.320770 +v 0.171983 -0.264957 0.320692 +v 0.158019 -0.271777 0.320770 +v 0.158775 -0.273076 0.320692 +v 0.144493 -0.279203 0.320770 +v 0.145184 -0.280538 0.320692 +v 0.130619 -0.285956 0.320770 +v 0.131244 -0.287324 0.320692 +v 0.116431 -0.292021 0.320770 +v 0.116988 -0.293418 0.320692 +v 0.172771 -0.266171 0.320571 +v 0.178051 -0.274305 0.319426 +v 0.191296 -0.265238 0.319426 +v 0.185623 -0.257373 0.320571 +v 0.159503 -0.274328 0.320571 +v 0.164377 -0.282712 0.319426 +v 0.117524 -0.294763 0.320571 +v 0.121115 -0.303771 0.319426 +v 0.135875 -0.297462 0.319426 +v 0.131846 -0.288641 0.320571 +v 0.145850 -0.281824 0.320571 +v 0.150307 -0.290436 0.319426 +v 0.130837 -0.328155 0.316273 +v 0.143297 -0.359405 0.312026 +v 0.160760 -0.351941 0.312026 +v 0.146782 -0.321340 0.316273 +v 0.117224 -0.333415 0.316273 +v 0.128136 -0.365240 0.312026 +v 0.162372 -0.313750 0.316273 +v 0.177835 -0.343629 0.312026 +v 0.194482 -0.334490 0.312026 +v 0.177572 -0.305405 0.316273 +v 0.192343 -0.296324 0.316273 +v 0.210660 -0.324544 0.312026 +v 0.226331 -0.313816 0.312026 +v 0.206652 -0.286530 0.316273 +v 0.198028 -0.247955 0.320571 +v 0.204080 -0.255532 0.319426 +v 0.216373 -0.245211 0.319426 +v 0.209957 -0.237940 0.320571 +v 0.220462 -0.276044 0.316273 +v 0.241457 -0.302333 0.312026 +v 0.256001 -0.290121 0.312026 +v 0.233741 -0.264895 0.316273 +v 0.221379 -0.227351 0.320571 +v 0.228144 -0.234299 0.319426 +v 0.246457 -0.253106 0.316273 +v 0.269928 -0.277210 0.312026 +v 0.283205 -0.263631 0.312026 +v 0.258580 -0.240708 0.316273 +v 0.270079 -0.227730 0.316273 +v 0.295799 -0.249417 0.312026 +v 0.292164 -0.300046 0.307595 +v 0.313198 -0.321647 0.302995 +v 0.328604 -0.305892 0.302995 +v 0.306535 -0.285349 0.307595 +v 0.277090 -0.314021 0.307595 +v 0.297039 -0.336628 0.302995 +v 0.345086 -0.237282 0.307595 +v 0.369930 -0.254365 0.302995 +v 0.333028 -0.253929 0.307595 +v 0.357004 -0.272210 0.302995 +v 0.320167 -0.269964 0.307595 +v 0.343217 -0.289400 0.302995 +v 0.412688 -0.240282 0.298242 +v 0.436189 -0.253248 0.293351 +v 0.404860 -0.253280 0.298242 +v 0.427696 -0.267384 0.293351 +v 0.393392 -0.270497 0.298242 +v 0.415508 -0.285704 0.293351 +v 0.379646 -0.289474 0.298242 +v 0.400989 -0.305748 0.293351 +v 0.364984 -0.307754 0.298242 +v 0.385504 -0.325056 0.293351 +v 0.349444 -0.325292 0.298242 +v 0.369090 -0.343580 0.293351 +v 0.261348 -0.327238 0.307595 +v 0.280163 -0.350797 0.302995 +v 0.244976 -0.339668 0.307595 +v 0.262613 -0.364122 0.302995 +v 0.333061 -0.342047 0.298242 +v 0.351786 -0.361276 0.293351 +v 0.315877 -0.357977 0.298242 +v 0.333636 -0.378103 0.293351 +v 0.228014 -0.351279 0.307595 +v 0.244430 -0.376569 0.302995 +v 0.210503 -0.362044 0.307595 +v 0.225658 -0.388109 0.302995 +v 0.297931 -0.373045 0.298242 +v 0.314681 -0.394018 0.293351 +v 0.279268 -0.387215 0.298242 +v 0.294969 -0.408984 0.293351 +v 0.192485 -0.371937 0.307595 +v 0.206343 -0.398714 0.302995 +v 0.174003 -0.380934 0.307595 +v 0.186530 -0.408359 0.302995 +v 0.259932 -0.400451 0.298242 +v 0.274545 -0.422965 0.293351 +v 0.239970 -0.412723 0.298242 +v 0.253461 -0.435927 0.293351 +v 0.369404 -0.379370 0.288338 +v 0.385947 -0.396359 0.283218 +v 0.404931 -0.376944 0.283218 +v 0.387574 -0.360787 0.288338 +v 0.350345 -0.397039 0.288338 +v 0.366034 -0.414819 0.283218 +v 0.330441 -0.413751 0.288338 +v 0.345239 -0.432280 0.283218 +v 0.309741 -0.429467 0.288338 +v 0.323612 -0.448699 0.283218 +v 0.404810 -0.341335 0.288338 +v 0.422939 -0.356621 0.283218 +v 0.439928 -0.335439 0.283218 +v 0.421071 -0.321061 0.288338 +v 0.219429 -0.424001 0.298242 +v 0.231765 -0.447838 0.293351 +v 0.198360 -0.434257 0.298242 +v 0.209512 -0.458671 0.293351 +v 0.436317 -0.300013 0.288338 +v 0.455857 -0.313448 0.283218 +v 0.469358 -0.293115 0.283218 +v 0.449182 -0.280654 0.288338 +v 0.155102 -0.389013 0.307595 +v 0.166268 -0.417019 0.302995 +v 0.138473 -0.395390 0.307595 +v 0.148252 -0.423911 0.302995 +v 0.108627 -0.336341 0.316273 +v 0.117964 -0.368663 0.312026 +v 0.126810 -0.399284 0.307595 +v 0.135177 -0.428250 0.302995 +v 0.176813 -0.443467 0.298242 +v 0.186754 -0.468399 0.293351 +v 0.157487 -0.450844 0.298242 +v 0.166192 -0.476234 0.293351 +v 0.128313 -0.459845 0.298103 +v 0.133414 -0.458390 0.298207 +v 0.134494 -0.485995 0.293212 +v 0.139912 -0.484450 0.293316 +v 0.143079 -0.455604 0.298242 +v 0.150528 -0.481390 0.293351 +v 0.140310 -0.510598 0.288200 +v 0.146027 -0.508969 0.288303 +v 0.157537 -0.505652 0.288338 +v 0.174382 -0.500122 0.288338 +v 0.196106 -0.491857 0.288338 +v 0.204889 -0.513883 0.283218 +v 0.229857 -0.503210 0.283218 +v 0.220005 -0.481642 0.288338 +v 0.213117 -0.534521 0.278006 +v 0.239088 -0.523419 0.278006 +v 0.243373 -0.470266 0.288338 +v 0.254271 -0.491326 0.283218 +v 0.278074 -0.478258 0.283218 +v 0.266154 -0.457758 0.288338 +v 0.264483 -0.511057 0.278006 +v 0.274029 -0.529502 0.272718 +v 0.299680 -0.515419 0.272718 +v 0.289241 -0.497465 0.278006 +v 0.282929 -0.546699 0.267369 +v 0.291205 -0.562691 0.261974 +v 0.318464 -0.547725 0.261974 +v 0.309414 -0.532160 0.267369 +v 0.288295 -0.444147 0.288338 +v 0.301205 -0.464037 0.283218 +v 0.313302 -0.482673 0.278006 +v 0.324609 -0.500093 0.272718 +v 0.348757 -0.483564 0.272718 +v 0.336609 -0.466719 0.278006 +v 0.359104 -0.449640 0.278006 +v 0.372064 -0.465868 0.272718 +v 0.394475 -0.447051 0.272718 +v 0.380734 -0.431479 0.278006 +v 0.335152 -0.516335 0.267369 +v 0.344956 -0.531439 0.261974 +v 0.370617 -0.513874 0.261974 +v 0.360084 -0.499269 0.267369 +v 0.384148 -0.480999 0.267369 +v 0.395385 -0.495069 0.261974 +v 0.419201 -0.475072 0.261974 +v 0.407287 -0.461571 0.267369 +v 0.401447 -0.412277 0.278006 +v 0.415936 -0.427156 0.272718 +v 0.436394 -0.406233 0.272718 +v 0.421193 -0.392082 0.278006 +v 0.429445 -0.441030 0.267369 +v 0.442006 -0.453931 0.261974 +v 0.463748 -0.431696 0.261974 +v 0.450568 -0.419427 0.267369 +v 0.439924 -0.370943 0.278006 +v 0.455801 -0.384330 0.272718 +v 0.474111 -0.361503 0.272718 +v 0.457596 -0.348910 0.278006 +v 0.470605 -0.396813 0.267369 +v 0.484371 -0.408421 0.261974 +v 0.503828 -0.384162 0.261974 +v 0.489510 -0.373244 0.267369 +v 0.474164 -0.326036 0.278006 +v 0.491277 -0.337803 0.272718 +v 0.505931 -0.315703 0.272718 +v 0.488261 -0.304790 0.278006 +v 0.507234 -0.348775 0.267369 +v 0.522071 -0.358977 0.261974 +v 0.537726 -0.335340 0.261974 +v 0.522406 -0.325878 0.267369 +v 0.497133 -0.419182 0.256549 +v 0.509687 -0.429767 0.250663 +v 0.530161 -0.404240 0.250663 +v 0.517103 -0.394284 0.256549 +v 0.475967 -0.443070 0.256549 +v 0.487986 -0.454259 0.250663 +v 0.535827 -0.368436 0.256549 +v 0.549357 -0.377739 0.250663 +v 0.565900 -0.352741 0.250663 +v 0.551929 -0.344112 0.256549 +v 0.533655 -0.307025 0.267369 +v 0.516700 -0.297670 0.272718 +v 0.549420 -0.315723 0.261974 +v 0.557050 -0.301873 0.261940 +v 0.540965 -0.293756 0.267335 +v 0.523666 -0.285026 0.272684 +v 0.453653 -0.465891 0.256549 +v 0.465108 -0.477656 0.250663 +v 0.430246 -0.487590 0.256549 +v 0.441111 -0.499902 0.250663 +v 0.498516 -0.287637 0.278006 +v 0.479063 -0.276904 0.283218 +v 0.505113 -0.275663 0.277972 +v 0.485264 -0.265647 0.283183 +v 0.405803 -0.508112 0.256549 +v 0.416050 -0.520943 0.250663 +v 0.380382 -0.527412 0.256549 +v 0.389988 -0.540731 0.250663 +v 0.458300 -0.265448 0.288338 +v 0.464081 -0.254957 0.288303 +v 0.466933 -0.249742 0.288200 +v 0.488256 -0.260177 0.283080 +v 0.508234 -0.269953 0.277869 +v 0.509539 -0.267484 0.277663 +v 0.526909 -0.279092 0.272581 +v 0.528210 -0.276620 0.272376 +v 0.544321 -0.287612 0.267233 +v 0.545618 -0.285139 0.267029 +v 0.560511 -0.295535 0.261839 +v 0.510685 -0.265233 0.277319 +v 0.511672 -0.263200 0.276839 +v 0.529350 -0.274366 0.272035 +v 0.546751 -0.282882 0.266690 +v 0.512500 -0.261385 0.276221 +v 0.513169 -0.259788 0.275466 +v 0.513679 -0.258410 0.274574 +v 0.493755 -0.248660 0.279770 +v 0.472484 -0.238251 0.284877 +v 0.472868 -0.237107 0.283839 +v 0.473098 -0.236184 0.282663 +v 0.450471 -0.225111 0.287657 +v 0.426412 -0.213338 0.292532 +v 0.426525 -0.212653 0.291209 +v 0.373983 -0.186498 0.299060 +v 0.374544 -0.184966 0.297906 +v 0.345968 -0.171042 0.302320 +v 0.345417 -0.172519 0.303476 +v 0.400993 -0.199715 0.294479 +v 0.401562 -0.198131 0.293327 +v 0.315253 -0.157758 0.307711 +v 0.315792 -0.156338 0.306553 +v 0.575520 -0.302880 0.256415 +v 0.571963 -0.309399 0.256515 +v 0.586631 -0.316801 0.250630 +v 0.590284 -0.310105 0.250531 +v 0.564037 -0.323788 0.256549 +v 0.578413 -0.331721 0.250663 +v 0.605736 -0.317667 0.243757 +v 0.601986 -0.324550 0.243855 +v 0.593463 -0.340024 0.243887 +v 0.607997 -0.348043 0.236703 +v 0.580523 -0.361772 0.243887 +v 0.594646 -0.370495 0.236703 +v 0.620828 -0.355123 0.229591 +v 0.607114 -0.378195 0.229591 +v 0.563520 -0.387478 0.243887 +v 0.577197 -0.396882 0.236703 +v 0.543829 -0.414662 0.243887 +v 0.557029 -0.424726 0.236703 +v 0.589274 -0.405186 0.229591 +v 0.599836 -0.412449 0.222589 +v 0.568683 -0.433612 0.229591 +v 0.578875 -0.441385 0.222589 +v 0.522827 -0.440847 0.243887 +v 0.535517 -0.451547 0.236703 +v 0.500566 -0.465970 0.243887 +v 0.512716 -0.477280 0.236703 +v 0.608974 -0.418732 0.215731 +v 0.616773 -0.424095 0.209055 +v 0.587694 -0.448108 0.215731 +v 0.595222 -0.453849 0.209055 +v 0.546721 -0.460994 0.229591 +v 0.556521 -0.469257 0.222589 +v 0.523443 -0.487265 0.229591 +v 0.532825 -0.495999 0.222589 +v 0.477099 -0.489970 0.243887 +v 0.488679 -0.501862 0.236703 +v 0.452483 -0.512789 0.243887 +v 0.463466 -0.525236 0.236703 +v 0.623326 -0.428601 0.202597 +v 0.628719 -0.432309 0.196391 +v 0.601545 -0.458670 0.202597 +v 0.606750 -0.462639 0.196391 +v 0.564998 -0.476405 0.215731 +v 0.572236 -0.482508 0.209055 +v 0.540942 -0.503555 0.215731 +v 0.547872 -0.510005 0.209055 +v 0.498903 -0.512361 0.229591 +v 0.507846 -0.521545 0.222589 +v 0.473162 -0.536224 0.229591 +v 0.481643 -0.545836 0.222589 +v 0.633041 -0.435281 0.190475 +v 0.610922 -0.465819 0.190476 +v 0.578315 -0.487634 0.202597 +v 0.583319 -0.491853 0.196391 +v 0.553692 -0.515424 0.202597 +v 0.587328 -0.495234 0.190476 +v 0.527734 -0.541970 0.202597 +v 0.522186 -0.536272 0.209055 +v 0.515582 -0.529490 0.215731 +v 0.488980 -0.554151 0.215731 +v 0.461200 -0.577476 0.215731 +v 0.454280 -0.568811 0.222589 +v 0.389360 -0.599847 0.229591 +v 0.381381 -0.587555 0.236703 +v 0.418324 -0.580020 0.229591 +v 0.409752 -0.568134 0.236703 +v 0.446280 -0.558795 0.229591 +v 0.437135 -0.547345 0.236703 +v 0.372343 -0.573632 0.243887 +v 0.362985 -0.559215 0.250663 +v 0.400042 -0.554671 0.243887 +v 0.298878 -0.577517 0.256549 +v 0.326855 -0.562157 0.256549 +v 0.426776 -0.534374 0.243887 +v 0.354045 -0.545442 0.256549 +v 0.275354 -0.139417 0.313930 +v 0.276330 -0.139155 0.312819 +v 0.277247 -0.139159 0.311591 +v 0.278450 -0.138143 0.310626 +v 0.277589 -0.139327 0.311775 +v 0.278666 -0.138248 0.310729 +v 0.278023 -0.139539 0.311932 +v 0.278979 -0.138401 0.310830 +v 0.278575 -0.139809 0.312055 +v 0.279420 -0.138616 0.310918 +v 0.279270 -0.140149 0.312139 +v 0.280021 -0.138909 0.310984 +v 0.074409 -0.301155 0.311591 +v 0.074607 -0.300260 0.312819 +v 0.073085 -0.302118 0.310626 +v 0.075079 -0.299366 0.313930 +v 0.688712 -0.340512 0.176068 +v 0.688737 -0.338061 0.175583 +v 0.690148 -0.341215 0.172222 +v 0.690127 -0.338738 0.171870 +v 0.691360 -0.341808 0.162776 +v 0.691285 -0.339302 0.162729 +v 0.691189 -0.339256 0.165551 +v 0.691258 -0.341758 0.165666 +v 0.692498 -0.342809 0.162836 +v 0.692488 -0.342804 0.160000 +v 0.691347 -0.341801 0.160000 +v 0.691271 -0.339295 0.160000 +v 0.693382 -0.343981 0.162890 +v 0.694010 -0.345324 0.162939 +v 0.694003 -0.345321 0.160000 +v 0.693373 -0.343977 0.160000 +v 0.694382 -0.346838 0.162982 +v 0.694499 -0.348524 0.163019 +v 0.694495 -0.348522 0.160000 +v 0.694377 -0.346836 0.160000 +v 0.694361 -0.350380 0.163050 +v 0.693967 -0.352407 0.163076 +v 0.693965 -0.352406 0.160000 +v 0.694358 -0.350378 0.160000 +v 0.693318 -0.354605 0.163096 +v 0.692413 -0.356974 0.163111 +v 0.692412 -0.356974 0.160000 +v 0.693317 -0.354605 0.160000 +v 0.691253 -0.359515 0.163119 +v 0.686996 -0.367450 0.163123 +v 0.686995 -0.367450 0.160000 +v 0.691253 -0.359515 0.160000 +v 0.676798 -0.386004 0.163125 +v 0.676798 -0.386004 0.160000 +v 0.661502 -0.411786 0.163125 +v 0.661502 -0.411786 0.160000 +v 0.641947 -0.441405 0.163125 +v 0.641947 -0.441405 0.160000 +v 0.619515 -0.472372 0.163125 +v 0.619515 -0.472372 0.160000 +v 0.595591 -0.502201 0.163125 +v 0.595591 -0.502201 0.160000 +v 0.570232 -0.530820 0.163125 +v 0.570232 -0.530820 0.160000 +v 0.543498 -0.558160 0.163125 +v 0.543498 -0.558160 0.160000 +v 0.515456 -0.584157 0.163125 +v 0.515456 -0.584157 0.160000 +v 0.486173 -0.608745 0.163125 +v 0.486173 -0.608745 0.160000 +v 0.455718 -0.631867 0.163125 +v 0.455718 -0.631867 0.160000 +v 0.424164 -0.653467 0.163125 +v 0.424164 -0.653467 0.160000 +v 0.391590 -0.673493 0.163125 +v 0.391590 -0.673493 0.160000 +v 0.358071 -0.691895 0.163125 +v 0.358071 -0.691896 0.160000 +v 0.323690 -0.708632 0.163125 +v 0.323690 -0.708632 0.160000 +v 0.288529 -0.723661 0.163125 +v 0.288529 -0.723661 0.160000 +v 0.255319 -0.736183 0.163125 +v 0.255319 -0.736183 0.160000 +v 0.226793 -0.745399 0.163125 +v 0.226793 -0.745399 0.160000 +v 0.206443 -0.751241 0.163123 +v 0.206443 -0.751241 0.160000 +v 0.197763 -0.753639 0.163119 +v 0.195029 -0.754208 0.163111 +v 0.195029 -0.754208 0.160000 +v 0.197763 -0.753638 0.160000 +v 0.192519 -0.754567 0.163096 +v 0.190231 -0.754714 0.163076 +v 0.190231 -0.754712 0.160000 +v 0.192518 -0.754565 0.160000 +v 0.188167 -0.754649 0.163051 +v 0.186326 -0.754374 0.163019 +v 0.186325 -0.754370 0.160000 +v 0.188166 -0.754646 0.160000 +v 0.184709 -0.753887 0.162982 +v 0.183314 -0.753189 0.162939 +v 0.183313 -0.753182 0.160000 +v 0.184707 -0.753881 0.160000 +v 0.182143 -0.752280 0.162890 +v 0.181195 -0.751159 0.162836 +v 0.181193 -0.751148 0.160000 +v 0.182141 -0.752271 0.160000 +v 0.182113 -0.752151 0.165944 +v 0.181167 -0.751039 0.165812 +v 0.180471 -0.749827 0.162776 +v 0.177880 -0.749236 0.162729 +v 0.177876 -0.749220 0.160000 +v 0.180467 -0.749814 0.160000 +v 0.180444 -0.749717 0.165666 +v 0.177856 -0.749133 0.165551 +v 0.180359 -0.749356 0.168785 +v 0.181076 -0.750655 0.169068 +v 0.177776 -0.748791 0.168562 +v 0.182017 -0.751745 0.169324 +v 0.426487 -0.212191 0.289747 +v 0.427062 -0.210556 0.288598 +v 0.690925 -0.341595 0.168785 +v 0.690874 -0.339102 0.168562 +v 0.191662 -0.750942 0.179363 +v 0.279208 0.134449 0.308211 +v 0.279639 0.134656 0.309378 +v 0.278698 0.134203 0.306747 +v 0.279911 0.134787 0.309953 +v 0.280087 0.134872 0.310180 +v 0.280229 0.134940 0.310304 +v 0.280403 0.135024 0.310381 +v 0.280676 0.135156 0.310463 +v 0.281081 0.135350 0.310539 +v 0.281652 0.135625 0.310599 +v 0.282378 0.135975 0.310625 +v 0.283249 0.136395 0.310602 +v 0.284230 0.136867 0.310536 +v 0.285286 0.137376 0.310432 +v 0.293867 0.141507 0.309304 +v 0.317422 0.152850 0.306167 +v 0.347662 0.167412 0.301935 +v 0.376297 0.181201 0.297522 +v 0.403370 0.194237 0.292943 +v 0.428923 0.206542 0.288215 +v 0.452995 0.218134 0.283352 +v 0.475629 0.229033 0.278372 +v 0.496864 0.239258 0.273289 +v 0.516741 0.248829 0.268121 +v 0.535300 0.257766 0.262883 +v 0.552582 0.266088 0.257591 +v 0.568622 0.273812 0.252265 +v 0.583454 0.280955 0.246923 +v 0.598009 0.287964 0.241142 +v 0.613216 0.295286 0.234499 +v 0.627852 0.302334 0.227482 +v 0.640694 0.308518 0.220581 +v 0.651842 0.313886 0.213839 +v 0.661395 0.318486 0.207301 +v 0.669451 0.322365 0.201020 +v 0.676108 0.325571 0.195047 +v 0.681472 0.328154 0.189440 +v 0.685649 0.330165 0.184259 +v 0.688760 0.331663 0.179566 +v 0.690928 0.332707 0.175421 +v 0.692305 0.333370 0.171753 +v 0.693043 0.333726 0.168488 +v 0.693353 0.333875 0.165513 +v 0.693447 0.333920 0.162713 +v 0.693432 0.333913 0.160000 +v 0.068853 0.302142 0.308211 +v 0.068959 0.302608 0.309378 +v 0.068727 0.301591 0.306747 +v 0.069026 0.302903 0.309953 +v 0.069070 0.303093 0.310180 +v 0.069105 0.303247 0.310304 +v 0.069148 0.303436 0.310381 +v 0.069215 0.303731 0.310463 +v 0.069315 0.304169 0.310539 +v 0.069456 0.304787 0.310599 +v 0.069635 0.305573 0.310625 +v 0.069850 0.306516 0.310602 +v 0.070092 0.307577 0.310536 +v 0.070352 0.308720 0.310432 +v 0.072468 0.318005 0.309304 +v 0.078277 0.343495 0.306167 +v 0.085734 0.376220 0.301935 +v 0.092796 0.407208 0.297522 +v 0.099472 0.436505 0.292943 +v 0.105773 0.464156 0.288215 +v 0.111710 0.490207 0.283352 +v 0.117291 0.514699 0.278372 +v 0.122528 0.537678 0.273289 +v 0.127429 0.559188 0.268121 +v 0.132006 0.579271 0.262883 +v 0.136268 0.597973 0.257591 +v 0.140223 0.615331 0.252265 +v 0.143881 0.631382 0.246923 +v 0.147471 0.647134 0.241142 +v 0.151221 0.663590 0.234499 +v 0.154830 0.679428 0.227482 +v 0.157997 0.693325 0.220581 +v 0.160746 0.705388 0.213839 +v 0.163102 0.715726 0.207301 +v 0.165089 0.724444 0.201020 +v 0.166730 0.731648 0.195047 +v 0.168053 0.737453 0.189440 +v 0.169083 0.741972 0.184259 +v 0.169850 0.745339 0.179566 +v 0.170385 0.747685 0.175421 +v 0.170724 0.749175 0.171753 +v 0.170906 0.749974 0.168488 +v 0.170983 0.750310 0.165513 +v 0.171006 0.750411 0.162713 +v 0.171002 0.750395 0.160000 +v -0.193597 0.241973 0.308211 +v -0.193896 0.242346 0.309378 +v -0.193243 0.241531 0.306747 +v -0.194084 0.242582 0.309953 +v -0.194206 0.242735 0.310180 +v -0.194305 0.242858 0.310304 +v -0.194426 0.243009 0.310381 +v -0.194615 0.243245 0.310463 +v -0.194896 0.243596 0.310539 +v -0.195291 0.244091 0.310599 +v -0.195795 0.244720 0.310625 +v -0.196399 0.245475 0.310602 +v -0.197079 0.246326 0.310536 +v -0.197812 0.247241 0.310432 +v -0.203761 0.254677 0.309304 +v -0.220094 0.275091 0.306167 +v -0.241062 0.301298 0.301935 +v -0.260917 0.326115 0.297522 +v -0.279689 0.349578 0.292943 +v -0.297407 0.371723 0.288215 +v -0.314099 0.392586 0.283352 +v -0.329792 0.412201 0.278372 +v -0.344516 0.430604 0.273289 +v -0.358299 0.447830 0.268121 +v -0.371168 0.463915 0.262883 +v -0.383150 0.478892 0.257591 +v -0.394272 0.492793 0.252265 +v -0.404557 0.505648 0.246923 +v -0.414650 0.518263 0.241142 +v -0.425194 0.531442 0.234499 +v -0.435342 0.544125 0.227482 +v -0.444247 0.555254 0.220581 +v -0.451977 0.564915 0.213839 +v -0.458600 0.573194 0.207301 +v -0.464186 0.580176 0.201020 +v -0.468802 0.585946 0.195047 +v -0.472522 0.590594 0.189440 +v -0.475418 0.594214 0.184259 +v -0.477574 0.596910 0.179566 +v -0.479077 0.598789 0.175421 +v -0.480033 0.599983 0.171753 +v -0.480545 0.600622 0.168488 +v -0.480760 0.600891 0.165513 +v -0.480825 0.600972 0.162713 +v -0.480815 0.600959 0.160000 +v -0.309901 -0.000068 0.308211 +v -0.310379 -0.000068 0.309378 +v -0.309335 -0.000067 0.306747 +v -0.310681 -0.000068 0.309953 +v -0.310876 -0.000068 0.310180 +v -0.311034 -0.000068 0.310304 +v -0.311228 -0.000068 0.310381 +v -0.311530 -0.000068 0.310463 +v -0.311980 -0.000068 0.310539 +v -0.312613 -0.000068 0.310599 +v -0.313419 -0.000068 0.310625 +v -0.314386 -0.000069 0.310602 +v -0.315475 -0.000069 0.310536 +v -0.316647 -0.000069 0.310432 +v -0.326171 -0.000071 0.309304 +v -0.352315 -0.000077 0.306167 +v -0.385879 -0.000084 0.301935 +v -0.417661 -0.000091 0.297522 +v -0.447710 -0.000098 0.292943 +v -0.476070 -0.000104 0.288215 +v -0.502789 -0.000110 0.283352 +v -0.527910 -0.000115 0.278372 +v -0.551479 -0.000120 0.273289 +v -0.573540 -0.000125 0.268121 +v -0.594139 -0.000130 0.262883 +v -0.613321 -0.000134 0.257591 +v -0.631124 -0.000138 0.252265 +v -0.647587 -0.000141 0.246923 +v -0.663742 -0.000145 0.241142 +v -0.680621 -0.000149 0.234499 +v -0.696865 -0.000152 0.227482 +v -0.711118 -0.000155 0.220581 +v -0.723492 -0.000158 0.213839 +v -0.734094 -0.000160 0.207301 +v -0.743036 -0.000162 0.201020 +v -0.750425 -0.000164 0.195047 +v -0.756379 -0.000165 0.189440 +v -0.761014 -0.000166 0.184259 +v -0.764467 -0.000167 0.179566 +v -0.766873 -0.000167 0.175421 +v -0.768402 -0.000168 0.171753 +v -0.769221 -0.000168 0.168488 +v -0.769566 -0.000168 0.165513 +v -0.769669 -0.000168 0.162713 +v -0.769653 -0.000168 0.160000 +v -0.193491 -0.242057 0.308211 +v -0.193790 -0.242431 0.309378 +v -0.193138 -0.241615 0.306747 +v -0.193978 -0.242667 0.309953 +v -0.194100 -0.242819 0.310180 +v -0.194199 -0.242942 0.310304 +v -0.194320 -0.243094 0.310381 +v -0.194509 -0.243330 0.310463 +v -0.194789 -0.243681 0.310539 +v -0.195185 -0.244176 0.310599 +v -0.195688 -0.244806 0.310625 +v -0.196292 -0.245561 0.310602 +v -0.196972 -0.246412 0.310536 +v -0.197704 -0.247327 0.310432 +v -0.203650 -0.254766 0.309304 +v -0.219974 -0.275187 0.306167 +v -0.240930 -0.301404 0.301935 +v -0.260775 -0.326229 0.297522 +v -0.279537 -0.349700 0.292943 +v -0.297245 -0.371853 0.288215 +v -0.313927 -0.392723 0.283352 +v -0.329613 -0.412345 0.278372 +v -0.344329 -0.430754 0.273289 +v -0.358103 -0.447987 0.268121 +v -0.370965 -0.464077 0.262883 +v -0.382942 -0.479059 0.257591 +v -0.394057 -0.492965 0.252265 +v -0.404337 -0.505825 0.246923 +v -0.414424 -0.518443 0.241142 +v -0.424962 -0.531627 0.234499 +v -0.435105 -0.544315 0.227482 +v -0.444005 -0.555448 0.220581 +v -0.451730 -0.565112 0.213839 +v -0.458350 -0.573394 0.207301 +v -0.463933 -0.580379 0.201020 +v -0.468547 -0.586150 0.195047 +v -0.472264 -0.590801 0.189440 +v -0.475158 -0.594421 0.184259 +v -0.477314 -0.597119 0.179566 +v -0.478817 -0.598998 0.175421 +v -0.479771 -0.600192 0.171753 +v -0.480283 -0.600832 0.168488 +v -0.480498 -0.601101 0.165513 +v -0.480563 -0.601182 0.162713 +v -0.480552 -0.601169 0.160000 +v 0.068985 -0.302112 0.308211 +v 0.069091 -0.302578 0.309378 +v 0.068859 -0.301561 0.306747 +v 0.069158 -0.302873 0.309953 +v 0.069202 -0.303063 0.310180 +v 0.069237 -0.303217 0.310304 +v 0.069280 -0.303406 0.310381 +v 0.069347 -0.303701 0.310463 +v 0.069448 -0.304139 0.310539 +v 0.069589 -0.304756 0.310599 +v 0.069768 -0.305542 0.310625 +v 0.069983 -0.306485 0.310602 +v 0.070226 -0.307547 0.310536 +v 0.070487 -0.308689 0.310432 +v 0.072607 -0.317974 0.309304 +v 0.078426 -0.343461 0.306167 +v 0.085898 -0.376182 0.301935 +v 0.092973 -0.407167 0.297522 +v 0.099662 -0.436461 0.292943 +v 0.105976 -0.464110 0.288215 +v 0.111923 -0.490158 0.283352 +v 0.117516 -0.514648 0.278372 +v 0.122762 -0.537624 0.273289 +v 0.127673 -0.559132 0.268121 +v 0.132259 -0.579214 0.262883 +v 0.136529 -0.597914 0.257591 +v 0.140492 -0.615269 0.252265 +v 0.144157 -0.631319 0.246923 +v 0.147753 -0.647069 0.241142 +v 0.151510 -0.663524 0.234499 +v 0.155126 -0.679360 0.227482 +v 0.158299 -0.693256 0.220581 +v 0.161054 -0.705318 0.213839 +v 0.163414 -0.715655 0.207301 +v 0.165405 -0.724372 0.201020 +v 0.167049 -0.731575 0.195047 +v 0.168375 -0.737379 0.189440 +v 0.169407 -0.741898 0.184259 +v 0.170175 -0.745265 0.179566 +v 0.170711 -0.747611 0.175421 +v 0.171051 -0.749101 0.171753 +v 0.171234 -0.749900 0.168488 +v 0.171310 -0.750235 0.165513 +v 0.171333 -0.750337 0.162713 +v 0.171330 -0.750320 0.160000 +v 0.693593 -0.333618 0.162713 +v 0.693499 -0.333573 0.165513 +v 0.693577 -0.333610 0.160000 +v 0.693189 -0.333423 0.168488 +v 0.692450 -0.333068 0.171753 +v 0.691073 -0.332406 0.175421 +v 0.688904 -0.331363 0.179566 +v 0.685793 -0.329866 0.184259 +v 0.681615 -0.327857 0.189440 +v 0.676250 -0.325276 0.195047 +v 0.669592 -0.322073 0.201020 +v 0.661534 -0.318197 0.207301 +v 0.651979 -0.313602 0.213839 +v 0.640829 -0.308238 0.220581 +v 0.627984 -0.302060 0.227483 +v 0.613345 -0.295019 0.234499 +v 0.598135 -0.287703 0.241142 +v 0.583577 -0.280700 0.246923 +v 0.568740 -0.273564 0.252265 +v 0.552698 -0.265847 0.257591 +v 0.535412 -0.257533 0.262883 +v 0.516849 -0.248604 0.268121 +v 0.496968 -0.239041 0.273289 +v 0.475729 -0.228825 0.278372 +v 0.453091 -0.217936 0.283352 +v 0.429013 -0.206355 0.288215 +v 0.403455 -0.194061 0.292943 +v 0.376376 -0.181037 0.297522 +v 0.347735 -0.167260 0.301935 +v 0.317488 -0.152712 0.306167 +v 0.293928 -0.141379 0.309304 +v 0.285346 -0.137251 0.310432 +v 0.284290 -0.136743 0.310536 +v 0.283309 -0.136271 0.310602 +v 0.282437 -0.135852 0.310625 +v 0.281711 -0.135503 0.310599 +v 0.281140 -0.135228 0.310539 +v 0.280735 -0.135033 0.310463 +v 0.280462 -0.134902 0.310381 +v 0.280288 -0.134818 0.310304 +v 0.280145 -0.134750 0.310180 +v 0.279969 -0.134665 0.309953 +v 0.279697 -0.134534 0.309378 +v 0.279267 -0.134327 0.308211 +v 0.278757 -0.134082 0.306747 +v -0.054508 -0.894470 2.226001 +v -0.054440 -0.877847 2.225137 +v -0.109453 -0.877847 2.218630 +v -0.109589 -0.894470 2.219485 +v 0.000915 -0.894470 2.228182 +v 0.000915 -0.877847 2.227316 +v -0.054525 -0.860486 2.226229 +v 0.000915 -0.860486 2.228411 +v -0.109624 -0.860486 2.219711 +v -0.163986 -0.894470 2.208661 +v -0.163784 -0.877847 2.207819 +v -0.217102 -0.877847 2.192785 +v -0.217370 -0.894470 2.193609 +v -0.164040 -0.860486 2.208884 +v -0.217441 -0.860486 2.193827 +v -0.269406 -0.894470 2.174408 +v -0.269074 -0.877847 2.173608 +v -0.319384 -0.877847 2.150418 +v -0.319778 -0.894470 2.151190 +v -0.269493 -0.860486 2.174620 +v -0.319881 -0.860486 2.151394 +v -0.368169 -0.894470 2.124086 +v -0.367716 -0.877847 2.123347 +v -0.413780 -0.877847 2.092573 +v -0.414289 -0.894470 2.093273 +v -0.368289 -0.860486 2.124281 +v -0.414423 -0.860486 2.093459 +v -0.457844 -0.894470 2.058933 +v -0.457282 -0.877847 2.058274 +v -0.497963 -0.877847 2.020673 +v -0.498576 -0.894470 2.021285 +v -0.457993 -0.860486 2.059107 +v -0.498738 -0.860486 2.021447 +v -0.536223 -0.894470 1.980554 +v -0.535565 -0.877847 1.979991 +v -0.569863 -0.877847 1.936489 +v -0.570564 -0.894470 1.936998 +v -0.536397 -0.860486 1.980702 +v -0.570749 -0.860486 1.937133 +v -0.601376 -0.894470 1.890878 +v -0.600638 -0.877847 1.890426 +v -0.627709 -0.877847 1.842094 +v -0.628480 -0.894470 1.842487 +v -0.601571 -0.860486 1.890998 +v -0.628684 -0.860486 1.842591 +v -0.651698 -0.894470 1.792115 +v -0.650898 -0.877847 1.791784 +v -0.670075 -0.877847 1.739812 +v -0.670899 -0.894470 1.740080 +v -0.651910 -0.860486 1.792203 +v -0.671117 -0.860486 1.740150 +v -0.685951 -0.894470 1.686697 +v -0.685109 -0.877847 1.686494 +v -0.695920 -0.877847 1.632161 +v -0.696775 -0.894470 1.632298 +v -0.686174 -0.860486 1.686749 +v -0.697001 -0.860486 1.632334 +v -0.703291 -0.894470 1.577217 +v -0.702428 -0.877847 1.577149 +v -0.704606 -0.877847 1.521795 +v -0.705472 -0.894470 1.521794 +v -0.703519 -0.860486 1.577235 +v -0.705701 -0.860486 1.521795 +v -0.703291 -0.894470 1.466372 +v -0.702428 -0.877847 1.466440 +v -0.695920 -0.877847 1.411426 +v -0.696775 -0.894470 1.411291 +v -0.703519 -0.860486 1.466354 +v -0.697001 -0.860486 1.411255 +v -0.685951 -0.894470 1.356892 +v -0.685109 -0.877847 1.357094 +v -0.670075 -0.877847 1.303776 +v -0.670899 -0.894470 1.303509 +v -0.686174 -0.860486 1.356839 +v -0.671117 -0.860486 1.303438 +v -0.651698 -0.894470 1.251473 +v -0.650898 -0.877847 1.251804 +v -0.627708 -0.877847 1.201494 +v -0.628480 -0.894470 1.201101 +v -0.651910 -0.860486 1.251385 +v -0.628684 -0.860486 1.200997 +v -0.601375 -0.894470 1.152710 +v -0.600637 -0.877847 1.153162 +v -0.569863 -0.877847 1.107099 +v -0.570563 -0.894470 1.106590 +v -0.601571 -0.860486 1.152590 +v -0.570749 -0.860486 1.106456 +v -0.536223 -0.894470 1.063035 +v -0.535564 -0.877847 1.063597 +v -0.497963 -0.877847 1.022915 +v -0.498575 -0.894470 1.022303 +v -0.536397 -0.860486 1.062886 +v -0.498737 -0.860486 1.022141 +v -0.457844 -0.894470 0.984656 +v -0.457281 -0.877847 0.985314 +v -0.413779 -0.877847 0.951016 +v -0.414288 -0.894470 0.950315 +v -0.457992 -0.860486 0.984482 +v -0.414423 -0.860486 0.950130 +v -0.368168 -0.894470 0.919503 +v -0.367717 -0.877847 0.920241 +v -0.319385 -0.877847 0.893170 +v -0.319778 -0.894470 0.892399 +v -0.368288 -0.860486 0.919308 +v -0.319882 -0.860486 0.892195 +v -0.269406 -0.894470 0.869181 +v -0.269075 -0.877847 0.869981 +v -0.217103 -0.877847 0.850804 +v -0.217370 -0.894470 0.849980 +v -0.269494 -0.860486 0.868969 +v -0.217441 -0.860486 0.849762 +v -0.163987 -0.894470 0.834928 +v -0.163785 -0.877847 0.835770 +v -0.109453 -0.877847 0.824959 +v -0.109588 -0.894470 0.824104 +v -0.164040 -0.860486 0.834705 +v -0.109624 -0.860486 0.823878 +v -0.054507 -0.894470 0.817588 +v -0.054439 -0.877847 0.818452 +v 0.000915 -0.877847 0.816273 +v 0.000916 -0.894470 0.815407 +v -0.054525 -0.860486 0.817360 +v 0.000915 -0.860486 0.815178 +v 0.056338 -0.894470 0.817588 +v 0.056270 -0.877847 0.818452 +v 0.111283 -0.877847 0.824960 +v 0.111419 -0.894470 0.824104 +v 0.056356 -0.860486 0.817360 +v 0.111455 -0.860486 0.823878 +v 0.165818 -0.894470 0.834928 +v 0.165615 -0.877848 0.835771 +v 0.218934 -0.877848 0.850804 +v 0.219201 -0.894470 0.849981 +v 0.165871 -0.860486 0.834706 +v 0.219272 -0.860486 0.849763 +v 0.271237 -0.894470 0.869181 +v 0.270906 -0.877847 0.869981 +v 0.321216 -0.877847 0.893171 +v 0.321609 -0.894470 0.892399 +v 0.271325 -0.860486 0.868970 +v 0.321713 -0.860486 0.892195 +v 0.370000 -0.894470 0.919504 +v 0.369548 -0.877847 0.920242 +v 0.415611 -0.877847 0.951016 +v 0.416120 -0.894470 0.950316 +v 0.370120 -0.860486 0.919308 +v 0.416254 -0.860486 0.950130 +v 0.459675 -0.894470 0.984657 +v 0.459113 -0.877847 0.985315 +v 0.499795 -0.877847 1.022916 +v 0.500407 -0.894470 1.022304 +v 0.459824 -0.860486 0.984482 +v 0.500569 -0.860486 1.022142 +v 0.538054 -0.894470 1.063036 +v 0.537396 -0.877847 1.063598 +v 0.571694 -0.877848 1.107100 +v 0.572395 -0.894470 1.106591 +v 0.538228 -0.860486 1.062887 +v 0.572580 -0.860486 1.106457 +v 0.603207 -0.894471 1.152711 +v 0.602468 -0.877848 1.153163 +v 0.629540 -0.877848 1.201496 +v 0.630311 -0.894471 1.201103 +v 0.603402 -0.860486 1.152591 +v 0.630515 -0.860487 1.200999 +v 0.653529 -0.894471 1.251474 +v 0.652729 -0.877848 1.251806 +v 0.671906 -0.877848 1.303778 +v 0.672730 -0.894471 1.303510 +v 0.653741 -0.860486 1.251387 +v 0.672947 -0.860487 1.303439 +v 0.687782 -0.894471 1.356894 +v 0.686940 -0.877848 1.357096 +v 0.697750 -0.877848 1.411427 +v 0.698606 -0.894471 1.411292 +v 0.688004 -0.860486 1.356840 +v 0.698832 -0.860487 1.411256 +v 0.705122 -0.894471 1.466373 +v 0.704258 -0.877848 1.466442 +v 0.706436 -0.877848 1.521796 +v 0.707302 -0.894471 1.521796 +v 0.705350 -0.860486 1.466355 +v 0.707532 -0.860487 1.521796 +v 0.705121 -0.894471 1.577217 +v 0.704258 -0.877848 1.577149 +v 0.697750 -0.877848 1.632163 +v 0.698605 -0.894471 1.632298 +v 0.705350 -0.860487 1.577235 +v 0.698832 -0.860487 1.632334 +v 0.687781 -0.894471 1.686697 +v 0.686939 -0.877848 1.686495 +v 0.671905 -0.877848 1.739813 +v 0.672729 -0.894471 1.740081 +v 0.688004 -0.860487 1.686751 +v 0.672947 -0.860487 1.740152 +v 0.653528 -0.894471 1.792117 +v 0.652728 -0.877848 1.791785 +v 0.629538 -0.877848 1.842095 +v 0.630310 -0.894471 1.842488 +v 0.653740 -0.860486 1.792204 +v 0.630514 -0.860487 1.842592 +v 0.603206 -0.894471 1.890880 +v 0.602467 -0.877848 1.890427 +v 0.571693 -0.877847 1.936490 +v 0.572394 -0.894470 1.936999 +v 0.603401 -0.860486 1.890999 +v 0.572579 -0.860486 1.937134 +v 0.538053 -0.894470 1.980555 +v 0.537394 -0.877847 1.979992 +v 0.499793 -0.877847 2.020674 +v 0.500405 -0.894470 2.021286 +v 0.538227 -0.860486 1.980704 +v 0.500567 -0.860486 2.021448 +v 0.459674 -0.894470 2.058934 +v 0.459111 -0.877847 2.058275 +v 0.415609 -0.877847 2.092574 +v 0.416118 -0.894470 2.093274 +v 0.459823 -0.860486 2.059108 +v 0.416253 -0.860486 2.093460 +v 0.369998 -0.894470 2.124086 +v 0.369546 -0.877847 2.123348 +v 0.321214 -0.877847 2.150419 +v 0.321607 -0.894470 2.151191 +v 0.370118 -0.860486 2.124281 +v 0.321711 -0.860486 2.151395 +v 0.271235 -0.894470 2.174408 +v 0.270904 -0.877847 2.173608 +v 0.218932 -0.877847 2.192785 +v 0.219199 -0.894470 2.193609 +v 0.271323 -0.860486 2.174620 +v 0.219270 -0.860486 2.193827 +v 0.165815 -0.894470 2.208661 +v 0.165613 -0.877847 2.207819 +v 0.111281 -0.877847 2.218630 +v 0.111417 -0.894470 2.219485 +v 0.165869 -0.860486 2.208884 +v 0.111453 -0.860486 2.219711 +v 0.056336 -0.894470 2.226001 +v 0.056268 -0.877847 2.225137 +v 0.056354 -0.860486 2.226229 +v 0.000915 -0.806815 2.259275 +v -0.056947 -0.806815 2.256998 +v -0.055700 -0.823152 2.241151 +v 0.000915 -0.823152 2.243379 +v 0.000915 -0.794195 2.279568 +v -0.058539 -0.794195 2.277228 +v -0.114453 -0.806815 2.250196 +v -0.117627 -0.794195 2.270238 +v -0.111966 -0.823152 2.234495 +v -0.171245 -0.806815 2.238895 +v -0.167534 -0.823152 2.223439 +v -0.175982 -0.794195 2.258627 +v -0.226979 -0.806815 2.223181 +v -0.233249 -0.794195 2.242480 +v -0.222066 -0.823152 2.208062 +v -0.281305 -0.806815 2.203135 +v -0.275222 -0.823152 2.188449 +v -0.289070 -0.794195 2.221882 +v -0.333894 -0.806815 2.178894 +v -0.343106 -0.794195 2.196975 +v -0.326677 -0.823152 2.164731 +v -0.384415 -0.806815 2.150597 +v -0.376110 -0.823152 2.137043 +v -0.395018 -0.794195 2.167899 +v -0.432565 -0.806815 2.118429 +v -0.444492 -0.794195 2.134845 +v -0.423221 -0.823152 2.105568 +v -0.478038 -0.806815 2.082576 +v -0.467714 -0.823152 2.070489 +v -0.491217 -0.794195 2.098006 +v -0.520563 -0.806815 2.043272 +v -0.534911 -0.794195 2.057621 +v -0.509322 -0.823152 2.032032 +v -0.559867 -0.806815 2.000747 +v -0.547779 -0.823152 1.990424 +v -0.575297 -0.794195 2.013926 +v -0.595719 -0.806815 1.955274 +v -0.612136 -0.794195 1.967202 +v -0.582859 -0.823152 1.945931 +v -0.627888 -0.806815 1.907125 +v -0.614334 -0.823152 1.898819 +v -0.645190 -0.794195 1.917727 +v -0.656185 -0.806815 1.856603 +v -0.674266 -0.794195 1.865816 +v -0.642021 -0.823152 1.849386 +v -0.680425 -0.806815 1.804014 +v -0.665739 -0.823152 1.797931 +v -0.699173 -0.794195 1.811780 +v -0.700471 -0.806815 1.749688 +v -0.719770 -0.794195 1.755959 +v -0.685353 -0.823152 1.744776 +v -0.716186 -0.806815 1.693954 +v -0.700729 -0.823152 1.690244 +v -0.735917 -0.794195 1.698691 +v -0.727486 -0.806815 1.637161 +v -0.747529 -0.794195 1.640336 +v -0.711786 -0.823152 1.634675 +v -0.734289 -0.806815 1.579656 +v -0.718442 -0.823152 1.578409 +v -0.754518 -0.794195 1.581248 +v -0.736566 -0.806815 1.521795 +v -0.756858 -0.794195 1.521794 +v -0.720670 -0.823152 1.521795 +v -0.734289 -0.806815 1.463933 +v -0.718442 -0.823152 1.465180 +v -0.754518 -0.794195 1.462340 +v -0.727486 -0.806815 1.406427 +v -0.747528 -0.794195 1.403252 +v -0.711785 -0.823152 1.408914 +v -0.716185 -0.806815 1.349634 +v -0.700728 -0.823152 1.353344 +v -0.735917 -0.794195 1.344896 +v -0.700470 -0.806815 1.293900 +v -0.719770 -0.794195 1.287629 +v -0.685352 -0.823152 1.298812 +v -0.680425 -0.806815 1.239574 +v -0.665739 -0.823152 1.245657 +v -0.699172 -0.794195 1.231808 +v -0.656185 -0.806815 1.186985 +v -0.674265 -0.794195 1.177772 +v -0.642021 -0.823152 1.194202 +v -0.627887 -0.806815 1.136463 +v -0.614333 -0.823152 1.144769 +v -0.645189 -0.794195 1.125861 +v -0.595719 -0.806815 1.088314 +v -0.612135 -0.794195 1.076386 +v -0.582858 -0.823152 1.097657 +v -0.559866 -0.806815 1.042841 +v -0.547779 -0.823152 1.053165 +v -0.575297 -0.794195 1.029662 +v -0.520562 -0.806815 1.000316 +v -0.534911 -0.794195 0.985968 +v -0.509322 -0.823152 1.011557 +v -0.478037 -0.806815 0.961012 +v -0.467714 -0.823152 0.973100 +v -0.491216 -0.794195 0.945582 +v -0.432564 -0.806815 0.925160 +v -0.444492 -0.794195 0.908743 +v -0.423221 -0.823152 0.938020 +v -0.384415 -0.806815 0.892991 +v -0.376109 -0.823152 0.906545 +v -0.395017 -0.794195 0.875689 +v -0.333894 -0.806815 0.864694 +v -0.343107 -0.794195 0.846613 +v -0.326678 -0.823152 0.878857 +v -0.281305 -0.806815 0.840454 +v -0.275222 -0.823152 0.855140 +v -0.289071 -0.794195 0.821706 +v -0.226979 -0.806815 0.820408 +v -0.233250 -0.794195 0.801109 +v -0.222067 -0.823152 0.835527 +v -0.171245 -0.806815 0.804694 +v -0.167535 -0.823152 0.820150 +v -0.175982 -0.794195 0.784962 +v -0.114452 -0.806815 0.793393 +v -0.117627 -0.794195 0.773351 +v -0.111965 -0.823152 0.809094 +v -0.056946 -0.806815 0.786590 +v -0.055699 -0.823152 0.802438 +v -0.058538 -0.794195 0.766361 +v 0.000915 -0.806815 0.784314 +v 0.000915 -0.794195 0.764021 +v 0.000915 -0.823152 0.800210 +v 0.058777 -0.806815 0.786590 +v 0.057530 -0.823152 0.802438 +v 0.060369 -0.794195 0.766361 +v 0.116283 -0.806815 0.793393 +v 0.119457 -0.794195 0.773351 +v 0.113796 -0.823152 0.809094 +v 0.173076 -0.806815 0.804694 +v 0.169365 -0.823153 0.820151 +v 0.177813 -0.794195 0.784962 +v 0.228810 -0.806815 0.820409 +v 0.235080 -0.794196 0.801110 +v 0.223898 -0.823153 0.835527 +v 0.283136 -0.806815 0.840454 +v 0.277053 -0.823153 0.855141 +v 0.290902 -0.794195 0.821707 +v 0.335725 -0.806815 0.864695 +v 0.344938 -0.794196 0.846614 +v 0.328508 -0.823153 0.878858 +v 0.386247 -0.806815 0.892992 +v 0.377941 -0.823152 0.906546 +v 0.396849 -0.794195 0.875690 +v 0.434396 -0.806815 0.925160 +v 0.446324 -0.794196 0.908744 +v 0.425053 -0.823152 0.938021 +v 0.479869 -0.806815 0.961013 +v 0.469545 -0.823153 0.973100 +v 0.493048 -0.794195 0.945582 +v 0.522394 -0.806815 1.000317 +v 0.536742 -0.794196 0.985969 +v 0.511153 -0.823152 1.011558 +v 0.561698 -0.806815 1.042842 +v 0.549611 -0.823153 1.053166 +v 0.577128 -0.794195 1.029663 +v 0.597550 -0.806815 1.088315 +v 0.613967 -0.794196 1.076387 +v 0.584690 -0.823153 1.097658 +v 0.629719 -0.806815 1.136464 +v 0.616165 -0.823153 1.144770 +v 0.647020 -0.794196 1.125862 +v 0.658016 -0.806815 1.186986 +v 0.676095 -0.794196 1.177774 +v 0.643852 -0.823153 1.194203 +v 0.682256 -0.806815 1.239575 +v 0.667570 -0.823153 1.245658 +v 0.701003 -0.794196 1.231810 +v 0.702302 -0.806815 1.293902 +v 0.721601 -0.794196 1.287631 +v 0.687183 -0.823153 1.298814 +v 0.718016 -0.806815 1.349635 +v 0.702559 -0.823153 1.353346 +v 0.737748 -0.794196 1.344898 +v 0.729317 -0.806815 1.406428 +v 0.749358 -0.794196 1.403254 +v 0.713616 -0.823153 1.408915 +v 0.736119 -0.806815 1.463933 +v 0.720272 -0.823153 1.465181 +v 0.756349 -0.794196 1.462341 +v 0.738396 -0.806815 1.521796 +v 0.758689 -0.794196 1.521796 +v 0.722500 -0.823153 1.521796 +v 0.736119 -0.806815 1.579657 +v 0.720272 -0.823153 1.578410 +v 0.756349 -0.794196 1.581249 +v 0.729316 -0.806815 1.637163 +v 0.749358 -0.794196 1.640337 +v 0.713616 -0.823153 1.634676 +v 0.718016 -0.806815 1.693956 +v 0.702559 -0.823153 1.690245 +v 0.737747 -0.794196 1.698693 +v 0.702301 -0.806815 1.749689 +v 0.721600 -0.794196 1.755960 +v 0.687183 -0.823153 1.744777 +v 0.682255 -0.806815 1.804015 +v 0.667569 -0.823153 1.797932 +v 0.701002 -0.794196 1.811781 +v 0.658015 -0.806815 1.856604 +v 0.676095 -0.794196 1.865817 +v 0.643851 -0.823153 1.849388 +v 0.629717 -0.806815 1.907126 +v 0.616164 -0.823153 1.898820 +v 0.647019 -0.794196 1.917729 +v 0.597549 -0.806815 1.955276 +v 0.613966 -0.794196 1.967203 +v 0.584689 -0.823153 1.945932 +v 0.561697 -0.806815 2.000749 +v 0.549609 -0.823153 1.990425 +v 0.577127 -0.794195 2.013927 +v 0.522392 -0.806815 2.043273 +v 0.536741 -0.794196 2.057622 +v 0.511152 -0.823153 2.032033 +v 0.479868 -0.806815 2.082577 +v 0.469544 -0.823153 2.070490 +v 0.493046 -0.794195 2.098008 +v 0.434394 -0.806815 2.118430 +v 0.446322 -0.794196 2.134846 +v 0.425051 -0.823153 2.105569 +v 0.386245 -0.806815 2.150598 +v 0.377939 -0.823152 2.137044 +v 0.396847 -0.794195 2.167900 +v 0.335723 -0.806815 2.178895 +v 0.344935 -0.794195 2.196976 +v 0.328506 -0.823152 2.164732 +v 0.283134 -0.806815 2.203135 +v 0.277051 -0.823152 2.188449 +v 0.290899 -0.794195 2.221883 +v 0.228808 -0.806815 2.223181 +v 0.235078 -0.794196 2.242480 +v 0.223895 -0.823152 2.208063 +v 0.173074 -0.806815 2.238896 +v 0.169363 -0.823152 2.223439 +v 0.177811 -0.794195 2.258627 +v 0.116281 -0.806815 2.250196 +v 0.119455 -0.794195 2.270238 +v 0.113794 -0.823152 2.234496 +v 0.058776 -0.806815 2.256999 +v 0.057529 -0.823152 2.241151 +v 0.060368 -0.794195 2.277228 +v 0.000915 -0.786853 2.302706 +v -0.060355 -0.786853 2.300295 +v 0.000915 -0.782149 2.327269 +v -0.062282 -0.782149 2.324782 +v -0.121247 -0.786853 2.293092 +v -0.125088 -0.782149 2.317352 +v -0.181384 -0.786853 2.281126 +v -0.187118 -0.782149 2.305010 +v -0.240399 -0.786853 2.264486 +v -0.247990 -0.782149 2.287846 +v -0.297925 -0.786853 2.243260 +v -0.307325 -0.782149 2.265952 +v -0.353611 -0.786853 2.217592 +v -0.364762 -0.782149 2.239477 +v -0.407108 -0.786853 2.187628 +v -0.419942 -0.782149 2.208571 +v -0.458093 -0.786853 2.153565 +v -0.472531 -0.782149 2.173437 +v -0.506244 -0.786853 2.115601 +v -0.522196 -0.782149 2.134279 +v -0.551273 -0.786853 2.073982 +v -0.568641 -0.782149 2.091350 +v -0.592892 -0.786853 2.028953 +v -0.611569 -0.782149 2.044905 +v -0.630856 -0.786853 1.980803 +v -0.650727 -0.782149 1.995240 +v -0.664919 -0.786853 1.929817 +v -0.685861 -0.782149 1.942651 +v -0.694883 -0.786853 1.876320 +v -0.716768 -0.782149 1.887471 +v -0.720550 -0.786853 1.820634 +v -0.743243 -0.782149 1.830034 +v -0.741777 -0.786853 1.763109 +v -0.765137 -0.782149 1.770699 +v -0.758417 -0.786853 1.704093 +v -0.782300 -0.782149 1.709827 +v -0.770383 -0.786853 1.643956 +v -0.794643 -0.782149 1.647798 +v -0.777586 -0.786853 1.583064 +v -0.802072 -0.782149 1.584991 +v -0.779997 -0.786853 1.521794 +v -0.804559 -0.782149 1.521794 +v -0.777586 -0.786853 1.460525 +v -0.802072 -0.782149 1.458598 +v -0.770382 -0.786853 1.399633 +v -0.794642 -0.782149 1.395790 +v -0.758416 -0.786853 1.339495 +v -0.782300 -0.782149 1.333761 +v -0.741776 -0.786853 1.280479 +v -0.765136 -0.782149 1.272889 +v -0.720550 -0.786853 1.222953 +v -0.743242 -0.782149 1.213554 +v -0.694882 -0.786853 1.167267 +v -0.716767 -0.782149 1.156116 +v -0.664918 -0.786853 1.113771 +v -0.685861 -0.782149 1.100937 +v -0.630855 -0.786853 1.062786 +v -0.650727 -0.782149 1.048348 +v -0.592891 -0.786853 1.014635 +v -0.611569 -0.782149 0.998683 +v -0.551272 -0.786853 0.969606 +v -0.568641 -0.782149 0.952238 +v -0.506243 -0.786853 0.927987 +v -0.522195 -0.782149 0.909309 +v -0.458093 -0.786853 0.890023 +v -0.472530 -0.782149 0.870152 +v -0.407108 -0.786853 0.855960 +v -0.419941 -0.782149 0.835018 +v -0.353611 -0.786853 0.825996 +v -0.364763 -0.782149 0.804111 +v -0.297926 -0.786853 0.800329 +v -0.307325 -0.782149 0.777636 +v -0.240400 -0.786853 0.779103 +v -0.247990 -0.782149 0.755743 +v -0.181384 -0.786853 0.762463 +v -0.187118 -0.782149 0.738579 +v -0.121246 -0.786853 0.750497 +v -0.125089 -0.782149 0.726237 +v -0.060354 -0.786853 0.743293 +v -0.062281 -0.782149 0.718807 +v 0.000915 -0.786853 0.740882 +v 0.000915 -0.782149 0.716320 +v 0.062185 -0.786853 0.743293 +v 0.064112 -0.782149 0.718807 +v 0.123077 -0.786853 0.750497 +v 0.126920 -0.782149 0.726237 +v 0.183215 -0.786853 0.762463 +v 0.188949 -0.782149 0.738579 +v 0.242231 -0.786853 0.779103 +v 0.249821 -0.782149 0.755743 +v 0.299756 -0.786853 0.800330 +v 0.309156 -0.782149 0.777637 +v 0.355442 -0.786853 0.825997 +v 0.366594 -0.782149 0.804112 +v 0.408939 -0.786853 0.855961 +v 0.421773 -0.782149 0.835018 +v 0.459924 -0.786853 0.890024 +v 0.474362 -0.782149 0.870152 +v 0.508075 -0.786853 0.927988 +v 0.524027 -0.782149 0.909310 +v 0.553104 -0.786853 0.969607 +v 0.570472 -0.782149 0.952239 +v 0.594723 -0.786853 1.014636 +v 0.613401 -0.782149 0.998684 +v 0.632687 -0.786853 1.062787 +v 0.652558 -0.782149 1.048349 +v 0.666750 -0.786853 1.113772 +v 0.687692 -0.782149 1.100938 +v 0.696713 -0.786853 1.167269 +v 0.718598 -0.782149 1.156118 +v 0.722380 -0.786853 1.222955 +v 0.745072 -0.782149 1.213555 +v 0.743607 -0.786853 1.280481 +v 0.766966 -0.782149 1.272890 +v 0.760246 -0.786853 1.339496 +v 0.784131 -0.782149 1.333762 +v 0.772213 -0.786853 1.399634 +v 0.796472 -0.782149 1.395792 +v 0.779417 -0.786853 1.460526 +v 0.803902 -0.782149 1.458598 +v 0.781826 -0.786853 1.521796 +v 0.806389 -0.782150 1.521796 +v 0.779415 -0.786853 1.583064 +v 0.803902 -0.782150 1.584992 +v 0.772213 -0.786853 1.643957 +v 0.796473 -0.782149 1.647799 +v 0.760247 -0.786853 1.704095 +v 0.784130 -0.782149 1.709829 +v 0.743606 -0.786853 1.763110 +v 0.766967 -0.782149 1.770701 +v 0.722380 -0.786853 1.820636 +v 0.745073 -0.782150 1.830036 +v 0.696712 -0.786853 1.876322 +v 0.718597 -0.782150 1.887473 +v 0.666748 -0.786853 1.929819 +v 0.687691 -0.782149 1.942652 +v 0.632686 -0.786853 1.980804 +v 0.652557 -0.782149 1.995241 +v 0.594722 -0.786853 2.028955 +v 0.613399 -0.782149 2.044907 +v 0.553103 -0.786853 2.073984 +v 0.570471 -0.782149 2.091352 +v 0.508074 -0.786853 2.115603 +v 0.524025 -0.782149 2.134280 +v 0.459923 -0.786853 2.153566 +v 0.474360 -0.782149 2.173438 +v 0.408937 -0.786853 2.187629 +v 0.421771 -0.782149 2.208572 +v 0.355440 -0.786853 2.217593 +v 0.366591 -0.782149 2.239478 +v 0.299754 -0.786853 2.243260 +v 0.309154 -0.782149 2.265953 +v 0.242228 -0.786853 2.264487 +v 0.249819 -0.782149 2.287847 +v 0.183213 -0.786853 2.281127 +v 0.188947 -0.782149 2.305010 +v 0.123075 -0.786853 2.293092 +v 0.126917 -0.782149 2.317352 +v 0.062183 -0.786853 2.300296 +v 0.064111 -0.782149 2.324782 +v 0.000915 -0.841649 2.233428 +v -0.054919 -0.841649 2.231231 +v -0.110409 -0.841649 2.224667 +v -0.165211 -0.841649 2.213762 +v -0.218991 -0.841649 2.198598 +v -0.271413 -0.841649 2.179255 +v -0.322159 -0.841649 2.155864 +v -0.370910 -0.841649 2.128559 +v -0.417372 -0.841649 2.097518 +v -0.461251 -0.841649 2.062922 +v -0.502286 -0.841648 2.024995 +v -0.540213 -0.841648 1.983961 +v -0.574808 -0.841648 1.940082 +v -0.605849 -0.841648 1.893620 +v -0.633155 -0.841648 1.844869 +v -0.656545 -0.841648 1.794123 +v -0.675889 -0.841648 1.741701 +v -0.691053 -0.841648 1.687922 +v -0.701957 -0.841648 1.633119 +v -0.708521 -0.841648 1.577628 +v -0.710718 -0.841648 1.521795 +v -0.708521 -0.841648 1.465961 +v -0.701957 -0.841648 1.410470 +v -0.691052 -0.841648 1.355667 +v -0.675888 -0.841648 1.301887 +v -0.656545 -0.841648 1.249465 +v -0.633155 -0.841648 1.198719 +v -0.605849 -0.841649 1.149968 +v -0.574808 -0.841649 1.103506 +v -0.540212 -0.841649 1.059627 +v -0.502285 -0.841649 1.018593 +v -0.461251 -0.841649 0.980666 +v -0.417372 -0.841649 0.946071 +v -0.370910 -0.841649 0.915030 +v -0.322160 -0.841649 0.887724 +v -0.271414 -0.841649 0.864334 +v -0.218992 -0.841649 0.844991 +v -0.165212 -0.841649 0.829827 +v -0.110409 -0.841649 0.818922 +v -0.054919 -0.841649 0.812358 +v 0.000915 -0.841649 0.810161 +v 0.056749 -0.841649 0.812358 +v 0.112240 -0.841649 0.818922 +v 0.167042 -0.841649 0.829827 +v 0.220822 -0.841649 0.844991 +v 0.273245 -0.841649 0.864334 +v 0.323991 -0.841649 0.887725 +v 0.372742 -0.841649 0.915030 +v 0.419204 -0.841649 0.946071 +v 0.463083 -0.841649 0.980667 +v 0.504117 -0.841649 1.018594 +v 0.542044 -0.841649 1.059628 +v 0.576639 -0.841649 1.103508 +v 0.607680 -0.841649 1.149970 +v 0.634986 -0.841649 1.198721 +v 0.658376 -0.841649 1.249467 +v 0.677719 -0.841649 1.301889 +v 0.692883 -0.841649 1.355669 +v 0.703788 -0.841649 1.410472 +v 0.710352 -0.841649 1.465961 +v 0.712549 -0.841649 1.521796 +v 0.710352 -0.841649 1.577629 +v 0.703787 -0.841649 1.633119 +v 0.692883 -0.841649 1.687922 +v 0.677719 -0.841649 1.741702 +v 0.658375 -0.841649 1.794124 +v 0.634985 -0.841649 1.844870 +v 0.607679 -0.841649 1.893621 +v 0.576638 -0.841649 1.940083 +v 0.542042 -0.841649 1.983962 +v 0.504115 -0.841649 2.024996 +v 0.463081 -0.841649 2.062923 +v 0.419202 -0.841649 2.097519 +v 0.372740 -0.841649 2.128560 +v 0.323989 -0.841649 2.155865 +v 0.273243 -0.841649 2.179256 +v 0.220820 -0.841649 2.198599 +v 0.167040 -0.841649 2.213763 +v 0.112238 -0.841649 2.224667 +v 0.056748 -0.841649 2.231231 +v -0.054508 0.894470 2.226001 +v -0.109589 0.894470 2.219485 +v -0.109453 0.877847 2.218630 +v -0.054440 0.877847 2.225137 +v 0.000915 0.894470 2.228182 +v 0.000915 0.877847 2.227316 +v -0.054525 0.860486 2.226229 +v 0.000915 0.860486 2.228411 +v -0.109624 0.860486 2.219711 +v -0.163986 0.894470 2.208661 +v -0.217370 0.894470 2.193609 +v -0.217102 0.877847 2.192785 +v -0.163784 0.877847 2.207819 +v -0.164040 0.860486 2.208884 +v -0.217441 0.860486 2.193827 +v -0.269406 0.894470 2.174408 +v -0.319778 0.894470 2.151190 +v -0.319384 0.877847 2.150418 +v -0.269074 0.877847 2.173608 +v -0.269493 0.860486 2.174620 +v -0.319881 0.860486 2.151394 +v -0.368169 0.894470 2.124086 +v -0.414289 0.894470 2.093273 +v -0.413780 0.877847 2.092573 +v -0.367716 0.877847 2.123347 +v -0.368289 0.860486 2.124281 +v -0.414423 0.860486 2.093459 +v -0.457844 0.894470 2.058933 +v -0.498576 0.894470 2.021285 +v -0.497963 0.877847 2.020673 +v -0.457282 0.877847 2.058274 +v -0.457993 0.860486 2.059107 +v -0.498738 0.860486 2.021447 +v -0.536223 0.894470 1.980554 +v -0.570564 0.894470 1.936998 +v -0.569863 0.877847 1.936489 +v -0.535565 0.877847 1.979991 +v -0.536397 0.860486 1.980702 +v -0.570749 0.860486 1.937133 +v -0.601376 0.894470 1.890878 +v -0.628480 0.894470 1.842487 +v -0.627709 0.877847 1.842094 +v -0.600638 0.877847 1.890426 +v -0.601571 0.860486 1.890998 +v -0.628684 0.860486 1.842591 +v -0.651698 0.894470 1.792115 +v -0.670899 0.894470 1.740080 +v -0.670075 0.877847 1.739812 +v -0.650898 0.877847 1.791784 +v -0.651910 0.860486 1.792203 +v -0.671117 0.860486 1.740150 +v -0.685951 0.894470 1.686697 +v -0.696775 0.894470 1.632298 +v -0.695920 0.877847 1.632161 +v -0.685109 0.877847 1.686494 +v -0.686174 0.860486 1.686749 +v -0.697001 0.860486 1.632334 +v -0.703291 0.894470 1.577217 +v -0.705472 0.894470 1.521794 +v -0.704606 0.877847 1.521795 +v -0.702428 0.877847 1.577149 +v -0.703519 0.860486 1.577235 +v -0.705701 0.860486 1.521795 +v -0.703291 0.894470 1.466372 +v -0.696775 0.894470 1.411291 +v -0.695920 0.877847 1.411426 +v -0.702428 0.877847 1.466440 +v -0.703519 0.860486 1.466354 +v -0.697001 0.860486 1.411255 +v -0.685951 0.894470 1.356892 +v -0.670899 0.894470 1.303509 +v -0.670075 0.877847 1.303776 +v -0.685109 0.877847 1.357094 +v -0.686174 0.860486 1.356839 +v -0.671117 0.860486 1.303438 +v -0.651698 0.894470 1.251473 +v -0.628480 0.894470 1.201101 +v -0.627708 0.877847 1.201494 +v -0.650898 0.877847 1.251804 +v -0.651910 0.860486 1.251385 +v -0.628684 0.860486 1.200997 +v -0.601375 0.894470 1.152710 +v -0.570563 0.894470 1.106590 +v -0.569863 0.877847 1.107099 +v -0.600637 0.877847 1.153162 +v -0.601571 0.860486 1.152590 +v -0.570749 0.860486 1.106456 +v -0.536223 0.894470 1.063035 +v -0.498575 0.894470 1.022303 +v -0.497963 0.877847 1.022915 +v -0.535564 0.877847 1.063597 +v -0.536397 0.860486 1.062886 +v -0.498737 0.860486 1.022141 +v -0.457844 0.894470 0.984656 +v -0.414288 0.894470 0.950315 +v -0.413779 0.877847 0.951016 +v -0.457281 0.877847 0.985314 +v -0.457992 0.860486 0.984482 +v -0.414423 0.860486 0.950130 +v -0.368168 0.894470 0.919503 +v -0.319778 0.894470 0.892399 +v -0.319385 0.877847 0.893170 +v -0.367717 0.877847 0.920241 +v -0.368288 0.860486 0.919308 +v -0.319882 0.860486 0.892195 +v -0.269406 0.894470 0.869181 +v -0.217370 0.894470 0.849980 +v -0.217103 0.877847 0.850804 +v -0.269075 0.877847 0.869981 +v -0.269494 0.860486 0.868969 +v -0.217441 0.860486 0.849762 +v -0.163987 0.894470 0.834928 +v -0.109588 0.894470 0.824104 +v -0.109453 0.877847 0.824959 +v -0.163785 0.877847 0.835770 +v -0.164040 0.860486 0.834705 +v -0.109624 0.860486 0.823878 +v -0.054507 0.894470 0.817588 +v 0.000916 0.894470 0.815407 +v 0.000915 0.877847 0.816273 +v -0.054439 0.877847 0.818452 +v -0.054525 0.860486 0.817360 +v 0.000915 0.860486 0.815178 +v 0.056338 0.894470 0.817588 +v 0.111419 0.894470 0.824104 +v 0.111283 0.877847 0.824960 +v 0.056270 0.877847 0.818452 +v 0.056356 0.860486 0.817360 +v 0.111455 0.860486 0.823878 +v 0.165818 0.894470 0.834928 +v 0.219201 0.894470 0.849981 +v 0.218934 0.877848 0.850804 +v 0.165615 0.877848 0.835771 +v 0.165871 0.860486 0.834706 +v 0.219272 0.860486 0.849763 +v 0.271237 0.894470 0.869181 +v 0.321609 0.894470 0.892399 +v 0.321216 0.877847 0.893171 +v 0.270906 0.877847 0.869981 +v 0.271325 0.860486 0.868970 +v 0.321713 0.860486 0.892195 +v 0.370000 0.894470 0.919504 +v 0.416120 0.894470 0.950316 +v 0.415611 0.877847 0.951016 +v 0.369548 0.877847 0.920242 +v 0.370120 0.860486 0.919308 +v 0.416254 0.860486 0.950130 +v 0.459675 0.894470 0.984657 +v 0.500407 0.894470 1.022304 +v 0.499795 0.877847 1.022916 +v 0.459113 0.877847 0.985315 +v 0.459824 0.860486 0.984482 +v 0.500569 0.860486 1.022142 +v 0.538054 0.894470 1.063036 +v 0.572395 0.894470 1.106591 +v 0.571694 0.877848 1.107100 +v 0.537396 0.877847 1.063598 +v 0.538228 0.860486 1.062887 +v 0.572580 0.860486 1.106457 +v 0.603207 0.894471 1.152711 +v 0.630311 0.894471 1.201103 +v 0.629540 0.877848 1.201496 +v 0.602468 0.877848 1.153163 +v 0.603402 0.860486 1.152591 +v 0.630515 0.860487 1.200999 +v 0.653529 0.894471 1.251474 +v 0.672730 0.894471 1.303510 +v 0.671906 0.877848 1.303778 +v 0.652729 0.877848 1.251806 +v 0.653741 0.860486 1.251387 +v 0.672947 0.860487 1.303439 +v 0.687782 0.894471 1.356894 +v 0.698606 0.894471 1.411292 +v 0.697750 0.877848 1.411427 +v 0.686940 0.877848 1.357096 +v 0.688004 0.860486 1.356840 +v 0.698832 0.860487 1.411256 +v 0.705122 0.894471 1.466373 +v 0.707302 0.894471 1.521796 +v 0.706436 0.877848 1.521796 +v 0.704258 0.877848 1.466442 +v 0.705350 0.860486 1.466355 +v 0.707532 0.860487 1.521796 +v 0.705121 0.894471 1.577217 +v 0.698605 0.894471 1.632298 +v 0.697750 0.877848 1.632163 +v 0.704258 0.877848 1.577149 +v 0.705350 0.860487 1.577235 +v 0.698832 0.860487 1.632334 +v 0.687781 0.894471 1.686697 +v 0.672729 0.894471 1.740081 +v 0.671905 0.877848 1.739813 +v 0.686939 0.877848 1.686495 +v 0.688004 0.860487 1.686751 +v 0.672947 0.860487 1.740152 +v 0.653528 0.894471 1.792117 +v 0.630310 0.894471 1.842488 +v 0.629538 0.877848 1.842095 +v 0.652728 0.877848 1.791785 +v 0.653740 0.860486 1.792204 +v 0.630514 0.860487 1.842592 +v 0.603206 0.894471 1.890880 +v 0.572394 0.894470 1.936999 +v 0.571693 0.877847 1.936490 +v 0.602467 0.877848 1.890427 +v 0.603401 0.860486 1.890999 +v 0.572579 0.860486 1.937134 +v 0.538053 0.894470 1.980555 +v 0.500405 0.894470 2.021286 +v 0.499793 0.877847 2.020674 +v 0.537394 0.877847 1.979992 +v 0.538227 0.860486 1.980704 +v 0.500567 0.860486 2.021448 +v 0.459674 0.894470 2.058934 +v 0.416118 0.894470 2.093274 +v 0.415609 0.877847 2.092574 +v 0.459111 0.877847 2.058275 +v 0.459823 0.860486 2.059108 +v 0.416253 0.860486 2.093460 +v 0.369998 0.894470 2.124086 +v 0.321607 0.894470 2.151191 +v 0.321214 0.877847 2.150419 +v 0.369546 0.877847 2.123348 +v 0.370118 0.860486 2.124281 +v 0.321711 0.860486 2.151395 +v 0.271235 0.894470 2.174408 +v 0.219199 0.894470 2.193609 +v 0.218932 0.877847 2.192785 +v 0.270904 0.877847 2.173608 +v 0.271323 0.860486 2.174620 +v 0.219270 0.860486 2.193827 +v 0.165815 0.894470 2.208661 +v 0.111417 0.894470 2.219485 +v 0.111281 0.877847 2.218630 +v 0.165613 0.877847 2.207819 +v 0.165869 0.860486 2.208884 +v 0.111453 0.860486 2.219711 +v 0.056336 0.894470 2.226001 +v 0.056268 0.877847 2.225137 +v 0.056354 0.860486 2.226229 +v 0.000915 0.806815 2.259275 +v 0.000915 0.823152 2.243379 +v -0.055700 0.823152 2.241151 +v -0.056947 0.806815 2.256998 +v 0.000915 0.794195 2.279568 +v -0.058539 0.794195 2.277228 +v -0.114453 0.806815 2.250196 +v -0.117627 0.794195 2.270238 +v -0.111966 0.823152 2.234495 +v -0.167534 0.823152 2.223439 +v -0.171245 0.806815 2.238895 +v -0.175982 0.794195 2.258627 +v -0.226979 0.806815 2.223181 +v -0.233249 0.794195 2.242480 +v -0.222066 0.823152 2.208062 +v -0.275222 0.823152 2.188449 +v -0.281305 0.806815 2.203135 +v -0.289070 0.794195 2.221882 +v -0.333894 0.806815 2.178894 +v -0.343106 0.794195 2.196975 +v -0.326677 0.823152 2.164731 +v -0.376110 0.823152 2.137043 +v -0.384415 0.806815 2.150597 +v -0.395018 0.794195 2.167899 +v -0.432565 0.806815 2.118429 +v -0.444492 0.794195 2.134845 +v -0.423221 0.823152 2.105568 +v -0.467714 0.823152 2.070489 +v -0.478038 0.806815 2.082576 +v -0.491217 0.794195 2.098006 +v -0.520563 0.806815 2.043272 +v -0.534911 0.794195 2.057621 +v -0.509322 0.823152 2.032032 +v -0.547779 0.823152 1.990424 +v -0.559867 0.806815 2.000747 +v -0.575297 0.794195 2.013926 +v -0.595719 0.806815 1.955274 +v -0.612136 0.794195 1.967202 +v -0.582859 0.823152 1.945931 +v -0.614334 0.823152 1.898819 +v -0.627888 0.806815 1.907125 +v -0.645190 0.794195 1.917727 +v -0.656185 0.806815 1.856603 +v -0.674266 0.794195 1.865816 +v -0.642021 0.823152 1.849386 +v -0.665739 0.823152 1.797931 +v -0.680425 0.806815 1.804014 +v -0.699173 0.794195 1.811780 +v -0.700471 0.806815 1.749688 +v -0.719770 0.794195 1.755959 +v -0.685353 0.823152 1.744776 +v -0.700729 0.823152 1.690244 +v -0.716186 0.806815 1.693954 +v -0.735917 0.794195 1.698691 +v -0.727486 0.806815 1.637161 +v -0.747529 0.794195 1.640336 +v -0.711786 0.823152 1.634675 +v -0.718442 0.823152 1.578409 +v -0.734289 0.806815 1.579656 +v -0.754518 0.794195 1.581248 +v -0.736566 0.806815 1.521795 +v -0.756858 0.794195 1.521794 +v -0.720670 0.823152 1.521795 +v -0.718442 0.823152 1.465180 +v -0.734289 0.806815 1.463933 +v -0.754518 0.794195 1.462340 +v -0.727486 0.806815 1.406427 +v -0.747528 0.794195 1.403252 +v -0.711785 0.823152 1.408914 +v -0.700728 0.823152 1.353344 +v -0.716185 0.806815 1.349634 +v -0.735917 0.794195 1.344896 +v -0.700470 0.806815 1.293900 +v -0.719770 0.794195 1.287629 +v -0.685352 0.823152 1.298812 +v -0.665739 0.823152 1.245657 +v -0.680425 0.806815 1.239574 +v -0.699172 0.794195 1.231808 +v -0.656185 0.806815 1.186985 +v -0.674265 0.794195 1.177772 +v -0.642021 0.823152 1.194202 +v -0.614333 0.823152 1.144769 +v -0.627887 0.806815 1.136463 +v -0.645189 0.794195 1.125861 +v -0.595719 0.806815 1.088314 +v -0.612135 0.794195 1.076386 +v -0.582858 0.823152 1.097657 +v -0.547779 0.823152 1.053165 +v -0.559866 0.806815 1.042841 +v -0.575297 0.794195 1.029662 +v -0.520562 0.806815 1.000316 +v -0.534911 0.794195 0.985968 +v -0.509322 0.823152 1.011557 +v -0.467714 0.823152 0.973100 +v -0.478037 0.806815 0.961012 +v -0.491216 0.794195 0.945582 +v -0.432564 0.806815 0.925160 +v -0.444492 0.794195 0.908743 +v -0.423221 0.823152 0.938020 +v -0.376109 0.823152 0.906545 +v -0.384415 0.806815 0.892991 +v -0.395017 0.794195 0.875689 +v -0.333894 0.806815 0.864694 +v -0.343107 0.794195 0.846613 +v -0.326678 0.823152 0.878857 +v -0.275222 0.823152 0.855140 +v -0.281305 0.806815 0.840454 +v -0.289071 0.794195 0.821706 +v -0.226979 0.806815 0.820408 +v -0.233250 0.794195 0.801109 +v -0.222067 0.823152 0.835527 +v -0.167535 0.823152 0.820150 +v -0.171245 0.806815 0.804694 +v -0.175982 0.794195 0.784962 +v -0.114452 0.806815 0.793393 +v -0.117627 0.794195 0.773351 +v -0.111965 0.823152 0.809094 +v -0.055699 0.823152 0.802438 +v -0.056946 0.806815 0.786590 +v -0.058538 0.794195 0.766361 +v 0.000915 0.806815 0.784314 +v 0.000915 0.794195 0.764021 +v 0.000915 0.823152 0.800210 +v 0.057530 0.823152 0.802438 +v 0.058777 0.806815 0.786590 +v 0.060369 0.794195 0.766361 +v 0.116283 0.806815 0.793393 +v 0.119457 0.794195 0.773351 +v 0.113796 0.823152 0.809094 +v 0.169365 0.823153 0.820151 +v 0.173076 0.806815 0.804694 +v 0.177813 0.794195 0.784962 +v 0.228810 0.806815 0.820409 +v 0.235080 0.794196 0.801110 +v 0.223898 0.823153 0.835527 +v 0.277053 0.823153 0.855141 +v 0.283136 0.806815 0.840454 +v 0.290902 0.794195 0.821707 +v 0.335725 0.806815 0.864695 +v 0.344938 0.794196 0.846614 +v 0.328508 0.823153 0.878858 +v 0.377941 0.823152 0.906546 +v 0.386247 0.806815 0.892992 +v 0.396849 0.794195 0.875690 +v 0.434396 0.806815 0.925160 +v 0.446324 0.794196 0.908744 +v 0.425053 0.823152 0.938021 +v 0.469545 0.823153 0.973100 +v 0.479869 0.806815 0.961013 +v 0.493048 0.794195 0.945582 +v 0.522394 0.806815 1.000317 +v 0.536742 0.794196 0.985969 +v 0.511153 0.823152 1.011558 +v 0.549611 0.823153 1.053166 +v 0.561698 0.806815 1.042842 +v 0.577128 0.794195 1.029663 +v 0.597550 0.806815 1.088315 +v 0.613967 0.794196 1.076387 +v 0.584690 0.823153 1.097658 +v 0.616165 0.823153 1.144770 +v 0.629719 0.806815 1.136464 +v 0.647020 0.794196 1.125862 +v 0.658016 0.806815 1.186986 +v 0.676095 0.794196 1.177774 +v 0.643852 0.823153 1.194203 +v 0.667570 0.823153 1.245658 +v 0.682256 0.806815 1.239575 +v 0.701003 0.794196 1.231810 +v 0.702302 0.806815 1.293902 +v 0.721601 0.794196 1.287631 +v 0.687183 0.823153 1.298814 +v 0.702559 0.823153 1.353346 +v 0.718016 0.806815 1.349635 +v 0.737748 0.794196 1.344898 +v 0.729317 0.806815 1.406428 +v 0.749358 0.794196 1.403254 +v 0.713616 0.823153 1.408915 +v 0.720272 0.823153 1.465181 +v 0.736119 0.806815 1.463933 +v 0.756349 0.794196 1.462341 +v 0.738396 0.806815 1.521796 +v 0.758689 0.794196 1.521796 +v 0.722500 0.823153 1.521796 +v 0.720272 0.823153 1.578410 +v 0.736119 0.806815 1.579657 +v 0.756349 0.794196 1.581249 +v 0.729316 0.806815 1.637163 +v 0.749358 0.794196 1.640337 +v 0.713616 0.823153 1.634676 +v 0.702559 0.823153 1.690245 +v 0.718016 0.806815 1.693956 +v 0.737747 0.794196 1.698693 +v 0.702301 0.806815 1.749689 +v 0.721600 0.794196 1.755960 +v 0.687183 0.823153 1.744777 +v 0.667569 0.823153 1.797932 +v 0.682255 0.806815 1.804015 +v 0.701002 0.794196 1.811781 +v 0.658015 0.806815 1.856604 +v 0.676095 0.794196 1.865817 +v 0.643851 0.823153 1.849388 +v 0.616164 0.823153 1.898820 +v 0.629717 0.806815 1.907126 +v 0.647019 0.794196 1.917729 +v 0.597549 0.806815 1.955276 +v 0.613966 0.794196 1.967203 +v 0.584689 0.823153 1.945932 +v 0.549609 0.823153 1.990425 +v 0.561697 0.806815 2.000749 +v 0.577127 0.794195 2.013927 +v 0.522392 0.806815 2.043273 +v 0.536741 0.794196 2.057622 +v 0.511152 0.823153 2.032033 +v 0.469544 0.823153 2.070490 +v 0.479868 0.806815 2.082577 +v 0.493046 0.794195 2.098008 +v 0.434394 0.806815 2.118430 +v 0.446322 0.794196 2.134846 +v 0.425051 0.823153 2.105569 +v 0.377939 0.823152 2.137044 +v 0.386245 0.806815 2.150598 +v 0.396847 0.794195 2.167900 +v 0.335723 0.806815 2.178895 +v 0.344935 0.794195 2.196976 +v 0.328506 0.823152 2.164732 +v 0.277051 0.823152 2.188449 +v 0.283134 0.806815 2.203135 +v 0.290899 0.794195 2.221883 +v 0.228808 0.806815 2.223181 +v 0.235078 0.794196 2.242480 +v 0.223895 0.823152 2.208063 +v 0.169363 0.823152 2.223439 +v 0.173074 0.806815 2.238896 +v 0.177811 0.794195 2.258627 +v 0.116281 0.806815 2.250196 +v 0.119455 0.794195 2.270238 +v 0.113794 0.823152 2.234496 +v 0.057529 0.823152 2.241151 +v 0.058776 0.806815 2.256999 +v 0.060368 0.794195 2.277228 +v 0.000915 0.786853 2.302706 +v -0.060355 0.786853 2.300295 +v 0.000915 0.782149 2.327269 +v -0.062282 0.782149 2.324782 +v -0.121247 0.786853 2.293092 +v -0.125088 0.782149 2.317352 +v -0.181384 0.786853 2.281126 +v -0.187118 0.782149 2.305010 +v -0.240399 0.786853 2.264486 +v -0.247990 0.782149 2.287846 +v -0.297925 0.786853 2.243260 +v -0.307325 0.782149 2.265952 +v -0.353611 0.786853 2.217592 +v -0.364762 0.782149 2.239477 +v -0.407108 0.786853 2.187628 +v -0.419942 0.782149 2.208571 +v -0.458093 0.786853 2.153565 +v -0.472531 0.782149 2.173437 +v -0.506244 0.786853 2.115601 +v -0.522196 0.782149 2.134279 +v -0.551273 0.786853 2.073982 +v -0.568641 0.782149 2.091350 +v -0.592892 0.786853 2.028953 +v -0.611569 0.782149 2.044905 +v -0.630856 0.786853 1.980803 +v -0.650727 0.782149 1.995240 +v -0.664919 0.786853 1.929817 +v -0.685861 0.782149 1.942651 +v -0.694883 0.786853 1.876320 +v -0.716768 0.782149 1.887471 +v -0.720550 0.786853 1.820634 +v -0.743243 0.782149 1.830034 +v -0.741777 0.786853 1.763109 +v -0.765137 0.782149 1.770699 +v -0.758417 0.786853 1.704093 +v -0.782300 0.782149 1.709827 +v -0.770383 0.786853 1.643956 +v -0.794643 0.782149 1.647798 +v -0.777586 0.786853 1.583064 +v -0.802072 0.782149 1.584991 +v -0.779997 0.786853 1.521794 +v -0.804559 0.782149 1.521794 +v -0.777586 0.786853 1.460525 +v -0.802072 0.782149 1.458598 +v -0.770382 0.786853 1.399633 +v -0.794642 0.782149 1.395790 +v -0.758416 0.786853 1.339495 +v -0.782300 0.782149 1.333761 +v -0.741776 0.786853 1.280479 +v -0.765136 0.782149 1.272889 +v -0.720550 0.786853 1.222953 +v -0.743242 0.782149 1.213554 +v -0.694882 0.786853 1.167267 +v -0.716767 0.782149 1.156116 +v -0.664918 0.786853 1.113771 +v -0.685861 0.782149 1.100937 +v -0.630855 0.786853 1.062786 +v -0.650727 0.782149 1.048348 +v -0.592891 0.786853 1.014635 +v -0.611569 0.782149 0.998683 +v -0.551272 0.786853 0.969606 +v -0.568641 0.782149 0.952238 +v -0.506243 0.786853 0.927987 +v -0.522195 0.782149 0.909309 +v -0.458093 0.786853 0.890023 +v -0.472530 0.782149 0.870152 +v -0.407108 0.786853 0.855960 +v -0.419941 0.782149 0.835018 +v -0.353611 0.786853 0.825996 +v -0.364763 0.782149 0.804111 +v -0.297926 0.786853 0.800329 +v -0.307325 0.782149 0.777636 +v -0.240400 0.786853 0.779103 +v -0.247990 0.782149 0.755743 +v -0.181384 0.786853 0.762463 +v -0.187118 0.782149 0.738579 +v -0.121246 0.786853 0.750497 +v -0.125089 0.782149 0.726237 +v -0.060354 0.786853 0.743293 +v -0.062281 0.782149 0.718807 +v 0.000915 0.786853 0.740882 +v 0.000915 0.782149 0.716320 +v 0.062185 0.786853 0.743293 +v 0.064112 0.782149 0.718807 +v 0.123077 0.786853 0.750497 +v 0.126920 0.782149 0.726237 +v 0.183215 0.786853 0.762463 +v 0.188949 0.782149 0.738579 +v 0.242231 0.786853 0.779103 +v 0.249821 0.782149 0.755743 +v 0.299756 0.786853 0.800330 +v 0.309156 0.782149 0.777637 +v 0.355442 0.786853 0.825997 +v 0.366594 0.782149 0.804112 +v 0.408939 0.786853 0.855961 +v 0.421773 0.782149 0.835018 +v 0.459924 0.786853 0.890024 +v 0.474362 0.782149 0.870152 +v 0.508075 0.786853 0.927988 +v 0.524027 0.782149 0.909310 +v 0.553104 0.786853 0.969607 +v 0.570472 0.782149 0.952239 +v 0.594723 0.786853 1.014636 +v 0.613401 0.782149 0.998684 +v 0.632687 0.786853 1.062787 +v 0.652558 0.782149 1.048349 +v 0.666750 0.786853 1.113772 +v 0.687692 0.782149 1.100938 +v 0.696713 0.786853 1.167269 +v 0.718598 0.782149 1.156118 +v 0.722380 0.786853 1.222955 +v 0.745072 0.782149 1.213555 +v 0.743607 0.786853 1.280481 +v 0.766966 0.782149 1.272890 +v 0.760246 0.786853 1.339496 +v 0.784131 0.782149 1.333762 +v 0.772213 0.786853 1.399634 +v 0.796472 0.782149 1.395792 +v 0.779417 0.786853 1.460526 +v 0.803902 0.782149 1.458598 +v 0.781826 0.786853 1.521796 +v 0.806389 0.782150 1.521796 +v 0.779415 0.786853 1.583064 +v 0.803902 0.782150 1.584992 +v 0.772213 0.786853 1.643957 +v 0.796473 0.782149 1.647799 +v 0.760247 0.786853 1.704095 +v 0.784130 0.782149 1.709829 +v 0.743606 0.786853 1.763110 +v 0.766967 0.782149 1.770701 +v 0.722380 0.786853 1.820636 +v 0.745073 0.782150 1.830036 +v 0.696712 0.786853 1.876322 +v 0.718597 0.782150 1.887473 +v 0.666748 0.786853 1.929819 +v 0.687691 0.782149 1.942652 +v 0.632686 0.786853 1.980804 +v 0.652557 0.782149 1.995241 +v 0.594722 0.786853 2.028955 +v 0.613399 0.782149 2.044907 +v 0.553103 0.786853 2.073984 +v 0.570471 0.782149 2.091352 +v 0.508074 0.786853 2.115603 +v 0.524025 0.782149 2.134280 +v 0.459923 0.786853 2.153566 +v 0.474360 0.782149 2.173438 +v 0.408937 0.786853 2.187629 +v 0.421771 0.782149 2.208572 +v 0.355440 0.786853 2.217593 +v 0.366591 0.782149 2.239478 +v 0.299754 0.786853 2.243260 +v 0.309154 0.782149 2.265953 +v 0.242228 0.786853 2.264487 +v 0.249819 0.782149 2.287847 +v 0.183213 0.786853 2.281127 +v 0.188947 0.782149 2.305010 +v 0.123075 0.786853 2.293092 +v 0.126917 0.782149 2.317352 +v 0.062183 0.786853 2.300296 +v 0.064111 0.782149 2.324782 +v 0.000915 0.841649 2.233428 +v -0.054919 0.841649 2.231231 +v -0.110409 0.841649 2.224667 +v -0.165211 0.841649 2.213762 +v -0.218991 0.841649 2.198598 +v -0.271413 0.841649 2.179255 +v -0.322159 0.841649 2.155864 +v -0.370910 0.841649 2.128559 +v -0.417372 0.841649 2.097518 +v -0.461251 0.841649 2.062922 +v -0.502286 0.841648 2.024995 +v -0.540213 0.841648 1.983961 +v -0.574808 0.841648 1.940082 +v -0.605849 0.841648 1.893620 +v -0.633155 0.841648 1.844869 +v -0.656545 0.841648 1.794123 +v -0.675889 0.841648 1.741701 +v -0.691053 0.841648 1.687922 +v -0.701957 0.841648 1.633119 +v -0.708521 0.841648 1.577628 +v -0.710718 0.841648 1.521795 +v -0.708521 0.841648 1.465961 +v -0.701957 0.841648 1.410470 +v -0.691052 0.841648 1.355667 +v -0.675888 0.841648 1.301887 +v -0.656545 0.841648 1.249465 +v -0.633155 0.841648 1.198719 +v -0.605849 0.841649 1.149968 +v -0.574808 0.841649 1.103506 +v -0.540212 0.841649 1.059627 +v -0.502285 0.841649 1.018593 +v -0.461251 0.841649 0.980666 +v -0.417372 0.841649 0.946071 +v -0.370910 0.841649 0.915030 +v -0.322160 0.841649 0.887724 +v -0.271414 0.841649 0.864334 +v -0.218992 0.841649 0.844991 +v -0.165212 0.841649 0.829827 +v -0.110409 0.841649 0.818922 +v -0.054919 0.841649 0.812358 +v 0.000915 0.841649 0.810161 +v 0.056749 0.841649 0.812358 +v 0.112240 0.841649 0.818922 +v 0.167042 0.841649 0.829827 +v 0.220822 0.841649 0.844991 +v 0.273245 0.841649 0.864334 +v 0.323991 0.841649 0.887725 +v 0.372742 0.841649 0.915030 +v 0.419204 0.841649 0.946071 +v 0.463083 0.841649 0.980667 +v 0.504117 0.841649 1.018594 +v 0.542044 0.841649 1.059628 +v 0.576639 0.841649 1.103508 +v 0.607680 0.841649 1.149970 +v 0.634986 0.841649 1.198721 +v 0.658376 0.841649 1.249467 +v 0.677719 0.841649 1.301889 +v 0.692883 0.841649 1.355669 +v 0.703788 0.841649 1.410472 +v 0.710352 0.841649 1.465961 +v 0.712549 0.841649 1.521796 +v 0.710352 0.841649 1.577629 +v 0.703787 0.841649 1.633119 +v 0.692883 0.841649 1.687922 +v 0.677719 0.841649 1.741702 +v 0.658375 0.841649 1.794124 +v 0.634985 0.841649 1.844870 +v 0.607679 0.841649 1.893621 +v 0.576638 0.841649 1.940083 +v 0.542042 0.841649 1.983962 +v 0.504115 0.841649 2.024996 +v 0.463081 0.841649 2.062923 +v 0.419202 0.841649 2.097519 +v 0.372740 0.841649 2.128560 +v 0.323989 0.841649 2.155865 +v 0.273243 0.841649 2.179256 +v 0.220820 0.841649 2.198599 +v 0.167040 0.841649 2.213763 +v 0.112238 0.841649 2.224667 +v 0.056748 0.841649 2.231231 +v 0.549427 0.000000 2.379345 +v 0.550148 -0.036667 2.378095 +v 0.546820 -0.035680 2.361688 +v 0.546118 0.000000 2.362904 +v 0.553219 0.000000 2.401314 +v 0.553966 -0.038012 2.400018 +v 0.552302 -0.073109 2.374360 +v 0.556199 -0.075790 2.396147 +v 0.548916 -0.071140 2.358055 +v 0.555881 -0.109100 2.368157 +v 0.552398 -0.106161 2.352019 +v 0.559909 -0.113100 2.389716 +v 0.560857 -0.144418 2.359531 +v 0.565067 -0.149713 2.380774 +v 0.557240 -0.140529 2.343625 +v 0.567204 -0.178845 2.348528 +v 0.563416 -0.174028 2.332917 +v 0.571648 -0.185403 2.369367 +v 0.574880 -0.212171 2.335222 +v 0.579605 -0.219951 2.355573 +v 0.570885 -0.206457 2.319970 +v 0.583840 -0.244187 2.319689 +v 0.579604 -0.237610 2.304855 +v 0.588894 -0.253140 2.339471 +v 0.594026 -0.274700 2.302030 +v 0.599453 -0.284772 2.321165 +v 0.589516 -0.267301 2.287673 +v 0.605379 -0.303516 2.282350 +v 0.600563 -0.295342 2.268522 +v 0.611222 -0.314645 2.300763 +v 0.617825 -0.330464 2.260775 +v 0.624124 -0.342581 2.278397 +v 0.612674 -0.321564 2.247529 +v 0.631290 -0.355372 2.237432 +v 0.625777 -0.345801 2.224815 +v 0.638083 -0.368402 2.254198 +v 0.645689 -0.378092 2.212471 +v 0.653010 -0.391955 2.228322 +v 0.639788 -0.367909 2.200526 +v 0.660936 -0.398477 2.186041 +v 0.654624 -0.387745 2.174807 +v 0.668816 -0.413088 2.200923 +v 0.676934 -0.416410 2.158308 +v 0.685400 -0.431677 2.172173 +v 0.670191 -0.405194 2.147821 +v 0.693586 -0.431771 2.129441 +v 0.686395 -0.420142 2.119732 +v 0.702663 -0.447602 2.142248 +v 0.710789 -0.444474 2.099620 +v 0.720497 -0.460770 2.111333 +v 0.703134 -0.432503 2.090714 +v 0.728437 -0.454432 2.069027 +v 0.720307 -0.442193 2.060945 +v 0.738792 -0.471094 2.079618 +v 0.746420 -0.461593 2.037851 +v 0.757435 -0.478518 2.047300 +v 0.737806 -0.449161 2.030609 +v 0.764630 -0.465904 2.006285 +v 0.755525 -0.453356 1.999893 +v 0.776312 -0.482987 2.014576 +v 0.782952 -0.467347 1.974523 +v 0.795305 -0.484483 1.981650 +v 0.773353 -0.454760 1.968987 +v 0.801274 -0.465904 1.942762 +v 0.791182 -0.453356 1.938080 +v 0.814299 -0.482987 1.948724 +v 0.819483 -0.461593 1.911196 +v 0.833175 -0.478518 1.916000 +v 0.808901 -0.449161 1.907364 +v 0.837466 -0.454432 1.880020 +v 0.826400 -0.442193 1.877029 +v 0.851819 -0.471094 1.883682 +v 0.855114 -0.444474 1.849427 +v 0.870113 -0.460770 1.851967 +v 0.843572 -0.432502 1.847259 +v 0.872316 -0.431770 1.819606 +v 0.860311 -0.420141 1.818241 +v 0.887947 -0.447601 1.821052 +v 0.888969 -0.416409 1.790739 +v 0.905209 -0.431677 1.791126 +v 0.876516 -0.405194 1.790152 +v 0.904966 -0.398477 1.763006 +v 0.892081 -0.387745 1.763166 +v 0.921794 -0.413087 1.762377 +v 0.920213 -0.378092 1.736576 +v 0.937599 -0.391954 1.734978 +v 0.906917 -0.367908 1.737447 +v 0.934612 -0.355372 1.711615 +v 0.920929 -0.345800 1.713159 +v 0.952526 -0.368402 1.709101 +v 0.948077 -0.330464 1.688272 +v 0.966486 -0.342581 1.684903 +v 0.934032 -0.321564 1.690445 +v 0.960523 -0.303516 1.666697 +v 0.946142 -0.295341 1.669451 +v 0.979388 -0.314645 1.662537 +v 0.971876 -0.274700 1.647017 +v 0.991157 -0.284771 1.642135 +v 0.957189 -0.267301 1.650301 +v 0.982062 -0.244187 1.629359 +v 0.967101 -0.237610 1.633118 +v 1.001716 -0.253140 1.623829 +v 0.991022 -0.212171 1.613826 +v 1.011005 -0.219950 1.607727 +v 0.975820 -0.206456 1.618004 +v 0.998698 -0.178845 1.600520 +v 0.983289 -0.174028 1.605056 +v 1.018962 -0.185402 1.593933 +v 1.005045 -0.144418 1.589516 +v 1.025542 -0.149713 1.582526 +v 0.989465 -0.140528 1.594349 +v 1.010022 -0.109099 1.580890 +v 0.994307 -0.106161 1.585955 +v 1.030701 -0.113099 1.573584 +v 1.013600 -0.073109 1.574687 +v 1.034410 -0.075789 1.567153 +v 0.997789 -0.071140 1.579919 +v 1.015754 -0.036667 1.570953 +v 0.999885 -0.035680 1.576285 +v 1.036644 -0.038012 1.563282 +v 1.016475 0.000000 1.569703 +v 1.037391 0.000000 1.561986 +v 1.000587 0.000000 1.575069 +v 0.555292 0.000000 2.536453 +v 0.556212 -0.047115 2.534839 +v 0.562467 -0.046525 2.529792 +v 0.561551 0.000000 2.531376 +v 0.537411 0.000000 2.545762 +v 0.538300 -0.048444 2.544006 +v 0.558957 -0.093937 2.530012 +v 0.541116 -0.096585 2.539022 +v 0.565212 -0.092763 2.525066 +v 0.563558 -0.140181 2.522045 +v 0.569753 -0.138429 2.517195 +v 0.545900 -0.144145 2.530920 +v 0.569960 -0.185563 2.510973 +v 0.552499 -0.190815 2.519560 +v 0.576065 -0.183242 2.506249 +v 0.578123 -0.229800 2.496842 +v 0.584116 -0.226924 2.492284 +v 0.560866 -0.236296 2.504992 +v 0.587987 -0.272621 2.479747 +v 0.571112 -0.280369 2.487567 +v 0.593853 -0.269209 2.475399 +v 0.599504 -0.313760 2.459793 +v 0.605228 -0.309832 2.455695 +v 0.582966 -0.322682 2.467061 +v 0.612596 -0.352968 2.437108 +v 0.596463 -0.363022 2.443777 +v 0.618154 -0.348548 2.433292 +v 0.627188 -0.389996 2.411825 +v 0.632556 -0.385111 2.408318 +v 0.611521 -0.401133 2.417841 +v 0.643185 -0.424625 2.384108 +v 0.627996 -0.436764 2.389361 +v 0.648356 -0.419305 2.380950 +v 0.660489 -0.456630 2.354116 +v 0.665435 -0.450908 2.351327 +v 0.645817 -0.469697 2.358537 +v 0.678988 -0.485822 2.322040 +v 0.664869 -0.499739 2.325568 +v 0.683697 -0.479733 2.319649 +v 0.698578 -0.512016 2.288078 +v 0.703040 -0.505598 2.286112 +v 0.685044 -0.526698 2.290658 +v 0.719134 -0.535057 2.252444 +v 0.706175 -0.550390 2.253987 +v 0.723337 -0.528350 2.250923 +v 0.740530 -0.554794 2.215350 +v 0.744464 -0.547839 2.214294 +v 0.728179 -0.570689 2.215826 +v 0.762633 -0.571116 2.177031 +v 0.750952 -0.587503 2.176440 +v 0.766290 -0.563957 2.176456 +v 0.785313 -0.583914 2.137723 +v 0.788683 -0.576593 2.137639 +v 0.774390 -0.600738 2.136086 +v 0.808438 -0.593124 2.097677 +v 0.798328 -0.610310 2.094988 +v 0.811509 -0.585682 2.098088 +v 0.831864 -0.598676 2.057133 +v 0.834631 -0.591157 2.058046 +v 0.822538 -0.616093 2.053336 +v 0.855439 -0.600545 2.016339 +v 0.846922 -0.618098 2.011426 +v 0.857895 -0.592992 2.017755 +v 0.879060 -0.598727 1.975565 +v 0.881185 -0.591173 1.977478 +v 0.871335 -0.616299 1.969512 +v 0.902702 -0.593295 1.935120 +v 0.895522 -0.610655 1.927802 +v 0.904452 -0.585747 1.937509 +v 0.925873 -0.584116 1.895075 +v 0.927294 -0.576665 1.897960 +v 0.919436 -0.601253 1.886611 +v 0.948264 -0.571193 1.855628 +v 0.942808 -0.588091 1.846140 +v 0.949479 -0.563974 1.859036 +v 0.970221 -0.554808 1.817247 +v 0.971252 -0.547843 1.821173 +v 0.965024 -0.571004 1.806503 +v 0.991599 -0.535062 1.780147 +v 0.986747 -0.550545 1.768241 +v 0.992377 -0.528351 1.784544 +v 1.012149 -0.512019 1.744510 +v 1.012673 -0.505598 1.749355 +v 1.007865 -0.526820 1.731566 +v 1.031733 -0.485822 1.710547 +v 1.027846 -0.499794 1.696585 +v 1.032015 -0.479732 1.715818 +v 1.050232 -0.456628 1.678473 +v 1.050283 -0.450904 1.684146 +v 1.046768 -0.469716 1.663569 +v 1.067534 -0.424623 1.648479 +v 1.064562 -0.436793 1.632715 +v 1.067369 -0.419301 1.654529 +v 1.083528 -0.389997 1.620757 +v 1.083161 -0.385108 1.627154 +v 1.081064 -0.401191 1.604205 +v 1.098116 -0.352971 1.595469 +v 1.096152 -0.363126 1.578200 +v 1.097566 -0.348545 1.602183 +v 1.111205 -0.313764 1.572780 +v 1.110490 -0.309830 1.579778 +v 1.109684 -0.322808 1.554864 +v 1.122718 -0.272625 1.552821 +v 1.121448 -0.280466 1.534323 +v 1.121859 -0.269207 1.560069 +v 1.132583 -0.229804 1.535724 +v 1.131599 -0.226923 1.543187 +v 1.131616 -0.236417 1.516735 +v 1.140738 -0.185567 1.521585 +v 1.140023 -0.190910 1.502190 +v 1.139652 -0.183241 1.529225 +v 1.147130 -0.140185 1.510501 +v 1.145965 -0.138428 1.518280 +v 1.146561 -0.144216 1.490786 +v 1.151723 -0.093940 1.502530 +v 1.151156 -0.096631 1.482583 +v 1.150504 -0.092762 1.510409 +v 1.154491 -0.047115 1.497732 +v 1.153237 -0.046524 1.505671 +v 1.153946 -0.048463 1.477646 +v 1.155417 0.000000 1.496126 +v 1.154880 0.000000 1.475994 +v 1.154151 0.000000 1.504085 +v 0.372309 0.000000 2.616316 +v 0.373445 -0.059710 2.614167 +v 0.439493 -0.055433 2.589529 +v 0.438454 0.000000 2.591543 +v 0.297197 0.000000 2.639088 +v 0.298435 -0.064203 2.636805 +v 0.376973 -0.119059 2.608145 +v 0.302202 -0.128009 2.630250 +v 0.442808 -0.110539 2.584023 +v 0.382863 -0.177699 2.598220 +v 0.448212 -0.164953 2.574628 +v 0.308501 -0.191047 2.619510 +v 0.390952 -0.235215 2.584126 +v 0.317286 -0.252953 2.604653 +v 0.455821 -0.218393 2.561776 +v 0.401353 -0.291333 2.566368 +v 0.465378 -0.270431 2.545046 +v 0.328377 -0.313227 2.585290 +v 0.413872 -0.345633 2.544732 +v 0.341878 -0.371657 2.562165 +v 0.477098 -0.320898 2.525162 +v 0.428563 -0.397876 2.519648 +v 0.490655 -0.369324 2.501678 +v 0.357650 -0.427832 2.535173 +v 0.445165 -0.447599 2.490887 +v 0.375497 -0.481296 2.504237 +v 0.506099 -0.415505 2.475042 +v 0.463775 -0.494675 2.459047 +v 0.523385 -0.459191 2.445474 +v 0.395470 -0.531898 2.469953 +v 0.484079 -0.538621 2.423922 +v 0.417115 -0.579242 2.432320 +v 0.542260 -0.500004 2.412907 +v 0.506118 -0.579330 2.386039 +v 0.562685 -0.537741 2.377669 +v 0.440217 -0.623237 2.391911 +v 0.468547 -0.660335 2.348677 +v 0.531056 -0.615206 2.345536 +v 0.584891 -0.571877 2.340014 +v 0.560148 -0.644749 2.302724 +v 0.609067 -0.601844 2.300139 +v 0.506251 -0.687505 2.303291 +v 0.549135 -0.705985 2.256584 +v 0.592327 -0.668001 2.258232 +v 0.634805 -0.627493 2.258352 +v 0.626689 -0.685184 2.212907 +v 0.661814 -0.648781 2.215101 +v 0.593296 -0.717395 2.209829 +v 0.636126 -0.724348 2.162760 +v 0.661177 -0.697750 2.166645 +v 0.689448 -0.665968 2.170549 +v 0.694164 -0.707603 2.119825 +v 0.717237 -0.679476 2.125036 +v 0.675119 -0.729621 2.115332 +v 0.710771 -0.733236 2.067426 +v 0.725709 -0.714551 2.072396 +v 0.744991 -0.689123 2.078688 +v 0.756010 -0.718521 2.024394 +v 0.772728 -0.694909 2.031795 +v 0.743645 -0.735240 2.018884 +v 0.773795 -0.736127 1.969199 +v 0.784974 -0.719966 1.975664 +v 0.800290 -0.696912 1.984519 +v 0.812400 -0.719241 1.925980 +v 0.827488 -0.695191 1.937007 +v 0.801195 -0.736323 1.917827 +v 0.838634 -0.715867 1.875474 +v 0.826406 -0.735196 1.864636 +v 0.854302 -0.689658 1.889513 +v 0.863961 -0.709318 1.824240 +v 0.880621 -0.680156 1.842249 +v 0.849932 -0.732058 1.809451 +v 0.888250 -0.699372 1.772335 +v 0.871878 -0.726558 1.752152 +v 0.906207 -0.666634 1.795420 +v 0.911686 -0.686068 1.719952 +v 0.931262 -0.649355 1.749372 +v 0.892312 -0.718332 1.692663 +v 0.934395 -0.668254 1.668094 +v 0.911725 -0.705733 1.632229 +v 0.955507 -0.627988 1.704489 +v 0.956888 -0.645064 1.617852 +v 0.978847 -0.602346 1.661232 +v 0.930882 -0.687324 1.572131 +v 0.979364 -0.615896 1.570891 +v 0.951194 -0.660789 1.516553 +v 1.001454 -0.572552 1.620247 +v 1.002038 -0.580158 1.528871 +v 1.023127 -0.538499 1.582111 +v 0.974329 -0.623988 1.469669 +v 1.024038 -0.539504 1.490762 +v 0.997913 -0.580218 1.428689 +v 1.043518 -0.500751 1.546739 +v 1.044457 -0.495558 1.455534 +v 1.062428 -0.459939 1.514046 +v 1.019796 -0.532920 1.390804 +v 1.062828 -0.448439 1.423418 +v 1.039646 -0.482286 1.356263 +v 1.079550 -0.416240 1.484226 +v 1.079425 -0.398616 1.394595 +v 1.094919 -0.369983 1.457474 +v 1.057530 -0.428715 1.325261 +v 1.093957 -0.346322 1.369251 +v 1.073070 -0.372438 1.298031 +v 1.108502 -0.321476 1.433937 +v 1.106616 -0.291959 1.347511 +v 1.120126 -0.270980 1.413777 +v 1.086616 -0.313960 1.274657 +v 1.116771 -0.235714 1.329584 +v 1.097733 -0.253518 1.255347 +v 1.129716 -0.218812 1.397108 +v 1.124980 -0.178082 1.315490 +v 1.137163 -0.165286 1.384050 +v 1.106415 -0.191508 1.240218 +v 1.130833 -0.119337 1.305362 +v 1.112636 -0.128325 1.229346 +v 1.142760 -0.110777 1.374629 +v 1.134280 -0.059849 1.299281 +v 1.145835 -0.055551 1.368996 +v 1.116398 -0.064360 1.222796 +v 1.135559 0.000000 1.297220 +v 1.117744 0.000000 1.220581 +v 1.147047 0.000000 1.367087 +v 0.212668 0.000000 2.658293 +v 0.214019 -0.068827 2.655933 +v 0.122852 0.000000 2.671421 +v 0.124293 -0.073242 2.668936 +v 0.218059 -0.137228 2.648902 +v 0.128601 -0.146039 2.661522 +v 0.224769 -0.204777 2.637229 +v 0.135765 -0.217958 2.649271 +v 0.234127 -0.271090 2.621125 +v 0.145721 -0.288547 2.632153 +v 0.246083 -0.335770 2.600651 +v 0.158413 -0.357355 2.610233 +v 0.260529 -0.398395 2.575818 +v 0.173777 -0.424012 2.583812 +v 0.277400 -0.458589 2.546818 +v 0.191712 -0.488067 2.552919 +v 0.296561 -0.515950 2.513760 +v 0.211831 -0.548527 2.518103 +v 0.317941 -0.570178 2.476966 +v 0.233811 -0.604565 2.480229 +v 0.256327 -0.656678 2.439645 +v 0.340549 -0.621108 2.436902 +v 0.363302 -0.668403 2.393877 +v 0.277976 -0.705173 2.396592 +v 0.307760 -0.752674 2.345748 +v 0.395831 -0.706490 2.348869 +v 0.915956 -0.706333 1.457419 +v 0.938375 -0.668974 1.404567 +v 0.870362 -0.752778 1.386440 +v 0.898334 -0.706559 1.331697 +v 0.963771 -0.622119 1.360613 +v 0.923595 -0.659060 1.287684 +v 0.987022 -0.571286 1.320035 +v 0.947510 -0.606756 1.246073 +v 1.008350 -0.517027 1.283003 +v 0.969747 -0.550013 1.207428 +v 1.027592 -0.459630 1.249749 +v 0.989967 -0.489207 1.172320 +v 1.044374 -0.399335 1.220536 +v 1.007862 -0.425043 1.141223 +v 1.058662 -0.336560 1.195542 +v 1.023321 -0.358310 1.114534 +v 1.070642 -0.271782 1.174824 +v 1.035870 -0.289290 1.092559 +v 1.079920 -0.205299 1.158619 +v 1.045838 -0.218542 1.075279 +v 1.086627 -0.137570 1.146956 +v 1.053037 -0.146452 1.062840 +v 1.090724 -0.069000 1.139914 +v 1.057287 -0.073448 1.055389 +v 1.092133 0.000000 1.137543 +v 1.058713 0.000000 1.052893 +v 0.032253 0.000000 2.677643 +v 0.033771 -0.077215 2.674995 +v -0.058593 0.000000 2.676569 +v -0.057003 -0.080699 2.673743 +v 0.038307 -0.153953 2.667125 +v -0.052262 -0.160903 2.665536 +v 0.045842 -0.229740 2.654053 +v -0.044393 -0.240144 2.652028 +v 0.056325 -0.304139 2.635980 +v -0.033446 -0.317953 2.633277 +v 0.069708 -0.376725 2.613049 +v -0.019474 -0.393798 2.609185 +v 0.085882 -0.446958 2.585095 +v -0.002573 -0.467264 2.580077 +v 0.104781 -0.514515 2.552591 +v 0.017162 -0.537821 2.545953 +v 0.037628 -0.600521 2.510198 +v 0.125243 -0.576595 2.517132 +v 0.146170 -0.630711 2.480968 +v 0.056748 -0.650971 2.477149 +v 0.074970 -0.693747 2.445245 +v 0.166970 -0.679318 2.443929 +v 0.880790 -0.685743 1.210869 +v 0.903146 -0.635659 1.171750 +v 0.834356 -0.703857 1.132559 +v 0.854150 -0.658408 1.097860 +v 0.925214 -0.578821 1.133297 +v 0.875193 -0.603510 1.061105 +v 0.946183 -0.515776 1.097002 +v 0.896623 -0.539236 1.024200 +v 0.965112 -0.448155 1.064192 +v 0.916311 -0.468491 0.989958 +v 0.981177 -0.377707 1.036160 +v 0.933279 -0.394916 0.960566 +v 0.994630 -0.305015 1.012897 +v 0.947159 -0.318851 0.936353 +v 1.005008 -0.230391 0.994748 +v 0.958110 -0.240864 0.917330 +v 1.012535 -0.154384 0.981664 +v 0.965982 -0.161402 0.903653 +v 1.017121 -0.077433 0.973758 +v 0.970713 -0.080948 0.895425 +v 1.018696 0.000000 0.971091 +v 0.972364 0.000000 0.892627 +v -0.149130 0.000000 2.668546 +v -0.147474 -0.083703 2.665618 +v -0.238765 0.000000 2.653264 +v -0.237048 -0.086176 2.650222 +v -0.142562 -0.166897 2.657137 +v -0.232002 -0.171833 2.641521 +v -0.134407 -0.249083 2.643087 +v -0.223629 -0.256467 2.627129 +v -0.123054 -0.329740 2.623466 +v -0.211952 -0.339527 2.606958 +v -0.108577 -0.408408 2.598503 +v -0.197066 -0.420545 2.581288 +v -0.091065 -0.484599 2.568305 +v -0.179046 -0.498991 2.550166 +v -0.070622 -0.557892 2.533135 +v -0.158013 -0.574430 2.513885 +v -0.137470 -0.637764 2.477712 +v -0.050143 -0.620965 2.497156 +v -0.032684 -0.667662 2.466698 +v -0.121367 -0.681502 2.449715 +v -0.107796 -0.714342 2.426468 +v -0.016979 -0.705097 2.439681 +v 0.783621 -0.715344 1.055044 +v 0.800466 -0.675225 1.025307 +v 0.727475 -0.722534 0.981036 +v 0.741801 -0.687716 0.955765 +v 0.819958 -0.624062 0.991373 +v 0.759465 -0.640606 0.924995 +v 0.841483 -0.559387 0.954404 +v 0.780882 -0.575949 0.888224 +v 0.861820 -0.485950 0.918956 +v 0.802014 -0.500449 0.851592 +v 0.879337 -0.409597 0.888527 +v 0.820006 -0.421792 0.820305 +v 0.893856 -0.330746 0.863340 +v 0.834890 -0.340566 0.794430 +v 0.905193 -0.249843 0.843629 +v 0.846703 -0.257302 0.774019 +v 0.913278 -0.167403 0.829506 +v 0.855024 -0.172398 0.759494 +v 0.918218 -0.083961 0.820950 +v 0.860042 -0.086459 0.750744 +v 0.919960 0.000000 0.818019 +v 0.861822 0.000000 0.747725 +v -0.327000 0.000000 2.631156 +v -0.325238 -0.088133 2.628057 +v -0.413197 0.000000 2.602015 +v -0.411396 -0.089531 2.598856 +v -0.320105 -0.175748 2.619231 +v -0.406192 -0.178535 2.589888 +v -0.311512 -0.262273 2.604352 +v -0.397466 -0.266432 2.574769 +v -0.299569 -0.347202 2.583686 +v -0.385387 -0.352752 2.553901 +v -0.284373 -0.430066 2.557463 +v -0.369948 -0.436920 2.527201 +v -0.265953 -0.510278 2.525610 +v -0.351289 -0.518468 2.494951 +v -0.244483 -0.587458 2.488565 +v -0.329455 -0.596806 2.457168 +v -0.223831 -0.651198 2.452285 +v -0.308656 -0.660834 2.420713 +v -0.208593 -0.692718 2.425557 +v -0.293998 -0.701048 2.394986 +v -0.282946 -0.728913 2.375908 +v -0.196527 -0.722513 2.404879 +v 0.597709 -0.733008 0.851062 +v 0.608921 -0.704834 0.831276 +v 0.677816 -0.697455 0.890921 +v 0.665403 -0.728311 0.912870 +v 0.624345 -0.663092 0.804485 +v 0.694225 -0.653693 0.862473 +v 0.715585 -0.589080 0.825791 +v 0.645692 -0.598474 0.767760 +v 0.737088 -0.511787 0.788436 +v 0.667584 -0.519978 0.729776 +v 0.755582 -0.431399 0.756362 +v 0.686343 -0.438283 0.697231 +v 0.770756 -0.348298 0.729961 +v 0.701907 -0.353924 0.670255 +v 0.782709 -0.263103 0.709207 +v 0.713984 -0.267326 0.649259 +v 0.791337 -0.176309 0.694250 +v 0.722759 -0.179140 0.634052 +v 0.796476 -0.088420 0.685303 +v 0.727943 -0.089835 0.625017 +v 0.798304 0.000000 0.682196 +v 0.729785 0.000000 0.621862 +v -0.496928 0.000000 2.566342 +v -0.495104 -0.090389 2.563163 +v -0.577535 0.000000 2.524046 +v -0.575697 -0.090675 2.520858 +v -0.489878 -0.180253 2.554135 +v -0.570467 -0.180822 2.511793 +v -0.481064 -0.268993 2.538858 +v -0.561614 -0.269836 2.496446 +v -0.468899 -0.356153 2.517811 +v -0.549440 -0.357276 2.475341 +v -0.453273 -0.441081 2.490734 +v -0.533779 -0.442479 2.448193 +v -0.434450 -0.523395 2.458148 +v -0.514945 -0.525083 2.415543 +v -0.412411 -0.602457 2.419971 +v -0.492846 -0.604397 2.377234 +v -0.391492 -0.666658 2.383491 +v -0.471824 -0.668654 2.340793 +v -0.377158 -0.706009 2.358452 +v -0.457543 -0.707692 2.316036 +v -0.447221 -0.733902 2.298141 +v -0.366719 -0.732699 2.340375 +v 0.457827 -0.712207 0.729217 +v 0.535335 -0.710080 0.777464 +v 0.524685 -0.736947 0.796134 +v 0.447248 -0.738703 0.747556 +v 0.472950 -0.671129 0.703001 +v 0.550425 -0.669009 0.751254 +v 0.571784 -0.604174 0.714374 +v 0.494307 -0.606135 0.665977 +v 0.593929 -0.524966 0.675979 +v 0.516545 -0.526689 0.627428 +v 0.612805 -0.442438 0.643224 +v 0.535482 -0.443880 0.594600 +v 0.628520 -0.357283 0.615985 +v 0.551252 -0.358450 0.567262 +v 0.640728 -0.269864 0.594792 +v 0.563498 -0.270739 0.546032 +v 0.649624 -0.180852 0.579385 +v 0.572416 -0.181438 0.530574 +v 0.654865 -0.090693 0.570274 +v 0.577677 -0.090986 0.521454 +v 0.656720 0.000000 0.567078 +v 0.579527 0.000000 0.518245 +v -0.654669 0.000000 2.475681 +v -0.652825 -0.090411 2.472503 +v -0.727670 0.000000 2.421271 +v -0.725840 -0.089576 2.418133 +v -0.647614 -0.180294 2.463441 +v -0.720685 -0.178627 2.409142 +v -0.638782 -0.269046 2.448134 +v -0.711972 -0.266574 2.394023 +v -0.626642 -0.356219 2.427051 +v -0.699962 -0.352946 2.373126 +v -0.611034 -0.441169 2.399978 +v -0.684578 -0.437163 2.346389 +v -0.592258 -0.523511 2.367382 +v -0.665913 -0.518692 2.313980 +v -0.570250 -0.602597 2.329199 +v -0.644153 -0.597080 2.276178 +v -0.549147 -0.666830 2.292829 +v -0.622990 -0.661251 2.239873 +v -0.534642 -0.706222 2.267872 +v -0.607961 -0.701785 2.214115 +v -0.524045 -0.732976 2.249514 +v -0.596733 -0.730046 2.194596 +v 0.293852 -0.705443 0.649318 +v 0.377293 -0.710338 0.686176 +v 0.366516 -0.737037 0.704655 +v 0.282341 -0.733679 0.668906 +v 0.309423 -0.663467 0.622376 +v 0.392473 -0.669188 0.659907 +v 0.413737 -0.604332 0.622895 +v 0.330589 -0.598789 0.585376 +v 0.435912 -0.525128 0.584450 +v 0.352529 -0.520267 0.547368 +v 0.454839 -0.442593 0.551668 +v 0.371285 -0.438487 0.514915 +v 0.470545 -0.357399 0.524441 +v 0.386826 -0.354065 0.487993 +v 0.482768 -0.269944 0.503285 +v 0.398975 -0.267443 0.466978 +v 0.491645 -0.180902 0.487889 +v 0.407763 -0.179225 0.451730 +v 0.496902 -0.090717 0.478802 +v 0.412998 -0.089879 0.442697 +v 0.498738 0.000000 0.475600 +v 0.414810 0.000000 0.439514 +v -0.796276 0.000000 2.361414 +v -0.794459 -0.088197 2.358321 +v -0.859850 0.000000 2.296246 +v -0.858079 -0.086262 2.293239 +v -0.789346 -0.175867 2.349411 +v -0.853086 -0.172009 2.284521 +v -0.780776 -0.262455 2.334527 +v -0.844831 -0.256735 2.270071 +v -0.768884 -0.347455 2.313857 +v -0.833166 -0.339865 2.249810 +v -0.753808 -0.430392 2.287581 +v -0.818349 -0.420945 2.224019 +v -0.735478 -0.510684 2.255702 +v -0.800457 -0.499487 2.192847 +v -0.714077 -0.587864 2.218479 +v -0.779503 -0.574949 2.156395 +v -0.692927 -0.652027 2.182237 +v -0.758303 -0.639019 2.120105 +v -0.677023 -0.694589 2.154942 +v -0.741351 -0.684625 2.090779 +v -0.664721 -0.725152 2.133434 +v -0.727386 -0.718675 2.066306 +v 0.119331 -0.689223 0.596428 +v 0.207619 -0.698583 0.619476 +v 0.194486 -0.730325 0.641782 +v 0.103945 -0.725548 0.622706 +v 0.137390 -0.641416 0.565323 +v 0.224221 -0.654296 0.590732 +v 0.245388 -0.589556 0.553630 +v 0.158616 -0.576546 0.528112 +v 0.266945 -0.512148 0.516401 +v 0.179745 -0.500909 0.491577 +v 0.285460 -0.431700 0.484325 +v 0.197864 -0.422238 0.460169 +v 0.300753 -0.348571 0.457864 +v 0.212816 -0.340909 0.434364 +v 0.312764 -0.263326 0.437043 +v 0.224556 -0.257530 0.414033 +v 0.321391 -0.176454 0.422102 +v 0.232980 -0.172558 0.399496 +v 0.326555 -0.088490 0.413211 +v 0.238055 -0.086542 0.390726 +v 0.328327 0.000000 0.410085 +v 0.239782 0.000000 0.387657 +v -0.918217 0.000000 2.226391 +v -0.916484 -0.083803 2.223469 +v -0.970788 0.000000 2.152096 +v -0.969144 -0.080818 2.149305 +v -0.911565 -0.167090 2.214938 +v -0.964431 -0.161144 2.141097 +v -0.903514 -0.249381 2.200856 +v -0.956707 -0.240513 2.127527 +v -0.892237 -0.330149 2.181210 +v -0.945804 -0.318396 2.108553 +v -0.877890 -0.408926 2.156174 +v -0.931985 -0.394370 2.084398 +v -0.860437 -0.485177 2.125818 +v -0.915189 -0.467921 2.055133 +v -0.840280 -0.558596 2.090524 +v -0.895559 -0.538601 2.020950 +v -0.819031 -0.622565 2.054149 +v -0.874490 -0.602217 1.984685 +v -0.800360 -0.671777 2.021949 +v -0.854383 -0.655210 1.949719 +v -0.784113 -0.710911 1.993338 +v -0.835067 -0.699764 1.916256 +v -0.059945 -0.659754 0.569494 +v 0.029744 -0.676755 0.580058 +v 0.011774 -0.718146 0.610820 +v -0.080535 -0.706063 0.604803 +v -0.038517 -0.604482 0.532665 +v 0.049586 -0.624966 0.545910 +v 0.070905 -0.560050 0.508618 +v -0.017229 -0.539975 0.495623 +v 0.091438 -0.486559 0.473163 +v 0.002583 -0.469192 0.461267 +v 0.109026 -0.410094 0.442776 +v 0.019554 -0.395471 0.431923 +v 0.123574 -0.331134 0.417614 +v 0.033590 -0.319349 0.407582 +v 0.134988 -0.250163 0.397792 +v 0.044586 -0.241206 0.388714 +v 0.143185 -0.167628 0.383633 +v 0.052493 -0.161623 0.375090 +v 0.148116 -0.084068 0.375133 +v 0.057256 -0.081062 0.366811 +v 0.149781 0.000000 0.372176 +v 0.058855 0.000000 0.363957 +v -1.017474 0.000000 2.073990 +v -1.015904 -0.077341 2.071328 +v -1.057747 0.000000 1.992420 +v -1.056324 -0.073381 1.989928 +v -1.011332 -0.154201 2.063436 +v -1.052085 -0.146320 1.982486 +v -1.003827 -0.230121 2.050375 +v -1.045051 -0.218378 1.970125 +v -0.993479 -0.304663 2.032255 +v -1.035102 -0.289076 1.952864 +v -0.980195 -0.377330 2.009095 +v -1.022570 -0.358047 1.930907 +v -0.964169 -0.447719 1.981102 +v -1.007276 -0.424796 1.904296 +v -0.945407 -0.515354 1.948391 +v -0.989538 -0.488994 1.873269 +v -0.924715 -0.578025 1.912505 +v -0.969424 -0.549708 1.838277 +v -0.903276 -0.633747 1.875151 +v -0.947425 -0.606203 1.799928 +v -0.880980 -0.683718 1.837288 +v -0.923162 -0.659070 1.759362 +v -0.171442 -0.687428 0.603113 +v -0.148514 -0.636890 0.563737 +v -0.259594 -0.660270 0.603979 +v -0.235202 -0.607885 0.562354 +v -0.212825 -0.551024 0.523652 +v -0.126198 -0.579875 0.525174 +v -0.105219 -0.516650 0.488828 +v -0.192530 -0.490142 0.488414 +v -0.086252 -0.448866 0.456085 +v -0.174540 -0.425867 0.457272 +v -0.070017 -0.378377 0.427901 +v -0.159121 -0.358949 0.430651 +v -0.056579 -0.305493 0.404800 +v -0.146380 -0.289849 0.408581 +v -0.046052 -0.230779 0.386569 +v -0.136386 -0.218953 0.391325 +v -0.038485 -0.154657 0.373382 +v -0.129195 -0.146713 0.378960 +v -0.033928 -0.077568 0.365471 +v -0.124871 -0.073582 0.371475 +v -0.032404 0.000000 0.362796 +v -0.123425 0.000000 0.368963 +v -1.091612 0.000000 1.908014 +v -1.090204 -0.068968 1.905645 +v -1.118609 0.000000 1.821196 +v -1.117272 -0.064125 1.818990 +v -1.086112 -0.137506 1.898607 +v -1.113544 -0.127859 1.812470 +v -1.079413 -0.205203 1.886951 +v -1.107423 -0.190825 1.801656 +v -1.070218 -0.271675 1.870780 +v -1.098805 -0.252621 1.786589 +v -1.058329 -0.336454 1.850096 +v -1.087776 -0.312863 1.767357 +v -1.044152 -0.399249 1.825140 +v -1.074392 -0.371176 1.744090 +v -1.027419 -0.459550 1.795946 +v -1.059034 -0.427313 1.716975 +v -1.008320 -0.517013 1.762722 +v -1.041271 -0.480748 1.686079 +v -0.987126 -0.571337 1.725698 +v -1.021606 -0.531290 1.651661 +v -0.999852 -0.578654 1.614049 +v -0.963616 -0.622663 1.685680 +v -0.937262 -0.670889 1.643456 +v -0.896064 -0.708709 1.717703 +v -0.976235 -0.622746 1.573646 +v -0.914526 -0.708978 1.591541 +v -0.953511 -0.659172 1.526689 +v -0.866319 -0.756874 1.665364 +v -0.319811 -0.753627 0.699670 +v -0.409467 -0.703346 0.695045 +v -0.371745 -0.668073 0.649317 +v -0.285943 -0.707753 0.648019 +v -0.484258 -0.653364 0.694415 +v -0.451295 -0.619586 0.651070 +v -0.423788 -0.578574 0.610178 +v -0.343675 -0.622797 0.605412 +v -0.319251 -0.572471 0.564898 +v -0.400679 -0.532228 0.572342 +v -0.297810 -0.518112 0.527808 +v -0.380739 -0.481656 0.537911 +v -0.278596 -0.460571 0.494478 +v -0.362917 -0.428198 0.506827 +v -0.261669 -0.400144 0.465296 +v -0.347139 -0.371986 0.479791 +v -0.247182 -0.337278 0.440251 +v -0.333668 -0.313546 0.456507 +v -0.235190 -0.272329 0.419600 +v -0.322572 -0.253215 0.437109 +v -0.225803 -0.205725 0.403355 +v -0.313813 -0.191268 0.422103 +v -0.219070 -0.137868 0.391581 +v -0.307509 -0.128158 0.411340 +v -0.215016 -0.069149 0.384498 +v -0.303739 -0.064278 0.404770 +v -0.213660 0.000000 0.382122 +v -0.302501 0.000000 0.402483 +v -1.138842 0.000000 1.732585 +v -1.137546 -0.058893 1.730552 +v -1.151556 0.000000 1.645955 +v -1.150378 -0.053505 1.644117 +v -1.134111 -0.117426 1.724558 +v -1.147391 -0.106695 1.638685 +v -1.128424 -0.175242 1.714606 +v -1.142211 -0.159225 1.629636 +v -1.120540 -0.231995 1.700768 +v -1.134969 -0.210775 1.617048 +v -1.110472 -0.287332 1.683111 +v -1.125779 -0.261038 1.600994 +v -1.098212 -0.340896 1.661742 +v -1.114640 -0.309698 1.581577 +v -1.083981 -0.392396 1.636803 +v -1.101811 -0.356511 1.558913 +v -1.067630 -0.441447 1.608432 +v -1.086926 -0.401058 1.533134 +v -1.049584 -0.487865 1.576832 +v -1.070432 -0.443171 1.504408 +v -1.029724 -0.531286 1.542183 +v -1.052397 -0.482594 1.472914 +v -1.008134 -0.571410 1.504701 +v -1.032881 -0.519062 1.438835 +v -0.986172 -0.606266 1.462974 +v -1.012206 -0.551866 1.401978 +v -0.964825 -0.633706 1.415569 +v -0.934777 -0.683831 1.469370 +v -0.990747 -0.580326 1.362145 +v -0.943527 -0.655333 1.364934 +v -0.968317 -0.604617 1.320158 +v -0.917081 -0.700126 1.407359 +v -0.859897 -0.748141 1.307996 +v -0.840009 -0.750830 1.246527 +v -0.825967 -0.771420 1.260738 +v -0.843984 -0.771514 1.326396 +v -0.877768 -0.720499 1.287000 +v -0.855474 -0.726835 1.230727 +v -0.817671 -0.752158 1.188879 +v -0.831945 -0.730558 1.176549 +v -0.804451 -0.771399 1.200273 +v -0.793581 -0.751508 1.133558 +v -0.780019 -0.770583 1.143181 +v -0.807561 -0.731077 1.123594 +v -0.766756 -0.750191 1.080546 +v -0.781445 -0.729691 1.072142 +v -0.752015 -0.769977 1.088983 +v -0.736163 -0.749442 1.029900 +v -0.719595 -0.770329 1.037361 +v -0.752716 -0.727680 1.022510 +v -0.720384 -0.725175 0.973472 +v -0.700940 -0.748765 0.979752 +v -0.682081 -0.770737 0.986318 +v -0.659824 -0.747255 0.928457 +v -0.638495 -0.769974 0.933968 +v -0.683213 -0.722098 0.923909 +v -0.643737 -0.716867 0.875560 +v -0.615104 -0.744362 0.878733 +v -0.589954 -0.768550 0.883401 +v -0.565262 -0.695502 0.785244 +v -0.612668 -0.652990 0.784152 +v -0.581411 -0.630440 0.740806 +v -0.523716 -0.677999 0.739560 +v -0.661572 -0.604374 0.785424 +v -0.636944 -0.579855 0.745047 +v -0.613391 -0.551376 0.706414 +v -0.551614 -0.602786 0.698537 +v -0.524502 -0.569624 0.658287 +v -0.591417 -0.519051 0.669819 +v -0.571144 -0.483119 0.635606 +v -0.500427 -0.531476 0.620432 +v -0.479587 -0.488714 0.585633 +v -0.552740 -0.443857 0.604056 +v -0.461273 -0.442255 0.554054 +v -0.536140 -0.401709 0.575288 +v -0.444900 -0.393145 0.525574 +v -0.521278 -0.357109 0.549406 +v -0.430414 -0.341551 0.500712 +v -0.508157 -0.310278 0.526723 +v -0.418111 -0.287941 0.479159 +v -0.496888 -0.261519 0.507356 +v -0.407818 -0.232472 0.461634 +v -0.487648 -0.211196 0.491178 +v -0.399820 -0.175623 0.447719 +v -0.480313 -0.159527 0.478689 +v -0.394071 -0.117691 0.437702 +v -0.475103 -0.106906 0.469569 +v -0.390598 -0.059026 0.431707 +v -0.471912 -0.053613 0.464203 +v -0.389472 0.000000 0.429596 +v -0.470916 0.000000 0.462242 +v -1.157563 0.000000 1.565305 +v -1.156514 -0.048261 1.563656 +v -1.158058 0.000000 1.489264 +v -1.157152 -0.043115 1.487797 +v -1.153752 -0.096231 1.558744 +v -1.154638 -0.085965 1.483405 +v -1.149143 -0.143617 1.550581 +v -1.150366 -0.128277 1.476114 +v -1.142510 -0.190096 1.539224 +v -1.144535 -0.169807 1.465971 +v -1.134262 -0.235434 1.524741 +v -1.137244 -0.210319 1.453021 +v -1.124204 -0.279316 1.507224 +v -1.128259 -0.249518 1.437371 +v -1.112673 -0.321541 1.486767 +v -1.117888 -0.287212 1.419087 +v -1.099257 -0.361718 1.463516 +v -1.105931 -0.323108 1.398315 +v -1.084370 -0.399686 1.437596 +v -1.092700 -0.357042 1.375150 +v -1.068094 -0.435217 1.409173 +v -1.078193 -0.388789 1.349748 +v -1.050488 -0.468076 1.378413 +v -1.062353 -0.418093 1.322285 +v -1.031659 -0.498065 1.345511 +v -1.045468 -0.444845 1.292905 +v -1.011703 -0.524981 1.310665 +v -1.027671 -0.468891 1.261771 +v -0.990681 -0.548633 1.274112 +v -1.009009 -0.490067 1.229088 +v -0.968891 -0.568954 1.236031 +v -0.945257 -0.625241 1.276714 +v -0.989419 -0.508147 1.195111 +v -0.946298 -0.585734 1.196707 +v -0.969279 -0.523151 1.159974 +v -0.921124 -0.641953 1.232331 +v -0.923181 -0.598940 1.156333 +v -0.896475 -0.655126 1.187281 +v -0.948545 -0.534891 1.123948 +v -0.899469 -0.608370 1.115247 +v -0.927479 -0.543375 1.087204 +v -0.871213 -0.664423 1.141788 +v -0.875643 -0.614164 1.073553 +v -0.845595 -0.669741 1.095954 +v -0.906088 -0.548474 1.050021 +v -0.851503 -0.616073 1.031675 +v -0.884567 -0.550201 1.012601 +v -0.819656 -0.671275 1.050057 +v -0.827426 -0.614224 0.989755 +v -0.793420 -0.669209 1.004381 +v -0.863104 -0.548568 0.975140 +v -0.803418 -0.608542 0.948138 +v -0.841648 -0.543484 0.937983 +v -0.766886 -0.663628 0.958987 +v -0.779776 -0.599153 0.906984 +v -0.739998 -0.654579 0.913962 +v -0.820522 -0.535084 0.901239 +v -0.756547 -0.586058 0.866610 +v -0.799844 -0.523427 0.865130 +v -0.713087 -0.641691 0.869906 +v -0.733885 -0.569331 0.827266 +v -0.687039 -0.625048 0.826959 +v -0.779567 -0.508459 0.830026 +v -0.711895 -0.549061 0.789227 +v -0.759991 -0.490396 0.795996 +v -0.690874 -0.525478 0.752573 +v -0.741118 -0.469261 0.763366 +v -0.670768 -0.498604 0.717712 +v -0.723143 -0.445247 0.732259 +v -0.651773 -0.468644 0.684798 +v -0.706213 -0.418510 0.702832 +v -0.634001 -0.435793 0.654031 +v -0.690402 -0.389206 0.675282 +v -0.617569 -0.400246 0.625606 +v -0.675816 -0.357507 0.649778 +v -0.602591 -0.362244 0.599663 +v -0.662386 -0.323538 0.626674 +v -0.589179 -0.322019 0.576346 +v -0.650374 -0.287594 0.605899 +v -0.577330 -0.279783 0.555916 +v -0.639831 -0.249891 0.587588 +v -0.567160 -0.235817 0.538454 +v -0.630732 -0.210621 0.572005 +v -0.558810 -0.190430 0.523911 +v -0.623235 -0.170072 0.559079 +v -0.552319 -0.143877 0.512407 +v -0.617423 -0.128489 0.548847 +v -0.547505 -0.096397 0.504402 +v -0.613165 -0.086096 0.541609 +v -0.544655 -0.048346 0.499498 +v -0.610634 -0.043181 0.537204 +v -0.543759 0.000000 0.497746 +v -0.609825 0.000000 0.535668 +v -1.153821 0.000000 1.416531 +v -1.153074 -0.038008 1.415235 +v -1.145605 0.000000 1.348333 +v -1.144922 -0.033051 1.347212 +v -1.150891 -0.075785 1.411360 +v -1.142991 -0.065899 1.343846 +v -1.147113 -0.113086 1.404938 +v -1.139796 -0.098342 1.338252 +v -1.141936 -0.149692 1.395999 +v -1.135234 -0.130167 1.330492 +v -1.135454 -0.185392 1.384581 +v -1.129526 -0.161197 1.320571 +v -1.127576 -0.219952 1.370777 +v -1.122780 -0.191262 1.308543 +v -1.118355 -0.253158 1.354663 +v -1.114735 -0.220130 1.294532 +v -1.107830 -0.284800 1.336350 +v -1.105628 -0.247654 1.278595 +v -1.096119 -0.314693 1.315935 +v -1.095334 -0.273620 1.260867 +v -1.083199 -0.342629 1.293569 +v -1.084317 -0.297971 1.241365 +v -1.069355 -0.368493 1.269339 +v -1.072202 -0.320439 1.220312 +v -1.054632 -0.392128 1.243401 +v -1.059190 -0.340916 1.197816 +v -1.038829 -0.413272 1.215986 +v -1.045674 -0.359373 1.173907 +v -1.022397 -0.431935 1.187170 +v -1.031261 -0.375548 1.148890 +v -1.005139 -0.447874 1.157219 +v -1.016338 -0.389436 1.122815 +v -0.987463 -0.461127 1.126217 +v -1.000817 -0.400892 1.095918 +v -0.969098 -0.471431 1.094502 +v -0.984909 -0.409879 1.068319 +v -0.950466 -0.478872 1.062148 +v -0.968751 -0.416367 1.040168 +v -0.931635 -0.483375 1.029368 +v -0.952400 -0.420291 1.011655 +v -0.912690 -0.484906 0.996379 +v -0.935928 -0.421620 0.982973 +v -0.893740 -0.483440 0.963386 +v -0.919433 -0.420330 0.954301 +v -0.874906 -0.478999 0.930591 +v -0.903018 -0.416444 0.925815 +v -0.856326 -0.471612 0.898180 +v -0.886813 -0.409989 0.897675 +v -0.838097 -0.461325 0.866361 +v -0.870952 -0.401032 0.870025 +v -0.820161 -0.448098 0.835476 +v -0.855499 -0.389602 0.843062 +v -0.802939 -0.432190 0.805461 +v -0.840451 -0.375734 0.817029 +v -0.786314 -0.413570 0.776696 +v -0.826174 -0.359627 0.791863 +v -0.770612 -0.392477 0.749140 +v -0.812279 -0.341177 0.768134 +v -0.755572 -0.368848 0.723328 +v -0.799335 -0.320694 0.745568 +v -0.741548 -0.342975 0.699153 +v -0.787184 -0.298214 0.724507 +v -0.728658 -0.315018 0.676731 +v -0.775939 -0.273889 0.705054 +v -0.716972 -0.285148 0.656187 +v -0.765718 -0.247891 0.687269 +v -0.706356 -0.253459 0.637910 +v -0.756581 -0.220371 0.671270 +v -0.697110 -0.220245 0.621716 +v -0.748423 -0.191460 0.657329 +v -0.689053 -0.185628 0.608020 +v -0.741464 -0.161382 0.645355 +v -0.682478 -0.149899 0.596580 +v -0.735796 -0.130330 0.635351 +v -0.677370 -0.113249 0.587550 +v -0.731293 -0.098457 0.627587 +v -0.673615 -0.075885 0.581170 +v -0.728057 -0.065977 0.622005 +v -0.671372 -0.038059 0.577304 +v -0.726132 -0.033091 0.618617 +v -0.670633 0.000000 0.575995 +v -0.725510 0.000000 0.617454 +v -1.134439 0.000000 1.285890 +v -1.133790 -0.028372 1.284944 +v -1.121342 0.000000 1.229249 +v -1.120634 -0.025997 1.228206 +v -1.132099 -0.056567 1.282066 +v -1.119291 -0.052012 1.226687 +v -1.129396 -0.084416 1.277262 +v -1.117770 -0.078057 1.226384 +v -1.118432 -0.100812 1.235883 +v -1.125734 -0.111756 1.270557 +v -1.120736 -0.138377 1.262057 +v -1.111886 -0.114188 1.216220 +v -1.105807 -0.135878 1.203053 +v -1.114736 -0.164149 1.251767 +v -1.107975 -0.188949 1.239700 +v -1.099250 -0.158087 1.191018 +v -1.092202 -0.179860 1.178617 +v -1.100094 -0.212564 1.226031 +v -1.091317 -0.234870 1.210799 +v -1.084104 -0.200179 1.164505 +v -1.081804 -0.255758 1.194071 +v -1.075400 -0.220082 1.150035 +v -1.071413 -0.275049 1.176003 +v -1.066339 -0.240561 1.136631 +v -1.059467 -0.263997 1.133139 +v -1.060319 -0.292648 1.156679 +v -1.048551 -0.308424 1.136212 +v -1.051000 -0.262904 1.109992 +v -1.039815 -0.271936 1.088209 +v -1.036349 -0.322351 1.114672 +v -1.023366 -0.334209 1.092357 +v -1.028206 -0.281898 1.067056 +v -1.016141 -0.291138 1.045909 +v -1.010085 -0.344055 1.069252 +v -0.996559 -0.351815 1.045500 +v -1.003527 -0.297986 1.024180 +v -0.982781 -0.357421 1.021287 +v -0.990553 -0.304155 1.002379 +v -0.968655 -0.360761 0.996861 +v -0.977068 -0.311258 0.981183 +v -0.963985 -0.326445 0.966788 +v -0.954470 -0.361887 0.972277 +v -0.940340 -0.360781 0.947660 +v -0.958098 -0.311266 0.948242 +v -0.946644 -0.304211 0.925867 +v -0.926315 -0.357459 0.923171 +v -0.912424 -0.351919 0.899002 +v -0.934287 -0.298048 0.903702 +v -0.921808 -0.291204 0.881886 +v -0.898698 -0.344182 0.875345 +v -0.885373 -0.334345 0.852247 +v -0.909720 -0.282020 0.860716 +v -0.872576 -0.322493 0.829805 +v -0.897225 -0.272058 0.840058 +v -0.860188 -0.308619 0.808318 +v -0.883974 -0.263028 0.819451 +v -0.868308 -0.264165 0.800409 +v -0.848373 -0.292842 0.787856 +v -0.837191 -0.275230 0.768569 +v -0.868641 -0.240692 0.792778 +v -0.861682 -0.220231 0.778123 +v -0.826885 -0.255969 0.750390 +v -0.817135 -0.235054 0.733790 +v -0.853544 -0.200322 0.763303 +v -0.845412 -0.179993 0.749184 +v -0.808455 -0.212761 0.718436 +v -0.800506 -0.189110 0.704813 +v -0.838296 -0.158221 0.736773 +v -0.793527 -0.164307 0.692811 +v -0.831084 -0.135982 0.725125 +v -0.787693 -0.138524 0.682370 +v -0.822817 -0.114291 0.713161 +v -0.809044 -0.100902 0.697658 +v -0.782735 -0.111865 0.673881 +v -0.778812 -0.084506 0.667295 +v -0.817024 -0.078139 0.702904 +v -0.817520 -0.052067 0.701447 +v -0.776043 -0.056631 0.662510 +v -0.774420 -0.028405 0.659580 +v -0.816853 -0.026024 0.699551 +v -0.816287 0.000000 0.698435 +v -0.773933 0.000000 0.658534 +v 0.568201 0.000000 2.523643 +v 0.569101 -0.045738 2.522084 +v 0.574139 -0.044961 2.513591 +v 0.573255 0.000000 2.515123 +v 0.571800 -0.091195 2.517434 +v 0.576785 -0.089645 2.509013 +v 0.576264 -0.136089 2.509696 +v 0.581173 -0.133776 2.501407 +v 0.582466 -0.180145 2.498934 +v 0.587272 -0.177083 2.490829 +v 0.590382 -0.223088 2.485207 +v 0.595054 -0.219297 2.477336 +v 0.599955 -0.264658 2.468609 +v 0.604466 -0.260161 2.461021 +v 0.611136 -0.304594 2.449235 +v 0.615455 -0.299418 2.441975 +v 0.623841 -0.342655 2.427209 +v 0.627944 -0.336832 2.420323 +v 0.638000 -0.378600 2.402659 +v 0.641864 -0.372167 2.396191 +v 0.653535 -0.412215 2.375753 +v 0.657130 -0.405209 2.369738 +v 0.670326 -0.443284 2.346632 +v 0.673641 -0.435750 2.341116 +v 0.688279 -0.471624 2.315491 +v 0.691293 -0.463610 2.310507 +v 0.707297 -0.497052 2.282522 +v 0.709987 -0.488606 2.278098 +v 0.727251 -0.519421 2.247928 +v 0.729601 -0.510595 2.244092 +v 0.748022 -0.538581 2.211919 +v 0.750020 -0.529429 2.208696 +v 0.769480 -0.554426 2.174721 +v 0.771114 -0.545005 2.172130 +v 0.791494 -0.566848 2.136559 +v 0.792754 -0.557216 2.134616 +v 0.813928 -0.575781 2.097673 +v 0.814805 -0.565997 2.096390 +v 0.836646 -0.581159 2.058300 +v 0.837133 -0.571283 2.057685 +v 0.859502 -0.582959 2.018683 +v 0.859600 -0.573052 2.018739 +v 0.882362 -0.581159 1.979067 +v 0.882065 -0.571283 1.979793 +v 0.905112 -0.575784 1.939712 +v 0.904396 -0.565996 1.941089 +v 0.927550 -0.566851 1.900828 +v 0.926448 -0.557215 1.902863 +v 0.949515 -0.554426 1.862639 +v 0.948083 -0.545005 1.865347 +v 0.970968 -0.538580 1.825438 +v 0.969177 -0.529429 1.828781 +v 0.991742 -0.519421 1.789431 +v 0.989598 -0.510593 1.793386 +v 1.011696 -0.497052 1.754837 +v 1.009214 -0.488605 1.759381 +v 1.030713 -0.471624 1.721868 +v 1.027908 -0.463609 1.726972 +v 1.048673 -0.443283 1.690731 +v 1.045563 -0.435751 1.696364 +v 1.065470 -0.412214 1.661614 +v 1.062075 -0.405209 1.667742 +v 1.080995 -0.378600 1.634702 +v 1.077336 -0.372166 1.641287 +v 1.095156 -0.342655 1.610153 +v 1.091256 -0.336832 1.617155 +v 1.107861 -0.304594 1.588127 +v 1.103745 -0.299418 1.595503 +v 1.119038 -0.264658 1.568751 +v 1.114733 -0.260160 1.576456 +v 1.128613 -0.223087 1.552154 +v 1.124144 -0.219297 1.560141 +v 1.136530 -0.180144 1.538428 +v 1.131927 -0.177083 1.546648 +v 1.142737 -0.136088 1.527668 +v 1.138028 -0.133776 1.536071 +v 1.147200 -0.091194 1.519930 +v 1.142416 -0.089645 1.528465 +v 1.149887 -0.045738 1.515272 +v 1.145057 -0.044961 1.523886 +v 1.150787 0.000000 1.513713 +v 1.145942 0.000000 1.522353 +v 0.574722 0.000000 2.507682 +v 0.575595 -0.044398 2.506169 +v 0.573936 -0.043703 2.495015 +v 0.573077 0.000000 2.496505 +v 0.578203 -0.088522 2.501647 +v 0.576503 -0.087136 2.490564 +v 0.582536 -0.132100 2.494137 +v 0.580768 -0.130032 2.483171 +v 0.588561 -0.174865 2.483692 +v 0.586699 -0.172127 2.472890 +v 0.596247 -0.216550 2.470368 +v 0.594265 -0.213159 2.459775 +v 0.605540 -0.256902 2.454257 +v 0.603413 -0.252880 2.443916 +v 0.616390 -0.295668 2.435449 +v 0.614093 -0.291038 2.425403 +v 0.628724 -0.332613 2.414069 +v 0.626233 -0.327405 2.404357 +v 0.642470 -0.367505 2.390239 +v 0.639764 -0.361751 2.380900 +v 0.657539 -0.400134 2.364116 +v 0.654598 -0.393869 2.355186 +v 0.673844 -0.430293 2.335852 +v 0.670647 -0.423556 2.327364 +v 0.691278 -0.457803 2.305628 +v 0.687808 -0.450635 2.297614 +v 0.709739 -0.482486 2.273625 +v 0.705980 -0.474931 2.266113 +v 0.729110 -0.504198 2.240046 +v 0.725047 -0.496304 2.233059 +v 0.749273 -0.522798 2.205093 +v 0.744895 -0.514612 2.198653 +v 0.770102 -0.538179 2.168985 +v 0.765398 -0.529752 2.163110 +v 0.791471 -0.550237 2.131942 +v 0.786432 -0.541622 2.126647 +v 0.813246 -0.558907 2.094194 +v 0.807866 -0.550156 2.089491 +v 0.835294 -0.564127 2.055973 +v 0.829569 -0.555294 2.051868 +v 0.857479 -0.565874 2.017515 +v 0.851407 -0.557014 2.014012 +v 0.879663 -0.564127 1.979057 +v 0.873244 -0.555294 1.976157 +v 0.901711 -0.558907 1.940836 +v 0.894946 -0.550156 1.938534 +v 0.923486 -0.550236 1.903089 +v 0.916380 -0.541622 1.901377 +v 0.944855 -0.538179 1.866045 +v 0.937414 -0.529752 1.864914 +v 0.965684 -0.522798 1.829937 +v 0.957917 -0.514612 1.829371 +v 0.985847 -0.504198 1.794984 +v 0.977765 -0.496304 1.794965 +v 1.005217 -0.482485 1.761405 +v 0.996832 -0.474931 1.761912 +v 1.023678 -0.457802 1.729402 +v 1.015004 -0.450634 1.730411 +v 1.041113 -0.430293 1.699179 +v 1.032165 -0.423555 1.700660 +v 1.057417 -0.400134 1.670915 +v 1.048214 -0.393869 1.672839 +v 1.072487 -0.367505 1.644791 +v 1.063048 -0.361750 1.647124 +v 1.086233 -0.332613 1.620962 +v 1.076579 -0.327405 1.623668 +v 1.098567 -0.295667 1.599581 +v 1.088719 -0.291038 1.602622 +v 1.109416 -0.256902 1.580773 +v 1.099399 -0.252879 1.584109 +v 1.118710 -0.216550 1.564662 +v 1.108547 -0.213159 1.568250 +v 1.126396 -0.174865 1.551339 +v 1.116113 -0.172127 1.555135 +v 1.132421 -0.132100 1.540894 +v 1.122044 -0.130031 1.544854 +v 1.136753 -0.088522 1.533383 +v 1.126308 -0.087136 1.537461 +v 1.139362 -0.044398 1.528862 +v 1.128876 -0.043702 1.533010 +v 1.140235 0.000000 1.527348 +v 1.129735 0.000000 1.531521 +v 0.496009 0.000000 2.566193 +v 0.496955 -0.051454 2.564307 +v 0.499994 -0.102594 2.559100 +v 0.505022 -0.153101 2.550408 +v 0.512045 -0.202679 2.538377 +v 0.521023 -0.251026 2.523063 +v 0.531810 -0.297810 2.504411 +v 0.544406 -0.342759 2.482641 +v 0.558819 -0.385664 2.458039 +v 0.574877 -0.426204 2.430590 +v 0.592392 -0.464074 2.400350 +v 0.611372 -0.499106 2.367664 +v 0.631686 -0.531087 2.332720 +v 0.653174 -0.559780 2.295677 +v 0.675681 -0.584997 2.256754 +v 0.699166 -0.606651 2.216287 +v 0.723441 -0.624582 2.174480 +v 0.748280 -0.638605 2.131520 +v 0.773700 -0.648780 2.087816 +v 0.799348 -0.654878 2.043483 +v 0.825159 -0.656948 1.998872 +v 0.851059 -0.655021 1.954296 +v 0.876638 -0.648948 1.909906 +v 0.901896 -0.638867 1.866067 +v 0.926877 -0.624976 1.823112 +v 0.950947 -0.607047 1.781146 +v 0.974494 -0.585530 1.740590 +v 0.997006 -0.560327 1.701597 +v 1.018381 -0.531631 1.664420 +v 1.038630 -0.499688 1.629322 +v 1.057580 -0.464673 1.596501 +v 1.075101 -0.426789 1.566164 +v 1.090957 -0.386232 1.538488 +v 1.105262 -0.343326 1.513660 +v 1.117864 -0.298312 1.491821 +v 1.128690 -0.251463 1.473112 +v 1.137504 -0.203038 1.457645 +v 1.144592 -0.153395 1.445512 +v 1.149545 -0.102786 1.436795 +v 1.152493 -0.051548 1.431550 +v 1.153638 0.000000 1.429785 +v 0.568794 0.000000 2.476774 +v 0.569630 -0.042530 2.475324 +v 0.564094 -0.041072 2.450749 +v 0.563286 0.000000 2.452149 +v 0.572129 -0.084797 2.470993 +v 0.566507 -0.081891 2.446566 +v 0.576279 -0.126542 2.463798 +v 0.570515 -0.122205 2.439618 +v 0.582051 -0.167507 2.453793 +v 0.576089 -0.161766 2.429955 +v 0.589413 -0.207438 2.441030 +v 0.583199 -0.200328 2.417630 +v 0.598316 -0.246092 2.425597 +v 0.591797 -0.237658 2.402726 +v 0.608709 -0.283226 2.407580 +v 0.601833 -0.273519 2.385327 +v 0.620524 -0.318617 2.387099 +v 0.613243 -0.307697 2.365548 +v 0.633691 -0.352041 2.364273 +v 0.625959 -0.339975 2.343503 +v 0.648127 -0.383297 2.339248 +v 0.639900 -0.370160 2.319337 +v 0.663745 -0.412187 2.312174 +v 0.654983 -0.398060 2.293190 +v 0.680446 -0.438539 2.283222 +v 0.671112 -0.423509 2.265231 +v 0.698130 -0.462183 2.252566 +v 0.688190 -0.446343 2.235625 +v 0.716686 -0.482983 2.220400 +v 0.706109 -0.466429 2.204561 +v 0.736000 -0.500800 2.186917 +v 0.724762 -0.483636 2.172227 +v 0.755953 -0.515534 2.152328 +v 0.744031 -0.497865 2.138823 +v 0.776423 -0.527084 2.116844 +v 0.763799 -0.509019 2.104555 +v 0.797281 -0.535389 2.080685 +v 0.783943 -0.517041 2.069635 +v 0.818402 -0.540389 2.044072 +v 0.804339 -0.521869 2.034277 +v 0.839653 -0.542063 2.007232 +v 0.824861 -0.523485 1.998700 +v 0.860904 -0.540389 1.970393 +v 0.845384 -0.521869 1.963123 +v 0.882024 -0.535389 1.933780 +v 0.865781 -0.517041 1.927765 +v 0.902883 -0.527084 1.897620 +v 0.885925 -0.509019 1.892845 +v 0.923352 -0.515532 1.862136 +v 0.905693 -0.497864 1.858576 +v 0.943305 -0.500799 1.827547 +v 0.924961 -0.483635 1.825173 +v 0.962620 -0.482982 1.794065 +v 0.943614 -0.466429 1.792839 +v 0.981175 -0.462183 1.761899 +v 0.961534 -0.446343 1.761775 +v 0.998859 -0.438539 1.731243 +v 0.978612 -0.423509 1.732169 +v 1.015560 -0.412186 1.702291 +v 0.994740 -0.398060 1.704210 +v 1.031178 -0.383297 1.675216 +v 1.009823 -0.370160 1.678063 +v 1.045614 -0.352040 1.650192 +v 1.023764 -0.339975 1.653897 +v 1.058782 -0.318617 1.627365 +v 1.036480 -0.307697 1.631853 +v 1.070596 -0.283226 1.606884 +v 1.047890 -0.273519 1.612074 +v 1.080989 -0.246092 1.588868 +v 1.057927 -0.237657 1.594675 +v 1.089892 -0.207438 1.573435 +v 1.066525 -0.200328 1.579770 +v 1.097254 -0.167507 1.560672 +v 1.073634 -0.161766 1.567445 +v 1.103026 -0.126541 1.550667 +v 1.079208 -0.122204 1.557782 +v 1.107176 -0.084797 1.543472 +v 1.083216 -0.081891 1.550834 +v 1.109675 -0.042529 1.539141 +v 1.085629 -0.041072 1.546652 +v 1.110511 0.000000 1.537691 +v 1.086437 0.000000 1.545252 +v 0.557967 0.000000 2.426289 +v 0.558744 -0.039523 2.424942 +v 0.561066 -0.078803 2.420917 +v 0.564923 -0.117596 2.414230 +v 0.570286 -0.155665 2.404932 +v 0.577128 -0.192774 2.393072 +v 0.585401 -0.228695 2.378730 +v 0.595060 -0.263204 2.361987 +v 0.606039 -0.296093 2.342954 +v 0.618276 -0.327154 2.321741 +v 0.631691 -0.356201 2.298485 +v 0.646205 -0.383048 2.273325 +v 0.661726 -0.407537 2.246420 +v 0.678160 -0.429510 2.217931 +v 0.695403 -0.448839 2.188038 +v 0.713353 -0.465396 2.156923 +v 0.731895 -0.479089 2.124780 +v 0.750917 -0.489823 2.091804 +v 0.770301 -0.497542 2.058201 +v 0.789929 -0.502187 2.024176 +v 0.809677 -0.503744 1.989941 +v 0.829427 -0.502187 1.955705 +v 0.849054 -0.497542 1.921681 +v 0.868438 -0.489823 1.888078 +v 0.887460 -0.479089 1.855102 +v 0.906002 -0.465396 1.822958 +v 0.923951 -0.448839 1.791843 +v 0.941195 -0.429510 1.761951 +v 0.957629 -0.407537 1.733462 +v 0.973149 -0.383048 1.706557 +v 0.987663 -0.356200 1.681396 +v 1.001078 -0.327154 1.658141 +v 1.013315 -0.296093 1.636928 +v 1.024295 -0.263204 1.617895 +v 1.033953 -0.228695 1.601152 +v 1.042226 -0.192773 1.586810 +v 1.049068 -0.155665 1.574949 +v 1.054432 -0.117596 1.565651 +v 1.058289 -0.078802 1.558965 +v 1.060610 -0.039523 1.554940 +v 1.061388 0.000000 1.553593 +v 0.543511 -0.035239 2.353316 +v 0.542818 0.000000 2.354517 +v 0.545581 -0.070262 2.349727 +v 0.539223 -0.035176 2.349918 +v 0.541290 -0.070136 2.346336 +v 0.538532 0.000000 2.351117 +v 0.549020 -0.104850 2.343766 +v 0.553803 -0.138793 2.335476 +v 0.544723 -0.104663 2.340385 +v 0.549496 -0.138545 2.332110 +v 0.559903 -0.171879 2.324901 +v 0.567279 -0.203907 2.312113 +v 0.555586 -0.171572 2.321553 +v 0.562949 -0.203542 2.308789 +v 0.575891 -0.234676 2.297185 +v 0.585680 -0.264000 2.280215 +v 0.571545 -0.234256 2.293887 +v 0.581317 -0.263528 2.276947 +v 0.596591 -0.291694 2.261301 +v 0.608552 -0.317593 2.240566 +v 0.592208 -0.291173 2.258068 +v 0.604148 -0.317025 2.237370 +v 0.621493 -0.341530 2.218133 +v 0.635331 -0.363365 2.194144 +v 0.617066 -0.340919 2.214977 +v 0.630879 -0.362715 2.191031 +v 0.649984 -0.382956 2.168743 +v 0.665358 -0.400190 2.142091 +v 0.645506 -0.382272 2.165675 +v 0.660853 -0.399475 2.139070 +v 0.681362 -0.414953 2.114348 +v 0.697895 -0.427161 2.085688 +v 0.676828 -0.414211 2.111377 +v 0.693331 -0.426397 2.082769 +v 0.714855 -0.436732 2.056286 +v 0.732139 -0.443614 2.026325 +v 0.710261 -0.435951 2.053420 +v 0.727513 -0.442821 2.023512 +v 0.749639 -0.447757 1.995989 +v 0.767247 -0.449144 1.965464 +v 0.744982 -0.446957 1.993230 +v 0.762559 -0.448341 1.962760 +v 0.784855 -0.447757 1.934939 +v 0.802355 -0.443614 1.904603 +v 0.780136 -0.446956 1.932290 +v 0.797605 -0.442821 1.902007 +v 0.819637 -0.436732 1.874642 +v 0.836598 -0.427161 1.845240 +v 0.814857 -0.435951 1.872100 +v 0.831787 -0.426397 1.842751 +v 0.853132 -0.414953 1.816581 +v 0.869134 -0.400190 1.788838 +v 0.848289 -0.414211 1.814143 +v 0.864264 -0.399474 1.786449 +v 0.884509 -0.382956 1.762185 +v 0.899162 -0.363365 1.736784 +v 0.879611 -0.382271 1.759844 +v 0.894238 -0.362715 1.734489 +v 0.913000 -0.341530 1.712796 +v 0.925941 -0.317592 1.690362 +v 0.908051 -0.340919 1.710543 +v 0.920969 -0.317024 1.688150 +v 0.937902 -0.291694 1.669627 +v 0.948812 -0.264000 1.650714 +v 0.932909 -0.291172 1.667452 +v 0.943800 -0.263528 1.648572 +v 0.958602 -0.234676 1.633744 +v 0.967213 -0.203907 1.618815 +v 0.953572 -0.234256 1.631632 +v 0.962168 -0.203542 1.616731 +v 0.974590 -0.171879 1.606028 +v 0.980690 -0.138793 1.595453 +v 0.969531 -0.171571 1.603966 +v 0.975620 -0.138545 1.593410 +v 0.985472 -0.104850 1.587163 +v 0.988911 -0.070261 1.581201 +v 0.980394 -0.104662 1.585135 +v 0.983827 -0.070136 1.579184 +v 0.990981 -0.035239 1.577612 +v 0.991674 0.000000 1.576411 +v 0.985893 -0.035176 1.575602 +v 0.986585 0.000000 1.574403 +v 0.532957 -0.035322 2.348435 +v 0.532262 0.000000 2.349639 +v 0.535032 -0.070426 2.344838 +v 0.525799 -0.035607 2.348493 +v 0.527890 -0.070995 2.344867 +v 0.525098 0.000000 2.349707 +v 0.538479 -0.105095 2.338863 +v 0.543273 -0.139117 2.330553 +v 0.531365 -0.105944 2.338843 +v 0.536198 -0.140241 2.330466 +v 0.549387 -0.172281 2.319953 +v 0.556781 -0.204383 2.307136 +v 0.542361 -0.173673 2.319781 +v 0.549815 -0.206035 2.306860 +v 0.565412 -0.235224 2.292173 +v 0.575225 -0.264617 2.275163 +v 0.558516 -0.237125 2.291776 +v 0.568408 -0.266755 2.274628 +v 0.586161 -0.292375 2.256205 +v 0.598150 -0.318334 2.235422 +v 0.579432 -0.294738 2.255517 +v 0.591518 -0.320907 2.234566 +v 0.611121 -0.342328 2.212936 +v 0.624991 -0.364214 2.188891 +v 0.604594 -0.345094 2.211899 +v 0.618577 -0.367157 2.187659 +v 0.639678 -0.383851 2.163431 +v 0.655089 -0.401125 2.136716 +v 0.633382 -0.386953 2.161994 +v 0.648918 -0.404366 2.135063 +v 0.671130 -0.415922 2.108909 +v 0.687701 -0.428159 2.080182 +v 0.665088 -0.419283 2.107030 +v 0.681793 -0.431619 2.078072 +v 0.704701 -0.437752 2.050712 +v 0.722025 -0.444650 2.020681 +v 0.698931 -0.441289 2.048363 +v 0.716395 -0.448243 2.018090 +v 0.739566 -0.448803 1.990273 +v 0.757215 -0.450193 1.959677 +v 0.734077 -0.452430 1.987437 +v 0.751869 -0.453831 1.956593 +v 0.774865 -0.448803 1.929081 +v 0.792406 -0.444650 1.898674 +v 0.769661 -0.452430 1.925750 +v 0.787344 -0.448243 1.895097 +v 0.809729 -0.437752 1.868643 +v 0.826728 -0.428159 1.839172 +v 0.804807 -0.441289 1.864823 +v 0.821945 -0.431619 1.835115 +v 0.843301 -0.415922 1.810446 +v 0.859341 -0.401125 1.782638 +v 0.838649 -0.419283 1.806156 +v 0.854820 -0.404366 1.778124 +v 0.874751 -0.383850 1.755924 +v 0.889438 -0.364213 1.730464 +v 0.870355 -0.386952 1.751193 +v 0.885161 -0.367157 1.725527 +v 0.903309 -0.342327 1.706419 +v 0.916280 -0.318334 1.683933 +v 0.899143 -0.345094 1.701288 +v 0.912219 -0.320907 1.678620 +v 0.928269 -0.292375 1.663150 +v 0.939205 -0.264616 1.644192 +v 0.924305 -0.294738 1.657669 +v 0.935330 -0.266755 1.638558 +v 0.949017 -0.235224 1.627182 +v 0.957649 -0.204383 1.612219 +v 0.945221 -0.237125 1.621411 +v 0.953922 -0.206035 1.606327 +v 0.965042 -0.172280 1.599402 +v 0.971157 -0.139117 1.588802 +v 0.961376 -0.173672 1.593406 +v 0.967540 -0.140241 1.582721 +v 0.975950 -0.105095 1.580492 +v 0.979397 -0.070425 1.574517 +v 0.972372 -0.105944 1.574344 +v 0.975847 -0.070994 1.568320 +v 0.981472 -0.035321 1.570920 +v 0.982167 0.000000 1.569716 +v 0.977939 -0.035607 1.564694 +v 0.978639 0.000000 1.563480 +v -0.684568 -0.807398 1.993166 +v -0.692944 -0.792750 2.006595 +v -0.744006 -0.792719 1.923733 +v -0.734789 -0.807638 1.909248 +v -0.703362 -0.772159 2.024493 +v -0.755724 -0.770858 1.943797 +v -0.799479 -0.769205 1.857202 +v -0.785120 -0.792479 1.836692 +v -0.774343 -0.807522 1.823405 +v -0.815251 -0.791526 1.751670 +v -0.800966 -0.807423 1.743279 +v -0.834567 -0.765640 1.769054 +v -0.834864 -0.791190 1.667818 +v -0.817748 -0.807666 1.666610 +v -0.844186 -0.792448 1.584133 +v -0.827472 -0.807959 1.591110 +v -0.868749 -0.766749 1.564006 +v -0.845185 -0.793802 1.501327 +v -0.865449 -0.770564 1.478887 +v -0.830177 -0.808302 1.514554 +v -0.839799 -0.793708 1.420161 +v -0.825744 -0.808367 1.434674 +v -0.857130 -0.771649 1.399386 +v -0.828351 -0.792795 1.343786 +v -0.814841 -0.807906 1.356958 +v -0.811469 -0.792101 1.275231 +v -0.798510 -0.807454 1.286849 +v -0.790059 -0.791719 1.212575 +v -0.777115 -0.807258 1.222828 +v -0.648702 -0.807481 1.000089 +v -0.663670 -0.791836 0.993483 +v -0.619005 -0.791686 0.941438 +v -0.603686 -0.807638 0.948968 +v -0.567790 -0.791323 0.891134 +v -0.550991 -0.808035 0.899343 +v -0.569374 -0.739976 0.832874 +v -0.537695 -0.767316 0.837342 +v -0.604809 -0.708200 0.829967 +v -0.519552 -0.733233 0.788037 +v -0.478481 -0.765591 0.792954 +v -0.462634 -0.723257 0.741470 +v -0.408885 -0.761988 0.748249 +v -0.194222 -0.731111 0.642115 +v -0.210568 -0.766792 0.676736 +v -0.099307 -0.743853 0.636984 +v -0.114573 -0.773865 0.664944 +v -0.003887 -0.751647 0.638070 +v -0.017290 -0.778088 0.661650 +v 0.090712 -0.755329 0.646006 +v 0.079287 -0.779240 0.666431 +v 0.069288 -0.798153 0.684120 +v 0.164233 -0.796173 0.695335 +v 0.157161 -0.809907 0.708717 +v 0.062172 -0.811009 0.697687 +v 0.173534 -0.777153 0.678859 +v 0.255245 -0.794169 0.716543 +v 0.264250 -0.774857 0.700549 +v 0.247882 -0.808907 0.730302 +v 0.561949 -0.808676 0.911746 +v 0.569728 -0.794352 0.898992 +v 0.634936 -0.793860 0.965000 +v 0.626320 -0.808826 0.978896 +v 0.578739 -0.775667 0.883722 +v 0.644798 -0.774091 0.948213 +v 0.704542 -0.772147 1.020333 +v 0.693404 -0.793449 1.039429 +v 0.683733 -0.809194 1.054933 +v 0.715393 -0.749522 1.001781 +v 0.769212 -0.746056 1.079893 +v 0.756696 -0.771201 1.101643 +v 0.816943 -0.739942 1.163139 +v 0.801083 -0.768874 1.189187 +v 0.858912 -0.728481 1.249168 +v 0.837612 -0.763621 1.280023 +v 0.900910 -0.728164 1.524812 +v 0.870689 -0.763545 1.485650 +v 0.888188 -0.739849 1.597785 +v 0.865174 -0.769010 1.567795 +v 0.468436 -0.770322 2.249118 +v 0.506201 -0.740738 2.253557 +v 0.447328 -0.729052 2.301731 +v 0.396895 -0.764670 2.295829 +v 0.186908 -0.724306 2.405155 +v 0.201737 -0.762076 2.369936 +v 0.092710 -0.733250 2.412798 +v 0.107751 -0.766710 2.383290 +v 0.686633 -0.806087 1.992605 +v 0.680166 -0.812165 1.989001 +v 0.714132 -0.812129 1.934731 +v 0.720467 -0.806297 1.938452 +v 0.647673 -0.806045 2.044750 +v 0.640893 -0.812168 2.041158 +v 0.675229 -0.811534 1.985558 +v 0.636195 -0.811540 2.037347 +v 0.708985 -0.811474 1.931686 +v 0.776169 -0.806355 1.822258 +v 0.750432 -0.806247 1.882041 +v 0.744190 -0.812114 1.878146 +v 0.769816 -0.812093 1.818087 +v 0.738859 -0.811448 1.875469 +v 0.764321 -0.811412 1.815779 +v -0.247549 -0.807495 2.314622 +v -0.333174 -0.807840 2.282338 +v -0.329575 -0.812172 2.275675 +v -0.244120 -0.812174 2.307597 +v -0.414232 -0.808115 2.241036 +v -0.410372 -0.812165 2.234588 +v -0.326858 -0.811554 2.270109 +v -0.407123 -0.811554 2.229323 +v -0.241954 -0.811549 2.301794 +v 0.490915 -0.809035 0.854011 +v 0.486083 -0.812164 0.861685 +v 0.409757 -0.812148 0.812866 +v 0.414338 -0.809346 0.804688 +v 0.556830 -0.812160 0.919093 +v 0.482665 -0.811529 0.866739 +v 0.552924 -0.811526 0.923791 +v 0.406875 -0.811503 0.818226 +v -0.490528 -0.808189 2.191498 +v -0.486337 -0.812194 2.185277 +v -0.561450 -0.807986 2.133734 +v -0.556848 -0.812214 2.127599 +v -0.482526 -0.811583 2.180365 +v -0.552514 -0.811617 2.123079 +v 0.333444 -0.809005 0.762867 +v 0.329353 -0.812174 0.771254 +v 0.244276 -0.812184 0.738825 +v 0.327054 -0.811549 0.776934 +v 0.242574 -0.811565 0.744770 +v -0.750958 -0.807453 1.163354 +v -0.742737 -0.812197 1.168193 +v -0.769182 -0.812206 1.227686 +v -0.720731 -0.807674 1.107078 +v -0.712235 -0.812189 1.111945 +v -0.737010 -0.811586 1.170908 +v -0.706741 -0.811550 1.115056 +v -0.763253 -0.811604 1.230013 +v -0.687185 -0.807617 1.052705 +v -0.678816 -0.812253 1.057368 +v -0.640527 -0.812220 1.004692 +v -0.673531 -0.811621 1.060884 +v -0.635481 -0.811608 1.008565 +v -0.626459 -0.807616 2.067807 +v -0.621281 -0.812159 2.061408 +v -0.678767 -0.812087 1.986441 +v -0.616536 -0.811524 2.057316 +v -0.673675 -0.811401 1.982832 +v -0.728437 -0.812053 1.902432 +v -0.767347 -0.812019 1.817397 +v -0.723017 -0.811343 1.899379 +v -0.761641 -0.811284 1.814977 +v -0.792551 -0.811945 1.739350 +v -0.808063 -0.811888 1.665581 +v -0.786632 -0.811159 1.737645 +v -0.801998 -0.811061 1.664628 +v -0.817900 -0.811932 1.593374 +v -0.821161 -0.811948 1.519401 +v -0.814988 -0.811163 1.519887 +v -0.811743 -0.811122 1.593169 +v -0.816978 -0.811983 1.440333 +v -0.806386 -0.812035 1.362442 +v -0.800281 -0.811312 1.363989 +v -0.810824 -0.811223 1.441398 +v -0.790426 -0.812131 1.291997 +v -0.784384 -0.811476 1.293951 +v -0.595447 -0.812132 0.954127 +v -0.542258 -0.812032 0.905092 +v -0.590676 -0.811472 0.958289 +v -0.537814 -0.811306 0.909518 +v -0.489432 -0.808464 0.851298 +v -0.479640 -0.811978 0.857004 +v -0.422834 -0.808478 0.808055 +v -0.412751 -0.811940 0.814022 +v -0.475595 -0.811214 0.861717 +v -0.409200 -0.811150 0.819041 +v -0.355253 -0.808361 0.772563 +v -0.346750 -0.811892 0.780304 +v -0.285310 -0.808557 0.743865 +v -0.279710 -0.811873 0.753516 +v -0.343811 -0.811066 0.785644 +v -0.277458 -0.811032 0.759156 +v -0.211569 -0.809183 0.721152 +v -0.209709 -0.811925 0.731322 +v -0.129910 -0.810333 0.705103 +v -0.131199 -0.811990 0.715204 +v -0.208173 -0.811121 0.737207 +v -0.130382 -0.811232 0.721259 +v -0.036097 -0.811266 0.696783 +v -0.038638 -0.812012 0.706644 +v 0.059298 -0.812032 0.706983 +v -0.038513 -0.811268 0.712778 +v 0.058771 -0.811305 0.713118 +v 0.153931 -0.812113 0.717555 +v 0.152806 -0.811444 0.723640 +v 0.620501 -0.812094 0.986467 +v 0.677073 -0.812020 1.062809 +v 0.616147 -0.811414 0.990700 +v 0.672321 -0.811287 1.066504 +v 0.733719 -0.809232 1.139323 +v 0.726526 -0.811997 1.147124 +v 0.773262 -0.808505 1.224984 +v 0.765507 -0.811976 1.231593 +v 0.721430 -0.811249 1.150237 +v 0.760130 -0.811212 1.234067 +v 0.799915 -0.807796 1.304614 +v 0.790659 -0.811909 1.308397 +v 0.816828 -0.807510 1.380629 +v 0.806356 -0.811854 1.380916 +v 0.785071 -0.811098 1.310165 +v 0.800622 -0.811004 1.381942 +v 0.826833 -0.807448 1.455461 +v 0.816970 -0.811884 1.452524 +v 0.829641 -0.807631 1.531317 +v 0.820976 -0.811931 1.526229 +v 0.815122 -0.811143 1.525833 +v 0.811147 -0.811057 1.452813 +v 0.824839 -0.807829 1.610478 +v 0.816853 -0.811954 1.605034 +v 0.813546 -0.807511 1.687743 +v 0.806167 -0.811986 1.682802 +v 0.800408 -0.811229 1.681333 +v 0.811023 -0.811176 1.604060 +v 0.797245 -0.806861 1.757915 +v 0.790481 -0.812042 1.753396 +v 0.784839 -0.811324 1.751486 +v 0.602265 -0.806517 2.095142 +v 0.594914 -0.812089 2.091409 +v 0.549468 -0.807203 2.144359 +v 0.541473 -0.812001 2.140371 +v 0.590486 -0.811404 2.087313 +v 0.537365 -0.811252 2.136016 +v 0.488281 -0.807490 2.192831 +v 0.479811 -0.811951 2.188659 +v 0.422344 -0.807228 2.236606 +v 0.414297 -0.811922 2.231685 +v 0.476098 -0.811168 2.184020 +v 0.411071 -0.811120 2.226741 +v 0.355431 -0.806953 2.272055 +v 0.349295 -0.811875 2.264858 +v 0.284824 -0.806862 2.301239 +v 0.281417 -0.811865 2.291893 +v 0.346672 -0.811039 2.259600 +v 0.279476 -0.811017 2.286336 +v 0.207803 -0.806629 2.325926 +v 0.207276 -0.811928 2.316501 +v 0.123578 -0.806576 2.343586 +v 0.125323 -0.812008 2.334832 +v 0.124833 -0.811267 2.328841 +v 0.206060 -0.811129 2.310689 +v 0.031205 -0.806988 2.351707 +v 0.034008 -0.812031 2.343036 +v -0.064229 -0.807189 2.349647 +v -0.061036 -0.812048 2.341201 +v -0.060166 -0.811335 2.335156 +v 0.034208 -0.811305 2.336975 +v -0.157537 -0.807371 2.337194 +v -0.154176 -0.812115 2.329413 +v -0.152638 -0.811449 2.323452 +v 0.629921 -0.808635 2.032200 +v 0.668560 -0.808630 1.980929 +v 0.624459 -0.804089 2.027688 +v 0.662720 -0.804086 1.976886 +v 0.701971 -0.808567 1.927597 +v 0.695801 -0.804035 1.924033 +v 0.731544 -0.808539 1.871940 +v 0.725085 -0.804013 1.868900 +v 0.756751 -0.808501 1.812843 +v 0.750051 -0.803982 1.810372 +v -0.402770 -0.808619 2.222228 +v -0.323307 -0.808638 2.262603 +v -0.398968 -0.804075 2.216008 +v -0.320256 -0.804091 2.256024 +v -0.239252 -0.808642 2.293970 +v -0.237000 -0.804094 2.287114 +v 0.547529 -0.808620 0.929995 +v 0.477974 -0.808618 0.873517 +v 0.542737 -0.804077 0.935359 +v 0.473823 -0.804076 0.879428 +v 0.402944 -0.808593 0.825491 +v 0.399483 -0.804056 0.831865 +v -0.546692 -0.808714 2.117060 +v -0.477411 -0.808680 2.173766 +v -0.541600 -0.804152 2.111824 +v -0.472940 -0.804124 2.167996 +v 0.323935 -0.808645 0.784613 +v 0.321196 -0.804097 0.791344 +v 0.238347 -0.804110 0.759771 +v 0.240311 -0.808661 0.752771 +v -0.699346 -0.808634 1.119283 +v -0.729311 -0.808683 1.174570 +v -0.692869 -0.804088 1.123005 +v -0.722575 -0.804127 1.177780 +v -0.755293 -0.808701 1.233083 +v -0.748331 -0.804141 1.235738 +v -0.628802 -0.808697 1.013859 +v -0.666474 -0.808680 1.065653 +v -0.623010 -0.804138 1.018541 +v -0.660312 -0.804125 1.069858 +v -0.666641 -0.808486 1.978203 +v -0.610073 -0.808616 2.051951 +v -0.660392 -0.803967 1.974274 +v -0.604376 -0.804072 2.047328 +v -0.753709 -0.808362 1.812035 +v -0.715483 -0.808425 1.895581 +v -0.746642 -0.803867 1.809631 +v -0.708769 -0.803918 1.892425 +v -0.793628 -0.808124 1.663279 +v -0.778431 -0.808228 1.735515 +v -0.786212 -0.803673 1.662066 +v -0.771144 -0.803758 1.733739 +v -0.806493 -0.808233 1.520082 +v -0.803278 -0.808151 1.592591 +v -0.798973 -0.803762 1.520007 +v -0.795780 -0.803695 1.591922 +v -0.791950 -0.808391 1.365744 +v -0.802380 -0.808297 1.442387 +v -0.784600 -0.803889 1.367107 +v -0.794912 -0.803813 1.443017 +v -0.776213 -0.808565 1.296392 +v -0.769040 -0.804030 1.298430 +v -0.532089 -0.808385 0.915795 +v -0.584435 -0.808560 0.964081 +v -0.527217 -0.803885 0.921454 +v -0.579069 -0.804027 0.969253 +v -0.404753 -0.808219 0.826241 +v -0.470481 -0.808288 0.868476 +v -0.401048 -0.803751 0.832764 +v -0.466187 -0.803807 0.874602 +v -0.274410 -0.808092 0.767013 +v -0.340050 -0.808128 0.793207 +v -0.271742 -0.803648 0.774007 +v -0.336873 -0.803677 0.800005 +v -0.128903 -0.808305 0.729514 +v -0.205871 -0.808187 0.745298 +v -0.127410 -0.803821 0.736777 +v -0.203739 -0.803725 0.752449 +v 0.058338 -0.808382 0.721440 +v -0.037971 -0.808338 0.721111 +v 0.058106 -0.803883 0.728752 +v -0.037300 -0.803848 0.728436 +v 0.151439 -0.808532 0.731853 +v 0.150319 -0.804004 0.739052 +v 0.665712 -0.808365 1.071276 +v 0.610112 -0.808500 0.996233 +v 0.659824 -0.803869 1.075340 +v 0.604741 -0.803979 1.000983 +v 0.752614 -0.808284 1.237150 +v 0.714318 -0.808323 1.154171 +v 0.745908 -0.803805 1.239708 +v 0.707972 -0.803836 1.157471 +v 0.792662 -0.808062 1.383451 +v 0.777285 -0.808160 1.312446 +v 0.785598 -0.803623 1.384835 +v 0.770355 -0.803704 1.314384 +v 0.807024 -0.808186 1.525802 +v 0.803081 -0.808098 1.453555 +v 0.799840 -0.803726 1.526042 +v 0.795926 -0.803653 1.454393 +v 0.792473 -0.808305 1.679736 +v 0.802974 -0.808243 1.603234 +v 0.785450 -0.803821 1.678545 +v 0.795842 -0.803772 1.602771 +v 0.777063 -0.808407 1.749191 +v 0.770179 -0.803905 1.747333 +v 0.532058 -0.808315 2.129894 +v 0.584660 -0.808489 2.081672 +v 0.527538 -0.803829 2.124404 +v 0.579638 -0.803970 2.076672 +v 0.407023 -0.808188 2.219692 +v 0.471394 -0.808237 2.177413 +v 0.403651 -0.803726 2.213334 +v 0.467444 -0.803766 2.171452 +v 0.276829 -0.808072 2.278642 +v 0.343303 -0.808101 2.252197 +v 0.274504 -0.803632 2.271819 +v 0.340453 -0.803655 2.245570 +v 0.123827 -0.808344 2.320714 +v 0.204199 -0.808197 2.302742 +v 0.122764 -0.803853 2.313582 +v 0.202458 -0.803733 2.295742 +v -0.059296 -0.808416 2.326984 +v 0.034127 -0.808385 2.328774 +v -0.058693 -0.803910 2.319816 +v 0.033871 -0.803885 2.321583 +v -0.150835 -0.808535 2.315407 +v -0.149397 -0.804006 2.308352 +v 0.622202 -0.798535 2.025787 +v 0.660268 -0.798533 1.975200 +v 0.621547 -0.792477 2.025190 +v 0.659512 -0.792477 1.974693 +v 0.693186 -0.798506 1.922560 +v 0.692350 -0.792477 1.922132 +v 0.722323 -0.798494 1.867689 +v 0.721409 -0.792477 1.867392 +v 0.746193 -0.792477 1.809323 +v 0.747168 -0.798476 1.809458 +v -0.397382 -0.798527 2.213388 +v -0.319039 -0.798536 2.253244 +v -0.396904 -0.792477 2.212567 +v -0.318741 -0.792477 2.252364 +v -0.236182 -0.798537 2.284214 +v -0.236082 -0.792477 2.283291 +v 0.540642 -0.798528 0.937532 +v 0.472031 -0.798528 0.881881 +v 0.539897 -0.792477 0.938110 +v 0.471417 -0.792477 0.882605 +v 0.398009 -0.798517 0.834552 +v 0.397529 -0.792477 0.835395 +v -0.539456 -0.798569 2.109652 +v -0.471064 -0.798554 2.165575 +v -0.538787 -0.792477 2.109014 +v -0.470486 -0.792477 2.164829 +v 0.320038 -0.798540 0.794181 +v 0.319671 -0.792477 0.795069 +v 0.237541 -0.798546 0.762711 +v 0.237314 -0.792477 0.763622 +v -0.690142 -0.798534 1.124596 +v -0.719740 -0.798555 1.179138 +v -0.689290 -0.792477 1.125122 +v -0.718856 -0.792477 1.179569 +v -0.745400 -0.798563 1.236820 +v -0.744483 -0.792477 1.237118 +v -0.620631 -0.798561 1.020572 +v -0.657739 -0.798554 1.071664 +v -0.619957 -0.792477 1.021278 +v -0.656959 -0.792477 1.072269 +v -0.657655 -0.798467 1.972766 +v -0.601929 -0.798525 2.045467 +v -0.656675 -0.792477 1.972469 +v -0.601105 -0.792477 2.044986 +v -0.743534 -0.798412 1.808824 +v -0.705810 -0.798440 1.891299 +v -0.742407 -0.792477 1.808817 +v -0.704728 -0.792477 1.891187 +v -0.783010 -0.798305 1.661518 +v -0.767970 -0.798352 1.733104 +v -0.781915 -0.792477 1.661306 +v -0.766852 -0.792477 1.733037 +v -0.795729 -0.798354 1.519685 +v -0.792549 -0.798317 1.591451 +v -0.794621 -0.792477 1.519239 +v -0.791451 -0.792477 1.591079 +v -0.781440 -0.798424 1.367476 +v -0.791690 -0.798382 1.443003 +v -0.780376 -0.792477 1.367348 +v -0.790590 -0.792477 1.442666 +v -0.765989 -0.798502 1.299174 +v -0.764998 -0.792477 1.299271 +v -0.525334 -0.798422 0.924027 +v -0.576919 -0.798500 0.971552 +v -0.524945 -0.792477 0.925056 +v -0.576378 -0.792477 0.972415 +v -0.399725 -0.798348 0.835751 +v -0.464605 -0.798378 0.877418 +v -0.399592 -0.792477 0.836969 +v -0.464379 -0.792477 0.878578 +v -0.270633 -0.798290 0.777058 +v -0.335687 -0.798307 0.803051 +v -0.270304 -0.792477 0.778137 +v -0.335495 -0.792477 0.804219 +v -0.126552 -0.798387 0.739857 +v -0.202712 -0.798333 0.755511 +v -0.126011 -0.792477 0.740844 +v -0.202236 -0.792477 0.756529 +v 0.058182 -0.798421 0.731852 +v -0.036785 -0.798401 0.731540 +v 0.058412 -0.792477 0.732848 +v -0.036349 -0.792477 0.732532 +v 0.149939 -0.798488 0.742089 +v 0.149930 -0.792477 0.743046 +v 0.657236 -0.798413 1.076910 +v 0.602384 -0.798474 1.002868 +v 0.656298 -0.792477 1.077231 +v 0.601533 -0.792477 1.003319 +v 0.742963 -0.798378 1.240606 +v 0.705178 -0.798395 1.158679 +v 0.741901 -0.792477 1.240674 +v 0.704161 -0.792477 1.158841 +v 0.782557 -0.798277 1.385484 +v 0.767343 -0.798322 1.315119 +v 0.781528 -0.792477 1.385767 +v 0.766289 -0.792477 1.315253 +v 0.796747 -0.798334 1.526465 +v 0.792852 -0.798294 1.454965 +v 0.795700 -0.792477 1.526979 +v 0.791816 -0.792477 1.455405 +v 0.782425 -0.798387 1.678294 +v 0.792771 -0.798359 1.602889 +v 0.781398 -0.792477 1.678512 +v 0.791728 -0.792477 1.603297 +v 0.767213 -0.798433 1.746738 +v 0.766204 -0.792477 1.746775 +v 0.525796 -0.798391 2.121951 +v 0.577621 -0.798469 2.074500 +v 0.525441 -0.792477 2.121017 +v 0.577107 -0.792477 2.073742 +v 0.402452 -0.798334 2.210464 +v 0.465997 -0.798356 2.168753 +v 0.402340 -0.792477 2.209337 +v 0.465801 -0.792477 2.167686 +v 0.273529 -0.798282 2.268877 +v 0.339388 -0.798295 2.242640 +v 0.273229 -0.792477 2.267876 +v 0.339215 -0.792477 2.241559 +v 0.122105 -0.798404 2.310578 +v 0.201600 -0.798338 2.292771 +v 0.121646 -0.792477 2.309637 +v 0.201184 -0.792477 2.291815 +v -0.058627 -0.798435 2.316785 +v 0.033545 -0.798422 2.318552 +v -0.058830 -0.792477 2.315822 +v 0.033183 -0.792477 2.317601 +v -0.148957 -0.798489 2.305366 +v -0.149015 -0.792477 2.304415 +v -1.105237 -0.056435 1.178482 +v -1.105880 -0.027937 1.176921 +v -1.090322 -0.029753 1.130113 +v -1.088341 -0.066471 1.129006 +v -1.106855 0.000000 1.178603 +v -1.091545 0.000000 1.132247 +v -1.097797 -0.103635 1.165137 +v -1.106892 -0.086025 1.190000 +v -1.071895 -0.124495 1.099133 +v -1.082667 -0.149832 1.136403 +v -1.089993 -0.126071 1.149295 +v -1.079411 -0.098413 1.111864 +v -1.064673 -0.194985 1.107653 +v -1.073698 -0.171301 1.120809 +v -1.062324 -0.147579 1.082611 +v -1.049763 -0.174943 1.062699 +v -1.044780 -0.224189 1.072814 +v -1.056725 -0.225306 1.102268 +v -1.020151 -0.200729 1.009633 +v -1.019138 -0.242481 1.025929 +v -1.032138 -0.232001 1.048424 +v -1.033819 -0.189623 1.033137 +v -0.991313 -0.259140 0.979674 +v -1.005788 -0.249329 1.002265 +v -1.005749 -0.207235 0.984322 +v -0.987065 -0.215280 0.953465 +v -0.966529 -0.259145 0.936669 +v -0.975090 -0.278543 0.960382 +v -0.955023 -0.200920 0.896452 +v -0.940657 -0.242551 0.889262 +v -0.954382 -0.249379 0.912725 +v -0.969776 -0.207398 0.921766 +v -0.912955 -0.224270 0.843535 +v -0.927711 -0.232074 0.866723 +v -0.941343 -0.189599 0.872438 +v -0.923859 -0.174864 0.843729 +v -0.892873 -0.195086 0.808761 +v -0.893495 -0.225406 0.818389 +v -0.903251 -0.124806 0.806119 +v -0.877060 -0.149921 0.778713 +v -0.886115 -0.171413 0.794258 +v -0.912781 -0.147628 0.822535 +v -0.859810 -0.103704 0.751153 +v -0.869669 -0.126162 0.765814 +v -0.896033 -0.098788 0.793055 +v -0.885762 -0.066665 0.776941 +v -0.852086 -0.056484 0.737923 +v -0.843012 -0.086104 0.730640 +v -0.884118 0.000000 0.771951 +v -0.852799 0.000000 0.736460 +v -0.853753 -0.027960 0.738159 +v -0.885398 -0.029903 0.774171 +v -0.918728 -0.081922 0.819729 +v -0.914817 -0.054893 0.811930 +v -0.924178 -0.106935 0.830260 +v -0.938966 -0.072185 0.845755 +v -0.941791 -0.095599 0.852934 +v -0.936761 -0.047540 0.840604 +v -1.038063 -0.088597 1.014219 +v -1.041050 -0.064581 1.016623 +v -1.029068 -0.062090 0.992158 +v -1.027022 -0.087124 0.991767 +v -1.048991 -0.093907 1.038201 +v -1.053408 -0.070168 1.043663 +v -1.056154 -0.045982 1.046983 +v -1.042817 -0.041446 1.017757 +v -1.030244 -0.039128 0.992071 +v -1.043951 -0.020236 1.018963 +v -1.030971 -0.018878 0.992589 +v -1.057982 -0.022749 1.049421 +v -1.044562 0.000000 1.019489 +v -1.058798 0.000000 1.050363 +v -1.031459 0.000000 0.992879 +v -1.001399 -0.086746 0.944796 +v -0.987746 -0.087079 0.921715 +v -0.986370 -0.115331 0.924084 +v -0.999364 -0.115217 0.946121 +v -0.973483 -0.088062 0.898791 +v -0.973248 -0.114724 0.902563 +v -0.971097 -0.141982 0.904776 +v -0.983718 -0.144686 0.925943 +v -0.996575 -0.145017 0.947856 +v -0.988885 -0.061153 0.920384 +v -0.973994 -0.062814 0.896537 +v -1.002773 -0.060677 0.943849 +v -0.989715 -0.038028 0.919658 +v -1.003688 -0.037547 0.943258 +v -0.974402 -0.039618 0.895171 +v -0.989898 -0.018185 0.919269 +v -0.974223 -0.019126 0.894134 +v -1.004037 -0.017896 0.943181 +v -0.990072 0.000000 0.919008 +v -1.004327 0.000000 0.943123 +v -0.974201 0.000000 0.893556 +v -0.964990 -0.169036 0.902250 +v -0.978757 -0.173915 0.925739 +v -0.992927 -0.175064 0.950038 +v -1.020452 -0.140878 0.990516 +v -1.019896 -0.168377 0.997493 +v -1.031444 -0.159754 1.018068 +v -1.030018 -0.136188 1.008227 +v -1.042245 -0.146711 1.036310 +v -1.038088 -0.132715 1.023830 +v -1.006860 -0.173349 0.974383 +v -1.009143 -0.143796 0.969844 +v -1.012037 -0.114582 0.968434 +v -1.023523 -0.113596 0.989896 +v -1.014675 -0.086637 0.968367 +v -1.016249 -0.060890 0.967827 +v -1.017201 -0.037871 0.967312 +v -1.017688 -0.018113 0.967476 +v -1.018069 0.000000 0.967589 +v -1.051993 -0.128300 1.052879 +v -1.060546 -0.105871 1.066419 +v -1.042724 -0.115858 1.029073 +v -0.958198 -0.090106 0.875816 +v -0.957368 -0.066153 0.871513 +v -0.956703 -0.042619 0.868575 +v -0.955763 -0.020860 0.866309 +v -0.934836 -0.023591 0.836813 +v -0.955398 0.000000 0.865222 +v -0.934063 0.000000 0.835169 +v -1.033378 -0.112477 1.009149 +v -0.949068 -0.132258 0.869558 +v -0.959009 -0.136051 0.885165 +v -0.959928 -0.113164 0.881973 +v -0.946205 -0.115926 0.862358 +v -0.952214 -0.159539 0.880347 +v -0.940965 -0.145829 0.860649 +v -1.066679 -0.080611 1.076042 +v -1.071018 -0.053869 1.082597 +v -1.073903 -0.026970 1.087035 +v -1.075050 0.000000 1.088701 +v -0.910723 0.000000 0.804487 +v -0.911868 -0.027523 0.806605 +v -0.931596 -0.128260 0.843933 +v -0.633723 -0.794281 2.079658 +v -0.642819 -0.775251 2.095455 +v -0.567709 -0.795946 2.144199 +v -0.575845 -0.778361 2.158455 +v -0.496421 -0.796565 2.201528 +v -0.504152 -0.779559 2.215061 +v -0.420116 -0.796329 2.251155 +v -0.427843 -0.779304 2.264549 +v -0.339193 -0.795698 2.292746 +v -0.347158 -0.778309 2.306404 +v -0.253944 -0.794662 2.325815 +v -0.262490 -0.776410 2.340419 +v -0.164662 -0.793303 2.349949 +v -0.174253 -0.773454 2.366391 +v -0.071987 -0.792139 2.364044 +v -0.082711 -0.770691 2.382862 +v -0.816461 -0.738059 1.884573 +v -0.857284 -0.728739 1.799748 +v 0.023459 -0.791738 2.367032 +v 0.012061 -0.768989 2.388021 +v 0.117847 -0.790962 2.359732 +v 0.207323 -0.789495 2.343610 +v 0.291184 -0.788820 2.318429 +v 0.368734 -0.790508 2.284047 +v 0.440382 -0.792587 2.242841 +v 0.506603 -0.793107 2.197177 +v 0.531908 -0.772263 2.201640 +v 0.565950 -0.792592 2.148850 +v 0.587747 -0.772447 2.153699 +v 0.617077 -0.791893 2.099904 +v 0.636099 -0.772406 2.105300 +v 0.660998 -0.791444 2.049890 +v 0.677945 -0.772537 2.056038 +v 0.698836 -0.791785 1.998372 +v 0.714259 -0.773231 2.005471 +v 0.731873 -0.792232 1.945046 +v 0.746247 -0.773890 1.953324 +v 0.761384 -0.792142 1.889655 +v 0.775072 -0.773854 1.899297 +v 0.787082 -0.792171 1.831079 +v 0.800540 -0.773695 1.842356 +v 0.808454 -0.792658 1.768061 +v 0.822284 -0.773801 1.781377 +v 0.825534 -0.793247 1.699592 +v 0.840384 -0.773517 1.715673 +v 0.838027 -0.793163 1.624572 +v 0.854776 -0.772033 1.644479 +v 0.844800 -0.792081 1.545398 +v 0.845049 -0.790095 1.464538 +v 0.836343 -0.788858 1.381801 +v 0.816338 -0.790166 1.296950 +v 0.785466 -0.792269 1.210478 +v 0.744035 -0.793219 1.122969 +v 0.498599 -0.794730 0.841078 +v 0.507270 -0.776474 0.826185 +v 0.422114 -0.794774 0.791132 +v 0.430980 -0.776039 0.775759 +v 0.341028 -0.794051 0.749139 +v 0.349894 -0.774916 0.733570 +v -0.028501 -0.798189 0.681694 +v -0.124562 -0.796030 0.688338 +v -0.214078 -0.792705 0.703313 +v -0.297107 -0.789938 0.727468 +v -0.374259 -0.790046 0.760794 +v -0.445240 -0.791020 0.800714 +v -0.509832 -0.791275 0.844228 +v -0.702078 -0.791494 1.045463 +v -0.735398 -0.791168 1.098587 +v -0.764695 -0.791288 1.154016 +v -0.901091 -0.729522 1.522266 +v -0.890365 -0.739032 1.446418 +v -0.876656 -0.744721 1.374808 +v -0.898325 -0.712068 1.346221 +v 0.001118 -1.032958 2.048371 +v -0.040395 -1.032911 2.046924 +v -0.035430 -1.062685 1.984569 +v 0.001727 -1.062944 1.985318 +v -0.081876 -1.032914 2.042173 +v -0.073241 -1.062507 1.980621 +v -0.031327 -1.088128 1.921908 +v -0.065023 -1.087851 1.918669 +v 0.001248 -1.088491 1.922143 +v -0.122858 -1.033022 2.033866 +v -0.110627 -1.062777 1.972479 +v -0.162885 -1.033177 2.022405 +v -0.146519 -1.063097 1.961488 +v -0.098355 -1.088185 1.910905 +v -0.129855 -1.088547 1.900619 +v -0.201480 -1.033208 2.008134 +v -0.179832 -1.063099 1.949010 +v -0.238636 -1.033266 1.991047 +v -0.211223 -1.063093 1.934563 +v -0.158058 -1.088538 1.889885 +v -0.184065 -1.088485 1.877865 +v -0.274318 -1.033330 1.971056 +v -0.241320 -1.063172 1.917577 +v -0.308546 -1.033411 1.948253 +v -0.270855 -1.063240 1.897940 +v -0.208954 -1.088567 1.863672 +v -0.233940 -1.088621 1.847046 +v -0.341308 -1.033392 1.922674 +v -0.300515 -1.063020 1.875472 +v -0.372097 -1.033412 1.894436 +v -0.328808 -1.062867 1.850035 +v -0.285588 -1.088077 1.805232 +v -0.260202 -1.088308 1.827677 +v -0.400386 -1.033541 1.863623 +v -0.354266 -1.063168 1.821491 +v -0.426042 -1.033707 1.830816 +v -0.376835 -1.063517 1.791525 +v -0.307970 -1.088440 1.779389 +v -0.327385 -1.088845 1.752592 +v -0.448894 -1.033751 1.796572 +v -0.396458 -1.063538 1.761843 +v -0.468924 -1.033815 1.760889 +v -0.413377 -1.063548 1.731687 +v -0.343895 -1.088864 1.727333 +v -0.357888 -1.088849 1.702309 +v -0.486051 -1.033884 1.723723 +v -0.427756 -1.063647 1.700240 +v -0.500347 -1.033966 1.685132 +v -0.440118 -1.063727 1.666964 +v -0.369692 -1.088956 1.676183 +v -0.380146 -1.089033 1.648015 +v -0.511823 -1.033944 1.645149 +v -0.450920 -1.063521 1.631297 +v -0.520135 -1.033959 1.604177 +v -0.458864 -1.063374 1.594042 +v -0.397380 -1.088537 1.583702 +v -0.390027 -1.088751 1.616837 +v -0.524903 -1.034076 1.562605 +v -0.462675 -1.063680 1.555992 +v -0.526369 -1.034233 1.520971 +v -0.463309 -1.064032 1.518504 +v -0.400291 -1.088922 1.549661 +v -0.400236 -1.089348 1.516614 +v -0.524715 -1.034257 1.479819 +v -0.461731 -1.064052 1.482955 +v -0.519935 -1.034305 1.439161 +v -0.457687 -1.064059 1.448602 +v -0.398739 -1.089380 1.486483 +v -0.395349 -1.089373 1.458007 +v -0.511927 -1.034344 1.399012 +v -0.450827 -1.064148 1.414702 +v -0.500791 -1.034403 1.359373 +v -0.441256 -1.064220 1.380496 +v -0.381428 -1.089570 1.400974 +v -0.389540 -1.089488 1.429929 +v -0.486549 -1.034351 1.320263 +v -0.429003 -1.063997 1.345248 +v -0.469169 -1.034342 1.282216 +v -0.413506 -1.063836 1.310403 +v -0.357515 -1.089070 1.338707 +v -0.371070 -1.089287 1.369884 +v -0.448564 -1.034415 1.245782 +v -0.394205 -1.064118 1.277387 +v -0.425256 -1.034533 1.211247 +v -0.372669 -1.064445 1.246709 +v -0.339846 -1.089449 1.309467 +v -0.320372 -1.089866 1.282797 +v -0.399709 -1.034519 1.178934 +v -0.350490 -1.064445 1.218889 +v -0.371927 -1.034536 1.148857 +v -0.327018 -1.064427 1.193484 +v -0.301448 -1.089888 1.259317 +v -0.281968 -1.089864 1.238285 +v -0.341832 -1.034530 1.121098 +v -0.301536 -1.064484 1.170106 +v -0.309510 -1.034558 1.095585 +v -0.273676 -1.064531 1.148066 +v -0.237177 -1.090026 1.200348 +v -0.260765 -1.089962 1.219000 +v -0.274980 -1.034458 1.072330 +v -0.243019 -1.064266 1.126752 +v -0.238540 -1.034408 1.051779 +v -0.209973 -1.064065 1.107672 +v -0.181168 -1.089463 1.164007 +v -0.210494 -1.089712 1.181272 +v -0.200443 -1.034441 1.034434 +v -0.174930 -1.064314 1.092321 +v -0.161278 -1.034510 1.020221 +v -0.139463 -1.064598 1.080187 +v -0.149660 -1.089817 1.150749 +v -0.118215 -1.090199 1.140643 +v -0.121618 -1.034463 1.009113 +v -0.105172 -1.064568 1.070734 +v -0.081466 -1.034431 1.001136 +v -0.071263 -1.064501 1.064000 +v -0.089113 -1.090195 1.132787 +v -0.061007 -1.090127 1.127242 +v -0.040810 -1.034394 0.996386 +v -0.036920 -1.064525 1.060082 +v 0.000326 -1.034379 0.994765 +v -0.001442 -1.064540 1.058640 +v -0.002511 -1.090228 1.122901 +v -0.032539 -1.090195 1.124117 +v 0.041918 -1.034242 0.996264 +v 0.035873 -1.064224 1.059429 +v 0.083465 -1.034142 1.001079 +v 0.073818 -1.063975 1.063430 +v 0.064145 -1.089564 1.126436 +v 0.030272 -1.089864 1.123157 +v 0.124472 -1.034148 1.009452 +v 0.111204 -1.064194 1.071628 +v 0.164499 -1.034179 1.020990 +v 0.147038 -1.064432 1.082684 +v 0.097458 -1.089888 1.134251 +v 0.128862 -1.090221 1.144589 +v 0.203095 -1.034103 1.035325 +v 0.180323 -1.064371 1.095199 +v 0.240241 -1.034032 1.052480 +v 0.211687 -1.064260 1.109689 +v 0.157015 -1.090182 1.155345 +v 0.182983 -1.090064 1.167383 +v 0.275902 -1.033969 1.072536 +v 0.241748 -1.064257 1.126704 +v 0.310107 -1.033923 1.095403 +v 0.271269 -1.064241 1.146381 +v 0.232802 -1.090098 1.198237 +v 0.207825 -1.090099 1.181585 +v 0.342847 -1.033760 1.121054 +v 0.300956 -1.063888 1.168929 +v 0.373605 -1.033636 1.149360 +v 0.329274 -1.063604 1.194454 +v 0.284576 -1.089337 1.240225 +v 0.259128 -1.089683 1.217682 +v 0.401845 -1.033629 1.180231 +v 0.354708 -1.063803 1.223076 +v 0.427432 -1.033644 1.213088 +v 0.377208 -1.064012 1.253105 +v 0.306952 -1.089630 1.266158 +v 0.326305 -1.089923 1.293021 +v 0.450219 -1.033559 1.247356 +v 0.396772 -1.063932 1.282790 +v 0.470173 -1.033480 1.283051 +v 0.413613 -1.063797 1.312932 +v 0.342754 -1.089845 1.318275 +v 0.356673 -1.089698 1.343262 +v 0.487225 -1.033415 1.320216 +v 0.427921 -1.063781 1.344351 +v 0.501448 -1.033368 1.358797 +v 0.440225 -1.063749 1.377593 +v 0.368413 -1.089709 1.369341 +v 0.378817 -1.089680 1.397461 +v 0.512853 -1.033208 1.398759 +v 0.450977 -1.063386 1.413226 +v 0.521098 -1.033092 1.439710 +v 0.458878 -1.063095 1.450477 +v 0.395995 -1.088870 1.461736 +v 0.388668 -1.089240 1.428595 +v 0.525804 -1.033093 1.481268 +v 0.462638 -1.063290 1.488587 +v 0.527203 -1.033124 1.522877 +v 0.463201 -1.063496 1.526129 +v 0.398861 -1.089141 1.495890 +v 0.398742 -1.089419 1.529042 +v 0.525504 -1.033052 1.563978 +v 0.461587 -1.063417 1.561641 +v 0.520681 -1.032997 1.604568 +v 0.457502 -1.063290 1.595914 +v 0.397210 -1.089325 1.559150 +v 0.393786 -1.089171 1.587539 +v 0.512644 -1.032950 1.644644 +v 0.450618 -1.063280 1.629735 +v 0.501495 -1.032934 1.684203 +v 0.441048 -1.063261 1.663842 +v 0.387959 -1.089176 1.615534 +v 0.379858 -1.089143 1.644379 +v 0.487252 -1.032796 1.723218 +v 0.428826 -1.062911 1.698947 +v 0.469881 -1.032719 1.761182 +v 0.413351 -1.062643 1.733693 +v 0.369555 -1.088703 1.675298 +v 0.356030 -1.088341 1.706368 +v 0.449280 -1.032745 1.797567 +v 0.394007 -1.062852 1.766740 +v 0.425977 -1.032818 1.832060 +v 0.372411 -1.063084 1.797466 +v 0.338288 -1.088620 1.735696 +v 0.318710 -1.088901 1.762479 +v 0.400462 -1.032776 1.864318 +v 0.350239 -1.063024 1.825260 +v 0.372724 -1.032767 1.894333 +v 0.326799 -1.062931 1.850599 +v 0.299777 -1.088824 1.785954 +v 0.280320 -1.088683 1.806921 +v 0.342680 -1.032752 1.922041 +v 0.301355 -1.062945 1.873926 +v 0.310426 -1.032779 1.947506 +v 0.273576 -1.062953 1.895903 +v 0.259149 -1.088703 1.826158 +v 0.235648 -1.088692 1.844740 +v 0.275988 -1.032683 1.970710 +v 0.243080 -1.062643 1.917118 +v 0.239638 -1.032655 1.991230 +v 0.210166 -1.062420 1.936135 +v 0.209166 -1.088279 1.863684 +v 0.179997 -1.087952 1.880861 +v 0.201597 -1.032719 2.008575 +v 0.175112 -1.062657 1.951515 +v 0.162479 -1.032843 2.022812 +v 0.139592 -1.062931 1.963704 +v 0.148430 -1.088256 1.894172 +v 0.116863 -1.088568 1.904355 +v 0.122876 -1.032835 2.033930 +v 0.105313 -1.062902 1.973176 +v 0.082789 -1.032868 2.041931 +v 0.071445 -1.062858 1.979920 +v 0.087740 -1.088525 1.912238 +v 0.059657 -1.088421 1.917780 +v 0.042190 -1.032897 2.046711 +v 0.037134 -1.062904 1.983854 +v 0.031201 -1.088471 1.920914 +v 0.000915 -0.997481 2.112346 +v -0.045421 -0.997516 2.110543 +v 0.000915 -0.961980 2.168449 +v -0.049817 -0.961906 2.166398 +v -0.091478 -0.997596 2.105142 +v -0.100242 -0.961964 2.160474 +v -0.136968 -0.997640 2.096118 +v -0.150045 -0.962006 2.150595 +v -0.181619 -0.997725 2.083580 +v -0.198935 -0.962093 2.136874 +v -0.225144 -0.997777 2.067553 +v -0.246590 -0.962142 2.119327 +v -0.267293 -0.997866 2.048183 +v -0.292740 -0.962234 2.098127 +v -0.307782 -0.997923 2.025544 +v -0.337072 -0.962288 2.073340 +v -0.346389 -0.998016 1.999817 +v -0.379348 -0.962389 2.045182 +v -0.382845 -0.998076 1.971119 +v -0.419286 -0.962493 2.013787 +v -0.416956 -0.998169 1.939666 +v -0.456662 -0.962628 1.979371 +v -0.448480 -0.998230 1.905614 +v -0.491145 -0.962619 1.942053 +v -0.477256 -0.998323 1.869205 +v -0.522645 -0.962690 1.902183 +v -0.503067 -0.998383 1.830635 +v -0.550908 -0.962747 1.859952 +v -0.525796 -0.998475 1.790166 +v -0.575800 -0.962841 1.815645 +v -0.545257 -0.998531 1.748026 +v -0.597111 -0.962895 1.769505 +v -0.561375 -0.998619 1.704493 +v -0.614773 -0.962996 1.721843 +v -0.574003 -0.998669 1.659820 +v -0.628616 -0.963066 1.672930 +v -0.583112 -0.998753 1.614295 +v -0.638607 -0.963167 1.623085 +v -0.588591 -0.998796 1.568190 +v -0.644614 -0.963216 1.572598 +v -0.590463 -0.998874 1.521794 +v -0.646654 -0.963273 1.521795 +v -0.588656 -0.998907 1.475394 +v -0.644666 -0.963289 1.470986 +v -0.583243 -0.998977 1.429273 +v -0.638733 -0.963346 1.420485 +v -0.574192 -0.998999 1.383723 +v -0.628819 -0.963362 1.370609 +v -0.561625 -0.999062 1.339014 +v -0.615063 -0.963426 1.321651 +v -0.545552 -0.999071 1.295440 +v -0.597462 -0.963432 1.273938 +v -0.526139 -0.999125 1.253246 +v -0.576208 -0.963487 1.227735 +v -0.503439 -0.999121 1.212725 +v -0.551350 -0.963479 1.183365 +v -0.477658 -0.999164 1.174089 +v -0.523124 -0.963526 1.141057 +v -0.448892 -0.999146 1.137621 +v -0.491623 -0.963506 1.101126 +v -0.417380 -0.999180 1.103498 +v -0.457121 -0.963544 1.063758 +v -0.383257 -0.999148 1.071985 +v -0.419754 -0.963510 1.029253 +v -0.346790 -0.999168 1.043218 +v -0.379826 -0.963534 0.997750 +v -0.308156 -0.999126 1.017436 +v -0.337517 -0.963487 0.969524 +v -0.267635 -0.999133 0.994736 +v -0.293147 -0.963497 0.944664 +v -0.225441 -0.999080 0.975322 +v -0.246943 -0.963441 0.923411 +v -0.181867 -0.999073 0.959248 +v -0.199231 -0.963437 0.905809 +v -0.137157 -0.999012 0.946679 +v -0.150273 -0.963374 0.892051 +v -0.091607 -0.998992 0.937628 +v -0.100396 -0.963360 0.882137 +v -0.045486 -0.998923 0.932214 +v -0.049893 -0.963298 0.876207 +v 0.000915 -0.998892 0.930406 +v 0.000915 -0.963265 0.874230 +v 0.047311 -0.998815 0.932278 +v 0.051718 -0.963176 0.876293 +v 0.093418 -0.998774 0.937756 +v 0.102203 -0.963138 0.882292 +v 0.138944 -0.998691 0.946865 +v 0.152050 -0.963053 0.892272 +v 0.183619 -0.998641 0.959492 +v 0.200967 -0.963007 0.906099 +v 0.227152 -0.998554 0.975611 +v 0.248632 -0.962916 0.923755 +v 0.269294 -0.998498 0.995072 +v 0.294774 -0.962864 0.945064 +v 0.309764 -0.998407 1.017801 +v 0.339082 -0.962770 0.969957 +v 0.348336 -0.998348 1.043612 +v 0.381315 -0.962714 0.998221 +v 0.384745 -0.998255 1.072389 +v 0.421175 -0.962618 1.029734 +v 0.418798 -0.998193 1.103913 +v 0.458459 -0.962560 1.064251 +v 0.450252 -0.998100 1.138025 +v 0.492893 -0.962464 1.101606 +v 0.478950 -0.998039 1.174482 +v 0.524306 -0.962393 1.141530 +v 0.504677 -0.997947 1.213089 +v 0.552476 -0.962311 1.183798 +v 0.527317 -0.997889 1.253580 +v 0.577263 -0.962257 1.228132 +v 0.546687 -0.997799 1.295730 +v 0.598463 -0.962164 1.274283 +v 0.562714 -0.997746 1.339256 +v 0.616010 -0.962115 1.321939 +v 0.575252 -0.997660 1.383910 +v 0.629731 -0.962026 1.370830 +v 0.584276 -0.997615 1.429399 +v 0.639610 -0.961984 1.420636 +v 0.589676 -0.997534 1.475459 +v 0.645524 -0.961911 1.471063 +v 0.591478 -0.997497 1.521794 +v 0.647520 -0.961911 1.521794 +v 0.589611 -0.997423 1.568125 +v 0.645516 -0.961899 1.572525 +v 0.584148 -0.997397 1.614169 +v 0.639522 -0.961857 1.622940 +v 0.575062 -0.997331 1.659635 +v 0.629521 -0.961723 1.672710 +v 0.562472 -0.997317 1.704256 +v 0.615769 -0.961757 1.721574 +v 0.546390 -0.997259 1.747738 +v 0.598330 -0.961958 1.769253 +v 0.526983 -0.997258 1.789840 +v 0.577199 -0.962150 1.815428 +v 0.504304 -0.997210 1.830271 +v 0.552417 -0.962208 1.859756 +v 0.478558 -0.997223 1.868822 +v 0.524208 -0.962214 1.901989 +v 0.449838 -0.997184 1.905211 +v 0.492731 -0.962156 1.941845 +v 0.418385 -0.997212 1.939265 +v 0.458237 -0.962111 1.979116 +v 0.384330 -0.997182 1.970717 +v 0.420898 -0.962011 2.013531 +v 0.347941 -0.997220 1.999436 +v 0.381015 -0.961990 2.044957 +v 0.309390 -0.997204 2.025181 +v 0.338761 -0.961900 2.073109 +v 0.268958 -0.997251 2.047859 +v 0.294412 -0.961738 2.097815 +v 0.226856 -0.997250 2.067264 +v 0.248280 -0.961624 2.118988 +v 0.183373 -0.997306 2.083344 +v 0.200683 -0.961715 2.136620 +v 0.138753 -0.997319 2.095933 +v 0.151834 -0.961754 2.150422 +v 0.093288 -0.997384 2.105018 +v 0.102063 -0.961894 2.160428 +v 0.047245 -0.997408 2.110480 +v 0.051648 -0.961956 2.166436 +v 0.000915 -0.933396 2.209041 +v -0.053008 -0.933428 2.206947 +v 0.000915 -0.912944 2.234913 +v -0.055037 -0.912956 2.232727 +v -0.106607 -0.933486 2.200659 +v -0.110652 -0.912997 2.226202 +v -0.159546 -0.933529 2.190164 +v -0.165578 -0.913010 2.215290 +v -0.211506 -0.933581 2.175559 +v -0.219492 -0.913048 2.200141 +v -0.262165 -0.933644 2.156927 +v -0.272036 -0.913051 2.180758 +v -0.311214 -0.933710 2.134383 +v -0.322926 -0.913100 2.157371 +v -0.358319 -0.933722 2.108011 +v -0.371822 -0.913141 2.130047 +v -0.403241 -0.933784 2.078067 +v -0.418452 -0.913210 2.099004 +v -0.445672 -0.933844 2.044681 +v -0.462461 -0.913229 2.064339 +v -0.485368 -0.933915 2.008078 +v -0.503648 -0.913276 2.026358 +v -0.522047 -0.933954 1.968446 +v -0.541698 -0.913296 1.985229 +v -0.555525 -0.934015 1.926071 +v -0.576429 -0.913334 1.941259 +v -0.585561 -0.934060 1.881187 +v -0.607564 -0.913339 1.894671 +v -0.612003 -0.934121 1.834091 +v -0.635004 -0.913386 1.845811 +v -0.634640 -0.934153 1.785049 +v -0.658519 -0.913432 1.794941 +v -0.653394 -0.934217 1.734393 +v -0.678008 -0.913501 1.742390 +v -0.668083 -0.934250 1.682407 +v -0.693265 -0.913535 1.688452 +v -0.678682 -0.934313 1.629433 +v -0.704271 -0.913586 1.633486 +v -0.685052 -0.934339 1.575782 +v -0.710880 -0.913602 1.577815 +v -0.687230 -0.934398 1.521795 +v -0.713142 -0.913645 1.521795 +v -0.685128 -0.934423 1.467801 +v -0.710966 -0.913666 1.465768 +v -0.678835 -0.934485 1.414132 +v -0.704446 -0.913716 1.410076 +v -0.668302 -0.934499 1.361130 +v -0.693515 -0.913726 1.355077 +v -0.653683 -0.934552 1.309103 +v -0.678338 -0.913758 1.301092 +v -0.634980 -0.934559 1.258398 +v -0.658928 -0.913761 1.248478 +v -0.612391 -0.934601 1.209299 +v -0.635491 -0.913793 1.197529 +v -0.585967 -0.934585 1.162152 +v -0.608071 -0.913780 1.148606 +v -0.555967 -0.934617 1.117195 +v -0.576939 -0.913800 1.101958 +v -0.522486 -0.934592 1.074767 +v -0.542188 -0.913772 1.057941 +v -0.485817 -0.934616 1.035062 +v -0.504119 -0.913767 1.016761 +v -0.446146 -0.934651 0.998353 +v -0.462920 -0.913749 0.978713 +v -0.403762 -0.934769 0.964803 +v -0.418970 -0.913863 0.943871 +v -0.358745 -0.934624 0.934882 +v -0.372261 -0.913763 0.912822 +v -0.311588 -0.934621 0.908472 +v -0.323348 -0.913789 0.885388 +v -0.262485 -0.934571 0.885888 +v -0.272403 -0.913764 0.861944 +v -0.211778 -0.934558 0.867191 +v -0.219788 -0.913759 0.842538 +v -0.159749 -0.934497 0.852579 +v -0.165799 -0.913714 0.827379 +v -0.106746 -0.934480 0.842048 +v -0.110800 -0.913699 0.816457 +v -0.053078 -0.934423 0.835751 +v -0.055111 -0.913648 0.809939 +v 0.000915 -0.934397 0.833651 +v 0.000912 -0.913608 0.807788 +v 0.054904 -0.934362 0.835808 +v 0.056929 -0.913581 0.810030 +v 0.108560 -0.934366 0.842151 +v 0.112624 -0.913684 0.816482 +v 0.161540 -0.934311 0.852744 +v 0.167650 -0.913786 0.827295 +v 0.213527 -0.934265 0.867445 +v 0.221584 -0.913681 0.842647 +v 0.264178 -0.934174 0.886223 +v 0.274150 -0.913606 0.862152 +v 0.313216 -0.934129 0.908871 +v 0.325024 -0.913538 0.885701 +v 0.360306 -0.934054 0.935323 +v 0.373828 -0.913391 0.913262 +v 0.405200 -0.934028 0.965345 +v 0.420386 -0.913340 0.944448 +v 0.447558 -0.933939 0.998843 +v 0.464375 -0.913325 0.979156 +v 0.487190 -0.933901 1.035520 +v 0.505497 -0.913297 1.017215 +v 0.523823 -0.933873 1.075190 +v 0.543449 -0.913219 1.058428 +v 0.557242 -0.933857 1.117600 +v 0.578094 -0.913182 1.102451 +v 0.587187 -0.933791 1.162527 +v 0.609158 -0.913134 1.149064 +v 0.613420 -0.933606 1.209709 +v 0.636562 -0.913161 1.197918 +v 0.636004 -0.933591 1.258733 +v 0.659922 -0.913088 1.248827 +v 0.654696 -0.933598 1.309369 +v 0.679266 -0.913052 1.301387 +v 0.669341 -0.933594 1.361320 +v 0.694413 -0.913011 1.355302 +v 0.679836 -0.933550 1.414265 +v 0.705328 -0.913001 1.410228 +v 0.686108 -0.933473 1.467869 +v 0.711857 -0.912962 1.465842 +v 0.688212 -0.933453 1.521794 +v 0.714040 -0.912948 1.521796 +v 0.686047 -0.933404 1.575715 +v 0.711785 -0.912908 1.577742 +v 0.679694 -0.933389 1.629303 +v 0.705195 -0.912898 1.633342 +v 0.669114 -0.933333 1.682216 +v 0.694222 -0.912862 1.688244 +v 0.654454 -0.933314 1.734143 +v 0.679025 -0.912859 1.742127 +v 0.635730 -0.933260 1.784745 +v 0.659605 -0.912827 1.794634 +v 0.613148 -0.933265 1.833745 +v 0.636174 -0.912830 1.845476 +v 0.586756 -0.933231 1.880800 +v 0.608786 -0.912802 1.894299 +v 0.556791 -0.933239 1.925663 +v 0.577699 -0.912811 1.940854 +v 0.523362 -0.933201 1.968007 +v 0.543016 -0.912788 1.984794 +v 0.486761 -0.933226 2.007640 +v 0.505037 -0.912805 2.025918 +v 0.447131 -0.933206 2.044246 +v 0.463912 -0.912787 2.063896 +v 0.404783 -0.933235 2.077670 +v 0.419971 -0.912810 2.098578 +v 0.359909 -0.933204 2.107618 +v 0.373416 -0.912799 2.129663 +v 0.312846 -0.933219 2.133995 +v 0.324593 -0.912827 2.157051 +v 0.263838 -0.933183 2.156550 +v 0.273750 -0.912824 2.180481 +v 0.213245 -0.933253 2.175284 +v 0.221243 -0.912855 2.199900 +v 0.161324 -0.933288 2.189956 +v 0.167360 -0.912857 2.215095 +v 0.108415 -0.933347 2.200537 +v 0.112459 -0.912893 2.226067 +v 0.054831 -0.933350 2.206879 +v 0.056860 -0.912903 2.232658 +v -0.055854 -0.901330 2.243108 +v -0.112281 -0.901348 2.236485 +v 0.000915 -0.901331 2.245346 +v -0.055993 -0.895497 2.244873 +v 0.000915 -0.895494 2.247133 +v -0.112583 -0.895468 2.238391 +v -0.168015 -0.901365 2.225442 +v -0.222715 -0.901379 2.210060 +v -0.168489 -0.895448 2.227415 +v -0.223346 -0.895440 2.212001 +v -0.275984 -0.901340 2.190288 +v -0.327579 -0.901338 2.166501 +v -0.276672 -0.895489 2.191950 +v -0.328391 -0.895491 2.168095 +v -0.377159 -0.901346 2.138755 +v -0.424451 -0.901376 2.107261 +v -0.378115 -0.895482 2.140316 +v -0.425672 -0.895435 2.108942 +v -0.468993 -0.901332 2.071986 +v -0.510708 -0.901328 2.033417 +v -0.470146 -0.895495 2.073336 +v -0.511949 -0.895500 2.034658 +v -0.549276 -0.901331 1.991701 +v -0.584475 -0.901342 1.947105 +v -0.550624 -0.895496 1.992853 +v -0.585959 -0.895482 1.948184 +v -0.616008 -0.901330 1.899845 +v -0.643766 -0.901328 1.850275 +v -0.617509 -0.895498 1.900765 +v -0.645324 -0.895501 1.851069 +v -0.667549 -0.901328 1.798681 +v -0.687217 -0.901329 1.745381 +v -0.669168 -0.895500 1.799352 +v -0.688886 -0.895499 1.745924 +v -0.702631 -0.901327 1.690701 +v -0.713716 -0.901327 1.634981 +v -0.704330 -0.895501 1.691108 +v -0.715437 -0.895502 1.635254 +v -0.720390 -0.901327 1.578563 +v -0.722624 -0.901327 1.521795 +v -0.722127 -0.895502 1.578699 +v -0.724366 -0.895502 1.521795 +v -0.720390 -0.901327 1.465026 +v -0.713716 -0.901327 1.408608 +v -0.722127 -0.895502 1.464889 +v -0.715437 -0.895502 1.408335 +v -0.702631 -0.901327 1.352888 +v -0.687226 -0.901332 1.298203 +v -0.704330 -0.895501 1.352480 +v -0.688914 -0.895495 1.297655 +v -0.667576 -0.901339 1.244896 +v -0.643793 -0.901339 1.193298 +v -0.669238 -0.895488 1.244207 +v -0.645386 -0.895490 1.192487 +v -0.616005 -0.901329 1.143745 +v -0.584441 -0.901327 1.096508 +v -0.617494 -0.895501 1.142832 +v -0.585851 -0.895502 1.095483 +v -0.549266 -0.901327 1.051895 +v -0.510705 -0.901328 1.010173 +v -0.550590 -0.895502 1.050763 +v -0.511937 -0.895502 1.008941 +v -0.469017 -0.901346 0.971573 +v -0.424543 -0.901431 0.936200 +v -0.470163 -0.895491 0.970232 +v -0.425610 -0.895446 0.934732 +v -0.377158 -0.901345 0.904834 +v -0.327578 -0.901337 0.877090 +v -0.378075 -0.895492 0.903338 +v -0.328375 -0.895496 0.875527 +v -0.275978 -0.901334 0.853316 +v -0.222676 -0.901333 0.833651 +v -0.276648 -0.895498 0.851696 +v -0.223219 -0.895498 0.831980 +v -0.167993 -0.901330 0.818240 +v -0.112271 -0.901328 0.807160 +v -0.168404 -0.895498 0.816527 +v -0.112545 -0.895501 0.805433 +v -0.055853 -0.901328 0.800487 +v 0.000916 -0.901333 0.798239 +v -0.055990 -0.895501 0.798744 +v 0.000916 -0.895495 0.796461 +v 0.057705 -0.901422 0.800220 +v 0.114224 -0.901602 0.806397 +v 0.057874 -0.895400 0.798075 +v 0.114600 -0.895286 0.804024 +v 0.170086 -0.901728 0.817149 +v 0.224731 -0.901590 0.832962 +v 0.170639 -0.895240 0.814850 +v 0.225357 -0.895350 0.831037 +v 0.278110 -0.901613 0.852590 +v 0.329843 -0.901677 0.876239 +v 0.278941 -0.895319 0.850584 +v 0.331238 -0.895161 0.873504 +v 0.379100 -0.901421 0.904654 +v 0.426232 -0.901346 0.936397 +v 0.380239 -0.895399 0.902796 +v 0.427308 -0.895482 0.934917 +v 0.470930 -0.901390 0.971479 +v 0.512657 -0.901388 1.010054 +v 0.472297 -0.895424 0.969880 +v 0.514156 -0.895423 1.008556 +v 0.551113 -0.901335 1.051883 +v 0.586273 -0.901328 1.096508 +v 0.552482 -0.895491 1.050713 +v 0.587690 -0.895501 1.095479 +v 0.617843 -0.901332 1.143742 +v 0.645958 -0.901473 1.193130 +v 0.619359 -0.895496 1.142813 +v 0.648335 -0.895314 1.191920 +v 0.669596 -0.901412 1.244819 +v 0.689107 -0.901351 1.298189 +v 0.671753 -0.895386 1.243926 +v 0.690935 -0.895468 1.297595 +v 0.704465 -0.901329 1.352888 +v 0.715549 -0.901328 1.408608 +v 0.706174 -0.895500 1.352478 +v 0.717276 -0.895501 1.408335 +v 0.722221 -0.901327 1.465027 +v 0.724454 -0.901327 1.521796 +v 0.723958 -0.895502 1.464890 +v 0.726196 -0.895503 1.521796 +v 0.722220 -0.901327 1.578563 +v 0.715546 -0.901327 1.634982 +v 0.723957 -0.895503 1.578700 +v 0.717266 -0.895503 1.635254 +v 0.704459 -0.901327 1.690701 +v 0.689041 -0.901327 1.745381 +v 0.706153 -0.895503 1.691108 +v 0.690698 -0.895503 1.745919 +v 0.669374 -0.901327 1.798681 +v 0.645593 -0.901327 1.850275 +v 0.670984 -0.895503 1.799347 +v 0.647144 -0.895503 1.851066 +v 0.617830 -0.901327 1.899842 +v 0.586270 -0.901327 1.947081 +v 0.619315 -0.895503 1.900752 +v 0.587679 -0.895503 1.948105 +v 0.551095 -0.901327 1.991694 +v 0.512534 -0.901327 2.033415 +v 0.552419 -0.895502 1.992825 +v 0.513765 -0.895502 2.034646 +v 0.470813 -0.901327 2.071976 +v 0.426200 -0.901327 2.107151 +v 0.471944 -0.895502 2.073301 +v 0.427224 -0.895502 2.108561 +v 0.378961 -0.901328 2.138713 +v 0.329396 -0.901329 2.166478 +v 0.379875 -0.895501 2.140204 +v 0.330198 -0.895498 2.168052 +v 0.277816 -0.901343 2.190297 +v 0.224513 -0.901343 2.209964 +v 0.278551 -0.895473 2.192070 +v 0.225099 -0.895476 2.211767 +v 0.169826 -0.901337 2.225366 +v 0.114103 -0.901333 2.236443 +v 0.170256 -0.895485 2.227156 +v 0.114385 -0.895492 2.238225 +v 0.057683 -0.901332 2.243115 +v 0.057824 -0.895492 2.244908 +v -0.055853 -0.890985 2.243100 +v -0.112272 -0.890985 2.236426 +v 0.000915 -0.890985 2.245334 +v -0.055514 -0.888087 2.238792 +v 0.000915 -0.888087 2.241012 +v -0.111596 -0.888087 2.232158 +v -0.167990 -0.890985 2.225339 +v -0.222670 -0.890985 2.209921 +v -0.166982 -0.888087 2.221137 +v -0.221335 -0.888087 2.205811 +v -0.275970 -0.890985 2.190254 +v -0.327564 -0.890985 2.166472 +v -0.274316 -0.888087 2.186262 +v -0.325603 -0.888087 2.162622 +v -0.377131 -0.890985 2.138710 +v -0.424370 -0.890985 2.107150 +v -0.374873 -0.888087 2.135025 +v -0.421830 -0.888087 2.103654 +v -0.468983 -0.890985 2.071975 +v -0.510704 -0.890985 2.033414 +v -0.466177 -0.888087 2.068689 +v -0.507649 -0.888087 2.030358 +v -0.549265 -0.890985 1.991693 +v -0.584440 -0.890985 1.947080 +v -0.545980 -0.888087 1.988887 +v -0.580944 -0.888087 1.944540 +v -0.616000 -0.890985 1.899840 +v -0.643763 -0.890985 1.850274 +v -0.612316 -0.888087 1.897583 +v -0.639913 -0.888087 1.848312 +v -0.667545 -0.890985 1.798679 +v -0.687211 -0.890985 1.745379 +v -0.663552 -0.888087 1.797025 +v -0.683102 -0.888087 1.744044 +v -0.702629 -0.890985 1.690701 +v -0.713716 -0.890985 1.634981 +v -0.698427 -0.888087 1.689692 +v -0.709448 -0.888087 1.634305 +v -0.720390 -0.890985 1.578562 +v -0.722624 -0.890985 1.521794 +v -0.716082 -0.888087 1.578223 +v -0.718303 -0.888087 1.521794 +v -0.720390 -0.890985 1.465026 +v -0.713716 -0.890985 1.408608 +v -0.716082 -0.888087 1.465365 +v -0.709448 -0.888087 1.409284 +v -0.702629 -0.890985 1.352888 +v -0.687211 -0.890985 1.298208 +v -0.698427 -0.888087 1.353897 +v -0.683101 -0.888087 1.299544 +v -0.667544 -0.890985 1.244909 +v -0.643762 -0.890985 1.193314 +v -0.663552 -0.888087 1.246563 +v -0.639912 -0.888087 1.195276 +v -0.616000 -0.890985 1.143748 +v -0.584440 -0.890985 1.096509 +v -0.612316 -0.888087 1.146005 +v -0.580944 -0.888087 1.099048 +v -0.549265 -0.890985 1.051895 +v -0.510703 -0.890985 1.010175 +v -0.545979 -0.888087 1.054702 +v -0.507648 -0.888088 1.013230 +v -0.468983 -0.890985 0.971613 +v -0.424370 -0.890985 0.936439 +v -0.466177 -0.888087 0.974899 +v -0.421830 -0.888087 0.939935 +v -0.377131 -0.890985 0.904879 +v -0.327565 -0.890985 0.877116 +v -0.374873 -0.888087 0.908563 +v -0.325603 -0.888088 0.880966 +v -0.275970 -0.890985 0.853335 +v -0.222671 -0.890985 0.833668 +v -0.274316 -0.888087 0.857327 +v -0.221335 -0.888088 0.837777 +v -0.167991 -0.890985 0.818250 +v -0.112271 -0.890985 0.807163 +v -0.166982 -0.888087 0.822452 +v -0.111595 -0.888088 0.811431 +v -0.055853 -0.890985 0.800489 +v 0.000916 -0.890985 0.798255 +v -0.055513 -0.888087 0.804797 +v 0.000916 -0.888088 0.802576 +v 0.057683 -0.890985 0.800489 +v 0.114102 -0.890985 0.807163 +v 0.057344 -0.888087 0.804797 +v 0.113426 -0.888088 0.811431 +v 0.169822 -0.890985 0.818250 +v 0.224502 -0.890985 0.833668 +v 0.168813 -0.888088 0.822452 +v 0.223166 -0.888088 0.837778 +v 0.277801 -0.890985 0.853335 +v 0.329396 -0.890985 0.877117 +v 0.276147 -0.888088 0.857327 +v 0.327434 -0.888088 0.880967 +v 0.378962 -0.890985 0.904879 +v 0.426201 -0.890985 0.936440 +v 0.376704 -0.888088 0.908564 +v 0.423661 -0.888088 0.939935 +v 0.470815 -0.890985 0.971614 +v 0.512535 -0.890985 1.010176 +v 0.468008 -0.888088 0.974900 +v 0.509480 -0.888088 1.013231 +v 0.551096 -0.890985 1.051897 +v 0.586271 -0.890985 1.096510 +v 0.547811 -0.888088 1.054703 +v 0.582775 -0.888088 1.099050 +v 0.617831 -0.890985 1.143749 +v 0.645594 -0.890985 1.193316 +v 0.614147 -0.888088 1.146007 +v 0.641744 -0.888088 1.195277 +v 0.669375 -0.890986 1.244911 +v 0.689042 -0.890986 1.298210 +v 0.665383 -0.888088 1.246564 +v 0.684932 -0.888088 1.299545 +v 0.704460 -0.890986 1.352890 +v 0.715546 -0.890985 1.408608 +v 0.700258 -0.888088 1.353899 +v 0.711279 -0.888088 1.409285 +v 0.722221 -0.890985 1.465027 +v 0.724454 -0.890985 1.521796 +v 0.717913 -0.888088 1.465366 +v 0.720133 -0.888088 1.521796 +v 0.722220 -0.890986 1.578563 +v 0.715546 -0.890986 1.634982 +v 0.717913 -0.888088 1.578224 +v 0.711278 -0.888088 1.634306 +v 0.704459 -0.890986 1.690701 +v 0.689041 -0.890986 1.745381 +v 0.700257 -0.888088 1.689692 +v 0.684932 -0.888088 1.744046 +v 0.669374 -0.890986 1.798680 +v 0.645592 -0.890986 1.850275 +v 0.665382 -0.888088 1.797027 +v 0.641742 -0.888088 1.848313 +v 0.617830 -0.890985 1.899841 +v 0.586270 -0.890985 1.947081 +v 0.614146 -0.888088 1.897584 +v 0.582774 -0.888088 1.944541 +v 0.551095 -0.890985 1.991694 +v 0.512534 -0.890985 2.033414 +v 0.547809 -0.888088 1.988888 +v 0.509478 -0.888088 2.030359 +v 0.470813 -0.890985 2.071976 +v 0.426200 -0.890985 2.107150 +v 0.468007 -0.888088 2.068690 +v 0.423660 -0.888088 2.103655 +v 0.378960 -0.890985 2.138711 +v 0.329394 -0.890985 2.166473 +v 0.376702 -0.888087 2.135026 +v 0.327432 -0.888088 2.162623 +v 0.277799 -0.890985 2.190255 +v 0.224499 -0.890985 2.209921 +v 0.276145 -0.888087 2.186262 +v 0.223164 -0.888088 2.205812 +v 0.169819 -0.890985 2.225339 +v 0.114100 -0.890985 2.236426 +v 0.168811 -0.888087 2.221137 +v 0.113424 -0.888087 2.232158 +v 0.057682 -0.890985 2.243100 +v 0.057343 -0.888087 2.238792 +v -0.055044 -0.887121 2.232814 +v -0.110658 -0.887121 2.226235 +v 0.000915 -0.887121 2.235016 +v -0.054383 -0.888245 2.224424 +v 0.000915 -0.888245 2.226600 +v -0.109341 -0.888245 2.217923 +v -0.165582 -0.887121 2.215306 +v -0.219482 -0.887121 2.200108 +v -0.163617 -0.888245 2.207123 +v -0.216881 -0.888245 2.192105 +v -0.272021 -0.887121 2.180722 +v -0.322880 -0.887121 2.157279 +v -0.268801 -0.888245 2.172947 +v -0.319060 -0.888245 2.149781 +v -0.371740 -0.887121 2.129913 +v -0.418306 -0.887121 2.098802 +v -0.367343 -0.888245 2.122737 +v -0.413359 -0.888245 2.091994 +v -0.462283 -0.887121 2.064129 +v -0.503408 -0.887121 2.026118 +v -0.456817 -0.888245 2.057730 +v -0.497458 -0.888245 2.020167 +v -0.541420 -0.887121 1.984992 +v -0.576093 -0.887121 1.941015 +v -0.535021 -0.888245 1.979527 +v -0.569285 -0.888245 1.936069 +v -0.607203 -0.887121 1.894449 +v -0.634570 -0.887121 1.845590 +v -0.600028 -0.888245 1.890052 +v -0.627071 -0.888245 1.841769 +v -0.658012 -0.887121 1.794731 +v -0.677399 -0.887121 1.742191 +v -0.650237 -0.888245 1.791510 +v -0.669395 -0.888245 1.739591 +v -0.692597 -0.887121 1.688292 +v -0.703525 -0.887121 1.633367 +v -0.684414 -0.888245 1.686328 +v -0.695213 -0.888245 1.632051 +v -0.710104 -0.887121 1.577753 +v -0.712306 -0.887121 1.521794 +v -0.701715 -0.888245 1.577093 +v -0.703891 -0.888245 1.521795 +v -0.710104 -0.887121 1.465836 +v -0.703525 -0.887121 1.410222 +v -0.701715 -0.888245 1.466496 +v -0.695213 -0.888245 1.411538 +v -0.692596 -0.887121 1.355297 +v -0.677398 -0.887121 1.301397 +v -0.684413 -0.888245 1.357261 +v -0.669395 -0.888245 1.303997 +v -0.658012 -0.887121 1.248857 +v -0.634569 -0.887121 1.197998 +v -0.650237 -0.888245 1.252078 +v -0.627071 -0.888245 1.201819 +v -0.607203 -0.887121 1.149139 +v -0.576093 -0.887121 1.102573 +v -0.600027 -0.888245 1.153536 +v -0.569284 -0.888245 1.107520 +v -0.541419 -0.887121 1.058596 +v -0.503408 -0.887121 1.017470 +v -0.535020 -0.888245 1.064062 +v -0.497457 -0.888245 1.023421 +v -0.462282 -0.887121 0.979459 +v -0.418305 -0.887121 0.944786 +v -0.456817 -0.888245 0.985858 +v -0.413359 -0.888245 0.951594 +v -0.371740 -0.887121 0.913676 +v -0.322881 -0.887121 0.886309 +v -0.367343 -0.888245 0.920851 +v -0.319060 -0.888245 0.893808 +v -0.272022 -0.887121 0.862867 +v -0.219482 -0.887121 0.843480 +v -0.268801 -0.888245 0.870642 +v -0.216882 -0.888245 0.851484 +v -0.165582 -0.887121 0.828283 +v -0.110657 -0.887121 0.817354 +v -0.163618 -0.888245 0.836466 +v -0.109341 -0.888245 0.825666 +v -0.055043 -0.887121 0.810775 +v 0.000915 -0.887121 0.808573 +v -0.054383 -0.888245 0.819164 +v 0.000916 -0.888245 0.816989 +v 0.056874 -0.887121 0.810775 +v 0.112488 -0.887121 0.817354 +v 0.056214 -0.888245 0.819165 +v 0.111171 -0.888245 0.825666 +v 0.167413 -0.887122 0.828283 +v 0.221313 -0.887122 0.843481 +v 0.165448 -0.888245 0.836466 +v 0.218713 -0.888245 0.851485 +v 0.273852 -0.887122 0.862867 +v 0.324712 -0.887122 0.886310 +v 0.270632 -0.888245 0.870642 +v 0.320891 -0.888245 0.893808 +v 0.373571 -0.887122 0.913677 +v 0.420137 -0.887122 0.944787 +v 0.369174 -0.888245 0.920852 +v 0.415190 -0.888245 0.951595 +v 0.464114 -0.887122 0.979460 +v 0.505239 -0.887122 1.017472 +v 0.458648 -0.888245 0.985859 +v 0.499289 -0.888245 1.023422 +v 0.543251 -0.887122 1.058597 +v 0.577924 -0.887122 1.102574 +v 0.536852 -0.888245 1.064063 +v 0.571116 -0.888245 1.107521 +v 0.609034 -0.887122 1.149140 +v 0.636401 -0.887122 1.198000 +v 0.601859 -0.888245 1.153537 +v 0.628902 -0.888246 1.201820 +v 0.659843 -0.887122 1.248859 +v 0.679229 -0.887122 1.301398 +v 0.652068 -0.888246 1.252079 +v 0.671226 -0.888246 1.303999 +v 0.694427 -0.887122 1.355298 +v 0.705356 -0.887122 1.410223 +v 0.686244 -0.888246 1.357262 +v 0.697044 -0.888245 1.411540 +v 0.711935 -0.887122 1.465837 +v 0.714137 -0.887122 1.521796 +v 0.703545 -0.888245 1.466498 +v 0.705721 -0.888246 1.521796 +v 0.711935 -0.887122 1.577753 +v 0.705355 -0.887122 1.633367 +v 0.703545 -0.888246 1.577093 +v 0.697043 -0.888246 1.632051 +v 0.694427 -0.887122 1.688293 +v 0.679229 -0.887122 1.742193 +v 0.686244 -0.888246 1.686328 +v 0.671225 -0.888246 1.739592 +v 0.659842 -0.887122 1.794732 +v 0.636399 -0.887122 1.845591 +v 0.652067 -0.888246 1.791511 +v 0.628901 -0.888246 1.841770 +v 0.609033 -0.887122 1.894451 +v 0.577923 -0.887122 1.941016 +v 0.601857 -0.888246 1.890053 +v 0.571114 -0.888245 1.936070 +v 0.543250 -0.887122 1.984993 +v 0.505238 -0.887122 2.026119 +v 0.536850 -0.888245 1.979528 +v 0.499287 -0.888245 2.020168 +v 0.464112 -0.887122 2.064130 +v 0.420135 -0.887121 2.098803 +v 0.458647 -0.888245 2.057731 +v 0.415189 -0.888245 2.091995 +v 0.373569 -0.887121 2.129913 +v 0.324710 -0.887121 2.157280 +v 0.369172 -0.888245 2.122738 +v 0.320889 -0.888245 2.149782 +v 0.273850 -0.887121 2.180722 +v 0.221311 -0.887121 2.200109 +v 0.270630 -0.888245 2.172948 +v 0.218711 -0.888245 2.192105 +v 0.167411 -0.887121 2.215307 +v 0.112486 -0.887121 2.226235 +v 0.165446 -0.888245 2.207124 +v 0.111170 -0.888245 2.217923 +v 0.056872 -0.887121 2.232814 +v 0.056212 -0.888245 2.224424 +v 0.518834 -0.035964 2.349718 +v 0.518127 0.000000 2.350944 +v 0.520947 -0.071707 2.346055 +v 0.486632 -0.038332 2.365878 +v 0.488884 -0.076429 2.361974 +v 0.485879 0.000000 2.367184 +v 0.524457 -0.107008 2.339971 +v 0.529337 -0.141649 2.331510 +v 0.492625 -0.114053 2.355489 +v 0.497827 -0.150976 2.346471 +v 0.535563 -0.175416 2.320717 +v 0.543092 -0.208103 2.307667 +v 0.504463 -0.186966 2.334968 +v 0.512487 -0.221805 2.321058 +v 0.551880 -0.239505 2.292431 +v 0.561871 -0.269432 2.275112 +v 0.521854 -0.255275 2.304819 +v 0.532503 -0.287173 2.286360 +v 0.573006 -0.297696 2.255809 +v 0.585213 -0.324128 2.234648 +v 0.544371 -0.317298 2.265786 +v 0.557382 -0.345469 2.243231 +v 0.598420 -0.348558 2.211753 +v 0.612543 -0.370842 2.187270 +v 0.571459 -0.371508 2.218829 +v 0.586512 -0.395259 2.192734 +v 0.627498 -0.390836 2.161347 +v 0.643189 -0.408425 2.134146 +v 0.602451 -0.416570 2.165103 +v 0.619175 -0.435317 2.136112 +v 0.659522 -0.423491 2.105832 +v 0.676395 -0.435951 2.076583 +v 0.636583 -0.451375 2.105934 +v 0.654567 -0.464655 2.074758 +v 0.693704 -0.445719 2.046576 +v 0.711343 -0.452742 2.015998 +v 0.673016 -0.475066 2.042776 +v 0.691817 -0.482552 2.010185 +v 0.729203 -0.456971 1.985038 +v 0.747174 -0.458386 1.953885 +v 0.710853 -0.487059 1.977186 +v 0.730007 -0.488567 1.943982 +v 0.765145 -0.456971 1.922732 +v 0.783005 -0.452742 1.891771 +v 0.749161 -0.487059 1.910778 +v 0.768197 -0.482552 1.877778 +v 0.800643 -0.445718 1.861194 +v 0.817953 -0.435951 1.831187 +v 0.786997 -0.475066 1.845188 +v 0.805446 -0.464655 1.813205 +v 0.834825 -0.423491 1.801938 +v 0.851158 -0.408425 1.773624 +v 0.823430 -0.451375 1.782030 +v 0.840838 -0.435317 1.751852 +v 0.866849 -0.390836 1.746423 +v 0.881803 -0.370842 1.720499 +v 0.857562 -0.416570 1.722860 +v 0.873501 -0.395259 1.695230 +v 0.895926 -0.348557 1.696017 +v 0.909133 -0.324127 1.673122 +v 0.888553 -0.371508 1.669135 +v 0.902630 -0.345469 1.644732 +v 0.921341 -0.297696 1.651960 +v 0.932476 -0.269432 1.632658 +v 0.915641 -0.317297 1.622178 +v 0.927509 -0.287172 1.601604 +v 0.942466 -0.239505 1.615338 +v 0.951255 -0.208102 1.600103 +v 0.938158 -0.255274 1.583144 +v 0.947525 -0.221805 1.566906 +v 0.958783 -0.175415 1.587052 +v 0.965009 -0.141649 1.576260 +v 0.955549 -0.186965 1.552996 +v 0.962185 -0.150975 1.541492 +v 0.969890 -0.107007 1.567799 +v 0.973399 -0.071707 1.561715 +v 0.967387 -0.114053 1.532475 +v 0.971128 -0.076428 1.525990 +v 0.975512 -0.035964 1.558052 +v 0.976219 0.000000 1.556826 +v 0.973380 -0.038332 1.522087 +v 0.974133 0.000000 1.520780 +v 0.291301 -0.052423 2.459888 +v 0.170328 -0.059158 2.488906 +v 0.169165 0.000000 2.490923 +v 0.290270 0.000000 2.461675 +v 0.294381 -0.104523 2.454550 +v 0.173803 -0.117953 2.482882 +v 0.048966 -0.064766 2.501157 +v 0.052770 -0.129134 2.494561 +v 0.047692 0.000000 2.503364 +v 0.299496 -0.155978 2.445681 +v 0.179577 -0.176018 2.472874 +v 0.306611 -0.206472 2.433349 +v 0.187605 -0.233001 2.458956 +v 0.059091 -0.192704 2.483603 +v 0.067880 -0.255088 2.468368 +v 0.315686 -0.255692 2.417617 +v 0.197846 -0.288544 2.441203 +v 0.326659 -0.303337 2.398594 +v 0.210230 -0.342312 2.419736 +v 0.079092 -0.315896 2.448932 +v 0.092650 -0.374760 2.425429 +v 0.339470 -0.349110 2.376386 +v 0.224686 -0.393965 2.394675 +v 0.354033 -0.392734 2.351141 +v 0.241120 -0.443194 2.366186 +v 0.108476 -0.431310 2.397993 +v 0.126468 -0.485205 2.366804 +v 0.370264 -0.433932 2.323004 +v 0.259436 -0.489686 2.334435 +v 0.388057 -0.472459 2.292159 +v 0.279516 -0.533162 2.299626 +v 0.146521 -0.536103 2.332042 +v 0.168504 -0.583702 2.293934 +v 0.407309 -0.508069 2.258786 +v 0.301241 -0.573347 2.261965 +v 0.427895 -0.540550 2.223100 +v 0.324472 -0.610003 2.221694 +v 0.192288 -0.627697 2.252703 +v 0.217721 -0.667827 2.208614 +v 0.449692 -0.569695 2.185312 +v 0.349071 -0.642892 2.179051 +v 0.472564 -0.595332 2.145664 +v 0.374881 -0.671824 2.134308 +v 0.244652 -0.703834 2.161930 +v 0.272909 -0.735508 2.112946 +v 0.496372 -0.617294 2.104393 +v 0.401748 -0.696607 2.087735 +v 0.520966 -0.635455 2.061758 +v 0.429502 -0.717102 2.039622 +v 0.302322 -0.762640 2.061957 +v 0.332707 -0.785078 2.009284 +v 0.546197 -0.649693 2.018019 +v 0.457975 -0.733169 1.990264 +v 0.571908 -0.659931 1.973448 +v 0.486989 -0.744722 1.939966 +v 0.363879 -0.802668 1.955246 +v 0.395644 -0.815317 1.900181 +v 0.597942 -0.666094 1.928319 +v 0.516367 -0.751677 1.889038 +v 0.624136 -0.668157 1.882910 +v 0.545928 -0.754005 1.837794 +v 0.427807 -0.822931 1.844425 +v 0.460170 -0.825480 1.788324 +v 0.650331 -0.666094 1.837500 +v 0.575488 -0.751677 1.786551 +v 0.676365 -0.659931 1.792371 +v 0.604866 -0.744722 1.735623 +v 0.492532 -0.822931 1.732223 +v 0.524695 -0.815317 1.676467 +v 0.702075 -0.649693 1.747800 +v 0.633881 -0.733169 1.685325 +v 0.727306 -0.635455 1.704061 +v 0.662354 -0.717102 1.635966 +v 0.556460 -0.802668 1.621402 +v 0.587632 -0.785078 1.567364 +v 0.751901 -0.617294 1.661426 +v 0.690108 -0.696607 1.587854 +v 0.775707 -0.595332 1.620155 +v 0.716974 -0.671823 1.541281 +v 0.618017 -0.762640 1.514691 +v 0.647430 -0.735508 1.463703 +v 0.798580 -0.569695 1.580507 +v 0.742785 -0.642892 1.496537 +v 0.820377 -0.540550 1.542720 +v 0.767382 -0.610003 1.453895 +v 0.675687 -0.703833 1.414719 +v 0.702617 -0.667827 1.368035 +v 0.840963 -0.508069 1.507033 +v 0.790613 -0.573347 1.413624 +v 0.860214 -0.472459 1.473660 +v 0.812338 -0.533162 1.375964 +v 0.728051 -0.627696 1.323946 +v 0.751835 -0.583701 1.282715 +v 0.878008 -0.433932 1.442815 +v 0.832418 -0.489685 1.341155 +v 0.894239 -0.392733 1.414679 +v 0.850734 -0.443193 1.309403 +v 0.773817 -0.536103 1.244607 +v 0.793870 -0.485205 1.209845 +v 0.908801 -0.349110 1.389434 +v 0.867168 -0.393965 1.280915 +v 0.921612 -0.303337 1.367226 +v 0.881625 -0.342311 1.255854 +v 0.811861 -0.431310 1.178656 +v 0.827688 -0.374760 1.151220 +v 0.932586 -0.255691 1.348203 +v 0.894008 -0.288544 1.234387 +v 0.941660 -0.206472 1.332472 +v 0.904249 -0.233000 1.216634 +v 0.841245 -0.315896 1.127717 +v 0.852457 -0.255087 1.108281 +v 0.948775 -0.155977 1.320139 +v 0.912277 -0.176018 1.202716 +v 0.953891 -0.104522 1.311271 +v 0.918051 -0.117952 1.192708 +v 0.861246 -0.192703 1.093045 +v 0.867567 -0.129133 1.082088 +v 0.956970 -0.052423 1.305932 +v 0.921526 -0.059158 1.186684 +v 0.958001 0.000000 1.304145 +v 0.922689 0.000000 1.184667 +v 0.871372 -0.064766 1.075493 +v 0.872645 0.000000 1.073285 +v -0.266268 -0.148711 2.453219 +v -0.270649 -0.074585 2.460815 +v -0.171042 -0.072404 2.486278 +v -0.166788 -0.144362 2.478904 +v -0.360117 -0.151276 2.417775 +v -0.364574 -0.075871 2.425502 +v -0.272116 0.000000 2.463357 +v -0.366066 0.000000 2.428088 +v -0.172466 0.000000 2.488746 +v -0.248867 -0.293760 2.423055 +v -0.258989 -0.221919 2.440602 +v -0.159723 -0.215429 2.466656 +v -0.149897 -0.285169 2.449622 +v -0.342416 -0.298826 2.387090 +v -0.352713 -0.225746 2.404940 +v -0.220343 -0.431576 2.373607 +v -0.235956 -0.363788 2.400672 +v -0.137363 -0.353149 2.427894 +v -0.122207 -0.418955 2.401620 +v -0.313400 -0.439019 2.336789 +v -0.329282 -0.370062 2.364322 +v -0.181397 -0.558764 2.306093 +v -0.202116 -0.496700 2.342011 +v -0.104514 -0.482173 2.370948 +v -0.084401 -0.542423 2.336081 +v -0.273783 -0.568401 2.268111 +v -0.294859 -0.505265 2.304649 +v -0.132989 -0.672195 2.222176 +v -0.158304 -0.617380 2.266062 +v -0.061984 -0.599324 2.297220 +v -0.037408 -0.652536 2.254618 +v -0.224539 -0.683787 2.182747 +v -0.250292 -0.628027 2.227390 +v -0.076310 -0.769074 2.123921 +v -0.105599 -0.722859 2.174695 +v -0.010819 -0.701719 2.208525 +v 0.017614 -0.746582 2.159237 +v -0.166883 -0.782337 2.082798 +v -0.196677 -0.735325 2.134447 +v -0.012756 -0.847015 2.013749 +v -0.045297 -0.810539 2.070159 +v 0.047720 -0.786835 2.107047 +v 0.079309 -0.822244 2.052286 +v -0.102234 -0.861623 1.970725 +v -0.135336 -0.824518 2.028109 +v 0.056108 -0.904101 1.894371 +v 0.021116 -0.878261 1.955030 +v 0.112191 -0.852576 1.995285 +v 0.146159 -0.877660 1.936400 +v -0.032182 -0.919692 1.849289 +v -0.067777 -0.893407 1.910994 +v 0.128586 -0.938924 1.768728 +v 0.092006 -0.924357 1.832141 +v 0.181007 -0.897324 1.875990 +v 0.216518 -0.911465 1.814431 +v 0.041546 -0.955116 1.721479 +v 0.004335 -0.940298 1.785986 +v 0.202894 -0.950628 1.639913 +v 0.165626 -0.947693 1.704519 +v 0.252474 -0.919977 1.752100 +v 0.288653 -0.922826 1.689384 +v 0.117136 -0.967022 1.590443 +v 0.079224 -0.964036 1.656163 +v 0.277203 -0.938924 1.511099 +v 0.240163 -0.947693 1.575307 +v 0.324832 -0.919977 1.626666 +v 0.360788 -0.911464 1.564335 +v 0.192726 -0.955116 1.459407 +v 0.155048 -0.964036 1.524722 +v 0.349681 -0.904100 1.385455 +v 0.313783 -0.924357 1.447685 +v 0.396298 -0.897324 1.502777 +v 0.431146 -0.877659 1.442366 +v 0.266454 -0.919692 1.331596 +v 0.229937 -0.940298 1.394900 +v 0.418545 -0.847015 1.266077 +v 0.384672 -0.878261 1.324796 +v 0.465114 -0.852576 1.383483 +v 0.497996 -0.822244 1.326481 +v 0.336506 -0.861622 1.210160 +v 0.302049 -0.893407 1.269892 +v 0.482099 -0.769073 1.155905 +v 0.451086 -0.810539 1.209667 +v 0.529586 -0.786834 1.271720 +v 0.559692 -0.746581 1.219530 +v 0.401156 -0.782336 1.098088 +v 0.369608 -0.824517 1.152777 +v 0.538778 -0.672194 1.057650 +v 0.511388 -0.722858 1.105132 +v 0.588124 -0.701718 1.170242 +v 0.614713 -0.652536 1.124149 +v 0.458812 -0.683786 0.998139 +v 0.430950 -0.735325 1.046439 +v 0.587187 -0.558764 0.973733 +v 0.564094 -0.617379 1.013765 +v 0.639289 -0.599324 1.081547 +v 0.661706 -0.542423 1.042686 +v 0.508055 -0.568400 0.912774 +v 0.484565 -0.628026 0.953496 +v 0.626132 -0.431576 0.906220 +v 0.607906 -0.496699 0.937815 +v 0.681819 -0.482173 1.007819 +v 0.699513 -0.418954 0.977147 +v 0.547673 -0.439018 0.844096 +v 0.529132 -0.505265 0.876237 +v 0.654655 -0.293760 0.856772 +v 0.641744 -0.363787 0.879154 +v 0.714669 -0.353148 0.950873 +v 0.727202 -0.285168 0.929145 +v 0.576689 -0.298826 0.793795 +v 0.563555 -0.370061 0.816564 +v 0.672056 -0.148710 0.826607 +v 0.664777 -0.221918 0.839225 +v 0.737028 -0.215428 0.912112 +v 0.744093 -0.144361 0.899863 +v 0.594389 -0.151275 0.763111 +v 0.586985 -0.225745 0.775946 +v 0.677904 0.000000 0.816470 +v 0.676437 -0.074585 0.819012 +v 0.748347 -0.072403 0.892490 +v 0.749770 0.000000 0.890022 +v 0.600338 0.000000 0.752798 +v 0.598847 -0.075871 0.755385 +v -0.449415 -0.152398 2.374440 +v -0.453905 -0.076434 2.382224 +v -0.536437 -0.152798 2.327161 +v -0.540939 -0.076635 2.334965 +v -0.455408 0.000000 2.384830 +v -0.542446 0.000000 2.337577 +v -0.431583 -0.301043 2.343528 +v -0.441956 -0.227420 2.361510 +v -0.518558 -0.301834 2.296167 +v -0.528959 -0.228018 2.314196 +v -0.402351 -0.442275 2.292854 +v -0.418351 -0.372806 2.320591 +v -0.489250 -0.443438 2.245360 +v -0.505292 -0.373786 2.273170 +v -0.362440 -0.572616 2.223667 +v -0.383673 -0.509013 2.260475 +v -0.449234 -0.574121 2.175991 +v -0.470523 -0.510351 2.212896 +v -0.312832 -0.688858 2.137670 +v -0.338775 -0.632685 2.182643 +v -0.399495 -0.690669 2.089767 +v -0.425507 -0.634348 2.134859 +v -0.254748 -0.788139 2.036979 +v -0.284763 -0.740779 2.089011 +v -0.341258 -0.790211 1.988813 +v -0.371352 -0.742726 2.040981 +v -0.189619 -0.868013 1.924075 +v -0.222966 -0.830633 1.981884 +v -0.275957 -0.870295 1.875612 +v -0.309393 -0.832816 1.933573 +v -0.119048 -0.926513 1.801738 +v -0.154907 -0.900033 1.863901 +v -0.205202 -0.928949 1.752953 +v -0.241154 -0.902399 1.815279 +v -0.044773 -0.962200 1.672980 +v -0.082260 -0.947272 1.737966 +v -0.130731 -0.964729 1.623857 +v -0.168317 -0.949762 1.689013 +v 0.031378 -0.974194 1.540972 +v -0.006815 -0.971186 1.607180 +v -0.054381 -0.976754 1.491502 +v -0.092674 -0.973739 1.557884 +v 0.107528 -0.962199 1.408964 +v 0.069570 -0.971186 1.474764 +v 0.021970 -0.964729 1.359147 +v -0.016088 -0.973739 1.425120 +v 0.181803 -0.926513 1.280206 +v 0.145015 -0.947272 1.343979 +v 0.096440 -0.928948 1.230050 +v 0.059555 -0.949762 1.293991 +v 0.252374 -0.868012 1.157869 +v 0.217662 -0.900033 1.218044 +v 0.167197 -0.870294 1.107392 +v 0.132393 -0.902399 1.167725 +v 0.317504 -0.788138 1.044966 +v 0.285722 -0.830632 1.100060 +v 0.232497 -0.790210 0.994192 +v 0.200632 -0.832815 1.049431 +v 0.375588 -0.688858 0.944275 +v 0.347519 -0.740778 0.992934 +v 0.290734 -0.690669 0.893236 +v 0.262591 -0.742725 0.942023 +v 0.425196 -0.572615 0.858278 +v 0.401531 -0.632684 0.899302 +v 0.340473 -0.574121 0.807013 +v 0.316746 -0.634347 0.848145 +v 0.465107 -0.442274 0.789091 +v 0.446429 -0.509012 0.821470 +v 0.380489 -0.443437 0.737644 +v 0.361762 -0.510350 0.770108 +v 0.494339 -0.301042 0.738417 +v 0.481107 -0.372805 0.761354 +v 0.409797 -0.301833 0.686837 +v 0.396531 -0.373785 0.709834 +v 0.512171 -0.152397 0.707505 +v 0.504711 -0.227419 0.720435 +v 0.427676 -0.152797 0.655843 +v 0.420197 -0.228017 0.668808 +v 0.518164 0.000000 0.697116 +v 0.516661 -0.076434 0.699721 +v 0.433685 0.000000 0.645427 +v 0.432178 -0.076635 0.648039 +v -0.060602 -0.137886 2.492960 +v -0.064665 -0.069156 2.500003 +v -0.066024 0.000000 2.502360 +v -0.044468 -0.272378 2.464991 +v -0.053853 -0.205765 2.481261 +v -0.018020 -0.400162 2.419143 +v -0.032496 -0.337308 2.444238 +v 0.018091 -0.518093 2.356543 +v -0.001120 -0.460545 2.389846 +v 0.062976 -0.623266 2.278734 +v 0.039503 -0.572441 2.319426 +v 0.115530 -0.713093 2.187632 +v 0.088372 -0.670243 2.234709 +v 0.174457 -0.785362 2.085478 +v 0.144285 -0.751541 2.137783 +v 0.238309 -0.838291 1.974790 +v 0.205864 -0.814333 2.031033 +v 0.305512 -0.870580 1.858292 +v 0.271594 -0.857074 1.917090 +v 0.374411 -0.881432 1.738854 +v 0.339855 -0.878710 1.798757 +v 0.443310 -0.870580 1.619415 +v 0.408967 -0.878710 1.678950 +v 0.510513 -0.838291 1.502917 +v 0.477228 -0.857074 1.560617 +v 0.574365 -0.785361 1.392230 +v 0.542957 -0.814333 1.446674 +v 0.633292 -0.713093 1.290077 +v 0.604537 -0.751540 1.339925 +v 0.685846 -0.623265 1.198974 +v 0.660450 -0.670242 1.242999 +v 0.730730 -0.518093 1.121165 +v 0.709319 -0.572440 1.158282 +v 0.766841 -0.400161 1.058566 +v 0.749941 -0.460545 1.087862 +v 0.793288 -0.272377 1.012717 +v 0.781317 -0.337307 1.033470 +v 0.809423 -0.137886 0.984748 +v 0.802674 -0.205765 0.996448 +v 0.814845 0.000000 0.975349 +v 0.813485 -0.069156 0.977706 +v 0.406385 -0.089025 2.406193 +v 0.403762 -0.044650 2.410740 +v 0.402884 0.000000 2.412262 +v 0.416801 -0.175857 2.388135 +v 0.410742 -0.132850 2.398640 +v 0.433877 -0.258359 2.358534 +v 0.424531 -0.217778 2.374736 +v 0.457192 -0.334500 2.318117 +v 0.444788 -0.297345 2.339619 +v 0.486171 -0.402404 2.267881 +v 0.471016 -0.369589 2.294153 +v 0.520102 -0.460400 2.209062 +v 0.502568 -0.432734 2.239457 +v 0.558148 -0.507059 2.143108 +v 0.538667 -0.485223 2.176878 +v 0.599373 -0.541231 2.071644 +v 0.578425 -0.525764 2.107956 +v 0.642761 -0.562078 1.996428 +v 0.620862 -0.553358 2.034390 +v 0.687245 -0.569084 1.919314 +v 0.664934 -0.567327 1.957990 +v 0.731729 -0.562078 1.842200 +v 0.709556 -0.567327 1.880638 +v 0.775117 -0.541231 1.766985 +v 0.753627 -0.553357 1.804238 +v 0.816342 -0.507057 1.695521 +v 0.796065 -0.525762 1.730672 +v 0.854387 -0.460399 1.629567 +v 0.835822 -0.485222 1.661751 +v 0.888318 -0.402404 1.570748 +v 0.871921 -0.432733 1.599172 +v 0.917297 -0.334499 1.520511 +v 0.903473 -0.369589 1.544476 +v 0.940611 -0.258359 1.480096 +v 0.929701 -0.297344 1.499010 +v 0.957687 -0.175856 1.450493 +v 0.949958 -0.217778 1.463893 +v 0.968104 -0.089024 1.432437 +v 0.963746 -0.132849 1.439989 +v 0.971605 0.000000 1.426368 +v 0.970727 -0.044649 1.427889 +v -0.769087 -0.743718 1.967094 +v -0.714695 -0.747597 2.044239 +v -0.653195 -0.752111 2.113454 +v -0.585817 -0.756073 2.175694 +v -0.513708 -0.758062 2.231602 +v -0.437146 -0.758264 2.280675 +v -0.356540 -0.757141 2.322686 +v -0.272344 -0.754447 2.357557 +v -0.184993 -0.749770 2.385013 +v -0.094780 -0.744497 2.403973 +v -0.001738 -0.739542 2.412884 +v 0.561163 -0.746665 2.205873 +v 0.611309 -0.749409 2.158312 +v 0.655617 -0.751457 2.110480 +v 0.694764 -0.752908 2.061984 +v 0.729411 -0.753847 2.012408 +v 0.760517 -0.754582 1.961543 +v 0.788547 -0.754865 1.908811 +v 0.813666 -0.754561 1.853565 +v 0.836024 -0.753529 1.795152 +v 0.855793 -0.751224 1.733205 +v 0.873113 -0.747058 1.667338 +v -0.053475 -0.891617 2.212882 +v -0.107530 -0.891617 2.206488 +v 0.000915 -0.891617 2.215022 +v -0.052443 -0.896112 2.199763 +v 0.000915 -0.896112 2.201863 +v -0.105471 -0.896112 2.193490 +v -0.160914 -0.891617 2.195865 +v -0.213304 -0.891617 2.181093 +v -0.157842 -0.896112 2.183070 +v -0.209237 -0.896112 2.168578 +v -0.264370 -0.891617 2.162250 +v -0.313803 -0.891617 2.139465 +v -0.259334 -0.896112 2.150093 +v -0.307829 -0.896112 2.127740 +v -0.361293 -0.891617 2.112865 +v -0.406554 -0.891617 2.082627 +v -0.354418 -0.896112 2.101645 +v -0.398819 -0.896112 2.071981 +v -0.449298 -0.891617 2.048926 +v -0.489271 -0.891616 2.011980 +v -0.440752 -0.896112 2.038920 +v -0.479966 -0.896112 2.002675 +v -0.526217 -0.891617 1.972007 +v -0.559918 -0.891617 1.929263 +v -0.516210 -0.896112 1.963461 +v -0.549272 -0.896112 1.921528 +v -0.590156 -0.891617 1.884003 +v -0.616755 -0.891617 1.836513 +v -0.578936 -0.896112 1.877127 +v -0.605030 -0.896112 1.830538 +v -0.639541 -0.891617 1.787079 +v -0.658384 -0.891616 1.736014 +v -0.627383 -0.896112 1.782043 +v -0.645868 -0.896112 1.731946 +v -0.673156 -0.891616 1.683625 +v -0.683778 -0.891616 1.630239 +v -0.660360 -0.896112 1.680553 +v -0.670781 -0.896112 1.628181 +v -0.690172 -0.891616 1.576184 +v -0.692313 -0.891616 1.521795 +v -0.677054 -0.896112 1.575152 +v -0.679153 -0.896112 1.521795 +v -0.690172 -0.891616 1.467405 +v -0.683778 -0.891616 1.413350 +v -0.677054 -0.896112 1.468437 +v -0.670780 -0.896112 1.415408 +v -0.673155 -0.891616 1.359964 +v -0.658383 -0.891616 1.307575 +v -0.660360 -0.896112 1.363036 +v -0.645868 -0.896112 1.311641 +v -0.639540 -0.891616 1.256509 +v -0.616755 -0.891616 1.207075 +v -0.627383 -0.896112 1.261544 +v -0.605030 -0.896112 1.213050 +v -0.590155 -0.891617 1.159585 +v -0.559917 -0.891617 1.114325 +v -0.578935 -0.896112 1.166461 +v -0.549271 -0.896112 1.122060 +v -0.526216 -0.891617 1.071581 +v -0.489270 -0.891617 1.031608 +v -0.516210 -0.896112 1.080127 +v -0.479965 -0.896112 1.040913 +v -0.449297 -0.891617 0.994662 +v -0.406553 -0.891617 0.960961 +v -0.440751 -0.896112 1.004668 +v -0.398818 -0.896112 0.971607 +v -0.361293 -0.891617 0.930723 +v -0.313804 -0.891617 0.904124 +v -0.354418 -0.896112 0.941943 +v -0.307830 -0.896112 0.915849 +v -0.264370 -0.891617 0.881338 +v -0.213304 -0.891617 0.862495 +v -0.259335 -0.896112 0.893496 +v -0.209238 -0.896112 0.875011 +v -0.160915 -0.891617 0.847724 +v -0.107529 -0.891617 0.837101 +v -0.157843 -0.896112 0.860519 +v -0.105471 -0.896112 0.850099 +v -0.053474 -0.891617 0.830707 +v 0.000915 -0.891617 0.828567 +v -0.052442 -0.896112 0.843826 +v 0.000915 -0.896112 0.841726 +v 0.055305 -0.891617 0.830707 +v 0.109360 -0.891617 0.837102 +v 0.054273 -0.896112 0.843826 +v 0.107302 -0.896112 0.850099 +v 0.162746 -0.891617 0.847724 +v 0.215135 -0.891617 0.862496 +v 0.159674 -0.896112 0.860520 +v 0.211068 -0.896112 0.875011 +v 0.266201 -0.891617 0.881339 +v 0.315635 -0.891617 0.904124 +v 0.261165 -0.896112 0.893496 +v 0.309660 -0.896112 0.915849 +v 0.363125 -0.891617 0.930724 +v 0.408385 -0.891617 0.960962 +v 0.356249 -0.896112 0.941944 +v 0.400650 -0.896112 0.971608 +v 0.451129 -0.891617 0.994663 +v 0.491102 -0.891617 1.031609 +v 0.442583 -0.896112 1.004669 +v 0.481797 -0.896112 1.040914 +v 0.528048 -0.891617 1.071582 +v 0.561749 -0.891617 1.114326 +v 0.518041 -0.896112 1.080128 +v 0.551103 -0.896112 1.122061 +v 0.591987 -0.891617 1.159587 +v 0.618586 -0.891617 1.207077 +v 0.580767 -0.896112 1.166462 +v 0.606861 -0.896112 1.213051 +v 0.641372 -0.891617 1.256510 +v 0.660214 -0.891617 1.307577 +v 0.629214 -0.896112 1.261546 +v 0.647699 -0.896112 1.311643 +v 0.674986 -0.891617 1.359966 +v 0.685608 -0.891617 1.413351 +v 0.662190 -0.896112 1.363037 +v 0.672611 -0.896112 1.415410 +v 0.692003 -0.891617 1.467406 +v 0.694143 -0.891617 1.521796 +v 0.678884 -0.896112 1.468438 +v 0.680984 -0.896112 1.521796 +v 0.692003 -0.891617 1.576185 +v 0.685608 -0.891617 1.630240 +v 0.678884 -0.896112 1.575152 +v 0.672611 -0.896112 1.628181 +v 0.674986 -0.891617 1.683625 +v 0.660214 -0.891617 1.736014 +v 0.662190 -0.896112 1.680553 +v 0.647698 -0.896112 1.731948 +v 0.641371 -0.891617 1.787081 +v 0.618585 -0.891617 1.836514 +v 0.629213 -0.896112 1.782045 +v 0.606860 -0.896112 1.830540 +v 0.591986 -0.891617 1.884004 +v 0.561748 -0.891617 1.929264 +v 0.580765 -0.896112 1.877128 +v 0.551101 -0.896112 1.921529 +v 0.528046 -0.891617 1.972008 +v 0.491100 -0.891617 2.011981 +v 0.518040 -0.896112 1.963462 +v 0.481795 -0.896112 2.002676 +v 0.451127 -0.891617 2.048927 +v 0.408383 -0.891617 2.082628 +v 0.442581 -0.896112 2.038921 +v 0.400648 -0.896112 2.071982 +v 0.363123 -0.891617 2.112866 +v 0.315633 -0.891617 2.139465 +v 0.356247 -0.896112 2.101646 +v 0.309659 -0.896112 2.127741 +v 0.266199 -0.891617 2.162251 +v 0.215133 -0.891617 2.181094 +v 0.261163 -0.896112 2.150093 +v 0.211066 -0.896112 2.168578 +v 0.162744 -0.891617 2.195865 +v 0.109358 -0.891617 2.206488 +v 0.159672 -0.896112 2.183070 +v 0.107300 -0.896112 2.193490 +v 0.055304 -0.891617 2.212882 +v 0.054271 -0.896112 2.199763 +v 0.654764 -0.752749 0.931198 +v 0.588043 -0.755627 0.867825 +v 0.515822 -0.757856 0.811532 +v 0.438806 -0.758611 0.762192 +v 0.357919 -0.757278 0.719526 +v 0.272906 -0.755801 0.685247 +v 0.183380 -0.755927 0.661237 +v -0.921327 -0.672514 1.313525 +v -0.898227 -0.685980 1.262104 +v -0.873957 -0.696234 1.211581 +v -0.849062 -0.703092 1.161619 +v -0.823737 -0.706141 1.111928 +v -0.797517 -0.706131 1.062862 +v -0.769974 -0.703832 1.014772 +v -0.740569 -0.699469 0.967150 +v -0.708651 -0.693182 0.919527 +v -0.675874 -0.683906 0.872815 +v -0.643898 -0.670547 0.828033 +v 0.078941 -1.137034 1.738787 +v 0.053895 -1.138021 1.741445 +v 0.049363 -1.145978 1.698800 +v 0.081187 -1.145075 1.692483 +v 0.082342 -1.126699 1.785635 +v 0.059744 -1.126942 1.790665 +v 0.029721 -1.137898 1.746644 +v 0.037332 -1.126860 1.795021 +v 0.023690 -1.145847 1.704678 +v 0.118297 -1.137156 1.719464 +v 0.106227 -1.133691 1.744601 +v 0.154496 -1.126896 1.750054 +v 0.137070 -1.125842 1.765919 +v 0.105626 -1.125758 1.781435 +v 0.129280 -1.121582 1.788357 +v 0.127609 -1.145791 1.655457 +v 0.154604 -1.138284 1.685320 +v 0.135710 -1.138280 1.701273 +v 0.106687 -1.145936 1.671638 +v 0.189321 -1.127268 1.720089 +v 0.172216 -1.127236 1.735208 +v 0.189821 -1.137481 1.650042 +v 0.171111 -1.138441 1.666909 +v 0.145359 -1.145834 1.635877 +v 0.166295 -1.145130 1.611892 +v 0.220229 -1.127156 1.686052 +v 0.204895 -1.127371 1.703397 +v 0.210317 -1.137635 1.611279 +v 0.215327 -1.134158 1.638714 +v 0.257723 -1.127412 1.614850 +v 0.252945 -1.126347 1.637933 +v 0.236610 -1.126238 1.668973 +v 0.259926 -1.122109 1.660752 +v 0.181246 -1.145981 1.555614 +v 0.219637 -1.138780 1.562310 +v 0.213718 -1.138769 1.586324 +v 0.174915 -1.145928 1.580732 +v 0.268299 -1.127802 1.570134 +v 0.263340 -1.127763 1.592420 +v 0.227416 -1.137971 1.513059 +v 0.222182 -1.138937 1.537708 +v 0.183279 -1.146202 1.529375 +v 0.185779 -1.145597 1.496870 +v 0.273314 -1.127688 1.524425 +v 0.271096 -1.127905 1.547473 +v 0.221220 -1.138099 1.469638 +v 0.241401 -1.134635 1.488900 +v 0.261807 -1.127910 1.444749 +v 0.271513 -1.126856 1.466251 +v 0.276538 -1.126762 1.500978 +v 0.290682 -1.122672 1.480700 +v 0.165100 -1.146312 1.441541 +v 0.199971 -1.139196 1.424524 +v 0.209302 -1.139215 1.447439 +v 0.174402 -1.146383 1.466323 +v 0.244075 -1.128256 1.402338 +v 0.253165 -1.128241 1.423291 +v 0.177307 -1.138312 1.380091 +v 0.187565 -1.139320 1.403116 +v 0.151735 -1.146407 1.418834 +v 0.134652 -1.145766 1.391324 +v 0.221262 -1.128092 1.362396 +v 0.233016 -1.128340 1.382352 +v 0.146762 -1.138374 1.348594 +v 0.174424 -1.134940 1.352319 +v 0.165098 -1.128193 1.304684 +v 0.185606 -1.127174 1.316383 +v 0.210093 -1.127131 1.341533 +v 0.209726 -1.123056 1.316885 +v 0.085596 -1.146563 1.360078 +v 0.103035 -1.139373 1.324578 +v 0.124062 -1.139448 1.337635 +v 0.107876 -1.146513 1.373846 +v 0.125801 -1.128458 1.280789 +v 0.145482 -1.128489 1.292398 +v 0.058566 -1.138374 1.301954 +v 0.080406 -1.139445 1.314549 +v 0.060998 -1.146757 1.350304 +v 0.030539 -1.146042 1.337643 +v 0.083851 -1.128214 1.261883 +v 0.105096 -1.128497 1.271121 +v 0.015329 -1.138352 1.294433 +v 0.039908 -1.134960 1.281182 +v 0.004473 -1.128148 1.248226 +v 0.027956 -1.127179 1.245629 +v 0.062555 -1.127202 1.251574 +v 0.047874 -1.123114 1.231923 +v -0.028354 -1.146734 1.341469 +v -0.034174 -1.139245 1.300723 +v -0.009484 -1.139368 1.298919 +v -0.001909 -1.146808 1.339981 +v -0.041380 -1.128331 1.252008 +v -0.018628 -1.128404 1.249823 +v 0.050533 -1.151738 1.382596 +v 0.025837 -1.152110 1.378388 +v 0.073860 -1.151332 1.389808 +v 0.046092 -1.155180 1.412398 +v 0.067502 -1.154494 1.416097 +v 0.023877 -1.155667 1.410635 +v 0.084828 -1.156399 1.580867 +v 0.064296 -1.157379 1.586971 +v 0.058714 -1.158870 1.563582 +v 0.080404 -1.157624 1.559276 +v 0.092759 -1.154388 1.603100 +v 0.072896 -1.155202 1.612114 +v 0.052303 -1.155643 1.618821 +v 0.044326 -1.158059 1.591469 +v 0.039012 -1.159622 1.566908 +v 0.026027 -1.158395 1.595526 +v 0.021595 -1.159895 1.570181 +v 0.032415 -1.156014 1.624378 +v 0.008477 -1.158419 1.598704 +v 0.012718 -1.155906 1.628261 +v 0.004767 -1.159932 1.572948 +v 0.073384 -1.158784 1.512678 +v 0.070329 -1.158545 1.489251 +v 0.095170 -1.156653 1.486904 +v 0.098266 -1.156895 1.509228 +v 0.067826 -1.157834 1.465589 +v 0.091492 -1.156079 1.465006 +v 0.115410 -1.153794 1.462321 +v 0.120844 -1.154095 1.483474 +v 0.124313 -1.154350 1.505589 +v 0.047624 -1.160004 1.491991 +v 0.045568 -1.159067 1.467283 +v 0.050629 -1.160260 1.515822 +v 0.028167 -1.160783 1.494336 +v 0.031703 -1.160921 1.518517 +v 0.025264 -1.159917 1.469278 +v 0.010767 -1.161149 1.496330 +v 0.007312 -1.160285 1.470812 +v 0.014275 -1.161358 1.520995 +v -0.002344 -1.161462 1.523367 +v -0.005904 -1.161231 1.498496 +v -0.009588 -1.160340 1.472665 +v 0.138414 -1.150751 1.454327 +v 0.146082 -1.150978 1.477476 +v 0.150592 -1.151124 1.501881 +v 0.126806 -1.153699 1.548735 +v 0.151563 -1.150560 1.550342 +v 0.146998 -1.150407 1.572005 +v 0.125231 -1.153278 1.566859 +v 0.138226 -1.150450 1.592116 +v 0.124391 -1.152572 1.582605 +v 0.152591 -1.150876 1.526572 +v 0.126385 -1.154018 1.527831 +v 0.100910 -1.156637 1.531686 +v 0.103092 -1.155944 1.553019 +v 0.076664 -1.158429 1.536283 +v 0.054231 -1.159877 1.539777 +v 0.035266 -1.160500 1.542681 +v 0.017845 -1.160884 1.545479 +v 0.001188 -1.160971 1.548012 +v 0.124610 -1.150758 1.611241 +v 0.107015 -1.151052 1.628015 +v 0.110509 -1.153497 1.590685 +v 0.066187 -1.156547 1.441284 +v 0.044747 -1.157500 1.440695 +v 0.023842 -1.158206 1.441140 +v 0.004552 -1.158479 1.441735 +v 0.002442 -1.155818 1.409918 +v -0.013781 -1.158546 1.443367 +v -0.018371 -1.155855 1.411287 +v 0.104824 -1.155155 1.571987 +v 0.101749 -1.152830 1.427282 +v 0.107376 -1.153511 1.442951 +v 0.087087 -1.155284 1.443816 +v 0.086525 -1.153658 1.422636 +v 0.126957 -1.150752 1.433376 +v 0.112136 -1.150868 1.415290 +v 0.086388 -1.151455 1.641130 +v 0.064020 -1.151857 1.651318 +v 0.041203 -1.151975 1.659303 +v 0.017908 -1.151878 1.664418 +v -0.023158 -1.152073 1.377820 +v 0.001178 -1.152079 1.376488 +v 0.094414 -1.151027 1.400736 +v -0.002600 -1.145852 1.706245 +v 0.005059 -1.137936 1.748449 +v -0.019722 -1.136849 1.752934 +v -0.034916 -1.144830 1.709123 +v 0.014604 -1.126863 1.797207 +v -0.008462 -1.126554 1.798809 +v -0.044266 -1.133418 1.766184 +v -0.062924 -1.136797 1.745444 +v -0.031888 -1.125533 1.801408 +v -0.066444 -1.125506 1.795492 +v -0.051414 -1.121292 1.814870 +v -0.087749 -1.126493 1.785213 +v -0.089874 -1.145353 1.686629 +v -0.065249 -1.145605 1.696286 +v -0.084752 -1.137847 1.732877 +v -0.107369 -1.137774 1.722875 +v -0.108992 -1.126769 1.776002 +v -0.129694 -1.126735 1.766357 +v -0.112407 -1.145281 1.672817 +v -0.128388 -1.137864 1.709843 +v -0.151084 -1.136828 1.698910 +v -0.139238 -1.144481 1.655676 +v -0.149377 -1.126785 1.754771 +v -0.168991 -1.126511 1.742507 +v -0.178745 -1.133440 1.695209 +v -0.181645 -1.136867 1.667458 +v -0.189488 -1.125539 1.730839 +v -0.213977 -1.125578 1.705744 +v -0.213249 -1.121350 1.730137 +v -0.225169 -1.126607 1.684910 +v -0.169408 -1.145299 1.605865 +v -0.156275 -1.145281 1.628196 +v -0.191923 -1.137969 1.644458 +v -0.204352 -1.137951 1.623071 +v -0.236945 -1.126924 1.664969 +v -0.248033 -1.126937 1.644992 +v -0.178723 -1.145461 1.581246 +v -0.213707 -1.138086 1.600170 +v -0.225654 -1.137100 1.577978 +v -0.190242 -1.144790 1.550747 +v -0.257153 -1.127019 1.624043 +v -0.265822 -1.126788 1.602583 +v -0.245867 -1.133748 1.558715 +v -0.231897 -1.137210 1.534557 +v -0.275556 -1.125856 1.581077 +v -0.280621 -1.125946 1.546370 +v -0.294417 -1.121733 1.566409 +v -0.277425 -1.127000 1.522939 +v -0.185947 -1.145626 1.491831 +v -0.187919 -1.145680 1.518232 +v -0.226690 -1.138347 1.509901 +v -0.224171 -1.138363 1.485284 +v -0.275229 -1.127350 1.499879 +v -0.272455 -1.127391 1.477190 +v -0.179488 -1.145727 1.466284 +v -0.218274 -1.138526 1.461250 +v -0.214891 -1.137556 1.436265 +v -0.170805 -1.145101 1.435084 +v -0.267514 -1.127490 1.454875 +v -0.261910 -1.127280 1.432408 +v -0.219919 -1.134222 1.408789 +v -0.194408 -1.137696 1.397458 +v -0.257139 -1.126364 1.409272 +v -0.240824 -1.126470 1.378206 +v -0.263810 -1.122296 1.386180 +v -0.224456 -1.127530 1.361135 +v -0.132510 -1.146186 1.391307 +v -0.150035 -1.146070 1.410777 +v -0.175696 -1.138840 1.380569 +v -0.159180 -1.138858 1.362130 +v -0.209118 -1.127884 1.343771 +v -0.193531 -1.127923 1.327048 +v -0.111639 -1.146443 1.375024 +v -0.140275 -1.139015 1.346150 +v -0.122844 -1.138039 1.327927 +v -0.085948 -1.145783 1.354331 +v -0.176411 -1.128019 1.311900 +v -0.158664 -1.127799 1.297020 +v -0.110752 -1.134687 1.302749 +v -0.083449 -1.138140 1.308582 +v -0.141194 -1.126870 1.281108 +v -0.109718 -1.126950 1.265571 +v -0.133042 -1.122823 1.258381 +v -0.086436 -1.127995 1.261388 +v -0.054157 -1.146761 1.347453 +v -0.058378 -1.139258 1.305924 +v -0.063819 -1.128322 1.256366 +v -0.070018 -1.151841 1.392129 +v -0.092552 -1.151521 1.403082 +v -0.059105 -1.155535 1.422518 +v -0.079933 -1.154968 1.430446 +v -0.112917 -1.151031 1.416553 +v -0.099424 -1.154034 1.440023 +v -0.049658 -1.158619 1.579095 +v -0.048387 -1.157138 1.603118 +v -0.069808 -1.156146 1.603032 +v -0.071628 -1.157342 1.581064 +v -0.030123 -1.159346 1.576893 +v -0.027961 -1.157943 1.601832 +v -0.027925 -1.155522 1.630324 +v -0.049572 -1.154984 1.629670 +v -0.071166 -1.154088 1.626597 +v -0.012246 -1.159753 1.575058 +v -0.009258 -1.158301 1.600580 +v -0.007277 -1.155943 1.630069 +v -0.077977 -1.158441 1.534366 +v -0.102812 -1.156381 1.538039 +v -0.106123 -1.156269 1.515743 +v -0.081630 -1.158294 1.511021 +v -0.128821 -1.153725 1.541861 +v -0.131735 -1.153719 1.519661 +v -0.132441 -1.153305 1.497830 +v -0.108749 -1.155789 1.493689 +v -0.085868 -1.157560 1.487607 +v -0.064030 -1.158831 1.482986 +v -0.059202 -1.159736 1.507279 +v -0.044009 -1.159750 1.479188 +v -0.040157 -1.160450 1.504009 +v -0.036675 -1.160599 1.528310 +v -0.055963 -1.159782 1.531140 +v -0.026414 -1.160166 1.475538 +v -0.022606 -1.160976 1.501050 +v -0.019031 -1.161184 1.525756 +v -0.157621 -1.150406 1.520988 +v -0.156765 -1.150224 1.496612 +v -0.155072 -1.150396 1.545678 +v -0.119121 -1.153292 1.583983 +v -0.112517 -1.152889 1.600937 +v -0.131950 -1.149895 1.611984 +v -0.142418 -1.150022 1.592474 +v -0.107287 -1.152215 1.615819 +v -0.117881 -1.149983 1.628826 +v -0.150066 -1.150216 1.569939 +v -0.124587 -1.153587 1.563797 +v -0.099056 -1.156260 1.560341 +v -0.074501 -1.158167 1.557945 +v -0.095158 -1.155598 1.581432 +v -0.052589 -1.159439 1.555068 +v -0.033287 -1.160206 1.552531 +v -0.015576 -1.160730 1.550279 +v -0.099428 -1.150245 1.643343 +v -0.091690 -1.153154 1.619669 +v -0.077831 -1.150628 1.654502 +v -0.070708 -1.157353 1.457228 +v -0.091102 -1.156136 1.463825 +v -0.050513 -1.158018 1.451795 +v -0.038732 -1.155740 1.415815 +v -0.031834 -1.158388 1.446949 +v -0.091493 -1.154838 1.600127 +v -0.129154 -1.152306 1.460366 +v -0.115859 -1.153271 1.451626 +v -0.110463 -1.154954 1.472113 +v -0.130150 -1.152918 1.476988 +v -0.142469 -1.150207 1.451778 +v -0.151630 -1.150135 1.473290 +v -0.054358 -1.151207 1.661309 +v -0.030029 -1.151711 1.664804 +v -0.005886 -1.151872 1.666051 +v -0.046893 -1.152068 1.383360 +v -0.129562 -1.150527 1.432826 +v -0.056631 -1.109866 1.854262 +v -0.028867 -1.110042 1.857170 +v -0.001809 -1.110264 1.857654 +v -0.110182 -1.110232 1.839453 +v -0.084073 -1.110048 1.847902 +v -0.156101 -1.110188 1.819959 +v -0.133959 -1.110226 1.830328 +v -0.198334 -1.110278 1.793611 +v -0.177298 -1.110237 1.807771 +v -0.240743 -1.109975 1.758612 +v -0.219971 -1.110099 1.777294 +v -0.275337 -1.110426 1.715203 +v -0.259194 -1.110190 1.737357 +v -0.301044 -1.110463 1.672433 +v -0.289211 -1.110454 1.693845 +v -0.319742 -1.110613 1.626261 +v -0.311038 -1.110543 1.650103 +v -0.333508 -1.110388 1.572932 +v -0.327672 -1.110476 1.600293 +v -0.335966 -1.110896 1.517522 +v -0.335935 -1.110627 1.544906 +v -0.331620 -1.110977 1.467807 +v -0.334632 -1.110944 1.492092 +v -0.319596 -1.111154 1.419442 +v -0.326577 -1.111071 1.443864 +v -0.299354 -1.110946 1.368132 +v -0.310732 -1.111029 1.393731 +v -0.268757 -1.111462 1.321887 +v -0.284833 -1.111191 1.344039 +v -0.236013 -1.111533 1.284239 +v -0.252727 -1.111509 1.302108 +v -0.197849 -1.111693 1.252190 +v -0.217858 -1.111620 1.267841 +v -0.151268 -1.111440 1.222563 +v -0.175546 -1.111547 1.236591 +v -0.099302 -1.111909 1.203160 +v -0.125340 -1.111668 1.211615 +v -0.050696 -1.111920 1.191976 +v -0.074711 -1.111933 1.196593 +v -0.001007 -1.112024 1.188498 +v -0.026382 -1.111980 1.189392 +v 0.054082 -1.111677 1.191922 +v 0.026196 -1.111832 1.188993 +v 0.107565 -1.112065 1.206808 +v 0.081514 -1.111873 1.198321 +v 0.153435 -1.111988 1.226339 +v 0.131313 -1.112052 1.215956 +v 0.195636 -1.112008 1.252725 +v 0.174606 -1.112013 1.238539 +v 0.238141 -1.111568 1.287844 +v 0.217323 -1.111775 1.269093 +v 0.272685 -1.111871 1.331372 +v 0.256582 -1.111718 1.309167 +v 0.298299 -1.111712 1.374126 +v 0.286515 -1.111809 1.352734 +v 0.316908 -1.111658 1.420247 +v 0.308247 -1.111707 1.396430 +v 0.330630 -1.111155 1.473556 +v 0.324820 -1.111398 1.446186 +v 0.333005 -1.111401 1.529116 +v 0.333019 -1.111271 1.501661 +v 0.328601 -1.111198 1.578756 +v 0.331639 -1.111310 1.554531 +v 0.316557 -1.111113 1.626987 +v 0.323543 -1.111178 1.602643 +v 0.296359 -1.110595 1.678103 +v 0.307729 -1.110845 1.652580 +v 0.265639 -1.110834 1.724476 +v 0.281783 -1.110708 1.702252 +v 0.232905 -1.110642 1.762066 +v 0.249600 -1.110748 1.744245 +v 0.194820 -1.110580 1.794018 +v 0.214773 -1.110629 1.778426 +v 0.148477 -1.110103 1.823484 +v 0.172653 -1.110327 1.809525 +v 0.096397 -1.110388 1.842970 +v 0.122511 -1.110242 1.834465 +v 0.047807 -1.110256 1.854166 +v 0.071799 -1.110337 1.849552 +v 0.023509 -1.110270 1.856755 +v 0.546820 0.035680 2.361688 +v 0.550148 0.036667 2.378095 +v 0.553966 0.038012 2.400018 +v 0.552302 0.073109 2.374360 +v 0.556199 0.075790 2.396147 +v 0.548916 0.071140 2.358055 +v 0.552398 0.106161 2.352019 +v 0.555881 0.109100 2.368157 +v 0.559909 0.113100 2.389716 +v 0.560857 0.144418 2.359531 +v 0.565067 0.149713 2.380774 +v 0.557240 0.140529 2.343625 +v 0.563416 0.174028 2.332917 +v 0.567204 0.178845 2.348528 +v 0.571648 0.185403 2.369367 +v 0.574880 0.212171 2.335222 +v 0.579605 0.219951 2.355573 +v 0.570885 0.206457 2.319970 +v 0.579604 0.237610 2.304855 +v 0.583840 0.244187 2.319689 +v 0.588894 0.253140 2.339471 +v 0.594026 0.274700 2.302030 +v 0.599453 0.284772 2.321165 +v 0.589516 0.267301 2.287673 +v 0.600563 0.295342 2.268522 +v 0.605379 0.303516 2.282350 +v 0.611222 0.314645 2.300763 +v 0.617825 0.330464 2.260775 +v 0.624124 0.342581 2.278397 +v 0.612674 0.321564 2.247529 +v 0.625777 0.345801 2.224815 +v 0.631290 0.355372 2.237432 +v 0.638083 0.368402 2.254198 +v 0.645689 0.378092 2.212471 +v 0.653010 0.391955 2.228322 +v 0.639788 0.367909 2.200526 +v 0.654624 0.387745 2.174807 +v 0.660936 0.398477 2.186041 +v 0.668816 0.413088 2.200923 +v 0.676934 0.416410 2.158308 +v 0.685400 0.431677 2.172173 +v 0.670191 0.405194 2.147821 +v 0.686395 0.420142 2.119732 +v 0.693586 0.431771 2.129441 +v 0.702663 0.447602 2.142248 +v 0.710789 0.444474 2.099620 +v 0.720497 0.460770 2.111333 +v 0.703134 0.432503 2.090714 +v 0.720307 0.442193 2.060945 +v 0.728437 0.454432 2.069027 +v 0.738792 0.471094 2.079618 +v 0.746420 0.461593 2.037851 +v 0.757435 0.478518 2.047300 +v 0.737806 0.449161 2.030609 +v 0.755525 0.453356 1.999893 +v 0.764630 0.465904 2.006285 +v 0.776312 0.482987 2.014576 +v 0.782952 0.467347 1.974523 +v 0.795305 0.484483 1.981650 +v 0.773353 0.454760 1.968987 +v 0.791182 0.453356 1.938080 +v 0.801274 0.465904 1.942762 +v 0.814299 0.482987 1.948724 +v 0.819483 0.461593 1.911196 +v 0.833175 0.478518 1.916000 +v 0.808901 0.449161 1.907364 +v 0.826400 0.442193 1.877029 +v 0.837466 0.454432 1.880020 +v 0.851819 0.471094 1.883682 +v 0.855114 0.444474 1.849427 +v 0.870113 0.460770 1.851967 +v 0.843572 0.432502 1.847259 +v 0.860311 0.420141 1.818241 +v 0.872316 0.431770 1.819606 +v 0.887947 0.447601 1.821052 +v 0.888969 0.416409 1.790739 +v 0.905209 0.431677 1.791126 +v 0.876516 0.405194 1.790152 +v 0.892081 0.387745 1.763166 +v 0.904966 0.398477 1.763006 +v 0.921794 0.413087 1.762377 +v 0.920213 0.378092 1.736576 +v 0.937599 0.391954 1.734978 +v 0.906917 0.367908 1.737447 +v 0.920929 0.345800 1.713159 +v 0.934612 0.355372 1.711615 +v 0.952526 0.368402 1.709101 +v 0.948077 0.330464 1.688272 +v 0.966486 0.342581 1.684903 +v 0.934032 0.321564 1.690445 +v 0.946142 0.295341 1.669451 +v 0.960523 0.303516 1.666697 +v 0.979388 0.314645 1.662537 +v 0.971876 0.274700 1.647017 +v 0.991157 0.284771 1.642135 +v 0.957189 0.267301 1.650301 +v 0.967101 0.237610 1.633118 +v 0.982062 0.244187 1.629359 +v 1.001716 0.253140 1.623829 +v 0.991022 0.212171 1.613826 +v 1.011005 0.219950 1.607727 +v 0.975820 0.206456 1.618004 +v 0.983289 0.174028 1.605056 +v 0.998698 0.178845 1.600520 +v 1.018962 0.185402 1.593933 +v 1.005045 0.144418 1.589516 +v 1.025542 0.149713 1.582526 +v 0.989465 0.140528 1.594349 +v 0.994307 0.106161 1.585955 +v 1.010022 0.109099 1.580890 +v 1.030701 0.113099 1.573584 +v 1.013600 0.073109 1.574687 +v 1.034410 0.075789 1.567153 +v 0.997789 0.071140 1.579919 +v 0.999885 0.035680 1.576285 +v 1.015754 0.036667 1.570953 +v 1.036644 0.038012 1.563282 +v 0.562467 0.046525 2.529792 +v 0.556212 0.047115 2.534839 +v 0.538300 0.048444 2.544006 +v 0.558957 0.093937 2.530012 +v 0.541116 0.096585 2.539022 +v 0.565212 0.092763 2.525066 +v 0.569753 0.138429 2.517195 +v 0.563558 0.140181 2.522045 +v 0.545900 0.144145 2.530920 +v 0.569960 0.185563 2.510973 +v 0.552499 0.190815 2.519560 +v 0.576065 0.183242 2.506249 +v 0.584116 0.226924 2.492284 +v 0.578123 0.229800 2.496842 +v 0.560866 0.236296 2.504992 +v 0.587987 0.272621 2.479747 +v 0.571112 0.280369 2.487567 +v 0.593853 0.269209 2.475399 +v 0.605228 0.309832 2.455695 +v 0.599504 0.313760 2.459793 +v 0.582966 0.322682 2.467061 +v 0.612596 0.352968 2.437108 +v 0.596463 0.363022 2.443777 +v 0.618154 0.348548 2.433292 +v 0.632556 0.385111 2.408318 +v 0.627188 0.389996 2.411825 +v 0.611521 0.401133 2.417841 +v 0.643185 0.424625 2.384108 +v 0.627996 0.436764 2.389361 +v 0.648356 0.419305 2.380950 +v 0.665435 0.450908 2.351327 +v 0.660489 0.456630 2.354116 +v 0.645817 0.469697 2.358537 +v 0.678988 0.485822 2.322040 +v 0.664869 0.499739 2.325568 +v 0.683697 0.479733 2.319649 +v 0.703040 0.505598 2.286112 +v 0.698578 0.512016 2.288078 +v 0.685044 0.526698 2.290658 +v 0.719134 0.535057 2.252444 +v 0.706175 0.550390 2.253987 +v 0.723337 0.528350 2.250923 +v 0.744464 0.547839 2.214294 +v 0.740530 0.554794 2.215350 +v 0.728179 0.570689 2.215826 +v 0.762633 0.571116 2.177031 +v 0.750952 0.587503 2.176440 +v 0.766290 0.563957 2.176456 +v 0.788683 0.576593 2.137639 +v 0.785313 0.583914 2.137723 +v 0.774390 0.600738 2.136086 +v 0.808438 0.593124 2.097677 +v 0.798328 0.610310 2.094988 +v 0.811509 0.585682 2.098088 +v 0.834631 0.591157 2.058046 +v 0.831864 0.598676 2.057133 +v 0.822538 0.616093 2.053336 +v 0.855439 0.600545 2.016339 +v 0.846922 0.618098 2.011426 +v 0.857895 0.592992 2.017755 +v 0.881185 0.591173 1.977478 +v 0.879060 0.598727 1.975565 +v 0.871335 0.616299 1.969512 +v 0.902702 0.593295 1.935120 +v 0.895522 0.610655 1.927802 +v 0.904452 0.585747 1.937509 +v 0.927294 0.576665 1.897960 +v 0.925873 0.584116 1.895075 +v 0.919436 0.601253 1.886611 +v 0.948264 0.571193 1.855628 +v 0.942808 0.588091 1.846140 +v 0.949479 0.563974 1.859036 +v 0.971252 0.547843 1.821173 +v 0.970221 0.554808 1.817247 +v 0.965024 0.571004 1.806503 +v 0.991599 0.535062 1.780147 +v 0.986747 0.550545 1.768241 +v 0.992377 0.528351 1.784544 +v 1.012673 0.505598 1.749355 +v 1.012149 0.512019 1.744510 +v 1.007865 0.526820 1.731566 +v 1.031733 0.485822 1.710547 +v 1.027846 0.499794 1.696585 +v 1.032015 0.479732 1.715818 +v 1.050283 0.450904 1.684146 +v 1.050232 0.456628 1.678473 +v 1.046768 0.469716 1.663569 +v 1.067534 0.424623 1.648479 +v 1.064562 0.436793 1.632715 +v 1.067369 0.419301 1.654529 +v 1.083161 0.385108 1.627154 +v 1.083528 0.389997 1.620757 +v 1.081064 0.401191 1.604205 +v 1.098116 0.352971 1.595469 +v 1.096152 0.363126 1.578200 +v 1.097566 0.348545 1.602183 +v 1.110490 0.309830 1.579778 +v 1.111205 0.313764 1.572780 +v 1.109684 0.322808 1.554864 +v 1.122718 0.272625 1.552821 +v 1.121448 0.280466 1.534323 +v 1.121859 0.269207 1.560069 +v 1.131599 0.226923 1.543187 +v 1.132583 0.229804 1.535724 +v 1.131616 0.236417 1.516735 +v 1.140738 0.185567 1.521585 +v 1.140023 0.190910 1.502190 +v 1.139652 0.183241 1.529225 +v 1.145965 0.138428 1.518280 +v 1.147130 0.140185 1.510501 +v 1.146561 0.144216 1.490786 +v 1.151723 0.093940 1.502530 +v 1.151156 0.096631 1.482583 +v 1.150504 0.092762 1.510409 +v 1.153237 0.046524 1.505671 +v 1.154491 0.047115 1.497732 +v 1.153946 0.048463 1.477646 +v 0.439493 0.055433 2.589529 +v 0.373445 0.059710 2.614167 +v 0.298435 0.064203 2.636805 +v 0.376973 0.119059 2.608145 +v 0.302202 0.128009 2.630250 +v 0.442808 0.110539 2.584023 +v 0.448212 0.164953 2.574628 +v 0.382863 0.177699 2.598220 +v 0.308501 0.191047 2.619510 +v 0.390952 0.235215 2.584126 +v 0.317286 0.252953 2.604653 +v 0.455821 0.218393 2.561776 +v 0.465378 0.270431 2.545046 +v 0.401353 0.291333 2.566368 +v 0.328377 0.313227 2.585290 +v 0.413872 0.345633 2.544732 +v 0.341878 0.371657 2.562165 +v 0.477098 0.320898 2.525162 +v 0.490655 0.369324 2.501678 +v 0.428563 0.397876 2.519648 +v 0.357650 0.427832 2.535173 +v 0.445165 0.447599 2.490887 +v 0.375497 0.481296 2.504237 +v 0.506099 0.415505 2.475042 +v 0.523385 0.459191 2.445474 +v 0.463775 0.494675 2.459047 +v 0.395470 0.531898 2.469953 +v 0.484079 0.538621 2.423922 +v 0.417115 0.579242 2.432320 +v 0.542260 0.500004 2.412907 +v 0.562685 0.537741 2.377669 +v 0.506118 0.579330 2.386039 +v 0.440217 0.623237 2.391911 +v 0.468547 0.660335 2.348677 +v 0.531056 0.615206 2.345536 +v 0.584891 0.571877 2.340014 +v 0.609067 0.601844 2.300139 +v 0.560148 0.644749 2.302724 +v 0.506251 0.687505 2.303291 +v 0.549135 0.705985 2.256584 +v 0.592327 0.668001 2.258232 +v 0.634805 0.627493 2.258352 +v 0.661814 0.648781 2.215101 +v 0.626689 0.685184 2.212907 +v 0.593296 0.717395 2.209829 +v 0.636126 0.724348 2.162760 +v 0.661177 0.697750 2.166645 +v 0.689448 0.665968 2.170549 +v 0.717237 0.679476 2.125036 +v 0.694164 0.707603 2.119825 +v 0.675119 0.729621 2.115332 +v 0.710771 0.733236 2.067426 +v 0.725709 0.714551 2.072396 +v 0.744991 0.689123 2.078688 +v 0.772728 0.694909 2.031795 +v 0.756010 0.718521 2.024394 +v 0.743645 0.735240 2.018884 +v 0.773795 0.736127 1.969199 +v 0.784974 0.719966 1.975664 +v 0.800290 0.696912 1.984519 +v 0.827488 0.695191 1.937007 +v 0.812400 0.719241 1.925980 +v 0.801195 0.736323 1.917827 +v 0.838634 0.715867 1.875474 +v 0.826406 0.735196 1.864636 +v 0.854302 0.689658 1.889513 +v 0.880621 0.680156 1.842249 +v 0.863961 0.709318 1.824240 +v 0.849932 0.732058 1.809451 +v 0.888250 0.699372 1.772335 +v 0.871878 0.726558 1.752152 +v 0.906207 0.666634 1.795420 +v 0.931262 0.649355 1.749372 +v 0.911686 0.686068 1.719952 +v 0.892312 0.718332 1.692663 +v 0.934395 0.668254 1.668094 +v 0.911725 0.705733 1.632229 +v 0.955507 0.627988 1.704489 +v 0.978847 0.602346 1.661232 +v 0.956888 0.645064 1.617852 +v 0.930882 0.687324 1.572131 +v 0.979364 0.615896 1.570891 +v 0.951194 0.660789 1.516553 +v 1.001454 0.572552 1.620247 +v 1.023127 0.538499 1.582111 +v 1.002038 0.580158 1.528871 +v 0.974329 0.623988 1.469669 +v 1.024038 0.539504 1.490762 +v 0.997913 0.580218 1.428689 +v 1.043518 0.500751 1.546739 +v 1.062428 0.459939 1.514046 +v 1.044457 0.495558 1.455534 +v 1.019796 0.532920 1.390804 +v 1.062828 0.448439 1.423418 +v 1.039646 0.482286 1.356263 +v 1.079550 0.416240 1.484226 +v 1.094919 0.369983 1.457474 +v 1.079425 0.398616 1.394595 +v 1.057530 0.428715 1.325261 +v 1.093957 0.346322 1.369251 +v 1.073070 0.372438 1.298031 +v 1.108502 0.321476 1.433937 +v 1.120126 0.270980 1.413777 +v 1.106616 0.291959 1.347511 +v 1.086616 0.313960 1.274657 +v 1.116771 0.235714 1.329584 +v 1.097733 0.253518 1.255347 +v 1.129716 0.218812 1.397108 +v 1.137163 0.165286 1.384050 +v 1.124980 0.178082 1.315490 +v 1.106415 0.191508 1.240218 +v 1.130833 0.119337 1.305362 +v 1.112636 0.128325 1.229346 +v 1.142760 0.110777 1.374629 +v 1.145835 0.055551 1.368996 +v 1.134280 0.059849 1.299281 +v 1.116398 0.064360 1.222796 +v 0.214019 0.068827 2.655933 +v 0.124293 0.073242 2.668936 +v 0.218059 0.137228 2.648902 +v 0.128601 0.146039 2.661522 +v 0.224769 0.204777 2.637229 +v 0.135765 0.217958 2.649271 +v 0.234127 0.271090 2.621125 +v 0.145721 0.288547 2.632153 +v 0.246083 0.335770 2.600651 +v 0.158413 0.357355 2.610233 +v 0.260529 0.398395 2.575818 +v 0.173777 0.424012 2.583812 +v 0.277400 0.458589 2.546818 +v 0.191712 0.488067 2.552919 +v 0.296561 0.515950 2.513760 +v 0.211831 0.548527 2.518103 +v 0.317941 0.570178 2.476966 +v 0.233811 0.604565 2.480229 +v 0.256327 0.656678 2.439645 +v 0.340549 0.621108 2.436902 +v 0.363302 0.668403 2.393877 +v 0.277976 0.705173 2.396592 +v 0.307760 0.752674 2.345748 +v 0.395831 0.706490 2.348869 +v 0.915956 0.706333 1.457419 +v 0.938375 0.668974 1.404567 +v 0.870362 0.752778 1.386440 +v 0.898334 0.706559 1.331697 +v 0.963771 0.622119 1.360613 +v 0.923595 0.659060 1.287684 +v 0.987022 0.571286 1.320035 +v 0.947510 0.606756 1.246073 +v 1.008350 0.517027 1.283003 +v 0.969747 0.550013 1.207428 +v 1.027592 0.459630 1.249749 +v 0.989967 0.489207 1.172320 +v 1.044374 0.399335 1.220536 +v 1.007862 0.425043 1.141223 +v 1.058662 0.336560 1.195542 +v 1.023321 0.358310 1.114534 +v 1.070642 0.271782 1.174824 +v 1.035870 0.289290 1.092559 +v 1.079920 0.205299 1.158619 +v 1.045838 0.218542 1.075279 +v 1.086627 0.137570 1.146956 +v 1.053037 0.146452 1.062840 +v 1.090724 0.069000 1.139914 +v 1.057287 0.073448 1.055389 +v 0.033771 0.077215 2.674995 +v -0.057003 0.080699 2.673743 +v 0.038307 0.153953 2.667125 +v -0.052262 0.160903 2.665536 +v 0.045842 0.229740 2.654053 +v -0.044393 0.240144 2.652028 +v 0.056325 0.304139 2.635980 +v -0.033446 0.317953 2.633277 +v 0.069708 0.376725 2.613049 +v -0.019474 0.393798 2.609185 +v 0.085882 0.446958 2.585095 +v -0.002573 0.467264 2.580077 +v 0.104781 0.514515 2.552591 +v 0.017162 0.537821 2.545953 +v 0.037628 0.600521 2.510198 +v 0.125243 0.576595 2.517132 +v 0.146170 0.630711 2.480968 +v 0.056748 0.650971 2.477149 +v 0.074970 0.693747 2.445245 +v 0.166970 0.679318 2.443929 +v 0.880790 0.685743 1.210869 +v 0.903146 0.635659 1.171750 +v 0.834356 0.703857 1.132559 +v 0.854150 0.658408 1.097860 +v 0.925214 0.578821 1.133297 +v 0.875193 0.603510 1.061105 +v 0.946183 0.515776 1.097002 +v 0.896623 0.539236 1.024200 +v 0.965112 0.448155 1.064192 +v 0.916311 0.468491 0.989958 +v 0.981177 0.377707 1.036160 +v 0.933279 0.394916 0.960566 +v 0.994630 0.305015 1.012897 +v 0.947159 0.318851 0.936353 +v 1.005008 0.230391 0.994748 +v 0.958110 0.240864 0.917330 +v 1.012535 0.154384 0.981664 +v 0.965982 0.161402 0.903653 +v 1.017121 0.077433 0.973758 +v 0.970713 0.080948 0.895425 +v -0.147474 0.083703 2.665618 +v -0.237048 0.086176 2.650222 +v -0.142562 0.166897 2.657137 +v -0.232002 0.171833 2.641521 +v -0.134407 0.249083 2.643087 +v -0.223629 0.256467 2.627129 +v -0.123054 0.329740 2.623466 +v -0.211952 0.339527 2.606958 +v -0.108577 0.408408 2.598503 +v -0.197066 0.420545 2.581288 +v -0.091065 0.484599 2.568305 +v -0.179046 0.498991 2.550166 +v -0.070622 0.557892 2.533135 +v -0.158013 0.574430 2.513885 +v -0.137470 0.637764 2.477712 +v -0.050143 0.620965 2.497156 +v -0.032684 0.667662 2.466698 +v -0.121367 0.681502 2.449715 +v -0.107796 0.714342 2.426468 +v -0.016979 0.705097 2.439681 +v 0.783621 0.715344 1.055044 +v 0.800466 0.675225 1.025307 +v 0.727475 0.722534 0.981036 +v 0.741801 0.687716 0.955765 +v 0.819958 0.624062 0.991373 +v 0.759465 0.640606 0.924995 +v 0.841483 0.559387 0.954404 +v 0.780882 0.575949 0.888224 +v 0.861820 0.485950 0.918956 +v 0.802014 0.500449 0.851592 +v 0.879337 0.409597 0.888527 +v 0.820006 0.421792 0.820305 +v 0.893856 0.330746 0.863340 +v 0.834890 0.340566 0.794430 +v 0.905193 0.249843 0.843629 +v 0.846703 0.257302 0.774019 +v 0.913278 0.167403 0.829506 +v 0.855024 0.172398 0.759494 +v 0.918218 0.083961 0.820950 +v 0.860042 0.086459 0.750744 +v -0.325238 0.088133 2.628057 +v -0.411396 0.089531 2.598856 +v -0.320105 0.175748 2.619231 +v -0.406192 0.178535 2.589888 +v -0.311512 0.262273 2.604352 +v -0.397466 0.266432 2.574769 +v -0.299569 0.347202 2.583686 +v -0.385387 0.352752 2.553901 +v -0.284373 0.430066 2.557463 +v -0.369948 0.436920 2.527201 +v -0.265953 0.510278 2.525610 +v -0.351289 0.518468 2.494951 +v -0.244483 0.587458 2.488565 +v -0.329455 0.596806 2.457168 +v -0.223831 0.651198 2.452285 +v -0.308656 0.660834 2.420713 +v -0.208593 0.692718 2.425557 +v -0.293998 0.701048 2.394986 +v -0.282946 0.728913 2.375908 +v -0.196527 0.722513 2.404879 +v 0.597709 0.733008 0.851062 +v 0.665403 0.728311 0.912870 +v 0.677816 0.697455 0.890921 +v 0.608921 0.704834 0.831276 +v 0.694225 0.653693 0.862473 +v 0.624345 0.663092 0.804485 +v 0.715585 0.589080 0.825791 +v 0.645692 0.598474 0.767760 +v 0.737088 0.511787 0.788436 +v 0.667584 0.519978 0.729776 +v 0.755582 0.431399 0.756362 +v 0.686343 0.438283 0.697231 +v 0.770756 0.348298 0.729961 +v 0.701907 0.353924 0.670255 +v 0.782709 0.263103 0.709207 +v 0.713984 0.267326 0.649259 +v 0.791337 0.176309 0.694250 +v 0.722759 0.179140 0.634052 +v 0.796476 0.088420 0.685303 +v 0.727943 0.089835 0.625017 +v -0.495104 0.090389 2.563163 +v -0.575697 0.090675 2.520858 +v -0.489878 0.180253 2.554135 +v -0.570467 0.180822 2.511793 +v -0.481064 0.268993 2.538858 +v -0.561614 0.269836 2.496446 +v -0.468899 0.356153 2.517811 +v -0.549440 0.357276 2.475341 +v -0.453273 0.441081 2.490734 +v -0.533779 0.442479 2.448193 +v -0.434450 0.523395 2.458148 +v -0.514945 0.525083 2.415543 +v -0.412411 0.602457 2.419971 +v -0.492846 0.604397 2.377234 +v -0.391492 0.666658 2.383491 +v -0.471824 0.668654 2.340793 +v -0.377158 0.706009 2.358452 +v -0.457543 0.707692 2.316036 +v -0.447221 0.733902 2.298141 +v -0.366719 0.732699 2.340375 +v 0.457827 0.712207 0.729217 +v 0.447248 0.738703 0.747556 +v 0.524685 0.736947 0.796134 +v 0.535335 0.710080 0.777464 +v 0.472950 0.671129 0.703001 +v 0.550425 0.669009 0.751254 +v 0.571784 0.604174 0.714374 +v 0.494307 0.606135 0.665977 +v 0.593929 0.524966 0.675979 +v 0.516545 0.526689 0.627428 +v 0.612805 0.442438 0.643224 +v 0.535482 0.443880 0.594600 +v 0.628520 0.357283 0.615985 +v 0.551252 0.358450 0.567262 +v 0.640728 0.269864 0.594792 +v 0.563498 0.270739 0.546032 +v 0.649624 0.180852 0.579385 +v 0.572416 0.181438 0.530574 +v 0.654865 0.090693 0.570274 +v 0.577677 0.090986 0.521454 +v -0.652825 0.090411 2.472503 +v -0.725840 0.089576 2.418133 +v -0.647614 0.180294 2.463441 +v -0.720685 0.178627 2.409142 +v -0.638782 0.269046 2.448134 +v -0.711972 0.266574 2.394023 +v -0.626642 0.356219 2.427051 +v -0.699962 0.352946 2.373126 +v -0.611034 0.441169 2.399978 +v -0.684578 0.437163 2.346389 +v -0.592258 0.523511 2.367382 +v -0.665913 0.518692 2.313980 +v -0.570250 0.602597 2.329199 +v -0.644153 0.597080 2.276178 +v -0.549147 0.666830 2.292829 +v -0.622990 0.661251 2.239873 +v -0.534642 0.706222 2.267872 +v -0.607961 0.701785 2.214115 +v -0.524045 0.732976 2.249514 +v -0.596733 0.730046 2.194596 +v 0.293852 0.705443 0.649318 +v 0.282341 0.733679 0.668906 +v 0.366516 0.737037 0.704655 +v 0.377293 0.710338 0.686176 +v 0.309423 0.663467 0.622376 +v 0.392473 0.669188 0.659907 +v 0.413737 0.604332 0.622895 +v 0.330589 0.598789 0.585376 +v 0.435912 0.525128 0.584450 +v 0.352529 0.520267 0.547368 +v 0.454839 0.442593 0.551668 +v 0.371285 0.438487 0.514915 +v 0.470545 0.357399 0.524441 +v 0.386826 0.354065 0.487993 +v 0.482768 0.269944 0.503285 +v 0.398975 0.267443 0.466978 +v 0.491645 0.180902 0.487889 +v 0.407763 0.179225 0.451730 +v 0.496902 0.090717 0.478802 +v 0.412998 0.089879 0.442697 +v -0.794459 0.088197 2.358321 +v -0.858079 0.086262 2.293239 +v -0.789346 0.175867 2.349411 +v -0.853086 0.172009 2.284521 +v -0.780776 0.262455 2.334527 +v -0.844831 0.256735 2.270071 +v -0.768884 0.347455 2.313857 +v -0.833166 0.339865 2.249810 +v -0.753808 0.430392 2.287581 +v -0.818349 0.420945 2.224019 +v -0.735478 0.510684 2.255702 +v -0.800457 0.499487 2.192847 +v -0.714077 0.587864 2.218479 +v -0.779503 0.574949 2.156395 +v -0.692927 0.652027 2.182237 +v -0.758303 0.639019 2.120105 +v -0.677023 0.694589 2.154942 +v -0.741351 0.684625 2.090779 +v -0.664721 0.725152 2.133434 +v -0.727386 0.718675 2.066306 +v 0.119331 0.689223 0.596428 +v 0.103945 0.725548 0.622706 +v 0.194486 0.730325 0.641782 +v 0.207619 0.698583 0.619476 +v 0.137390 0.641416 0.565323 +v 0.224221 0.654296 0.590732 +v 0.245388 0.589556 0.553630 +v 0.158616 0.576546 0.528112 +v 0.266945 0.512148 0.516401 +v 0.179745 0.500909 0.491577 +v 0.285460 0.431700 0.484325 +v 0.197864 0.422238 0.460169 +v 0.300753 0.348571 0.457864 +v 0.212816 0.340909 0.434364 +v 0.312764 0.263326 0.437043 +v 0.224556 0.257530 0.414033 +v 0.321391 0.176454 0.422102 +v 0.232980 0.172558 0.399496 +v 0.326555 0.088490 0.413211 +v 0.238055 0.086542 0.390726 +v -0.916484 0.083803 2.223469 +v -0.969144 0.080818 2.149305 +v -0.911565 0.167090 2.214938 +v -0.964431 0.161144 2.141097 +v -0.903514 0.249381 2.200856 +v -0.956707 0.240513 2.127527 +v -0.892237 0.330149 2.181210 +v -0.945804 0.318396 2.108553 +v -0.877890 0.408926 2.156174 +v -0.931985 0.394370 2.084398 +v -0.860437 0.485177 2.125818 +v -0.915189 0.467921 2.055133 +v -0.840280 0.558596 2.090524 +v -0.895559 0.538601 2.020950 +v -0.819031 0.622565 2.054149 +v -0.874490 0.602217 1.984685 +v -0.800360 0.671777 2.021949 +v -0.854383 0.655210 1.949719 +v -0.784113 0.710911 1.993338 +v -0.835067 0.699764 1.916256 +v -0.059945 0.659754 0.569494 +v -0.080535 0.706063 0.604803 +v 0.011774 0.718146 0.610820 +v 0.029744 0.676755 0.580058 +v -0.038517 0.604482 0.532665 +v 0.049586 0.624966 0.545910 +v 0.070905 0.560050 0.508618 +v -0.017229 0.539975 0.495623 +v 0.091438 0.486559 0.473163 +v 0.002583 0.469192 0.461267 +v 0.109026 0.410094 0.442776 +v 0.019554 0.395471 0.431923 +v 0.123574 0.331134 0.417614 +v 0.033590 0.319349 0.407582 +v 0.134988 0.250163 0.397792 +v 0.044586 0.241206 0.388714 +v 0.143185 0.167628 0.383633 +v 0.052493 0.161623 0.375090 +v 0.148116 0.084068 0.375133 +v 0.057256 0.081062 0.366811 +v -1.015904 0.077341 2.071328 +v -1.056324 0.073381 1.989928 +v -1.011332 0.154201 2.063436 +v -1.052085 0.146320 1.982486 +v -1.003827 0.230121 2.050375 +v -1.045051 0.218378 1.970125 +v -0.993479 0.304663 2.032255 +v -1.035102 0.289076 1.952864 +v -0.980195 0.377330 2.009095 +v -1.022570 0.358047 1.930907 +v -0.964169 0.447719 1.981102 +v -1.007276 0.424796 1.904296 +v -0.945407 0.515354 1.948391 +v -0.989538 0.488994 1.873269 +v -0.924715 0.578025 1.912505 +v -0.969424 0.549708 1.838277 +v -0.903276 0.633747 1.875151 +v -0.947425 0.606203 1.799928 +v -0.880980 0.683718 1.837288 +v -0.923162 0.659070 1.759362 +v -0.148514 0.636890 0.563737 +v -0.171442 0.687428 0.603113 +v -0.235202 0.607885 0.562354 +v -0.259594 0.660270 0.603979 +v -0.212825 0.551024 0.523652 +v -0.126198 0.579875 0.525174 +v -0.105219 0.516650 0.488828 +v -0.192530 0.490142 0.488414 +v -0.086252 0.448866 0.456085 +v -0.174540 0.425867 0.457272 +v -0.070017 0.378377 0.427901 +v -0.159121 0.358949 0.430651 +v -0.056579 0.305493 0.404800 +v -0.146380 0.289849 0.408581 +v -0.046052 0.230779 0.386569 +v -0.136386 0.218953 0.391325 +v -0.038485 0.154657 0.373382 +v -0.129195 0.146713 0.378960 +v -0.033928 0.077568 0.365471 +v -0.124871 0.073582 0.371475 +v -1.090204 0.068968 1.905645 +v -1.117272 0.064125 1.818990 +v -1.086112 0.137506 1.898607 +v -1.113544 0.127859 1.812470 +v -1.079413 0.205203 1.886951 +v -1.107423 0.190825 1.801656 +v -1.070218 0.271675 1.870780 +v -1.098805 0.252621 1.786589 +v -1.058329 0.336454 1.850096 +v -1.087776 0.312863 1.767357 +v -1.044152 0.399249 1.825140 +v -1.074392 0.371176 1.744090 +v -1.027419 0.459550 1.795946 +v -1.059034 0.427313 1.716975 +v -1.008320 0.517013 1.762722 +v -1.041271 0.480748 1.686079 +v -0.987126 0.571337 1.725698 +v -1.021606 0.531290 1.651661 +v -0.999852 0.578654 1.614049 +v -0.963616 0.622663 1.685680 +v -0.896064 0.708709 1.717703 +v -0.937262 0.670889 1.643456 +v -0.976235 0.622746 1.573646 +v -0.914526 0.708978 1.591541 +v -0.953511 0.659172 1.526689 +v -0.866319 0.756874 1.665364 +v -0.319811 0.753627 0.699670 +v -0.285943 0.707753 0.648019 +v -0.371745 0.668073 0.649317 +v -0.409467 0.703346 0.695045 +v -0.451295 0.619586 0.651070 +v -0.484258 0.653364 0.694415 +v -0.423788 0.578574 0.610178 +v -0.343675 0.622797 0.605412 +v -0.319251 0.572471 0.564898 +v -0.400679 0.532228 0.572342 +v -0.297810 0.518112 0.527808 +v -0.380739 0.481656 0.537911 +v -0.278596 0.460571 0.494478 +v -0.362917 0.428198 0.506827 +v -0.261669 0.400144 0.465296 +v -0.347139 0.371986 0.479791 +v -0.247182 0.337278 0.440251 +v -0.333668 0.313546 0.456507 +v -0.235190 0.272329 0.419600 +v -0.322572 0.253215 0.437109 +v -0.225803 0.205725 0.403355 +v -0.313813 0.191268 0.422103 +v -0.219070 0.137868 0.391581 +v -0.307509 0.128158 0.411340 +v -0.215016 0.069149 0.384498 +v -0.303739 0.064278 0.404770 +v -1.137546 0.058893 1.730552 +v -1.150378 0.053505 1.644117 +v -1.134111 0.117426 1.724558 +v -1.147391 0.106695 1.638685 +v -1.128424 0.175242 1.714606 +v -1.142211 0.159225 1.629636 +v -1.120540 0.231995 1.700768 +v -1.134969 0.210775 1.617048 +v -1.110472 0.287332 1.683111 +v -1.125779 0.261038 1.600994 +v -1.098212 0.340896 1.661742 +v -1.114640 0.309698 1.581577 +v -1.083981 0.392396 1.636803 +v -1.101811 0.356511 1.558913 +v -1.067630 0.441447 1.608432 +v -1.086926 0.401058 1.533134 +v -1.049584 0.487865 1.576832 +v -1.070432 0.443171 1.504408 +v -1.029724 0.531286 1.542183 +v -1.052397 0.482594 1.472914 +v -1.008134 0.571410 1.504701 +v -1.032881 0.519062 1.438835 +v -0.986172 0.606266 1.462974 +v -1.012206 0.551866 1.401978 +v -0.934777 0.683831 1.469370 +v -0.964825 0.633706 1.415569 +v -0.990747 0.580326 1.362145 +v -0.943527 0.655333 1.364934 +v -0.968317 0.604617 1.320158 +v -0.917081 0.700126 1.407359 +v -0.859897 0.748141 1.307996 +v -0.843984 0.771514 1.326396 +v -0.825967 0.771420 1.260738 +v -0.840009 0.750830 1.246527 +v -0.877768 0.720499 1.287000 +v -0.855474 0.726835 1.230727 +v -0.817671 0.752158 1.188879 +v -0.831945 0.730558 1.176549 +v -0.804451 0.771399 1.200273 +v -0.780019 0.770583 1.143181 +v -0.793581 0.751508 1.133558 +v -0.807561 0.731077 1.123594 +v -0.766756 0.750191 1.080546 +v -0.781445 0.729691 1.072142 +v -0.752015 0.769977 1.088983 +v -0.719595 0.770329 1.037361 +v -0.736163 0.749442 1.029900 +v -0.752716 0.727680 1.022510 +v -0.720384 0.725175 0.973472 +v -0.700940 0.748765 0.979752 +v -0.682081 0.770737 0.986318 +v -0.638495 0.769974 0.933968 +v -0.659824 0.747255 0.928457 +v -0.683213 0.722098 0.923909 +v -0.643737 0.716867 0.875560 +v -0.615104 0.744362 0.878733 +v -0.589954 0.768550 0.883401 +v -0.565262 0.695502 0.785244 +v -0.523716 0.677999 0.739560 +v -0.581411 0.630440 0.740806 +v -0.612668 0.652990 0.784152 +v -0.636944 0.579855 0.745047 +v -0.661572 0.604374 0.785424 +v -0.613391 0.551376 0.706414 +v -0.551614 0.602786 0.698537 +v -0.524502 0.569624 0.658287 +v -0.591417 0.519051 0.669819 +v -0.571144 0.483119 0.635606 +v -0.500427 0.531476 0.620432 +v -0.479587 0.488714 0.585633 +v -0.552740 0.443857 0.604056 +v -0.461273 0.442255 0.554054 +v -0.536140 0.401709 0.575288 +v -0.444900 0.393145 0.525574 +v -0.521278 0.357109 0.549406 +v -0.430414 0.341551 0.500712 +v -0.508157 0.310278 0.526723 +v -0.418111 0.287941 0.479159 +v -0.496888 0.261519 0.507356 +v -0.407818 0.232472 0.461634 +v -0.487648 0.211196 0.491178 +v -0.399820 0.175623 0.447719 +v -0.480313 0.159527 0.478689 +v -0.394071 0.117691 0.437702 +v -0.475103 0.106906 0.469569 +v -0.390598 0.059026 0.431707 +v -0.471912 0.053613 0.464203 +v -1.156514 0.048261 1.563656 +v -1.157152 0.043115 1.487797 +v -1.153752 0.096231 1.558744 +v -1.154638 0.085965 1.483405 +v -1.149143 0.143617 1.550581 +v -1.150366 0.128277 1.476114 +v -1.142510 0.190096 1.539224 +v -1.144535 0.169807 1.465971 +v -1.134262 0.235434 1.524741 +v -1.137244 0.210319 1.453021 +v -1.124204 0.279316 1.507224 +v -1.128259 0.249518 1.437371 +v -1.112673 0.321541 1.486767 +v -1.117888 0.287212 1.419087 +v -1.099257 0.361718 1.463516 +v -1.105931 0.323108 1.398315 +v -1.084370 0.399686 1.437596 +v -1.092700 0.357042 1.375150 +v -1.068094 0.435217 1.409173 +v -1.078193 0.388789 1.349748 +v -1.050488 0.468076 1.378413 +v -1.062353 0.418093 1.322285 +v -1.031659 0.498065 1.345511 +v -1.045468 0.444845 1.292905 +v -1.011703 0.524981 1.310665 +v -1.027671 0.468891 1.261771 +v -0.990681 0.548633 1.274112 +v -1.009009 0.490067 1.229088 +v -0.945257 0.625241 1.276714 +v -0.968891 0.568954 1.236031 +v -0.989419 0.508147 1.195111 +v -0.946298 0.585734 1.196707 +v -0.969279 0.523151 1.159974 +v -0.921124 0.641953 1.232331 +v -0.896475 0.655126 1.187281 +v -0.923181 0.598940 1.156333 +v -0.948545 0.534891 1.123948 +v -0.899469 0.608370 1.115247 +v -0.927479 0.543375 1.087204 +v -0.871213 0.664423 1.141788 +v -0.845595 0.669741 1.095954 +v -0.875643 0.614164 1.073553 +v -0.906088 0.548474 1.050021 +v -0.851503 0.616073 1.031675 +v -0.884567 0.550201 1.012601 +v -0.819656 0.671275 1.050057 +v -0.793420 0.669209 1.004381 +v -0.827426 0.614224 0.989755 +v -0.863104 0.548568 0.975140 +v -0.803418 0.608542 0.948138 +v -0.841648 0.543484 0.937983 +v -0.766886 0.663628 0.958987 +v -0.739998 0.654579 0.913962 +v -0.779776 0.599153 0.906984 +v -0.820522 0.535084 0.901239 +v -0.756547 0.586058 0.866610 +v -0.799844 0.523427 0.865130 +v -0.713087 0.641691 0.869906 +v -0.687039 0.625048 0.826959 +v -0.733885 0.569331 0.827266 +v -0.779567 0.508459 0.830026 +v -0.711895 0.549061 0.789227 +v -0.759991 0.490396 0.795996 +v -0.690874 0.525478 0.752573 +v -0.741118 0.469261 0.763366 +v -0.670768 0.498604 0.717712 +v -0.723143 0.445247 0.732259 +v -0.651773 0.468644 0.684798 +v -0.706213 0.418510 0.702832 +v -0.634001 0.435793 0.654031 +v -0.690402 0.389206 0.675282 +v -0.617569 0.400246 0.625606 +v -0.675816 0.357507 0.649778 +v -0.602591 0.362244 0.599663 +v -0.662386 0.323538 0.626674 +v -0.589179 0.322019 0.576346 +v -0.650374 0.287594 0.605899 +v -0.577330 0.279783 0.555916 +v -0.639831 0.249891 0.587588 +v -0.567160 0.235817 0.538454 +v -0.630732 0.210621 0.572005 +v -0.558810 0.190430 0.523911 +v -0.623235 0.170072 0.559079 +v -0.552319 0.143877 0.512407 +v -0.617423 0.128489 0.548847 +v -0.547505 0.096397 0.504402 +v -0.613165 0.086096 0.541609 +v -0.544655 0.048346 0.499498 +v -0.610634 0.043181 0.537204 +v -1.153074 0.038008 1.415235 +v -1.144922 0.033051 1.347212 +v -1.150891 0.075785 1.411360 +v -1.142991 0.065899 1.343846 +v -1.147113 0.113086 1.404938 +v -1.139796 0.098342 1.338252 +v -1.141936 0.149692 1.395999 +v -1.135234 0.130167 1.330492 +v -1.135454 0.185392 1.384581 +v -1.129526 0.161197 1.320571 +v -1.127576 0.219952 1.370777 +v -1.122780 0.191262 1.308543 +v -1.118355 0.253158 1.354663 +v -1.114735 0.220130 1.294532 +v -1.107830 0.284800 1.336350 +v -1.105628 0.247654 1.278595 +v -1.096119 0.314693 1.315935 +v -1.095334 0.273620 1.260867 +v -1.083199 0.342629 1.293569 +v -1.084317 0.297971 1.241365 +v -1.069355 0.368493 1.269339 +v -1.072202 0.320439 1.220312 +v -1.054632 0.392128 1.243401 +v -1.059190 0.340916 1.197816 +v -1.038829 0.413272 1.215986 +v -1.045674 0.359373 1.173907 +v -1.022397 0.431935 1.187170 +v -1.031261 0.375548 1.148890 +v -1.005139 0.447874 1.157219 +v -1.016338 0.389436 1.122815 +v -0.987463 0.461127 1.126217 +v -1.000817 0.400892 1.095918 +v -0.969098 0.471431 1.094502 +v -0.984909 0.409879 1.068319 +v -0.950466 0.478872 1.062148 +v -0.968751 0.416367 1.040168 +v -0.931635 0.483375 1.029368 +v -0.952400 0.420291 1.011655 +v -0.912690 0.484906 0.996379 +v -0.935928 0.421620 0.982973 +v -0.893740 0.483440 0.963386 +v -0.919433 0.420330 0.954301 +v -0.874906 0.478999 0.930591 +v -0.903018 0.416444 0.925815 +v -0.856326 0.471612 0.898180 +v -0.886813 0.409989 0.897675 +v -0.838097 0.461325 0.866361 +v -0.870952 0.401032 0.870025 +v -0.820161 0.448098 0.835476 +v -0.855499 0.389602 0.843062 +v -0.802939 0.432190 0.805461 +v -0.840451 0.375734 0.817029 +v -0.786314 0.413570 0.776696 +v -0.826174 0.359627 0.791863 +v -0.770612 0.392477 0.749140 +v -0.812279 0.341177 0.768134 +v -0.755572 0.368848 0.723328 +v -0.799335 0.320694 0.745568 +v -0.741548 0.342975 0.699153 +v -0.787184 0.298214 0.724507 +v -0.728658 0.315018 0.676731 +v -0.775939 0.273889 0.705054 +v -0.716972 0.285148 0.656187 +v -0.765718 0.247891 0.687269 +v -0.706356 0.253459 0.637910 +v -0.756581 0.220371 0.671270 +v -0.697110 0.220245 0.621716 +v -0.748423 0.191460 0.657329 +v -0.689053 0.185628 0.608020 +v -0.741464 0.161382 0.645355 +v -0.682478 0.149899 0.596580 +v -0.735796 0.130330 0.635351 +v -0.677370 0.113249 0.587550 +v -0.731293 0.098457 0.627587 +v -0.673615 0.075885 0.581170 +v -0.728057 0.065977 0.622005 +v -0.671372 0.038059 0.577304 +v -0.726132 0.033091 0.618617 +v -1.133790 0.028372 1.284944 +v -1.120634 0.025997 1.228206 +v -1.132099 0.056567 1.282066 +v -1.119291 0.052012 1.226687 +v -1.129396 0.084416 1.277262 +v -1.117770 0.078057 1.226384 +v -1.118432 0.100812 1.235883 +v -1.125734 0.111756 1.270557 +v -1.120736 0.138377 1.262057 +v -1.111886 0.114188 1.216220 +v -1.105807 0.135878 1.203053 +v -1.114736 0.164149 1.251767 +v -1.107975 0.188949 1.239700 +v -1.099250 0.158087 1.191018 +v -1.092202 0.179860 1.178617 +v -1.100094 0.212564 1.226031 +v -1.091317 0.234870 1.210799 +v -1.084104 0.200179 1.164505 +v -1.081804 0.255758 1.194071 +v -1.075400 0.220082 1.150035 +v -1.071413 0.275049 1.176003 +v -1.066339 0.240561 1.136631 +v -1.059467 0.263997 1.133139 +v -1.060319 0.292648 1.156679 +v -1.048551 0.308424 1.136212 +v -1.051000 0.262904 1.109992 +v -1.039815 0.271936 1.088209 +v -1.036349 0.322351 1.114672 +v -1.023366 0.334209 1.092357 +v -1.028206 0.281898 1.067056 +v -1.016141 0.291138 1.045909 +v -1.010085 0.344055 1.069252 +v -0.996559 0.351815 1.045500 +v -1.003527 0.297986 1.024180 +v -0.982781 0.357421 1.021287 +v -0.990553 0.304155 1.002379 +v -0.968655 0.360761 0.996861 +v -0.977068 0.311258 0.981183 +v -0.963985 0.326445 0.966788 +v -0.954470 0.361887 0.972277 +v -0.940340 0.360781 0.947660 +v -0.958098 0.311266 0.948242 +v -0.946644 0.304211 0.925867 +v -0.926315 0.357459 0.923171 +v -0.912424 0.351919 0.899002 +v -0.934287 0.298048 0.903702 +v -0.921808 0.291204 0.881886 +v -0.898698 0.344182 0.875345 +v -0.885373 0.334345 0.852247 +v -0.909720 0.282020 0.860716 +v -0.872576 0.322493 0.829805 +v -0.897225 0.272058 0.840058 +v -0.860188 0.308619 0.808318 +v -0.883974 0.263028 0.819451 +v -0.868308 0.264165 0.800409 +v -0.848373 0.292842 0.787856 +v -0.837191 0.275230 0.768569 +v -0.868641 0.240692 0.792778 +v -0.861682 0.220231 0.778123 +v -0.826885 0.255969 0.750390 +v -0.817135 0.235054 0.733790 +v -0.853544 0.200322 0.763303 +v -0.845412 0.179993 0.749184 +v -0.808455 0.212761 0.718436 +v -0.800506 0.189110 0.704813 +v -0.838296 0.158221 0.736773 +v -0.793527 0.164307 0.692811 +v -0.831084 0.135982 0.725125 +v -0.787693 0.138524 0.682370 +v -0.822817 0.114291 0.713161 +v -0.809044 0.100902 0.697658 +v -0.782735 0.111865 0.673881 +v -0.778812 0.084506 0.667295 +v -0.817024 0.078139 0.702904 +v -0.817520 0.052067 0.701447 +v -0.776043 0.056631 0.662510 +v -0.774420 0.028405 0.659580 +v -0.816853 0.026024 0.699551 +v 0.574139 0.044961 2.513591 +v 0.569101 0.045738 2.522084 +v 0.571800 0.091195 2.517434 +v 0.576785 0.089645 2.509013 +v 0.581173 0.133776 2.501407 +v 0.576264 0.136089 2.509696 +v 0.582466 0.180145 2.498934 +v 0.587272 0.177083 2.490829 +v 0.595054 0.219297 2.477336 +v 0.590382 0.223088 2.485207 +v 0.599955 0.264658 2.468609 +v 0.604466 0.260161 2.461021 +v 0.615455 0.299418 2.441975 +v 0.611136 0.304594 2.449235 +v 0.623841 0.342655 2.427209 +v 0.627944 0.336832 2.420323 +v 0.641864 0.372167 2.396191 +v 0.638000 0.378600 2.402659 +v 0.653535 0.412215 2.375753 +v 0.657130 0.405209 2.369738 +v 0.673641 0.435750 2.341116 +v 0.670326 0.443284 2.346632 +v 0.688279 0.471624 2.315491 +v 0.691293 0.463610 2.310507 +v 0.709987 0.488606 2.278098 +v 0.707297 0.497052 2.282522 +v 0.727251 0.519421 2.247928 +v 0.729601 0.510595 2.244092 +v 0.750020 0.529429 2.208696 +v 0.748022 0.538581 2.211919 +v 0.769480 0.554426 2.174721 +v 0.771114 0.545005 2.172130 +v 0.792754 0.557216 2.134616 +v 0.791494 0.566848 2.136559 +v 0.813928 0.575781 2.097673 +v 0.814805 0.565997 2.096390 +v 0.837133 0.571283 2.057685 +v 0.836646 0.581159 2.058300 +v 0.859502 0.582959 2.018683 +v 0.859600 0.573052 2.018739 +v 0.882065 0.571283 1.979793 +v 0.882362 0.581159 1.979067 +v 0.905112 0.575784 1.939712 +v 0.904396 0.565996 1.941089 +v 0.926448 0.557215 1.902863 +v 0.927550 0.566851 1.900828 +v 0.949515 0.554426 1.862639 +v 0.948083 0.545005 1.865347 +v 0.969177 0.529429 1.828781 +v 0.970968 0.538580 1.825438 +v 0.991742 0.519421 1.789431 +v 0.989598 0.510593 1.793386 +v 1.009214 0.488605 1.759381 +v 1.011696 0.497052 1.754837 +v 1.030713 0.471624 1.721868 +v 1.027908 0.463609 1.726972 +v 1.045563 0.435751 1.696364 +v 1.048673 0.443283 1.690731 +v 1.065470 0.412214 1.661614 +v 1.062075 0.405209 1.667742 +v 1.077336 0.372166 1.641287 +v 1.080995 0.378600 1.634702 +v 1.095156 0.342655 1.610153 +v 1.091256 0.336832 1.617155 +v 1.103745 0.299418 1.595503 +v 1.107861 0.304594 1.588127 +v 1.119038 0.264658 1.568751 +v 1.114733 0.260160 1.576456 +v 1.124144 0.219297 1.560141 +v 1.128613 0.223087 1.552154 +v 1.136530 0.180144 1.538428 +v 1.131927 0.177083 1.546648 +v 1.138028 0.133776 1.536071 +v 1.142737 0.136088 1.527668 +v 1.147200 0.091194 1.519930 +v 1.142416 0.089645 1.528465 +v 1.145057 0.044961 1.523886 +v 1.149887 0.045738 1.515272 +v 0.573936 0.043703 2.495015 +v 0.575595 0.044398 2.506169 +v 0.578203 0.088522 2.501647 +v 0.576503 0.087136 2.490564 +v 0.580768 0.130032 2.483171 +v 0.582536 0.132100 2.494137 +v 0.588561 0.174865 2.483692 +v 0.586699 0.172127 2.472890 +v 0.594265 0.213159 2.459775 +v 0.596247 0.216550 2.470368 +v 0.605540 0.256902 2.454257 +v 0.603413 0.252880 2.443916 +v 0.614093 0.291038 2.425403 +v 0.616390 0.295668 2.435449 +v 0.628724 0.332613 2.414069 +v 0.626233 0.327405 2.404357 +v 0.639764 0.361751 2.380900 +v 0.642470 0.367505 2.390239 +v 0.657539 0.400134 2.364116 +v 0.654598 0.393869 2.355186 +v 0.670647 0.423556 2.327364 +v 0.673844 0.430293 2.335852 +v 0.691278 0.457803 2.305628 +v 0.687808 0.450635 2.297614 +v 0.705980 0.474931 2.266113 +v 0.709739 0.482486 2.273625 +v 0.729110 0.504198 2.240046 +v 0.725047 0.496304 2.233059 +v 0.744895 0.514612 2.198653 +v 0.749273 0.522798 2.205093 +v 0.770102 0.538179 2.168985 +v 0.765398 0.529752 2.163110 +v 0.786432 0.541622 2.126647 +v 0.791471 0.550237 2.131942 +v 0.813246 0.558907 2.094194 +v 0.807866 0.550156 2.089491 +v 0.829569 0.555294 2.051868 +v 0.835294 0.564127 2.055973 +v 0.857479 0.565874 2.017515 +v 0.851407 0.557014 2.014012 +v 0.873244 0.555294 1.976157 +v 0.879663 0.564127 1.979057 +v 0.901711 0.558907 1.940836 +v 0.894946 0.550156 1.938534 +v 0.916380 0.541622 1.901377 +v 0.923486 0.550236 1.903089 +v 0.944855 0.538179 1.866045 +v 0.937414 0.529752 1.864914 +v 0.957917 0.514612 1.829371 +v 0.965684 0.522798 1.829937 +v 0.985847 0.504198 1.794984 +v 0.977765 0.496304 1.794965 +v 0.996832 0.474931 1.761912 +v 1.005217 0.482485 1.761405 +v 1.023678 0.457802 1.729402 +v 1.015004 0.450634 1.730411 +v 1.032165 0.423555 1.700660 +v 1.041113 0.430293 1.699179 +v 1.057417 0.400134 1.670915 +v 1.048214 0.393869 1.672839 +v 1.063048 0.361750 1.647124 +v 1.072487 0.367505 1.644791 +v 1.086233 0.332613 1.620962 +v 1.076579 0.327405 1.623668 +v 1.088719 0.291038 1.602622 +v 1.098567 0.295667 1.599581 +v 1.109416 0.256902 1.580773 +v 1.099399 0.252879 1.584109 +v 1.108547 0.213159 1.568250 +v 1.118710 0.216550 1.564662 +v 1.126396 0.174865 1.551339 +v 1.116113 0.172127 1.555135 +v 1.122044 0.130031 1.544854 +v 1.132421 0.132100 1.540894 +v 1.136753 0.088522 1.533383 +v 1.126308 0.087136 1.537461 +v 1.128876 0.043702 1.533010 +v 1.139362 0.044398 1.528862 +v 0.496955 0.051454 2.564307 +v 0.499994 0.102594 2.559100 +v 0.505022 0.153101 2.550408 +v 0.512045 0.202679 2.538377 +v 0.521023 0.251026 2.523063 +v 0.531810 0.297810 2.504411 +v 0.544406 0.342759 2.482641 +v 0.558819 0.385664 2.458039 +v 0.574877 0.426204 2.430590 +v 0.592392 0.464074 2.400350 +v 0.611372 0.499106 2.367664 +v 0.631686 0.531087 2.332720 +v 0.653174 0.559780 2.295677 +v 0.675681 0.584997 2.256754 +v 0.699166 0.606651 2.216287 +v 0.723441 0.624582 2.174480 +v 0.748280 0.638605 2.131520 +v 0.773700 0.648780 2.087816 +v 0.799348 0.654878 2.043483 +v 0.825159 0.656948 1.998872 +v 0.851059 0.655021 1.954296 +v 0.876638 0.648948 1.909906 +v 0.901896 0.638867 1.866067 +v 0.926877 0.624976 1.823112 +v 0.950947 0.607047 1.781146 +v 0.974494 0.585530 1.740590 +v 0.997006 0.560327 1.701597 +v 1.018381 0.531631 1.664420 +v 1.038630 0.499688 1.629322 +v 1.057580 0.464673 1.596501 +v 1.075101 0.426789 1.566164 +v 1.090957 0.386232 1.538488 +v 1.105262 0.343326 1.513660 +v 1.117864 0.298312 1.491821 +v 1.128690 0.251463 1.473112 +v 1.137504 0.203038 1.457645 +v 1.144592 0.153395 1.445512 +v 1.149545 0.102786 1.436795 +v 1.152493 0.051548 1.431550 +v 0.564094 0.041072 2.450749 +v 0.569630 0.042530 2.475324 +v 0.572129 0.084797 2.470993 +v 0.566507 0.081891 2.446566 +v 0.570515 0.122205 2.439618 +v 0.576279 0.126542 2.463798 +v 0.582051 0.167507 2.453793 +v 0.576089 0.161766 2.429955 +v 0.583199 0.200328 2.417630 +v 0.589413 0.207438 2.441030 +v 0.598316 0.246092 2.425597 +v 0.591797 0.237658 2.402726 +v 0.601833 0.273519 2.385327 +v 0.608709 0.283226 2.407580 +v 0.620524 0.318617 2.387099 +v 0.613243 0.307697 2.365548 +v 0.625959 0.339975 2.343503 +v 0.633691 0.352041 2.364273 +v 0.648127 0.383297 2.339248 +v 0.639900 0.370160 2.319337 +v 0.654983 0.398060 2.293190 +v 0.663745 0.412187 2.312174 +v 0.680446 0.438539 2.283222 +v 0.671112 0.423509 2.265231 +v 0.688190 0.446343 2.235625 +v 0.698130 0.462183 2.252566 +v 0.716686 0.482983 2.220400 +v 0.706109 0.466429 2.204561 +v 0.724762 0.483636 2.172227 +v 0.736000 0.500800 2.186917 +v 0.755953 0.515534 2.152328 +v 0.744031 0.497865 2.138823 +v 0.763799 0.509019 2.104555 +v 0.776423 0.527084 2.116844 +v 0.797281 0.535389 2.080685 +v 0.783943 0.517041 2.069635 +v 0.804339 0.521869 2.034277 +v 0.818402 0.540389 2.044072 +v 0.839653 0.542063 2.007232 +v 0.824861 0.523485 1.998700 +v 0.845384 0.521869 1.963123 +v 0.860904 0.540389 1.970393 +v 0.882024 0.535389 1.933780 +v 0.865781 0.517041 1.927765 +v 0.885925 0.509019 1.892845 +v 0.902883 0.527084 1.897620 +v 0.923352 0.515532 1.862136 +v 0.905693 0.497864 1.858576 +v 0.924961 0.483635 1.825173 +v 0.943305 0.500799 1.827547 +v 0.962620 0.482982 1.794065 +v 0.943614 0.466429 1.792839 +v 0.961534 0.446343 1.761775 +v 0.981175 0.462183 1.761899 +v 0.998859 0.438539 1.731243 +v 0.978612 0.423509 1.732169 +v 0.994740 0.398060 1.704210 +v 1.015560 0.412186 1.702291 +v 1.031178 0.383297 1.675216 +v 1.009823 0.370160 1.678063 +v 1.023764 0.339975 1.653897 +v 1.045614 0.352040 1.650192 +v 1.058782 0.318617 1.627365 +v 1.036480 0.307697 1.631853 +v 1.047890 0.273519 1.612074 +v 1.070596 0.283226 1.606884 +v 1.080989 0.246092 1.588868 +v 1.057927 0.237657 1.594675 +v 1.066525 0.200328 1.579770 +v 1.089892 0.207438 1.573435 +v 1.097254 0.167507 1.560672 +v 1.073634 0.161766 1.567445 +v 1.079208 0.122204 1.557782 +v 1.103026 0.126541 1.550667 +v 1.107176 0.084797 1.543472 +v 1.083216 0.081891 1.550834 +v 1.085629 0.041072 1.546652 +v 1.109675 0.042529 1.539141 +v 0.558744 0.039523 2.424942 +v 0.561066 0.078803 2.420917 +v 0.564923 0.117596 2.414230 +v 0.570286 0.155665 2.404932 +v 0.577128 0.192774 2.393072 +v 0.585401 0.228695 2.378730 +v 0.595060 0.263204 2.361987 +v 0.606039 0.296093 2.342954 +v 0.618276 0.327154 2.321741 +v 0.631691 0.356201 2.298485 +v 0.646205 0.383048 2.273325 +v 0.661726 0.407537 2.246420 +v 0.678160 0.429510 2.217931 +v 0.695403 0.448839 2.188038 +v 0.713353 0.465396 2.156923 +v 0.731895 0.479089 2.124780 +v 0.750917 0.489823 2.091804 +v 0.770301 0.497542 2.058201 +v 0.789929 0.502187 2.024176 +v 0.809677 0.503744 1.989941 +v 0.829427 0.502187 1.955705 +v 0.849054 0.497542 1.921681 +v 0.868438 0.489823 1.888078 +v 0.887460 0.479089 1.855102 +v 0.906002 0.465396 1.822958 +v 0.923951 0.448839 1.791843 +v 0.941195 0.429510 1.761951 +v 0.957629 0.407537 1.733462 +v 0.973149 0.383048 1.706557 +v 0.987663 0.356200 1.681396 +v 1.001078 0.327154 1.658141 +v 1.013315 0.296093 1.636928 +v 1.024295 0.263204 1.617895 +v 1.033953 0.228695 1.601152 +v 1.042226 0.192773 1.586810 +v 1.049068 0.155665 1.574949 +v 1.054432 0.117596 1.565651 +v 1.058289 0.078802 1.558965 +v 1.060610 0.039523 1.554940 +v 0.543511 0.035239 2.353316 +v 0.545581 0.070262 2.349727 +v 0.539223 0.035176 2.349918 +v 0.541290 0.070136 2.346336 +v 0.549020 0.104850 2.343766 +v 0.553803 0.138793 2.335476 +v 0.544723 0.104663 2.340385 +v 0.549496 0.138545 2.332110 +v 0.559903 0.171879 2.324901 +v 0.567279 0.203907 2.312113 +v 0.555586 0.171572 2.321553 +v 0.562949 0.203542 2.308789 +v 0.575891 0.234676 2.297185 +v 0.585680 0.264000 2.280215 +v 0.571545 0.234256 2.293887 +v 0.581317 0.263528 2.276947 +v 0.596591 0.291694 2.261301 +v 0.608552 0.317593 2.240566 +v 0.592208 0.291173 2.258068 +v 0.604148 0.317025 2.237370 +v 0.621493 0.341530 2.218133 +v 0.635331 0.363365 2.194144 +v 0.617066 0.340919 2.214977 +v 0.630879 0.362715 2.191031 +v 0.649984 0.382956 2.168743 +v 0.665358 0.400190 2.142091 +v 0.645506 0.382272 2.165675 +v 0.660853 0.399475 2.139070 +v 0.681362 0.414953 2.114348 +v 0.697895 0.427161 2.085688 +v 0.676828 0.414211 2.111377 +v 0.693331 0.426397 2.082769 +v 0.714855 0.436732 2.056286 +v 0.732139 0.443614 2.026325 +v 0.710261 0.435951 2.053420 +v 0.727513 0.442821 2.023512 +v 0.749639 0.447757 1.995989 +v 0.767247 0.449144 1.965464 +v 0.744982 0.446957 1.993230 +v 0.762559 0.448341 1.962760 +v 0.784855 0.447757 1.934939 +v 0.802355 0.443614 1.904603 +v 0.780136 0.446956 1.932290 +v 0.797605 0.442821 1.902007 +v 0.819637 0.436732 1.874642 +v 0.836598 0.427161 1.845240 +v 0.814857 0.435951 1.872100 +v 0.831787 0.426397 1.842751 +v 0.853132 0.414953 1.816581 +v 0.869134 0.400190 1.788838 +v 0.848289 0.414211 1.814143 +v 0.864264 0.399474 1.786449 +v 0.884509 0.382956 1.762185 +v 0.899162 0.363365 1.736784 +v 0.879611 0.382271 1.759844 +v 0.894238 0.362715 1.734489 +v 0.913000 0.341530 1.712796 +v 0.925941 0.317592 1.690362 +v 0.908051 0.340919 1.710543 +v 0.920969 0.317024 1.688150 +v 0.937902 0.291694 1.669627 +v 0.948812 0.264000 1.650714 +v 0.932909 0.291172 1.667452 +v 0.943800 0.263528 1.648572 +v 0.958602 0.234676 1.633744 +v 0.967213 0.203907 1.618815 +v 0.953572 0.234256 1.631632 +v 0.962168 0.203542 1.616731 +v 0.974590 0.171879 1.606028 +v 0.980690 0.138793 1.595453 +v 0.969531 0.171571 1.603966 +v 0.975620 0.138545 1.593410 +v 0.985472 0.104850 1.587163 +v 0.988911 0.070261 1.581201 +v 0.980394 0.104662 1.585135 +v 0.983827 0.070136 1.579184 +v 0.990981 0.035239 1.577612 +v 0.985893 0.035176 1.575602 +v 0.532957 0.035322 2.348435 +v 0.535032 0.070426 2.344838 +v 0.525799 0.035607 2.348493 +v 0.527890 0.070995 2.344867 +v 0.538479 0.105095 2.338863 +v 0.543273 0.139117 2.330553 +v 0.531365 0.105944 2.338843 +v 0.536198 0.140241 2.330466 +v 0.549387 0.172281 2.319953 +v 0.556781 0.204383 2.307136 +v 0.542361 0.173673 2.319781 +v 0.549815 0.206035 2.306860 +v 0.565412 0.235224 2.292173 +v 0.575225 0.264617 2.275163 +v 0.558516 0.237125 2.291776 +v 0.568408 0.266755 2.274628 +v 0.586161 0.292375 2.256205 +v 0.598150 0.318334 2.235422 +v 0.579432 0.294738 2.255517 +v 0.591518 0.320907 2.234566 +v 0.611121 0.342328 2.212936 +v 0.624991 0.364214 2.188891 +v 0.604594 0.345094 2.211899 +v 0.618577 0.367157 2.187659 +v 0.639678 0.383851 2.163431 +v 0.655089 0.401125 2.136716 +v 0.633382 0.386953 2.161994 +v 0.648918 0.404366 2.135063 +v 0.671130 0.415922 2.108909 +v 0.687701 0.428159 2.080182 +v 0.665088 0.419283 2.107030 +v 0.681793 0.431619 2.078072 +v 0.704701 0.437752 2.050712 +v 0.722025 0.444650 2.020681 +v 0.698931 0.441289 2.048363 +v 0.716395 0.448243 2.018090 +v 0.739566 0.448803 1.990273 +v 0.757215 0.450193 1.959677 +v 0.734077 0.452430 1.987437 +v 0.751869 0.453831 1.956593 +v 0.774865 0.448803 1.929081 +v 0.792406 0.444650 1.898674 +v 0.769661 0.452430 1.925750 +v 0.787344 0.448243 1.895097 +v 0.809729 0.437752 1.868643 +v 0.826728 0.428159 1.839172 +v 0.804807 0.441289 1.864823 +v 0.821945 0.431619 1.835115 +v 0.843301 0.415922 1.810446 +v 0.859341 0.401125 1.782638 +v 0.838649 0.419283 1.806156 +v 0.854820 0.404366 1.778124 +v 0.874751 0.383850 1.755924 +v 0.889438 0.364213 1.730464 +v 0.870355 0.386952 1.751193 +v 0.885161 0.367157 1.725527 +v 0.903309 0.342327 1.706419 +v 0.916280 0.318334 1.683933 +v 0.899143 0.345094 1.701288 +v 0.912219 0.320907 1.678620 +v 0.928269 0.292375 1.663150 +v 0.939205 0.264616 1.644192 +v 0.924305 0.294738 1.657669 +v 0.935330 0.266755 1.638558 +v 0.949017 0.235224 1.627182 +v 0.957649 0.204383 1.612219 +v 0.945221 0.237125 1.621411 +v 0.953922 0.206035 1.606327 +v 0.965042 0.172280 1.599402 +v 0.971157 0.139117 1.588802 +v 0.961376 0.173672 1.593406 +v 0.967540 0.140241 1.582721 +v 0.975950 0.105095 1.580492 +v 0.979397 0.070425 1.574517 +v 0.972372 0.105944 1.574344 +v 0.975847 0.070994 1.568320 +v 0.981472 0.035321 1.570920 +v 0.977939 0.035607 1.564694 +v -0.684568 0.807398 1.993166 +v -0.734789 0.807638 1.909248 +v -0.744006 0.792719 1.923733 +v -0.692944 0.792750 2.006595 +v -0.755724 0.770858 1.943797 +v -0.703362 0.772159 2.024493 +v -0.799479 0.769205 1.857202 +v -0.785120 0.792479 1.836692 +v -0.774343 0.807522 1.823405 +v -0.800966 0.807423 1.743279 +v -0.815251 0.791526 1.751670 +v -0.834567 0.765640 1.769054 +v -0.834864 0.791190 1.667818 +v -0.817748 0.807666 1.666610 +v -0.827472 0.807959 1.591110 +v -0.844186 0.792448 1.584133 +v -0.868749 0.766749 1.564006 +v -0.845185 0.793802 1.501327 +v -0.865449 0.770564 1.478887 +v -0.830177 0.808302 1.514554 +v -0.825744 0.808367 1.434674 +v -0.839799 0.793708 1.420161 +v -0.857130 0.771649 1.399386 +v -0.828351 0.792795 1.343786 +v -0.814841 0.807906 1.356958 +v -0.798510 0.807454 1.286849 +v -0.811469 0.792101 1.275231 +v -0.790059 0.791719 1.212575 +v -0.777115 0.807258 1.222828 +v -0.648702 0.807481 1.000089 +v -0.603686 0.807638 0.948968 +v -0.619005 0.791686 0.941438 +v -0.663670 0.791836 0.993483 +v -0.567790 0.791323 0.891134 +v -0.550991 0.808035 0.899343 +v -0.537695 0.767316 0.837342 +v -0.569374 0.739976 0.832874 +v -0.604809 0.708200 0.829967 +v -0.519552 0.733233 0.788037 +v -0.478481 0.765591 0.792954 +v -0.408885 0.761988 0.748249 +v -0.462634 0.723257 0.741470 +v -0.210568 0.766792 0.676736 +v -0.194222 0.731111 0.642115 +v -0.099307 0.743853 0.636984 +v -0.114573 0.773865 0.664944 +v -0.017290 0.778088 0.661650 +v -0.003887 0.751647 0.638070 +v 0.090712 0.755329 0.646006 +v 0.079287 0.779240 0.666431 +v 0.069288 0.798153 0.684120 +v 0.062172 0.811009 0.697687 +v 0.157161 0.809907 0.708717 +v 0.164233 0.796173 0.695335 +v 0.173534 0.777153 0.678859 +v 0.255245 0.794169 0.716543 +v 0.264250 0.774857 0.700549 +v 0.247882 0.808907 0.730302 +v 0.561949 0.808676 0.911746 +v 0.626320 0.808826 0.978896 +v 0.634936 0.793860 0.965000 +v 0.569728 0.794352 0.898992 +v 0.644798 0.774091 0.948213 +v 0.578739 0.775667 0.883722 +v 0.704542 0.772147 1.020333 +v 0.693404 0.793449 1.039429 +v 0.683733 0.809194 1.054933 +v 0.756696 0.771201 1.101643 +v 0.769212 0.746056 1.079893 +v 0.715393 0.749522 1.001781 +v 0.816943 0.739942 1.163139 +v 0.801083 0.768874 1.189187 +v 0.837612 0.763621 1.280023 +v 0.858912 0.728481 1.249168 +v 0.870689 0.763545 1.485650 +v 0.900910 0.728164 1.524812 +v 0.888188 0.739849 1.597785 +v 0.865174 0.769010 1.567795 +v 0.468436 0.770322 2.249118 +v 0.396895 0.764670 2.295829 +v 0.447328 0.729052 2.301731 +v 0.506201 0.740738 2.253557 +v 0.201737 0.762076 2.369936 +v 0.186908 0.724306 2.405155 +v 0.092710 0.733250 2.412798 +v 0.107751 0.766710 2.383290 +v 0.686633 0.806087 1.992605 +v 0.720467 0.806297 1.938452 +v 0.714132 0.812129 1.934731 +v 0.680166 0.812165 1.989001 +v 0.647673 0.806045 2.044750 +v 0.640893 0.812168 2.041158 +v 0.675229 0.811534 1.985558 +v 0.636195 0.811540 2.037347 +v 0.708985 0.811474 1.931686 +v 0.776169 0.806355 1.822258 +v 0.769816 0.812093 1.818087 +v 0.744190 0.812114 1.878146 +v 0.750432 0.806247 1.882041 +v 0.738859 0.811448 1.875469 +v 0.764321 0.811412 1.815779 +v -0.247549 0.807495 2.314622 +v -0.244120 0.812174 2.307597 +v -0.329575 0.812172 2.275675 +v -0.333174 0.807840 2.282338 +v -0.410372 0.812165 2.234588 +v -0.414232 0.808115 2.241036 +v -0.326858 0.811554 2.270109 +v -0.407123 0.811554 2.229323 +v -0.241954 0.811549 2.301794 +v 0.490915 0.809035 0.854011 +v 0.414338 0.809346 0.804688 +v 0.409757 0.812148 0.812866 +v 0.486083 0.812164 0.861685 +v 0.556830 0.812160 0.919093 +v 0.482665 0.811529 0.866739 +v 0.552924 0.811526 0.923791 +v 0.406875 0.811503 0.818226 +v -0.490528 0.808189 2.191498 +v -0.486337 0.812194 2.185277 +v -0.561450 0.807986 2.133734 +v -0.556848 0.812214 2.127599 +v -0.482526 0.811583 2.180365 +v -0.552514 0.811617 2.123079 +v 0.244276 0.812184 0.738825 +v 0.329353 0.812174 0.771254 +v 0.333444 0.809005 0.762867 +v 0.327054 0.811549 0.776934 +v 0.242574 0.811565 0.744770 +v -0.769182 0.812206 1.227686 +v -0.742737 0.812197 1.168193 +v -0.750958 0.807453 1.163354 +v -0.712235 0.812189 1.111945 +v -0.720731 0.807674 1.107078 +v -0.737010 0.811586 1.170908 +v -0.706741 0.811550 1.115056 +v -0.763253 0.811604 1.230013 +v -0.687185 0.807617 1.052705 +v -0.678816 0.812253 1.057368 +v -0.640527 0.812220 1.004692 +v -0.673531 0.811621 1.060884 +v -0.635481 0.811608 1.008565 +v -0.626459 0.807616 2.067807 +v -0.621281 0.812159 2.061408 +v -0.678767 0.812087 1.986441 +v -0.616536 0.811524 2.057316 +v -0.673675 0.811401 1.982832 +v -0.728437 0.812053 1.902432 +v -0.767347 0.812019 1.817397 +v -0.723017 0.811343 1.899379 +v -0.761641 0.811284 1.814977 +v -0.792551 0.811945 1.739350 +v -0.808063 0.811888 1.665581 +v -0.786632 0.811159 1.737645 +v -0.801998 0.811061 1.664628 +v -0.817900 0.811932 1.593374 +v -0.821161 0.811948 1.519401 +v -0.814988 0.811163 1.519887 +v -0.811743 0.811122 1.593169 +v -0.816978 0.811983 1.440333 +v -0.806386 0.812035 1.362442 +v -0.800281 0.811312 1.363989 +v -0.810824 0.811223 1.441398 +v -0.790426 0.812131 1.291997 +v -0.784384 0.811476 1.293951 +v -0.595447 0.812132 0.954127 +v -0.542258 0.812032 0.905092 +v -0.590676 0.811472 0.958289 +v -0.537814 0.811306 0.909518 +v -0.489432 0.808464 0.851298 +v -0.479640 0.811978 0.857004 +v -0.422834 0.808478 0.808055 +v -0.412751 0.811940 0.814022 +v -0.475595 0.811214 0.861717 +v -0.409200 0.811150 0.819041 +v -0.355253 0.808361 0.772563 +v -0.346750 0.811892 0.780304 +v -0.285310 0.808557 0.743865 +v -0.279710 0.811873 0.753516 +v -0.343811 0.811066 0.785644 +v -0.277458 0.811032 0.759156 +v -0.211569 0.809183 0.721152 +v -0.209709 0.811925 0.731322 +v -0.131199 0.811990 0.715204 +v -0.129910 0.810333 0.705103 +v -0.208173 0.811121 0.737207 +v -0.130382 0.811232 0.721259 +v -0.038638 0.812012 0.706644 +v -0.036097 0.811266 0.696783 +v 0.059298 0.812032 0.706983 +v -0.038513 0.811268 0.712778 +v 0.058771 0.811305 0.713118 +v 0.153931 0.812113 0.717555 +v 0.152806 0.811444 0.723640 +v 0.620501 0.812094 0.986467 +v 0.677073 0.812020 1.062809 +v 0.616147 0.811414 0.990700 +v 0.672321 0.811287 1.066504 +v 0.733719 0.809232 1.139323 +v 0.726526 0.811997 1.147124 +v 0.773262 0.808505 1.224984 +v 0.765507 0.811976 1.231593 +v 0.721430 0.811249 1.150237 +v 0.760130 0.811212 1.234067 +v 0.799915 0.807796 1.304614 +v 0.790659 0.811909 1.308397 +v 0.816828 0.807510 1.380629 +v 0.806356 0.811854 1.380916 +v 0.785071 0.811098 1.310165 +v 0.800622 0.811004 1.381942 +v 0.816970 0.811884 1.452524 +v 0.826833 0.807448 1.455461 +v 0.820976 0.811931 1.526229 +v 0.829641 0.807631 1.531317 +v 0.815122 0.811143 1.525833 +v 0.811147 0.811057 1.452813 +v 0.816853 0.811954 1.605034 +v 0.824839 0.807829 1.610478 +v 0.806167 0.811986 1.682802 +v 0.813546 0.807511 1.687743 +v 0.800408 0.811229 1.681333 +v 0.811023 0.811176 1.604060 +v 0.790481 0.812042 1.753396 +v 0.797245 0.806861 1.757915 +v 0.784839 0.811324 1.751486 +v 0.602265 0.806517 2.095142 +v 0.594914 0.812089 2.091409 +v 0.549468 0.807203 2.144359 +v 0.541473 0.812001 2.140371 +v 0.590486 0.811404 2.087313 +v 0.537365 0.811252 2.136016 +v 0.488281 0.807490 2.192831 +v 0.479811 0.811951 2.188659 +v 0.422344 0.807228 2.236606 +v 0.414297 0.811922 2.231685 +v 0.476098 0.811168 2.184020 +v 0.411071 0.811120 2.226741 +v 0.355431 0.806953 2.272055 +v 0.349295 0.811875 2.264858 +v 0.284824 0.806862 2.301239 +v 0.281417 0.811865 2.291893 +v 0.346672 0.811039 2.259600 +v 0.279476 0.811017 2.286336 +v 0.207276 0.811928 2.316501 +v 0.207803 0.806629 2.325926 +v 0.125323 0.812008 2.334832 +v 0.123578 0.806576 2.343586 +v 0.124833 0.811267 2.328841 +v 0.206060 0.811129 2.310689 +v 0.034008 0.812031 2.343036 +v 0.031205 0.806988 2.351707 +v -0.061036 0.812048 2.341201 +v -0.064229 0.807189 2.349647 +v -0.060166 0.811335 2.335156 +v 0.034208 0.811305 2.336975 +v -0.154176 0.812115 2.329413 +v -0.157537 0.807371 2.337194 +v -0.152638 0.811449 2.323452 +v 0.629921 0.808635 2.032200 +v 0.668560 0.808630 1.980929 +v 0.624459 0.804089 2.027688 +v 0.662720 0.804086 1.976886 +v 0.701971 0.808567 1.927597 +v 0.695801 0.804035 1.924033 +v 0.731544 0.808539 1.871940 +v 0.725085 0.804013 1.868900 +v 0.756751 0.808501 1.812843 +v 0.750051 0.803982 1.810372 +v -0.402770 0.808619 2.222228 +v -0.323307 0.808638 2.262603 +v -0.398968 0.804075 2.216008 +v -0.320256 0.804091 2.256024 +v -0.239252 0.808642 2.293970 +v -0.237000 0.804094 2.287114 +v 0.547529 0.808620 0.929995 +v 0.477974 0.808618 0.873517 +v 0.542737 0.804077 0.935359 +v 0.473823 0.804076 0.879428 +v 0.402944 0.808593 0.825491 +v 0.399483 0.804056 0.831865 +v -0.546692 0.808714 2.117060 +v -0.477411 0.808680 2.173766 +v -0.541600 0.804152 2.111824 +v -0.472940 0.804124 2.167996 +v 0.323935 0.808645 0.784613 +v 0.321196 0.804097 0.791344 +v 0.238347 0.804110 0.759771 +v 0.240311 0.808661 0.752771 +v -0.699346 0.808634 1.119283 +v -0.729311 0.808683 1.174570 +v -0.692869 0.804088 1.123005 +v -0.722575 0.804127 1.177780 +v -0.755293 0.808701 1.233083 +v -0.748331 0.804141 1.235738 +v -0.628802 0.808697 1.013859 +v -0.666474 0.808680 1.065653 +v -0.623010 0.804138 1.018541 +v -0.660312 0.804125 1.069858 +v -0.666641 0.808486 1.978203 +v -0.610073 0.808616 2.051951 +v -0.660392 0.803967 1.974274 +v -0.604376 0.804072 2.047328 +v -0.753709 0.808362 1.812035 +v -0.715483 0.808425 1.895581 +v -0.746642 0.803867 1.809631 +v -0.708769 0.803918 1.892425 +v -0.793628 0.808124 1.663279 +v -0.778431 0.808228 1.735515 +v -0.786212 0.803673 1.662066 +v -0.771144 0.803758 1.733739 +v -0.806493 0.808233 1.520082 +v -0.803278 0.808151 1.592591 +v -0.798973 0.803762 1.520007 +v -0.795780 0.803695 1.591922 +v -0.791950 0.808391 1.365744 +v -0.802380 0.808297 1.442387 +v -0.784600 0.803889 1.367107 +v -0.794912 0.803813 1.443017 +v -0.776213 0.808565 1.296392 +v -0.769040 0.804030 1.298430 +v -0.584435 0.808560 0.964081 +v -0.532089 0.808385 0.915795 +v -0.527217 0.803885 0.921454 +v -0.579069 0.804027 0.969253 +v -0.470481 0.808288 0.868476 +v -0.404753 0.808219 0.826241 +v -0.401048 0.803751 0.832764 +v -0.466187 0.803807 0.874602 +v -0.340050 0.808128 0.793207 +v -0.274410 0.808092 0.767013 +v -0.271742 0.803648 0.774007 +v -0.336873 0.803677 0.800005 +v -0.205871 0.808187 0.745298 +v -0.128903 0.808305 0.729514 +v -0.203739 0.803725 0.752449 +v -0.127410 0.803821 0.736777 +v 0.058338 0.808382 0.721440 +v -0.037971 0.808338 0.721111 +v 0.058106 0.803883 0.728752 +v -0.037300 0.803848 0.728436 +v 0.151439 0.808532 0.731853 +v 0.150319 0.804004 0.739052 +v 0.610112 0.808500 0.996233 +v 0.665712 0.808365 1.071276 +v 0.659824 0.803869 1.075340 +v 0.604741 0.803979 1.000983 +v 0.752614 0.808284 1.237150 +v 0.714318 0.808323 1.154171 +v 0.745908 0.803805 1.239708 +v 0.707972 0.803836 1.157471 +v 0.777285 0.808160 1.312446 +v 0.792662 0.808062 1.383451 +v 0.785598 0.803623 1.384835 +v 0.770355 0.803704 1.314384 +v 0.807024 0.808186 1.525802 +v 0.803081 0.808098 1.453555 +v 0.799840 0.803726 1.526042 +v 0.795926 0.803653 1.454393 +v 0.792473 0.808305 1.679736 +v 0.802974 0.808243 1.603234 +v 0.785450 0.803821 1.678545 +v 0.795842 0.803772 1.602771 +v 0.777063 0.808407 1.749191 +v 0.770179 0.803905 1.747333 +v 0.532058 0.808315 2.129894 +v 0.584660 0.808489 2.081672 +v 0.527538 0.803829 2.124404 +v 0.579638 0.803970 2.076672 +v 0.407023 0.808188 2.219692 +v 0.471394 0.808237 2.177413 +v 0.403651 0.803726 2.213334 +v 0.467444 0.803766 2.171452 +v 0.276829 0.808072 2.278642 +v 0.343303 0.808101 2.252197 +v 0.274504 0.803632 2.271819 +v 0.340453 0.803655 2.245570 +v 0.123827 0.808344 2.320714 +v 0.204199 0.808197 2.302742 +v 0.122764 0.803853 2.313582 +v 0.202458 0.803733 2.295742 +v -0.059296 0.808416 2.326984 +v 0.034127 0.808385 2.328774 +v -0.058693 0.803910 2.319816 +v 0.033871 0.803885 2.321583 +v -0.150835 0.808535 2.315407 +v -0.149397 0.804006 2.308352 +v 0.622202 0.798535 2.025787 +v 0.660268 0.798533 1.975200 +v 0.621547 0.792477 2.025190 +v 0.659512 0.792477 1.974693 +v 0.693186 0.798506 1.922560 +v 0.692350 0.792477 1.922132 +v 0.722323 0.798494 1.867689 +v 0.721409 0.792477 1.867392 +v 0.746193 0.792477 1.809323 +v 0.747168 0.798476 1.809458 +v -0.397382 0.798527 2.213388 +v -0.319039 0.798536 2.253244 +v -0.396904 0.792477 2.212567 +v -0.318741 0.792477 2.252364 +v -0.236182 0.798537 2.284214 +v -0.236082 0.792477 2.283291 +v 0.540642 0.798528 0.937532 +v 0.472031 0.798528 0.881881 +v 0.539897 0.792477 0.938110 +v 0.471417 0.792477 0.882605 +v 0.398009 0.798517 0.834552 +v 0.397529 0.792477 0.835395 +v -0.539456 0.798569 2.109652 +v -0.471064 0.798554 2.165575 +v -0.538787 0.792477 2.109014 +v -0.470486 0.792477 2.164829 +v 0.320038 0.798540 0.794181 +v 0.319671 0.792477 0.795069 +v 0.237541 0.798546 0.762711 +v 0.237314 0.792477 0.763622 +v -0.690142 0.798534 1.124596 +v -0.719740 0.798555 1.179138 +v -0.689290 0.792477 1.125122 +v -0.718856 0.792477 1.179569 +v -0.745400 0.798563 1.236820 +v -0.744483 0.792477 1.237118 +v -0.620631 0.798561 1.020572 +v -0.657739 0.798554 1.071664 +v -0.619957 0.792477 1.021278 +v -0.656959 0.792477 1.072269 +v -0.657655 0.798467 1.972766 +v -0.601929 0.798525 2.045467 +v -0.656675 0.792477 1.972469 +v -0.601105 0.792477 2.044986 +v -0.743534 0.798412 1.808824 +v -0.705810 0.798440 1.891299 +v -0.742407 0.792477 1.808817 +v -0.704728 0.792477 1.891187 +v -0.783010 0.798305 1.661518 +v -0.767970 0.798352 1.733104 +v -0.781915 0.792477 1.661306 +v -0.766852 0.792477 1.733037 +v -0.792549 0.798317 1.591451 +v -0.795729 0.798354 1.519685 +v -0.791451 0.792477 1.591079 +v -0.794621 0.792477 1.519239 +v -0.791690 0.798382 1.443003 +v -0.781440 0.798424 1.367476 +v -0.790590 0.792477 1.442666 +v -0.780376 0.792477 1.367348 +v -0.765989 0.798502 1.299174 +v -0.764998 0.792477 1.299271 +v -0.525334 0.798422 0.924027 +v -0.576919 0.798500 0.971552 +v -0.524945 0.792477 0.925056 +v -0.576378 0.792477 0.972415 +v -0.399725 0.798348 0.835751 +v -0.464605 0.798378 0.877418 +v -0.399592 0.792477 0.836969 +v -0.464379 0.792477 0.878578 +v -0.270633 0.798290 0.777058 +v -0.335687 0.798307 0.803051 +v -0.270304 0.792477 0.778137 +v -0.335495 0.792477 0.804219 +v -0.202712 0.798333 0.755511 +v -0.126552 0.798387 0.739857 +v -0.202236 0.792477 0.756529 +v -0.126011 0.792477 0.740844 +v -0.036785 0.798401 0.731540 +v 0.058182 0.798421 0.731852 +v -0.036349 0.792477 0.732532 +v 0.058412 0.792477 0.732848 +v 0.149939 0.798488 0.742089 +v 0.149930 0.792477 0.743046 +v 0.657236 0.798413 1.076910 +v 0.602384 0.798474 1.002868 +v 0.656298 0.792477 1.077231 +v 0.601533 0.792477 1.003319 +v 0.742963 0.798378 1.240606 +v 0.705178 0.798395 1.158679 +v 0.741901 0.792477 1.240674 +v 0.704161 0.792477 1.158841 +v 0.782557 0.798277 1.385484 +v 0.767343 0.798322 1.315119 +v 0.781528 0.792477 1.385767 +v 0.766289 0.792477 1.315253 +v 0.792852 0.798294 1.454965 +v 0.796747 0.798334 1.526465 +v 0.791816 0.792477 1.455405 +v 0.795700 0.792477 1.526979 +v 0.792771 0.798359 1.602889 +v 0.782425 0.798387 1.678294 +v 0.791728 0.792477 1.603297 +v 0.781398 0.792477 1.678512 +v 0.767213 0.798433 1.746738 +v 0.766204 0.792477 1.746775 +v 0.525796 0.798391 2.121951 +v 0.577621 0.798469 2.074500 +v 0.525441 0.792477 2.121017 +v 0.577107 0.792477 2.073742 +v 0.402452 0.798334 2.210464 +v 0.465997 0.798356 2.168753 +v 0.402340 0.792477 2.209337 +v 0.465801 0.792477 2.167686 +v 0.273529 0.798282 2.268877 +v 0.339388 0.798295 2.242640 +v 0.273229 0.792477 2.267876 +v 0.339215 0.792477 2.241559 +v 0.122105 0.798404 2.310578 +v 0.201600 0.798338 2.292771 +v 0.201184 0.792477 2.291815 +v 0.121646 0.792477 2.309637 +v -0.058627 0.798435 2.316785 +v 0.033545 0.798422 2.318552 +v 0.033183 0.792477 2.317601 +v -0.058830 0.792477 2.315822 +v -0.148957 0.798489 2.305366 +v -0.149015 0.792477 2.304415 +v -1.105237 0.056435 1.178482 +v -1.088341 0.066471 1.129006 +v -1.090322 0.029753 1.130113 +v -1.105880 0.027937 1.176921 +v -1.097797 0.103635 1.165137 +v -1.106892 0.086025 1.190000 +v -1.071895 0.124495 1.099133 +v -1.079411 0.098413 1.111864 +v -1.089993 0.126071 1.149295 +v -1.082667 0.149832 1.136403 +v -1.064673 0.194985 1.107653 +v -1.049763 0.174943 1.062699 +v -1.062324 0.147579 1.082611 +v -1.073698 0.171301 1.120809 +v -1.044780 0.224189 1.072814 +v -1.056725 0.225306 1.102268 +v -1.020151 0.200729 1.009633 +v -1.033819 0.189623 1.033137 +v -1.032138 0.232001 1.048424 +v -1.019138 0.242481 1.025929 +v -0.991313 0.259140 0.979674 +v -0.987065 0.215280 0.953465 +v -1.005749 0.207235 0.984322 +v -1.005788 0.249329 1.002265 +v -0.966529 0.259145 0.936669 +v -0.975090 0.278543 0.960382 +v -0.955023 0.200920 0.896452 +v -0.969776 0.207398 0.921766 +v -0.954382 0.249379 0.912725 +v -0.940657 0.242551 0.889262 +v -0.912955 0.224270 0.843535 +v -0.923859 0.174864 0.843729 +v -0.941343 0.189599 0.872438 +v -0.927711 0.232074 0.866723 +v -0.892873 0.195086 0.808761 +v -0.893495 0.225406 0.818389 +v -0.903251 0.124806 0.806119 +v -0.912781 0.147628 0.822535 +v -0.886115 0.171413 0.794258 +v -0.877060 0.149921 0.778713 +v -0.859810 0.103704 0.751153 +v -0.885762 0.066665 0.776941 +v -0.896033 0.098788 0.793055 +v -0.869669 0.126162 0.765814 +v -0.852086 0.056484 0.737923 +v -0.843012 0.086104 0.730640 +v -0.885398 0.029903 0.774171 +v -0.853753 0.027960 0.738159 +v -0.914817 0.054893 0.811930 +v -0.918728 0.081922 0.819729 +v -0.924178 0.106935 0.830260 +v -0.938966 0.072185 0.845755 +v -0.941791 0.095599 0.852934 +v -0.936761 0.047540 0.840604 +v -1.038063 0.088597 1.014219 +v -1.027022 0.087124 0.991767 +v -1.029068 0.062090 0.992158 +v -1.041050 0.064581 1.016623 +v -1.048991 0.093907 1.038201 +v -1.053408 0.070168 1.043663 +v -1.056154 0.045982 1.046983 +v -1.042817 0.041446 1.017757 +v -1.030244 0.039128 0.992071 +v -1.030971 0.018878 0.992589 +v -1.043951 0.020236 1.018963 +v -1.057982 0.022749 1.049421 +v -1.001399 0.086746 0.944796 +v -0.999364 0.115217 0.946121 +v -0.986370 0.115331 0.924084 +v -0.987746 0.087079 0.921715 +v -0.973248 0.114724 0.902563 +v -0.973483 0.088062 0.898791 +v -0.971097 0.141982 0.904776 +v -0.983718 0.144686 0.925943 +v -0.996575 0.145017 0.947856 +v -0.973994 0.062814 0.896537 +v -0.988885 0.061153 0.920384 +v -1.002773 0.060677 0.943849 +v -0.989715 0.038028 0.919658 +v -1.003688 0.037547 0.943258 +v -0.974402 0.039618 0.895171 +v -0.974223 0.019126 0.894134 +v -0.989898 0.018185 0.919269 +v -1.004037 0.017896 0.943181 +v -0.964990 0.169036 0.902250 +v -0.978757 0.173915 0.925739 +v -0.992927 0.175064 0.950038 +v -1.020452 0.140878 0.990516 +v -1.030018 0.136188 1.008227 +v -1.031444 0.159754 1.018068 +v -1.019896 0.168377 0.997493 +v -1.042245 0.146711 1.036310 +v -1.038088 0.132715 1.023830 +v -1.006860 0.173349 0.974383 +v -1.009143 0.143796 0.969844 +v -1.012037 0.114582 0.968434 +v -1.023523 0.113596 0.989896 +v -1.014675 0.086637 0.968367 +v -1.016249 0.060890 0.967827 +v -1.017201 0.037871 0.967312 +v -1.017688 0.018113 0.967476 +v -1.051993 0.128300 1.052879 +v -1.060546 0.105871 1.066419 +v -1.042724 0.115858 1.029073 +v -0.957368 0.066153 0.871513 +v -0.958198 0.090106 0.875816 +v -0.956703 0.042619 0.868575 +v -0.934836 0.023591 0.836813 +v -0.955763 0.020860 0.866309 +v -1.033378 0.112477 1.009149 +v -0.949068 0.132258 0.869558 +v -0.946205 0.115926 0.862358 +v -0.959928 0.113164 0.881973 +v -0.959009 0.136051 0.885165 +v -0.940965 0.145829 0.860649 +v -0.952214 0.159539 0.880347 +v -1.066679 0.080611 1.076042 +v -1.071018 0.053869 1.082597 +v -1.073903 0.026970 1.087035 +v -0.911868 0.027523 0.806605 +v -0.931596 0.128260 0.843933 +v -0.642819 0.775251 2.095455 +v -0.633723 0.794281 2.079658 +v -0.567709 0.795946 2.144199 +v -0.575845 0.778361 2.158455 +v -0.504152 0.779559 2.215061 +v -0.496421 0.796565 2.201528 +v -0.420116 0.796329 2.251155 +v -0.427843 0.779304 2.264549 +v -0.347158 0.778309 2.306404 +v -0.339193 0.795698 2.292746 +v -0.253944 0.794662 2.325815 +v -0.262490 0.776410 2.340419 +v -0.174253 0.773454 2.366391 +v -0.164662 0.793303 2.349949 +v -0.071987 0.792139 2.364044 +v -0.082711 0.770691 2.382862 +v -0.857284 0.728739 1.799748 +v -0.816461 0.738059 1.884573 +v 0.012061 0.768989 2.388021 +v 0.023459 0.791738 2.367032 +v 0.117847 0.790962 2.359732 +v 0.207323 0.789495 2.343610 +v 0.291184 0.788820 2.318429 +v 0.368734 0.790508 2.284047 +v 0.440382 0.792587 2.242841 +v 0.531908 0.772263 2.201640 +v 0.506603 0.793107 2.197177 +v 0.565950 0.792592 2.148850 +v 0.587747 0.772447 2.153699 +v 0.636099 0.772406 2.105300 +v 0.617077 0.791893 2.099904 +v 0.660998 0.791444 2.049890 +v 0.677945 0.772537 2.056038 +v 0.714259 0.773231 2.005471 +v 0.698836 0.791785 1.998372 +v 0.731873 0.792232 1.945046 +v 0.746247 0.773890 1.953324 +v 0.775072 0.773854 1.899297 +v 0.761384 0.792142 1.889655 +v 0.787082 0.792171 1.831079 +v 0.800540 0.773695 1.842356 +v 0.822284 0.773801 1.781377 +v 0.808454 0.792658 1.768061 +v 0.825534 0.793247 1.699592 +v 0.840384 0.773517 1.715673 +v 0.854776 0.772033 1.644479 +v 0.838027 0.793163 1.624572 +v 0.844800 0.792081 1.545398 +v 0.845049 0.790095 1.464538 +v 0.836343 0.788858 1.381801 +v 0.816338 0.790166 1.296950 +v 0.785466 0.792269 1.210478 +v 0.744035 0.793219 1.122969 +v 0.507270 0.776474 0.826185 +v 0.498599 0.794730 0.841078 +v 0.422114 0.794774 0.791132 +v 0.430980 0.776039 0.775759 +v 0.349894 0.774916 0.733570 +v 0.341028 0.794051 0.749139 +v -0.028501 0.798189 0.681694 +v -0.124562 0.796030 0.688338 +v -0.214078 0.792705 0.703313 +v -0.297107 0.789938 0.727468 +v -0.374259 0.790046 0.760794 +v -0.445240 0.791020 0.800714 +v -0.509832 0.791275 0.844228 +v -0.702078 0.791494 1.045463 +v -0.735398 0.791168 1.098587 +v -0.764695 0.791288 1.154016 +v -0.901091 0.729522 1.522266 +v -0.890365 0.739032 1.446418 +v -0.876656 0.744721 1.374808 +v -0.898325 0.712068 1.346221 +v 0.001118 1.032958 2.048371 +v 0.001727 1.062944 1.985318 +v -0.035430 1.062685 1.984569 +v -0.040395 1.032911 2.046924 +v -0.081876 1.032914 2.042173 +v -0.073241 1.062507 1.980621 +v -0.031327 1.088128 1.921908 +v -0.065023 1.087851 1.918669 +v 0.001248 1.088491 1.922143 +v -0.122858 1.033022 2.033866 +v -0.110627 1.062777 1.972479 +v -0.162885 1.033177 2.022405 +v -0.146519 1.063097 1.961488 +v -0.098355 1.088185 1.910905 +v -0.129855 1.088547 1.900619 +v -0.201480 1.033208 2.008134 +v -0.179832 1.063099 1.949010 +v -0.238636 1.033266 1.991047 +v -0.211223 1.063093 1.934563 +v -0.158058 1.088538 1.889885 +v -0.184065 1.088485 1.877865 +v -0.274318 1.033330 1.971056 +v -0.241320 1.063172 1.917577 +v -0.270855 1.063240 1.897940 +v -0.308546 1.033411 1.948253 +v -0.208954 1.088567 1.863672 +v -0.233940 1.088621 1.847046 +v -0.300515 1.063020 1.875472 +v -0.341308 1.033392 1.922674 +v -0.372097 1.033412 1.894436 +v -0.328808 1.062867 1.850035 +v -0.285588 1.088077 1.805232 +v -0.260202 1.088308 1.827677 +v -0.400386 1.033541 1.863623 +v -0.354266 1.063168 1.821491 +v -0.426042 1.033707 1.830816 +v -0.376835 1.063517 1.791525 +v -0.307970 1.088440 1.779389 +v -0.327385 1.088845 1.752592 +v -0.448894 1.033751 1.796572 +v -0.396458 1.063538 1.761843 +v -0.468924 1.033815 1.760889 +v -0.413377 1.063548 1.731687 +v -0.343895 1.088864 1.727333 +v -0.357888 1.088849 1.702309 +v -0.486051 1.033884 1.723723 +v -0.427756 1.063647 1.700240 +v -0.440118 1.063727 1.666964 +v -0.500347 1.033966 1.685132 +v -0.369692 1.088956 1.676183 +v -0.380146 1.089033 1.648015 +v -0.450920 1.063521 1.631297 +v -0.511823 1.033944 1.645149 +v -0.458864 1.063374 1.594042 +v -0.520135 1.033959 1.604177 +v -0.397380 1.088537 1.583702 +v -0.390027 1.088751 1.616837 +v -0.524903 1.034076 1.562605 +v -0.462675 1.063680 1.555992 +v -0.526369 1.034233 1.520971 +v -0.463309 1.064032 1.518504 +v -0.400291 1.088922 1.549661 +v -0.400236 1.089348 1.516614 +v -0.524715 1.034257 1.479819 +v -0.461731 1.064052 1.482955 +v -0.519935 1.034305 1.439161 +v -0.457687 1.064059 1.448602 +v -0.398739 1.089380 1.486483 +v -0.395349 1.089373 1.458007 +v -0.511927 1.034344 1.399012 +v -0.450827 1.064148 1.414702 +v -0.441256 1.064220 1.380496 +v -0.500791 1.034403 1.359373 +v -0.381428 1.089570 1.400974 +v -0.389540 1.089488 1.429929 +v -0.429003 1.063997 1.345248 +v -0.486549 1.034351 1.320263 +v -0.413506 1.063836 1.310403 +v -0.469169 1.034342 1.282216 +v -0.357515 1.089070 1.338707 +v -0.371070 1.089287 1.369884 +v -0.448564 1.034415 1.245782 +v -0.394205 1.064118 1.277387 +v -0.425256 1.034533 1.211247 +v -0.372669 1.064445 1.246709 +v -0.339846 1.089449 1.309467 +v -0.320372 1.089866 1.282797 +v -0.399709 1.034519 1.178934 +v -0.350490 1.064445 1.218889 +v -0.371927 1.034536 1.148857 +v -0.327018 1.064427 1.193484 +v -0.301448 1.089888 1.259317 +v -0.281968 1.089864 1.238285 +v -0.341832 1.034530 1.121098 +v -0.301536 1.064484 1.170106 +v -0.273676 1.064531 1.148066 +v -0.309510 1.034558 1.095585 +v -0.237177 1.090026 1.200348 +v -0.260765 1.089962 1.219000 +v -0.243019 1.064266 1.126752 +v -0.274980 1.034458 1.072330 +v -0.209973 1.064065 1.107672 +v -0.238540 1.034408 1.051779 +v -0.181168 1.089463 1.164007 +v -0.210494 1.089712 1.181272 +v -0.200443 1.034441 1.034434 +v -0.174930 1.064314 1.092321 +v -0.161278 1.034510 1.020221 +v -0.139463 1.064598 1.080187 +v -0.149660 1.089817 1.150749 +v -0.118215 1.090199 1.140643 +v -0.121618 1.034463 1.009113 +v -0.105172 1.064568 1.070734 +v -0.081466 1.034431 1.001136 +v -0.071263 1.064501 1.064000 +v -0.089113 1.090195 1.132787 +v -0.061007 1.090127 1.127242 +v -0.040810 1.034394 0.996386 +v -0.036920 1.064525 1.060082 +v -0.001442 1.064540 1.058640 +v 0.000326 1.034379 0.994765 +v -0.002511 1.090228 1.122901 +v -0.032539 1.090195 1.124117 +v 0.035873 1.064224 1.059429 +v 0.041918 1.034242 0.996264 +v 0.073818 1.063975 1.063430 +v 0.083465 1.034142 1.001079 +v 0.064145 1.089564 1.126436 +v 0.030272 1.089864 1.123157 +v 0.124472 1.034148 1.009452 +v 0.111204 1.064194 1.071628 +v 0.164499 1.034179 1.020990 +v 0.147038 1.064432 1.082684 +v 0.097458 1.089888 1.134251 +v 0.128862 1.090221 1.144589 +v 0.203095 1.034103 1.035325 +v 0.180323 1.064371 1.095199 +v 0.240241 1.034032 1.052480 +v 0.211687 1.064260 1.109689 +v 0.157015 1.090182 1.155345 +v 0.182983 1.090064 1.167383 +v 0.275902 1.033969 1.072536 +v 0.241748 1.064257 1.126704 +v 0.271269 1.064241 1.146381 +v 0.310107 1.033923 1.095403 +v 0.232802 1.090098 1.198237 +v 0.207825 1.090099 1.181585 +v 0.300956 1.063888 1.168929 +v 0.342847 1.033760 1.121054 +v 0.329274 1.063604 1.194454 +v 0.373605 1.033636 1.149360 +v 0.284576 1.089337 1.240225 +v 0.259128 1.089683 1.217682 +v 0.401845 1.033629 1.180231 +v 0.354708 1.063803 1.223076 +v 0.427432 1.033644 1.213088 +v 0.377208 1.064012 1.253105 +v 0.306952 1.089630 1.266158 +v 0.326305 1.089923 1.293021 +v 0.450219 1.033559 1.247356 +v 0.396772 1.063932 1.282790 +v 0.470173 1.033480 1.283051 +v 0.413613 1.063797 1.312932 +v 0.342754 1.089845 1.318275 +v 0.356673 1.089698 1.343262 +v 0.487225 1.033415 1.320216 +v 0.427921 1.063781 1.344351 +v 0.440225 1.063749 1.377593 +v 0.501448 1.033368 1.358797 +v 0.368413 1.089709 1.369341 +v 0.378817 1.089680 1.397461 +v 0.450977 1.063386 1.413226 +v 0.512853 1.033208 1.398759 +v 0.521098 1.033092 1.439710 +v 0.458878 1.063095 1.450477 +v 0.395995 1.088870 1.461736 +v 0.388668 1.089240 1.428595 +v 0.525804 1.033093 1.481268 +v 0.462638 1.063290 1.488587 +v 0.527203 1.033124 1.522877 +v 0.463201 1.063496 1.526129 +v 0.398861 1.089141 1.495890 +v 0.398742 1.089419 1.529042 +v 0.525504 1.033052 1.563978 +v 0.461587 1.063417 1.561641 +v 0.520681 1.032997 1.604568 +v 0.457502 1.063290 1.595914 +v 0.397210 1.089325 1.559150 +v 0.393786 1.089171 1.587539 +v 0.512644 1.032950 1.644644 +v 0.450618 1.063280 1.629735 +v 0.501495 1.032934 1.684203 +v 0.441048 1.063261 1.663842 +v 0.387959 1.089176 1.615534 +v 0.379858 1.089143 1.644379 +v 0.428826 1.062911 1.698947 +v 0.487252 1.032796 1.723218 +v 0.469881 1.032719 1.761182 +v 0.413351 1.062643 1.733693 +v 0.369555 1.088703 1.675298 +v 0.356030 1.088341 1.706368 +v 0.449280 1.032745 1.797567 +v 0.394007 1.062852 1.766740 +v 0.425977 1.032818 1.832060 +v 0.372411 1.063084 1.797466 +v 0.338288 1.088620 1.735696 +v 0.318710 1.088901 1.762479 +v 0.400462 1.032776 1.864318 +v 0.350239 1.063024 1.825260 +v 0.372724 1.032767 1.894333 +v 0.326799 1.062931 1.850599 +v 0.299777 1.088824 1.785954 +v 0.280320 1.088683 1.806921 +v 0.342680 1.032752 1.922041 +v 0.301355 1.062945 1.873926 +v 0.310426 1.032779 1.947506 +v 0.273576 1.062953 1.895903 +v 0.259149 1.088703 1.826158 +v 0.235648 1.088692 1.844740 +v 0.243080 1.062643 1.917118 +v 0.275988 1.032683 1.970710 +v 0.239638 1.032655 1.991230 +v 0.210166 1.062420 1.936135 +v 0.209166 1.088279 1.863684 +v 0.179997 1.087952 1.880861 +v 0.201597 1.032719 2.008575 +v 0.175112 1.062657 1.951515 +v 0.162479 1.032843 2.022812 +v 0.139592 1.062931 1.963704 +v 0.148430 1.088256 1.894172 +v 0.116863 1.088568 1.904355 +v 0.122876 1.032835 2.033930 +v 0.105313 1.062902 1.973176 +v 0.082789 1.032868 2.041931 +v 0.071445 1.062858 1.979920 +v 0.087740 1.088525 1.912238 +v 0.059657 1.088421 1.917780 +v 0.042190 1.032897 2.046711 +v 0.037134 1.062904 1.983854 +v 0.031201 1.088471 1.920914 +v 0.000915 0.997481 2.112346 +v -0.045421 0.997516 2.110543 +v 0.000915 0.961980 2.168449 +v -0.049817 0.961906 2.166398 +v -0.091478 0.997596 2.105142 +v -0.100242 0.961964 2.160474 +v -0.136968 0.997640 2.096118 +v -0.150045 0.962006 2.150595 +v -0.181619 0.997725 2.083580 +v -0.198935 0.962093 2.136874 +v -0.225144 0.997777 2.067553 +v -0.246590 0.962142 2.119327 +v -0.267293 0.997866 2.048183 +v -0.292740 0.962234 2.098127 +v -0.307782 0.997923 2.025544 +v -0.337072 0.962288 2.073340 +v -0.346389 0.998016 1.999817 +v -0.379348 0.962389 2.045182 +v -0.382845 0.998076 1.971119 +v -0.419286 0.962493 2.013787 +v -0.416956 0.998169 1.939666 +v -0.456662 0.962628 1.979371 +v -0.448480 0.998230 1.905614 +v -0.491145 0.962619 1.942053 +v -0.477256 0.998323 1.869205 +v -0.522645 0.962690 1.902183 +v -0.503067 0.998383 1.830635 +v -0.550908 0.962747 1.859952 +v -0.525796 0.998475 1.790166 +v -0.575800 0.962841 1.815645 +v -0.545257 0.998531 1.748026 +v -0.597111 0.962895 1.769505 +v -0.561375 0.998619 1.704493 +v -0.614773 0.962996 1.721843 +v -0.574003 0.998669 1.659820 +v -0.628616 0.963066 1.672930 +v -0.583112 0.998753 1.614295 +v -0.638607 0.963167 1.623085 +v -0.588591 0.998796 1.568190 +v -0.644614 0.963216 1.572598 +v -0.590463 0.998874 1.521794 +v -0.646654 0.963273 1.521795 +v -0.588656 0.998907 1.475394 +v -0.644666 0.963289 1.470986 +v -0.583243 0.998977 1.429273 +v -0.638733 0.963346 1.420485 +v -0.574192 0.998999 1.383723 +v -0.628819 0.963362 1.370609 +v -0.561625 0.999062 1.339014 +v -0.615063 0.963426 1.321651 +v -0.545552 0.999071 1.295440 +v -0.597462 0.963432 1.273938 +v -0.526139 0.999125 1.253246 +v -0.576208 0.963487 1.227735 +v -0.503439 0.999121 1.212725 +v -0.551350 0.963479 1.183365 +v -0.477658 0.999164 1.174089 +v -0.523124 0.963526 1.141057 +v -0.448892 0.999146 1.137621 +v -0.491623 0.963506 1.101126 +v -0.417380 0.999180 1.103498 +v -0.457121 0.963544 1.063758 +v -0.383257 0.999148 1.071985 +v -0.419754 0.963510 1.029253 +v -0.346790 0.999168 1.043218 +v -0.379826 0.963534 0.997750 +v -0.308156 0.999126 1.017436 +v -0.337517 0.963487 0.969524 +v -0.267635 0.999133 0.994736 +v -0.293147 0.963497 0.944664 +v -0.225441 0.999080 0.975322 +v -0.246943 0.963441 0.923411 +v -0.181867 0.999073 0.959248 +v -0.199231 0.963437 0.905809 +v -0.137157 0.999012 0.946679 +v -0.150273 0.963374 0.892051 +v -0.091607 0.998992 0.937628 +v -0.100396 0.963360 0.882137 +v -0.045486 0.998923 0.932214 +v -0.049893 0.963298 0.876207 +v 0.000915 0.998892 0.930406 +v 0.000915 0.963265 0.874230 +v 0.047311 0.998815 0.932278 +v 0.051718 0.963176 0.876293 +v 0.093418 0.998774 0.937756 +v 0.102203 0.963138 0.882292 +v 0.138944 0.998691 0.946865 +v 0.152050 0.963053 0.892272 +v 0.183619 0.998641 0.959492 +v 0.200967 0.963007 0.906099 +v 0.227152 0.998554 0.975611 +v 0.248632 0.962916 0.923755 +v 0.269294 0.998498 0.995072 +v 0.294774 0.962864 0.945064 +v 0.309764 0.998407 1.017801 +v 0.339082 0.962770 0.969957 +v 0.348336 0.998348 1.043612 +v 0.381315 0.962714 0.998221 +v 0.384745 0.998255 1.072389 +v 0.421175 0.962618 1.029734 +v 0.418798 0.998193 1.103913 +v 0.458459 0.962560 1.064251 +v 0.450252 0.998100 1.138025 +v 0.492893 0.962464 1.101606 +v 0.478950 0.998039 1.174482 +v 0.524306 0.962393 1.141530 +v 0.504677 0.997947 1.213089 +v 0.552476 0.962311 1.183798 +v 0.527317 0.997889 1.253580 +v 0.577263 0.962257 1.228132 +v 0.546687 0.997799 1.295730 +v 0.598463 0.962164 1.274283 +v 0.562714 0.997746 1.339256 +v 0.616010 0.962115 1.321939 +v 0.575252 0.997660 1.383910 +v 0.629731 0.962026 1.370830 +v 0.584276 0.997615 1.429399 +v 0.639610 0.961984 1.420636 +v 0.589676 0.997534 1.475459 +v 0.645524 0.961911 1.471063 +v 0.591478 0.997497 1.521794 +v 0.647520 0.961911 1.521794 +v 0.589611 0.997423 1.568125 +v 0.645516 0.961899 1.572525 +v 0.584148 0.997397 1.614169 +v 0.639522 0.961857 1.622940 +v 0.575062 0.997331 1.659635 +v 0.629521 0.961723 1.672710 +v 0.562472 0.997317 1.704256 +v 0.615769 0.961757 1.721574 +v 0.546390 0.997259 1.747738 +v 0.598330 0.961958 1.769253 +v 0.526983 0.997258 1.789840 +v 0.577199 0.962150 1.815428 +v 0.504304 0.997210 1.830271 +v 0.552417 0.962208 1.859756 +v 0.478558 0.997223 1.868822 +v 0.524208 0.962214 1.901989 +v 0.449838 0.997184 1.905211 +v 0.492731 0.962156 1.941845 +v 0.418385 0.997212 1.939265 +v 0.458237 0.962111 1.979116 +v 0.384330 0.997182 1.970717 +v 0.420898 0.962011 2.013531 +v 0.347941 0.997220 1.999436 +v 0.381015 0.961990 2.044957 +v 0.309390 0.997204 2.025181 +v 0.338761 0.961900 2.073109 +v 0.268958 0.997251 2.047859 +v 0.294412 0.961738 2.097815 +v 0.226856 0.997250 2.067264 +v 0.248280 0.961624 2.118988 +v 0.183373 0.997306 2.083344 +v 0.200683 0.961715 2.136620 +v 0.138753 0.997319 2.095933 +v 0.151834 0.961754 2.150422 +v 0.093288 0.997384 2.105018 +v 0.102063 0.961894 2.160428 +v 0.047245 0.997408 2.110480 +v 0.051648 0.961956 2.166436 +v 0.000915 0.933396 2.209041 +v -0.053008 0.933428 2.206947 +v 0.000915 0.912944 2.234913 +v -0.055037 0.912956 2.232727 +v -0.106607 0.933486 2.200659 +v -0.110652 0.912997 2.226202 +v -0.159546 0.933529 2.190164 +v -0.165578 0.913010 2.215290 +v -0.211506 0.933581 2.175559 +v -0.219492 0.913048 2.200141 +v -0.262165 0.933644 2.156927 +v -0.272036 0.913051 2.180758 +v -0.311214 0.933710 2.134383 +v -0.322926 0.913100 2.157371 +v -0.358319 0.933722 2.108011 +v -0.371822 0.913141 2.130047 +v -0.403241 0.933784 2.078067 +v -0.418452 0.913210 2.099004 +v -0.445672 0.933844 2.044681 +v -0.462461 0.913229 2.064339 +v -0.485368 0.933915 2.008078 +v -0.503648 0.913276 2.026358 +v -0.522047 0.933954 1.968446 +v -0.541698 0.913296 1.985229 +v -0.555525 0.934015 1.926071 +v -0.576429 0.913334 1.941259 +v -0.585561 0.934060 1.881187 +v -0.607564 0.913339 1.894671 +v -0.612003 0.934121 1.834091 +v -0.635004 0.913386 1.845811 +v -0.634640 0.934153 1.785049 +v -0.658519 0.913432 1.794941 +v -0.653394 0.934217 1.734393 +v -0.678008 0.913501 1.742390 +v -0.668083 0.934250 1.682407 +v -0.693265 0.913535 1.688452 +v -0.678682 0.934313 1.629433 +v -0.704271 0.913586 1.633486 +v -0.685052 0.934339 1.575782 +v -0.710880 0.913602 1.577815 +v -0.687230 0.934398 1.521795 +v -0.713142 0.913645 1.521795 +v -0.685128 0.934423 1.467801 +v -0.710966 0.913666 1.465768 +v -0.678835 0.934485 1.414132 +v -0.704446 0.913716 1.410076 +v -0.668302 0.934499 1.361130 +v -0.693515 0.913726 1.355077 +v -0.653683 0.934552 1.309103 +v -0.678338 0.913758 1.301092 +v -0.634980 0.934559 1.258398 +v -0.658928 0.913761 1.248478 +v -0.612391 0.934601 1.209299 +v -0.635491 0.913793 1.197529 +v -0.585967 0.934585 1.162152 +v -0.608071 0.913780 1.148606 +v -0.555967 0.934617 1.117195 +v -0.576939 0.913800 1.101958 +v -0.522486 0.934592 1.074767 +v -0.542188 0.913772 1.057941 +v -0.485817 0.934616 1.035062 +v -0.504119 0.913767 1.016761 +v -0.446146 0.934651 0.998353 +v -0.462920 0.913749 0.978713 +v -0.403762 0.934769 0.964803 +v -0.418970 0.913863 0.943871 +v -0.358745 0.934624 0.934882 +v -0.372261 0.913763 0.912822 +v -0.311588 0.934621 0.908472 +v -0.323348 0.913789 0.885388 +v -0.262485 0.934571 0.885888 +v -0.272403 0.913764 0.861944 +v -0.211778 0.934558 0.867191 +v -0.219788 0.913759 0.842538 +v -0.159749 0.934497 0.852579 +v -0.165799 0.913714 0.827379 +v -0.106746 0.934480 0.842048 +v -0.110800 0.913699 0.816457 +v -0.053078 0.934423 0.835751 +v -0.055111 0.913648 0.809939 +v 0.000915 0.934397 0.833651 +v 0.000912 0.913608 0.807788 +v 0.054904 0.934362 0.835808 +v 0.056929 0.913581 0.810030 +v 0.108560 0.934366 0.842151 +v 0.112624 0.913684 0.816482 +v 0.161540 0.934311 0.852744 +v 0.167650 0.913786 0.827295 +v 0.213527 0.934265 0.867445 +v 0.221584 0.913681 0.842647 +v 0.264178 0.934174 0.886223 +v 0.274150 0.913606 0.862152 +v 0.313216 0.934129 0.908871 +v 0.325024 0.913538 0.885701 +v 0.360306 0.934054 0.935323 +v 0.373828 0.913391 0.913262 +v 0.405200 0.934028 0.965345 +v 0.420386 0.913340 0.944448 +v 0.447558 0.933939 0.998843 +v 0.464375 0.913325 0.979156 +v 0.487190 0.933901 1.035520 +v 0.505497 0.913297 1.017215 +v 0.523823 0.933873 1.075190 +v 0.543449 0.913219 1.058428 +v 0.557242 0.933857 1.117600 +v 0.578094 0.913182 1.102451 +v 0.587187 0.933791 1.162527 +v 0.609158 0.913134 1.149064 +v 0.613420 0.933606 1.209709 +v 0.636562 0.913161 1.197918 +v 0.636004 0.933591 1.258733 +v 0.659922 0.913088 1.248827 +v 0.654696 0.933598 1.309369 +v 0.679266 0.913052 1.301387 +v 0.669341 0.933594 1.361320 +v 0.694413 0.913011 1.355302 +v 0.679836 0.933550 1.414265 +v 0.705328 0.913001 1.410228 +v 0.686108 0.933473 1.467869 +v 0.711857 0.912962 1.465842 +v 0.688212 0.933453 1.521794 +v 0.714040 0.912948 1.521796 +v 0.686047 0.933404 1.575715 +v 0.711785 0.912908 1.577742 +v 0.679694 0.933389 1.629303 +v 0.705195 0.912898 1.633342 +v 0.669114 0.933333 1.682216 +v 0.694222 0.912862 1.688244 +v 0.654454 0.933314 1.734143 +v 0.679025 0.912859 1.742127 +v 0.635730 0.933260 1.784745 +v 0.659605 0.912827 1.794634 +v 0.613148 0.933265 1.833745 +v 0.636174 0.912830 1.845476 +v 0.586756 0.933231 1.880800 +v 0.608786 0.912802 1.894299 +v 0.556791 0.933239 1.925663 +v 0.577699 0.912811 1.940854 +v 0.523362 0.933201 1.968007 +v 0.543016 0.912788 1.984794 +v 0.486761 0.933226 2.007640 +v 0.505037 0.912805 2.025918 +v 0.447131 0.933206 2.044246 +v 0.463912 0.912787 2.063896 +v 0.404783 0.933235 2.077670 +v 0.419971 0.912810 2.098578 +v 0.359909 0.933204 2.107618 +v 0.373416 0.912799 2.129663 +v 0.312846 0.933219 2.133995 +v 0.324593 0.912827 2.157051 +v 0.263838 0.933183 2.156550 +v 0.273750 0.912824 2.180481 +v 0.213245 0.933253 2.175284 +v 0.221243 0.912855 2.199900 +v 0.161324 0.933288 2.189956 +v 0.167360 0.912857 2.215095 +v 0.108415 0.933347 2.200537 +v 0.112459 0.912893 2.226067 +v 0.054831 0.933350 2.206879 +v 0.056860 0.912903 2.232658 +v -0.112281 0.901348 2.236485 +v -0.055854 0.901330 2.243108 +v 0.000915 0.901331 2.245346 +v -0.055993 0.895497 2.244873 +v 0.000915 0.895494 2.247133 +v -0.112583 0.895468 2.238391 +v -0.222715 0.901379 2.210060 +v -0.168015 0.901365 2.225442 +v -0.168489 0.895448 2.227415 +v -0.223346 0.895440 2.212001 +v -0.327579 0.901338 2.166501 +v -0.275984 0.901340 2.190288 +v -0.276672 0.895489 2.191950 +v -0.328391 0.895491 2.168095 +v -0.424451 0.901376 2.107261 +v -0.377159 0.901346 2.138755 +v -0.378115 0.895482 2.140316 +v -0.425672 0.895435 2.108942 +v -0.510708 0.901328 2.033417 +v -0.468993 0.901332 2.071986 +v -0.470146 0.895495 2.073336 +v -0.511949 0.895500 2.034658 +v -0.584475 0.901342 1.947105 +v -0.549276 0.901331 1.991701 +v -0.550624 0.895496 1.992853 +v -0.585959 0.895482 1.948184 +v -0.643766 0.901328 1.850275 +v -0.616008 0.901330 1.899845 +v -0.617509 0.895498 1.900765 +v -0.645324 0.895501 1.851069 +v -0.687217 0.901329 1.745381 +v -0.667549 0.901328 1.798681 +v -0.669168 0.895500 1.799352 +v -0.688886 0.895499 1.745924 +v -0.713716 0.901327 1.634981 +v -0.702631 0.901327 1.690701 +v -0.704330 0.895501 1.691108 +v -0.715437 0.895502 1.635254 +v -0.722624 0.901327 1.521795 +v -0.720390 0.901327 1.578563 +v -0.722127 0.895502 1.578699 +v -0.724366 0.895502 1.521795 +v -0.713716 0.901327 1.408608 +v -0.720390 0.901327 1.465026 +v -0.722127 0.895502 1.464889 +v -0.715437 0.895502 1.408335 +v -0.687226 0.901332 1.298203 +v -0.702631 0.901327 1.352888 +v -0.704330 0.895501 1.352480 +v -0.688914 0.895495 1.297655 +v -0.643793 0.901339 1.193298 +v -0.667576 0.901339 1.244896 +v -0.669238 0.895488 1.244207 +v -0.645386 0.895490 1.192487 +v -0.584441 0.901327 1.096508 +v -0.616005 0.901329 1.143745 +v -0.617494 0.895501 1.142832 +v -0.585851 0.895502 1.095483 +v -0.510705 0.901328 1.010173 +v -0.549266 0.901327 1.051895 +v -0.550590 0.895502 1.050763 +v -0.511937 0.895502 1.008941 +v -0.424543 0.901431 0.936200 +v -0.469017 0.901346 0.971573 +v -0.470163 0.895491 0.970232 +v -0.425610 0.895446 0.934732 +v -0.327578 0.901337 0.877090 +v -0.377158 0.901345 0.904834 +v -0.378075 0.895492 0.903338 +v -0.328375 0.895496 0.875527 +v -0.222676 0.901333 0.833651 +v -0.275978 0.901334 0.853316 +v -0.276648 0.895498 0.851696 +v -0.223219 0.895498 0.831980 +v -0.112271 0.901328 0.807160 +v -0.167993 0.901330 0.818240 +v -0.168404 0.895498 0.816527 +v -0.112545 0.895501 0.805433 +v 0.000916 0.901333 0.798239 +v -0.055853 0.901328 0.800487 +v -0.055990 0.895501 0.798744 +v 0.000916 0.895495 0.796461 +v 0.114224 0.901602 0.806397 +v 0.057705 0.901422 0.800220 +v 0.057874 0.895400 0.798075 +v 0.114600 0.895286 0.804024 +v 0.224731 0.901590 0.832962 +v 0.170086 0.901728 0.817149 +v 0.170639 0.895240 0.814850 +v 0.225357 0.895350 0.831037 +v 0.329843 0.901677 0.876239 +v 0.278110 0.901613 0.852590 +v 0.278941 0.895319 0.850584 +v 0.331238 0.895161 0.873504 +v 0.426232 0.901346 0.936397 +v 0.379100 0.901421 0.904654 +v 0.380239 0.895399 0.902796 +v 0.427308 0.895482 0.934917 +v 0.512657 0.901388 1.010054 +v 0.470930 0.901390 0.971479 +v 0.472297 0.895424 0.969880 +v 0.514156 0.895423 1.008556 +v 0.586273 0.901328 1.096508 +v 0.551113 0.901335 1.051883 +v 0.552482 0.895491 1.050713 +v 0.587690 0.895501 1.095479 +v 0.645958 0.901473 1.193130 +v 0.617843 0.901332 1.143742 +v 0.619359 0.895496 1.142813 +v 0.648335 0.895314 1.191920 +v 0.689107 0.901351 1.298189 +v 0.669596 0.901412 1.244819 +v 0.671753 0.895386 1.243926 +v 0.690935 0.895468 1.297595 +v 0.715549 0.901328 1.408608 +v 0.704465 0.901329 1.352888 +v 0.706174 0.895500 1.352478 +v 0.717276 0.895501 1.408335 +v 0.724454 0.901327 1.521796 +v 0.722221 0.901327 1.465027 +v 0.723958 0.895502 1.464890 +v 0.726196 0.895503 1.521796 +v 0.715546 0.901327 1.634982 +v 0.722220 0.901327 1.578563 +v 0.723957 0.895503 1.578700 +v 0.717266 0.895503 1.635254 +v 0.689041 0.901327 1.745381 +v 0.704459 0.901327 1.690701 +v 0.706153 0.895503 1.691108 +v 0.690698 0.895503 1.745919 +v 0.645593 0.901327 1.850275 +v 0.669374 0.901327 1.798681 +v 0.670984 0.895503 1.799347 +v 0.647144 0.895503 1.851066 +v 0.586270 0.901327 1.947081 +v 0.617830 0.901327 1.899842 +v 0.619315 0.895503 1.900752 +v 0.587679 0.895503 1.948105 +v 0.512534 0.901327 2.033415 +v 0.551095 0.901327 1.991694 +v 0.552419 0.895502 1.992825 +v 0.513765 0.895502 2.034646 +v 0.426200 0.901327 2.107151 +v 0.470813 0.901327 2.071976 +v 0.471944 0.895502 2.073301 +v 0.427224 0.895502 2.108561 +v 0.329396 0.901329 2.166478 +v 0.378961 0.901328 2.138713 +v 0.379875 0.895501 2.140204 +v 0.330198 0.895498 2.168052 +v 0.224513 0.901343 2.209964 +v 0.277816 0.901343 2.190297 +v 0.278551 0.895473 2.192070 +v 0.225099 0.895476 2.211767 +v 0.114103 0.901333 2.236443 +v 0.169826 0.901337 2.225366 +v 0.170256 0.895485 2.227156 +v 0.114385 0.895492 2.238225 +v 0.057683 0.901332 2.243115 +v 0.057824 0.895492 2.244908 +v -0.112272 0.890985 2.236426 +v -0.055853 0.890985 2.243100 +v 0.000915 0.890985 2.245334 +v -0.055514 0.888087 2.238792 +v 0.000915 0.888087 2.241012 +v -0.111596 0.888087 2.232158 +v -0.222670 0.890985 2.209921 +v -0.167990 0.890985 2.225339 +v -0.166982 0.888087 2.221137 +v -0.221335 0.888087 2.205811 +v -0.327564 0.890985 2.166472 +v -0.275970 0.890985 2.190254 +v -0.274316 0.888087 2.186262 +v -0.325603 0.888087 2.162622 +v -0.424370 0.890985 2.107150 +v -0.377131 0.890985 2.138710 +v -0.374873 0.888087 2.135025 +v -0.421830 0.888087 2.103654 +v -0.510704 0.890985 2.033414 +v -0.468983 0.890985 2.071975 +v -0.466177 0.888087 2.068689 +v -0.507649 0.888087 2.030358 +v -0.584440 0.890985 1.947080 +v -0.549265 0.890985 1.991693 +v -0.545980 0.888087 1.988887 +v -0.580944 0.888087 1.944540 +v -0.643763 0.890985 1.850274 +v -0.616000 0.890985 1.899840 +v -0.612316 0.888087 1.897583 +v -0.639913 0.888087 1.848312 +v -0.687211 0.890985 1.745379 +v -0.667545 0.890985 1.798679 +v -0.663552 0.888087 1.797025 +v -0.683102 0.888087 1.744044 +v -0.713716 0.890985 1.634981 +v -0.702629 0.890985 1.690701 +v -0.698427 0.888087 1.689692 +v -0.709448 0.888087 1.634305 +v -0.722624 0.890985 1.521794 +v -0.720390 0.890985 1.578562 +v -0.716082 0.888087 1.578223 +v -0.718303 0.888087 1.521794 +v -0.713716 0.890985 1.408608 +v -0.720390 0.890985 1.465026 +v -0.716082 0.888087 1.465365 +v -0.709448 0.888087 1.409284 +v -0.687211 0.890985 1.298208 +v -0.702629 0.890985 1.352888 +v -0.698427 0.888087 1.353897 +v -0.683101 0.888087 1.299544 +v -0.643762 0.890985 1.193314 +v -0.667544 0.890985 1.244909 +v -0.663552 0.888087 1.246563 +v -0.639912 0.888087 1.195276 +v -0.584440 0.890985 1.096509 +v -0.616000 0.890985 1.143748 +v -0.612316 0.888087 1.146005 +v -0.580944 0.888087 1.099048 +v -0.510703 0.890985 1.010175 +v -0.549265 0.890985 1.051895 +v -0.545979 0.888087 1.054702 +v -0.507648 0.888088 1.013230 +v -0.424370 0.890985 0.936439 +v -0.468983 0.890985 0.971613 +v -0.466177 0.888087 0.974899 +v -0.421830 0.888087 0.939935 +v -0.327565 0.890985 0.877116 +v -0.377131 0.890985 0.904879 +v -0.374873 0.888087 0.908563 +v -0.325603 0.888088 0.880966 +v -0.222671 0.890985 0.833668 +v -0.275970 0.890985 0.853335 +v -0.274316 0.888087 0.857327 +v -0.221335 0.888088 0.837777 +v -0.112271 0.890985 0.807163 +v -0.167991 0.890985 0.818250 +v -0.166982 0.888087 0.822452 +v -0.111595 0.888088 0.811431 +v 0.000916 0.890985 0.798255 +v -0.055853 0.890985 0.800489 +v -0.055513 0.888087 0.804797 +v 0.000916 0.888088 0.802576 +v 0.114102 0.890985 0.807163 +v 0.057683 0.890985 0.800489 +v 0.057344 0.888087 0.804797 +v 0.113426 0.888088 0.811431 +v 0.224502 0.890985 0.833668 +v 0.169822 0.890985 0.818250 +v 0.168813 0.888088 0.822452 +v 0.223166 0.888088 0.837778 +v 0.329396 0.890985 0.877117 +v 0.277801 0.890985 0.853335 +v 0.276147 0.888088 0.857327 +v 0.327434 0.888088 0.880967 +v 0.426201 0.890985 0.936440 +v 0.378962 0.890985 0.904879 +v 0.376704 0.888088 0.908564 +v 0.423661 0.888088 0.939935 +v 0.512535 0.890985 1.010176 +v 0.470815 0.890985 0.971614 +v 0.468008 0.888088 0.974900 +v 0.509480 0.888088 1.013231 +v 0.586271 0.890985 1.096510 +v 0.551096 0.890985 1.051897 +v 0.547811 0.888088 1.054703 +v 0.582775 0.888088 1.099050 +v 0.645594 0.890985 1.193316 +v 0.617831 0.890985 1.143749 +v 0.614147 0.888088 1.146007 +v 0.641744 0.888088 1.195277 +v 0.689042 0.890986 1.298210 +v 0.669375 0.890986 1.244911 +v 0.665383 0.888088 1.246564 +v 0.684932 0.888088 1.299545 +v 0.715546 0.890985 1.408608 +v 0.704460 0.890986 1.352890 +v 0.700258 0.888088 1.353899 +v 0.711279 0.888088 1.409285 +v 0.724454 0.890985 1.521796 +v 0.722221 0.890985 1.465027 +v 0.717913 0.888088 1.465366 +v 0.720133 0.888088 1.521796 +v 0.715546 0.890986 1.634982 +v 0.722220 0.890986 1.578563 +v 0.717913 0.888088 1.578224 +v 0.711278 0.888088 1.634306 +v 0.689041 0.890986 1.745381 +v 0.704459 0.890986 1.690701 +v 0.700257 0.888088 1.689692 +v 0.684932 0.888088 1.744046 +v 0.645592 0.890986 1.850275 +v 0.669374 0.890986 1.798680 +v 0.665382 0.888088 1.797027 +v 0.641742 0.888088 1.848313 +v 0.586270 0.890985 1.947081 +v 0.617830 0.890985 1.899841 +v 0.614146 0.888088 1.897584 +v 0.582774 0.888088 1.944541 +v 0.512534 0.890985 2.033414 +v 0.551095 0.890985 1.991694 +v 0.547809 0.888088 1.988888 +v 0.509478 0.888088 2.030359 +v 0.426200 0.890985 2.107150 +v 0.470813 0.890985 2.071976 +v 0.468007 0.888088 2.068690 +v 0.423660 0.888088 2.103655 +v 0.329394 0.890985 2.166473 +v 0.378960 0.890985 2.138711 +v 0.376702 0.888087 2.135026 +v 0.327432 0.888088 2.162623 +v 0.224499 0.890985 2.209921 +v 0.277799 0.890985 2.190255 +v 0.276145 0.888087 2.186262 +v 0.223164 0.888088 2.205812 +v 0.114100 0.890985 2.236426 +v 0.169819 0.890985 2.225339 +v 0.168811 0.888087 2.221137 +v 0.113424 0.888087 2.232158 +v 0.057682 0.890985 2.243100 +v 0.057343 0.888087 2.238792 +v -0.110658 0.887121 2.226235 +v -0.055044 0.887121 2.232814 +v 0.000915 0.887121 2.235016 +v -0.054383 0.888245 2.224424 +v 0.000915 0.888245 2.226600 +v -0.109341 0.888245 2.217923 +v -0.219482 0.887121 2.200108 +v -0.165582 0.887121 2.215306 +v -0.163617 0.888245 2.207123 +v -0.216881 0.888245 2.192105 +v -0.322880 0.887121 2.157279 +v -0.272021 0.887121 2.180722 +v -0.268801 0.888245 2.172947 +v -0.319060 0.888245 2.149781 +v -0.418306 0.887121 2.098802 +v -0.371740 0.887121 2.129913 +v -0.367343 0.888245 2.122737 +v -0.413359 0.888245 2.091994 +v -0.503408 0.887121 2.026118 +v -0.462283 0.887121 2.064129 +v -0.456817 0.888245 2.057730 +v -0.497458 0.888245 2.020167 +v -0.576093 0.887121 1.941015 +v -0.541420 0.887121 1.984992 +v -0.535021 0.888245 1.979527 +v -0.569285 0.888245 1.936069 +v -0.634570 0.887121 1.845590 +v -0.607203 0.887121 1.894449 +v -0.600028 0.888245 1.890052 +v -0.627071 0.888245 1.841769 +v -0.677399 0.887121 1.742191 +v -0.658012 0.887121 1.794731 +v -0.650237 0.888245 1.791510 +v -0.669395 0.888245 1.739591 +v -0.703525 0.887121 1.633367 +v -0.692597 0.887121 1.688292 +v -0.684414 0.888245 1.686328 +v -0.695213 0.888245 1.632051 +v -0.712306 0.887121 1.521794 +v -0.710104 0.887121 1.577753 +v -0.701715 0.888245 1.577093 +v -0.703891 0.888245 1.521795 +v -0.703525 0.887121 1.410222 +v -0.710104 0.887121 1.465836 +v -0.701715 0.888245 1.466496 +v -0.695213 0.888245 1.411538 +v -0.677398 0.887121 1.301397 +v -0.692596 0.887121 1.355297 +v -0.684413 0.888245 1.357261 +v -0.669395 0.888245 1.303997 +v -0.634569 0.887121 1.197998 +v -0.658012 0.887121 1.248857 +v -0.650237 0.888245 1.252078 +v -0.627071 0.888245 1.201819 +v -0.576093 0.887121 1.102573 +v -0.607203 0.887121 1.149139 +v -0.600027 0.888245 1.153536 +v -0.569284 0.888245 1.107520 +v -0.503408 0.887121 1.017470 +v -0.541419 0.887121 1.058596 +v -0.535020 0.888245 1.064062 +v -0.497457 0.888245 1.023421 +v -0.418305 0.887121 0.944786 +v -0.462282 0.887121 0.979459 +v -0.456817 0.888245 0.985858 +v -0.413359 0.888245 0.951594 +v -0.322881 0.887121 0.886309 +v -0.371740 0.887121 0.913676 +v -0.367343 0.888245 0.920851 +v -0.319060 0.888245 0.893808 +v -0.219482 0.887121 0.843480 +v -0.272022 0.887121 0.862867 +v -0.268801 0.888245 0.870642 +v -0.216882 0.888245 0.851484 +v -0.110657 0.887121 0.817354 +v -0.165582 0.887121 0.828283 +v -0.163618 0.888245 0.836466 +v -0.109341 0.888245 0.825666 +v 0.000915 0.887121 0.808573 +v -0.055043 0.887121 0.810775 +v -0.054383 0.888245 0.819164 +v 0.000916 0.888245 0.816989 +v 0.112488 0.887121 0.817354 +v 0.056874 0.887121 0.810775 +v 0.056214 0.888245 0.819165 +v 0.111171 0.888245 0.825666 +v 0.221313 0.887122 0.843481 +v 0.167413 0.887122 0.828283 +v 0.165448 0.888245 0.836466 +v 0.218713 0.888245 0.851485 +v 0.324712 0.887122 0.886310 +v 0.273852 0.887122 0.862867 +v 0.270632 0.888245 0.870642 +v 0.320891 0.888245 0.893808 +v 0.420137 0.887122 0.944787 +v 0.373571 0.887122 0.913677 +v 0.369174 0.888245 0.920852 +v 0.415190 0.888245 0.951595 +v 0.505239 0.887122 1.017472 +v 0.464114 0.887122 0.979460 +v 0.458648 0.888245 0.985859 +v 0.499289 0.888245 1.023422 +v 0.577924 0.887122 1.102574 +v 0.543251 0.887122 1.058597 +v 0.536852 0.888245 1.064063 +v 0.571116 0.888245 1.107521 +v 0.636401 0.887122 1.198000 +v 0.609034 0.887122 1.149140 +v 0.601859 0.888245 1.153537 +v 0.628902 0.888246 1.201820 +v 0.679229 0.887122 1.301398 +v 0.659843 0.887122 1.248859 +v 0.652068 0.888246 1.252079 +v 0.671226 0.888246 1.303999 +v 0.705356 0.887122 1.410223 +v 0.694427 0.887122 1.355298 +v 0.686244 0.888246 1.357262 +v 0.697044 0.888245 1.411540 +v 0.714137 0.887122 1.521796 +v 0.711935 0.887122 1.465837 +v 0.703545 0.888245 1.466498 +v 0.705721 0.888246 1.521796 +v 0.705355 0.887122 1.633367 +v 0.711935 0.887122 1.577753 +v 0.703545 0.888246 1.577093 +v 0.697043 0.888246 1.632051 +v 0.679229 0.887122 1.742193 +v 0.694427 0.887122 1.688293 +v 0.686244 0.888246 1.686328 +v 0.671225 0.888246 1.739592 +v 0.636399 0.887122 1.845591 +v 0.659842 0.887122 1.794732 +v 0.652067 0.888246 1.791511 +v 0.628901 0.888246 1.841770 +v 0.577923 0.887122 1.941016 +v 0.609033 0.887122 1.894451 +v 0.601857 0.888246 1.890053 +v 0.571114 0.888245 1.936070 +v 0.505238 0.887122 2.026119 +v 0.543250 0.887122 1.984993 +v 0.536850 0.888245 1.979528 +v 0.499287 0.888245 2.020168 +v 0.420135 0.887121 2.098803 +v 0.464112 0.887122 2.064130 +v 0.458647 0.888245 2.057731 +v 0.415189 0.888245 2.091995 +v 0.324710 0.887121 2.157280 +v 0.373569 0.887121 2.129913 +v 0.369172 0.888245 2.122738 +v 0.320889 0.888245 2.149782 +v 0.221311 0.887121 2.200109 +v 0.273850 0.887121 2.180722 +v 0.270630 0.888245 2.172948 +v 0.218711 0.888245 2.192105 +v 0.112486 0.887121 2.226235 +v 0.167411 0.887121 2.215307 +v 0.165446 0.888245 2.207124 +v 0.111170 0.888245 2.217923 +v 0.056872 0.887121 2.232814 +v 0.056212 0.888245 2.224424 +v 0.518834 0.035964 2.349718 +v 0.520947 0.071707 2.346055 +v 0.486632 0.038332 2.365878 +v 0.488884 0.076429 2.361974 +v 0.524457 0.107008 2.339971 +v 0.529337 0.141649 2.331510 +v 0.492625 0.114053 2.355489 +v 0.497827 0.150976 2.346471 +v 0.535563 0.175416 2.320717 +v 0.543092 0.208103 2.307667 +v 0.504463 0.186966 2.334968 +v 0.512487 0.221805 2.321058 +v 0.551880 0.239505 2.292431 +v 0.561871 0.269432 2.275112 +v 0.521854 0.255275 2.304819 +v 0.532503 0.287173 2.286360 +v 0.573006 0.297696 2.255809 +v 0.585213 0.324128 2.234648 +v 0.544371 0.317298 2.265786 +v 0.557382 0.345469 2.243231 +v 0.598420 0.348558 2.211753 +v 0.612543 0.370842 2.187270 +v 0.571459 0.371508 2.218829 +v 0.586512 0.395259 2.192734 +v 0.627498 0.390836 2.161347 +v 0.643189 0.408425 2.134146 +v 0.602451 0.416570 2.165103 +v 0.619175 0.435317 2.136112 +v 0.659522 0.423491 2.105832 +v 0.676395 0.435951 2.076583 +v 0.636583 0.451375 2.105934 +v 0.654567 0.464655 2.074758 +v 0.693704 0.445719 2.046576 +v 0.711343 0.452742 2.015998 +v 0.673016 0.475066 2.042776 +v 0.691817 0.482552 2.010185 +v 0.729203 0.456971 1.985038 +v 0.747174 0.458386 1.953885 +v 0.710853 0.487059 1.977186 +v 0.730007 0.488567 1.943982 +v 0.765145 0.456971 1.922732 +v 0.783005 0.452742 1.891771 +v 0.749161 0.487059 1.910778 +v 0.768197 0.482552 1.877778 +v 0.800643 0.445718 1.861194 +v 0.817953 0.435951 1.831187 +v 0.786997 0.475066 1.845188 +v 0.805446 0.464655 1.813205 +v 0.834825 0.423491 1.801938 +v 0.851158 0.408425 1.773624 +v 0.823430 0.451375 1.782030 +v 0.840838 0.435317 1.751852 +v 0.866849 0.390836 1.746423 +v 0.881803 0.370842 1.720499 +v 0.857562 0.416570 1.722860 +v 0.873501 0.395259 1.695230 +v 0.895926 0.348557 1.696017 +v 0.909133 0.324127 1.673122 +v 0.888553 0.371508 1.669135 +v 0.902630 0.345469 1.644732 +v 0.921341 0.297696 1.651960 +v 0.932476 0.269432 1.632658 +v 0.915641 0.317297 1.622178 +v 0.927509 0.287172 1.601604 +v 0.942466 0.239505 1.615338 +v 0.951255 0.208102 1.600103 +v 0.938158 0.255274 1.583144 +v 0.947525 0.221805 1.566906 +v 0.958783 0.175415 1.587052 +v 0.965009 0.141649 1.576260 +v 0.955549 0.186965 1.552996 +v 0.962185 0.150975 1.541492 +v 0.969890 0.107007 1.567799 +v 0.973399 0.071707 1.561715 +v 0.967387 0.114053 1.532475 +v 0.971128 0.076428 1.525990 +v 0.975512 0.035964 1.558052 +v 0.973380 0.038332 1.522087 +v 0.291301 0.052423 2.459888 +v 0.170328 0.059158 2.488906 +v 0.294381 0.104523 2.454550 +v 0.173803 0.117953 2.482882 +v 0.048966 0.064766 2.501157 +v 0.052770 0.129134 2.494561 +v 0.299496 0.155978 2.445681 +v 0.179577 0.176018 2.472874 +v 0.306611 0.206472 2.433349 +v 0.187605 0.233001 2.458956 +v 0.059091 0.192704 2.483603 +v 0.067880 0.255088 2.468368 +v 0.315686 0.255692 2.417617 +v 0.197846 0.288544 2.441203 +v 0.326659 0.303337 2.398594 +v 0.210230 0.342312 2.419736 +v 0.079092 0.315896 2.448932 +v 0.092650 0.374760 2.425429 +v 0.339470 0.349110 2.376386 +v 0.224686 0.393965 2.394675 +v 0.354033 0.392734 2.351141 +v 0.241120 0.443194 2.366186 +v 0.108476 0.431310 2.397993 +v 0.126468 0.485205 2.366804 +v 0.370264 0.433932 2.323004 +v 0.259436 0.489686 2.334435 +v 0.388057 0.472459 2.292159 +v 0.279516 0.533162 2.299626 +v 0.146521 0.536103 2.332042 +v 0.168504 0.583702 2.293934 +v 0.407309 0.508069 2.258786 +v 0.301241 0.573347 2.261965 +v 0.427895 0.540550 2.223100 +v 0.324472 0.610003 2.221694 +v 0.192288 0.627697 2.252703 +v 0.217721 0.667827 2.208614 +v 0.449692 0.569695 2.185312 +v 0.349071 0.642892 2.179051 +v 0.472564 0.595332 2.145664 +v 0.374881 0.671824 2.134308 +v 0.244652 0.703834 2.161930 +v 0.272909 0.735508 2.112946 +v 0.496372 0.617294 2.104393 +v 0.401748 0.696607 2.087735 +v 0.520966 0.635455 2.061758 +v 0.429502 0.717102 2.039622 +v 0.302322 0.762640 2.061957 +v 0.332707 0.785078 2.009284 +v 0.546197 0.649693 2.018019 +v 0.457975 0.733169 1.990264 +v 0.571908 0.659931 1.973448 +v 0.486989 0.744722 1.939966 +v 0.363879 0.802668 1.955246 +v 0.395644 0.815317 1.900181 +v 0.597942 0.666094 1.928319 +v 0.516367 0.751677 1.889038 +v 0.624136 0.668157 1.882910 +v 0.545928 0.754005 1.837794 +v 0.427807 0.822931 1.844425 +v 0.460170 0.825480 1.788324 +v 0.650331 0.666094 1.837500 +v 0.575488 0.751677 1.786551 +v 0.676365 0.659931 1.792371 +v 0.604866 0.744722 1.735623 +v 0.492532 0.822931 1.732223 +v 0.524695 0.815317 1.676467 +v 0.702075 0.649693 1.747800 +v 0.633881 0.733169 1.685325 +v 0.727306 0.635455 1.704061 +v 0.662354 0.717102 1.635966 +v 0.556460 0.802668 1.621402 +v 0.587632 0.785078 1.567364 +v 0.751901 0.617294 1.661426 +v 0.690108 0.696607 1.587854 +v 0.775707 0.595332 1.620155 +v 0.716974 0.671823 1.541281 +v 0.618017 0.762640 1.514691 +v 0.647430 0.735508 1.463703 +v 0.798580 0.569695 1.580507 +v 0.742785 0.642892 1.496537 +v 0.820377 0.540550 1.542720 +v 0.767382 0.610003 1.453895 +v 0.675687 0.703833 1.414719 +v 0.702617 0.667827 1.368035 +v 0.840963 0.508069 1.507033 +v 0.790613 0.573347 1.413624 +v 0.860214 0.472459 1.473660 +v 0.812338 0.533162 1.375964 +v 0.728051 0.627696 1.323946 +v 0.751835 0.583701 1.282715 +v 0.878008 0.433932 1.442815 +v 0.832418 0.489685 1.341155 +v 0.894239 0.392733 1.414679 +v 0.850734 0.443193 1.309403 +v 0.773817 0.536103 1.244607 +v 0.793870 0.485205 1.209845 +v 0.908801 0.349110 1.389434 +v 0.867168 0.393965 1.280915 +v 0.921612 0.303337 1.367226 +v 0.881625 0.342311 1.255854 +v 0.811861 0.431310 1.178656 +v 0.827688 0.374760 1.151220 +v 0.932586 0.255691 1.348203 +v 0.894008 0.288544 1.234387 +v 0.941660 0.206472 1.332472 +v 0.904249 0.233000 1.216634 +v 0.841245 0.315896 1.127717 +v 0.852457 0.255087 1.108281 +v 0.948775 0.155977 1.320139 +v 0.912277 0.176018 1.202716 +v 0.953891 0.104522 1.311271 +v 0.918051 0.117952 1.192708 +v 0.861246 0.192703 1.093045 +v 0.867567 0.129133 1.082088 +v 0.956970 0.052423 1.305932 +v 0.921526 0.059158 1.186684 +v 0.871372 0.064766 1.075493 +v -0.266268 0.148711 2.453219 +v -0.166788 0.144362 2.478904 +v -0.171042 0.072404 2.486278 +v -0.270649 0.074585 2.460815 +v -0.360117 0.151276 2.417775 +v -0.364574 0.075871 2.425502 +v -0.248867 0.293760 2.423055 +v -0.149897 0.285169 2.449622 +v -0.159723 0.215429 2.466656 +v -0.258989 0.221919 2.440602 +v -0.342416 0.298826 2.387090 +v -0.352713 0.225746 2.404940 +v -0.220343 0.431576 2.373607 +v -0.122207 0.418955 2.401620 +v -0.137363 0.353149 2.427894 +v -0.235956 0.363788 2.400672 +v -0.313400 0.439019 2.336789 +v -0.329282 0.370062 2.364322 +v -0.181397 0.558764 2.306093 +v -0.084401 0.542423 2.336081 +v -0.104514 0.482173 2.370948 +v -0.202116 0.496700 2.342011 +v -0.273783 0.568401 2.268111 +v -0.294859 0.505265 2.304649 +v -0.132989 0.672195 2.222176 +v -0.037408 0.652536 2.254618 +v -0.061984 0.599324 2.297220 +v -0.158304 0.617380 2.266062 +v -0.224539 0.683787 2.182747 +v -0.250292 0.628027 2.227390 +v -0.076310 0.769074 2.123921 +v 0.017614 0.746582 2.159237 +v -0.010819 0.701719 2.208525 +v -0.105599 0.722859 2.174695 +v -0.166883 0.782337 2.082798 +v -0.196677 0.735325 2.134447 +v -0.012756 0.847015 2.013749 +v 0.079309 0.822244 2.052286 +v 0.047720 0.786835 2.107047 +v -0.045297 0.810539 2.070159 +v -0.102234 0.861623 1.970725 +v -0.135336 0.824518 2.028109 +v 0.056108 0.904101 1.894371 +v 0.146159 0.877660 1.936400 +v 0.112191 0.852576 1.995285 +v 0.021116 0.878261 1.955030 +v -0.032182 0.919692 1.849289 +v -0.067777 0.893407 1.910994 +v 0.128586 0.938924 1.768728 +v 0.216518 0.911465 1.814431 +v 0.181007 0.897324 1.875990 +v 0.092006 0.924357 1.832141 +v 0.041546 0.955116 1.721479 +v 0.004335 0.940298 1.785986 +v 0.202894 0.950628 1.639913 +v 0.288653 0.922826 1.689384 +v 0.252474 0.919977 1.752100 +v 0.165626 0.947693 1.704519 +v 0.117136 0.967022 1.590443 +v 0.079224 0.964036 1.656163 +v 0.277203 0.938924 1.511099 +v 0.360788 0.911464 1.564335 +v 0.324832 0.919977 1.626666 +v 0.240163 0.947693 1.575307 +v 0.192726 0.955116 1.459407 +v 0.155048 0.964036 1.524722 +v 0.349681 0.904100 1.385455 +v 0.431146 0.877659 1.442366 +v 0.396298 0.897324 1.502777 +v 0.313783 0.924357 1.447685 +v 0.266454 0.919692 1.331596 +v 0.229937 0.940298 1.394900 +v 0.418545 0.847015 1.266077 +v 0.497996 0.822244 1.326481 +v 0.465114 0.852576 1.383483 +v 0.384672 0.878261 1.324796 +v 0.336506 0.861622 1.210160 +v 0.302049 0.893407 1.269892 +v 0.482099 0.769073 1.155905 +v 0.559692 0.746581 1.219530 +v 0.529586 0.786834 1.271720 +v 0.451086 0.810539 1.209667 +v 0.401156 0.782336 1.098088 +v 0.369608 0.824517 1.152777 +v 0.538778 0.672194 1.057650 +v 0.614713 0.652536 1.124149 +v 0.588124 0.701718 1.170242 +v 0.511388 0.722858 1.105132 +v 0.458812 0.683786 0.998139 +v 0.430950 0.735325 1.046439 +v 0.587187 0.558764 0.973733 +v 0.661706 0.542423 1.042686 +v 0.639289 0.599324 1.081547 +v 0.564094 0.617379 1.013765 +v 0.508055 0.568400 0.912774 +v 0.484565 0.628026 0.953496 +v 0.626132 0.431576 0.906220 +v 0.699513 0.418954 0.977147 +v 0.681819 0.482173 1.007819 +v 0.607906 0.496699 0.937815 +v 0.547673 0.439018 0.844096 +v 0.529132 0.505265 0.876237 +v 0.654655 0.293760 0.856772 +v 0.727202 0.285168 0.929145 +v 0.714669 0.353148 0.950873 +v 0.641744 0.363787 0.879154 +v 0.576689 0.298826 0.793795 +v 0.563555 0.370061 0.816564 +v 0.672056 0.148710 0.826607 +v 0.744093 0.144361 0.899863 +v 0.737028 0.215428 0.912112 +v 0.664777 0.221918 0.839225 +v 0.594389 0.151275 0.763111 +v 0.586985 0.225745 0.775946 +v 0.748347 0.072403 0.892490 +v 0.676437 0.074585 0.819012 +v 0.598847 0.075871 0.755385 +v -0.449415 0.152398 2.374440 +v -0.453905 0.076434 2.382224 +v -0.536437 0.152798 2.327161 +v -0.540939 0.076635 2.334965 +v -0.431583 0.301043 2.343528 +v -0.441956 0.227420 2.361510 +v -0.518558 0.301834 2.296167 +v -0.528959 0.228018 2.314196 +v -0.402351 0.442275 2.292854 +v -0.418351 0.372806 2.320591 +v -0.489250 0.443438 2.245360 +v -0.505292 0.373786 2.273170 +v -0.362440 0.572616 2.223667 +v -0.383673 0.509013 2.260475 +v -0.449234 0.574121 2.175991 +v -0.470523 0.510351 2.212896 +v -0.312832 0.688858 2.137670 +v -0.338775 0.632685 2.182643 +v -0.399495 0.690669 2.089767 +v -0.425507 0.634348 2.134859 +v -0.254748 0.788139 2.036979 +v -0.284763 0.740779 2.089011 +v -0.341258 0.790211 1.988813 +v -0.371352 0.742726 2.040981 +v -0.189619 0.868013 1.924075 +v -0.222966 0.830633 1.981884 +v -0.275957 0.870295 1.875612 +v -0.309393 0.832816 1.933573 +v -0.119048 0.926513 1.801738 +v -0.154907 0.900033 1.863901 +v -0.205202 0.928949 1.752953 +v -0.241154 0.902399 1.815279 +v -0.044773 0.962200 1.672980 +v -0.082260 0.947272 1.737966 +v -0.130731 0.964729 1.623857 +v -0.168317 0.949762 1.689013 +v 0.031378 0.974194 1.540972 +v -0.006815 0.971186 1.607180 +v -0.054381 0.976754 1.491502 +v -0.092674 0.973739 1.557884 +v 0.107528 0.962199 1.408964 +v 0.069570 0.971186 1.474764 +v 0.021970 0.964729 1.359147 +v -0.016088 0.973739 1.425120 +v 0.181803 0.926513 1.280206 +v 0.145015 0.947272 1.343979 +v 0.096440 0.928948 1.230050 +v 0.059555 0.949762 1.293991 +v 0.252374 0.868012 1.157869 +v 0.217662 0.900033 1.218044 +v 0.167197 0.870294 1.107392 +v 0.132393 0.902399 1.167725 +v 0.317504 0.788138 1.044966 +v 0.285722 0.830632 1.100060 +v 0.232497 0.790210 0.994192 +v 0.200632 0.832815 1.049431 +v 0.375588 0.688858 0.944275 +v 0.347519 0.740778 0.992934 +v 0.290734 0.690669 0.893236 +v 0.262591 0.742725 0.942023 +v 0.425196 0.572615 0.858278 +v 0.401531 0.632684 0.899302 +v 0.340473 0.574121 0.807013 +v 0.316746 0.634347 0.848145 +v 0.465107 0.442274 0.789091 +v 0.446429 0.509012 0.821470 +v 0.380489 0.443437 0.737644 +v 0.361762 0.510350 0.770108 +v 0.494339 0.301042 0.738417 +v 0.481107 0.372805 0.761354 +v 0.409797 0.301833 0.686837 +v 0.396531 0.373785 0.709834 +v 0.512171 0.152397 0.707505 +v 0.504711 0.227419 0.720435 +v 0.427676 0.152797 0.655843 +v 0.420197 0.228017 0.668808 +v 0.516661 0.076434 0.699721 +v 0.432178 0.076635 0.648039 +v -0.060602 0.137886 2.492960 +v -0.064665 0.069156 2.500003 +v -0.044468 0.272378 2.464991 +v -0.053853 0.205765 2.481261 +v -0.018020 0.400162 2.419143 +v -0.032496 0.337308 2.444238 +v 0.018091 0.518093 2.356543 +v -0.001120 0.460545 2.389846 +v 0.062976 0.623266 2.278734 +v 0.039503 0.572441 2.319426 +v 0.115530 0.713093 2.187632 +v 0.088372 0.670243 2.234709 +v 0.174457 0.785362 2.085478 +v 0.144285 0.751541 2.137783 +v 0.238309 0.838291 1.974790 +v 0.205864 0.814333 2.031033 +v 0.305512 0.870580 1.858292 +v 0.271594 0.857074 1.917090 +v 0.374411 0.881432 1.738854 +v 0.339855 0.878710 1.798757 +v 0.443310 0.870580 1.619415 +v 0.408967 0.878710 1.678950 +v 0.510513 0.838291 1.502917 +v 0.477228 0.857074 1.560617 +v 0.574365 0.785361 1.392230 +v 0.542957 0.814333 1.446674 +v 0.633292 0.713093 1.290077 +v 0.604537 0.751540 1.339925 +v 0.685846 0.623265 1.198974 +v 0.660450 0.670242 1.242999 +v 0.730730 0.518093 1.121165 +v 0.709319 0.572440 1.158282 +v 0.766841 0.400161 1.058566 +v 0.749941 0.460545 1.087862 +v 0.793288 0.272377 1.012717 +v 0.781317 0.337307 1.033470 +v 0.809423 0.137886 0.984748 +v 0.802674 0.205765 0.996448 +v 0.813485 0.069156 0.977706 +v 0.406385 0.089025 2.406193 +v 0.403762 0.044650 2.410740 +v 0.416801 0.175857 2.388135 +v 0.410742 0.132850 2.398640 +v 0.433877 0.258359 2.358534 +v 0.424531 0.217778 2.374736 +v 0.457192 0.334500 2.318117 +v 0.444788 0.297345 2.339619 +v 0.486171 0.402404 2.267881 +v 0.471016 0.369589 2.294153 +v 0.520102 0.460400 2.209062 +v 0.502568 0.432734 2.239457 +v 0.558148 0.507059 2.143108 +v 0.538667 0.485223 2.176878 +v 0.599373 0.541231 2.071644 +v 0.578425 0.525764 2.107956 +v 0.642761 0.562078 1.996428 +v 0.620862 0.553358 2.034390 +v 0.687245 0.569084 1.919314 +v 0.664934 0.567327 1.957990 +v 0.731729 0.562078 1.842200 +v 0.709556 0.567327 1.880638 +v 0.775117 0.541231 1.766985 +v 0.753627 0.553357 1.804238 +v 0.816342 0.507057 1.695521 +v 0.796065 0.525762 1.730672 +v 0.854387 0.460399 1.629567 +v 0.835822 0.485222 1.661751 +v 0.888318 0.402404 1.570748 +v 0.871921 0.432733 1.599172 +v 0.917297 0.334499 1.520511 +v 0.903473 0.369589 1.544476 +v 0.940611 0.258359 1.480096 +v 0.929701 0.297344 1.499010 +v 0.957687 0.175856 1.450493 +v 0.949958 0.217778 1.463893 +v 0.968104 0.089024 1.432437 +v 0.963746 0.132849 1.439989 +v 0.970727 0.044649 1.427889 +v -0.769087 0.743718 1.967094 +v -0.714695 0.747597 2.044239 +v -0.653195 0.752111 2.113454 +v -0.585817 0.756073 2.175694 +v -0.513708 0.758062 2.231602 +v -0.437146 0.758264 2.280675 +v -0.356540 0.757141 2.322686 +v -0.272344 0.754447 2.357557 +v -0.184993 0.749770 2.385013 +v -0.094780 0.744497 2.403973 +v -0.001738 0.739542 2.412884 +v 0.561163 0.746665 2.205873 +v 0.611309 0.749409 2.158312 +v 0.655617 0.751457 2.110480 +v 0.694764 0.752908 2.061984 +v 0.729411 0.753847 2.012408 +v 0.760517 0.754582 1.961543 +v 0.788547 0.754865 1.908811 +v 0.813666 0.754561 1.853565 +v 0.836024 0.753529 1.795152 +v 0.855793 0.751224 1.733205 +v 0.873113 0.747058 1.667338 +v -0.107530 0.891617 2.206488 +v -0.053475 0.891617 2.212882 +v 0.000915 0.891617 2.215022 +v -0.052443 0.896112 2.199763 +v 0.000915 0.896112 2.201863 +v -0.105471 0.896112 2.193490 +v -0.213304 0.891617 2.181093 +v -0.160914 0.891617 2.195865 +v -0.157842 0.896112 2.183070 +v -0.209237 0.896112 2.168578 +v -0.313803 0.891617 2.139465 +v -0.264370 0.891617 2.162250 +v -0.259334 0.896112 2.150093 +v -0.307829 0.896112 2.127740 +v -0.406554 0.891617 2.082627 +v -0.361293 0.891617 2.112865 +v -0.354418 0.896112 2.101645 +v -0.398819 0.896112 2.071981 +v -0.489271 0.891616 2.011980 +v -0.449298 0.891617 2.048926 +v -0.440752 0.896112 2.038920 +v -0.479966 0.896112 2.002675 +v -0.559918 0.891617 1.929263 +v -0.526217 0.891617 1.972007 +v -0.516210 0.896112 1.963461 +v -0.549272 0.896112 1.921528 +v -0.616755 0.891617 1.836513 +v -0.590156 0.891617 1.884003 +v -0.578936 0.896112 1.877127 +v -0.605030 0.896112 1.830538 +v -0.658384 0.891616 1.736014 +v -0.639541 0.891617 1.787079 +v -0.627383 0.896112 1.782043 +v -0.645868 0.896112 1.731946 +v -0.683778 0.891616 1.630239 +v -0.673156 0.891616 1.683625 +v -0.660360 0.896112 1.680553 +v -0.670781 0.896112 1.628181 +v -0.692313 0.891616 1.521795 +v -0.690172 0.891616 1.576184 +v -0.677054 0.896112 1.575152 +v -0.679153 0.896112 1.521795 +v -0.683778 0.891616 1.413350 +v -0.690172 0.891616 1.467405 +v -0.677054 0.896112 1.468437 +v -0.670780 0.896112 1.415408 +v -0.658383 0.891616 1.307575 +v -0.673155 0.891616 1.359964 +v -0.660360 0.896112 1.363036 +v -0.645868 0.896112 1.311641 +v -0.616755 0.891616 1.207075 +v -0.639540 0.891616 1.256509 +v -0.627383 0.896112 1.261544 +v -0.605030 0.896112 1.213050 +v -0.559917 0.891617 1.114325 +v -0.590155 0.891617 1.159585 +v -0.578935 0.896112 1.166461 +v -0.549271 0.896112 1.122060 +v -0.489270 0.891617 1.031608 +v -0.526216 0.891617 1.071581 +v -0.516210 0.896112 1.080127 +v -0.479965 0.896112 1.040913 +v -0.406553 0.891617 0.960961 +v -0.449297 0.891617 0.994662 +v -0.440751 0.896112 1.004668 +v -0.398818 0.896112 0.971607 +v -0.313804 0.891617 0.904124 +v -0.361293 0.891617 0.930723 +v -0.354418 0.896112 0.941943 +v -0.307830 0.896112 0.915849 +v -0.213304 0.891617 0.862495 +v -0.264370 0.891617 0.881338 +v -0.259335 0.896112 0.893496 +v -0.209238 0.896112 0.875011 +v -0.107529 0.891617 0.837101 +v -0.160915 0.891617 0.847724 +v -0.157843 0.896112 0.860519 +v -0.105471 0.896112 0.850099 +v 0.000915 0.891617 0.828567 +v -0.053474 0.891617 0.830707 +v -0.052442 0.896112 0.843826 +v 0.000915 0.896112 0.841726 +v 0.109360 0.891617 0.837102 +v 0.055305 0.891617 0.830707 +v 0.054273 0.896112 0.843826 +v 0.107302 0.896112 0.850099 +v 0.215135 0.891617 0.862496 +v 0.162746 0.891617 0.847724 +v 0.159674 0.896112 0.860520 +v 0.211068 0.896112 0.875011 +v 0.315635 0.891617 0.904124 +v 0.266201 0.891617 0.881339 +v 0.261165 0.896112 0.893496 +v 0.309660 0.896112 0.915849 +v 0.408385 0.891617 0.960962 +v 0.363125 0.891617 0.930724 +v 0.356249 0.896112 0.941944 +v 0.400650 0.896112 0.971608 +v 0.491102 0.891617 1.031609 +v 0.451129 0.891617 0.994663 +v 0.442583 0.896112 1.004669 +v 0.481797 0.896112 1.040914 +v 0.561749 0.891617 1.114326 +v 0.528048 0.891617 1.071582 +v 0.518041 0.896112 1.080128 +v 0.551103 0.896112 1.122061 +v 0.618586 0.891617 1.207077 +v 0.591987 0.891617 1.159587 +v 0.580767 0.896112 1.166462 +v 0.606861 0.896112 1.213051 +v 0.660214 0.891617 1.307577 +v 0.641372 0.891617 1.256510 +v 0.629214 0.896112 1.261546 +v 0.647699 0.896112 1.311643 +v 0.685608 0.891617 1.413351 +v 0.674986 0.891617 1.359966 +v 0.662190 0.896112 1.363037 +v 0.672611 0.896112 1.415410 +v 0.694143 0.891617 1.521796 +v 0.692003 0.891617 1.467406 +v 0.678884 0.896112 1.468438 +v 0.680984 0.896112 1.521796 +v 0.685608 0.891617 1.630240 +v 0.692003 0.891617 1.576185 +v 0.678884 0.896112 1.575152 +v 0.672611 0.896112 1.628181 +v 0.660214 0.891617 1.736014 +v 0.674986 0.891617 1.683625 +v 0.662190 0.896112 1.680553 +v 0.647698 0.896112 1.731948 +v 0.618585 0.891617 1.836514 +v 0.641371 0.891617 1.787081 +v 0.629213 0.896112 1.782045 +v 0.606860 0.896112 1.830540 +v 0.561748 0.891617 1.929264 +v 0.591986 0.891617 1.884004 +v 0.580765 0.896112 1.877128 +v 0.551101 0.896112 1.921529 +v 0.491100 0.891617 2.011981 +v 0.528046 0.891617 1.972008 +v 0.518040 0.896112 1.963462 +v 0.481795 0.896112 2.002676 +v 0.408383 0.891617 2.082628 +v 0.451127 0.891617 2.048927 +v 0.442581 0.896112 2.038921 +v 0.400648 0.896112 2.071982 +v 0.315633 0.891617 2.139465 +v 0.363123 0.891617 2.112866 +v 0.356247 0.896112 2.101646 +v 0.309659 0.896112 2.127741 +v 0.215133 0.891617 2.181094 +v 0.266199 0.891617 2.162251 +v 0.261163 0.896112 2.150093 +v 0.211066 0.896112 2.168578 +v 0.109358 0.891617 2.206488 +v 0.162744 0.891617 2.195865 +v 0.159672 0.896112 2.183070 +v 0.107300 0.896112 2.193490 +v 0.055304 0.891617 2.212882 +v 0.054271 0.896112 2.199763 +v 0.654764 0.752749 0.931198 +v 0.588043 0.755627 0.867825 +v 0.515822 0.757856 0.811532 +v 0.438806 0.758611 0.762192 +v 0.357919 0.757278 0.719526 +v 0.272906 0.755801 0.685247 +v 0.183380 0.755927 0.661237 +v -0.921327 0.672514 1.313525 +v -0.898227 0.685980 1.262104 +v -0.873957 0.696234 1.211581 +v -0.849062 0.703092 1.161619 +v -0.823737 0.706141 1.111928 +v -0.797517 0.706131 1.062862 +v -0.769974 0.703832 1.014772 +v -0.740569 0.699469 0.967150 +v -0.708651 0.693182 0.919527 +v -0.675874 0.683906 0.872815 +v -0.643898 0.670547 0.828033 +v 0.078941 1.137034 1.738787 +v 0.081187 1.145075 1.692483 +v 0.049363 1.145978 1.698800 +v 0.053895 1.138021 1.741445 +v 0.082342 1.126699 1.785635 +v 0.059744 1.126942 1.790665 +v 0.029721 1.137898 1.746644 +v 0.037332 1.126860 1.795021 +v 0.023690 1.145847 1.704678 +v 0.118297 1.137156 1.719464 +v 0.106227 1.133691 1.744601 +v 0.154496 1.126896 1.750054 +v 0.137070 1.125842 1.765919 +v 0.105626 1.125758 1.781435 +v 0.129280 1.121582 1.788357 +v 0.127609 1.145791 1.655457 +v 0.106687 1.145936 1.671638 +v 0.135710 1.138280 1.701273 +v 0.154604 1.138284 1.685320 +v 0.172216 1.127236 1.735208 +v 0.189321 1.127268 1.720089 +v 0.189821 1.137481 1.650042 +v 0.166295 1.145130 1.611892 +v 0.145359 1.145834 1.635877 +v 0.171111 1.138441 1.666909 +v 0.220229 1.127156 1.686052 +v 0.204895 1.127371 1.703397 +v 0.210317 1.137635 1.611279 +v 0.215327 1.134158 1.638714 +v 0.257723 1.127412 1.614850 +v 0.252945 1.126347 1.637933 +v 0.236610 1.126238 1.668973 +v 0.259926 1.122109 1.660752 +v 0.181246 1.145981 1.555614 +v 0.174915 1.145928 1.580732 +v 0.213718 1.138769 1.586324 +v 0.219637 1.138780 1.562310 +v 0.263340 1.127763 1.592420 +v 0.268299 1.127802 1.570134 +v 0.227416 1.137971 1.513059 +v 0.185779 1.145597 1.496870 +v 0.183279 1.146202 1.529375 +v 0.222182 1.138937 1.537708 +v 0.273314 1.127688 1.524425 +v 0.271096 1.127905 1.547473 +v 0.221220 1.138099 1.469638 +v 0.241401 1.134635 1.488900 +v 0.261807 1.127910 1.444749 +v 0.271513 1.126856 1.466251 +v 0.276538 1.126762 1.500978 +v 0.290682 1.122672 1.480700 +v 0.165100 1.146312 1.441541 +v 0.174402 1.146383 1.466323 +v 0.209302 1.139215 1.447439 +v 0.199971 1.139196 1.424524 +v 0.253165 1.128241 1.423291 +v 0.244075 1.128256 1.402338 +v 0.177307 1.138312 1.380091 +v 0.134652 1.145766 1.391324 +v 0.151735 1.146407 1.418834 +v 0.187565 1.139320 1.403116 +v 0.221262 1.128092 1.362396 +v 0.233016 1.128340 1.382352 +v 0.146762 1.138374 1.348594 +v 0.174424 1.134940 1.352319 +v 0.165098 1.128193 1.304684 +v 0.185606 1.127174 1.316383 +v 0.210093 1.127131 1.341533 +v 0.209726 1.123056 1.316885 +v 0.085596 1.146563 1.360078 +v 0.107876 1.146513 1.373846 +v 0.124062 1.139448 1.337635 +v 0.103035 1.139373 1.324578 +v 0.145482 1.128489 1.292398 +v 0.125801 1.128458 1.280789 +v 0.058566 1.138374 1.301954 +v 0.030539 1.146042 1.337643 +v 0.060998 1.146757 1.350304 +v 0.080406 1.139445 1.314549 +v 0.083851 1.128214 1.261883 +v 0.105096 1.128497 1.271121 +v 0.015329 1.138352 1.294433 +v 0.039908 1.134960 1.281182 +v 0.004473 1.128148 1.248226 +v 0.027956 1.127179 1.245629 +v 0.062555 1.127202 1.251574 +v 0.047874 1.123114 1.231923 +v -0.028354 1.146734 1.341469 +v -0.001909 1.146808 1.339981 +v -0.009484 1.139368 1.298919 +v -0.034174 1.139245 1.300723 +v -0.018628 1.128404 1.249823 +v -0.041380 1.128331 1.252008 +v 0.025837 1.152110 1.378388 +v 0.050533 1.151738 1.382596 +v 0.073860 1.151332 1.389808 +v 0.046092 1.155180 1.412398 +v 0.067502 1.154494 1.416097 +v 0.023877 1.155667 1.410635 +v 0.084828 1.156399 1.580867 +v 0.080404 1.157624 1.559276 +v 0.058714 1.158870 1.563582 +v 0.064296 1.157379 1.586971 +v 0.092759 1.154388 1.603100 +v 0.072896 1.155202 1.612114 +v 0.052303 1.155643 1.618821 +v 0.044326 1.158059 1.591469 +v 0.039012 1.159622 1.566908 +v 0.021595 1.159895 1.570181 +v 0.026027 1.158395 1.595526 +v 0.032415 1.156014 1.624378 +v 0.008477 1.158419 1.598704 +v 0.012718 1.155906 1.628261 +v 0.004767 1.159932 1.572948 +v 0.073384 1.158784 1.512678 +v 0.098266 1.156895 1.509228 +v 0.095170 1.156653 1.486904 +v 0.070329 1.158545 1.489251 +v 0.091492 1.156079 1.465006 +v 0.067826 1.157834 1.465589 +v 0.115410 1.153794 1.462321 +v 0.120844 1.154095 1.483474 +v 0.124313 1.154350 1.505589 +v 0.045568 1.159067 1.467283 +v 0.047624 1.160004 1.491991 +v 0.050629 1.160260 1.515822 +v 0.028167 1.160783 1.494336 +v 0.031703 1.160921 1.518517 +v 0.025264 1.159917 1.469278 +v 0.007312 1.160285 1.470812 +v 0.010767 1.161149 1.496330 +v 0.014275 1.161358 1.520995 +v -0.002344 1.161462 1.523367 +v -0.005904 1.161231 1.498496 +v -0.009588 1.160340 1.472665 +v 0.138414 1.150751 1.454327 +v 0.146082 1.150978 1.477476 +v 0.150592 1.151124 1.501881 +v 0.126806 1.153699 1.548735 +v 0.125231 1.153278 1.566859 +v 0.146998 1.150407 1.572005 +v 0.151563 1.150560 1.550342 +v 0.138226 1.150450 1.592116 +v 0.124391 1.152572 1.582605 +v 0.152591 1.150876 1.526572 +v 0.126385 1.154018 1.527831 +v 0.100910 1.156637 1.531686 +v 0.103092 1.155944 1.553019 +v 0.076664 1.158429 1.536283 +v 0.054231 1.159877 1.539777 +v 0.035266 1.160500 1.542681 +v 0.017845 1.160884 1.545479 +v 0.001188 1.160971 1.548012 +v 0.124610 1.150758 1.611241 +v 0.107015 1.151052 1.628015 +v 0.110509 1.153497 1.590685 +v 0.044747 1.157500 1.440695 +v 0.066187 1.156547 1.441284 +v 0.023842 1.158206 1.441140 +v 0.002442 1.155818 1.409918 +v 0.004552 1.158479 1.441735 +v -0.013781 1.158546 1.443367 +v -0.018371 1.155855 1.411287 +v 0.104824 1.155155 1.571987 +v 0.101749 1.152830 1.427282 +v 0.086525 1.153658 1.422636 +v 0.087087 1.155284 1.443816 +v 0.107376 1.153511 1.442951 +v 0.112136 1.150868 1.415290 +v 0.126957 1.150752 1.433376 +v 0.086388 1.151455 1.641130 +v 0.064020 1.151857 1.651318 +v 0.041203 1.151975 1.659303 +v 0.017908 1.151878 1.664418 +v 0.001178 1.152079 1.376488 +v -0.023158 1.152073 1.377820 +v 0.094414 1.151027 1.400736 +v -0.002600 1.145852 1.706245 +v -0.034916 1.144830 1.709123 +v -0.019722 1.136849 1.752934 +v 0.005059 1.137936 1.748449 +v 0.014604 1.126863 1.797207 +v -0.008462 1.126554 1.798809 +v -0.062924 1.136797 1.745444 +v -0.044266 1.133418 1.766184 +v -0.031888 1.125533 1.801408 +v -0.066444 1.125506 1.795492 +v -0.051414 1.121292 1.814870 +v -0.087749 1.126493 1.785213 +v -0.089874 1.145353 1.686629 +v -0.107369 1.137774 1.722875 +v -0.084752 1.137847 1.732877 +v -0.065249 1.145605 1.696286 +v -0.108992 1.126769 1.776002 +v -0.129694 1.126735 1.766357 +v -0.112407 1.145281 1.672817 +v -0.139238 1.144481 1.655676 +v -0.151084 1.136828 1.698910 +v -0.128388 1.137864 1.709843 +v -0.149377 1.126785 1.754771 +v -0.168991 1.126511 1.742507 +v -0.181645 1.136867 1.667458 +v -0.178745 1.133440 1.695209 +v -0.189488 1.125539 1.730839 +v -0.213977 1.125578 1.705744 +v -0.213249 1.121350 1.730137 +v -0.225169 1.126607 1.684910 +v -0.169408 1.145299 1.605865 +v -0.204352 1.137951 1.623071 +v -0.191923 1.137969 1.644458 +v -0.156275 1.145281 1.628196 +v -0.236945 1.126924 1.664969 +v -0.248033 1.126937 1.644992 +v -0.178723 1.145461 1.581246 +v -0.190242 1.144790 1.550747 +v -0.225654 1.137100 1.577978 +v -0.213707 1.138086 1.600170 +v -0.257153 1.127019 1.624043 +v -0.265822 1.126788 1.602583 +v -0.231897 1.137210 1.534557 +v -0.245867 1.133748 1.558715 +v -0.275556 1.125856 1.581077 +v -0.280621 1.125946 1.546370 +v -0.294417 1.121733 1.566409 +v -0.277425 1.127000 1.522939 +v -0.185947 1.145626 1.491831 +v -0.224171 1.138363 1.485284 +v -0.226690 1.138347 1.509901 +v -0.187919 1.145680 1.518232 +v -0.275229 1.127350 1.499879 +v -0.272455 1.127391 1.477190 +v -0.179488 1.145727 1.466284 +v -0.170805 1.145101 1.435084 +v -0.214891 1.137556 1.436265 +v -0.218274 1.138526 1.461250 +v -0.267514 1.127490 1.454875 +v -0.261910 1.127280 1.432408 +v -0.194408 1.137696 1.397458 +v -0.219919 1.134222 1.408789 +v -0.257139 1.126364 1.409272 +v -0.240824 1.126470 1.378206 +v -0.263810 1.122296 1.386180 +v -0.224456 1.127530 1.361135 +v -0.132510 1.146186 1.391307 +v -0.159180 1.138858 1.362130 +v -0.175696 1.138840 1.380569 +v -0.150035 1.146070 1.410777 +v -0.209118 1.127884 1.343771 +v -0.193531 1.127923 1.327048 +v -0.111639 1.146443 1.375024 +v -0.085948 1.145783 1.354331 +v -0.122844 1.138039 1.327927 +v -0.140275 1.139015 1.346150 +v -0.176411 1.128019 1.311900 +v -0.158664 1.127799 1.297020 +v -0.083449 1.138140 1.308582 +v -0.110752 1.134687 1.302749 +v -0.141194 1.126870 1.281108 +v -0.109718 1.126950 1.265571 +v -0.133042 1.122823 1.258381 +v -0.086436 1.127995 1.261388 +v -0.058378 1.139258 1.305924 +v -0.054157 1.146761 1.347453 +v -0.063819 1.128322 1.256366 +v -0.070018 1.151841 1.392129 +v -0.092552 1.151521 1.403082 +v -0.059105 1.155535 1.422518 +v -0.079933 1.154968 1.430446 +v -0.112917 1.151031 1.416553 +v -0.099424 1.154034 1.440023 +v -0.049658 1.158619 1.579095 +v -0.071628 1.157342 1.581064 +v -0.069808 1.156146 1.603032 +v -0.048387 1.157138 1.603118 +v -0.027961 1.157943 1.601832 +v -0.030123 1.159346 1.576893 +v -0.027925 1.155522 1.630324 +v -0.049572 1.154984 1.629670 +v -0.071166 1.154088 1.626597 +v -0.012246 1.159753 1.575058 +v -0.009258 1.158301 1.600580 +v -0.007277 1.155943 1.630069 +v -0.077977 1.158441 1.534366 +v -0.081630 1.158294 1.511021 +v -0.106123 1.156269 1.515743 +v -0.102812 1.156381 1.538039 +v -0.131735 1.153719 1.519661 +v -0.128821 1.153725 1.541861 +v -0.132441 1.153305 1.497830 +v -0.108749 1.155789 1.493689 +v -0.085868 1.157560 1.487607 +v -0.064030 1.158831 1.482986 +v -0.059202 1.159736 1.507279 +v -0.044009 1.159750 1.479188 +v -0.040157 1.160450 1.504009 +v -0.036675 1.160599 1.528310 +v -0.055963 1.159782 1.531140 +v -0.022606 1.160976 1.501050 +v -0.026414 1.160166 1.475538 +v -0.019031 1.161184 1.525756 +v -0.156765 1.150224 1.496612 +v -0.157621 1.150406 1.520988 +v -0.155072 1.150396 1.545678 +v -0.119121 1.153292 1.583983 +v -0.142418 1.150022 1.592474 +v -0.131950 1.149895 1.611984 +v -0.112517 1.152889 1.600937 +v -0.107287 1.152215 1.615819 +v -0.117881 1.149983 1.628826 +v -0.150066 1.150216 1.569939 +v -0.124587 1.153587 1.563797 +v -0.099056 1.156260 1.560341 +v -0.074501 1.158167 1.557945 +v -0.095158 1.155598 1.581432 +v -0.052589 1.159439 1.555068 +v -0.033287 1.160206 1.552531 +v -0.015576 1.160730 1.550279 +v -0.099428 1.150245 1.643343 +v -0.091690 1.153154 1.619669 +v -0.077831 1.150628 1.654502 +v -0.091102 1.156136 1.463825 +v -0.070708 1.157353 1.457228 +v -0.050513 1.158018 1.451795 +v -0.031834 1.158388 1.446949 +v -0.038732 1.155740 1.415815 +v -0.091493 1.154838 1.600127 +v -0.129154 1.152306 1.460366 +v -0.130150 1.152918 1.476988 +v -0.110463 1.154954 1.472113 +v -0.115859 1.153271 1.451626 +v -0.142469 1.150207 1.451778 +v -0.151630 1.150135 1.473290 +v -0.054358 1.151207 1.661309 +v -0.030029 1.151711 1.664804 +v -0.005886 1.151872 1.666051 +v -0.046893 1.152068 1.383360 +v -0.129562 1.150527 1.432826 +v -0.028867 1.110042 1.857170 +v -0.056631 1.109866 1.854262 +v -0.001809 1.110264 1.857654 +v -0.084073 1.110048 1.847902 +v -0.110182 1.110232 1.839453 +v -0.133959 1.110226 1.830328 +v -0.156101 1.110188 1.819959 +v -0.177298 1.110237 1.807771 +v -0.198334 1.110278 1.793611 +v -0.240743 1.109975 1.758612 +v -0.219971 1.110099 1.777294 +v -0.259194 1.110190 1.737357 +v -0.275337 1.110426 1.715203 +v -0.289211 1.110454 1.693845 +v -0.301044 1.110463 1.672433 +v -0.311038 1.110543 1.650103 +v -0.319742 1.110613 1.626261 +v -0.333508 1.110388 1.572932 +v -0.327672 1.110476 1.600293 +v -0.335935 1.110627 1.544906 +v -0.335966 1.110896 1.517522 +v -0.331620 1.110977 1.467807 +v -0.334632 1.110944 1.492092 +v -0.326577 1.111071 1.443864 +v -0.319596 1.111154 1.419442 +v -0.299354 1.110946 1.368132 +v -0.310732 1.111029 1.393731 +v -0.284833 1.111191 1.344039 +v -0.268757 1.111462 1.321887 +v -0.236013 1.111533 1.284239 +v -0.252727 1.111509 1.302108 +v -0.217858 1.111620 1.267841 +v -0.197849 1.111693 1.252190 +v -0.151268 1.111440 1.222563 +v -0.175546 1.111547 1.236591 +v -0.125340 1.111668 1.211615 +v -0.099302 1.111909 1.203160 +v -0.050696 1.111920 1.191976 +v -0.074711 1.111933 1.196593 +v -0.026382 1.111980 1.189392 +v -0.001007 1.112024 1.188498 +v 0.054082 1.111677 1.191922 +v 0.026196 1.111832 1.188993 +v 0.081514 1.111873 1.198321 +v 0.107565 1.112065 1.206808 +v 0.153435 1.111988 1.226339 +v 0.131313 1.112052 1.215956 +v 0.174606 1.112013 1.238539 +v 0.195636 1.112008 1.252725 +v 0.238141 1.111568 1.287844 +v 0.217323 1.111775 1.269093 +v 0.256582 1.111718 1.309167 +v 0.272685 1.111871 1.331372 +v 0.286515 1.111809 1.352734 +v 0.298299 1.111712 1.374126 +v 0.308247 1.111707 1.396430 +v 0.316908 1.111658 1.420247 +v 0.330630 1.111155 1.473556 +v 0.324820 1.111398 1.446186 +v 0.333019 1.111271 1.501661 +v 0.333005 1.111401 1.529116 +v 0.331639 1.111310 1.554531 +v 0.328601 1.111198 1.578756 +v 0.323543 1.111178 1.602643 +v 0.316557 1.111113 1.626987 +v 0.307729 1.110845 1.652580 +v 0.296359 1.110595 1.678103 +v 0.281783 1.110708 1.702252 +v 0.265639 1.110834 1.724476 +v 0.249600 1.110748 1.744245 +v 0.232905 1.110642 1.762066 +v 0.214773 1.110629 1.778426 +v 0.194820 1.110580 1.794018 +v 0.172653 1.110327 1.809525 +v 0.148477 1.110103 1.823484 +v 0.122511 1.110242 1.834465 +v 0.096397 1.110388 1.842970 +v 0.071799 1.110337 1.849552 +v 0.047807 1.110256 1.854166 +v 0.023509 1.110270 1.856755 +v -0.082223 0.834827 0.023350 +v 0.000000 0.838877 0.023350 +v 0.000000 0.837627 0.021258 +v -0.082101 0.833583 0.021258 +v -0.163657 0.822758 0.023350 +v -0.163413 0.821532 0.021258 +v -0.163657 0.822758 0.041561 +v -0.082223 0.834827 0.041561 +v 0.000000 0.838877 0.041561 +v -0.243510 0.802745 0.023350 +v -0.243148 0.801549 0.021258 +v -0.321025 0.775021 0.023350 +v -0.320546 0.773866 0.021258 +v -0.321025 0.775021 0.041561 +v -0.243510 0.802745 0.041561 +v -0.395440 0.739814 0.023350 +v -0.394850 0.738712 0.021258 +v -0.466055 0.697500 0.023350 +v -0.465361 0.696461 0.021258 +v -0.466055 0.697500 0.041561 +v -0.395440 0.739814 0.041561 +v -0.532171 0.648453 0.023350 +v -0.531379 0.647486 0.021258 +v -0.593175 0.593175 0.023350 +v -0.592291 0.592291 0.021258 +v -0.593175 0.593175 0.041561 +v -0.532171 0.648453 0.041561 +v -0.648453 0.532171 0.023350 +v -0.647486 0.531379 0.021258 +v -0.697500 0.466055 0.023350 +v -0.696461 0.465361 0.021258 +v -0.697500 0.466055 0.041561 +v -0.648453 0.532171 0.041561 +v -0.739814 0.395440 0.023350 +v -0.738712 0.394850 0.021258 +v -0.775021 0.321025 0.023350 +v -0.773866 0.320546 0.021258 +v -0.775021 0.321025 0.041561 +v -0.739814 0.395440 0.041561 +v -0.802745 0.243510 0.023350 +v -0.801549 0.243148 0.021258 +v -0.822758 0.163657 0.023350 +v -0.821532 0.163413 0.021258 +v -0.822758 0.163657 0.041561 +v -0.802745 0.243510 0.041561 +v -0.834827 0.082223 0.023350 +v -0.833583 0.082101 0.021258 +v -0.838877 0.000000 0.023350 +v -0.837626 0.000000 0.021258 +v -0.838876 0.000000 0.041561 +v -0.834827 0.082223 0.041561 +v -0.834827 -0.082223 0.023350 +v -0.833583 -0.082101 0.021258 +v -0.822758 -0.163657 0.023350 +v -0.821532 -0.163413 0.021258 +v -0.822758 -0.163657 0.041561 +v -0.834827 -0.082223 0.041561 +v -0.802745 -0.243510 0.023350 +v -0.801549 -0.243148 0.021258 +v -0.775021 -0.321024 0.023350 +v -0.773866 -0.320546 0.021258 +v -0.775021 -0.321024 0.041561 +v -0.802745 -0.243510 0.041561 +v -0.739814 -0.395439 0.023350 +v -0.738712 -0.394850 0.021258 +v -0.697500 -0.466055 0.023350 +v -0.696461 -0.465361 0.021258 +v -0.697500 -0.466055 0.041561 +v -0.739814 -0.395439 0.041561 +v -0.648453 -0.532171 0.023350 +v -0.647486 -0.531379 0.021258 +v -0.593175 -0.593175 0.023350 +v -0.592291 -0.592291 0.021258 +v -0.593175 -0.593175 0.041561 +v -0.648453 -0.532171 0.041561 +v -0.532171 -0.648453 0.023350 +v -0.531379 -0.647486 0.021258 +v -0.466055 -0.697500 0.023350 +v -0.465361 -0.696461 0.021258 +v -0.466055 -0.697500 0.041561 +v -0.532171 -0.648453 0.041561 +v -0.395439 -0.739814 0.023350 +v -0.394850 -0.738712 0.021258 +v -0.321024 -0.775021 0.023350 +v -0.320546 -0.773866 0.021258 +v -0.321024 -0.775021 0.041561 +v -0.395439 -0.739814 0.041561 +v -0.243510 -0.802745 0.023350 +v -0.243147 -0.801549 0.021258 +v -0.163657 -0.822758 0.023350 +v -0.163413 -0.821532 0.021258 +v -0.163657 -0.822758 0.041561 +v -0.243510 -0.802745 0.041561 +v -0.082223 -0.834827 0.023350 +v -0.082101 -0.833583 0.021258 +v 0.000000 -0.838877 0.023350 +v 0.000000 -0.837626 0.021258 +v 0.000000 -0.838876 0.041561 +v -0.082223 -0.834827 0.041561 +v 0.082224 -0.834827 0.023350 +v 0.082101 -0.833583 0.021258 +v 0.163657 -0.822758 0.023350 +v 0.163413 -0.821532 0.021258 +v 0.163657 -0.822758 0.041561 +v 0.082224 -0.834827 0.041561 +v 0.243511 -0.802745 0.023350 +v 0.243148 -0.801549 0.021258 +v 0.321025 -0.775021 0.023350 +v 0.320547 -0.773866 0.021258 +v 0.321025 -0.775021 0.041561 +v 0.243511 -0.802745 0.041561 +v 0.395440 -0.739814 0.023350 +v 0.394851 -0.738712 0.021258 +v 0.466056 -0.697500 0.023350 +v 0.465361 -0.696461 0.021258 +v 0.466056 -0.697500 0.041561 +v 0.395440 -0.739814 0.041561 +v 0.532171 -0.648452 0.023350 +v 0.531379 -0.647486 0.021258 +v 0.593175 -0.593175 0.023350 +v 0.592291 -0.592291 0.021258 +v 0.593175 -0.593175 0.041561 +v 0.532171 -0.648452 0.041561 +v 0.648453 -0.532171 0.023350 +v 0.647487 -0.531379 0.021258 +v 0.697501 -0.466055 0.023350 +v 0.696461 -0.465360 0.021258 +v 0.697501 -0.466055 0.041561 +v 0.648453 -0.532171 0.041561 +v 0.739815 -0.395439 0.023350 +v 0.738712 -0.394850 0.021258 +v 0.775021 -0.321024 0.023350 +v 0.773866 -0.320546 0.021258 +v 0.775021 -0.321024 0.041561 +v 0.739815 -0.395439 0.041561 +v 0.802746 -0.243510 0.023350 +v 0.801549 -0.243147 0.021258 +v 0.822758 -0.163656 0.023350 +v 0.821532 -0.163412 0.021258 +v 0.822758 -0.163656 0.041561 +v 0.802746 -0.243510 0.041561 +v 0.834827 -0.082223 0.023350 +v 0.833584 -0.082100 0.021258 +v 0.838877 0.000001 0.023350 +v 0.837627 0.000001 0.021258 +v 0.838876 0.000001 0.041561 +v 0.834827 -0.082223 0.041561 +v 0.834827 0.082224 0.023350 +v 0.833583 0.082102 0.021258 +v 0.822758 0.163658 0.023350 +v 0.821532 0.163414 0.021258 +v 0.822758 0.163658 0.041561 +v 0.834827 0.082224 0.041561 +v 0.802745 0.243511 0.023350 +v 0.801549 0.243148 0.021258 +v 0.775020 0.321025 0.023350 +v 0.773866 0.320547 0.021258 +v 0.775020 0.321025 0.041561 +v 0.802745 0.243511 0.041561 +v 0.739814 0.395440 0.023350 +v 0.738711 0.394851 0.021258 +v 0.697500 0.466056 0.023350 +v 0.696460 0.465362 0.021258 +v 0.697500 0.466056 0.041561 +v 0.739814 0.395440 0.041561 +v 0.648452 0.532173 0.023350 +v 0.647486 0.531380 0.021258 +v 0.593174 0.593176 0.023350 +v 0.592290 0.592292 0.021258 +v 0.593174 0.593176 0.041561 +v 0.648452 0.532173 0.041561 +v 0.532170 0.648453 0.023350 +v 0.531377 0.647487 0.021258 +v 0.466054 0.697501 0.023350 +v 0.465360 0.696462 0.021258 +v 0.466054 0.697501 0.041561 +v 0.532170 0.648453 0.041561 +v 0.395438 0.739815 0.023350 +v 0.394849 0.738713 0.021258 +v 0.321023 0.775021 0.023350 +v 0.320545 0.773866 0.021258 +v 0.321023 0.775021 0.041561 +v 0.395438 0.739815 0.041561 +v 0.243509 0.802746 0.023350 +v 0.243146 0.801550 0.021258 +v 0.163656 0.822758 0.023350 +v 0.163412 0.821532 0.021258 +v 0.163656 0.822758 0.041561 +v 0.243509 0.802746 0.041561 +v 0.082223 0.834827 0.023350 +v 0.082100 0.833584 0.021258 +v 0.082223 0.834827 0.041561 +v -0.079270 0.804841 0.180317 +v -0.157778 0.793204 0.180317 +v -0.154623 0.777339 0.179421 +v -0.077684 0.788743 0.179421 +v 0.000000 0.808744 0.180317 +v 0.000000 0.792568 0.179421 +v 0.000000 0.824549 0.179129 +v -0.080819 0.820569 0.179129 +v -0.160862 0.808706 0.179129 +v -0.234764 0.773911 0.180317 +v -0.309493 0.747182 0.180317 +v -0.303303 0.732238 0.179421 +v -0.230068 0.758432 0.179421 +v -0.239352 0.789035 0.179129 +v -0.315542 0.761784 0.179129 +v -0.381235 0.713240 0.180317 +v -0.449315 0.672446 0.180317 +v -0.440328 0.658996 0.179421 +v -0.373610 0.698975 0.179421 +v -0.388686 0.727179 0.179129 +v -0.458096 0.685588 0.179129 +v -0.513057 0.625160 0.180317 +v -0.571868 0.571868 0.180317 +v -0.560430 0.560430 0.179421 +v -0.502795 0.612656 0.179421 +v -0.523082 0.637378 0.179129 +v -0.583044 0.583044 0.179129 +v -0.625160 0.513057 0.180317 +v -0.672446 0.449315 0.180317 +v -0.658996 0.440328 0.179421 +v -0.612656 0.502795 0.179421 +v -0.637378 0.523082 0.179129 +v -0.685588 0.458096 0.179129 +v -0.713240 0.381235 0.180317 +v -0.747182 0.309493 0.180317 +v -0.732238 0.303303 0.179421 +v -0.698975 0.373610 0.179421 +v -0.727179 0.388686 0.179129 +v -0.761784 0.315542 0.179129 +v -0.773911 0.234764 0.180317 +v -0.793204 0.157778 0.180317 +v -0.777339 0.154623 0.179421 +v -0.758432 0.230068 0.179421 +v -0.789035 0.239352 0.179129 +v -0.808706 0.160862 0.179129 +v -0.804841 0.079270 0.180317 +v -0.808744 0.000000 0.180317 +v -0.792568 0.000000 0.179421 +v -0.788743 0.077685 0.179421 +v -0.820570 0.080819 0.179129 +v -0.824549 0.000000 0.179129 +v -0.804841 -0.079270 0.180317 +v -0.793204 -0.157778 0.180317 +v -0.777339 -0.154622 0.179421 +v -0.788743 -0.077684 0.179421 +v -0.820570 -0.080819 0.179129 +v -0.808706 -0.160862 0.179129 +v -0.773911 -0.234763 0.180317 +v -0.747182 -0.309493 0.180317 +v -0.732238 -0.303303 0.179421 +v -0.758432 -0.230068 0.179421 +v -0.789035 -0.239351 0.179129 +v -0.761784 -0.315542 0.179129 +v -0.713240 -0.381235 0.180317 +v -0.672446 -0.449315 0.180317 +v -0.658996 -0.440328 0.179421 +v -0.698975 -0.373610 0.179421 +v -0.727179 -0.388686 0.179129 +v -0.685588 -0.458096 0.179129 +v -0.625160 -0.513057 0.180317 +v -0.571868 -0.571868 0.180317 +v -0.560430 -0.560430 0.179421 +v -0.612656 -0.502795 0.179421 +v -0.637378 -0.523082 0.179129 +v -0.583044 -0.583044 0.179129 +v -0.513057 -0.625160 0.180317 +v -0.449315 -0.672446 0.180317 +v -0.440328 -0.658996 0.179421 +v -0.502795 -0.612656 0.179421 +v -0.523082 -0.637378 0.179129 +v -0.458096 -0.685588 0.179129 +v -0.381235 -0.713240 0.180317 +v -0.309493 -0.747182 0.180317 +v -0.303303 -0.732238 0.179421 +v -0.373610 -0.698975 0.179421 +v -0.388686 -0.727179 0.179129 +v -0.315542 -0.761784 0.179129 +v -0.234763 -0.773911 0.180317 +v -0.157778 -0.793204 0.180317 +v -0.154622 -0.777339 0.179421 +v -0.230068 -0.758432 0.179421 +v -0.239351 -0.789035 0.179129 +v -0.160862 -0.808706 0.179129 +v -0.079270 -0.804841 0.180317 +v 0.000000 -0.808744 0.180317 +v 0.000000 -0.792568 0.179421 +v -0.077684 -0.788743 0.179421 +v -0.080819 -0.820569 0.179129 +v 0.000000 -0.824549 0.179129 +v 0.079270 -0.804840 0.180317 +v 0.157779 -0.793204 0.180317 +v 0.154623 -0.777339 0.179421 +v 0.077685 -0.788743 0.179421 +v 0.080819 -0.820569 0.179129 +v 0.160862 -0.808706 0.179129 +v 0.234764 -0.773911 0.180317 +v 0.309494 -0.747182 0.180317 +v 0.303304 -0.732238 0.179421 +v 0.230068 -0.758432 0.179421 +v 0.239352 -0.789035 0.179129 +v 0.315542 -0.761784 0.179129 +v 0.381236 -0.713240 0.180317 +v 0.449315 -0.672446 0.180317 +v 0.440328 -0.658996 0.179421 +v 0.373611 -0.698974 0.179421 +v 0.388686 -0.727179 0.179129 +v 0.458096 -0.685587 0.179129 +v 0.513057 -0.625160 0.180317 +v 0.571869 -0.571868 0.180317 +v 0.560431 -0.560430 0.179421 +v 0.502795 -0.612656 0.179421 +v 0.523084 -0.637377 0.179129 +v 0.583045 -0.583044 0.179129 +v 0.625161 -0.513056 0.180317 +v 0.672446 -0.449314 0.180317 +v 0.658997 -0.440327 0.179421 +v 0.612657 -0.502793 0.179421 +v 0.637378 -0.523082 0.179129 +v 0.685588 -0.458095 0.179129 +v 0.713241 -0.381235 0.180317 +v 0.747182 -0.309493 0.180317 +v 0.732238 -0.303303 0.179421 +v 0.698975 -0.373610 0.179421 +v 0.727179 -0.388685 0.179129 +v 0.761785 -0.315541 0.179129 +v 0.773911 -0.234763 0.180317 +v 0.793205 -0.157778 0.180317 +v 0.777340 -0.154622 0.179421 +v 0.758432 -0.230067 0.179421 +v 0.789036 -0.239351 0.179129 +v 0.808706 -0.160861 0.179129 +v 0.804841 -0.079269 0.180317 +v 0.808744 0.000001 0.180317 +v 0.792568 0.000001 0.179421 +v 0.788743 -0.077684 0.179421 +v 0.820570 -0.080818 0.179129 +v 0.824549 0.000001 0.179129 +v 0.804840 0.079271 0.180317 +v 0.793204 0.157779 0.180317 +v 0.777339 0.154623 0.179421 +v 0.788743 0.077685 0.179421 +v 0.820569 0.080820 0.179129 +v 0.808706 0.160863 0.179129 +v 0.773911 0.234764 0.180317 +v 0.747182 0.309494 0.180317 +v 0.732237 0.303304 0.179421 +v 0.758431 0.230069 0.179421 +v 0.789035 0.239352 0.179129 +v 0.761784 0.315543 0.179129 +v 0.713240 0.381236 0.180317 +v 0.672445 0.449316 0.180317 +v 0.658996 0.440329 0.179421 +v 0.698974 0.373611 0.179421 +v 0.727178 0.388687 0.179129 +v 0.685587 0.458097 0.179129 +v 0.625160 0.513057 0.180317 +v 0.571868 0.571869 0.180317 +v 0.560429 0.560431 0.179421 +v 0.612656 0.502796 0.179421 +v 0.637377 0.523084 0.179129 +v 0.583043 0.583045 0.179129 +v 0.513056 0.625161 0.180317 +v 0.449314 0.672447 0.180317 +v 0.440327 0.658997 0.179421 +v 0.502793 0.612657 0.179421 +v 0.523081 0.637378 0.179129 +v 0.458095 0.685588 0.179129 +v 0.381234 0.713241 0.180317 +v 0.309492 0.747183 0.180317 +v 0.303302 0.732238 0.179421 +v 0.373609 0.698975 0.179421 +v 0.388685 0.727180 0.179129 +v 0.315541 0.761785 0.179129 +v 0.234762 0.773911 0.180317 +v 0.157777 0.793205 0.180317 +v 0.154622 0.777340 0.179421 +v 0.230067 0.758432 0.179421 +v 0.239350 0.789036 0.179129 +v 0.160861 0.808706 0.179129 +v 0.079269 0.804841 0.180317 +v 0.077684 0.788743 0.179421 +v 0.080819 0.820570 0.179129 +v -0.076802 0.779782 0.176732 +v -0.152866 0.768508 0.176732 +v -0.076238 0.774054 0.172694 +v -0.151743 0.762863 0.172694 +v 0.000000 0.777808 0.172694 +v 0.000000 0.783564 0.176732 +v -0.081593 0.828424 0.175562 +v 0.000000 0.832442 0.175562 +v -0.081913 0.831672 0.170032 +v 0.000000 0.835706 0.170032 +v -0.163038 0.819648 0.170032 +v -0.162401 0.816446 0.175562 +v -0.227454 0.749816 0.176732 +v -0.299858 0.723919 0.176732 +v -0.225783 0.744307 0.172694 +v -0.297655 0.718601 0.172694 +v -0.241642 0.796588 0.175562 +v -0.242590 0.799711 0.170032 +v -0.319811 0.772091 0.170032 +v -0.318562 0.769076 0.175562 +v -0.369366 0.691034 0.176732 +v -0.435326 0.651510 0.176732 +v -0.366652 0.685957 0.172694 +v -0.432128 0.646724 0.172694 +v -0.392406 0.734139 0.175562 +v -0.393945 0.737018 0.170032 +v -0.464294 0.694864 0.170032 +v -0.462480 0.692150 0.175562 +v -0.497083 0.605696 0.176732 +v -0.554063 0.554063 0.176732 +v -0.493431 0.601246 0.172694 +v -0.549994 0.549994 0.172694 +v -0.528089 0.643478 0.175562 +v -0.530160 0.646001 0.170032 +v -0.590933 0.590933 0.170032 +v -0.588625 0.588625 0.175562 +v -0.605696 0.497083 0.176732 +v -0.651510 0.435326 0.176732 +v -0.601246 0.493431 0.172694 +v -0.646724 0.432128 0.172694 +v -0.643478 0.528089 0.175562 +v -0.646002 0.530160 0.170032 +v -0.694864 0.464294 0.170032 +v -0.692150 0.462480 0.175562 +v -0.691034 0.369366 0.176732 +v -0.723919 0.299857 0.176732 +v -0.685957 0.366652 0.172694 +v -0.718601 0.297655 0.172694 +v -0.734139 0.392406 0.175562 +v -0.737018 0.393945 0.170032 +v -0.772091 0.319811 0.170032 +v -0.769076 0.318562 0.175562 +v -0.749816 0.227454 0.176732 +v -0.768508 0.152866 0.176732 +v -0.744307 0.225783 0.172694 +v -0.762863 0.151743 0.172694 +v -0.796588 0.241642 0.175562 +v -0.799711 0.242590 0.170032 +v -0.819648 0.163038 0.170032 +v -0.816447 0.162402 0.175562 +v -0.779782 0.076802 0.176732 +v -0.783564 0.000000 0.176732 +v -0.774054 0.076238 0.172694 +v -0.777808 0.000000 0.172694 +v -0.828424 0.081593 0.175562 +v -0.831672 0.081913 0.170032 +v -0.835706 0.000000 0.170032 +v -0.832442 0.000000 0.175562 +v -0.779782 -0.076802 0.176732 +v -0.768508 -0.152866 0.176732 +v -0.774054 -0.076238 0.172694 +v -0.762863 -0.151743 0.172694 +v -0.828424 -0.081593 0.175562 +v -0.831672 -0.081913 0.170032 +v -0.819648 -0.163038 0.170032 +v -0.816447 -0.162401 0.175562 +v -0.749816 -0.227454 0.176732 +v -0.723919 -0.299857 0.176732 +v -0.744307 -0.225783 0.172694 +v -0.718601 -0.297654 0.172694 +v -0.796588 -0.241642 0.175562 +v -0.799711 -0.242590 0.170032 +v -0.772091 -0.319811 0.170032 +v -0.769076 -0.318562 0.175562 +v -0.691034 -0.369366 0.176732 +v -0.651510 -0.435326 0.176732 +v -0.685957 -0.366652 0.172694 +v -0.646724 -0.432127 0.172694 +v -0.734139 -0.392406 0.175562 +v -0.737018 -0.393945 0.170032 +v -0.694864 -0.464294 0.170032 +v -0.692150 -0.462480 0.175562 +v -0.605696 -0.497083 0.176732 +v -0.554063 -0.554063 0.176732 +v -0.601247 -0.493431 0.172694 +v -0.549994 -0.549994 0.172694 +v -0.643478 -0.528089 0.175562 +v -0.646002 -0.530160 0.170032 +v -0.590933 -0.590933 0.170032 +v -0.588625 -0.588625 0.175562 +v -0.497083 -0.605696 0.176732 +v -0.435326 -0.651510 0.176732 +v -0.493431 -0.601246 0.172694 +v -0.432127 -0.646724 0.172694 +v -0.528089 -0.643478 0.175562 +v -0.530159 -0.646002 0.170032 +v -0.464294 -0.694864 0.170032 +v -0.462480 -0.692150 0.175562 +v -0.369366 -0.691034 0.176732 +v -0.299857 -0.723919 0.176732 +v -0.366652 -0.685957 0.172694 +v -0.297654 -0.718601 0.172694 +v -0.392406 -0.734139 0.175562 +v -0.393945 -0.737018 0.170032 +v -0.319811 -0.772091 0.170032 +v -0.318562 -0.769076 0.175562 +v -0.227454 -0.749816 0.176732 +v -0.152866 -0.768508 0.176732 +v -0.225783 -0.744307 0.172694 +v -0.151743 -0.762863 0.172694 +v -0.241642 -0.796588 0.175562 +v -0.242590 -0.799711 0.170032 +v -0.163038 -0.819648 0.170032 +v -0.162401 -0.816446 0.175562 +v -0.076802 -0.779782 0.176732 +v 0.000000 -0.783564 0.176732 +v -0.076238 -0.774054 0.172694 +v 0.000000 -0.777808 0.172694 +v -0.081592 -0.828424 0.175562 +v -0.081912 -0.831672 0.170032 +v 0.000000 -0.835706 0.170032 +v 0.000000 -0.832442 0.175562 +v 0.076802 -0.779782 0.176732 +v 0.152866 -0.768508 0.176732 +v 0.076238 -0.774054 0.172694 +v 0.151743 -0.762862 0.172694 +v 0.081593 -0.828424 0.175562 +v 0.081913 -0.831672 0.170032 +v 0.163039 -0.819648 0.170032 +v 0.162402 -0.816446 0.175562 +v 0.227455 -0.749815 0.176732 +v 0.299858 -0.723919 0.176732 +v 0.225784 -0.744307 0.172694 +v 0.297655 -0.718601 0.172694 +v 0.241643 -0.796588 0.175562 +v 0.242590 -0.799711 0.170032 +v 0.319812 -0.772091 0.170032 +v 0.318562 -0.769075 0.175562 +v 0.369366 -0.691034 0.176732 +v 0.435326 -0.651510 0.176732 +v 0.366653 -0.685957 0.172694 +v 0.432128 -0.646723 0.172694 +v 0.392407 -0.734139 0.175562 +v 0.393945 -0.737018 0.170032 +v 0.464294 -0.694863 0.170032 +v 0.462481 -0.692149 0.175562 +v 0.497083 -0.605696 0.176732 +v 0.554065 -0.554063 0.176732 +v 0.493431 -0.601246 0.172694 +v 0.549994 -0.549994 0.172694 +v 0.528089 -0.643478 0.175562 +v 0.530160 -0.646001 0.170032 +v 0.590933 -0.590932 0.170032 +v 0.588625 -0.588624 0.175562 +v 0.605697 -0.497082 0.176732 +v 0.651510 -0.435325 0.176732 +v 0.601247 -0.493431 0.172694 +v 0.646724 -0.432127 0.172694 +v 0.643479 -0.528089 0.175562 +v 0.646002 -0.530159 0.170032 +v 0.694864 -0.464293 0.170032 +v 0.692150 -0.462480 0.175562 +v 0.691034 -0.369365 0.176732 +v 0.723919 -0.299857 0.176732 +v 0.685958 -0.366652 0.172694 +v 0.718601 -0.297654 0.172694 +v 0.734140 -0.392406 0.175562 +v 0.737018 -0.393944 0.170032 +v 0.772092 -0.319810 0.170032 +v 0.769076 -0.318561 0.175562 +v 0.749816 -0.227454 0.176732 +v 0.768509 -0.152865 0.176732 +v 0.744307 -0.225783 0.172694 +v 0.762863 -0.151742 0.172694 +v 0.796588 -0.241642 0.175562 +v 0.799711 -0.242589 0.170032 +v 0.819648 -0.163038 0.170032 +v 0.816447 -0.162401 0.175562 +v 0.779782 -0.076801 0.176732 +v 0.783564 0.000001 0.176732 +v 0.774054 -0.076237 0.172694 +v 0.777808 0.000001 0.172694 +v 0.828424 -0.081592 0.175562 +v 0.831672 -0.081912 0.170032 +v 0.835706 0.000001 0.170032 +v 0.832442 0.000001 0.175562 +v 0.779782 0.076803 0.176732 +v 0.768508 0.152867 0.176732 +v 0.774054 0.076239 0.172694 +v 0.762862 0.151744 0.172694 +v 0.828424 0.081594 0.175562 +v 0.831672 0.081913 0.170032 +v 0.819648 0.163039 0.170032 +v 0.816446 0.162402 0.175562 +v 0.749815 0.227455 0.176732 +v 0.723919 0.299858 0.176732 +v 0.744307 0.225784 0.172694 +v 0.718600 0.297655 0.172694 +v 0.796587 0.241643 0.175562 +v 0.799711 0.242591 0.170032 +v 0.772091 0.319812 0.170032 +v 0.769075 0.318563 0.175562 +v 0.691034 0.369367 0.176732 +v 0.651509 0.435326 0.176732 +v 0.685957 0.366653 0.172694 +v 0.646723 0.432128 0.172694 +v 0.734139 0.392407 0.175562 +v 0.737017 0.393946 0.170032 +v 0.694863 0.464295 0.170032 +v 0.692149 0.462481 0.175562 +v 0.605696 0.497084 0.176732 +v 0.554063 0.554065 0.176732 +v 0.601246 0.493432 0.172694 +v 0.549992 0.549994 0.172694 +v 0.643478 0.528091 0.175562 +v 0.646001 0.530160 0.170032 +v 0.590932 0.590934 0.170032 +v 0.588624 0.588626 0.175562 +v 0.497082 0.605697 0.176732 +v 0.435325 0.651510 0.176732 +v 0.493430 0.601247 0.172694 +v 0.432127 0.646724 0.172694 +v 0.528089 0.643479 0.175562 +v 0.530159 0.646002 0.170032 +v 0.464293 0.694864 0.170032 +v 0.462479 0.692150 0.175562 +v 0.369365 0.691034 0.176732 +v 0.299856 0.723919 0.176732 +v 0.366651 0.685958 0.172694 +v 0.297654 0.718601 0.172694 +v 0.392405 0.734140 0.175562 +v 0.393944 0.737018 0.170032 +v 0.319810 0.772092 0.170032 +v 0.318561 0.769076 0.175562 +v 0.227453 0.749816 0.176732 +v 0.152865 0.768509 0.176732 +v 0.225782 0.744307 0.172694 +v 0.151742 0.762863 0.172694 +v 0.241641 0.796588 0.175562 +v 0.242589 0.799712 0.170032 +v 0.163037 0.819648 0.170032 +v 0.162400 0.816447 0.175562 +v 0.076801 0.779782 0.176732 +v 0.076237 0.774054 0.172694 +v 0.081592 0.828424 0.175562 +v 0.081912 0.831672 0.170032 +v -0.082101 0.833584 0.162951 +v 0.000000 0.837627 0.162951 +v -0.082193 0.834516 0.140939 +v 0.000000 0.838564 0.140939 +v -0.163596 0.822451 0.140939 +v -0.163413 0.821532 0.162951 +v -0.243148 0.801550 0.162951 +v -0.243420 0.802447 0.140939 +v -0.320905 0.774732 0.140939 +v -0.320546 0.773866 0.162951 +v -0.394850 0.738712 0.162951 +v -0.395292 0.739539 0.140939 +v -0.465882 0.697240 0.140939 +v -0.465361 0.696461 0.162951 +v -0.531379 0.647486 0.162951 +v -0.531973 0.648211 0.140939 +v -0.592954 0.592954 0.140939 +v -0.592291 0.592291 0.162951 +v -0.647486 0.531379 0.162951 +v -0.648211 0.531973 0.140939 +v -0.697240 0.465882 0.140939 +v -0.696461 0.465361 0.162951 +v -0.738712 0.394850 0.162951 +v -0.739539 0.395292 0.140939 +v -0.774732 0.320905 0.140939 +v -0.773866 0.320546 0.162951 +v -0.801550 0.243148 0.162951 +v -0.802446 0.243420 0.140939 +v -0.822451 0.163596 0.140939 +v -0.821532 0.163413 0.162951 +v -0.833584 0.082101 0.162951 +v -0.834517 0.082193 0.140939 +v -0.838564 0.000000 0.140939 +v -0.837627 0.000000 0.162951 +v -0.833584 -0.082101 0.162951 +v -0.834517 -0.082193 0.140939 +v -0.822451 -0.163596 0.140939 +v -0.821532 -0.163413 0.162951 +v -0.801550 -0.243148 0.162951 +v -0.802446 -0.243420 0.140939 +v -0.774732 -0.320905 0.140939 +v -0.773866 -0.320546 0.162951 +v -0.738712 -0.394850 0.162951 +v -0.739539 -0.395292 0.140939 +v -0.697240 -0.465882 0.140939 +v -0.696461 -0.465361 0.162951 +v -0.647487 -0.531379 0.162951 +v -0.648211 -0.531973 0.140939 +v -0.592954 -0.592954 0.140939 +v -0.592291 -0.592291 0.162951 +v -0.531379 -0.647487 0.162951 +v -0.531973 -0.648211 0.140939 +v -0.465882 -0.697240 0.140939 +v -0.465361 -0.696461 0.162951 +v -0.394850 -0.738712 0.162951 +v -0.395292 -0.739539 0.140939 +v -0.320905 -0.774732 0.140939 +v -0.320546 -0.773866 0.162951 +v -0.243148 -0.801550 0.162951 +v -0.243420 -0.802447 0.140939 +v -0.163596 -0.822451 0.140939 +v -0.163413 -0.821532 0.162951 +v -0.082101 -0.833584 0.162951 +v -0.082193 -0.834516 0.140939 +v 0.000000 -0.838564 0.140939 +v 0.000000 -0.837627 0.162951 +v 0.082101 -0.833584 0.162951 +v 0.082193 -0.834516 0.140939 +v 0.163596 -0.822451 0.140939 +v 0.163413 -0.821532 0.162951 +v 0.243148 -0.801549 0.162951 +v 0.243420 -0.802446 0.140939 +v 0.320905 -0.774732 0.140939 +v 0.320547 -0.773866 0.162951 +v 0.394851 -0.738712 0.162951 +v 0.395293 -0.739538 0.140939 +v 0.465882 -0.697240 0.140939 +v 0.465361 -0.696461 0.162951 +v 0.531380 -0.647486 0.162951 +v 0.531973 -0.648211 0.140939 +v 0.592955 -0.592954 0.140939 +v 0.592292 -0.592291 0.162951 +v 0.647487 -0.531379 0.162951 +v 0.648211 -0.531972 0.140939 +v 0.697241 -0.465881 0.140939 +v 0.696461 -0.465361 0.162951 +v 0.738713 -0.394850 0.162951 +v 0.739539 -0.395292 0.140939 +v 0.774732 -0.320904 0.140939 +v 0.773866 -0.320546 0.162951 +v 0.801550 -0.243147 0.162951 +v 0.802447 -0.243419 0.140939 +v 0.822451 -0.163595 0.140939 +v 0.821532 -0.163412 0.162951 +v 0.833584 -0.082100 0.162951 +v 0.834517 -0.082192 0.140939 +v 0.838564 0.000001 0.140939 +v 0.837627 0.000001 0.162951 +v 0.833584 0.082102 0.162951 +v 0.834516 0.082194 0.140939 +v 0.822451 0.163597 0.140939 +v 0.821532 0.163414 0.162951 +v 0.801549 0.243149 0.162951 +v 0.802446 0.243421 0.140939 +v 0.774732 0.320906 0.140939 +v 0.773866 0.320547 0.162951 +v 0.738712 0.394851 0.162951 +v 0.739538 0.395293 0.140939 +v 0.697240 0.465883 0.140939 +v 0.696460 0.465362 0.162951 +v 0.647486 0.531380 0.162951 +v 0.648210 0.531974 0.140939 +v 0.592953 0.592955 0.140939 +v 0.592291 0.592292 0.162951 +v 0.531377 0.647487 0.162951 +v 0.531972 0.648212 0.140939 +v 0.465881 0.697241 0.140939 +v 0.465360 0.696462 0.162951 +v 0.394849 0.738713 0.162951 +v 0.395291 0.739539 0.140939 +v 0.320904 0.774733 0.140939 +v 0.320545 0.773867 0.162951 +v 0.243147 0.801550 0.162951 +v 0.243419 0.802447 0.140939 +v 0.163595 0.822452 0.140939 +v 0.163412 0.821532 0.162951 +v 0.082100 0.833584 0.162951 +v 0.082192 0.834517 0.140939 +v -0.082223 0.834827 0.090616 +v -0.163657 0.822758 0.090616 +v 0.000000 0.838877 0.090616 +v -0.243510 0.802745 0.090616 +v -0.321025 0.775021 0.090616 +v -0.395440 0.739814 0.090616 +v -0.466055 0.697500 0.090616 +v -0.532171 0.648453 0.090616 +v -0.593175 0.593175 0.090616 +v -0.648453 0.532171 0.090616 +v -0.697500 0.466055 0.090616 +v -0.739814 0.395439 0.090616 +v -0.775021 0.321025 0.090616 +v -0.802745 0.243510 0.090616 +v -0.822758 0.163657 0.090616 +v -0.834827 0.082223 0.090616 +v -0.838877 0.000000 0.090616 +v -0.834827 -0.082223 0.090616 +v -0.822758 -0.163657 0.090616 +v -0.802745 -0.243510 0.090616 +v -0.775021 -0.321024 0.090616 +v -0.739814 -0.395439 0.090616 +v -0.697500 -0.466055 0.090616 +v -0.648453 -0.532171 0.090616 +v -0.593175 -0.593175 0.090616 +v -0.532171 -0.648453 0.090616 +v -0.466055 -0.697500 0.090616 +v -0.395439 -0.739814 0.090616 +v -0.321024 -0.775021 0.090616 +v -0.243510 -0.802745 0.090616 +v -0.163657 -0.822758 0.090616 +v -0.082223 -0.834827 0.090616 +v 0.000000 -0.838877 0.090616 +v 0.082224 -0.834827 0.090616 +v 0.163657 -0.822758 0.090616 +v 0.243511 -0.802745 0.090616 +v 0.321025 -0.775021 0.090616 +v 0.395440 -0.739814 0.090616 +v 0.466056 -0.697500 0.090616 +v 0.532171 -0.648452 0.090616 +v 0.593175 -0.593175 0.090616 +v 0.648453 -0.532171 0.090616 +v 0.697501 -0.466055 0.090616 +v 0.739815 -0.395439 0.090616 +v 0.775021 -0.321024 0.090616 +v 0.802746 -0.243510 0.090616 +v 0.822758 -0.163656 0.090616 +v 0.834827 -0.082223 0.090616 +v 0.838877 0.000001 0.090616 +v 0.834827 0.082224 0.090616 +v 0.822758 0.163658 0.090616 +v 0.802745 0.243511 0.090616 +v 0.775020 0.321025 0.090616 +v 0.739814 0.395440 0.090616 +v 0.697500 0.466056 0.090616 +v 0.648452 0.532173 0.090616 +v 0.593174 0.593176 0.090616 +v 0.532170 0.648453 0.090616 +v 0.466054 0.697501 0.090616 +v 0.395438 0.739815 0.090616 +v 0.321023 0.775021 0.090616 +v 0.243509 0.802746 0.090616 +v 0.163656 0.822758 0.090616 +v 0.082223 0.834827 0.090616 +v -0.081733 0.829851 0.020561 +v -0.162681 0.817854 0.020561 +v 0.000000 0.833877 0.020561 +v 0.081733 0.829852 0.020561 +v 0.162680 0.817854 0.020561 +v 0.242058 0.797961 0.020561 +v 0.319110 0.770402 0.020561 +v 0.393082 0.735405 0.020561 +v 0.463277 0.693343 0.020561 +v 0.528998 0.644588 0.020561 +v 0.589639 0.589640 0.020561 +v 0.644587 0.529001 0.020561 +v 0.693342 0.463278 0.020561 +v 0.735404 0.393083 0.020561 +v 0.770401 0.319112 0.020561 +v 0.797960 0.242060 0.020561 +v 0.817854 0.162682 0.020561 +v 0.829851 0.081734 0.020561 +v 0.833877 0.000001 0.020561 +v 0.829852 -0.081733 0.020561 +v 0.817854 -0.162681 0.020561 +v 0.797961 -0.242058 0.020561 +v 0.770402 -0.319110 0.020561 +v 0.735405 -0.393082 0.020561 +v 0.693343 -0.463277 0.020561 +v 0.644588 -0.529000 0.020561 +v 0.589640 -0.589639 0.020561 +v 0.529001 -0.644587 0.020561 +v 0.463278 -0.693343 0.020561 +v 0.393083 -0.735405 0.020561 +v 0.319111 -0.770401 0.020561 +v 0.242059 -0.797961 0.020561 +v 0.162682 -0.817854 0.020561 +v 0.081734 -0.829851 0.020561 +v 0.000000 -0.833876 0.020561 +v -0.081733 -0.829852 0.020561 +v -0.162681 -0.817854 0.020561 +v -0.242059 -0.797961 0.020561 +v -0.319111 -0.770401 0.020561 +v -0.393082 -0.735405 0.020561 +v -0.463277 -0.693343 0.020561 +v -0.529000 -0.644588 0.020561 +v -0.589639 -0.589639 0.020561 +v -0.644588 -0.529000 0.020561 +v -0.693343 -0.463277 0.020561 +v -0.735405 -0.393082 0.020561 +v -0.770401 -0.319111 0.020561 +v -0.797961 -0.242059 0.020561 +v -0.817854 -0.162681 0.020561 +v -0.829851 -0.081733 0.020561 +v -0.833876 0.000000 0.020561 +v -0.829852 0.081733 0.020561 +v -0.817854 0.162681 0.020561 +v -0.797961 0.242059 0.020561 +v -0.770401 0.319111 0.020561 +v -0.735405 0.393083 0.020561 +v -0.693343 0.463278 0.020561 +v -0.644588 0.529000 0.020561 +v -0.589639 0.589639 0.020561 +v -0.529000 0.644587 0.020561 +v -0.463278 0.693343 0.020561 +v -0.393083 0.735405 0.020561 +v -0.319111 0.770401 0.020561 +v -0.242059 0.797961 0.020561 +v -0.075607 0.767652 0.167754 +v -0.150488 0.756553 0.167754 +v -0.075191 0.763430 0.163403 +v -0.149660 0.752392 0.163403 +v 0.000000 0.767132 0.163403 +v 0.000000 0.771375 0.167754 +v -0.223916 0.738151 0.167754 +v -0.295193 0.712658 0.167754 +v -0.222684 0.734091 0.163403 +v -0.293569 0.708738 0.163403 +v -0.363620 0.680284 0.167754 +v -0.428554 0.641375 0.167754 +v -0.361620 0.676542 0.163403 +v -0.426197 0.637847 0.163403 +v -0.489350 0.596274 0.167754 +v -0.545444 0.545444 0.167754 +v -0.486659 0.592994 0.163403 +v -0.542444 0.542444 0.163403 +v -0.596274 0.489350 0.167754 +v -0.641375 0.428554 0.167754 +v -0.592994 0.486659 0.163403 +v -0.637847 0.426197 0.163403 +v -0.680284 0.363620 0.167754 +v -0.712658 0.295193 0.167754 +v -0.676542 0.361620 0.163403 +v -0.708738 0.293569 0.163403 +v -0.738151 0.223916 0.167754 +v -0.756553 0.150488 0.167754 +v -0.734091 0.222685 0.163403 +v -0.752392 0.149660 0.163403 +v -0.767652 0.075607 0.167754 +v -0.771375 0.000000 0.167754 +v -0.763430 0.075191 0.163403 +v -0.767132 0.000000 0.163403 +v -0.767652 -0.075607 0.167754 +v -0.756553 -0.150488 0.167754 +v -0.763430 -0.075191 0.163403 +v -0.752392 -0.149660 0.163403 +v -0.738151 -0.223916 0.167754 +v -0.712657 -0.295193 0.167754 +v -0.734091 -0.222684 0.163403 +v -0.708738 -0.293569 0.163403 +v -0.680284 -0.363620 0.167754 +v -0.641375 -0.428553 0.167754 +v -0.676542 -0.361620 0.163403 +v -0.637847 -0.426196 0.163403 +v -0.596274 -0.489350 0.167754 +v -0.545444 -0.545444 0.167754 +v -0.592994 -0.486659 0.163403 +v -0.542444 -0.542444 0.163403 +v -0.489350 -0.596274 0.167754 +v -0.428553 -0.641375 0.167754 +v -0.486659 -0.592994 0.163403 +v -0.426196 -0.637847 0.163403 +v -0.363620 -0.680284 0.167754 +v -0.295193 -0.712658 0.167754 +v -0.361620 -0.676542 0.163403 +v -0.293569 -0.708738 0.163403 +v -0.223916 -0.738151 0.167754 +v -0.150488 -0.756553 0.167754 +v -0.222684 -0.734091 0.163403 +v -0.149660 -0.752392 0.163403 +v -0.075607 -0.767652 0.167754 +v 0.000000 -0.771375 0.167754 +v -0.075191 -0.763429 0.163403 +v 0.000000 -0.767132 0.163403 +v 0.075607 -0.767652 0.167754 +v 0.150488 -0.756553 0.167754 +v 0.075192 -0.763429 0.163403 +v 0.149661 -0.752392 0.163403 +v 0.223916 -0.738151 0.167754 +v 0.295193 -0.712657 0.167754 +v 0.222685 -0.734091 0.163403 +v 0.293570 -0.708738 0.163403 +v 0.363620 -0.680284 0.167754 +v 0.428554 -0.641374 0.167754 +v 0.361620 -0.676542 0.163403 +v 0.426197 -0.637847 0.163403 +v 0.489350 -0.596273 0.167754 +v 0.545446 -0.545444 0.167754 +v 0.486659 -0.592994 0.163403 +v 0.542445 -0.542444 0.163403 +v 0.596274 -0.489350 0.167754 +v 0.641375 -0.428553 0.167754 +v 0.592995 -0.486658 0.163403 +v 0.637847 -0.426196 0.163403 +v 0.680284 -0.363619 0.167754 +v 0.712658 -0.295192 0.167754 +v 0.676543 -0.361619 0.163403 +v 0.708738 -0.293569 0.163403 +v 0.738151 -0.223915 0.167754 +v 0.756553 -0.150487 0.167754 +v 0.734092 -0.222684 0.163403 +v 0.752392 -0.149660 0.163403 +v 0.767652 -0.075606 0.167754 +v 0.771375 0.000001 0.167754 +v 0.763430 -0.075191 0.163403 +v 0.767132 0.000001 0.163403 +v 0.767652 0.075608 0.167754 +v 0.756553 0.150489 0.167754 +v 0.763429 0.075192 0.163403 +v 0.752392 0.149661 0.163403 +v 0.738151 0.223917 0.167754 +v 0.712657 0.295194 0.167754 +v 0.734091 0.222685 0.163403 +v 0.708737 0.293570 0.163403 +v 0.680284 0.363621 0.167754 +v 0.641374 0.428554 0.167754 +v 0.676542 0.361621 0.163403 +v 0.637847 0.426197 0.163403 +v 0.596273 0.489351 0.167754 +v 0.545443 0.545446 0.167754 +v 0.592994 0.486659 0.163403 +v 0.542444 0.542445 0.163403 +v 0.489349 0.596274 0.167754 +v 0.428553 0.641375 0.167754 +v 0.486658 0.592995 0.163403 +v 0.426196 0.637848 0.163403 +v 0.363619 0.680284 0.167754 +v 0.295192 0.712658 0.167754 +v 0.361619 0.676543 0.163403 +v 0.293568 0.708738 0.163403 +v 0.223915 0.738152 0.167754 +v 0.150487 0.756553 0.167754 +v 0.222683 0.734092 0.163403 +v 0.149659 0.752393 0.163403 +v 0.075607 0.767652 0.167754 +v 0.075191 0.763430 0.163403 +v -0.066115 0.671276 0.159905 +v 0.000000 0.674532 0.159905 +v 0.000000 0.771291 0.159905 +v -0.075599 0.767568 0.159905 +v -0.131595 0.661571 0.159905 +v -0.150472 0.756471 0.159905 +v -0.110775 0.556903 0.159905 +v -0.055655 0.565073 0.159905 +v 0.000000 0.567814 0.159905 +v -0.195804 0.645479 0.159905 +v -0.223892 0.738071 0.159905 +v -0.258132 0.623186 0.159905 +v -0.295161 0.712580 0.159905 +v -0.217293 0.524593 0.159905 +v -0.164826 0.543359 0.159905 +v -0.317969 0.594877 0.159905 +v -0.363580 0.680210 0.159905 +v -0.374750 0.560852 0.159905 +v -0.428507 0.641305 0.159905 +v -0.315461 0.472121 0.159905 +v -0.267663 0.500762 0.159905 +v -0.427914 0.521414 0.159905 +v -0.489296 0.596209 0.159905 +v -0.476967 0.476967 0.159905 +v -0.545385 0.545385 0.159905 +v -0.401506 0.401506 0.159905 +v -0.360214 0.438922 0.159905 +v -0.521414 0.427914 0.159905 +v -0.596209 0.489297 0.159905 +v -0.560852 0.374750 0.159905 +v -0.641305 0.428507 0.159905 +v -0.472121 0.315461 0.159905 +v -0.438922 0.360214 0.159905 +v -0.594877 0.317969 0.159905 +v -0.680210 0.363580 0.159905 +v -0.623186 0.258132 0.159905 +v -0.712580 0.295161 0.159905 +v -0.524592 0.217293 0.159905 +v -0.500762 0.267663 0.159905 +v -0.645479 0.195804 0.159905 +v -0.738071 0.223892 0.159905 +v -0.661571 0.131595 0.159905 +v -0.756471 0.150472 0.159905 +v -0.556903 0.110775 0.159905 +v -0.543359 0.164826 0.159905 +v -0.671276 0.066115 0.159905 +v -0.767569 0.075599 0.159905 +v -0.674532 0.000000 0.159905 +v -0.771291 0.000000 0.159905 +v -0.567814 0.000000 0.159905 +v -0.565073 0.055655 0.159905 +v -0.671276 -0.066115 0.159905 +v -0.767569 -0.075599 0.159905 +v -0.661571 -0.131595 0.159905 +v -0.756471 -0.150472 0.159905 +v -0.556903 -0.110775 0.159905 +v -0.565073 -0.055655 0.159905 +v -0.645479 -0.195804 0.159905 +v -0.738071 -0.223892 0.159905 +v -0.623186 -0.258132 0.159905 +v -0.712580 -0.295161 0.159905 +v -0.524592 -0.217293 0.159905 +v -0.543359 -0.164826 0.159905 +v -0.594877 -0.317969 0.159905 +v -0.680210 -0.363580 0.159905 +v -0.560852 -0.374750 0.159905 +v -0.641305 -0.428507 0.159905 +v -0.472121 -0.315461 0.159905 +v -0.500762 -0.267663 0.159905 +v -0.521414 -0.427914 0.159905 +v -0.596209 -0.489297 0.159905 +v -0.476967 -0.476966 0.159905 +v -0.545385 -0.545385 0.159905 +v -0.401506 -0.401506 0.159905 +v -0.438922 -0.360214 0.159905 +v -0.427914 -0.521414 0.159905 +v -0.489296 -0.596209 0.159905 +v -0.374750 -0.560852 0.159905 +v -0.428507 -0.641305 0.159905 +v -0.315461 -0.472121 0.159905 +v -0.360214 -0.438922 0.159905 +v -0.317969 -0.594877 0.159905 +v -0.363580 -0.680210 0.159905 +v -0.258132 -0.623186 0.159905 +v -0.295161 -0.712580 0.159905 +v -0.217293 -0.524592 0.159905 +v -0.267663 -0.500762 0.159905 +v -0.195804 -0.645479 0.159905 +v -0.223892 -0.738071 0.159905 +v -0.131595 -0.661571 0.159905 +v -0.150471 -0.756471 0.159905 +v -0.110775 -0.556903 0.159905 +v -0.164826 -0.543357 0.159905 +v -0.066115 -0.671276 0.159905 +v -0.075599 -0.767568 0.159905 +v 0.000000 -0.674531 0.159905 +v 0.000000 -0.771291 0.159905 +v 0.000000 -0.567814 0.159905 +v -0.055655 -0.565073 0.159905 +v 0.066115 -0.671276 0.159905 +v 0.075599 -0.767568 0.159905 +v 0.131595 -0.661571 0.159905 +v 0.150472 -0.756471 0.159905 +v 0.110775 -0.556903 0.159905 +v 0.055655 -0.565073 0.159905 +v 0.195804 -0.645479 0.159905 +v 0.223892 -0.738071 0.159905 +v 0.258133 -0.623186 0.159905 +v 0.295161 -0.712580 0.159905 +v 0.217294 -0.524592 0.159905 +v 0.164826 -0.543357 0.159905 +v 0.317969 -0.594876 0.159905 +v 0.363581 -0.680210 0.159905 +v 0.374751 -0.560852 0.159905 +v 0.428507 -0.641305 0.159905 +v 0.315461 -0.472120 0.159905 +v 0.267663 -0.500762 0.159905 +v 0.427914 -0.521414 0.159905 +v 0.489297 -0.596209 0.159905 +v 0.476967 -0.476966 0.159905 +v 0.545386 -0.545385 0.159905 +v 0.401506 -0.401505 0.159905 +v 0.360214 -0.438921 0.159905 +v 0.521414 -0.427913 0.159905 +v 0.596209 -0.489296 0.159905 +v 0.560853 -0.374750 0.159905 +v 0.641306 -0.428507 0.159905 +v 0.472121 -0.315460 0.159905 +v 0.438922 -0.360213 0.159905 +v 0.594877 -0.317968 0.159905 +v 0.680211 -0.363580 0.159905 +v 0.623186 -0.258132 0.159905 +v 0.712581 -0.295160 0.159905 +v 0.524593 -0.217293 0.159905 +v 0.500762 -0.267662 0.159905 +v 0.645479 -0.195804 0.159905 +v 0.738072 -0.223891 0.159905 +v 0.661571 -0.131594 0.159905 +v 0.756471 -0.150471 0.159905 +v 0.556903 -0.110775 0.159905 +v 0.543359 -0.164825 0.159905 +v 0.671276 -0.066114 0.159905 +v 0.767569 -0.075598 0.159905 +v 0.674532 0.000001 0.159905 +v 0.771291 0.000001 0.159905 +v 0.567814 0.000001 0.159905 +v 0.565073 -0.055654 0.159905 +v 0.671276 0.066116 0.159905 +v 0.767568 0.075600 0.159905 +v 0.661571 0.131596 0.159905 +v 0.756471 0.150472 0.159905 +v 0.556903 0.110776 0.159905 +v 0.565073 0.055656 0.159905 +v 0.645479 0.195805 0.159905 +v 0.738071 0.223893 0.159905 +v 0.623185 0.258133 0.159905 +v 0.712580 0.295162 0.159905 +v 0.524592 0.217294 0.159905 +v 0.543357 0.164827 0.159905 +v 0.594876 0.317970 0.159905 +v 0.680210 0.363581 0.159905 +v 0.560852 0.374751 0.159905 +v 0.641305 0.428508 0.159905 +v 0.472120 0.315462 0.159905 +v 0.500762 0.267664 0.159905 +v 0.521414 0.427915 0.159905 +v 0.596209 0.489298 0.159905 +v 0.476966 0.476967 0.159905 +v 0.545385 0.545386 0.159905 +v 0.401505 0.401506 0.159905 +v 0.438921 0.360214 0.159905 +v 0.427913 0.521414 0.159905 +v 0.489296 0.596210 0.159905 +v 0.374749 0.560853 0.159905 +v 0.428506 0.641306 0.159905 +v 0.315460 0.472121 0.159905 +v 0.360213 0.438922 0.159905 +v 0.317968 0.594877 0.159905 +v 0.363580 0.680211 0.159905 +v 0.258132 0.623186 0.159905 +v 0.295160 0.712581 0.159905 +v 0.217292 0.524593 0.159905 +v 0.267662 0.500763 0.159905 +v 0.195803 0.645479 0.159905 +v 0.223891 0.738072 0.159905 +v 0.131594 0.661571 0.159905 +v 0.150471 0.756471 0.159905 +v 0.110774 0.556904 0.159905 +v 0.164825 0.543359 0.159905 +v 0.066114 0.671276 0.159905 +v 0.075598 0.767569 0.159905 +v 0.055654 0.565073 0.159905 +v -0.075271 0.764241 0.161134 +v -0.149819 0.753192 0.161134 +v 0.000000 0.767948 0.161134 +v -0.222921 0.734871 0.161134 +v -0.293881 0.709491 0.161134 +v -0.362004 0.677261 0.161134 +v -0.426649 0.638525 0.161134 +v -0.487176 0.593624 0.161134 +v -0.543022 0.543022 0.161134 +v -0.593624 0.487176 0.161134 +v -0.638525 0.426649 0.161134 +v -0.677261 0.362004 0.161134 +v -0.709491 0.293881 0.161134 +v -0.734871 0.222921 0.161134 +v -0.753192 0.149819 0.161134 +v -0.764241 0.075271 0.161134 +v -0.767947 0.000000 0.161134 +v -0.764241 -0.075271 0.161134 +v -0.753192 -0.149819 0.161134 +v -0.734871 -0.222921 0.161134 +v -0.709491 -0.293881 0.161134 +v -0.677261 -0.362004 0.161134 +v -0.638525 -0.426649 0.161134 +v -0.593624 -0.487176 0.161134 +v -0.543022 -0.543022 0.161134 +v -0.487176 -0.593624 0.161134 +v -0.426649 -0.638525 0.161134 +v -0.362004 -0.677261 0.161134 +v -0.293881 -0.709491 0.161134 +v -0.222921 -0.734871 0.161134 +v -0.149819 -0.753192 0.161134 +v -0.075271 -0.764241 0.161134 +v 0.000000 -0.767947 0.161134 +v 0.075272 -0.764241 0.161134 +v 0.149820 -0.753191 0.161134 +v 0.222921 -0.734871 0.161134 +v 0.293882 -0.709491 0.161134 +v 0.362005 -0.677261 0.161134 +v 0.426650 -0.638525 0.161134 +v 0.487176 -0.593624 0.161134 +v 0.543022 -0.543020 0.161134 +v 0.545385 -0.545385 0.159905 +v 0.593625 -0.487175 0.161134 +v 0.638525 -0.426649 0.161134 +v 0.677262 -0.362004 0.161134 +v 0.709491 -0.293881 0.161134 +v 0.734872 -0.222920 0.161134 +v 0.753192 -0.149819 0.161134 +v 0.764241 -0.075271 0.161134 +v 0.767947 0.000001 0.161134 +v 0.764241 0.075272 0.161134 +v 0.753191 0.149820 0.161134 +v 0.734871 0.222922 0.161134 +v 0.709491 0.293882 0.161134 +v 0.677261 0.362005 0.161134 +v 0.638524 0.426650 0.161134 +v 0.593624 0.487177 0.161134 +v 0.543020 0.543022 0.161134 +v 0.487175 0.593625 0.161134 +v 0.426648 0.638525 0.161134 +v 0.362003 0.677262 0.161134 +v 0.293880 0.709491 0.161134 +v 0.222920 0.734872 0.161134 +v 0.149818 0.753192 0.161134 +v 0.075271 0.764241 0.161134 +v -0.043243 0.439052 0.159905 +v 0.000000 0.441181 0.159905 +v -0.086070 0.432704 0.159905 +v -0.065943 0.331520 0.160102 +v -0.033131 0.336383 0.160102 +v 0.000000 0.338015 0.160102 +v -0.128067 0.422179 0.159905 +v -0.168833 0.407598 0.159905 +v -0.129353 0.312285 0.160102 +v -0.098119 0.323456 0.160102 +v -0.207969 0.389082 0.159905 +v -0.245107 0.366829 0.159905 +v -0.187791 0.281049 0.160102 +v -0.159337 0.298099 0.160102 +v -0.279879 0.341034 0.159905 +v -0.311962 0.311962 0.159905 +v -0.239012 0.239012 0.160102 +v -0.214432 0.261286 0.160102 +v -0.341034 0.279879 0.159905 +v -0.366829 0.245107 0.159905 +v -0.281049 0.187791 0.160102 +v -0.261286 0.214432 0.160102 +v -0.389082 0.207969 0.159905 +v -0.407598 0.168833 0.159905 +v -0.312285 0.129353 0.160102 +v -0.298099 0.159337 0.160102 +v -0.422179 0.128067 0.159905 +v -0.432704 0.086070 0.159905 +v -0.331520 0.065944 0.160102 +v -0.323456 0.098119 0.160102 +v -0.439052 0.043243 0.159905 +v -0.441181 0.000000 0.159905 +v -0.338014 0.000000 0.160102 +v -0.336383 0.033131 0.160102 +v -0.439051 -0.043243 0.159905 +v -0.432704 -0.086070 0.159905 +v -0.331520 -0.065943 0.160102 +v -0.336383 -0.033131 0.160102 +v -0.422179 -0.128066 0.159905 +v -0.407598 -0.168832 0.159905 +v -0.312285 -0.129352 0.160102 +v -0.323456 -0.098119 0.160102 +v -0.389082 -0.207969 0.159905 +v -0.366829 -0.245107 0.159905 +v -0.281049 -0.187791 0.160102 +v -0.298099 -0.159337 0.160102 +v -0.341034 -0.279879 0.159905 +v -0.311962 -0.311962 0.159905 +v -0.239012 -0.239012 0.160102 +v -0.261286 -0.214431 0.160102 +v -0.279879 -0.341033 0.159905 +v -0.245107 -0.366828 0.159905 +v -0.187791 -0.281049 0.160102 +v -0.214432 -0.261285 0.160102 +v -0.207969 -0.389082 0.159905 +v -0.168833 -0.407598 0.159905 +v -0.129352 -0.312284 0.160102 +v -0.159337 -0.298098 0.160102 +v -0.128067 -0.422179 0.159905 +v -0.086070 -0.432704 0.159905 +v -0.065943 -0.331519 0.160102 +v -0.098119 -0.323456 0.160102 +v -0.043243 -0.439051 0.159905 +v 0.000000 -0.441181 0.159905 +v 0.000000 -0.338014 0.160102 +v -0.033131 -0.336383 0.160102 +v 0.043243 -0.439051 0.159905 +v 0.086070 -0.432704 0.159905 +v 0.065943 -0.331519 0.160102 +v 0.033131 -0.336383 0.160102 +v 0.128067 -0.422179 0.159905 +v 0.168833 -0.407598 0.159905 +v 0.129353 -0.312284 0.160102 +v 0.098119 -0.323456 0.160102 +v 0.207969 -0.389082 0.159905 +v 0.245107 -0.366828 0.159905 +v 0.187791 -0.281048 0.160102 +v 0.159337 -0.298098 0.160102 +v 0.279879 -0.341033 0.159905 +v 0.311962 -0.311962 0.159905 +v 0.239012 -0.239012 0.160102 +v 0.214432 -0.261285 0.160102 +v 0.341034 -0.279879 0.159905 +v 0.366829 -0.245107 0.159905 +v 0.281049 -0.187790 0.160102 +v 0.261286 -0.214431 0.160102 +v 0.389082 -0.207968 0.159905 +v 0.407598 -0.168832 0.159905 +v 0.312285 -0.129352 0.160102 +v 0.298099 -0.159337 0.160102 +v 0.422179 -0.128066 0.159905 +v 0.432704 -0.086070 0.159905 +v 0.331520 -0.065943 0.160102 +v 0.323456 -0.098119 0.160102 +v 0.439051 -0.043242 0.159905 +v 0.441181 0.000001 0.159905 +v 0.338014 0.000001 0.160102 +v 0.336383 -0.033130 0.160102 +v 0.439051 0.043243 0.159905 +v 0.432704 0.086071 0.159905 +v 0.331519 0.065944 0.160102 +v 0.336383 0.033131 0.160102 +v 0.422179 0.128067 0.159905 +v 0.407598 0.168833 0.159905 +v 0.312284 0.129353 0.160102 +v 0.323456 0.098120 0.160102 +v 0.389082 0.207969 0.159905 +v 0.366828 0.245108 0.159905 +v 0.281048 0.187791 0.160102 +v 0.298098 0.159338 0.160102 +v 0.341033 0.279880 0.159905 +v 0.311962 0.311963 0.159905 +v 0.239012 0.239013 0.160102 +v 0.261285 0.214432 0.160102 +v 0.279878 0.341034 0.159905 +v 0.245106 0.366829 0.159905 +v 0.187790 0.281049 0.160102 +v 0.214431 0.261286 0.160102 +v 0.207968 0.389083 0.159905 +v 0.168832 0.407598 0.159905 +v 0.129352 0.312285 0.160102 +v 0.159337 0.298099 0.160102 +v 0.128066 0.422179 0.159905 +v 0.086070 0.432704 0.159905 +v 0.065943 0.331520 0.160102 +v 0.098119 0.323456 0.160102 +v 0.043242 0.439052 0.159905 +v 0.033131 0.336383 0.160102 +v -0.029571 0.300242 0.160692 +v 0.000000 0.301698 0.160692 +v -0.058858 0.295901 0.160692 +v -0.058435 0.293775 0.163863 +v -0.029359 0.298084 0.163863 +v 0.000000 0.299530 0.163863 +v -0.087577 0.288704 0.160692 +v -0.115455 0.278733 0.160692 +v -0.114625 0.276730 0.163863 +v -0.086948 0.286629 0.163863 +v -0.142218 0.266071 0.160692 +v -0.167615 0.250853 0.160692 +v -0.166410 0.249050 0.163863 +v -0.141196 0.264159 0.163863 +v -0.191393 0.233213 0.160692 +v -0.213333 0.213333 0.160692 +v -0.211800 0.211800 0.163863 +v -0.190018 0.231537 0.163863 +v -0.233213 0.191393 0.160692 +v -0.250853 0.167615 0.160692 +v -0.249050 0.166410 0.163863 +v -0.231537 0.190018 0.163863 +v -0.266071 0.142218 0.160692 +v -0.278733 0.115455 0.160692 +v -0.276730 0.114625 0.163863 +v -0.264159 0.141196 0.163863 +v -0.288704 0.087578 0.160692 +v -0.295901 0.058859 0.160692 +v -0.293775 0.058436 0.163863 +v -0.286629 0.086948 0.163863 +v -0.300242 0.029571 0.160692 +v -0.301698 0.000000 0.160692 +v -0.299530 0.000000 0.163863 +v -0.298084 0.029359 0.163863 +v -0.300242 -0.029571 0.160692 +v -0.295901 -0.058858 0.160692 +v -0.293775 -0.058435 0.163863 +v -0.298084 -0.029359 0.163863 +v -0.288704 -0.087577 0.160692 +v -0.278733 -0.115455 0.160692 +v -0.276730 -0.114625 0.163863 +v -0.286629 -0.086948 0.163863 +v -0.266071 -0.142218 0.160692 +v -0.250853 -0.167614 0.160692 +v -0.249050 -0.166410 0.163863 +v -0.264159 -0.141196 0.163863 +v -0.233213 -0.191393 0.160692 +v -0.213333 -0.213333 0.160692 +v -0.211800 -0.211800 0.163863 +v -0.231537 -0.190017 0.163863 +v -0.191393 -0.233213 0.160692 +v -0.167615 -0.250853 0.160692 +v -0.166410 -0.249050 0.163863 +v -0.190018 -0.231537 0.163863 +v -0.142218 -0.266071 0.160692 +v -0.115455 -0.278733 0.160692 +v -0.114625 -0.276729 0.163863 +v -0.141196 -0.264159 0.163863 +v -0.087577 -0.288704 0.160692 +v -0.058858 -0.295901 0.160692 +v -0.058435 -0.293774 0.163863 +v -0.086948 -0.286629 0.163863 +v -0.029571 -0.300242 0.160692 +v 0.000000 -0.301698 0.160692 +v 0.000000 -0.299530 0.163863 +v -0.029359 -0.298084 0.163863 +v 0.029571 -0.300242 0.160692 +v 0.058858 -0.295901 0.160692 +v 0.058435 -0.293774 0.163863 +v 0.029359 -0.298084 0.163863 +v 0.087577 -0.288704 0.160692 +v 0.115455 -0.278733 0.160692 +v 0.114625 -0.276729 0.163863 +v 0.086948 -0.286629 0.163863 +v 0.142218 -0.266071 0.160692 +v 0.167615 -0.250853 0.160692 +v 0.166410 -0.249050 0.163863 +v 0.141196 -0.264159 0.163863 +v 0.191393 -0.233213 0.160692 +v 0.213333 -0.213333 0.160692 +v 0.211800 -0.211799 0.163863 +v 0.190018 -0.231537 0.163863 +v 0.233213 -0.191393 0.160692 +v 0.250853 -0.167614 0.160692 +v 0.249050 -0.166410 0.163863 +v 0.231537 -0.190017 0.163863 +v 0.266071 -0.142217 0.160692 +v 0.278733 -0.115454 0.160692 +v 0.276730 -0.114625 0.163863 +v 0.264159 -0.141195 0.163863 +v 0.288704 -0.087577 0.160692 +v 0.295901 -0.058858 0.160692 +v 0.293775 -0.058435 0.163863 +v 0.286629 -0.086948 0.163863 +v 0.300242 -0.029571 0.160692 +v 0.301698 0.000000 0.160692 +v 0.299530 0.000000 0.163863 +v 0.298084 -0.029358 0.163863 +v 0.300242 0.029572 0.160692 +v 0.295901 0.058859 0.160692 +v 0.293775 0.058436 0.163863 +v 0.298084 0.029359 0.163863 +v 0.288704 0.087578 0.160692 +v 0.278733 0.115455 0.160692 +v 0.276729 0.114626 0.163863 +v 0.286629 0.086948 0.163863 +v 0.266071 0.142218 0.160692 +v 0.250853 0.167615 0.160692 +v 0.249050 0.166410 0.163863 +v 0.264159 0.141196 0.163863 +v 0.233213 0.191394 0.160692 +v 0.213332 0.213333 0.160692 +v 0.211799 0.211800 0.163863 +v 0.231537 0.190018 0.163863 +v 0.191393 0.233214 0.160692 +v 0.167614 0.250853 0.160692 +v 0.166410 0.249050 0.163863 +v 0.190017 0.231538 0.163863 +v 0.142217 0.266071 0.160692 +v 0.115454 0.278733 0.160692 +v 0.114625 0.276730 0.163863 +v 0.141195 0.264159 0.163863 +v 0.087577 0.288704 0.160692 +v 0.058858 0.295901 0.160692 +v 0.058435 0.293775 0.163863 +v 0.086947 0.286629 0.163863 +v 0.029571 0.300242 0.160692 +v 0.029358 0.298084 0.163863 +v -0.029288 0.297365 0.171805 +v 0.000000 0.298807 0.171805 +v -0.058294 0.293066 0.171805 +v -0.058294 0.293066 0.190138 +v -0.029288 0.297365 0.190138 +v 0.000000 0.298807 0.190138 +v -0.086738 0.285938 0.171805 +v -0.114349 0.276062 0.171805 +v -0.114349 0.276062 0.190138 +v -0.086738 0.285938 0.190138 +v -0.140855 0.263522 0.171805 +v -0.166008 0.248449 0.171805 +v -0.166008 0.248449 0.190138 +v -0.140855 0.263522 0.190138 +v -0.189559 0.230979 0.171805 +v -0.211289 0.211289 0.171805 +v -0.211289 0.211289 0.190138 +v -0.189559 0.230979 0.190138 +v -0.230978 0.189559 0.171805 +v -0.248449 0.166009 0.171805 +v -0.248449 0.166009 0.190138 +v -0.230978 0.189559 0.190138 +v -0.263521 0.140855 0.171805 +v -0.276062 0.114349 0.171805 +v -0.276062 0.114349 0.190138 +v -0.263521 0.140855 0.190138 +v -0.285937 0.086738 0.171805 +v -0.293066 0.058295 0.171805 +v -0.293066 0.058295 0.190138 +v -0.285937 0.086738 0.190138 +v -0.297365 0.029288 0.171805 +v -0.298807 0.000000 0.171805 +v -0.298807 0.000000 0.190138 +v -0.297365 0.029288 0.190138 +v -0.297365 -0.029288 0.171805 +v -0.293066 -0.058294 0.171805 +v -0.293066 -0.058294 0.190138 +v -0.297365 -0.029288 0.190138 +v -0.285937 -0.086738 0.171805 +v -0.276062 -0.114348 0.171805 +v -0.276062 -0.114348 0.190138 +v -0.285937 -0.086738 0.190138 +v -0.263521 -0.140855 0.171805 +v -0.248449 -0.166008 0.171805 +v -0.248449 -0.166008 0.190138 +v -0.263521 -0.140855 0.190138 +v -0.230979 -0.189559 0.171805 +v -0.211289 -0.211288 0.171805 +v -0.211289 -0.211288 0.190138 +v -0.230979 -0.189559 0.190138 +v -0.189559 -0.230978 0.171805 +v -0.166008 -0.248449 0.171805 +v -0.166008 -0.248449 0.190138 +v -0.189559 -0.230978 0.190138 +v -0.140855 -0.263521 0.171805 +v -0.114349 -0.276062 0.171805 +v -0.114349 -0.276062 0.190138 +v -0.140855 -0.263521 0.190138 +v -0.086738 -0.285937 0.171805 +v -0.058294 -0.293066 0.171805 +v -0.058294 -0.293066 0.190138 +v -0.086738 -0.285937 0.190138 +v -0.029288 -0.297365 0.171805 +v 0.000000 -0.298807 0.171805 +v 0.000000 -0.298807 0.190138 +v -0.029288 -0.297365 0.190138 +v 0.029288 -0.297365 0.171805 +v 0.058294 -0.293066 0.171805 +v 0.058294 -0.293066 0.190138 +v 0.029288 -0.297365 0.190138 +v 0.086738 -0.285937 0.171805 +v 0.114349 -0.276062 0.171805 +v 0.114349 -0.276062 0.190138 +v 0.086738 -0.285937 0.190138 +v 0.140855 -0.263521 0.171805 +v 0.166008 -0.248449 0.171805 +v 0.166008 -0.248449 0.190138 +v 0.140855 -0.263521 0.190138 +v 0.189559 -0.230978 0.171805 +v 0.211289 -0.211288 0.171805 +v 0.211289 -0.211288 0.190138 +v 0.189559 -0.230978 0.190138 +v 0.230978 -0.189559 0.171805 +v 0.248449 -0.166008 0.171805 +v 0.248449 -0.166008 0.190138 +v 0.230978 -0.189559 0.190138 +v 0.263521 -0.140855 0.171805 +v 0.276062 -0.114348 0.171805 +v 0.276062 -0.114348 0.190138 +v 0.263521 -0.140855 0.190138 +v 0.285937 -0.086738 0.171805 +v 0.293066 -0.058294 0.171805 +v 0.293066 -0.058294 0.190138 +v 0.285937 -0.086738 0.190138 +v 0.297365 -0.029287 0.171805 +v 0.298807 0.000000 0.171805 +v 0.298807 0.000000 0.190138 +v 0.297365 -0.029287 0.190138 +v 0.297365 0.029288 0.171805 +v 0.293066 0.058295 0.171805 +v 0.293066 0.058295 0.190138 +v 0.297365 0.029288 0.190138 +v 0.285937 0.086739 0.171805 +v 0.276062 0.114349 0.171805 +v 0.276062 0.114349 0.190138 +v 0.285937 0.086739 0.190138 +v 0.263521 0.140856 0.171805 +v 0.248449 0.166009 0.171805 +v 0.248449 0.166009 0.190138 +v 0.263521 0.140856 0.190138 +v 0.230978 0.189560 0.171805 +v 0.211288 0.211289 0.171805 +v 0.211288 0.211289 0.190138 +v 0.230978 0.189560 0.190138 +v 0.189559 0.230979 0.171805 +v 0.166008 0.248450 0.171805 +v 0.166008 0.248450 0.190138 +v 0.189559 0.230979 0.190138 +v 0.140855 0.263522 0.171805 +v 0.114348 0.276062 0.171805 +v 0.114348 0.276062 0.190138 +v 0.140855 0.263522 0.190138 +v 0.086738 0.285938 0.171805 +v 0.058294 0.293066 0.171805 +v 0.058294 0.293066 0.190138 +v 0.086738 0.285938 0.190138 +v 0.029288 0.297365 0.171805 +v 0.029288 0.297365 0.190138 +v -0.029703 0.301575 0.342229 +v 0.000000 0.303037 0.342229 +v 0.000000 0.299865 0.325097 +v -0.029392 0.298418 0.325097 +v -0.059120 0.297215 0.342229 +v -0.058501 0.294103 0.325097 +v -0.060356 0.303430 0.353987 +v -0.030324 0.307881 0.353987 +v 0.000000 0.309375 0.353987 +v -0.087966 0.289985 0.342229 +v -0.087045 0.286950 0.325097 +v -0.115967 0.279970 0.342229 +v -0.114753 0.277039 0.325097 +v -0.118392 0.285825 0.353987 +v -0.089806 0.296050 0.353987 +v -0.142849 0.267252 0.342229 +v -0.141354 0.264454 0.325097 +v -0.168359 0.251966 0.342229 +v -0.166596 0.249329 0.325097 +v -0.171879 0.257236 0.353987 +v -0.145836 0.272841 0.353987 +v -0.192243 0.234248 0.342229 +v -0.190230 0.231796 0.325097 +v -0.214280 0.214280 0.342229 +v -0.212036 0.212037 0.325097 +v -0.218761 0.218761 0.353987 +v -0.196263 0.239147 0.353987 +v -0.234248 0.192243 0.342229 +v -0.231796 0.190230 0.325097 +v -0.251966 0.168359 0.342229 +v -0.249328 0.166596 0.325097 +v -0.257235 0.171879 0.353987 +v -0.239147 0.196263 0.353987 +v -0.267252 0.142849 0.342229 +v -0.264454 0.141354 0.325097 +v -0.279970 0.115968 0.342229 +v -0.277039 0.114753 0.325097 +v -0.285825 0.118393 0.353987 +v -0.272841 0.145837 0.353987 +v -0.289985 0.087966 0.342229 +v -0.286949 0.087045 0.325097 +v -0.297215 0.059120 0.342229 +v -0.294103 0.058501 0.325097 +v -0.303430 0.060356 0.353987 +v -0.296049 0.089806 0.353987 +v -0.301575 0.029703 0.342229 +v -0.298417 0.029392 0.325097 +v -0.303037 0.000000 0.342229 +v -0.299865 0.000000 0.325097 +v -0.309374 0.000000 0.353987 +v -0.307881 0.030324 0.353987 +v -0.301575 -0.029702 0.342229 +v -0.298417 -0.029391 0.325097 +v -0.297215 -0.059119 0.342229 +v -0.294103 -0.058500 0.325097 +v -0.303430 -0.060356 0.353987 +v -0.307881 -0.030323 0.353987 +v -0.289985 -0.087966 0.342229 +v -0.286949 -0.087045 0.325097 +v -0.279970 -0.115967 0.342229 +v -0.277039 -0.114753 0.325097 +v -0.285825 -0.118392 0.353987 +v -0.296049 -0.089805 0.353987 +v -0.267252 -0.142849 0.342229 +v -0.264454 -0.141353 0.325097 +v -0.251966 -0.168358 0.342229 +v -0.249328 -0.166596 0.325097 +v -0.257235 -0.171879 0.353987 +v -0.272841 -0.145836 0.353987 +v -0.234248 -0.192242 0.342229 +v -0.231796 -0.190230 0.325097 +v -0.214280 -0.214280 0.342229 +v -0.212036 -0.212036 0.325097 +v -0.218761 -0.218761 0.353987 +v -0.239147 -0.196263 0.353987 +v -0.192243 -0.234248 0.342229 +v -0.190230 -0.231796 0.325097 +v -0.168359 -0.251966 0.342229 +v -0.166596 -0.249328 0.325097 +v -0.171879 -0.257235 0.353987 +v -0.196263 -0.239147 0.353987 +v -0.142849 -0.267252 0.342229 +v -0.141354 -0.264454 0.325097 +v -0.115967 -0.279970 0.342229 +v -0.114753 -0.277039 0.325097 +v -0.118392 -0.285825 0.353987 +v -0.145836 -0.272841 0.353987 +v -0.087966 -0.289985 0.342229 +v -0.087045 -0.286949 0.325097 +v -0.059120 -0.297214 0.342229 +v -0.058501 -0.294103 0.325097 +v -0.060356 -0.303430 0.353987 +v -0.089806 -0.296049 0.353987 +v -0.029702 -0.301574 0.342229 +v -0.029392 -0.298417 0.325097 +v 0.000000 -0.303037 0.342229 +v 0.000000 -0.299865 0.325097 +v 0.000000 -0.309374 0.353987 +v -0.030324 -0.307881 0.353987 +v 0.029703 -0.301574 0.342229 +v 0.029392 -0.298417 0.325097 +v 0.059120 -0.297214 0.342229 +v 0.058501 -0.294103 0.325097 +v 0.060356 -0.303430 0.353987 +v 0.030324 -0.307881 0.353987 +v 0.087966 -0.289985 0.342229 +v 0.087045 -0.286949 0.325097 +v 0.115967 -0.279970 0.342229 +v 0.114753 -0.277039 0.325097 +v 0.118393 -0.285824 0.353987 +v 0.089806 -0.296049 0.353987 +v 0.142849 -0.267252 0.342229 +v 0.141354 -0.264454 0.325097 +v 0.168359 -0.251966 0.342229 +v 0.166596 -0.249328 0.325097 +v 0.171879 -0.257235 0.353987 +v 0.145836 -0.272840 0.353987 +v 0.192243 -0.234248 0.342229 +v 0.190230 -0.231796 0.325097 +v 0.214280 -0.214279 0.342229 +v 0.212036 -0.212036 0.325097 +v 0.218761 -0.218760 0.353987 +v 0.196263 -0.239146 0.353987 +v 0.234248 -0.192242 0.342229 +v 0.231796 -0.190230 0.325097 +v 0.251966 -0.168358 0.342229 +v 0.249328 -0.166596 0.325097 +v 0.257235 -0.171879 0.353987 +v 0.239147 -0.196262 0.353987 +v 0.267252 -0.142849 0.342229 +v 0.264454 -0.141353 0.325097 +v 0.279970 -0.115967 0.342229 +v 0.277039 -0.114753 0.325097 +v 0.285825 -0.118392 0.353987 +v 0.272841 -0.145836 0.353987 +v 0.289985 -0.087966 0.342229 +v 0.286949 -0.087045 0.325097 +v 0.297215 -0.059119 0.342229 +v 0.294103 -0.058500 0.325097 +v 0.303430 -0.060355 0.353987 +v 0.296049 -0.089805 0.353987 +v 0.301575 -0.029702 0.342229 +v 0.298417 -0.029391 0.325097 +v 0.303037 0.000000 0.342229 +v 0.299865 0.000000 0.325097 +v 0.309374 0.000000 0.353987 +v 0.307881 -0.030323 0.353987 +v 0.301574 0.029703 0.342229 +v 0.298417 0.029392 0.325097 +v 0.297214 0.059120 0.342229 +v 0.294103 0.058501 0.325097 +v 0.303430 0.060356 0.353987 +v 0.307881 0.030324 0.353987 +v 0.289985 0.087967 0.342229 +v 0.286949 0.087046 0.325097 +v 0.279970 0.115968 0.342229 +v 0.277039 0.114754 0.325097 +v 0.285824 0.118393 0.353987 +v 0.296049 0.089806 0.353987 +v 0.267252 0.142850 0.342229 +v 0.264454 0.141354 0.325097 +v 0.251966 0.168359 0.342229 +v 0.249328 0.166596 0.325097 +v 0.257235 0.171880 0.353987 +v 0.272840 0.145837 0.353987 +v 0.234248 0.192243 0.342229 +v 0.231796 0.190230 0.325097 +v 0.214279 0.214280 0.342229 +v 0.212036 0.212037 0.325097 +v 0.218760 0.218761 0.353987 +v 0.239146 0.196263 0.353987 +v 0.192242 0.234249 0.342229 +v 0.190230 0.231796 0.325097 +v 0.168358 0.251967 0.342229 +v 0.166596 0.249329 0.325097 +v 0.171879 0.257236 0.353987 +v 0.196262 0.239147 0.353987 +v 0.142849 0.267252 0.342229 +v 0.141353 0.264454 0.325097 +v 0.115967 0.279970 0.342229 +v 0.114753 0.277039 0.325097 +v 0.118392 0.285825 0.353987 +v 0.145836 0.272841 0.353987 +v 0.087966 0.289986 0.342229 +v 0.087045 0.286950 0.325097 +v 0.059119 0.297215 0.342229 +v 0.058500 0.294103 0.325097 +v 0.060355 0.303430 0.353987 +v 0.089805 0.296050 0.353987 +v 0.029702 0.301575 0.342229 +v 0.029391 0.298418 0.325097 +v 0.030323 0.307881 0.353987 +v -0.038505 0.390944 0.407243 +v 0.000000 0.392840 0.407243 +v 0.000000 0.373951 0.397260 +v -0.036653 0.372146 0.397260 +v -0.076639 0.385292 0.407243 +v -0.072954 0.366765 0.397260 +v -0.079427 0.399306 0.415092 +v -0.039905 0.405164 0.415092 +v 0.000000 0.407129 0.415092 +v -0.114034 0.375920 0.407243 +v -0.108551 0.357844 0.397260 +v -0.150333 0.362937 0.407243 +v -0.143105 0.345486 0.397260 +v -0.155802 0.376138 0.415092 +v -0.118182 0.389594 0.415092 +v -0.185181 0.346450 0.407243 +v -0.176277 0.329791 0.397260 +v -0.218250 0.326635 0.407243 +v -0.207756 0.310929 0.397260 +v -0.226189 0.338515 0.415092 +v -0.191917 0.359052 0.415092 +v -0.249212 0.303666 0.407243 +v -0.237229 0.289065 0.397260 +v -0.277780 0.277780 0.407243 +v -0.264423 0.264423 0.397260 +v -0.287884 0.287884 0.415092 +v -0.258277 0.314711 0.415092 +v -0.303666 0.249212 0.407243 +v -0.289064 0.237229 0.397260 +v -0.326635 0.218250 0.407243 +v -0.310929 0.207756 0.397260 +v -0.338515 0.226189 0.415092 +v -0.314711 0.258277 0.415092 +v -0.346450 0.185182 0.407243 +v -0.329791 0.176277 0.397260 +v -0.362937 0.150334 0.407243 +v -0.345486 0.143105 0.397260 +v -0.376138 0.155802 0.415092 +v -0.359052 0.191917 0.415092 +v -0.375920 0.114034 0.407243 +v -0.357844 0.108551 0.397260 +v -0.385292 0.076639 0.407243 +v -0.366765 0.072954 0.397260 +v -0.399306 0.079427 0.415092 +v -0.389594 0.118182 0.415092 +v -0.390944 0.038505 0.407243 +v -0.372146 0.036653 0.397260 +v -0.392840 0.000000 0.407243 +v -0.373951 0.000000 0.397260 +v -0.407129 0.000000 0.415092 +v -0.405164 0.039905 0.415092 +v -0.390944 -0.038504 0.407243 +v -0.372146 -0.036653 0.397260 +v -0.385292 -0.076639 0.407243 +v -0.366765 -0.072954 0.397260 +v -0.399306 -0.079427 0.415092 +v -0.405164 -0.039905 0.415092 +v -0.375920 -0.114034 0.407243 +v -0.357844 -0.108551 0.397260 +v -0.362937 -0.150333 0.407243 +v -0.345485 -0.143105 0.397260 +v -0.376138 -0.155801 0.415092 +v -0.389594 -0.118182 0.415092 +v -0.346450 -0.185181 0.407243 +v -0.329791 -0.176277 0.397260 +v -0.326635 -0.218250 0.407243 +v -0.310929 -0.207756 0.397260 +v -0.338515 -0.226189 0.415092 +v -0.359052 -0.191917 0.415092 +v -0.303666 -0.249212 0.407243 +v -0.289064 -0.237229 0.397260 +v -0.277780 -0.277780 0.407243 +v -0.264423 -0.264423 0.397260 +v -0.287884 -0.287883 0.415092 +v -0.314711 -0.258277 0.415092 +v -0.249212 -0.303666 0.407243 +v -0.237229 -0.289064 0.397260 +v -0.218250 -0.326634 0.407243 +v -0.207756 -0.310929 0.397260 +v -0.226189 -0.338515 0.415092 +v -0.258277 -0.314711 0.415092 +v -0.185181 -0.346450 0.407243 +v -0.176277 -0.329791 0.397260 +v -0.150333 -0.362937 0.407243 +v -0.143105 -0.345485 0.397260 +v -0.155801 -0.376138 0.415092 +v -0.191917 -0.359051 0.415092 +v -0.114034 -0.375920 0.407243 +v -0.108551 -0.357844 0.397260 +v -0.076639 -0.385292 0.407243 +v -0.072954 -0.366765 0.397260 +v -0.079427 -0.399306 0.415092 +v -0.118182 -0.389593 0.415092 +v -0.038505 -0.390944 0.407243 +v -0.036653 -0.372146 0.397260 +v 0.000000 -0.392840 0.407243 +v 0.000000 -0.373951 0.397260 +v 0.000000 -0.407129 0.415092 +v -0.039905 -0.405164 0.415092 +v 0.038505 -0.390944 0.407243 +v 0.036653 -0.372146 0.397260 +v 0.076639 -0.385292 0.407243 +v 0.072954 -0.366765 0.397260 +v 0.079427 -0.399306 0.415092 +v 0.039905 -0.405164 0.415092 +v 0.114034 -0.375920 0.407243 +v 0.108551 -0.357844 0.397260 +v 0.150333 -0.362937 0.407243 +v 0.143105 -0.345485 0.397260 +v 0.155802 -0.376138 0.415092 +v 0.118182 -0.389593 0.415092 +v 0.185181 -0.346450 0.407243 +v 0.176277 -0.329791 0.397260 +v 0.218250 -0.326634 0.407243 +v 0.207756 -0.310928 0.397260 +v 0.226189 -0.338515 0.415092 +v 0.191917 -0.359051 0.415092 +v 0.249212 -0.303666 0.407243 +v 0.237229 -0.289064 0.397260 +v 0.277780 -0.277780 0.407243 +v 0.264423 -0.264423 0.397260 +v 0.287884 -0.287883 0.415092 +v 0.258277 -0.314711 0.415092 +v 0.303666 -0.249212 0.407243 +v 0.289064 -0.237229 0.397260 +v 0.326635 -0.218250 0.407243 +v 0.310929 -0.207755 0.397260 +v 0.338515 -0.226188 0.415092 +v 0.314711 -0.258276 0.415092 +v 0.346450 -0.185181 0.407243 +v 0.329791 -0.176277 0.397260 +v 0.362937 -0.150333 0.407243 +v 0.345486 -0.143104 0.397260 +v 0.376138 -0.155801 0.415092 +v 0.359052 -0.191917 0.415092 +v 0.375920 -0.114034 0.407243 +v 0.357844 -0.108550 0.397260 +v 0.385292 -0.076639 0.407243 +v 0.366765 -0.072954 0.397260 +v 0.399306 -0.079426 0.415092 +v 0.389594 -0.118181 0.415092 +v 0.390944 -0.038504 0.407243 +v 0.372146 -0.036653 0.397260 +v 0.392840 0.000001 0.407243 +v 0.373951 0.000001 0.397260 +v 0.407129 0.000001 0.415092 +v 0.405164 -0.039905 0.415092 +v 0.390944 0.038505 0.407243 +v 0.372146 0.036654 0.397260 +v 0.385292 0.076640 0.407243 +v 0.366765 0.072955 0.397260 +v 0.399306 0.079427 0.415092 +v 0.405164 0.039906 0.415092 +v 0.375920 0.114035 0.407243 +v 0.357844 0.108551 0.397260 +v 0.362937 0.150334 0.407243 +v 0.345485 0.143105 0.397260 +v 0.376138 0.155802 0.415092 +v 0.389593 0.118182 0.415092 +v 0.346450 0.185182 0.407243 +v 0.329791 0.176278 0.397260 +v 0.326634 0.218251 0.407243 +v 0.310928 0.207756 0.397260 +v 0.338515 0.226189 0.415092 +v 0.359051 0.191918 0.415092 +v 0.303666 0.249213 0.407243 +v 0.289064 0.237230 0.397260 +v 0.277779 0.277780 0.407243 +v 0.264423 0.264424 0.397260 +v 0.287883 0.287884 0.415092 +v 0.314711 0.258277 0.415092 +v 0.249212 0.303666 0.407243 +v 0.237229 0.289065 0.397260 +v 0.218250 0.326635 0.407243 +v 0.207755 0.310929 0.397260 +v 0.226188 0.338516 0.415092 +v 0.258276 0.314712 0.415092 +v 0.185181 0.346450 0.407243 +v 0.176277 0.329792 0.397260 +v 0.150333 0.362937 0.407243 +v 0.143104 0.345486 0.397260 +v 0.155801 0.376138 0.415092 +v 0.191916 0.359052 0.415092 +v 0.114034 0.375920 0.407243 +v 0.108550 0.357845 0.397260 +v 0.076639 0.385292 0.407243 +v 0.072954 0.366766 0.397260 +v 0.079426 0.399306 0.415092 +v 0.118181 0.389594 0.415092 +v 0.038504 0.390944 0.407243 +v 0.036653 0.372146 0.397260 +v 0.039905 0.405164 0.415092 +v -0.040545 0.411656 0.419733 +v 0.000000 0.413652 0.419733 +v -0.080700 0.405704 0.419733 +v -0.081146 0.407951 0.422903 +v -0.040769 0.413935 0.422903 +v 0.000000 0.415943 0.422903 +v -0.120076 0.395836 0.419733 +v -0.158298 0.382165 0.419733 +v -0.159174 0.384281 0.422903 +v -0.120740 0.398028 0.422903 +v -0.194992 0.364805 0.419733 +v -0.229813 0.343939 0.419733 +v -0.231086 0.345844 0.422903 +v -0.196072 0.366825 0.422903 +v -0.262415 0.319754 0.419733 +v -0.292496 0.292496 0.419733 +v -0.294116 0.294116 0.422903 +v -0.263868 0.321525 0.422903 +v -0.319754 0.262415 0.419733 +v -0.343939 0.229813 0.419733 +v -0.345844 0.231086 0.422903 +v -0.321524 0.263868 0.422903 +v -0.364804 0.194992 0.419733 +v -0.382165 0.158298 0.419733 +v -0.384281 0.159175 0.422903 +v -0.366825 0.196072 0.422903 +v -0.395836 0.120076 0.419733 +v -0.405704 0.080700 0.419733 +v -0.407951 0.081147 0.422903 +v -0.398028 0.120741 0.422903 +v -0.411656 0.040545 0.419733 +v -0.413652 0.000000 0.419733 +v -0.415943 0.000000 0.422903 +v -0.413935 0.040769 0.422903 +v -0.411656 -0.040544 0.419733 +v -0.405704 -0.080699 0.419733 +v -0.407951 -0.081146 0.422903 +v -0.413935 -0.040769 0.422903 +v -0.395836 -0.120075 0.419733 +v -0.382165 -0.158298 0.419733 +v -0.384281 -0.159174 0.422903 +v -0.398028 -0.120740 0.422903 +v -0.364804 -0.194992 0.419733 +v -0.343939 -0.229813 0.419733 +v -0.345844 -0.231085 0.422903 +v -0.366825 -0.196072 0.422903 +v -0.319754 -0.262415 0.419733 +v -0.292496 -0.292496 0.419733 +v -0.294116 -0.294116 0.422903 +v -0.321525 -0.263868 0.422903 +v -0.262415 -0.319754 0.419733 +v -0.229813 -0.343939 0.419733 +v -0.231085 -0.345844 0.422903 +v -0.263868 -0.321524 0.422903 +v -0.194992 -0.364804 0.419733 +v -0.158298 -0.382165 0.419733 +v -0.159174 -0.384281 0.422903 +v -0.196072 -0.366825 0.422903 +v -0.120075 -0.395836 0.419733 +v -0.080699 -0.405704 0.419733 +v -0.081146 -0.407951 0.422903 +v -0.120740 -0.398028 0.422903 +v -0.040544 -0.411655 0.419733 +v 0.000000 -0.413652 0.419733 +v 0.000000 -0.415943 0.422903 +v -0.040769 -0.413935 0.422903 +v 0.040545 -0.411655 0.419733 +v 0.080700 -0.405704 0.419733 +v 0.081147 -0.407950 0.422903 +v 0.040769 -0.413935 0.422903 +v 0.120076 -0.395836 0.419733 +v 0.158298 -0.382165 0.419733 +v 0.159175 -0.384281 0.422903 +v 0.120741 -0.398028 0.422903 +v 0.194992 -0.364804 0.419733 +v 0.229813 -0.343939 0.419733 +v 0.231086 -0.345844 0.422903 +v 0.196072 -0.366824 0.422903 +v 0.262415 -0.319753 0.419733 +v 0.292496 -0.292496 0.419733 +v 0.294116 -0.294116 0.422903 +v 0.263868 -0.321524 0.422903 +v 0.319754 -0.262415 0.419733 +v 0.343939 -0.229812 0.419733 +v 0.345844 -0.231085 0.422903 +v 0.321525 -0.263868 0.422903 +v 0.364804 -0.194992 0.419733 +v 0.382165 -0.158297 0.419733 +v 0.384281 -0.159174 0.422903 +v 0.366825 -0.196071 0.422903 +v 0.395836 -0.120075 0.419733 +v 0.405704 -0.080699 0.419733 +v 0.407951 -0.081146 0.422903 +v 0.398028 -0.120740 0.422903 +v 0.411656 -0.040544 0.419733 +v 0.413652 0.000001 0.419733 +v 0.415943 0.000001 0.422903 +v 0.413935 -0.040769 0.422903 +v 0.411655 0.040545 0.419733 +v 0.405704 0.080700 0.419733 +v 0.407951 0.081147 0.422903 +v 0.413935 0.040770 0.422903 +v 0.395836 0.120076 0.419733 +v 0.382164 0.158298 0.419733 +v 0.384281 0.159175 0.422903 +v 0.398028 0.120741 0.422903 +v 0.364804 0.194993 0.419733 +v 0.343939 0.229813 0.419733 +v 0.345843 0.231086 0.422903 +v 0.366824 0.196072 0.422903 +v 0.319753 0.262416 0.419733 +v 0.292496 0.292497 0.419733 +v 0.294116 0.294117 0.422903 +v 0.321524 0.263869 0.422903 +v 0.262415 0.319754 0.419733 +v 0.229812 0.343940 0.419733 +v 0.231085 0.345844 0.422903 +v 0.263868 0.321525 0.422903 +v 0.194991 0.364805 0.419733 +v 0.158297 0.382165 0.419733 +v 0.159174 0.384281 0.422903 +v 0.196071 0.366825 0.422903 +v 0.120075 0.395836 0.419733 +v 0.080699 0.405704 0.419733 +v 0.081146 0.407951 0.422903 +v 0.120740 0.398028 0.422903 +v 0.040544 0.411656 0.419733 +v 0.040769 0.413935 0.422903 +v -0.041047 0.416754 0.441378 +v 0.000000 0.418775 0.441378 +v 0.000000 0.418465 0.433699 +v -0.041016 0.416445 0.433699 +v -0.081699 0.410729 0.441378 +v -0.081638 0.410424 0.433699 +v -0.121563 0.400738 0.441378 +v -0.121473 0.400441 0.433699 +v -0.160258 0.386898 0.441378 +v -0.160140 0.386611 0.433699 +v -0.197407 0.369323 0.441378 +v -0.197261 0.369049 0.433699 +v -0.232659 0.348199 0.441378 +v -0.232487 0.347941 0.433699 +v -0.265665 0.323714 0.441378 +v -0.265468 0.323474 0.433699 +v -0.296119 0.296119 0.441378 +v -0.295899 0.295900 0.433699 +v -0.323714 0.265665 0.441378 +v -0.323474 0.265468 0.433699 +v -0.348199 0.232659 0.441378 +v -0.347941 0.232487 0.433699 +v -0.369323 0.197407 0.441378 +v -0.369049 0.197261 0.433699 +v -0.386898 0.160259 0.441378 +v -0.386611 0.160140 0.433699 +v -0.400738 0.121563 0.441378 +v -0.400441 0.121473 0.433699 +v -0.410729 0.081699 0.441378 +v -0.410424 0.081639 0.433699 +v -0.416754 0.041047 0.441378 +v -0.416445 0.041016 0.433699 +v -0.418775 0.000000 0.441378 +v -0.418465 0.000000 0.433699 +v -0.416754 -0.041047 0.441378 +v -0.416445 -0.041016 0.433699 +v -0.410729 -0.081699 0.441378 +v -0.410424 -0.081638 0.433699 +v -0.400738 -0.121562 0.441378 +v -0.400441 -0.121472 0.433699 +v -0.386898 -0.160258 0.441378 +v -0.386611 -0.160139 0.433699 +v -0.369323 -0.197407 0.441378 +v -0.369049 -0.197261 0.433699 +v -0.348199 -0.232659 0.441378 +v -0.347941 -0.232487 0.433699 +v -0.323714 -0.265665 0.441378 +v -0.323474 -0.265468 0.433699 +v -0.296119 -0.296119 0.441378 +v -0.295899 -0.295899 0.433699 +v -0.265665 -0.323714 0.441378 +v -0.265468 -0.323474 0.433699 +v -0.232659 -0.348199 0.441378 +v -0.232487 -0.347941 0.433699 +v -0.197407 -0.369323 0.441378 +v -0.197261 -0.369049 0.433699 +v -0.160258 -0.386898 0.441378 +v -0.160140 -0.386611 0.433699 +v -0.121563 -0.400738 0.441378 +v -0.121472 -0.400441 0.433699 +v -0.081699 -0.410729 0.441378 +v -0.081638 -0.410424 0.433699 +v -0.041047 -0.416754 0.441378 +v -0.041016 -0.416445 0.433699 +v 0.000000 -0.418775 0.441378 +v 0.000000 -0.418465 0.433699 +v 0.041047 -0.416754 0.441378 +v 0.041016 -0.416445 0.433699 +v 0.081699 -0.410728 0.441378 +v 0.081639 -0.410424 0.433699 +v 0.121563 -0.400738 0.441378 +v 0.121473 -0.400441 0.433699 +v 0.160258 -0.386898 0.441378 +v 0.160140 -0.386611 0.433699 +v 0.197407 -0.369322 0.441378 +v 0.197261 -0.369049 0.433699 +v 0.232659 -0.348199 0.441378 +v 0.232487 -0.347941 0.433699 +v 0.265665 -0.323714 0.441378 +v 0.265468 -0.323474 0.433699 +v 0.296119 -0.296119 0.441377 +v 0.295900 -0.295899 0.433699 +v 0.323714 -0.265665 0.441377 +v 0.323474 -0.265468 0.433699 +v 0.348199 -0.232659 0.441377 +v 0.347941 -0.232486 0.433699 +v 0.369323 -0.197407 0.441377 +v 0.369049 -0.197260 0.433699 +v 0.386898 -0.160258 0.441377 +v 0.386611 -0.160139 0.433699 +v 0.400738 -0.121562 0.441377 +v 0.400441 -0.121472 0.433699 +v 0.410729 -0.081699 0.441377 +v 0.410424 -0.081638 0.433699 +v 0.416754 -0.041046 0.441377 +v 0.416445 -0.041016 0.433699 +v 0.418775 0.000001 0.441377 +v 0.418465 0.000001 0.433699 +v 0.416754 0.041047 0.441377 +v 0.416445 0.041017 0.433699 +v 0.410729 0.081700 0.441377 +v 0.410424 0.081639 0.433699 +v 0.400738 0.121563 0.441377 +v 0.400441 0.121473 0.433699 +v 0.386898 0.160259 0.441377 +v 0.386611 0.160140 0.433699 +v 0.369322 0.197408 0.441377 +v 0.369048 0.197261 0.433699 +v 0.348199 0.232660 0.441377 +v 0.347941 0.232487 0.433699 +v 0.323714 0.265666 0.441377 +v 0.323474 0.265469 0.433699 +v 0.296118 0.296119 0.441377 +v 0.295899 0.295900 0.433699 +v 0.265665 0.323714 0.441378 +v 0.265468 0.323475 0.433699 +v 0.232659 0.348199 0.441378 +v 0.232486 0.347941 0.433699 +v 0.197406 0.369323 0.441378 +v 0.197260 0.369049 0.433699 +v 0.160258 0.386898 0.441378 +v 0.160139 0.386612 0.433699 +v 0.121562 0.400739 0.441378 +v 0.121472 0.400442 0.433699 +v 0.081698 0.410729 0.441378 +v 0.081638 0.410424 0.433699 +v 0.041046 0.416754 0.441378 +v 0.041016 0.416445 0.433699 +v -0.031358 0.318381 0.364599 +v -0.062414 0.313778 0.364599 +v -0.032804 0.333064 0.375022 +v -0.065293 0.328249 0.375022 +v 0.000000 0.334680 0.375022 +v 0.000000 0.319926 0.364599 +v -0.092868 0.306146 0.364599 +v -0.122430 0.295573 0.364599 +v -0.097151 0.320265 0.375022 +v -0.128076 0.309204 0.375022 +v -0.150810 0.282146 0.364599 +v -0.177741 0.266008 0.364599 +v -0.157765 0.295158 0.375022 +v -0.185938 0.278276 0.375022 +v -0.202956 0.247303 0.364599 +v -0.226221 0.226222 0.364599 +v -0.212316 0.258708 0.375022 +v -0.236654 0.236654 0.375022 +v -0.247303 0.202956 0.364599 +v -0.266008 0.177741 0.364599 +v -0.258708 0.212316 0.375022 +v -0.278276 0.185938 0.375022 +v -0.282146 0.150810 0.364599 +v -0.295573 0.122430 0.364599 +v -0.295158 0.157765 0.375022 +v -0.309204 0.128077 0.375022 +v -0.306146 0.092869 0.364599 +v -0.313778 0.062415 0.364599 +v -0.320265 0.097151 0.375022 +v -0.328249 0.065293 0.375022 +v -0.318381 0.031358 0.364599 +v -0.319925 0.000000 0.364599 +v -0.333064 0.032804 0.375022 +v -0.334680 0.000000 0.375022 +v -0.318381 -0.031358 0.364599 +v -0.313778 -0.062414 0.364599 +v -0.333064 -0.032804 0.375022 +v -0.328249 -0.065293 0.375022 +v -0.306146 -0.092868 0.364599 +v -0.295573 -0.122430 0.364599 +v -0.320265 -0.097151 0.375022 +v -0.309204 -0.128076 0.375022 +v -0.282146 -0.150810 0.364599 +v -0.266008 -0.177741 0.364599 +v -0.295158 -0.157765 0.375022 +v -0.278276 -0.185938 0.375022 +v -0.247303 -0.202956 0.364599 +v -0.226221 -0.226221 0.364599 +v -0.258708 -0.212316 0.375022 +v -0.236654 -0.236654 0.375022 +v -0.202956 -0.247303 0.364599 +v -0.177741 -0.266008 0.364599 +v -0.212316 -0.258708 0.375022 +v -0.185938 -0.278276 0.375022 +v -0.150810 -0.282146 0.364599 +v -0.122430 -0.295572 0.364599 +v -0.157765 -0.295158 0.375022 +v -0.128076 -0.309204 0.375022 +v -0.092868 -0.306146 0.364599 +v -0.062414 -0.313778 0.364599 +v -0.097151 -0.320265 0.375022 +v -0.065293 -0.328249 0.375022 +v -0.031358 -0.318381 0.364599 +v 0.000000 -0.319925 0.364599 +v -0.032804 -0.333064 0.375022 +v 0.000000 -0.334679 0.375022 +v 0.031358 -0.318381 0.364599 +v 0.062414 -0.313778 0.364599 +v 0.032804 -0.333064 0.375022 +v 0.065293 -0.328249 0.375022 +v 0.092868 -0.306146 0.364599 +v 0.122430 -0.295572 0.364599 +v 0.097151 -0.320264 0.375022 +v 0.128076 -0.309203 0.375022 +v 0.150810 -0.282145 0.364599 +v 0.177741 -0.266008 0.364599 +v 0.157765 -0.295157 0.375022 +v 0.185938 -0.278276 0.375022 +v 0.202956 -0.247302 0.364599 +v 0.226222 -0.226221 0.364599 +v 0.212316 -0.258708 0.375022 +v 0.236654 -0.236654 0.375022 +v 0.247303 -0.202956 0.364599 +v 0.266008 -0.177741 0.364599 +v 0.258708 -0.212316 0.375022 +v 0.278276 -0.185938 0.375022 +v 0.282146 -0.150810 0.364599 +v 0.295573 -0.122430 0.364599 +v 0.295158 -0.157765 0.375022 +v 0.309204 -0.128076 0.375022 +v 0.306146 -0.092868 0.364599 +v 0.313778 -0.062414 0.364599 +v 0.320265 -0.097151 0.375022 +v 0.328249 -0.065292 0.375022 +v 0.318381 -0.031357 0.364599 +v 0.319925 0.000000 0.364599 +v 0.333064 -0.032803 0.375022 +v 0.334680 0.000001 0.375022 +v 0.318381 0.031358 0.364599 +v 0.313778 0.062415 0.364599 +v 0.333064 0.032804 0.375022 +v 0.328249 0.065293 0.375022 +v 0.306146 0.092869 0.364599 +v 0.295572 0.122431 0.364599 +v 0.320265 0.097152 0.375022 +v 0.309203 0.128077 0.375022 +v 0.282145 0.150811 0.364599 +v 0.266008 0.177742 0.364599 +v 0.295157 0.157766 0.375022 +v 0.278276 0.185939 0.375022 +v 0.247302 0.202957 0.364599 +v 0.226221 0.226222 0.364599 +v 0.258707 0.212317 0.375022 +v 0.236654 0.236655 0.375022 +v 0.202956 0.247303 0.364599 +v 0.177741 0.266009 0.364599 +v 0.212316 0.258708 0.375022 +v 0.185938 0.278276 0.375022 +v 0.150810 0.282146 0.364599 +v 0.122430 0.295573 0.364599 +v 0.157765 0.295158 0.375022 +v 0.128076 0.309204 0.375022 +v 0.092868 0.306146 0.364599 +v 0.062414 0.313778 0.364599 +v 0.097151 0.320265 0.375022 +v 0.065292 0.328249 0.375022 +v 0.031358 0.318381 0.364599 +v 0.032804 0.333064 0.375022 +v -0.034661 0.351919 0.386214 +v -0.068989 0.346831 0.386214 +v 0.000000 0.353626 0.386214 +v -0.102651 0.338395 0.386214 +v -0.135327 0.326708 0.386214 +v -0.166696 0.311867 0.386214 +v -0.196464 0.294029 0.386214 +v -0.224335 0.273354 0.386214 +v -0.250051 0.250051 0.386214 +v -0.273353 0.224335 0.386214 +v -0.294029 0.196464 0.386214 +v -0.311867 0.166696 0.386214 +v -0.326708 0.135327 0.386214 +v -0.338395 0.102651 0.386214 +v -0.346831 0.068989 0.386214 +v -0.351919 0.034661 0.386214 +v -0.353626 0.000000 0.386214 +v -0.351919 -0.034661 0.386214 +v -0.346831 -0.068989 0.386214 +v -0.338395 -0.102651 0.386214 +v -0.326708 -0.135327 0.386214 +v -0.311867 -0.166696 0.386214 +v -0.294029 -0.196464 0.386214 +v -0.273353 -0.224335 0.386214 +v -0.250051 -0.250051 0.386214 +v -0.224335 -0.273353 0.386214 +v -0.196464 -0.294029 0.386214 +v -0.166696 -0.311867 0.386214 +v -0.135327 -0.326708 0.386214 +v -0.102651 -0.338395 0.386214 +v -0.068989 -0.346831 0.386214 +v -0.034661 -0.351919 0.386214 +v 0.000000 -0.353626 0.386214 +v 0.034661 -0.351919 0.386214 +v 0.068989 -0.346831 0.386214 +v 0.102651 -0.338395 0.386214 +v 0.135327 -0.326708 0.386214 +v 0.166696 -0.311866 0.386214 +v 0.196464 -0.294029 0.386214 +v 0.224335 -0.273353 0.386214 +v 0.250051 -0.250051 0.386214 +v 0.273353 -0.224335 0.386214 +v 0.294029 -0.196464 0.386214 +v 0.311867 -0.166696 0.386214 +v 0.326708 -0.135326 0.386214 +v 0.338395 -0.102651 0.386214 +v 0.346831 -0.068989 0.386214 +v 0.351919 -0.034661 0.386214 +v 0.353626 0.000001 0.386214 +v 0.351919 0.034662 0.386214 +v 0.346831 0.068990 0.386214 +v 0.338395 0.102652 0.386214 +v 0.326708 0.135327 0.386214 +v 0.311866 0.166697 0.386214 +v 0.294029 0.196465 0.386214 +v 0.273353 0.224336 0.386214 +v 0.250051 0.250052 0.386214 +v 0.224335 0.273354 0.386214 +v 0.196464 0.294030 0.386214 +v 0.166696 0.311867 0.386214 +v 0.135326 0.326708 0.386214 +v 0.102650 0.338395 0.386214 +v 0.068988 0.346831 0.386214 +v 0.034661 0.351919 0.386214 +v -0.029288 0.297365 0.298366 +v -0.029288 0.297365 0.264129 +v -0.058294 0.293066 0.264129 +v -0.058294 0.293066 0.298366 +v 0.000000 0.298807 0.298366 +v 0.000000 0.298807 0.264129 +v -0.086738 0.285938 0.298366 +v -0.086738 0.285938 0.264129 +v -0.114349 0.276062 0.264129 +v -0.114349 0.276062 0.298366 +v -0.140855 0.263522 0.298366 +v -0.140855 0.263522 0.264129 +v -0.166009 0.248449 0.264129 +v -0.166008 0.248449 0.298366 +v -0.189559 0.230979 0.298366 +v -0.189559 0.230979 0.264129 +v -0.211289 0.211289 0.264129 +v -0.211289 0.211289 0.298366 +v -0.230978 0.189559 0.298366 +v -0.230978 0.189559 0.264129 +v -0.248449 0.166009 0.264129 +v -0.248449 0.166009 0.298366 +v -0.263521 0.140855 0.298366 +v -0.263521 0.140855 0.264129 +v -0.276062 0.114349 0.264129 +v -0.276062 0.114349 0.298366 +v -0.285937 0.086738 0.298366 +v -0.285937 0.086738 0.264129 +v -0.293066 0.058295 0.264129 +v -0.293066 0.058295 0.298366 +v -0.297365 0.029288 0.298366 +v -0.297365 0.029288 0.264129 +v -0.298807 0.000000 0.264129 +v -0.298807 0.000000 0.298366 +v -0.297365 -0.029288 0.298366 +v -0.297365 -0.029288 0.264129 +v -0.293066 -0.058294 0.264129 +v -0.293066 -0.058294 0.298366 +v -0.285937 -0.086738 0.298366 +v -0.285937 -0.086738 0.264129 +v -0.276062 -0.114348 0.264129 +v -0.276062 -0.114348 0.298366 +v -0.263521 -0.140855 0.298366 +v -0.263521 -0.140855 0.264129 +v -0.248449 -0.166008 0.264129 +v -0.248449 -0.166008 0.298366 +v -0.230979 -0.189559 0.298366 +v -0.230979 -0.189559 0.264129 +v -0.211289 -0.211288 0.264129 +v -0.211289 -0.211288 0.298366 +v -0.189559 -0.230978 0.298366 +v -0.189559 -0.230978 0.264129 +v -0.166008 -0.248449 0.264129 +v -0.166008 -0.248449 0.298366 +v -0.140855 -0.263521 0.298366 +v -0.140855 -0.263521 0.264129 +v -0.114349 -0.276062 0.264129 +v -0.114349 -0.276062 0.298366 +v -0.086738 -0.285937 0.298366 +v -0.086738 -0.285937 0.264129 +v -0.058294 -0.293066 0.264129 +v -0.058294 -0.293066 0.298366 +v -0.029288 -0.297365 0.298366 +v -0.029288 -0.297365 0.264129 +v 0.000000 -0.298807 0.264129 +v 0.000000 -0.298807 0.298366 +v 0.029288 -0.297365 0.298366 +v 0.029288 -0.297365 0.264129 +v 0.058294 -0.293066 0.264129 +v 0.058294 -0.293066 0.298366 +v 0.086738 -0.285937 0.298366 +v 0.086738 -0.285937 0.264129 +v 0.114349 -0.276062 0.264129 +v 0.114349 -0.276062 0.298366 +v 0.140855 -0.263521 0.298366 +v 0.140855 -0.263521 0.264129 +v 0.166008 -0.248449 0.264129 +v 0.166008 -0.248449 0.298366 +v 0.189559 -0.230978 0.298366 +v 0.189559 -0.230978 0.264129 +v 0.211289 -0.211288 0.264129 +v 0.211289 -0.211288 0.298366 +v 0.230978 -0.189559 0.298366 +v 0.230978 -0.189559 0.264129 +v 0.248449 -0.166008 0.264129 +v 0.248449 -0.166008 0.298366 +v 0.263521 -0.140855 0.298366 +v 0.263521 -0.140855 0.264129 +v 0.276062 -0.114348 0.264129 +v 0.276062 -0.114348 0.298366 +v 0.285937 -0.086738 0.298366 +v 0.285937 -0.086738 0.264129 +v 0.293066 -0.058294 0.264129 +v 0.293066 -0.058294 0.298366 +v 0.297365 -0.029287 0.298366 +v 0.297365 -0.029287 0.264129 +v 0.298807 0.000000 0.264129 +v 0.298807 0.000000 0.298366 +v 0.297365 0.029288 0.298366 +v 0.297365 0.029288 0.264129 +v 0.293066 0.058295 0.264129 +v 0.293066 0.058295 0.298366 +v 0.285937 0.086739 0.298366 +v 0.285937 0.086739 0.264129 +v 0.276062 0.114349 0.264129 +v 0.276062 0.114349 0.298366 +v 0.263521 0.140856 0.298366 +v 0.263521 0.140856 0.264129 +v 0.248449 0.166009 0.264129 +v 0.248449 0.166009 0.298366 +v 0.230978 0.189560 0.298366 +v 0.230978 0.189560 0.264129 +v 0.211288 0.211289 0.264129 +v 0.211288 0.211289 0.298366 +v 0.189559 0.230979 0.298366 +v 0.189559 0.230979 0.264129 +v 0.166008 0.248450 0.264129 +v 0.166008 0.248450 0.298366 +v 0.140855 0.263522 0.298366 +v 0.140855 0.263522 0.264129 +v 0.114348 0.276062 0.264129 +v 0.114348 0.276062 0.298366 +v 0.086738 0.285938 0.298366 +v 0.086738 0.285938 0.264129 +v 0.058294 0.293066 0.264129 +v 0.058294 0.293066 0.298366 +v 0.029288 0.297365 0.298366 +v 0.029288 0.297365 0.264129 +v -0.029288 0.297365 0.224483 +v -0.058294 0.293066 0.224483 +v 0.000000 0.298807 0.224483 +v -0.086738 0.285938 0.224483 +v -0.114349 0.276062 0.224483 +v -0.140855 0.263522 0.224483 +v -0.166008 0.248449 0.224483 +v -0.189559 0.230979 0.224483 +v -0.211289 0.211289 0.224483 +v -0.230978 0.189559 0.224483 +v -0.248449 0.166009 0.224483 +v -0.263521 0.140855 0.224483 +v -0.276062 0.114349 0.224483 +v -0.285937 0.086738 0.224483 +v -0.293066 0.058295 0.224483 +v -0.297365 0.029288 0.224483 +v -0.298807 0.000000 0.224483 +v -0.297365 -0.029288 0.224483 +v -0.293066 -0.058294 0.224483 +v -0.285937 -0.086738 0.224483 +v -0.276062 -0.114348 0.224483 +v -0.263521 -0.140855 0.224483 +v -0.248449 -0.166008 0.224483 +v -0.230979 -0.189559 0.224483 +v -0.211289 -0.211288 0.224483 +v -0.189559 -0.230978 0.224483 +v -0.166008 -0.248449 0.224483 +v -0.140855 -0.263521 0.224483 +v -0.114349 -0.276062 0.224483 +v -0.086738 -0.285937 0.224483 +v -0.058294 -0.293066 0.224483 +v -0.029288 -0.297365 0.224483 +v 0.000000 -0.298807 0.224483 +v 0.029288 -0.297365 0.224483 +v 0.058294 -0.293066 0.224483 +v 0.086738 -0.285937 0.224483 +v 0.114349 -0.276062 0.224483 +v 0.140855 -0.263521 0.224483 +v 0.166008 -0.248449 0.224483 +v 0.189559 -0.230978 0.224483 +v 0.211289 -0.211288 0.224483 +v 0.230978 -0.189559 0.224483 +v 0.248449 -0.166008 0.224483 +v 0.263521 -0.140855 0.224483 +v 0.276062 -0.114348 0.224483 +v 0.285937 -0.086738 0.224483 +v 0.293066 -0.058294 0.224483 +v 0.297365 -0.029287 0.224483 +v 0.298807 0.000000 0.224483 +v 0.297365 0.029288 0.224483 +v 0.293066 0.058295 0.224483 +v 0.285937 0.086739 0.224483 +v 0.276062 0.114349 0.224483 +v 0.263521 0.140856 0.224483 +v 0.248449 0.166009 0.224483 +v 0.230978 0.189560 0.224483 +v 0.211288 0.211289 0.224483 +v 0.189559 0.230979 0.224483 +v 0.166008 0.248450 0.224483 +v 0.140855 0.263522 0.224483 +v 0.114348 0.276062 0.224483 +v 0.086738 0.285938 0.224483 +v 0.058294 0.293066 0.224483 +v 0.029288 0.297365 0.224483 +v -0.040925 0.415519 0.426339 +v -0.081457 0.409511 0.426339 +v 0.000000 0.417534 0.426339 +v -0.121202 0.399551 0.426339 +v -0.159783 0.385751 0.426339 +v -0.196822 0.368228 0.426339 +v -0.231969 0.347167 0.426339 +v -0.264878 0.322754 0.426339 +v -0.295241 0.295241 0.426339 +v -0.322754 0.264878 0.426339 +v -0.347167 0.231970 0.426339 +v -0.368228 0.196822 0.426339 +v -0.385751 0.159783 0.426339 +v -0.399551 0.121202 0.426339 +v -0.409511 0.081457 0.426339 +v -0.415519 0.040925 0.426339 +v -0.417534 0.000000 0.426339 +v -0.415519 -0.040925 0.426339 +v -0.409511 -0.081457 0.426339 +v -0.399550 -0.121202 0.426339 +v -0.385751 -0.159783 0.426339 +v -0.368228 -0.196822 0.426339 +v -0.347167 -0.231969 0.426339 +v -0.322754 -0.264878 0.426339 +v -0.295241 -0.295241 0.426339 +v -0.264878 -0.322754 0.426339 +v -0.231969 -0.347167 0.426339 +v -0.196822 -0.368228 0.426339 +v -0.159783 -0.385751 0.426339 +v -0.121202 -0.399550 0.426339 +v -0.081457 -0.409511 0.426339 +v -0.040925 -0.415518 0.426339 +v 0.000000 -0.417534 0.426339 +v 0.040925 -0.415518 0.426339 +v 0.081457 -0.409511 0.426339 +v 0.121202 -0.399550 0.426339 +v 0.159783 -0.385751 0.426339 +v 0.196822 -0.368228 0.426339 +v 0.231970 -0.347167 0.426339 +v 0.264878 -0.322754 0.426339 +v 0.295241 -0.295241 0.426339 +v 0.322754 -0.264877 0.426339 +v 0.347167 -0.231969 0.426339 +v 0.368228 -0.196821 0.426339 +v 0.385751 -0.159783 0.426339 +v 0.399551 -0.121202 0.426339 +v 0.409511 -0.081456 0.426339 +v 0.415519 -0.040924 0.426339 +v 0.417534 0.000001 0.426339 +v 0.415519 0.040926 0.426339 +v 0.409511 0.081457 0.426339 +v 0.399550 0.121203 0.426339 +v 0.385751 0.159784 0.426339 +v 0.368227 0.196822 0.426339 +v 0.347166 0.231970 0.426339 +v 0.322754 0.264878 0.426339 +v 0.295241 0.295242 0.426339 +v 0.264877 0.322755 0.426339 +v 0.231969 0.347167 0.426339 +v 0.196821 0.368228 0.426339 +v 0.159783 0.385751 0.426339 +v 0.121202 0.399551 0.426339 +v 0.081456 0.409511 0.426339 +v 0.040925 0.415519 0.426339 +v 0.000000 0.000000 0.771950 +v -0.075862 0.770235 0.020561 +v -0.150994 0.759099 0.020561 +v 0.000000 0.773971 0.020561 +v 0.075861 0.770235 0.020561 +v 0.150993 0.759100 0.020561 +v 0.224669 0.740636 0.020561 +v 0.296185 0.715056 0.020561 +v 0.364843 0.682574 0.020561 +v 0.429995 0.643534 0.020561 +v 0.490996 0.598281 0.020561 +v 0.547279 0.547281 0.020561 +v 0.598280 0.490998 0.020561 +v 0.643533 0.429997 0.020561 +v 0.682573 0.364844 0.020561 +v 0.715056 0.296187 0.020561 +v 0.740635 0.224670 0.020561 +v 0.759099 0.150995 0.020561 +v 0.770235 0.075862 0.020561 +v 0.773971 0.000001 0.020561 +v 0.770235 -0.075861 0.020561 +v 0.759100 -0.150994 0.020561 +v 0.740636 -0.224669 0.020561 +v 0.715056 -0.296186 0.020561 +v 0.682574 -0.364843 0.020561 +v 0.643534 -0.429995 0.020561 +v 0.598281 -0.490997 0.020561 +v 0.547280 -0.547280 0.020561 +v 0.490997 -0.598280 0.020561 +v 0.429996 -0.643533 0.020561 +v 0.364844 -0.682573 0.020561 +v 0.296187 -0.715056 0.020561 +v 0.224670 -0.740635 0.020561 +v 0.150995 -0.759099 0.020561 +v 0.075862 -0.770235 0.020561 +v 0.000000 -0.773971 0.020561 +v -0.075861 -0.770235 0.020561 +v -0.150994 -0.759099 0.020561 +v -0.224669 -0.740635 0.020561 +v -0.296186 -0.715056 0.020561 +v -0.364844 -0.682573 0.020561 +v -0.429996 -0.643533 0.020561 +v -0.490997 -0.598281 0.020561 +v -0.547280 -0.547280 0.020561 +v -0.598281 -0.490997 0.020561 +v -0.643533 -0.429996 0.020561 +v -0.682573 -0.364844 0.020561 +v -0.715056 -0.296186 0.020561 +v -0.740636 -0.224670 0.020561 +v -0.759099 -0.150994 0.020561 +v -0.770235 -0.075862 0.020561 +v -0.773971 0.000000 0.020561 +v -0.770235 0.075862 0.020561 +v -0.759099 0.150995 0.020561 +v -0.740636 0.224670 0.020561 +v -0.715056 0.296186 0.020561 +v -0.682573 0.364844 0.020561 +v -0.643533 0.429996 0.020561 +v -0.598281 0.490997 0.020561 +v -0.547280 0.547280 0.020561 +v -0.490997 0.598281 0.020561 +v -0.429996 0.643533 0.020561 +v -0.364844 0.682574 0.020561 +v -0.296186 0.715056 0.020561 +v -0.224670 0.740636 0.020561 +v -0.040975 0.416029 0.020561 +v -0.081557 0.410014 0.020561 +v 0.000000 0.418047 0.020561 +v 0.040975 0.416029 0.020561 +v 0.081556 0.410015 0.020561 +v 0.121351 0.400042 0.020561 +v 0.159979 0.386225 0.020561 +v 0.197063 0.368681 0.020561 +v 0.232254 0.347594 0.020561 +v 0.265203 0.323151 0.020561 +v 0.295603 0.295604 0.020561 +v 0.323150 0.265204 0.020561 +v 0.347593 0.232255 0.020561 +v 0.368680 0.197064 0.020561 +v 0.386225 0.159980 0.020561 +v 0.400041 0.121352 0.020561 +v 0.410014 0.081557 0.020561 +v 0.416029 0.040976 0.020561 +v 0.418047 0.000001 0.020561 +v 0.416029 -0.040975 0.020561 +v 0.410014 -0.081556 0.020561 +v 0.400041 -0.121351 0.020561 +v 0.386225 -0.159979 0.020561 +v 0.368680 -0.197063 0.020561 +v 0.347593 -0.232254 0.020561 +v 0.323151 -0.265203 0.020561 +v 0.295604 -0.295603 0.020561 +v 0.265203 -0.323151 0.020561 +v 0.232255 -0.347593 0.020561 +v 0.197064 -0.368680 0.020561 +v 0.159980 -0.386225 0.020561 +v 0.121351 -0.400041 0.020561 +v 0.081557 -0.410014 0.020561 +v 0.040975 -0.416029 0.020561 +v 0.000000 -0.418047 0.020561 +v -0.040975 -0.416029 0.020561 +v -0.081557 -0.410014 0.020561 +v -0.121351 -0.400041 0.020561 +v -0.159980 -0.386225 0.020561 +v -0.197064 -0.368680 0.020561 +v -0.232254 -0.347593 0.020561 +v -0.265203 -0.323151 0.020561 +v -0.295604 -0.295604 0.020561 +v -0.323151 -0.265203 0.020561 +v -0.347593 -0.232254 0.020561 +v -0.368680 -0.197064 0.020561 +v -0.386225 -0.159979 0.020561 +v -0.400041 -0.121351 0.020561 +v -0.410014 -0.081557 0.020561 +v -0.416029 -0.040975 0.020561 +v -0.418047 0.000000 0.020561 +v -0.416029 0.040975 0.020561 +v -0.410014 0.081557 0.020561 +v -0.400041 0.121351 0.020561 +v -0.386225 0.159980 0.020561 +v -0.368680 0.197064 0.020561 +v -0.347593 0.232255 0.020561 +v -0.323151 0.265203 0.020561 +v -0.295604 0.295604 0.020561 +v -0.265203 0.323151 0.020561 +v -0.232254 0.347593 0.020561 +v -0.197064 0.368680 0.020561 +v -0.159980 0.386225 0.020561 +v -0.121351 0.400042 0.020561 +v 0.000000 0.000000 0.020561 +vn 0.8672 -0.0169 0.4976 +vn 0.8583 -0.0654 0.5090 +vn 0.8661 -0.0653 0.4956 +vn 0.8675 -0.0330 0.4963 +vn 0.8596 -0.0331 0.5098 +vn 0.8757 -0.0329 0.4817 +vn 0.8763 -0.0005 0.4818 +vn 0.8681 -0.0004 0.4964 +vn 0.8741 -0.0651 0.4814 +vn 0.8560 -0.0975 0.5077 +vn 0.8529 -0.1293 0.5058 +vn 0.8606 -0.1291 0.4927 +vn 0.8638 -0.0974 0.4944 +vn 0.8683 -0.1285 0.4790 +vn 0.8716 -0.0969 0.4805 +vn 0.8835 -0.1256 0.4513 +vn 0.8865 -0.0949 0.4530 +vn 0.8789 -0.0961 0.4672 +vn 0.8756 -0.1272 0.4659 +vn 0.8889 -0.0636 0.4537 +vn 0.8815 -0.0644 0.4677 +vn 0.8906 -0.0319 0.4537 +vn 0.8916 -0.0004 0.4529 +vn 0.8843 -0.0006 0.4670 +vn 0.8833 -0.0325 0.4676 +vn 0.8131 -0.3267 0.4818 +vn 0.8250 -0.3259 0.4616 +vn 0.8374 -0.2760 0.4718 +vn 0.8267 -0.2763 0.4900 +vn 0.7956 -0.3808 0.4711 +vn 0.8087 -0.3796 0.4493 +vn 0.8346 -0.3242 0.4454 +vn 0.8457 -0.2745 0.4576 +vn 0.8207 -0.3771 0.4292 +vn 0.7472 -0.4952 0.4433 +vn 0.7642 -0.4944 0.4141 +vn 0.7879 -0.4368 0.4340 +vn 0.7732 -0.4381 0.4586 +vn 0.7801 -0.4914 0.3874 +vn 0.8022 -0.4343 0.4097 +vn 0.8319 -0.4230 0.3592 +vn 0.8165 -0.4297 0.3855 +vn 0.7964 -0.4859 0.3602 +vn 0.8134 -0.4781 0.3313 +vn 0.8460 -0.3676 0.3863 +vn 0.8327 -0.3733 0.4090 +vn 0.8568 -0.3151 0.4082 +vn 0.8649 -0.2672 0.4250 +vn 0.8565 -0.2706 0.4395 +vn 0.8450 -0.3209 0.4278 +vn 0.8678 -0.3088 0.3892 +vn 0.8735 -0.2631 0.4096 +vn 0.8584 -0.3608 0.3647 +vn 0.8784 -0.3012 0.3712 +vn 0.8829 -0.2569 0.3931 +vn 0.8698 -0.3525 0.3454 +vn 0.8287 -0.4689 0.3057 +vn 0.8459 -0.4146 0.3354 +vn 0.8441 -0.4570 0.2804 +vn 0.8589 -0.4047 0.3138 +vn 0.8854 -0.3789 0.2693 +vn 0.8729 -0.3922 0.2903 +vn 0.8597 -0.4432 0.2541 +vn 0.8742 -0.4279 0.2294 +vn 0.8931 -0.3302 0.3055 +vn 0.8824 -0.3410 0.3241 +vn 0.8975 -0.2835 0.3378 +vn 0.9015 -0.2384 0.3612 +vn 0.8923 -0.2482 0.3770 +vn 0.8878 -0.2934 0.3547 +vn 0.9075 -0.2707 0.3212 +vn 0.9075 -0.2322 0.3502 +vn 0.9033 -0.3178 0.2881 +vn 0.9159 -0.2598 0.3060 +vn 0.9161 -0.2209 0.3347 +vn 0.9144 -0.3020 0.2695 +vn 0.8883 -0.4108 0.2054 +vn 0.8975 -0.3643 0.2484 +vn 0.9014 -0.3924 0.1830 +vn 0.9095 -0.3476 0.2279 +vn 0.9316 -0.3095 0.1903 +vn 0.9208 -0.3294 0.2090 +vn 0.9142 -0.3719 0.1612 +vn 0.9263 -0.3496 0.1405 +vn 0.9330 -0.2701 0.2377 +vn 0.9237 -0.2871 0.2535 +vn 0.9324 -0.2315 0.2777 +vn 0.9301 -0.1979 0.3093 +vn 0.9248 -0.2070 0.3192 +vn 0.9246 -0.2459 0.2911 +vn 0.9402 -0.2155 0.2638 +vn 0.9378 -0.1825 0.2953 +vn 0.9422 -0.2509 0.2221 +vn 0.9467 -0.2013 0.2515 +vn 0.9438 -0.1713 0.2828 +vn 0.9502 -0.2327 0.2073 +vn 0.9377 -0.3255 0.1213 +vn 0.9419 -0.2880 0.1728 +vn 0.9477 -0.3016 0.1047 +vn 0.9507 -0.2669 0.1579 +vn 0.9669 -0.2197 0.1299 +vn 0.9588 -0.2449 0.1442 +vn 0.9572 -0.2754 0.0886 +vn 0.9661 -0.2477 0.0731 +vn 0.9643 -0.1919 0.1825 +vn 0.9571 -0.2152 0.1942 +vn 0.9559 -0.1544 0.2497 +vn 0.9488 -0.1635 0.2702 +vn 0.9536 -0.1891 0.2345 +vn 0.9605 -0.1733 0.2176 +vn 0.9645 -0.1528 0.2155 +vn 0.9572 -0.1355 0.2556 +vn 0.9709 -0.1676 0.1712 +vn 0.9679 -0.1290 0.2159 +vn 0.9589 -0.1194 0.2574 +vn 0.9749 -0.1497 0.1646 +vn 0.9741 -0.2182 0.0599 +vn 0.9743 -0.1916 0.1184 +vn 0.9811 -0.1876 0.0477 +vn 0.9801 -0.1662 0.1085 +vn 0.9891 -0.1135 0.0933 +vn 0.9847 -0.1425 0.1005 +vn 0.9863 -0.1602 0.0387 +vn 0.9913 -0.1281 0.0301 +vn 0.9835 -0.0980 0.1518 +vn 0.9794 -0.1254 0.1583 +vn 0.9643 -0.0838 0.2514 +vn 0.9618 -0.0999 0.2549 +vn 0.9714 -0.1074 0.2117 +vn 0.9745 -0.0885 0.2062 +vn 0.9775 -0.0651 0.2006 +vn 0.9668 -0.0626 0.2476 +vn 0.9865 -0.0726 0.1470 +vn 0.9793 -0.0438 0.1978 +vn 0.9689 -0.0392 0.2442 +vn 0.9883 -0.0500 0.1444 +vn 0.9952 -0.0950 0.0230 +vn 0.9926 -0.0839 0.0875 +vn 0.9977 -0.0646 0.0189 +vn 0.9948 -0.0571 0.0838 +vn 0.9968 -0.0000 0.0802 +vn 0.9963 -0.0297 0.0812 +vn 0.9993 -0.0326 0.0162 +vn 0.9999 0.0000 0.0155 +vn 0.9899 -0.0000 0.1415 +vn 0.9894 -0.0276 0.1425 +vn 0.9702 -0.0000 0.2423 +vn 0.9699 -0.0226 0.2426 +vn 0.9802 -0.0248 0.1964 +vn 0.9806 -0.0000 0.1959 +vn 0.9802 0.0248 0.1964 +vn 0.9699 0.0225 0.2426 +vn 0.9894 0.0271 0.1424 +vn 0.9793 0.0434 0.1976 +vn 0.9690 0.0389 0.2440 +vn 0.9883 0.0500 0.1443 +vn 0.9993 0.0327 0.0165 +vn 0.9963 0.0297 0.0812 +vn 0.9977 0.0646 0.0189 +vn 0.9948 0.0571 0.0838 +vn 0.9892 0.1133 0.0931 +vn 0.9926 0.0844 0.0876 +vn 0.9952 0.0953 0.0233 +vn 0.9913 0.1281 0.0301 +vn 0.9835 0.0981 0.1518 +vn 0.9865 0.0725 0.1470 +vn 0.9745 0.0885 0.2060 +vn 0.9643 0.0837 0.2512 +vn 0.9670 0.0621 0.2472 +vn 0.9775 0.0650 0.2005 +vn 0.9714 0.1073 0.2116 +vn 0.9619 0.0995 0.2547 +vn 0.9794 0.1257 0.1581 +vn 0.9679 0.1290 0.2158 +vn 0.9590 0.1192 0.2572 +vn 0.9751 0.1494 0.1641 +vn 0.9863 0.1602 0.0387 +vn 0.9847 0.1422 0.1008 +vn 0.9811 0.1876 0.0477 +vn 0.9801 0.1658 0.1088 +vn 0.9668 0.2201 0.1301 +vn 0.9744 0.1913 0.1184 +vn 0.9742 0.2179 0.0595 +vn 0.9660 0.2480 0.0730 +vn 0.9643 0.1919 0.1825 +vn 0.9708 0.1678 0.1712 +vn 0.9559 0.1544 0.2497 +vn 0.9573 0.1354 0.2555 +vn 0.9645 0.1528 0.2154 +vn 0.9605 0.1733 0.2176 +vn 0.9536 0.1891 0.2344 +vn 0.9489 0.1634 0.2701 +vn 0.9570 0.2153 0.1944 +vn 0.9468 0.2010 0.2515 +vn 0.9437 0.1713 0.2829 +vn 0.9502 0.2328 0.2070 +vn 0.9573 0.2752 0.0884 +vn 0.9588 0.2449 0.1442 +vn 0.9477 0.3016 0.1047 +vn 0.9507 0.2669 0.1579 +vn 0.9315 0.3098 0.1906 +vn 0.9421 0.2876 0.1727 +vn 0.9377 0.3255 0.1213 +vn 0.9263 0.3496 0.1405 +vn 0.9332 0.2696 0.2375 +vn 0.9423 0.2508 0.2217 +vn 0.9303 0.1977 0.3091 +vn 0.9379 0.1822 0.2951 +vn 0.9402 0.2155 0.2639 +vn 0.9326 0.2310 0.2774 +vn 0.9246 0.2458 0.2909 +vn 0.9250 0.2066 0.3190 +vn 0.9237 0.2871 0.2535 +vn 0.9158 0.2600 0.3060 +vn 0.9163 0.2204 0.3343 +vn 0.9146 0.3016 0.2694 +vn 0.9143 0.3716 0.1611 +vn 0.9208 0.3294 0.2090 +vn 0.9014 0.3924 0.1830 +vn 0.9096 0.3473 0.2278 +vn 0.8856 0.3788 0.2689 +vn 0.8972 0.3649 0.2488 +vn 0.8885 0.4104 0.2053 +vn 0.8742 0.4279 0.2294 +vn 0.8932 0.3301 0.3055 +vn 0.9034 0.3177 0.2880 +vn 0.9016 0.2382 0.3611 +vn 0.9075 0.2321 0.3501 +vn 0.9075 0.2706 0.3211 +vn 0.8976 0.2834 0.3378 +vn 0.8878 0.2933 0.3545 +vn 0.8925 0.2478 0.3769 +vn 0.8823 0.3412 0.3243 +vn 0.8783 0.3012 0.3712 +vn 0.8832 0.2563 0.3927 +vn 0.8698 0.3523 0.3453 +vn 0.8594 0.4437 0.2541 +vn 0.8729 0.3922 0.2903 +vn 0.8442 0.4570 0.2800 +vn 0.8589 0.4047 0.3138 +vn 0.8320 0.4226 0.3594 +vn 0.8460 0.4143 0.3358 +vn 0.8284 0.4692 0.3060 +vn 0.8131 0.4784 0.3316 +vn 0.8459 0.3678 0.3862 +vn 0.8583 0.3608 0.3647 +vn 0.8647 0.2672 0.4253 +vn 0.8736 0.2629 0.4095 +vn 0.8681 0.3085 0.3890 +vn 0.8569 0.3149 0.4081 +vn 0.8450 0.3208 0.4278 +vn 0.8566 0.2704 0.4394 +vn 0.8329 0.3733 0.4086 +vn 0.8346 0.3242 0.4454 +vn 0.8458 0.2744 0.4576 +vn 0.8209 0.3769 0.4289 +vn 0.7964 0.4859 0.3602 +vn 0.8165 0.4297 0.3855 +vn 0.7802 0.4910 0.3875 +vn 0.8019 0.4345 0.4101 +vn 0.7732 0.4381 0.4586 +vn 0.7877 0.4373 0.4339 +vn 0.7641 0.4943 0.4146 +vn 0.7472 0.4952 0.4433 +vn 0.7955 0.3811 0.4711 +vn 0.8087 0.3796 0.4493 +vn 0.8268 0.2763 0.4900 +vn 0.8376 0.2758 0.4716 +vn 0.8251 0.3259 0.4616 +vn 0.8131 0.3266 0.4818 +vn 0.7182 -0.5504 0.4259 +vn 0.7370 -0.5492 0.3941 +vn 0.6861 -0.6033 0.4066 +vn 0.7065 -0.6021 0.3720 +vn 0.7544 -0.5455 0.3651 +vn 0.7260 -0.5985 0.3387 +vn 0.6126 -0.7021 0.3630 +vn 0.6366 -0.7003 0.3230 +vn 0.6731 -0.6525 0.3481 +vn 0.6509 -0.6539 0.3857 +vn 0.6595 -0.6961 0.2839 +vn 0.6944 -0.6484 0.3122 +vn 0.7377 -0.6314 0.2390 +vn 0.7156 -0.6414 0.2764 +vn 0.6824 -0.6887 0.2451 +vn 0.7057 -0.6780 0.2054 +vn 0.7664 -0.5824 0.2710 +vn 0.7459 -0.5922 0.3049 +vn 0.7730 -0.5397 0.3336 +vn 0.7918 -0.5311 0.3018 +vn 0.8082 -0.5212 0.2741 +vn 0.7850 -0.5714 0.2395 +vn 0.8257 -0.5084 0.2445 +vn 0.8038 -0.5578 0.2070 +vn 0.7286 -0.6641 0.1676 +vn 0.7586 -0.6190 0.2034 +vn 0.7503 -0.6481 0.1306 +vn 0.7784 -0.6045 0.1691 +vn 0.8183 -0.5656 0.1025 +vn 0.7984 -0.5865 0.1361 +vn 0.7711 -0.6297 0.0945 +vn 0.7917 -0.6080 0.0593 +vn 0.8404 -0.5220 0.1456 +vn 0.8228 -0.5406 0.1753 +vn 0.8431 -0.4931 0.2146 +vn 0.8589 -0.4765 0.1877 +vn 0.8746 -0.4572 0.1613 +vn 0.8571 -0.5016 0.1175 +vn 0.8894 -0.4362 0.1367 +vn 0.8732 -0.4790 0.0897 +vn 0.8119 -0.5832 0.0258 +vn 0.8369 -0.5428 0.0710 +vn 0.8314 -0.5556 -0.0067 +vn 0.8542 -0.5183 0.0413 +vn 0.8866 -0.4624 -0.0145 +vn 0.8708 -0.4915 0.0124 +vn 0.8494 -0.5264 -0.0369 +vn 0.8662 -0.4954 -0.0659 +vn 0.9038 -0.4263 0.0375 +vn 0.8890 -0.4536 0.0625 +vn 0.9037 -0.4131 0.1127 +vn 0.9172 -0.3881 0.0897 +vn 0.9296 -0.3620 0.0687 +vn 0.9174 -0.3977 0.0149 +vn 0.9407 -0.3354 0.0501 +vn 0.9301 -0.3672 -0.0065 +vn 0.8814 -0.4633 -0.0923 +vn 0.9011 -0.4318 -0.0389 +vn 0.8965 -0.4271 -0.1178 +vn 0.9153 -0.3980 -0.0625 +vn 0.9395 -0.3266 -0.1036 +vn 0.9286 -0.3612 -0.0855 +vn 0.9107 -0.3880 -0.1418 +vn 0.9224 -0.3509 -0.1614 +vn 0.9525 -0.3012 -0.0453 +vn 0.9423 -0.3337 -0.0276 +vn 0.9519 -0.3050 0.0305 +vn 0.9613 -0.2750 0.0136 +vn 0.9701 -0.2428 -0.0013 +vn 0.9619 -0.2664 -0.0609 +vn 0.9778 -0.2090 -0.0147 +vn 0.9703 -0.2299 -0.0747 +vn 0.9334 -0.3100 -0.1807 +vn 0.9497 -0.2895 -0.1199 +vn 0.9431 -0.2675 -0.1976 +vn 0.9588 -0.2492 -0.1362 +vn 0.9726 -0.1685 -0.1603 +vn 0.9662 -0.2099 -0.1494 +vn 0.9513 -0.2256 -0.2102 +vn 0.9581 -0.1803 -0.2226 +vn 0.9831 -0.1552 -0.0970 +vn 0.9770 -0.1952 -0.0858 +vn 0.9838 -0.1776 -0.0246 +vn 0.9893 -0.1419 -0.0335 +vn 0.9935 -0.1058 -0.0412 +vn 0.9877 -0.1159 -0.1046 +vn 0.9963 -0.0719 -0.0461 +vn 0.9908 -0.0784 -0.1100 +vn 0.9632 -0.1364 -0.2316 +vn 0.9775 -0.1266 -0.1685 +vn 0.9671 -0.0917 -0.2373 +vn 0.9811 -0.0847 -0.1739 +vn 0.9839 0.0000 -0.1788 +vn 0.9831 -0.0439 -0.1775 +vn 0.9693 -0.0467 -0.2412 +vn 0.9701 0.0000 -0.2425 +vn 0.9934 0.0000 -0.1145 +vn 0.9927 -0.0409 -0.1134 +vn 0.9981 -0.0371 -0.0489 +vn 0.9988 -0.0000 -0.0497 +vn 0.9981 0.0371 -0.0489 +vn 0.9927 0.0409 -0.1134 +vn 0.9963 0.0722 -0.0462 +vn 0.9908 0.0784 -0.1100 +vn 0.9693 0.0467 -0.2412 +vn 0.9831 0.0439 -0.1775 +vn 0.9671 0.0914 -0.2375 +vn 0.9812 0.0844 -0.1738 +vn 0.9725 0.1690 -0.1605 +vn 0.9775 0.1266 -0.1685 +vn 0.9632 0.1367 -0.2314 +vn 0.9581 0.1803 -0.2226 +vn 0.9831 0.1555 -0.0967 +vn 0.9879 0.1150 -0.1042 +vn 0.9935 0.1062 -0.0413 +vn 0.9893 0.1419 -0.0335 +vn 0.9838 0.1776 -0.0241 +vn 0.9769 0.1952 -0.0865 +vn 0.9778 0.2092 -0.0144 +vn 0.9704 0.2297 -0.0749 +vn 0.9512 0.2253 -0.2107 +vn 0.9665 0.2093 -0.1488 +vn 0.9431 0.2677 -0.1973 +vn 0.9587 0.2497 -0.1363 +vn 0.9395 0.3266 -0.1036 +vn 0.9497 0.2890 -0.1205 +vn 0.9334 0.3100 -0.1806 +vn 0.9224 0.3506 -0.1618 +vn 0.9525 0.3012 -0.0453 +vn 0.9619 0.2664 -0.0609 +vn 0.9701 0.2428 -0.0013 +vn 0.9614 0.2747 0.0136 +vn 0.9519 0.3050 0.0305 +vn 0.9423 0.3337 -0.0276 +vn 0.9409 0.3352 0.0496 +vn 0.9301 0.3672 -0.0065 +vn 0.9107 0.3879 -0.1418 +vn 0.9285 0.3614 -0.0851 +vn 0.8965 0.4271 -0.1178 +vn 0.9153 0.3980 -0.0625 +vn 0.8866 0.4624 -0.0145 +vn 0.9009 0.4322 -0.0389 +vn 0.8812 0.4636 -0.0923 +vn 0.8662 0.4954 -0.0659 +vn 0.9038 0.4263 0.0375 +vn 0.9175 0.3974 0.0149 +vn 0.9296 0.3620 0.0687 +vn 0.9172 0.3881 0.0897 +vn 0.9037 0.4131 0.1127 +vn 0.8890 0.4536 0.0625 +vn 0.8896 0.4359 0.1366 +vn 0.8731 0.4792 0.0892 +vn 0.8494 0.5264 -0.0369 +vn 0.8706 0.4919 0.0124 +vn 0.8317 0.5552 -0.0063 +vn 0.8542 0.5183 0.0413 +vn 0.8182 0.5656 0.1029 +vn 0.8373 0.5421 0.0713 +vn 0.8120 0.5832 0.0258 +vn 0.7915 0.6082 0.0594 +vn 0.8404 0.5220 0.1456 +vn 0.8568 0.5023 0.1170 +vn 0.8749 0.4568 0.1612 +vn 0.8586 0.4770 0.1879 +vn 0.8434 0.4926 0.2146 +vn 0.8233 0.5399 0.1750 +vn 0.8257 0.5084 0.2445 +vn 0.8034 0.5581 0.2076 +vn 0.7709 0.6299 0.0946 +vn 0.7982 0.5868 0.1358 +vn 0.7503 0.6481 0.1306 +vn 0.7779 0.6050 0.1697 +vn 0.7377 0.6314 0.2390 +vn 0.7589 0.6187 0.2032 +vn 0.7290 0.6638 0.1674 +vn 0.7057 0.6780 0.2059 +vn 0.7664 0.5825 0.2710 +vn 0.7851 0.5714 0.2391 +vn 0.8084 0.5212 0.2736 +vn 0.7920 0.5309 0.3016 +vn 0.7730 0.5397 0.3336 +vn 0.7458 0.5921 0.3054 +vn 0.7545 0.5457 0.3646 +vn 0.7258 0.5985 0.3391 +vn 0.6828 0.6884 0.2449 +vn 0.7154 0.6417 0.2762 +vn 0.6595 0.6961 0.2839 +vn 0.6944 0.6484 0.3122 +vn 0.6509 0.6539 0.3857 +vn 0.6731 0.6525 0.3481 +vn 0.6362 0.7007 0.3228 +vn 0.6126 0.7021 0.3630 +vn 0.6861 0.6033 0.4066 +vn 0.7065 0.6021 0.3719 +vn 0.7370 0.5492 0.3941 +vn 0.7182 0.5504 0.4259 +vn 0.5718 -0.7471 0.3388 +vn 0.5974 -0.7456 0.2955 +vn 0.5286 -0.7891 0.3130 +vn 0.5557 -0.7872 0.2674 +vn 0.6215 -0.7409 0.2543 +vn 0.5814 -0.7822 0.2238 +vn 0.4343 -0.8633 0.2570 +vn 0.4636 -0.8613 0.2079 +vn 0.5108 -0.8260 0.2382 +vn 0.4824 -0.8281 0.2856 +vn 0.4925 -0.8556 0.1596 +vn 0.5383 -0.8206 0.1920 +vn 0.5925 -0.7993 0.1002 +vn 0.5656 -0.8117 0.1459 +vn 0.5213 -0.8461 0.1116 +vn 0.5495 -0.8330 0.0640 +vn 0.6327 -0.7624 0.1361 +vn 0.6072 -0.7739 0.1798 +vn 0.6461 -0.7330 0.2129 +vn 0.6704 -0.7218 0.1719 +vn 0.6947 -0.7072 0.1312 +vn 0.6576 -0.7475 0.0940 +vn 0.7187 -0.6893 0.0913 +vn 0.6828 -0.7287 0.0519 +vn 0.5770 -0.8165 0.0178 +vn 0.6186 -0.7837 0.0558 +vn 0.6042 -0.7964 -0.0279 +vn 0.6445 -0.7645 0.0112 +vn 0.6941 -0.7164 -0.0715 +vn 0.6697 -0.7420 -0.0309 +vn 0.6303 -0.7730 -0.0721 +vn 0.6556 -0.7463 -0.1153 +vn 0.7302 -0.6826 -0.0285 +vn 0.7070 -0.7072 0.0110 +vn 0.7412 -0.6692 0.0529 +vn 0.7628 -0.6464 0.0166 +vn 0.7838 -0.6207 -0.0200 +vn 0.7527 -0.6550 -0.0663 +vn 0.8040 -0.5922 -0.0539 +vn 0.7738 -0.6252 -0.1023 +vn 0.6797 -0.7166 -0.1565 +vn 0.7177 -0.6874 -0.1115 +vn 0.7034 -0.6833 -0.1956 +vn 0.7405 -0.6552 -0.1495 +vn 0.7817 -0.5838 -0.2191 +vn 0.7615 -0.6211 -0.1851 +vn 0.7254 -0.6474 -0.2339 +vn 0.7461 -0.6089 -0.2694 +vn 0.8134 -0.5566 -0.1688 +vn 0.7940 -0.5924 -0.1367 +vn 0.8236 -0.5605 -0.0871 +vn 0.8418 -0.5268 -0.1179 +vn 0.8580 -0.4925 -0.1459 +vn 0.8310 -0.5195 -0.1991 +vn 0.8738 -0.4544 -0.1729 +vn 0.8474 -0.4798 -0.2275 +vn 0.7662 -0.5669 -0.3026 +vn 0.8006 -0.5440 -0.2513 +vn 0.7842 -0.5235 -0.3332 +vn 0.8175 -0.5028 -0.2808 +vn 0.8481 -0.4124 -0.3326 +vn 0.8335 -0.4587 -0.3080 +vn 0.8004 -0.4781 -0.3615 +vn 0.8156 -0.4296 -0.3876 +vn 0.8768 -0.3932 -0.2768 +vn 0.8629 -0.4371 -0.2537 +vn 0.8888 -0.4133 -0.1980 +vn 0.9016 -0.3726 -0.2198 +vn 0.9132 -0.3292 -0.2404 +vn 0.8891 -0.3477 -0.2976 +vn 0.9233 -0.2857 -0.2566 +vn 0.8997 -0.3014 -0.3158 +vn 0.8291 -0.3804 -0.4097 +vn 0.8609 -0.3649 -0.3545 +vn 0.8410 -0.3292 -0.4293 +vn 0.8722 -0.3157 -0.3735 +vn 0.8899 -0.2140 -0.4028 +vn 0.8820 -0.2647 -0.3900 +vn 0.8509 -0.2758 -0.4470 +vn 0.8591 -0.2226 -0.4609 +vn 0.9165 -0.2032 -0.3445 +vn 0.9088 -0.2522 -0.3323 +vn 0.9321 -0.2395 -0.2717 +vn 0.9393 -0.1915 -0.2846 +vn 0.9449 -0.1457 -0.2933 +vn 0.9225 -0.1538 -0.3541 +vn 0.9489 -0.0975 -0.3000 +vn 0.9267 -0.1026 -0.3617 +vn 0.8656 -0.1679 -0.4718 +vn 0.8960 -0.1612 -0.4139 +vn 0.8702 -0.1124 -0.4797 +vn 0.9004 -0.1079 -0.4215 +vn 0.9039 -0.0000 -0.4277 +vn 0.9030 -0.0550 -0.4261 +vn 0.8728 -0.0569 -0.4847 +vn 0.8738 -0.0000 -0.4864 +vn 0.9302 -0.0000 -0.3671 +vn 0.9293 -0.0530 -0.3654 +vn 0.9514 -0.0497 -0.3041 +vn 0.9523 -0.0000 -0.3053 +vn 0.9514 0.0492 -0.3039 +vn 0.9292 0.0527 -0.3657 +vn 0.9489 0.0975 -0.3000 +vn 0.9267 0.1028 -0.3614 +vn 0.8728 0.0569 -0.4847 +vn 0.9030 0.0550 -0.4261 +vn 0.8702 0.1124 -0.4797 +vn 0.9004 0.1079 -0.4215 +vn 0.8898 0.2135 -0.4033 +vn 0.8958 0.1615 -0.4140 +vn 0.8658 0.1675 -0.4716 +vn 0.8591 0.2226 -0.4609 +vn 0.9165 0.2032 -0.3445 +vn 0.9225 0.1538 -0.3541 +vn 0.9450 0.1453 -0.2930 +vn 0.9394 0.1918 -0.2843 +vn 0.9321 0.2395 -0.2717 +vn 0.9089 0.2525 -0.3319 +vn 0.9233 0.2854 -0.2570 +vn 0.8997 0.3014 -0.3158 +vn 0.8509 0.2758 -0.4470 +vn 0.8820 0.2647 -0.3900 +vn 0.8407 0.3293 -0.4298 +vn 0.8725 0.3153 -0.3734 +vn 0.8481 0.4124 -0.3327 +vn 0.8607 0.3653 -0.3546 +vn 0.8291 0.3804 -0.4097 +vn 0.8160 0.4294 -0.3871 +vn 0.8768 0.3932 -0.2768 +vn 0.8892 0.3474 -0.2976 +vn 0.9130 0.3299 -0.2401 +vn 0.9019 0.3720 -0.2197 +vn 0.8888 0.4133 -0.1980 +vn 0.8629 0.4371 -0.2537 +vn 0.8738 0.4544 -0.1729 +vn 0.8471 0.4802 -0.2275 +vn 0.8003 0.4784 -0.3615 +vn 0.8335 0.4587 -0.3080 +vn 0.7842 0.5235 -0.3332 +vn 0.8173 0.5031 -0.2809 +vn 0.7818 0.5838 -0.2191 +vn 0.8008 0.5436 -0.2513 +vn 0.7666 0.5664 -0.3025 +vn 0.7461 0.6090 -0.2691 +vn 0.8136 0.5562 -0.1691 +vn 0.8310 0.5195 -0.1991 +vn 0.8580 0.4925 -0.1459 +vn 0.8421 0.5262 -0.1179 +vn 0.8238 0.5602 -0.0871 +vn 0.7937 0.5928 -0.1367 +vn 0.8037 0.5925 -0.0543 +vn 0.7738 0.6252 -0.1023 +vn 0.7254 0.6474 -0.2339 +vn 0.7615 0.6211 -0.1851 +vn 0.7033 0.6832 -0.1963 +vn 0.7408 0.6549 -0.1496 +vn 0.6936 0.7168 -0.0719 +vn 0.7177 0.6874 -0.1115 +vn 0.6797 0.7166 -0.1565 +vn 0.6560 0.7459 -0.1154 +vn 0.7302 0.6826 -0.0280 +vn 0.7530 0.6547 -0.0660 +vn 0.7835 0.6211 -0.0199 +vn 0.7628 0.6464 0.0161 +vn 0.7412 0.6692 0.0532 +vn 0.7070 0.7072 0.0110 +vn 0.7191 0.6889 0.0911 +vn 0.6828 0.7288 0.0514 +vn 0.6303 0.7730 -0.0721 +vn 0.6700 0.7417 -0.0311 +vn 0.6042 0.7964 -0.0279 +vn 0.6445 0.7645 0.0116 +vn 0.5925 0.7993 0.1002 +vn 0.6186 0.7837 0.0558 +vn 0.5770 0.8165 0.0178 +vn 0.5495 0.8330 0.0640 +vn 0.6327 0.7624 0.1361 +vn 0.6576 0.7475 0.0937 +vn 0.6947 0.7072 0.1312 +vn 0.6702 0.7221 0.1717 +vn 0.6461 0.7330 0.2129 +vn 0.6072 0.7739 0.1798 +vn 0.6215 0.7409 0.2543 +vn 0.5814 0.7822 0.2238 +vn 0.5213 0.8461 0.1116 +vn 0.5656 0.8117 0.1459 +vn 0.4925 0.8555 0.1596 +vn 0.5383 0.8206 0.1920 +vn 0.4822 0.8283 0.2854 +vn 0.5108 0.8260 0.2382 +vn 0.4636 0.8613 0.2079 +vn 0.4343 0.8633 0.2570 +vn 0.5286 0.7891 0.3130 +vn 0.5561 0.7870 0.2672 +vn 0.5974 0.7456 0.2955 +vn 0.5718 0.7471 0.3388 +vn 0.3845 -0.8947 0.2274 +vn 0.4147 -0.8926 0.1767 +vn 0.3330 -0.9222 0.1967 +vn 0.3640 -0.9201 0.1446 +vn 0.4446 -0.8867 0.1267 +vn 0.3946 -0.9141 0.0930 +vn 0.2259 -0.9650 0.1330 +vn 0.2583 -0.9629 0.0783 +vn 0.3116 -0.9436 0.1117 +vn 0.2799 -0.9457 0.1651 +vn 0.2903 -0.9566 0.0241 +vn 0.3431 -0.9374 0.0588 +vn 0.4053 -0.9130 -0.0466 +vn 0.3742 -0.9273 0.0057 +vn 0.3223 -0.9462 -0.0296 +vn 0.3539 -0.9316 -0.0828 +vn 0.4555 -0.8902 -0.0098 +vn 0.4252 -0.9041 0.0418 +vn 0.4745 -0.8769 0.0770 +vn 0.5040 -0.8632 0.0274 +vn 0.5323 -0.8463 -0.0207 +vn 0.4850 -0.8725 -0.0599 +vn 0.5602 -0.8255 -0.0680 +vn 0.5137 -0.8512 -0.1078 +vn 0.3847 -0.9132 -0.1344 +vn 0.4359 -0.8947 -0.0972 +vn 0.4153 -0.8906 -0.1853 +vn 0.4656 -0.8728 -0.1465 +vn 0.5221 -0.8174 -0.2433 +vn 0.4943 -0.8468 -0.1965 +vn 0.4448 -0.8640 -0.2359 +vn 0.4730 -0.8342 -0.2836 +vn 0.5692 -0.7970 -0.2021 +vn 0.5420 -0.8259 -0.1554 +vn 0.5875 -0.8012 -0.1140 +vn 0.6138 -0.7733 -0.1589 +vn 0.6388 -0.7426 -0.2012 +vn 0.5949 -0.7655 -0.2449 +vn 0.6632 -0.7080 -0.2427 +vn 0.6202 -0.7299 -0.2872 +vn 0.5001 -0.8008 -0.3295 +vn 0.5485 -0.7851 -0.2879 +vn 0.5260 -0.7639 -0.3739 +vn 0.5741 -0.7487 -0.3314 +vn 0.6218 -0.6663 -0.4116 +vn 0.5988 -0.7089 -0.3728 +vn 0.5508 -0.7236 -0.4159 +vn 0.5745 -0.6806 -0.4546 +vn 0.6662 -0.6501 -0.3654 +vn 0.6443 -0.6912 -0.3273 +vn 0.6863 -0.6706 -0.2817 +vn 0.7074 -0.6312 -0.3179 +vn 0.7280 -0.5880 -0.3525 +vn 0.6868 -0.6063 -0.4009 +vn 0.7471 -0.5424 -0.3842 +vn 0.7064 -0.5596 -0.4334 +vn 0.5964 -0.6342 -0.4920 +vn 0.6433 -0.6215 -0.4471 +vn 0.6167 -0.5853 -0.5264 +vn 0.6632 -0.5736 -0.4808 +vn 0.6982 -0.4709 -0.5392 +vn 0.6815 -0.5232 -0.5117 +vn 0.6353 -0.5340 -0.5579 +vn 0.6520 -0.4802 -0.5867 +vn 0.7403 -0.4592 -0.4910 +vn 0.7243 -0.5099 -0.4641 +vn 0.7643 -0.4950 -0.4133 +vn 0.7797 -0.4456 -0.4399 +vn 0.7937 -0.3945 -0.4629 +vn 0.7544 -0.4058 -0.5159 +vn 0.8056 -0.3401 -0.4852 +vn 0.7671 -0.3507 -0.5372 +vn 0.6674 -0.4249 -0.6116 +vn 0.7129 -0.4158 -0.5647 +vn 0.6805 -0.3677 -0.6338 +vn 0.7262 -0.3605 -0.5854 +vn 0.7458 -0.2434 -0.6201 +vn 0.7372 -0.3031 -0.6039 +vn 0.6914 -0.3085 -0.6532 +vn 0.7003 -0.2479 -0.6694 +vn 0.7872 -0.2381 -0.5690 +vn 0.7782 -0.2955 -0.5541 +vn 0.8159 -0.2858 -0.5026 +vn 0.8247 -0.2309 -0.5163 +vn 0.8315 -0.1739 -0.5276 +vn 0.7938 -0.1789 -0.5813 +vn 0.8362 -0.1162 -0.5360 +vn 0.7987 -0.1197 -0.5897 +vn 0.7078 -0.1871 -0.6812 +vn 0.7527 -0.1832 -0.6324 +vn 0.7131 -0.1253 -0.6898 +vn 0.7577 -0.1227 -0.6410 +vn 0.7616 -0.0000 -0.6480 +vn 0.7607 -0.0617 -0.6462 +vn 0.7163 -0.0629 -0.6950 +vn 0.7173 0.0000 -0.6967 +vn 0.8026 -0.0000 -0.5966 +vn 0.8016 -0.0604 -0.5948 +vn 0.8390 -0.0588 -0.5409 +vn 0.8400 -0.0000 -0.5426 +vn 0.8390 0.0587 -0.5409 +vn 0.8016 0.0604 -0.5948 +vn 0.8362 0.1162 -0.5360 +vn 0.7987 0.1197 -0.5898 +vn 0.7163 0.0629 -0.6950 +vn 0.7607 0.0617 -0.6462 +vn 0.7131 0.1253 -0.6898 +vn 0.7577 0.1227 -0.6410 +vn 0.7458 0.2434 -0.6201 +vn 0.7527 0.1832 -0.6324 +vn 0.7078 0.1871 -0.6812 +vn 0.7005 0.2481 -0.6691 +vn 0.7870 0.2378 -0.5692 +vn 0.7938 0.1789 -0.5813 +vn 0.8315 0.1739 -0.5276 +vn 0.8247 0.2309 -0.5163 +vn 0.8160 0.2860 -0.5023 +vn 0.7781 0.2953 -0.5543 +vn 0.8057 0.3405 -0.4847 +vn 0.7672 0.3509 -0.5369 +vn 0.6914 0.3085 -0.6532 +vn 0.7370 0.3028 -0.6043 +vn 0.6805 0.3677 -0.6338 +vn 0.7260 0.3603 -0.5857 +vn 0.6981 0.4706 -0.5396 +vn 0.7130 0.4160 -0.5644 +vn 0.6674 0.4249 -0.6116 +vn 0.6522 0.4804 -0.5865 +vn 0.7406 0.4588 -0.4909 +vn 0.7545 0.4060 -0.5157 +vn 0.7936 0.3942 -0.4635 +vn 0.7793 0.4462 -0.4400 +vn 0.7643 0.4950 -0.4133 +vn 0.7244 0.5101 -0.4638 +vn 0.7471 0.5424 -0.3842 +vn 0.7063 0.5595 -0.4337 +vn 0.6353 0.5340 -0.5579 +vn 0.6815 0.5232 -0.5117 +vn 0.6167 0.5853 -0.5264 +vn 0.6632 0.5736 -0.4808 +vn 0.6222 0.6662 -0.4111 +vn 0.6433 0.6215 -0.4471 +vn 0.5964 0.6342 -0.4920 +vn 0.5744 0.6804 -0.4551 +vn 0.6662 0.6501 -0.3654 +vn 0.6868 0.6063 -0.4009 +vn 0.7280 0.5880 -0.3525 +vn 0.7074 0.6312 -0.3179 +vn 0.6866 0.6702 -0.2817 +vn 0.6443 0.6910 -0.3277 +vn 0.6632 0.7081 -0.2423 +vn 0.6202 0.7299 -0.2872 +vn 0.5508 0.7236 -0.4159 +vn 0.5988 0.7089 -0.3728 +vn 0.5260 0.7639 -0.3739 +vn 0.5741 0.7487 -0.3314 +vn 0.5221 0.8174 -0.2433 +vn 0.5485 0.7851 -0.2879 +vn 0.5001 0.8008 -0.3295 +vn 0.4730 0.8342 -0.2836 +vn 0.5693 0.7970 -0.2016 +vn 0.5949 0.7655 -0.2449 +vn 0.6388 0.7426 -0.2012 +vn 0.6138 0.7733 -0.1589 +vn 0.5878 0.8009 -0.1141 +vn 0.5420 0.8259 -0.1554 +vn 0.5602 0.8255 -0.0680 +vn 0.5137 0.8512 -0.1078 +vn 0.4448 0.8640 -0.2359 +vn 0.4943 0.8468 -0.1962 +vn 0.4151 0.8906 -0.1857 +vn 0.4659 0.8725 -0.1470 +vn 0.4053 0.9130 -0.0466 +vn 0.4356 0.8949 -0.0972 +vn 0.3847 0.9132 -0.1344 +vn 0.3539 0.9316 -0.0828 +vn 0.4559 0.8900 -0.0101 +vn 0.4855 0.8722 -0.0597 +vn 0.5320 0.8465 -0.0206 +vn 0.5040 0.8632 0.0274 +vn 0.4745 0.8769 0.0770 +vn 0.4246 0.9044 0.0416 +vn 0.4446 0.8867 0.1267 +vn 0.3946 0.9141 0.0930 +vn 0.3223 0.9462 -0.0296 +vn 0.3742 0.9273 0.0057 +vn 0.2904 0.9566 0.0241 +vn 0.3431 0.9375 0.0585 +vn 0.2799 0.9457 0.1651 +vn 0.3116 0.9436 0.1117 +vn 0.2583 0.9629 0.0783 +vn 0.2259 0.9650 0.1330 +vn 0.3329 0.9222 0.1967 +vn 0.3640 0.9201 0.1446 +vn 0.4147 0.8926 0.1767 +vn 0.3845 0.8947 0.2274 +vn 0.1728 -0.9797 0.1014 +vn 0.2053 -0.9777 0.0449 +vn 0.1165 -0.9909 0.0677 +vn 0.1506 -0.9885 0.0106 +vn 0.2372 -0.9714 -0.0096 +vn 0.1828 -0.9821 -0.0458 +vn 0.0395 -0.9990 0.0223 +vn 0.0695 -0.9962 -0.0526 +vn 0.0969 -0.9950 -0.0254 +vn 0.0684 -0.9969 0.0399 +vn 0.0986 -0.9903 -0.0979 +vn 0.1267 -0.9886 -0.0814 +vn 0.1900 -0.9632 -0.1904 +vn 0.1587 -0.9778 -0.1367 +vn 0.1307 -0.9793 -0.1547 +vn 0.1617 -0.9646 -0.2082 +vn 0.2457 -0.9569 -0.1551 +vn 0.2141 -0.9715 -0.1016 +vn 0.2688 -0.9610 -0.0653 +vn 0.3004 -0.9463 -0.1198 +vn 0.3316 -0.9277 -0.1714 +vn 0.2772 -0.9379 -0.2085 +vn 0.3624 -0.9047 -0.2240 +vn 0.3082 -0.9148 -0.2610 +vn 0.1935 -0.9456 -0.2616 +vn 0.2217 -0.9440 -0.2442 +vn 0.2247 -0.9223 -0.3143 +vn 0.2529 -0.9208 -0.2968 +vn 0.3129 -0.8627 -0.3974 +vn 0.2834 -0.8937 -0.3479 +vn 0.2551 -0.8952 -0.3656 +vn 0.2845 -0.8641 -0.4151 +vn 0.3682 -0.8569 -0.3609 +vn 0.3387 -0.8878 -0.3115 +vn 0.3927 -0.8777 -0.2746 +vn 0.4216 -0.8473 -0.3229 +vn 0.4494 -0.8133 -0.3697 +vn 0.3964 -0.8224 -0.4081 +vn 0.4759 -0.7757 -0.4146 +vn 0.4235 -0.7842 -0.4534 +vn 0.3128 -0.8294 -0.4628 +vn 0.3414 -0.8280 -0.4449 +vn 0.3403 -0.7910 -0.5084 +vn 0.3687 -0.7896 -0.4904 +vn 0.4190 -0.7030 -0.5747 +vn 0.3946 -0.7480 -0.5337 +vn 0.3665 -0.7494 -0.5514 +vn 0.3909 -0.7041 -0.5928 +vn 0.4731 -0.6984 -0.5370 +vn 0.4490 -0.7430 -0.4963 +vn 0.5009 -0.7350 -0.4571 +vn 0.5245 -0.6911 -0.4974 +vn 0.5465 -0.6441 -0.5352 +vn 0.4954 -0.6509 -0.5753 +vn 0.5670 -0.5946 -0.5701 +vn 0.5159 -0.6010 -0.6105 +vn 0.4139 -0.6564 -0.6308 +vn 0.4417 -0.6550 -0.6131 +vn 0.4350 -0.6056 -0.6664 +vn 0.4625 -0.6045 -0.6486 +vn 0.4989 -0.4964 -0.7104 +vn 0.4813 -0.5516 -0.6812 +vn 0.4544 -0.5526 -0.6987 +vn 0.4719 -0.4972 -0.7281 +vn 0.5521 -0.4933 -0.6722 +vn 0.5349 -0.5483 -0.6428 +vn 0.5860 -0.5423 -0.6021 +vn 0.6031 -0.4881 -0.6309 +vn 0.6183 -0.4317 -0.6568 +vn 0.5674 -0.4362 -0.6984 +vn 0.6314 -0.3732 -0.6797 +vn 0.5809 -0.3773 -0.7212 +vn 0.4875 -0.4398 -0.7543 +vn 0.5145 -0.4390 -0.7366 +vn 0.5010 -0.3805 -0.7773 +vn 0.5282 -0.3799 -0.7594 +vn 0.5494 -0.2571 -0.7950 +vn 0.5399 -0.3191 -0.7789 +vn 0.5126 -0.3197 -0.7969 +vn 0.5221 -0.2575 -0.8131 +vn 0.6023 -0.2553 -0.7563 +vn 0.5926 -0.3169 -0.7405 +vn 0.6428 -0.3133 -0.6990 +vn 0.6524 -0.2523 -0.7146 +vn 0.6600 -0.1903 -0.7268 +vn 0.6098 -0.1926 -0.7688 +vn 0.6655 -0.1274 -0.7355 +vn 0.6153 -0.1290 -0.7777 +vn 0.5295 -0.1942 -0.8258 +vn 0.5569 -0.1939 -0.8076 +vn 0.5348 -0.1301 -0.8349 +vn 0.5622 -0.1299 -0.8167 +vn 0.5666 0.0000 -0.8240 +vn 0.5655 -0.0653 -0.8222 +vn 0.5380 -0.0655 -0.8404 +vn 0.5391 0.0000 -0.8422 +vn 0.6197 0.0000 -0.7849 +vn 0.6186 -0.0648 -0.7831 +vn 0.6688 -0.0640 -0.7407 +vn 0.6699 0.0000 -0.7424 +vn 0.6688 0.0640 -0.7407 +vn 0.6186 0.0648 -0.7831 +vn 0.6655 0.1274 -0.7355 +vn 0.6153 0.1290 -0.7777 +vn 0.5380 0.0655 -0.8404 +vn 0.5655 0.0653 -0.8222 +vn 0.5348 0.1301 -0.8349 +vn 0.5622 0.1299 -0.8167 +vn 0.5494 0.2571 -0.7950 +vn 0.5569 0.1939 -0.8076 +vn 0.5295 0.1942 -0.8258 +vn 0.5221 0.2575 -0.8131 +vn 0.6023 0.2553 -0.7563 +vn 0.6098 0.1926 -0.7688 +vn 0.6600 0.1903 -0.7268 +vn 0.6524 0.2523 -0.7146 +vn 0.6428 0.3133 -0.6990 +vn 0.5926 0.3169 -0.7405 +vn 0.6314 0.3732 -0.6797 +vn 0.5809 0.3773 -0.7212 +vn 0.5126 0.3197 -0.7969 +vn 0.5399 0.3191 -0.7789 +vn 0.5010 0.3805 -0.7773 +vn 0.5282 0.3799 -0.7594 +vn 0.4989 0.4964 -0.7104 +vn 0.5145 0.4390 -0.7366 +vn 0.4875 0.4398 -0.7543 +vn 0.4719 0.4972 -0.7281 +vn 0.5521 0.4933 -0.6722 +vn 0.5674 0.4362 -0.6984 +vn 0.6183 0.4317 -0.6568 +vn 0.6031 0.4881 -0.6309 +vn 0.5860 0.5423 -0.6021 +vn 0.5349 0.5483 -0.6428 +vn 0.5670 0.5946 -0.5701 +vn 0.5156 0.6012 -0.6105 +vn 0.4544 0.5526 -0.6987 +vn 0.4815 0.5518 -0.6809 +vn 0.4350 0.6056 -0.6664 +vn 0.4625 0.6047 -0.6484 +vn 0.4190 0.7030 -0.5747 +vn 0.4417 0.6550 -0.6131 +vn 0.4138 0.6561 -0.6311 +vn 0.3909 0.7041 -0.5928 +vn 0.4731 0.6984 -0.5370 +vn 0.4954 0.6509 -0.5753 +vn 0.5461 0.6444 -0.5353 +vn 0.5248 0.6908 -0.4974 +vn 0.5009 0.7350 -0.4571 +vn 0.4490 0.7430 -0.4963 +vn 0.4759 0.7757 -0.4146 +vn 0.4235 0.7842 -0.4534 +vn 0.3664 0.7492 -0.5517 +vn 0.3946 0.7480 -0.5337 +vn 0.3403 0.7910 -0.5084 +vn 0.3687 0.7896 -0.4904 +vn 0.3129 0.8627 -0.3974 +vn 0.3414 0.8280 -0.4449 +vn 0.3128 0.8294 -0.4628 +vn 0.2845 0.8641 -0.4151 +vn 0.3682 0.8569 -0.3609 +vn 0.3964 0.8224 -0.4081 +vn 0.4494 0.8133 -0.3697 +vn 0.4216 0.8473 -0.3229 +vn 0.3932 0.8775 -0.2746 +vn 0.3387 0.8877 -0.3119 +vn 0.3624 0.9047 -0.2240 +vn 0.3082 0.9148 -0.2610 +vn 0.2551 0.8952 -0.3656 +vn 0.2834 0.8937 -0.3479 +vn 0.2247 0.9223 -0.3143 +vn 0.2529 0.9208 -0.2968 +vn 0.1900 0.9632 -0.1904 +vn 0.2217 0.9440 -0.2442 +vn 0.1935 0.9456 -0.2616 +vn 0.1617 0.9647 -0.2079 +vn 0.2457 0.9569 -0.1551 +vn 0.2772 0.9379 -0.2085 +vn 0.3315 0.9277 -0.1718 +vn 0.3004 0.9463 -0.1193 +vn 0.2683 0.9611 -0.0652 +vn 0.2141 0.9715 -0.1012 +vn 0.2366 0.9716 -0.0103 +vn 0.1828 0.9821 -0.0459 +vn 0.1312 0.9793 -0.1542 +vn 0.1587 0.9778 -0.1366 +vn 0.0992 0.9901 -0.0991 +vn 0.1275 0.9885 -0.0817 +vn 0.0626 0.9974 0.0367 +vn 0.0929 0.9954 -0.0244 +vn 0.0706 0.9966 -0.0435 +vn 0.0503 0.9983 0.0281 +vn 0.1169 0.9908 0.0681 +vn 0.1511 0.9885 0.0105 +vn 0.2050 0.9777 0.0450 +vn 0.1725 0.9798 0.1011 +vn 0.8793 -0.2221 0.4214 +vn 0.8693 -0.2279 0.4386 +vn 0.8879 -0.2159 0.4063 +vn 0.8847 -0.1857 0.4276 +vn 0.8750 -0.1908 0.4449 +vn 0.8918 -0.1813 0.4145 +vn 0.9022 -0.2035 0.3802 +vn 0.8964 -0.2084 0.3913 +vn 0.9042 -0.1710 0.3914 +vn 0.8988 -0.1763 0.4013 +vn 0.9052 -0.1179 0.4084 +vn 0.9019 -0.1463 0.4064 +vn 0.9073 -0.1411 0.3961 +vn 0.9106 -0.1136 0.3974 +vn 0.8984 -0.1212 0.4221 +vn 0.8952 -0.1506 0.4194 +vn 0.8798 -0.1570 0.4486 +vn 0.8886 -0.1538 0.4322 +vn 0.8916 -0.1237 0.4357 +vn 0.9086 -0.1963 0.3686 +vn 0.9170 -0.1858 0.3529 +vn 0.9105 -0.1642 0.3794 +vn 0.9175 -0.1564 0.3657 +vn 0.9291 -0.1667 0.3301 +vn 0.9240 -0.1765 0.3391 +vn 0.9298 -0.1401 0.3403 +vn 0.9253 -0.1477 0.3492 +vn 0.9270 -0.0987 0.3618 +vn 0.9259 -0.1231 0.3570 +vn 0.9319 -0.1162 0.3435 +vn 0.9336 -0.0933 0.3460 +vn 0.9209 -0.1035 0.3757 +vn 0.9188 -0.1289 0.3732 +vn 0.9131 -0.1352 0.3846 +vn 0.9166 -0.1087 0.3847 +vn 0.9360 -0.1550 0.3161 +vn 0.9426 -0.1457 0.3005 +vn 0.9356 -0.1300 0.3283 +vn 0.9430 -0.1217 0.3098 +vn 0.9495 -0.1384 0.2815 +vn 0.9507 -0.1176 0.2870 +vn 0.9553 -0.0810 0.2843 +vn 0.9528 -0.0978 0.2874 +vn 0.9469 -0.0837 0.3105 +vn 0.9447 -0.1007 0.3122 +vn 0.9375 -0.1084 0.3305 +vn 0.9401 -0.0870 0.3297 +vn 0.9599 0.0225 0.2793 +vn 0.9603 -0.0001 0.2788 +vn 0.9590 0.0390 0.2807 +vn 0.9511 0.0226 0.3082 +vn 0.9514 -0.0000 0.3081 +vn 0.9502 0.0393 0.3091 +vn 0.9555 0.0806 0.2838 +vn 0.9574 0.0612 0.2821 +vn 0.9470 0.0832 0.3102 +vn 0.9488 0.0620 0.3096 +vn 0.9355 0.0683 0.3465 +vn 0.9413 0.0647 0.3313 +vn 0.9403 0.0866 0.3290 +vn 0.9340 0.0927 0.3450 +vn 0.9373 0.0464 0.3454 +vn 0.9430 0.0418 0.3300 +vn 0.9391 -0.0002 0.3436 +vn 0.9446 -0.0001 0.3282 +vn 0.9443 0.0238 0.3282 +vn 0.9389 0.0255 0.3433 +vn 0.9337 0.0266 0.3572 +vn 0.9339 -0.0001 0.3576 +vn 0.9323 0.0498 0.3582 +vn 0.9279 0.0277 0.3719 +vn 0.9281 -0.0002 0.3724 +vn 0.9265 0.0529 0.3725 +vn 0.9276 0.0979 0.3604 +vn 0.9301 0.0725 0.3601 +vn 0.9215 0.1023 0.3747 +vn 0.9242 0.0777 0.3740 +vn 0.9136 0.0851 0.3975 +vn 0.9200 0.0815 0.3834 +vn 0.9170 0.1073 0.3842 +vn 0.9109 0.1123 0.3971 +vn 0.9157 0.0575 0.3976 +vn 0.9221 0.0554 0.3831 +vn 0.9174 -0.0003 0.3980 +vn 0.9234 -0.0002 0.3837 +vn 0.9234 0.0284 0.3828 +vn 0.9172 0.0292 0.3974 +vn 0.9113 0.0295 0.4107 +vn 0.9114 -0.0003 0.4115 +vn 0.9103 0.0588 0.4098 +vn 0.9051 0.0298 0.4242 +vn 0.9052 -0.0002 0.4250 +vn 0.9036 0.0602 0.4241 +vn 0.9055 0.1162 0.4082 +vn 0.9082 0.0878 0.4092 +vn 0.8988 0.1194 0.4218 +vn 0.9015 0.0900 0.4232 +vn 0.8874 0.0933 0.4514 +vn 0.8949 0.0918 0.4368 +vn 0.8921 0.1221 0.4350 +vn 0.8845 0.1243 0.4497 +vn 0.8898 0.0620 0.4521 +vn 0.8968 0.0612 0.4381 +vn 0.8983 -0.0003 0.4394 +vn 0.8980 0.0305 0.4389 +vn 0.8912 0.0307 0.4526 +vn 0.8836 0.0314 0.4672 +vn 0.8820 0.0632 0.4671 +vn 0.8757 0.0320 0.4818 +vn 0.8741 0.0642 0.4815 +vn 0.8763 0.1261 0.4650 +vn 0.8794 0.0947 0.4666 +vn 0.8684 0.1276 0.4791 +vn 0.8717 0.0960 0.4806 +vn 0.8560 0.0970 0.5077 +vn 0.8637 0.0968 0.4946 +vn 0.8605 0.1286 0.4929 +vn 0.8529 0.1290 0.5058 +vn 0.8583 0.0649 0.5090 +vn 0.8660 0.0647 0.4959 +vn 0.8601 -0.0003 0.5101 +vn 0.8675 0.0323 0.4965 +vn 0.8597 0.0325 0.5098 +vn 0.8488 -0.1617 0.5034 +vn 0.8565 -0.1615 0.4903 +vn 0.8434 -0.1960 0.5002 +vn 0.8515 -0.1960 0.4863 +vn 0.8643 -0.1606 0.4766 +vn 0.8592 -0.1952 0.4730 +vn 0.8366 -0.2328 0.4960 +vn 0.8456 -0.2328 0.4804 +vn 0.8533 -0.2319 0.4670 +vn 0.8629 -0.2294 0.4502 +vn 0.8675 -0.1934 0.4584 +vn 0.8717 -0.1593 0.4634 +vn 0.9132 -0.0867 0.3981 +vn 0.9079 -0.0895 0.4094 +vn 0.9155 -0.0588 0.3981 +vn 0.9102 -0.0602 0.4098 +vn 0.9012 -0.0918 0.4236 +vn 0.9034 -0.0617 0.4244 +vn 0.9168 -0.0303 0.3981 +vn 0.9113 -0.0305 0.4106 +vn 0.9047 -0.0310 0.4249 +vn 0.8977 -0.0314 0.4395 +vn 0.8965 -0.0625 0.4387 +vn 0.8942 -0.0935 0.4377 +vn 0.9350 -0.0692 0.3477 +vn 0.9294 -0.0739 0.3615 +vn 0.9372 -0.0471 0.3455 +vn 0.9321 -0.0507 0.3586 +vn 0.9238 -0.0790 0.3747 +vn 0.9263 -0.0539 0.3730 +vn 0.9386 -0.0264 0.3440 +vn 0.9336 -0.0272 0.3574 +vn 0.9277 -0.0285 0.3723 +vn 0.9232 -0.0293 0.3831 +vn 0.9218 -0.0566 0.3835 +vn 0.9196 -0.0830 0.3840 +vn 0.9322 0.1156 0.3429 +vn 0.9266 0.1223 0.3556 +vn 0.9299 0.1397 0.3403 +vn 0.9258 0.1470 0.3483 +vn 0.9194 0.1279 0.3719 +vn 0.9181 0.1557 0.3646 +vn 0.9242 0.1761 0.3388 +vn 0.9293 0.1664 0.3297 +vn 0.9174 0.1851 0.3522 +vn 0.9025 0.2028 0.3799 +vn 0.9090 0.1953 0.3681 +vn 0.9044 0.1702 0.3912 +vn 0.9109 0.1635 0.3788 +vn 0.9136 0.1341 0.3839 +vn 0.9077 0.1399 0.3957 +vn 0.9022 0.1450 0.4062 +vn 0.8991 0.1753 0.4011 +vn 0.8956 0.1491 0.4192 +vn 0.8919 0.1802 0.4147 +vn 0.8965 0.2078 0.3913 +vn 0.8884 0.2147 0.4057 +vn 0.8695 0.2274 0.4385 +vn 0.8798 0.2212 0.4208 +vn 0.8759 0.1892 0.4439 +vn 0.8856 0.1839 0.4266 +vn 0.8888 0.1525 0.4321 +vn 0.8808 0.1555 0.4472 +vn 0.8725 0.1582 0.4624 +vn 0.8679 0.1926 0.4579 +vn 0.8644 0.1600 0.4767 +vn 0.8595 0.1946 0.4726 +vn 0.8628 0.2294 0.4504 +vn 0.8534 0.2317 0.4669 +vn 0.8366 0.2327 0.4960 +vn 0.8457 0.2326 0.4803 +vn 0.8435 0.1959 0.5002 +vn 0.8516 0.1958 0.4863 +vn 0.8565 0.1612 0.4904 +vn 0.8488 0.1615 0.5034 +vn 0.9573 -0.0615 0.2826 +vn 0.9589 -0.0388 0.2809 +vn 0.9487 -0.0624 0.3101 +vn 0.9500 -0.0399 0.3097 +vn 0.9599 -0.0228 0.2795 +vn 0.9510 -0.0230 0.3082 +vn 0.9442 -0.0241 0.3283 +vn 0.9428 -0.0424 0.3307 +vn 0.9409 -0.0653 0.3322 +vn 0.9529 0.0978 0.2871 +vn 0.9508 0.1175 0.2867 +vn 0.9447 0.1006 0.3122 +vn 0.9432 0.1213 0.3092 +vn 0.9495 0.1381 0.2817 +vn 0.9429 0.1452 0.2999 +vn 0.9363 0.1543 0.3155 +vn 0.9360 0.1293 0.3274 +vn 0.9378 0.1076 0.3299 +vn 0.8513 -0.0004 0.5246 +vn 0.8509 -0.0330 0.5242 +vn 0.8430 -0.0005 0.5379 +vn 0.8427 -0.0329 0.5375 +vn 0.8498 -0.0652 0.5231 +vn 0.8416 -0.0649 0.5362 +vn 0.8340 -0.0006 0.5518 +vn 0.8249 -0.0003 0.5652 +vn 0.8252 -0.0320 0.5639 +vn 0.8338 -0.0325 0.5511 +vn 0.8242 -0.0634 0.5628 +vn 0.8330 -0.0643 0.5496 +vn 0.8196 -0.1257 0.5590 +vn 0.8286 -0.1273 0.5452 +vn 0.8312 -0.0960 0.5475 +vn 0.8225 -0.0948 0.5608 +vn 0.8367 -0.1285 0.5323 +vn 0.8396 -0.0969 0.5345 +vn 0.8447 -0.1292 0.5195 +vn 0.8477 -0.0973 0.5215 +vn 0.8156 -0.2759 0.5087 +vn 0.8008 -0.3258 0.5026 +vn 0.8073 -0.2747 0.5224 +vn 0.7907 -0.3239 0.5195 +vn 0.7821 -0.3798 0.4941 +vn 0.7699 -0.3772 0.5147 +vn 0.7967 -0.2708 0.5403 +vn 0.7871 -0.2666 0.5563 +vn 0.7692 -0.3155 0.5558 +vn 0.7809 -0.3213 0.5357 +vn 0.7444 -0.3676 0.5574 +vn 0.7580 -0.3735 0.5348 +vn 0.6981 -0.4860 0.5258 +vn 0.7300 -0.4299 0.5314 +vn 0.7148 -0.4230 0.5569 +vn 0.6810 -0.4784 0.5544 +vn 0.7145 -0.4912 0.4982 +vn 0.7444 -0.4344 0.5071 +vn 0.7585 -0.4371 0.4834 +vn 0.7303 -0.4942 0.4716 +vn 0.7783 -0.2634 0.5700 +vn 0.7573 -0.3083 0.5758 +vn 0.7685 -0.2571 0.5860 +vn 0.7472 -0.3015 0.5923 +vn 0.7317 -0.3610 0.5782 +vn 0.7204 -0.3525 0.5973 +vn 0.7590 -0.2487 0.6017 +vn 0.7491 -0.2386 0.6180 +vn 0.7263 -0.2831 0.6264 +vn 0.7371 -0.2936 0.6087 +vn 0.6960 -0.3299 0.6378 +vn 0.7077 -0.3414 0.6186 +vn 0.6351 -0.4435 0.6324 +vn 0.6733 -0.3923 0.6267 +vn 0.6605 -0.3787 0.6483 +vn 0.6203 -0.4283 0.6572 +vn 0.6508 -0.4573 0.6061 +vn 0.6874 -0.4048 0.6031 +vn 0.7004 -0.4145 0.5811 +vn 0.6657 -0.4692 0.5802 +vn 0.7423 -0.2326 0.6283 +vn 0.7170 -0.2711 0.6422 +vn 0.7329 -0.2207 0.6436 +vn 0.7078 -0.2601 0.6569 +vn 0.6861 -0.3182 0.6543 +vn 0.6751 -0.3024 0.6729 +vn 0.7235 -0.2072 0.6585 +vn 0.7173 -0.1975 0.6682 +vn 0.6906 -0.2317 0.6851 +vn 0.6985 -0.2461 0.6719 +vn 0.6558 -0.2703 0.7049 +vn 0.6652 -0.2865 0.6895 +vn 0.5790 -0.3720 0.7255 +vn 0.6250 -0.3298 0.7076 +vn 0.6133 -0.3092 0.7268 +vn 0.5678 -0.3502 0.7450 +vn 0.5926 -0.3928 0.7033 +vn 0.6364 -0.3483 0.6882 +vn 0.6485 -0.3640 0.6686 +vn 0.6058 -0.4110 0.6813 +vn 0.7087 -0.1830 0.6813 +vn 0.6823 -0.2154 0.6986 +vn 0.7007 -0.1716 0.6925 +vn 0.6744 -0.2014 0.7103 +vn 0.6461 -0.2514 0.7207 +vn 0.6374 -0.2330 0.7345 +vn 0.6783 -0.1553 0.7182 +vn 0.6513 -0.1745 0.7385 +vn 0.6628 -0.1896 0.7244 +vn 0.6917 -0.1639 0.7033 +vn 0.6218 -0.1919 0.7593 +vn 0.6292 -0.2153 0.7468 +vn 0.5366 -0.2758 0.7975 +vn 0.5861 -0.2451 0.7723 +vn 0.5779 -0.2193 0.7861 +vn 0.5271 -0.2477 0.8129 +vn 0.5459 -0.3015 0.7817 +vn 0.5943 -0.2669 0.7586 +vn 0.6034 -0.2884 0.7435 +vn 0.5564 -0.3260 0.7643 +vn 0.6833 -0.1356 0.7174 +vn 0.6512 -0.1528 0.7433 +vn 0.6853 -0.1190 0.7185 +vn 0.6534 -0.1279 0.7461 +vn 0.6153 -0.1690 0.7699 +vn 0.6117 -0.1507 0.7766 +vn 0.6827 -0.0846 0.7258 +vn 0.6477 -0.0888 0.7567 +vn 0.6515 -0.1071 0.7510 +vn 0.6845 -0.1003 0.7221 +vn 0.6043 -0.0972 0.7908 +vn 0.6082 -0.1246 0.7839 +vn 0.5065 -0.1599 0.8473 +vn 0.5600 -0.1421 0.8162 +vn 0.5556 -0.1125 0.8238 +vn 0.5013 -0.1275 0.8558 +vn 0.5122 -0.1887 0.8379 +vn 0.5650 -0.1674 0.8079 +vn 0.5708 -0.1918 0.7984 +vn 0.5193 -0.2182 0.8263 +vn 0.6802 -0.0614 0.7305 +vn 0.6444 -0.0653 0.7619 +vn 0.6781 -0.0380 0.7340 +vn 0.6430 -0.0437 0.7646 +vn 0.6017 -0.0729 0.7954 +vn 0.6002 -0.0505 0.7982 +vn 0.6774 -0.0001 0.7356 +vn 0.6422 -0.0000 0.7665 +vn 0.6424 -0.0250 0.7659 +vn 0.6777 -0.0232 0.7350 +vn 0.5985 -0.0000 0.8011 +vn 0.5990 -0.0274 0.8003 +vn 0.4933 -0.0333 0.8692 +vn 0.5487 -0.0299 0.8355 +vn 0.5481 -0.0000 0.8364 +vn 0.4928 -0.0000 0.8701 +vn 0.4948 -0.0650 0.8666 +vn 0.5503 -0.0575 0.8330 +vn 0.5525 -0.0844 0.8292 +vn 0.4973 -0.0958 0.8622 +vn 0.6775 0.0228 0.7352 +vn 0.6424 0.0249 0.7659 +vn 0.6780 0.0379 0.7341 +vn 0.6430 0.0436 0.7646 +vn 0.5990 0.0273 0.8003 +vn 0.6002 0.0504 0.7983 +vn 0.6802 0.0616 0.7305 +vn 0.6824 0.0841 0.7261 +vn 0.6478 0.0890 0.7566 +vn 0.6444 0.0654 0.7619 +vn 0.6043 0.0972 0.7908 +vn 0.6017 0.0730 0.7954 +vn 0.4973 0.0958 0.8622 +vn 0.5525 0.0843 0.8292 +vn 0.5558 0.1131 0.8236 +vn 0.5013 0.1275 0.8558 +vn 0.4948 0.0650 0.8666 +vn 0.5503 0.0575 0.8330 +vn 0.5487 0.0299 0.8355 +vn 0.4933 0.0333 0.8692 +vn 0.6843 0.1003 0.7223 +vn 0.6514 0.1070 0.7511 +vn 0.6853 0.1189 0.7185 +vn 0.6534 0.1279 0.7462 +vn 0.6079 0.1250 0.7841 +vn 0.6113 0.1505 0.7770 +vn 0.6782 0.1553 0.7183 +vn 0.6513 0.1744 0.7385 +vn 0.6512 0.1529 0.7433 +vn 0.6833 0.1355 0.7175 +vn 0.6218 0.1919 0.7593 +vn 0.6153 0.1690 0.7699 +vn 0.5190 0.2179 0.8266 +vn 0.5709 0.1911 0.7985 +vn 0.5777 0.2199 0.7861 +vn 0.5269 0.2482 0.8128 +vn 0.5122 0.1887 0.8379 +vn 0.5653 0.1669 0.8078 +vn 0.5600 0.1421 0.8162 +vn 0.5065 0.1599 0.8473 +vn 0.6917 0.1639 0.7034 +vn 0.6628 0.1896 0.7244 +vn 0.7007 0.1715 0.6926 +vn 0.6744 0.2017 0.7103 +vn 0.6293 0.2153 0.7468 +vn 0.6375 0.2328 0.7344 +vn 0.7171 0.1973 0.6684 +vn 0.6905 0.2314 0.6854 +vn 0.6822 0.2153 0.6987 +vn 0.7086 0.1828 0.6815 +vn 0.6558 0.2703 0.7049 +vn 0.6463 0.2511 0.7206 +vn 0.5561 0.3258 0.7646 +vn 0.6033 0.2879 0.7437 +vn 0.6137 0.3092 0.7265 +vn 0.5675 0.3500 0.7453 +vn 0.5459 0.3015 0.7817 +vn 0.5943 0.2674 0.7585 +vn 0.5861 0.2451 0.7723 +vn 0.5364 0.2756 0.7977 +vn 0.7233 0.2069 0.6588 +vn 0.6984 0.2461 0.6721 +vn 0.7327 0.2205 0.6439 +vn 0.7077 0.2601 0.6569 +vn 0.6651 0.2865 0.6896 +vn 0.6751 0.3024 0.6729 +vn 0.7491 0.2384 0.6181 +vn 0.7262 0.2829 0.6266 +vn 0.7170 0.2710 0.6423 +vn 0.7423 0.2325 0.6284 +vn 0.6959 0.3299 0.6378 +vn 0.6860 0.3183 0.6543 +vn 0.6059 0.4108 0.6812 +vn 0.6484 0.3643 0.6685 +vn 0.6605 0.3787 0.6483 +vn 0.6203 0.4283 0.6572 +vn 0.5925 0.3928 0.7033 +vn 0.6362 0.3481 0.6885 +vn 0.6248 0.3302 0.7075 +vn 0.5796 0.3719 0.7251 +vn 0.7588 0.2480 0.6022 +vn 0.7371 0.2934 0.6088 +vn 0.7684 0.2566 0.5863 +vn 0.7472 0.3014 0.5923 +vn 0.7077 0.3414 0.6186 +vn 0.7204 0.3526 0.5973 +vn 0.7870 0.2663 0.5564 +vn 0.7692 0.3153 0.5558 +vn 0.7572 0.3083 0.5758 +vn 0.7783 0.2632 0.5701 +vn 0.7445 0.3678 0.5572 +vn 0.7317 0.3608 0.5783 +vn 0.6657 0.4692 0.5802 +vn 0.7006 0.4146 0.5807 +vn 0.7148 0.4230 0.5569 +vn 0.6810 0.4784 0.5544 +vn 0.6505 0.4573 0.6064 +vn 0.6873 0.4045 0.6033 +vn 0.6733 0.3922 0.6267 +vn 0.6349 0.4442 0.6321 +vn 0.7967 0.2706 0.5403 +vn 0.7809 0.3212 0.5358 +vn 0.8071 0.2744 0.5227 +vn 0.7907 0.3238 0.5196 +vn 0.7580 0.3734 0.5348 +vn 0.7698 0.3770 0.5150 +vn 0.8007 0.3258 0.5027 +vn 0.8153 0.2756 0.5092 +vn 0.7821 0.3798 0.4941 +vn 0.7303 0.4942 0.4716 +vn 0.7584 0.4374 0.4832 +vn 0.7145 0.4912 0.4982 +vn 0.7441 0.4345 0.5075 +vn 0.7300 0.4299 0.5314 +vn 0.6981 0.4860 0.5258 +vn 0.6994 -0.5492 0.4575 +vn 0.6821 -0.5456 0.4868 +vn 0.6654 -0.6021 0.4413 +vn 0.6458 -0.5986 0.4741 +vn 0.6444 -0.5315 0.5498 +vn 0.6635 -0.5399 0.5180 +vn 0.6054 -0.5827 0.5421 +vn 0.6255 -0.5923 0.5079 +vn 0.5426 -0.6889 0.4807 +vn 0.5856 -0.6418 0.4952 +vn 0.5637 -0.6317 0.5321 +vn 0.5193 -0.6783 0.5199 +vn 0.5656 -0.6962 0.4420 +vn 0.6070 -0.6485 0.4593 +vn 0.6284 -0.6525 0.4234 +vn 0.5886 -0.7006 0.4034 +vn 0.6278 -0.5216 0.5777 +vn 0.6103 -0.5087 0.6073 +vn 0.5864 -0.5718 0.5738 +vn 0.5667 -0.5581 0.6061 +vn 0.5764 -0.4770 0.6635 +vn 0.5923 -0.4934 0.6369 +vn 0.5308 -0.5224 0.6673 +vn 0.5483 -0.5408 0.6379 +vn 0.4526 -0.6302 0.6309 +vn 0.5024 -0.5868 0.6350 +vn 0.4822 -0.5660 0.6686 +vn 0.4317 -0.6084 0.6659 +vn 0.4744 -0.6485 0.5952 +vn 0.5220 -0.6048 0.6014 +vn 0.5424 -0.6193 0.5677 +vn 0.4965 -0.6645 0.5585 +vn 0.5609 -0.4575 0.6900 +vn 0.5464 -0.4364 0.7149 +vn 0.5141 -0.5021 0.6954 +vn 0.4973 -0.4793 0.7231 +vn 0.5189 -0.3889 0.7612 +vn 0.5328 -0.4137 0.7382 +vn 0.4659 -0.4267 0.7751 +vn 0.4811 -0.4540 0.7500 +vn 0.3747 -0.5271 0.7627 +vn 0.4281 -0.4920 0.7581 +vn 0.4120 -0.4628 0.7849 +vn 0.3572 -0.4959 0.7915 +vn 0.3924 -0.5562 0.7326 +vn 0.4456 -0.5190 0.7295 +vn 0.4635 -0.5434 0.6999 +vn 0.4119 -0.5836 0.6998 +vn 0.5053 -0.3621 0.7833 +vn 0.4945 -0.3355 0.8018 +vn 0.4524 -0.3980 0.7981 +vn 0.4400 -0.3680 0.8191 +vn 0.4723 -0.2747 0.8375 +vn 0.4831 -0.3054 0.8206 +vn 0.4164 -0.3009 0.8580 +vn 0.4275 -0.3343 0.8400 +vn 0.3114 -0.3886 0.8672 +vn 0.3703 -0.3622 0.8554 +vn 0.3589 -0.3263 0.8745 +vn 0.3001 -0.3509 0.8870 +vn 0.3261 -0.4281 0.8428 +vn 0.3838 -0.3990 0.8328 +vn 0.3975 -0.4321 0.8095 +vn 0.3412 -0.4636 0.8177 +vn 0.4636 -0.2430 0.8521 +vn 0.4560 -0.2103 0.8648 +vn 0.4073 -0.2667 0.8735 +vn 0.3996 -0.2312 0.8871 +vn 0.4445 -0.1415 0.8845 +vn 0.4501 -0.1777 0.8751 +vn 0.3860 -0.1552 0.9094 +vn 0.3929 -0.1952 0.8986 +vn 0.2703 -0.2254 0.9360 +vn 0.3317 -0.2100 0.9197 +vn 0.3250 -0.1684 0.9306 +vn 0.2633 -0.1806 0.9477 +vn 0.2785 -0.2686 0.9221 +vn 0.3399 -0.2503 0.9065 +vn 0.3495 -0.2897 0.8910 +vn 0.2886 -0.3105 0.9057 +vn 0.4403 -0.1067 0.8915 +vn 0.4371 -0.0726 0.8965 +vn 0.3815 -0.1165 0.9170 +vn 0.3782 -0.0788 0.9224 +vn 0.4350 -0.0000 0.9004 +vn 0.4354 -0.0373 0.8995 +vn 0.3755 -0.0000 0.9268 +vn 0.3761 -0.0411 0.9257 +vn 0.2525 -0.0469 0.9664 +vn 0.3152 -0.0441 0.9480 +vn 0.3144 -0.0000 0.9493 +vn 0.2518 -0.0000 0.9678 +vn 0.2547 -0.0919 0.9626 +vn 0.3173 -0.0852 0.9445 +vn 0.3204 -0.1272 0.9387 +vn 0.2582 -0.1374 0.9563 +vn 0.4354 0.0373 0.8995 +vn 0.4369 0.0726 0.8966 +vn 0.3759 0.0415 0.9257 +vn 0.3782 0.0788 0.9224 +vn 0.4447 0.1412 0.8845 +vn 0.4400 0.1063 0.8917 +vn 0.3860 0.1552 0.9094 +vn 0.3818 0.1157 0.9170 +vn 0.2582 0.1373 0.9563 +vn 0.3204 0.1272 0.9387 +vn 0.3248 0.1688 0.9306 +vn 0.2633 0.1806 0.9477 +vn 0.2547 0.0919 0.9626 +vn 0.3176 0.0846 0.9444 +vn 0.3152 0.0441 0.9480 +vn 0.2525 0.0469 0.9664 +vn 0.4502 0.1774 0.8751 +vn 0.4560 0.2103 0.8648 +vn 0.3920 0.1953 0.8990 +vn 0.3993 0.2308 0.8873 +vn 0.4726 0.2748 0.8373 +vn 0.4636 0.2430 0.8521 +vn 0.4164 0.3009 0.8580 +vn 0.4073 0.2667 0.8735 +vn 0.2886 0.3105 0.9057 +vn 0.3491 0.2894 0.8913 +vn 0.3589 0.3263 0.8745 +vn 0.2996 0.3505 0.8873 +vn 0.2785 0.2686 0.9221 +vn 0.3399 0.2503 0.9065 +vn 0.3321 0.2096 0.9197 +vn 0.2703 0.2254 0.9360 +vn 0.4831 0.3054 0.8206 +vn 0.4943 0.3354 0.8020 +vn 0.4275 0.3343 0.8400 +vn 0.4400 0.3680 0.8191 +vn 0.5186 0.3887 0.7616 +vn 0.5057 0.3623 0.7830 +vn 0.4659 0.4267 0.7751 +vn 0.4524 0.3980 0.7981 +vn 0.3412 0.4636 0.8177 +vn 0.3975 0.4321 0.8095 +vn 0.4120 0.4628 0.7849 +vn 0.3572 0.4959 0.7915 +vn 0.3261 0.4281 0.8428 +vn 0.3838 0.3990 0.8328 +vn 0.3703 0.3622 0.8554 +vn 0.3118 0.3889 0.8669 +vn 0.5323 0.4135 0.7387 +vn 0.5464 0.4360 0.7151 +vn 0.4811 0.4540 0.7500 +vn 0.4970 0.4796 0.7232 +vn 0.5764 0.4770 0.6635 +vn 0.5609 0.4572 0.6902 +vn 0.5308 0.5224 0.6673 +vn 0.5135 0.5030 0.6952 +vn 0.4119 0.5836 0.6998 +vn 0.4640 0.5427 0.7002 +vn 0.4826 0.5657 0.6687 +vn 0.4316 0.6088 0.6656 +vn 0.3930 0.5559 0.7325 +vn 0.4456 0.5190 0.7295 +vn 0.4280 0.4923 0.7579 +vn 0.3748 0.5268 0.7629 +vn 0.5923 0.4931 0.6372 +vn 0.6103 0.5087 0.6073 +vn 0.5483 0.5403 0.6383 +vn 0.5673 0.5584 0.6053 +vn 0.6446 0.5310 0.5500 +vn 0.6278 0.5216 0.5777 +vn 0.6054 0.5827 0.5421 +vn 0.5864 0.5718 0.5738 +vn 0.4965 0.6642 0.5589 +vn 0.5424 0.6191 0.5679 +vn 0.5637 0.6320 0.5318 +vn 0.5193 0.6785 0.5195 +vn 0.4744 0.6483 0.5955 +vn 0.5220 0.6053 0.6009 +vn 0.5019 0.5868 0.6354 +vn 0.4526 0.6304 0.6307 +vn 0.6635 0.5399 0.5181 +vn 0.6819 0.5461 0.4867 +vn 0.6257 0.5922 0.5077 +vn 0.6458 0.5986 0.4741 +vn 0.6994 0.5492 0.4575 +vn 0.6654 0.6021 0.4413 +vn 0.5886 0.7006 0.4034 +vn 0.6284 0.6526 0.4234 +vn 0.5656 0.6962 0.4420 +vn 0.6070 0.6485 0.4593 +vn 0.5856 0.6418 0.4952 +vn 0.5426 0.6889 0.4807 +vn 0.5461 -0.7456 0.3819 +vn 0.5216 -0.7411 0.4228 +vn 0.5015 -0.7873 0.3586 +vn 0.4755 -0.7824 0.4021 +vn 0.4722 -0.7222 0.5054 +vn 0.4971 -0.7332 0.4640 +vn 0.4231 -0.7627 0.4892 +vn 0.4492 -0.7742 0.4459 +vn 0.3482 -0.8464 0.4029 +vn 0.3995 -0.8120 0.4255 +vn 0.3723 -0.7998 0.4710 +vn 0.3199 -0.8335 0.4505 +vn 0.3767 -0.8558 0.3547 +vn 0.4270 -0.8208 0.3794 +vn 0.4544 -0.8262 0.3331 +vn 0.4053 -0.8614 0.3061 +vn 0.4484 -0.7076 0.5461 +vn 0.4248 -0.6899 0.5862 +vn 0.3978 -0.7479 0.5314 +vn 0.3726 -0.7293 0.5739 +vn 0.3799 -0.6470 0.6611 +vn 0.4017 -0.6698 0.6246 +vn 0.3256 -0.6834 0.6534 +vn 0.3489 -0.7078 0.6142 +vn 0.2389 -0.7737 0.5868 +vn 0.2940 -0.7426 0.6017 +vn 0.2699 -0.7171 0.6426 +vn 0.2130 -0.7471 0.6297 +vn 0.2658 -0.7970 0.5424 +vn 0.3193 -0.7651 0.5592 +vn 0.3457 -0.7843 0.5152 +vn 0.2921 -0.8172 0.4969 +vn 0.3581 -0.6212 0.6970 +vn 0.3375 -0.5927 0.7313 +vn 0.3024 -0.6556 0.6919 +vn 0.2810 -0.6257 0.7277 +vn 0.2999 -0.5274 0.7949 +vn 0.3183 -0.5613 0.7640 +vn 0.2418 -0.5573 0.7943 +vn 0.2606 -0.5933 0.7617 +vn 0.1420 -0.6483 0.7480 +vn 0.2025 -0.6220 0.7564 +vn 0.1820 -0.5847 0.7906 +vn 0.1209 -0.6098 0.7832 +vn 0.1651 -0.6843 0.7103 +vn 0.2236 -0.6560 0.7209 +vn 0.2460 -0.6882 0.6826 +vn 0.1883 -0.7174 0.6707 +vn 0.2830 -0.4929 0.8228 +vn 0.2668 -0.4552 0.8495 +vn 0.2234 -0.5200 0.8245 +vn 0.2062 -0.4803 0.8525 +vn 0.2388 -0.3729 0.8966 +vn 0.2516 -0.4141 0.8748 +vn 0.1769 -0.3939 0.9020 +vn 0.1907 -0.4380 0.8785 +vn 0.0661 -0.4791 0.8753 +vn 0.1287 -0.4595 0.8788 +vn 0.1139 -0.4132 0.9035 +vn 0.0499 -0.4303 0.9013 +vn 0.0828 -0.5245 0.8474 +vn 0.1450 -0.5034 0.8518 +vn 0.1627 -0.5448 0.8226 +vn 0.1010 -0.5679 0.8169 +vn 0.2266 -0.3298 0.9165 +vn 0.2170 -0.2862 0.9333 +vn 0.1643 -0.3481 0.9229 +vn 0.1540 -0.3020 0.9408 +vn 0.2000 -0.1923 0.9607 +vn 0.2076 -0.2397 0.9484 +vn 0.1365 -0.2041 0.9694 +vn 0.1436 -0.2525 0.9569 +vn 0.0147 -0.2767 0.9608 +vn 0.0797 -0.2651 0.9609 +vn 0.0722 -0.2146 0.9740 +vn 0.0063 -0.2232 0.9747 +vn 0.0249 -0.3294 0.9439 +vn 0.0889 -0.3158 0.9447 +vn 0.1007 -0.3655 0.9253 +vn 0.0370 -0.3810 0.9238 +vn 0.1951 -0.1464 0.9698 +vn 0.1910 -0.0978 0.9767 +vn 0.1310 -0.1546 0.9792 +vn 0.1260 -0.1028 0.9867 +vn 0.1876 -0.0000 0.9822 +vn 0.1886 -0.0500 0.9808 +vn 0.1222 0.0000 0.9925 +vn 0.1231 -0.0524 0.9910 +vn -0.0080 -0.0570 0.9983 +vn 0.0576 -0.0548 0.9968 +vn 0.0567 0.0000 0.9984 +vn -0.0089 0.0000 1.0000 +vn -0.0053 -0.1121 0.9937 +vn 0.0604 -0.1075 0.9924 +vn 0.0653 -0.1614 0.9847 +vn -0.0005 -0.1678 0.9858 +vn 0.1883 0.0498 0.9808 +vn 0.1910 0.0978 0.9767 +vn 0.1231 0.0524 0.9910 +vn 0.1260 0.1028 0.9867 +vn 0.2002 0.1926 0.9606 +vn 0.1953 0.1461 0.9698 +vn 0.1365 0.2041 0.9694 +vn 0.1307 0.1544 0.9793 +vn -0.0005 0.1678 0.9858 +vn 0.0653 0.1614 0.9847 +vn 0.0719 0.2144 0.9741 +vn 0.0063 0.2232 0.9747 +vn -0.0053 0.1121 0.9937 +vn 0.0604 0.1075 0.9924 +vn 0.0576 0.0548 0.9968 +vn -0.0080 0.0570 0.9983 +vn 0.2076 0.2397 0.9484 +vn 0.2166 0.2859 0.9335 +vn 0.1438 0.2527 0.9568 +vn 0.1536 0.3017 0.9410 +vn 0.2389 0.3725 0.8968 +vn 0.2266 0.3305 0.9162 +vn 0.1771 0.3936 0.9021 +vn 0.1648 0.3480 0.9229 +vn 0.0373 0.3806 0.9240 +vn 0.1007 0.3655 0.9253 +vn 0.1136 0.4138 0.9032 +vn 0.0505 0.4304 0.9012 +vn 0.0245 0.3300 0.9436 +vn 0.0894 0.3161 0.9445 +vn 0.0797 0.2651 0.9609 +vn 0.0147 0.2767 0.9608 +vn 0.2517 0.4147 0.8745 +vn 0.2668 0.4552 0.8495 +vn 0.1907 0.4380 0.8785 +vn 0.2062 0.4803 0.8525 +vn 0.3000 0.5270 0.7952 +vn 0.2830 0.4929 0.8228 +vn 0.2414 0.5572 0.7945 +vn 0.2234 0.5200 0.8245 +vn 0.1012 0.5675 0.8171 +vn 0.1629 0.5444 0.8228 +vn 0.1820 0.5847 0.7906 +vn 0.1209 0.6098 0.7832 +vn 0.0828 0.5245 0.8474 +vn 0.1450 0.5034 0.8518 +vn 0.1287 0.4595 0.8788 +vn 0.0658 0.4788 0.8755 +vn 0.3183 0.5613 0.7640 +vn 0.3374 0.5932 0.7309 +vn 0.2605 0.5935 0.7615 +vn 0.2811 0.6254 0.7279 +vn 0.3799 0.6467 0.6614 +vn 0.3580 0.6215 0.6968 +vn 0.3256 0.6834 0.6534 +vn 0.3031 0.6553 0.6919 +vn 0.1883 0.7174 0.6707 +vn 0.2459 0.6886 0.6822 +vn 0.2695 0.7173 0.6425 +vn 0.2130 0.7471 0.6297 +vn 0.1645 0.6844 0.7103 +vn 0.2238 0.6554 0.7214 +vn 0.2025 0.6220 0.7564 +vn 0.1420 0.6483 0.7480 +vn 0.4021 0.6694 0.6247 +vn 0.4249 0.6894 0.5866 +vn 0.3487 0.7078 0.6144 +vn 0.3726 0.7296 0.5735 +vn 0.4722 0.7224 0.5052 +vn 0.4484 0.7076 0.5461 +vn 0.4231 0.7627 0.4892 +vn 0.3978 0.7479 0.5314 +vn 0.2925 0.8171 0.4967 +vn 0.3457 0.7843 0.5152 +vn 0.3724 0.7995 0.4714 +vn 0.3199 0.8335 0.4505 +vn 0.2653 0.7970 0.5426 +vn 0.3193 0.7651 0.5592 +vn 0.2940 0.7426 0.6017 +vn 0.2388 0.7739 0.5865 +vn 0.4969 0.7332 0.4642 +vn 0.5216 0.7411 0.4228 +vn 0.4492 0.7742 0.4459 +vn 0.4755 0.7824 0.4021 +vn 0.5461 0.7456 0.3819 +vn 0.5015 0.7871 0.3591 +vn 0.4053 0.8614 0.3061 +vn 0.4544 0.8262 0.3331 +vn 0.3767 0.8558 0.3547 +vn 0.4270 0.8206 0.3799 +vn 0.3995 0.8120 0.4255 +vn 0.3482 0.8464 0.4029 +vn 0.3545 -0.8928 0.2780 +vn 0.3249 -0.8870 0.3282 +vn 0.3020 -0.9203 0.2488 +vn 0.2714 -0.9144 0.3003 +vn 0.2662 -0.8636 0.4281 +vn 0.2956 -0.8772 0.3784 +vn 0.2102 -0.8906 0.4032 +vn 0.2408 -0.9046 0.3518 +vn 0.1290 -0.9466 0.2954 +vn 0.1848 -0.9278 0.3241 +vn 0.1537 -0.9136 0.3765 +vn 0.0975 -0.9322 0.3486 +vn 0.1610 -0.9569 0.2416 +vn 0.2165 -0.9378 0.2715 +vn 0.2482 -0.9438 0.2185 +vn 0.1933 -0.9630 0.1875 +vn 0.2379 -0.8468 0.4757 +vn 0.2089 -0.8262 0.5233 +vn 0.1806 -0.8731 0.4529 +vn 0.1521 -0.8518 0.5012 +vn 0.1549 -0.7741 0.6138 +vn 0.1817 -0.8018 0.5693 +vn 0.0960 -0.7979 0.5951 +vn 0.1235 -0.8267 0.5490 +vn 0.0062 -0.8650 0.5018 +vn 0.0647 -0.8478 0.5264 +vn 0.0370 -0.8185 0.5733 +vn -0.0222 -0.8352 0.5494 +vn 0.0360 -0.8913 0.4519 +vn 0.0947 -0.8736 0.4774 +vn 0.1238 -0.8954 0.4276 +vn 0.0667 -0.9139 0.4005 +vn 0.1295 -0.7434 0.6561 +vn 0.1049 -0.7090 0.6974 +vn 0.0702 -0.7664 0.6385 +vn 0.0451 -0.7307 0.6812 +vn 0.0597 -0.6321 0.7726 +vn 0.0814 -0.6717 0.7364 +vn -0.0018 -0.6512 0.7589 +vn 0.0209 -0.6920 0.7216 +vn -0.1015 -0.7246 0.6816 +vn -0.0405 -0.7098 0.7033 +vn -0.0632 -0.6676 0.7418 +vn -0.1244 -0.6816 0.7210 +vn -0.0764 -0.7650 0.6395 +vn -0.0158 -0.7497 0.6616 +vn 0.0105 -0.7861 0.6180 +vn -0.0497 -0.8020 0.5953 +vn 0.0392 -0.5888 0.8073 +vn 0.0203 -0.5434 0.8392 +vn -0.0235 -0.6071 0.7942 +vn -0.0428 -0.5603 0.8272 +vn -0.0127 -0.4467 0.8946 +vn 0.0027 -0.4959 0.8684 +vn -0.0771 -0.4601 0.8845 +vn -0.0607 -0.5110 0.8574 +vn -0.1862 -0.5350 0.8241 +vn -0.1232 -0.5241 0.8427 +vn -0.1399 -0.4714 0.8707 +vn -0.2031 -0.4813 0.8527 +vn -0.1673 -0.5864 0.7926 +vn -0.1049 -0.5745 0.8117 +vn -0.0848 -0.6226 0.7780 +vn -0.1467 -0.6353 0.7582 +vn -0.0269 -0.3950 0.9183 +vn -0.0407 -0.3407 0.9393 +vn -0.0924 -0.4065 0.9090 +vn -0.1043 -0.3519 0.9302 +vn -0.0591 -0.2311 0.9711 +vn -0.0505 -0.2870 0.9566 +vn -0.1237 -0.2379 0.9634 +vn -0.1141 -0.2963 0.9483 +vn -0.2440 -0.3086 0.9194 +vn -0.1787 -0.3031 0.9361 +vn -0.1887 -0.2433 0.9514 +vn -0.2528 -0.2488 0.9350 +vn -0.2321 -0.3682 0.9003 +vn -0.1668 -0.3615 0.9173 +vn -0.1547 -0.4168 0.8957 +vn -0.2177 -0.4263 0.8780 +vn -0.0662 -0.1735 0.9826 +vn -0.0707 -0.1164 0.9907 +vn -0.1309 -0.1791 0.9751 +vn -0.1358 -0.1201 0.9834 +vn -0.0746 0.0000 0.9972 +vn -0.0736 -0.0590 0.9955 +vn -0.1400 0.0000 0.9901 +vn -0.1389 -0.0606 0.9885 +vn -0.2679 -0.0631 0.9614 +vn -0.2038 -0.0619 0.9771 +vn -0.2049 0.0000 0.9788 +vn -0.2690 -0.0000 0.9631 +vn -0.2649 -0.1257 0.9561 +vn -0.2006 -0.1232 0.9719 +vn -0.1955 -0.1838 0.9633 +vn -0.2598 -0.1877 0.9472 +vn -0.0736 0.0590 0.9955 +vn -0.0707 0.1164 0.9907 +vn -0.1389 0.0606 0.9885 +vn -0.1358 0.1201 0.9834 +vn -0.0591 0.2311 0.9711 +vn -0.0662 0.1740 0.9825 +vn -0.1241 0.2382 0.9633 +vn -0.1309 0.1791 0.9751 +vn -0.2598 0.1877 0.9472 +vn -0.1955 0.1838 0.9633 +vn -0.1884 0.2436 0.9514 +vn -0.2528 0.2488 0.9350 +vn -0.2649 0.1257 0.9561 +vn -0.2006 0.1232 0.9719 +vn -0.2038 0.0619 0.9771 +vn -0.2679 0.0631 0.9614 +vn -0.0505 0.2870 0.9566 +vn -0.0401 0.3411 0.9392 +vn -0.1146 0.2959 0.9483 +vn -0.1043 0.3519 0.9302 +vn -0.0133 0.4469 0.8945 +vn -0.0274 0.3948 0.9184 +vn -0.0769 0.4597 0.8848 +vn -0.0920 0.4067 0.9089 +vn -0.2181 0.4259 0.8781 +vn -0.1545 0.4170 0.8957 +vn -0.1399 0.4714 0.8707 +vn -0.2032 0.4813 0.8527 +vn -0.2318 0.3684 0.9003 +vn -0.1671 0.3612 0.9174 +vn -0.1789 0.3033 0.9359 +vn -0.2436 0.3090 0.9193 +vn 0.0027 0.4959 0.8684 +vn 0.0203 0.5434 0.8392 +vn -0.0607 0.5110 0.8574 +vn -0.0428 0.5603 0.8272 +vn 0.0596 0.6325 0.7723 +vn 0.0392 0.5888 0.8073 +vn -0.0018 0.6512 0.7589 +vn -0.0233 0.6075 0.7940 +vn -0.1467 0.6353 0.7582 +vn -0.0846 0.6222 0.7783 +vn -0.0630 0.6673 0.7421 +vn -0.1248 0.6815 0.7211 +vn -0.1673 0.5864 0.7926 +vn -0.1049 0.5745 0.8117 +vn -0.1232 0.5241 0.8427 +vn -0.1862 0.5350 0.8241 +vn 0.0814 0.6717 0.7364 +vn 0.1049 0.7090 0.6974 +vn 0.0209 0.6920 0.7216 +vn 0.0451 0.7307 0.6812 +vn 0.1547 0.7745 0.6133 +vn 0.1295 0.7435 0.6561 +vn 0.0960 0.7979 0.5951 +vn 0.0702 0.7664 0.6385 +vn -0.0497 0.8020 0.5953 +vn 0.0101 0.7861 0.6180 +vn 0.0366 0.8185 0.5734 +vn -0.0222 0.8352 0.5494 +vn -0.0764 0.7650 0.6395 +vn -0.0158 0.7497 0.6616 +vn -0.0404 0.7098 0.7033 +vn -0.1015 0.7246 0.6816 +vn 0.1818 0.8015 0.5697 +vn 0.2092 0.8262 0.5231 +vn 0.1235 0.8267 0.5490 +vn 0.1518 0.8519 0.5012 +vn 0.2662 0.8635 0.4284 +vn 0.2374 0.8470 0.4756 +vn 0.2102 0.8906 0.4032 +vn 0.1807 0.8728 0.4535 +vn 0.0667 0.9139 0.4005 +vn 0.1238 0.8954 0.4276 +vn 0.1537 0.9136 0.3765 +vn 0.0975 0.9322 0.3486 +vn 0.0360 0.8913 0.4519 +vn 0.0944 0.8734 0.4778 +vn 0.0646 0.8479 0.5261 +vn 0.0062 0.8649 0.5018 +vn 0.2956 0.8772 0.3784 +vn 0.3249 0.8870 0.3282 +vn 0.2407 0.9048 0.3514 +vn 0.2714 0.9144 0.3003 +vn 0.3545 0.8928 0.2780 +vn 0.3020 0.9203 0.2488 +vn 0.1933 0.9630 0.1875 +vn 0.2482 0.9438 0.2185 +vn 0.1610 0.9569 0.2416 +vn 0.2165 0.9378 0.2715 +vn 0.1848 0.9278 0.3241 +vn 0.1290 0.9466 0.2954 +vn 0.1387 -0.9778 0.1570 +vn 0.1055 -0.9717 0.2113 +vn 0.0819 -0.9887 0.1253 +vn 0.0484 -0.9824 0.1806 +vn 0.0400 -0.9469 0.3190 +vn 0.0722 -0.9614 0.2654 +vn -0.0178 -0.9575 0.2879 +vn 0.0144 -0.9719 0.2348 +vn -0.0725 -0.9796 0.1872 +vn -0.0431 -0.9782 0.2032 +vn -0.0754 -0.9637 0.2560 +vn -0.1041 -0.9652 0.2397 +vn -0.0383 -0.9906 0.1315 +vn -0.0090 -0.9889 0.1481 +vn 0.0254 -0.9951 0.0950 +vn -0.0100 -0.9964 0.0840 +vn 0.0090 -0.9283 0.3717 +vn -0.0225 -0.9054 0.4240 +vn -0.0498 -0.9386 0.3413 +vn -0.0811 -0.9156 0.3938 +vn -0.0811 -0.8483 0.5232 +vn -0.0523 -0.8786 0.4747 +vn -0.1404 -0.8579 0.4943 +vn -0.1112 -0.8886 0.4449 +vn -0.1984 -0.8961 0.3971 +vn -0.1696 -0.8946 0.4134 +vn -0.1991 -0.8637 0.4631 +vn -0.2280 -0.8651 0.4467 +vn -0.1677 -0.9231 0.3459 +vn -0.1391 -0.9217 0.3622 +vn -0.1077 -0.9448 0.3096 +vn -0.1363 -0.9463 0.2933 +vn -0.1091 -0.8143 0.5700 +vn -0.1361 -0.7768 0.6149 +vn -0.1685 -0.8234 0.5419 +vn -0.1956 -0.7854 0.5873 +vn -0.1858 -0.6922 0.6974 +vn -0.1617 -0.7360 0.6574 +vn -0.2451 -0.6995 0.6713 +vn -0.2207 -0.7441 0.6306 +vn -0.3095 -0.7506 0.5838 +vn -0.2798 -0.7492 0.6003 +vn -0.3042 -0.7040 0.6417 +vn -0.3333 -0.7055 0.6255 +vn -0.2836 -0.7923 0.5402 +vn -0.2541 -0.7909 0.5566 +vn -0.2273 -0.8290 0.5110 +vn -0.2564 -0.8304 0.4946 +vn -0.2091 -0.6451 0.7349 +vn -0.2295 -0.5957 0.7698 +vn -0.2681 -0.6521 0.7092 +vn -0.2892 -0.6022 0.7441 +vn -0.2659 -0.4890 0.8308 +vn -0.2486 -0.5434 0.8018 +vn -0.3264 -0.4942 0.8058 +vn -0.3087 -0.5493 0.7765 +vn -0.3966 -0.5537 0.7322 +vn -0.3680 -0.5528 0.7477 +vn -0.3855 -0.4974 0.7772 +vn -0.4143 -0.4983 0.7617 +vn -0.3772 -0.6067 0.6997 +vn -0.3488 -0.6056 0.7152 +vn -0.3271 -0.6562 0.6800 +vn -0.3559 -0.6574 0.6642 +vn -0.2816 -0.4325 0.8565 +vn -0.2953 -0.3739 0.8792 +vn -0.3424 -0.4369 0.8318 +vn -0.3555 -0.3782 0.8548 +vn -0.3156 -0.2530 0.9145 +vn -0.3065 -0.3140 0.8986 +vn -0.3762 -0.2560 0.8904 +vn -0.3668 -0.3178 0.8743 +vn -0.4560 -0.3204 0.8303 +vn -0.4265 -0.3199 0.8460 +vn -0.4362 -0.2577 0.8622 +vn -0.4658 -0.2581 0.8464 +vn -0.4440 -0.3814 0.8108 +vn -0.4147 -0.3808 0.8264 +vn -0.4010 -0.4400 0.8035 +vn -0.4301 -0.4408 0.7879 +vn -0.3227 -0.1909 0.9271 +vn -0.3278 -0.1279 0.9361 +vn -0.3836 -0.1931 0.9031 +vn -0.3890 -0.1294 0.9121 +vn -0.3318 0.0000 0.9433 +vn -0.3308 -0.0642 0.9415 +vn -0.3932 0.0000 0.9195 +vn -0.3922 -0.0651 0.9176 +vn -0.4824 -0.0657 0.8735 +vn -0.4526 -0.0655 0.8893 +vn -0.4537 0.0000 0.8912 +vn -0.4836 0.0000 0.8753 +vn -0.4791 -0.1304 0.8680 +vn -0.4493 -0.1303 0.8838 +vn -0.4438 -0.1944 0.8748 +vn -0.4736 -0.1947 0.8590 +vn -0.3308 0.0642 0.9415 +vn -0.3278 0.1279 0.9360 +vn -0.3922 0.0651 0.9176 +vn -0.3890 0.1294 0.9121 +vn -0.3156 0.2530 0.9145 +vn -0.3227 0.1909 0.9271 +vn -0.3762 0.2560 0.8904 +vn -0.3836 0.1931 0.9031 +vn -0.4736 0.1947 0.8590 +vn -0.4438 0.1944 0.8748 +vn -0.4362 0.2577 0.8622 +vn -0.4658 0.2581 0.8464 +vn -0.4791 0.1304 0.8680 +vn -0.4493 0.1302 0.8838 +vn -0.4526 0.0655 0.8893 +vn -0.4824 0.0657 0.8735 +vn -0.3065 0.3140 0.8986 +vn -0.2953 0.3739 0.8792 +vn -0.3668 0.3178 0.8743 +vn -0.3555 0.3782 0.8548 +vn -0.2661 0.4892 0.8306 +vn -0.2814 0.4323 0.8567 +vn -0.3264 0.4942 0.8058 +vn -0.3421 0.4371 0.8318 +vn -0.4301 0.4408 0.7879 +vn -0.4010 0.4400 0.8035 +vn -0.3855 0.4974 0.7772 +vn -0.4143 0.4983 0.7617 +vn -0.4440 0.3814 0.8108 +vn -0.4147 0.3808 0.8264 +vn -0.4265 0.3199 0.8460 +vn -0.4560 0.3204 0.8303 +vn -0.2486 0.5434 0.8018 +vn -0.2293 0.5953 0.7701 +vn -0.3087 0.5493 0.7765 +vn -0.2894 0.6025 0.7438 +vn -0.1859 0.6922 0.6974 +vn -0.2088 0.6456 0.7346 +vn -0.2451 0.6995 0.6713 +vn -0.2681 0.6521 0.7092 +vn -0.3562 0.6572 0.6642 +vn -0.3271 0.6562 0.6800 +vn -0.3042 0.7038 0.6420 +vn -0.3337 0.7052 0.6255 +vn -0.3772 0.6067 0.6997 +vn -0.3484 0.6059 0.7152 +vn -0.3680 0.5528 0.7477 +vn -0.3966 0.5537 0.7322 +vn -0.1617 0.7360 0.6574 +vn -0.1361 0.7768 0.6149 +vn -0.2207 0.7441 0.6306 +vn -0.1952 0.7855 0.5873 +vn -0.0811 0.8483 0.5232 +vn -0.1091 0.8143 0.5700 +vn -0.1404 0.8579 0.4943 +vn -0.1685 0.8234 0.5419 +vn -0.2564 0.8304 0.4946 +vn -0.2273 0.8290 0.5110 +vn -0.1992 0.8638 0.4628 +vn -0.2280 0.8651 0.4467 +vn -0.2836 0.7923 0.5402 +vn -0.2541 0.7909 0.5566 +vn -0.2798 0.7492 0.6003 +vn -0.3095 0.7506 0.5838 +vn -0.0523 0.8786 0.4747 +vn -0.0225 0.9054 0.4240 +vn -0.1112 0.8886 0.4449 +vn -0.0811 0.9156 0.3938 +vn 0.0400 0.9469 0.3190 +vn 0.0086 0.9283 0.3717 +vn -0.0178 0.9575 0.2879 +vn -0.0498 0.9386 0.3413 +vn -0.1363 0.9463 0.2933 +vn -0.1077 0.9448 0.3096 +vn -0.0754 0.9637 0.2560 +vn -0.1041 0.9652 0.2397 +vn -0.1677 0.9231 0.3459 +vn -0.1391 0.9217 0.3622 +vn -0.1696 0.8946 0.4134 +vn -0.1984 0.8961 0.3971 +vn 0.0722 0.9614 0.2654 +vn 0.1051 0.9718 0.2111 +vn 0.0146 0.9721 0.2341 +vn 0.0485 0.9822 0.1813 +vn 0.1388 0.9778 0.1571 +vn 0.0822 0.9887 0.1251 +vn -0.0018 0.9966 0.0821 +vn 0.0243 0.9956 0.0907 +vn -0.0381 0.9906 0.1315 +vn -0.0093 0.9889 0.1485 +vn -0.0432 0.9783 0.2028 +vn -0.0720 0.9797 0.1871 +vn 0.8016 -0.2279 0.5527 +vn 0.7915 -0.2222 0.5693 +vn 0.8101 -0.1906 0.5545 +vn 0.7996 -0.1855 0.5712 +vn 0.7823 -0.2159 0.5843 +vn 0.7914 -0.1811 0.5838 +vn 0.8102 -0.1239 0.5730 +vn 0.8056 -0.1540 0.5721 +vn 0.8155 -0.1571 0.5570 +vn 0.8011 -0.1214 0.5861 +vn 0.7972 -0.1508 0.5846 +vn 0.7824 -0.1417 0.6064 +vn 0.7896 -0.1468 0.5958 +vn 0.7932 -0.1180 0.5974 +vn 0.7853 -0.1139 0.6085 +vn 0.7770 -0.1714 0.6057 +vn 0.7832 -0.1760 0.5963 +vn 0.7735 -0.2085 0.5985 +vn 0.7660 -0.2029 0.6099 +vn 0.7595 -0.1964 0.6202 +vn 0.7700 -0.1649 0.6164 +vn 0.7492 -0.1859 0.6358 +vn 0.7608 -0.1565 0.6299 +vn 0.7770 -0.1091 0.6200 +vn 0.7751 -0.1349 0.6173 +vn 0.7711 -0.1035 0.6283 +vn 0.7679 -0.1288 0.6274 +vn 0.7483 -0.1163 0.6531 +vn 0.7571 -0.1230 0.6416 +vn 0.7618 -0.0988 0.6403 +vn 0.7512 -0.0934 0.6534 +vn 0.7447 -0.1405 0.6525 +vn 0.7497 -0.1475 0.6451 +vn 0.7405 -0.1766 0.6484 +vn 0.7349 -0.1669 0.6573 +vn 0.7259 -0.1548 0.6701 +vn 0.7362 -0.1299 0.6642 +vn 0.7158 -0.1456 0.6829 +vn 0.7244 -0.1221 0.6785 +vn 0.7401 -0.0873 0.6668 +vn 0.7396 -0.1086 0.6642 +vn 0.7271 -0.0840 0.6813 +vn 0.7275 -0.1009 0.6786 +vn 0.7088 -0.0983 0.6985 +vn 0.7073 -0.0816 0.7021 +vn 0.7076 -0.1178 0.6968 +vn 0.7032 -0.1383 0.6975 +vn 0.7053 -0.0001 0.7089 +vn 0.7055 0.0225 0.7083 +vn 0.7269 -0.0001 0.6867 +vn 0.7267 0.0224 0.6866 +vn 0.7065 0.0388 0.7066 +vn 0.7273 0.0384 0.6853 +vn 0.7518 -0.0002 0.6594 +vn 0.7515 0.0256 0.6593 +vn 0.7394 0.0238 0.6728 +vn 0.7393 -0.0001 0.6734 +vn 0.7524 0.0463 0.6571 +vn 0.7412 0.0419 0.6700 +vn 0.7395 0.0867 0.6675 +vn 0.7419 0.0649 0.6674 +vn 0.7527 0.0684 0.6548 +vn 0.7505 0.0928 0.6543 +vn 0.7269 0.0832 0.6817 +vn 0.7273 0.0613 0.6836 +vn 0.7068 0.0609 0.7048 +vn 0.7071 0.0810 0.7025 +vn 0.7616 -0.0002 0.6481 +vn 0.7609 0.0267 0.6483 +vn 0.7716 -0.0002 0.6361 +vn 0.7711 0.0278 0.6362 +vn 0.7612 0.0500 0.6466 +vn 0.7711 0.0531 0.6345 +vn 0.7887 -0.0000 0.6147 +vn 0.7884 0.0290 0.6145 +vn 0.7799 0.0287 0.6252 +vn 0.7805 -0.0002 0.6252 +vn 0.7876 0.0571 0.6135 +vn 0.7786 0.0552 0.6250 +vn 0.7766 0.1073 0.6207 +vn 0.7778 0.0818 0.6231 +vn 0.7867 0.0850 0.6114 +vn 0.7850 0.1122 0.6093 +vn 0.7705 0.1023 0.6292 +vn 0.7711 0.0778 0.6319 +vn 0.7620 0.0729 0.6435 +vn 0.7609 0.0979 0.6415 +vn 0.7986 -0.0002 0.6018 +vn 0.7980 0.0295 0.6020 +vn 0.8069 -0.0002 0.5907 +vn 0.8062 0.0300 0.5908 +vn 0.7971 0.0585 0.6010 +vn 0.8054 0.0601 0.5897 +vn 0.8244 0.0307 0.5652 +vn 0.8155 0.0304 0.5780 +vn 0.8162 -0.0003 0.5777 +vn 0.8235 0.0622 0.5639 +vn 0.8143 0.0609 0.5772 +vn 0.8097 0.1221 0.5741 +vn 0.8126 0.0918 0.5756 +vn 0.8214 0.0930 0.5627 +vn 0.8187 0.1243 0.5606 +vn 0.8010 0.1195 0.5866 +vn 0.8034 0.0897 0.5887 +vn 0.7958 0.0877 0.5992 +vn 0.7935 0.1164 0.5974 +vn 0.8336 0.0314 0.5514 +vn 0.8428 0.0320 0.5374 +vn 0.8327 0.0632 0.5501 +vn 0.8417 0.0641 0.5361 +vn 0.8510 0.0324 0.5242 +vn 0.8498 0.0647 0.5231 +vn 0.8447 0.1286 0.5196 +vn 0.8477 0.0967 0.5216 +vn 0.8369 0.1276 0.5323 +vn 0.8397 0.0959 0.5344 +vn 0.8309 0.0947 0.5483 +vn 0.8280 0.1261 0.5463 +vn 0.8405 -0.1616 0.5172 +vn 0.8327 -0.1607 0.5299 +vn 0.8346 -0.1959 0.5148 +vn 0.8269 -0.1950 0.5274 +vn 0.8245 -0.1593 0.5430 +vn 0.8182 -0.1933 0.5414 +vn 0.8093 -0.2295 0.5408 +vn 0.8191 -0.2318 0.5248 +vn 0.8267 -0.2326 0.5123 +vn 0.7956 -0.0894 0.5992 +vn 0.7870 -0.0867 0.6108 +vn 0.8037 -0.0916 0.5879 +vn 0.7974 -0.0601 0.6005 +vn 0.7878 -0.0584 0.6132 +vn 0.8055 -0.0615 0.5894 +vn 0.8133 -0.0934 0.5743 +vn 0.8152 -0.0625 0.5758 +vn 0.8161 -0.0314 0.5770 +vn 0.8064 -0.0308 0.5906 +vn 0.7888 -0.0299 0.6140 +vn 0.7981 -0.0302 0.6017 +vn 0.7626 -0.0740 0.6426 +vn 0.7532 -0.0691 0.6541 +vn 0.7716 -0.0791 0.6312 +vn 0.7614 -0.0509 0.6463 +vn 0.7528 -0.0474 0.6565 +vn 0.7714 -0.0543 0.6340 +vn 0.7779 -0.0833 0.6229 +vn 0.7784 -0.0563 0.6252 +vn 0.7796 -0.0292 0.6256 +vn 0.7712 -0.0284 0.6360 +vn 0.7517 -0.0262 0.6590 +vn 0.7611 -0.0273 0.6481 +vn 0.7562 0.1224 0.6427 +vn 0.7480 0.1155 0.6536 +vn 0.7673 0.1281 0.6284 +vn 0.7495 0.1474 0.6453 +vn 0.7445 0.1401 0.6527 +vn 0.7602 0.1559 0.6307 +vn 0.7822 0.1405 0.6069 +vn 0.7749 0.1345 0.6175 +vn 0.7770 0.1704 0.6060 +vn 0.7696 0.1637 0.6171 +vn 0.7592 0.1957 0.6207 +vn 0.7661 0.2027 0.6099 +vn 0.7487 0.1850 0.6366 +vn 0.7346 0.1666 0.6577 +vn 0.7406 0.1763 0.6485 +vn 0.7897 0.1453 0.5961 +vn 0.7972 0.1491 0.5850 +vn 0.7834 0.1752 0.5963 +vn 0.7914 0.1798 0.5842 +vn 0.8148 0.1554 0.5585 +vn 0.8054 0.1525 0.5727 +vn 0.8096 0.1890 0.5557 +vn 0.7991 0.1837 0.5724 +vn 0.7913 0.2213 0.5700 +vn 0.8016 0.2274 0.5529 +vn 0.7820 0.2147 0.5851 +vn 0.7736 0.2079 0.5986 +vn 0.8241 0.1582 0.5440 +vn 0.8328 0.1601 0.5299 +vn 0.8181 0.1925 0.5419 +vn 0.8270 0.1945 0.5275 +vn 0.8405 0.1612 0.5173 +vn 0.8346 0.1957 0.5149 +vn 0.8266 0.2325 0.5124 +vn 0.8191 0.2316 0.5247 +vn 0.8092 0.2291 0.5410 +vn 0.7069 -0.0612 0.7046 +vn 0.7276 -0.0618 0.6832 +vn 0.7066 -0.0389 0.7066 +vn 0.7274 -0.0384 0.6851 +vn 0.7427 -0.0654 0.6665 +vn 0.7415 -0.0422 0.6696 +vn 0.7397 -0.0243 0.6725 +vn 0.7269 -0.0228 0.6864 +vn 0.7056 -0.0227 0.7083 +vn 0.7085 0.0981 0.6988 +vn 0.7274 0.1005 0.6789 +vn 0.7074 0.1178 0.6970 +vn 0.7240 0.1224 0.6789 +vn 0.7391 0.1075 0.6650 +vn 0.7357 0.1294 0.6648 +vn 0.7256 0.1546 0.6705 +vn 0.7156 0.1453 0.6832 +vn 0.7031 0.1382 0.6975 +vn 0.0224 -0.5701 -0.8212 +vn 0.0785 -0.9969 -0.0023 +vn 0.0693 -0.8803 -0.4694 +vn -0.0000 -0.8830 -0.4694 +vn -0.0000 -1.0000 -0.0022 +vn 0.1564 -0.9877 -0.0023 +vn 0.1381 -0.8721 -0.4694 +vn 0.0258 -0.3285 -0.9442 +vn 0.0515 -0.3255 -0.9441 +vn 0.0474 -0.6023 0.7968 +vn 0.0668 -0.8486 0.5248 +vn 0.0000 -0.8512 0.5248 +vn -0.0000 -0.6042 0.7968 +vn 0.0271 -0.3445 0.9384 +vn 0.0000 -0.3455 0.9384 +vn 0.0541 -0.3413 0.9384 +vn 0.0945 -0.5968 0.7968 +vn 0.1332 -0.8408 0.5248 +vn 0.0043 -0.0545 0.9985 +vn 0.0173 -0.2197 0.9754 +vn -0.0000 -0.2204 0.9754 +vn -0.0000 -0.0547 0.9985 +vn 0.0000 0.0851 0.9964 +vn -0.0067 0.0848 0.9964 +vn -0.0133 0.0841 0.9964 +vn 0.0086 -0.0540 0.9985 +vn 0.0345 -0.2177 0.9754 +vn -0.0784 0.9963 0.0360 +vn -0.0778 0.9886 0.1292 +vn 0.0000 0.9916 0.1292 +vn 0.0000 0.9994 0.0360 +vn -0.0784 0.9967 0.0185 +vn -0.0000 0.9998 0.0185 +vn -0.1564 0.9875 0.0185 +vn -0.1563 0.9870 0.0360 +vn -0.1551 0.9794 0.1292 +vn -0.0750 0.9536 0.2917 +vn -0.0708 0.8997 0.4308 +vn -0.0000 0.9025 0.4308 +vn -0.0000 0.9565 0.2917 +vn -0.0774 0.9841 0.1601 +vn 0.0000 0.9871 0.1601 +vn -0.1544 0.9749 0.1601 +vn -0.1496 0.9447 0.2917 +vn -0.1412 0.8913 0.4308 +vn 0.2061 -0.8586 -0.4693 +vn 0.0769 -0.3204 -0.9441 +vn 0.2334 -0.9724 -0.0023 +vn 0.3090 -0.9511 -0.0023 +vn 0.2729 -0.8398 -0.4693 +vn 0.1018 -0.3134 -0.9441 +vn 0.1411 -0.5875 0.7968 +vn 0.1987 -0.8277 0.5248 +vn 0.0807 -0.3360 0.9384 +vn 0.1068 -0.3286 0.9384 +vn 0.1867 -0.5746 0.7968 +vn 0.2630 -0.8096 0.5248 +vn 0.0128 -0.0532 0.9985 +vn 0.0515 -0.2143 0.9754 +vn -0.0199 0.0827 0.9964 +vn -0.0263 0.0809 0.9964 +vn 0.0169 -0.0520 0.9985 +vn 0.0681 -0.2096 0.9754 +vn -0.2333 0.9717 0.0360 +vn -0.2315 0.9642 0.1292 +vn -0.2334 0.9722 0.0185 +vn -0.3090 0.9509 0.0185 +vn -0.3088 0.9504 0.0360 +vn -0.3064 0.9431 0.1292 +vn -0.2233 0.9301 0.2917 +vn -0.2107 0.8775 0.4308 +vn -0.2304 0.9598 0.1601 +vn -0.3050 0.9388 0.1601 +vn -0.2956 0.9097 0.2917 +vn -0.2789 0.8583 0.4308 +vn 0.3379 -0.8158 -0.4693 +vn 0.1261 -0.3045 -0.9441 +vn 0.3827 -0.9239 -0.0023 +vn 0.4540 -0.8910 -0.0023 +vn 0.4009 -0.7868 -0.4693 +vn 0.1496 -0.2936 -0.9441 +vn 0.2312 -0.5582 0.7968 +vn 0.3258 -0.7865 0.5247 +vn 0.1322 -0.3192 0.9384 +vn 0.1569 -0.3079 0.9384 +vn 0.2743 -0.5384 0.7968 +vn 0.3865 -0.7585 0.5248 +vn 0.0209 -0.0505 0.9985 +vn 0.0844 -0.2036 0.9754 +vn -0.0326 0.0786 0.9964 +vn -0.0386 0.0758 0.9964 +vn 0.0248 -0.0487 0.9985 +vn 0.1001 -0.1964 0.9754 +vn -0.3824 0.9233 0.0360 +vn -0.3795 0.9161 0.1292 +vn -0.3826 0.9237 0.0185 +vn -0.4539 0.8909 0.0185 +vn -0.4537 0.8904 0.0360 +vn -0.4502 0.8835 0.1292 +vn -0.3660 0.8837 0.2917 +vn -0.3454 0.8338 0.4308 +vn -0.3777 0.9120 0.1601 +vn -0.4481 0.8795 0.1601 +vn -0.4342 0.8523 0.2917 +vn -0.4097 0.8041 0.4307 +vn 0.4614 -0.7529 -0.4693 +vn 0.1722 -0.2810 -0.9441 +vn 0.5225 -0.8526 -0.0023 +vn 0.5878 -0.8090 -0.0023 +vn 0.5190 -0.7144 -0.4694 +vn 0.1937 -0.2666 -0.9442 +vn 0.3157 -0.5152 0.7968 +vn 0.4448 -0.7258 0.5248 +vn 0.1805 -0.2946 0.9384 +vn 0.2031 -0.2795 0.9384 +vn 0.3551 -0.4888 0.7968 +vn 0.5003 -0.6887 0.5248 +vn 0.0286 -0.0466 0.9985 +vn 0.1152 -0.1879 0.9754 +vn -0.0445 0.0726 0.9964 +vn -0.0500 0.0688 0.9964 +vn 0.0321 -0.0442 0.9985 +vn 0.1296 -0.1783 0.9754 +vn -0.5222 0.8521 0.0360 +vn -0.5181 0.8455 0.1292 +vn -0.5224 0.8525 0.0185 +vn -0.5877 0.8089 0.0185 +vn -0.5874 0.8085 0.0360 +vn -0.5829 0.8022 0.1292 +vn -0.4998 0.8156 0.2917 +vn -0.4715 0.7695 0.4307 +vn -0.5158 0.8416 0.1601 +vn -0.5802 0.7986 0.1601 +vn -0.5622 0.7738 0.2917 +vn -0.5305 0.7301 0.4307 +vn 0.5735 -0.6714 -0.4694 +vn 0.2140 -0.2506 -0.9441 +vn 0.6494 -0.7604 -0.0023 +vn 0.7071 -0.7071 -0.0023 +vn 0.6244 -0.6244 -0.4693 +vn 0.2330 -0.2330 -0.9442 +vn 0.3924 -0.4595 0.7968 +vn 0.5528 -0.6473 0.5248 +vn 0.2244 -0.2628 0.9384 +vn 0.2443 -0.2443 0.9384 +vn 0.4272 -0.4272 0.7968 +vn 0.6019 -0.6019 0.5248 +vn 0.0355 -0.0416 0.9985 +vn 0.1432 -0.1676 0.9754 +vn -0.0553 0.0647 0.9964 +vn -0.0602 0.0602 0.9964 +vn 0.0387 -0.0387 0.9985 +vn 0.1559 -0.1559 0.9754 +vn -0.6490 0.7599 0.0360 +vn -0.6440 0.7540 0.1292 +vn -0.6493 0.7603 0.0185 +vn -0.7070 0.7070 0.0185 +vn -0.7066 0.7066 0.0360 +vn -0.7012 0.7012 0.1292 +vn -0.6212 0.7273 0.2917 +vn -0.5861 0.6863 0.4307 +vn -0.6411 0.7506 0.1601 +vn -0.6980 0.6980 0.1601 +vn -0.6764 0.6764 0.2917 +vn -0.6381 0.6381 0.4307 +vn 0.6715 -0.5735 -0.4693 +vn 0.2506 -0.2140 -0.9441 +vn 0.7604 -0.6494 -0.0022 +vn 0.8090 -0.5878 -0.0022 +vn 0.7144 -0.5190 -0.4693 +vn 0.2666 -0.1937 -0.9442 +vn 0.4595 -0.3924 0.7968 +vn 0.6473 -0.5528 0.5247 +vn 0.2628 -0.2244 0.9384 +vn 0.2795 -0.2031 0.9384 +vn 0.4888 -0.3551 0.7968 +vn 0.6887 -0.5004 0.5248 +vn 0.0416 -0.0355 0.9985 +vn 0.1676 -0.1432 0.9754 +vn -0.0647 0.0553 0.9964 +vn -0.0688 0.0500 0.9964 +vn 0.0442 -0.0321 0.9985 +vn 0.1783 -0.1296 0.9754 +vn -0.7599 0.6490 0.0360 +vn -0.7540 0.6440 0.1292 +vn -0.7603 0.6493 0.0185 +vn -0.8089 0.5877 0.0185 +vn -0.8085 0.5874 0.0360 +vn -0.8022 0.5829 0.1292 +vn -0.7273 0.6212 0.2917 +vn -0.6862 0.5861 0.4307 +vn -0.7506 0.6411 0.1601 +vn -0.7986 0.5802 0.1601 +vn -0.7738 0.5622 0.2917 +vn -0.7301 0.5305 0.4307 +vn 0.7529 -0.4614 -0.4693 +vn 0.2810 -0.1722 -0.9441 +vn 0.8526 -0.5225 -0.0023 +vn 0.8910 -0.4540 -0.0022 +vn 0.7868 -0.4009 -0.4694 +vn 0.2936 -0.1496 -0.9442 +vn 0.5152 -0.3157 0.7968 +vn 0.7258 -0.4448 0.5247 +vn 0.2946 -0.1805 0.9384 +vn 0.3079 -0.1569 0.9384 +vn 0.5384 -0.2743 0.7968 +vn 0.7585 -0.3865 0.5248 +vn 0.0466 -0.0286 0.9985 +vn 0.1879 -0.1152 0.9754 +vn -0.0725 0.0444 0.9964 +vn -0.0758 0.0386 0.9964 +vn 0.0487 -0.0248 0.9985 +vn 0.1964 -0.1001 0.9754 +vn -0.8521 0.5222 0.0360 +vn -0.8455 0.5181 0.1292 +vn -0.8525 0.5224 0.0185 +vn -0.8909 0.4539 0.0185 +vn -0.8904 0.4537 0.0360 +vn -0.8835 0.4502 0.1292 +vn -0.8156 0.4998 0.2917 +vn -0.7695 0.4715 0.4307 +vn -0.8416 0.5158 0.1601 +vn -0.8795 0.4481 0.1601 +vn -0.8523 0.4342 0.2917 +vn -0.8041 0.4097 0.4307 +vn 0.8158 -0.3379 -0.4693 +vn 0.3044 -0.1261 -0.9442 +vn 0.9239 -0.3827 -0.0022 +vn 0.9511 -0.3090 -0.0023 +vn 0.8398 -0.2729 -0.4694 +vn 0.3134 -0.1018 -0.9442 +vn 0.5582 -0.2312 0.7968 +vn 0.7865 -0.3258 0.5248 +vn 0.3192 -0.1322 0.9384 +vn 0.3286 -0.1068 0.9384 +vn 0.5746 -0.1867 0.7968 +vn 0.8096 -0.2630 0.5248 +vn 0.0505 -0.0209 0.9985 +vn 0.2036 -0.0844 0.9754 +vn -0.0786 0.0326 0.9964 +vn -0.0809 0.0263 0.9964 +vn 0.0520 -0.0169 0.9985 +vn 0.2096 -0.0681 0.9754 +vn -0.9233 0.3824 0.0360 +vn -0.9161 0.3795 0.1292 +vn -0.9237 0.3826 0.0185 +vn -0.9509 0.3090 0.0185 +vn -0.9504 0.3088 0.0360 +vn -0.9431 0.3064 0.1292 +vn -0.8837 0.3660 0.2917 +vn -0.8338 0.3454 0.4307 +vn -0.9120 0.3777 0.1601 +vn -0.9388 0.3050 0.1601 +vn -0.9097 0.2956 0.2917 +vn -0.8583 0.2789 0.4308 +vn 0.8586 -0.2061 -0.4693 +vn 0.3204 -0.0769 -0.9441 +vn 0.9724 -0.2334 -0.0023 +vn 0.9877 -0.1564 -0.0022 +vn 0.8721 -0.1381 -0.4694 +vn 0.3254 -0.0515 -0.9442 +vn 0.5875 -0.1410 0.7968 +vn 0.8277 -0.1987 0.5248 +vn 0.3360 -0.0807 0.9384 +vn 0.3413 -0.0541 0.9384 +vn 0.5968 -0.0945 0.7968 +vn 0.8408 -0.1332 0.5248 +vn 0.0532 -0.0128 0.9985 +vn 0.2143 -0.0515 0.9754 +vn -0.0827 0.0199 0.9964 +vn -0.0840 0.0133 0.9964 +vn 0.0540 -0.0086 0.9985 +vn 0.2177 -0.0345 0.9754 +vn -0.9717 0.2333 0.0360 +vn -0.9642 0.2315 0.1292 +vn -0.9722 0.2334 0.0185 +vn -0.9875 0.1564 0.0185 +vn -0.9870 0.1563 0.0360 +vn -0.9794 0.1551 0.1292 +vn -0.9301 0.2233 0.2917 +vn -0.8775 0.2107 0.4308 +vn -0.9598 0.2304 0.1601 +vn -0.9749 0.1544 0.1601 +vn -0.9447 0.1496 0.2917 +vn -0.8914 0.1412 0.4308 +vn 0.8803 -0.0693 -0.4694 +vn 0.3285 -0.0259 -0.9442 +vn 0.9969 -0.0785 -0.0023 +vn 1.0000 0.0000 -0.0023 +vn 0.8830 0.0000 -0.4694 +vn 0.3295 0.0000 -0.9442 +vn 0.6023 -0.0474 0.7968 +vn 0.8486 -0.0668 0.5248 +vn 0.3445 -0.0271 0.9384 +vn 0.3455 0.0000 0.9384 +vn 0.6042 0.0000 0.7968 +vn 0.8512 0.0000 0.5248 +vn 0.0545 -0.0043 0.9985 +vn 0.2198 -0.0173 0.9754 +vn -0.0848 0.0067 0.9964 +vn -0.0851 0.0000 0.9964 +vn 0.0547 0.0000 0.9985 +vn 0.2204 0.0000 0.9754 +vn -0.9963 0.0784 0.0360 +vn -0.9886 0.0778 0.1292 +vn -0.9967 0.0784 0.0185 +vn -0.9998 0.0000 0.0185 +vn -0.9994 0.0000 0.0360 +vn -0.9916 0.0000 0.1292 +vn -0.9536 0.0750 0.2917 +vn -0.8997 0.0708 0.4308 +vn -0.9841 0.0774 0.1601 +vn -0.9871 0.0000 0.1601 +vn -0.9565 -0.0000 0.2917 +vn -0.9025 -0.0000 0.4308 +vn -0.4576 -0.7810 -0.4249 +vn -0.1683 -0.3920 -0.9045 +vn -0.0444 -0.5483 -0.8351 +vn -0.1515 -0.9034 -0.4012 +vn -0.4913 -0.8710 -0.0022 +vn -0.1433 -0.9897 -0.0019 +vn -0.6494 -0.7604 -0.0023 +vn -0.5757 -0.6737 -0.4633 +vn -0.2189 -0.2558 -0.9416 +vn -0.1636 -0.6237 0.7644 +vn -0.3335 -0.7853 0.5216 +vn -0.0109 -0.8934 0.4492 +vn 0.0965 -0.8209 0.5629 +vn 0.0050 -0.4625 0.8866 +vn 0.2682 -0.6696 0.6926 +vn -0.1961 -0.2892 0.9370 +vn -0.3678 -0.4736 0.8003 +vn -0.5398 -0.6527 0.5316 +vn 0.1297 -0.2063 0.9699 +vn 0.0282 -0.3311 0.9432 +vn 0.2792 -0.5339 0.7981 +vn 0.3640 -0.4283 0.8271 +vn 0.4387 -0.3375 0.8329 +vn 0.2163 -0.0970 0.9715 +vn 0.0727 0.0454 0.9963 +vn -0.0170 -0.0612 0.9980 +vn -0.1249 -0.1888 0.9740 +vn 0.8063 0.5905 0.0349 +vn 0.8003 0.5862 0.1263 +vn 0.9615 0.2551 0.1018 +vn 0.9671 0.2527 0.0293 +vn 0.8073 0.5899 0.0180 +vn 0.9680 0.2505 0.0154 +vn 0.6679 0.7440 0.0184 +vn 0.6674 0.7438 0.0358 +vn 0.6624 0.7380 0.1287 +vn 0.7350 0.6095 0.2970 +vn 0.6997 0.5565 0.4481 +vn 0.8460 0.2987 0.4416 +vn 0.8864 0.3638 0.2864 +vn 0.7585 0.6328 0.1559 +vn 0.9155 0.3781 0.1374 +vn 0.6540 0.7395 0.1595 +vn 0.6338 0.7157 0.2935 +vn 0.5982 0.6724 0.4359 +vn -0.4606 -0.7533 -0.4695 +vn -0.1720 -0.2812 -0.9441 +vn -0.1932 -0.2669 -0.9441 +vn -0.5178 -0.7153 -0.4694 +vn -0.5218 -0.8531 -0.0023 +vn -0.5864 -0.8100 -0.0023 +vn -0.4540 -0.8910 -0.0023 +vn -0.4009 -0.7868 -0.4693 +vn -0.1496 -0.2936 -0.9441 +vn -0.3153 -0.5155 0.7968 +vn -0.4442 -0.7262 0.5247 +vn -0.4991 -0.6895 0.5248 +vn -0.3543 -0.4894 0.7969 +vn -0.1803 -0.2948 0.9384 +vn -0.2026 -0.2799 0.9384 +vn -0.1569 -0.3079 0.9384 +vn -0.2743 -0.5383 0.7968 +vn -0.3865 -0.7585 0.5248 +vn -0.0285 -0.0467 0.9985 +vn -0.1150 -0.1881 0.9754 +vn -0.1292 -0.1785 0.9754 +vn -0.0320 -0.0443 0.9985 +vn 0.0499 0.0689 0.9964 +vn 0.0444 0.0726 0.9964 +vn 0.0386 0.0758 0.9964 +vn -0.0248 -0.0487 0.9985 +vn -0.1001 -0.1964 0.9754 +vn 0.5214 0.8525 0.0360 +vn 0.5174 0.8459 0.1292 +vn 0.5815 0.8032 0.1292 +vn 0.5860 0.8095 0.0360 +vn 0.5217 0.8529 0.0185 +vn 0.5863 0.8099 0.0185 +vn 0.4539 0.8909 0.0185 +vn 0.4537 0.8904 0.0360 +vn 0.4502 0.8835 0.1292 +vn 0.4991 0.8160 0.2917 +vn 0.4709 0.7699 0.4308 +vn 0.5292 0.7310 0.4308 +vn 0.5609 0.7748 0.2917 +vn 0.5150 0.8421 0.1601 +vn 0.5788 0.7996 0.1601 +vn 0.4481 0.8795 0.1601 +vn 0.4342 0.8523 0.2917 +vn 0.4097 0.8041 0.4308 +vn -0.3379 -0.8158 -0.4693 +vn -0.1261 -0.3045 -0.9441 +vn -0.3827 -0.9239 -0.0023 +vn -0.3090 -0.9511 -0.0023 +vn -0.2729 -0.8398 -0.4693 +vn -0.1017 -0.3131 -0.9443 +vn -0.2312 -0.5582 0.7968 +vn -0.3258 -0.7865 0.5248 +vn -0.1322 -0.3192 0.9384 +vn -0.1068 -0.3286 0.9384 +vn -0.1867 -0.5746 0.7968 +vn -0.2630 -0.8096 0.5248 +vn -0.0209 -0.0505 0.9985 +vn -0.0843 -0.2036 0.9754 +vn 0.0326 0.0786 0.9964 +vn 0.0263 0.0809 0.9964 +vn -0.0169 -0.0520 0.9985 +vn -0.0681 -0.2096 0.9754 +vn 0.3824 0.9233 0.0360 +vn 0.3795 0.9161 0.1292 +vn 0.3826 0.9237 0.0185 +vn 0.3090 0.9509 0.0185 +vn 0.3088 0.9504 0.0360 +vn 0.3064 0.9431 0.1292 +vn 0.3660 0.8837 0.2917 +vn 0.3454 0.8338 0.4308 +vn 0.3777 0.9120 0.1601 +vn 0.3050 0.9388 0.1601 +vn 0.2956 0.9097 0.2917 +vn 0.2789 0.8583 0.4308 +vn -0.2061 -0.8586 -0.4693 +vn -0.0769 -0.3204 -0.9441 +vn -0.2334 -0.9724 -0.0023 +vn -0.1564 -0.9877 -0.0023 +vn -0.1381 -0.8721 -0.4694 +vn -0.0516 -0.3255 -0.9441 +vn -0.1411 -0.5875 0.7968 +vn -0.1987 -0.8277 0.5248 +vn -0.0807 -0.3360 0.9384 +vn -0.0541 -0.3413 0.9384 +vn -0.0945 -0.5968 0.7968 +vn -0.1332 -0.8408 0.5248 +vn -0.0128 -0.0532 0.9985 +vn -0.0515 -0.2143 0.9754 +vn 0.0199 0.0827 0.9964 +vn 0.0133 0.0840 0.9964 +vn -0.0085 -0.0540 0.9985 +vn -0.0345 -0.2177 0.9754 +vn 0.2333 0.9717 0.0360 +vn 0.2315 0.9642 0.1292 +vn 0.2334 0.9722 0.0185 +vn 0.1564 0.9875 0.0185 +vn 0.1563 0.9870 0.0360 +vn 0.1551 0.9794 0.1292 +vn 0.2233 0.9301 0.2917 +vn 0.2107 0.8775 0.4308 +vn 0.2304 0.9598 0.1601 +vn 0.1544 0.9749 0.1601 +vn 0.1496 0.9447 0.2917 +vn 0.1412 0.8913 0.4308 +vn -0.0693 -0.8803 -0.4693 +vn -0.0259 -0.3285 -0.9442 +vn -0.0785 -0.9969 -0.0022 +vn -0.0000 -0.3294 -0.9442 +vn -0.0474 -0.6023 0.7968 +vn -0.0668 -0.8486 0.5248 +vn -0.0271 -0.3445 0.9384 +vn -0.0043 -0.0545 0.9985 +vn -0.0173 -0.2197 0.9754 +vn 0.0067 0.0848 0.9964 +vn 0.0784 0.9963 0.0360 +vn 0.0778 0.9886 0.1292 +vn 0.0784 0.9967 0.0185 +vn 0.0750 0.9536 0.2917 +vn 0.0708 0.8997 0.4308 +vn 0.0774 0.9841 0.1601 +vn 0.0698 -0.8870 0.4564 +vn 0.1392 -0.8788 0.4564 +vn 0.1546 -0.9760 0.1534 +vn 0.0775 -0.9851 0.1534 +vn -0.0000 -0.8898 0.4564 +vn 0.0000 -0.9882 0.1534 +vn -0.0000 -0.6618 0.7497 +vn 0.0519 -0.6598 0.7497 +vn 0.1035 -0.6536 0.7497 +vn -0.0477 0.6056 0.7943 +vn -0.0950 0.6000 0.7943 +vn -0.0524 0.3306 0.9423 +vn -0.0263 0.3337 0.9423 +vn 0.0000 0.6075 0.7943 +vn 0.0000 0.3347 0.9423 +vn 0.0000 0.7929 0.6093 +vn -0.0622 0.7905 0.6093 +vn -0.1240 0.7832 0.6093 +vn 0.2077 -0.8652 0.4564 +vn 0.2750 -0.8462 0.4564 +vn 0.3054 -0.9398 0.1534 +vn 0.2307 -0.9609 0.1534 +vn 0.1545 -0.6435 0.7497 +vn 0.2045 -0.6294 0.7497 +vn -0.1418 0.5907 0.7943 +vn -0.1877 0.5778 0.7943 +vn -0.1034 0.3184 0.9423 +vn -0.0781 0.3255 0.9423 +vn -0.1851 0.7710 0.6093 +vn -0.2450 0.7541 0.6093 +vn 0.3405 -0.8220 0.4564 +vn 0.4039 -0.7928 0.4564 +vn 0.4486 -0.8805 0.1534 +vn 0.3782 -0.9129 0.1534 +vn 0.2533 -0.6114 0.7497 +vn 0.3005 -0.5897 0.7497 +vn -0.2325 0.5613 0.7943 +vn -0.2758 0.5413 0.7943 +vn -0.1520 0.2983 0.9423 +vn -0.1281 0.3093 0.9423 +vn -0.3034 0.7326 0.6093 +vn -0.3600 0.7065 0.6093 +vn 0.4649 -0.7587 0.4564 +vn 0.5230 -0.7198 0.4564 +vn 0.5808 -0.7994 0.1534 +vn 0.5163 -0.8425 0.1534 +vn 0.3458 -0.5643 0.7497 +vn 0.3890 -0.5354 0.7497 +vn -0.3174 0.5180 0.7943 +vn -0.3571 0.4915 0.7943 +vn -0.1968 0.2708 0.9423 +vn -0.1749 0.2854 0.9423 +vn -0.4143 0.6761 0.6093 +vn -0.4661 0.6415 0.6093 +vn 0.5779 -0.6766 0.4564 +vn 0.6292 -0.6292 0.4564 +vn 0.6987 -0.6987 0.1534 +vn 0.6418 -0.7514 0.1534 +vn 0.4298 -0.5032 0.7497 +vn 0.4680 -0.4680 0.7497 +vn -0.3945 0.4619 0.7943 +vn -0.4296 0.4296 0.7943 +vn -0.2367 0.2367 0.9423 +vn -0.2174 0.2545 0.9423 +vn -0.5150 0.6029 0.6093 +vn -0.5607 0.5607 0.6093 +vn 0.6766 -0.5779 0.4564 +vn 0.7198 -0.5230 0.4564 +vn 0.7994 -0.5808 0.1534 +vn 0.7514 -0.6418 0.1534 +vn 0.5032 -0.4298 0.7497 +vn 0.5354 -0.3890 0.7497 +vn -0.4619 0.3945 0.7943 +vn -0.4915 0.3571 0.7943 +vn -0.2708 0.1968 0.9423 +vn -0.2545 0.2174 0.9423 +vn -0.6029 0.5150 0.6093 +vn -0.6415 0.4661 0.6093 +vn 0.7587 -0.4649 0.4564 +vn 0.7928 -0.4039 0.4564 +vn 0.8805 -0.4486 0.1534 +vn 0.8425 -0.5163 0.1534 +vn 0.5643 -0.3458 0.7497 +vn 0.5897 -0.3004 0.7497 +vn -0.5180 0.3174 0.7943 +vn -0.5413 0.2758 0.7943 +vn -0.2983 0.1520 0.9423 +vn -0.2854 0.1749 0.9423 +vn -0.6761 0.4143 0.6093 +vn -0.7065 0.3600 0.6093 +vn 0.8220 -0.3405 0.4564 +vn 0.8462 -0.2750 0.4564 +vn 0.9398 -0.3054 0.1534 +vn 0.9129 -0.3782 0.1534 +vn 0.6114 -0.2533 0.7497 +vn 0.6294 -0.2045 0.7497 +vn -0.5613 0.2325 0.7943 +vn -0.5778 0.1877 0.7943 +vn -0.3184 0.1034 0.9423 +vn -0.3093 0.1281 0.9423 +vn -0.7326 0.3034 0.6093 +vn -0.7541 0.2450 0.6093 +vn 0.8652 -0.2077 0.4564 +vn 0.8788 -0.1392 0.4564 +vn 0.9760 -0.1546 0.1534 +vn 0.9609 -0.2307 0.1534 +vn 0.6435 -0.1545 0.7497 +vn 0.6536 -0.1035 0.7497 +vn -0.5907 0.1418 0.7943 +vn -0.6000 0.0950 0.7943 +vn -0.3306 0.0524 0.9423 +vn -0.3255 0.0781 0.9423 +vn -0.7710 0.1851 0.6093 +vn -0.7832 0.1240 0.6093 +vn 0.8870 -0.0698 0.4564 +vn 0.8898 -0.0000 0.4564 +vn 0.9882 0.0000 0.1534 +vn 0.9851 -0.0775 0.1534 +vn 0.6598 -0.0519 0.7497 +vn 0.6618 -0.0000 0.7497 +vn -0.6056 0.0477 0.7943 +vn -0.6075 -0.0000 0.7943 +vn -0.3347 0.0000 0.9423 +vn -0.3337 0.0263 0.9423 +vn -0.7905 0.0622 0.6093 +vn -0.7929 -0.0000 0.6093 +vn -0.5618 -0.6909 0.4551 +vn -0.5217 -0.7207 0.4564 +vn -0.5794 -0.8004 0.1534 +vn -0.6240 -0.7663 0.1531 +vn -0.5584 -0.6949 0.4531 +vn -0.6230 -0.7672 0.1525 +vn -0.4104 -0.5236 0.7466 +vn -0.4176 -0.5150 0.7486 +vn -0.3880 -0.5360 0.7497 +vn 0.3867 0.4672 0.7951 +vn 0.3562 0.4921 0.7943 +vn 0.1963 0.2711 0.9423 +vn 0.2133 0.2555 0.9430 +vn 0.4125 0.4424 0.7963 +vn 0.2343 0.2335 0.9437 +vn 0.5332 0.5854 0.6107 +vn 0.5046 0.6111 0.6099 +vn 0.4649 0.6423 0.6093 +vn -0.4643 -0.7591 0.4563 +vn -0.4039 -0.7928 0.4564 +vn -0.4486 -0.8805 0.1534 +vn -0.5156 -0.8430 0.1534 +vn -0.3453 -0.5646 0.7496 +vn -0.3004 -0.5897 0.7497 +vn 0.3170 0.5182 0.7944 +vn 0.2758 0.5413 0.7943 +vn 0.1520 0.2983 0.9423 +vn 0.1746 0.2855 0.9423 +vn 0.4137 0.6764 0.6093 +vn 0.3600 0.7065 0.6093 +vn -0.3405 -0.8220 0.4564 +vn -0.2750 -0.8462 0.4564 +vn -0.3054 -0.9398 0.1534 +vn -0.3782 -0.9129 0.1534 +vn -0.2533 -0.6114 0.7497 +vn -0.2045 -0.6294 0.7497 +vn 0.2325 0.5613 0.7943 +vn 0.1877 0.5778 0.7943 +vn 0.1034 0.3184 0.9423 +vn 0.1281 0.3093 0.9423 +vn 0.3034 0.7326 0.6093 +vn 0.2450 0.7541 0.6093 +vn -0.2077 -0.8652 0.4564 +vn -0.1392 -0.8788 0.4564 +vn -0.1546 -0.9760 0.1534 +vn -0.2307 -0.9609 0.1534 +vn -0.1545 -0.6435 0.7497 +vn -0.1035 -0.6536 0.7497 +vn 0.1418 0.5907 0.7943 +vn 0.0950 0.6000 0.7943 +vn 0.0524 0.3306 0.9423 +vn 0.0781 0.3255 0.9423 +vn 0.1851 0.7710 0.6093 +vn 0.1240 0.7832 0.6093 +vn -0.0698 -0.8870 0.4564 +vn -0.0775 -0.9851 0.1534 +vn -0.0519 -0.6598 0.7497 +vn 0.0477 0.6056 0.7943 +vn 0.0263 0.3337 0.9423 +vn 0.0622 0.7905 0.6093 +vn 0.0346 -0.4398 0.8974 +vn 0.0690 -0.4357 0.8975 +vn -0.0000 -0.4411 0.8975 +vn 0.1030 -0.4289 0.8975 +vn 0.1363 -0.4195 0.8975 +vn 0.1688 -0.4075 0.8974 +vn 0.2003 -0.3930 0.8975 +vn 0.2305 -0.3761 0.8974 +vn 0.2593 -0.3569 0.8975 +vn 0.2865 -0.3354 0.8974 +vn 0.3119 -0.3119 0.8975 +vn 0.3354 -0.2865 0.8974 +vn 0.3569 -0.2593 0.8975 +vn 0.3761 -0.2305 0.8974 +vn 0.3930 -0.2003 0.8975 +vn 0.4075 -0.1688 0.8974 +vn 0.4195 -0.1363 0.8975 +vn 0.4289 -0.1030 0.8974 +vn 0.4357 -0.0690 0.8975 +vn 0.4398 -0.0346 0.8975 +vn 0.4411 0.0000 0.8975 +vn -0.2778 -0.3444 0.8968 +vn -0.2586 -0.3573 0.8975 +vn -0.2674 -0.3566 0.8952 +vn -0.1381 -0.1737 0.9751 +vn -0.2302 -0.3764 0.8974 +vn -0.2003 -0.3930 0.8975 +vn -0.1688 -0.4075 0.8974 +vn -0.1363 -0.4195 0.8975 +vn -0.1030 -0.4289 0.8975 +vn -0.0690 -0.4357 0.8975 +vn -0.0346 -0.4398 0.8975 +vn -0.0761 0.9664 0.2454 +vn -0.0779 0.9904 0.1145 +vn 0.0000 0.9934 0.1145 +vn 0.0000 0.9694 0.2454 +vn -0.0710 0.9025 0.4249 +vn 0.0000 0.9052 0.4249 +vn -0.1416 0.8941 0.4249 +vn -0.1516 0.9575 0.2454 +vn -0.1554 0.9812 0.1145 +vn -0.2263 0.9426 0.2454 +vn -0.2319 0.9660 0.1145 +vn -0.2113 0.8802 0.4249 +vn -0.2797 0.8609 0.4249 +vn -0.2996 0.9220 0.2454 +vn -0.3070 0.9448 0.1145 +vn -0.3710 0.8956 0.2454 +vn -0.3802 0.9178 0.1145 +vn -0.3464 0.8363 0.4249 +vn -0.4110 0.8066 0.4249 +vn -0.4401 0.8638 0.2454 +vn -0.4510 0.8851 0.1145 +vn -0.5065 0.8266 0.2454 +vn -0.5191 0.8470 0.1145 +vn -0.4730 0.7719 0.4249 +vn -0.5321 0.7324 0.4249 +vn -0.5698 0.7843 0.2454 +vn -0.5839 0.8037 0.1145 +vn -0.6296 0.7372 0.2454 +vn -0.6452 0.7554 0.1145 +vn -0.5879 0.6884 0.4249 +vn -0.6401 0.6401 0.4249 +vn -0.6855 0.6855 0.2454 +vn -0.7025 0.7025 0.1145 +vn -0.7372 0.6296 0.2454 +vn -0.7554 0.6452 0.1145 +vn -0.6884 0.5879 0.4249 +vn -0.7324 0.5321 0.4249 +vn -0.7843 0.5698 0.2454 +vn -0.8037 0.5839 0.1145 +vn -0.8266 0.5065 0.2454 +vn -0.8470 0.5191 0.1145 +vn -0.7719 0.4730 0.4249 +vn -0.8066 0.4110 0.4249 +vn -0.8638 0.4401 0.2454 +vn -0.8851 0.4510 0.1145 +vn -0.8956 0.3710 0.2454 +vn -0.9178 0.3802 0.1145 +vn -0.8363 0.3464 0.4249 +vn -0.8609 0.2797 0.4249 +vn -0.9220 0.2996 0.2454 +vn -0.9448 0.3070 0.1145 +vn -0.9426 0.2263 0.2454 +vn -0.9660 0.2319 0.1145 +vn -0.8802 0.2113 0.4249 +vn -0.8941 0.1416 0.4249 +vn -0.9575 0.1516 0.2454 +vn -0.9812 0.1554 0.1145 +vn -0.9664 0.0761 0.2454 +vn -0.9904 0.0779 0.1145 +vn -0.9025 0.0710 0.4249 +vn -0.9052 -0.0000 0.4249 +vn -0.9694 0.0000 0.2454 +vn -0.9934 0.0000 0.1145 +vn 0.7786 0.5765 0.2480 +vn 0.8009 0.5870 0.1182 +vn 0.9617 0.2517 0.1088 +vn 0.9400 0.2555 0.2261 +vn 0.7393 0.5275 0.4185 +vn 0.9055 0.2078 0.3701 +vn 0.6056 0.6733 0.4241 +vn 0.6470 0.7215 0.2464 +vn 0.6633 0.7393 0.1159 +vn 0.5058 0.8270 0.2454 +vn 0.5183 0.8475 0.1145 +vn 0.5825 0.8047 0.1145 +vn 0.5684 0.7853 0.2454 +vn 0.4723 0.7723 0.4249 +vn 0.5308 0.7333 0.4249 +vn 0.4110 0.8066 0.4249 +vn 0.4401 0.8638 0.2454 +vn 0.4510 0.8851 0.1145 +vn 0.3710 0.8956 0.2454 +vn 0.3802 0.9178 0.1145 +vn 0.3464 0.8363 0.4249 +vn 0.2797 0.8609 0.4249 +vn 0.2996 0.9220 0.2454 +vn 0.3070 0.9448 0.1145 +vn 0.2263 0.9426 0.2454 +vn 0.2319 0.9660 0.1145 +vn 0.2113 0.8802 0.4249 +vn 0.1416 0.8941 0.4249 +vn 0.1516 0.9575 0.2454 +vn 0.1554 0.9812 0.1145 +vn 0.0761 0.9664 0.2454 +vn 0.0779 0.9904 0.1145 +vn 0.0710 0.9025 0.4249 +vn -0.0579 0.7354 0.6752 +vn -0.0328 0.4166 0.9085 +vn 0.0000 0.4179 0.9085 +vn 0.0000 0.7376 0.6752 +vn -0.1154 0.7286 0.6752 +vn -0.0654 0.4127 0.9085 +vn -0.1722 0.7172 0.6752 +vn -0.0975 0.4063 0.9085 +vn -0.2279 0.7015 0.6752 +vn -0.1291 0.3974 0.9085 +vn -0.2823 0.6815 0.6752 +vn -0.1599 0.3860 0.9085 +vn -0.3349 0.6572 0.6752 +vn -0.1897 0.3723 0.9085 +vn -0.3854 0.6289 0.6752 +vn -0.2183 0.3563 0.9085 +vn -0.4336 0.5968 0.6752 +vn -0.2456 0.3381 0.9085 +vn -0.4790 0.5609 0.6752 +vn -0.2714 0.3177 0.9085 +vn -0.5216 0.5216 0.6752 +vn -0.2955 0.2955 0.9085 +vn -0.5609 0.4790 0.6752 +vn -0.3177 0.2714 0.9085 +vn -0.5968 0.4336 0.6752 +vn -0.3381 0.2456 0.9085 +vn -0.6289 0.3854 0.6752 +vn -0.3563 0.2183 0.9085 +vn -0.6572 0.3349 0.6752 +vn -0.3723 0.1897 0.9085 +vn -0.6815 0.2823 0.6752 +vn -0.3860 0.1599 0.9085 +vn -0.7015 0.2279 0.6752 +vn -0.3974 0.1291 0.9085 +vn -0.7173 0.1722 0.6752 +vn -0.4063 0.0975 0.9085 +vn -0.7286 0.1154 0.6752 +vn -0.4127 0.0654 0.9085 +vn -0.7353 0.0579 0.6752 +vn -0.4166 0.0328 0.9085 +vn -0.7376 0.0000 0.6752 +vn -0.4179 0.0000 0.9085 +vn 0.5945 0.4129 0.6900 +vn 0.3957 0.1724 0.9020 +vn 0.5660 -0.0814 0.8204 +vn 0.7404 0.1429 0.6568 +vn 0.4899 0.5418 0.6830 +vn 0.2824 0.2987 0.9116 +vn 0.3848 0.6292 0.6753 +vn 0.2180 0.3564 0.9085 +vn 0.2450 0.3385 0.9085 +vn 0.4325 0.5975 0.6753 +vn 0.3349 0.6572 0.6752 +vn 0.1897 0.3723 0.9085 +vn 0.2823 0.6815 0.6752 +vn 0.1599 0.3861 0.9085 +vn 0.2279 0.7015 0.6752 +vn 0.1291 0.3974 0.9085 +vn 0.1722 0.7172 0.6752 +vn 0.0975 0.4063 0.9085 +vn 0.1154 0.7286 0.6752 +vn 0.0654 0.4127 0.9085 +vn 0.0579 0.7354 0.6752 +vn 0.0328 0.4166 0.9085 +vn -0.0781 0.9928 0.0913 +vn 0.0000 0.9958 0.0913 +vn -0.0782 0.9941 0.0750 +vn 0.0000 0.9972 0.0750 +vn -0.1560 0.9849 0.0750 +vn -0.1558 0.9836 0.0913 +vn -0.2325 0.9683 0.0913 +vn -0.2328 0.9696 0.0750 +vn -0.3081 0.9484 0.0750 +vn -0.3077 0.9471 0.0913 +vn -0.3811 0.9200 0.0913 +vn -0.3816 0.9213 0.0750 +vn -0.4527 0.8885 0.0750 +vn -0.4521 0.8873 0.0913 +vn -0.5203 0.8491 0.0913 +vn -0.5210 0.8502 0.0750 +vn -0.5861 0.8067 0.0750 +vn -0.5853 0.8056 0.0913 +vn -0.6467 0.7572 0.0913 +vn -0.6476 0.7583 0.0750 +vn -0.7051 0.7051 0.0750 +vn -0.7042 0.7042 0.0913 +vn -0.7572 0.6467 0.0913 +vn -0.7583 0.6476 0.0750 +vn -0.8067 0.5861 0.0750 +vn -0.8056 0.5853 0.0913 +vn -0.8491 0.5203 0.0913 +vn -0.8502 0.5210 0.0750 +vn -0.8885 0.4527 0.0750 +vn -0.8873 0.4521 0.0913 +vn -0.9200 0.3811 0.0913 +vn -0.9213 0.3816 0.0750 +vn -0.9484 0.3081 0.0750 +vn -0.9471 0.3077 0.0913 +vn -0.9683 0.2325 0.0913 +vn -0.9696 0.2328 0.0750 +vn -0.9849 0.1560 0.0750 +vn -0.9836 0.1558 0.0913 +vn -0.9928 0.0781 0.0913 +vn -0.9941 0.0782 0.0750 +vn -0.9972 -0.0000 0.0750 +vn -0.9958 -0.0000 0.0913 +vn 0.7718 0.6306 0.0822 +vn 0.9332 0.3534 0.0643 +vn 0.7801 0.6222 0.0650 +vn 0.9431 0.3289 0.0498 +vn 0.6622 0.7458 0.0728 +vn 0.6605 0.7455 0.0892 +vn 0.5196 0.8495 0.0913 +vn 0.5839 0.8067 0.0913 +vn 0.5203 0.8507 0.0750 +vn 0.5847 0.8078 0.0750 +vn 0.4527 0.8885 0.0750 +vn 0.4521 0.8873 0.0913 +vn 0.3811 0.9200 0.0913 +vn 0.3816 0.9213 0.0750 +vn 0.3081 0.9484 0.0750 +vn 0.3077 0.9471 0.0913 +vn 0.2325 0.9683 0.0913 +vn 0.2328 0.9696 0.0750 +vn 0.1560 0.9849 0.0750 +vn 0.1558 0.9836 0.0913 +vn 0.0781 0.9928 0.0913 +vn 0.0782 0.9941 0.0750 +vn 0.0783 -0.9950 0.0615 +vn 0.0779 -0.9893 0.1230 +vn 0.0000 -0.9924 0.1230 +vn 0.0000 -0.9981 0.0615 +vn 0.1561 -0.9858 0.0615 +vn 0.1552 -0.9802 0.1230 +vn 0.2330 -0.9705 0.0615 +vn 0.2317 -0.9650 0.1231 +vn 0.3084 -0.9493 0.0615 +vn 0.3067 -0.9438 0.1231 +vn 0.3820 -0.9221 0.0615 +vn 0.3798 -0.9169 0.1230 +vn 0.4531 -0.8893 0.0615 +vn 0.4505 -0.8842 0.1230 +vn 0.5215 -0.8510 0.0615 +vn 0.5185 -0.8462 0.1230 +vn 0.5867 -0.8075 0.0615 +vn 0.5833 -0.8029 0.1230 +vn 0.6482 -0.7590 0.0615 +vn 0.6445 -0.7546 0.1230 +vn 0.7058 -0.7058 0.0615 +vn 0.7017 -0.7017 0.1230 +vn 0.7590 -0.6482 0.0615 +vn 0.7546 -0.6445 0.1230 +vn 0.8075 -0.5867 0.0615 +vn 0.8029 -0.5833 0.1230 +vn 0.8510 -0.5215 0.0615 +vn 0.8462 -0.5185 0.1230 +vn 0.8893 -0.4531 0.0615 +vn 0.8842 -0.4505 0.1230 +vn 0.9221 -0.3820 0.0615 +vn 0.9169 -0.3798 0.1230 +vn 0.9493 -0.3084 0.0615 +vn 0.9438 -0.3067 0.1230 +vn 0.9705 -0.2330 0.0615 +vn 0.9650 -0.2317 0.1230 +vn 0.9858 -0.1561 0.0615 +vn 0.9802 -0.1552 0.1230 +vn 0.9950 -0.0783 0.0615 +vn 0.9893 -0.0779 0.1230 +vn 0.9981 0.0000 0.0615 +vn 0.9924 -0.0000 0.1230 +vn -0.4756 -0.8776 0.0597 +vn -0.4722 -0.8735 0.1187 +vn -0.1806 -0.9778 0.1060 +vn -0.1842 -0.9816 0.0508 +vn -0.4677 -0.8714 0.1477 +vn -0.1733 -0.9773 0.1218 +vn -0.6298 -0.7743 0.0614 +vn -0.6262 -0.7698 0.1234 +vn -0.5208 -0.8515 0.0615 +vn -0.5178 -0.8466 0.1231 +vn -0.5819 -0.8039 0.1231 +vn -0.5853 -0.8085 0.0615 +vn -0.4531 -0.8893 0.0615 +vn -0.4505 -0.8842 0.1231 +vn -0.3820 -0.9221 0.0615 +vn -0.3798 -0.9169 0.1230 +vn -0.3084 -0.9493 0.0615 +vn -0.3067 -0.9438 0.1230 +vn -0.2330 -0.9705 0.0615 +vn -0.2317 -0.9650 0.1231 +vn -0.1561 -0.9858 0.0615 +vn -0.1552 -0.9802 0.1230 +vn -0.0783 -0.9950 0.0615 +vn -0.0779 -0.9893 0.1230 +vn 0.0364 -0.4620 0.8861 +vn 0.0106 -0.1349 0.9908 +vn 0.0000 -0.1354 0.9908 +vn 0.0000 -0.4635 0.8861 +vn 0.0602 -0.7655 0.6406 +vn 0.0000 -0.7679 0.6406 +vn 0.1201 -0.7585 0.6406 +vn 0.0725 -0.4577 0.8861 +vn 0.0212 -0.1337 0.9908 +vn 0.1082 -0.4506 0.8861 +vn 0.0316 -0.1316 0.9908 +vn 0.1793 -0.7467 0.6406 +vn 0.2373 -0.7303 0.6406 +vn 0.1432 -0.4408 0.8861 +vn 0.0418 -0.1287 0.9908 +vn 0.1773 -0.4282 0.8861 +vn 0.0518 -0.1250 0.9908 +vn 0.2939 -0.7094 0.6406 +vn 0.3486 -0.6842 0.6406 +vn 0.2104 -0.4129 0.8861 +vn 0.0614 -0.1206 0.9908 +vn 0.2421 -0.3951 0.8861 +vn 0.0707 -0.1154 0.9908 +vn 0.4012 -0.6547 0.6406 +vn 0.4514 -0.6212 0.6406 +vn 0.2724 -0.3749 0.8861 +vn 0.0796 -0.1095 0.9908 +vn 0.3010 -0.3524 0.8861 +vn 0.0879 -0.1029 0.9908 +vn 0.4987 -0.5839 0.6406 +vn 0.5430 -0.5430 0.6406 +vn 0.3277 -0.3277 0.8861 +vn 0.0957 -0.0957 0.9908 +vn 0.3524 -0.3010 0.8861 +vn 0.1029 -0.0879 0.9908 +vn 0.5839 -0.4987 0.6406 +vn 0.6212 -0.4514 0.6406 +vn 0.3749 -0.2724 0.8861 +vn 0.1095 -0.0796 0.9908 +vn 0.3951 -0.2421 0.8861 +vn 0.1154 -0.0707 0.9908 +vn 0.6547 -0.4012 0.6406 +vn 0.6842 -0.3486 0.6406 +vn 0.4129 -0.2104 0.8861 +vn 0.1206 -0.0614 0.9908 +vn 0.4282 -0.1773 0.8861 +vn 0.1250 -0.0518 0.9908 +vn 0.7094 -0.2939 0.6406 +vn 0.7303 -0.2373 0.6406 +vn 0.4408 -0.1432 0.8861 +vn 0.1287 -0.0418 0.9908 +vn 0.4506 -0.1082 0.8861 +vn 0.1316 -0.0316 0.9908 +vn 0.7467 -0.1793 0.6406 +vn 0.7584 -0.1201 0.6406 +vn 0.4577 -0.0725 0.8861 +vn 0.1337 -0.0212 0.9908 +vn 0.4620 -0.0364 0.8861 +vn 0.1349 -0.0106 0.9908 +vn 0.7655 -0.0602 0.6406 +vn 0.7679 0.0000 0.6406 +vn 0.4635 0.0000 0.8861 +vn 0.1354 0.0000 0.9908 +vn -0.1096 -0.5150 0.8502 +vn 0.1033 -0.2851 0.9529 +vn 0.3513 -0.5031 0.7896 +vn 0.1676 -0.6845 0.7095 +vn -0.3092 -0.7245 0.6160 +vn -0.0097 -0.8527 0.5223 +vn -0.4769 -0.6002 0.6421 +vn -0.2763 -0.3687 0.8875 +vn -0.0636 -0.1234 0.9903 +vn -0.2417 -0.3953 0.8862 +vn -0.0706 -0.1154 0.9908 +vn -0.0794 -0.1096 0.9908 +vn -0.2717 -0.3754 0.8861 +vn -0.4006 -0.6551 0.6406 +vn -0.4503 -0.6220 0.6406 +vn -0.3486 -0.6842 0.6406 +vn -0.2104 -0.4129 0.8861 +vn -0.0614 -0.1206 0.9908 +vn -0.1773 -0.4282 0.8861 +vn -0.0518 -0.1250 0.9908 +vn -0.2939 -0.7094 0.6406 +vn -0.2373 -0.7303 0.6406 +vn -0.1432 -0.4408 0.8861 +vn -0.0418 -0.1287 0.9908 +vn -0.1082 -0.4506 0.8861 +vn -0.0316 -0.1316 0.9908 +vn -0.1793 -0.7467 0.6406 +vn -0.1201 -0.7585 0.6406 +vn -0.0725 -0.4577 0.8861 +vn -0.0212 -0.1337 0.9908 +vn -0.0364 -0.4620 0.8861 +vn -0.0106 -0.1349 0.9908 +vn -0.0602 -0.7655 0.6406 +vn 0.0073 -0.0929 0.9957 +vn 0.0000 -0.0931 0.9957 +vn 0.0000 -0.0000 1.0000 +vn 0.0146 -0.0920 0.9957 +vn 0.0217 -0.0906 0.9957 +vn 0.0288 -0.0886 0.9957 +vn 0.0356 -0.0861 0.9957 +vn 0.0423 -0.0830 0.9957 +vn 0.0487 -0.0794 0.9957 +vn 0.0548 -0.0754 0.9957 +vn 0.0605 -0.0708 0.9957 +vn 0.0659 -0.0659 0.9957 +vn 0.0708 -0.0605 0.9957 +vn 0.0754 -0.0547 0.9957 +vn 0.0794 -0.0487 0.9957 +vn 0.0830 -0.0423 0.9957 +vn 0.0861 -0.0357 0.9957 +vn 0.0886 -0.0288 0.9957 +vn 0.0906 -0.0217 0.9957 +vn 0.0920 -0.0146 0.9957 +vn 0.0929 -0.0073 0.9957 +vn 0.0932 0.0000 0.9957 +vn 0.1461 -0.2852 0.9473 +vn 0.3886 -0.5149 0.7641 +vn 0.2056 -0.2039 0.9572 +vn 0.4417 -0.4404 0.7816 +vn 0.0269 -0.0258 0.9993 +vn -0.0344 -0.1015 0.9942 +vn -0.0486 -0.0795 0.9956 +vn -0.0546 -0.0754 0.9957 +vn -0.0423 -0.0830 0.9957 +vn -0.0356 -0.0861 0.9957 +vn -0.0288 -0.0886 0.9957 +vn -0.0217 -0.0906 0.9957 +vn -0.0146 -0.0920 0.9957 +vn -0.0073 -0.0929 0.9957 +vn 0.0775 -0.9852 0.1526 +vn 0.0785 -0.9969 -0.0033 +vn -0.0000 -1.0000 -0.0033 +vn 0.0000 -0.9883 0.1526 +vn 0.1546 -0.9761 0.1526 +vn 0.1564 -0.9877 -0.0033 +vn 0.2307 -0.9610 0.1526 +vn 0.2334 -0.9724 -0.0033 +vn 0.3054 -0.9399 0.1526 +vn 0.3090 -0.9511 -0.0033 +vn 0.3782 -0.9131 0.1526 +vn 0.3827 -0.9239 -0.0033 +vn 0.4487 -0.8806 0.1526 +vn 0.4540 -0.8910 -0.0033 +vn 0.5164 -0.8427 0.1526 +vn 0.5225 -0.8526 -0.0033 +vn 0.5809 -0.7995 0.1526 +vn 0.5878 -0.8090 -0.0033 +vn 0.6418 -0.7515 0.1526 +vn 0.6494 -0.7604 -0.0033 +vn 0.6988 -0.6988 0.1526 +vn 0.7071 -0.7071 -0.0032 +vn 0.7515 -0.6418 0.1526 +vn 0.7604 -0.6494 -0.0032 +vn 0.7995 -0.5809 0.1526 +vn 0.8090 -0.5878 -0.0033 +vn 0.8427 -0.5164 0.1526 +vn 0.8526 -0.5225 -0.0033 +vn 0.8806 -0.4487 0.1526 +vn 0.8910 -0.4540 -0.0033 +vn 0.9131 -0.3782 0.1526 +vn 0.9239 -0.3827 -0.0033 +vn 0.9399 -0.3054 0.1526 +vn 0.9511 -0.3090 -0.0033 +vn 0.9610 -0.2307 0.1526 +vn 0.9724 -0.2334 -0.0033 +vn 0.9761 -0.1546 0.1526 +vn 0.9877 -0.1564 -0.0033 +vn 0.9852 -0.0775 0.1526 +vn 0.9969 -0.0785 -0.0033 +vn 0.9883 0.0000 0.1526 +vn 1.0000 0.0000 -0.0033 +vn -0.4709 -0.8686 0.1543 +vn -0.4864 -0.8737 -0.0016 +vn -0.1186 -0.9926 0.0251 +vn -0.0761 -0.9776 0.1963 +vn -0.6396 -0.7526 0.1565 +vn -0.6494 -0.7604 -0.0033 +vn -0.5157 -0.8431 0.1525 +vn -0.5218 -0.8531 -0.0033 +vn -0.5864 -0.8100 -0.0033 +vn -0.5795 -0.8006 0.1526 +vn -0.4487 -0.8806 0.1526 +vn -0.4540 -0.8910 -0.0033 +vn -0.3782 -0.9131 0.1526 +vn -0.3827 -0.9239 -0.0033 +vn -0.3054 -0.9399 0.1526 +vn -0.3090 -0.9511 -0.0033 +vn -0.2307 -0.9610 0.1526 +vn -0.2334 -0.9724 -0.0033 +vn -0.1546 -0.9761 0.1526 +vn -0.1564 -0.9877 -0.0033 +vn -0.0775 -0.9852 0.1526 +vn -0.0785 -0.9969 -0.0033 +vn 0.0015 -0.0192 0.9998 +vn 0.0000 -0.0193 0.9998 +vn 0.0030 -0.0191 0.9998 +vn 0.0045 -0.0188 0.9998 +vn 0.0060 -0.0183 0.9998 +vn 0.0074 -0.0178 0.9998 +vn 0.0088 -0.0172 0.9998 +vn 0.0101 -0.0164 0.9998 +vn 0.0113 -0.0156 0.9998 +vn 0.0125 -0.0147 0.9998 +vn 0.0136 -0.0136 0.9998 +vn 0.0147 -0.0125 0.9998 +vn 0.0156 -0.0113 0.9998 +vn 0.0164 -0.0101 0.9998 +vn 0.0172 -0.0088 0.9998 +vn 0.0178 -0.0074 0.9998 +vn 0.0183 -0.0060 0.9998 +vn 0.0188 -0.0045 0.9998 +vn 0.0191 -0.0030 0.9998 +vn 0.0192 -0.0015 0.9998 +vn 0.0193 0.0000 0.9998 +vn 0.1862 -0.2102 0.9598 +vn 0.4249 -0.4452 0.7882 +vn 0.0129 -0.0385 0.9992 +vn -0.0101 -0.0164 0.9998 +vn -0.0113 -0.0156 0.9998 +vn -0.0088 -0.0172 0.9998 +vn -0.0074 -0.0178 0.9998 +vn -0.0060 -0.0183 0.9998 +vn -0.0045 -0.0188 0.9998 +vn -0.0030 -0.0191 0.9998 +vn -0.0015 -0.0192 0.9998 +vn 0.0732 -0.9305 0.3589 +vn 0.0000 -0.9334 0.3589 +vn 0.1460 -0.9219 0.3589 +vn 0.2179 -0.9076 0.3590 +vn 0.2884 -0.8877 0.3590 +vn 0.3572 -0.8623 0.3590 +vn 0.4237 -0.8316 0.3590 +vn 0.4877 -0.7958 0.3590 +vn 0.5486 -0.7551 0.3590 +vn 0.6062 -0.7097 0.3590 +vn 0.6600 -0.6600 0.3590 +vn 0.7097 -0.6062 0.3590 +vn 0.7551 -0.5486 0.3590 +vn 0.7958 -0.4877 0.3590 +vn 0.8316 -0.4237 0.3590 +vn 0.8623 -0.3572 0.3590 +vn 0.8877 -0.2884 0.3590 +vn 0.9076 -0.2179 0.3590 +vn 0.9219 -0.1460 0.3590 +vn 0.9305 -0.0732 0.3590 +vn 0.9334 -0.0000 0.3590 +vn -0.4264 -0.8373 0.3423 +vn -0.1295 -0.9467 0.2949 +vn -0.5865 -0.7257 0.3598 +vn -0.4870 -0.7962 0.3590 +vn -0.5473 -0.7560 0.3590 +vn -0.4237 -0.8316 0.3590 +vn -0.3572 -0.8623 0.3590 +vn -0.2884 -0.8877 0.3590 +vn -0.2179 -0.9076 0.3590 +vn -0.1460 -0.9219 0.3589 +vn -0.0732 -0.9305 0.3589 +vn -0.0213 0.2712 0.9623 +vn -0.0348 0.4420 0.8963 +vn 0.0000 0.4434 0.8963 +vn 0.0000 0.2720 0.9623 +vn -0.0426 0.2687 0.9623 +vn -0.0694 0.4379 0.8964 +vn -0.0635 0.2645 0.9623 +vn -0.1035 0.4311 0.8963 +vn -0.0841 0.2587 0.9623 +vn -0.1370 0.4217 0.8963 +vn -0.1041 0.2513 0.9623 +vn -0.1697 0.4096 0.8963 +vn -0.1235 0.2424 0.9623 +vn -0.2013 0.3950 0.8963 +vn -0.1421 0.2320 0.9623 +vn -0.2317 0.3780 0.8963 +vn -0.1599 0.2201 0.9623 +vn -0.2606 0.3587 0.8963 +vn -0.1767 0.2069 0.9623 +vn -0.2879 0.3371 0.8963 +vn -0.1924 0.1924 0.9623 +vn -0.3135 0.3135 0.8963 +vn -0.2069 0.1767 0.9623 +vn -0.3371 0.2879 0.8963 +vn -0.2201 0.1599 0.9623 +vn -0.3587 0.2606 0.8963 +vn -0.2320 0.1421 0.9623 +vn -0.3780 0.2317 0.8963 +vn -0.2424 0.1235 0.9623 +vn -0.3950 0.2013 0.8964 +vn -0.2513 0.1041 0.9623 +vn -0.4096 0.1697 0.8963 +vn -0.2587 0.0841 0.9623 +vn -0.4216 0.1370 0.8964 +vn -0.2645 0.0635 0.9623 +vn -0.4311 0.1035 0.8963 +vn -0.2687 0.0426 0.9623 +vn -0.4379 0.0694 0.8963 +vn -0.2712 0.0213 0.9623 +vn -0.4420 0.0348 0.8963 +vn -0.2720 0.0000 0.9623 +vn -0.4434 0.0000 0.8963 +vn 0.3084 0.0666 0.9489 +vn 0.4334 0.1785 0.8833 +vn 0.6287 -0.0939 0.7720 +vn 0.5019 -0.1709 0.8479 +vn 0.1907 0.1925 0.9626 +vn 0.3062 0.3238 0.8952 +vn 0.1419 0.2321 0.9623 +vn 0.2314 0.3783 0.8963 +vn 0.2600 0.3591 0.8964 +vn 0.1595 0.2203 0.9623 +vn 0.1235 0.2424 0.9623 +vn 0.2013 0.3950 0.8963 +vn 0.1041 0.2513 0.9623 +vn 0.1697 0.4096 0.8963 +vn 0.0841 0.2587 0.9623 +vn 0.1370 0.4217 0.8963 +vn 0.0635 0.2645 0.9623 +vn 0.1035 0.4311 0.8963 +vn 0.0426 0.2687 0.9623 +vn 0.0694 0.4379 0.8964 +vn 0.0213 0.2712 0.9623 +vn 0.0348 0.4420 0.8963 +vn -0.0732 0.9298 0.3608 +vn 0.0000 0.9326 0.3608 +vn -0.1459 0.9212 0.3608 +vn -0.2177 0.9069 0.3608 +vn -0.2882 0.8870 0.3608 +vn -0.3569 0.8616 0.3608 +vn -0.4234 0.8310 0.3608 +vn -0.4873 0.7952 0.3608 +vn -0.5482 0.7545 0.3608 +vn -0.6057 0.7092 0.3608 +vn -0.6595 0.6595 0.3608 +vn -0.7092 0.6057 0.3608 +vn -0.7545 0.5482 0.3608 +vn -0.7952 0.4873 0.3608 +vn -0.8310 0.4234 0.3608 +vn -0.8616 0.3569 0.3608 +vn -0.8870 0.2882 0.3608 +vn -0.9069 0.2177 0.3608 +vn -0.9212 0.1459 0.3608 +vn -0.9298 0.0732 0.3608 +vn -0.9326 0.0000 0.3608 +vn 0.7620 0.5407 0.3564 +vn 0.6732 0.4304 0.6014 +vn 0.8483 0.1170 0.5165 +vn 0.9285 0.2200 0.2993 +vn 0.6239 0.6929 0.3614 +vn 0.4866 0.7956 0.3609 +vn 0.5469 0.7555 0.3609 +vn 0.4234 0.8310 0.3608 +vn 0.3569 0.8616 0.3608 +vn 0.2882 0.8870 0.3608 +vn 0.2177 0.9069 0.3608 +vn 0.1459 0.9212 0.3608 +vn 0.0732 0.9298 0.3608 +vn -0.0577 0.7330 0.6778 +vn 0.0000 0.7353 0.6778 +vn -0.1150 0.7262 0.6778 +vn -0.1717 0.7150 0.6777 +vn -0.2272 0.6993 0.6778 +vn -0.2814 0.6793 0.6777 +vn -0.3338 0.6552 0.6777 +vn -0.3842 0.6270 0.6777 +vn -0.4322 0.5949 0.6777 +vn -0.4775 0.5591 0.6777 +vn -0.5199 0.5199 0.6777 +vn -0.5591 0.4775 0.6777 +vn -0.5949 0.4322 0.6777 +vn -0.6270 0.3842 0.6777 +vn -0.6552 0.3338 0.6777 +vn -0.6793 0.2814 0.6777 +vn -0.6993 0.2272 0.6777 +vn -0.7150 0.1717 0.6777 +vn -0.7262 0.1150 0.6777 +vn -0.7330 0.0577 0.6777 +vn -0.7353 0.0000 0.6778 +vn 0.6362 0.3913 0.6649 +vn 0.8160 0.0730 0.5735 +vn 0.4969 0.5447 0.6756 +vn 0.3837 0.6273 0.6777 +vn 0.4311 0.5956 0.6778 +vn 0.3338 0.6552 0.6777 +vn 0.2814 0.6793 0.6777 +vn 0.2272 0.6993 0.6778 +vn 0.1717 0.7150 0.6777 +vn 0.1150 0.7262 0.6778 +vn 0.0577 0.7330 0.6778 +vn 0.3793 0.0817 0.9217 +vn 0.5855 -0.1915 0.7877 +vn 0.4057 -0.7581 0.5105 +vn 0.5047 -0.6699 0.5445 +vn 0.1648 -0.6691 0.7246 +vn 0.3050 -0.8543 0.4209 +vn 0.0433 -0.8004 0.5980 +vn 0.5180 -0.8229 0.2337 +vn 0.5946 -0.7704 0.2301 +vn 0.6591 -0.7190 0.2207 +vn 0.1955 -0.9522 0.2348 +vn -0.0981 -0.9278 0.3601 +vn 0.1788 -0.9809 0.0761 +vn 0.5255 -0.8503 0.0287 +vn 0.5102 -0.8519 0.1183 +vn 0.8221 -0.3297 0.4642 +vn 0.9092 -0.2144 0.3569 +vn 0.7422 -0.0165 0.6700 +vn 0.7148 -0.4597 0.5270 +vn 0.7394 -0.6403 0.2082 +vn 0.7996 -0.5649 0.2035 +vn 0.8597 -0.4753 0.1872 +vn 0.9713 -0.1403 0.1922 +vn 0.9872 -0.1495 0.0563 +vn 0.8659 -0.4911 0.0955 +vn 0.8562 -0.5163 0.0188 +vn 0.6208 -0.5583 0.5504 +vn 0.5690 -0.6082 0.5536 +vn 0.6849 -0.6967 0.2134 +vn 0.7039 -0.6803 0.2044 +vn 0.1869 -0.9818 0.0337 +vn 0.5365 -0.8438 0.0126 +vn 0.1985 -0.9771 0.0770 +vn 0.5436 -0.8388 0.0287 +vn 0.9859 -0.1665 0.0178 +vn 0.8498 -0.5270 0.0058 +vn 0.8468 -0.5319 0.0032 +vn 0.9850 -0.1725 0.0099 +vn 0.2428 -0.9477 0.2072 +vn 0.3126 -0.8772 0.3644 +vn 0.5704 -0.8086 0.1441 +vn 0.5571 -0.8270 0.0752 +vn 0.5780 -0.5939 0.5596 +vn 0.5452 -0.6354 0.5468 +vn 0.5867 -0.5864 0.5585 +vn 0.6796 -0.6797 0.2760 +vn 0.6752 -0.6848 0.2743 +vn 0.6614 -0.7197 0.2111 +vn 0.5348 -0.6436 0.5476 +vn 0.4101 -0.7802 0.4723 +vn 0.4893 -0.8415 0.2290 +vn 0.6397 -0.7163 0.2786 +vn 0.4162 -0.7574 0.5031 +vn 0.5876 -0.7722 0.2417 +vn 0.2199 -0.9211 0.3212 +vn 0.2208 -0.9681 0.1186 +vn 0.2031 -0.9789 0.0211 +vn -0.1422 -0.9898 0.0013 +vn 0.2003 -0.9797 -0.0017 +vn -0.1438 -0.9896 -0.0026 +vn 0.5229 -0.8524 -0.0006 +vn 0.5194 -0.8531 0.0502 +vn 0.6583 -0.4274 0.6196 +vn 0.6768 -0.3578 0.6434 +vn 0.7585 -0.4067 0.5092 +vn 0.7576 -0.6341 0.1549 +vn 0.7194 -0.6289 0.2949 +vn 0.7265 -0.5956 0.3428 +vn 0.7965 -0.1672 0.5810 +vn 0.9141 -0.0087 0.4053 +vn 0.8090 -0.4677 0.3561 +vn 0.9061 -0.2863 0.3113 +vn 0.9680 0.0504 0.2460 +vn 0.9947 0.0374 0.0961 +vn 0.9246 -0.3425 0.1668 +vn 0.9282 -0.3698 0.0422 +vn 0.8721 -0.3178 0.3722 +vn 0.9424 -0.2298 0.2430 +vn 0.8162 -0.5731 0.0734 +vn 0.7936 -0.5958 0.1232 +vn 0.9699 -0.1889 0.1539 +vn 0.9798 -0.1850 0.0758 +vn 0.8360 -0.5481 0.0258 +vn 0.8289 -0.5571 0.0494 +vn 0.9993 0.0005 0.0361 +vn 0.9199 -0.3920 0.0115 +vn 0.9132 -0.4074 0.0057 +vn 0.9992 -0.0303 0.0258 +vn 0.7044 -0.7074 0.0584 +vn 0.7053 -0.7082 0.0300 +vn 0.7058 -0.7059 0.0598 +vn 0.7071 -0.7072 0.0000 +vn 0.6814 -0.7292 0.0623 +vn 0.6869 -0.7267 -0.0000 +vn 0.7275 -0.6861 0.0052 +vn 0.7251 -0.6886 0.0073 +vn 0.7296 -0.6838 0.0027 +vn 0.7070 -0.7072 0.0000 +vn -0.0784 0.9961 0.0403 +vn 0.0000 0.9992 0.0403 +vn -0.1563 0.9869 0.0403 +vn -0.2333 0.9716 0.0403 +vn -0.3088 0.9503 0.0403 +vn -0.3824 0.9231 0.0403 +vn -0.4536 0.8903 0.0403 +vn -0.5221 0.8519 0.0403 +vn -0.5873 0.8084 0.0403 +vn -0.6489 0.7598 0.0403 +vn -0.7065 0.7065 0.0403 +vn -0.7598 0.6489 0.0403 +vn -0.8084 0.5873 0.0403 +vn -0.8519 0.5221 0.0403 +vn -0.8903 0.4536 0.0403 +vn -0.9231 0.3824 0.0403 +vn -0.9503 0.3088 0.0403 +vn -0.9716 0.2333 0.0403 +vn -0.9869 0.1563 0.0403 +vn -0.9961 0.0784 0.0403 +vn -0.9992 0.0000 0.0403 +vn 0.8079 0.5879 0.0406 +vn 0.9686 0.2461 0.0363 +vn 0.6674 0.7435 0.0407 +vn 0.5213 0.8524 0.0403 +vn 0.5859 0.8094 0.0403 +vn 0.4536 0.8903 0.0403 +vn 0.3824 0.9231 0.0403 +vn 0.3088 0.9503 0.0403 +vn 0.2333 0.9716 0.0403 +vn 0.1563 0.9869 0.0403 +vn 0.0784 0.9961 0.0403 +vn 0.9831 -0.1816 0.0250 +vn 0.8420 -0.5394 0.0082 +vn 0.7320 -0.6813 0.0007 +vn 0.7334 -0.6798 0.0001 +vn 0.7341 -0.6790 0.0006 +vn 0.7365 -0.6765 0.0031 +vn 0.6890 -0.7241 0.0306 +vn 0.6865 -0.7269 0.0198 +vn 0.7015 -0.7126 0.0109 +vn 0.6850 -0.7285 0.0103 +vn 0.6829 -0.7305 0.0041 +vn 0.6813 -0.7320 0.0019 +vn 0.6790 -0.7342 0.0040 +vn 0.6669 -0.7431 0.0553 +vn 0.7028 -0.7103 0.0395 +vn 0.7062 -0.7072 0.0352 +vn 0.7085 -0.7049 0.0332 +vn 0.7130 -0.7002 0.0360 +vn 0.7508 -0.6589 0.0469 +vn 0.0785 -0.9969 -0.0028 +vn 0.0785 -0.9969 -0.0026 +vn -0.0000 -1.0000 -0.0026 +vn -0.0000 -1.0000 -0.0028 +vn 0.0785 -0.9969 -0.0031 +vn 0.0000 -1.0000 -0.0031 +vn 0.1564 -0.9877 -0.0031 +vn 0.1564 -0.9877 -0.0029 +vn 0.1564 -0.9877 -0.0026 +vn 0.2334 -0.9724 -0.0029 +vn 0.2334 -0.9724 -0.0026 +vn 0.2334 -0.9724 -0.0031 +vn 0.3090 -0.9511 -0.0031 +vn 0.3090 -0.9511 -0.0029 +vn 0.3090 -0.9511 -0.0025 +vn 0.3827 -0.9239 -0.0029 +vn 0.3827 -0.9239 -0.0026 +vn 0.3827 -0.9239 -0.0031 +vn 0.4540 -0.8910 -0.0031 +vn 0.4540 -0.8910 -0.0029 +vn 0.4540 -0.8910 -0.0026 +vn 0.5225 -0.8526 -0.0029 +vn 0.5225 -0.8526 -0.0026 +vn 0.5225 -0.8526 -0.0031 +vn 0.5878 -0.8090 -0.0031 +vn 0.5878 -0.8090 -0.0029 +vn 0.5878 -0.8090 -0.0026 +vn 0.6494 -0.7604 -0.0029 +vn 0.6494 -0.7604 -0.0026 +vn 0.6494 -0.7604 -0.0031 +vn 0.7071 -0.7071 -0.0031 +vn 0.7071 -0.7071 -0.0029 +vn 0.7071 -0.7071 -0.0025 +vn 0.7604 -0.6494 -0.0028 +vn 0.7604 -0.6494 -0.0025 +vn 0.7604 -0.6494 -0.0031 +vn 0.8090 -0.5878 -0.0031 +vn 0.8090 -0.5878 -0.0029 +vn 0.8090 -0.5878 -0.0026 +vn 0.8526 -0.5225 -0.0029 +vn 0.8526 -0.5225 -0.0026 +vn 0.8526 -0.5225 -0.0031 +vn 0.8910 -0.4540 -0.0031 +vn 0.8910 -0.4540 -0.0028 +vn 0.8910 -0.4540 -0.0026 +vn 0.9239 -0.3827 -0.0029 +vn 0.9239 -0.3827 -0.0026 +vn 0.9239 -0.3827 -0.0031 +vn 0.9511 -0.3090 -0.0031 +vn 0.9511 -0.3090 -0.0029 +vn 0.9511 -0.3090 -0.0026 +vn 0.9724 -0.2334 -0.0029 +vn 0.9724 -0.2334 -0.0026 +vn 0.9724 -0.2334 -0.0031 +vn 0.9877 -0.1564 -0.0031 +vn 0.9877 -0.1564 -0.0029 +vn 0.9877 -0.1564 -0.0025 +vn 0.9969 -0.0785 -0.0028 +vn 0.9969 -0.0785 -0.0025 +vn 0.9969 -0.0785 -0.0031 +vn 1.0000 0.0000 -0.0031 +vn 1.0000 0.0000 -0.0028 +vn 1.0000 0.0000 -0.0026 +vn -0.4914 -0.8709 -0.0028 +vn -0.4914 -0.8710 -0.0025 +vn -0.1435 -0.9896 -0.0021 +vn -0.1437 -0.9896 -0.0024 +vn -0.4915 -0.8709 -0.0030 +vn -0.6494 -0.7604 -0.0031 +vn -0.6495 -0.7604 -0.0029 +vn -0.6495 -0.7604 -0.0026 +vn -0.5218 -0.8531 -0.0029 +vn -0.5218 -0.8531 -0.0025 +vn -0.5864 -0.8100 -0.0025 +vn -0.5864 -0.8100 -0.0029 +vn -0.5218 -0.8531 -0.0031 +vn -0.5864 -0.8100 -0.0031 +vn -0.4540 -0.8910 -0.0031 +vn -0.4540 -0.8910 -0.0029 +vn -0.4540 -0.8910 -0.0026 +vn -0.3827 -0.9239 -0.0029 +vn -0.3827 -0.9239 -0.0025 +vn -0.3827 -0.9239 -0.0031 +vn -0.3090 -0.9511 -0.0031 +vn -0.3090 -0.9511 -0.0029 +vn -0.3090 -0.9511 -0.0025 +vn -0.2334 -0.9724 -0.0029 +vn -0.2334 -0.9724 -0.0026 +vn -0.2334 -0.9724 -0.0031 +vn -0.1564 -0.9877 -0.0031 +vn -0.1564 -0.9877 -0.0029 +vn -0.1564 -0.9877 -0.0026 +vn -0.0785 -0.9969 -0.0028 +vn -0.0785 -0.9969 -0.0026 +vn -0.0785 -0.9969 -0.0031 +vn 0.1999 -0.9798 -0.0013 +vn 0.2000 -0.9798 -0.0014 +vn -0.1434 -0.9897 -0.0019 +vn 0.1998 -0.9798 -0.0013 +vn 0.5220 -0.8530 -0.0005 +vn 0.5221 -0.8529 -0.0004 +vn 0.5223 -0.8527 -0.0005 +vn 0.6868 -0.7268 -0.0000 +vn 0.6868 -0.7269 -0.0000 +vn 0.5915 -0.5914 -0.5481 +vn 0.5922 -0.5921 -0.5466 +vn 0.1623 -0.1621 -0.9733 +vn 0.1609 -0.1607 -0.9738 +vn 0.5909 -0.5909 -0.5492 +vn 0.1599 -0.1596 -0.9741 +vn 0.6436 -0.5463 -0.5360 +vn 0.1803 -0.1516 -0.9718 +vn 0.7813 -0.3693 -0.5032 +vn 0.2460 -0.1132 -0.9626 +vn 0.7636 -0.6456 0.0003 +vn 0.7866 -0.6092 0.1008 +vn 0.7146 -0.6952 0.0777 +vn 0.7697 -0.6384 0.0077 +vn 0.7104 -0.7010 0.0637 +vn 0.7105 -0.7030 0.0316 +vn 0.5929 -0.5928 -0.5450 +vn 0.5937 -0.5936 -0.5433 +vn 0.1653 -0.1650 -0.9723 +vn 0.1638 -0.1635 -0.9728 +vn 0.1667 -0.1666 -0.9718 +vn 0.5943 -0.5943 -0.5418 +vn 0.5976 -0.5973 -0.5349 +vn 0.1734 -0.1730 -0.9695 +vn 0.5984 -0.5982 -0.5330 +vn 0.1748 -0.1750 -0.9689 +vn 0.7103 -0.7039 0.0041 +vn 0.7157 -0.6984 0.0027 +vn 0.2001 -0.9798 -0.0015 +vn 0.5226 -0.8526 -0.0005 +vn 0.6869 -0.7268 -0.0000 +vn -0.0000 -1.0000 -0.0032 +vn 0.3090 -0.9511 -0.0032 +vn 0.3827 -0.9239 -0.0032 +vn 0.4540 -0.8910 -0.0032 +vn 0.5225 -0.8526 -0.0032 +vn 0.5878 -0.8090 -0.0032 +vn 0.7071 -0.7071 -0.0033 +vn 0.7604 -0.6494 -0.0033 +vn 0.8090 -0.5878 -0.0032 +vn 0.8526 -0.5225 -0.0032 +vn 0.9511 -0.3090 -0.0032 +vn 0.9724 -0.2334 -0.0032 +vn 0.9969 -0.0785 -0.0032 +vn 1.0000 0.0000 -0.0032 +vn -0.4915 -0.8709 -0.0031 +vn -0.5218 -0.8531 -0.0032 +vn -0.5864 -0.8100 -0.0032 +vn -0.4540 -0.8910 -0.0032 +vn -0.3827 -0.9239 -0.0032 +vn -0.3090 -0.9511 -0.0032 +vn -0.0785 -0.9969 -0.0032 +vn 0.7213 -0.6926 0.0104 +vn -0.6337 -0.7735 -0.0023 +vn -0.6495 -0.7604 -0.0023 +vn -0.6337 -0.7735 -0.0025 +vn -0.3804 -0.4704 0.7963 +vn -0.2165 -0.2716 0.9378 +vn -0.5381 -0.6602 0.5240 +vn -0.0328 -0.0449 0.9985 +vn 0.6355 0.7712 0.0359 +vn 0.6359 0.7716 0.0185 +vn 0.6306 0.7653 0.1292 +vn 0.6076 0.7385 0.2922 +vn 0.6271 0.7623 0.1600 +vn 0.5734 0.6967 0.4311 +vn -0.3965 -0.8063 0.4389 +vn -0.2466 -0.6506 0.7183 +vn 0.5551 0.2852 0.7814 +vn -0.1075 -0.4928 0.8635 +vn 0.6164 0.7482 0.2454 +vn 0.5759 0.6987 0.4244 +vn 0.6317 0.7667 0.1148 +vn 0.4683 0.5682 0.6767 +vn 0.2654 0.3206 0.9093 +vn 0.5936 0.7210 -0.3576 +vn 0.6204 0.6979 -0.3578 +vn 0.2799 0.3143 -0.9071 +vn 0.2669 0.3243 -0.9075 +vn 0.5479 0.7569 -0.3563 +vn 0.2479 0.3425 -0.9062 +vn 0.6337 0.7699 0.0748 +vn -0.6303 -0.7739 0.0615 +vn -0.6267 -0.7694 0.1232 +vn -0.2896 -0.3590 0.8873 +vn -0.4837 -0.5957 0.6412 +vn -0.0823 -0.1064 0.9909 +vn -0.0563 -0.0760 0.9955 +vn 0.0032 -0.0029 1.0000 +vn -0.6259 -0.7648 0.1526 +vn -0.6337 -0.7735 -0.0033 +vn -0.0091 -0.0175 0.9998 +vn -0.5890 -0.7237 0.3596 +vn 0.1742 0.2092 0.9622 +vn 0.2840 0.3424 0.8956 +vn 0.5932 0.7194 0.3612 +vn 0.4688 0.5678 0.6766 +vn 0.0556 0.0631 0.9965 +vn 0.6354 0.7711 0.0403 +vn -0.6337 -0.7735 -0.0029 +vn -0.6337 -0.7735 -0.0031 +vn -0.6337 -0.7735 -0.0032 +vn 0.0319 0.0388 -0.9987 +vn 0.0297 0.0410 -0.9987 +vn 0.0336 0.0378 -0.9987 +vn -0.0000 -0.0000 -1.0000 +vn -0.0196 -0.0321 -0.9993 +vn -0.0220 -0.0304 -0.9993 +vn -0.0171 -0.0335 -0.9993 +vn 0.0194 0.0468 -0.9987 +vn 0.0156 0.0482 -0.9987 +vn 0.1306 0.4021 -0.9062 +vn 0.1617 0.3905 -0.9063 +vn 0.0230 0.0451 -0.9987 +vn 0.1919 0.3766 -0.9063 +vn -0.0088 -0.0365 -0.9993 +vn -0.0116 -0.0357 -0.9993 +vn -0.0059 -0.0371 -0.9993 +vn 0.0040 0.0505 -0.9987 +vn -0.0000 0.0506 -0.9987 +vn 0.0000 0.4228 -0.9062 +vn 0.0332 0.4215 -0.9062 +vn 0.0079 0.0500 -0.9987 +vn 0.0661 0.4176 -0.9062 +vn 0.0029 -0.0375 -0.9993 +vn -0.0000 -0.0376 -0.9993 +vn 0.0059 -0.0371 -0.9993 +vn -0.0118 0.0492 -0.9987 +vn -0.0157 0.0482 -0.9987 +vn -0.1306 0.4020 -0.9063 +vn -0.0987 0.4111 -0.9062 +vn -0.0079 0.0500 -0.9987 +vn -0.0661 0.4177 -0.9062 +vn -0.0194 0.0468 -0.9987 +vn -0.0230 0.0451 -0.9987 +vn -0.1919 0.3766 -0.9063 +vn -0.1617 0.3905 -0.9063 +vn 0.0196 -0.0320 -0.9993 +vn 0.0171 -0.0335 -0.9993 +vn 0.0221 -0.0304 -0.9993 +vn -0.0329 0.0385 -0.9987 +vn -0.0358 0.0358 -0.9987 +vn -0.2989 0.2989 -0.9063 +vn -0.2745 0.3214 -0.9063 +vn -0.0298 0.0410 -0.9987 +vn -0.2485 0.3420 -0.9063 +vn 0.0286 -0.0244 -0.9993 +vn 0.0266 -0.0266 -0.9993 +vn 0.0304 -0.0221 -0.9993 +vn -0.0431 0.0264 -0.9987 +vn -0.0450 0.0229 -0.9987 +vn -0.3766 0.1919 -0.9063 +vn -0.3604 0.2208 -0.9063 +vn -0.0409 0.0297 -0.9987 +vn -0.3420 0.2484 -0.9063 +vn 0.0347 -0.0144 -0.9993 +vn 0.0335 -0.0171 -0.9993 +vn 0.0357 -0.0116 -0.9993 +vn -0.0491 0.0118 -0.9987 +vn -0.0499 0.0079 -0.9987 +vn -0.4174 0.0661 -0.9063 +vn -0.4109 0.0986 -0.9063 +vn -0.0481 0.0156 -0.9987 +vn -0.4019 0.1306 -0.9063 +vn 0.0375 -0.0029 -0.9993 +vn 0.0371 -0.0059 -0.9993 +vn 0.0376 0.0000 -0.9993 +vn -0.0242 -0.0294 -0.9993 +vn -0.0253 -0.0294 -0.9992 +vn -0.2109 -0.2573 -0.9430 +vn -0.0144 -0.0347 -0.9993 +vn -0.0029 -0.0375 -0.9993 +vn 0.0088 -0.0365 -0.9993 +vn 0.0116 -0.0357 -0.9993 +vn 0.0144 -0.0347 -0.9993 +vn 0.0244 -0.0286 -0.9993 +vn 0.0320 -0.0196 -0.9993 +vn 0.0365 -0.0088 -0.9993 +vn 0.0264 0.0432 -0.9987 +vn 0.2205 0.3605 -0.9063 +vn 0.0118 0.0492 -0.9987 +vn 0.0987 0.4111 -0.9062 +vn -0.0040 0.0505 -0.9987 +vn -0.0332 0.4215 -0.9062 +vn -0.0265 0.0432 -0.9987 +vn -0.2209 0.3604 -0.9063 +vn -0.0384 0.0328 -0.9987 +vn -0.3214 0.2745 -0.9063 +vn -0.0467 0.0193 -0.9987 +vn -0.3904 0.1617 -0.9063 +vn -0.0504 0.0040 -0.9987 +vn -0.0505 0.0000 -0.9987 +vn -0.4214 0.0332 -0.9063 +vn -0.4227 -0.0000 -0.9063 +vn 0.0827 0.0257 -0.9962 +vn 0.3928 0.2753 -0.8774 +vn 0.4561 0.1564 -0.8761 +vn 0.4168 0.0266 -0.9086 +vn 0.0257 -0.0148 -0.9996 +vn -0.0060 -0.0718 -0.9974 +vn 0.0198 -0.0262 -0.9995 +vn 0.1609 -0.2714 -0.9489 +vn 0.0757 -0.4529 -0.8883 +vn 0.0207 -0.0212 -0.9996 +vn 0.0208 -0.0204 -0.9996 +vn 0.1889 -0.1886 -0.9637 +vn 0.1883 -0.1987 -0.9618 +vn 0.0200 -0.0198 -0.9996 +vn 0.0194 -0.0193 -0.9996 +vn 0.1790 -0.1788 -0.9675 +vn 0.1841 -0.1838 -0.9656 +vn 0.0191 -0.0190 -0.9996 +vn 0.0188 -0.0187 -0.9996 +vn 0.1767 -0.1764 -0.9683 +vn 0.0185 -0.0184 -0.9997 +vn 0.0177 -0.0176 -0.9997 +vn 0.0175 -0.0174 -0.9997 +vn 0.0173 -0.0172 -0.9997 +vn 0.0171 -0.0170 -0.9997 +vn 0.0170 -0.0169 -0.9997 +vn 0.0188 -0.0165 -0.9997 +vn 0.0000 -1.0000 -0.0024 +vn 0.7604 -0.6494 -0.0024 +vn 0.8090 -0.5878 -0.0024 +vn 0.8526 -0.5225 -0.0024 +vn 0.8910 -0.4540 -0.0024 +vn 0.9239 -0.3827 -0.0023 +vn 0.9877 -0.1564 -0.0023 +vn -0.4913 -0.8710 -0.0023 +vn -0.0785 -0.9969 -0.0023 +vn -0.0733 0.9315 -0.3563 +vn 0.0000 0.9344 -0.3563 +vn -0.1462 0.9229 -0.3563 +vn -0.2181 0.9085 -0.3564 +vn -0.2887 0.8886 -0.3565 +vn -0.3575 0.8632 -0.3565 +vn -0.4242 0.8325 -0.3564 +vn -0.4882 0.7967 -0.3564 +vn -0.5492 0.7559 -0.3563 +vn -0.6068 0.7105 -0.3564 +vn -0.6607 0.6607 -0.3564 +vn -0.7105 0.6068 -0.3564 +vn -0.7559 0.5492 -0.3563 +vn -0.7967 0.4882 -0.3563 +vn -0.8325 0.4242 -0.3563 +vn -0.8632 0.3576 -0.3564 +vn -0.8886 0.2887 -0.3564 +vn -0.9085 0.2181 -0.3564 +vn -0.9228 0.1462 -0.3564 +vn -0.9315 0.0733 -0.3563 +vn -0.9344 -0.0000 -0.3563 +vn 0.7319 0.5967 -0.3292 +vn 0.8838 0.2873 -0.3692 +vn 0.4875 0.7971 -0.3564 +vn 0.4242 0.8325 -0.3564 +vn 0.3576 0.8632 -0.3564 +vn 0.2887 0.8886 -0.3564 +vn 0.2181 0.9085 -0.3563 +vn 0.1463 0.9227 -0.3566 +vn 0.0733 0.9315 -0.3563 +vn 0.9017 -0.0570 -0.4286 +vn 0.2086 -0.8956 -0.3929 +vn 0.4644 -0.7446 -0.4795 +vn 0.6025 -0.6025 -0.5235 +vn 0.6049 -0.6048 -0.5180 +vn 0.6003 -0.6002 -0.5287 +vn 0.5904 -0.6243 -0.5115 +vn 0.5990 -0.5989 -0.5315 +vn 0.7643 -0.6448 0.0008 +vn -0.5605 -0.6842 -0.4667 +vn 0.6328 0.7690 0.0908 +vn 0.0693 0.8803 -0.4694 +vn 0.0000 0.8830 -0.4694 +vn 0.0000 0.3295 -0.9442 +vn 0.0259 0.3285 -0.9442 +vn 0.0785 0.9969 -0.0022 +vn 0.0000 1.0000 -0.0023 +vn 0.1381 0.8721 -0.4694 +vn 0.1564 0.9877 -0.0022 +vn 0.0515 0.3254 -0.9442 +vn 0.0474 0.6023 0.7968 +vn -0.0000 0.6042 0.7968 +vn -0.0000 0.8512 0.5248 +vn 0.0668 0.8486 0.5248 +vn 0.0271 0.3445 0.9384 +vn 0.0000 0.3455 0.9384 +vn 0.0945 0.5968 0.7968 +vn 0.0541 0.3413 0.9384 +vn 0.1332 0.8408 0.5248 +vn 0.0043 0.0545 0.9985 +vn -0.0000 0.0547 0.9985 +vn -0.0000 0.2204 0.9754 +vn 0.0173 0.2197 0.9754 +vn 0.0000 -0.0851 0.9964 +vn -0.0067 -0.0848 0.9964 +vn 0.0086 0.0540 0.9985 +vn -0.0133 -0.0841 0.9964 +vn 0.0345 0.2177 0.9754 +vn -0.0784 -0.9963 0.0360 +vn 0.0000 -0.9994 0.0360 +vn 0.0000 -0.9916 0.1292 +vn -0.0778 -0.9886 0.1292 +vn -0.0784 -0.9967 0.0185 +vn -0.0000 -0.9998 0.0185 +vn -0.1563 -0.9870 0.0360 +vn -0.1564 -0.9875 0.0185 +vn -0.1551 -0.9794 0.1292 +vn -0.0750 -0.9536 0.2917 +vn -0.0000 -0.9565 0.2917 +vn -0.0000 -0.9025 0.4308 +vn -0.0708 -0.8997 0.4308 +vn -0.0774 -0.9841 0.1601 +vn 0.0000 -0.9871 0.1601 +vn -0.1496 -0.9447 0.2917 +vn -0.1544 -0.9749 0.1601 +vn -0.1412 -0.8913 0.4308 +vn 0.2061 0.8586 -0.4693 +vn 0.0769 0.3204 -0.9441 +vn 0.2334 0.9724 -0.0022 +vn 0.2729 0.8398 -0.4693 +vn 0.3090 0.9511 -0.0023 +vn 0.1018 0.3134 -0.9442 +vn 0.1411 0.5875 0.7968 +vn 0.1987 0.8277 0.5248 +vn 0.0807 0.3360 0.9384 +vn 0.1867 0.5746 0.7968 +vn 0.1068 0.3286 0.9384 +vn 0.2630 0.8096 0.5248 +vn 0.0128 0.0532 0.9985 +vn 0.0515 0.2143 0.9754 +vn -0.0199 -0.0827 0.9964 +vn 0.0169 0.0520 0.9985 +vn -0.0263 -0.0809 0.9964 +vn 0.0681 0.2096 0.9754 +vn -0.2333 -0.9717 0.0360 +vn -0.2315 -0.9642 0.1292 +vn -0.2334 -0.9722 0.0185 +vn -0.3088 -0.9504 0.0360 +vn -0.3090 -0.9509 0.0185 +vn -0.3064 -0.9431 0.1292 +vn -0.2233 -0.9301 0.2917 +vn -0.2107 -0.8775 0.4308 +vn -0.2304 -0.9598 0.1601 +vn -0.2956 -0.9097 0.2917 +vn -0.3050 -0.9388 0.1601 +vn -0.2789 -0.8583 0.4308 +vn 0.3379 0.8158 -0.4694 +vn 0.1261 0.3044 -0.9442 +vn 0.3827 0.9239 -0.0023 +vn 0.4009 0.7868 -0.4694 +vn 0.4540 0.8910 -0.0023 +vn 0.1496 0.2936 -0.9442 +vn 0.2312 0.5582 0.7968 +vn 0.3258 0.7865 0.5247 +vn 0.1322 0.3192 0.9384 +vn 0.2743 0.5384 0.7968 +vn 0.1569 0.3079 0.9384 +vn 0.3865 0.7585 0.5248 +vn 0.0209 0.0505 0.9985 +vn 0.0844 0.2036 0.9754 +vn -0.0326 -0.0786 0.9964 +vn 0.0248 0.0487 0.9985 +vn -0.0386 -0.0758 0.9964 +vn 0.1001 0.1964 0.9754 +vn -0.3824 -0.9233 0.0360 +vn -0.3795 -0.9161 0.1292 +vn -0.3826 -0.9237 0.0185 +vn -0.4537 -0.8904 0.0360 +vn -0.4539 -0.8909 0.0185 +vn -0.4502 -0.8835 0.1292 +vn -0.3660 -0.8837 0.2917 +vn -0.3454 -0.8338 0.4307 +vn -0.3777 -0.9120 0.1601 +vn -0.4342 -0.8523 0.2917 +vn -0.4481 -0.8795 0.1601 +vn -0.4097 -0.8041 0.4307 +vn 0.4614 0.7529 -0.4694 +vn 0.1722 0.2810 -0.9441 +vn 0.5225 0.8526 -0.0023 +vn 0.5190 0.7144 -0.4693 +vn 0.5878 0.8090 -0.0023 +vn 0.1937 0.2666 -0.9441 +vn 0.3157 0.5152 0.7968 +vn 0.4448 0.7258 0.5248 +vn 0.1805 0.2946 0.9384 +vn 0.3551 0.4888 0.7968 +vn 0.2031 0.2795 0.9384 +vn 0.5003 0.6887 0.5248 +vn 0.0286 0.0466 0.9985 +vn 0.1152 0.1879 0.9754 +vn -0.0445 -0.0726 0.9964 +vn 0.0321 0.0442 0.9985 +vn -0.0500 -0.0688 0.9964 +vn 0.1296 0.1783 0.9754 +vn -0.5222 -0.8521 0.0360 +vn -0.5181 -0.8455 0.1292 +vn -0.5224 -0.8525 0.0185 +vn -0.5874 -0.8085 0.0360 +vn -0.5877 -0.8089 0.0185 +vn -0.5829 -0.8022 0.1292 +vn -0.4998 -0.8156 0.2917 +vn -0.4715 -0.7695 0.4307 +vn -0.5158 -0.8416 0.1601 +vn -0.5622 -0.7738 0.2917 +vn -0.5802 -0.7986 0.1601 +vn -0.5305 -0.7301 0.4307 +vn 0.5735 0.6715 -0.4693 +vn 0.2140 0.2506 -0.9441 +vn 0.6494 0.7604 -0.0023 +vn 0.6244 0.6244 -0.4693 +vn 0.7071 0.7071 -0.0023 +vn 0.2330 0.2330 -0.9441 +vn 0.3924 0.4595 0.7968 +vn 0.5528 0.6473 0.5248 +vn 0.2244 0.2628 0.9384 +vn 0.4272 0.4272 0.7968 +vn 0.2443 0.2443 0.9384 +vn 0.6019 0.6019 0.5248 +vn 0.0355 0.0416 0.9985 +vn 0.1432 0.1676 0.9754 +vn -0.0553 -0.0647 0.9964 +vn 0.0387 0.0387 0.9985 +vn -0.0602 -0.0602 0.9964 +vn 0.1559 0.1559 0.9754 +vn -0.6490 -0.7599 0.0360 +vn -0.6440 -0.7540 0.1292 +vn -0.6493 -0.7603 0.0185 +vn -0.7066 -0.7067 0.0360 +vn -0.7070 -0.7070 0.0185 +vn -0.7012 -0.7012 0.1292 +vn -0.6212 -0.7273 0.2917 +vn -0.5861 -0.6862 0.4307 +vn -0.6411 -0.7506 0.1601 +vn -0.6764 -0.6764 0.2917 +vn -0.6980 -0.6980 0.1601 +vn -0.6381 -0.6381 0.4307 +vn 0.6715 0.5735 -0.4693 +vn 0.2506 0.2140 -0.9442 +vn 0.7604 0.6494 -0.0022 +vn 0.7144 0.5190 -0.4693 +vn 0.8090 0.5878 -0.0022 +vn 0.2666 0.1937 -0.9442 +vn 0.4595 0.3924 0.7968 +vn 0.6473 0.5528 0.5247 +vn 0.2628 0.2244 0.9384 +vn 0.4888 0.3551 0.7968 +vn 0.2795 0.2031 0.9384 +vn 0.6887 0.5004 0.5248 +vn 0.0416 0.0355 0.9985 +vn 0.1676 0.1432 0.9754 +vn -0.0647 -0.0553 0.9964 +vn 0.0442 0.0321 0.9985 +vn -0.0688 -0.0500 0.9964 +vn 0.1783 0.1296 0.9754 +vn -0.7599 -0.6490 0.0360 +vn -0.7540 -0.6440 0.1292 +vn -0.7603 -0.6493 0.0185 +vn -0.8085 -0.5874 0.0360 +vn -0.8089 -0.5877 0.0185 +vn -0.8022 -0.5829 0.1292 +vn -0.7273 -0.6212 0.2917 +vn -0.6863 -0.5861 0.4307 +vn -0.7506 -0.6411 0.1601 +vn -0.7738 -0.5622 0.2917 +vn -0.7986 -0.5802 0.1601 +vn -0.7301 -0.5305 0.4307 +vn 0.7529 0.4614 -0.4693 +vn 0.2810 0.1722 -0.9441 +vn 0.8526 0.5225 -0.0023 +vn 0.7868 0.4009 -0.4694 +vn 0.8910 0.4540 -0.0022 +vn 0.2936 0.1496 -0.9442 +vn 0.5152 0.3157 0.7968 +vn 0.7258 0.4448 0.5247 +vn 0.2946 0.1805 0.9384 +vn 0.5384 0.2743 0.7968 +vn 0.3079 0.1569 0.9384 +vn 0.7585 0.3865 0.5248 +vn 0.0466 0.0286 0.9985 +vn 0.1879 0.1152 0.9754 +vn -0.0725 -0.0444 0.9964 +vn 0.0487 0.0248 0.9985 +vn -0.0758 -0.0386 0.9964 +vn 0.1964 0.1001 0.9754 +vn -0.8521 -0.5222 0.0360 +vn -0.8455 -0.5181 0.1292 +vn -0.8525 -0.5224 0.0185 +vn -0.8904 -0.4537 0.0360 +vn -0.8909 -0.4539 0.0185 +vn -0.8835 -0.4502 0.1292 +vn -0.8156 -0.4998 0.2917 +vn -0.7695 -0.4715 0.4307 +vn -0.8416 -0.5158 0.1601 +vn -0.8523 -0.4342 0.2917 +vn -0.8795 -0.4481 0.1601 +vn -0.8041 -0.4097 0.4307 +vn 0.8158 0.3379 -0.4693 +vn 0.3044 0.1261 -0.9442 +vn 0.9239 0.3827 -0.0022 +vn 0.8398 0.2729 -0.4693 +vn 0.9511 0.3090 -0.0023 +vn 0.3134 0.1018 -0.9442 +vn 0.5582 0.2312 0.7968 +vn 0.7865 0.3258 0.5248 +vn 0.3192 0.1322 0.9384 +vn 0.5746 0.1867 0.7968 +vn 0.3286 0.1068 0.9384 +vn 0.8096 0.2630 0.5248 +vn 0.0505 0.0209 0.9985 +vn 0.2036 0.0844 0.9754 +vn -0.0786 -0.0326 0.9964 +vn 0.0520 0.0169 0.9985 +vn -0.0809 -0.0263 0.9964 +vn 0.2096 0.0681 0.9754 +vn -0.9233 -0.3824 0.0360 +vn -0.9161 -0.3795 0.1292 +vn -0.9237 -0.3826 0.0185 +vn -0.9504 -0.3088 0.0360 +vn -0.9509 -0.3090 0.0185 +vn -0.9431 -0.3064 0.1292 +vn -0.8837 -0.3660 0.2917 +vn -0.8338 -0.3454 0.4307 +vn -0.9120 -0.3777 0.1601 +vn -0.9097 -0.2956 0.2917 +vn -0.9388 -0.3050 0.1601 +vn -0.8583 -0.2789 0.4308 +vn 0.8586 0.2061 -0.4693 +vn 0.3204 0.0769 -0.9441 +vn 0.9724 0.2334 -0.0023 +vn 0.8721 0.1381 -0.4694 +vn 0.9877 0.1564 -0.0022 +vn 0.3254 0.0515 -0.9442 +vn 0.5875 0.1410 0.7968 +vn 0.8277 0.1987 0.5248 +vn 0.3360 0.0807 0.9384 +vn 0.5968 0.0945 0.7968 +vn 0.3413 0.0541 0.9384 +vn 0.8408 0.1332 0.5248 +vn 0.0532 0.0128 0.9985 +vn 0.2143 0.0515 0.9754 +vn -0.0827 -0.0199 0.9964 +vn 0.0540 0.0086 0.9985 +vn -0.0840 -0.0133 0.9964 +vn 0.2177 0.0345 0.9754 +vn -0.9717 -0.2333 0.0360 +vn -0.9642 -0.2315 0.1292 +vn -0.9722 -0.2334 0.0185 +vn -0.9870 -0.1563 0.0360 +vn -0.9875 -0.1564 0.0185 +vn -0.9794 -0.1551 0.1292 +vn -0.9301 -0.2233 0.2917 +vn -0.8775 -0.2107 0.4308 +vn -0.9598 -0.2304 0.1601 +vn -0.9447 -0.1496 0.2917 +vn -0.9749 -0.1544 0.1601 +vn -0.8914 -0.1412 0.4308 +vn 0.8803 0.0693 -0.4694 +vn 0.3285 0.0259 -0.9442 +vn 0.9969 0.0785 -0.0023 +vn 0.6023 0.0474 0.7968 +vn 0.8486 0.0668 0.5248 +vn 0.3445 0.0271 0.9384 +vn 0.0545 0.0043 0.9985 +vn 0.2198 0.0173 0.9754 +vn -0.0848 -0.0067 0.9964 +vn -0.9963 -0.0784 0.0360 +vn -0.9886 -0.0778 0.1292 +vn -0.9967 -0.0784 0.0185 +vn -0.9536 -0.0750 0.2917 +vn -0.8997 -0.0708 0.4308 +vn -0.9841 -0.0774 0.1601 +vn -0.4576 0.7810 -0.4249 +vn -0.1515 0.9034 -0.4012 +vn -0.0444 0.5483 -0.8351 +vn -0.1683 0.3919 -0.9045 +vn -0.4913 0.8710 -0.0023 +vn -0.1433 0.9897 -0.0019 +vn -0.5757 0.6737 -0.4634 +vn -0.6495 0.7604 -0.0023 +vn -0.2189 0.2557 -0.9417 +vn -0.1636 0.6237 0.7644 +vn 0.0965 0.8209 0.5629 +vn -0.0109 0.8934 0.4492 +vn -0.3335 0.7853 0.5216 +vn 0.0050 0.4625 0.8866 +vn 0.2682 0.6696 0.6926 +vn -0.3678 0.4736 0.8003 +vn -0.1961 0.2892 0.9370 +vn -0.5398 0.6527 0.5316 +vn 0.1297 0.2063 0.9699 +vn 0.3640 0.4283 0.8271 +vn 0.2792 0.5339 0.7981 +vn 0.0281 0.3315 0.9430 +vn 0.4387 0.3375 0.8329 +vn 0.2163 0.0970 0.9715 +vn -0.0174 0.0610 0.9980 +vn 0.0727 -0.0454 0.9963 +vn -0.1249 0.1888 0.9740 +vn 0.8063 -0.5905 0.0349 +vn 0.9671 -0.2527 0.0293 +vn 0.9615 -0.2551 0.1019 +vn 0.8003 -0.5862 0.1263 +vn 0.8073 -0.5899 0.0180 +vn 0.9680 -0.2504 0.0154 +vn 0.6674 -0.7438 0.0358 +vn 0.6679 -0.7440 0.0184 +vn 0.6624 -0.7381 0.1287 +vn 0.7350 -0.6095 0.2970 +vn 0.8864 -0.3638 0.2864 +vn 0.8460 -0.2987 0.4416 +vn 0.6997 -0.5565 0.4481 +vn 0.7585 -0.6328 0.1559 +vn 0.9155 -0.3781 0.1374 +vn 0.6338 -0.7157 0.2935 +vn 0.6540 -0.7395 0.1595 +vn 0.5983 -0.6724 0.4359 +vn -0.4606 0.7532 -0.4696 +vn -0.5178 0.7153 -0.4694 +vn -0.1932 0.2669 -0.9441 +vn -0.1720 0.2812 -0.9441 +vn -0.5218 0.8531 -0.0023 +vn -0.5864 0.8100 -0.0023 +vn -0.4009 0.7868 -0.4693 +vn -0.4540 0.8910 -0.0022 +vn -0.1496 0.2936 -0.9441 +vn -0.3153 0.5155 0.7968 +vn -0.3543 0.4894 0.7968 +vn -0.4991 0.6895 0.5248 +vn -0.4442 0.7262 0.5247 +vn -0.1803 0.2948 0.9384 +vn -0.2026 0.2799 0.9384 +vn -0.2743 0.5383 0.7968 +vn -0.1569 0.3079 0.9384 +vn -0.3865 0.7585 0.5248 +vn -0.0285 0.0467 0.9985 +vn -0.0320 0.0443 0.9985 +vn -0.1292 0.1785 0.9754 +vn -0.1150 0.1881 0.9754 +vn 0.0499 -0.0689 0.9964 +vn 0.0444 -0.0726 0.9964 +vn -0.0248 0.0487 0.9985 +vn 0.0386 -0.0758 0.9964 +vn -0.1001 0.1964 0.9754 +vn 0.5214 -0.8525 0.0360 +vn 0.5860 -0.8095 0.0360 +vn 0.5815 -0.8032 0.1292 +vn 0.5174 -0.8459 0.1292 +vn 0.5217 -0.8529 0.0185 +vn 0.5863 -0.8099 0.0185 +vn 0.4537 -0.8904 0.0360 +vn 0.4539 -0.8909 0.0185 +vn 0.4502 -0.8835 0.1292 +vn 0.4991 -0.8160 0.2917 +vn 0.5609 -0.7748 0.2917 +vn 0.5292 -0.7310 0.4308 +vn 0.4709 -0.7699 0.4308 +vn 0.5150 -0.8421 0.1601 +vn 0.5788 -0.7996 0.1601 +vn 0.4342 -0.8523 0.2917 +vn 0.4481 -0.8795 0.1601 +vn 0.4097 -0.8041 0.4308 +vn -0.3379 0.8158 -0.4693 +vn -0.1261 0.3044 -0.9442 +vn -0.3827 0.9239 -0.0022 +vn -0.2729 0.8398 -0.4693 +vn -0.3090 0.9511 -0.0023 +vn -0.1018 0.3134 -0.9442 +vn -0.2312 0.5582 0.7968 +vn -0.3258 0.7865 0.5248 +vn -0.1322 0.3192 0.9384 +vn -0.1867 0.5746 0.7968 +vn -0.1068 0.3286 0.9384 +vn -0.2630 0.8096 0.5248 +vn -0.0209 0.0505 0.9985 +vn -0.0843 0.2036 0.9754 +vn 0.0326 -0.0786 0.9964 +vn -0.0169 0.0520 0.9985 +vn 0.0263 -0.0809 0.9964 +vn -0.0681 0.2096 0.9754 +vn 0.3824 -0.9233 0.0360 +vn 0.3795 -0.9161 0.1292 +vn 0.3826 -0.9237 0.0185 +vn 0.3088 -0.9504 0.0360 +vn 0.3090 -0.9509 0.0185 +vn 0.3064 -0.9431 0.1292 +vn 0.3660 -0.8837 0.2917 +vn 0.3454 -0.8338 0.4308 +vn 0.3777 -0.9120 0.1601 +vn 0.2956 -0.9097 0.2917 +vn 0.3050 -0.9388 0.1601 +vn 0.2789 -0.8583 0.4308 +vn -0.2061 0.8586 -0.4693 +vn -0.0769 0.3204 -0.9441 +vn -0.2334 0.9724 -0.0023 +vn -0.1381 0.8721 -0.4694 +vn -0.1564 0.9877 -0.0022 +vn -0.0515 0.3254 -0.9442 +vn -0.1411 0.5875 0.7968 +vn -0.1987 0.8277 0.5248 +vn -0.0807 0.3360 0.9384 +vn -0.0945 0.5968 0.7968 +vn -0.0541 0.3413 0.9384 +vn -0.1332 0.8408 0.5248 +vn -0.0128 0.0532 0.9985 +vn -0.0515 0.2143 0.9754 +vn 0.0199 -0.0827 0.9964 +vn -0.0085 0.0540 0.9985 +vn 0.0133 -0.0840 0.9964 +vn -0.0345 0.2177 0.9754 +vn 0.2333 -0.9717 0.0360 +vn 0.2315 -0.9642 0.1292 +vn 0.2334 -0.9722 0.0185 +vn 0.1563 -0.9870 0.0360 +vn 0.1564 -0.9875 0.0185 +vn 0.1551 -0.9794 0.1292 +vn 0.2233 -0.9301 0.2917 +vn 0.2107 -0.8775 0.4308 +vn 0.2304 -0.9598 0.1601 +vn 0.1496 -0.9447 0.2917 +vn 0.1544 -0.9749 0.1601 +vn 0.1412 -0.8914 0.4308 +vn -0.0693 0.8803 -0.4694 +vn -0.0259 0.3285 -0.9442 +vn -0.0785 0.9969 -0.0022 +vn -0.0474 0.6023 0.7968 +vn -0.0668 0.8486 0.5248 +vn -0.0271 0.3445 0.9384 +vn -0.0043 0.0545 0.9985 +vn -0.0173 0.2197 0.9754 +vn 0.0067 -0.0848 0.9964 +vn 0.0784 -0.9963 0.0360 +vn 0.0778 -0.9886 0.1292 +vn 0.0784 -0.9967 0.0185 +vn 0.0750 -0.9536 0.2917 +vn 0.0708 -0.8997 0.4308 +vn 0.0774 -0.9841 0.1601 +vn 0.0698 0.8870 0.4564 +vn 0.0775 0.9851 0.1534 +vn 0.1546 0.9760 0.1534 +vn 0.1392 0.8788 0.4564 +vn -0.0000 0.8898 0.4564 +vn 0.0000 0.9882 0.1534 +vn 0.0519 0.6598 0.7497 +vn -0.0000 0.6618 0.7497 +vn 0.1035 0.6536 0.7497 +vn -0.0477 -0.6056 0.7943 +vn -0.0263 -0.3337 0.9423 +vn -0.0524 -0.3306 0.9423 +vn -0.0950 -0.6000 0.7943 +vn 0.0000 -0.6075 0.7943 +vn 0.0000 -0.3347 0.9423 +vn -0.0622 -0.7905 0.6093 +vn 0.0000 -0.7929 0.6093 +vn -0.1240 -0.7832 0.6093 +vn 0.2077 0.8652 0.4564 +vn 0.2307 0.9609 0.1534 +vn 0.3054 0.9398 0.1534 +vn 0.2750 0.8462 0.4564 +vn 0.1545 0.6435 0.7497 +vn 0.2045 0.6294 0.7497 +vn -0.1418 -0.5907 0.7943 +vn -0.0781 -0.3255 0.9423 +vn -0.1034 -0.3184 0.9423 +vn -0.1877 -0.5778 0.7943 +vn -0.1851 -0.7710 0.6093 +vn -0.2450 -0.7541 0.6093 +vn 0.3405 0.8220 0.4564 +vn 0.3782 0.9129 0.1534 +vn 0.4486 0.8805 0.1534 +vn 0.4039 0.7928 0.4564 +vn 0.2533 0.6114 0.7497 +vn 0.3004 0.5897 0.7497 +vn -0.2325 -0.5613 0.7943 +vn -0.1281 -0.3093 0.9423 +vn -0.1520 -0.2983 0.9423 +vn -0.2758 -0.5413 0.7943 +vn -0.3034 -0.7326 0.6093 +vn -0.3600 -0.7065 0.6093 +vn 0.4649 0.7587 0.4564 +vn 0.5163 0.8425 0.1534 +vn 0.5808 0.7994 0.1534 +vn 0.5230 0.7198 0.4564 +vn 0.3458 0.5643 0.7497 +vn 0.3890 0.5354 0.7497 +vn -0.3174 -0.5180 0.7943 +vn -0.1749 -0.2854 0.9423 +vn -0.1968 -0.2708 0.9423 +vn -0.3571 -0.4915 0.7943 +vn -0.4143 -0.6761 0.6093 +vn -0.4661 -0.6415 0.6093 +vn 0.5779 0.6766 0.4564 +vn 0.6418 0.7514 0.1534 +vn 0.6987 0.6987 0.1534 +vn 0.6292 0.6292 0.4564 +vn 0.4298 0.5032 0.7497 +vn 0.4680 0.4680 0.7497 +vn -0.3945 -0.4619 0.7943 +vn -0.2174 -0.2545 0.9423 +vn -0.2367 -0.2367 0.9423 +vn -0.4296 -0.4296 0.7943 +vn -0.5150 -0.6029 0.6093 +vn -0.5607 -0.5607 0.6093 +vn 0.6766 0.5779 0.4564 +vn 0.7514 0.6418 0.1534 +vn 0.7994 0.5808 0.1534 +vn 0.7198 0.5230 0.4564 +vn 0.5032 0.4298 0.7497 +vn 0.5354 0.3890 0.7497 +vn -0.4619 -0.3945 0.7943 +vn -0.2545 -0.2174 0.9423 +vn -0.2708 -0.1968 0.9423 +vn -0.4915 -0.3571 0.7943 +vn -0.6029 -0.5150 0.6093 +vn -0.6415 -0.4661 0.6093 +vn 0.7587 0.4649 0.4564 +vn 0.8425 0.5163 0.1534 +vn 0.8805 0.4486 0.1534 +vn 0.7928 0.4039 0.4564 +vn 0.5643 0.3458 0.7497 +vn 0.5897 0.3004 0.7497 +vn -0.5180 -0.3174 0.7943 +vn -0.2854 -0.1749 0.9423 +vn -0.2983 -0.1520 0.9423 +vn -0.5413 -0.2758 0.7943 +vn -0.6761 -0.4143 0.6093 +vn -0.7065 -0.3600 0.6093 +vn 0.8220 0.3405 0.4564 +vn 0.9129 0.3782 0.1534 +vn 0.9398 0.3054 0.1534 +vn 0.8462 0.2750 0.4564 +vn 0.6114 0.2533 0.7497 +vn 0.6294 0.2045 0.7497 +vn -0.5613 -0.2325 0.7943 +vn -0.3093 -0.1281 0.9423 +vn -0.3184 -0.1034 0.9423 +vn -0.5778 -0.1877 0.7943 +vn -0.7326 -0.3034 0.6093 +vn -0.7541 -0.2450 0.6093 +vn 0.8652 0.2077 0.4564 +vn 0.9609 0.2307 0.1534 +vn 0.9760 0.1546 0.1534 +vn 0.8788 0.1392 0.4564 +vn 0.6435 0.1545 0.7497 +vn 0.6536 0.1035 0.7497 +vn -0.5907 -0.1418 0.7943 +vn -0.3255 -0.0781 0.9423 +vn -0.3306 -0.0524 0.9423 +vn -0.6000 -0.0950 0.7943 +vn -0.7710 -0.1851 0.6093 +vn -0.7832 -0.1240 0.6093 +vn 0.8870 0.0698 0.4564 +vn 0.9851 0.0775 0.1534 +vn 0.6598 0.0519 0.7497 +vn -0.6056 -0.0477 0.7943 +vn -0.3337 -0.0263 0.9423 +vn -0.7905 -0.0622 0.6093 +vn -0.5618 0.6905 0.4555 +vn -0.6240 0.7663 0.1531 +vn -0.5794 0.8004 0.1534 +vn -0.5217 0.7207 0.4564 +vn -0.5585 0.6947 0.4532 +vn -0.6230 0.7672 0.1525 +vn -0.4176 0.5150 0.7486 +vn -0.4104 0.5236 0.7466 +vn -0.3880 0.5360 0.7497 +vn 0.3867 -0.4672 0.7951 +vn 0.2133 -0.2555 0.9430 +vn 0.1963 -0.2711 0.9423 +vn 0.3562 -0.4921 0.7943 +vn 0.4125 -0.4428 0.7961 +vn 0.2343 -0.2335 0.9437 +vn 0.5046 -0.6111 0.6099 +vn 0.5335 -0.5854 0.6105 +vn 0.4649 -0.6423 0.6093 +vn -0.4643 0.7591 0.4563 +vn -0.5156 0.8430 0.1534 +vn -0.4486 0.8805 0.1534 +vn -0.4039 0.7928 0.4564 +vn -0.3453 0.5646 0.7496 +vn -0.3004 0.5897 0.7497 +vn 0.3170 -0.5182 0.7944 +vn 0.1746 -0.2855 0.9423 +vn 0.1520 -0.2983 0.9423 +vn 0.2758 -0.5413 0.7943 +vn 0.4137 -0.6764 0.6093 +vn 0.3600 -0.7065 0.6093 +vn -0.3405 0.8220 0.4564 +vn -0.3782 0.9129 0.1534 +vn -0.3054 0.9398 0.1534 +vn -0.2750 0.8462 0.4564 +vn -0.2533 0.6114 0.7497 +vn -0.2045 0.6294 0.7497 +vn 0.2325 -0.5613 0.7943 +vn 0.1281 -0.3093 0.9423 +vn 0.1034 -0.3184 0.9423 +vn 0.1877 -0.5778 0.7943 +vn 0.3034 -0.7326 0.6093 +vn 0.2450 -0.7541 0.6093 +vn -0.2077 0.8652 0.4564 +vn -0.2307 0.9609 0.1534 +vn -0.1546 0.9760 0.1534 +vn -0.1392 0.8788 0.4564 +vn -0.1545 0.6435 0.7497 +vn -0.1035 0.6536 0.7497 +vn 0.1418 -0.5907 0.7943 +vn 0.0781 -0.3255 0.9423 +vn 0.0524 -0.3306 0.9423 +vn 0.0950 -0.6000 0.7943 +vn 0.1851 -0.7710 0.6093 +vn 0.1240 -0.7832 0.6093 +vn -0.0698 0.8870 0.4564 +vn -0.0775 0.9851 0.1534 +vn -0.0519 0.6598 0.7497 +vn 0.0477 -0.6056 0.7943 +vn 0.0263 -0.3337 0.9423 +vn 0.0622 -0.7905 0.6093 +vn 0.0346 0.4397 0.8975 +vn 0.0690 0.4357 0.8975 +vn 0.0000 0.4411 0.8975 +vn 0.1030 0.4289 0.8975 +vn 0.1363 0.4195 0.8975 +vn 0.1688 0.4075 0.8974 +vn 0.2003 0.3930 0.8975 +vn 0.2305 0.3761 0.8974 +vn 0.2593 0.3569 0.8975 +vn 0.2865 0.3354 0.8974 +vn 0.3119 0.3119 0.8975 +vn 0.3354 0.2865 0.8974 +vn 0.3569 0.2593 0.8975 +vn 0.3761 0.2305 0.8974 +vn 0.3930 0.2003 0.8975 +vn 0.4075 0.1688 0.8974 +vn 0.4195 0.1363 0.8975 +vn 0.4289 0.1030 0.8974 +vn 0.4357 0.0690 0.8975 +vn 0.4398 0.0346 0.8975 +vn -0.2778 0.3444 0.8968 +vn -0.2586 0.3573 0.8975 +vn -0.2674 0.3566 0.8952 +vn -0.1381 0.1737 0.9751 +vn -0.2302 0.3764 0.8974 +vn -0.2003 0.3930 0.8975 +vn -0.1688 0.4075 0.8974 +vn -0.1363 0.4195 0.8975 +vn -0.1030 0.4289 0.8975 +vn -0.0690 0.4357 0.8975 +vn -0.0346 0.4397 0.8975 +vn -0.0761 -0.9664 0.2454 +vn 0.0000 -0.9694 0.2454 +vn 0.0000 -0.9934 0.1145 +vn -0.0779 -0.9904 0.1145 +vn -0.0710 -0.9025 0.4249 +vn 0.0000 -0.9052 0.4249 +vn -0.1516 -0.9575 0.2454 +vn -0.1416 -0.8941 0.4249 +vn -0.1554 -0.9812 0.1145 +vn -0.2263 -0.9426 0.2454 +vn -0.2319 -0.9660 0.1145 +vn -0.2113 -0.8802 0.4249 +vn -0.2996 -0.9220 0.2454 +vn -0.2797 -0.8609 0.4249 +vn -0.3070 -0.9448 0.1145 +vn -0.3710 -0.8956 0.2454 +vn -0.3802 -0.9178 0.1145 +vn -0.3464 -0.8363 0.4249 +vn -0.4401 -0.8638 0.2454 +vn -0.4110 -0.8066 0.4249 +vn -0.4510 -0.8851 0.1145 +vn -0.5065 -0.8266 0.2454 +vn -0.5191 -0.8470 0.1145 +vn -0.4730 -0.7719 0.4249 +vn -0.5698 -0.7843 0.2454 +vn -0.5321 -0.7324 0.4249 +vn -0.5839 -0.8037 0.1145 +vn -0.6296 -0.7372 0.2454 +vn -0.6452 -0.7554 0.1145 +vn -0.5879 -0.6884 0.4249 +vn -0.6855 -0.6855 0.2454 +vn -0.6401 -0.6401 0.4249 +vn -0.7025 -0.7025 0.1145 +vn -0.7372 -0.6296 0.2454 +vn -0.7554 -0.6452 0.1145 +vn -0.6884 -0.5879 0.4249 +vn -0.7843 -0.5698 0.2454 +vn -0.7324 -0.5321 0.4249 +vn -0.8037 -0.5839 0.1145 +vn -0.8266 -0.5065 0.2454 +vn -0.8470 -0.5191 0.1145 +vn -0.7719 -0.4730 0.4249 +vn -0.8638 -0.4401 0.2454 +vn -0.8066 -0.4110 0.4249 +vn -0.8851 -0.4510 0.1145 +vn -0.8956 -0.3710 0.2454 +vn -0.9178 -0.3802 0.1145 +vn -0.8363 -0.3464 0.4249 +vn -0.9220 -0.2996 0.2454 +vn -0.8609 -0.2797 0.4249 +vn -0.9448 -0.3070 0.1145 +vn -0.9426 -0.2263 0.2454 +vn -0.9660 -0.2319 0.1145 +vn -0.8802 -0.2113 0.4249 +vn -0.9575 -0.1516 0.2454 +vn -0.8941 -0.1416 0.4249 +vn -0.9812 -0.1554 0.1145 +vn -0.9664 -0.0761 0.2454 +vn -0.9904 -0.0779 0.1145 +vn -0.9025 -0.0710 0.4249 +vn 0.7786 -0.5765 0.2480 +vn 0.9400 -0.2555 0.2261 +vn 0.9617 -0.2517 0.1088 +vn 0.8009 -0.5870 0.1182 +vn 0.7393 -0.5275 0.4185 +vn 0.9054 -0.2078 0.3701 +vn 0.6469 -0.7216 0.2465 +vn 0.6056 -0.6733 0.4241 +vn 0.6634 -0.7392 0.1158 +vn 0.5058 -0.8270 0.2454 +vn 0.5684 -0.7853 0.2454 +vn 0.5825 -0.8047 0.1146 +vn 0.5183 -0.8475 0.1145 +vn 0.4723 -0.7723 0.4248 +vn 0.5308 -0.7333 0.4249 +vn 0.4401 -0.8638 0.2454 +vn 0.4110 -0.8066 0.4249 +vn 0.4510 -0.8851 0.1145 +vn 0.3710 -0.8956 0.2454 +vn 0.3802 -0.9178 0.1145 +vn 0.3464 -0.8363 0.4249 +vn 0.2996 -0.9220 0.2454 +vn 0.2797 -0.8609 0.4249 +vn 0.3070 -0.9448 0.1145 +vn 0.2263 -0.9426 0.2454 +vn 0.2319 -0.9660 0.1145 +vn 0.2113 -0.8802 0.4249 +vn 0.1516 -0.9575 0.2454 +vn 0.1416 -0.8941 0.4249 +vn 0.1554 -0.9812 0.1145 +vn 0.0761 -0.9664 0.2454 +vn 0.0779 -0.9904 0.1145 +vn 0.0710 -0.9025 0.4249 +vn -0.0579 -0.7353 0.6752 +vn 0.0000 -0.7376 0.6752 +vn 0.0000 -0.4179 0.9085 +vn -0.0328 -0.4166 0.9085 +vn -0.1154 -0.7285 0.6752 +vn -0.0654 -0.4127 0.9085 +vn -0.1722 -0.7172 0.6752 +vn -0.0975 -0.4063 0.9085 +vn -0.2279 -0.7015 0.6752 +vn -0.1291 -0.3974 0.9085 +vn -0.2823 -0.6815 0.6752 +vn -0.1599 -0.3860 0.9085 +vn -0.3349 -0.6572 0.6752 +vn -0.1897 -0.3723 0.9085 +vn -0.3854 -0.6289 0.6752 +vn -0.2183 -0.3563 0.9085 +vn -0.4336 -0.5968 0.6752 +vn -0.2456 -0.3381 0.9085 +vn -0.4790 -0.5609 0.6752 +vn -0.2714 -0.3177 0.9085 +vn -0.5216 -0.5216 0.6752 +vn -0.2955 -0.2955 0.9085 +vn -0.5609 -0.4790 0.6752 +vn -0.3177 -0.2714 0.9085 +vn -0.5968 -0.4336 0.6752 +vn -0.3381 -0.2456 0.9085 +vn -0.6289 -0.3854 0.6752 +vn -0.3563 -0.2183 0.9085 +vn -0.6572 -0.3349 0.6752 +vn -0.3723 -0.1897 0.9085 +vn -0.6815 -0.2823 0.6752 +vn -0.3860 -0.1599 0.9085 +vn -0.7015 -0.2279 0.6752 +vn -0.3974 -0.1291 0.9085 +vn -0.7173 -0.1722 0.6752 +vn -0.4063 -0.0975 0.9085 +vn -0.7286 -0.1154 0.6752 +vn -0.4127 -0.0654 0.9085 +vn -0.7353 -0.0579 0.6752 +vn -0.4166 -0.0328 0.9085 +vn 0.5945 -0.4129 0.6900 +vn 0.7404 -0.1429 0.6568 +vn 0.5660 0.0814 0.8204 +vn 0.3957 -0.1724 0.9020 +vn 0.4899 -0.5418 0.6830 +vn 0.2824 -0.2987 0.9116 +vn 0.3848 -0.6292 0.6753 +vn 0.4325 -0.5975 0.6752 +vn 0.2450 -0.3385 0.9085 +vn 0.2180 -0.3564 0.9085 +vn 0.3349 -0.6572 0.6752 +vn 0.1897 -0.3723 0.9085 +vn 0.2823 -0.6815 0.6752 +vn 0.1599 -0.3861 0.9085 +vn 0.2279 -0.7015 0.6752 +vn 0.1291 -0.3974 0.9085 +vn 0.1722 -0.7172 0.6752 +vn 0.0975 -0.4063 0.9085 +vn 0.1154 -0.7285 0.6752 +vn 0.0654 -0.4127 0.9085 +vn 0.0579 -0.7353 0.6752 +vn 0.0328 -0.4166 0.9085 +vn -0.0781 -0.9928 0.0913 +vn 0.0000 -0.9958 0.0913 +vn -0.0782 -0.9941 0.0750 +vn 0.0000 -0.9972 0.0750 +vn -0.1558 -0.9836 0.0913 +vn -0.1560 -0.9849 0.0750 +vn -0.2325 -0.9683 0.0913 +vn -0.2328 -0.9696 0.0750 +vn -0.3077 -0.9471 0.0913 +vn -0.3081 -0.9484 0.0750 +vn -0.3811 -0.9200 0.0913 +vn -0.3816 -0.9213 0.0750 +vn -0.4521 -0.8873 0.0913 +vn -0.4527 -0.8885 0.0750 +vn -0.5203 -0.8491 0.0913 +vn -0.5210 -0.8502 0.0750 +vn -0.5853 -0.8056 0.0913 +vn -0.5861 -0.8067 0.0750 +vn -0.6467 -0.7572 0.0913 +vn -0.6476 -0.7583 0.0750 +vn -0.7042 -0.7042 0.0913 +vn -0.7051 -0.7051 0.0750 +vn -0.7572 -0.6467 0.0913 +vn -0.7583 -0.6476 0.0750 +vn -0.8056 -0.5853 0.0913 +vn -0.8067 -0.5861 0.0750 +vn -0.8491 -0.5203 0.0913 +vn -0.8502 -0.5210 0.0750 +vn -0.8873 -0.4521 0.0913 +vn -0.8885 -0.4527 0.0750 +vn -0.9200 -0.3811 0.0913 +vn -0.9213 -0.3816 0.0750 +vn -0.9471 -0.3077 0.0913 +vn -0.9484 -0.3081 0.0750 +vn -0.9683 -0.2325 0.0913 +vn -0.9696 -0.2328 0.0750 +vn -0.9836 -0.1558 0.0913 +vn -0.9849 -0.1560 0.0750 +vn -0.9928 -0.0781 0.0913 +vn -0.9941 -0.0782 0.0750 +vn 0.7718 -0.6305 0.0822 +vn 0.9333 -0.3534 0.0643 +vn 0.7802 -0.6222 0.0647 +vn 0.9431 -0.3289 0.0498 +vn 0.6605 -0.7455 0.0893 +vn 0.6622 -0.7457 0.0727 +vn 0.5196 -0.8495 0.0913 +vn 0.5839 -0.8067 0.0913 +vn 0.5203 -0.8507 0.0750 +vn 0.5847 -0.8078 0.0750 +vn 0.4521 -0.8873 0.0913 +vn 0.4527 -0.8885 0.0750 +vn 0.3811 -0.9200 0.0913 +vn 0.3816 -0.9213 0.0750 +vn 0.3077 -0.9471 0.0913 +vn 0.3081 -0.9484 0.0750 +vn 0.2325 -0.9683 0.0913 +vn 0.2328 -0.9696 0.0750 +vn 0.1558 -0.9836 0.0913 +vn 0.1560 -0.9849 0.0750 +vn 0.0781 -0.9928 0.0913 +vn 0.0782 -0.9941 0.0750 +vn 0.0783 0.9950 0.0615 +vn 0.0000 0.9981 0.0615 +vn 0.0000 0.9924 0.1230 +vn 0.0779 0.9893 0.1230 +vn 0.1561 0.9858 0.0615 +vn 0.1552 0.9802 0.1230 +vn 0.2330 0.9705 0.0615 +vn 0.2317 0.9650 0.1231 +vn 0.3084 0.9493 0.0615 +vn 0.3067 0.9438 0.1230 +vn 0.3820 0.9221 0.0615 +vn 0.3798 0.9169 0.1230 +vn 0.4531 0.8893 0.0615 +vn 0.4505 0.8842 0.1230 +vn 0.5215 0.8510 0.0615 +vn 0.5185 0.8462 0.1230 +vn 0.5867 0.8075 0.0615 +vn 0.5833 0.8029 0.1230 +vn 0.6482 0.7590 0.0615 +vn 0.6445 0.7546 0.1230 +vn 0.7058 0.7058 0.0615 +vn 0.7017 0.7017 0.1230 +vn 0.7590 0.6482 0.0615 +vn 0.7546 0.6445 0.1230 +vn 0.8075 0.5867 0.0615 +vn 0.8029 0.5833 0.1230 +vn 0.8510 0.5215 0.0615 +vn 0.8462 0.5185 0.1230 +vn 0.8893 0.4531 0.0615 +vn 0.8842 0.4505 0.1230 +vn 0.9221 0.3820 0.0615 +vn 0.9169 0.3798 0.1230 +vn 0.9493 0.3084 0.0615 +vn 0.9438 0.3067 0.1230 +vn 0.9705 0.2330 0.0615 +vn 0.9650 0.2317 0.1231 +vn 0.9858 0.1561 0.0615 +vn 0.9802 0.1552 0.1230 +vn 0.9950 0.0783 0.0615 +vn 0.9893 0.0779 0.1230 +vn -0.4756 0.8776 0.0597 +vn -0.1842 0.9816 0.0508 +vn -0.1806 0.9778 0.1060 +vn -0.4724 0.8734 0.1184 +vn -0.4677 0.8715 0.1477 +vn -0.1733 0.9773 0.1218 +vn -0.6298 0.7743 0.0614 +vn -0.6262 0.7698 0.1234 +vn -0.5208 0.8515 0.0615 +vn -0.5853 0.8085 0.0615 +vn -0.5819 0.8039 0.1231 +vn -0.5178 0.8466 0.1231 +vn -0.4531 0.8893 0.0615 +vn -0.4505 0.8842 0.1230 +vn -0.3820 0.9221 0.0615 +vn -0.3798 0.9169 0.1230 +vn -0.3084 0.9493 0.0615 +vn -0.3067 0.9438 0.1231 +vn -0.2330 0.9705 0.0615 +vn -0.2317 0.9650 0.1231 +vn -0.1561 0.9858 0.0615 +vn -0.1552 0.9802 0.1230 +vn -0.0783 0.9950 0.0615 +vn -0.0779 0.9893 0.1230 +vn 0.0364 0.4620 0.8861 +vn 0.0000 0.4635 0.8861 +vn 0.0000 0.1354 0.9908 +vn 0.0106 0.1349 0.9908 +vn 0.0602 0.7655 0.6406 +vn 0.0000 0.7679 0.6406 +vn 0.0725 0.4577 0.8861 +vn 0.1201 0.7585 0.6406 +vn 0.0212 0.1337 0.9908 +vn 0.1082 0.4506 0.8861 +vn 0.0316 0.1316 0.9908 +vn 0.1793 0.7467 0.6406 +vn 0.1432 0.4408 0.8861 +vn 0.2373 0.7303 0.6406 +vn 0.0418 0.1287 0.9908 +vn 0.1773 0.4282 0.8861 +vn 0.0518 0.1250 0.9908 +vn 0.2939 0.7094 0.6406 +vn 0.2104 0.4129 0.8861 +vn 0.3486 0.6842 0.6406 +vn 0.0614 0.1206 0.9908 +vn 0.2421 0.3951 0.8861 +vn 0.0707 0.1154 0.9908 +vn 0.4012 0.6547 0.6406 +vn 0.2724 0.3749 0.8861 +vn 0.4514 0.6212 0.6406 +vn 0.0796 0.1095 0.9908 +vn 0.3010 0.3524 0.8861 +vn 0.0879 0.1029 0.9908 +vn 0.4987 0.5839 0.6406 +vn 0.3277 0.3277 0.8861 +vn 0.5430 0.5430 0.6406 +vn 0.0957 0.0957 0.9908 +vn 0.3524 0.3010 0.8861 +vn 0.1029 0.0879 0.9908 +vn 0.5839 0.4987 0.6406 +vn 0.3749 0.2724 0.8861 +vn 0.6212 0.4514 0.6406 +vn 0.1095 0.0796 0.9908 +vn 0.3951 0.2421 0.8861 +vn 0.1154 0.0707 0.9908 +vn 0.6547 0.4012 0.6406 +vn 0.4129 0.2104 0.8861 +vn 0.6842 0.3486 0.6406 +vn 0.1206 0.0614 0.9908 +vn 0.4282 0.1774 0.8861 +vn 0.1250 0.0518 0.9908 +vn 0.7094 0.2939 0.6406 +vn 0.4408 0.1432 0.8861 +vn 0.7303 0.2373 0.6406 +vn 0.1287 0.0418 0.9908 +vn 0.4506 0.1082 0.8861 +vn 0.1316 0.0316 0.9908 +vn 0.7467 0.1793 0.6406 +vn 0.4577 0.0725 0.8861 +vn 0.7584 0.1201 0.6406 +vn 0.1337 0.0212 0.9908 +vn 0.4620 0.0364 0.8861 +vn 0.1349 0.0106 0.9908 +vn 0.7655 0.0602 0.6406 +vn -0.1096 0.5150 0.8502 +vn 0.1676 0.6845 0.7095 +vn 0.3513 0.5031 0.7896 +vn 0.1033 0.2851 0.9529 +vn -0.3092 0.7245 0.6160 +vn -0.0097 0.8527 0.5223 +vn -0.2765 0.3687 0.8875 +vn -0.4772 0.6001 0.6420 +vn -0.0636 0.1234 0.9903 +vn -0.2417 0.3953 0.8862 +vn -0.2717 0.3754 0.8861 +vn -0.0794 0.1096 0.9908 +vn -0.0706 0.1154 0.9908 +vn -0.4007 0.6551 0.6406 +vn -0.4503 0.6220 0.6406 +vn -0.2104 0.4129 0.8861 +vn -0.3486 0.6842 0.6406 +vn -0.0614 0.1206 0.9908 +vn -0.1773 0.4282 0.8861 +vn -0.0518 0.1250 0.9908 +vn -0.2939 0.7095 0.6406 +vn -0.1432 0.4408 0.8861 +vn -0.2373 0.7303 0.6406 +vn -0.0418 0.1287 0.9908 +vn -0.1082 0.4506 0.8861 +vn -0.0316 0.1316 0.9908 +vn -0.1793 0.7467 0.6406 +vn -0.0725 0.4577 0.8861 +vn -0.1201 0.7585 0.6406 +vn -0.0212 0.1337 0.9908 +vn -0.0364 0.4620 0.8861 +vn -0.0106 0.1349 0.9908 +vn -0.0602 0.7655 0.6406 +vn 0.0073 0.0929 0.9957 +vn 0.0000 0.0932 0.9957 +vn 0.0146 0.0920 0.9957 +vn 0.0217 0.0906 0.9957 +vn 0.0288 0.0886 0.9957 +vn 0.0356 0.0861 0.9957 +vn 0.0423 0.0830 0.9957 +vn 0.0487 0.0794 0.9957 +vn 0.0547 0.0754 0.9957 +vn 0.0605 0.0708 0.9957 +vn 0.0659 0.0659 0.9957 +vn 0.0708 0.0605 0.9957 +vn 0.0754 0.0547 0.9957 +vn 0.0794 0.0487 0.9957 +vn 0.0830 0.0423 0.9957 +vn 0.0861 0.0357 0.9957 +vn 0.0886 0.0288 0.9957 +vn 0.0906 0.0217 0.9957 +vn 0.0920 0.0146 0.9957 +vn 0.0929 0.0073 0.9957 +vn 0.1461 0.2852 0.9473 +vn 0.3886 0.5149 0.7641 +vn 0.2056 0.2039 0.9572 +vn 0.4417 0.4404 0.7816 +vn -0.0343 0.1015 0.9942 +vn 0.0269 0.0258 0.9993 +vn -0.0486 0.0795 0.9956 +vn -0.0546 0.0754 0.9957 +vn -0.0423 0.0830 0.9957 +vn -0.0356 0.0861 0.9957 +vn -0.0288 0.0886 0.9957 +vn -0.0217 0.0906 0.9957 +vn -0.0146 0.0920 0.9957 +vn -0.0073 0.0929 0.9957 +vn 0.0775 0.9852 0.1526 +vn 0.0000 0.9883 0.1526 +vn -0.0000 1.0000 -0.0033 +vn 0.0785 0.9969 -0.0033 +vn 0.1546 0.9761 0.1526 +vn 0.1564 0.9877 -0.0033 +vn 0.2307 0.9610 0.1526 +vn 0.2334 0.9724 -0.0033 +vn 0.3054 0.9399 0.1526 +vn 0.3090 0.9511 -0.0033 +vn 0.3782 0.9131 0.1526 +vn 0.3827 0.9239 -0.0033 +vn 0.4487 0.8806 0.1526 +vn 0.4540 0.8910 -0.0033 +vn 0.5164 0.8427 0.1526 +vn 0.5225 0.8526 -0.0033 +vn 0.5809 0.7995 0.1526 +vn 0.5878 0.8090 -0.0033 +vn 0.6418 0.7515 0.1526 +vn 0.6494 0.7604 -0.0033 +vn 0.6988 0.6988 0.1526 +vn 0.7071 0.7071 -0.0032 +vn 0.7515 0.6418 0.1526 +vn 0.7604 0.6494 -0.0032 +vn 0.7995 0.5809 0.1526 +vn 0.8090 0.5878 -0.0033 +vn 0.8427 0.5164 0.1526 +vn 0.8526 0.5225 -0.0033 +vn 0.8806 0.4487 0.1526 +vn 0.8910 0.4540 -0.0033 +vn 0.9131 0.3782 0.1526 +vn 0.9239 0.3827 -0.0033 +vn 0.9399 0.3054 0.1526 +vn 0.9511 0.3090 -0.0033 +vn 0.9610 0.2307 0.1526 +vn 0.9724 0.2334 -0.0033 +vn 0.9761 0.1546 0.1526 +vn 0.9877 0.1564 -0.0033 +vn 0.9852 0.0775 0.1526 +vn 0.9969 0.0785 -0.0033 +vn -0.4709 0.8686 0.1543 +vn -0.0760 0.9776 0.1963 +vn -0.1186 0.9926 0.0251 +vn -0.4864 0.8737 -0.0016 +vn -0.6396 0.7526 0.1565 +vn -0.6494 0.7604 -0.0032 +vn -0.5157 0.8431 0.1526 +vn -0.5795 0.8006 0.1526 +vn -0.5864 0.8100 -0.0033 +vn -0.5218 0.8531 -0.0033 +vn -0.4487 0.8806 0.1526 +vn -0.4540 0.8910 -0.0033 +vn -0.3782 0.9131 0.1526 +vn -0.3827 0.9239 -0.0033 +vn -0.3054 0.9399 0.1526 +vn -0.3090 0.9511 -0.0033 +vn -0.2307 0.9610 0.1526 +vn -0.2334 0.9724 -0.0033 +vn -0.1546 0.9761 0.1526 +vn -0.1564 0.9877 -0.0033 +vn -0.0775 0.9852 0.1526 +vn -0.0785 0.9969 -0.0033 +vn 0.0015 0.0192 0.9998 +vn 0.0000 0.0193 0.9998 +vn 0.0030 0.0191 0.9998 +vn 0.0045 0.0188 0.9998 +vn 0.0060 0.0183 0.9998 +vn 0.0074 0.0178 0.9998 +vn 0.0088 0.0172 0.9998 +vn 0.0101 0.0164 0.9998 +vn 0.0113 0.0156 0.9998 +vn 0.0125 0.0147 0.9998 +vn 0.0136 0.0136 0.9998 +vn 0.0147 0.0125 0.9998 +vn 0.0156 0.0113 0.9998 +vn 0.0164 0.0101 0.9998 +vn 0.0172 0.0088 0.9998 +vn 0.0178 0.0074 0.9998 +vn 0.0183 0.0060 0.9998 +vn 0.0188 0.0045 0.9998 +vn 0.0191 0.0030 0.9998 +vn 0.0192 0.0015 0.9998 +vn 0.1862 0.2103 0.9597 +vn 0.4248 0.4452 0.7882 +vn 0.0129 0.0385 0.9992 +vn -0.0101 0.0164 0.9998 +vn -0.0113 0.0156 0.9998 +vn -0.0088 0.0172 0.9998 +vn -0.0074 0.0178 0.9998 +vn -0.0060 0.0183 0.9998 +vn -0.0045 0.0188 0.9998 +vn -0.0030 0.0191 0.9998 +vn -0.0015 0.0192 0.9998 +vn 0.0732 0.9305 0.3590 +vn 0.0000 0.9334 0.3590 +vn 0.1460 0.9219 0.3590 +vn 0.2179 0.9076 0.3590 +vn 0.2884 0.8877 0.3590 +vn 0.3572 0.8623 0.3590 +vn 0.4237 0.8316 0.3590 +vn 0.4877 0.7958 0.3590 +vn 0.5486 0.7551 0.3590 +vn 0.6062 0.7097 0.3590 +vn 0.6600 0.6600 0.3590 +vn 0.7097 0.6062 0.3590 +vn 0.7551 0.5486 0.3590 +vn 0.7958 0.4877 0.3590 +vn 0.8316 0.4237 0.3590 +vn 0.8623 0.3572 0.3590 +vn 0.8877 0.2884 0.3590 +vn 0.9076 0.2179 0.3590 +vn 0.9219 0.1460 0.3590 +vn 0.9305 0.0732 0.3590 +vn -0.4264 0.8373 0.3423 +vn -0.1295 0.9467 0.2949 +vn -0.5866 0.7256 0.3597 +vn -0.4870 0.7962 0.3590 +vn -0.5473 0.7560 0.3590 +vn -0.4237 0.8316 0.3590 +vn -0.3572 0.8623 0.3590 +vn -0.2884 0.8877 0.3590 +vn -0.2179 0.9076 0.3590 +vn -0.1460 0.9219 0.3590 +vn -0.0732 0.9305 0.3590 +vn -0.0213 -0.2712 0.9623 +vn 0.0000 -0.2720 0.9623 +vn 0.0000 -0.4434 0.8963 +vn -0.0348 -0.4420 0.8963 +vn -0.0426 -0.2687 0.9623 +vn -0.0694 -0.4379 0.8963 +vn -0.0635 -0.2645 0.9623 +vn -0.1035 -0.4311 0.8963 +vn -0.0841 -0.2587 0.9623 +vn -0.1370 -0.4217 0.8963 +vn -0.1041 -0.2513 0.9623 +vn -0.1697 -0.4096 0.8963 +vn -0.1235 -0.2424 0.9623 +vn -0.2013 -0.3950 0.8963 +vn -0.1421 -0.2320 0.9623 +vn -0.2317 -0.3780 0.8963 +vn -0.1599 -0.2201 0.9623 +vn -0.2606 -0.3587 0.8963 +vn -0.1767 -0.2069 0.9623 +vn -0.2879 -0.3371 0.8963 +vn -0.1924 -0.1924 0.9623 +vn -0.3135 -0.3135 0.8963 +vn -0.2069 -0.1767 0.9623 +vn -0.3371 -0.2879 0.8963 +vn -0.2201 -0.1599 0.9623 +vn -0.3587 -0.2606 0.8964 +vn -0.2320 -0.1421 0.9623 +vn -0.3780 -0.2317 0.8963 +vn -0.2424 -0.1235 0.9623 +vn -0.3950 -0.2013 0.8963 +vn -0.2513 -0.1041 0.9623 +vn -0.4096 -0.1697 0.8963 +vn -0.2587 -0.0841 0.9623 +vn -0.4216 -0.1370 0.8963 +vn -0.2645 -0.0635 0.9623 +vn -0.4311 -0.1035 0.8963 +vn -0.2687 -0.0426 0.9623 +vn -0.4379 -0.0694 0.8963 +vn -0.2712 -0.0213 0.9623 +vn -0.4420 -0.0348 0.8963 +vn 0.3084 -0.0666 0.9489 +vn 0.5019 0.1709 0.8479 +vn 0.6290 0.0941 0.7717 +vn 0.4334 -0.1785 0.8833 +vn 0.1910 -0.1925 0.9625 +vn 0.3062 -0.3238 0.8952 +vn 0.1419 -0.2321 0.9623 +vn 0.1595 -0.2203 0.9623 +vn 0.2600 -0.3591 0.8964 +vn 0.2314 -0.3783 0.8963 +vn 0.1235 -0.2424 0.9623 +vn 0.2013 -0.3950 0.8963 +vn 0.1041 -0.2513 0.9623 +vn 0.1697 -0.4096 0.8963 +vn 0.0841 -0.2587 0.9623 +vn 0.1370 -0.4217 0.8963 +vn 0.0635 -0.2645 0.9623 +vn 0.1035 -0.4311 0.8963 +vn 0.0426 -0.2687 0.9623 +vn 0.0694 -0.4379 0.8963 +vn 0.0213 -0.2712 0.9623 +vn 0.0348 -0.4420 0.8963 +vn -0.0732 -0.9298 0.3608 +vn 0.0000 -0.9326 0.3608 +vn -0.1459 -0.9212 0.3608 +vn -0.2177 -0.9069 0.3608 +vn -0.2882 -0.8870 0.3608 +vn -0.3569 -0.8616 0.3608 +vn -0.4234 -0.8310 0.3608 +vn -0.4873 -0.7952 0.3608 +vn -0.5482 -0.7545 0.3608 +vn -0.6057 -0.7092 0.3608 +vn -0.6595 -0.6595 0.3608 +vn -0.7092 -0.6057 0.3608 +vn -0.7545 -0.5482 0.3608 +vn -0.7952 -0.4873 0.3608 +vn -0.8310 -0.4234 0.3608 +vn -0.8616 -0.3569 0.3608 +vn -0.8870 -0.2882 0.3608 +vn -0.9069 -0.2177 0.3608 +vn -0.9212 -0.1459 0.3608 +vn -0.9298 -0.0732 0.3608 +vn 0.7620 -0.5407 0.3564 +vn 0.9285 -0.2200 0.2993 +vn 0.8483 -0.1170 0.5165 +vn 0.6732 -0.4304 0.6014 +vn 0.6240 -0.6929 0.3614 +vn 0.4866 -0.7956 0.3609 +vn 0.5469 -0.7555 0.3608 +vn 0.4234 -0.8310 0.3608 +vn 0.3569 -0.8616 0.3608 +vn 0.2882 -0.8870 0.3608 +vn 0.2177 -0.9069 0.3608 +vn 0.1459 -0.9212 0.3608 +vn 0.0732 -0.9298 0.3608 +vn -0.0577 -0.7330 0.6777 +vn 0.0000 -0.7353 0.6778 +vn -0.1150 -0.7262 0.6778 +vn -0.1717 -0.7150 0.6777 +vn -0.2272 -0.6993 0.6777 +vn -0.2814 -0.6793 0.6777 +vn -0.3338 -0.6552 0.6777 +vn -0.3842 -0.6270 0.6777 +vn -0.4322 -0.5949 0.6777 +vn -0.4775 -0.5591 0.6777 +vn -0.5199 -0.5199 0.6777 +vn -0.5591 -0.4775 0.6777 +vn -0.5949 -0.4322 0.6777 +vn -0.6270 -0.3842 0.6777 +vn -0.6552 -0.3338 0.6777 +vn -0.6793 -0.2814 0.6777 +vn -0.6993 -0.2272 0.6777 +vn -0.7150 -0.1717 0.6777 +vn -0.7262 -0.1150 0.6777 +vn -0.7330 -0.0577 0.6777 +vn 0.6365 -0.3912 0.6647 +vn 0.8160 -0.0730 0.5735 +vn 0.4969 -0.5447 0.6756 +vn 0.3837 -0.6273 0.6777 +vn 0.4311 -0.5956 0.6778 +vn 0.3338 -0.6552 0.6777 +vn 0.2814 -0.6793 0.6777 +vn 0.2272 -0.6993 0.6778 +vn 0.1717 -0.7150 0.6777 +vn 0.1150 -0.7262 0.6778 +vn 0.0577 -0.7330 0.6777 +vn 0.3795 -0.0819 0.9216 +vn 0.5855 0.1915 0.7877 +vn 0.4057 0.7581 0.5105 +vn 0.1645 0.6693 0.7246 +vn 0.5048 0.6699 0.5445 +vn 0.3050 0.8543 0.4209 +vn 0.0433 0.8004 0.5980 +vn 0.5946 0.7704 0.2300 +vn 0.5180 0.8228 0.2337 +vn 0.6591 0.7190 0.2207 +vn 0.1955 0.9522 0.2348 +vn -0.0981 0.9278 0.3600 +vn 0.1788 0.9809 0.0761 +vn 0.5102 0.8519 0.1183 +vn 0.5255 0.8503 0.0287 +vn 0.8221 0.3297 0.4642 +vn 0.7422 0.0165 0.6700 +vn 0.9092 0.2143 0.3569 +vn 0.7148 0.4597 0.5270 +vn 0.7996 0.5650 0.2035 +vn 0.7394 0.6403 0.2082 +vn 0.8597 0.4753 0.1872 +vn 0.9713 0.1403 0.1922 +vn 0.9872 0.1495 0.0563 +vn 0.8659 0.4911 0.0955 +vn 0.8562 0.5163 0.0188 +vn 0.6208 0.5583 0.5504 +vn 0.5690 0.6082 0.5534 +vn 0.7039 0.6803 0.2044 +vn 0.6849 0.6968 0.2133 +vn 0.1869 0.9818 0.0337 +vn 0.5365 0.8438 0.0126 +vn 0.1985 0.9771 0.0770 +vn 0.5439 0.8387 0.0284 +vn 0.9859 0.1665 0.0178 +vn 0.8498 0.5270 0.0058 +vn 0.9850 0.1725 0.0100 +vn 0.8468 0.5319 0.0032 +vn 0.2428 0.9477 0.2072 +vn 0.3126 0.8772 0.3644 +vn 0.5571 0.8270 0.0752 +vn 0.5704 0.8086 0.1441 +vn 0.5780 0.5939 0.5597 +vn 0.5452 0.6354 0.5468 +vn 0.5867 0.5864 0.5586 +vn 0.6752 0.6848 0.2743 +vn 0.6796 0.6797 0.2760 +vn 0.6614 0.7197 0.2111 +vn 0.5348 0.6436 0.5476 +vn 0.4101 0.7802 0.4723 +vn 0.6397 0.7163 0.2786 +vn 0.4893 0.8415 0.2290 +vn 0.4162 0.7574 0.5031 +vn 0.5876 0.7722 0.2417 +vn 0.2199 0.9211 0.3212 +vn 0.2208 0.9681 0.1186 +vn 0.2031 0.9789 0.0211 +vn -0.1422 0.9898 0.0013 +vn 0.2003 0.9797 -0.0017 +vn -0.1437 0.9896 -0.0026 +vn 0.5194 0.8531 0.0502 +vn 0.5229 0.8524 -0.0006 +vn 0.6583 0.4274 0.6196 +vn 0.6768 0.3578 0.6434 +vn 0.7585 0.4067 0.5092 +vn 0.7194 0.6289 0.2949 +vn 0.7576 0.6341 0.1549 +vn 0.7265 0.5956 0.3428 +vn 0.7965 0.1672 0.5810 +vn 0.9141 0.0087 0.4053 +vn 0.8090 0.4677 0.3561 +vn 0.9061 0.2863 0.3113 +vn 0.9680 -0.0504 0.2460 +vn 0.9947 -0.0374 0.0961 +vn 0.9246 0.3425 0.1668 +vn 0.9282 0.3698 0.0422 +vn 0.8721 0.3178 0.3722 +vn 0.9424 0.2298 0.2430 +vn 0.7936 0.5958 0.1232 +vn 0.8162 0.5731 0.0734 +vn 0.9699 0.1889 0.1539 +vn 0.9798 0.1849 0.0759 +vn 0.8290 0.5571 0.0494 +vn 0.8360 0.5481 0.0260 +vn 0.9993 -0.0005 0.0364 +vn 0.9199 0.3921 0.0115 +vn 0.9992 0.0303 0.0258 +vn 0.9132 0.4074 0.0057 +vn 0.7044 0.7074 0.0584 +vn 0.7053 0.7082 0.0300 +vn 0.7058 0.7059 0.0598 +vn 0.7071 0.7072 0.0000 +vn 0.6814 0.7292 0.0623 +vn 0.6869 0.7267 -0.0000 +vn 0.7275 0.6861 0.0052 +vn 0.7251 0.6886 0.0073 +vn 0.7296 0.6838 0.0027 +vn 0.7070 0.7072 -0.0000 +vn -0.0784 -0.9961 0.0403 +vn 0.0000 -0.9992 0.0403 +vn -0.1563 -0.9869 0.0403 +vn -0.2333 -0.9716 0.0403 +vn -0.3088 -0.9503 0.0403 +vn -0.3824 -0.9231 0.0403 +vn -0.4536 -0.8903 0.0403 +vn -0.5221 -0.8519 0.0403 +vn -0.5873 -0.8084 0.0403 +vn -0.6489 -0.7598 0.0403 +vn -0.7065 -0.7065 0.0403 +vn -0.7598 -0.6489 0.0403 +vn -0.8084 -0.5873 0.0403 +vn -0.8519 -0.5221 0.0403 +vn -0.8903 -0.4536 0.0403 +vn -0.9231 -0.3824 0.0403 +vn -0.9503 -0.3088 0.0403 +vn -0.9716 -0.2333 0.0403 +vn -0.9869 -0.1563 0.0403 +vn -0.9961 -0.0784 0.0403 +vn 0.8079 -0.5880 0.0406 +vn 0.9686 -0.2460 0.0363 +vn 0.6674 -0.7435 0.0407 +vn 0.5213 -0.8524 0.0403 +vn 0.5859 -0.8094 0.0403 +vn 0.4536 -0.8903 0.0403 +vn 0.3824 -0.9231 0.0403 +vn 0.3088 -0.9503 0.0403 +vn 0.2333 -0.9716 0.0403 +vn 0.1563 -0.9869 0.0403 +vn 0.0784 -0.9961 0.0403 +vn 0.9830 0.1816 0.0250 +vn 0.8419 0.5396 0.0086 +vn 0.7320 0.6813 0.0007 +vn 0.7334 0.6798 0.0001 +vn 0.7340 0.6791 0.0006 +vn 0.7364 0.6765 0.0031 +vn 0.6890 0.7241 0.0306 +vn 0.6865 0.7269 0.0197 +vn 0.7015 0.7126 0.0109 +vn 0.6853 0.7282 0.0101 +vn 0.6829 0.7305 0.0041 +vn 0.6813 0.7320 0.0019 +vn 0.6790 0.7341 0.0041 +vn 0.6669 0.7431 0.0554 +vn 0.7028 0.7103 0.0395 +vn 0.7065 0.7068 0.0351 +vn 0.7085 0.7049 0.0332 +vn 0.7133 0.7000 0.0356 +vn 0.7508 0.6589 0.0469 +vn 0.0785 0.9969 -0.0028 +vn -0.0000 1.0000 -0.0028 +vn -0.0000 1.0000 -0.0026 +vn 0.0785 0.9969 -0.0026 +vn 0.0785 0.9969 -0.0031 +vn 0.0000 1.0000 -0.0031 +vn 0.1564 0.9877 -0.0029 +vn 0.1564 0.9877 -0.0031 +vn 0.1564 0.9877 -0.0026 +vn 0.2334 0.9724 -0.0029 +vn 0.2334 0.9724 -0.0026 +vn 0.2334 0.9724 -0.0031 +vn 0.3090 0.9511 -0.0029 +vn 0.3090 0.9511 -0.0031 +vn 0.3090 0.9511 -0.0026 +vn 0.3827 0.9239 -0.0029 +vn 0.3827 0.9239 -0.0026 +vn 0.3827 0.9239 -0.0031 +vn 0.4540 0.8910 -0.0028 +vn 0.4540 0.8910 -0.0031 +vn 0.4540 0.8910 -0.0026 +vn 0.5225 0.8526 -0.0029 +vn 0.5225 0.8526 -0.0026 +vn 0.5225 0.8526 -0.0031 +vn 0.5878 0.8090 -0.0029 +vn 0.5878 0.8090 -0.0031 +vn 0.5878 0.8090 -0.0026 +vn 0.6494 0.7604 -0.0029 +vn 0.6494 0.7604 -0.0025 +vn 0.6494 0.7604 -0.0031 +vn 0.7071 0.7071 -0.0029 +vn 0.7071 0.7071 -0.0031 +vn 0.7071 0.7071 -0.0025 +vn 0.7604 0.6494 -0.0028 +vn 0.7604 0.6494 -0.0025 +vn 0.7604 0.6494 -0.0031 +vn 0.8090 0.5878 -0.0029 +vn 0.8090 0.5878 -0.0031 +vn 0.8090 0.5878 -0.0026 +vn 0.8526 0.5225 -0.0029 +vn 0.8526 0.5225 -0.0026 +vn 0.8526 0.5225 -0.0031 +vn 0.8910 0.4540 -0.0028 +vn 0.8910 0.4540 -0.0031 +vn 0.8910 0.4540 -0.0026 +vn 0.9239 0.3827 -0.0029 +vn 0.9239 0.3827 -0.0026 +vn 0.9239 0.3827 -0.0031 +vn 0.9511 0.3090 -0.0029 +vn 0.9511 0.3090 -0.0031 +vn 0.9511 0.3090 -0.0026 +vn 0.9724 0.2334 -0.0029 +vn 0.9724 0.2334 -0.0026 +vn 0.9724 0.2334 -0.0031 +vn 0.9877 0.1564 -0.0029 +vn 0.9877 0.1564 -0.0031 +vn 0.9877 0.1564 -0.0025 +vn 0.9969 0.0785 -0.0028 +vn 0.9969 0.0785 -0.0025 +vn 0.9969 0.0785 -0.0031 +vn -0.4914 0.8709 -0.0028 +vn -0.1437 0.9896 -0.0023 +vn -0.1435 0.9896 -0.0021 +vn -0.4914 0.8709 -0.0025 +vn -0.4915 0.8709 -0.0030 +vn -0.6494 0.7604 -0.0028 +vn -0.6495 0.7604 -0.0031 +vn -0.6495 0.7604 -0.0025 +vn -0.5218 0.8531 -0.0029 +vn -0.5864 0.8100 -0.0029 +vn -0.5864 0.8100 -0.0026 +vn -0.5218 0.8531 -0.0026 +vn -0.5218 0.8531 -0.0031 +vn -0.5864 0.8100 -0.0031 +vn -0.4540 0.8910 -0.0028 +vn -0.4540 0.8910 -0.0031 +vn -0.4540 0.8910 -0.0026 +vn -0.3827 0.9239 -0.0029 +vn -0.3827 0.9239 -0.0026 +vn -0.3827 0.9239 -0.0031 +vn -0.3090 0.9511 -0.0029 +vn -0.3090 0.9511 -0.0031 +vn -0.3090 0.9511 -0.0025 +vn -0.2334 0.9724 -0.0029 +vn -0.2334 0.9724 -0.0026 +vn -0.2334 0.9724 -0.0031 +vn -0.1564 0.9877 -0.0029 +vn -0.1564 0.9877 -0.0031 +vn -0.1564 0.9877 -0.0026 +vn -0.0785 0.9969 -0.0029 +vn -0.0785 0.9969 -0.0026 +vn -0.0785 0.9969 -0.0031 +vn 0.1999 0.9798 -0.0013 +vn -0.1434 0.9897 -0.0019 +vn 0.1998 0.9798 -0.0016 +vn 0.1998 0.9798 -0.0012 +vn 0.5221 0.8529 -0.0004 +vn 0.5220 0.8529 -0.0004 +vn 0.5224 0.8527 -0.0005 +vn 0.6868 0.7268 -0.0000 +vn 0.6868 0.7269 -0.0000 +vn 0.5915 0.5914 -0.5481 +vn 0.1609 0.1607 -0.9738 +vn 0.1623 0.1621 -0.9733 +vn 0.5922 0.5921 -0.5466 +vn 0.5909 0.5909 -0.5492 +vn 0.1599 0.1596 -0.9741 +vn 0.6436 0.5463 -0.5360 +vn 0.1803 0.1516 -0.9718 +vn 0.7813 0.3693 -0.5032 +vn 0.2460 0.1132 -0.9626 +vn 0.7636 0.6457 -0.0002 +vn 0.7866 0.6092 0.1008 +vn 0.7697 0.6384 0.0076 +vn 0.7146 0.6952 0.0777 +vn 0.7104 0.7010 0.0637 +vn 0.7105 0.7030 0.0316 +vn 0.5929 0.5928 -0.5450 +vn 0.1638 0.1635 -0.9728 +vn 0.1653 0.1650 -0.9723 +vn 0.5937 0.5936 -0.5433 +vn 0.1667 0.1666 -0.9718 +vn 0.1734 0.1730 -0.9695 +vn 0.5976 0.5973 -0.5349 +vn 0.5943 0.5943 -0.5418 +vn 0.1749 0.1747 -0.9690 +vn 0.5984 0.5982 -0.5330 +vn 0.7103 0.7039 0.0041 +vn 0.7157 0.6984 0.0027 +vn 0.2002 0.9798 -0.0015 +vn 0.5226 0.8526 -0.0005 +vn 0.6869 0.7268 -0.0000 +vn 0.0785 0.9969 -0.0032 +vn -0.0000 1.0000 -0.0032 +vn 0.3090 0.9511 -0.0032 +vn 0.3827 0.9239 -0.0032 +vn 0.5225 0.8526 -0.0032 +vn 0.5878 0.8090 -0.0032 +vn 0.7071 0.7071 -0.0033 +vn 0.7604 0.6494 -0.0033 +vn 0.8090 0.5878 -0.0032 +vn 0.8526 0.5225 -0.0032 +vn 0.9239 0.3827 -0.0032 +vn 0.9511 0.3090 -0.0032 +vn 0.9724 0.2334 -0.0032 +vn 0.9969 0.0785 -0.0032 +vn -0.4915 0.8709 -0.0031 +vn -0.6495 0.7604 -0.0033 +vn -0.5218 0.8531 -0.0032 +vn -0.5864 0.8100 -0.0032 +vn -0.3827 0.9239 -0.0032 +vn -0.3090 0.9511 -0.0032 +vn -0.0785 0.9969 -0.0032 +vn 0.7213 0.6926 0.0104 +vn -0.6337 0.7735 -0.0024 +vn -0.6337 0.7735 -0.0025 +vn -0.6495 0.7604 -0.0024 +vn -0.6337 0.7735 -0.0023 +vn -0.3804 0.4704 0.7963 +vn -0.2165 0.2716 0.9378 +vn -0.5381 0.6602 0.5240 +vn -0.0328 0.0449 0.9985 +vn 0.6355 -0.7712 0.0359 +vn 0.6359 -0.7716 0.0185 +vn 0.6307 -0.7651 0.1295 +vn 0.6076 -0.7385 0.2922 +vn 0.6271 -0.7623 0.1600 +vn 0.5734 -0.6967 0.4310 +vn -0.3965 0.8063 0.4389 +vn -0.2465 0.6506 0.7183 +vn 0.5551 -0.2852 0.7814 +vn -0.1072 0.4931 0.8634 +vn 0.6164 -0.7482 0.2454 +vn 0.5759 -0.6987 0.4244 +vn 0.6317 -0.7667 0.1148 +vn 0.4683 -0.5683 0.6766 +vn 0.2654 -0.3206 0.9093 +vn 0.5936 -0.7209 -0.3577 +vn 0.2669 -0.3243 -0.9075 +vn 0.2799 -0.3143 -0.9071 +vn 0.6204 -0.6979 -0.3577 +vn 0.5479 -0.7568 -0.3564 +vn 0.2479 -0.3424 -0.9063 +vn 0.6337 -0.7699 0.0750 +vn -0.6303 0.7739 0.0615 +vn -0.6267 0.7694 0.1232 +vn -0.2896 0.3590 0.8873 +vn -0.4837 0.5955 0.6414 +vn -0.0823 0.1064 0.9909 +vn -0.0563 0.0760 0.9955 +vn 0.0032 0.0029 1.0000 +vn -0.6259 0.7648 0.1526 +vn -0.6337 0.7735 -0.0033 +vn -0.0091 0.0175 0.9998 +vn -0.5890 0.7237 0.3596 +vn 0.1742 -0.2092 0.9622 +vn 0.2840 -0.3424 0.8956 +vn 0.5932 -0.7194 0.3612 +vn 0.4688 -0.5678 0.6766 +vn 0.0556 -0.0631 0.9965 +vn 0.6354 -0.7711 0.0403 +vn -0.6337 0.7735 -0.0029 +vn -0.6337 0.7735 -0.0031 +vn -0.6337 0.7735 -0.0032 +vn 0.0319 -0.0388 -0.9987 +vn 0.0297 -0.0410 -0.9987 +vn 0.0336 -0.0378 -0.9987 +vn -0.0196 0.0321 -0.9993 +vn -0.0220 0.0304 -0.9993 +vn -0.0171 0.0335 -0.9993 +vn 0.0194 -0.0468 -0.9987 +vn 0.1617 -0.3905 -0.9063 +vn 0.1306 -0.4020 -0.9063 +vn 0.0157 -0.0482 -0.9987 +vn 0.0230 -0.0451 -0.9987 +vn 0.1919 -0.3766 -0.9063 +vn -0.0088 0.0365 -0.9993 +vn -0.0116 0.0357 -0.9993 +vn -0.0059 0.0371 -0.9993 +vn 0.0040 -0.0505 -0.9987 +vn 0.0332 -0.4212 -0.9064 +vn 0.0000 -0.4228 -0.9062 +vn -0.0000 -0.0507 -0.9987 +vn 0.0079 -0.0500 -0.9987 +vn 0.0661 -0.4176 -0.9062 +vn 0.0029 0.0375 -0.9993 +vn -0.0000 0.0376 -0.9993 +vn 0.0059 0.0371 -0.9993 +vn -0.0118 -0.0492 -0.9987 +vn -0.0987 -0.4111 -0.9062 +vn -0.1306 -0.4020 -0.9063 +vn -0.0157 -0.0482 -0.9987 +vn -0.0079 -0.0500 -0.9987 +vn -0.0661 -0.4176 -0.9062 +vn -0.0194 -0.0468 -0.9987 +vn -0.1617 -0.3905 -0.9063 +vn -0.1919 -0.3766 -0.9063 +vn -0.0230 -0.0451 -0.9987 +vn 0.0196 0.0320 -0.9993 +vn 0.0171 0.0335 -0.9993 +vn 0.0221 0.0304 -0.9993 +vn -0.0329 -0.0385 -0.9987 +vn -0.2745 -0.3214 -0.9063 +vn -0.2989 -0.2989 -0.9063 +vn -0.0358 -0.0358 -0.9987 +vn -0.0298 -0.0410 -0.9987 +vn -0.2482 -0.3419 -0.9063 +vn 0.0286 0.0244 -0.9993 +vn 0.0266 0.0266 -0.9993 +vn 0.0304 0.0221 -0.9993 +vn -0.0431 -0.0264 -0.9987 +vn -0.3604 -0.2208 -0.9063 +vn -0.3766 -0.1919 -0.9063 +vn -0.0450 -0.0229 -0.9987 +vn -0.0409 -0.0297 -0.9987 +vn -0.3420 -0.2484 -0.9063 +vn 0.0347 0.0144 -0.9993 +vn 0.0335 0.0171 -0.9993 +vn 0.0357 0.0116 -0.9993 +vn -0.0491 -0.0118 -0.9987 +vn -0.4109 -0.0987 -0.9063 +vn -0.4175 -0.0661 -0.9063 +vn -0.0499 -0.0079 -0.9987 +vn -0.0481 -0.0156 -0.9987 +vn -0.4019 -0.1306 -0.9063 +vn 0.0375 0.0029 -0.9993 +vn 0.0371 0.0059 -0.9993 +vn -0.0242 0.0294 -0.9993 +vn -0.0253 0.0294 -0.9992 +vn -0.2107 0.2571 -0.9431 +vn -0.0144 0.0347 -0.9993 +vn -0.0029 0.0375 -0.9993 +vn 0.0088 0.0365 -0.9993 +vn 0.0116 0.0357 -0.9993 +vn 0.0144 0.0347 -0.9993 +vn 0.0244 0.0286 -0.9993 +vn 0.0320 0.0196 -0.9993 +vn 0.0365 0.0088 -0.9993 +vn 0.0264 -0.0432 -0.9987 +vn 0.2205 -0.3604 -0.9064 +vn 0.0118 -0.0492 -0.9987 +vn 0.0987 -0.4111 -0.9063 +vn -0.0040 -0.0505 -0.9987 +vn -0.0332 -0.4212 -0.9064 +vn -0.0265 -0.0432 -0.9987 +vn -0.2209 -0.3604 -0.9063 +vn -0.0384 -0.0328 -0.9987 +vn -0.3214 -0.2745 -0.9063 +vn -0.0467 -0.0193 -0.9987 +vn -0.3904 -0.1617 -0.9063 +vn -0.0504 -0.0040 -0.9987 +vn -0.4214 -0.0332 -0.9063 +vn 0.0827 -0.0257 -0.9962 +vn 0.4168 -0.0266 -0.9086 +vn 0.4561 -0.1564 -0.8761 +vn 0.3928 -0.2753 -0.8774 +vn 0.0257 0.0147 -0.9996 +vn -0.0060 0.0718 -0.9974 +vn 0.0757 0.4529 -0.8883 +vn 0.1609 0.2714 -0.9489 +vn 0.0198 0.0262 -0.9995 +vn 0.0208 0.0215 -0.9996 +vn 0.1883 0.1987 -0.9618 +vn 0.1888 0.1885 -0.9637 +vn 0.0208 0.0204 -0.9996 +vn 0.0200 0.0198 -0.9996 +vn 0.1838 0.1836 -0.9657 +vn 0.1790 0.1788 -0.9675 +vn 0.0194 0.0193 -0.9996 +vn 0.0191 0.0190 -0.9996 +vn 0.1767 0.1764 -0.9683 +vn 0.0188 0.0187 -0.9996 +vn 0.0185 0.0184 -0.9997 +vn 0.0180 0.0179 -0.9997 +vn 0.0177 0.0176 -0.9997 +vn 0.0175 0.0174 -0.9997 +vn 0.0173 0.0172 -0.9997 +vn 0.0171 0.0170 -0.9997 +vn 0.0170 0.0169 -0.9997 +vn 0.0188 0.0165 -0.9997 +vn 0.0785 0.9969 -0.0023 +vn 0.1564 0.9877 -0.0023 +vn 0.2334 0.9724 -0.0023 +vn 0.7604 0.6494 -0.0024 +vn 0.8090 0.5878 -0.0024 +vn 0.8526 0.5225 -0.0024 +vn 0.8910 0.4540 -0.0024 +vn 0.9239 0.3827 -0.0023 +vn 0.9877 0.1564 -0.0023 +vn -0.4540 0.8910 -0.0024 +vn -0.3827 0.9239 -0.0023 +vn -0.1564 0.9877 -0.0023 +vn -0.0785 0.9969 -0.0023 +vn -0.0733 -0.9315 -0.3563 +vn 0.0000 -0.9344 -0.3563 +vn -0.1462 -0.9229 -0.3563 +vn -0.2181 -0.9085 -0.3563 +vn -0.2887 -0.8886 -0.3564 +vn -0.3576 -0.8632 -0.3564 +vn -0.4242 -0.8325 -0.3564 +vn -0.4882 -0.7967 -0.3564 +vn -0.5492 -0.7559 -0.3563 +vn -0.6068 -0.7105 -0.3563 +vn -0.6607 -0.6607 -0.3563 +vn -0.7105 -0.6068 -0.3563 +vn -0.7559 -0.5492 -0.3563 +vn -0.7967 -0.4882 -0.3564 +vn -0.8325 -0.4242 -0.3564 +vn -0.8632 -0.3576 -0.3564 +vn -0.8886 -0.2887 -0.3564 +vn -0.9085 -0.2181 -0.3564 +vn -0.9228 -0.1462 -0.3564 +vn -0.9315 -0.0733 -0.3563 +vn 0.7319 -0.5967 -0.3292 +vn 0.8838 -0.2873 -0.3692 +vn 0.4875 -0.7970 -0.3565 +vn 0.4242 -0.8325 -0.3564 +vn 0.3576 -0.8632 -0.3564 +vn 0.2887 -0.8886 -0.3564 +vn 0.2181 -0.9085 -0.3564 +vn 0.1462 -0.9229 -0.3563 +vn 0.0733 -0.9315 -0.3563 +vn 0.9017 0.0570 -0.4286 +vn 0.2086 0.8956 -0.3929 +vn 0.4644 0.7446 -0.4795 +vn 0.6027 0.6026 -0.5232 +vn 0.6049 0.6048 -0.5180 +vn 0.6003 0.6002 -0.5287 +vn 0.5904 0.6243 -0.5115 +vn 0.5990 0.5989 -0.5316 +vn 0.7643 0.6448 0.0008 +vn -0.5605 0.6842 -0.4667 +vn 0.6327 -0.7690 0.0913 +vn -0.3054 0.9469 0.1009 +vn -0.4924 0.8678 0.0668 +vn -0.4996 0.8586 0.1151 +vn -0.3166 0.9327 0.1726 +vn -0.1100 0.9853 0.1305 +vn -0.1248 0.9671 0.2217 +vn -0.1059 0.9926 0.0594 +vn -0.3028 0.9520 0.0452 +vn -0.4911 0.8706 0.0294 +vn -0.9676 0.1447 0.2069 +vn -0.8366 -0.4250 0.3457 +vn -0.8385 -0.4287 0.3362 +vn -0.9698 0.1382 0.2010 +vn -0.9287 0.3447 0.1370 +vn -0.9293 0.3458 0.1299 +vn -0.9217 0.3508 0.1657 +vn -0.9565 0.1631 0.2420 +vn -0.8216 -0.4072 0.3990 +vn 0.8072 -0.5703 0.1525 +vn 0.6919 -0.7102 0.1302 +vn 0.7001 -0.7115 0.0595 +vn 0.8176 -0.5715 0.0706 +vn 0.8846 -0.4351 0.1679 +vn 0.8965 -0.4360 0.0784 +vn 0.8544 -0.4357 0.2831 +vn 0.7796 -0.5705 0.2583 +vn 0.6684 -0.7100 0.2215 +vn -0.0402 -0.8405 0.5403 +vn -0.0291 -0.9345 0.3548 +vn -0.0590 -0.9342 0.3518 +vn -0.0825 -0.8412 0.5344 +vn -0.0619 -0.3808 0.9226 +vn -0.1278 -0.3801 0.9161 +vn -0.0063 -0.3813 0.9244 +vn -0.0056 -0.8402 0.5423 +vn -0.0052 -0.9347 0.3555 +vn -0.5031 -0.8392 0.2065 +vn -0.3227 -0.9366 0.1365 +vn -0.3225 -0.9377 0.1290 +vn -0.5095 -0.8369 0.1999 +vn -0.8587 -0.3790 0.3450 +vn -0.8632 -0.3774 0.3353 +vn -0.8348 -0.3804 0.3981 +vn -0.4822 -0.8419 0.2421 +vn -0.3133 -0.9352 0.1653 +vn 0.0712 0.9857 0.1529 +vn 0.2248 0.9598 0.1682 +vn 0.2318 0.9696 0.0784 +vn 0.0769 0.9945 0.0705 +vn 0.0536 0.9645 0.2585 +vn 0.2052 0.9368 0.2833 +vn 0.3479 0.9205 0.1778 +vn 0.4439 0.8771 0.1835 +vn 0.4524 0.8876 0.0867 +vn 0.3557 0.9309 0.0835 +vn 0.3270 0.8966 0.2986 +vn 0.4224 0.8527 0.3074 +vn 0.0256 0.9322 0.3611 +vn 0.1745 0.9018 0.3954 +vn -0.1488 0.9390 0.3100 +vn -0.1773 0.9071 0.3817 +vn -0.0076 0.8955 0.4450 +vn 0.1383 0.8621 0.4875 +vn -0.3352 0.9106 0.2417 +vn -0.5121 0.8436 0.1614 +vn -0.5269 0.8265 0.1984 +vn -0.3574 0.8854 0.2973 +vn 0.5184 0.8345 0.1866 +vn 0.5765 0.7952 0.1880 +vn 0.5856 0.8057 0.0896 +vn 0.5273 0.8451 0.0886 +vn 0.4965 0.8100 0.3120 +vn 0.5544 0.7707 0.3141 +vn -0.3801 0.8595 0.3419 +vn -0.2066 0.8742 0.4394 +vn -0.5418 0.8090 0.2278 +vn -0.5565 0.7918 0.2518 +vn -0.4024 0.8337 0.3781 +vn -0.2356 0.8414 0.4863 +vn -0.3034 0.8698 0.3890 +vn 0.2609 0.7514 0.6061 +vn 0.2235 0.7069 0.6710 +vn -0.3272 0.8410 0.4310 +vn -0.2799 0.8986 0.3379 +vn 0.2982 0.7959 0.5269 +vn -0.3505 0.8130 0.4650 +vn -0.5707 0.7751 0.2712 +vn 0.1869 0.6639 0.7241 +vn 0.1520 0.6232 0.7671 +vn -0.3727 0.7864 0.4925 +vn -0.5839 0.7594 0.2869 +vn -0.3938 0.7617 0.5146 +vn -0.5963 0.7448 0.2995 +vn 0.1191 0.5853 0.8020 +vn 0.0881 0.5504 0.8302 +vn -0.4136 0.7388 0.5321 +vn -0.6076 0.7313 0.3097 +vn -0.4238 0.8089 0.4074 +vn -0.2634 0.8098 0.5242 +vn -0.4439 0.7856 0.4311 +vn -0.2896 0.7800 0.5548 +vn -0.0419 0.8575 0.5128 +vn 0.1007 0.8208 0.5623 +vn -0.0759 0.8196 0.5679 +vn 0.0634 0.7795 0.6232 +vn 0.2947 0.8600 0.4165 +vn 0.3891 0.8154 0.4285 +vn 0.2568 0.8186 0.5138 +vn 0.3503 0.7730 0.5289 +vn 0.4628 0.7725 0.4349 +vn 0.5205 0.7331 0.4377 +vn 0.4237 0.7296 0.5369 +vn 0.4813 0.6900 0.5405 +vn 0.2172 0.7753 0.5931 +vn 0.3097 0.7285 0.6110 +vn 0.1779 0.7319 0.6577 +vn 0.2693 0.6841 0.6779 +vn -0.1086 0.7830 0.6125 +vn 0.0274 0.7396 0.6725 +vn -0.1393 0.7484 0.6485 +vn -0.0065 0.7019 0.7123 +vn 0.6266 0.7562 0.1885 +vn 0.6546 0.7322 0.1884 +vn 0.6639 0.7424 0.0900 +vn 0.6358 0.7666 0.0899 +vn 0.6045 0.7318 0.3147 +vn 0.6325 0.7079 0.3144 +vn 0.5706 0.6944 0.4385 +vn 0.5987 0.6706 0.4381 +vn 0.5315 0.6513 0.5416 +vn 0.5597 0.6276 0.5412 +vn 0.3826 0.6845 0.6205 +vn 0.4401 0.6448 0.6250 +vn 0.3416 0.6395 0.6887 +vn 0.3989 0.5995 0.6939 +vn 0.6703 0.7179 0.1882 +vn 0.6797 0.7280 0.0900 +vn 0.6479 0.6940 0.3141 +vn 0.6755 0.6671 0.3140 +vn 0.6988 0.6901 0.1882 +vn 0.7086 0.6998 0.0900 +vn 0.1399 0.6901 0.7101 +vn 0.2302 0.6411 0.7321 +vn 0.1041 0.6505 0.7524 +vn 0.1933 0.6004 0.7760 +vn -0.4627 0.7638 0.4501 +vn -0.3139 0.7522 0.5794 +vn -0.4800 0.7436 0.4655 +vn -0.3364 0.7264 0.5993 +vn -0.4322 0.7177 0.5460 +vn 0.0591 0.5185 0.8530 +vn 0.0320 0.4894 0.8715 +vn -0.4496 0.6985 0.5567 +vn -0.6181 0.7189 0.3180 +vn -0.6277 0.7075 0.3247 +vn -0.4644 0.6823 0.5646 +vn -0.6359 0.6978 0.3296 +vn 0.0083 0.4652 0.8852 +vn -0.0125 0.4449 0.8955 +vn -0.4778 0.6687 0.5697 +vn -0.6428 0.6896 0.3335 +vn -0.4958 0.7251 0.4779 +vn -0.3570 0.7027 0.6154 +vn -0.5104 0.7081 0.4880 +vn -0.3759 0.6810 0.6284 +vn -0.1680 0.7161 0.6775 +vn -0.0381 0.6667 0.7444 +vn -0.1944 0.6863 0.7009 +vn -0.0672 0.6341 0.7703 +vn 0.3020 0.5960 0.7441 +vn 0.3591 0.5557 0.7498 +vn 0.2645 0.5547 0.7889 +vn 0.3215 0.5141 0.7952 +vn 0.0707 0.6135 0.7865 +vn 0.1589 0.5624 0.8114 +vn 0.0398 0.5792 0.8142 +vn 0.1270 0.5273 0.8402 +vn -0.2188 0.6588 0.7198 +vn -0.0941 0.6041 0.7913 +vn -0.2410 0.6336 0.7352 +vn -0.1187 0.5766 0.8084 +vn -0.5228 0.6937 0.4955 +vn -0.3921 0.6626 0.6382 +vn -0.5333 0.6814 0.5013 +vn -0.4057 0.6469 0.6457 +vn 0.0114 0.5477 0.8366 +vn 0.0977 0.4948 0.8635 +vn -0.0147 0.5187 0.8548 +vn 0.0707 0.4650 0.8825 +vn -0.2600 0.6122 0.7467 +vn -0.1396 0.5532 0.8212 +vn -0.2762 0.5939 0.7556 +vn -0.1575 0.5333 0.8312 +vn -0.5434 0.6695 0.5065 +vn -0.4189 0.6317 0.6523 +vn -0.6494 0.6817 0.3370 +vn -0.6553 0.6748 0.3396 +vn -0.5523 0.6592 0.5104 +vn -0.4304 0.6185 0.6575 +vn -0.4908 0.6557 0.5738 +vn -0.0327 0.4254 0.9044 +vn -0.0506 0.4086 0.9113 +vn -0.5019 0.6444 0.5769 +vn -0.5121 0.6351 0.5783 +vn -0.6602 0.6689 0.3416 +vn -0.0666 0.3950 0.9163 +vn -0.0821 0.3825 0.9203 +vn -0.5219 0.6265 0.5789 +vn -0.6648 0.6634 0.3434 +vn -0.5314 0.6187 0.5787 +vn -0.6691 0.6582 0.3450 +vn -0.0973 0.3711 0.9235 +vn -0.1121 0.3609 0.9258 +vn -0.5406 0.6115 0.5777 +vn -0.6732 0.6533 0.3464 +vn -0.5597 0.6504 0.5135 +vn -0.4401 0.6073 0.6615 +vn -0.5667 0.6421 0.5162 +vn -0.4492 0.5967 0.6649 +vn -0.2917 0.5763 0.7634 +vn -0.1746 0.5140 0.8398 +vn -0.3052 0.5610 0.7695 +vn -0.1897 0.4972 0.8466 +vn -0.5497 0.6050 0.5760 +vn -0.6771 0.6487 0.3475 +vn -0.1267 0.3518 0.9275 +vn -0.1412 0.3437 0.9284 +vn -0.5585 0.5992 0.5736 +vn -0.6807 0.6444 0.3485 +vn -0.5733 0.6344 0.5185 +vn -0.4578 0.5868 0.6679 +vn -0.5795 0.6271 0.5205 +vn -0.4658 0.5775 0.6705 +vn -0.3167 0.5479 0.7742 +vn -0.2023 0.4830 0.8519 +vn -0.3275 0.5357 0.7783 +vn -0.2143 0.4696 0.8565 +vn -0.0369 0.4942 0.8686 +vn 0.0478 0.4398 0.8968 +vn -0.0558 0.4732 0.8792 +vn 0.0283 0.4181 0.9079 +vn -0.0740 0.4529 0.8885 +vn 0.0095 0.3973 0.9176 +vn -0.0899 0.4352 0.8958 +vn -0.0070 0.3791 0.9253 +vn -0.1034 0.4202 0.9015 +vn -0.0209 0.3636 0.9313 +vn -0.1160 0.4061 0.9064 +vn -0.0340 0.3491 0.9365 +vn 0.1167 0.3917 0.9127 +vn 0.1726 0.3501 0.9207 +vn 0.1961 0.3760 0.9056 +vn 0.1400 0.4174 0.8979 +vn 0.0968 0.3697 0.9241 +vn 0.1525 0.3280 0.9323 +vn 0.0776 0.3486 0.9341 +vn 0.1332 0.3067 0.9424 +vn 0.0609 0.3301 0.9420 +vn 0.1163 0.2880 0.9505 +vn 0.1674 0.4476 0.8784 +vn 0.2237 0.4064 0.8859 +vn 0.2537 0.4395 0.8617 +vn 0.1972 0.4805 0.8545 +vn 0.2295 0.5162 0.8251 +vn 0.2863 0.4754 0.8319 +vn 0.2734 0.3676 0.8889 +vn 0.3020 0.3442 0.8890 +vn 0.3322 0.3773 0.8645 +vn 0.3036 0.4007 0.8645 +vn 0.2456 0.3372 0.9088 +vn 0.2742 0.3139 0.9090 +vn 0.3363 0.4366 0.8344 +vn 0.3649 0.4132 0.8344 +vn 0.4001 0.4519 0.7973 +vn 0.3716 0.4754 0.7975 +vn 0.4093 0.5169 0.7519 +vn 0.4378 0.4934 0.7516 +vn 0.4775 0.5371 0.6953 +vn 0.4491 0.5607 0.6956 +vn 0.4903 0.6060 0.6264 +vn 0.5187 0.5823 0.6260 +vn 0.4502 0.4825 0.7513 +vn 0.4906 0.5257 0.6950 +vn 0.4120 0.4416 0.7970 +vn 0.4299 0.4243 0.7970 +vn 0.4697 0.4637 0.7512 +vn 0.5118 0.5053 0.6948 +vn 0.6136 0.6572 0.4377 +vn 0.5740 0.6149 0.5408 +vn 0.5986 0.5911 0.5407 +vn 0.6398 0.6318 0.4376 +vn 0.5323 0.5703 0.6256 +vn 0.5552 0.5482 0.6255 +vn 0.3763 0.4034 0.8341 +vn 0.3431 0.3679 0.8642 +vn 0.3582 0.3534 0.8642 +vn 0.3927 0.3875 0.8340 +vn 0.7296 0.6575 0.1882 +vn 0.7399 0.6667 0.0900 +vn 0.7053 0.6356 0.3140 +vn 0.7339 0.6023 0.3140 +vn 0.7592 0.6231 0.1882 +vn 0.7699 0.6318 0.0900 +vn 0.7889 0.5851 0.1882 +vn 0.7999 0.5933 0.0900 +vn 0.7626 0.5656 0.3140 +vn 0.7894 0.5275 0.3140 +vn 0.8166 0.5456 0.1882 +vn 0.8281 0.5533 0.0900 +vn 0.6680 0.6019 0.4376 +vn 0.6249 0.5631 0.5407 +vn 0.6503 0.5337 0.5407 +vn 0.6951 0.5704 0.4376 +vn 0.8424 0.5049 0.1882 +vn 0.8543 0.5120 0.0900 +vn 0.8143 0.4881 0.3140 +vn 0.8373 0.4476 0.3140 +vn 0.8662 0.4630 0.1882 +vn 0.8783 0.4695 0.0900 +vn 0.8878 0.4199 0.1882 +vn 0.9003 0.4258 0.0900 +vn 0.8583 0.4059 0.3140 +vn 0.8771 0.3633 0.3140 +vn 0.9074 0.3758 0.1882 +vn 0.9201 0.3811 0.0900 +vn 0.7222 0.5356 0.4376 +vn 0.6757 0.5011 0.5407 +vn 0.6994 0.4674 0.5407 +vn 0.7476 0.4996 0.4376 +vn 0.7712 0.4623 0.4376 +vn 0.7216 0.4325 0.5407 +vn 0.7419 0.3966 0.5407 +vn 0.7930 0.4239 0.4376 +vn 0.8128 0.3844 0.4376 +vn 0.7605 0.3597 0.5406 +vn 0.7772 0.3219 0.5407 +vn 0.8307 0.3441 0.4376 +vn 0.6692 0.4011 0.6255 +vn 0.6168 0.3697 0.6949 +vn 0.6342 0.3390 0.6949 +vn 0.6881 0.3678 0.6255 +vn 0.6487 0.4335 0.6255 +vn 0.5979 0.3995 0.6949 +vn 0.7053 0.3336 0.6255 +vn 0.6501 0.3075 0.6949 +vn 0.6644 0.2752 0.6949 +vn 0.7208 0.2986 0.6255 +vn 0.9247 0.3309 0.1882 +vn 0.9377 0.3355 0.0900 +vn 0.8939 0.3198 0.3140 +vn 0.9085 0.2756 0.3140 +vn 0.9398 0.2851 0.1882 +vn 0.9531 0.2891 0.0900 +vn 0.9527 0.2386 0.1882 +vn 0.9661 0.2420 0.0900 +vn 0.9210 0.2307 0.3140 +vn 0.9312 0.1852 0.3140 +vn 0.9633 0.1916 0.1882 +vn 0.9768 0.1943 0.0900 +vn 0.8466 0.3029 0.4376 +vn 0.7921 0.2834 0.5406 +vn 0.8050 0.2442 0.5406 +vn 0.8605 0.2610 0.4376 +vn 0.9711 0.1469 0.1882 +vn 0.9847 0.1489 0.0900 +vn 0.9387 0.1420 0.3140 +vn 0.9443 0.0990 0.3140 +vn 0.9768 0.1024 0.1882 +vn 0.9905 0.1038 0.0900 +vn 0.8722 0.2185 0.4376 +vn 0.8160 0.2044 0.5406 +vn 0.8251 0.1641 0.5406 +vn 0.8819 0.1754 0.4376 +vn 0.9801 0.0627 0.1882 +vn 0.9939 0.0636 0.0900 +vn 0.9475 0.0606 0.3141 +vn 0.9485 0.0399 0.3144 +vn 0.9812 0.0415 0.1884 +vn 0.9951 0.0422 0.0900 +vn 0.8891 0.1345 0.4376 +vn 0.8318 0.1258 0.5407 +vn 0.8366 0.0877 0.5407 +vn 0.8943 0.0937 0.4376 +vn 0.9821 0.0046 0.1884 +vn 0.9804 -0.0589 0.1879 +vn 0.9946 -0.0586 0.0855 +vn 0.9959 0.0052 0.0900 +vn 0.9492 0.0030 0.3147 +vn 0.9475 -0.0603 0.3141 +vn 0.8973 0.0573 0.4377 +vn 0.8395 0.0536 0.5407 +vn 0.8402 0.0345 0.5412 +vn 0.8982 0.0374 0.4381 +vn 0.8988 0.0006 0.4384 +vn 0.8969 -0.0627 0.4377 +vn 0.8407 -0.0023 0.5415 +vn 0.8388 -0.0657 0.5405 +vn 0.9740 -0.1287 0.1864 +vn 0.9596 -0.2133 0.1833 +vn 0.9729 -0.2133 0.0891 +vn 0.9877 -0.1286 0.0886 +vn 0.9412 -0.1301 0.3119 +vn 0.9271 -0.2144 0.3073 +vn 0.9323 -0.3151 0.1776 +vn 0.9452 -0.3156 0.0835 +vn 0.9006 -0.3160 0.2985 +vn 0.8518 -0.3178 0.4164 +vn 0.8079 -0.4372 0.3953 +vn 0.8772 -0.2165 0.4285 +vn 0.8198 -0.2195 0.5289 +vn 0.7957 -0.3208 0.5138 +vn 0.7541 -0.4400 0.4875 +vn 0.7795 -0.0054 0.6264 +vn 0.7776 -0.0688 0.6250 +vn 0.7792 0.0315 0.6260 +vn 0.7181 0.0284 0.6953 +vn 0.7184 -0.0085 0.6956 +vn 0.7165 -0.0719 0.6939 +vn 0.7785 0.0497 0.6256 +vn 0.7176 0.0457 0.6950 +vn 0.7759 0.0814 0.6255 +vn 0.7152 0.0751 0.6949 +vn 0.7718 -0.1385 0.6206 +vn 0.7597 -0.2227 0.6110 +vn 0.8327 -0.1353 0.5369 +vn 0.7110 -0.1416 0.6888 +vn 0.6996 -0.2258 0.6779 +vn 0.7714 0.1167 0.6256 +vn 0.7110 0.1076 0.6949 +vn 0.7652 0.1522 0.6255 +vn 0.7053 0.1403 0.6949 +vn 0.6592 -0.0115 0.7519 +vn 0.6574 -0.0749 0.7498 +vn 0.6591 0.0255 0.7516 +vn 0.6031 0.0226 0.7973 +vn 0.6032 -0.0144 0.7975 +vn 0.6014 -0.0777 0.7952 +vn 0.6586 0.0419 0.7513 +vn 0.6028 0.0383 0.7970 +vn 0.6564 0.0689 0.7512 +vn 0.6008 0.0631 0.7969 +vn 0.7568 0.1896 0.6255 +vn 0.6976 0.1747 0.6949 +vn 0.7466 0.2265 0.6255 +vn 0.6882 0.2088 0.6949 +vn 0.6526 0.0988 0.7512 +vn 0.5972 0.0904 0.7970 +vn 0.6474 0.1288 0.7512 +vn 0.5925 0.1178 0.7969 +vn 0.7346 0.2628 0.6255 +vn 0.6771 0.2423 0.6949 +vn 0.6403 0.1604 0.7512 +vn 0.5860 0.1468 0.7969 +vn 0.6316 0.1916 0.7512 +vn 0.5781 0.1754 0.7969 +vn 0.6215 0.2224 0.7512 +vn 0.5688 0.2035 0.7969 +vn 0.6098 0.2526 0.7512 +vn 0.5581 0.2312 0.7969 +vn 0.5967 0.2822 0.7512 +vn 0.5461 0.2583 0.7969 +vn 0.5821 0.3111 0.7512 +vn 0.5327 0.2848 0.7969 +vn 0.5352 0.1341 0.8340 +vn 0.4881 0.1223 0.8642 +vn 0.4935 0.0982 0.8642 +vn 0.5411 0.1076 0.8340 +vn 0.5280 0.1602 0.8340 +vn 0.4815 0.1461 0.8642 +vn 0.5195 0.1859 0.8340 +vn 0.4738 0.1695 0.8642 +vn 0.5097 0.2111 0.8340 +vn 0.4649 0.1926 0.8642 +vn 0.5455 0.0826 0.8340 +vn 0.4975 0.0754 0.8642 +vn 0.5004 0.0527 0.8642 +vn 0.5487 0.0577 0.8340 +vn 0.5505 0.0349 0.8341 +vn 0.5021 0.0318 0.8642 +vn 0.5024 0.0175 0.8645 +vn 0.5509 0.0200 0.8344 +vn 0.4532 0.0687 0.8887 +vn 0.4125 0.0626 0.9088 +vn 0.4150 0.0438 0.9088 +vn 0.4559 0.0481 0.8887 +vn 0.4496 0.0894 0.8887 +vn 0.4093 0.0814 0.9088 +vn 0.5508 -0.0171 0.8344 +vn 0.5491 -0.0803 0.8319 +vn 0.5023 -0.0196 0.8645 +vn 0.5007 -0.0827 0.8617 +vn 0.4574 0.0289 0.8888 +vn 0.4164 0.0262 0.9088 +vn 0.4166 0.0129 0.9090 +vn 0.4577 0.0151 0.8890 +vn 0.4576 -0.0219 0.8889 +vn 0.4560 -0.0849 0.8859 +vn 0.4165 -0.0241 0.9088 +vn 0.4150 -0.0870 0.9057 +vn 0.6522 -0.1446 0.7441 +vn 0.6416 -0.2288 0.7321 +vn 0.5966 -0.1474 0.7889 +vn 0.5868 -0.2315 0.7759 +vn 0.5446 -0.1500 0.8251 +vn 0.5356 -0.2340 0.8114 +vn 0.4965 -0.1524 0.8545 +vn 0.4881 -0.2363 0.8402 +vn 0.7370 -0.3239 0.5932 +vn 0.6983 -0.4428 0.5624 +vn 0.6786 -0.3268 0.6578 +vn 0.6427 -0.4455 0.6233 +vn 0.7369 -0.5716 0.3610 +vn 0.6316 -0.7107 0.3099 +vn 0.6874 -0.5739 0.4450 +vn 0.5887 -0.7125 0.3818 +vn 0.6222 -0.3296 0.7101 +vn 0.5891 -0.4480 0.6725 +vn 0.5688 -0.3322 0.7524 +vn 0.5384 -0.4503 0.7123 +vn 0.6362 -0.5764 0.5128 +vn 0.5446 -0.7143 0.4395 +vn 0.5854 -0.5786 0.5680 +vn 0.5010 -0.7159 0.4864 +vn 0.4913 -0.8368 0.2415 +vn 0.3273 -0.9311 0.1613 +vn 0.3468 -0.9309 0.1149 +vn 0.5202 -0.8365 0.1724 +vn 0.4576 -0.8380 0.2974 +vn 0.3046 -0.9316 0.1984 +vn 0.5530 -0.7871 0.2733 +vn 0.8615 -0.2748 0.4271 +vn 0.9125 -0.2752 0.3028 +vn 0.5840 -0.7883 0.1936 +vn 0.5172 -0.7863 0.3380 +vn 0.8042 -0.2749 0.5269 +vn 0.4232 -0.8391 0.3419 +vn 0.2816 -0.9321 0.2279 +vn 0.3892 -0.8399 0.3782 +vn 0.2590 -0.9325 0.2518 +vn 0.5364 -0.5806 0.6125 +vn 0.4589 -0.7174 0.5242 +vn 0.4901 -0.5825 0.6485 +vn 0.4192 -0.7186 0.5548 +vn 0.4800 -0.7862 0.3892 +vn 0.7462 -0.2755 0.6060 +vn 0.4426 -0.7863 0.4311 +vn 0.6881 -0.2761 0.6710 +vn 0.3564 -0.8408 0.4074 +vn 0.2371 -0.9329 0.2712 +vn 0.3256 -0.8415 0.4311 +vn 0.2166 -0.9331 0.2869 +vn 0.4062 -0.7865 0.4652 +vn 0.6317 -0.2770 0.7240 +vn 0.3716 -0.7869 0.4927 +vn 0.5782 -0.2782 0.7670 +vn 0.4470 -0.5842 0.6775 +vn 0.3822 -0.7198 0.5794 +vn 0.4912 -0.4524 0.7444 +vn 0.4475 -0.4543 0.7703 +vn 0.4071 -0.5857 0.7009 +vn 0.3481 -0.7209 0.5993 +vn 0.3390 -0.7875 0.5147 +vn 0.5279 -0.2796 0.8020 +vn 0.1975 -0.9334 0.2995 +vn 0.1798 -0.9336 0.3098 +vn 0.3088 -0.7882 0.5323 +vn 0.4813 -0.2814 0.8302 +vn 0.2968 -0.8422 0.4501 +vn 0.2703 -0.8428 0.4655 +vn 0.2807 -0.7893 0.5461 +vn 0.4383 -0.2836 0.8529 +vn 0.1636 -0.9339 0.3180 +vn 0.1487 -0.9340 0.3247 +vn 0.2548 -0.7905 0.5569 +vn 0.3986 -0.2861 0.8714 +vn 0.2459 -0.8433 0.4779 +vn 0.3167 -0.7218 0.6154 +vn 0.2879 -0.7226 0.6284 +vn 0.2236 -0.8437 0.4880 +vn 0.2329 -0.7917 0.5648 +vn 0.3649 -0.2890 0.8851 +vn 0.1361 -0.9343 0.3296 +vn 0.1253 -0.9344 0.3335 +vn 0.2139 -0.7935 0.5698 +vn 0.3360 -0.2923 0.8954 +vn 0.1956 -0.7952 0.5740 +vn 0.3081 -0.2955 0.9043 +vn 0.1150 -0.9345 0.3369 +vn 0.1059 -0.9346 0.3396 +vn 0.1798 -0.7966 0.5771 +vn 0.2837 -0.2987 0.9112 +vn 0.2045 -0.8442 0.4955 +vn 0.2635 -0.7234 0.6382 +vn 0.2426 -0.7240 0.6457 +vn 0.1884 -0.8445 0.5013 +vn 0.1728 -0.8447 0.5065 +vn 0.2226 -0.7245 0.6523 +vn 0.2050 -0.7251 0.6575 +vn 0.1592 -0.8451 0.5104 +vn 0.1477 -0.8453 0.5135 +vn 0.0982 -0.9347 0.3416 +vn 0.1902 -0.7254 0.6615 +vn 0.1763 -0.7258 0.6649 +vn 0.1369 -0.8455 0.5162 +vn 0.0911 -0.9347 0.3435 +vn 0.2605 -0.5911 0.7634 +vn 0.2865 -0.4611 0.8398 +vn 0.2640 -0.4620 0.8467 +vn 0.2400 -0.5918 0.7695 +vn 0.2839 -0.5903 0.7556 +vn 0.3123 -0.4600 0.8312 +vn 0.2226 -0.5924 0.7743 +vn 0.2450 -0.4628 0.8519 +vn 0.2271 -0.4635 0.8565 +vn 0.2063 -0.5930 0.7783 +vn 0.3083 -0.5894 0.7467 +vn 0.3391 -0.4589 0.8212 +vn 0.3368 -0.5883 0.7352 +vn 0.3704 -0.4575 0.8084 +vn 0.3705 -0.5870 0.7198 +vn 0.4073 -0.4560 0.7913 +vn 0.3031 -0.3445 0.8885 +vn 0.3131 -0.2447 0.9177 +vn 0.2886 -0.2459 0.9253 +vn 0.2794 -0.3456 0.8958 +vn 0.3304 -0.3433 0.8792 +vn 0.3412 -0.2434 0.9079 +vn 0.3586 -0.3420 0.8686 +vn 0.3703 -0.2420 0.8968 +vn 0.3917 -0.3405 0.8548 +vn 0.4044 -0.2403 0.8825 +vn 0.4306 -0.3387 0.8366 +vn 0.4445 -0.2384 0.8635 +vn 0.4730 -0.3367 0.8142 +vn 0.5191 -0.3346 0.7865 +vn 0.4522 -0.1546 0.8784 +vn 0.4114 -0.1566 0.8979 +vn 0.3768 -0.1583 0.9127 +vn 0.3801 -0.0887 0.9207 +vn 0.3503 -0.0901 0.9323 +vn 0.3472 -0.1597 0.9241 +vn 0.3815 -0.0260 0.9240 +vn 0.3817 0.0110 0.9242 +vn 0.3518 0.0093 0.9360 +vn 0.3516 -0.0276 0.9357 +vn 0.3814 0.0239 0.9241 +vn 0.3516 0.0220 0.9359 +vn 0.3801 0.0402 0.9241 +vn 0.3504 0.0372 0.9359 +vn 0.3187 -0.1611 0.9341 +vn 0.3216 -0.0916 0.9424 +vn 0.2964 -0.0928 0.9505 +vn 0.2938 -0.1623 0.9420 +vn 0.3228 -0.0292 0.9460 +vn 0.3230 0.0077 0.9464 +vn 0.2978 0.0062 0.9546 +vn 0.2976 -0.0307 0.9542 +vn 0.3228 0.0201 0.9463 +vn 0.2976 0.0185 0.9545 +vn 0.3217 0.0342 0.9462 +vn 0.2965 0.0316 0.9545 +vn 0.3779 0.0573 0.9241 +vn 0.3483 0.0529 0.9359 +vn 0.3749 0.0746 0.9241 +vn 0.3456 0.0687 0.9359 +vn 0.4447 0.1114 0.8887 +vn 0.4048 0.1014 0.9088 +vn 0.4387 0.1331 0.8887 +vn 0.3993 0.1211 0.9088 +vn 0.3198 0.0486 0.9462 +vn 0.2948 0.0448 0.9545 +vn 0.3173 0.0631 0.9462 +vn 0.2925 0.0582 0.9545 +vn 0.3708 0.0929 0.9241 +vn 0.3418 0.0856 0.9359 +vn 0.3658 0.1110 0.9241 +vn 0.3372 0.1023 0.9359 +vn 0.2762 0.0171 0.9609 +vn 0.2561 0.0157 0.9665 +vn 0.2563 0.0036 0.9666 +vn 0.2764 0.0049 0.9610 +vn 0.2752 0.0294 0.9609 +vn 0.2552 0.0274 0.9665 +vn 0.2762 -0.0320 0.9606 +vn 0.2751 -0.0938 0.9568 +vn 0.2561 -0.0332 0.9661 +vn 0.2551 -0.0948 0.9623 +vn 0.2726 -0.1634 0.9481 +vn 0.2678 -0.2469 0.9313 +vn 0.2528 -0.1643 0.9535 +vn 0.2482 -0.2478 0.9365 +vn 0.2736 0.0416 0.9609 +vn 0.2537 0.0386 0.9665 +vn 0.2715 0.0540 0.9609 +vn 0.2517 0.0501 0.9665 +vn 0.2372 -0.0345 0.9708 +vn 0.2362 -0.0957 0.9670 +vn 0.2374 0.0023 0.9714 +vn 0.2196 0.0009 0.9756 +vn 0.2194 -0.0357 0.9750 +vn 0.2185 -0.0966 0.9710 +vn 0.2372 0.0145 0.9713 +vn 0.2194 0.0133 0.9755 +vn 0.2364 0.0254 0.9713 +vn 0.2186 0.0236 0.9755 +vn 0.2592 -0.3465 0.9015 +vn 0.2403 -0.3473 0.9064 +vn 0.2341 -0.1652 0.9581 +vn 0.2299 -0.2486 0.9409 +vn 0.2164 -0.1661 0.9621 +vn 0.2125 -0.2494 0.9448 +vn 0.2225 -0.3481 0.9107 +vn 0.2102 -0.4642 0.8604 +vn 0.2057 -0.3488 0.9143 +vn 0.1943 -0.4648 0.8638 +vn 0.1910 -0.5935 0.7819 +vn 0.1632 -0.7261 0.6679 +vn 0.1766 -0.5939 0.7849 +vn 0.1509 -0.7264 0.6705 +vn 0.1998 -0.1668 0.9655 +vn 0.1962 -0.2502 0.9481 +vn 0.2017 -0.0974 0.9746 +vn 0.1859 -0.0982 0.9777 +vn 0.1841 -0.1676 0.9685 +vn 0.1808 -0.2509 0.9510 +vn 0.1267 -0.8456 0.5185 +vn 0.0843 -0.9348 0.3450 +vn 0.1171 -0.8458 0.5205 +vn 0.0779 -0.9349 0.3464 +vn 0.1899 -0.3495 0.9175 +vn 0.1794 -0.4654 0.8667 +vn 0.1750 -0.3502 0.9202 +vn 0.1653 -0.4659 0.8692 +vn 0.1630 -0.5944 0.7875 +vn 0.1392 -0.7267 0.6727 +vn 0.1502 -0.5948 0.7897 +vn 0.1283 -0.7270 0.6745 +vn 0.1412 -0.8031 0.5789 +vn 0.2252 -0.3110 0.9234 +vn 0.2435 -0.3065 0.9202 +vn 0.1533 -0.8007 0.5791 +vn 0.1298 -0.8057 0.5779 +vn 0.2078 -0.3160 0.9257 +vn 0.1661 -0.7986 0.5785 +vn 0.2630 -0.3024 0.9162 +vn 0.1081 -0.8459 0.5222 +vn 0.0719 -0.9349 0.3475 +vn 0.0996 -0.8461 0.5237 +vn 0.0663 -0.9350 0.3485 +vn 0.1190 -0.8086 0.5762 +vn 0.1915 -0.3215 0.9273 +vn 0.1089 -0.8117 0.5738 +vn 0.1761 -0.3276 0.9283 +vn 0.0993 -0.8151 0.5707 +vn 0.1615 -0.3343 0.9285 +vn 0.0609 -0.9350 0.3493 +vn 0.0559 -0.9350 0.3501 +vn 0.0902 -0.8189 0.5668 +vn 0.1476 -0.3417 0.9281 +vn 0.0915 -0.8462 0.5249 +vn 0.1179 -0.7272 0.6762 +vn 0.1081 -0.7275 0.6775 +vn 0.0839 -0.8463 0.5260 +vn 0.0767 -0.8464 0.5270 +vn 0.0511 -0.9351 0.3507 +vn 0.0988 -0.7277 0.6787 +vn 0.0901 -0.7279 0.6797 +vn 0.0699 -0.8465 0.5277 +vn 0.0465 -0.9351 0.3512 +vn 0.1380 -0.5952 0.7916 +vn 0.1519 -0.4665 0.8714 +vn 0.1393 -0.4670 0.8732 +vn 0.1266 -0.5956 0.7932 +vn 0.1157 -0.5960 0.7946 +vn 0.1274 -0.4674 0.8748 +vn 0.1161 -0.4679 0.8761 +vn 0.1054 -0.5963 0.7958 +vn 0.1609 -0.3508 0.9225 +vn 0.1662 -0.2516 0.9535 +vn 0.1525 -0.2522 0.9556 +vn 0.1475 -0.3514 0.9245 +vn 0.1349 -0.3519 0.9263 +vn 0.1394 -0.2528 0.9574 +vn 0.1270 -0.2534 0.9590 +vn 0.1229 -0.3524 0.9277 +vn 0.1693 -0.1683 0.9711 +vn 0.1709 -0.0989 0.9803 +vn 0.1568 -0.0996 0.9826 +vn 0.1553 -0.1690 0.9733 +vn 0.1420 -0.1696 0.9752 +vn 0.1434 -0.1003 0.9846 +vn 0.1307 -0.1009 0.9863 +vn 0.1294 -0.1702 0.9769 +vn 0.1142 -0.3529 0.9287 +vn 0.1079 -0.4682 0.8770 +vn 0.1181 -0.2538 0.9600 +vn 0.1143 -0.2540 0.9604 +vn 0.1106 -0.3530 0.9291 +vn 0.1044 -0.4684 0.8773 +vn 0.1203 -0.1707 0.9780 +vn 0.1215 -0.1013 0.9874 +vn 0.1175 -0.1015 0.9879 +vn 0.1164 -0.1708 0.9784 +vn 0.1440 -0.0425 0.9887 +vn 0.1442 -0.0067 0.9895 +vn 0.1315 -0.0088 0.9913 +vn 0.1313 -0.0442 0.9904 +vn 0.1575 -0.0409 0.9867 +vn 0.1577 -0.0049 0.9875 +vn 0.0980 -0.5966 0.7965 +vn 0.0837 -0.7282 0.6802 +vn 0.0948 -0.5967 0.7968 +vn 0.0810 -0.7283 0.6805 +vn 0.1220 -0.0460 0.9915 +vn 0.1223 -0.0112 0.9924 +vn 0.1183 -0.0133 0.9929 +vn 0.1181 -0.0475 0.9919 +vn 0.0650 -0.8467 0.5281 +vn 0.0432 -0.9352 0.3514 +vn 0.0629 -0.8468 0.5282 +vn 0.0419 -0.9353 0.3515 +vn 0.0816 -0.8230 0.5621 +vn 0.0735 -0.8275 0.5566 +vn 0.1345 -0.3499 0.9271 +vn 0.1221 -0.3590 0.9253 +vn 0.0675 -0.8321 0.5505 +vn 0.1130 -0.3689 0.9226 +vn 0.0647 -0.8359 0.5451 +vn 0.1091 -0.3769 0.9198 +vn 0.0811 -0.5967 0.7984 +vn 0.0695 -0.7280 0.6820 +vn 0.0890 -0.4686 0.8789 +vn 0.0609 -0.4696 0.8808 +vn 0.0558 -0.5974 0.8000 +vn 0.0481 -0.7284 0.6834 +vn 0.0556 -0.8386 0.5419 +vn 0.0947 -0.3806 0.9199 +vn 0.0362 -0.9350 0.3529 +vn 0.0256 -0.9350 0.3537 +vn 0.0398 -0.8387 0.5431 +vn 0.0681 -0.3807 0.9222 +vn 0.0541 -0.8464 0.5298 +vn 0.0378 -0.8466 0.5309 +vn 0.0211 -0.8393 0.5432 +vn 0.0375 -0.3810 0.9238 +vn 0.0130 -0.9349 0.3547 +vn 0.0185 -0.8465 0.5320 +vn 0.0227 -0.7286 0.6846 +vn -0.0139 -0.7288 0.6846 +vn -0.0095 -0.8464 0.5325 +vn 0.0255 -0.5979 0.8012 +vn 0.0272 -0.4705 0.8820 +vn -0.0210 -0.4718 0.8815 +vn -0.0179 -0.5986 0.8008 +vn -0.0463 -0.8463 0.5306 +vn -0.0622 -0.7292 0.6815 +vn -0.1223 -0.7297 0.6728 +vn -0.0924 -0.8462 0.5247 +vn -0.0750 -0.5997 0.7967 +vn -0.0845 -0.4736 0.8767 +vn -0.1634 -0.4758 0.8643 +vn -0.1462 -0.6011 0.7857 +vn -0.1492 -0.8463 0.5114 +vn -0.1956 -0.7304 0.6544 +vn -0.2791 -0.7316 0.6220 +vn -0.2147 -0.8466 0.4871 +vn -0.0966 -0.9339 0.3441 +vn -0.1406 -0.9339 0.3288 +vn -0.1362 -0.8422 0.5217 +vn -0.2115 -0.3795 0.9007 +vn -0.2005 -0.8431 0.4989 +vn -0.3128 -0.3788 0.8710 +vn -0.2320 -0.6028 0.7634 +vn -0.2580 -0.4785 0.8393 +vn -0.3646 -0.4818 0.7968 +vn -0.3291 -0.6050 0.7250 +vn -0.4329 -0.6075 0.6660 +vn -0.3695 -0.7330 0.5712 +vn -0.4775 -0.4854 0.7324 +vn -0.5857 -0.4893 0.6462 +vn -0.5323 -0.6104 0.5866 +vn -0.4563 -0.7348 0.5019 +vn -0.5070 -0.3753 0.7759 +vn -0.5257 -0.2802 0.8032 +vn -0.6431 -0.2854 0.7106 +vn -0.6209 -0.3799 0.6857 +vn -0.3882 -0.3708 0.8437 +vn -0.4033 -0.2750 0.8728 +vn -0.2755 -0.3666 0.8887 +vn -0.2866 -0.2702 0.9192 +vn -0.1751 -0.3630 0.9152 +vn -0.1827 -0.2660 0.9465 +vn -0.0911 -0.3601 0.9285 +vn -0.0954 -0.2625 0.9602 +vn -0.0234 -0.3577 0.9335 +vn -0.0251 -0.2596 0.9654 +vn -0.5370 -0.1998 0.8196 +vn -0.5435 -0.1323 0.8289 +vn -0.6643 -0.1381 0.7346 +vn -0.6566 -0.2053 0.7258 +vn -0.4124 -0.1942 0.8901 +vn -0.4177 -0.1264 0.8998 +vn 0.0280 -0.3559 0.9341 +vn 0.0284 -0.2575 0.9659 +vn 0.0641 -0.3547 0.9328 +vn 0.0659 -0.2560 0.9644 +vn -0.2935 -0.1889 0.9371 +vn -0.2975 -0.1208 0.9471 +vn -0.1875 -0.1842 0.9648 +vn -0.1902 -0.1158 0.9749 +vn -0.0982 -0.1803 0.9787 +vn -0.0998 -0.1116 0.9887 +vn -0.0263 -0.1771 0.9838 +vn -0.0271 -0.1083 0.9937 +vn 0.0940 -0.3535 0.9307 +vn 0.0971 -0.2546 0.9622 +vn 0.0285 -0.1748 0.9842 +vn 0.0284 -0.1057 0.9940 +vn 0.0668 -0.1731 0.9826 +vn 0.0673 -0.1039 0.9923 +vn 0.0988 -0.1716 0.9802 +vn 0.0996 -0.1023 0.9898 +vn -0.1006 -0.0589 0.9932 +vn -0.1007 -0.0256 0.9946 +vn -0.1919 -0.0302 0.9810 +vn -0.1915 -0.0633 0.9794 +vn -0.0274 -0.0553 0.9981 +vn -0.0274 -0.0218 0.9994 +vn 0.1000 -0.0489 0.9938 +vn 0.1003 -0.0151 0.9948 +vn 0.0677 -0.0169 0.9976 +vn 0.0675 -0.0505 0.9964 +vn 0.0284 -0.0525 0.9982 +vn 0.0285 -0.0190 0.9994 +vn 0.1004 0.0033 0.9949 +vn 0.0678 0.0008 0.9977 +vn 0.1181 0.0048 0.9930 +vn 0.1175 0.0140 0.9930 +vn 0.0997 0.0120 0.9949 +vn 0.0673 0.0081 0.9977 +vn 0.0288 -0.0022 0.9996 +vn -0.0269 -0.0065 0.9996 +vn 0.0284 0.0034 0.9996 +vn -0.0271 -0.0033 0.9996 +vn -0.1000 -0.0121 0.9949 +vn -0.1910 -0.0191 0.9814 +vn -0.1906 -0.0232 0.9814 +vn -0.2994 -0.0686 0.9517 +vn -0.2999 -0.0356 0.9533 +vn -0.4211 -0.0417 0.9061 +vn -0.4203 -0.0745 0.9043 +vn -0.2988 -0.0274 0.9539 +vn -0.4198 -0.0367 0.9069 +vn -0.2980 -0.0363 0.9539 +vn -0.4185 -0.0510 0.9068 +vn -0.5467 -0.0807 0.8334 +vn -0.5478 -0.0480 0.8352 +vn -0.6696 -0.0541 0.7408 +vn -0.6682 -0.0866 0.7389 +vn -0.5465 -0.0465 0.8362 +vn -0.6682 -0.0560 0.7418 +vn -0.5446 -0.0665 0.8361 +vn -0.6658 -0.0815 0.7417 +vn -0.0995 -0.0156 0.9949 +vn -0.1897 -0.0297 0.9814 +vn -0.0270 -0.0042 0.9996 +vn -0.0267 -0.0053 0.9996 +vn -0.0986 -0.0196 0.9949 +vn -0.1880 -0.0374 0.9815 +vn -0.7740 -0.0919 0.6264 +vn -0.7696 -0.1432 0.6223 +vn -0.7757 -0.0594 0.6283 +vn -0.8595 -0.0637 0.5072 +vn -0.8575 -0.0962 0.5054 +vn -0.8526 -0.1475 0.5014 +vn -0.2966 -0.0465 0.9539 +vn -0.4165 -0.0653 0.9068 +vn -0.2941 -0.0585 0.9540 +vn -0.4131 -0.0822 0.9070 +vn -0.7745 -0.0644 0.6293 +vn -0.8584 -0.0710 0.5081 +vn -0.7715 -0.0945 0.6291 +vn -0.8549 -0.1049 0.5080 +vn -0.5420 -0.0850 0.8361 +vn -0.6626 -0.1039 0.7417 +vn -0.5378 -0.1070 0.8363 +vn -0.6576 -0.1308 0.7420 +vn -0.7607 -0.2103 0.6141 +vn -0.7454 -0.2901 0.6002 +vn -0.8426 -0.2147 0.4939 +vn -0.8255 -0.2945 0.4815 +vn -0.7201 -0.3842 0.5778 +vn -0.6799 -0.4929 0.5429 +vn -0.7974 -0.3884 0.4618 +vn -0.7528 -0.4968 0.4319 +vn -0.9039 -0.0987 0.4162 +vn -0.8984 -0.1502 0.4128 +vn -0.9062 -0.0662 0.4177 +vn -0.9183 -0.0669 0.3901 +vn -0.9160 -0.0993 0.3887 +vn -0.9102 -0.1507 0.3857 +vn -0.9052 -0.0748 0.4183 +vn -0.9175 -0.0759 0.3905 +vn -0.9016 -0.1108 0.4182 +vn -0.9137 -0.1124 0.3906 +vn -0.8874 -0.2175 0.4064 +vn -0.8687 -0.2975 0.3960 +vn -0.8989 -0.2183 0.3799 +vn -0.8796 -0.2984 0.3704 +vn -0.8973 -0.1409 0.4183 +vn -0.9094 -0.1428 0.3906 +vn -0.8509 -0.1336 0.5081 +vn -0.8447 -0.1680 0.5083 +vn -0.8908 -0.1772 0.4184 +vn -0.9029 -0.1796 0.3906 +vn -0.8381 -0.3916 0.3797 +vn -0.7899 -0.5001 0.3550 +vn -0.8481 -0.3928 0.3555 +vn -0.7986 -0.5015 0.3328 +vn -0.6189 -0.6131 0.4909 +vn -0.5319 -0.7365 0.4180 +vn -0.6851 -0.6164 0.3882 +vn -0.5886 -0.7389 0.3280 +vn -0.7171 -0.6197 0.3190 +vn -0.6140 -0.7419 0.2696 +vn -0.7240 -0.6214 0.2995 +vn -0.6186 -0.7437 0.2535 +vn -0.4798 -0.8526 0.2072 +vn -0.4622 -0.8503 0.2518 +vn -0.4818 -0.8542 0.1953 +vn -0.4180 -0.8487 0.3241 +vn -0.2839 -0.9343 0.2156 +vn -0.2411 -0.9342 0.2629 +vn -0.3572 -0.8480 0.3916 +vn -0.4298 -0.8463 0.3147 +vn -0.7574 -0.3851 0.5273 +vn -0.6352 -0.3835 0.6704 +vn -0.3639 -0.8449 0.3921 +vn -0.8810 -0.2207 0.4184 +vn -0.8930 -0.2237 0.3906 +vn -0.8354 -0.2093 0.5083 +vn -0.8241 -0.2500 0.5083 +vn -0.8691 -0.2637 0.4184 +vn -0.8809 -0.2672 0.3906 +vn -0.7678 -0.1205 0.6292 +vn -0.7621 -0.1516 0.6294 +vn -0.7538 -0.1888 0.6294 +vn -0.6503 -0.1629 0.7420 +vn -0.6416 -0.1946 0.7420 +vn -0.7436 -0.2256 0.6294 +vn -0.5319 -0.1332 0.8363 +vn -0.4086 -0.1024 0.9070 +vn -0.4031 -0.1223 0.9070 +vn -0.5247 -0.1592 0.8363 +vn -0.8552 -0.3060 0.4184 +vn -0.8667 -0.3101 0.3906 +vn -0.8109 -0.2901 0.5082 +vn -0.7956 -0.3296 0.5083 +vn -0.8391 -0.3476 0.4184 +vn -0.8505 -0.3523 0.3906 +vn -0.7316 -0.2618 0.6294 +vn -0.6313 -0.2259 0.7419 +vn -0.6194 -0.2566 0.7420 +vn -0.7179 -0.2974 0.6294 +vn -0.8211 -0.3883 0.4184 +vn -0.8322 -0.3936 0.3906 +vn -0.7785 -0.3682 0.5083 +vn -0.7595 -0.4060 0.5083 +vn -0.8010 -0.4281 0.4184 +vn -0.8119 -0.4339 0.3906 +vn -0.7024 -0.3322 0.6294 +vn -0.6061 -0.2867 0.7420 +vn -0.5913 -0.3160 0.7420 +vn -0.6853 -0.3663 0.6294 +vn -0.5162 -0.1847 0.8363 +vn -0.3966 -0.1419 0.9070 +vn -0.3892 -0.1612 0.9070 +vn -0.5066 -0.2098 0.8363 +vn -0.4957 -0.2344 0.8363 +vn -0.3808 -0.1801 0.9070 +vn -0.3715 -0.1986 0.9069 +vn -0.4836 -0.2585 0.8363 +vn -0.7790 -0.4669 0.4185 +vn -0.7896 -0.4733 0.3906 +vn -0.7387 -0.4427 0.5083 +vn -0.7160 -0.4785 0.5083 +vn -0.7552 -0.5046 0.4184 +vn -0.7654 -0.5114 0.3906 +vn -0.6665 -0.3995 0.6294 +vn -0.5751 -0.3447 0.7420 +vn -0.5574 -0.3725 0.7420 +vn -0.6461 -0.4317 0.6294 +vn -0.7295 -0.5411 0.4184 +vn -0.7394 -0.5484 0.3906 +vn -0.6917 -0.5130 0.5083 +vn -0.6657 -0.5463 0.5083 +vn -0.7021 -0.5762 0.4184 +vn -0.7116 -0.5840 0.3906 +vn -0.6241 -0.4629 0.6294 +vn -0.5385 -0.3994 0.7420 +vn -0.5183 -0.4253 0.7420 +vn -0.6007 -0.4930 0.6294 +vn -0.4703 -0.2819 0.8363 +vn -0.3613 -0.2166 0.9070 +vn -0.3502 -0.2340 0.9070 +vn -0.4559 -0.3046 0.8363 +vn -0.4404 -0.3266 0.8363 +vn -0.3383 -0.2509 0.9070 +vn -0.3256 -0.2672 0.9070 +vn -0.4238 -0.3478 0.8363 +vn -0.6781 -0.6043 0.4183 +vn -0.6873 -0.6124 0.3906 +vn -0.6430 -0.5730 0.5081 +vn -0.6234 -0.5944 0.5080 +vn -0.6575 -0.6267 0.4182 +vn -0.6665 -0.6350 0.3905 +vn -0.5802 -0.5171 0.6292 +vn -0.5007 -0.4463 0.7417 +vn -0.4853 -0.4630 0.7417 +vn -0.5625 -0.5365 0.6291 +vn -0.6321 -0.6523 0.4183 +vn -0.6408 -0.6610 0.3904 +vn -0.5994 -0.6185 0.5081 +vn -0.5946 -0.6238 0.5072 +vn -0.6262 -0.6584 0.4177 +vn -0.6343 -0.6674 0.3902 +vn -0.6498 -0.6360 0.4162 +vn -0.6860 -0.5991 0.4129 +vn -0.6940 -0.6079 0.3859 +vn -0.6578 -0.6450 0.3889 +vn -0.6184 -0.6018 0.5054 +vn -0.6550 -0.5653 0.5014 +vn -0.5411 -0.5578 0.6293 +vn -0.4673 -0.4810 0.7418 +vn -0.4667 -0.4832 0.7408 +vn -0.5382 -0.5619 0.6282 +vn -0.5621 -0.5401 0.6264 +vn -0.5990 -0.5041 0.6221 +vn -0.4908 -0.4616 0.7389 +vn -0.5282 -0.4259 0.7346 +vn -0.7311 -0.5478 0.4066 +vn -0.7811 -0.4826 0.3963 +vn -0.7886 -0.4904 0.3710 +vn -0.7407 -0.5570 0.3758 +vn -0.7006 -0.5150 0.4938 +vn -0.7514 -0.4512 0.4814 +vn -0.3827 -0.3929 0.8362 +vn -0.2947 -0.3012 0.9069 +vn -0.2994 -0.2990 0.9061 +vn -0.3847 -0.3930 0.8352 +vn -0.3969 -0.3788 0.8361 +vn -0.3049 -0.2911 0.9068 +vn -0.8344 -0.3992 0.3801 +vn -0.8876 -0.2931 0.3554 +vn -0.8941 -0.2988 0.3337 +vn -0.8415 -0.4061 0.3563 +vn -0.8062 -0.3698 0.4618 +vn -0.8616 -0.2666 0.4319 +vn -0.6453 -0.4547 0.6138 +vn -0.6974 -0.3923 0.5998 +vn -0.5753 -0.3773 0.7258 +vn -0.6286 -0.3161 0.7106 +vn -0.4092 -0.3715 0.8334 +vn -0.4471 -0.3363 0.8289 +vn -0.3241 -0.2777 0.9043 +vn -0.3627 -0.2427 0.8998 +vn -0.9338 -0.1609 0.3195 +vn -0.9628 -0.0037 0.2702 +vn -0.9670 -0.0060 0.2547 +vn -0.9394 -0.1651 0.3006 +vn -0.9111 -0.1384 0.3882 +vn -0.9445 0.0138 0.3281 +vn -0.7541 -0.3131 0.5773 +vn -0.8127 -0.2132 0.5423 +vn -0.6876 -0.2390 0.6856 +vn -0.7498 -0.1424 0.6461 +vn -0.9633 0.1701 0.2078 +vn -0.9657 0.1697 0.1964 +vn -0.9504 0.1820 0.2521 +vn -0.8670 -0.0898 0.4902 +vn -0.9071 0.0555 0.4172 +vn -0.8097 -0.0243 0.5864 +vn -0.8576 0.1133 0.5017 +vn -0.9216 0.2146 0.3233 +vn -0.9028 0.3725 0.2150 +vn -0.8822 0.2617 0.3915 +vn -0.8752 0.4061 0.2628 +vn -0.9273 0.2050 0.3131 +vn -0.7767 -0.3446 0.5273 +vn -0.8842 0.2547 0.3916 +vn -0.6989 -0.2489 0.6705 +vn -0.7445 0.0504 0.6657 +vn -0.8014 0.1789 0.5708 +vn -0.6784 -0.0615 0.7322 +vn -0.6037 0.0237 0.7968 +vn -0.6765 0.1293 0.7250 +vn -0.7426 0.2483 0.6220 +vn -0.6119 -0.1541 0.7758 +vn -0.5502 -0.2288 0.8031 +vn -0.4684 -0.1373 0.8728 +vn -0.5329 -0.0650 0.8437 +vn -0.6131 0.2030 0.7635 +vn -0.6887 0.3122 0.6544 +vn -0.5335 0.1040 0.8394 +vn -0.4714 0.1755 0.8643 +vn -0.5572 0.2684 0.7858 +vn -0.6416 0.3684 0.6728 +vn -0.4581 0.0196 0.8887 +vn -0.3907 -0.0502 0.9192 +vn -0.3215 0.0274 0.9465 +vn -0.3916 0.0949 0.9152 +vn -0.7489 0.4216 0.5113 +vn -0.7832 0.5180 0.3438 +vn -0.8111 0.4839 0.3285 +vn -0.7906 0.3711 0.4870 +vn -0.7127 0.4656 0.5247 +vn -0.7595 0.5472 0.3516 +vn -0.6835 0.5013 0.5306 +vn -0.7408 0.5705 0.3547 +vn -0.6030 0.4147 0.6815 +vn -0.5721 0.4517 0.6846 +vn -0.6602 0.5297 0.5325 +vn -0.7258 0.5890 0.3554 +vn -0.5110 0.3226 0.7967 +vn -0.4196 0.2352 0.8767 +vn -0.3780 0.2831 0.8815 +vn -0.4740 0.3660 0.8008 +vn -0.6426 0.5514 0.5320 +vn -0.5487 0.4799 0.6846 +vn -0.5325 0.4994 0.6834 +vn -0.6304 0.5663 0.5309 +vn -0.7144 0.6032 0.3547 +vn -0.7065 0.6130 0.3537 +vn -0.3360 0.1581 0.9285 +vn -0.2633 0.0928 0.9602 +vn -0.2166 0.1453 0.9654 +vn -0.2913 0.2088 0.9336 +vn -0.4459 0.3991 0.8012 +vn -0.3463 0.3196 0.8820 +vn -0.3243 0.3450 0.8808 +vn -0.4264 0.4221 0.8000 +vn -0.2573 0.2475 0.9341 +vn -0.1810 0.1853 0.9659 +vn -0.1560 0.2133 0.9644 +vn -0.2335 0.2745 0.9328 +vn -0.2016 0.0385 0.9787 +vn -0.1495 -0.0063 0.9887 +vn -0.1008 0.0478 0.9938 +vn -0.1536 0.0920 0.9838 +vn -0.2613 -0.0281 0.9649 +vn -0.2101 -0.0736 0.9749 +vn -0.1170 0.1329 0.9842 +vn -0.0636 0.0890 0.9940 +vn -0.0376 0.1179 0.9923 +vn -0.0913 0.1615 0.9826 +vn -0.2135 0.2970 0.9307 +vn -0.3049 0.3645 0.8799 +vn -0.1352 0.2366 0.9622 +vn -0.1238 0.2495 0.9604 +vn -0.2027 0.3094 0.9291 +vn -0.2958 0.3778 0.8773 +vn -0.3322 -0.1071 0.9371 +vn -0.2820 -0.1534 0.9471 +vn -0.4117 -0.1957 0.8901 +vn -0.4098 0.4413 0.7984 +vn -0.5187 0.5156 0.6820 +vn -0.4011 0.4519 0.7968 +vn -0.5105 0.5228 0.6827 +vn -0.6199 0.5789 0.5298 +vn -0.6997 0.6212 0.3529 +vn -0.6146 0.5858 0.5283 +vn -0.6964 0.6257 0.3515 +vn -0.0700 0.1852 0.9802 +vn -0.0159 0.1420 0.9897 +vn -0.0039 0.1552 0.9879 +vn -0.0582 0.1984 0.9784 +vn -0.2003 0.3122 0.9287 +vn -0.2935 0.3805 0.8770 +vn -0.1213 0.2523 0.9600 +vn -0.1153 0.2590 0.9590 +vn -0.1945 0.3186 0.9277 +vn -0.2880 0.3865 0.8762 +vn -0.0556 0.2013 0.9780 +vn -0.0013 0.1582 0.9874 +vn 0.0049 0.1650 0.9863 +vn -0.0495 0.2080 0.9769 +vn -0.3990 0.4542 0.7965 +vn -0.5082 0.5242 0.6834 +vn -0.3941 0.4598 0.7958 +vn -0.5056 0.5314 0.6797 +vn -0.6130 0.5752 0.5417 +vn -0.2339 0.3146 0.9200 +vn -0.2510 0.2942 0.9222 +vn -0.6231 0.5629 0.5430 +vn -0.6052 0.5804 0.5448 +vn -0.2217 0.3232 0.9200 +vn -0.6353 0.5489 0.5432 +vn -0.2708 0.2709 0.9237 +vn -0.2990 0.2374 0.9242 +vn -0.6529 0.5287 0.5424 +vn -0.6133 0.5874 0.5281 +vn -0.6955 0.6267 0.3514 +vn -0.6100 0.5911 0.5277 +vn -0.6933 0.6292 0.3512 +vn -0.6056 0.5963 0.5269 +vn -0.6904 0.6327 0.3507 +vn -0.4998 0.5381 0.6787 +vn -0.4938 0.5451 0.6775 +vn -0.6010 0.6018 0.5260 +vn -0.6874 0.6363 0.3501 +vn -0.3873 0.4675 0.7946 +vn -0.2805 0.3950 0.8748 +vn -0.2726 0.4039 0.8732 +vn -0.3801 0.4757 0.7932 +vn -0.1865 0.3275 0.9263 +vn -0.1070 0.2682 0.9574 +vn -0.0982 0.2779 0.9556 +vn -0.1780 0.3369 0.9246 +vn -0.3725 0.4843 0.7916 +vn -0.4874 0.5525 0.6762 +vn -0.2642 0.4134 0.8714 +vn -0.2553 0.4234 0.8692 +vn -0.3645 0.4934 0.7897 +vn -0.4806 0.5604 0.6746 +vn -0.0410 0.2174 0.9752 +vn 0.0135 0.1744 0.9846 +vn 0.0225 0.1844 0.9826 +vn -0.0321 0.2272 0.9733 +vn -0.1691 0.3469 0.9225 +vn -0.0890 0.2881 0.9535 +vn -0.0792 0.2989 0.9510 +vn -0.1597 0.3574 0.9202 +vn -0.0227 0.2377 0.9711 +vn 0.0320 0.1949 0.9803 +vn 0.0420 0.2060 0.9777 +vn -0.0127 0.2487 0.9685 +vn 0.0586 0.1382 0.9887 +vn 0.0862 0.1158 0.9895 +vn 0.0962 0.1251 0.9875 +vn 0.0683 0.1476 0.9867 +vn 0.0492 0.1294 0.9904 +vn 0.0765 0.1073 0.9913 +vn 0.0784 0.1577 0.9844 +vn 0.1064 0.1350 0.9851 +vn 0.1171 0.1457 0.9824 +vn 0.0890 0.1685 0.9817 +vn -0.0022 0.2603 0.9655 +vn -0.0689 0.3104 0.9481 +vn 0.0526 0.2177 0.9746 +vn 0.0639 0.2302 0.9710 +vn 0.0089 0.2726 0.9621 +vn -0.0580 0.3225 0.9448 +vn 0.0419 0.1235 0.9915 +vn 0.0688 0.1017 0.9924 +vn 0.0383 0.1213 0.9919 +vn 0.0646 0.1001 0.9929 +vn -0.1497 0.3685 0.9175 +vn -0.2459 0.4339 0.8667 +vn -0.1392 0.3803 0.9143 +vn -0.2360 0.4451 0.8638 +vn 0.0258 0.1083 0.9938 +vn 0.0518 0.0872 0.9948 +vn 0.0038 0.0842 0.9964 +vn 0.0298 0.0631 0.9976 +vn 0.0975 0.1064 0.9895 +vn 0.1068 0.1161 0.9875 +vn 0.0885 0.0973 0.9913 +vn 0.0945 0.0916 0.9913 +vn 0.1035 0.1007 0.9895 +vn 0.1130 0.1102 0.9875 +vn -0.0225 0.0552 0.9982 +vn 0.0034 0.0342 0.9994 +vn -0.0601 0.0138 0.9981 +vn -0.0343 -0.0072 0.9994 +vn 0.0818 0.0908 0.9925 +vn 0.0787 0.0881 0.9930 +vn 0.0854 0.0819 0.9930 +vn 0.0880 0.0849 0.9925 +vn 0.0663 0.0754 0.9949 +vn 0.0437 0.0519 0.9977 +vn 0.0490 0.0468 0.9977 +vn 0.0725 0.0695 0.9949 +vn -0.1093 -0.0404 0.9932 +vn -0.0837 -0.0616 0.9946 +vn -0.1704 -0.1079 0.9794 +vn -0.1451 -0.1291 0.9810 +vn 0.0166 0.0237 0.9996 +vn -0.0220 -0.0167 0.9996 +vn -0.0198 -0.0189 0.9996 +vn 0.0207 0.0198 0.9996 +vn 0.0749 0.0668 0.9950 +vn 0.0882 0.0788 0.9930 +vn 0.0505 0.0451 0.9977 +vn 0.0524 0.0430 0.9977 +vn 0.0777 0.0637 0.9949 +vn 0.0914 0.0750 0.9930 +vn 0.0213 0.0190 0.9996 +vn -0.0204 -0.0182 0.9996 +vn -0.0210 -0.0173 0.9996 +vn 0.0222 0.0182 0.9996 +vn -0.0728 -0.0697 0.9949 +vn -0.1359 -0.1355 0.9814 +vn -0.1388 -0.1327 0.9814 +vn -0.0728 -0.0696 0.9949 +vn 0.0912 0.0815 0.9925 +vn 0.0980 0.0878 0.9913 +vn 0.0945 0.0776 0.9925 +vn 0.1017 0.0835 0.9913 +vn -0.0752 -0.0671 0.9949 +vn -0.1433 -0.1278 0.9814 +vn -0.1482 -0.1216 0.9815 +vn -0.0777 -0.0638 0.9949 +vn -0.2241 -0.1998 0.9539 +vn -0.3147 -0.2805 0.9068 +vn -0.2318 -0.1902 0.9540 +vn -0.2171 -0.2074 0.9539 +vn -0.2429 -0.1880 0.9517 +vn -0.2178 -0.2092 0.9533 +vn -0.4952 -0.2885 0.8195 +vn -0.2107 -0.2136 0.9539 +vn -0.4095 -0.3650 0.8361 +vn -0.2409 -0.1786 0.9540 +vn -0.1540 -0.1142 0.9814 +vn -0.2493 -0.1666 0.9540 +vn -0.1594 -0.1065 0.9814 +vn -0.0807 -0.0599 0.9949 +vn -0.0218 -0.0162 0.9996 +vn -0.0836 -0.0559 0.9949 +vn -0.0226 -0.0151 0.9996 +vn -0.2572 -0.1542 0.9540 +vn -0.1645 -0.0986 0.9814 +vn -0.2645 -0.1414 0.9540 +vn -0.1691 -0.0904 0.9814 +vn 0.0230 0.0171 0.9996 +vn 0.0545 0.0404 0.9977 +vn 0.0238 0.0159 0.9996 +vn 0.0564 0.0377 0.9977 +vn -0.0862 -0.0517 0.9949 +vn -0.0233 -0.0140 0.9996 +vn -0.0887 -0.0474 0.9949 +vn -0.0240 -0.0128 0.9996 +vn -0.2711 -0.1282 0.9540 +vn -0.1733 -0.0820 0.9814 +vn -0.2771 -0.1148 0.9540 +vn -0.1771 -0.0734 0.9814 +vn 0.0807 0.0598 0.9949 +vn 0.0950 0.0705 0.9930 +vn 0.0835 0.0558 0.9949 +vn 0.0983 0.0657 0.9930 +vn 0.0246 0.0147 0.9996 +vn 0.0582 0.0349 0.9977 +vn 0.0253 0.0135 0.9996 +vn 0.0598 0.0320 0.9977 +vn -0.0909 -0.0430 0.9949 +vn -0.0246 -0.0116 0.9996 +vn -0.0929 -0.0385 0.9949 +vn -0.0251 -0.0104 0.9996 +vn -0.2823 -0.1010 0.9540 +vn -0.1805 -0.0646 0.9815 +vn -0.2870 -0.0870 0.9540 +vn -0.1835 -0.0557 0.9814 +vn -0.2909 -0.0729 0.9540 +vn -0.1860 -0.0466 0.9814 +vn -0.0947 -0.0339 0.9949 +vn -0.0256 -0.0092 0.9996 +vn -0.0962 -0.0292 0.9949 +vn -0.0260 -0.0079 0.9996 +vn 0.0259 0.0123 0.9996 +vn 0.0613 0.0290 0.9977 +vn 0.0265 0.0110 0.9996 +vn 0.0626 0.0259 0.9977 +vn -0.0975 -0.0244 0.9949 +vn -0.0264 -0.0066 0.9996 +vn 0.0270 0.0097 0.9996 +vn 0.0638 0.0228 0.9977 +vn 0.0275 0.0083 0.9996 +vn 0.0649 0.0197 0.9977 +vn 0.0278 0.0070 0.9996 +vn 0.0658 0.0165 0.9977 +vn 0.0281 0.0056 0.9996 +vn 0.0665 0.0132 0.9977 +vn 0.0282 0.0044 0.9996 +vn 0.0669 0.0105 0.9977 +vn 0.0946 0.0338 0.9949 +vn 0.1114 0.0398 0.9930 +vn 0.1093 0.0453 0.9930 +vn 0.0928 0.0384 0.9949 +vn 0.0961 0.0292 0.9949 +vn 0.1132 0.0343 0.9930 +vn 0.0992 0.0155 0.9949 +vn 0.1169 0.0183 0.9930 +vn 0.1160 0.0231 0.9930 +vn 0.0985 0.0196 0.9949 +vn 0.0974 0.0244 0.9949 +vn 0.1147 0.0287 0.9930 +vn 0.1208 0.0188 0.9925 +vn 0.1300 0.0201 0.9913 +vn 0.1291 0.0257 0.9913 +vn 0.1199 0.0239 0.9925 +vn 0.1215 0.0142 0.9925 +vn 0.1307 0.0150 0.9913 +vn 0.1186 0.0297 0.9925 +vn 0.1276 0.0320 0.9913 +vn 0.1259 0.0382 0.9913 +vn 0.1170 0.0355 0.9925 +vn 0.1151 0.0412 0.9925 +vn 0.1239 0.0443 0.9913 +vn 0.1216 0.0504 0.9913 +vn 0.1130 0.0468 0.9925 +vn 0.0908 0.0429 0.9949 +vn 0.1069 0.0506 0.9930 +vn 0.1043 0.0558 0.9930 +vn 0.0886 0.0474 0.9949 +vn 0.1105 0.0523 0.9925 +vn 0.1189 0.0563 0.9913 +vn 0.1160 0.0620 0.9913 +vn 0.1078 0.0576 0.9925 +vn 0.0862 0.0516 0.9949 +vn 0.1014 0.0608 0.9930 +vn 0.1049 0.0629 0.9925 +vn 0.1129 0.0676 0.9913 +vn 0.1094 0.0731 0.9913 +vn 0.1017 0.0679 0.9925 +vn 0.0982 0.0728 0.9925 +vn 0.1057 0.0784 0.9913 +vn 0.1238 0.0742 0.9895 +vn 0.1354 0.0811 0.9875 +vn 0.1312 0.0877 0.9875 +vn 0.1200 0.0802 0.9895 +vn 0.1273 0.0681 0.9895 +vn 0.1392 0.0744 0.9875 +vn 0.1075 0.0963 0.9895 +vn 0.1175 0.1054 0.9875 +vn 0.1116 0.0916 0.9895 +vn 0.1220 0.1001 0.9875 +vn 0.1160 0.0860 0.9895 +vn 0.1268 0.0940 0.9875 +vn 0.1167 0.1264 0.9851 +vn 0.1270 0.1373 0.9824 +vn 0.1231 0.1203 0.9851 +vn 0.1337 0.1309 0.9823 +vn 0.1281 0.1149 0.9851 +vn 0.1392 0.1250 0.9823 +vn 0.1330 0.1092 0.9851 +vn 0.1446 0.1187 0.9823 +vn 0.1382 0.1025 0.9851 +vn 0.1503 0.1115 0.9823 +vn 0.1431 0.0956 0.9851 +vn 0.1556 0.1040 0.9823 +vn 0.1305 0.0617 0.9895 +vn 0.1427 0.0675 0.9875 +vn 0.1334 0.0552 0.9895 +vn 0.1458 0.0604 0.9875 +vn 0.1476 0.0885 0.9851 +vn 0.1605 0.0962 0.9823 +vn 0.1518 0.0811 0.9851 +vn 0.1650 0.0882 0.9823 +vn 0.1359 0.0486 0.9895 +vn 0.1486 0.0532 0.9875 +vn 0.1381 0.0419 0.9895 +vn 0.1510 0.0458 0.9875 +vn 0.1556 0.0736 0.9851 +vn 0.1691 0.0800 0.9823 +vn 0.1590 0.0659 0.9851 +vn 0.1729 0.0716 0.9823 +vn 0.1400 0.0351 0.9895 +vn 0.1531 0.0384 0.9875 +vn 0.1416 0.0282 0.9895 +vn 0.1548 0.0308 0.9875 +vn 0.1620 0.0580 0.9851 +vn 0.1762 0.0630 0.9823 +vn 0.1647 0.0500 0.9851 +vn 0.1791 0.0543 0.9823 +vn 0.1741 0.1044 0.9792 +vn 0.1886 0.1130 0.9755 +vn 0.1828 0.1221 0.9755 +vn 0.1688 0.1128 0.9792 +vn 0.1790 0.0957 0.9792 +vn 0.1939 0.1036 0.9755 +vn 0.1835 0.0868 0.9792 +vn 0.1988 0.0940 0.9755 +vn 0.1876 0.0777 0.9792 +vn 0.2031 0.0841 0.9755 +vn 0.1631 0.1209 0.9792 +vn 0.1766 0.1310 0.9755 +vn 0.1700 0.1395 0.9755 +vn 0.1569 0.1288 0.9792 +vn 0.1669 0.0418 0.9851 +vn 0.1815 0.0455 0.9823 +vn 0.1688 0.0336 0.9851 +vn 0.1835 0.0365 0.9823 +vn 0.1510 0.1357 0.9792 +vn 0.1635 0.1470 0.9755 +vn 0.1569 0.1540 0.9755 +vn 0.1450 0.1421 0.9792 +vn 0.1427 0.0220 0.9895 +vn 0.1560 0.0240 0.9875 +vn 0.1435 0.0162 0.9895 +vn 0.1569 0.0175 0.9875 +vn 0.1221 0.0056 0.9925 +vn 0.1313 0.0066 0.9913 +vn 0.1441 0.0078 0.9895 +vn 0.1575 0.0088 0.9875 +vn 0.1701 0.0261 0.9851 +vn 0.1849 0.0283 0.9823 +vn 0.1710 0.0189 0.9851 +vn 0.1860 0.0203 0.9823 +vn 0.1717 -0.0395 0.9844 +vn 0.1719 -0.0033 0.9851 +vn 0.1867 -0.0382 0.9817 +vn 0.1869 -0.0018 0.9824 +vn 0.1717 0.0099 0.9851 +vn 0.1867 0.0110 0.9824 +vn 0.2019 -0.0366 0.9787 +vn 0.2028 -0.0004 0.9792 +vn 0.2026 0.0121 0.9792 +vn 0.2018 0.0219 0.9792 +vn 0.2007 0.0307 0.9792 +vn 0.2173 0.0332 0.9755 +vn 0.2156 0.0429 0.9755 +vn 0.1991 0.0396 0.9792 +vn 0.2350 0.0358 0.9713 +vn 0.2332 0.0464 0.9713 +vn 0.1969 0.0493 0.9792 +vn 0.2133 0.0534 0.9755 +vn 0.2104 0.0638 0.9755 +vn 0.1943 0.0589 0.9792 +vn 0.2306 0.0578 0.9713 +vn 0.2490 0.0624 0.9665 +vn 0.2456 0.0745 0.9665 +vn 0.2275 0.0690 0.9713 +vn 0.2685 0.0673 0.9609 +vn 0.2893 0.0725 0.9545 +vn 0.2854 0.0866 0.9545 +vn 0.2649 0.0804 0.9609 +vn 0.1911 0.0684 0.9792 +vn 0.2070 0.0741 0.9755 +vn 0.2238 0.0801 0.9713 +vn 0.2417 0.0865 0.9665 +vn 0.2371 0.0982 0.9665 +vn 0.2196 0.0910 0.9713 +vn 0.2149 0.1016 0.9713 +vn 0.2320 0.1097 0.9665 +vn 0.2264 0.1210 0.9665 +vn 0.2096 0.1121 0.9713 +vn 0.2606 0.0933 0.9609 +vn 0.2808 0.1005 0.9545 +vn 0.2755 0.1141 0.9545 +vn 0.2557 0.1059 0.9609 +vn 0.2502 0.1183 0.9609 +vn 0.2696 0.1275 0.9545 +vn 0.2630 0.1406 0.9545 +vn 0.2441 0.1305 0.9609 +vn 0.2039 0.1222 0.9713 +vn 0.2202 0.1320 0.9665 +vn 0.2134 0.1426 0.9665 +vn 0.1977 0.1321 0.9713 +vn 0.2374 0.1423 0.9609 +vn 0.2558 0.1533 0.9545 +vn 0.2480 0.1657 0.9545 +vn 0.2302 0.1538 0.9609 +vn 0.1909 0.1416 0.9713 +vn 0.2062 0.1529 0.9665 +vn 0.1984 0.1628 0.9665 +vn 0.1838 0.1508 0.9713 +vn 0.2223 0.1649 0.9609 +vn 0.2395 0.1776 0.9545 +vn 0.2305 0.1892 0.9545 +vn 0.2140 0.1756 0.9609 +vn 0.1768 0.1589 0.9713 +vn 0.1908 0.1716 0.9665 +vn 0.1831 0.1799 0.9665 +vn 0.1696 0.1666 0.9713 +vn 0.2058 0.1851 0.9609 +vn 0.2217 0.1995 0.9545 +vn 0.2126 0.2092 0.9545 +vn 0.1974 0.1941 0.9609 +vn 0.2598 0.1927 0.9462 +vn 0.2830 0.2099 0.9359 +vn 0.2724 0.2235 0.9359 +vn 0.2500 0.2052 0.9462 +vn 0.2690 0.1797 0.9462 +vn 0.2930 0.1957 0.9359 +vn 0.2404 0.2164 0.9462 +vn 0.2618 0.2357 0.9359 +vn 0.2510 0.2473 0.9359 +vn 0.2305 0.2270 0.9462 +vn 0.1885 0.2027 0.9609 +vn 0.1747 0.1880 0.9665 +vn 0.2031 0.2183 0.9545 +vn 0.1937 0.2263 0.9546 +vn 0.1791 0.2106 0.9610 +vn 0.1653 0.1959 0.9666 +vn 0.2775 0.1663 0.9462 +vn 0.3022 0.1811 0.9359 +vn 0.2853 0.1525 0.9462 +vn 0.3107 0.1661 0.9359 +vn 0.1617 0.1742 0.9713 +vn 0.1495 0.1612 0.9755 +vn 0.1523 0.1821 0.9714 +vn 0.1399 0.1692 0.9756 +vn 0.2924 0.1383 0.9462 +vn 0.3185 0.1506 0.9359 +vn 0.2989 0.1238 0.9462 +vn 0.3255 0.1348 0.9359 +vn 0.1379 0.1489 0.9792 +vn 0.1282 0.1570 0.9792 +vn 0.1000 0.1800 0.9786 +vn 0.1116 0.1922 0.9750 +vn 0.1239 0.2052 0.9708 +vn 0.0758 0.2433 0.9670 +vn 0.1369 0.2190 0.9661 +vn 0.0885 0.2573 0.9623 +vn 0.1506 0.2338 0.9606 +vn 0.1020 0.2722 0.9568 +vn 0.1651 0.2495 0.9542 +vn 0.0208 0.2857 0.9581 +vn -0.0464 0.3354 0.9409 +vn 0.0333 0.2996 0.9535 +vn 0.0467 0.3144 0.9481 +vn -0.1280 0.3928 0.9107 +vn -0.2255 0.4570 0.8604 +vn -0.3376 0.5242 0.7818 +vn -0.3471 0.5133 0.7849 +vn -0.3561 0.5031 0.7875 +vn -0.4734 0.5687 0.6727 +vn -0.5853 0.6202 0.5223 +vn -0.5908 0.6137 0.5237 +vn -0.5960 0.6076 0.5249 +vn -0.6841 0.6403 0.3494 +vn -0.5846 0.5853 0.5619 +vn -0.1848 0.3257 0.9272 +vn -0.1997 0.3219 0.9255 +vn -0.5932 0.5818 0.5564 +vn -0.5760 0.5893 0.5666 +vn -0.1701 0.3307 0.9283 +vn -0.6006 0.5801 0.5502 +vn -0.2131 0.3211 0.9228 +vn 0.1822 0.2680 0.9460 +vn 0.2108 0.2448 0.9464 +vn 0.2303 0.2661 0.9360 +vn 0.2018 0.2893 0.9357 +vn 0.2204 0.2367 0.9463 +vn 0.2401 0.2578 0.9359 +vn 0.2220 0.3114 0.9240 +vn 0.2506 0.2881 0.9242 +vn 0.2605 0.2796 0.9241 +vn 0.2844 0.3052 0.9088 +vn 0.2723 0.2683 0.9241 +vn 0.2971 0.2930 0.9088 +vn 0.3125 0.3353 0.8888 +vn 0.3264 0.3219 0.8887 +vn 0.2841 0.2558 0.9241 +vn 0.3100 0.2792 0.9088 +vn 0.2955 0.2425 0.9241 +vn 0.3226 0.2647 0.9088 +vn 0.3406 0.3068 0.8887 +vn 0.3738 0.3368 0.8642 +vn 0.3544 0.2908 0.8887 +vn 0.3890 0.3192 0.8642 +vn 0.3070 0.2277 0.9241 +vn 0.3352 0.2486 0.9088 +vn 0.3178 0.2124 0.9241 +vn 0.3469 0.2318 0.9088 +vn 0.4099 0.3693 0.8341 +vn 0.4488 0.4043 0.7970 +vn 0.4265 0.3500 0.8340 +vn 0.4669 0.3832 0.7969 +vn 0.3682 0.2731 0.8887 +vn 0.4042 0.2997 0.8642 +vn 0.3812 0.2547 0.8887 +vn 0.4184 0.2796 0.8642 +vn 0.3279 0.1965 0.9241 +vn 0.3579 0.2145 0.9088 +vn 0.3371 0.1802 0.9241 +vn 0.3680 0.1967 0.9088 +vn 0.4903 0.4418 0.7513 +vn 0.5342 0.4814 0.6949 +vn 0.5102 0.4187 0.7512 +vn 0.5559 0.4562 0.6949 +vn 0.4431 0.3287 0.8340 +vn 0.4852 0.3598 0.7969 +vn 0.4587 0.3065 0.8340 +vn 0.5023 0.3356 0.7969 +vn 0.3932 0.2357 0.8887 +vn 0.4316 0.2587 0.8642 +vn 0.4043 0.2161 0.8887 +vn 0.4438 0.2372 0.8642 +vn 0.5796 0.5222 0.6256 +vn 0.6031 0.4950 0.6255 +vn 0.5302 0.3932 0.7512 +vn 0.5776 0.4284 0.6949 +vn 0.5488 0.3667 0.7512 +vn 0.6267 0.4648 0.6255 +vn 0.5661 0.3393 0.7513 +vn 0.5181 0.3105 0.7969 +vn 0.4732 0.2836 0.8340 +vn 0.4866 0.2601 0.8340 +vn 0.4987 0.2359 0.8340 +vn 0.4549 0.2151 0.8642 +vn 0.4316 0.1544 0.8887 +vn 0.3929 0.1406 0.9088 +vn 0.4235 0.1754 0.8887 +vn 0.3855 0.1597 0.9088 +vn 0.4144 0.1960 0.8887 +vn 0.3772 0.1784 0.9088 +vn 0.3599 0.1288 0.9241 +vn 0.3317 0.1187 0.9359 +vn 0.3532 0.1463 0.9240 +vn 0.3138 0.0786 0.9462 +vn 0.3095 0.0939 0.9462 +vn 0.3456 0.1634 0.9241 +vn 0.3046 0.1090 0.9462 +vn -0.8374 0.3148 0.4468 +vn -0.8438 0.4438 0.3016 +vn -0.8330 0.3194 0.4517 +vn -0.5983 -0.1185 0.7924 +vn -0.7787 0.3793 0.4998 +vn -0.4935 0.0013 0.8697 +vn -0.7371 0.4287 0.5225 +vn -0.4294 0.0793 0.8996 +vn -0.7022 0.4698 0.5350 +vn -0.3761 0.1437 0.9154 +vn -0.6749 0.5022 0.5406 +vn -0.3342 0.1945 0.9222 +vn -0.2802 -0.8468 0.4521 +vn -0.1918 -0.9338 0.3021 +vn -0.4704 -0.3855 0.7938 +vn -0.2873 -0.8470 0.4472 +vn -0.2579 0.9267 0.2734 +vn 0.3345 0.8400 0.4272 +vn -0.2390 0.9515 0.1938 +vn 0.3662 0.8798 0.3030 +vn -0.2105 0.9775 0.0105 +vn 0.3976 0.9174 0.0153 +vn 0.3957 0.9154 0.0739 +vn -0.2142 0.9756 0.0487 +vn -0.4920 0.8706 0.0067 +vn -0.4936 0.8697 -0.0014 +vn -0.2055 0.9787 -0.0024 +vn 0.3984 0.9172 -0.0046 +vn -0.3035 0.9528 0.0108 +vn -0.1062 0.9942 0.0148 +vn -0.1077 0.9942 -0.0018 +vn -0.3052 0.9523 -0.0017 +vn 0.0772 0.9969 0.0181 +vn 0.2326 0.9724 0.0206 +vn 0.2319 0.9727 -0.0012 +vn 0.0761 0.9971 -0.0016 +vn 0.3571 0.9338 0.0224 +vn 0.4542 0.8906 0.0236 +vn 0.4541 0.8910 -0.0004 +vn 0.3568 0.9342 -0.0008 +vn 0.5294 0.8480 0.0243 +vn 0.5879 0.8086 0.0248 +vn 0.5880 0.8089 -0.0003 +vn 0.5294 0.8484 -0.0004 +vn 0.6383 0.7694 0.0250 +vn 0.6664 0.7452 0.0251 +vn 0.6666 0.7454 0.0000 +vn 0.6384 0.7697 -0.0001 +vn 0.6822 0.7307 0.0251 +vn 0.6825 0.7309 0.0000 +vn 0.7113 0.7025 0.0230 +vn 0.7115 0.7027 0.0000 +vn 0.7426 0.6692 0.0251 +vn 0.7429 0.6694 0.0000 +vn 0.7728 0.6342 0.0229 +vn 0.7730 0.6344 0.0000 +vn 0.8030 0.5955 0.0251 +vn 0.8032 0.5957 0.0000 +vn 0.8313 0.5554 0.0230 +vn 0.8315 0.5556 0.0000 +vn 0.8575 0.5139 0.0251 +vn 0.8577 0.5141 0.0000 +vn 0.8817 0.4713 0.0230 +vn 0.8819 0.4714 0.0000 +vn 0.9037 0.4274 0.0251 +vn 0.9040 0.4276 0.0000 +vn 0.9236 0.3826 0.0230 +vn 0.9239 0.3827 0.0000 +vn 0.9412 0.3368 0.0251 +vn 0.9415 0.3369 -0.0000 +vn 0.9567 0.2902 0.0230 +vn 0.9569 0.2903 0.0000 +vn 0.9697 0.2429 0.0251 +vn 0.9700 0.2430 0.0000 +vn 0.9805 0.1950 0.0230 +vn 0.9808 0.1951 0.0000 +vn 0.9884 0.1495 0.0252 +vn 0.9887 0.1496 0.0000 +vn 0.9943 0.1042 0.0230 +vn 0.9946 0.1042 0.0000 +vn 0.9976 0.0638 0.0251 +vn 0.9980 0.0639 0.0000 +vn 0.9988 0.0423 0.0228 +vn 0.9991 0.0424 -0.0000 +vn 0.9997 0.0053 0.0251 +vn 0.9980 -0.0586 0.0249 +vn 0.9983 -0.0587 -0.0002 +vn 1.0000 0.0052 -0.0001 +vn 0.9914 -0.1288 0.0244 +vn 0.9766 -0.2139 0.0237 +vn 0.9768 -0.2143 -0.0005 +vn 0.9916 -0.1290 -0.0003 +vn 0.9484 -0.3163 0.0225 +vn 0.8992 -0.4370 0.0208 +vn 0.8991 -0.4378 -0.0012 +vn 0.9485 -0.3169 -0.0008 +vn 0.8195 -0.5727 0.0183 +vn 0.7012 -0.7128 0.0150 +vn 0.7002 -0.7139 -0.0016 +vn 0.8190 -0.5738 -0.0015 +vn 0.5440 -0.8390 0.0110 +vn 0.3609 -0.9326 0.0068 +vn 0.3592 -0.9333 -0.0014 +vn 0.5425 -0.8400 -0.0016 +vn 0.5439 -0.8379 0.0453 +vn 0.3615 -0.9319 0.0294 +vn 0.6220 -0.7830 0.0107 +vn 0.9615 -0.2743 0.0154 +vn 0.9618 -0.2737 -0.0044 +vn 0.6261 -0.7798 -0.0023 +vn 0.6180 -0.7847 0.0487 +vn 0.9588 -0.2743 0.0739 +vn 0.6064 -0.7873 0.1116 +vn 0.3586 -0.9311 0.0666 +vn 0.9458 -0.2749 0.1731 +vn 0.5383 -0.8367 0.1006 +vn -0.5673 0.5939 0.5705 +vn -0.1556 0.3367 0.9287 +vn -0.2238 0.9682 0.1119 +vn 0.3872 0.9056 0.1733 +vn 0.8908 -0.1323 0.4348 +vn -0.9305 0.3520 0.1009 +vn -0.9854 0.1566 0.0668 +vn -0.9827 0.1452 0.1151 +vn -0.9265 0.3345 0.1726 +vn -0.8387 0.5287 0.1305 +vn -0.8337 0.5058 0.2217 +vn -0.8418 0.5365 0.0594 +vn -0.9329 0.3573 0.0453 +vn -0.9868 0.1593 0.0294 +vn -0.7088 -0.6732 0.2106 +vn -0.1756 -0.9210 0.3477 +vn -0.1740 -0.9249 0.3381 +vn -0.7049 -0.6792 0.2046 +vn -0.8488 -0.5107 0.1370 +vn -0.8500 -0.5105 0.1299 +vn -0.8491 -0.5015 0.1657 +vn -0.7165 -0.6527 0.2462 +vn -0.1800 -0.8980 0.4014 +vn 0.9493 0.2750 0.1526 +vn 0.9867 0.0977 0.1302 +vn 0.9929 0.1033 0.0595 +vn 0.9567 0.2824 0.0706 +vn 0.8919 0.4199 0.1679 +vn 0.9001 0.4286 0.0784 +vn 0.8735 0.3959 0.2831 +vn 0.9322 0.2534 0.2583 +vn 0.9719 0.0794 0.2215 +vn 0.6318 -0.5558 0.5403 +vn 0.7122 -0.6058 0.3548 +vn 0.6933 -0.6290 0.3518 +vn 0.6059 -0.5893 0.5344 +vn 0.2590 -0.2860 0.9226 +vn 0.2173 -0.3371 0.9161 +vn 0.2941 -0.2428 0.9244 +vn 0.6531 -0.5285 0.5423 +vn 0.7272 -0.5872 0.3555 +vn 0.3420 -0.9167 0.2065 +vn 0.5307 -0.8365 0.1365 +vn 0.5317 -0.8371 0.1290 +vn 0.3362 -0.9203 0.1999 +vn -0.2395 -0.9075 0.3451 +vn -0.2436 -0.9101 0.3353 +vn -0.2235 -0.8897 0.3981 +vn 0.3571 -0.9021 0.2421 +vn 0.5354 -0.8283 0.1653 +vn -0.7259 0.6706 0.1529 +vn -0.6098 0.7745 0.1682 +vn -0.6132 0.7860 0.0784 +vn -0.7293 0.6806 0.0705 +vn -0.7204 0.6436 0.2585 +vn -0.6041 0.7448 0.2833 +vn -0.5024 0.8462 0.1778 +vn -0.4085 0.8941 0.1835 +vn -0.4114 0.9073 0.0867 +vn -0.5055 0.8588 0.0835 +vn -0.4967 0.8149 0.2986 +vn -0.4029 0.8621 0.3074 +vn -0.7125 0.6016 0.3611 +vn -0.5959 0.6990 0.3954 +vn -0.8267 0.4696 0.3100 +vn -0.8195 0.4274 0.3817 +vn -0.7046 0.5528 0.4449 +vn -0.5874 0.6460 0.4875 +vn -0.9208 0.3061 0.2417 +vn -0.9788 0.1261 0.1614 +vn -0.9746 0.1038 0.1984 +vn -0.9149 0.2730 0.2973 +vn -0.3288 0.9258 0.1866 +vn -0.2618 0.9466 0.1880 +vn -0.2643 0.9603 0.0895 +vn -0.3315 0.9393 0.0886 +vn -0.3233 0.8934 0.3120 +vn -0.2564 0.9141 0.3141 +vn -0.9088 0.2392 0.3419 +vn -0.8121 0.3839 0.4394 +vn -0.9703 0.0813 0.2278 +vn -0.9660 0.0590 0.2518 +vn -0.9026 0.2057 0.3781 +vn -0.8046 0.3409 0.4863 +vn -0.8623 0.3157 0.3960 +vn -0.4096 0.6793 0.6089 +vn -0.3981 0.6221 0.6742 +vn -0.8544 0.2785 0.4387 +vn -0.8703 0.3526 0.3438 +vn -0.4212 0.7365 0.5294 +vn -0.8469 0.2423 0.4734 +vn -0.9618 0.0376 0.2712 +vn -0.3872 0.5665 0.7274 +vn -0.3771 0.5136 0.7707 +vn -0.8399 0.2078 0.5014 +vn -0.9578 0.0175 0.2869 +vn -0.8335 0.1753 0.5239 +vn -0.9541 -0.0013 0.2995 +vn -0.3680 0.4640 0.8058 +vn -0.3599 0.4178 0.8342 +vn -0.8279 0.1450 0.5418 +vn -0.9506 -0.0186 0.3098 +vn -0.8966 0.1735 0.4074 +vn -0.7972 0.2994 0.5242 +vn -0.8909 0.1431 0.4311 +vn -0.7902 0.2603 0.5548 +vn -0.6963 0.5022 0.5128 +vn -0.5786 0.5908 0.5623 +vn -0.6879 0.4520 0.5679 +vn -0.5696 0.5358 0.6233 +vn -0.4883 0.7669 0.4165 +vn -0.3945 0.8128 0.4285 +vn -0.4795 0.7114 0.5138 +vn -0.3855 0.7561 0.5289 +vn -0.3150 0.8436 0.4349 +vn -0.2482 0.8642 0.4377 +vn -0.3059 0.7863 0.5368 +vn -0.2390 0.8067 0.5405 +vn -0.4704 0.6534 0.5931 +vn -0.3761 0.6966 0.6110 +vn -0.4610 0.5957 0.6578 +vn -0.3666 0.6372 0.6779 +vn -0.6797 0.4036 0.6125 +vn -0.5609 0.4828 0.6725 +vn -0.6718 0.3580 0.6485 +vn -0.5526 0.4328 0.7123 +vn -0.2001 0.9615 0.1885 +vn -0.1638 0.9683 0.1884 +vn -0.1660 0.9820 0.0900 +vn -0.2024 0.9752 0.0899 +vn -0.1948 0.9290 0.3147 +vn -0.1586 0.9359 0.3144 +vn -0.1867 0.8791 0.4385 +vn -0.1505 0.8862 0.4381 +vn -0.1774 0.8217 0.5416 +vn -0.1413 0.8290 0.5412 +vn -0.2963 0.7260 0.6205 +vn -0.2293 0.7462 0.6250 +vn -0.2867 0.6659 0.6887 +vn -0.2196 0.6858 0.6939 +vn -0.1429 0.9717 0.1882 +vn -0.1449 0.9853 0.0900 +vn -0.1381 0.9393 0.3141 +vn -0.0999 0.9441 0.3140 +vn -0.1034 0.9767 0.1882 +vn -0.1048 0.9904 0.0900 +vn -0.4520 0.5399 0.7101 +vn -0.3574 0.5799 0.7321 +vn -0.4434 0.4872 0.7524 +vn -0.3487 0.5257 0.7760 +vn -0.8856 0.1149 0.4501 +vn -0.7837 0.2239 0.5794 +vn -0.8806 0.0888 0.4655 +vn -0.7775 0.1903 0.5993 +vn -0.8229 0.1169 0.5560 +vn -0.3530 0.3751 0.8572 +vn -0.3472 0.3356 0.8757 +vn -0.8187 0.0909 0.5670 +vn -0.9475 -0.0345 0.3180 +vn -0.9445 -0.0491 0.3247 +vn -0.8152 0.0688 0.5751 +vn -0.9421 -0.0616 0.3296 +vn -0.3430 0.3019 0.8895 +vn -0.3402 0.2728 0.8999 +vn -0.8130 0.0495 0.5802 +vn -0.9400 -0.0721 0.3335 +vn -0.8760 0.0649 0.4779 +vn -0.7719 0.1594 0.6154 +vn -0.8718 0.0429 0.4880 +vn -0.7667 0.1311 0.6284 +vn -0.6645 0.3155 0.6775 +vn -0.5448 0.3862 0.7444 +vn -0.6576 0.2762 0.7009 +vn -0.5375 0.3430 0.7703 +vn -0.2774 0.6078 0.7441 +vn -0.2102 0.6273 0.7498 +vn -0.2685 0.5528 0.7889 +vn -0.2013 0.5720 0.7952 +vn -0.4354 0.4380 0.7865 +vn -0.3405 0.4750 0.8114 +vn -0.4279 0.3925 0.8142 +vn -0.3328 0.4282 0.8402 +vn -0.6513 0.2400 0.7198 +vn -0.5308 0.3034 0.7913 +vn -0.6455 0.2069 0.7352 +vn -0.5247 0.2669 0.8084 +vn -0.8683 0.0242 0.4955 +vn -0.7624 0.1070 0.6382 +vn -0.8652 0.0083 0.5014 +vn -0.7586 0.0865 0.6457 +vn -0.4210 0.3506 0.8366 +vn -0.3258 0.3850 0.8635 +vn -0.4146 0.3121 0.8548 +vn -0.3193 0.3454 0.8825 +vn -0.6407 0.1787 0.7467 +vn -0.5195 0.2360 0.8212 +vn -0.6365 0.1547 0.7556 +vn -0.5150 0.2096 0.8312 +vn -0.8622 -0.0070 0.5065 +vn -0.7550 0.0668 0.6523 +vn -0.9379 -0.0822 0.3370 +vn -0.9362 -0.0911 0.3396 +vn -0.8597 -0.0204 0.5104 +vn -0.7519 0.0495 0.6575 +vn -0.8108 0.0309 0.5845 +vn -0.3375 0.2447 0.9090 +vn -0.3356 0.2201 0.9159 +vn -0.8089 0.0148 0.5877 +vn -0.8080 0.0008 0.5891 +vn -0.9347 -0.0986 0.3416 +vn -0.3349 0.1990 0.9210 +vn -0.3349 0.1790 0.9251 +vn -0.8075 -0.0124 0.5897 +vn -0.9332 -0.1057 0.3434 +vn -0.8074 -0.0250 0.5895 +vn -0.9319 -0.1123 0.3450 +vn -0.3355 0.1600 0.9284 +vn -0.3369 0.1419 0.9308 +vn -0.8076 -0.0369 0.5886 +vn -0.9306 -0.1185 0.3464 +vn -0.8575 -0.0317 0.5135 +vn -0.7492 0.0349 0.6615 +vn -0.8554 -0.0423 0.5162 +vn -0.7466 0.0212 0.6649 +vn -0.6324 0.1316 0.7634 +vn -0.5107 0.1842 0.8398 +vn -0.6289 0.1114 0.7695 +vn -0.5069 0.1620 0.8466 +vn -0.8082 -0.0482 0.5869 +vn -0.9294 -0.1244 0.3475 +vn -0.3390 0.1247 0.9325 +vn -0.3419 0.1082 0.9335 +vn -0.8093 -0.0591 0.5844 +vn -0.9283 -0.1300 0.3485 +vn -0.8535 -0.0523 0.5185 +vn -0.7442 0.0083 0.6679 +vn -0.8516 -0.0617 0.5205 +vn -0.7419 -0.0038 0.6705 +vn -0.6258 0.0943 0.7742 +vn -0.5037 0.1432 0.8519 +vn -0.6229 0.0783 0.7784 +vn -0.5006 0.1255 0.8565 +vn -0.4092 0.2795 0.8686 +vn -0.3138 0.3117 0.8968 +vn -0.4046 0.2516 0.8792 +vn -0.3091 0.2830 0.9079 +vn -0.4001 0.2247 0.8885 +vn -0.3046 0.2552 0.9177 +vn -0.3962 0.2013 0.8958 +vn -0.3006 0.2310 0.9253 +vn -0.3929 0.1814 0.9015 +vn -0.2972 0.2105 0.9313 +vn -0.3898 0.1627 0.9064 +vn -0.2941 0.1912 0.9365 +vn -0.2333 0.3356 0.9127 +vn -0.1659 0.3533 0.9207 +vn -0.1715 0.3878 0.9057 +vn -0.2389 0.3698 0.8979 +vn -0.2286 0.3063 0.9241 +vn -0.1612 0.3238 0.9323 +vn -0.2240 0.2781 0.9341 +vn -0.1566 0.2954 0.9425 +vn -0.2200 0.2535 0.9420 +vn -0.1525 0.2706 0.9505 +vn -0.2454 0.4101 0.8784 +vn -0.1781 0.4283 0.8859 +vn -0.1852 0.4725 0.8617 +vn -0.2525 0.4539 0.8545 +vn -0.2602 0.5014 0.8252 +vn -0.1930 0.5203 0.8319 +vn -0.1167 0.4430 0.8889 +vn -0.0806 0.4508 0.8890 +vn -0.0876 0.4950 0.8645 +vn -0.1238 0.4872 0.8645 +vn -0.1103 0.4023 0.9088 +vn -0.0742 0.4101 0.9090 +vn -0.1314 0.5352 0.8344 +vn -0.0953 0.5429 0.8344 +vn -0.1036 0.5946 0.7973 +vn -0.1397 0.5870 0.7975 +vn -0.1486 0.6424 0.7518 +vn -0.1124 0.6499 0.7516 +vn -0.1218 0.7083 0.6953 +vn -0.1580 0.7008 0.6956 +vn -0.1677 0.7613 0.6264 +vn -0.1316 0.7686 0.6260 +vn -0.0962 0.6529 0.7513 +vn -0.1048 0.7114 0.6949 +vn -0.0881 0.5975 0.7970 +vn -0.0634 0.6007 0.7969 +vn -0.0693 0.6564 0.7512 +vn -0.0756 0.7152 0.6948 +vn -0.1308 0.8896 0.4377 +vn -0.1225 0.8322 0.5408 +vn -0.0885 0.8366 0.5407 +vn -0.0946 0.8942 0.4376 +vn -0.1136 0.7718 0.6256 +vn -0.0821 0.7759 0.6255 +vn -0.0805 0.5457 0.8341 +vn -0.0735 0.4977 0.8642 +vn -0.0527 0.5004 0.8642 +vn -0.0579 0.5487 0.8340 +vn -0.0587 0.9804 0.1882 +vn -0.0595 0.9942 0.0900 +vn -0.0567 0.9477 0.3140 +vn -0.0128 0.9493 0.3140 +vn -0.0133 0.9820 0.1882 +vn -0.0135 0.9959 0.0900 +vn 0.0349 0.9815 0.1882 +vn 0.0354 0.9953 0.0900 +vn 0.0338 0.9488 0.3140 +vn 0.0803 0.9460 0.3140 +vn 0.0830 0.9786 0.1882 +vn 0.0842 0.9924 0.0900 +vn -0.0537 0.8976 0.4376 +vn -0.0502 0.8397 0.5407 +vn -0.0114 0.8412 0.5406 +vn -0.0122 0.8991 0.4376 +vn 0.1310 0.9734 0.1882 +vn 0.1328 0.9870 0.0900 +vn 0.1266 0.9409 0.3140 +vn 0.1726 0.9336 0.3140 +vn 0.1786 0.9658 0.1882 +vn 0.1811 0.9793 0.0900 +vn 0.2257 0.9558 0.1882 +vn 0.2289 0.9693 0.0900 +vn 0.2182 0.9240 0.3140 +vn 0.2633 0.9122 0.3140 +vn 0.2724 0.9436 0.1882 +vn 0.2762 0.9569 0.0900 +vn 0.0320 0.8986 0.4376 +vn 0.0299 0.8407 0.5407 +vn 0.0711 0.8382 0.5407 +vn 0.0760 0.8959 0.4376 +vn 0.1199 0.8912 0.4375 +vn 0.1122 0.8338 0.5406 +vn 0.1529 0.8272 0.5407 +vn 0.1635 0.8842 0.4376 +vn 0.2067 0.8751 0.4376 +vn 0.1934 0.8187 0.5407 +vn 0.2333 0.8083 0.5406 +vn 0.2494 0.8639 0.4376 +vn 0.1040 0.7732 0.6255 +vn 0.0959 0.7127 0.6949 +vn 0.1307 0.7072 0.6949 +vn 0.1418 0.7672 0.6255 +vn 0.0660 0.7774 0.6255 +vn 0.0608 0.7166 0.6949 +vn 0.1793 0.7593 0.6255 +vn 0.1653 0.6999 0.6949 +vn 0.1994 0.6909 0.6949 +vn 0.2164 0.7496 0.6255 +vn 0.3183 0.9291 0.1882 +vn 0.3228 0.9422 0.0900 +vn 0.3077 0.8982 0.3140 +vn 0.3514 0.8820 0.3140 +vn 0.3635 0.9124 0.1882 +vn 0.3687 0.9252 0.0900 +vn 0.4079 0.8934 0.1882 +vn 0.4136 0.9060 0.0900 +vn 0.3943 0.8637 0.3140 +vn 0.4362 0.8433 0.3140 +vn 0.4512 0.8724 0.1882 +vn 0.4576 0.8846 0.0900 +vn 0.2914 0.8506 0.4376 +vn 0.2727 0.7958 0.5407 +vn 0.3114 0.7815 0.5406 +vn 0.3328 0.8353 0.4376 +vn 0.4910 0.8506 0.1882 +vn 0.4980 0.8625 0.0900 +vn 0.4747 0.8222 0.3140 +vn 0.5118 0.7997 0.3140 +vn 0.5294 0.8272 0.1882 +vn 0.5368 0.8389 0.0900 +vn 0.3734 0.8180 0.4376 +vn 0.3494 0.7653 0.5406 +vn 0.3865 0.7472 0.5407 +vn 0.4131 0.7987 0.4376 +vn 0.5625 0.8051 0.1882 +vn 0.5704 0.8164 0.0900 +vn 0.5438 0.7782 0.3141 +vn 0.5605 0.7661 0.3144 +vn 0.5797 0.7927 0.1884 +vn 0.5878 0.8040 0.0900 +vn 0.4496 0.7787 0.4376 +vn 0.4206 0.7285 0.5407 +vn 0.4534 0.7086 0.5407 +vn 0.4847 0.7574 0.4376 +vn 0.6091 0.7704 0.1884 +vn 0.6577 0.7295 0.1880 +vn 0.6664 0.7407 0.0854 +vn 0.6173 0.7816 0.0899 +vn 0.5898 0.7437 0.3147 +vn 0.6383 0.7028 0.3141 +vn 0.5150 0.7370 0.4377 +vn 0.4818 0.6895 0.5408 +vn 0.4972 0.6782 0.5412 +vn 0.5311 0.7253 0.4381 +vn 0.5603 0.7028 0.4384 +vn 0.6086 0.6619 0.4376 +vn 0.5263 0.6555 0.5416 +vn 0.5746 0.6145 0.5405 +vn 0.7082 0.6809 0.1864 +vn 0.7654 0.6169 0.1833 +vn 0.7737 0.6273 0.0892 +vn 0.7167 0.6917 0.0886 +vn 0.6888 0.6544 0.3119 +vn 0.7460 0.5908 0.3073 +vn 0.8279 0.5320 0.1776 +vn 0.8363 0.5418 0.0835 +vn 0.8088 0.5067 0.2985 +vn 0.7798 0.4675 0.4164 +vn 0.8457 0.3586 0.3953 +vn 0.7165 0.5505 0.4284 +vn 0.6830 0.5037 0.5289 +vn 0.7471 0.4217 0.5138 +vn 0.8143 0.3149 0.4875 +vn 0.4906 0.6058 0.6264 +vn 0.5389 0.5648 0.6250 +vn 0.4615 0.6286 0.6260 +vn 0.4258 0.5790 0.6953 +vn 0.4548 0.5561 0.6956 +vn 0.5032 0.5151 0.6939 +vn 0.4469 0.6394 0.6256 +vn 0.4120 0.5893 0.6950 +vn 0.4205 0.6572 0.6255 +vn 0.3875 0.6058 0.6949 +vn 0.5898 0.5168 0.6206 +vn 0.6480 0.4547 0.6110 +vn 0.6253 0.5664 0.5369 +vn 0.5543 0.4673 0.6888 +vn 0.6130 0.4059 0.6779 +vn 0.3900 0.6757 0.6256 +vn 0.3595 0.6228 0.6949 +vn 0.3584 0.6930 0.6255 +vn 0.3304 0.6388 0.6949 +vn 0.4203 0.5080 0.7519 +vn 0.4687 0.4670 0.7498 +vn 0.3913 0.5310 0.7516 +vn 0.3586 0.4855 0.7973 +vn 0.3876 0.4624 0.7975 +vn 0.4359 0.4215 0.7952 +vn 0.3782 0.5409 0.7513 +vn 0.3461 0.4949 0.7970 +vn 0.3557 0.5560 0.7512 +vn 0.3254 0.5089 0.7969 +vn 0.3240 0.7097 0.6255 +vn 0.2987 0.6542 0.6949 +vn 0.2888 0.7248 0.6255 +vn 0.2662 0.6681 0.6949 +vn 0.3299 0.5716 0.7513 +vn 0.3019 0.5232 0.7970 +vn 0.3032 0.5863 0.7512 +vn 0.2775 0.5365 0.7969 +vn 0.2529 0.7381 0.6255 +vn 0.2331 0.6803 0.6949 +vn 0.2741 0.6004 0.7512 +vn 0.2509 0.5495 0.7969 +vn 0.2443 0.6132 0.7512 +vn 0.2236 0.5612 0.7969 +vn 0.2139 0.6244 0.7512 +vn 0.1958 0.5714 0.7969 +vn 0.1830 0.6342 0.7512 +vn 0.1675 0.5804 0.7969 +vn 0.1517 0.6424 0.7512 +vn 0.1388 0.5879 0.7969 +vn 0.1200 0.6491 0.7512 +vn 0.1098 0.5940 0.7969 +vn 0.2291 0.5019 0.8340 +vn 0.2090 0.4577 0.8642 +vn 0.2312 0.4469 0.8642 +vn 0.2535 0.4900 0.8340 +vn 0.2042 0.5125 0.8340 +vn 0.1863 0.4674 0.8642 +vn 0.1788 0.5219 0.8340 +vn 0.1631 0.4760 0.8642 +vn 0.1530 0.5301 0.8340 +vn 0.1395 0.4834 0.8642 +vn 0.2757 0.4778 0.8341 +vn 0.2515 0.4358 0.8642 +vn 0.2710 0.4240 0.8642 +vn 0.2972 0.4648 0.8340 +vn 0.3162 0.4520 0.8341 +vn 0.2884 0.4122 0.8642 +vn 0.2998 0.4035 0.8645 +vn 0.3281 0.4430 0.8344 +vn 0.2291 0.3971 0.8887 +vn 0.2085 0.3614 0.9088 +vn 0.2246 0.3517 0.9088 +vn 0.2468 0.3863 0.8887 +vn 0.2106 0.4072 0.8887 +vn 0.1917 0.3706 0.9088 +vn 0.3570 0.4199 0.8344 +vn 0.4053 0.3790 0.8319 +vn 0.3287 0.3804 0.8645 +vn 0.3770 0.3397 0.8617 +vn 0.2628 0.3755 0.8888 +vn 0.2393 0.3418 0.9088 +vn 0.2498 0.3337 0.9090 +vn 0.2737 0.3671 0.8890 +vn 0.3026 0.3440 0.8889 +vn 0.3509 0.3034 0.8859 +vn 0.2786 0.3105 0.9088 +vn 0.3269 0.2701 0.9056 +vn 0.5200 0.4195 0.7441 +vn 0.5791 0.3587 0.7321 +vn 0.4874 0.3743 0.7889 +vn 0.5470 0.3142 0.7760 +vn 0.4570 0.3321 0.8251 +vn 0.5170 0.2726 0.8114 +vn 0.4289 0.2930 0.8545 +vn 0.4892 0.2341 0.8402 +vn 0.7130 0.3739 0.5932 +vn 0.7817 0.2695 0.5624 +vn 0.6787 0.3265 0.6578 +vn 0.7491 0.2244 0.6233 +vn 0.9064 0.2193 0.3610 +vn 0.9495 0.0502 0.3099 +vn 0.8774 0.1791 0.4450 +vn 0.9241 0.0156 0.3818 +vn 0.6458 0.2806 0.7101 +vn 0.7177 0.1809 0.6725 +vn 0.6145 0.2373 0.7524 +vn 0.6878 0.1399 0.7123 +vn 0.8474 0.1376 0.5128 +vn 0.8980 -0.0201 0.4395 +vn 0.8174 0.0965 0.5679 +vn 0.8720 -0.0551 0.4864 +vn 0.9605 -0.1381 0.2415 +vn 0.9318 -0.3251 0.1613 +vn 0.9438 -0.3098 0.1149 +vn 0.9783 -0.1153 0.1724 +vn 0.9404 -0.1652 0.2973 +vn 0.9181 -0.3432 0.1984 +vn 0.9601 -0.0589 0.2733 +vn 0.7522 0.5018 0.4271 +vn 0.7843 0.5414 0.3028 +vn 0.9804 -0.0354 0.1936 +vn 0.9372 -0.0864 0.3380 +vn 0.7166 0.4570 0.5269 +vn 0.9198 -0.1927 0.3419 +vn 0.9041 -0.3614 0.2279 +vn 0.8992 -0.2199 0.3782 +vn 0.8903 -0.3794 0.2518 +vn 0.7884 0.0569 0.6125 +vn 0.8469 -0.0889 0.5242 +vn 0.7610 0.0196 0.6485 +vn 0.8232 -0.1207 0.5548 +vn 0.9139 -0.1154 0.3892 +vn 0.6808 0.4113 0.6061 +vn 0.8906 -0.1447 0.4311 +vn 0.6451 0.3655 0.6710 +vn 0.8795 -0.2460 0.4074 +vn 0.8770 -0.3967 0.2712 +vn 0.8608 -0.2705 0.4311 +vn 0.8644 -0.4129 0.2869 +vn 0.8681 -0.1732 0.4652 +vn 0.6106 0.3209 0.7240 +vn 0.8468 -0.2005 0.4927 +vn 0.5781 0.2783 0.7670 +vn 0.7354 -0.0151 0.6775 +vn 0.8010 -0.1504 0.5794 +vn 0.6600 0.1016 0.7444 +vn 0.6342 0.0663 0.7703 +vn 0.7117 -0.0472 0.7009 +vn 0.7805 -0.1777 0.5993 +vn 0.8270 -0.2263 0.5147 +vn 0.5479 0.2381 0.8019 +vn 0.8527 -0.4280 0.2995 +vn 0.8419 -0.4419 0.3098 +vn 0.8087 -0.2505 0.5323 +vn 0.5202 0.2006 0.8301 +vn 0.8434 -0.2934 0.4501 +vn 0.8273 -0.3145 0.4655 +vn 0.7920 -0.2730 0.5461 +vn 0.4950 0.1656 0.8530 +vn 0.8319 -0.4547 0.3180 +vn 0.8228 -0.4665 0.3247 +vn 0.7768 -0.2940 0.5569 +vn 0.4723 0.1330 0.8714 +vn 0.8125 -0.3339 0.4779 +vn 0.7617 -0.2028 0.6154 +vn 0.7444 -0.2258 0.6284 +vn 0.7989 -0.3516 0.4880 +vn 0.7640 -0.3119 0.5648 +vn 0.4535 0.1048 0.8851 +vn 0.8150 -0.4765 0.3296 +vn 0.8084 -0.4850 0.3335 +vn 0.7535 -0.3279 0.5698 +vn 0.4380 0.0802 0.8954 +vn 0.7435 -0.3432 0.5740 +vn 0.4231 0.0564 0.9043 +vn 0.8021 -0.4931 0.3370 +vn 0.7965 -0.5003 0.3396 +vn 0.7347 -0.3565 0.5771 +vn 0.4105 0.0354 0.9112 +vn 0.7874 -0.3668 0.4955 +vn 0.7297 -0.2454 0.6382 +vn 0.7172 -0.2620 0.6457 +vn 0.7775 -0.3796 0.5014 +vn 0.7680 -0.3920 0.5065 +vn 0.7051 -0.2781 0.6523 +vn 0.6946 -0.2921 0.6575 +vn 0.7598 -0.4028 0.5104 +vn 0.7527 -0.4119 0.5135 +vn 0.7918 -0.5063 0.3416 +vn 0.6856 -0.3039 0.6615 +vn 0.6772 -0.3150 0.6649 +vn 0.7461 -0.4205 0.5162 +vn 0.7874 -0.5120 0.3434 +vn 0.6244 -0.1652 0.7634 +vn 0.5391 -0.0637 0.8398 +vn 0.5258 -0.0819 0.8466 +vn 0.6123 -0.1817 0.7695 +vn 0.6384 -0.1464 0.7556 +vn 0.5544 -0.0429 0.8312 +vn 0.6019 -0.1956 0.7743 +vn 0.5145 -0.0973 0.8519 +vn 0.5039 -0.1117 0.8565 +vn 0.5921 -0.2087 0.7783 +vn 0.6530 -0.1268 0.7467 +vn 0.5702 -0.0213 0.8212 +vn 0.6699 -0.1038 0.7352 +vn 0.5886 0.0040 0.8084 +vn 0.6899 -0.0767 0.7198 +vn 0.6105 0.0338 0.7913 +vn 0.4584 0.0220 0.8885 +vn 0.3866 0.0920 0.9176 +vn 0.3722 0.0721 0.9253 +vn 0.4444 0.0027 0.8958 +vn 0.4744 0.0440 0.8792 +vn 0.4031 0.1148 0.9079 +vn 0.4910 0.0669 0.8686 +vn 0.4201 0.1384 0.8969 +vn 0.5104 0.0937 0.8548 +vn 0.4401 0.1661 0.8825 +vn 0.5333 0.1252 0.8366 +vn 0.4636 0.1986 0.8635 +vn 0.5582 0.1596 0.8142 +vn 0.5853 0.1969 0.7865 +vn 0.4029 0.2569 0.8784 +vn 0.3790 0.2239 0.8979 +vn 0.3588 0.1958 0.9127 +vn 0.3065 0.2418 0.9207 +vn 0.2890 0.2175 0.9323 +vn 0.3415 0.1717 0.9241 +vn 0.2583 0.2820 0.9240 +vn 0.2295 0.3052 0.9242 +vn 0.2122 0.2808 0.9360 +vn 0.2410 0.2576 0.9357 +vn 0.2193 0.3130 0.9241 +vn 0.2022 0.2885 0.9359 +vn 0.2057 0.3222 0.9241 +vn 0.1895 0.2970 0.9359 +vn 0.3247 0.1486 0.9341 +vn 0.2722 0.1942 0.9424 +vn 0.2575 0.1738 0.9505 +vn 0.3101 0.1283 0.9420 +vn 0.2242 0.2340 0.9460 +vn 0.1955 0.2572 0.9464 +vn 0.1809 0.2366 0.9546 +vn 0.2097 0.2135 0.9542 +vn 0.1857 0.2648 0.9463 +vn 0.1712 0.2441 0.9545 +vn 0.1739 0.2727 0.9462 +vn 0.1603 0.2515 0.9545 +vn 0.1910 0.3311 0.9241 +vn 0.1760 0.3052 0.9359 +vn 0.1756 0.3395 0.9241 +vn 0.1619 0.3129 0.9359 +vn 0.1904 0.4170 0.8887 +vn 0.1733 0.3796 0.9088 +vn 0.1697 0.4259 0.8887 +vn 0.1545 0.3876 0.9088 +vn 0.1615 0.2802 0.9463 +vn 0.1489 0.2584 0.9545 +vn 0.1486 0.2873 0.9462 +vn 0.1370 0.2649 0.9545 +vn 0.1587 0.3477 0.9241 +vn 0.1463 0.3205 0.9359 +vn 0.1415 0.3551 0.9241 +vn 0.1304 0.3273 0.9359 +vn 0.1590 0.2265 0.9609 +vn 0.1475 0.2100 0.9665 +vn 0.1571 0.2025 0.9666 +vn 0.1686 0.2191 0.9610 +vn 0.1487 0.2335 0.9609 +vn 0.1378 0.2165 0.9665 +vn 0.1973 0.1959 0.9606 +vn 0.2450 0.1565 0.9568 +vn 0.1858 0.1794 0.9661 +vn 0.2332 0.1402 0.9623 +vn 0.2978 0.1112 0.9481 +vn 0.3600 0.0553 0.9313 +vn 0.2861 0.0950 0.9535 +vn 0.3485 0.0394 0.9365 +vn 0.1382 0.2398 0.9609 +vn 0.1281 0.2224 0.9665 +vn 0.1272 0.2459 0.9609 +vn 0.1179 0.2280 0.9665 +vn 0.1749 0.1639 0.9708 +vn 0.2222 0.1249 0.9670 +vn 0.1463 0.1869 0.9714 +vn 0.1362 0.1722 0.9756 +vn 0.1648 0.1492 0.9750 +vn 0.2118 0.1105 0.9711 +vn 0.1367 0.1944 0.9713 +vn 0.1265 0.1797 0.9756 +vn 0.1276 0.2006 0.9713 +vn 0.1179 0.1856 0.9755 +vn 0.4325 -0.0136 0.9015 +vn 0.4214 -0.0289 0.9064 +vn 0.2751 0.0798 0.9581 +vn 0.3377 0.0245 0.9409 +vn 0.2648 0.0655 0.9621 +vn 0.3275 0.0105 0.9448 +vn 0.4108 -0.0433 0.9107 +vn 0.4939 -0.1253 0.8604 +vn 0.4010 -0.0569 0.9143 +vn 0.4845 -0.1381 0.8638 +vn 0.5830 -0.2210 0.7819 +vn 0.6693 -0.3255 0.6679 +vn 0.5744 -0.2325 0.7849 +vn 0.6618 -0.3353 0.6705 +vn 0.2551 0.0521 0.9655 +vn 0.3179 -0.0027 0.9481 +vn 0.2020 0.0968 0.9746 +vn 0.1927 0.0840 0.9777 +vn 0.2459 0.0393 0.9685 +vn 0.3089 -0.0152 0.9510 +vn 0.7399 -0.4286 0.5185 +vn 0.7832 -0.5173 0.3450 +vn 0.7341 -0.4361 0.5205 +vn 0.7792 -0.5223 0.3464 +vn 0.3916 -0.0697 0.9175 +vn 0.4756 -0.1502 0.8667 +vn 0.3828 -0.0817 0.9202 +vn 0.4673 -0.1615 0.8692 +vn 0.5662 -0.2435 0.7875 +vn 0.6548 -0.3446 0.6727 +vn 0.5585 -0.2538 0.7897 +vn 0.6482 -0.3533 0.6746 +vn 0.7157 -0.3907 0.5789 +vn 0.3835 -0.0181 0.9234 +vn 0.3915 -0.0009 0.9202 +vn 0.7214 -0.3798 0.5791 +vn 0.7107 -0.4012 0.5779 +vn 0.3766 -0.0347 0.9257 +vn 0.7277 -0.3684 0.5785 +vn 0.4004 0.0169 0.9162 +vn 0.7286 -0.4433 0.5222 +vn 0.7755 -0.5271 0.3475 +vn 0.7233 -0.4500 0.5237 +vn 0.7720 -0.5315 0.3485 +vn 0.7062 -0.4114 0.5762 +vn 0.3707 -0.0509 0.9273 +vn 0.7023 -0.4213 0.5738 +vn 0.3659 -0.0668 0.9283 +vn 0.6990 -0.4310 0.5707 +vn 0.3620 -0.0824 0.9285 +vn 0.7687 -0.5357 0.3494 +vn 0.7656 -0.5397 0.3501 +vn 0.6963 -0.4404 0.5668 +vn 0.3592 -0.0978 0.9281 +vn 0.7184 -0.4564 0.5249 +vn 0.6419 -0.3616 0.6762 +vn 0.6360 -0.3694 0.6775 +vn 0.7138 -0.4624 0.5260 +vn 0.7094 -0.4681 0.5269 +vn 0.7627 -0.5435 0.3507 +vn 0.6304 -0.3768 0.6787 +vn 0.6251 -0.3838 0.6797 +vn 0.7052 -0.4735 0.5277 +vn 0.7599 -0.5470 0.3512 +vn 0.5513 -0.2635 0.7916 +vn 0.4593 -0.1723 0.8714 +vn 0.4519 -0.1824 0.8732 +vn 0.5444 -0.2727 0.7933 +vn 0.5379 -0.2814 0.7946 +vn 0.4448 -0.1921 0.8748 +vn 0.4381 -0.2012 0.8761 +vn 0.5318 -0.2896 0.7958 +vn 0.3745 -0.0931 0.9225 +vn 0.3003 -0.0270 0.9535 +vn 0.2922 -0.0382 0.9556 +vn 0.3666 -0.1039 0.9245 +vn 0.3592 -0.1141 0.9263 +vn 0.2846 -0.0488 0.9574 +vn 0.2773 -0.0588 0.9590 +vn 0.3521 -0.1238 0.9277 +vn 0.2372 0.0273 0.9711 +vn 0.1839 0.0719 0.9803 +vn 0.1757 0.0604 0.9826 +vn 0.2289 0.0159 0.9733 +vn 0.2212 0.0052 0.9752 +vn 0.1678 0.0495 0.9846 +vn 0.1604 0.0392 0.9863 +vn 0.2138 -0.0051 0.9769 +vn 0.3470 -0.1309 0.9287 +vn 0.4332 -0.2078 0.8770 +vn 0.2720 -0.0661 0.9600 +vn 0.2698 -0.0692 0.9604 +vn 0.3448 -0.1338 0.9291 +vn 0.4312 -0.2106 0.8773 +vn 0.2084 -0.0125 0.9780 +vn 0.1550 0.0317 0.9874 +vn 0.1527 0.0285 0.9879 +vn 0.2061 -0.0156 0.9784 +vn 0.1230 0.0861 0.9887 +vn 0.0952 0.1086 0.9895 +vn 0.0889 0.0973 0.9913 +vn 0.1164 0.0750 0.9904 +vn 0.1302 0.0975 0.9867 +vn 0.1022 0.1202 0.9875 +vn 0.5274 -0.2956 0.7965 +vn 0.6213 -0.3889 0.6802 +vn 0.5255 -0.2981 0.7968 +vn 0.6197 -0.3910 0.6805 +vn 0.1121 0.0667 0.9915 +vn 0.0850 0.0886 0.9924 +vn 0.0842 0.0841 0.9929 +vn 0.1108 0.0626 0.9919 +vn 0.7022 -0.4775 0.5281 +vn 0.7579 -0.5497 0.3514 +vn 0.7010 -0.4791 0.5282 +vn 0.7570 -0.5508 0.3515 +vn 0.6941 -0.4497 0.5621 +vn 0.6925 -0.4588 0.5567 +vn 0.3574 -0.1132 0.9271 +vn 0.3567 -0.1285 0.9253 +vn 0.6924 -0.4664 0.5505 +vn 0.3588 -0.1418 0.9226 +vn 0.6936 -0.4709 0.5451 +vn 0.3626 -0.1498 0.9198 +vn 0.5169 -0.3089 0.7984 +vn 0.6123 -0.3999 0.6820 +vn 0.4218 -0.2228 0.8789 +vn 0.4050 -0.2454 0.8808 +vn 0.5017 -0.3291 0.8000 +vn 0.5993 -0.4168 0.6834 +vn 0.6901 -0.4797 0.5419 +vn 0.3565 -0.1635 0.9199 +vn 0.7533 -0.5550 0.3529 +vn 0.7467 -0.5634 0.3537 +vn 0.6803 -0.4922 0.5431 +vn 0.3400 -0.1843 0.9222 +vn 0.6953 -0.4857 0.5298 +vn 0.6852 -0.4986 0.5309 +vn 0.6691 -0.5071 0.5432 +vn 0.3212 -0.2084 0.9238 +vn 0.7387 -0.5731 0.3547 +vn 0.6731 -0.5137 0.5321 +vn 0.5836 -0.4368 0.6846 +vn 0.5609 -0.4655 0.6846 +vn 0.6555 -0.5354 0.5325 +vn 0.4832 -0.3531 0.8012 +vn 0.3847 -0.2723 0.8820 +vn 0.3556 -0.3108 0.8815 +vn 0.4567 -0.3874 0.8008 +vn 0.6325 -0.5643 0.5306 +vn 0.5311 -0.5035 0.6815 +vn 0.4939 -0.5508 0.6728 +vn 0.6037 -0.6002 0.5247 +vn 0.4219 -0.4328 0.7967 +vn 0.3174 -0.3615 0.8767 +vn 0.2699 -0.4245 0.8643 +vn 0.3785 -0.4892 0.7857 +vn 0.5683 -0.6446 0.5114 +vn 0.4488 -0.6086 0.6544 +vn 0.3976 -0.6745 0.6220 +vn 0.5277 -0.6959 0.4871 +vn 0.6697 -0.6581 0.3441 +vn 0.6421 -0.6925 0.3288 +vn 0.5732 -0.6319 0.5217 +vn 0.1647 -0.4020 0.9007 +vn 0.5339 -0.6826 0.4990 +vn 0.1009 -0.4808 0.8710 +vn 0.3264 -0.5574 0.7634 +vn 0.2130 -0.5002 0.8393 +vn 0.1491 -0.5855 0.7968 +vn 0.2675 -0.6346 0.7250 +vn 0.2047 -0.7173 0.6660 +vn 0.3422 -0.7461 0.5712 +vn 0.0814 -0.6760 0.7324 +vn 0.0170 -0.7630 0.6462 +vn 0.1450 -0.7968 0.5866 +vn 0.2895 -0.8150 0.5019 +vn -0.0231 -0.6304 0.7759 +vn -0.1090 -0.5856 0.8032 +vn -0.1782 -0.6806 0.7106 +vn -0.0905 -0.7223 0.6857 +vn 0.0476 -0.5347 0.8437 +vn -0.0366 -0.4867 0.8728 +vn 0.1147 -0.4440 0.8887 +vn 0.0323 -0.3926 0.9191 +vn 0.1744 -0.3634 0.9152 +vn 0.0939 -0.3088 0.9465 +vn 0.2246 -0.2958 0.9285 +vn 0.1456 -0.2383 0.9602 +vn 0.2649 -0.2415 0.9335 +vn 0.1872 -0.1816 0.9654 +vn -0.1789 -0.5443 0.8196 +vn -0.2357 -0.5073 0.8289 +vn -0.3066 -0.6053 0.7346 +vn -0.2491 -0.6412 0.7258 +vn -0.1055 -0.4435 0.8901 +vn -0.1618 -0.4053 0.8998 +vn 0.2957 -0.2001 0.9341 +vn 0.2190 -0.1385 0.9658 +vn 0.3171 -0.1712 0.9328 +vn 0.2411 -0.1082 0.9644 +vn -0.0355 -0.3472 0.9371 +vn -0.0912 -0.3078 0.9471 +vn 0.0270 -0.2614 0.9649 +vn -0.0282 -0.2209 0.9749 +vn 0.0797 -0.1892 0.9787 +vn 0.0250 -0.1476 0.9887 +vn 0.1220 -0.1311 0.9838 +vn 0.0677 -0.0887 0.9938 +vn 0.3349 -0.1470 0.9307 +vn 0.2595 -0.0830 0.9622 +vn 0.1543 -0.0868 0.9842 +vn 0.1003 -0.0437 0.9940 +vn 0.1769 -0.0557 0.9826 +vn 0.1232 -0.0122 0.9923 +vn 0.1957 -0.0299 0.9802 +vn 0.1421 0.0140 0.9898 +vn -0.0167 -0.1154 0.9932 +vn -0.0428 -0.0946 0.9946 +vn -0.0961 -0.1688 0.9810 +vn -0.0700 -0.1892 0.9794 +vn 0.0261 -0.0559 0.9981 +vn -0.0000 -0.0350 0.9994 +vn 0.1006 0.0477 0.9938 +vn 0.0744 0.0689 0.9948 +vn 0.0555 0.0424 0.9976 +vn 0.0816 0.0212 0.9964 +vn 0.0588 -0.0106 0.9982 +vn 0.0326 0.0105 0.9994 +vn 0.0601 0.0805 0.9949 +vn 0.0417 0.0535 0.9977 +vn 0.0699 0.0953 0.9930 +vn 0.0623 0.1006 0.9930 +vn 0.0528 0.0854 0.9949 +vn 0.0356 0.0576 0.9977 +vn 0.0197 0.0212 0.9996 +vn -0.0117 -0.0251 0.9996 +vn 0.0150 0.0243 0.9996 +vn -0.0144 -0.0233 0.9996 +vn -0.0530 -0.0857 0.9949 +vn -0.1042 -0.1611 0.9814 +vn -0.0529 -0.0857 0.9949 +vn -0.1008 -0.1634 0.9814 +vn -0.1332 -0.2768 0.9517 +vn -0.1593 -0.2566 0.9533 +vn -0.2301 -0.3551 0.9061 +vn -0.2040 -0.3749 0.9043 +vn -0.1650 -0.2506 0.9539 +vn -0.2332 -0.3510 0.9069 +vn -0.1576 -0.2555 0.9539 +vn -0.2212 -0.3589 0.9068 +vn -0.2780 -0.4776 0.8334 +vn -0.3043 -0.4581 0.8352 +vn -0.3754 -0.5570 0.7408 +vn -0.3491 -0.5762 0.7390 +vn -0.3046 -0.4561 0.8362 +vn -0.3731 -0.5572 0.7418 +vn -0.2878 -0.4671 0.8361 +vn -0.3517 -0.5711 0.7417 +vn -0.0499 -0.0875 0.9949 +vn -0.0951 -0.1668 0.9814 +vn -0.0136 -0.0238 0.9996 +vn -0.0125 -0.0242 0.9996 +vn -0.0462 -0.0893 0.9949 +vn -0.0881 -0.1703 0.9814 +vn -0.4111 -0.6622 0.6264 +vn -0.3682 -0.6908 0.6223 +vn -0.4375 -0.6433 0.6283 +vn -0.4864 -0.7115 0.5072 +vn -0.4598 -0.7302 0.5054 +vn -0.4166 -0.7583 0.5014 +vn -0.1487 -0.2608 0.9539 +vn -0.2088 -0.3662 0.9068 +vn -0.1378 -0.2664 0.9540 +vn -0.1935 -0.3742 0.9069 +vn -0.4329 -0.6454 0.6293 +vn -0.4800 -0.7151 0.5081 +vn -0.4074 -0.6619 0.6292 +vn -0.4514 -0.7336 0.5080 +vn -0.2717 -0.4766 0.8361 +vn -0.3321 -0.5827 0.7417 +vn -0.2519 -0.4870 0.8363 +vn -0.3080 -0.5955 0.7420 +vn -0.3103 -0.7257 0.6141 +vn -0.2383 -0.7635 0.6002 +vn -0.3579 -0.7924 0.4939 +vn -0.2849 -0.8289 0.4815 +vn -0.1490 -0.8025 0.5778 +vn -0.0390 -0.8389 0.5429 +vn -0.1939 -0.8655 0.4618 +vn -0.0814 -0.8982 0.4319 +vn -0.4868 -0.7680 0.4162 +vn -0.4431 -0.7958 0.4128 +vn -0.5136 -0.7495 0.4177 +vn -0.5207 -0.7594 0.3901 +vn -0.4939 -0.7778 0.3887 +vn -0.4501 -0.8054 0.3857 +vn -0.5063 -0.7541 0.4183 +vn -0.5130 -0.7644 0.3905 +vn -0.4759 -0.7737 0.4182 +vn -0.4822 -0.7842 0.3905 +vn -0.3836 -0.8292 0.4065 +vn -0.3095 -0.8645 0.3960 +vn -0.3902 -0.8387 0.3799 +vn -0.3155 -0.8736 0.3704 +vn -0.4497 -0.7892 0.4183 +vn -0.4558 -0.7998 0.3906 +vn -0.4265 -0.7483 0.5081 +vn -0.3957 -0.7649 0.5083 +vn -0.4173 -0.8067 0.4184 +vn -0.4229 -0.8177 0.3906 +vn -0.2168 -0.8993 0.3797 +vn -0.1020 -0.9293 0.3550 +vn -0.2221 -0.9079 0.3555 +vn -0.1063 -0.9370 0.3328 +vn 0.0931 -0.8662 0.4909 +vn 0.2437 -0.8751 0.4180 +vn 0.0544 -0.9200 0.3882 +vn 0.2103 -0.9210 0.3280 +vn 0.0369 -0.9470 0.3190 +vn 0.1968 -0.9427 0.2696 +vn 0.0339 -0.9535 0.2995 +vn 0.1953 -0.9474 0.2535 +vn 0.3670 -0.9068 0.2072 +vn 0.3761 -0.8917 0.2518 +vn 0.3670 -0.9095 0.1953 +vn 0.4025 -0.8561 0.3241 +vn 0.5530 -0.8048 0.2156 +vn 0.5797 -0.7713 0.2629 +vn 0.4398 -0.8082 0.3916 +vn 0.3933 -0.8639 0.3147 +vn -0.1716 -0.8322 0.5273 +vn -0.0966 -0.7357 0.6704 +vn 0.4333 -0.8115 0.3921 +vn -0.3772 -0.8262 0.4184 +vn -0.3823 -0.8374 0.3906 +vn -0.3576 -0.7834 0.5083 +vn -0.3188 -0.8000 0.5083 +vn -0.3362 -0.8437 0.4184 +vn -0.3407 -0.8552 0.3906 +vn -0.3849 -0.6752 0.6292 +vn -0.3570 -0.6902 0.6294 +vn -0.3227 -0.7069 0.6294 +vn -0.2784 -0.6099 0.7420 +vn -0.2482 -0.6228 0.7420 +vn -0.2876 -0.7219 0.6294 +vn -0.2277 -0.4988 0.8363 +vn -0.1749 -0.3832 0.9069 +vn -0.1559 -0.3913 0.9070 +vn -0.2030 -0.5094 0.8363 +vn -0.2944 -0.8592 0.4184 +vn -0.2984 -0.8709 0.3906 +vn -0.2791 -0.8147 0.5083 +vn -0.2388 -0.8274 0.5083 +vn -0.2519 -0.8726 0.4184 +vn -0.2553 -0.8844 0.3906 +vn -0.2519 -0.7351 0.6294 +vn -0.2173 -0.6342 0.7420 +vn -0.1859 -0.6441 0.7420 +vn -0.2155 -0.7466 0.6294 +vn -0.2088 -0.8839 0.4184 +vn -0.2116 -0.8959 0.3906 +vn -0.1979 -0.8381 0.5083 +vn -0.1566 -0.8468 0.5083 +vn -0.1651 -0.8931 0.4184 +vn -0.1674 -0.9052 0.3906 +vn -0.1786 -0.7562 0.6294 +vn -0.1541 -0.6525 0.7420 +vn -0.1219 -0.6593 0.7420 +vn -0.1413 -0.7641 0.6294 +vn -0.1777 -0.5187 0.8363 +vn -0.1365 -0.3985 0.9070 +vn -0.1168 -0.4047 0.9070 +vn -0.1521 -0.5268 0.8363 +vn -0.1260 -0.5336 0.8363 +vn -0.0968 -0.4100 0.9069 +vn -0.0766 -0.4142 0.9070 +vn -0.0997 -0.5392 0.8363 +vn -0.1211 -0.9001 0.4184 +vn -0.1227 -0.9123 0.3906 +vn -0.1148 -0.8535 0.5083 +vn -0.0728 -0.8581 0.5083 +vn -0.0768 -0.9050 0.4184 +vn -0.0778 -0.9173 0.3906 +vn -0.1036 -0.7701 0.6294 +vn -0.0894 -0.6645 0.7420 +vn -0.0567 -0.6680 0.7420 +vn -0.0657 -0.7743 0.6294 +vn -0.0323 -0.9077 0.4184 +vn -0.0327 -0.9200 0.3906 +vn -0.0306 -0.8607 0.5083 +vn 0.0116 -0.8611 0.5083 +vn 0.0123 -0.9082 0.4184 +vn 0.0125 -0.9205 0.3906 +vn -0.0276 -0.7766 0.6294 +vn -0.0238 -0.6700 0.7420 +vn 0.0091 -0.6704 0.7420 +vn 0.0105 -0.7770 0.6294 +vn -0.0731 -0.5434 0.8363 +vn -0.0562 -0.4175 0.9069 +vn -0.0356 -0.4197 0.9070 +vn -0.0464 -0.5463 0.8363 +vn -0.0195 -0.5479 0.8363 +vn -0.0150 -0.4210 0.9069 +vn 0.0057 -0.4212 0.9070 +vn 0.0074 -0.5482 0.8363 +vn 0.0492 -0.9070 0.4183 +vn 0.0498 -0.9192 0.3906 +vn 0.0467 -0.8601 0.5080 +vn 0.0756 -0.8580 0.5080 +vn 0.0796 -0.9049 0.4182 +vn 0.0805 -0.9171 0.3905 +vn 0.0422 -0.7761 0.6292 +vn 0.0364 -0.6697 0.7417 +vn 0.0591 -0.6681 0.7417 +vn 0.0683 -0.7743 0.6291 +vn 0.1155 -0.9010 0.4182 +vn 0.1168 -0.9132 0.3904 +vn 0.1094 -0.8543 0.5081 +vn 0.1166 -0.8539 0.5072 +vn 0.1239 -0.9001 0.4177 +vn 0.1258 -0.9121 0.3902 +vn 0.0917 -0.9046 0.4162 +vn 0.0402 -0.9099 0.4129 +vn 0.0421 -0.9216 0.3859 +vn 0.0937 -0.9165 0.3889 +vn 0.0845 -0.8587 0.5054 +vn 0.0332 -0.8646 0.5014 +vn 0.0984 -0.7709 0.6293 +vn 0.0844 -0.6653 0.7418 +vn 0.0865 -0.6662 0.7408 +vn 0.1033 -0.7711 0.6282 +vn 0.0714 -0.7762 0.6264 +vn 0.0202 -0.7827 0.6221 +vn 0.0545 -0.6716 0.7389 +vn 0.0034 -0.6785 0.7346 +vn -0.0280 -0.9132 0.4066 +vn -0.1101 -0.9115 0.3963 +vn -0.1088 -0.9222 0.3710 +vn -0.0268 -0.9264 0.3756 +vn -0.0346 -0.8689 0.4938 +vn -0.1162 -0.8688 0.4814 +vn 0.0683 -0.5442 0.8362 +vn 0.0515 -0.4182 0.9069 +vn 0.0469 -0.4205 0.9061 +vn 0.0671 -0.5458 0.8352 +vn 0.0484 -0.5465 0.8361 +vn 0.0373 -0.4199 0.9068 +vn -0.2086 -0.9011 0.3801 +vn -0.3247 -0.8765 0.3554 +vn -0.3243 -0.8851 0.3337 +vn -0.2076 -0.9110 0.3563 +vn -0.2139 -0.8608 0.4618 +vn -0.3292 -0.8397 0.4319 +vn -0.0473 -0.7880 0.6138 +vn -0.1285 -0.7897 0.5998 +vn -0.0640 -0.6850 0.7258 +vn -0.1451 -0.6885 0.7106 +vn 0.0351 -0.5515 0.8334 +vn -0.0161 -0.5592 0.8289 +vn 0.0148 -0.4265 0.9043 +vn -0.0366 -0.4349 0.8997 +vn -0.4568 -0.8302 0.3195 +vn -0.5978 -0.7548 0.2702 +vn -0.5986 -0.7595 0.2547 +vn -0.4570 -0.8371 0.3006 +vn -0.4603 -0.7984 0.3882 +vn -0.6001 -0.7296 0.3281 +vn -0.2258 -0.7847 0.5773 +vn -0.3404 -0.7681 0.5423 +vn -0.2422 -0.6865 0.6856 +vn -0.3565 -0.6749 0.6461 +vn -0.7339 -0.6467 0.2078 +vn -0.7352 -0.6488 0.1964 +vn -0.7352 -0.6293 0.2521 +vn -0.4707 -0.7336 0.4902 +vn -0.6093 -0.6743 0.4172 +vn -0.4861 -0.6479 0.5864 +vn -0.6236 -0.5996 0.5017 +vn -0.7427 -0.5864 0.3233 +vn -0.8543 -0.4732 0.2150 +vn -0.7549 -0.5262 0.3915 +vn -0.8634 -0.4307 0.2628 +vn -0.7314 -0.6030 0.3185 +vn -0.2008 -0.8236 0.5305 +vn -0.7436 -0.5370 0.3984 +vn -0.2274 -0.7024 0.6745 +vn -0.5039 -0.5504 0.6657 +vn -0.6398 -0.5147 0.5708 +vn -0.3752 -0.5685 0.7322 +vn -0.3952 -0.4570 0.7968 +vn -0.5231 -0.4480 0.7250 +vn -0.6573 -0.4254 0.6221 +vn -0.2613 -0.5743 0.7758 +vn -0.1645 -0.5727 0.8031 +vn -0.1849 -0.4517 0.8728 +vn -0.2817 -0.4570 0.8437 +vn -0.5412 -0.3525 0.7635 +vn -0.6737 -0.3435 0.6544 +vn -0.4142 -0.3521 0.8393 +vn -0.4312 -0.2589 0.8643 +vn -0.5574 -0.2681 0.7858 +vn -0.6882 -0.2716 0.6728 +vn -0.3011 -0.3458 0.8887 +vn -0.2045 -0.3367 0.9191 +vn -0.2220 -0.2341 0.9465 +vn -0.3185 -0.2469 0.9152 +vn -0.7967 -0.3222 0.5113 +vn -0.8935 -0.2889 0.3438 +vn -0.8842 -0.3320 0.3285 +vn -0.7833 -0.3864 0.4870 +vn -0.8085 -0.2665 0.5247 +vn -0.9015 -0.2522 0.3516 +vn -0.8182 -0.2214 0.5306 +vn -0.9080 -0.2230 0.3547 +vn -0.7003 -0.2125 0.6815 +vn -0.7099 -0.1654 0.6846 +vn -0.8259 -0.1855 0.5325 +vn -0.9131 -0.1997 0.3554 +vn -0.5709 -0.1981 0.7967 +vn -0.4456 -0.1812 0.8767 +vn -0.4570 -0.1188 0.8815 +vn -0.5818 -0.1421 0.8008 +vn -0.8318 -0.1582 0.5320 +vn -0.7173 -0.1295 0.6846 +vn -0.7225 -0.1046 0.6834 +vn -0.8359 -0.1393 0.5309 +vn -0.9171 -0.1820 0.3547 +vn -0.9198 -0.1698 0.3537 +vn -0.3332 -0.1640 0.9285 +vn -0.2368 -0.1479 0.9602 +vn -0.2486 -0.0786 0.9654 +vn -0.3449 -0.0974 0.9336 +vn -0.5901 -0.0995 0.8012 +vn -0.4658 -0.0713 0.8820 +vn -0.4719 -0.0382 0.8808 +vn -0.5959 -0.0699 0.8000 +vn -0.3539 -0.0466 0.9341 +vn -0.2577 -0.0258 0.9659 +vn -0.2641 0.0111 0.9644 +vn -0.3602 -0.0112 0.9328 +vn -0.1558 -0.1335 0.9787 +vn -0.0883 -0.1208 0.9887 +vn -0.1002 -0.0490 0.9938 +vn -0.1677 -0.0626 0.9838 +vn -0.1410 -0.2217 0.9649 +vn -0.0736 -0.2101 0.9749 +vn -0.1768 -0.0085 0.9842 +vn -0.1093 0.0058 0.9940 +vn -0.1156 0.0442 0.9923 +vn -0.1832 0.0293 0.9826 +vn -0.3653 0.0184 0.9307 +vn -0.4750 -0.0109 0.8799 +vn -0.2692 0.0419 0.9622 +vn -0.2722 0.0589 0.9604 +vn -0.3683 0.0346 0.9291 +vn -0.4798 0.0046 0.8773 +vn -0.1235 -0.3264 0.9371 +vn -0.0561 -0.3161 0.9471 +vn -0.1039 -0.4438 0.8901 +vn -0.6005 -0.0450 0.7984 +vn -0.7265 -0.0837 0.6820 +vn -0.6034 -0.0315 0.7968 +vn -0.7270 -0.0727 0.6827 +vn -0.8392 -0.1233 0.5297 +vn -0.9220 -0.1593 0.3529 +vn -0.8413 -0.1149 0.5282 +vn -0.9235 -0.1539 0.3515 +vn -0.1884 0.0609 0.9802 +vn -0.1208 0.0761 0.9898 +vn -0.1238 0.0938 0.9879 +vn -0.1913 0.0783 0.9784 +vn -0.3689 0.0382 0.9287 +vn -0.4804 0.0080 0.8770 +vn -0.2729 0.0626 0.9600 +vn -0.2743 0.0715 0.9590 +vn -0.3703 0.0468 0.9277 +vn -0.4818 0.0161 0.8761 +vn -0.1920 0.0821 0.9780 +vn -0.1244 0.0977 0.9874 +vn -0.1259 0.1068 0.9863 +vn -0.1934 0.0911 0.9769 +vn -0.6039 -0.0284 0.7965 +vn -0.7267 -0.0702 0.6834 +vn -0.6052 -0.0211 0.7958 +vn -0.7307 -0.0636 0.6797 +vn -0.8261 -0.1180 0.5510 +vn -0.3793 0.0166 0.9251 +vn -0.3740 -0.0097 0.9274 +vn -0.8228 -0.1338 0.5523 +vn -0.8252 -0.1085 0.5543 +vn -0.3783 0.0316 0.9251 +vn -0.8194 -0.1524 0.5525 +vn -0.3681 -0.0398 0.9289 +vn -0.3594 -0.0830 0.9295 +vn -0.8146 -0.1792 0.5517 +vn -0.8417 -0.1128 0.5281 +vn -0.9237 -0.1525 0.3514 +vn -0.8425 -0.1080 0.5277 +vn -0.9243 -0.1493 0.3512 +vn -0.8439 -0.1013 0.5269 +vn -0.9252 -0.1449 0.3507 +vn -0.7324 -0.0549 0.6787 +vn -0.7341 -0.0458 0.6775 +vn -0.8453 -0.0942 0.5260 +vn -0.9262 -0.1402 0.3501 +vn -0.6070 -0.0110 0.7946 +vn -0.4837 0.0272 0.8748 +vn -0.4857 0.0390 0.8732 +vn -0.6089 -0.0003 0.7932 +vn -0.3723 0.0586 0.9263 +vn -0.2763 0.0837 0.9574 +vn -0.2784 0.0966 0.9556 +vn -0.3744 0.0711 0.9245 +vn -0.6109 0.0110 0.7916 +vn -0.7359 -0.0362 0.6762 +vn -0.4879 0.0514 0.8714 +vn -0.4901 0.0646 0.8693 +vn -0.6131 0.0229 0.7897 +vn -0.7377 -0.0260 0.6746 +vn -0.1955 0.1036 0.9752 +vn -0.1279 0.1193 0.9846 +vn -0.1301 0.1326 0.9826 +vn -0.1976 0.1167 0.9733 +vn -0.3766 0.0842 0.9225 +vn -0.2807 0.1102 0.9534 +vn -0.2831 0.1246 0.9510 +vn -0.3789 0.0982 0.9202 +vn -0.1999 0.1305 0.9711 +vn -0.1324 0.1466 0.9803 +vn -0.1348 0.1613 0.9777 +vn -0.2023 0.1452 0.9685 +vn -0.0714 0.1320 0.9887 +vn -0.0367 0.1396 0.9895 +vn -0.0377 0.1532 0.9875 +vn -0.0728 0.1455 0.9867 +vn -0.0704 0.1192 0.9904 +vn -0.0361 0.1267 0.9913 +vn -0.0743 0.1597 0.9844 +vn -0.0391 0.1674 0.9851 +vn -0.0408 0.1824 0.9824 +vn -0.0762 0.1746 0.9817 +vn -0.2048 0.1607 0.9655 +vn -0.2856 0.1398 0.9481 +vn -0.1373 0.1770 0.9746 +vn -0.1400 0.1935 0.9711 +vn -0.2075 0.1771 0.9621 +vn -0.2882 0.1559 0.9448 +vn -0.0703 0.1098 0.9915 +vn -0.0366 0.1172 0.9924 +vn -0.0710 0.1056 0.9919 +vn -0.0379 0.1129 0.9929 +vn -0.3814 0.1129 0.9175 +vn -0.4925 0.0785 0.8667 +vn -0.3840 0.1285 0.9143 +vn -0.4951 0.0932 0.8638 +vn -0.0686 0.0877 0.9938 +vn -0.0358 0.0949 0.9948 +vn -0.0634 0.0555 0.9964 +vn -0.0307 0.0627 0.9976 +vn -0.0223 0.1426 0.9895 +vn -0.0241 0.1559 0.9875 +vn -0.0208 0.1299 0.9913 +vn -0.0126 0.1310 0.9913 +vn -0.0141 0.1437 0.9895 +vn -0.0156 0.1571 0.9875 +vn -0.0572 0.0169 0.9982 +vn -0.0246 0.0240 0.9994 +vn -0.0483 -0.0383 0.9981 +vn -0.0157 -0.0313 0.9994 +vn -0.0199 0.1206 0.9925 +vn -0.0198 0.1165 0.9930 +vn -0.0108 0.1178 0.9930 +vn -0.0114 0.1218 0.9925 +vn -0.0176 0.0989 0.9949 +vn -0.0133 0.0665 0.9977 +vn -0.0061 0.0675 0.9977 +vn -0.0090 0.1000 0.9949 +vn -0.0366 -0.1106 0.9932 +vn -0.0041 -0.1038 0.9946 +vn -0.0219 -0.2005 0.9794 +vn 0.0104 -0.1940 0.9809 +vn -0.0081 0.0277 0.9996 +vn -0.0007 -0.0276 0.9996 +vn 0.0024 -0.0272 0.9996 +vn -0.0026 0.0285 0.9996 +vn -0.0055 0.1002 0.9950 +vn -0.0065 0.1181 0.9930 +vn -0.0037 0.0676 0.9977 +vn -0.0009 0.0678 0.9977 +vn -0.0014 0.1004 0.9949 +vn -0.0016 0.1183 0.9930 +vn -0.0016 0.0285 0.9996 +vn 0.0015 -0.0273 0.9996 +vn 0.0004 -0.0272 0.9996 +vn -0.0004 0.0287 0.9996 +vn 0.0091 -0.1003 0.9949 +vn 0.0212 -0.1907 0.9814 +vn 0.0171 -0.1912 0.9814 +vn 0.0090 -0.1003 0.9949 +vn -0.0068 0.1221 0.9925 +vn -0.0074 0.1314 0.9913 +vn -0.0017 0.1223 0.9925 +vn -0.0018 0.1316 0.9913 +vn 0.0055 -0.1006 0.9949 +vn 0.0105 -0.1917 0.9814 +vn 0.0026 -0.1917 0.9814 +vn 0.0014 -0.1005 0.9949 +vn 0.0163 -0.2997 0.9539 +vn 0.0229 -0.4209 0.9068 +vn 0.0041 -0.2999 0.9540 +vn 0.0266 -0.2990 0.9539 +vn -0.0046 -0.3071 0.9517 +vn 0.0276 -0.3008 0.9533 +vn -0.0835 -0.5670 0.8195 +vn 0.0355 -0.2979 0.9539 +vn 0.0298 -0.5478 0.8361 +vn -0.0107 -0.2997 0.9540 +vn -0.0068 -0.1916 0.9814 +vn -0.0254 -0.2988 0.9540 +vn -0.0162 -0.1911 0.9814 +vn -0.0036 -0.1005 0.9949 +vn -0.0010 -0.0272 0.9996 +vn -0.0085 -0.1002 0.9949 +vn -0.0023 -0.0271 0.9996 +vn -0.0400 -0.2972 0.9540 +vn -0.0256 -0.1900 0.9814 +vn -0.0545 -0.2949 0.9540 +vn -0.0349 -0.1885 0.9815 +vn 0.0010 0.0287 0.9996 +vn 0.0024 0.0678 0.9977 +vn 0.0024 0.0286 0.9996 +vn 0.0057 0.0676 0.9977 +vn -0.0134 -0.0996 0.9949 +vn -0.0036 -0.0270 0.9996 +vn -0.0183 -0.0989 0.9949 +vn -0.0049 -0.0267 0.9996 +vn -0.0689 -0.2918 0.9540 +vn -0.0441 -0.1866 0.9814 +vn -0.0832 -0.2881 0.9540 +vn -0.0532 -0.1842 0.9814 +vn 0.0036 0.1004 0.9949 +vn 0.0042 0.1182 0.9930 +vn 0.0085 0.1001 0.9949 +vn 0.0100 0.1178 0.9930 +vn 0.0038 0.0284 0.9996 +vn 0.0090 0.0672 0.9977 +vn 0.0052 0.0282 0.9996 +vn 0.0123 0.0667 0.9977 +vn -0.0231 -0.0978 0.9949 +vn -0.0063 -0.0265 0.9996 +vn -0.0279 -0.0966 0.9949 +vn -0.0075 -0.0261 0.9996 +vn -0.0972 -0.2837 0.9540 +vn -0.0621 -0.1814 0.9814 +vn -0.1110 -0.2786 0.9540 +vn -0.0710 -0.1781 0.9814 +vn -0.1245 -0.2728 0.9540 +vn -0.0796 -0.1744 0.9814 +vn -0.0326 -0.0951 0.9949 +vn -0.0088 -0.0257 0.9996 +vn -0.0372 -0.0934 0.9949 +vn -0.0101 -0.0253 0.9996 +vn 0.0066 0.0279 0.9996 +vn 0.0156 0.0660 0.9977 +vn 0.0080 0.0276 0.9996 +vn 0.0188 0.0651 0.9977 +vn -0.0417 -0.0915 0.9949 +vn -0.0113 -0.0247 0.9996 +vn 0.0093 0.0271 0.9996 +vn 0.0220 0.0641 0.9977 +vn 0.0106 0.0267 0.9996 +vn 0.0251 0.0630 0.9977 +vn 0.0119 0.0261 0.9996 +vn 0.0282 0.0617 0.9977 +vn 0.0132 0.0255 0.9996 +vn 0.0311 0.0602 0.9977 +vn 0.0141 0.0248 0.9996 +vn 0.0336 0.0588 0.9977 +vn 0.0326 0.0950 0.9949 +vn 0.0383 0.1119 0.9930 +vn 0.0328 0.1136 0.9930 +vn 0.0279 0.0965 0.9949 +vn 0.0372 0.0933 0.9949 +vn 0.0438 0.1099 0.9930 +vn 0.0497 0.0872 0.9950 +vn 0.0586 0.1027 0.9930 +vn 0.0543 0.1050 0.9930 +vn 0.0461 0.0892 0.9949 +vn 0.0417 0.0914 0.9949 +vn 0.0491 0.1076 0.9930 +vn 0.0607 0.1062 0.9925 +vn 0.0654 0.1142 0.9913 +vn 0.0605 0.1169 0.9913 +vn 0.0562 0.1086 0.9925 +vn 0.0647 0.1038 0.9925 +vn 0.0699 0.1115 0.9913 +vn 0.0508 0.1112 0.9925 +vn 0.0546 0.1197 0.9913 +vn 0.0487 0.1222 0.9913 +vn 0.0453 0.1136 0.9925 +vn 0.0396 0.1157 0.9925 +vn 0.0426 0.1245 0.9913 +vn 0.0365 0.1264 0.9913 +vn 0.0339 0.1175 0.9925 +vn 0.0231 0.0978 0.9949 +vn 0.0272 0.1151 0.9930 +vn 0.0215 0.1163 0.9930 +vn 0.0183 0.0988 0.9949 +vn 0.0281 0.1190 0.9925 +vn 0.0302 0.1281 0.9913 +vn 0.0239 0.1294 0.9913 +vn 0.0222 0.1202 0.9925 +vn 0.0134 0.0996 0.9949 +vn 0.0158 0.1172 0.9930 +vn 0.0163 0.1212 0.9925 +vn 0.0175 0.1304 0.9913 +vn 0.0111 0.1311 0.9913 +vn 0.0103 0.1218 0.9925 +vn 0.0043 0.1222 0.9925 +vn 0.0047 0.1315 0.9913 +vn 0.0192 0.1431 0.9895 +vn 0.0210 0.1564 0.9875 +vn 0.0133 0.1573 0.9875 +vn 0.0122 0.1438 0.9895 +vn 0.0262 0.1420 0.9895 +vn 0.0287 0.1552 0.9875 +vn -0.0082 0.1441 0.9895 +vn -0.0091 0.1576 0.9875 +vn -0.0020 0.1444 0.9895 +vn -0.0021 0.1578 0.9875 +vn 0.0051 0.1443 0.9895 +vn 0.0056 0.1577 0.9875 +vn -0.0260 0.1700 0.9851 +vn -0.0281 0.1849 0.9824 +vn -0.0172 0.1712 0.9851 +vn -0.0189 0.1862 0.9823 +vn -0.0099 0.1718 0.9851 +vn -0.0109 0.1868 0.9823 +vn -0.0023 0.1721 0.9851 +vn -0.0025 0.1871 0.9823 +vn 0.0061 0.1720 0.9851 +vn 0.0067 0.1870 0.9823 +vn 0.0145 0.1715 0.9851 +vn 0.0158 0.1864 0.9823 +vn 0.0332 0.1405 0.9895 +vn 0.0363 0.1536 0.9875 +vn 0.0400 0.1387 0.9895 +vn 0.0438 0.1517 0.9875 +vn 0.0229 0.1705 0.9851 +vn 0.0249 0.1854 0.9823 +vn 0.0313 0.1692 0.9851 +vn 0.0340 0.1840 0.9823 +vn 0.0468 0.1366 0.9895 +vn 0.0512 0.1493 0.9875 +vn 0.0534 0.1341 0.9895 +vn 0.0584 0.1466 0.9875 +vn 0.0395 0.1675 0.9851 +vn 0.0430 0.1821 0.9823 +vn 0.0477 0.1653 0.9851 +vn 0.0519 0.1798 0.9823 +vn 0.0600 0.1313 0.9895 +vn 0.0656 0.1436 0.9875 +vn 0.0663 0.1282 0.9895 +vn 0.0725 0.1402 0.9875 +vn 0.0558 0.1628 0.9851 +vn 0.0606 0.1770 0.9823 +vn 0.0637 0.1599 0.9851 +vn 0.0693 0.1738 0.9823 +vn 0.0271 0.2012 0.9792 +vn 0.0293 0.2179 0.9755 +vn 0.0186 0.2191 0.9755 +vn 0.0172 0.2023 0.9792 +vn 0.0369 0.1996 0.9792 +vn 0.0400 0.2162 0.9755 +vn 0.0467 0.1976 0.9792 +vn 0.0505 0.2140 0.9755 +vn 0.0563 0.1951 0.9792 +vn 0.0610 0.2112 0.9755 +vn 0.0072 0.2029 0.9792 +vn 0.0078 0.2197 0.9755 +vn -0.0030 0.2198 0.9755 +vn -0.0027 0.2030 0.9792 +vn 0.0715 0.1565 0.9851 +vn 0.0777 0.1702 0.9823 +vn 0.0791 0.1528 0.9851 +vn 0.0860 0.1662 0.9823 +vn -0.0118 0.2027 0.9792 +vn -0.0129 0.2195 0.9755 +vn -0.0224 0.2187 0.9755 +vn -0.0206 0.2020 0.9792 +vn 0.0718 0.1252 0.9895 +vn 0.0786 0.1369 0.9875 +vn 0.0769 0.1222 0.9895 +vn 0.0842 0.1335 0.9875 +vn 0.0718 0.0989 0.9925 +vn 0.0768 0.1068 0.9913 +vn 0.0838 0.1174 0.9895 +vn 0.0914 0.1286 0.9875 +vn 0.0857 0.1492 0.9851 +vn 0.0933 0.1622 0.9823 +vn 0.0920 0.1454 0.9851 +vn 0.1001 0.1581 0.9823 +vn 0.1380 0.1095 0.9844 +vn 0.1098 0.1323 0.9851 +vn 0.1463 0.1221 0.9817 +vn 0.1180 0.1449 0.9824 +vn 0.0994 0.1404 0.9851 +vn 0.1079 0.1528 0.9824 +vn 0.1546 0.1349 0.9787 +vn 0.1268 0.1582 0.9792 +vn 0.1169 0.1659 0.9792 +vn 0.1088 0.1714 0.9792 +vn 0.1012 0.1760 0.9792 +vn 0.1097 0.1905 0.9755 +vn 0.1010 0.1953 0.9755 +vn 0.0933 0.1803 0.9792 +vn 0.1186 0.2060 0.9713 +vn 0.1092 0.2111 0.9713 +vn 0.0843 0.1847 0.9792 +vn 0.0913 0.2000 0.9755 +vn 0.0814 0.2042 0.9755 +vn 0.0751 0.1886 0.9792 +vn 0.0987 0.2163 0.9713 +vn 0.1066 0.2335 0.9665 +vn 0.0950 0.2384 0.9665 +vn 0.0880 0.2208 0.9713 +vn 0.1150 0.2518 0.9609 +vn 0.1238 0.2713 0.9545 +vn 0.1104 0.2770 0.9545 +vn 0.1025 0.2571 0.9609 +vn 0.0658 0.1921 0.9792 +vn 0.0713 0.2080 0.9755 +vn 0.0770 0.2249 0.9713 +vn 0.0832 0.2428 0.9665 +vn 0.0712 0.2466 0.9665 +vn 0.0659 0.2284 0.9713 +vn 0.0546 0.2314 0.9713 +vn 0.0590 0.2498 0.9665 +vn 0.0467 0.2524 0.9665 +vn 0.0432 0.2338 0.9713 +vn 0.0897 0.2619 0.9609 +vn 0.0967 0.2821 0.9545 +vn 0.0827 0.2865 0.9545 +vn 0.0768 0.2659 0.9609 +vn 0.0636 0.2694 0.9609 +vn 0.0685 0.2902 0.9545 +vn 0.0542 0.2932 0.9545 +vn 0.0503 0.2722 0.9609 +vn 0.0317 0.2356 0.9713 +vn 0.0342 0.2544 0.9665 +vn 0.0217 0.2558 0.9665 +vn 0.0201 0.2369 0.9713 +vn 0.0369 0.2743 0.9609 +vn 0.0398 0.2956 0.9545 +vn 0.0252 0.2972 0.9545 +vn 0.0234 0.2758 0.9609 +vn 0.0085 0.2376 0.9713 +vn 0.0091 0.2565 0.9665 +vn -0.0035 0.2566 0.9665 +vn -0.0032 0.2377 0.9713 +vn 0.0098 0.2766 0.9609 +vn 0.0106 0.2980 0.9545 +vn -0.0040 0.2982 0.9545 +vn -0.0037 0.2768 0.9609 +vn -0.0139 0.2373 0.9713 +vn -0.0151 0.2562 0.9665 +vn -0.0264 0.2553 0.9665 +vn -0.0244 0.2365 0.9713 +vn -0.0163 0.2763 0.9609 +vn -0.0176 0.2977 0.9545 +vn -0.0309 0.2966 0.9545 +vn -0.0286 0.2753 0.9609 +vn 0.0115 0.3233 0.9462 +vn 0.0125 0.3521 0.9359 +vn -0.0048 0.3523 0.9359 +vn -0.0044 0.3234 0.9462 +vn 0.0273 0.3223 0.9462 +vn 0.0298 0.3511 0.9359 +vn -0.0191 0.3229 0.9462 +vn -0.0209 0.3517 0.9359 +vn -0.0366 0.3504 0.9359 +vn -0.0336 0.3217 0.9462 +vn -0.0408 0.2737 0.9609 +vn -0.0379 0.2538 0.9665 +vn -0.0439 0.2949 0.9545 +vn -0.0561 0.2925 0.9546 +vn -0.0529 0.2713 0.9610 +vn -0.0500 0.2514 0.9666 +vn 0.0431 0.3206 0.9462 +vn 0.0470 0.3492 0.9359 +vn 0.0588 0.3181 0.9462 +vn 0.0641 0.3465 0.9359 +vn -0.0352 0.2350 0.9714 +vn -0.0327 0.2174 0.9755 +vn -0.0473 0.2326 0.9714 +vn -0.0449 0.2149 0.9756 +vn 0.0743 0.3148 0.9462 +vn 0.0810 0.3429 0.9359 +vn 0.0897 0.3108 0.9462 +vn 0.0977 0.3385 0.9359 +vn -0.0303 0.2007 0.9792 +vn -0.0427 0.1982 0.9792 +vn -0.0783 0.1904 0.9786 +vn -0.0805 0.2071 0.9750 +vn -0.0831 0.2248 0.9709 +vn -0.1429 0.2111 0.9670 +vn -0.0858 0.2436 0.9661 +vn -0.1459 0.2297 0.9623 +vn -0.0888 0.2635 0.9606 +vn -0.1491 0.2495 0.9568 +vn -0.0920 0.2847 0.9542 +vn -0.2103 0.1945 0.9581 +vn -0.2911 0.1730 0.9409 +vn -0.2134 0.2130 0.9535 +vn -0.2166 0.2326 0.9481 +vn -0.3868 0.1451 0.9107 +vn -0.4978 0.1089 0.8604 +vn -0.6203 0.0632 0.7818 +vn -0.6177 0.0490 0.7849 +vn -0.6153 0.0356 0.7875 +vn -0.7398 -0.0152 0.6727 +vn -0.8499 -0.0705 0.5222 +vn -0.8482 -0.0789 0.5237 +vn -0.8467 -0.0868 0.5249 +vn -0.9272 -0.1352 0.3494 +vn -0.8153 -0.0887 0.5722 +vn -0.3559 0.0625 0.9324 +vn -0.3625 0.0483 0.9307 +vn -0.8182 -0.0979 0.5665 +vn -0.8128 -0.0793 0.5771 +vn -0.3502 0.0772 0.9335 +vn -0.8219 -0.1049 0.5599 +vn -0.3708 0.0372 0.9280 +vn -0.0958 0.3096 0.9460 +vn -0.0598 0.3175 0.9464 +vn -0.0642 0.3460 0.9360 +vn -0.1002 0.3382 0.9357 +vn -0.0475 0.3199 0.9463 +vn -0.0517 0.3485 0.9359 +vn -0.1048 0.3678 0.9240 +vn -0.0688 0.3756 0.9242 +vn -0.0560 0.3781 0.9241 +vn -0.0611 0.4127 0.9088 +vn -0.0398 0.3802 0.9241 +vn -0.0436 0.4150 0.9088 +vn -0.0670 0.4534 0.8888 +vn -0.0480 0.4559 0.8887 +vn -0.0227 0.3816 0.9241 +vn -0.0248 0.4165 0.9088 +vn -0.0052 0.3822 0.9241 +vn -0.0056 0.4172 0.9088 +vn -0.0273 0.4576 0.8887 +vn -0.0300 0.5023 0.8642 +vn -0.0062 0.4584 0.8887 +vn -0.0068 0.5031 0.8642 +vn 0.0136 0.3820 0.9241 +vn 0.0148 0.4170 0.9088 +vn 0.0323 0.3809 0.9241 +vn 0.0353 0.4158 0.9088 +vn -0.0329 0.5507 0.8341 +vn -0.0360 0.6030 0.7969 +vn -0.0075 0.5517 0.8340 +vn -0.0082 0.6040 0.7969 +vn 0.0163 0.4581 0.8887 +vn 0.0179 0.5029 0.8642 +vn 0.0388 0.4568 0.8887 +vn 0.0425 0.5014 0.8642 +vn 0.0510 0.3788 0.9241 +vn 0.0556 0.4135 0.9088 +vn 0.0695 0.3759 0.9241 +vn 0.0759 0.4103 0.9088 +vn -0.0394 0.6588 0.7512 +vn -0.0429 0.7178 0.6949 +vn -0.0089 0.6600 0.7512 +vn -0.0097 0.7191 0.6949 +vn 0.0196 0.5514 0.8340 +vn 0.0215 0.6037 0.7969 +vn 0.0466 0.5497 0.8340 +vn 0.0511 0.6019 0.7969 +vn 0.0611 0.4543 0.8887 +vn 0.0671 0.4987 0.8642 +vn 0.0833 0.4508 0.8887 +vn 0.0915 0.4948 0.8642 +vn -0.0466 0.7788 0.6256 +vn -0.0106 0.7801 0.6255 +vn 0.0235 0.6596 0.7512 +vn 0.0256 0.7187 0.6949 +vn 0.0558 0.6577 0.7512 +vn 0.0277 0.7797 0.6255 +vn 0.0880 0.6542 0.7512 +vn 0.0805 0.5987 0.7969 +vn 0.0736 0.5468 0.8340 +vn 0.1003 0.5425 0.8340 +vn 0.1268 0.5369 0.8340 +vn 0.1156 0.4897 0.8642 +vn 0.1486 0.4337 0.8887 +vn 0.1352 0.3947 0.9088 +vn 0.1271 0.4404 0.8887 +vn 0.1157 0.4009 0.9088 +vn 0.1054 0.4462 0.8887 +vn 0.0959 0.4061 0.9088 +vn 0.1239 0.3616 0.9241 +vn 0.1142 0.3333 0.9359 +vn 0.1060 0.3673 0.9241 +vn 0.1343 0.2943 0.9462 +vn 0.1197 0.3005 0.9462 +vn 0.0879 0.3720 0.9241 +vn 0.1048 0.3060 0.9462 +vn -0.7685 -0.4581 0.4468 +vn -0.8733 -0.3826 0.3016 +vn -0.7627 -0.4552 0.4595 +vn -0.2668 -0.5415 0.7973 +vn -0.7757 -0.3740 0.5084 +vn -0.2956 -0.3840 0.8747 +vn -0.7885 -0.3096 0.5314 +vn -0.3168 -0.2846 0.9048 +vn -0.7991 -0.2558 0.5441 +vn -0.3341 -0.2023 0.9206 +vn -0.8075 -0.2135 0.5499 +vn -0.3478 -0.1375 0.9274 +vn 0.4870 -0.7473 0.4521 +vn 0.6101 -0.7324 0.3021 +vn 0.0077 -0.6082 0.7937 +vn 0.4827 -0.7530 0.4472 +vn -0.8787 0.3879 0.2782 +vn -0.4331 0.7926 0.4292 +vn -0.8864 0.4187 0.1972 +vn -0.4445 0.8425 0.3044 +vn -0.8889 0.4579 0.0107 +vn -0.4545 0.8906 0.0154 +vn -0.4541 0.8879 0.0742 +vn -0.8898 0.4537 0.0495 +vn -0.9873 0.1587 0.0067 +vn -0.9876 0.1568 -0.0012 +vn -0.8865 0.4627 -0.0024 +vn -0.4539 0.8910 -0.0046 +vn -0.9340 0.3572 0.0108 +vn -0.8432 0.5373 0.0148 +vn -0.8442 0.5361 -0.0016 +vn -0.9346 0.3556 -0.0016 +vn -0.7309 0.6822 0.0181 +vn -0.6148 0.7884 0.0206 +vn -0.6155 0.7881 -0.0012 +vn -0.7318 0.6815 -0.0015 +vn -0.5069 0.8617 0.0224 +vn -0.4126 0.9106 0.0236 +vn -0.4130 0.9107 -0.0005 +vn -0.5075 0.8617 -0.0008 +vn -0.3325 0.9428 0.0244 +vn -0.2652 0.9639 0.0248 +vn -0.2653 0.9642 -0.0001 +vn -0.3328 0.9430 -0.0002 +vn -0.2031 0.9788 0.0250 +vn -0.1667 0.9857 0.0251 +vn -0.1667 0.9860 0.0000 +vn -0.2032 0.9791 0.0000 +vn -0.1454 0.9891 0.0251 +vn -0.1455 0.9894 0.0000 +vn -0.1052 0.9942 0.0230 +vn -0.1053 0.9944 0.0000 +vn -0.0597 0.9979 0.0251 +vn -0.0597 0.9982 0.0000 +vn -0.0135 0.9996 0.0230 +vn -0.0135 0.9999 0.0000 +vn 0.0355 0.9991 0.0251 +vn 0.0356 0.9994 0.0000 +vn 0.0845 0.9962 0.0231 +vn 0.0845 0.9964 0.0000 +vn 0.1333 0.9908 0.0251 +vn 0.1333 0.9911 0.0000 +vn 0.1818 0.9831 0.0230 +vn 0.1818 0.9833 0.0000 +vn 0.2298 0.9729 0.0251 +vn 0.2298 0.9732 0.0000 +vn 0.2772 0.9605 0.0229 +vn 0.2773 0.9608 0.0000 +vn 0.3240 0.9457 0.0251 +vn 0.3241 0.9460 0.0000 +vn 0.3700 0.9287 0.0230 +vn 0.3702 0.9290 0.0000 +vn 0.4152 0.9094 0.0251 +vn 0.4153 0.9097 0.0000 +vn 0.4593 0.8880 0.0230 +vn 0.4594 0.8882 0.0000 +vn 0.4998 0.8658 0.0251 +vn 0.5000 0.8660 0.0000 +vn 0.5390 0.8420 0.0230 +vn 0.5390 0.8423 0.0000 +vn 0.5725 0.8195 0.0251 +vn 0.5727 0.8198 0.0000 +vn 0.5901 0.8070 0.0228 +vn 0.5902 0.8072 0.0000 +vn 0.6196 0.7845 0.0251 +vn 0.6684 0.7434 0.0249 +vn 0.6686 0.7436 -0.0002 +vn 0.6198 0.7848 -0.0000 +vn 0.7192 0.6944 0.0244 +vn 0.7764 0.6298 0.0237 +vn 0.7768 0.6297 -0.0007 +vn 0.7195 0.6945 -0.0004 +vn 0.8389 0.5438 0.0225 +vn 0.9026 0.4300 0.0208 +vn 0.9031 0.4295 -0.0012 +vn 0.8394 0.5436 -0.0010 +vn 0.9589 0.2832 0.0183 +vn 0.9945 0.1033 0.0150 +vn 0.9948 0.1018 -0.0018 +vn 0.9594 0.2821 -0.0015 +vn 0.9951 -0.0983 0.0110 +vn 0.9540 -0.2997 0.0068 +vn 0.9535 -0.3015 -0.0015 +vn 0.9950 -0.1001 -0.0017 +vn 0.9942 -0.0977 0.0453 +vn 0.9538 -0.2989 0.0294 +vn 0.9999 -0.0024 0.0107 +vn 0.8143 0.5803 0.0154 +vn 0.8139 0.5809 -0.0046 +vn 1.0000 0.0028 -0.0025 +vn 0.9988 -0.0065 0.0487 +vn 0.8126 0.5782 0.0739 +vn 0.9936 -0.0173 0.1116 +vn 0.9514 -0.3007 0.0665 +vn 0.8049 0.5677 0.1731 +vn 0.9898 -0.1013 0.1006 +vn -0.8109 -0.0694 0.5811 +vn -0.3456 0.0924 0.9338 +vn -0.8901 0.4414 0.1139 +vn -0.4516 0.8751 0.1741 +vn 0.6591 0.6136 0.4348 +vn -0.8548 -0.5091 0.1009 +vn -0.7360 -0.6737 0.0668 +vn -0.7253 -0.6787 0.1151 +vn -0.8385 -0.5169 0.1726 +vn -0.9359 -0.3272 0.1305 +vn -0.9148 -0.3376 0.2217 +vn -0.9439 -0.3248 0.0594 +vn -0.8603 -0.5077 0.0452 +vn -0.7390 -0.6731 0.0294 +vn 0.0856 -0.9738 0.2106 +vn 0.6115 -0.7108 0.3477 +vn 0.6155 -0.7119 0.3381 +vn 0.0927 -0.9744 0.2046 +vn -0.1287 -0.9822 0.1370 +vn -0.1296 -0.9830 0.1299 +vn -0.1362 -0.9767 0.1657 +vn 0.0648 -0.9671 0.2462 +vn 0.5907 -0.7000 0.4014 +vn 0.3757 0.9141 0.1526 +vn 0.5378 0.8330 0.1302 +vn 0.5372 0.8413 0.0595 +vn 0.3745 0.9245 0.0706 +vn 0.2266 0.9594 0.1679 +vn 0.2248 0.9712 0.0784 +vn 0.2340 0.9301 0.2831 +vn 0.3820 0.8873 0.2583 +vn 0.5429 0.8101 0.2215 +vn 0.8225 0.1464 0.5496 +vn 0.9174 0.1802 0.3548 +vn 0.9238 0.1510 0.3518 +vn 0.8328 0.1046 0.5436 +vn 0.3725 0.0214 0.9278 +vn 0.3866 -0.0434 0.9212 +vn 0.3605 0.0760 0.9297 +vn 0.8143 0.1807 0.5516 +vn 0.9122 0.2036 0.3555 +vn 0.9262 -0.3130 0.2102 +vn 0.9850 -0.1054 0.1365 +vn 0.9861 -0.1050 0.1289 +vn 0.9253 -0.3200 0.2034 +vn 0.5492 -0.7603 0.3470 +vn 0.5487 -0.7650 0.3372 +vn 0.5450 -0.7366 0.4004 +vn 0.9243 -0.2916 0.2463 +vn 0.9815 -0.0966 0.1653 +vn -0.9767 -0.1506 0.1529 +vn -0.9857 0.0049 0.1682 +vn -0.9969 0.0094 0.0784 +vn -0.9866 -0.1471 0.0705 +vn -0.9521 -0.1631 0.2585 +vn -0.9590 -0.0092 0.2833 +vn -0.9750 0.1336 0.1778 +vn -0.9540 0.2369 0.1835 +vn -0.9662 0.2429 0.0867 +vn -0.9868 0.1389 0.0835 +vn -0.9470 0.1186 0.2986 +vn -0.9255 0.2214 0.3074 +vn -0.9144 -0.1832 0.3611 +vn -0.9180 -0.0313 0.3954 +vn -0.8821 -0.3547 0.3100 +vn -0.8447 -0.3753 0.3817 +vn -0.8712 -0.2073 0.4450 +vn -0.8712 -0.0577 0.4875 +vn -0.8128 -0.5300 0.2417 +vn -0.7080 -0.6875 0.1614 +vn -0.6880 -0.6981 0.1984 +vn -0.7833 -0.5460 0.2973 +vn -0.9292 0.3190 0.1866 +vn -0.9038 0.3844 0.1880 +vn -0.9161 0.3909 0.0896 +vn -0.9414 0.3253 0.0886 +vn -0.9004 0.3031 0.3120 +vn -0.8750 0.3684 0.3141 +vn -0.7529 -0.5623 0.3419 +vn -0.8060 -0.3966 0.4394 +vn -0.6676 -0.7088 0.2278 +vn -0.6475 -0.7192 0.2518 +vn -0.7229 -0.5783 0.3781 +vn -0.7676 -0.4175 0.4863 +vn -0.7839 -0.4783 0.3960 +vn -0.7866 0.1023 0.6089 +vn -0.7347 0.0757 0.6741 +vn -0.7498 -0.4953 0.4387 +vn -0.8177 -0.4616 0.3438 +vn -0.8385 0.1288 0.5294 +vn -0.7168 -0.5119 0.4734 +vn -0.6282 -0.7293 0.2712 +vn -0.6844 0.0496 0.7274 +vn -0.6367 0.0247 0.7707 +vn -0.6855 -0.5279 0.5014 +vn -0.6099 -0.7387 0.2869 +vn -0.6561 -0.5432 0.5239 +vn -0.5929 -0.7475 0.2995 +vn -0.5922 0.0009 0.8058 +vn -0.5511 -0.0215 0.8342 +vn -0.6289 -0.5576 0.5418 +vn -0.5772 -0.7556 0.3098 +vn -0.6939 -0.5937 0.4074 +vn -0.7306 -0.4376 0.5242 +vn -0.6666 -0.6081 0.4311 +vn -0.6956 -0.4564 0.5548 +vn -0.8265 -0.2323 0.5128 +vn -0.8225 -0.0851 0.5623 +vn -0.7820 -0.2569 0.5679 +vn -0.7739 -0.1122 0.6232 +vn -0.9041 0.0952 0.4165 +vn -0.8817 0.1973 0.4285 +vn -0.8553 0.0676 0.5138 +vn -0.8317 0.1689 0.5289 +vn -0.8563 0.2787 0.4349 +vn -0.8308 0.3437 0.4377 +vn -0.8057 0.2501 0.5369 +vn -0.7801 0.3151 0.5405 +vn -0.8042 0.0386 0.5931 +vn -0.7793 0.1392 0.6110 +vn -0.7532 0.0100 0.6577 +vn -0.7269 0.1098 0.6779 +vn -0.7390 -0.2807 0.6125 +vn -0.7271 -0.1384 0.6725 +vn -0.6984 -0.3029 0.6485 +vn -0.6827 -0.1630 0.7123 +vn -0.8770 0.4420 0.1885 +vn -0.8598 0.4746 0.1884 +vn -0.8719 0.4814 0.0900 +vn -0.8892 0.4487 0.0899 +vn -0.8483 0.4259 0.3147 +vn -0.8312 0.4585 0.3144 +vn -0.8043 0.4012 0.4384 +vn -0.7873 0.4339 0.4381 +vn -0.7535 0.3727 0.5416 +vn -0.7367 0.4055 0.5412 +vn -0.7527 0.2201 0.6205 +vn -0.7267 0.2850 0.6250 +vn -0.6996 0.1902 0.6887 +vn -0.6734 0.2550 0.6939 +vn -0.8494 0.4931 0.1882 +vn -0.8613 0.5000 0.0900 +vn -0.8211 0.4766 0.3141 +vn -0.8011 0.5095 0.3140 +vn -0.8287 0.5271 0.1882 +vn -0.8404 0.5345 0.0900 +vn -0.7039 -0.0177 0.7101 +vn -0.6763 0.0813 0.7321 +vn -0.6573 -0.0438 0.7524 +vn -0.6284 0.0544 0.7760 +vn -0.6412 -0.6215 0.4501 +vn -0.6631 -0.4739 0.5794 +vn -0.6177 -0.6339 0.4655 +vn -0.6330 -0.4901 0.5993 +vn -0.6038 -0.5713 0.5560 +vn -0.5133 -0.0427 0.8572 +vn -0.4788 -0.0628 0.8757 +vn -0.5808 -0.5842 0.5669 +vn -0.5628 -0.7630 0.3180 +vn -0.5495 -0.7698 0.3247 +vn -0.5613 -0.5952 0.5751 +vn -0.5383 -0.7756 0.3296 +vn -0.4497 -0.0805 0.8895 +vn -0.4252 -0.0964 0.8999 +vn -0.5448 -0.6054 0.5802 +vn -0.5287 -0.7805 0.3335 +vn -0.5961 -0.6452 0.4779 +vn -0.6053 -0.5049 0.6154 +vn -0.5763 -0.6556 0.4880 +vn -0.5799 -0.5185 0.6284 +vn -0.6605 -0.3236 0.6775 +vn -0.6414 -0.1860 0.7444 +vn -0.6255 -0.3428 0.7009 +vn -0.6031 -0.2071 0.7703 +vn -0.6483 0.1613 0.7441 +vn -0.6218 0.2260 0.7498 +vn -0.5998 0.1340 0.7889 +vn -0.5730 0.1986 0.7952 +vn -0.6138 -0.0681 0.7865 +vn -0.5837 0.0293 0.8114 +vn -0.5735 -0.0905 0.8142 +vn -0.5423 0.0061 0.8402 +vn -0.5933 -0.3603 0.7198 +vn -0.5679 -0.2266 0.7913 +vn -0.5638 -0.3764 0.7352 +vn -0.5355 -0.2444 0.8084 +vn -0.5595 -0.6645 0.4955 +vn -0.5583 -0.5301 0.6382 +vn -0.5451 -0.6719 0.5014 +vn -0.5400 -0.5399 0.6457 +vn -0.5364 -0.1112 0.8366 +vn -0.5041 -0.0153 0.8635 +vn -0.5024 -0.1301 0.8548 +vn -0.4691 -0.0349 0.8825 +vn -0.5387 -0.3901 0.7467 +vn -0.5081 -0.2596 0.8212 +vn -0.5173 -0.4018 0.7556 +vn -0.4846 -0.2726 0.8312 +vn -0.5313 -0.6791 0.5065 +vn -0.5222 -0.5493 0.6523 +vn -0.5195 -0.7852 0.3370 +vn -0.5114 -0.7894 0.3395 +vn -0.5192 -0.6855 0.5104 +vn -0.5068 -0.5576 0.6575 +vn -0.5289 -0.6153 0.5845 +vn -0.4016 -0.1118 0.9090 +vn -0.3811 -0.1256 0.9159 +vn -0.5152 -0.6239 0.5877 +vn -0.5037 -0.6319 0.5891 +vn -0.5046 -0.7929 0.3417 +vn -0.3642 -0.1382 0.9210 +vn -0.3485 -0.1507 0.9251 +vn -0.4930 -0.6397 0.5897 +vn -0.4982 -0.7961 0.3435 +vn -0.4830 -0.6474 0.5895 +vn -0.4922 -0.7992 0.3450 +vn -0.3341 -0.1630 0.9284 +vn -0.3208 -0.1753 0.9308 +vn -0.4739 -0.6550 0.5886 +vn -0.4865 -0.8021 0.3463 +vn -0.5090 -0.6908 0.5135 +vn -0.4937 -0.5646 0.6615 +vn -0.4994 -0.6958 0.5162 +vn -0.4814 -0.5711 0.6649 +vn -0.4967 -0.4130 0.7634 +vn -0.4621 -0.2850 0.8398 +vn -0.4787 -0.4228 0.7695 +vn -0.4423 -0.2959 0.8466 +vn -0.4654 -0.6626 0.5869 +vn -0.4812 -0.8048 0.3475 +vn -0.3086 -0.1877 0.9325 +vn -0.2975 -0.2002 0.9335 +vn -0.4576 -0.6702 0.5844 +vn -0.4761 -0.8074 0.3485 +vn -0.4904 -0.7005 0.5185 +vn -0.4698 -0.5772 0.6679 +vn -0.4819 -0.7049 0.5205 +vn -0.4589 -0.5830 0.6705 +vn -0.4634 -0.4310 0.7743 +vn -0.4256 -0.3051 0.8519 +vn -0.4491 -0.4388 0.7783 +vn -0.4099 -0.3137 0.8565 +vn -0.4735 -0.1463 0.8686 +vn -0.4393 -0.0516 0.8968 +vn -0.4488 -0.1600 0.8792 +vn -0.4139 -0.0658 0.9079 +vn -0.4249 -0.1732 0.8885 +vn -0.3894 -0.0795 0.9176 +vn -0.4041 -0.1848 0.8958 +vn -0.3679 -0.0914 0.9253 +vn -0.3865 -0.1946 0.9015 +vn -0.3498 -0.1016 0.9313 +vn -0.3699 -0.2038 0.9064 +vn -0.3327 -0.1111 0.9365 +vn -0.4079 0.0263 0.9127 +vn -0.3798 0.0901 0.9207 +vn -0.4102 0.1072 0.9057 +vn -0.4381 0.0433 0.8979 +vn -0.3820 0.0118 0.9241 +vn -0.3538 0.0755 0.9323 +vn -0.3571 -0.0021 0.9341 +vn -0.3287 0.0614 0.9424 +vn -0.3353 -0.0143 0.9420 +vn -0.3067 0.0491 0.9505 +vn -0.4737 0.0632 0.8784 +vn -0.4461 0.1273 0.8859 +vn -0.4850 0.1492 0.8617 +vn -0.5124 0.0849 0.8545 +vn -0.5544 0.1085 0.8251 +vn -0.5273 0.1729 0.8319 +vn -0.4194 0.1844 0.8889 +vn -0.4030 0.2175 0.8890 +vn -0.4419 0.2396 0.8645 +vn -0.4584 0.2065 0.8644 +vn -0.3835 0.1642 0.9088 +vn -0.3672 0.1972 0.9090 +vn -0.5007 0.2303 0.8344 +vn -0.4842 0.2634 0.8344 +vn -0.5298 0.2891 0.7973 +vn -0.5463 0.2561 0.7975 +vn -0.5952 0.2836 0.7519 +vn -0.5786 0.3166 0.7516 +vn -0.6302 0.3456 0.6953 +vn -0.6468 0.3126 0.6956 +vn -0.7002 0.3426 0.6264 +vn -0.6834 0.3755 0.6260 +vn -0.5709 0.3312 0.7513 +vn -0.6220 0.3609 0.6949 +vn -0.5225 0.3030 0.7970 +vn -0.5096 0.3243 0.7969 +vn -0.5569 0.3544 0.7512 +vn -0.6068 0.3860 0.6949 +vn -0.7776 0.4514 0.4377 +vn -0.7275 0.4222 0.5408 +vn -0.7098 0.4515 0.5407 +vn -0.7587 0.4826 0.4376 +vn -0.6747 0.3915 0.6256 +vn -0.6583 0.4188 0.6255 +vn -0.4772 0.2767 0.8341 +vn -0.4352 0.2523 0.8642 +vn -0.4244 0.2703 0.8642 +vn -0.4654 0.2963 0.8340 +vn -0.8038 0.5644 0.1882 +vn -0.8151 0.5723 0.0900 +vn -0.7770 0.5456 0.3140 +vn -0.7509 0.5809 0.3140 +vn -0.7768 0.6009 0.1882 +vn -0.7877 0.6094 0.0900 +vn -0.7464 0.6383 0.1882 +vn -0.7569 0.6473 0.0900 +vn -0.7215 0.6171 0.3140 +vn -0.6904 0.6517 0.3140 +vn -0.7142 0.6742 0.1882 +vn -0.7242 0.6837 0.0900 +vn -0.7359 0.5167 0.4376 +vn -0.6884 0.4834 0.5407 +vn -0.6654 0.5147 0.5407 +vn -0.7112 0.5502 0.4376 +vn -0.6802 0.7084 0.1882 +vn -0.6898 0.7184 0.0900 +vn -0.6576 0.6848 0.3140 +vn -0.6232 0.7163 0.3140 +vn -0.6447 0.7409 0.1882 +vn -0.6537 0.7514 0.0900 +vn -0.6075 0.7717 0.1882 +vn -0.6161 0.7825 0.0900 +vn -0.5873 0.7460 0.3140 +vn -0.5500 0.7739 0.3140 +vn -0.5689 0.8006 0.1882 +vn -0.5769 0.8118 0.0900 +vn -0.6834 0.5844 0.4376 +vn -0.6393 0.5468 0.5407 +vn -0.6117 0.5775 0.5407 +vn -0.6539 0.6172 0.4376 +vn -0.6228 0.6486 0.4376 +vn -0.5827 0.6068 0.5406 +vn -0.5522 0.6346 0.5407 +vn -0.5902 0.6784 0.4376 +vn -0.5562 0.7065 0.4376 +vn -0.5204 0.6610 0.5407 +vn -0.4873 0.6857 0.5407 +vn -0.5209 0.7329 0.4376 +vn -0.5404 0.5628 0.6255 +vn -0.4981 0.5187 0.6949 +vn -0.4720 0.5425 0.6949 +vn -0.5121 0.5886 0.6255 +vn -0.5673 0.5356 0.6255 +vn -0.5229 0.4937 0.6949 +vn -0.4826 0.6130 0.6255 +vn -0.4448 0.5650 0.6949 +vn -0.4166 0.5862 0.6949 +vn -0.4520 0.6360 0.6255 +vn -0.5290 0.8275 0.1882 +vn -0.5364 0.8392 0.0900 +vn -0.5113 0.8000 0.3140 +vn -0.4715 0.8241 0.3140 +vn -0.4877 0.8525 0.1882 +vn -0.4946 0.8645 0.0900 +vn -0.4453 0.8754 0.1882 +vn -0.4516 0.8877 0.0900 +vn -0.4305 0.8462 0.3140 +vn -0.3884 0.8663 0.3140 +vn -0.4018 0.8962 0.1882 +vn -0.4075 0.9088 0.0900 +vn -0.4843 0.7576 0.4376 +vn -0.4531 0.7088 0.5407 +vn -0.4178 0.7302 0.5406 +vn -0.4465 0.7805 0.4376 +vn -0.3600 0.9138 0.1882 +vn -0.3650 0.9266 0.0900 +vn -0.3480 0.8833 0.3140 +vn -0.3073 0.8983 0.3140 +vn -0.3178 0.9293 0.1882 +vn -0.3223 0.9423 0.0900 +vn -0.4077 0.8014 0.4376 +vn -0.3814 0.7498 0.5407 +vn -0.3442 0.7676 0.5406 +vn -0.3679 0.8205 0.4376 +vn -0.2799 0.9414 0.1882 +vn -0.2839 0.9546 0.0900 +vn -0.2706 0.9100 0.3141 +vn -0.2506 0.9156 0.3144 +vn -0.2595 0.9472 0.1884 +vn -0.2632 0.9605 0.0900 +vn -0.3296 0.8366 0.4376 +vn -0.3083 0.7827 0.5407 +vn -0.2723 0.7960 0.5406 +vn -0.2910 0.8508 0.4376 +vn -0.2237 0.9563 0.1884 +vn -0.1615 0.9688 0.1880 +vn -0.1650 0.9826 0.0855 +vn -0.2274 0.9696 0.0899 +vn -0.2149 0.9246 0.3147 +vn -0.1527 0.9370 0.3141 +vn -0.2562 0.8619 0.4377 +vn -0.2397 0.8063 0.5408 +vn -0.2213 0.8113 0.5412 +vn -0.2370 0.8671 0.4381 +vn -0.2012 0.8759 0.4385 +vn -0.1392 0.8883 0.4377 +vn -0.1854 0.8200 0.5416 +vn -0.1233 0.8323 0.5405 +vn -0.0920 0.9781 0.1865 +vn -0.0063 0.9830 0.1833 +vn -0.0093 0.9960 0.0891 +vn -0.0952 0.9915 0.0886 +vn -0.0834 0.9464 0.3120 +vn 0.0020 0.9516 0.3073 +vn 0.0990 0.9791 0.1776 +vn 0.0966 0.9918 0.0835 +vn 0.1070 0.9484 0.2985 +vn 0.1196 0.9013 0.4164 +vn 0.2458 0.8851 0.3953 +vn 0.0152 0.9034 0.4285 +vn 0.0310 0.8481 0.5289 +vn 0.1351 0.8472 0.5138 +vn 0.2605 0.8333 0.4875 +vn -0.1687 0.7610 0.6264 +vn -0.1065 0.7733 0.6250 +vn -0.2047 0.7525 0.6260 +vn -0.1880 0.6937 0.6953 +vn -0.1521 0.7021 0.6956 +vn -0.0899 0.7144 0.6939 +vn -0.2222 0.7478 0.6256 +vn -0.2048 0.6893 0.6950 +vn -0.2526 0.7382 0.6255 +vn -0.2328 0.6804 0.6949 +vn -0.0373 0.7833 0.6206 +vn 0.0475 0.7902 0.6110 +vn -0.0540 0.8419 0.5369 +vn -0.0207 0.7247 0.6888 +vn 0.0639 0.7324 0.6779 +vn -0.2860 0.7259 0.6256 +vn -0.2636 0.6690 0.6949 +vn -0.3192 0.7119 0.6255 +vn -0.2942 0.6562 0.6949 +vn -0.1359 0.6452 0.7518 +vn -0.0738 0.6575 0.7498 +vn -0.1720 0.6368 0.7516 +vn -0.1567 0.5829 0.7973 +vn -0.1206 0.5912 0.7975 +vn -0.0585 0.6036 0.7952 +vn -0.1879 0.6327 0.7513 +vn -0.1719 0.5790 0.7970 +vn -0.2138 0.6245 0.7512 +vn -0.1957 0.5715 0.7969 +vn -0.3537 0.6954 0.6255 +vn -0.3261 0.6410 0.6949 +vn -0.3874 0.6772 0.6255 +vn -0.3571 0.6242 0.6949 +vn -0.2420 0.6141 0.7512 +vn -0.2215 0.5620 0.7970 +vn -0.2700 0.6023 0.7512 +vn -0.2471 0.5512 0.7969 +vn -0.4202 0.6574 0.6255 +vn -0.3873 0.6059 0.6949 +vn -0.2993 0.5883 0.7512 +vn -0.2739 0.5384 0.7969 +vn -0.3278 0.5729 0.7512 +vn -0.3000 0.5243 0.7969 +vn -0.3555 0.5561 0.7512 +vn -0.3253 0.5090 0.7969 +vn -0.3824 0.5380 0.7512 +vn -0.3499 0.4924 0.7969 +vn -0.4083 0.5186 0.7512 +vn -0.3737 0.4746 0.7969 +vn -0.4333 0.4980 0.7512 +vn -0.3965 0.4557 0.7969 +vn -0.2501 0.4917 0.8340 +vn -0.2281 0.4485 0.8642 +vn -0.2059 0.4591 0.8642 +vn -0.2257 0.5034 0.8340 +vn -0.2740 0.4789 0.8340 +vn -0.2499 0.4367 0.8642 +vn -0.2971 0.4649 0.8340 +vn -0.2710 0.4240 0.8642 +vn -0.3196 0.4497 0.8340 +vn -0.2915 0.4102 0.8642 +vn -0.2023 0.5132 0.8341 +vn -0.1845 0.4681 0.8642 +vn -0.1631 0.4760 0.8642 +vn -0.1788 0.5219 0.8340 +vn -0.1569 0.5288 0.8341 +vn -0.1431 0.4823 0.8642 +vn -0.1292 0.4858 0.8645 +vn -0.1424 0.5325 0.8344 +vn -0.1681 0.4264 0.8888 +vn -0.1531 0.3882 0.9088 +vn -0.1354 0.3947 0.9088 +vn -0.1487 0.4337 0.8887 +vn -0.1876 0.4183 0.8887 +vn -0.1707 0.3808 0.9088 +vn -0.1063 0.5408 0.8344 +vn -0.0443 0.5532 0.8319 +vn -0.0931 0.4940 0.8645 +vn -0.0311 0.5065 0.8617 +vn -0.1303 0.4394 0.8888 +vn -0.1185 0.4000 0.9088 +vn -0.1056 0.4032 0.9090 +vn -0.1169 0.4428 0.8890 +vn -0.0808 0.4509 0.8889 +vn -0.0190 0.4635 0.8859 +vn -0.0695 0.4113 0.9088 +vn -0.0079 0.4239 0.9057 +vn -0.0046 0.6681 0.7441 +vn 0.0798 0.6765 0.7321 +vn 0.0105 0.6145 0.7889 +vn 0.0947 0.6236 0.7760 +vn 0.0246 0.5644 0.8251 +vn 0.1085 0.5743 0.8114 +vn 0.0377 0.5180 0.8545 +vn 0.1214 0.5286 0.8402 +vn 0.1512 0.7907 0.5932 +vn 0.2758 0.7795 0.5624 +vn 0.1671 0.7345 0.6578 +vn 0.2907 0.7260 0.6233 +vn 0.3926 0.8459 0.3610 +vn 0.5518 0.7743 0.3099 +vn 0.4060 0.7982 0.4450 +vn 0.5631 0.7329 0.3818 +vn 0.1824 0.6801 0.7101 +vn 0.3052 0.6742 0.6725 +vn 0.1968 0.6287 0.7524 +vn 0.3187 0.6254 0.7123 +vn 0.4198 0.7488 0.5128 +vn 0.5747 0.6904 0.4394 +vn 0.4333 0.6998 0.5680 +vn 0.5860 0.6481 0.4863 +vn 0.7060 0.6657 0.2415 +vn 0.8345 0.5269 0.1613 +vn 0.8300 0.5458 0.1149 +vn 0.6992 0.6938 0.1724 +vn 0.7146 0.6331 0.2974 +vn 0.8401 0.5048 0.1984 +vn 0.6331 0.7223 0.2781 +vn 0.0592 0.9014 0.4290 +vn 0.0477 0.9499 0.3088 +vn 0.6273 0.7534 0.1970 +vn 0.6404 0.6867 0.3440 +vn 0.0722 0.8454 0.5293 +vn 0.7234 0.5998 0.3419 +vn 0.8457 0.4826 0.2279 +vn 0.7319 0.5669 0.3782 +vn 0.8511 0.4606 0.2518 +vn 0.4463 0.6524 0.6125 +vn 0.5968 0.6074 0.5243 +vn 0.4584 0.6078 0.6485 +vn 0.6069 0.5691 0.5548 +vn 0.6487 0.6498 0.3961 +vn 0.0856 0.7887 0.6088 +vn 0.6573 0.6127 0.4388 +vn 0.0993 0.7320 0.6741 +vn 0.7400 0.5352 0.4074 +vn 0.8564 0.4394 0.2712 +vn 0.7476 0.5053 0.4311 +vn 0.8612 0.4195 0.2869 +vn 0.6657 0.5767 0.4736 +vn 0.1127 0.6769 0.7274 +vn 0.6739 0.5424 0.5016 +vn 0.1258 0.6247 0.7706 +vn 0.4696 0.5661 0.6775 +vn 0.6163 0.5333 0.5795 +vn 0.3313 0.5798 0.7444 +vn 0.3429 0.5376 0.7703 +vn 0.4800 0.5276 0.7009 +vn 0.6249 0.5003 0.5993 +vn 0.6819 0.5103 0.5241 +vn 0.1385 0.5759 0.8057 +vn 0.8658 0.4009 0.2995 +vn 0.8700 0.3837 0.3097 +vn 0.6895 0.4804 0.5420 +vn 0.1506 0.5306 0.8341 +vn 0.7547 0.4774 0.4501 +vn 0.7611 0.4517 0.4655 +vn 0.6969 0.4529 0.5561 +vn 0.1624 0.4889 0.8571 +vn 0.8738 0.3680 0.3180 +vn 0.8773 0.3535 0.3247 +vn 0.7040 0.4275 0.5671 +vn 0.1738 0.4507 0.8756 +vn 0.7671 0.4280 0.4779 +vn 0.6328 0.4699 0.6154 +vn 0.6401 0.4420 0.6284 +vn 0.7725 0.4063 0.4880 +vn 0.7101 0.4060 0.5752 +vn 0.1842 0.4183 0.8894 +vn 0.8803 0.3412 0.3296 +vn 0.8828 0.3308 0.3335 +vn 0.7162 0.3875 0.5804 +vn 0.1939 0.3908 0.8998 +vn 0.7221 0.3698 0.5847 +vn 0.2033 0.3642 0.9089 +vn 0.8852 0.3207 0.3370 +vn 0.8874 0.3119 0.3396 +vn 0.7272 0.3544 0.5879 +vn 0.2119 0.3411 0.9158 +vn 0.7772 0.3879 0.4955 +vn 0.6463 0.4183 0.6382 +vn 0.6515 0.3982 0.6457 +vn 0.7811 0.3722 0.5013 +vn 0.7849 0.3570 0.5065 +vn 0.6565 0.3787 0.6523 +vn 0.6610 0.3617 0.6575 +vn 0.7882 0.3438 0.5104 +vn 0.7910 0.3327 0.5135 +vn 0.8892 0.3044 0.3416 +vn 0.6647 0.3474 0.6615 +vn 0.6681 0.3339 0.6649 +vn 0.7936 0.3222 0.5162 +vn 0.8908 0.2974 0.3435 +vn 0.5180 0.3859 0.7634 +vn 0.3855 0.3823 0.8398 +vn 0.3914 0.3605 0.8467 +vn 0.5233 0.3661 0.7695 +vn 0.5120 0.4085 0.7556 +vn 0.3787 0.4071 0.8312 +vn 0.5278 0.3493 0.7743 +vn 0.3964 0.3421 0.8520 +vn 0.4011 0.3248 0.8565 +vn 0.5319 0.3335 0.7783 +vn 0.5057 0.4321 0.7467 +vn 0.3717 0.4330 0.8212 +vn 0.4982 0.4597 0.7352 +vn 0.3633 0.4632 0.8084 +vn 0.4895 0.4922 0.7198 +vn 0.3535 0.4988 0.7913 +vn 0.2682 0.3724 0.8885 +vn 0.1687 0.3598 0.9176 +vn 0.1753 0.3362 0.9253 +vn 0.2745 0.3495 0.8958 +vn 0.2609 0.3987 0.8792 +vn 0.1611 0.3869 0.9079 +vn 0.2533 0.4259 0.8686 +vn 0.1532 0.4150 0.8968 +vn 0.2444 0.4578 0.8548 +vn 0.1440 0.4478 0.8825 +vn 0.2340 0.4953 0.8366 +vn 0.1332 0.4865 0.8635 +vn 0.2226 0.5362 0.8142 +vn 0.2102 0.5807 0.7865 +vn 0.0497 0.4753 0.8784 +vn 0.0608 0.4360 0.8979 +vn 0.0702 0.4027 0.9126 +vn 0.0016 0.3903 0.9207 +vn 0.0097 0.3616 0.9323 +vn 0.0782 0.3741 0.9241 +vn -0.0599 0.3777 0.9240 +vn -0.0959 0.3696 0.9242 +vn -0.0876 0.3408 0.9360 +vn -0.0516 0.3489 0.9357 +vn -0.1085 0.3665 0.9241 +vn -0.0999 0.3378 0.9359 +vn -0.1241 0.3616 0.9240 +vn -0.1145 0.3332 0.9359 +vn 0.0859 0.3466 0.9341 +vn 0.0175 0.3339 0.9425 +vn 0.0243 0.3097 0.9505 +vn 0.0926 0.3226 0.9420 +vn -0.0436 0.3212 0.9460 +vn -0.0796 0.3131 0.9464 +vn -0.0725 0.2889 0.9546 +vn -0.0365 0.2970 0.9542 +vn -0.0917 0.3101 0.9463 +vn -0.0844 0.2860 0.9545 +vn -0.1052 0.3059 0.9462 +vn -0.0970 0.2820 0.9545 +vn -0.1403 0.3556 0.9241 +vn -0.1293 0.3277 0.9359 +vn -0.1564 0.3488 0.9241 +vn -0.1441 0.3215 0.9359 +vn -0.2079 0.4086 0.8887 +vn -0.1892 0.3719 0.9088 +vn -0.2277 0.3979 0.8887 +vn -0.2072 0.3622 0.9088 +vn -0.1187 0.3009 0.9462 +vn -0.1095 0.2774 0.9545 +vn -0.1323 0.2952 0.9462 +vn -0.1220 0.2721 0.9545 +vn -0.1733 0.3407 0.9241 +vn -0.1598 0.3140 0.9359 +vn -0.1898 0.3318 0.9241 +vn -0.1750 0.3058 0.9359 +vn -0.0783 0.2654 0.9609 +vn -0.0725 0.2462 0.9665 +vn -0.0607 0.2491 0.9666 +vn -0.0665 0.2684 0.9610 +vn -0.0901 0.2617 0.9609 +vn -0.0837 0.2427 0.9665 +vn -0.0305 0.2764 0.9606 +vn 0.0301 0.2891 0.9568 +vn -0.0248 0.2571 0.9661 +vn 0.0355 0.2698 0.9623 +vn 0.0984 0.3022 0.9481 +vn 0.1808 0.3161 0.9313 +vn 0.1037 0.2831 0.9535 +vn 0.1861 0.2973 0.9365 +vn -0.1017 0.2574 0.9609 +vn -0.0943 0.2387 0.9665 +vn -0.1132 0.2526 0.9609 +vn -0.1050 0.2342 0.9665 +vn -0.0194 0.2389 0.9708 +vn 0.0406 0.2516 0.9670 +vn -0.0552 0.2309 0.9714 +vn -0.0499 0.2138 0.9756 +vn -0.0142 0.2218 0.9750 +vn 0.0454 0.2345 0.9711 +vn -0.0671 0.2280 0.9713 +vn -0.0619 0.2109 0.9755 +vn -0.0776 0.2247 0.9713 +vn -0.0718 0.2078 0.9755 +vn 0.2799 0.3300 0.9015 +vn 0.2849 0.3118 0.9064 +vn 0.1088 0.2650 0.9581 +vn 0.1910 0.2796 0.9409 +vn 0.1135 0.2480 0.9621 +vn 0.1957 0.2629 0.9448 +vn 0.2897 0.2946 0.9107 +vn 0.4055 0.3085 0.8604 +vn 0.2941 0.2784 0.9143 +vn 0.4097 0.2932 0.8638 +vn 0.5359 0.3187 0.7819 +vn 0.6714 0.3212 0.6679 +vn 0.5395 0.3047 0.7849 +vn 0.6744 0.3092 0.6705 +vn 0.1180 0.2320 0.9655 +vn 0.2001 0.2471 0.9481 +vn 0.0499 0.2184 0.9746 +vn 0.0542 0.2031 0.9777 +vn 0.1223 0.2169 0.9685 +vn 0.2042 0.2323 0.9510 +vn 0.7960 0.3123 0.5185 +vn 0.8924 0.2909 0.3450 +vn 0.7983 0.3030 0.5205 +vn 0.8939 0.2847 0.3464 +vn 0.2983 0.2631 0.9175 +vn 0.4136 0.2788 0.8667 +vn 0.3023 0.2487 0.9202 +vn 0.4173 0.2651 0.8692 +vn 0.5430 0.2916 0.7875 +vn 0.6773 0.2980 0.6727 +vn 0.5463 0.2792 0.7897 +vn 0.6800 0.2873 0.6746 +vn 0.7425 0.3176 0.5898 +vn 0.2373 0.2865 0.9282 +vn 0.2286 0.3035 0.9250 +vn 0.7373 0.3291 0.5900 +vn 0.7477 0.3069 0.5888 +vn 0.2461 0.2707 0.9307 +vn 0.7322 0.3413 0.5894 +vn 0.2202 0.3216 0.9209 +vn 0.8005 0.2942 0.5222 +vn 0.8953 0.2788 0.3475 +vn 0.8025 0.2860 0.5237 +vn 0.8966 0.2733 0.3485 +vn 0.7531 0.2969 0.5871 +vn 0.2553 0.2560 0.9324 +vn 0.7586 0.2875 0.5846 +vn 0.2649 0.2423 0.9333 +vn 0.7644 0.2788 0.5814 +vn 0.2749 0.2295 0.9337 +vn 0.8978 0.2681 0.3494 +vn 0.8990 0.2632 0.3501 +vn 0.7703 0.2707 0.5774 +vn 0.2855 0.2177 0.9333 +vn 0.8044 0.2781 0.5249 +vn 0.6826 0.2773 0.6761 +vn 0.6850 0.2678 0.6775 +vn 0.8062 0.2708 0.5260 +vn 0.8079 0.2638 0.5269 +vn 0.9001 0.2585 0.3507 +vn 0.6873 0.2588 0.6787 +vn 0.6895 0.2503 0.6797 +vn 0.8096 0.2571 0.5277 +vn 0.9011 0.2541 0.3512 +vn 0.5494 0.2674 0.7916 +vn 0.4208 0.2522 0.8714 +vn 0.4241 0.2401 0.8732 +vn 0.5523 0.2563 0.7933 +vn 0.5551 0.2459 0.7946 +vn 0.4272 0.2285 0.8748 +vn 0.4301 0.2176 0.8762 +vn 0.5577 0.2359 0.7958 +vn 0.3060 0.2351 0.9225 +vn 0.2081 0.2182 0.9535 +vn 0.2118 0.2049 0.9556 +vn 0.3096 0.2222 0.9245 +vn 0.3129 0.2100 0.9263 +vn 0.2153 0.1923 0.9574 +vn 0.2186 0.1804 0.9590 +vn 0.3161 0.1985 0.9277 +vn 0.1263 0.2026 0.9711 +vn 0.0583 0.1887 0.9803 +vn 0.0621 0.1751 0.9826 +vn 0.1300 0.1891 0.9733 +vn 0.1336 0.1763 0.9752 +vn 0.0657 0.1621 0.9846 +vn 0.0692 0.1499 0.9863 +vn 0.1370 0.1641 0.9769 +vn 0.3184 0.1901 0.9287 +vn 0.4323 0.2097 0.8770 +vn 0.2211 0.1718 0.9600 +vn 0.2221 0.1681 0.9604 +vn 0.3194 0.1866 0.9291 +vn 0.4332 0.2063 0.8774 +vn 0.1395 0.1554 0.9780 +vn 0.0717 0.1410 0.9874 +vn 0.0727 0.1372 0.9879 +vn 0.1405 0.1516 0.9784 +vn 0.0092 0.1499 0.9887 +vn -0.0257 0.1421 0.9895 +vn -0.0208 0.1301 0.9913 +vn 0.0137 0.1378 0.9904 +vn 0.0047 0.1626 0.9867 +vn -0.0305 0.1548 0.9875 +vn 0.5597 0.2287 0.7965 +vn 0.6911 0.2442 0.6802 +vn 0.5605 0.2257 0.7968 +vn 0.6918 0.2416 0.6805 +vn 0.0176 0.1292 0.9915 +vn -0.0164 0.1217 0.9924 +vn -0.0134 0.1183 0.9929 +vn 0.0200 0.1257 0.9919 +vn 0.8108 0.2524 0.5281 +vn 0.9020 0.2509 0.3514 +vn 0.8114 0.2504 0.5282 +vn 0.9023 0.2496 0.3515 +vn 0.7765 0.2631 0.5725 +vn 0.7831 0.2561 0.5667 +vn 0.2968 0.2068 0.9323 +vn 0.3089 0.1967 0.9305 +vn 0.7893 0.2512 0.5602 +vn 0.3211 0.1901 0.9278 +vn 0.7939 0.2493 0.5546 +vn 0.3302 0.1882 0.9250 +vn 0.5635 0.2122 0.7984 +vn 0.6942 0.2302 0.6820 +vn 0.4369 0.1914 0.8789 +vn 0.4441 0.1642 0.8808 +vn 0.5699 0.1877 0.8000 +vn 0.6993 0.2095 0.6834 +vn 0.7988 0.2410 0.5512 +vn 0.3373 0.1749 0.9250 +vn 0.9033 0.2440 0.3529 +vn 0.9057 0.2337 0.3537 +vn 0.8025 0.2253 0.5524 +vn 0.3433 0.1488 0.9274 +vn 0.8130 0.2417 0.5297 +vn 0.8168 0.2259 0.5309 +vn 0.8074 0.2070 0.5525 +vn 0.3504 0.1189 0.9290 +vn 0.9084 0.2214 0.3547 +vn 0.8210 0.2070 0.5320 +vn 0.7051 0.1848 0.6846 +vn 0.7135 0.1491 0.6846 +vn 0.8271 0.1797 0.5325 +vn 0.5771 0.1584 0.8012 +vn 0.4525 0.1316 0.8820 +vn 0.4646 0.0848 0.8815 +vn 0.5875 0.1162 0.8008 +vn 0.8353 0.1438 0.5306 +vn 0.7247 0.1022 0.6815 +vn 0.7385 0.0437 0.6728 +vn 0.8455 0.0989 0.5247 +vn 0.6013 0.0608 0.7967 +vn 0.4805 0.0234 0.8767 +vn 0.5002 -0.0531 0.8643 +vn 0.6185 -0.0083 0.7857 +vn 0.8582 0.0435 0.5114 +vn 0.7557 -0.0276 0.6544 +vn 0.7754 -0.1087 0.6220 +vn 0.8731 -0.0203 0.4871 +vn 0.9319 0.1144 0.3441 +vn 0.9417 0.0714 0.3288 +vn 0.8460 0.0517 0.5306 +vn 0.4047 -0.1255 0.9058 +vn 0.8616 -0.0118 0.5075 +vn 0.4267 -0.2251 0.8760 +vn 0.6394 -0.0916 0.7634 +vn 0.5240 -0.1447 0.8393 +vn 0.5510 -0.2478 0.7968 +vn 0.6632 -0.1857 0.7250 +vn 0.6888 -0.2863 0.6660 +vn 0.7969 -0.1966 0.5712 +vn 0.5797 -0.3571 0.7324 +vn 0.6077 -0.4617 0.6462 +vn 0.7138 -0.3826 0.5866 +vn 0.8181 -0.2808 0.5019 +vn 0.4790 -0.4105 0.7759 +vn 0.3905 -0.4499 0.8032 +vn 0.4217 -0.5632 0.7106 +vn 0.5089 -0.5204 0.6857 +vn 0.4481 -0.2957 0.8437 +vn 0.3581 -0.3317 0.8728 +vn 0.4189 -0.1867 0.8887 +vn 0.3274 -0.2191 0.9191 +vn 0.3930 -0.0897 0.9152 +vn 0.3001 -0.1188 0.9465 +vn 0.3713 -0.0084 0.9285 +vn 0.2771 -0.0344 0.9602 +vn 0.3539 0.0570 0.9335 +vn 0.2587 0.0335 0.9654 +vn 0.3146 -0.4789 0.8196 +vn 0.2503 -0.5003 0.8289 +vn 0.2829 -0.6167 0.7346 +vn 0.3467 -0.5941 0.7258 +vn 0.2814 -0.3586 0.8901 +vn 0.2165 -0.3789 0.8998 +vn 0.3407 0.1068 0.9341 +vn 0.2447 0.0852 0.9659 +vn 0.3314 0.1416 0.9328 +vn 0.2348 0.1214 0.9644 +vn 0.2496 -0.2439 0.9371 +vn 0.1842 -0.2630 0.9471 +vn 0.2214 -0.1416 0.9648 +vn 0.1554 -0.1596 0.9749 +vn 0.1977 -0.0554 0.9787 +vn 0.1311 -0.0724 0.9887 +vn 0.1785 0.0139 0.9838 +vn 0.1116 -0.0022 0.9938 +vn 0.3235 0.1706 0.9307 +vn 0.2265 0.1515 0.9622 +vn 0.1640 0.0668 0.9842 +vn 0.0967 0.0513 0.9940 +vn 0.1538 0.1038 0.9826 +vn 0.0862 0.0888 0.9923 +vn 0.1452 0.1346 0.9802 +vn 0.0775 0.1200 0.9897 +vn 0.0799 -0.0849 0.9932 +vn 0.0474 -0.0924 0.9946 +vn 0.0722 -0.1803 0.9810 +vn 0.1045 -0.1726 0.9794 +vn 0.0600 -0.0144 0.9981 +vn 0.0274 -0.0218 0.9994 +vn 0.0253 0.1084 0.9938 +vn -0.0077 0.1011 0.9948 +vn 0.0013 0.0698 0.9976 +vn 0.0342 0.0771 0.9964 +vn 0.0449 0.0394 0.9982 +vn 0.0121 0.0321 0.9994 +vn -0.0256 0.0971 0.9949 +vn -0.0159 0.0659 0.9977 +vn -0.0311 0.1140 0.9930 +vn -0.0399 0.1114 0.9930 +vn -0.0340 0.0945 0.9949 +vn -0.0229 0.0638 0.9977 +vn -0.0043 0.0286 0.9996 +vn 0.0123 -0.0248 0.9996 +vn -0.0097 0.0269 0.9996 +vn 0.0093 -0.0257 0.9996 +vn 0.0341 -0.0948 0.9949 +vn 0.0612 -0.1819 0.9814 +vn 0.0651 -0.1806 0.9814 +vn 0.1337 -0.2765 0.9517 +vn 0.1017 -0.2844 0.9533 +vn 0.1346 -0.4011 0.9061 +vn 0.1664 -0.3930 0.9043 +vn 0.0934 -0.2851 0.9539 +vn 0.1295 -0.4010 0.9069 +vn 0.1019 -0.2824 0.9539 +vn 0.1432 -0.3965 0.9068 +vn 0.2007 -0.5149 0.8334 +vn 0.1691 -0.5233 0.8352 +vn 0.2022 -0.6406 0.7408 +vn 0.2336 -0.6319 0.7390 +vn 0.1674 -0.5223 0.8362 +vn 0.2038 -0.6389 0.7418 +vn 0.1864 -0.5160 0.8361 +vn 0.2280 -0.6308 0.7417 +vn 0.0374 -0.0935 0.9949 +vn 0.0713 -0.1783 0.9814 +vn 0.0102 -0.0254 0.9996 +vn 0.0111 -0.0248 0.9996 +vn 0.0411 -0.0917 0.9949 +vn 0.0784 -0.1749 0.9815 +vn 0.2624 -0.7340 0.6264 +vn 0.3114 -0.7182 0.6223 +vn 0.2311 -0.7429 0.6283 +vn 0.2540 -0.8236 0.5072 +vn 0.2852 -0.8144 0.5054 +vn 0.3341 -0.7981 0.5014 +vn 0.1115 -0.2787 0.9539 +vn 0.1566 -0.3914 0.9068 +vn 0.1227 -0.2736 0.9540 +vn 0.1723 -0.3844 0.9069 +vn 0.2356 -0.7406 0.6293 +vn 0.2608 -0.8208 0.5081 +vn 0.2644 -0.7309 0.6292 +vn 0.2931 -0.8099 0.5080 +vn 0.2038 -0.5093 0.8361 +vn 0.2492 -0.6227 0.7417 +vn 0.2243 -0.5003 0.8363 +vn 0.2743 -0.6118 0.7420 +vn 0.3748 -0.6946 0.6141 +vn 0.4492 -0.6618 0.6002 +vn 0.3974 -0.7734 0.4939 +vn 0.4713 -0.7389 0.4815 +vn 0.5353 -0.6162 0.5778 +vn 0.6322 -0.5527 0.5429 +vn 0.5567 -0.6905 0.4618 +vn 0.6523 -0.6229 0.4319 +vn 0.2981 -0.8590 0.4162 +vn 0.3469 -0.8422 0.4128 +vn 0.2668 -0.8685 0.4177 +vn 0.2702 -0.8802 0.3901 +vn 0.3013 -0.8707 0.3887 +vn 0.3501 -0.8536 0.3857 +vn 0.2750 -0.8657 0.4183 +vn 0.2788 -0.8774 0.3905 +vn 0.3092 -0.8541 0.4182 +vn 0.3136 -0.8655 0.3906 +vn 0.4102 -0.8164 0.4064 +vn 0.4839 -0.7804 0.3960 +vn 0.4134 -0.8275 0.3799 +vn 0.4873 -0.7908 0.3705 +vn 0.3376 -0.8432 0.4183 +vn 0.3422 -0.8546 0.3906 +vn 0.3201 -0.7996 0.5081 +vn 0.3523 -0.7858 0.5083 +vn 0.3716 -0.8288 0.4184 +vn 0.3766 -0.8400 0.3906 +vn 0.5689 -0.7295 0.3797 +vn 0.6638 -0.6583 0.3550 +vn 0.5722 -0.7390 0.3555 +vn 0.6672 -0.6665 0.3328 +vn 0.7358 -0.4664 0.4909 +vn 0.8366 -0.3540 0.4180 +vn 0.7538 -0.5302 0.3882 +vn 0.8517 -0.4088 0.3280 +vn 0.7641 -0.5607 0.3190 +vn 0.8602 -0.4328 0.2696 +vn 0.7673 -0.5670 0.2995 +vn 0.8630 -0.4369 0.2535 +vn 0.9382 -0.2773 0.2072 +vn 0.9320 -0.2608 0.2518 +vn 0.9402 -0.2790 0.1953 +vn 0.9206 -0.2180 0.3241 +vn 0.9741 -0.0682 0.2156 +vn 0.9645 -0.0265 0.2629 +vn 0.9063 -0.1589 0.3916 +vn 0.9168 -0.2386 0.3202 +vn 0.5321 -0.6599 0.5305 +vn 0.5032 -0.5403 0.6744 +vn 0.9004 -0.1735 0.3989 +vn 0.4118 -0.8095 0.4184 +vn 0.4174 -0.8205 0.3906 +vn 0.3905 -0.7676 0.5083 +vn 0.4277 -0.7475 0.5083 +vn 0.4510 -0.7884 0.4184 +vn 0.4571 -0.7990 0.3906 +vn 0.2889 -0.7216 0.6292 +vn 0.3179 -0.7091 0.6294 +vn 0.3523 -0.6926 0.6294 +vn 0.3040 -0.5976 0.7419 +vn 0.3329 -0.5819 0.7420 +vn 0.3859 -0.6745 0.6294 +vn 0.2486 -0.4887 0.8363 +vn 0.1910 -0.3755 0.9069 +vn 0.2092 -0.3656 0.9070 +vn 0.2723 -0.4759 0.8363 +vn 0.4892 -0.7653 0.4184 +vn 0.4958 -0.7756 0.3906 +vn 0.4638 -0.7256 0.5083 +vn 0.4989 -0.7020 0.5083 +vn 0.5261 -0.7404 0.4184 +vn 0.5333 -0.7504 0.3906 +vn 0.4185 -0.6547 0.6294 +vn 0.3611 -0.5649 0.7420 +vn 0.3884 -0.5465 0.7420 +vn 0.4501 -0.6334 0.6294 +vn 0.5618 -0.7136 0.4184 +vn 0.5694 -0.7233 0.3906 +vn 0.5327 -0.6767 0.5083 +vn 0.5653 -0.6497 0.5083 +vn 0.5962 -0.6852 0.4184 +vn 0.6042 -0.6945 0.3906 +vn 0.4807 -0.6105 0.6294 +vn 0.4147 -0.5268 0.7420 +vn 0.4401 -0.5058 0.7420 +vn 0.5100 -0.5862 0.6295 +vn 0.2953 -0.4620 0.8363 +vn 0.2269 -0.3549 0.9070 +vn 0.2440 -0.3434 0.9069 +vn 0.3176 -0.4469 0.8363 +vn 0.3392 -0.4308 0.8363 +vn 0.2606 -0.3310 0.9070 +vn 0.2765 -0.3178 0.9070 +vn 0.3599 -0.4136 0.8363 +vn 0.6291 -0.6551 0.4184 +vn 0.6376 -0.6640 0.3906 +vn 0.5965 -0.6212 0.5083 +vn 0.6262 -0.5912 0.5083 +vn 0.6605 -0.6235 0.4184 +vn 0.6694 -0.6319 0.3906 +vn 0.5382 -0.5605 0.6294 +vn 0.4644 -0.4836 0.7420 +vn 0.4875 -0.4602 0.7420 +vn 0.5651 -0.5334 0.6294 +vn 0.6903 -0.5903 0.4184 +vn 0.6996 -0.5983 0.3906 +vn 0.6545 -0.5597 0.5083 +vn 0.6812 -0.5269 0.5083 +vn 0.7184 -0.5557 0.4184 +vn 0.7281 -0.5633 0.3906 +vn 0.5905 -0.5050 0.6295 +vn 0.5095 -0.4357 0.7420 +vn 0.5303 -0.4102 0.7420 +vn 0.6146 -0.4755 0.6294 +vn 0.3798 -0.3955 0.8363 +vn 0.2918 -0.3038 0.9070 +vn 0.3063 -0.2892 0.9070 +vn 0.3987 -0.3764 0.8363 +vn 0.4167 -0.3564 0.8363 +vn 0.3201 -0.2738 0.9070 +vn 0.3332 -0.2577 0.9070 +vn 0.4337 -0.3355 0.8363 +vn 0.7404 -0.5261 0.4183 +vn 0.7504 -0.5332 0.3906 +vn 0.7021 -0.4989 0.5081 +vn 0.7185 -0.4750 0.5080 +vn 0.7577 -0.5010 0.4182 +vn 0.7678 -0.5079 0.3905 +vn 0.6336 -0.4501 0.6292 +vn 0.5468 -0.3884 0.7417 +vn 0.5597 -0.3697 0.7417 +vn 0.6485 -0.4285 0.6291 +vn 0.7770 -0.4705 0.4182 +vn 0.7874 -0.4770 0.3904 +vn 0.7367 -0.4462 0.5081 +vn 0.7409 -0.4404 0.5071 +vn 0.7815 -0.4634 0.4177 +vn 0.7921 -0.4693 0.3902 +vn 0.7651 -0.4914 0.4162 +vn 0.7371 -0.5350 0.4129 +vn 0.7475 -0.5407 0.3859 +vn 0.7756 -0.4972 0.3889 +vn 0.7247 -0.4684 0.5054 +vn 0.6973 -0.5122 0.5014 +vn 0.6646 -0.4029 0.6293 +vn 0.5732 -0.3481 0.7418 +vn 0.5752 -0.3470 0.7408 +vn 0.6678 -0.3992 0.6282 +vn 0.6519 -0.4274 0.6264 +vn 0.6251 -0.4714 0.6221 +vn 0.5595 -0.3754 0.7389 +vn 0.5331 -0.4198 0.7346 +vn 0.6972 -0.5904 0.4066 +vn 0.6448 -0.6536 0.3963 +vn 0.6540 -0.6592 0.3710 +vn 0.7082 -0.5976 0.3759 +vn 0.6584 -0.5679 0.4939 +vn 0.6076 -0.6317 0.4814 +vn 0.4684 -0.2853 0.8362 +vn 0.3594 -0.2200 0.9069 +vn 0.3583 -0.2251 0.9061 +vn 0.4689 -0.2873 0.8352 +vn 0.4578 -0.3023 0.8361 +vn 0.3519 -0.2322 0.9068 +vn 0.5754 -0.7242 0.3800 +vn 0.4838 -0.7998 0.3554 +vn 0.4908 -0.8048 0.3337 +vn 0.5837 -0.7296 0.3563 +vn 0.5405 -0.7033 0.4618 +vn 0.4522 -0.7804 0.4319 +vn 0.5873 -0.5275 0.6138 +vn 0.5381 -0.5922 0.5998 +vn 0.4962 -0.4765 0.7257 +vn 0.4485 -0.5422 0.7106 +vn 0.4535 -0.3159 0.8334 +vn 0.4276 -0.3608 0.8289 +vn 0.3430 -0.2539 0.9044 +vn 0.3176 -0.2993 0.8998 +vn 0.3654 -0.8743 0.3195 +vn 0.2186 -0.9377 0.2701 +vn 0.2218 -0.9412 0.2547 +vn 0.3706 -0.8788 0.3006 +vn 0.3383 -0.8572 0.3882 +vn 0.1974 -0.9238 0.3281 +vn 0.4736 -0.6652 0.5773 +vn 0.3892 -0.7446 0.5423 +vn 0.3865 -0.6169 0.6856 +vn 0.3062 -0.6991 0.6461 +vn 0.0492 -0.9769 0.2078 +vn 0.0502 -0.9792 0.1964 +vn 0.0348 -0.9671 0.2521 +vn 0.2811 -0.8250 0.4902 +vn 0.1484 -0.8966 0.4172 +vn 0.2045 -0.7838 0.5864 +vn 0.0811 -0.8612 0.5017 +vn -0.0035 -0.9463 0.3233 +vn -0.1615 -0.9632 0.2150 +vn -0.0581 -0.9183 0.3915 +vn -0.2004 -0.9438 0.2628 +vn 0.0165 -0.9478 0.3185 +vn 0.5195 -0.6698 0.5305 +vn -0.0427 -0.9162 0.3984 +vn 0.4081 -0.6152 0.6745 +vn 0.1170 -0.7370 0.6657 +vn 0.0045 -0.8211 0.5708 +vn 0.2113 -0.6475 0.7322 +vn 0.1117 -0.5938 0.7968 +vn 0.0250 -0.6883 0.7250 +vn -0.0762 -0.7793 0.6220 +vn 0.2868 -0.5621 0.7758 +vn 0.3458 -0.4852 0.8031 +vn 0.2384 -0.4259 0.8728 +vn 0.1823 -0.5049 0.8437 +vn -0.0610 -0.6429 0.7635 +vn -0.1505 -0.7410 0.6544 +vn 0.0177 -0.5433 0.8393 +vn -0.0658 -0.4986 0.8643 +vn -0.1372 -0.6031 0.7858 +vn -0.2159 -0.7076 0.6728 +vn 0.0832 -0.4509 0.8887 +vn 0.1362 -0.3696 0.9192 +vn 0.0450 -0.3195 0.9465 +vn -0.0051 -0.4030 0.9152 +vn -0.2438 -0.8241 0.5113 +vn -0.3301 -0.8791 0.3438 +vn -0.2906 -0.8986 0.3286 +vn -0.1852 -0.8536 0.4870 +vn -0.2947 -0.7986 0.5247 +vn -0.3639 -0.8625 0.3516 +vn -0.3360 -0.7782 0.5306 +vn -0.3907 -0.8494 0.3547 +vn -0.2696 -0.6803 0.6815 +vn -0.3125 -0.6585 0.6846 +vn -0.3689 -0.7618 0.5325 +vn -0.4121 -0.8389 0.3554 +vn -0.2004 -0.5702 0.7967 +vn -0.1356 -0.4615 0.8767 +vn -0.1915 -0.4316 0.8815 +vn -0.2509 -0.5438 0.8008 +vn -0.3940 -0.7495 0.5320 +vn -0.3452 -0.6420 0.6846 +vn -0.3679 -0.6306 0.6834 +vn -0.4113 -0.7409 0.5309 +vn -0.4285 -0.8310 0.3547 +vn -0.4397 -0.8256 0.3537 +vn -0.0791 -0.3628 0.9285 +vn -0.0316 -0.2774 0.9602 +vn -0.0932 -0.2436 0.9654 +vn -0.1385 -0.3306 0.9336 +vn -0.2895 -0.5238 0.8012 +vn -0.2342 -0.4089 0.8820 +vn -0.2639 -0.3931 0.8808 +vn -0.3163 -0.5098 0.8000 +vn -0.1839 -0.3060 0.9341 +vn -0.1403 -0.2178 0.9659 +vn -0.1731 -0.1997 0.9644 +vn -0.2155 -0.2889 0.9328 +vn 0.0075 -0.2051 0.9787 +vn 0.0396 -0.1444 0.9887 +vn -0.0241 -0.1089 0.9938 +vn -0.0554 -0.1702 0.9839 +vn 0.0857 -0.2484 0.9649 +vn 0.1187 -0.1884 0.9749 +vn -0.1034 -0.1437 0.9842 +vn -0.0726 -0.0819 0.9940 +vn -0.1066 -0.0630 0.9923 +vn -0.1370 -0.1251 0.9826 +vn -0.2418 -0.2744 0.9307 +vn -0.2873 -0.3786 0.8799 +vn -0.2004 -0.1846 0.9622 +vn -0.2155 -0.1764 0.9604 +vn -0.2563 -0.2667 0.9291 +vn -0.3023 -0.3727 0.8773 +vn 0.1785 -0.2999 0.9371 +vn 0.2124 -0.2407 0.9471 +vn 0.2826 -0.3576 0.8901 +vn -0.3386 -0.4979 0.7984 +vn -0.3868 -0.6207 0.6820 +vn -0.3509 -0.4919 0.7968 +vn -0.3956 -0.6142 0.6828 +vn -0.4259 -0.7335 0.5298 +vn -0.4493 -0.8208 0.3529 +vn -0.4338 -0.7299 0.5282 +vn -0.4544 -0.8185 0.3515 +vn -0.1649 -0.1095 0.9802 +vn -0.1348 -0.0472 0.9897 +vn -0.1504 -0.0385 0.9879 +vn -0.1804 -0.1010 0.9784 +vn -0.2596 -0.2649 0.9287 +vn -0.3053 -0.3710 0.8770 +vn -0.2189 -0.1746 0.9600 +vn -0.2267 -0.1702 0.9590 +vn -0.2671 -0.2607 0.9277 +vn -0.3125 -0.3671 0.8761 +vn -0.1838 -0.0991 0.9780 +vn -0.1539 -0.0366 0.9874 +vn -0.1619 -0.0321 0.9863 +vn -0.1917 -0.0947 0.9769 +vn -0.3537 -0.4904 0.7965 +vn -0.3975 -0.6124 0.6833 +vn -0.3602 -0.4868 0.7958 +vn -0.4051 -0.6115 0.6797 +vn -0.4220 -0.7200 0.5509 +vn -0.2491 -0.2865 0.9251 +vn -0.2253 -0.2987 0.9274 +vn -0.4075 -0.7273 0.5523 +vn -0.4288 -0.7134 0.5543 +vn -0.2603 -0.2764 0.9251 +vn -0.3909 -0.7362 0.5525 +vn -0.1980 -0.3128 0.9290 +vn -0.1588 -0.3329 0.9295 +vn -0.3668 -0.7490 0.5517 +vn -0.4356 -0.7289 0.5281 +vn -0.4556 -0.8179 0.3514 +vn -0.4400 -0.7266 0.5277 +vn -0.4585 -0.8163 0.3512 +vn -0.4460 -0.7235 0.5269 +vn -0.4626 -0.8143 0.3507 +vn -0.4129 -0.6073 0.6787 +vn -0.4211 -0.6030 0.6775 +vn -0.4524 -0.7202 0.5260 +vn -0.4669 -0.8121 0.3501 +vn -0.3693 -0.4819 0.7946 +vn -0.3224 -0.3616 0.8748 +vn -0.3329 -0.3559 0.8732 +vn -0.3788 -0.4767 0.7932 +vn -0.2776 -0.2549 0.9263 +vn -0.2375 -0.1642 0.9574 +vn -0.2489 -0.1578 0.9556 +vn -0.2887 -0.2488 0.9245 +vn -0.3889 -0.4713 0.7916 +vn -0.4298 -0.5984 0.6762 +vn -0.3440 -0.3498 0.8714 +vn -0.3557 -0.3434 0.8692 +vn -0.3996 -0.4655 0.7897 +vn -0.4389 -0.5936 0.6745 +vn -0.2027 -0.0885 0.9752 +vn -0.1730 -0.0258 0.9846 +vn -0.1847 -0.0193 0.9826 +vn -0.2143 -0.0820 0.9733 +vn -0.3004 -0.2423 0.9225 +vn -0.2610 -0.1511 0.9534 +vn -0.2737 -0.1440 0.9510 +vn -0.3127 -0.2355 0.9202 +vn -0.2266 -0.0752 0.9711 +vn -0.1971 -0.0124 0.9803 +vn -0.2102 -0.0050 0.9776 +vn -0.2395 -0.0679 0.9685 +vn -0.1478 0.0263 0.9887 +vn -0.1321 0.0582 0.9895 +vn -0.1434 0.0658 0.9875 +vn -0.1592 0.0336 0.9867 +vn -0.1372 0.0191 0.9904 +vn -0.1217 0.0506 0.9913 +vn -0.1713 0.0412 0.9844 +vn -0.1554 0.0736 0.9851 +vn -0.1681 0.0816 0.9824 +vn -0.1841 0.0491 0.9817 +vn -0.2532 -0.0603 0.9655 +vn -0.2872 -0.1365 0.9481 +vn -0.2240 0.0027 0.9746 +vn -0.2386 0.0109 0.9711 +vn -0.2678 -0.0522 0.9621 +vn -0.3015 -0.1285 0.9448 +vn -0.1297 0.0133 0.9915 +vn -0.1145 0.0443 0.9924 +vn -0.1268 0.0102 0.9919 +vn -0.1120 0.0406 0.9929 +vn -0.3258 -0.2282 0.9175 +vn -0.3680 -0.3366 0.8667 +vn -0.3396 -0.2206 0.9143 +vn -0.3812 -0.3294 0.8638 +vn -0.1113 0.0009 0.9938 +vn -0.0966 0.0310 0.9948 +vn -0.0829 -0.0151 0.9964 +vn -0.0682 0.0150 0.9976 +vn -0.1255 0.0713 0.9895 +vn -0.1370 0.0782 0.9875 +vn -0.1146 0.0646 0.9913 +vn -0.1104 0.0717 0.9913 +vn -0.1212 0.0784 0.9895 +vn -0.1327 0.0856 0.9875 +vn -0.0488 -0.0343 0.9982 +vn -0.0341 -0.0043 0.9994 +vn -0.0001 -0.0616 0.9981 +vn 0.0147 -0.0318 0.9994 +vn -0.1067 0.0595 0.9925 +vn -0.1035 0.0571 0.9930 +vn -0.0989 0.0649 0.9930 +vn -0.1024 0.0669 0.9925 +vn -0.0883 0.0478 0.9949 +vn -0.0603 0.0310 0.9977 +vn -0.0566 0.0373 0.9977 +vn -0.0839 0.0552 0.9949 +vn 0.0638 -0.0975 0.9932 +vn 0.0787 -0.0679 0.9946 +vn 0.1433 -0.1420 0.9794 +vn 0.1583 -0.1126 0.9810 +vn -0.0268 0.0109 0.9996 +vn 0.0212 -0.0177 0.9996 +vn 0.0228 -0.0150 0.9996 +vn -0.0239 0.0157 0.9996 +vn -0.0819 0.0581 0.9949 +vn -0.0965 0.0684 0.9930 +vn -0.0552 0.0392 0.9977 +vn -0.0536 0.0415 0.9977 +vn -0.0795 0.0615 0.9949 +vn -0.0935 0.0724 0.9930 +vn -0.0233 0.0165 0.9996 +vn 0.0223 -0.0158 0.9996 +vn 0.0215 -0.0166 0.9996 +vn -0.0227 0.0175 0.9996 +vn 0.0842 -0.0554 0.9949 +vn 0.1624 -0.1022 0.9814 +vn 0.1603 -0.1057 0.9814 +vn 0.0841 -0.0554 0.9949 +vn -0.0998 0.0707 0.9925 +vn -0.1074 0.0760 0.9913 +vn -0.0967 0.0748 0.9925 +vn -0.1041 0.0805 0.9913 +vn 0.0821 -0.0583 0.9949 +vn 0.1566 -0.1112 0.9814 +vn 0.1517 -0.1173 0.9814 +vn 0.0795 -0.0615 0.9949 +vn 0.2447 -0.1738 0.9539 +vn 0.3437 -0.2441 0.9068 +vn 0.2372 -0.1835 0.9540 +vn 0.2506 -0.1653 0.9539 +vn 0.2375 -0.1948 0.9517 +vn 0.2526 -0.1656 0.9533 +vn 0.3917 -0.4183 0.8195 +vn 0.2553 -0.1577 0.9539 +vn 0.4473 -0.3177 0.8361 +vn 0.2279 -0.1949 0.9540 +vn 0.1457 -0.1246 0.9814 +vn 0.2181 -0.2059 0.9540 +vn 0.1394 -0.1316 0.9815 +vn 0.0764 -0.0653 0.9949 +vn 0.0207 -0.0177 0.9996 +vn 0.0731 -0.0690 0.9949 +vn 0.0198 -0.0187 0.9996 +vn 0.2077 -0.2163 0.9540 +vn 0.1328 -0.1383 0.9814 +vn 0.1968 -0.2262 0.9540 +vn 0.1259 -0.1447 0.9814 +vn -0.0218 0.0186 0.9996 +vn -0.0515 0.0441 0.9977 +vn -0.0208 0.0197 0.9996 +vn -0.0493 0.0465 0.9977 +vn 0.0696 -0.0725 0.9949 +vn 0.0188 -0.0196 0.9996 +vn 0.0660 -0.0758 0.9949 +vn 0.0179 -0.0205 0.9996 +vn 0.1855 -0.2356 0.9540 +vn 0.1186 -0.1507 0.9814 +vn 0.1737 -0.2444 0.9540 +vn 0.1111 -0.1563 0.9814 +vn -0.0763 0.0653 0.9949 +vn -0.0899 0.0769 0.9930 +vn -0.0731 0.0690 0.9949 +vn -0.0860 0.0812 0.9930 +vn -0.0199 0.0207 0.9996 +vn -0.0470 0.0489 0.9977 +vn -0.0188 0.0216 0.9996 +vn -0.0445 0.0511 0.9977 +vn 0.0622 -0.0790 0.9949 +vn 0.0168 -0.0214 0.9996 +vn 0.0582 -0.0820 0.9949 +vn 0.0158 -0.0222 0.9996 +vn 0.1615 -0.2527 0.9540 +vn 0.1033 -0.1616 0.9814 +vn 0.1489 -0.2603 0.9540 +vn 0.0952 -0.1664 0.9815 +vn 0.1360 -0.2673 0.9540 +vn 0.0869 -0.1709 0.9814 +vn 0.0541 -0.0847 0.9949 +vn 0.0147 -0.0229 0.9996 +vn 0.0499 -0.0873 0.9949 +vn 0.0135 -0.0236 0.9996 +vn -0.0177 0.0225 0.9996 +vn -0.0419 0.0533 0.9977 +vn -0.0166 0.0234 0.9996 +vn -0.0393 0.0553 0.9977 +vn 0.0456 -0.0896 0.9949 +vn 0.0123 -0.0242 0.9996 +vn -0.0154 0.0242 0.9996 +vn -0.0365 0.0571 0.9977 +vn -0.0142 0.0249 0.9996 +vn -0.0337 0.0588 0.9977 +vn -0.0130 0.0256 0.9996 +vn -0.0307 0.0604 0.9977 +vn -0.0117 0.0262 0.9996 +vn -0.0277 0.0619 0.9977 +vn -0.0106 0.0265 0.9996 +vn -0.0251 0.0629 0.9977 +vn -0.0541 0.0846 0.9949 +vn -0.0637 0.0997 0.9930 +vn -0.0685 0.0964 0.9930 +vn -0.0582 0.0819 0.9949 +vn -0.0499 0.0872 0.9949 +vn -0.0587 0.1027 0.9930 +vn -0.0373 0.0932 0.9949 +vn -0.0439 0.1098 0.9930 +vn -0.0484 0.1079 0.9930 +vn -0.0411 0.0917 0.9949 +vn -0.0455 0.0895 0.9949 +vn -0.0536 0.1054 0.9930 +vn -0.0453 0.1136 0.9925 +vn -0.0486 0.1222 0.9913 +vn -0.0538 0.1201 0.9913 +vn -0.0500 0.1116 0.9925 +vn -0.0410 0.1152 0.9925 +vn -0.0438 0.1241 0.9913 +vn -0.0554 0.1090 0.9925 +vn -0.0597 0.1173 0.9913 +vn -0.0653 0.1142 0.9913 +vn -0.0607 0.1061 0.9925 +vn -0.0659 0.1030 0.9925 +vn -0.0709 0.1109 0.9913 +vn -0.0762 0.1073 0.9913 +vn -0.0708 0.0997 0.9925 +vn -0.0621 0.0789 0.9949 +vn -0.0732 0.0929 0.9930 +vn -0.0776 0.0892 0.9930 +vn -0.0659 0.0758 0.9949 +vn -0.0756 0.0961 0.9925 +vn -0.0814 0.1034 0.9913 +vn -0.0864 0.0993 0.9913 +vn -0.0803 0.0923 0.9925 +vn -0.0696 0.0725 0.9949 +vn -0.0819 0.0853 0.9930 +vn -0.0847 0.0882 0.9925 +vn -0.0911 0.0949 0.9913 +vn -0.0957 0.0903 0.9913 +vn -0.0889 0.0839 0.9925 +vn -0.0929 0.0795 0.9925 +vn -0.1000 0.0855 0.9913 +vn -0.1000 0.1041 0.9895 +vn -0.1093 0.1139 0.9875 +vn -0.1148 0.1084 0.9875 +vn -0.1050 0.0991 0.9895 +vn -0.0948 0.1089 0.9895 +vn -0.1036 0.1191 0.9875 +vn -0.1179 0.0833 0.9895 +vn -0.1290 0.0910 0.9875 +vn -0.1142 0.0883 0.9895 +vn -0.1248 0.0966 0.9875 +vn -0.1097 0.0938 0.9895 +vn -0.1200 0.1026 0.9875 +vn -0.1493 0.0855 0.9851 +vn -0.1622 0.0931 0.9824 +vn -0.1447 0.0931 0.9851 +vn -0.1574 0.1011 0.9823 +vn -0.1406 0.0992 0.9851 +vn -0.1529 0.1078 0.9823 +vn -0.1361 0.1053 0.9851 +vn -0.1480 0.1145 0.9823 +vn -0.1308 0.1118 0.9851 +vn -0.1422 0.1216 0.9823 +vn -0.1251 0.1181 0.9851 +vn -0.1361 0.1284 0.9823 +vn -0.0893 0.1134 0.9895 +vn -0.0976 0.1240 0.9875 +vn -0.0836 0.1177 0.9895 +vn -0.0914 0.1287 0.9875 +vn -0.1192 0.1241 0.9851 +vn -0.1296 0.1350 0.9823 +vn -0.1129 0.1298 0.9851 +vn -0.1228 0.1412 0.9823 +vn -0.0778 0.1216 0.9895 +vn -0.0850 0.1330 0.9875 +vn -0.0717 0.1253 0.9895 +vn -0.0784 0.1370 0.9875 +vn -0.1064 0.1352 0.9851 +vn -0.1157 0.1470 0.9823 +vn -0.0997 0.1403 0.9851 +vn -0.1084 0.1525 0.9823 +vn -0.0655 0.1287 0.9895 +vn -0.0716 0.1407 0.9875 +vn -0.0591 0.1317 0.9895 +vn -0.0646 0.1440 0.9875 +vn -0.0927 0.1450 0.9851 +vn -0.1008 0.1577 0.9823 +vn -0.0855 0.1494 0.9851 +vn -0.0929 0.1624 0.9823 +vn -0.1406 0.1464 0.9792 +vn -0.1523 0.1586 0.9755 +vn -0.1599 0.1509 0.9755 +vn -0.1476 0.1394 0.9792 +vn -0.1333 0.1532 0.9792 +vn -0.1443 0.1659 0.9755 +vn -0.1256 0.1595 0.9792 +vn -0.1360 0.1727 0.9755 +vn -0.1176 0.1655 0.9792 +vn -0.1274 0.1792 0.9755 +vn -0.1543 0.1319 0.9792 +vn -0.1671 0.1429 0.9755 +vn -0.1739 0.1345 0.9755 +vn -0.1606 0.1242 0.9792 +vn -0.0780 0.1534 0.9851 +vn -0.0848 0.1668 0.9823 +vn -0.0704 0.1570 0.9851 +vn -0.0766 0.1707 0.9823 +vn -0.1660 0.1169 0.9792 +vn -0.1798 0.1266 0.9755 +vn -0.1851 0.1186 0.9755 +vn -0.1709 0.1096 0.9792 +vn -0.0533 0.1342 0.9895 +vn -0.0582 0.1467 0.9875 +vn -0.0478 0.1362 0.9895 +vn -0.0520 0.1490 0.9875 +vn -0.0327 0.1178 0.9925 +vn -0.0358 0.1265 0.9913 +vn -0.0397 0.1387 0.9895 +vn -0.0438 0.1516 0.9875 +vn -0.0634 0.1600 0.9851 +vn -0.0689 0.1740 0.9823 +vn -0.0566 0.1625 0.9851 +vn -0.0614 0.1768 0.9823 +vn 0.0002 0.1762 0.9844 +vn -0.0352 0.1683 0.9851 +vn -0.0044 0.1905 0.9817 +vn -0.0400 0.1826 0.9824 +vn -0.0480 0.1652 0.9851 +vn -0.0524 0.1796 0.9823 +vn -0.0093 0.2050 0.9787 +vn -0.0449 0.1977 0.9792 +vn -0.0570 0.1948 0.9792 +vn -0.0664 0.1918 0.9792 +vn -0.0747 0.1888 0.9792 +vn -0.0809 0.2044 0.9755 +vn -0.0900 0.2006 0.9755 +vn -0.0831 0.1852 0.9792 +vn -0.0874 0.2211 0.9713 +vn -0.0973 0.2169 0.9713 +vn -0.0920 0.1809 0.9792 +vn -0.0997 0.1960 0.9755 +vn -0.1092 0.1908 0.9755 +vn -0.1008 0.1762 0.9792 +vn -0.1078 0.2119 0.9713 +vn -0.1164 0.2288 0.9665 +vn -0.1275 0.2228 0.9665 +vn -0.1181 0.2063 0.9713 +vn -0.1255 0.2467 0.9609 +vn -0.1352 0.2658 0.9545 +vn -0.1481 0.2588 0.9545 +vn -0.1375 0.2403 0.9609 +vn -0.1093 0.1711 0.9792 +vn -0.1184 0.1852 0.9755 +vn -0.1280 0.2003 0.9713 +vn -0.1382 0.2163 0.9665 +vn -0.1487 0.2092 0.9665 +vn -0.1377 0.1938 0.9713 +vn -0.1470 0.1868 0.9713 +vn -0.1588 0.2017 0.9665 +vn -0.1685 0.1936 0.9665 +vn -0.1560 0.1793 0.9713 +vn -0.1491 0.2332 0.9609 +vn -0.1606 0.2513 0.9545 +vn -0.1728 0.2431 0.9545 +vn -0.1603 0.2256 0.9609 +vn -0.1712 0.2175 0.9609 +vn -0.1845 0.2343 0.9545 +vn -0.1957 0.2250 0.9545 +vn -0.1817 0.2088 0.9609 +vn -0.1646 0.1715 0.9713 +vn -0.1778 0.1851 0.9665 +vn -0.1866 0.1762 0.9665 +vn -0.1729 0.1632 0.9713 +vn -0.1917 0.1997 0.9609 +vn -0.2066 0.2151 0.9545 +vn -0.2169 0.2047 0.9545 +vn -0.2013 0.1900 0.9609 +vn -0.1807 0.1545 0.9713 +vn -0.1951 0.1668 0.9665 +vn -0.2030 0.1570 0.9665 +vn -0.1880 0.1455 0.9713 +vn -0.2104 0.1799 0.9609 +vn -0.2266 0.1938 0.9545 +vn -0.2359 0.1825 0.9545 +vn -0.2189 0.1694 0.9609 +vn -0.1944 0.1368 0.9713 +vn -0.2099 0.1477 0.9665 +vn -0.2163 0.1383 0.9665 +vn -0.2002 0.1281 0.9713 +vn -0.2264 0.1592 0.9609 +vn -0.2439 0.1715 0.9545 +vn -0.2514 0.1605 0.9545 +vn -0.2333 0.1490 0.9609 +vn -0.2458 0.2102 0.9462 +vn -0.2678 0.2290 0.9359 +vn -0.2787 0.2156 0.9359 +vn -0.2559 0.1979 0.9462 +vn -0.2352 0.2221 0.9462 +vn -0.2562 0.2419 0.9359 +vn -0.2646 0.1860 0.9462 +vn -0.2882 0.2026 0.9359 +vn -0.2971 0.1895 0.9359 +vn -0.2727 0.1740 0.9462 +vn -0.2396 0.1385 0.9609 +vn -0.2222 0.1283 0.9665 +vn -0.2581 0.1492 0.9545 +vn -0.2638 0.1382 0.9546 +vn -0.2453 0.1275 0.9610 +vn -0.2279 0.1174 0.9666 +vn -0.2240 0.2333 0.9463 +vn -0.2440 0.2541 0.9359 +vn -0.2123 0.2440 0.9462 +vn -0.2313 0.2658 0.9359 +vn -0.2059 0.1187 0.9713 +vn -0.1905 0.1097 0.9755 +vn -0.2115 0.1078 0.9714 +vn -0.1962 0.0986 0.9756 +vn -0.2001 0.2542 0.9462 +vn -0.2179 0.2768 0.9359 +vn -0.1874 0.2637 0.9462 +vn -0.2041 0.2872 0.9359 +vn -0.1759 0.1012 0.9792 +vn -0.1817 0.0899 0.9792 +vn -0.1978 0.0573 0.9786 +vn -0.2123 0.0659 0.9750 +vn -0.2277 0.0750 0.9708 +vn -0.2541 0.0196 0.9670 +vn -0.2441 0.0845 0.9661 +vn -0.2706 0.0288 0.9623 +vn -0.2615 0.0946 0.9606 +vn -0.2881 0.0386 0.9568 +vn -0.2801 0.1053 0.9542 +vn -0.2832 -0.0435 0.9581 +vn -0.3166 -0.1201 0.9409 +vn -0.2995 -0.0344 0.9535 +vn -0.3169 -0.0247 0.9481 +vn -0.3543 -0.2124 0.9107 +vn -0.3951 -0.3218 0.8604 +vn -0.4356 -0.4461 0.7819 +vn -0.4229 -0.4529 0.7849 +vn -0.4109 -0.4594 0.7875 +vn -0.4486 -0.5885 0.6727 +vn -0.4739 -0.7090 0.5222 +vn -0.4663 -0.7129 0.5237 +vn -0.4592 -0.7166 0.5249 +vn -0.4714 -0.8098 0.3494 +vn -0.4381 -0.6933 0.5722 +vn -0.2705 -0.2396 0.9324 +vn -0.2635 -0.2536 0.9307 +vn -0.4328 -0.7013 0.5665 +vn -0.4440 -0.6855 0.5770 +vn -0.2784 -0.2260 0.9335 +vn -0.4295 -0.7085 0.5599 +vn -0.2600 -0.2670 0.9280 +vn -0.3020 0.1178 0.9460 +vn -0.2857 0.1508 0.9464 +vn -0.3108 0.1651 0.9360 +vn -0.3271 0.1321 0.9357 +vn -0.2799 0.1619 0.9463 +vn -0.3049 0.1765 0.9359 +vn -0.3531 0.1469 0.9240 +vn -0.3368 0.1800 0.9242 +vn -0.3307 0.1915 0.9241 +vn -0.3610 0.2091 0.9088 +vn -0.3223 0.2055 0.9241 +vn -0.3519 0.2242 0.9088 +vn -0.3966 0.2298 0.8888 +vn -0.3867 0.2463 0.8887 +vn -0.3127 0.2198 0.9241 +vn -0.3414 0.2399 0.9088 +vn -0.3024 0.2339 0.9240 +vn -0.3300 0.2553 0.9088 +vn -0.3751 0.2635 0.8887 +vn -0.4117 0.2892 0.8642 +vn -0.3626 0.2805 0.8887 +vn -0.3980 0.3079 0.8642 +vn -0.2905 0.2484 0.9241 +vn -0.3171 0.2712 0.9088 +vn -0.2780 0.2624 0.9241 +vn -0.3034 0.2864 0.9088 +vn -0.4514 0.3171 0.8341 +vn -0.4943 0.3472 0.7970 +vn -0.4364 0.3376 0.8340 +vn -0.4778 0.3696 0.7969 +vn -0.3484 0.2980 0.8887 +vn -0.3824 0.3270 0.8642 +vn -0.3334 0.3147 0.8887 +vn -0.3659 0.3454 0.8642 +vn -0.2648 0.2757 0.9241 +vn -0.2890 0.3010 0.9088 +vn -0.2509 0.2884 0.9241 +vn -0.2739 0.3148 0.9088 +vn -0.5401 0.3793 0.7513 +vn -0.5885 0.4133 0.6949 +vn -0.5221 0.4039 0.7512 +vn -0.5688 0.4400 0.6949 +vn -0.4193 0.3586 0.8340 +vn -0.4591 0.3926 0.7969 +vn -0.4012 0.3787 0.8340 +vn -0.4393 0.4147 0.7969 +vn -0.3175 0.3307 0.8887 +vn -0.3485 0.3629 0.8642 +vn -0.3009 0.3458 0.8887 +vn -0.3303 0.3796 0.8642 +vn -0.6385 0.4484 0.6256 +vn -0.6171 0.4774 0.6255 +vn -0.5016 0.4290 0.7512 +vn -0.5465 0.4674 0.6949 +vn -0.4800 0.4531 0.7512 +vn -0.5929 0.5071 0.6255 +vn -0.4572 0.4761 0.7512 +vn -0.4184 0.4357 0.7969 +vn -0.3821 0.3979 0.8340 +vn -0.3621 0.4162 0.8340 +vn -0.3413 0.4335 0.8340 +vn -0.3113 0.3954 0.8642 +vn -0.2469 0.3863 0.8887 +vn -0.2247 0.3516 0.9088 +vn -0.2656 0.3737 0.8887 +vn -0.2417 0.3401 0.9088 +vn -0.2836 0.3602 0.8887 +vn -0.2581 0.3279 0.9088 +vn -0.2059 0.3221 0.9241 +vn -0.1898 0.2969 0.9359 +vn -0.2214 0.3116 0.9241 +vn -0.1467 0.2883 0.9462 +vn -0.1606 0.2808 0.9462 +vn -0.2365 0.3003 0.9241 +vn -0.1742 0.2726 0.9462 +vn -0.1199 -0.8866 0.4468 +vn -0.2442 -0.9216 0.3016 +vn -0.1185 -0.8803 0.4595 +vn 0.2577 -0.5459 0.7972 +vn -0.1902 -0.8398 0.5084 +vn 0.1165 -0.4704 0.8747 +vn -0.2485 -0.8099 0.5314 +vn 0.0255 -0.4251 0.9048 +vn -0.2972 -0.7846 0.5441 +vn -0.0496 -0.3874 0.9206 +vn -0.3356 -0.7649 0.5499 +vn -0.1089 -0.3578 0.9274 +vn 0.8834 -0.0901 0.4599 +vn 0.9530 0.0215 0.3021 +vn 0.4682 -0.3784 0.7985 +vn 0.8898 -0.0910 0.4472 +vn -0.8506 -0.4462 0.2782 +vn -0.8899 0.1544 0.4292 +vn -0.8795 -0.4331 0.1972 +vn -0.9360 0.1766 0.3044 +vn -0.9118 -0.4106 0.0107 +vn -0.9799 0.1987 0.0154 +vn -0.9775 0.1973 0.0742 +vn -0.9090 -0.4139 0.0495 +vn -0.7388 -0.6739 0.0067 +vn -0.7375 -0.6753 -0.0013 +vn -0.9140 -0.4058 -0.0023 +vn -0.9799 0.1995 -0.0045 +vn -0.8610 -0.5085 0.0108 +vn -0.9454 -0.3255 0.0148 +vn -0.9451 -0.3269 -0.0018 +vn -0.8601 -0.5101 -0.0017 +vn -0.9889 -0.1473 0.0181 +vn -0.9997 0.0097 0.0206 +vn -1.0000 0.0089 -0.0013 +vn -0.9889 -0.1484 -0.0016 +vn -0.9899 0.1397 0.0224 +vn -0.9695 0.2439 0.0236 +vn -0.9698 0.2437 -0.0005 +vn -0.9903 0.1392 -0.0009 +vn -0.9448 0.3267 0.0243 +vn -0.9194 0.3925 0.0248 +vn -0.9197 0.3925 -0.0001 +vn -0.9452 0.3266 -0.0002 +vn -0.8925 0.4504 0.0250 +vn -0.8752 0.4832 0.0251 +vn -0.8754 0.4833 0.0000 +vn -0.8928 0.4505 0.0000 +vn -0.8646 0.5019 0.0251 +vn -0.8648 0.5021 0.0000 +vn -0.8436 0.5366 0.0230 +vn -0.8438 0.5367 0.0000 +vn -0.8181 0.5745 0.0251 +vn -0.8184 0.5747 0.0000 +vn -0.7907 0.6117 0.0230 +vn -0.7910 0.6119 0.0000 +vn -0.7597 0.6497 0.0251 +vn -0.7600 0.6499 0.0000 +vn -0.7270 0.6863 0.0230 +vn -0.7272 0.6865 0.0000 +vn -0.6924 0.7211 0.0251 +vn -0.6926 0.7213 0.0000 +vn -0.6562 0.7542 0.0230 +vn -0.6564 0.7544 0.0000 +vn -0.6184 0.7855 0.0251 +vn -0.6186 0.7857 0.0000 +vn -0.5791 0.8149 0.0230 +vn -0.5793 0.8151 0.0000 +vn -0.5384 0.8423 0.0251 +vn -0.5386 0.8426 0.0000 +vn -0.4964 0.8678 0.0230 +vn -0.4966 0.8680 0.0000 +vn -0.4533 0.8910 0.0251 +vn -0.4534 0.8913 0.0000 +vn -0.4090 0.9122 0.0230 +vn -0.4091 0.9125 0.0000 +vn -0.3664 0.9301 0.0251 +vn -0.3665 0.9304 0.0000 +vn -0.3235 0.9460 0.0230 +vn -0.3236 0.9462 -0.0000 +vn -0.2849 0.9582 0.0251 +vn -0.2850 0.9585 -0.0000 +vn -0.2643 0.9642 0.0228 +vn -0.2643 0.9644 0.0000 +vn -0.2283 0.9733 0.0251 +vn -0.1657 0.9859 0.0249 +vn -0.1657 0.9862 -0.0002 +vn -0.2284 0.9736 -0.0001 +vn -0.0957 0.9951 0.0244 +vn -0.0095 0.9997 0.0237 +vn -0.0092 1.0000 -0.0006 +vn -0.0956 0.9954 -0.0004 +vn 0.0966 0.9951 0.0225 +vn 0.2253 0.9741 0.0208 +vn 0.2261 0.9741 -0.0013 +vn 0.0971 0.9953 -0.0009 +vn 0.3753 0.9267 0.0183 +vn 0.5382 0.8427 0.0150 +vn 0.5396 0.8419 -0.0016 +vn 0.3764 0.9265 -0.0016 +vn 0.6964 0.7176 0.0110 +vn 0.8285 0.5600 0.0068 +vn 0.8295 0.5585 -0.0013 +vn 0.6977 0.7164 -0.0015 +vn 0.6954 0.7172 0.0453 +vn 0.8277 0.5604 0.0294 +vn 0.6133 0.7898 0.0109 +vn 0.0365 0.9992 0.0155 +vn 0.0359 0.9993 -0.0047 +vn 0.6091 0.7931 -0.0024 +vn 0.6159 0.7863 0.0496 +vn 0.0371 0.9965 0.0743 +vn 0.6212 0.7754 0.1136 +vn 0.8276 0.5574 0.0666 +vn 0.0401 0.9829 0.1796 +vn 0.6955 0.7115 0.1006 +vn -0.4505 -0.6778 0.5811 +vn -0.2874 -0.2130 0.9338 +vn -0.8995 -0.4218 0.1139 +vn -0.9660 0.1913 0.1741 +vn -0.0699 0.8978 0.4348 +vn -0.1337 -0.9859 0.1009 +vn 0.0691 -0.9954 0.0668 +vn 0.0796 -0.9902 0.1151 +vn -0.1175 -0.9780 0.1726 +vn -0.3265 -0.9361 0.1305 +vn -0.3053 -0.9261 0.2217 +vn -0.3335 -0.9409 0.0594 +vn -0.1383 -0.9894 0.0452 +vn 0.0668 -0.9973 0.0294 +vn 0.7981 -0.5687 0.1990 +vn 0.9400 -0.0097 0.3411 +vn 0.9434 -0.0069 0.3317 +vn 0.8027 -0.5642 0.1932 +vn 0.6885 -0.7122 0.1370 +vn 0.6887 -0.7133 0.1299 +vn 0.6796 -0.7146 0.1657 +vn 0.7809 -0.5797 0.2328 +vn 0.9191 -0.0194 0.3936 +vn -0.4815 0.8631 0.1526 +vn -0.3172 0.9394 0.1302 +vn -0.3240 0.9442 0.0595 +vn -0.4904 0.8686 0.0706 +vn -0.6097 0.7746 0.1679 +vn -0.6201 0.7806 0.0784 +vn -0.5823 0.7621 0.2831 +vn -0.4566 0.8513 0.2583 +vn -0.2960 0.9291 0.2215 +vn 0.3974 0.7349 0.5496 +vn 0.4300 0.8302 0.3548 +vn 0.4569 0.8170 0.3518 +vn 0.4366 0.7169 0.5435 +vn 0.2152 0.3048 0.9278 +vn 0.2746 0.2755 0.9212 +vn 0.1649 0.3295 0.9296 +vn 0.3655 0.7497 0.5516 +vn 0.4085 0.8407 0.3555 +vn 0.8215 0.5300 0.2101 +vn 0.6957 0.7053 0.1365 +vn 0.6960 0.7064 0.1290 +vn 0.8264 0.5250 0.2034 +vn 0.9368 -0.0435 0.3470 +vn 0.9403 -0.0468 0.3372 +vn 0.9158 -0.0320 0.4004 +vn 0.8036 0.5418 0.2463 +vn 0.6866 0.7080 0.1653 +vn -0.4901 -0.8581 0.1529 +vn -0.6174 -0.7684 0.1682 +vn -0.6280 -0.7743 0.0784 +vn -0.4991 -0.8637 0.0705 +vn -0.4651 -0.8467 0.2585 +vn -0.5898 -0.7562 0.2833 +vn -0.7115 -0.6798 0.1778 +vn -0.7793 -0.5992 0.1835 +vn -0.7915 -0.6050 0.0867 +vn -0.7230 -0.6858 0.0835 +vn -0.6823 -0.6673 0.2986 +vn -0.7494 -0.5865 0.3074 +vn -0.4259 -0.8296 0.3611 +vn -0.5470 -0.7379 0.3954 +vn -0.2716 -0.9111 0.3100 +vn -0.2321 -0.8947 0.3817 +vn -0.3801 -0.8109 0.4450 +vn -0.4973 -0.7177 0.4875 +vn -0.0912 -0.9661 0.2417 +vn 0.0973 -0.9821 0.1614 +vn 0.1180 -0.9730 0.1984 +vn -0.0602 -0.9529 0.2973 +vn -0.8281 -0.5286 0.1866 +vn -0.8635 -0.4680 0.1880 +vn -0.8762 -0.4735 0.0896 +vn -0.8407 -0.5342 0.0886 +vn -0.7978 -0.5160 0.3120 +vn -0.8330 -0.4555 0.3141 +vn -0.0286 -0.9393 0.3419 +vn -0.1914 -0.8777 0.4394 +vn 0.1391 -0.9637 0.2278 +vn 0.1598 -0.9545 0.2518 +vn 0.0026 -0.9258 0.3781 +vn -0.1511 -0.8606 0.4863 +vn -0.0745 -0.9252 0.3720 +vn -0.5352 -0.5961 0.5985 +vn -0.4828 -0.5725 0.6627 +vn -0.0420 -0.9102 0.4121 +vn -0.1068 -0.9403 0.3231 +vn -0.5875 -0.6197 0.5204 +vn -0.0103 -0.8957 0.4446 +vn 0.1797 -0.9456 0.2712 +vn -0.4319 -0.5498 0.7150 +vn -0.3835 -0.5284 0.7575 +vn 0.0198 -0.8820 0.4708 +vn 0.1984 -0.9372 0.2869 +vn 0.0483 -0.8694 0.4918 +vn 0.2159 -0.9293 0.2995 +vn -0.3379 -0.5087 0.7919 +vn -0.2954 -0.4908 0.8197 +vn 0.0749 -0.8578 0.5086 +vn 0.2320 -0.9221 0.3098 +vn 0.0327 -0.9127 0.4074 +vn -0.1124 -0.8441 0.5243 +vn 0.0609 -0.9003 0.4311 +vn -0.0759 -0.8285 0.5548 +vn -0.3327 -0.7914 0.5128 +vn -0.4454 -0.6967 0.5623 +vn -0.2857 -0.7719 0.5679 +vn -0.3940 -0.6756 0.6232 +vn -0.6374 -0.6483 0.4165 +vn -0.7033 -0.5673 0.4285 +vn -0.5853 -0.6273 0.5138 +vn -0.6499 -0.5458 0.5289 +vn -0.7511 -0.4967 0.4349 +vn -0.7862 -0.4362 0.4377 +vn -0.6973 -0.4749 0.5369 +vn -0.7323 -0.4143 0.5405 +vn -0.5309 -0.6053 0.5931 +vn -0.5941 -0.5232 0.6110 +vn -0.4767 -0.5832 0.6577 +vn -0.5384 -0.5006 0.6779 +vn -0.2404 -0.7530 0.6125 +vn -0.3443 -0.6552 0.6725 +vn -0.1977 -0.7351 0.6485 +vn -0.2974 -0.6358 0.7123 +vn -0.8918 -0.4112 0.1885 +vn -0.9067 -0.3775 0.1884 +vn -0.9195 -0.3827 0.0900 +vn -0.9046 -0.4167 0.0900 +vn -0.8614 -0.3988 0.3147 +vn -0.8763 -0.3651 0.3144 +vn -0.8147 -0.3796 0.4384 +vn -0.8297 -0.3460 0.4381 +vn -0.7607 -0.3577 0.5416 +vn -0.7759 -0.3241 0.5412 +vn -0.6408 -0.4520 0.6205 +vn -0.6755 -0.3913 0.6250 +vn -0.5844 -0.4291 0.6887 +vn -0.6188 -0.3683 0.6939 +vn -0.9146 -0.3578 0.1882 +vn -0.9275 -0.3628 0.0900 +vn -0.8841 -0.3459 0.3141 +vn -0.8975 -0.3098 0.3140 +vn -0.9284 -0.3204 0.1882 +vn -0.9414 -0.3250 0.0900 +vn -0.4243 -0.5619 0.7101 +vn -0.4846 -0.4787 0.7321 +vn -0.3749 -0.5416 0.7524 +vn -0.4338 -0.4580 0.7760 +vn 0.0873 -0.8887 0.4501 +vn -0.0419 -0.8139 0.5794 +vn 0.1115 -0.8780 0.4655 +vn -0.0105 -0.8004 0.5993 +vn 0.0996 -0.8473 0.5217 +vn -0.2560 -0.4747 0.8421 +vn -0.2194 -0.4603 0.8602 +vn 0.1225 -0.8379 0.5320 +vn 0.2468 -0.9154 0.3180 +vn 0.2603 -0.9093 0.3247 +vn 0.1419 -0.8299 0.5395 +vn 0.2719 -0.9041 0.3296 +vn -0.1881 -0.4487 0.8737 +vn -0.1609 -0.4394 0.8838 +vn 0.1591 -0.8237 0.5443 +vn 0.2817 -0.8997 0.3335 +vn 0.1339 -0.8681 0.4779 +vn 0.0183 -0.7880 0.6154 +vn 0.1543 -0.8591 0.4880 +vn 0.0448 -0.7766 0.6284 +vn -0.1579 -0.7184 0.6775 +vn -0.2537 -0.6177 0.7444 +vn -0.1212 -0.7029 0.7009 +vn -0.2133 -0.6009 0.7703 +vn -0.5298 -0.4070 0.7441 +vn -0.5640 -0.3460 0.7498 +vn -0.4782 -0.3860 0.7889 +vn -0.5121 -0.3248 0.7952 +vn -0.3288 -0.5227 0.7865 +vn -0.3863 -0.4386 0.8114 +vn -0.2862 -0.5052 0.8142 +vn -0.3424 -0.4206 0.8402 +vn -0.0874 -0.6886 0.7198 +vn -0.1762 -0.5855 0.7913 +vn -0.0564 -0.6755 0.7352 +vn -0.1421 -0.5713 0.8084 +vn 0.1718 -0.8515 0.4955 +vn 0.0673 -0.7669 0.6382 +vn 0.1865 -0.8449 0.5014 +vn 0.0864 -0.7587 0.6457 +vn -0.2469 -0.4890 0.8366 +vn -0.3019 -0.4041 0.8635 +vn -0.2109 -0.4742 0.8548 +vn -0.2647 -0.3888 0.8825 +vn -0.0300 -0.6645 0.7467 +vn -0.1131 -0.5593 0.8212 +vn -0.0076 -0.6550 0.7556 +vn -0.0884 -0.5490 0.8312 +vn 0.2008 -0.8385 0.5065 +vn 0.1048 -0.7507 0.6523 +vn 0.2911 -0.8954 0.3370 +vn 0.2994 -0.8917 0.3395 +vn 0.2132 -0.8331 0.5104 +vn 0.1209 -0.7437 0.6575 +vn 0.1755 -0.8177 0.5482 +vn -0.1346 -0.4305 0.8925 +vn -0.1116 -0.4230 0.8992 +vn 0.1898 -0.8125 0.5512 +vn 0.2023 -0.8085 0.5526 +vn 0.3064 -0.8885 0.3416 +vn -0.0916 -0.4175 0.9041 +vn -0.0726 -0.4127 0.9080 +vn 0.2142 -0.8051 0.5532 +vn 0.3129 -0.8855 0.3434 +vn 0.2255 -0.8021 0.5530 +vn 0.3191 -0.8827 0.3450 +vn -0.0544 -0.4088 0.9110 +vn -0.0370 -0.4057 0.9133 +vn 0.2363 -0.7995 0.5522 +vn 0.3248 -0.8801 0.3463 +vn 0.2238 -0.8284 0.5135 +vn 0.1345 -0.7378 0.6615 +vn 0.2336 -0.8240 0.5162 +vn 0.1473 -0.7322 0.6649 +vn 0.0140 -0.6458 0.7634 +vn -0.0646 -0.5390 0.8398 +vn 0.0329 -0.6378 0.7695 +vn -0.0438 -0.5304 0.8466 +vn 0.2467 -0.7974 0.5508 +vn 0.3303 -0.8776 0.3475 +vn -0.0202 -0.4034 0.9148 +vn -0.0041 -0.4019 0.9157 +vn 0.2566 -0.7957 0.5486 +vn 0.3355 -0.8752 0.3485 +vn 0.2429 -0.8198 0.5185 +vn 0.1593 -0.7270 0.6679 +vn 0.2517 -0.8159 0.5205 +vn 0.1706 -0.7221 0.6705 +vn 0.0489 -0.6310 0.7742 +vn -0.0262 -0.5230 0.8519 +vn 0.0639 -0.6246 0.7783 +vn -0.0097 -0.5160 0.8565 +vn -0.1803 -0.4616 0.8686 +vn -0.2332 -0.3759 0.8968 +vn -0.1541 -0.4508 0.8792 +vn -0.2062 -0.3649 0.9079 +vn -0.1290 -0.4404 0.8885 +vn -0.1802 -0.3542 0.9176 +vn -0.1070 -0.4313 0.8958 +vn -0.1575 -0.3449 0.9253 +vn -0.0883 -0.4236 0.9015 +vn -0.1382 -0.3370 0.9313 +vn -0.0708 -0.4164 0.9064 +vn -0.1201 -0.3295 0.9365 +vn -0.2745 -0.3028 0.9127 +vn -0.3069 -0.2412 0.9207 +vn -0.3393 -0.2543 0.9057 +vn -0.3066 -0.3159 0.8979 +vn -0.2471 -0.2916 0.9241 +vn -0.2793 -0.2299 0.9323 +vn -0.2206 -0.2808 0.9341 +vn -0.2526 -0.2190 0.9425 +vn -0.1975 -0.2714 0.9420 +vn -0.2294 -0.2095 0.9505 +vn -0.3443 -0.3313 0.8784 +vn -0.3773 -0.2699 0.8859 +vn -0.4187 -0.2867 0.8617 +vn -0.3854 -0.3481 0.8545 +vn -0.4301 -0.3663 0.8251 +vn -0.4636 -0.3051 0.8319 +vn -0.4054 -0.2134 0.8889 +vn -0.4211 -0.1800 0.8890 +vn -0.4626 -0.1967 0.8645 +vn -0.4469 -0.2302 0.8645 +vn -0.3672 -0.1979 0.9088 +vn -0.3829 -0.1646 0.9090 +vn -0.4919 -0.2484 0.8344 +vn -0.5076 -0.2150 0.8344 +vn -0.5561 -0.2347 0.7973 +vn -0.5405 -0.2682 0.7975 +vn -0.5925 -0.2893 0.7519 +vn -0.6080 -0.2558 0.7516 +vn -0.6627 -0.2780 0.6953 +vn -0.6473 -0.3116 0.6956 +vn -0.7040 -0.3347 0.6264 +vn -0.7193 -0.3011 0.6260 +vn -0.6145 -0.2406 0.7513 +vn -0.6696 -0.2621 0.6950 +vn -0.5624 -0.2202 0.7970 +vn -0.5711 -0.1969 0.7969 +vn -0.6240 -0.2152 0.7512 +vn -0.6798 -0.2345 0.6949 +vn -0.8373 -0.3276 0.4377 +vn -0.7833 -0.3065 0.5408 +vn -0.7952 -0.2744 0.5407 +vn -0.8500 -0.2934 0.4376 +vn -0.7265 -0.2843 0.6256 +vn -0.7375 -0.2545 0.6255 +vn -0.5136 -0.2012 0.8341 +vn -0.4684 -0.1836 0.8642 +vn -0.4757 -0.1639 0.8642 +vn -0.5216 -0.1798 0.8340 +vn -0.9421 -0.2777 0.1882 +vn -0.9553 -0.2816 0.0900 +vn -0.9107 -0.2684 0.3140 +vn -0.9221 -0.2261 0.3140 +vn -0.9539 -0.2339 0.1882 +vn -0.9673 -0.2371 0.0900 +vn -0.9642 -0.1868 0.1882 +vn -0.9778 -0.1894 0.0900 +vn -0.9321 -0.1805 0.3140 +vn -0.9398 -0.1346 0.3140 +vn -0.9722 -0.1392 0.1882 +vn -0.9859 -0.1412 0.0900 +vn -0.8625 -0.2542 0.4376 +vn -0.8069 -0.2378 0.5407 +vn -0.8170 -0.2003 0.5407 +vn -0.8733 -0.2141 0.4376 +vn -0.9779 -0.0914 0.1882 +vn -0.9916 -0.0926 0.0900 +vn -0.9453 -0.0883 0.3140 +vn -0.9485 -0.0418 0.3140 +vn -0.9812 -0.0433 0.1882 +vn -0.9950 -0.0439 0.0900 +vn -0.9821 0.0049 0.1882 +vn -0.9959 0.0050 0.0900 +vn -0.9494 0.0048 0.3140 +vn -0.9480 0.0513 0.3140 +vn -0.9807 0.0531 0.1882 +vn -0.9945 0.0539 0.0900 +vn -0.8828 -0.1710 0.4376 +vn -0.8259 -0.1600 0.5407 +vn -0.8327 -0.1193 0.5407 +vn -0.8901 -0.1275 0.4376 +vn -0.8953 -0.0836 0.4376 +vn -0.8376 -0.0783 0.5407 +vn -0.8404 -0.0371 0.5406 +vn -0.8983 -0.0396 0.4376 +vn -0.8992 0.0045 0.4376 +vn -0.8413 0.0042 0.5406 +vn -0.8400 0.0455 0.5406 +vn -0.8979 0.0486 0.4376 +vn -0.7768 -0.0726 0.6255 +vn -0.7160 -0.0669 0.6949 +vn -0.7184 -0.0317 0.6949 +vn -0.7795 -0.0344 0.6255 +vn -0.7723 -0.1106 0.6255 +vn -0.7119 -0.1020 0.6949 +vn -0.7802 0.0039 0.6255 +vn -0.7191 0.0036 0.6949 +vn -0.7181 0.0389 0.6949 +vn -0.7791 0.0422 0.6255 +vn -0.9769 0.1012 0.1882 +vn -0.9906 0.1026 0.0900 +vn -0.9444 0.0978 0.3140 +vn -0.9384 0.1440 0.3140 +vn -0.9708 0.1490 0.1882 +vn -0.9844 0.1511 0.0900 +vn -0.9623 0.1964 0.1882 +vn -0.9758 0.1992 0.0900 +vn -0.9302 0.1899 0.3140 +vn -0.9198 0.2353 0.3140 +vn -0.9515 0.2434 0.1882 +vn -0.9649 0.2468 0.0900 +vn -0.8944 0.0926 0.4376 +vn -0.8368 0.0867 0.5406 +vn -0.8315 0.1276 0.5407 +vn -0.8888 0.1364 0.4376 +vn -0.9392 0.2871 0.1882 +vn -0.9524 0.2912 0.0900 +vn -0.9079 0.2776 0.3140 +vn -0.8943 0.3188 0.3140 +vn -0.9251 0.3297 0.1882 +vn -0.9381 0.3344 0.0900 +vn -0.8810 0.1798 0.4376 +vn -0.8242 0.1683 0.5407 +vn -0.8150 0.2085 0.5406 +vn -0.8711 0.2229 0.4376 +vn -0.9110 0.3670 0.1882 +vn -0.9238 0.3721 0.0900 +vn -0.8806 0.3547 0.3141 +vn -0.8726 0.3738 0.3144 +vn -0.9028 0.3865 0.1884 +vn -0.9156 0.3919 0.0900 +vn -0.8599 0.2629 0.4376 +vn -0.8045 0.2459 0.5407 +vn -0.7924 0.2824 0.5407 +vn -0.8470 0.3019 0.4376 +vn -0.8876 0.4202 0.1884 +vn -0.8587 0.4767 0.1879 +vn -0.8716 0.4827 0.0854 +vn -0.9004 0.4257 0.0900 +vn -0.8573 0.4074 0.3146 +vn -0.8284 0.4638 0.3141 +vn -0.8340 0.3360 0.4377 +vn -0.7802 0.3144 0.5408 +vn -0.7726 0.3319 0.5412 +vn -0.8262 0.3543 0.4381 +vn -0.8108 0.3878 0.4384 +vn -0.7818 0.4441 0.4377 +vn -0.7571 0.3653 0.5416 +vn -0.7281 0.4216 0.5405 +vn -0.8228 0.5369 0.1864 +vn -0.7733 0.6070 0.1833 +vn -0.7853 0.6127 0.0892 +vn -0.8352 0.5427 0.0886 +vn -0.7925 0.5240 0.3120 +vn -0.7435 0.5940 0.3073 +vn -0.7046 0.6870 0.1776 +vn -0.7161 0.6930 0.0835 +vn -0.6757 0.6741 0.2985 +vn -0.6309 0.6547 0.4164 +vn -0.5397 0.7433 0.3953 +vn -0.6976 0.5743 0.4284 +vn -0.6445 0.5522 0.5289 +vn -0.5789 0.6331 0.5138 +vn -0.4900 0.7226 0.4875 +vn -0.7006 0.3417 0.6264 +vn -0.6715 0.3980 0.6250 +vn -0.7163 0.3083 0.6260 +vn -0.6600 0.2846 0.6953 +vn -0.6442 0.3181 0.6956 +vn -0.6151 0.3744 0.6939 +vn -0.7236 0.2916 0.6256 +vn -0.6669 0.2688 0.6950 +vn -0.7349 0.2619 0.6255 +vn -0.6774 0.2413 0.6949 +vn -0.6362 0.4584 0.6206 +vn -0.5888 0.5291 0.6110 +vn -0.6925 0.4818 0.5369 +vn -0.5800 0.4350 0.6888 +vn -0.5334 0.5060 0.6779 +vn -0.7461 0.2280 0.6256 +vn -0.6877 0.2102 0.6949 +vn -0.7559 0.1934 0.6255 +vn -0.6967 0.1782 0.6949 +vn -0.5895 0.2952 0.7519 +vn -0.5605 0.3516 0.7498 +vn -0.6054 0.2618 0.7516 +vn -0.5537 0.2402 0.7973 +vn -0.5378 0.2736 0.7975 +vn -0.5088 0.3299 0.7952 +vn -0.6121 0.2468 0.7513 +vn -0.5601 0.2259 0.7970 +vn -0.6218 0.2215 0.7512 +vn -0.5691 0.2026 0.7969 +vn -0.7644 0.1560 0.6255 +vn -0.7046 0.1438 0.6949 +vn -0.7712 0.1183 0.6255 +vn -0.7108 0.1091 0.6949 +vn -0.6312 0.1929 0.7512 +vn -0.5777 0.1765 0.7970 +vn -0.6395 0.1636 0.7512 +vn -0.5852 0.1497 0.7969 +vn -0.7761 0.0804 0.6255 +vn -0.7153 0.0741 0.6949 +vn -0.6467 0.1320 0.7512 +vn -0.5919 0.1208 0.7969 +vn -0.6524 0.1001 0.7512 +vn -0.5971 0.0916 0.7969 +vn -0.6565 0.0680 0.7512 +vn -0.6008 0.0622 0.7969 +vn -0.6591 0.0357 0.7512 +vn -0.6032 0.0327 0.7969 +vn -0.6600 0.0033 0.7512 +vn -0.6041 0.0030 0.7969 +vn -0.6594 -0.0291 0.7512 +vn -0.6035 -0.0266 0.7969 +vn -0.5406 0.1103 0.8340 +vn -0.4930 0.1006 0.8642 +vn -0.4875 0.1247 0.8642 +vn -0.5345 0.1367 0.8340 +vn -0.5453 0.0837 0.8341 +vn -0.4974 0.0763 0.8642 +vn -0.5488 0.0568 0.8340 +vn -0.5005 0.0518 0.8642 +vn -0.5509 0.0298 0.8340 +vn -0.5024 0.0272 0.8642 +vn -0.5276 0.1612 0.8341 +vn -0.4812 0.1470 0.8642 +vn -0.4741 0.1687 0.8642 +vn -0.5198 0.1850 0.8340 +vn -0.5116 0.2064 0.8341 +vn -0.4665 0.1883 0.8642 +vn -0.4606 0.2013 0.8645 +vn -0.5054 0.2200 0.8344 +vn -0.4384 0.1339 0.8887 +vn -0.3991 0.1218 0.9088 +vn -0.3932 0.1398 0.9088 +vn -0.4319 0.1536 0.8887 +vn -0.4441 0.1136 0.8887 +vn -0.4043 0.1034 0.9088 +vn -0.4894 0.2534 0.8344 +vn -0.4605 0.3097 0.8319 +vn -0.4446 0.2347 0.8645 +vn -0.4158 0.2909 0.8617 +vn -0.4250 0.1716 0.8888 +vn -0.3868 0.1563 0.9088 +vn -0.3813 0.1683 0.9090 +vn -0.4193 0.1841 0.8890 +vn -0.4032 0.2175 0.8889 +vn -0.3746 0.2736 0.8859 +vn -0.3652 0.2017 0.9088 +vn -0.3367 0.2577 0.9057 +vn -0.5257 0.4123 0.7441 +vn -0.4798 0.4836 0.7321 +vn -0.4743 0.3907 0.7889 +vn -0.4291 0.4623 0.7760 +vn -0.4264 0.3706 0.8251 +vn -0.3819 0.4424 0.8114 +vn -0.3819 0.3520 0.8545 +vn -0.3381 0.4240 0.8402 +vn -0.5247 0.6106 0.5932 +vn -0.4384 0.7011 0.5624 +vn -0.4708 0.5880 0.6578 +vn -0.3872 0.6794 0.6233 +vn -0.4176 0.8338 0.3610 +vn -0.2625 0.9138 0.3099 +vn -0.3719 0.8146 0.4450 +vn -0.2231 0.8969 0.3818 +vn -0.4187 0.5661 0.7101 +vn -0.3377 0.6586 0.6725 +vn -0.3695 0.5454 0.7524 +vn -0.2910 0.6387 0.7123 +vn -0.3247 0.7947 0.5128 +vn -0.1825 0.8795 0.4395 +vn -0.2779 0.7747 0.5680 +vn -0.1425 0.8621 0.4863 +vn -0.0815 0.9670 0.2415 +vn 0.1071 0.9811 0.1613 +vn 0.0895 0.9893 0.1149 +vn -0.1077 0.9791 0.1724 +vn -0.0506 0.9534 0.2974 +vn 0.1279 0.9717 0.1984 +vn -0.1712 0.9452 0.2781 +vn -0.6686 0.6074 0.4290 +vn -0.7137 0.6287 0.3087 +vn -0.1991 0.9600 0.1970 +vn -0.1387 0.9287 0.3440 +vn -0.6167 0.5827 0.5293 +vn -0.0191 0.9395 0.3419 +vn 0.1488 0.9622 0.2279 +vn 0.0119 0.9257 0.3781 +vn 0.1694 0.9528 0.2518 +vn -0.2328 0.7554 0.6125 +vn -0.1039 0.8452 0.5242 +vn -0.1903 0.7371 0.6485 +vn -0.0675 0.8292 0.5548 +vn -0.1047 0.9122 0.3962 +vn -0.5639 0.5580 0.6088 +vn -0.0704 0.8958 0.4388 +vn -0.5110 0.5333 0.6741 +vn 0.0419 0.9123 0.4074 +vn 0.1892 0.9438 0.2712 +vn 0.0700 0.8996 0.4311 +vn 0.2079 0.9351 0.2869 +vn -0.0369 0.8800 0.4736 +vn -0.4596 0.5096 0.7274 +vn -0.0050 0.8651 0.5016 +vn -0.4106 0.4874 0.7706 +vn -0.1507 0.7200 0.6775 +vn -0.0337 0.8143 0.5794 +vn -0.2475 0.6202 0.7444 +vn -0.2073 0.6030 0.7703 +vn -0.1141 0.7041 0.7009 +vn -0.0025 0.8005 0.5993 +vn 0.0251 0.8513 0.5241 +vn -0.3645 0.4669 0.8057 +vn 0.2252 0.9271 0.2995 +vn 0.2412 0.9197 0.3098 +vn 0.0532 0.8387 0.5420 +vn -0.3215 0.4482 0.8341 +vn 0.0962 0.8878 0.4501 +vn 0.1203 0.8768 0.4655 +vn 0.0794 0.8273 0.5561 +vn -0.2816 0.4315 0.8571 +vn 0.2560 0.9129 0.3180 +vn 0.2694 0.9066 0.3247 +vn 0.1037 0.8171 0.5671 +vn -0.2445 0.4166 0.8756 +vn 0.1426 0.8667 0.4779 +vn 0.0263 0.7878 0.6154 +vn 0.0526 0.7761 0.6284 +vn 0.1629 0.8575 0.4880 +vn 0.1243 0.8085 0.5752 +vn -0.2127 0.4046 0.8894 +vn 0.2810 0.9013 0.3297 +vn 0.2907 0.8968 0.3335 +vn 0.1426 0.8018 0.5804 +vn -0.1851 0.3950 0.8998 +vn 0.1601 0.7953 0.5847 +vn -0.1585 0.3858 0.9089 +vn 0.3001 0.8924 0.3370 +vn 0.3083 0.8886 0.3395 +vn 0.1753 0.7897 0.5879 +vn -0.1350 0.3782 0.9158 +vn 0.1803 0.8497 0.4955 +vn 0.0750 0.7662 0.6382 +vn 0.0940 0.7578 0.6457 +vn 0.1950 0.8430 0.5013 +vn 0.2092 0.8365 0.5065 +vn 0.1123 0.7496 0.6523 +vn 0.1284 0.7425 0.6574 +vn 0.2216 0.8309 0.5104 +vn 0.2321 0.8261 0.5135 +vn 0.3153 0.8854 0.3416 +vn 0.1419 0.7364 0.6615 +vn 0.1546 0.7307 0.6649 +vn 0.2419 0.8216 0.5162 +vn 0.3218 0.8823 0.3434 +vn 0.0205 0.6456 0.7634 +vn -0.0592 0.5396 0.8398 +vn -0.0385 0.5308 0.8466 +vn 0.0393 0.6374 0.7695 +vn -0.0010 0.6550 0.7556 +vn -0.0829 0.5498 0.8312 +vn 0.0552 0.6305 0.7743 +vn -0.0210 0.5232 0.8519 +vn -0.0045 0.5161 0.8565 +vn 0.0701 0.6239 0.7783 +vn -0.0234 0.6647 0.7467 +vn -0.1075 0.5604 0.8212 +vn -0.0496 0.6761 0.7352 +vn -0.1363 0.5727 0.8084 +vn -0.0804 0.6895 0.7198 +vn -0.1703 0.5872 0.7913 +vn -0.1245 0.4417 0.8885 +vn -0.1766 0.3560 0.9176 +vn -0.1540 0.3464 0.9254 +vn -0.1026 0.4324 0.8958 +vn -0.1496 0.4523 0.8792 +vn -0.2025 0.3669 0.9079 +vn -0.1756 0.4634 0.8686 +vn -0.2294 0.3782 0.8968 +vn -0.2061 0.4763 0.8548 +vn -0.2608 0.3915 0.8825 +vn -0.2420 0.4915 0.8366 +vn -0.2978 0.4071 0.8635 +vn -0.2811 0.5080 0.8142 +vn -0.3235 0.5260 0.7865 +vn -0.3410 0.3348 0.8784 +vn -0.3034 0.3190 0.8979 +vn -0.2714 0.3056 0.9127 +vn -0.3045 0.2442 0.9207 +vn -0.2770 0.2327 0.9323 +vn -0.2441 0.2941 0.9241 +vn -0.3329 0.1883 0.9240 +vn -0.3490 0.1550 0.9242 +vn -0.3213 0.1436 0.9360 +vn -0.3052 0.1768 0.9357 +vn -0.3543 0.1432 0.9241 +vn -0.3266 0.1321 0.9359 +vn -0.3602 0.1280 0.9241 +vn -0.3320 0.1179 0.9359 +vn -0.2178 0.2830 0.9341 +vn -0.2504 0.2215 0.9425 +vn -0.2272 0.2118 0.9505 +vn -0.1948 0.2733 0.9420 +vn -0.2785 0.1658 0.9460 +vn -0.2946 0.1326 0.9464 +vn -0.2712 0.1231 0.9546 +vn -0.2551 0.1563 0.9542 +vn -0.2998 0.1213 0.9463 +vn -0.2764 0.1119 0.9545 +vn -0.3049 0.1081 0.9462 +vn -0.2811 0.0996 0.9545 +vn -0.3656 0.1116 0.9241 +vn -0.3370 0.1028 0.9359 +vn -0.3703 0.0947 0.9241 +vn -0.3413 0.0873 0.9359 +vn -0.4492 0.0917 0.8887 +vn -0.4088 0.0835 0.9088 +vn -0.4531 0.0695 0.8887 +vn -0.4124 0.0633 0.9088 +vn -0.3094 0.0944 0.9462 +vn -0.2852 0.0870 0.9545 +vn -0.3134 0.0802 0.9462 +vn -0.2889 0.0739 0.9545 +vn -0.3745 0.0765 0.9241 +vn -0.3452 0.0705 0.9359 +vn -0.3778 0.0580 0.9241 +vn -0.3483 0.0534 0.9359 +vn -0.2565 0.1040 0.9609 +vn -0.2378 0.0965 0.9665 +vn -0.2327 0.1075 0.9666 +vn -0.2514 0.1150 0.9610 +vn -0.2609 0.0924 0.9609 +vn -0.2420 0.0856 0.9665 +vn -0.2353 0.1482 0.9606 +vn -0.2076 0.2035 0.9568 +vn -0.2166 0.1406 0.9661 +vn -0.1891 0.1957 0.9623 +vn -0.1753 0.2651 0.9481 +vn -0.1348 0.3383 0.9313 +vn -0.1570 0.2574 0.9535 +vn -0.1168 0.3307 0.9365 +vn -0.2648 0.0807 0.9609 +vn -0.2455 0.0748 0.9665 +vn -0.2682 0.0686 0.9609 +vn -0.2487 0.0636 0.9665 +vn -0.1990 0.1336 0.9708 +vn -0.1717 0.1884 0.9670 +vn -0.2151 0.1005 0.9714 +vn -0.1984 0.0940 0.9756 +vn -0.1824 0.1270 0.9750 +vn -0.1553 0.1815 0.9711 +vn -0.2202 0.0895 0.9713 +vn -0.2036 0.0828 0.9755 +vn -0.2242 0.0792 0.9713 +vn -0.2073 0.0731 0.9755 +vn -0.0841 0.4245 0.9015 +vn -0.0666 0.4171 0.9064 +vn -0.1397 0.2501 0.9581 +vn -0.0999 0.3235 0.9409 +vn -0.1234 0.2433 0.9621 +vn -0.0839 0.3168 0.9448 +vn -0.0502 0.4101 0.9107 +vn 0.0110 0.5094 0.8604 +vn -0.0348 0.4035 0.9143 +vn 0.0256 0.5031 0.8638 +vn 0.0842 0.6177 0.7819 +vn 0.1666 0.7254 0.6679 +vn 0.0974 0.6119 0.7849 +vn 0.1778 0.7203 0.6705 +vn -0.1081 0.2368 0.9655 +vn -0.1398 0.1750 0.9746 +vn -0.1252 0.1689 0.9777 +vn -0.0936 0.2307 0.9685 +vn -0.0546 0.3044 0.9510 +vn 0.2511 0.8174 0.5185 +vn 0.3279 0.8795 0.3450 +vn 0.2598 0.8134 0.5205 +vn 0.3337 0.8768 0.3464 +vn -0.0202 0.3973 0.9175 +vn 0.0393 0.4972 0.8667 +vn -0.0065 0.3914 0.9202 +vn 0.0523 0.4916 0.8692 +vn 0.1098 0.6065 0.7875 +vn 0.1884 0.7155 0.6727 +vn 0.1216 0.6013 0.7897 +vn 0.1985 0.7111 0.6745 +vn 0.2137 0.7788 0.5898 +vn -0.0765 0.3640 0.9282 +vn -0.0952 0.3679 0.9250 +vn 0.2015 0.7819 0.5899 +vn 0.2253 0.7762 0.5888 +vn -0.0586 0.3611 0.9307 +vn 0.1887 0.7856 0.5893 +vn -0.1146 0.3726 0.9209 +vn 0.2680 0.8096 0.5222 +vn 0.3391 0.8742 0.3475 +vn 0.2758 0.8060 0.5237 +vn 0.3442 0.8718 0.3485 +vn 0.2365 0.7742 0.5871 +vn -0.0414 0.3592 0.9324 +vn 0.2472 0.7727 0.5846 +vn -0.0247 0.3581 0.9334 +vn 0.2576 0.7718 0.5814 +vn -0.0085 0.3580 0.9337 +vn 0.3491 0.8695 0.3493 +vn 0.3536 0.8674 0.3501 +vn 0.2677 0.7714 0.5774 +vn 0.0074 0.3590 0.9333 +vn 0.2831 0.8027 0.5249 +vn 0.2079 0.7068 0.6762 +vn 0.2168 0.7028 0.6775 +vn 0.2900 0.7995 0.5260 +vn 0.2965 0.7965 0.5269 +vn 0.3580 0.8654 0.3507 +vn 0.2253 0.6990 0.6787 +vn 0.2333 0.6954 0.6797 +vn 0.3027 0.7937 0.5277 +vn 0.3621 0.8634 0.3512 +vn 0.1327 0.5964 0.7916 +vn 0.0645 0.4863 0.8714 +vn 0.0761 0.4813 0.8732 +vn 0.1432 0.5918 0.7932 +vn 0.1531 0.5875 0.7946 +vn 0.0871 0.4766 0.8748 +vn 0.0975 0.4721 0.8761 +vn 0.1626 0.5833 0.7958 +vn 0.0065 0.3859 0.9225 +vn -0.0412 0.2987 0.9535 +vn -0.0285 0.2933 0.9556 +vn 0.0188 0.3806 0.9245 +vn 0.0304 0.3757 0.9262 +vn -0.0165 0.2882 0.9574 +vn -0.0051 0.2834 0.9590 +vn 0.0414 0.3710 0.9277 +vn -0.0800 0.2249 0.9711 +vn -0.1114 0.1631 0.9803 +vn -0.0983 0.1576 0.9826 +vn -0.0670 0.2195 0.9733 +vn -0.0548 0.2143 0.9752 +vn -0.0860 0.1524 0.9846 +vn -0.0742 0.1474 0.9863 +vn -0.0432 0.2094 0.9769 +vn 0.0494 0.3676 0.9287 +vn 0.1050 0.4689 0.8770 +vn 0.0032 0.2799 0.9600 +vn 0.0067 0.2784 0.9604 +vn 0.0528 0.3661 0.9291 +vn 0.1082 0.4675 0.8773 +vn -0.0348 0.2059 0.9780 +vn -0.0658 0.1439 0.9874 +vn -0.0621 0.1423 0.9879 +vn -0.0312 0.2044 0.9784 +vn -0.1115 0.1005 0.9887 +vn -0.1272 0.0683 0.9895 +vn -0.1148 0.0647 0.9913 +vn -0.0993 0.0965 0.9904 +vn -0.1243 0.1050 0.9867 +vn -0.1401 0.0725 0.9875 +vn 0.1694 0.5804 0.7965 +vn 0.2392 0.6929 0.6802 +vn 0.1723 0.5791 0.7968 +vn 0.2416 0.6918 0.6805 +vn -0.0902 0.0942 0.9915 +vn -0.1054 0.0629 0.9924 +vn -0.1009 0.0632 0.9929 +vn -0.0859 0.0939 0.9919 +vn 0.3073 0.7917 0.5280 +vn 0.3651 0.8621 0.3514 +vn 0.3091 0.7908 0.5282 +vn 0.3664 0.8615 0.3515 +vn 0.2775 0.7715 0.5725 +vn 0.2871 0.7723 0.5667 +vn 0.0230 0.3610 0.9323 +vn 0.0383 0.3642 0.9305 +vn 0.2948 0.7741 0.5602 +vn 0.0511 0.3696 0.9278 +vn 0.2991 0.7765 0.5546 +vn 0.0583 0.3756 0.9249 +vn 0.1847 0.5731 0.7984 +vn 0.2519 0.6866 0.6820 +vn 0.1222 0.4611 0.8789 +vn 0.1480 0.4498 0.8808 +vn 0.2078 0.5628 0.8000 +vn 0.2713 0.6777 0.6834 +vn 0.3087 0.7752 0.5512 +vn 0.0731 0.3728 0.9250 +vn 0.3713 0.8588 0.3529 +vn 0.3810 0.8543 0.3536 +vn 0.3232 0.7684 0.5524 +vn 0.0972 0.3614 0.9273 +vn 0.3169 0.7867 0.5298 +vn 0.3317 0.7798 0.5309 +vn 0.3406 0.7607 0.5526 +vn 0.1251 0.3483 0.9290 +vn 0.3923 0.8487 0.3547 +vn 0.3491 0.7714 0.5321 +vn 0.2944 0.6669 0.6845 +vn 0.3274 0.6512 0.6846 +vn 0.3742 0.7592 0.5325 +vn 0.2353 0.5503 0.8012 +vn 0.1788 0.4361 0.8820 +vn 0.2228 0.4164 0.8815 +vn 0.2748 0.5322 0.8008 +vn 0.4075 0.7432 0.5306 +vn 0.3711 0.6308 0.6815 +vn 0.4256 0.6052 0.6728 +vn 0.4490 0.7232 0.5247 +vn 0.3268 0.5085 0.7967 +vn 0.2808 0.3906 0.8767 +vn 0.3530 0.3585 0.8642 +vn 0.3915 0.4789 0.7857 +vn 0.5002 0.6987 0.5114 +vn 0.4920 0.5742 0.6544 +vn 0.5678 0.5392 0.6220 +vn 0.5594 0.6707 0.4871 +vn 0.4906 0.8006 0.3441 +vn 0.5303 0.7814 0.3288 +vn 0.4862 0.6943 0.5306 +vn 0.3502 0.2386 0.9058 +vn 0.5456 0.6669 0.5075 +vn 0.4417 0.1938 0.8760 +vn 0.4697 0.4434 0.7634 +vn 0.4395 0.3201 0.8393 +vn 0.5370 0.2770 0.7968 +vn 0.5582 0.4034 0.7250 +vn 0.6529 0.3608 0.6660 +vn 0.6500 0.5013 0.5712 +vn 0.6404 0.2314 0.7324 +vn 0.7396 0.1882 0.6462 +vn 0.7438 0.3205 0.5866 +vn 0.7290 0.4655 0.5019 +vn 0.6194 0.1193 0.7759 +vn 0.5951 0.0255 0.8032 +vn 0.7033 -0.0205 0.7106 +vn 0.7241 0.0743 0.6857 +vn 0.5103 0.1666 0.8437 +vn 0.4825 0.0738 0.8728 +vn 0.4068 0.2116 0.8887 +vn 0.3753 0.1198 0.9191 +vn 0.3148 0.2517 0.9152 +vn 0.2797 0.1609 0.9465 +vn 0.2377 0.2854 0.9285 +vn 0.1995 0.1955 0.9602 +vn 0.1757 0.3125 0.9335 +vn 0.1348 0.2233 0.9654 +vn 0.5706 -0.0519 0.8196 +vn 0.5473 -0.1155 0.8289 +vn 0.6588 -0.1625 0.7346 +vn 0.6808 -0.0985 0.7258 +vn 0.4558 -0.0031 0.8901 +vn 0.4313 -0.0665 0.8998 +vn 0.1285 0.3331 0.9341 +vn 0.0857 0.2445 0.9659 +vn 0.0955 0.3475 0.9328 +vn 0.0512 0.2593 0.9644 +vn 0.3463 0.0435 0.9371 +vn 0.3205 -0.0196 0.9470 +vn 0.2487 0.0851 0.9648 +vn 0.2216 0.0223 0.9749 +vn 0.1664 0.1202 0.9787 +vn 0.1382 0.0576 0.9887 +vn 0.1003 0.1484 0.9838 +vn 0.0712 0.0859 0.9938 +vn 0.0679 0.3594 0.9307 +vn 0.0225 0.2716 0.9622 +vn 0.0498 0.1699 0.9842 +vn 0.0200 0.1076 0.9940 +vn 0.0145 0.1849 0.9826 +vn -0.0158 0.1228 0.9923 +vn -0.0149 0.1974 0.9802 +vn -0.0456 0.1353 0.9898 +vn 0.1162 0.0096 0.9932 +vn 0.1019 -0.0204 0.9946 +vn 0.1861 -0.0557 0.9810 +vn 0.2001 -0.0256 0.9794 +vn 0.0486 0.0380 0.9981 +vn 0.0341 0.0079 0.9994 +vn -0.0691 0.0873 0.9938 +vn -0.0839 0.0570 0.9948 +vn -0.0538 0.0445 0.9976 +vn -0.0390 0.0748 0.9964 +vn -0.0029 0.0596 0.9982 +vn -0.0176 0.0294 0.9994 +vn -0.0919 0.0404 0.9949 +vn -0.0615 0.0286 0.9977 +vn -0.1086 0.0467 0.9930 +vn -0.1120 0.0381 0.9930 +vn -0.0951 0.0322 0.9949 +vn -0.0642 0.0217 0.9977 +vn -0.0250 0.0144 0.9996 +vn 0.0270 -0.0058 0.9996 +vn -0.0271 0.0092 0.9996 +vn 0.0259 -0.0088 0.9996 +vn 0.0954 -0.0323 0.9949 +vn 0.1804 -0.0653 0.9814 +vn 0.1819 -0.0615 0.9814 +vn 0.2996 -0.0675 0.9517 +vn 0.2859 -0.0975 0.9533 +vn 0.3977 -0.1444 0.9061 +vn 0.4112 -0.1144 0.9043 +vn 0.2813 -0.1044 0.9539 +vn 0.3944 -0.1483 0.9069 +vn 0.2844 -0.0960 0.9539 +vn 0.3995 -0.1348 0.9068 +vn 0.5279 -0.1635 0.8334 +vn 0.5148 -0.1934 0.8352 +vn 0.6272 -0.2405 0.7408 +vn 0.6400 -0.2106 0.7390 +vn 0.5129 -0.1941 0.8362 +vn 0.6268 -0.2382 0.7419 +vn 0.5199 -0.1753 0.8361 +vn 0.6356 -0.2142 0.7417 +vn 0.0965 -0.0289 0.9949 +vn 0.1839 -0.0552 0.9814 +vn 0.0262 -0.0079 0.9996 +vn 0.0264 -0.0067 0.9996 +vn 0.0974 -0.0249 0.9949 +vn 0.1857 -0.0475 0.9815 +vn 0.7377 -0.2516 0.6265 +vn 0.7559 -0.2034 0.6223 +vn 0.7253 -0.2816 0.6282 +vn 0.8026 -0.3139 0.5072 +vn 0.8149 -0.2838 0.5054 +vn 0.8326 -0.2353 0.5014 +vn 0.2875 -0.0862 0.9539 +vn 0.4038 -0.1211 0.9068 +vn 0.2905 -0.0743 0.9540 +vn 0.4081 -0.1044 0.9069 +vn 0.7263 -0.2766 0.6293 +vn 0.8048 -0.3069 0.5081 +vn 0.7366 -0.2481 0.6292 +vn 0.8163 -0.2748 0.5080 +vn 0.5255 -0.1575 0.8361 +vn 0.6425 -0.1926 0.7417 +vn 0.5312 -0.1359 0.8363 +vn 0.6495 -0.1662 0.7420 +vn 0.7769 -0.1391 0.6141 +vn 0.7976 -0.0605 0.6002 +vn 0.8526 -0.1705 0.4939 +vn 0.8717 -0.0911 0.4815 +vn 0.8154 0.0353 0.5778 +vn 0.8262 0.1507 0.5429 +vn 0.8870 0.0058 0.4618 +vn 0.8935 0.1228 0.4319 +vn 0.8578 -0.3015 0.4162 +vn 0.8751 -0.2527 0.4128 +vn 0.8458 -0.3318 0.4177 +vn 0.8571 -0.3365 0.3901 +vn 0.8690 -0.3062 0.3887 +vn 0.8860 -0.2574 0.3857 +vn 0.8487 -0.3237 0.4183 +vn 0.8602 -0.3279 0.3905 +vn 0.8609 -0.2897 0.4182 +vn 0.8726 -0.2934 0.3905 +vn 0.8943 -0.1873 0.4064 +vn 0.9120 -0.1071 0.3960 +vn 0.9050 -0.1916 0.3799 +vn 0.9222 -0.1109 0.3704 +vn 0.8701 -0.2607 0.4183 +vn 0.8818 -0.2642 0.3906 +vn 0.8251 -0.2472 0.5081 +vn 0.8343 -0.2134 0.5083 +vn 0.8799 -0.2251 0.4184 +vn 0.8918 -0.2282 0.3906 +vn 0.9251 -0.0089 0.3797 +vn 0.9284 0.1097 0.3550 +vn 0.9346 -0.0122 0.3555 +vn 0.9369 0.1073 0.3328 +vn 0.8231 0.2855 0.4910 +vn 0.7979 0.4343 0.4180 +vn 0.8842 0.2599 0.3882 +vn 0.8501 0.4121 0.3280 +vn 0.9145 0.2490 0.3190 +vn 0.8742 0.4038 0.2696 +vn 0.9214 0.2475 0.2995 +vn 0.8792 0.4034 0.2535 +vn 0.8011 0.5616 0.2072 +vn 0.7843 0.5670 0.2518 +vn 0.8036 0.5622 0.1953 +vn 0.7436 0.5848 0.3241 +vn 0.6597 0.7199 0.2156 +vn 0.6211 0.7383 0.2629 +vn 0.6885 0.6104 0.3916 +vn 0.7574 0.5690 0.3202 +vn 0.8476 0.0056 0.5305 +vn 0.7361 0.0575 0.6744 +vn 0.6963 0.5967 0.3989 +vn 0.8899 -0.1817 0.4184 +vn 0.9019 -0.1841 0.3906 +vn 0.8438 -0.1722 0.5083 +vn 0.8512 -0.1306 0.5083 +vn 0.8977 -0.1378 0.4184 +vn 0.9099 -0.1396 0.3906 +vn 0.7445 -0.2231 0.6292 +vn 0.7528 -0.1926 0.6294 +vn 0.7613 -0.1554 0.6294 +vn 0.6569 -0.1341 0.7420 +vn 0.6627 -0.1017 0.7420 +vn 0.7681 -0.1179 0.6294 +vn 0.5372 -0.1097 0.8363 +vn 0.4127 -0.0843 0.9070 +vn 0.4164 -0.0639 0.9069 +vn 0.5419 -0.0832 0.8363 +vn 0.9034 -0.0936 0.4184 +vn 0.9157 -0.0948 0.3906 +vn 0.8566 -0.0887 0.5083 +vn 0.8599 -0.0466 0.5083 +vn 0.9069 -0.0491 0.4184 +vn 0.9192 -0.0498 0.3906 +vn 0.7729 -0.0800 0.6294 +vn 0.6669 -0.0691 0.7420 +vn 0.6695 -0.0363 0.7420 +vn 0.7759 -0.0420 0.6294 +vn 0.9082 -0.0046 0.4184 +vn 0.9205 -0.0046 0.3906 +vn 0.8612 -0.0043 0.5083 +vn 0.8604 0.0379 0.5083 +vn 0.9074 0.0400 0.4184 +vn 0.9197 0.0406 0.3906 +vn 0.7770 -0.0039 0.6294 +vn 0.6704 -0.0034 0.7420 +vn 0.6698 0.0295 0.7420 +vn 0.7763 0.0342 0.6294 +vn 0.5454 -0.0565 0.8363 +vn 0.4190 -0.0434 0.9070 +vn 0.4206 -0.0228 0.9070 +vn 0.5475 -0.0297 0.8363 +vn 0.5483 -0.0028 0.8363 +vn 0.4212 -0.0021 0.9070 +vn 0.4208 0.0186 0.9070 +vn 0.5478 0.0242 0.8363 +vn 0.9043 0.0845 0.4184 +vn 0.9166 0.0856 0.3906 +vn 0.8575 0.0801 0.5082 +vn 0.8525 0.1221 0.5083 +vn 0.8991 0.1288 0.4184 +vn 0.9113 0.1305 0.3906 +vn 0.7737 0.0723 0.6294 +vn 0.6675 0.0624 0.7420 +vn 0.6637 0.0950 0.7420 +vn 0.7692 0.1102 0.6294 +vn 0.8917 0.1727 0.4184 +vn 0.9037 0.1751 0.3906 +vn 0.8455 0.1638 0.5083 +vn 0.8364 0.2051 0.5083 +vn 0.8821 0.2163 0.4184 +vn 0.8941 0.2192 0.3906 +vn 0.7629 0.1478 0.6294 +vn 0.6582 0.1275 0.7420 +vn 0.6512 0.1596 0.7420 +vn 0.7547 0.1850 0.6294 +vn 0.5459 0.0510 0.8363 +vn 0.4194 0.0392 0.9070 +vn 0.4170 0.0597 0.9070 +vn 0.5428 0.0777 0.8363 +vn 0.5383 0.1043 0.8363 +vn 0.4135 0.0801 0.9070 +vn 0.4091 0.1003 0.9070 +vn 0.5325 0.1306 0.8363 +vn 0.8727 0.2520 0.4183 +vn 0.8844 0.2553 0.3906 +vn 0.8275 0.2390 0.5081 +vn 0.8191 0.2666 0.5080 +vn 0.8638 0.2811 0.4182 +vn 0.8755 0.2847 0.3905 +vn 0.7467 0.2157 0.6292 +vn 0.6443 0.1861 0.7418 +vn 0.6377 0.2079 0.7417 +vn 0.7391 0.2407 0.6292 +vn 0.8519 0.3152 0.4182 +vn 0.8635 0.3193 0.3904 +vn 0.8078 0.2987 0.5081 +vn 0.8058 0.3057 0.5072 +vn 0.8492 0.3232 0.4176 +vn 0.8604 0.3278 0.3902 +vn 0.8608 0.2928 0.4162 +vn 0.8776 0.2438 0.4129 +vn 0.8885 0.2483 0.3859 +vn 0.8720 0.2974 0.3889 +vn 0.8177 0.2755 0.5054 +vn 0.8349 0.2268 0.5014 +vn 0.7290 0.2693 0.6293 +vn 0.6292 0.2319 0.7418 +vn 0.6296 0.2341 0.7408 +vn 0.7281 0.2742 0.6282 +vn 0.7403 0.2442 0.6264 +vn 0.7581 0.1958 0.6221 +vn 0.6421 0.2042 0.7389 +vn 0.6604 0.1559 0.7346 +vn 0.8961 0.1781 0.4066 +vn 0.9129 0.0977 0.3963 +vn 0.9231 0.1015 0.3710 +vn 0.9086 0.1822 0.3757 +vn 0.8543 0.1617 0.4939 +vn 0.8726 0.0822 0.4814 +vn 0.5148 0.1890 0.8362 +vn 0.3959 0.1443 0.9069 +vn 0.3992 0.1403 0.9061 +vn 0.5167 0.1882 0.8352 +vn 0.5216 0.1701 0.8361 +vn 0.4008 0.1308 0.9068 +vn 0.9250 -0.0005 0.3801 +vn 0.9271 -0.1192 0.3554 +vn 0.9354 -0.1169 0.3337 +vn 0.9344 0.0026 0.3563 +vn 0.8869 -0.0148 0.4618 +vn 0.8922 -0.1319 0.4319 +vn 0.7785 0.1312 0.6138 +vn 0.7984 0.0525 0.5998 +vn 0.6818 0.0917 0.7258 +vn 0.7035 0.0135 0.7106 +vn 0.5295 0.1583 0.8334 +vn 0.5485 0.1101 0.8289 +vn 0.4123 0.1104 0.9043 +vn 0.4319 0.0622 0.8998 +vn 0.9117 -0.2583 0.3195 +vn 0.8699 -0.4126 0.2702 +vn 0.8747 -0.4124 0.2547 +vn 0.9185 -0.2570 0.3006 +vn 0.8815 -0.2689 0.3882 +vn 0.8458 -0.4206 0.3281 +vn 0.8154 -0.0435 0.5773 +vn 0.8250 -0.1589 0.5423 +vn 0.7234 -0.0816 0.6856 +vn 0.7378 -0.1956 0.6461 +vn 0.7952 -0.5696 0.2078 +vn 0.7976 -0.5703 0.1964 +vn 0.7785 -0.5748 0.2521 +vn 0.8207 -0.2936 0.4902 +vn 0.7941 -0.4420 0.4172 +vn 0.7407 -0.3279 0.5864 +vn 0.7245 -0.4727 0.5017 +vn 0.7384 -0.5918 0.3233 +vn 0.6532 -0.7260 0.2150 +vn 0.6826 -0.6172 0.3914 +vn 0.6139 -0.7444 0.2628 +vn 0.7382 -0.6036 0.3011 +vn 0.8523 -0.0565 0.5200 +vn 0.6801 -0.6289 0.3767 +vn 0.7423 -0.1082 0.6613 +vn 0.6496 -0.3672 0.6657 +vn 0.6454 -0.5076 0.5708 +vn 0.6383 -0.2377 0.7322 +vn 0.5342 -0.2822 0.7968 +vn 0.5542 -0.4089 0.7250 +vn 0.5624 -0.5448 0.6220 +vn 0.6184 -0.1254 0.7758 +vn 0.5950 -0.0314 0.8031 +vn 0.4817 -0.0786 0.8728 +vn 0.5086 -0.1717 0.8437 +vn 0.4652 -0.4480 0.7635 +vn 0.4863 -0.5791 0.6544 +vn 0.4362 -0.3244 0.8393 +vn 0.3493 -0.3619 0.8643 +vn 0.3866 -0.4828 0.7858 +vn 0.4194 -0.6095 0.6728 +vn 0.4047 -0.2156 0.8887 +vn 0.3740 -0.1235 0.9192 +vn 0.2780 -0.1636 0.9465 +vn 0.3122 -0.2548 0.9152 +vn 0.4932 -0.7038 0.5113 +vn 0.4825 -0.8056 0.3438 +vn 0.5224 -0.7869 0.3286 +vn 0.5527 -0.6763 0.4870 +vn 0.4416 -0.7278 0.5247 +vn 0.4485 -0.8217 0.3516 +vn 0.3998 -0.7474 0.5306 +vn 0.4215 -0.8346 0.3547 +vn 0.3646 -0.6345 0.6815 +vn 0.3208 -0.6545 0.6846 +vn 0.3665 -0.7630 0.5325 +vn 0.4000 -0.8448 0.3554 +vn 0.3215 -0.5117 0.7967 +vn 0.2768 -0.3934 0.8767 +vn 0.2186 -0.4186 0.8815 +vn 0.2694 -0.5349 0.8008 +vn 0.3412 -0.7749 0.5320 +vn 0.2875 -0.6698 0.6846 +vn 0.2645 -0.6804 0.6834 +vn 0.3238 -0.7832 0.5309 +vn 0.3836 -0.8527 0.3547 +vn 0.3723 -0.8581 0.3537 +vn 0.2347 -0.2877 0.9285 +vn 0.1974 -0.1974 0.9602 +vn 0.1326 -0.2246 0.9654 +vn 0.1725 -0.3142 0.9336 +vn 0.2297 -0.5526 0.8012 +vn 0.1743 -0.4379 0.8820 +vn 0.1434 -0.4513 0.8808 +vn 0.2021 -0.5649 0.8000 +vn 0.1250 -0.3344 0.9341 +vn 0.0831 -0.2453 0.9659 +vn 0.0486 -0.2598 0.9644 +vn 0.0919 -0.3485 0.9328 +vn 0.1651 -0.1218 0.9787 +vn 0.1376 -0.0589 0.9887 +vn 0.0703 -0.0866 0.9938 +vn 0.0987 -0.1494 0.9838 +vn 0.2477 -0.0876 0.9649 +vn 0.2213 -0.0244 0.9749 +vn 0.0481 -0.1704 0.9842 +vn 0.0189 -0.1078 0.9940 +vn -0.0171 -0.1226 0.9923 +vn 0.0126 -0.1851 0.9826 +vn 0.0643 -0.3601 0.9307 +vn 0.1175 -0.4605 0.8798 +vn 0.0197 -0.2718 0.9622 +vn 0.0039 -0.2785 0.9604 +vn 0.0491 -0.3666 0.9291 +vn 0.1035 -0.4686 0.8773 +vn 0.3458 -0.0469 0.9371 +vn 0.3206 0.0164 0.9471 +vn 0.4558 -0.0014 0.8901 +vn 0.1789 -0.5750 0.7984 +vn 0.2450 -0.6891 0.6820 +vn 0.1665 -0.5808 0.7968 +vn 0.2343 -0.6919 0.6829 +vn 0.3089 -0.7899 0.5297 +vn 0.3626 -0.8625 0.3529 +vn 0.3012 -0.7939 0.5282 +vn 0.3577 -0.8652 0.3515 +vn -0.0169 -0.1972 0.9802 +vn -0.0470 -0.1349 0.9897 +vn -0.0635 -0.1417 0.9879 +vn -0.0332 -0.2040 0.9784 +vn 0.0457 -0.3681 0.9287 +vn 0.1003 -0.4699 0.8770 +vn 0.0004 -0.2800 0.9600 +vn -0.0079 -0.2833 0.9590 +vn 0.0377 -0.3713 0.9277 +vn 0.0927 -0.4731 0.8761 +vn -0.0368 -0.2055 0.9780 +vn -0.0672 -0.1432 0.9874 +vn -0.0757 -0.1467 0.9863 +vn -0.0453 -0.2090 0.9769 +vn 0.1636 -0.5821 0.7965 +vn 0.2319 -0.6923 0.6834 +vn 0.1567 -0.5849 0.7958 +vn 0.2263 -0.6977 0.6797 +vn 0.3117 -0.7945 0.5211 +vn 0.0880 -0.4099 0.9079 +vn 0.1119 -0.3990 0.9101 +vn 0.3256 -0.7881 0.5224 +vn 0.3029 -0.7961 0.5239 +vn 0.0737 -0.4127 0.9079 +vn 0.3419 -0.7809 0.5227 +vn 0.1395 -0.3867 0.9116 +vn 0.1789 -0.3690 0.9120 +vn 0.3656 -0.7707 0.5220 +vn 0.2993 -0.7947 0.5281 +vn 0.3564 -0.8657 0.3514 +vn 0.2947 -0.7967 0.5277 +vn 0.3534 -0.8670 0.3512 +vn 0.2885 -0.7994 0.5269 +vn 0.3493 -0.8689 0.3507 +vn 0.2183 -0.7012 0.6787 +vn 0.2098 -0.7049 0.6775 +vn 0.2819 -0.8024 0.5260 +vn 0.3449 -0.8709 0.3501 +vn 0.1472 -0.5890 0.7946 +vn 0.0823 -0.4774 0.8748 +vn 0.0713 -0.4821 0.8732 +vn 0.1373 -0.5932 0.7932 +vn 0.0266 -0.3759 0.9263 +vn -0.0194 -0.2881 0.9574 +vn -0.0315 -0.2930 0.9556 +vn 0.0150 -0.3808 0.9245 +vn 0.1267 -0.5977 0.7916 +vn 0.2008 -0.7089 0.6762 +vn 0.0596 -0.4869 0.8714 +vn 0.0473 -0.4921 0.8692 +vn 0.1156 -0.6025 0.7897 +vn 0.1913 -0.7130 0.6746 +vn -0.0569 -0.2138 0.9752 +vn -0.0875 -0.1515 0.9846 +vn -0.0999 -0.1566 0.9826 +vn -0.0692 -0.2188 0.9733 +vn 0.0026 -0.3859 0.9225 +vn -0.0442 -0.2983 0.9535 +vn -0.0577 -0.3038 0.9510 +vn -0.0104 -0.3913 0.9202 +vn -0.0822 -0.2241 0.9711 +vn -0.1130 -0.1619 0.9803 +vn -0.1269 -0.1676 0.9777 +vn -0.0960 -0.2298 0.9685 +vn -0.1126 -0.0993 0.9887 +vn -0.1278 -0.0672 0.9895 +vn -0.1408 -0.0712 0.9875 +vn -0.1254 -0.1036 0.9867 +vn -0.1003 -0.0955 0.9904 +vn -0.1154 -0.0637 0.9913 +vn -0.1389 -0.1084 0.9844 +vn -0.1543 -0.0758 0.9851 +vn -0.1685 -0.0808 0.9824 +vn -0.1530 -0.1135 0.9817 +vn -0.1105 -0.2357 0.9655 +vn -0.0720 -0.3097 0.9481 +vn -0.1415 -0.1736 0.9746 +vn -0.1571 -0.1799 0.9711 +vn -0.1259 -0.2420 0.9621 +vn -0.0871 -0.3159 0.9448 +vn -0.0912 -0.0932 0.9915 +vn -0.1060 -0.0620 0.9924 +vn -0.0869 -0.0929 0.9919 +vn -0.1015 -0.0623 0.9929 +vn -0.0242 -0.3970 0.9175 +vn 0.0343 -0.4976 0.8667 +vn -0.0388 -0.4031 0.9143 +vn 0.0205 -0.5034 0.8638 +vn -0.0700 -0.0865 0.9938 +vn -0.0844 -0.0563 0.9948 +vn -0.0398 -0.0743 0.9964 +vn -0.0542 -0.0440 0.9976 +vn -0.1339 -0.0538 0.9895 +vn -0.1465 -0.0586 0.9875 +vn -0.1219 -0.0495 0.9913 +vn -0.1248 -0.0418 0.9913 +vn -0.1368 -0.0461 0.9895 +vn -0.1495 -0.0506 0.9875 +vn -0.0036 -0.0595 0.9982 +vn -0.0178 -0.0293 0.9994 +vn 0.0482 -0.0384 0.9981 +vn 0.0341 -0.0083 0.9994 +vn -0.1130 -0.0465 0.9925 +vn -0.1091 -0.0455 0.9930 +vn -0.1124 -0.0370 0.9930 +vn -0.1161 -0.0385 0.9925 +vn -0.0924 -0.0394 0.9949 +vn -0.0618 -0.0279 0.9977 +vn -0.0644 -0.0211 0.9977 +vn -0.0954 -0.0313 0.9949 +vn 0.1160 -0.0107 0.9932 +vn 0.1021 0.0194 0.9946 +vn 0.2003 0.0237 0.9794 +vn 0.1867 0.0538 0.9809 +vn -0.0252 -0.0142 0.9996 +vn 0.0271 0.0055 0.9996 +vn 0.0260 0.0085 0.9996 +vn -0.0272 -0.0089 0.9996 +vn -0.0964 -0.0279 0.9950 +vn -0.1136 -0.0329 0.9930 +vn -0.0651 -0.0188 0.9977 +vn -0.0658 -0.0161 0.9977 +vn -0.0976 -0.0239 0.9949 +vn -0.1149 -0.0282 0.9930 +vn -0.0274 -0.0079 0.9996 +vn 0.0263 0.0076 0.9996 +vn 0.0264 0.0065 0.9996 +vn -0.0279 -0.0068 0.9996 +vn 0.0957 0.0314 0.9949 +vn 0.1811 0.0635 0.9814 +vn 0.1825 0.0597 0.9814 +vn 0.0957 0.0313 0.9949 +vn -0.1174 -0.0341 0.9925 +vn -0.1263 -0.0368 0.9913 +vn -0.1188 -0.0291 0.9925 +vn -0.1278 -0.0313 0.9913 +vn 0.0968 0.0280 0.9949 +vn 0.1845 0.0533 0.9814 +vn 0.1862 0.0457 0.9814 +vn 0.0976 0.0239 0.9949 +vn 0.2884 0.0833 0.9539 +vn 0.4050 0.1170 0.9068 +vn 0.2913 0.0714 0.9540 +vn 0.2854 0.0932 0.9539 +vn 0.3002 0.0646 0.9517 +vn 0.2868 0.0946 0.9533 +vn 0.5712 0.0462 0.8195 +vn 0.2823 0.1016 0.9539 +vn 0.5270 0.1523 0.8361 +vn 0.2944 0.0570 0.9540 +vn 0.1882 0.0365 0.9815 +vn 0.2969 0.0425 0.9540 +vn 0.1898 0.0272 0.9814 +vn 0.0987 0.0191 0.9949 +vn 0.0267 0.0052 0.9996 +vn 0.0995 0.0143 0.9949 +vn 0.0269 0.0039 0.9996 +vn 0.2986 0.0279 0.9540 +vn 0.1909 0.0178 0.9814 +vn 0.2996 0.0132 0.9540 +vn 0.1916 0.0084 0.9814 +vn -0.0282 -0.0055 0.9996 +vn -0.0666 -0.0129 0.9977 +vn -0.0284 -0.0041 0.9996 +vn -0.0671 -0.0096 0.9977 +vn 0.1001 0.0094 0.9949 +vn 0.0271 0.0025 0.9996 +vn 0.1004 0.0044 0.9949 +vn 0.0272 0.0012 0.9996 +vn 0.2999 -0.0015 0.9540 +vn 0.1917 -0.0010 0.9814 +vn 0.2994 -0.0162 0.9540 +vn 0.1915 -0.0104 0.9814 +vn -0.0986 -0.0191 0.9949 +vn -0.1161 -0.0225 0.9930 +vn -0.0995 -0.0142 0.9949 +vn -0.1171 -0.0168 0.9930 +vn -0.0286 -0.0027 0.9996 +vn -0.0675 -0.0063 0.9977 +vn -0.0286 -0.0013 0.9996 +vn -0.0677 -0.0030 0.9977 +vn 0.1005 -0.0005 0.9949 +vn 0.0272 -0.0001 0.9996 +vn 0.1004 -0.0054 0.9949 +vn 0.0272 -0.0015 0.9996 +vn 0.2983 -0.0309 0.9540 +vn 0.1907 -0.0198 0.9814 +vn 0.2964 -0.0455 0.9540 +vn 0.1895 -0.0291 0.9814 +vn 0.2938 -0.0600 0.9540 +vn 0.1879 -0.0383 0.9814 +vn 0.1000 -0.0104 0.9949 +vn 0.0271 -0.0028 0.9996 +vn 0.0994 -0.0153 0.9949 +vn 0.0269 -0.0041 0.9996 +vn -0.0287 0.0001 0.9996 +vn -0.0678 0.0003 0.9977 +vn -0.0286 0.0016 0.9996 +vn -0.0677 0.0037 0.9977 +vn 0.0985 -0.0201 0.9949 +vn 0.0267 -0.0054 0.9996 +vn -0.0285 0.0030 0.9996 +vn -0.0674 0.0070 0.9977 +vn -0.0284 0.0044 0.9996 +vn -0.0670 0.0103 0.9977 +vn -0.0281 0.0057 0.9996 +vn -0.0664 0.0136 0.9977 +vn -0.0278 0.0071 0.9996 +vn -0.0657 0.0168 0.9977 +vn -0.0274 0.0082 0.9996 +vn -0.0649 0.0195 0.9977 +vn -0.0999 0.0103 0.9949 +vn -0.1176 0.0122 0.9930 +vn -0.1181 0.0064 0.9930 +vn -0.1003 0.0054 0.9949 +vn -0.0993 0.0152 0.9949 +vn -0.1169 0.0179 0.9930 +vn -0.0961 0.0289 0.9950 +vn -0.1133 0.0340 0.9930 +vn -0.1146 0.0293 0.9930 +vn -0.0973 0.0249 0.9949 +vn -0.0984 0.0201 0.9949 +vn -0.1159 0.0237 0.9930 +vn -0.1171 0.0353 0.9925 +vn -0.1260 0.0380 0.9913 +vn -0.1275 0.0326 0.9913 +vn -0.1185 0.0303 0.9925 +vn -0.1157 0.0397 0.9925 +vn -0.1244 0.0430 0.9913 +vn -0.1198 0.0245 0.9925 +vn -0.1289 0.0263 0.9913 +vn -0.1301 0.0200 0.9913 +vn -0.1209 0.0185 0.9925 +vn -0.1216 0.0126 0.9925 +vn -0.1309 0.0136 0.9913 +vn -0.1314 0.0071 0.9913 +vn -0.1221 0.0066 0.9925 +vn -0.1005 0.0005 0.9949 +vn -0.1183 0.0006 0.9930 +vn -0.1182 -0.0052 0.9930 +vn -0.1004 -0.0044 0.9949 +vn -0.1223 0.0006 0.9925 +vn -0.1316 0.0007 0.9913 +vn -0.1315 -0.0058 0.9913 +vn -0.1222 -0.0054 0.9925 +vn -0.1000 -0.0093 0.9949 +vn -0.1178 -0.0110 0.9930 +vn -0.1218 -0.0114 0.9925 +vn -0.1310 -0.0122 0.9913 +vn -0.1303 -0.0187 0.9913 +vn -0.1211 -0.0173 0.9925 +vn -0.1201 -0.0233 0.9925 +vn -0.1292 -0.0250 0.9913 +vn -0.1437 -0.0134 0.9895 +vn -0.1572 -0.0147 0.9875 +vn -0.1563 -0.0224 0.9875 +vn -0.1429 -0.0205 0.9895 +vn -0.1442 -0.0064 0.9895 +vn -0.1577 -0.0070 0.9875 +vn -0.1386 -0.0404 0.9895 +vn -0.1515 -0.0443 0.9875 +vn -0.1402 -0.0344 0.9895 +vn -0.1533 -0.0376 0.9875 +vn -0.1417 -0.0275 0.9895 +vn -0.1550 -0.0300 0.9875 +vn -0.1598 -0.0636 0.9851 +vn -0.1739 -0.0690 0.9823 +vn -0.1630 -0.0553 0.9851 +vn -0.1772 -0.0603 0.9823 +vn -0.1651 -0.0483 0.9851 +vn -0.1796 -0.0526 0.9823 +vn -0.1671 -0.0410 0.9851 +vn -0.1817 -0.0446 0.9823 +vn -0.1689 -0.0327 0.9851 +vn -0.1837 -0.0356 0.9823 +vn -0.1703 -0.0244 0.9851 +vn -0.1852 -0.0265 0.9823 +vn -0.1444 0.0007 0.9895 +vn -0.1578 0.0008 0.9875 +vn -0.1442 0.0078 0.9895 +vn -0.1576 0.0085 0.9875 +vn -0.1713 -0.0160 0.9851 +vn -0.1863 -0.0174 0.9823 +vn -0.1719 -0.0076 0.9851 +vn -0.1869 -0.0082 0.9823 +vn -0.1436 0.0149 0.9895 +vn -0.1570 0.0163 0.9875 +vn -0.1427 0.0219 0.9895 +vn -0.1560 0.0239 0.9875 +vn -0.1721 0.0009 0.9851 +vn -0.1871 0.0009 0.9823 +vn -0.1718 0.0093 0.9851 +vn -0.1868 0.0101 0.9823 +vn -0.1414 0.0289 0.9895 +vn -0.1547 0.0316 0.9875 +vn -0.1399 0.0358 0.9895 +vn -0.1529 0.0391 0.9875 +vn -0.1712 0.0177 0.9851 +vn -0.1861 0.0193 0.9823 +vn -0.1701 0.0261 0.9851 +vn -0.1849 0.0284 0.9823 +vn -0.2021 -0.0189 0.9792 +vn -0.2189 -0.0205 0.9755 +vn -0.2176 -0.0312 0.9755 +vn -0.2010 -0.0288 0.9792 +vn -0.2028 -0.0089 0.9792 +vn -0.2196 -0.0097 0.9755 +vn -0.2030 0.0010 0.9792 +vn -0.2199 0.0011 0.9755 +vn -0.2027 0.0110 0.9792 +vn -0.2195 0.0119 0.9755 +vn -0.1993 -0.0386 0.9792 +vn -0.2158 -0.0418 0.9755 +vn -0.2135 -0.0524 0.9755 +vn -0.1972 -0.0483 0.9792 +vn -0.1686 0.0344 0.9851 +vn -0.1833 0.0374 0.9823 +vn -0.1667 0.0426 0.9851 +vn -0.1813 0.0464 0.9823 +vn -0.1948 -0.0571 0.9792 +vn -0.2110 -0.0619 0.9755 +vn -0.2081 -0.0711 0.9755 +vn -0.1922 -0.0655 0.9792 +vn -0.1382 0.0418 0.9895 +vn -0.1511 0.0458 0.9875 +vn -0.1364 0.0474 0.9895 +vn -0.1490 0.0520 0.9875 +vn -0.1125 0.0477 0.9925 +vn -0.1213 0.0508 0.9913 +vn -0.1333 0.0553 0.9895 +vn -0.1459 0.0601 0.9875 +vn -0.1647 0.0500 0.9851 +vn -0.1790 0.0544 0.9823 +vn -0.1624 0.0569 0.9851 +vn -0.1765 0.0620 0.9823 +vn -0.1377 0.1098 0.9844 +vn -0.1536 0.0772 0.9851 +vn -0.1519 0.1151 0.9817 +vn -0.1678 0.0824 0.9824 +vn -0.1591 0.0653 0.9851 +vn -0.1731 0.0708 0.9824 +vn -0.1662 0.1203 0.9787 +vn -0.1827 0.0880 0.9792 +vn -0.1879 0.0766 0.9792 +vn -0.1915 0.0674 0.9792 +vn -0.1942 0.0590 0.9792 +vn -0.2103 0.0640 0.9755 +vn -0.2130 0.0545 0.9755 +vn -0.1967 0.0503 0.9792 +vn -0.2274 0.0692 0.9713 +vn -0.2303 0.0589 0.9713 +vn -0.1989 0.0406 0.9792 +vn -0.2154 0.0440 0.9755 +vn -0.2173 0.0334 0.9755 +vn -0.2007 0.0308 0.9792 +vn -0.2329 0.0475 0.9713 +vn -0.2515 0.0513 0.9665 +vn -0.2537 0.0389 0.9665 +vn -0.2350 0.0361 0.9713 +vn -0.2712 0.0554 0.9609 +vn -0.2922 0.0596 0.9545 +vn -0.2948 0.0452 0.9545 +vn -0.2736 0.0420 0.9609 +vn -0.2019 0.0209 0.9792 +vn -0.2187 0.0226 0.9755 +vn -0.2365 0.0245 0.9713 +vn -0.2553 0.0264 0.9665 +vn -0.2563 0.0139 0.9665 +vn -0.2374 0.0129 0.9713 +vn -0.2377 0.0012 0.9713 +vn -0.2567 0.0013 0.9665 +vn -0.2564 -0.0113 0.9665 +vn -0.2375 -0.0105 0.9713 +vn -0.2753 0.0285 0.9609 +vn -0.2966 0.0307 0.9545 +vn -0.2978 0.0161 0.9545 +vn -0.2764 0.0150 0.9609 +vn -0.2768 0.0014 0.9609 +vn -0.2982 0.0015 0.9545 +vn -0.2979 -0.0131 0.9545 +vn -0.2765 -0.0122 0.9609 +vn -0.2367 -0.0221 0.9713 +vn -0.2556 -0.0239 0.9665 +vn -0.2541 -0.0364 0.9665 +vn -0.2353 -0.0337 0.9713 +vn -0.2756 -0.0257 0.9609 +vn -0.2969 -0.0277 0.9545 +vn -0.2952 -0.0423 0.9545 +vn -0.2740 -0.0392 0.9609 +vn -0.2334 -0.0452 0.9713 +vn -0.2520 -0.0488 0.9665 +vn -0.2493 -0.0611 0.9665 +vn -0.2309 -0.0566 0.9713 +vn -0.2718 -0.0526 0.9609 +vn -0.2928 -0.0567 0.9545 +vn -0.2896 -0.0710 0.9545 +vn -0.2688 -0.0659 0.9609 +vn -0.2281 -0.0670 0.9713 +vn -0.2463 -0.0723 0.9665 +vn -0.2428 -0.0832 0.9665 +vn -0.2249 -0.0769 0.9713 +vn -0.2656 -0.0780 0.9609 +vn -0.2861 -0.0841 0.9545 +vn -0.2821 -0.0968 0.9545 +vn -0.2619 -0.0898 0.9609 +vn -0.3176 -0.0615 0.9462 +vn -0.3459 -0.0670 0.9359 +vn -0.3422 -0.0839 0.9359 +vn -0.3142 -0.0770 0.9462 +vn -0.3202 -0.0459 0.9462 +vn -0.3488 -0.0499 0.9359 +vn -0.3103 -0.0913 0.9462 +vn -0.3380 -0.0994 0.9359 +vn -0.3332 -0.1145 0.9359 +vn -0.3059 -0.1051 0.9462 +vn -0.2575 -0.1013 0.9609 +vn -0.2388 -0.0941 0.9665 +vn -0.2775 -0.1091 0.9545 +vn -0.2724 -0.1204 0.9546 +vn -0.2525 -0.1126 0.9610 +vn -0.2337 -0.1053 0.9666 +vn -0.3221 -0.0301 0.9462 +vn -0.3508 -0.0328 0.9359 +vn -0.3232 -0.0143 0.9462 +vn -0.3520 -0.0155 0.9359 +vn -0.2211 -0.0872 0.9713 +vn -0.2044 -0.0807 0.9756 +vn -0.2160 -0.0985 0.9714 +vn -0.1993 -0.0921 0.9756 +vn -0.3235 0.0016 0.9462 +vn -0.3523 0.0018 0.9359 +vn -0.3230 0.0175 0.9462 +vn -0.3518 0.0191 0.9359 +vn -0.1887 -0.0747 0.9792 +vn -0.1835 -0.0862 0.9792 +vn -0.1680 -0.1191 0.9786 +vn -0.1837 -0.1251 0.9750 +vn -0.2004 -0.1315 0.9708 +vn -0.1735 -0.1867 0.9670 +vn -0.2181 -0.1384 0.9661 +vn -0.1910 -0.1938 0.9623 +vn -0.2368 -0.1458 0.9606 +vn -0.2096 -0.2014 0.9568 +vn -0.2567 -0.1537 0.9542 +vn -0.1422 -0.2487 0.9581 +vn -0.1031 -0.3225 0.9409 +vn -0.1595 -0.2558 0.9535 +vn -0.1779 -0.2633 0.9482 +vn -0.0543 -0.4095 0.9107 +vn 0.0059 -0.5095 0.8604 +vn 0.0780 -0.6186 0.7819 +vn 0.0912 -0.6129 0.7849 +vn 0.1038 -0.6075 0.7875 +vn 0.1813 -0.7174 0.6727 +vn 0.2599 -0.8122 0.5222 +vn 0.2677 -0.8088 0.5237 +vn 0.2750 -0.8055 0.5250 +vn 0.3403 -0.8730 0.3494 +vn 0.2841 -0.7933 0.5384 +vn 0.0413 -0.4024 0.9145 +vn 0.0557 -0.4043 0.9129 +vn 0.2926 -0.7934 0.5337 +vn 0.2752 -0.7937 0.5425 +vn 0.0266 -0.4013 0.9156 +vn 0.2993 -0.7944 0.5285 +vn 0.0673 -0.4081 0.9104 +vn -0.2802 -0.1630 0.9460 +vn -0.2959 -0.1297 0.9464 +vn -0.3227 -0.1404 0.9360 +vn -0.3070 -0.1737 0.9357 +vn -0.3010 -0.1183 0.9463 +vn -0.3279 -0.1287 0.9359 +vn -0.3348 -0.1849 0.9240 +vn -0.3505 -0.1515 0.9242 +vn -0.3558 -0.1396 0.9241 +vn -0.3884 -0.1523 0.9088 +vn -0.3615 -0.1243 0.9241 +vn -0.3946 -0.1358 0.9088 +vn -0.4267 -0.1673 0.8888 +vn -0.4334 -0.1493 0.8887 +vn -0.3667 -0.1079 0.9241 +vn -0.4003 -0.1178 0.9088 +vn -0.3713 -0.0910 0.9240 +vn -0.4053 -0.0994 0.9088 +vn -0.4397 -0.1295 0.8887 +vn -0.4826 -0.1422 0.8642 +vn -0.4452 -0.1092 0.8887 +vn -0.4887 -0.1198 0.8642 +vn -0.3753 -0.0727 0.9241 +vn -0.4097 -0.0794 0.9088 +vn -0.3784 -0.0542 0.9241 +vn -0.4131 -0.0592 0.9088 +vn -0.5292 -0.1559 0.8341 +vn -0.5794 -0.1707 0.7970 +vn -0.5358 -0.1314 0.8340 +vn -0.5867 -0.1438 0.7969 +vn -0.4501 -0.0872 0.8887 +vn -0.4940 -0.0957 0.8642 +vn -0.4538 -0.0650 0.8887 +vn -0.4981 -0.0713 0.8642 +vn -0.3806 -0.0356 0.9241 +vn -0.4155 -0.0388 0.9088 +vn -0.3819 -0.0168 0.9241 +vn -0.4169 -0.0184 0.9088 +vn -0.6331 -0.1866 0.7512 +vn -0.6898 -0.2033 0.6949 +vn -0.6411 -0.1572 0.7512 +vn -0.6985 -0.1712 0.6949 +vn -0.5416 -0.1049 0.8340 +vn -0.5930 -0.1149 0.7970 +vn -0.5461 -0.0782 0.8340 +vn -0.5980 -0.0856 0.7969 +vn -0.4564 -0.0426 0.8887 +vn -0.5010 -0.0468 0.8642 +vn -0.4580 -0.0202 0.8887 +vn -0.5027 -0.0222 0.8642 +vn -0.7483 -0.2206 0.6256 +vn -0.7578 -0.1858 0.6255 +vn -0.6480 -0.1255 0.7512 +vn -0.7060 -0.1368 0.6949 +vn -0.6534 -0.0936 0.7512 +vn -0.7660 -0.1484 0.6255 +vn -0.6572 -0.0614 0.7512 +vn -0.6014 -0.0562 0.7969 +vn -0.5493 -0.0513 0.8340 +vn -0.5512 -0.0243 0.8340 +vn -0.5517 0.0028 0.8340 +vn -0.5032 0.0025 0.8642 +vn -0.4560 0.0472 0.8887 +vn -0.4151 0.0430 0.9088 +vn -0.4578 0.0248 0.8887 +vn -0.4167 0.0226 0.9088 +vn -0.4584 0.0023 0.8887 +vn -0.4173 0.0021 0.9088 +vn -0.3802 0.0394 0.9241 +vn -0.3505 0.0363 0.9359 +vn -0.3817 0.0207 0.9241 +vn -0.3169 0.0647 0.9462 +vn -0.3197 0.0491 0.9462 +vn -0.3823 0.0019 0.9241 +vn -0.3218 0.0333 0.9462 +vn 0.6192 -0.6457 0.4468 +vn 0.5693 -0.7648 0.3016 +vn 0.6088 -0.6637 0.4347 +vn 0.5973 -0.1815 0.7812 +vn 0.5368 -0.6932 0.4810 +vn 0.4529 -0.2425 0.8579 +vn 0.4802 -0.7187 0.5029 +vn 0.3624 -0.2843 0.8876 +vn 0.4328 -0.7400 0.5149 +vn 0.2875 -0.3187 0.9032 +vn 0.3957 -0.7568 0.5203 +vn 0.2285 -0.3460 0.9100 +vn 0.6204 0.6353 0.4599 +vn 0.5764 0.7593 0.3021 +vn 0.5876 0.1308 0.7985 +vn 0.6251 0.6397 0.4472 +vn -0.1375 -0.9554 0.2615 +vn -0.6386 -0.6435 0.4220 +vn -0.1641 -0.9689 0.1854 +vn -0.6839 -0.6654 0.2992 +vn -0.1992 -0.9799 0.0101 +vn -0.7282 -0.6852 0.0151 +vn -0.7255 -0.6843 0.0730 +vn -0.1953 -0.9796 0.0466 +vn 0.0675 -0.9977 0.0067 +vn 0.0694 -0.9976 -0.0014 +vn -0.2040 -0.9790 -0.0024 +vn -0.7291 -0.6844 -0.0044 +vn -0.1380 -0.9904 0.0108 +vn -0.3339 -0.9425 0.0148 +vn -0.3325 -0.9431 -0.0017 +vn -0.1362 -0.9907 -0.0017 +vn -0.5003 -0.8656 0.0181 +vn -0.6299 -0.7764 0.0206 +vn -0.6295 -0.7770 -0.0013 +vn -0.4994 -0.8664 -0.0015 +vn -0.7256 -0.6878 0.0224 +vn -0.7944 -0.6069 0.0236 +vn -0.7945 -0.6073 -0.0006 +vn -0.7254 -0.6883 -0.0009 +vn -0.8438 -0.5361 0.0243 +vn -0.8795 -0.4752 0.0248 +vn -0.8798 -0.4754 -0.0002 +vn -0.8440 -0.5364 -0.0004 +vn -0.9081 -0.4181 0.0250 +vn -0.9229 -0.3841 0.0251 +vn -0.9232 -0.3842 0.0000 +vn -0.9083 -0.4182 -0.0001 +vn -0.9310 -0.3642 0.0251 +vn -0.9313 -0.3643 0.0000 +vn -0.9450 -0.3262 0.0230 +vn -0.9453 -0.3263 0.0000 +vn -0.9589 -0.2827 0.0251 +vn -0.9592 -0.2827 0.0000 +vn -0.9710 -0.2380 0.0230 +vn -0.9712 -0.2381 0.0000 +vn -0.9814 -0.1901 0.0251 +vn -0.9817 -0.1902 0.0000 +vn -0.9896 -0.1417 0.0230 +vn -0.9899 -0.1418 0.0000 +vn -0.9953 -0.0930 0.0251 +vn -0.9957 -0.0930 0.0000 +vn -0.9988 -0.0440 0.0230 +vn -0.9990 -0.0441 0.0000 +vn -0.9997 0.0050 0.0251 +vn -1.0000 0.0050 0.0000 +vn -0.9983 0.0541 0.0230 +vn -0.9985 0.0541 0.0000 +vn -0.9944 0.1030 0.0251 +vn -0.9947 0.1030 0.0000 +vn -0.9882 0.1516 0.0229 +vn -0.9884 0.1517 0.0000 +vn -0.9795 0.1999 0.0252 +vn -0.9798 0.2000 0.0000 +vn -0.9685 0.2478 0.0230 +vn -0.9688 0.2478 0.0000 +vn -0.9560 0.2923 0.0251 +vn -0.9563 0.2924 0.0000 +vn -0.9417 0.3356 0.0230 +vn -0.9420 0.3357 0.0000 +vn -0.9273 0.3735 0.0251 +vn -0.9276 0.3736 0.0000 +vn -0.9191 0.3934 0.0229 +vn -0.9193 0.3935 0.0000 +vn -0.9038 0.4272 0.0251 +vn -0.8747 0.4840 0.0249 +vn -0.8749 0.4842 -0.0001 +vn -0.9041 0.4274 -0.0000 +vn -0.8384 0.5445 0.0244 +vn -0.7883 0.6149 0.0237 +vn -0.7883 0.6153 -0.0005 +vn -0.8385 0.5448 -0.0003 +vn -0.7186 0.6951 0.0225 +vn -0.6221 0.7827 0.0208 +vn -0.6216 0.7833 -0.0012 +vn -0.7184 0.6956 -0.0009 +vn -0.4916 0.8706 0.0183 +vn -0.3244 0.9458 0.0150 +vn -0.3230 0.9464 -0.0017 +vn -0.4907 0.8713 -0.0016 +vn -0.1281 0.9917 0.0110 +vn 0.0775 0.9970 0.0068 +vn 0.0793 0.9969 -0.0013 +vn -0.1263 0.9920 -0.0016 +vn -0.1284 0.9907 0.0453 +vn 0.0767 0.9966 0.0294 +vn -0.2363 0.9716 0.0109 +vn -0.7593 0.6506 0.0155 +vn -0.7598 0.6502 -0.0045 +vn -0.2415 0.9704 -0.0023 +vn -0.2320 0.9714 0.0496 +vn -0.7568 0.6494 0.0743 +vn -0.2201 0.9689 0.1136 +vn 0.0790 0.9947 0.0665 +vn -0.7442 0.6433 0.1796 +vn -0.1239 0.9872 0.1006 +vn 0.2661 -0.7945 0.5459 +vn 0.0114 -0.4012 0.9159 +vn -0.1841 -0.9771 0.1071 +vn -0.7136 -0.6793 0.1712 +vn -0.7462 0.5042 0.4348 +vn 0.6846 -0.7219 0.1009 +vn 0.8190 -0.5699 0.0668 +vn 0.8215 -0.5584 0.1151 +vn 0.6885 -0.7044 0.1726 +vn 0.5250 -0.8411 0.1305 +vn 0.5305 -0.8182 0.2217 +vn 0.5244 -0.8494 0.0594 +vn 0.6844 -0.7277 0.0453 +vn 0.8191 -0.5729 0.0294 +vn 0.9312 0.2976 0.2106 +vn 0.5589 0.7528 0.3477 +vn 0.5592 0.7570 0.3381 +vn 0.9302 0.3047 0.2046 +vn 0.9864 0.0904 0.1370 +vn 0.9875 0.0897 0.1299 +vn 0.9828 0.0819 0.1657 +vn 0.9292 0.2758 0.2462 +vn 0.5530 0.7301 0.4014 +vn -0.9743 0.1655 0.1526 +vn -0.9308 0.3415 0.1302 +vn -0.9389 0.3391 0.0595 +vn -0.9842 0.1621 0.0705 +vn -0.9857 0.0102 0.1679 +vn -0.9969 0.0058 0.0784 +vn -0.9588 0.0238 0.2831 +vn -0.9496 0.1776 0.2583 +vn -0.9096 0.3515 0.2215 +vn -0.3338 0.7863 0.5199 +vn -0.3775 0.8553 0.3548 +vn -0.3504 0.8680 0.3518 +vn -0.2974 0.8044 0.5142 +vn -0.1218 0.3954 0.9104 +vn -0.0629 0.4230 0.9040 +vn -0.1715 0.3720 0.9122 +vn -0.3637 0.7716 0.5218 +vn -0.3992 0.8451 0.3555 +vn 0.0679 0.9777 0.1986 +vn -0.1137 0.9841 0.1365 +vn -0.1144 0.9850 0.1289 +vn 0.0742 0.9786 0.1921 +vn 0.5874 0.7342 0.3404 +vn 0.5924 0.7346 0.3308 +vn 0.5653 0.7254 0.3926 +vn 0.0490 0.9713 0.2329 +vn -0.1215 0.9787 0.1653 +vn 0.3617 -0.9197 0.1529 +vn 0.2120 -0.9627 0.1682 +vn 0.2099 -0.9746 0.0784 +vn 0.3604 -0.9301 0.0705 +vn 0.3684 -0.8930 0.2585 +vn 0.2197 -0.9335 0.2833 +vn 0.0840 -0.9805 0.1778 +vn -0.0214 -0.9828 0.1835 +vn -0.0245 -0.9959 0.0867 +vn 0.0814 -0.9932 0.0835 +vn 0.0925 -0.9499 0.2986 +vn -0.0125 -0.9515 0.3074 +vn 0.3797 -0.8517 0.3611 +vn 0.2323 -0.8887 0.3954 +vn 0.5399 -0.7825 0.3101 +vn 0.5518 -0.7415 0.3817 +vn 0.3938 -0.8043 0.4449 +vn 0.2477 -0.8372 0.4875 +vn 0.6958 -0.6764 0.2417 +vn 0.8264 -0.5395 0.1614 +vn 0.8323 -0.5177 0.1984 +vn 0.7049 -0.6440 0.2973 +vn -0.1069 -0.9766 0.1866 +vn -0.1763 -0.9662 0.1880 +vn -0.1800 -0.9796 0.0896 +vn -0.1104 -0.9899 0.0886 +vn -0.0978 -0.9450 0.3120 +vn -0.1670 -0.9346 0.3141 +vn 0.7141 -0.6109 0.3419 +vn 0.5641 -0.6991 0.4394 +vn 0.8382 -0.4955 0.2278 +vn 0.8440 -0.4736 0.2518 +vn 0.7231 -0.5780 0.3781 +vn 0.5760 -0.6570 0.4863 +vn 0.6389 -0.6595 0.3960 +vn 0.0731 -0.7899 0.6089 +vn 0.0877 -0.7333 0.6742 +vn 0.6480 -0.6226 0.4387 +vn 0.6301 -0.6963 0.3438 +vn 0.0587 -0.8463 0.5294 +vn 0.6570 -0.5867 0.4734 +vn 0.8495 -0.4525 0.2712 +vn 0.1020 -0.6785 0.7275 +vn 0.1159 -0.6265 0.7707 +vn 0.6657 -0.5526 0.5014 +vn 0.8547 -0.4326 0.2869 +vn 0.6742 -0.5206 0.5239 +vn 0.8596 -0.4141 0.2995 +vn 0.1293 -0.5779 0.8058 +vn 0.1422 -0.5328 0.8342 +vn 0.6823 -0.4909 0.5418 +vn 0.8640 -0.3970 0.3098 +vn 0.7318 -0.5464 0.4074 +vn 0.5875 -0.6165 0.5242 +vn 0.7398 -0.5166 0.4311 +vn 0.5981 -0.5783 0.5548 +vn 0.4083 -0.7552 0.5128 +vn 0.2638 -0.7837 0.5623 +vn 0.4225 -0.7064 0.5679 +vn 0.2796 -0.7303 0.6232 +vn 0.1059 -0.9029 0.4165 +vn 0.0014 -0.9035 0.4285 +vn 0.1221 -0.8492 0.5138 +vn 0.0181 -0.8485 0.5289 +vn -0.0836 -0.8966 0.4349 +vn -0.1527 -0.8861 0.4377 +vn -0.0668 -0.8410 0.5369 +vn -0.1359 -0.8303 0.5405 +vn 0.1391 -0.7930 0.5931 +vn 0.0355 -0.7908 0.6110 +vn 0.1558 -0.7369 0.6578 +vn 0.0528 -0.7333 0.6779 +vn 0.4362 -0.6592 0.6125 +vn 0.2949 -0.6788 0.6725 +vn 0.4490 -0.6147 0.6485 +vn 0.3091 -0.6302 0.7123 +vn -0.2383 -0.9527 0.1885 +vn -0.2740 -0.9431 0.1884 +vn -0.2779 -0.9564 0.0900 +vn -0.2422 -0.9661 0.0899 +vn -0.2290 -0.9212 0.3147 +vn -0.2646 -0.9117 0.3144 +vn -0.2146 -0.8727 0.4385 +vn -0.2502 -0.8634 0.4381 +vn -0.1979 -0.8170 0.5416 +vn -0.2336 -0.8078 0.5412 +vn -0.0492 -0.7826 0.6205 +vn -0.1183 -0.7716 0.6250 +vn -0.0317 -0.7243 0.6887 +vn -0.1007 -0.7130 0.6939 +vn -0.2943 -0.9370 0.1882 +vn -0.2984 -0.9502 0.0900 +vn -0.2844 -0.9058 0.3141 +vn -0.3209 -0.8935 0.3140 +vn -0.3320 -0.9243 0.1882 +vn -0.3367 -0.9373 0.0900 +vn 0.1720 -0.6828 0.7101 +vn 0.0694 -0.6777 0.7321 +vn 0.1872 -0.6316 0.7524 +vn 0.0851 -0.6250 0.7760 +vn 0.7473 -0.4889 0.4501 +vn 0.6081 -0.5427 0.5794 +vn 0.7541 -0.4632 0.4655 +vn 0.6172 -0.5097 0.5993 +vn 0.6900 -0.4634 0.5560 +vn 0.1545 -0.4913 0.8572 +vn 0.1665 -0.4532 0.8757 +vn 0.6976 -0.4381 0.5670 +vn 0.8680 -0.3813 0.3180 +vn 0.8718 -0.3669 0.3247 +vn 0.7040 -0.4167 0.5751 +vn 0.8750 -0.3546 0.3296 +vn 0.1774 -0.4210 0.8895 +vn 0.1875 -0.3936 0.8999 +vn 0.7104 -0.3984 0.5802 +vn 0.8777 -0.3442 0.3335 +vn 0.7604 -0.4397 0.4779 +vn 0.6256 -0.4795 0.6154 +vn 0.7662 -0.4180 0.4880 +vn 0.6333 -0.4517 0.6284 +vn 0.4609 -0.5732 0.6775 +vn 0.3224 -0.5848 0.7444 +vn 0.4719 -0.5349 0.7009 +vn 0.3346 -0.5428 0.7703 +vn -0.0148 -0.6679 0.7441 +vn -0.0838 -0.6563 0.7498 +vn 0.0011 -0.6146 0.7889 +vn -0.0677 -0.6026 0.7952 +vn 0.2014 -0.5838 0.7865 +vn 0.0998 -0.5759 0.8114 +vn 0.2144 -0.5396 0.8142 +vn 0.1133 -0.5304 0.8402 +vn 0.4819 -0.4996 0.7198 +vn 0.3459 -0.5042 0.7913 +vn 0.4912 -0.4672 0.7352 +vn 0.3562 -0.4687 0.8084 +vn 0.7712 -0.3997 0.4955 +vn 0.6399 -0.4281 0.6382 +vn 0.7754 -0.3840 0.5013 +vn 0.6454 -0.4081 0.6457 +vn 0.2264 -0.4989 0.8366 +vn 0.1257 -0.4885 0.8635 +vn 0.2374 -0.4615 0.8548 +vn 0.1372 -0.4500 0.8824 +vn 0.4990 -0.4398 0.7467 +vn 0.3650 -0.4386 0.8212 +vn 0.5057 -0.4163 0.7556 +vn 0.3724 -0.4129 0.8312 +vn 0.7793 -0.3690 0.5065 +vn 0.6507 -0.3887 0.6523 +vn 0.8802 -0.3342 0.3370 +vn 0.8825 -0.3254 0.3395 +vn 0.7829 -0.3558 0.5104 +vn 0.6554 -0.3718 0.6575 +vn 0.7166 -0.3807 0.5845 +vn 0.1973 -0.3672 0.9090 +vn 0.2063 -0.3442 0.9159 +vn 0.7219 -0.3654 0.5877 +vn 0.7271 -0.3524 0.5891 +vn 0.8844 -0.3180 0.3416 +vn 0.2149 -0.3249 0.9210 +vn 0.2236 -0.3069 0.9251 +vn 0.7324 -0.3403 0.5897 +vn 0.8862 -0.3110 0.3434 +vn 0.7378 -0.3289 0.5895 +vn 0.8879 -0.3045 0.3450 +vn 0.2325 -0.2900 0.9284 +vn 0.2416 -0.2744 0.9308 +vn 0.7432 -0.3183 0.5885 +vn 0.8894 -0.2983 0.3463 +vn 0.7858 -0.3447 0.5135 +vn 0.6593 -0.3575 0.6615 +vn 0.7886 -0.3342 0.5162 +vn 0.6629 -0.3440 0.6650 +vn 0.5120 -0.3937 0.7634 +vn 0.3796 -0.3881 0.8398 +vn 0.5177 -0.3740 0.7695 +vn 0.3859 -0.3665 0.8466 +vn 0.7487 -0.3083 0.5868 +vn 0.8909 -0.2925 0.3475 +vn 0.2510 -0.2598 0.9325 +vn 0.2607 -0.2462 0.9335 +vn 0.7544 -0.2991 0.5843 +vn 0.8923 -0.2870 0.3485 +vn 0.7911 -0.3244 0.5185 +vn 0.6664 -0.3314 0.6679 +vn 0.7936 -0.3151 0.5205 +vn 0.6696 -0.3195 0.6705 +vn 0.5224 -0.3573 0.7742 +vn 0.3912 -0.3481 0.8519 +vn 0.5268 -0.3416 0.7783 +vn 0.3961 -0.3309 0.8565 +vn 0.2468 -0.4297 0.8686 +vn 0.1469 -0.4173 0.8968 +vn 0.2548 -0.4026 0.8792 +vn 0.1552 -0.3893 0.9079 +vn 0.2624 -0.3765 0.8885 +vn 0.1631 -0.3624 0.9177 +vn 0.2691 -0.3536 0.8958 +vn 0.1701 -0.3388 0.9254 +vn 0.2748 -0.3343 0.9015 +vn 0.1760 -0.3189 0.9313 +vn 0.2801 -0.3161 0.9064 +vn 0.1815 -0.3001 0.9365 +vn 0.0640 -0.4037 0.9127 +vn -0.0044 -0.3903 0.9207 +vn -0.0144 -0.4238 0.9056 +vn 0.0541 -0.4369 0.8979 +vn 0.0725 -0.3753 0.9241 +vn 0.0041 -0.3617 0.9323 +vn 0.0806 -0.3479 0.9341 +vn 0.0124 -0.3341 0.9425 +vn 0.0877 -0.3240 0.9420 +vn 0.0195 -0.3100 0.9505 +vn 0.0425 -0.4760 0.8784 +vn -0.0261 -0.4631 0.8859 +vn -0.0389 -0.5060 0.8617 +vn 0.0298 -0.5185 0.8545 +vn 0.0160 -0.5647 0.8251 +vn -0.0527 -0.5525 0.8319 +vn -0.0877 -0.4496 0.8889 +vn -0.1236 -0.4409 0.8890 +vn -0.1365 -0.4838 0.8645 +vn -0.1006 -0.4925 0.8645 +vn -0.0758 -0.4102 0.9088 +vn -0.1117 -0.4016 0.9090 +vn -0.1146 -0.5391 0.8344 +vn -0.1505 -0.5303 0.8344 +vn -0.1656 -0.5804 0.7973 +vn -0.1297 -0.5893 0.7975 +vn -0.1458 -0.6430 0.7519 +vn -0.1816 -0.6341 0.7516 +vn -0.1986 -0.6907 0.6953 +vn -0.1628 -0.6997 0.6956 +vn -0.1803 -0.7584 0.6264 +vn -0.2161 -0.7493 0.6260 +vn -0.1976 -0.6297 0.7513 +vn -0.2153 -0.6861 0.6950 +vn -0.1807 -0.5763 0.7970 +vn -0.2044 -0.5684 0.7969 +vn -0.2233 -0.6212 0.7512 +vn -0.2432 -0.6768 0.6949 +vn -0.2694 -0.8578 0.4377 +vn -0.2520 -0.8025 0.5408 +vn -0.2844 -0.7917 0.5407 +vn -0.3040 -0.8462 0.4376 +vn -0.2336 -0.7443 0.6256 +vn -0.2638 -0.7342 0.6255 +vn -0.1650 -0.5264 0.8341 +vn -0.1504 -0.4801 0.8642 +vn -0.1703 -0.4735 0.8642 +vn -0.1867 -0.5192 0.8340 +vn -0.3739 -0.9082 0.1882 +vn -0.3791 -0.9210 0.0900 +vn -0.3614 -0.8779 0.3141 +vn -0.4016 -0.8603 0.3140 +vn -0.4155 -0.8899 0.1882 +vn -0.4213 -0.9024 0.0900 +vn -0.4586 -0.8685 0.1882 +vn -0.4651 -0.8807 0.0900 +vn -0.4433 -0.8396 0.3140 +vn -0.4840 -0.8168 0.3140 +vn -0.5007 -0.8449 0.1882 +vn -0.5077 -0.8568 0.0900 +vn -0.3423 -0.8315 0.4376 +vn -0.3203 -0.7779 0.5407 +vn -0.3559 -0.7623 0.5406 +vn -0.3804 -0.8148 0.4376 +vn -0.5415 -0.8193 0.1882 +vn -0.5492 -0.8308 0.0900 +vn -0.5235 -0.7921 0.3140 +vn -0.5617 -0.7654 0.3140 +vn -0.5811 -0.7918 0.1882 +vn -0.5893 -0.8029 0.0900 +vn -0.6192 -0.7623 0.1882 +vn -0.6280 -0.7730 0.0900 +vn -0.5986 -0.7369 0.3140 +vn -0.6341 -0.7067 0.3140 +vn -0.6559 -0.7310 0.1882 +vn -0.6651 -0.7413 0.0900 +vn -0.4199 -0.7951 0.4376 +vn -0.3928 -0.7439 0.5407 +vn -0.4289 -0.7237 0.5407 +vn -0.4584 -0.7736 0.4376 +vn -0.4958 -0.7501 0.4376 +vn -0.4639 -0.7018 0.5407 +vn -0.4977 -0.6782 0.5406 +vn -0.5320 -0.7249 0.4376 +vn -0.5669 -0.6979 0.4376 +vn -0.5304 -0.6530 0.5406 +vn -0.5618 -0.6261 0.5407 +vn -0.6005 -0.6693 0.4376 +vn -0.4302 -0.6509 0.6255 +vn -0.3965 -0.5999 0.6949 +vn -0.4255 -0.5798 0.6949 +vn -0.4616 -0.6290 0.6255 +vn -0.3977 -0.6712 0.6255 +vn -0.3666 -0.6187 0.6949 +vn -0.4919 -0.6056 0.6255 +vn -0.4534 -0.5582 0.6949 +vn -0.4803 -0.5352 0.6949 +vn -0.5210 -0.5807 0.6255 +vn -0.6910 -0.6980 0.1882 +vn -0.7007 -0.7078 0.0900 +vn -0.6680 -0.6747 0.3140 +vn -0.7003 -0.6411 0.3140 +vn -0.7244 -0.6632 0.1882 +vn -0.7346 -0.6725 0.0900 +vn -0.7561 -0.6269 0.1882 +vn -0.7667 -0.6357 0.0900 +vn -0.7309 -0.6060 0.3140 +vn -0.7597 -0.5694 0.3140 +vn -0.7859 -0.5890 0.1882 +vn -0.7970 -0.5973 0.0900 +vn -0.6326 -0.6390 0.4376 +vn -0.5919 -0.5978 0.5407 +vn -0.6205 -0.5680 0.5407 +vn -0.6632 -0.6072 0.4376 +vn -0.8123 -0.5521 0.1882 +vn -0.8237 -0.5598 0.0900 +vn -0.7852 -0.5337 0.3140 +vn -0.8088 -0.4972 0.3140 +vn -0.8367 -0.5144 0.1882 +vn -0.8484 -0.5216 0.0900 +vn -0.6922 -0.5739 0.4376 +vn -0.6476 -0.5369 0.5406 +vn -0.6732 -0.5045 0.5407 +vn -0.7195 -0.5393 0.4376 +vn -0.8568 -0.4800 0.1882 +vn -0.8689 -0.4868 0.0900 +vn -0.8283 -0.4640 0.3141 +vn -0.8381 -0.4458 0.3144 +vn -0.8670 -0.4614 0.1883 +vn -0.8791 -0.4680 0.0900 +vn -0.7437 -0.5054 0.4376 +vn -0.6957 -0.4729 0.5407 +vn -0.7166 -0.4406 0.5407 +vn -0.7660 -0.4709 0.4376 +vn -0.8837 -0.4285 0.1884 +vn -0.9096 -0.3705 0.1879 +vn -0.9223 -0.3769 0.0854 +vn -0.8959 -0.4350 0.0899 +vn -0.8547 -0.4129 0.3146 +vn -0.8805 -0.3550 0.3141 +vn -0.7844 -0.4394 0.4377 +vn -0.7339 -0.4111 0.5408 +vn -0.7428 -0.3942 0.5412 +vn -0.7938 -0.4218 0.4381 +vn -0.8103 -0.3889 0.4384 +vn -0.8359 -0.3311 0.4377 +vn -0.7591 -0.3611 0.5416 +vn -0.7848 -0.3032 0.5405 +vn -0.9340 -0.3048 0.1864 +vn -0.9576 -0.2223 0.1833 +vn -0.9696 -0.2280 0.0892 +vn -0.9463 -0.3108 0.0886 +vn -0.9050 -0.2893 0.3120 +vn -0.9288 -0.2072 0.3073 +vn -0.9769 -0.1187 0.1776 +vn -0.9888 -0.1238 0.0835 +vn -0.9487 -0.1042 0.2985 +vn -0.9055 -0.0815 0.4164 +vn -0.9174 0.0452 0.3953 +vn -0.8847 -0.1838 0.4284 +vn -0.8342 -0.1562 0.5289 +vn -0.8562 -0.0545 0.5138 +vn -0.8702 0.0709 0.4875 +vn -0.7053 -0.3319 0.6264 +vn -0.7310 -0.2739 0.6250 +vn -0.6891 -0.3651 0.6260 +vn -0.6353 -0.3360 0.6953 +vn -0.6515 -0.3027 0.6956 +vn -0.6772 -0.2447 0.6939 +vn -0.6807 -0.3812 0.6256 +vn -0.6274 -0.3513 0.6949 +vn -0.6646 -0.4087 0.6255 +vn -0.6126 -0.3767 0.6949 +vn -0.7559 -0.2086 0.6206 +vn -0.7813 -0.1273 0.6110 +vn -0.8094 -0.2378 0.5369 +vn -0.7024 -0.1795 0.6888 +vn -0.7285 -0.0986 0.6779 +vn -0.6452 -0.4386 0.6256 +vn -0.5947 -0.4043 0.6949 +vn -0.6243 -0.4679 0.6255 +vn -0.5755 -0.4313 0.6948 +vn -0.5995 -0.2744 0.7519 +vn -0.6252 -0.2165 0.7498 +vn -0.5834 -0.3078 0.7516 +vn -0.5342 -0.2810 0.7973 +vn -0.5502 -0.2477 0.7975 +vn -0.5759 -0.1898 0.7952 +vn -0.5759 -0.3224 0.7513 +vn -0.5270 -0.2950 0.7970 +vn -0.5622 -0.3458 0.7512 +vn -0.5145 -0.3165 0.7969 +vn -0.6006 -0.4980 0.6255 +vn -0.5536 -0.4590 0.6949 +vn -0.5755 -0.5268 0.6255 +vn -0.5304 -0.4856 0.6949 +vn -0.5458 -0.3711 0.7512 +vn -0.4995 -0.3396 0.7970 +vn -0.5282 -0.3959 0.7512 +vn -0.4834 -0.3623 0.7969 +vn -0.5489 -0.5544 0.6255 +vn -0.5059 -0.5111 0.6948 +vn -0.5081 -0.4213 0.7512 +vn -0.4650 -0.3856 0.7969 +vn -0.4868 -0.4457 0.7512 +vn -0.4455 -0.4079 0.7969 +vn -0.4644 -0.4691 0.7512 +vn -0.4250 -0.4293 0.7969 +vn -0.4408 -0.4913 0.7512 +vn -0.4034 -0.4496 0.7969 +vn -0.4162 -0.5123 0.7512 +vn -0.3809 -0.4689 0.7969 +vn -0.3905 -0.5321 0.7512 +vn -0.3574 -0.4870 0.7969 +vn -0.4247 -0.3521 0.8340 +vn -0.3874 -0.3212 0.8642 +vn -0.4026 -0.3018 0.8642 +vn -0.4415 -0.3309 0.8340 +vn -0.4069 -0.3726 0.8340 +vn -0.3711 -0.3398 0.8642 +vn -0.3882 -0.3921 0.8340 +vn -0.3540 -0.3576 0.8642 +vn -0.3684 -0.4106 0.8341 +vn -0.3360 -0.3745 0.8642 +vn -0.4562 -0.3102 0.8341 +vn -0.4161 -0.2829 0.8642 +vn -0.4285 -0.2638 0.8642 +vn -0.4699 -0.2891 0.8340 +vn -0.4814 -0.2693 0.8341 +vn -0.4391 -0.2456 0.8642 +vn -0.4455 -0.2328 0.8645 +vn -0.4881 -0.2560 0.8344 +vn -0.3790 -0.2578 0.8888 +vn -0.3450 -0.2347 0.9088 +vn -0.3553 -0.2188 0.9088 +vn -0.3904 -0.2404 0.8887 +vn -0.3668 -0.2749 0.8887 +vn -0.3339 -0.2502 0.9088 +vn -0.5041 -0.2226 0.8344 +vn -0.5299 -0.1648 0.8319 +vn -0.4615 -0.1994 0.8645 +vn -0.4873 -0.1417 0.8617 +vn -0.4000 -0.2237 0.8888 +vn -0.3642 -0.2035 0.9088 +vn -0.3701 -0.1917 0.9090 +vn -0.4062 -0.2114 0.8890 +vn -0.4221 -0.1780 0.8889 +vn -0.4480 -0.1205 0.8859 +vn -0.3860 -0.1583 0.9088 +vn -0.4118 -0.1009 0.9057 +vn -0.6507 -0.1514 0.7441 +vn -0.6775 -0.0709 0.7321 +vn -0.6017 -0.1248 0.7889 +vn -0.6292 -0.0448 0.7760 +vn -0.5560 -0.1000 0.8251 +vn -0.5841 -0.0204 0.8114 +vn -0.5136 -0.0771 0.8546 +vn -0.5423 0.0022 0.8402 +vn -0.8046 -0.0264 0.5932 +vn -0.8211 0.0976 0.5624 +vn -0.7532 0.0015 0.6578 +vn -0.7721 0.1240 0.6233 +vn -0.9115 0.1971 0.3610 +vn -0.8767 0.3680 0.3099 +vn -0.8679 0.2206 0.4450 +vn -0.8388 0.3882 0.3818 +vn -0.7035 0.0284 0.7101 +vn -0.7248 0.1495 0.6725 +vn -0.6565 0.0538 0.7524 +vn -0.6801 0.1734 0.7123 +vn -0.8228 0.2449 0.5128 +vn -0.7998 0.4089 0.4395 +vn -0.7780 0.2688 0.5679 +vn -0.7611 0.4291 0.4864 +vn -0.8047 0.5424 0.2415 +vn -0.6974 0.6983 0.1613 +vn -0.7149 0.6897 0.1149 +vn -0.8306 0.5296 0.1724 +vn -0.7748 0.5579 0.2974 +vn -0.6772 0.7085 0.1984 +vn -0.8259 0.4996 0.2614 +vn -0.9027 -0.0850 0.4218 +vn -0.9483 -0.1064 0.2991 +vn -0.8531 0.4878 0.1852 +vn -0.7947 0.5138 0.3233 +vn -0.8518 -0.0604 0.5204 +vn -0.7442 0.5738 0.3419 +vn -0.6567 0.7189 0.2279 +vn -0.7140 0.5893 0.3781 +vn -0.6364 0.7291 0.2518 +vn -0.7346 0.2919 0.6125 +vn -0.7238 0.4487 0.5242 +vn -0.6937 0.3135 0.6485 +vn -0.6886 0.4670 0.5548 +vn -0.7625 0.5292 0.3722 +vn -0.8004 -0.0352 0.5985 +vn -0.7303 0.5448 0.4122 +vn -0.7489 -0.0097 0.6626 +vn -0.6847 0.6043 0.4074 +vn -0.6169 0.7388 0.2712 +vn -0.6572 0.6182 0.4311 +vn -0.5985 0.7480 0.2869 +vn -0.6989 0.5601 0.4447 +vn -0.6990 0.0152 0.7149 +vn -0.6693 0.5747 0.4709 +vn -0.6518 0.0391 0.7574 +vn -0.6555 0.3337 0.6775 +vn -0.6557 0.4840 0.5794 +vn -0.6384 0.1957 0.7444 +vn -0.5998 0.2163 0.7703 +vn -0.6202 0.3523 0.7009 +vn -0.6254 0.4997 0.5993 +vn -0.6414 0.5887 0.4920 +vn -0.6077 0.0618 0.7918 +vn -0.5814 0.7565 0.2995 +vn -0.5656 0.7643 0.3098 +vn -0.6156 0.6019 0.5087 +vn -0.5669 0.0833 0.8196 +vn -0.6316 0.6312 0.4501 +vn -0.6079 0.6432 0.4655 +vn -0.5918 0.6144 0.5219 +vn -0.5294 0.1036 0.8420 +vn -0.5511 0.7715 0.3180 +vn -0.5377 0.7781 0.3247 +vn -0.5700 0.6261 0.5321 +vn -0.4951 0.1227 0.8601 +vn -0.5862 0.6542 0.4779 +vn -0.5975 0.5141 0.6154 +vn -0.5719 0.5273 0.6284 +vn -0.5662 0.6643 0.4880 +vn -0.5515 0.6361 0.5397 +vn -0.4662 0.1396 0.8736 +vn -0.5264 0.7838 0.3296 +vn -0.5168 0.7885 0.3335 +vn -0.5358 0.6454 0.5444 +vn -0.4418 0.1547 0.8837 +vn -0.5207 0.6543 0.5484 +vn -0.4183 0.1693 0.8924 +vn -0.5075 0.7930 0.3370 +vn -0.4993 0.7971 0.3396 +vn -0.5076 0.6620 0.5514 +vn -0.3979 0.1824 0.8991 +vn -0.5492 0.6729 0.4955 +vn -0.5502 0.5386 0.6382 +vn -0.5316 0.5481 0.6457 +vn -0.5348 0.6802 0.5013 +vn -0.5209 0.6871 0.5065 +vn -0.5138 0.5572 0.6523 +vn -0.4982 0.5653 0.6575 +vn -0.5087 0.6933 0.5104 +vn -0.4984 0.6985 0.5135 +vn -0.4925 0.8005 0.3416 +vn -0.4850 0.5720 0.6615 +vn -0.4726 0.5784 0.6649 +vn -0.4887 0.7033 0.5162 +vn -0.4860 0.8036 0.3435 +vn -0.4903 0.4205 0.7634 +vn -0.4576 0.2920 0.8398 +vn -0.4378 0.3026 0.8466 +vn -0.4722 0.4300 0.7695 +vn -0.5111 0.4096 0.7556 +vn -0.4804 0.2799 0.8312 +vn -0.4568 0.4381 0.7742 +vn -0.4209 0.3115 0.8519 +vn -0.4050 0.3199 0.8565 +vn -0.4423 0.4456 0.7783 +vn -0.5327 0.3983 0.7467 +vn -0.5041 0.2674 0.8212 +vn -0.5580 0.3850 0.7352 +vn -0.5317 0.2526 0.8084 +vn -0.5877 0.3693 0.7198 +vn -0.5643 0.2352 0.7913 +vn -0.4223 0.1797 0.8885 +vn -0.3881 0.0854 0.9176 +vn -0.3665 0.0971 0.9253 +vn -0.4013 0.1910 0.8958 +vn -0.4463 0.1668 0.8792 +vn -0.4128 0.0721 0.9079 +vn -0.4712 0.1535 0.8686 +vn -0.4385 0.0582 0.8968 +vn -0.5003 0.1378 0.8548 +vn -0.4685 0.0420 0.8825 +vn -0.5347 0.1194 0.8366 +vn -0.5039 0.0230 0.8635 +vn -0.5721 0.0993 0.8142 +vn -0.6127 0.0774 0.7865 +vn -0.4746 -0.0560 0.8784 +vn -0.4387 -0.0366 0.8979 +vn -0.4082 -0.0201 0.9127 +vn -0.3811 -0.0843 0.9207 +vn -0.3549 -0.0701 0.9323 +vn -0.3822 -0.0060 0.9241 +vn -0.3553 -0.1414 0.9240 +vn -0.3395 -0.1749 0.9242 +vn -0.3132 -0.1604 0.9360 +vn -0.3291 -0.1270 0.9357 +vn -0.3337 -0.1864 0.9241 +vn -0.3076 -0.1718 0.9359 +vn -0.3254 -0.2005 0.9241 +vn -0.2999 -0.1849 0.9359 +vn -0.3570 0.0076 0.9341 +vn -0.3296 -0.0564 0.9424 +vn -0.3074 -0.0444 0.9505 +vn -0.3351 0.0195 0.9420 +vn -0.3037 -0.1131 0.9460 +vn -0.2880 -0.1465 0.9464 +vn -0.2659 -0.1343 0.9546 +vn -0.2817 -0.1009 0.9542 +vn -0.2824 -0.1576 0.9463 +vn -0.2604 -0.1452 0.9545 +vn -0.2753 -0.1698 0.9462 +vn -0.2538 -0.1566 0.9545 +vn -0.3160 -0.2150 0.9241 +vn -0.2913 -0.1982 0.9359 +vn -0.3059 -0.2292 0.9241 +vn -0.2819 -0.2113 0.9359 +vn -0.3529 -0.2926 0.8887 +vn -0.3212 -0.2663 0.9088 +vn -0.3381 -0.3096 0.8887 +vn -0.3078 -0.2818 0.9088 +vn -0.2674 -0.1820 0.9462 +vn -0.2465 -0.1678 0.9545 +vn -0.2588 -0.1940 0.9462 +vn -0.2386 -0.1788 0.9545 +vn -0.2943 -0.2440 0.9240 +vn -0.2712 -0.2249 0.9359 +vn -0.2819 -0.2581 0.9241 +vn -0.2599 -0.2379 0.9359 +vn -0.2417 -0.1347 0.9609 +vn -0.2242 -0.1249 0.9665 +vn -0.2296 -0.1140 0.9666 +vn -0.2472 -0.1238 0.9610 +vn -0.2355 -0.1455 0.9609 +vn -0.2183 -0.1350 0.9665 +vn -0.2629 -0.0905 0.9606 +vn -0.2887 -0.0342 0.9568 +vn -0.2453 -0.0807 0.9661 +vn -0.2710 -0.0247 0.9623 +vn -0.3165 0.0295 0.9481 +vn -0.3482 0.1069 0.9313 +vn -0.2989 0.0390 0.9535 +vn -0.3309 0.1162 0.9365 +vn -0.2288 -0.1558 0.9609 +vn -0.2121 -0.1445 0.9665 +vn -0.2215 -0.1660 0.9609 +vn -0.2054 -0.1539 0.9665 +vn -0.2288 -0.0714 0.9709 +vn -0.2544 -0.0157 0.9670 +vn -0.2131 -0.1046 0.9714 +vn -0.1976 -0.0957 0.9756 +vn -0.2133 -0.0626 0.9750 +vn -0.2387 -0.0073 0.9711 +vn -0.2077 -0.1155 0.9713 +vn -0.1921 -0.1068 0.9755 +vn -0.2022 -0.1251 0.9713 +vn -0.1869 -0.1158 0.9755 +vn -0.3835 0.2005 0.9015 +vn -0.3668 0.2094 0.9064 +vn -0.2825 0.0479 0.9581 +vn -0.3147 0.1249 0.9409 +vn -0.2669 0.0562 0.9621 +vn -0.2995 0.1331 0.9448 +vn -0.3510 0.2178 0.9107 +vn -0.3901 0.3278 0.8604 +vn -0.3362 0.2257 0.9143 +vn -0.3761 0.3352 0.8638 +vn -0.4287 0.4527 0.7819 +vn -0.4609 0.5843 0.6679 +vn -0.4159 0.4593 0.7849 +vn -0.4499 0.5899 0.6705 +vn -0.2523 0.0641 0.9655 +vn -0.2851 0.1408 0.9481 +vn -0.2240 0.0007 0.9746 +vn -0.2101 0.0082 0.9776 +vn -0.2385 0.0716 0.9685 +vn -0.2715 0.1481 0.9510 +vn -0.4796 0.7079 0.5185 +vn -0.4799 0.8066 0.3450 +vn -0.4711 0.7121 0.5205 +vn -0.4742 0.8094 0.3464 +vn -0.3223 0.2332 0.9175 +vn -0.3629 0.3422 0.8667 +vn -0.3091 0.2402 0.9202 +vn -0.3504 0.3488 0.8692 +vn -0.4038 0.4656 0.7875 +vn -0.4396 0.5952 0.6727 +vn -0.3924 0.4716 0.7897 +vn -0.4298 0.6002 0.6745 +vn -0.4769 0.6830 0.5532 +vn -0.3506 0.2176 0.9109 +vn -0.3652 0.2060 0.9078 +vn -0.4864 0.6762 0.5533 +vn -0.4681 0.6898 0.5524 +vn -0.3372 0.2291 0.9131 +vn -0.4966 0.6693 0.5527 +vn -0.3809 0.1943 0.9040 +vn -0.4630 0.7162 0.5222 +vn -0.4688 0.8121 0.3475 +vn -0.4554 0.7200 0.5237 +vn -0.4637 0.8146 0.3485 +vn -0.4599 0.6964 0.5509 +vn -0.3248 0.2405 0.9147 +vn -0.4523 0.7030 0.5488 +vn -0.3134 0.2520 0.9156 +vn -0.4453 0.7096 0.5461 +vn -0.3030 0.2637 0.9158 +vn -0.4589 0.8169 0.3494 +vn -0.4544 0.8191 0.3501 +vn -0.4389 0.7161 0.5427 +vn -0.2935 0.2755 0.9154 +vn -0.4482 0.7236 0.5249 +vn -0.4206 0.6049 0.6762 +vn -0.4118 0.6094 0.6775 +vn -0.4414 0.7270 0.5260 +vn -0.4349 0.7302 0.5269 +vn -0.4501 0.8212 0.3507 +vn -0.4036 0.6136 0.6787 +vn -0.3958 0.6176 0.6797 +vn -0.4288 0.7332 0.5277 +vn -0.4460 0.8232 0.3512 +vn -0.3817 0.4771 0.7916 +vn -0.3386 0.3550 0.8714 +vn -0.3274 0.3609 0.8732 +vn -0.3715 0.4824 0.7932 +vn -0.3619 0.4875 0.7946 +vn -0.3169 0.3665 0.8748 +vn -0.3068 0.3718 0.8761 +vn -0.3527 0.4922 0.7958 +vn -0.2966 0.2469 0.9225 +vn -0.2586 0.1551 0.9535 +vn -0.2465 0.1616 0.9556 +vn -0.2849 0.2531 0.9245 +vn -0.2737 0.2591 0.9263 +vn -0.2350 0.1678 0.9574 +vn -0.2241 0.1736 0.9590 +vn -0.2631 0.2647 0.9277 +vn -0.2254 0.0786 0.9711 +vn -0.1969 0.0154 0.9803 +vn -0.1844 0.0221 0.9826 +vn -0.2131 0.0853 0.9733 +vn -0.2014 0.0916 0.9752 +vn -0.1726 0.0285 0.9846 +vn -0.1614 0.0345 0.9863 +vn -0.1903 0.0976 0.9769 +vn -0.2555 0.2689 0.9287 +vn -0.2996 0.3757 0.8770 +vn -0.2162 0.1779 0.9600 +vn -0.2128 0.1797 0.9604 +vn -0.2522 0.2706 0.9291 +vn -0.2965 0.3773 0.8773 +vn -0.1822 0.1019 0.9780 +vn -0.1533 0.0389 0.9874 +vn -0.1498 0.0408 0.9879 +vn -0.1788 0.1038 0.9784 +vn -0.1482 -0.0239 0.9887 +vn -0.1329 -0.0563 0.9895 +vn -0.1224 -0.0489 0.9913 +vn -0.1375 -0.0169 0.9904 +vn -0.1597 -0.0311 0.9867 +vn -0.1443 -0.0637 0.9875 +vn -0.3462 0.4957 0.7965 +vn -0.3901 0.6205 0.6803 +vn -0.3434 0.4972 0.7968 +vn -0.3877 0.6218 0.6805 +vn -0.1299 -0.0112 0.9915 +vn -0.1151 -0.0428 0.9924 +vn -0.1125 -0.0391 0.9929 +vn -0.1270 -0.0082 0.9919 +vn -0.4244 0.7355 0.5281 +vn -0.4431 0.8247 0.3514 +vn -0.4226 0.7365 0.5282 +vn -0.4419 0.8254 0.3515 +vn -0.4330 0.7228 0.5386 +vn -0.4277 0.7294 0.5339 +vn -0.2850 0.2875 0.9144 +vn -0.2773 0.2999 0.9128 +vn -0.4242 0.7352 0.5287 +vn -0.2729 0.3113 0.9103 +vn -0.4231 0.7391 0.5242 +vn -0.2724 0.3190 0.9078 +vn -0.3309 0.5031 0.7984 +vn -0.3772 0.6265 0.6820 +vn -0.2827 0.3841 0.8789 +vn -0.2578 0.3972 0.8808 +vn -0.3084 0.5146 0.8000 +vn -0.3582 0.6361 0.6834 +vn -0.4163 0.7449 0.5213 +vn -0.2610 0.3283 0.9078 +vn -0.4366 0.8275 0.3529 +vn -0.4271 0.8322 0.3537 +vn -0.4026 0.7516 0.5225 +vn -0.2374 0.3397 0.9101 +vn -0.4146 0.7399 0.5298 +vn -0.3999 0.7471 0.5309 +vn -0.3866 0.7598 0.5227 +vn -0.2103 0.3530 0.9117 +vn -0.4156 0.8375 0.3547 +vn -0.3824 0.7554 0.5321 +vn -0.3353 0.6473 0.6846 +vn -0.3024 0.6633 0.6846 +vn -0.3572 0.7674 0.5325 +vn -0.2814 0.5282 0.8012 +vn -0.2278 0.4126 0.8820 +vn -0.1849 0.4346 0.8815 +vn -0.2426 0.5476 0.8008 +vn -0.3239 0.7833 0.5306 +vn -0.2590 0.6845 0.6815 +vn -0.2050 0.7109 0.6728 +vn -0.2823 0.8031 0.5247 +vn -0.1915 0.5733 0.7967 +vn -0.1284 0.4636 0.8767 +vn -0.0582 0.4997 0.8643 +vn -0.1279 0.6052 0.7857 +vn -0.2311 0.8277 0.5114 +vn -0.1392 0.7433 0.6544 +vn -0.0644 0.7804 0.6220 +vn -0.1722 0.8562 0.4871 +vn -0.3165 0.8840 0.3441 +vn -0.2767 0.9029 0.3288 +vn -0.2512 0.8276 0.5020 +vn 0.0117 0.4582 0.8888 +vn -0.1958 0.8551 0.4801 +vn 0.1021 0.5010 0.8594 +vn -0.0512 0.6439 0.7634 +vn 0.0259 0.5430 0.8393 +vn 0.1206 0.5920 0.7968 +vn 0.0354 0.6878 0.7250 +vn 0.1279 0.7349 0.6660 +vn 0.0166 0.8207 0.5712 +vn 0.2209 0.6441 0.7324 +vn 0.3168 0.6943 0.6462 +vn 0.2163 0.7805 0.5866 +vn 0.0941 0.8598 0.5019 +vn 0.2951 0.5575 0.7759 +vn 0.3530 0.4798 0.8032 +vn 0.4567 0.5352 0.7106 +vn 0.3958 0.6109 0.6857 +vn 0.1899 0.5021 0.8437 +vn 0.2448 0.4223 0.8728 +vn 0.0900 0.4497 0.8886 +vn 0.1418 0.3675 0.9191 +vn 0.0011 0.4031 0.9152 +vn 0.0499 0.3188 0.9465 +vn -0.0735 0.3641 0.9285 +vn -0.0274 0.2779 0.9602 +vn -0.1334 0.3327 0.9335 +vn -0.0895 0.2450 0.9654 +vn 0.3980 0.4122 0.8196 +vn 0.4330 0.3542 0.8289 +vn 0.5394 0.4116 0.7346 +vn 0.5034 0.4689 0.7258 +vn 0.2880 0.3533 0.8901 +vn 0.3221 0.2945 0.8998 +vn -0.1791 0.3089 0.9341 +vn -0.1369 0.2199 0.9659 +vn -0.2110 0.2922 0.9328 +vn -0.1700 0.2024 0.9644 +vn 0.1831 0.2972 0.9371 +vn 0.2161 0.2375 0.9471 +vn 0.0895 0.2471 0.9648 +vn 0.1215 0.1866 0.9749 +vn 0.0106 0.2050 0.9787 +vn 0.0418 0.1438 0.9887 +vn -0.0528 0.1711 0.9838 +vn -0.0224 0.1093 0.9938 +vn -0.2375 0.2781 0.9307 +vn -0.1975 0.1877 0.9622 +vn -0.1012 0.1453 0.9842 +vn -0.0713 0.0830 0.9940 +vn -0.1351 0.1272 0.9826 +vn -0.1056 0.0646 0.9923 +vn -0.1632 0.1121 0.9802 +vn -0.1341 0.0492 0.9897 +vn 0.0653 0.0966 0.9932 +vn 0.0798 0.0666 0.9946 +vn 0.1600 0.1101 0.9810 +vn 0.1454 0.1399 0.9794 +vn 0.0008 0.0617 0.9981 +vn 0.0153 0.0315 0.9994 +vn -0.0970 -0.0297 0.9948 +vn -0.0684 -0.0140 0.9976 +vn -0.0827 0.0164 0.9964 +vn -0.0483 0.0351 0.9982 +vn -0.0339 0.0048 0.9994 +vn -0.0891 -0.0463 0.9949 +vn -0.0608 -0.0300 0.9977 +vn -0.1044 -0.0554 0.9930 +vn -0.0999 -0.0634 0.9930 +vn -0.0847 -0.0539 0.9949 +vn -0.0572 -0.0364 0.9977 +vn -0.0269 -0.0105 0.9996 +vn 0.0215 0.0175 0.9996 +vn -0.0241 -0.0154 0.9996 +vn 0.0231 0.0147 0.9996 +vn 0.0850 0.0541 0.9949 +vn 0.1640 0.0997 0.9814 +vn 0.0849 0.0541 0.9949 +vn 0.1619 0.1032 0.9814 +vn 0.2403 0.1912 0.9517 +vn 0.2551 0.1617 0.9533 +vn 0.3617 0.2195 0.9061 +vn 0.3468 0.2488 0.9043 +vn 0.2576 0.1538 0.9539 +vn 0.3627 0.2145 0.9069 +vn 0.2531 0.1615 0.9539 +vn 0.3554 0.2268 0.9068 +vn 0.4582 0.3090 0.8334 +vn 0.4733 0.2800 0.8352 +vn 0.5805 0.3381 0.7408 +vn 0.5651 0.3668 0.7390 +vn 0.4727 0.2781 0.8362 +vn 0.5784 0.3393 0.7418 +vn 0.4624 0.2953 0.8361 +vn 0.5652 0.3611 0.7417 +vn 0.0830 0.0571 0.9949 +vn 0.1582 0.1088 0.9814 +vn 0.0226 0.0155 0.9996 +vn 0.0218 0.0163 0.9996 +vn 0.0804 0.0603 0.9949 +vn 0.1534 0.1150 0.9814 +vn 0.6584 0.4173 0.6264 +vn 0.6322 0.4617 0.6223 +vn 0.6739 0.3888 0.6283 +vn 0.7476 0.4288 0.5072 +vn 0.7318 0.4573 0.5054 +vn 0.7051 0.5014 0.5014 +vn 0.2474 0.1701 0.9539 +vn 0.3474 0.2388 0.9068 +vn 0.2400 0.1799 0.9540 +vn 0.3371 0.2526 0.9069 +vn 0.6707 0.3927 0.6293 +vn 0.7434 0.4349 0.5081 +vn 0.6549 0.4186 0.6292 +vn 0.7257 0.4640 0.5080 +vn 0.4520 0.3108 0.8361 +vn 0.5526 0.3800 0.7418 +vn 0.4387 0.3288 0.8363 +vn 0.5365 0.4021 0.7420 +vn 0.5952 0.5183 0.6141 +vn 0.5469 0.5837 0.6002 +vn 0.6671 0.5577 0.4939 +vn 0.6172 0.6223 0.4815 +vn 0.4834 0.6576 0.5778 +vn 0.4002 0.7383 0.5429 +vn 0.5513 0.6949 0.4618 +vn 0.4642 0.7733 0.4319 +vn 0.7725 0.4796 0.4162 +vn 0.7453 0.5236 0.4128 +vn 0.7886 0.4513 0.4177 +vn 0.7993 0.4571 0.3901 +vn 0.7832 0.4853 0.3887 +vn 0.7557 0.5292 0.3857 +vn 0.7841 0.4586 0.4183 +vn 0.7946 0.4649 0.3905 +vn 0.7652 0.4894 0.4182 +vn 0.7754 0.4962 0.3905 +vn 0.7063 0.5796 0.4065 +vn 0.6549 0.6436 0.3960 +vn 0.7163 0.5852 0.3799 +vn 0.6643 0.6492 0.3704 +vn 0.7484 0.5147 0.4183 +vn 0.7584 0.5217 0.3906 +vn 0.7097 0.4881 0.5081 +vn 0.6891 0.5165 0.5083 +vn 0.7268 0.5447 0.4184 +vn 0.7366 0.5521 0.3906 +vn 0.5866 0.7153 0.3797 +vn 0.4962 0.7923 0.3550 +vn 0.5951 0.7207 0.3555 +vn 0.5035 0.7973 0.3328 +vn 0.2932 0.8204 0.4909 +vn 0.1614 0.8940 0.4180 +vn 0.3515 0.8519 0.3882 +vn 0.2115 0.9207 0.3280 +vn 0.3790 0.8687 0.3190 +vn 0.2331 0.9343 0.2696 +vn 0.3845 0.8732 0.2995 +vn 0.2365 0.9380 0.2535 +vn 0.0643 0.9762 0.2072 +vn 0.0495 0.9665 0.2518 +vn 0.0655 0.9786 0.1953 +vn 0.0102 0.9460 0.3241 +vn -0.1477 0.9652 0.2156 +vn -0.1862 0.9467 0.2629 +vn -0.0443 0.9191 0.3916 +vn 0.0019 0.9530 0.3028 +vn 0.4940 0.6969 0.5199 +vn 0.3863 0.6432 0.6611 +vn -0.0547 0.9245 0.3772 +vn 0.6992 0.5797 0.4184 +vn 0.7087 0.5876 0.3906 +vn 0.6630 0.5497 0.5083 +vn 0.6352 0.5815 0.5083 +vn 0.6699 0.6133 0.4184 +vn 0.6790 0.6216 0.3906 +vn 0.6404 0.4404 0.6292 +vn 0.6218 0.4660 0.6294 +vn 0.5982 0.4960 0.6294 +vn 0.5161 0.4279 0.7420 +vn 0.4945 0.4527 0.7420 +vn 0.5731 0.5247 0.6294 +vn 0.4221 0.3500 0.8363 +vn 0.3243 0.2689 0.9069 +vn 0.3107 0.2844 0.9070 +vn 0.4044 0.3702 0.8363 +vn 0.6390 0.6454 0.4184 +vn 0.6477 0.6542 0.3906 +vn 0.6059 0.6120 0.5083 +vn 0.5751 0.6410 0.5083 +vn 0.6066 0.6760 0.4184 +vn 0.6148 0.6852 0.3906 +vn 0.5467 0.5522 0.6294 +vn 0.4717 0.4764 0.7420 +vn 0.4477 0.4990 0.7420 +vn 0.5189 0.5784 0.6294 +vn 0.5727 0.7050 0.4184 +vn 0.5804 0.7145 0.3906 +vn 0.5430 0.6685 0.5083 +vn 0.5095 0.6943 0.5083 +vn 0.5374 0.7322 0.4184 +vn 0.5447 0.7421 0.3906 +vn 0.4899 0.6031 0.6294 +vn 0.4227 0.5204 0.7420 +vn 0.3967 0.5405 0.7420 +vn 0.4598 0.6264 0.6294 +vn 0.3858 0.3896 0.8363 +vn 0.2964 0.2993 0.9070 +vn 0.2813 0.3135 0.9070 +vn 0.3662 0.4081 0.8363 +vn 0.3457 0.4256 0.8363 +vn 0.2656 0.3270 0.9069 +vn 0.2492 0.3396 0.9070 +vn 0.3244 0.4420 0.8363 +vn 0.5008 0.7577 0.4184 +vn 0.5076 0.7680 0.3906 +vn 0.4749 0.7185 0.5082 +vn 0.4390 0.7409 0.5083 +vn 0.4630 0.7814 0.4184 +vn 0.4693 0.7919 0.3906 +vn 0.4285 0.6483 0.6294 +vn 0.3697 0.5593 0.7420 +vn 0.3418 0.5768 0.7420 +vn 0.3961 0.6685 0.6294 +vn 0.4241 0.8032 0.4184 +vn 0.4299 0.8140 0.3906 +vn 0.4022 0.7615 0.5083 +vn 0.3643 0.7804 0.5083 +vn 0.3842 0.8230 0.4184 +vn 0.3894 0.8341 0.3906 +vn 0.3629 0.6871 0.6294 +vn 0.3131 0.5928 0.7420 +vn 0.2836 0.6075 0.7420 +vn 0.3287 0.7041 0.6294 +vn 0.3023 0.4574 0.8363 +vn 0.2323 0.3514 0.9070 +vn 0.2147 0.3624 0.9070 +vn 0.2795 0.4717 0.8363 +vn 0.2560 0.4848 0.8363 +vn 0.1967 0.3725 0.9070 +vn 0.1782 0.3817 0.9070 +vn 0.2319 0.4968 0.8363 +vn 0.3504 0.8380 0.4183 +vn 0.3552 0.8493 0.3906 +vn 0.3323 0.7946 0.5081 +vn 0.3054 0.8054 0.5080 +vn 0.3222 0.8493 0.4182 +vn 0.3267 0.8607 0.3905 +vn 0.2998 0.7171 0.6292 +vn 0.2587 0.6188 0.7417 +vn 0.2376 0.6273 0.7417 +vn 0.2755 0.7268 0.6292 +vn 0.2882 0.8614 0.4182 +vn 0.2923 0.8730 0.3904 +vn 0.2734 0.8168 0.5081 +vn 0.2667 0.8195 0.5072 +vn 0.2802 0.8643 0.4177 +vn 0.2837 0.8759 0.3902 +vn 0.3112 0.8544 0.4162 +vn 0.3598 0.8367 0.4129 +vn 0.3632 0.8480 0.3859 +vn 0.3146 0.8659 0.3889 +vn 0.2977 0.8099 0.5054 +vn 0.3464 0.7928 0.5014 +vn 0.2469 0.7369 0.6293 +vn 0.2136 0.6357 0.7418 +vn 0.2121 0.6374 0.7408 +vn 0.2426 0.7392 0.6283 +vn 0.2736 0.7299 0.6264 +vn 0.3224 0.7135 0.6221 +vn 0.2432 0.6283 0.7389 +vn 0.2923 0.6124 0.7346 +vn 0.4227 0.8099 0.4066 +vn 0.4959 0.7727 0.3963 +vn 0.4993 0.7830 0.3710 +vn 0.4273 0.8223 0.3758 +vn 0.4093 0.7672 0.4939 +vn 0.4827 0.7316 0.4814 +vn 0.1753 0.5196 0.8362 +vn 0.1356 0.3990 0.9069 +vn 0.1408 0.3990 0.9061 +vn 0.1771 0.5206 0.8352 +vn 0.1942 0.5131 0.8361 +vn 0.1492 0.3943 0.9068 +vn 0.5800 0.7205 0.3800 +vn 0.6738 0.6478 0.3554 +vn 0.6772 0.6558 0.3337 +vn 0.5834 0.7298 0.3563 +vn 0.5673 0.6819 0.4618 +vn 0.6618 0.6127 0.4319 +vn 0.3855 0.6889 0.6138 +vn 0.4594 0.6551 0.5998 +vn 0.3558 0.5888 0.7258 +vn 0.4303 0.5567 0.7106 +vn 0.2085 0.5118 0.8334 +vn 0.2579 0.4965 0.8289 +vn 0.1723 0.3905 0.9043 +vn 0.2222 0.3756 0.8998 +vn 0.7726 0.5486 0.3195 +vn 0.8667 0.4194 0.2701 +vn 0.8695 0.4233 0.2547 +vn 0.7758 0.5548 0.3006 +vn 0.7619 0.5185 0.3882 +vn 0.8578 0.3957 0.3281 +vn 0.5448 0.6082 0.5773 +vn 0.6408 0.5434 0.5423 +vn 0.5169 0.5127 0.6856 +vn 0.6147 0.4524 0.6461 +vn 0.9422 0.2628 0.2078 +vn 0.9443 0.2642 0.1964 +vn 0.9358 0.2466 0.2521 +vn 0.7431 0.4556 0.4902 +vn 0.8421 0.3419 0.4172 +vn 0.7197 0.3718 0.5864 +vn 0.8223 0.2684 0.5017 +vn 0.9239 0.2047 0.3233 +vn 0.9751 0.0542 0.2150 +vn 0.9087 0.1452 0.3915 +vn 0.9648 0.0120 0.2628 +vn 0.9210 0.2245 0.3185 +vn 0.5392 0.6541 0.5305 +vn 0.9032 0.1598 0.3984 +vn 0.5105 0.5334 0.6745 +vn 0.6932 0.2762 0.6657 +vn 0.8000 0.1849 0.5708 +vn 0.5852 0.3485 0.7322 +vn 0.5547 0.2395 0.7968 +vn 0.6659 0.1757 0.7250 +vn 0.7770 0.0969 0.6220 +vn 0.4853 0.4034 0.7757 +vn 0.3973 0.4440 0.8031 +vn 0.3631 0.3262 0.8728 +vn 0.4525 0.2888 0.8437 +vn 0.6407 0.0818 0.7635 +vn 0.7560 0.0161 0.6544 +vn 0.5261 0.1367 0.8394 +vn 0.5009 0.0454 0.8643 +vn 0.6185 -0.0012 0.7858 +vn 0.7378 -0.0550 0.6728 +vn 0.4216 0.1803 0.8887 +vn 0.3306 0.2141 0.9192 +vn 0.3018 0.1142 0.9465 +vn 0.3942 0.0837 0.9152 +vn 0.8575 -0.0566 0.5113 +vn 0.9302 -0.1287 0.3438 +vn 0.9406 -0.0859 0.3286 +vn 0.8734 0.0069 0.4870 +vn 0.8439 -0.1119 0.5247 +vn 0.9214 -0.1653 0.3516 +vn 0.8330 -0.1567 0.5306 +vn 0.9146 -0.1944 0.3547 +vn 0.7230 -0.1135 0.6815 +vn 0.7111 -0.1601 0.6846 +vn 0.8243 -0.1924 0.5325 +vn 0.9090 -0.2176 0.3554 +vn 0.6003 -0.0701 0.7967 +vn 0.4800 -0.0308 0.8767 +vn 0.4632 -0.0920 0.8815 +vn 0.5856 -0.1253 0.8008 +vn 0.8178 -0.2196 0.5320 +vn 0.7022 -0.1956 0.6846 +vn 0.6960 -0.2202 0.6834 +vn 0.8132 -0.2384 0.5309 +vn 0.9049 -0.2353 0.3547 +vn 0.9020 -0.2475 0.3537 +vn 0.3713 0.0026 0.9285 +vn 0.2776 0.0301 0.9602 +vn 0.2581 -0.0374 0.9654 +vn 0.3529 -0.0624 0.9336 +vn 0.5746 -0.1673 0.8012 +vn 0.4504 -0.1386 0.8820 +vn 0.4415 -0.1710 0.8808 +vn 0.5669 -0.1965 0.8000 +vn 0.3390 -0.1121 0.9341 +vn 0.2433 -0.0889 0.9659 +vn 0.2329 -0.1250 0.9644 +vn 0.3292 -0.1467 0.9328 +vn 0.1984 0.0524 0.9787 +vn 0.1321 0.0703 0.9887 +vn 0.1115 0.0005 0.9938 +vn 0.1783 -0.0166 0.9838 +vn 0.2235 0.1382 0.9649 +vn 0.1577 0.1572 0.9749 +vn 0.1629 -0.0693 0.9842 +vn 0.0958 -0.0528 0.9940 +vn 0.0848 -0.0901 0.9923 +vn 0.1521 -0.1061 0.9827 +vn 0.3209 -0.1755 0.9307 +vn 0.4325 -0.1970 0.8799 +vn 0.2242 -0.1549 0.9622 +vn 0.2195 -0.1715 0.9604 +vn 0.3165 -0.1914 0.9291 +vn 0.4300 -0.2129 0.8773 +vn 0.2533 0.2401 0.9371 +vn 0.1881 0.2602 0.9471 +vn 0.2867 0.3544 0.8901 +vn 0.5602 -0.2209 0.7984 +vn 0.6905 -0.2409 0.6820 +vn 0.5570 -0.2342 0.7968 +vn 0.6862 -0.2510 0.6828 +vn 0.8092 -0.2542 0.5297 +vn 0.8994 -0.2579 0.3529 +vn 0.8074 -0.2627 0.5282 +vn 0.8984 -0.2634 0.3515 +vn 0.1431 -0.1368 0.9802 +vn 0.0757 -0.1212 0.9897 +vn 0.0706 -0.1383 0.9879 +vn 0.1382 -0.1537 0.9784 +vn 0.3155 -0.1950 0.9287 +vn 0.4291 -0.2163 0.8770 +vn 0.2184 -0.1751 0.9600 +vn 0.2158 -0.1837 0.9590 +vn 0.3130 -0.2033 0.9277 +vn 0.4268 -0.2241 0.8761 +vn 0.1371 -0.1575 0.9780 +vn 0.0695 -0.1421 0.9874 +vn 0.0669 -0.1509 0.9863 +vn 0.1345 -0.1662 0.9769 +vn 0.5561 -0.2372 0.7965 +vn 0.6847 -0.2531 0.6834 +vn 0.5540 -0.2444 0.7958 +vn 0.6856 -0.2608 0.6797 +vn 0.7951 -0.2534 0.5510 +vn 0.3342 -0.1800 0.9251 +vn 0.3409 -0.1541 0.9274 +vn 0.7991 -0.2376 0.5523 +vn 0.7902 -0.2615 0.5543 +vn 0.3269 -0.1931 0.9251 +vn 0.8041 -0.2194 0.5525 +vn 0.3487 -0.1244 0.9290 +vn 0.3597 -0.0817 0.9295 +vn 0.8114 -0.1932 0.5517 +vn 0.8069 -0.2647 0.5281 +vn 0.8980 -0.2647 0.3514 +vn 0.8055 -0.2695 0.5277 +vn 0.8972 -0.2679 0.3512 +vn 0.8038 -0.2761 0.5269 +vn 0.8960 -0.2723 0.3507 +vn 0.6833 -0.2693 0.6787 +vn 0.6809 -0.2782 0.6775 +vn 0.8020 -0.2830 0.5260 +vn 0.8949 -0.2769 0.3501 +vn 0.5513 -0.2543 0.7946 +vn 0.4236 -0.2350 0.8748 +vn 0.4204 -0.2465 0.8732 +vn 0.5483 -0.2648 0.7932 +vn 0.3097 -0.2148 0.9263 +vn 0.2123 -0.1956 0.9574 +vn 0.2087 -0.2081 0.9556 +vn 0.3061 -0.2269 0.9246 +vn 0.5452 -0.2758 0.7916 +vn 0.6782 -0.2877 0.6762 +vn 0.4169 -0.2586 0.8714 +vn 0.4132 -0.2715 0.8692 +vn 0.5420 -0.2875 0.7897 +vn 0.6755 -0.2977 0.6746 +vn 0.1309 -0.1783 0.9752 +vn 0.0632 -0.1631 0.9846 +vn 0.0594 -0.1760 0.9826 +vn 0.1271 -0.1911 0.9733 +vn 0.3024 -0.2398 0.9225 +vn 0.2048 -0.2214 0.9534 +vn 0.2006 -0.2353 0.9510 +vn 0.2984 -0.2533 0.9202 +vn 0.1232 -0.2045 0.9711 +vn 0.0554 -0.1896 0.9803 +vn 0.0511 -0.2039 0.9777 +vn 0.1189 -0.2187 0.9685 +vn 0.0069 -0.1500 0.9887 +vn -0.0277 -0.1417 0.9895 +vn -0.0327 -0.1543 0.9875 +vn 0.0022 -0.1627 0.9867 +vn 0.0115 -0.1380 0.9904 +vn -0.0227 -0.1298 0.9913 +vn -0.0026 -0.1761 0.9844 +vn -0.0376 -0.1677 0.9851 +vn -0.0427 -0.1820 0.9824 +vn -0.0074 -0.1904 0.9817 +vn 0.1145 -0.2338 0.9655 +vn 0.1963 -0.2501 0.9481 +vn 0.0466 -0.2191 0.9746 +vn 0.0418 -0.2352 0.9711 +vn 0.1097 -0.2497 0.9621 +vn 0.1916 -0.2658 0.9448 +vn 0.0155 -0.1295 0.9915 +vn -0.0181 -0.1215 0.9924 +vn 0.0179 -0.1260 0.9919 +vn -0.0150 -0.1181 0.9929 +vn 0.2943 -0.2676 0.9175 +vn 0.4093 -0.2850 0.8667 +vn 0.2898 -0.2828 0.9143 +vn 0.4052 -0.2994 0.8638 +vn 0.0236 -0.1088 0.9938 +vn -0.0091 -0.1010 0.9948 +vn 0.0330 -0.0776 0.9964 +vn 0.0004 -0.0698 0.9976 +vn -0.0419 -0.1381 0.9895 +vn -0.0462 -0.1509 0.9875 +vn -0.0378 -0.1260 0.9913 +vn -0.0456 -0.1234 0.9913 +vn -0.0498 -0.1355 0.9895 +vn -0.0543 -0.1482 0.9875 +vn 0.0442 -0.0401 0.9982 +vn 0.0117 -0.0323 0.9994 +vn 0.0601 0.0135 0.9981 +vn 0.0278 0.0214 0.9994 +vn -0.0346 -0.1172 0.9925 +vn -0.0329 -0.1135 0.9930 +vn -0.0416 -0.1108 0.9930 +vn -0.0427 -0.1146 0.9925 +vn -0.0272 -0.0967 0.9949 +vn -0.0170 -0.0657 0.9977 +vn -0.0239 -0.0634 0.9977 +vn -0.0354 -0.0940 0.9949 +vn 0.0810 0.0837 0.9932 +vn 0.0489 0.0917 0.9946 +vn 0.1070 0.1710 0.9794 +vn 0.0751 0.1792 0.9809 +vn -0.0048 -0.0285 0.9996 +vn 0.0127 0.0246 0.9996 +vn 0.0096 0.0256 0.9996 +vn -0.0101 -0.0268 0.9996 +vn -0.0387 -0.0926 0.9950 +vn -0.0455 -0.1092 0.9930 +vn -0.0261 -0.0625 0.9977 +vn -0.0287 -0.0614 0.9977 +vn -0.0425 -0.0910 0.9949 +vn -0.0500 -0.1072 0.9930 +vn -0.0110 -0.0264 0.9996 +vn 0.0105 0.0253 0.9996 +vn 0.0115 0.0246 0.9996 +vn -0.0121 -0.0260 0.9996 +vn 0.0355 0.0943 0.9949 +vn 0.0640 0.1809 0.9814 +vn 0.0679 0.1796 0.9814 +vn 0.0356 0.0942 0.9949 +vn -0.0470 -0.1129 0.9925 +vn -0.0505 -0.1215 0.9913 +vn -0.0517 -0.1108 0.9925 +vn -0.0557 -0.1192 0.9913 +vn 0.0388 0.0930 0.9949 +vn 0.0740 0.1772 0.9814 +vn 0.0811 0.1737 0.9814 +vn 0.0425 0.0911 0.9949 +vn 0.1157 0.2770 0.9539 +vn 0.1626 0.3889 0.9068 +vn 0.1269 0.2717 0.9540 +vn 0.1062 0.2808 0.9539 +vn 0.1378 0.2745 0.9517 +vn 0.1061 0.2828 0.9533 +vn 0.3219 0.4741 0.8195 +vn 0.0977 0.2837 0.9539 +vn 0.2116 0.5061 0.8361 +vn 0.1400 0.2652 0.9540 +vn 0.0895 0.1696 0.9814 +vn 0.1529 0.2580 0.9540 +vn 0.0977 0.1650 0.9814 +vn 0.0469 0.0889 0.9949 +vn 0.0127 0.0241 0.9996 +vn 0.0512 0.0865 0.9949 +vn 0.0139 0.0234 0.9996 +vn 0.1654 0.2502 0.9540 +vn 0.1057 0.1600 0.9814 +vn 0.1774 0.2418 0.9540 +vn 0.1134 0.1546 0.9814 +vn -0.0134 -0.0254 0.9996 +vn -0.0317 -0.0600 0.9977 +vn -0.0146 -0.0247 0.9996 +vn -0.0346 -0.0583 0.9977 +vn 0.0554 0.0839 0.9949 +vn 0.0150 0.0227 0.9996 +vn 0.0595 0.0810 0.9949 +vn 0.0161 0.0219 0.9996 +vn 0.1891 0.2328 0.9540 +vn 0.1209 0.1488 0.9814 +vn 0.2003 0.2232 0.9540 +vn 0.1281 0.1427 0.9814 +vn -0.0469 -0.0888 0.9949 +vn -0.0552 -0.1046 0.9930 +vn -0.0512 -0.0864 0.9949 +vn -0.0603 -0.1017 0.9930 +vn -0.0158 -0.0239 0.9996 +vn -0.0374 -0.0566 0.9977 +vn -0.0170 -0.0231 0.9996 +vn -0.0401 -0.0547 0.9977 +vn 0.0634 0.0780 0.9949 +vn 0.0172 0.0211 0.9996 +vn 0.0671 0.0748 0.9949 +vn 0.0182 0.0202 0.9996 +vn 0.2110 0.2131 0.9540 +vn 0.1349 0.1363 0.9814 +vn 0.2212 0.2025 0.9540 +vn 0.1414 0.1295 0.9814 +vn 0.2308 0.1914 0.9540 +vn 0.1476 0.1224 0.9814 +vn 0.0707 0.0714 0.9949 +vn 0.0191 0.0193 0.9996 +vn 0.0742 0.0679 0.9949 +vn 0.0201 0.0184 0.9996 +vn -0.0181 -0.0223 0.9996 +vn -0.0427 -0.0526 0.9977 +vn -0.0192 -0.0214 0.9996 +vn -0.0453 -0.0505 0.9977 +vn 0.0774 0.0642 0.9949 +vn 0.0209 0.0174 0.9996 +vn -0.0202 -0.0204 0.9996 +vn -0.0477 -0.0482 0.9977 +vn -0.0212 -0.0194 0.9996 +vn -0.0500 -0.0458 0.9977 +vn -0.0221 -0.0183 0.9996 +vn -0.0522 -0.0433 0.9977 +vn -0.0230 -0.0172 0.9996 +vn -0.0543 -0.0407 0.9977 +vn -0.0235 -0.0162 0.9996 +vn -0.0558 -0.0384 0.9977 +vn -0.0707 -0.0714 0.9949 +vn -0.0832 -0.0840 0.9930 +vn -0.0790 -0.0880 0.9930 +vn -0.0671 -0.0748 0.9949 +vn -0.0741 -0.0678 0.9949 +vn -0.0872 -0.0799 0.9930 +vn -0.0827 -0.0568 0.9950 +vn -0.0975 -0.0670 0.9930 +vn -0.0946 -0.0709 0.9930 +vn -0.0804 -0.0602 0.9949 +vn -0.0773 -0.0641 0.9949 +vn -0.0910 -0.0755 0.9930 +vn -0.1009 -0.0692 0.9925 +vn -0.1086 -0.0743 0.9913 +vn -0.1053 -0.0789 0.9913 +vn -0.0979 -0.0733 0.9925 +vn -0.1034 -0.0653 0.9925 +vn -0.1114 -0.0700 0.9913 +vn -0.0941 -0.0781 0.9925 +vn -0.1013 -0.0840 0.9913 +vn -0.0970 -0.0889 0.9913 +vn -0.0902 -0.0826 0.9925 +vn -0.0860 -0.0869 0.9925 +vn -0.0926 -0.0935 0.9913 +vn -0.0879 -0.0979 0.9913 +vn -0.0817 -0.0910 0.9925 +vn -0.0633 -0.0780 0.9949 +vn -0.0746 -0.0918 0.9930 +vn -0.0700 -0.0953 0.9930 +vn -0.0594 -0.0810 0.9949 +vn -0.0771 -0.0949 0.9925 +vn -0.0830 -0.1021 0.9913 +vn -0.0779 -0.1061 0.9913 +vn -0.0724 -0.0986 0.9925 +vn -0.0554 -0.0838 0.9949 +vn -0.0652 -0.0987 0.9930 +vn -0.0674 -0.1020 0.9925 +vn -0.0726 -0.1098 0.9913 +vn -0.0671 -0.1132 0.9913 +vn -0.0623 -0.1052 0.9925 +vn -0.0571 -0.1081 0.9925 +vn -0.0614 -0.1164 0.9913 +vn -0.0796 -0.1204 0.9895 +vn -0.0870 -0.1317 0.9875 +vn -0.0805 -0.1358 0.9875 +vn -0.0736 -0.1242 0.9895 +vn -0.0854 -0.1164 0.9895 +vn -0.0934 -0.1273 0.9875 +vn -0.0553 -0.1333 0.9895 +vn -0.0604 -0.1458 0.9875 +vn -0.0611 -0.1308 0.9895 +vn -0.0668 -0.1430 0.9875 +vn -0.0674 -0.1277 0.9895 +vn -0.0737 -0.1396 0.9875 +vn -0.0506 -0.1644 0.9851 +vn -0.0552 -0.1787 0.9824 +vn -0.0590 -0.1616 0.9851 +vn -0.0640 -0.1758 0.9823 +vn -0.0658 -0.1590 0.9851 +vn -0.0715 -0.1729 0.9823 +vn -0.0728 -0.1559 0.9851 +vn -0.0792 -0.1695 0.9823 +vn -0.0804 -0.1522 0.9851 +vn -0.0874 -0.1655 0.9823 +vn -0.0877 -0.1480 0.9851 +vn -0.0954 -0.1610 0.9823 +vn -0.0910 -0.1121 0.9895 +vn -0.0995 -0.1225 0.9875 +vn -0.0964 -0.1075 0.9895 +vn -0.1054 -0.1175 0.9875 +vn -0.0949 -0.1436 0.9851 +vn -0.1032 -0.1561 0.9823 +vn -0.1018 -0.1387 0.9851 +vn -0.1107 -0.1508 0.9823 +vn -0.1016 -0.1026 0.9895 +vn -0.1111 -0.1122 0.9875 +vn -0.1065 -0.0975 0.9895 +vn -0.1164 -0.1066 0.9875 +vn -0.1085 -0.1336 0.9851 +vn -0.1180 -0.1452 0.9823 +vn -0.1149 -0.1281 0.9851 +vn -0.1250 -0.1393 0.9823 +vn -0.1111 -0.0921 0.9895 +vn -0.1215 -0.1007 0.9875 +vn -0.1155 -0.0866 0.9895 +vn -0.1263 -0.0947 0.9875 +vn -0.1211 -0.1223 0.9851 +vn -0.1316 -0.1330 0.9823 +vn -0.1269 -0.1162 0.9851 +vn -0.1380 -0.1264 0.9823 +vn -0.1119 -0.1694 0.9792 +vn -0.1212 -0.1834 0.9755 +vn -0.1121 -0.1891 0.9755 +vn -0.1035 -0.1747 0.9792 +vn -0.1201 -0.1637 0.9792 +vn -0.1301 -0.1772 0.9755 +vn -0.1280 -0.1576 0.9792 +vn -0.1386 -0.1707 0.9755 +vn -0.1356 -0.1511 0.9792 +vn -0.1468 -0.1636 0.9755 +vn -0.0948 -0.1795 0.9792 +vn -0.1027 -0.1944 0.9755 +vn -0.0930 -0.1992 0.9755 +vn -0.0859 -0.1840 0.9792 +vn -0.1325 -0.1098 0.9851 +vn -0.1440 -0.1194 0.9823 +vn -0.1377 -0.1032 0.9851 +vn -0.1497 -0.1122 0.9823 +vn -0.0776 -0.1876 0.9792 +vn -0.0839 -0.2032 0.9755 +vn -0.0750 -0.2067 0.9755 +vn -0.0694 -0.1908 0.9792 +vn -0.1192 -0.0815 0.9895 +vn -0.1303 -0.0890 0.9875 +vn -0.1224 -0.0766 0.9895 +vn -0.1339 -0.0835 0.9875 +vn -0.1077 -0.0578 0.9925 +vn -0.1156 -0.0627 0.9913 +vn -0.1266 -0.0693 0.9895 +vn -0.1382 -0.0760 0.9875 +vn -0.1421 -0.0970 0.9851 +vn -0.1546 -0.1055 0.9823 +vn -0.1461 -0.0909 0.9851 +vn -0.1590 -0.0987 0.9823 +vn -0.1719 -0.0385 0.9844 +vn -0.1564 -0.0713 0.9851 +vn -0.1849 -0.0462 0.9817 +vn -0.1693 -0.0791 0.9824 +vn -0.1506 -0.0831 0.9851 +vn -0.1636 -0.0906 0.9824 +vn -0.1979 -0.0541 0.9787 +vn -0.1830 -0.0872 0.9792 +vn -0.1775 -0.0985 0.9792 +vn -0.1725 -0.1070 0.9792 +vn -0.1677 -0.1144 0.9792 +vn -0.1817 -0.1238 0.9755 +vn -0.1759 -0.1319 0.9755 +vn -0.1625 -0.1218 0.9792 +vn -0.1964 -0.1338 0.9713 +vn -0.1902 -0.1426 0.9713 +vn -0.1563 -0.1296 0.9792 +vn -0.1693 -0.1403 0.9755 +vn -0.1622 -0.1485 0.9755 +vn -0.1497 -0.1371 0.9792 +vn -0.1830 -0.1517 0.9713 +vn -0.1976 -0.1638 0.9665 +vn -0.1893 -0.1733 0.9665 +vn -0.1753 -0.1605 0.9713 +vn -0.2131 -0.1767 0.9609 +vn -0.2296 -0.1903 0.9545 +vn -0.2200 -0.2014 0.9545 +vn -0.2042 -0.1869 0.9609 +vn -0.1428 -0.1443 0.9792 +vn -0.1547 -0.1562 0.9755 +vn -0.1672 -0.1689 0.9713 +vn -0.1806 -0.1824 0.9665 +vn -0.1714 -0.1910 0.9665 +vn -0.1588 -0.1769 0.9713 +vn -0.1499 -0.1845 0.9713 +vn -0.1618 -0.1992 0.9665 +vn -0.1519 -0.2069 0.9665 +vn -0.1406 -0.1916 0.9713 +vn -0.1947 -0.1967 0.9609 +vn -0.2098 -0.2119 0.9545 +vn -0.1992 -0.2220 0.9545 +vn -0.1849 -0.2060 0.9609 +vn -0.1745 -0.2149 0.9609 +vn -0.1880 -0.2315 0.9545 +vn -0.1764 -0.2404 0.9545 +vn -0.1638 -0.2232 0.9609 +vn -0.1311 -0.1983 0.9713 +vn -0.1415 -0.2141 0.9665 +vn -0.1308 -0.2208 0.9665 +vn -0.1212 -0.2045 0.9713 +vn -0.1526 -0.2309 0.9609 +vn -0.1644 -0.2488 0.9545 +vn -0.1520 -0.2566 0.9545 +vn -0.1411 -0.2381 0.9609 +vn -0.1110 -0.2102 0.9713 +vn -0.1199 -0.2270 0.9665 +vn -0.1086 -0.2326 0.9665 +vn -0.1006 -0.2154 0.9713 +vn -0.1293 -0.2448 0.9609 +vn -0.1393 -0.2637 0.9545 +vn -0.1261 -0.2702 0.9545 +vn -0.1171 -0.2508 0.9609 +vn -0.0907 -0.2197 0.9713 +vn -0.0979 -0.2372 0.9665 +vn -0.0873 -0.2414 0.9665 +vn -0.0810 -0.2235 0.9713 +vn -0.1056 -0.2559 0.9609 +vn -0.1137 -0.2757 0.9545 +vn -0.1013 -0.2805 0.9545 +vn -0.0941 -0.2603 0.9609 +vn -0.1511 -0.2860 0.9462 +vn -0.1645 -0.3116 0.9359 +vn -0.1490 -0.3193 0.9359 +vn -0.1368 -0.2931 0.9462 +vn -0.1649 -0.2783 0.9462 +vn -0.1796 -0.3031 0.9359 +vn -0.1233 -0.2990 0.9462 +vn -0.1343 -0.3257 0.9359 +vn -0.1195 -0.3314 0.9359 +vn -0.1098 -0.3043 0.9462 +vn -0.0824 -0.2642 0.9609 +vn -0.0763 -0.2450 0.9665 +vn -0.0888 -0.2846 0.9545 +vn -0.0769 -0.2878 0.9546 +vn -0.0705 -0.2673 0.9610 +vn -0.0644 -0.2481 0.9666 +vn -0.1784 -0.2699 0.9462 +vn -0.1943 -0.2939 0.9359 +vn -0.1914 -0.2608 0.9462 +vn -0.2085 -0.2840 0.9359 +vn -0.0706 -0.2269 0.9714 +vn -0.0652 -0.2099 0.9755 +vn -0.0586 -0.2300 0.9714 +vn -0.0531 -0.2130 0.9756 +vn -0.2040 -0.2511 0.9462 +vn -0.2221 -0.2735 0.9359 +vn -0.2160 -0.2408 0.9462 +vn -0.2353 -0.2622 0.9359 +vn -0.0601 -0.1939 0.9792 +vn -0.0478 -0.1970 0.9792 +vn -0.0124 -0.2055 0.9786 +vn -0.0176 -0.2216 0.9750 +vn -0.0231 -0.2386 0.9708 +vn 0.0367 -0.2522 0.9670 +vn -0.0288 -0.2567 0.9661 +vn 0.0314 -0.2703 0.9623 +vn -0.0348 -0.2759 0.9606 +vn 0.0256 -0.2896 0.9568 +vn -0.0411 -0.2964 0.9542 +vn 0.1047 -0.2667 0.9581 +vn 0.1867 -0.2825 0.9409 +vn 0.0994 -0.2846 0.9535 +vn 0.0937 -0.3037 0.9482 +vn 0.2851 -0.2990 0.9107 +vn 0.4008 -0.3147 0.8604 +vn 0.5309 -0.3268 0.7819 +vn 0.5348 -0.3129 0.7849 +vn 0.5385 -0.2998 0.7875 +vn 0.6727 -0.3083 0.6726 +vn 0.7959 -0.3064 0.5222 +vn 0.7980 -0.2982 0.5237 +vn 0.8001 -0.2904 0.5249 +vn 0.8936 -0.2818 0.3494 +vn 0.7727 -0.2749 0.5722 +vn 0.2932 -0.2112 0.9324 +vn 0.3054 -0.2013 0.9307 +vn 0.7793 -0.2680 0.5665 +vn 0.7663 -0.2824 0.5771 +vn 0.2817 -0.2219 0.9335 +vn 0.7856 -0.2632 0.5600 +vn 0.3177 -0.1949 0.9280 +vn -0.0485 -0.3205 0.9460 +vn -0.0843 -0.3119 0.9464 +vn -0.0928 -0.3395 0.9360 +vn -0.0569 -0.3481 0.9357 +vn -0.0964 -0.3087 0.9463 +vn -0.1051 -0.3362 0.9359 +vn -0.0657 -0.3767 0.9240 +vn -0.1015 -0.3681 0.9242 +vn -0.1141 -0.3648 0.9241 +vn -0.1246 -0.3981 0.9088 +vn -0.1296 -0.3596 0.9241 +vn -0.1414 -0.3926 0.9088 +vn -0.1370 -0.4374 0.8888 +vn -0.1553 -0.4313 0.8887 +vn -0.1457 -0.3534 0.9241 +vn -0.1590 -0.3858 0.9088 +vn -0.1617 -0.3464 0.9241 +vn -0.1765 -0.3781 0.9088 +vn -0.1746 -0.4238 0.8888 +vn -0.1916 -0.4652 0.8642 +vn -0.1939 -0.4154 0.8887 +vn -0.2129 -0.4559 0.8642 +vn -0.1785 -0.3380 0.9241 +vn -0.1949 -0.3690 0.9088 +vn -0.1949 -0.3289 0.9240 +vn -0.2127 -0.3590 0.9088 +vn -0.2101 -0.5101 0.8341 +vn -0.2300 -0.5585 0.7970 +vn -0.2334 -0.4999 0.8340 +vn -0.2555 -0.5474 0.7969 +vn -0.2141 -0.4054 0.8887 +vn -0.2350 -0.4449 0.8642 +vn -0.2337 -0.3944 0.8887 +vn -0.2565 -0.4329 0.8642 +vn -0.2108 -0.3189 0.9241 +vn -0.2301 -0.3481 0.9088 +vn -0.2262 -0.3082 0.9240 +vn -0.2469 -0.3364 0.9088 +vn -0.2513 -0.6103 0.7512 +vn -0.2738 -0.6649 0.6949 +vn -0.2792 -0.5981 0.7512 +vn -0.3042 -0.6516 0.6949 +vn -0.2576 -0.4879 0.8340 +vn -0.2821 -0.5342 0.7969 +vn -0.2813 -0.4746 0.8340 +vn -0.3079 -0.5197 0.7969 +vn -0.2528 -0.3824 0.8887 +vn -0.2774 -0.4198 0.8642 +vn -0.2712 -0.3696 0.8887 +vn -0.2977 -0.4057 0.8642 +vn -0.2970 -0.7214 0.6256 +vn -0.3300 -0.7070 0.6255 +vn -0.3082 -0.5837 0.7512 +vn -0.3358 -0.6359 0.6949 +vn -0.3365 -0.5678 0.7512 +vn -0.3643 -0.6899 0.6255 +vn -0.3639 -0.5507 0.7512 +vn -0.3331 -0.5039 0.7969 +vn -0.3042 -0.4603 0.8340 +vn -0.3264 -0.4448 0.8340 +vn -0.3479 -0.4282 0.8340 +vn -0.3173 -0.3906 0.8642 +vn -0.3225 -0.3258 0.8887 +vn -0.2936 -0.2965 0.9088 +vn -0.3061 -0.3412 0.8887 +vn -0.2787 -0.3106 0.9088 +vn -0.2890 -0.3558 0.8887 +vn -0.2631 -0.3239 0.9088 +vn -0.2689 -0.2717 0.9241 +vn -0.2479 -0.2504 0.9359 +vn -0.2553 -0.2845 0.9241 +vn -0.2490 -0.2065 0.9462 +vn -0.2386 -0.2184 0.9462 +vn -0.2410 -0.2967 0.9241 +vn -0.2276 -0.2299 0.9462 +vn 0.8912 0.0779 0.4468 +vn 0.9528 -0.0356 0.3016 +vn 0.8848 0.0779 0.4594 +vn 0.4759 0.3714 0.7972 +vn 0.8611 -0.0009 0.5084 +vn 0.4333 0.2171 0.8747 +vn 0.8447 -0.0644 0.5314 +vn 0.4091 0.1183 0.9048 +vn 0.8307 -0.1175 0.5442 +vn 0.3888 0.0368 0.9206 +vn 0.8199 -0.1592 0.5499 +vn 0.3730 -0.0275 0.9274 +vn -0.1280 0.8913 0.4350 +vn -0.2305 0.9250 0.3021 +vn 0.2388 0.5748 0.7826 +vn -0.1069 0.8880 0.4472 +vn 0.6223 -0.7317 0.2782 +vn 0.0450 -0.9021 0.4292 +vn 0.6159 -0.7628 0.1972 +vn 0.0335 -0.9520 0.3044 +vn 0.6010 -0.7992 0.0107 +vn 0.0216 -0.9996 0.0153 +vn 0.0224 -0.9970 0.0742 +vn 0.6036 -0.7957 0.0495 +vn 0.8198 -0.5726 0.0067 +vn 0.8209 -0.5710 -0.0014 +vn 0.5968 -0.8024 -0.0025 +vn 0.0208 -0.9998 -0.0047 +vn 0.6854 -0.7281 0.0108 +vn 0.5253 -0.8508 0.0148 +vn 0.5267 -0.8501 -0.0017 +vn 0.6867 -0.7269 -0.0018 +vn 0.3611 -0.9323 0.0181 +vn 0.2103 -0.9774 0.0206 +vn 0.2111 -0.9775 -0.0011 +vn 0.3622 -0.9321 -0.0014 +vn 0.0814 -0.9964 0.0224 +vn -0.0248 -0.9994 0.0236 +vn -0.0245 -0.9997 -0.0005 +vn 0.0819 -0.9966 -0.0008 +vn -0.1110 -0.9935 0.0244 +vn -0.1808 -0.9832 0.0248 +vn -0.1807 -0.9835 -0.0002 +vn -0.1108 -0.9938 -0.0003 +vn -0.2432 -0.9697 0.0250 +vn -0.2790 -0.9600 0.0251 +vn -0.2790 -0.9603 -0.0001 +vn -0.2432 -0.9700 -0.0001 +vn -0.2995 -0.9538 0.0251 +vn -0.2996 -0.9541 -0.0001 +vn -0.3379 -0.9409 0.0230 +vn -0.3380 -0.9411 0.0000 +vn -0.3806 -0.9244 0.0251 +vn -0.3807 -0.9247 0.0000 +vn -0.4230 -0.9059 0.0230 +vn -0.4230 -0.9061 -0.0000 +vn -0.4668 -0.8840 0.0251 +vn -0.4670 -0.8843 0.0000 +vn -0.5097 -0.8601 0.0230 +vn -0.5098 -0.8603 0.0000 +vn -0.5512 -0.8340 0.0251 +vn -0.5514 -0.8342 0.0000 +vn -0.5915 -0.8059 0.0230 +vn -0.5917 -0.8062 0.0000 +vn -0.6303 -0.7759 0.0251 +vn -0.6305 -0.7762 0.0000 +vn -0.6676 -0.7441 0.0230 +vn -0.6678 -0.7443 0.0001 +vn -0.7033 -0.7104 0.0251 +vn -0.7036 -0.7106 0.0000 +vn -0.7373 -0.6751 0.0230 +vn -0.7376 -0.6753 0.0000 +vn -0.7696 -0.6381 0.0251 +vn -0.7698 -0.6383 0.0000 +vn -0.8000 -0.5995 0.0230 +vn -0.8002 -0.5997 0.0000 +vn -0.8268 -0.5619 0.0251 +vn -0.8271 -0.5621 0.0000 +vn -0.8517 -0.5236 0.0230 +vn -0.8519 -0.5237 0.0000 +vn -0.8721 -0.4886 0.0251 +vn -0.8724 -0.4888 0.0000 +vn -0.8825 -0.4697 0.0228 +vn -0.8827 -0.4699 -0.0000 +vn -0.8993 -0.4367 0.0251 +vn -0.9253 -0.3784 0.0249 +vn -0.9256 -0.3784 -0.0002 +vn -0.8996 -0.4368 -0.0001 +vn -0.9497 -0.3122 0.0243 +vn -0.9731 -0.2290 0.0237 +vn -0.9735 -0.2288 -0.0006 +vn -0.9500 -0.3121 -0.0004 +vn -0.9920 -0.1245 0.0225 +vn -0.9998 0.0056 0.0208 +vn -1.0000 0.0064 -0.0011 +vn -0.9923 -0.1241 -0.0009 +vn -0.9866 0.1624 0.0183 +vn -0.9404 0.3398 0.0150 +vn -0.9400 0.3413 -0.0017 +vn -0.9865 0.1635 -0.0014 +vn -0.8531 0.5216 0.0110 +vn -0.7284 0.6851 0.0068 +vn -0.7272 0.6865 -0.0014 +vn -0.8522 0.5232 -0.0017 +vn -0.8525 0.5207 0.0453 +vn -0.7286 0.6843 0.0294 +vn -0.8838 0.4678 0.0102 +vn -0.9916 -0.1286 0.0152 +vn -0.9916 -0.1296 -0.0043 +vn -0.8861 0.4635 -0.0023 +vn -0.8810 0.4707 0.0466 +vn -0.9892 -0.1273 0.0730 +vn -0.8720 0.4777 0.1067 +vn -0.7257 0.6848 0.0665 +vn -0.9778 -0.1210 0.1710 +vn -0.8470 0.5220 0.1006 +vn 0.7603 -0.2904 0.5811 +vn 0.2710 -0.2336 0.9338 +vn 0.6092 -0.7848 0.1139 +vn 0.0257 -0.9844 0.1741 +vn -0.8605 -0.2656 0.4348 +vn 0.9911 0.0863 0.1009 +vn 0.9558 0.2862 0.0668 +vn 0.9484 0.2953 0.1151 +vn 0.9799 0.1004 0.1726 +vn 0.9850 -0.1127 0.1305 +vn 0.9706 -0.0942 0.2217 +vn 0.9912 -0.1184 0.0594 +vn 0.9956 0.0826 0.0452 +vn 0.9583 0.2844 0.0294 +vn 0.3468 0.9140 0.2106 +vn -0.2412 0.9061 0.3477 +vn -0.2443 0.9088 0.3381 +vn 0.3406 0.9177 0.2046 +vn 0.5434 0.8282 0.1370 +vn 0.5445 0.8286 0.1299 +vn 0.5477 0.8201 0.1657 +vn 0.3626 0.8988 0.2462 +vn -0.2272 0.8873 0.4014 +vn -0.7361 -0.6595 0.1526 +vn -0.8467 -0.5159 0.1302 +vn -0.8499 -0.5236 0.0595 +vn -0.7396 -0.6694 0.0706 +vn -0.6216 -0.7651 0.1680 +vn -0.6251 -0.7766 0.0784 +vn -0.6154 -0.7356 0.2831 +vn -0.7301 -0.6326 0.2583 +vn -0.8413 -0.4931 0.2215 +vn -0.8043 0.2262 0.5496 +vn -0.9044 0.2370 0.3548 +vn -0.8975 0.2661 0.3518 +vn -0.7954 0.2683 0.5435 +vn -0.3447 0.1429 0.9278 +vn -0.3292 0.2073 0.9212 +vn -0.3577 0.0885 0.9296 +vn -0.8118 0.1918 0.5516 +vn -0.9099 0.2137 0.3555 +vn -0.6977 0.6849 0.2102 +vn -0.8410 0.5236 0.1365 +vn -0.8421 0.5237 0.1290 +vn -0.6938 0.6908 0.2034 +vn -0.1635 0.9235 0.3470 +vn -0.1611 0.9276 0.3372 +vn -0.1701 0.9004 0.4004 +vn -0.7052 0.6648 0.2464 +vn -0.8416 0.5142 0.1653 +vn 0.9449 -0.2895 0.1529 +vn 0.8854 -0.4334 0.1682 +vn 0.8934 -0.4424 0.0784 +vn 0.9523 -0.2970 0.0705 +vn 0.9282 -0.2676 0.2585 +vn 0.8674 -0.4092 0.2833 +vn 0.8196 -0.5446 0.1778 +vn 0.7558 -0.6285 0.1835 +vn 0.7642 -0.6391 0.0867 +vn 0.8279 -0.5546 0.0835 +vn 0.8010 -0.5189 0.2986 +vn 0.7369 -0.6021 0.3074 +vn 0.9029 -0.2330 0.3611 +vn 0.8401 -0.3714 0.3954 +vn 0.9485 -0.0646 0.3100 +vn 0.9238 -0.0297 0.3817 +vn 0.8746 -0.1925 0.4450 +vn 0.8095 -0.3273 0.4875 +vn 0.9625 0.1235 0.2417 +vn 0.9367 0.3108 0.1614 +vn 0.9232 0.3291 0.1984 +vn 0.9428 0.1507 0.2973 +vn 0.6977 -0.6916 0.1866 +vn 0.6464 -0.7394 0.1880 +vn 0.6546 -0.7507 0.0896 +vn 0.7060 -0.7026 0.0886 +vn 0.6787 -0.6648 0.3120 +vn 0.6275 -0.7125 0.3141 +vn 0.9226 0.1786 0.3419 +vn 0.8983 0.0063 0.4394 +vn 0.9096 0.3475 0.2278 +vn 0.8960 0.3657 0.2518 +vn 0.9025 0.2061 0.3781 +vn 0.8728 0.0418 0.4863 +vn 0.9139 0.0895 0.3960 +vn 0.6637 -0.4345 0.6089 +vn 0.6285 -0.3879 0.6742 +vn 0.8907 0.1196 0.4386 +vn 0.9371 0.0597 0.3438 +vn 0.6989 -0.4809 0.5294 +vn 0.8682 0.1489 0.4734 +vn 0.8829 0.3832 0.2712 +vn 0.5946 -0.3425 0.7274 +vn 0.5625 -0.2993 0.7707 +vn 0.8469 0.1770 0.5014 +vn 0.8706 0.3996 0.2869 +vn 0.8271 0.2035 0.5239 +vn 0.8592 0.4149 0.2995 +vn 0.5328 -0.2585 0.8058 +vn 0.5055 -0.2204 0.8342 +vn 0.8089 0.2284 0.5418 +vn 0.8485 0.4290 0.3098 +vn 0.8832 0.2325 0.4074 +vn 0.8482 0.0760 0.5242 +vn 0.8648 0.2574 0.4311 +vn 0.8249 0.1081 0.5548 +vn 0.8452 -0.1506 0.5128 +vn 0.7776 -0.2814 0.5623 +vn 0.8158 -0.1090 0.5679 +vn 0.7456 -0.2358 0.6232 +vn 0.7726 -0.4793 0.4165 +vn 0.7080 -0.5613 0.4285 +vn 0.7406 -0.4331 0.5138 +vn 0.6753 -0.5141 0.5289 +vn 0.6497 -0.6235 0.4349 +vn 0.5984 -0.6711 0.4377 +vn 0.6166 -0.5758 0.5369 +vn 0.5652 -0.6233 0.5405 +vn 0.7072 -0.3848 0.5931 +vn 0.6410 -0.4645 0.6110 +vn 0.6737 -0.3368 0.6578 +vn 0.6067 -0.4152 0.6779 +vn 0.7875 -0.0690 0.6125 +vn 0.7148 -0.1918 0.6725 +vn 0.7606 -0.0313 0.6485 +vn 0.6856 -0.1504 0.7123 +vn 0.5972 -0.7796 0.1885 +vn 0.5675 -0.8015 0.1884 +vn 0.5755 -0.8128 0.0900 +vn 0.6053 -0.7909 0.0899 +vn 0.5784 -0.7526 0.3147 +vn 0.5488 -0.7746 0.3144 +vn 0.5495 -0.7112 0.4385 +vn 0.5200 -0.7333 0.4381 +vn 0.5162 -0.6635 0.5416 +vn 0.4868 -0.6857 0.5412 +vn 0.5819 -0.5257 0.6205 +vn 0.5302 -0.5729 0.6250 +vn 0.5471 -0.4757 0.6887 +vn 0.4953 -0.5227 0.6939 +vn 0.5501 -0.8136 0.1882 +vn 0.5578 -0.8251 0.0900 +vn 0.5318 -0.7865 0.3141 +vn 0.4995 -0.8074 0.3140 +vn 0.5167 -0.8352 0.1882 +vn 0.5240 -0.8470 0.0900 +vn 0.6414 -0.2904 0.7101 +vn 0.5736 -0.3675 0.7321 +vn 0.6108 -0.2467 0.7524 +vn 0.5421 -0.3225 0.7760 +vn 0.8478 0.2805 0.4501 +vn 0.8033 0.1381 0.5794 +vn 0.8320 0.3018 0.4655 +vn 0.7832 0.1657 0.5993 +vn 0.7922 0.2516 0.5560 +vn 0.4807 -0.1849 0.8572 +vn 0.4584 -0.1518 0.8757 +vn 0.7771 0.2732 0.5670 +vn 0.8388 0.4420 0.3180 +vn 0.8298 0.4539 0.3247 +vn 0.7644 0.2915 0.5751 +vn 0.8222 0.4640 0.3296 +vn 0.4400 -0.1233 0.8895 +vn 0.4248 -0.0983 0.8999 +vn 0.7540 0.3080 0.5802 +vn 0.8157 0.4726 0.3335 +vn 0.8175 0.3214 0.4779 +vn 0.7647 0.1911 0.6154 +vn 0.8041 0.3394 0.4880 +vn 0.7477 0.2144 0.6284 +vn 0.7356 0.0039 0.6774 +vn 0.6584 -0.1117 0.7444 +vn 0.7124 0.0363 0.7009 +vn 0.6331 -0.0760 0.7703 +vn 0.5135 -0.4274 0.7441 +vn 0.4615 -0.4741 0.7498 +vn 0.4817 -0.3817 0.7889 +vn 0.4294 -0.4281 0.7952 +vn 0.5822 -0.2059 0.7865 +vn 0.5128 -0.2804 0.8114 +vn 0.5557 -0.1681 0.8142 +vn 0.4856 -0.2415 0.8402 +vn 0.6910 0.0662 0.7198 +vn 0.6099 -0.0431 0.7913 +vn 0.6714 0.0935 0.7352 +vn 0.5885 -0.0130 0.8084 +vn 0.7929 0.3548 0.4955 +vn 0.7334 0.2342 0.6382 +vn 0.7832 0.3677 0.5013 +vn 0.7211 0.2511 0.6457 +vn 0.5314 -0.1334 0.8366 +vn 0.4605 -0.2057 0.8635 +vn 0.5089 -0.1015 0.8548 +vn 0.4375 -0.1728 0.8825 +vn 0.6548 0.1168 0.7467 +vn 0.5705 0.0126 0.8212 +vn 0.6406 0.1366 0.7556 +vn 0.5550 0.0345 0.8312 +vn 0.7739 0.3802 0.5065 +vn 0.7093 0.2673 0.6523 +vn 0.8095 0.4808 0.3370 +vn 0.8040 0.4881 0.3395 +vn 0.7658 0.3912 0.5104 +vn 0.6990 0.2815 0.6574 +vn 0.7440 0.3238 0.5845 +vn 0.4102 -0.0742 0.9090 +vn 0.3978 -0.0528 0.9159 +vn 0.7353 0.3375 0.5877 +vn 0.7285 0.3497 0.5891 +vn 0.7994 0.4942 0.3416 +vn 0.3880 -0.0341 0.9210 +vn 0.3793 -0.0161 0.9251 +vn 0.7222 0.3614 0.5897 +vn 0.7951 0.4999 0.3435 +vn 0.7167 0.3726 0.5895 +vn 0.7910 0.5053 0.3450 +vn 0.3717 0.0014 0.9284 +vn 0.3651 0.0182 0.9308 +vn 0.7117 0.3835 0.5886 +vn 0.7871 0.5104 0.3463 +vn 0.7589 0.4004 0.5135 +vn 0.6902 0.2934 0.6615 +vn 0.7525 0.4091 0.5162 +vn 0.6819 0.3047 0.6649 +vn 0.6269 0.1556 0.7634 +vn 0.5400 0.0555 0.8398 +vn 0.6150 0.1723 0.7695 +vn 0.5270 0.0739 0.8466 +vn 0.7074 0.3940 0.5869 +vn 0.7835 0.5152 0.3475 +vn 0.3595 0.0347 0.9325 +vn 0.3550 0.0508 0.9335 +vn 0.7036 0.4042 0.5844 +vn 0.7801 0.5197 0.3485 +vn 0.7464 0.4172 0.5185 +vn 0.6742 0.3152 0.6679 +vn 0.7406 0.4249 0.5205 +vn 0.6669 0.3252 0.6705 +vn 0.6048 0.1864 0.7743 +vn 0.5160 0.0894 0.8519 +vn 0.5953 0.1996 0.7783 +vn 0.5055 0.1040 0.8565 +vn 0.4899 -0.0744 0.8686 +vn 0.4180 -0.1448 0.8968 +vn 0.4737 -0.0513 0.8792 +vn 0.4013 -0.1209 0.9079 +vn 0.4580 -0.0290 0.8885 +vn 0.3851 -0.0979 0.9177 +vn 0.4443 -0.0095 0.8958 +vn 0.3711 -0.0778 0.9253 +vn 0.4327 0.0070 0.9015 +vn 0.3591 -0.0608 0.9313 +vn 0.4217 0.0225 0.9065 +vn 0.3479 -0.0447 0.9365 +vn 0.3558 -0.2012 0.9127 +vn 0.3027 -0.2464 0.9207 +vn 0.3227 -0.2750 0.9057 +vn 0.3756 -0.2296 0.8979 +vn 0.3388 -0.1769 0.9241 +vn 0.2857 -0.2219 0.9323 +vn 0.3224 -0.1535 0.9341 +vn 0.2692 -0.1983 0.9425 +vn 0.3082 -0.1330 0.9420 +vn 0.2548 -0.1777 0.9505 +vn 0.3989 -0.2631 0.8784 +vn 0.3462 -0.3087 0.8859 +vn 0.3718 -0.3454 0.8617 +vn 0.4243 -0.2995 0.8545 +vn 0.4519 -0.3390 0.8251 +vn 0.3995 -0.3852 0.8319 +vn 0.2973 -0.3486 0.8889 +vn 0.2681 -0.3712 0.8890 +vn 0.2936 -0.4080 0.8645 +vn 0.3228 -0.3854 0.8645 +vn 0.2738 -0.3147 0.9088 +vn 0.2447 -0.3374 0.9090 +vn 0.3505 -0.4253 0.8344 +vn 0.3213 -0.4479 0.8344 +vn 0.3512 -0.4909 0.7973 +vn 0.3804 -0.4683 0.7975 +vn 0.4125 -0.5144 0.7519 +vn 0.3832 -0.5369 0.7516 +vn 0.4169 -0.5854 0.6953 +vn 0.4463 -0.5630 0.6956 +vn 0.4812 -0.6132 0.6264 +vn 0.4519 -0.6355 0.6260 +vn 0.3698 -0.5466 0.7513 +vn 0.4029 -0.5956 0.6950 +vn 0.3385 -0.5002 0.7970 +vn 0.3176 -0.5138 0.7969 +vn 0.3471 -0.5614 0.7512 +vn 0.3783 -0.6116 0.6949 +vn 0.5037 -0.7448 0.4377 +vn 0.4712 -0.6968 0.5408 +vn 0.4425 -0.7154 0.5407 +vn 0.4730 -0.7647 0.4376 +vn 0.4371 -0.6462 0.6256 +vn 0.4104 -0.6635 0.6255 +vn 0.3092 -0.4568 0.8341 +vn 0.2821 -0.4166 0.8642 +vn 0.2645 -0.4281 0.8642 +vn 0.2901 -0.4693 0.8340 +vn 0.4780 -0.8580 0.1882 +vn 0.4847 -0.8700 0.0900 +vn 0.4621 -0.8294 0.3140 +vn 0.4233 -0.8499 0.3139 +vn 0.4378 -0.8791 0.1882 +vn 0.4440 -0.8915 0.0900 +vn 0.3942 -0.8996 0.1882 +vn 0.3997 -0.9122 0.0900 +vn 0.3810 -0.8696 0.3140 +vn 0.3379 -0.8873 0.3140 +vn 0.3496 -0.9178 0.1882 +vn 0.3545 -0.9307 0.0900 +vn 0.4376 -0.7855 0.4376 +vn 0.4094 -0.7349 0.5407 +vn 0.3750 -0.7530 0.5407 +vn 0.4009 -0.8049 0.4376 +vn 0.3041 -0.9339 0.1882 +vn 0.3084 -0.9470 0.0900 +vn 0.2940 -0.9028 0.3140 +vn 0.2493 -0.9161 0.3140 +vn 0.2579 -0.9477 0.1882 +vn 0.2615 -0.9610 0.0900 +vn 0.2111 -0.9592 0.1882 +vn 0.2141 -0.9727 0.0900 +vn 0.2041 -0.9272 0.3140 +vn 0.1583 -0.9361 0.3140 +vn 0.1638 -0.9684 0.1882 +vn 0.1661 -0.9820 0.0900 +vn 0.3609 -0.8236 0.4376 +vn 0.3376 -0.7705 0.5407 +vn 0.2994 -0.7862 0.5406 +vn 0.3200 -0.8403 0.4376 +vn 0.2784 -0.8550 0.4376 +vn 0.2605 -0.7999 0.5407 +vn 0.2209 -0.8117 0.5407 +vn 0.2361 -0.8676 0.4376 +vn 0.1933 -0.8782 0.4376 +vn 0.1808 -0.8216 0.5407 +vn 0.1403 -0.8295 0.5407 +vn 0.1500 -0.8866 0.4376 +vn 0.2416 -0.7419 0.6255 +vn 0.2227 -0.6838 0.6949 +vn 0.1889 -0.6939 0.6949 +vn 0.2049 -0.7528 0.6255 +vn 0.2777 -0.7291 0.6255 +vn 0.2560 -0.6721 0.6948 +vn 0.1677 -0.7620 0.6255 +vn 0.1546 -0.7023 0.6949 +vn 0.1199 -0.7091 0.6949 +vn 0.1301 -0.7693 0.6255 +vn 0.1161 -0.9753 0.1882 +vn 0.1177 -0.9890 0.0900 +vn 0.1122 -0.9428 0.3140 +vn 0.0658 -0.9471 0.3140 +vn 0.0681 -0.9798 0.1882 +vn 0.0690 -0.9936 0.0900 +vn 0.0199 -0.9819 0.1882 +vn 0.0202 -0.9957 0.0900 +vn 0.0193 -0.9492 0.3140 +vn -0.0273 -0.9490 0.3140 +vn -0.0283 -0.9817 0.1882 +vn -0.0287 -0.9955 0.0900 +vn 0.1063 -0.8929 0.4376 +vn 0.0994 -0.8354 0.5406 +vn 0.0583 -0.8392 0.5406 +vn 0.0623 -0.8970 0.4376 +vn -0.0736 -0.9794 0.1882 +vn -0.0747 -0.9931 0.0900 +vn -0.0712 -0.9468 0.3140 +vn -0.1143 -0.9425 0.3140 +vn -0.1183 -0.9750 0.1882 +vn -0.1200 -0.9887 0.0900 +vn 0.0182 -0.8990 0.4376 +vn 0.0171 -0.8411 0.5406 +vn -0.0242 -0.8409 0.5406 +vn -0.0259 -0.8988 0.4376 +vn -0.1577 -0.9694 0.1882 +vn -0.1599 -0.9830 0.0900 +vn -0.1525 -0.9371 0.3141 +vn -0.1728 -0.9334 0.3144 +vn -0.1786 -0.9657 0.1884 +vn -0.1810 -0.9794 0.0900 +vn -0.0674 -0.8966 0.4376 +vn -0.0630 -0.8389 0.5407 +vn -0.1013 -0.8351 0.5407 +vn -0.1083 -0.8926 0.4376 +vn -0.2148 -0.9583 0.1884 +vn -0.2762 -0.9426 0.1879 +vn -0.2792 -0.9564 0.0855 +vn -0.2173 -0.9720 0.0900 +vn -0.2089 -0.9259 0.3146 +vn -0.2703 -0.9101 0.3141 +vn -0.1444 -0.8875 0.4377 +vn -0.1352 -0.8302 0.5408 +vn -0.1539 -0.8267 0.5412 +vn -0.1640 -0.8838 0.4381 +vn -0.2001 -0.8762 0.4384 +vn -0.2613 -0.8603 0.4377 +vn -0.1899 -0.8189 0.5416 +vn -0.2512 -0.8030 0.5405 +vn -0.3429 -0.9207 0.1864 +vn -0.4221 -0.8878 0.1833 +vn -0.4252 -0.9007 0.0891 +vn -0.3459 -0.9341 0.0886 +vn -0.3369 -0.8884 0.3119 +vn -0.4160 -0.8559 0.3073 +vn -0.5153 -0.8384 0.1776 +vn -0.5186 -0.8509 0.0835 +vn -0.5091 -0.8073 0.2985 +vn -0.5000 -0.7594 0.4164 +vn -0.6065 -0.6899 0.3953 +vn -0.4069 -0.8068 0.4284 +vn -0.3970 -0.7501 0.5289 +vn -0.4903 -0.7040 0.5138 +vn -0.5972 -0.6369 0.4875 +vn -0.1793 -0.7586 0.6264 +vn -0.2407 -0.7426 0.6250 +vn -0.1432 -0.7665 0.6261 +vn -0.1326 -0.7064 0.6953 +vn -0.1687 -0.6983 0.6956 +vn -0.2301 -0.6823 0.6939 +vn -0.1254 -0.7700 0.6256 +vn -0.1156 -0.7097 0.6949 +vn -0.0939 -0.7745 0.6255 +vn -0.0865 -0.7139 0.6949 +vn -0.3074 -0.7214 0.6206 +vn -0.3867 -0.6907 0.6110 +vn -0.3178 -0.7815 0.5369 +vn -0.2968 -0.6614 0.6888 +vn -0.3763 -0.6316 0.6779 +vn -0.0584 -0.7780 0.6256 +vn -0.0539 -0.7171 0.6949 +vn -0.0225 -0.7799 0.6255 +vn -0.0207 -0.7188 0.6949 +vn -0.1584 -0.6400 0.7519 +vn -0.2198 -0.6241 0.7498 +vn -0.1223 -0.6481 0.7516 +vn -0.1126 -0.5930 0.7973 +vn -0.1487 -0.5848 0.7975 +vn -0.2100 -0.5689 0.7952 +vn -0.1062 -0.6514 0.7513 +vn -0.0972 -0.5961 0.7970 +vn -0.0793 -0.6553 0.7512 +vn -0.0726 -0.5997 0.7969 +vn 0.0158 -0.7800 0.6255 +vn 0.0146 -0.7190 0.6949 +vn 0.0541 -0.7783 0.6255 +vn 0.0499 -0.7174 0.6949 +vn -0.0494 -0.6582 0.7512 +vn -0.0452 -0.6023 0.7970 +vn -0.0190 -0.6598 0.7512 +vn -0.0174 -0.6038 0.7969 +vn 0.0922 -0.7747 0.6255 +vn 0.0850 -0.7141 0.6949 +vn 0.0134 -0.6599 0.7512 +vn 0.0123 -0.6039 0.7969 +vn 0.0458 -0.6585 0.7512 +vn 0.0419 -0.6026 0.7969 +vn 0.0780 -0.6554 0.7512 +vn 0.0714 -0.5998 0.7969 +vn 0.1101 -0.6508 0.7512 +vn 0.1007 -0.5956 0.7969 +vn 0.1419 -0.6446 0.7512 +vn 0.1298 -0.5899 0.7969 +vn 0.1733 -0.6369 0.7512 +vn 0.1586 -0.5829 0.7969 +vn 0.0112 -0.5516 0.8340 +vn 0.0102 -0.5031 0.8642 +vn -0.0145 -0.5030 0.8642 +vn -0.0159 -0.5515 0.8340 +vn 0.0382 -0.5504 0.8340 +vn 0.0349 -0.5020 0.8642 +vn 0.0652 -0.5478 0.8340 +vn 0.0595 -0.4997 0.8642 +vn 0.0920 -0.5440 0.8340 +vn 0.0839 -0.4961 0.8642 +vn -0.0413 -0.5501 0.8341 +vn -0.0376 -0.5017 0.8642 +vn -0.0603 -0.4996 0.8642 +vn -0.0662 -0.5477 0.8340 +vn -0.0889 -0.5444 0.8341 +vn -0.0811 -0.4965 0.8642 +vn -0.0951 -0.4936 0.8645 +vn -0.1035 -0.5414 0.8344 +vn -0.0342 -0.4571 0.8888 +vn -0.0311 -0.4161 0.9088 +vn -0.0499 -0.4143 0.9088 +vn -0.0549 -0.4551 0.8887 +vn -0.0132 -0.4582 0.8887 +vn -0.0120 -0.4171 0.9088 +vn -0.1396 -0.5331 0.8344 +vn -0.2009 -0.5173 0.8319 +vn -0.1312 -0.4853 0.8645 +vn -0.1924 -0.4696 0.8617 +vn -0.0740 -0.4523 0.8888 +vn -0.0674 -0.4117 0.9088 +vn -0.0804 -0.4090 0.9090 +vn -0.0874 -0.4495 0.8890 +vn -0.1235 -0.4412 0.8889 +vn -0.1846 -0.4256 0.8859 +vn -0.1164 -0.4006 0.9088 +vn -0.1774 -0.3851 0.9057 +vn -0.2866 -0.6035 0.7441 +vn -0.3662 -0.5744 0.7321 +vn -0.2769 -0.5486 0.7889 +vn -0.3566 -0.5203 0.7760 +vn -0.2678 -0.4974 0.8251 +vn -0.3477 -0.4698 0.8114 +vn -0.2594 -0.4500 0.8545 +vn -0.3393 -0.4231 0.8402 +vn -0.4803 -0.6461 0.5932 +vn -0.5875 -0.5818 0.5624 +vn -0.4701 -0.5885 0.6578 +vn -0.5777 -0.5271 0.6233 +vn -0.7216 -0.5907 0.3610 +vn -0.8338 -0.4570 0.3099 +vn -0.7130 -0.5419 0.4450 +vn -0.8259 -0.4148 0.3818 +vn -0.4602 -0.5329 0.7101 +vn -0.5682 -0.4742 0.6725 +vn -0.4508 -0.4803 0.7524 +vn -0.5591 -0.4243 0.7123 +vn -0.7039 -0.4915 0.5128 +vn -0.8179 -0.3714 0.4395 +vn -0.6947 -0.4414 0.5679 +vn -0.8097 -0.3285 0.4863 +vn -0.9254 -0.2921 0.2415 +vn -0.9806 -0.1112 0.1613 +vn -0.9848 -0.1302 0.1149 +vn -0.9315 -0.3203 0.1724 +vn -0.9190 -0.2590 0.2974 +vn -0.9761 -0.0889 0.1984 +vn -0.8844 -0.3748 0.2781 +vn -0.4456 -0.7857 0.4290 +vn -0.4564 -0.8344 0.3088 +vn -0.8927 -0.4053 0.1970 +vn -0.8754 -0.3395 0.3440 +vn -0.4329 -0.7297 0.5293 +vn -0.9124 -0.2252 0.3419 +vn -0.9714 -0.0664 0.2279 +vn -0.9056 -0.1919 0.3782 +vn -0.9668 -0.0442 0.2518 +vn -0.6857 -0.3932 0.6125 +vn -0.8017 -0.2871 0.5242 +vn -0.6772 -0.3477 0.6485 +vn -0.7941 -0.2482 0.5548 +vn -0.8669 -0.3026 0.3962 +vn -0.4203 -0.6728 0.6088 +vn -0.8584 -0.2656 0.4388 +vn -0.4079 -0.6158 0.6741 +vn -0.8992 -0.1597 0.4074 +vn -0.9622 -0.0229 0.2712 +vn -0.8930 -0.1295 0.4311 +vn -0.9580 -0.0028 0.2869 +vn -0.8503 -0.2295 0.4736 +vn -0.3961 -0.5604 0.7274 +vn -0.8428 -0.1951 0.5016 +vn -0.3852 -0.5077 0.7706 +vn -0.6692 -0.3053 0.6775 +vn -0.7870 -0.2119 0.5794 +vn -0.5506 -0.3778 0.7444 +vn -0.5427 -0.3348 0.7703 +vn -0.6618 -0.2661 0.7009 +vn -0.7804 -0.1784 0.5993 +vn -0.8360 -0.1627 0.5241 +vn -0.3753 -0.4582 0.8057 +vn -0.9540 0.0159 0.2995 +vn -0.9502 0.0331 0.3098 +vn -0.8299 -0.1325 0.5420 +vn -0.3666 -0.4122 0.8341 +vn -0.8872 -0.1013 0.4501 +vn -0.8818 -0.0754 0.4655 +vn -0.8245 -0.1044 0.5561 +vn -0.3590 -0.3695 0.8571 +vn -0.9468 0.0490 0.3180 +vn -0.9437 0.0635 0.3247 +vn -0.8199 -0.0785 0.5671 +vn -0.3526 -0.3301 0.8756 +vn -0.8769 -0.0515 0.4779 +vn -0.7743 -0.1476 0.6154 +vn -0.7687 -0.1193 0.6284 +vn -0.8723 -0.0296 0.4881 +vn -0.8160 -0.0564 0.5752 +vn -0.3479 -0.2965 0.8894 +vn -0.9411 0.0759 0.3296 +vn -0.9388 0.0864 0.3335 +vn -0.8135 -0.0371 0.5804 +vn -0.3446 -0.2674 0.8998 +vn -0.8111 -0.0186 0.5846 +vn -0.3415 -0.2394 0.9089 +vn -0.9365 0.0965 0.3370 +vn -0.9346 0.1054 0.3396 +vn -0.8089 -0.0026 0.5879 +vn -0.3392 -0.2148 0.9158 +vn -0.8686 -0.0109 0.4955 +vn -0.7640 -0.0953 0.6382 +vn -0.7599 -0.0749 0.6457 +vn -0.8652 0.0049 0.5013 +vn -0.8620 0.0201 0.5065 +vn -0.7559 -0.0552 0.6523 +vn -0.7525 -0.0380 0.6575 +vn -0.8593 0.0335 0.5104 +vn -0.8569 0.0448 0.5135 +vn -0.9330 0.1129 0.3416 +vn -0.7496 -0.0235 0.6615 +vn -0.7468 -0.0098 0.6649 +vn -0.8547 0.0553 0.5162 +vn -0.9315 0.1199 0.3434 +vn -0.6343 -0.1219 0.7634 +vn -0.5134 -0.1764 0.8398 +vn -0.5093 -0.1542 0.8466 +vn -0.6305 -0.1018 0.7695 +vn -0.6387 -0.1450 0.7556 +vn -0.5181 -0.2017 0.8312 +vn -0.6272 -0.0848 0.7743 +vn -0.5058 -0.1355 0.8519 +vn -0.5025 -0.1178 0.8565 +vn -0.6241 -0.0688 0.7783 +vn -0.6433 -0.1689 0.7467 +vn -0.5230 -0.2281 0.8212 +vn -0.6486 -0.1970 0.7352 +vn -0.5287 -0.2589 0.8084 +vn -0.6549 -0.2301 0.7198 +vn -0.5354 -0.2952 0.7913 +vn -0.4035 -0.2186 0.8885 +vn -0.3085 -0.2506 0.9176 +vn -0.3041 -0.2264 0.9253 +vn -0.3993 -0.1952 0.8958 +vn -0.4084 -0.2454 0.8792 +vn -0.3134 -0.2782 0.9079 +vn -0.4134 -0.2732 0.8686 +vn -0.3186 -0.3069 0.8968 +vn -0.4193 -0.3058 0.8548 +vn -0.3245 -0.3405 0.8825 +vn -0.4263 -0.3441 0.8366 +vn -0.3316 -0.3800 0.8635 +vn -0.4338 -0.3859 0.8142 +vn -0.4420 -0.4313 0.7865 +vn -0.2516 -0.4063 0.8784 +vn -0.2445 -0.3661 0.8979 +vn -0.2384 -0.3320 0.9127 +vn -0.1713 -0.3507 0.9207 +vn -0.1661 -0.3213 0.9323 +vn -0.2332 -0.3028 0.9241 +vn -0.1105 -0.3661 0.9240 +vn -0.0745 -0.3745 0.9242 +vn -0.0695 -0.3450 0.9360 +vn -0.1054 -0.3366 0.9357 +vn -0.0618 -0.3772 0.9241 +vn -0.0570 -0.3476 0.9359 +vn -0.0456 -0.3795 0.9241 +vn -0.0420 -0.3498 0.9359 +vn -0.2282 -0.2747 0.9341 +vn -0.1610 -0.2930 0.9425 +vn -0.1566 -0.2682 0.9505 +vn -0.2238 -0.2501 0.9420 +vn -0.1006 -0.3081 0.9460 +vn -0.0646 -0.3165 0.9464 +vn -0.0604 -0.2917 0.9546 +vn -0.0963 -0.2833 0.9542 +vn -0.0525 -0.3191 0.9463 +vn -0.0484 -0.2942 0.9545 +vn -0.0385 -0.3212 0.9462 +vn -0.0354 -0.2961 0.9545 +vn -0.0285 -0.3812 0.9241 +vn -0.0262 -0.3513 0.9359 +vn -0.0110 -0.3821 0.9241 +vn -0.0101 -0.3522 0.9359 +vn 0.0093 -0.4583 0.8887 +vn 0.0085 -0.4172 0.9088 +vn 0.0318 -0.4573 0.8887 +vn 0.0289 -0.4163 0.9088 +vn -0.0240 -0.3226 0.9462 +vn -0.0221 -0.2974 0.9545 +vn -0.0093 -0.3233 0.9462 +vn -0.0086 -0.2981 0.9545 +vn 0.0078 -0.3822 0.9240 +vn 0.0071 -0.3523 0.9359 +vn 0.0265 -0.3813 0.9241 +vn 0.0244 -0.3515 0.9359 +vn -0.0450 -0.2731 0.9609 +vn -0.0419 -0.2532 0.9665 +vn -0.0538 -0.2506 0.9666 +vn -0.0570 -0.2705 0.9610 +vn -0.0328 -0.2749 0.9609 +vn -0.0303 -0.2549 0.9665 +vn -0.0928 -0.2621 0.9606 +vn -0.1529 -0.2472 0.9568 +vn -0.0896 -0.2422 0.9661 +vn -0.1494 -0.2275 0.9623 +vn -0.2201 -0.2293 0.9481 +vn -0.3004 -0.2059 0.9313 +vn -0.2166 -0.2097 0.9535 +vn -0.2969 -0.1867 0.9365 +vn -0.0205 -0.2760 0.9609 +vn -0.0190 -0.2560 0.9665 +vn -0.0080 -0.2767 0.9609 +vn -0.0074 -0.2566 0.9665 +vn -0.0865 -0.2235 0.9709 +vn -0.1461 -0.2089 0.9670 +vn -0.0508 -0.2319 0.9714 +vn -0.0481 -0.2142 0.9756 +vn -0.0838 -0.2059 0.9750 +vn -0.1429 -0.1914 0.9711 +vn -0.0389 -0.2345 0.9713 +vn -0.0361 -0.2168 0.9755 +vn -0.0280 -0.2361 0.9713 +vn -0.0258 -0.2184 0.9755 +vn -0.3956 -0.1753 0.9015 +vn -0.3922 -0.1567 0.9064 +vn -0.2133 -0.1913 0.9581 +vn -0.2937 -0.1686 0.9409 +vn -0.2102 -0.1739 0.9621 +vn -0.2906 -0.1515 0.9448 +vn -0.3890 -0.1391 0.9107 +vn -0.4994 -0.1013 0.8604 +vn -0.3860 -0.1226 0.9143 +vn -0.4965 -0.0857 0.8638 +vn -0.6211 -0.0537 0.7819 +vn -0.7442 0.0030 0.6679 +vn -0.6184 -0.0395 0.7849 +vn -0.7418 0.0151 0.6705 +vn -0.2072 -0.1575 0.9655 +vn -0.2877 -0.1354 0.9481 +vn -0.1400 -0.1749 0.9746 +vn -0.1372 -0.1593 0.9777 +vn -0.2045 -0.1421 0.9685 +vn -0.2849 -0.1202 0.9510 +vn -0.8526 0.0653 0.5185 +vn -0.9300 0.1265 0.3450 +vn -0.8506 0.0747 0.5205 +vn -0.9286 0.1327 0.3464 +vn -0.3831 -0.1071 0.9175 +vn -0.4937 -0.0710 0.8667 +vn -0.3804 -0.0924 0.9202 +vn -0.4911 -0.0571 0.8692 +vn -0.6158 -0.0262 0.7875 +vn -0.7395 0.0265 0.6727 +vn -0.6133 -0.0136 0.7897 +vn -0.7373 0.0373 0.6745 +vn -0.8067 0.0372 0.5898 +vn -0.3383 -0.1547 0.9282 +vn -0.3379 -0.1737 0.9250 +vn -0.8071 0.0246 0.5899 +vn -0.8068 0.0491 0.5888 +vn -0.3394 -0.1366 0.9307 +vn -0.8078 0.0114 0.5893 +vn -0.3383 -0.1937 0.9209 +vn -0.8487 0.0835 0.5222 +vn -0.9274 0.1386 0.3475 +vn -0.8469 0.0918 0.5237 +vn -0.9262 0.1441 0.3485 +vn -0.8073 0.0605 0.5871 +vn -0.3413 -0.1193 0.9324 +vn -0.8082 0.0713 0.5846 +vn -0.3439 -0.1028 0.9334 +vn -0.8095 0.0817 0.5814 +vn -0.3474 -0.0870 0.9337 +vn -0.9250 0.1494 0.3493 +vn -0.9239 0.1543 0.3501 +vn -0.8113 0.0916 0.5774 +vn -0.3518 -0.0717 0.9333 +vn -0.8453 0.0997 0.5249 +vn -0.7352 0.0474 0.6762 +vn -0.7333 0.0570 0.6775 +vn -0.8437 0.1071 0.5260 +vn -0.8422 0.1142 0.5269 +vn -0.9229 0.1590 0.3507 +vn -0.7314 0.0661 0.6787 +vn -0.7297 0.0747 0.6797 +vn -0.8408 0.1208 0.5277 +vn -0.9219 0.1634 0.3512 +vn -0.6110 -0.0017 0.7916 +vn -0.4886 -0.0440 0.8714 +vn -0.4863 -0.0316 0.8732 +vn -0.6088 0.0096 0.7932 +vn -0.6068 0.0202 0.7946 +vn -0.4841 -0.0198 0.8748 +vn -0.4820 -0.0087 0.8761 +vn -0.6048 0.0303 0.7958 +vn -0.3779 -0.0785 0.9225 +vn -0.2823 -0.1059 0.9535 +vn -0.2799 -0.0923 0.9556 +vn -0.3754 -0.0653 0.9246 +vn -0.3732 -0.0529 0.9262 +vn -0.2776 -0.0795 0.9574 +vn -0.2753 -0.0673 0.9590 +vn -0.3710 -0.0411 0.9277 +vn -0.2019 -0.1275 0.9711 +vn -0.1346 -0.1445 0.9803 +vn -0.1321 -0.1306 0.9826 +vn -0.1994 -0.1136 0.9733 +vn -0.1970 -0.1006 0.9752 +vn -0.1297 -0.1174 0.9846 +vn -0.1275 -0.1048 0.9863 +vn -0.1948 -0.0881 0.9769 +vn -0.3695 -0.0326 0.9287 +vn -0.4805 -0.0006 0.8770 +vn -0.2738 -0.0585 0.9600 +vn -0.2731 -0.0547 0.9604 +vn -0.3688 -0.0290 0.9291 +vn -0.4798 0.0028 0.8774 +vn -0.1932 -0.0792 0.9780 +vn -0.1259 -0.0958 0.9874 +vn -0.1252 -0.0919 0.9879 +vn -0.1925 -0.0753 0.9784 +vn -0.0735 -0.1309 0.9887 +vn -0.0387 -0.1391 0.9895 +vn -0.0379 -0.1262 0.9913 +vn -0.0724 -0.1181 0.9904 +vn -0.0751 -0.1444 0.9867 +vn -0.0399 -0.1526 0.9875 +vn -0.6034 0.0377 0.7965 +vn -0.7285 0.0810 0.6802 +vn -0.6028 0.0408 0.7968 +vn -0.7280 0.0836 0.6805 +vn -0.0721 -0.1087 0.9915 +vn -0.0382 -0.1167 0.9924 +vn -0.0394 -0.1124 0.9929 +vn -0.0727 -0.1045 0.9919 +vn -0.8398 0.1257 0.5281 +vn -0.9213 0.1666 0.3514 +vn -0.8395 0.1277 0.5282 +vn -0.9210 0.1680 0.3515 +vn -0.8137 0.1011 0.5725 +vn -0.8165 0.1103 0.5667 +vn -0.3572 -0.0570 0.9323 +vn -0.3637 -0.0427 0.9305 +vn -0.8200 0.1174 0.5602 +vn -0.3718 -0.0314 0.9278 +vn -0.8233 0.1211 0.5546 +vn -0.3792 -0.0257 0.9250 +vn -0.5997 0.0542 0.7984 +vn -0.7252 0.0948 0.6820 +vn -0.4766 0.0179 0.8789 +vn -0.4713 0.0455 0.8808 +vn -0.5948 0.0790 0.8000 +vn -0.7208 0.1157 0.6834 +vn -0.8241 0.1307 0.5512 +vn -0.3797 -0.0106 0.9250 +vn -0.9195 0.1734 0.3529 +vn -0.9171 0.1838 0.3537 +vn -0.8206 0.1464 0.5524 +vn -0.3739 0.0154 0.9273 +vn -0.8371 0.1362 0.5298 +vn -0.8337 0.1521 0.5309 +vn -0.8170 0.1650 0.5526 +vn -0.3673 0.0454 0.9290 +vn -0.9142 0.1961 0.3547 +vn -0.8293 0.1710 0.5320 +vn -0.7153 0.1406 0.6846 +vn -0.7073 0.1763 0.6846 +vn -0.8229 0.1982 0.5325 +vn -0.5885 0.1086 0.8012 +vn -0.4647 0.0785 0.8820 +vn -0.4552 0.1258 0.8815 +vn -0.5796 0.1511 0.8008 +vn -0.8146 0.2341 0.5306 +vn -0.6969 0.2234 0.6815 +vn -0.6839 0.2821 0.6728 +vn -0.8042 0.2790 0.5247 +vn -0.5679 0.2070 0.7967 +vn -0.4428 0.1881 0.8767 +vn -0.4273 0.2655 0.8643 +vn -0.5533 0.2767 0.7857 +vn -0.7916 0.3344 0.5114 +vn -0.6683 0.3537 0.6544 +vn -0.6508 0.4354 0.6220 +vn -0.7773 0.3983 0.4870 +vn -0.8888 0.3026 0.3441 +vn -0.8789 0.3455 0.3288 +vn -0.7842 0.3217 0.5306 +vn -0.3097 0.2891 0.9058 +vn -0.7705 0.3857 0.5075 +vn -0.2862 0.3883 0.8760 +vn -0.5358 0.3607 0.7634 +vn -0.4088 0.3583 0.8393 +vn -0.3882 0.4630 0.7968 +vn -0.5163 0.4559 0.7250 +vn -0.4955 0.5576 0.6660 +vn -0.6319 0.5238 0.5712 +vn -0.3665 0.5738 0.7324 +vn -0.3462 0.6801 0.6462 +vn -0.4762 0.6551 0.5866 +vn -0.6143 0.6089 0.5019 +vn -0.2526 0.5780 0.7759 +vn -0.1557 0.5750 0.8032 +vn -0.1346 0.6906 0.7106 +vn -0.2317 0.6900 0.6857 +vn -0.2747 0.4612 0.8437 +vn -0.1781 0.4545 0.8728 +vn -0.2959 0.3504 0.8887 +vn -0.1994 0.3397 0.9191 +vn -0.3148 0.2518 0.9152 +vn -0.2185 0.2375 0.9465 +vn -0.3307 0.1692 0.9284 +vn -0.2345 0.1516 0.9602 +vn -0.3434 0.1027 0.9335 +vn -0.2475 0.0825 0.9654 +vn -0.0749 0.5681 0.8196 +vn -0.0076 0.5593 0.8289 +vn 0.0137 0.6784 0.7346 +vn -0.0536 0.6858 0.7258 +vn -0.0972 0.4454 0.8900 +vn -0.0300 0.4354 0.8998 +vn -0.3532 0.0521 0.9341 +vn -0.2573 0.0298 0.9659 +vn -0.3600 0.0167 0.9328 +vn -0.2642 -0.0071 0.9644 +vn -0.1186 0.3283 0.9371 +vn -0.0513 0.3169 0.9471 +vn -0.1377 0.2239 0.9648 +vn -0.0704 0.2113 0.9749 +vn -0.1538 0.1359 0.9787 +vn -0.0865 0.1222 0.9887 +vn -0.1668 0.0652 0.9838 +vn -0.0995 0.0505 0.9938 +vn -0.3655 -0.0128 0.9307 +vn -0.2699 -0.0378 0.9622 +vn -0.1767 0.0113 0.9842 +vn -0.1094 -0.0041 0.9940 +vn -0.1836 -0.0265 0.9826 +vn -0.1163 -0.0424 0.9923 +vn -0.1893 -0.0580 0.9802 +vn -0.1220 -0.0743 0.9897 +vn -0.0350 0.1112 0.9932 +vn -0.0024 0.1039 0.9946 +vn 0.0134 0.1938 0.9810 +vn -0.0190 0.2009 0.9794 +vn -0.0478 0.0391 0.9981 +vn -0.0152 0.0316 0.9994 +vn -0.0700 -0.0866 0.9938 +vn -0.0371 -0.0944 0.9948 +vn -0.0316 -0.0623 0.9976 +vn -0.0643 -0.0545 0.9964 +vn -0.0575 -0.0159 0.9982 +vn -0.0248 -0.0236 0.9994 +vn -0.0192 -0.0986 0.9949 +vn -0.0144 -0.0663 0.9977 +vn -0.0217 -0.1162 0.9930 +vn -0.0125 -0.1176 0.9930 +vn -0.0105 -0.0999 0.9949 +vn -0.0071 -0.0674 0.9977 +vn -0.0086 -0.0276 0.9996 +vn -0.0003 0.0277 0.9996 +vn -0.0030 -0.0284 0.9996 +vn 0.0029 0.0272 0.9996 +vn 0.0106 0.1002 0.9949 +vn 0.0241 0.1904 0.9814 +vn 0.0105 0.1002 0.9949 +vn 0.0200 0.1909 0.9814 +vn -0.0000 0.3071 0.9517 +vn 0.0323 0.3003 0.9533 +vn 0.0534 0.4197 0.9061 +vn 0.0212 0.4263 0.9043 +vn 0.0400 0.2974 0.9539 +vn 0.0579 0.4174 0.9069 +vn 0.0312 0.2986 0.9539 +vn 0.0437 0.4193 0.9068 +vn 0.0434 0.5509 0.8334 +vn 0.0755 0.5447 0.8352 +vn 0.0968 0.6647 0.7408 +vn 0.0647 0.6706 0.7390 +vn 0.0766 0.5431 0.8362 +vn 0.0946 0.6639 0.7418 +vn 0.0567 0.5457 0.8361 +vn 0.0692 0.6672 0.7417 +vn 0.0070 0.1005 0.9949 +vn 0.0134 0.1915 0.9814 +vn 0.0019 0.0273 0.9996 +vn 0.0008 0.0272 0.9996 +vn 0.0029 0.1005 0.9949 +vn 0.0055 0.1917 0.9814 +vn 0.0832 0.7750 0.6264 +vn 0.0323 0.7821 0.6223 +vn 0.1153 0.7694 0.6283 +vn 0.1298 0.8520 0.5072 +vn 0.0977 0.8573 0.5054 +vn 0.0465 0.8639 0.5015 +vn 0.0209 0.2995 0.9539 +vn 0.0293 0.4205 0.9068 +vn 0.0086 0.2998 0.9540 +vn 0.0121 0.4211 0.9069 +vn 0.1102 0.7693 0.6293 +vn 0.1224 0.8525 0.5081 +vn 0.0801 0.7732 0.6291 +vn 0.0886 0.8568 0.5080 +vn 0.0381 0.5473 0.8361 +vn 0.0466 0.6691 0.7417 +vn 0.0158 0.5481 0.8363 +vn 0.0193 0.6702 0.7420 +vn -0.0352 0.7885 0.6141 +vn -0.1163 0.7913 0.6002 +vn -0.0212 0.8693 0.4939 +vn -0.1027 0.8704 0.4815 +vn -0.2137 0.7877 0.5778 +vn -0.3287 0.7728 0.5429 +vn -0.2006 0.8640 0.4618 +vn -0.3162 0.8447 0.4319 +vn 0.1055 0.9031 0.4162 +vn 0.0542 0.9092 0.4128 +vn 0.1378 0.8981 0.4177 +vn 0.1398 0.9101 0.3901 +vn 0.1077 0.9151 0.3887 +vn 0.0563 0.9209 0.3857 +vn 0.1292 0.8991 0.4183 +vn 0.1308 0.9113 0.3905 +vn 0.0933 0.9035 0.4182 +vn 0.0944 0.9157 0.3905 +vn -0.0139 0.9136 0.4064 +vn -0.0961 0.9132 0.3960 +vn -0.0121 0.9249 0.3799 +vn -0.0945 0.9240 0.3705 +vn 0.0630 0.9061 0.4183 +vn 0.0638 0.9183 0.3906 +vn 0.0598 0.8592 0.5081 +vn 0.0248 0.8608 0.5083 +vn 0.0262 0.9079 0.4184 +vn 0.0265 0.9202 0.3906 +vn -0.1947 0.9044 0.3797 +vn -0.3111 0.8816 0.3550 +vn -0.1936 0.9144 0.3555 +vn -0.3106 0.8904 0.3328 +vn -0.4595 0.7402 0.4909 +vn -0.5991 0.6829 0.4180 +vn -0.4479 0.8054 0.3882 +vn -0.5889 0.7387 0.3280 +vn -0.4440 0.8374 0.3190 +vn -0.5861 0.7641 0.2696 +vn -0.4441 0.8445 0.2995 +vn -0.5868 0.7690 0.2535 +vn -0.7240 0.6580 0.2072 +vn -0.7256 0.6404 0.2518 +vn -0.7251 0.6604 0.1953 +vn -0.7339 0.5969 0.3241 +vn -0.8473 0.4853 0.2156 +vn -0.8568 0.4436 0.2629 +vn -0.7468 0.5375 0.3916 +vn -0.7216 0.6138 0.3202 +vn -0.1918 0.8257 0.5305 +vn -0.2179 0.7055 0.6744 +vn -0.7351 0.5481 0.3989 +vn -0.0184 0.9081 0.4184 +vn -0.0187 0.9204 0.3906 +vn -0.0175 0.8610 0.5083 +vn -0.0597 0.8591 0.5083 +vn -0.0630 0.9061 0.4184 +vn -0.0638 0.9183 0.3906 +vn 0.0540 0.7754 0.6292 +vn 0.0224 0.7767 0.6294 +vn -0.0158 0.7769 0.6294 +vn -0.0136 0.6703 0.7420 +vn -0.0465 0.6688 0.7420 +vn -0.0539 0.7752 0.6294 +vn -0.0111 0.5482 0.8363 +vn -0.0085 0.4212 0.9069 +vn -0.0292 0.4202 0.9070 +vn -0.0380 0.5470 0.8363 +vn -0.1073 0.9019 0.4184 +vn -0.1088 0.9141 0.3906 +vn -0.1018 0.8552 0.5083 +vn -0.1436 0.8491 0.5083 +vn -0.1515 0.8955 0.4184 +vn -0.1535 0.9077 0.3906 +vn -0.0918 0.7716 0.6294 +vn -0.0792 0.6657 0.7420 +vn -0.1118 0.6610 0.7420 +vn -0.1296 0.7662 0.6294 +vn -0.1952 0.8870 0.4184 +vn -0.1979 0.8990 0.3906 +vn -0.1851 0.8410 0.5083 +vn -0.2262 0.8310 0.5083 +vn -0.2385 0.8764 0.4184 +vn -0.2417 0.8883 0.3906 +vn -0.1670 0.7589 0.6294 +vn -0.1441 0.6548 0.7420 +vn -0.1761 0.6469 0.7420 +vn -0.2041 0.7498 0.6294 +vn -0.0648 0.5445 0.8363 +vn -0.0498 0.4183 0.9070 +vn -0.0702 0.4153 0.9070 +vn -0.0914 0.5406 0.8363 +vn -0.1179 0.5355 0.8363 +vn -0.0905 0.4114 0.9070 +vn -0.1106 0.4064 0.9070 +vn -0.1440 0.5290 0.8363 +vn -0.2812 0.8636 0.4184 +vn -0.2850 0.8753 0.3906 +vn -0.2667 0.8188 0.5083 +vn -0.3065 0.8048 0.5083 +vn -0.3233 0.8488 0.4184 +vn -0.3276 0.8603 0.3906 +vn -0.2406 0.7389 0.6294 +vn -0.2076 0.6375 0.7420 +vn -0.2386 0.6265 0.7420 +vn -0.2766 0.7262 0.6294 +vn -0.3645 0.8319 0.4184 +vn -0.3695 0.8432 0.3906 +vn -0.3456 0.7888 0.5083 +vn -0.3839 0.7709 0.5083 +vn -0.4049 0.8130 0.4184 +vn -0.4104 0.8240 0.3906 +vn -0.3119 0.7117 0.6294 +vn -0.2691 0.6141 0.7420 +vn -0.2989 0.6001 0.7420 +vn -0.3464 0.6956 0.6294 +vn -0.1698 0.5213 0.8363 +vn -0.1304 0.4005 0.9070 +vn -0.1499 0.3937 0.9070 +vn -0.1951 0.5124 0.8363 +vn -0.2201 0.5022 0.8363 +vn -0.1691 0.3858 0.9070 +vn -0.1878 0.3771 0.9069 +vn -0.2444 0.4908 0.8363 +vn -0.4376 0.7959 0.4183 +vn -0.4435 0.8067 0.3906 +vn -0.4150 0.7547 0.5081 +vn -0.4402 0.7404 0.5080 +vn -0.4641 0.7808 0.4182 +vn -0.4702 0.7915 0.3905 +vn -0.3745 0.6811 0.6292 +vn -0.3232 0.5877 0.7417 +vn -0.3430 0.5764 0.7417 +vn -0.3973 0.6681 0.6291 +vn -0.4947 0.7618 0.4182 +vn -0.5013 0.7722 0.3904 +vn -0.4690 0.7224 0.5081 +vn -0.4753 0.7189 0.5072 +vn -0.5020 0.7573 0.4177 +vn -0.5089 0.7673 0.3902 +vn -0.4749 0.7754 0.4162 +vn -0.4308 0.8024 0.4129 +vn -0.4376 0.8121 0.3859 +vn -0.4819 0.7852 0.3889 +vn -0.4486 0.7372 0.5053 +vn -0.4049 0.7647 0.5014 +vn -0.4230 0.6520 0.6293 +vn -0.3645 0.5628 0.7419 +vn -0.3668 0.5628 0.7408 +vn -0.4275 0.6500 0.6282 +vn -0.4010 0.6685 0.6264 +vn -0.3576 0.6965 0.6221 +vn -0.3403 0.5815 0.7389 +vn -0.2973 0.6099 0.7346 +vn -0.3708 0.8350 0.4066 +vn -0.2960 0.8691 0.3963 +vn -0.3019 0.8782 0.3710 +vn -0.3776 0.8463 0.3759 +vn -0.3456 0.7979 0.4939 +vn -0.2721 0.8332 0.4814 +vn -0.2975 0.4607 0.8362 +vn -0.2278 0.3545 0.9069 +vn -0.2246 0.3586 0.9061 +vn -0.2972 0.4627 0.8352 +vn -0.2806 0.4714 0.8361 +vn -0.2157 0.3622 0.9068 +vn -0.2028 0.9025 0.3801 +vn -0.0875 0.9306 0.3554 +vn -0.0916 0.9382 0.3337 +vn -0.2080 0.9109 0.3563 +vn -0.1805 0.8684 0.4618 +vn -0.0675 0.8994 0.4319 +vn -0.2992 0.7306 0.6138 +vn -0.2267 0.7673 0.5998 +vn -0.2393 0.6450 0.7258 +vn -0.1678 0.6833 0.7106 +vn -0.2708 0.4818 0.8334 +vn -0.2280 0.5109 0.8289 +vn -0.1983 0.3779 0.9044 +vn -0.1556 0.4077 0.8998 +vn 0.0516 0.9462 0.3195 +vn 0.2113 0.9393 0.2702 +vn 0.2100 0.9439 0.2547 +vn 0.0488 0.9525 0.3006 +vn 0.0685 0.9190 0.3882 +vn 0.2243 0.9176 0.3281 +vn -0.1368 0.8050 0.5773 +vn -0.0264 0.8398 0.5423 +vn -0.0794 0.7236 0.6856 +vn 0.0286 0.7627 0.6461 +vn 0.3809 0.9010 0.2078 +vn 0.3810 0.9035 0.1964 +vn 0.3895 0.8858 0.2521 +vn 0.1060 0.8652 0.4902 +vn 0.2567 0.8718 0.4172 +vn 0.1570 0.7946 0.5864 +vn 0.3019 0.8107 0.5017 +vn 0.4150 0.8505 0.3232 +vn 0.5646 0.7968 0.2150 +vn 0.4520 0.8015 0.3915 +vn 0.5912 0.7625 0.2628 +vn 0.3976 0.8605 0.3185 +vn -0.1762 0.8292 0.5305 +vn 0.4372 0.8063 0.3984 +vn -0.0997 0.7315 0.6745 +vn 0.2154 0.7144 0.6657 +vn 0.3533 0.7412 0.5708 +vn 0.0915 0.6750 0.7322 +vn 0.1579 0.5832 0.7968 +vn 0.2771 0.6305 0.7250 +vn 0.4078 0.6684 0.6220 +vn -0.0136 0.6309 0.7758 +vn -0.1002 0.5874 0.8031 +vn -0.0293 0.4872 0.8728 +vn 0.0556 0.5339 0.8437 +vn 0.3348 0.5523 0.7635 +vn 0.4580 0.6017 0.6544 +vn 0.2205 0.4969 0.8393 +vn 0.2763 0.4203 0.8643 +vn 0.3860 0.4833 0.7858 +vn 0.5024 0.5431 0.6728 +vn 0.1213 0.4422 0.8887 +vn 0.0383 0.3920 0.9192 +vn 0.0985 0.3072 0.9465 +vn 0.1799 0.3606 0.9152 +vn 0.5781 0.6359 0.5113 +vn 0.6798 0.6478 0.3438 +vn 0.6527 0.6826 0.3286 +vn 0.5383 0.6878 0.4870 +vn 0.6129 0.5908 0.5247 +vn 0.7030 0.6182 0.3516 +vn 0.6412 0.5543 0.5306 +vn 0.7215 0.5947 0.3547 +vn 0.5389 0.4952 0.6815 +vn 0.5680 0.4569 0.6846 +vn 0.6637 0.5253 0.5325 +vn 0.7362 0.5759 0.3554 +vn 0.4285 0.4261 0.7967 +vn 0.3229 0.3565 0.8767 +vn 0.3603 0.3053 0.8815 +vn 0.4626 0.3804 0.8008 +vn 0.6809 0.5033 0.5320 +vn 0.5902 0.4278 0.6846 +vn 0.6056 0.4076 0.6834 +vn 0.6928 0.4880 0.5309 +vn 0.7475 0.5617 0.3547 +vn 0.7552 0.5519 0.3537 +vn 0.2291 0.2922 0.9285 +vn 0.1492 0.2360 0.9602 +vn 0.1899 0.1787 0.9654 +vn 0.2686 0.2373 0.9336 +vn 0.4886 0.3455 0.8012 +vn 0.3888 0.2663 0.8820 +vn 0.4087 0.2391 0.8808 +vn 0.5067 0.3214 0.8000 +vn 0.2987 0.1955 0.9341 +vn 0.2211 0.1350 0.9659 +vn 0.2428 0.1045 0.9644 +vn 0.3197 0.1663 0.9328 +vn 0.0825 0.1879 0.9787 +vn 0.0272 0.1472 0.9887 +vn 0.0691 0.0876 0.9938 +vn 0.1240 0.1291 0.9838 +vn 0.0310 0.2609 0.9649 +vn -0.0248 0.2213 0.9749 +vn 0.1556 0.0843 0.9842 +vn 0.1010 0.0421 0.9940 +vn 0.1233 0.0103 0.9923 +vn 0.1778 0.0530 0.9826 +vn 0.3371 0.1418 0.9307 +vn 0.4233 0.2158 0.8799 +vn 0.2608 0.0790 0.9622 +vn 0.2708 0.0650 0.9604 +vn 0.3468 0.1285 0.9291 +vn 0.4343 0.2040 0.8773 +vn -0.0302 0.3477 0.9371 +vn -0.0865 0.3092 0.9471 +vn -0.0988 0.4450 0.8901 +vn 0.5216 0.3009 0.7984 +vn 0.6184 0.3905 0.6820 +vn 0.5300 0.2901 0.7968 +vn 0.6235 0.3808 0.6828 +vn 0.7027 0.4750 0.5298 +vn 0.7617 0.5434 0.3529 +vn 0.7083 0.4683 0.5282 +vn 0.7654 0.5391 0.3515 +vn 0.1961 0.0268 0.9802 +vn 0.1419 -0.0162 0.9897 +vn 0.1522 -0.0308 0.9879 +vn 0.2063 0.0125 0.9784 +vn 0.3490 0.1255 0.9287 +vn 0.4364 0.2012 0.8770 +vn 0.2730 0.0619 0.9600 +vn 0.2782 0.0546 0.9590 +vn 0.3540 0.1184 0.9277 +vn 0.4411 0.1945 0.8761 +vn 0.2086 0.0093 0.9780 +vn 0.1545 -0.0341 0.9874 +vn 0.1597 -0.0416 0.9863 +vn 0.2138 0.0018 0.9769 +vn 0.5319 0.2875 0.7965 +vn 0.6243 0.3784 0.6834 +vn 0.5362 0.2815 0.7958 +vn 0.6309 0.3742 0.6797 +vn 0.6933 0.4646 0.5510 +vn 0.3490 0.1495 0.9251 +vn 0.3328 0.1709 0.9274 +vn 0.6834 0.4774 0.5523 +vn 0.6965 0.4556 0.5543 +vn 0.3546 0.1356 0.9251 +vn 0.6723 0.4927 0.5525 +vn 0.3144 0.1955 0.9290 +vn 0.2879 0.2306 0.9295 +vn 0.6563 0.5147 0.5517 +vn 0.7095 0.4667 0.5281 +vn 0.7662 0.5380 0.3514 +vn 0.7124 0.4627 0.5277 +vn 0.7681 0.5354 0.3512 +vn 0.7165 0.4572 0.5269 +vn 0.7709 0.5318 0.3507 +vn 0.6361 0.3671 0.6787 +vn 0.6416 0.3596 0.6775 +vn 0.7208 0.4514 0.5260 +vn 0.7738 0.5279 0.3501 +vn 0.5422 0.2731 0.7946 +vn 0.4477 0.1852 0.8748 +vn 0.4546 0.1755 0.8732 +vn 0.5486 0.2643 0.7932 +vn 0.3609 0.1086 0.9263 +vn 0.2853 0.0444 0.9574 +vn 0.2928 0.0337 0.9556 +vn 0.3682 0.0983 0.9245 +vn 0.5553 0.2550 0.7916 +vn 0.6474 0.3517 0.6762 +vn 0.4619 0.1652 0.8714 +vn 0.4697 0.1544 0.8692 +vn 0.5624 0.2452 0.7897 +vn 0.6535 0.3434 0.6745 +vn 0.2210 -0.0085 0.9752 +vn 0.1670 -0.0521 0.9846 +vn 0.1747 -0.0631 0.9826 +vn 0.2287 -0.0194 0.9733 +vn 0.3759 0.0874 0.9225 +vn 0.3007 0.0224 0.9535 +vn 0.3091 0.0105 0.9510 +vn 0.3840 0.0759 0.9202 +vn 0.2367 -0.0309 0.9711 +vn 0.1828 -0.0747 0.9803 +vn 0.1914 -0.0869 0.9777 +vn 0.2452 -0.0431 0.9685 +vn 0.1216 -0.0880 0.9887 +vn 0.0936 -0.1099 0.9895 +vn 0.1004 -0.1217 0.9875 +vn 0.1287 -0.0996 0.9867 +vn 0.1152 -0.0769 0.9904 +vn 0.0875 -0.0985 0.9913 +vn 0.1362 -0.1117 0.9844 +vn 0.1078 -0.1339 0.9851 +vn 0.1158 -0.1467 0.9824 +vn 0.1444 -0.1243 0.9817 +vn 0.2542 -0.0560 0.9655 +vn 0.3179 -0.0021 0.9481 +vn 0.2005 -0.0999 0.9746 +vn 0.2101 -0.1137 0.9710 +vn 0.2638 -0.0696 0.9621 +vn 0.3273 -0.0155 0.9448 +vn 0.1110 -0.0684 0.9915 +vn 0.0838 -0.0898 0.9924 +vn 0.1097 -0.0644 0.9919 +vn 0.0831 -0.0853 0.9929 +vn 0.3926 0.0637 0.9175 +vn 0.4779 0.1429 0.8667 +vn 0.4018 0.0507 0.9143 +vn 0.4865 0.1307 0.8638 +vn 0.0998 -0.0493 0.9938 +vn 0.0734 -0.0700 0.9948 +vn 0.0812 -0.0225 0.9964 +vn 0.0549 -0.0432 0.9976 +vn 0.0820 -0.1188 0.9895 +vn 0.0893 -0.1301 0.9875 +vn 0.0750 -0.1080 0.9913 +vn 0.0682 -0.1126 0.9913 +vn 0.0750 -0.1234 0.9895 +vn 0.0822 -0.1348 0.9875 +vn 0.0589 0.0096 0.9982 +vn 0.0325 -0.0109 0.9994 +vn 0.0269 0.0555 0.9981 +vn 0.0006 0.0351 0.9994 +vn 0.0702 -0.1000 0.9925 +vn 0.0683 -0.0964 0.9930 +vn 0.0608 -0.1015 0.9930 +vn 0.0631 -0.1048 0.9925 +vn 0.0587 -0.0814 0.9950 +vn 0.0408 -0.0542 0.9977 +vn 0.0347 -0.0582 0.9977 +vn 0.0515 -0.0862 0.9949 +vn -0.0150 0.1155 0.9932 +vn -0.0413 0.0953 0.9946 +vn -0.0672 0.1902 0.9794 +vn -0.0935 0.1703 0.9809 +vn 0.0193 -0.0215 0.9996 +vn -0.0114 0.0252 0.9996 +vn -0.0140 0.0235 0.9996 +vn 0.0147 -0.0246 0.9996 +vn 0.0484 -0.0879 0.9950 +vn 0.0571 -0.1036 0.9930 +vn 0.0327 -0.0593 0.9977 +vn 0.0302 -0.0607 0.9977 +vn 0.0448 -0.0899 0.9949 +vn 0.0527 -0.1059 0.9930 +vn 0.0138 -0.0250 0.9996 +vn -0.0132 0.0240 0.9996 +vn -0.0121 0.0243 0.9996 +vn 0.0128 -0.0257 0.9996 +vn -0.0517 0.0865 0.9949 +vn -0.1018 0.1627 0.9814 +vn -0.0983 0.1649 0.9814 +vn -0.0516 0.0865 0.9949 +vn 0.0591 -0.1071 0.9925 +vn 0.0637 -0.1151 0.9913 +vn 0.0545 -0.1095 0.9925 +vn 0.0587 -0.1178 0.9913 +vn -0.0486 0.0883 0.9949 +vn -0.0926 0.1682 0.9814 +vn -0.0855 0.1716 0.9814 +vn -0.0448 0.0900 0.9949 +vn -0.1447 0.2630 0.9539 +vn -0.2032 0.3693 0.9068 +vn -0.1337 0.2684 0.9540 +vn -0.1537 0.2579 0.9539 +vn -0.1290 0.2787 0.9517 +vn -0.1553 0.2590 0.9533 +vn -0.1707 0.5471 0.8195 +vn -0.1612 0.2531 0.9539 +vn -0.2644 0.4807 0.8361 +vn -0.1204 0.2747 0.9540 +vn -0.0770 0.1756 0.9814 +vn -0.1067 0.2802 0.9540 +vn -0.0682 0.1792 0.9814 +vn -0.0403 0.0921 0.9949 +vn -0.0109 0.0249 0.9996 +vn -0.0358 0.0939 0.9949 +vn -0.0097 0.0254 0.9996 +vn -0.0929 0.2851 0.9540 +vn -0.0594 0.1823 0.9814 +vn -0.0788 0.2894 0.9540 +vn -0.0504 0.1850 0.9814 +vn 0.0115 -0.0263 0.9996 +vn 0.0272 -0.0621 0.9977 +vn 0.0102 -0.0268 0.9996 +vn 0.0241 -0.0634 0.9977 +vn -0.0311 0.0956 0.9949 +vn -0.0084 0.0259 0.9996 +vn -0.0264 0.0970 0.9949 +vn -0.0071 0.0262 0.9996 +vn -0.0645 0.2929 0.9540 +vn -0.0412 0.1873 0.9814 +vn -0.0500 0.2957 0.9540 +vn -0.0320 0.1891 0.9814 +vn 0.0403 -0.0920 0.9949 +vn 0.0475 -0.1083 0.9930 +vn 0.0358 -0.0939 0.9949 +vn 0.0421 -0.1105 0.9930 +vn 0.0089 -0.0273 0.9996 +vn 0.0210 -0.0645 0.9977 +vn 0.0075 -0.0277 0.9996 +vn 0.0178 -0.0654 0.9977 +vn -0.0216 0.0982 0.9949 +vn -0.0058 0.0266 0.9996 +vn -0.0168 0.0991 0.9949 +vn -0.0045 0.0268 0.9996 +vn -0.0354 0.2978 0.9540 +vn -0.0227 0.1904 0.9814 +vn -0.0208 0.2992 0.9540 +vn -0.0133 0.1913 0.9814 +vn -0.0061 0.2998 0.9540 +vn -0.0039 0.1917 0.9814 +vn -0.0119 0.0998 0.9949 +vn -0.0032 0.0270 0.9996 +vn -0.0070 0.1003 0.9949 +vn -0.0019 0.0271 0.9996 +vn 0.0062 -0.0280 0.9996 +vn 0.0146 -0.0662 0.9977 +vn 0.0048 -0.0283 0.9996 +vn 0.0113 -0.0668 0.9977 +vn -0.0020 0.1005 0.9949 +vn -0.0006 0.0272 0.9996 +vn 0.0034 -0.0285 0.9996 +vn 0.0080 -0.0673 0.9977 +vn 0.0020 -0.0286 0.9996 +vn 0.0047 -0.0676 0.9977 +vn 0.0006 -0.0287 0.9996 +vn 0.0014 -0.0678 0.9977 +vn -0.0008 -0.0287 0.9996 +vn -0.0020 -0.0678 0.9977 +vn -0.0020 -0.0285 0.9996 +vn -0.0047 -0.0676 0.9977 +vn 0.0119 -0.0997 0.9949 +vn 0.0140 -0.1174 0.9930 +vn 0.0197 -0.1166 0.9930 +vn 0.0168 -0.0990 0.9949 +vn 0.0070 -0.1002 0.9949 +vn 0.0082 -0.1180 0.9930 +vn -0.0070 -0.1001 0.9950 +vn -0.0083 -0.1180 0.9930 +vn -0.0034 -0.1182 0.9930 +vn -0.0029 -0.1004 0.9949 +vn 0.0020 -0.1004 0.9949 +vn 0.0024 -0.1182 0.9930 +vn -0.0087 -0.1220 0.9925 +vn -0.0094 -0.1312 0.9913 +vn -0.0038 -0.1315 0.9913 +vn -0.0035 -0.1222 0.9925 +vn -0.0133 -0.1216 0.9925 +vn -0.0146 -0.1308 0.9913 +vn 0.0025 -0.1223 0.9925 +vn 0.0027 -0.1316 0.9913 +vn 0.0091 -0.1313 0.9913 +vn 0.0085 -0.1220 0.9925 +vn 0.0145 -0.1214 0.9925 +vn 0.0156 -0.1307 0.9913 +vn 0.0219 -0.1297 0.9913 +vn 0.0204 -0.1206 0.9925 +vn 0.0216 -0.0981 0.9949 +vn 0.0254 -0.1155 0.9930 +vn 0.0311 -0.1141 0.9930 +vn 0.0264 -0.0969 0.9949 +vn 0.0263 -0.1194 0.9925 +vn 0.0283 -0.1285 0.9913 +vn 0.0346 -0.1270 0.9913 +vn 0.0321 -0.1180 0.9925 +vn 0.0311 -0.0955 0.9949 +vn 0.0366 -0.1125 0.9930 +vn 0.0379 -0.1163 0.9925 +vn 0.0407 -0.1251 0.9913 +vn 0.0468 -0.1230 0.9913 +vn 0.0435 -0.1143 0.9925 +vn 0.0491 -0.1120 0.9925 +vn 0.0528 -0.1205 0.9913 +vn 0.0447 -0.1373 0.9895 +vn 0.0489 -0.1501 0.9875 +vn 0.0562 -0.1475 0.9875 +vn 0.0514 -0.1349 0.9895 +vn 0.0379 -0.1393 0.9895 +vn 0.0415 -0.1523 0.9875 +vn 0.0699 -0.1263 0.9895 +vn 0.0765 -0.1381 0.9875 +vn 0.0644 -0.1292 0.9895 +vn 0.0704 -0.1413 0.9875 +vn 0.0579 -0.1322 0.9895 +vn 0.0634 -0.1446 0.9875 +vn 0.0972 -0.1419 0.9851 +vn 0.1055 -0.1545 0.9823 +vn 0.0898 -0.1468 0.9851 +vn 0.0977 -0.1596 0.9823 +vn 0.0834 -0.1505 0.9851 +vn 0.0908 -0.1636 0.9823 +vn 0.0767 -0.1540 0.9851 +vn 0.0834 -0.1675 0.9823 +vn 0.0691 -0.1576 0.9851 +vn 0.0751 -0.1714 0.9823 +vn 0.0612 -0.1608 0.9851 +vn 0.0666 -0.1749 0.9823 +vn 0.0310 -0.1410 0.9895 +vn 0.0339 -0.1542 0.9875 +vn 0.0241 -0.1423 0.9895 +vn 0.0263 -0.1556 0.9875 +vn 0.0533 -0.1636 0.9851 +vn 0.0579 -0.1779 0.9823 +vn 0.0452 -0.1660 0.9851 +vn 0.0491 -0.1805 0.9823 +vn 0.0171 -0.1434 0.9895 +vn 0.0187 -0.1567 0.9875 +vn 0.0100 -0.1440 0.9895 +vn 0.0109 -0.1575 0.9875 +vn 0.0370 -0.1681 0.9851 +vn 0.0402 -0.1827 0.9823 +vn 0.0287 -0.1697 0.9851 +vn 0.0312 -0.1845 0.9823 +vn 0.0029 -0.1443 0.9895 +vn 0.0032 -0.1578 0.9875 +vn -0.0042 -0.1443 0.9895 +vn -0.0045 -0.1578 0.9875 +vn 0.0203 -0.1709 0.9851 +vn 0.0221 -0.1858 0.9823 +vn 0.0119 -0.1717 0.9851 +vn 0.0130 -0.1867 0.9823 +vn 0.0629 -0.1930 0.9792 +vn 0.0681 -0.2091 0.9755 +vn 0.0783 -0.2055 0.9755 +vn 0.0723 -0.1897 0.9792 +vn 0.0533 -0.1959 0.9792 +vn 0.0577 -0.2121 0.9755 +vn 0.0436 -0.1983 0.9792 +vn 0.0473 -0.2147 0.9755 +vn 0.0339 -0.2002 0.9792 +vn 0.0367 -0.2168 0.9755 +vn 0.0815 -0.1859 0.9792 +vn 0.0882 -0.2014 0.9755 +vn 0.0980 -0.1968 0.9755 +vn 0.0905 -0.1817 0.9792 +vn 0.0035 -0.1720 0.9851 +vn 0.0038 -0.1871 0.9823 +vn -0.0050 -0.1720 0.9851 +vn -0.0054 -0.1870 0.9823 +vn 0.0985 -0.1775 0.9792 +vn 0.1068 -0.1922 0.9755 +vn 0.1151 -0.1874 0.9755 +vn 0.1062 -0.1731 0.9792 +vn -0.0104 -0.1440 0.9895 +vn -0.0114 -0.1574 0.9875 +vn -0.0163 -0.1435 0.9895 +vn -0.0180 -0.1568 0.9875 +vn -0.0218 -0.1202 0.9925 +vn -0.0229 -0.1295 0.9913 +vn -0.0246 -0.1422 0.9895 +vn -0.0266 -0.1555 0.9875 +vn -0.0125 -0.1716 0.9851 +vn -0.0137 -0.1866 0.9823 +vn -0.0198 -0.1709 0.9851 +vn -0.0217 -0.1859 0.9823 +vn -0.0769 -0.1585 0.9844 +vn -0.0416 -0.1668 0.9851 +vn -0.0789 -0.1734 0.9817 +vn -0.0435 -0.1818 0.9824 +vn -0.0287 -0.1696 0.9851 +vn -0.0310 -0.1845 0.9823 +vn -0.0808 -0.1886 0.9787 +vn -0.0457 -0.1975 0.9792 +vn -0.0334 -0.2002 0.9792 +vn -0.0237 -0.2016 0.9792 +vn -0.0149 -0.2025 0.9792 +vn -0.0162 -0.2193 0.9755 +vn -0.0063 -0.2198 0.9755 +vn -0.0058 -0.2029 0.9792 +vn -0.0175 -0.2371 0.9713 +vn -0.0068 -0.2376 0.9713 +vn 0.0041 -0.2030 0.9792 +vn 0.0045 -0.2198 0.9755 +vn 0.0152 -0.2193 0.9755 +vn 0.0141 -0.2025 0.9792 +vn 0.0048 -0.2377 0.9713 +vn 0.0052 -0.2566 0.9665 +vn 0.0178 -0.2561 0.9665 +vn 0.0165 -0.2371 0.9713 +vn 0.0056 -0.2767 0.9609 +vn 0.0061 -0.2982 0.9545 +vn 0.0207 -0.2975 0.9545 +vn 0.0192 -0.2761 0.9609 +vn 0.0240 -0.2016 0.9792 +vn 0.0260 -0.2183 0.9755 +vn 0.0281 -0.2361 0.9713 +vn 0.0303 -0.2549 0.9665 +vn 0.0428 -0.2531 0.9665 +vn 0.0396 -0.2344 0.9713 +vn 0.0511 -0.2322 0.9713 +vn 0.0552 -0.2507 0.9665 +vn 0.0674 -0.2477 0.9665 +vn 0.0624 -0.2294 0.9713 +vn 0.0327 -0.2749 0.9609 +vn 0.0352 -0.2961 0.9545 +vn 0.0497 -0.2940 0.9545 +vn 0.0462 -0.2729 0.9609 +vn 0.0595 -0.2703 0.9609 +vn 0.0641 -0.2912 0.9545 +vn 0.0783 -0.2878 0.9545 +vn 0.0727 -0.2671 0.9609 +vn 0.0736 -0.2260 0.9713 +vn 0.0795 -0.2441 0.9665 +vn 0.0914 -0.2399 0.9665 +vn 0.0846 -0.2222 0.9713 +vn 0.0857 -0.2632 0.9609 +vn 0.0923 -0.2836 0.9545 +vn 0.1061 -0.2787 0.9545 +vn 0.0985 -0.2587 0.9609 +vn 0.0954 -0.2177 0.9713 +vn 0.1030 -0.2351 0.9665 +vn 0.1144 -0.2298 0.9665 +vn 0.1060 -0.2128 0.9713 +vn 0.1111 -0.2535 0.9609 +vn 0.1197 -0.2731 0.9545 +vn 0.1329 -0.2669 0.9545 +vn 0.1234 -0.2478 0.9609 +vn 0.1155 -0.2078 0.9713 +vn 0.1247 -0.2243 0.9665 +vn 0.1345 -0.2186 0.9665 +vn 0.1245 -0.2025 0.9713 +vn 0.1345 -0.2419 0.9609 +vn 0.1450 -0.2606 0.9545 +vn 0.1564 -0.2539 0.9545 +vn 0.1451 -0.2357 0.9609 +vn 0.1298 -0.2963 0.9462 +vn 0.1414 -0.3227 0.9359 +vn 0.1571 -0.3154 0.9359 +vn 0.1442 -0.2896 0.9462 +vn 0.1151 -0.3023 0.9462 +vn 0.1254 -0.3293 0.9359 +vn 0.1573 -0.2827 0.9462 +vn 0.1713 -0.3079 0.9359 +vn 0.1850 -0.2999 0.9359 +vn 0.1698 -0.2754 0.9462 +vn 0.1555 -0.2289 0.9609 +vn 0.1442 -0.2122 0.9665 +vn 0.1674 -0.2467 0.9545 +vn 0.1774 -0.2393 0.9546 +vn 0.1653 -0.2216 0.9610 +vn 0.1541 -0.2049 0.9666 +vn 0.1002 -0.3076 0.9462 +vn 0.1091 -0.3350 0.9359 +vn 0.0849 -0.3121 0.9462 +vn 0.0925 -0.3400 0.9359 +vn 0.1337 -0.1965 0.9713 +vn 0.1237 -0.1817 0.9755 +vn 0.1435 -0.1891 0.9714 +vn 0.1337 -0.1742 0.9756 +vn 0.0695 -0.3159 0.9462 +vn 0.0757 -0.3441 0.9359 +vn 0.0539 -0.3189 0.9463 +vn 0.0588 -0.3474 0.9359 +vn 0.1143 -0.1677 0.9792 +vn 0.1245 -0.1601 0.9792 +vn 0.1531 -0.1377 0.9786 +vn 0.1624 -0.1517 0.9750 +vn 0.1723 -0.1666 0.9709 +vn 0.2203 -0.1283 0.9670 +vn 0.1829 -0.1823 0.9661 +vn 0.2311 -0.1437 0.9623 +vn 0.1943 -0.1990 0.9606 +vn 0.2426 -0.1602 0.9568 +vn 0.2063 -0.2167 0.9542 +vn 0.2739 -0.0840 0.9581 +vn 0.3373 -0.0297 0.9409 +vn 0.2846 -0.0994 0.9535 +vn 0.2960 -0.1157 0.9482 +vn 0.4115 0.0370 0.9107 +vn 0.4958 0.1178 0.8604 +vn 0.5863 0.2121 0.7818 +vn 0.5778 0.2237 0.7849 +vn 0.5699 0.2348 0.7875 +vn 0.6600 0.3345 0.6727 +vn 0.7352 0.4321 0.5223 +vn 0.7301 0.4389 0.5237 +vn 0.7253 0.4454 0.5249 +vn 0.7768 0.5239 0.3494 +vn 0.6962 0.4335 0.5722 +vn 0.3478 0.0980 0.9324 +vn 0.3476 0.1137 0.9307 +vn 0.6949 0.4430 0.5665 +vn 0.6980 0.4239 0.5771 +vn 0.3491 0.0823 0.9335 +vn 0.6951 0.4509 0.5599 +vn 0.3503 0.1273 0.9279 +vn 0.2206 -0.2375 0.9460 +vn 0.1916 -0.2601 0.9464 +vn 0.2079 -0.2839 0.9360 +vn 0.2370 -0.2613 0.9357 +vn 0.1816 -0.2676 0.9463 +vn 0.1977 -0.2916 0.9359 +vn 0.2540 -0.2859 0.9240 +vn 0.2249 -0.3086 0.9242 +vn 0.2144 -0.3164 0.9241 +vn 0.2340 -0.3454 0.9088 +vn 0.2008 -0.3253 0.9240 +vn 0.2192 -0.3550 0.9088 +vn 0.2570 -0.3795 0.8888 +vn 0.2409 -0.3900 0.8887 +vn 0.1859 -0.3340 0.9241 +vn 0.2030 -0.3646 0.9088 +vn 0.1704 -0.3422 0.9241 +vn 0.1860 -0.3735 0.9088 +vn 0.2230 -0.4005 0.8887 +vn 0.2448 -0.4396 0.8642 +vn 0.2044 -0.4103 0.8887 +vn 0.2243 -0.4504 0.8642 +vn 0.1534 -0.3501 0.9241 +vn 0.1675 -0.3822 0.9088 +vn 0.1361 -0.3572 0.9241 +vn 0.1485 -0.3899 0.9088 +vn 0.2684 -0.4820 0.8341 +vn 0.2939 -0.5277 0.7970 +vn 0.2460 -0.4939 0.8340 +vn 0.2693 -0.5407 0.7969 +vn 0.1840 -0.4199 0.8887 +vn 0.2019 -0.4609 0.8642 +vn 0.1632 -0.4284 0.8887 +vn 0.1791 -0.4702 0.8642 +vn 0.1184 -0.3635 0.9241 +vn 0.1292 -0.3968 0.9088 +vn 0.1004 -0.3688 0.9241 +vn 0.1096 -0.4026 0.9088 +vn 0.3212 -0.5766 0.7512 +vn 0.3500 -0.6282 0.6949 +vn 0.2943 -0.5908 0.7512 +vn 0.3206 -0.6437 0.6949 +vn 0.2214 -0.5053 0.8340 +vn 0.2424 -0.5533 0.7969 +vn 0.1964 -0.5156 0.8340 +vn 0.2150 -0.5645 0.7969 +vn 0.1419 -0.4359 0.8887 +vn 0.1558 -0.4784 0.8642 +vn 0.1204 -0.4423 0.8887 +vn 0.1321 -0.4855 0.8642 +vn 0.3797 -0.6815 0.6256 +vn 0.3478 -0.6984 0.6255 +vn 0.2649 -0.6046 0.7512 +vn 0.2886 -0.6587 0.6949 +vn 0.2349 -0.6168 0.7512 +vn 0.3131 -0.7146 0.6255 +vn 0.2044 -0.6276 0.7512 +vn 0.1870 -0.5744 0.7969 +vn 0.1708 -0.5246 0.8340 +vn 0.1449 -0.5323 0.8341 +vn 0.1186 -0.5388 0.8340 +vn 0.1082 -0.4914 0.8642 +vn 0.0542 -0.4552 0.8887 +vn 0.0493 -0.4143 0.9088 +vn 0.0765 -0.4520 0.8887 +vn 0.0696 -0.4114 0.9088 +vn 0.0985 -0.4477 0.8887 +vn 0.0897 -0.4075 0.9088 +vn 0.0452 -0.3796 0.9241 +vn 0.0416 -0.3499 0.9359 +vn 0.0637 -0.3769 0.9241 +vn 0.0066 -0.3234 0.9462 +vn 0.0224 -0.3227 0.9462 +vn 0.0822 -0.3733 0.9241 +vn 0.0382 -0.3212 0.9462 +vn 0.4938 0.7460 0.4468 +vn 0.6210 0.7235 0.3016 +vn 0.4898 0.7409 0.4595 +vn 0.0055 0.6037 0.7972 +vn 0.5368 0.6734 0.5084 +vn 0.0999 0.4742 0.8747 +vn 0.5763 0.6209 0.5314 +vn 0.1620 0.3938 0.9048 +vn 0.6091 0.5770 0.5441 +vn 0.2133 0.3272 0.9206 +vn 0.6350 0.5426 0.5499 +vn 0.2537 0.2747 0.9274 +vn -0.7561 0.4656 0.4599 +vn -0.8674 0.3954 0.3021 +vn -0.2568 0.5444 0.7985 +vn -0.7615 0.4692 0.4472 +vn 0.9600 0.0315 0.2782 +vn 0.7340 -0.5264 0.4292 +vn 0.9803 0.0071 0.1972 +vn 0.7659 -0.5664 0.3044 +vn 0.9996 -0.0272 0.0107 +vn 0.7958 -0.6054 0.0154 +vn 0.7942 -0.6031 0.0742 +vn 0.9985 -0.0230 0.0495 +vn 0.9584 0.2852 0.0067 +vn 0.9579 0.2870 -0.0014 +vn 0.9995 -0.0324 -0.0024 +vn 0.7954 -0.6061 -0.0046 +vn 0.9965 0.0831 0.0108 +vn 0.9928 -0.1185 0.0148 +vn 0.9931 -0.1170 -0.0018 +vn 0.9964 0.0849 -0.0017 +vn 0.9545 -0.2978 0.0181 +vn 0.8959 -0.4438 0.0206 +vn 0.8964 -0.4433 -0.0012 +vn 0.9549 -0.2968 -0.0015 +vn 0.8305 -0.5566 0.0224 +vn 0.7667 -0.6416 0.0236 +vn 0.7671 -0.6415 -0.0006 +vn 0.8310 -0.5563 -0.0009 +vn 0.7085 -0.7053 0.0244 +vn 0.6569 -0.7535 0.0248 +vn 0.6572 -0.7537 -0.0003 +vn 0.7088 -0.7054 -0.0004 +vn 0.6075 -0.7939 0.0250 +vn 0.5776 -0.8159 0.0251 +vn 0.5778 -0.8162 -0.0000 +vn 0.6077 -0.7942 -0.0001 +vn 0.5599 -0.8282 0.0251 +vn 0.5601 -0.8284 -0.0000 +vn 0.5260 -0.8502 0.0231 +vn 0.5261 -0.8504 -0.0000 +vn 0.4865 -0.8733 0.0251 +vn 0.4867 -0.8736 0.0000 +vn 0.4457 -0.8949 0.0230 +vn 0.4458 -0.8951 -0.0000 +vn 0.4012 -0.9156 0.0251 +vn 0.4013 -0.9159 -0.0000 +vn 0.3558 -0.9343 0.0230 +vn 0.3559 -0.9345 -0.0001 +vn 0.3095 -0.9506 0.0251 +vn 0.3096 -0.9509 -0.0001 +vn 0.2625 -0.9647 0.0230 +vn 0.2626 -0.9649 -0.0001 +vn 0.2149 -0.9763 0.0252 +vn 0.2149 -0.9766 -0.0000 +vn 0.1667 -0.9857 0.0230 +vn 0.1668 -0.9860 0.0000 +vn 0.1181 -0.9927 0.0251 +vn 0.1182 -0.9930 -0.0000 +vn 0.0693 -0.9973 0.0230 +vn 0.0693 -0.9976 0.0000 +vn 0.0203 -0.9995 0.0251 +vn 0.0203 -0.9998 0.0000 +vn -0.0288 -0.9993 0.0230 +vn -0.0288 -0.9996 -0.0000 +vn -0.0749 -0.9969 0.0251 +vn -0.0750 -0.9972 0.0000 +vn -0.1204 -0.9925 0.0230 +vn -0.1204 -0.9927 -0.0000 +vn -0.1605 -0.9867 0.0251 +vn -0.1606 -0.9870 0.0000 +vn -0.1817 -0.9831 0.0227 +vn -0.1818 -0.9833 -0.0001 +vn -0.2181 -0.9756 0.0251 +vn -0.2799 -0.9597 0.0249 +vn -0.2800 -0.9600 -0.0004 +vn -0.2181 -0.9759 -0.0002 +vn -0.3469 -0.9376 0.0244 +vn -0.4265 -0.9042 0.0237 +vn -0.4269 -0.9043 -0.0006 +vn -0.3472 -0.9378 -0.0004 +vn -0.5201 -0.8538 0.0225 +vn -0.6268 -0.7789 0.0208 +vn -0.6275 -0.7786 -0.0012 +vn -0.5206 -0.8538 -0.0009 +vn -0.7412 -0.6710 0.0183 +vn -0.8513 -0.5244 0.0150 +vn -0.8522 -0.5232 -0.0016 +vn -0.7421 -0.6703 -0.0014 +vn -0.9393 -0.3430 0.0110 +vn -0.9896 -0.1436 0.0068 +vn -0.9899 -0.1418 -0.0014 +vn -0.9400 -0.3413 -0.0016 +vn -0.9382 -0.3431 0.0453 +vn -0.9891 -0.1443 0.0294 +vn -0.8959 -0.4442 0.0109 +vn -0.4678 -0.8837 0.0155 +vn -0.4673 -0.8841 -0.0045 +vn -0.8935 -0.4490 -0.0023 +vn -0.8967 -0.4398 0.0496 +vn -0.4671 -0.8811 0.0743 +vn -0.8968 -0.4277 0.1136 +vn -0.9877 -0.1416 0.0666 +vn -0.4639 -0.8675 0.1796 +vn -0.9358 -0.3379 0.1006 +vn 0.7005 0.4141 0.5812 +vn 0.3515 0.0666 0.9338 +vn 0.9934 -0.0117 0.1139 +vn 0.7864 -0.5927 0.1741 +vn -0.3278 -0.8387 0.4348 +vn 0.5495 0.8294 0.1009 +vn 0.3710 0.9262 0.0668 +vn 0.3593 0.9261 0.1151 +vn 0.5314 0.8294 0.1726 +vn 0.7014 0.7007 0.1305 +vn 0.6779 0.7009 0.2217 +vn 0.7097 0.7020 0.0594 +vn 0.5551 0.8305 0.0453 +vn 0.3740 0.9270 0.0294 +vn -0.4906 0.8465 0.2069 +vn -0.8541 0.3887 0.3457 +vn -0.8582 0.3878 0.3362 +vn -0.4970 0.8441 0.2010 +vn -0.3099 0.9408 0.1370 +vn -0.3095 0.9420 0.1299 +vn -0.3009 0.9392 0.1657 +vn -0.4693 0.8492 0.2420 +vn -0.8308 0.3880 0.3991 +vn 0.0579 -0.9866 0.1526 +vn -0.1233 -0.9838 0.1302 +vn -0.1192 -0.9911 0.0595 +vn 0.0635 -0.9955 0.0706 +vn 0.2118 -0.9628 0.1679 +vn 0.2186 -0.9727 0.0784 +vn 0.1926 -0.9396 0.2831 +vn 0.0406 -0.9652 0.2583 +vn -0.1379 -0.9654 0.2215 +vn -0.6776 -0.4886 0.5496 +vn -0.7485 -0.5603 0.3548 +vn -0.7669 -0.5367 0.3518 +vn -0.7051 -0.4555 0.5435 +vn -0.3264 -0.1808 0.9278 +vn -0.3672 -0.1285 0.9212 +vn -0.2919 -0.2249 0.9296 +vn -0.6554 -0.5159 0.5516 +vn -0.7337 -0.5791 0.3555 +vn -0.9703 -0.1196 0.2102 +vn -0.9333 -0.3322 0.1365 +vn -0.9341 -0.3330 0.1290 +vn -0.9726 -0.1130 0.2034 +vn -0.8245 0.4469 0.3470 +vn -0.8262 0.4514 0.3372 +vn -0.8106 0.4274 0.4004 +vn -0.9593 -0.1381 0.2463 +vn -0.9263 -0.3386 0.1653 +vn 0.8147 0.5593 0.1529 +vn 0.8903 0.4231 0.1682 +vn 0.9023 0.4238 0.0784 +vn 0.8252 0.5604 0.0705 +vn 0.7872 0.5599 0.2585 +vn 0.8602 0.4241 0.2833 +vn 0.9364 0.3024 0.1778 +vn 0.9624 0.2002 0.1835 +vn 0.9759 0.2002 0.0867 +vn 0.9494 0.3027 0.0835 +vn 0.9047 0.3038 0.2986 +vn 0.9299 0.2019 0.3074 +vn 0.7445 0.5616 0.3611 +vn 0.8137 0.4262 0.3954 +vn 0.6410 0.7021 0.3100 +vn 0.5983 0.7045 0.3817 +vn 0.6951 0.5646 0.4449 +vn 0.7601 0.4297 0.4875 +vn 0.5025 0.8301 0.2417 +vn 0.3398 0.9265 0.1614 +vn 0.3172 0.9274 0.1984 +vn 0.4690 0.8317 0.2973 +vn 0.9756 0.1155 0.1866 +vn 0.9811 0.0456 0.1880 +vn 0.9950 0.0450 0.0896 +vn 0.9894 0.1151 0.0886 +vn 0.9428 0.1173 0.3120 +vn 0.9482 0.0475 0.3141 +vn 0.4346 0.8332 0.3419 +vn 0.5543 0.7069 0.4394 +vn 0.2942 0.9282 0.2278 +vn 0.2716 0.9289 0.2518 +vn 0.4006 0.8346 0.3781 +vn 0.5106 0.7090 0.4863 +vn 0.4905 0.7798 0.3890 +vn 0.7500 0.2649 0.6061 +vn 0.6919 0.2664 0.6710 +vn 0.4531 0.7804 0.4310 +vn 0.5276 0.7794 0.3378 +vn 0.8080 0.2635 0.5269 +vn 0.4167 0.7811 0.4651 +vn 0.2497 0.9296 0.2712 +vn 0.6355 0.2681 0.7241 +vn 0.5819 0.2700 0.7671 +vn 0.3821 0.7820 0.4925 +vn 0.2292 0.9301 0.2869 +vn 0.3496 0.7829 0.5146 +vn 0.2101 0.9307 0.2995 +vn 0.5317 0.2721 0.8020 +vn 0.4851 0.2745 0.8302 +vn 0.3193 0.7841 0.5321 +vn 0.1925 0.9311 0.3098 +vn 0.3678 0.8359 0.4074 +vn 0.4686 0.7111 0.5242 +vn 0.3370 0.8370 0.4311 +vn 0.4289 0.7129 0.5548 +vn 0.6440 0.5677 0.5128 +vn 0.7043 0.4334 0.5623 +vn 0.5932 0.5706 0.5679 +vn 0.6487 0.4367 0.6233 +vn 0.8560 0.3063 0.4165 +vn 0.8801 0.2046 0.4285 +vn 0.7999 0.3100 0.5138 +vn 0.8227 0.2085 0.5289 +vn 0.8924 0.1203 0.4349 +vn 0.8977 0.0506 0.4377 +vn 0.8345 0.1241 0.5369 +vn 0.8396 0.0543 0.5405 +vn 0.7414 0.3139 0.5931 +vn 0.7626 0.2125 0.6110 +vn 0.6830 0.3176 0.6578 +vn 0.7026 0.2164 0.6779 +vn 0.5442 0.5733 0.6125 +vn 0.5951 0.4400 0.6725 +vn 0.4980 0.5758 0.6485 +vn 0.5445 0.4430 0.7123 +vn 0.9819 -0.0179 0.1885 +vn 0.9806 -0.0548 0.1884 +vn 0.9944 -0.0556 0.0900 +vn 0.9958 -0.0187 0.0900 +vn 0.9491 -0.0159 0.3147 +vn 0.9478 -0.0527 0.3144 +vn 0.8986 -0.0127 0.4385 +vn 0.8976 -0.0495 0.4381 +vn 0.8406 -0.0090 0.5416 +vn 0.8397 -0.0459 0.5412 +vn 0.7736 0.1281 0.6205 +vn 0.7785 0.0583 0.6250 +vn 0.7129 0.1320 0.6887 +vn 0.7174 0.0622 0.6939 +vn 0.9792 -0.0760 0.1882 +vn 0.9930 -0.0770 0.0900 +vn 0.9465 -0.0734 0.3141 +vn 0.9428 -0.1117 0.3140 +vn 0.9753 -0.1156 0.1882 +vn 0.9890 -0.1172 0.0900 +vn 0.6266 0.3212 0.7101 +vn 0.6447 0.2201 0.7321 +vn 0.5733 0.3245 0.7524 +vn 0.5899 0.2235 0.7760 +vn 0.3082 0.8381 0.4501 +vn 0.3919 0.7146 0.5794 +vn 0.2817 0.8390 0.4655 +vn 0.3578 0.7161 0.5993 +vn 0.2913 0.7855 0.5460 +vn 0.4421 0.2773 0.8530 +vn 0.4025 0.2804 0.8714 +vn 0.2654 0.7872 0.5567 +vn 0.1762 0.9316 0.3180 +vn 0.1614 0.9319 0.3247 +vn 0.2435 0.7886 0.5646 +vn 0.1487 0.9323 0.3296 +vn 0.3688 0.2837 0.8852 +vn 0.3399 0.2874 0.8955 +vn 0.2245 0.7907 0.5696 +vn 0.1380 0.9326 0.3335 +vn 0.2573 0.8399 0.4779 +vn 0.3265 0.7174 0.6154 +vn 0.2350 0.8406 0.4880 +vn 0.2977 0.7186 0.6284 +vn 0.4548 0.5781 0.6775 +vn 0.4973 0.4457 0.7444 +vn 0.4150 0.5801 0.7009 +vn 0.4536 0.4482 0.7703 +vn 0.6541 0.1358 0.7441 +vn 0.6583 0.0660 0.7498 +vn 0.5986 0.1393 0.7889 +vn 0.6024 0.0696 0.7952 +vn 0.5236 0.3275 0.7865 +vn 0.5387 0.2267 0.8114 +vn 0.4775 0.3303 0.8142 +vn 0.4913 0.2297 0.8402 +vn 0.3784 0.5820 0.7198 +vn 0.4134 0.4504 0.7914 +vn 0.3448 0.5836 0.7352 +vn 0.3765 0.4525 0.8084 +vn 0.2160 0.8413 0.4955 +vn 0.2732 0.7198 0.6382 +vn 0.1998 0.8418 0.5014 +vn 0.2524 0.7206 0.6458 +vn 0.4351 0.3328 0.8366 +vn 0.4477 0.2324 0.8635 +vn 0.3962 0.3351 0.8548 +vn 0.4076 0.2348 0.8825 +vn 0.3162 0.5852 0.7467 +vn 0.3452 0.4543 0.8212 +vn 0.2919 0.5864 0.7556 +vn 0.3185 0.4558 0.8312 +vn 0.1842 0.8423 0.5065 +vn 0.2324 0.7214 0.6523 +vn 0.1276 0.9328 0.3370 +vn 0.1185 0.9331 0.3396 +vn 0.1706 0.8428 0.5104 +vn 0.2148 0.7222 0.6575 +vn 0.2063 0.7926 0.5738 +vn 0.3121 0.2910 0.9044 +vn 0.2878 0.2945 0.9113 +vn 0.1905 0.7943 0.5769 +vn 0.1768 0.7964 0.5783 +vn 0.1109 0.9333 0.3416 +vn 0.2671 0.2985 0.9163 +vn 0.2477 0.3028 0.9203 +vn 0.1640 0.7987 0.5789 +vn 0.1037 0.9334 0.3434 +vn 0.1520 0.8013 0.5786 +vn 0.0969 0.9336 0.3450 +vn 0.2294 0.3076 0.9235 +vn 0.2121 0.3128 0.9258 +vn 0.1406 0.8040 0.5777 +vn 0.0906 0.9337 0.3463 +vn 0.1591 0.8432 0.5135 +vn 0.2000 0.7228 0.6615 +vn 0.1483 0.8435 0.5162 +vn 0.1861 0.7233 0.6650 +vn 0.2684 0.5875 0.7634 +vn 0.2928 0.4572 0.8398 +vn 0.2480 0.5885 0.7695 +vn 0.2703 0.4584 0.8466 +vn 0.1299 0.8071 0.5760 +vn 0.0846 0.9338 0.3475 +vn 0.1959 0.3185 0.9275 +vn 0.1805 0.3248 0.9284 +vn 0.1198 0.8103 0.5736 +vn 0.0789 0.9340 0.3485 +vn 0.1381 0.8438 0.5185 +vn 0.1730 0.7239 0.6679 +vn 0.1285 0.8441 0.5205 +vn 0.1607 0.7243 0.6705 +vn 0.2306 0.5894 0.7742 +vn 0.2512 0.4594 0.8520 +vn 0.2143 0.5901 0.7783 +vn 0.2333 0.4604 0.8565 +vn 0.3632 0.3371 0.8686 +vn 0.3735 0.2370 0.8968 +vn 0.3350 0.3388 0.8792 +vn 0.3444 0.2388 0.9079 +vn 0.3078 0.3404 0.8885 +vn 0.3164 0.2405 0.9176 +vn 0.2840 0.3418 0.8958 +vn 0.2919 0.2420 0.9253 +vn 0.2639 0.3430 0.9015 +vn 0.2711 0.2432 0.9313 +vn 0.2450 0.3440 0.9064 +vn 0.2516 0.2444 0.9365 +vn 0.3789 0.1532 0.9127 +vn 0.3813 0.0835 0.9207 +vn 0.4161 0.0813 0.9057 +vn 0.4135 0.1510 0.8979 +vn 0.3494 0.1550 0.9241 +vn 0.3515 0.0854 0.9323 +vn 0.3208 0.1568 0.9341 +vn 0.3228 0.0872 0.9424 +vn 0.2959 0.1583 0.9420 +vn 0.2977 0.0888 0.9505 +vn 0.4542 0.1484 0.8784 +vn 0.4571 0.0788 0.8859 +vn 0.5018 0.0759 0.8617 +vn 0.4985 0.1457 0.8545 +vn 0.5466 0.1426 0.8251 +vn 0.5502 0.0729 0.8318 +vn 0.4579 0.0157 0.8889 +vn 0.4574 -0.0213 0.8890 +vn 0.5021 -0.0242 0.8645 +vn 0.5025 0.0127 0.8645 +vn 0.4168 0.0184 0.9088 +vn 0.4164 -0.0185 0.9090 +vn 0.5510 0.0096 0.8344 +vn 0.5505 -0.0274 0.8344 +vn 0.6028 -0.0307 0.7973 +vn 0.6033 0.0062 0.7975 +vn 0.6593 0.0026 0.7519 +vn 0.6587 -0.0343 0.7516 +vn 0.7177 -0.0381 0.6953 +vn 0.7184 -0.0012 0.6956 +vn 0.7795 -0.0051 0.6264 +vn 0.7787 -0.0420 0.6260 +vn 0.6580 -0.0508 0.7513 +vn 0.7169 -0.0554 0.6950 +vn 0.6022 -0.0465 0.7970 +vn 0.5998 -0.0713 0.7970 +vn 0.6555 -0.0778 0.7512 +vn 0.7141 -0.0847 0.6949 +vn 0.8964 -0.0695 0.4377 +vn 0.8386 -0.0650 0.5408 +vn 0.8354 -0.0990 0.5407 +vn 0.8929 -0.1058 0.4376 +vn 0.7778 -0.0602 0.6256 +vn 0.7748 -0.0919 0.6255 +vn 0.5500 -0.0424 0.8341 +vn 0.5016 -0.0386 0.8642 +vn 0.4997 -0.0595 0.8642 +vn 0.5479 -0.0651 0.8340 +vn 0.9690 -0.1600 0.1882 +vn 0.9826 -0.1623 0.0900 +vn 0.9367 -0.1547 0.3140 +vn 0.9286 -0.1978 0.3140 +vn 0.9606 -0.2046 0.1882 +vn 0.9741 -0.2075 0.0900 +vn 0.9494 -0.2515 0.1882 +vn 0.9627 -0.2550 0.0900 +vn 0.9178 -0.2431 0.3140 +vn 0.9047 -0.2879 0.3140 +vn 0.9359 -0.2978 0.1882 +vn 0.9491 -0.3020 0.0900 +vn 0.8871 -0.1465 0.4376 +vn 0.8300 -0.1371 0.5407 +vn 0.8228 -0.1753 0.5406 +vn 0.8795 -0.1873 0.4376 +vn 0.9202 -0.3433 0.1882 +vn 0.9331 -0.3482 0.0900 +vn 0.8895 -0.3319 0.3140 +vn 0.8722 -0.3752 0.3140 +vn 0.9022 -0.3881 0.1882 +vn 0.9149 -0.3935 0.0900 +vn 0.8821 -0.4319 0.1882 +vn 0.8945 -0.4380 0.0900 +vn 0.8527 -0.4175 0.3140 +vn 0.8312 -0.4588 0.3140 +vn 0.8598 -0.4746 0.1882 +vn 0.8719 -0.4813 0.0900 +vn 0.8692 -0.2303 0.4376 +vn 0.8132 -0.2154 0.5407 +vn 0.8016 -0.2551 0.5407 +vn 0.8569 -0.2726 0.4376 +vn 0.8424 -0.3143 0.4376 +vn 0.7882 -0.2941 0.5407 +vn 0.7728 -0.3324 0.5407 +vn 0.8260 -0.3553 0.4376 +vn 0.8076 -0.3954 0.4376 +vn 0.7555 -0.3699 0.5407 +vn 0.7365 -0.4066 0.5406 +vn 0.7872 -0.4346 0.4376 +vn 0.7310 -0.2728 0.6255 +vn 0.6738 -0.2514 0.6949 +vn 0.6606 -0.2842 0.6949 +vn 0.7167 -0.3083 0.6255 +vn 0.7435 -0.2366 0.6255 +vn 0.6853 -0.2180 0.6949 +vn 0.7007 -0.3431 0.6255 +vn 0.6459 -0.3162 0.6949 +vn 0.6296 -0.3476 0.6949 +vn 0.6830 -0.3771 0.6255 +vn 0.8355 -0.5163 0.1882 +vn 0.8472 -0.5235 0.0900 +vn 0.8077 -0.4991 0.3140 +vn 0.7822 -0.5381 0.3140 +vn 0.8092 -0.5566 0.1882 +vn 0.8205 -0.5645 0.0900 +vn 0.7809 -0.5957 0.1882 +vn 0.7919 -0.6040 0.0900 +vn 0.7549 -0.5758 0.3140 +vn 0.7257 -0.6122 0.3140 +vn 0.7507 -0.6333 0.1882 +vn 0.7613 -0.6422 0.0900 +vn 0.7649 -0.4727 0.4376 +vn 0.7156 -0.4422 0.5407 +vn 0.6931 -0.4768 0.5407 +vn 0.7408 -0.5096 0.4376 +vn 0.7206 -0.6673 0.1882 +vn 0.7308 -0.6767 0.0900 +vn 0.6967 -0.6450 0.3140 +vn 0.6664 -0.6762 0.3140 +vn 0.6894 -0.6995 0.1882 +vn 0.6991 -0.7094 0.0900 +vn 0.7149 -0.5454 0.4376 +vn 0.6689 -0.5102 0.5407 +vn 0.6430 -0.5424 0.5407 +vn 0.6873 -0.5798 0.4376 +vn 0.6605 -0.7269 0.1882 +vn 0.6698 -0.7371 0.0900 +vn 0.6384 -0.7027 0.3141 +vn 0.6229 -0.7163 0.3144 +vn 0.6446 -0.7410 0.1884 +vn 0.6537 -0.7514 0.0900 +vn 0.6598 -0.6109 0.4376 +vn 0.6173 -0.5715 0.5407 +vn 0.5905 -0.5991 0.5407 +vn 0.6312 -0.6404 0.4376 +vn 0.6163 -0.7646 0.1884 +vn 0.5656 -0.8030 0.1879 +vn 0.5747 -0.8139 0.0855 +vn 0.6254 -0.7751 0.0899 +vn 0.5946 -0.7399 0.3147 +vn 0.5440 -0.7781 0.3141 +vn 0.6046 -0.6655 0.4377 +vn 0.5656 -0.6226 0.5408 +vn 0.5512 -0.6351 0.5412 +vn 0.5896 -0.6786 0.4381 +vn 0.5612 -0.7020 0.4384 +vn 0.5106 -0.7401 0.4377 +vn 0.5226 -0.6584 0.5416 +vn 0.4720 -0.6965 0.5405 +vn 0.5071 -0.8415 0.1864 +vn 0.4320 -0.8830 0.1833 +vn 0.4403 -0.8934 0.0892 +vn 0.5157 -0.8522 0.0886 +vn 0.4855 -0.8167 0.3119 +vn 0.4108 -0.8584 0.3073 +vn 0.3354 -0.9252 0.1776 +vn 0.3431 -0.9356 0.0835 +vn 0.3149 -0.9010 0.2985 +vn 0.2831 -0.8640 0.4164 +vn 0.1623 -0.9041 0.3953 +vn 0.3781 -0.8207 0.4284 +vn 0.3399 -0.7777 0.5289 +vn 0.2457 -0.8220 0.5138 +vn 0.1267 -0.8639 0.4875 +vn 0.4821 -0.6126 0.6264 +vn 0.4313 -0.6506 0.6250 +vn 0.5107 -0.5893 0.6260 +vn 0.4703 -0.5435 0.6953 +vn 0.4415 -0.5667 0.6956 +vn 0.3908 -0.6048 0.6939 +vn 0.5245 -0.5775 0.6256 +vn 0.4834 -0.5323 0.6950 +vn 0.5477 -0.5557 0.6255 +vn 0.5049 -0.5121 0.6949 +vn 0.3733 -0.6896 0.6206 +vn 0.2998 -0.7326 0.6110 +vn 0.4138 -0.7352 0.5369 +vn 0.3329 -0.6441 0.6887 +vn 0.2600 -0.6877 0.6779 +vn 0.5725 -0.5300 0.6256 +vn 0.5277 -0.4885 0.6949 +vn 0.5963 -0.5031 0.6255 +vn 0.5497 -0.4637 0.6949 +vn 0.4023 -0.5224 0.7519 +vn 0.3516 -0.5605 0.7498 +vn 0.4311 -0.4992 0.7516 +vn 0.3940 -0.4572 0.7973 +vn 0.3651 -0.4804 0.7975 +vn 0.3145 -0.5185 0.7952 +vn 0.4437 -0.4886 0.7513 +vn 0.4060 -0.4472 0.7970 +vn 0.4634 -0.4700 0.7512 +vn 0.4241 -0.4301 0.7969 +vn 0.6203 -0.4732 0.6255 +vn 0.5718 -0.4362 0.6949 +vn 0.6428 -0.4422 0.6255 +vn 0.5925 -0.4076 0.6949 +vn 0.4843 -0.4484 0.7512 +vn 0.4433 -0.4103 0.7970 +vn 0.5045 -0.4256 0.7512 +vn 0.4617 -0.3895 0.7969 +vn 0.6637 -0.4101 0.6255 +vn 0.6118 -0.3780 0.6949 +vn 0.5248 -0.4003 0.7512 +vn 0.4803 -0.3664 0.7969 +vn 0.5438 -0.3741 0.7512 +vn 0.4977 -0.3424 0.7969 +vn 0.5615 -0.3470 0.7512 +vn 0.5139 -0.3175 0.7969 +vn 0.5779 -0.3190 0.7512 +vn 0.5288 -0.2919 0.7969 +vn 0.5928 -0.2903 0.7512 +vn 0.5425 -0.2656 0.7969 +vn 0.6063 -0.2608 0.7512 +vn 0.5549 -0.2387 0.7969 +vn 0.4386 -0.3346 0.8341 +vn 0.4001 -0.3052 0.8642 +vn 0.3846 -0.3244 0.8642 +vn 0.4217 -0.3557 0.8340 +vn 0.4545 -0.3127 0.8340 +vn 0.4146 -0.2852 0.8642 +vn 0.4693 -0.2900 0.8340 +vn 0.4281 -0.2645 0.8642 +vn 0.4830 -0.2666 0.8340 +vn 0.4405 -0.2432 0.8642 +vn 0.4049 -0.3747 0.8341 +vn 0.3693 -0.3418 0.8642 +vn 0.3534 -0.3582 0.8642 +vn 0.3874 -0.3928 0.8340 +vn 0.3707 -0.4085 0.8341 +vn 0.3381 -0.3726 0.8642 +vn 0.3271 -0.3817 0.8645 +vn 0.3593 -0.4180 0.8344 +vn 0.3364 -0.3113 0.8888 +vn 0.3063 -0.2834 0.9088 +vn 0.2932 -0.2970 0.9088 +vn 0.3220 -0.3263 0.8887 +vn 0.3504 -0.2956 0.8887 +vn 0.3189 -0.2691 0.9088 +vn 0.3303 -0.4411 0.8344 +vn 0.2798 -0.4793 0.8319 +vn 0.2981 -0.4048 0.8645 +vn 0.2477 -0.4429 0.8617 +vn 0.3079 -0.3395 0.8888 +vn 0.2802 -0.3090 0.9088 +vn 0.2700 -0.3175 0.9090 +vn 0.2974 -0.3483 0.8890 +vn 0.2684 -0.3713 0.8889 +vn 0.2181 -0.4094 0.8859 +vn 0.2410 -0.3405 0.9088 +vn 0.1910 -0.3786 0.9056 +vn 0.2939 -0.6000 0.7441 +vn 0.2215 -0.6442 0.7321 +vn 0.2570 -0.5582 0.7889 +vn 0.1852 -0.6030 0.7760 +vn 0.2225 -0.5192 0.8252 +vn 0.1512 -0.5645 0.8115 +vn 0.1907 -0.4831 0.8545 +vn 0.1199 -0.5289 0.8402 +vn 0.2067 -0.7781 0.5932 +vn 0.0896 -0.8220 0.5624 +vn 0.1679 -0.7343 0.6578 +vn 0.0528 -0.7802 0.6233 +vn 0.0130 -0.9325 0.3610 +vn -0.1614 -0.9370 0.3099 +vn -0.0197 -0.8953 0.4450 +vn -0.1896 -0.9046 0.3818 +vn 0.1306 -0.6919 0.7101 +vn 0.0174 -0.7399 0.6725 +vn 0.0953 -0.6518 0.7524 +vn -0.0160 -0.7017 0.7123 +vn -0.0535 -0.8568 0.5128 +vn -0.2185 -0.8713 0.4395 +vn -0.0869 -0.8184 0.5680 +vn -0.2469 -0.8381 0.4863 +vn -0.3475 -0.9060 0.2415 +vn -0.5235 -0.8366 0.1613 +vn -0.5112 -0.8518 0.1149 +vn -0.3291 -0.9284 0.1724 +vn -0.3694 -0.8804 0.2974 +vn -0.5381 -0.8192 0.1984 +vn -0.2573 -0.9254 0.2781 +vn 0.3375 -0.8379 0.4290 +vn 0.3689 -0.8767 0.3088 +vn -0.2386 -0.9509 0.1970 +vn -0.2793 -0.8965 0.3440 +vn 0.3016 -0.7930 0.5293 +vn -0.3917 -0.8542 0.3419 +vn -0.5528 -0.8016 0.2279 +vn -0.4136 -0.8282 0.3782 +vn -0.5672 -0.7841 0.2519 +vn -0.1192 -0.7814 0.6125 +vn -0.2744 -0.8062 0.5242 +vn -0.1494 -0.7464 0.6485 +vn -0.3001 -0.7760 0.5548 +vn -0.3028 -0.8668 0.3962 +vn 0.2649 -0.7478 0.6088 +vn -0.3265 -0.8371 0.4388 +vn 0.2280 -0.7026 0.6741 +vn -0.4347 -0.8032 0.4074 +vn -0.5811 -0.7673 0.2712 +vn -0.4546 -0.7795 0.4310 +vn -0.5941 -0.7515 0.2869 +vn -0.3498 -0.8083 0.4736 +vn 0.1919 -0.6588 0.7274 +vn -0.3720 -0.7810 0.5016 +vn 0.1575 -0.6175 0.7706 +vn -0.1777 -0.7138 0.6775 +vn -0.3241 -0.7478 0.5794 +vn -0.0471 -0.6661 0.7444 +vn -0.0758 -0.6331 0.7703 +vn -0.2037 -0.6836 0.7009 +vn -0.3462 -0.7218 0.5993 +vn -0.3931 -0.7555 0.5241 +vn 0.1249 -0.5790 0.8057 +vn -0.6063 -0.7367 0.2995 +vn -0.6175 -0.7230 0.3098 +vn -0.4129 -0.7319 0.5420 +vn 0.0944 -0.5435 0.8341 +vn -0.4730 -0.7574 0.4501 +vn -0.4900 -0.7370 0.4655 +vn -0.4315 -0.7103 0.5562 +vn 0.0657 -0.5110 0.8571 +vn -0.6278 -0.7105 0.3179 +vn -0.6372 -0.6990 0.3247 +vn -0.4490 -0.6905 0.5671 +vn 0.0389 -0.4815 0.8756 +vn -0.5056 -0.7183 0.4779 +vn -0.3665 -0.6978 0.6154 +vn -0.3851 -0.6758 0.6284 +vn -0.5199 -0.7011 0.4880 +vn -0.4638 -0.6738 0.5752 +vn 0.0154 -0.4568 0.8894 +vn -0.6453 -0.6892 0.3296 +vn -0.6520 -0.6809 0.3335 +vn -0.4773 -0.6598 0.5804 +vn -0.0052 -0.4362 0.8998 +vn -0.4903 -0.6463 0.5847 +vn -0.0252 -0.4163 0.9089 +vn -0.6586 -0.6728 0.3370 +vn -0.6643 -0.6658 0.3396 +vn -0.5016 -0.6347 0.5879 +vn -0.0430 -0.3992 0.9158 +vn -0.5321 -0.6865 0.4955 +vn -0.4010 -0.6572 0.6382 +vn -0.4144 -0.6413 0.6457 +vn -0.5425 -0.6741 0.5013 +vn -0.5524 -0.6621 0.5065 +vn -0.4274 -0.6260 0.6523 +vn -0.4387 -0.6126 0.6575 +vn -0.5611 -0.6516 0.5104 +vn -0.5685 -0.6428 0.5135 +vn -0.6692 -0.6599 0.3416 +vn -0.4483 -0.6012 0.6615 +vn -0.4572 -0.5906 0.6649 +vn -0.5754 -0.6344 0.5162 +vn -0.6737 -0.6543 0.3435 +vn -0.2994 -0.5723 0.7634 +vn -0.1816 -0.5116 0.8398 +vn -0.1964 -0.4946 0.8466 +vn -0.3128 -0.5568 0.7695 +vn -0.2841 -0.5901 0.7557 +vn -0.1647 -0.5311 0.8312 +vn -0.3241 -0.5436 0.7743 +vn -0.2089 -0.4802 0.8519 +vn -0.2206 -0.4666 0.8565 +vn -0.3347 -0.5312 0.7784 +vn -0.2683 -0.6086 0.7467 +vn -0.1471 -0.5513 0.8212 +vn -0.2496 -0.6303 0.7351 +vn -0.1265 -0.5749 0.8084 +vn -0.2277 -0.6558 0.7198 +vn -0.1023 -0.6028 0.7913 +vn -0.0801 -0.4519 0.8885 +vn 0.0041 -0.3974 0.9176 +vn -0.0121 -0.3789 0.9254 +vn -0.0958 -0.4340 0.8958 +vn -0.0622 -0.4724 0.8792 +vn 0.0226 -0.4185 0.9079 +vn -0.0436 -0.4936 0.8686 +vn 0.0419 -0.4404 0.8968 +vn -0.0217 -0.5185 0.8548 +vn 0.0644 -0.4660 0.8825 +vn 0.0040 -0.5478 0.8366 +vn 0.0910 -0.4961 0.8635 +vn 0.0320 -0.5797 0.8142 +vn 0.0624 -0.6144 0.7865 +vn 0.1613 -0.4498 0.8784 +vn 0.1343 -0.4192 0.8979 +vn 0.1114 -0.3932 0.9127 +vn 0.1679 -0.3524 0.9207 +vn 0.1481 -0.3300 0.9323 +vn 0.0918 -0.3710 0.9241 +vn 0.2177 -0.3144 0.9240 +vn 0.2467 -0.2914 0.9242 +vn 0.2268 -0.2691 0.9360 +vn 0.1978 -0.2920 0.9357 +vn 0.2567 -0.2832 0.9241 +vn 0.2365 -0.2610 0.9359 +vn 0.2686 -0.2720 0.9241 +vn 0.2476 -0.2506 0.9359 +vn 0.0729 -0.3496 0.9341 +vn 0.1291 -0.3084 0.9425 +vn 0.1124 -0.2896 0.9505 +vn 0.0564 -0.3309 0.9420 +vn 0.1785 -0.2705 0.9460 +vn 0.2075 -0.2476 0.9464 +vn 0.1906 -0.2289 0.9546 +vn 0.1617 -0.2517 0.9542 +vn 0.2171 -0.2397 0.9463 +vn 0.2001 -0.2211 0.9545 +vn 0.2274 -0.2300 0.9462 +vn 0.2097 -0.2120 0.9545 +vn 0.2806 -0.2596 0.9241 +vn 0.2586 -0.2392 0.9359 +vn 0.2922 -0.2465 0.9241 +vn 0.2693 -0.2272 0.9359 +vn 0.3645 -0.2780 0.8887 +vn 0.3318 -0.2531 0.9088 +vn 0.3777 -0.2598 0.8887 +vn 0.3438 -0.2365 0.9088 +vn 0.2375 -0.2196 0.9462 +vn 0.2190 -0.2024 0.9545 +vn 0.2473 -0.2086 0.9462 +vn 0.2279 -0.1923 0.9545 +vn 0.3039 -0.2318 0.9241 +vn 0.2801 -0.2137 0.9359 +vn 0.3149 -0.2167 0.9241 +vn 0.2903 -0.1997 0.9359 +vn 0.1857 -0.2052 0.9609 +vn 0.1721 -0.1904 0.9665 +vn 0.1627 -0.1981 0.9666 +vn 0.1763 -0.2130 0.9610 +vn 0.1947 -0.1968 0.9609 +vn 0.1806 -0.1824 0.9665 +vn 0.1474 -0.2358 0.9606 +vn 0.0983 -0.2736 0.9568 +vn 0.1338 -0.2209 0.9661 +vn 0.0850 -0.2585 0.9623 +vn 0.0424 -0.3150 0.9481 +vn -0.0259 -0.3633 0.9313 +vn 0.0293 -0.3000 0.9535 +vn -0.0388 -0.3486 0.9365 +vn 0.2033 -0.1879 0.9609 +vn 0.1885 -0.1742 0.9665 +vn 0.2116 -0.1785 0.9609 +vn 0.1962 -0.1655 0.9665 +vn 0.1211 -0.2069 0.9708 +vn 0.0726 -0.2443 0.9670 +vn 0.1499 -0.1841 0.9714 +vn 0.1377 -0.1710 0.9756 +vn 0.1090 -0.1937 0.9750 +vn 0.0608 -0.2310 0.9711 +vn 0.1593 -0.1764 0.9713 +vn 0.1472 -0.1632 0.9755 +vn 0.1673 -0.1688 0.9713 +vn 0.1548 -0.1561 0.9755 +vn -0.1091 -0.4188 0.9015 +vn -0.1215 -0.4045 0.9064 +vn 0.0169 -0.2860 0.9581 +vn -0.0509 -0.3348 0.9409 +vn 0.0053 -0.2727 0.9621 +vn -0.0623 -0.3217 0.9448 +vn -0.1333 -0.3910 0.9107 +vn -0.2316 -0.4539 0.8604 +vn -0.1443 -0.3784 0.9143 +vn -0.2420 -0.4419 0.8638 +vn -0.3446 -0.5195 0.7819 +vn -0.4657 -0.5805 0.6679 +vn -0.3540 -0.5086 0.7849 +vn -0.4736 -0.5711 0.6705 +vn -0.0057 -0.2603 0.9655 +vn -0.0731 -0.3094 0.9481 +vn 0.0497 -0.2184 0.9746 +vn 0.0392 -0.2065 0.9777 +vn -0.0161 -0.2485 0.9685 +vn -0.0833 -0.2978 0.9510 +vn -0.5818 -0.6266 0.5185 +vn -0.6780 -0.6491 0.3450 +vn -0.5879 -0.6192 0.5205 +vn -0.6820 -0.6441 0.3463 +vn -0.1547 -0.3665 0.9175 +vn -0.2518 -0.4305 0.8667 +vn -0.1645 -0.3552 0.9202 +vn -0.2610 -0.4199 0.8692 +vn -0.3629 -0.4982 0.7875 +vn -0.4811 -0.5622 0.6727 +vn -0.3712 -0.4884 0.7897 +vn -0.4881 -0.5538 0.6745 +vn -0.5313 -0.6082 0.5898 +vn -0.0895 -0.3611 0.9282 +vn -0.0744 -0.3726 0.9250 +vn -0.5217 -0.6163 0.5900 +vn -0.5407 -0.6008 0.5888 +vn -0.1044 -0.3507 0.9307 +vn -0.5118 -0.6251 0.5893 +vn -0.0590 -0.3853 0.9209 +vn -0.5937 -0.6122 0.5222 +vn -0.6858 -0.6395 0.3475 +vn -0.5991 -0.6057 0.5237 +vn -0.6894 -0.6351 0.3485 +vn -0.5499 -0.5941 0.5871 +vn -0.1190 -0.3414 0.9324 +vn -0.5589 -0.5881 0.5846 +vn -0.1336 -0.3332 0.9334 +vn -0.5679 -0.5827 0.5814 +vn -0.1482 -0.3260 0.9337 +vn -0.6928 -0.6309 0.3493 +vn -0.6959 -0.6270 0.3501 +vn -0.5767 -0.5779 0.5774 +vn -0.1629 -0.3200 0.9333 +vn -0.6042 -0.5995 0.5249 +vn -0.4948 -0.5459 0.6762 +vn -0.5011 -0.5384 0.6775 +vn -0.6090 -0.5936 0.5260 +vn -0.6136 -0.5881 0.5269 +vn -0.6989 -0.6233 0.3507 +vn -0.5071 -0.5313 0.6787 +vn -0.5127 -0.5245 0.6797 +vn -0.6180 -0.5828 0.5277 +vn -0.7018 -0.6198 0.3512 +vn -0.3791 -0.4792 0.7916 +vn -0.2698 -0.4098 0.8714 +vn -0.2780 -0.4002 0.8732 +vn -0.3865 -0.4705 0.7933 +vn -0.3936 -0.4622 0.7946 +vn -0.2858 -0.3912 0.8748 +vn -0.2932 -0.3826 0.8761 +vn -0.4002 -0.4544 0.7958 +vn -0.1738 -0.3446 0.9225 +vn -0.0929 -0.2869 0.9535 +vn -0.1020 -0.2765 0.9556 +vn -0.1826 -0.3345 0.9245 +vn -0.1909 -0.3250 0.9263 +vn -0.1106 -0.2667 0.9574 +vn -0.1188 -0.2574 0.9590 +vn -0.1988 -0.3159 0.9277 +vn -0.0259 -0.2373 0.9711 +vn 0.0293 -0.1953 0.9803 +vn 0.0200 -0.1847 0.9826 +vn -0.0352 -0.2268 0.9733 +vn -0.0440 -0.2168 0.9752 +vn 0.0111 -0.1746 0.9846 +vn 0.0027 -0.1651 0.9863 +vn -0.0523 -0.2073 0.9769 +vn -0.2045 -0.3094 0.9287 +vn -0.2986 -0.3764 0.8770 +vn -0.1247 -0.2507 0.9600 +vn -0.1272 -0.2478 0.9604 +vn -0.2069 -0.3066 0.9291 +vn -0.3009 -0.3738 0.8773 +vn -0.0583 -0.2005 0.9780 +vn -0.0034 -0.1582 0.9874 +vn -0.0060 -0.1552 0.9879 +vn -0.0609 -0.1975 0.9784 +vn 0.0567 -0.1390 0.9887 +vn 0.0848 -0.1169 0.9895 +vn 0.0752 -0.1082 0.9913 +vn 0.0474 -0.1301 0.9904 +vn 0.0663 -0.1486 0.9867 +vn 0.0946 -0.1263 0.9875 +vn -0.4051 -0.4488 0.7965 +vn -0.5169 -0.5197 0.6802 +vn -0.4072 -0.4464 0.7968 +vn -0.5186 -0.5177 0.6805 +vn 0.0402 -0.1241 0.9915 +vn 0.0676 -0.1025 0.9924 +vn 0.0634 -0.1008 0.9929 +vn 0.0365 -0.1219 0.9919 +vn -0.6212 -0.5790 0.5281 +vn -0.7039 -0.6173 0.3514 +vn -0.6225 -0.5774 0.5282 +vn -0.7048 -0.6162 0.3515 +vn -0.5856 -0.5738 0.5725 +vn -0.5946 -0.5704 0.5667 +vn -0.1778 -0.3150 0.9323 +vn -0.1930 -0.3112 0.9305 +vn -0.6023 -0.5687 0.5602 +vn -0.2069 -0.3105 0.9278 +vn -0.6072 -0.5689 0.5546 +vn -0.2160 -0.3128 0.9249 +vn -0.4158 -0.4356 0.7984 +vn -0.5256 -0.5085 0.6820 +vn -0.3107 -0.3619 0.8789 +vn -0.3290 -0.3406 0.8808 +vn -0.4321 -0.4163 0.8000 +vn -0.5393 -0.4921 0.6834 +vn -0.6153 -0.5635 0.5512 +vn -0.2281 -0.3038 0.9250 +vn -0.7081 -0.6116 0.3529 +vn -0.7148 -0.6033 0.3537 +vn -0.6254 -0.5511 0.5524 +vn -0.2448 -0.2830 0.9273 +vn -0.6277 -0.5704 0.5298 +vn -0.6380 -0.5577 0.5309 +vn -0.6377 -0.5366 0.5526 +vn -0.2642 -0.2591 0.9290 +vn -0.7225 -0.5934 0.3547 +vn -0.6501 -0.5425 0.5321 +vn -0.5553 -0.4723 0.6846 +vn -0.5782 -0.4438 0.6846 +vn -0.6674 -0.5206 0.5325 +vn -0.4514 -0.3930 0.8011 +vn -0.3507 -0.3148 0.8820 +vn -0.3818 -0.2779 0.8815 +vn -0.4790 -0.3595 0.8008 +vn -0.6903 -0.4918 0.5306 +vn -0.6087 -0.4064 0.6814 +vn -0.6466 -0.3596 0.6728 +vn -0.7190 -0.4557 0.5247 +vn -0.5155 -0.3156 0.7967 +vn -0.4228 -0.2294 0.8767 +vn -0.4738 -0.1691 0.8642 +vn -0.5609 -0.2608 0.7857 +vn -0.7545 -0.4114 0.5114 +vn -0.6929 -0.3028 0.6544 +vn -0.7458 -0.2383 0.6221 +vn -0.7955 -0.3604 0.4871 +vn -0.7902 -0.5072 0.3440 +vn -0.8176 -0.4727 0.3288 +vn -0.7400 -0.4134 0.5306 +vn -0.4191 -0.0624 0.9058 +vn -0.7815 -0.3629 0.5075 +vn -0.4821 0.0178 0.8759 +vn -0.6158 -0.1948 0.7634 +vn -0.5349 -0.0969 0.8393 +vn -0.6040 -0.0156 0.7968 +vn -0.6781 -0.1202 0.7250 +vn -0.7448 -0.0407 0.6660 +vn -0.8033 -0.1685 0.5712 +vn -0.6772 0.0704 0.7324 +vn -0.7478 0.1525 0.6462 +vn -0.8091 0.0352 0.5866 +vn -0.8589 -0.1018 0.5019 +vn -0.6096 0.1621 0.7759 +vn -0.5469 0.2360 0.8032 +vn -0.6242 0.3246 0.7106 +vn -0.6843 0.2482 0.6857 +vn -0.5320 0.0721 0.8437 +vn -0.4665 0.1436 0.8728 +vn -0.4584 -0.0134 0.8887 +vn -0.3900 0.0554 0.9191 +vn -0.3930 -0.0896 0.9152 +vn -0.3219 -0.0231 0.9465 +vn -0.3382 -0.1535 0.9285 +vn -0.2646 -0.0892 0.9602 +vn -0.2942 -0.2049 0.9335 +vn -0.2186 -0.1423 0.9654 +vn -0.4912 0.2950 0.8196 +vn -0.4425 0.3422 0.8289 +vn -0.5224 0.4330 0.7346 +vn -0.5701 0.3850 0.7258 +vn -0.4091 0.2012 0.8900 +vn -0.3594 0.2476 0.8997 +vn -0.2607 -0.2440 0.9341 +vn -0.1835 -0.1828 0.9659 +vn -0.2372 -0.2713 0.9328 +vn -0.1590 -0.2112 0.9644 +vn -0.3307 0.1115 0.9371 +vn -0.2800 0.1571 0.9471 +vn -0.2609 0.0316 0.9648 +vn -0.2092 0.0764 0.9749 +vn -0.2021 -0.0358 0.9787 +vn -0.1495 0.0083 0.9887 +vn -0.1549 -0.0900 0.9838 +vn -0.1015 -0.0464 0.9938 +vn -0.2176 -0.2940 0.9307 +vn -0.1384 -0.2347 0.9622 +vn -0.1188 -0.1313 0.9842 +vn -0.0649 -0.0882 0.9940 +vn -0.0935 -0.1602 0.9826 +vn -0.0392 -0.1174 0.9923 +vn -0.0725 -0.1842 0.9802 +vn -0.0178 -0.1417 0.9897 +vn -0.1088 0.0419 0.9932 +vn -0.0828 0.0627 0.9946 +vn -0.1433 0.1311 0.9810 +vn -0.1690 0.1102 0.9794 +vn -0.0603 -0.0131 0.9981 +vn -0.0341 0.0078 0.9994 +vn 0.0242 -0.1087 0.9938 +vn 0.0508 -0.0878 0.9948 +vn 0.0291 -0.0635 0.9976 +vn 0.0026 -0.0843 0.9964 +vn -0.0233 -0.0550 0.9982 +vn 0.0030 -0.0341 0.9994 +vn 0.0652 -0.0764 0.9949 +vn 0.0429 -0.0525 0.9977 +vn 0.0774 -0.0893 0.9930 +vn 0.0842 -0.0830 0.9930 +vn 0.0716 -0.0704 0.9949 +vn 0.0483 -0.0475 0.9977 +vn 0.0163 -0.0239 0.9996 +vn -0.0218 0.0170 0.9996 +vn 0.0204 -0.0200 0.9996 +vn -0.0195 0.0192 0.9996 +vn -0.0718 0.0706 0.9949 +vn -0.1340 0.1373 0.9814 +vn -0.0719 0.0706 0.9949 +vn -0.1370 0.1345 0.9814 +vn -0.2404 0.1912 0.9517 +vn -0.2149 0.2122 0.9533 +vn -0.2953 0.3031 0.9061 +vn -0.3204 0.2820 0.9043 +vn -0.2078 0.2164 0.9539 +vn -0.2906 0.3052 0.9069 +vn -0.2143 0.2103 0.9539 +vn -0.3010 0.2952 0.9068 +vn -0.4041 0.3770 0.8334 +vn -0.3793 0.3982 0.8352 +vn -0.4600 0.4895 0.7408 +vn -0.4846 0.4681 0.7390 +vn -0.3773 0.3980 0.8362 +vn -0.4607 0.4873 0.7418 +vn -0.3918 0.3841 0.8361 +vn -0.4790 0.4695 0.7417 +vn -0.0743 0.0681 0.9949 +vn -0.1416 0.1297 0.9814 +vn -0.0202 0.0185 0.9996 +vn -0.0208 0.0175 0.9996 +vn -0.0768 0.0648 0.9949 +vn -0.1465 0.1236 0.9815 +vn -0.5547 0.5476 0.6264 +vn -0.5920 0.5121 0.6223 +vn -0.5304 0.5692 0.6283 +vn -0.5860 0.6320 0.5072 +vn -0.6102 0.6101 0.5054 +vn -0.6472 0.5742 0.5014 +vn -0.2213 0.2028 0.9539 +vn -0.3109 0.2847 0.9068 +vn -0.2292 0.1934 0.9540 +vn -0.3220 0.2716 0.9070 +vn -0.5335 0.5651 0.6293 +vn -0.5910 0.6265 0.5081 +vn -0.5552 0.5440 0.6292 +vn -0.6154 0.6027 0.5080 +vn -0.4045 0.3705 0.8361 +vn -0.4946 0.4530 0.7417 +vn -0.4191 0.3535 0.8363 +vn -0.5125 0.4323 0.7420 +vn -0.6389 0.4633 0.6141 +vn -0.6917 0.4016 0.6002 +vn -0.6935 0.5246 0.4939 +vn -0.7452 0.4614 0.4815 +vn -0.7495 0.3231 0.5778 +vn -0.8094 0.2239 0.5429 +vn -0.8011 0.3808 0.4618 +vn -0.8579 0.2784 0.4319 +vn -0.6411 0.6448 0.4162 +vn -0.6778 0.6084 0.4128 +vn -0.6171 0.6669 0.4177 +vn -0.6252 0.6760 0.3901 +vn -0.6491 0.6539 0.3887 +vn -0.6857 0.6173 0.3857 +vn -0.6232 0.6608 0.4183 +vn -0.6317 0.6696 0.3905 +vn -0.6490 0.6355 0.4182 +vn -0.6579 0.6439 0.3905 +vn -0.7236 0.5578 0.4065 +vn -0.7745 0.4933 0.3960 +vn -0.7314 0.5663 0.3799 +vn -0.7820 0.5012 0.3704 +vn -0.6699 0.6134 0.4183 +vn -0.6790 0.6216 0.3906 +vn -0.6352 0.5817 0.5081 +vn -0.6583 0.5553 0.5083 +vn -0.6942 0.5856 0.4184 +vn -0.7036 0.5936 0.3906 +vn -0.8290 0.4107 0.3796 +vn -0.8836 0.3053 0.3550 +vn -0.8361 0.4177 0.3555 +vn -0.8902 0.3112 0.3328 +vn -0.8653 0.1012 0.4909 +vn -0.9074 -0.0438 0.4180 +vn -0.9092 0.1508 0.3882 +vn -0.9447 -0.0010 0.3280 +vn -0.9317 0.1738 0.3190 +vn -0.9628 0.0170 0.2696 +vn -0.9373 0.1782 0.2995 +vn -0.9671 0.0195 0.2535 +vn -0.9656 -0.1570 0.2072 +vn -0.9529 -0.1692 0.2518 +vn -0.9682 -0.1564 0.1953 +vn -0.9240 -0.2028 0.3241 +vn -0.9073 -0.3610 0.2156 +vn -0.8805 -0.3944 0.2629 +vn -0.8856 -0.2499 0.3916 +vn -0.9296 -0.1826 0.3202 +vn -0.7656 0.3639 0.5305 +vn -0.6877 0.2687 0.6744 +vn -0.8866 -0.2341 0.3989 +vn -0.7221 0.5509 0.4184 +vn -0.7319 0.5583 0.3906 +vn -0.6847 0.5223 0.5083 +vn -0.7095 0.4881 0.5083 +vn -0.7483 0.5148 0.4184 +vn -0.7584 0.5217 0.3906 +vn -0.5732 0.5249 0.6292 +vn -0.5939 0.5010 0.6295 +vn -0.6178 0.4713 0.6294 +vn -0.5331 0.4066 0.7420 +vn -0.5524 0.3800 0.7420 +vn -0.6402 0.4404 0.6294 +vn -0.4359 0.3325 0.8363 +vn -0.3349 0.2555 0.9070 +vn -0.3470 0.2387 0.9070 +vn -0.4517 0.3108 0.8363 +vn -0.7727 0.4774 0.4184 +vn -0.7831 0.4839 0.3906 +vn -0.7326 0.4527 0.5083 +vn -0.7539 0.4162 0.5083 +vn -0.7951 0.4389 0.4185 +vn -0.8059 0.4449 0.3906 +vn -0.6610 0.4085 0.6294 +vn -0.5703 0.3524 0.7420 +vn -0.5869 0.3240 0.7420 +vn -0.6803 0.3755 0.6294 +vn -0.8157 0.3994 0.4184 +vn -0.8268 0.4048 0.3906 +vn -0.7735 0.3787 0.5083 +vn -0.7911 0.3403 0.5083 +vn -0.8343 0.3589 0.4184 +vn -0.8456 0.3638 0.3906 +vn -0.6979 0.3417 0.6294 +vn -0.6021 0.2948 0.7420 +vn -0.6159 0.2649 0.7420 +vn -0.7138 0.3071 0.6294 +vn -0.4664 0.2882 0.8363 +vn -0.3583 0.2214 0.9070 +vn -0.3688 0.2036 0.9070 +vn -0.4800 0.2650 0.8363 +vn -0.4924 0.2411 0.8363 +vn -0.3783 0.1852 0.9070 +vn -0.3869 0.1664 0.9070 +vn -0.5037 0.2167 0.8363 +vn -0.8510 0.3175 0.4184 +vn -0.8625 0.3218 0.3906 +vn -0.8069 0.3011 0.5082 +vn -0.8207 0.2611 0.5083 +vn -0.8655 0.2754 0.4184 +vn -0.8772 0.2791 0.3906 +vn -0.7280 0.2717 0.6294 +vn -0.6281 0.2344 0.7420 +vn -0.6389 0.2033 0.7420 +vn -0.7405 0.2356 0.6294 +vn -0.8780 0.2326 0.4184 +vn -0.8899 0.2357 0.3906 +vn -0.8325 0.2205 0.5083 +vn -0.8423 0.1794 0.5083 +vn -0.8883 0.1892 0.4184 +vn -0.9004 0.1918 0.3906 +vn -0.7511 0.1990 0.6295 +vn -0.6481 0.1717 0.7420 +vn -0.6557 0.1397 0.7420 +vn -0.7600 0.1619 0.6294 +vn -0.5137 0.1917 0.8363 +vn -0.3947 0.1473 0.9069 +vn -0.4014 0.1277 0.9070 +vn -0.5225 0.1662 0.8363 +vn -0.5300 0.1404 0.8363 +vn -0.4072 0.1079 0.9070 +vn -0.4120 0.0878 0.9070 +vn -0.5363 0.1142 0.8363 +vn -0.8953 0.1530 0.4183 +vn -0.9074 0.1551 0.3906 +vn -0.8490 0.1450 0.5081 +vn -0.8535 0.1164 0.5080 +vn -0.9000 0.1229 0.4182 +vn -0.9121 0.1247 0.3905 +vn -0.7661 0.1308 0.6292 +vn -0.6611 0.1129 0.7417 +vn -0.6646 0.0904 0.7417 +vn -0.7702 0.1049 0.6291 +vn -0.9041 0.0870 0.4183 +vn -0.9164 0.0884 0.3904 +vn -0.8573 0.0826 0.5081 +vn -0.8585 0.0755 0.5072 +vn -0.9052 0.0786 0.4177 +vn -0.9173 0.0794 0.3902 +vn -0.9025 0.1110 0.4162 +vn -0.8962 0.1624 0.4129 +vn -0.9080 0.1631 0.3859 +vn -0.9145 0.1117 0.3889 +vn -0.8561 0.1078 0.5054 +vn -0.8504 0.1592 0.5014 +vn -0.7735 0.0749 0.6293 +vn -0.6674 0.0651 0.7418 +vn -0.6688 0.0632 0.7408 +vn -0.7749 0.0701 0.6282 +vn -0.7728 0.1024 0.6264 +vn -0.7677 0.1537 0.6221 +vn -0.6669 0.0956 0.7389 +vn -0.6624 0.1471 0.7346 +vn -0.8843 0.2296 0.4066 +vn -0.8644 0.3093 0.3963 +vn -0.8752 0.3104 0.3710 +vn -0.8973 0.2314 0.3758 +vn -0.8396 0.2262 0.4939 +vn -0.8214 0.3058 0.4814 +vn -0.5458 0.0539 0.8362 +vn -0.4192 0.0424 0.9069 +vn -0.4205 0.0474 0.9061 +vn -0.5471 0.0555 0.8352 +vn -0.5436 0.0738 0.8361 +vn -0.4178 0.0567 0.9068 +vn -0.8325 0.4031 0.3800 +vn -0.7828 0.5108 0.3554 +vn -0.7913 0.5123 0.3337 +vn -0.8424 0.4043 0.3563 +vn -0.7920 0.3993 0.4618 +vn -0.7459 0.5070 0.4319 +vn -0.7580 0.2207 0.6138 +vn -0.7417 0.3002 0.5998 +vn -0.6538 0.2142 0.7257 +vn -0.6392 0.2941 0.7106 +vn -0.5456 0.0880 0.8334 +vn -0.5418 0.1396 0.8288 +vn -0.4192 0.0801 0.9043 +vn -0.4160 0.1320 0.8998 +vn -0.7084 0.6294 0.3195 +vn -0.6036 0.7501 0.2701 +vn -0.6080 0.7520 0.2547 +vn -0.7151 0.6311 0.3006 +vn -0.6766 0.6257 0.3882 +vn -0.5785 0.7468 0.3281 +vn -0.7152 0.3940 0.5773 +vn -0.6736 0.5021 0.5423 +vn -0.6158 0.3883 0.6856 +vn -0.5791 0.4972 0.6461 +vn -0.4680 0.8589 0.2078 +vn -0.4699 0.8606 0.1964 +vn -0.4508 0.8563 0.2521 +vn -0.6111 0.6215 0.4902 +vn -0.5225 0.7436 0.4172 +vn -0.5241 0.6176 0.5864 +vn -0.4465 0.7409 0.5017 +vn -0.4073 0.8542 0.3233 +vn -0.2721 0.9379 0.2150 +vn -0.3459 0.8527 0.3915 +vn -0.2287 0.9374 0.2628 +vn -0.4184 0.8526 0.3130 +vn -0.7539 0.3920 0.5273 +vn -0.3525 0.8499 0.3916 +vn -0.6305 0.3909 0.6706 +vn -0.4251 0.6133 0.6657 +vn -0.3601 0.7379 0.5708 +vn -0.4712 0.4918 0.7322 +vn -0.3581 0.4866 0.7969 +vn -0.3210 0.6093 0.7250 +vn -0.2692 0.7353 0.6220 +vn -0.5022 0.3821 0.7758 +vn -0.5220 0.2873 0.8031 +vn -0.3995 0.2804 0.8728 +vn -0.3832 0.3759 0.8437 +vn -0.2239 0.6058 0.7635 +vn -0.1857 0.7330 0.6544 +vn -0.2516 0.4819 0.8393 +vn -0.1569 0.4779 0.8643 +vn -0.1379 0.6029 0.7858 +vn -0.1123 0.7313 0.6728 +vn -0.2705 0.3702 0.8887 +vn -0.2830 0.2740 0.9192 +vn -0.1791 0.2683 0.9465 +vn -0.1702 0.3653 0.9152 +vn -0.1377 0.8483 0.5113 +vn -0.0838 0.9353 0.3438 +vn -0.1279 0.9358 0.3286 +vn -0.2032 0.8494 0.4870 +vn -0.0808 0.8474 0.5247 +vn -0.0462 0.9350 0.3516 +vn -0.0347 0.8469 0.5306 +vn -0.0163 0.9348 0.3548 +vn -0.0521 0.7300 0.6815 +vn -0.0040 0.7289 0.6846 +vn 0.0021 0.8464 0.5325 +vn 0.0075 0.9347 0.3554 +vn -0.0667 0.6007 0.7967 +vn -0.0780 0.4746 0.8767 +vn -0.0146 0.4720 0.8815 +vn -0.0097 0.5988 0.8008 +vn 0.0300 0.8462 0.5320 +vn 0.0327 0.7282 0.6846 +vn 0.0580 0.7277 0.6834 +vn 0.0493 0.8460 0.5309 +vn 0.0257 0.9346 0.3547 +vn 0.0382 0.9346 0.3537 +vn -0.0861 0.3612 0.9285 +vn -0.0918 0.2637 0.9602 +vn -0.0216 0.2599 0.9654 +vn -0.0185 0.3579 0.9336 +vn 0.0337 0.5975 0.8012 +vn 0.0337 0.4701 0.8820 +vn 0.0673 0.4687 0.8808 +vn 0.0639 0.5966 0.8000 +vn 0.0330 0.3555 0.9341 +vn 0.0319 0.2570 0.9659 +vn 0.0694 0.2550 0.9644 +vn 0.0689 0.3537 0.9328 +vn -0.0957 0.1816 0.9787 +vn -0.0983 0.1129 0.9887 +vn -0.0256 0.1086 0.9938 +vn -0.0239 0.1774 0.9838 +vn -0.1849 0.1867 0.9649 +vn -0.1886 0.1183 0.9749 +vn 0.0309 0.1743 0.9842 +vn 0.0299 0.1053 0.9940 +vn 0.0687 0.1029 0.9923 +vn 0.0692 0.1721 0.9826 +vn 0.0989 0.3521 0.9307 +vn 0.0947 0.4657 0.8799 +vn 0.1005 0.2533 0.9622 +vn 0.1177 0.2524 0.9604 +vn 0.1153 0.3515 0.9291 +vn 0.1108 0.4669 0.8773 +vn -0.2909 0.1928 0.9371 +vn -0.2958 0.1247 0.9471 +vn -0.4098 0.1997 0.8901 +vn 0.0892 0.5955 0.7984 +vn 0.0794 0.7270 0.6820 +vn 0.1029 0.5954 0.7968 +vn 0.0902 0.7251 0.6828 +vn 0.0657 0.8456 0.5297 +vn 0.0489 0.9344 0.3529 +vn 0.0744 0.8459 0.5282 +vn 0.0545 0.9346 0.3515 +vn 0.1011 0.1702 0.9802 +vn 0.1010 0.1010 0.9897 +vn 0.1189 0.0999 0.9879 +vn 0.1187 0.1692 0.9784 +vn 0.1190 0.3513 0.9287 +vn 0.1142 0.4667 0.8770 +vn 0.1215 0.2522 0.9600 +vn 0.1305 0.2516 0.9590 +vn 0.1277 0.3507 0.9277 +vn 0.1224 0.4663 0.8761 +vn 0.1226 0.1690 0.9780 +vn 0.1228 0.0997 0.9874 +vn 0.1320 0.0991 0.9863 +vn 0.1317 0.1685 0.9769 +vn 0.1061 0.5952 0.7965 +vn 0.0925 0.7242 0.6834 +vn 0.1135 0.5948 0.7958 +vn 0.0999 0.7267 0.6797 +vn 0.0671 0.8379 0.5417 +vn 0.0999 0.3790 0.9200 +vn 0.0733 0.3797 0.9222 +vn 0.0512 0.8382 0.5430 +vn 0.0760 0.8351 0.5448 +vn 0.1143 0.3749 0.9200 +vn 0.0327 0.8390 0.5432 +vn 0.0428 0.3806 0.9238 +vn -0.0010 0.3818 0.9242 +vn 0.0059 0.8401 0.5424 +vn 0.0764 0.8458 0.5281 +vn 0.0559 0.9346 0.3514 +vn 0.0814 0.8455 0.5277 +vn 0.0592 0.9344 0.3512 +vn 0.0882 0.8453 0.5269 +vn 0.0637 0.9343 0.3507 +vn 0.1087 0.7263 0.6787 +vn 0.1179 0.7260 0.6775 +vn 0.0954 0.8451 0.5260 +vn 0.0685 0.9342 0.3501 +vn 0.1238 0.5943 0.7946 +vn 0.1337 0.4657 0.8748 +vn 0.1456 0.4650 0.8732 +vn 0.1346 0.5938 0.7933 +vn 0.1396 0.3501 0.9263 +vn 0.1428 0.2509 0.9574 +vn 0.1559 0.2501 0.9556 +vn 0.1523 0.3493 0.9245 +vn 0.1461 0.5933 0.7916 +vn 0.1277 0.7256 0.6762 +vn 0.1582 0.4644 0.8714 +vn 0.1716 0.4637 0.8692 +vn 0.1582 0.5927 0.7897 +vn 0.1381 0.7252 0.6746 +vn 0.1443 0.1677 0.9752 +vn 0.1447 0.0983 0.9846 +vn 0.1581 0.0975 0.9826 +vn 0.1576 0.1669 0.9733 +vn 0.1656 0.3486 0.9225 +vn 0.1696 0.2493 0.9535 +vn 0.1842 0.2484 0.9510 +vn 0.1797 0.3478 0.9202 +vn 0.1716 0.1660 0.9711 +vn 0.1722 0.0966 0.9803 +vn 0.1872 0.0957 0.9777 +vn 0.1864 0.1651 0.9685 +vn 0.1446 0.0404 0.9887 +vn 0.1443 0.0049 0.9895 +vn 0.1577 0.0029 0.9875 +vn 0.1580 0.0387 0.9867 +vn 0.1319 0.0423 0.9904 +vn 0.1316 0.0071 0.9913 +vn 0.1722 0.0371 0.9844 +vn 0.1719 0.0011 0.9851 +vn 0.1869 -0.0006 0.9824 +vn 0.1872 0.0356 0.9817 +vn 0.2021 0.1641 0.9655 +vn 0.1996 0.2475 0.9481 +vn 0.2030 0.0947 0.9746 +vn 0.2197 0.0936 0.9711 +vn 0.2187 0.1631 0.9621 +vn 0.2159 0.2465 0.9448 +vn 0.1227 0.0442 0.9915 +vn 0.1224 0.0097 0.9924 +vn 0.1187 0.0458 0.9919 +vn 0.1185 0.0120 0.9929 +vn 0.1946 0.3469 0.9175 +vn 0.1857 0.4629 0.8667 +vn 0.2104 0.3460 0.9143 +vn 0.2006 0.4621 0.8638 +vn 0.1007 0.0474 0.9938 +vn 0.1005 0.0139 0.9948 +vn 0.0682 0.0496 0.9964 +vn 0.0679 0.0161 0.9976 +vn 0.1440 -0.0098 0.9895 +vn 0.1574 -0.0110 0.9875 +vn 0.1312 -0.0085 0.9913 +vn 0.1305 -0.0167 0.9913 +vn 0.1432 -0.0181 0.9895 +vn 0.1566 -0.0196 0.9875 +vn 0.0291 0.0520 0.9982 +vn 0.0288 0.0187 0.9994 +vn -0.0267 0.0556 0.9981 +vn -0.0271 0.0223 0.9994 +vn 0.1220 -0.0073 0.9925 +vn 0.1180 -0.0065 0.9930 +vn 0.1173 -0.0156 0.9930 +vn 0.1213 -0.0158 0.9925 +vn 0.1003 -0.0047 0.9949 +vn 0.0678 -0.0018 0.9977 +vn 0.0672 -0.0090 0.9977 +vn 0.0995 -0.0133 0.9949 +vn -0.0998 0.0601 0.9932 +vn -0.1003 0.0270 0.9946 +vn -0.1907 0.0658 0.9794 +vn -0.1914 0.0328 0.9810 +vn 0.0289 0.0018 0.9996 +vn -0.0268 0.0068 0.9996 +vn -0.0271 0.0036 0.9996 +vn 0.0283 -0.0038 0.9996 +vn 0.0990 -0.0168 0.9949 +vn 0.1166 -0.0198 0.9930 +vn 0.0668 -0.0114 0.9977 +vn 0.0663 -0.0141 0.9977 +vn 0.0982 -0.0209 0.9949 +vn 0.1157 -0.0246 0.9930 +vn 0.0282 -0.0048 0.9996 +vn -0.0270 0.0046 0.9996 +vn -0.0266 0.0057 0.9996 +vn 0.0280 -0.0060 0.9996 +vn -0.0998 0.0134 0.9949 +vn -0.1907 0.0216 0.9814 +vn -0.1903 0.0257 0.9814 +vn -0.0998 0.0135 0.9949 +vn 0.1206 -0.0204 0.9925 +vn 0.1297 -0.0219 0.9913 +vn 0.1196 -0.0255 0.9925 +vn 0.1287 -0.0274 0.9913 +vn -0.0993 0.0169 0.9949 +vn -0.1893 0.0323 0.9814 +vn -0.1875 0.0399 0.9815 +vn -0.0983 0.0209 0.9949 +vn -0.2959 0.0505 0.9539 +vn -0.4155 0.0709 0.9068 +vn -0.2933 0.0625 0.9540 +vn -0.2975 0.0403 0.9539 +vn -0.2984 0.0725 0.9517 +vn -0.2994 0.0397 0.9533 +vn -0.5344 0.2070 0.8195 +vn -0.2984 0.0314 0.9539 +vn -0.5408 0.0923 0.8361 +vn -0.2899 0.0768 0.9540 +vn -0.1853 0.0491 0.9814 +vn -0.2858 0.0909 0.9540 +vn -0.1827 0.0581 0.9814 +vn -0.0972 0.0257 0.9949 +vn -0.0263 0.0070 0.9996 +vn -0.0958 0.0305 0.9949 +vn -0.0259 0.0082 0.9996 +vn -0.2810 0.1048 0.9540 +vn -0.1796 0.0670 0.9815 +vn -0.2755 0.1185 0.9540 +vn -0.1761 0.0758 0.9814 +vn 0.0277 -0.0073 0.9996 +vn 0.0655 -0.0174 0.9977 +vn 0.0273 -0.0087 0.9996 +vn 0.0646 -0.0206 0.9977 +vn -0.0942 0.0351 0.9949 +vn -0.0255 0.0095 0.9996 +vn -0.0923 0.0397 0.9949 +vn -0.0250 0.0107 0.9996 +vn -0.2693 0.1319 0.9540 +vn -0.1722 0.0843 0.9814 +vn -0.2625 0.1449 0.9540 +vn -0.1679 0.0927 0.9814 +vn 0.0971 -0.0257 0.9949 +vn 0.1143 -0.0303 0.9930 +vn 0.0957 -0.0305 0.9949 +vn 0.1127 -0.0359 0.9930 +vn 0.0269 -0.0100 0.9996 +vn 0.0635 -0.0237 0.9977 +vn 0.0263 -0.0113 0.9996 +vn 0.0623 -0.0268 0.9977 +vn -0.0903 0.0442 0.9949 +vn -0.0244 0.0120 0.9996 +vn -0.0880 0.0486 0.9949 +vn -0.0238 0.0131 0.9996 +vn -0.2551 0.1576 0.9540 +vn -0.1631 0.1008 0.9814 +vn -0.2471 0.1700 0.9540 +vn -0.1580 0.1087 0.9814 +vn -0.2384 0.1819 0.9540 +vn -0.1524 0.1163 0.9815 +vn -0.0855 0.0528 0.9949 +vn -0.0231 0.0143 0.9996 +vn -0.0828 0.0570 0.9949 +vn -0.0224 0.0154 0.9996 +vn 0.0258 -0.0126 0.9996 +vn 0.0609 -0.0298 0.9977 +vn 0.0251 -0.0139 0.9996 +vn 0.0594 -0.0328 0.9977 +vn -0.0799 0.0610 0.9949 +vn -0.0216 0.0165 0.9996 +vn 0.0244 -0.0151 0.9996 +vn 0.0577 -0.0356 0.9977 +vn 0.0236 -0.0163 0.9996 +vn 0.0559 -0.0384 0.9977 +vn 0.0228 -0.0174 0.9996 +vn 0.0539 -0.0411 0.9977 +vn 0.0219 -0.0185 0.9996 +vn 0.0518 -0.0437 0.9977 +vn 0.0211 -0.0193 0.9996 +vn 0.0499 -0.0458 0.9977 +vn 0.0855 -0.0528 0.9949 +vn 0.1006 -0.0622 0.9930 +vn 0.1035 -0.0572 0.9930 +vn 0.0879 -0.0485 0.9949 +vn 0.0828 -0.0569 0.9949 +vn 0.0974 -0.0670 0.9930 +vn 0.0740 -0.0678 0.9950 +vn 0.0872 -0.0799 0.9930 +vn 0.0904 -0.0763 0.9930 +vn 0.0768 -0.0648 0.9949 +vn 0.0799 -0.0609 0.9949 +vn 0.0940 -0.0717 0.9930 +vn 0.0901 -0.0827 0.9925 +vn 0.0968 -0.0891 0.9913 +vn 0.1006 -0.0848 0.9913 +vn 0.0935 -0.0788 0.9925 +vn 0.0869 -0.0861 0.9925 +vn 0.0933 -0.0928 0.9913 +vn 0.0972 -0.0742 0.9925 +vn 0.1046 -0.0798 0.9913 +vn 0.1084 -0.0746 0.9913 +vn 0.1007 -0.0693 0.9925 +vn 0.1040 -0.0643 0.9925 +vn 0.1119 -0.0692 0.9913 +vn 0.1152 -0.0636 0.9913 +vn 0.1071 -0.0591 0.9925 +vn 0.0902 -0.0442 0.9949 +vn 0.1062 -0.0520 0.9930 +vn 0.1086 -0.0467 0.9930 +vn 0.0923 -0.0397 0.9949 +vn 0.1098 -0.0538 0.9925 +vn 0.1182 -0.0579 0.9913 +vn 0.1209 -0.0520 0.9913 +vn 0.1123 -0.0483 0.9925 +vn 0.0941 -0.0351 0.9949 +vn 0.1108 -0.0413 0.9930 +vn 0.1146 -0.0428 0.9925 +vn 0.1233 -0.0460 0.9913 +vn 0.1254 -0.0399 0.9913 +vn 0.1165 -0.0371 0.9925 +vn 0.1182 -0.0313 0.9925 +vn 0.1272 -0.0337 0.9913 +vn 0.1353 -0.0505 0.9895 +vn 0.1479 -0.0552 0.9875 +vn 0.1504 -0.0479 0.9875 +vn 0.1376 -0.0438 0.9895 +vn 0.1326 -0.0570 0.9895 +vn 0.1450 -0.0624 0.9875 +vn 0.1424 -0.0239 0.9895 +vn 0.1557 -0.0261 0.9875 +vn 0.1412 -0.0301 0.9895 +vn 0.1544 -0.0329 0.9875 +vn 0.1396 -0.0370 0.9895 +vn 0.1526 -0.0404 0.9875 +vn 0.1716 -0.0123 0.9851 +vn 0.1866 -0.0136 0.9823 +vn 0.1708 -0.0212 0.9851 +vn 0.1857 -0.0229 0.9823 +vn 0.1697 -0.0284 0.9851 +vn 0.1846 -0.0308 0.9823 +vn 0.1683 -0.0359 0.9851 +vn 0.1830 -0.0390 0.9823 +vn 0.1663 -0.0441 0.9851 +vn 0.1809 -0.0479 0.9823 +vn 0.1640 -0.0522 0.9851 +vn 0.1783 -0.0567 0.9823 +vn 0.1297 -0.0635 0.9895 +vn 0.1418 -0.0694 0.9875 +vn 0.1264 -0.0698 0.9895 +vn 0.1382 -0.0763 0.9875 +vn 0.1612 -0.0602 0.9851 +vn 0.1753 -0.0654 0.9823 +vn 0.1581 -0.0680 0.9851 +vn 0.1719 -0.0739 0.9823 +vn 0.1228 -0.0759 0.9895 +vn 0.1343 -0.0830 0.9875 +vn 0.1189 -0.0818 0.9895 +vn 0.1300 -0.0895 0.9875 +vn 0.1545 -0.0757 0.9851 +vn 0.1680 -0.0823 0.9823 +vn 0.1506 -0.0832 0.9851 +vn 0.1638 -0.0904 0.9823 +vn 0.1148 -0.0876 0.9895 +vn 0.1255 -0.0957 0.9875 +vn 0.1103 -0.0931 0.9895 +vn 0.1207 -0.1018 0.9875 +vn 0.1464 -0.0905 0.9851 +vn 0.1592 -0.0984 0.9823 +vn 0.1418 -0.0975 0.9851 +vn 0.1542 -0.1060 0.9823 +vn 0.1902 -0.0710 0.9792 +vn 0.2060 -0.0769 0.9755 +vn 0.2095 -0.0667 0.9755 +vn 0.1935 -0.0616 0.9792 +vn 0.1865 -0.0802 0.9792 +vn 0.2020 -0.0869 0.9755 +vn 0.1823 -0.0893 0.9792 +vn 0.1975 -0.0967 0.9755 +vn 0.1777 -0.0981 0.9792 +vn 0.1925 -0.1063 0.9755 +vn 0.1962 -0.0520 0.9792 +vn 0.2125 -0.0563 0.9755 +vn 0.2150 -0.0458 0.9755 +vn 0.1986 -0.0423 0.9792 +vn 0.1368 -0.1044 0.9851 +vn 0.1488 -0.1135 0.9823 +vn 0.1315 -0.1110 0.9851 +vn 0.1430 -0.1206 0.9823 +vn 0.2002 -0.0334 0.9792 +vn 0.2169 -0.0361 0.9755 +vn 0.2183 -0.0266 0.9755 +vn 0.2015 -0.0247 0.9792 +vn 0.1062 -0.0978 0.9895 +vn 0.1161 -0.1070 0.9875 +vn 0.1021 -0.1020 0.9895 +vn 0.1115 -0.1117 0.9875 +vn 0.0805 -0.0919 0.9925 +vn 0.0871 -0.0985 0.9913 +vn 0.0960 -0.1078 0.9895 +vn 0.1052 -0.1176 0.9875 +vn 0.1265 -0.1166 0.9851 +vn 0.1375 -0.1269 0.9823 +vn 0.1214 -0.1219 0.9851 +vn 0.1320 -0.1327 0.9823 +vn 0.0762 -0.1588 0.9844 +vn 0.1047 -0.1364 0.9851 +vn 0.0866 -0.1697 0.9817 +vn 0.1152 -0.1472 0.9824 +vn 0.1149 -0.1280 0.9851 +vn 0.1251 -0.1391 0.9823 +vn 0.0973 -0.1807 0.9787 +vn 0.1262 -0.1587 0.9792 +vn 0.1359 -0.1508 0.9792 +vn 0.1431 -0.1441 0.9792 +vn 0.1492 -0.1377 0.9792 +vn 0.1615 -0.1492 0.9755 +vn 0.1681 -0.1418 0.9755 +vn 0.1552 -0.1309 0.9792 +vn 0.1746 -0.1613 0.9713 +vn 0.1817 -0.1533 0.9713 +vn 0.1614 -0.1231 0.9792 +vn 0.1748 -0.1333 0.9755 +vn 0.1811 -0.1246 0.9755 +vn 0.1673 -0.1151 0.9792 +vn 0.1890 -0.1442 0.9713 +vn 0.2041 -0.1557 0.9665 +vn 0.2115 -0.1455 0.9665 +vn 0.1959 -0.1347 0.9713 +vn 0.2201 -0.1679 0.9609 +vn 0.2371 -0.1809 0.9545 +vn 0.2457 -0.1690 0.9545 +vn 0.2281 -0.1569 0.9609 +vn 0.1727 -0.1067 0.9792 +vn 0.1870 -0.1156 0.9755 +vn 0.2022 -0.1250 0.9713 +vn 0.2183 -0.1349 0.9665 +vn 0.2247 -0.1240 0.9665 +vn 0.2081 -0.1149 0.9713 +vn 0.2135 -0.1045 0.9713 +vn 0.2305 -0.1129 0.9665 +vn 0.2358 -0.1014 0.9665 +vn 0.2184 -0.0939 0.9713 +vn 0.2355 -0.1455 0.9609 +vn 0.2537 -0.1568 0.9545 +vn 0.2611 -0.1441 0.9545 +vn 0.2423 -0.1338 0.9609 +vn 0.2486 -0.1217 0.9609 +vn 0.2678 -0.1311 0.9545 +vn 0.2739 -0.1178 0.9545 +vn 0.2543 -0.1094 0.9609 +vn 0.2227 -0.0831 0.9713 +vn 0.2405 -0.0897 0.9665 +vn 0.2446 -0.0778 0.9665 +vn 0.2265 -0.0721 0.9713 +vn 0.2593 -0.0968 0.9609 +vn 0.2794 -0.1043 0.9545 +vn 0.2842 -0.0904 0.9545 +vn 0.2638 -0.0839 0.9609 +vn 0.2298 -0.0609 0.9713 +vn 0.2481 -0.0657 0.9665 +vn 0.2510 -0.0535 0.9665 +vn 0.2325 -0.0495 0.9713 +vn 0.2676 -0.0709 0.9609 +vn 0.2883 -0.0764 0.9545 +vn 0.2917 -0.0621 0.9545 +vn 0.2707 -0.0577 0.9609 +vn 0.2345 -0.0390 0.9713 +vn 0.2532 -0.0420 0.9665 +vn 0.2548 -0.0308 0.9665 +vn 0.2360 -0.0286 0.9713 +vn 0.2731 -0.0453 0.9609 +vn 0.2942 -0.0488 0.9545 +vn 0.2961 -0.0356 0.9545 +vn 0.2748 -0.0331 0.9609 +vn 0.3127 -0.0828 0.9462 +vn 0.3406 -0.0902 0.9359 +vn 0.3446 -0.0734 0.9359 +vn 0.3164 -0.0674 0.9462 +vn 0.3082 -0.0981 0.9462 +vn 0.3357 -0.1068 0.9359 +vn 0.3191 -0.0529 0.9462 +vn 0.3476 -0.0576 0.9359 +vn 0.3498 -0.0419 0.9359 +vn 0.3212 -0.0385 0.9462 +vn 0.2760 -0.0208 0.9609 +vn 0.2559 -0.0192 0.9665 +vn 0.2973 -0.0225 0.9545 +vn 0.2977 -0.0102 0.9546 +vn 0.2763 -0.0085 0.9610 +vn 0.2562 -0.0069 0.9666 +vn 0.3031 -0.1131 0.9462 +vn 0.3301 -0.1232 0.9359 +vn 0.2971 -0.1278 0.9462 +vn 0.3237 -0.1392 0.9359 +vn 0.2370 -0.0177 0.9713 +vn 0.2192 -0.0163 0.9755 +vn 0.2373 -0.0054 0.9714 +vn 0.2195 -0.0038 0.9756 +vn 0.2905 -0.1422 0.9462 +vn 0.3164 -0.1549 0.9359 +vn 0.2832 -0.1563 0.9462 +vn 0.3085 -0.1703 0.9359 +vn 0.2024 -0.0149 0.9792 +vn 0.2027 -0.0022 0.9792 +vn 0.2030 0.0341 0.9786 +vn 0.2198 0.0327 0.9750 +vn 0.2377 0.0312 0.9708 +vn 0.2375 0.0925 0.9670 +vn 0.2566 0.0297 0.9661 +vn 0.2563 0.0914 0.9623 +vn 0.2766 0.0282 0.9606 +vn 0.2764 0.0901 0.9568 +vn 0.2980 0.0266 0.9542 +vn 0.2363 0.1620 0.9581 +vn 0.2332 0.2455 0.9409 +vn 0.2550 0.1609 0.9535 +vn 0.2748 0.1596 0.9482 +vn 0.2272 0.3451 0.9107 +vn 0.2165 0.4613 0.8604 +vn 0.1990 0.5908 0.7819 +vn 0.1846 0.5915 0.7849 +vn 0.1710 0.5921 0.7875 +vn 0.1490 0.7248 0.6727 +vn 0.1195 0.8444 0.5222 +vn 0.1110 0.8446 0.5237 +vn 0.1030 0.8449 0.5249 +vn 0.0736 0.9341 0.3494 +vn 0.0927 0.8220 0.5619 +vn 0.1393 0.3476 0.9272 +vn 0.1270 0.3569 0.9255 +vn 0.0846 0.8266 0.5564 +vn 0.1012 0.8178 0.5666 +vn 0.1523 0.3393 0.9283 +vn 0.0787 0.8313 0.5502 +vn 0.1180 0.3669 0.9228 +vn 0.3232 0.0248 0.9460 +vn 0.3228 -0.0120 0.9464 +vn 0.3516 -0.0140 0.9360 +vn 0.3520 0.0228 0.9357 +vn 0.3225 -0.0245 0.9463 +vn 0.3512 -0.0268 0.9359 +vn 0.3819 0.0208 0.9240 +vn 0.3815 -0.0161 0.9242 +vn 0.3811 -0.0291 0.9241 +vn 0.4160 -0.0319 0.9088 +vn 0.3796 -0.0454 0.9241 +vn 0.4143 -0.0494 0.9088 +vn 0.4570 -0.0351 0.8888 +vn 0.4552 -0.0542 0.8887 +vn 0.3771 -0.0624 0.9241 +vn 0.4117 -0.0681 0.9088 +vn 0.3739 -0.0796 0.9241 +vn 0.4081 -0.0869 0.9088 +vn 0.4523 -0.0748 0.8887 +vn 0.4964 -0.0821 0.8642 +vn 0.4484 -0.0955 0.8887 +vn 0.4921 -0.1048 0.8642 +vn 0.3695 -0.0979 0.9241 +vn 0.4034 -0.1069 0.9088 +vn 0.3643 -0.1159 0.9241 +vn 0.3976 -0.1265 0.9088 +vn 0.5443 -0.0900 0.8341 +vn 0.5959 -0.0985 0.7970 +vn 0.5396 -0.1149 0.8340 +vn 0.5908 -0.1258 0.7969 +vn 0.4431 -0.1174 0.8887 +vn 0.4864 -0.1289 0.8642 +vn 0.4368 -0.1390 0.8887 +vn 0.4795 -0.1526 0.8642 +vn 0.3581 -0.1336 0.9241 +vn 0.3909 -0.1459 0.9088 +vn 0.3511 -0.1510 0.9241 +vn 0.3833 -0.1649 0.9088 +vn 0.6512 -0.1076 0.7512 +vn 0.7095 -0.1172 0.6949 +vn 0.6456 -0.1375 0.7512 +vn 0.7034 -0.1498 0.6949 +vn 0.5333 -0.1413 0.8340 +vn 0.5839 -0.1547 0.7969 +vn 0.5257 -0.1673 0.8340 +vn 0.5756 -0.1832 0.7969 +vn 0.4295 -0.1603 0.8887 +vn 0.4714 -0.1759 0.8642 +vn 0.4211 -0.1811 0.8887 +vn 0.4622 -0.1988 0.8642 +vn 0.7697 -0.1271 0.6256 +vn 0.7631 -0.1625 0.6255 +vn 0.6380 -0.1690 0.7512 +vn 0.6952 -0.1842 0.6948 +vn 0.6290 -0.2001 0.7512 +vn 0.7542 -0.1998 0.6255 +vn 0.6184 -0.2308 0.7512 +vn 0.5659 -0.2112 0.7969 +vn 0.5169 -0.1929 0.8340 +vn 0.5068 -0.2180 0.8340 +vn 0.4955 -0.2426 0.8340 +vn 0.4519 -0.2213 0.8642 +vn 0.3900 -0.2410 0.8887 +vn 0.3550 -0.2193 0.9088 +vn 0.4013 -0.2215 0.8888 +vn 0.3653 -0.2017 0.9088 +vn 0.4117 -0.2016 0.8887 +vn 0.3748 -0.1835 0.9088 +vn 0.3252 -0.2009 0.9241 +vn 0.2997 -0.1852 0.9359 +vn 0.3347 -0.1847 0.9241 +vn 0.2572 -0.1962 0.9462 +vn 0.2665 -0.1833 0.9462 +vn 0.3433 -0.1681 0.9241 +vn 0.2752 -0.1700 0.9462 +vn -0.2764 0.8509 0.4468 +vn -0.1796 0.9364 0.3016 +vn -0.2700 0.8503 0.4517 +vn -0.4659 0.3937 0.7924 +vn -0.1893 0.8452 0.4998 +vn -0.3070 0.3865 0.8697 +vn -0.1248 0.8435 0.5225 +vn -0.2059 0.3850 0.8996 +vn -0.0709 0.8419 0.5350 +vn -0.1223 0.3836 0.9154 +vn -0.0285 0.8408 0.5406 +vn -0.0565 0.3826 0.9222 +vn -0.8351 -0.3019 0.4599 +vn -0.8494 -0.4327 0.3021 +vn -0.5860 0.1380 0.7985 +vn -0.8412 -0.3039 0.4472 +vn 0.5633 0.7797 0.2734 +vn 0.8651 0.2627 0.4272 +vn 0.5945 0.7804 0.1938 +vn 0.9161 0.2627 0.3030 +vn 0.6326 0.7744 0.0105 +vn 0.9650 0.2617 0.0153 +vn 0.9623 0.2619 0.0739 +vn 0.6288 0.7761 0.0487 +vn 0.3735 0.9276 0.0067 +vn 0.3717 0.9283 -0.0013 +vn 0.6366 0.7712 -0.0023 +vn 0.9654 0.2608 -0.0046 +vn 0.5553 0.8316 0.0108 +vn 0.7108 0.7032 0.0148 +vn 0.7098 0.7044 -0.0018 +vn 0.5538 0.8326 -0.0017 +vn 0.8272 0.5616 0.0181 +vn 0.9050 0.4248 0.0206 +vn 0.9049 0.4256 -0.0013 +vn 0.8267 0.5626 -0.0015 +vn 0.9526 0.3034 0.0224 +vn 0.9794 0.2007 0.0236 +vn 0.9796 0.2010 -0.0007 +vn 0.9527 0.3040 -0.0010 +vn 0.9930 0.1154 0.0244 +vn 0.9987 0.0450 0.0248 +vn 0.9990 0.0451 -0.0002 +vn 0.9933 0.1156 -0.0004 +vn 0.9995 -0.0188 0.0250 +vn 0.9981 -0.0559 0.0251 +vn 0.9984 -0.0559 -0.0001 +vn 0.9998 -0.0188 -0.0001 +vn 0.9967 -0.0773 0.0251 +vn 0.9970 -0.0773 -0.0001 +vn 0.9928 -0.1176 0.0229 +vn 0.9930 -0.1177 0.0000 +vn 0.9863 -0.1629 0.0251 +vn 0.9866 -0.1629 0.0000 +vn 0.9778 -0.2084 0.0230 +vn 0.9781 -0.2083 0.0000 +vn 0.9664 -0.2560 0.0251 +vn 0.9667 -0.2561 0.0000 +vn 0.9527 -0.3031 0.0230 +vn 0.9529 -0.3032 -0.0000 +vn 0.9366 -0.3495 0.0251 +vn 0.9369 -0.3496 0.0000 +vn 0.9184 -0.3950 0.0230 +vn 0.9186 -0.3951 0.0000 +vn 0.8978 -0.4396 0.0251 +vn 0.8981 -0.4397 -0.0000 +vn 0.8753 -0.4831 0.0230 +vn 0.8755 -0.4833 0.0000 +vn 0.8504 -0.5255 0.0251 +vn 0.8507 -0.5257 0.0000 +vn 0.8236 -0.5667 0.0231 +vn 0.8239 -0.5668 0.0001 +vn 0.7948 -0.6063 0.0251 +vn 0.7951 -0.6065 0.0001 +vn 0.7641 -0.6447 0.0230 +vn 0.7644 -0.6448 0.0001 +vn 0.7335 -0.6792 0.0251 +vn 0.7337 -0.6794 -0.0000 +vn 0.7017 -0.7121 0.0230 +vn 0.7019 -0.7123 0.0000 +vn 0.6723 -0.7399 0.0251 +vn 0.6725 -0.7401 -0.0000 +vn 0.6562 -0.7542 0.0227 +vn 0.6564 -0.7544 -0.0001 +vn 0.6278 -0.7780 0.0251 +vn 0.5769 -0.8165 0.0249 +vn 0.5770 -0.8168 -0.0002 +vn 0.6280 -0.7782 -0.0001 +vn 0.5178 -0.8551 0.0243 +vn 0.4421 -0.8967 0.0237 +vn 0.4419 -0.8970 -0.0007 +vn 0.5178 -0.8555 -0.0005 +vn 0.3444 -0.9386 0.0225 +vn 0.2194 -0.9754 0.0208 +vn 0.2187 -0.9758 -0.0012 +vn 0.3441 -0.9389 -0.0009 +vn 0.0637 -0.9978 0.0183 +vn -0.1196 -0.9927 0.0150 +vn -0.1211 -0.9926 -0.0017 +vn 0.0626 -0.9980 -0.0015 +vn -0.3163 -0.9486 0.0110 +vn -0.5036 -0.8639 0.0068 +vn -0.5053 -0.8629 -0.0013 +vn -0.3180 -0.9481 -0.0017 +vn -0.3156 -0.9478 0.0453 +vn -0.5028 -0.8639 0.0294 +vn -0.2101 -0.9776 0.0109 +vn 0.4004 -0.9162 0.0155 +vn 0.4010 -0.9161 -0.0046 +vn -0.2049 -0.9788 -0.0023 +vn -0.2140 -0.9756 0.0496 +vn 0.3988 -0.9140 0.0743 +vn -0.2236 -0.9680 0.1136 +vn -0.5040 -0.8611 0.0666 +vn 0.3901 -0.9031 0.1797 +vn -0.3181 -0.9427 0.1006 +vn 0.1102 0.8139 0.5705 +vn 0.1660 0.3317 0.9287 +vn 0.6170 0.7790 0.1119 +vn 0.9493 0.2624 0.1733 +vn 0.4523 -0.7787 0.4348 +vn -0.5849 -0.7218 0.3701 +vn -0.5708 -0.7038 0.4228 +vn -0.5870 -0.7247 0.3608 +vn -0.5208 -0.6423 0.5623 +vn -0.4355 -0.5377 0.7219 +vn -0.3132 -0.3877 0.8669 +vn -0.1976 -0.2455 0.9491 +vn -0.1349 -0.1677 0.9766 +vn -0.0819 -0.1019 0.9914 +vn -0.0395 -0.0491 0.9980 +vn -0.0028 -0.0036 1.0000 +vn 0.0265 0.0327 0.9991 +vn 0.0470 0.0580 0.9972 +vn 0.0649 0.0803 0.9947 +vn 0.0745 0.0923 0.9929 +vn 0.0769 0.0952 0.9925 +vn 0.0826 0.1023 0.9913 +vn 0.0907 0.1122 0.9895 +vn 0.0991 0.1227 0.9875 +vn 0.1081 0.1337 0.9851 +vn 0.1175 0.1454 0.9824 +vn 0.1275 0.1577 0.9792 +vn 0.1381 0.1708 0.9756 +vn 0.1493 0.1846 0.9714 +vn 0.1612 0.1993 0.9666 +vn 0.1738 0.2149 0.9610 +vn 0.1873 0.2315 0.9546 +vn 0.2031 0.2511 0.9464 +vn 0.2212 0.2735 0.9361 +vn 0.2400 0.2966 0.9243 +vn 0.2619 0.3237 0.9092 +vn 0.2877 0.3556 0.8893 +vn 0.3157 0.3902 0.8649 +vn 0.3461 0.4277 0.8350 +vn 0.3788 0.4681 0.7984 +vn 0.4137 0.5112 0.7533 +vn 0.4505 0.5567 0.6980 +vn 0.4883 0.6035 0.6303 +vn 0.5261 0.6502 0.5481 +vn 0.5636 0.6964 0.4443 +vn 0.5971 0.7377 0.3149 +vn 0.6190 0.7646 0.1796 +vn 0.6274 0.7750 0.0761 +vn 0.6292 0.7771 0.0155 +vn 0.6292 0.7772 -0.0053 +vn 0.2000 -0.9072 0.3701 +vn 0.1948 -0.8850 0.4228 +vn 0.2010 -0.9107 0.3608 +vn 0.1777 -0.8076 0.5623 +vn 0.1491 -0.6757 0.7219 +vn 0.1080 -0.4866 0.8669 +vn 0.0688 -0.3075 0.9491 +vn 0.0470 -0.2100 0.9766 +vn 0.0286 -0.1276 0.9914 +vn 0.0138 -0.0615 0.9980 +vn 0.0011 -0.0044 1.0000 +vn -0.0091 0.0411 0.9991 +vn -0.0161 0.0729 0.9972 +vn -0.0224 0.1008 0.9947 +vn -0.0257 0.1158 0.9929 +vn -0.0266 0.1194 0.9925 +vn -0.0285 0.1284 0.9913 +vn -0.0313 0.1409 0.9895 +vn -0.0342 0.1540 0.9875 +vn -0.0372 0.1679 0.9851 +vn -0.0405 0.1825 0.9824 +vn -0.0439 0.1980 0.9792 +vn -0.0475 0.2144 0.9756 +vn -0.0514 0.2318 0.9714 +vn -0.0554 0.2503 0.9666 +vn -0.0598 0.2699 0.9610 +vn -0.0644 0.2908 0.9546 +vn -0.0698 0.3153 0.9464 +vn -0.0760 0.3434 0.9361 +vn -0.0824 0.3726 0.9243 +vn -0.0900 0.4066 0.9092 +vn -0.0988 0.4466 0.8893 +vn -0.1084 0.4901 0.8649 +vn -0.1188 0.5372 0.8350 +vn -0.1300 0.5880 0.7984 +vn -0.1420 0.6421 0.7533 +vn -0.1546 0.6992 0.6980 +vn -0.1676 0.7580 0.6303 +vn -0.1806 0.8167 0.5481 +vn -0.1934 0.8748 0.4443 +vn -0.2048 0.9268 0.3149 +vn -0.2122 0.9606 0.1796 +vn -0.2151 0.9736 0.0761 +vn -0.2157 0.9763 0.0155 +vn -0.2158 0.9764 -0.0053 +vn 0.8345 -0.4082 0.3701 +vn 0.8139 -0.3985 0.4228 +vn 0.8378 -0.4097 0.3608 +vn 0.7427 -0.3636 0.5624 +vn 0.6216 -0.3040 0.7219 +vn 0.4480 -0.2184 0.8669 +vn 0.2834 -0.1376 0.9491 +vn 0.1936 -0.0939 0.9766 +vn 0.1176 -0.0570 0.9914 +vn 0.0567 -0.0275 0.9980 +vn 0.0041 -0.0019 1.0000 +vn -0.0378 0.0185 0.9991 +vn -0.0671 0.0328 0.9972 +vn -0.0928 0.0452 0.9947 +vn -0.1066 0.0519 0.9929 +vn -0.1100 0.0536 0.9925 +vn -0.1183 0.0576 0.9913 +vn -0.1297 0.0632 0.9895 +vn -0.1418 0.0691 0.9875 +vn -0.1546 0.0754 0.9851 +vn -0.1680 0.0819 0.9824 +vn -0.1823 0.0889 0.9792 +vn -0.1974 0.0963 0.9756 +vn -0.2134 0.1041 0.9714 +vn -0.2304 0.1124 0.9666 +vn -0.2484 0.1213 0.9610 +vn -0.2676 0.1306 0.9546 +vn -0.2902 0.1417 0.9464 +vn -0.3161 0.1543 0.9361 +vn -0.3429 0.1674 0.9243 +vn -0.3742 0.1827 0.9092 +vn -0.4110 0.2007 0.8893 +vn -0.4510 0.2203 0.8649 +vn -0.4944 0.2414 0.8350 +vn -0.5411 0.2643 0.7984 +vn -0.5909 0.2886 0.7534 +vn -0.6435 0.3143 0.6980 +vn -0.6976 0.3407 0.6303 +vn -0.7516 0.3671 0.5481 +vn -0.8050 0.3932 0.4443 +vn -0.8528 0.4166 0.3149 +vn -0.8839 0.4319 0.1796 +vn -0.8958 0.4378 0.0761 +vn -0.8984 0.4390 0.0155 +vn -0.8985 0.4390 -0.0052 +vn 0.8400 0.3967 0.3701 +vn 0.8196 0.3866 0.4228 +vn 0.8432 0.3984 0.3609 +vn 0.7479 0.3528 0.5623 +vn 0.6257 0.2956 0.7219 +vn 0.4502 0.2135 0.8670 +vn 0.2844 0.1356 0.9491 +vn 0.1943 0.0927 0.9766 +vn 0.1180 0.0563 0.9914 +vn 0.0569 0.0272 0.9980 +vn 0.0041 0.0021 1.0000 +vn -0.0381 -0.0179 0.9991 +vn -0.0675 -0.0319 0.9972 +vn -0.0933 -0.0442 0.9947 +vn -0.1071 -0.0508 0.9929 +vn -0.1105 -0.0524 0.9925 +vn -0.1188 -0.0563 0.9913 +vn -0.1304 -0.0618 0.9895 +vn -0.1425 -0.0675 0.9875 +vn -0.1554 -0.0736 0.9851 +vn -0.1689 -0.0800 0.9824 +vn -0.1833 -0.0868 0.9792 +vn -0.1985 -0.0940 0.9756 +vn -0.2146 -0.1016 0.9714 +vn -0.2317 -0.1097 0.9666 +vn -0.2498 -0.1183 0.9610 +vn -0.2691 -0.1274 0.9546 +vn -0.2919 -0.1382 0.9464 +vn -0.3179 -0.1505 0.9361 +vn -0.3449 -0.1632 0.9243 +vn -0.3764 -0.1781 0.9092 +vn -0.4134 -0.1956 0.8893 +vn -0.4537 -0.2147 0.8649 +vn -0.4973 -0.2353 0.8351 +vn -0.5443 -0.2575 0.7984 +vn -0.5945 -0.2813 0.7533 +vn -0.6473 -0.3063 0.6980 +vn -0.7017 -0.3320 0.6304 +vn -0.7561 -0.3577 0.5481 +vn -0.8098 -0.3831 0.4443 +vn -0.8580 -0.4058 0.3149 +vn -0.8893 -0.4205 0.1797 +vn -0.9014 -0.4262 0.0761 +vn -0.9039 -0.4274 0.0155 +vn -0.9040 -0.4275 -0.0051 +vn 0.2148 0.9038 0.3701 +vn 0.2099 0.8816 0.4228 +vn 0.2154 0.9074 0.3608 +vn 0.1914 0.8044 0.5624 +vn 0.1599 0.6732 0.7219 +vn 0.1146 0.4851 0.8669 +vn 0.0719 0.3068 0.9491 +vn 0.0491 0.2096 0.9766 +vn 0.0298 0.1273 0.9914 +vn 0.0143 0.0614 0.9980 +vn 0.0010 0.0045 1.0000 +vn -0.0097 -0.0409 0.9991 +vn -0.0172 -0.0727 0.9972 +vn -0.0237 -0.1005 0.9947 +vn -0.0272 -0.1154 0.9929 +vn -0.0281 -0.1191 0.9925 +vn -0.0302 -0.1280 0.9913 +vn -0.0331 -0.1404 0.9895 +vn -0.0363 -0.1535 0.9875 +vn -0.0395 -0.1673 0.9851 +vn -0.0430 -0.1819 0.9824 +vn -0.0467 -0.1974 0.9792 +vn -0.0505 -0.2137 0.9756 +vn -0.0547 -0.2311 0.9714 +vn -0.0590 -0.2495 0.9666 +vn -0.0637 -0.2690 0.9610 +vn -0.0686 -0.2898 0.9546 +vn -0.0744 -0.3143 0.9464 +vn -0.0810 -0.3423 0.9361 +vn -0.0879 -0.3713 0.9243 +vn -0.0960 -0.4052 0.9092 +vn -0.1054 -0.4451 0.8893 +vn -0.1157 -0.4884 0.8649 +vn -0.1268 -0.5354 0.8350 +vn -0.1388 -0.5860 0.7984 +vn -0.1516 -0.6399 0.7533 +vn -0.1651 -0.6968 0.6980 +vn -0.1790 -0.7554 0.6303 +vn -0.1928 -0.8139 0.5481 +vn -0.2066 -0.8717 0.4443 +vn -0.2189 -0.9235 0.3149 +vn -0.2270 -0.9572 0.1796 +vn -0.2301 -0.9702 0.0761 +vn -0.2307 -0.9729 0.0155 +vn -0.2307 -0.9730 -0.0053 +vn -0.5737 0.7307 0.3701 +vn -0.5593 0.7130 0.4228 +vn -0.5760 0.7335 0.3608 +vn -0.5104 0.6506 0.5624 +vn -0.4273 0.5442 0.7220 +vn -0.3083 0.3916 0.8669 +vn -0.1953 0.2472 0.9491 +vn -0.1334 0.1688 0.9766 +vn -0.0811 0.1025 0.9914 +vn -0.0391 0.0494 0.9980 +vn -0.0029 0.0035 1.0000 +vn 0.0260 -0.0331 0.9991 +vn 0.0462 -0.0587 0.9972 +vn 0.0639 -0.0811 0.9947 +vn 0.0734 -0.0931 0.9929 +vn 0.0757 -0.0961 0.9925 +vn 0.0814 -0.1033 0.9913 +vn 0.0893 -0.1134 0.9895 +vn 0.0976 -0.1240 0.9875 +vn 0.1064 -0.1351 0.9851 +vn 0.1156 -0.1469 0.9824 +vn 0.1254 -0.1594 0.9792 +vn 0.1358 -0.1726 0.9756 +vn 0.1468 -0.1866 0.9714 +vn 0.1585 -0.2015 0.9666 +vn 0.1709 -0.2173 0.9610 +vn 0.1841 -0.2341 0.9546 +vn 0.1996 -0.2539 0.9464 +vn 0.2174 -0.2765 0.9361 +vn 0.2358 -0.2999 0.9244 +vn 0.2574 -0.3273 0.9092 +vn 0.2827 -0.3596 0.8893 +vn 0.3102 -0.3946 0.8649 +vn 0.3400 -0.4325 0.8350 +vn 0.3722 -0.4734 0.7984 +vn 0.4064 -0.5170 0.7533 +vn 0.4426 -0.5630 0.6980 +vn 0.4798 -0.6103 0.6303 +vn 0.5169 -0.6576 0.5481 +vn 0.5536 -0.7043 0.4443 +vn 0.5865 -0.7462 0.3149 +vn 0.6078 -0.7735 0.1796 +vn 0.6160 -0.7840 0.0761 +vn 0.6178 -0.7862 0.0155 +vn 0.6178 -0.7863 -0.0054 +vn 0.9999 -0.0068 0.0155 +vn 0.9971 -0.0069 0.0761 +vn 1.0000 -0.0068 -0.0054 +vn 0.9837 -0.0067 0.1796 +vn 0.9491 -0.0064 0.3149 +vn 0.8958 -0.0060 0.4443 +vn 0.8364 -0.0055 0.5481 +vn 0.7763 -0.0051 0.6303 +vn 0.7161 -0.0047 0.6980 +vn 0.6576 -0.0044 0.7533 +vn 0.6022 -0.0040 0.7984 +vn 0.5502 -0.0036 0.8350 +vn 0.5019 -0.0033 0.8649 +vn 0.4574 -0.0030 0.8893 +vn 0.4164 -0.0027 0.9092 +vn 0.3816 -0.0025 0.9243 +vn 0.3517 -0.0023 0.9361 +vn 0.3229 -0.0021 0.9464 +vn 0.2978 -0.0019 0.9546 +vn 0.2764 -0.0018 0.9610 +vn 0.2564 -0.0016 0.9666 +vn 0.2374 -0.0015 0.9714 +vn 0.2196 -0.0014 0.9756 +vn 0.2028 -0.0013 0.9792 +vn 0.1869 -0.0011 0.9824 +vn 0.1719 -0.0010 0.9851 +vn 0.1577 -0.0009 0.9875 +vn 0.1443 -0.0008 0.9895 +vn 0.1315 -0.0007 0.9913 +vn 0.1223 -0.0007 0.9925 +vn 0.1186 -0.0007 0.9929 +vn 0.1032 -0.0006 0.9947 +vn 0.0747 -0.0005 0.9972 +vn 0.0421 -0.0003 0.9991 +vn -0.0046 -0.0001 1.0000 +vn -0.0630 0.0002 0.9980 +vn -0.1307 0.0005 0.9914 +vn -0.2152 0.0008 0.9766 +vn -0.3151 0.0013 0.9491 +vn -0.4982 0.0029 0.8670 +vn -0.6919 0.0049 0.7220 +vn -0.8269 0.0063 0.5623 +vn -0.9062 0.0070 0.4228 +vn -0.9290 0.0068 0.3701 +vn -0.9326 0.0066 0.3609 +vn -0.1173 0.0520 0.9917 +vn 0.0000 0.0520 0.9986 +vn 0.0000 -0.0055 1.0000 +vn -0.0785 -0.0055 0.9969 +vn -0.0784 0.0520 0.9956 +vn -0.0774 -0.1613 0.9839 +vn 0.0000 -0.1613 0.9869 +vn -0.1544 -0.1613 0.9747 +vn -0.1564 -0.0055 0.9877 +vn -0.2331 0.0520 0.9711 +vn -0.2334 -0.0055 0.9724 +vn -0.3090 -0.0055 0.9510 +vn -0.3086 0.0520 0.9498 +vn -0.1562 0.0520 0.9864 +vn -0.2304 -0.1613 0.9596 +vn -0.3050 -0.1613 0.9386 +vn -0.3822 0.0521 0.9226 +vn -0.3827 -0.0055 0.9239 +vn -0.4540 -0.0055 0.8910 +vn -0.4534 0.0521 0.8898 +vn -0.3777 -0.1613 0.9118 +vn -0.4480 -0.1613 0.8793 +vn -0.5218 0.0520 0.8515 +vn -0.5225 -0.0055 0.8526 +vn -0.5878 -0.0055 0.8090 +vn -0.5870 0.0520 0.8079 +vn -0.5156 -0.1613 0.8415 +vn -0.5801 -0.1613 0.7984 +vn -0.6486 0.0520 0.7594 +vn -0.6494 -0.0055 0.7604 +vn -0.7071 -0.0055 0.7071 +vn -0.7061 0.0520 0.7061 +vn -0.6409 -0.1613 0.7504 +vn -0.6978 -0.1613 0.6978 +vn -0.7594 0.0520 0.6486 +vn -0.7604 -0.0055 0.6494 +vn -0.8090 -0.0055 0.5878 +vn -0.8079 0.0520 0.5870 +vn -0.7504 -0.1613 0.6409 +vn -0.7984 -0.1613 0.5801 +vn -0.8515 0.0520 0.5218 +vn -0.8526 -0.0055 0.5225 +vn -0.8910 -0.0055 0.4540 +vn -0.8898 0.0520 0.4534 +vn -0.8415 -0.1613 0.5157 +vn -0.8793 -0.1613 0.4480 +vn -0.9226 0.0520 0.3822 +vn -0.9239 -0.0055 0.3827 +vn -0.9510 -0.0055 0.3090 +vn -0.9498 0.0520 0.3086 +vn -0.9118 -0.1613 0.3777 +vn -0.9386 -0.1613 0.3050 +vn -0.9711 0.0520 0.2331 +vn -0.9724 -0.0055 0.2334 +vn -0.9877 -0.0055 0.1564 +vn -0.9864 0.0520 0.1562 +vn -0.9596 -0.1613 0.2304 +vn -0.9747 -0.1613 0.1544 +vn -0.9956 0.0520 0.0784 +vn -0.9969 -0.0055 0.0785 +vn -1.0000 -0.0055 0.0000 +vn -0.9986 0.0520 -0.0000 +vn -0.9839 -0.1613 0.0774 +vn -0.9869 -0.1613 0.0000 +vn -0.9956 0.0520 -0.0784 +vn -0.9969 -0.0055 -0.0785 +vn -0.9877 -0.0055 -0.1564 +vn -0.9864 0.0520 -0.1562 +vn -0.9839 -0.1613 -0.0774 +vn -0.9748 -0.1613 -0.1544 +vn -0.9711 0.0520 -0.2331 +vn -0.9724 -0.0055 -0.2334 +vn -0.9510 -0.0055 -0.3090 +vn -0.9498 0.0520 -0.3086 +vn -0.9596 -0.1613 -0.2304 +vn -0.9386 -0.1613 -0.3050 +vn -0.9226 0.0520 -0.3822 +vn -0.9239 -0.0055 -0.3827 +vn -0.8910 -0.0055 -0.4540 +vn -0.8898 0.0520 -0.4534 +vn -0.9118 -0.1613 -0.3777 +vn -0.8793 -0.1613 -0.4480 +vn -0.8515 0.0520 -0.5218 +vn -0.8526 -0.0055 -0.5225 +vn -0.8090 -0.0055 -0.5878 +vn -0.8079 0.0520 -0.5870 +vn -0.8415 -0.1613 -0.5157 +vn -0.7984 -0.1613 -0.5801 +vn -0.7594 0.0520 -0.6486 +vn -0.7604 -0.0055 -0.6494 +vn -0.7071 -0.0055 -0.7071 +vn -0.7061 0.0520 -0.7062 +vn -0.7504 -0.1613 -0.6409 +vn -0.6978 -0.1613 -0.6978 +vn -0.6486 0.0520 -0.7594 +vn -0.6494 -0.0055 -0.7604 +vn -0.5878 -0.0055 -0.8090 +vn -0.5870 0.0520 -0.8079 +vn -0.6409 -0.1613 -0.7504 +vn -0.5801 -0.1613 -0.7984 +vn -0.5218 0.0520 -0.8515 +vn -0.5225 -0.0055 -0.8526 +vn -0.4540 -0.0055 -0.8910 +vn -0.4534 0.0520 -0.8898 +vn -0.5157 -0.1613 -0.8415 +vn -0.4480 -0.1613 -0.8793 +vn -0.3822 0.0520 -0.9226 +vn -0.3827 -0.0055 -0.9239 +vn -0.3090 -0.0055 -0.9510 +vn -0.3086 0.0520 -0.9498 +vn -0.3777 -0.1613 -0.9118 +vn -0.3050 -0.1613 -0.9386 +vn -0.2331 0.0520 -0.9711 +vn -0.2334 -0.0055 -0.9724 +vn -0.1564 -0.0055 -0.9877 +vn -0.1562 0.0520 -0.9864 +vn -0.2304 -0.1613 -0.9596 +vn -0.1544 -0.1613 -0.9747 +vn -0.0784 0.0520 -0.9956 +vn -0.0785 -0.0055 -0.9969 +vn -0.0000 -0.0055 -1.0000 +vn 0.0000 0.0520 -0.9986 +vn -0.0774 -0.1613 -0.9839 +vn -0.0000 -0.1613 -0.9869 +vn 0.0784 0.0521 -0.9956 +vn 0.0785 -0.0055 -0.9969 +vn 0.1564 -0.0055 -0.9877 +vn 0.1562 0.0521 -0.9863 +vn 0.0774 -0.1613 -0.9839 +vn 0.1544 -0.1614 -0.9747 +vn 0.2331 0.0521 -0.9711 +vn 0.2334 -0.0055 -0.9724 +vn 0.3090 -0.0055 -0.9510 +vn 0.3086 0.0520 -0.9498 +vn 0.2304 -0.1613 -0.9596 +vn 0.3050 -0.1613 -0.9386 +vn 0.3822 0.0520 -0.9226 +vn 0.3827 -0.0055 -0.9239 +vn 0.4540 -0.0055 -0.8910 +vn 0.4534 0.0520 -0.8898 +vn 0.3777 -0.1613 -0.9118 +vn 0.4480 -0.1613 -0.8793 +vn 0.5218 0.0520 -0.8515 +vn 0.5225 -0.0055 -0.8526 +vn 0.5878 -0.0055 -0.8090 +vn 0.5870 0.0520 -0.8079 +vn 0.5157 -0.1613 -0.8415 +vn 0.5801 -0.1613 -0.7984 +vn 0.6486 0.0520 -0.7594 +vn 0.6494 -0.0055 -0.7604 +vn 0.7071 -0.0055 -0.7071 +vn 0.7062 0.0520 -0.7062 +vn 0.6409 -0.1613 -0.7504 +vn 0.6978 -0.1613 -0.6978 +vn 0.7594 0.0520 -0.6486 +vn 0.7604 -0.0055 -0.6494 +vn 0.8090 -0.0055 -0.5878 +vn 0.8079 0.0520 -0.5870 +vn 0.7504 -0.1613 -0.6409 +vn 0.7984 -0.1613 -0.5801 +vn 0.8515 0.0520 -0.5218 +vn 0.8526 -0.0055 -0.5225 +vn 0.8910 -0.0055 -0.4540 +vn 0.8898 0.0520 -0.4534 +vn 0.8415 -0.1613 -0.5157 +vn 0.8793 -0.1613 -0.4480 +vn 0.9226 0.0520 -0.3822 +vn 0.9239 -0.0055 -0.3827 +vn 0.9510 -0.0055 -0.3090 +vn 0.9498 0.0520 -0.3086 +vn 0.9118 -0.1613 -0.3777 +vn 0.9386 -0.1613 -0.3050 +vn 0.9711 0.0520 -0.2331 +vn 0.9724 -0.0055 -0.2334 +vn 0.9877 -0.0055 -0.1564 +vn 0.9863 0.0521 -0.1562 +vn 0.9596 -0.1613 -0.2304 +vn 0.9747 -0.1613 -0.1544 +vn 0.9956 0.0521 -0.0783 +vn 0.9969 -0.0055 -0.0785 +vn 1.0000 -0.0055 0.0000 +vn 0.9986 0.0520 0.0000 +vn 0.9839 -0.1614 -0.0774 +vn 0.9869 -0.1614 -0.0000 +vn 0.9956 0.0520 0.0784 +vn 0.9969 -0.0055 0.0785 +vn 0.9877 -0.0055 0.1564 +vn 0.9864 0.0520 0.1562 +vn 0.9839 -0.1613 0.0774 +vn 0.9747 -0.1613 0.1544 +vn 0.9711 0.0520 0.2331 +vn 0.9724 -0.0055 0.2334 +vn 0.9510 -0.0055 0.3090 +vn 0.9498 0.0520 0.3086 +vn 0.9596 -0.1613 0.2304 +vn 0.9386 -0.1613 0.3050 +vn 0.9226 0.0520 0.3822 +vn 0.9239 -0.0055 0.3827 +vn 0.8910 -0.0055 0.4540 +vn 0.8898 0.0520 0.4534 +vn 0.9118 -0.1613 0.3777 +vn 0.8793 -0.1613 0.4480 +vn 0.8515 0.0521 0.5218 +vn 0.8526 -0.0055 0.5225 +vn 0.8090 -0.0055 0.5878 +vn 0.8079 0.0521 0.5870 +vn 0.8415 -0.1613 0.5157 +vn 0.7984 -0.1613 0.5801 +vn 0.7594 0.0520 0.6486 +vn 0.7604 -0.0055 0.6494 +vn 0.7071 -0.0055 0.7071 +vn 0.7061 0.0520 0.7061 +vn 0.7504 -0.1613 0.6409 +vn 0.6978 -0.1613 0.6978 +vn 0.6486 0.0520 0.7594 +vn 0.6494 -0.0055 0.7604 +vn 0.5878 -0.0055 0.8090 +vn 0.5870 0.0520 0.8079 +vn 0.6409 -0.1613 0.7504 +vn 0.5801 -0.1614 0.7984 +vn 0.5218 0.0520 0.8515 +vn 0.5225 -0.0055 0.8526 +vn 0.4540 -0.0055 0.8910 +vn 0.4534 0.0520 0.8898 +vn 0.5156 -0.1613 0.8415 +vn 0.4480 -0.1613 0.8793 +vn 0.3822 0.0520 0.9226 +vn 0.3827 -0.0055 0.9239 +vn 0.3090 -0.0055 0.9510 +vn 0.3086 0.0520 0.9498 +vn 0.3777 -0.1614 0.9118 +vn 0.3050 -0.1614 0.9386 +vn 0.2331 0.0520 0.9711 +vn 0.2334 -0.0055 0.9724 +vn 0.1564 -0.0055 0.9877 +vn 0.1562 0.0520 0.9864 +vn 0.2304 -0.1613 0.9596 +vn 0.1544 -0.1613 0.9747 +vn 0.0784 0.0520 0.9956 +vn 0.0785 -0.0055 0.9969 +vn 0.0774 -0.1613 0.9839 +vn -0.0000 -0.7805 0.6252 +vn -0.0491 -0.7805 0.6233 +vn -0.0632 -0.5929 0.8028 +vn -0.0000 -0.5929 0.8052 +vn -0.0000 -0.9094 0.4159 +vn -0.0326 -0.9094 0.4147 +vn -0.0978 -0.7805 0.6175 +vn -0.0651 -0.9094 0.4108 +vn -0.1260 -0.5929 0.7953 +vn -0.1459 -0.7805 0.6079 +vn -0.1880 -0.5929 0.7830 +vn -0.0971 -0.9094 0.4045 +vn -0.1932 -0.7805 0.5946 +vn -0.1285 -0.9094 0.3956 +vn -0.2488 -0.5929 0.7658 +vn -0.2393 -0.7805 0.5776 +vn -0.3082 -0.5929 0.7439 +vn -0.1592 -0.9094 0.3843 +vn -0.2838 -0.7805 0.5570 +vn -0.1888 -0.9094 0.3706 +vn -0.3656 -0.5929 0.7175 +vn -0.3267 -0.7805 0.5331 +vn -0.4207 -0.5929 0.6866 +vn -0.2173 -0.9094 0.3547 +vn -0.3675 -0.7805 0.5058 +vn -0.2445 -0.9094 0.3365 +vn -0.4733 -0.5929 0.6515 +vn -0.4060 -0.7805 0.4754 +vn -0.5230 -0.5929 0.6123 +vn -0.2701 -0.9094 0.3163 +vn -0.4421 -0.7805 0.4421 +vn -0.2941 -0.9094 0.2941 +vn -0.5694 -0.5929 0.5694 +vn -0.4754 -0.7805 0.4060 +vn -0.6123 -0.5929 0.5230 +vn -0.3163 -0.9094 0.2701 +vn -0.5058 -0.7805 0.3675 +vn -0.3365 -0.9094 0.2445 +vn -0.6515 -0.5929 0.4733 +vn -0.5331 -0.7805 0.3267 +vn -0.6866 -0.5929 0.4207 +vn -0.3547 -0.9094 0.2173 +vn -0.5570 -0.7805 0.2838 +vn -0.3706 -0.9094 0.1888 +vn -0.7175 -0.5930 0.3656 +vn -0.5776 -0.7805 0.2392 +vn -0.7439 -0.5929 0.3082 +vn -0.3843 -0.9094 0.1592 +vn -0.5946 -0.7805 0.1932 +vn -0.3956 -0.9094 0.1285 +vn -0.7658 -0.5929 0.2488 +vn -0.6079 -0.7805 0.1459 +vn -0.7830 -0.5929 0.1880 +vn -0.4045 -0.9094 0.0971 +vn -0.6175 -0.7805 0.0978 +vn -0.4108 -0.9094 0.0651 +vn -0.7953 -0.5930 0.1260 +vn -0.6233 -0.7805 0.0491 +vn -0.8028 -0.5930 0.0632 +vn -0.4147 -0.9094 0.0326 +vn -0.6252 -0.7805 0.0000 +vn -0.4159 -0.9094 -0.0000 +vn -0.8052 -0.5930 0.0000 +vn -0.6233 -0.7805 -0.0491 +vn -0.8028 -0.5930 -0.0632 +vn -0.4147 -0.9094 -0.0326 +vn -0.6175 -0.7805 -0.0978 +vn -0.4108 -0.9094 -0.0651 +vn -0.7953 -0.5929 -0.1260 +vn -0.6079 -0.7805 -0.1459 +vn -0.7830 -0.5929 -0.1880 +vn -0.4045 -0.9094 -0.0971 +vn -0.5946 -0.7805 -0.1932 +vn -0.3956 -0.9094 -0.1285 +vn -0.7658 -0.5929 -0.2488 +vn -0.5776 -0.7805 -0.2392 +vn -0.7439 -0.5929 -0.3082 +vn -0.3843 -0.9094 -0.1592 +vn -0.5570 -0.7805 -0.2838 +vn -0.3706 -0.9094 -0.1888 +vn -0.7175 -0.5929 -0.3656 +vn -0.5331 -0.7805 -0.3267 +vn -0.6866 -0.5929 -0.4207 +vn -0.3547 -0.9094 -0.2173 +vn -0.5058 -0.7805 -0.3675 +vn -0.3365 -0.9094 -0.2445 +vn -0.6515 -0.5929 -0.4733 +vn -0.4754 -0.7805 -0.4060 +vn -0.6123 -0.5929 -0.5230 +vn -0.3163 -0.9094 -0.2701 +vn -0.4421 -0.7805 -0.4421 +vn -0.2941 -0.9094 -0.2941 +vn -0.5694 -0.5929 -0.5694 +vn -0.4060 -0.7805 -0.4754 +vn -0.5230 -0.5929 -0.6123 +vn -0.2701 -0.9094 -0.3163 +vn -0.3675 -0.7805 -0.5058 +vn -0.2445 -0.9094 -0.3365 +vn -0.4733 -0.5929 -0.6515 +vn -0.3267 -0.7805 -0.5331 +vn -0.4207 -0.5929 -0.6866 +vn -0.2173 -0.9094 -0.3547 +vn -0.2838 -0.7805 -0.5570 +vn -0.1888 -0.9094 -0.3706 +vn -0.3656 -0.5929 -0.7175 +vn -0.2392 -0.7805 -0.5776 +vn -0.3081 -0.5929 -0.7440 +vn -0.1592 -0.9094 -0.3843 +vn -0.1932 -0.7805 -0.5946 +vn -0.1285 -0.9094 -0.3956 +vn -0.2488 -0.5929 -0.7658 +vn -0.1459 -0.7805 -0.6079 +vn -0.1880 -0.5929 -0.7830 +vn -0.0971 -0.9094 -0.4045 +vn -0.0978 -0.7805 -0.6175 +vn -0.0651 -0.9094 -0.4108 +vn -0.1260 -0.5929 -0.7953 +vn -0.0491 -0.7805 -0.6233 +vn -0.0632 -0.5929 -0.8028 +vn -0.0326 -0.9094 -0.4147 +vn -0.0000 -0.7805 -0.6252 +vn -0.0000 -0.9094 -0.4159 +vn -0.0000 -0.5929 -0.8052 +vn 0.0490 -0.7805 -0.6233 +vn 0.0632 -0.5929 -0.8028 +vn 0.0326 -0.9094 -0.4147 +vn 0.0978 -0.7805 -0.6175 +vn 0.0651 -0.9094 -0.4108 +vn 0.1260 -0.5929 -0.7953 +vn 0.1459 -0.7805 -0.6079 +vn 0.1880 -0.5929 -0.7830 +vn 0.0971 -0.9094 -0.4045 +vn 0.1932 -0.7805 -0.5946 +vn 0.1285 -0.9094 -0.3956 +vn 0.2488 -0.5929 -0.7658 +vn 0.2392 -0.7805 -0.5776 +vn 0.3082 -0.5929 -0.7440 +vn 0.1592 -0.9094 -0.3843 +vn 0.2838 -0.7805 -0.5570 +vn 0.1888 -0.9094 -0.3706 +vn 0.3656 -0.5929 -0.7175 +vn 0.3267 -0.7805 -0.5331 +vn 0.4207 -0.5929 -0.6866 +vn 0.2173 -0.9094 -0.3547 +vn 0.3675 -0.7805 -0.5058 +vn 0.2445 -0.9094 -0.3365 +vn 0.4733 -0.5929 -0.6515 +vn 0.4060 -0.7805 -0.4754 +vn 0.5230 -0.5929 -0.6123 +vn 0.2701 -0.9094 -0.3163 +vn 0.4421 -0.7805 -0.4421 +vn 0.2941 -0.9094 -0.2941 +vn 0.5694 -0.5929 -0.5694 +vn 0.4754 -0.7805 -0.4060 +vn 0.6123 -0.5929 -0.5230 +vn 0.3163 -0.9094 -0.2701 +vn 0.5058 -0.7805 -0.3675 +vn 0.3365 -0.9094 -0.2445 +vn 0.6515 -0.5929 -0.4733 +vn 0.5331 -0.7805 -0.3267 +vn 0.6866 -0.5929 -0.4207 +vn 0.3547 -0.9094 -0.2173 +vn 0.5570 -0.7805 -0.2838 +vn 0.3706 -0.9094 -0.1888 +vn 0.7175 -0.5929 -0.3656 +vn 0.5776 -0.7805 -0.2392 +vn 0.7440 -0.5929 -0.3082 +vn 0.3843 -0.9094 -0.1592 +vn 0.5946 -0.7805 -0.1932 +vn 0.3956 -0.9094 -0.1285 +vn 0.7658 -0.5929 -0.2488 +vn 0.6079 -0.7805 -0.1459 +vn 0.7830 -0.5929 -0.1880 +vn 0.4045 -0.9094 -0.0971 +vn 0.6175 -0.7805 -0.0978 +vn 0.4108 -0.9094 -0.0651 +vn 0.7953 -0.5929 -0.1260 +vn 0.6233 -0.7805 -0.0490 +vn 0.8028 -0.5929 -0.0632 +vn 0.4147 -0.9094 -0.0326 +vn 0.6252 -0.7805 -0.0000 +vn 0.4159 -0.9094 0.0000 +vn 0.8053 -0.5929 -0.0000 +vn 0.6233 -0.7805 0.0491 +vn 0.8028 -0.5929 0.0632 +vn 0.4147 -0.9094 0.0326 +vn 0.6175 -0.7805 0.0978 +vn 0.4108 -0.9094 0.0651 +vn 0.7953 -0.5929 0.1260 +vn 0.6079 -0.7805 0.1459 +vn 0.7830 -0.5929 0.1880 +vn 0.4045 -0.9094 0.0971 +vn 0.5946 -0.7805 0.1932 +vn 0.3956 -0.9094 0.1285 +vn 0.7658 -0.5929 0.2488 +vn 0.5776 -0.7805 0.2392 +vn 0.7440 -0.5929 0.3082 +vn 0.3843 -0.9094 0.1592 +vn 0.5570 -0.7805 0.2838 +vn 0.3706 -0.9094 0.1888 +vn 0.7175 -0.5929 0.3656 +vn 0.5331 -0.7805 0.3267 +vn 0.6866 -0.5929 0.4207 +vn 0.3547 -0.9094 0.2173 +vn 0.5058 -0.7805 0.3675 +vn 0.3365 -0.9094 0.2445 +vn 0.6515 -0.5929 0.4733 +vn 0.4754 -0.7805 0.4060 +vn 0.6123 -0.5929 0.5230 +vn 0.3163 -0.9094 0.2701 +vn 0.4421 -0.7805 0.4421 +vn 0.2941 -0.9094 0.2941 +vn 0.5694 -0.5929 0.5694 +vn 0.4060 -0.7805 0.4754 +vn 0.5230 -0.5929 0.6123 +vn 0.2701 -0.9094 0.3163 +vn 0.3675 -0.7805 0.5058 +vn 0.2445 -0.9094 0.3365 +vn 0.4733 -0.5929 0.6515 +vn 0.3267 -0.7805 0.5331 +vn 0.4207 -0.5929 0.6866 +vn 0.2173 -0.9094 0.3547 +vn 0.2838 -0.7805 0.5570 +vn 0.1888 -0.9094 0.3706 +vn 0.3656 -0.5929 0.7175 +vn 0.2392 -0.7805 0.5776 +vn 0.3082 -0.5929 0.7440 +vn 0.1592 -0.9094 0.3843 +vn 0.1932 -0.7805 0.5946 +vn 0.1285 -0.9094 0.3956 +vn 0.2488 -0.5929 0.7658 +vn 0.1459 -0.7805 0.6079 +vn 0.1880 -0.5929 0.7830 +vn 0.0971 -0.9094 0.4045 +vn 0.0978 -0.7805 0.6175 +vn 0.0651 -0.9094 0.4108 +vn 0.1260 -0.5929 0.7953 +vn 0.0491 -0.7805 0.6233 +vn 0.0632 -0.5929 0.8028 +vn 0.0326 -0.9094 0.4147 +vn -0.0000 -0.9697 0.2443 +vn -0.0192 -0.9697 0.2436 +vn -0.0000 -0.9822 0.1881 +vn -0.0148 -0.9822 0.1875 +vn -0.0382 -0.9697 0.2413 +vn -0.0294 -0.9822 0.1858 +vn -0.0570 -0.9697 0.2376 +vn -0.0439 -0.9822 0.1829 +vn -0.0755 -0.9697 0.2324 +vn -0.0581 -0.9822 0.1789 +vn -0.0935 -0.9697 0.2257 +vn -0.0720 -0.9822 0.1738 +vn -0.1109 -0.9697 0.2177 +vn -0.0854 -0.9822 0.1676 +vn -0.1277 -0.9697 0.2083 +vn -0.0983 -0.9822 0.1604 +vn -0.1436 -0.9697 0.1976 +vn -0.1106 -0.9822 0.1522 +vn -0.1587 -0.9697 0.1858 +vn -0.1222 -0.9822 0.1430 +vn -0.1728 -0.9697 0.1728 +vn -0.1330 -0.9822 0.1330 +vn -0.1858 -0.9697 0.1587 +vn -0.1430 -0.9821 0.1222 +vn -0.1976 -0.9697 0.1436 +vn -0.1522 -0.9821 0.1106 +vn -0.2083 -0.9697 0.1277 +vn -0.1604 -0.9821 0.0983 +vn -0.2177 -0.9697 0.1109 +vn -0.1676 -0.9822 0.0854 +vn -0.2257 -0.9697 0.0935 +vn -0.1738 -0.9822 0.0720 +vn -0.2323 -0.9697 0.0755 +vn -0.1789 -0.9822 0.0581 +vn -0.2376 -0.9697 0.0570 +vn -0.1829 -0.9821 0.0439 +vn -0.2413 -0.9697 0.0382 +vn -0.1858 -0.9822 0.0294 +vn -0.2436 -0.9697 0.0192 +vn -0.1875 -0.9821 0.0148 +vn -0.2443 -0.9697 -0.0000 +vn -0.1881 -0.9821 0.0000 +vn -0.2436 -0.9697 -0.0192 +vn -0.1875 -0.9821 -0.0148 +vn -0.2413 -0.9697 -0.0382 +vn -0.1858 -0.9822 -0.0294 +vn -0.2376 -0.9697 -0.0570 +vn -0.1829 -0.9822 -0.0439 +vn -0.2324 -0.9697 -0.0755 +vn -0.1789 -0.9822 -0.0581 +vn -0.2257 -0.9697 -0.0935 +vn -0.1738 -0.9821 -0.0720 +vn -0.2177 -0.9697 -0.1109 +vn -0.1676 -0.9822 -0.0854 +vn -0.2083 -0.9697 -0.1277 +vn -0.1604 -0.9822 -0.0983 +vn -0.1976 -0.9697 -0.1436 +vn -0.1522 -0.9822 -0.1106 +vn -0.1858 -0.9697 -0.1587 +vn -0.1430 -0.9822 -0.1222 +vn -0.1728 -0.9697 -0.1728 +vn -0.1330 -0.9822 -0.1330 +vn -0.1587 -0.9697 -0.1858 +vn -0.1222 -0.9822 -0.1430 +vn -0.1436 -0.9697 -0.1976 +vn -0.1106 -0.9821 -0.1522 +vn -0.1277 -0.9697 -0.2083 +vn -0.0983 -0.9821 -0.1604 +vn -0.1109 -0.9697 -0.2177 +vn -0.0854 -0.9821 -0.1676 +vn -0.0935 -0.9697 -0.2257 +vn -0.0720 -0.9822 -0.1738 +vn -0.0755 -0.9697 -0.2324 +vn -0.0581 -0.9822 -0.1789 +vn -0.0570 -0.9697 -0.2376 +vn -0.0439 -0.9822 -0.1829 +vn -0.0382 -0.9697 -0.2413 +vn -0.0294 -0.9822 -0.1858 +vn -0.0192 -0.9697 -0.2436 +vn -0.0148 -0.9822 -0.1875 +vn -0.0000 -0.9697 -0.2443 +vn -0.0000 -0.9821 -0.1881 +vn 0.0192 -0.9697 -0.2436 +vn 0.0148 -0.9822 -0.1875 +vn 0.0382 -0.9697 -0.2413 +vn 0.0294 -0.9822 -0.1858 +vn 0.0570 -0.9697 -0.2376 +vn 0.0439 -0.9822 -0.1829 +vn 0.0755 -0.9697 -0.2324 +vn 0.0581 -0.9822 -0.1789 +vn 0.0935 -0.9697 -0.2257 +vn 0.0720 -0.9822 -0.1738 +vn 0.1109 -0.9697 -0.2177 +vn 0.0854 -0.9822 -0.1676 +vn 0.1277 -0.9697 -0.2083 +vn 0.0983 -0.9822 -0.1604 +vn 0.1436 -0.9697 -0.1977 +vn 0.1106 -0.9822 -0.1522 +vn 0.1587 -0.9697 -0.1858 +vn 0.1222 -0.9822 -0.1430 +vn 0.1728 -0.9697 -0.1728 +vn 0.1330 -0.9822 -0.1330 +vn 0.1858 -0.9697 -0.1587 +vn 0.1430 -0.9822 -0.1222 +vn 0.1977 -0.9697 -0.1436 +vn 0.1522 -0.9822 -0.1106 +vn 0.2083 -0.9697 -0.1277 +vn 0.1604 -0.9822 -0.0983 +vn 0.2177 -0.9697 -0.1109 +vn 0.1676 -0.9822 -0.0854 +vn 0.2257 -0.9697 -0.0935 +vn 0.1738 -0.9822 -0.0720 +vn 0.2324 -0.9697 -0.0755 +vn 0.1789 -0.9822 -0.0581 +vn 0.2376 -0.9697 -0.0570 +vn 0.1829 -0.9822 -0.0439 +vn 0.2413 -0.9697 -0.0382 +vn 0.1858 -0.9822 -0.0294 +vn 0.2436 -0.9697 -0.0192 +vn 0.1875 -0.9822 -0.0148 +vn 0.2443 -0.9697 -0.0000 +vn 0.1881 -0.9822 -0.0000 +vn 0.2436 -0.9697 0.0192 +vn 0.1875 -0.9822 0.0148 +vn 0.2413 -0.9697 0.0382 +vn 0.1858 -0.9822 0.0294 +vn 0.2376 -0.9697 0.0570 +vn 0.1829 -0.9822 0.0439 +vn 0.2324 -0.9697 0.0755 +vn 0.1789 -0.9822 0.0581 +vn 0.2257 -0.9697 0.0935 +vn 0.1737 -0.9822 0.0720 +vn 0.2177 -0.9697 0.1109 +vn 0.1676 -0.9822 0.0854 +vn 0.2083 -0.9697 0.1277 +vn 0.1604 -0.9822 0.0983 +vn 0.1977 -0.9697 0.1436 +vn 0.1522 -0.9821 0.1106 +vn 0.1858 -0.9697 0.1587 +vn 0.1430 -0.9822 0.1222 +vn 0.1728 -0.9697 0.1728 +vn 0.1330 -0.9821 0.1330 +vn 0.1587 -0.9697 0.1858 +vn 0.1222 -0.9821 0.1430 +vn 0.1436 -0.9697 0.1977 +vn 0.1106 -0.9822 0.1522 +vn 0.1277 -0.9697 0.2083 +vn 0.0983 -0.9822 0.1604 +vn 0.1109 -0.9697 0.2177 +vn 0.0854 -0.9822 0.1676 +vn 0.0935 -0.9697 0.2257 +vn 0.0720 -0.9822 0.1738 +vn 0.0755 -0.9697 0.2324 +vn 0.0581 -0.9822 0.1789 +vn 0.0570 -0.9697 0.2376 +vn 0.0439 -0.9822 0.1829 +vn 0.0382 -0.9697 0.2413 +vn 0.0294 -0.9822 0.1858 +vn 0.0192 -0.9697 0.2436 +vn 0.0148 -0.9822 0.1875 +vn 0.0000 -0.3691 0.9294 +vn -0.0729 -0.3691 0.9265 +vn -0.1454 -0.3691 0.9180 +vn -0.2170 -0.3691 0.9037 +vn -0.2872 -0.3691 0.8839 +vn -0.3557 -0.3691 0.8587 +vn -0.4219 -0.3691 0.8281 +vn -0.4856 -0.3691 0.7924 +vn -0.5463 -0.3691 0.7519 +vn -0.6036 -0.3691 0.7067 +vn -0.6572 -0.3691 0.6572 +vn -0.7067 -0.3691 0.6036 +vn -0.7519 -0.3691 0.5463 +vn -0.7924 -0.3691 0.4856 +vn -0.8281 -0.3691 0.4219 +vn -0.8586 -0.3691 0.3557 +vn -0.8839 -0.3691 0.2872 +vn -0.9037 -0.3691 0.2170 +vn -0.9179 -0.3691 0.1454 +vn -0.9265 -0.3691 0.0729 +vn -0.9294 -0.3691 0.0000 +vn -0.9265 -0.3691 -0.0729 +vn -0.9180 -0.3691 -0.1454 +vn -0.9037 -0.3691 -0.2170 +vn -0.8839 -0.3691 -0.2872 +vn -0.8587 -0.3691 -0.3557 +vn -0.8281 -0.3691 -0.4219 +vn -0.7924 -0.3691 -0.4856 +vn -0.7519 -0.3691 -0.5463 +vn -0.7067 -0.3691 -0.6036 +vn -0.6572 -0.3691 -0.6572 +vn -0.6036 -0.3691 -0.7067 +vn -0.5463 -0.3691 -0.7519 +vn -0.4856 -0.3691 -0.7924 +vn -0.4219 -0.3691 -0.8281 +vn -0.3557 -0.3691 -0.8587 +vn -0.2872 -0.3691 -0.8839 +vn -0.2170 -0.3691 -0.9037 +vn -0.1454 -0.3691 -0.9180 +vn -0.0729 -0.3691 -0.9265 +vn -0.0000 -0.3691 -0.9294 +vn 0.0729 -0.3691 -0.9265 +vn 0.1454 -0.3691 -0.9180 +vn 0.2170 -0.3691 -0.9037 +vn 0.2872 -0.3691 -0.8839 +vn 0.3557 -0.3691 -0.8586 +vn 0.4219 -0.3691 -0.8281 +vn 0.4856 -0.3691 -0.7924 +vn 0.5463 -0.3691 -0.7519 +vn 0.6036 -0.3691 -0.7067 +vn 0.6572 -0.3691 -0.6572 +vn 0.7067 -0.3691 -0.6036 +vn 0.7519 -0.3691 -0.5463 +vn 0.7924 -0.3691 -0.4856 +vn 0.8281 -0.3691 -0.4219 +vn 0.8587 -0.3691 -0.3557 +vn 0.8839 -0.3691 -0.2872 +vn 0.9037 -0.3691 -0.2170 +vn 0.9180 -0.3691 -0.1454 +vn 0.9265 -0.3691 -0.0729 +vn 0.9294 -0.3691 -0.0000 +vn 0.9265 -0.3691 0.0729 +vn 0.9180 -0.3691 0.1454 +vn 0.9037 -0.3691 0.2170 +vn 0.8839 -0.3691 0.2872 +vn 0.8586 -0.3691 0.3557 +vn 0.8281 -0.3691 0.4219 +vn 0.7924 -0.3691 0.4856 +vn 0.7519 -0.3691 0.5463 +vn 0.7067 -0.3691 0.6036 +vn 0.6572 -0.3691 0.6572 +vn 0.6036 -0.3691 0.7067 +vn 0.5463 -0.3691 0.7519 +vn 0.4856 -0.3691 0.7924 +vn 0.4219 -0.3691 0.8281 +vn 0.3557 -0.3691 0.8587 +vn 0.2872 -0.3691 0.8839 +vn 0.2170 -0.3691 0.9037 +vn 0.1454 -0.3691 0.9180 +vn 0.0729 -0.3691 0.9265 +vn -0.0784 -0.0520 0.9956 +vn -0.1562 -0.0520 0.9864 +vn -0.1564 0.0055 0.9877 +vn -0.0785 0.0055 0.9969 +vn 0.0000 -0.0520 0.9986 +vn 0.0000 0.0055 1.0000 +vn -0.0774 0.1613 0.9839 +vn 0.0000 0.1613 0.9869 +vn -0.1544 0.1613 0.9747 +vn -0.2331 -0.0520 0.9711 +vn -0.3086 -0.0520 0.9498 +vn -0.3090 0.0055 0.9510 +vn -0.2334 0.0055 0.9724 +vn -0.2304 0.1613 0.9596 +vn -0.3050 0.1613 0.9386 +vn -0.3822 -0.0521 0.9226 +vn -0.4534 -0.0521 0.8898 +vn -0.4540 0.0055 0.8910 +vn -0.3827 0.0055 0.9239 +vn -0.3777 0.1613 0.9118 +vn -0.4480 0.1613 0.8793 +vn -0.5218 -0.0520 0.8515 +vn -0.5870 -0.0520 0.8079 +vn -0.5878 0.0055 0.8090 +vn -0.5225 0.0055 0.8526 +vn -0.5156 0.1613 0.8415 +vn -0.5801 0.1613 0.7984 +vn -0.6486 -0.0520 0.7594 +vn -0.7061 -0.0520 0.7061 +vn -0.7071 0.0055 0.7071 +vn -0.6494 0.0055 0.7604 +vn -0.6409 0.1613 0.7504 +vn -0.6978 0.1613 0.6978 +vn -0.7594 -0.0520 0.6486 +vn -0.8079 -0.0520 0.5870 +vn -0.8090 0.0055 0.5878 +vn -0.7604 0.0055 0.6494 +vn -0.7504 0.1613 0.6409 +vn -0.7984 0.1613 0.5801 +vn -0.8515 -0.0520 0.5218 +vn -0.8898 -0.0520 0.4534 +vn -0.8910 0.0055 0.4540 +vn -0.8526 0.0055 0.5225 +vn -0.8415 0.1613 0.5157 +vn -0.8793 0.1613 0.4480 +vn -0.9226 -0.0520 0.3822 +vn -0.9498 -0.0520 0.3086 +vn -0.9510 0.0055 0.3090 +vn -0.9239 0.0055 0.3827 +vn -0.9118 0.1613 0.3777 +vn -0.9386 0.1613 0.3050 +vn -0.9711 -0.0520 0.2331 +vn -0.9864 -0.0520 0.1562 +vn -0.9877 0.0055 0.1564 +vn -0.9724 0.0055 0.2334 +vn -0.9596 0.1613 0.2304 +vn -0.9747 0.1613 0.1544 +vn -0.9956 -0.0520 0.0784 +vn -0.9986 -0.0520 -0.0000 +vn -1.0000 0.0055 0.0000 +vn -0.9969 0.0055 0.0785 +vn -0.9839 0.1613 0.0774 +vn -0.9869 0.1613 0.0000 +vn -0.9956 -0.0520 -0.0784 +vn -0.9864 -0.0520 -0.1562 +vn -0.9877 0.0055 -0.1564 +vn -0.9969 0.0055 -0.0785 +vn -0.9839 0.1613 -0.0774 +vn -0.9748 0.1613 -0.1544 +vn -0.9711 -0.0520 -0.2331 +vn -0.9498 -0.0520 -0.3086 +vn -0.9510 0.0055 -0.3090 +vn -0.9724 0.0055 -0.2334 +vn -0.9596 0.1613 -0.2304 +vn -0.9386 0.1613 -0.3050 +vn -0.9226 -0.0520 -0.3822 +vn -0.8898 -0.0520 -0.4534 +vn -0.8910 0.0055 -0.4540 +vn -0.9239 0.0055 -0.3827 +vn -0.9118 0.1613 -0.3777 +vn -0.8793 0.1613 -0.4480 +vn -0.8515 -0.0520 -0.5218 +vn -0.8079 -0.0520 -0.5870 +vn -0.8090 0.0055 -0.5878 +vn -0.8526 0.0055 -0.5225 +vn -0.8415 0.1613 -0.5157 +vn -0.7984 0.1613 -0.5801 +vn -0.7594 -0.0520 -0.6486 +vn -0.7061 -0.0520 -0.7061 +vn -0.7071 0.0055 -0.7071 +vn -0.7604 0.0055 -0.6494 +vn -0.7504 0.1613 -0.6409 +vn -0.6978 0.1613 -0.6978 +vn -0.6486 -0.0520 -0.7594 +vn -0.5870 -0.0520 -0.8079 +vn -0.5878 0.0055 -0.8090 +vn -0.6494 0.0055 -0.7604 +vn -0.6409 0.1613 -0.7504 +vn -0.5801 0.1613 -0.7984 +vn -0.5218 -0.0520 -0.8515 +vn -0.4534 -0.0520 -0.8898 +vn -0.4540 0.0055 -0.8910 +vn -0.5225 0.0055 -0.8526 +vn -0.5157 0.1613 -0.8415 +vn -0.4480 0.1613 -0.8793 +vn -0.3822 -0.0520 -0.9226 +vn -0.3086 -0.0520 -0.9498 +vn -0.3090 0.0055 -0.9510 +vn -0.3827 0.0055 -0.9239 +vn -0.3777 0.1613 -0.9118 +vn -0.3050 0.1613 -0.9386 +vn -0.2331 -0.0520 -0.9711 +vn -0.1562 -0.0520 -0.9864 +vn -0.1564 0.0055 -0.9877 +vn -0.2334 0.0055 -0.9724 +vn -0.2304 0.1613 -0.9596 +vn -0.1544 0.1613 -0.9747 +vn -0.0784 -0.0520 -0.9956 +vn 0.0000 -0.0520 -0.9986 +vn -0.0000 0.0055 -1.0000 +vn -0.0785 0.0055 -0.9969 +vn -0.0774 0.1613 -0.9839 +vn -0.0000 0.1613 -0.9869 +vn 0.0784 -0.0521 -0.9956 +vn 0.1562 -0.0521 -0.9863 +vn 0.1564 0.0055 -0.9877 +vn 0.0785 0.0055 -0.9969 +vn 0.0774 0.1613 -0.9839 +vn 0.1544 0.1614 -0.9747 +vn 0.2331 -0.0521 -0.9711 +vn 0.3086 -0.0520 -0.9498 +vn 0.3090 0.0055 -0.9510 +vn 0.2334 0.0055 -0.9724 +vn 0.2304 0.1613 -0.9596 +vn 0.3050 0.1613 -0.9386 +vn 0.3822 -0.0520 -0.9226 +vn 0.4534 -0.0520 -0.8898 +vn 0.4540 0.0055 -0.8910 +vn 0.3827 0.0055 -0.9239 +vn 0.3777 0.1613 -0.9118 +vn 0.4480 0.1613 -0.8793 +vn 0.5218 -0.0520 -0.8515 +vn 0.5870 -0.0520 -0.8079 +vn 0.5878 0.0055 -0.8090 +vn 0.5225 0.0055 -0.8526 +vn 0.5157 0.1613 -0.8415 +vn 0.5801 0.1613 -0.7984 +vn 0.6486 -0.0520 -0.7594 +vn 0.7061 -0.0520 -0.7062 +vn 0.7071 0.0055 -0.7071 +vn 0.6494 0.0055 -0.7604 +vn 0.6409 0.1613 -0.7504 +vn 0.6978 0.1613 -0.6978 +vn 0.7594 -0.0520 -0.6486 +vn 0.8079 -0.0520 -0.5870 +vn 0.8090 0.0055 -0.5878 +vn 0.7604 0.0055 -0.6494 +vn 0.7504 0.1613 -0.6409 +vn 0.7984 0.1613 -0.5801 +vn 0.8515 -0.0520 -0.5218 +vn 0.8898 -0.0520 -0.4534 +vn 0.8910 0.0055 -0.4540 +vn 0.8526 0.0055 -0.5225 +vn 0.8415 0.1613 -0.5157 +vn 0.8793 0.1613 -0.4480 +vn 0.9226 -0.0520 -0.3822 +vn 0.9498 -0.0520 -0.3086 +vn 0.9510 0.0055 -0.3090 +vn 0.9239 0.0055 -0.3827 +vn 0.9118 0.1613 -0.3777 +vn 0.9386 0.1613 -0.3050 +vn 0.9711 -0.0520 -0.2331 +vn 0.9863 -0.0521 -0.1562 +vn 0.9877 0.0055 -0.1564 +vn 0.9724 0.0055 -0.2334 +vn 0.9596 0.1613 -0.2304 +vn 0.9747 0.1613 -0.1544 +vn 0.9956 -0.0521 -0.0783 +vn 0.9986 -0.0520 0.0000 +vn 1.0000 0.0055 0.0000 +vn 0.9969 0.0055 -0.0785 +vn 0.9839 0.1614 -0.0774 +vn 0.9869 0.1614 -0.0000 +vn 0.9956 -0.0520 0.0784 +vn 0.9864 -0.0520 0.1562 +vn 0.9877 0.0055 0.1564 +vn 0.9969 0.0055 0.0785 +vn 0.9839 0.1613 0.0774 +vn 0.9747 0.1613 0.1544 +vn 0.9711 -0.0520 0.2331 +vn 0.9498 -0.0520 0.3086 +vn 0.9510 0.0055 0.3090 +vn 0.9724 0.0055 0.2334 +vn 0.9596 0.1613 0.2304 +vn 0.9386 0.1613 0.3050 +vn 0.9226 -0.0520 0.3822 +vn 0.8898 -0.0520 0.4534 +vn 0.8910 0.0055 0.4540 +vn 0.9239 0.0055 0.3827 +vn 0.9118 0.1613 0.3777 +vn 0.8793 0.1613 0.4480 +vn 0.8515 -0.0521 0.5218 +vn 0.8079 -0.0521 0.5870 +vn 0.8090 0.0055 0.5878 +vn 0.8526 0.0055 0.5225 +vn 0.8415 0.1613 0.5157 +vn 0.7984 0.1613 0.5801 +vn 0.7594 -0.0520 0.6486 +vn 0.7061 -0.0520 0.7061 +vn 0.7071 0.0055 0.7071 +vn 0.7604 0.0055 0.6494 +vn 0.7504 0.1613 0.6409 +vn 0.6978 0.1613 0.6978 +vn 0.6486 -0.0520 0.7594 +vn 0.5870 -0.0520 0.8079 +vn 0.5878 0.0055 0.8090 +vn 0.6494 0.0055 0.7604 +vn 0.6409 0.1613 0.7504 +vn 0.5801 0.1614 0.7984 +vn 0.5218 -0.0520 0.8515 +vn 0.4534 -0.0520 0.8898 +vn 0.4540 0.0055 0.8910 +vn 0.5225 0.0055 0.8526 +vn 0.5156 0.1613 0.8415 +vn 0.4480 0.1613 0.8793 +vn 0.3822 -0.0520 0.9226 +vn 0.3086 -0.0520 0.9498 +vn 0.3090 0.0055 0.9510 +vn 0.3827 0.0055 0.9239 +vn 0.3777 0.1614 0.9118 +vn 0.3050 0.1614 0.9386 +vn 0.2331 -0.0520 0.9711 +vn 0.1562 -0.0520 0.9864 +vn 0.1564 0.0055 0.9877 +vn 0.2334 0.0055 0.9724 +vn 0.2304 0.1613 0.9596 +vn 0.1544 0.1613 0.9747 +vn 0.0784 -0.0520 0.9956 +vn 0.0785 0.0055 0.9969 +vn 0.0774 0.1613 0.9839 +vn -0.0000 0.7805 0.6252 +vn -0.0000 0.5929 0.8052 +vn -0.0632 0.5929 0.8028 +vn -0.0491 0.7805 0.6233 +vn -0.0000 0.9094 0.4159 +vn -0.0326 0.9094 0.4147 +vn -0.0978 0.7805 0.6175 +vn -0.0651 0.9094 0.4108 +vn -0.1260 0.5929 0.7953 +vn -0.1880 0.5929 0.7830 +vn -0.1459 0.7805 0.6079 +vn -0.0971 0.9094 0.4045 +vn -0.1932 0.7805 0.5946 +vn -0.1285 0.9094 0.3956 +vn -0.2488 0.5929 0.7658 +vn -0.3082 0.5929 0.7439 +vn -0.2393 0.7805 0.5776 +vn -0.1592 0.9094 0.3843 +vn -0.2838 0.7805 0.5570 +vn -0.1888 0.9094 0.3706 +vn -0.3656 0.5929 0.7175 +vn -0.4207 0.5929 0.6866 +vn -0.3267 0.7805 0.5331 +vn -0.2173 0.9094 0.3547 +vn -0.3675 0.7805 0.5058 +vn -0.2445 0.9094 0.3365 +vn -0.4733 0.5929 0.6515 +vn -0.5230 0.5929 0.6123 +vn -0.4060 0.7805 0.4754 +vn -0.2701 0.9094 0.3163 +vn -0.4421 0.7805 0.4421 +vn -0.2941 0.9094 0.2941 +vn -0.5694 0.5929 0.5694 +vn -0.6123 0.5929 0.5230 +vn -0.4754 0.7805 0.4060 +vn -0.3163 0.9094 0.2701 +vn -0.5058 0.7805 0.3675 +vn -0.3365 0.9094 0.2445 +vn -0.6515 0.5929 0.4733 +vn -0.6866 0.5929 0.4207 +vn -0.5331 0.7805 0.3267 +vn -0.3547 0.9094 0.2173 +vn -0.5570 0.7805 0.2838 +vn -0.3706 0.9094 0.1888 +vn -0.7175 0.5930 0.3656 +vn -0.7439 0.5929 0.3082 +vn -0.5776 0.7805 0.2392 +vn -0.3843 0.9094 0.1592 +vn -0.5946 0.7805 0.1932 +vn -0.3956 0.9094 0.1285 +vn -0.7658 0.5929 0.2488 +vn -0.7830 0.5929 0.1880 +vn -0.6079 0.7805 0.1459 +vn -0.4045 0.9094 0.0971 +vn -0.6175 0.7805 0.0978 +vn -0.4108 0.9094 0.0651 +vn -0.7953 0.5930 0.1260 +vn -0.8028 0.5930 0.0632 +vn -0.6233 0.7805 0.0491 +vn -0.4147 0.9094 0.0326 +vn -0.6252 0.7805 0.0000 +vn -0.4159 0.9094 -0.0000 +vn -0.8052 0.5930 0.0000 +vn -0.8028 0.5930 -0.0632 +vn -0.6233 0.7805 -0.0491 +vn -0.4147 0.9094 -0.0326 +vn -0.6175 0.7805 -0.0978 +vn -0.4108 0.9094 -0.0651 +vn -0.7953 0.5929 -0.1260 +vn -0.7830 0.5929 -0.1880 +vn -0.6079 0.7805 -0.1459 +vn -0.4045 0.9094 -0.0971 +vn -0.5946 0.7805 -0.1932 +vn -0.3956 0.9094 -0.1285 +vn -0.7658 0.5929 -0.2488 +vn -0.7439 0.5929 -0.3082 +vn -0.5776 0.7805 -0.2392 +vn -0.3843 0.9094 -0.1592 +vn -0.5570 0.7805 -0.2838 +vn -0.3706 0.9094 -0.1888 +vn -0.7175 0.5929 -0.3656 +vn -0.6866 0.5929 -0.4207 +vn -0.5331 0.7805 -0.3267 +vn -0.3547 0.9094 -0.2173 +vn -0.5058 0.7805 -0.3675 +vn -0.3365 0.9094 -0.2445 +vn -0.6515 0.5929 -0.4733 +vn -0.6123 0.5929 -0.5230 +vn -0.4754 0.7805 -0.4060 +vn -0.3163 0.9094 -0.2701 +vn -0.4421 0.7805 -0.4421 +vn -0.2941 0.9094 -0.2941 +vn -0.5694 0.5929 -0.5694 +vn -0.5230 0.5929 -0.6123 +vn -0.4060 0.7805 -0.4754 +vn -0.2701 0.9094 -0.3163 +vn -0.3675 0.7805 -0.5058 +vn -0.2445 0.9094 -0.3365 +vn -0.4733 0.5929 -0.6515 +vn -0.4207 0.5929 -0.6866 +vn -0.3267 0.7805 -0.5331 +vn -0.2173 0.9094 -0.3547 +vn -0.2838 0.7805 -0.5570 +vn -0.1888 0.9094 -0.3706 +vn -0.3656 0.5929 -0.7175 +vn -0.3081 0.5929 -0.7440 +vn -0.2392 0.7805 -0.5776 +vn -0.1592 0.9094 -0.3843 +vn -0.1932 0.7805 -0.5946 +vn -0.1285 0.9094 -0.3956 +vn -0.2488 0.5929 -0.7658 +vn -0.1880 0.5929 -0.7830 +vn -0.1459 0.7805 -0.6079 +vn -0.0971 0.9094 -0.4045 +vn -0.0978 0.7805 -0.6175 +vn -0.0651 0.9094 -0.4108 +vn -0.1260 0.5929 -0.7953 +vn -0.0632 0.5929 -0.8028 +vn -0.0491 0.7805 -0.6233 +vn -0.0326 0.9094 -0.4147 +vn -0.0000 0.7805 -0.6252 +vn -0.0000 0.9094 -0.4159 +vn -0.0000 0.5929 -0.8052 +vn 0.0632 0.5929 -0.8028 +vn 0.0490 0.7805 -0.6233 +vn 0.0326 0.9094 -0.4147 +vn 0.0978 0.7805 -0.6175 +vn 0.0651 0.9094 -0.4108 +vn 0.1260 0.5929 -0.7953 +vn 0.1880 0.5929 -0.7830 +vn 0.1459 0.7805 -0.6079 +vn 0.0971 0.9094 -0.4045 +vn 0.1932 0.7805 -0.5946 +vn 0.1285 0.9094 -0.3956 +vn 0.2488 0.5929 -0.7658 +vn 0.3082 0.5929 -0.7440 +vn 0.2392 0.7805 -0.5776 +vn 0.1592 0.9094 -0.3843 +vn 0.2838 0.7805 -0.5570 +vn 0.1888 0.9094 -0.3706 +vn 0.3656 0.5929 -0.7175 +vn 0.4207 0.5929 -0.6866 +vn 0.3267 0.7805 -0.5331 +vn 0.2173 0.9094 -0.3547 +vn 0.3675 0.7805 -0.5058 +vn 0.2445 0.9094 -0.3365 +vn 0.4733 0.5929 -0.6515 +vn 0.5230 0.5929 -0.6123 +vn 0.4060 0.7805 -0.4754 +vn 0.2701 0.9094 -0.3163 +vn 0.4421 0.7805 -0.4421 +vn 0.2941 0.9094 -0.2941 +vn 0.5694 0.5929 -0.5694 +vn 0.6123 0.5929 -0.5230 +vn 0.4754 0.7805 -0.4060 +vn 0.3163 0.9094 -0.2701 +vn 0.5058 0.7805 -0.3675 +vn 0.3365 0.9094 -0.2445 +vn 0.6515 0.5929 -0.4733 +vn 0.6866 0.5929 -0.4207 +vn 0.5331 0.7805 -0.3267 +vn 0.3547 0.9094 -0.2173 +vn 0.5570 0.7805 -0.2838 +vn 0.3706 0.9094 -0.1888 +vn 0.7175 0.5929 -0.3656 +vn 0.7440 0.5929 -0.3082 +vn 0.5776 0.7805 -0.2392 +vn 0.3843 0.9094 -0.1592 +vn 0.5946 0.7805 -0.1932 +vn 0.3956 0.9094 -0.1285 +vn 0.7658 0.5929 -0.2488 +vn 0.7830 0.5929 -0.1880 +vn 0.6079 0.7805 -0.1459 +vn 0.4045 0.9094 -0.0971 +vn 0.6175 0.7805 -0.0978 +vn 0.4108 0.9094 -0.0651 +vn 0.7953 0.5929 -0.1260 +vn 0.8028 0.5929 -0.0632 +vn 0.6233 0.7805 -0.0491 +vn 0.4147 0.9094 -0.0326 +vn 0.6252 0.7805 0.0000 +vn 0.4159 0.9094 0.0000 +vn 0.8053 0.5929 0.0000 +vn 0.8028 0.5929 0.0632 +vn 0.6233 0.7805 0.0491 +vn 0.4147 0.9094 0.0326 +vn 0.6175 0.7805 0.0978 +vn 0.4108 0.9094 0.0651 +vn 0.7953 0.5929 0.1260 +vn 0.7830 0.5929 0.1880 +vn 0.6079 0.7805 0.1459 +vn 0.4045 0.9094 0.0971 +vn 0.5946 0.7805 0.1932 +vn 0.3956 0.9094 0.1285 +vn 0.7658 0.5929 0.2488 +vn 0.7440 0.5929 0.3082 +vn 0.5776 0.7805 0.2392 +vn 0.3843 0.9094 0.1592 +vn 0.5570 0.7805 0.2838 +vn 0.3706 0.9094 0.1888 +vn 0.7175 0.5929 0.3656 +vn 0.6866 0.5929 0.4207 +vn 0.5331 0.7805 0.3267 +vn 0.3547 0.9094 0.2173 +vn 0.5058 0.7805 0.3675 +vn 0.3365 0.9094 0.2445 +vn 0.6515 0.5929 0.4733 +vn 0.6123 0.5929 0.5230 +vn 0.4754 0.7805 0.4060 +vn 0.3163 0.9094 0.2701 +vn 0.4421 0.7805 0.4421 +vn 0.2941 0.9094 0.2941 +vn 0.5694 0.5929 0.5694 +vn 0.5230 0.5929 0.6123 +vn 0.4060 0.7805 0.4754 +vn 0.2701 0.9094 0.3163 +vn 0.3675 0.7805 0.5058 +vn 0.2445 0.9094 0.3365 +vn 0.4733 0.5929 0.6515 +vn 0.4207 0.5929 0.6866 +vn 0.3267 0.7805 0.5331 +vn 0.2173 0.9094 0.3547 +vn 0.2838 0.7805 0.5570 +vn 0.1888 0.9094 0.3706 +vn 0.3656 0.5929 0.7175 +vn 0.3082 0.5929 0.7440 +vn 0.2392 0.7805 0.5776 +vn 0.1592 0.9094 0.3843 +vn 0.1932 0.7805 0.5946 +vn 0.1285 0.9094 0.3956 +vn 0.2488 0.5929 0.7658 +vn 0.1880 0.5929 0.7830 +vn 0.1459 0.7805 0.6079 +vn 0.0971 0.9094 0.4045 +vn 0.0978 0.7805 0.6175 +vn 0.0651 0.9094 0.4108 +vn 0.1260 0.5929 0.7953 +vn 0.0632 0.5929 0.8028 +vn 0.0491 0.7805 0.6233 +vn 0.0326 0.9094 0.4147 +vn -0.0000 0.9697 0.2443 +vn -0.0192 0.9697 0.2436 +vn -0.0000 0.9822 0.1881 +vn -0.0148 0.9822 0.1875 +vn -0.0382 0.9697 0.2413 +vn -0.0294 0.9822 0.1858 +vn -0.0570 0.9697 0.2376 +vn -0.0439 0.9822 0.1829 +vn -0.0755 0.9697 0.2324 +vn -0.0581 0.9822 0.1789 +vn -0.0935 0.9697 0.2257 +vn -0.0720 0.9822 0.1738 +vn -0.1109 0.9697 0.2177 +vn -0.0854 0.9822 0.1676 +vn -0.1277 0.9697 0.2083 +vn -0.0983 0.9822 0.1604 +vn -0.1436 0.9697 0.1976 +vn -0.1106 0.9822 0.1522 +vn -0.1587 0.9697 0.1858 +vn -0.1222 0.9822 0.1430 +vn -0.1728 0.9697 0.1728 +vn -0.1330 0.9822 0.1330 +vn -0.1858 0.9697 0.1587 +vn -0.1430 0.9821 0.1222 +vn -0.1976 0.9697 0.1436 +vn -0.1522 0.9821 0.1106 +vn -0.2083 0.9697 0.1277 +vn -0.1604 0.9821 0.0983 +vn -0.2177 0.9697 0.1109 +vn -0.1676 0.9822 0.0854 +vn -0.2257 0.9697 0.0935 +vn -0.1738 0.9822 0.0720 +vn -0.2323 0.9697 0.0755 +vn -0.1789 0.9822 0.0581 +vn -0.2376 0.9697 0.0570 +vn -0.1829 0.9822 0.0439 +vn -0.2413 0.9697 0.0382 +vn -0.1858 0.9822 0.0294 +vn -0.2436 0.9697 0.0192 +vn -0.1875 0.9821 0.0148 +vn -0.2443 0.9697 -0.0000 +vn -0.1881 0.9821 -0.0000 +vn -0.2436 0.9697 -0.0192 +vn -0.1875 0.9821 -0.0148 +vn -0.2413 0.9697 -0.0382 +vn -0.1858 0.9822 -0.0294 +vn -0.2376 0.9697 -0.0570 +vn -0.1829 0.9822 -0.0439 +vn -0.2324 0.9697 -0.0755 +vn -0.1789 0.9822 -0.0581 +vn -0.2257 0.9697 -0.0935 +vn -0.1738 0.9821 -0.0720 +vn -0.2177 0.9697 -0.1109 +vn -0.1676 0.9822 -0.0854 +vn -0.2083 0.9697 -0.1277 +vn -0.1604 0.9822 -0.0983 +vn -0.1976 0.9697 -0.1436 +vn -0.1522 0.9822 -0.1106 +vn -0.1858 0.9697 -0.1587 +vn -0.1430 0.9822 -0.1222 +vn -0.1728 0.9697 -0.1728 +vn -0.1330 0.9822 -0.1330 +vn -0.1587 0.9697 -0.1858 +vn -0.1222 0.9822 -0.1430 +vn -0.1436 0.9697 -0.1976 +vn -0.1106 0.9821 -0.1522 +vn -0.1277 0.9697 -0.2083 +vn -0.0983 0.9821 -0.1604 +vn -0.1109 0.9697 -0.2177 +vn -0.0854 0.9822 -0.1676 +vn -0.0935 0.9697 -0.2257 +vn -0.0720 0.9822 -0.1738 +vn -0.0755 0.9697 -0.2324 +vn -0.0581 0.9822 -0.1789 +vn -0.0570 0.9697 -0.2376 +vn -0.0439 0.9822 -0.1829 +vn -0.0382 0.9697 -0.2413 +vn -0.0294 0.9822 -0.1858 +vn -0.0192 0.9697 -0.2436 +vn -0.0148 0.9822 -0.1875 +vn -0.0000 0.9697 -0.2443 +vn -0.0000 0.9821 -0.1881 +vn 0.0192 0.9697 -0.2436 +vn 0.0148 0.9822 -0.1875 +vn 0.0382 0.9697 -0.2413 +vn 0.0294 0.9822 -0.1858 +vn 0.0570 0.9697 -0.2376 +vn 0.0439 0.9822 -0.1829 +vn 0.0755 0.9697 -0.2324 +vn 0.0581 0.9822 -0.1789 +vn 0.0935 0.9697 -0.2257 +vn 0.0720 0.9822 -0.1738 +vn 0.1109 0.9697 -0.2177 +vn 0.0854 0.9822 -0.1676 +vn 0.1277 0.9697 -0.2083 +vn 0.0983 0.9822 -0.1604 +vn 0.1436 0.9697 -0.1977 +vn 0.1106 0.9822 -0.1522 +vn 0.1587 0.9697 -0.1858 +vn 0.1222 0.9822 -0.1430 +vn 0.1728 0.9697 -0.1728 +vn 0.1330 0.9822 -0.1330 +vn 0.1858 0.9697 -0.1587 +vn 0.1430 0.9822 -0.1222 +vn 0.1977 0.9697 -0.1436 +vn 0.1522 0.9822 -0.1106 +vn 0.2083 0.9697 -0.1277 +vn 0.1604 0.9822 -0.0983 +vn 0.2177 0.9697 -0.1109 +vn 0.1676 0.9822 -0.0854 +vn 0.2257 0.9697 -0.0935 +vn 0.1738 0.9822 -0.0720 +vn 0.2324 0.9697 -0.0755 +vn 0.1789 0.9822 -0.0581 +vn 0.2376 0.9697 -0.0570 +vn 0.1829 0.9822 -0.0439 +vn 0.2413 0.9697 -0.0382 +vn 0.1858 0.9822 -0.0294 +vn 0.2436 0.9697 -0.0192 +vn 0.1875 0.9822 -0.0148 +vn 0.2443 0.9697 -0.0000 +vn 0.1881 0.9822 -0.0000 +vn 0.2436 0.9697 0.0192 +vn 0.1875 0.9822 0.0148 +vn 0.2413 0.9697 0.0382 +vn 0.1858 0.9822 0.0294 +vn 0.2376 0.9697 0.0570 +vn 0.1829 0.9822 0.0439 +vn 0.2324 0.9697 0.0755 +vn 0.1789 0.9822 0.0581 +vn 0.2257 0.9697 0.0935 +vn 0.1737 0.9822 0.0720 +vn 0.2177 0.9697 0.1109 +vn 0.1676 0.9822 0.0854 +vn 0.2083 0.9697 0.1277 +vn 0.1604 0.9822 0.0983 +vn 0.1977 0.9697 0.1436 +vn 0.1522 0.9822 0.1106 +vn 0.1858 0.9697 0.1587 +vn 0.1430 0.9822 0.1222 +vn 0.1728 0.9697 0.1728 +vn 0.1330 0.9821 0.1330 +vn 0.1587 0.9697 0.1858 +vn 0.1222 0.9821 0.1430 +vn 0.1436 0.9697 0.1977 +vn 0.1106 0.9822 0.1522 +vn 0.1277 0.9697 0.2083 +vn 0.0983 0.9822 0.1604 +vn 0.1109 0.9697 0.2177 +vn 0.0854 0.9822 0.1676 +vn 0.0935 0.9697 0.2257 +vn 0.0720 0.9822 0.1738 +vn 0.0755 0.9697 0.2324 +vn 0.0581 0.9822 0.1789 +vn 0.0570 0.9697 0.2376 +vn 0.0439 0.9822 0.1829 +vn 0.0382 0.9697 0.2413 +vn 0.0294 0.9822 0.1858 +vn 0.0192 0.9697 0.2436 +vn 0.0148 0.9822 0.1875 +vn 0.0000 0.3691 0.9294 +vn -0.0729 0.3691 0.9265 +vn -0.1454 0.3691 0.9180 +vn -0.2170 0.3691 0.9037 +vn -0.2872 0.3691 0.8839 +vn -0.3557 0.3691 0.8587 +vn -0.4219 0.3691 0.8281 +vn -0.4856 0.3691 0.7924 +vn -0.5463 0.3691 0.7519 +vn -0.6036 0.3691 0.7067 +vn -0.6572 0.3691 0.6572 +vn -0.7067 0.3691 0.6036 +vn -0.7519 0.3691 0.5463 +vn -0.7924 0.3691 0.4856 +vn -0.8281 0.3691 0.4219 +vn -0.8586 0.3691 0.3557 +vn -0.8839 0.3691 0.2872 +vn -0.9037 0.3691 0.2170 +vn -0.9179 0.3691 0.1454 +vn -0.9265 0.3691 0.0729 +vn -0.9294 0.3691 0.0000 +vn -0.9265 0.3691 -0.0729 +vn -0.9180 0.3691 -0.1454 +vn -0.9037 0.3691 -0.2170 +vn -0.8839 0.3691 -0.2872 +vn -0.8587 0.3691 -0.3557 +vn -0.8281 0.3691 -0.4219 +vn -0.7924 0.3691 -0.4856 +vn -0.7519 0.3691 -0.5463 +vn -0.7067 0.3691 -0.6036 +vn -0.6572 0.3691 -0.6572 +vn -0.6036 0.3691 -0.7067 +vn -0.5463 0.3691 -0.7519 +vn -0.4856 0.3691 -0.7924 +vn -0.4219 0.3691 -0.8281 +vn -0.3557 0.3691 -0.8587 +vn -0.2872 0.3691 -0.8839 +vn -0.2170 0.3691 -0.9037 +vn -0.1454 0.3691 -0.9180 +vn -0.0729 0.3691 -0.9265 +vn -0.0000 0.3691 -0.9294 +vn 0.0729 0.3691 -0.9265 +vn 0.1454 0.3691 -0.9180 +vn 0.2170 0.3691 -0.9037 +vn 0.2872 0.3691 -0.8839 +vn 0.3557 0.3691 -0.8586 +vn 0.4219 0.3691 -0.8281 +vn 0.4856 0.3691 -0.7924 +vn 0.5463 0.3691 -0.7519 +vn 0.6036 0.3691 -0.7067 +vn 0.6572 0.3691 -0.6572 +vn 0.7067 0.3691 -0.6036 +vn 0.7519 0.3691 -0.5463 +vn 0.7924 0.3691 -0.4856 +vn 0.8281 0.3691 -0.4219 +vn 0.8587 0.3691 -0.3557 +vn 0.8839 0.3691 -0.2872 +vn 0.9037 0.3691 -0.2170 +vn 0.9180 0.3691 -0.1454 +vn 0.9265 0.3691 -0.0729 +vn 0.9294 0.3691 -0.0000 +vn 0.9265 0.3691 0.0729 +vn 0.9180 0.3691 0.1454 +vn 0.9037 0.3691 0.2170 +vn 0.8839 0.3691 0.2872 +vn 0.8586 0.3691 0.3557 +vn 0.8281 0.3691 0.4219 +vn 0.7924 0.3691 0.4856 +vn 0.7519 0.3691 0.5463 +vn 0.7067 0.3691 0.6036 +vn 0.6572 0.3691 0.6572 +vn 0.6036 0.3691 0.7067 +vn 0.5463 0.3691 0.7519 +vn 0.4856 0.3691 0.7924 +vn 0.4219 0.3691 0.8281 +vn 0.3557 0.3691 0.8587 +vn 0.2872 0.3691 0.8839 +vn 0.2170 0.3691 0.9037 +vn 0.1454 0.3691 0.9180 +vn 0.0729 0.3691 0.9265 +vn 0.9800 0.0260 -0.1972 +vn 0.9839 -0.0000 -0.1786 +vn 0.9829 0.0507 -0.1769 +vn 0.9820 0.0510 -0.1817 +vn 0.9830 0.0000 -0.1834 +vn 0.9790 0.1017 -0.1765 +vn 0.9799 0.1011 -0.1717 +vn 0.9551 0.1131 -0.2737 +vn 0.9585 0.0567 -0.2794 +vn 0.9741 0.1518 -0.1679 +vn 0.9496 0.1688 -0.2641 +vn 0.9750 0.1509 -0.1631 +vn 0.9671 0.2009 -0.1559 +vn 0.9681 0.1997 -0.1512 +vn 0.9419 0.2235 -0.2507 +vn 0.9583 0.2488 -0.1406 +vn 0.9321 0.2768 -0.2337 +vn 0.9593 0.2473 -0.1360 +vn 0.9476 0.2951 -0.1221 +vn 0.9487 0.2934 -0.1176 +vn 0.9202 0.3283 -0.2131 +vn 0.9352 0.3397 -0.1005 +vn 0.9063 0.3779 -0.1891 +vn 0.9363 0.3377 -0.0961 +vn 0.9210 0.3821 -0.0759 +vn 0.9222 0.3799 -0.0717 +vn 0.8906 0.4251 -0.1617 +vn 0.9052 0.4222 -0.0485 +vn 0.8730 0.4697 -0.1313 +vn 0.9065 0.4198 -0.0444 +vn 0.8879 0.4597 -0.0185 +vn 0.8893 0.4570 -0.0146 +vn 0.8538 0.5114 -0.0979 +vn 0.8692 0.4943 0.0140 +vn 0.8329 0.5499 -0.0618 +vn 0.8707 0.4915 0.0177 +vn 0.8491 0.5259 0.0487 +vn 0.8508 0.5229 0.0522 +vn 0.8106 0.5851 -0.0231 +vn 0.8279 0.5543 0.0855 +vn 0.7870 0.6166 0.0178 +vn 0.8297 0.5511 0.0887 +vn 0.8057 0.5792 0.1240 +vn 0.8076 0.5759 0.1271 +vn 0.7623 0.6444 0.0607 +vn 0.7825 0.6006 0.1642 +vn 0.7365 0.6682 0.1054 +vn 0.7845 0.5971 0.1670 +vn 0.7586 0.6183 0.2057 +vn 0.7608 0.6147 0.2083 +vn 0.7099 0.6878 0.1515 +vn 0.7340 0.6321 0.2482 +vn 0.6826 0.7032 0.1988 +vn 0.7364 0.6285 0.2506 +vn 0.7090 0.6421 0.2916 +vn 0.7115 0.6384 0.2937 +vn 0.6548 0.7143 0.2471 +vn 0.6837 0.6481 0.3355 +vn 0.6266 0.7210 0.2959 +vn 0.6863 0.6443 0.3374 +vn 0.6582 0.6501 0.3797 +vn 0.6610 0.6463 0.3813 +vn 0.5982 0.7232 0.3451 +vn 0.6327 0.6481 0.4239 +vn 0.5699 0.7210 0.3942 +vn 0.6356 0.6443 0.4252 +vn 0.6074 0.6421 0.4678 +vn 0.6104 0.6384 0.4689 +vn 0.5417 0.7143 0.4431 +vn 0.5824 0.6321 0.5111 +vn 0.5139 0.7032 0.4913 +vn 0.5856 0.6285 0.5120 +vn 0.5578 0.6183 0.5537 +vn 0.5612 0.6147 0.5543 +vn 0.4866 0.6878 0.5387 +vn 0.5339 0.6006 0.5952 +vn 0.4599 0.6682 0.5848 +vn 0.5374 0.5971 0.5955 +vn 0.5107 0.5792 0.6353 +vn 0.5143 0.5759 0.6355 +vn 0.4342 0.6444 0.6295 +vn 0.4884 0.5543 0.6739 +vn 0.4094 0.6167 0.6724 +vn 0.4922 0.5511 0.6738 +vn 0.4672 0.5259 0.7107 +vn 0.4711 0.5229 0.7104 +vn 0.3858 0.5851 0.7133 +vn 0.4472 0.4943 0.7454 +vn 0.3635 0.5499 0.7519 +vn 0.4512 0.4915 0.7449 +vn 0.4285 0.4597 0.7779 +vn 0.4326 0.4570 0.7772 +vn 0.3427 0.5114 0.7881 +vn 0.4112 0.4222 0.8079 +vn 0.3234 0.4697 0.8215 +vn 0.4154 0.4198 0.8070 +vn 0.3954 0.3821 0.8353 +vn 0.3997 0.3799 0.8342 +vn 0.3059 0.4251 0.8519 +vn 0.3812 0.3397 0.8598 +vn 0.2901 0.3779 0.8792 +vn 0.3856 0.3377 0.8586 +vn 0.3688 0.2951 0.8814 +vn 0.3732 0.2934 0.8801 +vn 0.2762 0.3283 0.9033 +vn 0.3581 0.2488 0.8999 +vn 0.2643 0.2768 0.9239 +vn 0.3626 0.2473 0.8985 +vn 0.3492 0.2009 0.9152 +vn 0.3538 0.1997 0.9137 +vn 0.2545 0.2235 0.9409 +vn 0.3423 0.1518 0.9272 +vn 0.2468 0.1688 0.9542 +vn 0.3469 0.1509 0.9257 +vn 0.3373 0.1017 0.9359 +vn 0.3420 0.1011 0.9343 +vn 0.2413 0.1131 0.9638 +vn 0.3343 0.0510 0.9411 +vn 0.2379 0.0567 0.9696 +vn 0.3390 0.0507 0.9394 +vn 0.3333 -0.0000 0.9428 +vn 0.3380 -0.0000 0.9411 +vn 0.2368 -0.0000 0.9716 +vn 0.5467 0.0000 0.8373 +vn 0.5445 -0.0365 0.8380 +vn 0.6953 -0.0215 0.7184 +vn 0.6951 0.0000 0.7189 +vn 0.4511 -0.0000 0.8925 +vn 0.4502 -0.0449 0.8918 +vn 0.5435 -0.0722 0.8363 +vn 0.4533 -0.0855 0.8872 +vn 0.6943 -0.0437 0.7183 +vn 0.5490 -0.1060 0.8291 +vn 0.6967 -0.0650 0.7145 +vn 0.4587 -0.1266 0.8795 +vn 0.5557 -0.1401 0.8195 +vn 0.4653 -0.1686 0.8690 +vn 0.7002 -0.0858 0.7088 +vn 0.5617 -0.1740 0.8088 +vn 0.7045 -0.1060 0.7017 +vn 0.4739 -0.2076 0.8558 +vn 0.5720 -0.2042 0.7944 +vn 0.4852 -0.2450 0.8394 +vn 0.7093 -0.1255 0.6936 +vn 0.5821 -0.2346 0.7785 +vn 0.7147 -0.1443 0.6844 +vn 0.4961 -0.2829 0.8209 +vn 0.5931 -0.2629 0.7610 +vn 0.5099 -0.3162 0.8001 +vn 0.7210 -0.1622 0.6737 +vn 0.6058 -0.2890 0.7412 +vn 0.7279 -0.1790 0.6620 +vn 0.5257 -0.3478 0.7763 +vn 0.6185 -0.3143 0.7202 +vn 0.5415 -0.3786 0.7506 +vn 0.7353 -0.1948 0.6491 +vn 0.6322 -0.3373 0.6975 +vn 0.7435 -0.2094 0.6351 +vn 0.5582 -0.4060 0.7236 +vn 0.6468 -0.3579 0.6735 +vn 0.5762 -0.4303 0.6949 +vn 0.7521 -0.2225 0.6203 +vn 0.6617 -0.3767 0.6483 +vn 0.7611 -0.2343 0.6048 +vn 0.5949 -0.4527 0.6642 +vn 0.6769 -0.3937 0.6219 +vn 0.6136 -0.4729 0.6323 +vn 0.7706 -0.2448 0.5885 +vn 0.6925 -0.4085 0.5947 +vn 0.7804 -0.2538 0.5715 +vn 0.6332 -0.4890 0.6000 +vn 0.7092 -0.4194 0.5667 +vn 0.6538 -0.5010 0.5671 +vn 0.7905 -0.2613 0.5540 +vn 0.7274 -0.4253 0.5385 +vn 0.8009 -0.2667 0.5361 +vn 0.6750 -0.5091 0.5340 +vn 0.7466 -0.4266 0.5105 +vn 0.6971 -0.5136 0.5002 +vn 0.8117 -0.2699 0.5180 +vn 0.7654 -0.4268 0.4817 +vn 0.8227 -0.2708 0.4998 +vn 0.7190 -0.5165 0.4651 +vn 0.7839 -0.4229 0.4545 +vn 0.7401 -0.5161 0.4311 +vn 0.8338 -0.2696 0.4817 +vn 0.8015 -0.4164 0.4292 +vn 0.8446 -0.2640 0.4657 +vn 0.7608 -0.5133 0.3970 +vn 0.8190 -0.4101 0.4013 +vn 0.7802 -0.5124 0.3588 +vn 0.8566 -0.2495 0.4517 +vn 0.8385 -0.3997 0.3704 +vn 0.8686 -0.2420 0.4324 +vn 0.8016 -0.5033 0.3228 +vn 0.8551 -0.3885 0.3434 +vn 0.8253 -0.4850 0.2892 +vn 0.8780 -0.2490 0.4088 +vn 0.8674 -0.3900 0.3090 +vn 0.8861 -0.2510 0.3896 +vn 0.8438 -0.4745 0.2505 +vn 0.8798 -0.3846 0.2793 +vn 0.8595 -0.4604 0.2219 +vn 0.8953 -0.2438 0.3729 +vn 0.8938 -0.3701 0.2533 +vn 0.9046 -0.2338 0.3563 +vn 0.8769 -0.4404 0.1924 +vn 0.9077 -0.3541 0.2252 +vn 0.8936 -0.4193 0.1602 +vn 0.9136 -0.2221 0.3407 +vn 0.9207 -0.3353 0.1998 +vn 0.9220 -0.2089 0.3259 +vn 0.9088 -0.3956 0.1327 +vn 0.9332 -0.3124 0.1776 +vn 0.9234 -0.3683 0.1081 +vn 0.9299 -0.1943 0.3122 +vn 0.9449 -0.2864 0.1583 +vn 0.9373 -0.1784 0.2996 +vn 0.9372 -0.3382 0.0854 +vn 0.9556 -0.2582 0.1419 +vn 0.9499 -0.3059 0.0636 +vn 0.9439 -0.1614 0.2880 +vn 0.9653 -0.2286 0.1266 +vn 0.9499 -0.1434 0.2777 +vn 0.9615 -0.2715 0.0430 +vn 0.9737 -0.1988 0.1108 +vn 0.9715 -0.2359 0.0248 +vn 0.9551 -0.1246 0.2686 +vn 0.9809 -0.1679 0.0983 +vn 0.9597 -0.1050 0.2608 +vn 0.9799 -0.1991 0.0109 +vn 0.9868 -0.1354 0.0884 +vn 0.9871 -0.1604 -0.0022 +vn 0.9634 -0.0848 0.2544 +vn 0.9916 -0.1022 0.0794 +vn 0.9663 -0.0641 0.2492 +vn 0.9926 -0.1207 -0.0122 +vn 0.9952 -0.0685 0.0704 +vn 0.9966 -0.0803 -0.0207 +vn 0.9685 -0.0430 0.2454 +vn 0.9973 -0.0345 0.0653 +vn 0.9698 -0.0216 0.2431 +vn 0.9988 -0.0403 -0.0265 +vn 0.9980 0.0000 0.0637 +vn 0.9996 0.0000 -0.0274 +vn 0.9702 0.0000 0.2424 +vn 0.3202 0.0000 0.9473 +vn 0.3209 -0.0523 0.9457 +vn 0.3778 -0.0482 0.9246 +vn 0.3767 0.0000 0.9263 +vn 0.2557 -0.0000 0.9667 +vn 0.2568 -0.0563 0.9648 +vn 0.3236 -0.1019 0.9407 +vn 0.2596 -0.1103 0.9594 +vn 0.3809 -0.0947 0.9198 +vn 0.3289 -0.1525 0.9320 +vn 0.3863 -0.1411 0.9115 +vn 0.2646 -0.1635 0.9504 +vn 0.3364 -0.2030 0.9196 +vn 0.2721 -0.2181 0.9372 +vn 0.3922 -0.1886 0.9003 +vn 0.3452 -0.2514 0.9043 +vn 0.4004 -0.2333 0.8862 +vn 0.2817 -0.2707 0.9205 +vn 0.3556 -0.2978 0.8859 +vn 0.2937 -0.3191 0.9011 +vn 0.4108 -0.2765 0.8688 +vn 0.3693 -0.3428 0.8638 +vn 0.4230 -0.3188 0.8482 +vn 0.3074 -0.3690 0.8771 +vn 0.3833 -0.3859 0.8391 +vn 0.3228 -0.4153 0.8504 +vn 0.4353 -0.3583 0.8259 +vn 0.3991 -0.4264 0.8117 +vn 0.4502 -0.3960 0.8003 +vn 0.3400 -0.4583 0.8212 +vn 0.4170 -0.4650 0.7809 +vn 0.3592 -0.4983 0.7891 +vn 0.4669 -0.4325 0.7713 +vn 0.4364 -0.4988 0.7488 +vn 0.4845 -0.4641 0.7416 +vn 0.3791 -0.5366 0.7539 +vn 0.4041 -0.5684 0.7167 +vn 0.4579 -0.5294 0.7142 +vn 0.5038 -0.4929 0.7094 +vn 0.4843 -0.5543 0.6769 +vn 0.5253 -0.5185 0.6747 +vn 0.4371 -0.5905 0.6784 +vn 0.4759 -0.6057 0.6377 +vn 0.5123 -0.5737 0.6390 +vn 0.5486 -0.5396 0.6387 +vn 0.5421 -0.5886 0.5997 +vn 0.5733 -0.5569 0.6010 +vn 0.5132 -0.6165 0.5972 +vn 0.5505 -0.6219 0.5569 +vn 0.5726 -0.5992 0.5595 +vn 0.5974 -0.5713 0.5627 +vn 0.6006 -0.6078 0.5195 +vn 0.6228 -0.5817 0.5233 +vn 0.5856 -0.6246 0.5167 +vn 0.6176 -0.6276 0.4741 +vn 0.6293 -0.6130 0.4777 +vn 0.6471 -0.5897 0.4832 +vn 0.6564 -0.6154 0.4365 +vn 0.6710 -0.5946 0.4430 +vn 0.6444 -0.6313 0.4315 +vn 0.6705 -0.6319 0.3887 +vn 0.6810 -0.6167 0.3949 +vn 0.6940 -0.5965 0.4031 +vn 0.7040 -0.6168 0.3520 +vn 0.7171 -0.5958 0.3617 +vn 0.6946 -0.6314 0.3447 +vn 0.7258 -0.6155 0.3073 +vn 0.7162 -0.6312 0.2979 +vn 0.7405 -0.5905 0.3209 +vn 0.7479 -0.6100 0.2618 +vn 0.7634 -0.5824 0.2792 +vn 0.7362 -0.6292 0.2492 +vn 0.7692 -0.6006 0.2183 +vn 0.7547 -0.6247 0.2005 +vn 0.7851 -0.5719 0.2378 +vn 0.7891 -0.5894 0.1731 +vn 0.8059 -0.5572 0.1999 +vn 0.7720 -0.6180 0.1487 +vn 0.8092 -0.5736 0.1269 +vn 0.7897 -0.6058 0.0966 +vn 0.8269 -0.5397 0.1580 +vn 0.8283 -0.5540 0.0836 +vn 0.8467 -0.5184 0.1200 +vn 0.8062 -0.5901 0.0434 +vn 0.8471 -0.5298 0.0420 +vn 0.8229 -0.5682 -0.0047 +vn 0.8656 -0.4935 0.0853 +vn 0.8661 -0.4999 0.0058 +vn 0.8840 -0.4645 0.0518 +vn 0.8422 -0.5372 -0.0459 +vn 0.8844 -0.4659 -0.0262 +vn 0.8620 -0.5005 -0.0804 +vn 0.9014 -0.4324 0.0217 +vn 0.9023 -0.4272 -0.0577 +vn 0.9181 -0.3964 -0.0066 +vn 0.8808 -0.4594 -0.1143 +vn 0.9186 -0.3857 -0.0862 +vn 0.8980 -0.4158 -0.1440 +vn 0.9332 -0.3579 -0.0333 +vn 0.9328 -0.3432 -0.1104 +vn 0.9461 -0.3188 -0.0562 +vn 0.9137 -0.3689 -0.1704 +vn 0.9450 -0.2990 -0.1326 +vn 0.9271 -0.3209 -0.1937 +vn 0.9576 -0.2777 -0.0764 +vn 0.9559 -0.2518 -0.1514 +vn 0.9678 -0.2335 -0.0940 +vn 0.9384 -0.2709 -0.2144 +vn 0.9649 -0.2026 -0.1669 +vn 0.9481 -0.2186 -0.2308 +vn 0.9761 -0.1881 -0.1087 +vn 0.9717 -0.1545 -0.1785 +vn 0.9824 -0.1434 -0.1197 +vn 0.9555 -0.1646 -0.2448 +vn 0.9767 -0.1023 -0.1886 +vn 0.9609 -0.1105 -0.2540 +vn 0.9873 -0.0954 -0.1271 +vn 0.9798 -0.0522 -0.1931 +vn 0.9901 -0.0478 -0.1323 +vn 0.9641 -0.0561 -0.2594 +vn 0.9808 -0.0000 -0.1949 +vn 0.9653 -0.0000 -0.2612 +vn 0.9910 -0.0000 -0.1339 +vn 0.1829 -0.0000 0.9831 +vn 0.1843 -0.0599 0.9810 +vn 0.1061 0.0000 0.9944 +vn 0.1073 -0.0633 0.9922 +vn 0.1881 -0.1185 0.9750 +vn 0.1114 -0.1255 0.9858 +vn 0.1934 -0.1765 0.9651 +vn 0.1174 -0.1873 0.9753 +vn 0.2016 -0.2332 0.9513 +vn 0.1257 -0.2484 0.9605 +vn 0.2123 -0.2883 0.9337 +vn 0.1368 -0.3074 0.9417 +vn 0.2243 -0.3425 0.9123 +vn 0.1497 -0.3651 0.9188 +vn 0.2389 -0.3952 0.8870 +vn 0.1656 -0.4199 0.8924 +vn 0.2558 -0.4443 0.8586 +vn 0.1838 -0.4717 0.8624 +vn 0.2738 -0.4902 0.8275 +vn 0.2028 -0.5189 0.8304 +vn 0.2225 -0.5640 0.7953 +vn 0.2935 -0.5342 0.7928 +vn 0.3124 -0.5765 0.7550 +vn 0.2426 -0.6071 0.7567 +vn 0.2691 -0.6396 0.7201 +vn 0.3400 -0.6065 0.7187 +vn 0.7920 -0.6078 -0.0577 +vn 0.8110 -0.5762 -0.1015 +vn 0.7529 -0.6479 -0.1161 +vn 0.7767 -0.6087 -0.1618 +vn 0.8332 -0.5352 -0.1394 +vn 0.7994 -0.5661 -0.2010 +vn 0.8532 -0.4913 -0.1752 +vn 0.8199 -0.5212 -0.2370 +vn 0.8712 -0.4458 -0.2057 +vn 0.8384 -0.4730 -0.2708 +vn 0.8878 -0.3957 -0.2350 +vn 0.8555 -0.4209 -0.3017 +vn 0.9025 -0.3433 -0.2601 +vn 0.8710 -0.3661 -0.3276 +vn 0.9148 -0.2897 -0.2814 +vn 0.8842 -0.3081 -0.3510 +vn 0.9250 -0.2338 -0.2995 +vn 0.8951 -0.2483 -0.3702 +vn 0.9330 -0.1763 -0.3137 +vn 0.9037 -0.1884 -0.3845 +vn 0.9390 -0.1187 -0.3229 +vn 0.9096 -0.1259 -0.3960 +vn 0.9423 -0.0598 -0.3293 +vn 0.9133 -0.0630 -0.4023 +vn 0.9434 0.0000 -0.3315 +vn 0.9147 -0.0000 -0.4042 +vn 0.0276 -0.0000 0.9996 +vn 0.0287 -0.0669 0.9973 +vn -0.0507 -0.0000 0.9987 +vn -0.0493 -0.0701 0.9963 +vn 0.0323 -0.1331 0.9906 +vn -0.0451 -0.1386 0.9893 +vn 0.0387 -0.1980 0.9794 +vn -0.0376 -0.2056 0.9779 +vn 0.0484 -0.2613 0.9640 +vn -0.0287 -0.2730 0.9616 +vn 0.0603 -0.3240 0.9441 +vn -0.0167 -0.3386 0.9408 +vn 0.0742 -0.3848 0.9200 +vn -0.0022 -0.4025 0.9154 +vn 0.0902 -0.4417 0.8926 +vn 0.0149 -0.4617 0.8869 +vn 0.0319 -0.5132 0.8577 +vn 0.1088 -0.4944 0.8624 +vn 0.1277 -0.5413 0.8311 +vn 0.0495 -0.5586 0.8280 +vn 0.0666 -0.5963 0.8000 +vn 0.1453 -0.5837 0.7988 +vn 0.7632 -0.5880 -0.2677 +vn 0.7820 -0.5452 -0.3019 +vn 0.7234 -0.6028 -0.3366 +vn 0.7404 -0.5640 -0.3656 +vn 0.8003 -0.4969 -0.3355 +vn 0.7580 -0.5174 -0.3973 +vn 0.8180 -0.4436 -0.3663 +vn 0.7758 -0.4630 -0.4288 +vn 0.8340 -0.3857 -0.3946 +vn 0.7921 -0.4028 -0.4585 +vn 0.8478 -0.3250 -0.4190 +vn 0.8065 -0.3397 -0.4838 +vn 0.8594 -0.2623 -0.4389 +vn 0.8185 -0.2736 -0.5052 +vn 0.8683 -0.1981 -0.4549 +vn 0.8281 -0.2070 -0.5209 +vn 0.8746 -0.1330 -0.4662 +vn 0.8346 -0.1388 -0.5330 +vn 0.8787 -0.0673 -0.4726 +vn 0.8386 -0.0703 -0.5402 +vn 0.8800 -0.0000 -0.4750 +vn 0.8400 -0.0000 -0.5425 +vn -0.1287 0.0000 0.9917 +vn -0.1273 -0.0727 0.9892 +vn -0.2060 0.0000 0.9785 +vn -0.2047 -0.0749 0.9760 +vn -0.1229 -0.1433 0.9820 +vn -0.2000 -0.1474 0.9686 +vn -0.1159 -0.2139 0.9699 +vn -0.1929 -0.2206 0.9561 +vn -0.1066 -0.2839 0.9529 +vn -0.1829 -0.2920 0.9388 +vn -0.0939 -0.3512 0.9316 +vn -0.1700 -0.3616 0.9167 +vn -0.0787 -0.4166 0.9057 +vn -0.1549 -0.4292 0.8899 +vn -0.0608 -0.4778 0.8763 +vn -0.1368 -0.4921 0.8597 +vn -0.1204 -0.5440 0.8304 +vn -0.0436 -0.5309 0.8463 +vn -0.0278 -0.5727 0.8193 +vn -0.1056 -0.5834 0.8053 +vn -0.0932 -0.6108 0.7863 +vn -0.0140 -0.6034 0.7973 +vn 0.6789 -0.6138 -0.4029 +vn 0.6939 -0.5786 -0.4286 +vn 0.6302 -0.6199 -0.4676 +vn 0.6427 -0.5895 -0.4893 +vn 0.7102 -0.5347 -0.4579 +vn 0.6582 -0.5474 -0.5168 +vn 0.7278 -0.4793 -0.4904 +vn 0.6759 -0.4936 -0.5474 +vn 0.7451 -0.4177 -0.5200 +vn 0.6934 -0.4303 -0.5780 +vn 0.7599 -0.3523 -0.5463 +vn 0.7090 -0.3624 -0.6050 +vn 0.7724 -0.2846 -0.5678 +vn 0.7215 -0.2931 -0.6274 +vn 0.7824 -0.2146 -0.5846 +vn 0.7315 -0.2213 -0.6449 +vn 0.7893 -0.1435 -0.5969 +vn 0.7390 -0.1476 -0.6573 +vn 0.7933 -0.0729 -0.6044 +vn 0.7432 -0.0749 -0.6648 +vn 0.7948 0.0000 -0.6069 +vn 0.7447 -0.0000 -0.6674 +vn -0.2821 -0.0000 0.9594 +vn -0.2806 -0.0761 0.9568 +vn -0.3565 -0.0000 0.9343 +vn -0.3550 -0.0771 0.9317 +vn -0.2761 -0.1509 0.9492 +vn -0.3504 -0.1534 0.9239 +vn -0.2693 -0.2263 0.9361 +vn -0.3427 -0.2293 0.9110 +vn -0.2587 -0.2984 0.9187 +vn -0.3319 -0.3027 0.8935 +vn -0.2454 -0.3696 0.8962 +vn -0.3190 -0.3755 0.8702 +vn -0.2295 -0.4386 0.8689 +vn -0.3031 -0.4458 0.8423 +vn -0.2115 -0.5030 0.8380 +vn -0.2853 -0.5112 0.8107 +vn -0.1941 -0.5561 0.8081 +vn -0.2682 -0.5640 0.7810 +vn -0.1808 -0.5935 0.7843 +vn -0.2547 -0.5995 0.7588 +vn -0.2455 -0.6220 0.7436 +vn -0.1708 -0.6171 0.7681 +vn 0.5179 -0.6306 -0.5780 +vn 0.5283 -0.6038 -0.5970 +vn 0.5877 -0.5981 -0.5449 +vn 0.5764 -0.6256 -0.5258 +vn 0.5417 -0.5652 -0.6222 +vn 0.6022 -0.5584 -0.5706 +vn 0.6196 -0.5043 -0.6015 +vn 0.5590 -0.5123 -0.6519 +vn 0.6372 -0.4402 -0.6326 +vn 0.5772 -0.4472 -0.6833 +vn 0.6532 -0.3705 -0.6604 +vn 0.5933 -0.3771 -0.7112 +vn 0.6665 -0.2993 -0.6828 +vn 0.6071 -0.3044 -0.7340 +vn 0.6765 -0.2263 -0.7008 +vn 0.6174 -0.2297 -0.7524 +vn 0.6840 -0.1515 -0.7135 +vn 0.6249 -0.1538 -0.7654 +vn 0.6883 -0.0764 -0.7214 +vn 0.6293 -0.0774 -0.7733 +vn 0.6898 0.0000 -0.7240 +vn 0.6308 -0.0000 -0.7760 +vn -0.4287 0.0000 0.9034 +vn -0.4271 -0.0778 0.9008 +vn -0.4983 0.0000 0.8670 +vn -0.4968 -0.0780 0.8643 +vn -0.4226 -0.1548 0.8930 +vn -0.4924 -0.1554 0.8564 +vn -0.4150 -0.2312 0.8799 +vn -0.4849 -0.2320 0.8432 +vn -0.4046 -0.3061 0.8618 +vn -0.4745 -0.3072 0.8249 +vn -0.3916 -0.3797 0.8382 +vn -0.4610 -0.3806 0.8017 +vn -0.3752 -0.4501 0.8103 +vn -0.4446 -0.4515 0.7736 +vn -0.3568 -0.5162 0.7786 +vn -0.4262 -0.5177 0.7419 +vn -0.3398 -0.5682 0.7494 +vn -0.4093 -0.5696 0.7128 +vn -0.3276 -0.6022 0.7281 +vn -0.3967 -0.6049 0.6905 +vn -0.3877 -0.6284 0.6744 +vn -0.3179 -0.6267 0.7115 +vn 0.3977 -0.6086 -0.6866 +vn 0.4647 -0.6070 -0.6447 +vn 0.4542 -0.6340 -0.6259 +vn 0.3867 -0.6359 -0.6679 +vn 0.4113 -0.5715 -0.7100 +vn 0.4783 -0.5694 -0.6686 +vn 0.4954 -0.5175 -0.6977 +vn 0.4285 -0.5194 -0.7393 +vn 0.5139 -0.4514 -0.7295 +vn 0.4472 -0.4529 -0.7713 +vn 0.5299 -0.3806 -0.7579 +vn 0.4637 -0.3817 -0.7996 +vn 0.5432 -0.3071 -0.7814 +vn 0.4772 -0.3081 -0.8231 +vn 0.5538 -0.2320 -0.7997 +vn 0.4876 -0.2327 -0.8415 +vn 0.5615 -0.1554 -0.8127 +vn 0.4951 -0.1559 -0.8547 +vn 0.5661 -0.0780 -0.8206 +vn 0.4996 -0.0782 -0.8627 +vn 0.5676 -0.0000 -0.8233 +vn 0.5011 -0.0000 -0.8654 +vn -0.5648 -0.0000 0.8252 +vn -0.5633 -0.0779 0.8226 +vn -0.6279 -0.0000 0.7783 +vn -0.6264 -0.0773 0.7756 +vn -0.5588 -0.1550 0.8147 +vn -0.6221 -0.1535 0.7678 +vn -0.5512 -0.2314 0.8017 +vn -0.6146 -0.2293 0.7548 +vn -0.5406 -0.3061 0.7836 +vn -0.6043 -0.3031 0.7369 +vn -0.5271 -0.3795 0.7604 +vn -0.5907 -0.3759 0.7140 +vn -0.5111 -0.4502 0.7322 +vn -0.5748 -0.4465 0.6858 +vn -0.4929 -0.5161 0.7005 +vn -0.5565 -0.5112 0.6549 +vn -0.4761 -0.5682 0.6712 +vn -0.5394 -0.5638 0.6255 +vn -0.4630 -0.6042 0.6485 +vn -0.5260 -0.6009 0.6019 +vn -0.4542 -0.6269 0.6331 +vn -0.5170 -0.6252 0.5846 +vn 0.2556 -0.6036 -0.7552 +vn 0.3276 -0.6077 -0.7234 +vn 0.3170 -0.6344 -0.7050 +vn 0.2452 -0.6299 -0.7370 +vn 0.2701 -0.5660 -0.7789 +vn 0.3418 -0.5700 -0.7472 +vn 0.3589 -0.5183 -0.7763 +vn 0.2875 -0.5134 -0.8086 +vn 0.3773 -0.4516 -0.8085 +vn 0.3049 -0.4468 -0.8411 +vn 0.3936 -0.3808 -0.8367 +vn 0.3210 -0.3769 -0.8688 +vn 0.4067 -0.3068 -0.8605 +vn 0.3345 -0.3043 -0.8919 +vn 0.4175 -0.2320 -0.8786 +vn 0.3456 -0.2304 -0.9097 +vn 0.4251 -0.1554 -0.8917 +vn 0.3529 -0.1539 -0.9229 +vn 0.4297 -0.0780 -0.8996 +vn 0.3575 -0.0774 -0.9307 +vn 0.4313 0.0000 -0.9022 +vn 0.3590 0.0000 -0.9333 +vn -0.6870 0.0000 0.7267 +vn -0.6855 -0.0763 0.7240 +vn -0.7419 0.0000 0.6705 +vn -0.7405 -0.0748 0.6679 +vn -0.6813 -0.1512 0.7163 +vn -0.7363 -0.1474 0.6604 +vn -0.6736 -0.2258 0.7037 +vn -0.7290 -0.2207 0.6480 +vn -0.6637 -0.2985 0.6859 +vn -0.7189 -0.2923 0.6306 +vn -0.6508 -0.3698 0.6631 +vn -0.7064 -0.3618 0.6083 +vn -0.6347 -0.4390 0.6360 +vn -0.6912 -0.4296 0.5811 +vn -0.6172 -0.5034 0.6047 +vn -0.6735 -0.4927 0.5510 +vn -0.6001 -0.5565 0.5747 +vn -0.6563 -0.5454 0.5214 +vn -0.5855 -0.5959 0.5496 +vn -0.6412 -0.5867 0.4946 +vn -0.5753 -0.6221 0.5311 +vn -0.6291 -0.6167 0.4731 +vn 0.1046 -0.5905 -0.8002 +vn 0.1808 -0.5982 -0.7807 +vn 0.1687 -0.6275 -0.7601 +vn 0.0902 -0.6238 -0.7763 +vn 0.1207 -0.5482 -0.8276 +vn 0.1953 -0.5594 -0.8056 +vn 0.2132 -0.5049 -0.8364 +vn 0.1382 -0.4941 -0.8583 +vn 0.2312 -0.4397 -0.8679 +vn 0.1565 -0.4310 -0.8887 +vn 0.2475 -0.3712 -0.8950 +vn 0.1715 -0.3628 -0.9160 +vn 0.2608 -0.2997 -0.9177 +vn 0.1844 -0.2929 -0.9382 +vn 0.2712 -0.2269 -0.9354 +vn 0.1947 -0.2216 -0.9555 +vn 0.2783 -0.1514 -0.9485 +vn 0.2017 -0.1477 -0.9682 +vn 0.2827 -0.0764 -0.9562 +vn 0.2068 -0.0751 -0.9755 +vn 0.2843 0.0000 -0.9587 +vn 0.2080 0.0000 -0.9781 +vn -0.7922 0.0000 0.6103 +vn -0.7908 -0.0729 0.6078 +vn -0.8376 0.0000 0.5462 +vn -0.8362 -0.0703 0.5438 +vn -0.7867 -0.1433 0.6004 +vn -0.8322 -0.1382 0.5370 +vn -0.7798 -0.2141 0.5882 +vn -0.8258 -0.2065 0.5248 +vn -0.7700 -0.2839 0.5714 +vn -0.8165 -0.2736 0.5084 +vn -0.7576 -0.3517 0.5499 +vn -0.8045 -0.3391 0.4876 +vn -0.7428 -0.4170 0.5238 +vn -0.7902 -0.4024 0.4622 +vn -0.7258 -0.4787 0.4940 +vn -0.7740 -0.4622 0.4328 +vn -0.7085 -0.5329 0.4626 +vn -0.7565 -0.5154 0.4027 +vn -0.6926 -0.5755 0.4348 +vn -0.7392 -0.5614 0.3722 +vn -0.6783 -0.6097 0.4100 +vn -0.7222 -0.6009 0.3426 +vn -0.0511 -0.5655 -0.8232 +vn 0.0263 -0.5805 -0.8138 +vn 0.0110 -0.6169 -0.7869 +vn -0.0689 -0.6059 -0.7925 +vn -0.0319 -0.5175 -0.8551 +vn 0.0442 -0.5346 -0.8439 +vn 0.0620 -0.4801 -0.8750 +vn -0.0142 -0.4636 -0.8859 +vn 0.0800 -0.4183 -0.9048 +vn 0.0030 -0.4039 -0.9148 +vn 0.0953 -0.3526 -0.9309 +vn 0.0182 -0.3406 -0.9400 +vn 0.1083 -0.2854 -0.9523 +vn 0.0298 -0.2743 -0.9612 +vn 0.1175 -0.2150 -0.9695 +vn 0.0386 -0.2064 -0.9777 +vn 0.1245 -0.1438 -0.9817 +vn 0.0462 -0.1391 -0.9892 +vn 0.1289 -0.0729 -0.9890 +vn 0.0506 -0.0704 -0.9962 +vn 0.1303 0.0000 -0.9915 +vn 0.0520 0.0000 -0.9986 +vn -0.8780 0.0000 0.4786 +vn -0.8764 -0.0671 0.4768 +vn -0.9128 0.0000 0.4084 +vn -0.9115 -0.0632 0.4065 +vn -0.8725 -0.1328 0.4702 +vn -0.9079 -0.1259 0.3998 +vn -0.8662 -0.1979 0.4589 +vn -0.9018 -0.1878 0.3892 +vn -0.8573 -0.2620 0.4431 +vn -0.8933 -0.2487 0.3743 +vn -0.8460 -0.3246 0.4230 +vn -0.8826 -0.3082 0.3550 +vn -0.8322 -0.3853 0.3987 +vn -0.8693 -0.3654 0.3327 +vn -0.8162 -0.4430 0.3708 +vn -0.8541 -0.4208 0.3058 +vn -0.7990 -0.4957 0.3403 +vn -0.8372 -0.4727 0.2751 +vn -0.7813 -0.5433 0.3072 +vn -0.8191 -0.5204 0.2413 +vn -0.7619 -0.5868 0.2741 +vn -0.7984 -0.5657 0.2063 +vn -0.1482 -0.5897 -0.7939 +vn -0.1283 -0.5465 -0.8276 +vn -0.2239 -0.5665 -0.7930 +vn -0.2027 -0.5221 -0.8285 +vn -0.1833 -0.4741 -0.8612 +vn -0.1083 -0.4979 -0.8605 +vn -0.0895 -0.4441 -0.8915 +vn -0.1652 -0.4217 -0.8916 +vn -0.0732 -0.3864 -0.9194 +vn -0.1495 -0.3663 -0.9184 +vn -0.0593 -0.3255 -0.9437 +vn -0.1364 -0.3086 -0.9414 +vn -0.0478 -0.2621 -0.9639 +vn -0.1251 -0.2495 -0.9602 +vn -0.0380 -0.1989 -0.9793 +vn -0.1170 -0.1881 -0.9752 +vn -0.0313 -0.1338 -0.9905 +vn -0.1108 -0.1261 -0.9858 +vn -0.0279 -0.0672 -0.9973 +vn -0.1067 -0.0636 -0.9923 +vn -0.0272 0.0000 -0.9996 +vn -0.1054 0.0000 -0.9944 +vn -0.9421 -0.0000 0.3353 +vn -0.9411 -0.0602 0.3328 +vn -0.9655 -0.0000 0.2604 +vn -0.9644 -0.0561 0.2585 +vn -0.9377 -0.1187 0.3265 +vn -0.9611 -0.1097 0.2533 +vn -0.9319 -0.1762 0.3170 +vn -0.9559 -0.1637 0.2440 +vn -0.9239 -0.2337 0.3031 +vn -0.9484 -0.2175 0.2307 +vn -0.9138 -0.2893 0.2852 +vn -0.9389 -0.2695 0.2142 +vn -0.9016 -0.3428 0.2639 +vn -0.9277 -0.3187 0.1943 +vn -0.8869 -0.3955 0.2386 +vn -0.9143 -0.3673 0.1709 +vn -0.8704 -0.4453 0.2100 +vn -0.8988 -0.4140 0.1437 +vn -0.8526 -0.4911 0.1786 +vn -0.8821 -0.4569 0.1144 +vn -0.8635 -0.4977 0.0815 +vn -0.8326 -0.5351 0.1434 +vn -0.8091 -0.5778 0.1074 +vn -0.7744 -0.6097 0.1689 +vn -0.8431 -0.5358 0.0468 +vn -0.7904 -0.6092 0.0648 +vn -0.8245 -0.5659 0.0072 +vn -0.7532 -0.6458 0.1253 +vn -0.2758 -0.6534 -0.7050 +vn -0.3499 -0.6052 -0.7150 +vn -0.3200 -0.5758 -0.7524 +vn -0.2481 -0.6094 -0.7530 +vn -0.4166 -0.5614 -0.7150 +vn -0.3875 -0.5330 -0.7522 +vn -0.3645 -0.4980 -0.7868 +vn -0.2959 -0.5354 -0.7911 +vn -0.2743 -0.4922 -0.8261 +vn -0.3444 -0.4578 -0.8196 +vn -0.2563 -0.4464 -0.8573 +vn -0.3279 -0.4151 -0.8487 +vn -0.2397 -0.3964 -0.8862 +vn -0.3125 -0.3683 -0.8756 +vn -0.2252 -0.3435 -0.9117 +vn -0.2988 -0.3187 -0.8995 +vn -0.2132 -0.2895 -0.9331 +vn -0.2866 -0.2708 -0.9190 +vn -0.2023 -0.2341 -0.9509 +vn -0.2772 -0.2177 -0.9358 +vn -0.1941 -0.1773 -0.9648 +vn -0.2701 -0.1635 -0.9488 +vn -0.1884 -0.1194 -0.9748 +vn -0.2647 -0.1101 -0.9580 +vn -0.1850 -0.0600 -0.9809 +vn -0.2614 -0.0562 -0.9636 +vn -0.1836 0.0000 -0.9830 +vn -0.2603 -0.0000 -0.9655 +vn -0.9828 -0.0000 0.1846 +vn -0.9818 -0.0521 0.1827 +vn -0.9939 0.0000 0.1106 +vn -0.9929 -0.0467 0.1092 +vn -0.9788 -0.1007 0.1781 +vn -0.9903 -0.0912 0.1049 +vn -0.9740 -0.1507 0.1693 +vn -0.9857 -0.1376 0.0969 +vn -0.9672 -0.1994 0.1574 +vn -0.9796 -0.1820 0.0856 +vn -0.9584 -0.2477 0.1418 +vn -0.9717 -0.2251 0.0714 +vn -0.9480 -0.2931 0.1238 +vn -0.9623 -0.2662 0.0553 +vn -0.9356 -0.3381 0.1015 +vn -0.9509 -0.3074 0.0356 +vn -0.9216 -0.3806 0.0768 +vn -0.9377 -0.3471 0.0127 +vn -0.9064 -0.4195 0.0500 +vn -0.9240 -0.3822 -0.0119 +vn -0.8889 -0.4577 0.0194 +vn -0.9085 -0.4161 -0.0392 +vn -0.8706 -0.4918 -0.0125 +vn -0.8917 -0.4474 -0.0683 +vn -0.8523 -0.5209 -0.0481 +vn -0.8742 -0.4751 -0.0998 +vn -0.8345 -0.5437 -0.0895 +vn -0.8090 -0.5862 -0.0433 +vn -0.8558 -0.4991 -0.1359 +vn -0.8166 -0.5615 -0.1337 +vn -0.8372 -0.5188 -0.1729 +vn -0.7940 -0.6002 -0.0968 +vn -0.7457 -0.6400 -0.1851 +vn -0.7277 -0.6434 -0.2374 +vn -0.7199 -0.6558 -0.2271 +vn -0.7354 -0.6564 -0.1686 +vn -0.7589 -0.6190 -0.2022 +vn -0.7401 -0.6239 -0.2512 +vn -0.7081 -0.6448 -0.2878 +vn -0.7194 -0.6278 -0.2973 +vn -0.6998 -0.6571 -0.2800 +vn -0.6865 -0.6454 -0.3349 +vn -0.6760 -0.6598 -0.3282 +vn -0.6978 -0.6289 -0.3429 +vn -0.6634 -0.6441 -0.3808 +vn -0.6749 -0.6279 -0.3877 +vn -0.6505 -0.6615 -0.3733 +vn -0.6374 -0.6431 -0.4245 +vn -0.6234 -0.6607 -0.4181 +vn -0.6504 -0.6258 -0.4305 +vn -0.6231 -0.6228 -0.4731 +vn -0.6063 -0.6428 -0.4682 +vn -0.5908 -0.6602 -0.4638 +vn -0.5706 -0.6423 -0.5117 +vn -0.5540 -0.6588 -0.5090 +vn -0.5912 -0.6206 -0.5151 +vn -0.5568 -0.6161 -0.5572 +vn -0.5326 -0.6401 -0.5537 +vn -0.5101 -0.6609 -0.5505 +vn -0.4874 -0.5963 -0.6379 +vn -0.5295 -0.5596 -0.6376 +vn -0.5013 -0.5408 -0.6754 +vn -0.4523 -0.5820 -0.6758 +vn -0.5724 -0.5181 -0.6356 +vn -0.5496 -0.4982 -0.6706 +vn -0.5279 -0.4745 -0.7044 +vn -0.4759 -0.5177 -0.7110 +vn -0.4524 -0.4900 -0.7451 +vn -0.5088 -0.4472 -0.7356 +vn -0.4913 -0.4163 -0.7650 +vn -0.4309 -0.4576 -0.7778 +vn -0.4126 -0.4203 -0.8081 +vn -0.4753 -0.3823 -0.7924 +vn -0.3971 -0.3812 -0.8349 +vn -0.4610 -0.3469 -0.8168 +vn -0.3829 -0.3380 -0.8597 +vn -0.4479 -0.3082 -0.8393 +vn -0.3696 -0.2944 -0.8813 +vn -0.4365 -0.2669 -0.8592 +vn -0.3595 -0.2480 -0.8996 +vn -0.4271 -0.2254 -0.8756 +vn -0.3507 -0.1992 -0.9151 +vn -0.4187 -0.1822 -0.8896 +vn -0.3435 -0.1511 -0.9269 +vn -0.4121 -0.1375 -0.9007 +vn -0.3381 -0.1019 -0.9356 +vn -0.4080 -0.0916 -0.9084 +vn -0.3354 -0.0517 -0.9407 +vn -0.4056 -0.0469 -0.9128 +vn -0.3346 -0.0000 -0.9424 +vn -0.4048 -0.0000 -0.9144 +vn -0.9991 0.0000 0.0413 +vn -0.9983 -0.0421 0.0399 +vn -0.9997 -0.0000 -0.0248 +vn -0.9990 -0.0377 -0.0259 +vn -0.9960 -0.0823 0.0352 +vn -0.9968 -0.0746 -0.0300 +vn -0.9918 -0.1245 0.0274 +vn -0.9930 -0.1119 -0.0369 +vn -0.9862 -0.1646 0.0173 +vn -0.9883 -0.1457 -0.0448 +vn -0.9792 -0.2028 0.0058 +vn -0.9819 -0.1807 -0.0561 +vn -0.9708 -0.2398 -0.0088 +vn -0.9743 -0.2144 -0.0696 +vn -0.9606 -0.2768 -0.0270 +vn -0.9651 -0.2472 -0.0860 +vn -0.9484 -0.3133 -0.0480 +vn -0.9546 -0.2791 -0.1045 +vn -0.9360 -0.3452 -0.0692 +vn -0.9435 -0.3075 -0.1236 +vn -0.9220 -0.3758 -0.0938 +vn -0.9306 -0.3353 -0.1467 +vn -0.9069 -0.4037 -0.1205 +vn -0.9168 -0.3608 -0.1713 +vn -0.8909 -0.4289 -0.1494 +vn -0.9027 -0.3834 -0.1951 +vn -0.8734 -0.4522 -0.1807 +vn -0.8874 -0.4041 -0.2218 +vn -0.8556 -0.4723 -0.2117 +vn -0.8709 -0.4228 -0.2506 +vn -0.8369 -0.4891 -0.2457 +vn -0.8177 -0.5357 -0.2108 +vn -0.8537 -0.4385 -0.2809 +vn -0.8177 -0.5034 -0.2792 +vn -0.8365 -0.4514 -0.3107 +vn -0.7968 -0.5497 -0.2509 +vn -0.7976 -0.5141 -0.3155 +vn -0.7759 -0.5611 -0.2882 +vn -0.8184 -0.4614 -0.3426 +vn -0.7775 -0.5222 -0.3505 +vn -0.8006 -0.4682 -0.3739 +vn -0.7542 -0.5682 -0.3290 +vn -0.7570 -0.5272 -0.3859 +vn -0.7325 -0.5724 -0.3684 +vn -0.7820 -0.4723 -0.4068 +vn -0.7359 -0.5286 -0.4231 +vn -0.7637 -0.4740 -0.4382 +vn -0.7102 -0.5736 -0.4081 +vn -0.7148 -0.5275 -0.4591 +vn -0.6879 -0.5719 -0.4468 +vn -0.7448 -0.4728 -0.4709 +vn -0.6946 -0.5221 -0.4948 +vn -0.7260 -0.4687 -0.5032 +vn -0.6653 -0.5674 -0.4852 +vn -0.6748 -0.5139 -0.5297 +vn -0.6406 -0.5604 -0.5249 +vn -0.7082 -0.4621 -0.5338 +vn -0.6535 -0.5036 -0.5651 +vn -0.6898 -0.4519 -0.5657 +vn -0.6179 -0.5493 -0.5626 +vn -0.6337 -0.4891 -0.5994 +vn -0.5944 -0.5355 -0.5999 +vn -0.6719 -0.4383 -0.5971 +vn -0.6146 -0.4727 -0.6315 +vn -0.6552 -0.4228 -0.6261 +vn -0.5963 -0.4526 -0.6630 +vn -0.6388 -0.4036 -0.6550 +vn -0.5782 -0.4292 -0.6939 +vn -0.6233 -0.3839 -0.6812 +vn -0.5615 -0.4039 -0.7222 +vn -0.6087 -0.3616 -0.7062 +vn -0.5457 -0.3756 -0.7491 +vn -0.5956 -0.3367 -0.7293 +vn -0.5309 -0.3455 -0.7738 +vn -0.5826 -0.3085 -0.7520 +vn -0.5181 -0.3128 -0.7960 +vn -0.5704 -0.2783 -0.7728 +vn -0.5068 -0.2779 -0.8160 +vn -0.5600 -0.2476 -0.7906 +vn -0.4963 -0.2402 -0.8342 +vn -0.5504 -0.2147 -0.8068 +vn -0.4878 -0.2029 -0.8490 +vn -0.5425 -0.1806 -0.8204 +vn -0.4808 -0.1657 -0.8610 +vn -0.5368 -0.1475 -0.8307 +vn -0.4748 -0.1242 -0.8713 +vn -0.5315 -0.1108 -0.8398 +vn -0.4709 -0.0810 -0.8784 +vn -0.5272 -0.0735 -0.8466 +vn -0.4683 -0.0426 -0.8826 +vn -0.5252 -0.0381 -0.8501 +vn -0.4675 -0.0000 -0.8840 +vn -0.5247 0.0000 -0.8513 +vn -0.9961 -0.0000 -0.0882 +vn -0.9955 -0.0326 -0.0890 +vn -0.9890 -0.0000 -0.1476 +vn -0.9884 -0.0292 -0.1489 +vn -0.9935 -0.0661 -0.0925 +vn -0.9868 -0.0568 -0.1519 +vn -0.9902 -0.0993 -0.0980 +vn -0.9839 -0.0860 -0.1566 +vn -0.9859 -0.1293 -0.1058 +vn -0.9802 -0.1136 -0.1623 +vn -0.9805 -0.1589 -0.1159 +vn -0.9757 -0.1384 -0.1702 +vn -0.9737 -0.1889 -0.1276 +vn -0.9697 -0.1639 -0.1814 +vn -0.9654 -0.2185 -0.1423 +vn -0.9626 -0.1896 -0.1937 +vn -0.9564 -0.2459 -0.1578 +vn -0.9542 -0.2147 -0.2082 +vn -0.9459 -0.2718 -0.1770 +vn -0.9458 -0.2364 -0.2227 +vn -0.9352 -0.2955 -0.1951 +vn -0.9368 -0.2566 -0.2379 +vn -0.9239 -0.3173 -0.2140 +vn -0.9251 -0.2775 -0.2591 +vn -0.9107 -0.3378 -0.2377 +vn -0.9148 -0.2938 -0.2771 +vn -0.8971 -0.3562 -0.2615 +vn -0.9034 -0.3092 -0.2970 +vn -0.8825 -0.3726 -0.2869 +vn -0.8902 -0.3242 -0.3201 +vn -0.8678 -0.3866 -0.3122 +vn -0.8770 -0.3360 -0.3435 +vn -0.8520 -0.3980 -0.3401 +vn -0.8631 -0.3455 -0.3683 +vn -0.8355 -0.4067 -0.3694 +vn -0.8500 -0.3542 -0.3899 +vn -0.8202 -0.4129 -0.3960 +vn -0.8361 -0.3608 -0.4132 +vn -0.8041 -0.4170 -0.4237 +vn -0.8217 -0.3641 -0.4385 +vn -0.7878 -0.4184 -0.4520 +vn -0.8074 -0.3647 -0.4638 +vn -0.7713 -0.4173 -0.4806 +vn -0.7930 -0.3634 -0.4890 +vn -0.7552 -0.4136 -0.5086 +vn -0.7787 -0.3598 -0.5139 +vn -0.7396 -0.4072 -0.5359 +vn -0.7651 -0.3542 -0.5377 +vn -0.7229 -0.3970 -0.5655 +vn -0.7516 -0.3462 -0.5614 +vn -0.7071 -0.3859 -0.5926 +vn -0.7381 -0.3364 -0.5849 +vn -0.6924 -0.3727 -0.6178 +vn -0.7253 -0.3255 -0.6066 +vn -0.6778 -0.3586 -0.6419 +vn -0.7123 -0.3105 -0.6294 +vn -0.6638 -0.3390 -0.6667 +vn -0.6998 -0.2925 -0.6517 +vn -0.6507 -0.3162 -0.6904 +vn -0.6889 -0.2766 -0.6700 +vn -0.6394 -0.2953 -0.7099 +vn -0.6779 -0.2576 -0.6885 +vn -0.6289 -0.2727 -0.7281 +vn -0.6687 -0.2364 -0.7049 +vn -0.6183 -0.2465 -0.7463 +vn -0.6604 -0.2149 -0.7195 +vn -0.6086 -0.2190 -0.7627 +vn -0.6521 -0.1893 -0.7341 +vn -0.6005 -0.1891 -0.7770 +vn -0.6452 -0.1626 -0.7465 +vn -0.5935 -0.1585 -0.7891 +vn -0.6385 -0.1404 -0.7567 +vn -0.5877 -0.1312 -0.7984 +vn -0.6337 -0.1136 -0.7652 +vn -0.5833 -0.0978 -0.8063 +vn -0.6304 -0.0841 -0.7717 +vn -0.5801 -0.0644 -0.8120 +vn -0.6277 -0.0568 -0.7764 +vn -0.5782 -0.0329 -0.8153 +vn -0.6257 -0.0297 -0.7795 +vn -0.5774 -0.0000 -0.8165 +vn -0.6249 -0.0000 -0.7807 +vn -0.9797 0.0000 -0.2007 +vn -0.9791 -0.0268 -0.2017 +vn -0.9682 -0.0000 -0.2500 +vn -0.9676 -0.0256 -0.2511 +vn -0.9778 -0.0486 -0.2040 +vn -0.9666 -0.0442 -0.2523 +vn -0.9762 -0.0698 -0.2055 +vn -0.9653 -0.0636 -0.2532 +vn -0.9658 -0.0877 -0.2439 +vn -0.9730 -0.0969 -0.2093 +vn -0.9674 -0.1239 -0.2209 +vn -0.9595 -0.1003 -0.2632 +vn -0.9546 -0.1192 -0.2731 +vn -0.9627 -0.1422 -0.2304 +vn -0.9572 -0.1614 -0.2403 +vn -0.9495 -0.1353 -0.2829 +vn -0.9433 -0.1551 -0.2936 +vn -0.9495 -0.1850 -0.2534 +vn -0.9427 -0.2027 -0.2652 +vn -0.9360 -0.1732 -0.3064 +vn -0.9343 -0.2205 -0.2800 +vn -0.9292 -0.1884 -0.3180 +vn -0.9253 -0.2392 -0.2945 +vn -0.9217 -0.2064 -0.3285 +vn -0.9144 -0.2304 -0.3328 +vn -0.9155 -0.2564 -0.3102 +vn -0.9053 -0.2673 -0.3302 +vn -0.9054 -0.2299 -0.3569 +vn -0.8976 -0.2346 -0.3731 +vn -0.8948 -0.2778 -0.3495 +vn -0.8821 -0.2900 -0.3713 +vn -0.8889 -0.2415 -0.3892 +vn -0.8769 -0.2509 -0.4100 +vn -0.8723 -0.2983 -0.3875 +vn -0.8614 -0.3045 -0.4065 +vn -0.8653 -0.2571 -0.4302 +vn -0.8485 -0.3089 -0.4298 +vn -0.8556 -0.2619 -0.4465 +vn -0.8352 -0.3134 -0.4519 +vn -0.8457 -0.2661 -0.4626 +vn -0.8312 -0.2831 -0.4785 +vn -0.8219 -0.3174 -0.4730 +vn -0.8104 -0.3139 -0.4948 +vn -0.8259 -0.2670 -0.4966 +vn -0.8167 -0.2625 -0.5139 +vn -0.7991 -0.3096 -0.5153 +vn -0.7865 -0.3042 -0.5375 +vn -0.8063 -0.2575 -0.5325 +vn -0.7962 -0.2522 -0.5500 +vn -0.7740 -0.2971 -0.5592 +vn -0.7638 -0.2902 -0.5765 +vn -0.7843 -0.2423 -0.5712 +vn -0.7531 -0.2797 -0.5955 +vn -0.7737 -0.2334 -0.5890 +vn -0.7414 -0.2675 -0.6154 +vn -0.7648 -0.2279 -0.6026 +vn -0.7486 -0.2279 -0.6226 +vn -0.7281 -0.2560 -0.6359 +vn -0.7204 -0.2387 -0.6512 +vn -0.7486 -0.2065 -0.6301 +vn -0.7433 -0.1899 -0.6414 +vn -0.7124 -0.2215 -0.6659 +vn -0.7037 -0.2026 -0.6810 +vn -0.7357 -0.1728 -0.6549 +vn -0.7289 -0.1561 -0.6666 +vn -0.6972 -0.1850 -0.6926 +vn -0.6894 -0.1612 -0.7062 +vn -0.7224 -0.1356 -0.6780 +vn -0.6834 -0.1438 -0.7157 +vn -0.7167 -0.1181 -0.6873 +vn -0.6776 -0.1235 -0.7250 +vn -0.7105 -0.1016 -0.6963 +vn -0.6949 -0.0885 -0.7136 +vn -0.6713 -0.0951 -0.7350 +vn -0.6690 -0.0709 -0.7399 +vn -0.7034 -0.0650 -0.7078 +vn -0.7046 -0.0437 -0.7082 +vn -0.6680 -0.0494 -0.7425 +vn -0.6668 -0.0272 -0.7448 +vn -0.7040 -0.0245 -0.7098 +vn -0.7036 -0.0000 -0.7106 +vn -0.6662 -0.0000 -0.7458 +vn 0.8110 0.0000 0.5851 +vn 0.8113 -0.0078 0.5846 +vn 0.9323 0.0121 0.3614 +vn 0.9326 0.0000 0.3609 +vn 0.8119 -0.0157 0.5836 +vn 0.9319 0.0242 0.3619 +vn 0.8128 -0.0236 0.5821 +vn 0.9308 0.0360 0.3638 +vn 0.8139 -0.0312 0.5802 +vn 0.9291 0.0475 0.3669 +vn 0.8152 -0.0387 0.5779 +vn 0.9269 0.0589 0.3706 +vn 0.8168 -0.0458 0.5751 +vn 0.9244 0.0699 0.3750 +vn 0.8188 -0.0527 0.5717 +vn 0.9215 0.0804 0.3800 +vn 0.8211 -0.0593 0.5678 +vn 0.9181 0.0904 0.3859 +vn 0.8235 -0.0654 0.5636 +vn 0.9144 0.1001 0.3923 +vn 0.8262 -0.0712 0.5589 +vn 0.9104 0.1094 0.3990 +vn 0.8291 -0.0769 0.5538 +vn 0.9059 0.1171 0.4070 +vn 0.8321 -0.0820 0.5486 +vn 0.9011 0.1243 0.4154 +vn 0.8353 -0.0864 0.5430 +vn 0.8960 0.1309 0.4242 +vn 0.8388 -0.0904 0.5370 +vn 0.8908 0.1367 0.4334 +vn 0.8423 -0.0938 0.5307 +vn 0.8853 0.1418 0.4429 +vn 0.8460 -0.0966 0.5243 +vn 0.8796 0.1459 0.4527 +vn 0.8499 -0.0986 0.5177 +vn 0.8738 0.1492 0.4627 +vn 0.8538 -0.0997 0.5109 +vn 0.8679 0.1517 0.4730 +vn 0.8579 -0.0997 0.5041 +vn 0.8619 0.1533 0.4833 +vn 0.8618 -0.0987 0.4975 +vn 0.8559 0.1539 0.4938 +vn 0.8657 -0.0963 0.4913 +vn 0.8498 0.1537 0.5042 +vn 0.8691 -0.0870 0.4869 +vn 0.8433 0.1540 0.5149 +vn 0.8731 -0.0840 0.4802 +vn 0.8372 0.1525 0.5252 +vn 0.8779 -0.0921 0.4700 +vn 0.8321 0.1470 0.5348 +vn 0.8812 -0.0930 0.4635 +vn 0.8265 0.1419 0.5447 +vn 0.8847 -0.0902 0.4573 +vn 0.8211 0.1369 0.5542 +vn 0.8882 -0.0864 0.4512 +vn 0.8158 0.1310 0.5633 +vn 0.8916 -0.0821 0.4454 +vn 0.8108 0.1242 0.5719 +vn 0.8947 -0.0772 0.4400 +vn 0.8061 0.1167 0.5801 +vn 0.8976 -0.0718 0.4349 +vn 0.8017 0.1085 0.5878 +vn 0.9003 -0.0660 0.4302 +vn 0.7976 0.0997 0.5949 +vn 0.9028 -0.0597 0.4259 +vn 0.7939 0.0902 0.6013 +vn 0.9050 -0.0530 0.4221 +vn 0.7906 0.0802 0.6071 +vn 0.9069 -0.0461 0.4188 +vn 0.7876 0.0697 0.6122 +vn 0.9086 -0.0388 0.4159 +vn 0.7851 0.0587 0.6166 +vn 0.9100 -0.0313 0.4135 +vn 0.7830 0.0474 0.6202 +vn 0.9111 -0.0237 0.4116 +vn 0.7814 0.0358 0.6230 +vn 0.9118 -0.0159 0.4102 +vn 0.7803 0.0240 0.6250 +vn 0.9123 -0.0080 0.4094 +vn 0.7795 0.0120 0.6262 +vn 0.9125 -0.0000 0.4091 +vn 0.7793 -0.0000 0.6266 +vn 0.9996 0.0000 0.0280 +vn 0.9989 0.0373 0.0295 +vn 0.9830 0.0507 -0.1766 +vn 0.9840 0.0000 -0.1783 +vn 0.9967 0.0744 0.0328 +vn 0.9800 0.1011 -0.1715 +vn 0.9931 0.1110 0.0391 +vn 0.9750 0.1508 -0.1629 +vn 0.9880 0.1469 0.0480 +vn 0.9682 0.1997 -0.1509 +vn 0.9815 0.1819 0.0592 +vn 0.9594 0.2473 -0.1357 +vn 0.9737 0.2158 0.0727 +vn 0.9488 0.2933 -0.1173 +vn 0.9646 0.2484 0.0885 +vn 0.9364 0.3376 -0.0958 +vn 0.9542 0.2794 0.1065 +vn 0.9223 0.3798 -0.0714 +vn 0.9427 0.3088 0.1264 +vn 0.9066 0.4196 -0.0442 +vn 0.9300 0.3363 0.1483 +vn 0.8894 0.4569 -0.0144 +vn 0.9163 0.3616 0.1720 +vn 0.8708 0.4913 0.0179 +vn 0.9017 0.3847 0.1975 +vn 0.8509 0.5227 0.0524 +vn 0.8862 0.4053 0.2245 +vn 0.8298 0.5509 0.0889 +vn 0.8699 0.4234 0.2528 +vn 0.8077 0.5757 0.1273 +vn 0.8530 0.4391 0.2821 +vn 0.7847 0.5970 0.1672 +vn 0.8355 0.4520 0.3124 +vn 0.7609 0.6145 0.2084 +vn 0.8176 0.4621 0.3435 +vn 0.7365 0.6283 0.2507 +vn 0.7993 0.4694 0.3752 +vn 0.7116 0.6382 0.2938 +vn 0.7807 0.4738 0.4073 +vn 0.6864 0.6442 0.3375 +vn 0.7621 0.4753 0.4396 +vn 0.6611 0.6461 0.3814 +vn 0.7434 0.4739 0.4719 +vn 0.6358 0.6441 0.4253 +vn 0.7249 0.4696 0.5040 +vn 0.6106 0.6382 0.4689 +vn 0.7066 0.4624 0.5357 +vn 0.5857 0.6283 0.5120 +vn 0.6887 0.4521 0.5668 +vn 0.5613 0.6145 0.5543 +vn 0.6712 0.4391 0.5972 +vn 0.5375 0.5970 0.5956 +vn 0.6542 0.4236 0.6266 +vn 0.5145 0.5757 0.6355 +vn 0.6379 0.4054 0.6548 +vn 0.4924 0.5509 0.6738 +vn 0.6225 0.3846 0.6816 +vn 0.4713 0.5227 0.7103 +vn 0.6078 0.3614 0.7070 +vn 0.4514 0.4913 0.7449 +vn 0.5941 0.3361 0.7308 +vn 0.4328 0.4569 0.7771 +vn 0.5815 0.3087 0.7527 +vn 0.4156 0.4196 0.8070 +vn 0.5700 0.2794 0.7727 +vn 0.3999 0.3798 0.8342 +vn 0.5596 0.2483 0.7907 +vn 0.3858 0.3376 0.8586 +vn 0.5505 0.2158 0.8064 +vn 0.3734 0.2933 0.8801 +vn 0.5427 0.1819 0.8200 +vn 0.3628 0.2473 0.8985 +vn 0.5363 0.1469 0.8312 +vn 0.3540 0.1997 0.9137 +vn 0.5312 0.1109 0.8399 +vn 0.3472 0.1508 0.9256 +vn 0.5276 0.0743 0.8462 +vn 0.3422 0.1011 0.9342 +vn 0.5254 0.0373 0.8500 +vn 0.3392 0.0507 0.9393 +vn 0.5247 -0.0000 0.8513 +vn 0.3383 0.0000 0.9411 +vn 0.4225 0.0000 0.9064 +vn 0.4237 -0.0459 0.9046 +vn 0.4271 -0.0887 0.8998 +vn 0.4310 -0.1330 0.8925 +vn 0.4381 -0.1749 0.8818 +vn 0.4457 -0.2175 0.8683 +vn 0.4549 -0.2588 0.8521 +vn 0.4662 -0.2975 0.8332 +vn 0.4789 -0.3327 0.8124 +vn 0.4938 -0.3682 0.7878 +vn 0.5097 -0.4019 0.7607 +vn 0.5265 -0.4314 0.7326 +vn 0.5451 -0.4578 0.7024 +vn 0.5654 -0.4818 0.6695 +vn 0.5858 -0.5023 0.6360 +vn 0.6074 -0.5186 0.6018 +vn 0.6287 -0.5335 0.5658 +vn 0.6501 -0.5455 0.5290 +vn 0.6706 -0.5551 0.4920 +vn 0.6927 -0.5615 0.4527 +vn 0.7139 -0.5639 0.4151 +vn 0.7360 -0.5633 0.3755 +vn 0.7584 -0.5586 0.3358 +vn 0.7796 -0.5504 0.2989 +vn 0.8025 -0.5371 0.2599 +vn 0.8248 -0.5176 0.2277 +vn 0.8451 -0.4972 0.1965 +vn 0.8650 -0.4752 0.1611 +vn 0.8833 -0.4502 0.1308 +vn 0.9004 -0.4229 0.1027 +vn 0.9163 -0.3934 0.0750 +vn 0.9312 -0.3612 0.0483 +vn 0.9447 -0.3272 0.0238 +vn 0.9566 -0.2914 0.0018 +vn 0.9672 -0.2536 -0.0157 +vn 0.9765 -0.2133 -0.0322 +vn 0.9840 -0.1722 -0.0458 +vn 0.9900 -0.1299 -0.0557 +vn 0.9944 -0.0861 -0.0618 +vn 0.9969 -0.0436 -0.0660 +vn 0.9978 -0.0000 -0.0667 +vn 0.9766 0.0000 -0.2151 +vn 0.9755 0.0529 -0.2133 +vn 0.9767 0.0526 -0.2083 +vn 0.9777 0.0000 -0.2100 +vn 0.9724 0.1055 -0.2079 +vn 0.9736 0.1049 -0.2029 +vn 0.9673 0.1574 -0.1990 +vn 0.9684 0.1565 -0.1940 +vn 0.9601 0.2084 -0.1865 +vn 0.9613 0.2072 -0.1816 +vn 0.9509 0.2581 -0.1707 +vn 0.9522 0.2566 -0.1658 +vn 0.9399 0.3061 -0.1515 +vn 0.9412 0.3044 -0.1467 +vn 0.9269 0.3523 -0.1291 +vn 0.9283 0.3503 -0.1245 +vn 0.9122 0.3964 -0.1036 +vn 0.9137 0.3941 -0.0991 +vn 0.8959 0.4379 -0.0752 +vn 0.8974 0.4354 -0.0709 +vn 0.8779 0.4768 -0.0441 +vn 0.8796 0.4741 -0.0399 +vn 0.8585 0.5128 -0.0104 +vn 0.8602 0.5098 -0.0065 +vn 0.8377 0.5455 0.0256 +vn 0.8396 0.5424 0.0294 +vn 0.8157 0.5750 0.0638 +vn 0.8177 0.5717 0.0673 +vn 0.7926 0.6008 0.1038 +vn 0.7948 0.5974 0.1071 +vn 0.7686 0.6230 0.1454 +vn 0.7709 0.6194 0.1485 +vn 0.7438 0.6413 0.1885 +vn 0.7462 0.6377 0.1913 +vn 0.7183 0.6557 0.2326 +vn 0.7209 0.6520 0.2351 +vn 0.6923 0.6660 0.2776 +vn 0.6951 0.6622 0.2799 +vn 0.6661 0.6723 0.3231 +vn 0.6690 0.6684 0.3252 +vn 0.6396 0.6743 0.3690 +vn 0.6427 0.6705 0.3707 +vn 0.6132 0.6723 0.4148 +vn 0.6164 0.6684 0.4163 +vn 0.5869 0.6660 0.4604 +vn 0.5903 0.6622 0.4616 +vn 0.5610 0.6557 0.5053 +vn 0.5645 0.6520 0.5063 +vn 0.5355 0.6413 0.5495 +vn 0.5391 0.6377 0.5502 +vn 0.5107 0.6230 0.5925 +vn 0.5145 0.6194 0.5930 +vn 0.4867 0.6008 0.6342 +vn 0.4906 0.5974 0.6344 +vn 0.4636 0.5750 0.6742 +vn 0.4676 0.5717 0.6742 +vn 0.4416 0.5456 0.7123 +vn 0.4457 0.5424 0.7121 +vn 0.4208 0.5128 0.7483 +vn 0.4251 0.5098 0.7479 +vn 0.4014 0.4768 0.7820 +vn 0.4058 0.4741 0.7814 +vn 0.3834 0.4379 0.8131 +vn 0.3879 0.4354 0.8124 +vn 0.3670 0.3964 0.8415 +vn 0.3716 0.3941 0.8406 +vn 0.3523 0.3523 0.8670 +vn 0.3570 0.3503 0.8659 +vn 0.3394 0.3061 0.8894 +vn 0.3442 0.3044 0.8882 +vn 0.3283 0.2581 0.9086 +vn 0.3331 0.2566 0.9073 +vn 0.3192 0.2084 0.9245 +vn 0.3240 0.2072 0.9231 +vn 0.3120 0.1574 0.9370 +vn 0.3169 0.1565 0.9355 +vn 0.3068 0.1055 0.9459 +vn 0.3118 0.1049 0.9444 +vn 0.3037 0.0529 0.9513 +vn 0.3087 0.0526 0.9497 +vn 0.3027 0.0000 0.9531 +vn 0.3076 0.0000 0.9515 +vn 0.9809 -0.0000 -0.1943 +vn 0.9799 0.0517 -0.1925 +vn 0.9769 0.1030 -0.1873 +vn 0.9719 0.1537 -0.1785 +vn 0.9648 0.2035 -0.1664 +vn 0.9559 0.2520 -0.1509 +vn 0.9451 0.2989 -0.1321 +vn 0.9325 0.3440 -0.1102 +vn 0.9181 0.3870 -0.0853 +vn 0.9021 0.4276 -0.0576 +vn 0.8846 0.4656 -0.0272 +vn 0.8656 0.5007 0.0057 +vn 0.8453 0.5327 0.0408 +vn 0.8238 0.5614 0.0781 +vn 0.8013 0.5867 0.1171 +vn 0.7778 0.6083 0.1578 +vn 0.7536 0.6262 0.1998 +vn 0.7287 0.6402 0.2429 +vn 0.7034 0.6503 0.2869 +vn 0.6778 0.6564 0.3313 +vn 0.6519 0.6584 0.3761 +vn 0.6261 0.6564 0.4208 +vn 0.6005 0.6503 0.4653 +vn 0.5751 0.6403 0.5092 +vn 0.5503 0.6262 0.5523 +vn 0.5260 0.6083 0.5943 +vn 0.5026 0.5867 0.6350 +vn 0.4800 0.5614 0.6741 +vn 0.4586 0.5327 0.7113 +vn 0.4383 0.5007 0.7465 +vn 0.4193 0.4656 0.7794 +vn 0.4018 0.4276 0.8098 +vn 0.3858 0.3870 0.8375 +vn 0.3714 0.3440 0.8624 +vn 0.3588 0.2989 0.8843 +vn 0.3480 0.2520 0.9030 +vn 0.3390 0.2035 0.9185 +vn 0.3320 0.1537 0.9307 +vn 0.3270 0.1030 0.9394 +vn 0.3239 0.0517 0.9447 +vn 0.3229 -0.0000 0.9464 +vn 0.8037 0.0719 -0.5907 +vn 0.8051 0.0000 -0.5931 +vn 0.9596 -0.0000 -0.2814 +vn 0.7995 0.1433 -0.5834 +vn 0.4340 0.0782 -0.8975 +vn 0.4294 0.1560 -0.8895 +vn 0.4356 0.0000 -0.9002 +vn 0.7925 0.2139 -0.5712 +vn 0.7827 0.2831 -0.5543 +vn 0.4218 0.2328 -0.8763 +vn 0.4112 0.3082 -0.8579 +vn 0.7703 0.3506 -0.5327 +vn 0.7552 0.4159 -0.5066 +vn 0.3976 0.3817 -0.8344 +vn 0.3812 0.4528 -0.8060 +vn 0.7377 0.4786 -0.4762 +vn 0.7177 0.5384 -0.4416 +vn 0.3621 0.5211 -0.7729 +vn 0.3404 0.5862 -0.7352 +vn 0.6954 0.5949 -0.4030 +vn 0.6710 0.6478 -0.3607 +vn 0.3162 0.6477 -0.6932 +vn 0.2896 0.7052 -0.6471 +vn 0.6447 0.6966 -0.3149 +vn 0.6164 0.7411 -0.2660 +vn 0.2609 0.7584 -0.5973 +vn 0.2301 0.8069 -0.5440 +vn 0.5865 0.7811 -0.2142 +vn 0.5552 0.8162 -0.1599 +vn 0.1976 0.8504 -0.4876 +vn 0.1634 0.8887 -0.4284 +vn 0.5225 0.8463 -0.1033 +vn 0.4888 0.8712 -0.0448 +vn 0.1279 0.9215 -0.3668 +vn 0.0912 0.9486 -0.3032 +vn 0.4542 0.8908 0.0151 +vn 0.4189 0.9048 0.0762 +vn 0.0535 0.9698 -0.2379 +vn 0.0151 0.9851 -0.1714 +vn 0.3833 0.9133 0.1381 +vn 0.3474 0.9161 0.2004 +vn -0.0237 0.9943 -0.1040 +vn -0.0628 0.9974 -0.0362 +vn 0.3114 0.9132 0.2626 +vn 0.2758 0.9048 0.3245 +vn -0.1019 0.9943 0.0316 +vn -0.1408 0.9851 0.0989 +vn 0.2405 0.8908 0.3856 +vn 0.2059 0.8712 0.4456 +vn -0.1791 0.9698 0.1655 +vn -0.2168 0.9486 0.2307 +vn 0.1722 0.8463 0.5040 +vn 0.1396 0.8162 0.5606 +vn -0.2535 0.9214 0.2944 +vn -0.2891 0.8887 0.3560 +vn 0.1082 0.7811 0.6150 +vn 0.0783 0.7411 0.6668 +vn -0.3232 0.8504 0.4152 +vn -0.3557 0.8069 0.4716 +vn 0.0501 0.6966 0.7157 +vn 0.0237 0.6478 0.7615 +vn -0.3864 0.7584 0.5249 +vn -0.4152 0.7052 0.5747 +vn -0.0007 0.5949 0.8038 +vn -0.0230 0.5385 0.8423 +vn -0.4417 0.6477 0.6207 +vn -0.4660 0.5862 0.6627 +vn -0.0430 0.4787 0.8770 +vn -0.0605 0.4159 0.9074 +vn -0.4877 0.5211 0.7004 +vn -0.5068 0.4528 0.7336 +vn -0.0756 0.3506 0.9335 +vn -0.0880 0.2831 0.9551 +vn -0.5232 0.3817 0.7620 +vn -0.5368 0.3082 0.7854 +vn -0.0978 0.2139 0.9720 +vn -0.1047 0.1433 0.9841 +vn -0.5474 0.2328 0.8038 +vn -0.5550 0.1560 0.8171 +vn -0.1090 0.0719 0.9914 +vn -0.1103 -0.0000 0.9939 +vn -0.5596 0.0783 0.8251 +vn -0.5611 -0.0000 0.8277 +vn 0.1082 0.0719 -0.9915 +vn 0.1096 0.0000 -0.9940 +vn 0.1040 0.1433 -0.9842 +vn -0.0949 0.0640 -0.9934 +vn -0.0986 0.1276 -0.9869 +vn -0.0936 0.0000 -0.9956 +vn 0.0970 0.2138 -0.9721 +vn 0.0873 0.2830 -0.9551 +vn -0.1048 0.1904 -0.9761 +vn -0.1135 0.2521 -0.9610 +vn 0.0748 0.3504 -0.9336 +vn 0.0597 0.4157 -0.9075 +vn -0.1246 0.3121 -0.9418 +vn -0.1380 0.3703 -0.9186 +vn 0.0422 0.4785 -0.8771 +vn 0.0223 0.5383 -0.8425 +vn -0.1536 0.4262 -0.8915 +vn -0.1714 0.4794 -0.8607 +vn 0.0001 0.5948 -0.8039 +vn -0.0243 0.6476 -0.7616 +vn -0.1912 0.5297 -0.8263 +vn -0.2130 0.5767 -0.7887 +vn -0.0508 0.6964 -0.7159 +vn -0.0790 0.7409 -0.6670 +vn -0.2365 0.6202 -0.7479 +vn -0.2616 0.6599 -0.7044 +vn -0.1089 0.7808 -0.6152 +vn -0.1402 0.8160 -0.5608 +vn -0.2882 0.6955 -0.6582 +vn -0.3161 0.7268 -0.6098 +vn -0.1728 0.8461 -0.5043 +vn -0.2065 0.8710 -0.4458 +vn -0.3452 0.7536 -0.5595 +vn -0.3752 0.7757 -0.5074 +vn -0.2411 0.8905 -0.3859 +vn -0.2763 0.9045 -0.3248 +vn -0.4060 0.7931 -0.4540 +vn -0.4374 0.8056 -0.3996 +vn -0.3120 0.9130 -0.2629 +vn -0.3479 0.9158 -0.2007 +vn -0.4692 0.8131 -0.3445 +vn -0.5012 0.8156 -0.2891 +vn -0.3838 0.9130 -0.1385 +vn -0.4195 0.9045 -0.0766 +vn -0.5331 0.8131 -0.2337 +vn -0.5649 0.8056 -0.1786 +vn -0.4548 0.8905 -0.0155 +vn -0.4894 0.8709 0.0444 +vn -0.5963 0.7931 -0.1241 +vn -0.6271 0.7757 -0.0708 +vn -0.5231 0.8461 0.1028 +vn -0.5557 0.8160 0.1594 +vn -0.6571 0.7536 -0.0187 +vn -0.6862 0.7268 0.0317 +vn -0.5870 0.7808 0.2138 +vn -0.6169 0.7409 0.2655 +vn -0.7141 0.6954 0.0801 +vn -0.7407 0.6599 0.1262 +vn -0.6451 0.6964 0.3145 +vn -0.6715 0.6475 0.3602 +vn -0.7658 0.6202 0.1698 +vn -0.7893 0.5768 0.2105 +vn -0.6959 0.5947 0.4025 +vn -0.7182 0.5383 0.4410 +vn -0.8111 0.5297 0.2481 +vn -0.8309 0.4794 0.2825 +vn -0.7381 0.4785 0.4757 +vn -0.7557 0.4158 0.5061 +vn -0.8486 0.4262 0.3133 +vn -0.8643 0.3703 0.3404 +vn -0.7707 0.3505 0.5322 +vn -0.7832 0.2830 0.5537 +vn -0.8777 0.3121 0.3637 +vn -0.8888 0.2520 0.3829 +vn -0.7929 0.2138 0.5706 +vn -0.7999 0.1433 0.5827 +vn -0.8974 0.1904 0.3979 +vn -0.9037 0.1276 0.4087 +vn -0.8042 0.0718 0.5901 +vn -0.8056 -0.0000 0.5925 +vn -0.9075 0.0640 0.4153 +vn -0.9087 0.0000 0.4174 +vn -0.4994 -0.7965 0.3409 +vn -0.5938 -0.6897 0.4144 +vn -0.6363 -0.6905 0.3440 +vn -0.5222 -0.8078 0.2734 +vn -0.6104 -0.6606 0.4370 +vn -0.6544 -0.6620 0.3656 +vn -0.6921 -0.6599 0.2923 +vn -0.6723 -0.6883 0.2726 +vn -0.5539 -0.8038 0.2170 +vn -0.6988 -0.6880 0.1957 +vn -0.5639 -0.8112 0.1549 +vn -0.7240 -0.6559 0.2135 +vn -0.7119 -0.6906 0.1276 +vn -0.5512 -0.8287 0.0975 +vn -0.7187 -0.6930 0.0571 +vn -0.5540 -0.8310 0.0497 +vn -0.7534 -0.6563 0.0406 +vn -0.7164 -0.6975 -0.0156 +vn -0.7500 -0.6606 -0.0349 +vn -0.5471 -0.8370 -0.0020 +vn -0.7111 -0.6982 -0.0825 +vn -0.5377 -0.8415 -0.0518 +vn -0.7442 -0.6600 -0.1031 +vn -0.7040 -0.6948 -0.1470 +vn -0.5502 -0.8284 -0.1054 +vn -0.6942 -0.6883 -0.2105 +vn -0.5624 -0.8107 -0.1626 +vn -0.6758 -0.6873 -0.2662 +vn -0.5554 -0.8031 -0.2159 +vn -0.4593 -0.8087 -0.3676 +vn -0.5674 -0.6894 -0.4503 +vn -0.5270 -0.6906 -0.4953 +vn -0.4147 -0.8183 -0.3980 +vn -0.4778 -0.6960 -0.5360 +vn -0.3583 -0.8366 -0.4145 +vn -0.4915 -0.6356 -0.5954 +vn -0.4593 -0.6652 -0.5886 +vn -0.5235 -0.6072 -0.5977 +vn -0.4479 -0.6288 -0.6356 +vn -0.4066 -0.6669 -0.6244 +vn -0.3993 -0.6203 -0.6751 +vn -0.3449 -0.6640 -0.6634 +vn -0.1674 -0.6269 -0.7609 +vn -0.1839 -0.6677 -0.7214 +vn -0.0846 -0.6395 -0.7641 +vn -0.0971 -0.6769 -0.7297 +vn -0.0020 -0.6483 -0.7614 +vn -0.0134 -0.6823 -0.7309 +vn 0.0793 -0.6531 -0.7531 +vn 0.0685 -0.6834 -0.7268 +vn 0.0567 -0.7188 -0.6929 +vn 0.1376 -0.7069 -0.6938 +vn 0.0904 -0.8749 -0.4758 +vn 0.0282 -0.9069 -0.4203 +vn 0.1484 -0.6794 -0.7186 +vn 0.2162 -0.7014 -0.6792 +vn 0.2267 -0.6763 -0.7009 +vn 0.1602 -0.8470 -0.5069 +vn 0.3709 -0.8368 -0.4027 +vn 0.4828 -0.6984 -0.5283 +vn 0.5359 -0.7026 -0.4682 +vn 0.4019 -0.8487 -0.3438 +vn 0.4965 -0.6746 -0.5463 +vn 0.5535 -0.6717 -0.4924 +vn 0.6052 -0.6705 -0.4293 +vn 0.5820 -0.7073 -0.4012 +vn 0.4173 -0.8652 -0.2780 +vn 0.6189 -0.6444 -0.4492 +vn 0.6659 -0.6411 -0.3815 +vn 0.6475 -0.6732 -0.3573 +vn 0.7077 -0.6354 -0.3089 +vn 0.6855 -0.6712 -0.2821 +vn 0.7447 -0.6248 -0.2346 +vn 0.7207 -0.6627 -0.2033 +vn 0.7807 -0.6249 0.0034 +vn 0.7518 -0.6586 -0.0334 +vn 0.7683 -0.6367 0.0660 +vn 0.7465 -0.6642 0.0397 +vn 0.4081 -0.6574 0.6335 +vn 0.4408 -0.6316 0.6377 +vn 0.3898 -0.6215 0.6795 +vn 0.3427 -0.6507 0.6776 +vn 0.1632 -0.6195 0.7678 +vn 0.1796 -0.6495 0.7389 +vn 0.0815 -0.6252 0.7762 +vn 0.0946 -0.6546 0.7501 +vn 0.5655 -0.7279 0.3878 +vn 0.2454 -0.9547 0.1685 +vn 0.2472 -0.9584 0.1428 +vn 0.5871 -0.7347 0.3399 +vn 0.5303 -0.7298 0.4315 +vn 0.2274 -0.9555 0.1878 +vn -0.1800 -0.9758 -0.1245 +vn -0.1686 -0.9758 -0.1390 +vn -0.1917 -0.9751 -0.1114 +vn 0.6280 -0.7399 0.2411 +vn 0.6131 -0.7327 0.2953 +vn 0.2597 -0.9577 0.1239 +vn 0.2601 -0.9606 0.0975 +vn -0.2007 -0.9749 -0.0964 +vn -0.2095 -0.9746 -0.0787 +vn -0.1845 -0.7822 0.5951 +vn -0.2458 -0.7897 0.5621 +vn -0.0874 -0.9755 0.2019 +vn -0.0669 -0.9729 0.2213 +vn -0.2993 -0.7989 0.5217 +vn -0.1022 -0.9785 0.1792 +vn 0.0855 -0.9771 -0.1947 +vn 0.1067 -0.9770 -0.1845 +vn 0.0630 -0.9770 -0.2039 +vn 0.3108 -0.8507 -0.4239 +vn 0.0729 -0.9925 -0.0985 +vn 0.0505 -0.9951 -0.0848 +vn 0.2527 -0.8640 -0.4354 +vn 0.0981 -0.9896 -0.1054 +vn -0.1264 -0.9765 0.1747 +vn -0.1460 -0.9766 0.1582 +vn -0.1083 -0.9761 0.1883 +vn -0.3539 -0.8003 0.4840 +vn -0.1211 -0.9788 0.1654 +vn -0.4095 -0.7956 0.4465 +vn -0.1454 -0.9768 0.1572 +vn 0.1245 -0.9776 -0.1697 +vn 0.1411 -0.9780 -0.1540 +vn 0.2119 -0.8514 -0.4798 +vn 0.0478 -0.9928 -0.1099 +vn 0.0394 -0.9918 -0.1216 +vn -0.0870 -0.9768 0.1955 +vn -0.0624 -0.9774 0.2021 +vn -0.5243 -0.8127 -0.2541 +vn -0.1707 -0.9819 -0.0824 +vn -0.1935 -0.9783 -0.0741 +vn -0.4932 -0.8226 -0.2830 +vn -0.1480 -0.9854 -0.0845 +vn 0.1871 -0.9781 0.0917 +vn 0.1834 -0.9773 0.1060 +vn 0.1919 -0.9785 0.0750 +vn -0.4797 -0.8156 -0.3235 +vn -0.1509 -0.9833 -0.1022 +vn -0.1517 -0.9808 -0.1227 +vn 0.1753 -0.9775 0.1177 +vn 0.1623 -0.9782 0.1295 +vn -0.4590 -0.7942 0.3983 +vn -0.1631 -0.9768 0.1388 +vn -0.1707 -0.9788 0.1133 +vn 0.1595 -0.9773 -0.1391 +vn 0.1781 -0.9765 -0.1212 +vn -0.1653 -0.9827 0.0831 +vn -0.1773 -0.9819 0.0662 +vn 0.1931 -0.9759 -0.1013 +vn 0.2045 -0.9756 -0.0803 +vn -0.1680 -0.9848 0.0443 +vn -0.1416 -0.9896 0.0247 +vn 0.2167 -0.9745 -0.0587 +vn 0.2260 -0.9733 -0.0395 +vn -0.1426 -0.9897 0.0154 +vn -0.1377 -0.9905 0.0031 +vn 0.2247 -0.9744 0.0015 +vn 0.2280 -0.9735 -0.0198 +vn -0.1322 -0.9912 -0.0095 +vn -0.1550 -0.9876 -0.0269 +vn 0.2140 -0.9760 0.0404 +vn 0.2207 -0.9751 0.0216 +vn -0.1834 -0.9817 -0.0504 +vn 0.2029 -0.9775 0.0581 +vn -0.1246 -0.9846 -0.1225 +vn -0.0880 -0.9906 -0.1051 +vn 0.1524 -0.9773 0.1472 +vn 0.1421 -0.9758 0.1662 +vn -0.3059 -0.8495 -0.4298 +vn -0.0610 -0.9940 -0.0904 +vn -0.2661 -0.8487 -0.4570 +vn -0.0509 -0.9943 -0.0940 +vn 0.1289 -0.9748 0.1819 +vn 0.1133 -0.9741 0.1956 +vn -0.2215 -0.8509 -0.4763 +vn -0.0403 -0.9950 -0.0910 +vn -0.1749 -0.8607 -0.4781 +vn -0.0284 -0.9966 -0.0769 +vn 0.0955 -0.9733 0.2088 +vn 0.0780 -0.9726 0.2188 +vn -0.1253 -0.8735 -0.4705 +vn -0.0190 -0.9975 -0.0681 +vn -0.0735 -0.8957 -0.4385 +vn -0.0093 -0.9995 -0.0291 +vn 0.0565 -0.9737 0.2209 +vn 0.0322 -0.9745 0.2219 +vn -0.0232 -0.9165 -0.3994 +vn -0.0027 -0.9999 0.0168 +vn -0.0002 -1.0000 0.0016 +vn 0.0098 -0.9746 0.2236 +vn -0.0134 -0.9751 0.2214 +vn 0.0133 -0.9978 -0.0656 +vn -0.0380 -0.9764 0.2127 +vn 0.0919 -0.9928 -0.0766 +vn 0.0719 -0.9964 -0.0456 +vn -0.1688 -0.9752 0.1428 +vn -0.1890 -0.9739 0.1259 +vn 0.4461 -0.8654 -0.2280 +vn 0.0738 -0.9967 -0.0339 +vn 0.5005 -0.8444 -0.1911 +vn 0.1124 -0.9929 -0.0394 +vn -0.2036 -0.9732 0.1067 +vn -0.2153 -0.9728 0.0854 +vn 0.5380 -0.8305 -0.1445 +vn 0.1319 -0.9907 -0.0337 +vn 0.5493 -0.8298 -0.0987 +vn 0.1294 -0.9913 -0.0239 +vn -0.2286 -0.9715 0.0633 +vn -0.2383 -0.9702 0.0438 +vn 0.5737 -0.8174 -0.0511 +vn 0.1534 -0.9880 -0.0165 +vn 0.5880 -0.8088 0.0050 +vn 0.1725 -0.9850 -0.0029 +vn -0.2365 -0.9716 -0.0003 +vn -0.2390 -0.9707 0.0234 +vn 0.5816 -0.8114 0.0584 +vn 0.1685 -0.9856 0.0130 +vn 0.5947 -0.7957 0.1148 +vn 0.1906 -0.9811 0.0334 +vn -0.2283 -0.9727 -0.0419 +vn -0.2334 -0.9721 -0.0225 +vn 0.6198 -0.7643 0.1782 +vn 0.2322 -0.9706 0.0635 +vn -0.2196 -0.9737 -0.0604 +vn 0.4704 -0.7554 0.4562 +vn 0.1819 -0.9665 0.1812 +vn 0.4049 -0.7862 0.4668 +vn 0.1331 -0.9782 0.1594 +vn -0.1599 -0.9746 -0.1571 +vn -0.1506 -0.9729 -0.1755 +vn 0.3511 -0.8004 0.4859 +vn 0.1070 -0.9820 0.1555 +vn 0.3083 -0.7940 0.5240 +vn 0.0975 -0.9798 0.1744 +vn -0.1373 -0.9722 -0.1898 +vn -0.1186 -0.9720 -0.2028 +vn 0.2522 -0.8000 0.5444 +vn 0.0755 -0.9828 0.1687 +vn 0.2008 -0.8098 0.5513 +vn 0.0575 -0.9861 0.1561 +vn -0.0990 -0.9711 -0.2171 +vn -0.0819 -0.9706 -0.2265 +vn 0.1568 -0.7905 0.5920 +vn 0.0540 -0.9796 0.1938 +vn 0.0939 -0.7717 0.6290 +vn 0.0384 -0.9716 0.2335 +vn -0.0341 -0.9740 -0.2242 +vn -0.0612 -0.9722 -0.2259 +vn 0.0238 -0.7865 0.6171 +vn 0.0119 -0.9762 0.2167 +vn -0.0442 -0.7936 0.6068 +vn -0.0118 -0.9783 0.2068 +vn 0.0169 -0.9747 -0.2228 +vn -0.0076 -0.9743 -0.2251 +vn -0.1133 -0.7897 0.6029 +vn -0.0370 -0.9764 0.2126 +vn 0.0404 -0.9759 -0.2146 +vn -0.3376 -0.8989 -0.2794 +vn -0.3608 -0.8988 -0.2489 +vn -0.5631 -0.6815 -0.4674 +vn -0.6017 -0.6831 -0.4141 +vn -0.3787 -0.8991 -0.2195 +vn -0.6308 -0.6850 -0.3646 +vn -0.3938 -0.8996 -0.1886 +vn -0.6555 -0.6872 -0.3133 +vn -0.4085 -0.8999 -0.1527 +vn -0.6796 -0.6885 -0.2531 +vn 0.2151 -0.9027 -0.3726 +vn 0.1729 -0.9027 -0.3941 +vn 0.3605 -0.6922 -0.6252 +vn 0.2908 -0.6901 -0.6627 +vn 0.1269 -0.9021 -0.4124 +vn 0.2128 -0.6885 -0.6934 +vn -0.2937 -0.9017 0.3174 +vn -0.2532 -0.9018 0.3501 +vn -0.4929 -0.6891 0.5313 +vn -0.4240 -0.6900 0.5866 +vn -0.2157 -0.9020 0.3741 +vn -0.3610 -0.6914 0.6258 +vn 0.2895 -0.9036 -0.3157 +vn 0.2531 -0.9035 -0.3458 +vn 0.4886 -0.6909 -0.5328 +vn 0.4258 -0.6918 -0.5832 +vn -0.1754 -0.9027 0.3929 +vn -0.2949 -0.6916 0.6594 +vn -0.2122 -0.6917 0.6903 +vn -0.1262 -0.9033 0.4101 +vn 0.3664 -0.9061 0.2114 +vn 0.3788 -0.9067 0.1857 +vn 0.6200 -0.6985 0.3575 +vn 0.6426 -0.6980 0.3161 +vn 0.3932 -0.9067 0.1527 +vn 0.6682 -0.6975 0.2588 +vn 0.3293 -0.9065 0.2643 +vn 0.3521 -0.9057 0.2360 +vn 0.5579 -0.6977 0.4494 +vn 0.5952 -0.6980 0.3981 +vn 0.3509 -0.9057 -0.2379 +vn 0.3216 -0.9047 -0.2795 +vn 0.5922 -0.6994 -0.4002 +vn 0.5441 -0.6942 -0.4712 +vn 0.3915 -0.9074 -0.1531 +vn 0.3745 -0.9063 -0.1961 +vn 0.6592 -0.7070 -0.2562 +vn 0.6309 -0.7024 -0.3295 +vn 0.4124 -0.9081 -0.0719 +vn 0.4046 -0.9080 -0.1088 +vn 0.6908 -0.7131 -0.1199 +vn 0.6790 -0.7114 -0.1811 +vn 0.4187 -0.9081 0.0024 +vn 0.4179 -0.9077 -0.0371 +vn 0.7021 -0.7121 0.0030 +vn 0.6969 -0.7144 -0.0628 +vn 0.4133 -0.9074 0.0763 +vn 0.4176 -0.9077 0.0401 +vn 0.6979 -0.7049 0.1267 +vn 0.7027 -0.7084 0.0662 +vn 0.4051 -0.9071 0.1145 +vn 0.6874 -0.7004 0.1921 +vn 0.2720 -0.9073 0.3206 +vn 0.3018 -0.9069 0.2940 +vn 0.4571 -0.7052 0.5420 +vn 0.5093 -0.7007 0.4996 +vn 0.2095 -0.9079 0.3631 +vn 0.2424 -0.9074 0.3433 +vn 0.3493 -0.7126 0.6084 +vn 0.4061 -0.7084 0.5773 +vn 0.1412 -0.9073 0.3961 +vn 0.1738 -0.9080 0.3812 +vn 0.2359 -0.7130 0.6603 +vn 0.2893 -0.7143 0.6372 +vn 0.0615 -0.9061 0.4186 +vn 0.1049 -0.9071 0.4076 +vn 0.1040 -0.7059 0.7006 +vn 0.1766 -0.7108 0.6808 +vn -0.0252 -0.9042 0.4264 +vn 0.0187 -0.9048 0.4255 +vn -0.0411 -0.6983 0.7146 +vn 0.0319 -0.7011 0.7124 +vn -0.0742 -0.9037 0.4216 +vn -0.1233 -0.6944 0.7090 +vn -0.3622 -0.9006 0.2402 +vn -0.3317 -0.9011 0.2794 +vn -0.6025 -0.6916 0.3983 +vn -0.5545 -0.6901 0.4651 +vn -0.4032 -0.9012 0.1592 +vn -0.3853 -0.9005 0.2015 +vn -0.6680 -0.6964 0.2624 +vn -0.6393 -0.6928 0.3336 +vn -0.4267 -0.9010 0.0782 +vn -0.4177 -0.9013 0.1146 +vn -0.7022 -0.7003 0.1283 +vn -0.6893 -0.6998 0.1874 +vn -0.4349 -0.9005 -0.0001 +vn -0.4318 -0.9010 0.0431 +vn -0.7153 -0.6988 0.0010 +vn -0.7091 -0.7014 0.0718 +vn -0.4295 -0.8997 -0.0778 +vn -0.4340 -0.9000 -0.0415 +vn -0.7115 -0.6910 -0.1278 +vn -0.7168 -0.6940 -0.0676 +vn -0.4209 -0.8998 -0.1148 +vn -0.6990 -0.6896 -0.1893 +vn -0.2839 -0.8993 -0.3328 +vn -0.3113 -0.8989 -0.3083 +vn -0.4691 -0.6889 -0.5526 +vn -0.5167 -0.6841 -0.5149 +vn -0.2179 -0.9015 -0.3739 +vn -0.2545 -0.9002 -0.3534 +vn -0.3594 -0.6986 -0.6187 +vn -0.4203 -0.6932 -0.5855 +vn -0.1479 -0.9012 -0.4073 +vn -0.1788 -0.9017 -0.3936 +vn -0.2446 -0.6994 -0.6715 +vn -0.2944 -0.7011 -0.6495 +vn -0.0657 -0.9023 -0.4262 +vn -0.1140 -0.9018 -0.4168 +vn -0.1106 -0.6967 -0.7088 +vn -0.1903 -0.6989 -0.6895 +vn 0.0319 -0.9016 -0.4314 +vn -0.0150 -0.9017 -0.4321 +vn 0.0522 -0.6918 -0.7202 +vn -0.0257 -0.6932 -0.7203 +vn 0.0791 -0.9017 -0.4250 +vn 0.1312 -0.6895 -0.7123 +vn -0.7305 -0.3132 -0.6068 +vn -0.7819 -0.3163 -0.5372 +vn -0.7613 -0.1447 -0.6321 +vn -0.8151 -0.1488 -0.5599 +vn -0.8202 -0.3214 -0.4733 +vn -0.8558 -0.1537 -0.4939 +vn -0.8538 -0.3236 -0.4079 +vn -0.8910 -0.1563 -0.4263 +vn -0.9250 -0.1578 -0.3456 +vn -0.8861 -0.3257 -0.3298 +vn 0.4721 -0.3258 -0.8191 +vn 0.3807 -0.3220 -0.8668 +vn 0.4935 -0.1550 -0.8558 +vn 0.3984 -0.1511 -0.9047 +vn 0.2779 -0.3196 -0.9059 +vn 0.2914 -0.1488 -0.9450 +vn -0.6439 -0.3219 0.6941 +vn -0.5538 -0.3241 0.7670 +vn -0.6711 -0.1521 0.7256 +vn -0.5776 -0.1548 0.8015 +vn -0.4722 -0.3275 0.8184 +vn -0.4933 -0.1585 0.8553 +vn 0.6400 -0.3214 -0.6979 +vn 0.5576 -0.3243 -0.7641 +vn 0.6680 -0.1498 -0.7289 +vn 0.5824 -0.1535 -0.7983 +vn -0.3865 -0.3259 0.8628 +vn -0.4039 -0.1564 0.9013 +vn -0.2780 -0.3238 0.9044 +vn -0.2905 -0.1526 0.9446 +vn 0.8163 -0.3346 0.4708 +vn 0.8462 -0.3320 0.4169 +vn 0.8548 -0.1629 0.4928 +vn 0.8854 -0.1595 0.4365 +vn 0.8806 -0.3295 0.3406 +vn 0.9211 -0.1563 0.3565 +vn 0.7350 -0.3301 0.5923 +vn 0.7844 -0.3321 0.5239 +vn 0.7694 -0.1573 0.6191 +vn 0.8212 -0.1601 0.5478 +vn 0.7811 -0.3341 -0.5276 +vn 0.7151 -0.3256 -0.6185 +vn 0.8168 -0.1610 -0.5539 +vn 0.7468 -0.1532 -0.6471 +vn 0.8741 -0.3473 -0.3396 +vn 0.8336 -0.3398 -0.4354 +vn 0.9169 -0.1746 -0.3589 +vn 0.8728 -0.1671 -0.4585 +vn 0.9194 -0.3596 -0.1591 +vn 0.9033 -0.3556 -0.2401 +vn 0.9678 -0.1882 -0.1672 +vn 0.9498 -0.1834 -0.2536 +vn 0.9340 -0.3572 0.0037 +vn 0.9287 -0.3612 -0.0838 +vn 0.9828 -0.1846 0.0065 +vn 0.9781 -0.1894 -0.0867 +vn 0.9244 -0.3431 0.1669 +vn 0.9328 -0.3495 0.0876 +vn 0.9696 -0.1695 0.1766 +vn 0.9797 -0.1768 0.0940 +vn 0.9081 -0.3344 0.2522 +vn 0.9509 -0.1605 0.2646 +vn 0.6045 -0.3446 0.7183 +vn 0.6716 -0.3354 0.6607 +vn 0.6356 -0.1717 0.7526 +vn 0.7042 -0.1621 0.6913 +vn 0.4648 -0.3589 0.8094 +vn 0.5383 -0.3513 0.7660 +vn 0.4917 -0.1877 0.8503 +vn 0.5676 -0.1793 0.8036 +vn 0.3140 -0.3613 0.8780 +vn 0.3850 -0.3630 0.8485 +vn 0.3311 -0.1902 0.9242 +vn 0.4072 -0.1924 0.8928 +vn 0.1379 -0.3473 0.9276 +vn 0.2351 -0.3567 0.9042 +vn 0.1426 -0.1757 0.9741 +vn 0.2468 -0.1851 0.9512 +vn -0.0538 -0.3346 0.9408 +vn 0.0419 -0.3400 0.9395 +vn -0.0580 -0.1625 0.9850 +vn 0.0419 -0.1680 0.9849 +vn -0.1612 -0.3272 0.9311 +vn -0.1693 -0.1553 0.9733 +vn -0.7880 -0.3288 0.5205 +vn -0.7250 -0.3249 0.6072 +vn -0.8228 -0.1597 0.5455 +vn -0.7564 -0.1553 0.6354 +vn -0.8761 -0.3381 0.3438 +vn -0.8364 -0.3316 0.4364 +vn -0.9166 -0.1694 0.3620 +vn -0.8738 -0.1628 0.4582 +vn -0.9224 -0.3477 0.1680 +vn -0.9060 -0.3447 0.2456 +vn -0.9678 -0.1803 0.1758 +vn -0.9498 -0.1768 0.2582 +vn -0.9390 -0.3439 0.0013 +vn -0.9324 -0.3488 0.0943 +vn -0.9844 -0.1760 -0.0018 +vn -0.9786 -0.1815 0.0970 +vn -0.9291 -0.3302 -0.1666 +vn -0.9378 -0.3358 -0.0884 +vn -0.9709 -0.1626 -0.1761 +vn -0.9813 -0.1672 -0.0950 +vn -0.9120 -0.3278 -0.2465 +vn -0.9525 -0.1597 -0.2592 +vn -0.6111 -0.3261 -0.7213 +vn -0.6707 -0.3175 -0.6704 +vn -0.6393 -0.1570 -0.7527 +vn -0.6999 -0.1483 -0.6987 +vn -0.4720 -0.3421 -0.8125 +vn -0.5495 -0.3336 -0.7660 +vn -0.4972 -0.1729 -0.8502 +vn -0.5768 -0.1642 -0.8002 +vn -0.3217 -0.3450 -0.8817 +vn -0.3872 -0.3467 -0.8543 +vn -0.3376 -0.1772 -0.9244 +vn -0.4076 -0.1786 -0.8955 +vn -0.1457 -0.3362 -0.9305 +vn -0.2511 -0.3421 -0.9055 +vn -0.1502 -0.1669 -0.9745 +vn -0.2624 -0.1734 -0.9492 +vn 0.0682 -0.3269 -0.9426 +vn -0.0336 -0.3301 -0.9433 +vn 0.0731 -0.1565 -0.9850 +vn -0.0330 -0.1599 -0.9866 +vn 0.1710 -0.3228 -0.9309 +vn 0.1801 -0.1522 -0.9718 +vn -0.9541 -0.0479 -0.2955 +vn -0.9549 -0.0268 -0.2958 +vn -0.9414 -0.0281 -0.3361 +vn -0.9394 -0.0579 -0.3379 +vn -0.9558 -0.0000 -0.2941 +vn -0.9427 0.0000 -0.3336 +vn -0.9473 -0.0895 -0.3076 +vn -0.9561 -0.0724 -0.2841 +vn -0.9265 -0.1066 -0.3609 +vn -0.9351 -0.1287 -0.3302 +vn -0.9410 -0.1089 -0.3204 +vn -0.9322 -0.0840 -0.3521 +vn -0.9194 -0.1662 -0.3565 +vn -0.9266 -0.1490 -0.3452 +vn -0.9172 -0.1292 -0.3768 +vn -0.9073 -0.1520 -0.3921 +vn -0.9013 -0.1937 -0.3874 +vn -0.9122 -0.1929 -0.3615 +vn -0.8805 -0.1751 -0.4406 +vn -0.8807 -0.2094 -0.4248 +vn -0.8903 -0.2020 -0.4081 +vn -0.8918 -0.1655 -0.4210 +vn -0.8551 -0.2232 -0.4679 +vn -0.8689 -0.2150 -0.4459 +vn -0.8676 -0.1799 -0.4636 +vn -0.8518 -0.1863 -0.4896 +vn -0.8354 -0.2228 -0.5025 +vn -0.8413 -0.2410 -0.4838 +vn -0.8237 -0.1754 -0.5392 +vn -0.8106 -0.2087 -0.5471 +vn -0.8237 -0.2149 -0.5248 +vn -0.8373 -0.1797 -0.5163 +vn -0.7884 -0.1931 -0.5841 +vn -0.8005 -0.2000 -0.5650 +vn -0.8117 -0.1661 -0.5600 +vn -0.7958 -0.1536 -0.5857 +vn -0.7716 -0.1680 -0.6136 +vn -0.7716 -0.1933 -0.6060 +vn -0.7775 -0.1069 -0.6197 +vn -0.7563 -0.1288 -0.6414 +vn -0.7646 -0.1486 -0.6272 +vn -0.7862 -0.1289 -0.6044 +vn -0.7430 -0.0892 -0.6634 +vn -0.7506 -0.1081 -0.6519 +vn -0.7722 -0.0854 -0.6297 +vn -0.7631 -0.0582 -0.6436 +vn -0.7367 -0.0477 -0.6745 +vn -0.7288 -0.0732 -0.6808 +vn -0.7620 -0.0000 -0.6476 +vn -0.7353 -0.0000 -0.6777 +vn -0.7369 -0.0266 -0.6755 +vn -0.7629 -0.0281 -0.6459 +vn -0.7910 -0.0714 -0.6077 +vn -0.7879 -0.0481 -0.6139 +vn -0.7961 -0.0915 -0.5982 +vn -0.8097 -0.0638 -0.5834 +vn -0.8132 -0.0835 -0.5759 +vn -0.8076 -0.0398 -0.5883 +vn -0.8968 -0.0742 -0.4361 +vn -0.8993 -0.0571 -0.4336 +vn -0.8884 -0.0565 -0.4555 +vn -0.8868 -0.0743 -0.4561 +vn -0.9058 -0.0799 -0.4161 +vn -0.9098 -0.0594 -0.4109 +vn -0.9129 -0.0384 -0.4065 +vn -0.9018 -0.0356 -0.4308 +vn -0.8899 -0.0336 -0.4550 +vn -0.9024 -0.0199 -0.4304 +vn -0.8905 -0.0181 -0.4547 +vn -0.9140 -0.0229 -0.4051 +vn -0.9027 -0.0000 -0.4303 +vn -0.9145 -0.0000 -0.4045 +vn -0.8906 -0.0000 -0.4548 +vn -0.8639 -0.0739 -0.4982 +vn -0.8538 -0.0739 -0.5154 +vn -0.8531 -0.0971 -0.5127 +vn -0.8622 -0.0969 -0.4972 +vn -0.8408 -0.0738 -0.5363 +vn -0.8405 -0.0967 -0.5332 +vn -0.8378 -0.1238 -0.5318 +vn -0.8498 -0.1254 -0.5119 +vn -0.8598 -0.1250 -0.4950 +vn -0.8542 -0.0552 -0.5171 +vn -0.8415 -0.0559 -0.5374 +vn -0.8650 -0.0552 -0.4987 +vn -0.8546 -0.0323 -0.5184 +vn -0.8658 -0.0321 -0.4993 +vn -0.8414 -0.0329 -0.5394 +vn -0.8547 -0.0168 -0.5189 +vn -0.8410 -0.0175 -0.5407 +vn -0.8662 -0.0165 -0.4994 +vn -0.8548 0.0000 -0.5190 +vn -0.8664 -0.0000 -0.4993 +vn -0.8410 0.0000 -0.5410 +vn -0.8324 -0.1497 -0.5336 +vn -0.8448 -0.1532 -0.5127 +vn -0.8564 -0.1544 -0.4927 +vn -0.8818 -0.1221 -0.4556 +vn -0.8811 -0.1474 -0.4493 +vn -0.8894 -0.1396 -0.4353 +vn -0.8892 -0.1193 -0.4418 +vn -0.9002 -0.1279 -0.4162 +vn -0.8937 -0.1166 -0.4332 +vn -0.8680 -0.1535 -0.4722 +vn -0.8708 -0.1245 -0.4757 +vn -0.8732 -0.0967 -0.4777 +vn -0.8838 -0.0968 -0.4578 +vn -0.8753 -0.0735 -0.4779 +vn -0.8764 -0.0553 -0.4785 +vn -0.8774 -0.0324 -0.4788 +vn -0.8778 -0.0169 -0.4787 +vn -0.8779 -0.0000 -0.4788 +vn -0.9095 -0.1111 -0.4007 +vn -0.9160 -0.0910 -0.3908 +vn -0.9013 -0.0973 -0.4221 +vn -0.8268 -0.0780 -0.5571 +vn -0.8267 -0.0588 -0.5596 +vn -0.8256 -0.0348 -0.5632 +vn -0.8247 -0.0190 -0.5653 +vn -0.8064 -0.0217 -0.5909 +vn -0.8244 0.0000 -0.5659 +vn -0.8058 0.0000 -0.5922 +vn -0.8918 -0.0954 -0.4422 +vn -0.8200 -0.1137 -0.5610 +vn -0.8270 -0.1177 -0.5498 +vn -0.8278 -0.0963 -0.5526 +vn -0.8163 -0.0972 -0.5694 +vn -0.8213 -0.1396 -0.5532 +vn -0.8113 -0.1282 -0.5704 +vn -0.9226 -0.0673 -0.3799 +vn -0.9253 -0.0469 -0.3764 +vn -0.9270 -0.0274 -0.3741 +vn -0.9281 0.0000 -0.3725 +vn -0.7851 -0.0000 -0.6194 +vn -0.7857 -0.0254 -0.6181 +vn -0.8034 -0.1106 -0.5850 +vn -0.5430 -0.6893 0.4795 +vn -0.5581 -0.6612 0.5014 +vn -0.4870 -0.6893 0.5364 +vn -0.4993 -0.6658 0.5545 +vn -0.4259 -0.6896 0.5857 +vn -0.4364 -0.6678 0.6030 +vn -0.3609 -0.6884 0.6291 +vn -0.3704 -0.6676 0.6458 +vn -0.2930 -0.6862 0.6659 +vn -0.3018 -0.6663 0.6819 +vn -0.2189 -0.6858 0.6941 +vn -0.2278 -0.6655 0.7107 +vn -0.1412 -0.6876 0.7122 +vn -0.1521 -0.6627 0.7333 +vn -0.0603 -0.6905 0.7208 +vn -0.0711 -0.6616 0.7465 +vn -0.7067 -0.6333 0.3154 +vn -0.7422 -0.6249 0.2422 +vn 0.0202 -0.6885 0.7250 +vn 0.0117 -0.6589 0.7521 +vn 0.1019 -0.6839 0.7224 +vn 0.1822 -0.6810 0.7093 +vn 0.2485 -0.6822 0.6876 +vn 0.3128 -0.6841 0.6589 +vn 0.3774 -0.6891 0.6187 +vn 0.4349 -0.6900 0.5786 +vn 0.4637 -0.6600 0.5911 +vn 0.4863 -0.6857 0.5416 +vn 0.5109 -0.6597 0.5512 +vn 0.5327 -0.6809 0.5027 +vn 0.5522 -0.6602 0.5092 +vn 0.5747 -0.6764 0.4607 +vn 0.5882 -0.6616 0.4651 +vn 0.6084 -0.6763 0.4153 +vn 0.6230 -0.6591 0.4212 +vn 0.6367 -0.6772 0.3686 +vn 0.6499 -0.6601 0.3766 +vn 0.6623 -0.6768 0.3213 +vn 0.6742 -0.6611 0.3293 +vn 0.6839 -0.6782 0.2688 +vn 0.6970 -0.6603 0.2798 +vn 0.6996 -0.6826 0.2112 +vn 0.7156 -0.6611 0.2254 +vn 0.7101 -0.6880 0.1498 +vn 0.7300 -0.6626 0.1674 +vn 0.7176 -0.6910 0.0869 +vn 0.7396 -0.6647 0.1059 +vn 0.7220 -0.6916 0.0202 +vn 0.7212 -0.6907 -0.0525 +vn 0.7112 -0.6923 -0.1222 +vn 0.6917 -0.6975 -0.1872 +vn 0.6609 -0.7037 -0.2608 +vn 0.6228 -0.7089 -0.3310 +vn 0.4199 -0.7039 -0.5729 +vn 0.4344 -0.6782 -0.5928 +vn 0.3528 -0.7092 -0.6104 +vn 0.3677 -0.6786 -0.6359 +vn 0.2892 -0.7023 -0.6505 +vn 0.2986 -0.6781 -0.6715 +vn -0.0234 -0.7249 -0.6885 +vn -0.1029 -0.7201 -0.6862 +vn -0.1820 -0.7117 -0.6785 +vn -0.2490 -0.7019 -0.6674 +vn -0.3104 -0.7009 -0.6422 +vn -0.3705 -0.7029 -0.6072 +vn -0.4249 -0.7014 -0.5723 +vn -0.5993 -0.6914 -0.4035 +vn -0.6247 -0.6936 -0.3587 +vn -0.6512 -0.6900 -0.3161 +vn -0.7805 -0.6252 0.0021 +vn -0.7705 -0.6343 -0.0630 +vn -0.7592 -0.6387 -0.1250 +vn -0.7768 -0.6115 -0.1503 +vn 0.0015 -0.8889 0.4581 +vn -0.0344 -0.8889 0.4569 +vn -0.0303 -0.9150 0.4022 +vn 0.0016 -0.9152 0.4030 +vn -0.0706 -0.8889 0.4527 +vn -0.0630 -0.9149 0.3988 +vn -0.0272 -0.9372 0.3478 +vn -0.0558 -0.9369 0.3451 +vn 0.0007 -0.9375 0.3481 +vn -0.1058 -0.8889 0.4458 +vn -0.0952 -0.9151 0.3918 +vn -0.1406 -0.8890 0.4358 +vn -0.1260 -0.9154 0.3824 +vn -0.0842 -0.9372 0.3385 +vn -0.1113 -0.9376 0.3294 +vn -0.1744 -0.8891 0.4233 +vn -0.1550 -0.9153 0.3718 +vn -0.2066 -0.8891 0.4085 +vn -0.1825 -0.9153 0.3591 +vn -0.1357 -0.9375 0.3205 +vn -0.1589 -0.9374 0.3097 +vn -0.2376 -0.8892 0.3911 +vn -0.2089 -0.9154 0.3441 +vn -0.2671 -0.8893 0.3713 +vn -0.2345 -0.9155 0.3270 +vn -0.1809 -0.9375 0.2972 +vn -0.2025 -0.9376 0.2826 +vn -0.2954 -0.8893 0.3491 +vn -0.2599 -0.9153 0.3076 +vn -0.3222 -0.8893 0.3245 +vn -0.2843 -0.9151 0.2859 +vn -0.2466 -0.9371 0.2471 +vn -0.2252 -0.9373 0.2659 +vn -0.3467 -0.8893 0.2981 +vn -0.3062 -0.9155 0.2611 +vn -0.3691 -0.8895 0.2693 +vn -0.3256 -0.9157 0.2354 +vn -0.2658 -0.9374 0.2248 +vn -0.2824 -0.9379 0.2016 +vn -0.3890 -0.8895 0.2397 +vn -0.3428 -0.9157 0.2097 +vn -0.4063 -0.8896 0.2088 +vn -0.3577 -0.9157 0.1833 +vn -0.2969 -0.9378 0.1800 +vn -0.3094 -0.9378 0.1577 +vn -0.4212 -0.8896 0.1765 +vn -0.3703 -0.9158 0.1556 +vn -0.4334 -0.8898 0.1431 +vn -0.3805 -0.9160 0.1270 +vn -0.3198 -0.9379 0.1344 +vn -0.3287 -0.9380 0.1102 +vn -0.4436 -0.8897 0.1082 +vn -0.3900 -0.9158 0.0961 +vn -0.4506 -0.8898 0.0728 +vn -0.3968 -0.9157 0.0639 +vn -0.3435 -0.9375 0.0549 +vn -0.3373 -0.9377 0.0832 +vn -0.4547 -0.8899 0.0367 +vn -0.4002 -0.9159 0.0315 +vn -0.4560 -0.8900 0.0006 +vn -0.4007 -0.9162 -0.0010 +vn -0.3460 -0.9379 0.0260 +vn -0.3457 -0.9384 -0.0026 +vn -0.4547 -0.8900 -0.0351 +vn -0.3996 -0.9161 -0.0319 +vn -0.4505 -0.8900 -0.0704 +vn -0.3961 -0.9161 -0.0620 +vn -0.3448 -0.9383 -0.0285 +vn -0.3418 -0.9382 -0.0538 +vn -0.4436 -0.8900 -0.1052 +vn -0.3900 -0.9162 -0.0918 +vn -0.4338 -0.8901 -0.1395 +vn -0.3814 -0.9164 -0.1212 +vn -0.3293 -0.9384 -0.1041 +vn -0.3366 -0.9384 -0.0788 +vn -0.4215 -0.8901 -0.1733 +vn -0.3710 -0.9162 -0.1516 +vn -0.4063 -0.8901 -0.2064 +vn -0.3575 -0.9161 -0.1817 +vn -0.3090 -0.9380 -0.1571 +vn -0.3205 -0.9382 -0.1306 +vn -0.3888 -0.8901 -0.2379 +vn -0.3409 -0.9163 -0.2102 +vn -0.3682 -0.8903 -0.2681 +vn -0.3226 -0.9165 -0.2366 +vn -0.2939 -0.9383 -0.1820 +vn -0.2771 -0.9387 -0.2048 +vn -0.3462 -0.8902 -0.2961 +vn -0.3035 -0.9164 -0.2608 +vn -0.3221 -0.8902 -0.3222 +vn -0.2829 -0.9164 -0.2832 +vn -0.2606 -0.9387 -0.2256 +vn -0.2436 -0.9387 -0.2441 +vn -0.2960 -0.8902 -0.3463 +vn -0.2605 -0.9165 -0.3037 +vn -0.2680 -0.8903 -0.3683 +vn -0.2362 -0.9166 -0.3227 +vn -0.2042 -0.9389 -0.2771 +vn -0.2247 -0.9388 -0.2612 +vn -0.2378 -0.8902 -0.3886 +vn -0.2098 -0.9164 -0.3409 +vn -0.2063 -0.8902 -0.4062 +vn -0.1813 -0.9162 -0.3573 +vn -0.1564 -0.9383 -0.3084 +vn -0.1815 -0.9386 -0.2934 +vn -0.1731 -0.8902 -0.4214 +vn -0.1510 -0.9164 -0.3706 +vn -0.1393 -0.8902 -0.4337 +vn -0.1208 -0.9166 -0.3811 +vn -0.1295 -0.9386 -0.3197 +vn -0.1025 -0.9390 -0.3282 +vn -0.1050 -0.8901 -0.4434 +vn -0.0910 -0.9165 -0.3895 +vn -0.0701 -0.8901 -0.4503 +vn -0.0611 -0.9164 -0.3955 +vn -0.0773 -0.9389 -0.3353 +vn -0.0522 -0.9389 -0.3403 +vn -0.0349 -0.8901 -0.4545 +vn -0.0312 -0.9165 -0.3988 +vn 0.0008 -0.8901 -0.4558 +vn -0.0002 -0.9166 -0.3999 +vn -0.0011 -0.9390 -0.3438 +vn -0.0272 -0.9389 -0.3430 +vn 0.0369 -0.8900 -0.4544 +vn 0.0323 -0.9163 -0.3992 +vn 0.0729 -0.8899 -0.4502 +vn 0.0644 -0.9162 -0.3956 +vn 0.0560 -0.9384 -0.3410 +vn 0.0276 -0.9387 -0.3437 +vn 0.1085 -0.8899 -0.4431 +vn 0.0968 -0.9163 -0.3886 +vn 0.1433 -0.8899 -0.4330 +vn 0.1278 -0.9165 -0.3791 +vn 0.0844 -0.9387 -0.3344 +vn 0.1111 -0.9389 -0.3256 +vn 0.1768 -0.8898 -0.4206 +vn 0.1566 -0.9164 -0.3685 +vn 0.2091 -0.8898 -0.4057 +vn 0.1842 -0.9162 -0.3558 +vn 0.1360 -0.9389 -0.3162 +vn 0.1592 -0.9388 -0.3055 +vn 0.2399 -0.8897 -0.3884 +vn 0.2102 -0.9163 -0.3410 +vn 0.2695 -0.8897 -0.3685 +vn 0.2360 -0.9163 -0.3236 +vn 0.2025 -0.9389 -0.2783 +vn 0.1805 -0.9388 -0.2934 +vn 0.2979 -0.8896 -0.3462 +vn 0.2616 -0.9160 -0.3040 +vn 0.3246 -0.8895 -0.3216 +vn 0.2856 -0.9157 -0.2827 +vn 0.2470 -0.9382 -0.2426 +vn 0.2257 -0.9385 -0.2614 +vn 0.3491 -0.8894 -0.2950 +vn 0.3078 -0.9160 -0.2575 +vn 0.3714 -0.8895 -0.2663 +vn 0.3272 -0.9161 -0.2318 +vn 0.2660 -0.9385 -0.2202 +vn 0.2827 -0.9388 -0.1969 +vn 0.3910 -0.8893 -0.2371 +vn 0.3443 -0.9160 -0.2060 +vn 0.4085 -0.8893 -0.2056 +vn 0.3592 -0.9158 -0.1795 +vn 0.2972 -0.9386 -0.1753 +vn 0.3096 -0.9384 -0.1532 +vn 0.4232 -0.8893 -0.1735 +vn 0.3715 -0.9158 -0.1523 +vn 0.4355 -0.8892 -0.1400 +vn 0.3819 -0.9159 -0.1235 +vn 0.3198 -0.9384 -0.1307 +vn 0.3289 -0.9385 -0.1053 +vn 0.4453 -0.8891 -0.1053 +vn 0.3913 -0.9156 -0.0922 +vn 0.4524 -0.8891 -0.0697 +vn 0.3980 -0.9154 -0.0604 +vn 0.3436 -0.9378 -0.0507 +vn 0.3374 -0.9381 -0.0785 +vn 0.4567 -0.8890 -0.0338 +vn 0.4013 -0.9155 -0.0275 +vn 0.4580 -0.8889 0.0021 +vn 0.4019 -0.9157 0.0047 +vn 0.3459 -0.9380 -0.0217 +vn 0.3457 -0.9383 0.0071 +vn 0.4564 -0.8890 0.0381 +vn 0.4007 -0.9155 0.0356 +vn 0.4522 -0.8889 0.0733 +vn 0.3971 -0.9154 0.0658 +vn 0.3446 -0.9381 0.0332 +vn 0.3417 -0.9380 0.0584 +vn 0.4453 -0.8889 0.1079 +vn 0.3911 -0.9154 0.0951 +vn 0.4355 -0.8889 0.1423 +vn 0.3825 -0.9155 0.1249 +vn 0.3365 -0.9380 0.0829 +vn 0.3292 -0.9380 0.1085 +vn 0.4231 -0.8888 0.1761 +vn 0.3719 -0.9152 0.1552 +vn 0.4082 -0.8887 0.2088 +vn 0.3590 -0.9149 0.1847 +vn 0.3203 -0.9376 0.1351 +vn 0.3090 -0.9373 0.1612 +vn 0.3900 -0.8888 0.2408 +vn 0.3423 -0.9151 0.2133 +vn 0.3699 -0.8888 0.2706 +vn 0.3235 -0.9153 0.2399 +vn 0.2935 -0.9376 0.1863 +vn 0.2772 -0.9378 0.2090 +vn 0.3479 -0.8887 0.2986 +vn 0.3043 -0.9152 0.2642 +vn 0.3238 -0.8887 0.3246 +vn 0.2837 -0.9151 0.2865 +vn 0.2601 -0.9378 0.2300 +vn 0.2429 -0.9377 0.2486 +vn 0.2978 -0.8887 0.3486 +vn 0.2616 -0.9152 0.3067 +vn 0.2697 -0.8887 0.3706 +vn 0.2372 -0.9152 0.3258 +vn 0.2251 -0.9376 0.2651 +vn 0.2039 -0.9376 0.2816 +vn 0.2399 -0.8887 0.3907 +vn 0.2108 -0.9150 0.3440 +vn 0.2083 -0.8887 0.4085 +vn 0.1825 -0.9148 0.3603 +vn 0.1811 -0.9373 0.2979 +vn 0.1568 -0.9370 0.3123 +vn 0.1756 -0.8886 0.4237 +vn 0.1523 -0.9150 0.3736 +vn 0.1413 -0.8888 0.4359 +vn 0.1219 -0.9152 0.3841 +vn 0.1296 -0.9372 0.3237 +vn 0.1023 -0.9376 0.3324 +vn 0.1070 -0.8888 0.4457 +vn 0.0922 -0.9151 0.3925 +vn 0.0723 -0.8888 0.4526 +vn 0.0624 -0.9151 0.3985 +vn 0.0772 -0.9375 0.3394 +vn 0.0518 -0.9374 0.3444 +vn 0.0370 -0.8888 0.4568 +vn 0.0324 -0.9151 0.4019 +vn 0.0271 -0.9374 0.3471 +vn 0.0013 -0.8599 0.5104 +vn -0.0388 -0.8595 0.5096 +vn -0.0001 -0.8312 0.5560 +vn -0.0431 -0.8314 0.5540 +vn -0.0786 -0.8593 0.5054 +vn -0.0856 -0.8315 0.5489 +vn -0.1179 -0.8593 0.4977 +vn -0.1283 -0.8314 0.5406 +vn -0.1563 -0.8593 0.4871 +vn -0.1702 -0.8314 0.5290 +vn -0.1942 -0.8593 0.4731 +vn -0.2111 -0.8314 0.5141 +vn -0.2306 -0.8594 0.4564 +vn -0.2507 -0.8315 0.4958 +vn -0.2655 -0.8594 0.4369 +vn -0.2892 -0.8311 0.4751 +vn -0.2990 -0.8595 0.4146 +vn -0.3254 -0.8309 0.4514 +vn -0.3299 -0.8598 0.3897 +vn -0.3597 -0.8308 0.4247 +vn -0.3597 -0.8599 0.3622 +vn -0.3925 -0.8307 0.3947 +vn -0.3873 -0.8598 0.3328 +vn -0.4226 -0.8307 0.3625 +vn -0.4122 -0.8597 0.3016 +vn -0.4496 -0.8306 0.3286 +vn -0.4345 -0.8597 0.2684 +vn -0.4741 -0.8305 0.2925 +vn -0.4542 -0.8598 0.2334 +vn -0.4957 -0.8304 0.2544 +vn -0.4710 -0.8598 0.1971 +vn -0.5141 -0.8304 0.2149 +vn -0.4848 -0.8600 0.1595 +vn -0.5298 -0.8301 0.1740 +vn -0.4956 -0.8601 0.1209 +vn -0.5420 -0.8300 0.1319 +vn -0.5034 -0.8602 0.0814 +vn -0.5508 -0.8299 0.0888 +vn -0.5082 -0.8603 0.0414 +vn -0.5563 -0.8298 0.0451 +vn -0.5100 -0.8602 0.0016 +vn -0.5581 -0.8297 0.0010 +vn -0.5085 -0.8602 -0.0389 +vn -0.5565 -0.8297 -0.0428 +vn -0.5039 -0.8602 -0.0787 +vn -0.5514 -0.8298 -0.0864 +vn -0.4962 -0.8602 -0.1181 +vn -0.5430 -0.8297 -0.1294 +vn -0.4853 -0.8602 -0.1567 +vn -0.5311 -0.8297 -0.1717 +vn -0.4714 -0.8602 -0.1944 +vn -0.5160 -0.8297 -0.2130 +vn -0.4546 -0.8602 -0.2310 +vn -0.4976 -0.8297 -0.2530 +vn -0.4349 -0.8603 -0.2661 +vn -0.4763 -0.8296 -0.2914 +vn -0.4126 -0.8603 -0.2995 +vn -0.4519 -0.8295 -0.3280 +vn -0.3878 -0.8603 -0.3310 +vn -0.4248 -0.8295 -0.3627 +vn -0.3605 -0.8603 -0.3604 +vn -0.3950 -0.8296 -0.3947 +vn -0.3310 -0.8603 -0.3877 +vn -0.3626 -0.8299 -0.4239 +vn -0.2995 -0.8603 -0.4125 +vn -0.3275 -0.8305 -0.4506 +vn -0.2661 -0.8603 -0.4349 +vn -0.2907 -0.8300 -0.4760 +vn -0.2309 -0.8603 -0.4545 +vn -0.2528 -0.8298 -0.4975 +vn -0.1943 -0.8603 -0.4714 +vn -0.2129 -0.8297 -0.5160 +vn -0.1567 -0.8603 -0.4852 +vn -0.1717 -0.8297 -0.5312 +vn -0.1180 -0.8602 -0.4961 +vn -0.1294 -0.8296 -0.5431 +vn -0.0787 -0.8602 -0.5038 +vn -0.0864 -0.8296 -0.5516 +vn -0.0388 -0.8602 -0.5085 +vn -0.0427 -0.8296 -0.5567 +vn 0.0013 -0.8601 -0.5100 +vn 0.0015 -0.8296 -0.5584 +vn 0.0415 -0.8601 -0.5085 +vn 0.0452 -0.8298 -0.5563 +vn 0.0813 -0.8600 -0.5037 +vn 0.0885 -0.8302 -0.5504 +vn 0.1208 -0.8600 -0.4958 +vn 0.1316 -0.8303 -0.5415 +vn 0.1594 -0.8599 -0.4849 +vn 0.1738 -0.8303 -0.5295 +vn 0.1971 -0.8599 -0.4709 +vn 0.2149 -0.8303 -0.5143 +vn 0.2334 -0.8598 -0.4541 +vn 0.2545 -0.8303 -0.4958 +vn 0.2684 -0.8598 -0.4345 +vn 0.2926 -0.8303 -0.4743 +vn 0.3017 -0.8597 -0.4121 +vn 0.3288 -0.8305 -0.4497 +vn 0.3332 -0.8597 -0.3872 +vn 0.3631 -0.8305 -0.4224 +vn 0.3626 -0.8597 -0.3599 +vn 0.3951 -0.8306 -0.3925 +vn 0.3899 -0.8596 -0.3303 +vn 0.4241 -0.8310 -0.3601 +vn 0.4147 -0.8594 -0.2991 +vn 0.4507 -0.8313 -0.3254 +vn 0.4368 -0.8595 -0.2655 +vn 0.4746 -0.8314 -0.2890 +vn 0.4564 -0.8594 -0.2304 +vn 0.4973 -0.8306 -0.2508 +vn 0.4731 -0.8594 -0.1941 +vn 0.5150 -0.8307 -0.2116 +vn 0.4869 -0.8594 -0.1564 +vn 0.5293 -0.8312 -0.1703 +vn 0.4977 -0.8593 -0.1178 +vn 0.5402 -0.8317 -0.1283 +vn 0.5054 -0.8593 -0.0785 +vn 0.5484 -0.8318 -0.0854 +vn 0.5100 -0.8593 -0.0387 +vn 0.5533 -0.8319 -0.0429 +vn 0.5112 -0.8595 0.0012 +vn 0.5551 -0.8318 0.0006 +vn 0.5093 -0.8596 0.0413 +vn 0.5533 -0.8318 0.0444 +vn 0.5046 -0.8595 0.0814 +vn 0.5478 -0.8319 0.0884 +vn 0.4970 -0.8593 0.1204 +vn 0.5393 -0.8319 0.1306 +vn 0.4861 -0.8594 0.1587 +vn 0.5278 -0.8323 0.1694 +vn 0.4710 -0.8603 0.1951 +vn 0.5138 -0.8321 0.2090 +vn 0.4527 -0.8613 0.2308 +vn 0.4960 -0.8315 0.2503 +vn 0.4322 -0.8619 0.2651 +vn 0.4745 -0.8310 0.2903 +vn 0.4098 -0.8620 0.2984 +vn 0.4499 -0.8309 0.3275 +vn 0.3855 -0.8619 0.3295 +vn 0.4227 -0.8307 0.3622 +vn 0.3586 -0.8616 0.3594 +vn 0.3926 -0.8308 0.3945 +vn 0.3299 -0.8613 0.3864 +vn 0.3605 -0.8310 0.4236 +vn 0.2991 -0.8611 0.4112 +vn 0.3261 -0.8312 0.4504 +vn 0.2662 -0.8607 0.4341 +vn 0.2887 -0.8309 0.4757 +vn 0.2317 -0.8599 0.4549 +vn 0.2503 -0.8311 0.4967 +vn 0.1964 -0.8591 0.4726 +vn 0.2127 -0.8315 0.5132 +vn 0.1590 -0.8592 0.4862 +vn 0.1729 -0.8316 0.5278 +vn 0.1204 -0.8593 0.4971 +vn 0.1312 -0.8316 0.5396 +vn 0.0813 -0.8597 0.5042 +vn 0.0889 -0.8317 0.5480 +vn 0.0412 -0.8599 0.5088 +vn 0.0446 -0.8314 0.5539 +vn 0.0005 -0.8011 0.5985 +vn -0.0462 -0.8014 0.5963 +vn 0.0006 -0.7282 0.6854 +vn -0.0531 -0.7273 0.6843 +vn -0.0923 -0.8018 0.5905 +vn -0.1065 -0.7269 0.6785 +vn -0.1386 -0.8012 0.5821 +vn -0.1596 -0.7267 0.6682 +vn -0.1839 -0.8009 0.5699 +vn -0.2122 -0.7259 0.6542 +vn -0.2281 -0.8004 0.5543 +vn -0.2641 -0.7228 0.6386 +vn -0.2712 -0.8002 0.5349 +vn -0.3138 -0.7209 0.6179 +vn -0.3126 -0.8000 0.5122 +vn -0.3610 -0.7202 0.5924 +vn -0.3512 -0.8001 0.4863 +vn -0.4075 -0.7195 0.5624 +vn -0.3887 -0.7996 0.4578 +vn -0.4530 -0.7158 0.5315 +vn -0.4241 -0.7992 0.4260 +vn -0.4947 -0.7137 0.4960 +vn -0.4566 -0.7990 0.3913 +vn -0.5327 -0.7129 0.4561 +vn -0.4860 -0.7988 0.3545 +vn -0.5679 -0.7118 0.4133 +vn -0.5127 -0.7984 0.3157 +vn -0.6002 -0.7102 0.3680 +vn -0.5361 -0.7982 0.2747 +vn -0.6283 -0.7086 0.3212 +vn -0.5559 -0.7982 0.2319 +vn -0.6532 -0.7068 0.2718 +vn -0.5724 -0.7983 0.1875 +vn -0.6746 -0.7044 0.2205 +vn -0.5855 -0.7981 0.1420 +vn -0.6912 -0.7031 0.1668 +vn -0.5955 -0.7977 0.0952 +vn -0.7040 -0.7013 0.1124 +vn -0.6011 -0.7977 0.0484 +vn -0.7113 -0.7006 0.0564 +vn -0.6031 -0.7977 0.0010 +vn -0.7153 -0.6988 0.0008 +vn -0.6013 -0.7977 -0.0463 +vn -0.7139 -0.6980 -0.0556 +vn -0.5957 -0.7978 -0.0934 +vn -0.7094 -0.6959 -0.1115 +vn -0.5866 -0.7977 -0.1400 +vn -0.6989 -0.6954 -0.1672 +vn -0.5739 -0.7976 -0.1857 +vn -0.6844 -0.6946 -0.2218 +vn -0.5577 -0.7974 -0.2303 +vn -0.6645 -0.6948 -0.2750 +vn -0.5379 -0.7974 -0.2736 +vn -0.6421 -0.6935 -0.3269 +vn -0.5148 -0.7973 -0.3152 +vn -0.6147 -0.6930 -0.3767 +vn -0.4885 -0.7971 -0.3548 +vn -0.5839 -0.6922 -0.4241 +vn -0.4593 -0.7969 -0.3924 +vn -0.5481 -0.6929 -0.4685 +vn -0.4277 -0.7966 -0.4273 +vn -0.5100 -0.6929 -0.5097 +vn -0.3936 -0.7966 -0.4588 +vn -0.4689 -0.6942 -0.5462 +vn -0.3549 -0.7970 -0.4887 +vn -0.4221 -0.6956 -0.5814 +vn -0.3143 -0.7968 -0.5160 +vn -0.3747 -0.6942 -0.6146 +vn -0.2737 -0.7972 -0.5382 +vn -0.3273 -0.6931 -0.6422 +vn -0.2303 -0.7973 -0.5578 +vn -0.2752 -0.6939 -0.6654 +vn -0.1857 -0.7974 -0.5741 +vn -0.2217 -0.6947 -0.6843 +vn -0.1399 -0.7974 -0.5869 +vn -0.1670 -0.6957 -0.6986 +vn -0.0935 -0.7974 -0.5961 +vn -0.1116 -0.6966 -0.7087 +vn -0.0464 -0.7975 -0.6016 +vn -0.0553 -0.6983 -0.7136 +vn 0.0010 -0.7973 -0.6036 +vn -0.0001 -0.7006 -0.7136 +vn 0.0479 -0.7975 -0.6014 +vn 0.0536 -0.7079 -0.7042 +vn 0.0943 -0.7991 -0.5938 +vn 0.1061 -0.7170 -0.6890 +vn 0.1403 -0.8013 -0.5816 +vn 0.1620 -0.7222 -0.6725 +vn 0.1869 -0.8009 -0.5689 +vn 0.2171 -0.7174 -0.6620 +vn 0.2310 -0.8005 -0.5530 +vn 0.2657 -0.7216 -0.6393 +vn 0.2736 -0.8004 -0.5334 +vn 0.3162 -0.7260 -0.6107 +vn 0.3156 -0.7992 -0.5115 +vn 0.3681 -0.7150 -0.5944 +vn 0.3550 -0.7988 -0.4857 +vn 0.4131 -0.7124 -0.5673 +vn 0.3912 -0.7994 -0.4559 +vn 0.4535 -0.7164 -0.5302 +vn 0.4250 -0.7999 -0.4237 +vn 0.4938 -0.7170 -0.4919 +vn 0.4572 -0.7997 -0.3892 +vn 0.5318 -0.7159 -0.4524 +vn 0.4867 -0.7995 -0.3520 +vn 0.5645 -0.7169 -0.4091 +vn 0.5136 -0.7994 -0.3116 +vn 0.5918 -0.7199 -0.3628 +vn 0.5341 -0.8011 -0.2701 +vn 0.6100 -0.7291 -0.3102 +vn 0.5531 -0.8012 -0.2285 +vn 0.6349 -0.7271 -0.2612 +vn 0.5695 -0.8010 -0.1846 +vn 0.6562 -0.7241 -0.2122 +vn 0.5825 -0.8009 -0.1390 +vn 0.6712 -0.7237 -0.1603 +vn 0.5913 -0.8011 -0.0924 +vn 0.6806 -0.7248 -0.1071 +vn 0.5964 -0.8013 -0.0459 +vn 0.6857 -0.7260 -0.0533 +vn 0.5983 -0.8013 0.0007 +vn 0.6866 -0.7271 0.0006 +vn 0.5965 -0.8012 0.0477 +vn 0.6829 -0.7284 0.0544 +vn 0.5906 -0.8014 0.0947 +vn 0.6760 -0.7290 0.1076 +vn 0.5810 -0.8017 0.1404 +vn 0.6641 -0.7303 0.1601 +vn 0.5689 -0.8014 0.1848 +vn 0.6494 -0.7305 0.2112 +vn 0.5547 -0.7997 0.2298 +vn 0.6293 -0.7320 0.2612 +vn 0.5363 -0.7986 0.2733 +vn 0.6068 -0.7321 0.3095 +vn 0.5136 -0.7982 0.3148 +vn 0.5799 -0.7329 0.3558 +vn 0.4872 -0.7981 0.3544 +vn 0.5503 -0.7329 0.4000 +vn 0.4576 -0.7984 0.3914 +vn 0.5167 -0.7335 0.4416 +vn 0.4251 -0.7990 0.4253 +vn 0.4809 -0.7332 0.4808 +vn 0.3901 -0.7993 0.4571 +vn 0.4417 -0.7331 0.5171 +vn 0.3528 -0.7999 0.4855 +vn 0.3999 -0.7330 0.5502 +vn 0.3125 -0.8005 0.5113 +vn 0.3555 -0.7330 0.5800 +vn 0.2706 -0.8017 0.5329 +vn 0.3092 -0.7329 0.6060 +vn 0.2288 -0.8026 0.5509 +vn 0.2603 -0.7338 0.6275 +vn 0.1855 -0.8023 0.5673 +vn 0.2109 -0.7323 0.6475 +vn 0.1407 -0.8018 0.5808 +vn 0.1594 -0.7315 0.6630 +vn 0.0947 -0.8012 0.5908 +vn 0.1075 -0.7298 0.6751 +vn 0.0477 -0.8009 0.5968 +vn 0.0542 -0.7292 0.6822 +vn -0.0673 -0.4885 0.8700 +vn -0.1344 -0.4976 0.8569 +vn 0.0001 -0.4900 0.8717 +vn -0.0776 0.0406 0.9962 +vn -0.0002 0.0409 0.9992 +vn -0.1544 0.0506 0.9867 +vn -0.2009 -0.5039 0.8401 +vn -0.2684 -0.5031 0.8215 +vn -0.2319 0.0578 0.9710 +vn -0.3095 0.0612 0.9489 +vn -0.3350 -0.4864 0.8070 +vn -0.3969 -0.4835 0.7802 +vn -0.3844 0.0433 0.9221 +vn -0.4534 0.0434 0.8903 +vn -0.4552 -0.4851 0.7467 +vn -0.5109 -0.4977 0.7009 +vn -0.5203 0.0476 0.8527 +vn -0.5866 0.0617 0.8075 +vn -0.5716 -0.4764 0.6681 +vn -0.6229 -0.4726 0.6234 +vn -0.6510 0.0400 0.7580 +vn -0.7066 0.0393 0.7065 +vn -0.6696 -0.4730 0.5727 +vn -0.7118 -0.4755 0.5169 +vn -0.7594 0.0410 0.6493 +vn -0.8081 0.0455 0.5873 +vn -0.7528 -0.4699 0.4610 +vn -0.7879 -0.4667 0.4017 +vn -0.8524 0.0396 0.5214 +vn -0.8904 0.0392 0.4536 +vn -0.8177 -0.4651 0.3391 +vn -0.8434 -0.4620 0.2744 +vn -0.9232 0.0392 0.3824 +vn -0.9503 0.0392 0.3087 +vn -0.8636 -0.4595 0.2076 +vn -0.8783 -0.4573 0.1393 +vn -0.9717 0.0389 0.2332 +vn -0.9870 0.0385 0.1563 +vn -0.8872 -0.4560 0.0699 +vn -0.8909 -0.4543 0.0002 +vn -0.9962 0.0384 0.0784 +vn -0.9993 0.0384 0.0000 +vn -0.8888 -0.4530 -0.0698 +vn -0.8816 -0.4509 -0.1393 +vn -0.9962 0.0384 -0.0784 +vn -0.9870 0.0385 -0.1563 +vn -0.8681 -0.4507 -0.2081 +vn -0.8488 -0.4515 -0.2753 +vn -0.9717 0.0388 -0.2331 +vn -0.9504 0.0415 -0.3083 +vn -0.8237 -0.4529 -0.3411 +vn -0.7953 -0.4506 -0.4055 +vn -0.9231 0.0438 -0.3821 +vn -0.8900 0.0432 -0.4539 +vn -0.7621 -0.4480 -0.4674 +vn -0.7238 -0.4469 -0.5258 +vn -0.8517 0.0390 -0.5225 +vn -0.8084 0.0387 -0.5874 +vn -0.6797 -0.4480 -0.5808 +vn -0.6325 -0.4483 -0.6317 +vn -0.7598 0.0386 -0.6490 +vn -0.7068 0.0389 -0.7063 +vn -0.5815 -0.4512 -0.6770 +vn -0.5236 -0.4536 -0.7212 +vn -0.6502 0.0457 -0.7584 +vn -0.5872 0.0723 -0.8062 +vn -0.4646 -0.4506 -0.7623 +vn -0.4054 -0.4491 -0.7962 +vn -0.5197 0.0445 -0.8532 +vn -0.4534 0.0421 -0.8903 +vn -0.3417 -0.4493 -0.8254 +vn -0.2758 -0.4501 -0.8493 +vn -0.3823 0.0407 -0.9231 +vn -0.3087 0.0406 -0.9503 +vn -0.2079 -0.4519 -0.8675 +vn -0.1394 -0.4519 -0.8811 +vn -0.2331 0.0399 -0.9716 +vn -0.1562 0.0392 -0.9869 +vn -0.0698 -0.4540 -0.8883 +vn -0.0034 -0.4591 -0.8884 +vn -0.0786 0.0391 -0.9961 +vn -0.0031 0.0429 -0.9991 +vn 0.0621 -0.4876 -0.8709 +vn 0.1288 -0.5049 -0.8535 +vn 0.0706 0.0811 -0.9942 +vn 0.1476 0.1356 -0.9797 +vn 0.2036 -0.5037 -0.8396 +vn 0.2720 -0.4842 -0.8316 +vn 0.2305 0.1644 -0.9591 +vn 0.3108 0.1239 -0.9424 +vn 0.3274 -0.4981 -0.8029 +vn 0.3871 -0.5485 -0.7411 +vn 0.3733 0.1360 -0.9177 +vn 0.4496 0.1605 -0.8787 +vn 0.4597 -0.4989 -0.7347 +vn 0.5164 -0.4761 -0.7118 +vn 0.5327 0.0749 -0.8430 +vn 0.5887 0.0467 -0.8070 +vn 0.5638 -0.4951 -0.6611 +vn 0.6156 -0.4968 -0.6118 +vn 0.6460 0.0679 -0.7603 +vn 0.7070 0.0659 -0.7041 +vn 0.6689 -0.4783 -0.5691 +vn 0.7114 -0.4764 -0.5167 +vn 0.7619 0.0413 -0.6464 +vn 0.8086 0.0390 -0.5871 +vn 0.7435 -0.4823 -0.4633 +vn 0.7515 -0.5374 -0.3826 +vn 0.8487 0.0442 -0.5271 +vn 0.8836 0.1040 -0.4566 +vn 0.7906 -0.5203 -0.3228 +vn 0.8273 -0.4946 -0.2663 +vn 0.9234 0.0767 -0.3761 +vn 0.9513 0.0489 -0.3043 +vn 0.8507 -0.4847 -0.2036 +vn 0.8638 -0.4849 -0.1366 +vn 0.9720 0.0389 -0.2319 +vn 0.9870 0.0389 -0.1562 +vn 0.8715 -0.4857 -0.0684 +vn 0.8738 -0.4862 0.0001 +vn 0.9962 0.0385 -0.0783 +vn 0.9993 0.0384 0.0000 +vn 0.8702 -0.4879 0.0687 +vn 0.8618 -0.4886 0.1365 +vn 0.9962 0.0384 0.0784 +vn 0.9870 0.0384 0.1563 +vn 0.8474 -0.4903 0.2037 +vn 0.8286 -0.4908 0.2693 +vn 0.9717 0.0384 0.2333 +vn 0.9504 0.0384 0.3088 +vn 0.8045 -0.4915 0.3334 +vn 0.7756 -0.4921 0.3953 +vn 0.9232 0.0384 0.3824 +vn 0.8903 0.0385 0.4537 +vn 0.7418 -0.4929 0.4548 +vn 0.7041 -0.4926 0.5115 +vn 0.8520 0.0384 0.5221 +vn 0.8084 0.0384 0.5874 +vn 0.6615 -0.4932 0.5650 +vn 0.6151 -0.4932 0.6151 +vn 0.7598 0.0384 0.6490 +vn 0.7066 0.0384 0.7066 +vn 0.5647 -0.4936 0.6614 +vn 0.5114 -0.4932 0.7037 +vn 0.6490 0.0385 0.7598 +vn 0.5874 0.0386 0.8084 +vn 0.4543 -0.4938 0.7415 +vn 0.3957 -0.4941 0.7741 +vn 0.5222 0.0390 0.8519 +vn 0.4545 0.0403 0.8898 +vn 0.3306 -0.5042 0.7978 +vn 0.2672 -0.5012 0.8230 +vn 0.3832 0.0483 0.9224 +vn 0.3082 0.0471 0.9501 +vn 0.2022 -0.4975 0.8436 +vn 0.1362 -0.4935 0.8590 +vn 0.2326 0.0438 0.9716 +vn 0.1560 0.0423 0.9869 +vn 0.0683 -0.4926 0.8676 +vn 0.0783 0.0415 0.9961 +vn -0.0614 0.6235 0.7794 +vn -0.1194 0.6395 0.7595 +vn -0.0001 0.6250 0.7807 +vn -0.0291 0.9286 0.3699 +vn 0.0000 0.9286 0.3711 +vn -0.0581 0.9286 0.3665 +vn -0.1767 0.6507 0.7385 +vn -0.2334 0.6547 0.7189 +vn -0.0866 0.9286 0.3608 +vn -0.1147 0.9286 0.3529 +vn -0.2990 0.6287 0.7179 +vn -0.3538 0.6268 0.6942 +vn -0.1420 0.9286 0.3429 +vn -0.1685 0.9286 0.3307 +vn -0.4048 0.6317 0.6611 +vn -0.4424 0.6563 0.6112 +vn -0.1939 0.9286 0.3164 +vn -0.2181 0.9286 0.3002 +vn -0.5082 0.6253 0.5922 +vn -0.5538 0.6220 0.5536 +vn -0.2410 0.9286 0.2822 +vn -0.2624 0.9286 0.2624 +vn -0.5941 0.6241 0.5076 +vn -0.6273 0.6311 0.4562 +vn -0.2822 0.9286 0.2410 +vn -0.3002 0.9286 0.2181 +vn -0.6672 0.6230 0.4083 +vn -0.6982 0.6214 0.3556 +vn -0.3164 0.9286 0.1939 +vn -0.3307 0.9286 0.1685 +vn -0.7236 0.6217 0.2998 +vn -0.7449 0.6217 0.2420 +vn -0.3428 0.9286 0.1420 +vn -0.3530 0.9286 0.1147 +vn -0.7620 0.6212 0.1829 +vn -0.7744 0.6207 0.1226 +vn -0.3609 0.9286 0.0866 +vn -0.3665 0.9286 0.0581 +vn -0.7818 0.6205 0.0615 +vn -0.7842 0.6205 -0.0000 +vn -0.3700 0.9286 0.0291 +vn -0.3711 0.9286 -0.0000 +vn -0.7818 0.6205 -0.0615 +vn -0.7744 0.6207 -0.1226 +vn -0.3700 0.9286 -0.0291 +vn -0.3665 0.9286 -0.0581 +vn -0.7620 0.6211 -0.1829 +vn -0.7429 0.6245 -0.2411 +vn -0.3608 0.9286 -0.0866 +vn -0.3529 0.9286 -0.1147 +vn -0.7192 0.6278 -0.2977 +vn -0.6941 0.6270 -0.3537 +vn -0.3429 0.9286 -0.1420 +vn -0.3307 0.9286 -0.1685 +vn -0.6678 0.6215 -0.4096 +vn -0.6342 0.6208 -0.4608 +vn -0.3164 0.9286 -0.1939 +vn -0.3003 0.9286 -0.2181 +vn -0.5962 0.6207 -0.5092 +vn -0.5544 0.6207 -0.5544 +vn -0.2822 0.9286 -0.2410 +vn -0.2624 0.9286 -0.2624 +vn -0.5065 0.6264 -0.5926 +vn -0.4483 0.6487 -0.6150 +vn -0.2410 0.9286 -0.2822 +vn -0.2181 0.9286 -0.3002 +vn -0.4061 0.6264 -0.6653 +vn -0.3547 0.6239 -0.6964 +vn -0.1939 0.9286 -0.3164 +vn -0.1685 0.9286 -0.3307 +vn -0.2993 0.6229 -0.7228 +vn -0.2417 0.6231 -0.7439 +vn -0.1420 0.9286 -0.3429 +vn -0.1147 0.9286 -0.3530 +vn -0.1826 0.6229 -0.7607 +vn -0.1225 0.6213 -0.7739 +vn -0.0866 0.9286 -0.3608 +vn -0.0581 0.9286 -0.3665 +vn -0.0615 0.6212 -0.7812 +vn -0.0002 0.6247 -0.7809 +vn -0.0291 0.9286 -0.3699 +vn 0.0000 0.9286 -0.3711 +vn 0.0556 0.6708 -0.7396 +vn 0.1057 0.7196 -0.6863 +vn 0.0291 0.9286 -0.3699 +vn 0.0581 0.9286 -0.3665 +vn 0.1563 0.7383 -0.6561 +vn 0.2245 0.6967 -0.6813 +vn 0.0866 0.9286 -0.3608 +vn 0.1147 0.9286 -0.3529 +vn 0.2693 0.7084 -0.6524 +vn 0.2890 0.7650 -0.5756 +vn 0.1420 0.9286 -0.3428 +vn 0.1686 0.9285 -0.3309 +vn 0.3904 0.6766 -0.6244 +vn 0.4571 0.6328 -0.6250 +vn 0.1939 0.9286 -0.3163 +vn 0.2181 0.9286 -0.3002 +vn 0.4860 0.6611 -0.5717 +vn 0.5296 0.6625 -0.5297 +vn 0.2410 0.9286 -0.2821 +vn 0.2624 0.9286 -0.2624 +vn 0.5931 0.6279 -0.5039 +vn 0.6339 0.6216 -0.4602 +vn 0.2822 0.9286 -0.2410 +vn 0.3002 0.9286 -0.2181 +vn 0.6659 0.6244 -0.4083 +vn 0.6232 0.7121 -0.3232 +vn 0.3164 0.9286 -0.1939 +vn 0.3306 0.9286 -0.1685 +vn 0.6754 0.6833 -0.2775 +vn 0.7306 0.6412 -0.2347 +vn 0.3428 0.9286 -0.1420 +vn 0.3529 0.9286 -0.1147 +vn 0.7611 0.6227 -0.1817 +vn 0.7739 0.6214 -0.1225 +vn 0.3608 0.9286 -0.0866 +vn 0.3665 0.9286 -0.0581 +vn 0.7816 0.6208 -0.0615 +vn 0.7842 0.6205 0.0000 +vn 0.3699 0.9286 -0.0291 +vn 0.3711 0.9286 0.0000 +vn 0.7818 0.6205 0.0615 +vn 0.7746 0.6205 0.1227 +vn 0.3700 0.9286 0.0291 +vn 0.3665 0.9286 0.0581 +vn 0.7625 0.6205 0.1831 +vn 0.7458 0.6205 0.2423 +vn 0.3608 0.9286 0.0866 +vn 0.3530 0.9286 0.1147 +vn 0.7245 0.6205 0.3001 +vn 0.6987 0.6205 0.3560 +vn 0.3429 0.9286 0.1420 +vn 0.3307 0.9286 0.1685 +vn 0.6686 0.6205 0.4097 +vn 0.6344 0.6205 0.4609 +vn 0.3164 0.9286 0.1939 +vn 0.3002 0.9286 0.2181 +vn 0.5963 0.6205 0.5093 +vn 0.5545 0.6205 0.5545 +vn 0.2821 0.9286 0.2410 +vn 0.2624 0.9286 0.2624 +vn 0.5093 0.6206 0.5963 +vn 0.4608 0.6208 0.6342 +vn 0.2410 0.9286 0.2821 +vn 0.2181 0.9286 0.3002 +vn 0.4094 0.6215 0.6679 +vn 0.3552 0.6229 0.6970 +vn 0.1939 0.9286 0.3164 +vn 0.1685 0.9286 0.3307 +vn 0.2956 0.6376 0.7114 +vn 0.2383 0.6362 0.7338 +vn 0.1420 0.9286 0.3428 +vn 0.1147 0.9286 0.3530 +vn 0.1809 0.6306 0.7547 +vn 0.1217 0.6269 0.7695 +vn 0.0866 0.9286 0.3609 +vn 0.0581 0.9286 0.3665 +vn 0.0611 0.6264 0.7771 +vn 0.0291 0.9286 0.3699 +vn -0.0013 0.9999 0.0171 +vn -0.0027 0.9999 0.0169 +vn 0.0000 0.9999 0.0171 +vn 0.0161 0.9788 -0.2042 +vn -0.0000 0.9788 -0.2048 +vn 0.0320 0.9788 -0.2023 +vn -0.0040 0.9999 0.0166 +vn -0.0053 0.9999 0.0163 +vn 0.0478 0.9788 -0.1991 +vn 0.0633 0.9788 -0.1948 +vn -0.0065 0.9999 0.0158 +vn -0.0078 0.9999 0.0153 +vn 0.0784 0.9788 -0.1892 +vn 0.0930 0.9788 -0.1825 +vn -0.0089 0.9999 0.0146 +vn -0.0101 0.9999 0.0139 +vn 0.1070 0.9788 -0.1746 +vn 0.1204 0.9788 -0.1657 +vn -0.0111 0.9999 0.0130 +vn -0.0121 0.9999 0.0121 +vn 0.1330 0.9788 -0.1557 +vn 0.1448 0.9788 -0.1448 +vn -0.0130 0.9999 0.0111 +vn -0.0138 0.9999 0.0101 +vn 0.1557 0.9788 -0.1330 +vn 0.1657 0.9788 -0.1204 +vn -0.0146 0.9999 0.0089 +vn -0.0153 0.9999 0.0078 +vn 0.1746 0.9788 -0.1070 +vn 0.1825 0.9788 -0.0930 +vn -0.0158 0.9999 0.0065 +vn -0.0163 0.9999 0.0053 +vn 0.1892 0.9788 -0.0784 +vn 0.1947 0.9788 -0.0633 +vn -0.0166 0.9999 0.0040 +vn -0.0169 0.9999 0.0027 +vn 0.1991 0.9788 -0.0478 +vn 0.2022 0.9788 -0.0320 +vn -0.0170 0.9999 0.0013 +vn -0.0171 0.9999 -0.0000 +vn 0.2041 0.9788 -0.0161 +vn 0.2047 0.9788 -0.0000 +vn -0.0170 0.9999 -0.0013 +vn -0.0169 0.9999 -0.0027 +vn 0.2041 0.9788 0.0161 +vn 0.2022 0.9788 0.0320 +vn -0.0166 0.9999 -0.0040 +vn -0.0163 0.9999 -0.0053 +vn 0.1991 0.9788 0.0478 +vn 0.1947 0.9788 0.0633 +vn -0.0158 0.9999 -0.0065 +vn -0.0153 0.9999 -0.0078 +vn 0.1892 0.9788 0.0784 +vn 0.1824 0.9788 0.0930 +vn -0.0146 0.9999 -0.0089 +vn -0.0139 0.9999 -0.0101 +vn 0.1746 0.9788 0.1070 +vn 0.1657 0.9788 0.1204 +vn -0.0130 0.9999 -0.0111 +vn -0.0121 0.9999 -0.0121 +vn 0.1557 0.9788 0.1330 +vn 0.1448 0.9788 0.1448 +vn -0.0111 0.9999 -0.0130 +vn -0.0101 0.9999 -0.0138 +vn 0.1330 0.9788 0.1557 +vn 0.1204 0.9788 0.1657 +vn -0.0089 0.9999 -0.0146 +vn -0.0078 0.9999 -0.0153 +vn 0.1070 0.9788 0.1746 +vn 0.0930 0.9788 0.1825 +vn -0.0066 0.9999 -0.0158 +vn -0.0053 0.9999 -0.0163 +vn 0.0784 0.9788 0.1892 +vn 0.0633 0.9788 0.1948 +vn -0.0040 0.9999 -0.0167 +vn -0.0027 0.9999 -0.0169 +vn 0.0478 0.9788 0.1991 +vn 0.0320 0.9788 0.2023 +vn -0.0013 0.9999 -0.0171 +vn -0.0000 0.9999 -0.0172 +vn 0.0161 0.9788 0.2042 +vn -0.0000 0.9788 0.2048 +vn 0.0013 0.9999 -0.0171 +vn 0.0027 0.9999 -0.0170 +vn -0.0161 0.9788 0.2042 +vn -0.0320 0.9788 0.2022 +vn 0.0040 0.9999 -0.0167 +vn 0.0053 0.9999 -0.0163 +vn -0.0478 0.9788 0.1991 +vn -0.0633 0.9788 0.1947 +vn 0.0066 0.9999 -0.0159 +vn 0.0078 0.9999 -0.0153 +vn -0.0783 0.9788 0.1891 +vn -0.0929 0.9788 0.1824 +vn 0.0090 0.9999 -0.0146 +vn 0.0101 0.9999 -0.0139 +vn -0.1070 0.9788 0.1746 +vn -0.1203 0.9788 0.1656 +vn 0.0111 0.9999 -0.0130 +vn 0.0121 0.9999 -0.0121 +vn -0.1330 0.9788 0.1557 +vn -0.1448 0.9788 0.1448 +vn 0.0131 0.9999 -0.0111 +vn 0.0139 0.9999 -0.0101 +vn -0.1557 0.9788 0.1330 +vn -0.1656 0.9788 0.1203 +vn 0.0146 0.9999 -0.0090 +vn 0.0153 0.9999 -0.0078 +vn -0.1746 0.9788 0.1070 +vn -0.1824 0.9788 0.0930 +vn 0.0158 0.9999 -0.0065 +vn 0.0163 0.9999 -0.0053 +vn -0.1892 0.9788 0.0784 +vn -0.1947 0.9788 0.0633 +vn 0.0166 0.9999 -0.0040 +vn 0.0169 0.9999 -0.0027 +vn -0.1991 0.9788 0.0478 +vn -0.2022 0.9788 0.0320 +vn 0.0171 0.9999 -0.0013 +vn 0.0171 0.9999 0.0000 +vn -0.2041 0.9788 0.0161 +vn -0.2047 0.9788 0.0000 +vn 0.0171 0.9999 0.0013 +vn 0.0169 0.9999 0.0027 +vn -0.2041 0.9788 -0.0161 +vn -0.2022 0.9788 -0.0320 +vn 0.0166 0.9999 0.0040 +vn 0.0163 0.9999 0.0053 +vn -0.1991 0.9788 -0.0478 +vn -0.1947 0.9788 -0.0633 +vn 0.0158 0.9999 0.0065 +vn 0.0153 0.9999 0.0078 +vn -0.1892 0.9788 -0.0784 +vn -0.1824 0.9788 -0.0930 +vn 0.0146 0.9999 0.0090 +vn 0.0139 0.9999 0.0101 +vn -0.1746 0.9788 -0.1070 +vn -0.1656 0.9788 -0.1203 +vn 0.0131 0.9999 0.0112 +vn 0.0121 0.9999 0.0121 +vn -0.1557 0.9788 -0.1330 +vn -0.1448 0.9788 -0.1448 +vn 0.0112 0.9999 0.0130 +vn 0.0101 0.9999 0.0139 +vn -0.1330 0.9788 -0.1557 +vn -0.1204 0.9788 -0.1657 +vn 0.0090 0.9999 0.0146 +vn 0.0078 0.9999 0.0153 +vn -0.1070 0.9788 -0.1746 +vn -0.0930 0.9788 -0.1825 +vn 0.0066 0.9999 0.0158 +vn 0.0053 0.9999 0.0163 +vn -0.0784 0.9788 -0.1892 +vn -0.0633 0.9788 -0.1948 +vn 0.0040 0.9999 0.0167 +vn 0.0027 0.9999 0.0169 +vn -0.0478 0.9788 -0.1991 +vn -0.0320 0.9788 -0.2023 +vn 0.0013 0.9999 0.0171 +vn -0.0161 0.9788 -0.2042 +vn -0.3192 0.0520 -0.9463 +vn -0.3182 0.0000 -0.9480 +vn -0.3222 0.1036 -0.9410 +vn -0.4647 0.0420 -0.8845 +vn -0.4672 0.0838 -0.8802 +vn -0.4639 0.0000 -0.8859 +vn -0.3273 0.1546 -0.9322 +vn -0.3344 0.2046 -0.9200 +vn -0.4713 0.1250 -0.8731 +vn -0.4770 0.1655 -0.8632 +vn -0.3433 0.2534 -0.9044 +vn -0.3542 0.3006 -0.8855 +vn -0.4843 0.2050 -0.8506 +vn -0.4931 0.2432 -0.8353 +vn -0.3669 0.3460 -0.8635 +vn -0.3814 0.3892 -0.8385 +vn -0.5033 0.2798 -0.8175 +vn -0.5150 0.3148 -0.7973 +vn -0.3975 0.4301 -0.8106 +vn -0.4151 0.4682 -0.7800 +vn -0.5280 0.3478 -0.7747 +vn -0.5423 0.3787 -0.7500 +vn -0.4342 0.5035 -0.7469 +vn -0.4546 0.5357 -0.7116 +vn -0.5577 0.4073 -0.7233 +vn -0.5742 0.4333 -0.6947 +vn -0.4761 0.5646 -0.6741 +vn -0.4989 0.5900 -0.6348 +vn -0.5917 0.4567 -0.6644 +vn -0.6100 0.4772 -0.6326 +vn -0.5224 0.6118 -0.5939 +vn -0.5468 0.6298 -0.5517 +vn -0.6291 0.4948 -0.5995 +vn -0.6488 0.5094 -0.5653 +vn -0.5718 0.6439 -0.5083 +vn -0.5973 0.6541 -0.4642 +vn -0.6690 0.5208 -0.5303 +vn -0.6896 0.5290 -0.4945 +vn -0.6231 0.6602 -0.4194 +vn -0.6491 0.6622 -0.3744 +vn -0.7105 0.5339 -0.4584 +vn -0.7315 0.5356 -0.4220 +vn -0.6750 0.6602 -0.3294 +vn -0.7008 0.6541 -0.2847 +vn -0.7525 0.5339 -0.3856 +vn -0.7734 0.5290 -0.3494 +vn -0.7263 0.6439 -0.2405 +vn -0.7513 0.6298 -0.1972 +vn -0.7940 0.5208 -0.3137 +vn -0.8142 0.5094 -0.2786 +vn -0.7757 0.6118 -0.1549 +vn -0.7993 0.5900 -0.1140 +vn -0.8339 0.4948 -0.2444 +vn -0.8530 0.4772 -0.2114 +vn -0.8220 0.5646 -0.0747 +vn -0.8436 0.5357 -0.0372 +vn -0.8713 0.4567 -0.1796 +vn -0.8888 0.4333 -0.1493 +vn -0.8640 0.5036 -0.0019 +vn -0.8830 0.4683 0.0312 +vn -0.9053 0.4073 -0.1207 +vn -0.9207 0.3787 -0.0939 +vn -0.9007 0.4301 0.0618 +vn -0.9168 0.3892 0.0897 +vn -0.9350 0.3478 -0.0692 +vn -0.9480 0.3148 -0.0466 +vn -0.9312 0.3460 0.1147 +vn -0.9439 0.3006 0.1367 +vn -0.9597 0.2798 -0.0264 +vn -0.9700 0.2431 -0.0086 +vn -0.9548 0.2534 0.1556 +vn -0.9638 0.2046 0.1711 +vn -0.9787 0.2050 0.0066 +vn -0.9860 0.1655 0.0192 +vn -0.9708 0.1546 0.1834 +vn -0.9759 0.1036 0.1922 +vn -0.9917 0.1250 0.0291 +vn -0.9958 0.0838 0.0362 +vn -0.9789 0.0520 0.1975 +vn -0.9800 -0.0000 0.1992 +vn -0.9983 0.0420 0.0405 +vn -0.9991 -0.0000 0.0419 +vn -0.3190 0.0520 -0.9463 +vn -0.1688 0.0604 -0.9838 +vn -0.1676 0.0000 -0.9858 +vn -0.3180 -0.0000 -0.9481 +vn -0.3220 0.1036 -0.9410 +vn -0.1724 0.1205 -0.9776 +vn -0.0472 0.0661 -0.9967 +vn -0.0510 0.1318 -0.9900 +vn -0.0459 0.0000 -0.9989 +vn -0.3271 0.1546 -0.9323 +vn -0.1783 0.1798 -0.9674 +vn -0.3342 0.2047 -0.9200 +vn -0.1865 0.2380 -0.9532 +vn -0.0575 0.1967 -0.9788 +vn -0.0665 0.2603 -0.9632 +vn -0.3432 0.2535 -0.9044 +vn -0.1969 0.2947 -0.9351 +vn -0.3540 0.3007 -0.8856 +vn -0.2096 0.3497 -0.9131 +vn -0.0779 0.3224 -0.9434 +vn -0.0917 0.3824 -0.9194 +vn -0.3667 0.3461 -0.8636 +vn -0.2244 0.4024 -0.8875 +vn -0.3812 0.3893 -0.8385 +vn -0.2411 0.4527 -0.8584 +vn -0.1079 0.4401 -0.8914 +vn -0.1262 0.4951 -0.8596 +vn -0.3973 0.4302 -0.8106 +vn -0.2599 0.5002 -0.8260 +vn -0.4149 0.4684 -0.7801 +vn -0.2804 0.5446 -0.7904 +vn -0.1467 0.5471 -0.8241 +vn -0.1691 0.5957 -0.7852 +vn -0.4340 0.5037 -0.7470 +vn -0.3026 0.5856 -0.7520 +vn -0.4544 0.5359 -0.7116 +vn -0.3263 0.6231 -0.7108 +vn -0.1934 0.6406 -0.7432 +vn -0.2194 0.6815 -0.6982 +vn -0.4760 0.5648 -0.6741 +vn -0.3514 0.6567 -0.6673 +vn -0.4987 0.5902 -0.6348 +vn -0.3778 0.6862 -0.6216 +vn -0.2468 0.7183 -0.6505 +vn -0.2757 0.7506 -0.6005 +vn -0.5223 0.6120 -0.5939 +vn -0.4052 0.7116 -0.5740 +vn -0.5467 0.6300 -0.5516 +vn -0.4336 0.7325 -0.5249 +vn -0.3057 0.7783 -0.5485 +vn -0.3367 0.8012 -0.4947 +vn -0.5717 0.6441 -0.5083 +vn -0.4627 0.7489 -0.4744 +vn -0.5972 0.6542 -0.4641 +vn -0.4923 0.7607 -0.4231 +vn -0.3685 0.8191 -0.4396 +vn -0.4009 0.8320 -0.3834 +vn -0.6230 0.6603 -0.4194 +vn -0.5223 0.7678 -0.3711 +vn -0.6489 0.6624 -0.3743 +vn -0.5525 0.7702 -0.3187 +vn -0.4338 0.8398 -0.3265 +vn -0.4668 0.8424 -0.2693 +vn -0.6749 0.6603 -0.3293 +vn -0.5827 0.7678 -0.2664 +vn -0.7007 0.6542 -0.2846 +vn -0.6127 0.7607 -0.2143 +vn -0.4998 0.8398 -0.2120 +vn -0.5326 0.8320 -0.1551 +vn -0.7262 0.6441 -0.2404 +vn -0.6423 0.7489 -0.1630 +vn -0.7512 0.6300 -0.1970 +vn -0.6714 0.7325 -0.1126 +vn -0.5650 0.8191 -0.0989 +vn -0.5969 0.8012 -0.0438 +vn -0.7756 0.6120 -0.1548 +vn -0.6998 0.7116 -0.0634 +vn -0.7992 0.5902 -0.1139 +vn -0.7272 0.6862 -0.0158 +vn -0.6279 0.7783 0.0100 +vn -0.6579 0.7506 0.0620 +vn -0.8219 0.5648 -0.0746 +vn -0.7536 0.6567 0.0299 +vn -0.8435 0.5359 -0.0371 +vn -0.7787 0.6231 0.0734 +vn -0.6867 0.7183 0.1120 +vn -0.7142 0.6815 0.1596 +vn -0.8639 0.5037 -0.0017 +vn -0.8024 0.5857 0.1146 +vn -0.8830 0.4684 0.0314 +vn -0.8246 0.5446 0.1530 +vn -0.7401 0.6406 0.2046 +vn -0.7644 0.5957 0.2467 +vn -0.9006 0.4302 0.0619 +vn -0.8451 0.5002 0.1886 +vn -0.9167 0.3893 0.0898 +vn -0.8638 0.4527 0.2210 +vn -0.7868 0.5471 0.2856 +vn -0.8073 0.4951 0.3211 +vn -0.9311 0.3461 0.1149 +vn -0.8806 0.4024 0.2501 +vn -0.9438 0.3007 0.1369 +vn -0.8954 0.3497 0.2757 +vn -0.8257 0.4401 0.3529 +vn -0.8418 0.3824 0.3809 +vn -0.9547 0.2535 0.1557 +vn -0.9080 0.2947 0.2976 +vn -0.9637 0.2047 0.1713 +vn -0.9185 0.2380 0.3158 +vn -0.8557 0.3224 0.4049 +vn -0.8671 0.2603 0.4247 +vn -0.9708 0.1546 0.1836 +vn -0.9267 0.1798 0.3300 +vn -0.9758 0.1036 0.1923 +vn -0.9326 0.1205 0.3402 +vn -0.8761 0.1967 0.4403 +vn -0.8825 0.1318 0.4514 +vn -0.9789 0.0520 0.1976 +vn -0.9361 0.0604 0.3464 +vn -0.9799 0.0000 0.1994 +vn -0.9373 0.0000 0.3484 +vn -0.8864 0.0661 0.4582 +vn -0.8877 -0.0000 0.4604 +vn 0.2939 0.1527 -0.9436 +vn 0.2984 0.0766 -0.9514 +vn 0.1863 0.0741 -0.9797 +vn 0.1819 0.1478 -0.9721 +vn 0.3881 0.1553 -0.9085 +vn 0.3926 0.0779 -0.9164 +vn 0.2999 0.0000 -0.9540 +vn 0.3942 0.0000 -0.9190 +vn 0.1877 0.0000 -0.9822 +vn 0.2760 0.3017 -0.9126 +vn 0.2864 0.2279 -0.9306 +vn 0.1747 0.2205 -0.9596 +vn 0.1646 0.2919 -0.9422 +vn 0.3699 0.3069 -0.8769 +vn 0.3805 0.2318 -0.8953 +vn 0.2467 0.4432 -0.8618 +vn 0.2628 0.3736 -0.8896 +vn 0.1518 0.3615 -0.9199 +vn 0.1363 0.4288 -0.8930 +vn 0.3401 0.4508 -0.8253 +vn 0.3564 0.3800 -0.8536 +vn 0.2067 0.5738 -0.7925 +vn 0.2280 0.5101 -0.8294 +vn 0.1182 0.4936 -0.8616 +vn 0.0976 0.5552 -0.8260 +vn 0.2994 0.5837 -0.7548 +vn 0.3210 0.5189 -0.7923 +vn 0.1570 0.6903 -0.7063 +vn 0.1830 0.6340 -0.7514 +vn 0.0746 0.6135 -0.7862 +vn 0.0495 0.6679 -0.7426 +vn 0.2488 0.7022 -0.6671 +vn 0.2753 0.6449 -0.7129 +vn 0.0988 0.7898 -0.6054 +vn 0.1289 0.7423 -0.6575 +vn 0.0223 0.7183 -0.6954 +vn -0.0068 0.7642 -0.6449 +vn 0.1896 0.8034 -0.5645 +vn 0.2202 0.7551 -0.6175 +vn 0.0336 0.8698 -0.4923 +vn 0.0670 0.8323 -0.5502 +vn -0.0377 0.8054 -0.5915 +vn -0.0700 0.8417 -0.5355 +vn 0.1232 0.8848 -0.4494 +vn 0.1572 0.8467 -0.5083 +vn -0.0371 0.9284 -0.3697 +vn -0.0012 0.9019 -0.4320 +vn -0.1037 0.8727 -0.4771 +vn -0.1384 0.8984 -0.4168 +vn 0.0513 0.9444 -0.3247 +vn 0.0878 0.9174 -0.3880 +vn -0.1116 0.9642 -0.2407 +vn -0.0740 0.9492 -0.3058 +vn -0.1741 0.9185 -0.3550 +vn -0.2104 0.9330 -0.2920 +vn -0.0244 0.9808 -0.1934 +vn 0.0138 0.9656 -0.2597 +vn -0.1879 0.9762 -0.1084 +vn -0.1496 0.9732 -0.1747 +vn -0.2473 0.9417 -0.2282 +vn -0.2843 0.9446 -0.1640 +vn -0.1020 0.9930 -0.0589 +vn -0.0631 0.9900 -0.1264 +vn -0.2642 0.9642 0.0239 +vn -0.2261 0.9732 -0.0420 +vn -0.3213 0.9417 -0.0998 +vn -0.3581 0.9330 -0.0360 +vn -0.1797 0.9808 0.0757 +vn -0.1410 0.9900 0.0086 +vn -0.3386 0.9284 0.1529 +vn -0.3018 0.9492 0.0890 +vn -0.3945 0.9185 0.0270 +vn -0.4301 0.8984 0.0889 +vn -0.2554 0.9444 0.2069 +vn -0.2179 0.9656 0.1419 +vn -0.4093 0.8698 0.2755 +vn -0.3745 0.9019 0.2152 +vn -0.4649 0.8727 0.1491 +vn -0.4986 0.8417 0.2075 +vn -0.3273 0.8848 0.3317 +vn -0.2919 0.9174 0.2703 +vn -0.4746 0.7898 0.3886 +vn -0.4427 0.8323 0.3334 +vn -0.5309 0.8054 0.2635 +vn -0.5617 0.7642 0.3170 +vn -0.3937 0.8034 0.4467 +vn -0.3613 0.8467 0.3906 +vn -0.5328 0.6903 0.4895 +vn -0.5047 0.7423 0.4408 +vn -0.5908 0.7183 0.3674 +vn -0.6180 0.6679 0.4146 +vn -0.4529 0.7022 0.5494 +vn -0.4243 0.7551 0.4998 +vn -0.5825 0.5738 0.5757 +vn -0.5588 0.6340 0.5346 +vn -0.6432 0.6135 0.4582 +vn -0.6661 0.5552 0.4980 +vn -0.5035 0.5837 0.6370 +vn -0.4794 0.6449 0.5952 +vn -0.6225 0.4432 0.6450 +vn -0.6038 0.5101 0.6126 +vn -0.6867 0.4936 0.5337 +vn -0.7048 0.4288 0.5651 +vn -0.5442 0.4508 0.7076 +vn -0.5251 0.5189 0.6746 +vn -0.6518 0.3017 0.6958 +vn -0.6385 0.3736 0.6728 +vn -0.7204 0.3615 0.5920 +vn -0.7332 0.2919 0.6142 +vn -0.5740 0.3069 0.7592 +vn -0.5605 0.3800 0.7358 +vn -0.6697 0.1527 0.7268 +vn -0.6622 0.2279 0.7138 +vn -0.7432 0.2205 0.6316 +vn -0.7505 0.1478 0.6442 +vn -0.5921 0.1553 0.7907 +vn -0.5845 0.2318 0.7776 +vn -0.6757 0.0000 0.7372 +vn -0.6742 0.0766 0.7346 +vn -0.7548 0.0741 0.6517 +vn -0.7563 0.0000 0.6542 +vn -0.5982 -0.0000 0.8013 +vn -0.5967 0.0779 0.7987 +vn 0.4505 0.1562 -0.8790 +vn 0.4551 0.0784 -0.8870 +vn 0.4710 0.1564 -0.8682 +vn 0.4756 0.0784 -0.8762 +vn 0.4566 0.0000 -0.8897 +vn 0.4771 0.0000 -0.8788 +vn 0.4322 0.3086 -0.8473 +vn 0.4428 0.2332 -0.8658 +vn 0.4527 0.3089 -0.8365 +vn 0.4633 0.2334 -0.8549 +vn 0.4022 0.4534 -0.7954 +vn 0.4186 0.3822 -0.8238 +vn 0.4227 0.4538 -0.7845 +vn 0.4391 0.3826 -0.8129 +vn 0.3613 0.5871 -0.7244 +vn 0.3831 0.5219 -0.7622 +vn 0.3817 0.5876 -0.7135 +vn 0.4035 0.5223 -0.7512 +vn 0.3104 0.7063 -0.6363 +vn 0.3370 0.6487 -0.6824 +vn 0.3308 0.7069 -0.6252 +vn 0.3574 0.6492 -0.6714 +vn 0.2509 0.8080 -0.5330 +vn 0.2816 0.7595 -0.5864 +vn 0.2712 0.8087 -0.5219 +vn 0.3020 0.7601 -0.5753 +vn 0.1841 0.8899 -0.4173 +vn 0.2183 0.8516 -0.4766 +vn 0.2044 0.8907 -0.4060 +vn 0.2386 0.8524 -0.4654 +vn 0.1117 0.9499 -0.2919 +vn 0.1485 0.9228 -0.3556 +vn 0.1320 0.9507 -0.2805 +vn 0.1688 0.9236 -0.3443 +vn 0.0356 0.9865 -0.1598 +vn 0.0740 0.9712 -0.2265 +vn 0.0557 0.9874 -0.1484 +vn 0.0942 0.9720 -0.2151 +vn -0.0425 0.9988 -0.0245 +vn -0.0033 0.9957 -0.0924 +vn -0.0224 0.9997 -0.0129 +vn 0.0168 0.9966 -0.0809 +vn -0.1206 0.9865 0.1108 +vn -0.0816 0.9957 0.0434 +vn -0.1005 0.9874 0.1225 +vn -0.0616 0.9966 0.0550 +vn -0.1967 0.9499 0.2428 +vn -0.1590 0.9712 0.1775 +vn -0.1768 0.9507 0.2547 +vn -0.1390 0.9720 0.1892 +vn -0.2691 0.8899 0.3683 +vn -0.2335 0.9228 0.3066 +vn -0.2492 0.8907 0.3802 +vn -0.2136 0.9236 0.3185 +vn -0.3358 0.8080 0.4840 +vn -0.3032 0.8516 0.4275 +vn -0.3160 0.8087 0.4961 +vn -0.2834 0.8524 0.4395 +vn -0.3954 0.7063 0.5873 +vn -0.3666 0.7595 0.5374 +vn -0.3756 0.7069 0.5994 +vn -0.3468 0.7602 0.5494 +vn -0.4462 0.5871 0.6754 +vn -0.4220 0.6487 0.6334 +vn -0.4265 0.5876 0.6876 +vn -0.4022 0.6492 0.6455 +vn -0.4872 0.4534 0.7464 +vn -0.4680 0.5219 0.7132 +vn -0.4675 0.4538 0.7586 +vn -0.4483 0.5223 0.7254 +vn -0.5171 0.3086 0.7983 +vn -0.5036 0.3822 0.7748 +vn -0.4975 0.3089 0.8106 +vn -0.4839 0.3826 0.7871 +vn -0.5354 0.1562 0.8300 +vn -0.5278 0.2332 0.8168 +vn -0.5158 0.1564 0.8423 +vn -0.5081 0.2334 0.8291 +vn -0.5416 -0.0000 0.8407 +vn -0.5400 0.0784 0.8380 +vn -0.5219 -0.0000 0.8530 +vn -0.5204 0.0784 0.8503 +vn 0.0631 0.1406 -0.9881 +vn 0.0672 0.0705 -0.9952 +vn 0.0686 0.0000 -0.9976 +vn 0.0466 0.2776 -0.9596 +vn 0.0562 0.2097 -0.9761 +vn 0.0197 0.4079 -0.9128 +vn 0.0344 0.3438 -0.9384 +vn -0.0171 0.5281 -0.8490 +vn 0.0025 0.4694 -0.8830 +vn -0.0629 0.6353 -0.7697 +vn -0.0389 0.5835 -0.8112 +vn -0.1164 0.7269 -0.6768 +vn -0.0888 0.6832 -0.7248 +vn -0.1765 0.8005 -0.5727 +vn -0.1458 0.7661 -0.6260 +vn -0.2416 0.8545 -0.4599 +vn -0.2085 0.8301 -0.5172 +vn -0.3101 0.8874 -0.3411 +vn -0.2755 0.8736 -0.4011 +vn -0.3803 0.8985 -0.2194 +vn -0.3451 0.8957 -0.2805 +vn -0.4506 0.8874 -0.0976 +vn -0.4155 0.8957 -0.1583 +vn -0.5191 0.8545 0.0211 +vn -0.4851 0.8736 -0.0377 +vn -0.5841 0.8005 0.1339 +vn -0.5521 0.8301 0.0784 +vn -0.6442 0.7269 0.2381 +vn -0.6149 0.7661 0.1872 +vn -0.6978 0.6353 0.3309 +vn -0.6719 0.6832 0.2860 +vn -0.7435 0.5281 0.4102 +vn -0.7217 0.5835 0.3724 +vn -0.7803 0.4079 0.4740 +vn -0.7631 0.4694 0.4442 +vn -0.8073 0.2776 0.5208 +vn -0.7951 0.3438 0.4996 +vn -0.8237 0.1405 0.5493 +vn -0.8169 0.2097 0.5374 +vn -0.8293 -0.0000 0.5589 +vn -0.8279 0.0705 0.5565 +vn -0.4426 0.0874 -0.8925 +vn -0.4400 0.0438 -0.8969 +vn -0.4391 -0.0000 -0.8984 +vn -0.4528 0.1727 -0.8747 +vn -0.4469 0.1304 -0.8850 +vn -0.4696 0.2537 -0.8457 +vn -0.4604 0.2138 -0.8616 +vn -0.4925 0.3284 -0.8060 +vn -0.4803 0.2920 -0.8271 +vn -0.5209 0.3951 -0.7567 +vn -0.5060 0.3629 -0.7824 +vn -0.5542 0.4521 -0.6989 +vn -0.5370 0.4249 -0.7287 +vn -0.5916 0.4979 -0.6341 +vn -0.5725 0.4764 -0.6673 +vn -0.6321 0.5314 -0.5640 +vn -0.6115 0.5162 -0.5996 +vn -0.6747 0.5519 -0.4901 +vn -0.6532 0.5433 -0.5274 +vn -0.7184 0.5588 -0.4144 +vn -0.6965 0.5571 -0.4524 +vn -0.7620 0.5519 -0.3387 +vn -0.7403 0.5571 -0.3764 +vn -0.8046 0.5314 -0.2648 +vn -0.7835 0.5433 -0.3014 +vn -0.8451 0.4979 -0.1947 +vn -0.8252 0.5162 -0.2292 +vn -0.8825 0.4521 -0.1299 +vn -0.8642 0.4764 -0.1615 +vn -0.9158 0.3951 -0.0721 +vn -0.8997 0.4249 -0.1000 +vn -0.9442 0.3284 -0.0228 +vn -0.9307 0.3629 -0.0463 +vn -0.9671 0.2537 0.0169 +vn -0.9564 0.2920 -0.0017 +vn -0.9839 0.1727 0.0459 +vn -0.9763 0.2138 0.0328 +vn -0.9941 0.0874 0.0637 +vn -0.9899 0.1304 0.0563 +vn -0.9976 -0.0000 0.0696 +vn -0.9967 0.0438 0.0681 +vn -0.6665 -0.6374 0.3867 +vn -0.6207 -0.6375 0.4565 +vn -0.5674 -0.6414 0.5164 +vn -0.5083 -0.6466 0.5688 +vn -0.4450 -0.6486 0.6175 +vn -0.3785 -0.6502 0.6588 +vn -0.3087 -0.6501 0.6944 +vn -0.2362 -0.6459 0.7260 +vn -0.1613 -0.6399 0.7514 +vn -0.0828 -0.6339 0.7690 +vn 0.0001 -0.6302 0.7764 +vn 0.4885 -0.6378 0.5954 +vn 0.5308 -0.6403 0.5553 +vn 0.5694 -0.6415 0.5141 +vn 0.6054 -0.6418 0.4707 +vn 0.6362 -0.6425 0.4272 +vn 0.6616 -0.6441 0.3838 +vn 0.6861 -0.6443 0.3380 +vn 0.7083 -0.6438 0.2894 +vn 0.7276 -0.6433 0.2383 +vn 0.7433 -0.6431 0.1843 +vn 0.7555 -0.6429 0.1261 +vn 0.0236 0.9536 -0.3001 +vn 0.0471 0.9536 -0.2973 +vn -0.0000 0.9536 -0.3010 +vn 0.0254 0.9463 -0.3222 +vn -0.0000 0.9463 -0.3232 +vn 0.0506 0.9463 -0.3193 +vn 0.0703 0.9536 -0.2927 +vn 0.0930 0.9536 -0.2863 +vn 0.0755 0.9463 -0.3143 +vn 0.0999 0.9463 -0.3074 +vn 0.1152 0.9536 -0.2781 +vn 0.1366 0.9536 -0.2682 +vn 0.1237 0.9463 -0.2986 +vn 0.1468 0.9463 -0.2880 +vn 0.1573 0.9536 -0.2566 +vn 0.1769 0.9536 -0.2435 +vn 0.1689 0.9463 -0.2756 +vn 0.1900 0.9463 -0.2615 +vn 0.1955 0.9536 -0.2289 +vn 0.2128 0.9536 -0.2128 +vn 0.2099 0.9463 -0.2458 +vn 0.2286 0.9463 -0.2286 +vn 0.2289 0.9536 -0.1955 +vn 0.2435 0.9536 -0.1769 +vn 0.2458 0.9463 -0.2099 +vn 0.2615 0.9463 -0.1900 +vn 0.2566 0.9536 -0.1573 +vn 0.2682 0.9536 -0.1366 +vn 0.2756 0.9463 -0.1689 +vn 0.2880 0.9463 -0.1467 +vn 0.2781 0.9536 -0.1152 +vn 0.2863 0.9536 -0.0930 +vn 0.2986 0.9463 -0.1237 +vn 0.3075 0.9463 -0.0999 +vn 0.2927 0.9536 -0.0703 +vn 0.2973 0.9536 -0.0471 +vn 0.3144 0.9463 -0.0755 +vn 0.3193 0.9463 -0.0506 +vn 0.3001 0.9536 -0.0236 +vn 0.3010 0.9536 -0.0000 +vn 0.3223 0.9463 -0.0254 +vn 0.3233 0.9463 -0.0000 +vn 0.3001 0.9536 0.0236 +vn 0.2973 0.9536 0.0471 +vn 0.3223 0.9463 0.0254 +vn 0.3193 0.9463 0.0506 +vn 0.2927 0.9536 0.0703 +vn 0.2863 0.9536 0.0930 +vn 0.3144 0.9463 0.0755 +vn 0.3075 0.9463 0.0999 +vn 0.2781 0.9536 0.1152 +vn 0.2682 0.9536 0.1366 +vn 0.2987 0.9463 0.1237 +vn 0.2881 0.9463 0.1468 +vn 0.2566 0.9536 0.1573 +vn 0.2435 0.9536 0.1769 +vn 0.2756 0.9463 0.1689 +vn 0.2615 0.9463 0.1900 +vn 0.2289 0.9536 0.1955 +vn 0.2128 0.9536 0.2128 +vn 0.2458 0.9463 0.2099 +vn 0.2286 0.9463 0.2286 +vn 0.1955 0.9536 0.2289 +vn 0.1769 0.9536 0.2435 +vn 0.2099 0.9463 0.2458 +vn 0.1900 0.9463 0.2615 +vn 0.1573 0.9536 0.2566 +vn 0.1366 0.9536 0.2682 +vn 0.1689 0.9463 0.2756 +vn 0.1468 0.9463 0.2880 +vn 0.1152 0.9536 0.2781 +vn 0.0930 0.9536 0.2863 +vn 0.1237 0.9463 0.2986 +vn 0.0999 0.9463 0.3074 +vn 0.0703 0.9536 0.2927 +vn 0.0471 0.9536 0.2973 +vn 0.0755 0.9463 0.3143 +vn 0.0506 0.9463 0.3193 +vn 0.0236 0.9536 0.3001 +vn -0.0000 0.9536 0.3010 +vn 0.0254 0.9463 0.3222 +vn 0.0000 0.9463 0.3232 +vn -0.0236 0.9536 0.3001 +vn -0.0471 0.9536 0.2973 +vn -0.0254 0.9463 0.3223 +vn -0.0506 0.9463 0.3193 +vn -0.0703 0.9536 0.2927 +vn -0.0930 0.9536 0.2863 +vn -0.0755 0.9463 0.3143 +vn -0.0999 0.9463 0.3074 +vn -0.1152 0.9536 0.2781 +vn -0.1366 0.9536 0.2682 +vn -0.1237 0.9463 0.2986 +vn -0.1468 0.9463 0.2880 +vn -0.1573 0.9536 0.2566 +vn -0.1769 0.9536 0.2435 +vn -0.1689 0.9463 0.2756 +vn -0.1900 0.9463 0.2615 +vn -0.1955 0.9536 0.2289 +vn -0.2128 0.9536 0.2128 +vn -0.2099 0.9463 0.2458 +vn -0.2286 0.9463 0.2286 +vn -0.2289 0.9536 0.1955 +vn -0.2435 0.9536 0.1769 +vn -0.2458 0.9463 0.2099 +vn -0.2615 0.9463 0.1900 +vn -0.2566 0.9536 0.1573 +vn -0.2682 0.9536 0.1366 +vn -0.2756 0.9463 0.1689 +vn -0.2880 0.9463 0.1468 +vn -0.2780 0.9536 0.1152 +vn -0.2862 0.9536 0.0930 +vn -0.2986 0.9463 0.1237 +vn -0.3074 0.9463 0.0999 +vn -0.2926 0.9536 0.0703 +vn -0.2973 0.9536 0.0471 +vn -0.3143 0.9463 0.0755 +vn -0.3193 0.9463 0.0506 +vn -0.3001 0.9536 0.0236 +vn -0.3010 0.9536 0.0000 +vn -0.3223 0.9463 0.0254 +vn -0.3232 0.9463 -0.0000 +vn -0.3000 0.9536 -0.0236 +vn -0.2973 0.9536 -0.0471 +vn -0.3223 0.9463 -0.0254 +vn -0.3193 0.9463 -0.0506 +vn -0.2926 0.9536 -0.0703 +vn -0.2862 0.9536 -0.0930 +vn -0.3143 0.9463 -0.0755 +vn -0.3074 0.9463 -0.0999 +vn -0.2780 0.9536 -0.1152 +vn -0.2682 0.9536 -0.1366 +vn -0.2986 0.9463 -0.1237 +vn -0.2880 0.9463 -0.1467 +vn -0.2566 0.9536 -0.1573 +vn -0.2435 0.9536 -0.1769 +vn -0.2756 0.9463 -0.1689 +vn -0.2615 0.9463 -0.1900 +vn -0.2289 0.9536 -0.1955 +vn -0.2128 0.9536 -0.2128 +vn -0.2458 0.9463 -0.2099 +vn -0.2286 0.9463 -0.2286 +vn -0.1955 0.9536 -0.2289 +vn -0.1769 0.9536 -0.2435 +vn -0.2099 0.9463 -0.2458 +vn -0.1900 0.9463 -0.2615 +vn -0.1573 0.9536 -0.2566 +vn -0.1366 0.9536 -0.2682 +vn -0.1689 0.9463 -0.2756 +vn -0.1468 0.9463 -0.2880 +vn -0.1152 0.9536 -0.2781 +vn -0.0930 0.9536 -0.2863 +vn -0.1237 0.9463 -0.2986 +vn -0.0999 0.9463 -0.3074 +vn -0.0703 0.9536 -0.2927 +vn -0.0471 0.9536 -0.2973 +vn -0.0755 0.9463 -0.3143 +vn -0.0506 0.9463 -0.3193 +vn -0.0236 0.9536 -0.3001 +vn -0.0254 0.9463 -0.3222 +vn 0.5653 -0.6490 -0.5091 +vn 0.5064 -0.6553 -0.5604 +vn 0.4437 -0.6584 -0.6079 +vn 0.3774 -0.6577 -0.6519 +vn 0.3070 -0.6590 -0.6867 +vn 0.2353 -0.6560 -0.7171 +vn 0.1575 -0.6566 -0.7376 +vn -0.7973 -0.5764 -0.1790 +vn -0.7767 -0.5886 -0.2241 +vn -0.7560 -0.5973 -0.2676 +vn -0.7346 -0.6035 -0.3101 +vn -0.7128 -0.6057 -0.3536 +vn -0.6899 -0.6059 -0.3961 +vn -0.6663 -0.6036 -0.4378 +vn -0.6406 -0.6004 -0.4786 +vn -0.6134 -0.5949 -0.5195 +vn -0.5856 -0.5861 -0.5599 +vn -0.5576 -0.5745 -0.5992 +vn 0.0695 -0.9791 0.1912 +vn 0.0482 -0.9795 0.1954 +vn 0.0452 -0.9862 0.1594 +vn 0.0734 -0.9853 0.1543 +vn 0.0718 -0.9698 0.2332 +vn 0.0529 -0.9700 0.2374 +vn 0.0269 -0.9794 0.2003 +vn 0.0334 -0.9698 0.2415 +vn 0.0213 -0.9862 0.1644 +vn 0.1039 -0.9792 0.1742 +vn 0.0929 -0.9764 0.1949 +vn 0.1374 -0.9700 0.2007 +vn 0.1231 -0.9692 0.2134 +vn 0.0904 -0.9690 0.2300 +vn 0.1152 -0.9646 0.2372 +vn 0.1150 -0.9858 0.1223 +vn 0.1379 -0.9796 0.1464 +vn 0.1203 -0.9797 0.1602 +vn 0.0954 -0.9860 0.1365 +vn 0.1671 -0.9702 0.1757 +vn 0.1518 -0.9702 0.1886 +vn 0.1673 -0.9793 0.1140 +vn 0.1525 -0.9797 0.1299 +vn 0.1324 -0.9857 0.1045 +vn 0.1514 -0.9850 0.0827 +vn 0.1934 -0.9702 0.1463 +vn 0.1807 -0.9703 0.1605 +vn 0.1851 -0.9794 0.0805 +vn 0.1886 -0.9766 0.1034 +vn 0.2273 -0.9704 0.0818 +vn 0.2230 -0.9697 0.0997 +vn 0.2061 -0.9695 0.1327 +vn 0.2302 -0.9652 0.1238 +vn 0.1631 -0.9861 0.0318 +vn 0.1961 -0.9799 0.0374 +vn 0.1902 -0.9800 0.0590 +vn 0.1579 -0.9859 0.0552 +vn 0.2365 -0.9706 0.0437 +vn 0.2319 -0.9707 0.0634 +vn 0.2008 -0.9796 -0.0068 +vn 0.1979 -0.9801 0.0151 +vn 0.1659 -0.9861 0.0081 +vn 0.1694 -0.9853 -0.0211 +vn 0.2406 -0.9706 0.0048 +vn 0.2389 -0.9708 0.0236 +vn 0.1957 -0.9797 -0.0440 +vn 0.2119 -0.9769 -0.0275 +vn 0.2303 -0.9708 -0.0673 +vn 0.2368 -0.9702 -0.0504 +vn 0.2424 -0.9701 -0.0138 +vn 0.2564 -0.9659 -0.0349 +vn 0.1491 -0.9863 -0.0707 +vn 0.1790 -0.9801 -0.0854 +vn 0.1871 -0.9802 -0.0646 +vn 0.1581 -0.9862 -0.0487 +vn 0.2157 -0.9709 -0.1039 +vn 0.2232 -0.9710 -0.0852 +vn 0.1569 -0.9798 -0.1241 +vn 0.1676 -0.9803 -0.1047 +vn 0.1376 -0.9862 -0.0918 +vn 0.1231 -0.9854 -0.1173 +vn 0.1953 -0.9709 -0.1383 +vn 0.2056 -0.9711 -0.1212 +vn 0.1307 -0.9798 -0.1510 +vn 0.1538 -0.9770 -0.1475 +vn 0.1452 -0.9710 -0.1899 +vn 0.1600 -0.9706 -0.1800 +vn 0.1860 -0.9705 -0.1535 +vn 0.1848 -0.9664 -0.1787 +vn 0.0771 -0.9865 -0.1444 +vn 0.0923 -0.9803 -0.1745 +vn 0.1113 -0.9805 -0.1621 +vn 0.0986 -0.9863 -0.1324 +vn 0.1112 -0.9712 -0.2109 +vn 0.1286 -0.9712 -0.2004 +vn 0.0519 -0.9799 -0.1925 +vn 0.0714 -0.9805 -0.1830 +vn 0.0545 -0.9867 -0.1530 +vn 0.0276 -0.9861 -0.1640 +vn 0.0747 -0.9710 -0.2269 +vn 0.0933 -0.9712 -0.2192 +vn 0.0144 -0.9799 -0.1988 +vn 0.0357 -0.9770 -0.2101 +vn 0.0039 -0.9710 -0.2392 +vn 0.0215 -0.9706 -0.2398 +vn 0.0582 -0.9706 -0.2337 +vn 0.0425 -0.9665 -0.2532 +vn -0.0240 -0.9869 -0.1597 +vn -0.0301 -0.9802 -0.1956 +vn -0.0073 -0.9805 -0.1962 +vn 0.0001 -0.9870 -0.1608 +vn -0.0360 -0.9711 -0.2361 +vn -0.0161 -0.9711 -0.2380 +vn 0.0448 -0.9914 -0.1234 +vn 0.0224 -0.9917 -0.1267 +vn 0.0648 -0.9908 -0.1185 +vn 0.0385 -0.9948 -0.0947 +vn 0.0589 -0.9941 -0.0912 +vn 0.0204 -0.9952 -0.0960 +vn 0.0749 -0.9958 0.0535 +vn 0.0557 -0.9967 0.0599 +vn 0.0543 -0.9977 0.0409 +vn 0.0730 -0.9968 0.0326 +vn 0.0830 -0.9940 0.0712 +vn 0.0622 -0.9948 0.0807 +vn 0.0459 -0.9952 0.0859 +vn 0.0401 -0.9971 0.0649 +vn 0.0347 -0.9984 0.0444 +vn 0.0235 -0.9975 0.0666 +vn 0.0179 -0.9987 0.0474 +vn 0.0281 -0.9954 0.0920 +vn 0.0072 -0.9975 0.0697 +vn 0.0121 -0.9952 0.0973 +vn 0.0032 -0.9988 0.0491 +vn 0.0690 -0.9976 -0.0073 +vn 0.0662 -0.9974 -0.0288 +vn 0.0834 -0.9960 -0.0307 +vn 0.0861 -0.9962 -0.0104 +vn 0.0614 -0.9970 -0.0462 +vn 0.0806 -0.9957 -0.0462 +vn 0.1025 -0.9935 -0.0486 +vn 0.1052 -0.9939 -0.0343 +vn 0.1080 -0.9941 -0.0122 +vn 0.0487 -0.9984 -0.0291 +vn 0.0436 -0.9978 -0.0497 +vn 0.0496 -0.9988 -0.0035 +vn 0.0273 -0.9993 -0.0247 +vn 0.0299 -0.9996 0.0010 +vn 0.0259 -0.9984 -0.0500 +vn 0.0108 -0.9997 -0.0226 +vn 0.0066 -0.9988 -0.0486 +vn 0.0151 -0.9999 0.0033 +vn -0.0042 -1.0000 0.0059 +vn -0.0076 -0.9998 -0.0202 +vn -0.0099 -0.9989 -0.0467 +vn 0.1239 -0.9906 -0.0583 +vn 0.1292 -0.9908 -0.0404 +vn 0.1356 -0.9906 -0.0162 +vn 0.1129 -0.9933 0.0231 +vn 0.1358 -0.9904 0.0266 +vn 0.1328 -0.9901 0.0452 +vn 0.1111 -0.9930 0.0402 +vn 0.1251 -0.9901 0.0635 +vn 0.1087 -0.9924 0.0571 +vn 0.1357 -0.9907 0.0089 +vn 0.1116 -0.9937 0.0087 +vn 0.0890 -0.9960 0.0116 +vn 0.0903 -0.9955 0.0273 +vn 0.0717 -0.9973 0.0146 +vn 0.0517 -0.9985 0.0192 +vn 0.0312 -0.9993 0.0224 +vn 0.0172 -0.9995 0.0267 +vn -0.0003 -0.9995 0.0301 +vn 0.1122 -0.9904 0.0804 +vn 0.0952 -0.9905 0.0989 +vn 0.0973 -0.9933 0.0616 +vn 0.0576 -0.9960 -0.0684 +vn 0.0385 -0.9968 -0.0704 +vn 0.0222 -0.9971 -0.0723 +vn 0.0041 -0.9973 -0.0729 +vn 0.0024 -0.9952 -0.0975 +vn -0.0127 -0.9974 -0.0710 +vn -0.0153 -0.9953 -0.0960 +vn 0.0924 -0.9947 0.0451 +vn 0.0877 -0.9928 -0.0812 +vn 0.0958 -0.9933 -0.0651 +vn 0.0760 -0.9950 -0.0652 +vn 0.0759 -0.9935 -0.0846 +vn 0.1161 -0.9904 -0.0754 +vn 0.1017 -0.9903 -0.0945 +vn 0.0780 -0.9909 0.1099 +vn 0.0580 -0.9913 0.1180 +vn 0.0358 -0.9915 0.1248 +vn 0.0162 -0.9916 0.1282 +vn -0.0188 -0.9918 -0.1263 +vn 0.0009 -0.9918 -0.1278 +vn 0.0851 -0.9905 -0.1076 +vn -0.0025 -0.9861 0.1662 +vn 0.0049 -0.9795 0.2014 +vn -0.0165 -0.9790 0.2031 +vn -0.0307 -0.9850 0.1698 +vn 0.0136 -0.9699 0.2429 +vn -0.0052 -0.9697 0.2443 +vn -0.0379 -0.9763 0.2130 +vn -0.0546 -0.9790 0.1966 +vn -0.0242 -0.9688 0.2466 +vn -0.0603 -0.9687 0.2406 +vn -0.0448 -0.9642 0.2612 +vn -0.0776 -0.9696 0.2319 +vn -0.0804 -0.9855 0.1493 +vn -0.0571 -0.9857 0.1584 +vn -0.0741 -0.9794 0.1879 +vn -0.0944 -0.9792 0.1795 +vn -0.0954 -0.9698 0.2243 +vn -0.1134 -0.9697 0.2164 +vn -0.1014 -0.9854 0.1371 +vn -0.1129 -0.9794 0.1674 +vn -0.1313 -0.9790 0.1560 +vn -0.1251 -0.9845 0.1231 +vn -0.1304 -0.9699 0.2058 +vn -0.1464 -0.9696 0.1958 +vn -0.1545 -0.9763 0.1517 +vn -0.1583 -0.9790 0.1287 +vn -0.1630 -0.9688 0.1866 +vn -0.1888 -0.9688 0.1605 +vn -0.1883 -0.9644 0.1859 +vn -0.1979 -0.9697 0.1430 +vn -0.1521 -0.9854 0.0764 +vn -0.1402 -0.9852 0.0985 +vn -0.1695 -0.9793 0.1102 +vn -0.1808 -0.9793 0.0913 +vn -0.2073 -0.9700 0.1270 +vn -0.2171 -0.9700 0.1096 +vn -0.1604 -0.9856 0.0532 +vn -0.1887 -0.9795 0.0707 +vn -0.1968 -0.9791 0.0505 +vn -0.1709 -0.9849 0.0282 +vn -0.2251 -0.9701 0.0910 +vn -0.2322 -0.9699 0.0736 +vn -0.2132 -0.9765 0.0333 +vn -0.2023 -0.9792 0.0131 +vn -0.2398 -0.9692 0.0564 +vn -0.2453 -0.9692 0.0196 +vn -0.2600 -0.9647 0.0408 +vn -0.2428 -0.9701 0.0011 +vn -0.1668 -0.9856 -0.0262 +vn -0.1692 -0.9856 -0.0000 +vn -0.2008 -0.9796 -0.0086 +vn -0.1989 -0.9795 -0.0311 +vn -0.2412 -0.9703 -0.0179 +vn -0.2388 -0.9703 -0.0377 +vn -0.1601 -0.9858 -0.0504 +vn -0.1930 -0.9798 -0.0528 +vn -0.1879 -0.9794 -0.0740 +vn -0.1540 -0.9851 -0.0763 +vn -0.2345 -0.9704 -0.0574 +vn -0.2297 -0.9703 -0.0760 +vn -0.1912 -0.9767 -0.0973 +vn -0.1708 -0.9794 -0.1075 +vn -0.2255 -0.9697 -0.0938 +vn -0.2081 -0.9698 -0.1273 +vn -0.2322 -0.9655 -0.1183 +vn -0.1959 -0.9705 -0.1405 +vn -0.1186 -0.9860 -0.1175 +vn -0.1365 -0.9859 -0.0968 +vn -0.1565 -0.9798 -0.1242 +vn -0.1419 -0.9798 -0.1412 +vn -0.1832 -0.9707 -0.1552 +vn -0.1698 -0.9707 -0.1701 +vn -0.0975 -0.9865 -0.1319 +vn -0.1238 -0.9801 -0.1551 +vn -0.1071 -0.9797 -0.1694 +vn -0.0764 -0.9859 -0.1487 +vn -0.1548 -0.9708 -0.1831 +vn -0.1396 -0.9707 -0.1956 +vn -0.0963 -0.9770 -0.1905 +vn -0.0733 -0.9798 -0.1861 +vn -0.1257 -0.9703 -0.2069 +vn -0.0922 -0.9703 -0.2237 +vn -0.1165 -0.9661 -0.2303 +vn -0.0747 -0.9709 -0.2276 +vn -0.0495 -0.9868 -0.1540 +vn -0.0522 -0.9804 -0.1901 +vn -0.0560 -0.9711 -0.2319 +vn -0.0613 -0.9914 -0.1155 +vn -0.0795 -0.9911 -0.1071 +vn -0.0491 -0.9950 -0.0871 +vn -0.0695 -0.9945 -0.0780 +vn -0.0998 -0.9908 -0.0915 +vn -0.0873 -0.9939 -0.0677 +vn -0.0424 -0.9978 0.0503 +vn -0.0403 -0.9965 0.0729 +vn -0.0587 -0.9956 0.0728 +vn -0.0621 -0.9968 0.0508 +vn -0.0251 -0.9985 0.0491 +vn -0.0238 -0.9971 0.0721 +vn -0.0234 -0.9952 0.0954 +vn -0.0416 -0.9946 0.0951 +vn -0.0631 -0.9935 0.0942 +vn -0.0112 -0.9987 0.0496 +vn -0.0074 -0.9975 0.0700 +vn -0.0042 -0.9953 0.0965 +vn -0.0692 -0.9975 0.0127 +vn -0.0900 -0.9958 0.0152 +vn -0.0918 -0.9958 -0.0020 +vn -0.0728 -0.9973 -0.0062 +vn -0.1112 -0.9936 0.0213 +vn -0.1132 -0.9936 -0.0003 +vn -0.1157 -0.9930 -0.0216 +vn -0.0962 -0.9951 -0.0210 +vn -0.0733 -0.9969 -0.0298 +vn -0.0589 -0.9977 -0.0348 +vn -0.0536 -0.9985 -0.0100 +vn -0.0418 -0.9984 -0.0388 +vn -0.0361 -0.9993 -0.0121 +vn -0.0354 -0.9993 0.0103 +vn -0.0498 -0.9987 0.0124 +vn -0.0253 -0.9988 -0.0431 +vn -0.0245 -0.9996 -0.0163 +vn -0.0229 -0.9997 0.0082 +vn -0.1411 -0.9900 0.0020 +vn -0.1388 -0.9901 -0.0229 +vn -0.1386 -0.9900 0.0250 +vn -0.1059 -0.9929 0.0540 +vn -0.0998 -0.9925 0.0699 +vn -0.1199 -0.9894 0.0820 +vn -0.1285 -0.9897 0.0634 +vn -0.0920 -0.9919 0.0879 +vn -0.1060 -0.9893 0.1004 +vn -0.1337 -0.9901 0.0435 +vn -0.1109 -0.9932 0.0357 +vn -0.0865 -0.9957 0.0331 +vn -0.0643 -0.9974 0.0327 +vn -0.0817 -0.9953 0.0512 +vn -0.0454 -0.9985 0.0305 +vn -0.0309 -0.9991 0.0300 +vn -0.0177 -0.9994 0.0309 +vn -0.0885 -0.9898 0.1119 +vn -0.0787 -0.9928 0.0900 +vn -0.0693 -0.9901 0.1218 +vn -0.0617 -0.9966 -0.0540 +vn -0.0786 -0.9956 -0.0507 +vn -0.0434 -0.9971 -0.0617 +vn -0.0336 -0.9952 -0.0916 +vn -0.0289 -0.9973 -0.0673 +vn -0.0785 -0.9945 0.0697 +vn -0.1157 -0.9919 -0.0532 +vn -0.1003 -0.9930 -0.0622 +vn -0.0963 -0.9944 -0.0431 +vn -0.1165 -0.9925 -0.0365 +vn -0.1294 -0.9897 -0.0617 +vn -0.1344 -0.9900 -0.0430 +vn -0.0493 -0.9906 0.1275 +vn -0.0258 -0.9911 0.1306 +vn -0.0023 -0.9914 0.1307 +vn -0.0424 -0.9917 -0.1210 +vn -0.1166 -0.9903 -0.0752 +vn -0.0493 -0.9541 0.2956 +vn -0.0239 -0.9550 0.2956 +vn -0.0012 -0.9557 0.2943 +vn -0.0952 -0.9557 0.2786 +vn -0.0744 -0.9550 0.2870 +vn -0.1354 -0.9558 0.2610 +vn -0.1159 -0.9558 0.2701 +vn -0.1726 -0.9557 0.2383 +vn -0.1541 -0.9558 0.2503 +vn -0.2122 -0.9542 0.2110 +vn -0.1919 -0.9550 0.2261 +vn -0.2394 -0.9559 0.1703 +vn -0.2275 -0.9551 0.1898 +vn -0.2618 -0.9560 0.1325 +vn -0.2510 -0.9560 0.1517 +vn -0.2783 -0.9561 0.0922 +vn -0.2704 -0.9561 0.1127 +vn -0.2944 -0.9545 0.0467 +vn -0.2866 -0.9554 0.0713 +vn -0.2923 -0.9563 -0.0020 +vn -0.2939 -0.9556 0.0201 +vn -0.2880 -0.9565 -0.0456 +vn -0.2908 -0.9565 -0.0242 +vn -0.2778 -0.9566 -0.0881 +vn -0.2835 -0.9566 -0.0670 +vn -0.2643 -0.9550 -0.1345 +vn -0.2723 -0.9559 -0.1098 +vn -0.2338 -0.9569 -0.1724 +vn -0.2483 -0.9561 -0.1555 +vn -0.2047 -0.9571 -0.2052 +vn -0.2195 -0.9570 -0.1896 +vn -0.1714 -0.9571 -0.2337 +vn -0.1889 -0.9571 -0.2198 +vn -0.1335 -0.9554 -0.2636 +vn -0.1543 -0.9564 -0.2481 +vn -0.0865 -0.9573 -0.2759 +vn -0.1081 -0.9565 -0.2709 +vn -0.0435 -0.9574 -0.2855 +vn -0.0649 -0.9574 -0.2813 +vn 0.0002 -0.9574 -0.2888 +vn -0.0221 -0.9574 -0.2878 +vn 0.0482 -0.9555 -0.2910 +vn 0.0226 -0.9566 -0.2905 +vn 0.0936 -0.9574 -0.2731 +vn 0.0732 -0.9567 -0.2818 +vn 0.1341 -0.9574 -0.2556 +vn 0.1144 -0.9575 -0.2648 +vn 0.1713 -0.9574 -0.2326 +vn 0.1526 -0.9575 -0.2449 +vn 0.2115 -0.9554 -0.2061 +vn 0.1904 -0.9566 -0.2208 +vn 0.2377 -0.9572 -0.1650 +vn 0.2262 -0.9565 -0.1842 +vn 0.2601 -0.9572 -0.1271 +vn 0.2496 -0.9573 -0.1461 +vn 0.2767 -0.9570 -0.0867 +vn 0.2688 -0.9572 -0.1075 +vn 0.2935 -0.9551 -0.0415 +vn 0.2852 -0.9562 -0.0658 +vn 0.2907 -0.9568 0.0072 +vn 0.2926 -0.9561 -0.0151 +vn 0.2866 -0.9567 0.0508 +vn 0.2892 -0.9568 0.0294 +vn 0.2763 -0.9565 0.0933 +vn 0.2821 -0.9567 0.0719 +vn 0.2630 -0.9546 0.1397 +vn 0.2708 -0.9557 0.1151 +vn 0.2322 -0.9563 0.1778 +vn 0.2473 -0.9555 0.1605 +vn 0.2037 -0.9561 0.2105 +vn 0.2179 -0.9563 0.1949 +vn 0.1702 -0.9560 0.2388 +vn 0.1874 -0.9562 0.2249 +vn 0.1321 -0.9543 0.2682 +vn 0.1527 -0.9553 0.2532 +vn 0.0851 -0.9558 0.2813 +vn 0.1068 -0.9552 0.2760 +vn 0.0422 -0.9558 0.2908 +vn 0.0631 -0.9559 0.2867 +vn 0.0209 -0.9558 0.2931 +vn 0.9585 -0.0567 -0.2794 +vn 0.9820 -0.0510 -0.1817 +vn 0.9829 -0.0507 -0.1769 +vn 0.9790 -0.1017 -0.1765 +vn 0.9799 -0.1011 -0.1717 +vn 0.9552 -0.1131 -0.2737 +vn 0.9496 -0.1688 -0.2641 +vn 0.9741 -0.1518 -0.1679 +vn 0.9750 -0.1509 -0.1631 +vn 0.9671 -0.2009 -0.1559 +vn 0.9681 -0.1997 -0.1512 +vn 0.9419 -0.2235 -0.2507 +vn 0.9321 -0.2768 -0.2337 +vn 0.9583 -0.2488 -0.1406 +vn 0.9593 -0.2473 -0.1360 +vn 0.9476 -0.2951 -0.1221 +vn 0.9487 -0.2934 -0.1176 +vn 0.9202 -0.3283 -0.2131 +vn 0.9063 -0.3779 -0.1891 +vn 0.9352 -0.3397 -0.1005 +vn 0.9363 -0.3377 -0.0961 +vn 0.9210 -0.3821 -0.0759 +vn 0.9222 -0.3799 -0.0717 +vn 0.8906 -0.4251 -0.1617 +vn 0.8730 -0.4697 -0.1313 +vn 0.9052 -0.4222 -0.0485 +vn 0.9065 -0.4198 -0.0444 +vn 0.8879 -0.4597 -0.0185 +vn 0.8893 -0.4570 -0.0146 +vn 0.8538 -0.5114 -0.0979 +vn 0.8329 -0.5499 -0.0618 +vn 0.8692 -0.4943 0.0140 +vn 0.8707 -0.4915 0.0177 +vn 0.8491 -0.5259 0.0487 +vn 0.8508 -0.5229 0.0522 +vn 0.8106 -0.5851 -0.0231 +vn 0.7870 -0.6166 0.0178 +vn 0.8279 -0.5543 0.0855 +vn 0.8297 -0.5511 0.0887 +vn 0.8057 -0.5792 0.1240 +vn 0.8076 -0.5759 0.1271 +vn 0.7623 -0.6444 0.0607 +vn 0.7365 -0.6682 0.1054 +vn 0.7825 -0.6006 0.1642 +vn 0.7845 -0.5971 0.1670 +vn 0.7586 -0.6183 0.2057 +vn 0.7608 -0.6147 0.2083 +vn 0.7099 -0.6878 0.1515 +vn 0.6826 -0.7032 0.1988 +vn 0.7340 -0.6321 0.2482 +vn 0.7364 -0.6285 0.2506 +vn 0.7090 -0.6421 0.2916 +vn 0.7115 -0.6384 0.2937 +vn 0.6548 -0.7143 0.2471 +vn 0.6266 -0.7210 0.2959 +vn 0.6837 -0.6481 0.3355 +vn 0.6863 -0.6443 0.3374 +vn 0.6582 -0.6501 0.3797 +vn 0.6610 -0.6463 0.3813 +vn 0.5982 -0.7232 0.3451 +vn 0.5699 -0.7210 0.3942 +vn 0.6327 -0.6481 0.4239 +vn 0.6356 -0.6443 0.4252 +vn 0.6074 -0.6421 0.4678 +vn 0.6104 -0.6384 0.4689 +vn 0.5417 -0.7143 0.4431 +vn 0.5139 -0.7032 0.4913 +vn 0.5824 -0.6321 0.5111 +vn 0.5856 -0.6285 0.5120 +vn 0.5578 -0.6183 0.5537 +vn 0.5612 -0.6147 0.5543 +vn 0.4865 -0.6878 0.5387 +vn 0.4599 -0.6682 0.5848 +vn 0.5339 -0.6006 0.5952 +vn 0.5374 -0.5971 0.5955 +vn 0.5107 -0.5792 0.6353 +vn 0.5143 -0.5759 0.6355 +vn 0.4342 -0.6444 0.6295 +vn 0.4094 -0.6167 0.6724 +vn 0.4884 -0.5543 0.6739 +vn 0.4922 -0.5511 0.6738 +vn 0.4672 -0.5259 0.7107 +vn 0.4711 -0.5229 0.7104 +vn 0.3858 -0.5851 0.7133 +vn 0.3635 -0.5499 0.7519 +vn 0.4472 -0.4943 0.7454 +vn 0.4512 -0.4915 0.7449 +vn 0.4285 -0.4597 0.7779 +vn 0.4326 -0.4570 0.7772 +vn 0.3427 -0.5114 0.7881 +vn 0.3234 -0.4697 0.8215 +vn 0.4112 -0.4222 0.8079 +vn 0.4154 -0.4198 0.8070 +vn 0.3954 -0.3821 0.8353 +vn 0.3997 -0.3799 0.8342 +vn 0.3059 -0.4251 0.8519 +vn 0.2901 -0.3779 0.8792 +vn 0.3812 -0.3397 0.8598 +vn 0.3856 -0.3377 0.8586 +vn 0.3688 -0.2951 0.8814 +vn 0.3732 -0.2934 0.8801 +vn 0.2762 -0.3283 0.9033 +vn 0.2643 -0.2768 0.9239 +vn 0.3581 -0.2488 0.8999 +vn 0.3626 -0.2473 0.8985 +vn 0.3492 -0.2009 0.9152 +vn 0.3538 -0.1997 0.9137 +vn 0.2545 -0.2235 0.9409 +vn 0.2468 -0.1688 0.9542 +vn 0.3423 -0.1518 0.9272 +vn 0.3469 -0.1509 0.9257 +vn 0.3373 -0.1017 0.9359 +vn 0.3420 -0.1011 0.9343 +vn 0.2413 -0.1131 0.9638 +vn 0.2379 -0.0567 0.9696 +vn 0.3343 -0.0510 0.9411 +vn 0.3390 -0.0507 0.9394 +vn 0.6953 0.0215 0.7184 +vn 0.5445 0.0365 0.8380 +vn 0.4502 0.0449 0.8918 +vn 0.5435 0.0722 0.8363 +vn 0.4533 0.0855 0.8872 +vn 0.6943 0.0437 0.7184 +vn 0.6967 0.0650 0.7145 +vn 0.5490 0.1060 0.8291 +vn 0.4587 0.1266 0.8795 +vn 0.5555 0.1402 0.8196 +vn 0.4652 0.1687 0.8690 +vn 0.7002 0.0858 0.7088 +vn 0.7045 0.1060 0.7017 +vn 0.5618 0.1739 0.8088 +vn 0.4739 0.2076 0.8558 +vn 0.5722 0.2040 0.7943 +vn 0.4852 0.2451 0.8394 +vn 0.7093 0.1255 0.6936 +vn 0.7147 0.1443 0.6844 +vn 0.5821 0.2346 0.7785 +vn 0.4961 0.2829 0.8209 +vn 0.5931 0.2629 0.7610 +vn 0.5100 0.3158 0.8001 +vn 0.7210 0.1622 0.6737 +vn 0.7279 0.1790 0.6620 +vn 0.6058 0.2890 0.7412 +vn 0.5259 0.3476 0.7763 +vn 0.6185 0.3143 0.7202 +vn 0.5415 0.3783 0.7508 +vn 0.7352 0.1951 0.6492 +vn 0.7435 0.2094 0.6351 +vn 0.6322 0.3373 0.6975 +vn 0.5582 0.4057 0.7237 +vn 0.6468 0.3579 0.6735 +vn 0.5762 0.4303 0.6949 +vn 0.7521 0.2225 0.6203 +vn 0.7611 0.2343 0.6048 +vn 0.6617 0.3767 0.6483 +vn 0.5949 0.4527 0.6642 +vn 0.6769 0.3937 0.6219 +vn 0.6136 0.4729 0.6323 +vn 0.7706 0.2448 0.5885 +vn 0.7804 0.2538 0.5715 +vn 0.6925 0.4085 0.5947 +vn 0.6332 0.4891 0.5999 +vn 0.7092 0.4193 0.5667 +vn 0.6538 0.5010 0.5671 +vn 0.7905 0.2613 0.5540 +vn 0.8009 0.2667 0.5361 +vn 0.7274 0.4253 0.5385 +vn 0.6750 0.5091 0.5340 +vn 0.7466 0.4266 0.5105 +vn 0.6971 0.5136 0.5002 +vn 0.8117 0.2699 0.5180 +vn 0.8227 0.2708 0.4998 +vn 0.7654 0.4267 0.4818 +vn 0.7190 0.5165 0.4651 +vn 0.7839 0.4231 0.4544 +vn 0.7401 0.5161 0.4311 +vn 0.8338 0.2697 0.4817 +vn 0.8446 0.2640 0.4657 +vn 0.8015 0.4164 0.4292 +vn 0.7608 0.5133 0.3970 +vn 0.8193 0.4100 0.4009 +vn 0.7802 0.5125 0.3588 +vn 0.8566 0.2495 0.4517 +vn 0.8686 0.2420 0.4324 +vn 0.8385 0.3997 0.3704 +vn 0.8016 0.5033 0.3227 +vn 0.8551 0.3885 0.3434 +vn 0.8253 0.4850 0.2892 +vn 0.8780 0.2491 0.4088 +vn 0.8861 0.2510 0.3896 +vn 0.8674 0.3900 0.3090 +vn 0.8438 0.4745 0.2505 +vn 0.8798 0.3846 0.2793 +vn 0.8595 0.4604 0.2219 +vn 0.8953 0.2438 0.3729 +vn 0.9046 0.2338 0.3563 +vn 0.8938 0.3702 0.2532 +vn 0.8769 0.4404 0.1924 +vn 0.9077 0.3541 0.2252 +vn 0.8936 0.4193 0.1601 +vn 0.9136 0.2221 0.3406 +vn 0.9220 0.2089 0.3259 +vn 0.9207 0.3351 0.2001 +vn 0.9088 0.3956 0.1328 +vn 0.9332 0.3123 0.1781 +vn 0.9234 0.3683 0.1081 +vn 0.9299 0.1943 0.3122 +vn 0.9373 0.1784 0.2996 +vn 0.9449 0.2864 0.1583 +vn 0.9372 0.3382 0.0853 +vn 0.9556 0.2582 0.1419 +vn 0.9499 0.3059 0.0636 +vn 0.9439 0.1614 0.2880 +vn 0.9499 0.1434 0.2777 +vn 0.9653 0.2286 0.1266 +vn 0.9615 0.2715 0.0430 +vn 0.9737 0.1988 0.1108 +vn 0.9715 0.2359 0.0249 +vn 0.9552 0.1246 0.2686 +vn 0.9597 0.1050 0.2608 +vn 0.9809 0.1679 0.0983 +vn 0.9799 0.1991 0.0109 +vn 0.9868 0.1354 0.0884 +vn 0.9870 0.1606 -0.0019 +vn 0.9634 0.0848 0.2544 +vn 0.9663 0.0641 0.2492 +vn 0.9916 0.1022 0.0794 +vn 0.9926 0.1207 -0.0122 +vn 0.9952 0.0685 0.0704 +vn 0.9966 0.0803 -0.0207 +vn 0.9685 0.0430 0.2454 +vn 0.9698 0.0216 0.2431 +vn 0.9973 0.0345 0.0653 +vn 0.9988 0.0403 -0.0265 +vn 0.3778 0.0482 0.9246 +vn 0.3209 0.0523 0.9457 +vn 0.2568 0.0563 0.9648 +vn 0.3236 0.1019 0.9407 +vn 0.2596 0.1103 0.9594 +vn 0.3808 0.0951 0.9198 +vn 0.3863 0.1411 0.9115 +vn 0.3289 0.1525 0.9320 +vn 0.2646 0.1635 0.9504 +vn 0.3364 0.2030 0.9196 +vn 0.2721 0.2181 0.9372 +vn 0.3923 0.1883 0.9003 +vn 0.4004 0.2333 0.8862 +vn 0.3452 0.2514 0.9043 +vn 0.2818 0.2706 0.9205 +vn 0.3556 0.2979 0.8859 +vn 0.2936 0.3192 0.9010 +vn 0.4108 0.2765 0.8688 +vn 0.4230 0.3188 0.8482 +vn 0.3694 0.3427 0.8638 +vn 0.3074 0.3690 0.8771 +vn 0.3833 0.3859 0.8391 +vn 0.3228 0.4153 0.8504 +vn 0.4353 0.3582 0.8259 +vn 0.4502 0.3960 0.8003 +vn 0.3991 0.4264 0.8117 +vn 0.3399 0.4586 0.8210 +vn 0.4170 0.4650 0.7809 +vn 0.3592 0.4983 0.7891 +vn 0.4669 0.4322 0.7715 +vn 0.4845 0.4641 0.7416 +vn 0.4363 0.4985 0.7491 +vn 0.3791 0.5366 0.7539 +vn 0.4041 0.5684 0.7167 +vn 0.4579 0.5294 0.7142 +vn 0.5038 0.4929 0.7094 +vn 0.5253 0.5185 0.6747 +vn 0.4842 0.5543 0.6770 +vn 0.4371 0.5905 0.6784 +vn 0.4759 0.6057 0.6377 +vn 0.5124 0.5737 0.6390 +vn 0.5486 0.5396 0.6386 +vn 0.5734 0.5569 0.6010 +vn 0.5419 0.5887 0.5998 +vn 0.5133 0.6164 0.5971 +vn 0.5506 0.6219 0.5569 +vn 0.5725 0.5993 0.5596 +vn 0.5971 0.5715 0.5629 +vn 0.6228 0.5817 0.5233 +vn 0.6009 0.6076 0.5194 +vn 0.5856 0.6246 0.5167 +vn 0.6176 0.6276 0.4741 +vn 0.6294 0.6129 0.4777 +vn 0.6471 0.5897 0.4832 +vn 0.6707 0.5949 0.4430 +vn 0.6564 0.6154 0.4365 +vn 0.6444 0.6313 0.4315 +vn 0.6705 0.6319 0.3887 +vn 0.6809 0.6169 0.3948 +vn 0.6940 0.5965 0.4031 +vn 0.7171 0.5958 0.3617 +vn 0.7041 0.6167 0.3521 +vn 0.6946 0.6314 0.3447 +vn 0.7258 0.6152 0.3076 +vn 0.7162 0.6311 0.2980 +vn 0.7405 0.5904 0.3210 +vn 0.7634 0.5824 0.2792 +vn 0.7479 0.6100 0.2618 +vn 0.7362 0.6293 0.2491 +vn 0.7692 0.6007 0.2182 +vn 0.7547 0.6247 0.2005 +vn 0.7851 0.5719 0.2378 +vn 0.8059 0.5572 0.1999 +vn 0.7891 0.5894 0.1730 +vn 0.7720 0.6180 0.1487 +vn 0.8092 0.5736 0.1269 +vn 0.7897 0.6058 0.0966 +vn 0.8269 0.5397 0.1580 +vn 0.8467 0.5184 0.1201 +vn 0.8283 0.5540 0.0836 +vn 0.8062 0.5901 0.0434 +vn 0.8471 0.5298 0.0420 +vn 0.8229 0.5682 -0.0047 +vn 0.8656 0.4935 0.0853 +vn 0.8840 0.4645 0.0518 +vn 0.8661 0.4999 0.0058 +vn 0.8422 0.5372 -0.0459 +vn 0.8844 0.4659 -0.0262 +vn 0.8620 0.5006 -0.0803 +vn 0.9014 0.4324 0.0217 +vn 0.9181 0.3964 -0.0066 +vn 0.9023 0.4272 -0.0577 +vn 0.8808 0.4594 -0.1143 +vn 0.9186 0.3858 -0.0859 +vn 0.8980 0.4158 -0.1440 +vn 0.9332 0.3579 -0.0333 +vn 0.9461 0.3188 -0.0562 +vn 0.9328 0.3431 -0.1107 +vn 0.9137 0.3688 -0.1707 +vn 0.9450 0.2990 -0.1326 +vn 0.9271 0.3206 -0.1941 +vn 0.9577 0.2775 -0.0767 +vn 0.9678 0.2335 -0.0940 +vn 0.9559 0.2516 -0.1516 +vn 0.9384 0.2709 -0.2144 +vn 0.9649 0.2026 -0.1669 +vn 0.9481 0.2186 -0.2308 +vn 0.9761 0.1880 -0.1090 +vn 0.9824 0.1434 -0.1197 +vn 0.9717 0.1545 -0.1785 +vn 0.9555 0.1646 -0.2448 +vn 0.9767 0.1022 -0.1887 +vn 0.9609 0.1105 -0.2540 +vn 0.9873 0.0951 -0.1275 +vn 0.9901 0.0478 -0.1323 +vn 0.9798 0.0522 -0.1931 +vn 0.9641 0.0561 -0.2594 +vn 0.1843 0.0599 0.9810 +vn 0.1073 0.0633 0.9922 +vn 0.1881 0.1185 0.9750 +vn 0.1114 0.1255 0.9858 +vn 0.1934 0.1765 0.9651 +vn 0.1174 0.1873 0.9753 +vn 0.2016 0.2332 0.9513 +vn 0.1257 0.2484 0.9605 +vn 0.2124 0.2882 0.9337 +vn 0.1368 0.3074 0.9417 +vn 0.2243 0.3425 0.9123 +vn 0.1498 0.3648 0.9190 +vn 0.2389 0.3952 0.8870 +vn 0.1656 0.4199 0.8924 +vn 0.2558 0.4443 0.8586 +vn 0.1838 0.4717 0.8624 +vn 0.2740 0.4904 0.8273 +vn 0.2026 0.5187 0.8306 +vn 0.2225 0.5640 0.7953 +vn 0.2938 0.5342 0.7927 +vn 0.3124 0.5765 0.7550 +vn 0.2426 0.6071 0.7567 +vn 0.2691 0.6396 0.7201 +vn 0.3397 0.6066 0.7188 +vn 0.7922 0.6075 -0.0577 +vn 0.8108 0.5765 -0.1012 +vn 0.7528 0.6479 -0.1161 +vn 0.7767 0.6088 -0.1617 +vn 0.8332 0.5353 -0.1391 +vn 0.7994 0.5662 -0.2009 +vn 0.8532 0.4913 -0.1750 +vn 0.8199 0.5212 -0.2370 +vn 0.8712 0.4458 -0.2057 +vn 0.8384 0.4730 -0.2708 +vn 0.8878 0.3959 -0.2346 +vn 0.8555 0.4207 -0.3019 +vn 0.9025 0.3430 -0.2605 +vn 0.8710 0.3662 -0.3275 +vn 0.9148 0.2897 -0.2814 +vn 0.8842 0.3081 -0.3510 +vn 0.9250 0.2338 -0.2995 +vn 0.8952 0.2485 -0.3700 +vn 0.9330 0.1762 -0.3138 +vn 0.9037 0.1883 -0.3846 +vn 0.9390 0.1187 -0.3229 +vn 0.9097 0.1262 -0.3956 +vn 0.9424 0.0601 -0.3291 +vn 0.9133 0.0630 -0.4023 +vn 0.0287 0.0669 0.9973 +vn -0.0493 0.0701 0.9963 +vn 0.0323 0.1331 0.9906 +vn -0.0451 0.1386 0.9893 +vn 0.0387 0.1981 0.9794 +vn -0.0376 0.2056 0.9779 +vn 0.0486 0.2610 0.9641 +vn -0.0287 0.2730 0.9616 +vn 0.0603 0.3240 0.9441 +vn -0.0167 0.3386 0.9408 +vn 0.0742 0.3848 0.9200 +vn -0.0022 0.4025 0.9154 +vn 0.0901 0.4416 0.8927 +vn 0.0148 0.4617 0.8869 +vn 0.0319 0.5132 0.8577 +vn 0.1088 0.4944 0.8624 +vn 0.1277 0.5413 0.8311 +vn 0.0494 0.5586 0.8280 +vn 0.0663 0.5961 0.8002 +vn 0.1456 0.5836 0.7989 +vn 0.7632 0.5880 -0.2677 +vn 0.7820 0.5452 -0.3019 +vn 0.7234 0.6029 -0.3365 +vn 0.7404 0.5640 -0.3656 +vn 0.8003 0.4969 -0.3354 +vn 0.7580 0.5176 -0.3969 +vn 0.8180 0.4436 -0.3663 +vn 0.7758 0.4630 -0.4288 +vn 0.8340 0.3857 -0.3946 +vn 0.7921 0.4028 -0.4585 +vn 0.8478 0.3250 -0.4190 +vn 0.8065 0.3397 -0.4838 +vn 0.8594 0.2623 -0.4389 +vn 0.8185 0.2737 -0.5051 +vn 0.8682 0.1978 -0.4551 +vn 0.8282 0.2071 -0.5208 +vn 0.8746 0.1330 -0.4662 +vn 0.8346 0.1388 -0.5330 +vn 0.8786 0.0670 -0.4729 +vn 0.8386 0.0703 -0.5402 +vn -0.1273 0.0727 0.9892 +vn -0.2047 0.0749 0.9760 +vn -0.1229 0.1433 0.9820 +vn -0.1998 0.1471 0.9687 +vn -0.1159 0.2139 0.9699 +vn -0.1929 0.2206 0.9561 +vn -0.1066 0.2839 0.9529 +vn -0.1829 0.2920 0.9388 +vn -0.0939 0.3512 0.9316 +vn -0.1700 0.3616 0.9167 +vn -0.0787 0.4166 0.9057 +vn -0.1546 0.4288 0.8901 +vn -0.0608 0.4778 0.8763 +vn -0.1368 0.4921 0.8597 +vn -0.1204 0.5440 0.8304 +vn -0.0436 0.5309 0.8463 +vn -0.0279 0.5725 0.8194 +vn -0.1056 0.5834 0.8053 +vn -0.0932 0.6108 0.7863 +vn -0.0140 0.6034 0.7973 +vn 0.6789 0.6138 -0.4029 +vn 0.6939 0.5783 -0.4290 +vn 0.6302 0.6199 -0.4676 +vn 0.6427 0.5894 -0.4894 +vn 0.7102 0.5347 -0.4579 +vn 0.6582 0.5474 -0.5168 +vn 0.7279 0.4794 -0.4903 +vn 0.6759 0.4936 -0.5474 +vn 0.7451 0.4177 -0.5200 +vn 0.6934 0.4303 -0.5780 +vn 0.7599 0.3523 -0.5463 +vn 0.7090 0.3624 -0.6050 +vn 0.7724 0.2846 -0.5678 +vn 0.7215 0.2931 -0.6274 +vn 0.7824 0.2146 -0.5846 +vn 0.7315 0.2213 -0.6449 +vn 0.7893 0.1435 -0.5969 +vn 0.7390 0.1476 -0.6573 +vn 0.7933 0.0729 -0.6044 +vn 0.7432 0.0746 -0.6650 +vn -0.2806 0.0761 0.9568 +vn -0.3550 0.0771 0.9317 +vn -0.2761 0.1509 0.9492 +vn -0.3504 0.1534 0.9239 +vn -0.2693 0.2263 0.9361 +vn -0.3427 0.2293 0.9110 +vn -0.2587 0.2984 0.9187 +vn -0.3319 0.3027 0.8935 +vn -0.2454 0.3696 0.8962 +vn -0.3190 0.3755 0.8702 +vn -0.2293 0.4384 0.8691 +vn -0.3031 0.4458 0.8423 +vn -0.2115 0.5030 0.8380 +vn -0.2855 0.5115 0.8105 +vn -0.1944 0.5560 0.8081 +vn -0.2682 0.5640 0.7810 +vn -0.1808 0.5935 0.7843 +vn -0.2547 0.5995 0.7588 +vn -0.2455 0.6220 0.7436 +vn -0.1707 0.6173 0.7680 +vn 0.5179 0.6308 -0.5779 +vn 0.5764 0.6256 -0.5258 +vn 0.5875 0.5985 -0.5447 +vn 0.5283 0.6040 -0.5967 +vn 0.6022 0.5584 -0.5706 +vn 0.5417 0.5653 -0.6221 +vn 0.6196 0.5043 -0.6015 +vn 0.5590 0.5123 -0.6519 +vn 0.6372 0.4402 -0.6326 +vn 0.5774 0.4475 -0.6829 +vn 0.6532 0.3705 -0.6604 +vn 0.5933 0.3771 -0.7112 +vn 0.6665 0.2993 -0.6828 +vn 0.6071 0.3044 -0.7340 +vn 0.6762 0.2260 -0.7011 +vn 0.6174 0.2297 -0.7524 +vn 0.6841 0.1516 -0.7135 +vn 0.6249 0.1538 -0.7654 +vn 0.6883 0.0764 -0.7214 +vn 0.6293 0.0774 -0.7733 +vn -0.4271 0.0778 0.9008 +vn -0.4968 0.0780 0.8643 +vn -0.4226 0.1548 0.8930 +vn -0.4924 0.1554 0.8564 +vn -0.4150 0.2312 0.8799 +vn -0.4849 0.2320 0.8432 +vn -0.4046 0.3061 0.8618 +vn -0.4745 0.3072 0.8249 +vn -0.3916 0.3797 0.8382 +vn -0.4610 0.3806 0.8017 +vn -0.3752 0.4501 0.8103 +vn -0.4446 0.4515 0.7736 +vn -0.3568 0.5162 0.7786 +vn -0.4262 0.5177 0.7419 +vn -0.3398 0.5682 0.7494 +vn -0.4093 0.5696 0.7128 +vn -0.3277 0.6021 0.7281 +vn -0.3967 0.6049 0.6905 +vn -0.3879 0.6281 0.6745 +vn -0.3179 0.6267 0.7115 +vn 0.3977 0.6087 -0.6865 +vn 0.3867 0.6359 -0.6679 +vn 0.4542 0.6340 -0.6259 +vn 0.4647 0.6071 -0.6446 +vn 0.4113 0.5715 -0.7100 +vn 0.4783 0.5695 -0.6685 +vn 0.4954 0.5175 -0.6977 +vn 0.4285 0.5194 -0.7393 +vn 0.5140 0.4517 -0.7292 +vn 0.4472 0.4529 -0.7713 +vn 0.5298 0.3804 -0.7581 +vn 0.4637 0.3817 -0.7996 +vn 0.5432 0.3071 -0.7814 +vn 0.4772 0.3081 -0.8231 +vn 0.5538 0.2320 -0.7997 +vn 0.4876 0.2327 -0.8415 +vn 0.5615 0.1554 -0.8127 +vn 0.4951 0.1559 -0.8547 +vn 0.5661 0.0780 -0.8206 +vn 0.4996 0.0782 -0.8627 +vn -0.5633 0.0779 0.8226 +vn -0.6264 0.0773 0.7756 +vn -0.5588 0.1550 0.8147 +vn -0.6221 0.1535 0.7678 +vn -0.5512 0.2314 0.8017 +vn -0.6145 0.2290 0.7549 +vn -0.5408 0.3064 0.7834 +vn -0.6043 0.3031 0.7369 +vn -0.5271 0.3795 0.7604 +vn -0.5907 0.3759 0.7140 +vn -0.5111 0.4502 0.7322 +vn -0.5745 0.4462 0.6861 +vn -0.4929 0.5161 0.7005 +vn -0.5565 0.5112 0.6549 +vn -0.4761 0.5682 0.6712 +vn -0.5394 0.5636 0.6256 +vn -0.4630 0.6045 0.6483 +vn -0.5260 0.6009 0.6019 +vn -0.4542 0.6269 0.6331 +vn -0.5170 0.6252 0.5847 +vn 0.2556 0.6036 -0.7552 +vn 0.2451 0.6300 -0.7369 +vn 0.3170 0.6344 -0.7050 +vn 0.3276 0.6077 -0.7234 +vn 0.2701 0.5660 -0.7789 +vn 0.3418 0.5700 -0.7472 +vn 0.3589 0.5183 -0.7763 +vn 0.2875 0.5134 -0.8086 +vn 0.3773 0.4516 -0.8085 +vn 0.3049 0.4468 -0.8411 +vn 0.3937 0.3809 -0.8366 +vn 0.3210 0.3769 -0.8688 +vn 0.4069 0.3070 -0.8603 +vn 0.3345 0.3043 -0.8919 +vn 0.4175 0.2320 -0.8786 +vn 0.3456 0.2304 -0.9097 +vn 0.4251 0.1554 -0.8917 +vn 0.3529 0.1539 -0.9229 +vn 0.4297 0.0780 -0.8996 +vn 0.3575 0.0774 -0.9307 +vn -0.6855 0.0763 0.7240 +vn -0.7405 0.0748 0.6679 +vn -0.6813 0.1512 0.7163 +vn -0.7363 0.1474 0.6604 +vn -0.6736 0.2258 0.7037 +vn -0.7290 0.2207 0.6480 +vn -0.6637 0.2985 0.6859 +vn -0.7189 0.2923 0.6306 +vn -0.6508 0.3698 0.6631 +vn -0.7064 0.3618 0.6083 +vn -0.6349 0.4392 0.6356 +vn -0.6912 0.4296 0.5811 +vn -0.6172 0.5034 0.6047 +vn -0.6735 0.4927 0.5510 +vn -0.6001 0.5567 0.5744 +vn -0.6563 0.5454 0.5214 +vn -0.5855 0.5959 0.5496 +vn -0.6412 0.5867 0.4946 +vn -0.5753 0.6223 0.5309 +vn -0.6291 0.6167 0.4732 +vn 0.1046 0.5905 -0.8002 +vn 0.0900 0.6241 -0.7762 +vn 0.1687 0.6275 -0.7601 +vn 0.1809 0.5981 -0.7807 +vn 0.1206 0.5482 -0.8276 +vn 0.1953 0.5594 -0.8056 +vn 0.2130 0.5047 -0.8366 +vn 0.1385 0.4941 -0.8583 +vn 0.2313 0.4398 -0.8678 +vn 0.1565 0.4309 -0.8887 +vn 0.2475 0.3712 -0.8950 +vn 0.1715 0.3628 -0.9160 +vn 0.2608 0.2997 -0.9177 +vn 0.1844 0.2929 -0.9382 +vn 0.2710 0.2266 -0.9355 +vn 0.1947 0.2216 -0.9555 +vn 0.2783 0.1514 -0.9485 +vn 0.2017 0.1477 -0.9682 +vn 0.2827 0.0764 -0.9562 +vn 0.2065 0.0749 -0.9756 +vn -0.7908 0.0729 0.6078 +vn -0.8362 0.0703 0.5438 +vn -0.7867 0.1433 0.6004 +vn -0.8322 0.1381 0.5371 +vn -0.7798 0.2141 0.5882 +vn -0.8258 0.2065 0.5248 +vn -0.7700 0.2839 0.5714 +vn -0.8165 0.2736 0.5084 +vn -0.7576 0.3517 0.5499 +vn -0.8045 0.3391 0.4876 +vn -0.7427 0.4169 0.5241 +vn -0.7902 0.4024 0.4622 +vn -0.7258 0.4787 0.4941 +vn -0.7740 0.4622 0.4328 +vn -0.7085 0.5329 0.4626 +vn -0.7565 0.5154 0.4026 +vn -0.6926 0.5754 0.4350 +vn -0.7391 0.5613 0.3723 +vn -0.6783 0.6097 0.4101 +vn -0.7222 0.6008 0.3427 +vn -0.0511 0.5655 -0.8232 +vn -0.0689 0.6059 -0.7925 +vn 0.0110 0.6169 -0.7869 +vn 0.0263 0.5805 -0.8138 +vn -0.0319 0.5175 -0.8551 +vn 0.0441 0.5347 -0.8439 +vn 0.0620 0.4801 -0.8750 +vn -0.0142 0.4636 -0.8859 +vn 0.0800 0.4183 -0.9048 +vn 0.0030 0.4039 -0.9148 +vn 0.0953 0.3526 -0.9309 +vn 0.0182 0.3406 -0.9400 +vn 0.1083 0.2854 -0.9523 +vn 0.0298 0.2743 -0.9612 +vn 0.1175 0.2150 -0.9695 +vn 0.0386 0.2064 -0.9777 +vn 0.1242 0.1437 -0.9818 +vn 0.0462 0.1391 -0.9892 +vn 0.1289 0.0729 -0.9890 +vn 0.0508 0.0706 -0.9962 +vn -0.8764 0.0671 0.4768 +vn -0.9115 0.0632 0.4065 +vn -0.8725 0.1328 0.4702 +vn -0.9078 0.1256 0.4002 +vn -0.8662 0.1979 0.4589 +vn -0.9018 0.1878 0.3892 +vn -0.8573 0.2620 0.4431 +vn -0.8933 0.2487 0.3743 +vn -0.8460 0.3246 0.4230 +vn -0.8825 0.3079 0.3554 +vn -0.8322 0.3853 0.3987 +vn -0.8693 0.3654 0.3327 +vn -0.8162 0.4430 0.3708 +vn -0.8541 0.4208 0.3058 +vn -0.7990 0.4957 0.3403 +vn -0.8372 0.4727 0.2751 +vn -0.7813 0.5433 0.3072 +vn -0.8191 0.5204 0.2414 +vn -0.7616 0.5872 0.2741 +vn -0.7984 0.5656 0.2064 +vn -0.1283 0.5465 -0.8276 +vn -0.1478 0.5897 -0.7939 +vn -0.2027 0.5221 -0.8285 +vn -0.2239 0.5665 -0.7930 +vn -0.1833 0.4741 -0.8612 +vn -0.1083 0.4979 -0.8605 +vn -0.0892 0.4437 -0.8917 +vn -0.1651 0.4220 -0.8914 +vn -0.0732 0.3864 -0.9194 +vn -0.1495 0.3663 -0.9184 +vn -0.0593 0.3255 -0.9437 +vn -0.1364 0.3086 -0.9414 +vn -0.0478 0.2621 -0.9639 +vn -0.1253 0.2491 -0.9603 +vn -0.0380 0.1989 -0.9793 +vn -0.1169 0.1882 -0.9752 +vn -0.0313 0.1338 -0.9905 +vn -0.1107 0.1262 -0.9858 +vn -0.0279 0.0672 -0.9973 +vn -0.1067 0.0636 -0.9923 +vn -0.9411 0.0602 0.3328 +vn -0.9644 0.0561 0.2585 +vn -0.9377 0.1188 0.3264 +vn -0.9611 0.1097 0.2533 +vn -0.9319 0.1762 0.3170 +vn -0.9559 0.1637 0.2440 +vn -0.9238 0.2335 0.3034 +vn -0.9484 0.2175 0.2307 +vn -0.9138 0.2893 0.2852 +vn -0.9389 0.2695 0.2142 +vn -0.9016 0.3428 0.2639 +vn -0.9277 0.3187 0.1943 +vn -0.8869 0.3955 0.2386 +vn -0.9143 0.3673 0.1709 +vn -0.8704 0.4453 0.2100 +vn -0.8988 0.4140 0.1437 +vn -0.8526 0.4911 0.1786 +vn -0.8821 0.4569 0.1144 +vn -0.8635 0.4977 0.0815 +vn -0.8326 0.5351 0.1434 +vn -0.7744 0.6097 0.1689 +vn -0.8091 0.5777 0.1074 +vn -0.8433 0.5353 0.0468 +vn -0.7904 0.6092 0.0649 +vn -0.8244 0.5659 0.0068 +vn -0.7532 0.6458 0.1253 +vn -0.2758 0.6534 -0.7050 +vn -0.2481 0.6096 -0.7529 +vn -0.3200 0.5758 -0.7524 +vn -0.3498 0.6053 -0.7151 +vn -0.3875 0.5330 -0.7522 +vn -0.4167 0.5614 -0.7150 +vn -0.3644 0.4980 -0.7869 +vn -0.2962 0.5355 -0.7909 +vn -0.2743 0.4922 -0.8261 +vn -0.3447 0.4578 -0.8195 +vn -0.2563 0.4464 -0.8573 +vn -0.3279 0.4151 -0.8487 +vn -0.2397 0.3964 -0.8862 +vn -0.3125 0.3683 -0.8756 +vn -0.2252 0.3435 -0.9117 +vn -0.2988 0.3187 -0.8995 +vn -0.2130 0.2897 -0.9331 +vn -0.2866 0.2709 -0.9190 +vn -0.2023 0.2341 -0.9509 +vn -0.2772 0.2177 -0.9358 +vn -0.1941 0.1773 -0.9648 +vn -0.2701 0.1635 -0.9488 +vn -0.1884 0.1194 -0.9748 +vn -0.2645 0.1104 -0.9580 +vn -0.1850 0.0600 -0.9809 +vn -0.2614 0.0562 -0.9636 +vn -0.9818 0.0521 0.1827 +vn -0.9929 0.0467 0.1092 +vn -0.9788 0.1007 0.1781 +vn -0.9903 0.0912 0.1049 +vn -0.9740 0.1507 0.1693 +vn -0.9857 0.1376 0.0969 +vn -0.9672 0.1996 0.1572 +vn -0.9796 0.1822 0.0853 +vn -0.9584 0.2477 0.1418 +vn -0.9717 0.2251 0.0714 +vn -0.9480 0.2933 0.1235 +vn -0.9623 0.2662 0.0553 +vn -0.9356 0.3382 0.1014 +vn -0.9509 0.3074 0.0356 +vn -0.9216 0.3806 0.0768 +vn -0.9377 0.3471 0.0127 +vn -0.9064 0.4195 0.0500 +vn -0.9240 0.3822 -0.0119 +vn -0.8890 0.4575 0.0195 +vn -0.9085 0.4161 -0.0392 +vn -0.8706 0.4918 -0.0125 +vn -0.8918 0.4474 -0.0680 +vn -0.8523 0.5209 -0.0479 +vn -0.8742 0.4751 -0.0998 +vn -0.8090 0.5862 -0.0433 +vn -0.8345 0.5437 -0.0895 +vn -0.8558 0.4991 -0.1359 +vn -0.8166 0.5615 -0.1337 +vn -0.8373 0.5188 -0.1728 +vn -0.7940 0.6002 -0.0968 +vn -0.7457 0.6401 -0.1851 +vn -0.7354 0.6564 -0.1686 +vn -0.7199 0.6558 -0.2271 +vn -0.7277 0.6434 -0.2374 +vn -0.7589 0.6190 -0.2022 +vn -0.7401 0.6239 -0.2512 +vn -0.7081 0.6448 -0.2878 +vn -0.7193 0.6280 -0.2970 +vn -0.6998 0.6571 -0.2800 +vn -0.6760 0.6598 -0.3282 +vn -0.6865 0.6454 -0.3349 +vn -0.6978 0.6289 -0.3429 +vn -0.6634 0.6441 -0.3808 +vn -0.6749 0.6279 -0.3877 +vn -0.6505 0.6615 -0.3733 +vn -0.6234 0.6607 -0.4181 +vn -0.6373 0.6432 -0.4245 +vn -0.6504 0.6259 -0.4305 +vn -0.6231 0.6228 -0.4731 +vn -0.6063 0.6428 -0.4682 +vn -0.5908 0.6602 -0.4638 +vn -0.5540 0.6588 -0.5090 +vn -0.5706 0.6423 -0.5117 +vn -0.5911 0.6207 -0.5151 +vn -0.5568 0.6161 -0.5572 +vn -0.5325 0.6402 -0.5537 +vn -0.5101 0.6609 -0.5505 +vn -0.4874 0.5963 -0.6379 +vn -0.4523 0.5820 -0.6758 +vn -0.5013 0.5408 -0.6754 +vn -0.5295 0.5596 -0.6376 +vn -0.5496 0.4982 -0.6706 +vn -0.5724 0.5181 -0.6356 +vn -0.5279 0.4745 -0.7044 +vn -0.4758 0.5177 -0.7110 +vn -0.4524 0.4900 -0.7451 +vn -0.5090 0.4473 -0.7354 +vn -0.4913 0.4163 -0.7650 +vn -0.4309 0.4576 -0.7778 +vn -0.4126 0.4203 -0.8081 +vn -0.4753 0.3823 -0.7924 +vn -0.3971 0.3812 -0.8349 +vn -0.4610 0.3469 -0.8168 +vn -0.3829 0.3381 -0.8597 +vn -0.4479 0.3085 -0.8392 +vn -0.3696 0.2944 -0.8813 +vn -0.4365 0.2669 -0.8592 +vn -0.3596 0.2478 -0.8996 +vn -0.4272 0.2251 -0.8757 +vn -0.3507 0.1992 -0.9151 +vn -0.4187 0.1822 -0.8896 +vn -0.3435 0.1511 -0.9269 +vn -0.4121 0.1375 -0.9007 +vn -0.3381 0.1018 -0.9356 +vn -0.4080 0.0916 -0.9084 +vn -0.3356 0.0514 -0.9406 +vn -0.4056 0.0469 -0.9128 +vn -0.9983 0.0421 0.0399 +vn -0.9989 0.0380 -0.0261 +vn -0.9960 0.0823 0.0352 +vn -0.9968 0.0746 -0.0300 +vn -0.9918 0.1245 0.0274 +vn -0.9930 0.1119 -0.0369 +vn -0.9862 0.1646 0.0173 +vn -0.9883 0.1457 -0.0448 +vn -0.9792 0.2028 0.0058 +vn -0.9819 0.1807 -0.0561 +vn -0.9708 0.2398 -0.0088 +vn -0.9743 0.2144 -0.0696 +vn -0.9606 0.2768 -0.0270 +vn -0.9651 0.2472 -0.0860 +vn -0.9485 0.3132 -0.0477 +vn -0.9546 0.2791 -0.1045 +vn -0.9360 0.3452 -0.0692 +vn -0.9435 0.3074 -0.1234 +vn -0.9220 0.3758 -0.0938 +vn -0.9306 0.3353 -0.1467 +vn -0.9069 0.4037 -0.1205 +vn -0.9168 0.3608 -0.1714 +vn -0.8909 0.4289 -0.1494 +vn -0.9027 0.3834 -0.1951 +vn -0.8734 0.4522 -0.1808 +vn -0.8874 0.4041 -0.2218 +vn -0.8556 0.4723 -0.2117 +vn -0.8709 0.4228 -0.2506 +vn -0.8177 0.5357 -0.2106 +vn -0.8369 0.4891 -0.2459 +vn -0.8537 0.4385 -0.2808 +vn -0.8176 0.5033 -0.2797 +vn -0.8365 0.4514 -0.3107 +vn -0.7968 0.5497 -0.2509 +vn -0.7759 0.5611 -0.2882 +vn -0.7976 0.5141 -0.3155 +vn -0.8184 0.4614 -0.3426 +vn -0.7775 0.5222 -0.3505 +vn -0.8006 0.4682 -0.3739 +vn -0.7542 0.5682 -0.3290 +vn -0.7325 0.5725 -0.3683 +vn -0.7570 0.5272 -0.3859 +vn -0.7820 0.4723 -0.4067 +vn -0.7359 0.5287 -0.4230 +vn -0.7637 0.4740 -0.4382 +vn -0.7102 0.5735 -0.4083 +vn -0.6878 0.5720 -0.4469 +vn -0.7149 0.5274 -0.4590 +vn -0.7448 0.4728 -0.4709 +vn -0.6946 0.5221 -0.4948 +vn -0.7260 0.4687 -0.5032 +vn -0.6653 0.5674 -0.4852 +vn -0.6406 0.5604 -0.5249 +vn -0.6748 0.5139 -0.5297 +vn -0.7082 0.4621 -0.5338 +vn -0.6535 0.5036 -0.5651 +vn -0.6898 0.4519 -0.5657 +vn -0.6179 0.5493 -0.5626 +vn -0.5941 0.5355 -0.6002 +vn -0.6333 0.4893 -0.5996 +vn -0.6719 0.4383 -0.5971 +vn -0.6146 0.4727 -0.6315 +vn -0.6552 0.4228 -0.6261 +vn -0.5962 0.4526 -0.6631 +vn -0.6388 0.4035 -0.6550 +vn -0.5782 0.4292 -0.6939 +vn -0.6233 0.3842 -0.6811 +vn -0.5615 0.4039 -0.7222 +vn -0.6087 0.3615 -0.7062 +vn -0.5456 0.3761 -0.7489 +vn -0.5956 0.3366 -0.7294 +vn -0.5309 0.3455 -0.7738 +vn -0.5826 0.3085 -0.7520 +vn -0.5181 0.3128 -0.7960 +vn -0.5704 0.2781 -0.7728 +vn -0.5068 0.2779 -0.8160 +vn -0.5600 0.2476 -0.7906 +vn -0.4963 0.2402 -0.8342 +vn -0.5504 0.2147 -0.8068 +vn -0.4878 0.2029 -0.8490 +vn -0.5425 0.1801 -0.8205 +vn -0.4809 0.1656 -0.8610 +vn -0.5368 0.1475 -0.8307 +vn -0.4748 0.1242 -0.8713 +vn -0.5315 0.1108 -0.8398 +vn -0.4709 0.0810 -0.8784 +vn -0.5271 0.0737 -0.8466 +vn -0.4683 0.0426 -0.8826 +vn -0.5252 0.0381 -0.8501 +vn -0.9955 0.0326 -0.0890 +vn -0.9884 0.0292 -0.1489 +vn -0.9935 0.0661 -0.0925 +vn -0.9868 0.0568 -0.1519 +vn -0.9902 0.0993 -0.0980 +vn -0.9839 0.0859 -0.1565 +vn -0.9859 0.1293 -0.1058 +vn -0.9802 0.1137 -0.1624 +vn -0.9804 0.1590 -0.1160 +vn -0.9757 0.1383 -0.1701 +vn -0.9737 0.1889 -0.1276 +vn -0.9697 0.1636 -0.1812 +vn -0.9655 0.2183 -0.1419 +vn -0.9626 0.1896 -0.1937 +vn -0.9564 0.2458 -0.1577 +vn -0.9542 0.2147 -0.2082 +vn -0.9459 0.2718 -0.1771 +vn -0.9458 0.2364 -0.2227 +vn -0.9351 0.2956 -0.1954 +vn -0.9368 0.2566 -0.2379 +vn -0.9239 0.3173 -0.2139 +vn -0.9251 0.2775 -0.2591 +vn -0.9107 0.3378 -0.2377 +vn -0.9148 0.2940 -0.2768 +vn -0.8971 0.3562 -0.2615 +vn -0.9035 0.3092 -0.2969 +vn -0.8825 0.3726 -0.2869 +vn -0.8902 0.3242 -0.3201 +vn -0.8678 0.3866 -0.3122 +vn -0.8770 0.3360 -0.3435 +vn -0.8520 0.3980 -0.3401 +vn -0.8631 0.3455 -0.3683 +vn -0.8356 0.4067 -0.3693 +vn -0.8500 0.3542 -0.3899 +vn -0.8202 0.4129 -0.3960 +vn -0.8361 0.3608 -0.4132 +vn -0.8041 0.4170 -0.4237 +vn -0.8218 0.3641 -0.4383 +vn -0.7878 0.4186 -0.4518 +vn -0.8074 0.3647 -0.4638 +vn -0.7713 0.4169 -0.4809 +vn -0.7929 0.3632 -0.4892 +vn -0.7552 0.4136 -0.5086 +vn -0.7787 0.3598 -0.5139 +vn -0.7396 0.4072 -0.5359 +vn -0.7652 0.3544 -0.5375 +vn -0.7229 0.3969 -0.5656 +vn -0.7516 0.3463 -0.5613 +vn -0.7071 0.3861 -0.5924 +vn -0.7380 0.3363 -0.5850 +vn -0.6924 0.3727 -0.6178 +vn -0.7253 0.3257 -0.6065 +vn -0.6778 0.3586 -0.6419 +vn -0.7123 0.3105 -0.6294 +vn -0.6638 0.3390 -0.6667 +vn -0.6998 0.2924 -0.6517 +vn -0.6507 0.3162 -0.6904 +vn -0.6890 0.2770 -0.6697 +vn -0.6394 0.2954 -0.7098 +vn -0.6779 0.2573 -0.6886 +vn -0.6290 0.2722 -0.7282 +vn -0.6687 0.2363 -0.7050 +vn -0.6183 0.2465 -0.7463 +vn -0.6604 0.2149 -0.7195 +vn -0.6086 0.2190 -0.7627 +vn -0.6521 0.1893 -0.7341 +vn -0.6005 0.1887 -0.7770 +vn -0.6452 0.1626 -0.7465 +vn -0.5935 0.1585 -0.7891 +vn -0.6385 0.1404 -0.7567 +vn -0.5877 0.1310 -0.7984 +vn -0.6337 0.1136 -0.7652 +vn -0.5833 0.0978 -0.8063 +vn -0.6304 0.0841 -0.7717 +vn -0.5799 0.0648 -0.8121 +vn -0.6277 0.0568 -0.7764 +vn -0.5782 0.0329 -0.8153 +vn -0.6257 0.0297 -0.7795 +vn -0.9791 0.0268 -0.2017 +vn -0.9676 0.0256 -0.2511 +vn -0.9778 0.0486 -0.2040 +vn -0.9666 0.0442 -0.2523 +vn -0.9762 0.0698 -0.2055 +vn -0.9653 0.0636 -0.2532 +vn -0.9658 0.0876 -0.2440 +vn -0.9730 0.0969 -0.2093 +vn -0.9674 0.1239 -0.2209 +vn -0.9595 0.1003 -0.2632 +vn -0.9546 0.1193 -0.2731 +vn -0.9627 0.1422 -0.2304 +vn -0.9572 0.1615 -0.2403 +vn -0.9494 0.1358 -0.2830 +vn -0.9432 0.1551 -0.2939 +vn -0.9495 0.1850 -0.2534 +vn -0.9427 0.2027 -0.2652 +vn -0.9360 0.1732 -0.3064 +vn -0.9343 0.2205 -0.2800 +vn -0.9292 0.1884 -0.3180 +vn -0.9253 0.2387 -0.2946 +vn -0.9217 0.2064 -0.3285 +vn -0.9144 0.2307 -0.3326 +vn -0.9155 0.2564 -0.3102 +vn -0.9051 0.2676 -0.3303 +vn -0.9054 0.2299 -0.3569 +vn -0.8977 0.2345 -0.3731 +vn -0.8949 0.2778 -0.3494 +vn -0.8821 0.2900 -0.3713 +vn -0.8889 0.2415 -0.3892 +vn -0.8769 0.2509 -0.4100 +vn -0.8723 0.2983 -0.3875 +vn -0.8614 0.3045 -0.4065 +vn -0.8653 0.2571 -0.4302 +vn -0.8485 0.3089 -0.4298 +vn -0.8556 0.2618 -0.4466 +vn -0.8352 0.3134 -0.4519 +vn -0.8457 0.2661 -0.4626 +vn -0.8313 0.2827 -0.4785 +vn -0.8219 0.3174 -0.4730 +vn -0.8104 0.3138 -0.4948 +vn -0.8259 0.2670 -0.4966 +vn -0.8167 0.2625 -0.5139 +vn -0.7992 0.3096 -0.5152 +vn -0.7864 0.3042 -0.5376 +vn -0.8066 0.2574 -0.5322 +vn -0.7962 0.2522 -0.5500 +vn -0.7740 0.2971 -0.5592 +vn -0.7638 0.2902 -0.5766 +vn -0.7843 0.2423 -0.5711 +vn -0.7531 0.2797 -0.5955 +vn -0.7737 0.2334 -0.5890 +vn -0.7414 0.2675 -0.6155 +vn -0.7647 0.2279 -0.6027 +vn -0.7487 0.2278 -0.6225 +vn -0.7281 0.2559 -0.6359 +vn -0.7204 0.2387 -0.6512 +vn -0.7486 0.2065 -0.6300 +vn -0.7433 0.1898 -0.6415 +vn -0.7124 0.2215 -0.6659 +vn -0.7037 0.2027 -0.6809 +vn -0.7357 0.1728 -0.6549 +vn -0.7288 0.1562 -0.6666 +vn -0.6972 0.1850 -0.6926 +vn -0.6894 0.1613 -0.7062 +vn -0.7224 0.1356 -0.6780 +vn -0.6834 0.1438 -0.7157 +vn -0.7167 0.1181 -0.6873 +vn -0.6776 0.1235 -0.7250 +vn -0.7105 0.1016 -0.6963 +vn -0.6949 0.0885 -0.7136 +vn -0.6713 0.0951 -0.7351 +vn -0.6690 0.0709 -0.7399 +vn -0.7034 0.0650 -0.7078 +vn -0.7045 0.0434 -0.7084 +vn -0.6680 0.0494 -0.7425 +vn -0.6669 0.0269 -0.7447 +vn -0.7040 0.0245 -0.7098 +vn 0.9325 -0.0121 0.3611 +vn 0.8113 0.0078 0.5846 +vn 0.8119 0.0157 0.5836 +vn 0.9319 -0.0242 0.3619 +vn 0.9308 -0.0360 0.3638 +vn 0.8128 0.0236 0.5821 +vn 0.8139 0.0312 0.5802 +vn 0.9291 -0.0475 0.3669 +vn 0.9269 -0.0589 0.3706 +vn 0.8152 0.0387 0.5779 +vn 0.8168 0.0458 0.5751 +vn 0.9244 -0.0699 0.3750 +vn 0.9215 -0.0804 0.3800 +vn 0.8188 0.0527 0.5717 +vn 0.8211 0.0593 0.5678 +vn 0.9181 -0.0904 0.3859 +vn 0.9143 -0.0998 0.3925 +vn 0.8235 0.0654 0.5636 +vn 0.8262 0.0712 0.5589 +vn 0.9104 -0.1095 0.3989 +vn 0.9059 -0.1171 0.4070 +vn 0.8291 0.0769 0.5538 +vn 0.8321 0.0820 0.5486 +vn 0.9011 -0.1243 0.4154 +vn 0.8960 -0.1309 0.4242 +vn 0.8353 0.0864 0.5430 +vn 0.8388 0.0904 0.5370 +vn 0.8908 -0.1367 0.4334 +vn 0.8853 -0.1418 0.4429 +vn 0.8423 0.0938 0.5307 +vn 0.8460 0.0966 0.5243 +vn 0.8796 -0.1459 0.4527 +vn 0.8738 -0.1492 0.4627 +vn 0.8499 0.0986 0.5177 +vn 0.8538 0.0997 0.5109 +vn 0.8679 -0.1517 0.4730 +vn 0.8619 -0.1533 0.4833 +vn 0.8579 0.0997 0.5041 +vn 0.8618 0.0987 0.4975 +vn 0.8559 -0.1539 0.4938 +vn 0.8498 -0.1537 0.5042 +vn 0.8657 0.0963 0.4913 +vn 0.8691 0.0870 0.4869 +vn 0.8433 -0.1540 0.5149 +vn 0.8372 -0.1525 0.5252 +vn 0.8731 0.0840 0.4802 +vn 0.8778 0.0920 0.4700 +vn 0.8321 -0.1470 0.5348 +vn 0.8265 -0.1419 0.5447 +vn 0.8812 0.0928 0.4636 +vn 0.8847 0.0902 0.4573 +vn 0.8211 -0.1369 0.5542 +vn 0.8158 -0.1310 0.5633 +vn 0.8882 0.0864 0.4512 +vn 0.8916 0.0821 0.4454 +vn 0.8108 -0.1242 0.5719 +vn 0.8061 -0.1167 0.5801 +vn 0.8947 0.0772 0.4400 +vn 0.8976 0.0718 0.4349 +vn 0.8017 -0.1085 0.5878 +vn 0.7976 -0.0997 0.5949 +vn 0.9003 0.0660 0.4302 +vn 0.9028 0.0597 0.4259 +vn 0.7939 -0.0902 0.6013 +vn 0.7906 -0.0802 0.6071 +vn 0.9050 0.0530 0.4221 +vn 0.9069 0.0461 0.4188 +vn 0.7876 -0.0697 0.6122 +vn 0.7851 -0.0587 0.6166 +vn 0.9086 0.0388 0.4159 +vn 0.9100 0.0313 0.4135 +vn 0.7830 -0.0474 0.6202 +vn 0.7814 -0.0358 0.6230 +vn 0.9111 0.0237 0.4116 +vn 0.9118 0.0159 0.4102 +vn 0.7802 -0.0240 0.6250 +vn 0.7795 -0.0120 0.6262 +vn 0.9123 0.0080 0.4094 +vn 0.9830 -0.0507 -0.1766 +vn 0.9989 -0.0373 0.0292 +vn 0.9967 -0.0744 0.0328 +vn 0.9800 -0.1011 -0.1715 +vn 0.9750 -0.1508 -0.1629 +vn 0.9931 -0.1110 0.0391 +vn 0.9880 -0.1469 0.0480 +vn 0.9682 -0.1997 -0.1509 +vn 0.9594 -0.2473 -0.1357 +vn 0.9815 -0.1819 0.0592 +vn 0.9737 -0.2158 0.0727 +vn 0.9488 -0.2933 -0.1173 +vn 0.9364 -0.3376 -0.0958 +vn 0.9646 -0.2484 0.0885 +vn 0.9542 -0.2794 0.1065 +vn 0.9223 -0.3798 -0.0714 +vn 0.9066 -0.4196 -0.0442 +vn 0.9427 -0.3088 0.1264 +vn 0.9300 -0.3363 0.1483 +vn 0.8894 -0.4569 -0.0144 +vn 0.8708 -0.4913 0.0179 +vn 0.9163 -0.3617 0.1720 +vn 0.9017 -0.3847 0.1975 +vn 0.8509 -0.5227 0.0524 +vn 0.8298 -0.5509 0.0889 +vn 0.8862 -0.4053 0.2245 +vn 0.8699 -0.4234 0.2528 +vn 0.8077 -0.5757 0.1273 +vn 0.7847 -0.5970 0.1672 +vn 0.8530 -0.4391 0.2821 +vn 0.8355 -0.4520 0.3124 +vn 0.7609 -0.6145 0.2084 +vn 0.7365 -0.6283 0.2507 +vn 0.8176 -0.4621 0.3435 +vn 0.7993 -0.4694 0.3752 +vn 0.7116 -0.6382 0.2938 +vn 0.6864 -0.6442 0.3375 +vn 0.7807 -0.4738 0.4073 +vn 0.7621 -0.4753 0.4396 +vn 0.6611 -0.6461 0.3814 +vn 0.6358 -0.6441 0.4253 +vn 0.7434 -0.4739 0.4719 +vn 0.7249 -0.4696 0.5040 +vn 0.6106 -0.6382 0.4689 +vn 0.5857 -0.6283 0.5120 +vn 0.7066 -0.4624 0.5357 +vn 0.6887 -0.4521 0.5668 +vn 0.5613 -0.6145 0.5543 +vn 0.5375 -0.5970 0.5956 +vn 0.6712 -0.4391 0.5972 +vn 0.6542 -0.4236 0.6266 +vn 0.5145 -0.5757 0.6355 +vn 0.4924 -0.5509 0.6738 +vn 0.6379 -0.4054 0.6548 +vn 0.6225 -0.3846 0.6816 +vn 0.4713 -0.5227 0.7103 +vn 0.4514 -0.4913 0.7449 +vn 0.6078 -0.3614 0.7070 +vn 0.5941 -0.3361 0.7308 +vn 0.4328 -0.4569 0.7771 +vn 0.4156 -0.4196 0.8070 +vn 0.5815 -0.3087 0.7527 +vn 0.5700 -0.2794 0.7727 +vn 0.3999 -0.3798 0.8342 +vn 0.3858 -0.3376 0.8586 +vn 0.5596 -0.2483 0.7907 +vn 0.5505 -0.2158 0.8064 +vn 0.3734 -0.2933 0.8801 +vn 0.3628 -0.2473 0.8985 +vn 0.5427 -0.1819 0.8200 +vn 0.5363 -0.1469 0.8312 +vn 0.3540 -0.1997 0.9137 +vn 0.3472 -0.1508 0.9256 +vn 0.5312 -0.1109 0.8399 +vn 0.5276 -0.0743 0.8462 +vn 0.3422 -0.1011 0.9342 +vn 0.3392 -0.0507 0.9393 +vn 0.5254 -0.0373 0.8500 +vn 0.4234 0.0463 0.9048 +vn 0.4271 0.0887 0.8998 +vn 0.4310 0.1330 0.8925 +vn 0.4380 0.1750 0.8818 +vn 0.4457 0.2175 0.8683 +vn 0.4549 0.2588 0.8521 +vn 0.4662 0.2975 0.8332 +vn 0.4789 0.3328 0.8124 +vn 0.4938 0.3683 0.7878 +vn 0.5097 0.4019 0.7607 +vn 0.5265 0.4314 0.7326 +vn 0.5451 0.4576 0.7024 +vn 0.5654 0.4818 0.6695 +vn 0.5861 0.5021 0.6359 +vn 0.6074 0.5185 0.6018 +vn 0.6287 0.5335 0.5658 +vn 0.6500 0.5455 0.5291 +vn 0.6706 0.5552 0.4921 +vn 0.6927 0.5615 0.4527 +vn 0.7139 0.5639 0.4151 +vn 0.7360 0.5635 0.3753 +vn 0.7584 0.5587 0.3357 +vn 0.7796 0.5504 0.2989 +vn 0.8025 0.5371 0.2599 +vn 0.8248 0.5176 0.2277 +vn 0.8451 0.4972 0.1965 +vn 0.8650 0.4752 0.1611 +vn 0.8833 0.4502 0.1304 +vn 0.9004 0.4229 0.1027 +vn 0.9163 0.3934 0.0750 +vn 0.9312 0.3612 0.0481 +vn 0.9447 0.3272 0.0238 +vn 0.9566 0.2914 0.0018 +vn 0.9672 0.2536 -0.0159 +vn 0.9765 0.2133 -0.0322 +vn 0.9840 0.1722 -0.0458 +vn 0.9900 0.1299 -0.0557 +vn 0.9944 0.0862 -0.0617 +vn 0.9969 0.0436 -0.0660 +vn 0.9767 -0.0526 -0.2083 +vn 0.9755 -0.0529 -0.2133 +vn 0.9724 -0.1055 -0.2079 +vn 0.9736 -0.1049 -0.2029 +vn 0.9684 -0.1565 -0.1940 +vn 0.9673 -0.1574 -0.1990 +vn 0.9601 -0.2084 -0.1865 +vn 0.9613 -0.2072 -0.1816 +vn 0.9522 -0.2566 -0.1658 +vn 0.9509 -0.2581 -0.1707 +vn 0.9399 -0.3061 -0.1515 +vn 0.9412 -0.3044 -0.1467 +vn 0.9283 -0.3503 -0.1245 +vn 0.9269 -0.3523 -0.1291 +vn 0.9122 -0.3964 -0.1036 +vn 0.9137 -0.3941 -0.0991 +vn 0.8974 -0.4354 -0.0709 +vn 0.8959 -0.4379 -0.0752 +vn 0.8779 -0.4768 -0.0441 +vn 0.8796 -0.4741 -0.0399 +vn 0.8602 -0.5098 -0.0065 +vn 0.8585 -0.5128 -0.0104 +vn 0.8377 -0.5455 0.0256 +vn 0.8396 -0.5424 0.0294 +vn 0.8177 -0.5717 0.0673 +vn 0.8157 -0.5750 0.0638 +vn 0.7926 -0.6008 0.1038 +vn 0.7948 -0.5974 0.1071 +vn 0.7709 -0.6194 0.1485 +vn 0.7686 -0.6230 0.1454 +vn 0.7438 -0.6413 0.1885 +vn 0.7462 -0.6377 0.1913 +vn 0.7209 -0.6520 0.2351 +vn 0.7183 -0.6557 0.2326 +vn 0.6923 -0.6660 0.2776 +vn 0.6951 -0.6622 0.2799 +vn 0.6690 -0.6684 0.3252 +vn 0.6661 -0.6723 0.3231 +vn 0.6396 -0.6743 0.3690 +vn 0.6427 -0.6705 0.3707 +vn 0.6164 -0.6684 0.4163 +vn 0.6132 -0.6723 0.4148 +vn 0.5869 -0.6660 0.4604 +vn 0.5903 -0.6622 0.4616 +vn 0.5645 -0.6520 0.5063 +vn 0.5610 -0.6557 0.5053 +vn 0.5355 -0.6413 0.5495 +vn 0.5391 -0.6377 0.5502 +vn 0.5145 -0.6194 0.5930 +vn 0.5107 -0.6230 0.5925 +vn 0.4867 -0.6008 0.6342 +vn 0.4906 -0.5974 0.6344 +vn 0.4676 -0.5717 0.6742 +vn 0.4636 -0.5750 0.6742 +vn 0.4416 -0.5456 0.7123 +vn 0.4457 -0.5424 0.7121 +vn 0.4251 -0.5098 0.7479 +vn 0.4208 -0.5128 0.7483 +vn 0.4014 -0.4768 0.7820 +vn 0.4058 -0.4741 0.7814 +vn 0.3879 -0.4354 0.8124 +vn 0.3834 -0.4379 0.8131 +vn 0.3670 -0.3964 0.8415 +vn 0.3716 -0.3941 0.8406 +vn 0.3570 -0.3503 0.8659 +vn 0.3523 -0.3523 0.8670 +vn 0.3394 -0.3061 0.8894 +vn 0.3442 -0.3044 0.8882 +vn 0.3331 -0.2566 0.9073 +vn 0.3283 -0.2581 0.9086 +vn 0.3192 -0.2084 0.9245 +vn 0.3240 -0.2072 0.9231 +vn 0.3169 -0.1565 0.9355 +vn 0.3120 -0.1574 0.9370 +vn 0.3068 -0.1055 0.9459 +vn 0.3118 -0.1049 0.9444 +vn 0.3087 -0.0526 0.9497 +vn 0.3037 -0.0529 0.9513 +vn 0.9799 -0.0517 -0.1925 +vn 0.9769 -0.1030 -0.1873 +vn 0.9719 -0.1537 -0.1785 +vn 0.9648 -0.2035 -0.1664 +vn 0.9559 -0.2520 -0.1509 +vn 0.9451 -0.2989 -0.1321 +vn 0.9325 -0.3440 -0.1102 +vn 0.9181 -0.3870 -0.0853 +vn 0.9021 -0.4276 -0.0576 +vn 0.8846 -0.4656 -0.0272 +vn 0.8656 -0.5007 0.0057 +vn 0.8453 -0.5327 0.0408 +vn 0.8238 -0.5614 0.0781 +vn 0.8013 -0.5867 0.1171 +vn 0.7778 -0.6083 0.1578 +vn 0.7536 -0.6262 0.1998 +vn 0.7287 -0.6402 0.2429 +vn 0.7034 -0.6503 0.2869 +vn 0.6778 -0.6564 0.3313 +vn 0.6519 -0.6584 0.3761 +vn 0.6261 -0.6564 0.4208 +vn 0.6005 -0.6503 0.4653 +vn 0.5751 -0.6403 0.5092 +vn 0.5503 -0.6262 0.5523 +vn 0.5260 -0.6083 0.5943 +vn 0.5026 -0.5867 0.6350 +vn 0.4800 -0.5614 0.6741 +vn 0.4586 -0.5327 0.7113 +vn 0.4383 -0.5007 0.7465 +vn 0.4193 -0.4656 0.7794 +vn 0.4018 -0.4276 0.8098 +vn 0.3858 -0.3870 0.8375 +vn 0.3714 -0.3440 0.8624 +vn 0.3588 -0.2989 0.8843 +vn 0.3480 -0.2520 0.9030 +vn 0.3390 -0.2035 0.9185 +vn 0.3320 -0.1537 0.9307 +vn 0.3270 -0.1030 0.9394 +vn 0.3239 -0.0517 0.9447 +vn 0.8037 -0.0719 -0.5907 +vn 0.7995 -0.1433 -0.5834 +vn 0.4340 -0.0782 -0.8975 +vn 0.4294 -0.1560 -0.8895 +vn 0.7925 -0.2139 -0.5712 +vn 0.7827 -0.2831 -0.5543 +vn 0.4218 -0.2328 -0.8763 +vn 0.4112 -0.3082 -0.8579 +vn 0.7703 -0.3506 -0.5327 +vn 0.7552 -0.4159 -0.5066 +vn 0.3976 -0.3817 -0.8344 +vn 0.3812 -0.4528 -0.8060 +vn 0.7377 -0.4786 -0.4762 +vn 0.7177 -0.5385 -0.4416 +vn 0.3621 -0.5211 -0.7729 +vn 0.3404 -0.5862 -0.7352 +vn 0.6954 -0.5949 -0.4030 +vn 0.6710 -0.6478 -0.3607 +vn 0.3162 -0.6477 -0.6932 +vn 0.2896 -0.7052 -0.6471 +vn 0.6447 -0.6966 -0.3149 +vn 0.6164 -0.7411 -0.2660 +vn 0.2609 -0.7584 -0.5973 +vn 0.2301 -0.8069 -0.5440 +vn 0.5865 -0.7811 -0.2142 +vn 0.5552 -0.8162 -0.1599 +vn 0.1976 -0.8504 -0.4876 +vn 0.1634 -0.8887 -0.4284 +vn 0.5225 -0.8463 -0.1033 +vn 0.4888 -0.8712 -0.0448 +vn 0.1279 -0.9215 -0.3668 +vn 0.0912 -0.9486 -0.3032 +vn 0.4542 -0.8908 0.0151 +vn 0.4189 -0.9048 0.0762 +vn 0.0535 -0.9698 -0.2379 +vn 0.0151 -0.9851 -0.1714 +vn 0.3832 -0.9133 0.1381 +vn 0.3474 -0.9161 0.2004 +vn -0.0237 -0.9943 -0.1040 +vn -0.0628 -0.9974 -0.0362 +vn 0.3114 -0.9132 0.2626 +vn 0.2758 -0.9048 0.3245 +vn -0.1019 -0.9943 0.0316 +vn -0.1408 -0.9851 0.0989 +vn 0.2405 -0.8908 0.3856 +vn 0.2059 -0.8712 0.4456 +vn -0.1791 -0.9698 0.1655 +vn -0.2168 -0.9486 0.2307 +vn 0.1722 -0.8463 0.5040 +vn 0.1396 -0.8162 0.5606 +vn -0.2535 -0.9214 0.2944 +vn -0.2891 -0.8887 0.3560 +vn 0.1082 -0.7811 0.6150 +vn 0.0783 -0.7411 0.6668 +vn -0.3232 -0.8504 0.4152 +vn -0.3557 -0.8069 0.4716 +vn 0.0501 -0.6966 0.7157 +vn 0.0237 -0.6478 0.7615 +vn -0.3864 -0.7584 0.5249 +vn -0.4152 -0.7052 0.5747 +vn -0.0007 -0.5949 0.8038 +vn -0.0230 -0.5385 0.8423 +vn -0.4417 -0.6477 0.6207 +vn -0.4660 -0.5862 0.6627 +vn -0.0430 -0.4787 0.8770 +vn -0.0605 -0.4159 0.9074 +vn -0.4877 -0.5211 0.7004 +vn -0.5068 -0.4528 0.7336 +vn -0.0756 -0.3506 0.9335 +vn -0.0880 -0.2831 0.9551 +vn -0.5232 -0.3817 0.7620 +vn -0.5368 -0.3082 0.7854 +vn -0.0978 -0.2139 0.9720 +vn -0.1047 -0.1433 0.9841 +vn -0.5474 -0.2328 0.8038 +vn -0.5550 -0.1560 0.8171 +vn -0.1090 -0.0719 0.9914 +vn -0.5596 -0.0783 0.8251 +vn 0.1082 -0.0719 -0.9915 +vn 0.1040 -0.1433 -0.9842 +vn -0.0949 -0.0640 -0.9934 +vn -0.0986 -0.1276 -0.9869 +vn 0.0970 -0.2138 -0.9721 +vn 0.0872 -0.2830 -0.9551 +vn -0.1048 -0.1904 -0.9761 +vn -0.1135 -0.2521 -0.9610 +vn 0.0748 -0.3504 -0.9336 +vn 0.0597 -0.4157 -0.9075 +vn -0.1246 -0.3121 -0.9418 +vn -0.1380 -0.3703 -0.9186 +vn 0.0422 -0.4785 -0.8771 +vn 0.0223 -0.5383 -0.8425 +vn -0.1536 -0.4262 -0.8915 +vn -0.1714 -0.4794 -0.8607 +vn 0.0001 -0.5948 -0.8039 +vn -0.0243 -0.6476 -0.7616 +vn -0.1912 -0.5297 -0.8263 +vn -0.2130 -0.5767 -0.7887 +vn -0.0508 -0.6964 -0.7159 +vn -0.0790 -0.7409 -0.6670 +vn -0.2365 -0.6202 -0.7479 +vn -0.2616 -0.6599 -0.7044 +vn -0.1089 -0.7808 -0.6152 +vn -0.1402 -0.8160 -0.5608 +vn -0.2882 -0.6955 -0.6582 +vn -0.3161 -0.7268 -0.6098 +vn -0.1728 -0.8461 -0.5043 +vn -0.2065 -0.8710 -0.4458 +vn -0.3452 -0.7536 -0.5595 +vn -0.3752 -0.7757 -0.5074 +vn -0.2411 -0.8905 -0.3859 +vn -0.2763 -0.9045 -0.3248 +vn -0.4060 -0.7931 -0.4540 +vn -0.4374 -0.8056 -0.3996 +vn -0.3120 -0.9130 -0.2629 +vn -0.3479 -0.9158 -0.2007 +vn -0.4692 -0.8131 -0.3445 +vn -0.5012 -0.8156 -0.2891 +vn -0.3838 -0.9130 -0.1385 +vn -0.4195 -0.9045 -0.0766 +vn -0.5331 -0.8131 -0.2337 +vn -0.5649 -0.8056 -0.1786 +vn -0.4548 -0.8905 -0.0155 +vn -0.4894 -0.8709 0.0444 +vn -0.5963 -0.7931 -0.1241 +vn -0.6271 -0.7757 -0.0708 +vn -0.5231 -0.8461 0.1028 +vn -0.5557 -0.8160 0.1594 +vn -0.6571 -0.7536 -0.0187 +vn -0.6862 -0.7268 0.0317 +vn -0.5870 -0.7808 0.2138 +vn -0.6169 -0.7409 0.2655 +vn -0.7141 -0.6954 0.0801 +vn -0.7407 -0.6599 0.1262 +vn -0.6451 -0.6964 0.3145 +vn -0.6715 -0.6475 0.3602 +vn -0.7658 -0.6202 0.1698 +vn -0.7893 -0.5768 0.2105 +vn -0.6959 -0.5947 0.4025 +vn -0.7182 -0.5383 0.4410 +vn -0.8111 -0.5297 0.2481 +vn -0.8309 -0.4794 0.2825 +vn -0.7381 -0.4785 0.4757 +vn -0.7557 -0.4157 0.5061 +vn -0.8486 -0.4262 0.3133 +vn -0.8643 -0.3703 0.3404 +vn -0.7707 -0.3505 0.5322 +vn -0.7832 -0.2830 0.5537 +vn -0.8777 -0.3121 0.3637 +vn -0.8888 -0.2520 0.3829 +vn -0.7929 -0.2138 0.5706 +vn -0.7999 -0.1433 0.5827 +vn -0.8974 -0.1904 0.3979 +vn -0.9037 -0.1276 0.4087 +vn -0.8042 -0.0718 0.5901 +vn -0.9075 -0.0640 0.4153 +vn -0.4994 0.7965 0.3409 +vn -0.5222 0.8078 0.2734 +vn -0.6362 0.6906 0.3439 +vn -0.5938 0.6897 0.4144 +vn -0.6544 0.6620 0.3656 +vn -0.6104 0.6606 0.4370 +vn -0.6921 0.6599 0.2923 +vn -0.6723 0.6883 0.2726 +vn -0.5539 0.8038 0.2170 +vn -0.5639 0.8112 0.1549 +vn -0.6988 0.6880 0.1957 +vn -0.7240 0.6559 0.2135 +vn -0.7119 0.6906 0.1276 +vn -0.5512 0.8287 0.0975 +vn -0.5540 0.8310 0.0497 +vn -0.7187 0.6930 0.0571 +vn -0.7534 0.6563 0.0406 +vn -0.7164 0.6975 -0.0156 +vn -0.7500 0.6606 -0.0349 +vn -0.5467 0.8373 -0.0019 +vn -0.5377 0.8415 -0.0518 +vn -0.7111 0.6982 -0.0825 +vn -0.7442 0.6600 -0.1031 +vn -0.7040 0.6948 -0.1470 +vn -0.5501 0.8284 -0.1053 +vn -0.5625 0.8107 -0.1626 +vn -0.6942 0.6883 -0.2105 +vn -0.6758 0.6873 -0.2662 +vn -0.5554 0.8031 -0.2159 +vn -0.4593 0.8087 -0.3676 +vn -0.4147 0.8183 -0.3980 +vn -0.5270 0.6906 -0.4953 +vn -0.5674 0.6894 -0.4503 +vn -0.4778 0.6960 -0.5360 +vn -0.3583 0.8366 -0.4145 +vn -0.4594 0.6652 -0.5886 +vn -0.4917 0.6355 -0.5953 +vn -0.5235 0.6072 -0.5977 +vn -0.4479 0.6288 -0.6356 +vn -0.4063 0.6669 -0.6246 +vn -0.3449 0.6640 -0.6634 +vn -0.3994 0.6203 -0.6751 +vn -0.1839 0.6676 -0.7214 +vn -0.1674 0.6269 -0.7609 +vn -0.0845 0.6394 -0.7642 +vn -0.0971 0.6769 -0.7297 +vn -0.0134 0.6823 -0.7309 +vn -0.0020 0.6483 -0.7614 +vn 0.0793 0.6531 -0.7531 +vn 0.0685 0.6834 -0.7268 +vn 0.0569 0.7187 -0.6930 +vn 0.0282 0.9069 -0.4203 +vn 0.0904 0.8749 -0.4758 +vn 0.1376 0.7069 -0.6938 +vn 0.1484 0.6794 -0.7186 +vn 0.2162 0.7014 -0.6792 +vn 0.2267 0.6762 -0.7009 +vn 0.1602 0.8470 -0.5069 +vn 0.3709 0.8368 -0.4027 +vn 0.4019 0.8487 -0.3438 +vn 0.5359 0.7025 -0.4682 +vn 0.4828 0.6984 -0.5283 +vn 0.5535 0.6717 -0.4924 +vn 0.4965 0.6746 -0.5463 +vn 0.6052 0.6705 -0.4293 +vn 0.5821 0.7072 -0.4012 +vn 0.4173 0.8652 -0.2780 +vn 0.6475 0.6732 -0.3573 +vn 0.6659 0.6412 -0.3815 +vn 0.6189 0.6444 -0.4491 +vn 0.7077 0.6354 -0.3089 +vn 0.6855 0.6712 -0.2821 +vn 0.7207 0.6627 -0.2033 +vn 0.7447 0.6248 -0.2346 +vn 0.7518 0.6586 -0.0334 +vn 0.7807 0.6249 0.0035 +vn 0.7683 0.6367 0.0662 +vn 0.7465 0.6642 0.0397 +vn 0.4081 0.6574 0.6335 +vn 0.3427 0.6507 0.6776 +vn 0.3898 0.6215 0.6795 +vn 0.4409 0.6316 0.6377 +vn 0.1796 0.6494 0.7389 +vn 0.1633 0.6196 0.7678 +vn 0.0815 0.6252 0.7762 +vn 0.0946 0.6546 0.7501 +vn 0.5655 0.7279 0.3878 +vn 0.5871 0.7347 0.3399 +vn 0.2472 0.9584 0.1428 +vn 0.2454 0.9547 0.1685 +vn 0.5303 0.7298 0.4315 +vn 0.2274 0.9555 0.1878 +vn -0.1800 0.9757 -0.1246 +vn -0.1686 0.9758 -0.1391 +vn -0.1917 0.9751 -0.1114 +vn 0.6280 0.7399 0.2411 +vn 0.2601 0.9606 0.0975 +vn 0.2597 0.9577 0.1239 +vn 0.6131 0.7327 0.2953 +vn -0.2007 0.9749 -0.0964 +vn -0.2094 0.9747 -0.0787 +vn -0.1845 0.7822 0.5951 +vn -0.0669 0.9729 0.2213 +vn -0.0873 0.9755 0.2018 +vn -0.2457 0.7898 0.5620 +vn -0.1022 0.9785 0.1792 +vn -0.2993 0.7989 0.5218 +vn 0.0855 0.9771 -0.1947 +vn 0.1066 0.9771 -0.1843 +vn 0.0630 0.9770 -0.2039 +vn 0.3108 0.8507 -0.4239 +vn 0.2527 0.8640 -0.4354 +vn 0.0505 0.9951 -0.0848 +vn 0.0729 0.9925 -0.0985 +vn 0.0981 0.9896 -0.1054 +vn -0.1263 0.9765 0.1746 +vn -0.1460 0.9765 0.1582 +vn -0.1083 0.9761 0.1882 +vn -0.3539 0.8003 0.4840 +vn -0.1211 0.9788 0.1654 +vn -0.4095 0.7956 0.4465 +vn -0.1454 0.9768 0.1572 +vn 0.1247 0.9775 -0.1700 +vn 0.1411 0.9780 -0.1540 +vn 0.0394 0.9918 -0.1216 +vn 0.0478 0.9928 -0.1099 +vn 0.2119 0.8514 -0.4798 +vn -0.0870 0.9768 0.1955 +vn -0.0624 0.9774 0.2020 +vn -0.1935 0.9783 -0.0741 +vn -0.1707 0.9819 -0.0824 +vn -0.5243 0.8127 -0.2541 +vn -0.1480 0.9854 -0.0845 +vn -0.4932 0.8226 -0.2830 +vn 0.1871 0.9781 0.0917 +vn 0.1833 0.9773 0.1059 +vn 0.1918 0.9786 0.0750 +vn -0.4798 0.8156 -0.3235 +vn -0.1509 0.9833 -0.1022 +vn -0.1517 0.9808 -0.1226 +vn 0.1754 0.9774 0.1178 +vn 0.1622 0.9782 0.1296 +vn -0.4590 0.7942 0.3983 +vn -0.1631 0.9768 0.1388 +vn -0.1707 0.9788 0.1133 +vn 0.1592 0.9774 -0.1390 +vn 0.1783 0.9765 -0.1214 +vn -0.1653 0.9827 0.0831 +vn -0.1773 0.9819 0.0662 +vn 0.1931 0.9759 -0.1013 +vn 0.2045 0.9756 -0.0803 +vn -0.1680 0.9848 0.0443 +vn -0.1416 0.9896 0.0247 +vn 0.2167 0.9745 -0.0587 +vn 0.2261 0.9733 -0.0395 +vn -0.1426 0.9897 0.0154 +vn -0.1377 0.9905 0.0031 +vn 0.2247 0.9744 0.0015 +vn 0.2280 0.9734 -0.0198 +vn -0.1322 0.9912 -0.0095 +vn -0.1550 0.9876 -0.0269 +vn 0.2140 0.9760 0.0404 +vn 0.2207 0.9751 0.0216 +vn -0.1834 0.9817 -0.0504 +vn 0.2029 0.9775 0.0581 +vn -0.1246 0.9846 -0.1225 +vn -0.0880 0.9906 -0.1051 +vn 0.1523 0.9773 0.1471 +vn 0.1421 0.9758 0.1662 +vn -0.3059 0.8495 -0.4298 +vn -0.0610 0.9940 -0.0904 +vn -0.2661 0.8487 -0.4570 +vn -0.0510 0.9943 -0.0940 +vn 0.1289 0.9748 0.1819 +vn 0.1133 0.9741 0.1956 +vn -0.2215 0.8509 -0.4763 +vn -0.0403 0.9950 -0.0910 +vn -0.1749 0.8607 -0.4781 +vn -0.0284 0.9966 -0.0769 +vn 0.0957 0.9732 0.2092 +vn 0.0780 0.9726 0.2188 +vn -0.1253 0.8735 -0.4705 +vn -0.0190 0.9975 -0.0681 +vn -0.0093 0.9995 -0.0291 +vn -0.0736 0.8957 -0.4384 +vn 0.0565 0.9737 0.2209 +vn 0.0322 0.9746 0.2218 +vn -0.0027 0.9999 0.0168 +vn -0.0232 0.9165 -0.3994 +vn -0.0002 1.0000 0.0016 +vn 0.0098 0.9746 0.2236 +vn -0.0134 0.9751 0.2214 +vn 0.0133 0.9978 -0.0656 +vn -0.0380 0.9764 0.2127 +vn 0.0919 0.9928 -0.0766 +vn 0.0719 0.9964 -0.0456 +vn -0.1688 0.9752 0.1428 +vn -0.1891 0.9738 0.1260 +vn 0.4461 0.8654 -0.2280 +vn 0.0738 0.9967 -0.0339 +vn 0.5005 0.8444 -0.1911 +vn 0.1124 0.9929 -0.0394 +vn -0.2036 0.9732 0.1067 +vn -0.2151 0.9729 0.0853 +vn 0.5380 0.8305 -0.1445 +vn 0.1319 0.9907 -0.0337 +vn 0.5493 0.8298 -0.0987 +vn 0.1294 0.9913 -0.0239 +vn -0.2286 0.9715 0.0633 +vn -0.2382 0.9702 0.0438 +vn 0.1534 0.9880 -0.0165 +vn 0.5738 0.8174 -0.0511 +vn 0.1725 0.9850 -0.0029 +vn 0.5880 0.8088 0.0050 +vn -0.2365 0.9716 -0.0003 +vn -0.2390 0.9707 0.0234 +vn 0.1685 0.9856 0.0130 +vn 0.5816 0.8114 0.0584 +vn 0.1906 0.9811 0.0334 +vn 0.5947 0.7957 0.1148 +vn -0.2283 0.9727 -0.0419 +vn -0.2334 0.9721 -0.0225 +vn 0.2322 0.9706 0.0635 +vn 0.6198 0.7643 0.1782 +vn -0.2196 0.9737 -0.0604 +vn 0.4704 0.7554 0.4563 +vn 0.1819 0.9665 0.1812 +vn 0.4049 0.7862 0.4668 +vn 0.1331 0.9782 0.1594 +vn -0.1600 0.9745 -0.1574 +vn -0.1506 0.9729 -0.1755 +vn 0.3511 0.8004 0.4859 +vn 0.1070 0.9820 0.1555 +vn 0.3083 0.7940 0.5240 +vn 0.0975 0.9798 0.1744 +vn -0.1373 0.9722 -0.1898 +vn -0.1187 0.9719 -0.2031 +vn 0.2522 0.8000 0.5444 +vn 0.0755 0.9828 0.1683 +vn 0.2008 0.8098 0.5513 +vn 0.0575 0.9861 0.1561 +vn -0.0990 0.9711 -0.2172 +vn -0.0819 0.9705 -0.2266 +vn 0.0539 0.9796 0.1938 +vn 0.1568 0.7905 0.5920 +vn 0.0384 0.9716 0.2335 +vn 0.0939 0.7717 0.6290 +vn -0.0341 0.9740 -0.2241 +vn -0.0612 0.9722 -0.2259 +vn 0.0119 0.9762 0.2167 +vn 0.0238 0.7865 0.6172 +vn -0.0118 0.9783 0.2068 +vn -0.0442 0.7936 0.6068 +vn 0.0169 0.9747 -0.2228 +vn -0.0076 0.9743 -0.2251 +vn -0.0370 0.9764 0.2126 +vn -0.1133 0.7897 0.6029 +vn 0.0404 0.9759 -0.2146 +vn -0.3378 0.8987 -0.2796 +vn -0.3609 0.8987 -0.2491 +vn -0.5631 0.6815 -0.4674 +vn -0.6019 0.6828 -0.4142 +vn -0.3787 0.8991 -0.2195 +vn -0.6308 0.6849 -0.3646 +vn -0.3938 0.8996 -0.1886 +vn -0.6555 0.6872 -0.3133 +vn -0.4085 0.8999 -0.1527 +vn -0.6796 0.6885 -0.2531 +vn 0.2151 0.9027 -0.3726 +vn 0.1731 0.9024 -0.3946 +vn 0.3605 0.6922 -0.6252 +vn 0.2908 0.6901 -0.6627 +vn 0.1271 0.9020 -0.4127 +vn 0.2127 0.6886 -0.6933 +vn -0.2940 0.9015 0.3175 +vn -0.2532 0.9018 0.3501 +vn -0.4929 0.6891 0.5313 +vn -0.4240 0.6900 0.5866 +vn -0.2157 0.9020 0.3741 +vn -0.3610 0.6914 0.6258 +vn 0.2894 0.9036 -0.3157 +vn 0.2532 0.9035 -0.3459 +vn 0.4886 0.6909 -0.5329 +vn 0.4258 0.6918 -0.5832 +vn -0.1754 0.9027 0.3929 +vn -0.2949 0.6918 0.6591 +vn -0.2122 0.6918 0.6902 +vn -0.1262 0.9033 0.4101 +vn 0.3664 0.9061 0.2114 +vn 0.3790 0.9065 0.1860 +vn 0.6200 0.6984 0.3575 +vn 0.6426 0.6980 0.3161 +vn 0.3932 0.9067 0.1527 +vn 0.6682 0.6975 0.2588 +vn 0.3293 0.9065 0.2643 +vn 0.3522 0.9056 0.2361 +vn 0.5579 0.6977 0.4494 +vn 0.5952 0.6980 0.3981 +vn 0.3509 0.9057 -0.2379 +vn 0.3216 0.9047 -0.2795 +vn 0.5922 0.6995 -0.4001 +vn 0.5441 0.6942 -0.4712 +vn 0.3915 0.9074 -0.1531 +vn 0.3745 0.9063 -0.1961 +vn 0.6591 0.7070 -0.2562 +vn 0.6309 0.7024 -0.3295 +vn 0.4124 0.9081 -0.0719 +vn 0.4043 0.9082 -0.1088 +vn 0.6908 0.7131 -0.1199 +vn 0.6790 0.7114 -0.1811 +vn 0.4187 0.9081 0.0024 +vn 0.4180 0.9077 -0.0371 +vn 0.7021 0.7121 0.0030 +vn 0.6969 0.7144 -0.0628 +vn 0.4133 0.9074 0.0763 +vn 0.4176 0.9077 0.0401 +vn 0.6979 0.7049 0.1267 +vn 0.7026 0.7085 0.0662 +vn 0.4051 0.9071 0.1145 +vn 0.6874 0.7004 0.1921 +vn 0.3018 0.9069 0.2940 +vn 0.2722 0.9072 0.3208 +vn 0.4571 0.7053 0.5419 +vn 0.5093 0.7007 0.4996 +vn 0.2424 0.9074 0.3433 +vn 0.2095 0.9079 0.3630 +vn 0.3496 0.7124 0.6085 +vn 0.4061 0.7084 0.5773 +vn 0.1738 0.9080 0.3812 +vn 0.1412 0.9073 0.3961 +vn 0.2359 0.7129 0.6604 +vn 0.2893 0.7142 0.6373 +vn 0.1049 0.9071 0.4076 +vn 0.0615 0.9061 0.4186 +vn 0.1766 0.7108 0.6808 +vn 0.1040 0.7058 0.7007 +vn -0.0252 0.9042 0.4264 +vn 0.0187 0.9048 0.4255 +vn -0.0411 0.6983 0.7146 +vn 0.0319 0.7011 0.7124 +vn -0.0742 0.9037 0.4216 +vn -0.1233 0.6940 0.7093 +vn -0.3317 0.9011 0.2794 +vn -0.3622 0.9006 0.2402 +vn -0.6024 0.6917 0.3983 +vn -0.5545 0.6901 0.4651 +vn -0.4032 0.9012 0.1592 +vn -0.3853 0.9005 0.2015 +vn -0.6681 0.6962 0.2624 +vn -0.6393 0.6928 0.3336 +vn -0.4177 0.9013 0.1146 +vn -0.4266 0.9010 0.0782 +vn -0.7022 0.7003 0.1283 +vn -0.6895 0.6996 0.1876 +vn -0.4347 0.9006 -0.0001 +vn -0.4318 0.9010 0.0431 +vn -0.7153 0.6988 0.0010 +vn -0.7091 0.7014 0.0718 +vn -0.4295 0.8997 -0.0778 +vn -0.4340 0.9000 -0.0415 +vn -0.7115 0.6910 -0.1278 +vn -0.7168 0.6940 -0.0676 +vn -0.4209 0.8998 -0.1148 +vn -0.6990 0.6896 -0.1893 +vn -0.2839 0.8993 -0.3328 +vn -0.3113 0.8989 -0.3083 +vn -0.4691 0.6889 -0.5526 +vn -0.5167 0.6841 -0.5149 +vn -0.2179 0.9015 -0.3739 +vn -0.2545 0.9002 -0.3534 +vn -0.3594 0.6986 -0.6187 +vn -0.4203 0.6932 -0.5855 +vn -0.1479 0.9012 -0.4073 +vn -0.1788 0.9017 -0.3936 +vn -0.2446 0.6993 -0.6716 +vn -0.2944 0.7012 -0.6494 +vn -0.0657 0.9023 -0.4262 +vn -0.1140 0.9018 -0.4168 +vn -0.1106 0.6967 -0.7087 +vn -0.1903 0.6989 -0.6895 +vn 0.0319 0.9016 -0.4314 +vn -0.0150 0.9017 -0.4321 +vn 0.0522 0.6918 -0.7202 +vn -0.0257 0.6932 -0.7203 +vn 0.0791 0.9017 -0.4250 +vn 0.1312 0.6898 -0.7120 +vn -0.7305 0.3133 -0.6068 +vn -0.7818 0.3164 -0.5372 +vn -0.7613 0.1447 -0.6321 +vn -0.8151 0.1488 -0.5599 +vn -0.8202 0.3214 -0.4733 +vn -0.8558 0.1539 -0.4939 +vn -0.8538 0.3236 -0.4079 +vn -0.8910 0.1563 -0.4263 +vn -0.9250 0.1578 -0.3456 +vn -0.8861 0.3257 -0.3298 +vn 0.4721 0.3258 -0.8191 +vn 0.3807 0.3220 -0.8668 +vn 0.4935 0.1550 -0.8558 +vn 0.3984 0.1511 -0.9047 +vn 0.2779 0.3196 -0.9059 +vn 0.2914 0.1487 -0.9450 +vn -0.6439 0.3219 0.6941 +vn -0.5538 0.3241 0.7670 +vn -0.6711 0.1521 0.7256 +vn -0.5775 0.1549 0.8015 +vn -0.4722 0.3276 0.8184 +vn -0.4933 0.1585 0.8553 +vn 0.6400 0.3214 -0.6979 +vn 0.5577 0.3242 -0.7641 +vn 0.6680 0.1498 -0.7289 +vn 0.5824 0.1535 -0.7983 +vn -0.3865 0.3259 0.8628 +vn -0.4039 0.1565 0.9013 +vn -0.2780 0.3237 0.9044 +vn -0.2905 0.1526 0.9446 +vn 0.8163 0.3346 0.4708 +vn 0.8462 0.3320 0.4169 +vn 0.8548 0.1629 0.4928 +vn 0.8854 0.1595 0.4365 +vn 0.8806 0.3295 0.3406 +vn 0.9211 0.1562 0.3565 +vn 0.7350 0.3301 0.5923 +vn 0.7844 0.3321 0.5239 +vn 0.7694 0.1572 0.6191 +vn 0.8212 0.1601 0.5478 +vn 0.7811 0.3340 -0.5276 +vn 0.7151 0.3256 -0.6185 +vn 0.8168 0.1610 -0.5539 +vn 0.7469 0.1531 -0.6471 +vn 0.8741 0.3473 -0.3396 +vn 0.8336 0.3398 -0.4354 +vn 0.9168 0.1749 -0.3589 +vn 0.8728 0.1671 -0.4585 +vn 0.9194 0.3596 -0.1591 +vn 0.9031 0.3559 -0.2401 +vn 0.9679 0.1879 -0.1671 +vn 0.9498 0.1834 -0.2536 +vn 0.9287 0.3612 -0.0838 +vn 0.9341 0.3571 0.0037 +vn 0.9781 0.1894 -0.0867 +vn 0.9829 0.1842 0.0065 +vn 0.9328 0.3495 0.0876 +vn 0.9244 0.3431 0.1669 +vn 0.9797 0.1771 0.0941 +vn 0.9696 0.1695 0.1766 +vn 0.9080 0.3346 0.2522 +vn 0.9509 0.1606 0.2646 +vn 0.6045 0.3446 0.7183 +vn 0.6716 0.3354 0.6607 +vn 0.6356 0.1717 0.7527 +vn 0.7042 0.1621 0.6913 +vn 0.4648 0.3586 0.8095 +vn 0.5382 0.3516 0.7660 +vn 0.4917 0.1877 0.8503 +vn 0.5676 0.1793 0.8036 +vn 0.3140 0.3613 0.8780 +vn 0.3850 0.3631 0.8485 +vn 0.3311 0.1906 0.9242 +vn 0.4072 0.1924 0.8928 +vn 0.2354 0.3564 0.9042 +vn 0.1379 0.3473 0.9276 +vn 0.2468 0.1851 0.9512 +vn 0.1426 0.1757 0.9741 +vn 0.0420 0.3396 0.9396 +vn -0.0538 0.3347 0.9408 +vn 0.0419 0.1680 0.9849 +vn -0.0580 0.1625 0.9850 +vn -0.1612 0.3272 0.9311 +vn -0.1693 0.1552 0.9733 +vn -0.7881 0.3286 0.5205 +vn -0.7250 0.3249 0.6072 +vn -0.8228 0.1597 0.5455 +vn -0.7564 0.1553 0.6354 +vn -0.8761 0.3381 0.3438 +vn -0.8364 0.3316 0.4364 +vn -0.9166 0.1696 0.3620 +vn -0.8738 0.1626 0.4582 +vn -0.9224 0.3477 0.1680 +vn -0.9060 0.3447 0.2456 +vn -0.9678 0.1804 0.1758 +vn -0.9498 0.1768 0.2582 +vn -0.9324 0.3489 0.0943 +vn -0.9390 0.3439 0.0013 +vn -0.9786 0.1815 0.0970 +vn -0.9844 0.1757 -0.0018 +vn -0.9379 0.3354 -0.0884 +vn -0.9289 0.3306 -0.1666 +vn -0.9813 0.1674 -0.0950 +vn -0.9709 0.1626 -0.1761 +vn -0.9120 0.3278 -0.2465 +vn -0.9525 0.1597 -0.2592 +vn -0.6111 0.3259 -0.7213 +vn -0.6707 0.3175 -0.6704 +vn -0.6393 0.1570 -0.7527 +vn -0.6999 0.1484 -0.6987 +vn -0.4720 0.3420 -0.8126 +vn -0.5495 0.3336 -0.7660 +vn -0.4972 0.1725 -0.8503 +vn -0.5768 0.1645 -0.8001 +vn -0.3217 0.3450 -0.8817 +vn -0.3872 0.3466 -0.8544 +vn -0.3376 0.1772 -0.9244 +vn -0.4076 0.1786 -0.8955 +vn -0.1457 0.3362 -0.9305 +vn -0.2511 0.3421 -0.9055 +vn -0.2621 0.1736 -0.9493 +vn -0.1502 0.1669 -0.9745 +vn 0.0682 0.3269 -0.9426 +vn -0.0336 0.3301 -0.9433 +vn -0.0330 0.1599 -0.9866 +vn 0.0731 0.1567 -0.9849 +vn 0.1710 0.3228 -0.9309 +vn 0.1801 0.1522 -0.9718 +vn -0.9541 0.0479 -0.2955 +vn -0.9394 0.0579 -0.3378 +vn -0.9414 0.0281 -0.3361 +vn -0.9549 0.0268 -0.2958 +vn -0.9473 0.0895 -0.3076 +vn -0.9561 0.0724 -0.2841 +vn -0.9265 0.1066 -0.3609 +vn -0.9324 0.0841 -0.3516 +vn -0.9410 0.1089 -0.3204 +vn -0.9351 0.1287 -0.3302 +vn -0.9194 0.1662 -0.3565 +vn -0.9072 0.1520 -0.3922 +vn -0.9172 0.1292 -0.3770 +vn -0.9266 0.1490 -0.3452 +vn -0.9013 0.1936 -0.3874 +vn -0.9122 0.1929 -0.3615 +vn -0.8805 0.1751 -0.4406 +vn -0.8918 0.1655 -0.4210 +vn -0.8903 0.2020 -0.4081 +vn -0.8807 0.2094 -0.4248 +vn -0.8551 0.2233 -0.4679 +vn -0.8518 0.1863 -0.4896 +vn -0.8676 0.1799 -0.4636 +vn -0.8689 0.2150 -0.4459 +vn -0.8354 0.2228 -0.5024 +vn -0.8413 0.2410 -0.4838 +vn -0.8237 0.1753 -0.5392 +vn -0.8374 0.1797 -0.5162 +vn -0.8239 0.2148 -0.5245 +vn -0.8106 0.2087 -0.5471 +vn -0.7884 0.1931 -0.5841 +vn -0.7958 0.1535 -0.5858 +vn -0.8117 0.1661 -0.5600 +vn -0.8005 0.2001 -0.5649 +vn -0.7714 0.1680 -0.6137 +vn -0.7718 0.1931 -0.6059 +vn -0.7776 0.1069 -0.6196 +vn -0.7862 0.1289 -0.6044 +vn -0.7646 0.1486 -0.6272 +vn -0.7563 0.1288 -0.6414 +vn -0.7430 0.0891 -0.6634 +vn -0.7632 0.0577 -0.6436 +vn -0.7725 0.0854 -0.6293 +vn -0.7506 0.1081 -0.6519 +vn -0.7367 0.0477 -0.6745 +vn -0.7288 0.0732 -0.6808 +vn -0.7630 0.0284 -0.6458 +vn -0.7369 0.0266 -0.6755 +vn -0.7879 0.0481 -0.6140 +vn -0.7910 0.0714 -0.6077 +vn -0.7961 0.0915 -0.5981 +vn -0.8097 0.0638 -0.5834 +vn -0.8132 0.0835 -0.5759 +vn -0.8076 0.0398 -0.5883 +vn -0.8968 0.0742 -0.4361 +vn -0.8868 0.0743 -0.4561 +vn -0.8886 0.0560 -0.4553 +vn -0.8993 0.0571 -0.4336 +vn -0.9059 0.0796 -0.4159 +vn -0.9098 0.0595 -0.4108 +vn -0.9129 0.0384 -0.4065 +vn -0.9017 0.0356 -0.4308 +vn -0.8899 0.0336 -0.4550 +vn -0.8905 0.0181 -0.4547 +vn -0.9024 0.0199 -0.4304 +vn -0.9139 0.0230 -0.4052 +vn -0.8639 0.0739 -0.4982 +vn -0.8622 0.0969 -0.4972 +vn -0.8531 0.0971 -0.5127 +vn -0.8536 0.0737 -0.5158 +vn -0.8405 0.0967 -0.5332 +vn -0.8408 0.0738 -0.5363 +vn -0.8377 0.1235 -0.5320 +vn -0.8501 0.1254 -0.5115 +vn -0.8598 0.1250 -0.4950 +vn -0.8415 0.0559 -0.5374 +vn -0.8542 0.0552 -0.5171 +vn -0.8650 0.0552 -0.4987 +vn -0.8546 0.0323 -0.5184 +vn -0.8658 0.0321 -0.4993 +vn -0.8412 0.0332 -0.5397 +vn -0.8410 0.0175 -0.5407 +vn -0.8547 0.0168 -0.5189 +vn -0.8662 0.0165 -0.4994 +vn -0.8324 0.1497 -0.5336 +vn -0.8449 0.1532 -0.5126 +vn -0.8564 0.1544 -0.4927 +vn -0.8818 0.1221 -0.4556 +vn -0.8891 0.1192 -0.4419 +vn -0.8894 0.1396 -0.4353 +vn -0.8812 0.1474 -0.4492 +vn -0.9002 0.1280 -0.4161 +vn -0.8937 0.1166 -0.4332 +vn -0.8680 0.1536 -0.4723 +vn -0.8708 0.1245 -0.4757 +vn -0.8732 0.0967 -0.4777 +vn -0.8837 0.0970 -0.4579 +vn -0.8752 0.0738 -0.4782 +vn -0.8764 0.0553 -0.4785 +vn -0.8774 0.0324 -0.4788 +vn -0.8777 0.0166 -0.4789 +vn -0.9093 0.1114 -0.4008 +vn -0.9159 0.0911 -0.3909 +vn -0.9013 0.0973 -0.4221 +vn -0.8266 0.0588 -0.5597 +vn -0.8267 0.0777 -0.5573 +vn -0.8256 0.0348 -0.5632 +vn -0.8065 0.0218 -0.5908 +vn -0.8247 0.0190 -0.5653 +vn -0.8918 0.0954 -0.4422 +vn -0.8200 0.1137 -0.5610 +vn -0.8163 0.0971 -0.5694 +vn -0.8278 0.0963 -0.5526 +vn -0.8269 0.1178 -0.5498 +vn -0.8113 0.1282 -0.5704 +vn -0.8212 0.1399 -0.5532 +vn -0.9226 0.0673 -0.3799 +vn -0.9253 0.0469 -0.3764 +vn -0.9270 0.0273 -0.3741 +vn -0.7857 0.0254 -0.6181 +vn -0.8034 0.1106 -0.5850 +vn -0.5581 0.6612 0.5014 +vn -0.5430 0.6894 0.4795 +vn -0.4870 0.6892 0.5365 +vn -0.4993 0.6658 0.5545 +vn -0.4364 0.6680 0.6028 +vn -0.4259 0.6896 0.5857 +vn -0.3609 0.6885 0.6291 +vn -0.3704 0.6676 0.6458 +vn -0.3018 0.6663 0.6819 +vn -0.2930 0.6861 0.6659 +vn -0.2189 0.6858 0.6941 +vn -0.2278 0.6655 0.7107 +vn -0.1521 0.6627 0.7333 +vn -0.1412 0.6877 0.7122 +vn -0.0603 0.6905 0.7208 +vn -0.0711 0.6615 0.7465 +vn -0.7422 0.6249 0.2423 +vn -0.7067 0.6333 0.3154 +vn 0.0117 0.6589 0.7521 +vn 0.0202 0.6885 0.7250 +vn 0.1019 0.6839 0.7224 +vn 0.1822 0.6810 0.7093 +vn 0.2485 0.6822 0.6876 +vn 0.3128 0.6841 0.6589 +vn 0.3774 0.6891 0.6187 +vn 0.4637 0.6600 0.5911 +vn 0.4349 0.6900 0.5786 +vn 0.4863 0.6857 0.5416 +vn 0.5109 0.6596 0.5512 +vn 0.5522 0.6601 0.5092 +vn 0.5326 0.6809 0.5027 +vn 0.5747 0.6764 0.4607 +vn 0.5882 0.6616 0.4651 +vn 0.6231 0.6591 0.4212 +vn 0.6084 0.6763 0.4153 +vn 0.6366 0.6774 0.3686 +vn 0.6499 0.6601 0.3766 +vn 0.6742 0.6611 0.3293 +vn 0.6624 0.6768 0.3213 +vn 0.6839 0.6782 0.2688 +vn 0.6970 0.6603 0.2798 +vn 0.7156 0.6612 0.2254 +vn 0.6996 0.6826 0.2112 +vn 0.7101 0.6880 0.1498 +vn 0.7300 0.6626 0.1674 +vn 0.7395 0.6647 0.1058 +vn 0.7175 0.6911 0.0868 +vn 0.7220 0.6916 0.0202 +vn 0.7212 0.6907 -0.0525 +vn 0.7112 0.6923 -0.1222 +vn 0.6917 0.6975 -0.1872 +vn 0.6609 0.7037 -0.2608 +vn 0.6228 0.7089 -0.3310 +vn 0.4344 0.6782 -0.5928 +vn 0.4199 0.7039 -0.5729 +vn 0.3528 0.7092 -0.6104 +vn 0.3677 0.6786 -0.6359 +vn 0.2987 0.6780 -0.6716 +vn 0.2892 0.7023 -0.6505 +vn -0.0234 0.7249 -0.6885 +vn -0.1029 0.7201 -0.6862 +vn -0.1820 0.7117 -0.6785 +vn -0.2490 0.7019 -0.6674 +vn -0.3104 0.7009 -0.6422 +vn -0.3705 0.7029 -0.6072 +vn -0.4247 0.7015 -0.5723 +vn -0.5993 0.6914 -0.4035 +vn -0.6247 0.6936 -0.3587 +vn -0.6512 0.6899 -0.3161 +vn -0.7805 0.6252 0.0021 +vn -0.7705 0.6343 -0.0629 +vn -0.7592 0.6387 -0.1250 +vn -0.7768 0.6115 -0.1503 +vn 0.0015 0.8889 0.4581 +vn 0.0016 0.9152 0.4030 +vn -0.0303 0.9150 0.4022 +vn -0.0344 0.8889 0.4569 +vn -0.0706 0.8889 0.4527 +vn -0.0627 0.9148 0.3990 +vn -0.0272 0.9372 0.3478 +vn -0.0558 0.9369 0.3451 +vn 0.0007 0.9375 0.3481 +vn -0.1058 0.8889 0.4458 +vn -0.0952 0.9151 0.3918 +vn -0.1406 0.8890 0.4358 +vn -0.1260 0.9154 0.3824 +vn -0.0842 0.9372 0.3385 +vn -0.1113 0.9376 0.3294 +vn -0.1744 0.8891 0.4233 +vn -0.1550 0.9153 0.3718 +vn -0.2066 0.8891 0.4085 +vn -0.1825 0.9153 0.3591 +vn -0.1360 0.9375 0.3203 +vn -0.1589 0.9374 0.3097 +vn -0.2376 0.8892 0.3911 +vn -0.2089 0.9154 0.3442 +vn -0.2345 0.9155 0.3270 +vn -0.2671 0.8893 0.3713 +vn -0.1809 0.9375 0.2972 +vn -0.2028 0.9376 0.2825 +vn -0.2603 0.9152 0.3075 +vn -0.2954 0.8893 0.3491 +vn -0.3222 0.8893 0.3245 +vn -0.2843 0.9152 0.2856 +vn -0.2468 0.9371 0.2468 +vn -0.2248 0.9374 0.2660 +vn -0.3467 0.8893 0.2982 +vn -0.3062 0.9155 0.2610 +vn -0.3690 0.8895 0.2697 +vn -0.3256 0.9157 0.2354 +vn -0.2658 0.9374 0.2248 +vn -0.2824 0.9379 0.2015 +vn -0.3890 0.8895 0.2397 +vn -0.3428 0.9157 0.2097 +vn -0.4063 0.8896 0.2088 +vn -0.3577 0.9157 0.1833 +vn -0.2969 0.9378 0.1797 +vn -0.3094 0.9378 0.1577 +vn -0.4212 0.8896 0.1765 +vn -0.3703 0.9158 0.1556 +vn -0.3808 0.9159 0.1267 +vn -0.4334 0.8898 0.1431 +vn -0.3198 0.9379 0.1344 +vn -0.3287 0.9380 0.1102 +vn -0.3900 0.9158 0.0961 +vn -0.4434 0.8898 0.1085 +vn -0.3968 0.9157 0.0639 +vn -0.4506 0.8898 0.0728 +vn -0.3435 0.9375 0.0549 +vn -0.3373 0.9377 0.0832 +vn -0.4547 0.8899 0.0367 +vn -0.4002 0.9159 0.0315 +vn -0.4560 0.8900 0.0006 +vn -0.4007 0.9162 -0.0010 +vn -0.3459 0.9379 0.0257 +vn -0.3459 0.9383 -0.0021 +vn -0.4547 0.8900 -0.0351 +vn -0.3996 0.9161 -0.0319 +vn -0.4505 0.8900 -0.0704 +vn -0.3961 0.9161 -0.0620 +vn -0.3448 0.9383 -0.0285 +vn -0.3418 0.9382 -0.0538 +vn -0.4436 0.8900 -0.1052 +vn -0.3900 0.9162 -0.0918 +vn -0.3816 0.9163 -0.1215 +vn -0.4338 0.8901 -0.1395 +vn -0.3293 0.9385 -0.1041 +vn -0.3366 0.9384 -0.0788 +vn -0.3710 0.9162 -0.1516 +vn -0.4215 0.8901 -0.1733 +vn -0.3575 0.9161 -0.1817 +vn -0.4063 0.8901 -0.2064 +vn -0.3090 0.9380 -0.1571 +vn -0.3205 0.9382 -0.1306 +vn -0.3888 0.8901 -0.2379 +vn -0.3409 0.9163 -0.2102 +vn -0.3682 0.8903 -0.2681 +vn -0.3226 0.9165 -0.2366 +vn -0.2939 0.9383 -0.1820 +vn -0.2771 0.9387 -0.2048 +vn -0.3462 0.8902 -0.2961 +vn -0.3035 0.9164 -0.2608 +vn -0.3221 0.8902 -0.3222 +vn -0.2829 0.9164 -0.2832 +vn -0.2607 0.9387 -0.2255 +vn -0.2436 0.9387 -0.2441 +vn -0.2960 0.8902 -0.3463 +vn -0.2605 0.9165 -0.3037 +vn -0.2362 0.9166 -0.3227 +vn -0.2680 0.8903 -0.3683 +vn -0.2042 0.9389 -0.2771 +vn -0.2251 0.9387 -0.2611 +vn -0.2098 0.9164 -0.3409 +vn -0.2381 0.8902 -0.3884 +vn -0.1813 0.9162 -0.3573 +vn -0.2063 0.8902 -0.4062 +vn -0.1564 0.9383 -0.3084 +vn -0.1815 0.9386 -0.2934 +vn -0.1731 0.8902 -0.4214 +vn -0.1510 0.9164 -0.3706 +vn -0.1393 0.8902 -0.4337 +vn -0.1208 0.9166 -0.3811 +vn -0.1295 0.9386 -0.3197 +vn -0.1029 0.9390 -0.3283 +vn -0.1050 0.8901 -0.4434 +vn -0.0910 0.9165 -0.3895 +vn -0.0701 0.8901 -0.4503 +vn -0.0611 0.9164 -0.3955 +vn -0.0773 0.9389 -0.3353 +vn -0.0522 0.9389 -0.3403 +vn -0.0349 0.8901 -0.4545 +vn -0.0312 0.9165 -0.3988 +vn -0.0002 0.9166 -0.3999 +vn 0.0008 0.8901 -0.4558 +vn -0.0011 0.9390 -0.3438 +vn -0.0272 0.9389 -0.3430 +vn 0.0323 0.9163 -0.3992 +vn 0.0369 0.8900 -0.4544 +vn 0.0644 0.9162 -0.3956 +vn 0.0729 0.8899 -0.4502 +vn 0.0560 0.9384 -0.3410 +vn 0.0272 0.9387 -0.3436 +vn 0.1085 0.8899 -0.4431 +vn 0.0968 0.9163 -0.3886 +vn 0.1431 0.8899 -0.4332 +vn 0.1278 0.9165 -0.3791 +vn 0.0844 0.9387 -0.3344 +vn 0.1111 0.9389 -0.3256 +vn 0.1768 0.8898 -0.4206 +vn 0.1566 0.9164 -0.3685 +vn 0.2091 0.8898 -0.4057 +vn 0.1842 0.9162 -0.3558 +vn 0.1360 0.9389 -0.3162 +vn 0.1592 0.9388 -0.3055 +vn 0.2399 0.8897 -0.3884 +vn 0.2102 0.9163 -0.3410 +vn 0.2360 0.9163 -0.3236 +vn 0.2695 0.8897 -0.3685 +vn 0.2026 0.9389 -0.2783 +vn 0.1808 0.9388 -0.2931 +vn 0.2616 0.9160 -0.3040 +vn 0.2979 0.8896 -0.3462 +vn 0.2857 0.9158 -0.2822 +vn 0.3246 0.8895 -0.3216 +vn 0.2470 0.9382 -0.2426 +vn 0.2257 0.9385 -0.2614 +vn 0.3491 0.8894 -0.2950 +vn 0.3077 0.9159 -0.2578 +vn 0.3714 0.8895 -0.2663 +vn 0.3272 0.9161 -0.2318 +vn 0.2660 0.9385 -0.2202 +vn 0.2827 0.9388 -0.1970 +vn 0.3911 0.8893 -0.2370 +vn 0.3443 0.9160 -0.2060 +vn 0.4085 0.8893 -0.2056 +vn 0.3592 0.9158 -0.1795 +vn 0.2972 0.9386 -0.1753 +vn 0.3096 0.9384 -0.1532 +vn 0.4232 0.8893 -0.1735 +vn 0.3713 0.9159 -0.1525 +vn 0.3822 0.9159 -0.1231 +vn 0.4358 0.8891 -0.1398 +vn 0.3198 0.9384 -0.1307 +vn 0.3289 0.9385 -0.1053 +vn 0.3913 0.9156 -0.0922 +vn 0.4453 0.8891 -0.1053 +vn 0.4526 0.8890 -0.0700 +vn 0.3980 0.9154 -0.0604 +vn 0.3436 0.9378 -0.0507 +vn 0.3374 0.9381 -0.0785 +vn 0.4567 0.8890 -0.0340 +vn 0.4013 0.9155 -0.0275 +vn 0.4580 0.8890 0.0022 +vn 0.4019 0.9157 0.0047 +vn 0.3459 0.9380 -0.0217 +vn 0.3458 0.9383 0.0069 +vn 0.4564 0.8890 0.0381 +vn 0.4007 0.9155 0.0356 +vn 0.4522 0.8889 0.0733 +vn 0.3971 0.9154 0.0658 +vn 0.3445 0.9382 0.0335 +vn 0.3417 0.9380 0.0584 +vn 0.4453 0.8889 0.1079 +vn 0.3911 0.9154 0.0951 +vn 0.4355 0.8889 0.1423 +vn 0.3825 0.9155 0.1249 +vn 0.3365 0.9380 0.0829 +vn 0.3292 0.9380 0.1085 +vn 0.3719 0.9152 0.1552 +vn 0.4231 0.8888 0.1761 +vn 0.4080 0.8887 0.2091 +vn 0.3586 0.9150 0.1849 +vn 0.3203 0.9376 0.1351 +vn 0.3092 0.9373 0.1610 +vn 0.3900 0.8888 0.2408 +vn 0.3419 0.9152 0.2135 +vn 0.3699 0.8888 0.2706 +vn 0.3233 0.9153 0.2401 +vn 0.2938 0.9376 0.1861 +vn 0.2768 0.9379 0.2093 +vn 0.3479 0.8887 0.2986 +vn 0.3043 0.9152 0.2642 +vn 0.3238 0.8887 0.3246 +vn 0.2837 0.9151 0.2865 +vn 0.2602 0.9378 0.2300 +vn 0.2430 0.9376 0.2486 +vn 0.2978 0.8887 0.3486 +vn 0.2616 0.9152 0.3067 +vn 0.2697 0.8887 0.3706 +vn 0.2372 0.9152 0.3258 +vn 0.2248 0.9376 0.2652 +vn 0.2039 0.9376 0.2816 +vn 0.2108 0.9150 0.3440 +vn 0.2399 0.8887 0.3907 +vn 0.2083 0.8887 0.4085 +vn 0.1825 0.9148 0.3603 +vn 0.1811 0.9373 0.2979 +vn 0.1565 0.9370 0.3124 +vn 0.1757 0.8886 0.4237 +vn 0.1526 0.9150 0.3736 +vn 0.1413 0.8888 0.4359 +vn 0.1219 0.9152 0.3841 +vn 0.1296 0.9372 0.3237 +vn 0.1023 0.9376 0.3324 +vn 0.1070 0.8888 0.4457 +vn 0.0922 0.9151 0.3925 +vn 0.0723 0.8888 0.4526 +vn 0.0624 0.9151 0.3985 +vn 0.0772 0.9375 0.3394 +vn 0.0521 0.9374 0.3444 +vn 0.0370 0.8888 0.4568 +vn 0.0324 0.9151 0.4019 +vn 0.0271 0.9374 0.3471 +vn 0.0011 0.8598 0.5106 +vn -0.0391 0.8594 0.5098 +vn -0.0002 0.8312 0.5560 +vn -0.0431 0.8314 0.5540 +vn -0.0783 0.8592 0.5055 +vn -0.0856 0.8315 0.5489 +vn -0.1179 0.8593 0.4977 +vn -0.1283 0.8314 0.5406 +vn -0.1565 0.8593 0.4869 +vn -0.1702 0.8314 0.5290 +vn -0.1942 0.8593 0.4731 +vn -0.2111 0.8314 0.5141 +vn -0.2306 0.8594 0.4564 +vn -0.2509 0.8313 0.4959 +vn -0.2655 0.8594 0.4369 +vn -0.2889 0.8312 0.4750 +vn -0.2990 0.8595 0.4146 +vn -0.3254 0.8309 0.4514 +vn -0.3299 0.8598 0.3897 +vn -0.3597 0.8308 0.4247 +vn -0.3597 0.8599 0.3622 +vn -0.3925 0.8307 0.3947 +vn -0.3873 0.8598 0.3328 +vn -0.4229 0.8306 0.3623 +vn -0.4122 0.8597 0.3016 +vn -0.4496 0.8306 0.3286 +vn -0.4345 0.8597 0.2684 +vn -0.4741 0.8305 0.2925 +vn -0.4542 0.8598 0.2334 +vn -0.4957 0.8304 0.2544 +vn -0.4710 0.8598 0.1971 +vn -0.5139 0.8305 0.2150 +vn -0.4848 0.8600 0.1595 +vn -0.5298 0.8301 0.1740 +vn -0.4956 0.8601 0.1209 +vn -0.5416 0.8302 0.1321 +vn -0.5034 0.8602 0.0814 +vn -0.5508 0.8299 0.0888 +vn -0.5082 0.8603 0.0414 +vn -0.5563 0.8298 0.0451 +vn -0.5100 0.8602 0.0016 +vn -0.5581 0.8297 0.0010 +vn -0.5085 0.8602 -0.0389 +vn -0.5565 0.8297 -0.0428 +vn -0.5039 0.8602 -0.0787 +vn -0.5514 0.8298 -0.0864 +vn -0.4962 0.8602 -0.1181 +vn -0.5430 0.8297 -0.1294 +vn -0.4853 0.8602 -0.1567 +vn -0.5311 0.8297 -0.1717 +vn -0.4714 0.8602 -0.1944 +vn -0.5160 0.8297 -0.2130 +vn -0.4546 0.8602 -0.2310 +vn -0.4976 0.8297 -0.2530 +vn -0.4349 0.8603 -0.2661 +vn -0.4763 0.8296 -0.2914 +vn -0.4126 0.8603 -0.2995 +vn -0.4519 0.8295 -0.3280 +vn -0.3878 0.8603 -0.3310 +vn -0.4248 0.8295 -0.3627 +vn -0.3605 0.8603 -0.3604 +vn -0.3950 0.8294 -0.3950 +vn -0.3310 0.8603 -0.3877 +vn -0.3626 0.8299 -0.4239 +vn -0.2995 0.8603 -0.4125 +vn -0.3275 0.8305 -0.4506 +vn -0.2659 0.8602 -0.4351 +vn -0.2907 0.8300 -0.4760 +vn -0.2309 0.8603 -0.4545 +vn -0.2528 0.8298 -0.4975 +vn -0.1943 0.8603 -0.4714 +vn -0.2129 0.8297 -0.5160 +vn -0.1567 0.8603 -0.4852 +vn -0.1717 0.8297 -0.5312 +vn -0.1180 0.8602 -0.4961 +vn -0.1294 0.8296 -0.5431 +vn -0.0787 0.8602 -0.5038 +vn -0.0864 0.8296 -0.5516 +vn -0.0388 0.8602 -0.5085 +vn -0.0427 0.8296 -0.5567 +vn 0.0013 0.8601 -0.5100 +vn 0.0015 0.8296 -0.5584 +vn 0.0415 0.8601 -0.5085 +vn 0.0453 0.8296 -0.5565 +vn 0.0813 0.8600 -0.5037 +vn 0.0885 0.8302 -0.5504 +vn 0.1208 0.8600 -0.4958 +vn 0.1316 0.8303 -0.5415 +vn 0.1594 0.8599 -0.4849 +vn 0.1738 0.8303 -0.5295 +vn 0.1971 0.8599 -0.4709 +vn 0.2149 0.8303 -0.5143 +vn 0.2334 0.8598 -0.4541 +vn 0.2545 0.8303 -0.4958 +vn 0.2684 0.8598 -0.4345 +vn 0.2926 0.8303 -0.4743 +vn 0.3017 0.8597 -0.4121 +vn 0.3288 0.8305 -0.4497 +vn 0.3332 0.8597 -0.3872 +vn 0.3631 0.8305 -0.4224 +vn 0.3626 0.8597 -0.3599 +vn 0.3951 0.8306 -0.3925 +vn 0.3899 0.8596 -0.3303 +vn 0.4241 0.8310 -0.3601 +vn 0.4148 0.8593 -0.2992 +vn 0.4507 0.8313 -0.3254 +vn 0.4368 0.8595 -0.2655 +vn 0.4745 0.8314 -0.2890 +vn 0.4564 0.8594 -0.2304 +vn 0.4969 0.8308 -0.2509 +vn 0.4731 0.8594 -0.1941 +vn 0.5149 0.8307 -0.2116 +vn 0.4869 0.8594 -0.1564 +vn 0.5289 0.8313 -0.1706 +vn 0.4977 0.8593 -0.1178 +vn 0.5402 0.8317 -0.1283 +vn 0.5054 0.8593 -0.0785 +vn 0.5484 0.8318 -0.0854 +vn 0.5100 0.8593 -0.0387 +vn 0.5533 0.8319 -0.0429 +vn 0.5112 0.8595 0.0012 +vn 0.5549 0.8319 0.0003 +vn 0.5093 0.8596 0.0413 +vn 0.5533 0.8318 0.0444 +vn 0.5046 0.8595 0.0814 +vn 0.5481 0.8317 0.0887 +vn 0.4970 0.8593 0.1204 +vn 0.5393 0.8319 0.1306 +vn 0.4861 0.8594 0.1587 +vn 0.5278 0.8323 0.1693 +vn 0.4710 0.8603 0.1951 +vn 0.5138 0.8321 0.2090 +vn 0.4527 0.8613 0.2307 +vn 0.4960 0.8315 0.2503 +vn 0.4322 0.8619 0.2651 +vn 0.4745 0.8309 0.2906 +vn 0.4100 0.8620 0.2981 +vn 0.4499 0.8309 0.3275 +vn 0.3853 0.8618 0.3298 +vn 0.4227 0.8307 0.3622 +vn 0.3586 0.8616 0.3594 +vn 0.3926 0.8308 0.3946 +vn 0.3299 0.8613 0.3864 +vn 0.3605 0.8310 0.4237 +vn 0.2990 0.8610 0.4113 +vn 0.3261 0.8311 0.4505 +vn 0.2662 0.8607 0.4341 +vn 0.2887 0.8309 0.4757 +vn 0.2317 0.8599 0.4549 +vn 0.2503 0.8311 0.4967 +vn 0.1961 0.8592 0.4725 +vn 0.2127 0.8315 0.5132 +vn 0.1590 0.8592 0.4862 +vn 0.1729 0.8316 0.5278 +vn 0.1204 0.8593 0.4971 +vn 0.1312 0.8316 0.5396 +vn 0.0813 0.8597 0.5042 +vn 0.0889 0.8317 0.5480 +vn 0.0412 0.8599 0.5088 +vn 0.0446 0.8314 0.5539 +vn 0.0005 0.8011 0.5985 +vn -0.0460 0.8016 0.5961 +vn 0.0006 0.7282 0.6854 +vn -0.0531 0.7273 0.6843 +vn -0.0924 0.8017 0.5906 +vn -0.1065 0.7265 0.6788 +vn -0.1386 0.8012 0.5821 +vn -0.1596 0.7267 0.6682 +vn -0.1839 0.8009 0.5699 +vn -0.2122 0.7258 0.6543 +vn -0.2281 0.8004 0.5543 +vn -0.2641 0.7228 0.6386 +vn -0.2712 0.8002 0.5349 +vn -0.3138 0.7209 0.6180 +vn -0.3126 0.8000 0.5122 +vn -0.3611 0.7203 0.5923 +vn -0.3512 0.8001 0.4863 +vn -0.4076 0.7193 0.5625 +vn -0.3887 0.7996 0.4578 +vn -0.4530 0.7158 0.5315 +vn -0.4241 0.7992 0.4260 +vn -0.4947 0.7137 0.4960 +vn -0.4566 0.7990 0.3913 +vn -0.5327 0.7129 0.4561 +vn -0.4860 0.7988 0.3545 +vn -0.5679 0.7118 0.4133 +vn -0.5127 0.7984 0.3157 +vn -0.6002 0.7102 0.3680 +vn -0.5361 0.7982 0.2747 +vn -0.6286 0.7082 0.3215 +vn -0.5562 0.7981 0.2317 +vn -0.6532 0.7068 0.2718 +vn -0.5724 0.7983 0.1875 +vn -0.6745 0.7046 0.2204 +vn -0.5855 0.7981 0.1420 +vn -0.6912 0.7031 0.1668 +vn -0.5952 0.7979 0.0955 +vn -0.7040 0.7012 0.1124 +vn -0.6011 0.7977 0.0484 +vn -0.7113 0.7006 0.0564 +vn -0.6031 0.7977 0.0010 +vn -0.7155 0.6987 0.0008 +vn -0.6013 0.7977 -0.0463 +vn -0.7143 0.6977 -0.0554 +vn -0.5957 0.7978 -0.0934 +vn -0.7094 0.6960 -0.1115 +vn -0.5866 0.7977 -0.1400 +vn -0.6989 0.6954 -0.1672 +vn -0.5739 0.7976 -0.1857 +vn -0.6846 0.6944 -0.2218 +vn -0.5577 0.7974 -0.2303 +vn -0.6647 0.6947 -0.2750 +vn -0.5379 0.7974 -0.2736 +vn -0.6418 0.6937 -0.3269 +vn -0.5148 0.7973 -0.3152 +vn -0.6147 0.6930 -0.3767 +vn -0.4885 0.7971 -0.3548 +vn -0.5839 0.6922 -0.4241 +vn -0.4593 0.7969 -0.3924 +vn -0.5481 0.6929 -0.4685 +vn -0.4277 0.7966 -0.4273 +vn -0.5100 0.6929 -0.5097 +vn -0.3936 0.7966 -0.4588 +vn -0.4689 0.6942 -0.5462 +vn -0.3549 0.7970 -0.4887 +vn -0.4222 0.6955 -0.5814 +vn -0.3144 0.7969 -0.5159 +vn -0.3747 0.6942 -0.6146 +vn -0.2737 0.7972 -0.5382 +vn -0.3272 0.6933 -0.6421 +vn -0.2303 0.7973 -0.5578 +vn -0.2752 0.6939 -0.6654 +vn -0.1857 0.7974 -0.5741 +vn -0.2217 0.6947 -0.6843 +vn -0.1399 0.7974 -0.5869 +vn -0.1669 0.6960 -0.6984 +vn -0.0935 0.7974 -0.5961 +vn -0.1115 0.6969 -0.7085 +vn -0.0464 0.7975 -0.6016 +vn -0.0553 0.6983 -0.7136 +vn 0.0010 0.7973 -0.6036 +vn -0.0001 0.7006 -0.7136 +vn 0.0478 0.7976 -0.6013 +vn 0.0536 0.7079 -0.7042 +vn 0.0943 0.7991 -0.5938 +vn 0.1061 0.7169 -0.6890 +vn 0.1402 0.8013 -0.5816 +vn 0.1620 0.7222 -0.6725 +vn 0.1869 0.8009 -0.5689 +vn 0.2171 0.7173 -0.6620 +vn 0.2310 0.8005 -0.5530 +vn 0.2657 0.7216 -0.6393 +vn 0.2738 0.8002 -0.5335 +vn 0.3162 0.7260 -0.6107 +vn 0.3156 0.7992 -0.5115 +vn 0.3681 0.7150 -0.5944 +vn 0.3550 0.7988 -0.4857 +vn 0.4131 0.7124 -0.5673 +vn 0.3912 0.7994 -0.4559 +vn 0.4535 0.7164 -0.5302 +vn 0.4249 0.7999 -0.4237 +vn 0.4938 0.7170 -0.4919 +vn 0.4575 0.7995 -0.3892 +vn 0.5318 0.7159 -0.4524 +vn 0.4867 0.7995 -0.3520 +vn 0.5645 0.7169 -0.4091 +vn 0.5137 0.7994 -0.3116 +vn 0.5918 0.7199 -0.3628 +vn 0.5342 0.8010 -0.2702 +vn 0.6100 0.7291 -0.3102 +vn 0.5532 0.8011 -0.2284 +vn 0.6349 0.7271 -0.2612 +vn 0.5698 0.8008 -0.1845 +vn 0.6563 0.7241 -0.2122 +vn 0.5825 0.8009 -0.1390 +vn 0.6712 0.7237 -0.1603 +vn 0.5913 0.8011 -0.0924 +vn 0.6806 0.7248 -0.1071 +vn 0.5964 0.8013 -0.0459 +vn 0.6857 0.7260 -0.0533 +vn 0.5983 0.8013 0.0007 +vn 0.6866 0.7271 0.0006 +vn 0.5965 0.8012 0.0477 +vn 0.6830 0.7284 0.0544 +vn 0.5906 0.8014 0.0947 +vn 0.6760 0.7290 0.1076 +vn 0.5810 0.8017 0.1404 +vn 0.6643 0.7302 0.1601 +vn 0.5689 0.8014 0.1848 +vn 0.6493 0.7306 0.2113 +vn 0.5547 0.7997 0.2298 +vn 0.6293 0.7320 0.2612 +vn 0.5363 0.7986 0.2733 +vn 0.6068 0.7321 0.3095 +vn 0.5137 0.7980 0.3152 +vn 0.5799 0.7329 0.3558 +vn 0.4872 0.7981 0.3544 +vn 0.5503 0.7329 0.4000 +vn 0.4576 0.7984 0.3914 +vn 0.5167 0.7335 0.4416 +vn 0.4251 0.7990 0.4253 +vn 0.4809 0.7332 0.4808 +vn 0.3901 0.7993 0.4571 +vn 0.4414 0.7334 0.5170 +vn 0.3528 0.7999 0.4855 +vn 0.4002 0.7327 0.5505 +vn 0.3125 0.8005 0.5113 +vn 0.3555 0.7330 0.5800 +vn 0.2708 0.8019 0.5325 +vn 0.3093 0.7328 0.6061 +vn 0.2288 0.8026 0.5509 +vn 0.2603 0.7339 0.6274 +vn 0.1855 0.8023 0.5673 +vn 0.2109 0.7323 0.6475 +vn 0.1407 0.8018 0.5808 +vn 0.1592 0.7316 0.6629 +vn 0.0945 0.8011 0.5910 +vn 0.1075 0.7298 0.6751 +vn 0.0477 0.8009 0.5968 +vn 0.0542 0.7292 0.6822 +vn -0.1344 0.4977 0.8569 +vn -0.0673 0.4885 0.8700 +vn 0.0001 0.4900 0.8717 +vn -0.0776 -0.0405 0.9962 +vn -0.0002 -0.0409 0.9992 +vn -0.1544 -0.0505 0.9867 +vn -0.2684 0.5031 0.8215 +vn -0.2009 0.5039 0.8400 +vn -0.2319 -0.0578 0.9710 +vn -0.3095 -0.0612 0.9489 +vn -0.3969 0.4835 0.7802 +vn -0.3350 0.4864 0.8070 +vn -0.3844 -0.0433 0.9221 +vn -0.4534 -0.0434 0.8903 +vn -0.5109 0.4977 0.7009 +vn -0.4552 0.4850 0.7467 +vn -0.5203 -0.0476 0.8527 +vn -0.5866 -0.0617 0.8075 +vn -0.6229 0.4728 0.6233 +vn -0.5716 0.4764 0.6681 +vn -0.6510 -0.0400 0.7580 +vn -0.7066 -0.0393 0.7065 +vn -0.7118 0.4755 0.5169 +vn -0.6695 0.4730 0.5727 +vn -0.7594 -0.0411 0.6493 +vn -0.8081 -0.0455 0.5872 +vn -0.7877 0.4670 0.4017 +vn -0.7528 0.4699 0.4610 +vn -0.8524 -0.0396 0.5214 +vn -0.8904 -0.0392 0.4536 +vn -0.8434 0.4620 0.2744 +vn -0.8177 0.4651 0.3391 +vn -0.9232 -0.0392 0.3824 +vn -0.9503 -0.0392 0.3087 +vn -0.8783 0.4573 0.1393 +vn -0.8636 0.4595 0.2076 +vn -0.9717 -0.0389 0.2332 +vn -0.9870 -0.0385 0.1563 +vn -0.8909 0.4543 0.0002 +vn -0.8874 0.4557 0.0700 +vn -0.9962 -0.0384 0.0784 +vn -0.9993 -0.0384 0.0000 +vn -0.8815 0.4512 -0.1394 +vn -0.8888 0.4530 -0.0698 +vn -0.9962 -0.0384 -0.0784 +vn -0.9870 -0.0385 -0.1563 +vn -0.8488 0.4515 -0.2753 +vn -0.8681 0.4507 -0.2081 +vn -0.9717 -0.0389 -0.2331 +vn -0.9504 -0.0415 -0.3083 +vn -0.7953 0.4506 -0.4055 +vn -0.8237 0.4529 -0.3411 +vn -0.9231 -0.0438 -0.3821 +vn -0.8900 -0.0433 -0.4539 +vn -0.7238 0.4468 -0.5258 +vn -0.7622 0.4479 -0.4674 +vn -0.8517 -0.0390 -0.5225 +vn -0.8084 -0.0387 -0.5874 +vn -0.6325 0.4481 -0.6317 +vn -0.6799 0.4477 -0.5808 +vn -0.7598 -0.0386 -0.6490 +vn -0.7068 -0.0389 -0.7063 +vn -0.5236 0.4536 -0.7212 +vn -0.5815 0.4512 -0.6770 +vn -0.6502 -0.0457 -0.7584 +vn -0.5872 -0.0723 -0.8062 +vn -0.4056 0.4488 -0.7963 +vn -0.4646 0.4506 -0.7623 +vn -0.5197 -0.0445 -0.8532 +vn -0.4534 -0.0424 -0.8903 +vn -0.2759 0.4499 -0.8494 +vn -0.3417 0.4493 -0.8254 +vn -0.3823 -0.0407 -0.9231 +vn -0.3087 -0.0406 -0.9503 +vn -0.1394 0.4520 -0.8811 +vn -0.2080 0.4516 -0.8677 +vn -0.2331 -0.0399 -0.9716 +vn -0.1562 -0.0392 -0.9869 +vn -0.0034 0.4591 -0.8884 +vn -0.0698 0.4541 -0.8882 +vn -0.0786 -0.0394 -0.9961 +vn -0.0031 -0.0429 -0.9991 +vn 0.1288 0.5049 -0.8535 +vn 0.0621 0.4876 -0.8709 +vn 0.0706 -0.0812 -0.9942 +vn 0.1476 -0.1355 -0.9797 +vn 0.2720 0.4842 -0.8316 +vn 0.2036 0.5037 -0.8396 +vn 0.2305 -0.1644 -0.9591 +vn 0.3108 -0.1239 -0.9424 +vn 0.3871 0.5485 -0.7411 +vn 0.3274 0.4981 -0.8029 +vn 0.3733 -0.1360 -0.9177 +vn 0.4496 -0.1605 -0.8787 +vn 0.5164 0.4761 -0.7118 +vn 0.4597 0.4989 -0.7347 +vn 0.5327 -0.0749 -0.8430 +vn 0.5887 -0.0467 -0.8070 +vn 0.6156 0.4968 -0.6118 +vn 0.5638 0.4951 -0.6611 +vn 0.6460 -0.0679 -0.7603 +vn 0.7070 -0.0659 -0.7041 +vn 0.7114 0.4764 -0.5167 +vn 0.6689 0.4783 -0.5691 +vn 0.7619 -0.0413 -0.6464 +vn 0.8086 -0.0389 -0.5871 +vn 0.7515 0.5374 -0.3826 +vn 0.7435 0.4823 -0.4633 +vn 0.8487 -0.0442 -0.5271 +vn 0.8836 -0.1040 -0.4566 +vn 0.8273 0.4946 -0.2663 +vn 0.7906 0.5203 -0.3228 +vn 0.9234 -0.0768 -0.3761 +vn 0.9513 -0.0489 -0.3043 +vn 0.8638 0.4849 -0.1366 +vn 0.8507 0.4846 -0.2036 +vn 0.9720 -0.0390 -0.2319 +vn 0.9870 -0.0389 -0.1562 +vn 0.8738 0.4863 0.0001 +vn 0.8715 0.4857 -0.0684 +vn 0.9962 -0.0385 -0.0783 +vn 0.9993 -0.0384 0.0000 +vn 0.8617 0.4887 0.1365 +vn 0.8702 0.4879 0.0687 +vn 0.9962 -0.0384 0.0784 +vn 0.9870 -0.0384 0.1563 +vn 0.8286 0.4908 0.2693 +vn 0.8476 0.4900 0.2036 +vn 0.9717 -0.0384 0.2333 +vn 0.9504 -0.0384 0.3088 +vn 0.7756 0.4921 0.3953 +vn 0.8045 0.4915 0.3334 +vn 0.9232 -0.0384 0.3824 +vn 0.8903 -0.0385 0.4537 +vn 0.7039 0.4930 0.5114 +vn 0.7420 0.4926 0.4548 +vn 0.8520 -0.0384 0.5221 +vn 0.8084 -0.0384 0.5874 +vn 0.6153 0.4929 0.6152 +vn 0.6612 0.4935 0.5649 +vn 0.7598 -0.0384 0.6490 +vn 0.7066 -0.0384 0.7066 +vn 0.5114 0.4932 0.7037 +vn 0.5647 0.4936 0.6614 +vn 0.6490 -0.0385 0.7598 +vn 0.5874 -0.0386 0.8084 +vn 0.3957 0.4941 0.7741 +vn 0.4546 0.4934 0.7415 +vn 0.5222 -0.0390 0.8519 +vn 0.4545 -0.0402 0.8898 +vn 0.2672 0.5015 0.8229 +vn 0.3306 0.5042 0.7978 +vn 0.3832 -0.0483 0.9224 +vn 0.3082 -0.0471 0.9501 +vn 0.1362 0.4936 0.8590 +vn 0.2022 0.4975 0.8436 +vn 0.2326 -0.0437 0.9716 +vn 0.1560 -0.0423 0.9869 +vn 0.0683 0.4923 0.8677 +vn 0.0783 -0.0415 0.9961 +vn -0.1194 -0.6396 0.7594 +vn -0.0614 -0.6235 0.7794 +vn -0.0001 -0.6250 0.7807 +vn -0.0291 -0.9286 0.3699 +vn 0.0000 -0.9286 0.3711 +vn -0.0581 -0.9286 0.3665 +vn -0.2334 -0.6547 0.7189 +vn -0.1767 -0.6506 0.7385 +vn -0.0866 -0.9286 0.3608 +vn -0.1147 -0.9286 0.3529 +vn -0.3538 -0.6268 0.6942 +vn -0.2990 -0.6287 0.7179 +vn -0.1420 -0.9286 0.3429 +vn -0.1685 -0.9286 0.3307 +vn -0.4424 -0.6563 0.6112 +vn -0.4048 -0.6317 0.6611 +vn -0.1939 -0.9286 0.3164 +vn -0.2181 -0.9286 0.3002 +vn -0.5538 -0.6220 0.5536 +vn -0.5082 -0.6253 0.5922 +vn -0.2410 -0.9286 0.2822 +vn -0.2624 -0.9286 0.2624 +vn -0.6273 -0.6311 0.4562 +vn -0.5941 -0.6241 0.5076 +vn -0.2822 -0.9286 0.2410 +vn -0.3002 -0.9286 0.2181 +vn -0.6982 -0.6213 0.3556 +vn -0.6672 -0.6230 0.4083 +vn -0.3164 -0.9286 0.1939 +vn -0.3307 -0.9286 0.1685 +vn -0.7449 -0.6217 0.2420 +vn -0.7236 -0.6217 0.2998 +vn -0.3428 -0.9286 0.1420 +vn -0.3530 -0.9286 0.1147 +vn -0.7744 -0.6207 0.1226 +vn -0.7620 -0.6212 0.1829 +vn -0.3609 -0.9286 0.0866 +vn -0.3665 -0.9286 0.0581 +vn -0.7842 -0.6205 -0.0000 +vn -0.7818 -0.6205 0.0615 +vn -0.3700 -0.9286 0.0291 +vn -0.3711 -0.9286 -0.0000 +vn -0.7744 -0.6207 -0.1226 +vn -0.7818 -0.6205 -0.0615 +vn -0.3700 -0.9286 -0.0291 +vn -0.3665 -0.9286 -0.0581 +vn -0.7429 -0.6245 -0.2411 +vn -0.7620 -0.6213 -0.1829 +vn -0.3608 -0.9286 -0.0866 +vn -0.3529 -0.9286 -0.1147 +vn -0.6941 -0.6269 -0.3537 +vn -0.7192 -0.6278 -0.2977 +vn -0.3429 -0.9286 -0.1420 +vn -0.3307 -0.9286 -0.1685 +vn -0.6342 -0.6208 -0.4608 +vn -0.6678 -0.6216 -0.4096 +vn -0.3164 -0.9286 -0.1939 +vn -0.3003 -0.9286 -0.2181 +vn -0.5544 -0.6208 -0.5544 +vn -0.5962 -0.6207 -0.5092 +vn -0.2822 -0.9286 -0.2410 +vn -0.2624 -0.9286 -0.2624 +vn -0.4483 -0.6487 -0.6150 +vn -0.5065 -0.6264 -0.5926 +vn -0.2410 -0.9286 -0.2822 +vn -0.2181 -0.9286 -0.3002 +vn -0.3546 -0.6241 -0.6962 +vn -0.4061 -0.6264 -0.6653 +vn -0.1939 -0.9286 -0.3164 +vn -0.1685 -0.9286 -0.3307 +vn -0.2417 -0.6231 -0.7439 +vn -0.2993 -0.6229 -0.7228 +vn -0.1420 -0.9286 -0.3429 +vn -0.1147 -0.9286 -0.3530 +vn -0.1225 -0.6214 -0.7739 +vn -0.1826 -0.6229 -0.7607 +vn -0.0866 -0.9286 -0.3608 +vn -0.0581 -0.9286 -0.3665 +vn -0.0002 -0.6247 -0.7809 +vn -0.0615 -0.6212 -0.7812 +vn -0.0291 -0.9286 -0.3699 +vn 0.0000 -0.9286 -0.3711 +vn 0.1057 -0.7196 -0.6863 +vn 0.0556 -0.6708 -0.7396 +vn 0.0291 -0.9286 -0.3699 +vn 0.0581 -0.9286 -0.3665 +vn 0.2245 -0.6967 -0.6813 +vn 0.1563 -0.7383 -0.6561 +vn 0.0866 -0.9286 -0.3608 +vn 0.1147 -0.9286 -0.3529 +vn 0.2890 -0.7650 -0.5756 +vn 0.2693 -0.7084 -0.6524 +vn 0.1420 -0.9286 -0.3428 +vn 0.1684 -0.9286 -0.3306 +vn 0.4571 -0.6328 -0.6250 +vn 0.3904 -0.6766 -0.6244 +vn 0.1939 -0.9286 -0.3163 +vn 0.2181 -0.9286 -0.3002 +vn 0.5296 -0.6625 -0.5297 +vn 0.4860 -0.6611 -0.5717 +vn 0.2410 -0.9286 -0.2821 +vn 0.2624 -0.9286 -0.2624 +vn 0.6339 -0.6216 -0.4602 +vn 0.5931 -0.6279 -0.5039 +vn 0.2821 -0.9286 -0.2410 +vn 0.3002 -0.9286 -0.2181 +vn 0.6232 -0.7121 -0.3232 +vn 0.6659 -0.6244 -0.4083 +vn 0.3164 -0.9286 -0.1939 +vn 0.3306 -0.9286 -0.1685 +vn 0.7306 -0.6412 -0.2347 +vn 0.6754 -0.6833 -0.2775 +vn 0.3428 -0.9286 -0.1420 +vn 0.3529 -0.9286 -0.1147 +vn 0.7739 -0.6214 -0.1225 +vn 0.7611 -0.6227 -0.1817 +vn 0.3608 -0.9286 -0.0866 +vn 0.3665 -0.9286 -0.0581 +vn 0.7842 -0.6205 0.0000 +vn 0.7816 -0.6208 -0.0615 +vn 0.3699 -0.9286 -0.0291 +vn 0.3711 -0.9286 0.0000 +vn 0.7746 -0.6205 0.1227 +vn 0.7818 -0.6205 0.0615 +vn 0.3700 -0.9286 0.0291 +vn 0.3665 -0.9286 0.0581 +vn 0.7458 -0.6205 0.2423 +vn 0.7625 -0.6205 0.1831 +vn 0.3608 -0.9286 0.0866 +vn 0.3530 -0.9286 0.1147 +vn 0.6987 -0.6205 0.3560 +vn 0.7245 -0.6205 0.3001 +vn 0.3429 -0.9286 0.1420 +vn 0.3307 -0.9286 0.1685 +vn 0.6344 -0.6205 0.4609 +vn 0.6686 -0.6205 0.4097 +vn 0.3164 -0.9286 0.1939 +vn 0.3002 -0.9286 0.2181 +vn 0.5545 -0.6205 0.5545 +vn 0.5963 -0.6205 0.5093 +vn 0.2821 -0.9286 0.2410 +vn 0.2624 -0.9286 0.2624 +vn 0.4608 -0.6208 0.6342 +vn 0.5093 -0.6206 0.5963 +vn 0.2410 -0.9286 0.2821 +vn 0.2181 -0.9286 0.3002 +vn 0.3552 -0.6229 0.6970 +vn 0.4094 -0.6215 0.6679 +vn 0.1939 -0.9286 0.3164 +vn 0.1685 -0.9286 0.3307 +vn 0.2383 -0.6363 0.7338 +vn 0.2956 -0.6376 0.7114 +vn 0.1420 -0.9286 0.3428 +vn 0.1147 -0.9286 0.3530 +vn 0.1217 -0.6269 0.7695 +vn 0.1808 -0.6311 0.7544 +vn 0.0866 -0.9286 0.3609 +vn 0.0581 -0.9286 0.3665 +vn 0.0611 -0.6261 0.7773 +vn 0.0291 -0.9286 0.3699 +vn -0.0027 -0.9999 0.0169 +vn -0.0013 -0.9999 0.0171 +vn 0.0000 -0.9999 0.0171 +vn 0.0161 -0.9788 -0.2042 +vn -0.0000 -0.9788 -0.2048 +vn 0.0320 -0.9788 -0.2023 +vn -0.0053 -0.9999 0.0163 +vn -0.0040 -0.9999 0.0166 +vn 0.0478 -0.9788 -0.1991 +vn 0.0633 -0.9788 -0.1948 +vn -0.0078 -0.9999 0.0153 +vn -0.0065 -0.9999 0.0158 +vn 0.0784 -0.9788 -0.1892 +vn 0.0930 -0.9788 -0.1825 +vn -0.0101 -0.9999 0.0139 +vn -0.0089 -0.9999 0.0146 +vn 0.1070 -0.9788 -0.1746 +vn 0.1204 -0.9788 -0.1657 +vn -0.0121 -0.9999 0.0121 +vn -0.0111 -0.9999 0.0130 +vn 0.1330 -0.9788 -0.1557 +vn 0.1448 -0.9788 -0.1448 +vn -0.0138 -0.9999 0.0101 +vn -0.0130 -0.9999 0.0111 +vn 0.1557 -0.9788 -0.1330 +vn 0.1657 -0.9788 -0.1204 +vn -0.0153 -0.9999 0.0078 +vn -0.0146 -0.9999 0.0089 +vn 0.1746 -0.9788 -0.1070 +vn 0.1825 -0.9788 -0.0930 +vn -0.0163 -0.9999 0.0053 +vn -0.0158 -0.9999 0.0065 +vn 0.1892 -0.9788 -0.0784 +vn 0.1947 -0.9788 -0.0633 +vn -0.0169 -0.9999 0.0027 +vn -0.0166 -0.9999 0.0040 +vn 0.1991 -0.9788 -0.0478 +vn 0.2022 -0.9788 -0.0320 +vn -0.0171 -0.9999 -0.0000 +vn -0.0170 -0.9999 0.0013 +vn 0.2041 -0.9788 -0.0161 +vn 0.2047 -0.9788 -0.0000 +vn -0.0169 -0.9999 -0.0027 +vn -0.0170 -0.9999 -0.0013 +vn 0.2041 -0.9788 0.0161 +vn 0.2022 -0.9788 0.0320 +vn -0.0163 -0.9999 -0.0053 +vn -0.0166 -0.9999 -0.0040 +vn 0.1991 -0.9788 0.0478 +vn 0.1947 -0.9788 0.0633 +vn -0.0153 -0.9999 -0.0078 +vn -0.0158 -0.9999 -0.0066 +vn 0.1892 -0.9788 0.0784 +vn 0.1824 -0.9788 0.0930 +vn -0.0139 -0.9999 -0.0101 +vn -0.0146 -0.9999 -0.0089 +vn 0.1746 -0.9788 0.1070 +vn 0.1657 -0.9788 0.1204 +vn -0.0121 -0.9999 -0.0121 +vn -0.0130 -0.9999 -0.0111 +vn 0.1557 -0.9788 0.1330 +vn 0.1448 -0.9788 0.1448 +vn -0.0101 -0.9999 -0.0138 +vn -0.0111 -0.9999 -0.0130 +vn 0.1330 -0.9788 0.1557 +vn 0.1204 -0.9788 0.1657 +vn -0.0078 -0.9999 -0.0153 +vn -0.0089 -0.9999 -0.0146 +vn 0.1070 -0.9788 0.1746 +vn 0.0930 -0.9788 0.1825 +vn -0.0053 -0.9999 -0.0163 +vn -0.0066 -0.9999 -0.0158 +vn 0.0784 -0.9788 0.1892 +vn 0.0633 -0.9788 0.1948 +vn -0.0027 -0.9999 -0.0169 +vn -0.0040 -0.9999 -0.0167 +vn 0.0478 -0.9788 0.1991 +vn 0.0320 -0.9788 0.2023 +vn -0.0000 -0.9999 -0.0172 +vn -0.0013 -0.9999 -0.0171 +vn 0.0161 -0.9788 0.2042 +vn -0.0000 -0.9788 0.2048 +vn 0.0027 -0.9999 -0.0170 +vn 0.0013 -0.9999 -0.0171 +vn -0.0161 -0.9788 0.2042 +vn -0.0320 -0.9788 0.2022 +vn 0.0053 -0.9999 -0.0163 +vn 0.0040 -0.9999 -0.0167 +vn -0.0478 -0.9788 0.1991 +vn -0.0633 -0.9788 0.1947 +vn 0.0078 -0.9999 -0.0153 +vn 0.0066 -0.9999 -0.0159 +vn -0.0783 -0.9788 0.1891 +vn -0.0929 -0.9788 0.1824 +vn 0.0101 -0.9999 -0.0139 +vn 0.0090 -0.9999 -0.0146 +vn -0.1070 -0.9788 0.1746 +vn -0.1203 -0.9788 0.1656 +vn 0.0121 -0.9999 -0.0121 +vn 0.0111 -0.9999 -0.0130 +vn -0.1330 -0.9788 0.1557 +vn -0.1448 -0.9788 0.1448 +vn 0.0139 -0.9999 -0.0101 +vn 0.0131 -0.9999 -0.0111 +vn -0.1557 -0.9788 0.1330 +vn -0.1656 -0.9788 0.1203 +vn 0.0153 -0.9999 -0.0078 +vn 0.0146 -0.9999 -0.0090 +vn -0.1746 -0.9788 0.1070 +vn -0.1824 -0.9788 0.0930 +vn 0.0163 -0.9999 -0.0053 +vn 0.0158 -0.9999 -0.0065 +vn -0.1892 -0.9788 0.0784 +vn -0.1947 -0.9788 0.0633 +vn 0.0170 -0.9999 -0.0027 +vn 0.0166 -0.9999 -0.0040 +vn -0.1991 -0.9788 0.0478 +vn -0.2022 -0.9788 0.0320 +vn 0.0171 -0.9999 0.0000 +vn 0.0171 -0.9999 -0.0013 +vn -0.2041 -0.9788 0.0161 +vn -0.2047 -0.9788 0.0000 +vn 0.0169 -0.9999 0.0027 +vn 0.0171 -0.9999 0.0013 +vn -0.2041 -0.9788 -0.0161 +vn -0.2022 -0.9788 -0.0320 +vn 0.0163 -0.9999 0.0053 +vn 0.0166 -0.9999 0.0040 +vn -0.1991 -0.9788 -0.0478 +vn -0.1947 -0.9788 -0.0633 +vn 0.0153 -0.9999 0.0078 +vn 0.0158 -0.9999 0.0065 +vn -0.1892 -0.9788 -0.0784 +vn -0.1824 -0.9788 -0.0930 +vn 0.0139 -0.9999 0.0101 +vn 0.0146 -0.9999 0.0089 +vn -0.1746 -0.9788 -0.1070 +vn -0.1656 -0.9788 -0.1203 +vn 0.0121 -0.9999 0.0121 +vn 0.0131 -0.9999 0.0112 +vn -0.1557 -0.9788 -0.1330 +vn -0.1448 -0.9788 -0.1448 +vn 0.0101 -0.9999 0.0139 +vn 0.0112 -0.9999 0.0130 +vn -0.1330 -0.9788 -0.1557 +vn -0.1204 -0.9788 -0.1657 +vn 0.0078 -0.9999 0.0153 +vn 0.0090 -0.9999 0.0146 +vn -0.1070 -0.9788 -0.1746 +vn -0.0930 -0.9788 -0.1825 +vn 0.0053 -0.9999 0.0163 +vn 0.0066 -0.9999 0.0158 +vn -0.0784 -0.9788 -0.1892 +vn -0.0633 -0.9788 -0.1948 +vn 0.0027 -0.9999 0.0169 +vn 0.0040 -0.9999 0.0167 +vn -0.0478 -0.9788 -0.1991 +vn -0.0320 -0.9788 -0.2023 +vn 0.0013 -0.9999 0.0171 +vn -0.0161 -0.9788 -0.2042 +vn -0.3192 -0.0520 -0.9463 +vn -0.3222 -0.1036 -0.9410 +vn -0.4647 -0.0420 -0.8845 +vn -0.4672 -0.0838 -0.8802 +vn -0.3273 -0.1546 -0.9322 +vn -0.3344 -0.2046 -0.9200 +vn -0.4713 -0.1250 -0.8731 +vn -0.4770 -0.1655 -0.8632 +vn -0.3433 -0.2534 -0.9044 +vn -0.3542 -0.3006 -0.8855 +vn -0.4843 -0.2050 -0.8506 +vn -0.4931 -0.2432 -0.8353 +vn -0.3669 -0.3460 -0.8635 +vn -0.3814 -0.3892 -0.8385 +vn -0.5033 -0.2798 -0.8175 +vn -0.5150 -0.3148 -0.7973 +vn -0.3975 -0.4301 -0.8106 +vn -0.4151 -0.4682 -0.7800 +vn -0.5280 -0.3478 -0.7747 +vn -0.5423 -0.3787 -0.7500 +vn -0.4342 -0.5035 -0.7469 +vn -0.4546 -0.5357 -0.7116 +vn -0.5577 -0.4073 -0.7233 +vn -0.5742 -0.4333 -0.6947 +vn -0.4762 -0.5646 -0.6741 +vn -0.4989 -0.5900 -0.6348 +vn -0.5917 -0.4567 -0.6644 +vn -0.6100 -0.4772 -0.6326 +vn -0.5224 -0.6118 -0.5939 +vn -0.5468 -0.6298 -0.5517 +vn -0.6291 -0.4948 -0.5995 +vn -0.6488 -0.5094 -0.5653 +vn -0.5718 -0.6439 -0.5083 +vn -0.5973 -0.6541 -0.4642 +vn -0.6690 -0.5208 -0.5303 +vn -0.6896 -0.5290 -0.4945 +vn -0.6231 -0.6602 -0.4194 +vn -0.6491 -0.6622 -0.3744 +vn -0.7105 -0.5339 -0.4584 +vn -0.7315 -0.5356 -0.4220 +vn -0.6750 -0.6602 -0.3294 +vn -0.7008 -0.6541 -0.2847 +vn -0.7525 -0.5339 -0.3856 +vn -0.7734 -0.5290 -0.3494 +vn -0.7263 -0.6439 -0.2405 +vn -0.7513 -0.6298 -0.1972 +vn -0.7940 -0.5208 -0.3137 +vn -0.8142 -0.5094 -0.2786 +vn -0.7757 -0.6118 -0.1549 +vn -0.7993 -0.5900 -0.1140 +vn -0.8339 -0.4948 -0.2444 +vn -0.8530 -0.4772 -0.2114 +vn -0.8220 -0.5646 -0.0747 +vn -0.8436 -0.5357 -0.0372 +vn -0.8713 -0.4567 -0.1796 +vn -0.8888 -0.4333 -0.1493 +vn -0.8640 -0.5036 -0.0019 +vn -0.8830 -0.4683 0.0312 +vn -0.9053 -0.4073 -0.1207 +vn -0.9207 -0.3787 -0.0939 +vn -0.9007 -0.4301 0.0618 +vn -0.9168 -0.3892 0.0897 +vn -0.9350 -0.3478 -0.0692 +vn -0.9480 -0.3148 -0.0466 +vn -0.9312 -0.3460 0.1147 +vn -0.9439 -0.3006 0.1367 +vn -0.9597 -0.2798 -0.0264 +vn -0.9700 -0.2431 -0.0086 +vn -0.9548 -0.2534 0.1556 +vn -0.9638 -0.2046 0.1711 +vn -0.9787 -0.2050 0.0066 +vn -0.9860 -0.1655 0.0192 +vn -0.9708 -0.1546 0.1834 +vn -0.9759 -0.1036 0.1922 +vn -0.9917 -0.1250 0.0291 +vn -0.9958 -0.0838 0.0362 +vn -0.9789 -0.0520 0.1975 +vn -0.9983 -0.0420 0.0405 +vn -0.3190 -0.0520 -0.9463 +vn -0.1688 -0.0604 -0.9838 +vn -0.3220 -0.1036 -0.9410 +vn -0.1724 -0.1205 -0.9776 +vn -0.0472 -0.0661 -0.9967 +vn -0.0510 -0.1318 -0.9900 +vn -0.3271 -0.1546 -0.9323 +vn -0.1783 -0.1798 -0.9674 +vn -0.3342 -0.2047 -0.9200 +vn -0.1865 -0.2380 -0.9532 +vn -0.0575 -0.1967 -0.9788 +vn -0.0665 -0.2603 -0.9632 +vn -0.3432 -0.2535 -0.9044 +vn -0.1969 -0.2947 -0.9351 +vn -0.3540 -0.3007 -0.8856 +vn -0.2096 -0.3497 -0.9131 +vn -0.0779 -0.3224 -0.9434 +vn -0.0917 -0.3824 -0.9194 +vn -0.3667 -0.3461 -0.8636 +vn -0.2244 -0.4024 -0.8875 +vn -0.3812 -0.3893 -0.8385 +vn -0.2411 -0.4527 -0.8584 +vn -0.1079 -0.4401 -0.8914 +vn -0.1262 -0.4951 -0.8596 +vn -0.3973 -0.4302 -0.8106 +vn -0.2599 -0.5002 -0.8260 +vn -0.4149 -0.4684 -0.7801 +vn -0.2804 -0.5446 -0.7904 +vn -0.1467 -0.5471 -0.8241 +vn -0.1691 -0.5957 -0.7852 +vn -0.4340 -0.5037 -0.7470 +vn -0.3026 -0.5856 -0.7520 +vn -0.4544 -0.5359 -0.7116 +vn -0.3263 -0.6231 -0.7108 +vn -0.1934 -0.6406 -0.7432 +vn -0.2194 -0.6815 -0.6982 +vn -0.4760 -0.5648 -0.6741 +vn -0.3514 -0.6567 -0.6673 +vn -0.4987 -0.5902 -0.6348 +vn -0.3778 -0.6862 -0.6216 +vn -0.2468 -0.7183 -0.6505 +vn -0.2757 -0.7506 -0.6005 +vn -0.5223 -0.6120 -0.5939 +vn -0.4052 -0.7116 -0.5740 +vn -0.5467 -0.6300 -0.5516 +vn -0.4336 -0.7325 -0.5249 +vn -0.3057 -0.7783 -0.5485 +vn -0.3367 -0.8012 -0.4947 +vn -0.5717 -0.6441 -0.5083 +vn -0.4627 -0.7489 -0.4744 +vn -0.5972 -0.6542 -0.4641 +vn -0.4923 -0.7607 -0.4231 +vn -0.3685 -0.8191 -0.4396 +vn -0.4009 -0.8320 -0.3834 +vn -0.6230 -0.6603 -0.4194 +vn -0.5223 -0.7678 -0.3711 +vn -0.6489 -0.6624 -0.3743 +vn -0.5525 -0.7702 -0.3187 +vn -0.4338 -0.8398 -0.3265 +vn -0.4668 -0.8424 -0.2693 +vn -0.6749 -0.6603 -0.3293 +vn -0.5827 -0.7678 -0.2664 +vn -0.7007 -0.6542 -0.2846 +vn -0.6127 -0.7607 -0.2143 +vn -0.4998 -0.8398 -0.2120 +vn -0.5326 -0.8320 -0.1551 +vn -0.7262 -0.6441 -0.2404 +vn -0.6423 -0.7489 -0.1630 +vn -0.7512 -0.6300 -0.1970 +vn -0.6714 -0.7325 -0.1126 +vn -0.5650 -0.8191 -0.0989 +vn -0.5969 -0.8012 -0.0438 +vn -0.7756 -0.6120 -0.1548 +vn -0.6998 -0.7116 -0.0634 +vn -0.7992 -0.5902 -0.1139 +vn -0.7272 -0.6862 -0.0158 +vn -0.6279 -0.7783 0.0100 +vn -0.6579 -0.7506 0.0620 +vn -0.8219 -0.5648 -0.0746 +vn -0.7536 -0.6567 0.0299 +vn -0.8435 -0.5359 -0.0371 +vn -0.7787 -0.6231 0.0734 +vn -0.6867 -0.7183 0.1120 +vn -0.7142 -0.6815 0.1596 +vn -0.8639 -0.5037 -0.0017 +vn -0.8024 -0.5857 0.1146 +vn -0.8830 -0.4684 0.0314 +vn -0.8246 -0.5446 0.1530 +vn -0.7401 -0.6406 0.2046 +vn -0.7644 -0.5957 0.2467 +vn -0.9006 -0.4302 0.0619 +vn -0.8451 -0.5002 0.1886 +vn -0.9167 -0.3893 0.0898 +vn -0.8638 -0.4527 0.2210 +vn -0.7868 -0.5471 0.2856 +vn -0.8073 -0.4951 0.3211 +vn -0.9311 -0.3461 0.1149 +vn -0.8806 -0.4024 0.2501 +vn -0.9438 -0.3007 0.1369 +vn -0.8954 -0.3497 0.2757 +vn -0.8257 -0.4401 0.3529 +vn -0.8418 -0.3824 0.3809 +vn -0.9547 -0.2535 0.1557 +vn -0.9080 -0.2947 0.2976 +vn -0.9637 -0.2047 0.1713 +vn -0.9185 -0.2380 0.3158 +vn -0.8557 -0.3224 0.4049 +vn -0.8671 -0.2603 0.4247 +vn -0.9708 -0.1546 0.1836 +vn -0.9267 -0.1798 0.3300 +vn -0.9758 -0.1036 0.1923 +vn -0.9326 -0.1205 0.3402 +vn -0.8761 -0.1967 0.4403 +vn -0.8825 -0.1318 0.4514 +vn -0.9789 -0.0520 0.1976 +vn -0.9361 -0.0604 0.3464 +vn -0.8864 -0.0661 0.4582 +vn 0.2939 -0.1527 -0.9436 +vn 0.1819 -0.1478 -0.9721 +vn 0.1863 -0.0741 -0.9797 +vn 0.2984 -0.0766 -0.9514 +vn 0.3881 -0.1553 -0.9085 +vn 0.3926 -0.0779 -0.9164 +vn 0.2760 -0.3017 -0.9126 +vn 0.1646 -0.2919 -0.9422 +vn 0.1747 -0.2205 -0.9596 +vn 0.2864 -0.2279 -0.9306 +vn 0.3699 -0.3069 -0.8769 +vn 0.3805 -0.2318 -0.8953 +vn 0.2467 -0.4432 -0.8618 +vn 0.1363 -0.4288 -0.8930 +vn 0.1518 -0.3615 -0.9199 +vn 0.2628 -0.3736 -0.8896 +vn 0.3401 -0.4508 -0.8253 +vn 0.3564 -0.3800 -0.8536 +vn 0.2067 -0.5738 -0.7925 +vn 0.0976 -0.5552 -0.8260 +vn 0.1182 -0.4936 -0.8616 +vn 0.2280 -0.5101 -0.8294 +vn 0.2994 -0.5837 -0.7548 +vn 0.3210 -0.5189 -0.7923 +vn 0.1570 -0.6903 -0.7063 +vn 0.0495 -0.6679 -0.7426 +vn 0.0746 -0.6135 -0.7862 +vn 0.1830 -0.6340 -0.7514 +vn 0.2488 -0.7022 -0.6671 +vn 0.2753 -0.6449 -0.7129 +vn 0.0988 -0.7898 -0.6054 +vn -0.0068 -0.7642 -0.6449 +vn 0.0223 -0.7183 -0.6954 +vn 0.1289 -0.7423 -0.6575 +vn 0.1896 -0.8034 -0.5645 +vn 0.2202 -0.7551 -0.6175 +vn 0.0336 -0.8698 -0.4923 +vn -0.0700 -0.8417 -0.5355 +vn -0.0377 -0.8054 -0.5915 +vn 0.0670 -0.8323 -0.5502 +vn 0.1232 -0.8848 -0.4494 +vn 0.1572 -0.8467 -0.5083 +vn -0.0371 -0.9284 -0.3697 +vn -0.1384 -0.8984 -0.4168 +vn -0.1037 -0.8727 -0.4771 +vn -0.0012 -0.9019 -0.4320 +vn 0.0513 -0.9444 -0.3247 +vn 0.0878 -0.9174 -0.3880 +vn -0.1116 -0.9642 -0.2407 +vn -0.2104 -0.9330 -0.2920 +vn -0.1741 -0.9185 -0.3550 +vn -0.0740 -0.9492 -0.3058 +vn -0.0244 -0.9808 -0.1934 +vn 0.0138 -0.9656 -0.2597 +vn -0.1879 -0.9762 -0.1084 +vn -0.2843 -0.9446 -0.1640 +vn -0.2473 -0.9417 -0.2282 +vn -0.1496 -0.9732 -0.1747 +vn -0.1020 -0.9930 -0.0589 +vn -0.0631 -0.9900 -0.1264 +vn -0.2642 -0.9642 0.0239 +vn -0.3581 -0.9330 -0.0360 +vn -0.3213 -0.9417 -0.0998 +vn -0.2261 -0.9732 -0.0420 +vn -0.1797 -0.9808 0.0757 +vn -0.1410 -0.9900 0.0086 +vn -0.3386 -0.9284 0.1529 +vn -0.4301 -0.8984 0.0889 +vn -0.3945 -0.9185 0.0270 +vn -0.3018 -0.9492 0.0890 +vn -0.2554 -0.9444 0.2069 +vn -0.2179 -0.9656 0.1419 +vn -0.4093 -0.8698 0.2755 +vn -0.4986 -0.8417 0.2075 +vn -0.4649 -0.8727 0.1491 +vn -0.3745 -0.9019 0.2152 +vn -0.3273 -0.8848 0.3317 +vn -0.2919 -0.9174 0.2703 +vn -0.4746 -0.7898 0.3886 +vn -0.5617 -0.7642 0.3170 +vn -0.5309 -0.8054 0.2635 +vn -0.4427 -0.8323 0.3334 +vn -0.3937 -0.8034 0.4467 +vn -0.3613 -0.8467 0.3906 +vn -0.5328 -0.6903 0.4895 +vn -0.6180 -0.6679 0.4146 +vn -0.5908 -0.7183 0.3674 +vn -0.5047 -0.7423 0.4408 +vn -0.4529 -0.7022 0.5494 +vn -0.4243 -0.7551 0.4998 +vn -0.5825 -0.5738 0.5757 +vn -0.6661 -0.5552 0.4980 +vn -0.6432 -0.6135 0.4582 +vn -0.5588 -0.6340 0.5346 +vn -0.5035 -0.5837 0.6370 +vn -0.4794 -0.6449 0.5952 +vn -0.6225 -0.4432 0.6450 +vn -0.7048 -0.4288 0.5651 +vn -0.6867 -0.4936 0.5337 +vn -0.6038 -0.5101 0.6126 +vn -0.5442 -0.4508 0.7076 +vn -0.5251 -0.5189 0.6746 +vn -0.6518 -0.3017 0.6958 +vn -0.7332 -0.2919 0.6142 +vn -0.7204 -0.3615 0.5920 +vn -0.6385 -0.3736 0.6728 +vn -0.5740 -0.3069 0.7592 +vn -0.5605 -0.3800 0.7358 +vn -0.6697 -0.1527 0.7268 +vn -0.7505 -0.1478 0.6442 +vn -0.7432 -0.2205 0.6316 +vn -0.6622 -0.2279 0.7138 +vn -0.5921 -0.1553 0.7907 +vn -0.5845 -0.2318 0.7776 +vn -0.7548 -0.0741 0.6517 +vn -0.6742 -0.0766 0.7346 +vn -0.5967 -0.0779 0.7987 +vn 0.4505 -0.1562 -0.8790 +vn 0.4551 -0.0784 -0.8870 +vn 0.4710 -0.1564 -0.8682 +vn 0.4756 -0.0784 -0.8762 +vn 0.4322 -0.3086 -0.8473 +vn 0.4428 -0.2332 -0.8658 +vn 0.4527 -0.3089 -0.8365 +vn 0.4633 -0.2334 -0.8549 +vn 0.4022 -0.4534 -0.7954 +vn 0.4186 -0.3822 -0.8238 +vn 0.4227 -0.4538 -0.7845 +vn 0.4391 -0.3826 -0.8129 +vn 0.3613 -0.5871 -0.7244 +vn 0.3831 -0.5219 -0.7622 +vn 0.3817 -0.5876 -0.7135 +vn 0.4035 -0.5223 -0.7512 +vn 0.3104 -0.7063 -0.6363 +vn 0.3370 -0.6487 -0.6824 +vn 0.3308 -0.7069 -0.6252 +vn 0.3574 -0.6492 -0.6714 +vn 0.2509 -0.8080 -0.5330 +vn 0.2816 -0.7595 -0.5864 +vn 0.2712 -0.8087 -0.5219 +vn 0.3020 -0.7601 -0.5753 +vn 0.1841 -0.8899 -0.4173 +vn 0.2183 -0.8516 -0.4766 +vn 0.2044 -0.8907 -0.4060 +vn 0.2386 -0.8524 -0.4654 +vn 0.1117 -0.9499 -0.2919 +vn 0.1485 -0.9228 -0.3556 +vn 0.1320 -0.9507 -0.2805 +vn 0.1688 -0.9236 -0.3443 +vn 0.0356 -0.9865 -0.1598 +vn 0.0740 -0.9712 -0.2265 +vn 0.0557 -0.9874 -0.1484 +vn 0.0942 -0.9720 -0.2151 +vn -0.0425 -0.9988 -0.0245 +vn -0.0033 -0.9957 -0.0924 +vn -0.0224 -0.9997 -0.0129 +vn 0.0168 -0.9966 -0.0809 +vn -0.1206 -0.9865 0.1108 +vn -0.0816 -0.9957 0.0434 +vn -0.1005 -0.9874 0.1225 +vn -0.0616 -0.9966 0.0550 +vn -0.1967 -0.9499 0.2428 +vn -0.1590 -0.9712 0.1775 +vn -0.1768 -0.9507 0.2547 +vn -0.1390 -0.9720 0.1892 +vn -0.2691 -0.8899 0.3683 +vn -0.2335 -0.9228 0.3066 +vn -0.2492 -0.8907 0.3802 +vn -0.2136 -0.9236 0.3185 +vn -0.3358 -0.8080 0.4840 +vn -0.3032 -0.8516 0.4275 +vn -0.3160 -0.8087 0.4961 +vn -0.2834 -0.8524 0.4395 +vn -0.3954 -0.7063 0.5873 +vn -0.3666 -0.7595 0.5374 +vn -0.3756 -0.7069 0.5994 +vn -0.3468 -0.7602 0.5494 +vn -0.4462 -0.5871 0.6754 +vn -0.4220 -0.6487 0.6334 +vn -0.4265 -0.5876 0.6876 +vn -0.4022 -0.6492 0.6455 +vn -0.4872 -0.4534 0.7464 +vn -0.4680 -0.5219 0.7132 +vn -0.4675 -0.4538 0.7586 +vn -0.4483 -0.5223 0.7254 +vn -0.5171 -0.3086 0.7983 +vn -0.5036 -0.3822 0.7748 +vn -0.4975 -0.3089 0.8106 +vn -0.4839 -0.3826 0.7871 +vn -0.5354 -0.1562 0.8300 +vn -0.5278 -0.2332 0.8168 +vn -0.5158 -0.1564 0.8423 +vn -0.5081 -0.2334 0.8291 +vn -0.5400 -0.0784 0.8380 +vn -0.5204 -0.0784 0.8503 +vn 0.0631 -0.1406 -0.9881 +vn 0.0672 -0.0705 -0.9952 +vn 0.0466 -0.2776 -0.9596 +vn 0.0562 -0.2097 -0.9761 +vn 0.0197 -0.4079 -0.9128 +vn 0.0344 -0.3438 -0.9384 +vn -0.0171 -0.5281 -0.8490 +vn 0.0025 -0.4694 -0.8830 +vn -0.0629 -0.6353 -0.7697 +vn -0.0389 -0.5835 -0.8112 +vn -0.1164 -0.7269 -0.6768 +vn -0.0888 -0.6832 -0.7248 +vn -0.1765 -0.8005 -0.5727 +vn -0.1458 -0.7661 -0.6260 +vn -0.2416 -0.8545 -0.4599 +vn -0.2085 -0.8301 -0.5172 +vn -0.3101 -0.8874 -0.3411 +vn -0.2755 -0.8736 -0.4011 +vn -0.3803 -0.8985 -0.2194 +vn -0.3451 -0.8957 -0.2805 +vn -0.4506 -0.8874 -0.0976 +vn -0.4155 -0.8957 -0.1583 +vn -0.5191 -0.8545 0.0211 +vn -0.4851 -0.8736 -0.0377 +vn -0.5841 -0.8005 0.1339 +vn -0.5521 -0.8301 0.0784 +vn -0.6442 -0.7269 0.2381 +vn -0.6149 -0.7661 0.1872 +vn -0.6978 -0.6353 0.3309 +vn -0.6719 -0.6832 0.2860 +vn -0.7435 -0.5281 0.4102 +vn -0.7217 -0.5835 0.3724 +vn -0.7803 -0.4079 0.4740 +vn -0.7631 -0.4694 0.4442 +vn -0.8073 -0.2776 0.5208 +vn -0.7951 -0.3438 0.4996 +vn -0.8237 -0.1405 0.5493 +vn -0.8169 -0.2097 0.5374 +vn -0.8279 -0.0705 0.5565 +vn -0.4426 -0.0874 -0.8925 +vn -0.4400 -0.0438 -0.8969 +vn -0.4528 -0.1727 -0.8747 +vn -0.4469 -0.1304 -0.8850 +vn -0.4696 -0.2537 -0.8457 +vn -0.4604 -0.2138 -0.8616 +vn -0.4925 -0.3284 -0.8060 +vn -0.4803 -0.2920 -0.8271 +vn -0.5209 -0.3951 -0.7567 +vn -0.5060 -0.3629 -0.7824 +vn -0.5542 -0.4521 -0.6989 +vn -0.5370 -0.4249 -0.7287 +vn -0.5916 -0.4979 -0.6341 +vn -0.5725 -0.4764 -0.6673 +vn -0.6321 -0.5314 -0.5640 +vn -0.6115 -0.5162 -0.5996 +vn -0.6747 -0.5519 -0.4901 +vn -0.6532 -0.5433 -0.5274 +vn -0.7184 -0.5588 -0.4144 +vn -0.6965 -0.5571 -0.4524 +vn -0.7620 -0.5519 -0.3387 +vn -0.7403 -0.5571 -0.3764 +vn -0.8046 -0.5314 -0.2648 +vn -0.7835 -0.5433 -0.3014 +vn -0.8451 -0.4979 -0.1947 +vn -0.8252 -0.5162 -0.2292 +vn -0.8825 -0.4521 -0.1299 +vn -0.8642 -0.4764 -0.1615 +vn -0.9158 -0.3951 -0.0721 +vn -0.8997 -0.4249 -0.1000 +vn -0.9442 -0.3284 -0.0228 +vn -0.9307 -0.3629 -0.0463 +vn -0.9671 -0.2537 0.0169 +vn -0.9564 -0.2920 -0.0017 +vn -0.9839 -0.1727 0.0459 +vn -0.9763 -0.2138 0.0328 +vn -0.9941 -0.0874 0.0637 +vn -0.9899 -0.1304 0.0563 +vn -0.9967 -0.0438 0.0681 +vn -0.6665 0.6374 0.3867 +vn -0.6207 0.6375 0.4565 +vn -0.5674 0.6414 0.5164 +vn -0.5083 0.6469 0.5684 +vn -0.4450 0.6486 0.6175 +vn -0.3785 0.6502 0.6588 +vn -0.3087 0.6501 0.6944 +vn -0.2363 0.6457 0.7261 +vn -0.1613 0.6399 0.7514 +vn -0.0828 0.6339 0.7690 +vn 0.0001 0.6302 0.7764 +vn 0.4884 0.6379 0.5954 +vn 0.5308 0.6403 0.5553 +vn 0.5694 0.6415 0.5141 +vn 0.6054 0.6418 0.4707 +vn 0.6362 0.6425 0.4272 +vn 0.6616 0.6441 0.3838 +vn 0.6861 0.6443 0.3380 +vn 0.7083 0.6438 0.2895 +vn 0.7276 0.6433 0.2382 +vn 0.7433 0.6431 0.1842 +vn 0.7555 0.6429 0.1261 +vn 0.0471 -0.9536 -0.2973 +vn 0.0236 -0.9536 -0.3001 +vn -0.0000 -0.9536 -0.3010 +vn 0.0254 -0.9463 -0.3222 +vn -0.0000 -0.9463 -0.3232 +vn 0.0506 -0.9463 -0.3193 +vn 0.0930 -0.9536 -0.2863 +vn 0.0703 -0.9536 -0.2927 +vn 0.0755 -0.9463 -0.3143 +vn 0.0999 -0.9463 -0.3074 +vn 0.1366 -0.9536 -0.2682 +vn 0.1152 -0.9536 -0.2781 +vn 0.1237 -0.9463 -0.2986 +vn 0.1468 -0.9463 -0.2880 +vn 0.1769 -0.9536 -0.2435 +vn 0.1573 -0.9536 -0.2566 +vn 0.1689 -0.9463 -0.2756 +vn 0.1900 -0.9463 -0.2615 +vn 0.2128 -0.9536 -0.2128 +vn 0.1955 -0.9536 -0.2289 +vn 0.2099 -0.9463 -0.2458 +vn 0.2286 -0.9463 -0.2286 +vn 0.2435 -0.9536 -0.1769 +vn 0.2289 -0.9536 -0.1955 +vn 0.2458 -0.9463 -0.2099 +vn 0.2615 -0.9463 -0.1900 +vn 0.2682 -0.9536 -0.1366 +vn 0.2566 -0.9536 -0.1573 +vn 0.2756 -0.9463 -0.1689 +vn 0.2880 -0.9463 -0.1467 +vn 0.2863 -0.9536 -0.0930 +vn 0.2781 -0.9536 -0.1152 +vn 0.2986 -0.9463 -0.1237 +vn 0.3075 -0.9463 -0.0999 +vn 0.2973 -0.9536 -0.0471 +vn 0.2927 -0.9536 -0.0703 +vn 0.3144 -0.9463 -0.0755 +vn 0.3193 -0.9463 -0.0506 +vn 0.3010 -0.9536 -0.0000 +vn 0.3001 -0.9536 -0.0236 +vn 0.3223 -0.9463 -0.0254 +vn 0.3233 -0.9463 -0.0000 +vn 0.2973 -0.9536 0.0471 +vn 0.3001 -0.9536 0.0236 +vn 0.3223 -0.9463 0.0254 +vn 0.3193 -0.9463 0.0506 +vn 0.2863 -0.9536 0.0930 +vn 0.2927 -0.9536 0.0703 +vn 0.3144 -0.9463 0.0755 +vn 0.3075 -0.9463 0.0999 +vn 0.2682 -0.9536 0.1366 +vn 0.2781 -0.9536 0.1152 +vn 0.2987 -0.9463 0.1237 +vn 0.2881 -0.9463 0.1468 +vn 0.2435 -0.9536 0.1769 +vn 0.2566 -0.9536 0.1573 +vn 0.2756 -0.9463 0.1689 +vn 0.2615 -0.9463 0.1900 +vn 0.2128 -0.9536 0.2128 +vn 0.2289 -0.9536 0.1955 +vn 0.2458 -0.9463 0.2099 +vn 0.2286 -0.9463 0.2286 +vn 0.1769 -0.9536 0.2435 +vn 0.1955 -0.9536 0.2289 +vn 0.2099 -0.9463 0.2458 +vn 0.1900 -0.9463 0.2615 +vn 0.1366 -0.9536 0.2682 +vn 0.1573 -0.9536 0.2566 +vn 0.1689 -0.9463 0.2756 +vn 0.1468 -0.9463 0.2880 +vn 0.0930 -0.9536 0.2863 +vn 0.1152 -0.9536 0.2781 +vn 0.1237 -0.9463 0.2986 +vn 0.0999 -0.9463 0.3074 +vn 0.0471 -0.9536 0.2973 +vn 0.0703 -0.9536 0.2927 +vn 0.0755 -0.9463 0.3143 +vn 0.0506 -0.9463 0.3193 +vn -0.0000 -0.9536 0.3010 +vn 0.0236 -0.9536 0.3001 +vn 0.0254 -0.9463 0.3222 +vn 0.0000 -0.9463 0.3232 +vn -0.0471 -0.9536 0.2973 +vn -0.0236 -0.9536 0.3001 +vn -0.0254 -0.9463 0.3223 +vn -0.0506 -0.9463 0.3193 +vn -0.0930 -0.9536 0.2863 +vn -0.0703 -0.9536 0.2927 +vn -0.0755 -0.9463 0.3143 +vn -0.0999 -0.9463 0.3074 +vn -0.1366 -0.9536 0.2682 +vn -0.1152 -0.9536 0.2781 +vn -0.1237 -0.9463 0.2986 +vn -0.1468 -0.9463 0.2880 +vn -0.1769 -0.9536 0.2435 +vn -0.1573 -0.9536 0.2566 +vn -0.1689 -0.9463 0.2756 +vn -0.1900 -0.9463 0.2615 +vn -0.2128 -0.9536 0.2128 +vn -0.1955 -0.9536 0.2289 +vn -0.2099 -0.9463 0.2458 +vn -0.2286 -0.9463 0.2286 +vn -0.2435 -0.9536 0.1769 +vn -0.2289 -0.9536 0.1955 +vn -0.2458 -0.9463 0.2099 +vn -0.2615 -0.9463 0.1900 +vn -0.2682 -0.9536 0.1366 +vn -0.2566 -0.9536 0.1573 +vn -0.2756 -0.9463 0.1689 +vn -0.2880 -0.9463 0.1468 +vn -0.2862 -0.9536 0.0930 +vn -0.2780 -0.9536 0.1152 +vn -0.2986 -0.9463 0.1237 +vn -0.3074 -0.9463 0.0999 +vn -0.2973 -0.9536 0.0471 +vn -0.2926 -0.9536 0.0703 +vn -0.3143 -0.9463 0.0755 +vn -0.3193 -0.9463 0.0506 +vn -0.3010 -0.9536 0.0000 +vn -0.3001 -0.9536 0.0236 +vn -0.3223 -0.9463 0.0254 +vn -0.3232 -0.9463 -0.0000 +vn -0.2973 -0.9536 -0.0471 +vn -0.3000 -0.9536 -0.0236 +vn -0.3223 -0.9463 -0.0254 +vn -0.3193 -0.9463 -0.0506 +vn -0.2862 -0.9536 -0.0930 +vn -0.2926 -0.9536 -0.0703 +vn -0.3143 -0.9463 -0.0755 +vn -0.3074 -0.9463 -0.0999 +vn -0.2682 -0.9536 -0.1366 +vn -0.2780 -0.9536 -0.1152 +vn -0.2986 -0.9463 -0.1237 +vn -0.2880 -0.9463 -0.1467 +vn -0.2435 -0.9536 -0.1769 +vn -0.2566 -0.9536 -0.1573 +vn -0.2756 -0.9463 -0.1689 +vn -0.2615 -0.9463 -0.1900 +vn -0.2128 -0.9536 -0.2128 +vn -0.2289 -0.9536 -0.1955 +vn -0.2458 -0.9463 -0.2099 +vn -0.2286 -0.9463 -0.2286 +vn -0.1769 -0.9536 -0.2435 +vn -0.1955 -0.9536 -0.2289 +vn -0.2099 -0.9463 -0.2458 +vn -0.1900 -0.9463 -0.2615 +vn -0.1366 -0.9536 -0.2682 +vn -0.1573 -0.9536 -0.2566 +vn -0.1689 -0.9463 -0.2756 +vn -0.1468 -0.9463 -0.2880 +vn -0.0930 -0.9536 -0.2863 +vn -0.1152 -0.9536 -0.2781 +vn -0.1237 -0.9463 -0.2986 +vn -0.0999 -0.9463 -0.3074 +vn -0.0471 -0.9536 -0.2973 +vn -0.0703 -0.9536 -0.2927 +vn -0.0755 -0.9463 -0.3143 +vn -0.0506 -0.9463 -0.3193 +vn -0.0236 -0.9536 -0.3001 +vn -0.0254 -0.9463 -0.3222 +vn 0.5653 0.6490 -0.5091 +vn 0.5064 0.6553 -0.5604 +vn 0.4437 0.6584 -0.6079 +vn 0.3774 0.6577 -0.6519 +vn 0.3067 0.6592 -0.6866 +vn 0.2353 0.6560 -0.7171 +vn 0.1575 0.6566 -0.7376 +vn -0.7973 0.5764 -0.1789 +vn -0.7767 0.5886 -0.2243 +vn -0.7560 0.5973 -0.2676 +vn -0.7346 0.6035 -0.3101 +vn -0.7127 0.6059 -0.3534 +vn -0.6899 0.6059 -0.3961 +vn -0.6664 0.6036 -0.4378 +vn -0.6407 0.6004 -0.4786 +vn -0.6134 0.5948 -0.5195 +vn -0.5856 0.5861 -0.5600 +vn -0.5575 0.5745 -0.5992 +vn 0.0695 0.9791 0.1912 +vn 0.0734 0.9853 0.1543 +vn 0.0454 0.9862 0.1593 +vn 0.0486 0.9796 0.1952 +vn 0.0718 0.9698 0.2332 +vn 0.0528 0.9700 0.2374 +vn 0.0269 0.9794 0.2003 +vn 0.0334 0.9698 0.2415 +vn 0.0214 0.9861 0.1647 +vn 0.1039 0.9792 0.1742 +vn 0.0929 0.9764 0.1949 +vn 0.1374 0.9700 0.2007 +vn 0.1233 0.9692 0.2133 +vn 0.0903 0.9690 0.2300 +vn 0.1151 0.9647 0.2368 +vn 0.1150 0.9858 0.1223 +vn 0.0954 0.9860 0.1365 +vn 0.1203 0.9797 0.1602 +vn 0.1379 0.9796 0.1464 +vn 0.1518 0.9702 0.1886 +vn 0.1670 0.9702 0.1754 +vn 0.1673 0.9793 0.1140 +vn 0.1512 0.9850 0.0831 +vn 0.1325 0.9856 0.1048 +vn 0.1525 0.9797 0.1299 +vn 0.1930 0.9702 0.1467 +vn 0.1807 0.9703 0.1605 +vn 0.1851 0.9794 0.0805 +vn 0.1884 0.9767 0.1032 +vn 0.2273 0.9704 0.0818 +vn 0.2230 0.9697 0.0998 +vn 0.2060 0.9695 0.1328 +vn 0.2302 0.9652 0.1238 +vn 0.1631 0.9861 0.0318 +vn 0.1579 0.9859 0.0552 +vn 0.1902 0.9800 0.0590 +vn 0.1961 0.9799 0.0374 +vn 0.2319 0.9707 0.0634 +vn 0.2365 0.9706 0.0437 +vn 0.2009 0.9796 -0.0065 +vn 0.1694 0.9853 -0.0211 +vn 0.1660 0.9861 0.0085 +vn 0.1979 0.9801 0.0151 +vn 0.2406 0.9706 0.0047 +vn 0.2390 0.9707 0.0239 +vn 0.1957 0.9797 -0.0439 +vn 0.2119 0.9769 -0.0275 +vn 0.2303 0.9708 -0.0673 +vn 0.2368 0.9702 -0.0504 +vn 0.2424 0.9701 -0.0138 +vn 0.2564 0.9659 -0.0349 +vn 0.1491 0.9863 -0.0707 +vn 0.1581 0.9862 -0.0482 +vn 0.1871 0.9802 -0.0646 +vn 0.1790 0.9801 -0.0855 +vn 0.2232 0.9710 -0.0856 +vn 0.2157 0.9709 -0.1039 +vn 0.1569 0.9798 -0.1241 +vn 0.1231 0.9854 -0.1173 +vn 0.1376 0.9862 -0.0918 +vn 0.1676 0.9803 -0.1047 +vn 0.1953 0.9709 -0.1383 +vn 0.2056 0.9711 -0.1212 +vn 0.1307 0.9798 -0.1510 +vn 0.1539 0.9770 -0.1476 +vn 0.1452 0.9710 -0.1899 +vn 0.1600 0.9706 -0.1800 +vn 0.1860 0.9705 -0.1534 +vn 0.1848 0.9664 -0.1787 +vn 0.0769 0.9866 -0.1441 +vn 0.0986 0.9863 -0.1324 +vn 0.1113 0.9805 -0.1621 +vn 0.0923 0.9803 -0.1745 +vn 0.1286 0.9712 -0.2004 +vn 0.1112 0.9712 -0.2109 +vn 0.0514 0.9799 -0.1925 +vn 0.0276 0.9860 -0.1645 +vn 0.0545 0.9867 -0.1530 +vn 0.0714 0.9805 -0.1830 +vn 0.0747 0.9710 -0.2269 +vn 0.0932 0.9712 -0.2192 +vn 0.0147 0.9799 -0.1988 +vn 0.0357 0.9770 -0.2100 +vn 0.0039 0.9710 -0.2392 +vn 0.0215 0.9706 -0.2398 +vn 0.0582 0.9706 -0.2337 +vn 0.0425 0.9665 -0.2533 +vn -0.0240 0.9868 -0.1600 +vn 0.0002 0.9870 -0.1608 +vn -0.0073 0.9805 -0.1962 +vn -0.0302 0.9802 -0.1957 +vn -0.0161 0.9711 -0.2380 +vn -0.0360 0.9711 -0.2361 +vn 0.0225 0.9917 -0.1266 +vn 0.0448 0.9914 -0.1233 +vn 0.0648 0.9908 -0.1185 +vn 0.0384 0.9948 -0.0947 +vn 0.0589 0.9941 -0.0912 +vn 0.0204 0.9952 -0.0960 +vn 0.0749 0.9958 0.0535 +vn 0.0730 0.9968 0.0326 +vn 0.0543 0.9977 0.0409 +vn 0.0557 0.9967 0.0599 +vn 0.0830 0.9940 0.0712 +vn 0.0622 0.9948 0.0807 +vn 0.0459 0.9952 0.0860 +vn 0.0401 0.9971 0.0648 +vn 0.0347 0.9984 0.0444 +vn 0.0179 0.9987 0.0474 +vn 0.0235 0.9975 0.0666 +vn 0.0281 0.9954 0.0920 +vn 0.0072 0.9975 0.0697 +vn 0.0121 0.9952 0.0973 +vn 0.0032 0.9988 0.0491 +vn 0.0690 0.9976 -0.0073 +vn 0.0861 0.9962 -0.0103 +vn 0.0836 0.9960 -0.0305 +vn 0.0662 0.9974 -0.0288 +vn 0.0806 0.9957 -0.0462 +vn 0.0614 0.9970 -0.0462 +vn 0.1025 0.9935 -0.0486 +vn 0.1050 0.9939 -0.0344 +vn 0.1077 0.9941 -0.0121 +vn 0.0439 0.9978 -0.0499 +vn 0.0487 0.9984 -0.0291 +vn 0.0498 0.9987 -0.0037 +vn 0.0273 0.9993 -0.0247 +vn 0.0299 0.9996 0.0010 +vn 0.0260 0.9984 -0.0500 +vn 0.0069 0.9988 -0.0486 +vn 0.0108 0.9997 -0.0226 +vn 0.0151 0.9999 0.0033 +vn -0.0042 1.0000 0.0059 +vn -0.0076 0.9998 -0.0202 +vn -0.0099 0.9989 -0.0467 +vn 0.1239 0.9906 -0.0583 +vn 0.1292 0.9908 -0.0404 +vn 0.1356 0.9906 -0.0162 +vn 0.1129 0.9933 0.0231 +vn 0.1110 0.9930 0.0404 +vn 0.1328 0.9901 0.0451 +vn 0.1358 0.9904 0.0266 +vn 0.1251 0.9901 0.0635 +vn 0.1087 0.9924 0.0571 +vn 0.1357 0.9907 0.0088 +vn 0.1116 0.9937 0.0087 +vn 0.0890 0.9960 0.0116 +vn 0.0900 0.9956 0.0276 +vn 0.0718 0.9973 0.0145 +vn 0.0517 0.9985 0.0192 +vn 0.0313 0.9993 0.0225 +vn 0.0172 0.9995 0.0267 +vn -0.0003 0.9995 0.0301 +vn 0.1122 0.9904 0.0803 +vn 0.0952 0.9905 0.0989 +vn 0.0973 0.9933 0.0616 +vn 0.0387 0.9968 -0.0704 +vn 0.0576 0.9960 -0.0684 +vn 0.0219 0.9971 -0.0722 +vn 0.0024 0.9952 -0.0975 +vn 0.0041 0.9973 -0.0729 +vn -0.0127 0.9974 -0.0710 +vn -0.0153 0.9953 -0.0960 +vn 0.0924 0.9947 0.0451 +vn 0.0877 0.9928 -0.0812 +vn 0.0759 0.9935 -0.0847 +vn 0.0760 0.9950 -0.0652 +vn 0.0958 0.9933 -0.0651 +vn 0.1017 0.9903 -0.0945 +vn 0.1161 0.9904 -0.0755 +vn 0.0781 0.9909 0.1099 +vn 0.0580 0.9913 0.1180 +vn 0.0358 0.9915 0.1248 +vn 0.0162 0.9916 0.1282 +vn 0.0008 0.9918 -0.1277 +vn -0.0186 0.9918 -0.1265 +vn 0.0851 0.9905 -0.1076 +vn -0.0026 0.9861 0.1661 +vn -0.0306 0.9851 0.1694 +vn -0.0165 0.9790 0.2031 +vn 0.0050 0.9795 0.2015 +vn 0.0136 0.9699 0.2429 +vn -0.0052 0.9697 0.2443 +vn -0.0546 0.9790 0.1966 +vn -0.0379 0.9763 0.2130 +vn -0.0242 0.9688 0.2466 +vn -0.0603 0.9687 0.2406 +vn -0.0448 0.9642 0.2613 +vn -0.0779 0.9696 0.2318 +vn -0.0804 0.9855 0.1493 +vn -0.0943 0.9792 0.1797 +vn -0.0738 0.9794 0.1878 +vn -0.0570 0.9857 0.1584 +vn -0.0953 0.9698 0.2243 +vn -0.1133 0.9697 0.2163 +vn -0.1014 0.9854 0.1371 +vn -0.1251 0.9845 0.1231 +vn -0.1313 0.9790 0.1560 +vn -0.1128 0.9794 0.1675 +vn -0.1304 0.9699 0.2058 +vn -0.1468 0.9696 0.1956 +vn -0.1583 0.9790 0.1287 +vn -0.1544 0.9763 0.1515 +vn -0.1631 0.9688 0.1865 +vn -0.1888 0.9688 0.1604 +vn -0.1884 0.9643 0.1860 +vn -0.1979 0.9697 0.1430 +vn -0.1521 0.9854 0.0764 +vn -0.1808 0.9793 0.0913 +vn -0.1694 0.9794 0.1103 +vn -0.1402 0.9852 0.0985 +vn -0.2076 0.9700 0.1268 +vn -0.2171 0.9700 0.1096 +vn -0.1604 0.9856 0.0532 +vn -0.1709 0.9849 0.0282 +vn -0.1968 0.9791 0.0505 +vn -0.1887 0.9795 0.0706 +vn -0.2251 0.9701 0.0910 +vn -0.2322 0.9699 0.0736 +vn -0.2023 0.9792 0.0131 +vn -0.2129 0.9765 0.0333 +vn -0.2398 0.9692 0.0564 +vn -0.2453 0.9692 0.0196 +vn -0.2599 0.9648 0.0408 +vn -0.2428 0.9701 0.0011 +vn -0.1668 0.9856 -0.0262 +vn -0.1992 0.9795 -0.0309 +vn -0.2008 0.9796 -0.0086 +vn -0.1692 0.9856 -0.0000 +vn -0.2411 0.9703 -0.0178 +vn -0.2391 0.9702 -0.0380 +vn -0.1601 0.9858 -0.0504 +vn -0.1540 0.9851 -0.0763 +vn -0.1879 0.9794 -0.0740 +vn -0.1930 0.9798 -0.0528 +vn -0.2345 0.9704 -0.0574 +vn -0.2297 0.9703 -0.0760 +vn -0.1708 0.9794 -0.1075 +vn -0.1912 0.9767 -0.0973 +vn -0.2255 0.9697 -0.0938 +vn -0.2081 0.9698 -0.1273 +vn -0.2322 0.9655 -0.1183 +vn -0.1959 0.9705 -0.1405 +vn -0.1186 0.9860 -0.1174 +vn -0.1416 0.9798 -0.1411 +vn -0.1565 0.9798 -0.1242 +vn -0.1364 0.9859 -0.0971 +vn -0.1832 0.9707 -0.1551 +vn -0.1697 0.9708 -0.1698 +vn -0.0975 0.9865 -0.1319 +vn -0.0764 0.9859 -0.1486 +vn -0.1071 0.9797 -0.1694 +vn -0.1240 0.9801 -0.1551 +vn -0.1547 0.9708 -0.1832 +vn -0.1396 0.9707 -0.1956 +vn -0.0733 0.9798 -0.1861 +vn -0.0961 0.9770 -0.1902 +vn -0.1257 0.9703 -0.2069 +vn -0.0922 0.9703 -0.2237 +vn -0.1165 0.9661 -0.2304 +vn -0.0747 0.9709 -0.2276 +vn -0.0522 0.9804 -0.1901 +vn -0.0494 0.9868 -0.1541 +vn -0.0557 0.9711 -0.2321 +vn -0.0611 0.9914 -0.1158 +vn -0.0795 0.9911 -0.1071 +vn -0.0491 0.9950 -0.0871 +vn -0.0695 0.9945 -0.0780 +vn -0.0998 0.9908 -0.0915 +vn -0.0873 0.9939 -0.0677 +vn -0.0424 0.9978 0.0503 +vn -0.0623 0.9968 0.0506 +vn -0.0587 0.9956 0.0728 +vn -0.0403 0.9965 0.0730 +vn -0.0238 0.9971 0.0722 +vn -0.0252 0.9985 0.0491 +vn -0.0234 0.9952 0.0954 +vn -0.0416 0.9946 0.0950 +vn -0.0631 0.9935 0.0943 +vn -0.0111 0.9987 0.0497 +vn -0.0074 0.9975 0.0700 +vn -0.0042 0.9953 0.0965 +vn -0.0692 0.9975 0.0127 +vn -0.0728 0.9973 -0.0062 +vn -0.0918 0.9958 -0.0020 +vn -0.0900 0.9958 0.0152 +vn -0.1132 0.9936 -0.0003 +vn -0.1113 0.9936 0.0211 +vn -0.1156 0.9931 -0.0217 +vn -0.0962 0.9951 -0.0210 +vn -0.0733 0.9969 -0.0298 +vn -0.0589 0.9977 -0.0348 +vn -0.0537 0.9985 -0.0100 +vn -0.0418 0.9984 -0.0388 +vn -0.0361 0.9993 -0.0121 +vn -0.0354 0.9993 0.0103 +vn -0.0499 0.9987 0.0124 +vn -0.0245 0.9996 -0.0163 +vn -0.0253 0.9987 -0.0431 +vn -0.0229 0.9997 0.0082 +vn -0.1388 0.9901 -0.0229 +vn -0.1411 0.9900 0.0020 +vn -0.1386 0.9900 0.0250 +vn -0.1059 0.9929 0.0540 +vn -0.1285 0.9897 0.0634 +vn -0.1199 0.9894 0.0820 +vn -0.0998 0.9925 0.0698 +vn -0.0920 0.9919 0.0878 +vn -0.1060 0.9893 0.1001 +vn -0.1338 0.9901 0.0435 +vn -0.1109 0.9932 0.0357 +vn -0.0865 0.9957 0.0331 +vn -0.0643 0.9974 0.0327 +vn -0.0816 0.9953 0.0513 +vn -0.0454 0.9985 0.0305 +vn -0.0309 0.9991 0.0300 +vn -0.0177 0.9994 0.0309 +vn -0.0886 0.9898 0.1117 +vn -0.0790 0.9928 0.0903 +vn -0.0693 0.9901 0.1217 +vn -0.0786 0.9956 -0.0507 +vn -0.0617 0.9966 -0.0540 +vn -0.0434 0.9972 -0.0616 +vn -0.0289 0.9973 -0.0673 +vn -0.0336 0.9952 -0.0916 +vn -0.0787 0.9945 0.0692 +vn -0.1157 0.9919 -0.0531 +vn -0.1165 0.9925 -0.0365 +vn -0.0963 0.9944 -0.0431 +vn -0.1003 0.9930 -0.0622 +vn -0.1293 0.9897 -0.0616 +vn -0.1344 0.9900 -0.0430 +vn -0.0493 0.9906 0.1275 +vn -0.0258 0.9911 0.1306 +vn -0.0022 0.9914 0.1307 +vn -0.0425 0.9917 -0.1210 +vn -0.1166 0.9903 -0.0752 +vn -0.0241 0.9550 0.2956 +vn -0.0493 0.9541 0.2956 +vn -0.0012 0.9557 0.2943 +vn -0.0741 0.9550 0.2872 +vn -0.0955 0.9557 0.2784 +vn -0.1159 0.9558 0.2701 +vn -0.1354 0.9558 0.2610 +vn -0.1541 0.9558 0.2503 +vn -0.1729 0.9557 0.2381 +vn -0.2121 0.9542 0.2110 +vn -0.1919 0.9550 0.2261 +vn -0.2275 0.9551 0.1896 +vn -0.2394 0.9559 0.1703 +vn -0.2512 0.9560 0.1514 +vn -0.2615 0.9561 0.1325 +vn -0.2704 0.9561 0.1127 +vn -0.2783 0.9561 0.0922 +vn -0.2945 0.9545 0.0467 +vn -0.2866 0.9554 0.0713 +vn -0.2942 0.9555 0.0205 +vn -0.2923 0.9563 -0.0020 +vn -0.2880 0.9565 -0.0456 +vn -0.2908 0.9565 -0.0239 +vn -0.2835 0.9566 -0.0670 +vn -0.2778 0.9566 -0.0881 +vn -0.2643 0.9550 -0.1346 +vn -0.2723 0.9559 -0.1099 +vn -0.2483 0.9561 -0.1555 +vn -0.2338 0.9569 -0.1724 +vn -0.2047 0.9571 -0.2052 +vn -0.2195 0.9570 -0.1896 +vn -0.1886 0.9571 -0.2199 +vn -0.1714 0.9571 -0.2337 +vn -0.1335 0.9553 -0.2636 +vn -0.1543 0.9564 -0.2481 +vn -0.1079 0.9565 -0.2709 +vn -0.0865 0.9573 -0.2759 +vn -0.0435 0.9574 -0.2855 +vn -0.0649 0.9574 -0.2813 +vn -0.0221 0.9574 -0.2878 +vn 0.0002 0.9574 -0.2888 +vn 0.0482 0.9555 -0.2910 +vn 0.0224 0.9566 -0.2904 +vn 0.0731 0.9567 -0.2819 +vn 0.0936 0.9574 -0.2731 +vn 0.1341 0.9574 -0.2556 +vn 0.1144 0.9575 -0.2648 +vn 0.1526 0.9575 -0.2449 +vn 0.1713 0.9574 -0.2326 +vn 0.2115 0.9554 -0.2061 +vn 0.1901 0.9566 -0.2209 +vn 0.2262 0.9565 -0.1842 +vn 0.2380 0.9572 -0.1645 +vn 0.2499 0.9573 -0.1457 +vn 0.2601 0.9572 -0.1271 +vn 0.2688 0.9572 -0.1075 +vn 0.2767 0.9570 -0.0867 +vn 0.2935 0.9551 -0.0415 +vn 0.2852 0.9562 -0.0658 +vn 0.2924 0.9562 -0.0148 +vn 0.2906 0.9568 0.0075 +vn 0.2892 0.9568 0.0294 +vn 0.2866 0.9567 0.0508 +vn 0.2821 0.9567 0.0719 +vn 0.2761 0.9566 0.0936 +vn 0.2708 0.9557 0.1150 +vn 0.2630 0.9546 0.1397 +vn 0.2474 0.9555 0.1604 +vn 0.2324 0.9563 0.1776 +vn 0.2182 0.9563 0.1947 +vn 0.2034 0.9562 0.2105 +vn 0.1874 0.9562 0.2249 +vn 0.1702 0.9560 0.2388 +vn 0.1527 0.9553 0.2533 +vn 0.1321 0.9543 0.2682 +vn 0.1071 0.9552 0.2761 +vn 0.0851 0.9558 0.2813 +vn 0.0631 0.9559 0.2867 +vn 0.0422 0.9558 0.2908 +vn 0.0209 0.9558 0.2931 +vn -0.0422 0.8576 -0.5125 +vn -0.1910 0.9603 -0.2032 +vn -0.0960 0.9744 -0.2032 +vn -0.0642 0.6520 -0.7555 +vn -0.1278 0.6426 -0.7555 +vn -0.1951 0.9808 -0.0000 +vn -0.0980 0.9952 0.0000 +vn 0.0000 0.9791 -0.2032 +vn 0.0000 1.0000 0.0000 +vn -0.2842 0.9370 -0.2032 +vn -0.1901 0.6269 -0.7555 +vn -0.3747 0.9046 -0.2032 +vn -0.2507 0.6053 -0.7555 +vn -0.3827 0.9239 -0.0000 +vn -0.2903 0.9569 -0.0000 +vn -0.4616 0.8635 -0.2032 +vn -0.3089 0.5778 -0.7555 +vn -0.5440 0.8141 -0.2032 +vn -0.3640 0.5447 -0.7555 +vn -0.5556 0.8315 0.0000 +vn -0.4714 0.8819 0.0000 +vn -0.6212 0.7569 -0.2032 +vn -0.4156 0.5064 -0.7555 +vn -0.6924 0.6923 -0.2032 +vn -0.4633 0.4633 -0.7555 +vn -0.7071 0.7071 0.0000 +vn -0.6344 0.7730 0.0000 +vn -0.7569 0.6212 -0.2032 +vn -0.5064 0.4156 -0.7555 +vn -0.8141 0.5440 -0.2032 +vn -0.5447 0.3640 -0.7555 +vn -0.8315 0.5556 0.0000 +vn -0.7730 0.6344 0.0000 +vn -0.8635 0.4616 -0.2032 +vn -0.5778 0.3089 -0.7555 +vn -0.9046 0.3747 -0.2032 +vn -0.6053 0.2507 -0.7555 +vn -0.9239 0.3827 0.0000 +vn -0.8819 0.4714 0.0000 +vn -0.9370 0.2842 -0.2032 +vn -0.6269 0.1901 -0.7555 +vn -0.9603 0.1910 -0.2032 +vn -0.6426 0.1278 -0.7555 +vn -0.9808 0.1951 0.0000 +vn -0.9569 0.2903 0.0000 +vn -0.9744 0.0960 -0.2032 +vn -0.6520 0.0642 -0.7555 +vn -0.9791 -0.0000 -0.2032 +vn -0.6551 -0.0000 -0.7555 +vn -1.0000 0.0000 0.0000 +vn -0.9952 0.0980 0.0000 +vn -0.9744 -0.0960 -0.2032 +vn -0.6520 -0.0642 -0.7555 +vn -0.9603 -0.1910 -0.2032 +vn -0.6425 -0.1278 -0.7555 +vn -0.9808 -0.1951 0.0000 +vn -0.9952 -0.0980 0.0000 +vn -0.9370 -0.2842 -0.2032 +vn -0.6269 -0.1902 -0.7555 +vn -0.9046 -0.3747 -0.2032 +vn -0.6053 -0.2507 -0.7555 +vn -0.9239 -0.3827 0.0000 +vn -0.9569 -0.2903 0.0000 +vn -0.8635 -0.4616 -0.2032 +vn -0.5778 -0.3088 -0.7555 +vn -0.8141 -0.5440 -0.2032 +vn -0.5447 -0.3640 -0.7555 +vn -0.8315 -0.5556 0.0000 +vn -0.8819 -0.4714 0.0000 +vn -0.7569 -0.6212 -0.2032 +vn -0.5064 -0.4156 -0.7555 +vn -0.6923 -0.6924 -0.2032 +vn -0.4633 -0.4633 -0.7555 +vn -0.7071 -0.7071 0.0000 +vn -0.7730 -0.6344 0.0000 +vn -0.6212 -0.7569 -0.2032 +vn -0.4156 -0.5064 -0.7555 +vn -0.5440 -0.8141 -0.2032 +vn -0.3640 -0.5447 -0.7555 +vn -0.5556 -0.8315 0.0000 +vn -0.6344 -0.7730 0.0000 +vn -0.4616 -0.8635 -0.2032 +vn -0.3088 -0.5778 -0.7555 +vn -0.3747 -0.9046 -0.2032 +vn -0.2507 -0.6053 -0.7555 +vn -0.3827 -0.9239 0.0000 +vn -0.4714 -0.8819 0.0000 +vn -0.2842 -0.9370 -0.2032 +vn -0.1902 -0.6269 -0.7555 +vn -0.1910 -0.9603 -0.2032 +vn -0.1278 -0.6426 -0.7555 +vn -0.1951 -0.9808 -0.0000 +vn -0.2903 -0.9569 -0.0000 +vn -0.0960 -0.9744 -0.2032 +vn -0.0642 -0.6520 -0.7555 +vn 0.0000 -0.9791 -0.2032 +vn 0.0000 -0.6551 -0.7555 +vn -0.0000 -1.0000 0.0000 +vn -0.0980 -0.9952 0.0000 +vn 0.0960 -0.9744 -0.2032 +vn 0.0642 -0.6520 -0.7555 +vn 0.1910 -0.9603 -0.2032 +vn 0.1278 -0.6426 -0.7555 +vn 0.1951 -0.9808 -0.0000 +vn 0.0980 -0.9952 0.0000 +vn 0.2842 -0.9370 -0.2032 +vn 0.1902 -0.6269 -0.7555 +vn 0.3747 -0.9046 -0.2032 +vn 0.2507 -0.6053 -0.7555 +vn 0.3827 -0.9239 0.0000 +vn 0.2903 -0.9569 0.0000 +vn 0.4616 -0.8635 -0.2032 +vn 0.3088 -0.5778 -0.7555 +vn 0.5440 -0.8141 -0.2032 +vn 0.3640 -0.5447 -0.7555 +vn 0.5556 -0.8315 0.0000 +vn 0.4714 -0.8819 0.0000 +vn 0.6212 -0.7569 -0.2032 +vn 0.4156 -0.5064 -0.7555 +vn 0.6924 -0.6924 -0.2032 +vn 0.4633 -0.4633 -0.7555 +vn 0.7071 -0.7071 0.0000 +vn 0.6344 -0.7730 0.0000 +vn 0.7569 -0.6212 -0.2032 +vn 0.5064 -0.4156 -0.7555 +vn 0.8141 -0.5440 -0.2032 +vn 0.5447 -0.3640 -0.7555 +vn 0.8315 -0.5556 0.0000 +vn 0.7730 -0.6344 0.0000 +vn 0.8635 -0.4616 -0.2032 +vn 0.5778 -0.3088 -0.7555 +vn 0.9046 -0.3747 -0.2032 +vn 0.6053 -0.2507 -0.7555 +vn 0.9239 -0.3827 0.0000 +vn 0.8819 -0.4714 0.0000 +vn 0.9370 -0.2842 -0.2032 +vn 0.6269 -0.1902 -0.7555 +vn 0.9603 -0.1910 -0.2032 +vn 0.6426 -0.1278 -0.7555 +vn 0.9808 -0.1951 0.0000 +vn 0.9569 -0.2903 0.0000 +vn 0.9744 -0.0960 -0.2032 +vn 0.6520 -0.0642 -0.7555 +vn 0.9791 -0.0000 -0.2032 +vn 0.6552 0.0000 -0.7555 +vn 1.0000 0.0000 0.0000 +vn 0.9952 -0.0980 0.0000 +vn 0.9744 0.0960 -0.2032 +vn 0.6520 0.0642 -0.7555 +vn 0.9603 0.1910 -0.2032 +vn 0.6426 0.1278 -0.7555 +vn 0.9952 0.0980 0.0000 +vn 0.9370 0.2842 -0.2032 +vn 0.6269 0.1902 -0.7555 +vn 0.9046 0.3747 -0.2032 +vn 0.6053 0.2507 -0.7555 +vn 0.8635 0.4616 -0.2032 +vn 0.5778 0.3088 -0.7555 +vn 0.8141 0.5440 -0.2032 +vn 0.5447 0.3639 -0.7555 +vn 0.7569 0.6212 -0.2032 +vn 0.5064 0.4156 -0.7555 +vn 0.6924 0.6924 -0.2032 +vn 0.4633 0.4633 -0.7555 +vn 0.7071 0.7071 0.0000 +vn 0.6212 0.7569 -0.2032 +vn 0.4156 0.5064 -0.7555 +vn 0.5440 0.8141 -0.2032 +vn 0.3640 0.5447 -0.7555 +vn 0.5556 0.8315 0.0000 +vn 0.6344 0.7730 0.0000 +vn 0.4616 0.8635 -0.2032 +vn 0.3088 0.5778 -0.7555 +vn 0.3747 0.9046 -0.2032 +vn 0.2507 0.6053 -0.7555 +vn 0.3827 0.9239 0.0000 +vn 0.4714 0.8819 0.0000 +vn 0.2842 0.9370 -0.2032 +vn 0.1902 0.6269 -0.7555 +vn 0.1910 0.9603 -0.2032 +vn 0.1278 0.6426 -0.7555 +vn 0.1951 0.9808 0.0000 +vn 0.2903 0.9569 0.0000 +vn 0.0960 0.9744 -0.2032 +vn 0.0642 0.6520 -0.7555 +vn -0.0000 0.6552 -0.7555 +vn 0.0980 0.9952 -0.0000 +vn -0.0016 0.0161 0.9999 +vn -0.0032 0.0159 0.9999 +vn 0.0439 -0.2208 0.9743 +vn 0.0221 -0.2240 0.9743 +vn -0.0000 0.0162 0.9999 +vn -0.0000 -0.2251 0.9743 +vn -0.0000 0.3285 0.9445 +vn -0.0322 0.3269 0.9445 +vn -0.0641 0.3222 0.9445 +vn -0.0047 0.0155 0.9999 +vn -0.0062 0.0150 0.9999 +vn 0.0861 -0.2080 0.9743 +vn 0.0654 -0.2154 0.9743 +vn -0.0954 0.3143 0.9445 +vn -0.1257 0.3035 0.9445 +vn -0.0076 0.0143 0.9999 +vn -0.0090 0.0135 0.9999 +vn 0.1251 -0.1872 0.9743 +vn 0.1061 -0.1986 0.9743 +vn -0.1549 0.2897 0.9445 +vn -0.1825 0.2732 0.9445 +vn -0.0103 0.0125 0.9999 +vn -0.0115 0.0115 0.9999 +vn 0.1592 -0.1592 0.9743 +vn 0.1428 -0.1740 0.9743 +vn -0.2084 0.2539 0.9445 +vn -0.2323 0.2323 0.9445 +vn -0.0125 0.0103 0.9999 +vn -0.0135 0.0090 0.9999 +vn 0.1872 -0.1251 0.9743 +vn 0.1740 -0.1428 0.9743 +vn -0.2539 0.2084 0.9445 +vn -0.2732 0.1825 0.9445 +vn -0.0143 0.0076 0.9999 +vn -0.0150 0.0062 0.9999 +vn 0.2080 -0.0861 0.9743 +vn 0.1986 -0.1061 0.9743 +vn -0.2897 0.1548 0.9445 +vn -0.3035 0.1257 0.9445 +vn -0.0155 0.0047 0.9999 +vn -0.0159 0.0032 0.9999 +vn 0.2208 -0.0439 0.9743 +vn 0.2154 -0.0654 0.9743 +vn -0.3143 0.0954 0.9445 +vn -0.3222 0.0641 0.9445 +vn -0.0161 0.0016 0.9999 +vn -0.0162 -0.0000 0.9999 +vn 0.2251 -0.0000 0.9743 +vn 0.2240 -0.0221 0.9743 +vn -0.3269 0.0322 0.9445 +vn -0.3285 -0.0000 0.9445 +vn -0.0161 -0.0016 0.9999 +vn -0.0159 -0.0032 0.9999 +vn 0.2208 0.0439 0.9743 +vn 0.2240 0.0221 0.9743 +vn -0.3269 -0.0322 0.9445 +vn -0.3222 -0.0641 0.9445 +vn -0.0155 -0.0047 0.9999 +vn -0.0150 -0.0062 0.9999 +vn 0.2080 0.0861 0.9743 +vn 0.2154 0.0654 0.9743 +vn -0.3143 -0.0954 0.9445 +vn -0.3035 -0.1257 0.9445 +vn -0.0143 -0.0076 0.9999 +vn -0.0135 -0.0090 0.9999 +vn 0.1872 0.1251 0.9743 +vn 0.1986 0.1061 0.9743 +vn -0.2897 -0.1548 0.9445 +vn -0.2732 -0.1825 0.9445 +vn -0.0125 -0.0103 0.9999 +vn -0.0115 -0.0115 0.9999 +vn 0.1592 0.1592 0.9743 +vn 0.1740 0.1428 0.9743 +vn -0.2539 -0.2084 0.9445 +vn -0.2323 -0.2323 0.9445 +vn -0.0103 -0.0125 0.9999 +vn -0.0090 -0.0135 0.9999 +vn 0.1251 0.1872 0.9743 +vn 0.1428 0.1740 0.9743 +vn -0.2084 -0.2539 0.9445 +vn -0.1825 -0.2732 0.9445 +vn -0.0076 -0.0143 0.9999 +vn -0.0062 -0.0150 0.9999 +vn 0.0861 0.2080 0.9743 +vn 0.1061 0.1986 0.9743 +vn -0.1548 -0.2897 0.9445 +vn -0.1257 -0.3035 0.9445 +vn -0.0047 -0.0155 0.9999 +vn -0.0032 -0.0159 0.9999 +vn 0.0439 0.2208 0.9743 +vn 0.0654 0.2154 0.9743 +vn -0.0954 -0.3143 0.9445 +vn -0.0641 -0.3222 0.9445 +vn -0.0016 -0.0161 0.9999 +vn -0.0000 -0.0162 0.9999 +vn 0.0000 0.2251 0.9743 +vn 0.0221 0.2240 0.9743 +vn -0.0322 -0.3269 0.9445 +vn 0.0000 -0.3285 0.9445 +vn 0.0016 -0.0161 0.9999 +vn 0.0032 -0.0159 0.9999 +vn -0.0439 0.2208 0.9743 +vn -0.0221 0.2240 0.9743 +vn 0.0322 -0.3269 0.9445 +vn 0.0641 -0.3222 0.9445 +vn 0.0047 -0.0155 0.9999 +vn 0.0062 -0.0150 0.9999 +vn -0.0861 0.2080 0.9743 +vn -0.0654 0.2154 0.9743 +vn 0.0954 -0.3143 0.9445 +vn 0.1257 -0.3035 0.9445 +vn 0.0076 -0.0143 0.9999 +vn 0.0090 -0.0135 0.9999 +vn -0.1251 0.1872 0.9743 +vn -0.1061 0.1986 0.9743 +vn 0.1549 -0.2897 0.9445 +vn 0.1825 -0.2732 0.9445 +vn 0.0103 -0.0125 0.9999 +vn 0.0115 -0.0115 0.9999 +vn -0.1592 0.1592 0.9743 +vn -0.1428 0.1740 0.9743 +vn 0.2084 -0.2539 0.9445 +vn 0.2323 -0.2323 0.9445 +vn 0.0125 -0.0103 0.9999 +vn 0.0135 -0.0090 0.9999 +vn -0.1872 0.1251 0.9743 +vn -0.1740 0.1428 0.9743 +vn 0.2539 -0.2084 0.9445 +vn 0.2732 -0.1825 0.9445 +vn 0.0143 -0.0076 0.9999 +vn 0.0150 -0.0062 0.9999 +vn -0.2080 0.0861 0.9743 +vn -0.1986 0.1061 0.9743 +vn 0.2897 -0.1548 0.9445 +vn 0.3035 -0.1257 0.9445 +vn 0.0155 -0.0047 0.9999 +vn 0.0159 -0.0032 0.9999 +vn -0.2208 0.0439 0.9743 +vn -0.2154 0.0654 0.9743 +vn 0.3143 -0.0954 0.9445 +vn 0.3222 -0.0641 0.9445 +vn 0.0161 -0.0016 0.9999 +vn 0.0162 0.0000 0.9999 +vn -0.2251 0.0000 0.9743 +vn -0.2240 0.0221 0.9743 +vn 0.3269 -0.0322 0.9445 +vn 0.3285 0.0000 0.9445 +vn 0.0161 0.0016 0.9999 +vn 0.0159 0.0032 0.9999 +vn -0.2208 -0.0439 0.9743 +vn -0.2240 -0.0221 0.9743 +vn 0.3269 0.0322 0.9445 +vn 0.3222 0.0641 0.9445 +vn 0.0155 0.0047 0.9999 +vn 0.0150 0.0062 0.9999 +vn -0.2080 -0.0861 0.9743 +vn -0.2154 -0.0654 0.9743 +vn 0.3143 0.0954 0.9445 +vn 0.3035 0.1257 0.9445 +vn 0.0143 0.0076 0.9999 +vn 0.0135 0.0090 0.9999 +vn -0.1872 -0.1251 0.9743 +vn -0.1986 -0.1061 0.9743 +vn 0.2897 0.1548 0.9445 +vn 0.2732 0.1825 0.9445 +vn 0.0125 0.0103 0.9999 +vn 0.0115 0.0115 0.9999 +vn -0.1592 -0.1592 0.9743 +vn -0.1740 -0.1428 0.9743 +vn 0.2539 0.2084 0.9445 +vn 0.2323 0.2323 0.9445 +vn 0.0103 0.0125 0.9999 +vn 0.0090 0.0135 0.9999 +vn -0.1251 -0.1872 0.9743 +vn -0.1428 -0.1740 0.9743 +vn 0.2084 0.2539 0.9445 +vn 0.1825 0.2732 0.9445 +vn 0.0076 0.0143 0.9999 +vn 0.0062 0.0150 0.9999 +vn -0.0861 -0.2080 0.9743 +vn -0.1061 -0.1986 0.9743 +vn 0.1548 0.2897 0.9445 +vn 0.1257 0.3035 0.9445 +vn 0.0047 0.0155 0.9999 +vn 0.0032 0.0159 0.9999 +vn -0.0439 -0.2208 0.9743 +vn -0.0654 -0.2154 0.9743 +vn 0.0954 0.3143 0.9445 +vn 0.0641 0.3222 0.9445 +vn 0.0016 0.0161 0.9999 +vn -0.0221 -0.2240 0.9743 +vn 0.0322 0.3269 0.9445 +vn 0.0530 -0.5382 0.8411 +vn 0.1055 -0.5304 0.8411 +vn 0.0694 -0.7048 0.7060 +vn 0.1382 -0.6946 0.7060 +vn 0.0001 -0.7082 0.7060 +vn -0.0000 -0.5408 0.8411 +vn -0.0746 0.7572 0.6489 +vn 0.0000 0.7609 0.6489 +vn -0.0936 0.9506 0.2960 +vn -0.0000 0.9552 0.2960 +vn -0.1863 0.9368 0.2960 +vn -0.1484 0.7463 0.6489 +vn 0.1570 -0.5176 0.8411 +vn 0.2070 -0.4996 0.8411 +vn 0.2057 -0.6777 0.7060 +vn 0.2710 -0.6543 0.7060 +vn -0.2209 0.7281 0.6489 +vn -0.2773 0.9140 0.2960 +vn -0.3655 0.8825 0.2960 +vn -0.2912 0.7030 0.6489 +vn 0.2549 -0.4770 0.8411 +vn 0.3005 -0.4497 0.8411 +vn 0.3338 -0.6246 0.7060 +vn 0.3934 -0.5888 0.7061 +vn -0.3587 0.6710 0.6489 +vn -0.4503 0.8424 0.2960 +vn -0.5307 0.7942 0.2960 +vn -0.4227 0.6327 0.6489 +vn 0.3431 -0.4181 0.8411 +vn 0.3824 -0.3824 0.8411 +vn 0.4493 -0.5474 0.7060 +vn 0.5008 -0.5008 0.7060 +vn -0.4827 0.5882 0.6489 +vn -0.6059 0.7384 0.2960 +vn -0.6754 0.6754 0.2960 +vn -0.5380 0.5380 0.6489 +vn 0.4181 -0.3431 0.8411 +vn 0.4497 -0.3005 0.8411 +vn 0.5475 -0.4493 0.7060 +vn 0.5888 -0.3934 0.7061 +vn -0.5882 0.4827 0.6489 +vn -0.7384 0.6060 0.2960 +vn -0.7942 0.5307 0.2960 +vn -0.6327 0.4227 0.6489 +vn 0.4770 -0.2550 0.8411 +vn 0.4996 -0.2070 0.8411 +vn 0.6246 -0.3338 0.7060 +vn 0.6543 -0.2710 0.7060 +vn -0.6710 0.3587 0.6489 +vn -0.8424 0.4503 0.2960 +vn -0.8825 0.3655 0.2960 +vn -0.7030 0.2912 0.6489 +vn 0.5176 -0.1570 0.8411 +vn 0.5304 -0.1055 0.8411 +vn 0.6777 -0.2056 0.7060 +vn 0.6946 -0.1382 0.7060 +vn -0.7281 0.2209 0.6489 +vn -0.9141 0.2773 0.2960 +vn -0.9368 0.1863 0.2960 +vn -0.7463 0.1484 0.6489 +vn 0.5382 -0.0530 0.8411 +vn 0.5408 0.0000 0.8411 +vn 0.7048 -0.0694 0.7060 +vn 0.7082 -0.0000 0.7060 +vn -0.7572 0.0746 0.6489 +vn -0.9506 0.0936 0.2960 +vn -0.9552 -0.0000 0.2960 +vn -0.7609 -0.0000 0.6489 +vn 0.5382 0.0530 0.8411 +vn 0.5304 0.1055 0.8411 +vn 0.7048 0.0694 0.7060 +vn 0.6946 0.1382 0.7060 +vn -0.7572 -0.0746 0.6489 +vn -0.9506 -0.0936 0.2960 +vn -0.9368 -0.1863 0.2960 +vn -0.7463 -0.1484 0.6489 +vn 0.5176 0.1570 0.8411 +vn 0.4996 0.2070 0.8411 +vn 0.6777 0.2056 0.7060 +vn 0.6543 0.2710 0.7060 +vn -0.7281 -0.2209 0.6489 +vn -0.9140 -0.2773 0.2960 +vn -0.8825 -0.3655 0.2960 +vn -0.7030 -0.2912 0.6489 +vn 0.4770 0.2549 0.8411 +vn 0.4497 0.3005 0.8411 +vn 0.6246 0.3338 0.7060 +vn 0.5888 0.3934 0.7060 +vn -0.6710 -0.3587 0.6489 +vn -0.8424 -0.4503 0.2960 +vn -0.7942 -0.5307 0.2960 +vn -0.6327 -0.4227 0.6489 +vn 0.4181 0.3431 0.8411 +vn 0.3824 0.3824 0.8411 +vn 0.5474 0.4493 0.7060 +vn 0.5008 0.5008 0.7060 +vn -0.5882 -0.4827 0.6489 +vn -0.7384 -0.6060 0.2960 +vn -0.6754 -0.6754 0.2960 +vn -0.5380 -0.5380 0.6489 +vn 0.3431 0.4181 0.8411 +vn 0.3005 0.4497 0.8411 +vn 0.4493 0.5474 0.7060 +vn 0.3934 0.5888 0.7060 +vn -0.4827 -0.5882 0.6489 +vn -0.6060 -0.7384 0.2960 +vn -0.5307 -0.7942 0.2960 +vn -0.4227 -0.6327 0.6489 +vn 0.2550 0.4770 0.8411 +vn 0.2070 0.4996 0.8411 +vn 0.3338 0.6246 0.7060 +vn 0.2710 0.6543 0.7060 +vn -0.3587 -0.6710 0.6489 +vn -0.4503 -0.8424 0.2960 +vn -0.3655 -0.8825 0.2960 +vn -0.2912 -0.7030 0.6489 +vn 0.1570 0.5175 0.8412 +vn 0.1055 0.5304 0.8411 +vn 0.2056 0.6777 0.7060 +vn 0.1382 0.6946 0.7060 +vn -0.2209 -0.7281 0.6489 +vn -0.2773 -0.9140 0.2960 +vn -0.1863 -0.9368 0.2960 +vn -0.1484 -0.7463 0.6489 +vn 0.0530 0.5382 0.8411 +vn -0.0000 0.5408 0.8411 +vn 0.0693 0.7048 0.7060 +vn 0.0000 0.7082 0.7060 +vn -0.0746 -0.7572 0.6489 +vn -0.0936 -0.9506 0.2960 +vn 0.0000 -0.9552 0.2960 +vn 0.0000 -0.7609 0.6489 +vn -0.0530 0.5382 0.8411 +vn -0.1055 0.5304 0.8411 +vn -0.0694 0.7048 0.7060 +vn -0.1382 0.6946 0.7060 +vn 0.0746 -0.7572 0.6489 +vn 0.0936 -0.9506 0.2960 +vn 0.1864 -0.9368 0.2960 +vn 0.1484 -0.7463 0.6489 +vn -0.1570 0.5176 0.8411 +vn -0.2070 0.4996 0.8411 +vn -0.2057 0.6777 0.7060 +vn -0.2710 0.6543 0.7060 +vn 0.2209 -0.7281 0.6489 +vn 0.2773 -0.9140 0.2960 +vn 0.3655 -0.8825 0.2960 +vn 0.2912 -0.7030 0.6489 +vn -0.2549 0.4770 0.8411 +vn -0.3005 0.4497 0.8411 +vn -0.3338 0.6246 0.7060 +vn -0.3934 0.5888 0.7060 +vn 0.3587 -0.6710 0.6489 +vn 0.4503 -0.8424 0.2960 +vn 0.5307 -0.7942 0.2960 +vn 0.4227 -0.6327 0.6489 +vn -0.3431 0.4181 0.8411 +vn -0.3824 0.3824 0.8411 +vn -0.4493 0.5474 0.7060 +vn -0.5008 0.5008 0.7060 +vn 0.4827 -0.5882 0.6489 +vn 0.6060 -0.7384 0.2960 +vn 0.6754 -0.6755 0.2960 +vn 0.5380 -0.5380 0.6489 +vn -0.4181 0.3431 0.8411 +vn -0.4497 0.3005 0.8411 +vn -0.5474 0.4493 0.7060 +vn -0.5888 0.3934 0.7061 +vn 0.5882 -0.4827 0.6489 +vn 0.7384 -0.6060 0.2960 +vn 0.7942 -0.5307 0.2960 +vn 0.6327 -0.4227 0.6489 +vn -0.4770 0.2549 0.8411 +vn -0.4996 0.2070 0.8411 +vn -0.6246 0.3338 0.7060 +vn -0.6543 0.2710 0.7060 +vn 0.6710 -0.3587 0.6489 +vn 0.8424 -0.4503 0.2960 +vn 0.8825 -0.3655 0.2960 +vn 0.7030 -0.2912 0.6489 +vn -0.5176 0.1569 0.8411 +vn -0.5304 0.1055 0.8411 +vn -0.6777 0.2056 0.7060 +vn -0.6946 0.1382 0.7060 +vn 0.7281 -0.2209 0.6489 +vn 0.9141 -0.2773 0.2960 +vn 0.9368 -0.1863 0.2960 +vn 0.7463 -0.1484 0.6489 +vn -0.5382 0.0530 0.8411 +vn -0.5408 -0.0000 0.8411 +vn -0.7048 0.0693 0.7060 +vn -0.7082 0.0000 0.7060 +vn 0.7572 -0.0746 0.6489 +vn 0.9506 -0.0936 0.2960 +vn 0.9552 -0.0001 0.2960 +vn 0.7609 0.0000 0.6489 +vn -0.5382 -0.0530 0.8411 +vn -0.5304 -0.1055 0.8411 +vn -0.7048 -0.0694 0.7060 +vn -0.6946 -0.1382 0.7060 +vn 0.7572 0.0746 0.6489 +vn 0.9506 0.0936 0.2960 +vn 0.9368 0.1864 0.2960 +vn 0.7463 0.1484 0.6489 +vn -0.5176 -0.1570 0.8411 +vn -0.4996 -0.2070 0.8411 +vn -0.6777 -0.2056 0.7060 +vn -0.6543 -0.2710 0.7060 +vn 0.7281 0.2209 0.6489 +vn 0.9141 0.2773 0.2960 +vn 0.8825 0.3655 0.2960 +vn 0.7030 0.2912 0.6489 +vn -0.4770 -0.2549 0.8411 +vn -0.4497 -0.3005 0.8411 +vn -0.6246 -0.3338 0.7060 +vn -0.5888 -0.3934 0.7060 +vn 0.6710 0.3587 0.6489 +vn 0.8424 0.4503 0.2960 +vn 0.7942 0.5307 0.2960 +vn 0.6327 0.4227 0.6489 +vn -0.4181 -0.3431 0.8411 +vn -0.3824 -0.3824 0.8411 +vn -0.5474 -0.4493 0.7060 +vn -0.5008 -0.5008 0.7060 +vn 0.5882 0.4827 0.6489 +vn 0.7384 0.6060 0.2960 +vn 0.6754 0.6754 0.2960 +vn 0.5380 0.5380 0.6489 +vn -0.3431 -0.4181 0.8411 +vn -0.3005 -0.4497 0.8411 +vn -0.4493 -0.5474 0.7060 +vn -0.3934 -0.5888 0.7061 +vn 0.4827 0.5882 0.6489 +vn 0.6060 0.7384 0.2960 +vn 0.5307 0.7942 0.2960 +vn 0.4227 0.6327 0.6489 +vn -0.2549 -0.4770 0.8411 +vn -0.2070 -0.4996 0.8411 +vn -0.3338 -0.6246 0.7060 +vn -0.2710 -0.6543 0.7060 +vn 0.3587 0.6710 0.6489 +vn 0.4503 0.8424 0.2960 +vn 0.3655 0.8825 0.2960 +vn 0.2912 0.7030 0.6489 +vn -0.1570 -0.5176 0.8411 +vn -0.1055 -0.5304 0.8411 +vn -0.2056 -0.6777 0.7060 +vn -0.1382 -0.6946 0.7060 +vn 0.2209 0.7281 0.6489 +vn 0.2773 0.9140 0.2960 +vn 0.1863 0.9368 0.2960 +vn 0.1484 0.7463 0.6489 +vn -0.0530 -0.5382 0.8411 +vn -0.0693 -0.7048 0.7060 +vn 0.0746 0.7572 0.6489 +vn 0.0936 0.9506 0.2960 +vn -0.0974 0.9888 0.1129 +vn -0.0000 0.9936 0.1129 +vn -0.0980 0.9950 0.0178 +vn -0.0000 0.9998 0.0178 +vn -0.1951 0.9806 0.0178 +vn -0.1938 0.9745 0.1129 +vn -0.2884 0.9508 0.1129 +vn -0.2902 0.9568 0.0178 +vn -0.3826 0.9237 0.0178 +vn -0.3802 0.9180 0.1129 +vn -0.4684 0.8763 0.1129 +vn -0.4713 0.8818 0.0178 +vn -0.5555 0.8313 0.0178 +vn -0.5520 0.8262 0.1129 +vn -0.6303 0.7681 0.1129 +vn -0.6343 0.7729 0.0178 +vn -0.7070 0.7070 0.0178 +vn -0.7026 0.7026 0.1129 +vn -0.7681 0.6303 0.1129 +vn -0.7729 0.6343 0.0178 +vn -0.8313 0.5555 0.0178 +vn -0.8262 0.5520 0.1129 +vn -0.8763 0.4684 0.1129 +vn -0.8818 0.4713 0.0178 +vn -0.9237 0.3826 0.0178 +vn -0.9180 0.3802 0.1129 +vn -0.9508 0.2884 0.1129 +vn -0.9568 0.2902 0.0178 +vn -0.9806 0.1951 0.0178 +vn -0.9745 0.1938 0.1129 +vn -0.9888 0.0974 0.1129 +vn -0.9950 0.0980 0.0178 +vn -0.9998 -0.0000 0.0178 +vn -0.9936 -0.0000 0.1129 +vn -0.9888 -0.0974 0.1129 +vn -0.9950 -0.0980 0.0178 +vn -0.9806 -0.1951 0.0178 +vn -0.9745 -0.1938 0.1129 +vn -0.9508 -0.2884 0.1129 +vn -0.9568 -0.2902 0.0178 +vn -0.9237 -0.3826 0.0178 +vn -0.9180 -0.3802 0.1129 +vn -0.8763 -0.4684 0.1129 +vn -0.8818 -0.4713 0.0178 +vn -0.8313 -0.5555 0.0178 +vn -0.8262 -0.5520 0.1129 +vn -0.7681 -0.6303 0.1129 +vn -0.7729 -0.6343 0.0178 +vn -0.7070 -0.7070 0.0178 +vn -0.7026 -0.7026 0.1129 +vn -0.6303 -0.7681 0.1129 +vn -0.6343 -0.7729 0.0178 +vn -0.5555 -0.8313 0.0178 +vn -0.5520 -0.8262 0.1129 +vn -0.4684 -0.8763 0.1129 +vn -0.4713 -0.8818 0.0178 +vn -0.3826 -0.9237 0.0178 +vn -0.3802 -0.9180 0.1129 +vn -0.2884 -0.9508 0.1129 +vn -0.2902 -0.9568 0.0178 +vn -0.1951 -0.9806 0.0178 +vn -0.1938 -0.9745 0.1129 +vn -0.0974 -0.9888 0.1129 +vn -0.0980 -0.9950 0.0178 +vn 0.0000 -0.9998 0.0178 +vn 0.0000 -0.9936 0.1129 +vn 0.0974 -0.9888 0.1129 +vn 0.0980 -0.9950 0.0178 +vn 0.1951 -0.9806 0.0178 +vn 0.1938 -0.9745 0.1129 +vn 0.2884 -0.9508 0.1129 +vn 0.2902 -0.9568 0.0178 +vn 0.3826 -0.9237 0.0178 +vn 0.3802 -0.9180 0.1129 +vn 0.4684 -0.8763 0.1129 +vn 0.4713 -0.8818 0.0178 +vn 0.5555 -0.8313 0.0178 +vn 0.5520 -0.8262 0.1129 +vn 0.6303 -0.7681 0.1129 +vn 0.6343 -0.7729 0.0178 +vn 0.7070 -0.7070 0.0178 +vn 0.7026 -0.7026 0.1129 +vn 0.7681 -0.6303 0.1129 +vn 0.7729 -0.6343 0.0178 +vn 0.8313 -0.5555 0.0178 +vn 0.8262 -0.5520 0.1129 +vn 0.8763 -0.4684 0.1129 +vn 0.8818 -0.4713 0.0178 +vn 0.9237 -0.3826 0.0178 +vn 0.9180 -0.3802 0.1129 +vn 0.9508 -0.2884 0.1129 +vn 0.9568 -0.2902 0.0178 +vn 0.9806 -0.1951 0.0178 +vn 0.9745 -0.1938 0.1129 +vn 0.9888 -0.0974 0.1129 +vn 0.9950 -0.0980 0.0178 +vn 0.9998 0.0000 0.0178 +vn 0.9936 0.0000 0.1129 +vn 0.9888 0.0974 0.1129 +vn 0.9950 0.0980 0.0178 +vn 0.9806 0.1951 0.0178 +vn 0.9745 0.1938 0.1129 +vn 0.9508 0.2884 0.1129 +vn 0.9568 0.2902 0.0178 +vn 0.9237 0.3826 0.0178 +vn 0.9180 0.3802 0.1129 +vn 0.8763 0.4684 0.1129 +vn 0.8818 0.4713 0.0178 +vn 0.8313 0.5555 0.0178 +vn 0.8262 0.5520 0.1129 +vn 0.7681 0.6303 0.1129 +vn 0.7729 0.6343 0.0178 +vn 0.7070 0.7070 0.0178 +vn 0.7026 0.7026 0.1129 +vn 0.6303 0.7681 0.1129 +vn 0.6343 0.7729 0.0178 +vn 0.5555 0.8313 0.0178 +vn 0.5520 0.8262 0.1129 +vn 0.4684 0.8763 0.1129 +vn 0.4713 0.8818 0.0178 +vn 0.3826 0.9237 0.0178 +vn 0.3802 0.9180 0.1129 +vn 0.2884 0.9508 0.1129 +vn 0.2902 0.9568 0.0178 +vn 0.1951 0.9806 0.0178 +vn 0.1938 0.9745 0.1129 +vn 0.0974 0.9888 0.1129 +vn 0.0980 0.9950 0.0178 +vn -0.0980 0.9952 0.0024 +vn -0.1951 0.9808 0.0025 +vn -0.0000 1.0000 0.0023 +vn -0.2903 0.9569 0.0024 +vn -0.3827 0.9239 0.0024 +vn -0.4714 0.8819 0.0023 +vn -0.5556 0.8315 0.0023 +vn -0.6344 0.7730 0.0024 +vn -0.7071 0.7071 0.0023 +vn -0.7730 0.6344 0.0023 +vn -0.8315 0.5556 0.0023 +vn -0.8819 0.4714 0.0023 +vn -0.9239 0.3827 0.0025 +vn -0.9569 0.2903 0.0023 +vn -0.9808 0.1951 0.0025 +vn -0.9952 0.0980 0.0024 +vn -1.0000 -0.0000 0.0023 +vn -0.9952 -0.0980 0.0023 +vn -0.9808 -0.1951 0.0025 +vn -0.9569 -0.2903 0.0024 +vn -0.9239 -0.3827 0.0024 +vn -0.8819 -0.4714 0.0023 +vn -0.8315 -0.5556 0.0023 +vn -0.7730 -0.6344 0.0024 +vn -0.7071 -0.7071 0.0023 +vn -0.6344 -0.7730 0.0024 +vn -0.5556 -0.8315 0.0023 +vn -0.4714 -0.8819 0.0023 +vn -0.3827 -0.9239 0.0024 +vn -0.2903 -0.9569 0.0024 +vn -0.1951 -0.9808 0.0025 +vn -0.0980 -0.9952 0.0023 +vn -0.0000 -1.0000 0.0024 +vn 0.0980 -0.9952 0.0024 +vn 0.1951 -0.9808 0.0023 +vn 0.2903 -0.9569 0.0023 +vn 0.3827 -0.9239 0.0024 +vn 0.4714 -0.8819 0.0023 +vn 0.5556 -0.8315 0.0023 +vn 0.6344 -0.7730 0.0023 +vn 0.7071 -0.7071 0.0023 +vn 0.7730 -0.6344 0.0023 +vn 0.8315 -0.5556 0.0023 +vn 0.8819 -0.4714 0.0023 +vn 0.9239 -0.3827 0.0024 +vn 0.9569 -0.2903 0.0023 +vn 0.9808 -0.1951 0.0024 +vn 0.9952 -0.0980 0.0024 +vn 1.0000 0.0000 0.0024 +vn 0.9952 0.0980 0.0024 +vn 0.9808 0.1951 0.0025 +vn 0.9569 0.2903 0.0023 +vn 0.9239 0.3827 0.0024 +vn 0.8819 0.4714 0.0022 +vn 0.8315 0.5556 0.0023 +vn 0.7730 0.6344 0.0024 +vn 0.7071 0.7071 0.0023 +vn 0.6344 0.7730 0.0023 +vn 0.5556 0.8315 0.0024 +vn 0.4714 0.8819 0.0022 +vn 0.3827 0.9239 0.0024 +vn 0.2903 0.9569 0.0024 +vn 0.1951 0.9808 0.0024 +vn 0.0980 0.9952 0.0023 +vn -0.0125 0.1274 -0.9918 +vn -0.0250 0.1256 -0.9918 +vn -0.0000 0.1281 -0.9918 +vn 0.0125 0.1274 -0.9918 +vn 0.0250 0.1256 -0.9918 +vn 0.0372 0.1225 -0.9918 +vn 0.0490 0.1183 -0.9918 +vn 0.0604 0.1129 -0.9918 +vn 0.0711 0.1065 -0.9918 +vn 0.0812 0.0990 -0.9918 +vn 0.0905 0.0905 -0.9918 +vn 0.0990 0.0812 -0.9918 +vn 0.1065 0.0711 -0.9918 +vn 0.1129 0.0604 -0.9918 +vn 0.1183 0.0490 -0.9918 +vn 0.1225 0.0372 -0.9918 +vn 0.1256 0.0250 -0.9918 +vn 0.1274 0.0125 -0.9918 +vn 0.1281 0.0000 -0.9918 +vn 0.1274 -0.0125 -0.9918 +vn 0.1256 -0.0250 -0.9918 +vn 0.1225 -0.0372 -0.9918 +vn 0.1183 -0.0490 -0.9918 +vn 0.1129 -0.0604 -0.9918 +vn 0.1065 -0.0711 -0.9918 +vn 0.0990 -0.0812 -0.9918 +vn 0.0905 -0.0905 -0.9918 +vn 0.0812 -0.0990 -0.9918 +vn 0.0711 -0.1065 -0.9918 +vn 0.0604 -0.1129 -0.9918 +vn 0.0490 -0.1183 -0.9918 +vn 0.0372 -0.1225 -0.9918 +vn 0.0250 -0.1256 -0.9918 +vn 0.0125 -0.1274 -0.9918 +vn 0.0000 -0.1281 -0.9918 +vn -0.0125 -0.1274 -0.9918 +vn -0.0250 -0.1256 -0.9918 +vn -0.0372 -0.1225 -0.9918 +vn -0.0490 -0.1183 -0.9918 +vn -0.0604 -0.1129 -0.9918 +vn -0.0711 -0.1065 -0.9918 +vn -0.0812 -0.0990 -0.9918 +vn -0.0905 -0.0905 -0.9918 +vn -0.0990 -0.0812 -0.9918 +vn -0.1065 -0.0711 -0.9918 +vn -0.1129 -0.0604 -0.9918 +vn -0.1183 -0.0490 -0.9918 +vn -0.1225 -0.0372 -0.9918 +vn -0.1256 -0.0250 -0.9918 +vn -0.1274 -0.0125 -0.9918 +vn -0.1281 -0.0000 -0.9918 +vn -0.1274 0.0125 -0.9918 +vn -0.1256 0.0250 -0.9918 +vn -0.1225 0.0372 -0.9918 +vn -0.1183 0.0490 -0.9918 +vn -0.1129 0.0604 -0.9918 +vn -0.1065 0.0711 -0.9918 +vn -0.0990 0.0812 -0.9918 +vn -0.0905 0.0905 -0.9918 +vn -0.0812 0.0990 -0.9918 +vn -0.0711 0.1065 -0.9918 +vn -0.0604 0.1129 -0.9918 +vn -0.0490 0.1183 -0.9918 +vn -0.0372 0.1225 -0.9918 +vn 0.0755 -0.7667 0.6376 +vn 0.1503 -0.7556 0.6376 +vn 0.0964 -0.9784 0.1826 +vn 0.1918 -0.9643 0.1827 +vn 0.0000 -0.9832 0.1826 +vn 0.0000 -0.7704 0.6376 +vn 0.2236 -0.7372 0.6376 +vn 0.2948 -0.7117 0.6376 +vn 0.2854 -0.9409 0.1826 +vn 0.3762 -0.9083 0.1827 +vn 0.3632 -0.6794 0.6376 +vn 0.4280 -0.6405 0.6376 +vn 0.4635 -0.8671 0.1826 +vn 0.5462 -0.8175 0.1827 +vn 0.4887 -0.5955 0.6376 +vn 0.5447 -0.5447 0.6376 +vn 0.6237 -0.7600 0.1826 +vn 0.6952 -0.6952 0.1827 +vn 0.5955 -0.4887 0.6376 +vn 0.6405 -0.4280 0.6376 +vn 0.7600 -0.6237 0.1826 +vn 0.8175 -0.5462 0.1827 +vn 0.6794 -0.3631 0.6376 +vn 0.7117 -0.2948 0.6376 +vn 0.8671 -0.4635 0.1826 +vn 0.9084 -0.3762 0.1826 +vn 0.7372 -0.2236 0.6376 +vn 0.7556 -0.1503 0.6376 +vn 0.9408 -0.2854 0.1826 +vn 0.9643 -0.1918 0.1827 +vn 0.7667 -0.0755 0.6376 +vn 0.7704 -0.0000 0.6376 +vn 0.9784 -0.0964 0.1826 +vn 0.9832 0.0000 0.1827 +vn 0.7667 0.0755 0.6376 +vn 0.7556 0.1503 0.6376 +vn 0.9784 0.0964 0.1826 +vn 0.9643 0.1918 0.1827 +vn 0.7372 0.2236 0.6376 +vn 0.7117 0.2948 0.6376 +vn 0.9409 0.2854 0.1826 +vn 0.9084 0.3762 0.1826 +vn 0.6794 0.3632 0.6376 +vn 0.6405 0.4280 0.6376 +vn 0.8671 0.4635 0.1826 +vn 0.8175 0.5462 0.1827 +vn 0.5955 0.4887 0.6376 +vn 0.5447 0.5447 0.6376 +vn 0.7600 0.6237 0.1826 +vn 0.6952 0.6952 0.1827 +vn 0.4887 0.5955 0.6376 +vn 0.4280 0.6405 0.6376 +vn 0.6237 0.7600 0.1826 +vn 0.5462 0.8175 0.1827 +vn 0.3632 0.6794 0.6376 +vn 0.2948 0.7117 0.6376 +vn 0.4635 0.8671 0.1826 +vn 0.3762 0.9084 0.1826 +vn 0.2236 0.7372 0.6376 +vn 0.1503 0.7556 0.6376 +vn 0.2854 0.9408 0.1826 +vn 0.1918 0.9643 0.1826 +vn 0.0755 0.7667 0.6376 +vn 0.0000 0.7704 0.6376 +vn 0.0964 0.9784 0.1826 +vn -0.0000 0.9832 0.1827 +vn -0.0755 0.7667 0.6376 +vn -0.1503 0.7556 0.6376 +vn -0.0964 0.9785 0.1826 +vn -0.1918 0.9643 0.1827 +vn -0.2236 0.7372 0.6376 +vn -0.2948 0.7117 0.6376 +vn -0.2854 0.9408 0.1826 +vn -0.3762 0.9084 0.1826 +vn -0.3632 0.6794 0.6376 +vn -0.4280 0.6405 0.6376 +vn -0.4635 0.8671 0.1826 +vn -0.5462 0.8175 0.1827 +vn -0.4887 0.5955 0.6376 +vn -0.5447 0.5447 0.6376 +vn -0.6237 0.7600 0.1826 +vn -0.6952 0.6952 0.1827 +vn -0.5955 0.4887 0.6376 +vn -0.6405 0.4280 0.6376 +vn -0.7600 0.6237 0.1826 +vn -0.8175 0.5462 0.1826 +vn -0.6794 0.3632 0.6376 +vn -0.7117 0.2948 0.6376 +vn -0.8671 0.4635 0.1826 +vn -0.9083 0.3762 0.1827 +vn -0.7372 0.2236 0.6376 +vn -0.7556 0.1503 0.6376 +vn -0.9409 0.2854 0.1826 +vn -0.9643 0.1918 0.1827 +vn -0.7667 0.0755 0.6376 +vn -0.7704 0.0000 0.6376 +vn -0.9784 0.0964 0.1826 +vn -0.9832 0.0000 0.1827 +vn -0.7667 -0.0755 0.6376 +vn -0.7556 -0.1503 0.6376 +vn -0.9784 -0.0964 0.1826 +vn -0.9643 -0.1918 0.1827 +vn -0.7372 -0.2236 0.6376 +vn -0.7117 -0.2948 0.6376 +vn -0.9408 -0.2854 0.1826 +vn -0.9084 -0.3762 0.1826 +vn -0.6794 -0.3632 0.6376 +vn -0.6405 -0.4280 0.6376 +vn -0.8671 -0.4635 0.1826 +vn -0.8175 -0.5462 0.1827 +vn -0.5956 -0.4887 0.6376 +vn -0.5447 -0.5447 0.6376 +vn -0.7600 -0.6237 0.1826 +vn -0.6952 -0.6952 0.1827 +vn -0.4887 -0.5955 0.6376 +vn -0.4280 -0.6405 0.6376 +vn -0.6237 -0.7600 0.1826 +vn -0.5462 -0.8175 0.1827 +vn -0.3632 -0.6794 0.6376 +vn -0.2948 -0.7117 0.6376 +vn -0.4635 -0.8671 0.1826 +vn -0.3762 -0.9083 0.1827 +vn -0.2236 -0.7372 0.6376 +vn -0.1503 -0.7556 0.6376 +vn -0.2854 -0.9408 0.1826 +vn -0.1918 -0.9643 0.1827 +vn -0.0755 -0.7667 0.6376 +vn -0.0964 -0.9784 0.1826 +vn 0.0757 -0.7682 -0.6358 +vn 0.1506 -0.7570 -0.6358 +vn 0.0440 -0.4470 -0.8934 +vn 0.0876 -0.4405 -0.8935 +vn -0.0000 -0.4492 -0.8934 +vn -0.0000 -0.7718 -0.6358 +vn 0.2241 -0.7386 -0.6358 +vn 0.2954 -0.7131 -0.6358 +vn 0.1304 -0.4298 -0.8935 +vn 0.1719 -0.4150 -0.8934 +vn 0.3638 -0.6807 -0.6358 +vn 0.4288 -0.6418 -0.6358 +vn 0.2117 -0.3961 -0.8934 +vn 0.2495 -0.3735 -0.8934 +vn 0.4897 -0.5967 -0.6358 +vn 0.5458 -0.5458 -0.6358 +vn 0.2850 -0.3472 -0.8934 +vn 0.3176 -0.3176 -0.8934 +vn 0.5967 -0.4897 -0.6358 +vn 0.6418 -0.4288 -0.6358 +vn 0.3472 -0.2850 -0.8934 +vn 0.3735 -0.2495 -0.8934 +vn 0.6807 -0.3638 -0.6358 +vn 0.7131 -0.2954 -0.6358 +vn 0.3961 -0.2117 -0.8934 +vn 0.4150 -0.1719 -0.8934 +vn 0.7386 -0.2240 -0.6358 +vn 0.7570 -0.1506 -0.6358 +vn 0.4298 -0.1304 -0.8935 +vn 0.4405 -0.0876 -0.8935 +vn 0.7682 -0.0757 -0.6358 +vn 0.7718 0.0000 -0.6358 +vn 0.4470 -0.0440 -0.8934 +vn 0.4492 0.0000 -0.8934 +vn 0.7682 0.0757 -0.6358 +vn 0.7570 0.1506 -0.6358 +vn 0.4470 0.0440 -0.8934 +vn 0.4405 0.0876 -0.8935 +vn 0.7386 0.2241 -0.6358 +vn 0.7131 0.2954 -0.6358 +vn 0.4298 0.1304 -0.8935 +vn 0.4150 0.1719 -0.8934 +vn 0.6807 0.3638 -0.6358 +vn 0.6418 0.4288 -0.6358 +vn 0.3961 0.2117 -0.8934 +vn 0.3735 0.2495 -0.8934 +vn 0.5967 0.4897 -0.6358 +vn 0.5458 0.5458 -0.6358 +vn 0.3472 0.2850 -0.8934 +vn 0.3176 0.3176 -0.8934 +vn 0.4897 0.5967 -0.6358 +vn 0.4288 0.6418 -0.6358 +vn 0.2850 0.3472 -0.8934 +vn 0.2495 0.3735 -0.8934 +vn 0.3638 0.6807 -0.6358 +vn 0.2954 0.7131 -0.6358 +vn 0.2117 0.3961 -0.8934 +vn 0.1719 0.4150 -0.8934 +vn 0.2241 0.7386 -0.6358 +vn 0.1506 0.7570 -0.6358 +vn 0.1304 0.4298 -0.8934 +vn 0.0876 0.4405 -0.8935 +vn 0.0757 0.7681 -0.6358 +vn -0.0000 0.7718 -0.6358 +vn 0.0440 0.4470 -0.8934 +vn -0.0000 0.4492 -0.8934 +vn -0.0757 0.7681 -0.6358 +vn -0.1506 0.7570 -0.6358 +vn -0.0440 0.4470 -0.8934 +vn -0.0876 0.4405 -0.8935 +vn -0.2240 0.7386 -0.6358 +vn -0.2954 0.7131 -0.6358 +vn -0.1304 0.4298 -0.8935 +vn -0.1719 0.4150 -0.8934 +vn -0.3639 0.6807 -0.6358 +vn -0.4288 0.6418 -0.6358 +vn -0.2117 0.3961 -0.8935 +vn -0.2495 0.3735 -0.8934 +vn -0.4897 0.5967 -0.6358 +vn -0.5458 0.5458 -0.6358 +vn -0.2850 0.3472 -0.8934 +vn -0.3176 0.3176 -0.8934 +vn -0.5967 0.4897 -0.6358 +vn -0.6418 0.4288 -0.6358 +vn -0.3472 0.2850 -0.8934 +vn -0.3735 0.2495 -0.8934 +vn -0.6807 0.3639 -0.6358 +vn -0.7131 0.2954 -0.6358 +vn -0.3961 0.2117 -0.8935 +vn -0.4150 0.1719 -0.8934 +vn -0.7386 0.2240 -0.6358 +vn -0.7570 0.1506 -0.6358 +vn -0.4298 0.1304 -0.8935 +vn -0.4405 0.0876 -0.8934 +vn -0.7681 0.0757 -0.6358 +vn -0.7718 -0.0000 -0.6358 +vn -0.4470 0.0440 -0.8934 +vn -0.4492 0.0000 -0.8934 +vn -0.7681 -0.0757 -0.6358 +vn -0.7570 -0.1506 -0.6358 +vn -0.4470 -0.0440 -0.8934 +vn -0.4405 -0.0876 -0.8935 +vn -0.7386 -0.2241 -0.6358 +vn -0.7131 -0.2954 -0.6358 +vn -0.4298 -0.1304 -0.8934 +vn -0.4150 -0.1719 -0.8934 +vn -0.6807 -0.3638 -0.6358 +vn -0.6418 -0.4288 -0.6358 +vn -0.3961 -0.2117 -0.8935 +vn -0.3735 -0.2496 -0.8934 +vn -0.5966 -0.4897 -0.6358 +vn -0.5458 -0.5458 -0.6358 +vn -0.3472 -0.2850 -0.8934 +vn -0.3176 -0.3176 -0.8934 +vn -0.4897 -0.5967 -0.6358 +vn -0.4288 -0.6418 -0.6358 +vn -0.2850 -0.3472 -0.8934 +vn -0.2495 -0.3735 -0.8934 +vn -0.3638 -0.6807 -0.6358 +vn -0.2954 -0.7131 -0.6358 +vn -0.2117 -0.3961 -0.8935 +vn -0.1719 -0.4150 -0.8934 +vn -0.2241 -0.7386 -0.6358 +vn -0.1506 -0.7570 -0.6358 +vn -0.1304 -0.4298 -0.8934 +vn -0.0876 -0.4405 -0.8935 +vn -0.0757 -0.7682 -0.6357 +vn -0.0440 -0.4470 -0.8934 +vn -0.0001 0.0013 1.0000 +vn 0.0000 0.0013 1.0000 +vn -0.0002 0.0009 1.0000 +vn -0.0024 0.0119 0.9999 +vn -0.0012 0.0120 0.9999 +vn 0.0000 0.0121 0.9999 +vn -0.0004 0.0012 1.0000 +vn -0.0005 0.0012 1.0000 +vn -0.0046 0.0112 0.9999 +vn -0.0035 0.0115 0.9999 +vn -0.0004 0.0008 1.0000 +vn -0.0005 0.0008 1.0000 +vn -0.0067 0.0101 0.9999 +vn -0.0057 0.0107 0.9999 +vn -0.0008 0.0010 1.0000 +vn -0.0007 0.0007 1.0000 +vn -0.0086 0.0086 0.9999 +vn -0.0077 0.0094 0.9999 +vn -0.0010 0.0008 1.0000 +vn -0.0008 0.0005 1.0000 +vn -0.0101 0.0067 0.9999 +vn -0.0094 0.0077 0.9999 +vn -0.0008 0.0004 1.0000 +vn -0.0009 0.0004 1.0000 +vn -0.0112 0.0046 0.9999 +vn -0.0107 0.0057 0.9999 +vn -0.0009 0.0003 1.0000 +vn -0.0009 0.0002 1.0000 +vn -0.0119 0.0024 0.9999 +vn -0.0116 0.0035 0.9999 +vn -0.0013 0.0001 1.0000 +vn -0.0013 0.0000 1.0000 +vn -0.0121 0.0000 0.9999 +vn -0.0120 0.0012 0.9999 +vn -0.0013 -0.0001 1.0000 +vn -0.0009 -0.0002 1.0000 +vn -0.0119 -0.0024 0.9999 +vn -0.0120 -0.0012 0.9999 +vn -0.0012 -0.0004 1.0000 +vn -0.0009 -0.0004 1.0000 +vn -0.0112 -0.0046 0.9999 +vn -0.0116 -0.0035 0.9999 +vn -0.0012 -0.0007 1.0000 +vn -0.0008 -0.0005 1.0000 +vn -0.0100 -0.0067 0.9999 +vn -0.0107 -0.0057 0.9999 +vn -0.0010 -0.0008 1.0000 +vn -0.0007 -0.0007 1.0000 +vn -0.0086 -0.0086 0.9999 +vn -0.0094 -0.0077 0.9999 +vn -0.0008 -0.0010 1.0000 +vn -0.0005 -0.0008 1.0000 +vn -0.0067 -0.0100 0.9999 +vn -0.0077 -0.0094 0.9999 +vn -0.0004 -0.0008 1.0000 +vn -0.0005 -0.0012 1.0000 +vn -0.0046 -0.0112 0.9999 +vn -0.0057 -0.0107 0.9999 +vn -0.0004 -0.0012 1.0000 +vn -0.0002 -0.0009 1.0000 +vn -0.0024 -0.0119 0.9999 +vn -0.0035 -0.0116 0.9999 +vn -0.0001 -0.0013 1.0000 +vn 0.0000 -0.0013 1.0000 +vn -0.0000 -0.0121 0.9999 +vn -0.0012 -0.0120 0.9999 +vn 0.0001 -0.0013 1.0000 +vn 0.0002 -0.0009 1.0000 +vn 0.0024 -0.0119 0.9999 +vn 0.0012 -0.0120 0.9999 +vn 0.0004 -0.0012 1.0000 +vn 0.0005 -0.0012 1.0000 +vn 0.0046 -0.0112 0.9999 +vn 0.0035 -0.0116 0.9999 +vn 0.0007 -0.0012 1.0000 +vn 0.0005 -0.0008 1.0000 +vn 0.0067 -0.0101 0.9999 +vn 0.0057 -0.0107 0.9999 +vn 0.0008 -0.0010 1.0000 +vn 0.0007 -0.0007 1.0000 +vn 0.0086 -0.0086 0.9999 +vn 0.0077 -0.0094 0.9999 +vn 0.0010 -0.0008 1.0000 +vn 0.0008 -0.0005 1.0000 +vn 0.0100 -0.0067 0.9999 +vn 0.0094 -0.0077 0.9999 +vn 0.0012 -0.0007 1.0000 +vn 0.0012 -0.0005 1.0000 +vn 0.0112 -0.0046 0.9999 +vn 0.0107 -0.0057 0.9999 +vn 0.0012 -0.0004 1.0000 +vn 0.0009 -0.0002 1.0000 +vn 0.0119 -0.0024 0.9999 +vn 0.0115 -0.0035 0.9999 +vn 0.0013 -0.0001 1.0000 +vn 0.0013 -0.0000 1.0000 +vn 0.0121 -0.0000 0.9999 +vn 0.0120 -0.0012 0.9999 +vn 0.0013 0.0001 1.0000 +vn 0.0009 0.0002 1.0000 +vn 0.0119 0.0024 0.9999 +vn 0.0120 0.0012 0.9999 +vn 0.0012 0.0004 1.0000 +vn 0.0009 0.0004 1.0000 +vn 0.0112 0.0046 0.9999 +vn 0.0115 0.0035 0.9999 +vn 0.0012 0.0007 1.0000 +vn 0.0008 0.0005 1.0000 +vn 0.0100 0.0067 0.9999 +vn 0.0107 0.0057 0.9999 +vn 0.0010 0.0008 1.0000 +vn 0.0007 0.0007 1.0000 +vn 0.0086 0.0086 0.9999 +vn 0.0094 0.0077 0.9999 +vn 0.0008 0.0010 1.0000 +vn 0.0005 0.0008 1.0000 +vn 0.0067 0.0101 0.9999 +vn 0.0077 0.0094 0.9999 +vn 0.0007 0.0012 1.0000 +vn 0.0005 0.0012 1.0000 +vn 0.0046 0.0112 0.9999 +vn 0.0057 0.0107 0.9999 +vn 0.0004 0.0012 1.0000 +vn 0.0002 0.0009 1.0000 +vn 0.0024 0.0119 0.9999 +vn 0.0035 0.0115 0.9999 +vn 0.0001 0.0013 1.0000 +vn 0.0012 0.0120 0.9999 +vn -0.0513 0.5211 0.8520 +vn 0.0000 0.5235 0.8520 +vn -0.1021 0.5134 0.8520 +vn -0.1882 0.9462 0.2634 +vn -0.0945 0.9600 0.2634 +vn 0.0000 0.9647 0.2634 +vn -0.1520 0.5010 0.8520 +vn -0.2003 0.4837 0.8520 +vn -0.3692 0.8913 0.2634 +vn -0.2800 0.9232 0.2634 +vn -0.2468 0.4617 0.8520 +vn -0.2908 0.4353 0.8520 +vn -0.5360 0.8021 0.2634 +vn -0.4548 0.8508 0.2634 +vn -0.3321 0.4047 0.8520 +vn -0.3702 0.3702 0.8520 +vn -0.6821 0.6821 0.2634 +vn -0.6120 0.7457 0.2634 +vn -0.4047 0.3321 0.8520 +vn -0.4353 0.2908 0.8520 +vn -0.8021 0.5360 0.2634 +vn -0.7457 0.6120 0.2634 +vn -0.4617 0.2468 0.8520 +vn -0.4837 0.2003 0.8520 +vn -0.8912 0.3692 0.2634 +vn -0.8508 0.4548 0.2634 +vn -0.5010 0.1520 0.8520 +vn -0.5135 0.1021 0.8520 +vn -0.9462 0.1882 0.2634 +vn -0.9231 0.2800 0.2634 +vn -0.5211 0.0513 0.8520 +vn -0.5235 0.0000 0.8520 +vn -0.9647 0.0000 0.2634 +vn -0.9600 0.0945 0.2634 +vn -0.5211 -0.0513 0.8520 +vn -0.5135 -0.1021 0.8520 +vn -0.9462 -0.1882 0.2634 +vn -0.9600 -0.0945 0.2634 +vn -0.5010 -0.1520 0.8520 +vn -0.4837 -0.2003 0.8520 +vn -0.8912 -0.3692 0.2634 +vn -0.9232 -0.2800 0.2634 +vn -0.4617 -0.2468 0.8520 +vn -0.4353 -0.2908 0.8520 +vn -0.8021 -0.5360 0.2634 +vn -0.8508 -0.4548 0.2634 +vn -0.4047 -0.3322 0.8520 +vn -0.3702 -0.3702 0.8520 +vn -0.6821 -0.6821 0.2634 +vn -0.7457 -0.6120 0.2634 +vn -0.3322 -0.4047 0.8520 +vn -0.2908 -0.4353 0.8520 +vn -0.5360 -0.8021 0.2634 +vn -0.6120 -0.7457 0.2634 +vn -0.2468 -0.4617 0.8520 +vn -0.2003 -0.4837 0.8520 +vn -0.3692 -0.8913 0.2634 +vn -0.4547 -0.8508 0.2634 +vn -0.1520 -0.5010 0.8520 +vn -0.1021 -0.5135 0.8520 +vn -0.1882 -0.9462 0.2634 +vn -0.2800 -0.9232 0.2634 +vn -0.0513 -0.5211 0.8520 +vn -0.0000 -0.5235 0.8520 +vn -0.0000 -0.9647 0.2634 +vn -0.0945 -0.9600 0.2634 +vn 0.0513 -0.5211 0.8520 +vn 0.1021 -0.5135 0.8520 +vn 0.1882 -0.9462 0.2634 +vn 0.0945 -0.9600 0.2634 +vn 0.1520 -0.5010 0.8520 +vn 0.2003 -0.4837 0.8520 +vn 0.3692 -0.8913 0.2634 +vn 0.2800 -0.9232 0.2634 +vn 0.2468 -0.4617 0.8520 +vn 0.2908 -0.4353 0.8520 +vn 0.5360 -0.8021 0.2634 +vn 0.4547 -0.8508 0.2634 +vn 0.3321 -0.4047 0.8520 +vn 0.3702 -0.3702 0.8520 +vn 0.6821 -0.6821 0.2634 +vn 0.6120 -0.7457 0.2634 +vn 0.4047 -0.3321 0.8520 +vn 0.4353 -0.2908 0.8520 +vn 0.8021 -0.5360 0.2634 +vn 0.7457 -0.6120 0.2634 +vn 0.4617 -0.2468 0.8520 +vn 0.4837 -0.2003 0.8520 +vn 0.8913 -0.3692 0.2634 +vn 0.8508 -0.4547 0.2634 +vn 0.5010 -0.1520 0.8520 +vn 0.5135 -0.1021 0.8520 +vn 0.9462 -0.1882 0.2634 +vn 0.9232 -0.2800 0.2634 +vn 0.5211 -0.0513 0.8520 +vn 0.5235 -0.0000 0.8520 +vn 0.9647 -0.0000 0.2634 +vn 0.9600 -0.0946 0.2634 +vn 0.5210 0.0513 0.8520 +vn 0.5135 0.1021 0.8520 +vn 0.9462 0.1882 0.2634 +vn 0.9600 0.0946 0.2634 +vn 0.5010 0.1520 0.8520 +vn 0.4837 0.2003 0.8520 +vn 0.8912 0.3692 0.2634 +vn 0.9231 0.2800 0.2634 +vn 0.4617 0.2468 0.8520 +vn 0.4353 0.2908 0.8520 +vn 0.8021 0.5360 0.2634 +vn 0.8508 0.4548 0.2634 +vn 0.4047 0.3322 0.8520 +vn 0.3702 0.3702 0.8520 +vn 0.6821 0.6821 0.2634 +vn 0.7457 0.6120 0.2634 +vn 0.3321 0.4047 0.8520 +vn 0.2908 0.4353 0.8520 +vn 0.5360 0.8021 0.2634 +vn 0.6120 0.7457 0.2634 +vn 0.2468 0.4618 0.8520 +vn 0.2003 0.4837 0.8520 +vn 0.3692 0.8913 0.2634 +vn 0.4547 0.8508 0.2634 +vn 0.1520 0.5010 0.8520 +vn 0.1021 0.5135 0.8520 +vn 0.1882 0.9462 0.2634 +vn 0.2800 0.9231 0.2634 +vn 0.0513 0.5211 0.8520 +vn 0.0946 0.9600 0.2634 +vn -0.0980 0.9946 0.0332 +vn 0.0000 0.9994 0.0332 +vn -0.1950 0.9802 0.0332 +vn -0.2901 0.9564 0.0332 +vn -0.3825 0.9234 0.0332 +vn -0.4711 0.8814 0.0332 +vn -0.5553 0.8310 0.0332 +vn -0.6340 0.7726 0.0332 +vn -0.7067 0.7067 0.0332 +vn -0.7726 0.6340 0.0332 +vn -0.8310 0.5553 0.0332 +vn -0.8814 0.4711 0.0332 +vn -0.9234 0.3825 0.0332 +vn -0.9564 0.2901 0.0332 +vn -0.9802 0.1950 0.0332 +vn -0.9946 0.0980 0.0332 +vn -0.9994 0.0000 0.0332 +vn -0.9946 -0.0980 0.0332 +vn -0.9802 -0.1950 0.0332 +vn -0.9564 -0.2901 0.0332 +vn -0.9234 -0.3825 0.0332 +vn -0.8814 -0.4711 0.0332 +vn -0.8310 -0.5553 0.0332 +vn -0.7726 -0.6340 0.0332 +vn -0.7067 -0.7067 0.0332 +vn -0.6340 -0.7726 0.0332 +vn -0.5553 -0.8310 0.0332 +vn -0.4711 -0.8814 0.0332 +vn -0.3825 -0.9234 0.0332 +vn -0.2901 -0.9564 0.0332 +vn -0.1950 -0.9802 0.0332 +vn -0.0980 -0.9946 0.0332 +vn -0.0000 -0.9994 0.0332 +vn 0.0980 -0.9946 0.0332 +vn 0.1950 -0.9802 0.0332 +vn 0.2901 -0.9564 0.0332 +vn 0.3825 -0.9234 0.0332 +vn 0.4711 -0.8814 0.0332 +vn 0.5553 -0.8310 0.0332 +vn 0.6340 -0.7726 0.0332 +vn 0.7067 -0.7067 0.0332 +vn 0.7726 -0.6340 0.0332 +vn 0.8310 -0.5553 0.0332 +vn 0.8814 -0.4711 0.0332 +vn 0.9234 -0.3825 0.0332 +vn 0.9564 -0.2901 0.0332 +vn 0.9802 -0.1950 0.0332 +vn 0.9946 -0.0980 0.0332 +vn 0.9994 0.0000 0.0332 +vn 0.9946 0.0980 0.0332 +vn 0.9802 0.1950 0.0332 +vn 0.9564 0.2901 0.0332 +vn 0.9234 0.3825 0.0332 +vn 0.8814 0.4711 0.0332 +vn 0.8310 0.5553 0.0332 +vn 0.7726 0.6340 0.0332 +vn 0.7067 0.7067 0.0332 +vn 0.6340 0.7726 0.0332 +vn 0.5553 0.8310 0.0332 +vn 0.4711 0.8814 0.0332 +vn 0.3825 0.9234 0.0332 +vn 0.2901 0.9564 0.0332 +vn 0.1950 0.9802 0.0332 +vn 0.0980 0.9946 0.0332 +vn -0.0948 0.9628 -0.2531 +vn 0.0000 0.9674 -0.2531 +vn -0.0000 0.9966 -0.0818 +vn -0.0977 0.9919 -0.0818 +vn -0.1887 0.9489 -0.2531 +vn -0.1944 0.9775 -0.0818 +vn -0.1709 0.8589 -0.4827 +vn -0.0858 0.8716 -0.4827 +vn 0.0000 0.8758 -0.4827 +vn -0.2808 0.9258 -0.2531 +vn -0.2893 0.9537 -0.0818 +vn -0.3702 0.8938 -0.2531 +vn -0.3814 0.9208 -0.0818 +vn -0.3351 0.8091 -0.4827 +vn -0.2542 0.8381 -0.4827 +vn -0.4561 0.8532 -0.2531 +vn -0.4698 0.8790 -0.0818 +vn -0.5375 0.8044 -0.2531 +vn -0.5537 0.8287 -0.0818 +vn -0.4866 0.7282 -0.4827 +vn -0.4128 0.7724 -0.4827 +vn -0.6137 0.7478 -0.2531 +vn -0.6323 0.7704 -0.0818 +vn -0.6841 0.6841 -0.2531 +vn -0.7047 0.7047 -0.0818 +vn -0.6193 0.6193 -0.4827 +vn -0.5556 0.6770 -0.4827 +vn -0.7478 0.6137 -0.2531 +vn -0.7704 0.6323 -0.0818 +vn -0.8044 0.5375 -0.2531 +vn -0.8287 0.5537 -0.0818 +vn -0.7282 0.4866 -0.4827 +vn -0.6770 0.5556 -0.4827 +vn -0.8532 0.4561 -0.2531 +vn -0.8790 0.4698 -0.0818 +vn -0.8938 0.3702 -0.2531 +vn -0.9208 0.3814 -0.0818 +vn -0.8091 0.3351 -0.4827 +vn -0.7724 0.4128 -0.4827 +vn -0.9258 0.2808 -0.2531 +vn -0.9537 0.2893 -0.0818 +vn -0.9489 0.1887 -0.2531 +vn -0.9775 0.1944 -0.0818 +vn -0.8589 0.1709 -0.4827 +vn -0.8381 0.2542 -0.4827 +vn -0.9628 0.0948 -0.2531 +vn -0.9919 0.0977 -0.0818 +vn -0.9674 0.0000 -0.2531 +vn -0.9966 -0.0000 -0.0818 +vn -0.8758 0.0000 -0.4827 +vn -0.8716 0.0858 -0.4827 +vn -0.9628 -0.0948 -0.2531 +vn -0.9919 -0.0977 -0.0818 +vn -0.9489 -0.1887 -0.2531 +vn -0.9775 -0.1944 -0.0818 +vn -0.8589 -0.1709 -0.4827 +vn -0.8716 -0.0858 -0.4827 +vn -0.9258 -0.2808 -0.2531 +vn -0.9537 -0.2893 -0.0818 +vn -0.8938 -0.3702 -0.2531 +vn -0.9208 -0.3814 -0.0818 +vn -0.8091 -0.3351 -0.4827 +vn -0.8381 -0.2542 -0.4827 +vn -0.8532 -0.4561 -0.2531 +vn -0.8790 -0.4698 -0.0818 +vn -0.8044 -0.5375 -0.2531 +vn -0.8287 -0.5537 -0.0818 +vn -0.7282 -0.4866 -0.4827 +vn -0.7724 -0.4128 -0.4827 +vn -0.7478 -0.6137 -0.2531 +vn -0.7704 -0.6323 -0.0818 +vn -0.6841 -0.6841 -0.2531 +vn -0.7047 -0.7047 -0.0818 +vn -0.6193 -0.6193 -0.4827 +vn -0.6770 -0.5556 -0.4827 +vn -0.6137 -0.7478 -0.2531 +vn -0.6323 -0.7704 -0.0818 +vn -0.5375 -0.8044 -0.2531 +vn -0.5537 -0.8287 -0.0818 +vn -0.4866 -0.7282 -0.4827 +vn -0.5556 -0.6770 -0.4827 +vn -0.4561 -0.8532 -0.2531 +vn -0.4698 -0.8790 -0.0818 +vn -0.3702 -0.8938 -0.2531 +vn -0.3814 -0.9208 -0.0818 +vn -0.3351 -0.8091 -0.4827 +vn -0.4128 -0.7724 -0.4827 +vn -0.2808 -0.9258 -0.2531 +vn -0.2893 -0.9537 -0.0818 +vn -0.1887 -0.9489 -0.2531 +vn -0.1944 -0.9775 -0.0818 +vn -0.1709 -0.8589 -0.4827 +vn -0.2542 -0.8381 -0.4827 +vn -0.0948 -0.9628 -0.2531 +vn -0.0977 -0.9919 -0.0818 +vn 0.0000 -0.9674 -0.2531 +vn -0.0000 -0.9967 -0.0818 +vn -0.0000 -0.8758 -0.4827 +vn -0.0859 -0.8716 -0.4827 +vn 0.0948 -0.9628 -0.2531 +vn 0.0977 -0.9919 -0.0818 +vn 0.1887 -0.9489 -0.2531 +vn 0.1944 -0.9775 -0.0818 +vn 0.1709 -0.8589 -0.4827 +vn 0.0858 -0.8716 -0.4827 +vn 0.2808 -0.9258 -0.2531 +vn 0.2893 -0.9537 -0.0818 +vn 0.3702 -0.8938 -0.2531 +vn 0.3814 -0.9208 -0.0818 +vn 0.3351 -0.8091 -0.4827 +vn 0.2542 -0.8381 -0.4827 +vn 0.4561 -0.8532 -0.2531 +vn 0.4698 -0.8790 -0.0818 +vn 0.5375 -0.8044 -0.2531 +vn 0.5537 -0.8287 -0.0818 +vn 0.4866 -0.7282 -0.4827 +vn 0.4128 -0.7724 -0.4827 +vn 0.6137 -0.7478 -0.2531 +vn 0.6323 -0.7704 -0.0818 +vn 0.6841 -0.6841 -0.2531 +vn 0.7047 -0.7047 -0.0818 +vn 0.6193 -0.6193 -0.4827 +vn 0.5556 -0.6770 -0.4827 +vn 0.7479 -0.6137 -0.2531 +vn 0.7704 -0.6323 -0.0818 +vn 0.8044 -0.5375 -0.2531 +vn 0.8287 -0.5537 -0.0818 +vn 0.7282 -0.4866 -0.4827 +vn 0.6770 -0.5556 -0.4827 +vn 0.8532 -0.4561 -0.2531 +vn 0.8790 -0.4698 -0.0818 +vn 0.8938 -0.3702 -0.2531 +vn 0.9208 -0.3814 -0.0818 +vn 0.8091 -0.3351 -0.4827 +vn 0.7724 -0.4129 -0.4827 +vn 0.9258 -0.2808 -0.2531 +vn 0.9537 -0.2893 -0.0818 +vn 0.9489 -0.1887 -0.2531 +vn 0.9775 -0.1944 -0.0818 +vn 0.8589 -0.1709 -0.4827 +vn 0.8381 -0.2542 -0.4827 +vn 0.9628 -0.0948 -0.2531 +vn 0.9919 -0.0977 -0.0818 +vn 0.9674 0.0000 -0.2531 +vn 0.9967 0.0000 -0.0818 +vn 0.8758 -0.0000 -0.4827 +vn 0.8716 -0.0858 -0.4827 +vn 0.9628 0.0948 -0.2531 +vn 0.9919 0.0977 -0.0818 +vn 0.9489 0.1887 -0.2531 +vn 0.9775 0.1944 -0.0818 +vn 0.8589 0.1709 -0.4827 +vn 0.8716 0.0858 -0.4827 +vn 0.9258 0.2808 -0.2531 +vn 0.9537 0.2893 -0.0818 +vn 0.8938 0.3702 -0.2531 +vn 0.9208 0.3814 -0.0818 +vn 0.8091 0.3351 -0.4827 +vn 0.8381 0.2542 -0.4827 +vn 0.8532 0.4561 -0.2531 +vn 0.8790 0.4698 -0.0818 +vn 0.8044 0.5375 -0.2531 +vn 0.8287 0.5537 -0.0818 +vn 0.7282 0.4866 -0.4827 +vn 0.7724 0.4128 -0.4827 +vn 0.7478 0.6137 -0.2531 +vn 0.7704 0.6323 -0.0818 +vn 0.6841 0.6841 -0.2531 +vn 0.7047 0.7047 -0.0818 +vn 0.6193 0.6193 -0.4827 +vn 0.6770 0.5556 -0.4827 +vn 0.6137 0.7479 -0.2531 +vn 0.6323 0.7704 -0.0818 +vn 0.5375 0.8044 -0.2531 +vn 0.5537 0.8287 -0.0818 +vn 0.4866 0.7282 -0.4827 +vn 0.5556 0.6770 -0.4827 +vn 0.4561 0.8532 -0.2531 +vn 0.4698 0.8790 -0.0818 +vn 0.3702 0.8938 -0.2531 +vn 0.3814 0.9208 -0.0818 +vn 0.3351 0.8091 -0.4827 +vn 0.4129 0.7724 -0.4827 +vn 0.2808 0.9258 -0.2531 +vn 0.2893 0.9537 -0.0818 +vn 0.1887 0.9489 -0.2531 +vn 0.1944 0.9775 -0.0818 +vn 0.1709 0.8589 -0.4827 +vn 0.2542 0.8381 -0.4827 +vn 0.0948 0.9628 -0.2531 +vn 0.0977 0.9919 -0.0818 +vn 0.0858 0.8716 -0.4827 +vn -0.0582 0.5907 -0.8048 +vn 0.0000 0.5936 -0.8048 +vn 0.0000 0.5912 -0.8065 +vn -0.0580 0.5884 -0.8065 +vn -0.1158 0.5822 -0.8048 +vn -0.1153 0.5798 -0.8066 +vn -0.1271 0.6391 -0.7586 +vn -0.0639 0.6485 -0.7586 +vn -0.0001 0.6516 -0.7586 +vn -0.1723 0.5680 -0.8048 +vn -0.1716 0.5657 -0.8066 +vn -0.2271 0.5484 -0.8048 +vn -0.2262 0.5462 -0.8065 +vn -0.2494 0.6020 -0.7586 +vn -0.1891 0.6235 -0.7586 +vn -0.2798 0.5235 -0.8048 +vn -0.2787 0.5214 -0.8065 +vn -0.3298 0.4935 -0.8048 +vn -0.3285 0.4916 -0.8065 +vn -0.3620 0.5418 -0.7586 +vn -0.3071 0.5747 -0.7586 +vn -0.3766 0.4588 -0.8048 +vn -0.3751 0.4570 -0.8065 +vn -0.4197 0.4197 -0.8048 +vn -0.4180 0.4180 -0.8066 +vn -0.4608 0.4608 -0.7586 +vn -0.4134 0.5037 -0.7586 +vn -0.4588 0.3766 -0.8048 +vn -0.4570 0.3751 -0.8065 +vn -0.4935 0.3298 -0.8048 +vn -0.4916 0.3285 -0.8065 +vn -0.5418 0.3620 -0.7586 +vn -0.5037 0.4134 -0.7586 +vn -0.5235 0.2798 -0.8048 +vn -0.5214 0.2787 -0.8065 +vn -0.5484 0.2271 -0.8048 +vn -0.5462 0.2262 -0.8065 +vn -0.6020 0.2494 -0.7586 +vn -0.5747 0.3072 -0.7586 +vn -0.5680 0.1723 -0.8048 +vn -0.5657 0.1716 -0.8066 +vn -0.5822 0.1158 -0.8048 +vn -0.5798 0.1153 -0.8066 +vn -0.6391 0.1271 -0.7586 +vn -0.6235 0.1892 -0.7586 +vn -0.5907 0.0582 -0.8048 +vn -0.5884 0.0580 -0.8065 +vn -0.5936 -0.0000 -0.8048 +vn -0.5912 -0.0000 -0.8065 +vn -0.6516 -0.0000 -0.7586 +vn -0.6485 0.0639 -0.7586 +vn -0.5907 -0.0582 -0.8048 +vn -0.5884 -0.0580 -0.8065 +vn -0.5822 -0.1158 -0.8048 +vn -0.5798 -0.1153 -0.8066 +vn -0.6391 -0.1271 -0.7586 +vn -0.6485 -0.0639 -0.7586 +vn -0.5680 -0.1723 -0.8048 +vn -0.5657 -0.1716 -0.8066 +vn -0.5484 -0.2271 -0.8048 +vn -0.5462 -0.2262 -0.8065 +vn -0.6020 -0.2494 -0.7586 +vn -0.6235 -0.1892 -0.7586 +vn -0.5235 -0.2798 -0.8048 +vn -0.5214 -0.2787 -0.8065 +vn -0.4935 -0.3298 -0.8048 +vn -0.4916 -0.3285 -0.8065 +vn -0.5418 -0.3620 -0.7586 +vn -0.5746 -0.3072 -0.7586 +vn -0.4588 -0.3766 -0.8048 +vn -0.4570 -0.3751 -0.8065 +vn -0.4197 -0.4197 -0.8048 +vn -0.4180 -0.4180 -0.8066 +vn -0.4608 -0.4608 -0.7586 +vn -0.5037 -0.4134 -0.7586 +vn -0.3766 -0.4588 -0.8048 +vn -0.3751 -0.4570 -0.8065 +vn -0.3298 -0.4935 -0.8048 +vn -0.3285 -0.4916 -0.8065 +vn -0.3620 -0.5418 -0.7586 +vn -0.4134 -0.5037 -0.7586 +vn -0.2798 -0.5235 -0.8048 +vn -0.2787 -0.5214 -0.8065 +vn -0.2271 -0.5484 -0.8048 +vn -0.2262 -0.5462 -0.8065 +vn -0.2494 -0.6020 -0.7586 +vn -0.3072 -0.5746 -0.7586 +vn -0.1723 -0.5680 -0.8048 +vn -0.1716 -0.5657 -0.8066 +vn -0.1158 -0.5822 -0.8048 +vn -0.1153 -0.5798 -0.8066 +vn -0.1271 -0.6391 -0.7586 +vn -0.1891 -0.6235 -0.7586 +vn -0.0582 -0.5907 -0.8048 +vn -0.0580 -0.5884 -0.8065 +vn 0.0000 -0.5936 -0.8048 +vn 0.0000 -0.5912 -0.8065 +vn 0.0000 -0.6516 -0.7586 +vn -0.0639 -0.6485 -0.7586 +vn 0.0582 -0.5907 -0.8048 +vn 0.0580 -0.5884 -0.8065 +vn 0.1158 -0.5822 -0.8048 +vn 0.1153 -0.5798 -0.8066 +vn 0.1271 -0.6391 -0.7586 +vn 0.0640 -0.6485 -0.7586 +vn 0.1723 -0.5680 -0.8048 +vn 0.1716 -0.5657 -0.8066 +vn 0.2271 -0.5484 -0.8048 +vn 0.2262 -0.5462 -0.8065 +vn 0.2494 -0.6020 -0.7586 +vn 0.1891 -0.6235 -0.7586 +vn 0.2798 -0.5235 -0.8048 +vn 0.2787 -0.5214 -0.8065 +vn 0.3298 -0.4935 -0.8048 +vn 0.3285 -0.4916 -0.8065 +vn 0.3620 -0.5418 -0.7586 +vn 0.3073 -0.5746 -0.7586 +vn 0.3766 -0.4588 -0.8048 +vn 0.3751 -0.4570 -0.8065 +vn 0.4197 -0.4197 -0.8048 +vn 0.4180 -0.4180 -0.8066 +vn 0.4608 -0.4608 -0.7586 +vn 0.4134 -0.5037 -0.7586 +vn 0.4588 -0.3766 -0.8048 +vn 0.4570 -0.3751 -0.8065 +vn 0.4935 -0.3298 -0.8048 +vn 0.4916 -0.3285 -0.8065 +vn 0.5418 -0.3620 -0.7586 +vn 0.5036 -0.4134 -0.7586 +vn 0.5235 -0.2798 -0.8048 +vn 0.5214 -0.2787 -0.8065 +vn 0.5484 -0.2271 -0.8048 +vn 0.5462 -0.2262 -0.8065 +vn 0.6020 -0.2494 -0.7586 +vn 0.5747 -0.3072 -0.7586 +vn 0.5680 -0.1723 -0.8048 +vn 0.5657 -0.1716 -0.8066 +vn 0.5822 -0.1158 -0.8048 +vn 0.5798 -0.1153 -0.8066 +vn 0.6391 -0.1271 -0.7586 +vn 0.6235 -0.1891 -0.7586 +vn 0.5907 -0.0582 -0.8048 +vn 0.5884 -0.0580 -0.8065 +vn 0.5936 0.0000 -0.8048 +vn 0.5912 0.0000 -0.8065 +vn 0.6516 0.0000 -0.7586 +vn 0.6485 -0.0639 -0.7586 +vn 0.5907 0.0582 -0.8048 +vn 0.5884 0.0580 -0.8065 +vn 0.5822 0.1158 -0.8048 +vn 0.5798 0.1153 -0.8066 +vn 0.6391 0.1271 -0.7586 +vn 0.6485 0.0639 -0.7586 +vn 0.5680 0.1723 -0.8048 +vn 0.5657 0.1716 -0.8066 +vn 0.5484 0.2271 -0.8048 +vn 0.5462 0.2262 -0.8065 +vn 0.6020 0.2494 -0.7586 +vn 0.6235 0.1892 -0.7586 +vn 0.5235 0.2798 -0.8048 +vn 0.5214 0.2787 -0.8065 +vn 0.4935 0.3298 -0.8048 +vn 0.4916 0.3285 -0.8065 +vn 0.5418 0.3620 -0.7586 +vn 0.5747 0.3072 -0.7586 +vn 0.4588 0.3766 -0.8048 +vn 0.4570 0.3751 -0.8065 +vn 0.4197 0.4197 -0.8048 +vn 0.4180 0.4180 -0.8065 +vn 0.4608 0.4608 -0.7585 +vn 0.5037 0.4134 -0.7586 +vn 0.3766 0.4588 -0.8048 +vn 0.3751 0.4570 -0.8065 +vn 0.3298 0.4935 -0.8048 +vn 0.3285 0.4916 -0.8065 +vn 0.3620 0.5418 -0.7586 +vn 0.4134 0.5036 -0.7586 +vn 0.2798 0.5235 -0.8048 +vn 0.2787 0.5214 -0.8065 +vn 0.2271 0.5484 -0.8048 +vn 0.2262 0.5462 -0.8065 +vn 0.2494 0.6020 -0.7586 +vn 0.3072 0.5746 -0.7586 +vn 0.1723 0.5680 -0.8048 +vn 0.1716 0.5657 -0.8066 +vn 0.1158 0.5822 -0.8048 +vn 0.1153 0.5798 -0.8066 +vn 0.1271 0.6391 -0.7586 +vn 0.1891 0.6235 -0.7586 +vn 0.0582 0.5907 -0.8048 +vn 0.0579 0.5884 -0.8065 +vn 0.0639 0.6485 -0.7586 +vn -0.0786 0.7985 -0.5968 +vn 0.0000 0.8024 -0.5968 +vn -0.1565 0.7870 -0.5968 +vn -0.1793 0.9014 -0.3941 +vn -0.0901 0.9146 -0.3941 +vn -0.0001 0.9191 -0.3941 +vn -0.2329 0.7679 -0.5968 +vn -0.3071 0.7413 -0.5968 +vn -0.3517 0.8491 -0.3941 +vn -0.2668 0.8795 -0.3941 +vn -0.3783 0.7077 -0.5968 +vn -0.4458 0.6672 -0.5968 +vn -0.5106 0.7642 -0.3941 +vn -0.4332 0.8106 -0.3941 +vn -0.5090 0.6203 -0.5968 +vn -0.5674 0.5674 -0.5968 +vn -0.6499 0.6499 -0.3941 +vn -0.5830 0.7105 -0.3941 +vn -0.6203 0.5090 -0.5968 +vn -0.6672 0.4458 -0.5968 +vn -0.7642 0.5106 -0.3941 +vn -0.7105 0.5830 -0.3941 +vn -0.7077 0.3783 -0.5968 +vn -0.7413 0.3071 -0.5968 +vn -0.8491 0.3517 -0.3941 +vn -0.8105 0.4332 -0.3941 +vn -0.7679 0.2329 -0.5968 +vn -0.7870 0.1565 -0.5968 +vn -0.9014 0.1793 -0.3941 +vn -0.8795 0.2668 -0.3941 +vn -0.7985 0.0787 -0.5968 +vn -0.8024 0.0000 -0.5968 +vn -0.9191 0.0000 -0.3941 +vn -0.9146 0.0901 -0.3941 +vn -0.7985 -0.0787 -0.5968 +vn -0.7870 -0.1565 -0.5968 +vn -0.9014 -0.1793 -0.3941 +vn -0.9146 -0.0901 -0.3941 +vn -0.7679 -0.2329 -0.5968 +vn -0.7413 -0.3071 -0.5968 +vn -0.8491 -0.3517 -0.3941 +vn -0.8795 -0.2668 -0.3941 +vn -0.7077 -0.3783 -0.5968 +vn -0.6672 -0.4458 -0.5968 +vn -0.7642 -0.5106 -0.3941 +vn -0.8106 -0.4332 -0.3941 +vn -0.6203 -0.5090 -0.5968 +vn -0.5674 -0.5674 -0.5968 +vn -0.6499 -0.6499 -0.3941 +vn -0.7105 -0.5830 -0.3941 +vn -0.5090 -0.6203 -0.5968 +vn -0.4458 -0.6672 -0.5968 +vn -0.5106 -0.7642 -0.3941 +vn -0.5831 -0.7104 -0.3941 +vn -0.3783 -0.7076 -0.5968 +vn -0.3071 -0.7413 -0.5968 +vn -0.3517 -0.8491 -0.3941 +vn -0.4332 -0.8105 -0.3941 +vn -0.2329 -0.7679 -0.5968 +vn -0.1565 -0.7870 -0.5968 +vn -0.1793 -0.9014 -0.3941 +vn -0.2668 -0.8795 -0.3941 +vn -0.0786 -0.7985 -0.5968 +vn -0.0000 -0.8024 -0.5968 +vn -0.0000 -0.9191 -0.3941 +vn -0.0901 -0.9146 -0.3941 +vn 0.0787 -0.7985 -0.5968 +vn 0.1565 -0.7870 -0.5968 +vn 0.1793 -0.9014 -0.3941 +vn 0.0901 -0.9146 -0.3941 +vn 0.2329 -0.7679 -0.5968 +vn 0.3071 -0.7413 -0.5968 +vn 0.3517 -0.8491 -0.3941 +vn 0.2668 -0.8795 -0.3941 +vn 0.3783 -0.7077 -0.5968 +vn 0.4458 -0.6672 -0.5968 +vn 0.5106 -0.7642 -0.3941 +vn 0.4332 -0.8105 -0.3941 +vn 0.5090 -0.6203 -0.5968 +vn 0.5674 -0.5674 -0.5968 +vn 0.6499 -0.6499 -0.3941 +vn 0.5830 -0.7105 -0.3941 +vn 0.6203 -0.5090 -0.5968 +vn 0.6672 -0.4458 -0.5968 +vn 0.7642 -0.5106 -0.3941 +vn 0.7104 -0.5830 -0.3941 +vn 0.7077 -0.3783 -0.5968 +vn 0.7413 -0.3071 -0.5968 +vn 0.8491 -0.3517 -0.3941 +vn 0.8105 -0.4333 -0.3941 +vn 0.7679 -0.2329 -0.5968 +vn 0.7870 -0.1565 -0.5968 +vn 0.9014 -0.1793 -0.3941 +vn 0.8795 -0.2668 -0.3941 +vn 0.7985 -0.0786 -0.5968 +vn 0.8024 -0.0000 -0.5968 +vn 0.9191 -0.0000 -0.3941 +vn 0.9146 -0.0901 -0.3941 +vn 0.7985 0.0787 -0.5968 +vn 0.7870 0.1565 -0.5968 +vn 0.9014 0.1793 -0.3941 +vn 0.9146 0.0901 -0.3941 +vn 0.7679 0.2329 -0.5968 +vn 0.7413 0.3071 -0.5968 +vn 0.8491 0.3517 -0.3941 +vn 0.8795 0.2668 -0.3941 +vn 0.7077 0.3783 -0.5968 +vn 0.6672 0.4458 -0.5968 +vn 0.7642 0.5106 -0.3941 +vn 0.8106 0.4332 -0.3941 +vn 0.6203 0.5090 -0.5968 +vn 0.5674 0.5674 -0.5968 +vn 0.6499 0.6499 -0.3941 +vn 0.7105 0.5830 -0.3941 +vn 0.5090 0.6203 -0.5968 +vn 0.4458 0.6672 -0.5968 +vn 0.5106 0.7642 -0.3941 +vn 0.5830 0.7104 -0.3941 +vn 0.3783 0.7076 -0.5968 +vn 0.3071 0.7413 -0.5968 +vn 0.3517 0.8491 -0.3941 +vn 0.4333 0.8105 -0.3941 +vn 0.2329 0.7679 -0.5968 +vn 0.1565 0.7870 -0.5968 +vn 0.1793 0.9014 -0.3941 +vn 0.2668 0.8795 -0.3941 +vn 0.0786 0.7985 -0.5968 +vn 0.0901 0.9146 -0.3941 +vn -0.0919 0.9333 0.3472 +vn 0.0000 0.9378 0.3472 +vn 0.0000 0.9982 -0.0608 +vn -0.0978 0.9933 -0.0608 +vn -0.1830 0.9198 0.3472 +vn -0.1947 0.9790 -0.0608 +vn -0.2722 0.8974 0.3472 +vn -0.2897 0.9552 -0.0608 +vn -0.3589 0.8664 0.3472 +vn -0.3820 0.9222 -0.0608 +vn -0.4421 0.8270 0.3472 +vn -0.4705 0.8803 -0.0608 +vn -0.5210 0.7797 0.3472 +vn -0.5545 0.8299 -0.0608 +vn -0.5949 0.7249 0.3472 +vn -0.6332 0.7716 -0.0608 +vn -0.6631 0.6631 0.3472 +vn -0.7058 0.7058 -0.0608 +vn -0.7249 0.5949 0.3472 +vn -0.7716 0.6332 -0.0608 +vn -0.7797 0.5210 0.3472 +vn -0.8299 0.5545 -0.0608 +vn -0.8270 0.4421 0.3472 +vn -0.8803 0.4705 -0.0608 +vn -0.8664 0.3589 0.3472 +vn -0.9222 0.3820 -0.0608 +vn -0.8974 0.2722 0.3472 +vn -0.9552 0.2897 -0.0608 +vn -0.9198 0.1830 0.3472 +vn -0.9790 0.1947 -0.0608 +vn -0.9333 0.0919 0.3472 +vn -0.9933 0.0978 -0.0608 +vn -0.9378 -0.0000 0.3472 +vn -0.9982 -0.0000 -0.0608 +vn -0.9333 -0.0919 0.3472 +vn -0.9933 -0.0978 -0.0608 +vn -0.9198 -0.1830 0.3472 +vn -0.9790 -0.1947 -0.0608 +vn -0.8974 -0.2722 0.3472 +vn -0.9552 -0.2897 -0.0608 +vn -0.8664 -0.3589 0.3472 +vn -0.9222 -0.3820 -0.0608 +vn -0.8270 -0.4421 0.3472 +vn -0.8803 -0.4705 -0.0608 +vn -0.7797 -0.5210 0.3472 +vn -0.8299 -0.5545 -0.0608 +vn -0.7249 -0.5949 0.3472 +vn -0.7716 -0.6332 -0.0608 +vn -0.6631 -0.6631 0.3472 +vn -0.7058 -0.7058 -0.0608 +vn -0.5949 -0.7249 0.3472 +vn -0.6332 -0.7716 -0.0608 +vn -0.5210 -0.7797 0.3472 +vn -0.5545 -0.8299 -0.0608 +vn -0.4421 -0.8270 0.3472 +vn -0.4705 -0.8803 -0.0608 +vn -0.3589 -0.8664 0.3472 +vn -0.3820 -0.9222 -0.0608 +vn -0.2722 -0.8974 0.3472 +vn -0.2897 -0.9552 -0.0608 +vn -0.1830 -0.9198 0.3472 +vn -0.1947 -0.9790 -0.0608 +vn -0.0919 -0.9333 0.3472 +vn -0.0978 -0.9933 -0.0608 +vn 0.0000 -0.9378 0.3472 +vn -0.0000 -0.9981 -0.0608 +vn 0.0919 -0.9333 0.3472 +vn 0.0978 -0.9933 -0.0608 +vn 0.1830 -0.9198 0.3472 +vn 0.1947 -0.9790 -0.0608 +vn 0.2722 -0.8974 0.3472 +vn 0.2897 -0.9552 -0.0608 +vn 0.3589 -0.8664 0.3472 +vn 0.3820 -0.9222 -0.0608 +vn 0.4421 -0.8270 0.3472 +vn 0.4705 -0.8803 -0.0608 +vn 0.5210 -0.7797 0.3472 +vn 0.5545 -0.8299 -0.0608 +vn 0.5949 -0.7249 0.3472 +vn 0.6332 -0.7716 -0.0608 +vn 0.6631 -0.6631 0.3472 +vn 0.7058 -0.7058 -0.0608 +vn 0.7249 -0.5949 0.3472 +vn 0.7716 -0.6332 -0.0608 +vn 0.7797 -0.5210 0.3472 +vn 0.8299 -0.5545 -0.0608 +vn 0.8270 -0.4421 0.3472 +vn 0.8803 -0.4705 -0.0608 +vn 0.8664 -0.3589 0.3472 +vn 0.9222 -0.3820 -0.0608 +vn 0.8974 -0.2722 0.3472 +vn 0.9552 -0.2897 -0.0608 +vn 0.9198 -0.1830 0.3472 +vn 0.9790 -0.1947 -0.0608 +vn 0.9333 -0.0919 0.3472 +vn 0.9933 -0.0978 -0.0608 +vn 0.9378 0.0000 0.3472 +vn 0.9982 0.0000 -0.0608 +vn 0.9333 0.0919 0.3472 +vn 0.9933 0.0978 -0.0608 +vn 0.9198 0.1830 0.3472 +vn 0.9790 0.1947 -0.0608 +vn 0.8974 0.2722 0.3472 +vn 0.9552 0.2897 -0.0608 +vn 0.8664 0.3589 0.3472 +vn 0.9222 0.3820 -0.0608 +vn 0.8270 0.4421 0.3472 +vn 0.8803 0.4705 -0.0608 +vn 0.7797 0.5210 0.3472 +vn 0.8299 0.5545 -0.0608 +vn 0.7249 0.5949 0.3472 +vn 0.7716 0.6332 -0.0608 +vn 0.6631 0.6631 0.3472 +vn 0.7058 0.7058 -0.0608 +vn 0.5949 0.7249 0.3472 +vn 0.6332 0.7716 -0.0608 +vn 0.5210 0.7797 0.3472 +vn 0.5545 0.8299 -0.0608 +vn 0.4421 0.8270 0.3472 +vn 0.4705 0.8803 -0.0608 +vn 0.3589 0.8664 0.3472 +vn 0.3820 0.9222 -0.0608 +vn 0.2722 0.8974 0.3472 +vn 0.2897 0.9552 -0.0608 +vn 0.1830 0.9198 0.3472 +vn 0.1947 0.9790 -0.0608 +vn 0.0919 0.9333 0.3472 +vn 0.0978 0.9933 -0.0608 +vn -0.0739 0.7500 -0.6573 +vn -0.1470 0.7392 -0.6573 +vn -0.0648 0.6585 -0.7498 +vn -0.1291 0.6489 -0.7498 +vn 0.0000 0.6617 -0.7498 +vn -0.0000 0.7536 -0.6573 +vn -0.2187 0.7212 -0.6573 +vn -0.2884 0.6963 -0.6573 +vn -0.1921 0.6332 -0.7498 +vn -0.2532 0.6113 -0.7498 +vn -0.3553 0.6647 -0.6573 +vn -0.4187 0.6266 -0.6573 +vn -0.3120 0.5835 -0.7498 +vn -0.3676 0.5502 -0.7498 +vn -0.4781 0.5826 -0.6573 +vn -0.5329 0.5329 -0.6573 +vn -0.4198 0.5115 -0.7498 +vn -0.4679 0.4679 -0.7498 +vn -0.5826 0.4781 -0.6573 +vn -0.6266 0.4187 -0.6573 +vn -0.5115 0.4198 -0.7498 +vn -0.5501 0.3676 -0.7498 +vn -0.6646 0.3553 -0.6573 +vn -0.6963 0.2884 -0.6573 +vn -0.5835 0.3120 -0.7498 +vn -0.6113 0.2532 -0.7498 +vn -0.7212 0.2188 -0.6573 +vn -0.7392 0.1470 -0.6573 +vn -0.6332 0.1921 -0.7498 +vn -0.6489 0.1291 -0.7498 +vn -0.7500 0.0739 -0.6573 +vn -0.7536 0.0000 -0.6573 +vn -0.6585 0.0649 -0.7498 +vn -0.6617 0.0000 -0.7498 +vn -0.7500 -0.0739 -0.6573 +vn -0.7392 -0.1470 -0.6573 +vn -0.6585 -0.0650 -0.7498 +vn -0.6489 -0.1291 -0.7498 +vn -0.7212 -0.2188 -0.6573 +vn -0.6963 -0.2884 -0.6573 +vn -0.6332 -0.1921 -0.7498 +vn -0.6113 -0.2532 -0.7498 +vn -0.6647 -0.3553 -0.6573 +vn -0.6266 -0.4187 -0.6573 +vn -0.5835 -0.3119 -0.7498 +vn -0.5502 -0.3676 -0.7498 +vn -0.5826 -0.4781 -0.6573 +vn -0.5329 -0.5329 -0.6573 +vn -0.5115 -0.4198 -0.7498 +vn -0.4679 -0.4679 -0.7498 +vn -0.4781 -0.5826 -0.6573 +vn -0.4187 -0.6266 -0.6573 +vn -0.4198 -0.5115 -0.7498 +vn -0.3676 -0.5501 -0.7498 +vn -0.3553 -0.6647 -0.6573 +vn -0.2884 -0.6963 -0.6573 +vn -0.3119 -0.5835 -0.7498 +vn -0.2532 -0.6113 -0.7498 +vn -0.2188 -0.7212 -0.6573 +vn -0.1470 -0.7392 -0.6573 +vn -0.1922 -0.6332 -0.7498 +vn -0.1291 -0.6489 -0.7498 +vn -0.0739 -0.7500 -0.6573 +vn -0.0000 -0.7536 -0.6573 +vn -0.0649 -0.6585 -0.7498 +vn -0.0000 -0.6617 -0.7498 +vn 0.0738 -0.7500 -0.6573 +vn 0.1470 -0.7392 -0.6573 +vn 0.0649 -0.6585 -0.7498 +vn 0.1291 -0.6489 -0.7498 +vn 0.2188 -0.7212 -0.6573 +vn 0.2884 -0.6963 -0.6573 +vn 0.1921 -0.6332 -0.7498 +vn 0.2532 -0.6113 -0.7498 +vn 0.3553 -0.6646 -0.6573 +vn 0.4187 -0.6266 -0.6573 +vn 0.3119 -0.5835 -0.7498 +vn 0.3676 -0.5501 -0.7498 +vn 0.4781 -0.5826 -0.6573 +vn 0.5329 -0.5329 -0.6573 +vn 0.4198 -0.5115 -0.7498 +vn 0.4679 -0.4679 -0.7498 +vn 0.5826 -0.4781 -0.6573 +vn 0.6266 -0.4187 -0.6573 +vn 0.5115 -0.4198 -0.7498 +vn 0.5502 -0.3676 -0.7498 +vn 0.6647 -0.3553 -0.6573 +vn 0.6963 -0.2884 -0.6573 +vn 0.5835 -0.3119 -0.7498 +vn 0.6113 -0.2532 -0.7498 +vn 0.7212 -0.2188 -0.6573 +vn 0.7392 -0.1470 -0.6573 +vn 0.6332 -0.1921 -0.7498 +vn 0.6489 -0.1291 -0.7498 +vn 0.7500 -0.0739 -0.6573 +vn 0.7536 -0.0000 -0.6573 +vn 0.6585 -0.0649 -0.7498 +vn 0.6617 -0.0000 -0.7498 +vn 0.7500 0.0738 -0.6573 +vn 0.7392 0.1470 -0.6573 +vn 0.6585 0.0650 -0.7498 +vn 0.6489 0.1291 -0.7498 +vn 0.7212 0.2188 -0.6573 +vn 0.6963 0.2884 -0.6573 +vn 0.6332 0.1921 -0.7498 +vn 0.6113 0.2532 -0.7498 +vn 0.6647 0.3553 -0.6573 +vn 0.6266 0.4187 -0.6573 +vn 0.5835 0.3119 -0.7498 +vn 0.5501 0.3676 -0.7498 +vn 0.5826 0.4781 -0.6573 +vn 0.5329 0.5329 -0.6573 +vn 0.5115 0.4198 -0.7498 +vn 0.4679 0.4679 -0.7498 +vn 0.4781 0.5826 -0.6573 +vn 0.4187 0.6266 -0.6573 +vn 0.4198 0.5115 -0.7498 +vn 0.3676 0.5502 -0.7498 +vn 0.3553 0.6647 -0.6573 +vn 0.2884 0.6963 -0.6573 +vn 0.3119 0.5835 -0.7498 +vn 0.2532 0.6113 -0.7498 +vn 0.2188 0.7212 -0.6573 +vn 0.1470 0.7392 -0.6573 +vn 0.1921 0.6332 -0.7498 +vn 0.1291 0.6489 -0.7498 +vn 0.0739 0.7500 -0.6573 +vn 0.0650 0.6585 -0.7498 +vn -0.0600 0.6094 -0.7906 +vn -0.1195 0.6006 -0.7906 +vn -0.0000 0.6124 -0.7906 +vn -0.1778 0.5860 -0.7906 +vn -0.2343 0.5658 -0.7906 +vn -0.2887 0.5401 -0.7906 +vn -0.3402 0.5092 -0.7906 +vn -0.3885 0.4734 -0.7906 +vn -0.4330 0.4330 -0.7906 +vn -0.4734 0.3885 -0.7906 +vn -0.5092 0.3402 -0.7906 +vn -0.5401 0.2887 -0.7906 +vn -0.5658 0.2343 -0.7906 +vn -0.5860 0.1778 -0.7906 +vn -0.6006 0.1195 -0.7906 +vn -0.6094 0.0600 -0.7906 +vn -0.6124 0.0000 -0.7906 +vn -0.6094 -0.0600 -0.7906 +vn -0.6006 -0.1195 -0.7906 +vn -0.5860 -0.1777 -0.7906 +vn -0.5658 -0.2343 -0.7906 +vn -0.5401 -0.2887 -0.7906 +vn -0.5092 -0.3402 -0.7906 +vn -0.4734 -0.3885 -0.7906 +vn -0.4330 -0.4330 -0.7906 +vn -0.3885 -0.4734 -0.7906 +vn -0.3402 -0.5092 -0.7906 +vn -0.2887 -0.5401 -0.7906 +vn -0.2343 -0.5658 -0.7906 +vn -0.1778 -0.5860 -0.7906 +vn -0.1195 -0.6006 -0.7906 +vn -0.0600 -0.6094 -0.7906 +vn -0.0000 -0.6124 -0.7906 +vn 0.0600 -0.6094 -0.7906 +vn 0.1195 -0.6006 -0.7906 +vn 0.1777 -0.5860 -0.7906 +vn 0.2343 -0.5658 -0.7906 +vn 0.2887 -0.5401 -0.7906 +vn 0.3402 -0.5092 -0.7906 +vn 0.3885 -0.4734 -0.7906 +vn 0.4330 -0.4330 -0.7906 +vn 0.4734 -0.3885 -0.7906 +vn 0.5092 -0.3402 -0.7906 +vn 0.5401 -0.2887 -0.7906 +vn 0.5658 -0.2343 -0.7906 +vn 0.5860 -0.1778 -0.7906 +vn 0.6006 -0.1195 -0.7906 +vn 0.6094 -0.0600 -0.7906 +vn 0.6124 -0.0000 -0.7906 +vn 0.6094 0.0600 -0.7906 +vn 0.6006 0.1195 -0.7906 +vn 0.5860 0.1777 -0.7906 +vn 0.5658 0.2343 -0.7906 +vn 0.5401 0.2887 -0.7906 +vn 0.5092 0.3402 -0.7906 +vn 0.4734 0.3885 -0.7906 +vn 0.4330 0.4330 -0.7906 +vn 0.3885 0.4734 -0.7906 +vn 0.3402 0.5092 -0.7906 +vn 0.2887 0.5401 -0.7906 +vn 0.2343 0.5658 -0.7906 +vn 0.1778 0.5860 -0.7906 +vn 0.1195 0.6006 -0.7906 +vn 0.0600 0.6094 -0.7906 +vn -0.0980 0.9951 -0.0145 +vn -0.1951 0.9807 -0.0146 +vn 0.0000 0.9999 -0.0145 +vn -0.2903 0.9568 -0.0145 +vn -0.3826 0.9238 -0.0145 +vn -0.4713 0.8818 -0.0145 +vn -0.5555 0.8314 -0.0145 +vn -0.6343 0.7729 -0.0145 +vn -0.7070 0.7070 -0.0145 +vn -0.7729 0.6343 -0.0145 +vn -0.8314 0.5555 -0.0145 +vn -0.8818 0.4713 -0.0145 +vn -0.9238 0.3826 -0.0145 +vn -0.9568 0.2903 -0.0145 +vn -0.9807 0.1951 -0.0145 +vn -0.9951 0.0980 -0.0145 +vn -0.9999 -0.0000 -0.0145 +vn -0.9951 -0.0980 -0.0145 +vn -0.9807 -0.1951 -0.0145 +vn -0.9568 -0.2903 -0.0145 +vn -0.9238 -0.3826 -0.0145 +vn -0.8818 -0.4713 -0.0145 +vn -0.8314 -0.5555 -0.0145 +vn -0.7729 -0.6343 -0.0145 +vn -0.7070 -0.7070 -0.0145 +vn -0.6343 -0.7729 -0.0145 +vn -0.5555 -0.8314 -0.0145 +vn -0.4713 -0.8818 -0.0145 +vn -0.3826 -0.9238 -0.0145 +vn -0.2903 -0.9568 -0.0145 +vn -0.1951 -0.9807 -0.0146 +vn -0.0980 -0.9951 -0.0145 +vn 0.0000 -0.9999 -0.0145 +vn 0.0980 -0.9951 -0.0145 +vn 0.1951 -0.9807 -0.0146 +vn 0.2903 -0.9568 -0.0145 +vn 0.3826 -0.9238 -0.0145 +vn 0.4713 -0.8818 -0.0145 +vn 0.5555 -0.8314 -0.0145 +vn 0.6343 -0.7729 -0.0145 +vn 0.7070 -0.7070 -0.0145 +vn 0.7729 -0.6343 -0.0145 +vn 0.8314 -0.5555 -0.0145 +vn 0.8818 -0.4713 -0.0145 +vn 0.9238 -0.3826 -0.0145 +vn 0.9568 -0.2903 -0.0145 +vn 0.9807 -0.1951 -0.0145 +vn 0.9951 -0.0980 -0.0145 +vn 0.9999 0.0000 -0.0145 +vn 0.9951 0.0980 -0.0145 +vn 0.9807 0.1951 -0.0145 +vn 0.9568 0.2903 -0.0145 +vn 0.9238 0.3826 -0.0145 +vn 0.8818 0.4713 -0.0145 +vn 0.8314 0.5555 -0.0145 +vn 0.7729 0.6343 -0.0145 +vn 0.7070 0.7070 -0.0145 +vn 0.6343 0.7729 -0.0145 +vn 0.5555 0.8314 -0.0145 +vn 0.4713 0.8818 -0.0145 +vn 0.3826 0.9238 -0.0145 +vn 0.2903 0.9568 -0.0145 +vn 0.1951 0.9807 -0.0145 +vn 0.0980 0.9951 -0.0145 +vn -0.0959 0.9736 -0.2070 +vn -0.1909 0.9595 -0.2070 +vn -0.0000 0.9783 -0.2070 +vn -0.2840 0.9362 -0.2070 +vn -0.3744 0.9039 -0.2070 +vn -0.4612 0.8628 -0.2070 +vn -0.5435 0.8135 -0.2070 +vn -0.6207 0.7563 -0.2070 +vn -0.6918 0.6918 -0.2070 +vn -0.7563 0.6206 -0.2070 +vn -0.8135 0.5435 -0.2070 +vn -0.8628 0.4612 -0.2070 +vn -0.9039 0.3744 -0.2070 +vn -0.9362 0.2840 -0.2070 +vn -0.9595 0.1909 -0.2070 +vn -0.9736 0.0959 -0.2070 +vn -0.9783 0.0000 -0.2070 +vn -0.9736 -0.0959 -0.2070 +vn -0.9595 -0.1909 -0.2070 +vn -0.9362 -0.2840 -0.2070 +vn -0.9039 -0.3744 -0.2070 +vn -0.8628 -0.4612 -0.2070 +vn -0.8135 -0.5435 -0.2070 +vn -0.7563 -0.6207 -0.2070 +vn -0.6918 -0.6918 -0.2070 +vn -0.6207 -0.7563 -0.2070 +vn -0.5435 -0.8135 -0.2070 +vn -0.4612 -0.8628 -0.2070 +vn -0.3744 -0.9039 -0.2070 +vn -0.2840 -0.9362 -0.2070 +vn -0.1909 -0.9595 -0.2070 +vn -0.0959 -0.9736 -0.2070 +vn -0.0000 -0.9783 -0.2070 +vn 0.0959 -0.9736 -0.2070 +vn 0.1909 -0.9595 -0.2070 +vn 0.2840 -0.9362 -0.2070 +vn 0.3744 -0.9039 -0.2070 +vn 0.4612 -0.8628 -0.2070 +vn 0.5435 -0.8135 -0.2070 +vn 0.6207 -0.7563 -0.2070 +vn 0.6918 -0.6918 -0.2070 +vn 0.7563 -0.6207 -0.2070 +vn 0.8135 -0.5435 -0.2070 +vn 0.8628 -0.4612 -0.2070 +vn 0.9039 -0.3744 -0.2070 +vn 0.9362 -0.2840 -0.2070 +vn 0.9595 -0.1909 -0.2070 +vn 0.9736 -0.0959 -0.2070 +vn 0.9783 -0.0000 -0.2070 +vn 0.9736 0.0959 -0.2070 +vn 0.9595 0.1909 -0.2070 +vn 0.9362 0.2840 -0.2070 +vn 0.9039 0.3744 -0.2070 +vn 0.8628 0.4612 -0.2070 +vn 0.8135 0.5435 -0.2070 +vn 0.7563 0.6207 -0.2070 +vn 0.6918 0.6918 -0.2070 +vn 0.6206 0.7563 -0.2070 +vn 0.5435 0.8135 -0.2070 +vn 0.4612 0.8628 -0.2070 +vn 0.3744 0.9039 -0.2070 +vn 0.2840 0.9362 -0.2070 +vn 0.1909 0.9595 -0.2070 +vn 0.0959 0.9736 -0.2070 +s 1 +f 1//1 2//1 3//1 4//1 +f 5//2 6//3 2//4 1//5 +f 2//4 7//6 8//7 3//8 +f 2//4 6//3 9//9 7//6 +f 10//10 11//11 12//12 13//13 +f 13//13 12//12 14//14 15//15 +f 5//2 10//10 13//13 6//3 +f 6//3 13//13 15//15 9//9 +f 16//16 17//17 18//18 19//19 +f 17//17 20//20 21//21 18//18 +f 19//19 18//18 15//15 14//14 +f 18//18 21//21 9//9 15//15 +f 22//22 23//23 24//24 25//25 +f 25//25 24//24 8//7 7//6 +f 20//20 22//22 25//25 21//21 +f 21//21 25//25 7//6 9//9 +f 26//26 27//27 28//28 29//29 +f 30//30 31//31 27//27 26//26 +f 28//28 27//27 32//32 33//33 +f 31//31 34//34 32//32 27//27 +f 35//35 36//36 37//37 38//38 +f 36//36 39//39 40//40 37//37 +f 38//38 37//37 31//31 30//30 +f 37//37 40//40 34//34 31//31 +f 41//41 42//42 43//43 44//44 +f 45//45 46//46 42//42 41//41 +f 42//42 40//40 39//39 43//43 +f 46//46 34//34 40//40 42//42 +f 47//47 48//48 49//49 50//50 +f 50//50 49//49 33//33 32//32 +f 45//45 47//47 50//50 46//46 +f 46//46 50//50 32//32 34//34 +f 48//48 47//47 51//51 52//52 +f 47//47 45//45 53//53 51//51 +f 52//52 51//51 54//54 55//55 +f 51//51 53//53 56//56 54//54 +f 44//44 57//57 58//58 41//41 +f 57//57 59//59 60//60 58//58 +f 41//41 58//58 53//53 45//45 +f 53//53 58//58 60//60 56//56 +f 61//61 62//62 63//63 64//64 +f 61//61 65//65 66//66 62//62 +f 62//62 60//60 59//59 63//63 +f 62//62 66//66 56//56 60//60 +f 67//67 68//68 69//69 70//70 +f 70//70 69//69 55//55 54//54 +f 65//65 67//67 70//70 66//66 +f 66//66 70//70 54//54 56//56 +f 68//68 67//67 71//71 72//72 +f 67//67 65//65 73//73 71//71 +f 72//72 71//71 74//74 75//75 +f 71//71 73//73 76//76 74//74 +f 64//64 77//77 78//78 61//61 +f 77//77 79//79 80//80 78//78 +f 65//65 61//61 78//78 73//73 +f 73//73 78//78 80//80 76//76 +f 81//81 82//82 83//83 84//84 +f 81//81 85//85 86//86 82//82 +f 82//82 80//80 79//79 83//83 +f 82//82 86//86 76//76 80//80 +f 87//87 88//88 89//89 90//90 +f 90//90 89//89 75//75 74//74 +f 85//85 87//87 90//90 86//86 +f 86//86 90//90 74//74 76//76 +f 88//88 87//87 91//91 92//92 +f 87//87 85//85 93//93 91//91 +f 91//91 94//94 95//95 92//92 +f 93//93 96//96 94//94 91//91 +f 84//84 97//97 98//98 81//81 +f 97//97 99//99 100//100 98//98 +f 85//85 81//81 98//98 93//93 +f 98//98 100//100 96//96 93//93 +f 101//101 102//102 103//103 104//104 +f 105//105 106//106 102//102 101//101 +f 102//102 100//100 99//99 103//103 +f 106//106 96//96 100//100 102//102 +f 107//107 108//108 109//109 110//110 +f 108//108 95//95 94//94 109//109 +f 110//110 109//109 106//106 105//105 +f 109//109 94//94 96//96 106//106 +f 107//107 110//110 111//111 112//112 +f 110//110 105//105 113//113 111//111 +f 112//112 111//111 114//114 115//115 +f 111//111 113//113 116//116 114//114 +f 104//104 117//117 118//118 101//101 +f 117//117 119//119 120//120 118//118 +f 105//105 101//101 118//118 113//113 +f 113//113 118//118 120//120 116//116 +f 121//121 122//122 123//123 124//124 +f 125//125 126//126 122//122 121//121 +f 122//122 120//120 119//119 123//123 +f 126//126 116//116 120//120 122//122 +f 127//127 128//128 129//129 130//130 +f 129//129 128//128 115//115 114//114 +f 130//130 129//129 126//126 125//125 +f 126//126 129//129 114//114 116//116 +f 130//130 131//131 132//132 127//127 +f 125//125 133//133 131//131 130//130 +f 131//131 134//134 135//135 132//132 +f 133//133 136//136 134//134 131//131 +f 124//124 137//137 138//138 121//121 +f 137//137 139//139 140//140 138//138 +f 121//121 138//138 133//133 125//125 +f 138//138 140//140 136//136 133//133 +f 141//141 142//142 143//143 144//144 +f 145//145 146//146 142//142 141//141 +f 142//142 140//140 139//139 143//143 +f 146//146 136//136 140//140 142//142 +f 147//147 148//148 149//149 150//150 +f 148//148 135//135 134//134 149//149 +f 150//150 149//149 146//146 145//145 +f 149//149 134//134 136//136 146//146 +f 147//147 150//150 151//151 152//152 +f 145//145 153//153 151//151 150//150 +f 152//152 151//151 154//154 155//155 +f 151//151 153//153 156//156 154//154 +f 144//144 157//157 158//158 141//141 +f 157//157 159//159 160//160 158//158 +f 141//141 158//158 153//153 145//145 +f 158//158 160//160 156//156 153//153 +f 161//161 162//162 163//163 164//164 +f 161//161 165//165 166//166 162//162 +f 162//162 160//160 159//159 163//163 +f 166//166 156//156 160//160 162//162 +f 167//167 168//168 169//169 170//170 +f 170//170 169//169 155//155 154//154 +f 165//165 167//167 170//170 166//166 +f 166//166 170//170 154//154 156//156 +f 168//168 167//167 171//171 172//172 +f 167//167 165//165 173//173 171//171 +f 171//171 174//174 175//175 172//172 +f 173//173 176//176 174//174 171//171 +f 164//164 177//177 178//178 161//161 +f 177//177 179//179 180//180 178//178 +f 165//165 161//161 178//178 173//173 +f 178//178 180//180 176//176 173//173 +f 181//181 182//182 183//183 184//184 +f 185//185 186//186 182//182 181//181 +f 182//182 180//180 179//179 183//183 +f 186//186 176//176 180//180 182//182 +f 187//187 188//188 189//189 190//190 +f 188//188 175//175 174//174 189//189 +f 190//190 189//189 186//186 185//185 +f 189//189 174//174 176//176 186//186 +f 187//187 190//190 191//191 192//192 +f 190//190 185//185 193//193 191//191 +f 192//192 191//191 194//194 195//195 +f 191//191 193//193 196//196 194//194 +f 184//184 197//197 198//198 181//181 +f 197//197 199//199 200//200 198//198 +f 185//185 181//181 198//198 193//193 +f 193//193 198//198 200//200 196//196 +f 201//201 202//202 203//203 204//204 +f 205//205 206//206 202//202 201//201 +f 202//202 200//200 199//199 203//203 +f 206//206 196//196 200//200 202//202 +f 207//207 208//208 209//209 210//210 +f 209//209 208//208 195//195 194//194 +f 210//210 209//209 206//206 205//205 +f 209//209 194//194 196//196 206//206 +f 210//210 211//211 212//212 207//207 +f 205//205 213//213 211//211 210//210 +f 211//211 214//214 215//215 212//212 +f 213//213 216//216 214//214 211//211 +f 204//204 217//217 218//218 201//201 +f 217//217 219//219 220//220 218//218 +f 201//201 218//218 213//213 205//205 +f 218//218 220//220 216//216 213//213 +f 221//221 222//222 223//223 224//224 +f 225//225 226//226 222//222 221//221 +f 222//222 220//220 219//219 223//223 +f 226//226 216//216 220//220 222//222 +f 227//227 228//228 229//229 230//230 +f 228//228 215//215 214//214 229//229 +f 230//230 229//229 226//226 225//225 +f 229//229 214//214 216//216 226//226 +f 230//230 231//231 232//232 227//227 +f 225//225 233//233 231//231 230//230 +f 231//231 234//234 235//235 232//232 +f 233//233 236//236 234//234 231//231 +f 224//224 237//237 238//238 221//221 +f 237//237 239//239 240//240 238//238 +f 221//221 238//238 233//233 225//225 +f 238//238 240//240 236//236 233//233 +f 241//241 242//242 243//243 244//244 +f 245//245 246//246 242//242 241//241 +f 242//242 240//240 239//239 243//243 +f 246//246 236//236 240//240 242//242 +f 247//247 248//248 249//249 250//250 +f 248//248 235//235 234//234 249//249 +f 250//250 249//249 246//246 245//245 +f 249//249 234//234 236//236 246//246 +f 250//250 251//251 252//252 247//247 +f 245//245 253//253 251//251 250//250 +f 251//251 254//254 255//255 252//252 +f 253//253 256//256 254//254 251//251 +f 244//244 257//257 258//258 241//241 +f 257//257 259//259 260//260 258//258 +f 241//241 258//258 253//253 245//245 +f 258//258 260//260 256//256 253//253 +f 261//261 262//262 263//263 264//264 +f 265//265 266//266 262//262 261//261 +f 262//262 260//260 259//259 263//263 +f 266//266 256//256 260//260 262//262 +f 267//267 268//268 269//269 270//270 +f 268//268 255//255 254//254 269//269 +f 270//270 269//269 266//266 265//265 +f 269//269 254//254 256//256 266//266 +f 271//271 272//272 36//36 35//35 +f 273//273 274//274 272//272 271//271 +f 272//272 275//275 39//39 36//36 +f 274//274 276//276 275//275 272//272 +f 277//277 278//278 279//279 280//280 +f 278//278 281//281 282//282 279//279 +f 280//280 279//279 274//274 273//273 +f 279//279 282//282 276//276 274//274 +f 283//283 284//284 285//285 286//286 +f 287//287 288//288 284//284 283//283 +f 284//284 282//282 281//281 285//285 +f 288//288 276//276 282//282 284//284 +f 44//44 43//43 289//289 290//290 +f 43//43 39//39 275//275 289//289 +f 290//290 289//289 288//288 287//287 +f 289//289 275//275 276//276 288//288 +f 290//290 291//291 57//57 44//44 +f 287//287 292//292 291//291 290//290 +f 291//291 293//293 59//59 57//57 +f 292//292 294//294 293//293 291//291 +f 286//286 295//295 296//296 283//283 +f 295//295 297//297 298//298 296//296 +f 283//283 296//296 292//292 287//287 +f 296//296 298//298 294//294 292//292 +f 299//299 300//300 301//301 302//302 +f 303//303 304//304 300//300 299//299 +f 300//300 298//298 297//297 301//301 +f 304//304 294//294 298//298 300//300 +f 64//64 63//63 305//305 306//306 +f 63//63 59//59 293//293 305//305 +f 306//306 305//305 304//304 303//303 +f 305//305 293//293 294//294 304//304 +f 306//306 307//307 77//77 64//64 +f 303//303 308//308 307//307 306//306 +f 307//307 309//309 79//79 77//77 +f 308//308 310//310 309//309 307//307 +f 302//302 311//311 312//312 299//299 +f 311//311 313//313 314//314 312//312 +f 299//299 312//312 308//308 303//303 +f 312//312 314//314 310//310 308//308 +f 315//315 316//316 317//317 318//318 +f 319//319 320//320 316//316 315//315 +f 316//316 314//314 313//313 317//317 +f 320//320 310//310 314//314 316//316 +f 84//84 83//83 321//321 322//322 +f 83//83 79//79 309//309 321//321 +f 322//322 321//321 320//320 319//319 +f 321//321 309//309 310//310 320//320 +f 322//322 323//323 97//97 84//84 +f 319//319 324//324 323//323 322//322 +f 323//323 325//325 99//99 97//97 +f 324//324 326//326 325//325 323//323 +f 318//318 327//327 328//328 315//315 +f 327//327 329//329 330//330 328//328 +f 315//315 328//328 324//324 319//319 +f 328//328 330//330 326//326 324//324 +f 331//331 332//332 333//333 334//334 +f 335//335 336//336 332//332 331//331 +f 332//332 330//330 329//329 333//333 +f 336//336 326//326 330//330 332//332 +f 104//104 103//103 337//337 338//338 +f 103//103 99//99 325//325 337//337 +f 338//338 337//337 336//336 335//335 +f 337//337 325//325 326//326 336//336 +f 338//338 339//339 117//117 104//104 +f 335//335 340//340 339//339 338//338 +f 339//339 341//341 119//119 117//117 +f 340//340 342//342 341//341 339//339 +f 334//334 343//343 344//344 331//331 +f 343//343 345//345 346//346 344//344 +f 331//331 344//344 340//340 335//335 +f 344//344 346//346 342//342 340//340 +f 347//347 348//348 349//349 350//350 +f 351//351 352//352 348//348 347//347 +f 348//348 346//346 345//345 349//349 +f 352//352 342//342 346//346 348//348 +f 124//124 123//123 353//353 354//354 +f 123//123 119//119 341//341 353//353 +f 354//354 353//353 352//352 351//351 +f 353//353 341//341 342//342 352//352 +f 354//354 355//355 137//137 124//124 +f 351//351 356//356 355//355 354//354 +f 355//355 357//357 139//139 137//137 +f 356//356 358//358 357//357 355//355 +f 350//350 359//359 360//360 347//347 +f 359//359 361//361 362//362 360//360 +f 347//347 360//360 356//356 351//351 +f 360//360 362//362 358//358 356//356 +f 363//363 364//364 365//365 366//366 +f 367//367 368//368 364//364 363//363 +f 364//364 362//362 361//361 365//365 +f 368//368 358//358 362//362 364//364 +f 144//144 143//143 369//369 370//370 +f 143//143 139//139 357//357 369//369 +f 370//370 369//369 368//368 367//367 +f 369//369 357//357 358//358 368//368 +f 370//370 371//371 157//157 144//144 +f 367//367 372//372 371//371 370//370 +f 371//371 373//373 159//159 157//157 +f 372//372 374//374 373//373 371//371 +f 366//366 375//375 376//376 363//363 +f 375//375 377//377 378//378 376//376 +f 363//363 376//376 372//372 367//367 +f 376//376 378//378 374//374 372//372 +f 379//379 380//380 381//381 382//382 +f 383//383 384//384 380//380 379//379 +f 380//380 378//378 377//377 381//381 +f 384//384 374//374 378//378 380//380 +f 164//164 163//163 385//385 386//386 +f 163//163 159//159 373//373 385//385 +f 386//386 385//385 384//384 383//383 +f 385//385 373//373 374//374 384//384 +f 386//386 387//387 177//177 164//164 +f 383//383 388//388 387//387 386//386 +f 387//387 389//389 179//179 177//177 +f 388//388 390//390 389//389 387//387 +f 382//382 391//391 392//392 379//379 +f 391//391 393//393 394//394 392//392 +f 379//379 392//392 388//388 383//383 +f 392//392 394//394 390//390 388//388 +f 395//395 396//396 397//397 398//398 +f 399//399 400//400 396//396 395//395 +f 396//396 394//394 393//393 397//397 +f 400//400 390//390 394//394 396//396 +f 184//184 183//183 401//401 402//402 +f 183//183 179//179 389//389 401//401 +f 402//402 401//401 400//400 399//399 +f 401//401 389//389 390//390 400//400 +f 402//402 403//403 197//197 184//184 +f 399//399 404//404 403//403 402//402 +f 403//403 405//405 199//199 197//197 +f 404//404 406//406 405//405 403//403 +f 398//398 407//407 408//408 395//395 +f 407//407 409//409 410//410 408//408 +f 395//395 408//408 404//404 399//399 +f 408//408 410//410 406//406 404//404 +f 411//411 412//412 413//413 414//414 +f 415//415 416//416 412//412 411//411 +f 412//412 410//410 409//409 413//413 +f 416//416 406//406 410//410 412//412 +f 204//204 203//203 417//417 418//418 +f 203//203 199//199 405//405 417//417 +f 418//418 417//417 416//416 415//415 +f 417//417 405//405 406//406 416//416 +f 418//418 419//419 217//217 204//204 +f 415//415 420//420 419//419 418//418 +f 419//419 421//421 219//219 217//217 +f 420//420 422//422 421//421 419//419 +f 414//414 423//423 424//424 411//411 +f 423//423 425//425 426//426 424//424 +f 411//411 424//424 420//420 415//415 +f 424//424 426//426 422//422 420//420 +f 427//427 428//428 429//429 430//430 +f 431//431 432//432 428//428 427//427 +f 428//428 426//426 425//425 429//429 +f 432//432 422//422 426//426 428//428 +f 224//224 223//223 433//433 434//434 +f 223//223 219//219 421//421 433//433 +f 434//434 433//433 432//432 431//431 +f 433//433 421//421 422//422 432//432 +f 434//434 435//435 237//237 224//224 +f 431//431 436//436 435//435 434//434 +f 435//435 437//437 239//239 237//237 +f 436//436 438//438 437//437 435//435 +f 430//430 439//439 440//440 427//427 +f 439//439 441//441 442//442 440//440 +f 427//427 440//440 436//436 431//431 +f 440//440 442//442 438//438 436//436 +f 443//443 444//444 445//445 446//446 +f 447//447 448//448 444//444 443//443 +f 444//444 442//442 441//441 445//445 +f 448//448 438//438 442//442 444//444 +f 244//244 243//243 449//449 450//450 +f 243//243 239//239 437//437 449//449 +f 450//450 449//449 448//448 447//447 +f 449//449 437//437 438//438 448//448 +f 450//450 451//451 257//257 244//244 +f 447//447 452//452 451//451 450//450 +f 451//451 453//453 259//259 257//257 +f 452//452 454//454 453//453 451//451 +f 446//446 455//455 456//456 443//443 +f 455//455 457//457 458//458 456//456 +f 443//443 456//456 452//452 447//447 +f 456//456 458//458 454//454 452//452 +f 459//459 460//460 461//461 462//462 +f 463//463 464//464 460//460 459//459 +f 460//460 458//458 457//457 461//461 +f 464//464 454//454 458//458 460//460 +f 264//264 263//263 465//465 466//466 +f 263//263 259//259 453//453 465//465 +f 466//466 465//465 464//464 463//463 +f 465//465 453//453 454//454 464//464 +f 467//467 468//468 278//278 277//277 +f 469//469 470//470 468//468 467//467 +f 468//468 471//471 281//281 278//278 +f 470//470 472//472 471//471 468//468 +f 473//473 474//474 475//475 476//476 +f 474//474 477//477 478//478 475//475 +f 476//476 475//475 470//470 469//469 +f 475//475 478//478 472//472 470//470 +f 479//479 480//480 481//481 482//482 +f 483//483 484//484 480//480 479//479 +f 480//480 478//478 477//477 481//481 +f 484//484 472//472 478//478 480//480 +f 286//286 285//285 485//485 486//486 +f 285//285 281//281 471//471 485//485 +f 486//486 485//485 484//484 483//483 +f 485//485 471//471 472//472 484//484 +f 486//486 487//487 295//295 286//286 +f 483//483 488//488 487//487 486//486 +f 487//487 489//489 297//297 295//295 +f 488//488 490//490 489//489 487//487 +f 482//482 491//491 492//492 479//479 +f 491//491 493//493 494//494 492//492 +f 479//479 492//492 488//488 483//483 +f 492//492 494//494 490//490 488//488 +f 495//495 496//496 497//497 498//498 +f 499//499 500//500 496//496 495//495 +f 496//496 494//494 493//493 497//497 +f 500//500 490//490 494//494 496//496 +f 302//302 301//301 501//501 502//502 +f 301//301 297//297 489//489 501//501 +f 502//502 501//501 500//500 499//499 +f 501//501 489//489 490//490 500//500 +f 502//502 503//503 311//311 302//302 +f 499//499 504//504 503//503 502//502 +f 503//503 505//505 313//313 311//311 +f 504//504 506//506 505//505 503//503 +f 498//498 507//507 508//508 495//495 +f 507//507 509//509 510//510 508//508 +f 495//495 508//508 504//504 499//499 +f 508//508 510//510 506//506 504//504 +f 511//511 512//512 513//513 514//514 +f 515//515 516//516 512//512 511//511 +f 512//512 510//510 509//509 513//513 +f 516//516 506//506 510//510 512//512 +f 318//318 317//317 517//517 518//518 +f 317//317 313//313 505//505 517//517 +f 518//518 517//517 516//516 515//515 +f 517//517 505//505 506//506 516//516 +f 518//518 519//519 327//327 318//318 +f 515//515 520//520 519//519 518//518 +f 519//519 521//521 329//329 327//327 +f 520//520 522//522 521//521 519//519 +f 514//514 523//523 524//524 511//511 +f 523//523 525//525 526//526 524//524 +f 511//511 524//524 520//520 515//515 +f 524//524 526//526 522//522 520//520 +f 527//527 528//528 529//529 530//530 +f 531//531 532//532 528//528 527//527 +f 528//528 526//526 525//525 529//529 +f 532//532 522//522 526//526 528//528 +f 334//334 333//333 533//533 534//534 +f 333//333 329//329 521//521 533//533 +f 534//534 533//533 532//532 531//531 +f 533//533 521//521 522//522 532//532 +f 534//534 535//535 343//343 334//334 +f 531//531 536//536 535//535 534//534 +f 535//535 537//537 345//345 343//343 +f 536//536 538//538 537//537 535//535 +f 530//530 539//539 540//540 527//527 +f 539//539 541//541 542//542 540//540 +f 527//527 540//540 536//536 531//531 +f 540//540 542//542 538//538 536//536 +f 543//543 544//544 545//545 546//546 +f 547//547 548//548 544//544 543//543 +f 544//544 542//542 541//541 545//545 +f 548//548 538//538 542//542 544//544 +f 350//350 349//349 549//549 550//550 +f 349//349 345//345 537//537 549//549 +f 550//550 549//549 548//548 547//547 +f 549//549 537//537 538//538 548//548 +f 550//550 551//551 359//359 350//350 +f 547//547 552//552 551//551 550//550 +f 551//551 553//553 361//361 359//359 +f 552//552 554//554 553//553 551//551 +f 546//546 555//555 556//556 543//543 +f 555//555 557//557 558//558 556//556 +f 543//543 556//556 552//552 547//547 +f 556//556 558//558 554//554 552//552 +f 559//559 560//560 561//561 562//562 +f 563//563 564//564 560//560 559//559 +f 560//560 558//558 557//557 561//561 +f 564//564 554//554 558//558 560//560 +f 366//366 365//365 565//565 566//566 +f 365//365 361//361 553//553 565//565 +f 566//566 565//565 564//564 563//563 +f 565//565 553//553 554//554 564//564 +f 566//566 567//567 375//375 366//366 +f 563//563 568//568 567//567 566//566 +f 567//567 569//569 377//377 375//375 +f 568//568 570//570 569//569 567//567 +f 562//562 571//571 572//572 559//559 +f 571//571 573//573 574//574 572//572 +f 559//559 572//572 568//568 563//563 +f 572//572 574//574 570//570 568//568 +f 575//575 576//576 577//577 578//578 +f 579//579 580//580 576//576 575//575 +f 576//576 574//574 573//573 577//577 +f 580//580 570//570 574//574 576//576 +f 382//382 381//381 581//581 582//582 +f 381//381 377//377 569//569 581//581 +f 582//582 581//581 580//580 579//579 +f 581//581 569//569 570//570 580//580 +f 582//582 583//583 391//391 382//382 +f 579//579 584//584 583//583 582//582 +f 583//583 585//585 393//393 391//391 +f 584//584 586//586 585//585 583//583 +f 578//578 587//587 588//588 575//575 +f 587//587 589//589 590//590 588//588 +f 575//575 588//588 584//584 579//579 +f 588//588 590//590 586//586 584//584 +f 591//591 592//592 593//593 594//594 +f 595//595 596//596 592//592 591//591 +f 592//592 590//590 589//589 593//593 +f 596//596 586//586 590//590 592//592 +f 398//398 397//397 597//597 598//598 +f 397//397 393//393 585//585 597//597 +f 598//598 597//597 596//596 595//595 +f 597//597 585//585 586//586 596//596 +f 598//598 599//599 407//407 398//398 +f 595//595 600//600 599//599 598//598 +f 599//599 601//601 409//409 407//407 +f 600//600 602//602 601//601 599//599 +f 594//594 603//603 604//604 591//591 +f 603//603 605//605 606//606 604//604 +f 591//591 604//604 600//600 595//595 +f 604//604 606//606 602//602 600//600 +f 607//607 608//608 609//609 610//610 +f 611//611 612//612 608//608 607//607 +f 608//608 606//606 605//605 609//609 +f 612//612 602//602 606//606 608//608 +f 414//414 413//413 613//613 614//614 +f 413//413 409//409 601//601 613//613 +f 614//614 613//613 612//612 611//611 +f 613//613 601//601 602//602 612//612 +f 614//614 615//615 423//423 414//414 +f 611//611 616//616 615//615 614//614 +f 615//615 617//617 425//425 423//423 +f 616//616 618//618 617//617 615//615 +f 610//610 619//619 620//620 607//607 +f 619//619 621//621 622//622 620//620 +f 607//607 620//620 616//616 611//611 +f 620//620 622//622 618//618 616//616 +f 623//623 624//624 625//625 626//626 +f 627//627 628//628 624//624 623//623 +f 624//624 622//622 621//621 625//625 +f 628//628 618//618 622//622 624//624 +f 430//430 429//429 629//629 630//630 +f 429//429 425//425 617//617 629//629 +f 630//630 629//629 628//628 627//627 +f 629//629 617//617 618//618 628//628 +f 630//630 631//631 439//439 430//430 +f 627//627 632//632 631//631 630//630 +f 631//631 633//633 441//441 439//439 +f 632//632 634//634 633//633 631//631 +f 626//626 635//635 636//636 623//623 +f 635//635 637//637 638//638 636//636 +f 623//623 636//636 632//632 627//627 +f 636//636 638//638 634//634 632//632 +f 639//639 640//640 641//641 642//642 +f 643//643 644//644 640//640 639//639 +f 640//640 638//638 637//637 641//641 +f 644//644 634//634 638//638 640//640 +f 446//446 445//445 645//645 646//646 +f 445//445 441//441 633//633 645//645 +f 646//646 645//645 644//644 643//643 +f 645//645 633//633 634//634 644//644 +f 646//646 647//647 455//455 446//446 +f 643//643 648//648 647//647 646//646 +f 647//647 649//649 457//457 455//455 +f 648//648 650//650 649//649 647//647 +f 642//642 651//651 652//652 639//639 +f 651//651 653//653 654//654 652//652 +f 639//639 652//652 648//648 643//643 +f 652//652 654//654 650//650 648//648 +f 655//655 656//656 657//657 658//658 +f 659//659 660//660 656//656 655//655 +f 656//656 654//654 653//653 657//657 +f 660//660 650//650 654//654 656//656 +f 462//462 461//461 661//661 662//662 +f 461//461 457//457 649//649 661//661 +f 662//662 661//661 660//660 659//659 +f 661//661 649//649 650//650 660//660 +f 663//663 664//664 474//474 473//473 +f 665//665 666//666 664//664 663//663 +f 664//664 667//667 477//477 474//474 +f 666//666 668//668 667//667 664//664 +f 669//669 670//670 671//671 672//672 +f 670//670 673//673 674//674 671//671 +f 672//672 671//671 666//666 665//665 +f 671//671 674//674 668//668 666//666 +f 675//675 676//676 677//677 678//678 +f 679//679 680//680 676//676 675//675 +f 676//676 674//674 673//673 677//677 +f 680//680 668//668 674//674 676//676 +f 482//482 481//481 681//681 682//682 +f 481//481 477//477 667//667 681//681 +f 682//682 681//681 680//680 679//679 +f 681//681 667//667 668//668 680//680 +f 682//682 683//683 491//491 482//482 +f 679//679 684//684 683//683 682//682 +f 683//683 685//685 493//493 491//491 +f 684//684 686//686 685//685 683//683 +f 678//678 687//687 688//688 675//675 +f 687//687 689//689 690//690 688//688 +f 675//675 688//688 684//684 679//679 +f 688//688 690//690 686//686 684//684 +f 691//691 692//692 693//693 694//694 +f 695//695 696//696 692//692 691//691 +f 692//692 690//690 689//689 693//693 +f 696//696 686//686 690//690 692//692 +f 498//498 497//497 697//697 698//698 +f 497//497 493//493 685//685 697//697 +f 698//698 697//697 696//696 695//695 +f 697//697 685//685 686//686 696//696 +f 698//698 699//699 507//507 498//498 +f 695//695 700//700 699//699 698//698 +f 699//699 701//701 509//509 507//507 +f 700//700 702//702 701//701 699//699 +f 694//694 703//703 704//704 691//691 +f 703//703 705//705 706//706 704//704 +f 691//691 704//704 700//700 695//695 +f 704//704 706//706 702//702 700//700 +f 707//707 708//708 709//709 710//710 +f 711//711 712//712 708//708 707//707 +f 708//708 706//706 705//705 709//709 +f 712//712 702//702 706//706 708//708 +f 514//514 513//513 713//713 714//714 +f 513//513 509//509 701//701 713//713 +f 714//714 713//713 712//712 711//711 +f 713//713 701//701 702//702 712//712 +f 714//714 715//715 523//523 514//514 +f 711//711 716//716 715//715 714//714 +f 715//715 717//717 525//525 523//523 +f 716//716 718//718 717//717 715//715 +f 710//710 719//719 720//720 707//707 +f 719//719 721//721 722//722 720//720 +f 707//707 720//720 716//716 711//711 +f 720//720 722//722 718//718 716//716 +f 723//723 724//724 725//725 726//726 +f 727//727 728//728 724//724 723//723 +f 724//724 722//722 721//721 725//725 +f 728//728 718//718 722//722 724//724 +f 530//530 529//529 729//729 730//730 +f 529//529 525//525 717//717 729//729 +f 730//730 729//729 728//728 727//727 +f 729//729 717//717 718//718 728//728 +f 730//730 731//731 539//539 530//530 +f 727//727 732//732 731//731 730//730 +f 731//731 733//733 541//541 539//539 +f 732//732 734//734 733//733 731//731 +f 726//726 735//735 736//736 723//723 +f 735//735 737//737 738//738 736//736 +f 723//723 736//736 732//732 727//727 +f 736//736 738//738 734//734 732//732 +f 739//739 740//740 741//741 742//742 +f 743//743 744//744 740//740 739//739 +f 740//740 738//738 737//737 741//741 +f 744//744 734//734 738//738 740//740 +f 546//546 545//545 745//745 746//746 +f 545//545 541//541 733//733 745//745 +f 746//746 745//745 744//744 743//743 +f 745//745 733//733 734//734 744//744 +f 746//746 747//747 555//555 546//546 +f 743//743 748//748 747//747 746//746 +f 747//747 749//749 557//557 555//555 +f 748//748 750//750 749//749 747//747 +f 742//742 751//751 752//752 739//739 +f 751//751 753//753 754//754 752//752 +f 739//739 752//752 748//748 743//743 +f 752//752 754//754 750//750 748//748 +f 755//755 756//756 757//757 758//758 +f 759//759 760//760 756//756 755//755 +f 756//756 754//754 753//753 757//757 +f 760//760 750//750 754//754 756//756 +f 562//562 561//561 761//761 762//762 +f 561//561 557//557 749//749 761//761 +f 762//762 761//761 760//760 759//759 +f 761//761 749//749 750//750 760//760 +f 762//762 763//763 571//571 562//562 +f 759//759 764//764 763//763 762//762 +f 763//763 765//765 573//573 571//571 +f 764//764 766//766 765//765 763//763 +f 758//758 767//767 768//768 755//755 +f 767//767 769//769 770//770 768//768 +f 755//755 768//768 764//764 759//759 +f 768//768 770//770 766//766 764//764 +f 771//771 772//772 773//773 774//774 +f 775//775 776//776 772//772 771//771 +f 772//772 770//770 769//769 773//773 +f 776//776 766//766 770//770 772//772 +f 578//578 577//577 777//777 778//778 +f 577//577 573//573 765//765 777//777 +f 778//778 777//777 776//776 775//775 +f 777//777 765//765 766//766 776//776 +f 778//778 779//779 587//587 578//578 +f 775//775 780//780 779//779 778//778 +f 779//779 781//781 589//589 587//587 +f 780//780 782//782 781//781 779//779 +f 774//774 783//783 784//784 771//771 +f 783//783 785//785 786//786 784//784 +f 771//771 784//784 780//780 775//775 +f 784//784 786//786 782//782 780//780 +f 787//787 788//788 789//789 790//790 +f 791//791 792//792 788//788 787//787 +f 788//788 786//786 785//785 789//789 +f 792//792 782//782 786//786 788//788 +f 594//594 593//593 793//793 794//794 +f 593//593 589//589 781//781 793//793 +f 794//794 793//793 792//792 791//791 +f 793//793 781//781 782//782 792//792 +f 794//794 795//795 603//603 594//594 +f 791//791 796//796 795//795 794//794 +f 795//795 797//797 605//605 603//603 +f 796//796 798//798 797//797 795//795 +f 790//790 799//799 800//800 787//787 +f 799//799 801//801 802//802 800//800 +f 787//787 800//800 796//796 791//791 +f 800//800 802//802 798//798 796//796 +f 803//803 804//804 805//805 806//806 +f 807//807 808//808 804//804 803//803 +f 804//804 802//802 801//801 805//805 +f 808//808 798//798 802//802 804//804 +f 610//610 609//609 809//809 810//810 +f 609//609 605//605 797//797 809//809 +f 810//810 809//809 808//808 807//807 +f 809//809 797//797 798//798 808//808 +f 810//810 811//811 619//619 610//610 +f 807//807 812//812 811//811 810//810 +f 811//811 813//813 621//621 619//619 +f 812//812 814//814 813//813 811//811 +f 806//806 815//815 816//816 803//803 +f 815//815 817//817 818//818 816//816 +f 803//803 816//816 812//812 807//807 +f 816//816 818//818 814//814 812//812 +f 819//819 820//820 821//821 822//822 +f 823//823 824//824 820//820 819//819 +f 820//820 818//818 817//817 821//821 +f 824//824 814//814 818//818 820//820 +f 626//626 625//625 825//825 826//826 +f 625//625 621//621 813//813 825//825 +f 826//826 825//825 824//824 823//823 +f 825//825 813//813 814//814 824//824 +f 826//826 827//827 635//635 626//626 +f 823//823 828//828 827//827 826//826 +f 827//827 829//829 637//637 635//635 +f 828//828 830//830 829//829 827//827 +f 822//822 831//831 832//832 819//819 +f 831//831 833//833 834//834 832//832 +f 819//819 832//832 828//828 823//823 +f 832//832 834//834 830//830 828//828 +f 835//835 836//836 837//837 838//838 +f 839//839 840//840 836//836 835//835 +f 836//836 834//834 833//833 837//837 +f 840//840 830//830 834//834 836//836 +f 642//642 641//641 841//841 842//842 +f 641//641 637//637 829//829 841//841 +f 842//842 841//841 840//840 839//839 +f 841//841 829//829 830//830 840//840 +f 842//842 843//843 651//651 642//642 +f 839//839 844//844 843//843 842//842 +f 843//843 845//845 653//653 651//651 +f 844//844 846//846 845//845 843//843 +f 838//838 847//847 848//848 835//835 +f 847//847 849//849 850//850 848//848 +f 835//835 848//848 844//844 839//839 +f 848//848 850//850 846//846 844//844 +f 851//851 852//852 853//853 854//854 +f 855//855 856//856 852//852 851//851 +f 852//852 850//850 849//849 853//853 +f 856//856 846//846 850//850 852//852 +f 658//658 657//657 857//857 858//858 +f 657//657 653//653 845//845 857//857 +f 858//858 857//857 856//856 855//855 +f 857//857 845//845 846//846 856//856 +f 859//859 860//860 670//670 669//669 +f 861//861 862//862 860//860 859//859 +f 860//860 863//863 673//673 670//670 +f 862//862 864//864 863//863 860//860 +f 865//865 866//866 867//867 868//868 +f 866//866 869//869 870//870 867//867 +f 868//868 867//867 862//862 861//861 +f 867//867 870//870 864//864 862//862 +f 871//871 872//872 873//873 874//874 +f 875//875 876//876 872//872 871//871 +f 872//872 870//870 869//869 873//873 +f 876//876 864//864 870//870 872//872 +f 678//678 677//677 877//877 878//878 +f 677//677 673//673 863//863 877//877 +f 878//878 877//877 876//876 875//875 +f 877//877 863//863 864//864 876//876 +f 878//878 879//879 687//687 678//678 +f 875//875 880//880 879//879 878//878 +f 879//879 881//881 689//689 687//687 +f 880//880 882//882 881//881 879//879 +f 874//874 883//883 884//884 871//871 +f 883//883 885//885 886//886 884//884 +f 871//871 884//884 880//880 875//875 +f 884//884 886//886 882//882 880//880 +f 887//887 888//888 889//889 890//890 +f 891//891 892//892 888//888 887//887 +f 888//888 886//886 885//885 889//889 +f 892//892 882//882 886//886 888//888 +f 694//694 693//693 893//893 894//894 +f 693//693 689//689 881//881 893//893 +f 894//894 893//893 892//892 891//891 +f 893//893 881//881 882//882 892//892 +f 894//894 895//895 703//703 694//694 +f 891//891 896//896 895//895 894//894 +f 895//895 897//897 705//705 703//703 +f 896//896 898//898 897//897 895//895 +f 890//890 899//899 900//900 887//887 +f 899//899 901//901 902//902 900//900 +f 887//887 900//900 896//896 891//891 +f 900//900 902//902 898//898 896//896 +f 903//903 904//904 905//905 906//906 +f 907//907 908//908 904//904 903//903 +f 904//904 902//902 901//901 905//905 +f 908//908 898//898 902//902 904//904 +f 710//710 709//709 909//909 910//910 +f 709//709 705//705 897//897 909//909 +f 910//910 909//909 908//908 907//907 +f 909//909 897//897 898//898 908//908 +f 910//910 911//911 719//719 710//710 +f 907//907 912//912 911//911 910//910 +f 911//911 913//913 721//721 719//719 +f 912//912 914//914 913//913 911//911 +f 906//906 915//915 916//916 903//903 +f 915//915 917//917 918//918 916//916 +f 903//903 916//916 912//912 907//907 +f 916//916 918//918 914//914 912//912 +f 919//919 920//920 921//921 922//922 +f 923//923 924//924 920//920 919//919 +f 920//920 918//918 917//917 921//921 +f 924//924 914//914 918//918 920//920 +f 726//726 725//725 925//925 926//926 +f 725//725 721//721 913//913 925//925 +f 926//926 925//925 924//924 923//923 +f 925//925 913//913 914//914 924//924 +f 926//926 927//927 735//735 726//726 +f 923//923 928//928 927//927 926//926 +f 927//927 929//929 737//737 735//735 +f 928//928 930//930 929//929 927//927 +f 922//922 931//931 932//932 919//919 +f 931//931 933//933 934//934 932//932 +f 919//919 932//932 928//928 923//923 +f 932//932 934//934 930//930 928//928 +f 935//935 936//936 937//937 938//938 +f 939//939 940//940 936//936 935//935 +f 936//936 934//934 933//933 937//937 +f 940//940 930//930 934//934 936//936 +f 742//742 741//741 941//941 942//942 +f 741//741 737//737 929//929 941//941 +f 942//942 941//941 940//940 939//939 +f 941//941 929//929 930//930 940//940 +f 942//942 943//943 751//751 742//742 +f 939//939 944//944 943//943 942//942 +f 943//943 945//945 753//753 751//751 +f 944//944 946//946 945//945 943//943 +f 938//938 947//947 948//948 935//935 +f 947//947 949//949 950//950 948//948 +f 935//935 948//948 944//944 939//939 +f 948//948 950//950 946//946 944//944 +f 951//951 952//952 953//953 954//954 +f 955//955 956//956 952//952 951//951 +f 952//952 950//950 949//949 953//953 +f 956//956 946//946 950//950 952//952 +f 758//758 757//757 957//957 958//958 +f 757//757 753//753 945//945 957//957 +f 958//958 957//957 956//956 955//955 +f 957//957 945//945 946//946 956//956 +f 958//958 959//959 767//767 758//758 +f 955//955 960//960 959//959 958//958 +f 959//959 961//961 769//769 767//767 +f 960//960 962//962 961//961 959//959 +f 954//954 963//963 964//964 951//951 +f 963//963 965//965 966//966 964//964 +f 951//951 964//964 960//960 955//955 +f 964//964 966//966 962//962 960//960 +f 967//967 968//968 969//969 970//970 +f 971//971 972//972 968//968 967//967 +f 968//968 966//966 965//965 969//969 +f 972//972 962//962 966//966 968//968 +f 774//774 773//773 973//973 974//974 +f 773//773 769//769 961//961 973//973 +f 974//974 973//973 972//972 971//971 +f 973//973 961//961 962//962 972//972 +f 974//974 975//975 783//783 774//774 +f 971//971 976//976 975//975 974//974 +f 975//975 977//977 785//785 783//783 +f 976//976 978//978 977//977 975//975 +f 970//970 979//979 980//980 967//967 +f 979//979 981//981 982//982 980//980 +f 967//967 980//980 976//976 971//971 +f 980//980 982//982 978//978 976//976 +f 983//983 984//984 985//985 986//986 +f 987//987 988//988 984//984 983//983 +f 984//984 982//982 981//981 985//985 +f 988//988 978//978 982//982 984//984 +f 790//790 789//789 989//989 990//990 +f 789//789 785//785 977//977 989//989 +f 990//990 989//989 988//988 987//987 +f 989//989 977//977 978//978 988//988 +f 990//990 991//991 799//799 790//790 +f 987//987 992//992 991//991 990//990 +f 991//991 993//993 801//801 799//799 +f 992//992 994//994 993//993 991//991 +f 986//986 995//995 996//996 983//983 +f 995//995 997//997 998//998 996//996 +f 983//983 996//996 992//992 987//987 +f 996//996 998//998 994//994 992//992 +f 999//999 1000//1000 1001//1001 1002//1002 +f 1003//1003 1004//1004 1000//1000 999//999 +f 1000//1000 998//998 997//997 1001//1001 +f 1004//1004 994//994 998//998 1000//1000 +f 806//806 805//805 1005//1005 1006//1006 +f 805//805 801//801 993//993 1005//1005 +f 1006//1006 1005//1005 1004//1004 1003//1003 +f 1005//1005 993//993 994//994 1004//1004 +f 1006//1006 1007//1007 815//815 806//806 +f 1003//1003 1008//1008 1007//1007 1006//1006 +f 1007//1007 1009//1009 817//817 815//815 +f 1008//1008 1010//1010 1009//1009 1007//1007 +f 1002//1002 1011//1011 1012//1012 999//999 +f 1011//1011 1013//1013 1014//1014 1012//1012 +f 999//999 1012//1012 1008//1008 1003//1003 +f 1012//1012 1014//1014 1010//1010 1008//1008 +f 1015//1015 1016//1016 1017//1017 1018//1018 +f 1019//1019 1020//1020 1016//1016 1015//1015 +f 1016//1016 1014//1014 1013//1013 1017//1017 +f 1020//1020 1010//1010 1014//1014 1016//1016 +f 822//822 821//821 1021//1021 1022//1022 +f 821//821 817//817 1009//1009 1021//1021 +f 1022//1022 1021//1021 1020//1020 1019//1019 +f 1021//1021 1009//1009 1010//1010 1020//1020 +f 1022//1022 1023//1023 831//831 822//822 +f 1019//1019 1024//1024 1023//1023 1022//1022 +f 1023//1023 1025//1025 833//833 831//831 +f 1024//1024 1026//1026 1025//1025 1023//1023 +f 1018//1018 1027//1027 1028//1028 1015//1015 +f 1027//1027 1029//1029 1030//1030 1028//1028 +f 1015//1015 1028//1028 1024//1024 1019//1019 +f 1028//1028 1030//1030 1026//1026 1024//1024 +f 1031//1031 1032//1032 1033//1033 1034//1034 +f 1035//1035 1036//1036 1032//1032 1031//1031 +f 1032//1032 1030//1030 1029//1029 1033//1033 +f 1036//1036 1026//1026 1030//1030 1032//1032 +f 838//838 837//837 1037//1037 1038//1038 +f 837//837 833//833 1025//1025 1037//1037 +f 1038//1038 1037//1037 1036//1036 1035//1035 +f 1037//1037 1025//1025 1026//1026 1036//1036 +f 1038//1038 1039//1039 847//847 838//838 +f 1035//1035 1040//1040 1039//1039 1038//1038 +f 1039//1039 1041//1041 849//849 847//847 +f 1040//1040 1042//1042 1041//1041 1039//1039 +f 1034//1034 1043//1043 1044//1044 1031//1031 +f 1043//1043 1045//1045 1046//1046 1044//1044 +f 1031//1031 1044//1044 1040//1040 1035//1035 +f 1044//1044 1046//1046 1042//1042 1040//1040 +f 1047//1047 1048//1048 1049//1049 1050//1050 +f 1051//1051 1052//1052 1048//1048 1047//1047 +f 1048//1048 1046//1046 1045//1045 1049//1049 +f 1052//1052 1042//1042 1046//1046 1048//1048 +f 854//854 853//853 1053//1053 1054//1054 +f 853//853 849//849 1041//1041 1053//1053 +f 1054//1054 1053//1053 1052//1052 1051//1051 +f 1053//1053 1041//1041 1042//1042 1052//1052 +f 52//52 1055//1055 1056//1056 48//48 +f 55//55 1057//1057 1055//1055 52//52 +f 1055//1055 1058//1058 1059//1059 1056//1056 +f 1057//1057 1060//1060 1058//1058 1055//1055 +f 68//68 1061//1061 1062//1062 69//69 +f 1061//1061 1063//1063 1064//1064 1062//1062 +f 69//69 1062//1062 1057//1057 55//55 +f 1062//1062 1064//1064 1060//1060 1057//1057 +f 1065//1065 1066//1066 1067//1067 1068//1068 +f 1069//1069 1070//1070 1066//1066 1065//1065 +f 1066//1066 1064//1064 1063//1063 1067//1067 +f 1070//1070 1060//1060 1064//1064 1066//1066 +f 16//16 1071//1071 1072//1072 1073//1073 +f 1071//1071 1059//1059 1058//1058 1072//1072 +f 1073//1073 1072//1072 1070//1070 1069//1069 +f 1072//1072 1058//1058 1060//1060 1070//1070 +f 72//72 1074//1074 1061//1061 68//68 +f 75//75 1075//1075 1074//1074 72//72 +f 1074//1074 1076//1076 1063//1063 1061//1061 +f 1075//1075 1077//1077 1076//1076 1074//1074 +f 88//88 1078//1078 1079//1079 89//89 +f 1078//1078 1080//1080 1081//1081 1079//1079 +f 89//89 1079//1079 1075//1075 75//75 +f 1079//1079 1081//1081 1077//1077 1075//1075 +f 1082//1082 1083//1083 1084//1084 1085//1085 +f 1086//1086 1087//1087 1083//1083 1082//1082 +f 1083//1083 1081//1081 1080//1080 1084//1084 +f 1087//1087 1077//1077 1081//1081 1083//1083 +f 1068//1068 1067//1067 1088//1088 1089//1089 +f 1067//1067 1063//1063 1076//1076 1088//1088 +f 1089//1089 1088//1088 1087//1087 1086//1086 +f 1088//1088 1076//1076 1077//1077 1087//1087 +f 92//92 1090//1090 1078//1078 88//88 +f 95//95 1091//1091 1090//1090 92//92 +f 1090//1090 1092//1092 1080//1080 1078//1078 +f 1091//1091 1093//1093 1092//1092 1090//1090 +f 108//108 107//107 112//112 1094//1094 +f 1094//1094 112//112 115//115 1095//1095 +f 95//95 108//108 1094//1094 1091//1091 +f 1091//1091 1094//1094 1095//1095 1093//1093 +f 1096//1096 1097//1097 128//128 127//127 +f 1098//1098 1099//1099 1097//1097 1096//1096 +f 1097//1097 1095//1095 115//115 128//128 +f 1099//1099 1093//1093 1095//1095 1097//1097 +f 1085//1085 1084//1084 1100//1100 1101//1101 +f 1084//1084 1080//1080 1092//1092 1100//1100 +f 1101//1101 1100//1100 1099//1099 1098//1098 +f 1100//1100 1092//1092 1093//1093 1099//1099 +f 152//152 1102//1102 1103//1103 147//147 +f 155//155 1104//1104 1102//1102 152//152 +f 1102//1102 1105//1105 1106//1106 1103//1103 +f 1104//1104 1107//1107 1105//1105 1102//1102 +f 168//168 1108//1108 1109//1109 169//169 +f 1108//1108 1110//1110 1111//1111 1109//1109 +f 169//169 1109//1109 1104//1104 155//155 +f 1109//1109 1111//1111 1107//1107 1104//1104 +f 1112//1112 1113//1113 1114//1114 1115//1115 +f 1116//1116 1117//1117 1113//1113 1112//1112 +f 1113//1113 1111//1111 1110//1110 1114//1114 +f 1117//1117 1107//1107 1111//1111 1113//1113 +f 1118//1118 1119//1119 1120//1120 1121//1121 +f 1119//1119 1106//1106 1105//1105 1120//1120 +f 1121//1121 1120//1120 1117//1117 1116//1116 +f 1120//1120 1105//1105 1107//1107 1117//1117 +f 1121//1121 1122//1122 1123//1123 1118//1118 +f 1116//1116 1124//1124 1122//1122 1121//1121 +f 1122//1122 1125//1125 1126//1126 1123//1123 +f 1124//1124 1127//1127 1125//1125 1122//1122 +f 1115//1115 1128//1128 1129//1129 1112//1112 +f 1128//1128 1130//1130 1131//1131 1129//1129 +f 1112//1112 1129//1129 1124//1124 1116//1116 +f 1129//1129 1131//1131 1127//1127 1124//1124 +f 1132//1132 1133//1133 1134//1134 1135//1135 +f 1136//1136 1137//1137 1133//1133 1132//1132 +f 1133//1133 1131//1131 1130//1130 1134//1134 +f 1137//1137 1127//1127 1131//1131 1133//1133 +f 1138//1138 1139//1139 1140//1140 1141//1141 +f 1139//1139 1126//1126 1125//1125 1140//1140 +f 1141//1141 1140//1140 1137//1137 1136//1136 +f 1140//1140 1125//1125 1127//1127 1137//1137 +f 1141//1141 1142//1142 1143//1143 1138//1138 +f 1136//1136 1144//1144 1142//1142 1141//1141 +f 1142//1142 1145//1145 1146//1146 1143//1143 +f 1144//1144 1147//1147 1145//1145 1142//1142 +f 1135//1135 1148//1148 1149//1149 1132//1132 +f 1148//1148 1150//1150 1151//1151 1149//1149 +f 1132//1132 1149//1149 1144//1144 1136//1136 +f 1149//1149 1151//1151 1147//1147 1144//1144 +f 1152//1152 1153//1153 1154//1154 1155//1155 +f 1156//1156 1157//1157 1153//1153 1152//1152 +f 1153//1153 1151//1151 1150//1150 1154//1154 +f 1157//1157 1147//1147 1151//1151 1153//1153 +f 23//23 1158//1158 1159//1159 1160//1160 +f 1158//1158 1146//1146 1145//1145 1159//1159 +f 1160//1160 1159//1159 1157//1157 1156//1156 +f 1159//1159 1145//1145 1147//1147 1157//1157 +f 1160//1160 1161//1161 24//24 23//23 +f 1156//1156 1162//1162 1161//1161 1160//1160 +f 1161//1161 1163//1163 8//7 24//24 +f 1162//1162 1164//1164 1163//1163 1161//1161 +f 1155//1155 1165//1165 1166//1166 1152//1152 +f 1165//1165 1167//1167 1168//1168 1166//1166 +f 1152//1152 1166//1166 1162//1162 1156//1156 +f 1166//1166 1168//1168 1164//1164 1162//1162 +f 1169//1169 1170//1170 1171//1171 1172//1172 +f 1173//1173 1174//1174 1170//1170 1169//1169 +f 1170//1170 1168//1168 1167//1167 1171//1171 +f 1174//1174 1164//1164 1168//1168 1170//1170 +f 4//1175 3//8 1175//1176 1176//1177 +f 3//8 8//7 1163//1163 1175//1176 +f 1176//1177 1175//1176 1174//1174 1173//1173 +f 1175//1176 1163//1163 1164//1164 1174//1174 +f 11//11 1177//1178 1178//1179 12//12 +f 1177//1178 1179//1180 1180//1181 1178//1179 +f 12//12 1178//1179 1181//1182 14//14 +f 1178//1179 1180//1181 1182//1183 1181//1182 +f 1183//1184 29//29 28//28 1184//1185 +f 1184//1185 28//28 33//33 1185//1186 +f 1179//1180 1183//1184 1184//1185 1180//1181 +f 1180//1181 1184//1185 1185//1186 1182//1183 +f 48//48 1056//1056 1186//1187 49//49 +f 1056//1056 1059//1059 1187//1188 1186//1187 +f 49//49 1186//1187 1185//1186 33//33 +f 1186//1187 1187//1188 1182//1183 1185//1186 +f 1071//1071 16//16 19//19 1188//1189 +f 1188//1189 19//19 14//14 1181//1182 +f 1059//1059 1071//1071 1188//1189 1187//1188 +f 1187//1188 1188//1189 1181//1182 1182//1183 +f 1068//1068 1189//1190 1190//1191 1065//1065 +f 1189//1190 1191//1192 1192//1193 1190//1191 +f 1065//1065 1190//1191 1193//1194 1069//1069 +f 1190//1191 1192//1193 1194//1195 1193//1194 +f 1195//1196 1138//1138 1143//1143 1196//1197 +f 1196//1197 1143//1143 1146//1146 1197//1198 +f 1191//1192 1195//1196 1196//1197 1192//1193 +f 1192//1193 1196//1197 1197//1198 1194//1195 +f 23//23 22//22 1198//1199 1158//1158 +f 22//22 20//20 1199//1200 1198//1199 +f 1158//1158 1198//1199 1197//1198 1146//1146 +f 1198//1199 1199//1200 1194//1195 1197//1198 +f 17//17 16//16 1073//1073 1200//1201 +f 1200//1201 1073//1073 1069//1069 1193//1194 +f 20//20 17//17 1200//1201 1199//1200 +f 1199//1200 1200//1201 1193//1194 1194//1195 +f 1085//1085 1201//1202 1202//1203 1082//1082 +f 1201//1202 1203//1204 1204//1205 1202//1203 +f 1082//1082 1202//1203 1205//1206 1086//1086 +f 1202//1203 1204//1205 1206//1207 1205//1206 +f 1207//1208 1118//1118 1123//1123 1208//1209 +f 1208//1209 1123//1123 1126//1126 1209//1210 +f 1203//1204 1207//1208 1208//1209 1204//1205 +f 1204//1205 1208//1209 1209//1210 1206//1207 +f 1138//1138 1195//1196 1210//1211 1139//1139 +f 1195//1196 1191//1192 1211//1212 1210//1211 +f 1139//1139 1210//1211 1209//1210 1126//1126 +f 1210//1211 1211//1212 1206//1207 1209//1210 +f 1189//1190 1068//1068 1089//1089 1212//1213 +f 1212//1213 1089//1089 1086//1086 1205//1206 +f 1191//1192 1189//1190 1212//1213 1211//1212 +f 1211//1212 1212//1213 1205//1206 1206//1207 +f 1213//1214 1214//1215 1128//1128 1115//1115 +f 1215//1216 1216//1217 1214//1215 1213//1214 +f 1214//1215 1217//1218 1130//1130 1128//1128 +f 1216//1217 1218//1219 1217//1218 1214//1215 +f 207//207 212//212 1219//1220 1220//1221 +f 212//212 215//215 1221//1222 1219//1220 +f 1220//1221 1219//1220 1216//1217 1215//1216 +f 1219//1220 1221//1222 1218//1219 1216//1217 +f 1222//1223 1223//1224 228//228 227//227 +f 1224//1225 1225//1226 1223//1224 1222//1223 +f 1223//1224 1221//1222 215//215 228//228 +f 1225//1226 1218//1219 1221//1222 1223//1224 +f 1135//1135 1134//1134 1226//1227 1227//1228 +f 1134//1134 1130//1130 1217//1218 1226//1227 +f 1227//1228 1226//1227 1225//1226 1224//1225 +f 1226//1227 1217//1218 1218//1219 1225//1226 +f 1227//1228 1228//1229 1148//1148 1135//1135 +f 1224//1225 1229//1230 1228//1229 1227//1228 +f 1228//1229 1230//1231 1150//1150 1148//1148 +f 1229//1230 1231//1232 1230//1231 1228//1229 +f 227//227 232//232 1232//1233 1222//1223 +f 232//232 235//235 1233//1234 1232//1233 +f 1222//1223 1232//1233 1229//1230 1224//1225 +f 1232//1233 1233//1234 1231//1232 1229//1230 +f 1234//1235 1235//1236 248//248 247//247 +f 1236//1237 1237//1238 1235//1236 1234//1235 +f 1235//1236 1233//1234 235//235 248//248 +f 1237//1238 1231//1232 1233//1234 1235//1236 +f 1155//1155 1154//1154 1238//1239 1239//1240 +f 1154//1154 1150//1150 1230//1231 1238//1239 +f 1239//1240 1238//1239 1237//1238 1236//1237 +f 1238//1239 1230//1231 1231//1232 1237//1238 +f 1239//1240 1240//1241 1165//1165 1155//1155 +f 1236//1237 1241//1242 1240//1241 1239//1240 +f 1240//1241 1242//1243 1167//1167 1165//1165 +f 1241//1242 1243//1244 1242//1243 1240//1241 +f 247//247 252//252 1244//1245 1234//1235 +f 252//252 255//255 1245//1246 1244//1245 +f 1234//1235 1244//1245 1241//1242 1236//1237 +f 1244//1245 1245//1246 1243//1244 1241//1242 +f 1246//1247 1247//1248 268//268 267//267 +f 1248//1249 1249//1250 1247//1248 1246//1247 +f 1247//1248 1245//1246 255//255 268//268 +f 1249//1250 1243//1244 1245//1246 1247//1248 +f 1172//1172 1171//1171 1250//1251 1251//1252 +f 1171//1171 1167//1167 1242//1243 1250//1251 +f 1251//1252 1250//1251 1249//1250 1248//1249 +f 1250//1251 1242//1243 1243//1244 1249//1250 +f 127//127 132//132 1252//1253 1096//1096 +f 132//132 135//135 1253//1254 1252//1253 +f 1096//1096 1252//1253 1254//1255 1098//1098 +f 1252//1253 1253//1254 1255//1256 1254//1255 +f 148//148 147//147 1103//1103 1256//1257 +f 1256//1257 1103//1103 1106//1106 1257//1258 +f 135//135 148//148 1256//1257 1253//1254 +f 1253//1254 1256//1257 1257//1258 1255//1256 +f 1118//1118 1207//1208 1258//1259 1119//1119 +f 1207//1208 1203//1204 1259//1260 1258//1259 +f 1119//1119 1258//1259 1257//1258 1106//1106 +f 1258//1259 1259//1260 1255//1256 1257//1258 +f 1201//1202 1085//1085 1101//1101 1260//1261 +f 1260//1261 1101//1101 1098//1098 1254//1255 +f 1203//1204 1201//1202 1260//1261 1259//1260 +f 1259//1260 1260//1261 1254//1255 1255//1256 +f 172//172 1261//1262 1108//1108 168//168 +f 175//175 1262//1263 1261//1262 172//172 +f 1261//1262 1263//1264 1110//1110 1108//1108 +f 1262//1263 1264//1265 1263//1264 1261//1262 +f 188//188 187//187 192//192 1265//1266 +f 1265//1266 192//192 195//195 1266//1267 +f 175//175 188//188 1265//1266 1262//1263 +f 1262//1263 1265//1266 1266//1267 1264//1265 +f 1220//1221 1267//1268 208//208 207//207 +f 1215//1216 1268//1269 1267//1268 1220//1221 +f 1267//1268 1266//1267 195//195 208//208 +f 1268//1269 1264//1265 1266//1267 1267//1268 +f 1115//1115 1114//1114 1269//1270 1213//1214 +f 1114//1114 1110//1110 1263//1264 1269//1270 +f 1213//1214 1269//1270 1268//1269 1215//1216 +f 1269//1270 1263//1264 1264//1265 1268//1269 +f 1270//1271 1271//1272 1//5 4//1175 +f 1272//1273 1273//1274 1271//1272 1270//1271 +f 1271//1272 1274//1275 5//2 1//5 +f 1271//1272 1273//1274 1275//1276 1274//1275 +f 1276//1277 1277//1278 1278//1279 1279//1280 +f 1279//1280 1278//1279 1280//1281 1281//1282 +f 1272//1273 1276//1277 1279//1280 1273//1274 +f 1273//1274 1279//1280 1281//1282 1275//1276 +f 1282//1283 1283//1284 1284//1285 1285//1286 +f 1283//1284 1286//1287 1287//1288 1284//1285 +f 1285//1286 1284//1285 1281//1282 1280//1281 +f 1284//1285 1287//1288 1275//1276 1281//1282 +f 1288//1289 11//11 10//10 1289//1290 +f 1289//1290 10//10 5//2 1274//1275 +f 1286//1287 1288//1289 1289//1290 1287//1288 +f 1287//1288 1289//1290 1274//1275 1275//1276 +f 1290//1291 1291//1292 26//26 29//29 +f 1290//1291 1292//1293 1293//1294 1291//1292 +f 1291//1292 1294//1295 30//30 26//26 +f 1293//1294 1295//1296 1294//1295 1291//1292 +f 1296//1297 1297//1298 1298//1299 1299//1300 +f 1299//1300 1298//1299 1300//1301 1301//1302 +f 1292//1293 1296//1297 1299//1300 1293//1294 +f 1293//1294 1299//1300 1301//1302 1295//1296 +f 1302//1303 1303//1304 1304//1305 1305//1306 +f 1306//1307 1307//1308 1303//1304 1302//1303 +f 1303//1304 1301//1302 1300//1301 1304//1305 +f 1307//1308 1295//1296 1301//1302 1303//1304 +f 35//35 38//38 1308//1309 1309//1310 +f 38//38 30//30 1294//1295 1308//1309 +f 1309//1310 1308//1309 1307//1308 1306//1307 +f 1308//1309 1294//1295 1295//1296 1307//1308 +f 1297//1298 1310//1311 1311//1312 1298//1299 +f 1310//1311 1312//1313 1313//1314 1311//1312 +f 1298//1299 1311//1312 1314//1315 1300//1301 +f 1311//1312 1313//1314 1315//1316 1314//1315 +f 1316//1317 1317//1318 1318//1319 1319//1320 +f 1319//1320 1318//1319 1320//1321 1321//1322 +f 1312//1313 1316//1317 1319//1320 1313//1314 +f 1313//1314 1319//1320 1321//1322 1315//1316 +f 1322//1323 1323//1324 1324//1325 1325//1326 +f 1326//1327 1327//1328 1323//1324 1322//1323 +f 1324//1325 1323//1324 1321//1322 1320//1321 +f 1323//1324 1327//1328 1315//1316 1321//1322 +f 1305//1306 1304//1305 1328//1329 1329//1330 +f 1304//1305 1300//1301 1314//1315 1328//1329 +f 1329//1330 1328//1329 1327//1328 1326//1327 +f 1327//1328 1328//1329 1314//1315 1315//1316 +f 1317//1318 1330//1331 1331//1332 1318//1319 +f 1330//1331 1332//1333 1333//1334 1331//1332 +f 1318//1319 1331//1332 1334//1335 1320//1321 +f 1331//1332 1333//1334 1335//1336 1334//1335 +f 1336//1337 1337//1338 1338//1339 1339//1340 +f 1339//1340 1338//1339 1340//1341 1341//1342 +f 1332//1333 1336//1337 1339//1340 1333//1334 +f 1333//1334 1339//1340 1341//1342 1335//1336 +f 1342//1343 1343//1344 1344//1345 1345//1346 +f 1346//1347 1347//1348 1343//1344 1342//1343 +f 1344//1345 1343//1344 1341//1342 1340//1341 +f 1343//1344 1347//1348 1335//1336 1341//1342 +f 1325//1326 1324//1325 1348//1349 1349//1350 +f 1348//1349 1324//1325 1320//1321 1334//1335 +f 1349//1350 1348//1349 1347//1348 1346//1347 +f 1347//1348 1348//1349 1334//1335 1335//1336 +f 1337//1338 1350//1351 1351//1352 1338//1339 +f 1352//1353 1353//1354 1351//1352 1350//1351 +f 1338//1339 1351//1352 1354//1355 1340//1341 +f 1353//1354 1355//1356 1354//1355 1351//1352 +f 1356//1357 1357//1358 1358//1359 1359//1360 +f 1357//1358 1360//1361 1361//1362 1358//1359 +f 1359//1360 1358//1359 1353//1354 1352//1353 +f 1358//1359 1361//1362 1355//1356 1353//1354 +f 1362//1363 1363//1364 1364//1365 1365//1366 +f 1366//1367 1367//1368 1363//1364 1362//1363 +f 1363//1364 1361//1362 1360//1361 1364//1365 +f 1367//1368 1355//1356 1361//1362 1363//1364 +f 1345//1346 1344//1345 1368//1369 1369//1370 +f 1368//1369 1344//1345 1340//1341 1354//1355 +f 1369//1370 1368//1369 1367//1368 1366//1367 +f 1368//1369 1354//1355 1355//1356 1367//1368 +f 1356//1357 1370//1371 1371//1372 1357//1358 +f 1370//1371 1372//1373 1373//1374 1371//1372 +f 1357//1358 1371//1372 1374//1375 1360//1361 +f 1371//1372 1373//1374 1375//1376 1374//1375 +f 1376//1377 1377//1378 1378//1379 1379//1380 +f 1377//1378 1380//1381 1381//1382 1378//1379 +f 1372//1373 1379//1380 1378//1379 1373//1374 +f 1373//1374 1378//1379 1381//1382 1375//1376 +f 1382//1383 1383//1384 1384//1385 1385//1386 +f 1386//1387 1387//1388 1383//1384 1382//1383 +f 1383//1384 1381//1382 1380//1381 1384//1385 +f 1387//1388 1375//1376 1381//1382 1383//1384 +f 1365//1366 1364//1365 1388//1389 1389//1390 +f 1388//1389 1364//1365 1360//1361 1374//1375 +f 1389//1390 1388//1389 1387//1388 1386//1387 +f 1387//1388 1388//1389 1374//1375 1375//1376 +f 1390//1391 1391//1392 1377//1378 1376//1377 +f 1392//1393 1393//1394 1391//1392 1390//1391 +f 1391//1392 1394//1395 1380//1381 1377//1378 +f 1393//1394 1395//1396 1394//1395 1391//1392 +f 1396//1397 1397//1398 1398//1399 1399//1400 +f 1397//1398 1400//1401 1401//1402 1398//1399 +f 1399//1400 1398//1399 1393//1394 1392//1393 +f 1398//1399 1401//1402 1395//1396 1393//1394 +f 1402//1403 1403//1404 1404//1405 1405//1406 +f 1406//1407 1407//1408 1403//1404 1402//1403 +f 1403//1404 1401//1402 1400//1401 1404//1405 +f 1407//1408 1395//1396 1401//1402 1403//1404 +f 1385//1386 1384//1385 1408//1409 1409//1410 +f 1384//1385 1380//1381 1394//1395 1408//1409 +f 1409//1410 1408//1409 1407//1408 1406//1407 +f 1408//1409 1394//1395 1395//1396 1407//1408 +f 1396//1397 1410//1411 1411//1412 1397//1398 +f 1410//1411 1412//1413 1413//1414 1411//1412 +f 1411//1412 1414//1415 1400//1401 1397//1398 +f 1411//1412 1413//1414 1415//1416 1414//1415 +f 1416//1417 1417//1418 1418//1419 1419//1420 +f 1419//1420 1418//1419 1420//1421 1421//1422 +f 1412//1413 1416//1417 1419//1420 1413//1414 +f 1413//1414 1419//1420 1421//1422 1415//1416 +f 1422//1423 1423//1424 1424//1425 1425//1426 +f 1426//1427 1427//1428 1423//1424 1422//1423 +f 1424//1425 1423//1424 1421//1422 1420//1421 +f 1427//1428 1415//1416 1421//1422 1423//1424 +f 1405//1406 1404//1405 1428//1429 1429//1430 +f 1404//1405 1400//1401 1414//1415 1428//1429 +f 1429//1430 1428//1429 1427//1428 1426//1427 +f 1428//1429 1414//1415 1415//1416 1427//1428 +f 1417//1418 1430//1431 1431//1432 1418//1419 +f 1432//1433 1433//1434 1431//1432 1430//1431 +f 1418//1419 1431//1432 1434//1435 1420//1421 +f 1433//1434 1435//1436 1434//1435 1431//1432 +f 1436//1437 1437//1438 1438//1439 1439//1440 +f 1437//1438 1440//1441 1441//1442 1438//1439 +f 1439//1440 1438//1439 1433//1434 1432//1433 +f 1438//1439 1441//1442 1435//1436 1433//1434 +f 1442//1443 1443//1444 1444//1445 1445//1446 +f 1446//1447 1447//1448 1443//1444 1442//1443 +f 1443//1444 1441//1442 1440//1441 1444//1445 +f 1447//1448 1435//1436 1441//1442 1443//1444 +f 1425//1426 1424//1425 1448//1449 1449//1450 +f 1448//1449 1424//1425 1420//1421 1434//1435 +f 1449//1450 1448//1449 1447//1448 1446//1447 +f 1448//1449 1434//1435 1435//1436 1447//1448 +f 1436//1437 1450//1451 1451//1452 1437//1438 +f 1450//1451 1452//1453 1453//1454 1451//1452 +f 1437//1438 1451//1452 1454//1455 1440//1441 +f 1451//1452 1453//1454 1455//1456 1454//1455 +f 1456//1457 1457//1458 1458//1459 1459//1460 +f 1457//1458 1460//1461 1461//1462 1458//1459 +f 1452//1453 1459//1460 1458//1459 1453//1454 +f 1458//1459 1461//1462 1455//1456 1453//1454 +f 1462//1463 1463//1464 1464//1465 1465//1466 +f 1466//1467 1467//1468 1463//1464 1462//1463 +f 1463//1464 1461//1462 1460//1461 1464//1465 +f 1467//1468 1455//1456 1461//1462 1463//1464 +f 1445//1446 1444//1445 1468//1469 1469//1470 +f 1468//1469 1444//1445 1440//1441 1454//1455 +f 1469//1470 1468//1469 1467//1468 1466//1467 +f 1467//1468 1468//1469 1454//1455 1455//1456 +f 1470//1471 1471//1472 1457//1458 1456//1457 +f 1472//1473 1473//1474 1471//1472 1470//1471 +f 1471//1472 1474//1475 1460//1461 1457//1458 +f 1473//1474 1475//1476 1474//1475 1471//1472 +f 1476//1477 1477//1478 1478//1479 1479//1480 +f 1477//1478 1480//1481 1481//1482 1478//1479 +f 1479//1480 1478//1479 1473//1474 1472//1473 +f 1478//1479 1481//1482 1475//1476 1473//1474 +f 1482//1483 1483//1484 1484//1485 1485//1486 +f 1486//1487 1487//1488 1483//1484 1482//1483 +f 1483//1484 1481//1482 1480//1481 1484//1485 +f 1487//1488 1475//1476 1481//1482 1483//1484 +f 1465//1466 1464//1465 1488//1489 1489//1490 +f 1464//1465 1460//1461 1474//1475 1488//1489 +f 1489//1490 1488//1489 1487//1488 1486//1487 +f 1488//1489 1474//1475 1475//1476 1487//1488 +f 1490//1491 1491//1492 1477//1478 1476//1477 +f 1492//1493 1493//1494 1491//1492 1490//1491 +f 1491//1492 1494//1495 1480//1481 1477//1478 +f 1493//1494 1495//1496 1494//1495 1491//1492 +f 1496//1497 1497//1498 1498//1499 1499//1500 +f 1497//1498 1500//1501 1501//1502 1498//1499 +f 1499//1500 1498//1499 1493//1494 1492//1493 +f 1498//1499 1501//1502 1495//1496 1493//1494 +f 1502//1503 1503//1504 1504//1505 1505//1506 +f 1506//1507 1507//1508 1503//1504 1502//1503 +f 1503//1504 1501//1502 1500//1501 1504//1505 +f 1507//1508 1495//1496 1501//1502 1503//1504 +f 1485//1486 1484//1485 1508//1509 1509//1510 +f 1484//1485 1480//1481 1494//1495 1508//1509 +f 1509//1510 1508//1509 1507//1508 1506//1507 +f 1508//1509 1494//1495 1495//1496 1507//1508 +f 1510//1511 1511//1512 1497//1498 1496//1497 +f 1512//1513 1513//1514 1511//1512 1510//1511 +f 1511//1512 1514//1515 1500//1501 1497//1498 +f 1513//1514 1515//1516 1514//1515 1511//1512 +f 267//267 270//270 1516//1517 1517//1518 +f 270//270 265//265 1518//1519 1516//1517 +f 1517//1518 1516//1517 1513//1514 1512//1513 +f 1516//1517 1518//1519 1515//1516 1513//1514 +f 1519//1520 1520//1521 261//261 264//264 +f 1521//1522 1522//1523 1520//1521 1519//1520 +f 1520//1521 1518//1519 265//265 261//261 +f 1522//1523 1515//1516 1518//1519 1520//1521 +f 1505//1506 1504//1505 1523//1524 1524//1525 +f 1504//1505 1500//1501 1514//1515 1523//1524 +f 1524//1525 1523//1524 1522//1523 1521//1522 +f 1523//1524 1514//1515 1515//1516 1522//1523 +f 1309//1310 1525//1526 271//271 35//35 +f 1306//1307 1526//1527 1525//1526 1309//1310 +f 1525//1526 1527//1528 273//273 271//271 +f 1526//1527 1528//1529 1527//1528 1525//1526 +f 1305//1306 1529//1530 1530//1531 1302//1303 +f 1529//1530 1531//1532 1532//1533 1530//1531 +f 1302//1303 1530//1531 1526//1527 1306//1307 +f 1530//1531 1532//1533 1528//1529 1526//1527 +f 1533//1534 1534//1535 1535//1536 1536//1537 +f 1537//1538 1538//1539 1534//1535 1533//1534 +f 1534//1535 1532//1533 1531//1532 1535//1536 +f 1538//1539 1528//1529 1532//1533 1534//1535 +f 277//277 280//280 1539//1540 1540//1541 +f 280//280 273//273 1527//1528 1539//1540 +f 1540//1541 1539//1540 1538//1539 1537//1538 +f 1539//1540 1527//1528 1528//1529 1538//1539 +f 1329//1330 1541//1542 1529//1530 1305//1306 +f 1326//1327 1542//1543 1541//1542 1329//1330 +f 1541//1542 1543//1544 1531//1532 1529//1530 +f 1542//1543 1544//1545 1543//1544 1541//1542 +f 1325//1326 1545//1546 1546//1547 1322//1323 +f 1545//1546 1547//1548 1548//1549 1546//1547 +f 1322//1323 1546//1547 1542//1543 1326//1327 +f 1546//1547 1548//1549 1544//1545 1542//1543 +f 1549//1550 1550//1551 1551//1552 1552//1553 +f 1553//1554 1554//1555 1550//1551 1549//1550 +f 1550//1551 1548//1549 1547//1548 1551//1552 +f 1554//1555 1544//1545 1548//1549 1550//1551 +f 1536//1537 1535//1536 1555//1556 1556//1557 +f 1535//1536 1531//1532 1543//1544 1555//1556 +f 1556//1557 1555//1556 1554//1555 1553//1554 +f 1555//1556 1543//1544 1544//1545 1554//1555 +f 1349//1350 1557//1558 1545//1546 1325//1326 +f 1346//1347 1558//1559 1557//1558 1349//1350 +f 1557//1558 1559//1560 1547//1548 1545//1546 +f 1558//1559 1560//1561 1559//1560 1557//1558 +f 1345//1346 1561//1562 1562//1563 1342//1343 +f 1561//1562 1563//1564 1564//1565 1562//1563 +f 1342//1343 1562//1563 1558//1559 1346//1347 +f 1562//1563 1564//1565 1560//1561 1558//1559 +f 1565//1566 1566//1567 1567//1568 1568//1569 +f 1569//1570 1570//1571 1566//1567 1565//1566 +f 1566//1567 1564//1565 1563//1564 1567//1568 +f 1570//1571 1560//1561 1564//1565 1566//1567 +f 1552//1553 1551//1552 1571//1572 1572//1573 +f 1551//1552 1547//1548 1559//1560 1571//1572 +f 1572//1573 1571//1572 1570//1571 1569//1570 +f 1571//1572 1559//1560 1560//1561 1570//1571 +f 1369//1370 1573//1574 1561//1562 1345//1346 +f 1366//1367 1574//1575 1573//1574 1369//1370 +f 1573//1574 1575//1576 1563//1564 1561//1562 +f 1574//1575 1576//1577 1575//1576 1573//1574 +f 1365//1366 1577//1578 1578//1579 1362//1363 +f 1577//1578 1579//1580 1580//1581 1578//1579 +f 1362//1363 1578//1579 1574//1575 1366//1367 +f 1578//1579 1580//1581 1576//1577 1574//1575 +f 1581//1582 1582//1583 1583//1584 1584//1585 +f 1585//1586 1586//1587 1582//1583 1581//1582 +f 1582//1583 1580//1581 1579//1580 1583//1584 +f 1586//1587 1576//1577 1580//1581 1582//1583 +f 1568//1569 1567//1568 1587//1588 1588//1589 +f 1567//1568 1563//1564 1575//1576 1587//1588 +f 1588//1589 1587//1588 1586//1587 1585//1586 +f 1587//1588 1575//1576 1576//1577 1586//1587 +f 1389//1390 1589//1590 1577//1578 1365//1366 +f 1386//1387 1590//1591 1589//1590 1389//1390 +f 1589//1590 1591//1592 1579//1580 1577//1578 +f 1590//1591 1592//1593 1591//1592 1589//1590 +f 1385//1386 1593//1594 1594//1595 1382//1383 +f 1593//1594 1595//1596 1596//1597 1594//1595 +f 1382//1383 1594//1595 1590//1591 1386//1387 +f 1594//1595 1596//1597 1592//1593 1590//1591 +f 1597//1598 1598//1599 1599//1600 1600//1601 +f 1601//1602 1602//1603 1598//1599 1597//1598 +f 1598//1599 1596//1597 1595//1596 1599//1600 +f 1602//1603 1592//1593 1596//1597 1598//1599 +f 1584//1585 1583//1584 1603//1604 1604//1605 +f 1583//1584 1579//1580 1591//1592 1603//1604 +f 1604//1605 1603//1604 1602//1603 1601//1602 +f 1603//1604 1591//1592 1592//1593 1602//1603 +f 1409//1410 1605//1606 1593//1594 1385//1386 +f 1406//1407 1606//1607 1605//1606 1409//1410 +f 1605//1606 1607//1608 1595//1596 1593//1594 +f 1606//1607 1608//1609 1607//1608 1605//1606 +f 1405//1406 1609//1610 1610//1611 1402//1403 +f 1609//1610 1611//1612 1612//1613 1610//1611 +f 1402//1403 1610//1611 1606//1607 1406//1407 +f 1610//1611 1612//1613 1608//1609 1606//1607 +f 1613//1614 1614//1615 1615//1616 1616//1617 +f 1617//1618 1618//1619 1614//1615 1613//1614 +f 1614//1615 1612//1613 1611//1612 1615//1616 +f 1618//1619 1608//1609 1612//1613 1614//1615 +f 1600//1601 1599//1600 1619//1620 1620//1621 +f 1599//1600 1595//1596 1607//1608 1619//1620 +f 1620//1621 1619//1620 1618//1619 1617//1618 +f 1619//1620 1607//1608 1608//1609 1618//1619 +f 1429//1430 1621//1622 1609//1610 1405//1406 +f 1426//1427 1622//1623 1621//1622 1429//1430 +f 1621//1622 1623//1624 1611//1612 1609//1610 +f 1622//1623 1624//1625 1623//1624 1621//1622 +f 1425//1426 1625//1626 1626//1627 1422//1423 +f 1625//1626 1627//1628 1628//1629 1626//1627 +f 1422//1423 1626//1627 1622//1623 1426//1427 +f 1626//1627 1628//1629 1624//1625 1622//1623 +f 1629//1630 1630//1631 1631//1632 1632//1633 +f 1633//1634 1634//1635 1630//1631 1629//1630 +f 1630//1631 1628//1629 1627//1628 1631//1632 +f 1634//1635 1624//1625 1628//1629 1630//1631 +f 1616//1617 1615//1616 1635//1636 1636//1637 +f 1615//1616 1611//1612 1623//1624 1635//1636 +f 1636//1637 1635//1636 1634//1635 1633//1634 +f 1635//1636 1623//1624 1624//1625 1634//1635 +f 1449//1450 1637//1638 1625//1626 1425//1426 +f 1446//1447 1638//1639 1637//1638 1449//1450 +f 1637//1638 1639//1640 1627//1628 1625//1626 +f 1638//1639 1640//1641 1639//1640 1637//1638 +f 1445//1446 1641//1642 1642//1643 1442//1443 +f 1641//1642 1643//1644 1644//1645 1642//1643 +f 1442//1443 1642//1643 1638//1639 1446//1447 +f 1642//1643 1644//1645 1640//1641 1638//1639 +f 1645//1646 1646//1647 1647//1648 1648//1649 +f 1649//1650 1650//1651 1646//1647 1645//1646 +f 1646//1647 1644//1645 1643//1644 1647//1648 +f 1650//1651 1640//1641 1644//1645 1646//1647 +f 1632//1633 1631//1632 1651//1652 1652//1653 +f 1631//1632 1627//1628 1639//1640 1651//1652 +f 1652//1653 1651//1652 1650//1651 1649//1650 +f 1651//1652 1639//1640 1640//1641 1650//1651 +f 1469//1470 1653//1654 1641//1642 1445//1446 +f 1466//1467 1654//1655 1653//1654 1469//1470 +f 1653//1654 1655//1656 1643//1644 1641//1642 +f 1654//1655 1656//1657 1655//1656 1653//1654 +f 1465//1466 1657//1658 1658//1659 1462//1463 +f 1657//1658 1659//1660 1660//1661 1658//1659 +f 1462//1463 1658//1659 1654//1655 1466//1467 +f 1658//1659 1660//1661 1656//1657 1654//1655 +f 1661//1662 1662//1663 1663//1664 1664//1665 +f 1665//1666 1666//1667 1662//1663 1661//1662 +f 1662//1663 1660//1661 1659//1660 1663//1664 +f 1666//1667 1656//1657 1660//1661 1662//1663 +f 1648//1649 1647//1648 1667//1668 1668//1669 +f 1647//1648 1643//1644 1655//1656 1667//1668 +f 1668//1669 1667//1668 1666//1667 1665//1666 +f 1667//1668 1655//1656 1656//1657 1666//1667 +f 1489//1490 1669//1670 1657//1658 1465//1466 +f 1486//1487 1670//1671 1669//1670 1489//1490 +f 1669//1670 1671//1672 1659//1660 1657//1658 +f 1670//1671 1672//1673 1671//1672 1669//1670 +f 1485//1486 1673//1674 1674//1675 1482//1483 +f 1673//1674 1675//1676 1676//1677 1674//1675 +f 1482//1483 1674//1675 1670//1671 1486//1487 +f 1674//1675 1676//1677 1672//1673 1670//1671 +f 1677//1678 1678//1679 1679//1680 1680//1681 +f 1681//1682 1682//1683 1678//1679 1677//1678 +f 1678//1679 1676//1677 1675//1676 1679//1680 +f 1682//1683 1672//1673 1676//1677 1678//1679 +f 1664//1665 1663//1664 1683//1684 1684//1685 +f 1663//1664 1659//1660 1671//1672 1683//1684 +f 1684//1685 1683//1684 1682//1683 1681//1682 +f 1683//1684 1671//1672 1672//1673 1682//1683 +f 1509//1510 1685//1686 1673//1674 1485//1486 +f 1506//1507 1686//1687 1685//1686 1509//1510 +f 1685//1686 1687//1688 1675//1676 1673//1674 +f 1686//1687 1688//1689 1687//1688 1685//1686 +f 1505//1506 1689//1690 1690//1691 1502//1503 +f 1689//1690 1691//1692 1692//1693 1690//1691 +f 1502//1503 1690//1691 1686//1687 1506//1507 +f 1690//1691 1692//1693 1688//1689 1686//1687 +f 1693//1694 1694//1695 1695//1696 1696//1697 +f 1697//1698 1698//1699 1694//1695 1693//1694 +f 1694//1695 1692//1693 1691//1692 1695//1696 +f 1698//1699 1688//1689 1692//1693 1694//1695 +f 1680//1681 1679//1680 1699//1700 1700//1701 +f 1679//1680 1675//1676 1687//1688 1699//1700 +f 1700//1701 1699//1700 1698//1699 1697//1698 +f 1699//1700 1687//1688 1688//1689 1698//1699 +f 1524//1525 1701//1702 1689//1690 1505//1506 +f 1521//1522 1702//1703 1701//1702 1524//1525 +f 1701//1702 1703//1704 1691//1692 1689//1690 +f 1702//1703 1704//1705 1703//1704 1701//1702 +f 264//264 466//466 1705//1706 1519//1520 +f 466//466 463//463 1706//1707 1705//1706 +f 1519//1520 1705//1706 1702//1703 1521//1522 +f 1705//1706 1706//1707 1704//1705 1702//1703 +f 1707//1708 1708//1709 459//459 462//462 +f 1709//1710 1710//1711 1708//1709 1707//1708 +f 1708//1709 1706//1707 463//463 459//459 +f 1710//1711 1704//1705 1706//1707 1708//1709 +f 1696//1697 1695//1696 1711//1712 1712//1713 +f 1695//1696 1691//1692 1703//1704 1711//1712 +f 1712//1713 1711//1712 1710//1711 1709//1710 +f 1711//1712 1703//1704 1704//1705 1710//1711 +f 1540//1541 1713//1714 467//467 277//277 +f 1537//1538 1714//1715 1713//1714 1540//1541 +f 1713//1714 1715//1716 469//469 467//467 +f 1714//1715 1716//1717 1715//1716 1713//1714 +f 1536//1537 1717//1718 1718//1719 1533//1534 +f 1717//1718 1719//1720 1720//1721 1718//1719 +f 1533//1534 1718//1719 1714//1715 1537//1538 +f 1718//1719 1720//1721 1716//1717 1714//1715 +f 1721//1722 1722//1723 1723//1724 1724//1725 +f 1725//1726 1726//1727 1722//1723 1721//1722 +f 1722//1723 1720//1721 1719//1720 1723//1724 +f 1726//1727 1716//1717 1720//1721 1722//1723 +f 473//473 476//476 1727//1728 1728//1729 +f 476//476 469//469 1715//1716 1727//1728 +f 1728//1729 1727//1728 1726//1727 1725//1726 +f 1727//1728 1715//1716 1716//1717 1726//1727 +f 1556//1557 1729//1730 1717//1718 1536//1537 +f 1553//1554 1730//1731 1729//1730 1556//1557 +f 1729//1730 1731//1732 1719//1720 1717//1718 +f 1730//1731 1732//1733 1731//1732 1729//1730 +f 1552//1553 1733//1734 1734//1735 1549//1550 +f 1733//1734 1735//1736 1736//1737 1734//1735 +f 1549//1550 1734//1735 1730//1731 1553//1554 +f 1734//1735 1736//1737 1732//1733 1730//1731 +f 1737//1738 1738//1739 1739//1740 1740//1741 +f 1741//1742 1742//1743 1738//1739 1737//1738 +f 1738//1739 1736//1737 1735//1736 1739//1740 +f 1742//1743 1732//1733 1736//1737 1738//1739 +f 1724//1725 1723//1724 1743//1744 1744//1745 +f 1723//1724 1719//1720 1731//1732 1743//1744 +f 1744//1745 1743//1744 1742//1743 1741//1742 +f 1743//1744 1731//1732 1732//1733 1742//1743 +f 1572//1573 1745//1746 1733//1734 1552//1553 +f 1569//1570 1746//1747 1745//1746 1572//1573 +f 1745//1746 1747//1748 1735//1736 1733//1734 +f 1746//1747 1748//1749 1747//1748 1745//1746 +f 1568//1569 1749//1750 1750//1751 1565//1566 +f 1749//1750 1751//1752 1752//1753 1750//1751 +f 1565//1566 1750//1751 1746//1747 1569//1570 +f 1750//1751 1752//1753 1748//1749 1746//1747 +f 1753//1754 1754//1755 1755//1756 1756//1757 +f 1757//1758 1758//1759 1754//1755 1753//1754 +f 1754//1755 1752//1753 1751//1752 1755//1756 +f 1758//1759 1748//1749 1752//1753 1754//1755 +f 1740//1741 1739//1740 1759//1760 1760//1761 +f 1739//1740 1735//1736 1747//1748 1759//1760 +f 1760//1761 1759//1760 1758//1759 1757//1758 +f 1759//1760 1747//1748 1748//1749 1758//1759 +f 1588//1589 1761//1762 1749//1750 1568//1569 +f 1585//1586 1762//1763 1761//1762 1588//1589 +f 1761//1762 1763//1764 1751//1752 1749//1750 +f 1762//1763 1764//1765 1763//1764 1761//1762 +f 1584//1585 1765//1766 1766//1767 1581//1582 +f 1765//1766 1767//1768 1768//1769 1766//1767 +f 1581//1582 1766//1767 1762//1763 1585//1586 +f 1766//1767 1768//1769 1764//1765 1762//1763 +f 1769//1770 1770//1771 1771//1772 1772//1773 +f 1773//1774 1774//1775 1770//1771 1769//1770 +f 1770//1771 1768//1769 1767//1768 1771//1772 +f 1774//1775 1764//1765 1768//1769 1770//1771 +f 1756//1757 1755//1756 1775//1776 1776//1777 +f 1755//1756 1751//1752 1763//1764 1775//1776 +f 1776//1777 1775//1776 1774//1775 1773//1774 +f 1775//1776 1763//1764 1764//1765 1774//1775 +f 1604//1605 1777//1778 1765//1766 1584//1585 +f 1601//1602 1778//1779 1777//1778 1604//1605 +f 1777//1778 1779//1780 1767//1768 1765//1766 +f 1778//1779 1780//1781 1779//1780 1777//1778 +f 1600//1601 1781//1782 1782//1783 1597//1598 +f 1781//1782 1783//1784 1784//1785 1782//1783 +f 1597//1598 1782//1783 1778//1779 1601//1602 +f 1782//1783 1784//1785 1780//1781 1778//1779 +f 1785//1786 1786//1787 1787//1788 1788//1789 +f 1789//1790 1790//1791 1786//1787 1785//1786 +f 1786//1787 1784//1785 1783//1784 1787//1788 +f 1790//1791 1780//1781 1784//1785 1786//1787 +f 1772//1773 1771//1772 1791//1792 1792//1793 +f 1771//1772 1767//1768 1779//1780 1791//1792 +f 1792//1793 1791//1792 1790//1791 1789//1790 +f 1791//1792 1779//1780 1780//1781 1790//1791 +f 1620//1621 1793//1794 1781//1782 1600//1601 +f 1617//1618 1794//1795 1793//1794 1620//1621 +f 1793//1794 1795//1796 1783//1784 1781//1782 +f 1794//1795 1796//1797 1795//1796 1793//1794 +f 1616//1617 1797//1798 1798//1799 1613//1614 +f 1797//1798 1799//1800 1800//1801 1798//1799 +f 1613//1614 1798//1799 1794//1795 1617//1618 +f 1798//1799 1800//1801 1796//1797 1794//1795 +f 1801//1802 1802//1803 1803//1804 1804//1805 +f 1805//1806 1806//1807 1802//1803 1801//1802 +f 1802//1803 1800//1801 1799//1800 1803//1804 +f 1806//1807 1796//1797 1800//1801 1802//1803 +f 1788//1789 1787//1788 1807//1808 1808//1809 +f 1787//1788 1783//1784 1795//1796 1807//1808 +f 1808//1809 1807//1808 1806//1807 1805//1806 +f 1807//1808 1795//1796 1796//1797 1806//1807 +f 1636//1637 1809//1810 1797//1798 1616//1617 +f 1633//1634 1810//1811 1809//1810 1636//1637 +f 1809//1810 1811//1812 1799//1800 1797//1798 +f 1810//1811 1812//1813 1811//1812 1809//1810 +f 1632//1633 1813//1814 1814//1815 1629//1630 +f 1813//1814 1815//1816 1816//1817 1814//1815 +f 1629//1630 1814//1815 1810//1811 1633//1634 +f 1814//1815 1816//1817 1812//1813 1810//1811 +f 1817//1818 1818//1819 1819//1820 1820//1821 +f 1821//1822 1822//1823 1818//1819 1817//1818 +f 1818//1819 1816//1817 1815//1816 1819//1820 +f 1822//1823 1812//1813 1816//1817 1818//1819 +f 1804//1805 1803//1804 1823//1824 1824//1825 +f 1803//1804 1799//1800 1811//1812 1823//1824 +f 1824//1825 1823//1824 1822//1823 1821//1822 +f 1823//1824 1811//1812 1812//1813 1822//1823 +f 1652//1653 1825//1826 1813//1814 1632//1633 +f 1649//1650 1826//1827 1825//1826 1652//1653 +f 1825//1826 1827//1828 1815//1816 1813//1814 +f 1826//1827 1828//1829 1827//1828 1825//1826 +f 1648//1649 1829//1830 1830//1831 1645//1646 +f 1829//1830 1831//1832 1832//1833 1830//1831 +f 1645//1646 1830//1831 1826//1827 1649//1650 +f 1830//1831 1832//1833 1828//1829 1826//1827 +f 1833//1834 1834//1835 1835//1836 1836//1837 +f 1837//1838 1838//1839 1834//1835 1833//1834 +f 1834//1835 1832//1833 1831//1832 1835//1836 +f 1838//1839 1828//1829 1832//1833 1834//1835 +f 1820//1821 1819//1820 1839//1840 1840//1841 +f 1819//1820 1815//1816 1827//1828 1839//1840 +f 1840//1841 1839//1840 1838//1839 1837//1838 +f 1839//1840 1827//1828 1828//1829 1838//1839 +f 1668//1669 1841//1842 1829//1830 1648//1649 +f 1665//1666 1842//1843 1841//1842 1668//1669 +f 1841//1842 1843//1844 1831//1832 1829//1830 +f 1842//1843 1844//1845 1843//1844 1841//1842 +f 1664//1665 1845//1846 1846//1847 1661//1662 +f 1845//1846 1847//1848 1848//1849 1846//1847 +f 1661//1662 1846//1847 1842//1843 1665//1666 +f 1846//1847 1848//1849 1844//1845 1842//1843 +f 1849//1850 1850//1851 1851//1852 1852//1853 +f 1853//1854 1854//1855 1850//1851 1849//1850 +f 1850//1851 1848//1849 1847//1848 1851//1852 +f 1854//1855 1844//1845 1848//1849 1850//1851 +f 1836//1837 1835//1836 1855//1856 1856//1857 +f 1835//1836 1831//1832 1843//1844 1855//1856 +f 1856//1857 1855//1856 1854//1855 1853//1854 +f 1855//1856 1843//1844 1844//1845 1854//1855 +f 1684//1685 1857//1858 1845//1846 1664//1665 +f 1681//1682 1858//1859 1857//1858 1684//1685 +f 1857//1858 1859//1860 1847//1848 1845//1846 +f 1858//1859 1860//1861 1859//1860 1857//1858 +f 1680//1681 1861//1862 1862//1863 1677//1678 +f 1861//1862 1863//1864 1864//1865 1862//1863 +f 1677//1678 1862//1863 1858//1859 1681//1682 +f 1862//1863 1864//1865 1860//1861 1858//1859 +f 1865//1866 1866//1867 1867//1868 1868//1869 +f 1869//1870 1870//1871 1866//1867 1865//1866 +f 1866//1867 1864//1865 1863//1864 1867//1868 +f 1870//1871 1860//1861 1864//1865 1866//1867 +f 1852//1853 1851//1852 1871//1872 1872//1873 +f 1851//1852 1847//1848 1859//1860 1871//1872 +f 1872//1873 1871//1872 1870//1871 1869//1870 +f 1871//1872 1859//1860 1860//1861 1870//1871 +f 1700//1701 1873//1874 1861//1862 1680//1681 +f 1697//1698 1874//1875 1873//1874 1700//1701 +f 1873//1874 1875//1876 1863//1864 1861//1862 +f 1874//1875 1876//1877 1875//1876 1873//1874 +f 1696//1697 1877//1878 1878//1879 1693//1694 +f 1877//1878 1879//1880 1880//1881 1878//1879 +f 1693//1694 1878//1879 1874//1875 1697//1698 +f 1878//1879 1880//1881 1876//1877 1874//1875 +f 1881//1882 1882//1883 1883//1884 1884//1885 +f 1885//1886 1886//1887 1882//1883 1881//1882 +f 1882//1883 1880//1881 1879//1880 1883//1884 +f 1886//1887 1876//1877 1880//1881 1882//1883 +f 1868//1869 1867//1868 1887//1888 1888//1889 +f 1867//1868 1863//1864 1875//1876 1887//1888 +f 1888//1889 1887//1888 1886//1887 1885//1886 +f 1887//1888 1875//1876 1876//1877 1886//1887 +f 1712//1713 1889//1890 1877//1878 1696//1697 +f 1709//1710 1890//1891 1889//1890 1712//1713 +f 1889//1890 1891//1892 1879//1880 1877//1878 +f 1890//1891 1892//1893 1891//1892 1889//1890 +f 462//462 662//662 1893//1894 1707//1708 +f 662//662 659//659 1894//1895 1893//1894 +f 1707//1708 1893//1894 1890//1891 1709//1710 +f 1893//1894 1894//1895 1892//1893 1890//1891 +f 1895//1896 1896//1897 655//655 658//658 +f 1897//1898 1898//1899 1896//1897 1895//1896 +f 1896//1897 1894//1895 659//659 655//655 +f 1898//1899 1892//1893 1894//1895 1896//1897 +f 1884//1885 1883//1884 1899//1900 1900//1901 +f 1883//1884 1879//1880 1891//1892 1899//1900 +f 1900//1901 1899//1900 1898//1899 1897//1898 +f 1899//1900 1891//1892 1892//1893 1898//1899 +f 1728//1729 1901//1902 663//663 473//473 +f 1725//1726 1902//1903 1901//1902 1728//1729 +f 1901//1902 1903//1904 665//665 663//663 +f 1902//1903 1904//1905 1903//1904 1901//1902 +f 1724//1725 1905//1906 1906//1907 1721//1722 +f 1905//1906 1907//1908 1908//1909 1906//1907 +f 1721//1722 1906//1907 1902//1903 1725//1726 +f 1906//1907 1908//1909 1904//1905 1902//1903 +f 1909//1910 1910//1911 1911//1912 1912//1913 +f 1913//1914 1914//1915 1910//1911 1909//1910 +f 1910//1911 1908//1909 1907//1908 1911//1912 +f 1914//1915 1904//1905 1908//1909 1910//1911 +f 669//669 672//672 1915//1916 1916//1917 +f 672//672 665//665 1903//1904 1915//1916 +f 1916//1917 1915//1916 1914//1915 1913//1914 +f 1915//1916 1903//1904 1904//1905 1914//1915 +f 1744//1745 1917//1918 1905//1906 1724//1725 +f 1741//1742 1918//1919 1917//1918 1744//1745 +f 1917//1918 1919//1920 1907//1908 1905//1906 +f 1918//1919 1920//1921 1919//1920 1917//1918 +f 1740//1741 1921//1922 1922//1923 1737//1738 +f 1921//1922 1923//1924 1924//1925 1922//1923 +f 1737//1738 1922//1923 1918//1919 1741//1742 +f 1922//1923 1924//1925 1920//1921 1918//1919 +f 1925//1926 1926//1927 1927//1928 1928//1929 +f 1929//1930 1930//1931 1926//1927 1925//1926 +f 1926//1927 1924//1925 1923//1924 1927//1928 +f 1930//1931 1920//1921 1924//1925 1926//1927 +f 1912//1913 1911//1912 1931//1932 1932//1933 +f 1911//1912 1907//1908 1919//1920 1931//1932 +f 1932//1933 1931//1932 1930//1931 1929//1930 +f 1931//1932 1919//1920 1920//1921 1930//1931 +f 1760//1761 1933//1934 1921//1922 1740//1741 +f 1757//1758 1934//1935 1933//1934 1760//1761 +f 1933//1934 1935//1936 1923//1924 1921//1922 +f 1934//1935 1936//1937 1935//1936 1933//1934 +f 1756//1757 1937//1938 1938//1939 1753//1754 +f 1937//1938 1939//1940 1940//1941 1938//1939 +f 1753//1754 1938//1939 1934//1935 1757//1758 +f 1938//1939 1940//1941 1936//1937 1934//1935 +f 1941//1942 1942//1943 1943//1944 1944//1945 +f 1945//1946 1946//1947 1942//1943 1941//1942 +f 1942//1943 1940//1941 1939//1940 1943//1944 +f 1946//1947 1936//1937 1940//1941 1942//1943 +f 1928//1929 1927//1928 1947//1948 1948//1949 +f 1927//1928 1923//1924 1935//1936 1947//1948 +f 1948//1949 1947//1948 1946//1947 1945//1946 +f 1947//1948 1935//1936 1936//1937 1946//1947 +f 1776//1777 1949//1950 1937//1938 1756//1757 +f 1773//1774 1950//1951 1949//1950 1776//1777 +f 1949//1950 1951//1952 1939//1940 1937//1938 +f 1950//1951 1952//1953 1951//1952 1949//1950 +f 1772//1773 1953//1954 1954//1955 1769//1770 +f 1953//1954 1955//1956 1956//1957 1954//1955 +f 1769//1770 1954//1955 1950//1951 1773//1774 +f 1954//1955 1956//1957 1952//1953 1950//1951 +f 1957//1958 1958//1959 1959//1960 1960//1961 +f 1961//1962 1962//1963 1958//1959 1957//1958 +f 1958//1959 1956//1957 1955//1956 1959//1960 +f 1962//1963 1952//1953 1956//1957 1958//1959 +f 1944//1945 1943//1944 1963//1964 1964//1965 +f 1943//1944 1939//1940 1951//1952 1963//1964 +f 1964//1965 1963//1964 1962//1963 1961//1962 +f 1963//1964 1951//1952 1952//1953 1962//1963 +f 1792//1793 1965//1966 1953//1954 1772//1773 +f 1789//1790 1966//1967 1965//1966 1792//1793 +f 1965//1966 1967//1968 1955//1956 1953//1954 +f 1966//1967 1968//1969 1967//1968 1965//1966 +f 1788//1789 1969//1970 1970//1971 1785//1786 +f 1969//1970 1971//1972 1972//1973 1970//1971 +f 1785//1786 1970//1971 1966//1967 1789//1790 +f 1970//1971 1972//1973 1968//1969 1966//1967 +f 1973//1974 1974//1975 1975//1976 1976//1977 +f 1977//1978 1978//1979 1974//1975 1973//1974 +f 1974//1975 1972//1973 1971//1972 1975//1976 +f 1978//1979 1968//1969 1972//1973 1974//1975 +f 1960//1961 1959//1960 1979//1980 1980//1981 +f 1959//1960 1955//1956 1967//1968 1979//1980 +f 1980//1981 1979//1980 1978//1979 1977//1978 +f 1979//1980 1967//1968 1968//1969 1978//1979 +f 1808//1809 1981//1982 1969//1970 1788//1789 +f 1805//1806 1982//1983 1981//1982 1808//1809 +f 1981//1982 1983//1984 1971//1972 1969//1970 +f 1982//1983 1984//1985 1983//1984 1981//1982 +f 1804//1805 1985//1986 1986//1987 1801//1802 +f 1985//1986 1987//1988 1988//1989 1986//1987 +f 1801//1802 1986//1987 1982//1983 1805//1806 +f 1986//1987 1988//1989 1984//1985 1982//1983 +f 1989//1990 1990//1991 1991//1992 1992//1993 +f 1993//1994 1994//1995 1990//1991 1989//1990 +f 1990//1991 1988//1989 1987//1988 1991//1992 +f 1994//1995 1984//1985 1988//1989 1990//1991 +f 1976//1977 1975//1976 1995//1996 1996//1997 +f 1975//1976 1971//1972 1983//1984 1995//1996 +f 1996//1997 1995//1996 1994//1995 1993//1994 +f 1995//1996 1983//1984 1984//1985 1994//1995 +f 1824//1825 1997//1998 1985//1986 1804//1805 +f 1821//1822 1998//1999 1997//1998 1824//1825 +f 1997//1998 1999//2000 1987//1988 1985//1986 +f 1998//1999 2000//2001 1999//2000 1997//1998 +f 1820//1821 2001//2002 2002//2003 1817//1818 +f 2001//2002 2003//2004 2004//2005 2002//2003 +f 1817//1818 2002//2003 1998//1999 1821//1822 +f 2002//2003 2004//2005 2000//2001 1998//1999 +f 2005//2006 2006//2007 2007//2008 2008//2009 +f 2009//2010 2010//2011 2006//2007 2005//2006 +f 2006//2007 2004//2005 2003//2004 2007//2008 +f 2010//2011 2000//2001 2004//2005 2006//2007 +f 1992//1993 1991//1992 2011//2012 2012//2013 +f 1991//1992 1987//1988 1999//2000 2011//2012 +f 2012//2013 2011//2012 2010//2011 2009//2010 +f 2011//2012 1999//2000 2000//2001 2010//2011 +f 1840//1841 2013//2014 2001//2002 1820//1821 +f 1837//1838 2014//2015 2013//2014 1840//1841 +f 2013//2014 2015//2016 2003//2004 2001//2002 +f 2014//2015 2016//2017 2015//2016 2013//2014 +f 1836//1837 2017//2018 2018//2019 1833//1834 +f 2017//2018 2019//2020 2020//2021 2018//2019 +f 1833//1834 2018//2019 2014//2015 1837//1838 +f 2018//2019 2020//2021 2016//2017 2014//2015 +f 2021//2022 2022//2023 2023//2024 2024//2025 +f 2025//2026 2026//2027 2022//2023 2021//2022 +f 2022//2023 2020//2021 2019//2020 2023//2024 +f 2026//2027 2016//2017 2020//2021 2022//2023 +f 2008//2009 2007//2008 2027//2028 2028//2029 +f 2007//2008 2003//2004 2015//2016 2027//2028 +f 2028//2029 2027//2028 2026//2027 2025//2026 +f 2027//2028 2015//2016 2016//2017 2026//2027 +f 1856//1857 2029//2030 2017//2018 1836//1837 +f 1853//1854 2030//2031 2029//2030 1856//1857 +f 2029//2030 2031//2032 2019//2020 2017//2018 +f 2030//2031 2032//2033 2031//2032 2029//2030 +f 1852//1853 2033//2034 2034//2035 1849//1850 +f 2033//2034 2035//2036 2036//2037 2034//2035 +f 1849//1850 2034//2035 2030//2031 1853//1854 +f 2034//2035 2036//2037 2032//2033 2030//2031 +f 2037//2038 2038//2039 2039//2040 2040//2041 +f 2041//2042 2042//2043 2038//2039 2037//2038 +f 2038//2039 2036//2037 2035//2036 2039//2040 +f 2042//2043 2032//2033 2036//2037 2038//2039 +f 2024//2025 2023//2024 2043//2044 2044//2045 +f 2023//2024 2019//2020 2031//2032 2043//2044 +f 2044//2045 2043//2044 2042//2043 2041//2042 +f 2043//2044 2031//2032 2032//2033 2042//2043 +f 1872//1873 2045//2046 2033//2034 1852//1853 +f 1869//1870 2046//2047 2045//2046 1872//1873 +f 2045//2046 2047//2048 2035//2036 2033//2034 +f 2046//2047 2048//2049 2047//2048 2045//2046 +f 1868//1869 2049//2050 2050//2051 1865//1866 +f 2049//2050 2051//2052 2052//2053 2050//2051 +f 1865//1866 2050//2051 2046//2047 1869//1870 +f 2050//2051 2052//2053 2048//2049 2046//2047 +f 2053//2054 2054//2055 2055//2056 2056//2057 +f 2057//2058 2058//2059 2054//2055 2053//2054 +f 2054//2055 2052//2053 2051//2052 2055//2056 +f 2058//2059 2048//2049 2052//2053 2054//2055 +f 2040//2041 2039//2040 2059//2060 2060//2061 +f 2039//2040 2035//2036 2047//2048 2059//2060 +f 2060//2061 2059//2060 2058//2059 2057//2058 +f 2059//2060 2047//2048 2048//2049 2058//2059 +f 1888//1889 2061//2062 2049//2050 1868//1869 +f 1885//1886 2062//2063 2061//2062 1888//1889 +f 2061//2062 2063//2064 2051//2052 2049//2050 +f 2062//2063 2064//2065 2063//2064 2061//2062 +f 1884//1885 2065//2066 2066//2067 1881//1882 +f 2065//2066 2067//2068 2068//2069 2066//2067 +f 1881//1882 2066//2067 2062//2063 1885//1886 +f 2066//2067 2068//2069 2064//2065 2062//2063 +f 2069//2070 2070//2071 2071//2072 2072//2073 +f 2073//2074 2074//2075 2070//2071 2069//2070 +f 2070//2071 2068//2069 2067//2068 2071//2072 +f 2074//2075 2064//2065 2068//2069 2070//2071 +f 2056//2057 2055//2056 2075//2076 2076//2077 +f 2055//2056 2051//2052 2063//2064 2075//2076 +f 2076//2077 2075//2076 2074//2075 2073//2074 +f 2075//2076 2063//2064 2064//2065 2074//2075 +f 1900//1901 2077//2078 2065//2066 1884//1885 +f 1897//1898 2078//2079 2077//2078 1900//1901 +f 2077//2078 2079//2080 2067//2068 2065//2066 +f 2078//2079 2080//2081 2079//2080 2077//2078 +f 658//658 858//858 2081//2082 1895//1896 +f 858//858 855//855 2082//2083 2081//2082 +f 1895//1896 2081//2082 2078//2079 1897//1898 +f 2081//2082 2082//2083 2080//2081 2078//2079 +f 2083//2084 2084//2085 851//851 854//854 +f 2085//2086 2086//2087 2084//2085 2083//2084 +f 2084//2085 2082//2083 855//855 851//851 +f 2086//2087 2080//2081 2082//2083 2084//2085 +f 2072//2073 2071//2072 2087//2088 2088//2089 +f 2071//2072 2067//2068 2079//2080 2087//2088 +f 2088//2089 2087//2088 2086//2087 2085//2086 +f 2087//2088 2079//2080 2080//2081 2086//2087 +f 1916//1917 2089//2090 859//859 669//669 +f 1913//1914 2090//2091 2089//2090 1916//1917 +f 2089//2090 2091//2092 861//861 859//859 +f 2090//2091 2092//2093 2091//2092 2089//2090 +f 1912//1913 2093//2094 2094//2095 1909//1910 +f 2093//2094 2095//2096 2096//2097 2094//2095 +f 1909//1910 2094//2095 2090//2091 1913//1914 +f 2094//2095 2096//2097 2092//2093 2090//2091 +f 2097//2098 2098//2099 2099//2100 2100//2101 +f 2101//2102 2102//2103 2098//2099 2097//2098 +f 2098//2099 2096//2097 2095//2096 2099//2100 +f 2102//2103 2092//2093 2096//2097 2098//2099 +f 865//865 868//868 2103//2104 2104//2105 +f 868//868 861//861 2091//2092 2103//2104 +f 2104//2105 2103//2104 2102//2103 2101//2102 +f 2103//2104 2091//2092 2092//2093 2102//2103 +f 1932//1933 2105//2106 2093//2094 1912//1913 +f 1929//1930 2106//2107 2105//2106 1932//1933 +f 2105//2106 2107//2108 2095//2096 2093//2094 +f 2106//2107 2108//2109 2107//2108 2105//2106 +f 1928//1929 2109//2110 2110//2111 1925//1926 +f 2109//2110 2111//2112 2112//2113 2110//2111 +f 1925//1926 2110//2111 2106//2107 1929//1930 +f 2110//2111 2112//2113 2108//2109 2106//2107 +f 2113//2114 2114//2115 2115//2116 2116//2117 +f 2117//2118 2118//2119 2114//2115 2113//2114 +f 2114//2115 2112//2113 2111//2112 2115//2116 +f 2118//2119 2108//2109 2112//2113 2114//2115 +f 2100//2101 2099//2100 2119//2120 2120//2121 +f 2099//2100 2095//2096 2107//2108 2119//2120 +f 2120//2121 2119//2120 2118//2119 2117//2118 +f 2119//2120 2107//2108 2108//2109 2118//2119 +f 1948//1949 2121//2122 2109//2110 1928//1929 +f 1945//1946 2122//2123 2121//2122 1948//1949 +f 2121//2122 2123//2124 2111//2112 2109//2110 +f 2122//2123 2124//2125 2123//2124 2121//2122 +f 1944//1945 2125//2126 2126//2127 1941//1942 +f 2125//2126 2127//2128 2128//2129 2126//2127 +f 1941//1942 2126//2127 2122//2123 1945//1946 +f 2126//2127 2128//2129 2124//2125 2122//2123 +f 2129//2130 2130//2131 2131//2132 2132//2133 +f 2133//2134 2134//2135 2130//2131 2129//2130 +f 2130//2131 2128//2129 2127//2128 2131//2132 +f 2134//2135 2124//2125 2128//2129 2130//2131 +f 2116//2117 2115//2116 2135//2136 2136//2137 +f 2115//2116 2111//2112 2123//2124 2135//2136 +f 2136//2137 2135//2136 2134//2135 2133//2134 +f 2135//2136 2123//2124 2124//2125 2134//2135 +f 1964//1965 2137//2138 2125//2126 1944//1945 +f 1961//1962 2138//2139 2137//2138 1964//1965 +f 2137//2138 2139//2140 2127//2128 2125//2126 +f 2138//2139 2140//2141 2139//2140 2137//2138 +f 1960//1961 2141//2142 2142//2143 1957//1958 +f 2141//2142 2143//2144 2144//2145 2142//2143 +f 1957//1958 2142//2143 2138//2139 1961//1962 +f 2142//2143 2144//2145 2140//2141 2138//2139 +f 2145//2146 2146//2147 2147//2148 2148//2149 +f 2149//2150 2150//2151 2146//2147 2145//2146 +f 2146//2147 2144//2145 2143//2144 2147//2148 +f 2150//2151 2140//2141 2144//2145 2146//2147 +f 2132//2133 2131//2132 2151//2152 2152//2153 +f 2131//2132 2127//2128 2139//2140 2151//2152 +f 2152//2153 2151//2152 2150//2151 2149//2150 +f 2151//2152 2139//2140 2140//2141 2150//2151 +f 1980//1981 2153//2154 2141//2142 1960//1961 +f 1977//1978 2154//2155 2153//2154 1980//1981 +f 2153//2154 2155//2156 2143//2144 2141//2142 +f 2154//2155 2156//2157 2155//2156 2153//2154 +f 1976//1977 2157//2158 2158//2159 1973//1974 +f 2157//2158 2159//2160 2160//2161 2158//2159 +f 1973//1974 2158//2159 2154//2155 1977//1978 +f 2158//2159 2160//2161 2156//2157 2154//2155 +f 2161//2162 2162//2163 2163//2164 2164//2165 +f 2165//2166 2166//2167 2162//2163 2161//2162 +f 2162//2163 2160//2161 2159//2160 2163//2164 +f 2166//2167 2156//2157 2160//2161 2162//2163 +f 2148//2149 2147//2148 2167//2168 2168//2169 +f 2147//2148 2143//2144 2155//2156 2167//2168 +f 2168//2169 2167//2168 2166//2167 2165//2166 +f 2167//2168 2155//2156 2156//2157 2166//2167 +f 1996//1997 2169//2170 2157//2158 1976//1977 +f 1993//1994 2170//2171 2169//2170 1996//1997 +f 2169//2170 2171//2172 2159//2160 2157//2158 +f 2170//2171 2172//2173 2171//2172 2169//2170 +f 1992//1993 2173//2174 2174//2175 1989//1990 +f 2173//2174 2175//2176 2176//2177 2174//2175 +f 1989//1990 2174//2175 2170//2171 1993//1994 +f 2174//2175 2176//2177 2172//2173 2170//2171 +f 2177//2178 2178//2179 2179//2180 2180//2181 +f 2181//2182 2182//2183 2178//2179 2177//2178 +f 2178//2179 2176//2177 2175//2176 2179//2180 +f 2182//2183 2172//2173 2176//2177 2178//2179 +f 2164//2165 2163//2164 2183//2184 2184//2185 +f 2163//2164 2159//2160 2171//2172 2183//2184 +f 2184//2185 2183//2184 2182//2183 2181//2182 +f 2183//2184 2171//2172 2172//2173 2182//2183 +f 2012//2013 2185//2186 2173//2174 1992//1993 +f 2009//2010 2186//2187 2185//2186 2012//2013 +f 2185//2186 2187//2188 2175//2176 2173//2174 +f 2186//2187 2188//2189 2187//2188 2185//2186 +f 2008//2009 2189//2190 2190//2191 2005//2006 +f 2189//2190 2191//2192 2192//2193 2190//2191 +f 2005//2006 2190//2191 2186//2187 2009//2010 +f 2190//2191 2192//2193 2188//2189 2186//2187 +f 2193//2194 2194//2195 2195//2196 2196//2197 +f 2197//2198 2198//2199 2194//2195 2193//2194 +f 2194//2195 2192//2193 2191//2192 2195//2196 +f 2198//2199 2188//2189 2192//2193 2194//2195 +f 2180//2181 2179//2180 2199//2200 2200//2201 +f 2179//2180 2175//2176 2187//2188 2199//2200 +f 2200//2201 2199//2200 2198//2199 2197//2198 +f 2199//2200 2187//2188 2188//2189 2198//2199 +f 2028//2029 2201//2202 2189//2190 2008//2009 +f 2025//2026 2202//2203 2201//2202 2028//2029 +f 2201//2202 2203//2204 2191//2192 2189//2190 +f 2202//2203 2204//2205 2203//2204 2201//2202 +f 2024//2025 2205//2206 2206//2207 2021//2022 +f 2205//2206 2207//2208 2208//2209 2206//2207 +f 2021//2022 2206//2207 2202//2203 2025//2026 +f 2206//2207 2208//2209 2204//2205 2202//2203 +f 2209//2210 2210//2211 2211//2212 2212//2213 +f 2213//2214 2214//2215 2210//2211 2209//2210 +f 2210//2211 2208//2209 2207//2208 2211//2212 +f 2214//2215 2204//2205 2208//2209 2210//2211 +f 2196//2197 2195//2196 2215//2216 2216//2217 +f 2195//2196 2191//2192 2203//2204 2215//2216 +f 2216//2217 2215//2216 2214//2215 2213//2214 +f 2215//2216 2203//2204 2204//2205 2214//2215 +f 2044//2045 2217//2218 2205//2206 2024//2025 +f 2041//2042 2218//2219 2217//2218 2044//2045 +f 2217//2218 2219//2220 2207//2208 2205//2206 +f 2218//2219 2220//2221 2219//2220 2217//2218 +f 2040//2041 2221//2222 2222//2223 2037//2038 +f 2221//2222 2223//2224 2224//2225 2222//2223 +f 2037//2038 2222//2223 2218//2219 2041//2042 +f 2222//2223 2224//2225 2220//2221 2218//2219 +f 2225//2226 2226//2227 2227//2228 2228//2229 +f 2229//2230 2230//2231 2226//2227 2225//2226 +f 2226//2227 2224//2225 2223//2224 2227//2228 +f 2230//2231 2220//2221 2224//2225 2226//2227 +f 2212//2213 2211//2212 2231//2232 2232//2233 +f 2211//2212 2207//2208 2219//2220 2231//2232 +f 2232//2233 2231//2232 2230//2231 2229//2230 +f 2231//2232 2219//2220 2220//2221 2230//2231 +f 2060//2061 2233//2234 2221//2222 2040//2041 +f 2057//2058 2234//2235 2233//2234 2060//2061 +f 2233//2234 2235//2236 2223//2224 2221//2222 +f 2234//2235 2236//2237 2235//2236 2233//2234 +f 2056//2057 2237//2238 2238//2239 2053//2054 +f 2237//2238 2239//2240 2240//2241 2238//2239 +f 2053//2054 2238//2239 2234//2235 2057//2058 +f 2238//2239 2240//2241 2236//2237 2234//2235 +f 2241//2242 2242//2243 2243//2244 2244//2245 +f 2245//2246 2246//2247 2242//2243 2241//2242 +f 2242//2243 2240//2241 2239//2240 2243//2244 +f 2246//2247 2236//2237 2240//2241 2242//2243 +f 2228//2229 2227//2228 2247//2248 2248//2249 +f 2227//2228 2223//2224 2235//2236 2247//2248 +f 2248//2249 2247//2248 2246//2247 2245//2246 +f 2247//2248 2235//2236 2236//2237 2246//2247 +f 2076//2077 2249//2250 2237//2238 2056//2057 +f 2073//2074 2250//2251 2249//2250 2076//2077 +f 2249//2250 2251//2252 2239//2240 2237//2238 +f 2250//2251 2252//2253 2251//2252 2249//2250 +f 2072//2073 2253//2254 2254//2255 2069//2070 +f 2253//2254 2255//2256 2256//2257 2254//2255 +f 2069//2070 2254//2255 2250//2251 2073//2074 +f 2254//2255 2256//2257 2252//2253 2250//2251 +f 2257//2258 2258//2259 2259//2260 2260//2261 +f 2261//2262 2262//2263 2258//2259 2257//2258 +f 2258//2259 2256//2257 2255//2256 2259//2260 +f 2262//2263 2252//2253 2256//2257 2258//2259 +f 2244//2245 2243//2244 2263//2264 2264//2265 +f 2243//2244 2239//2240 2251//2252 2263//2264 +f 2264//2265 2263//2264 2262//2263 2261//2262 +f 2263//2264 2251//2252 2252//2253 2262//2263 +f 2088//2089 2265//2266 2253//2254 2072//2073 +f 2085//2086 2266//2267 2265//2266 2088//2089 +f 2265//2266 2267//2268 2255//2256 2253//2254 +f 2266//2267 2268//2269 2267//2268 2265//2266 +f 854//854 1054//1054 2269//2270 2083//2084 +f 1054//1054 1051//1051 2270//2271 2269//2270 +f 2083//2084 2269//2270 2266//2267 2085//2086 +f 2269//2270 2270//2271 2268//2269 2266//2267 +f 2271//2272 2272//2273 1047//1047 1050//1050 +f 2273//2274 2274//2275 2272//2273 2271//2272 +f 2272//2273 2270//2271 1051//1051 1047//1047 +f 2274//2275 2268//2269 2270//2271 2272//2273 +f 2260//2261 2259//2260 2275//2276 2276//2277 +f 2259//2260 2255//2256 2267//2268 2275//2276 +f 2276//2277 2275//2276 2274//2275 2273//2274 +f 2275//2276 2267//2268 2268//2269 2274//2275 +f 2277//2278 2278//2279 1310//1311 1297//1298 +f 2279//2280 2280//2281 2278//2279 2277//2278 +f 2278//2279 2281//2282 1312//1313 1310//1311 +f 2280//2281 2282//2283 2281//2282 2278//2279 +f 1282//1283 2283//2284 2284//2285 2285//2286 +f 2283//2284 2286//2287 2287//2288 2284//2285 +f 2285//2286 2284//2285 2280//2281 2279//2280 +f 2284//2285 2287//2288 2282//2283 2280//2281 +f 2288//2289 2289//2290 2290//2291 2291//2292 +f 2292//2293 2293//2294 2289//2290 2288//2289 +f 2289//2290 2287//2288 2286//2287 2290//2291 +f 2293//2294 2282//2283 2287//2288 2289//2290 +f 1317//1318 1316//1317 2294//2295 2295//2296 +f 1316//1317 1312//1313 2281//2282 2294//2295 +f 2295//2296 2294//2295 2293//2294 2292//2293 +f 2294//2295 2281//2282 2282//2283 2293//2294 +f 2295//2296 2296//2297 1330//1331 1317//1318 +f 2292//2293 2297//2298 2296//2297 2295//2296 +f 2296//2297 2298//2299 1332//1333 1330//1331 +f 2297//2298 2299//2300 2298//2299 2296//2297 +f 2291//2292 2300//2301 2301//2302 2288//2289 +f 2300//2301 2302//2303 2303//2304 2301//2302 +f 2288//2289 2301//2302 2297//2298 2292//2293 +f 2301//2302 2303//2304 2299//2300 2297//2298 +f 2304//2305 2305//2306 2306//2307 2307//2308 +f 2308//2309 2309//2310 2305//2306 2304//2305 +f 2305//2306 2303//2304 2302//2303 2306//2307 +f 2309//2310 2299//2300 2303//2304 2305//2306 +f 1337//1338 1336//1337 2310//2311 2311//2312 +f 1336//1337 1332//1333 2298//2299 2310//2311 +f 2311//2312 2310//2311 2309//2310 2308//2309 +f 2310//2311 2298//2299 2299//2300 2309//2310 +f 2311//2312 2312//2313 1350//1351 1337//1338 +f 2308//2309 2313//2314 2312//2313 2311//2312 +f 2312//2313 2314//2315 1352//1353 1350//1351 +f 2313//2314 2315//2316 2314//2315 2312//2313 +f 2307//2308 2316//2317 2317//2318 2304//2305 +f 2316//2317 2318//2319 2319//2320 2317//2318 +f 2304//2305 2317//2318 2313//2314 2308//2309 +f 2317//2318 2319//2320 2315//2316 2313//2314 +f 1379//1380 2320//2321 2321//2322 1376//1377 +f 1372//1373 2322//2323 2320//2321 1379//1380 +f 2320//2321 2319//2320 2318//2319 2321//2322 +f 2322//2323 2315//2316 2319//2320 2320//2321 +f 1370//1371 1356//1357 1359//1360 2323//2324 +f 2323//2324 1359//1360 1352//1353 2314//2315 +f 1372//1373 1370//1371 2323//2324 2322//2323 +f 2322//2323 2323//2324 2314//2315 2315//2316 +f 2324//2325 2325//2326 1410//1411 1396//1397 +f 2326//2327 2327//2328 2325//2326 2324//2325 +f 2325//2326 2328//2329 1412//1413 1410//1411 +f 2327//2328 2329//2330 2328//2329 2325//2326 +f 2330//2331 2331//2332 2332//2333 2333//2334 +f 2331//2332 2334//2335 2335//2336 2332//2333 +f 2333//2334 2332//2333 2327//2328 2326//2327 +f 2332//2333 2335//2336 2329//2330 2327//2328 +f 2336//2337 2337//2338 2338//2339 2339//2340 +f 2340//2341 2341//2342 2337//2338 2336//2337 +f 2337//2338 2335//2336 2334//2335 2338//2339 +f 2341//2342 2329//2330 2335//2336 2337//2338 +f 1417//1418 1416//1417 2342//2343 2343//2344 +f 1416//1417 1412//1413 2328//2329 2342//2343 +f 2343//2344 2342//2343 2341//2342 2340//2341 +f 2342//2343 2328//2329 2329//2330 2341//2342 +f 2344//2345 2345//2346 2331//2332 2330//2331 +f 2346//2347 2347//2348 2345//2346 2344//2345 +f 2345//2346 2348//2349 2334//2335 2331//2332 +f 2347//2348 2349//2350 2348//2349 2345//2346 +f 2350//2351 2351//2352 2352//2353 2353//2354 +f 2351//2352 2354//2355 2355//2356 2352//2353 +f 2353//2354 2352//2353 2347//2348 2346//2347 +f 2352//2353 2355//2356 2349//2350 2347//2348 +f 2356//2357 2357//2358 2358//2359 2359//2360 +f 2360//2361 2361//2362 2357//2358 2356//2357 +f 2357//2358 2355//2356 2354//2355 2358//2359 +f 2361//2362 2349//2350 2355//2356 2357//2358 +f 2339//2340 2338//2339 2362//2363 2363//2364 +f 2338//2339 2334//2335 2348//2349 2362//2363 +f 2363//2364 2362//2363 2361//2362 2360//2361 +f 2362//2363 2348//2349 2349//2350 2361//2362 +f 2364//2365 2365//2366 2351//2352 2350//2351 +f 2366//2367 2367//2368 2365//2366 2364//2365 +f 2365//2366 2368//2369 2354//2355 2351//2352 +f 2367//2368 2369//2370 2368//2369 2365//2366 +f 1277//1278 2370//2371 2371//2372 2372//2373 +f 2370//2371 2373//2374 2374//2375 2371//2372 +f 2372//2373 2371//2372 2367//2368 2366//2367 +f 2371//2372 2374//2375 2369//2370 2367//2368 +f 2375//2376 2376//2377 2377//2378 2378//2379 +f 2379//2380 2380//2381 2376//2377 2375//2376 +f 2376//2377 2374//2375 2373//2374 2377//2378 +f 2380//2381 2369//2370 2374//2375 2376//2377 +f 2359//2360 2358//2359 2381//2382 2382//2383 +f 2358//2359 2354//2355 2368//2369 2381//2382 +f 2382//2383 2381//2382 2380//2381 2379//2380 +f 2381//2382 2368//2369 2369//2370 2380//2381 +f 1276//1277 2383//2384 2370//2371 1277//1278 +f 1272//1273 2384//2385 2383//2384 1276//1277 +f 2383//2384 2385//2386 2373//2374 2370//2371 +f 2384//2385 2386//2387 2385//2386 2383//2384 +f 4//1175 1176//1177 2387//2388 1270//1271 +f 1176//1177 1173//1173 2388//2389 2387//2388 +f 1270//1271 2387//2388 2384//2385 1272//1273 +f 2387//2388 2388//2389 2386//2387 2384//2385 +f 2389//2390 2390//2391 1169//1169 1172//1172 +f 2391//2392 2392//2393 2390//2391 2389//2390 +f 2390//2391 2388//2389 1173//1173 1169//1169 +f 2392//2393 2386//2387 2388//2389 2390//2391 +f 2378//2379 2377//2378 2393//2394 2394//2395 +f 2377//2378 2373//2374 2385//2386 2393//2394 +f 2394//2395 2393//2394 2392//2393 2391//2392 +f 2393//2394 2385//2386 2386//2387 2392//2393 +f 11//11 1288//1289 2395//2396 1177//1178 +f 1288//1289 1286//1287 2396//2397 2395//2396 +f 1177//1178 2395//2396 2397//2398 1179//1180 +f 2395//2396 2396//2397 2398//2399 2397//2398 +f 1283//1284 1282//1283 2285//2286 2399//2400 +f 2399//2400 2285//2286 2279//2280 2400//2401 +f 1286//1287 1283//1284 2399//2400 2396//2397 +f 2396//2397 2399//2400 2400//2401 2398//2399 +f 1297//1298 1296//1297 2401//2402 2277//2278 +f 1296//1297 1292//1293 2402//2403 2401//2402 +f 2277//2278 2401//2402 2400//2401 2279//2280 +f 2401//2402 2402//2403 2398//2399 2400//2401 +f 1290//1291 29//29 1183//1184 2403//2404 +f 2403//2404 1183//1184 1179//1180 2397//2398 +f 1292//1293 1290//1291 2403//2404 2402//2403 +f 2402//2403 2403//2404 2397//2398 2398//2399 +f 2291//2292 2290//2291 2404//2405 2405//2406 +f 2290//2291 2286//2287 2406//2407 2404//2405 +f 2405//2406 2404//2405 2407//2408 2408//2409 +f 2404//2405 2406//2407 2409//2410 2407//2408 +f 2283//2284 1282//1283 1285//1286 2410//2411 +f 2410//2411 1285//1286 1280//1281 2411//2412 +f 2286//2287 2283//2284 2410//2411 2406//2407 +f 2406//2407 2410//2411 2411//2412 2409//2410 +f 1277//1278 2372//2373 2412//2413 1278//1279 +f 2372//2373 2366//2367 2413//2414 2412//2413 +f 1278//1279 2412//2413 2411//2412 1280//1281 +f 2412//2413 2413//2414 2409//2410 2411//2412 +f 2364//2365 2350//2351 2414//2415 2415//2416 +f 2415//2416 2414//2415 2408//2409 2407//2408 +f 2366//2367 2364//2365 2415//2416 2413//2414 +f 2413//2414 2415//2416 2407//2408 2409//2410 +f 2307//2308 2306//2307 2416//2417 2417//2418 +f 2306//2307 2302//2303 2418//2419 2416//2417 +f 2417//2418 2416//2417 2419//2420 2420//2421 +f 2416//2417 2418//2419 2421//2422 2419//2420 +f 2300//2301 2291//2292 2405//2406 2422//2423 +f 2422//2423 2405//2406 2408//2409 2423//2424 +f 2302//2303 2300//2301 2422//2423 2418//2419 +f 2418//2419 2422//2423 2423//2424 2421//2422 +f 2350//2351 2353//2354 2424//2425 2414//2415 +f 2353//2354 2346//2347 2425//2426 2424//2425 +f 2414//2415 2424//2425 2423//2424 2408//2409 +f 2424//2425 2425//2426 2421//2422 2423//2424 +f 2344//2345 2330//2331 2426//2427 2427//2428 +f 2427//2428 2426//2427 2420//2421 2419//2420 +f 2346//2347 2344//2345 2427//2428 2425//2426 +f 2425//2426 2427//2428 2419//2420 2421//2422 +f 2363//2364 2428//2429 2429//2430 2339//2340 +f 2360//2361 2430//2431 2428//2429 2363//2364 +f 2428//2429 2431//2432 2432//2433 2429//2430 +f 2430//2431 2433//2434 2431//2432 2428//2429 +f 2359//2360 2434//2435 2435//2436 2356//2357 +f 2434//2435 2436//2437 2437//2438 2435//2436 +f 2356//2357 2435//2436 2430//2431 2360//2361 +f 2435//2436 2437//2438 2433//2434 2430//2431 +f 1479//1480 2438//2439 2439//2440 1476//1477 +f 1472//1473 2440//2441 2438//2439 1479//1480 +f 2438//2439 2437//2438 2436//2437 2439//2440 +f 2440//2441 2433//2434 2437//2438 2438//2439 +f 1456//1457 2441//2442 2442//2443 1470//1471 +f 2441//2442 2432//2433 2431//2432 2442//2443 +f 1470//1471 2442//2443 2440//2441 1472//1473 +f 2442//2443 2431//2432 2433//2434 2440//2441 +f 2382//2383 2443//2444 2434//2435 2359//2360 +f 2379//2380 2444//2445 2443//2444 2382//2383 +f 2443//2444 2445//2446 2436//2437 2434//2435 +f 2444//2445 2446//2447 2445//2446 2443//2444 +f 2378//2379 2447//2448 2448//2449 2375//2376 +f 2447//2448 2449//2450 2450//2451 2448//2449 +f 2375//2376 2448//2449 2444//2445 2379//2380 +f 2448//2449 2450//2451 2446//2447 2444//2445 +f 1499//1500 2451//2452 2452//2453 1496//1497 +f 1492//1493 2453//2454 2451//2452 1499//1500 +f 2451//2452 2450//2451 2449//2450 2452//2453 +f 2453//2454 2446//2447 2450//2451 2451//2452 +f 1476//1477 2439//2440 2454//2455 1490//1491 +f 2439//2440 2436//2437 2445//2446 2454//2455 +f 1490//1491 2454//2455 2453//2454 1492//1493 +f 2454//2455 2445//2446 2446//2447 2453//2454 +f 2394//2395 2455//2456 2447//2448 2378//2379 +f 2391//2392 2456//2457 2455//2456 2394//2395 +f 2455//2456 2457//2458 2449//2450 2447//2448 +f 2456//2457 2458//2459 2457//2458 2455//2456 +f 1172//1172 1251//1252 2459//2460 2389//2390 +f 1251//1252 1248//1249 2460//2461 2459//2460 +f 2389//2390 2459//2460 2456//2457 2391//2392 +f 2459//2460 2460//2461 2458//2459 2456//2457 +f 1517//1518 2461//2462 1246//1247 267//267 +f 1512//1513 2462//2463 2461//2462 1517//1518 +f 2461//2462 2460//2461 1248//1249 1246//1247 +f 2462//2463 2458//2459 2460//2461 2461//2462 +f 1496//1497 2452//2453 2463//2464 1510//1511 +f 2452//2453 2449//2450 2457//2458 2463//2464 +f 1510//1511 2463//2464 2462//2463 1512//1513 +f 2463//2464 2457//2458 2458//2459 2462//2463 +f 1376//1377 2321//2322 2464//2465 1390//1391 +f 2321//2322 2318//2319 2465//2466 2464//2465 +f 1390//1391 2464//2465 2466//2467 1392//1393 +f 2464//2465 2465//2466 2467//2468 2466//2467 +f 2316//2317 2307//2308 2417//2418 2468//2469 +f 2468//2469 2417//2418 2420//2421 2469//2470 +f 2318//2319 2316//2317 2468//2469 2465//2466 +f 2465//2466 2468//2469 2469//2470 2467//2468 +f 2330//2331 2333//2334 2470//2471 2426//2427 +f 2333//2334 2326//2327 2471//2472 2470//2471 +f 2426//2427 2470//2471 2469//2470 2420//2421 +f 2470//2471 2471//2472 2467//2468 2469//2470 +f 2324//2325 1396//1397 1399//1400 2472//2473 +f 2472//2473 1399//1400 1392//1393 2466//2467 +f 2326//2327 2324//2325 2472//2473 2471//2472 +f 2471//2472 2472//2473 2466//2467 2467//2468 +f 2343//2344 2473//2474 1430//1431 1417//1418 +f 2340//2341 2474//2475 2473//2474 2343//2344 +f 2473//2474 2475//2476 1432//1433 1430//1431 +f 2474//2475 2476//2477 2475//2476 2473//2474 +f 2339//2340 2429//2430 2477//2478 2336//2337 +f 2429//2430 2432//2433 2478//2479 2477//2478 +f 2336//2337 2477//2478 2474//2475 2340//2341 +f 2477//2478 2478//2479 2476//2477 2474//2475 +f 1459//1460 2479//2480 2441//2442 1456//1457 +f 1452//1453 2480//2481 2479//2480 1459//1460 +f 2479//2480 2478//2479 2432//2433 2441//2442 +f 2480//2481 2476//2477 2478//2479 2479//2480 +f 1450//1451 1436//1437 1439//1440 2481//2482 +f 2481//2482 1439//1440 1432//1433 2475//2476 +f 1452//1453 1450//1451 2481//2482 2480//2481 +f 2480//2481 2481//2482 2475//2476 2476//2477 +f 2482//2483 2483//2483 2484//2483 2485//2483 +f 2486//2484 2482//2485 2485//2486 2487//2487 +f 2482//2485 2486//2484 2488//2488 2489//2489 +f 2483//2490 2482//2485 2489//2489 2490//2491 +f 2491//2492 2492//2493 2493//2494 2494//2495 +f 2495//2496 2491//2492 2494//2495 2496//2497 +f 2491//2492 2495//2496 2497//2498 2498//2499 +f 2492//2493 2491//2492 2498//2499 2499//2500 +f 2500//2501 2501//2502 2502//2503 2503//2504 +f 2504//2505 2505//2506 2500//2501 2503//2504 +f 2500//2501 2505//2506 2506//2507 2507//2508 +f 2501//2502 2500//2501 2507//2508 2508//2509 +f 2509//2510 2510//2511 2511//2512 2512//2513 +f 2513//2514 2509//2510 2512//2513 2514//2515 +f 2509//2510 2513//2514 2515//2516 2516//2517 +f 2510//2511 2509//2510 2516//2517 2517//2518 +f 2518//2519 2519//2520 2520//2521 2521//2522 +f 2522//2523 2518//2519 2521//2522 2523//2524 +f 2518//2519 2522//2523 2524//2525 2525//2526 +f 2519//2520 2518//2519 2525//2526 2526//2527 +f 2527//2528 2528//2529 2490//2491 2489//2489 +f 2529//2530 2527//2528 2489//2489 2488//2488 +f 2527//2528 2529//2530 2530//2531 2531//2532 +f 2528//2529 2527//2528 2531//2532 2532//2533 +f 2533//2534 2534//2535 2499//2500 2498//2499 +f 2535//2536 2533//2534 2498//2499 2497//2498 +f 2533//2534 2535//2536 2536//2537 2537//2538 +f 2534//2535 2533//2534 2537//2538 2538//2539 +f 2539//2540 2540//2541 2508//2509 2507//2508 +f 2507//2508 2506//2507 2541//2542 2539//2540 +f 2539//2540 2541//2542 2542//2543 2543//2544 +f 2540//2541 2539//2540 2543//2544 2544//2545 +f 2545//2546 2546//2547 2517//2518 2516//2517 +f 2547//2548 2545//2546 2516//2517 2515//2516 +f 2545//2546 2547//2548 2548//2549 2549//2550 +f 2546//2547 2545//2546 2549//2550 2550//2551 +f 2551//2552 2552//2553 2526//2527 2525//2526 +f 2553//2554 2551//2552 2525//2526 2524//2525 +f 2551//2552 2553//2554 2554//2555 2555//2556 +f 2552//2553 2551//2552 2555//2556 2556//2557 +f 2557//2558 2558//2559 2532//2533 2531//2532 +f 2559//2560 2557//2558 2531//2532 2530//2531 +f 2557//2558 2559//2560 2560//2561 2561//2562 +f 2558//2559 2557//2558 2561//2562 2562//2563 +f 2563//2564 2564//2565 2538//2539 2537//2538 +f 2565//2566 2563//2564 2537//2538 2536//2537 +f 2563//2564 2565//2566 2566//2567 2567//2568 +f 2564//2565 2563//2564 2567//2568 2568//2569 +f 2569//2570 2570//2571 2544//2545 2543//2544 +f 2543//2544 2542//2543 2571//2572 2569//2570 +f 2569//2570 2571//2572 2572//2573 2573//2574 +f 2570//2571 2569//2570 2573//2574 2574//2575 +f 2575//2576 2576//2577 2550//2551 2549//2550 +f 2577//2578 2575//2576 2549//2550 2548//2549 +f 2575//2576 2577//2578 2578//2579 2579//2580 +f 2576//2577 2575//2576 2579//2580 2580//2581 +f 2581//2582 2582//2583 2556//2557 2555//2556 +f 2583//2584 2581//2582 2555//2556 2554//2555 +f 2581//2582 2583//2584 2584//2585 2585//2586 +f 2582//2583 2581//2582 2585//2586 2586//2587 +f 2587//2588 2588//2589 2562//2563 2561//2562 +f 2589//2590 2587//2588 2561//2562 2560//2561 +f 2587//2588 2589//2590 2590//2591 2591//2592 +f 2588//2589 2587//2588 2591//2592 2592//2593 +f 2593//2594 2594//2595 2568//2569 2567//2568 +f 2595//2596 2593//2594 2567//2568 2566//2567 +f 2593//2594 2595//2596 2596//2597 2597//2598 +f 2594//2595 2593//2594 2597//2598 2598//2599 +f 2599//2600 2600//2601 2574//2575 2573//2574 +f 2573//2574 2572//2573 2601//2602 2599//2600 +f 2599//2600 2601//2602 2602//2603 2603//2604 +f 2600//2601 2599//2600 2603//2604 2604//2605 +f 2605//2606 2606//2607 2580//2581 2579//2580 +f 2607//2608 2605//2606 2579//2580 2578//2579 +f 2605//2606 2607//2608 2608//2609 2609//2610 +f 2606//2607 2605//2606 2609//2610 2610//2611 +f 2611//2612 2612//2613 2586//2587 2585//2586 +f 2613//2614 2611//2612 2585//2586 2584//2585 +f 2611//2612 2613//2614 2614//2615 2615//2616 +f 2612//2613 2611//2612 2615//2616 2616//2617 +f 2617//2618 2618//2619 2592//2593 2591//2592 +f 2619//2620 2617//2618 2591//2592 2590//2591 +f 2617//2618 2619//2620 2620//2621 2621//2622 +f 2618//2619 2617//2618 2621//2622 2622//2623 +f 2623//2624 2624//2625 2598//2599 2597//2598 +f 2625//2626 2623//2624 2597//2598 2596//2597 +f 2623//2624 2625//2626 2626//2627 2627//2628 +f 2624//2625 2623//2624 2627//2628 2628//2629 +f 2629//2630 2630//2631 2604//2605 2603//2604 +f 2603//2604 2602//2603 2631//2632 2629//2630 +f 2629//2630 2631//2632 2632//2633 2633//2634 +f 2630//2631 2629//2630 2633//2634 2634//2635 +f 2635//2636 2636//2637 2610//2611 2609//2610 +f 2637//2638 2635//2636 2609//2610 2608//2609 +f 2635//2636 2637//2638 2638//2639 2639//2640 +f 2636//2637 2635//2636 2639//2640 2640//2641 +f 2641//2642 2642//2643 2616//2617 2615//2616 +f 2643//2644 2641//2642 2615//2616 2614//2615 +f 2641//2642 2643//2644 2644//2645 2645//2646 +f 2642//2643 2641//2642 2645//2646 2646//2647 +f 2647//2648 2648//2649 2622//2623 2621//2622 +f 2649//2650 2647//2648 2621//2622 2620//2621 +f 2647//2648 2649//2650 2650//2651 2651//2652 +f 2648//2649 2647//2648 2651//2652 2652//2653 +f 2653//2654 2654//2655 2628//2629 2627//2628 +f 2655//2656 2653//2654 2627//2628 2626//2627 +f 2653//2654 2655//2656 2656//2657 2657//2658 +f 2654//2655 2653//2654 2657//2658 2658//2659 +f 2659//2660 2660//2661 2634//2635 2633//2634 +f 2633//2634 2632//2633 2661//2662 2659//2660 +f 2659//2660 2661//2662 2662//2663 2663//2664 +f 2660//2661 2659//2660 2663//2664 2664//2665 +f 2665//2666 2666//2667 2640//2641 2639//2640 +f 2667//2668 2665//2666 2639//2640 2638//2639 +f 2665//2666 2667//2668 2668//2669 2669//2670 +f 2666//2667 2665//2666 2669//2670 2670//2671 +f 2671//2672 2672//2673 2646//2647 2645//2646 +f 2673//2674 2671//2672 2645//2646 2644//2645 +f 2671//2672 2673//2674 2674//2675 2675//2676 +f 2672//2673 2671//2672 2675//2676 2676//2677 +f 2677//2678 2678//2679 2652//2653 2651//2652 +f 2679//2680 2677//2678 2651//2652 2650//2651 +f 2677//2678 2679//2680 2680//2681 2681//2682 +f 2678//2679 2677//2678 2681//2682 2682//2683 +f 2683//2684 2684//2685 2658//2659 2657//2658 +f 2685//2686 2683//2684 2657//2658 2656//2657 +f 2683//2684 2685//2686 2686//2687 2687//2688 +f 2684//2685 2683//2684 2687//2688 2688//2689 +f 2689//2690 2690//2691 2664//2665 2663//2664 +f 2663//2664 2662//2663 2691//2692 2689//2690 +f 2689//2690 2691//2692 2692//2693 2693//2694 +f 2690//2691 2689//2690 2693//2694 2694//2695 +f 2695//2696 2696//2697 2670//2671 2669//2670 +f 2697//2698 2695//2696 2669//2670 2668//2669 +f 2695//2696 2697//2698 2698//2699 2699//2700 +f 2696//2697 2695//2696 2699//2700 2700//2701 +f 2701//2702 2702//2703 2676//2677 2675//2676 +f 2703//2704 2701//2702 2675//2676 2674//2675 +f 2701//2702 2703//2704 2704//2705 2705//2706 +f 2702//2703 2701//2702 2705//2706 2706//2707 +f 2707//2708 2708//2709 2682//2683 2681//2682 +f 2709//2710 2707//2708 2681//2682 2680//2681 +f 2707//2708 2709//2710 2710//2711 2711//2712 +f 2708//2709 2707//2708 2711//2712 2712//2713 +f 2713//2714 2714//2715 2688//2689 2687//2688 +f 2715//2716 2713//2714 2687//2688 2686//2687 +f 2713//2714 2715//2716 2716//2717 2717//2718 +f 2714//2715 2713//2714 2717//2718 2718//2719 +f 2719//2720 2720//2721 2694//2695 2693//2694 +f 2693//2694 2692//2693 2721//2722 2719//2720 +f 2719//2720 2721//2722 2722//2723 2723//2724 +f 2720//2721 2719//2720 2723//2724 2724//2725 +f 2725//2726 2726//2727 2700//2701 2699//2700 +f 2727//2728 2725//2726 2699//2700 2698//2699 +f 2725//2726 2727//2728 2728//2729 2729//2730 +f 2726//2727 2725//2726 2729//2730 2730//2731 +f 2731//2732 2732//2733 2706//2707 2705//2706 +f 2733//2734 2731//2732 2705//2706 2704//2705 +f 2731//2732 2733//2734 2734//2735 2735//2736 +f 2732//2733 2731//2732 2735//2736 2736//2737 +f 2737//2738 2738//2739 2712//2713 2711//2712 +f 2739//2740 2737//2738 2711//2712 2710//2711 +f 2737//2738 2739//2740 2740//2741 2741//2742 +f 2738//2739 2737//2738 2741//2742 2742//2743 +f 2743//2744 2744//2745 2718//2719 2717//2718 +f 2745//2746 2743//2744 2717//2718 2716//2717 +f 2743//2744 2745//2746 2746//2747 2747//2748 +f 2744//2745 2743//2744 2747//2748 2748//2749 +f 2749//2750 2750//2751 2724//2725 2723//2724 +f 2723//2724 2722//2723 2751//2752 2749//2750 +f 2749//2750 2751//2752 2752//2753 2753//2754 +f 2750//2751 2749//2750 2753//2754 2754//2755 +f 2755//2756 2756//2757 2730//2731 2729//2730 +f 2757//2758 2755//2756 2729//2730 2728//2729 +f 2755//2756 2757//2758 2758//2759 2759//2760 +f 2756//2757 2755//2756 2759//2760 2760//2761 +f 2761//2762 2762//2763 2736//2737 2735//2736 +f 2763//2764 2761//2762 2735//2736 2734//2735 +f 2761//2762 2763//2764 2764//2765 2765//2766 +f 2762//2763 2761//2762 2765//2766 2766//2767 +f 2767//2768 2768//2769 2742//2743 2741//2742 +f 2769//2770 2767//2768 2741//2742 2740//2741 +f 2767//2768 2769//2770 2770//2771 2771//2772 +f 2768//2769 2767//2768 2771//2772 2772//2773 +f 2773//2774 2774//2775 2748//2749 2747//2748 +f 2775//2776 2773//2774 2747//2748 2746//2747 +f 2773//2774 2775//2776 2776//2777 2777//2778 +f 2774//2775 2773//2774 2777//2778 2778//2779 +f 2779//2780 2780//2781 2754//2755 2753//2754 +f 2753//2754 2752//2753 2781//2782 2779//2780 +f 2779//2780 2781//2782 2782//2783 2783//2784 +f 2780//2781 2779//2780 2783//2784 2784//2785 +f 2785//2786 2786//2787 2760//2761 2759//2760 +f 2787//2788 2785//2786 2759//2760 2758//2759 +f 2785//2786 2787//2788 2788//2789 2789//2790 +f 2786//2787 2785//2786 2789//2790 2790//2791 +f 2791//2792 2792//2793 2766//2767 2765//2766 +f 2793//2794 2791//2792 2765//2766 2764//2765 +f 2791//2792 2793//2794 2794//2795 2795//2796 +f 2792//2793 2791//2792 2795//2796 2796//2797 +f 2797//2798 2798//2799 2799//2800 2800//2801 +f 2801//2802 2797//2798 2800//2801 2802//2803 +f 2797//2798 2801//2802 2803//2804 2804//2805 +f 2798//2799 2797//2798 2804//2805 2805//2806 +f 2806//2807 2807//2808 2808//2809 2809//2810 +f 2810//2811 2806//2807 2809//2810 2811//2812 +f 2806//2807 2810//2811 2812//2813 2813//2814 +f 2807//2808 2806//2807 2813//2814 2814//2815 +f 2815//2816 2816//2817 2817//2818 2818//2819 +f 2819//2820 2820//2821 2815//2816 2818//2819 +f 2815//2816 2820//2821 2821//2822 2822//2823 +f 2816//2817 2815//2816 2822//2823 2823//2824 +f 2824//2825 2825//2826 2826//2827 2827//2828 +f 2828//2829 2824//2825 2827//2828 2829//2830 +f 2824//2825 2828//2829 2830//2831 2831//2832 +f 2825//2826 2824//2825 2831//2832 2832//2833 +f 2833//2834 2834//2835 2835//2836 2836//2837 +f 2837//2838 2833//2834 2836//2837 2838//2839 +f 2833//2834 2837//2838 2839//2840 2840//2841 +f 2834//2835 2833//2834 2840//2841 2841//2842 +f 2842//2843 2843//2844 2844//2845 2845//2846 +f 2846//2847 2842//2843 2845//2846 2847//2848 +f 2842//2843 2846//2847 2848//2849 2849//2850 +f 2843//2844 2842//2843 2849//2850 2850//2851 +f 2851//2852 2852//2853 2853//2854 2854//2855 +f 2855//2856 2851//2852 2854//2855 2856//2857 +f 2851//2852 2855//2856 2857//2858 2858//2859 +f 2852//2853 2851//2852 2858//2859 2859//2860 +f 2860//2861 2861//2862 2862//2863 2863//2864 +f 2864//2865 2865//2866 2860//2861 2863//2864 +f 2860//2861 2865//2866 2866//2867 2867//2868 +f 2861//2862 2860//2861 2867//2868 2868//2869 +f 2869//2870 2870//2871 2871//2872 2872//2873 +f 2873//2874 2869//2870 2872//2873 2874//2875 +f 2869//2870 2873//2874 2875//2876 2876//2877 +f 2870//2871 2869//2870 2876//2877 2877//2878 +f 2878//2879 2879//2880 2880//2881 2881//2882 +f 2882//2883 2878//2879 2881//2882 2883//2884 +f 2878//2879 2882//2883 2884//2885 2885//2886 +f 2879//2880 2878//2879 2885//2886 2886//2887 +f 2887//2888 2888//2889 2850//2851 2849//2850 +f 2889//2890 2887//2888 2849//2850 2848//2849 +f 2887//2888 2889//2890 2890//2891 2891//2892 +f 2888//2889 2887//2888 2891//2892 2892//2893 +f 2893//2894 2894//2895 2859//2860 2858//2859 +f 2895//2896 2893//2894 2858//2859 2857//2858 +f 2893//2894 2895//2896 2896//2897 2897//2898 +f 2894//2895 2893//2894 2897//2898 2898//2899 +f 2899//2900 2900//2901 2868//2869 2867//2868 +f 2867//2868 2866//2867 2901//2902 2899//2900 +f 2899//2900 2901//2902 2902//2903 2903//2904 +f 2900//2901 2899//2900 2903//2904 2904//2905 +f 2905//2906 2906//2907 2877//2878 2876//2877 +f 2907//2908 2905//2906 2876//2877 2875//2876 +f 2905//2906 2907//2908 2908//2909 2909//2910 +f 2906//2907 2905//2906 2909//2910 2910//2911 +f 2911//2912 2912//2913 2886//2887 2885//2886 +f 2913//2914 2911//2912 2885//2886 2884//2885 +f 2911//2912 2913//2914 2914//2915 2915//2916 +f 2912//2913 2911//2912 2915//2916 2916//2917 +f 2917//2918 2918//2919 2892//2893 2891//2892 +f 2919//2920 2917//2918 2891//2892 2890//2891 +f 2917//2918 2919//2920 2920//2921 2921//2922 +f 2918//2919 2917//2918 2921//2922 2922//2923 +f 2923//2924 2924//2925 2898//2899 2897//2898 +f 2925//2926 2923//2924 2897//2898 2896//2897 +f 2923//2924 2925//2926 2926//2927 2927//2928 +f 2924//2925 2923//2924 2927//2928 2928//2929 +f 2929//2930 2930//2931 2904//2905 2903//2904 +f 2903//2904 2902//2903 2931//2932 2929//2930 +f 2929//2930 2931//2932 2932//2933 2933//2934 +f 2930//2931 2929//2930 2933//2934 2934//2935 +f 2935//2936 2936//2937 2910//2911 2909//2910 +f 2937//2938 2935//2936 2909//2910 2908//2909 +f 2935//2936 2937//2938 2938//2939 2939//2940 +f 2936//2937 2935//2936 2939//2940 2940//2941 +f 2941//2942 2942//2943 2916//2917 2915//2916 +f 2943//2944 2941//2942 2915//2916 2914//2915 +f 2941//2942 2943//2944 2944//2945 2945//2946 +f 2942//2943 2941//2942 2945//2946 2946//2947 +f 2947//2948 2948//2949 2922//2923 2921//2922 +f 2949//2950 2947//2948 2921//2922 2920//2921 +f 2947//2948 2949//2950 2487//2487 2485//2486 +f 2948//2949 2947//2948 2485//2486 2484//2951 +f 2950//2952 2951//2953 2928//2929 2927//2928 +f 2952//2954 2950//2952 2927//2928 2926//2927 +f 2950//2952 2952//2954 2496//2497 2494//2495 +f 2951//2953 2950//2952 2494//2495 2493//2494 +f 2953//2955 2954//2956 2934//2935 2933//2934 +f 2933//2934 2932//2933 2955//2957 2953//2955 +f 2953//2955 2955//2957 2504//2505 2503//2504 +f 2954//2956 2953//2955 2503//2504 2502//2503 +f 2956//2958 2957//2959 2940//2941 2939//2940 +f 2958//2960 2956//2958 2939//2940 2938//2939 +f 2956//2958 2958//2960 2514//2515 2512//2513 +f 2957//2959 2956//2958 2512//2513 2511//2512 +f 2959//2961 2960//2962 2946//2947 2945//2946 +f 2961//2963 2959//2961 2945//2946 2944//2945 +f 2959//2961 2961//2963 2523//2524 2521//2522 +f 2960//2962 2959//2961 2521//2522 2520//2521 +f 2962//2964 2963//2965 2964//2966 2965//2967 +f 2966//2968 2962//2964 2965//2967 2967//2969 +f 2962//2964 2966//2968 2968//2970 2969//2971 +f 2963//2965 2962//2964 2969//2971 2970//2972 +f 2971//2973 2972//2974 2973//2975 2974//2976 +f 2975//2977 2971//2973 2974//2976 2976//2978 +f 2971//2973 2975//2977 2977//2979 2978//2980 +f 2972//2974 2971//2973 2978//2980 2979//2981 +f 2980//2982 2981//2983 2982//2984 2983//2985 +f 2963//2965 2980//2982 2983//2985 2964//2966 +f 2980//2982 2963//2965 2970//2972 2984//2986 +f 2981//2983 2980//2982 2984//2986 2985//2987 +f 2986//2988 2987//2989 2988//2990 2989//2991 +f 2972//2974 2986//2988 2989//2991 2973//2975 +f 2986//2988 2972//2974 2979//2981 2990//2992 +f 2987//2989 2986//2988 2990//2992 2991//2993 +f 2992//2994 2993//2995 2994//2996 2995//2997 +f 2981//2983 2992//2994 2995//2997 2982//2984 +f 2992//2994 2981//2983 2985//2987 2996//2998 +f 2993//2995 2992//2994 2996//2998 2997//2999 +f 2998//3000 2999//3001 3000//3002 3001//3003 +f 2987//2989 2998//3000 3001//3003 2988//2990 +f 2998//3000 2987//2989 2991//2993 3002//3004 +f 2999//3001 2998//3000 3002//3004 3003//3005 +f 3004//3006 3005//3007 3006//3008 3007//3009 +f 2993//2995 3004//3006 3007//3009 2994//2996 +f 3004//3006 2993//2995 2997//2999 3008//3010 +f 3005//3007 3004//3006 3008//3010 3009//3011 +f 3010//3012 3011//3013 3012//3014 3013//3015 +f 2999//3001 3010//3012 3013//3015 3000//3002 +f 3010//3012 2999//3001 3003//3005 3014//3016 +f 3011//3013 3010//3012 3014//3016 3015//3017 +f 3016//3018 3017//3019 3018//3020 3019//3021 +f 3005//3007 3016//3018 3019//3021 3006//3008 +f 3016//3018 3005//3007 3009//3011 3020//3022 +f 3017//3019 3016//3018 3020//3022 3021//3023 +f 3022//3024 3023//3025 3024//3026 3025//3027 +f 3011//3013 3022//3024 3025//3027 3012//3014 +f 3022//3024 3011//3013 3015//3017 3026//3028 +f 3023//3025 3022//3024 3026//3028 3027//3029 +f 3028//3030 3029//3031 3030//3032 3031//3033 +f 3017//3019 3028//3030 3031//3033 3018//3020 +f 3028//3030 3017//3019 3021//3023 3032//3034 +f 3029//3031 3028//3030 3032//3034 3033//3035 +f 3034//3036 3035//3037 3036//3038 3037//3039 +f 3023//3025 3034//3036 3037//3039 3024//3026 +f 3034//3036 3023//3025 3027//3029 3038//3040 +f 3035//3037 3034//3036 3038//3040 3039//3041 +f 3040//3042 3041//3043 3042//3044 3043//3045 +f 3029//3031 3040//3042 3043//3045 3030//3032 +f 3040//3042 3029//3031 3033//3035 3044//3046 +f 3041//3043 3040//3042 3044//3046 3045//3047 +f 3046//3048 3047//3049 3048//3050 3049//3051 +f 3035//3037 3046//3048 3049//3051 3036//3038 +f 3046//3048 3035//3037 3039//3041 3050//3052 +f 3047//3049 3046//3048 3050//3052 3051//3053 +f 3052//3054 3053//3055 3054//3056 3055//3057 +f 3041//3043 3052//3054 3055//3057 3042//3044 +f 3052//3054 3041//3043 3045//3047 3056//3058 +f 3053//3055 3052//3054 3056//3058 3057//3059 +f 3058//3060 3059//3061 3060//3062 3061//3063 +f 3047//3049 3058//3060 3061//3063 3048//3050 +f 3058//3060 3047//3049 3051//3053 3062//3064 +f 3059//3061 3058//3060 3062//3064 3063//3065 +f 3064//3066 3065//3067 3066//3068 3067//3069 +f 3053//3055 3064//3066 3067//3069 3054//3056 +f 3064//3066 3053//3055 3057//3059 3068//3070 +f 3065//3067 3064//3066 3068//3070 3069//3071 +f 3070//3072 3071//3073 3072//3074 3073//3075 +f 3059//3061 3070//3072 3073//3075 3060//3062 +f 3070//3072 3059//3061 3063//3065 3074//3076 +f 3071//3073 3070//3072 3074//3076 3075//3077 +f 3076//3078 3077//3079 3078//3080 3079//3081 +f 3065//3067 3076//3078 3079//3081 3066//3068 +f 3076//3078 3065//3067 3069//3071 3080//3082 +f 3077//3079 3076//3078 3080//3082 3081//3083 +f 3082//3084 3083//3085 3084//3086 3085//3087 +f 3071//3073 3082//3084 3085//3087 3072//3074 +f 3082//3084 3071//3073 3075//3077 3086//3088 +f 3083//3085 3082//3084 3086//3088 3087//3089 +f 3088//3090 3089//3091 3090//3092 3091//3093 +f 3092//3094 3088//3090 3091//3093 3093//3095 +f 3088//3090 3092//3094 3094//3096 3095//3097 +f 3089//3091 3088//3090 3095//3097 3096//3098 +f 3097//3099 3098//3100 3099//3101 3100//3102 +f 3101//3103 3097//3099 3100//3102 3102//3104 +f 3097//3099 3101//3103 3103//3105 3104//3106 +f 3098//3100 3097//3099 3104//3106 3105//3107 +f 3106//3108 3107//3109 3108//3110 3109//3111 +f 3089//3091 3106//3108 3109//3111 3090//3092 +f 3106//3108 3089//3091 3096//3098 3110//3112 +f 3107//3109 3106//3108 3110//3112 3111//3113 +f 3112//3114 3113//3115 3114//3116 3115//3117 +f 3098//3100 3112//3114 3115//3117 3099//3101 +f 3112//3114 3098//3100 3105//3107 3116//3118 +f 3113//3115 3112//3114 3116//3118 3117//3119 +f 3118//3120 3119//3121 3120//3122 3121//3123 +f 3107//3109 3118//3120 3121//3123 3108//3110 +f 3118//3120 3107//3109 3111//3113 3122//3124 +f 3119//3121 3118//3120 3122//3124 3123//3125 +f 3124//3126 3125//3127 3126//3128 3127//3129 +f 3113//3115 3124//3126 3127//3129 3114//3116 +f 3124//3126 3113//3115 3117//3119 3128//3130 +f 3125//3127 3124//3126 3128//3130 3129//3131 +f 3130//3132 3131//3133 3132//3134 3133//3135 +f 3119//3121 3130//3132 3133//3135 3120//3122 +f 3130//3132 3119//3121 3123//3125 3134//3136 +f 3131//3133 3130//3132 3134//3136 3135//3137 +f 3136//3138 3137//3139 3138//3140 3139//3141 +f 3125//3127 3136//3138 3139//3141 3126//3128 +f 3136//3138 3125//3127 3129//3131 3140//3142 +f 3137//3139 3136//3138 3140//3142 3141//3143 +f 3142//3144 2966//2968 2967//2969 3143//3145 +f 3131//3133 3142//3144 3143//3145 3132//3134 +f 3142//3144 3131//3133 3135//3137 3144//3146 +f 2966//2968 3142//3144 3144//3146 2968//2970 +f 3145//3147 2975//2977 2976//2978 3146//3148 +f 3137//3139 3145//3147 3146//3148 3138//3140 +f 3145//3147 3137//3139 3141//3143 3147//3149 +f 2975//2977 3145//3147 3147//3149 2977//2979 +f 3148//3150 3149//3151 2970//2972 2969//2971 +f 3150//3152 3148//3150 2969//2971 2968//2970 +f 3148//3150 3150//3152 2502//2503 2501//2502 +f 3149//3151 3148//3150 2501//2502 2508//2509 +f 3151//3153 3152//3154 2985//2987 2984//2986 +f 3149//3151 3151//3153 2984//2986 2970//2972 +f 3151//3153 3149//3151 2508//2509 2540//2541 +f 3152//3154 3151//3153 2540//2541 2544//2545 +f 3153//3155 3154//3156 2997//2999 2996//2998 +f 3152//3154 3153//3155 2996//2998 2985//2987 +f 3153//3155 3152//3154 2544//2545 2570//2571 +f 3154//3156 3153//3155 2570//2571 2574//2575 +f 3155//3157 3156//3158 3009//3011 3008//3010 +f 3154//3156 3155//3157 3008//3010 2997//2999 +f 3155//3157 3154//3156 2574//2575 2600//2601 +f 3156//3158 3155//3157 2600//2601 2604//2605 +f 3157//3159 3158//3160 3021//3023 3020//3022 +f 3156//3158 3157//3159 3020//3022 3009//3011 +f 3157//3159 3156//3158 2604//2605 2630//2631 +f 3158//3160 3157//3159 2630//2631 2634//2635 +f 3159//3161 3160//3162 3033//3035 3032//3034 +f 3158//3160 3159//3161 3032//3034 3021//3023 +f 3159//3161 3158//3160 2634//2635 2660//2661 +f 3160//3162 3159//3161 2660//2661 2664//2665 +f 3161//3163 3162//3164 3045//3047 3044//3046 +f 3160//3162 3161//3163 3044//3046 3033//3035 +f 3161//3163 3160//3162 2664//2665 2690//2691 +f 3162//3164 3161//3163 2690//2691 2694//2695 +f 3163//3165 3164//3166 3057//3059 3056//3058 +f 3162//3164 3163//3165 3056//3058 3045//3047 +f 3163//3165 3162//3164 2694//2695 2720//2721 +f 3164//3166 3163//3165 2720//2721 2724//2725 +f 3165//3167 3166//3168 3069//3071 3068//3070 +f 3164//3166 3165//3167 3068//3070 3057//3059 +f 3165//3167 3164//3166 2724//2725 2750//2751 +f 3166//3168 3165//3167 2750//2751 2754//2755 +f 3167//3169 3168//3170 3081//3083 3080//3082 +f 3166//3168 3167//3169 3080//3082 3069//3071 +f 3167//3169 3166//3168 2754//2755 2780//2781 +f 3168//3170 3167//3169 2780//2781 2784//2785 +f 3169//3171 3170//3172 3096//3098 3095//3097 +f 3171//3173 3169//3171 3095//3097 3094//3096 +f 3169//3171 3171//3173 2823//2824 3172//3174 +f 3170//3172 3169//3171 3172//3174 2862//2863 +f 3173//3175 3174//3176 3111//3113 3110//3112 +f 3170//3172 3173//3175 3110//3112 3096//3098 +f 3173//3175 3170//3172 2862//2863 2861//2862 +f 3174//3176 3173//3175 2861//2862 2868//2869 +f 3175//3177 3176//3178 3123//3125 3122//3124 +f 3174//3176 3175//3177 3122//3124 3111//3113 +f 3175//3177 3174//3176 2868//2869 2900//2901 +f 3176//3178 3175//3177 2900//2901 2904//2905 +f 3177//3179 3178//3180 3135//3137 3134//3136 +f 3176//3178 3177//3179 3134//3136 3123//3125 +f 3177//3179 3176//3178 2904//2905 2930//2931 +f 3178//3180 3177//3179 2930//2931 2934//2935 +f 3179//3181 3150//3152 2968//2970 3144//3146 +f 3178//3180 3179//3181 3144//3146 3135//3137 +f 3179//3181 3178//3180 2934//2935 2954//2956 +f 3150//3152 3179//3181 2954//2956 2502//2503 +f 3180//3182 3181//3183 3182//3184 3183//3185 +f 3184//3186 3180//3182 3183//3185 3185//3187 +f 3180//3182 3184//3186 3186//3188 3187//3189 +f 3181//3183 3180//3182 3187//3189 3188//3190 +f 3189//3191 3190//3192 3188//3190 3187//3189 +f 3191//3193 3189//3191 3187//3189 3186//3188 +f 3189//3191 3191//3193 3192//3194 3193//3195 +f 3190//3192 3189//3191 3193//3195 3194//3196 +f 3195//3197 3196//3198 3194//3196 3193//3195 +f 3197//3199 3195//3197 3193//3195 3192//3194 +f 3195//3197 3197//3199 3198//3200 3199//3201 +f 3196//3198 3195//3197 3199//3201 3200//3202 +f 3201//3203 3202//3204 3200//3202 3199//3201 +f 3203//3205 3201//3203 3199//3201 3198//3200 +f 3201//3203 3203//3205 3204//3206 3205//3207 +f 3202//3204 3201//3203 3205//3207 3206//3208 +f 3207//3209 3208//3210 3206//3208 3205//3207 +f 3209//3211 3207//3209 3205//3207 3204//3206 +f 3207//3209 3209//3211 3210//3212 3211//3213 +f 3208//3210 3207//3209 3211//3213 3212//3214 +f 3213//3215 3214//3216 3212//3214 3211//3213 +f 3215//3217 3213//3215 3211//3213 3210//3212 +f 3213//3215 3215//3217 3216//3218 3217//3219 +f 3214//3216 3213//3215 3217//3219 3218//3220 +f 3219//3221 3220//3222 3218//3220 3217//3219 +f 3221//3223 3219//3221 3217//3219 3216//3218 +f 3219//3221 3221//3223 3222//3224 3223//3225 +f 3220//3222 3219//3221 3223//3225 3224//3226 +f 3225//3227 3226//3228 3224//3226 3223//3225 +f 3227//3229 3225//3227 3223//3225 3222//3224 +f 3225//3227 3227//3229 3228//3230 3229//3231 +f 3226//3228 3225//3227 3229//3231 3230//3232 +f 3231//3233 3232//3234 3230//3232 3229//3231 +f 3233//3235 3231//3233 3229//3231 3228//3230 +f 3231//3233 3233//3235 3234//3236 3235//3237 +f 3232//3234 3231//3233 3235//3237 3236//3238 +f 3237//3239 3238//3240 3236//3238 3235//3237 +f 3239//3241 3237//3239 3235//3237 3234//3236 +f 3237//3239 3239//3241 3240//3242 3241//3243 +f 3238//3240 3237//3239 3241//3243 3242//3244 +f 3243//3245 3244//3246 3245//3247 3246//3248 +f 3247//3249 3243//3245 3246//3248 3248//3250 +f 3243//3245 3247//3249 3249//3251 3250//3252 +f 3244//3246 3243//3245 3250//3252 3251//3253 +f 3252//3254 3253//3255 3254//3256 3255//3257 +f 3256//3258 3252//3254 3255//3257 3257//3259 +f 3252//3254 3256//3258 3258//3260 3259//3261 +f 3253//3255 3252//3254 3259//3261 3260//3262 +f 3261//3263 3262//3264 3260//3262 3259//3261 +f 3263//3265 3261//3263 3259//3261 3258//3260 +f 3261//3263 3263//3265 3264//3266 3265//3267 +f 3262//3264 3261//3263 3265//3267 3266//3268 +f 3267//3269 3268//3270 3266//3268 3265//3267 +f 3269//3271 3267//3269 3265//3267 3264//3266 +f 3267//3269 3269//3271 3270//3272 3271//3273 +f 3268//3270 3267//3269 3271//3273 3272//3274 +f 3273//3275 3274//3276 3272//3274 3271//3273 +f 3275//3277 3273//3275 3271//3273 3270//3272 +f 3273//3275 3275//3277 3185//3187 3183//3185 +f 3274//3276 3273//3275 3183//3185 3182//3184 +f 3276//3278 3277//3279 3278//3280 3279//3281 +f 2519//2520 3276//3278 3279//3281 2520//2521 +f 3276//3278 2519//2520 2526//2527 3280//3282 +f 3277//3279 3276//3278 3280//3282 3281//3283 +f 3282//3284 3283//3285 3281//3283 3280//3282 +f 2552//2553 3282//3284 3280//3282 2526//2527 +f 3282//3284 2552//2553 2556//2557 3284//3286 +f 3283//3285 3282//3284 3284//3286 3285//3287 +f 3286//3288 3287//3289 3285//3287 3284//3286 +f 2582//2583 3286//3288 3284//3286 2556//2557 +f 3286//3288 2582//2583 2586//2587 3288//3290 +f 3287//3289 3286//3288 3288//3290 3289//3291 +f 3290//3292 3291//3293 3289//3291 3288//3290 +f 2612//2613 3290//3292 3288//3290 2586//2587 +f 3290//3292 2612//2613 2616//2617 3292//3294 +f 3291//3293 3290//3292 3292//3294 3293//3295 +f 3294//3296 3295//3297 3293//3295 3292//3294 +f 2642//2643 3294//3296 3292//3294 2616//2617 +f 3294//3296 2642//2643 2646//2647 3296//3298 +f 3295//3297 3294//3296 3296//3298 3297//3299 +f 3298//3300 3299//3301 3297//3299 3296//3298 +f 2672//2673 3298//3300 3296//3298 2646//2647 +f 3298//3300 2672//2673 2676//2677 3300//3302 +f 3299//3301 3298//3300 3300//3302 3301//3303 +f 3302//3304 3303//3305 3301//3303 3300//3302 +f 2702//2703 3302//3304 3300//3302 2676//2677 +f 3302//3304 2702//2703 2706//2707 3304//3306 +f 3303//3305 3302//3304 3304//3306 3305//3307 +f 3306//3308 3307//3309 3305//3307 3304//3306 +f 2732//2733 3306//3308 3304//3306 2706//2707 +f 3306//3308 2732//2733 2736//2737 3308//3310 +f 3307//3309 3306//3308 3308//3310 3309//3311 +f 3310//3312 3311//3313 3309//3311 3308//3310 +f 2762//2763 3310//3312 3308//3310 2736//2737 +f 3310//3312 2762//2763 2766//2767 3312//3314 +f 3311//3313 3310//3312 3312//3314 3313//3315 +f 3314//3316 3315//3317 3313//3315 3312//3314 +f 2792//2793 3314//3316 3312//3314 2766//2767 +f 3314//3316 2792//2793 2796//2797 3316//3318 +f 3315//3317 3314//3316 3316//3318 3317//3319 +f 3318//3320 3319//3321 3320//3322 3321//3323 +f 2834//2835 3318//3320 3321//3323 2835//2836 +f 3318//3320 2834//2835 2841//2842 3322//3324 +f 3319//3321 3318//3320 3322//3324 3323//3325 +f 3324//3326 3325//3327 3326//3328 3327//3329 +f 2879//2880 3324//3326 3327//3329 2880//2881 +f 3324//3326 2879//2880 2886//2887 3328//3330 +f 3325//3327 3324//3326 3328//3330 3329//3331 +f 3330//3332 3331//3333 3329//3331 3328//3330 +f 2912//2913 3330//3332 3328//3330 2886//2887 +f 3330//3332 2912//2913 2916//2917 3332//3334 +f 3331//3333 3330//3332 3332//3334 3333//3335 +f 3334//3336 3335//3337 3333//3335 3332//3334 +f 2942//2943 3334//3336 3332//3334 2916//2917 +f 3334//3336 2942//2943 2946//2947 3336//3338 +f 3335//3337 3334//3336 3336//3338 3337//3339 +f 3338//3340 3339//3341 3337//3339 3336//3338 +f 2960//2962 3338//3340 3336//3338 2946//2947 +f 3338//3340 2960//2962 2520//2521 3279//3281 +f 3339//3341 3338//3340 3279//3281 3278//3280 +f 3340//3342 2522//2523 2523//2524 3341//3343 +f 3342//3344 3340//3342 3341//3343 3343//3345 +f 3340//3342 3342//3344 3344//3346 3345//3347 +f 2522//2523 3340//3342 3345//3347 2524//2525 +f 3346//3348 2553//2554 2524//2525 3345//3347 +f 3347//3349 3346//3348 3345//3347 3344//3346 +f 3346//3348 3347//3349 3348//3350 3349//3351 +f 2553//2554 3346//3348 3349//3351 2554//2555 +f 3350//3352 2583//2584 2554//2555 3349//3351 +f 3351//3353 3350//3352 3349//3351 3348//3350 +f 3350//3352 3351//3353 3352//3354 3353//3355 +f 2583//2584 3350//3352 3353//3355 2584//2585 +f 3354//3356 2613//2614 2584//2585 3353//3355 +f 3355//3357 3354//3356 3353//3355 3352//3354 +f 3354//3356 3355//3357 3356//3358 3357//3359 +f 2613//2614 3354//3356 3357//3359 2614//2615 +f 3358//3360 2643//2644 2614//2615 3357//3359 +f 3359//3361 3358//3360 3357//3359 3356//3358 +f 3358//3360 3359//3361 3360//3362 3361//3363 +f 2643//2644 3358//3360 3361//3363 2644//2645 +f 3362//3364 2673//2674 2644//2645 3361//3363 +f 3363//3365 3362//3364 3361//3363 3360//3362 +f 3362//3364 3363//3365 3364//3366 3365//3367 +f 2673//2674 3362//3364 3365//3367 2674//2675 +f 3366//3368 2703//2704 2674//2675 3365//3367 +f 3367//3369 3366//3368 3365//3367 3364//3366 +f 3366//3368 3367//3369 3368//3370 3369//3371 +f 2703//2704 3366//3368 3369//3371 2704//2705 +f 3370//3372 2733//2734 2704//2705 3369//3371 +f 3371//3373 3370//3372 3369//3371 3368//3370 +f 3370//3372 3371//3373 3372//3374 3373//3375 +f 2733//2734 3370//3372 3373//3375 2734//2735 +f 3374//3376 2763//2764 2734//2735 3373//3375 +f 3375//3377 3374//3376 3373//3375 3372//3374 +f 3374//3376 3375//3377 3376//3378 3377//3379 +f 2763//2764 3374//3376 3377//3379 2764//2765 +f 3378//3380 2793//2794 2764//2765 3377//3379 +f 3379//3381 3378//3380 3377//3379 3376//3378 +f 3378//3380 3379//3381 3380//3382 3381//3383 +f 2793//2794 3378//3380 3381//3383 2794//2795 +f 3382//3384 2837//2838 2838//2839 3383//3385 +f 3384//3386 3382//3384 3383//3385 3385//3387 +f 3382//3384 3384//3386 3386//3388 3387//3389 +f 2837//2838 3382//3384 3387//3389 2839//2840 +f 3388//3390 2882//2883 2883//2884 3389//3391 +f 3390//3392 3388//3390 3389//3391 3391//3393 +f 3388//3390 3390//3392 3392//3394 3393//3395 +f 2882//2883 3388//3390 3393//3395 2884//2885 +f 3394//3396 2913//2914 2884//2885 3393//3395 +f 3395//3397 3394//3396 3393//3395 3392//3394 +f 3394//3396 3395//3397 3396//3398 3397//3399 +f 2913//2914 3394//3396 3397//3399 2914//2915 +f 3398//3400 2943//2944 2914//2915 3397//3399 +f 3399//3401 3398//3400 3397//3399 3396//3398 +f 3398//3400 3399//3401 3400//3402 3401//3403 +f 2943//2944 3398//3400 3401//3403 2944//2945 +f 3402//3404 2961//2963 2944//2945 3401//3403 +f 3403//3405 3402//3404 3401//3403 3400//3402 +f 3402//3404 3403//3405 3343//3345 3341//3343 +f 2961//2963 3402//3404 3341//3343 2523//2524 +f 3404//3406 3405//3407 3406//3408 3407//3409 +f 2965//2967 3404//3406 3407//3409 2967//2969 +f 3404//3406 2965//2967 2964//2966 3408//3410 +f 3405//3407 3404//3406 3408//3410 3409//3411 +f 3410//3412 3411//3413 3409//3411 3408//3410 +f 2983//2985 3410//3412 3408//3410 2964//2966 +f 3410//3412 2983//2985 2982//2984 3412//3414 +f 3411//3413 3410//3412 3412//3414 3413//3415 +f 3414//3416 3415//3417 3413//3415 3412//3414 +f 2995//2997 3414//3416 3412//3414 2982//2984 +f 3414//3416 2995//2997 2994//2996 3416//3418 +f 3415//3417 3414//3416 3416//3418 3417//3419 +f 3418//3420 3419//3421 3417//3419 3416//3418 +f 3007//3009 3418//3420 3416//3418 2994//2996 +f 3418//3420 3007//3009 3006//3008 3420//3422 +f 3419//3421 3418//3420 3420//3422 3421//3423 +f 3422//3424 3423//3425 3421//3423 3420//3422 +f 3019//3021 3422//3424 3420//3422 3006//3008 +f 3422//3424 3019//3021 3018//3020 3424//3426 +f 3423//3425 3422//3424 3424//3426 3425//3427 +f 3426//3428 3427//3429 3425//3427 3424//3426 +f 3031//3033 3426//3428 3424//3426 3018//3020 +f 3426//3428 3031//3033 3030//3032 3428//3430 +f 3427//3429 3426//3428 3428//3430 3429//3431 +f 3430//3432 3431//3433 3429//3431 3428//3430 +f 3043//3045 3430//3432 3428//3430 3030//3032 +f 3430//3432 3043//3045 3042//3044 3432//3434 +f 3431//3433 3430//3432 3432//3434 3433//3435 +f 3434//3436 3435//3437 3433//3435 3432//3434 +f 3055//3057 3434//3436 3432//3434 3042//3044 +f 3434//3436 3055//3057 3054//3056 3436//3438 +f 3435//3437 3434//3436 3436//3438 3437//3439 +f 3438//3440 3439//3441 3437//3439 3436//3438 +f 3067//3069 3438//3440 3436//3438 3054//3056 +f 3438//3440 3067//3069 3066//3068 3440//3442 +f 3439//3441 3438//3440 3440//3442 3441//3443 +f 3442//3444 3443//3445 3441//3443 3440//3442 +f 3079//3081 3442//3444 3440//3442 3066//3068 +f 3442//3444 3079//3081 3078//3080 3444//3446 +f 3443//3445 3442//3444 3444//3446 3445//3447 +f 3446//3448 3447//3449 3448//3450 3449//3451 +f 3450//3452 3446//3448 3449//3451 3451//3453 +f 3446//3448 3450//3452 3093//3095 3452//3454 +f 3447//3449 3446//3448 3452//3454 3453//3455 +f 3454//3456 3455//3457 3456//3458 3457//3459 +f 3109//3111 3454//3456 3457//3459 3090//3092 +f 3454//3456 3109//3111 3108//3110 3458//3460 +f 3455//3457 3454//3456 3458//3460 3459//3461 +f 3460//3462 3461//3463 3459//3461 3458//3460 +f 3121//3123 3460//3462 3458//3460 3108//3110 +f 3460//3462 3121//3123 3120//3122 3462//3464 +f 3461//3463 3460//3462 3462//3464 3463//3465 +f 3464//3466 3465//3467 3463//3465 3462//3464 +f 3133//3135 3464//3466 3462//3464 3120//3122 +f 3464//3466 3133//3135 3132//3134 3466//3468 +f 3465//3467 3464//3466 3466//3468 3467//3469 +f 3468//3470 3469//3471 3467//3469 3466//3468 +f 3143//3145 3468//3470 3466//3468 3132//3134 +f 3468//3470 3143//3145 2967//2969 3407//3409 +f 3469//3471 3468//3470 3407//3409 3406//3408 +f 3470//3472 3471//3473 3472//3474 3473//3475 +f 3474//3476 3470//3472 3473//3475 3475//3477 +f 3470//3472 3474//3476 3476//3478 3477//3479 +f 3471//3473 3470//3472 3477//3479 3478//3480 +f 3479//3481 3480//3482 3478//3480 3477//3479 +f 3481//3483 3479//3481 3477//3479 3476//3478 +f 3479//3481 3481//3483 3482//3484 3483//3485 +f 3480//3482 3479//3481 3483//3485 3484//3486 +f 3485//3487 3486//3488 3484//3486 3483//3485 +f 3487//3489 3485//3487 3483//3485 3482//3484 +f 3485//3487 3487//3489 3488//3490 3489//3491 +f 3486//3488 3485//3487 3489//3491 3490//3492 +f 3491//3493 3492//3494 3490//3492 3489//3491 +f 3493//3495 3491//3493 3489//3491 3488//3490 +f 3491//3493 3493//3495 3494//3496 3495//3497 +f 3492//3494 3491//3493 3495//3497 3496//3498 +f 3497//3499 3498//3500 3496//3498 3495//3497 +f 3499//3501 3497//3499 3495//3497 3494//3496 +f 3497//3499 3499//3501 3500//3502 3501//3503 +f 3498//3500 3497//3499 3501//3503 3502//3504 +f 3503//3505 3504//3506 3502//3504 3501//3503 +f 3505//3507 3503//3505 3501//3503 3500//3502 +f 3503//3505 3505//3507 3506//3508 3507//3509 +f 3504//3506 3503//3505 3507//3509 3508//3510 +f 3509//3511 3510//3512 3508//3510 3507//3509 +f 3511//3513 3509//3511 3507//3509 3506//3508 +f 3509//3511 3511//3513 3512//3514 3513//3515 +f 3510//3512 3509//3511 3513//3515 3514//3516 +f 3515//3517 3516//3518 3514//3516 3513//3515 +f 3517//3519 3515//3517 3513//3515 3512//3514 +f 3515//3517 3517//3519 3518//3520 3519//3521 +f 3516//3518 3515//3517 3519//3521 3520//3522 +f 3521//3523 3522//3524 3520//3522 3519//3521 +f 3523//3525 3521//3523 3519//3521 3518//3520 +f 3521//3523 3523//3525 3524//3526 3525//3527 +f 3522//3524 3521//3523 3525//3527 3526//3528 +f 3527//3529 3528//3530 3526//3528 3525//3527 +f 3529//3531 3527//3529 3525//3527 3524//3526 +f 3527//3529 3529//3531 3530//3532 3531//3533 +f 3528//3530 3527//3529 3531//3533 3532//3534 +f 3533//3535 3534//3536 3535//3537 3536//3538 +f 3537//3539 3533//3535 3536//3538 3538//3540 +f 3533//3535 3537//3539 3539//3541 3540//3542 +f 3534//3536 3533//3535 3540//3542 3541//3543 +f 3542//3544 3543//3545 3544//3546 3545//3547 +f 3546//3548 3542//3544 3545//3547 3547//3549 +f 3542//3544 3546//3548 3548//3550 3549//3551 +f 3543//3545 3542//3544 3549//3551 3550//3552 +f 3551//3553 3552//3554 3550//3552 3549//3551 +f 3553//3555 3551//3553 3549//3551 3548//3550 +f 3551//3553 3553//3555 3554//3556 3555//3557 +f 3552//3554 3551//3553 3555//3557 3556//3558 +f 3557//3559 3558//3560 3556//3558 3555//3557 +f 3559//3561 3557//3559 3555//3557 3554//3556 +f 3557//3559 3559//3561 3560//3562 3561//3563 +f 3558//3560 3557//3559 3561//3563 3562//3564 +f 3563//3565 3564//3566 3562//3564 3561//3563 +f 3565//3567 3563//3565 3561//3563 3560//3562 +f 3563//3565 3565//3567 3475//3477 3473//3475 +f 3564//3566 3563//3565 3473//3475 3472//3474 +f 3566//3568 2495//2496 2496//2497 3567//3569 +f 3568//3570 3566//3568 3567//3569 3569//3570 +f 3566//3568 3568//3570 3570//3570 3571//3571 +f 2495//2496 3566//3568 3571//3571 2497//2498 +f 3572//3572 2535//2536 2497//2498 3571//3571 +f 3573//3570 3572//3572 3571//3571 3570//3570 +f 3572//3572 3573//3570 3574//3570 3575//3573 +f 2535//2536 3572//3572 3575//3573 2536//2537 +f 3576//3574 2565//2566 2536//2537 3575//3573 +f 3577//3570 3576//3574 3575//3573 3574//3570 +f 3576//3574 3577//3570 3578//3570 3579//3575 +f 2565//2566 3576//3574 3579//3575 2566//2567 +f 3580//3576 2595//2596 2566//2567 3579//3575 +f 3581//3570 3580//3576 3579//3575 3578//3570 +f 3580//3576 3581//3570 3582//3570 3583//3577 +f 2595//2596 3580//3576 3583//3577 2596//2597 +f 3584//3578 2625//2626 2596//2597 3583//3577 +f 3585//3570 3584//3578 3583//3577 3582//3570 +f 3584//3578 3585//3570 3586//3570 3587//3579 +f 2625//2626 3584//3578 3587//3579 2626//2627 +f 3588//3580 2655//2656 2626//2627 3587//3579 +f 3589//3570 3588//3580 3587//3579 3586//3570 +f 3588//3580 3589//3570 3590//3570 3591//3581 +f 2655//2656 3588//3580 3591//3581 2656//2657 +f 3592//3582 2685//2686 2656//2657 3591//3581 +f 3593//3570 3592//3582 3591//3581 3590//3570 +f 3592//3582 3593//3570 3594//3570 3595//3583 +f 2685//2686 3592//3582 3595//3583 2686//2687 +f 3596//3584 2715//2716 2686//2687 3595//3583 +f 3597//3570 3596//3584 3595//3583 3594//3570 +f 3596//3584 3597//3570 3598//3570 3599//3585 +f 2715//2716 3596//3584 3599//3585 2716//2717 +f 3600//3586 2745//2746 2716//2717 3599//3585 +f 3601//3570 3600//3586 3599//3585 3598//3570 +f 3600//3586 3601//3570 3602//3570 3603//3587 +f 2745//2746 3600//3586 3603//3587 2746//2747 +f 3604//3588 2775//2776 2746//2747 3603//3587 +f 3605//3570 3604//3588 3603//3587 3602//3570 +f 3604//3588 3605//3570 3606//3570 3607//3589 +f 2775//2776 3604//3588 3607//3589 2776//2777 +f 3608//3590 2810//2811 2811//2812 3609//3591 +f 3610//3592 3608//3590 3609//3591 3611//3593 +f 3608//3590 3610//3592 3612//3594 3613//3595 +f 2810//2811 3608//3590 3613//3595 2812//2813 +f 3614//3596 2855//2856 2856//2857 3615//3597 +f 3616//3570 3614//3596 3615//3597 3617//3570 +f 3614//3596 3616//3570 3618//3570 3619//3598 +f 2855//2856 3614//3596 3619//3598 2857//2858 +f 3620//3599 2895//2896 2857//2858 3619//3598 +f 3621//3570 3620//3599 3619//3598 3618//3570 +f 3620//3599 3621//3570 3622//3570 3623//3600 +f 2895//2896 3620//3599 3623//3600 2896//2897 +f 3624//3601 2925//2926 2896//2897 3623//3600 +f 3625//3570 3624//3601 3623//3600 3622//3570 +f 3624//3601 3625//3570 3626//3570 3627//3602 +f 2925//2926 3624//3601 3627//3602 2926//2927 +f 3628//3603 2952//2954 2926//2927 3627//3602 +f 3629//3570 3628//3603 3627//3602 3626//3570 +f 3628//3603 3629//3570 3569//3570 3567//3569 +f 2952//2954 3628//3603 3567//3569 2496//2497 +f 3630//3604 3631//3605 3632//3606 3633//3607 +f 2492//2493 3630//3604 3633//3607 2493//2494 +f 3630//3604 2492//2493 2499//2500 3634//3608 +f 3631//3605 3630//3604 3634//3608 3635//3609 +f 3636//3610 3637//3611 3635//3609 3634//3608 +f 2534//2535 3636//3610 3634//3608 2499//2500 +f 3636//3610 2534//2535 2538//2539 3638//3612 +f 3637//3611 3636//3610 3638//3612 3639//3613 +f 3640//3614 3641//3615 3639//3613 3638//3612 +f 2564//2565 3640//3614 3638//3612 2538//2539 +f 3640//3614 2564//2565 2568//2569 3642//3616 +f 3641//3615 3640//3614 3642//3616 3643//3617 +f 3644//3618 3645//3619 3643//3617 3642//3616 +f 2594//2595 3644//3618 3642//3616 2568//2569 +f 3644//3618 2594//2595 2598//2599 3646//3620 +f 3645//3619 3644//3618 3646//3620 3647//3621 +f 3648//3622 3649//3623 3647//3621 3646//3620 +f 2624//2625 3648//3622 3646//3620 2598//2599 +f 3648//3622 2624//2625 2628//2629 3650//3624 +f 3649//3623 3648//3622 3650//3624 3651//3625 +f 3652//3626 3653//3627 3651//3625 3650//3624 +f 2654//2655 3652//3626 3650//3624 2628//2629 +f 3652//3626 2654//2655 2658//2659 3654//3628 +f 3653//3627 3652//3626 3654//3628 3655//3629 +f 3656//3630 3657//3631 3655//3629 3654//3628 +f 2684//2685 3656//3630 3654//3628 2658//2659 +f 3656//3630 2684//2685 2688//2689 3658//3632 +f 3657//3631 3656//3630 3658//3632 3659//3633 +f 3660//3634 3661//3635 3659//3633 3658//3632 +f 2714//2715 3660//3634 3658//3632 2688//2689 +f 3660//3634 2714//2715 2718//2719 3662//3636 +f 3661//3635 3660//3634 3662//3636 3663//3637 +f 3664//3638 3665//3639 3663//3637 3662//3636 +f 2744//2745 3664//3638 3662//3636 2718//2719 +f 3664//3638 2744//2745 2748//2749 3666//3640 +f 3665//3639 3664//3638 3666//3640 3667//3641 +f 3668//3642 3669//3643 3667//3641 3666//3640 +f 2774//2775 3668//3642 3666//3640 2748//2749 +f 3668//3642 2774//2775 2778//2779 3670//3644 +f 3669//3643 3668//3642 3670//3644 3671//3645 +f 3672//3646 3673//3647 3674//3648 3675//3649 +f 2807//2808 3672//3646 3675//3649 2808//2809 +f 3672//3646 2807//2808 2814//2815 3676//3650 +f 3673//3647 3672//3646 3676//3650 3677//3651 +f 3678//3652 3679//3653 3680//3654 3681//3655 +f 2852//2853 3678//3652 3681//3655 2853//2854 +f 3678//3652 2852//2853 2859//2860 3682//3656 +f 3679//3653 3678//3652 3682//3656 3683//3657 +f 3684//3658 3685//3659 3683//3657 3682//3656 +f 2894//2895 3684//3658 3682//3656 2859//2860 +f 3684//3658 2894//2895 2898//2899 3686//3660 +f 3685//3659 3684//3658 3686//3660 3687//3661 +f 3688//3662 3689//3663 3687//3661 3686//3660 +f 2924//2925 3688//3662 3686//3660 2898//2899 +f 3688//3662 2924//2925 2928//2929 3690//3664 +f 3689//3663 3688//3662 3690//3664 3691//3665 +f 3692//3666 3693//3667 3691//3665 3690//3664 +f 2951//2953 3692//3666 3690//3664 2928//2929 +f 3692//3666 2951//2953 2493//2494 3633//3607 +f 3693//3667 3692//3666 3633//3607 3632//3606 +f 3694//3668 3568//3570 3569//3570 3695//3669 +f 3471//3473 3694//3668 3695//3669 3472//3474 +f 3694//3668 3471//3473 3478//3480 3696//3670 +f 3568//3570 3694//3668 3696//3670 3570//3570 +f 3697//3671 3573//3570 3570//3570 3696//3670 +f 3480//3482 3697//3671 3696//3670 3478//3480 +f 3697//3671 3480//3482 3484//3486 3698//3672 +f 3573//3570 3697//3671 3698//3672 3574//3570 +f 3699//3673 3577//3570 3574//3570 3698//3672 +f 3486//3488 3699//3673 3698//3672 3484//3486 +f 3699//3673 3486//3488 3490//3492 3700//3674 +f 3577//3570 3699//3673 3700//3674 3578//3570 +f 3701//3675 3581//3570 3578//3570 3700//3674 +f 3492//3494 3701//3675 3700//3674 3490//3492 +f 3701//3675 3492//3494 3496//3498 3702//3676 +f 3581//3570 3701//3675 3702//3676 3582//3570 +f 3703//3677 3585//3570 3582//3570 3702//3676 +f 3498//3500 3703//3677 3702//3676 3496//3498 +f 3703//3677 3498//3500 3502//3504 3704//3678 +f 3585//3570 3703//3677 3704//3678 3586//3570 +f 3705//3679 3589//3570 3586//3570 3704//3678 +f 3504//3506 3705//3679 3704//3678 3502//3504 +f 3705//3679 3504//3506 3508//3510 3706//3680 +f 3589//3570 3705//3679 3706//3680 3590//3570 +f 3707//3681 3593//3570 3590//3570 3706//3680 +f 3510//3512 3707//3681 3706//3680 3508//3510 +f 3707//3681 3510//3512 3514//3516 3708//3682 +f 3593//3570 3707//3681 3708//3682 3594//3570 +f 3709//3683 3597//3570 3594//3570 3708//3682 +f 3516//3518 3709//3683 3708//3682 3514//3516 +f 3709//3683 3516//3518 3520//3522 3710//3684 +f 3597//3570 3709//3683 3710//3684 3598//3570 +f 3711//3685 3601//3570 3598//3570 3710//3684 +f 3522//3524 3711//3685 3710//3684 3520//3522 +f 3711//3685 3522//3524 3526//3528 3712//3686 +f 3601//3570 3711//3685 3712//3686 3602//3570 +f 3713//3687 3605//3570 3602//3570 3712//3686 +f 3528//3530 3713//3687 3712//3686 3526//3528 +f 3713//3687 3528//3530 3532//3534 3714//3688 +f 3605//3570 3713//3687 3714//3688 3606//3570 +f 3715//3689 3610//3592 3611//3593 3716//3690 +f 3534//3536 3715//3689 3716//3690 3535//3537 +f 3715//3689 3534//3536 3541//3543 3717//3691 +f 3610//3592 3715//3689 3717//3691 3612//3594 +f 3718//3692 3616//3570 3617//3570 3719//3693 +f 3543//3545 3718//3692 3719//3693 3544//3546 +f 3718//3692 3543//3545 3550//3552 3720//3694 +f 3616//3570 3718//3692 3720//3694 3618//3570 +f 3721//3695 3621//3570 3618//3570 3720//3694 +f 3552//3554 3721//3695 3720//3694 3550//3552 +f 3721//3695 3552//3554 3556//3558 3722//3696 +f 3621//3570 3721//3695 3722//3696 3622//3570 +f 3723//3697 3625//3570 3622//3570 3722//3696 +f 3558//3560 3723//3697 3722//3696 3556//3558 +f 3723//3697 3558//3560 3562//3564 3724//3698 +f 3625//3570 3723//3697 3724//3698 3626//3570 +f 3725//3699 3629//3570 3626//3570 3724//3698 +f 3564//3566 3725//3699 3724//3698 3562//3564 +f 3725//3699 3564//3566 3472//3474 3695//3669 +f 3629//3570 3725//3699 3695//3669 3569//3570 +f 3726//3700 3474//3476 3475//3477 3727//3701 +f 3405//3407 3726//3700 3727//3701 3406//3408 +f 3726//3700 3405//3407 3409//3411 3728//3702 +f 3474//3476 3726//3700 3728//3702 3476//3478 +f 3729//3703 3481//3483 3476//3478 3728//3702 +f 3411//3413 3729//3703 3728//3702 3409//3411 +f 3729//3703 3411//3413 3413//3415 3730//3704 +f 3481//3483 3729//3703 3730//3704 3482//3484 +f 3731//3705 3487//3489 3482//3484 3730//3704 +f 3415//3417 3731//3705 3730//3704 3413//3415 +f 3731//3705 3415//3417 3417//3419 3732//3706 +f 3487//3489 3731//3705 3732//3706 3488//3490 +f 3733//3707 3493//3495 3488//3490 3732//3706 +f 3419//3421 3733//3707 3732//3706 3417//3419 +f 3733//3707 3419//3421 3421//3423 3734//3708 +f 3493//3495 3733//3707 3734//3708 3494//3496 +f 3735//3709 3499//3501 3494//3496 3734//3708 +f 3423//3425 3735//3709 3734//3708 3421//3423 +f 3735//3709 3423//3425 3425//3427 3736//3710 +f 3499//3501 3735//3709 3736//3710 3500//3502 +f 3737//3711 3505//3507 3500//3502 3736//3710 +f 3427//3429 3737//3711 3736//3710 3425//3427 +f 3737//3711 3427//3429 3429//3431 3738//3712 +f 3505//3507 3737//3711 3738//3712 3506//3508 +f 3739//3713 3511//3513 3506//3508 3738//3712 +f 3431//3433 3739//3713 3738//3712 3429//3431 +f 3739//3713 3431//3433 3433//3435 3740//3714 +f 3511//3513 3739//3713 3740//3714 3512//3514 +f 3741//3715 3517//3519 3512//3514 3740//3714 +f 3435//3437 3741//3715 3740//3714 3433//3435 +f 3741//3715 3435//3437 3437//3439 3742//3716 +f 3517//3519 3741//3715 3742//3716 3518//3520 +f 3743//3717 3523//3525 3518//3520 3742//3716 +f 3439//3441 3743//3717 3742//3716 3437//3439 +f 3743//3717 3439//3441 3441//3443 3744//3718 +f 3523//3525 3743//3717 3744//3718 3524//3526 +f 3745//3719 3529//3531 3524//3526 3744//3718 +f 3443//3445 3745//3719 3744//3718 3441//3443 +f 3745//3719 3443//3445 3445//3447 3746//3720 +f 3529//3531 3745//3719 3746//3720 3530//3532 +f 3747//3721 3537//3539 3538//3540 3748//3722 +f 3447//3449 3747//3721 3748//3722 3448//3450 +f 3747//3721 3447//3449 3453//3455 3749//3723 +f 3537//3539 3747//3721 3749//3723 3539//3541 +f 3750//3724 3546//3548 3547//3549 3751//3725 +f 3455//3457 3750//3724 3751//3725 3456//3458 +f 3750//3724 3455//3457 3459//3461 3752//3726 +f 3546//3548 3750//3724 3752//3726 3548//3550 +f 3753//3727 3553//3555 3548//3550 3752//3726 +f 3461//3463 3753//3727 3752//3726 3459//3461 +f 3753//3727 3461//3463 3463//3465 3754//3728 +f 3553//3555 3753//3727 3754//3728 3554//3556 +f 3755//3729 3559//3561 3554//3556 3754//3728 +f 3465//3467 3755//3729 3754//3728 3463//3465 +f 3755//3729 3465//3467 3467//3469 3756//3730 +f 3559//3561 3755//3729 3756//3730 3560//3562 +f 3757//3731 3565//3567 3560//3562 3756//3730 +f 3469//3471 3757//3731 3756//3730 3467//3469 +f 3757//3731 3469//3471 3406//3408 3727//3701 +f 3565//3567 3757//3731 3727//3701 3475//3477 +f 3758//3732 3759//3733 3760//3734 3761//3735 +f 3277//3279 3758//3732 3761//3735 3278//3280 +f 3758//3732 3277//3279 3281//3283 3762//3736 +f 3759//3733 3758//3732 3762//3736 3763//3737 +f 3764//3738 3765//3739 3763//3737 3762//3736 +f 3283//3285 3764//3738 3762//3736 3281//3283 +f 3764//3738 3283//3285 3285//3287 3766//3740 +f 3765//3739 3764//3738 3766//3740 3767//3741 +f 3768//3742 3769//3743 3767//3741 3766//3740 +f 3287//3289 3768//3742 3766//3740 3285//3287 +f 3768//3742 3287//3289 3289//3291 3770//3744 +f 3769//3743 3768//3742 3770//3744 3771//3745 +f 3772//3746 3773//3747 3771//3745 3770//3744 +f 3291//3293 3772//3746 3770//3744 3289//3291 +f 3772//3746 3291//3293 3293//3295 3774//3748 +f 3773//3747 3772//3746 3774//3748 3775//3749 +f 3776//3750 3777//3751 3775//3749 3774//3748 +f 3295//3297 3776//3750 3774//3748 3293//3295 +f 3776//3750 3295//3297 3297//3299 3778//3752 +f 3777//3751 3776//3750 3778//3752 3779//3753 +f 3780//3754 3781//3755 3779//3753 3778//3752 +f 3299//3301 3780//3754 3778//3752 3297//3299 +f 3780//3754 3299//3301 3301//3303 3782//3756 +f 3781//3755 3780//3754 3782//3756 3783//3757 +f 3784//3758 3785//3759 3783//3757 3782//3756 +f 3303//3305 3784//3758 3782//3756 3301//3303 +f 3784//3758 3303//3305 3305//3307 3786//3760 +f 3785//3759 3784//3758 3786//3760 3787//3761 +f 3788//3762 3789//3763 3787//3761 3786//3760 +f 3307//3309 3788//3762 3786//3760 3305//3307 +f 3788//3762 3307//3309 3309//3311 3790//3764 +f 3789//3763 3788//3762 3790//3764 3791//3765 +f 3792//3766 3793//3767 3791//3765 3790//3764 +f 3311//3313 3792//3766 3790//3764 3309//3311 +f 3792//3766 3311//3313 3313//3315 3794//3768 +f 3793//3767 3792//3766 3794//3768 3795//3769 +f 3796//3770 3797//3771 3795//3769 3794//3768 +f 3315//3317 3796//3770 3794//3768 3313//3315 +f 3796//3770 3315//3317 3317//3319 3798//3772 +f 3797//3771 3796//3770 3798//3772 3799//3773 +f 3800//3774 3801//3775 3802//3776 3803//3777 +f 3319//3321 3800//3774 3803//3777 3320//3322 +f 3800//3774 3319//3321 3323//3325 3804//3778 +f 3801//3775 3800//3774 3804//3778 3805//3779 +f 3806//3780 3807//3781 3808//3782 3809//3783 +f 3325//3327 3806//3780 3809//3783 3326//3328 +f 3806//3780 3325//3327 3329//3331 3810//3784 +f 3807//3781 3806//3780 3810//3784 3811//3785 +f 3812//3786 3813//3787 3811//3785 3810//3784 +f 3331//3333 3812//3786 3810//3784 3329//3331 +f 3812//3786 3331//3333 3333//3335 3814//3788 +f 3813//3787 3812//3786 3814//3788 3815//3789 +f 3816//3790 3817//3791 3815//3789 3814//3788 +f 3335//3337 3816//3790 3814//3788 3333//3335 +f 3816//3790 3335//3337 3337//3339 3818//3792 +f 3817//3791 3816//3790 3818//3792 3819//3793 +f 3820//3794 3821//3795 3819//3793 3818//3792 +f 3339//3341 3820//3794 3818//3792 3337//3339 +f 3820//3794 3339//3341 3278//3280 3761//3735 +f 3821//3795 3820//3794 3761//3735 3760//3734 +f 3822//3796 2978//2980 2977//2979 3823//3797 +f 2510//2511 3822//3796 3823//3797 2511//2512 +f 3822//3796 2510//2511 2517//2518 3824//3798 +f 2978//2980 3822//3796 3824//3798 2979//2981 +f 3825//3799 2990//2992 2979//2981 3824//3798 +f 2546//2547 3825//3799 3824//3798 2517//2518 +f 3825//3799 2546//2547 2550//2551 3826//3800 +f 2990//2992 3825//3799 3826//3800 2991//2993 +f 3827//3801 3002//3004 2991//2993 3826//3800 +f 2576//2577 3827//3801 3826//3800 2550//2551 +f 3827//3801 2576//2577 2580//2581 3828//3802 +f 3002//3004 3827//3801 3828//3802 3003//3005 +f 3829//3803 3014//3016 3003//3005 3828//3802 +f 2606//2607 3829//3803 3828//3802 2580//2581 +f 3829//3803 2606//2607 2610//2611 3830//3804 +f 3014//3016 3829//3803 3830//3804 3015//3017 +f 3831//3805 3026//3028 3015//3017 3830//3804 +f 2636//2637 3831//3805 3830//3804 2610//2611 +f 3831//3805 2636//2637 2640//2641 3832//3806 +f 3026//3028 3831//3805 3832//3806 3027//3029 +f 3833//3807 3038//3040 3027//3029 3832//3806 +f 2666//2667 3833//3807 3832//3806 2640//2641 +f 3833//3807 2666//2667 2670//2671 3834//3808 +f 3038//3040 3833//3807 3834//3808 3039//3041 +f 3835//3809 3050//3052 3039//3041 3834//3808 +f 2696//2697 3835//3809 3834//3808 2670//2671 +f 3835//3809 2696//2697 2700//2701 3836//3810 +f 3050//3052 3835//3809 3836//3810 3051//3053 +f 3837//3811 3062//3064 3051//3053 3836//3810 +f 2726//2727 3837//3811 3836//3810 2700//2701 +f 3837//3811 2726//2727 2730//2731 3838//3812 +f 3062//3064 3837//3811 3838//3812 3063//3065 +f 3839//3813 3074//3076 3063//3065 3838//3812 +f 2756//2757 3839//3813 3838//3812 2730//2731 +f 3839//3813 2756//2757 2760//2761 3840//3814 +f 3074//3076 3839//3813 3840//3814 3075//3077 +f 3841//3815 3086//3088 3075//3077 3840//3814 +f 2786//2787 3841//3815 3840//3814 2760//2761 +f 3841//3815 2786//2787 2790//2791 3842//3816 +f 3086//3088 3841//3815 3842//3816 3087//3089 +f 3843//3817 3844//3818 3845//3819 3846//3820 +f 2825//2826 3843//3817 3846//3820 2826//2827 +f 3843//3817 2825//2826 2832//2833 3847//3821 +f 3844//3818 3843//3817 3847//3821 3103//3105 +f 3848//3822 3116//3118 3105//3107 3849//3823 +f 2870//2871 3848//3822 3849//3823 2871//2872 +f 3848//3822 2870//2871 2877//2878 3850//3824 +f 3116//3118 3848//3822 3850//3824 3117//3119 +f 3851//3825 3128//3130 3117//3119 3850//3824 +f 2906//2907 3851//3825 3850//3824 2877//2878 +f 3851//3825 2906//2907 2910//2911 3852//3826 +f 3128//3130 3851//3825 3852//3826 3129//3131 +f 3853//3827 3140//3142 3129//3131 3852//3826 +f 2936//2937 3853//3827 3852//3826 2910//2911 +f 3853//3827 2936//2937 2940//2941 3854//3828 +f 3140//3142 3853//3827 3854//3828 3141//3143 +f 3855//3829 3147//3149 3141//3143 3854//3828 +f 2957//2959 3855//3829 3854//3828 2940//2941 +f 3855//3829 2957//2959 2511//2512 3823//3797 +f 3147//3149 3855//3829 3823//3797 2977//2979 +f 3856//3830 3184//3186 3185//3187 3857//3831 +f 3759//3733 3856//3830 3857//3831 3760//3734 +f 3856//3830 3759//3733 3763//3737 3858//3832 +f 3184//3186 3856//3830 3858//3832 3186//3188 +f 3859//3833 3191//3193 3186//3188 3858//3832 +f 3765//3739 3859//3833 3858//3832 3763//3737 +f 3859//3833 3765//3739 3767//3741 3860//3834 +f 3191//3193 3859//3833 3860//3834 3192//3194 +f 3861//3835 3197//3199 3192//3194 3860//3834 +f 3769//3743 3861//3835 3860//3834 3767//3741 +f 3861//3835 3769//3743 3771//3745 3862//3836 +f 3197//3199 3861//3835 3862//3836 3198//3200 +f 3863//3837 3203//3205 3198//3200 3862//3836 +f 3773//3747 3863//3837 3862//3836 3771//3745 +f 3863//3837 3773//3747 3775//3749 3864//3838 +f 3203//3205 3863//3837 3864//3838 3204//3206 +f 3865//3839 3209//3211 3204//3206 3864//3838 +f 3777//3751 3865//3839 3864//3838 3775//3749 +f 3865//3839 3777//3751 3779//3753 3866//3840 +f 3209//3211 3865//3839 3866//3840 3210//3212 +f 3867//3841 3215//3217 3210//3212 3866//3840 +f 3781//3755 3867//3841 3866//3840 3779//3753 +f 3867//3841 3781//3755 3783//3757 3868//3842 +f 3215//3217 3867//3841 3868//3842 3216//3218 +f 3869//3843 3221//3223 3216//3218 3868//3842 +f 3785//3759 3869//3843 3868//3842 3783//3757 +f 3869//3843 3785//3759 3787//3761 3870//3844 +f 3221//3223 3869//3843 3870//3844 3222//3224 +f 3871//3845 3227//3229 3222//3224 3870//3844 +f 3789//3763 3871//3845 3870//3844 3787//3761 +f 3871//3845 3789//3763 3791//3765 3872//3846 +f 3227//3229 3871//3845 3872//3846 3228//3230 +f 3873//3847 3233//3235 3228//3230 3872//3846 +f 3793//3767 3873//3847 3872//3846 3791//3765 +f 3873//3847 3793//3767 3795//3769 3874//3848 +f 3233//3235 3873//3847 3874//3848 3234//3236 +f 3875//3849 3239//3241 3234//3236 3874//3848 +f 3797//3771 3875//3849 3874//3848 3795//3769 +f 3875//3849 3797//3771 3799//3773 3876//3850 +f 3239//3241 3875//3849 3876//3850 3240//3242 +f 3877//3851 3247//3249 3248//3250 3878//3852 +f 3801//3775 3877//3851 3878//3852 3802//3776 +f 3877//3851 3801//3775 3805//3779 3879//3853 +f 3247//3249 3877//3851 3879//3853 3249//3251 +f 3880//3854 3256//3258 3257//3259 3881//3855 +f 3807//3781 3880//3854 3881//3855 3808//3782 +f 3880//3854 3807//3781 3811//3785 3882//3856 +f 3256//3258 3880//3854 3882//3856 3258//3260 +f 3883//3857 3263//3265 3258//3260 3882//3856 +f 3813//3787 3883//3857 3882//3856 3811//3785 +f 3883//3857 3813//3787 3815//3789 3884//3858 +f 3263//3265 3883//3857 3884//3858 3264//3266 +f 3885//3859 3269//3271 3264//3266 3884//3858 +f 3817//3791 3885//3859 3884//3858 3815//3789 +f 3885//3859 3817//3791 3819//3793 3886//3860 +f 3269//3271 3885//3859 3886//3860 3270//3272 +f 3887//3861 3275//3277 3270//3272 3886//3860 +f 3821//3795 3887//3861 3886//3860 3819//3793 +f 3887//3861 3821//3795 3760//3734 3857//3831 +f 3275//3277 3887//3861 3857//3831 3185//3187 +f 2974//2976 2505//2506 2504//2505 2976//2978 +f 2505//2506 2974//2976 2973//2975 2506//2507 +f 2989//2991 2541//2542 2506//2507 2973//2975 +f 2541//2542 2989//2991 2988//2990 2542//2543 +f 3001//3003 2571//2572 2542//2543 2988//2990 +f 2571//2572 3001//3003 3000//3002 2572//2573 +f 3013//3015 2601//2602 2572//2573 3000//3002 +f 2601//2602 3013//3015 3012//3014 2602//2603 +f 3025//3027 2631//2632 2602//2603 3012//3014 +f 2631//2632 3025//3027 3024//3026 2632//2633 +f 3037//3039 2661//2662 2632//2633 3024//3026 +f 2661//2662 3037//3039 3036//3038 2662//2663 +f 3049//3051 2691//2692 2662//2663 3036//3038 +f 2691//2692 3049//3051 3048//3050 2692//2693 +f 3061//3063 2721//2722 2692//2693 3048//3050 +f 2721//2722 3061//3063 3060//3062 2722//2723 +f 3073//3075 2751//2752 2722//2723 3060//3062 +f 2751//2752 3073//3075 3072//3074 2752//2753 +f 3085//3087 2781//2782 2752//2753 3072//3074 +f 2781//2782 3085//3087 3084//3086 2782//2783 +f 3888//3862 2820//2821 2819//2820 3889//3863 +f 2820//2821 3888//3862 3102//3104 2821//2822 +f 3115//3117 2865//2866 2864//2865 3099//3101 +f 2865//2866 3115//3117 3114//3116 2866//2867 +f 3127//3129 2901//2902 2866//2867 3114//3116 +f 2901//2902 3127//3129 3126//3128 2902//2903 +f 3139//3141 2931//2932 2902//2903 3126//3128 +f 2931//2932 3139//3141 3138//3140 2932//2933 +f 3146//3148 2955//2957 2932//2933 3138//3140 +f 2955//2957 3146//3148 2976//2978 2504//2505 +f 3890//3864 3891//3865 2817//2818 3892//3866 +f 3893//3867 3890//3864 3892//3866 3894//3868 +f 3890//3864 3893//3867 3895//3869 3896//3870 +f 3891//3865 3890//3864 3896//3870 3897//3871 +f 3898//3872 3893//3867 3894//3868 3899//3873 +f 3900//3874 3898//3872 3899//3873 3451//3453 +f 3898//3872 3900//3874 3901//3875 3902//3876 +f 3893//3867 3898//3872 3902//3876 3895//3869 +f 3903//3877 3904//3878 3845//3819 3905//3879 +f 3906//3880 3903//3877 3905//3879 3889//3863 +f 3903//3877 3906//3880 3907//3881 3908//3882 +f 3904//3878 3903//3877 3908//3882 3909//3883 +f 3910//3884 3911//3885 2826//2827 3846//3820 +f 3904//3878 3910//3884 3846//3820 3845//3819 +f 3910//3884 3904//3878 3909//3883 3912//3886 +f 3911//3885 3910//3884 3912//3886 3913//3887 +f 3914//3888 3906//3880 3889//3863 2819//2820 +f 2819//2820 2818//2819 3915//3889 3914//3888 +f 3914//3888 3915//3889 3916//3890 3917//3891 +f 3906//3880 3914//3888 3917//3891 3907//3881 +f 3891//3865 3915//3889 2818//2819 2817//2818 +f 3915//3889 3891//3865 3897//3871 3916//3890 +f 3918//3892 3919//3893 3901//3875 3900//3874 +f 3449//3451 3918//3892 3900//3874 3451//3453 +f 3918//3892 3449//3451 3448//3450 3920//3894 +f 3919//3893 3918//3892 3920//3894 3921//3895 +f 3922//3896 2827//2828 2826//2827 3911//3885 +f 3923//3897 3922//3896 3911//3885 3913//3887 +f 3922//3896 3923//3897 3924//3898 3925//3899 +f 2827//2828 3922//3896 3925//3899 2829//2830 +f 3926//3900 3920//3894 3448//3450 3748//3722 +f 3927//3901 3926//3900 3748//3722 3538//3540 +f 3926//3900 3927//3901 3928//3902 3929//3903 +f 3920//3894 3926//3900 3929//3903 3921//3895 +f 3930//3904 3931//3905 3535//3537 3716//3690 +f 3932//3906 3930//3904 3716//3690 3611//3593 +f 3930//3904 3932//3906 3933//3907 3934//3908 +f 3931//3905 3930//3904 3934//3908 3935//3909 +f 3936//3910 3932//3906 3611//3593 3609//3591 +f 3937//3911 3936//3910 3609//3591 2811//2812 +f 3936//3910 3937//3911 3938//3912 3939//3913 +f 3932//3906 3936//3910 3939//3913 3933//3907 +f 3940//3914 3927//3901 3538//3540 3536//3538 +f 3931//3905 3940//3914 3536//3538 3535//3537 +f 3940//3914 3931//3905 3935//3909 3941//3915 +f 3927//3901 3940//3914 3941//3915 3928//3902 +f 3942//3916 2809//2810 2808//2809 3675//3649 +f 3943//3917 3942//3916 3675//3649 3674//3648 +f 3942//3916 3943//3917 3938//3912 3937//3911 +f 2809//2810 3942//3916 3937//3911 2811//2812 +f 3944//3918 3943//3917 3674//3648 3945//3919 +f 3946//3920 3944//3918 3945//3919 3947//3921 +f 3944//3918 3946//3920 3948//3922 3949//3923 +f 3943//3917 3944//3918 3949//3923 3938//3912 +f 3950//3924 3951//3925 3320//3322 3803//3777 +f 3952//3926 3950//3924 3803//3777 3802//3776 +f 3950//3924 3952//3926 3953//3927 3954//3928 +f 3951//3925 3950//3924 3954//3928 3955//3929 +f 3956//3930 3957//3931 2835//2836 3321//3323 +f 3951//3925 3956//3930 3321//3323 3320//3322 +f 3956//3930 3951//3925 3955//3929 3958//3932 +f 3957//3931 3956//3930 3958//3932 3959//3933 +f 3960//3934 3961//3935 2838//2839 2836//2837 +f 3957//3931 3960//3934 2836//2837 2835//2836 +f 3960//3934 3957//3931 3959//3933 3962//3936 +f 3961//3935 3960//3934 3962//3936 3963//3937 +f 3964//3938 3952//3926 3802//3776 3878//3852 +f 3965//3939 3964//3938 3878//3852 3248//3250 +f 3964//3938 3965//3939 3966//3940 3967//3941 +f 3952//3926 3964//3938 3967//3941 3953//3927 +f 3968//3942 3965//3939 3248//3250 3246//3248 +f 3969//3943 3968//3942 3246//3248 3245//3247 +f 3968//3942 3969//3943 3970//3944 3971//3945 +f 3965//3939 3968//3942 3971//3945 3966//3940 +f 3972//3946 3383//3385 2838//2839 3961//3935 +f 3973//3947 3972//3946 3961//3935 3963//3937 +f 3972//3946 3973//3947 3974//3948 3975//3949 +f 3383//3385 3972//3946 3975//3949 3385//3387 +f 3976//3950 3977//3951 3935//3909 3934//3908 +f 3978//3952 3976//3950 3934//3908 3933//3907 +f 3976//3950 3978//3952 3979//3953 3980//3953 +f 3977//3951 3976//3950 3980//3953 3981//3953 +f 3982//3954 3978//3952 3933//3907 3939//3913 +f 3949//3923 3982//3954 3939//3913 3938//3912 +f 3982//3954 3949//3923 3948//3922 3983//3955 +f 3978//3952 3982//3954 3983//3955 3979//3953 +f 3984//3956 3985//3957 3966//3940 3971//3945 +f 3986//3958 3984//3956 3971//3945 3970//3944 +f 3984//3956 3986//3958 3987//3959 3988//3953 +f 3985//3957 3984//3956 3988//3953 3989//3953 +f 3990//3960 2513//2514 2514//2515 3991//3961 +f 3181//3183 3990//3960 3991//3961 3182//3184 +f 3990//3960 3181//3183 3188//3190 3992//3962 +f 2513//2514 3990//3960 3992//3962 2515//2516 +f 3993//3963 2547//2548 2515//2516 3992//3962 +f 3190//3192 3993//3963 3992//3962 3188//3190 +f 3993//3963 3190//3192 3194//3196 3994//3964 +f 2547//2548 3993//3963 3994//3964 2548//2549 +f 3995//3965 2577//2578 2548//2549 3994//3964 +f 3196//3198 3995//3965 3994//3964 3194//3196 +f 3995//3965 3196//3198 3200//3202 3996//3966 +f 2577//2578 3995//3965 3996//3966 2578//2579 +f 3997//3967 2607//2608 2578//2579 3996//3966 +f 3202//3204 3997//3967 3996//3966 3200//3202 +f 3997//3967 3202//3204 3206//3208 3998//3968 +f 2607//2608 3997//3967 3998//3968 2608//2609 +f 3999//3969 2637//2638 2608//2609 3998//3968 +f 3208//3210 3999//3969 3998//3968 3206//3208 +f 3999//3969 3208//3210 3212//3214 4000//3970 +f 2637//2638 3999//3969 4000//3970 2638//2639 +f 4001//3971 2667//2668 2638//2639 4000//3970 +f 3214//3216 4001//3971 4000//3970 3212//3214 +f 4001//3971 3214//3216 3218//3220 4002//3972 +f 2667//2668 4001//3971 4002//3972 2668//2669 +f 4003//3973 2697//2698 2668//2669 4002//3972 +f 3220//3222 4003//3973 4002//3972 3218//3220 +f 4003//3973 3220//3222 3224//3226 4004//3974 +f 2697//2698 4003//3973 4004//3974 2698//2699 +f 4005//3975 2727//2728 2698//2699 4004//3974 +f 3226//3228 4005//3975 4004//3974 3224//3226 +f 4005//3975 3226//3228 3230//3232 4006//3976 +f 2727//2728 4005//3975 4006//3976 2728//2729 +f 4007//3977 2757//2758 2728//2729 4006//3976 +f 3232//3234 4007//3977 4006//3976 3230//3232 +f 4007//3977 3232//3234 3236//3238 4008//3978 +f 2757//2758 4007//3977 4008//3978 2758//2759 +f 4009//3979 2787//2788 2758//2759 4008//3978 +f 3238//3240 4009//3979 4008//3978 3236//3238 +f 4009//3979 3238//3240 3242//3244 4010//3980 +f 2787//2788 4009//3979 4010//3980 2788//2789 +f 4011//3981 2828//2829 2829//2830 4012//3982 +f 3244//3246 4011//3981 4012//3982 3245//3247 +f 4011//3981 3244//3246 3251//3253 4013//3983 +f 2828//2829 4011//3981 4013//3983 2830//2831 +f 4014//3984 2873//2874 2874//2875 4015//3985 +f 3253//3255 4014//3984 4015//3985 3254//3256 +f 4014//3984 3253//3255 3260//3262 4016//3986 +f 2873//2874 4014//3984 4016//3986 2875//2876 +f 4017//3987 2907//2908 2875//2876 4016//3986 +f 3262//3264 4017//3987 4016//3986 3260//3262 +f 4017//3987 3262//3264 3266//3268 4018//3988 +f 2907//2908 4017//3987 4018//3988 2908//2909 +f 4019//3989 2937//2938 2908//2909 4018//3988 +f 3268//3270 4019//3989 4018//3988 3266//3268 +f 4019//3989 3268//3270 3272//3274 4020//3990 +f 2937//2938 4019//3989 4020//3990 2938//2939 +f 4021//3991 2958//2960 2938//2939 4020//3990 +f 3274//3276 4021//3991 4020//3990 3272//3274 +f 4021//3991 3274//3276 3182//3184 3991//3961 +f 2958//2960 4021//3991 3991//3961 2514//2515 +f 4022//3992 3925//3899 3924//3898 4023//3993 +f 3969//3943 4022//3992 4023//3993 3970//3944 +f 4022//3992 3969//3943 3245//3247 4012//3982 +f 3925//3899 4022//3992 4012//3982 2829//2830 +f 4024//3994 3986//3958 3970//3944 4023//3993 +f 4025//3995 4024//3994 4023//3993 3924//3898 +f 4024//3994 4025//3995 4026//3959 4027//3959 +f 3986//3958 4024//3994 4027//3959 3987//3959 +f 4028//3996 4025//3995 3924//3898 3923//3897 +f 4029//3997 4028//3996 3923//3897 3913//3887 +f 4028//3996 4029//3997 4030//3953 4031//3959 +f 4025//3995 4028//3996 4031//3959 4026//3959 +f 4032//3998 4033//3953 4034//3959 4035//3999 +f 3941//3915 4032//3998 4035//3999 3928//3902 +f 4032//3998 3941//3915 3935//3909 4036//4000 +f 4033//3953 4032//3998 4036//4000 4037//3953 +f 4038//4001 4039//3959 4040//3953 4041//4002 +f 3929//3903 4038//4001 4041//4002 3921//3895 +f 4038//4001 3929//3903 3928//3902 4035//3999 +f 4039//3959 4038//4001 4035//3999 4034//3959 +f 4042//4003 4043//3953 4044//3959 4045//4004 +f 3919//3893 4042//4003 4045//4004 3901//3875 +f 4042//4003 3919//3893 3921//3895 4041//4002 +f 4043//3953 4042//4003 4041//4002 4040//3953 +f 4033//3953 4046//3959 4047//3959 4034//3959 +f 4046//3959 4033//3953 4037//3953 4048//3959 +f 4039//3959 4049//3953 4050//3953 4040//3953 +f 4049//3953 4039//3959 4034//3959 4047//3959 +f 4043//3953 4051//3953 4052//3959 4044//3959 +f 4051//3953 4043//3953 4040//3953 4050//3953 +f 4053//3953 3988//3953 3987//3959 4054//3953 +f 4047//3959 4046//3959 4053//3953 4054//3953 +f 4053//3953 4046//3959 4048//3959 4055//3953 +f 3988//3953 4053//3953 4055//3953 3989//3953 +f 4056//3959 4027//3959 4026//3959 4057//3959 +f 4050//3953 4049//3953 4056//3959 4057//3959 +f 4056//3959 4049//3953 4047//3959 4054//3953 +f 4027//3959 4056//3959 4054//3953 3987//3959 +f 4058//3959 4031//3959 4030//3953 4059//3953 +f 4052//3959 4051//3953 4058//3959 4059//3953 +f 4058//3959 4051//3953 4050//3953 4057//3959 +f 4031//3959 4058//3959 4057//3959 4026//3959 +f 4060//4005 3896//3870 3895//3869 3902//3876 +f 4045//4004 4060//4005 3902//3876 3901//3875 +f 4060//4005 4045//4004 4044//3959 4061//4006 +f 3896//3870 4060//4005 4061//4006 3897//3871 +f 4062//4007 4061//4006 4044//3959 4052//3959 +f 4052//3959 4059//3953 4063//4008 4062//4007 +f 4062//4007 4063//4008 3917//3891 3916//3890 +f 4061//4006 4062//4007 3916//3890 3897//3871 +f 4064//4009 4063//4008 4059//3953 4030//3953 +f 4063//4008 4064//4009 3907//3881 3917//3891 +f 4065//4010 4064//4009 4030//3953 4029//3997 +f 3912//3886 4065//4010 4029//3997 3913//3887 +f 4065//4010 3912//3886 3909//3883 3908//3882 +f 4064//4009 4065//4010 3908//3882 3907//3881 +f 4066//4011 4067//4012 4068//4013 4069//4014 +f 4070//4015 4066//4011 4069//4014 4071//4016 +f 4066//4011 4070//4015 4072//4017 4073//4018 +f 4067//4012 4066//4011 4073//4018 4074//4019 +f 4075//4020 4076//4021 4074//4019 4073//4018 +f 4077//4022 4075//4020 4073//4018 4072//4017 +f 4075//4020 4077//4022 4078//4023 4079//4024 +f 4076//4021 4075//4020 4079//4024 4080//4025 +f 4081//4026 4082//4027 4080//4025 4079//4024 +f 4083//4028 4081//4026 4079//4024 4078//4023 +f 4081//4026 4083//4028 4084//4029 4085//4030 +f 4082//4027 4081//4026 4085//4030 4086//4031 +f 4087//4032 4088//4033 4086//4031 4085//4030 +f 4089//4034 4087//4032 4085//4030 4084//4029 +f 4087//4032 4089//4034 4090//4035 4091//4036 +f 4088//4033 4087//4032 4091//4036 4092//4037 +f 4093//4038 4094//4039 4092//4037 4091//4036 +f 4095//4040 4093//4038 4091//4036 4090//4035 +f 4093//4038 4095//4040 4096//4041 4097//4042 +f 4094//4039 4093//4038 4097//4042 4098//4043 +f 4099//4044 4100//4045 4098//4043 4097//4042 +f 4101//4046 4099//4044 4097//4042 4096//4041 +f 4099//4044 4101//4046 4102//4047 4103//4048 +f 4100//4045 4099//4044 4103//4048 4104//4049 +f 4105//4050 4106//4051 4104//4049 4103//4048 +f 4107//4052 4105//4050 4103//4048 4102//4047 +f 4105//4050 4107//4052 4108//4053 4109//4054 +f 4106//4051 4105//4050 4109//4054 4110//4055 +f 4111//4056 4112//4057 4110//4055 4109//4054 +f 4113//4058 4111//4056 4109//4054 4108//4053 +f 4111//4056 4113//4058 4114//4059 4115//4060 +f 4112//4057 4111//4056 4115//4060 4116//4061 +f 4117//4062 4118//4063 4116//4061 4115//4060 +f 4119//4064 4117//4062 4115//4060 4114//4059 +f 4117//4062 4119//4064 4120//4065 4121//4066 +f 4118//4063 4117//4062 4121//4066 4122//4067 +f 4123//4068 4124//4069 4122//4067 4121//4066 +f 4125//4070 4123//4068 4121//4066 4120//4065 +f 4123//4068 4125//4070 4126//4071 4127//4072 +f 4124//4069 4123//4068 4127//4072 4128//4073 +f 4129//4074 4130//4075 4131//4076 4132//4077 +f 4133//4078 4129//4074 4132//4077 3947//3921 +f 4129//4074 4133//4078 4134//4079 4135//4080 +f 4130//4075 4129//4074 4135//4080 4136//4081 +f 4137//4082 4138//4083 4139//4084 4140//4085 +f 4141//4086 4137//4082 4140//4085 4142//4087 +f 4137//4082 4141//4086 4143//4088 4144//4089 +f 4138//4083 4137//4082 4144//4089 4145//4090 +f 4146//4091 4147//4092 4145//4090 4144//4089 +f 4148//4093 4146//4091 4144//4089 4143//4088 +f 4146//4091 4148//4093 4149//4094 4150//4095 +f 4147//4092 4146//4091 4150//4095 4151//4096 +f 4152//4097 4153//4098 4151//4096 4150//4095 +f 4154//4099 4152//4097 4150//4095 4149//4094 +f 4152//4097 4154//4099 4155//4100 4156//4101 +f 4153//4098 4152//4097 4156//4101 4157//4102 +f 4158//4103 4159//4104 4157//4102 4156//4101 +f 4160//4105 4158//4103 4156//4101 4155//4100 +f 4158//4103 4160//4105 4071//4016 4069//4014 +f 4159//4104 4158//4103 4069//4014 4068//4013 +f 4161//4106 4162//4107 4131//4076 4163//4108 +f 4164//4109 4161//4106 4163//4108 2802//2803 +f 4161//4106 4164//4109 4165//4110 4166//4111 +f 4162//4107 4161//4106 4166//4111 4167//4112 +f 4168//3953 4169//3953 4170//3953 4171//3953 +f 4172//3953 4168//3953 4171//3953 4173//3953 +f 4168//3953 4172//3953 4174//3953 4175//3953 +f 4169//3953 4168//3953 4175//3953 4176//3953 +f 4177//4113 4178//4113 4167//4112 4166//4111 +f 4179//4114 4177//4113 4166//4111 4165//4110 +f 4177//4113 4179//4114 4173//3953 4171//3953 +f 4178//4113 4177//4113 4171//3953 4170//3953 +f 4180//3953 4181//3953 4176//3953 4175//3953 +f 4182//3953 4180//3953 4175//3953 4174//3953 +f 4180//3953 4182//3953 4183//3953 4184//3953 +f 4181//3953 4180//3953 4184//3953 4185//3959 +f 4186//4115 4187//4116 4188//4117 4189//4118 +f 4190//4119 4186//4115 4189//4118 4191//4120 +f 4186//4115 4190//4119 4192//3953 4193//3953 +f 4187//4116 4186//4115 4193//3953 4194//3953 +f 4195//4121 4190//4119 4191//4120 4196//4122 +f 4197//4123 4195//4121 4196//4122 4198//4124 +f 4195//4121 4197//4123 3974//3948 4199//4125 +f 4190//4119 4195//4121 4199//4125 4192//3953 +f 4200//4126 4201//4127 4202//3953 4203//4128 +f 3962//3936 4200//4126 4203//4128 3963//3937 +f 4200//4126 3962//3936 3959//3933 3958//3932 +f 4201//4127 4200//4126 3958//3932 3955//3929 +f 4204//4129 4205//4130 4206//3959 4207//3959 +f 4201//4127 4204//4129 4207//3959 4202//3953 +f 4204//4129 4201//4127 3955//3929 3954//3928 +f 4205//4130 4204//4129 3954//3928 3953//3927 +f 4208//4131 4209//4132 4210//4133 4211//4134 +f 4187//4116 4208//4131 4211//4134 4188//4117 +f 4208//4131 4187//4116 4194//3953 4212//3953 +f 4209//4132 4208//4131 4212//3953 4213//3953 +f 4214//4135 4215//4136 4216//4137 4217//4138 +f 4209//4132 4215//4136 4214//4135 4210//4133 +f 4215//4136 4209//4132 4213//3953 4218//3959 +f 4218//3959 4219//3959 4216//4137 4215//4136 +f 4216//4137 4220//4139 4221//4140 4217//4138 +f 4220//4139 4216//4137 4219//3959 4183//3953 +f 4222//3953 4223//3953 4037//3953 4036//4000 +f 3977//3951 4222//3953 4036//4000 3935//3909 +f 4222//3953 3977//3951 3981//3953 4224//3959 +f 4223//3953 4222//3953 4224//3959 4225//3953 +f 4226//3953 4227//3959 4185//3959 4228//3953 +f 4229//3953 4230//3953 4226//3953 4228//3953 +f 4231//3959 4226//3953 4230//3953 4232//3959 +f 4227//3959 4226//3953 4231//3959 4225//3953 +f 4233//3953 4234//3959 3989//3953 4055//3953 +f 4048//3959 4235//3959 4233//3953 4055//3953 +f 4233//3953 4235//3959 4231//3959 4232//3959 +f 4234//3959 4233//3953 4232//3959 4236//3953 +f 4237//4141 4238//3953 4239//3953 4240//3953 +f 4205//4130 4237//4141 4240//3953 4206//3959 +f 4237//4141 4205//4130 3953//3927 4241//4142 +f 4238//3953 4237//4141 4241//4142 4236//3953 +f 4242//4143 3946//3920 3947//3921 4132//4077 +f 4162//4107 4242//4143 4132//4077 4131//4076 +f 4242//4143 4162//4107 4167//4112 4243//4144 +f 3946//3920 4242//4143 4243//4144 3948//3922 +f 4244//3953 3980//3953 3979//3953 4245//3953 +f 4169//3953 4244//3953 4245//3953 4170//3953 +f 4244//3953 4169//3953 4176//3953 4246//3953 +f 3980//3953 4244//3953 4246//3953 3981//3953 +f 4247//4145 3983//3955 3948//3922 4243//4144 +f 4178//4113 4247//4145 4243//4144 4167//4112 +f 4247//4145 4178//4113 4170//3953 4245//3953 +f 3983//3955 4247//4145 4245//3953 3979//3953 +f 4248//3605 4070//4015 4071//4016 4249//4146 +f 3631//3605 4248//3605 4249//4146 3632//3606 +f 4248//3605 3631//3605 3635//3609 4250//3609 +f 4070//4015 4248//3605 4250//3609 4072//4017 +f 4251//3611 4077//4022 4072//4017 4250//3609 +f 3637//3611 4251//3611 4250//3609 3635//3609 +f 4251//3611 3637//3611 3639//3613 4252//4147 +f 4077//4022 4251//3611 4252//4147 4078//4023 +f 4253//4148 4083//4028 4078//4023 4252//4147 +f 3641//3615 4253//4148 4252//4147 3639//3613 +f 4253//4148 3641//3615 3643//3617 4254//4149 +f 4083//4028 4253//4148 4254//4149 4084//4029 +f 4255//4150 4089//4034 4084//4029 4254//4149 +f 3645//3619 4255//4150 4254//4149 3643//3617 +f 4255//4150 3645//3619 3647//3621 4256//4151 +f 4089//4034 4255//4150 4256//4151 4090//4035 +f 4257//3623 4095//4040 4090//4035 4256//4151 +f 3649//3623 4257//3623 4256//4151 3647//3621 +f 4257//3623 3649//3623 3651//3625 4258//4152 +f 4095//4040 4257//3623 4258//4152 4096//4041 +f 4259//4153 4101//4046 4096//4041 4258//4152 +f 3653//3627 4259//4153 4258//4152 3651//3625 +f 4259//4153 3653//3627 3655//3629 4260//4154 +f 4101//4046 4259//4153 4260//4154 4102//4047 +f 4261//4155 4107//4052 4102//4047 4260//4154 +f 3657//3631 4261//4155 4260//4154 3655//3629 +f 4261//4155 3657//3631 3659//3633 4262//3633 +f 4107//4052 4261//4155 4262//3633 4108//4053 +f 4263//3635 4113//4058 4108//4053 4262//3633 +f 3661//3635 4263//3635 4262//3633 3659//3633 +f 4263//3635 3661//3635 3663//3637 4264//4156 +f 4113//4058 4263//3635 4264//4156 4114//4059 +f 4265//4157 4119//4064 4114//4059 4264//4156 +f 3665//3639 4265//4157 4264//4156 3663//3637 +f 4265//4157 3665//3639 3667//3641 4266//3641 +f 4119//4064 4265//4157 4266//3641 4120//4065 +f 4267//4158 4125//4070 4120//4065 4266//3641 +f 3669//3643 4267//4158 4266//3641 3667//3641 +f 4267//4158 3669//3643 3671//3645 4268//4159 +f 4125//4070 4267//4158 4268//4159 4126//4071 +f 4269//4160 4133//4078 3947//3921 3945//3919 +f 3673//3647 4269//4160 3945//3919 3674//3648 +f 4269//4160 3673//3647 3677//3651 4270//3651 +f 4133//4078 4269//4160 4270//3651 4134//4079 +f 4271//4161 4141//4086 4142//4087 4272//4162 +f 3679//3653 4271//4161 4272//4162 3680//3654 +f 4271//4161 3679//3653 3683//3657 4273//4163 +f 4141//4086 4271//4161 4273//4163 4143//4088 +f 4274//4164 4148//4093 4143//4088 4273//4163 +f 3685//3659 4274//4164 4273//4163 3683//3657 +f 4274//4164 3685//3659 3687//3661 4275//4165 +f 4148//4093 4274//4164 4275//4165 4149//4094 +f 4276//3663 4154//4099 4149//4094 4275//4165 +f 3689//3663 4276//3663 4275//4165 3687//3661 +f 4276//3663 3689//3663 3691//3665 4277//3665 +f 4154//4099 4276//3663 4277//3665 4155//4100 +f 4278//4166 4160//4105 4155//4100 4277//3665 +f 3693//3667 4278//4166 4277//3665 3691//3665 +f 4278//4166 3693//3667 3632//3606 4249//4146 +f 4160//4105 4278//4166 4249//4146 4071//4016 +f 4279//3959 4224//3959 3981//3953 4246//3953 +f 4181//3953 4279//3959 4246//3953 4176//3953 +f 4279//3959 4181//3953 4185//3959 4227//3959 +f 4224//3959 4279//3959 4227//3959 4225//3953 +f 4235//3959 4048//3959 4037//3953 4223//3953 +f 4231//3959 4235//3959 4223//3953 4225//3953 +f 4230//3953 4229//3953 4239//3953 4238//3953 +f 4232//3959 4230//3953 4238//3953 4236//3953 +f 4280//4167 4241//4142 3953//3927 3967//3941 +f 3985//3957 4280//4167 3967//3941 3966//3940 +f 4280//4167 3985//3957 3989//3953 4234//3959 +f 4241//4142 4280//4167 4234//3959 4236//3953 +f 4281//4168 4282//4169 4136//4081 4283//4170 +f 4284//2848 4281//4168 4283//4170 4139//4084 +f 4281//4168 4284//2848 2847//2848 4285//4168 +f 4282//4169 4281//4168 4285//4168 2803//2804 +f 4286//4171 2813//2814 2812//2813 4287//4172 +f 2854//2855 4286//4171 4287//4172 2856//2857 +f 4286//4171 2854//2855 2853//2854 4288//4173 +f 2813//2814 4286//4171 4288//4173 2814//2815 +f 4289//4174 2863//2864 2862//2863 3172//3174 +f 2822//2823 4289//4174 3172//3174 2823//2824 +f 4290//4175 2831//2832 2830//2831 4291//4176 +f 2872//2873 4290//4175 4291//4176 2874//2875 +f 4290//4175 2872//2873 2871//2872 4292//4177 +f 2831//2832 4290//4175 4292//4177 2832//2833 +f 4293//4178 2840//2841 2839//2840 4294//4179 +f 2881//2882 4293//4178 4294//4179 2883//2884 +f 4293//4178 2881//2882 2880//2881 4295//4180 +f 2840//2841 4293//4178 4295//4180 2841//2842 +f 4296//4181 3092//3094 3093//3095 3450//3452 +f 3899//3873 4296//4181 3450//3452 3451//3453 +f 4296//4181 3899//3873 3894//3868 4297//4182 +f 3092//3094 4296//4181 4297//4182 3094//3096 +f 4298//4183 3101//3103 3102//3104 3888//3862 +f 3905//3879 4298//4183 3888//3862 3889//3863 +f 4298//4183 3905//3879 3845//3819 3844//3818 +f 3101//3103 4298//4183 3844//3818 3103//3105 +f 4299//4184 3171//3173 3094//3096 4297//4182 +f 3892//3866 4299//4184 4297//4182 3894//3868 +f 4299//4184 3892//3866 2817//2818 2816//2817 +f 3171//3173 4299//4184 2816//2817 2823//2824 +f 4300//4185 3250//3252 3249//3251 4301//4186 +f 3255//3257 4300//4185 4301//4186 3257//3259 +f 4300//4185 3255//3257 3254//3256 4302//4187 +f 3250//3252 4300//4185 4302//4187 3251//3253 +f 4303//4188 3322//3324 2841//2842 4295//4180 +f 3327//3329 4303//4188 4295//4180 2880//2881 +f 4303//4188 3327//3329 3326//3328 4304//4189 +f 3322//3324 4303//4188 4304//4189 3323//3325 +f 4305//4190 4306//4191 4307//4192 4308//4193 +f 4309//4194 4305//4190 4308//4193 4310//4195 +f 4305//4190 4309//4194 3391//3393 4311//4196 +f 4306//4191 4305//4190 4311//4196 3386//3388 +f 4312//4197 3452//3454 3093//3095 3091//3093 +f 3457//3459 4312//4197 3091//3093 3090//3092 +f 4312//4197 3457//3459 3456//3458 4313//4198 +f 3452//3454 4312//4197 4313//4198 3453//3455 +f 4314//4199 3540//3542 3539//3541 4315//4200 +f 3545//3547 4314//4199 4315//4200 3547//3549 +f 4314//4199 3545//3547 3544//3546 4316//4201 +f 3540//3542 4314//4199 4316//4201 3541//3543 +f 4317//4202 3613//3595 3612//3594 4318//4203 +f 3615//3597 4317//4202 4318//4203 3617//3570 +f 4317//4202 3615//3597 2856//2857 4287//4172 +f 3613//3595 4317//4202 4287//4172 2812//2813 +f 4319//4204 3676//3650 2814//2815 4288//4173 +f 3681//3655 4319//4204 4288//4173 2853//2854 +f 4319//4204 3681//3655 3680//3654 4320//4205 +f 3676//3650 4319//4204 4320//4205 3677//3651 +f 4321//4206 3717//3691 3541//3543 4316//4201 +f 3719//3693 4321//4206 4316//4201 3544//3546 +f 4321//4206 3719//3693 3617//3570 4318//4203 +f 3717//3691 4321//4206 4318//4203 3612//3594 +f 4322//4207 3749//3723 3453//3455 4313//4198 +f 3751//3725 4322//4207 4313//4198 3456//3458 +f 4322//4207 3751//3725 3547//3549 4315//4200 +f 3749//3723 4322//4207 4315//4200 3539//3541 +f 4323//4208 3804//3778 3323//3325 4304//4189 +f 3809//3783 4323//4208 4304//4189 3326//3328 +f 4323//4208 3809//3783 3808//3782 4324//4209 +f 3804//3778 4323//4208 4324//4209 3805//3779 +f 4325//4210 3847//3821 2832//2833 4292//4177 +f 3849//3823 4325//4210 4292//4177 2871//2872 +f 4325//4210 3849//3823 3105//3107 3104//3106 +f 3847//3821 4325//4210 3104//3106 3103//3105 +f 4326//4211 3879//3853 3805//3779 4324//4209 +f 3881//3855 4326//4211 4324//4209 3808//3782 +f 4326//4211 3881//3855 3257//3259 4301//4186 +f 3879//3853 4326//4211 4301//4186 3249//3251 +f 4327//4212 2821//2822 3102//3104 3100//3102 +f 2864//2865 4327//4212 3100//3102 3099//3101 +f 2863//2864 4289//4174 4327//4212 2864//2865 +f 2822//2823 2821//2822 4327//4212 4289//4174 +f 4328//4213 4013//3983 3251//3253 4302//4187 +f 4015//3985 4328//4213 4302//4187 3254//3256 +f 4328//4213 4015//3985 2874//2875 4291//4176 +f 4013//3983 4328//4213 4291//4176 2830//2831 +f 4329//4214 4135//4080 4134//4079 4330//4215 +f 4140//4085 4329//4214 4330//4215 4142//4087 +f 4329//4214 4140//4085 4139//4084 4283//4170 +f 4135//4080 4329//4214 4283//4170 4136//4081 +f 4331//4216 4270//3651 3677//3651 4320//4205 +f 4272//4162 4331//4216 4320//4205 3680//3654 +f 4331//4216 4272//4162 4142//4087 4330//4215 +f 4270//3651 4331//4216 4330//4215 4134//4079 +f 4332//4217 4333//4218 4310//4195 4308//4193 +f 4334//4219 4332//4217 4308//4193 4307//4192 +f 4332//4217 4334//4219 4335//4220 4336//4220 +f 4333//4218 4332//4217 4336//4220 4337//4220 +f 4338//4221 4339//4222 2844//2845 2843//2844 +f 4340//4223 4338//4221 2843//2844 2850//2851 +f 4338//4221 4340//4223 4341//4220 4342//4220 +f 4339//4222 4338//4221 4342//4220 4343//4220 +f 4344//4224 4345//4225 4346//4226 4347//4227 +f 4348//4228 4344//4224 4347//4227 4349//4229 +f 4344//4224 4348//4228 4350//4220 4351//4220 +f 4345//4225 4344//4224 4351//4220 4352//4220 +f 4353//4230 4354//4231 2892//2893 2918//2919 +f 4355//4232 4353//4230 2918//2919 2922//2923 +f 4353//4230 4355//4232 4356//4220 4357//4220 +f 4354//4231 4353//4230 4357//4220 4358//4220 +f 4359//4233 4360//4234 4361//4235 4362//4236 +f 4363//4237 4359//4233 4362//4236 4364//4238 +f 4359//4233 4363//4237 4365//4220 4366//4220 +f 4360//4234 4359//4233 4366//4220 4367//4220 +f 4368//4239 4369//4240 2484//2951 2483//2490 +f 4370//4241 4368//4239 2483//2490 2490//2491 +f 4368//4239 4370//4241 4371//4220 4372//4220 +f 4369//4240 4368//4239 4372//4220 4373//4220 +f 4374//4242 4375//4243 4376//4244 4377//4245 +f 4378//4246 4374//4242 4377//4245 4379//4247 +f 4374//4242 4378//4246 4380//4220 4381//4220 +f 4375//4243 4374//4242 4381//4220 4382//4220 +f 4383//4248 4384//4249 4385//4250 4386//4251 +f 4375//4243 4383//4248 4386//4251 4376//4244 +f 4383//4248 4375//4243 4382//4220 4387//4220 +f 4384//4249 4383//4248 4387//4220 4388//4220 +f 4389//4252 4390//4253 2562//2563 2588//2589 +f 4391//4254 4389//4252 2588//2589 2592//2593 +f 4389//4252 4391//4254 4392//4220 4393//4220 +f 4390//4253 4389//4252 4393//4220 4394//4220 +f 4395//4255 4396//4256 4397//4257 4398//4258 +f 4399//4259 4395//4255 4398//4258 4400//4260 +f 4395//4255 4399//4259 4401//4220 4402//4220 +f 4396//4256 4395//4255 4402//4220 4403//4220 +f 4404//4261 4405//4262 2622//2623 2648//2649 +f 4406//4263 4404//4261 2648//2649 2652//2653 +f 4404//4261 4406//4263 4407//4220 4408//4220 +f 4405//4262 4404//4261 4408//4220 4409//4220 +f 4410//4264 4411//4265 4412//4266 4413//4267 +f 4414//4268 4410//4264 4413//4267 4415//4269 +f 4410//4264 4414//4268 4416//4220 4417//4220 +f 4411//4265 4410//4264 4417//4220 4418//4220 +f 4419//4270 4420//4271 2682//2683 2708//2709 +f 4421//4272 4419//4270 2708//2709 2712//2713 +f 4419//4270 4421//4272 4422//4220 4423//4220 +f 4420//4271 4419//4270 4423//4220 4424//4220 +f 4425//4273 4426//4274 4427//4275 4428//4276 +f 4429//4277 4425//4273 4428//4276 4430//4278 +f 4425//4273 4429//4277 4431//4220 4432//4220 +f 4426//4274 4425//4273 4432//4220 4433//4220 +f 4434//4279 4435//4280 2742//2743 2768//2769 +f 4436//4281 4434//4279 2768//2769 2772//2773 +f 4434//4279 4436//4281 4437//4220 4438//4220 +f 4435//4280 4434//4279 4438//4220 4439//4220 +f 4440//4282 4441//4220 4442//4220 4443//4283 +f 4444//4284 4440//4282 4443//4283 2805//2806 +f 4440//4282 4444//4284 2844//2845 4339//4222 +f 4441//4220 4440//4282 4339//4222 4343//4220 +f 4445//4285 4446//4220 4341//4220 4340//4223 +f 2888//2889 4445//4285 4340//4223 2850//2851 +f 4445//4285 2888//2889 2892//2893 4354//4231 +f 4446//4220 4445//4285 4354//4231 4358//4220 +f 4447//4286 4448//4220 4356//4220 4355//4232 +f 2948//2949 4447//4286 4355//4232 2922//2923 +f 4447//4286 2948//2949 2484//2951 4369//4240 +f 4448//4220 4447//4286 4369//4240 4373//4220 +f 4449//4287 4450//4220 4371//4220 4370//4241 +f 2528//2529 4449//4287 4370//4241 2490//2491 +f 4449//4287 2528//2529 2532//2533 4451//4288 +f 4450//4220 4449//4287 4451//4288 4452//4220 +f 4453//4289 4454//4220 4452//4220 4451//4288 +f 2558//2559 4453//4289 4451//4288 2532//2533 +f 4453//4289 2558//2559 2562//2563 4390//4253 +f 4454//4220 4453//4289 4390//4253 4394//4220 +f 4455//4290 4456//4220 4392//4220 4391//4254 +f 2618//2619 4455//4290 4391//4254 2592//2593 +f 4455//4290 2618//2619 2622//2623 4405//4262 +f 4456//4220 4455//4290 4405//4262 4409//4220 +f 4457//4291 4458//4220 4407//4220 4406//4263 +f 2678//2679 4457//4291 4406//4263 2652//2653 +f 4457//4291 2678//2679 2682//2683 4420//4271 +f 4458//4220 4457//4291 4420//4271 4424//4220 +f 4459//4292 4460//4220 4422//4220 4421//4272 +f 2738//2739 4459//4292 4421//4272 2712//2713 +f 4459//4292 2738//2739 2742//2743 4435//4280 +f 4460//4220 4459//4292 4435//4280 4439//4220 +f 4461//4220 4342//4220 4341//4220 4462//4220 +f 4463//4220 4461//4220 4462//4220 4464//4220 +f 4461//4220 4463//4220 4465//4220 4466//4220 +f 4342//4220 4461//4220 4466//4220 4343//4220 +f 4467//4220 4357//4220 4356//4220 4468//4220 +f 4469//4220 4467//4220 4468//4220 4470//4220 +f 4467//4220 4469//4220 4471//4220 4472//4220 +f 4357//4220 4467//4220 4472//4220 4358//4220 +f 4473//4220 4372//4220 4371//4220 4474//4220 +f 4475//4220 4473//4220 4474//4220 4476//4220 +f 4473//4220 4475//4220 4477//4220 4478//4220 +f 4372//4220 4473//4220 4478//4220 4373//4220 +f 4479//4220 4393//4220 4392//4220 4480//4220 +f 4481//4220 4479//4220 4480//4220 4482//4220 +f 4479//4220 4481//4220 4483//4220 4484//4220 +f 4393//4220 4479//4220 4484//4220 4394//4220 +f 4485//4220 4408//4220 4407//4220 4486//4220 +f 4487//4220 4485//4220 4486//4220 4488//4220 +f 4485//4220 4487//4220 4489//4220 4490//4220 +f 4408//4220 4485//4220 4490//4220 4409//4220 +f 4491//4220 4423//4220 4422//4220 4492//4220 +f 4493//4220 4491//4220 4492//4220 4494//4220 +f 4491//4220 4493//4220 4495//4220 4496//4220 +f 4423//4220 4491//4220 4496//4220 4424//4220 +f 4497//4220 4438//4220 4437//4220 4498//4220 +f 4499//4220 4497//4220 4498//4220 4500//4220 +f 4497//4220 4499//4220 4501//4220 4502//4220 +f 4438//4220 4497//4220 4502//4220 4439//4220 +f 4503//4220 4504//4220 4505//4220 4506//4220 +f 4441//4220 4503//4220 4506//4220 4442//4220 +f 4503//4220 4441//4220 4343//4220 4466//4220 +f 4504//4220 4503//4220 4466//4220 4465//4220 +f 4507//4220 4508//4220 4464//4220 4462//4220 +f 4446//4220 4507//4220 4462//4220 4341//4220 +f 4507//4220 4446//4220 4358//4220 4472//4220 +f 4508//4220 4507//4220 4472//4220 4471//4220 +f 4509//4220 4510//4220 4470//4220 4468//4220 +f 4448//4220 4509//4220 4468//4220 4356//4220 +f 4509//4220 4448//4220 4373//4220 4478//4220 +f 4510//4220 4509//4220 4478//4220 4477//4220 +f 4511//4220 4512//4220 4476//4220 4474//4220 +f 4450//4220 4511//4220 4474//4220 4371//4220 +f 4511//4220 4450//4220 4452//4220 4513//4220 +f 4512//4220 4511//4220 4513//4220 4514//4220 +f 4515//4220 4516//4220 4514//4220 4513//4220 +f 4454//4220 4515//4220 4513//4220 4452//4220 +f 4515//4220 4454//4220 4394//4220 4484//4220 +f 4516//4220 4515//4220 4484//4220 4483//4220 +f 4517//4220 4518//4220 4482//4220 4480//4220 +f 4456//4220 4517//4220 4480//4220 4392//4220 +f 4517//4220 4456//4220 4409//4220 4490//4220 +f 4518//4220 4517//4220 4490//4220 4489//4220 +f 4519//4220 4520//4220 4488//4220 4486//4220 +f 4458//4220 4519//4220 4486//4220 4407//4220 +f 4519//4220 4458//4220 4424//4220 4496//4220 +f 4520//4220 4519//4220 4496//4220 4495//4220 +f 4521//4220 4522//4220 4494//4220 4492//4220 +f 4460//4220 4521//4220 4492//4220 4422//4220 +f 4521//4220 4460//4220 4439//4220 4502//4220 +f 4522//4220 4521//4220 4502//4220 4501//4220 +f 4523//4220 4463//4220 4464//4220 4524//4220 +f 4525//4220 4523//4220 4524//4220 4526//4220 +f 4523//4220 4525//4220 4527//4220 4528//4220 +f 4463//4220 4523//4220 4528//4220 4465//4220 +f 4529//4220 4469//4220 4470//4220 4530//4220 +f 4531//4220 4529//4220 4530//4220 4532//4220 +f 4529//4220 4531//4220 4533//4220 4534//4220 +f 4469//4220 4529//4220 4534//4220 4471//4220 +f 4535//4220 4475//4220 4476//4220 4536//4220 +f 4537//4220 4535//4220 4536//4220 4538//4220 +f 4535//4220 4537//4220 4539//4220 4540//4220 +f 4475//4220 4535//4220 4540//4220 4477//4220 +f 4541//4220 4481//4220 4482//4220 4542//4220 +f 4543//4220 4541//4220 4542//4220 4544//4220 +f 4541//4220 4543//4220 4545//4220 4546//4220 +f 4481//4220 4541//4220 4546//4220 4483//4220 +f 4547//4220 4487//4220 4488//4220 4548//4220 +f 4549//4220 4547//4220 4548//4220 4550//4220 +f 4547//4220 4549//4220 4551//4220 4552//4220 +f 4487//4220 4547//4220 4552//4220 4489//4220 +f 4553//4220 4493//4220 4494//4220 4554//4220 +f 4555//4220 4553//4220 4554//4220 4556//4220 +f 4553//4220 4555//4220 4557//4220 4558//4220 +f 4493//4220 4553//4220 4558//4220 4495//4220 +f 4559//4220 4499//4220 4500//4220 4560//4220 +f 4561//4220 4559//4220 4560//4220 4562//4220 +f 4559//4220 4561//4220 4563//4220 4564//4220 +f 4499//4220 4559//4220 4564//4220 4501//4220 +f 4565//4220 4566//4220 4567//4220 4568//4220 +f 4504//4220 4565//4220 4568//4220 4505//4220 +f 4565//4220 4504//4220 4465//4220 4528//4220 +f 4566//4220 4565//4220 4528//4220 4527//4220 +f 4569//4220 4570//4220 4526//4220 4524//4220 +f 4508//4220 4569//4220 4524//4220 4464//4220 +f 4569//4220 4508//4220 4471//4220 4534//4220 +f 4570//4220 4569//4220 4534//4220 4533//4220 +f 4571//4220 4572//4220 4532//4220 4530//4220 +f 4510//4220 4571//4220 4530//4220 4470//4220 +f 4571//4220 4510//4220 4477//4220 4540//4220 +f 4572//4220 4571//4220 4540//4220 4539//4220 +f 4573//4220 4574//4220 4538//4220 4536//4220 +f 4512//4220 4573//4220 4536//4220 4476//4220 +f 4573//4220 4512//4220 4514//4220 4575//4220 +f 4574//4220 4573//4220 4575//4220 4576//4220 +f 4577//4220 4578//4220 4576//4220 4575//4220 +f 4516//4220 4577//4220 4575//4220 4514//4220 +f 4577//4220 4516//4220 4483//4220 4546//4220 +f 4578//4220 4577//4220 4546//4220 4545//4220 +f 4579//4220 4580//4220 4544//4220 4542//4220 +f 4518//4220 4579//4220 4542//4220 4482//4220 +f 4579//4220 4518//4220 4489//4220 4552//4220 +f 4580//4220 4579//4220 4552//4220 4551//4220 +f 4581//4220 4582//4220 4550//4220 4548//4220 +f 4520//4220 4581//4220 4548//4220 4488//4220 +f 4581//4220 4520//4220 4495//4220 4558//4220 +f 4582//4220 4581//4220 4558//4220 4557//4220 +f 4583//4220 4584//4220 4556//4220 4554//4220 +f 4522//4220 4583//4220 4554//4220 4494//4220 +f 4583//4220 4522//4220 4501//4220 4564//4220 +f 4584//4220 4583//4220 4564//4220 4563//4220 +f 4585//4220 4525//4220 4526//4220 4586//4220 +f 4587//4220 4585//4220 4586//4220 4588//4220 +f 4585//4220 4587//4220 4589//4220 4590//4220 +f 4525//4220 4585//4220 4590//4220 4527//4220 +f 4591//4220 4531//4220 4532//4220 4592//4220 +f 4593//4220 4591//4220 4592//4220 4594//4220 +f 4591//4220 4593//4220 4595//4220 4596//4220 +f 4531//4220 4591//4220 4596//4220 4533//4220 +f 4597//4220 4537//4220 4538//4220 4598//4220 +f 4599//4220 4597//4220 4598//4220 4600//4220 +f 4597//4220 4599//4220 4601//4220 4602//4220 +f 4537//4220 4597//4220 4602//4220 4539//4220 +f 4603//4220 4543//4220 4544//4220 4604//4220 +f 4605//4220 4603//4220 4604//4220 4606//4220 +f 4603//4220 4605//4220 4607//4220 4608//4220 +f 4543//4220 4603//4220 4608//4220 4545//4220 +f 4609//4220 4549//4220 4550//4220 4610//4220 +f 4611//4220 4609//4220 4610//4220 4612//4220 +f 4609//4220 4611//4220 4613//4220 4614//4220 +f 4549//4220 4609//4220 4614//4220 4551//4220 +f 4615//4220 4555//4220 4556//4220 4616//4220 +f 4617//4220 4615//4220 4616//4220 4618//4220 +f 4615//4220 4617//4220 4619//4220 4620//4220 +f 4555//4220 4615//4220 4620//4220 4557//4220 +f 4621//4220 4561//4220 4562//4220 4622//4220 +f 4623//4220 4621//4220 4622//4220 4624//4220 +f 4621//4220 4623//4220 4625//4220 4626//4220 +f 4561//4220 4621//4220 4626//4220 4563//4220 +f 4627//4220 4628//4220 4629//4220 4630//4220 +f 4566//4220 4627//4220 4630//4220 4567//4220 +f 4627//4220 4566//4220 4527//4220 4590//4220 +f 4628//4220 4627//4220 4590//4220 4589//4220 +f 4631//4220 4632//4220 4588//4220 4586//4220 +f 4570//4220 4631//4220 4586//4220 4526//4220 +f 4631//4220 4570//4220 4533//4220 4596//4220 +f 4632//4220 4631//4220 4596//4220 4595//4220 +f 4633//4220 4634//4220 4594//4220 4592//4220 +f 4572//4220 4633//4220 4592//4220 4532//4220 +f 4633//4220 4572//4220 4539//4220 4602//4220 +f 4634//4220 4633//4220 4602//4220 4601//4220 +f 4635//4220 4636//4220 4600//4220 4598//4220 +f 4574//4220 4635//4220 4598//4220 4538//4220 +f 4635//4220 4574//4220 4576//4220 4637//4220 +f 4636//4220 4635//4220 4637//4220 4638//4220 +f 4639//4220 4640//4220 4638//4220 4637//4220 +f 4578//4220 4639//4220 4637//4220 4576//4220 +f 4639//4220 4578//4220 4545//4220 4608//4220 +f 4640//4220 4639//4220 4608//4220 4607//4220 +f 4641//4220 4642//4220 4606//4220 4604//4220 +f 4580//4220 4641//4220 4604//4220 4544//4220 +f 4641//4220 4580//4220 4551//4220 4614//4220 +f 4642//4220 4641//4220 4614//4220 4613//4220 +f 4643//4220 4644//4220 4612//4220 4610//4220 +f 4582//4220 4643//4220 4610//4220 4550//4220 +f 4643//4220 4582//4220 4557//4220 4620//4220 +f 4644//4220 4643//4220 4620//4220 4619//4220 +f 4645//4220 4646//4220 4618//4220 4616//4220 +f 4584//4220 4645//4220 4616//4220 4556//4220 +f 4645//4220 4584//4220 4563//4220 4626//4220 +f 4646//4220 4645//4220 4626//4220 4625//4220 +f 4647//4220 4587//4220 4588//4220 4648//4220 +f 4649//4220 4650//4220 4647//4220 4648//4220 +f 4647//4220 4650//4220 4651//4220 4652//4220 +f 4587//4220 4647//4220 4652//4220 4589//4220 +f 4653//4220 4593//4220 4594//4220 4654//4220 +f 4655//4220 4656//4220 4653//4220 4654//4220 +f 4653//4220 4656//4220 4657//4220 4658//4220 +f 4593//4220 4653//4220 4658//4220 4595//4220 +f 4659//4220 4599//4220 4600//4220 4660//4220 +f 4661//4220 4662//4220 4659//4220 4660//4220 +f 4659//4220 4662//4220 4663//4220 4664//4220 +f 4599//4220 4659//4220 4664//4220 4601//4220 +f 4665//4220 4605//4220 4606//4220 4666//4220 +f 4667//4220 4668//4220 4665//4220 4666//4220 +f 4665//4220 4668//4220 4669//4220 4670//4220 +f 4605//4220 4665//4220 4670//4220 4607//4220 +f 4671//4220 4611//4220 4612//4220 4672//4220 +f 4673//4220 4674//4220 4671//4220 4672//4220 +f 4671//4220 4674//4220 4675//4220 4676//4220 +f 4611//4220 4671//4220 4676//4220 4613//4220 +f 4677//4220 4617//4220 4618//4220 4678//4220 +f 4679//4220 4680//4220 4677//4220 4678//4220 +f 4677//4220 4680//4220 4681//4220 4682//4220 +f 4617//4220 4677//4220 4682//4220 4619//4220 +f 4683//4220 4623//4220 4624//4220 4684//4220 +f 4685//4220 4686//4220 4683//4220 4684//4220 +f 4683//4220 4686//4220 4687//4220 4688//4220 +f 4623//4220 4683//4220 4688//4220 4625//4220 +f 4689//4220 4690//4220 4691//4220 4692//4220 +f 4628//4220 4690//4220 4689//4220 4629//4220 +f 4690//4220 4628//4220 4589//4220 4652//4220 +f 4652//4220 4651//4220 4691//4220 4690//4220 +f 4693//4220 4694//4220 4649//4220 4648//4220 +f 4632//4220 4693//4220 4648//4220 4588//4220 +f 4693//4220 4632//4220 4595//4220 4658//4220 +f 4658//4220 4657//4220 4694//4220 4693//4220 +f 4695//4220 4696//4220 4655//4220 4654//4220 +f 4634//4220 4695//4220 4654//4220 4594//4220 +f 4695//4220 4634//4220 4601//4220 4664//4220 +f 4664//4220 4663//4220 4696//4220 4695//4220 +f 4697//4220 4698//4220 4661//4220 4660//4220 +f 4636//4220 4697//4220 4660//4220 4600//4220 +f 4697//4220 4636//4220 4638//4220 4699//4220 +f 4699//4220 4700//4220 4698//4220 4697//4220 +f 4701//4220 4702//4220 4700//4220 4699//4220 +f 4640//4220 4701//4220 4699//4220 4638//4220 +f 4701//4220 4640//4220 4607//4220 4670//4220 +f 4670//4220 4669//4220 4702//4220 4701//4220 +f 4703//4220 4704//4220 4667//4220 4666//4220 +f 4642//4220 4703//4220 4666//4220 4606//4220 +f 4703//4220 4642//4220 4613//4220 4676//4220 +f 4676//4220 4675//4220 4704//4220 4703//4220 +f 4705//4220 4706//4220 4673//4220 4672//4220 +f 4644//4220 4705//4220 4672//4220 4612//4220 +f 4705//4220 4644//4220 4619//4220 4682//4220 +f 4682//4220 4681//4220 4706//4220 4705//4220 +f 4707//4220 4708//4220 4679//4220 4678//4220 +f 4646//4220 4707//4220 4678//4220 4618//4220 +f 4707//4220 4646//4220 4625//4220 4688//4220 +f 4688//4220 4687//4220 4708//4220 4707//4220 +f 4709//4220 4650//4220 4649//4220 4710//4220 +f 4650//4220 4709//4220 4711//4220 4651//4220 +f 4712//4220 4656//4220 4655//4220 4713//4220 +f 4656//4220 4712//4220 4714//4220 4657//4220 +f 4715//4220 4662//4220 4661//4220 4716//4220 +f 4662//4220 4715//4220 4717//4220 4663//4220 +f 4718//4220 4668//4220 4667//4220 4719//4220 +f 4668//4220 4718//4220 4720//4220 4669//4220 +f 4721//4220 4674//4220 4673//4220 4722//4220 +f 4674//4220 4721//4220 4723//4220 4675//4220 +f 4724//4220 4680//4220 4679//4220 4725//4220 +f 4680//4220 4724//4220 4726//4220 4681//4220 +f 4727//4220 4686//4220 4685//4220 4728//4220 +f 4686//4220 4727//4220 4729//4220 4687//4220 +f 4730//4220 4336//4220 4335//4220 4731//4220 +f 4732//4220 4730//4220 4731//4220 4733//4220 +f 4730//4220 4732//4220 4734//4220 4735//4220 +f 4336//4220 4730//4220 4735//4220 4337//4220 +f 4736//4220 4351//4220 4350//4220 4737//4220 +f 4738//4220 4736//4220 4737//4220 4739//4220 +f 4736//4220 4738//4220 4740//4220 4741//4220 +f 4351//4220 4736//4220 4741//4220 4352//4220 +f 4742//4220 4366//4220 4365//4220 4743//4220 +f 4744//4220 4742//4220 4743//4220 4745//4220 +f 4742//4220 4744//4220 4746//4220 4747//4220 +f 4366//4220 4742//4220 4747//4220 4367//4220 +f 4748//4220 4381//4220 4380//4220 4749//4220 +f 4750//4220 4748//4220 4749//4220 4751//4220 +f 4748//4220 4750//4220 4752//4220 4753//4220 +f 4381//4220 4748//4220 4753//4220 4382//4220 +f 4754//4220 4387//4220 4382//4220 4753//4220 +f 4755//4220 4754//4220 4753//4220 4752//4220 +f 4754//4220 4755//4220 4756//4220 4757//4220 +f 4387//4220 4754//4220 4757//4220 4388//4220 +f 4758//4220 4402//4220 4401//4220 4759//4220 +f 4760//4220 4758//4220 4759//4220 4761//4220 +f 4758//4220 4760//4220 4762//4220 4763//4220 +f 4402//4220 4758//4220 4763//4220 4403//4220 +f 4764//4220 4417//4220 4416//4220 4765//4220 +f 4766//4220 4764//4220 4765//4220 4767//4220 +f 4764//4220 4766//4220 4768//4220 4769//4220 +f 4417//4220 4764//4220 4769//4220 4418//4220 +f 4770//4220 4432//4220 4431//4220 4771//4220 +f 4772//4220 4770//4220 4771//4220 4773//4220 +f 4770//4220 4772//4220 4774//4220 4775//4220 +f 4432//4220 4770//4220 4775//4220 4433//4220 +f 4776//4293 4777//4220 4350//4220 4348//4228 +f 4778//4294 4776//4293 4348//4228 4349//4229 +f 4776//4293 4778//4294 4310//4195 4333//4218 +f 4777//4220 4776//4293 4333//4218 4337//4220 +f 4779//4295 4780//4220 4365//4220 4363//4237 +f 4781//4296 4779//4295 4363//4237 4364//4238 +f 4779//4295 4781//4296 4346//4226 4345//4225 +f 4780//4220 4779//4295 4345//4225 4352//4220 +f 4782//4297 4783//4220 4380//4220 4378//4246 +f 4784//4298 4782//4297 4378//4246 4379//4247 +f 4782//4297 4784//4298 4361//4235 4360//4234 +f 4783//4220 4782//4297 4360//4234 4367//4220 +f 4785//4299 4786//4220 4401//4220 4399//4259 +f 4787//4300 4785//4299 4399//4259 4400//4260 +f 4785//4299 4787//4300 4385//4250 4384//4249 +f 4786//4220 4785//4299 4384//4249 4388//4220 +f 4788//4301 4789//4220 4416//4220 4414//4268 +f 4790//4302 4788//4301 4414//4268 4415//4269 +f 4788//4301 4790//4302 4397//4257 4396//4256 +f 4789//4220 4788//4301 4396//4256 4403//4220 +f 4791//4303 4792//4220 4431//4220 4429//4277 +f 4793//4304 4791//4303 4429//4277 4430//4278 +f 4791//4303 4793//4304 4412//4266 4411//4265 +f 4792//4220 4791//4303 4411//4265 4418//4220 +f 4794//4305 4795//4220 4796//4220 4797//4306 +f 4798//4307 4794//4305 4797//4306 4799//4308 +f 4794//4305 4798//4307 4427//4275 4426//4274 +f 4795//4220 4794//4305 4426//4274 4433//4220 +f 4800//4220 4801//4220 4739//4220 4737//4220 +f 4777//4220 4800//4220 4737//4220 4350//4220 +f 4800//4220 4777//4220 4337//4220 4735//4220 +f 4801//4220 4800//4220 4735//4220 4734//4220 +f 4802//4220 4803//4220 4745//4220 4743//4220 +f 4780//4220 4802//4220 4743//4220 4365//4220 +f 4802//4220 4780//4220 4352//4220 4741//4220 +f 4803//4220 4802//4220 4741//4220 4740//4220 +f 4804//4220 4805//4220 4751//4220 4749//4220 +f 4783//4220 4804//4220 4749//4220 4380//4220 +f 4804//4220 4783//4220 4367//4220 4747//4220 +f 4805//4220 4804//4220 4747//4220 4746//4220 +f 4806//4220 4807//4220 4761//4220 4759//4220 +f 4786//4220 4806//4220 4759//4220 4401//4220 +f 4806//4220 4786//4220 4388//4220 4757//4220 +f 4807//4220 4806//4220 4757//4220 4756//4220 +f 4808//4220 4809//4220 4767//4220 4765//4220 +f 4789//4220 4808//4220 4765//4220 4416//4220 +f 4808//4220 4789//4220 4403//4220 4763//4220 +f 4809//4220 4808//4220 4763//4220 4762//4220 +f 4810//4220 4811//4220 4773//4220 4771//4220 +f 4792//4220 4810//4220 4771//4220 4431//4220 +f 4810//4220 4792//4220 4418//4220 4769//4220 +f 4811//4220 4810//4220 4769//4220 4768//4220 +f 4812//4220 4813//4220 4814//4220 4815//4220 +f 4795//4220 4812//4220 4815//4220 4796//4220 +f 4812//4220 4795//4220 4433//4220 4775//4220 +f 4813//4220 4812//4220 4775//4220 4774//4220 +f 4816//4220 4732//4220 4733//4220 4817//4220 +f 4818//4220 4816//4220 4817//4220 4819//4220 +f 4816//4220 4818//4220 4820//4220 4821//4220 +f 4732//4220 4816//4220 4821//4220 4734//4220 +f 4822//4220 4738//4220 4739//4220 4823//4220 +f 4824//4220 4822//4220 4823//4220 4825//4220 +f 4822//4220 4824//4220 4826//4220 4827//4220 +f 4738//4220 4822//4220 4827//4220 4740//4220 +f 4828//4220 4744//4220 4745//4220 4829//4220 +f 4830//4220 4828//4220 4829//4220 4831//4220 +f 4828//4220 4830//4220 4832//4220 4833//4220 +f 4744//4220 4828//4220 4833//4220 4746//4220 +f 4834//4220 4750//4220 4751//4220 4835//4220 +f 4836//4220 4834//4220 4835//4220 4837//4220 +f 4834//4220 4836//4220 4838//4220 4839//4220 +f 4750//4220 4834//4220 4839//4220 4752//4220 +f 4840//4220 4755//4220 4752//4220 4839//4220 +f 4841//4220 4840//4220 4839//4220 4838//4220 +f 4840//4220 4841//4220 4842//4220 4843//4220 +f 4755//4220 4840//4220 4843//4220 4756//4220 +f 4844//4220 4760//4220 4761//4220 4845//4220 +f 4846//4220 4844//4220 4845//4220 4847//4220 +f 4844//4220 4846//4220 4848//4220 4849//4220 +f 4760//4220 4844//4220 4849//4220 4762//4220 +f 4850//4220 4766//4220 4767//4220 4851//4220 +f 4852//4220 4850//4220 4851//4220 4853//4220 +f 4850//4220 4852//4220 4854//4220 4855//4220 +f 4766//4220 4850//4220 4855//4220 4768//4220 +f 4856//4220 4772//4220 4773//4220 4857//4220 +f 4858//4220 4856//4220 4857//4220 4859//4220 +f 4856//4220 4858//4220 4860//4220 4861//4220 +f 4772//4220 4856//4220 4861//4220 4774//4220 +f 4862//4220 4863//4220 4825//4220 4823//4220 +f 4801//4220 4862//4220 4823//4220 4739//4220 +f 4862//4220 4801//4220 4734//4220 4821//4220 +f 4863//4220 4862//4220 4821//4220 4820//4220 +f 4864//4220 4865//4220 4831//4220 4829//4220 +f 4803//4220 4864//4220 4829//4220 4745//4220 +f 4864//4220 4803//4220 4740//4220 4827//4220 +f 4865//4220 4864//4220 4827//4220 4826//4220 +f 4866//4220 4867//4220 4837//4220 4835//4220 +f 4805//4220 4866//4220 4835//4220 4751//4220 +f 4866//4220 4805//4220 4746//4220 4833//4220 +f 4867//4220 4866//4220 4833//4220 4832//4220 +f 4868//4220 4869//4220 4847//4220 4845//4220 +f 4807//4220 4868//4220 4845//4220 4761//4220 +f 4868//4220 4807//4220 4756//4220 4843//4220 +f 4869//4220 4868//4220 4843//4220 4842//4220 +f 4870//4220 4871//4220 4853//4220 4851//4220 +f 4809//4220 4870//4220 4851//4220 4767//4220 +f 4870//4220 4809//4220 4762//4220 4849//4220 +f 4871//4220 4870//4220 4849//4220 4848//4220 +f 4872//4220 4873//4220 4859//4220 4857//4220 +f 4811//4220 4872//4220 4857//4220 4773//4220 +f 4872//4220 4811//4220 4768//4220 4855//4220 +f 4873//4220 4872//4220 4855//4220 4854//4220 +f 4874//4220 4875//4220 4876//4220 4877//4220 +f 4813//4220 4874//4220 4877//4220 4814//4220 +f 4874//4220 4813//4220 4774//4220 4861//4220 +f 4875//4220 4874//4220 4861//4220 4860//4220 +f 4878//4220 4818//4220 4819//4220 4879//4220 +f 4880//4220 4878//4220 4879//4220 4881//4220 +f 4878//4220 4880//4220 4711//4220 4882//4220 +f 4818//4220 4878//4220 4882//4220 4820//4220 +f 4883//4220 4824//4220 4825//4220 4884//4220 +f 4885//4220 4883//4220 4884//4220 4710//4220 +f 4883//4220 4885//4220 4714//4220 4886//4220 +f 4824//4220 4883//4220 4886//4220 4826//4220 +f 4887//4220 4830//4220 4831//4220 4888//4220 +f 4889//4220 4887//4220 4888//4220 4713//4220 +f 4887//4220 4889//4220 4717//4220 4890//4220 +f 4830//4220 4887//4220 4890//4220 4832//4220 +f 4891//4220 4836//4220 4837//4220 4892//4220 +f 4893//4220 4891//4220 4892//4220 4716//4220 +f 4891//4220 4893//4220 4894//4220 4895//4220 +f 4836//4220 4891//4220 4895//4220 4838//4220 +f 4896//4220 4841//4220 4838//4220 4895//4220 +f 4897//4220 4896//4220 4895//4220 4894//4220 +f 4896//4220 4897//4220 4720//4220 4898//4220 +f 4841//4220 4896//4220 4898//4220 4842//4220 +f 4899//4220 4846//4220 4847//4220 4900//4220 +f 4901//4220 4899//4220 4900//4220 4719//4220 +f 4899//4220 4901//4220 4723//4220 4902//4220 +f 4846//4220 4899//4220 4902//4220 4848//4220 +f 4903//4220 4852//4220 4853//4220 4904//4220 +f 4905//4220 4903//4220 4904//4220 4722//4220 +f 4903//4220 4905//4220 4726//4220 4906//4220 +f 4852//4220 4903//4220 4906//4220 4854//4220 +f 4907//4220 4858//4220 4859//4220 4908//4220 +f 4909//4220 4907//4220 4908//4220 4725//4220 +f 4907//4220 4909//4220 4729//4220 4910//4220 +f 4858//4220 4907//4220 4910//4220 4860//4220 +f 4911//4309 4912//4310 4913//4311 4914//4312 +f 4915//4313 4911//4309 4914//4312 4198//4124 +f 4911//4309 4915//4313 4335//4220 4334//4219 +f 4912//4310 4911//4309 4334//4219 4307//4192 +f 4916//4314 4917//4315 4918//4316 4919//4317 +f 2798//2799 4916//4314 4919//4317 2799//2800 +f 4916//4314 2798//2799 2805//2806 4443//4283 +f 4917//4315 4916//4314 4443//4283 4442//4220 +f 4920//4318 4921//4319 4922//4320 4923//4321 +f 4917//4315 4920//4318 4923//4321 4918//4316 +f 4920//4318 4917//4315 4442//4220 4506//4220 +f 4921//4319 4920//4318 4506//4220 4505//4220 +f 4924//4322 4925//4323 4926//4324 4927//4325 +f 4921//4319 4924//4322 4927//4325 4922//4320 +f 4924//4322 4921//4319 4505//4220 4568//4220 +f 4925//4323 4924//4322 4568//4220 4567//4220 +f 4928//4326 4929//4327 4221//4140 4930//4328 +f 4925//4323 4928//4326 4930//4328 4926//4324 +f 4928//4326 4925//4323 4567//4220 4630//4220 +f 4929//4327 4928//4326 4630//4220 4629//4220 +f 4931//4329 4932//4330 4214//4135 4217//4138 +f 4929//4327 4931//4329 4217//4138 4221//4140 +f 4931//4329 4929//4327 4629//4220 4689//4220 +f 4689//4220 4692//4220 4932//4330 4931//4329 +f 4933//4220 4709//4220 4710//4220 4884//4220 +f 4863//4220 4933//4220 4884//4220 4825//4220 +f 4933//4220 4863//4220 4820//4220 4882//4220 +f 4709//4220 4933//4220 4882//4220 4711//4220 +f 4934//4220 4712//4220 4713//4220 4888//4220 +f 4865//4220 4934//4220 4888//4220 4831//4220 +f 4934//4220 4865//4220 4826//4220 4886//4220 +f 4712//4220 4934//4220 4886//4220 4714//4220 +f 4935//4220 4715//4220 4716//4220 4892//4220 +f 4867//4220 4935//4220 4892//4220 4837//4220 +f 4935//4220 4867//4220 4832//4220 4890//4220 +f 4715//4220 4935//4220 4890//4220 4717//4220 +f 4936//4220 4718//4220 4719//4220 4900//4220 +f 4869//4220 4936//4220 4900//4220 4847//4220 +f 4936//4220 4869//4220 4842//4220 4898//4220 +f 4718//4220 4936//4220 4898//4220 4720//4220 +f 4937//4220 4721//4220 4722//4220 4904//4220 +f 4871//4220 4937//4220 4904//4220 4853//4220 +f 4937//4220 4871//4220 4848//4220 4902//4220 +f 4721//4220 4937//4220 4902//4220 4723//4220 +f 4938//4220 4724//4220 4725//4220 4908//4220 +f 4873//4220 4938//4220 4908//4220 4859//4220 +f 4938//4220 4873//4220 4854//4220 4906//4220 +f 4724//4220 4938//4220 4906//4220 4726//4220 +f 4939//4220 4727//4220 4728//4220 4940//4220 +f 4875//4220 4939//4220 4940//4220 4876//4220 +f 4939//4220 4875//4220 4860//4220 4910//4220 +f 4727//4220 4939//4220 4910//4220 4729//4220 +f 4691//4220 4880//4220 4881//4220 4692//4220 +f 4880//4220 4691//4220 4651//4220 4711//4220 +f 4694//4220 4885//4220 4710//4220 4649//4220 +f 4885//4220 4694//4220 4657//4220 4714//4220 +f 4696//4220 4889//4220 4713//4220 4655//4220 +f 4889//4220 4696//4220 4663//4220 4717//4220 +f 4698//4220 4893//4220 4716//4220 4661//4220 +f 4893//4220 4698//4220 4700//4220 4894//4220 +f 4702//4220 4897//4220 4894//4220 4700//4220 +f 4897//4220 4702//4220 4669//4220 4720//4220 +f 4704//4220 4901//4220 4719//4220 4667//4220 +f 4901//4220 4704//4220 4675//4220 4723//4220 +f 4706//4220 4905//4220 4722//4220 4673//4220 +f 4905//4220 4706//4220 4681//4220 4726//4220 +f 4708//4220 4909//4220 4725//4220 4679//4220 +f 4909//4220 4708//4220 4687//4220 4729//4220 +f 4932//4330 4941//4330 4210//4133 4214//4135 +f 4941//4330 4932//4330 4692//4220 4881//4220 +f 4942//4331 4943//4332 4188//4117 4211//4134 +f 4941//4330 4942//4331 4211//4134 4210//4133 +f 4942//4331 4941//4330 4881//4220 4879//4220 +f 4943//4332 4942//4331 4879//4220 4819//4220 +f 4944//4333 4945//4334 4191//4120 4189//4118 +f 4943//4332 4944//4333 4189//4118 4188//4117 +f 4944//4333 4943//4332 4819//4220 4817//4220 +f 4945//4334 4944//4333 4817//4220 4733//4220 +f 4946//4335 4915//4313 4198//4124 4196//4122 +f 4945//4334 4946//4335 4196//4122 4191//4120 +f 4946//4335 4945//4334 4733//4220 4731//4220 +f 4915//4313 4946//4335 4731//4220 4335//4220 +f 4947//2484 2486//2484 2487//2487 4948//4336 +f 4067//4012 4947//2484 4948//4336 4068//4013 +f 4947//2484 4067//4012 4074//4019 4949//2488 +f 2486//2484 4947//2484 4949//2488 2488//2488 +f 4950//2530 2529//2530 2488//2488 4949//2488 +f 4076//4021 4950//2530 4949//2488 4074//4019 +f 4950//2530 4076//4021 4080//4025 4951//2531 +f 2529//2530 4950//2530 4951//2531 2530//2531 +f 4952//2560 2559//2560 2530//2531 4951//2531 +f 4082//4027 4952//2560 4951//2531 4080//4025 +f 4952//2560 4082//4027 4086//4031 4953//2561 +f 2559//2560 4952//2560 4953//2561 2560//2561 +f 4954//2590 2589//2590 2560//2561 4953//2561 +f 4088//4033 4954//2590 4953//2561 4086//4031 +f 4954//2590 4088//4033 4092//4037 4955//2591 +f 2589//2590 4954//2590 4955//2591 2590//2591 +f 4956//2620 2619//2620 2590//2591 4955//2591 +f 4094//4039 4956//2620 4955//2591 4092//4037 +f 4956//2620 4094//4039 4098//4043 4957//2621 +f 2619//2620 4956//2620 4957//2621 2620//2621 +f 4958//4337 2649//2650 2620//2621 4957//2621 +f 4100//4045 4958//4337 4957//2621 4098//4043 +f 4958//4337 4100//4045 4104//4049 4959//4338 +f 2649//2650 4958//4337 4959//4338 2650//2651 +f 4960//4339 2679//2680 2650//2651 4959//4338 +f 4106//4051 4960//4339 4959//4338 4104//4049 +f 4960//4339 4106//4051 4110//4055 4961//4340 +f 2679//2680 4960//4339 4961//4340 2680//2681 +f 4962//4341 2709//2710 2680//2681 4961//4340 +f 4112//4057 4962//4341 4961//4340 4110//4055 +f 4962//4341 4112//4057 4116//4061 4963//2711 +f 2709//2710 4962//4341 4963//2711 2710//2711 +f 4964//2740 2739//2740 2710//2711 4963//2711 +f 4118//4063 4964//2740 4963//2711 4116//4061 +f 4964//2740 4118//4063 4122//4067 4965//4342 +f 2739//2740 4964//2740 4965//4342 2740//2741 +f 4966//2770 2769//2770 2740//2741 4965//4342 +f 4124//4069 4966//2770 4965//4342 4122//4067 +f 4966//2770 4124//4069 4128//4073 4967//2771 +f 2769//2770 4966//2770 4967//2771 2770//2771 +f 4968//4343 2801//2802 2802//2803 4163//4108 +f 4130//4075 4968//4343 4163//4108 4131//4076 +f 4968//4343 4130//4075 4136//4081 4282//4169 +f 2801//2802 4968//4343 4282//4169 2803//2804 +f 4969//2847 2846//2847 2847//2848 4284//2848 +f 4138//4083 4969//2847 4284//2848 4139//4084 +f 4969//2847 4138//4083 4145//4090 4970//2849 +f 2846//2847 4969//2847 4970//2849 2848//2849 +f 4971//2890 2889//2890 2848//2849 4970//2849 +f 4147//4092 4971//2890 4970//2849 4145//4090 +f 4971//2890 4147//4092 4151//4096 4972//2891 +f 2889//2890 4971//2890 4972//2891 2890//2891 +f 4973//2920 2919//2920 2890//2891 4972//2891 +f 4153//4098 4973//2920 4972//2891 4151//4096 +f 4973//2920 4153//4098 4157//4102 4974//2921 +f 2919//2920 4973//2920 4974//2921 2920//2921 +f 4975//4344 2949//2950 2920//2921 4974//2921 +f 4159//4104 4975//4344 4974//2921 4157//4102 +f 4975//4344 4159//4104 4068//4013 4948//4336 +f 2949//2950 4975//4344 4948//4336 2487//2487 +f 4976//4345 3342//3344 3343//3345 4977//4346 +f 4784//4298 4976//4345 4977//4346 4361//4235 +f 4976//4345 4784//4298 4379//4247 4978//4347 +f 3342//3344 4976//4345 4978//4347 3344//3346 +f 4979//4348 3347//3349 3344//3346 4978//4347 +f 4377//4245 4979//4348 4978//4347 4379//4247 +f 4979//4348 4377//4245 4376//4244 4980//4349 +f 3347//3349 4979//4348 4980//4349 3348//3350 +f 4981//4350 3351//3353 3348//3350 4980//4349 +f 4386//4251 4981//4350 4980//4349 4376//4244 +f 4981//4350 4386//4251 4385//4250 4982//4351 +f 3351//3353 4981//4350 4982//4351 3352//3354 +f 4983//4352 3355//3357 3352//3354 4982//4351 +f 4787//4300 4983//4352 4982//4351 4385//4250 +f 4983//4352 4787//4300 4400//4260 4984//4353 +f 3355//3357 4983//4352 4984//4353 3356//3358 +f 4985//4354 3359//3361 3356//3358 4984//4353 +f 4398//4258 4985//4354 4984//4353 4400//4260 +f 4985//4354 4398//4258 4397//4257 4986//4355 +f 3359//3361 4985//4354 4986//4355 3360//3362 +f 4987//4356 3363//3365 3360//3362 4986//4355 +f 4790//4302 4987//4356 4986//4355 4397//4257 +f 4987//4356 4790//4302 4415//4269 4988//4357 +f 3363//3365 4987//4356 4988//4357 3364//3366 +f 4989//4358 3367//3369 3364//3366 4988//4357 +f 4413//4267 4989//4358 4988//4357 4415//4269 +f 4989//4358 4413//4267 4412//4266 4990//4359 +f 3367//3369 4989//4358 4990//4359 3368//3370 +f 4991//4360 3371//3373 3368//3370 4990//4359 +f 4793//4304 4991//4360 4990//4359 4412//4266 +f 4991//4360 4793//4304 4430//4278 4992//4361 +f 3371//3373 4991//4360 4992//4361 3372//3374 +f 4993//4362 3375//3377 3372//3374 4992//4361 +f 4428//4276 4993//4362 4992//4361 4430//4278 +f 4993//4362 4428//4276 4427//4275 4994//4363 +f 3375//3377 4993//4362 4994//4363 3376//3378 +f 4995//4364 3379//3381 3376//3378 4994//4363 +f 4798//4307 4995//4364 4994//4363 4427//4275 +f 4995//4364 4798//4307 4799//4308 4996//4365 +f 3379//3381 4995//4364 4996//4365 3380//3382 +f 4997//4366 3384//3386 3385//3387 4998//4367 +f 4912//4310 4997//4366 4998//4367 4913//4311 +f 4997//4366 4912//4310 4307//4192 4306//4191 +f 3384//3386 4997//4366 4306//4191 3386//3388 +f 4999//4368 3390//3392 3391//3393 4309//4194 +f 4778//4294 4999//4368 4309//4194 4310//4195 +f 4999//4368 4778//4294 4349//4229 5000//4369 +f 3390//3392 4999//4368 5000//4369 3392//3394 +f 5001//4370 3395//3397 3392//3394 5000//4369 +f 4347//4227 5001//4370 5000//4369 4349//4229 +f 5001//4370 4347//4227 4346//4226 5002//4371 +f 3395//3397 5001//4370 5002//4371 3396//3398 +f 5003//4372 3399//3401 3396//3398 5002//4371 +f 4781//4296 5003//4372 5002//4371 4346//4226 +f 5003//4372 4781//4296 4364//4238 5004//4373 +f 3399//3401 5003//4372 5004//4373 3400//3402 +f 5005//4374 3403//3405 3400//3402 5004//4373 +f 4362//4236 5005//4374 5004//4373 4364//4238 +f 5005//4374 4362//4236 4361//4235 4977//4346 +f 3403//3405 5005//4374 4977//4346 3343//3345 +f 5006//4375 3975//3949 3974//3948 4197//4123 +f 4914//4312 5006//4375 4197//4123 4198//4124 +f 5006//4375 4914//4312 4913//4311 4998//4367 +f 3975//3949 5006//4375 4998//4367 3385//3387 +f 5007//4376 4164//4109 2802//2803 2800//2801 +f 4919//4317 5007//4376 2800//2801 2799//2800 +f 5007//4376 4919//4317 4918//4316 5008//4377 +f 4164//4109 5007//4376 5008//4377 4165//4110 +f 5009//4378 4172//3953 4173//3953 5010//4379 +f 4927//4325 5009//4378 5010//4379 4922//4320 +f 5009//4378 4927//4325 4926//4324 5011//4380 +f 4172//3953 5009//4378 5011//4380 4174//3953 +f 5012//4381 4179//4114 4165//4110 5008//4377 +f 4923//4321 5012//4381 5008//4377 4918//4316 +f 5012//4381 4923//4321 4922//4320 5010//4379 +f 4179//4114 5012//4381 5010//4379 4173//3953 +f 5013//4382 4182//3953 4174//3953 5011//4380 +f 4930//4328 5013//4382 5011//4380 4926//4324 +f 5013//4382 4930//4328 4221//4140 4220//4139 +f 4182//3953 5013//4382 4220//4139 4183//3953 +f 5014//3953 4193//3953 4192//3953 5015//3953 +f 4207//3959 5014//3953 5015//3953 4202//3953 +f 5014//3953 4207//3959 4206//3959 5016//3953 +f 4193//3953 5014//3953 5016//3953 4194//3953 +f 5017//4383 4199//4125 3974//3948 3973//3947 +f 4203//4128 5017//4383 3973//3947 3963//3937 +f 5017//4383 4203//4128 4202//3953 5015//3953 +f 4199//4125 5017//4383 5015//3953 4192//3953 +f 5018//3953 4212//3953 4194//3953 5016//3953 +f 4240//3953 5018//3953 5016//3953 4206//3959 +f 5018//3953 4240//3953 4239//3953 5019//3953 +f 4212//3953 5018//3953 5019//3953 4213//3953 +f 5020//3959 4218//3959 4213//3953 5019//3953 +f 4229//3953 5020//3959 5019//3953 4239//3953 +f 4228//3953 5021//3959 5020//3959 4229//3953 +f 4219//3959 4218//3959 5020//3959 5021//3959 +f 5021//3959 4228//3953 4185//3959 4184//3953 +f 4219//3959 5021//3959 4184//3953 4183//3953 +f 5022//4384 4285//4168 2847//2848 2845//2846 +f 4444//4284 5022//4384 2845//2846 2844//2845 +f 5022//4384 4444//4284 2805//2806 2804//2805 +f 4285//4168 5022//4384 2804//2805 2803//2804 +f 5023//4385 4311//4196 3391//3393 3389//3391 +f 4294//4179 5023//4385 3389//3391 2883//2884 +f 5023//4385 4294//4179 2839//2840 3387//3389 +f 4311//4196 5023//4385 3387//3389 3386//3388 +f 5024//4386 5025//4387 5026//4388 5027//4389 +f 5028//4390 5029//4391 5025//4387 5024//4386 +f 5024//4386 5030//4392 5031//4393 5028//4390 +f 5027//4389 5032//4394 5030//4392 5024//4386 +f 5033//4395 5034//4396 5035//4397 5036//4398 +f 5037//4399 5038//4400 5034//4396 5033//4395 +f 5033//4395 5039//4401 5040//4402 5037//4399 +f 5036//4398 5041//4403 5039//4401 5033//4395 +f 5042//4404 5043//4405 5044//4406 5045//4407 +f 5046//4408 5043//4405 5042//4404 5047//4409 +f 5042//4404 5048//4410 5049//4411 5047//4409 +f 5045//4407 5050//4412 5048//4410 5042//4404 +f 5051//4413 5052//4414 5053//4415 5054//4416 +f 5055//4417 5056//4418 5052//4414 5051//4413 +f 5051//4413 5057//4419 5058//4420 5055//4417 +f 5054//4416 5059//4421 5057//4419 5051//4413 +f 5060//4422 5061//4423 5062//4424 5063//4425 +f 5064//4426 5065//4427 5061//4423 5060//4422 +f 5060//4422 5066//4428 5067//4429 5064//4426 +f 5063//4425 5068//4430 5066//4428 5060//4422 +f 5069//4431 5030//4392 5032//4394 5070//4432 +f 5071//4433 5031//4393 5030//4392 5069//4431 +f 5069//4431 5072//4434 5073//4435 5071//4433 +f 5070//4432 5074//4436 5072//4434 5069//4431 +f 5075//4437 5039//4401 5041//4403 5076//4438 +f 5077//4439 5040//4402 5039//4401 5075//4437 +f 5075//4437 5078//4440 5079//4441 5077//4439 +f 5076//4438 5080//4442 5078//4440 5075//4437 +f 5081//4443 5048//4410 5050//4412 5082//4444 +f 5048//4410 5081//4443 5083//4445 5049//4411 +f 5081//4443 5084//4446 5085//4447 5083//4445 +f 5082//4444 5086//4448 5084//4446 5081//4443 +f 5087//4449 5057//4419 5059//4421 5088//4450 +f 5089//4451 5058//4420 5057//4419 5087//4449 +f 5087//4449 5090//4452 5091//4453 5089//4451 +f 5088//4450 5092//4454 5090//4452 5087//4449 +f 5093//4455 5066//4428 5068//4430 5094//4456 +f 5095//4457 5067//4429 5066//4428 5093//4455 +f 5093//4455 5096//4458 5097//4459 5095//4457 +f 5094//4456 5098//4460 5096//4458 5093//4455 +f 5099//4461 5072//4434 5074//4436 5100//4462 +f 5101//4463 5073//4435 5072//4434 5099//4461 +f 5099//4461 5102//4464 5103//4465 5101//4463 +f 5100//4462 5104//4466 5102//4464 5099//4461 +f 5105//4467 5078//4440 5080//4442 5106//4468 +f 5107//4469 5079//4441 5078//4440 5105//4467 +f 5105//4467 5108//4470 5109//4471 5107//4469 +f 5106//4468 5110//4472 5108//4470 5105//4467 +f 5111//4473 5084//4446 5086//4448 5112//4474 +f 5084//4446 5111//4473 5113//4475 5085//4447 +f 5111//4473 5114//4476 5115//4477 5113//4475 +f 5112//4474 5116//4478 5114//4476 5111//4473 +f 5117//4479 5090//4452 5092//4454 5118//4480 +f 5119//4481 5091//4453 5090//4452 5117//4479 +f 5117//4479 5120//4482 5121//4483 5119//4481 +f 5118//4480 5122//4484 5120//4482 5117//4479 +f 5123//4485 5096//4458 5098//4460 5124//4486 +f 5125//4487 5097//4459 5096//4458 5123//4485 +f 5123//4485 5126//4488 5127//4489 5125//4487 +f 5124//4486 5128//4490 5126//4488 5123//4485 +f 5129//4491 5102//4464 5104//4466 5130//4492 +f 5131//4493 5103//4465 5102//4464 5129//4491 +f 5129//4491 5132//4494 5133//4495 5131//4493 +f 5130//4492 5134//4496 5132//4494 5129//4491 +f 5135//4497 5108//4470 5110//4472 5136//4498 +f 5137//4499 5109//4471 5108//4470 5135//4497 +f 5135//4497 5138//4500 5139//4501 5137//4499 +f 5136//4498 5140//4502 5138//4500 5135//4497 +f 5141//4503 5114//4476 5116//4478 5142//4504 +f 5114//4476 5141//4503 5143//4505 5115//4477 +f 5141//4503 5144//4506 5145//4507 5143//4505 +f 5142//4504 5146//4508 5144//4506 5141//4503 +f 5147//4509 5120//4482 5122//4484 5148//4510 +f 5149//4511 5121//4483 5120//4482 5147//4509 +f 5147//4509 5150//4512 5151//4513 5149//4511 +f 5148//4510 5152//4514 5150//4512 5147//4509 +f 5153//4515 5126//4488 5128//4490 5154//4516 +f 5155//4517 5127//4489 5126//4488 5153//4515 +f 5153//4515 5156//4518 5157//4519 5155//4517 +f 5154//4516 5158//4520 5156//4518 5153//4515 +f 5159//4521 5132//4494 5134//4496 5160//4522 +f 5161//4523 5133//4495 5132//4494 5159//4521 +f 5159//4521 5162//4524 5163//4525 5161//4523 +f 5160//4522 5164//4526 5162//4524 5159//4521 +f 5165//4527 5138//4500 5140//4502 5166//4528 +f 5167//4529 5139//4501 5138//4500 5165//4527 +f 5165//4527 5168//4530 5169//4531 5167//4529 +f 5166//4528 5170//4532 5168//4530 5165//4527 +f 5171//4533 5144//4506 5146//4508 5172//4534 +f 5144//4506 5171//4533 5173//4535 5145//4507 +f 5171//4533 5174//4536 5175//4537 5173//4535 +f 5172//4534 5176//4538 5174//4536 5171//4533 +f 5177//4539 5150//4512 5152//4514 5178//4540 +f 5179//4541 5151//4513 5150//4512 5177//4539 +f 5177//4539 5180//4542 5181//4543 5179//4541 +f 5178//4540 5182//4544 5180//4542 5177//4539 +f 5183//4545 5156//4518 5158//4520 5184//4546 +f 5185//4547 5157//4519 5156//4518 5183//4545 +f 5183//4545 5186//4548 5187//4549 5185//4547 +f 5184//4546 5188//4550 5186//4548 5183//4545 +f 5189//4551 5162//4524 5164//4526 5190//4552 +f 5191//4553 5163//4525 5162//4524 5189//4551 +f 5189//4551 5192//4554 5193//4555 5191//4553 +f 5190//4552 5194//4556 5192//4554 5189//4551 +f 5195//4557 5168//4530 5170//4532 5196//4558 +f 5197//4559 5169//4531 5168//4530 5195//4557 +f 5195//4557 5198//4560 5199//4561 5197//4559 +f 5196//4558 5200//4562 5198//4560 5195//4557 +f 5201//4563 5174//4536 5176//4538 5202//4564 +f 5174//4536 5201//4563 5203//4565 5175//4537 +f 5201//4563 5204//4566 5205//4567 5203//4565 +f 5202//4564 5206//4568 5204//4566 5201//4563 +f 5207//4569 5180//4542 5182//4544 5208//4570 +f 5209//4571 5181//4543 5180//4542 5207//4569 +f 5207//4569 5210//4572 5211//4573 5209//4571 +f 5208//4570 5212//4574 5210//4572 5207//4569 +f 5213//4575 5186//4548 5188//4550 5214//4576 +f 5215//4577 5187//4549 5186//4548 5213//4575 +f 5213//4575 5216//4578 5217//4579 5215//4577 +f 5214//4576 5218//4580 5216//4578 5213//4575 +f 5219//4581 5192//4554 5194//4556 5220//4582 +f 5221//4583 5193//4555 5192//4554 5219//4581 +f 5219//4581 5222//4584 5223//4585 5221//4583 +f 5220//4582 5224//4586 5222//4584 5219//4581 +f 5225//4587 5198//4560 5200//4562 5226//4588 +f 5227//4589 5199//4561 5198//4560 5225//4587 +f 5225//4587 5228//4590 5229//4591 5227//4589 +f 5226//4588 5230//4592 5228//4590 5225//4587 +f 5231//4593 5204//4566 5206//4568 5232//4594 +f 5204//4566 5231//4593 5233//4595 5205//4567 +f 5231//4593 5234//4596 5235//4597 5233//4595 +f 5232//4594 5236//4598 5234//4596 5231//4593 +f 5237//4599 5210//4572 5212//4574 5238//4600 +f 5239//4601 5211//4573 5210//4572 5237//4599 +f 5237//4599 5240//4602 5241//4603 5239//4601 +f 5238//4600 5242//4604 5240//4602 5237//4599 +f 5243//4605 5216//4578 5218//4580 5244//4606 +f 5245//4607 5217//4579 5216//4578 5243//4605 +f 5243//4605 5246//4608 5247//4609 5245//4607 +f 5244//4606 5248//4610 5246//4608 5243//4605 +f 5249//4611 5222//4584 5224//4586 5250//4612 +f 5251//4613 5223//4585 5222//4584 5249//4611 +f 5249//4611 5252//4614 5253//4615 5251//4613 +f 5250//4612 5254//4616 5252//4614 5249//4611 +f 5255//4617 5228//4590 5230//4592 5256//4618 +f 5257//4619 5229//4591 5228//4590 5255//4617 +f 5255//4617 5258//4620 5259//4621 5257//4619 +f 5256//4618 5260//4622 5258//4620 5255//4617 +f 5261//4623 5234//4596 5236//4598 5262//4624 +f 5234//4596 5261//4623 5263//4625 5235//4597 +f 5261//4623 5264//4626 5265//4627 5263//4625 +f 5262//4624 5266//4628 5264//4626 5261//4623 +f 5267//4629 5240//4602 5242//4604 5268//4630 +f 5269//4631 5241//4603 5240//4602 5267//4629 +f 5267//4629 5270//4632 5271//4633 5269//4631 +f 5268//4630 5272//4634 5270//4632 5267//4629 +f 5273//4635 5246//4608 5248//4610 5274//4636 +f 5275//4637 5247//4609 5246//4608 5273//4635 +f 5273//4635 5276//4638 5277//4639 5275//4637 +f 5274//4636 5278//4640 5276//4638 5273//4635 +f 5279//4641 5252//4614 5254//4616 5280//4642 +f 5281//4643 5253//4615 5252//4614 5279//4641 +f 5279//4641 5282//4644 5283//4645 5281//4643 +f 5280//4642 5284//4646 5282//4644 5279//4641 +f 5285//4647 5258//4620 5260//4622 5286//4648 +f 5287//4649 5259//4621 5258//4620 5285//4647 +f 5285//4647 5288//4650 5289//4651 5287//4649 +f 5286//4648 5290//4652 5288//4650 5285//4647 +f 5291//4653 5264//4626 5266//4628 5292//4654 +f 5264//4626 5291//4653 5293//4655 5265//4627 +f 5291//4653 5294//4656 5295//4657 5293//4655 +f 5292//4654 5296//4658 5294//4656 5291//4653 +f 5297//4659 5270//4632 5272//4634 5298//4660 +f 5299//4661 5271//4633 5270//4632 5297//4659 +f 5297//4659 5300//4662 5301//4663 5299//4661 +f 5298//4660 5302//4664 5300//4662 5297//4659 +f 5303//4665 5276//4638 5278//4640 5304//4666 +f 5305//4667 5277//4639 5276//4638 5303//4665 +f 5303//4665 5306//4668 5307//4669 5305//4667 +f 5304//4666 5308//4670 5306//4668 5303//4665 +f 5309//4671 5282//4644 5284//4646 5310//4672 +f 5311//4673 5283//4645 5282//4644 5309//4671 +f 5309//4671 2771//2772 2770//2771 5311//4673 +f 5310//4672 2772//2773 2771//2772 5309//4671 +f 5312//4674 5288//4650 5290//4652 5313//4675 +f 5314//4676 5289//4651 5288//4650 5312//4674 +f 5312//4674 2777//2778 2776//2777 5314//4676 +f 5313//4675 2778//2779 2777//2778 5312//4674 +f 5315//4677 5294//4656 5296//4658 5316//4678 +f 5294//4656 5315//4677 5317//4679 5295//4657 +f 5315//4677 2783//2784 2782//2783 5317//4679 +f 5316//4678 2784//2785 2783//2784 5315//4677 +f 5318//4680 5300//4662 5302//4664 5319//4681 +f 5320//4682 5301//4663 5300//4662 5318//4680 +f 5318//4680 2789//2790 2788//2789 5320//4682 +f 5319//4681 2790//2791 2789//2790 5318//4680 +f 5321//4683 5306//4668 5308//4670 5322//4684 +f 5323//4685 5307//4669 5306//4668 5321//4683 +f 5321//4683 2795//2796 2794//2795 5323//4685 +f 5322//4684 2796//2797 2795//2796 5321//4683 +f 5324//4686 5325//4687 5326//4688 5327//4689 +f 5328//4690 5329//4691 5325//4687 5324//4686 +f 5324//4686 5330//4692 5331//4693 5328//4690 +f 5327//4689 5332//4694 5330//4692 5324//4686 +f 5333//4695 5334//4696 5335//4697 5336//4698 +f 5337//4699 5338//4700 5334//4696 5333//4695 +f 5333//4695 5339//4701 5340//4702 5337//4699 +f 5336//4698 5341//4703 5339//4701 5333//4695 +f 5342//4704 5343//4705 5344//4706 5345//4707 +f 5346//4708 5343//4705 5342//4704 5347//4709 +f 5342//4704 5348//4710 5349//4711 5347//4709 +f 5345//4707 5350//4712 5348//4710 5342//4704 +f 5351//4713 5352//4714 5353//4715 5354//4716 +f 5355//4717 5356//4718 5352//4714 5351//4713 +f 5351//4713 5357//4719 5358//4720 5355//4717 +f 5354//4716 5359//4721 5357//4719 5351//4713 +f 5360//4722 5361//4723 5362//4724 5363//4725 +f 5364//4726 5365//4727 5361//4723 5360//4722 +f 5360//4722 5366//4728 5367//4729 5364//4726 +f 5363//4725 5368//4730 5366//4728 5360//4722 +f 5369//4731 5370//4732 5371//4733 5372//4734 +f 5373//4735 5374//4736 5370//4732 5369//4731 +f 5369//4731 5375//4737 5376//4738 5373//4735 +f 5372//4734 5377//4739 5375//4737 5369//4731 +f 5378//4740 5379//4741 5380//4742 5381//4743 +f 5382//4744 5383//4745 5379//4741 5378//4740 +f 5378//4740 5384//4746 5385//4747 5382//4744 +f 5381//4743 5386//4748 5384//4746 5378//4740 +f 5387//4749 5388//4750 5389//4751 5390//4752 +f 5391//4753 5388//4750 5387//4749 5392//4754 +f 5387//4749 5393//4755 5394//4756 5392//4754 +f 5390//4752 5395//4757 5393//4755 5387//4749 +f 5396//4758 5397//4759 5398//4760 5399//4761 +f 5400//4762 5401//4763 5397//4759 5396//4758 +f 5396//4758 5402//4764 5403//4765 5400//4762 +f 5399//4761 5404//4766 5402//4764 5396//4758 +f 5405//4767 5406//4768 5407//4769 5408//4770 +f 5409//4771 5410//4772 5406//4768 5405//4767 +f 5405//4767 5411//4773 5412//4774 5409//4771 +f 5408//4770 5413//4775 5411//4773 5405//4767 +f 5414//4776 5375//4737 5377//4739 5415//4777 +f 5416//4778 5376//4738 5375//4737 5414//4776 +f 5414//4776 5417//4779 5418//4780 5416//4778 +f 5415//4777 5419//4781 5417//4779 5414//4776 +f 5420//4782 5384//4746 5386//4748 5421//4783 +f 5422//4784 5385//4747 5384//4746 5420//4782 +f 5420//4782 5423//4785 5424//4786 5422//4784 +f 5421//4783 5425//4787 5423//4785 5420//4782 +f 5426//4788 5393//4755 5395//4757 5427//4789 +f 5393//4755 5426//4788 5428//4790 5394//4756 +f 5426//4788 5429//4791 5430//4792 5428//4790 +f 5427//4789 5431//4793 5429//4791 5426//4788 +f 5432//4794 5402//4764 5404//4766 5433//4795 +f 5434//4796 5403//4765 5402//4764 5432//4794 +f 5432//4794 5435//4797 5436//4798 5434//4796 +f 5433//4795 5437//4799 5435//4797 5432//4794 +f 5438//4800 5411//4773 5413//4775 5439//4801 +f 5440//4802 5412//4774 5411//4773 5438//4800 +f 5438//4800 5441//4803 5442//4804 5440//4802 +f 5439//4801 5443//4805 5441//4803 5438//4800 +f 5444//4806 5417//4779 5419//4781 5445//4807 +f 5446//4808 5418//4780 5417//4779 5444//4806 +f 5444//4806 5447//4809 5448//4810 5446//4808 +f 5445//4807 5449//4811 5447//4809 5444//4806 +f 5450//4812 5423//4785 5425//4787 5451//4813 +f 5452//4814 5424//4786 5423//4785 5450//4812 +f 5450//4812 5453//4815 5454//4816 5452//4814 +f 5451//4813 5455//4817 5453//4815 5450//4812 +f 5456//4818 5429//4791 5431//4793 5457//4819 +f 5429//4791 5456//4818 5458//4820 5430//4792 +f 5456//4818 5459//4821 5460//4822 5458//4820 +f 5457//4819 5461//4823 5459//4821 5456//4818 +f 5462//4824 5435//4797 5437//4799 5463//4825 +f 5464//4826 5436//4798 5435//4797 5462//4824 +f 5462//4824 5465//4827 5466//4828 5464//4826 +f 5463//4825 5467//4829 5465//4827 5462//4824 +f 5468//4830 5441//4803 5443//4805 5469//4831 +f 5470//4832 5442//4804 5441//4803 5468//4830 +f 5468//4830 5471//4833 5472//4834 5470//4832 +f 5469//4831 5473//4835 5471//4833 5468//4830 +f 5474//4836 5447//4809 5449//4811 5475//4837 +f 5476//4838 5448//4810 5447//4809 5474//4836 +f 5474//4836 5025//4387 5029//4391 5476//4838 +f 5475//4837 5026//4388 5025//4387 5474//4836 +f 5477//4839 5453//4815 5455//4817 5478//4840 +f 5479//4841 5454//4816 5453//4815 5477//4839 +f 5477//4839 5034//4396 5038//4400 5479//4841 +f 5478//4840 5035//4397 5034//4396 5477//4839 +f 5480//4842 5459//4821 5461//4823 5481//4843 +f 5459//4821 5480//4842 5482//4844 5460//4822 +f 5480//4842 5043//4405 5046//4408 5482//4844 +f 5481//4843 5044//4406 5043//4405 5480//4842 +f 5483//4845 5465//4827 5467//4829 5484//4846 +f 5485//4847 5466//4828 5465//4827 5483//4845 +f 5483//4845 5052//4414 5056//4418 5485//4847 +f 5484//4846 5053//4415 5052//4414 5483//4845 +f 5486//4848 5471//4833 5473//4835 5487//4849 +f 5488//4850 5472//4834 5471//4833 5486//4848 +f 5486//4848 5061//4423 5065//4427 5488//4850 +f 5487//4849 5062//4424 5061//4423 5486//4848 +f 5489//4851 5490//4852 5491//4853 5492//4854 +f 5493//4855 5494//4856 5490//4852 5489//4851 +f 5489//4851 5495//4857 5496//4858 5493//4855 +f 5492//4854 5497//4859 5495//4857 5489//4851 +f 5498//4860 5499//4861 5500//4862 5501//4863 +f 5502//4864 5503//4865 5499//4861 5498//4860 +f 5498//4860 5504//4866 5505//4867 5502//4864 +f 5501//4863 5506//4868 5504//4866 5498//4860 +f 5507//4869 5508//4870 5509//4871 5510//4872 +f 5492//4854 5491//4853 5508//4870 5507//4869 +f 5507//4869 5511//4873 5497//4859 5492//4854 +f 5510//4872 5512//4874 5511//4873 5507//4869 +f 5513//4875 5514//4876 5515//4877 5516//4878 +f 5501//4863 5500//4862 5514//4876 5513//4875 +f 5513//4875 5517//4879 5506//4868 5501//4863 +f 5516//4878 5518//4880 5517//4879 5513//4875 +f 5519//4881 5520//4882 5521//4883 5522//4884 +f 5510//4872 5509//4871 5520//4882 5519//4881 +f 5519//4881 5523//4885 5512//4874 5510//4872 +f 5522//4884 5524//4886 5523//4885 5519//4881 +f 5525//4887 5526//4888 5527//4889 5528//4890 +f 5516//4878 5515//4877 5526//4888 5525//4887 +f 5525//4887 5529//4891 5518//4880 5516//4878 +f 5528//4890 5530//4892 5529//4891 5525//4887 +f 5531//4893 5532//4894 5533//4895 5534//4896 +f 5522//4884 5521//4883 5532//4894 5531//4893 +f 5531//4893 5535//4897 5524//4886 5522//4884 +f 5534//4896 5536//4898 5535//4897 5531//4893 +f 5537//4899 5538//4900 5539//4901 5540//4902 +f 5528//4890 5527//4889 5538//4900 5537//4899 +f 5537//4899 5541//4903 5530//4892 5528//4890 +f 5540//4902 5542//4904 5541//4903 5537//4899 +f 5543//4905 5544//4906 5545//4907 5546//4908 +f 5534//4896 5533//4895 5544//4906 5543//4905 +f 5543//4905 5547//4909 5536//4898 5534//4896 +f 5546//4908 5548//4910 5547//4909 5543//4905 +f 5549//4911 5550//4912 5551//4913 5552//4914 +f 5540//4902 5539//4901 5550//4912 5549//4911 +f 5549//4911 5553//4915 5542//4904 5540//4902 +f 5552//4914 5554//4916 5553//4915 5549//4911 +f 5555//4917 5556//4918 5557//4919 5558//4920 +f 5546//4908 5545//4907 5556//4918 5555//4917 +f 5555//4917 5559//4921 5548//4910 5546//4908 +f 5558//4920 5560//4922 5559//4921 5555//4917 +f 5561//4923 5562//4924 5563//4925 5564//4926 +f 5552//4914 5551//4913 5562//4924 5561//4923 +f 5561//4923 5565//4927 5554//4916 5552//4914 +f 5564//4926 5566//4928 5565//4927 5561//4923 +f 5567//4929 5568//4930 5569//4931 5570//4932 +f 5558//4920 5557//4919 5568//4930 5567//4929 +f 5567//4929 5571//4933 5560//4922 5558//4920 +f 5570//4932 5572//4934 5571//4933 5567//4929 +f 5573//4935 5574//4936 5575//4937 5576//4938 +f 5564//4926 5563//4925 5574//4936 5573//4935 +f 5573//4935 5577//4939 5566//4928 5564//4926 +f 5576//4938 5578//4940 5577//4939 5573//4935 +f 5579//4941 5580//4942 5581//4943 5582//4944 +f 5570//4932 5569//4931 5580//4942 5579//4941 +f 5579//4941 5583//4945 5572//4934 5570//4932 +f 5582//4944 5584//4946 5583//4945 5579//4941 +f 5585//4947 5586//4948 5587//4949 5588//4950 +f 5576//4938 5575//4937 5586//4948 5585//4947 +f 5585//4947 5589//4951 5578//4940 5576//4938 +f 5588//4950 5590//4952 5589//4951 5585//4947 +f 5591//4953 5592//4954 5593//4955 5594//4956 +f 5582//4944 5581//4943 5592//4954 5591//4953 +f 5591//4953 5595//4957 5584//4946 5582//4944 +f 5594//4956 5596//4958 5595//4957 5591//4953 +f 5597//4959 5598//4960 5599//4961 5600//4962 +f 5588//4950 5587//4949 5598//4960 5597//4959 +f 5597//4959 5601//4963 5590//4952 5588//4950 +f 5600//4962 5602//4964 5601//4963 5597//4959 +f 5603//4965 5604//4966 3078//3080 3077//3079 +f 5594//4956 5593//4955 5604//4966 5603//4965 +f 5603//4965 5605//4967 5596//4958 5594//4956 +f 3077//3079 3081//3083 5605//4967 5603//4965 +f 5606//4968 5607//4969 3084//3086 3083//3085 +f 5600//4962 5599//4961 5607//4969 5606//4968 +f 5606//4968 5608//4970 5602//4964 5600//4962 +f 3083//3085 3087//3089 5608//4970 5606//4968 +f 5609//4971 5610//4972 5611//4973 5612//4974 +f 5613//4975 5614//4976 5610//4972 5609//4971 +f 5609//4971 5615//4977 5616//4978 5613//4975 +f 5612//4974 5617//4979 5615//4977 5609//4971 +f 5618//4980 5619//4981 5620//4982 5621//4983 +f 5622//4984 5623//4985 5619//4981 5618//4980 +f 5618//4980 5624//4986 5625//4987 5622//4984 +f 5621//4983 5626//4988 5624//4986 5618//4980 +f 5627//4989 5628//4990 5629//4991 5630//4992 +f 5612//4974 5611//4973 5628//4990 5627//4989 +f 5627//4989 5631//4993 5617//4979 5612//4974 +f 5630//4992 5632//4994 5631//4993 5627//4989 +f 5633//4995 5634//4996 5635//4997 5636//4998 +f 5621//4983 5620//4982 5634//4996 5633//4995 +f 5633//4995 5637//4999 5626//4988 5621//4983 +f 5636//4998 5638//5000 5637//4999 5633//4995 +f 5639//5001 5640//5002 5641//5003 5642//5004 +f 5630//4992 5629//4991 5640//5002 5639//5001 +f 5639//5001 5643//5005 5632//4994 5630//4992 +f 5642//5004 5644//5006 5643//5005 5639//5001 +f 5645//5007 5646//5008 5647//5009 5648//5010 +f 5636//4998 5635//4997 5646//5008 5645//5007 +f 5645//5007 5649//5011 5638//5000 5636//4998 +f 5648//5010 5650//5012 5649//5011 5645//5007 +f 5651//5013 5652//5014 5653//5015 5654//5016 +f 5642//5004 5641//5003 5652//5014 5651//5013 +f 5651//5013 5655//5017 5644//5006 5642//5004 +f 5654//5016 5656//5018 5655//5017 5651//5013 +f 5657//5019 5658//5020 5659//5021 5660//5022 +f 5648//5010 5647//5009 5658//5020 5657//5019 +f 5657//5019 5661//5023 5650//5012 5648//5010 +f 5660//5022 5662//5024 5661//5023 5657//5019 +f 5663//5025 5664//5026 5494//4856 5493//4855 +f 5654//5016 5653//5015 5664//5026 5663//5025 +f 5663//5025 5665//5027 5656//5018 5654//5016 +f 5493//4855 5496//4858 5665//5027 5663//5025 +f 5666//5028 5667//5029 5503//4865 5502//4864 +f 5660//5022 5659//5021 5667//5029 5666//5028 +f 5666//5028 5668//5030 5662//5024 5660//5022 +f 5502//4864 5505//4867 5668//5030 5666//5028 +f 5669//5031 5495//4857 5497//4859 5670//5032 +f 5671//5033 5496//4858 5495//4857 5669//5031 +f 5669//5031 5045//4407 5044//4406 5671//5033 +f 5670//5032 5050//4412 5045//4407 5669//5031 +f 5672//5034 5511//4873 5512//4874 5673//5035 +f 5670//5032 5497//4859 5511//4873 5672//5034 +f 5672//5034 5082//4444 5050//4412 5670//5032 +f 5673//5035 5086//4448 5082//4444 5672//5034 +f 5674//5036 5523//4885 5524//4886 5675//5037 +f 5673//5035 5512//4874 5523//4885 5674//5036 +f 5674//5036 5112//4474 5086//4448 5673//5035 +f 5675//5037 5116//4478 5112//4474 5674//5036 +f 5676//5038 5535//4897 5536//4898 5677//5039 +f 5675//5037 5524//4886 5535//4897 5676//5038 +f 5676//5038 5142//4504 5116//4478 5675//5037 +f 5677//5039 5146//4508 5142//4504 5676//5038 +f 5678//5040 5547//4909 5548//4910 5679//5041 +f 5677//5039 5536//4898 5547//4909 5678//5040 +f 5678//5040 5172//4534 5146//4508 5677//5039 +f 5679//5041 5176//4538 5172//4534 5678//5040 +f 5680//5042 5559//4921 5560//4922 5681//5043 +f 5679//5041 5548//4910 5559//4921 5680//5042 +f 5680//5042 5202//4564 5176//4538 5679//5041 +f 5681//5043 5206//4568 5202//4564 5680//5042 +f 5682//5044 5571//4933 5572//4934 5683//5045 +f 5681//5043 5560//4922 5571//4933 5682//5044 +f 5682//5044 5232//4594 5206//4568 5681//5043 +f 5683//5045 5236//4598 5232//4594 5682//5044 +f 5684//5046 5583//4945 5584//4946 5685//5047 +f 5683//5045 5572//4934 5583//4945 5684//5046 +f 5684//5046 5262//4624 5236//4598 5683//5045 +f 5685//5047 5266//4628 5262//4624 5684//5046 +f 5686//5048 5595//4957 5596//4958 5687//5049 +f 5685//5047 5584//4946 5595//4957 5686//5048 +f 5686//5048 5292//4654 5266//4628 5685//5047 +f 5687//5049 5296//4658 5292//4654 5686//5048 +f 5688//5050 5605//4967 3081//3083 3168//3170 +f 5687//5049 5596//4958 5605//4967 5688//5050 +f 5688//5050 5316//4678 5296//4658 5687//5049 +f 3168//3170 2784//2785 5316//4678 5688//5050 +f 5689//5051 5615//4977 5617//4979 5690//5052 +f 5691//5053 5616//4978 5615//4977 5689//5051 +f 5689//5051 5692//5054 5350//4712 5691//5053 +f 5690//5052 5389//4751 5692//5054 5689//5051 +f 5693//5055 5631//4993 5632//4994 5694//5056 +f 5690//5052 5617//4979 5631//4993 5693//5055 +f 5693//5055 5390//4752 5389//4751 5690//5052 +f 5694//5056 5395//4757 5390//4752 5693//5055 +f 5695//5057 5643//5005 5644//5006 5696//5058 +f 5694//5056 5632//4994 5643//5005 5695//5057 +f 5695//5057 5427//4789 5395//4757 5694//5056 +f 5696//5058 5431//4793 5427//4789 5695//5057 +f 5697//5059 5655//5017 5656//5018 5698//5060 +f 5696//5058 5644//5006 5655//5017 5697//5059 +f 5697//5059 5457//4819 5431//4793 5696//5058 +f 5698//5060 5461//4823 5457//4819 5697//5059 +f 5699//5061 5665//5027 5496//4858 5671//5033 +f 5698//5060 5656//5018 5665//5027 5699//5061 +f 5699//5061 5481//4843 5461//4823 5698//5060 +f 5671//5033 5044//4406 5481//4843 5699//5061 +f 5700//5062 5701//5063 5702//5064 5703//5065 +f 5704//5066 5705//5067 5701//5063 5700//5062 +f 5700//5062 5706//5068 5707//5069 5704//5066 +f 5703//5065 5708//5070 5706//5068 5700//5062 +f 5709//5071 5706//5068 5708//5070 5710//5072 +f 5711//5073 5707//5069 5706//5068 5709//5071 +f 5709//5071 5712//5074 5713//5075 5711//5073 +f 5710//5072 5714//5076 5712//5074 5709//5071 +f 5715//5077 5712//5074 5714//5076 5716//5078 +f 5717//5079 5713//5075 5712//5074 5715//5077 +f 5715//5077 5718//5080 5719//5081 5717//5079 +f 5716//5078 5720//5082 5718//5080 5715//5077 +f 5721//5083 5718//5080 5720//5082 5722//5084 +f 5723//5085 5719//5081 5718//5080 5721//5083 +f 5721//5083 5724//5086 5725//5087 5723//5085 +f 5722//5084 5726//5088 5724//5086 5721//5083 +f 5727//5089 5724//5086 5726//5088 5728//5090 +f 5729//5091 5725//5087 5724//5086 5727//5089 +f 5727//5089 5730//5092 5731//5093 5729//5091 +f 5728//5090 5732//5094 5730//5092 5727//5089 +f 5733//5095 5730//5092 5732//5094 5734//5096 +f 5735//5097 5731//5093 5730//5092 5733//5095 +f 5733//5095 5736//5098 5737//5099 5735//5097 +f 5734//5096 5738//5100 5736//5098 5733//5095 +f 5739//5101 5736//5098 5738//5100 5740//5102 +f 5741//5103 5737//5099 5736//5098 5739//5101 +f 5739//5101 5742//5104 5743//5105 5741//5103 +f 5740//5102 5744//5106 5742//5104 5739//5101 +f 5745//5107 5742//5104 5744//5106 5746//5108 +f 5747//5109 5743//5105 5742//5104 5745//5107 +f 5745//5107 5748//5110 5749//5111 5747//5109 +f 5746//5108 5750//5112 5748//5110 5745//5107 +f 5751//5113 5748//5110 5750//5112 5752//5114 +f 5753//5115 5749//5111 5748//5110 5751//5113 +f 5751//5113 5754//5116 5755//5117 5753//5115 +f 5752//5114 5756//5118 5754//5116 5751//5113 +f 5757//5119 5754//5116 5756//5118 5758//5120 +f 5759//5121 5755//5117 5754//5116 5757//5119 +f 5757//5119 3241//3243 3240//3242 5759//5121 +f 5758//5120 3242//3244 3241//3243 5757//5119 +f 5760//5122 5761//5123 5762//5124 5763//5125 +f 5764//5126 5765//5127 5761//5123 5760//5122 +f 5760//5122 5766//5128 5767//5129 5764//5126 +f 5763//5125 5768//5130 5766//5128 5760//5122 +f 5769//5131 5770//5132 5771//5133 5772//5134 +f 5773//5135 5774//5136 5770//5132 5769//5131 +f 5769//5131 5775//5137 5776//5138 5773//5135 +f 5772//5134 5777//5139 5775//5137 5769//5131 +f 5778//5140 5775//5137 5777//5139 5779//5141 +f 5780//5142 5776//5138 5775//5137 5778//5140 +f 5778//5140 5781//5143 5782//5144 5780//5142 +f 5779//5141 5783//5145 5781//5143 5778//5140 +f 5784//5146 5781//5143 5783//5145 5785//5147 +f 5786//5148 5782//5144 5781//5143 5784//5146 +f 5784//5146 5787//5149 5788//5150 5786//5148 +f 5785//5147 5789//5151 5787//5149 5784//5146 +f 5790//5152 5787//5149 5789//5151 5791//5153 +f 5792//5154 5788//5150 5787//5149 5790//5152 +f 5790//5152 5701//5063 5705//5067 5792//5154 +f 5791//5153 5702//5064 5701//5063 5790//5152 +f 5793//5155 5794//5156 5795//5157 5796//5158 +f 5063//4425 5062//4424 5794//5156 5793//5155 +f 5793//5155 5797//5159 5068//4430 5063//4425 +f 5796//5158 5798//5160 5797//5159 5793//5155 +f 5799//5161 5797//5159 5798//5160 5800//5162 +f 5094//4456 5068//4430 5797//5159 5799//5161 +f 5799//5161 5801//5163 5098//4460 5094//4456 +f 5800//5162 5802//5164 5801//5163 5799//5161 +f 5803//5165 5801//5163 5802//5164 5804//5166 +f 5124//4486 5098//4460 5801//5163 5803//5165 +f 5803//5165 5805//5167 5128//4490 5124//4486 +f 5804//5166 5806//5168 5805//5167 5803//5165 +f 5807//5169 5805//5167 5806//5168 5808//5170 +f 5154//4516 5128//4490 5805//5167 5807//5169 +f 5807//5169 5809//5171 5158//4520 5154//4516 +f 5808//5170 5810//5172 5809//5171 5807//5169 +f 5811//5173 5809//5171 5810//5172 5812//5174 +f 5184//4546 5158//4520 5809//5171 5811//5173 +f 5811//5173 5813//5175 5188//4550 5184//4546 +f 5812//5174 5814//5176 5813//5175 5811//5173 +f 5815//5177 5813//5175 5814//5176 5816//5178 +f 5214//4576 5188//4550 5813//5175 5815//5177 +f 5815//5177 5817//5179 5218//4580 5214//4576 +f 5816//5178 5818//5180 5817//5179 5815//5177 +f 5819//5181 5817//5179 5818//5180 5820//5182 +f 5244//4606 5218//4580 5817//5179 5819//5181 +f 5819//5181 5821//5183 5248//4610 5244//4606 +f 5820//5182 5822//5184 5821//5183 5819//5181 +f 5823//5185 5821//5183 5822//5184 5824//5186 +f 5274//4636 5248//4610 5821//5183 5823//5185 +f 5823//5185 5825//5187 5278//4640 5274//4636 +f 5824//5186 5826//5188 5825//5187 5823//5185 +f 5827//5189 5825//5187 5826//5188 5828//5190 +f 5304//4666 5278//4640 5825//5187 5827//5189 +f 5827//5189 5829//5191 5308//4670 5304//4666 +f 5828//5190 5830//5192 5829//5191 5827//5189 +f 5831//5193 5829//5191 5830//5192 5832//5194 +f 5322//4684 5308//4670 5829//5191 5831//5193 +f 5831//5193 3316//3318 2796//2797 5322//4684 +f 5832//5194 3317//3319 3316//3318 5831//5193 +f 5833//5195 5834//5196 5835//5197 5836//5198 +f 5363//4725 5362//4724 5834//5196 5833//5195 +f 5833//5195 5837//5199 5368//4730 5363//4725 +f 5836//5198 5838//5200 5837//5199 5833//5195 +f 5839//5201 5840//5202 5841//5203 5842//5204 +f 5408//4770 5407//4769 5840//5202 5839//5201 +f 5839//5201 5843//5205 5413//4775 5408//4770 +f 5842//5204 5844//5206 5843//5205 5839//5201 +f 5845//5207 5843//5205 5844//5206 5846//5208 +f 5439//4801 5413//4775 5843//5205 5845//5207 +f 5845//5207 5847//5209 5443//4805 5439//4801 +f 5846//5208 5848//5210 5847//5209 5845//5207 +f 5849//5211 5847//5209 5848//5210 5850//5212 +f 5469//4831 5443//4805 5847//5209 5849//5211 +f 5849//5211 5851//5213 5473//4835 5469//4831 +f 5850//5212 5852//5214 5851//5213 5849//5211 +f 5853//5215 5851//5213 5852//5214 5854//5216 +f 5487//4849 5473//4835 5851//5213 5853//5215 +f 5853//5215 5794//5156 5062//4424 5487//4849 +f 5854//5216 5795//5157 5794//5156 5853//5215 +f 5855//5217 5856//5218 5065//4427 5064//4426 +f 5857//5219 5858//5220 5856//5218 5855//5217 +f 5855//5217 5859//5221 5860//5222 5857//5219 +f 5064//4426 5067//4429 5859//5221 5855//5217 +f 5861//5223 5859//5221 5067//4429 5095//4457 +f 5862//5224 5860//5222 5859//5221 5861//5223 +f 5861//5223 5863//5225 5864//5226 5862//5224 +f 5095//4457 5097//4459 5863//5225 5861//5223 +f 5865//5227 5863//5225 5097//4459 5125//4487 +f 5866//5228 5864//5226 5863//5225 5865//5227 +f 5865//5227 5867//5229 5868//5230 5866//5228 +f 5125//4487 5127//4489 5867//5229 5865//5227 +f 5869//5231 5867//5229 5127//4489 5155//4517 +f 5870//5232 5868//5230 5867//5229 5869//5231 +f 5869//5231 5871//5233 5872//5234 5870//5232 +f 5155//4517 5157//4519 5871//5233 5869//5231 +f 5873//5235 5871//5233 5157//4519 5185//4547 +f 5874//5236 5872//5234 5871//5233 5873//5235 +f 5873//5235 5875//5237 5876//5238 5874//5236 +f 5185//4547 5187//4549 5875//5237 5873//5235 +f 5877//5239 5875//5237 5187//4549 5215//4577 +f 5878//5240 5876//5238 5875//5237 5877//5239 +f 5877//5239 5879//5241 5880//5242 5878//5240 +f 5215//4577 5217//4579 5879//5241 5877//5239 +f 5881//5243 5879//5241 5217//4579 5245//4607 +f 5882//5244 5880//5242 5879//5241 5881//5243 +f 5881//5243 5883//5245 5884//5246 5882//5244 +f 5245//4607 5247//4609 5883//5245 5881//5243 +f 5885//5247 5883//5245 5247//4609 5275//4637 +f 5886//5248 5884//5246 5883//5245 5885//5247 +f 5885//5247 5887//5249 5888//5250 5886//5248 +f 5275//4637 5277//4639 5887//5249 5885//5247 +f 5889//5251 5887//5249 5277//4639 5305//4667 +f 5890//5252 5888//5250 5887//5249 5889//5251 +f 5889//5251 5891//5253 5892//5254 5890//5252 +f 5305//4667 5307//4669 5891//5253 5889//5251 +f 5893//5255 5891//5253 5307//4669 5323//4685 +f 5894//5256 5892//5254 5891//5253 5893//5255 +f 5893//5255 3381//3383 3380//3382 5894//5256 +f 5323//4685 2794//2795 3381//3383 5893//5255 +f 5895//5257 5896//5258 5365//4727 5364//4726 +f 5897//5259 5898//5260 5896//5258 5895//5257 +f 5895//5257 5899//5261 5900//5262 5897//5259 +f 5364//4726 5367//4729 5899//5261 5895//5257 +f 5901//5263 5902//5264 5410//4772 5409//4771 +f 5903//5265 5904//5266 5902//5264 5901//5263 +f 5901//5263 5905//5267 5906//5268 5903//5265 +f 5409//4771 5412//4774 5905//5267 5901//5263 +f 5907//5269 5905//5267 5412//4774 5440//4802 +f 5908//5270 5906//5268 5905//5267 5907//5269 +f 5907//5269 5909//5271 5910//5272 5908//5270 +f 5440//4802 5442//4804 5909//5271 5907//5269 +f 5911//5273 5909//5271 5442//4804 5470//4832 +f 5912//5274 5910//5272 5909//5271 5911//5273 +f 5911//5273 5913//5275 5914//5276 5912//5274 +f 5470//4832 5472//4834 5913//5275 5911//5273 +f 5915//5277 5913//5275 5472//4834 5488//4850 +f 5916//5278 5914//5276 5913//5275 5915//5277 +f 5915//5277 5856//5218 5858//5220 5916//5278 +f 5488//4850 5065//4427 5856//5218 5915//5277 +f 5917//5279 5918//5280 5919//5281 5920//5282 +f 5490//4852 5494//4856 5918//5280 5917//5279 +f 5917//5279 5921//5283 5491//4853 5490//4852 +f 5920//5282 5922//5284 5921//5283 5917//5279 +f 5923//5285 5921//5283 5922//5284 5924//5286 +f 5508//4870 5491//4853 5921//5283 5923//5285 +f 5923//5285 5925//5287 5509//4871 5508//4870 +f 5924//5286 5926//5288 5925//5287 5923//5285 +f 5927//5289 5925//5287 5926//5288 5928//5290 +f 5520//4882 5509//4871 5925//5287 5927//5289 +f 5927//5289 5929//5291 5521//4883 5520//4882 +f 5928//5290 5930//5292 5929//5291 5927//5289 +f 5931//5293 5929//5291 5930//5292 5932//5294 +f 5532//4894 5521//4883 5929//5291 5931//5293 +f 5931//5293 5933//5295 5533//4895 5532//4894 +f 5932//5294 5934//5296 5933//5295 5931//5293 +f 5935//5297 5933//5295 5934//5296 5936//5298 +f 5544//4906 5533//4895 5933//5295 5935//5297 +f 5935//5297 5937//5299 5545//4907 5544//4906 +f 5936//5298 5938//5300 5937//5299 5935//5297 +f 5939//5301 5937//5299 5938//5300 5940//5302 +f 5556//4918 5545//4907 5937//5299 5939//5301 +f 5939//5301 5941//5303 5557//4919 5556//4918 +f 5940//5302 5942//5304 5941//5303 5939//5301 +f 5943//5305 5941//5303 5942//5304 5944//5306 +f 5568//4930 5557//4919 5941//5303 5943//5305 +f 5943//5305 5945//5307 5569//4931 5568//4930 +f 5944//5306 5946//5308 5945//5307 5943//5305 +f 5947//5309 5945//5307 5946//5308 5948//5310 +f 5580//4942 5569//4931 5945//5307 5947//5309 +f 5947//5309 5949//5311 5581//4943 5580//4942 +f 5948//5310 5950//5312 5949//5311 5947//5309 +f 5951//5313 5949//5311 5950//5312 5952//5314 +f 5592//4954 5581//4943 5949//5311 5951//5313 +f 5951//5313 5953//5315 5593//4955 5592//4954 +f 5952//5314 5954//5316 5953//5315 5951//5313 +f 5955//5317 5953//5315 5954//5316 5956//5318 +f 5604//4966 5593//4955 5953//5315 5955//5317 +f 5955//5317 3444//3446 3078//3080 5604//4966 +f 5956//5318 3445//3447 3444//3446 5955//5317 +f 5957//5319 5958//5320 5959//5321 5960//5322 +f 5961//5323 5962//5324 5958//5320 5957//5319 +f 5957//5319 5963//5325 5614//4976 5961//5323 +f 5960//5322 5964//5326 5963//5325 5957//5319 +f 5965//5327 5966//5328 5967//5329 5968//5330 +f 5628//4990 5611//4973 5966//5328 5965//5327 +f 5965//5327 5969//5331 5629//4991 5628//4990 +f 5968//5330 5970//5332 5969//5331 5965//5327 +f 5971//5333 5969//5331 5970//5332 5972//5334 +f 5640//5002 5629//4991 5969//5331 5971//5333 +f 5971//5333 5973//5335 5641//5003 5640//5002 +f 5972//5334 5974//5336 5973//5335 5971//5333 +f 5975//5337 5973//5335 5974//5336 5976//5338 +f 5652//5014 5641//5003 5973//5335 5975//5337 +f 5975//5337 5977//5339 5653//5015 5652//5014 +f 5976//5338 5978//5340 5977//5339 5975//5337 +f 5979//5341 5977//5339 5978//5340 5980//5342 +f 5664//5026 5653//5015 5977//5339 5979//5341 +f 5979//5341 5918//5280 5494//4856 5664//5026 +f 5980//5342 5919//5281 5918//5280 5979//5341 +f 5981//5343 5982//5344 5983//5345 5984//5346 +f 5985//5347 5986//5348 5982//5344 5981//5343 +f 5981//5343 5987//5349 5988//5350 5985//5347 +f 5984//5346 5989//5351 5987//5349 5981//5343 +f 5990//5352 5987//5349 5989//5351 5991//5353 +f 5992//5354 5988//5350 5987//5349 5990//5352 +f 5990//5352 5993//5355 5994//5356 5992//5354 +f 5991//5353 5995//5357 5993//5355 5990//5352 +f 5996//5358 5993//5355 5995//5357 5997//5359 +f 5998//5360 5994//5356 5993//5355 5996//5358 +f 5996//5358 5999//5361 6000//5362 5998//5360 +f 5997//5359 6001//5363 5999//5361 5996//5358 +f 6002//5364 5999//5361 6001//5363 6003//5365 +f 6004//5366 6000//5362 5999//5361 6002//5364 +f 6002//5364 6005//5367 6006//5368 6004//5366 +f 6003//5365 6007//5369 6005//5367 6002//5364 +f 6008//5370 6005//5367 6007//5369 6009//5371 +f 6010//5372 6006//5368 6005//5367 6008//5370 +f 6008//5370 6011//5373 6012//5374 6010//5372 +f 6009//5371 6013//5375 6011//5373 6008//5370 +f 6014//5376 6011//5373 6013//5375 6015//5377 +f 6016//5378 6012//5374 6011//5373 6014//5376 +f 6014//5376 6017//5379 6018//5380 6016//5378 +f 6015//5377 6019//5381 6017//5379 6014//5376 +f 6020//5382 6017//5379 6019//5381 6021//5383 +f 6022//5384 6018//5380 6017//5379 6020//5382 +f 6020//5382 6023//5385 6024//5386 6022//5384 +f 6021//5383 6025//5387 6023//5385 6020//5382 +f 6026//5388 6023//5385 6025//5387 6027//5389 +f 6028//5390 6024//5386 6023//5385 6026//5388 +f 6026//5388 6029//5391 6030//5392 6028//5390 +f 6027//5389 6031//5393 6029//5391 6026//5388 +f 6032//5394 6029//5391 6031//5393 6033//5395 +f 6034//5396 6030//5392 6029//5391 6032//5394 +f 6032//5394 6035//5397 6036//5398 6034//5396 +f 6033//5395 6037//5399 6035//5397 6032//5394 +f 6038//5400 6035//5397 6037//5399 6039//5401 +f 6040//5402 6036//5398 6035//5397 6038//5400 +f 6038//5400 3531//3533 3530//3532 6040//5402 +f 6039//5401 3532//3534 3531//3533 6038//5400 +f 6041//5403 6042//5404 6043//5405 6044//5406 +f 6045//5407 6046//5408 6042//5404 6041//5403 +f 6041//5403 6047//5409 6048//5410 6045//5407 +f 6044//5406 6049//5411 6047//5409 6041//5403 +f 6050//5412 6051//5413 6052//5414 6053//5415 +f 6054//5416 6055//5417 6051//5413 6050//5412 +f 6050//5412 6056//5418 6057//5419 6054//5416 +f 6053//5415 6058//5420 6056//5418 6050//5412 +f 6059//5421 6056//5418 6058//5420 6060//5422 +f 6061//5423 6057//5419 6056//5418 6059//5421 +f 6059//5421 6062//5424 6063//5425 6061//5423 +f 6060//5422 6064//5426 6062//5424 6059//5421 +f 6065//5427 6062//5424 6064//5426 6066//5428 +f 6067//5429 6063//5425 6062//5424 6065//5427 +f 6065//5427 6068//5430 6069//5431 6067//5429 +f 6066//5428 6070//5432 6068//5430 6065//5427 +f 6071//5433 6068//5430 6070//5432 6072//5434 +f 6073//5435 6069//5431 6068//5430 6071//5433 +f 6071//5433 5982//5344 5986//5348 6073//5435 +f 6072//5434 5983//5345 5982//5344 6071//5433 +f 6074//5436 6075//5437 5038//4400 5037//4399 +f 6076//3570 6077//3570 6075//5437 6074//5436 +f 6074//5436 6078//5438 6079//3570 6076//3570 +f 5037//4399 5040//4402 6078//5438 6074//5436 +f 6080//5439 6078//5438 5040//4402 5077//4439 +f 6081//3570 6079//3570 6078//5438 6080//5439 +f 6080//5439 6082//5440 6083//3570 6081//3570 +f 5077//4439 5079//4441 6082//5440 6080//5439 +f 6084//5441 6082//5440 5079//4441 5107//4469 +f 6085//3570 6083//3570 6082//5440 6084//5441 +f 6084//5441 6086//5442 6087//3570 6085//3570 +f 5107//4469 5109//4471 6086//5442 6084//5441 +f 6088//5443 6086//5442 5109//4471 5137//4499 +f 6089//3570 6087//3570 6086//5442 6088//5443 +f 6088//5443 6090//5444 6091//3570 6089//3570 +f 5137//4499 5139//4501 6090//5444 6088//5443 +f 6092//5445 6090//5444 5139//4501 5167//4529 +f 6093//3570 6091//3570 6090//5444 6092//5445 +f 6092//5445 6094//5446 6095//3570 6093//3570 +f 5167//4529 5169//4531 6094//5446 6092//5445 +f 6096//5447 6094//5446 5169//4531 5197//4559 +f 6097//3570 6095//3570 6094//5446 6096//5447 +f 6096//5447 6098//5448 6099//3570 6097//3570 +f 5197//4559 5199//4561 6098//5448 6096//5447 +f 6100//5449 6098//5448 5199//4561 5227//4589 +f 6101//3570 6099//3570 6098//5448 6100//5449 +f 6100//5449 6102//5450 6103//3570 6101//3570 +f 5227//4589 5229//4591 6102//5450 6100//5449 +f 6104//5451 6102//5450 5229//4591 5257//4619 +f 6105//3570 6103//3570 6102//5450 6104//5451 +f 6104//5451 6106//5452 6107//3570 6105//3570 +f 5257//4619 5259//4621 6106//5452 6104//5451 +f 6108//5453 6106//5452 5259//4621 5287//4649 +f 6109//3570 6107//3570 6106//5452 6108//5453 +f 6108//5453 6110//5454 6111//3570 6109//3570 +f 5287//4649 5289//4651 6110//5454 6108//5453 +f 6112//5455 6110//5454 5289//4651 5314//4676 +f 6113//3570 6111//3570 6110//5454 6112//5455 +f 6112//5455 3607//3589 3606//3570 6113//3570 +f 5314//4676 2776//2777 3607//3589 6112//5455 +f 6114//5456 6115//5457 5338//4700 5337//4699 +f 6116//5458 6117//5459 6115//5457 6114//5456 +f 6114//5456 6118//5460 6119//5461 6116//5458 +f 5337//4699 5340//4702 6118//5460 6114//5456 +f 6120//5462 6121//5463 5383//4745 5382//4744 +f 6122//3570 6123//3570 6121//5463 6120//5462 +f 6120//5462 6124//5464 6125//3570 6122//3570 +f 5382//4744 5385//4747 6124//5464 6120//5462 +f 6126//5465 6124//5464 5385//4747 5422//4784 +f 6127//3570 6125//3570 6124//5464 6126//5465 +f 6126//5465 6128//5466 6129//3570 6127//3570 +f 5422//4784 5424//4786 6128//5466 6126//5465 +f 6130//5467 6128//5466 5424//4786 5452//4814 +f 6131//3570 6129//3570 6128//5466 6130//5467 +f 6130//5467 6132//5468 6133//3570 6131//3570 +f 5452//4814 5454//4816 6132//5468 6130//5467 +f 6134//5469 6132//5468 5454//4816 5479//4841 +f 6135//3570 6133//3570 6132//5468 6134//5469 +f 6134//5469 6075//5437 6077//3570 6135//3570 +f 5479//4841 5038//4400 6075//5437 6134//5469 +f 6136//5470 6137//5471 6138//5472 6139//5473 +f 5036//4398 5035//4397 6137//5471 6136//5470 +f 6136//5470 6140//5474 5041//4403 5036//4398 +f 6139//5473 6141//5475 6140//5474 6136//5470 +f 6142//5476 6140//5474 6141//5475 6143//5477 +f 5076//4438 5041//4403 6140//5474 6142//5476 +f 6142//5476 6144//5478 5080//4442 5076//4438 +f 6143//5477 6145//5479 6144//5478 6142//5476 +f 6146//5480 6144//5478 6145//5479 6147//5481 +f 5106//4468 5080//4442 6144//5478 6146//5480 +f 6146//5480 6148//5482 5110//4472 5106//4468 +f 6147//5481 6149//5483 6148//5482 6146//5480 +f 6150//5484 6148//5482 6149//5483 6151//5485 +f 5136//4498 5110//4472 6148//5482 6150//5484 +f 6150//5484 6152//5486 5140//4502 5136//4498 +f 6151//5485 6153//5487 6152//5486 6150//5484 +f 6154//5488 6152//5486 6153//5487 6155//5489 +f 5166//4528 5140//4502 6152//5486 6154//5488 +f 6154//5488 6156//5490 5170//4532 5166//4528 +f 6155//5489 6157//5491 6156//5490 6154//5488 +f 6158//5492 6156//5490 6157//5491 6159//5493 +f 5196//4558 5170//4532 6156//5490 6158//5492 +f 6158//5492 6160//5494 5200//4562 5196//4558 +f 6159//5493 6161//5495 6160//5494 6158//5492 +f 6162//5496 6160//5494 6161//5495 6163//5497 +f 5226//4588 5200//4562 6160//5494 6162//5496 +f 6162//5496 6164//5498 5230//4592 5226//4588 +f 6163//5497 6165//5499 6164//5498 6162//5496 +f 6166//5500 6164//5498 6165//5499 6167//5501 +f 5256//4618 5230//4592 6164//5498 6166//5500 +f 6166//5500 6168//5502 5260//4622 5256//4618 +f 6167//5501 6169//5503 6168//5502 6166//5500 +f 6170//5504 6168//5502 6169//5503 6171//5505 +f 5286//4648 5260//4622 6168//5502 6170//5504 +f 6170//5504 6172//5506 5290//4652 5286//4648 +f 6171//5505 6173//5507 6172//5506 6170//5504 +f 6174//5508 6172//5506 6173//5507 6175//5509 +f 5313//4675 5290//4652 6172//5506 6174//5508 +f 6174//5508 3670//3644 2778//2779 5313//4675 +f 6175//5509 3671//3645 3670//3644 6174//5508 +f 6176//5510 6177//5511 6178//5512 6179//5513 +f 5336//4698 5335//4697 6177//5511 6176//5510 +f 6176//5510 6180//5514 5341//4703 5336//4698 +f 6179//5513 6181//5515 6180//5514 6176//5510 +f 6182//5516 6183//5517 6184//5518 6185//5519 +f 5381//4743 5380//4742 6183//5517 6182//5516 +f 6182//5516 6186//5520 5386//4748 5381//4743 +f 6185//5519 6187//5521 6186//5520 6182//5516 +f 6188//5522 6186//5520 6187//5521 6189//5523 +f 5421//4783 5386//4748 6186//5520 6188//5522 +f 6188//5522 6190//5524 5425//4787 5421//4783 +f 6189//5523 6191//5525 6190//5524 6188//5522 +f 6192//5526 6190//5524 6191//5525 6193//5527 +f 5451//4813 5425//4787 6190//5524 6192//5526 +f 6192//5526 6194//5528 5455//4817 5451//4813 +f 6193//5527 6195//5529 6194//5528 6192//5526 +f 6196//5530 6194//5528 6195//5529 6197//5531 +f 5478//4840 5455//4817 6194//5528 6196//5530 +f 6196//5530 6137//5471 5035//4397 5478//4840 +f 6197//5531 6138//5472 6137//5471 6196//5530 +f 6198//5532 6199//5533 6077//3570 6076//3570 +f 5984//5346 5983//5345 6199//5533 6198//5532 +f 6198//5532 6200//5534 5989//5351 5984//5346 +f 6076//3570 6079//3570 6200//5534 6198//5532 +f 6201//5535 6200//5534 6079//3570 6081//3570 +f 5991//5353 5989//5351 6200//5534 6201//5535 +f 6201//5535 6202//5536 5995//5357 5991//5353 +f 6081//3570 6083//3570 6202//5536 6201//5535 +f 6203//5537 6202//5536 6083//3570 6085//3570 +f 5997//5359 5995//5357 6202//5536 6203//5537 +f 6203//5537 6204//5538 6001//5363 5997//5359 +f 6085//3570 6087//3570 6204//5538 6203//5537 +f 6205//5539 6204//5538 6087//3570 6089//3570 +f 6003//5365 6001//5363 6204//5538 6205//5539 +f 6205//5539 6206//5540 6007//5369 6003//5365 +f 6089//3570 6091//3570 6206//5540 6205//5539 +f 6207//5541 6206//5540 6091//3570 6093//3570 +f 6009//5371 6007//5369 6206//5540 6207//5541 +f 6207//5541 6208//5542 6013//5375 6009//5371 +f 6093//3570 6095//3570 6208//5542 6207//5541 +f 6209//5543 6208//5542 6095//3570 6097//3570 +f 6015//5377 6013//5375 6208//5542 6209//5543 +f 6209//5543 6210//5544 6019//5381 6015//5377 +f 6097//3570 6099//3570 6210//5544 6209//5543 +f 6211//5545 6210//5544 6099//3570 6101//3570 +f 6021//5383 6019//5381 6210//5544 6211//5545 +f 6211//5545 6212//5546 6025//5387 6021//5383 +f 6101//3570 6103//3570 6212//5546 6211//5545 +f 6213//5547 6212//5546 6103//3570 6105//3570 +f 6027//5389 6025//5387 6212//5546 6213//5547 +f 6213//5547 6214//5548 6031//5393 6027//5389 +f 6105//3570 6107//3570 6214//5548 6213//5547 +f 6215//5549 6214//5548 6107//3570 6109//3570 +f 6033//5395 6031//5393 6214//5548 6215//5549 +f 6215//5549 6216//5550 6037//5399 6033//5395 +f 6109//3570 6111//3570 6216//5550 6215//5549 +f 6217//5551 6216//5550 6111//3570 6113//3570 +f 6039//5401 6037//5399 6216//5550 6217//5551 +f 6217//5551 3714//3688 3532//3534 6039//5401 +f 6113//3570 3606//3570 3714//3688 6217//5551 +f 6218//5552 6219//5553 6117//5459 6116//5458 +f 6044//5406 6043//5405 6219//5553 6218//5552 +f 6218//5552 6220//5554 6049//5411 6044//5406 +f 6116//5458 6119//5461 6220//5554 6218//5552 +f 6221//5555 6222//5556 6123//3570 6122//3570 +f 6053//5415 6052//5414 6222//5556 6221//5555 +f 6221//5555 6223//5557 6058//5420 6053//5415 +f 6122//3570 6125//3570 6223//5557 6221//5555 +f 6224//5558 6223//5557 6125//3570 6127//3570 +f 6060//5422 6058//5420 6223//5557 6224//5558 +f 6224//5558 6225//5559 6064//5426 6060//5422 +f 6127//3570 6129//3570 6225//5559 6224//5558 +f 6226//5560 6225//5559 6129//3570 6131//3570 +f 6066//5428 6064//5426 6225//5559 6226//5560 +f 6226//5560 6227//5561 6070//5432 6066//5428 +f 6131//3570 6133//3570 6227//5561 6226//5560 +f 6228//5562 6227//5561 6133//3570 6135//3570 +f 6072//5434 6070//5432 6227//5561 6228//5562 +f 6228//5562 6199//5533 5983//5345 6072//5434 +f 6135//3570 6077//3570 6199//5533 6228//5562 +f 6229//5563 6230//5564 5986//5348 5985//5347 +f 5920//5282 5919//5281 6230//5564 6229//5563 +f 6229//5563 6231//5565 5922//5284 5920//5282 +f 5985//5347 5988//5350 6231//5565 6229//5563 +f 6232//5566 6231//5565 5988//5350 5992//5354 +f 5924//5286 5922//5284 6231//5565 6232//5566 +f 6232//5566 6233//5567 5926//5288 5924//5286 +f 5992//5354 5994//5356 6233//5567 6232//5566 +f 6234//5568 6233//5567 5994//5356 5998//5360 +f 5928//5290 5926//5288 6233//5567 6234//5568 +f 6234//5568 6235//5569 5930//5292 5928//5290 +f 5998//5360 6000//5362 6235//5569 6234//5568 +f 6236//5570 6235//5569 6000//5362 6004//5366 +f 5932//5294 5930//5292 6235//5569 6236//5570 +f 6236//5570 6237//5571 5934//5296 5932//5294 +f 6004//5366 6006//5368 6237//5571 6236//5570 +f 6238//5572 6237//5571 6006//5368 6010//5372 +f 5936//5298 5934//5296 6237//5571 6238//5572 +f 6238//5572 6239//5573 5938//5300 5936//5298 +f 6010//5372 6012//5374 6239//5573 6238//5572 +f 6240//5574 6239//5573 6012//5374 6016//5378 +f 5940//5302 5938//5300 6239//5573 6240//5574 +f 6240//5574 6241//5575 5942//5304 5940//5302 +f 6016//5378 6018//5380 6241//5575 6240//5574 +f 6242//5576 6241//5575 6018//5380 6022//5384 +f 5944//5306 5942//5304 6241//5575 6242//5576 +f 6242//5576 6243//5577 5946//5308 5944//5306 +f 6022//5384 6024//5386 6243//5577 6242//5576 +f 6244//5578 6243//5577 6024//5386 6028//5390 +f 5948//5310 5946//5308 6243//5577 6244//5578 +f 6244//5578 6245//5579 5950//5312 5948//5310 +f 6028//5390 6030//5392 6245//5579 6244//5578 +f 6246//5580 6245//5579 6030//5392 6034//5396 +f 5952//5314 5950//5312 6245//5579 6246//5580 +f 6246//5580 6247//5581 5954//5316 5952//5314 +f 6034//5396 6036//5398 6247//5581 6246//5580 +f 6248//5582 6247//5581 6036//5398 6040//5402 +f 5956//5318 5954//5316 6247//5581 6248//5582 +f 6248//5582 3746//3720 3445//3447 5956//5318 +f 6040//5402 3530//3532 3746//3720 6248//5582 +f 6249//5583 6250//5584 6046//5408 6045//5407 +f 5960//5322 5959//5321 6250//5584 6249//5583 +f 6249//5583 6251//5585 5964//5326 5960//5322 +f 6045//5407 6048//5410 6251//5585 6249//5583 +f 6252//5586 6253//5587 6055//5417 6054//5416 +f 5968//5330 5967//5329 6253//5587 6252//5586 +f 6252//5586 6254//5588 5970//5332 5968//5330 +f 6054//5416 6057//5419 6254//5588 6252//5586 +f 6255//5589 6254//5588 6057//5419 6061//5423 +f 5972//5334 5970//5332 6254//5588 6255//5589 +f 6255//5589 6256//5590 5974//5336 5972//5334 +f 6061//5423 6063//5425 6256//5590 6255//5589 +f 6257//5591 6256//5590 6063//5425 6067//5429 +f 5976//5338 5974//5336 6256//5590 6257//5591 +f 6257//5591 6258//5592 5978//5340 5976//5338 +f 6067//5429 6069//5431 6258//5592 6257//5591 +f 6259//5593 6258//5592 6069//5431 6073//5435 +f 5980//5342 5978//5340 6258//5592 6259//5593 +f 6259//5593 6230//5564 5919//5281 5980//5342 +f 6073//5435 5986//5348 6230//5564 6259//5593 +f 6260//5594 6261//5595 6262//5596 6263//5597 +f 5796//5158 5795//5157 6261//5595 6260//5594 +f 6260//5594 6264//5598 5798//5160 5796//5158 +f 6263//5597 6265//5599 6264//5598 6260//5594 +f 6266//5600 6264//5598 6265//5599 6267//5601 +f 5800//5162 5798//5160 6264//5598 6266//5600 +f 6266//5600 6268//5602 5802//5164 5800//5162 +f 6267//5601 6269//5603 6268//5602 6266//5600 +f 6270//5604 6268//5602 6269//5603 6271//5605 +f 5804//5166 5802//5164 6268//5602 6270//5604 +f 6270//5604 6272//5606 5806//5168 5804//5166 +f 6271//5605 6273//5607 6272//5606 6270//5604 +f 6274//5608 6272//5606 6273//5607 6275//5609 +f 5808//5170 5806//5168 6272//5606 6274//5608 +f 6274//5608 6276//5610 5810//5172 5808//5170 +f 6275//5609 6277//5611 6276//5610 6274//5608 +f 6278//5612 6276//5610 6277//5611 6279//5613 +f 5812//5174 5810//5172 6276//5610 6278//5612 +f 6278//5612 6280//5614 5814//5176 5812//5174 +f 6279//5613 6281//5615 6280//5614 6278//5612 +f 6282//5616 6280//5614 6281//5615 6283//5617 +f 5816//5178 5814//5176 6280//5614 6282//5616 +f 6282//5616 6284//5618 5818//5180 5816//5178 +f 6283//5617 6285//5619 6284//5618 6282//5616 +f 6286//5620 6284//5618 6285//5619 6287//5621 +f 5820//5182 5818//5180 6284//5618 6286//5620 +f 6286//5620 6288//5622 5822//5184 5820//5182 +f 6287//5621 6289//5623 6288//5622 6286//5620 +f 6290//5624 6288//5622 6289//5623 6291//5625 +f 5824//5186 5822//5184 6288//5622 6290//5624 +f 6290//5624 6292//5626 5826//5188 5824//5186 +f 6291//5625 6293//5627 6292//5626 6290//5624 +f 6294//5628 6292//5626 6293//5627 6295//5629 +f 5828//5190 5826//5188 6292//5626 6294//5628 +f 6294//5628 6296//5630 5830//5192 5828//5190 +f 6295//5629 6297//5631 6296//5630 6294//5628 +f 6298//5632 6296//5630 6297//5631 6299//5633 +f 5832//5194 5830//5192 6296//5630 6298//5632 +f 6298//5632 3798//3772 3317//3319 5832//5194 +f 6299//5633 3799//3773 3798//3772 6298//5632 +f 6300//5634 6301//5635 6302//5636 6303//5637 +f 5836//5198 5835//5197 6301//5635 6300//5634 +f 6300//5634 6304//5638 5838//5200 5836//5198 +f 6303//5637 6305//5639 6304//5638 6300//5634 +f 6306//5640 6307//5641 6308//5642 6309//5643 +f 5842//5204 5841//5203 6307//5641 6306//5640 +f 6306//5640 6310//5644 5844//5206 5842//5204 +f 6309//5643 6311//5645 6310//5644 6306//5640 +f 6312//5646 6310//5644 6311//5645 6313//5647 +f 5846//5208 5844//5206 6310//5644 6312//5646 +f 6312//5646 6314//5648 5848//5210 5846//5208 +f 6313//5647 6315//5649 6314//5648 6312//5646 +f 6316//5650 6314//5648 6315//5649 6317//5651 +f 5850//5212 5848//5210 6314//5648 6316//5650 +f 6316//5650 6318//5652 5852//5214 5850//5212 +f 6317//5651 6319//5653 6318//5652 6316//5650 +f 6320//5654 6318//5652 6319//5653 6321//5655 +f 5854//5216 5852//5214 6318//5652 6320//5654 +f 6320//5654 6261//5595 5795//5157 5854//5216 +f 6321//5655 6262//5596 6261//5595 6320//5654 +f 6322//5656 6323//5657 5505//4867 5504//4866 +f 5054//4416 5053//4415 6323//5657 6322//5656 +f 6322//5656 6324//5658 5059//4421 5054//4416 +f 5504//4866 5506//4868 6324//5658 6322//5656 +f 6325//5659 6324//5658 5506//4868 5517//4879 +f 5088//4450 5059//4421 6324//5658 6325//5659 +f 6325//5659 6326//5660 5092//4454 5088//4450 +f 5517//4879 5518//4880 6326//5660 6325//5659 +f 6327//5661 6326//5660 5518//4880 5529//4891 +f 5118//4480 5092//4454 6326//5660 6327//5661 +f 6327//5661 6328//5662 5122//4484 5118//4480 +f 5529//4891 5530//4892 6328//5662 6327//5661 +f 6329//5663 6328//5662 5530//4892 5541//4903 +f 5148//4510 5122//4484 6328//5662 6329//5663 +f 6329//5663 6330//5664 5152//4514 5148//4510 +f 5541//4903 5542//4904 6330//5664 6329//5663 +f 6331//5665 6330//5664 5542//4904 5553//4915 +f 5178//4540 5152//4514 6330//5664 6331//5665 +f 6331//5665 6332//5666 5182//4544 5178//4540 +f 5553//4915 5554//4916 6332//5666 6331//5665 +f 6333//5667 6332//5666 5554//4916 5565//4927 +f 5208//4570 5182//4544 6332//5666 6333//5667 +f 6333//5667 6334//5668 5212//4574 5208//4570 +f 5565//4927 5566//4928 6334//5668 6333//5667 +f 6335//5669 6334//5668 5566//4928 5577//4939 +f 5238//4600 5212//4574 6334//5668 6335//5669 +f 6335//5669 6336//5670 5242//4604 5238//4600 +f 5577//4939 5578//4940 6336//5670 6335//5669 +f 6337//5671 6336//5670 5578//4940 5589//4951 +f 5268//4630 5242//4604 6336//5670 6337//5671 +f 6337//5671 6338//5672 5272//4634 5268//4630 +f 5589//4951 5590//4952 6338//5672 6337//5671 +f 6339//5673 6338//5672 5590//4952 5601//4963 +f 5298//4660 5272//4634 6338//5672 6339//5673 +f 6339//5673 6340//5674 5302//4664 5298//4660 +f 5601//4963 5602//4964 6340//5674 6339//5673 +f 6341//5675 6340//5674 5602//4964 5608//4970 +f 5319//4681 5302//4664 6340//5674 6341//5675 +f 6341//5675 3842//3816 2790//2791 5319//4681 +f 5608//4970 3087//3089 3842//3816 6341//5675 +f 6342//5676 6343//5677 6344//5678 6345//5679 +f 5354//4716 5353//4715 6343//5677 6342//5676 +f 6342//5676 6346//5680 5359//4721 5354//4716 +f 6345//5679 5625//4987 6346//5680 6342//5676 +f 6347//5681 6348//5682 5626//4988 5637//4999 +f 5399//4761 5398//4760 6348//5682 6347//5681 +f 6347//5681 6349//5683 5404//4766 5399//4761 +f 5637//4999 5638//5000 6349//5683 6347//5681 +f 6350//5684 6349//5683 5638//5000 5649//5011 +f 5433//4795 5404//4766 6349//5683 6350//5684 +f 6350//5684 6351//5685 5437//4799 5433//4795 +f 5649//5011 5650//5012 6351//5685 6350//5684 +f 6352//5686 6351//5685 5650//5012 5661//5023 +f 5463//4825 5437//4799 6351//5685 6352//5686 +f 6352//5686 6353//5687 5467//4829 5463//4825 +f 5661//5023 5662//5024 6353//5687 6352//5686 +f 6354//5688 6353//5687 5662//5024 5668//5030 +f 5484//4846 5467//4829 6353//5687 6354//5688 +f 6354//5688 6323//5657 5053//4415 5484//4846 +f 5668//5030 5505//4867 6323//5657 6354//5688 +f 6355//5689 6356//5690 5705//5067 5704//5066 +f 6263//5597 6262//5596 6356//5690 6355//5689 +f 6355//5689 6357//5691 6265//5599 6263//5597 +f 5704//5066 5707//5069 6357//5691 6355//5689 +f 6358//5692 6357//5691 5707//5069 5711//5073 +f 6267//5601 6265//5599 6357//5691 6358//5692 +f 6358//5692 6359//5693 6269//5603 6267//5601 +f 5711//5073 5713//5075 6359//5693 6358//5692 +f 6360//5694 6359//5693 5713//5075 5717//5079 +f 6271//5605 6269//5603 6359//5693 6360//5694 +f 6360//5694 6361//5695 6273//5607 6271//5605 +f 5717//5079 5719//5081 6361//5695 6360//5694 +f 6362//5696 6361//5695 5719//5081 5723//5085 +f 6275//5609 6273//5607 6361//5695 6362//5696 +f 6362//5696 6363//5697 6277//5611 6275//5609 +f 5723//5085 5725//5087 6363//5697 6362//5696 +f 6364//5698 6363//5697 5725//5087 5729//5091 +f 6279//5613 6277//5611 6363//5697 6364//5698 +f 6364//5698 6365//5699 6281//5615 6279//5613 +f 5729//5091 5731//5093 6365//5699 6364//5698 +f 6366//5700 6365//5699 5731//5093 5735//5097 +f 6283//5617 6281//5615 6365//5699 6366//5700 +f 6366//5700 6367//5701 6285//5619 6283//5617 +f 5735//5097 5737//5099 6367//5701 6366//5700 +f 6368//5702 6367//5701 5737//5099 5741//5103 +f 6287//5621 6285//5619 6367//5701 6368//5702 +f 6368//5702 6369//5703 6289//5623 6287//5621 +f 5741//5103 5743//5105 6369//5703 6368//5702 +f 6370//5704 6369//5703 5743//5105 5747//5109 +f 6291//5625 6289//5623 6369//5703 6370//5704 +f 6370//5704 6371//5705 6293//5627 6291//5625 +f 5747//5109 5749//5111 6371//5705 6370//5704 +f 6372//5706 6371//5705 5749//5111 5753//5115 +f 6295//5629 6293//5627 6371//5705 6372//5706 +f 6372//5706 6373//5707 6297//5631 6295//5629 +f 5753//5115 5755//5117 6373//5707 6372//5706 +f 6374//5708 6373//5707 5755//5117 5759//5121 +f 6299//5633 6297//5631 6373//5707 6374//5708 +f 6374//5708 3876//3850 3799//3773 6299//5633 +f 5759//5121 3240//3242 3876//3850 6374//5708 +f 6375//5709 6376//5710 5765//5127 5764//5126 +f 6303//5637 6302//5636 6376//5710 6375//5709 +f 6375//5709 6377//5711 6305//5639 6303//5637 +f 5764//5126 5767//5129 6377//5711 6375//5709 +f 6378//5712 6379//5713 5774//5136 5773//5135 +f 6309//5643 6308//5642 6379//5713 6378//5712 +f 6378//5712 6380//5714 6311//5645 6309//5643 +f 5773//5135 5776//5138 6380//5714 6378//5712 +f 6381//5715 6380//5714 5776//5138 5780//5142 +f 6313//5647 6311//5645 6380//5714 6381//5715 +f 6381//5715 6382//5716 6315//5649 6313//5647 +f 5780//5142 5782//5144 6382//5716 6381//5715 +f 6383//5717 6382//5716 5782//5144 5786//5148 +f 6317//5651 6315//5649 6382//5716 6383//5717 +f 6383//5717 6384//5718 6319//5653 6317//5651 +f 5786//5148 5788//5150 6384//5718 6383//5717 +f 6385//5719 6384//5718 5788//5150 5792//5154 +f 6321//5655 6319//5653 6384//5718 6385//5719 +f 6385//5719 6356//5690 6262//5596 6321//5655 +f 5792//5154 5705//5067 6356//5690 6385//5719 +f 5499//4861 5503//4865 5046//4408 5047//4409 +f 5047//4409 5049//4411 5500//4862 5499//4861 +f 5514//4876 5500//4862 5049//4411 5083//4445 +f 5083//4445 5085//4447 5515//4877 5514//4876 +f 5526//4888 5515//4877 5085//4447 5113//4475 +f 5113//4475 5115//4477 5527//4889 5526//4888 +f 5538//4900 5527//4889 5115//4477 5143//4505 +f 5143//4505 5145//4507 5539//4901 5538//4900 +f 5550//4912 5539//4901 5145//4507 5173//4535 +f 5173//4535 5175//4537 5551//4913 5550//4912 +f 5562//4924 5551//4913 5175//4537 5203//4565 +f 5203//4565 5205//4567 5563//4925 5562//4924 +f 5574//4936 5563//4925 5205//4567 5233//4595 +f 5233//4595 5235//4597 5575//4937 5574//4936 +f 5586//4948 5575//4937 5235//4597 5263//4625 +f 5263//4625 5265//4627 5587//4949 5586//4948 +f 5598//4960 5587//4949 5265//4627 5293//4655 +f 5293//4655 5295//4657 5599//4961 5598//4960 +f 5607//4969 5599//4961 5295//4657 5317//4679 +f 5317//4679 2782//2783 3084//3086 5607//4969 +f 6386//5720 6387//5721 5346//4708 5347//4709 +f 5347//4709 5349//4711 5623//4985 6386//5720 +f 5634//4996 5620//4982 5391//4753 5392//4754 +f 5392//4754 5394//4756 5635//4997 5634//4996 +f 5646//5008 5635//4997 5394//4756 5428//4790 +f 5428//4790 5430//4792 5647//5009 5646//5008 +f 5658//5020 5647//5009 5430//4792 5458//4820 +f 5458//4820 5460//4822 5659//5021 5658//5020 +f 5667//5029 5659//5021 5460//4822 5482//4844 +f 5482//4844 5046//4408 5503//4865 5667//5029 +f 6388//5722 6389//5723 5344//4706 6390//5724 +f 6391//5725 6392//5726 6389//5723 6388//5722 +f 6388//5722 6393//5727 6394//5728 6391//5725 +f 6390//5724 6395//5729 6393//5727 6388//5722 +f 6396//5730 6397//5731 6392//5726 6391//5725 +f 6398//5732 5962//5324 6397//5731 6396//5730 +f 6396//5730 6399//5733 6400//5734 6398//5732 +f 6391//5725 6394//5728 6399//5733 6396//5730 +f 6401//5735 6402//5736 6344//5678 6403//5737 +f 6404//5738 6387//5721 6402//5736 6401//5735 +f 6401//5735 6405//5739 6406//5740 6404//5738 +f 6403//5737 6407//5741 6405//5739 6401//5735 +f 6408//5742 6343//5677 5353//4715 6409//5743 +f 6403//5737 6344//5678 6343//5677 6408//5742 +f 6408//5742 6410//5744 6407//5741 6403//5737 +f 6409//5743 6411//5745 6410//5744 6408//5742 +f 6412//5746 5346//4708 6387//5721 6404//5738 +f 5346//4708 6412//5746 6413//5747 5343//4705 +f 6412//5746 6414//5748 6415//5749 6413//5747 +f 6404//5738 6406//5740 6414//5748 6412//5746 +f 6390//5724 5344//4706 5343//4705 6413//5747 +f 6413//5747 6415//5749 6395//5729 6390//5724 +f 6416//5750 6398//5732 6400//5734 6417//5751 +f 5958//5320 5962//5324 6398//5732 6416//5750 +f 6416//5750 6418//5752 5959//5321 5958//5320 +f 6417//5751 6419//5753 6418//5752 6416//5750 +f 6420//5754 6409//5743 5353//4715 5352//4714 +f 6421//5755 6411//5745 6409//5743 6420//5754 +f 6420//5754 6422//5756 6423//5757 6421//5755 +f 5352//4714 5356//4718 6422//5756 6420//5754 +f 6424//5758 6250//5584 5959//5321 6418//5752 +f 6425//5759 6046//5408 6250//5584 6424//5758 +f 6424//5758 6426//5760 6427//5761 6425//5759 +f 6418//5752 6419//5753 6426//5760 6424//5758 +f 6428//5762 6219//5553 6043//5405 6429//5763 +f 6430//5764 6117//5459 6219//5553 6428//5762 +f 6428//5762 6431//5765 6432//5766 6430//5764 +f 6429//5763 6433//5767 6431//5765 6428//5762 +f 6434//5768 6115//5457 6117//5459 6430//5764 +f 6435//5769 5338//4700 6115//5457 6434//5768 +f 6434//5768 6436//5770 6437//5771 6435//5769 +f 6430//5764 6432//5766 6436//5770 6434//5768 +f 6438//5772 6042//5404 6046//5408 6425//5759 +f 6429//5763 6043//5405 6042//5404 6438//5772 +f 6438//5772 6439//5773 6433//5767 6429//5763 +f 6425//5759 6427//5761 6439//5773 6438//5772 +f 6440//5774 6177//5511 5335//4697 5334//4696 +f 6441//5775 6178//5512 6177//5511 6440//5774 +f 6440//5774 6435//5769 6437//5771 6441//5775 +f 5334//4696 5338//4700 6435//5769 6440//5774 +f 6442//5776 6443//5777 6178//5512 6441//5775 +f 6444//5778 6445//5779 6443//5777 6442//5776 +f 6442//5776 6446//5780 6447//5781 6444//5778 +f 6441//5775 6437//5771 6446//5780 6442//5776 +f 6448//5782 6301//5635 5835//5197 6449//5783 +f 6450//5784 6302//5636 6301//5635 6448//5782 +f 6448//5782 6451//5785 6452//5786 6450//5784 +f 6449//5783 6453//5787 6451//5785 6448//5782 +f 6454//5788 5834//5196 5362//4724 6455//5789 +f 6449//5783 5835//5197 5834//5196 6454//5788 +f 6454//5788 6456//5790 6453//5787 6449//5783 +f 6455//5789 6457//5791 6456//5790 6454//5788 +f 6458//5792 5361//4723 5365//4727 6459//5793 +f 6455//5789 5362//4724 5361//4723 6458//5792 +f 6458//5792 6460//5794 6457//5791 6455//5789 +f 6459//5793 6461//5795 6460//5794 6458//5792 +f 6462//5796 6376//5710 6302//5636 6450//5784 +f 6463//5797 5765//5127 6376//5710 6462//5796 +f 6462//5796 6464//5798 6465//5799 6463//5797 +f 6450//5784 6452//5786 6464//5798 6462//5796 +f 6466//5800 5761//5123 5765//5127 6463//5797 +f 6467//5801 5762//5124 5761//5123 6466//5800 +f 6466//5800 6468//5802 6469//5803 6467//5801 +f 6463//5797 6465//5799 6468//5802 6466//5800 +f 6470//5804 6459//5793 5365//4727 5896//5258 +f 6471//5805 6461//5795 6459//5793 6470//5804 +f 6470//5804 6472//5806 6473//5807 6471//5805 +f 5896//5258 5898//5260 6472//5806 6470//5804 +f 6474//5808 6431//5765 6433//5767 6475//5809 +f 6476//5810 6432//5766 6431//5765 6474//5808 +f 6474//5808 6477//5811 6478//5811 6476//5810 +f 6475//5809 6479//5811 6477//5811 6474//5808 +f 6480//5812 6436//5770 6432//5766 6476//5810 +f 6446//5780 6437//5771 6436//5770 6480//5812 +f 6480//5812 6481//5813 6447//5781 6446//5780 +f 6476//5810 6478//5811 6481//5813 6480//5812 +f 6482//5814 6468//5802 6465//5799 6483//5815 +f 6484//5816 6469//5803 6468//5802 6482//5814 +f 6482//5814 6485//5811 6486//5817 6484//5816 +f 6483//5815 6487//5811 6485//5811 6482//5814 +f 6488//5818 6489//5819 5056//4418 5055//4417 +f 5703//5065 5702//5064 6489//5819 6488//5818 +f 6488//5818 6490//5820 5708//5070 5703//5065 +f 5055//4417 5058//4420 6490//5820 6488//5818 +f 6491//5821 6490//5820 5058//4420 5089//4451 +f 5710//5072 5708//5070 6490//5820 6491//5821 +f 6491//5821 6492//5822 5714//5076 5710//5072 +f 5089//4451 5091//4453 6492//5822 6491//5821 +f 6493//5823 6492//5822 5091//4453 5119//4481 +f 5716//5078 5714//5076 6492//5822 6493//5823 +f 6493//5823 6494//5824 5720//5082 5716//5078 +f 5119//4481 5121//4483 6494//5824 6493//5823 +f 6495//5825 6494//5824 5121//4483 5149//4511 +f 5722//5084 5720//5082 6494//5824 6495//5825 +f 6495//5825 6496//5826 5726//5088 5722//5084 +f 5149//4511 5151//4513 6496//5826 6495//5825 +f 6497//5827 6496//5826 5151//4513 5179//4541 +f 5728//5090 5726//5088 6496//5826 6497//5827 +f 6497//5827 6498//5828 5732//5094 5728//5090 +f 5179//4541 5181//4543 6498//5828 6497//5827 +f 6499//5829 6498//5828 5181//4543 5209//4571 +f 5734//5096 5732//5094 6498//5828 6499//5829 +f 6499//5829 6500//5830 5738//5100 5734//5096 +f 5209//4571 5211//4573 6500//5830 6499//5829 +f 6501//5831 6500//5830 5211//4573 5239//4601 +f 5740//5102 5738//5100 6500//5830 6501//5831 +f 6501//5831 6502//5832 5744//5106 5740//5102 +f 5239//4601 5241//4603 6502//5832 6501//5831 +f 6503//5833 6502//5832 5241//4603 5269//4631 +f 5746//5108 5744//5106 6502//5832 6503//5833 +f 6503//5833 6504//5834 5750//5112 5746//5108 +f 5269//4631 5271//4633 6504//5834 6503//5833 +f 6505//5835 6504//5834 5271//4633 5299//4661 +f 5752//5114 5750//5112 6504//5834 6505//5835 +f 6505//5835 6506//5836 5756//5118 5752//5114 +f 5299//4661 5301//4663 6506//5836 6505//5835 +f 6507//5837 6506//5836 5301//4663 5320//4682 +f 5758//5120 5756//5118 6506//5836 6507//5837 +f 6507//5837 4010//3980 3242//3244 5758//5120 +f 5320//4682 2788//2789 4010//3980 6507//5837 +f 6508//5838 6509//5839 5356//4718 5355//4717 +f 5763//5125 5762//5124 6509//5839 6508//5838 +f 6508//5838 6510//5840 5768//5130 5763//5125 +f 5355//4717 5358//4720 6510//5840 6508//5838 +f 6511//5841 6512//5842 5401//4763 5400//4762 +f 5772//5134 5771//5133 6512//5842 6511//5841 +f 6511//5841 6513//5843 5777//5139 5772//5134 +f 5400//4762 5403//4765 6513//5843 6511//5841 +f 6514//5844 6513//5843 5403//4765 5434//4796 +f 5779//5141 5777//5139 6513//5843 6514//5844 +f 6514//5844 6515//5845 5783//5145 5779//5141 +f 5434//4796 5436//4798 6515//5845 6514//5844 +f 6516//5846 6515//5845 5436//4798 5464//4826 +f 5785//5147 5783//5145 6515//5845 6516//5846 +f 6516//5846 6517//5847 5789//5151 5785//5147 +f 5464//4826 5466//4828 6517//5847 6516//5846 +f 6518//5848 6517//5847 5466//4828 5485//4847 +f 5791//5153 5789//5151 6517//5847 6518//5848 +f 6518//5848 6489//5819 5702//5064 5791//5153 +f 5485//4847 5056//4418 6489//5819 6518//5848 +f 6519//5849 6520//5850 6423//5757 6422//5756 +f 6467//5801 6469//5803 6520//5850 6519//5849 +f 6519//5849 6509//5839 5762//5124 6467//5801 +f 6422//5756 5356//4718 6509//5839 6519//5849 +f 6521//5851 6520//5850 6469//5803 6484//5816 +f 6522//5852 6423//5757 6520//5850 6521//5851 +f 6521//5851 6523//5817 6524//5817 6522//5852 +f 6484//5816 6486//5817 6523//5817 6521//5851 +f 6525//5853 6421//5755 6423//5757 6522//5852 +f 6526//5854 6411//5745 6421//5755 6525//5853 +f 6525//5853 6527//5811 6528//5811 6526//5854 +f 6522//5852 6524//5817 6527//5811 6525//5853 +f 6529//5855 6530//5856 6531//5817 6532//5811 +f 6439//5773 6427//5761 6530//5856 6529//5855 +f 6529//5855 6533//5857 6433//5767 6439//5773 +f 6532//5811 6534//5811 6533//5857 6529//5855 +f 6535//5858 6536//5859 6537//5811 6538//5817 +f 6426//5760 6419//5753 6536//5859 6535//5858 +f 6535//5858 6530//5856 6427//5761 6426//5760 +f 6538//5817 6531//5817 6530//5856 6535//5858 +f 6539//5860 6540//5861 6541//5817 6542//5811 +f 6417//5751 6400//5734 6540//5861 6539//5860 +f 6539//5860 6536//5859 6419//5753 6417//5751 +f 6542//5811 6537//5811 6536//5859 6539//5860 +f 6532//5811 6531//5817 6543//5817 6544//5817 +f 6544//5817 6545//5817 6534//5811 6532//5811 +f 6538//5817 6537//5811 6546//5811 6547//5811 +f 6547//5811 6543//5817 6531//5817 6538//5817 +f 6542//5811 6541//5817 6548//5817 6549//5811 +f 6549//5811 6546//5811 6537//5811 6542//5811 +f 6550//5811 6551//5811 6486//5817 6485//5811 +f 6543//5817 6551//5811 6550//5811 6544//5817 +f 6550//5811 6552//5811 6545//5817 6544//5817 +f 6485//5811 6487//5811 6552//5811 6550//5811 +f 6553//5817 6554//5817 6524//5817 6523//5817 +f 6546//5811 6554//5817 6553//5817 6547//5811 +f 6553//5817 6551//5811 6543//5817 6547//5811 +f 6523//5817 6486//5817 6551//5811 6553//5817 +f 6555//5811 6556//5811 6528//5811 6527//5811 +f 6548//5817 6556//5811 6555//5811 6549//5811 +f 6555//5811 6554//5817 6546//5811 6549//5811 +f 6527//5811 6524//5817 6554//5817 6555//5811 +f 6557//5862 6399//5733 6394//5728 6393//5727 +f 6540//5861 6400//5734 6399//5733 6557//5862 +f 6557//5862 6558//5863 6541//5817 6540//5861 +f 6393//5727 6395//5729 6558//5863 6557//5862 +f 6559//5864 6548//5817 6541//5817 6558//5863 +f 6548//5817 6559//5864 6560//5865 6556//5811 +f 6559//5864 6415//5749 6414//5748 6560//5865 +f 6558//5863 6395//5729 6415//5749 6559//5864 +f 6561//5866 6528//5811 6556//5811 6560//5865 +f 6560//5865 6414//5748 6406//5740 6561//5866 +f 6562//5867 6526//5854 6528//5811 6561//5866 +f 6410//5744 6411//5745 6526//5854 6562//5867 +f 6562//5867 6405//5739 6407//5741 6410//5744 +f 6561//5866 6406//5740 6405//5739 6562//5867 +f 6563//5868 6564//5869 6565//5870 6566//5871 +f 6567//5872 6568//5873 6564//5869 6563//5868 +f 6563//5868 6569//5874 6570//5875 6567//5872 +f 6566//5871 6571//5876 6569//5874 6563//5868 +f 6572//5877 6569//5874 6571//5876 6573//5878 +f 6574//5879 6570//5875 6569//5874 6572//5877 +f 6572//5877 6575//5880 6576//5881 6574//5879 +f 6573//5878 6577//5882 6575//5880 6572//5877 +f 6578//5883 6575//5880 6577//5882 6579//5884 +f 6580//5885 6576//5881 6575//5880 6578//5883 +f 6578//5883 6581//5886 6582//5887 6580//5885 +f 6579//5884 6583//5888 6581//5886 6578//5883 +f 6584//5889 6581//5886 6583//5888 6585//5890 +f 6586//5891 6582//5887 6581//5886 6584//5889 +f 6584//5889 6587//5892 6588//5893 6586//5891 +f 6585//5890 6589//5894 6587//5892 6584//5889 +f 6590//5895 6587//5892 6589//5894 6591//5896 +f 6592//5897 6588//5893 6587//5892 6590//5895 +f 6590//5895 6593//5898 6594//5899 6592//5897 +f 6591//5896 6595//5900 6593//5898 6590//5895 +f 6596//5901 6593//5898 6595//5900 6597//5902 +f 6598//5903 6594//5899 6593//5898 6596//5901 +f 6596//5901 6599//5904 6600//5905 6598//5903 +f 6597//5902 6601//5906 6599//5904 6596//5901 +f 6602//5907 6599//5904 6601//5906 6603//5908 +f 6604//5909 6600//5905 6599//5904 6602//5907 +f 6602//5907 6605//5910 6606//5911 6604//5909 +f 6603//5908 6607//5912 6605//5910 6602//5907 +f 6608//5913 6605//5910 6607//5912 6609//5914 +f 6610//5915 6606//5911 6605//5910 6608//5913 +f 6608//5913 6611//5916 6612//5917 6610//5915 +f 6609//5914 6613//5918 6611//5916 6608//5913 +f 6614//5919 6611//5916 6613//5918 6615//5920 +f 6616//5921 6612//5917 6611//5916 6614//5919 +f 6614//5919 6617//5922 6618//5923 6616//5921 +f 6615//5920 6619//5924 6617//5922 6614//5919 +f 6620//5925 6617//5922 6619//5924 6621//5926 +f 6622//5927 6618//5923 6617//5922 6620//5925 +f 6620//5925 4127//4072 4126//4071 6622//5927 +f 6621//5926 4128//4073 4127//4072 6620//5925 +f 6623//5928 6624//5929 6625//5930 6626//5931 +f 6627//5932 6445//5779 6624//5929 6623//5928 +f 6623//5928 6628//5933 6629//5934 6627//5932 +f 6626//5931 6630//5935 6628//5933 6623//5928 +f 6631//5936 6632//5937 6633//5938 6634//5939 +f 6635//5940 6636//5941 6632//5937 6631//5936 +f 6631//5936 6637//5942 6638//5943 6635//5940 +f 6634//5939 6639//5944 6637//5942 6631//5936 +f 6640//5945 6637//5942 6639//5944 6641//5946 +f 6642//5947 6638//5943 6637//5942 6640//5945 +f 6640//5945 6643//5948 6644//5949 6642//5947 +f 6641//5946 6645//5950 6643//5948 6640//5945 +f 6646//5951 6643//5948 6645//5950 6647//5952 +f 6648//5953 6644//5949 6643//5948 6646//5951 +f 6646//5951 6649//5954 6650//5955 6648//5953 +f 6647//5952 6651//5956 6649//5954 6646//5951 +f 6652//5957 6649//5954 6651//5956 6653//5958 +f 6654//5959 6650//5955 6649//5954 6652//5957 +f 6652//5957 6564//5869 6568//5873 6654//5959 +f 6653//5958 6565//5870 6564//5869 6652//5957 +f 6655//5960 6656//5961 6625//5930 6657//5962 +f 6658//5963 5329//4691 6656//5961 6655//5960 +f 6655//5960 6659//5964 6660//5965 6658//5963 +f 6657//5962 6661//5966 6659//5964 6655//5960 +f 6662//5811 6663//5811 6664//5811 6665//5811 +f 6666//5811 6667//5811 6663//5811 6662//5811 +f 6662//5811 6668//5811 6669//5811 6666//5811 +f 6665//5811 6670//5811 6668//5811 6662//5811 +f 6671//5967 6659//5964 6661//5966 6672//5967 +f 6673//5968 6660//5965 6659//5964 6671//5967 +f 6671//5967 6663//5811 6667//5811 6673//5968 +f 6672//5967 6664//5811 6663//5811 6671//5967 +f 6674//5811 6668//5811 6670//5811 6675//5811 +f 6676//5811 6669//5811 6668//5811 6674//5811 +f 6674//5811 6677//5811 6678//5811 6676//5811 +f 6675//5811 6679//5817 6677//5811 6674//5811 +f 6680//5969 6681//5970 6682//5971 6683//5972 +f 6684//5973 6685//5974 6681//5970 6680//5969 +f 6680//5969 6686//5811 6687//5811 6684//5973 +f 6683//5972 6688//5811 6686//5811 6680//5969 +f 6689//5975 6690//5976 6685//5974 6684//5973 +f 6691//5977 6692//5978 6690//5976 6689//5975 +f 6689//5975 6693//5979 6473//5807 6691//5977 +f 6684//5973 6687//5811 6693//5979 6689//5975 +f 6694//5980 6695//5981 6696//5811 6697//5982 +f 6460//5794 6461//5795 6695//5981 6694//5980 +f 6694//5980 6456//5790 6457//5791 6460//5794 +f 6697//5982 6453//5787 6456//5790 6694//5980 +f 6698//5983 6699//5811 6700//5817 6701//5984 +f 6697//5982 6696//5811 6699//5811 6698//5983 +f 6698//5983 6451//5785 6453//5787 6697//5982 +f 6701//5984 6452//5786 6451//5785 6698//5983 +f 6702//5985 6703//5986 6704//5987 6705//5988 +f 6683//5972 6682//5971 6703//5986 6702//5985 +f 6702//5985 6706//5811 6688//5811 6683//5972 +f 6705//5988 6707//5811 6706//5811 6702//5985 +f 6708//5989 6709//5990 6710//5991 6711//5992 +f 6705//5988 6704//5987 6708//5989 6711//5992 +f 6711//5992 6712//5817 6707//5811 6705//5988 +f 6712//5817 6711//5992 6710//5991 6713//5817 +f 6710//5991 6709//5990 6714//5993 6715//5994 +f 6715//5994 6678//5811 6713//5817 6710//5991 +f 6716//5811 6533//5857 6534//5811 6717//5811 +f 6475//5809 6433//5767 6533//5857 6716//5811 +f 6716//5811 6718//5817 6479//5811 6475//5809 +f 6717//5811 6719//5811 6718//5817 6716//5811 +f 6720//5811 6721//5811 6679//5817 6722//5817 +f 6723//5811 6721//5811 6720//5811 6724//5811 +f 6725//5811 6726//5817 6724//5811 6720//5811 +f 6722//5817 6719//5811 6725//5811 6720//5811 +f 6727//5811 6552//5811 6487//5811 6728//5811 +f 6545//5817 6552//5811 6727//5811 6729//5811 +f 6727//5811 6726//5817 6725//5811 6729//5811 +f 6728//5811 6730//5811 6726//5817 6727//5811 +f 6731//5995 6732//5811 6733//5811 6734//5811 +f 6701//5984 6700//5817 6732//5811 6731//5995 +f 6731//5995 6735//5996 6452//5786 6701//5984 +f 6734//5811 6730//5811 6735//5996 6731//5995 +f 6736//5997 6624//5929 6445//5779 6444//5778 +f 6657//5962 6625//5930 6624//5929 6736//5997 +f 6736//5997 6737//5998 6661//5966 6657//5962 +f 6444//5778 6447//5781 6737//5998 6736//5997 +f 6738//5811 6739//5811 6478//5811 6477//5811 +f 6665//5811 6664//5811 6739//5811 6738//5811 +f 6738//5811 6740//5811 6670//5811 6665//5811 +f 6477//5811 6479//5811 6740//5811 6738//5811 +f 6741//5999 6737//5998 6447//5781 6481//5813 +f 6672//5967 6661//5966 6737//5998 6741//5999 +f 6741//5999 6739//5811 6664//5811 6672//5967 +f 6481//5813 6478//5811 6739//5811 6741//5999 +f 6742//6000 6743//6001 6568//5873 6567//5872 +f 6139//5473 6138//5472 6743//6001 6742//6000 +f 6742//6000 6744//5475 6141//5475 6139//5473 +f 6567//5872 6570//5875 6744//5475 6742//6000 +f 6745//5477 6744//5475 6570//5875 6574//5879 +f 6143//5477 6141//5475 6744//5475 6745//5477 +f 6745//5477 6746//6002 6145//5479 6143//5477 +f 6574//5879 6576//5881 6746//6002 6745//5477 +f 6747//6003 6746//6002 6576//5881 6580//5885 +f 6147//5481 6145//5479 6746//6002 6747//6003 +f 6747//6003 6748//5483 6149//5483 6147//5481 +f 6580//5885 6582//5887 6748//5483 6747//6003 +f 6749//6004 6748//5483 6582//5887 6586//5891 +f 6151//5485 6149//5483 6748//5483 6749//6004 +f 6749//6004 6750//6005 6153//5487 6151//5485 +f 6586//5891 6588//5893 6750//6005 6749//6004 +f 6751//5489 6750//6005 6588//5893 6592//5897 +f 6155//5489 6153//5487 6750//6005 6751//5489 +f 6751//5489 6752//6006 6157//5491 6155//5489 +f 6592//5897 6594//5899 6752//6006 6751//5489 +f 6753//6007 6752//6006 6594//5899 6598//5903 +f 6159//5493 6157//5491 6752//6006 6753//6007 +f 6753//6007 6754//6008 6161//5495 6159//5493 +f 6598//5903 6600//5905 6754//6008 6753//6007 +f 6755//6009 6754//6008 6600//5905 6604//5909 +f 6163//5497 6161//5495 6754//6008 6755//6009 +f 6755//6009 6756//5499 6165//5499 6163//5497 +f 6604//5909 6606//5911 6756//5499 6755//6009 +f 6757//6010 6756//5499 6606//5911 6610//5915 +f 6167//5501 6165//5499 6756//5499 6757//6010 +f 6757//6010 6758//6011 6169//5503 6167//5501 +f 6610//5915 6612//5917 6758//6011 6757//6010 +f 6759//6012 6758//6011 6612//5917 6616//5921 +f 6171//5505 6169//5503 6758//6011 6759//6012 +f 6759//6012 6760//5507 6173//5507 6171//5505 +f 6616//5921 6618//5923 6760//5507 6759//6012 +f 6761//6013 6760//5507 6618//5923 6622//5927 +f 6175//5509 6173//5507 6760//5507 6761//6013 +f 6761//6013 4268//4159 3671//3645 6175//5509 +f 6622//5927 4126//4071 4268//4159 6761//6013 +f 6762//6014 6443//5777 6445//5779 6627//5932 +f 6179//5513 6178//5512 6443//5777 6762//6014 +f 6762//6014 6763//6015 6181//5515 6179//5513 +f 6627//5932 6629//5934 6763//6015 6762//6014 +f 6764//6016 6765//6017 6636//5941 6635//5940 +f 6185//5519 6184//5518 6765//6017 6764//6016 +f 6764//6016 6766//5521 6187//5521 6185//5519 +f 6635//5940 6638//5943 6766//5521 6764//6016 +f 6767//6018 6766//5521 6638//5943 6642//5947 +f 6189//5523 6187//5521 6766//5521 6767//6018 +f 6767//6018 6768//6019 6191//5525 6189//5523 +f 6642//5947 6644//5949 6768//6019 6767//6018 +f 6769//5527 6768//6019 6644//5949 6648//5953 +f 6193//5527 6191//5525 6768//6019 6769//5527 +f 6769//5527 6770//5529 6195//5529 6193//5527 +f 6648//5953 6650//5955 6770//5529 6769//5527 +f 6771//6020 6770//5529 6650//5955 6654//5959 +f 6197//5531 6195//5529 6770//5529 6771//6020 +f 6771//6020 6743//6001 6138//5472 6197//5531 +f 6654//5959 6568//5873 6743//6001 6771//6020 +f 6772//5817 6740//5811 6479//5811 6718//5817 +f 6675//5811 6670//5811 6740//5811 6772//5817 +f 6772//5817 6722//5817 6679//5817 6675//5811 +f 6718//5817 6719//5811 6722//5817 6772//5817 +f 6729//5811 6717//5811 6534//5811 6545//5817 +f 6725//5811 6719//5811 6717//5811 6729//5811 +f 6724//5811 6734//5811 6733//5811 6723//5811 +f 6726//5817 6730//5811 6734//5811 6724//5811 +f 6773//6021 6464//5798 6452//5786 6735//5996 +f 6483//5815 6465//5799 6464//5798 6773//6021 +f 6773//6021 6728//5811 6487//5811 6483//5815 +f 6735//5996 6730//5811 6728//5811 6773//6021 +f 6774//6022 6775//6023 6630//5935 6776//6024 +f 6777//4736 6633//5938 6775//6023 6774//6022 +f 6774//6022 6778//6025 5374//4736 6777//4736 +f 6776//6024 5331//4693 6778//6025 6774//6022 +f 6779//6026 6780//6027 5340//4702 5339//4701 +f 5379//4741 5383//4745 6780//6027 6779//6026 +f 6779//6026 6781//6028 5380//4742 5379//4741 +f 5339//4701 5341//4703 6781//6028 6779//6026 +f 6782//6029 5692//5054 5389//4751 5388//4750 +f 5348//4710 5350//4712 5692//5054 6782//6029 +f 6783//6030 6784//6031 5358//4720 5357//4719 +f 5397//4759 5401//4763 6784//6031 6783//6030 +f 6783//6030 6785//6032 5398//4760 5397//4759 +f 5357//4719 5359//4721 6785//6032 6783//6030 +f 6786//6033 6787//6034 5367//4729 5366//4728 +f 5406//4768 5410//4772 6787//6034 6786//6033 +f 6786//6033 6788//6035 5407//4769 5406//4768 +f 5366//4728 5368//4730 6788//6035 6786//6033 +f 6789//6036 5961//5323 5614//4976 5613//4975 +f 6397//5731 5962//5324 5961//5323 6789//6036 +f 6789//6036 6790//6037 6392//5726 6397//5731 +f 5613//4975 5616//4978 6790//6037 6789//6036 +f 6791//6038 6386//5720 5623//4985 5622//4984 +f 6402//5736 6387//5721 6386//5720 6791//6038 +f 6791//6038 6345//5679 6344//5678 6402//5736 +f 5622//4984 5625//4987 6345//5679 6791//6038 +f 6792//6039 6790//6037 5616//4978 5691//5053 +f 6389//5723 6392//5726 6790//6037 6792//6039 +f 6792//6039 5345//4707 5344//4706 6389//5723 +f 5691//5053 5350//4712 5345//4707 6792//6039 +f 6793//6040 6794//6041 5767//5129 5766//5128 +f 5770//5132 5774//5136 6794//6041 6793//6040 +f 6793//6040 6795//6042 5771//5133 5770//5132 +f 5766//5128 5768//5130 6795//6042 6793//6040 +f 6796//6043 6788//6035 5368//4730 5837//5199 +f 5840//5202 5407//4769 6788//6035 6796//6043 +f 6796//6043 6797//6044 5841//5203 5840//5202 +f 5837//5199 5838//5200 6797//6044 6796//6043 +f 6798//6045 6799//6046 6800//6047 6801//6048 +f 6802//6049 6803//6050 6799//6046 6798//6045 +f 6798//6045 6804//6051 5904//5266 6802//6049 +f 6801//6048 5900//5262 6804//6051 6798//6045 +f 6805//6052 5610//4972 5614//4976 5963//5325 +f 5966//5328 5611//4973 5610//4972 6805//6052 +f 6805//6052 6806//6053 5967//5329 5966//5328 +f 5963//5325 5964//5326 6806//6053 6805//6052 +f 6807//6054 6808//6055 6048//5410 6047//5409 +f 6051//5413 6055//5417 6808//6055 6807//6054 +f 6807//6054 6809//6056 6052//5414 6051//5413 +f 6047//5409 6049//5411 6809//6056 6807//6054 +f 6810//6057 6811//6058 6119//5461 6118//5460 +f 6121//5463 6123//3570 6811//6058 6810//6057 +f 6810//6057 6780//6027 5383//4745 6121//5463 +f 6118//5460 5340//4702 6780//6027 6810//6057 +f 6812//6059 6781//6028 5341//4703 6180//5514 +f 6183//5517 5380//4742 6781//6028 6812//6059 +f 6812//6059 6813//6060 6184//5518 6183//5517 +f 6180//5514 6181//5515 6813//6060 6812//6059 +f 6814//6061 6809//6056 6049//5411 6220//5554 +f 6222//5556 6052//5414 6809//6056 6814//6061 +f 6814//6061 6811//6058 6123//3570 6222//5556 +f 6220//5554 6119//5461 6811//6058 6814//6061 +f 6815//6062 6806//6053 5964//5326 6251//5585 +f 6253//5587 5967//5329 6806//6053 6815//6062 +f 6815//6062 6808//6055 6055//5417 6253//5587 +f 6251//5585 6048//5410 6808//6055 6815//6062 +f 6816//6063 6797//6044 5838//5200 6304//5638 +f 6307//5641 5841//5203 6797//6044 6816//6063 +f 6816//6063 6817//6064 6308//5642 6307//5641 +f 6304//5638 6305//5639 6817//6064 6816//6063 +f 6818//6065 6785//6032 5359//4721 6346//5680 +f 6348//5682 5398//4760 6785//6032 6818//6065 +f 6818//6065 5624//4986 5626//4988 6348//5682 +f 6346//5680 5625//4987 5624//4986 6818//6065 +f 6819//6066 6817//6064 6305//5639 6377//5711 +f 6379//5713 6308//5642 6817//6064 6819//6066 +f 6819//6066 6794//6041 5774//5136 6379//5713 +f 6377//5711 5767//5129 6794//6041 6819//6066 +f 6820//6067 5619//4981 5623//4985 5349//4711 +f 5391//4753 5620//4982 5619//4981 6820//6067 +f 5388//4750 5391//4753 6820//6067 6782//6029 +f 5348//4710 6782//6029 6820//6067 5349//4711 +f 6821//6068 6795//6042 5768//5130 6510//5840 +f 6512//5842 5771//5133 6795//6042 6821//6068 +f 6821//6068 6784//6031 5401//4763 6512//5842 +f 6510//5840 5358//4720 6784//6031 6821//6068 +f 6822//6069 6823//6070 6629//5934 6628//5933 +f 6632//5937 6636//5941 6823//6070 6822//6069 +f 6822//6069 6775//6023 6633//5938 6632//5937 +f 6628//5933 6630//5935 6775//6023 6822//6069 +f 6824//6071 6813//6060 6181//5515 6763//6015 +f 6765//6017 6184//5518 6813//6060 6824//6071 +f 6824//6071 6823//6070 6636//5941 6765//6017 +f 6763//6015 6629//5934 6823//6070 6824//6071 +f 6825//6072 6799//6046 6803//6050 6826//6073 +f 6827//6074 6800//6047 6799//6046 6825//6072 +f 6825//6072 6828//4220 6829//4220 6827//6074 +f 6826//6073 6830//4220 6828//4220 6825//6072 +f 6831//6075 5372//4734 5371//4733 6832//6076 +f 6833//6077 5377//4739 5372//4734 6831//6075 +f 6831//6075 6834//4220 6835//4220 6833//6077 +f 6832//6076 6836//4220 6834//4220 6831//6075 +f 6837//6078 6838//6079 6839//6080 6840//6081 +f 6841//6082 6842//6083 6838//6079 6837//6078 +f 6837//6078 6843//4220 6844//4220 6841//6082 +f 6840//6081 6845//4220 6843//4220 6837//6078 +f 6846//6084 5445//4807 5419//4781 6847//6085 +f 6848//6086 5449//4811 5445//4807 6846//6084 +f 6846//6084 6849//4220 6850//4220 6848//6086 +f 6847//6085 6851//4220 6849//4220 6846//6084 +f 6852//6087 6853//6088 6854//6089 6855//6090 +f 6856//6091 6857//6092 6853//6088 6852//6087 +f 6852//6087 6858//4220 6859//4220 6856//6091 +f 6855//6090 6860//4220 6858//4220 6852//6087 +f 6861//6093 5027//4389 5026//4388 6862//6094 +f 6863//6095 5032//4394 5027//4389 6861//6093 +f 6861//6093 6864//4220 6865//4220 6863//6095 +f 6862//6094 6866//4220 6864//4220 6861//6093 +f 6867//6096 6868//6097 6869//6098 6870//6099 +f 6871//6100 6872//6101 6868//6097 6867//6096 +f 6867//6096 6873//4220 6874//4220 6871//6100 +f 6870//6099 6875//4220 6873//4220 6867//6096 +f 6876//6102 6877//6103 6878//6104 6879//6105 +f 6870//6099 6869//6098 6877//6103 6876//6102 +f 6876//6102 6880//4220 6875//4220 6870//6099 +f 6879//6105 6881//4220 6880//4220 6876//6102 +f 6882//6106 5130//4492 5104//4466 6883//6107 +f 6884//6108 5134//4496 5130//4492 6882//6106 +f 6882//6106 6885//4220 6886//4220 6884//6108 +f 6883//6107 6887//4220 6885//4220 6882//6106 +f 6888//6109 6889//6110 6890//6111 6891//6112 +f 6892//6113 6893//6114 6889//6110 6888//6109 +f 6888//6109 6894//4220 6895//4220 6892//6113 +f 6891//6112 6896//4220 6894//4220 6888//6109 +f 6897//6115 5190//4552 5164//4526 6898//6116 +f 6899//6117 5194//4556 5190//4552 6897//6115 +f 6897//6115 6900//4220 6901//4220 6899//6117 +f 6898//6116 6902//4220 6900//4220 6897//6115 +f 6903//6118 6904//6119 6905//6120 6906//6121 +f 6907//6122 6908//6123 6904//6119 6903//6118 +f 6903//6118 6909//4220 6910//4220 6907//6122 +f 6906//6121 6911//4220 6909//4220 6903//6118 +f 6912//6124 5250//4612 5224//4586 6913//6125 +f 6914//6126 5254//4616 5250//4612 6912//6124 +f 6912//6124 6915//4220 6916//4220 6914//6126 +f 6913//6125 6917//4220 6915//4220 6912//6124 +f 6918//6127 6919//6128 6920//6129 6921//6130 +f 6922//6131 6923//6132 6919//6128 6918//6127 +f 6918//6127 6924//4220 6925//4220 6922//6131 +f 6921//6130 6926//4220 6924//4220 6918//6127 +f 6927//6133 5310//4672 5284//4646 6928//6134 +f 4436//4281 2772//2773 5310//4672 6927//6133 +f 6927//6133 6929//4220 4437//4220 4436//4281 +f 6928//6134 6930//4220 6929//4220 6927//6133 +f 6931//6135 6932//6136 6933//4220 6934//4220 +f 6935//6137 5332//4694 6932//6136 6931//6135 +f 6931//6135 6832//6076 5371//4733 6935//6137 +f 6934//4220 6836//4220 6832//6076 6931//6135 +f 6936//6138 6833//6077 6835//4220 6937//4220 +f 5415//4777 5377//4739 6833//6077 6936//6138 +f 6936//6138 6847//6085 5419//4781 5415//4777 +f 6937//4220 6851//4220 6847//6085 6936//6138 +f 6938//6139 6848//6086 6850//4220 6939//4220 +f 5475//4837 5449//4811 6848//6086 6938//6139 +f 6938//6139 6862//6094 5026//4388 5475//4837 +f 6939//4220 6866//4220 6862//6094 6938//6139 +f 6940//6140 6863//6095 6865//4220 6941//4220 +f 5070//4432 5032//4394 6863//6095 6940//6140 +f 6940//6140 6942//6141 5074//4436 5070//4432 +f 6941//4220 6943//4220 6942//6141 6940//6140 +f 6944//6142 6942//6141 6943//4220 6945//4220 +f 5100//4462 5074//4436 6942//6141 6944//6142 +f 6944//6142 6883//6107 5104//4466 5100//4462 +f 6945//4220 6887//4220 6883//6107 6944//6142 +f 6946//6143 6884//6108 6886//4220 6947//4220 +f 5160//4522 5134//4496 6884//6108 6946//6143 +f 6946//6143 6898//6116 5164//4526 5160//4522 +f 6947//4220 6902//4220 6898//6116 6946//6143 +f 6948//6144 6899//6117 6901//4220 6949//4220 +f 5220//4582 5194//4556 6899//6117 6948//6144 +f 6948//6144 6913//6125 5224//4586 5220//4582 +f 6949//4220 6917//4220 6913//6125 6948//6144 +f 6950//6145 6914//6126 6916//4220 6951//4220 +f 5280//4642 5254//4616 6914//6126 6950//6145 +f 6950//6145 6928//6134 5284//4646 5280//4642 +f 6951//4220 6930//4220 6928//6134 6950//6145 +f 6952//4220 6953//4220 6835//4220 6834//4220 +f 6954//4220 6955//4220 6953//4220 6952//4220 +f 6952//4220 6956//4220 6957//4220 6954//4220 +f 6834//4220 6836//4220 6956//4220 6952//4220 +f 6958//4220 6959//4220 6850//4220 6849//4220 +f 6960//4220 6961//4220 6959//4220 6958//4220 +f 6958//4220 6962//4220 6963//4220 6960//4220 +f 6849//4220 6851//4220 6962//4220 6958//4220 +f 6964//4220 6965//4220 6865//4220 6864//4220 +f 6966//4220 6967//4220 6965//4220 6964//4220 +f 6964//4220 6968//4220 6969//4220 6966//4220 +f 6864//4220 6866//4220 6968//4220 6964//4220 +f 6970//4220 6971//4220 6886//4220 6885//4220 +f 6972//4220 6973//4220 6971//4220 6970//4220 +f 6970//4220 6974//4220 6975//4220 6972//4220 +f 6885//4220 6887//4220 6974//4220 6970//4220 +f 6976//4220 6977//4220 6901//4220 6900//4220 +f 6978//4220 6979//4220 6977//4220 6976//4220 +f 6976//4220 6980//4220 6981//4220 6978//4220 +f 6900//4220 6902//4220 6980//4220 6976//4220 +f 6982//4220 6983//4220 6916//4220 6915//4220 +f 6984//4220 6985//4220 6983//4220 6982//4220 +f 6982//4220 6986//4220 6987//4220 6984//4220 +f 6915//4220 6917//4220 6986//4220 6982//4220 +f 6988//4220 4498//4220 4437//4220 6929//4220 +f 6989//4220 4500//4220 4498//4220 6988//4220 +f 6988//4220 6990//4220 6991//4220 6989//4220 +f 6929//4220 6930//4220 6990//4220 6988//4220 +f 6992//4220 6993//4220 6994//4220 6995//4220 +f 6934//4220 6933//4220 6993//4220 6992//4220 +f 6992//4220 6956//4220 6836//4220 6934//4220 +f 6995//4220 6957//4220 6956//4220 6992//4220 +f 6996//4220 6953//4220 6955//4220 6997//4220 +f 6937//4220 6835//4220 6953//4220 6996//4220 +f 6996//4220 6962//4220 6851//4220 6937//4220 +f 6997//4220 6963//4220 6962//4220 6996//4220 +f 6998//4220 6959//4220 6961//4220 6999//4220 +f 6939//4220 6850//4220 6959//4220 6998//4220 +f 6998//4220 6968//4220 6866//4220 6939//4220 +f 6999//4220 6969//4220 6968//4220 6998//4220 +f 7000//4220 6965//4220 6967//4220 7001//4220 +f 6941//4220 6865//4220 6965//4220 7000//4220 +f 7000//4220 7002//4220 6943//4220 6941//4220 +f 7001//4220 7003//4220 7002//4220 7000//4220 +f 7004//4220 7002//4220 7003//4220 7005//4220 +f 6945//4220 6943//4220 7002//4220 7004//4220 +f 7004//4220 6974//4220 6887//4220 6945//4220 +f 7005//4220 6975//4220 6974//4220 7004//4220 +f 7006//4220 6971//4220 6973//4220 7007//4220 +f 6947//4220 6886//4220 6971//4220 7006//4220 +f 7006//4220 6980//4220 6902//4220 6947//4220 +f 7007//4220 6981//4220 6980//4220 7006//4220 +f 7008//4220 6977//4220 6979//4220 7009//4220 +f 6949//4220 6901//4220 6977//4220 7008//4220 +f 7008//4220 6986//4220 6917//4220 6949//4220 +f 7009//4220 6987//4220 6986//4220 7008//4220 +f 7010//4220 6983//4220 6985//4220 7011//4220 +f 6951//4220 6916//4220 6983//4220 7010//4220 +f 7010//4220 6990//4220 6930//4220 6951//4220 +f 7011//4220 6991//4220 6990//4220 7010//4220 +f 7012//4220 7013//4220 6955//4220 6954//4220 +f 7014//4220 7015//4220 7013//4220 7012//4220 +f 7012//4220 7016//4220 7017//4220 7014//4220 +f 6954//4220 6957//4220 7016//4220 7012//4220 +f 7018//4220 7019//4220 6961//4220 6960//4220 +f 7020//4220 7021//4220 7019//4220 7018//4220 +f 7018//4220 7022//4220 7023//4220 7020//4220 +f 6960//4220 6963//4220 7022//4220 7018//4220 +f 7024//4220 7025//4220 6967//4220 6966//4220 +f 7026//4220 7027//4220 7025//4220 7024//4220 +f 7024//4220 7028//4220 7029//4220 7026//4220 +f 6966//4220 6969//4220 7028//4220 7024//4220 +f 7030//4220 7031//4220 6973//4220 6972//4220 +f 7032//4220 7033//4220 7031//4220 7030//4220 +f 7030//4220 7034//4220 7035//4220 7032//4220 +f 6972//4220 6975//4220 7034//4220 7030//4220 +f 7036//4220 7037//4220 6979//4220 6978//4220 +f 7038//4220 7039//4220 7037//4220 7036//4220 +f 7036//4220 7040//4220 7041//4220 7038//4220 +f 6978//4220 6981//4220 7040//4220 7036//4220 +f 7042//4220 7043//4220 6985//4220 6984//4220 +f 7044//4220 7045//4220 7043//4220 7042//4220 +f 7042//4220 7046//4220 7047//4220 7044//4220 +f 6984//4220 6987//4220 7046//4220 7042//4220 +f 7048//4220 4560//4220 4500//4220 6989//4220 +f 7049//4220 4562//4220 4560//4220 7048//4220 +f 7048//4220 7050//4220 7051//4220 7049//4220 +f 6989//4220 6991//4220 7050//4220 7048//4220 +f 7052//4220 7053//4220 7054//4220 7055//4220 +f 6995//4220 6994//4220 7053//4220 7052//4220 +f 7052//4220 7016//4220 6957//4220 6995//4220 +f 7055//4220 7017//4220 7016//4220 7052//4220 +f 7056//4220 7013//4220 7015//4220 7057//4220 +f 6997//4220 6955//4220 7013//4220 7056//4220 +f 7056//4220 7022//4220 6963//4220 6997//4220 +f 7057//4220 7023//4220 7022//4220 7056//4220 +f 7058//4220 7019//4220 7021//4220 7059//4220 +f 6999//4220 6961//4220 7019//4220 7058//4220 +f 7058//4220 7028//4220 6969//4220 6999//4220 +f 7059//4220 7029//4220 7028//4220 7058//4220 +f 7060//4220 7025//4220 7027//4220 7061//4220 +f 7001//4220 6967//4220 7025//4220 7060//4220 +f 7060//4220 7062//4220 7003//4220 7001//4220 +f 7061//4220 7063//4220 7062//4220 7060//4220 +f 7064//4220 7062//4220 7063//4220 7065//4220 +f 7005//4220 7003//4220 7062//4220 7064//4220 +f 7064//4220 7034//4220 6975//4220 7005//4220 +f 7065//4220 7035//4220 7034//4220 7064//4220 +f 7066//4220 7031//4220 7033//4220 7067//4220 +f 7007//4220 6973//4220 7031//4220 7066//4220 +f 7066//4220 7040//4220 6981//4220 7007//4220 +f 7067//4220 7041//4220 7040//4220 7066//4220 +f 7068//4220 7037//4220 7039//4220 7069//4220 +f 7009//4220 6979//4220 7037//4220 7068//4220 +f 7068//4220 7046//4220 6987//4220 7009//4220 +f 7069//4220 7047//4220 7046//4220 7068//4220 +f 7070//4220 7043//4220 7045//4220 7071//4220 +f 7011//4220 6985//4220 7043//4220 7070//4220 +f 7070//4220 7050//4220 6991//4220 7011//4220 +f 7071//4220 7051//4220 7050//4220 7070//4220 +f 7072//4220 7073//4220 7015//4220 7014//4220 +f 7074//4220 7075//4220 7073//4220 7072//4220 +f 7072//4220 7076//4220 7077//4220 7074//4220 +f 7014//4220 7017//4220 7076//4220 7072//4220 +f 7078//4220 7079//4220 7021//4220 7020//4220 +f 7080//4220 7081//4220 7079//4220 7078//4220 +f 7078//4220 7082//4220 7083//4220 7080//4220 +f 7020//4220 7023//4220 7082//4220 7078//4220 +f 7084//4220 7085//4220 7027//4220 7026//4220 +f 7086//4220 7087//4220 7085//4220 7084//4220 +f 7084//4220 7088//4220 7089//4220 7086//4220 +f 7026//4220 7029//4220 7088//4220 7084//4220 +f 7090//4220 7091//4220 7033//4220 7032//4220 +f 7092//4220 7093//4220 7091//4220 7090//4220 +f 7090//4220 7094//4220 7095//4220 7092//4220 +f 7032//4220 7035//4220 7094//4220 7090//4220 +f 7096//4220 7097//4220 7039//4220 7038//4220 +f 7098//4220 7099//4220 7097//4220 7096//4220 +f 7096//4220 7100//4220 7101//4220 7098//4220 +f 7038//4220 7041//4220 7100//4220 7096//4220 +f 7102//4220 7103//4220 7045//4220 7044//4220 +f 7104//4220 7105//4220 7103//4220 7102//4220 +f 7102//4220 7106//4220 7107//4220 7104//4220 +f 7044//4220 7047//4220 7106//4220 7102//4220 +f 7108//4220 4622//4220 4562//4220 7049//4220 +f 7109//4220 4624//4220 4622//4220 7108//4220 +f 7108//4220 7110//4220 7111//4220 7109//4220 +f 7049//4220 7051//4220 7110//4220 7108//4220 +f 7112//4220 7113//4220 7114//4220 7115//4220 +f 7055//4220 7054//4220 7113//4220 7112//4220 +f 7112//4220 7076//4220 7017//4220 7055//4220 +f 7115//4220 7077//4220 7076//4220 7112//4220 +f 7116//4220 7073//4220 7075//4220 7117//4220 +f 7057//4220 7015//4220 7073//4220 7116//4220 +f 7116//4220 7082//4220 7023//4220 7057//4220 +f 7117//4220 7083//4220 7082//4220 7116//4220 +f 7118//4220 7079//4220 7081//4220 7119//4220 +f 7059//4220 7021//4220 7079//4220 7118//4220 +f 7118//4220 7088//4220 7029//4220 7059//4220 +f 7119//4220 7089//4220 7088//4220 7118//4220 +f 7120//4220 7085//4220 7087//4220 7121//4220 +f 7061//4220 7027//4220 7085//4220 7120//4220 +f 7120//4220 7122//4220 7063//4220 7061//4220 +f 7121//4220 7123//4220 7122//4220 7120//4220 +f 7124//4220 7122//4220 7123//4220 7125//4220 +f 7065//4220 7063//4220 7122//4220 7124//4220 +f 7124//4220 7094//4220 7035//4220 7065//4220 +f 7125//4220 7095//4220 7094//4220 7124//4220 +f 7126//4220 7091//4220 7093//4220 7127//4220 +f 7067//4220 7033//4220 7091//4220 7126//4220 +f 7126//4220 7100//4220 7041//4220 7067//4220 +f 7127//4220 7101//4220 7100//4220 7126//4220 +f 7128//4220 7097//4220 7099//4220 7129//4220 +f 7069//4220 7039//4220 7097//4220 7128//4220 +f 7128//4220 7106//4220 7047//4220 7069//4220 +f 7129//4220 7107//4220 7106//4220 7128//4220 +f 7130//4220 7103//4220 7105//4220 7131//4220 +f 7071//4220 7045//4220 7103//4220 7130//4220 +f 7130//4220 7110//4220 7051//4220 7071//4220 +f 7131//4220 7111//4220 7110//4220 7130//4220 +f 7132//4220 7133//4220 7075//4220 7074//4220 +f 7134//4220 7133//4220 7132//4220 7135//4220 +f 7132//4220 7136//4220 7137//4220 7135//4220 +f 7074//4220 7077//4220 7136//4220 7132//4220 +f 7138//4220 7139//4220 7081//4220 7080//4220 +f 7140//4220 7139//4220 7138//4220 7141//4220 +f 7138//4220 7142//4220 7143//4220 7141//4220 +f 7080//4220 7083//4220 7142//4220 7138//4220 +f 7144//4220 7145//4220 7087//4220 7086//4220 +f 7146//4220 7145//4220 7144//4220 7147//4220 +f 7144//4220 7148//4220 7149//4220 7147//4220 +f 7086//4220 7089//4220 7148//4220 7144//4220 +f 7150//4220 7151//4220 7093//4220 7092//4220 +f 7152//4220 7151//4220 7150//4220 7153//4220 +f 7150//4220 7154//4220 7155//4220 7153//4220 +f 7092//4220 7095//4220 7154//4220 7150//4220 +f 7156//4220 7157//4220 7099//4220 7098//4220 +f 7158//4220 7157//4220 7156//4220 7159//4220 +f 7156//4220 7160//4220 7161//4220 7159//4220 +f 7098//4220 7101//4220 7160//4220 7156//4220 +f 7162//4220 7163//4220 7105//4220 7104//4220 +f 7164//4220 7163//4220 7162//4220 7165//4220 +f 7162//4220 7166//4220 7167//4220 7165//4220 +f 7104//4220 7107//4220 7166//4220 7162//4220 +f 7168//4220 4684//4220 4624//4220 7109//4220 +f 4685//4220 4684//4220 7168//4220 7169//4220 +f 7168//4220 7170//4220 7171//4220 7169//4220 +f 7109//4220 7111//4220 7170//4220 7168//4220 +f 7172//4220 7173//4220 7174//4220 7175//4220 +f 7115//4220 7114//4220 7172//4220 7175//4220 +f 7175//4220 7136//4220 7077//4220 7115//4220 +f 7136//4220 7175//4220 7174//4220 7137//4220 +f 7176//4220 7133//4220 7134//4220 7177//4220 +f 7117//4220 7075//4220 7133//4220 7176//4220 +f 7176//4220 7142//4220 7083//4220 7117//4220 +f 7142//4220 7176//4220 7177//4220 7143//4220 +f 7178//4220 7139//4220 7140//4220 7179//4220 +f 7119//4220 7081//4220 7139//4220 7178//4220 +f 7178//4220 7148//4220 7089//4220 7119//4220 +f 7148//4220 7178//4220 7179//4220 7149//4220 +f 7180//4220 7145//4220 7146//4220 7181//4220 +f 7121//4220 7087//4220 7145//4220 7180//4220 +f 7180//4220 7182//4220 7123//4220 7121//4220 +f 7182//4220 7180//4220 7181//4220 7183//4220 +f 7184//4220 7182//4220 7183//4220 7185//4220 +f 7125//4220 7123//4220 7182//4220 7184//4220 +f 7184//4220 7154//4220 7095//4220 7125//4220 +f 7154//4220 7184//4220 7185//4220 7155//4220 +f 7186//4220 7151//4220 7152//4220 7187//4220 +f 7127//4220 7093//4220 7151//4220 7186//4220 +f 7186//4220 7160//4220 7101//4220 7127//4220 +f 7160//4220 7186//4220 7187//4220 7161//4220 +f 7188//4220 7157//4220 7158//4220 7189//4220 +f 7129//4220 7099//4220 7157//4220 7188//4220 +f 7188//4220 7166//4220 7107//4220 7129//4220 +f 7166//4220 7188//4220 7189//4220 7167//4220 +f 7190//4220 7163//4220 7164//4220 7191//4220 +f 7131//4220 7105//4220 7163//4220 7190//4220 +f 7190//4220 7170//4220 7111//4220 7131//4220 +f 7170//4220 7190//4220 7191//4220 7171//4220 +f 7192//4220 7193//4220 7134//4220 7135//4220 +f 7135//4220 7137//4220 7194//4220 7192//4220 +f 7195//4220 7196//4220 7140//4220 7141//4220 +f 7141//4220 7143//4220 7197//4220 7195//4220 +f 7198//4220 7199//4220 7146//4220 7147//4220 +f 7147//4220 7149//4220 7200//4220 7198//4220 +f 7201//4220 7202//4220 7152//4220 7153//4220 +f 7153//4220 7155//4220 7203//4220 7201//4220 +f 7204//4220 7205//4220 7158//4220 7159//4220 +f 7159//4220 7161//4220 7206//4220 7204//4220 +f 7207//4220 7208//4220 7164//4220 7165//4220 +f 7165//4220 7167//4220 7209//4220 7207//4220 +f 7210//4220 4728//4220 4685//4220 7169//4220 +f 7169//4220 7171//4220 7211//4220 7210//4220 +f 7212//4220 7213//4220 6829//4220 6828//4220 +f 7214//4220 7215//4220 7213//4220 7212//4220 +f 7212//4220 7216//4220 7217//4220 7214//4220 +f 6828//4220 6830//4220 7216//4220 7212//4220 +f 7218//4220 7219//4220 6844//4220 6843//4220 +f 7220//4220 7221//4220 7219//4220 7218//4220 +f 7218//4220 7222//4220 7223//4220 7220//4220 +f 6843//4220 6845//4220 7222//4220 7218//4220 +f 7224//4220 7225//4220 6859//4220 6858//4220 +f 7226//4220 7227//4220 7225//4220 7224//4220 +f 7224//4220 7228//4220 7229//4220 7226//4220 +f 6858//4220 6860//4220 7228//4220 7224//4220 +f 7230//4220 7231//4220 6874//4220 6873//4220 +f 7232//4220 7233//4220 7231//4220 7230//4220 +f 7230//4220 7234//4220 7235//4220 7232//4220 +f 6873//4220 6875//4220 7234//4220 7230//4220 +f 7236//4220 7234//4220 6875//4220 6880//4220 +f 7237//4220 7235//4220 7234//4220 7236//4220 +f 7236//4220 7238//4220 7239//4220 7237//4220 +f 6880//4220 6881//4220 7238//4220 7236//4220 +f 7240//4220 7241//4220 6895//4220 6894//4220 +f 7242//4220 7243//4220 7241//4220 7240//4220 +f 7240//4220 7244//4220 7245//4220 7242//4220 +f 6894//4220 6896//4220 7244//4220 7240//4220 +f 7246//4220 7247//4220 6910//4220 6909//4220 +f 7248//4220 7249//4220 7247//4220 7246//4220 +f 7246//4220 7250//4220 7251//4220 7248//4220 +f 6909//4220 6911//4220 7250//4220 7246//4220 +f 7252//4220 7253//4220 6925//4220 6924//4220 +f 7254//4220 7255//4220 7253//4220 7252//4220 +f 7252//4220 7256//4220 7257//4220 7254//4220 +f 6924//4220 6926//4220 7256//4220 7252//4220 +f 7258//6146 6841//6082 6844//4220 7259//4220 +f 7260//6147 6842//6083 6841//6082 7258//6146 +f 7258//6146 6826//6073 6803//6050 7260//6147 +f 7259//4220 6830//4220 6826//6073 7258//6146 +f 7261//6148 6856//6091 6859//4220 7262//4220 +f 7263//6149 6857//6092 6856//6091 7261//6148 +f 7261//6148 6840//6081 6839//6080 7263//6149 +f 7262//4220 6845//4220 6840//6081 7261//6148 +f 7264//6150 6871//6100 6874//4220 7265//4220 +f 7266//6151 6872//6101 6871//6100 7264//6150 +f 7264//6150 6855//6090 6854//6089 7266//6151 +f 7265//4220 6860//4220 6855//6090 7264//6150 +f 7267//6152 6892//6113 6895//4220 7268//4220 +f 7269//6153 6893//6114 6892//6113 7267//6152 +f 7267//6152 6879//6105 6878//6104 7269//6153 +f 7268//4220 6881//4220 6879//6105 7267//6152 +f 7270//6154 6907//6122 6910//4220 7271//4220 +f 7272//6155 6908//6123 6907//6122 7270//6154 +f 7270//6154 6891//6112 6890//6111 7272//6155 +f 7271//4220 6896//4220 6891//6112 7270//6154 +f 7273//6156 6922//6131 6925//4220 7274//4220 +f 7275//6157 6923//6132 6922//6131 7273//6156 +f 7273//6156 6906//6121 6905//6120 7275//6157 +f 7274//4220 6911//4220 6906//6121 7273//6156 +f 7276//6158 4797//4306 4796//4220 7277//4220 +f 7278//6159 4799//4308 4797//4306 7276//6158 +f 7276//6158 6921//6130 6920//6129 7278//6159 +f 7277//4220 6926//4220 6921//6130 7276//6158 +f 7279//4220 7219//4220 7221//4220 7280//4220 +f 7259//4220 6844//4220 7219//4220 7279//4220 +f 7279//4220 7216//4220 6830//4220 7259//4220 +f 7280//4220 7217//4220 7216//4220 7279//4220 +f 7281//4220 7225//4220 7227//4220 7282//4220 +f 7262//4220 6859//4220 7225//4220 7281//4220 +f 7281//4220 7222//4220 6845//4220 7262//4220 +f 7282//4220 7223//4220 7222//4220 7281//4220 +f 7283//4220 7231//4220 7233//4220 7284//4220 +f 7265//4220 6874//4220 7231//4220 7283//4220 +f 7283//4220 7228//4220 6860//4220 7265//4220 +f 7284//4220 7229//4220 7228//4220 7283//4220 +f 7285//4220 7241//4220 7243//4220 7286//4220 +f 7268//4220 6895//4220 7241//4220 7285//4220 +f 7285//4220 7238//4220 6881//4220 7268//4220 +f 7286//4220 7239//4220 7238//4220 7285//4220 +f 7287//4220 7247//4220 7249//4220 7288//4220 +f 7271//4220 6910//4220 7247//4220 7287//4220 +f 7287//4220 7244//4220 6896//4220 7271//4220 +f 7288//4220 7245//4220 7244//4220 7287//4220 +f 7289//4220 7253//4220 7255//4220 7290//4220 +f 7274//4220 6925//4220 7253//4220 7289//4220 +f 7289//4220 7250//4220 6911//4220 7274//4220 +f 7290//4220 7251//4220 7250//4220 7289//4220 +f 7291//4220 4815//4220 4814//4220 7292//4220 +f 7277//4220 4796//4220 4815//4220 7291//4220 +f 7291//4220 7256//4220 6926//4220 7277//4220 +f 7292//4220 7257//4220 7256//4220 7291//4220 +f 7293//4220 7294//4220 7215//4220 7214//4220 +f 7295//4220 7296//4220 7294//4220 7293//4220 +f 7293//4220 7297//4220 7298//4220 7295//4220 +f 7214//4220 7217//4220 7297//4220 7293//4220 +f 7299//4220 7300//4220 7221//4220 7220//4220 +f 7301//4220 7302//4220 7300//4220 7299//4220 +f 7299//4220 7303//4220 7304//4220 7301//4220 +f 7220//4220 7223//4220 7303//4220 7299//4220 +f 7305//4220 7306//4220 7227//4220 7226//4220 +f 7307//4220 7308//4220 7306//4220 7305//4220 +f 7305//4220 7309//4220 7310//4220 7307//4220 +f 7226//4220 7229//4220 7309//4220 7305//4220 +f 7311//4220 7312//4220 7233//4220 7232//4220 +f 7313//4220 7314//4220 7312//4220 7311//4220 +f 7311//4220 7315//4220 7316//4220 7313//4220 +f 7232//4220 7235//4220 7315//4220 7311//4220 +f 7317//4220 7315//4220 7235//4220 7237//4220 +f 7318//4220 7316//4220 7315//4220 7317//4220 +f 7317//4220 7319//4220 7320//4220 7318//4220 +f 7237//4220 7239//4220 7319//4220 7317//4220 +f 7321//4220 7322//4220 7243//4220 7242//4220 +f 7323//4220 7324//4220 7322//4220 7321//4220 +f 7321//4220 7325//4220 7326//4220 7323//4220 +f 7242//4220 7245//4220 7325//4220 7321//4220 +f 7327//4220 7328//4220 7249//4220 7248//4220 +f 7329//4220 7330//4220 7328//4220 7327//4220 +f 7327//4220 7331//4220 7332//4220 7329//4220 +f 7248//4220 7251//4220 7331//4220 7327//4220 +f 7333//4220 7334//4220 7255//4220 7254//4220 +f 7335//4220 7336//4220 7334//4220 7333//4220 +f 7333//4220 7337//4220 7338//4220 7335//4220 +f 7254//4220 7257//4220 7337//4220 7333//4220 +f 7339//4220 7300//4220 7302//4220 7340//4220 +f 7280//4220 7221//4220 7300//4220 7339//4220 +f 7339//4220 7297//4220 7217//4220 7280//4220 +f 7340//4220 7298//4220 7297//4220 7339//4220 +f 7341//4220 7306//4220 7308//4220 7342//4220 +f 7282//4220 7227//4220 7306//4220 7341//4220 +f 7341//4220 7303//4220 7223//4220 7282//4220 +f 7342//4220 7304//4220 7303//4220 7341//4220 +f 7343//4220 7312//4220 7314//4220 7344//4220 +f 7284//4220 7233//4220 7312//4220 7343//4220 +f 7343//4220 7309//4220 7229//4220 7284//4220 +f 7344//4220 7310//4220 7309//4220 7343//4220 +f 7345//4220 7322//4220 7324//4220 7346//4220 +f 7286//4220 7243//4220 7322//4220 7345//4220 +f 7345//4220 7319//4220 7239//4220 7286//4220 +f 7346//4220 7320//4220 7319//4220 7345//4220 +f 7347//4220 7328//4220 7330//4220 7348//4220 +f 7288//4220 7249//4220 7328//4220 7347//4220 +f 7347//4220 7325//4220 7245//4220 7288//4220 +f 7348//4220 7326//4220 7325//4220 7347//4220 +f 7349//4220 7334//4220 7336//4220 7350//4220 +f 7290//4220 7255//4220 7334//4220 7349//4220 +f 7349//4220 7331//4220 7251//4220 7290//4220 +f 7350//4220 7332//4220 7331//4220 7349//4220 +f 7351//4220 4877//4220 4876//4220 7352//4220 +f 7292//4220 4814//4220 4877//4220 7351//4220 +f 7351//4220 7337//4220 7257//4220 7292//4220 +f 7352//4220 7338//4220 7337//4220 7351//4220 +f 7353//4220 7354//4220 7296//4220 7295//4220 +f 7355//4220 7356//4220 7354//4220 7353//4220 +f 7353//4220 7357//4220 7194//4220 7355//4220 +f 7295//4220 7298//4220 7357//4220 7353//4220 +f 7358//4220 7359//4220 7302//4220 7301//4220 +f 7360//4220 7193//4220 7359//4220 7358//4220 +f 7358//4220 7361//4220 7197//4220 7360//4220 +f 7301//4220 7304//4220 7361//4220 7358//4220 +f 7362//4220 7363//4220 7308//4220 7307//4220 +f 7364//4220 7196//4220 7363//4220 7362//4220 +f 7362//4220 7365//4220 7200//4220 7364//4220 +f 7307//4220 7310//4220 7365//4220 7362//4220 +f 7366//4220 7367//4220 7314//4220 7313//4220 +f 7368//4220 7199//4220 7367//4220 7366//4220 +f 7366//4220 7369//4220 7370//4220 7368//4220 +f 7313//4220 7316//4220 7369//4220 7366//4220 +f 7371//4220 7369//4220 7316//4220 7318//4220 +f 7372//4220 7370//4220 7369//4220 7371//4220 +f 7371//4220 7373//4220 7203//4220 7372//4220 +f 7318//4220 7320//4220 7373//4220 7371//4220 +f 7374//4220 7375//4220 7324//4220 7323//4220 +f 7376//4220 7202//4220 7375//4220 7374//4220 +f 7374//4220 7377//4220 7206//4220 7376//4220 +f 7323//4220 7326//4220 7377//4220 7374//4220 +f 7378//4220 7379//4220 7330//4220 7329//4220 +f 7380//4220 7205//4220 7379//4220 7378//4220 +f 7378//4220 7381//4220 7209//4220 7380//4220 +f 7329//4220 7332//4220 7381//4220 7378//4220 +f 7382//4220 7383//4220 7336//4220 7335//4220 +f 7384//4220 7208//4220 7383//4220 7382//4220 +f 7382//4220 7385//4220 7211//4220 7384//4220 +f 7335//4220 7338//4220 7385//4220 7382//4220 +f 7386//6160 7387//6161 7388//6162 7389//6163 +f 7390//6164 6692//5978 7387//6161 7386//6160 +f 7386//6160 6827//6074 6829//4220 7390//6164 +f 7389//6163 6800//6047 6827//6074 7386//6160 +f 7391//6165 7392//6166 7393//6167 7394//6168 +f 5327//4689 5326//4688 7392//6166 7391//6165 +f 7391//6165 6932//6136 5332//4694 5327//4689 +f 7394//6168 6933//4220 6932//6136 7391//6165 +f 7395//6169 7396//6170 7397//6171 7398//6172 +f 7394//6168 7393//6167 7396//6170 7395//6169 +f 7395//6169 6993//4220 6933//4220 7394//6168 +f 7398//6172 6994//4220 6993//4220 7395//6169 +f 7399//6173 7400//6174 7401//6175 7402//6176 +f 7398//6172 7397//6171 7400//6174 7399//6173 +f 7399//6173 7053//4220 6994//4220 7398//6172 +f 7402//6176 7054//4220 7053//4220 7399//6173 +f 7403//6177 7404//6178 6714//5993 7405//6179 +f 7402//6176 7401//6175 7404//6178 7403//6177 +f 7403//6177 7113//4220 7054//4220 7402//6176 +f 7405//6179 7114//4220 7113//4220 7403//6177 +f 7406//6180 6709//5990 6708//5989 7407//6181 +f 7405//6179 6714//5993 6709//5990 7406//6180 +f 7406//6180 7172//4220 7114//4220 7405//6179 +f 7172//4220 7406//6180 7407//6181 7173//4220 +f 7408//4220 7359//4220 7193//4220 7192//4220 +f 7340//4220 7302//4220 7359//4220 7408//4220 +f 7408//4220 7357//4220 7298//4220 7340//4220 +f 7192//4220 7194//4220 7357//4220 7408//4220 +f 7409//4220 7363//4220 7196//4220 7195//4220 +f 7342//4220 7308//4220 7363//4220 7409//4220 +f 7409//4220 7361//4220 7304//4220 7342//4220 +f 7195//4220 7197//4220 7361//4220 7409//4220 +f 7410//4220 7367//4220 7199//4220 7198//4220 +f 7344//4220 7314//4220 7367//4220 7410//4220 +f 7410//4220 7365//4220 7310//4220 7344//4220 +f 7198//4220 7200//4220 7365//4220 7410//4220 +f 7411//4220 7375//4220 7202//4220 7201//4220 +f 7346//4220 7324//4220 7375//4220 7411//4220 +f 7411//4220 7373//4220 7320//4220 7346//4220 +f 7201//4220 7203//4220 7373//4220 7411//4220 +f 7412//4220 7379//4220 7205//4220 7204//4220 +f 7348//4220 7330//4220 7379//4220 7412//4220 +f 7412//4220 7377//4220 7326//4220 7348//4220 +f 7204//4220 7206//4220 7377//4220 7412//4220 +f 7413//4220 7383//4220 7208//4220 7207//4220 +f 7350//4220 7336//4220 7383//4220 7413//4220 +f 7413//4220 7381//4220 7332//4220 7350//4220 +f 7207//4220 7209//4220 7381//4220 7413//4220 +f 7414//4220 4940//4220 4728//4220 7210//4220 +f 7352//4220 4876//4220 4940//4220 7414//4220 +f 7414//4220 7385//4220 7338//4220 7352//4220 +f 7210//4220 7211//4220 7385//4220 7414//4220 +f 7174//4220 7173//4220 7356//4220 7355//4220 +f 7355//4220 7194//4220 7137//4220 7174//4220 +f 7177//4220 7134//4220 7193//4220 7360//4220 +f 7360//4220 7197//4220 7143//4220 7177//4220 +f 7179//4220 7140//4220 7196//4220 7364//4220 +f 7364//4220 7200//4220 7149//4220 7179//4220 +f 7181//4220 7146//4220 7199//4220 7368//4220 +f 7368//4220 7370//4220 7183//4220 7181//4220 +f 7185//4220 7183//4220 7370//4220 7372//4220 +f 7372//4220 7203//4220 7155//4220 7185//4220 +f 7187//4220 7152//4220 7202//4220 7376//4220 +f 7376//4220 7206//4220 7161//4220 7187//4220 +f 7189//4220 7158//4220 7205//4220 7380//4220 +f 7380//4220 7209//4220 7167//4220 7189//4220 +f 7191//4220 7164//4220 7208//4220 7384//4220 +f 7384//4220 7211//4220 7171//4220 7191//4220 +f 7407//6181 6708//5989 6704//5987 7415//6182 +f 7415//6182 7356//4220 7173//4220 7407//6181 +f 7416//6183 6703//5986 6682//5971 7417//6184 +f 7415//6182 6704//5987 6703//5986 7416//6183 +f 7416//6183 7354//4220 7356//4220 7415//6182 +f 7417//6184 7296//4220 7354//4220 7416//6183 +f 7418//6185 6681//5970 6685//5974 7419//6186 +f 7417//6184 6682//5971 6681//5970 7418//6185 +f 7418//6185 7294//4220 7296//4220 7417//6184 +f 7419//6186 7215//4220 7294//4220 7418//6185 +f 7420//6187 6690//5976 6692//5978 7390//6164 +f 7419//6186 6685//5974 6690//5976 7420//6187 +f 7420//6187 7213//4220 7215//4220 7419//6186 +f 7390//6164 6829//4220 7213//4220 7420//6187 +f 7421//6188 7422//4391 5029//4391 5028//4390 +f 6566//5871 6565//5870 7422//4391 7421//6188 +f 7421//6188 7423//6189 6571//5876 6566//5871 +f 5028//4390 5031//4393 7423//6189 7421//6188 +f 7424//6190 7423//6189 5031//4393 5071//4433 +f 6573//5878 6571//5876 7423//6189 7424//6190 +f 7424//6190 7425//4435 6577//5882 6573//5878 +f 5071//4433 5073//4435 7425//4435 7424//6190 +f 7426//4463 7425//4435 5073//4435 5101//4463 +f 6579//5884 6577//5882 7425//4435 7426//4463 +f 7426//4463 7427//4465 6583//5888 6579//5884 +f 5101//4463 5103//4465 7427//4465 7426//4463 +f 7428//4493 7427//4465 5103//4465 5131//4493 +f 6585//5890 6583//5888 7427//4465 7428//4493 +f 7428//4493 7429//4495 6589//5894 6585//5890 +f 5131//4493 5133//4495 7429//4495 7428//4493 +f 7430//4523 7429//4495 5133//4495 5161//4523 +f 6591//5896 6589//5894 7429//4495 7430//4523 +f 7430//4523 7431//4525 6595//5900 6591//5896 +f 5161//4523 5163//4525 7431//4525 7430//4523 +f 7432//6191 7431//4525 5163//4525 5191//4553 +f 6597//5902 6595//5900 7431//4525 7432//6191 +f 7432//6191 7433//6192 6601//5906 6597//5902 +f 5191//4553 5193//4555 7433//6192 7432//6191 +f 7434//6193 7433//6192 5193//4555 5221//4583 +f 6603//5908 6601//5906 7433//6192 7434//6193 +f 7434//6193 7435//6194 6607//5912 6603//5908 +f 5221//4583 5223//4585 7435//6194 7434//6193 +f 7436//6195 7435//6194 5223//4585 5251//4613 +f 6609//5914 6607//5912 7435//6194 7436//6195 +f 7436//6195 7437//4615 6613//5918 6609//5914 +f 5251//4613 5253//4615 7437//4615 7436//6195 +f 7438//4643 7437//4615 5253//4615 5281//4643 +f 6615//5920 6613//5918 7437//4615 7438//4643 +f 7438//4643 7439//6196 6619//5924 6615//5920 +f 5281//4643 5283//4645 7439//6196 7438//4643 +f 7440//4673 7439//6196 5283//4645 5311//4673 +f 6621//5926 6619//5924 7439//6196 7440//4673 +f 7440//4673 4967//2771 4128//4073 6621//5926 +f 5311//4673 2770//2771 4967//2771 7440//4673 +f 7441//4690 6656//5961 5329//4691 5328//4690 +f 6626//5931 6625//5930 6656//5961 7441//4690 +f 7441//4690 6776//6024 6630//5935 6626//5931 +f 5328//4690 5331//4693 6776//6024 7441//4690 +f 7442//4735 6777//4736 5374//4736 5373//4735 +f 6634//5939 6633//5938 6777//4736 7442//4735 +f 7442//4735 7443//6197 6639//5944 6634//5939 +f 5373//4735 5376//4738 7443//6197 7442//4735 +f 7444//6198 7443//6197 5376//4738 5416//4778 +f 6641//5946 6639//5944 7443//6197 7444//6198 +f 7444//6198 7445//4780 6645//5950 6641//5946 +f 5416//4778 5418//4780 7445//4780 7444//6198 +f 7446//4808 7445//4780 5418//4780 5446//4808 +f 6647//5952 6645//5950 7445//4780 7446//4808 +f 7446//4808 7447//6199 6651//5956 6647//5952 +f 5446//4808 5448//4810 7447//6199 7446//4808 +f 7448//6200 7447//6199 5448//4810 5476//4838 +f 6653//5958 6651//5956 7447//6199 7448//6200 +f 7448//6200 7422//4391 6565//5870 6653//5958 +f 5476//4838 5029//4391 7422//4391 7448//6200 +f 7449//6201 7450//6202 5858//5220 5857//5219 +f 7266//6151 6854//6089 7450//6202 7449//6201 +f 7449//6201 7451//6203 6872//6101 7266//6151 +f 5857//5219 5860//5222 7451//6203 7449//6201 +f 7452//6204 7451//6203 5860//5222 5862//5224 +f 6868//6097 6872//6101 7451//6203 7452//6204 +f 7452//6204 7453//6205 6869//6098 6868//6097 +f 5862//5224 5864//5226 7453//6205 7452//6204 +f 7454//6206 7453//6205 5864//5226 5866//5228 +f 6877//6103 6869//6098 7453//6205 7454//6206 +f 7454//6206 7455//6207 6878//6104 6877//6103 +f 5866//5228 5868//5230 7455//6207 7454//6206 +f 7456//6208 7455//6207 5868//5230 5870//5232 +f 7269//6153 6878//6104 7455//6207 7456//6208 +f 7456//6208 7457//6209 6893//6114 7269//6153 +f 5870//5232 5872//5234 7457//6209 7456//6208 +f 7458//6210 7457//6209 5872//5234 5874//5236 +f 6889//6110 6893//6114 7457//6209 7458//6210 +f 7458//6210 7459//6211 6890//6111 6889//6110 +f 5874//5236 5876//5238 7459//6211 7458//6210 +f 7460//6212 7459//6211 5876//5238 5878//5240 +f 7272//6155 6890//6111 7459//6211 7460//6212 +f 7460//6212 7461//6213 6908//6123 7272//6155 +f 5878//5240 5880//5242 7461//6213 7460//6212 +f 7462//6214 7461//6213 5880//5242 5882//5244 +f 6904//6119 6908//6123 7461//6213 7462//6214 +f 7462//6214 7463//6215 6905//6120 6904//6119 +f 5882//5244 5884//5246 7463//6215 7462//6214 +f 7464//6216 7463//6215 5884//5246 5886//5248 +f 7275//6157 6905//6120 7463//6215 7464//6216 +f 7464//6216 7465//6217 6923//6132 7275//6157 +f 5886//5248 5888//5250 7465//6217 7464//6216 +f 7466//6218 7465//6217 5888//5250 5890//5252 +f 6919//6128 6923//6132 7465//6217 7466//6218 +f 7466//6218 7467//6219 6920//6129 6919//6128 +f 5890//5252 5892//5254 7467//6219 7466//6218 +f 7468//6220 7467//6219 5892//5254 5894//5256 +f 7278//6159 6920//6129 7467//6219 7468//6220 +f 7468//6220 4996//4365 4799//4308 7278//6159 +f 5894//5256 3380//3382 4996//4365 7468//6220 +f 7469//6221 7470//6222 5898//5260 5897//5259 +f 7389//6163 7388//6162 7470//6222 7469//6221 +f 7469//6221 6801//6048 6800//6047 7389//6163 +f 5897//5259 5900//5262 6801//6048 7469//6221 +f 7471//6223 6802//6049 5904//5266 5903//5265 +f 7260//6147 6803//6050 6802//6049 7471//6223 +f 7471//6223 7472//6224 6842//6083 7260//6147 +f 5903//5265 5906//5268 7472//6224 7471//6223 +f 7473//6225 7472//6224 5906//5268 5908//5270 +f 6838//6079 6842//6083 7472//6224 7473//6225 +f 7473//6225 7474//6226 6839//6080 6838//6079 +f 5908//5270 5910//5272 7474//6226 7473//6225 +f 7475//6227 7474//6226 5910//5272 5912//5274 +f 7263//6149 6839//6080 7474//6226 7475//6227 +f 7475//6227 7476//6228 6857//6092 7263//6149 +f 5912//5274 5914//5276 7476//6228 7475//6227 +f 7477//6229 7476//6228 5914//5276 5916//5278 +f 6853//6088 6857//6092 7476//6228 7477//6229 +f 7477//6229 7450//6202 6854//6089 6853//6088 +f 5916//5278 5858//5220 7450//6202 7477//6229 +f 7478//6230 6691//5977 6473//5807 6472//5806 +f 7387//6161 6692//5978 6691//5977 7478//6230 +f 7478//6230 7470//6222 7388//6162 7387//6161 +f 6472//5806 5898//5260 7470//6222 7478//6230 +f 7479//6231 5325//4687 5329//4691 6658//5963 +f 7392//6166 5326//4688 5325//4687 7479//6231 +f 7479//6231 7480//6232 7393//6167 7392//6166 +f 6658//5963 6660//5965 7480//6232 7479//6231 +f 7481//6233 7482//6234 6667//5811 6666//5811 +f 7400//6174 7397//6171 7482//6234 7481//6233 +f 7481//6233 7483//6235 7401//6175 7400//6174 +f 6666//5811 6669//5811 7483//6235 7481//6233 +f 7484//6236 7480//6232 6660//5965 6673//5968 +f 7396//6170 7393//6167 7480//6232 7484//6236 +f 7484//6236 7482//6234 7397//6171 7396//6170 +f 6673//5968 6667//5811 7482//6234 7484//6236 +f 7485//6237 7483//6235 6669//5811 6676//5811 +f 7404//6178 7401//6175 7483//6235 7485//6237 +f 7485//6237 6715//5994 6714//5993 7404//6178 +f 6676//5811 6678//5811 6715//5994 7485//6237 +f 7486//5811 7487//5811 6687//5811 6686//5811 +f 6699//5811 6696//5811 7487//5811 7486//5811 +f 7486//5811 7488//5811 6700//5817 6699//5811 +f 6686//5811 6688//5811 7488//5811 7486//5811 +f 7489//6238 6471//5805 6473//5807 6693//5979 +f 6695//5981 6461//5795 6471//5805 7489//6238 +f 7489//6238 7487//5811 6696//5811 6695//5981 +f 6693//5979 6687//5811 7487//5811 7489//6238 +f 7490//5811 7488//5811 6688//5811 6706//5811 +f 6732//5811 6700//5817 7488//5811 7490//5811 +f 7490//5811 7491//5811 6733//5811 6732//5811 +f 6706//5811 6707//5811 7491//5811 7490//5811 +f 7492//5811 7491//5811 6707//5811 6712//5817 +f 6723//5811 6733//5811 7491//5811 7492//5811 +f 6721//5811 6723//5811 7492//5811 7493//5817 +f 6713//5817 7493//5817 7492//5811 6712//5817 +f 7493//5817 6677//5811 6679//5817 6721//5811 +f 6713//5817 6678//5811 6677//5811 7493//5817 +f 7494//6239 5370//4732 5374//4736 6778//6025 +f 6935//6137 5371//4733 5370//4732 7494//6239 +f 7494//6239 5330//4692 5332//4694 6935//6137 +f 6778//6025 5331//4693 5330//4692 7494//6239 +f 7495//6240 5902//5264 5904//5266 6804//6051 +f 6787//6034 5410//4772 5902//5264 7495//6240 +f 7495//6240 5899//5261 5367//4729 6787//6034 +f 6804//6051 5900//5262 5899//5261 7495//6240 +f 7496//6241 7497//6242 7498//6243 7499//6244 +f 7500//6245 7496//6241 7499//6244 7501//6246 +f 7496//6241 7500//6245 7502//6247 7503//6248 +f 7497//6242 7496//6241 7503//6248 7504//6249 +f 7505//6250 7506//6251 7507//6252 7508//6253 +f 7509//6254 7505//6250 7508//6253 7510//6255 +f 7505//6250 7509//6254 7511//6256 7512//6257 +f 7506//6251 7505//6250 7512//6257 7513//6258 +f 7514//6259 7515//6260 7516//6261 7517//6262 +f 7518//6263 7514//6259 7517//6262 7519//6264 +f 7514//6259 7518//6263 7520//6265 7521//6266 +f 7515//6260 7514//6259 7521//6266 7522//6267 +f 7523//6268 7524//6269 7525//6270 7526//6271 +f 7527//6272 7523//6268 7526//6271 7528//6273 +f 7523//6268 7527//6272 7529//6274 7530//6275 +f 7524//6269 7523//6268 7530//6275 7531//6276 +f 7532//6277 7533//6278 7534//6279 7535//6280 +f 7536//6281 7532//6277 7535//6280 7537//6282 +f 7532//6277 7536//6281 7538//6283 7539//6284 +f 7533//6278 7532//6277 7539//6284 7540//6285 +f 7541//6286 7542//6287 7543//6288 7544//6289 +f 7500//6245 7541//6286 7544//6289 7502//6247 +f 7541//6286 7500//6245 7501//6246 7545//6290 +f 7542//6287 7541//6286 7545//6290 7546//6291 +f 7547//6292 7548//6293 7549//6294 7550//6295 +f 7542//6287 7547//6292 7550//6295 7543//6288 +f 7547//6292 7542//6287 7546//6291 7551//6296 +f 7548//6293 7547//6292 7551//6296 7552//6297 +f 7553//6298 7554//6299 7546//6291 7545//6290 +f 7555//6300 7553//6298 7545//6290 7501//6246 +f 7553//6298 7555//6300 7556//6301 7557//6302 +f 7554//6299 7553//6298 7557//6302 7558//6303 +f 7559//6304 7560//6305 7561//6306 7562//6307 +f 7555//6300 7559//6304 7562//6307 7556//6301 +f 7559//6304 7555//6300 7501//6246 7499//6244 +f 7560//6305 7559//6304 7499//6244 7498//6243 +f 7563//6308 7564//6309 7565//6310 7566//6311 +f 7548//6293 7563//6308 7566//6311 7549//6294 +f 7563//6308 7548//6293 7552//6297 7567//6312 +f 7564//6309 7563//6308 7567//6312 7568//6313 +f 7569//6314 7570//6315 7556//6301 7562//6307 +f 7571//6316 7569//6314 7562//6307 7561//6306 +f 7569//6314 7571//6316 7572//6317 7573//6318 +f 7570//6315 7569//6314 7573//6318 7574//6319 +f 7575//6320 7576//6321 7577//6322 7578//6323 +f 7571//6316 7575//6320 7578//6323 7572//6317 +f 7575//6320 7571//6316 7561//6306 7579//6324 +f 7576//6321 7575//6320 7579//6324 7580//6325 +f 7581//6326 7582//6327 7572//6317 7578//6323 +f 7583//6328 7581//6326 7578//6323 7577//6322 +f 7581//6326 7583//6328 7584//6329 7585//6330 +f 7582//6327 7581//6326 7585//6330 7586//6331 +f 7587//6332 7588//6333 7586//6331 7585//6330 +f 7589//6334 7587//6332 7585//6330 7584//6329 +f 7587//6332 7589//6334 7590//6335 7591//6336 +f 7588//6333 7587//6332 7591//6336 7592//6337 +f 7593//6338 7594//6339 7574//6319 7573//6318 +f 7582//6327 7593//6338 7573//6318 7572//6317 +f 7593//6338 7582//6327 7586//6331 7595//6340 +f 7594//6339 7593//6338 7595//6340 7596//6341 +f 7597//6342 7598//6343 7558//6303 7557//6302 +f 7570//6315 7597//6342 7557//6302 7556//6301 +f 7597//6342 7570//6315 7574//6319 7599//6344 +f 7598//6343 7597//6342 7599//6344 7600//6345 +f 7601//6346 7602//6347 7552//6297 7551//6296 +f 7554//6299 7601//6346 7551//6296 7546//6291 +f 7601//6346 7554//6299 7558//6303 7603//6348 +f 7602//6347 7601//6346 7603//6348 7604//6349 +f 7605//6350 7606//6351 7568//6313 7567//6312 +f 7602//6347 7605//6350 7567//6312 7552//6297 +f 7605//6350 7602//6347 7604//6349 7607//6352 +f 7606//6351 7605//6350 7607//6352 7608//6353 +f 7609//6354 7610//6355 7604//6349 7603//6348 +f 7598//6343 7609//6354 7603//6348 7558//6303 +f 7609//6354 7598//6343 7600//6345 7611//6356 +f 7610//6355 7609//6354 7611//6356 7612//6357 +f 7613//6358 7614//6359 7600//6345 7599//6344 +f 7594//6339 7613//6358 7599//6344 7574//6319 +f 7613//6358 7594//6339 7596//6341 7615//6360 +f 7614//6359 7613//6358 7615//6360 7616//6361 +f 7617//6362 7618//6363 7619//6364 7620//6365 +f 7564//6309 7617//6362 7620//6365 7565//6310 +f 7617//6362 7564//6309 7568//6313 7621//6366 +f 7618//6363 7617//6362 7621//6366 7622//6367 +f 7623//6368 7624//6369 7622//6367 7621//6366 +f 7606//6351 7623//6368 7621//6366 7568//6313 +f 7623//6368 7606//6351 7608//6353 7625//6370 +f 7624//6369 7623//6368 7625//6370 7626//6371 +f 7627//6372 7628//6373 7608//6353 7607//6352 +f 7610//6355 7627//6372 7607//6352 7604//6349 +f 7627//6372 7610//6355 7612//6357 7629//6374 +f 7628//6373 7627//6372 7629//6374 7630//6375 +f 7631//6376 7632//6377 7619//6364 7618//6363 +f 7633//6378 7631//6376 7618//6363 7622//6367 +f 7631//6376 7633//6378 7634//6379 7635//6380 +f 7632//6377 7631//6376 7635//6380 7636//6381 +f 7637//6382 7638//6383 7612//6357 7611//6356 +f 7614//6359 7637//6382 7611//6356 7600//6345 +f 7637//6382 7614//6359 7616//6361 7639//6384 +f 7638//6383 7637//6382 7639//6384 7640//6385 +f 7641//6386 7642//6387 7596//6341 7595//6340 +f 7588//6333 7641//6386 7595//6340 7586//6331 +f 7641//6386 7588//6333 7592//6337 7643//6388 +f 7642//6387 7641//6386 7643//6388 7644//6389 +f 7645//6390 7646//6391 7647//6392 7648//6393 +f 7649//6394 7645//6390 7648//6393 7650//6395 +f 7645//6390 7649//6394 7592//6337 7591//6336 +f 7646//6391 7645//6390 7591//6336 7590//6335 +f 7651//6396 7652//6397 7650//6395 7648//6393 +f 7653//6398 7651//6396 7648//6393 7647//6392 +f 7651//6396 7653//6398 7654//6399 7655//6400 +f 7652//6397 7651//6396 7655//6400 7656//6401 +f 7657//6402 7658//6403 7644//6389 7643//6388 +f 7649//6394 7657//6402 7643//6388 7592//6337 +f 7657//6402 7649//6394 7650//6395 7659//6404 +f 7658//6403 7657//6402 7659//6404 7660//6405 +f 7661//6406 7662//6407 7616//6361 7615//6360 +f 7642//6387 7661//6406 7615//6360 7596//6341 +f 7661//6406 7642//6387 7644//6389 7663//6408 +f 7662//6407 7661//6406 7663//6408 7664//6409 +f 7665//6410 7666//6411 7630//6375 7629//6374 +f 7638//6383 7665//6410 7629//6374 7612//6357 +f 7665//6410 7638//6383 7640//6385 7667//6412 +f 7666//6411 7665//6410 7667//6412 7668//6413 +f 7669//6414 7670//6415 7640//6385 7639//6384 +f 7662//6407 7669//6414 7639//6384 7616//6361 +f 7669//6414 7662//6407 7664//6409 7671//6416 +f 7670//6415 7669//6414 7671//6416 7672//6417 +f 7673//6418 7674//6419 7664//6409 7663//6408 +f 7658//6403 7673//6418 7663//6408 7644//6389 +f 7673//6418 7658//6403 7660//6405 7675//6420 +f 7674//6419 7673//6418 7675//6420 7676//6421 +f 7677//6422 7678//6423 7660//6405 7659//6404 +f 7652//6397 7677//6422 7659//6404 7650//6395 +f 7677//6422 7652//6397 7656//6401 7679//6424 +f 7678//6423 7677//6422 7679//6424 7680//6425 +f 7681//6426 7682//6427 7672//6417 7671//6416 +f 7674//6419 7681//6426 7671//6416 7664//6409 +f 7681//6426 7674//6419 7676//6421 7683//6428 +f 7682//6427 7681//6426 7683//6428 7684//6429 +f 7685//6430 7686//6431 7676//6421 7675//6420 +f 7678//6423 7685//6430 7675//6420 7660//6405 +f 7685//6430 7678//6423 7680//6425 7687//6432 +f 7686//6431 7685//6430 7687//6432 7688//6433 +f 7689//6434 7690//6435 7680//6425 7679//6424 +f 7691//6436 7689//6434 7679//6424 7656//6401 +f 7689//6434 7691//6436 7692//6437 7693//6438 +f 7690//6435 7689//6434 7693//6438 7694//6439 +f 7695//6440 7696//6441 7697//6442 7698//6443 +f 7691//6436 7695//6440 7698//6443 7692//6437 +f 7695//6440 7691//6436 7656//6401 7655//6400 +f 7696//6441 7695//6440 7655//6400 7654//6399 +f 7699//6444 7700//6445 7692//6437 7698//6443 +f 7701//6446 7699//6444 7698//6443 7697//6442 +f 7699//6444 7701//6446 7702//6447 7703//6448 +f 7700//6445 7699//6444 7703//6448 7704//6449 +f 7705//6450 7706//6451 7704//6449 7703//6448 +f 7707//6452 7705//6450 7703//6448 7702//6447 +f 7705//6450 7707//6452 7708//6453 7709//6454 +f 7706//6451 7705//6450 7709//6454 7710//6455 +f 7711//6456 7712//6457 7694//6439 7693//6438 +f 7700//6445 7711//6456 7693//6438 7692//6437 +f 7711//6456 7700//6445 7704//6449 7713//6458 +f 7712//6457 7711//6456 7713//6458 7714//6459 +f 7715//6460 7716//6461 7688//6433 7687//6432 +f 7690//6435 7715//6460 7687//6432 7680//6425 +f 7715//6460 7690//6435 7694//6439 7717//6462 +f 7716//6461 7715//6460 7717//6462 7718//6463 +f 7719//6464 7720//6465 7710//6455 7709//6454 +f 7721//6466 7719//6464 7709//6454 7708//6453 +f 7719//6464 7721//6466 7722//6467 7723//6468 +f 7720//6465 7719//6464 7723//6468 7724//6469 +f 7725//6470 7726//6471 7714//6459 7713//6458 +f 7706//6451 7725//6470 7713//6458 7704//6449 +f 7725//6470 7706//6451 7710//6455 7727//6472 +f 7726//6471 7725//6470 7727//6472 7728//6473 +f 7729//6474 7730//6475 7718//6463 7717//6462 +f 7712//6457 7729//6474 7717//6462 7694//6439 +f 7729//6474 7712//6457 7714//6459 7731//6476 +f 7730//6475 7729//6474 7731//6476 7732//6477 +f 7733//6478 7734//6479 7684//6429 7683//6428 +f 7686//6431 7733//6478 7683//6428 7676//6421 +f 7733//6478 7686//6431 7688//6433 7735//6480 +f 7734//6479 7733//6478 7735//6480 7736//6481 +f 7737//6482 7738//6483 7736//6481 7735//6480 +f 7716//6461 7737//6482 7735//6480 7688//6433 +f 7737//6482 7716//6461 7718//6463 7739//6484 +f 7738//6483 7737//6482 7739//6484 7740//6485 +f 7741//6486 7742//6487 7740//6485 7739//6484 +f 7730//6475 7741//6486 7739//6484 7718//6463 +f 7741//6486 7730//6475 7732//6477 7743//6488 +f 7742//6487 7741//6486 7743//6488 7744//6489 +f 7745//6490 7746//6491 7747//6492 7748//6493 +f 7734//6479 7745//6490 7748//6493 7684//6429 +f 7745//6490 7734//6479 7736//6481 7749//6494 +f 7746//6491 7745//6490 7749//6494 7750//6495 +f 7751//6496 7752//6497 7750//6495 7749//6494 +f 7738//6483 7751//6496 7749//6494 7736//6481 +f 7751//6496 7738//6483 7740//6485 7753//6498 +f 7752//6497 7751//6496 7753//6498 7754//6499 +f 7755//6500 7756//6501 7757//6502 7758//6503 +f 7682//6427 7755//6500 7758//6503 7672//6417 +f 7755//6500 7682//6427 7684//6429 7748//6493 +f 7756//6501 7755//6500 7748//6493 7747//6492 +f 7759//6504 7670//6415 7672//6417 7758//6503 +f 7760//6505 7759//6504 7758//6503 7757//6502 +f 7759//6504 7760//6505 7668//6413 7667//6412 +f 7670//6415 7759//6504 7667//6412 7640//6385 +f 7761//6506 7762//6507 7763//6508 7764//6509 +f 7756//6501 7761//6506 7764//6509 7757//6502 +f 7761//6506 7756//6501 7747//6492 7765//6510 +f 7762//6507 7761//6506 7765//6510 7766//6511 +f 7767//6512 7768//6513 7769//6514 7770//6515 +f 7760//6505 7767//6512 7770//6515 7668//6413 +f 7767//6512 7760//6505 7757//6502 7764//6509 +f 7768//6513 7767//6512 7764//6509 7763//6508 +f 7771//6516 7772//6517 7773//6518 7774//6519 +f 7666//6411 7771//6516 7774//6519 7630//6375 +f 7771//6516 7666//6411 7668//6413 7770//6515 +f 7772//6517 7771//6516 7770//6515 7769//6514 +f 7775//6520 7628//6373 7630//6375 7774//6519 +f 7776//6521 7775//6520 7774//6519 7773//6518 +f 7775//6520 7776//6521 7626//6371 7625//6370 +f 7628//6373 7775//6520 7625//6370 7608//6353 +f 7777//6522 7778//6523 7773//6518 7772//6517 +f 7779//6524 7777//6522 7772//6517 7769//6514 +f 7777//6522 7779//6524 7780//6525 7781//6526 +f 7778//6523 7777//6522 7781//6526 7782//6527 +f 7783//6528 7633//6378 7622//6367 7624//6369 +f 7784//6529 7783//6528 7624//6369 7626//6371 +f 7783//6528 7784//6529 7785//6530 7786//6531 +f 7633//6378 7783//6528 7786//6531 7634//6379 +f 7787//6532 7784//6529 7626//6371 7776//6521 +f 7778//6523 7787//6532 7776//6521 7773//6518 +f 7787//6532 7778//6523 7782//6527 7788//6533 +f 7784//6529 7787//6532 7788//6533 7785//6530 +f 7789//6534 7790//6535 7791//6536 7792//6537 +f 7779//6524 7789//6534 7792//6537 7780//6525 +f 7789//6534 7779//6524 7769//6514 7768//6513 +f 7790//6535 7789//6534 7768//6513 7763//6508 +f 7793//6538 7794//6539 7636//6381 7635//6380 +f 7795//6540 7793//6538 7635//6380 7634//6379 +f 7793//6538 7795//6540 7796//6541 7797//6542 +f 7794//6539 7793//6538 7797//6542 7798//6543 +f 7799//6544 7800//6545 7798//6543 7797//6542 +f 7801//6546 7799//6544 7797//6542 7796//6541 +f 7799//6544 7801//6546 7802//6547 7803//6548 +f 7800//6545 7799//6544 7803//6548 7804//6549 +f 7805//6550 7806//6551 7807//6552 7808//6553 +f 7795//6540 7805//6550 7808//6553 7796//6541 +f 7805//6550 7795//6540 7634//6379 7786//6531 +f 7806//6551 7805//6550 7786//6531 7785//6530 +f 7809//6554 7810//6555 7804//6549 7803//6548 +f 7811//6556 7809//6554 7803//6548 7802//6547 +f 7809//6554 7811//6556 7812//6557 7813//6558 +f 7810//6555 7809//6554 7813//6558 7814//6559 +f 7815//6560 7816//6561 7814//6559 7813//6558 +f 7817//6562 7815//6560 7813//6558 7812//6557 +f 7815//6560 7817//6562 7818//6563 7819//6564 +f 7816//6561 7815//6560 7819//6564 7820//6565 +f 7821//6566 7822//6567 7823//6568 7824//6569 +f 7801//6546 7821//6566 7824//6569 7802//6547 +f 7821//6566 7801//6546 7796//6541 7808//6553 +f 7822//6567 7821//6566 7808//6553 7807//6552 +f 7825//6570 7826//6571 7827//6572 7828//6573 +f 7811//6556 7825//6570 7828//6573 7812//6557 +f 7825//6570 7811//6556 7802//6547 7824//6569 +f 7826//6571 7825//6570 7824//6569 7823//6568 +f 7829//6574 7817//6562 7812//6557 7828//6573 +f 7830//6575 7829//6574 7828//6573 7827//6572 +f 7829//6574 7830//6575 7831//6576 7832//6577 +f 7817//6562 7829//6574 7832//6577 7818//6563 +f 7833//6578 7834//6579 7835//6580 7836//6581 +f 7826//6571 7833//6578 7836//6581 7827//6572 +f 7833//6578 7826//6571 7823//6568 7837//6582 +f 7834//6579 7833//6578 7837//6582 7838//6583 +f 7839//6584 7830//6575 7827//6572 7836//6581 +f 7840//6585 7839//6584 7836//6581 7835//6580 +f 7839//6584 7840//6585 7841//6586 7842//6587 +f 7830//6575 7839//6584 7842//6587 7831//6576 +f 7843//6588 7844//6589 7820//6565 7819//6564 +f 7845//6590 7843//6588 7819//6564 7818//6563 +f 7843//6588 7845//6590 7846//6591 7847//6592 +f 7844//6589 7843//6588 7847//6592 7848//6593 +f 7849//6594 7850//6595 7848//6593 7847//6592 +f 7851//6596 7849//6594 7847//6592 7846//6591 +f 7849//6594 7851//6596 7852//6597 7853//6598 +f 7850//6595 7849//6594 7853//6598 7854//6599 +f 7855//6600 7845//6590 7818//6563 7832//6577 +f 7856//6601 7855//6600 7832//6577 7831//6576 +f 7855//6600 7856//6601 7857//6602 7858//6603 +f 7845//6590 7855//6600 7858//6603 7846//6591 +f 7859//6604 7860//6605 7854//6599 7853//6598 +f 7861//6606 7859//6604 7853//6598 7852//6597 +f 7859//6604 7861//6606 7862//6607 7863//6608 +f 7860//6605 7859//6604 7863//6608 7864//6609 +f 7865//6610 7851//6596 7846//6591 7858//6603 +f 7866//6611 7865//6610 7858//6603 7857//6602 +f 7865//6610 7866//6611 7867//6612 7868//6613 +f 7851//6596 7865//6610 7868//6613 7852//6597 +f 7869//6614 7870//6615 7864//6609 7863//6608 +f 7871//6616 7869//6614 7863//6608 7862//6607 +f 7869//6614 7871//6616 7872//6617 7873//6618 +f 7870//6615 7869//6614 7873//6618 7874//6619 +f 7875//6620 7861//6606 7852//6597 7868//6613 +f 7876//6621 7875//6620 7868//6613 7867//6612 +f 7875//6620 7876//6621 7877//6622 7878//6623 +f 7861//6606 7875//6620 7878//6623 7862//6607 +f 7879//6624 7880//6625 7881//6626 7882//6627 +f 7873//6618 7879//6624 7882//6627 7874//6619 +f 7879//6624 7873//6618 7872//6617 7883//6628 +f 7880//6625 7879//6624 7883//6628 7884//6629 +f 7885//6630 7886//6631 7887//6632 7888//6633 +f 7871//6616 7885//6630 7888//6633 7872//6617 +f 7885//6630 7871//6616 7862//6607 7878//6623 +f 7886//6631 7885//6630 7878//6623 7877//6622 +f 7889//6634 7890//6635 7884//6629 7883//6628 +f 7888//6633 7889//6634 7883//6628 7872//6617 +f 7889//6634 7888//6633 7887//6632 7891//6636 +f 7890//6635 7889//6634 7891//6636 7892//6637 +f 7893//6638 7894//6639 7895//6640 7896//6641 +f 7880//6625 7893//6638 7896//6641 7881//6626 +f 7893//6638 7880//6625 7884//6629 7897//6642 +f 7894//6639 7893//6638 7897//6642 7898//6643 +f 7899//6644 7518//6263 7519//6264 7900//6645 +f 7894//6639 7899//6644 7900//6645 7895//6640 +f 7899//6644 7894//6639 7898//6643 7901//6646 +f 7518//6263 7899//6644 7901//6646 7520//6265 +f 7902//6647 7903//6648 7520//6265 7901//6646 +f 7904//6649 7902//6647 7901//6646 7898//6643 +f 7902//6647 7904//6649 7905//6650 7906//6651 +f 7903//6648 7902//6647 7906//6651 7907//6652 +f 7908//6653 7909//6654 7892//6637 7891//6636 +f 7910//6655 7908//6653 7891//6636 7887//6632 +f 7908//6653 7910//6655 7911//6656 7912//6657 +f 7909//6654 7908//6653 7912//6657 7913//6658 +f 7914//6659 7915//6660 7911//6656 7910//6655 +f 7886//6631 7914//6659 7910//6655 7887//6632 +f 7914//6659 7886//6631 7877//6622 7916//6661 +f 7915//6660 7914//6659 7916//6661 7917//6662 +f 7918//6663 7919//6664 7905//6650 7920//6665 +f 7909//6654 7918//6663 7920//6665 7892//6637 +f 7918//6663 7909//6654 7913//6658 7921//6666 +f 7919//6664 7918//6663 7921//6666 7922//6667 +f 7923//6668 7924//6669 7917//6662 7916//6661 +f 7876//6621 7923//6668 7916//6661 7877//6622 +f 7923//6668 7876//6621 7867//6612 7925//6670 +f 7924//6669 7923//6668 7925//6670 7926//6671 +f 7927//6672 7928//6673 7913//6658 7912//6657 +f 7929//6674 7927//6672 7912//6657 7911//6656 +f 7927//6672 7929//6674 7930//6675 7931//6676 +f 7928//6673 7927//6672 7931//6676 7932//6677 +f 7933//6678 7934//6679 7930//6675 7929//6674 +f 7915//6660 7933//6678 7929//6674 7911//6656 +f 7933//6678 7915//6660 7917//6662 7935//6680 +f 7934//6679 7933//6678 7935//6680 7936//6681 +f 7937//6682 7938//6683 7926//6671 7925//6670 +f 7866//6611 7937//6682 7925//6670 7867//6612 +f 7937//6682 7866//6611 7857//6602 7939//6684 +f 7938//6683 7937//6682 7939//6684 7940//6685 +f 7941//6686 7942//6687 7936//6681 7935//6680 +f 7924//6669 7941//6686 7935//6680 7917//6662 +f 7941//6686 7924//6669 7926//6671 7943//6688 +f 7942//6687 7941//6686 7943//6688 7944//6689 +f 7945//6690 7946//6691 7940//6685 7939//6684 +f 7856//6601 7945//6690 7939//6684 7857//6602 +f 7945//6690 7856//6601 7831//6576 7842//6587 +f 7946//6691 7945//6690 7842//6587 7841//6586 +f 7947//6692 7948//6693 7944//6689 7943//6688 +f 7938//6683 7947//6692 7943//6688 7926//6671 +f 7947//6692 7938//6683 7940//6685 7949//6694 +f 7948//6693 7947//6692 7949//6694 7950//6695 +f 7951//6696 7952//6697 7950//6695 7949//6694 +f 7946//6691 7951//6696 7949//6694 7940//6685 +f 7951//6696 7946//6691 7841//6586 7953//6698 +f 7952//6697 7951//6696 7953//6698 7954//6699 +f 7955//6700 7956//6701 7954//6699 7953//6698 +f 7840//6585 7955//6700 7953//6698 7841//6586 +f 7955//6700 7840//6585 7835//6580 7957//6702 +f 7956//6701 7955//6700 7957//6702 7958//6703 +f 7959//6704 7960//6705 7961//6706 7962//6707 +f 7948//6693 7959//6704 7962//6707 7944//6689 +f 7959//6704 7948//6693 7950//6695 7963//6708 +f 7960//6705 7959//6704 7963//6708 7964//6709 +f 7965//6710 7966//6711 7964//6709 7963//6708 +f 7952//6697 7965//6710 7963//6708 7950//6695 +f 7965//6710 7952//6697 7954//6699 7967//6712 +f 7966//6711 7965//6710 7967//6712 7968//6713 +f 7969//6714 7970//6715 7971//6716 7972//6717 +f 7942//6687 7969//6714 7972//6717 7936//6681 +f 7969//6714 7942//6687 7944//6689 7962//6707 +f 7970//6715 7969//6714 7962//6707 7961//6706 +f 7973//6718 7934//6679 7936//6681 7972//6717 +f 7974//6719 7973//6718 7972//6717 7971//6716 +f 7973//6718 7974//6719 7975//6720 7976//6721 +f 7934//6679 7973//6718 7976//6721 7930//6675 +f 7977//6722 7978//6723 7979//6724 7980//6725 +f 7970//6715 7977//6722 7980//6725 7971//6716 +f 7977//6722 7970//6715 7961//6706 7981//6726 +f 7978//6723 7977//6722 7981//6726 7982//6727 +f 7983//6728 7984//6729 7932//6677 7931//6676 +f 7976//6721 7983//6728 7931//6676 7930//6675 +f 7983//6728 7976//6721 7975//6720 7985//6730 +f 7984//6729 7983//6728 7985//6730 7986//6731 +f 7987//6732 7988//6733 7989//6734 7990//6735 +f 7974//6719 7987//6732 7990//6735 7975//6720 +f 7987//6732 7974//6719 7971//6716 7980//6725 +f 7988//6733 7987//6732 7980//6725 7979//6724 +f 7991//6736 7992//6737 7986//6731 7985//6730 +f 7990//6735 7991//6736 7985//6730 7975//6720 +f 7991//6736 7990//6735 7989//6734 7993//6738 +f 7992//6737 7991//6736 7993//6738 7994//6739 +f 7995//6740 7996//6741 7922//6667 7921//6666 +f 7928//6673 7995//6740 7921//6666 7913//6658 +f 7995//6740 7928//6673 7932//6677 7997//6742 +f 7996//6741 7995//6740 7997//6742 7998//6743 +f 7999//6744 8000//6745 7998//6743 7997//6742 +f 7984//6729 7999//6744 7997//6742 7932//6677 +f 7999//6744 7984//6729 7986//6731 8001//6746 +f 8000//6745 7999//6744 8001//6746 8002//6747 +f 8003//6748 8004//6749 7907//6652 7906//6651 +f 7919//6664 8003//6748 7906//6651 7905//6650 +f 8003//6748 7919//6664 7922//6667 8005//6750 +f 8004//6749 8003//6748 8005//6750 8006//6751 +f 8007//6752 8008//6753 7522//6267 7521//6266 +f 7903//6648 8007//6752 7521//6266 7520//6265 +f 8007//6752 7903//6648 7907//6652 8009//6754 +f 8008//6753 8007//6752 8009//6754 8010//6755 +f 8011//6756 8012//6757 8006//6751 8005//6750 +f 7996//6741 8011//6756 8005//6750 7922//6667 +f 8011//6756 7996//6741 7998//6743 8013//6758 +f 8012//6757 8011//6756 8013//6758 8014//6759 +f 8015//6760 8016//6761 8010//6755 8009//6754 +f 8004//6749 8015//6760 8009//6754 7907//6652 +f 8015//6760 8004//6749 8006//6751 8017//6762 +f 8016//6761 8015//6760 8017//6762 8018//6763 +f 8019//6764 8020//6765 8021//6766 8022//6767 +f 8008//6753 8019//6764 8022//6767 7522//6267 +f 8019//6764 8008//6753 8010//6755 8023//6768 +f 8020//6765 8019//6764 8023//6768 8024//6769 +f 8025//6770 8026//6771 8027//6772 8028//6773 +f 8020//6765 8025//6770 8028//6773 8021//6766 +f 8025//6770 8020//6765 8024//6769 8029//6774 +f 8026//6771 8025//6770 8029//6774 8030//6775 +f 8031//6776 8032//6777 8024//6769 8023//6768 +f 8016//6761 8031//6776 8023//6768 8010//6755 +f 8031//6776 8016//6761 8018//6763 8033//6778 +f 8032//6777 8031//6776 8033//6778 8034//6779 +f 8035//6780 8036//6781 8018//6763 8017//6762 +f 8012//6757 8035//6780 8017//6762 8006//6751 +f 8035//6780 8012//6757 8014//6759 8037//6782 +f 8036//6781 8035//6780 8037//6782 8038//6783 +f 8039//6784 8040//6785 8030//6775 8029//6774 +f 8032//6777 8039//6784 8029//6774 8024//6769 +f 8039//6784 8032//6777 8034//6779 8041//6786 +f 8040//6785 8039//6784 8041//6786 8042//6787 +f 8043//6788 8044//6789 8034//6779 8033//6778 +f 8036//6781 8043//6788 8033//6778 8018//6763 +f 8043//6788 8036//6781 8038//6783 8045//6790 +f 8044//6789 8043//6788 8045//6790 8046//6791 +f 8047//6792 8048//6793 8042//6787 8041//6786 +f 8044//6789 8047//6792 8041//6786 8034//6779 +f 8047//6792 8044//6789 8046//6791 8049//6794 +f 8048//6793 8047//6792 8049//6794 8050//6795 +f 8051//6796 8052//6797 8038//6783 8037//6782 +f 8053//6798 8051//6796 8037//6782 8014//6759 +f 8051//6796 8053//6798 8054//6799 8055//6800 +f 8052//6797 8051//6796 8055//6800 8056//6801 +f 8057//6802 8058//6803 8050//6795 8049//6794 +f 8059//6804 8057//6802 8049//6794 8046//6791 +f 8057//6802 8059//6804 8060//6805 8061//6806 +f 8058//6803 8057//6802 8061//6806 8062//6807 +f 8063//6808 8059//6804 8046//6791 8045//6790 +f 8052//6797 8063//6808 8045//6790 8038//6783 +f 8063//6808 8052//6797 8056//6801 8064//6809 +f 8059//6804 8063//6808 8064//6809 8060//6805 +f 8065//6810 8066//6811 8062//6807 8061//6806 +f 8067//6812 8065//6810 8061//6806 8060//6805 +f 8065//6810 8067//6812 8068//6813 8069//6814 +f 8066//6811 8065//6810 8069//6814 8070//6815 +f 8071//6816 8067//6812 8060//6805 8064//6809 +f 8072//6817 8071//6816 8064//6809 8056//6801 +f 8071//6816 8072//6817 8073//6818 8074//6819 +f 8067//6812 8071//6816 8074//6819 8068//6813 +f 8075//6820 8076//6821 8070//6815 8069//6814 +f 8077//6822 8075//6820 8069//6814 8068//6813 +f 8075//6820 8077//6822 8078//6823 8079//6824 +f 8076//6821 8075//6820 8079//6824 8080//6825 +f 8081//6826 8082//6827 8080//6825 8079//6824 +f 8083//6828 8081//6826 8079//6824 8078//6823 +f 8081//6826 8083//6828 8084//6829 8085//6830 +f 8082//6827 8081//6826 8085//6830 8086//6831 +f 8087//6832 8088//6833 8089//6834 8090//6835 +f 8077//6822 8087//6832 8090//6835 8078//6823 +f 8087//6832 8077//6822 8068//6813 8074//6819 +f 8088//6833 8087//6832 8074//6819 8073//6818 +f 8091//6836 8083//6828 8078//6823 8090//6835 +f 8092//6837 8091//6836 8090//6835 8089//6834 +f 8091//6836 8092//6837 8093//6838 8094//6839 +f 8083//6828 8091//6836 8094//6839 8084//6829 +f 8095//6840 8096//6841 8084//6829 8094//6839 +f 8097//6842 8095//6840 8094//6839 8093//6838 +f 8095//6840 8097//6842 8098//6843 8099//6844 +f 8096//6841 8095//6840 8099//6844 8100//6845 +f 8101//6846 8102//6847 8103//6848 8104//6849 +f 8092//6837 8101//6846 8104//6849 8093//6838 +f 8101//6846 8092//6837 8089//6834 8105//6850 +f 8102//6847 8101//6846 8105//6850 8106//6851 +f 8107//6852 8108//6853 8109//6854 8110//6855 +f 8097//6842 8107//6852 8110//6855 8098//6843 +f 8107//6852 8097//6842 8093//6838 8104//6849 +f 8108//6853 8107//6852 8104//6849 8103//6848 +f 8111//6856 8112//6857 8106//6851 8105//6850 +f 8088//6833 8111//6856 8105//6850 8089//6834 +f 8111//6856 8088//6833 8073//6818 8113//6858 +f 8112//6857 8111//6856 8113//6858 8114//6859 +f 8115//6860 8116//6861 8114//6859 8113//6858 +f 8072//6817 8115//6860 8113//6858 8073//6818 +f 8115//6860 8072//6817 8056//6801 8055//6800 +f 8116//6861 8115//6860 8055//6800 8054//6799 +f 8117//6862 8118//6863 8119//6864 8120//6865 +f 8102//6847 8117//6862 8120//6865 8103//6848 +f 8117//6862 8102//6847 8106//6851 8121//6866 +f 8118//6863 8117//6862 8121//6866 8122//6867 +f 8123//6868 8124//6869 8122//6867 8121//6866 +f 8112//6857 8123//6868 8121//6866 8106//6851 +f 8123//6868 8112//6857 8114//6859 8125//6870 +f 8124//6869 8123//6868 8125//6870 8126//6871 +f 8127//6872 8128//6873 8126//6871 8125//6870 +f 8116//6861 8127//6872 8125//6870 8114//6859 +f 8127//6872 8116//6861 8054//6799 8129//6874 +f 8128//6873 8127//6872 8129//6874 8002//6747 +f 8130//6875 8000//6745 8002//6747 8129//6874 +f 8053//6798 8130//6875 8129//6874 8054//6799 +f 8130//6875 8053//6798 8014//6759 8013//6758 +f 8000//6745 8130//6875 8013//6758 7998//6743 +f 8131//6876 8128//6873 8002//6747 8001//6746 +f 7992//6737 8131//6876 8001//6746 7986//6731 +f 8131//6876 7992//6737 7994//6739 8132//6877 +f 8128//6873 8131//6876 8132//6877 8126//6871 +f 8133//6878 8124//6869 8126//6871 8132//6877 +f 8134//6879 8133//6878 8132//6877 7994//6739 +f 8133//6878 8134//6879 8135//6880 8136//6881 +f 8124//6869 8133//6878 8136//6881 8122//6867 +f 8137//6882 8134//6879 7994//6739 7993//6738 +f 8138//6883 8137//6882 7993//6738 7989//6734 +f 8137//6882 8138//6883 8139//6884 8140//6885 +f 8134//6879 8137//6882 8140//6885 8135//6880 +f 8141//6886 8142//6887 8139//6884 8138//6883 +f 7988//6733 8141//6886 8138//6883 7989//6734 +f 8141//6886 7988//6733 7979//6724 8143//6888 +f 8142//6887 8141//6886 8143//6888 8144//6889 +f 8145//6890 8118//6863 8122//6867 8136//6881 +f 8146//6891 8145//6890 8136//6881 8135//6880 +f 8145//6890 8146//6891 8147//6892 8148//6893 +f 8118//6863 8145//6890 8148//6893 8119//6864 +f 8149//6894 8146//6891 8135//6880 8140//6885 +f 8150//6895 8149//6894 8140//6885 8139//6884 +f 8149//6894 8150//6895 8151//6896 8152//6897 +f 8146//6891 8149//6894 8152//6897 8147//6892 +f 8153//6898 8154//6899 8151//6896 8150//6895 +f 8142//6887 8153//6898 8150//6895 8139//6884 +f 8153//6898 8142//6887 8144//6889 8155//6900 +f 8154//6899 8153//6898 8155//6900 8156//6901 +f 8157//6902 8158//6903 8144//6889 8143//6888 +f 7978//6723 8157//6902 8143//6888 7979//6724 +f 8157//6902 7978//6723 7982//6727 8159//6904 +f 8158//6903 8157//6902 8159//6904 8160//6905 +f 8161//6906 8162//6907 7982//6727 7981//6726 +f 7960//6705 8161//6906 7981//6726 7961//6706 +f 8161//6906 7960//6705 7964//6709 8163//6908 +f 8162//6907 8161//6906 8163//6908 8164//6909 +f 8165//6910 8166//6911 8156//6901 8155//6900 +f 8158//6903 8165//6910 8155//6900 8144//6889 +f 8165//6910 8158//6903 8160//6905 8167//6912 +f 8166//6911 8165//6910 8167//6912 8168//6913 +f 8169//6914 8170//6915 8160//6905 8159//6904 +f 8162//6907 8169//6914 8159//6904 7982//6727 +f 8169//6914 8162//6907 8164//6909 8171//6916 +f 8170//6915 8169//6914 8171//6916 8172//6917 +f 8173//6918 8174//6919 8175//6920 8176//6921 +f 8154//6899 8173//6918 8176//6921 8151//6896 +f 8173//6918 8154//6899 8156//6901 8177//6922 +f 8174//6919 8173//6918 8177//6922 8178//6923 +f 8179//6924 8180//6925 8147//6892 8152//6897 +f 8176//6921 8179//6924 8152//6897 8151//6896 +f 8179//6924 8176//6921 8175//6920 8181//6926 +f 8180//6925 8179//6924 8181//6926 8182//6927 +f 8183//6928 8184//6929 8119//6864 8148//6893 +f 8180//6925 8183//6928 8148//6893 8147//6892 +f 8183//6928 8180//6925 8182//6927 8185//6930 +f 8184//6929 8183//6928 8185//6930 8186//6931 +f 8187//6932 8188//6933 8178//6923 8177//6922 +f 8166//6911 8187//6932 8177//6922 8156//6901 +f 8187//6932 8166//6911 8168//6913 8189//6934 +f 8188//6933 8187//6932 8189//6934 8190//6935 +f 8191//6936 8192//6937 8182//6927 8181//6926 +f 8193//6938 8191//6936 8181//6926 8175//6920 +f 8191//6936 8193//6938 8194//6939 8195//6940 +f 8192//6937 8191//6936 8195//6940 8196//6941 +f 8197//6942 8198//6943 8194//6939 8193//6938 +f 8174//6919 8197//6942 8193//6938 8175//6920 +f 8197//6942 8174//6919 8178//6923 8199//6944 +f 8198//6943 8197//6942 8199//6944 8200//6945 +f 8201//6946 8108//6853 8103//6848 8120//6865 +f 8184//6929 8201//6946 8120//6865 8119//6864 +f 8201//6946 8184//6929 8186//6931 8202//6947 +f 8108//6853 8201//6946 8202//6947 8109//6854 +f 8203//6948 8204//6949 8186//6931 8185//6930 +f 8192//6937 8203//6948 8185//6930 8182//6927 +f 8203//6948 8192//6937 8196//6941 8205//6950 +f 8204//6949 8203//6948 8205//6950 8206//6951 +f 8207//6952 8208//6953 8109//6854 8202//6947 +f 8204//6949 8207//6952 8202//6947 8186//6931 +f 8207//6952 8204//6949 8206//6951 8209//6954 +f 8208//6953 8207//6952 8209//6954 8210//6955 +f 8211//6956 8212//6957 8098//6843 8110//6855 +f 8208//6953 8211//6956 8110//6855 8109//6854 +f 8211//6956 8208//6953 8210//6955 8213//6958 +f 8212//6957 8211//6956 8213//6958 8214//6959 +f 8215//6960 8216//6961 8206//6951 8205//6950 +f 8217//6962 8215//6960 8205//6950 8196//6941 +f 8215//6960 8217//6962 8218//6963 8219//6964 +f 8216//6961 8215//6960 8219//6964 8220//6965 +f 8221//6966 8222//6967 8100//6845 8099//6844 +f 8212//6957 8221//6966 8099//6844 8098//6843 +f 8221//6966 8212//6957 8214//6959 8223//6968 +f 8222//6967 8221//6966 8223//6968 8224//6969 +f 8225//6970 8226//6971 8210//6955 8209//6954 +f 8216//6961 8225//6970 8209//6954 8206//6951 +f 8225//6970 8216//6961 8220//6965 8227//6972 +f 8226//6971 8225//6970 8227//6972 8228//6973 +f 8229//6974 8230//6975 8214//6959 8213//6958 +f 8226//6971 8229//6974 8213//6958 8210//6955 +f 8229//6974 8226//6971 8228//6973 8231//6976 +f 8230//6975 8229//6974 8231//6976 8232//6977 +f 8233//6978 8234//6979 8235//6980 8236//6981 +f 8222//6967 8233//6978 8236//6981 8100//6845 +f 8233//6978 8222//6967 8224//6969 8237//6982 +f 8234//6979 8233//6978 8237//6982 8238//6983 +f 8239//6984 8096//6841 8100//6845 8236//6981 +f 8240//6985 8239//6984 8236//6981 8235//6980 +f 8239//6984 8240//6985 8086//6831 8085//6830 +f 8096//6841 8239//6984 8085//6830 8084//6829 +f 8241//6986 8242//6987 8224//6969 8223//6968 +f 8230//6975 8241//6986 8223//6968 8214//6959 +f 8241//6986 8230//6975 8232//6977 8243//6988 +f 8242//6987 8241//6986 8243//6988 8244//6989 +f 8245//6990 8246//6991 8238//6983 8237//6982 +f 8242//6987 8245//6990 8237//6982 8224//6969 +f 8245//6990 8242//6987 8244//6989 8247//6992 +f 8246//6991 8245//6990 8247//6992 8248//6993 +f 8249//6994 8250//6995 8248//6993 8247//6992 +f 8251//6996 8249//6994 8247//6992 8244//6989 +f 8249//6994 8251//6996 8252//6997 8253//6998 +f 8250//6995 8249//6994 8253//6998 8254//6999 +f 8255//7000 8251//6996 8244//6989 8243//6988 +f 8256//7001 8255//7000 8243//6988 8232//6977 +f 8255//7000 8256//7001 8257//7002 8258//7003 +f 8251//6996 8255//7000 8258//7003 8252//6997 +f 8259//7004 8260//7005 8252//6997 8258//7003 +f 8261//7006 8259//7004 8258//7003 8257//7002 +f 8259//7004 8261//7006 8262//7007 8263//7008 +f 8260//7005 8259//7004 8263//7008 8264//7009 +f 8265//7010 8266//7011 8267//7012 8268//7013 +f 8256//7001 8265//7010 8268//7013 8257//7002 +f 8265//7010 8256//7001 8232//6977 8231//6976 +f 8266//7011 8265//7010 8231//6976 8228//6973 +f 8269//7014 8270//7015 8271//7016 8272//7017 +f 8261//7006 8269//7014 8272//7017 8262//7007 +f 8269//7014 8261//7006 8257//7002 8268//7013 +f 8270//7015 8269//7014 8268//7013 8267//7012 +f 8273//7018 8274//7019 8275//7020 8276//7021 +f 8266//7011 8273//7018 8276//7021 8267//7012 +f 8273//7018 8266//7011 8228//6973 8227//6972 +f 8274//7019 8273//7018 8227//6972 8220//6965 +f 8277//7022 8278//7023 8279//7024 8280//7025 +f 8270//7015 8277//7022 8280//7025 8271//7016 +f 8277//7022 8270//7015 8267//7012 8276//7021 +f 8278//7023 8277//7022 8276//7021 8275//7020 +f 8281//7026 8282//7027 8283//7028 8284//7029 +f 8274//7019 8281//7026 8284//7029 8275//7020 +f 8281//7026 8274//7019 8220//6965 8219//6964 +f 8282//7027 8281//7026 8219//6964 8218//6963 +f 8285//7030 8286//7031 8287//7032 8288//7033 +f 8278//7023 8285//7030 8288//7033 8279//7024 +f 8285//7030 8278//7023 8275//7020 8284//7029 +f 8286//7031 8285//7030 8284//7029 8283//7028 +f 8289//7034 8290//7035 8271//7016 8280//7025 +f 8291//7036 8289//7034 8280//7025 8279//7024 +f 8289//7034 8291//7036 8292//7037 8293//7038 +f 8290//7035 8289//7034 8293//7038 8294//7039 +f 8295//7040 8291//7036 8279//7024 8288//7033 +f 8296//7041 8295//7040 8288//7033 8287//7032 +f 8295//7040 8296//7041 8297//7042 8298//7043 +f 8291//7036 8295//7040 8298//7043 8292//7037 +f 8299//7044 8300//7045 8301//7046 8302//7047 +f 8286//7031 8299//7044 8302//7047 8287//7032 +f 8299//7044 8286//7031 8283//7028 8303//7048 +f 8300//7045 8299//7044 8303//7048 8304//7049 +f 8305//7050 8306//7051 8262//7007 8272//7017 +f 8290//7035 8305//7050 8272//7017 8271//7016 +f 8305//7050 8290//7035 8294//7039 8307//7052 +f 8306//7051 8305//7050 8307//7052 8308//7053 +f 8309//7054 8296//7041 8287//7032 8302//7047 +f 8310//7055 8309//7054 8302//7047 8301//7046 +f 8309//7054 8310//7055 8311//7056 8312//7057 +f 8296//7041 8309//7054 8312//7057 8297//7042 +f 8313//7058 8314//7059 8264//7009 8263//7008 +f 8306//7051 8313//7058 8263//7008 8262//7007 +f 8313//7058 8306//7051 8308//7053 8315//7060 +f 8314//7059 8313//7058 8315//7060 8316//7061 +f 8317//7062 8260//7005 8264//7009 8318//7063 +f 8319//7064 8317//7062 8318//7063 8320//7065 +f 8317//7062 8319//7064 8254//6999 8253//6998 +f 8260//7005 8317//7062 8253//6998 8252//6997 +f 8321//7066 8322//7067 8320//7065 8318//7063 +f 8314//7059 8321//7066 8318//7063 8264//7009 +f 8321//7066 8314//7059 8316//7061 8323//7068 +f 8322//7067 8321//7066 8323//7068 8324//7069 +f 8325//7070 8326//7071 8308//7053 8307//7052 +f 8327//7072 8325//7070 8307//7052 8294//7039 +f 8325//7070 8327//7072 8328//7073 8329//7074 +f 8326//7071 8325//7070 8329//7074 8330//7075 +f 8331//7076 8332//7077 8324//7069 8323//7068 +f 8333//7078 8331//7076 8323//7068 8316//7061 +f 8331//7076 8333//7078 8334//7079 8335//7080 +f 8332//7077 8331//7076 8335//7080 8336//7081 +f 8337//7082 8333//7078 8316//7061 8315//7060 +f 8326//7071 8337//7082 8315//7060 8308//7053 +f 8337//7082 8326//7071 8330//7075 8338//7083 +f 8333//7078 8337//7082 8338//7083 8334//7079 +f 8339//7084 8340//7085 8336//7081 8335//7080 +f 8341//7086 8339//7084 8335//7080 8334//7079 +f 8339//7084 8341//7086 7531//6276 7530//6275 +f 8340//7085 8339//7084 7530//6275 7529//6274 +f 8342//7087 8341//7086 8334//7079 8338//7083 +f 8343//7088 8342//7087 8338//7083 8330//7075 +f 8342//7087 8343//7088 8344//7089 8345//7090 +f 8341//7086 8342//7087 8345//7090 7531//6276 +f 8346//7091 8343//7088 8330//7075 8329//7074 +f 8347//7092 8346//7091 8329//7074 8328//7073 +f 8346//7091 8347//7092 8348//7093 8349//7094 +f 8343//7088 8346//7091 8349//7094 8344//7089 +f 8350//7095 7524//6269 7531//6276 8345//7090 +f 8351//7096 8350//7095 8345//7090 8344//7089 +f 8350//7095 8351//7096 8352//7097 8353//7098 +f 7524//6269 8350//7095 8353//7098 7525//6270 +f 8354//7099 8351//7096 8344//7089 8349//7094 +f 8355//7100 8354//7099 8349//7094 8348//7093 +f 8354//7099 8355//7100 8356//7101 8357//7102 +f 8351//7096 8354//7099 8357//7102 8352//7097 +f 8358//7103 8359//7104 8360//7105 8361//7106 +f 8362//7107 8358//7103 8361//7106 8363//7108 +f 8358//7103 8362//7107 7525//6270 8353//7098 +f 8359//7104 8358//7103 8353//7098 8352//7097 +f 8364//7109 8365//7110 7528//6273 7526//6271 +f 8362//7107 8364//7109 7526//6271 7525//6270 +f 8364//7109 8362//7107 8363//7108 8366//7111 +f 8365//7110 8364//7109 8366//7111 8367//7112 +f 8368//7113 8369//7114 8370//7115 8371//7116 +f 8359//7104 8368//7113 8371//7116 8360//7105 +f 8368//7113 8359//7104 8352//7097 8357//7102 +f 8369//7114 8368//7113 8357//7102 8356//7101 +f 8372//7117 8373//7118 8360//7105 8371//7116 +f 8374//7119 8372//7117 8371//7116 8370//7115 +f 8372//7117 8374//7119 8375//7120 8376//7121 +f 8373//7118 8372//7117 8376//7121 8377//7122 +f 8378//7123 8379//7124 8380//7125 8381//7126 +f 8374//7119 8378//7123 8381//7126 8375//7120 +f 8378//7123 8374//7119 8370//7115 8382//7127 +f 8379//7124 8378//7123 8382//7127 8383//7128 +f 8384//7129 8385//7130 8383//7128 8382//7127 +f 8369//7114 8384//7129 8382//7127 8370//7115 +f 8384//7129 8369//7114 8356//7101 8386//7131 +f 8385//7130 8384//7129 8386//7131 8387//7132 +f 8388//7133 8389//7134 8387//7132 8386//7131 +f 8355//7100 8388//7133 8386//7131 8356//7101 +f 8388//7133 8355//7100 8348//7093 8390//7135 +f 8389//7134 8388//7133 8390//7135 8391//7136 +f 8392//7137 8393//7138 8394//7139 8395//7140 +f 8379//7124 8392//7137 8395//7140 8380//7125 +f 8392//7137 8379//7124 8383//7128 8396//7141 +f 8393//7138 8392//7137 8396//7141 8397//7142 +f 8398//7143 8399//7144 8391//7136 8390//7135 +f 8347//7092 8398//7143 8390//7135 8348//7093 +f 8398//7143 8347//7092 8328//7073 8400//7145 +f 8399//7144 8398//7143 8400//7145 8401//7146 +f 8402//7147 8403//7148 8397//7142 8396//7141 +f 8385//7130 8402//7147 8396//7141 8383//7128 +f 8402//7147 8385//7130 8387//7132 8404//7149 +f 8403//7148 8402//7147 8404//7149 8405//7150 +f 8406//7151 8407//7152 8405//7150 8404//7149 +f 8389//7134 8406//7151 8404//7149 8387//7132 +f 8406//7151 8389//7134 8391//7136 8408//7153 +f 8407//7152 8406//7151 8408//7153 8409//7154 +f 8410//7155 8411//7156 8401//7146 8400//7145 +f 8327//7072 8410//7155 8400//7145 8328//7073 +f 8410//7155 8327//7072 8294//7039 8293//7038 +f 8411//7156 8410//7155 8293//7038 8292//7037 +f 8412//7157 8413//7158 8409//7154 8408//7153 +f 8399//7144 8412//7157 8408//7153 8391//7136 +f 8412//7157 8399//7144 8401//7146 8414//7159 +f 8413//7158 8412//7157 8414//7159 8415//7160 +f 8416//7161 8417//7162 8415//7160 8414//7159 +f 8411//7156 8416//7161 8414//7159 8401//7146 +f 8416//7161 8411//7156 8292//7037 8298//7043 +f 8417//7162 8416//7161 8298//7043 8297//7042 +f 8418//7163 8419//7164 8420//7165 8421//7166 +f 8407//7152 8418//7163 8421//7166 8405//7150 +f 8418//7163 8407//7152 8409//7154 8422//7167 +f 8419//7164 8418//7163 8422//7167 8423//7168 +f 8424//7169 8425//7170 8426//7171 8427//7172 +f 8417//7162 8424//7169 8427//7172 8415//7160 +f 8424//7169 8417//7162 8297//7042 8312//7057 +f 8425//7170 8424//7169 8312//7057 8311//7056 +f 8428//7173 8429//7174 8423//7168 8422//7167 +f 8413//7158 8428//7173 8422//7167 8409//7154 +f 8428//7173 8413//7158 8415//7160 8427//7172 +f 8429//7174 8428//7173 8427//7172 8426//7171 +f 8430//7175 8431//7176 8426//7171 8425//7170 +f 8432//7177 8430//7175 8425//7170 8311//7056 +f 8430//7175 8432//7177 8433//7178 8434//7179 +f 8431//7176 8430//7175 8434//7179 8435//7180 +f 8436//7181 8437//7182 8423//7168 8429//7174 +f 8431//7176 8436//7181 8429//7174 8426//7171 +f 8436//7181 8431//7176 8435//7180 8438//7183 +f 8437//7182 8436//7181 8438//7183 8439//7184 +f 8440//7185 8441//7186 8420//7165 8419//7164 +f 8437//7182 8440//7185 8419//7164 8423//7168 +f 8440//7185 8437//7182 8439//7184 8442//7185 +f 8441//7186 8440//7185 8442//7185 8443//7187 +f 8444//7188 8403//7148 8405//7150 8421//7166 +f 8445//7189 8444//7188 8421//7166 8420//7165 +f 8444//7188 8445//7189 8446//7190 8447//7191 +f 8403//7148 8444//7188 8447//7191 8397//7142 +f 8448//7192 8449//7193 8446//7190 8445//7189 +f 8441//7186 8448//7192 8445//7189 8420//7165 +f 8448//7192 8441//7186 8443//7187 8450//7194 +f 8449//7193 8448//7192 8450//7194 8451//7195 +f 8452//7196 8393//7138 8397//7142 8447//7191 +f 8453//7197 8452//7196 8447//7191 8446//7190 +f 8452//7196 8453//7197 8454//7198 8455//7199 +f 8393//7138 8452//7196 8455//7199 8394//7139 +f 8456//7200 8457//7201 8454//7198 8453//7197 +f 8449//7193 8456//7200 8453//7197 8446//7190 +f 8456//7200 8449//7193 8451//7195 8458//7202 +f 8457//7201 8456//7200 8458//7202 8459//7203 +f 8460//7204 8461//7205 8443//7187 8442//7185 +f 8462//7206 8460//7204 8442//7185 8439//7184 +f 8460//7204 8462//7206 8463//7207 8464//7208 +f 8461//7205 8460//7204 8464//7208 8465//7209 +f 8466//7210 8467//7211 8394//7139 8455//7199 +f 8468//7212 8466//7210 8455//7199 8454//7198 +f 8466//7210 8468//7212 8469//7213 8470//7214 +f 8467//7211 8466//7210 8470//7214 8471//7215 +f 8472//7216 8473//7217 8451//7195 8450//7194 +f 8461//7205 8472//7216 8450//7194 8443//7187 +f 8472//7216 8461//7205 8465//7209 8474//7218 +f 8473//7217 8472//7216 8474//7218 8475//7219 +f 8476//7220 8477//7221 8469//7213 8468//7212 +f 8457//7201 8476//7220 8468//7212 8454//7198 +f 8476//7220 8457//7201 8459//7203 8478//7222 +f 8477//7221 8476//7220 8478//7222 8479//7223 +f 8480//7224 8481//7225 8459//7203 8458//7202 +f 8473//7217 8480//7224 8458//7202 8451//7195 +f 8480//7224 8473//7217 8475//7219 8482//7226 +f 8481//7225 8480//7224 8482//7226 8483//7227 +f 8484//7228 8485//7229 8380//7125 8395//7140 +f 8467//7211 8484//7228 8395//7140 8394//7139 +f 8484//7228 8467//7211 8471//7215 8486//7230 +f 8485//7229 8484//7228 8486//7230 8487//7231 +f 8488//7232 8489//7233 8375//7120 8381//7126 +f 8485//7229 8488//7232 8381//7126 8380//7125 +f 8488//7232 8485//7229 8487//7231 8490//7234 +f 8489//7233 8488//7232 8490//7234 8491//7235 +f 8492//7236 8493//7237 8471//7215 8470//7214 +f 8494//7238 8492//7236 8470//7214 8469//7213 +f 8492//7236 8494//7238 8495//7239 8496//7240 +f 8493//7237 8492//7236 8496//7240 8497//7241 +f 8498//7242 8499//7243 8495//7239 8494//7238 +f 8477//7221 8498//7242 8494//7238 8469//7213 +f 8498//7242 8477//7221 8479//7223 8500//7244 +f 8499//7243 8498//7242 8500//7244 8501//7245 +f 8502//7246 8503//7247 8487//7231 8486//7230 +f 8493//7237 8502//7246 8486//7230 8471//7215 +f 8502//7246 8493//7237 8497//7241 8504//7248 +f 8503//7247 8502//7246 8504//7248 8505//7249 +f 8506//7250 8507//7251 8501//7245 8500//7244 +f 8508//7252 8506//7250 8500//7244 8479//7223 +f 8506//7250 8508//7252 8509//7253 8510//7254 +f 8507//7251 8506//7250 8510//7254 8511//7255 +f 8512//7256 8513//7257 8491//7235 8490//7234 +f 8503//7247 8512//7256 8490//7234 8487//7231 +f 8512//7256 8503//7247 8505//7249 8514//7258 +f 8513//7257 8512//7256 8514//7258 8515//7259 +f 8516//7260 8517//7261 8377//7122 8376//7121 +f 8489//7233 8516//7260 8376//7121 8375//7120 +f 8516//7260 8489//7233 8491//7235 8518//7262 +f 8517//7261 8516//7260 8518//7262 8519//7263 +f 8520//7264 8521//7265 8519//7263 8518//7262 +f 8513//7257 8520//7264 8518//7262 8491//7235 +f 8520//7264 8513//7257 8515//7259 8522//7266 +f 8521//7265 8520//7264 8522//7266 8523//7267 +f 8524//7268 7533//6278 7540//6285 8525//7269 +f 8521//7265 8524//7268 8525//7269 8519//7263 +f 8524//7268 8521//7265 8523//7267 8526//7270 +f 7533//6278 8524//7268 8526//7270 7534//6279 +f 8527//7271 8528//7272 8529//7273 8530//7274 +f 8517//7261 8527//7271 8530//7274 8377//7122 +f 8527//7271 8517//7261 8519//7263 8525//7269 +f 8528//7272 8527//7271 8525//7269 7540//6285 +f 8531//7275 8532//7276 8533//7277 8534//7278 +f 8528//7272 8531//7275 8534//7278 8529//7273 +f 8531//7275 8528//7272 7540//6285 7539//6284 +f 8532//7276 8531//7275 7539//6284 7538//6283 +f 8535//7279 8536//7280 8511//7255 8510//7254 +f 8537//7281 8535//7279 8510//7254 8509//7253 +f 8535//7279 8537//7281 8538//7282 8539//7283 +f 8536//7280 8535//7279 8539//7283 8540//7284 +f 8541//7285 8481//7225 8483//7227 8542//7286 +f 8508//7252 8541//7285 8542//7286 8509//7253 +f 8541//7285 8508//7252 8479//7223 8478//7222 +f 8481//7225 8541//7285 8478//7222 8459//7203 +f 8543//7287 8537//7281 8509//7253 8542//7286 +f 8544//7288 8543//7287 8542//7286 8483//7227 +f 8543//7287 8544//7288 8545//7289 8546//7290 +f 8537//7281 8543//7287 8546//7290 8538//7282 +f 8547//7291 8544//7288 8483//7227 8482//7226 +f 8548//7292 8547//7291 8482//7226 8475//7219 +f 8547//7291 8548//7292 8549//7293 8550//7294 +f 8544//7288 8547//7291 8550//7294 8545//7289 +f 8551//7295 8552//7296 8540//7284 8539//7283 +f 8553//7297 8551//7295 8539//7283 8538//7282 +f 8551//7295 8553//7297 8554//7298 8555//7299 +f 8552//7296 8551//7295 8555//7299 8556//7300 +f 8557//7301 8553//7297 8538//7282 8546//7290 +f 8558//7302 8557//7301 8546//7290 8545//7289 +f 8557//7301 8558//7302 8559//7303 8560//7304 +f 8553//7297 8557//7301 8560//7304 8554//7298 +f 8561//7305 8562//7306 8556//7300 8555//7299 +f 8563//7307 8561//7305 8555//7299 8554//7298 +f 8561//7305 8563//7307 8564//7308 8565//7309 +f 8562//7306 8561//7305 8565//7309 8566//7310 +f 8567//7311 8563//7307 8554//7298 8560//7304 +f 8568//7312 8567//7311 8560//7304 8559//7303 +f 8567//7311 8568//7312 8569//7313 8570//7314 +f 8563//7307 8567//7311 8570//7314 8564//7308 +f 8571//7315 8572//7316 8573//7317 8574//7318 +f 8558//7302 8571//7315 8574//7318 8559//7303 +f 8571//7315 8558//7302 8545//7289 8550//7294 +f 8572//7316 8571//7315 8550//7294 8549//7293 +f 8575//7319 8576//7320 8577//7321 8578//7322 +f 8568//7312 8575//7319 8578//7322 8569//7313 +f 8575//7319 8568//7312 8559//7303 8574//7318 +f 8576//7320 8575//7319 8574//7318 8573//7317 +f 8579//7323 8580//7324 8566//7310 8565//7309 +f 8581//7325 8579//7323 8565//7309 8564//7308 +f 8579//7323 8581//7325 8582//7326 8583//7327 +f 8580//7324 8579//7323 8583//7327 8584//7328 +f 8585//7329 8581//7325 8564//7308 8570//7314 +f 8586//7330 8585//7329 8570//7314 8569//7313 +f 8585//7329 8586//7330 8587//7331 8588//7332 +f 8581//7325 8585//7329 8588//7332 8582//7326 +f 8589//7333 8590//7334 8584//7328 8583//7327 +f 8591//7335 8589//7333 8583//7327 8582//7326 +f 8589//7333 8591//7335 8592//7336 8593//7337 +f 8590//7334 8589//7333 8593//7337 8594//7338 +f 8595//7339 8591//7335 8582//7326 8588//7332 +f 8596//7340 8595//7339 8588//7332 8587//7331 +f 8595//7339 8596//7340 8597//7341 8598//7342 +f 8591//7335 8595//7339 8598//7342 8592//7336 +f 8599//7343 8600//7344 8601//7345 8602//7346 +f 8586//7330 8599//7343 8602//7346 8587//7331 +f 8599//7343 8586//7330 8569//7313 8578//7322 +f 8600//7344 8599//7343 8578//7322 8577//7321 +f 8603//7347 8604//7348 8605//7349 8606//7350 +f 8596//7340 8603//7347 8606//7350 8597//7341 +f 8603//7347 8596//7340 8587//7331 8602//7346 +f 8604//7348 8603//7347 8602//7346 8601//7345 +f 8607//7351 8608//7352 8594//7338 8593//7337 +f 8609//7353 8607//7351 8593//7337 8592//7336 +f 8607//7351 8609//7353 8610//7354 8611//7355 +f 8608//7352 8607//7351 8611//7355 8612//7356 +f 8613//7357 8609//7353 8592//7336 8598//7342 +f 8614//7358 8613//7357 8598//7342 8597//7341 +f 8613//7357 8614//7358 8615//7359 8616//7360 +f 8609//7353 8613//7357 8616//7360 8610//7354 +f 8617//7361 8618//7362 8612//7356 8611//7355 +f 8619//7363 8617//7361 8611//7355 8610//7354 +f 8617//7361 8619//7363 8620//7364 8621//7365 +f 8618//7362 8617//7361 8621//7365 8622//7366 +f 8623//7367 8624//7368 8625//7369 8626//7370 +f 8621//7365 8623//7367 8626//7370 8622//7366 +f 8623//7367 8621//7365 8620//7364 8627//7371 +f 8624//7368 8623//7367 8627//7371 8628//7372 +f 8629//7373 8630//7374 8631//7375 8632//7376 +f 8619//7363 8629//7373 8632//7376 8620//7364 +f 8629//7373 8619//7363 8610//7354 8616//7360 +f 8630//7374 8629//7373 8616//7360 8615//7359 +f 8633//7377 8634//7378 8628//7372 8627//7371 +f 8632//7376 8633//7377 8627//7371 8620//7364 +f 8633//7377 8632//7376 8631//7375 8635//7379 +f 8634//7378 8633//7377 8635//7379 8636//7380 +f 8637//7381 8638//7382 8639//7383 8640//7384 +f 8624//7368 8637//7381 8640//7384 8625//7369 +f 8637//7381 8624//7368 8628//7372 8641//7385 +f 8638//7382 8637//7381 8641//7385 8642//7386 +f 8643//7387 8644//7388 8645//7389 8646//7390 +f 8630//7374 8643//7387 8646//7390 8631//7375 +f 8643//7387 8630//7374 8615//7359 8647//7391 +f 8644//7388 8643//7387 8647//7391 8648//7392 +f 8649//7393 8650//7394 8651//7395 8652//7396 +f 8638//7382 8649//7393 8652//7396 8639//7383 +f 8649//7393 8638//7382 8642//7386 8653//7397 +f 8650//7394 8649//7393 8653//7397 8654//7398 +f 8655//7399 8656//7400 8642//7386 8641//7385 +f 8634//7378 8655//7399 8641//7385 8628//7372 +f 8655//7399 8634//7378 8636//7380 8657//7401 +f 8656//7400 8655//7399 8657//7401 8658//7402 +f 8659//7403 8660//7404 8636//7380 8635//7379 +f 8646//7390 8659//7403 8635//7379 8631//7375 +f 8659//7403 8646//7390 8645//7389 8661//7405 +f 8660//7404 8659//7403 8661//7405 8662//7406 +f 8663//7407 8664//7408 8665//7409 8666//7410 +f 8650//7394 8663//7407 8666//7410 8651//7395 +f 8663//7407 8650//7394 8654//7398 8667//7411 +f 8664//7408 8663//7407 8667//7411 8668//7412 +f 8669//7413 8670//7414 8654//7398 8653//7397 +f 8656//7400 8669//7413 8653//7397 8642//7386 +f 8669//7413 8656//7400 8658//7402 8671//7415 +f 8670//7414 8669//7413 8671//7415 8672//7416 +f 8673//7417 7509//6254 7510//6255 8674//7418 +f 8664//7408 8673//7417 8674//7418 8665//7409 +f 8673//7417 8664//7408 8668//7412 8675//7419 +f 7509//6254 8673//7417 8675//7419 7511//6256 +f 8676//7420 8677//7421 8668//7412 8667//7411 +f 8670//7414 8676//7420 8667//7411 8654//7398 +f 8676//7420 8670//7414 8672//7416 8678//7422 +f 8677//7421 8676//7420 8678//7422 8679//7423 +f 8680//7424 8681//7425 7511//6256 8675//7419 +f 8677//7421 8680//7424 8675//7419 8668//7412 +f 8680//7424 8677//7421 8679//7423 8682//7426 +f 8681//7425 8680//7424 8682//7426 8683//7427 +f 8684//7428 8685//7429 7513//6258 7512//6257 +f 8681//7425 8684//7428 7512//6257 7511//6256 +f 8684//7428 8681//7425 8683//7427 8686//7430 +f 8685//7429 8684//7428 8686//7430 8687//7431 +f 8688//7432 8689//7433 8679//7423 8678//7422 +f 8690//7434 8688//7432 8678//7422 8672//7416 +f 8688//7432 8690//7434 8691//7435 8692//7436 +f 8689//7433 8688//7432 8692//7436 8693//7437 +f 8694//7438 8695//7439 8696//7440 8697//7441 +f 8690//7434 8694//7438 8697//7441 8691//7435 +f 8694//7438 8690//7434 8672//7416 8671//7415 +f 8695//7439 8694//7438 8671//7415 8658//7402 +f 8698//7442 8699//7443 8693//7437 8692//7436 +f 8700//7444 8698//7442 8692//7436 8691//7435 +f 8698//7442 8700//7444 8701//7445 8702//7446 +f 8699//7443 8698//7442 8702//7446 8703//7447 +f 8704//7448 8700//7444 8691//7435 8697//7441 +f 8705//7449 8704//7448 8697//7441 8696//7440 +f 8704//7448 8705//7449 8706//7450 8707//7451 +f 8700//7444 8704//7448 8707//7451 8701//7445 +f 8708//7452 8709//7453 8710//7454 8711//7455 +f 8699//7443 8708//7452 8711//7455 8693//7437 +f 8708//7452 8699//7443 8703//7447 8712//7456 +f 8709//7453 8708//7452 8712//7456 8713//7457 +f 8714//7458 8715//7459 8713//7457 8712//7456 +f 8716//7460 8714//7458 8712//7456 8703//7447 +f 8714//7458 8716//7460 8717//7461 8718//7462 +f 8715//7459 8714//7458 8718//7462 8719//7463 +f 8720//7464 8716//7460 8703//7447 8702//7446 +f 8721//7465 8720//7464 8702//7446 8701//7445 +f 8720//7464 8721//7465 8722//7466 8723//7467 +f 8716//7460 8720//7464 8723//7467 8717//7461 +f 8724//7468 8725//7469 8726//7470 8727//7471 +f 8728//7472 8724//7468 8727//7471 8729//7473 +f 8724//7468 8728//7472 8719//7463 8718//7462 +f 8725//7469 8724//7468 8718//7462 8717//7461 +f 8730//7474 8731//7475 8732//7476 8733//7477 +f 8721//7465 8730//7474 8733//7477 8722//7466 +f 8730//7474 8721//7465 8701//7445 8707//7451 +f 8731//7475 8730//7474 8707//7451 8706//7450 +f 8734//7478 8725//7469 8717//7461 8723//7467 +f 8735//7479 8734//7478 8723//7467 8722//7466 +f 8734//7478 8735//7479 8736//7480 8737//7481 +f 8725//7469 8734//7478 8737//7481 8726//7470 +f 8738//7482 8735//7479 8722//7466 8733//7477 +f 8739//7483 8738//7482 8733//7477 8732//7476 +f 8738//7482 8739//7483 8740//7484 8741//7485 +f 8735//7479 8738//7482 8741//7485 8736//7480 +f 8742//7486 8743//7487 8744//7488 8745//7489 +f 8731//7475 8742//7486 8745//7489 8732//7476 +f 8742//7486 8731//7475 8706//7450 8746//7490 +f 8743//7487 8742//7486 8746//7490 8747//7491 +f 8748//7492 8749//7493 8750//7494 8751//7495 +f 8739//7483 8748//7492 8751//7495 8740//7484 +f 8748//7492 8739//7483 8732//7476 8745//7489 +f 8749//7493 8748//7492 8745//7489 8744//7488 +f 8752//7496 8753//7497 8736//7480 8741//7485 +f 8754//7498 8752//7496 8741//7485 8740//7484 +f 8752//7496 8754//7498 8755//7499 8756//7500 +f 8753//7497 8752//7496 8756//7500 8757//7501 +f 8758//7502 8759//7503 8747//7491 8746//7490 +f 8705//7449 8758//7502 8746//7490 8706//7450 +f 8758//7502 8705//7449 8696//7440 8760//7504 +f 8759//7503 8758//7502 8760//7504 8662//7406 +f 8761//7505 8762//7506 8726//7470 8737//7481 +f 8753//7497 8761//7505 8737//7481 8736//7480 +f 8761//7505 8753//7497 8757//7501 8763//7507 +f 8762//7506 8761//7505 8763//7507 8764//7508 +f 8765//7509 8766//7510 8729//7473 8727//7471 +f 8762//7506 8765//7509 8727//7471 8726//7470 +f 8765//7509 8762//7506 8764//7508 8767//7511 +f 8766//7510 8765//7509 8767//7511 8768//7512 +f 8769//7513 8770//7514 8771//7515 8772//7516 +f 8754//7498 8769//7513 8772//7516 8755//7499 +f 8769//7513 8754//7498 8740//7484 8751//7495 +f 8770//7514 8769//7513 8751//7495 8750//7494 +f 8773//7517 8774//7518 8757//7501 8756//7500 +f 8775//7519 8773//7517 8756//7500 8755//7499 +f 8773//7517 8775//7519 8776//7520 8777//7521 +f 8774//7518 8773//7517 8777//7521 8778//7522 +f 8779//7523 8775//7519 8755//7499 8772//7516 +f 8780//7524 8779//7523 8772//7516 8771//7515 +f 8779//7523 8780//7524 8781//7525 8782//7526 +f 8775//7519 8779//7523 8782//7526 8776//7520 +f 8783//7527 8784//7528 8764//7508 8763//7507 +f 8774//7518 8783//7527 8763//7507 8757//7501 +f 8783//7527 8774//7518 8778//7522 8785//7529 +f 8784//7528 8783//7527 8785//7529 8786//7530 +f 8787//7531 8788//7532 8789//7533 8790//7534 +f 8766//7510 8787//7531 8790//7534 8729//7473 +f 8787//7531 8766//7510 8768//7512 8791//7535 +f 8788//7532 8787//7531 8791//7535 8792//7536 +f 8793//7537 8728//7472 8729//7473 8790//7534 +f 8794//7538 8793//7537 8790//7534 8789//7533 +f 8793//7537 8794//7538 8795//7539 8796//7540 +f 8728//7472 8793//7537 8796//7540 8719//7463 +f 8797//7541 8798//7542 8768//7512 8767//7511 +f 8784//7528 8797//7541 8767//7511 8764//7508 +f 8797//7541 8784//7528 8786//7530 8799//7543 +f 8798//7542 8797//7541 8799//7543 8800//7544 +f 8801//7545 8802//7546 8800//7544 8799//7543 +f 8803//7547 8801//7545 8799//7543 8786//7530 +f 8801//7545 8803//7547 8804//7548 8805//7549 +f 8802//7546 8801//7545 8805//7549 8806//7550 +f 8807//7551 8803//7547 8786//7530 8785//7529 +f 8808//7552 8807//7551 8785//7529 8778//7522 +f 8807//7551 8808//7552 8809//7553 8810//7554 +f 8803//7547 8807//7551 8810//7554 8804//7548 +f 8811//7555 8812//7556 8813//7557 8814//7558 +f 8808//7552 8811//7555 8814//7558 8809//7553 +f 8811//7555 8808//7552 8778//7522 8777//7521 +f 8812//7556 8811//7555 8777//7521 8776//7520 +f 8815//7559 8816//7560 8804//7548 8810//7554 +f 8817//7561 8815//7559 8810//7554 8809//7553 +f 8815//7559 8817//7561 8818//7562 8819//7563 +f 8816//7560 8815//7559 8819//7563 8820//7564 +f 8821//7565 8822//7566 8823//7567 8824//7568 +f 8812//7556 8821//7565 8824//7568 8813//7557 +f 8821//7565 8812//7556 8776//7520 8782//7526 +f 8822//7566 8821//7565 8782//7526 8781//7525 +f 8825//7569 8817//7561 8809//7553 8814//7558 +f 8826//7570 8825//7569 8814//7558 8813//7557 +f 8825//7569 8826//7570 8827//7571 8828//7572 +f 8817//7561 8825//7569 8828//7572 8818//7562 +f 8829//7573 8826//7570 8813//7557 8824//7568 +f 8830//7574 8829//7573 8824//7568 8823//7567 +f 8829//7573 8830//7574 8831//7575 8832//7576 +f 8826//7570 8829//7573 8832//7576 8827//7571 +f 8833//7577 8834//7578 8835//7579 8836//7580 +f 8822//7566 8833//7577 8836//7580 8823//7567 +f 8833//7577 8822//7566 8781//7525 8837//7581 +f 8834//7578 8833//7577 8837//7581 8838//7582 +f 8839//7583 8840//7584 8841//7585 8842//7586 +f 8830//7574 8839//7583 8842//7586 8831//7575 +f 8839//7583 8830//7574 8823//7567 8836//7580 +f 8840//7584 8839//7583 8836//7580 8835//7579 +f 8843//7587 8844//7588 8827//7571 8832//7576 +f 8845//7589 8843//7587 8832//7576 8831//7575 +f 8843//7587 8845//7589 8846//7590 8847//7591 +f 8844//7588 8843//7587 8847//7591 8848//7592 +f 8849//7593 8850//7594 8838//7582 8837//7581 +f 8780//7524 8849//7593 8837//7581 8781//7525 +f 8849//7593 8780//7524 8771//7515 8851//7595 +f 8850//7594 8849//7593 8851//7595 8852//7596 +f 8853//7597 8854//7598 8818//7562 8828//7572 +f 8844//7588 8853//7597 8828//7572 8827//7571 +f 8853//7597 8844//7588 8848//7592 8855//7599 +f 8854//7598 8853//7597 8855//7599 8856//7600 +f 8857//7601 8858//7602 8852//7596 8851//7595 +f 8770//7514 8857//7601 8851//7595 8771//7515 +f 8857//7601 8770//7514 8750//7494 8859//7603 +f 8858//7602 8857//7601 8859//7603 8860//7604 +f 8861//7605 8862//7606 8835//7579 8834//7578 +f 8863//7607 8861//7605 8834//7578 8838//7582 +f 8861//7605 8863//7607 8864//7608 8865//7609 +f 8862//7606 8861//7605 8865//7609 8866//7610 +f 8867//7611 8868//7612 8860//7604 8859//7603 +f 8749//7493 8867//7611 8859//7603 8750//7494 +f 8867//7611 8749//7493 8744//7488 8869//7613 +f 8868//7612 8867//7611 8869//7613 8870//7614 +f 8871//7615 8863//7607 8838//7582 8850//7594 +f 8872//7616 8871//7615 8850//7594 8852//7596 +f 8871//7615 8872//7616 8873//7617 8874//7618 +f 8863//7607 8871//7615 8874//7618 8864//7608 +f 8875//7619 8872//7616 8852//7596 8858//7602 +f 8876//7620 8875//7619 8858//7602 8860//7604 +f 8875//7619 8876//7620 8877//7621 8878//7622 +f 8872//7616 8875//7619 8878//7622 8873//7617 +f 8879//7623 8880//7624 8870//7614 8869//7613 +f 8743//7487 8879//7623 8869//7613 8744//7488 +f 8879//7623 8743//7487 8747//7491 8881//7625 +f 8880//7624 8879//7623 8881//7625 8882//7626 +f 8883//7627 8884//7628 8885//7629 8886//7630 +f 8876//7620 8883//7627 8886//7630 8877//7621 +f 8883//7627 8876//7620 8860//7604 8868//7612 +f 8884//7628 8883//7627 8868//7612 8870//7614 +f 8887//7631 8888//7632 8873//7617 8878//7622 +f 8889//7633 8887//7631 8878//7622 8877//7621 +f 8887//7631 8889//7633 8890//7634 8891//7635 +f 8888//7632 8887//7631 8891//7635 8892//7636 +f 8893//7637 8889//7633 8877//7621 8886//7630 +f 8894//7638 8893//7637 8886//7630 8885//7629 +f 8893//7637 8894//7638 8895//7639 8896//7640 +f 8889//7633 8893//7637 8896//7640 8890//7634 +f 8897//7641 8898//7642 8899//7643 8900//7644 +f 8884//7628 8897//7641 8900//7644 8885//7629 +f 8897//7641 8884//7628 8870//7614 8880//7624 +f 8898//7642 8897//7641 8880//7624 8882//7626 +f 8901//7645 8902//7646 8864//7608 8874//7618 +f 8888//7632 8901//7645 8874//7618 8873//7617 +f 8901//7645 8888//7632 8892//7636 8903//7647 +f 8902//7646 8901//7645 8903//7647 8904//7648 +f 8905//7649 8894//7638 8885//7629 8900//7644 +f 8906//7650 8905//7649 8900//7644 8899//7643 +f 8905//7649 8906//7650 8907//7651 8908//7652 +f 8894//7638 8905//7649 8908//7652 8895//7639 +f 8909//7653 8910//7654 8605//7349 8911//7655 +f 8906//7650 8909//7653 8911//7655 8907//7651 +f 8909//7653 8906//7650 8899//7643 8912//7656 +f 8910//7654 8909//7653 8912//7656 8648//7392 +f 8913//7657 8914//7658 8882//7626 8881//7625 +f 8759//7503 8913//7657 8881//7625 8747//7491 +f 8913//7657 8759//7503 8662//7406 8661//7405 +f 8914//7658 8913//7657 8661//7405 8645//7389 +f 8915//7659 8660//7404 8662//7406 8760//7504 +f 8695//7439 8915//7659 8760//7504 8696//7440 +f 8915//7659 8695//7439 8658//7402 8657//7401 +f 8660//7404 8915//7659 8657//7401 8636//7380 +f 8916//7660 8898//7642 8882//7626 8914//7658 +f 8644//7388 8916//7660 8914//7658 8645//7389 +f 8916//7660 8644//7388 8648//7392 8912//7656 +f 8898//7642 8916//7660 8912//7656 8899//7643 +f 8917//7661 8910//7654 8648//7392 8647//7391 +f 8614//7358 8917//7661 8647//7391 8615//7359 +f 8917//7661 8614//7358 8597//7341 8606//7350 +f 8910//7654 8917//7661 8606//7350 8605//7349 +f 8918//7662 8919//7663 8907//7651 8911//7655 +f 8604//7348 8918//7662 8911//7655 8605//7349 +f 8918//7662 8604//7348 8601//7345 8920//7664 +f 8919//7663 8918//7662 8920//7664 8921//7665 +f 8922//7666 8923//7667 8895//7639 8908//7652 +f 8919//7663 8922//7666 8908//7652 8907//7651 +f 8922//7666 8919//7663 8921//7665 8924//7668 +f 8923//7667 8922//7666 8924//7668 8925//7669 +f 8926//7670 8927//7671 8921//7665 8920//7664 +f 8600//7344 8926//7670 8920//7664 8601//7345 +f 8926//7670 8600//7344 8577//7321 8928//7672 +f 8927//7671 8926//7670 8928//7672 8929//7673 +f 8930//7674 8931//7675 8890//7634 8896//7640 +f 8923//7667 8930//7674 8896//7640 8895//7639 +f 8930//7674 8923//7667 8925//7669 8932//7676 +f 8931//7675 8930//7674 8932//7676 8933//7677 +f 8934//7678 8935//7679 8925//7669 8924//7668 +f 8927//7671 8934//7678 8924//7668 8921//7665 +f 8934//7678 8927//7671 8929//7673 8936//7680 +f 8935//7679 8934//7678 8936//7680 8937//7681 +f 8938//7682 8939//7683 8929//7673 8928//7672 +f 8576//7320 8938//7682 8928//7672 8577//7321 +f 8938//7682 8576//7320 8573//7317 8940//7684 +f 8939//7683 8938//7682 8940//7684 8941//7685 +f 8942//7686 8943//7687 8892//7636 8891//7635 +f 8931//7675 8942//7686 8891//7635 8890//7634 +f 8942//7686 8931//7675 8933//7677 8944//7688 +f 8943//7687 8942//7686 8944//7688 8945//7689 +f 8946//7690 8947//7691 8933//7677 8932//7676 +f 8935//7679 8946//7690 8932//7676 8925//7669 +f 8946//7690 8935//7679 8937//7681 8948//7692 +f 8947//7691 8946//7690 8948//7692 8949//7693 +f 8950//7694 8951//7695 8937//7681 8936//7680 +f 8939//7683 8950//7694 8936//7680 8929//7673 +f 8950//7694 8939//7683 8941//7685 8952//7696 +f 8951//7695 8950//7694 8952//7696 8953//7697 +f 8954//7698 8955//7699 8941//7685 8940//7684 +f 8572//7316 8954//7698 8940//7684 8573//7317 +f 8954//7698 8572//7316 8549//7293 8956//7700 +f 8955//7699 8954//7698 8956//7700 8957//7701 +f 8958//7702 8959//7703 8957//7701 8956//7700 +f 8548//7292 8958//7702 8956//7700 8549//7293 +f 8958//7702 8548//7292 8475//7219 8474//7218 +f 8959//7703 8958//7702 8474//7218 8465//7209 +f 8960//7704 8961//7705 8953//7697 8952//7696 +f 8955//7699 8960//7704 8952//7696 8941//7685 +f 8960//7704 8955//7699 8957//7701 8962//7706 +f 8961//7705 8960//7704 8962//7706 8963//7707 +f 8964//7708 8965//7709 8949//7693 8948//7692 +f 8951//7695 8964//7708 8948//7692 8937//7681 +f 8964//7708 8951//7695 8953//7697 8966//7710 +f 8965//7709 8964//7708 8966//7710 8967//7711 +f 8968//7712 8969//7713 8963//7707 8962//7706 +f 8959//7703 8968//7712 8962//7706 8957//7701 +f 8968//7712 8959//7703 8465//7209 8464//7208 +f 8969//7713 8968//7712 8464//7208 8463//7207 +f 8970//7714 8971//7715 8967//7711 8966//7710 +f 8961//7705 8970//7714 8966//7710 8953//7697 +f 8970//7714 8961//7705 8963//7707 8972//7716 +f 8971//7715 8970//7714 8972//7716 8973//7717 +f 8974//7718 8975//7719 8973//7717 8972//7716 +f 8969//7713 8974//7718 8972//7716 8963//7707 +f 8974//7718 8969//7713 8463//7207 8976//7720 +f 8975//7719 8974//7718 8976//7720 8977//7721 +f 8978//7722 8979//7723 8977//7721 8976//7720 +f 8462//7206 8978//7722 8976//7720 8463//7207 +f 8978//7722 8462//7206 8439//7184 8438//7183 +f 8979//7723 8978//7722 8438//7183 8435//7180 +f 8980//7724 8981//7725 8982//7726 8983//7727 +f 8971//7715 8980//7724 8983//7727 8967//7711 +f 8980//7724 8971//7715 8973//7717 8984//7728 +f 8981//7725 8980//7724 8984//7728 8985//7729 +f 8986//7730 8987//7731 8988//7732 8989//7733 +f 8979//7723 8986//7730 8989//7733 8977//7721 +f 8986//7730 8979//7723 8435//7180 8434//7179 +f 8987//7731 8986//7730 8434//7179 8433//7178 +f 8990//7734 8991//7735 8985//7729 8984//7728 +f 8975//7719 8990//7734 8984//7728 8973//7717 +f 8990//7734 8975//7719 8977//7721 8989//7733 +f 8991//7735 8990//7734 8989//7733 8988//7732 +f 8992//7736 8993//7737 8994//7738 8995//7739 +f 8987//7731 8992//7736 8995//7739 8988//7732 +f 8992//7736 8987//7731 8433//7178 8996//7740 +f 8993//7737 8992//7736 8996//7740 8997//7741 +f 8998//7742 8999//7743 9000//7744 9001//7745 +f 8991//7735 8998//7742 9001//7745 8985//7729 +f 8998//7742 8991//7735 8988//7732 8995//7739 +f 8999//7743 8998//7742 8995//7739 8994//7738 +f 9002//7746 9003//7747 9004//7748 9005//7749 +f 8981//7725 9002//7746 9005//7749 8982//7726 +f 9002//7746 8981//7725 8985//7729 9001//7745 +f 9003//7747 9002//7746 9001//7745 9000//7744 +f 9006//7750 8965//7709 8967//7711 8983//7727 +f 9007//7751 9006//7750 8983//7727 8982//7726 +f 9006//7750 9007//7751 9008//7752 9009//7753 +f 8965//7709 9006//7750 9009//7753 8949//7693 +f 9010//7754 9007//7751 8982//7726 9005//7749 +f 9011//7755 9010//7754 9005//7749 9004//7748 +f 9010//7754 9011//7755 9012//7756 9013//7757 +f 9007//7751 9010//7754 9013//7757 9008//7752 +f 9014//7758 8947//7691 8949//7693 9009//7753 +f 9015//7759 9014//7758 9009//7753 9008//7752 +f 9014//7758 9015//7759 8945//7689 8944//7688 +f 8947//7691 9014//7758 8944//7688 8933//7677 +f 9016//7760 9017//7761 9018//7762 9019//7763 +f 9015//7759 9016//7760 9019//7763 8945//7689 +f 9016//7760 9015//7759 9008//7752 9013//7757 +f 9017//7761 9016//7760 9013//7757 9012//7756 +f 9020//7764 9021//7765 8904//7648 8903//7647 +f 8943//7687 9020//7764 8903//7647 8892//7636 +f 9020//7764 8943//7687 8945//7689 9019//7763 +f 9021//7765 9020//7764 9019//7763 9018//7762 +f 9022//7766 9023//7767 9024//7768 9025//7769 +f 9017//7761 9022//7766 9025//7769 9018//7762 +f 9022//7766 9017//7761 9012//7756 9026//7770 +f 9023//7767 9022//7766 9026//7770 9027//7771 +f 9028//7772 9029//7773 8866//7610 8865//7609 +f 8902//7646 9028//7772 8865//7609 8864//7608 +f 9028//7772 8902//7646 8904//7648 9030//7774 +f 9029//7773 9028//7772 9030//7774 9031//7775 +f 9032//7776 9033//7777 9031//7775 9030//7774 +f 9021//7765 9032//7776 9030//7774 8904//7648 +f 9032//7776 9021//7765 9018//7762 9025//7769 +f 9033//7777 9032//7776 9025//7769 9024//7768 +f 9034//7778 9035//7779 8841//7585 8840//7584 +f 8862//7606 9034//7778 8840//7584 8835//7579 +f 9034//7778 8862//7606 8866//7610 9036//7780 +f 9035//7779 9034//7778 9036//7780 9037//7781 +f 9038//7782 9039//7783 9037//7781 9036//7780 +f 9029//7773 9038//7782 9036//7780 8866//7610 +f 9038//7782 9029//7773 9031//7775 9040//7784 +f 9039//7783 9038//7782 9040//7784 9041//7785 +f 9042//7786 9043//7787 9041//7785 9040//7784 +f 9033//7777 9042//7786 9040//7784 9031//7775 +f 9042//7786 9033//7777 9024//7768 9044//7788 +f 9043//7787 9042//7786 9044//7788 9045//7789 +f 9046//7790 9047//7791 9027//7771 9026//7770 +f 9011//7755 9046//7790 9026//7770 9012//7756 +f 9046//7790 9011//7755 9004//7748 9048//7792 +f 9047//7791 9046//7790 9048//7792 9049//7793 +f 9050//7794 9051//7795 9045//7789 9044//7788 +f 9023//7767 9050//7794 9044//7788 9024//7768 +f 9050//7794 9023//7767 9027//7771 9052//7796 +f 9051//7795 9050//7794 9052//7796 9053//7797 +f 9054//7798 9055//7799 9049//7793 9048//7792 +f 9003//7747 9054//7798 9048//7792 9004//7748 +f 9054//7798 9003//7747 9000//7744 9056//7800 +f 9055//7799 9054//7798 9056//7800 9057//7801 +f 9058//7802 9059//7803 9053//7797 9052//7796 +f 9047//7791 9058//7802 9052//7796 9027//7771 +f 9058//7802 9047//7791 9049//7793 9060//7804 +f 9059//7803 9058//7802 9060//7804 9061//7805 +f 9062//7806 9063//7807 9057//7801 9056//7800 +f 8999//7743 9062//7806 9056//7800 9000//7744 +f 9062//7806 8999//7743 8994//7738 9064//7808 +f 9063//7807 9062//7806 9064//7808 9065//7809 +f 9066//7810 9067//7811 9061//7805 9060//7804 +f 9055//7799 9066//7810 9060//7804 9049//7793 +f 9066//7810 9055//7799 9057//7801 9068//7812 +f 9067//7811 9066//7810 9068//7812 9069//7813 +f 9070//7814 9071//7815 9072//7816 9073//7817 +f 9051//7795 9070//7814 9073//7817 9045//7789 +f 9070//7814 9051//7795 9053//7797 9074//7818 +f 9071//7815 9070//7814 9074//7818 9075//7819 +f 9076//7820 9077//7821 9075//7819 9074//7818 +f 9059//7803 9076//7820 9074//7818 9053//7797 +f 9076//7820 9059//7803 9061//7805 9078//7822 +f 9077//7821 9076//7820 9078//7822 9079//7823 +f 9080//7824 9043//7787 9045//7789 9073//7817 +f 9081//7825 9080//7824 9073//7817 9072//7816 +f 9080//7824 9081//7825 9082//7826 9083//7827 +f 9043//7787 9080//7824 9083//7827 9041//7785 +f 9084//7828 9085//7829 9069//7813 9068//7812 +f 9063//7807 9084//7828 9068//7812 9057//7801 +f 9084//7828 9063//7807 9065//7809 9086//7830 +f 9085//7829 9084//7828 9086//7830 9087//7831 +f 9088//7832 9039//7783 9041//7785 9083//7827 +f 9089//7833 9088//7832 9083//7827 9082//7826 +f 9088//7832 9089//7833 9090//7834 9091//7835 +f 9039//7783 9088//7832 9091//7835 9037//7781 +f 9092//7836 9093//7837 9065//7809 9064//7808 +f 8993//7737 9092//7836 9064//7808 8994//7738 +f 9092//7836 8993//7737 8997//7741 9094//7838 +f 9093//7837 9092//7836 9094//7838 9095//7839 +f 9096//7840 9097//7841 8997//7741 8996//7740 +f 8432//7177 9096//7840 8996//7740 8433//7178 +f 9096//7840 8432//7177 8311//7056 8310//7055 +f 9097//7841 9096//7840 8310//7055 8301//7046 +f 9098//7842 9099//7843 9095//7839 9094//7838 +f 9097//7841 9098//7842 9094//7838 8997//7741 +f 9098//7842 9097//7841 8301//7046 8300//7045 +f 9099//7843 9098//7842 8300//7045 8304//7049 +f 9100//7844 9101//7845 9087//7831 9086//7830 +f 9093//7837 9100//7844 9086//7830 9065//7809 +f 9100//7844 9093//7837 9095//7839 9102//7846 +f 9101//7845 9100//7844 9102//7846 9103//7847 +f 9104//7848 9105//7849 8304//7049 8303//7048 +f 8282//7027 9104//7848 8303//7048 8283//7028 +f 9104//7848 8282//7027 8218//6963 9106//7850 +f 9105//7849 9104//7848 9106//7850 9107//7851 +f 9108//7852 9109//7853 9103//7847 9102//7846 +f 9099//7843 9108//7852 9102//7846 9095//7839 +f 9108//7852 9099//7843 8304//7049 9105//7849 +f 9109//7853 9108//7852 9105//7849 9107//7851 +f 9110//7854 9111//7855 9107//7851 9106//7850 +f 8217//6962 9110//7854 9106//7850 8218//6963 +f 9110//7854 8217//6962 8196//6941 8195//6940 +f 9111//7855 9110//7854 8195//6940 8194//6939 +f 9112//7856 9109//7853 9107//7851 9111//7855 +f 8198//6943 9112//7856 9111//7855 8194//6939 +f 9112//7856 8198//6943 8200//6945 9113//7857 +f 9109//7853 9112//7856 9113//7857 9103//7847 +f 9114//7858 9101//7845 9103//7847 9113//7857 +f 9115//7859 9114//7858 9113//7857 8200//6945 +f 9114//7858 9115//7859 9116//7860 9117//7861 +f 9101//7845 9114//7858 9117//7861 9087//7831 +f 9118//7862 9115//7859 8200//6945 8199//6944 +f 8188//6933 9118//7862 8199//6944 8178//6923 +f 9118//7862 8188//6933 8190//6935 9119//7863 +f 9115//7859 9118//7862 9119//7863 9116//7860 +f 9120//7864 9085//7829 9087//7831 9117//7861 +f 9121//7865 9120//7864 9117//7861 9116//7860 +f 9120//7864 9121//7865 9122//7866 9123//7867 +f 9085//7829 9120//7864 9123//7867 9069//7813 +f 9124//7868 9121//7865 9116//7860 9119//7863 +f 9125//7869 9124//7868 9119//7863 8190//6935 +f 9124//7868 9125//7869 9126//7870 9127//7871 +f 9121//7865 9124//7868 9127//7871 9122//7866 +f 9128//7872 9125//7869 8190//6935 8189//6934 +f 9129//7873 9128//7872 8189//6934 8168//6913 +f 9128//7872 9129//7873 9130//7874 9131//7875 +f 9125//7869 9128//7872 9131//7875 9126//7870 +f 9132//7876 9067//7811 9069//7813 9123//7867 +f 9133//7877 9132//7876 9123//7867 9122//7866 +f 9132//7876 9133//7877 9079//7823 9078//7822 +f 9067//7811 9132//7876 9078//7822 9061//7805 +f 9134//7878 9133//7877 9122//7866 9127//7871 +f 9135//7879 9134//7878 9127//7871 9126//7870 +f 9134//7878 9135//7879 9136//7880 9137//7881 +f 9133//7877 9134//7878 9137//7881 9079//7823 +f 9138//7882 9139//7883 9140//7884 9141//7885 +f 9077//7821 9138//7882 9141//7885 9075//7819 +f 9138//7882 9077//7821 9079//7823 9137//7881 +f 9139//7883 9138//7882 9137//7881 9136//7880 +f 9142//7886 9143//7887 9144//7888 9145//7889 +f 9135//7879 9142//7886 9145//7889 9136//7880 +f 9142//7886 9135//7879 9126//7870 9131//7875 +f 9143//7887 9142//7886 9131//7875 9130//7874 +f 9146//7890 9147//7891 9148//7892 9149//7893 +f 9139//7883 9146//7890 9149//7893 9140//7884 +f 9146//7890 9139//7883 9136//7880 9145//7889 +f 9147//7891 9146//7890 9145//7889 9144//7888 +f 9150//7894 9071//7815 9075//7819 9141//7885 +f 9151//7895 9150//7894 9141//7885 9140//7884 +f 9150//7894 9151//7895 9152//7896 9153//7897 +f 9071//7815 9150//7894 9153//7897 9072//7816 +f 9154//7898 9151//7895 9140//7884 9149//7893 +f 9155//7899 9154//7898 9149//7893 9148//7892 +f 9154//7898 9155//7899 9156//7900 9157//7901 +f 9151//7895 9154//7898 9157//7901 9152//7896 +f 9158//7902 9081//7825 9072//7816 9153//7897 +f 9159//7903 9158//7902 9153//7897 9152//7896 +f 9158//7902 9159//7903 9160//7904 9161//7905 +f 9081//7825 9158//7902 9161//7905 9082//7826 +f 9162//7906 9159//7903 9152//7896 9157//7901 +f 9163//7907 9162//7906 9157//7901 9156//7900 +f 9162//7906 9163//7907 9164//7908 9165//7909 +f 9159//7903 9162//7906 9165//7909 9160//7904 +f 9166//7910 9089//7833 9082//7826 9161//7905 +f 9167//7911 9166//7910 9161//7905 9160//7904 +f 9166//7910 9167//7911 9168//7912 9169//7913 +f 9089//7833 9166//7910 9169//7913 9090//7834 +f 9170//7914 9167//7911 9160//7904 9165//7909 +f 9171//7915 9170//7914 9165//7909 9164//7908 +f 9170//7914 9171//7915 9172//7916 9173//7917 +f 9167//7911 9170//7914 9173//7917 9168//7912 +f 9174//7918 9175//7919 9176//7920 9177//7921 +f 9163//7907 9174//7918 9177//7921 9164//7908 +f 9174//7918 9163//7907 9156//7900 9178//7922 +f 9175//7919 9174//7918 9178//7922 9179//7923 +f 9180//7924 9181//7925 9182//7926 9183//7927 +f 9171//7915 9180//7924 9183//7927 9172//7916 +f 9180//7924 9171//7915 9164//7908 9177//7921 +f 9181//7925 9180//7924 9177//7921 9176//7920 +f 9184//7928 9185//7929 9168//7912 9173//7917 +f 9186//7930 9184//7928 9173//7917 9172//7916 +f 9184//7928 9186//7930 9187//7931 9188//7932 +f 9185//7929 9184//7928 9188//7932 9189//7933 +f 9190//7934 9191//7935 9179//7923 9178//7922 +f 9155//7899 9190//7934 9178//7922 9156//7900 +f 9190//7934 9155//7899 9148//7892 9192//7936 +f 9191//7935 9190//7934 9192//7936 9193//7937 +f 9194//7938 9195//7939 9090//7834 9169//7913 +f 9185//7929 9194//7938 9169//7913 9168//7912 +f 9194//7938 9185//7929 9189//7933 9196//7940 +f 9195//7939 9194//7938 9196//7940 9197//7941 +f 9198//7942 9199//7943 9193//7937 9192//7936 +f 9147//7891 9198//7942 9192//7936 9148//7892 +f 9198//7942 9147//7891 9144//7888 9200//7944 +f 9199//7943 9198//7942 9200//7944 9201//7945 +f 9202//7946 9035//7779 9037//7781 9091//7835 +f 9195//7939 9202//7946 9091//7835 9090//7834 +f 9202//7946 9195//7939 9197//7941 9203//7947 +f 9035//7779 9202//7946 9203//7947 8841//7585 +f 9204//7948 8845//7589 8831//7575 8842//7586 +f 9203//7947 9204//7948 8842//7586 8841//7585 +f 9204//7948 9203//7947 9197//7941 9205//7949 +f 8845//7589 9204//7948 9205//7949 8846//7590 +f 9206//7950 9207//7951 8846//7590 9205//7949 +f 9196//7940 9206//7950 9205//7949 9197//7941 +f 9206//7950 9196//7940 9189//7933 9208//7952 +f 9207//7951 9206//7950 9208//7952 9209//7953 +f 9210//7954 9211//7955 9209//7953 9208//7952 +f 9188//7932 9210//7954 9208//7952 9189//7933 +f 9210//7954 9188//7932 9187//7931 9212//7956 +f 9211//7955 9210//7954 9212//7956 7754//6499 +f 9213//7957 9214//7958 8848//7592 8847//7591 +f 9207//7951 9213//7957 8847//7591 8846//7590 +f 9213//7957 9207//7951 9209//7953 9215//7959 +f 9214//7958 9213//7957 9215//7959 7744//6489 +f 9216//7960 7742//6487 7744//6489 9215//7959 +f 9211//7955 9216//7960 9215//7959 9209//7953 +f 9216//7960 9211//7955 7754//6499 7753//6498 +f 7742//6487 9216//7960 7753//6498 7740//6485 +f 9217//7961 9218//7962 8856//7600 8855//7599 +f 9214//7958 9217//7961 8855//7599 8848//7592 +f 9217//7961 9214//7958 7744//6489 7743//6488 +f 9218//7962 9217//7961 7743//6488 7732//6477 +f 9219//7963 7726//6471 7728//6473 9220//7964 +f 9218//7962 9219//7963 9220//7964 8856//7600 +f 9219//7963 9218//7962 7732//6477 7731//6476 +f 7726//6471 9219//7963 7731//6476 7714//6459 +f 9221//7965 8854//7598 8856//7600 9220//7964 +f 9222//7966 9221//7965 9220//7964 7728//6473 +f 9221//7965 9222//7966 8820//7564 8819//7563 +f 8854//7598 9221//7965 8819//7563 8818//7562 +f 9223//7967 7720//6465 7724//6469 9224//7968 +f 9222//7966 9223//7967 9224//7968 8820//7564 +f 9223//7967 9222//7966 7728//6473 7727//6472 +f 7720//6465 9223//7967 7727//6472 7710//6455 +f 9225//7969 8816//7560 8820//7564 9224//7968 +f 9226//7970 9225//7969 9224//7968 7724//6469 +f 9225//7969 9226//7970 8806//7550 8805//7549 +f 8816//7560 9225//7969 8805//7549 8804//7548 +f 9227//7971 9228//7972 9229//7973 9230//7974 +f 8802//7546 9227//7971 9230//7974 8800//7544 +f 9227//7971 8802//7546 8806//7550 9231//7975 +f 9228//7972 9227//7971 9231//7975 9232//7976 +f 9233//7977 8798//7542 8800//7544 9230//7974 +f 9234//7978 9233//7977 9230//7974 9229//7973 +f 9233//7977 9234//7978 8792//7536 8791//7535 +f 8798//7542 9233//7977 8791//7535 8768//7512 +f 9235//7979 7752//6497 7754//6499 9212//7956 +f 9236//7980 9235//7979 9212//7956 9187//7931 +f 9235//7979 9236//7980 9237//7981 9238//7982 +f 7752//6497 9235//7979 9238//7982 7750//6495 +f 9239//7983 9240//7984 9237//7981 9236//7980 +f 9186//7930 9239//7983 9236//7980 9187//7931 +f 9239//7983 9186//7930 9172//7916 9183//7927 +f 9240//7984 9239//7983 9183//7927 9182//7926 +f 9241//7985 7746//6491 7750//6495 9238//7982 +f 9242//7986 9241//7985 9238//7982 9237//7981 +f 9241//7985 9242//7986 7766//6511 7765//6510 +f 7746//6491 9241//7985 7765//6510 7747//6492 +f 9243//7987 9244//7988 7766//6511 9242//7986 +f 9240//7984 9243//7987 9242//7986 9237//7981 +f 9243//7987 9240//7984 9182//7926 9245//7989 +f 9244//7988 9243//7987 9245//7989 9246//7990 +f 9247//7991 7790//6535 7763//6508 7762//6507 +f 9244//7988 9247//7991 7762//6507 7766//6511 +f 9247//7991 9244//7988 9246//7990 9248//7992 +f 7790//6535 9247//7991 9248//7992 7791//6536 +f 9249//7993 9250//7994 9246//7990 9245//7989 +f 9181//7925 9249//7993 9245//7989 9182//7926 +f 9249//7993 9181//7925 9176//7920 9251//7995 +f 9250//7994 9249//7993 9251//7995 9252//7996 +f 9253//7997 9254//7998 7791//6536 9248//7992 +f 9250//7994 9253//7997 9248//7992 9246//7990 +f 9253//7997 9250//7994 9252//7996 9255//7999 +f 9254//7998 9253//7997 9255//7999 9256//8000 +f 9257//8001 9258//8002 9252//7996 9251//7995 +f 9175//7919 9257//8001 9251//7995 9176//7920 +f 9257//8001 9175//7919 9179//7923 9259//8003 +f 9258//8002 9257//8001 9259//8003 9260//8004 +f 9261//8005 9262//8006 7780//6525 7792//6537 +f 9254//7998 9261//8005 7792//6537 7791//6536 +f 9261//8005 9254//7998 9256//8000 9263//8007 +f 9262//8006 9261//8005 9263//8007 9264//8008 +f 9265//8009 9266//8010 9256//8000 9255//7999 +f 9258//8002 9265//8009 9255//7999 9252//7996 +f 9265//8009 9258//8002 9260//8004 9267//8011 +f 9266//8010 9265//8009 9267//8011 9268//8012 +f 9269//8013 9270//8014 9260//8004 9259//8003 +f 9191//7935 9269//8013 9259//8003 9179//7923 +f 9269//8013 9191//7935 9193//7937 9271//8015 +f 9270//8014 9269//8013 9271//8015 9272//8016 +f 9273//8017 9274//8018 7782//6527 7781//6526 +f 9262//8006 9273//8017 7781//6526 7780//6525 +f 9273//8017 9262//8006 9264//8008 9275//8019 +f 9274//8018 9273//8017 9275//8019 9276//8020 +f 9277//8021 9278//8022 9264//8008 9263//8007 +f 9266//8010 9277//8021 9263//8007 9256//8000 +f 9277//8021 9266//8010 9268//8012 9279//8023 +f 9278//8022 9277//8021 9279//8023 9280//8024 +f 9281//8025 9282//8026 9268//8012 9267//8011 +f 9270//8014 9281//8025 9267//8011 9260//8004 +f 9281//8025 9270//8014 9272//8016 9283//8027 +f 9282//8026 9281//8025 9283//8027 9284//8028 +f 9285//8029 7806//6551 7785//6530 7788//6533 +f 9274//8018 9285//8029 7788//6533 7782//6527 +f 9285//8029 9274//8018 9276//8020 9286//8030 +f 7806//6551 9285//8029 9286//8030 7807//6552 +f 9287//8031 9288//8032 9276//8020 9275//8019 +f 9278//8022 9287//8031 9275//8019 9264//8008 +f 9287//8031 9278//8022 9280//8024 9289//8033 +f 9288//8032 9287//8031 9289//8033 7838//6583 +f 9290//8034 7822//6567 7807//6552 9286//8030 +f 9288//8032 9290//8034 9286//8030 9276//8020 +f 9290//8034 9288//8032 7838//6583 7837//6582 +f 7822//6567 9290//8034 7837//6582 7823//6568 +f 9291//8035 9292//8036 7958//6703 7957//6702 +f 7834//6579 9291//8035 7957//6702 7835//6580 +f 9291//8035 7834//6579 7838//6583 9289//8033 +f 9292//8036 9291//8035 9289//8033 9280//8024 +f 9293//8037 9292//8036 9280//8024 9279//8023 +f 9282//8026 9293//8037 9279//8023 9268//8012 +f 9293//8037 9282//8026 9284//8028 9294//8038 +f 9292//8036 9293//8037 9294//8038 7958//6703 +f 9295//8039 9296//8040 7968//6713 7967//6712 +f 7956//6701 9295//8039 7967//6712 7954//6699 +f 9295//8039 7956//6701 7958//6703 9294//8038 +f 9296//8040 9295//8039 9294//8038 9284//8028 +f 9297//8041 9298//8042 8164//6909 8163//6908 +f 7966//6711 9297//8041 8163//6908 7964//6709 +f 9297//8041 7966//6711 7968//6713 9299//8043 +f 9298//8042 9297//8041 9299//8043 9300//8044 +f 9301//8045 9302//8046 9300//8044 9299//8043 +f 9296//8040 9301//8045 9299//8043 7968//6713 +f 9301//8045 9296//8040 9284//8028 9283//8027 +f 9302//8046 9301//8045 9283//8027 9272//8016 +f 9303//8047 9304//8048 8172//6917 8171//6916 +f 9298//8042 9303//8047 8171//6916 8164//6909 +f 9303//8047 9298//8042 9300//8044 9305//8049 +f 9304//8048 9303//8047 9305//8049 9201//7945 +f 9306//8050 9129//7873 8168//6913 8167//6912 +f 8170//6915 9306//8050 8167//6912 8160//6905 +f 9306//8050 8170//6915 8172//6917 9307//8051 +f 9129//7873 9306//8050 9307//8051 9130//7874 +f 9308//8052 9199//7943 9201//7945 9305//8049 +f 9302//8046 9308//8052 9305//8049 9300//8044 +f 9308//8052 9302//8046 9272//8016 9271//8015 +f 9199//7943 9308//8052 9271//8015 9193//7937 +f 9309//8053 9143//7887 9130//7874 9307//8051 +f 9304//8048 9309//8053 9307//8051 8172//6917 +f 9309//8053 9304//8048 9201//7945 9200//7944 +f 9143//7887 9309//8053 9200//7944 9144//7888 +f 9310//8054 9311//8055 8683//7427 8682//7426 +f 8689//7433 9310//8054 8682//7426 8679//7423 +f 9310//8054 8689//7433 8693//7437 8711//7455 +f 9311//8055 9310//8054 8711//7455 8710//7454 +f 9312//8056 9313//8057 8687//7431 8686//7430 +f 9311//8055 9312//8056 8686//7430 8683//7427 +f 9312//8056 9311//8055 8710//7454 9314//8058 +f 9313//8057 9312//8056 9314//8058 9315//8059 +f 9316//8060 9317//8061 9315//8059 9314//8058 +f 8709//7453 9316//8060 9314//8058 8710//7454 +f 9316//8060 8709//7453 8713//7457 9318//8062 +f 9317//8061 9316//8060 9318//8062 9319//8063 +f 9320//8064 9321//8065 9319//8063 9318//8062 +f 8715//7459 9320//8064 9318//8062 8713//7457 +f 9320//8064 8715//7459 8719//7463 8796//7540 +f 9321//8065 9320//8064 8796//7540 8795//7539 +f 9322//8066 9323//8067 8529//7273 8534//7278 +f 9324//8068 9322//8066 8534//7278 8533//7277 +f 9322//8066 9324//8068 8367//7112 8366//7111 +f 9323//8067 9322//8066 8366//7111 8363//7108 +f 9325//8069 8373//7118 8377//7122 8530//7274 +f 9323//8067 9325//8069 8530//7274 8529//7273 +f 9325//8069 9323//8067 8363//7108 8361//7106 +f 8373//7118 9325//8069 8361//7106 8360//7105 +f 9326//8070 9327//8071 7580//6325 7579//6324 +f 7560//6305 9326//8070 7579//6324 7561//6306 +f 9326//8070 7560//6305 7498//6243 9328//8072 +f 9327//8071 9326//8070 9328//8072 9329//8073 +f 9330//8074 9331//8075 9332//8076 9333//8077 +f 9334//8078 9330//8074 9333//8077 7504//6249 +f 9330//8074 9334//8078 9335//8079 9336//8080 +f 9331//8075 9330//8074 9336//8080 9337//8081 +f 9338//8082 9339//8083 9340//8084 9341//8085 +f 9334//8078 9338//8082 9341//8085 9335//8079 +f 9338//8082 9334//8078 7504//6249 7503//6248 +f 9339//8083 9338//8082 7503//6248 7502//6247 +f 9342//8086 9343//8087 9344//8088 9345//8089 +f 9339//8083 9342//8086 9345//8089 9340//8084 +f 9342//8086 9339//8083 7502//6247 7544//6289 +f 9343//8087 9342//8086 7544//6289 7543//6288 +f 9346//8090 9347//8091 9348//8092 9349//8093 +f 9343//8087 9346//8090 9349//8093 9344//8088 +f 9346//8090 9343//8087 7543//6288 7550//6295 +f 9347//8091 9346//8090 7550//6295 7549//6294 +f 9350//8094 9351//8095 9352//8096 9353//8097 +f 9347//8091 9350//8094 9353//8097 9348//8092 +f 9350//8094 9347//8091 7549//6294 7566//6311 +f 9351//8095 9350//8094 7566//6311 7565//6310 +f 9354//8098 9355//8099 9356//8100 9357//8101 +f 9351//8095 9354//8098 9357//8101 9352//8096 +f 9354//8098 9351//8095 7565//6310 7620//6365 +f 9355//8099 9354//8098 7620//6365 7619//6364 +f 9358//8102 9359//8103 9356//8100 9355//8099 +f 7632//6377 9358//8102 9355//8099 7619//6364 +f 9358//8102 7632//6377 7636//6381 9360//8104 +f 9359//8103 9358//8102 9360//8104 9361//8105 +f 9362//8106 9363//8107 9361//8105 9360//8104 +f 7794//6539 9362//8106 9360//8104 7636//6381 +f 9362//8106 7794//6539 7798//6543 9364//8108 +f 9363//8107 9362//8106 9364//8108 9365//8109 +f 9366//8110 9367//8111 9365//8109 9364//8108 +f 7800//6545 9366//8110 9364//8108 7798//6543 +f 9366//8110 7800//6545 7804//6549 9368//8112 +f 9367//8111 9366//8110 9368//8112 9369//8113 +f 9370//8114 9371//8115 9369//8113 9368//8112 +f 7810//6555 9370//8114 9368//8112 7804//6549 +f 9370//8114 7810//6555 7814//6559 9372//8116 +f 9371//8115 9370//8114 9372//8116 9373//8117 +f 9374//8118 9375//8119 9373//8117 9372//8116 +f 7816//6561 9374//8118 9372//8116 7814//6559 +f 9374//8118 7816//6561 7820//6565 9376//8120 +f 9375//8119 9374//8118 9376//8120 9377//8121 +f 9378//8122 9379//8123 9377//8121 9376//8120 +f 7844//6589 9378//8122 9376//8120 7820//6565 +f 9378//8122 7844//6589 7848//6593 9380//8124 +f 9379//8123 9378//8122 9380//8124 9381//8125 +f 9382//8126 9383//8127 9381//8125 9380//8124 +f 7850//6595 9382//8126 9380//8124 7848//6593 +f 9382//8126 7850//6595 7854//6599 9384//8128 +f 9383//8127 9382//8126 9384//8128 9385//8129 +f 9386//8130 9387//8131 9385//8129 9384//8128 +f 7860//6605 9386//8130 9384//8128 7854//6599 +f 9386//8130 7860//6605 7864//6609 9388//8132 +f 9387//8131 9386//8130 9388//8132 9389//8133 +f 9390//8134 9391//8135 9389//8133 9388//8132 +f 7870//6615 9390//8134 9388//8132 7864//6609 +f 9390//8134 7870//6615 7874//6619 9392//8136 +f 9391//8135 9390//8134 9392//8136 9393//8137 +f 9394//8138 9395//8139 9396//8140 9397//8141 +f 9392//8136 9394//8138 9397//8141 9393//8137 +f 9394//8138 9392//8136 7874//6619 7882//6627 +f 9395//8139 9394//8138 7882//6627 7881//6626 +f 9398//8142 9399//8143 9400//8144 9401//8145 +f 9395//8139 9398//8142 9401//8145 9396//8140 +f 9398//8142 9395//8139 7881//6626 7896//6641 +f 9399//8143 9398//8142 7896//6641 7895//6640 +f 9402//8146 9403//8147 9404//8148 9405//8149 +f 9399//8143 9402//8146 9405//8149 9400//8144 +f 9402//8146 9399//8143 7895//6640 7900//6645 +f 9403//8147 9402//8146 7900//6645 7519//6264 +f 9406//8150 9407//8151 9408//8152 9409//8153 +f 9403//8147 9406//8150 9409//8153 9404//8148 +f 9406//8150 9403//8147 7519//6264 7517//6262 +f 9407//8151 9406//8150 7517//6262 7516//6261 +f 9410//8154 9411//8155 9412//8156 9413//8157 +f 9407//8151 9410//8154 9413//8157 9408//8152 +f 9410//8154 9407//8151 7516//6261 9414//8158 +f 9411//8155 9410//8154 9414//8158 9415//8159 +f 9416//8160 9417//8161 9418//8162 9419//8163 +f 9411//8155 9416//8160 9419//8163 9412//8156 +f 9416//8160 9411//8155 9415//8159 9420//8164 +f 9417//8161 9416//8160 9420//8164 9421//8165 +f 9422//8166 9423//8167 8021//6766 8028//6773 +f 9424//8168 9422//8166 8028//6773 8027//6772 +f 9422//8166 9424//8168 9421//8165 9420//8164 +f 9423//8167 9422//8166 9420//8164 9415//8159 +f 9425//8169 7515//6260 7522//6267 8022//6767 +f 9423//8167 9425//8169 8022//6767 8021//6766 +f 9425//8169 9423//8167 9415//8159 9414//8158 +f 7515//6260 9425//8169 9414//8158 7516//6261 +f 9426//8170 9226//7970 7724//6469 7723//6468 +f 9427//8171 9426//8170 7723//6468 7722//6467 +f 9426//8170 9427//8171 9232//7976 9231//7975 +f 9226//7970 9426//8170 9231//7975 8806//7550 +f 9428//8172 7497//6242 7504//6249 9333//8077 +f 9429//8173 9428//8172 9333//8077 9332//8076 +f 9428//8172 9429//8173 9329//8073 9328//8072 +f 7497//6242 9428//8172 9328//8072 7498//6243 +f 9430//8174 7904//6649 7898//6643 7897//6642 +f 7890//6635 9430//8174 7897//6642 7884//6629 +f 9430//8174 7890//6635 7892//6637 7920//6665 +f 7904//6649 9430//8174 7920//6665 7905//6650 +f 9431//8175 9432//8176 9433//8177 9434//8178 +f 9435//8179 9431//8175 9434//8178 9436//8180 +f 9431//8175 9435//8179 9437//8181 9438//8182 +f 9432//8176 9431//8175 9438//8182 9439//8183 +f 9440//8184 9441//8185 9442//8186 9443//8187 +f 9444//8188 9440//8184 9443//8187 9445//8189 +f 9440//8184 9444//8188 9446//8190 9447//8191 +f 9441//8185 9440//8184 9447//8191 9448//8192 +f 9449//8193 9450//8194 9451//8195 9452//8196 +f 9453//8197 9449//8193 9452//8196 9454//8198 +f 9449//8193 9453//8197 9455//8199 9456//8200 +f 9450//8194 9449//8193 9456//8200 9457//8201 +f 9458//8202 9459//8203 9460//8204 9461//8205 +f 9462//8206 9458//8202 9461//8205 9463//8207 +f 9458//8202 9462//8206 9464//8208 9465//8209 +f 9459//8203 9458//8202 9465//8209 9466//8210 +f 9467//8211 9468//8212 9469//8213 9470//8214 +f 9471//8215 9467//8211 9470//8214 9472//8216 +f 9467//8211 9471//8215 9473//8217 9474//8218 +f 9468//8212 9467//8211 9474//8218 9475//8219 +f 9476//8220 9477//8221 9478//8222 9479//8223 +f 9435//8179 9476//8220 9479//8223 9437//8181 +f 9476//8220 9435//8179 9436//8180 9480//8224 +f 9477//8221 9476//8220 9480//8224 9481//8225 +f 9482//8226 9483//8227 9484//8228 9485//8229 +f 9477//8221 9482//8226 9485//8229 9478//8222 +f 9482//8226 9477//8221 9481//8225 9486//8230 +f 9483//8227 9482//8226 9486//8230 9487//8231 +f 9488//8232 9489//8233 9481//8225 9480//8224 +f 9490//8234 9488//8232 9480//8224 9436//8180 +f 9488//8232 9490//8234 9491//8235 9492//8236 +f 9489//8233 9488//8232 9492//8236 9493//8237 +f 9494//8238 9495//8239 9496//8240 9497//8241 +f 9490//8234 9494//8238 9497//8241 9491//8235 +f 9494//8238 9490//8234 9436//8180 9434//8178 +f 9495//8239 9494//8238 9434//8178 9433//8177 +f 9498//8242 9499//8243 9500//8244 9501//8245 +f 9483//8227 9498//8242 9501//8245 9484//8228 +f 9498//8242 9483//8227 9487//8231 9502//8246 +f 9499//8243 9498//8242 9502//8246 9503//8247 +f 9504//8248 9505//8249 9491//8235 9497//8241 +f 9506//8250 9504//8248 9497//8241 9496//8240 +f 9504//8248 9506//8250 9507//8251 9508//8252 +f 9505//8249 9504//8248 9508//8252 9509//8253 +f 9510//8254 9511//8255 9512//8256 9513//8257 +f 9506//8250 9510//8254 9513//8257 9507//8251 +f 9510//8254 9506//8250 9496//8240 9514//8258 +f 9511//8255 9510//8254 9514//8258 9515//8259 +f 9516//8260 9517//8261 9507//8251 9513//8257 +f 9518//8262 9516//8260 9513//8257 9512//8256 +f 9516//8260 9518//8262 9519//8263 9520//8264 +f 9517//8261 9516//8260 9520//8264 9521//8265 +f 9522//8266 9523//8267 9521//8265 9520//8264 +f 9524//8268 9522//8266 9520//8264 9519//8263 +f 9522//8266 9524//8268 9525//8269 9526//8270 +f 9523//8267 9522//8266 9526//8270 9527//8271 +f 9528//8272 9529//8273 9509//8253 9508//8252 +f 9517//8261 9528//8272 9508//8252 9507//8251 +f 9528//8272 9517//8261 9521//8265 9530//8274 +f 9529//8273 9528//8272 9530//8274 9531//8275 +f 9532//8276 9533//8277 9493//8237 9492//8236 +f 9505//8249 9532//8276 9492//8236 9491//8235 +f 9532//8276 9505//8249 9509//8253 9534//8278 +f 9533//8277 9532//8276 9534//8278 9535//8279 +f 9536//8280 9537//8281 9487//8231 9486//8230 +f 9489//8233 9536//8280 9486//8230 9481//8225 +f 9536//8280 9489//8233 9493//8237 9538//8282 +f 9537//8281 9536//8280 9538//8282 9539//8283 +f 9540//8284 9541//8285 9503//8247 9502//8246 +f 9537//8281 9540//8284 9502//8246 9487//8231 +f 9540//8284 9537//8281 9539//8283 9542//8286 +f 9541//8285 9540//8284 9542//8286 9543//8287 +f 9544//8288 9545//8289 9539//8283 9538//8282 +f 9533//8277 9544//8288 9538//8282 9493//8237 +f 9544//8288 9533//8277 9535//8279 9546//8290 +f 9545//8289 9544//8288 9546//8290 9547//8291 +f 9548//8292 9549//8293 9535//8279 9534//8278 +f 9529//8273 9548//8292 9534//8278 9509//8253 +f 9548//8292 9529//8273 9531//8275 9550//8294 +f 9549//8293 9548//8292 9550//8294 9551//8295 +f 9552//8296 9553//8297 9554//8298 9555//8299 +f 9499//8243 9552//8296 9555//8299 9500//8244 +f 9552//8296 9499//8243 9503//8247 9556//8300 +f 9553//8297 9552//8296 9556//8300 9557//8301 +f 9558//8302 9559//8303 9557//8301 9556//8300 +f 9541//8285 9558//8302 9556//8300 9503//8247 +f 9558//8302 9541//8285 9543//8287 9560//8304 +f 9559//8303 9558//8302 9560//8304 9561//8305 +f 9562//8306 9563//8307 9543//8287 9542//8286 +f 9545//8289 9562//8306 9542//8286 9539//8283 +f 9562//8306 9545//8289 9547//8291 9564//8308 +f 9563//8307 9562//8306 9564//8308 9565//8309 +f 9566//8310 9567//8311 9554//8298 9553//8297 +f 9568//8312 9566//8310 9553//8297 9557//8301 +f 9566//8310 9568//8312 9569//8313 9570//8314 +f 9567//8311 9566//8310 9570//8314 9571//8315 +f 9572//8316 9573//8317 9547//8291 9546//8290 +f 9549//8293 9572//8316 9546//8290 9535//8279 +f 9572//8316 9549//8293 9551//8295 9574//8318 +f 9573//8317 9572//8316 9574//8318 9575//8319 +f 9576//8320 9577//8321 9531//8275 9530//8274 +f 9523//8267 9576//8320 9530//8274 9521//8265 +f 9576//8320 9523//8267 9527//8271 9578//8322 +f 9577//8321 9576//8320 9578//8322 9579//8323 +f 9580//8324 9581//8325 9582//8326 9583//8327 +f 9584//8328 9580//8324 9583//8327 9585//8329 +f 9580//8324 9584//8328 9527//8271 9526//8270 +f 9581//8325 9580//8324 9526//8270 9525//8269 +f 9586//8330 9587//8331 9585//8329 9583//8327 +f 9588//8332 9586//8330 9583//8327 9582//8326 +f 9586//8330 9588//8332 9589//8333 9590//8334 +f 9587//8331 9586//8330 9590//8334 9591//8335 +f 9592//8336 9593//8337 9579//8323 9578//8322 +f 9584//8328 9592//8336 9578//8322 9527//8271 +f 9592//8336 9584//8328 9585//8329 9594//8338 +f 9593//8337 9592//8336 9594//8338 9595//8339 +f 9596//8340 9597//8341 9551//8295 9550//8294 +f 9577//8321 9596//8340 9550//8294 9531//8275 +f 9596//8340 9577//8321 9579//8323 9598//8342 +f 9597//8341 9596//8340 9598//8342 9599//8343 +f 9600//8344 9601//8345 9565//8309 9564//8308 +f 9573//8317 9600//8344 9564//8308 9547//8291 +f 9600//8344 9573//8317 9575//8319 9602//8346 +f 9601//8345 9600//8344 9602//8346 9603//8347 +f 9604//8348 9605//8349 9575//8319 9574//8318 +f 9597//8341 9604//8348 9574//8318 9551//8295 +f 9604//8348 9597//8341 9599//8343 9606//8350 +f 9605//8349 9604//8348 9606//8350 9607//8351 +f 9608//8352 9609//8353 9599//8343 9598//8342 +f 9593//8337 9608//8352 9598//8342 9579//8323 +f 9608//8352 9593//8337 9595//8339 9610//8354 +f 9609//8353 9608//8352 9610//8354 9611//8355 +f 9612//8356 9613//8357 9595//8339 9594//8338 +f 9587//8331 9612//8356 9594//8338 9585//8329 +f 9612//8356 9587//8331 9591//8335 9614//8358 +f 9613//8357 9612//8356 9614//8358 9615//8359 +f 9616//8360 9617//8361 9607//8351 9606//8350 +f 9609//8353 9616//8360 9606//8350 9599//8343 +f 9616//8360 9609//8353 9611//8355 9618//8362 +f 9617//8361 9616//8360 9618//8362 9619//8363 +f 9620//8364 9621//8365 9611//8355 9610//8354 +f 9613//8357 9620//8364 9610//8354 9595//8339 +f 9620//8364 9613//8357 9615//8359 9622//8366 +f 9621//8365 9620//8364 9622//8366 9623//8367 +f 9624//8368 9625//8369 9615//8359 9614//8358 +f 9626//8370 9624//8368 9614//8358 9591//8335 +f 9624//8368 9626//8370 9627//8371 9628//8372 +f 9625//8369 9624//8368 9628//8372 9629//8373 +f 9630//8374 9631//8375 9632//8376 9633//8377 +f 9626//8370 9630//8374 9633//8377 9627//8371 +f 9630//8374 9626//8370 9591//8335 9590//8334 +f 9631//8375 9630//8374 9590//8334 9589//8333 +f 9634//8378 9635//8379 9627//8371 9633//8377 +f 9636//8380 9634//8378 9633//8377 9632//8376 +f 9634//8378 9636//8380 9637//8381 9638//8382 +f 9635//8379 9634//8378 9638//8382 9639//8383 +f 9640//8384 9641//8385 9639//8383 9638//8382 +f 9642//8386 9640//8384 9638//8382 9637//8381 +f 9640//8384 9642//8386 9643//8387 9644//8388 +f 9641//8385 9640//8384 9644//8388 9645//8389 +f 9646//8390 9647//8391 9629//8373 9628//8372 +f 9635//8379 9646//8390 9628//8372 9627//8371 +f 9646//8390 9635//8379 9639//8383 9648//8392 +f 9647//8391 9646//8390 9648//8392 9649//8393 +f 9650//8394 9651//8395 9623//8367 9622//8366 +f 9625//8369 9650//8394 9622//8366 9615//8359 +f 9650//8394 9625//8369 9629//8373 9652//8396 +f 9651//8395 9650//8394 9652//8396 9653//8397 +f 9654//8398 9655//8399 9645//8389 9644//8388 +f 9656//8400 9654//8398 9644//8388 9643//8387 +f 9654//8398 9656//8400 9657//8401 9658//8402 +f 9655//8399 9654//8398 9658//8402 9659//8403 +f 9660//8404 9661//8405 9649//8393 9648//8392 +f 9641//8385 9660//8404 9648//8392 9639//8383 +f 9660//8404 9641//8385 9645//8389 9662//8406 +f 9661//8405 9660//8404 9662//8406 9663//8407 +f 9664//8408 9665//8409 9653//8397 9652//8396 +f 9647//8391 9664//8408 9652//8396 9629//8373 +f 9664//8408 9647//8391 9649//8393 9666//8410 +f 9665//8409 9664//8408 9666//8410 9667//8411 +f 9668//8412 9669//8413 9619//8363 9618//8362 +f 9621//8365 9668//8412 9618//8362 9611//8355 +f 9668//8412 9621//8365 9623//8367 9670//8414 +f 9669//8413 9668//8412 9670//8414 9671//8415 +f 9672//8416 9673//8417 9671//8415 9670//8414 +f 9651//8395 9672//8416 9670//8414 9623//8367 +f 9672//8416 9651//8395 9653//8397 9674//8418 +f 9673//8417 9672//8416 9674//8418 9675//8419 +f 9676//8420 9677//8421 9675//8419 9674//8418 +f 9665//8409 9676//8420 9674//8418 9653//8397 +f 9676//8420 9665//8409 9667//8411 9678//8422 +f 9677//8421 9676//8420 9678//8422 9679//8423 +f 9680//8424 9681//8425 9682//8426 9683//8427 +f 9669//8413 9680//8424 9683//8427 9619//8363 +f 9680//8424 9669//8413 9671//8415 9684//8428 +f 9681//8425 9680//8424 9684//8428 9685//8429 +f 9686//8430 9687//8431 9685//8429 9684//8428 +f 9673//8417 9686//8430 9684//8428 9671//8415 +f 9686//8430 9673//8417 9675//8419 9688//8432 +f 9687//8431 9686//8430 9688//8432 9689//8433 +f 9690//8434 9691//8435 9692//8436 9693//8437 +f 9617//8361 9690//8434 9693//8437 9607//8351 +f 9690//8434 9617//8361 9619//8363 9683//8427 +f 9691//8435 9690//8434 9683//8427 9682//8426 +f 9694//8438 9605//8349 9607//8351 9693//8437 +f 9695//8439 9694//8438 9693//8437 9692//8436 +f 9694//8438 9695//8439 9603//8347 9602//8346 +f 9605//8349 9694//8438 9602//8346 9575//8319 +f 9696//8440 9697//8441 9698//8442 9699//8443 +f 9691//8435 9696//8440 9699//8443 9692//8436 +f 9696//8440 9691//8435 9682//8426 9700//8444 +f 9697//8441 9696//8440 9700//8444 9701//8445 +f 9702//8446 9703//8447 9704//8448 9705//8449 +f 9695//8439 9702//8446 9705//8449 9603//8347 +f 9702//8446 9695//8439 9692//8436 9699//8443 +f 9703//8447 9702//8446 9699//8443 9698//8442 +f 9706//8450 9707//8451 9708//8452 9709//8453 +f 9601//8345 9706//8450 9709//8453 9565//8309 +f 9706//8450 9601//8345 9603//8347 9705//8449 +f 9707//8451 9706//8450 9705//8449 9704//8448 +f 9710//8454 9563//8307 9565//8309 9709//8453 +f 9711//8455 9710//8454 9709//8453 9708//8452 +f 9710//8454 9711//8455 9561//8305 9560//8304 +f 9563//8307 9710//8454 9560//8304 9543//8287 +f 9712//8456 9713//8457 9708//8452 9707//8451 +f 9714//8458 9712//8456 9707//8451 9704//8448 +f 9712//8456 9714//8458 9715//8459 9716//8460 +f 9713//8457 9712//8456 9716//8460 9717//8461 +f 9718//8462 9568//8312 9557//8301 9559//8303 +f 9719//8463 9718//8462 9559//8303 9561//8305 +f 9718//8462 9719//8463 9720//8464 9721//8465 +f 9568//8312 9718//8462 9721//8465 9569//8313 +f 9722//8466 9719//8463 9561//8305 9711//8455 +f 9713//8457 9722//8466 9711//8455 9708//8452 +f 9722//8466 9713//8457 9717//8461 9723//8467 +f 9719//8463 9722//8466 9723//8467 9720//8464 +f 9724//8468 9725//8469 9726//8470 9727//8471 +f 9714//8458 9724//8468 9727//8471 9715//8459 +f 9724//8468 9714//8458 9704//8448 9703//8447 +f 9725//8469 9724//8468 9703//8447 9698//8442 +f 9728//8472 9729//8473 9571//8315 9570//8314 +f 9730//8474 9728//8472 9570//8314 9569//8313 +f 9728//8472 9730//8474 9731//8475 9732//8476 +f 9729//8473 9728//8472 9732//8476 9733//8477 +f 9734//8478 9735//8479 9733//8477 9732//8476 +f 9736//8480 9734//8478 9732//8476 9731//8475 +f 9734//8478 9736//8480 9737//8481 9738//8482 +f 9735//8479 9734//8478 9738//8482 9739//8483 +f 9740//8484 9741//8485 9742//8486 9743//8487 +f 9730//8474 9740//8484 9743//8487 9731//8475 +f 9740//8484 9730//8474 9569//8313 9721//8465 +f 9741//8485 9740//8484 9721//8465 9720//8464 +f 9744//8488 9745//8489 9739//8483 9738//8482 +f 9746//8490 9744//8488 9738//8482 9737//8481 +f 9744//8488 9746//8490 9747//8491 9748//8492 +f 9745//8489 9744//8488 9748//8492 9749//8493 +f 9750//8494 9751//8495 9749//8493 9748//8492 +f 9752//8496 9750//8494 9748//8492 9747//8491 +f 9750//8494 9752//8496 9753//8497 9754//8498 +f 9751//8495 9750//8494 9754//8498 9755//8499 +f 9756//8500 9757//8501 9758//8502 9759//8503 +f 9736//8480 9756//8500 9759//8503 9737//8481 +f 9756//8500 9736//8480 9731//8475 9743//8487 +f 9757//8501 9756//8500 9743//8487 9742//8486 +f 9760//8504 9761//8505 9762//8506 9763//8507 +f 9746//8490 9760//8504 9763//8507 9747//8491 +f 9760//8504 9746//8490 9737//8481 9759//8503 +f 9761//8505 9760//8504 9759//8503 9758//8502 +f 9764//8508 9752//8496 9747//8491 9763//8507 +f 9765//8509 9764//8508 9763//8507 9762//8506 +f 9764//8508 9765//8509 9766//8510 9767//8511 +f 9752//8496 9764//8508 9767//8511 9753//8497 +f 9768//8512 9769//8513 9770//8514 9771//8515 +f 9761//8505 9768//8512 9771//8515 9762//8506 +f 9768//8512 9761//8505 9758//8502 9772//8516 +f 9769//8513 9768//8512 9772//8516 9773//8517 +f 9774//8518 9765//8509 9762//8506 9771//8515 +f 9775//8519 9774//8518 9771//8515 9770//8514 +f 9774//8518 9775//8519 9776//8520 9777//8521 +f 9765//8509 9774//8518 9777//8521 9766//8510 +f 9778//8522 9779//8523 9755//8499 9754//8498 +f 9780//8524 9778//8522 9754//8498 9753//8497 +f 9778//8522 9780//8524 9781//8525 9782//8526 +f 9779//8523 9778//8522 9782//8526 9783//8527 +f 9784//8528 9785//8529 9783//8527 9782//8526 +f 9786//8530 9784//8528 9782//8526 9781//8525 +f 9784//8528 9786//8530 9787//8531 9788//8532 +f 9785//8529 9784//8528 9788//8532 9789//8533 +f 9790//8534 9780//8524 9753//8497 9767//8511 +f 9791//8535 9790//8534 9767//8511 9766//8510 +f 9790//8534 9791//8535 9792//8536 9793//8537 +f 9780//8524 9790//8534 9793//8537 9781//8525 +f 9794//8538 9795//8539 9789//8533 9788//8532 +f 9796//8540 9794//8538 9788//8532 9787//8531 +f 9794//8538 9796//8540 9797//8541 9798//8542 +f 9795//8539 9794//8538 9798//8542 9799//8543 +f 9800//8544 9786//8530 9781//8525 9793//8537 +f 9801//8545 9800//8544 9793//8537 9792//8536 +f 9800//8544 9801//8545 9802//8546 9803//8547 +f 9786//8530 9800//8544 9803//8547 9787//8531 +f 9804//8548 9805//8549 9799//8543 9798//8542 +f 9806//8550 9804//8548 9798//8542 9797//8541 +f 9804//8548 9806//8550 9807//8551 9808//8552 +f 9805//8549 9804//8548 9808//8552 9809//8553 +f 9810//8554 9796//8540 9787//8531 9803//8547 +f 9811//8555 9810//8554 9803//8547 9802//8546 +f 9810//8554 9811//8555 9812//8556 9813//8557 +f 9796//8540 9810//8554 9813//8557 9797//8541 +f 9814//8558 9815//8559 9816//8560 9817//8561 +f 9808//8552 9814//8558 9817//8561 9809//8553 +f 9814//8558 9808//8552 9807//8551 9818//8562 +f 9815//8559 9814//8558 9818//8562 9819//8563 +f 9820//8564 9821//8565 9822//8566 9823//8567 +f 9806//8550 9820//8564 9823//8567 9807//8551 +f 9820//8564 9806//8550 9797//8541 9813//8557 +f 9821//8565 9820//8564 9813//8557 9812//8556 +f 9824//8568 9825//8569 9819//8563 9818//8562 +f 9823//8567 9824//8568 9818//8562 9807//8551 +f 9824//8568 9823//8567 9822//8566 9826//8570 +f 9825//8569 9824//8568 9826//8570 9827//8571 +f 9828//8572 9829//8573 9830//8574 9831//8575 +f 9815//8559 9828//8572 9831//8575 9816//8560 +f 9828//8572 9815//8559 9819//8563 9832//8576 +f 9829//8573 9828//8572 9832//8576 9833//8577 +f 9834//8578 9453//8197 9454//8198 9835//8579 +f 9829//8573 9834//8578 9835//8579 9830//8574 +f 9834//8578 9829//8573 9833//8577 9836//8580 +f 9453//8197 9834//8578 9836//8580 9455//8199 +f 9837//8581 9838//8582 9455//8199 9836//8580 +f 9839//8583 9837//8581 9836//8580 9833//8577 +f 9837//8581 9839//8583 9840//8584 9841//8585 +f 9838//8582 9837//8581 9841//8585 9842//8586 +f 9843//8587 9844//8588 9827//8571 9826//8570 +f 9845//8589 9843//8587 9826//8570 9822//8566 +f 9843//8587 9845//8589 9846//8590 9847//8591 +f 9844//8588 9843//8587 9847//8591 9848//8592 +f 9849//8593 9850//8594 9846//8590 9845//8589 +f 9821//8565 9849//8593 9845//8589 9822//8566 +f 9849//8593 9821//8565 9812//8556 9851//8595 +f 9850//8594 9849//8593 9851//8595 9852//8596 +f 9853//8597 9854//8598 9840//8584 9855//8599 +f 9844//8588 9853//8597 9855//8599 9827//8571 +f 9853//8597 9844//8588 9848//8592 9856//8600 +f 9854//8598 9853//8597 9856//8600 9857//8601 +f 9858//8602 9859//8603 9852//8596 9851//8595 +f 9811//8555 9858//8602 9851//8595 9812//8556 +f 9858//8602 9811//8555 9802//8546 9860//8604 +f 9859//8603 9858//8602 9860//8604 9861//8605 +f 9862//8606 9863//8607 9848//8592 9847//8591 +f 9864//8608 9862//8606 9847//8591 9846//8590 +f 9862//8606 9864//8608 9865//8609 9866//8610 +f 9863//8607 9862//8606 9866//8610 9867//8611 +f 9868//8612 9869//8613 9865//8609 9864//8608 +f 9850//8594 9868//8612 9864//8608 9846//8590 +f 9868//8612 9850//8594 9852//8596 9870//8614 +f 9869//8613 9868//8612 9870//8614 9871//8615 +f 9872//8616 9873//8617 9861//8605 9860//8604 +f 9801//8545 9872//8616 9860//8604 9802//8546 +f 9872//8616 9801//8545 9792//8536 9874//8618 +f 9873//8617 9872//8616 9874//8618 9875//8619 +f 9876//8620 9877//8621 9871//8615 9870//8614 +f 9859//8603 9876//8620 9870//8614 9852//8596 +f 9876//8620 9859//8603 9861//8605 9878//8622 +f 9877//8621 9876//8620 9878//8622 9879//8623 +f 9880//8624 9881//8625 9875//8619 9874//8618 +f 9791//8535 9880//8624 9874//8618 9792//8536 +f 9880//8624 9791//8535 9766//8510 9777//8521 +f 9881//8625 9880//8624 9777//8521 9776//8520 +f 9882//8626 9883//8627 9879//8623 9878//8622 +f 9873//8617 9882//8626 9878//8622 9861//8605 +f 9882//8626 9873//8617 9875//8619 9884//8628 +f 9883//8627 9882//8626 9884//8628 9885//8629 +f 9886//8630 9887//8631 9885//8629 9884//8628 +f 9881//8625 9886//8630 9884//8628 9875//8619 +f 9886//8630 9881//8625 9776//8520 9888//8632 +f 9887//8631 9886//8630 9888//8632 9889//8633 +f 9890//8634 9891//8635 9889//8633 9888//8632 +f 9775//8519 9890//8634 9888//8632 9776//8520 +f 9890//8634 9775//8519 9770//8514 9892//8636 +f 9891//8635 9890//8634 9892//8636 9893//8637 +f 9894//8638 9895//8639 9896//8640 9897//8641 +f 9883//8627 9894//8638 9897//8641 9879//8623 +f 9894//8638 9883//8627 9885//8629 9898//8642 +f 9895//8639 9894//8638 9898//8642 9899//8643 +f 9900//8644 9901//8645 9899//8643 9898//8642 +f 9887//8631 9900//8644 9898//8642 9885//8629 +f 9900//8644 9887//8631 9889//8633 9902//8646 +f 9901//8645 9900//8644 9902//8646 9903//8647 +f 9904//8648 9905//8649 9906//8650 9907//8651 +f 9877//8621 9904//8648 9907//8651 9871//8615 +f 9904//8648 9877//8621 9879//8623 9897//8641 +f 9905//8649 9904//8648 9897//8641 9896//8640 +f 9908//8652 9869//8613 9871//8615 9907//8651 +f 9909//8653 9908//8652 9907//8651 9906//8650 +f 9908//8652 9909//8653 9910//8654 9911//8655 +f 9869//8613 9908//8652 9911//8655 9865//8609 +f 9912//8656 9913//8657 9914//8658 9915//8659 +f 9905//8649 9912//8656 9915//8659 9906//8650 +f 9912//8656 9905//8649 9896//8640 9916//8660 +f 9913//8657 9912//8656 9916//8660 9917//8661 +f 9918//8662 9919//8663 9867//8611 9866//8610 +f 9911//8655 9918//8662 9866//8610 9865//8609 +f 9918//8662 9911//8655 9910//8654 9920//8664 +f 9919//8663 9918//8662 9920//8664 9921//8665 +f 9922//8666 9923//8667 9924//8668 9925//8669 +f 9909//8653 9922//8666 9925//8669 9910//8654 +f 9922//8666 9909//8653 9906//8650 9915//8659 +f 9923//8667 9922//8666 9915//8659 9914//8658 +f 9926//8670 9927//8671 9921//8665 9920//8664 +f 9925//8669 9926//8670 9920//8664 9910//8654 +f 9926//8670 9925//8669 9924//8668 9928//8672 +f 9927//8671 9926//8670 9928//8672 9929//8673 +f 9930//8674 9931//8675 9857//8601 9856//8600 +f 9863//8607 9930//8674 9856//8600 9848//8592 +f 9930//8674 9863//8607 9867//8611 9932//8676 +f 9931//8675 9930//8674 9932//8676 9933//8677 +f 9934//8678 9935//8679 9933//8677 9932//8676 +f 9919//8663 9934//8678 9932//8676 9867//8611 +f 9934//8678 9919//8663 9921//8665 9936//8680 +f 9935//8679 9934//8678 9936//8680 9937//8681 +f 9938//8682 9939//8683 9842//8586 9841//8585 +f 9854//8598 9938//8682 9841//8585 9840//8584 +f 9938//8682 9854//8598 9857//8601 9940//8684 +f 9939//8683 9938//8682 9940//8684 9941//8685 +f 9942//8686 9943//8687 9457//8201 9456//8200 +f 9838//8582 9942//8686 9456//8200 9455//8199 +f 9942//8686 9838//8582 9842//8586 9944//8688 +f 9943//8687 9942//8686 9944//8688 9945//8689 +f 9946//8690 9947//8691 9941//8685 9940//8684 +f 9931//8675 9946//8690 9940//8684 9857//8601 +f 9946//8690 9931//8675 9933//8677 9948//8692 +f 9947//8691 9946//8690 9948//8692 9949//8693 +f 9950//8694 9951//8695 9945//8689 9944//8688 +f 9939//8683 9950//8694 9944//8688 9842//8586 +f 9950//8694 9939//8683 9941//8685 9952//8696 +f 9951//8695 9950//8694 9952//8696 9953//8697 +f 9954//8698 9955//8699 9956//8700 9957//8701 +f 9943//8687 9954//8698 9957//8701 9457//8201 +f 9954//8698 9943//8687 9945//8689 9958//8702 +f 9955//8699 9954//8698 9958//8702 9959//8703 +f 9960//8704 9961//8705 9962//8706 9963//8707 +f 9955//8699 9960//8704 9963//8707 9956//8700 +f 9960//8704 9955//8699 9959//8703 9964//8708 +f 9961//8705 9960//8704 9964//8708 9965//8709 +f 9966//8710 9967//8711 9959//8703 9958//8702 +f 9951//8695 9966//8710 9958//8702 9945//8689 +f 9966//8710 9951//8695 9953//8697 9968//8712 +f 9967//8711 9966//8710 9968//8712 9969//8713 +f 9970//8714 9971//8715 9953//8697 9952//8696 +f 9947//8691 9970//8714 9952//8696 9941//8685 +f 9970//8714 9947//8691 9949//8693 9972//8716 +f 9971//8715 9970//8714 9972//8716 9973//8717 +f 9974//8718 9975//8719 9965//8709 9964//8708 +f 9967//8711 9974//8718 9964//8708 9959//8703 +f 9974//8718 9967//8711 9969//8713 9976//8720 +f 9975//8719 9974//8718 9976//8720 9977//8721 +f 9978//8722 9979//8723 9969//8713 9968//8712 +f 9971//8715 9978//8722 9968//8712 9953//8697 +f 9978//8722 9971//8715 9973//8717 9980//8724 +f 9979//8723 9978//8722 9980//8724 9981//8725 +f 9982//8726 9983//8727 9977//8721 9976//8720 +f 9979//8723 9982//8726 9976//8720 9969//8713 +f 9982//8726 9979//8723 9981//8725 9984//8728 +f 9983//8727 9982//8726 9984//8728 9985//8729 +f 9986//8730 9987//8731 9973//8717 9972//8716 +f 9988//8732 9986//8730 9972//8716 9949//8693 +f 9986//8730 9988//8732 9989//8733 9990//8734 +f 9987//8731 9986//8730 9990//8734 9991//8735 +f 9992//8736 9993//8737 9985//8729 9984//8728 +f 9994//8738 9992//8736 9984//8728 9981//8725 +f 9992//8736 9994//8738 9995//8739 9996//8740 +f 9993//8737 9992//8736 9996//8740 9997//8741 +f 9998//8742 9994//8738 9981//8725 9980//8724 +f 9987//8731 9998//8742 9980//8724 9973//8717 +f 9998//8742 9987//8731 9991//8735 9999//8743 +f 9994//8738 9998//8742 9999//8743 9995//8739 +f 10000//8744 10001//8745 9997//8741 9996//8740 +f 10002//8746 10000//8744 9996//8740 9995//8739 +f 10000//8744 10002//8746 10003//8747 10004//8748 +f 10001//8745 10000//8744 10004//8748 10005//8749 +f 10006//8750 10002//8746 9995//8739 9999//8743 +f 10007//8751 10006//8750 9999//8743 9991//8735 +f 10006//8750 10007//8751 10008//8752 10009//8753 +f 10002//8746 10006//8750 10009//8753 10003//8747 +f 10010//8754 10011//8755 10005//8749 10004//8748 +f 10012//8756 10010//8754 10004//8748 10003//8747 +f 10010//8754 10012//8756 10013//8757 10014//8758 +f 10011//8755 10010//8754 10014//8758 10015//8759 +f 10016//8760 10017//8761 10015//8759 10014//8758 +f 10018//8762 10016//8760 10014//8758 10013//8757 +f 10016//8760 10018//8762 10019//8763 10020//8764 +f 10017//8761 10016//8760 10020//8764 10021//8765 +f 10022//8766 10023//8767 10024//8768 10025//8769 +f 10012//8756 10022//8766 10025//8769 10013//8757 +f 10022//8766 10012//8756 10003//8747 10009//8753 +f 10023//8767 10022//8766 10009//8753 10008//8752 +f 10026//8770 10018//8762 10013//8757 10025//8769 +f 10027//8771 10026//8770 10025//8769 10024//8768 +f 10026//8770 10027//8771 10028//8772 10029//8773 +f 10018//8762 10026//8770 10029//8773 10019//8763 +f 10030//8774 10031//8775 10019//8763 10029//8773 +f 10032//8776 10030//8774 10029//8773 10028//8772 +f 10030//8774 10032//8776 10033//8777 10034//8778 +f 10031//8775 10030//8774 10034//8778 10035//8779 +f 10036//8780 10037//8781 10038//8782 10039//8783 +f 10027//8771 10036//8780 10039//8783 10028//8772 +f 10036//8780 10027//8771 10024//8768 10040//8784 +f 10037//8781 10036//8780 10040//8784 10041//8785 +f 10042//8786 10043//8787 10044//8788 10045//8789 +f 10032//8776 10042//8786 10045//8789 10033//8777 +f 10042//8786 10032//8776 10028//8772 10039//8783 +f 10043//8787 10042//8786 10039//8783 10038//8782 +f 10046//8790 10047//8791 10041//8785 10040//8784 +f 10023//8767 10046//8790 10040//8784 10024//8768 +f 10046//8790 10023//8767 10008//8752 10048//8792 +f 10047//8791 10046//8790 10048//8792 10049//8793 +f 10050//8794 10051//8795 10049//8793 10048//8792 +f 10007//8751 10050//8794 10048//8792 10008//8752 +f 10050//8794 10007//8751 9991//8735 9990//8734 +f 10051//8795 10050//8794 9990//8734 9989//8733 +f 10052//8796 10053//8797 10054//8798 10055//8799 +f 10037//8781 10052//8796 10055//8799 10038//8782 +f 10052//8796 10037//8781 10041//8785 10056//8800 +f 10053//8797 10052//8796 10056//8800 10057//8801 +f 10058//8802 10059//8803 10057//8801 10056//8800 +f 10047//8791 10058//8802 10056//8800 10041//8785 +f 10058//8802 10047//8791 10049//8793 10060//8804 +f 10059//8803 10058//8802 10060//8804 10061//8805 +f 10062//8806 10063//8807 10061//8805 10060//8804 +f 10051//8795 10062//8806 10060//8804 10049//8793 +f 10062//8806 10051//8795 9989//8733 10064//8808 +f 10063//8807 10062//8806 10064//8808 9937//8681 +f 10065//8809 9935//8679 9937//8681 10064//8808 +f 9988//8732 10065//8809 10064//8808 9989//8733 +f 10065//8809 9988//8732 9949//8693 9948//8692 +f 9935//8679 10065//8809 9948//8692 9933//8677 +f 10066//8810 10063//8807 9937//8681 9936//8680 +f 9927//8671 10066//8810 9936//8680 9921//8665 +f 10066//8810 9927//8671 9929//8673 10067//8811 +f 10063//8807 10066//8810 10067//8811 10061//8805 +f 10068//8812 10059//8803 10061//8805 10067//8811 +f 10069//8813 10068//8812 10067//8811 9929//8673 +f 10068//8812 10069//8813 10070//8814 10071//8815 +f 10059//8803 10068//8812 10071//8815 10057//8801 +f 10072//8816 10069//8813 9929//8673 9928//8672 +f 10073//8817 10072//8816 9928//8672 9924//8668 +f 10072//8816 10073//8817 10074//8818 10075//8819 +f 10069//8813 10072//8816 10075//8819 10070//8814 +f 10076//8820 10077//8821 10074//8818 10073//8817 +f 9923//8667 10076//8820 10073//8817 9924//8668 +f 10076//8820 9923//8667 9914//8658 10078//8822 +f 10077//8821 10076//8820 10078//8822 10079//8823 +f 10080//8824 10053//8797 10057//8801 10071//8815 +f 10081//8825 10080//8824 10071//8815 10070//8814 +f 10080//8824 10081//8825 10082//8826 10083//8827 +f 10053//8797 10080//8824 10083//8827 10054//8798 +f 10084//8828 10081//8825 10070//8814 10075//8819 +f 10085//8829 10084//8828 10075//8819 10074//8818 +f 10084//8828 10085//8829 10086//8830 10087//8831 +f 10081//8825 10084//8828 10087//8831 10082//8826 +f 10088//8832 10089//8833 10086//8830 10085//8829 +f 10077//8821 10088//8832 10085//8829 10074//8818 +f 10088//8832 10077//8821 10079//8823 10090//8834 +f 10089//8833 10088//8832 10090//8834 10091//8835 +f 10092//8836 10093//8837 10079//8823 10078//8822 +f 9913//8657 10092//8836 10078//8822 9914//8658 +f 10092//8836 9913//8657 9917//8661 10094//8838 +f 10093//8837 10092//8836 10094//8838 10095//8839 +f 10096//8840 10097//8841 9917//8661 9916//8660 +f 9895//8639 10096//8840 9916//8660 9896//8640 +f 10096//8840 9895//8639 9899//8643 10098//8842 +f 10097//8841 10096//8840 10098//8842 10099//8843 +f 10100//8844 10101//8845 10091//8835 10090//8834 +f 10093//8837 10100//8844 10090//8834 10079//8823 +f 10100//8844 10093//8837 10095//8839 10102//8846 +f 10101//8845 10100//8844 10102//8846 10103//8847 +f 10104//8848 10105//8849 10095//8839 10094//8838 +f 10097//8841 10104//8848 10094//8838 9917//8661 +f 10104//8848 10097//8841 10099//8843 10106//8850 +f 10105//8849 10104//8848 10106//8850 10107//8851 +f 10108//8852 10109//8853 10110//8854 10111//8855 +f 10089//8833 10108//8852 10111//8855 10086//8830 +f 10108//8852 10089//8833 10091//8835 10112//8856 +f 10109//8853 10108//8852 10112//8856 10113//8857 +f 10114//8858 10115//8859 10082//8826 10087//8831 +f 10111//8855 10114//8858 10087//8831 10086//8830 +f 10114//8858 10111//8855 10110//8854 10116//8860 +f 10115//8859 10114//8858 10116//8860 10117//8861 +f 10118//8862 10119//8863 10054//8798 10083//8827 +f 10115//8859 10118//8862 10083//8827 10082//8826 +f 10118//8862 10115//8859 10117//8861 10120//8864 +f 10119//8863 10118//8862 10120//8864 10121//8865 +f 10122//8866 10123//8867 10113//8857 10112//8856 +f 10101//8845 10122//8866 10112//8856 10091//8835 +f 10122//8866 10101//8845 10103//8847 10124//8868 +f 10123//8867 10122//8866 10124//8868 10125//8869 +f 10126//8870 10127//8871 10117//8861 10116//8860 +f 10128//8872 10126//8870 10116//8860 10110//8854 +f 10126//8870 10128//8872 10129//8873 10130//8874 +f 10127//8871 10126//8870 10130//8874 10131//8875 +f 10132//8876 10133//8877 10129//8873 10128//8872 +f 10109//8853 10132//8876 10128//8872 10110//8854 +f 10132//8876 10109//8853 10113//8857 10134//8878 +f 10133//8877 10132//8876 10134//8878 10135//8879 +f 10136//8880 10043//8787 10038//8782 10055//8799 +f 10119//8863 10136//8880 10055//8799 10054//8798 +f 10136//8880 10119//8863 10121//8865 10137//8881 +f 10043//8787 10136//8880 10137//8881 10044//8788 +f 10138//8882 10139//8883 10121//8865 10120//8864 +f 10127//8871 10138//8882 10120//8864 10117//8861 +f 10138//8882 10127//8871 10131//8875 10140//8884 +f 10139//8883 10138//8882 10140//8884 10141//8885 +f 10142//8886 10143//8887 10044//8788 10137//8881 +f 10139//8883 10142//8886 10137//8881 10121//8865 +f 10142//8886 10139//8883 10141//8885 10144//8888 +f 10143//8887 10142//8886 10144//8888 10145//8889 +f 10146//8890 10147//8891 10033//8777 10045//8789 +f 10143//8887 10146//8890 10045//8789 10044//8788 +f 10146//8890 10143//8887 10145//8889 10148//8892 +f 10147//8891 10146//8890 10148//8892 10149//8893 +f 10150//8894 10151//8895 10141//8885 10140//8884 +f 10152//8896 10150//8894 10140//8884 10131//8875 +f 10150//8894 10152//8896 10153//8897 10154//8898 +f 10151//8895 10150//8894 10154//8898 10155//8899 +f 10156//8900 10157//8901 10035//8779 10034//8778 +f 10147//8891 10156//8900 10034//8778 10033//8777 +f 10156//8900 10147//8891 10149//8893 10158//8902 +f 10157//8901 10156//8900 10158//8902 10159//8903 +f 10160//8904 10161//8905 10145//8889 10144//8888 +f 10151//8895 10160//8904 10144//8888 10141//8885 +f 10160//8904 10151//8895 10155//8899 10162//8906 +f 10161//8905 10160//8904 10162//8906 10163//8907 +f 10164//8908 10165//8909 10149//8893 10148//8892 +f 10161//8905 10164//8908 10148//8892 10145//8889 +f 10164//8908 10161//8905 10163//8907 10166//8910 +f 10165//8909 10164//8908 10166//8910 10167//8911 +f 10168//8912 10169//8913 10170//8914 10171//8915 +f 10157//8901 10168//8912 10171//8915 10035//8779 +f 10168//8912 10157//8901 10159//8903 10172//8916 +f 10169//8913 10168//8912 10172//8916 10173//8917 +f 10174//8918 10031//8775 10035//8779 10171//8915 +f 10175//8919 10174//8918 10171//8915 10170//8914 +f 10174//8918 10175//8919 10021//8765 10020//8764 +f 10031//8775 10174//8918 10020//8764 10019//8763 +f 10176//8920 10177//8921 10159//8903 10158//8902 +f 10165//8909 10176//8920 10158//8902 10149//8893 +f 10176//8920 10165//8909 10167//8911 10178//8922 +f 10177//8921 10176//8920 10178//8922 10179//8923 +f 10180//8924 10181//8925 10173//8917 10172//8916 +f 10177//8921 10180//8924 10172//8916 10159//8903 +f 10180//8924 10177//8921 10179//8923 10182//8926 +f 10181//8925 10180//8924 10182//8926 10183//8927 +f 10184//8928 10185//8929 10183//8927 10182//8926 +f 10186//8930 10184//8928 10182//8926 10179//8923 +f 10184//8928 10186//8930 10187//8931 10188//8932 +f 10185//8929 10184//8928 10188//8932 10189//8933 +f 10190//8934 10186//8930 10179//8923 10178//8922 +f 10191//8935 10190//8934 10178//8922 10167//8911 +f 10190//8934 10191//8935 10192//8936 10193//8937 +f 10186//8930 10190//8934 10193//8937 10187//8931 +f 10194//8938 10195//8939 10187//8931 10193//8937 +f 10196//8940 10194//8938 10193//8937 10192//8936 +f 10194//8938 10196//8940 10197//8941 10198//8942 +f 10195//8939 10194//8938 10198//8942 10199//8943 +f 10200//8944 10201//8945 10202//8946 10203//8947 +f 10191//8935 10200//8944 10203//8947 10192//8936 +f 10200//8944 10191//8935 10167//8911 10166//8910 +f 10201//8945 10200//8944 10166//8910 10163//8907 +f 10204//8948 10205//8949 10206//8950 10207//8951 +f 10196//8940 10204//8948 10207//8951 10197//8941 +f 10204//8948 10196//8940 10192//8936 10203//8947 +f 10205//8949 10204//8948 10203//8947 10202//8946 +f 10208//8952 10209//8953 10210//8954 10211//8955 +f 10201//8945 10208//8952 10211//8955 10202//8946 +f 10208//8952 10201//8945 10163//8907 10162//8906 +f 10209//8953 10208//8952 10162//8906 10155//8899 +f 10212//8956 10213//8957 10214//8958 10215//8959 +f 10205//8949 10212//8956 10215//8959 10206//8950 +f 10212//8956 10205//8949 10202//8946 10211//8955 +f 10213//8957 10212//8956 10211//8955 10210//8954 +f 10216//8960 10217//8961 10218//8962 10219//8963 +f 10209//8953 10216//8960 10219//8963 10210//8954 +f 10216//8960 10209//8953 10155//8899 10154//8898 +f 10217//8961 10216//8960 10154//8898 10153//8897 +f 10220//8964 10221//8965 10222//8966 10223//8967 +f 10213//8957 10220//8964 10223//8967 10214//8958 +f 10220//8964 10213//8957 10210//8954 10219//8963 +f 10221//8965 10220//8964 10219//8963 10218//8962 +f 10224//8968 10225//8969 10206//8950 10215//8959 +f 10226//8970 10224//8968 10215//8959 10214//8958 +f 10224//8968 10226//8970 10227//8971 10228//8972 +f 10225//8969 10224//8968 10228//8972 10229//8973 +f 10230//8974 10226//8970 10214//8958 10223//8967 +f 10231//8975 10230//8974 10223//8967 10222//8966 +f 10230//8974 10231//8975 10232//8976 10233//8977 +f 10226//8970 10230//8974 10233//8977 10227//8971 +f 10234//8978 10235//8979 10236//8980 10237//8981 +f 10221//8965 10234//8978 10237//8981 10222//8966 +f 10234//8978 10221//8965 10218//8962 10238//8982 +f 10235//8979 10234//8978 10238//8982 10239//8983 +f 10240//8984 10241//8985 10197//8941 10207//8951 +f 10225//8969 10240//8984 10207//8951 10206//8950 +f 10240//8984 10225//8969 10229//8973 10242//8986 +f 10241//8985 10240//8984 10242//8986 10243//8987 +f 10244//8988 10231//8975 10222//8966 10237//8981 +f 10245//8989 10244//8988 10237//8981 10236//8980 +f 10244//8988 10245//8989 10246//8990 10247//8991 +f 10231//8975 10244//8988 10247//8991 10232//8976 +f 10248//8992 10249//8993 10199//8943 10198//8942 +f 10241//8985 10248//8992 10198//8942 10197//8941 +f 10248//8992 10241//8985 10243//8987 10250//8994 +f 10249//8993 10248//8992 10250//8994 10251//8995 +f 10252//8996 10195//8939 10199//8943 10253//8997 +f 10254//8998 10252//8996 10253//8997 10255//8999 +f 10252//8996 10254//8998 10189//8933 10188//8932 +f 10195//8939 10252//8996 10188//8932 10187//8931 +f 10256//9000 10257//9001 10255//8999 10253//8997 +f 10249//8993 10256//9000 10253//8997 10199//8943 +f 10256//9000 10249//8993 10251//8995 10258//9002 +f 10257//9001 10256//9000 10258//9002 10259//9003 +f 10260//9004 10261//9005 10243//8987 10242//8986 +f 10262//9006 10260//9004 10242//8986 10229//8973 +f 10260//9004 10262//9006 10263//9007 10264//9008 +f 10261//9005 10260//9004 10264//9008 10265//9009 +f 10266//9010 10267//9011 10259//9003 10258//9002 +f 10268//9012 10266//9010 10258//9002 10251//8995 +f 10266//9010 10268//9012 10269//9013 10270//9014 +f 10267//9011 10266//9010 10270//9014 10271//9015 +f 10272//9016 10268//9012 10251//8995 10250//8994 +f 10261//9005 10272//9016 10250//8994 10243//8987 +f 10272//9016 10261//9005 10265//9009 10273//9017 +f 10268//9012 10272//9016 10273//9017 10269//9013 +f 10274//9018 10275//9019 10271//9015 10270//9014 +f 10276//9020 10274//9018 10270//9014 10269//9013 +f 10274//9018 10276//9020 9466//8210 9465//8209 +f 10275//9019 10274//9018 9465//8209 9464//8208 +f 10277//9021 10276//9020 10269//9013 10273//9017 +f 10278//9022 10277//9021 10273//9017 10265//9009 +f 10277//9021 10278//9022 10279//9023 10280//9024 +f 10276//9020 10277//9021 10280//9024 9466//8210 +f 10281//9025 10278//9022 10265//9009 10264//9008 +f 10282//9026 10281//9025 10264//9008 10263//9007 +f 10281//9025 10282//9026 10283//9027 10284//9028 +f 10278//9022 10281//9025 10284//9028 10279//9023 +f 10285//9029 9459//8203 9466//8210 10280//9024 +f 10286//9030 10285//9029 10280//9024 10279//9023 +f 10285//9029 10286//9030 10287//9031 10288//9032 +f 9459//8203 10285//9029 10288//9032 9460//8204 +f 10289//9033 10286//9030 10279//9023 10284//9028 +f 10290//9034 10289//9033 10284//9028 10283//9027 +f 10289//9033 10290//9034 10291//9035 10292//9036 +f 10286//9030 10289//9033 10292//9036 10287//9031 +f 10293//9037 10294//9038 10295//9039 10296//9040 +f 10297//9041 10293//9037 10296//9040 10298//9042 +f 10293//9037 10297//9041 9460//8204 10288//9032 +f 10294//9038 10293//9037 10288//9032 10287//9031 +f 10299//9043 10300//9044 9463//8207 9461//8205 +f 10297//9041 10299//9043 9461//8205 9460//8204 +f 10299//9043 10297//9041 10298//9042 10301//9045 +f 10300//9044 10299//9043 10301//9045 10302//9046 +f 10303//9047 10304//9048 10305//9049 10306//9050 +f 10294//9038 10303//9047 10306//9050 10295//9039 +f 10303//9047 10294//9038 10287//9031 10292//9036 +f 10304//9048 10303//9047 10292//9036 10291//9035 +f 10307//9051 10308//9052 10295//9039 10306//9050 +f 10309//9053 10307//9051 10306//9050 10305//9049 +f 10307//9051 10309//9053 10310//9054 10311//9055 +f 10308//9052 10307//9051 10311//9055 10312//9056 +f 10313//9057 10314//9058 10315//9059 10316//9060 +f 10309//9053 10313//9057 10316//9060 10310//9054 +f 10313//9057 10309//9053 10305//9049 10317//9061 +f 10314//9058 10313//9057 10317//9061 10318//9062 +f 10319//9063 10320//9064 10318//9062 10317//9061 +f 10304//9048 10319//9063 10317//9061 10305//9049 +f 10319//9063 10304//9048 10291//9035 10321//9065 +f 10320//9064 10319//9063 10321//9065 10322//9066 +f 10323//9067 10324//9068 10322//9066 10321//9065 +f 10290//9034 10323//9067 10321//9065 10291//9035 +f 10323//9067 10290//9034 10283//9027 10325//9069 +f 10324//9068 10323//9067 10325//9069 10326//9070 +f 10327//9071 10328//9072 10329//9073 10330//9074 +f 10314//9058 10327//9071 10330//9074 10315//9059 +f 10327//9071 10314//9058 10318//9062 10331//9075 +f 10328//9072 10327//9071 10331//9075 10332//9076 +f 10333//9077 10334//9078 10326//9070 10325//9069 +f 10282//9026 10333//9077 10325//9069 10283//9027 +f 10333//9077 10282//9026 10263//9007 10335//9079 +f 10334//9078 10333//9077 10335//9079 10336//9080 +f 10337//9081 10338//9082 10332//9076 10331//9075 +f 10320//9064 10337//9081 10331//9075 10318//9062 +f 10337//9081 10320//9064 10322//9066 10339//9083 +f 10338//9082 10337//9081 10339//9083 10340//9084 +f 10341//9085 10342//9086 10340//9084 10339//9083 +f 10324//9068 10341//9085 10339//9083 10322//9066 +f 10341//9085 10324//9068 10326//9070 10343//9087 +f 10342//9086 10341//9085 10343//9087 10344//9088 +f 10345//9089 10346//9090 10336//9080 10335//9079 +f 10262//9006 10345//9089 10335//9079 10263//9007 +f 10345//9089 10262//9006 10229//8973 10228//8972 +f 10346//9090 10345//9089 10228//8972 10227//8971 +f 10347//9091 10348//9092 10344//9088 10343//9087 +f 10334//9078 10347//9091 10343//9087 10326//9070 +f 10347//9091 10334//9078 10336//9080 10349//9093 +f 10348//9092 10347//9091 10349//9093 10350//9094 +f 10351//9095 10352//9096 10350//9094 10349//9093 +f 10346//9090 10351//9095 10349//9093 10336//9080 +f 10351//9095 10346//9090 10227//8971 10233//8977 +f 10352//9096 10351//9095 10233//8977 10232//8976 +f 10353//9097 10354//9098 10355//9099 10356//9100 +f 10342//9086 10353//9097 10356//9100 10340//9084 +f 10353//9097 10342//9086 10344//9088 10357//9101 +f 10354//9098 10353//9097 10357//9101 10358//9102 +f 10359//9103 10360//9104 10361//9105 10362//9106 +f 10352//9096 10359//9103 10362//9106 10350//9094 +f 10359//9103 10352//9096 10232//8976 10247//8991 +f 10360//9104 10359//9103 10247//8991 10246//8990 +f 10363//9107 10364//9108 10358//9102 10357//9101 +f 10348//9092 10363//9107 10357//9101 10344//9088 +f 10363//9107 10348//9092 10350//9094 10362//9106 +f 10364//9108 10363//9107 10362//9106 10361//9105 +f 10365//9109 10366//9110 10361//9105 10360//9104 +f 10367//9111 10365//9109 10360//9104 10246//8990 +f 10365//9109 10367//9111 10368//9112 10369//9113 +f 10366//9110 10365//9109 10369//9113 10370//9114 +f 10371//9115 10372//9116 10358//9102 10364//9108 +f 10366//9110 10371//9115 10364//9108 10361//9105 +f 10371//9115 10366//9110 10370//9114 10373//9117 +f 10372//9116 10371//9115 10373//9117 10374//9118 +f 10375//9119 10376//9120 10355//9099 10354//9098 +f 10372//9116 10375//9119 10354//9098 10358//9102 +f 10375//9119 10372//9116 10374//9118 10377//9121 +f 10376//9120 10375//9119 10377//9121 10378//9122 +f 10379//9123 10338//9082 10340//9084 10356//9100 +f 10380//9124 10379//9123 10356//9100 10355//9099 +f 10379//9123 10380//9124 10381//9125 10382//9126 +f 10338//9082 10379//9123 10382//9126 10332//9076 +f 10383//9127 10384//9128 10381//9125 10380//9124 +f 10376//9120 10383//9127 10380//9124 10355//9099 +f 10383//9127 10376//9120 10378//9122 10385//9129 +f 10384//9128 10383//9127 10385//9129 10386//9130 +f 10387//9131 10328//9072 10332//9076 10382//9126 +f 10388//9132 10387//9131 10382//9126 10381//9125 +f 10387//9131 10388//9132 10389//9133 10390//9134 +f 10328//9072 10387//9131 10390//9134 10329//9073 +f 10391//9135 10392//9136 10389//9133 10388//9132 +f 10384//9128 10391//9135 10388//9132 10381//9125 +f 10391//9135 10384//9128 10386//9130 10393//9137 +f 10392//9136 10391//9135 10393//9137 10394//9138 +f 10395//9139 10396//9140 10378//9122 10377//9121 +f 10397//9141 10395//9139 10377//9121 10374//9118 +f 10395//9139 10397//9141 10398//9142 10399//9143 +f 10396//9140 10395//9139 10399//9143 10400//9144 +f 10401//9145 10402//9146 10329//9073 10390//9134 +f 10403//9147 10401//9145 10390//9134 10389//9133 +f 10401//9145 10403//9147 10404//9148 10405//9149 +f 10402//9146 10401//9145 10405//9149 10406//9150 +f 10407//9151 10408//9152 10386//9130 10385//9129 +f 10396//9140 10407//9151 10385//9129 10378//9122 +f 10407//9151 10396//9140 10400//9144 10409//9153 +f 10408//9152 10407//9151 10409//9153 10410//9154 +f 10411//9155 10412//9156 10404//9148 10403//9147 +f 10392//9136 10411//9155 10403//9147 10389//9133 +f 10411//9155 10392//9136 10394//9138 10413//9157 +f 10412//9156 10411//9155 10413//9157 10414//9158 +f 10415//9159 10416//9160 10394//9138 10393//9137 +f 10408//9152 10415//9159 10393//9137 10386//9130 +f 10415//9159 10408//9152 10410//9154 10417//9161 +f 10416//9160 10415//9159 10417//9161 10418//9162 +f 10419//9163 10420//9164 10315//9059 10330//9074 +f 10402//9146 10419//9163 10330//9074 10329//9073 +f 10419//9163 10402//9146 10406//9150 10421//9165 +f 10420//9164 10419//9163 10421//9165 10422//9166 +f 10423//9167 10424//9168 10310//9054 10316//9060 +f 10420//9164 10423//9167 10316//9060 10315//9059 +f 10423//9167 10420//9164 10422//9166 10425//9169 +f 10424//9168 10423//9167 10425//9169 10426//9170 +f 10427//9171 10428//9172 10406//9150 10405//9149 +f 10429//9173 10427//9171 10405//9149 10404//9148 +f 10427//9171 10429//9173 10430//9174 10431//9175 +f 10428//9172 10427//9171 10431//9175 10432//9176 +f 10433//9177 10434//9178 10430//9174 10429//9173 +f 10412//9156 10433//9177 10429//9173 10404//9148 +f 10433//9177 10412//9156 10414//9158 10435//9179 +f 10434//9178 10433//9177 10435//9179 10436//9180 +f 10437//9181 10438//9182 10422//9166 10421//9165 +f 10428//9172 10437//9181 10421//9165 10406//9150 +f 10437//9181 10428//9172 10432//9176 10439//9183 +f 10438//9182 10437//9181 10439//9183 10440//9184 +f 10441//9185 10442//9186 10436//9180 10435//9179 +f 10443//9187 10441//9185 10435//9179 10414//9158 +f 10441//9185 10443//9187 10444//9188 10445//9189 +f 10442//9186 10441//9185 10445//9189 10446//9190 +f 10447//9191 10448//9192 10426//9170 10425//9169 +f 10438//9182 10447//9191 10425//9169 10422//9166 +f 10447//9191 10438//9182 10440//9184 10449//9193 +f 10448//9192 10447//9191 10449//9193 10450//9194 +f 10451//9195 10452//9196 10312//9056 10311//9055 +f 10424//9168 10451//9195 10311//9055 10310//9054 +f 10451//9195 10424//9168 10426//9170 10453//9197 +f 10452//9196 10451//9195 10453//9197 10454//9198 +f 10455//9199 10456//9200 10454//9198 10453//9197 +f 10448//9192 10455//9199 10453//9197 10426//9170 +f 10455//9199 10448//9192 10450//9194 10457//9201 +f 10456//9200 10455//9199 10457//9201 10458//9202 +f 10459//9203 9468//8212 9475//8219 10460//9204 +f 10456//9200 10459//9203 10460//9204 10454//9198 +f 10459//9203 10456//9200 10458//9202 10461//9205 +f 9468//8212 10459//9203 10461//9205 9469//8213 +f 10462//9206 10463//9207 10464//9208 10465//9209 +f 10452//9196 10462//9206 10465//9209 10312//9056 +f 10462//9206 10452//9196 10454//9198 10460//9204 +f 10463//9207 10462//9206 10460//9204 9475//8219 +f 10466//9210 10467//9211 10468//9212 10469//9213 +f 10463//9207 10466//9210 10469//9213 10464//9208 +f 10466//9210 10463//9207 9475//8219 9474//8218 +f 10467//9211 10466//9210 9474//8218 9473//8217 +f 10470//9214 10471//9215 10446//9190 10445//9189 +f 10472//9216 10470//9214 10445//9189 10444//9188 +f 10470//9214 10472//9216 10473//9217 10474//9218 +f 10471//9215 10470//9214 10474//9218 10475//9219 +f 10476//9220 10416//9160 10418//9162 10477//9221 +f 10443//9187 10476//9220 10477//9221 10444//9188 +f 10476//9220 10443//9187 10414//9158 10413//9157 +f 10416//9160 10476//9220 10413//9157 10394//9138 +f 10478//9222 10472//9216 10444//9188 10477//9221 +f 10479//9223 10478//9222 10477//9221 10418//9162 +f 10478//9222 10479//9223 10480//9224 10481//9225 +f 10472//9216 10478//9222 10481//9225 10473//9217 +f 10482//9226 10479//9223 10418//9162 10417//9161 +f 10483//9227 10482//9226 10417//9161 10410//9154 +f 10482//9226 10483//9227 10484//9228 10485//9229 +f 10479//9223 10482//9226 10485//9229 10480//9224 +f 10486//9230 10487//9231 10475//9219 10474//9218 +f 10488//9232 10486//9230 10474//9218 10473//9217 +f 10486//9230 10488//9232 10489//9233 10490//9234 +f 10487//9231 10486//9230 10490//9234 10491//9235 +f 10492//9236 10488//9232 10473//9217 10481//9225 +f 10493//9237 10492//9236 10481//9225 10480//9224 +f 10492//9236 10493//9237 10494//9238 10495//9239 +f 10488//9232 10492//9236 10495//9239 10489//9233 +f 10496//9240 10497//9241 10491//9235 10490//9234 +f 10498//9242 10496//9240 10490//9234 10489//9233 +f 10496//9240 10498//9242 10499//9243 10500//9244 +f 10497//9241 10496//9240 10500//9244 10501//9245 +f 10502//9246 10498//9242 10489//9233 10495//9239 +f 10503//9247 10502//9246 10495//9239 10494//9238 +f 10502//9246 10503//9247 10504//9248 10505//9249 +f 10498//9242 10502//9246 10505//9249 10499//9243 +f 10506//9250 10507//9251 10508//9252 10509//9253 +f 10493//9237 10506//9250 10509//9253 10494//9238 +f 10506//9250 10493//9237 10480//9224 10485//9229 +f 10507//9251 10506//9250 10485//9229 10484//9228 +f 10510//9254 10511//9255 10512//9256 10513//9257 +f 10503//9247 10510//9254 10513//9257 10504//9248 +f 10510//9254 10503//9247 10494//9238 10509//9253 +f 10511//9255 10510//9254 10509//9253 10508//9252 +f 10514//9258 10515//9259 10501//9245 10500//9244 +f 10516//9260 10514//9258 10500//9244 10499//9243 +f 10514//9258 10516//9260 10517//9261 10518//9262 +f 10515//9259 10514//9258 10518//9262 10519//9263 +f 10520//9264 10516//9260 10499//9243 10505//9249 +f 10521//9265 10520//9264 10505//9249 10504//9248 +f 10520//9264 10521//9265 10522//9266 10523//9267 +f 10516//9260 10520//9264 10523//9267 10517//9261 +f 10524//9268 10525//9269 10519//9263 10518//9262 +f 10526//9270 10524//9268 10518//9262 10517//9261 +f 10524//9268 10526//9270 10527//9271 10528//9272 +f 10525//9269 10524//9268 10528//9272 10529//9273 +f 10530//9274 10526//9270 10517//9261 10523//9267 +f 10531//9275 10530//9274 10523//9267 10522//9266 +f 10530//9274 10531//9275 10532//9276 10533//9277 +f 10526//9270 10530//9274 10533//9277 10527//9271 +f 10534//9278 10535//9279 10536//9280 10537//9281 +f 10521//9265 10534//9278 10537//9281 10522//9266 +f 10534//9278 10521//9265 10504//9248 10513//9257 +f 10535//9279 10534//9278 10513//9257 10512//9256 +f 10538//9282 10539//9283 10540//9284 10541//9285 +f 10531//9275 10538//9282 10541//9285 10532//9276 +f 10538//9282 10531//9275 10522//9266 10537//9281 +f 10539//9283 10538//9282 10537//9281 10536//9280 +f 10542//9286 10543//9287 10529//9273 10528//9272 +f 10544//9288 10542//9286 10528//9272 10527//9271 +f 10542//9286 10544//9288 10545//9289 10546//9290 +f 10543//9287 10542//9286 10546//9290 10547//9291 +f 10548//9292 10544//9288 10527//9271 10533//9277 +f 10549//9293 10548//9292 10533//9277 10532//9276 +f 10548//9292 10549//9293 10550//9294 10551//9295 +f 10544//9288 10548//9292 10551//9295 10545//9289 +f 10552//9296 10553//9297 10547//9291 10546//9290 +f 10554//9298 10552//9296 10546//9290 10545//9289 +f 10552//9296 10554//9298 10555//9299 10556//9300 +f 10553//9297 10552//9296 10556//9300 10557//9301 +f 10558//9302 10559//9303 10560//9304 10561//9305 +f 10556//9300 10558//9302 10561//9305 10557//9301 +f 10558//9302 10556//9300 10555//9299 10562//9306 +f 10559//9303 10558//9302 10562//9306 10563//9307 +f 10564//9308 10565//9309 10566//9310 10567//9311 +f 10554//9298 10564//9308 10567//9311 10555//9299 +f 10564//9308 10554//9298 10545//9289 10551//9295 +f 10565//9309 10564//9308 10551//9295 10550//9294 +f 10568//9312 10569//9313 10563//9307 10562//9306 +f 10567//9311 10568//9312 10562//9306 10555//9299 +f 10568//9312 10567//9311 10566//9310 10570//9314 +f 10569//9313 10568//9312 10570//9314 10571//9315 +f 10572//9316 10573//9317 10574//9318 10575//9319 +f 10559//9303 10572//9316 10575//9319 10560//9304 +f 10572//9316 10559//9303 10563//9307 10576//9320 +f 10573//9317 10572//9316 10576//9320 10577//9321 +f 10578//9322 10579//9323 10580//9324 10581//9325 +f 10565//9309 10578//9322 10581//9325 10566//9310 +f 10578//9322 10565//9309 10550//9294 10582//9326 +f 10579//9323 10578//9322 10582//9326 10583//9327 +f 10584//9328 10585//9329 10586//9330 10587//9331 +f 10573//9317 10584//9328 10587//9331 10574//9318 +f 10584//9328 10573//9317 10577//9321 10588//9332 +f 10585//9329 10584//9328 10588//9332 10589//9333 +f 10590//9334 10591//9335 10577//9321 10576//9320 +f 10569//9313 10590//9334 10576//9320 10563//9307 +f 10590//9334 10569//9313 10571//9315 10592//9336 +f 10591//9335 10590//9334 10592//9336 10593//9337 +f 10594//9338 10595//9339 10571//9315 10570//9314 +f 10581//9325 10594//9338 10570//9314 10566//9310 +f 10594//9338 10581//9325 10580//9324 10596//9340 +f 10595//9339 10594//9338 10596//9340 10597//9341 +f 10598//9342 10599//9343 10600//9344 10601//9345 +f 10585//9329 10598//9342 10601//9345 10586//9330 +f 10598//9342 10585//9329 10589//9333 10602//9346 +f 10599//9343 10598//9342 10602//9346 10603//9347 +f 10604//9348 10605//9349 10589//9333 10588//9332 +f 10591//9335 10604//9348 10588//9332 10577//9321 +f 10604//9348 10591//9335 10593//9337 10606//9350 +f 10605//9349 10604//9348 10606//9350 10607//9351 +f 10608//9352 9444//8188 9445//8189 10609//9353 +f 10599//9343 10608//9352 10609//9353 10600//9344 +f 10608//9352 10599//9343 10603//9347 10610//9354 +f 9444//8188 10608//9352 10610//9354 9446//8190 +f 10611//9355 10612//9356 10603//9347 10602//9346 +f 10605//9349 10611//9355 10602//9346 10589//9333 +f 10611//9355 10605//9349 10607//9351 10613//9357 +f 10612//9356 10611//9355 10613//9357 10614//9358 +f 10615//9359 10616//9360 9446//8190 10610//9354 +f 10612//9356 10615//9359 10610//9354 10603//9347 +f 10615//9359 10612//9356 10614//9358 10617//9361 +f 10616//9360 10615//9359 10617//9361 10618//9362 +f 10619//9363 10620//9364 9448//8192 9447//8191 +f 10616//9360 10619//9363 9447//8191 9446//8190 +f 10619//9363 10616//9360 10618//9362 10621//9365 +f 10620//9364 10619//9363 10621//9365 10622//9366 +f 10623//9367 10624//9368 10614//9358 10613//9357 +f 10625//9369 10623//9367 10613//9357 10607//9351 +f 10623//9367 10625//9369 10626//9370 10627//9371 +f 10624//9368 10623//9367 10627//9371 10628//9372 +f 10629//9373 10630//9374 10631//9375 10632//9376 +f 10625//9369 10629//9373 10632//9376 10626//9370 +f 10629//9373 10625//9369 10607//9351 10606//9350 +f 10630//9374 10629//9373 10606//9350 10593//9337 +f 10633//9377 10634//9378 10628//9372 10627//9371 +f 10635//9379 10633//9377 10627//9371 10626//9370 +f 10633//9377 10635//9379 10636//9380 10637//9381 +f 10634//9378 10633//9377 10637//9381 10638//9382 +f 10639//9383 10635//9379 10626//9370 10632//9376 +f 10640//9384 10639//9383 10632//9376 10631//9375 +f 10639//9383 10640//9384 10641//9385 10642//9386 +f 10635//9379 10639//9383 10642//9386 10636//9380 +f 10643//9387 10644//9388 10645//9389 10646//9390 +f 10634//9378 10643//9387 10646//9390 10628//9372 +f 10643//9387 10634//9378 10638//9382 10647//9391 +f 10644//9388 10643//9387 10647//9391 10648//9392 +f 10649//9393 10650//9394 10648//9392 10647//9391 +f 10651//9395 10649//9393 10647//9391 10638//9382 +f 10649//9393 10651//9395 10652//9396 10653//9397 +f 10650//9394 10649//9393 10653//9397 10654//9398 +f 10655//9399 10651//9395 10638//9382 10637//9381 +f 10656//9400 10655//9399 10637//9381 10636//9380 +f 10655//9399 10656//9400 10657//9401 10658//9402 +f 10651//9395 10655//9399 10658//9402 10652//9396 +f 10659//9403 10660//9404 10661//9405 10662//9406 +f 10663//9407 10659//9403 10662//9406 10664//9408 +f 10659//9403 10663//9407 10654//9398 10653//9397 +f 10660//9404 10659//9403 10653//9397 10652//9396 +f 10665//9409 10666//9410 10667//9411 10668//9412 +f 10656//9400 10665//9409 10668//9412 10657//9401 +f 10665//9409 10656//9400 10636//9380 10642//9386 +f 10666//9410 10665//9409 10642//9386 10641//9385 +f 10669//9413 10660//9404 10652//9396 10658//9402 +f 10670//9414 10669//9413 10658//9402 10657//9401 +f 10669//9413 10670//9414 10671//9415 10672//9416 +f 10660//9404 10669//9413 10672//9416 10661//9405 +f 10673//9417 10670//9414 10657//9401 10668//9412 +f 10674//9418 10673//9417 10668//9412 10667//9411 +f 10673//9417 10674//9418 10675//9419 10676//9420 +f 10670//9414 10673//9417 10676//9420 10671//9415 +f 10677//9421 10678//9422 10679//9423 10680//9424 +f 10666//9410 10677//9421 10680//9424 10667//9411 +f 10677//9421 10666//9410 10641//9385 10681//9425 +f 10678//9422 10677//9421 10681//9425 10682//9426 +f 10683//9427 10684//9428 10685//9429 10686//9430 +f 10674//9418 10683//9427 10686//9430 10675//9419 +f 10683//9427 10674//9418 10667//9411 10680//9424 +f 10684//9428 10683//9427 10680//9424 10679//9423 +f 10687//9431 10688//9432 10671//9415 10676//9420 +f 10689//9433 10687//9431 10676//9420 10675//9419 +f 10687//9431 10689//9433 10690//9434 10691//9435 +f 10688//9432 10687//9431 10691//9435 10692//9436 +f 10693//9437 10694//9438 10682//9426 10681//9425 +f 10640//9384 10693//9437 10681//9425 10641//9385 +f 10693//9437 10640//9384 10631//9375 10695//9439 +f 10694//9438 10693//9437 10695//9439 10597//9341 +f 10696//9440 10697//9441 10661//9405 10672//9416 +f 10688//9432 10696//9440 10672//9416 10671//9415 +f 10696//9440 10688//9432 10692//9436 10698//9442 +f 10697//9441 10696//9440 10698//9442 10699//9443 +f 10700//9444 10701//9445 10664//9408 10662//9406 +f 10697//9441 10700//9444 10662//9406 10661//9405 +f 10700//9444 10697//9441 10699//9443 10702//9446 +f 10701//9445 10700//9444 10702//9446 10703//9447 +f 10704//9448 10705//9449 10706//9450 10707//9451 +f 10689//9433 10704//9448 10707//9451 10690//9434 +f 10704//9448 10689//9433 10675//9419 10686//9430 +f 10705//9449 10704//9448 10686//9430 10685//9429 +f 10708//9452 10709//9453 10692//9436 10691//9435 +f 10710//9454 10708//9452 10691//9435 10690//9434 +f 10708//9452 10710//9454 10711//9455 10712//9456 +f 10709//9453 10708//9452 10712//9456 10713//9457 +f 10714//9458 10710//9454 10690//9434 10707//9451 +f 10715//9459 10714//9458 10707//9451 10706//9450 +f 10714//9458 10715//9459 10716//9460 10717//9461 +f 10710//9454 10714//9458 10717//9461 10711//9455 +f 10718//9462 10719//9463 10699//9443 10698//9442 +f 10709//9453 10718//9462 10698//9442 10692//9436 +f 10718//9462 10709//9453 10713//9457 10720//9464 +f 10719//9463 10718//9462 10720//9464 10721//9465 +f 10722//9466 10723//9467 10724//9468 10725//9469 +f 10701//9445 10722//9466 10725//9469 10664//9408 +f 10722//9466 10701//9445 10703//9447 10726//9470 +f 10723//9467 10722//9466 10726//9470 10727//9471 +f 10728//9472 10663//9407 10664//9408 10725//9469 +f 10729//9473 10728//9472 10725//9469 10724//9468 +f 10728//9472 10729//9473 10730//9474 10731//9475 +f 10663//9407 10728//9472 10731//9475 10654//9398 +f 10732//9476 10733//9477 10703//9447 10702//9446 +f 10719//9463 10732//9476 10702//9446 10699//9443 +f 10732//9476 10719//9463 10721//9465 10734//9478 +f 10733//9477 10732//9476 10734//9478 10735//9479 +f 10736//9480 10737//9481 10735//9479 10734//9478 +f 10738//9482 10736//9480 10734//9478 10721//9465 +f 10736//9480 10738//9482 10739//9483 10740//9484 +f 10737//9481 10736//9480 10740//9484 10741//9485 +f 10742//9486 10738//9482 10721//9465 10720//9464 +f 10743//9487 10742//9486 10720//9464 10713//9457 +f 10742//9486 10743//9487 10744//9488 10745//9489 +f 10738//9482 10742//9486 10745//9489 10739//9483 +f 10746//9490 10747//9491 10748//9492 10749//9493 +f 10743//9487 10746//9490 10749//9493 10744//9488 +f 10746//9490 10743//9487 10713//9457 10712//9456 +f 10747//9491 10746//9490 10712//9456 10711//9455 +f 10750//9494 10751//9495 10739//9483 10745//9489 +f 10752//9496 10750//9494 10745//9489 10744//9488 +f 10750//9494 10752//9496 10753//9497 10754//9498 +f 10751//9495 10750//9494 10754//9498 10755//9499 +f 10756//9500 10757//9501 10758//9502 10759//9503 +f 10747//9491 10756//9500 10759//9503 10748//9492 +f 10756//9500 10747//9491 10711//9455 10717//9461 +f 10757//9501 10756//9500 10717//9461 10716//9460 +f 10760//9504 10752//9496 10744//9488 10749//9493 +f 10761//9505 10760//9504 10749//9493 10748//9492 +f 10760//9504 10761//9505 10762//9506 10763//9507 +f 10752//9496 10760//9504 10763//9507 10753//9497 +f 10764//9508 10761//9505 10748//9492 10759//9503 +f 10765//9509 10764//9508 10759//9503 10758//9502 +f 10764//9508 10765//9509 10766//9510 10767//9511 +f 10761//9505 10764//9508 10767//9511 10762//9506 +f 10768//9512 10769//9513 10770//9514 10771//9515 +f 10757//9501 10768//9512 10771//9515 10758//9502 +f 10768//9512 10757//9501 10716//9460 10772//9516 +f 10769//9513 10768//9512 10772//9516 10773//9517 +f 10774//9518 10775//9519 10776//9520 10777//9521 +f 10765//9509 10774//9518 10777//9521 10766//9510 +f 10774//9518 10765//9509 10758//9502 10771//9515 +f 10775//9519 10774//9518 10771//9515 10770//9514 +f 10778//9522 10779//9523 10762//9506 10767//9511 +f 10780//9524 10778//9522 10767//9511 10766//9510 +f 10778//9522 10780//9524 10781//9525 10782//9526 +f 10779//9523 10778//9522 10782//9526 10783//9527 +f 10784//9528 10785//9529 10773//9517 10772//9516 +f 10715//9459 10784//9528 10772//9516 10716//9460 +f 10784//9528 10715//9459 10706//9450 10786//9530 +f 10785//9529 10784//9528 10786//9530 10787//9531 +f 10788//9532 10789//9533 10753//9497 10763//9507 +f 10779//9523 10788//9532 10763//9507 10762//9506 +f 10788//9532 10779//9523 10783//9527 10790//9534 +f 10789//9533 10788//9532 10790//9534 10791//9535 +f 10792//9536 10793//9537 10787//9531 10786//9530 +f 10705//9449 10792//9536 10786//9530 10706//9450 +f 10792//9536 10705//9449 10685//9429 10794//9538 +f 10793//9537 10792//9536 10794//9538 10795//9539 +f 10796//9540 10797//9541 10770//9514 10769//9513 +f 10798//9542 10796//9540 10769//9513 10773//9517 +f 10796//9540 10798//9542 10799//9543 10800//9544 +f 10797//9541 10796//9540 10800//9544 10801//9545 +f 10802//9546 10803//9547 10795//9539 10794//9538 +f 10684//9428 10802//9546 10794//9538 10685//9429 +f 10802//9546 10684//9428 10679//9423 10804//9548 +f 10803//9547 10802//9546 10804//9548 10805//9549 +f 10806//9550 10798//9542 10773//9517 10785//9529 +f 10807//9551 10806//9550 10785//9529 10787//9531 +f 10806//9550 10807//9551 10808//9552 10809//9553 +f 10798//9542 10806//9550 10809//9553 10799//9543 +f 10810//9554 10807//9551 10787//9531 10793//9537 +f 10811//9555 10810//9554 10793//9537 10795//9539 +f 10810//9554 10811//9555 10812//9556 10813//9557 +f 10807//9551 10810//9554 10813//9557 10808//9552 +f 10814//9558 10815//9559 10805//9549 10804//9548 +f 10678//9422 10814//9558 10804//9548 10679//9423 +f 10814//9558 10678//9422 10682//9426 10816//9560 +f 10815//9559 10814//9558 10816//9560 10817//9561 +f 10818//9562 10819//9563 10820//9564 10821//9565 +f 10811//9555 10818//9562 10821//9565 10812//9556 +f 10818//9562 10811//9555 10795//9539 10803//9547 +f 10819//9563 10818//9562 10803//9547 10805//9549 +f 10822//9566 10823//9567 10808//9552 10813//9557 +f 10824//9568 10822//9566 10813//9557 10812//9556 +f 10822//9566 10824//9568 10825//9569 10826//9570 +f 10823//9567 10822//9566 10826//9570 10827//9571 +f 10828//9572 10824//9568 10812//9556 10821//9565 +f 10829//9573 10828//9572 10821//9565 10820//9564 +f 10828//9572 10829//9573 10830//9574 10831//9575 +f 10824//9568 10828//9572 10831//9575 10825//9569 +f 10832//9576 10833//9577 10834//9578 10835//9579 +f 10819//9563 10832//9576 10835//9579 10820//9564 +f 10832//9576 10819//9563 10805//9549 10815//9559 +f 10833//9577 10832//9576 10815//9559 10817//9561 +f 10836//9580 10837//9581 10799//9543 10809//9553 +f 10823//9567 10836//9580 10809//9553 10808//9552 +f 10836//9580 10823//9567 10827//9571 10838//9582 +f 10837//9581 10836//9580 10838//9582 10839//9583 +f 10840//9584 10829//9573 10820//9564 10835//9579 +f 10841//9585 10840//9584 10835//9579 10834//9578 +f 10840//9584 10841//9585 10842//9586 10843//9587 +f 10829//9573 10840//9584 10843//9587 10830//9574 +f 10844//9588 10845//9589 10540//9284 10846//9590 +f 10841//9585 10844//9588 10846//9590 10842//9586 +f 10844//9588 10841//9585 10834//9578 10847//9591 +f 10845//9589 10844//9588 10847//9591 10583//9327 +f 10848//9592 10849//9593 10817//9561 10816//9560 +f 10694//9438 10848//9592 10816//9560 10682//9426 +f 10848//9592 10694//9438 10597//9341 10596//9340 +f 10849//9593 10848//9592 10596//9340 10580//9324 +f 10850//9594 10595//9339 10597//9341 10695//9439 +f 10630//9374 10850//9594 10695//9439 10631//9375 +f 10850//9594 10630//9374 10593//9337 10592//9336 +f 10595//9339 10850//9594 10592//9336 10571//9315 +f 10851//9595 10833//9577 10817//9561 10849//9593 +f 10579//9323 10851//9595 10849//9593 10580//9324 +f 10851//9595 10579//9323 10583//9327 10847//9591 +f 10833//9577 10851//9595 10847//9591 10834//9578 +f 10852//9596 10845//9589 10583//9327 10582//9326 +f 10549//9293 10852//9596 10582//9326 10550//9294 +f 10852//9596 10549//9293 10532//9276 10541//9285 +f 10845//9589 10852//9596 10541//9285 10540//9284 +f 10853//9597 10854//9598 10842//9586 10846//9590 +f 10539//9283 10853//9597 10846//9590 10540//9284 +f 10853//9597 10539//9283 10536//9280 10855//9599 +f 10854//9598 10853//9597 10855//9599 10856//9600 +f 10857//9601 10858//9602 10830//9574 10843//9587 +f 10854//9598 10857//9601 10843//9587 10842//9586 +f 10857//9601 10854//9598 10856//9600 10859//9603 +f 10858//9602 10857//9601 10859//9603 10860//9604 +f 10861//9605 10862//9606 10856//9600 10855//9599 +f 10535//9279 10861//9605 10855//9599 10536//9280 +f 10861//9605 10535//9279 10512//9256 10863//9607 +f 10862//9606 10861//9605 10863//9607 10864//9608 +f 10865//9609 10866//9610 10825//9569 10831//9575 +f 10858//9602 10865//9609 10831//9575 10830//9574 +f 10865//9609 10858//9602 10860//9604 10867//9611 +f 10866//9610 10865//9609 10867//9611 10868//9612 +f 10869//9613 10870//9614 10860//9604 10859//9603 +f 10862//9606 10869//9613 10859//9603 10856//9600 +f 10869//9613 10862//9606 10864//9608 10871//9615 +f 10870//9614 10869//9613 10871//9615 10872//9616 +f 10873//9617 10874//9618 10864//9608 10863//9607 +f 10511//9255 10873//9617 10863//9607 10512//9256 +f 10873//9617 10511//9255 10508//9252 10875//9619 +f 10874//9618 10873//9617 10875//9619 10876//9620 +f 10877//9621 10878//9622 10827//9571 10826//9570 +f 10866//9610 10877//9621 10826//9570 10825//9569 +f 10877//9621 10866//9610 10868//9612 10879//9623 +f 10878//9622 10877//9621 10879//9623 10880//9624 +f 10881//9625 10882//9626 10868//9612 10867//9611 +f 10870//9614 10881//9625 10867//9611 10860//9604 +f 10881//9625 10870//9614 10872//9616 10883//9627 +f 10882//9626 10881//9625 10883//9627 10884//9628 +f 10885//9629 10886//9630 10872//9616 10871//9615 +f 10874//9618 10885//9629 10871//9615 10864//9608 +f 10885//9629 10874//9618 10876//9620 10887//9631 +f 10886//9630 10885//9629 10887//9631 10888//9632 +f 10889//9633 10890//9634 10876//9620 10875//9619 +f 10507//9251 10889//9633 10875//9619 10508//9252 +f 10889//9633 10507//9251 10484//9228 10891//9635 +f 10890//9634 10889//9633 10891//9635 10892//9636 +f 10893//9637 10894//9638 10892//9636 10891//9635 +f 10483//9227 10893//9637 10891//9635 10484//9228 +f 10893//9637 10483//9227 10410//9154 10409//9153 +f 10894//9638 10893//9637 10409//9153 10400//9144 +f 10895//9639 10896//9640 10888//9632 10887//9631 +f 10890//9634 10895//9639 10887//9631 10876//9620 +f 10895//9639 10890//9634 10892//9636 10897//9641 +f 10896//9640 10895//9639 10897//9641 10898//9642 +f 10899//9643 10900//9644 10884//9628 10883//9627 +f 10886//9630 10899//9643 10883//9627 10872//9616 +f 10899//9643 10886//9630 10888//9632 10901//9645 +f 10900//9644 10899//9643 10901//9645 10902//9646 +f 10903//9647 10904//9648 10898//9642 10897//9641 +f 10894//9638 10903//9647 10897//9641 10892//9636 +f 10903//9647 10894//9638 10400//9144 10399//9143 +f 10904//9648 10903//9647 10399//9143 10398//9142 +f 10905//9649 10906//9650 10902//9646 10901//9645 +f 10896//9640 10905//9649 10901//9645 10888//9632 +f 10905//9649 10896//9640 10898//9642 10907//9651 +f 10906//9650 10905//9649 10907//9651 10908//9652 +f 10909//9653 10910//9654 10908//9652 10907//9651 +f 10904//9648 10909//9653 10907//9651 10898//9642 +f 10909//9653 10904//9648 10398//9142 10911//9655 +f 10910//9654 10909//9653 10911//9655 10912//9656 +f 10913//9657 10914//9658 10912//9656 10911//9655 +f 10397//9141 10913//9657 10911//9655 10398//9142 +f 10913//9657 10397//9141 10374//9118 10373//9117 +f 10914//9658 10913//9657 10373//9117 10370//9114 +f 10915//9659 10916//9660 10917//9661 10918//9662 +f 10906//9650 10915//9659 10918//9662 10902//9646 +f 10915//9659 10906//9650 10908//9652 10919//9663 +f 10916//9660 10915//9659 10919//9663 10920//9664 +f 10921//9665 10922//9666 10923//9667 10924//9668 +f 10914//9658 10921//9665 10924//9668 10912//9656 +f 10921//9665 10914//9658 10370//9114 10369//9113 +f 10922//9666 10921//9665 10369//9113 10368//9112 +f 10925//9669 10926//9670 10920//9664 10919//9663 +f 10910//9654 10925//9669 10919//9663 10908//9652 +f 10925//9669 10910//9654 10912//9656 10924//9668 +f 10926//9670 10925//9669 10924//9668 10923//9667 +f 10927//9671 10928//9672 10929//9673 10930//9674 +f 10922//9666 10927//9671 10930//9674 10923//9667 +f 10927//9671 10922//9666 10368//9112 10931//9675 +f 10928//9672 10927//9671 10931//9675 10932//9676 +f 10933//9677 10934//9678 10935//9679 10936//9680 +f 10926//9670 10933//9677 10936//9680 10920//9664 +f 10933//9677 10926//9670 10923//9667 10930//9674 +f 10934//9678 10933//9677 10930//9674 10929//9673 +f 10937//9681 10938//9682 10939//9683 10940//9684 +f 10916//9660 10937//9681 10940//9684 10917//9661 +f 10937//9681 10916//9660 10920//9664 10936//9680 +f 10938//9682 10937//9681 10936//9680 10935//9679 +f 10941//9685 10900//9644 10902//9646 10918//9662 +f 10942//9686 10941//9685 10918//9662 10917//9661 +f 10941//9685 10942//9686 10943//9687 10944//9688 +f 10900//9644 10941//9685 10944//9688 10884//9628 +f 10945//9689 10942//9686 10917//9661 10940//9684 +f 10946//9690 10945//9689 10940//9684 10939//9683 +f 10945//9689 10946//9690 10947//9691 10948//9692 +f 10942//9686 10945//9689 10948//9692 10943//9687 +f 10949//9693 10882//9626 10884//9628 10944//9688 +f 10950//9694 10949//9693 10944//9688 10943//9687 +f 10949//9693 10950//9694 10880//9624 10879//9623 +f 10882//9626 10949//9693 10879//9623 10868//9612 +f 10951//9695 10952//9696 10953//9697 10954//9698 +f 10950//9694 10951//9695 10954//9698 10880//9624 +f 10951//9695 10950//9694 10943//9687 10948//9692 +f 10952//9696 10951//9695 10948//9692 10947//9691 +f 10955//9699 10956//9700 10839//9583 10838//9582 +f 10878//9622 10955//9699 10838//9582 10827//9571 +f 10955//9699 10878//9622 10880//9624 10954//9698 +f 10956//9700 10955//9699 10954//9698 10953//9697 +f 10957//9701 10958//9702 10959//9703 10960//9704 +f 10952//9696 10957//9701 10960//9704 10953//9697 +f 10957//9701 10952//9696 10947//9691 10961//9705 +f 10958//9702 10957//9701 10961//9705 10962//9706 +f 10963//9707 10964//9708 10801//9545 10800//9544 +f 10837//9581 10963//9707 10800//9544 10799//9543 +f 10963//9707 10837//9581 10839//9583 10965//9709 +f 10964//9708 10963//9707 10965//9709 10966//9710 +f 10967//9711 10968//9712 10966//9710 10965//9709 +f 10956//9700 10967//9711 10965//9709 10839//9583 +f 10967//9711 10956//9700 10953//9697 10960//9704 +f 10968//9712 10967//9711 10960//9704 10959//9703 +f 10969//9713 10970//9714 10776//9520 10775//9519 +f 10797//9541 10969//9713 10775//9519 10770//9514 +f 10969//9713 10797//9541 10801//9545 10971//9715 +f 10970//9714 10969//9713 10971//9715 10972//9716 +f 10973//9717 10974//9718 10972//9716 10971//9715 +f 10964//9708 10973//9717 10971//9715 10801//9545 +f 10973//9717 10964//9708 10966//9710 10975//9719 +f 10974//9718 10973//9717 10975//9719 10976//9720 +f 10977//9721 10978//9722 10976//9720 10975//9719 +f 10968//9712 10977//9721 10975//9719 10966//9710 +f 10977//9721 10968//9712 10959//9703 10979//9723 +f 10978//9722 10977//9721 10979//9723 10980//9724 +f 10981//9725 10982//9726 10962//9706 10961//9705 +f 10946//9690 10981//9725 10961//9705 10947//9691 +f 10981//9725 10946//9690 10939//9683 10983//9727 +f 10982//9726 10981//9725 10983//9727 10984//9728 +f 10985//9729 10986//9730 10980//9724 10979//9723 +f 10958//9702 10985//9729 10979//9723 10959//9703 +f 10985//9729 10958//9702 10962//9706 10987//9731 +f 10986//9730 10985//9729 10987//9731 10988//9732 +f 10989//9733 10990//9734 10984//9728 10983//9727 +f 10938//9682 10989//9733 10983//9727 10939//9683 +f 10989//9733 10938//9682 10935//9679 10991//9735 +f 10990//9734 10989//9733 10991//9735 10992//9736 +f 10993//9737 10994//9738 10988//9732 10987//9731 +f 10982//9726 10993//9737 10987//9731 10962//9706 +f 10993//9737 10982//9726 10984//9728 10995//9739 +f 10994//9738 10993//9737 10995//9739 10996//9740 +f 10997//9741 10998//9742 10992//9736 10991//9735 +f 10934//9678 10997//9741 10991//9735 10935//9679 +f 10997//9741 10934//9678 10929//9673 10999//9743 +f 10998//9742 10997//9741 10999//9743 11000//9744 +f 11001//9745 11002//9746 10996//9740 10995//9739 +f 10990//9734 11001//9745 10995//9739 10984//9728 +f 11001//9745 10990//9734 10992//9736 11003//9747 +f 11002//9746 11001//9745 11003//9747 11004//9748 +f 11005//9749 11006//9750 11007//9751 11008//9752 +f 10986//9730 11005//9749 11008//9752 10980//9724 +f 11005//9749 10986//9730 10988//9732 11009//9753 +f 11006//9750 11005//9749 11009//9753 11010//9754 +f 11011//9755 11012//9756 11010//9754 11009//9753 +f 10994//9738 11011//9755 11009//9753 10988//9732 +f 11011//9755 10994//9738 10996//9740 11013//9757 +f 11012//9756 11011//9755 11013//9757 11014//9758 +f 11015//9759 10978//9722 10980//9724 11008//9752 +f 11016//9760 11015//9759 11008//9752 11007//9751 +f 11015//9759 11016//9760 11017//9761 11018//9762 +f 10978//9722 11015//9759 11018//9762 10976//9720 +f 11019//9763 11020//9764 11004//9748 11003//9747 +f 10998//9742 11019//9763 11003//9747 10992//9736 +f 11019//9763 10998//9742 11000//9744 11021//9765 +f 11020//9764 11019//9763 11021//9765 11022//9766 +f 11023//9767 10974//9718 10976//9720 11018//9762 +f 11024//9768 11023//9767 11018//9762 11017//9761 +f 11023//9767 11024//9768 11025//9769 11026//9770 +f 10974//9718 11023//9767 11026//9770 10972//9716 +f 11027//9771 11028//9772 11000//9744 10999//9743 +f 10928//9672 11027//9771 10999//9743 10929//9673 +f 11027//9771 10928//9672 10932//9676 11029//9773 +f 11028//9772 11027//9771 11029//9773 11030//9774 +f 11031//9775 11032//9776 10932//9676 10931//9675 +f 10367//9111 11031//9775 10931//9675 10368//9112 +f 11031//9775 10367//9111 10246//8990 10245//8989 +f 11032//9776 11031//9775 10245//8989 10236//8980 +f 11033//9777 11034//9778 11030//9774 11029//9773 +f 11032//9776 11033//9777 11029//9773 10932//9676 +f 11033//9777 11032//9776 10236//8980 10235//8979 +f 11034//9778 11033//9777 10235//8979 10239//8983 +f 11035//9779 11036//9780 11022//9766 11021//9765 +f 11028//9772 11035//9779 11021//9765 11000//9744 +f 11035//9779 11028//9772 11030//9774 11037//9781 +f 11036//9780 11035//9779 11037//9781 11038//9782 +f 11039//9783 11040//9784 10239//8983 10238//8982 +f 10217//8961 11039//9783 10238//8982 10218//8962 +f 11039//9783 10217//8961 10153//8897 11041//9785 +f 11040//9784 11039//9783 11041//9785 11042//9786 +f 11043//9787 11044//9788 11038//9782 11037//9781 +f 11034//9778 11043//9787 11037//9781 11030//9774 +f 11043//9787 11034//9778 10239//8983 11040//9784 +f 11044//9788 11043//9787 11040//9784 11042//9786 +f 11045//9789 11046//9790 11042//9786 11041//9785 +f 10152//8896 11045//9789 11041//9785 10153//8897 +f 11045//9789 10152//8896 10131//8875 10130//8874 +f 11046//9790 11045//9789 10130//8874 10129//8873 +f 11047//9791 11044//9788 11042//9786 11046//9790 +f 10133//8877 11047//9791 11046//9790 10129//8873 +f 11047//9791 10133//8877 10135//8879 11048//9792 +f 11044//9788 11047//9791 11048//9792 11038//9782 +f 11049//9793 11036//9780 11038//9782 11048//9792 +f 11050//9794 11049//9793 11048//9792 10135//8879 +f 11049//9793 11050//9794 11051//9795 11052//9796 +f 11036//9780 11049//9793 11052//9796 11022//9766 +f 11053//9797 11050//9794 10135//8879 10134//8878 +f 10123//8867 11053//9797 10134//8878 10113//8857 +f 11053//9797 10123//8867 10125//8869 11054//9798 +f 11050//9794 11053//9797 11054//9798 11051//9795 +f 11055//9799 11020//9764 11022//9766 11052//9796 +f 11056//9800 11055//9799 11052//9796 11051//9795 +f 11055//9799 11056//9800 11057//9801 11058//9802 +f 11020//9764 11055//9799 11058//9802 11004//9748 +f 11059//9803 11056//9800 11051//9795 11054//9798 +f 11060//9804 11059//9803 11054//9798 10125//8869 +f 11059//9803 11060//9804 11061//9805 11062//9806 +f 11056//9800 11059//9803 11062//9806 11057//9801 +f 11063//9807 11060//9804 10125//8869 10124//8868 +f 11064//9808 11063//9807 10124//8868 10103//8847 +f 11063//9807 11064//9808 11065//9809 11066//9810 +f 11060//9804 11063//9807 11066//9810 11061//9805 +f 11067//9811 11002//9746 11004//9748 11058//9802 +f 11068//9812 11067//9811 11058//9802 11057//9801 +f 11067//9811 11068//9812 11014//9758 11013//9757 +f 11002//9746 11067//9811 11013//9757 10996//9740 +f 11069//9813 11068//9812 11057//9801 11062//9806 +f 11070//9814 11069//9813 11062//9806 11061//9805 +f 11069//9813 11070//9814 11071//9815 11072//9816 +f 11068//9812 11069//9813 11072//9816 11014//9758 +f 11073//9817 11074//9818 11075//9819 11076//9820 +f 11012//9756 11073//9817 11076//9820 11010//9754 +f 11073//9817 11012//9756 11014//9758 11072//9816 +f 11074//9818 11073//9817 11072//9816 11071//9815 +f 11077//9821 11078//9822 11079//9823 11080//9824 +f 11070//9814 11077//9821 11080//9824 11071//9815 +f 11077//9821 11070//9814 11061//9805 11066//9810 +f 11078//9822 11077//9821 11066//9810 11065//9809 +f 11081//9825 11082//9826 11083//9827 11084//9828 +f 11074//9818 11081//9825 11084//9828 11075//9819 +f 11081//9825 11074//9818 11071//9815 11080//9824 +f 11082//9826 11081//9825 11080//9824 11079//9823 +f 11085//9829 11006//9750 11010//9754 11076//9820 +f 11086//9830 11085//9829 11076//9820 11075//9819 +f 11085//9829 11086//9830 11087//9831 11088//9832 +f 11006//9750 11085//9829 11088//9832 11007//9751 +f 11089//9833 11086//9830 11075//9819 11084//9828 +f 11090//9834 11089//9833 11084//9828 11083//9827 +f 11089//9833 11090//9834 11091//9835 11092//9836 +f 11086//9830 11089//9833 11092//9836 11087//9831 +f 11093//9837 11016//9760 11007//9751 11088//9832 +f 11094//9838 11093//9837 11088//9832 11087//9831 +f 11093//9837 11094//9838 11095//9839 11096//9840 +f 11016//9760 11093//9837 11096//9840 11017//9761 +f 11097//9841 11094//9838 11087//9831 11092//9836 +f 11098//9842 11097//9841 11092//9836 11091//9835 +f 11097//9841 11098//9842 11099//9843 11100//9844 +f 11094//9838 11097//9841 11100//9844 11095//9839 +f 11101//9845 11024//9768 11017//9761 11096//9840 +f 11102//9846 11101//9845 11096//9840 11095//9839 +f 11101//9845 11102//9846 11103//9847 11104//9848 +f 11024//9768 11101//9845 11104//9848 11025//9769 +f 11105//9849 11102//9846 11095//9839 11100//9844 +f 11106//9850 11105//9849 11100//9844 11099//9843 +f 11105//9849 11106//9850 11107//9851 11108//9852 +f 11102//9846 11105//9849 11108//9852 11103//9847 +f 11109//9853 11110//9854 11111//9855 11112//9856 +f 11098//9842 11109//9853 11112//9856 11099//9843 +f 11109//9853 11098//9842 11091//9835 11113//9857 +f 11110//9854 11109//9853 11113//9857 11114//9858 +f 11115//9859 11116//9860 11117//9861 11118//9862 +f 11106//9850 11115//9859 11118//9862 11107//9851 +f 11115//9859 11106//9850 11099//9843 11112//9856 +f 11116//9860 11115//9859 11112//9856 11111//9855 +f 11119//9863 11120//9864 11103//9847 11108//9852 +f 11121//9865 11119//9863 11108//9852 11107//9851 +f 11119//9863 11121//9865 11122//9866 11123//9867 +f 11120//9864 11119//9863 11123//9867 11124//9868 +f 11125//9869 11126//9870 11114//9858 11113//9857 +f 11090//9834 11125//9869 11113//9857 11091//9835 +f 11125//9869 11090//9834 11083//9827 11127//9871 +f 11126//9870 11125//9869 11127//9871 11128//9872 +f 11129//9873 11130//9874 11025//9769 11104//9848 +f 11120//9864 11129//9873 11104//9848 11103//9847 +f 11129//9873 11120//9864 11124//9868 11131//9875 +f 11130//9874 11129//9873 11131//9875 11132//9876 +f 11133//9877 11134//9878 11128//9872 11127//9871 +f 11082//9826 11133//9877 11127//9871 11083//9827 +f 11133//9877 11082//9826 11079//9823 11135//9879 +f 11134//9878 11133//9877 11135//9879 11136//9880 +f 11137//9881 10970//9714 10972//9716 11026//9770 +f 11130//9874 11137//9881 11026//9770 11025//9769 +f 11137//9881 11130//9874 11132//9876 11138//9882 +f 10970//9714 11137//9881 11138//9882 10776//9520 +f 11139//9883 10780//9524 10766//9510 10777//9521 +f 11138//9882 11139//9883 10777//9521 10776//9520 +f 11139//9883 11138//9882 11132//9876 11140//9884 +f 10780//9524 11139//9883 11140//9884 10781//9525 +f 11141//9885 11142//9886 10781//9525 11140//9884 +f 11131//9875 11141//9885 11140//9884 11132//9876 +f 11141//9885 11131//9875 11124//9868 11143//9887 +f 11142//9886 11141//9885 11143//9887 11144//9888 +f 11145//9889 11146//9890 11144//9888 11143//9887 +f 11123//9867 11145//9889 11143//9887 11124//9868 +f 11145//9889 11123//9867 11122//9866 11147//9891 +f 11146//9890 11145//9889 11147//9891 9689//8433 +f 11148//9892 11149//9893 10783//9527 10782//9526 +f 11142//9886 11148//9892 10782//9526 10781//9525 +f 11148//9892 11142//9886 11144//9888 11150//9894 +f 11149//9893 11148//9892 11150//9894 9679//8423 +f 11151//9895 9677//8421 9679//8423 11150//9894 +f 11146//9890 11151//9895 11150//9894 11144//9888 +f 11151//9895 11146//9890 9689//8433 9688//8432 +f 9677//8421 11151//9895 9688//8432 9675//8419 +f 11152//9896 11153//9897 10791//9535 10790//9534 +f 11149//9893 11152//9896 10790//9534 10783//9527 +f 11152//9896 11149//9893 9679//8423 9678//8422 +f 11153//9897 11152//9896 9678//8422 9667//8411 +f 11154//9898 9661//8405 9663//8407 11155//9899 +f 11153//9897 11154//9898 11155//9899 10791//9535 +f 11154//9898 11153//9897 9667//8411 9666//8410 +f 9661//8405 11154//9898 9666//8410 9649//8393 +f 11156//9900 10789//9533 10791//9535 11155//9899 +f 11157//9901 11156//9900 11155//9899 9663//8407 +f 11156//9900 11157//9901 10755//9499 10754//9498 +f 10789//9533 11156//9900 10754//9498 10753//9497 +f 11158//9902 9655//8399 9659//8403 11159//9903 +f 11157//9901 11158//9902 11159//9903 10755//9499 +f 11158//9902 11157//9901 9663//8407 9662//8406 +f 9655//8399 11158//9902 9662//8406 9645//8389 +f 11160//9904 10751//9495 10755//9499 11159//9903 +f 11161//9905 11160//9904 11159//9903 9659//8403 +f 11160//9904 11161//9905 10741//9485 10740//9484 +f 10751//9495 11160//9904 10740//9484 10739//9483 +f 11162//9906 11163//9907 11164//9908 11165//9909 +f 10737//9481 11162//9906 11165//9909 10735//9479 +f 11162//9906 10737//9481 10741//9485 11166//9910 +f 11163//9907 11162//9906 11166//9910 11167//9911 +f 11168//9912 10733//9477 10735//9479 11165//9909 +f 11169//9913 11168//9912 11165//9909 11164//9908 +f 11168//9912 11169//9913 10727//9471 10726//9470 +f 10733//9477 11168//9912 10726//9470 10703//9447 +f 11170//9914 9687//8431 9689//8433 11147//9891 +f 11171//9915 11170//9914 11147//9891 11122//9866 +f 11170//9914 11171//9915 11172//9916 11173//9917 +f 9687//8431 11170//9914 11173//9917 9685//8429 +f 11174//9918 11175//9919 11172//9916 11171//9915 +f 11121//9865 11174//9918 11171//9915 11122//9866 +f 11174//9918 11121//9865 11107//9851 11118//9862 +f 11175//9919 11174//9918 11118//9862 11117//9861 +f 11176//9920 9681//8425 9685//8429 11173//9917 +f 11177//9921 11176//9920 11173//9917 11172//9916 +f 11176//9920 11177//9921 9701//8445 9700//8444 +f 9681//8425 11176//9920 9700//8444 9682//8426 +f 11178//9922 11179//9923 9701//8445 11177//9921 +f 11175//9919 11178//9922 11177//9921 11172//9916 +f 11178//9922 11175//9919 11117//9861 11180//9924 +f 11179//9923 11178//9922 11180//9924 11181//9925 +f 11182//9926 9725//8469 9698//8442 9697//8441 +f 11179//9923 11182//9926 9697//8441 9701//8445 +f 11182//9926 11179//9923 11181//9925 11183//9927 +f 9725//8469 11182//9926 11183//9927 9726//8470 +f 11184//9928 11185//9929 11181//9925 11180//9924 +f 11116//9860 11184//9928 11180//9924 11117//9861 +f 11184//9928 11116//9860 11111//9855 11186//9930 +f 11185//9929 11184//9928 11186//9930 11187//9931 +f 11188//9932 11189//9933 9726//8470 11183//9927 +f 11185//9929 11188//9932 11183//9927 11181//9925 +f 11188//9932 11185//9929 11187//9931 11190//9934 +f 11189//9933 11188//9932 11190//9934 11191//9935 +f 11192//9936 11193//9937 11187//9931 11186//9930 +f 11110//9854 11192//9936 11186//9930 11111//9855 +f 11192//9936 11110//9854 11114//9858 11194//9938 +f 11193//9937 11192//9936 11194//9938 11195//9939 +f 11196//9940 11197//9941 9715//8459 9727//8471 +f 11189//9933 11196//9940 9727//8471 9726//8470 +f 11196//9940 11189//9933 11191//9935 11198//9942 +f 11197//9941 11196//9940 11198//9942 11199//9943 +f 11200//9944 11201//9945 11191//9935 11190//9934 +f 11193//9937 11200//9944 11190//9934 11187//9931 +f 11200//9944 11193//9937 11195//9939 11202//9946 +f 11201//9945 11200//9944 11202//9946 11203//9947 +f 11204//9948 11205//9949 11195//9939 11194//9938 +f 11126//9870 11204//9948 11194//9938 11114//9858 +f 11204//9948 11126//9870 11128//9872 11206//9950 +f 11205//9949 11204//9948 11206//9950 11207//9951 +f 11208//9952 11209//9953 9717//8461 9716//8460 +f 11197//9941 11208//9952 9716//8460 9715//8459 +f 11208//9952 11197//9941 11199//9943 11210//9954 +f 11209//9953 11208//9952 11210//9954 11211//9955 +f 11212//9956 11213//9957 11199//9943 11198//9942 +f 11201//9945 11212//9956 11198//9942 11191//9935 +f 11212//9956 11201//9945 11203//9947 11214//9958 +f 11213//9957 11212//9956 11214//9958 11215//9959 +f 11216//9960 11217//9961 11203//9947 11202//9946 +f 11205//9949 11216//9960 11202//9946 11195//9939 +f 11216//9960 11205//9949 11207//9951 11218//9962 +f 11217//9961 11216//9960 11218//9962 11219//9963 +f 11220//9964 9741//8485 9720//8464 9723//8467 +f 11209//9953 11220//9964 9723//8467 9717//8461 +f 11220//9964 11209//9953 11211//9955 11221//9965 +f 9741//8485 11220//9964 11221//9965 9742//8486 +f 11222//9966 11223//9967 11211//9955 11210//9954 +f 11213//9957 11222//9966 11210//9954 11199//9943 +f 11222//9966 11213//9957 11215//9959 11224//9968 +f 11223//9967 11222//9966 11224//9968 9773//8517 +f 11225//9969 9757//8501 9742//8486 11221//9965 +f 11223//9967 11225//9969 11221//9965 11211//9955 +f 11225//9969 11223//9967 9773//8517 9772//8516 +f 9757//8501 11225//9969 9772//8516 9758//8502 +f 11226//9970 11227//9971 9893//8637 9892//8636 +f 9769//8513 11226//9970 9892//8636 9770//8514 +f 11226//9970 9769//8513 9773//8517 11224//9968 +f 11227//9971 11226//9970 11224//9968 11215//9959 +f 11228//9972 11227//9971 11215//9959 11214//9958 +f 11217//9961 11228//9972 11214//9958 11203//9947 +f 11228//9972 11217//9961 11219//9963 11229//9973 +f 11227//9971 11228//9972 11229//9973 9893//8637 +f 11230//9974 11231//9975 9903//8647 9902//8646 +f 9891//8635 11230//9974 9902//8646 9889//8633 +f 11230//9974 9891//8635 9893//8637 11229//9973 +f 11231//9975 11230//9974 11229//9973 11219//9963 +f 11232//9976 11233//9977 10099//8843 10098//8842 +f 9901//8645 11232//9976 10098//8842 9899//8643 +f 11232//9976 9901//8645 9903//8647 11234//9978 +f 11233//9977 11232//9976 11234//9978 11235//9979 +f 11236//9980 11237//9981 11235//9979 11234//9978 +f 11231//9975 11236//9980 11234//9978 9903//8647 +f 11236//9980 11231//9975 11219//9963 11218//9962 +f 11237//9981 11236//9980 11218//9962 11207//9951 +f 11238//9982 11239//9983 10107//8851 10106//8850 +f 11233//9977 11238//9982 10106//8850 10099//8843 +f 11238//9982 11233//9977 11235//9979 11240//9984 +f 11239//9983 11238//9982 11240//9984 11136//9880 +f 11241//9985 11064//9808 10103//8847 10102//8846 +f 10105//8849 11241//9985 10102//8846 10095//8839 +f 11241//9985 10105//8849 10107//8851 11242//9986 +f 11064//9808 11241//9985 11242//9986 11065//9809 +f 11243//9987 11134//9878 11136//9880 11240//9984 +f 11237//9981 11243//9987 11240//9984 11235//9979 +f 11243//9987 11237//9981 11207//9951 11206//9950 +f 11134//9878 11243//9987 11206//9950 11128//9872 +f 11244//9988 11078//9822 11065//9809 11242//9986 +f 11239//9983 11244//9988 11242//9986 10107//8851 +f 11244//9988 11239//9983 11136//9880 11135//9879 +f 11078//9822 11244//9988 11135//9879 11079//9823 +f 11245//9989 11246//9990 10618//9362 10617//9361 +f 10624//9368 11245//9989 10617//9361 10614//9358 +f 11245//9989 10624//9368 10628//9372 10646//9390 +f 11246//9990 11245//9989 10646//9390 10645//9389 +f 11247//9991 11248//9992 10622//9366 10621//9365 +f 11246//9990 11247//9991 10621//9365 10618//9362 +f 11247//9991 11246//9990 10645//9389 11249//9993 +f 11248//9992 11247//9991 11249//9993 11250//9994 +f 11251//9995 11252//9996 11250//9994 11249//9993 +f 10644//9388 11251//9995 11249//9993 10645//9389 +f 11251//9995 10644//9388 10648//9392 11253//9997 +f 11252//9996 11251//9995 11253//9997 11254//9998 +f 11255//9999 11256//10000 11254//9998 11253//9997 +f 10650//9394 11255//9999 11253//9997 10648//9392 +f 11255//9999 10650//9394 10654//9398 10731//9475 +f 11256//10000 11255//9999 10731//9475 10730//9474 +f 11257//10001 11258//10002 10464//9208 10469//9213 +f 11259//10003 11257//10001 10469//9213 10468//9212 +f 11257//10001 11259//10003 10302//9046 10301//9045 +f 11258//10002 11257//10001 10301//9045 10298//9042 +f 11260//10004 10308//9052 10312//9056 10465//9209 +f 11258//10002 11260//10004 10465//9209 10464//9208 +f 11260//10004 11258//10002 10298//9042 10296//9040 +f 10308//9052 11260//10004 10296//9040 10295//9039 +f 11261//10005 11262//10006 9515//8259 9514//8258 +f 9495//8239 11261//10005 9514//8258 9496//8240 +f 11261//10005 9495//8239 9433//8177 11263//10007 +f 11262//10006 11261//10005 11263//10007 11264//10008 +f 11265//10009 11266//10010 11267//10011 11268//10012 +f 11269//10013 11265//10009 11268//10012 9439//8183 +f 11265//10009 11269//10013 11270//10014 11271//10015 +f 11266//10010 11265//10009 11271//10015 11272//10016 +f 11273//10017 11274//10018 11275//10019 11276//10020 +f 11269//10013 11273//10017 11276//10020 11270//10014 +f 11273//10017 11269//10013 9439//8183 9438//8182 +f 11274//10018 11273//10017 9438//8182 9437//8181 +f 11277//10021 11278//10022 11279//10023 11280//10024 +f 11274//10018 11277//10021 11280//10024 11275//10019 +f 11277//10021 11274//10018 9437//8181 9479//8223 +f 11278//10022 11277//10021 9479//8223 9478//8222 +f 11281//10025 11282//10026 11283//10027 11284//10028 +f 11278//10022 11281//10025 11284//10028 11279//10023 +f 11281//10025 11278//10022 9478//8222 9485//8229 +f 11282//10026 11281//10025 9485//8229 9484//8228 +f 11285//10029 11286//10030 11287//10031 11288//10032 +f 11282//10026 11285//10029 11288//10032 11283//10027 +f 11285//10029 11282//10026 9484//8228 9501//8245 +f 11286//10030 11285//10029 9501//8245 9500//8244 +f 11289//10033 11290//10034 11291//10035 11292//10036 +f 11286//10030 11289//10033 11292//10036 11287//10031 +f 11289//10033 11286//10030 9500//8244 9555//8299 +f 11290//10034 11289//10033 9555//8299 9554//8298 +f 11293//10037 11294//10038 11291//10035 11290//10034 +f 9567//8311 11293//10037 11290//10034 9554//8298 +f 11293//10037 9567//8311 9571//8315 11295//10039 +f 11294//10038 11293//10037 11295//10039 11296//10040 +f 11297//10041 11298//10042 11296//10040 11295//10039 +f 9729//8473 11297//10041 11295//10039 9571//8315 +f 11297//10041 9729//8473 9733//8477 11299//10043 +f 11298//10042 11297//10041 11299//10043 11300//10044 +f 11301//10045 11302//10046 11300//10044 11299//10043 +f 9735//8479 11301//10045 11299//10043 9733//8477 +f 11301//10045 9735//8479 9739//8483 11303//10047 +f 11302//10046 11301//10045 11303//10047 11304//10048 +f 11305//10049 11306//10050 11304//10048 11303//10047 +f 9745//8489 11305//10049 11303//10047 9739//8483 +f 11305//10049 9745//8489 9749//8493 11307//10051 +f 11306//10050 11305//10049 11307//10051 11308//10052 +f 11309//10053 11310//10054 11308//10052 11307//10051 +f 9751//8495 11309//10053 11307//10051 9749//8493 +f 11309//10053 9751//8495 9755//8499 11311//10055 +f 11310//10054 11309//10053 11311//10055 11312//10056 +f 11313//10057 11314//10058 11312//10056 11311//10055 +f 9779//8523 11313//10057 11311//10055 9755//8499 +f 11313//10057 9779//8523 9783//8527 11315//10059 +f 11314//10058 11313//10057 11315//10059 11316//10060 +f 11317//10061 11318//10062 11316//10060 11315//10059 +f 9785//8529 11317//10061 11315//10059 9783//8527 +f 11317//10061 9785//8529 9789//8533 11319//10063 +f 11318//10062 11317//10061 11319//10063 11320//10064 +f 11321//10065 11322//10066 11320//10064 11319//10063 +f 9795//8539 11321//10065 11319//10063 9789//8533 +f 11321//10065 9795//8539 9799//8543 11323//10067 +f 11322//10066 11321//10065 11323//10067 11324//10068 +f 11325//10069 11326//10070 11324//10068 11323//10067 +f 9805//8549 11325//10069 11323//10067 9799//8543 +f 11325//10069 9805//8549 9809//8553 11327//10071 +f 11326//10070 11325//10069 11327//10071 11328//10072 +f 11329//10073 11330//10074 11331//10075 11332//10076 +f 11327//10071 11329//10073 11332//10076 11328//10072 +f 11329//10073 11327//10071 9809//8553 9817//8561 +f 11330//10074 11329//10073 9817//8561 9816//8560 +f 11333//10077 11334//10078 11335//10079 11336//10080 +f 11330//10074 11333//10077 11336//10080 11331//10075 +f 11333//10077 11330//10074 9816//8560 9831//8575 +f 11334//10078 11333//10077 9831//8575 9830//8574 +f 11337//10081 11338//10082 11339//10083 11340//10084 +f 11334//10078 11337//10081 11340//10084 11335//10079 +f 11337//10081 11334//10078 9830//8574 9835//8579 +f 11338//10082 11337//10081 9835//8579 9454//8198 +f 11341//10085 11342//10086 11343//10087 11344//10088 +f 11338//10082 11341//10085 11344//10088 11339//10083 +f 11341//10085 11338//10082 9454//8198 9452//8196 +f 11342//10086 11341//10085 9452//8196 9451//8195 +f 11345//10089 11346//10090 11347//10091 11348//10092 +f 11342//10086 11345//10089 11348//10092 11343//10087 +f 11345//10089 11342//10086 9451//8195 11349//10093 +f 11346//10090 11345//10089 11349//10093 11350//10094 +f 11351//10095 11352//10096 11353//10097 11354//10098 +f 11346//10090 11351//10095 11354//10098 11347//10091 +f 11351//10095 11346//10090 11350//10094 11355//10099 +f 11352//10096 11351//10095 11355//10099 11356//10100 +f 11357//10101 11358//10102 9956//8700 9963//8707 +f 11359//10103 11357//10101 9963//8707 9962//8706 +f 11357//10101 11359//10103 11356//10100 11355//10099 +f 11358//10102 11357//10101 11355//10099 11350//10094 +f 11360//10104 9450//8194 9457//8201 9957//8701 +f 11358//10102 11360//10104 9957//8701 9956//8700 +f 11360//10104 11358//10102 11350//10094 11349//10093 +f 9450//8194 11360//10104 11349//10093 9451//8195 +f 11361//10105 11161//9905 9659//8403 9658//8402 +f 11362//10106 11361//10105 9658//8402 9657//8401 +f 11361//10105 11362//10106 11167//9911 11166//9910 +f 11161//9905 11361//10105 11166//9910 10741//9485 +f 11363//10107 9432//8176 9439//8183 11268//10012 +f 11364//10108 11363//10107 11268//10012 11267//10011 +f 11363//10107 11364//10108 11264//10008 11263//10007 +f 9432//8176 11363//10107 11263//10007 9433//8177 +f 11365//10109 9839//8583 9833//8577 9832//8576 +f 9825//8569 11365//10109 9832//8576 9819//8563 +f 11365//10109 9825//8569 9827//8571 9855//8599 +f 9839//8583 11365//10109 9855//8599 9840//8584 +f 11366//10110 11367//10111 11368//10112 11369//10113 +f 11370//10114 11366//10110 11369//10113 11371//10115 +f 11366//10110 11370//10114 11372//10116 11373//10117 +f 11367//10111 11366//10110 11373//10117 11374//10118 +f 11375//10119 11376//10120 11377//10121 11378//10122 +f 11379//10123 11375//10119 11378//10122 11380//10124 +f 11375//10119 11379//10123 11381//10125 11382//10126 +f 11376//10120 11375//10119 11382//10126 11383//10127 +f 11384//10128 11385//10129 11386//10130 11387//10131 +f 11388//10132 11384//10128 11387//10131 11389//10133 +f 11384//10128 11388//10132 11390//10134 11391//10135 +f 11385//10129 11384//10128 11391//10135 11392//10136 +f 11393//10137 11394//10138 11395//10139 11396//10140 +f 11397//10141 11393//10137 11396//10140 11398//10142 +f 11393//10137 11397//10141 11399//10143 11400//10144 +f 11394//10138 11393//10137 11400//10144 11401//10145 +f 11402//10146 11403//10147 11404//10148 11405//10149 +f 11406//10150 11402//10146 11405//10149 11407//10151 +f 11402//10146 11406//10150 11408//10152 11409//10153 +f 11403//10147 11402//10146 11409//10153 11410//10154 +f 11411//10155 11412//10156 11413//10157 11414//10158 +f 11370//10114 11411//10155 11414//10158 11372//10116 +f 11411//10155 11370//10114 11371//10115 11415//10159 +f 11412//10156 11411//10155 11415//10159 11416//10160 +f 11417//10161 11418//10162 11419//10163 11420//10164 +f 11412//10156 11417//10161 11420//10164 11413//10157 +f 11417//10161 11412//10156 11416//10160 11421//10165 +f 11418//10162 11417//10161 11421//10165 11422//10166 +f 11423//10167 11424//10168 11416//10160 11415//10159 +f 11425//10169 11423//10167 11415//10159 11371//10115 +f 11423//10167 11425//10169 11426//10170 11427//10171 +f 11424//10168 11423//10167 11427//10171 11428//10172 +f 11429//10173 11430//10174 11431//10175 11432//10176 +f 11425//10169 11429//10173 11432//10176 11426//10170 +f 11429//10173 11425//10169 11371//10115 11369//10113 +f 11430//10174 11429//10173 11369//10113 11368//10112 +f 11433//10177 11434//10178 11435//10179 11436//10180 +f 11418//10162 11433//10177 11436//10180 11419//10163 +f 11433//10177 11418//10162 11422//10166 11437//10181 +f 11434//10178 11433//10177 11437//10181 11438//10182 +f 11439//10183 11440//10184 11426//10170 11432//10176 +f 11441//10185 11439//10183 11432//10176 11431//10175 +f 11439//10183 11441//10185 11442//10186 11443//10187 +f 11440//10184 11439//10183 11443//10187 11444//10188 +f 11445//10189 11446//10190 11447//10191 11448//10192 +f 11441//10185 11445//10189 11448//10192 11442//10186 +f 11445//10189 11441//10185 11431//10175 11449//10193 +f 11446//10190 11445//10189 11449//10193 11450//10194 +f 11451//10195 11452//10196 11442//10186 11448//10192 +f 11453//10197 11451//10195 11448//10192 11447//10191 +f 11451//10195 11453//10197 11454//10198 11455//10199 +f 11452//10196 11451//10195 11455//10199 11456//10200 +f 11457//10201 11458//10202 11456//10200 11455//10199 +f 11459//10203 11457//10201 11455//10199 11454//10198 +f 11457//10201 11459//10203 11460//10204 11461//10205 +f 11458//10202 11457//10201 11461//10205 11462//10206 +f 11463//10207 11464//10208 11444//10188 11443//10187 +f 11452//10196 11463//10207 11443//10187 11442//10186 +f 11463//10207 11452//10196 11456//10200 11465//10209 +f 11464//10208 11463//10207 11465//10209 11466//10210 +f 11467//10211 11468//10212 11428//10172 11427//10171 +f 11440//10184 11467//10211 11427//10171 11426//10170 +f 11467//10211 11440//10184 11444//10188 11469//10213 +f 11468//10212 11467//10211 11469//10213 11470//10214 +f 11471//10215 11472//10216 11422//10166 11421//10165 +f 11424//10168 11471//10215 11421//10165 11416//10160 +f 11471//10215 11424//10168 11428//10172 11473//10217 +f 11472//10216 11471//10215 11473//10217 11474//10218 +f 11475//10219 11476//10220 11438//10182 11437//10181 +f 11472//10216 11475//10219 11437//10181 11422//10166 +f 11475//10219 11472//10216 11474//10218 11477//10221 +f 11476//10220 11475//10219 11477//10221 11478//10222 +f 11479//10223 11480//10224 11474//10218 11473//10217 +f 11468//10212 11479//10223 11473//10217 11428//10172 +f 11479//10223 11468//10212 11470//10214 11481//10225 +f 11480//10224 11479//10223 11481//10225 11482//10226 +f 11483//10227 11484//10228 11470//10214 11469//10213 +f 11464//10208 11483//10227 11469//10213 11444//10188 +f 11483//10227 11464//10208 11466//10210 11485//10229 +f 11484//10228 11483//10227 11485//10229 11486//10230 +f 11487//10231 11488//10232 11489//10233 11490//10234 +f 11434//10178 11487//10231 11490//10234 11435//10179 +f 11487//10231 11434//10178 11438//10182 11491//10235 +f 11488//10232 11487//10231 11491//10235 11492//10236 +f 11493//10237 11494//10238 11492//10236 11491//10235 +f 11476//10220 11493//10237 11491//10235 11438//10182 +f 11493//10237 11476//10220 11478//10222 11495//10239 +f 11494//10238 11493//10237 11495//10239 11496//10240 +f 11497//10241 11498//10242 11478//10222 11477//10221 +f 11480//10224 11497//10241 11477//10221 11474//10218 +f 11497//10241 11480//10224 11482//10226 11499//10243 +f 11498//10242 11497//10241 11499//10243 11500//10244 +f 11501//10245 11502//10246 11489//10233 11488//10232 +f 11503//10247 11501//10245 11488//10232 11492//10236 +f 11501//10245 11503//10247 11504//10248 11505//10249 +f 11502//10246 11501//10245 11505//10249 11506//10250 +f 11507//10251 11508//10252 11482//10226 11481//10225 +f 11484//10228 11507//10251 11481//10225 11470//10214 +f 11507//10251 11484//10228 11486//10230 11509//10253 +f 11508//10252 11507//10251 11509//10253 11510//10254 +f 11511//10255 11512//10256 11466//10210 11465//10209 +f 11458//10202 11511//10255 11465//10209 11456//10200 +f 11511//10255 11458//10202 11462//10206 11513//10257 +f 11512//10256 11511//10255 11513//10257 11514//10258 +f 11515//10259 11516//10260 11517//10261 11518//10262 +f 11519//10263 11515//10259 11518//10262 11520//10264 +f 11515//10259 11519//10263 11462//10206 11461//10205 +f 11516//10260 11515//10259 11461//10205 11460//10204 +f 11521//10265 11522//10266 11520//10264 11518//10262 +f 11523//10267 11521//10265 11518//10262 11517//10261 +f 11521//10265 11523//10267 11524//10268 11525//10269 +f 11522//10266 11521//10265 11525//10269 11526//10270 +f 11527//10271 11528//10272 11514//10258 11513//10257 +f 11519//10263 11527//10271 11513//10257 11462//10206 +f 11527//10271 11519//10263 11520//10264 11529//10273 +f 11528//10272 11527//10271 11529//10273 11530//10274 +f 11531//10275 11532//10276 11486//10230 11485//10229 +f 11512//10256 11531//10275 11485//10229 11466//10210 +f 11531//10275 11512//10256 11514//10258 11533//10277 +f 11532//10276 11531//10275 11533//10277 11534//10278 +f 11535//10279 11536//10280 11500//10244 11499//10243 +f 11508//10252 11535//10279 11499//10243 11482//10226 +f 11535//10279 11508//10252 11510//10254 11537//10281 +f 11536//10280 11535//10279 11537//10281 11538//10282 +f 11539//10283 11540//10284 11510//10254 11509//10253 +f 11532//10276 11539//10283 11509//10253 11486//10230 +f 11539//10283 11532//10276 11534//10278 11541//10285 +f 11540//10284 11539//10283 11541//10285 11542//10286 +f 11543//10287 11544//10288 11534//10278 11533//10277 +f 11528//10272 11543//10287 11533//10277 11514//10258 +f 11543//10287 11528//10272 11530//10274 11545//10289 +f 11544//10288 11543//10287 11545//10289 11546//10290 +f 11547//10291 11548//10292 11530//10274 11529//10273 +f 11522//10266 11547//10291 11529//10273 11520//10264 +f 11547//10291 11522//10266 11526//10270 11549//10293 +f 11548//10292 11547//10291 11549//10293 11550//10294 +f 11551//10295 11552//10296 11542//10286 11541//10285 +f 11544//10288 11551//10295 11541//10285 11534//10278 +f 11551//10295 11544//10288 11546//10290 11553//10297 +f 11552//10296 11551//10295 11553//10297 11554//10298 +f 11555//10299 11556//10300 11546//10290 11545//10289 +f 11548//10292 11555//10299 11545//10289 11530//10274 +f 11555//10299 11548//10292 11550//10294 11557//10301 +f 11556//10300 11555//10299 11557//10301 11558//10302 +f 11559//10303 11560//10304 11550//10294 11549//10293 +f 11561//10305 11559//10303 11549//10293 11526//10270 +f 11559//10303 11561//10305 11562//10306 11563//10307 +f 11560//10304 11559//10303 11563//10307 11564//10308 +f 11565//10309 11566//10310 11567//10311 11568//10312 +f 11561//10305 11565//10309 11568//10312 11562//10306 +f 11565//10309 11561//10305 11526//10270 11525//10269 +f 11566//10310 11565//10309 11525//10269 11524//10268 +f 11569//10313 11570//10314 11562//10306 11568//10312 +f 11571//10315 11569//10313 11568//10312 11567//10311 +f 11569//10313 11571//10315 11572//10316 11573//10317 +f 11570//10314 11569//10313 11573//10317 11574//10318 +f 11575//10319 11576//10320 11574//10318 11573//10317 +f 11577//10321 11575//10319 11573//10317 11572//10316 +f 11575//10319 11577//10321 11578//10322 11579//10323 +f 11576//10320 11575//10319 11579//10323 11580//10324 +f 11581//10325 11582//10326 11564//10308 11563//10307 +f 11570//10314 11581//10325 11563//10307 11562//10306 +f 11581//10325 11570//10314 11574//10318 11583//10327 +f 11582//10326 11581//10325 11583//10327 11584//10328 +f 11585//10329 11586//10330 11558//10302 11557//10301 +f 11560//10304 11585//10329 11557//10301 11550//10294 +f 11585//10329 11560//10304 11564//10308 11587//10331 +f 11586//10330 11585//10329 11587//10331 11588//10332 +f 11589//10333 11590//10334 11580//10324 11579//10323 +f 11591//10335 11589//10333 11579//10323 11578//10322 +f 11589//10333 11591//10335 11592//10336 11593//10337 +f 11590//10334 11589//10333 11593//10337 11594//10338 +f 11595//10339 11596//10340 11584//10328 11583//10327 +f 11576//10320 11595//10339 11583//10327 11574//10318 +f 11595//10339 11576//10320 11580//10324 11597//10341 +f 11596//10340 11595//10339 11597//10341 11598//10342 +f 11599//10343 11600//10344 11588//10332 11587//10331 +f 11582//10326 11599//10343 11587//10331 11564//10308 +f 11599//10343 11582//10326 11584//10328 11601//10345 +f 11600//10344 11599//10343 11601//10345 11602//10346 +f 11603//10347 11604//10348 11554//10298 11553//10297 +f 11556//10300 11603//10347 11553//10297 11546//10290 +f 11603//10347 11556//10300 11558//10302 11605//10349 +f 11604//10348 11603//10347 11605//10349 11606//10350 +f 11607//10351 11608//10352 11606//10350 11605//10349 +f 11586//10330 11607//10351 11605//10349 11558//10302 +f 11607//10351 11586//10330 11588//10332 11609//10353 +f 11608//10352 11607//10351 11609//10353 11610//10354 +f 11611//10355 11612//10356 11610//10354 11609//10353 +f 11600//10344 11611//10355 11609//10353 11588//10332 +f 11611//10355 11600//10344 11602//10346 11613//10357 +f 11612//10356 11611//10355 11613//10357 11614//10358 +f 11615//10359 11616//10360 11617//10361 11618//10362 +f 11604//10348 11615//10359 11618//10362 11554//10298 +f 11615//10359 11604//10348 11606//10350 11619//10363 +f 11616//10360 11615//10359 11619//10363 11620//10364 +f 11621//10365 11622//10366 11620//10364 11619//10363 +f 11608//10352 11621//10365 11619//10363 11606//10350 +f 11621//10365 11608//10352 11610//10354 11623//10367 +f 11622//10366 11621//10365 11623//10367 11624//10368 +f 11625//10369 11626//10370 11627//10371 11628//10372 +f 11552//10296 11625//10369 11628//10372 11542//10286 +f 11625//10369 11552//10296 11554//10298 11618//10362 +f 11626//10370 11625//10369 11618//10362 11617//10361 +f 11629//10373 11540//10284 11542//10286 11628//10372 +f 11630//10374 11629//10373 11628//10372 11627//10371 +f 11629//10373 11630//10374 11538//10282 11537//10281 +f 11540//10284 11629//10373 11537//10281 11510//10254 +f 11631//10375 11632//10376 11633//10377 11634//10378 +f 11626//10370 11631//10375 11634//10378 11627//10371 +f 11631//10375 11626//10370 11617//10361 11635//10379 +f 11632//10376 11631//10375 11635//10379 11636//10380 +f 11637//10381 11638//10382 11639//10383 11640//10384 +f 11630//10374 11637//10381 11640//10384 11538//10282 +f 11637//10381 11630//10374 11627//10371 11634//10378 +f 11638//10382 11637//10381 11634//10378 11633//10377 +f 11641//10385 11642//10386 11643//10387 11644//10388 +f 11536//10280 11641//10385 11644//10388 11500//10244 +f 11641//10385 11536//10280 11538//10282 11640//10384 +f 11642//10386 11641//10385 11640//10384 11639//10383 +f 11645//10389 11498//10242 11500//10244 11644//10388 +f 11646//10390 11645//10389 11644//10388 11643//10387 +f 11645//10389 11646//10390 11496//10240 11495//10239 +f 11498//10242 11645//10389 11495//10239 11478//10222 +f 11647//10391 11648//10392 11643//10387 11642//10386 +f 11649//10393 11647//10391 11642//10386 11639//10383 +f 11647//10391 11649//10393 11650//10394 11651//10395 +f 11648//10392 11647//10391 11651//10395 11652//10396 +f 11653//10397 11503//10247 11492//10236 11494//10238 +f 11654//10398 11653//10397 11494//10238 11496//10240 +f 11653//10397 11654//10398 11655//10399 11656//10400 +f 11503//10247 11653//10397 11656//10400 11504//10248 +f 11657//10401 11654//10398 11496//10240 11646//10390 +f 11648//10392 11657//10401 11646//10390 11643//10387 +f 11657//10401 11648//10392 11652//10396 11658//10402 +f 11654//10398 11657//10401 11658//10402 11655//10399 +f 11659//10403 11660//10404 11661//10405 11662//10406 +f 11649//10393 11659//10403 11662//10406 11650//10394 +f 11659//10403 11649//10393 11639//10383 11638//10382 +f 11660//10404 11659//10403 11638//10382 11633//10377 +f 11663//10407 11664//10408 11506//10250 11505//10249 +f 11665//10409 11663//10407 11505//10249 11504//10248 +f 11663//10407 11665//10409 11666//10410 11667//10411 +f 11664//10408 11663//10407 11667//10411 11668//10412 +f 11669//10413 11670//10414 11668//10412 11667//10411 +f 11671//10415 11669//10413 11667//10411 11666//10410 +f 11669//10413 11671//10415 11672//10416 11673//10417 +f 11670//10414 11669//10413 11673//10417 11674//10418 +f 11675//10419 11676//10420 11677//10421 11678//10422 +f 11665//10409 11675//10419 11678//10422 11666//10410 +f 11675//10419 11665//10409 11504//10248 11656//10400 +f 11676//10420 11675//10419 11656//10400 11655//10399 +f 11679//10423 11680//10424 11674//10418 11673//10417 +f 11681//10425 11679//10423 11673//10417 11672//10416 +f 11679//10423 11681//10425 11682//10426 11683//10427 +f 11680//10424 11679//10423 11683//10427 11684//10428 +f 11685//10429 11686//10430 11684//10428 11683//10427 +f 11687//10431 11685//10429 11683//10427 11682//10426 +f 11685//10429 11687//10431 11688//10432 11689//10433 +f 11686//10430 11685//10429 11689//10433 11690//10434 +f 11691//10435 11692//10436 11693//10437 11694//10438 +f 11671//10415 11691//10435 11694//10438 11672//10416 +f 11691//10435 11671//10415 11666//10410 11678//10422 +f 11692//10436 11691//10435 11678//10422 11677//10421 +f 11695//10439 11696//10440 11697//10441 11698//10442 +f 11681//10425 11695//10439 11698//10442 11682//10426 +f 11695//10439 11681//10425 11672//10416 11694//10438 +f 11696//10440 11695//10439 11694//10438 11693//10437 +f 11699//10443 11687//10431 11682//10426 11698//10442 +f 11700//10444 11699//10443 11698//10442 11697//10441 +f 11699//10443 11700//10444 11701//10445 11702//10446 +f 11687//10431 11699//10443 11702//10446 11688//10432 +f 11703//10447 11704//10448 11705//10449 11706//10450 +f 11696//10440 11703//10447 11706//10450 11697//10441 +f 11703//10447 11696//10440 11693//10437 11707//10451 +f 11704//10448 11703//10447 11707//10451 11708//10452 +f 11709//10453 11700//10444 11697//10441 11706//10450 +f 11710//10454 11709//10453 11706//10450 11705//10449 +f 11709//10453 11710//10454 11711//10455 11712//10456 +f 11700//10444 11709//10453 11712//10456 11701//10445 +f 11713//10457 11714//10458 11690//10434 11689//10433 +f 11715//10459 11713//10457 11689//10433 11688//10432 +f 11713//10457 11715//10459 11716//10460 11717//10461 +f 11714//10458 11713//10457 11717//10461 11718//10462 +f 11719//10463 11720//10464 11718//10462 11717//10461 +f 11721//10465 11719//10463 11717//10461 11716//10460 +f 11719//10463 11721//10465 11722//10466 11723//10467 +f 11720//10464 11719//10463 11723//10467 11724//10468 +f 11725//10469 11715//10459 11688//10432 11702//10446 +f 11726//10470 11725//10469 11702//10446 11701//10445 +f 11725//10469 11726//10470 11727//10471 11728//10472 +f 11715//10459 11725//10469 11728//10472 11716//10460 +f 11729//10473 11730//10474 11724//10468 11723//10467 +f 11731//10475 11729//10473 11723//10467 11722//10466 +f 11729//10473 11731//10475 11732//10476 11733//10477 +f 11730//10474 11729//10473 11733//10477 11734//10478 +f 11735//10479 11721//10465 11716//10460 11728//10472 +f 11736//10480 11735//10479 11728//10472 11727//10471 +f 11735//10479 11736//10480 11737//10481 11738//10482 +f 11721//10465 11735//10479 11738//10482 11722//10466 +f 11739//10483 11740//10484 11734//10478 11733//10477 +f 11741//10485 11739//10483 11733//10477 11732//10476 +f 11739//10483 11741//10485 11742//10486 11743//10487 +f 11740//10484 11739//10483 11743//10487 11744//10488 +f 11745//10489 11731//10475 11722//10466 11738//10482 +f 11746//10490 11745//10489 11738//10482 11737//10481 +f 11745//10489 11746//10490 11747//10491 11748//10492 +f 11731//10475 11745//10489 11748//10492 11732//10476 +f 11749//10493 11750//10494 11751//10495 11752//10496 +f 11743//10487 11749//10493 11752//10496 11744//10488 +f 11749//10493 11743//10487 11742//10486 11753//10497 +f 11750//10494 11749//10493 11753//10497 11754//10498 +f 11755//10499 11756//10500 11757//10501 11758//10502 +f 11741//10485 11755//10499 11758//10502 11742//10486 +f 11755//10499 11741//10485 11732//10476 11748//10492 +f 11756//10500 11755//10499 11748//10492 11747//10491 +f 11759//10503 11760//10504 11754//10498 11753//10497 +f 11758//10502 11759//10503 11753//10497 11742//10486 +f 11759//10503 11758//10502 11757//10501 11761//10505 +f 11760//10504 11759//10503 11761//10505 11762//10506 +f 11763//10507 11764//10508 11765//10509 11766//10510 +f 11750//10494 11763//10507 11766//10510 11751//10495 +f 11763//10507 11750//10494 11754//10498 11767//10511 +f 11764//10508 11763//10507 11767//10511 11768//10512 +f 11769//10513 11388//10132 11389//10133 11770//10514 +f 11764//10508 11769//10513 11770//10514 11765//10509 +f 11769//10513 11764//10508 11768//10512 11771//10515 +f 11388//10132 11769//10513 11771//10515 11390//10134 +f 11772//10516 11773//10517 11390//10134 11771//10515 +f 11774//10518 11772//10516 11771//10515 11768//10512 +f 11772//10516 11774//10518 11775//10519 11776//10520 +f 11773//10517 11772//10516 11776//10520 11777//10521 +f 11778//10522 11779//10523 11762//10506 11761//10505 +f 11780//10524 11778//10522 11761//10505 11757//10501 +f 11778//10522 11780//10524 11781//10525 11782//10526 +f 11779//10523 11778//10522 11782//10526 11783//10527 +f 11784//10528 11785//10529 11781//10525 11780//10524 +f 11756//10500 11784//10528 11780//10524 11757//10501 +f 11784//10528 11756//10500 11747//10491 11786//10530 +f 11785//10529 11784//10528 11786//10530 11787//10531 +f 11788//10532 11789//10533 11775//10519 11790//10534 +f 11779//10523 11788//10532 11790//10534 11762//10506 +f 11788//10532 11779//10523 11783//10527 11791//10535 +f 11789//10533 11788//10532 11791//10535 11792//10536 +f 11793//10537 11794//10538 11787//10531 11786//10530 +f 11746//10490 11793//10537 11786//10530 11747//10491 +f 11793//10537 11746//10490 11737//10481 11795//10539 +f 11794//10538 11793//10537 11795//10539 11796//10540 +f 11797//10541 11798//10542 11783//10527 11782//10526 +f 11799//10543 11797//10541 11782//10526 11781//10525 +f 11797//10541 11799//10543 11800//10544 11801//10545 +f 11798//10542 11797//10541 11801//10545 11802//10546 +f 11803//10547 11804//10548 11800//10544 11799//10543 +f 11785//10529 11803//10547 11799//10543 11781//10525 +f 11803//10547 11785//10529 11787//10531 11805//10549 +f 11804//10548 11803//10547 11805//10549 11806//10550 +f 11807//10551 11808//10552 11796//10540 11795//10539 +f 11736//10480 11807//10551 11795//10539 11737//10481 +f 11807//10551 11736//10480 11727//10471 11809//10553 +f 11808//10552 11807//10551 11809//10553 11810//10554 +f 11811//10555 11812//10556 11806//10550 11805//10549 +f 11794//10538 11811//10555 11805//10549 11787//10531 +f 11811//10555 11794//10538 11796//10540 11813//10557 +f 11812//10556 11811//10555 11813//10557 11814//10558 +f 11815//10559 11816//10560 11810//10554 11809//10553 +f 11726//10470 11815//10559 11809//10553 11727//10471 +f 11815//10559 11726//10470 11701//10445 11712//10456 +f 11816//10560 11815//10559 11712//10456 11711//10455 +f 11817//10561 11818//10562 11814//10558 11813//10557 +f 11808//10552 11817//10561 11813//10557 11796//10540 +f 11817//10561 11808//10552 11810//10554 11819//10563 +f 11818//10562 11817//10561 11819//10563 11820//10564 +f 11821//10565 11822//10566 11820//10564 11819//10563 +f 11816//10560 11821//10565 11819//10563 11810//10554 +f 11821//10565 11816//10560 11711//10455 11823//10567 +f 11822//10566 11821//10565 11823//10567 11824//10568 +f 11825//10569 11826//10570 11824//10568 11823//10567 +f 11710//10454 11825//10569 11823//10567 11711//10455 +f 11825//10569 11710//10454 11705//10449 11827//10571 +f 11826//10570 11825//10569 11827//10571 11828//10572 +f 11829//10573 11830//10574 11831//10575 11832//10576 +f 11818//10562 11829//10573 11832//10576 11814//10558 +f 11829//10573 11818//10562 11820//10564 11833//10577 +f 11830//10574 11829//10573 11833//10577 11834//10578 +f 11835//10579 11836//10580 11834//10578 11833//10577 +f 11822//10566 11835//10579 11833//10577 11820//10564 +f 11835//10579 11822//10566 11824//10568 11837//10581 +f 11836//10580 11835//10579 11837//10581 11838//10582 +f 11839//10583 11840//10584 11841//10585 11842//10586 +f 11812//10556 11839//10583 11842//10586 11806//10550 +f 11839//10583 11812//10556 11814//10558 11832//10576 +f 11840//10584 11839//10583 11832//10576 11831//10575 +f 11843//10587 11804//10548 11806//10550 11842//10586 +f 11844//10588 11843//10587 11842//10586 11841//10585 +f 11843//10587 11844//10588 11845//10589 11846//10590 +f 11804//10548 11843//10587 11846//10590 11800//10544 +f 11847//10591 11848//10592 11849//10593 11850//10594 +f 11840//10584 11847//10591 11850//10594 11841//10585 +f 11847//10591 11840//10584 11831//10575 11851//10595 +f 11848//10592 11847//10591 11851//10595 11852//10596 +f 11853//10597 11854//10598 11802//10546 11801//10545 +f 11846//10590 11853//10597 11801//10545 11800//10544 +f 11853//10597 11846//10590 11845//10589 11855//10599 +f 11854//10598 11853//10597 11855//10599 11856//10600 +f 11857//10601 11858//10602 11859//10603 11860//10604 +f 11844//10588 11857//10601 11860//10604 11845//10589 +f 11857//10601 11844//10588 11841//10585 11850//10594 +f 11858//10602 11857//10601 11850//10594 11849//10593 +f 11861//10605 11862//10606 11856//10600 11855//10599 +f 11860//10604 11861//10605 11855//10599 11845//10589 +f 11861//10605 11860//10604 11859//10603 11863//10607 +f 11862//10606 11861//10605 11863//10607 11864//10608 +f 11865//10609 11866//10610 11792//10536 11791//10535 +f 11798//10542 11865//10609 11791//10535 11783//10527 +f 11865//10609 11798//10542 11802//10546 11867//10611 +f 11866//10610 11865//10609 11867//10611 11868//10612 +f 11869//10613 11870//10614 11868//10612 11867//10611 +f 11854//10598 11869//10613 11867//10611 11802//10546 +f 11869//10613 11854//10598 11856//10600 11871//10615 +f 11870//10614 11869//10613 11871//10615 11872//10616 +f 11873//10617 11874//10618 11777//10521 11776//10520 +f 11789//10533 11873//10617 11776//10520 11775//10519 +f 11873//10617 11789//10533 11792//10536 11875//10619 +f 11874//10618 11873//10617 11875//10619 11876//10620 +f 11877//10621 11878//10622 11392//10136 11391//10135 +f 11773//10517 11877//10621 11391//10135 11390//10134 +f 11877//10621 11773//10517 11777//10521 11879//10623 +f 11878//10622 11877//10621 11879//10623 11880//10624 +f 11881//10625 11882//10626 11876//10620 11875//10619 +f 11866//10610 11881//10625 11875//10619 11792//10536 +f 11881//10625 11866//10610 11868//10612 11883//10627 +f 11882//10626 11881//10625 11883//10627 11884//10628 +f 11885//10629 11886//10630 11880//10624 11879//10623 +f 11874//10618 11885//10629 11879//10623 11777//10521 +f 11885//10629 11874//10618 11876//10620 11887//10631 +f 11886//10630 11885//10629 11887//10631 11888//10632 +f 11889//10633 11890//10634 11891//10635 11892//10636 +f 11878//10622 11889//10633 11892//10636 11392//10136 +f 11889//10633 11878//10622 11880//10624 11893//10637 +f 11890//10634 11889//10633 11893//10637 11894//10638 +f 11895//10639 11896//10640 11897//10641 11898//10642 +f 11890//10634 11895//10639 11898//10642 11891//10635 +f 11895//10639 11890//10634 11894//10638 11899//10643 +f 11896//10640 11895//10639 11899//10643 11900//10644 +f 11901//10645 11902//10646 11894//10638 11893//10637 +f 11886//10630 11901//10645 11893//10637 11880//10624 +f 11901//10645 11886//10630 11888//10632 11903//10647 +f 11902//10646 11901//10645 11903//10647 11904//10648 +f 11905//10649 11906//10650 11888//10632 11887//10631 +f 11882//10626 11905//10649 11887//10631 11876//10620 +f 11905//10649 11882//10626 11884//10628 11907//10651 +f 11906//10650 11905//10649 11907//10651 11908//10652 +f 11909//10653 11910//10654 11900//10644 11899//10643 +f 11902//10646 11909//10653 11899//10643 11894//10638 +f 11909//10653 11902//10646 11904//10648 11911//10655 +f 11910//10654 11909//10653 11911//10655 11912//10656 +f 11913//10657 11914//10658 11904//10648 11903//10647 +f 11906//10650 11913//10657 11903//10647 11888//10632 +f 11913//10657 11906//10650 11908//10652 11915//10659 +f 11914//10658 11913//10657 11915//10659 11916//10660 +f 11917//10661 11918//10662 11912//10656 11911//10655 +f 11914//10658 11917//10661 11911//10655 11904//10648 +f 11917//10661 11914//10658 11916//10660 11919//10663 +f 11918//10662 11917//10661 11919//10663 11920//10664 +f 11921//10665 11922//10666 11908//10652 11907//10651 +f 11923//10667 11921//10665 11907//10651 11884//10628 +f 11921//10665 11923//10667 11924//10668 11925//10669 +f 11922//10666 11921//10665 11925//10669 11926//10670 +f 11927//10671 11928//10672 11920//10664 11919//10663 +f 11929//10673 11927//10671 11919//10663 11916//10660 +f 11927//10671 11929//10673 11930//10674 11931//10675 +f 11928//10672 11927//10671 11931//10675 11932//10676 +f 11933//10677 11929//10673 11916//10660 11915//10659 +f 11922//10666 11933//10677 11915//10659 11908//10652 +f 11933//10677 11922//10666 11926//10670 11934//10678 +f 11929//10673 11933//10677 11934//10678 11930//10674 +f 11935//10679 11936//10680 11932//10676 11931//10675 +f 11937//10681 11935//10679 11931//10675 11930//10674 +f 11935//10679 11937//10681 11938//10682 11939//10683 +f 11936//10680 11935//10679 11939//10683 11940//10684 +f 11941//10685 11937//10681 11930//10674 11934//10678 +f 11942//10686 11941//10685 11934//10678 11926//10670 +f 11941//10685 11942//10686 11943//10687 11944//10688 +f 11937//10681 11941//10685 11944//10688 11938//10682 +f 11945//10689 11946//10690 11940//10684 11939//10683 +f 11947//10691 11945//10689 11939//10683 11938//10682 +f 11945//10689 11947//10691 11948//10692 11949//10693 +f 11946//10690 11945//10689 11949//10693 11950//10694 +f 11951//10695 11952//10696 11950//10694 11949//10693 +f 11953//10697 11951//10695 11949//10693 11948//10692 +f 11951//10695 11953//10697 11954//10698 11955//10699 +f 11952//10696 11951//10695 11955//10699 11956//10700 +f 11957//10701 11958//10702 11959//10703 11960//10704 +f 11947//10691 11957//10701 11960//10704 11948//10692 +f 11957//10701 11947//10691 11938//10682 11944//10688 +f 11958//10702 11957//10701 11944//10688 11943//10687 +f 11961//10705 11953//10697 11948//10692 11960//10704 +f 11962//10706 11961//10705 11960//10704 11959//10703 +f 11961//10705 11962//10706 11963//10707 11964//10708 +f 11953//10697 11961//10705 11964//10708 11954//10698 +f 11965//10709 11966//10710 11954//10698 11964//10708 +f 11967//10711 11965//10709 11964//10708 11963//10707 +f 11965//10709 11967//10711 11968//10712 11969//10713 +f 11966//10710 11965//10709 11969//10713 11970//10714 +f 11971//10715 11972//10716 11973//10717 11974//10718 +f 11962//10706 11971//10715 11974//10718 11963//10707 +f 11971//10715 11962//10706 11959//10703 11975//10719 +f 11972//10716 11971//10715 11975//10719 11976//10720 +f 11977//10721 11978//10722 11979//10723 11980//10724 +f 11967//10711 11977//10721 11980//10724 11968//10712 +f 11977//10721 11967//10711 11963//10707 11974//10718 +f 11978//10722 11977//10721 11974//10718 11973//10717 +f 11981//10725 11982//10726 11976//10720 11975//10719 +f 11958//10702 11981//10725 11975//10719 11959//10703 +f 11981//10725 11958//10702 11943//10687 11983//10727 +f 11982//10726 11981//10725 11983//10727 11984//10728 +f 11985//10729 11986//10730 11984//10728 11983//10727 +f 11942//10686 11985//10729 11983//10727 11943//10687 +f 11985//10729 11942//10686 11926//10670 11925//10669 +f 11986//10730 11985//10729 11925//10669 11924//10668 +f 11987//10731 11988//10732 11989//10733 11990//10734 +f 11972//10716 11987//10731 11990//10734 11973//10717 +f 11987//10731 11972//10716 11976//10720 11991//10735 +f 11988//10732 11987//10731 11991//10735 11992//10736 +f 11993//10737 11994//10738 11992//10736 11991//10735 +f 11982//10726 11993//10737 11991//10735 11976//10720 +f 11993//10737 11982//10726 11984//10728 11995//10739 +f 11994//10738 11993//10737 11995//10739 11996//10740 +f 11997//10741 11998//10742 11996//10740 11995//10739 +f 11986//10730 11997//10741 11995//10739 11984//10728 +f 11997//10741 11986//10730 11924//10668 11999//10743 +f 11998//10742 11997//10741 11999//10743 11872//10616 +f 12000//10744 11870//10614 11872//10616 11999//10743 +f 11923//10667 12000//10744 11999//10743 11924//10668 +f 12000//10744 11923//10667 11884//10628 11883//10627 +f 11870//10614 12000//10744 11883//10627 11868//10612 +f 12001//10745 11998//10742 11872//10616 11871//10615 +f 11862//10606 12001//10745 11871//10615 11856//10600 +f 12001//10745 11862//10606 11864//10608 12002//10746 +f 11998//10742 12001//10745 12002//10746 11996//10740 +f 12003//10747 11994//10738 11996//10740 12002//10746 +f 12004//10748 12003//10747 12002//10746 11864//10608 +f 12003//10747 12004//10748 12005//10749 12006//10750 +f 11994//10738 12003//10747 12006//10750 11992//10736 +f 12007//10751 12004//10748 11864//10608 11863//10607 +f 12008//10752 12007//10751 11863//10607 11859//10603 +f 12007//10751 12008//10752 12009//10753 12010//10754 +f 12004//10748 12007//10751 12010//10754 12005//10749 +f 12011//10755 12012//10756 12009//10753 12008//10752 +f 11858//10602 12011//10755 12008//10752 11859//10603 +f 12011//10755 11858//10602 11849//10593 12013//10757 +f 12012//10756 12011//10755 12013//10757 12014//10758 +f 12015//10759 11988//10732 11992//10736 12006//10750 +f 12016//10760 12015//10759 12006//10750 12005//10749 +f 12015//10759 12016//10760 12017//10761 12018//10762 +f 11988//10732 12015//10759 12018//10762 11989//10733 +f 12019//10763 12016//10760 12005//10749 12010//10754 +f 12020//10764 12019//10763 12010//10754 12009//10753 +f 12019//10763 12020//10764 12021//10765 12022//10766 +f 12016//10760 12019//10763 12022//10766 12017//10761 +f 12023//10767 12024//10768 12021//10765 12020//10764 +f 12012//10756 12023//10767 12020//10764 12009//10753 +f 12023//10767 12012//10756 12014//10758 12025//10769 +f 12024//10768 12023//10767 12025//10769 12026//10770 +f 12027//10771 12028//10772 12014//10758 12013//10757 +f 11848//10592 12027//10771 12013//10757 11849//10593 +f 12027//10771 11848//10592 11852//10596 12029//10773 +f 12028//10772 12027//10771 12029//10773 12030//10774 +f 12031//10775 12032//10776 11852//10596 11851//10595 +f 11830//10574 12031//10775 11851//10595 11831//10575 +f 12031//10775 11830//10574 11834//10578 12033//10777 +f 12032//10776 12031//10775 12033//10777 12034//10778 +f 12035//10779 12036//10780 12026//10770 12025//10769 +f 12028//10772 12035//10779 12025//10769 12014//10758 +f 12035//10779 12028//10772 12030//10774 12037//10781 +f 12036//10780 12035//10779 12037//10781 12038//10782 +f 12039//10783 12040//10784 12030//10774 12029//10773 +f 12032//10776 12039//10783 12029//10773 11852//10596 +f 12039//10783 12032//10776 12034//10778 12041//10785 +f 12040//10784 12039//10783 12041//10785 12042//10786 +f 12043//10787 12044//10788 12045//10789 12046//10790 +f 12024//10768 12043//10787 12046//10790 12021//10765 +f 12043//10787 12024//10768 12026//10770 12047//10791 +f 12044//10788 12043//10787 12047//10791 12048//10792 +f 12049//10793 12050//10794 12017//10761 12022//10766 +f 12046//10790 12049//10793 12022//10766 12021//10765 +f 12049//10793 12046//10790 12045//10789 12051//10795 +f 12050//10794 12049//10793 12051//10795 12052//10796 +f 12053//10797 12054//10798 11989//10733 12018//10762 +f 12050//10794 12053//10797 12018//10762 12017//10761 +f 12053//10797 12050//10794 12052//10796 12055//10799 +f 12054//10798 12053//10797 12055//10799 12056//10800 +f 12057//10801 12058//10802 12048//10792 12047//10791 +f 12036//10780 12057//10801 12047//10791 12026//10770 +f 12057//10801 12036//10780 12038//10782 12059//10803 +f 12058//10802 12057//10801 12059//10803 12060//10804 +f 12061//10805 12062//10806 12052//10796 12051//10795 +f 12063//10807 12061//10805 12051//10795 12045//10789 +f 12061//10805 12063//10807 12064//10808 12065//10809 +f 12062//10806 12061//10805 12065//10809 12066//10810 +f 12067//10811 12068//10812 12064//10808 12063//10807 +f 12044//10788 12067//10811 12063//10807 12045//10789 +f 12067//10811 12044//10788 12048//10792 12069//10813 +f 12068//10812 12067//10811 12069//10813 12070//10814 +f 12071//10815 11978//10722 11973//10717 11990//10734 +f 12054//10798 12071//10815 11990//10734 11989//10733 +f 12071//10815 12054//10798 12056//10800 12072//10816 +f 11978//10722 12071//10815 12072//10816 11979//10723 +f 12073//10817 12074//10818 12056//10800 12055//10799 +f 12062//10806 12073//10817 12055//10799 12052//10796 +f 12073//10817 12062//10806 12066//10810 12075//10819 +f 12074//10818 12073//10817 12075//10819 12076//10820 +f 12077//10821 12078//10822 11979//10723 12072//10816 +f 12074//10818 12077//10821 12072//10816 12056//10800 +f 12077//10821 12074//10818 12076//10820 12079//10823 +f 12078//10822 12077//10821 12079//10823 12080//10824 +f 12081//10825 12082//10826 11968//10712 11980//10724 +f 12078//10822 12081//10825 11980//10724 11979//10723 +f 12081//10825 12078//10822 12080//10824 12083//10827 +f 12082//10826 12081//10825 12083//10827 12084//10828 +f 12085//10829 12086//10830 12076//10820 12075//10819 +f 12087//10831 12085//10829 12075//10819 12066//10810 +f 12085//10829 12087//10831 12088//10832 12089//10833 +f 12086//10830 12085//10829 12089//10833 12090//10834 +f 12091//10835 12092//10836 11970//10714 11969//10713 +f 12082//10826 12091//10835 11969//10713 11968//10712 +f 12091//10835 12082//10826 12084//10828 12093//10837 +f 12092//10836 12091//10835 12093//10837 12094//10838 +f 12095//10839 12096//10840 12080//10824 12079//10823 +f 12086//10830 12095//10839 12079//10823 12076//10820 +f 12095//10839 12086//10830 12090//10834 12097//10841 +f 12096//10840 12095//10839 12097//10841 12098//10842 +f 12099//10843 12100//10844 12084//10828 12083//10827 +f 12096//10840 12099//10843 12083//10827 12080//10824 +f 12099//10843 12096//10840 12098//10842 12101//10845 +f 12100//10844 12099//10843 12101//10845 12102//10846 +f 12103//10847 12104//10848 12105//10849 12106//10850 +f 12092//10836 12103//10847 12106//10850 11970//10714 +f 12103//10847 12092//10836 12094//10838 12107//10851 +f 12104//10848 12103//10847 12107//10851 12108//10852 +f 12109//10853 11966//10710 11970//10714 12106//10850 +f 12110//10854 12109//10853 12106//10850 12105//10849 +f 12109//10853 12110//10854 11956//10700 11955//10699 +f 11966//10710 12109//10853 11955//10699 11954//10698 +f 12111//10855 12112//10856 12094//10838 12093//10837 +f 12100//10844 12111//10855 12093//10837 12084//10828 +f 12111//10855 12100//10844 12102//10846 12113//10857 +f 12112//10856 12111//10855 12113//10857 12114//10858 +f 12115//10859 12116//10860 12108//10852 12107//10851 +f 12112//10856 12115//10859 12107//10851 12094//10838 +f 12115//10859 12112//10856 12114//10858 12117//10861 +f 12116//10860 12115//10859 12117//10861 12118//10862 +f 12119//10863 12120//10864 12118//10862 12117//10861 +f 12121//10865 12119//10863 12117//10861 12114//10858 +f 12119//10863 12121//10865 12122//10866 12123//10867 +f 12120//10864 12119//10863 12123//10867 12124//10868 +f 12125//10869 12121//10865 12114//10858 12113//10857 +f 12126//10870 12125//10869 12113//10857 12102//10846 +f 12125//10869 12126//10870 12127//10871 12128//10872 +f 12121//10865 12125//10869 12128//10872 12122//10866 +f 12129//10873 12130//10874 12122//10866 12128//10872 +f 12131//10875 12129//10873 12128//10872 12127//10871 +f 12129//10873 12131//10875 12132//10876 12133//10877 +f 12130//10874 12129//10873 12133//10877 12134//10878 +f 12135//10879 12136//10880 12137//10881 12138//10882 +f 12126//10870 12135//10879 12138//10882 12127//10871 +f 12135//10879 12126//10870 12102//10846 12101//10845 +f 12136//10880 12135//10879 12101//10845 12098//10842 +f 12139//10883 12140//10884 12141//10885 12142//10886 +f 12131//10875 12139//10883 12142//10886 12132//10876 +f 12139//10883 12131//10875 12127//10871 12138//10882 +f 12140//10884 12139//10883 12138//10882 12137//10881 +f 12143//10887 12144//10888 12145//10889 12146//10890 +f 12136//10880 12143//10887 12146//10890 12137//10881 +f 12143//10887 12136//10880 12098//10842 12097//10841 +f 12144//10888 12143//10887 12097//10841 12090//10834 +f 12147//10891 12148//10892 12149//10893 12150//10894 +f 12140//10884 12147//10891 12150//10894 12141//10885 +f 12147//10891 12140//10884 12137//10881 12146//10890 +f 12148//10892 12147//10891 12146//10890 12145//10889 +f 12151//10895 12152//10896 12153//10897 12154//10898 +f 12144//10888 12151//10895 12154//10898 12145//10889 +f 12151//10895 12144//10888 12090//10834 12089//10833 +f 12152//10896 12151//10895 12089//10833 12088//10832 +f 12155//10899 12156//10900 12157//10901 12158//10902 +f 12148//10892 12155//10899 12158//10902 12149//10893 +f 12155//10899 12148//10892 12145//10889 12154//10898 +f 12156//10900 12155//10899 12154//10898 12153//10897 +f 12159//10903 12160//10904 12141//10885 12150//10894 +f 12161//10905 12159//10903 12150//10894 12149//10893 +f 12159//10903 12161//10905 12162//10906 12163//10907 +f 12160//10904 12159//10903 12163//10907 12164//10908 +f 12165//10909 12161//10905 12149//10893 12158//10902 +f 12166//10910 12165//10909 12158//10902 12157//10901 +f 12165//10909 12166//10910 12167//10911 12168//10912 +f 12161//10905 12165//10909 12168//10912 12162//10906 +f 12169//10913 12170//10914 12171//10915 12172//10916 +f 12156//10900 12169//10913 12172//10916 12157//10901 +f 12169//10913 12156//10900 12153//10897 12173//10917 +f 12170//10914 12169//10913 12173//10917 12174//10918 +f 12175//10919 12176//10920 12132//10876 12142//10886 +f 12160//10904 12175//10919 12142//10886 12141//10885 +f 12175//10919 12160//10904 12164//10908 12177//10921 +f 12176//10920 12175//10919 12177//10921 12178//10922 +f 12179//10923 12166//10910 12157//10901 12172//10916 +f 12180//10924 12179//10923 12172//10916 12171//10915 +f 12179//10923 12180//10924 12181//10925 12182//10926 +f 12166//10910 12179//10923 12182//10926 12167//10911 +f 12183//10927 12184//10928 12134//10878 12133//10877 +f 12176//10920 12183//10927 12133//10877 12132//10876 +f 12183//10927 12176//10920 12178//10922 12185//10929 +f 12184//10928 12183//10927 12185//10929 12186//10930 +f 12187//10931 12130//10874 12134//10878 12188//10932 +f 12189//10933 12187//10931 12188//10932 12190//10934 +f 12187//10931 12189//10933 12124//10868 12123//10867 +f 12130//10874 12187//10931 12123//10867 12122//10866 +f 12191//10935 12192//10936 12190//10934 12188//10932 +f 12184//10928 12191//10935 12188//10932 12134//10878 +f 12191//10935 12184//10928 12186//10930 12193//10937 +f 12192//10936 12191//10935 12193//10937 12194//10938 +f 12195//10939 12196//10940 12178//10922 12177//10921 +f 12197//10941 12195//10939 12177//10921 12164//10908 +f 12195//10939 12197//10941 12198//10942 12199//10943 +f 12196//10940 12195//10939 12199//10943 12200//10944 +f 12201//10945 12202//10946 12194//10938 12193//10937 +f 12203//10947 12201//10945 12193//10937 12186//10930 +f 12201//10945 12203//10947 12204//10948 12205//10949 +f 12202//10946 12201//10945 12205//10949 12206//10950 +f 12207//10951 12203//10947 12186//10930 12185//10929 +f 12196//10940 12207//10951 12185//10929 12178//10922 +f 12207//10951 12196//10940 12200//10944 12208//10952 +f 12203//10947 12207//10951 12208//10952 12204//10948 +f 12209//10953 12210//10954 12206//10950 12205//10949 +f 12211//10955 12209//10953 12205//10949 12204//10948 +f 12209//10953 12211//10955 11401//10145 11400//10144 +f 12210//10954 12209//10953 11400//10144 11399//10143 +f 12212//10956 12211//10955 12204//10948 12208//10952 +f 12213//10957 12212//10956 12208//10952 12200//10944 +f 12212//10956 12213//10957 12214//10958 12215//10959 +f 12211//10955 12212//10956 12215//10959 11401//10145 +f 12216//10960 12213//10957 12200//10944 12199//10943 +f 12217//10961 12216//10960 12199//10943 12198//10942 +f 12216//10960 12217//10961 12218//10962 12219//10963 +f 12213//10957 12216//10960 12219//10963 12214//10958 +f 12220//10964 11394//10138 11401//10145 12215//10959 +f 12221//10965 12220//10964 12215//10959 12214//10958 +f 12220//10964 12221//10965 12222//10966 12223//10967 +f 11394//10138 12220//10964 12223//10967 11395//10139 +f 12224//10968 12221//10965 12214//10958 12219//10963 +f 12225//10969 12224//10968 12219//10963 12218//10962 +f 12224//10968 12225//10969 12226//10970 12227//10971 +f 12221//10965 12224//10968 12227//10971 12222//10966 +f 12228//10972 12229//10973 12230//10974 12231//10975 +f 12232//10976 12228//10972 12231//10975 12233//10977 +f 12228//10972 12232//10976 11395//10139 12223//10967 +f 12229//10973 12228//10972 12223//10967 12222//10966 +f 12234//10978 12235//10979 11398//10142 11396//10140 +f 12232//10976 12234//10978 11396//10140 11395//10139 +f 12234//10978 12232//10976 12233//10977 12236//10980 +f 12235//10979 12234//10978 12236//10980 12237//10981 +f 12238//10982 12239//10983 12240//10984 12241//10985 +f 12229//10973 12238//10982 12241//10985 12230//10974 +f 12238//10982 12229//10973 12222//10966 12227//10971 +f 12239//10983 12238//10982 12227//10971 12226//10970 +f 12242//10986 12243//10987 12230//10974 12241//10985 +f 12244//10988 12242//10986 12241//10985 12240//10984 +f 12242//10986 12244//10988 12245//10989 12246//10990 +f 12243//10987 12242//10986 12246//10990 12247//10991 +f 12248//10992 12249//10993 12250//10994 12251//10995 +f 12244//10988 12248//10992 12251//10995 12245//10989 +f 12248//10992 12244//10988 12240//10984 12252//10996 +f 12249//10993 12248//10992 12252//10996 12253//10997 +f 12254//10998 12255//10999 12253//10997 12252//10996 +f 12239//10983 12254//10998 12252//10996 12240//10984 +f 12254//10998 12239//10983 12226//10970 12256//11000 +f 12255//10999 12254//10998 12256//11000 12257//11001 +f 12258//11002 12259//11003 12257//11001 12256//11000 +f 12225//10969 12258//11002 12256//11000 12226//10970 +f 12258//11002 12225//10969 12218//10962 12260//11004 +f 12259//11003 12258//11002 12260//11004 12261//11005 +f 12262//11006 12263//11007 12264//11008 12265//11009 +f 12249//10993 12262//11006 12265//11009 12250//10994 +f 12262//11006 12249//10993 12253//10997 12266//11010 +f 12263//11007 12262//11006 12266//11010 12267//11011 +f 12268//11012 12269//11013 12261//11005 12260//11004 +f 12217//10961 12268//11012 12260//11004 12218//10962 +f 12268//11012 12217//10961 12198//10942 12270//11014 +f 12269//11013 12268//11012 12270//11014 12271//11015 +f 12272//11016 12273//11017 12267//11011 12266//11010 +f 12255//10999 12272//11016 12266//11010 12253//10997 +f 12272//11016 12255//10999 12257//11001 12274//11018 +f 12273//11017 12272//11016 12274//11018 12275//11019 +f 12276//11020 12277//11021 12275//11019 12274//11018 +f 12259//11003 12276//11020 12274//11018 12257//11001 +f 12276//11020 12259//11003 12261//11005 12278//11022 +f 12277//11021 12276//11020 12278//11022 12279//11023 +f 12280//11024 12281//11025 12271//11015 12270//11014 +f 12197//10941 12280//11024 12270//11014 12198//10942 +f 12280//11024 12197//10941 12164//10908 12163//10907 +f 12281//11025 12280//11024 12163//10907 12162//10906 +f 12282//11026 12283//11027 12279//11023 12278//11022 +f 12269//11013 12282//11026 12278//11022 12261//11005 +f 12282//11026 12269//11013 12271//11015 12284//11028 +f 12283//11027 12282//11026 12284//11028 12285//11029 +f 12286//11030 12287//11031 12285//11029 12284//11028 +f 12281//11025 12286//11030 12284//11028 12271//11015 +f 12286//11030 12281//11025 12162//10906 12168//10912 +f 12287//11031 12286//11030 12168//10912 12167//10911 +f 12288//11032 12289//11033 12290//11034 12291//11035 +f 12277//11021 12288//11032 12291//11035 12275//11019 +f 12288//11032 12277//11021 12279//11023 12292//11036 +f 12289//11033 12288//11032 12292//11036 12293//11037 +f 12294//11038 12295//11039 12296//11040 12297//11041 +f 12287//11031 12294//11038 12297//11041 12285//11029 +f 12294//11038 12287//11031 12167//10911 12182//10926 +f 12295//11039 12294//11038 12182//10926 12181//10925 +f 12298//11042 12299//11043 12293//11037 12292//11036 +f 12283//11027 12298//11042 12292//11036 12279//11023 +f 12298//11042 12283//11027 12285//11029 12297//11041 +f 12299//11043 12298//11042 12297//11041 12296//11040 +f 12300//11044 12301//11045 12296//11040 12295//11039 +f 12302//11046 12300//11044 12295//11039 12181//10925 +f 12300//11044 12302//11046 12303//11047 12304//11048 +f 12301//11045 12300//11044 12304//11048 12305//11049 +f 12306//11050 12307//11051 12293//11037 12299//11043 +f 12301//11045 12306//11050 12299//11043 12296//11040 +f 12306//11050 12301//11045 12305//11049 12308//11052 +f 12307//11051 12306//11050 12308//11052 12309//11053 +f 12310//11054 12311//11055 12290//11034 12289//11033 +f 12307//11051 12310//11054 12289//11033 12293//11037 +f 12310//11054 12307//11051 12309//11053 12312//11054 +f 12311//11055 12310//11054 12312//11054 12313//11056 +f 12314//11057 12273//11017 12275//11019 12291//11035 +f 12315//11058 12314//11057 12291//11035 12290//11034 +f 12314//11057 12315//11058 12316//11059 12317//11060 +f 12273//11017 12314//11057 12317//11060 12267//11011 +f 12318//11061 12319//11062 12316//11059 12315//11058 +f 12311//11055 12318//11061 12315//11058 12290//11034 +f 12318//11061 12311//11055 12313//11056 12320//11063 +f 12319//11062 12318//11061 12320//11063 12321//11064 +f 12322//11065 12263//11007 12267//11011 12317//11060 +f 12323//11066 12322//11065 12317//11060 12316//11059 +f 12322//11065 12323//11066 12324//11067 12325//11068 +f 12263//11007 12322//11065 12325//11068 12264//11008 +f 12326//11069 12327//11070 12324//11067 12323//11066 +f 12319//11062 12326//11069 12323//11066 12316//11059 +f 12326//11069 12319//11062 12321//11064 12328//11071 +f 12327//11070 12326//11069 12328//11071 12329//11072 +f 12330//11073 12331//11074 12313//11056 12312//11054 +f 12332//11075 12330//11073 12312//11054 12309//11053 +f 12330//11073 12332//11075 12333//11076 12334//11077 +f 12331//11074 12330//11073 12334//11077 12335//11078 +f 12336//11079 12337//11080 12264//11008 12325//11068 +f 12338//11081 12336//11079 12325//11068 12324//11067 +f 12336//11079 12338//11081 12339//11082 12340//11083 +f 12337//11080 12336//11079 12340//11083 12341//11084 +f 12342//11085 12343//11086 12321//11064 12320//11063 +f 12331//11074 12342//11085 12320//11063 12313//11056 +f 12342//11085 12331//11074 12335//11078 12344//11087 +f 12343//11086 12342//11085 12344//11087 12345//11088 +f 12346//11089 12347//11090 12339//11082 12338//11081 +f 12327//11070 12346//11089 12338//11081 12324//11067 +f 12346//11089 12327//11070 12329//11072 12348//11091 +f 12347//11090 12346//11089 12348//11091 12349//11092 +f 12350//11093 12351//11094 12329//11072 12328//11071 +f 12343//11086 12350//11093 12328//11071 12321//11064 +f 12350//11093 12343//11086 12345//11088 12352//11095 +f 12351//11094 12350//11093 12352//11095 12353//11096 +f 12354//11097 12355//11098 12250//10994 12265//11009 +f 12337//11080 12354//11097 12265//11009 12264//11008 +f 12354//11097 12337//11080 12341//11084 12356//11099 +f 12355//11098 12354//11097 12356//11099 12357//11100 +f 12358//11101 12359//11102 12245//10989 12251//10995 +f 12355//11098 12358//11101 12251//10995 12250//10994 +f 12358//11101 12355//11098 12357//11100 12360//11103 +f 12359//11102 12358//11101 12360//11103 12361//11104 +f 12362//11105 12363//11106 12341//11084 12340//11083 +f 12364//11107 12362//11105 12340//11083 12339//11082 +f 12362//11105 12364//11107 12365//11108 12366//11109 +f 12363//11106 12362//11105 12366//11109 12367//11110 +f 12368//11111 12369//11112 12365//11108 12364//11107 +f 12347//11090 12368//11111 12364//11107 12339//11082 +f 12368//11111 12347//11090 12349//11092 12370//11113 +f 12369//11112 12368//11111 12370//11113 12371//11114 +f 12372//11115 12373//11116 12357//11100 12356//11099 +f 12363//11106 12372//11115 12356//11099 12341//11084 +f 12372//11115 12363//11106 12367//11110 12374//11117 +f 12373//11116 12372//11115 12374//11117 12375//11118 +f 12376//11119 12377//11120 12371//11114 12370//11113 +f 12378//11121 12376//11119 12370//11113 12349//11092 +f 12376//11119 12378//11121 12379//11122 12380//11123 +f 12377//11120 12376//11119 12380//11123 12381//11124 +f 12382//11125 12383//11126 12361//11104 12360//11103 +f 12373//11116 12382//11125 12360//11103 12357//11100 +f 12382//11125 12373//11116 12375//11118 12384//11127 +f 12383//11126 12382//11125 12384//11127 12385//11128 +f 12386//11129 12387//11130 12247//10991 12246//10990 +f 12359//11102 12386//11129 12246//10990 12245//10989 +f 12386//11129 12359//11102 12361//11104 12388//11131 +f 12387//11130 12386//11129 12388//11131 12389//11132 +f 12390//11133 12391//11134 12389//11132 12388//11131 +f 12383//11126 12390//11133 12388//11131 12361//11104 +f 12390//11133 12383//11126 12385//11128 12392//11135 +f 12391//11134 12390//11133 12392//11135 12393//11136 +f 12394//11137 11403//10147 11410//10154 12395//11138 +f 12391//11134 12394//11137 12395//11138 12389//11132 +f 12394//11137 12391//11134 12393//11136 12396//11139 +f 11403//10147 12394//11137 12396//11139 11404//10148 +f 12397//11140 12398//11141 12399//11142 12400//11143 +f 12387//11130 12397//11140 12400//11143 12247//10991 +f 12397//11140 12387//11130 12389//11132 12395//11138 +f 12398//11141 12397//11140 12395//11138 11410//10154 +f 12401//11144 12402//11145 12403//11146 12404//11147 +f 12398//11141 12401//11144 12404//11147 12399//11142 +f 12401//11144 12398//11141 11410//10154 11409//10153 +f 12402//11145 12401//11144 11409//10153 11408//10152 +f 12405//11148 12406//11149 12381//11124 12380//11123 +f 12407//11150 12405//11148 12380//11123 12379//11122 +f 12405//11148 12407//11150 12408//11151 12409//11152 +f 12406//11149 12405//11148 12409//11152 12410//11153 +f 12411//11154 12351//11094 12353//11096 12412//11155 +f 12378//11121 12411//11154 12412//11155 12379//11122 +f 12411//11154 12378//11121 12349//11092 12348//11091 +f 12351//11094 12411//11154 12348//11091 12329//11072 +f 12413//11156 12407//11150 12379//11122 12412//11155 +f 12414//11157 12413//11156 12412//11155 12353//11096 +f 12413//11156 12414//11157 12415//11158 12416//11159 +f 12407//11150 12413//11156 12416//11159 12408//11151 +f 12417//11160 12414//11157 12353//11096 12352//11095 +f 12418//11161 12417//11160 12352//11095 12345//11088 +f 12417//11160 12418//11161 12419//11162 12420//11163 +f 12414//11157 12417//11160 12420//11163 12415//11158 +f 12421//11164 12422//11165 12410//11153 12409//11152 +f 12423//11166 12421//11164 12409//11152 12408//11151 +f 12421//11164 12423//11166 12424//11167 12425//11168 +f 12422//11165 12421//11164 12425//11168 12426//11169 +f 12427//11170 12423//11166 12408//11151 12416//11159 +f 12428//11171 12427//11170 12416//11159 12415//11158 +f 12427//11170 12428//11171 12429//11172 12430//11173 +f 12423//11166 12427//11170 12430//11173 12424//11167 +f 12431//11174 12432//11175 12426//11169 12425//11168 +f 12433//11176 12431//11174 12425//11168 12424//11167 +f 12431//11174 12433//11176 12434//11177 12435//11178 +f 12432//11175 12431//11174 12435//11178 12436//11179 +f 12437//11180 12433//11176 12424//11167 12430//11173 +f 12438//11181 12437//11180 12430//11173 12429//11172 +f 12437//11180 12438//11181 12439//11182 12440//11183 +f 12433//11176 12437//11180 12440//11183 12434//11177 +f 12441//11184 12442//11185 12443//11186 12444//11187 +f 12428//11171 12441//11184 12444//11187 12429//11172 +f 12441//11184 12428//11171 12415//11158 12420//11163 +f 12442//11185 12441//11184 12420//11163 12419//11162 +f 12445//11188 12446//11189 12447//11190 12448//11191 +f 12438//11181 12445//11188 12448//11191 12439//11182 +f 12445//11188 12438//11181 12429//11172 12444//11187 +f 12446//11189 12445//11188 12444//11187 12443//11186 +f 12449//11192 12450//11193 12436//11179 12435//11178 +f 12451//11194 12449//11192 12435//11178 12434//11177 +f 12449//11192 12451//11194 12452//11195 12453//11196 +f 12450//11193 12449//11192 12453//11196 12454//11197 +f 12455//11198 12451//11194 12434//11177 12440//11183 +f 12456//11199 12455//11198 12440//11183 12439//11182 +f 12455//11198 12456//11199 12457//11200 12458//11201 +f 12451//11194 12455//11198 12458//11201 12452//11195 +f 12459//11202 12460//11203 12454//11197 12453//11196 +f 12461//11204 12459//11202 12453//11196 12452//11195 +f 12459//11202 12461//11204 12462//11205 12463//11206 +f 12460//11203 12459//11202 12463//11206 12464//11207 +f 12465//11208 12461//11204 12452//11195 12458//11201 +f 12466//11209 12465//11208 12458//11201 12457//11200 +f 12465//11208 12466//11209 12467//11210 12468//11211 +f 12461//11204 12465//11208 12468//11211 12462//11205 +f 12469//11212 12470//11213 12471//11214 12472//11215 +f 12456//11199 12469//11212 12472//11215 12457//11200 +f 12469//11212 12456//11199 12439//11182 12448//11191 +f 12470//11213 12469//11212 12448//11191 12447//11190 +f 12473//11216 12474//11217 12475//11218 12476//11219 +f 12466//11209 12473//11216 12476//11219 12467//11210 +f 12473//11216 12466//11209 12457//11200 12472//11215 +f 12474//11217 12473//11216 12472//11215 12471//11214 +f 12477//11220 12478//11221 12464//11207 12463//11206 +f 12479//11222 12477//11220 12463//11206 12462//11205 +f 12477//11220 12479//11222 12480//11223 12481//11224 +f 12478//11221 12477//11220 12481//11224 12482//11225 +f 12483//11226 12479//11222 12462//11205 12468//11211 +f 12484//11227 12483//11226 12468//11211 12467//11210 +f 12483//11226 12484//11227 12485//11228 12486//11229 +f 12479//11222 12483//11226 12486//11229 12480//11223 +f 12487//11230 12488//11231 12482//11225 12481//11224 +f 12489//11232 12487//11230 12481//11224 12480//11223 +f 12487//11230 12489//11232 12490//11233 12491//11234 +f 12488//11231 12487//11230 12491//11234 12492//11235 +f 12493//11236 12494//11237 12495//11238 12496//11239 +f 12491//11234 12493//11236 12496//11239 12492//11235 +f 12493//11236 12491//11234 12490//11233 12497//11240 +f 12494//11237 12493//11236 12497//11240 12498//11241 +f 12499//11242 12500//11243 12501//11244 12502//11245 +f 12489//11232 12499//11242 12502//11245 12490//11233 +f 12499//11242 12489//11232 12480//11223 12486//11229 +f 12500//11243 12499//11242 12486//11229 12485//11228 +f 12503//11246 12504//11247 12498//11241 12497//11240 +f 12502//11245 12503//11246 12497//11240 12490//11233 +f 12503//11246 12502//11245 12501//11244 12505//11248 +f 12504//11247 12503//11246 12505//11248 12506//11249 +f 12507//11250 12508//11251 12509//11252 12510//11253 +f 12494//11237 12507//11250 12510//11253 12495//11238 +f 12507//11250 12494//11237 12498//11241 12511//11254 +f 12508//11251 12507//11250 12511//11254 12512//11255 +f 12513//11256 12514//11257 12515//11258 12516//11259 +f 12500//11243 12513//11256 12516//11259 12501//11244 +f 12513//11256 12500//11243 12485//11228 12517//11260 +f 12514//11257 12513//11256 12517//11260 12518//11261 +f 12519//11262 12520//11263 12521//11264 12522//11265 +f 12508//11251 12519//11262 12522//11265 12509//11252 +f 12519//11262 12508//11251 12512//11255 12523//11266 +f 12520//11263 12519//11262 12523//11266 12524//11267 +f 12525//11268 12526//11269 12512//11255 12511//11254 +f 12504//11247 12525//11268 12511//11254 12498//11241 +f 12525//11268 12504//11247 12506//11249 12527//11270 +f 12526//11269 12525//11268 12527//11270 12528//11271 +f 12529//11272 12530//11273 12506//11249 12505//11248 +f 12516//11259 12529//11272 12505//11248 12501//11244 +f 12529//11272 12516//11259 12515//11258 12531//11274 +f 12530//11273 12529//11272 12531//11274 12532//11275 +f 12533//11276 12534//11277 12535//11278 12536//11279 +f 12520//11263 12533//11276 12536//11279 12521//11264 +f 12533//11276 12520//11263 12524//11267 12537//11280 +f 12534//11277 12533//11276 12537//11280 12538//11281 +f 12539//11282 12540//11283 12524//11267 12523//11266 +f 12526//11269 12539//11282 12523//11266 12512//11255 +f 12539//11282 12526//11269 12528//11271 12541//11284 +f 12540//11283 12539//11282 12541//11284 12542//11285 +f 12543//11286 11379//10123 11380//10124 12544//11287 +f 12534//11277 12543//11286 12544//11287 12535//11278 +f 12543//11286 12534//11277 12538//11281 12545//11288 +f 11379//10123 12543//11286 12545//11288 11381//10125 +f 12546//11289 12547//11290 12538//11281 12537//11280 +f 12540//11283 12546//11289 12537//11280 12524//11267 +f 12546//11289 12540//11283 12542//11285 12548//11291 +f 12547//11290 12546//11289 12548//11291 12549//11292 +f 12550//11293 12551//11294 11381//10125 12545//11288 +f 12547//11290 12550//11293 12545//11288 12538//11281 +f 12550//11293 12547//11290 12549//11292 12552//11295 +f 12551//11294 12550//11293 12552//11295 12553//11296 +f 12554//11297 12555//11298 11383//10127 11382//10126 +f 12551//11294 12554//11297 11382//10126 11381//10125 +f 12554//11297 12551//11294 12553//11296 12556//11299 +f 12555//11298 12554//11297 12556//11299 12557//11300 +f 12558//11301 12559//11302 12549//11292 12548//11291 +f 12560//11303 12558//11301 12548//11291 12542//11285 +f 12558//11301 12560//11303 12561//11304 12562//11305 +f 12559//11302 12558//11301 12562//11305 12563//11306 +f 12564//11307 12565//11308 12566//11309 12567//11310 +f 12560//11303 12564//11307 12567//11310 12561//11304 +f 12564//11307 12560//11303 12542//11285 12541//11284 +f 12565//11308 12564//11307 12541//11284 12528//11271 +f 12568//11311 12569//11312 12563//11306 12562//11305 +f 12570//11313 12568//11311 12562//11305 12561//11304 +f 12568//11311 12570//11313 12571//11314 12572//11315 +f 12569//11312 12568//11311 12572//11315 12573//11316 +f 12574//11317 12570//11313 12561//11304 12567//11310 +f 12575//11318 12574//11317 12567//11310 12566//11309 +f 12574//11317 12575//11318 12576//11319 12577//11320 +f 12570//11313 12574//11317 12577//11320 12571//11314 +f 12578//11321 12579//11322 12580//11323 12581//11324 +f 12569//11312 12578//11321 12581//11324 12563//11306 +f 12578//11321 12569//11312 12573//11316 12582//11325 +f 12579//11322 12578//11321 12582//11325 12583//11326 +f 12584//11327 12585//11328 12583//11326 12582//11325 +f 12586//11329 12584//11327 12582//11325 12573//11316 +f 12584//11327 12586//11329 12587//11330 12588//11331 +f 12585//11328 12584//11327 12588//11331 12589//11332 +f 12590//11333 12586//11329 12573//11316 12572//11315 +f 12591//11334 12590//11333 12572//11315 12571//11314 +f 12590//11333 12591//11334 12592//11335 12593//11336 +f 12586//11329 12590//11333 12593//11336 12587//11330 +f 12594//11337 12595//11338 12596//11339 12597//11340 +f 12598//11341 12594//11337 12597//11340 12599//11342 +f 12594//11337 12598//11341 12589//11332 12588//11331 +f 12595//11338 12594//11337 12588//11331 12587//11330 +f 12600//11343 12601//11344 12602//11345 12603//11346 +f 12591//11334 12600//11343 12603//11346 12592//11335 +f 12600//11343 12591//11334 12571//11314 12577//11320 +f 12601//11344 12600//11343 12577//11320 12576//11319 +f 12604//11347 12595//11338 12587//11330 12593//11336 +f 12605//11348 12604//11347 12593//11336 12592//11335 +f 12604//11347 12605//11348 12606//11349 12607//11350 +f 12595//11338 12604//11347 12607//11350 12596//11339 +f 12608//11351 12605//11348 12592//11335 12603//11346 +f 12609//11352 12608//11351 12603//11346 12602//11345 +f 12608//11351 12609//11352 12610//11353 12611//11354 +f 12605//11348 12608//11351 12611//11354 12606//11349 +f 12612//11355 12613//11356 12614//11357 12615//11358 +f 12601//11344 12612//11355 12615//11358 12602//11345 +f 12612//11355 12601//11344 12576//11319 12616//11359 +f 12613//11356 12612//11355 12616//11359 12617//11360 +f 12618//11361 12619//11362 12620//11363 12621//11364 +f 12609//11352 12618//11361 12621//11364 12610//11353 +f 12618//11361 12609//11352 12602//11345 12615//11358 +f 12619//11362 12618//11361 12615//11358 12614//11357 +f 12622//11365 12623//11366 12606//11349 12611//11354 +f 12624//11367 12622//11365 12611//11354 12610//11353 +f 12622//11365 12624//11367 12625//11368 12626//11369 +f 12623//11366 12622//11365 12626//11369 12627//11370 +f 12628//11371 12629//11372 12617//11360 12616//11359 +f 12575//11318 12628//11371 12616//11359 12576//11319 +f 12628//11371 12575//11318 12566//11309 12630//11373 +f 12629//11372 12628//11371 12630//11373 12532//11275 +f 12631//11374 12632//11375 12596//11339 12607//11350 +f 12623//11366 12631//11374 12607//11350 12606//11349 +f 12631//11374 12623//11366 12627//11370 12633//11376 +f 12632//11375 12631//11374 12633//11376 12634//11377 +f 12635//11378 12636//11379 12599//11342 12597//11340 +f 12632//11375 12635//11378 12597//11340 12596//11339 +f 12635//11378 12632//11375 12634//11377 12637//11380 +f 12636//11379 12635//11378 12637//11380 12638//11381 +f 12639//11382 12640//11383 12641//11384 12642//11385 +f 12624//11367 12639//11382 12642//11385 12625//11368 +f 12639//11382 12624//11367 12610//11353 12621//11364 +f 12640//11383 12639//11382 12621//11364 12620//11363 +f 12643//11386 12644//11387 12627//11370 12626//11369 +f 12645//11388 12643//11386 12626//11369 12625//11368 +f 12643//11386 12645//11388 12646//11389 12647//11390 +f 12644//11387 12643//11386 12647//11390 12648//11391 +f 12649//11392 12645//11388 12625//11368 12642//11385 +f 12650//11393 12649//11392 12642//11385 12641//11384 +f 12649//11392 12650//11393 12651//11394 12652//11395 +f 12645//11388 12649//11392 12652//11395 12646//11389 +f 12653//11396 12654//11397 12634//11377 12633//11376 +f 12644//11387 12653//11396 12633//11376 12627//11370 +f 12653//11396 12644//11387 12648//11391 12655//11398 +f 12654//11397 12653//11396 12655//11398 12656//11399 +f 12657//11400 12658//11401 12659//11402 12660//11403 +f 12636//11379 12657//11400 12660//11403 12599//11342 +f 12657//11400 12636//11379 12638//11381 12661//11404 +f 12658//11401 12657//11400 12661//11404 12662//11405 +f 12663//11406 12598//11341 12599//11342 12660//11403 +f 12664//11407 12663//11406 12660//11403 12659//11402 +f 12663//11406 12664//11407 12665//11408 12666//11409 +f 12598//11341 12663//11406 12666//11409 12589//11332 +f 12667//11410 12668//11411 12638//11381 12637//11380 +f 12654//11397 12667//11410 12637//11380 12634//11377 +f 12667//11410 12654//11397 12656//11399 12669//11412 +f 12668//11411 12667//11410 12669//11412 12670//11413 +f 12671//11414 12672//11415 12670//11413 12669//11412 +f 12673//11416 12671//11414 12669//11412 12656//11399 +f 12671//11414 12673//11416 12674//11417 12675//11418 +f 12672//11415 12671//11414 12675//11418 12676//11419 +f 12677//11420 12673//11416 12656//11399 12655//11398 +f 12678//11421 12677//11420 12655//11398 12648//11391 +f 12677//11420 12678//11421 12679//11422 12680//11423 +f 12673//11416 12677//11420 12680//11423 12674//11417 +f 12681//11424 12682//11425 12683//11426 12684//11427 +f 12678//11421 12681//11424 12684//11427 12679//11422 +f 12681//11424 12678//11421 12648//11391 12647//11390 +f 12682//11425 12681//11424 12647//11390 12646//11389 +f 12685//11428 12686//11429 12674//11417 12680//11423 +f 12687//11430 12685//11428 12680//11423 12679//11422 +f 12685//11428 12687//11430 12688//11431 12689//11432 +f 12686//11429 12685//11428 12689//11432 12690//11433 +f 12691//11434 12692//11435 12693//11436 12694//11437 +f 12682//11425 12691//11434 12694//11437 12683//11426 +f 12691//11434 12682//11425 12646//11389 12652//11395 +f 12692//11435 12691//11434 12652//11395 12651//11394 +f 12695//11438 12687//11430 12679//11422 12684//11427 +f 12696//11439 12695//11438 12684//11427 12683//11426 +f 12695//11438 12696//11439 12697//11440 12698//11441 +f 12687//11430 12695//11438 12698//11441 12688//11431 +f 12699//11442 12696//11439 12683//11426 12694//11437 +f 12700//11443 12699//11442 12694//11437 12693//11436 +f 12699//11442 12700//11443 12701//11444 12702//11445 +f 12696//11439 12699//11442 12702//11445 12697//11440 +f 12703//11446 12704//11447 12705//11448 12706//11449 +f 12692//11435 12703//11446 12706//11449 12693//11436 +f 12703//11446 12692//11435 12651//11394 12707//11450 +f 12704//11447 12703//11446 12707//11450 12708//11451 +f 12709//11452 12710//11453 12711//11454 12712//11455 +f 12700//11443 12709//11452 12712//11455 12701//11444 +f 12709//11452 12700//11443 12693//11436 12706//11449 +f 12710//11453 12709//11452 12706//11449 12705//11448 +f 12713//11456 12714//11457 12697//11440 12702//11445 +f 12715//11458 12713//11456 12702//11445 12701//11444 +f 12713//11456 12715//11458 12716//11459 12717//11460 +f 12714//11457 12713//11456 12717//11460 12718//11461 +f 12719//11462 12720//11463 12708//11451 12707//11450 +f 12650//11393 12719//11462 12707//11450 12651//11394 +f 12719//11462 12650//11393 12641//11384 12721//11464 +f 12720//11463 12719//11462 12721//11464 12722//11465 +f 12723//11466 12724//11467 12688//11431 12698//11441 +f 12714//11457 12723//11466 12698//11441 12697//11440 +f 12723//11466 12714//11457 12718//11461 12725//11468 +f 12724//11467 12723//11466 12725//11468 12726//11469 +f 12727//11470 12728//11471 12722//11465 12721//11464 +f 12640//11383 12727//11470 12721//11464 12641//11384 +f 12727//11470 12640//11383 12620//11363 12729//11472 +f 12728//11471 12727//11470 12729//11472 12730//11473 +f 12731//11474 12732//11475 12705//11448 12704//11447 +f 12733//11476 12731//11474 12704//11447 12708//11451 +f 12731//11474 12733//11476 12734//11477 12735//11478 +f 12732//11475 12731//11474 12735//11478 12736//11479 +f 12737//11480 12738//11481 12730//11473 12729//11472 +f 12619//11362 12737//11480 12729//11472 12620//11363 +f 12737//11480 12619//11362 12614//11357 12739//11482 +f 12738//11481 12737//11480 12739//11482 12740//11483 +f 12741//11484 12733//11476 12708//11451 12720//11463 +f 12742//11485 12741//11484 12720//11463 12722//11465 +f 12741//11484 12742//11485 12743//11486 12744//11487 +f 12733//11476 12741//11484 12744//11487 12734//11477 +f 12745//11488 12742//11485 12722//11465 12728//11471 +f 12746//11489 12745//11488 12728//11471 12730//11473 +f 12745//11488 12746//11489 12747//11490 12748//11491 +f 12742//11485 12745//11488 12748//11491 12743//11486 +f 12749//11492 12750//11493 12740//11483 12739//11482 +f 12613//11356 12749//11492 12739//11482 12614//11357 +f 12749//11492 12613//11356 12617//11360 12751//11494 +f 12750//11493 12749//11492 12751//11494 12752//11495 +f 12753//11496 12754//11497 12755//11498 12756//11499 +f 12746//11489 12753//11496 12756//11499 12747//11490 +f 12753//11496 12746//11489 12730//11473 12738//11481 +f 12754//11497 12753//11496 12738//11481 12740//11483 +f 12757//11500 12758//11501 12743//11486 12748//11491 +f 12759//11502 12757//11500 12748//11491 12747//11490 +f 12757//11500 12759//11502 12760//11503 12761//11504 +f 12758//11501 12757//11500 12761//11504 12762//11505 +f 12763//11506 12759//11502 12747//11490 12756//11499 +f 12764//11507 12763//11506 12756//11499 12755//11498 +f 12763//11506 12764//11507 12765//11508 12766//11509 +f 12759//11502 12763//11506 12766//11509 12760//11503 +f 12767//11510 12768//11511 12769//11512 12770//11513 +f 12754//11497 12767//11510 12770//11513 12755//11498 +f 12767//11510 12754//11497 12740//11483 12750//11493 +f 12768//11511 12767//11510 12750//11493 12752//11495 +f 12771//11514 12772//11515 12734//11477 12744//11487 +f 12758//11501 12771//11514 12744//11487 12743//11486 +f 12771//11514 12758//11501 12762//11505 12773//11516 +f 12772//11515 12771//11514 12773//11516 12774//11517 +f 12775//11518 12764//11507 12755//11498 12770//11513 +f 12776//11519 12775//11518 12770//11513 12769//11512 +f 12775//11518 12776//11519 12777//11520 12778//11521 +f 12764//11507 12775//11518 12778//11521 12765//11508 +f 12779//11522 12780//11523 12475//11218 12781//11524 +f 12776//11519 12779//11522 12781//11524 12777//11520 +f 12779//11522 12776//11519 12769//11512 12782//11525 +f 12780//11523 12779//11522 12782//11525 12518//11261 +f 12783//11526 12784//11527 12752//11495 12751//11494 +f 12629//11372 12783//11526 12751//11494 12617//11360 +f 12783//11526 12629//11372 12532//11275 12531//11274 +f 12784//11527 12783//11526 12531//11274 12515//11258 +f 12785//11528 12530//11273 12532//11275 12630//11373 +f 12565//11308 12785//11528 12630//11373 12566//11309 +f 12785//11528 12565//11308 12528//11271 12527//11270 +f 12530//11273 12785//11528 12527//11270 12506//11249 +f 12786//11529 12768//11511 12752//11495 12784//11527 +f 12514//11257 12786//11529 12784//11527 12515//11258 +f 12786//11529 12514//11257 12518//11261 12782//11525 +f 12768//11511 12786//11529 12782//11525 12769//11512 +f 12787//11530 12780//11523 12518//11261 12517//11260 +f 12484//11227 12787//11530 12517//11260 12485//11228 +f 12787//11530 12484//11227 12467//11210 12476//11219 +f 12780//11523 12787//11530 12476//11219 12475//11218 +f 12788//11531 12789//11532 12777//11520 12781//11524 +f 12474//11217 12788//11531 12781//11524 12475//11218 +f 12788//11531 12474//11217 12471//11214 12790//11533 +f 12789//11532 12788//11531 12790//11533 12791//11534 +f 12792//11535 12793//11536 12765//11508 12778//11521 +f 12789//11532 12792//11535 12778//11521 12777//11520 +f 12792//11535 12789//11532 12791//11534 12794//11537 +f 12793//11536 12792//11535 12794//11537 12795//11538 +f 12796//11539 12797//11540 12791//11534 12790//11533 +f 12470//11213 12796//11539 12790//11533 12471//11214 +f 12796//11539 12470//11213 12447//11190 12798//11541 +f 12797//11540 12796//11539 12798//11541 12799//11542 +f 12800//11543 12801//11544 12760//11503 12766//11509 +f 12793//11536 12800//11543 12766//11509 12765//11508 +f 12800//11543 12793//11536 12795//11538 12802//11545 +f 12801//11544 12800//11543 12802//11545 12803//11546 +f 12804//11547 12805//11548 12795//11538 12794//11537 +f 12797//11540 12804//11547 12794//11537 12791//11534 +f 12804//11547 12797//11540 12799//11542 12806//11549 +f 12805//11548 12804//11547 12806//11549 12807//11550 +f 12808//11551 12809//11552 12799//11542 12798//11541 +f 12446//11189 12808//11551 12798//11541 12447//11190 +f 12808//11551 12446//11189 12443//11186 12810//11553 +f 12809//11552 12808//11551 12810//11553 12811//11554 +f 12812//11555 12813//11556 12762//11505 12761//11504 +f 12801//11544 12812//11555 12761//11504 12760//11503 +f 12812//11555 12801//11544 12803//11546 12814//11557 +f 12813//11556 12812//11555 12814//11557 12815//11558 +f 12816//11559 12817//11560 12803//11546 12802//11545 +f 12805//11548 12816//11559 12802//11545 12795//11538 +f 12816//11559 12805//11548 12807//11550 12818//11561 +f 12817//11560 12816//11559 12818//11561 12819//11562 +f 12820//11563 12821//11564 12807//11550 12806//11549 +f 12809//11552 12820//11563 12806//11549 12799//11542 +f 12820//11563 12809//11552 12811//11554 12822//11565 +f 12821//11564 12820//11563 12822//11565 12823//11566 +f 12824//11567 12825//11568 12811//11554 12810//11553 +f 12442//11185 12824//11567 12810//11553 12443//11186 +f 12824//11567 12442//11185 12419//11162 12826//11569 +f 12825//11568 12824//11567 12826//11569 12827//11570 +f 12828//11571 12829//11572 12827//11570 12826//11569 +f 12418//11161 12828//11571 12826//11569 12419//11162 +f 12828//11571 12418//11161 12345//11088 12344//11087 +f 12829//11572 12828//11571 12344//11087 12335//11078 +f 12830//11573 12831//11574 12823//11566 12822//11565 +f 12825//11568 12830//11573 12822//11565 12811//11554 +f 12830//11573 12825//11568 12827//11570 12832//11575 +f 12831//11574 12830//11573 12832//11575 12833//11576 +f 12834//11577 12835//11578 12819//11562 12818//11561 +f 12821//11564 12834//11577 12818//11561 12807//11550 +f 12834//11577 12821//11564 12823//11566 12836//11579 +f 12835//11578 12834//11577 12836//11579 12837//11580 +f 12838//11581 12839//11582 12833//11576 12832//11575 +f 12829//11572 12838//11581 12832//11575 12827//11570 +f 12838//11581 12829//11572 12335//11078 12334//11077 +f 12839//11582 12838//11581 12334//11077 12333//11076 +f 12840//11583 12841//11584 12837//11580 12836//11579 +f 12831//11574 12840//11583 12836//11579 12823//11566 +f 12840//11583 12831//11574 12833//11576 12842//11585 +f 12841//11584 12840//11583 12842//11585 12843//11586 +f 12844//11587 12845//11588 12843//11586 12842//11585 +f 12839//11582 12844//11587 12842//11585 12833//11576 +f 12844//11587 12839//11582 12333//11076 12846//11589 +f 12845//11588 12844//11587 12846//11589 12847//11590 +f 12848//11591 12849//11592 12847//11590 12846//11589 +f 12332//11075 12848//11591 12846//11589 12333//11076 +f 12848//11591 12332//11075 12309//11053 12308//11052 +f 12849//11592 12848//11591 12308//11052 12305//11049 +f 12850//11593 12851//11594 12852//11595 12853//11596 +f 12841//11584 12850//11593 12853//11596 12837//11580 +f 12850//11593 12841//11584 12843//11586 12854//11597 +f 12851//11594 12850//11593 12854//11597 12855//11598 +f 12856//11599 12857//11600 12858//11601 12859//11602 +f 12849//11592 12856//11599 12859//11602 12847//11590 +f 12856//11599 12849//11592 12305//11049 12304//11048 +f 12857//11600 12856//11599 12304//11048 12303//11047 +f 12860//11603 12861//11604 12855//11598 12854//11597 +f 12845//11588 12860//11603 12854//11597 12843//11586 +f 12860//11603 12845//11588 12847//11590 12859//11602 +f 12861//11604 12860//11603 12859//11602 12858//11601 +f 12862//11605 12863//11606 12864//11607 12865//11608 +f 12857//11600 12862//11605 12865//11608 12858//11601 +f 12862//11605 12857//11600 12303//11047 12866//11609 +f 12863//11606 12862//11605 12866//11609 12867//11610 +f 12868//11611 12869//11612 12870//11613 12871//11614 +f 12861//11604 12868//11611 12871//11614 12855//11598 +f 12868//11611 12861//11604 12858//11601 12865//11608 +f 12869//11612 12868//11611 12865//11608 12864//11607 +f 12872//11615 12873//11616 12874//11617 12875//11618 +f 12851//11594 12872//11615 12875//11618 12852//11595 +f 12872//11615 12851//11594 12855//11598 12871//11614 +f 12873//11616 12872//11615 12871//11614 12870//11613 +f 12876//11619 12835//11578 12837//11580 12853//11596 +f 12877//11620 12876//11619 12853//11596 12852//11595 +f 12876//11619 12877//11620 12878//11621 12879//11622 +f 12835//11578 12876//11619 12879//11622 12819//11562 +f 12880//11623 12877//11620 12852//11595 12875//11618 +f 12881//11624 12880//11623 12875//11618 12874//11617 +f 12880//11623 12881//11624 12882//11625 12883//11626 +f 12877//11620 12880//11623 12883//11626 12878//11621 +f 12884//11627 12817//11560 12819//11562 12879//11622 +f 12885//11628 12884//11627 12879//11622 12878//11621 +f 12884//11627 12885//11628 12815//11558 12814//11557 +f 12817//11560 12884//11627 12814//11557 12803//11546 +f 12886//11629 12887//11630 12888//11631 12889//11632 +f 12885//11628 12886//11629 12889//11632 12815//11558 +f 12886//11629 12885//11628 12878//11621 12883//11626 +f 12887//11630 12886//11629 12883//11626 12882//11625 +f 12890//11633 12891//11634 12774//11517 12773//11516 +f 12813//11556 12890//11633 12773//11516 12762//11505 +f 12890//11633 12813//11556 12815//11558 12889//11632 +f 12891//11634 12890//11633 12889//11632 12888//11631 +f 12892//11635 12893//11636 12894//11637 12895//11638 +f 12887//11630 12892//11635 12895//11638 12888//11631 +f 12892//11635 12887//11630 12882//11625 12896//11639 +f 12893//11636 12892//11635 12896//11639 12897//11640 +f 12898//11641 12899//11642 12736//11479 12735//11478 +f 12772//11515 12898//11641 12735//11478 12734//11477 +f 12898//11641 12772//11515 12774//11517 12900//11643 +f 12899//11642 12898//11641 12900//11643 12901//11644 +f 12902//11645 12903//11646 12901//11644 12900//11643 +f 12891//11634 12902//11645 12900//11643 12774//11517 +f 12902//11645 12891//11634 12888//11631 12895//11638 +f 12903//11646 12902//11645 12895//11638 12894//11637 +f 12904//11647 12905//11648 12711//11454 12710//11453 +f 12732//11475 12904//11647 12710//11453 12705//11448 +f 12904//11647 12732//11475 12736//11479 12906//11649 +f 12905//11648 12904//11647 12906//11649 12907//11650 +f 12908//11651 12909//11652 12907//11650 12906//11649 +f 12899//11642 12908//11651 12906//11649 12736//11479 +f 12908//11651 12899//11642 12901//11644 12910//11653 +f 12909//11652 12908//11651 12910//11653 12911//11654 +f 12912//11655 12913//11656 12911//11654 12910//11653 +f 12903//11646 12912//11655 12910//11653 12901//11644 +f 12912//11655 12903//11646 12894//11637 12914//11657 +f 12913//11656 12912//11655 12914//11657 12915//11658 +f 12916//11659 12917//11660 12897//11640 12896//11639 +f 12881//11624 12916//11659 12896//11639 12882//11625 +f 12916//11659 12881//11624 12874//11617 12918//11661 +f 12917//11660 12916//11659 12918//11661 12919//11662 +f 12920//11663 12921//11664 12915//11658 12914//11657 +f 12893//11636 12920//11663 12914//11657 12894//11637 +f 12920//11663 12893//11636 12897//11640 12922//11665 +f 12921//11664 12920//11663 12922//11665 12923//11666 +f 12924//11667 12925//11668 12919//11662 12918//11661 +f 12873//11616 12924//11667 12918//11661 12874//11617 +f 12924//11667 12873//11616 12870//11613 12926//11669 +f 12925//11668 12924//11667 12926//11669 12927//11670 +f 12928//11671 12929//11672 12923//11666 12922//11665 +f 12917//11660 12928//11671 12922//11665 12897//11640 +f 12928//11671 12917//11660 12919//11662 12930//11673 +f 12929//11672 12928//11671 12930//11673 12931//11674 +f 12932//11675 12933//11676 12927//11670 12926//11669 +f 12869//11612 12932//11675 12926//11669 12870//11613 +f 12932//11675 12869//11612 12864//11607 12934//11677 +f 12933//11676 12932//11675 12934//11677 12935//11678 +f 12936//11679 12937//11680 12931//11674 12930//11673 +f 12925//11668 12936//11679 12930//11673 12919//11662 +f 12936//11679 12925//11668 12927//11670 12938//11681 +f 12937//11680 12936//11679 12938//11681 12939//11682 +f 12940//11683 12941//11684 12942//11685 12943//11686 +f 12921//11664 12940//11683 12943//11686 12915//11658 +f 12940//11683 12921//11664 12923//11666 12944//11687 +f 12941//11684 12940//11683 12944//11687 12945//11688 +f 12946//11689 12947//11690 12945//11688 12944//11687 +f 12929//11672 12946//11689 12944//11687 12923//11666 +f 12946//11689 12929//11672 12931//11674 12948//11691 +f 12947//11690 12946//11689 12948//11691 12949//11692 +f 12950//11693 12913//11656 12915//11658 12943//11686 +f 12951//11694 12950//11693 12943//11686 12942//11685 +f 12950//11693 12951//11694 12952//11695 12953//11696 +f 12913//11656 12950//11693 12953//11696 12911//11654 +f 12954//11697 12955//11698 12939//11682 12938//11681 +f 12933//11676 12954//11697 12938//11681 12927//11670 +f 12954//11697 12933//11676 12935//11678 12956//11699 +f 12955//11698 12954//11697 12956//11699 12957//11700 +f 12958//11701 12909//11652 12911//11654 12953//11696 +f 12959//11702 12958//11701 12953//11696 12952//11695 +f 12958//11701 12959//11702 12960//11703 12961//11704 +f 12909//11652 12958//11701 12961//11704 12907//11650 +f 12962//11705 12963//11706 12935//11678 12934//11677 +f 12863//11606 12962//11705 12934//11677 12864//11607 +f 12962//11705 12863//11606 12867//11610 12964//11707 +f 12963//11706 12962//11705 12964//11707 12965//11708 +f 12966//11709 12967//11710 12867//11610 12866//11609 +f 12302//11046 12966//11709 12866//11609 12303//11047 +f 12966//11709 12302//11046 12181//10925 12180//10924 +f 12967//11710 12966//11709 12180//10924 12171//10915 +f 12968//11711 12969//11712 12965//11708 12964//11707 +f 12967//11710 12968//11711 12964//11707 12867//11610 +f 12968//11711 12967//11710 12171//10915 12170//10914 +f 12969//11712 12968//11711 12170//10914 12174//10918 +f 12970//11713 12971//11714 12957//11700 12956//11699 +f 12963//11706 12970//11713 12956//11699 12935//11678 +f 12970//11713 12963//11706 12965//11708 12972//11715 +f 12971//11714 12970//11713 12972//11715 12973//11716 +f 12974//11717 12975//11718 12174//10918 12173//10917 +f 12152//10896 12974//11717 12173//10917 12153//10897 +f 12974//11717 12152//10896 12088//10832 12976//11719 +f 12975//11718 12974//11717 12976//11719 12977//11720 +f 12978//11721 12979//11722 12973//11716 12972//11715 +f 12969//11712 12978//11721 12972//11715 12965//11708 +f 12978//11721 12969//11712 12174//10918 12975//11718 +f 12979//11722 12978//11721 12975//11718 12977//11720 +f 12980//11723 12981//11724 12977//11720 12976//11719 +f 12087//10831 12980//11723 12976//11719 12088//10832 +f 12980//11723 12087//10831 12066//10810 12065//10809 +f 12981//11724 12980//11723 12065//10809 12064//10808 +f 12982//11725 12979//11722 12977//11720 12981//11724 +f 12068//10812 12982//11725 12981//11724 12064//10808 +f 12982//11725 12068//10812 12070//10814 12983//11726 +f 12979//11722 12982//11725 12983//11726 12973//11716 +f 12984//11727 12971//11714 12973//11716 12983//11726 +f 12985//11728 12984//11727 12983//11726 12070//10814 +f 12984//11727 12985//11728 12986//11729 12987//11730 +f 12971//11714 12984//11727 12987//11730 12957//11700 +f 12988//11731 12985//11728 12070//10814 12069//10813 +f 12058//10802 12988//11731 12069//10813 12048//10792 +f 12988//11731 12058//10802 12060//10804 12989//11732 +f 12985//11728 12988//11731 12989//11732 12986//11729 +f 12990//11733 12955//11698 12957//11700 12987//11730 +f 12991//11734 12990//11733 12987//11730 12986//11729 +f 12990//11733 12991//11734 12992//11735 12993//11736 +f 12955//11698 12990//11733 12993//11736 12939//11682 +f 12994//11737 12991//11734 12986//11729 12989//11732 +f 12995//11738 12994//11737 12989//11732 12060//10804 +f 12994//11737 12995//11738 12996//11739 12997//11740 +f 12991//11734 12994//11737 12997//11740 12992//11735 +f 12998//11741 12995//11738 12060//10804 12059//10803 +f 12999//11742 12998//11741 12059//10803 12038//10782 +f 12998//11741 12999//11742 13000//11743 13001//11744 +f 12995//11738 12998//11741 13001//11744 12996//11739 +f 13002//11745 12937//11680 12939//11682 12993//11736 +f 13003//11746 13002//11745 12993//11736 12992//11735 +f 13002//11745 13003//11746 12949//11692 12948//11691 +f 12937//11680 13002//11745 12948//11691 12931//11674 +f 13004//11747 13003//11746 12992//11735 12997//11740 +f 13005//11748 13004//11747 12997//11740 12996//11739 +f 13004//11747 13005//11748 13006//11749 13007//11750 +f 13003//11746 13004//11747 13007//11750 12949//11692 +f 13008//11751 13009//11752 13010//11753 13011//11754 +f 12947//11690 13008//11751 13011//11754 12945//11688 +f 13008//11751 12947//11690 12949//11692 13007//11750 +f 13009//11752 13008//11751 13007//11750 13006//11749 +f 13012//11755 13013//11756 13014//11757 13015//11758 +f 13005//11748 13012//11755 13015//11758 13006//11749 +f 13012//11755 13005//11748 12996//11739 13001//11744 +f 13013//11756 13012//11755 13001//11744 13000//11743 +f 13016//11759 13017//11760 13018//11761 13019//11762 +f 13009//11752 13016//11759 13019//11762 13010//11753 +f 13016//11759 13009//11752 13006//11749 13015//11758 +f 13017//11760 13016//11759 13015//11758 13014//11757 +f 13020//11763 12941//11684 12945//11688 13011//11754 +f 13021//11764 13020//11763 13011//11754 13010//11753 +f 13020//11763 13021//11764 13022//11765 13023//11766 +f 12941//11684 13020//11763 13023//11766 12942//11685 +f 13024//11767 13021//11764 13010//11753 13019//11762 +f 13025//11768 13024//11767 13019//11762 13018//11761 +f 13024//11767 13025//11768 13026//11769 13027//11770 +f 13021//11764 13024//11767 13027//11770 13022//11765 +f 13028//11771 12951//11694 12942//11685 13023//11766 +f 13029//11772 13028//11771 13023//11766 13022//11765 +f 13028//11771 13029//11772 13030//11773 13031//11774 +f 12951//11694 13028//11771 13031//11774 12952//11695 +f 13032//11775 13029//11772 13022//11765 13027//11770 +f 13033//11776 13032//11775 13027//11770 13026//11769 +f 13032//11775 13033//11776 13034//11777 13035//11778 +f 13029//11772 13032//11775 13035//11778 13030//11773 +f 13036//11779 12959//11702 12952//11695 13031//11774 +f 13037//11780 13036//11779 13031//11774 13030//11773 +f 13036//11779 13037//11780 13038//11781 13039//11782 +f 12959//11702 13036//11779 13039//11782 12960//11703 +f 13040//11783 13037//11780 13030//11773 13035//11778 +f 13041//11784 13040//11783 13035//11778 13034//11777 +f 13040//11783 13041//11784 13042//11785 13043//11786 +f 13037//11780 13040//11783 13043//11786 13038//11781 +f 13044//11787 13045//11788 13046//11789 13047//11790 +f 13033//11776 13044//11787 13047//11790 13034//11777 +f 13044//11787 13033//11776 13026//11769 13048//11791 +f 13045//11788 13044//11787 13048//11791 13049//11792 +f 13050//11793 13051//11794 13052//11795 13053//11796 +f 13041//11784 13050//11793 13053//11796 13042//11785 +f 13050//11793 13041//11784 13034//11777 13047//11790 +f 13051//11794 13050//11793 13047//11790 13046//11789 +f 13054//11797 13055//11798 13038//11781 13043//11786 +f 13056//11799 13054//11797 13043//11786 13042//11785 +f 13054//11797 13056//11799 13057//11800 13058//11801 +f 13055//11798 13054//11797 13058//11801 13059//11802 +f 13060//11803 13061//11804 13049//11792 13048//11791 +f 13025//11768 13060//11803 13048//11791 13026//11769 +f 13060//11803 13025//11768 13018//11761 13062//11805 +f 13061//11804 13060//11803 13062//11805 13063//11806 +f 13064//11807 13065//11808 12960//11703 13039//11782 +f 13055//11798 13064//11807 13039//11782 13038//11781 +f 13064//11807 13055//11798 13059//11802 13066//11809 +f 13065//11808 13064//11807 13066//11809 13067//11810 +f 13068//11811 13069//11812 13063//11806 13062//11805 +f 13017//11760 13068//11811 13062//11805 13018//11761 +f 13068//11811 13017//11760 13014//11757 13070//11813 +f 13069//11812 13068//11811 13070//11813 13071//11814 +f 13072//11815 12905//11648 12907//11650 12961//11704 +f 13065//11808 13072//11815 12961//11704 12960//11703 +f 13072//11815 13065//11808 13067//11810 13073//11816 +f 12905//11648 13072//11815 13073//11816 12711//11454 +f 13074//11817 12715//11458 12701//11444 12712//11455 +f 13073//11816 13074//11817 12712//11455 12711//11454 +f 13074//11817 13073//11816 13067//11810 13075//11818 +f 12715//11458 13074//11817 13075//11818 12716//11459 +f 13076//11819 13077//11820 12716//11459 13075//11818 +f 13066//11809 13076//11819 13075//11818 13067//11810 +f 13076//11819 13066//11809 13059//11802 13078//11821 +f 13077//11820 13076//11819 13078//11821 13079//11822 +f 13080//11823 13081//11824 13079//11822 13078//11821 +f 13058//11801 13080//11823 13078//11821 13059//11802 +f 13080//11823 13058//11801 13057//11800 13082//11825 +f 13081//11824 13080//11823 13082//11825 11624//10368 +f 13083//11826 13084//11827 12718//11461 12717//11460 +f 13077//11820 13083//11826 12717//11460 12716//11459 +f 13083//11826 13077//11820 13079//11822 13085//11828 +f 13084//11827 13083//11826 13085//11828 11614//10358 +f 13086//11829 11612//10356 11614//10358 13085//11828 +f 13081//11824 13086//11829 13085//11828 13079//11822 +f 13086//11829 13081//11824 11624//10368 11623//10367 +f 11612//10356 13086//11829 11623//10367 11610//10354 +f 13087//11830 13088//11831 12726//11469 12725//11468 +f 13084//11827 13087//11830 12725//11468 12718//11461 +f 13087//11830 13084//11827 11614//10358 11613//10357 +f 13088//11831 13087//11830 11613//10357 11602//10346 +f 13089//11832 11596//10340 11598//10342 13090//11833 +f 13088//11831 13089//11832 13090//11833 12726//11469 +f 13089//11832 13088//11831 11602//10346 11601//10345 +f 11596//10340 13089//11832 11601//10345 11584//10328 +f 13091//11834 12724//11467 12726//11469 13090//11833 +f 13092//11835 13091//11834 13090//11833 11598//10342 +f 13091//11834 13092//11835 12690//11433 12689//11432 +f 12724//11467 13091//11834 12689//11432 12688//11431 +f 13093//11836 11590//10334 11594//10338 13094//11837 +f 13092//11835 13093//11836 13094//11837 12690//11433 +f 13093//11836 13092//11835 11598//10342 11597//10341 +f 11590//10334 13093//11836 11597//10341 11580//10324 +f 13095//11838 12686//11429 12690//11433 13094//11837 +f 13096//11839 13095//11838 13094//11837 11594//10338 +f 13095//11838 13096//11839 12676//11419 12675//11418 +f 12686//11429 13095//11838 12675//11418 12674//11417 +f 13097//11840 13098//11841 13099//11842 13100//11843 +f 12672//11415 13097//11840 13100//11843 12670//11413 +f 13097//11840 12672//11415 12676//11419 13101//11844 +f 13098//11841 13097//11840 13101//11844 13102//11845 +f 13103//11846 12668//11411 12670//11413 13100//11843 +f 13104//11847 13103//11846 13100//11843 13099//11842 +f 13103//11846 13104//11847 12662//11405 12661//11404 +f 12668//11411 13103//11846 12661//11404 12638//11381 +f 13105//11848 11622//10366 11624//10368 13082//11825 +f 13106//11849 13105//11848 13082//11825 13057//11800 +f 13105//11848 13106//11849 13107//11850 13108//11851 +f 11622//10366 13105//11848 13108//11851 11620//10364 +f 13109//11852 13110//11853 13107//11850 13106//11849 +f 13056//11799 13109//11852 13106//11849 13057//11800 +f 13109//11852 13056//11799 13042//11785 13053//11796 +f 13110//11853 13109//11852 13053//11796 13052//11795 +f 13111//11854 11616//10360 11620//10364 13108//11851 +f 13112//11855 13111//11854 13108//11851 13107//11850 +f 13111//11854 13112//11855 11636//10380 11635//10379 +f 11616//10360 13111//11854 11635//10379 11617//10361 +f 13113//11856 13114//11857 11636//10380 13112//11855 +f 13110//11853 13113//11856 13112//11855 13107//11850 +f 13113//11856 13110//11853 13052//11795 13115//11858 +f 13114//11857 13113//11856 13115//11858 13116//11859 +f 13117//11860 11660//10404 11633//10377 11632//10376 +f 13114//11857 13117//11860 11632//10376 11636//10380 +f 13117//11860 13114//11857 13116//11859 13118//11861 +f 11660//10404 13117//11860 13118//11861 11661//10405 +f 13119//11862 13120//11863 13116//11859 13115//11858 +f 13051//11794 13119//11862 13115//11858 13052//11795 +f 13119//11862 13051//11794 13046//11789 13121//11864 +f 13120//11863 13119//11862 13121//11864 13122//11865 +f 13123//11866 13124//11867 11661//10405 13118//11861 +f 13120//11863 13123//11866 13118//11861 13116//11859 +f 13123//11866 13120//11863 13122//11865 13125//11868 +f 13124//11867 13123//11866 13125//11868 13126//11869 +f 13127//11870 13128//11871 13122//11865 13121//11864 +f 13045//11788 13127//11870 13121//11864 13046//11789 +f 13127//11870 13045//11788 13049//11792 13129//11872 +f 13128//11871 13127//11870 13129//11872 13130//11873 +f 13131//11874 13132//11875 11650//10394 11662//10406 +f 13124//11867 13131//11874 11662//10406 11661//10405 +f 13131//11874 13124//11867 13126//11869 13133//11876 +f 13132//11875 13131//11874 13133//11876 13134//11877 +f 13135//11878 13136//11879 13126//11869 13125//11868 +f 13128//11871 13135//11878 13125//11868 13122//11865 +f 13135//11878 13128//11871 13130//11873 13137//11880 +f 13136//11879 13135//11878 13137//11880 13138//11881 +f 13139//11882 13140//11883 13130//11873 13129//11872 +f 13061//11804 13139//11882 13129//11872 13049//11792 +f 13139//11882 13061//11804 13063//11806 13141//11884 +f 13140//11883 13139//11882 13141//11884 13142//11885 +f 13143//11886 13144//11887 11652//10396 11651//10395 +f 13132//11875 13143//11886 11651//10395 11650//10394 +f 13143//11886 13132//11875 13134//11877 13145//11888 +f 13144//11887 13143//11886 13145//11888 13146//11889 +f 13147//11890 13148//11891 13134//11877 13133//11876 +f 13136//11879 13147//11890 13133//11876 13126//11869 +f 13147//11890 13136//11879 13138//11881 13149//11892 +f 13148//11891 13147//11890 13149//11892 13150//11893 +f 13151//11894 13152//11895 13138//11881 13137//11880 +f 13140//11883 13151//11894 13137//11880 13130//11873 +f 13151//11894 13140//11883 13142//11885 13153//11896 +f 13152//11895 13151//11894 13153//11896 13154//11897 +f 13155//11898 11676//10420 11655//10399 11658//10402 +f 13144//11887 13155//11898 11658//10402 11652//10396 +f 13155//11898 13144//11887 13146//11889 13156//11899 +f 11676//10420 13155//11898 13156//11899 11677//10421 +f 13157//11900 13158//11901 13146//11889 13145//11888 +f 13148//11891 13157//11900 13145//11888 13134//11877 +f 13157//11900 13148//11891 13150//11893 13159//11902 +f 13158//11901 13157//11900 13159//11902 11708//10452 +f 13160//11903 11692//10436 11677//10421 13156//11899 +f 13158//11901 13160//11903 13156//11899 13146//11889 +f 13160//11903 13158//11901 11708//10452 11707//10451 +f 11692//10436 13160//11903 11707//10451 11693//10437 +f 13161//11904 13162//11905 11828//10572 11827//10571 +f 11704//10448 13161//11904 11827//10571 11705//10449 +f 13161//11904 11704//10448 11708//10452 13159//11902 +f 13162//11905 13161//11904 13159//11902 13150//11893 +f 13163//11906 13162//11905 13150//11893 13149//11892 +f 13152//11895 13163//11906 13149//11892 13138//11881 +f 13163//11906 13152//11895 13154//11897 13164//11907 +f 13162//11905 13163//11906 13164//11907 11828//10572 +f 13165//11908 13166//11909 11838//10582 11837//10581 +f 11826//10570 13165//11908 11837//10581 11824//10568 +f 13165//11908 11826//10570 11828//10572 13164//11907 +f 13166//11909 13165//11908 13164//11907 13154//11897 +f 13167//11910 13168//11911 12034//10778 12033//10777 +f 11836//10580 13167//11910 12033//10777 11834//10578 +f 13167//11910 11836//10580 11838//10582 13169//11912 +f 13168//11911 13167//11910 13169//11912 13170//11913 +f 13171//11914 13172//11915 13170//11913 13169//11912 +f 13166//11909 13171//11914 13169//11912 11838//10582 +f 13171//11914 13166//11909 13154//11897 13153//11896 +f 13172//11915 13171//11914 13153//11896 13142//11885 +f 13173//11916 13174//11917 12042//10786 12041//10785 +f 13168//11911 13173//11916 12041//10785 12034//10778 +f 13173//11916 13168//11911 13170//11913 13175//11918 +f 13174//11917 13173//11916 13175//11918 13071//11814 +f 13176//11919 12999//11742 12038//10782 12037//10781 +f 12040//10784 13176//11919 12037//10781 12030//10774 +f 13176//11919 12040//10784 12042//10786 13177//11920 +f 12999//11742 13176//11919 13177//11920 13000//11743 +f 13178//11921 13069//11812 13071//11814 13175//11918 +f 13172//11915 13178//11921 13175//11918 13170//11913 +f 13178//11921 13172//11915 13142//11885 13141//11884 +f 13069//11812 13178//11921 13141//11884 13063//11806 +f 13179//11922 13013//11756 13000//11743 13177//11920 +f 13174//11917 13179//11922 13177//11920 12042//10786 +f 13179//11922 13174//11917 13071//11814 13070//11813 +f 13013//11756 13179//11922 13070//11813 13014//11757 +f 13180//11923 13181//11924 12553//11296 12552//11295 +f 12559//11302 13180//11923 12552//11295 12549//11292 +f 13180//11923 12559//11302 12563//11306 12581//11324 +f 13181//11924 13180//11923 12581//11324 12580//11323 +f 13182//11925 13183//11926 12557//11300 12556//11299 +f 13181//11924 13182//11925 12556//11299 12553//11296 +f 13182//11925 13181//11924 12580//11323 13184//11927 +f 13183//11926 13182//11925 13184//11927 13185//11928 +f 13186//11929 13187//11930 13185//11928 13184//11927 +f 12579//11322 13186//11929 13184//11927 12580//11323 +f 13186//11929 12579//11322 12583//11326 13188//11931 +f 13187//11930 13186//11929 13188//11931 13189//11932 +f 13190//11933 13191//11934 13189//11932 13188//11931 +f 12585//11328 13190//11933 13188//11931 12583//11326 +f 13190//11933 12585//11328 12589//11332 12666//11409 +f 13191//11934 13190//11933 12666//11409 12665//11408 +f 13192//11935 13193//11936 12399//11142 12404//11147 +f 13194//11937 13192//11935 12404//11147 12403//11146 +f 13192//11935 13194//11937 12237//10981 12236//10980 +f 13193//11936 13192//11935 12236//10980 12233//10977 +f 13195//11938 12243//10987 12247//10991 12400//11143 +f 13193//11936 13195//11938 12400//11143 12399//11142 +f 13195//11938 13193//11936 12233//10977 12231//10975 +f 12243//10987 13195//11938 12231//10975 12230//10974 +f 13196//11939 13197//11940 11450//10194 11449//10193 +f 11430//10174 13196//11939 11449//10193 11431//10175 +f 13196//11939 11430//10174 11368//10112 13198//11941 +f 13197//11940 13196//11939 13198//11941 13199//11942 +f 13200//11943 13201//11944 13202//11945 13203//11946 +f 13204//11947 13200//11943 13203//11946 11374//10118 +f 13200//11943 13204//11947 13205//11948 13206//11949 +f 13201//11944 13200//11943 13206//11949 13207//11950 +f 13208//11951 13209//11952 13210//11953 13211//11954 +f 13204//11947 13208//11951 13211//11954 13205//11948 +f 13208//11951 13204//11947 11374//10118 11373//10117 +f 13209//11952 13208//11951 11373//10117 11372//10116 +f 13212//11955 13213//11956 13214//11957 13215//11958 +f 13209//11952 13212//11955 13215//11958 13210//11953 +f 13212//11955 13209//11952 11372//10116 11414//10158 +f 13213//11956 13212//11955 11414//10158 11413//10157 +f 13216//11959 13217//11960 13218//11961 13219//11962 +f 13213//11956 13216//11959 13219//11962 13214//11957 +f 13216//11959 13213//11956 11413//10157 11420//10164 +f 13217//11960 13216//11959 11420//10164 11419//10163 +f 13220//11963 13221//11964 13222//11965 13223//11966 +f 13217//11960 13220//11963 13223//11966 13218//11961 +f 13220//11963 13217//11960 11419//10163 11436//10180 +f 13221//11964 13220//11963 11436//10180 11435//10179 +f 13224//11967 13225//11968 13226//11969 13227//11970 +f 13221//11964 13224//11967 13227//11970 13222//11965 +f 13224//11967 13221//11964 11435//10179 11490//10234 +f 13225//11968 13224//11967 11490//10234 11489//10233 +f 13228//11971 13229//11972 13226//11969 13225//11968 +f 11502//10246 13228//11971 13225//11968 11489//10233 +f 13228//11971 11502//10246 11506//10250 13230//11973 +f 13229//11972 13228//11971 13230//11973 13231//11974 +f 13232//11975 13233//11976 13231//11974 13230//11973 +f 11664//10408 13232//11975 13230//11973 11506//10250 +f 13232//11975 11664//10408 11668//10412 13234//11977 +f 13233//11976 13232//11975 13234//11977 13235//11978 +f 13236//11979 13237//11980 13235//11978 13234//11977 +f 11670//10414 13236//11979 13234//11977 11668//10412 +f 13236//11979 11670//10414 11674//10418 13238//11981 +f 13237//11980 13236//11979 13238//11981 13239//11982 +f 13240//11983 13241//11984 13239//11982 13238//11981 +f 11680//10424 13240//11983 13238//11981 11674//10418 +f 13240//11983 11680//10424 11684//10428 13242//11985 +f 13241//11984 13240//11983 13242//11985 13243//11986 +f 13244//11987 13245//11988 13243//11986 13242//11985 +f 11686//10430 13244//11987 13242//11985 11684//10428 +f 13244//11987 11686//10430 11690//10434 13246//11989 +f 13245//11988 13244//11987 13246//11989 13247//11990 +f 13248//11991 13249//11992 13247//11990 13246//11989 +f 11714//10458 13248//11991 13246//11989 11690//10434 +f 13248//11991 11714//10458 11718//10462 13250//11993 +f 13249//11992 13248//11991 13250//11993 13251//11994 +f 13252//11995 13253//11996 13251//11994 13250//11993 +f 11720//10464 13252//11995 13250//11993 11718//10462 +f 13252//11995 11720//10464 11724//10468 13254//11997 +f 13253//11996 13252//11995 13254//11997 13255//11998 +f 13256//11999 13257//12000 13255//11998 13254//11997 +f 11730//10474 13256//11999 13254//11997 11724//10468 +f 13256//11999 11730//10474 11734//10478 13258//12001 +f 13257//12000 13256//11999 13258//12001 13259//12002 +f 13260//12003 13261//12004 13259//12002 13258//12001 +f 11740//10484 13260//12003 13258//12001 11734//10478 +f 13260//12003 11740//10484 11744//10488 13262//12005 +f 13261//12004 13260//12003 13262//12005 13263//12006 +f 13264//12007 13265//12008 13266//12009 13267//12010 +f 13262//12005 13264//12007 13267//12010 13263//12006 +f 13264//12007 13262//12005 11744//10488 11752//10496 +f 13265//12008 13264//12007 11752//10496 11751//10495 +f 13268//12011 13269//12012 13270//12013 13271//12014 +f 13265//12008 13268//12011 13271//12014 13266//12009 +f 13268//12011 13265//12008 11751//10495 11766//10510 +f 13269//12012 13268//12011 11766//10510 11765//10509 +f 13272//12015 13273//12016 13274//12017 13275//12018 +f 13269//12012 13272//12015 13275//12018 13270//12013 +f 13272//12015 13269//12012 11765//10509 11770//10514 +f 13273//12016 13272//12015 11770//10514 11389//10133 +f 13276//12019 13277//12020 13278//12021 13279//12022 +f 13273//12016 13276//12019 13279//12022 13274//12017 +f 13276//12019 13273//12016 11389//10133 11387//10131 +f 13277//12020 13276//12019 11387//10131 11386//10130 +f 13280//12023 13281//12024 13282//12025 13283//12026 +f 13277//12020 13280//12023 13283//12026 13278//12021 +f 13280//12023 13277//12020 11386//10130 13284//12027 +f 13281//12024 13280//12023 13284//12027 13285//12028 +f 13286//12029 13287//12030 13288//12031 13289//12032 +f 13281//12024 13286//12029 13289//12032 13282//12025 +f 13286//12029 13281//12024 13285//12028 13290//12033 +f 13287//12030 13286//12029 13290//12033 13291//12034 +f 13292//12035 13293//12036 11891//10635 11898//10642 +f 13294//12037 13292//12035 11898//10642 11897//10641 +f 13292//12035 13294//12037 13291//12034 13290//12033 +f 13293//12036 13292//12035 13290//12033 13285//12028 +f 13295//12038 11385//10129 11392//10136 11892//10636 +f 13293//12036 13295//12038 11892//10636 11891//10635 +f 13295//12038 13293//12036 13285//12028 13284//12027 +f 11385//10129 13295//12038 13284//12027 11386//10130 +f 13296//12039 13096//11839 11594//10338 11593//10337 +f 13297//12040 13296//12039 11593//10337 11592//10336 +f 13296//12039 13297//12040 13102//11845 13101//11844 +f 13096//11839 13296//12039 13101//11844 12676//11419 +f 13298//12041 11367//10111 11374//10118 13203//11946 +f 13299//12042 13298//12041 13203//11946 13202//11945 +f 13298//12041 13299//12042 13199//11942 13198//11941 +f 11367//10111 13298//12041 13198//11941 11368//10112 +f 13300//12043 11774//10518 11768//10512 11767//10511 +f 11760//10504 13300//12043 11767//10511 11754//10498 +f 13300//12043 11760//10504 11762//10506 11790//10534 +f 11774//10518 13300//12043 11790//10534 11775//10519 +f 13301//12044 13302//12045 13303//12046 13304//12047 +f 13305//12048 13301//12044 13304//12047 13306//12049 +f 13301//12044 13305//12048 13307//12050 13308//12051 +f 13302//12045 13301//12044 13308//12051 13309//12052 +f 13310//12053 13311//12054 13312//12055 13313//12056 +f 13314//12057 13310//12053 13313//12056 13315//12058 +f 13310//12053 13314//12057 13316//12059 13317//12060 +f 13311//12054 13310//12053 13317//12060 13318//12061 +f 13319//12062 13320//12063 13321//12064 13322//12065 +f 13323//12066 13319//12062 13322//12065 13324//12067 +f 13319//12062 13323//12066 13325//12068 13326//12069 +f 13320//12063 13319//12062 13326//12069 13327//12070 +f 13328//12071 13329//12072 13330//12073 13331//12074 +f 13332//12075 13328//12071 13331//12074 13333//12076 +f 13328//12071 13332//12075 13334//12077 13335//12078 +f 13329//12072 13328//12071 13335//12078 13336//12079 +f 13337//12080 13338//12081 13339//12082 13340//12083 +f 13341//12084 13337//12080 13340//12083 13342//12085 +f 13337//12080 13341//12084 13343//12086 13344//12087 +f 13338//12081 13337//12080 13344//12087 13345//12088 +f 13346//12089 13347//12090 13348//12091 13349//12092 +f 13305//12048 13346//12089 13349//12092 13307//12050 +f 13346//12089 13305//12048 13306//12049 13350//12093 +f 13347//12090 13346//12089 13350//12093 13351//12094 +f 13352//12095 13353//12096 13354//12097 13355//12098 +f 13347//12090 13352//12095 13355//12098 13348//12091 +f 13352//12095 13347//12090 13351//12094 13356//12099 +f 13353//12096 13352//12095 13356//12099 13357//12100 +f 13358//12101 13359//12102 13351//12094 13350//12093 +f 13360//12103 13358//12101 13350//12093 13306//12049 +f 13358//12101 13360//12103 13361//12104 13362//12105 +f 13359//12102 13358//12101 13362//12105 13363//12106 +f 13364//12107 13365//12108 13366//12109 13367//12110 +f 13360//12103 13364//12107 13367//12110 13361//12104 +f 13364//12107 13360//12103 13306//12049 13304//12047 +f 13365//12108 13364//12107 13304//12047 13303//12046 +f 13368//12111 13369//12112 13370//12113 13371//12114 +f 13353//12096 13368//12111 13371//12114 13354//12097 +f 13368//12111 13353//12096 13357//12100 13372//12115 +f 13369//12112 13368//12111 13372//12115 13373//12116 +f 13374//12117 13375//12118 13361//12104 13367//12110 +f 13376//12119 13374//12117 13367//12110 13366//12109 +f 13374//12117 13376//12119 13377//12120 13378//12121 +f 13375//12118 13374//12117 13378//12121 13379//12122 +f 13380//12123 13381//12124 13382//12125 13383//12126 +f 13376//12119 13380//12123 13383//12126 13377//12120 +f 13380//12123 13376//12119 13366//12109 13384//12127 +f 13381//12124 13380//12123 13384//12127 13385//12128 +f 13386//12129 13387//12130 13377//12120 13383//12126 +f 13388//12131 13386//12129 13383//12126 13382//12125 +f 13386//12129 13388//12131 13389//12132 13390//12133 +f 13387//12130 13386//12129 13390//12133 13391//12134 +f 13392//12135 13393//12136 13391//12134 13390//12133 +f 13394//12137 13392//12135 13390//12133 13389//12132 +f 13392//12135 13394//12137 13395//12138 13396//12139 +f 13393//12136 13392//12135 13396//12139 13397//12140 +f 13398//12141 13399//12142 13379//12122 13378//12121 +f 13387//12130 13398//12141 13378//12121 13377//12120 +f 13398//12141 13387//12130 13391//12134 13400//12143 +f 13399//12142 13398//12141 13400//12143 13401//12144 +f 13402//12145 13403//12146 13363//12106 13362//12105 +f 13375//12118 13402//12145 13362//12105 13361//12104 +f 13402//12145 13375//12118 13379//12122 13404//12147 +f 13403//12146 13402//12145 13404//12147 13405//12148 +f 13406//12149 13407//12150 13357//12100 13356//12099 +f 13359//12102 13406//12149 13356//12099 13351//12094 +f 13406//12149 13359//12102 13363//12106 13408//12151 +f 13407//12150 13406//12149 13408//12151 13409//12152 +f 13410//12153 13411//12154 13373//12116 13372//12115 +f 13407//12150 13410//12153 13372//12115 13357//12100 +f 13410//12153 13407//12150 13409//12152 13412//12155 +f 13411//12154 13410//12153 13412//12155 13413//12156 +f 13414//12157 13415//12158 13409//12152 13408//12151 +f 13403//12146 13414//12157 13408//12151 13363//12106 +f 13414//12157 13403//12146 13405//12148 13416//12159 +f 13415//12158 13414//12157 13416//12159 13417//12160 +f 13418//12161 13419//12162 13405//12148 13404//12147 +f 13399//12142 13418//12161 13404//12147 13379//12122 +f 13418//12161 13399//12142 13401//12144 13420//12163 +f 13419//12162 13418//12161 13420//12163 13421//12164 +f 13422//12165 13423//12166 13424//12167 13425//12168 +f 13369//12112 13422//12165 13425//12168 13370//12113 +f 13422//12165 13369//12112 13373//12116 13426//12169 +f 13423//12166 13422//12165 13426//12169 13427//12170 +f 13428//12171 13429//12172 13427//12170 13426//12169 +f 13411//12154 13428//12171 13426//12169 13373//12116 +f 13428//12171 13411//12154 13413//12156 13430//12173 +f 13429//12172 13428//12171 13430//12173 13431//12174 +f 13432//12175 13433//12176 13413//12156 13412//12155 +f 13415//12158 13432//12175 13412//12155 13409//12152 +f 13432//12175 13415//12158 13417//12160 13434//12177 +f 13433//12176 13432//12175 13434//12177 13435//12178 +f 13436//12179 13437//12180 13424//12167 13423//12166 +f 13438//12181 13436//12179 13423//12166 13427//12170 +f 13436//12179 13438//12181 13439//12182 13440//12183 +f 13437//12180 13436//12179 13440//12183 13441//12184 +f 13442//12185 13443//12186 13417//12160 13416//12159 +f 13419//12162 13442//12185 13416//12159 13405//12148 +f 13442//12185 13419//12162 13421//12164 13444//12187 +f 13443//12186 13442//12185 13444//12187 13445//12188 +f 13446//12189 13447//12190 13401//12144 13400//12143 +f 13393//12136 13446//12189 13400//12143 13391//12134 +f 13446//12189 13393//12136 13397//12140 13448//12191 +f 13447//12190 13446//12189 13448//12191 13449//12192 +f 13450//12193 13451//12194 13452//12195 13453//12196 +f 13454//12197 13450//12193 13453//12196 13455//12198 +f 13450//12193 13454//12197 13397//12140 13396//12139 +f 13451//12194 13450//12193 13396//12139 13395//12138 +f 13456//12199 13457//12200 13455//12198 13453//12196 +f 13458//12201 13456//12199 13453//12196 13452//12195 +f 13456//12199 13458//12201 13459//12202 13460//12203 +f 13457//12200 13456//12199 13460//12203 13461//12204 +f 13462//12205 13463//12206 13449//12192 13448//12191 +f 13454//12197 13462//12205 13448//12191 13397//12140 +f 13462//12205 13454//12197 13455//12198 13464//12207 +f 13463//12206 13462//12205 13464//12207 13465//12208 +f 13466//12209 13467//12210 13421//12164 13420//12163 +f 13447//12190 13466//12209 13420//12163 13401//12144 +f 13466//12209 13447//12190 13449//12192 13468//12211 +f 13467//12210 13466//12209 13468//12211 13469//12212 +f 13470//12213 13471//12214 13435//12178 13434//12177 +f 13443//12186 13470//12213 13434//12177 13417//12160 +f 13470//12213 13443//12186 13445//12188 13472//12215 +f 13471//12214 13470//12213 13472//12215 13473//12216 +f 13474//12217 13475//12218 13445//12188 13444//12187 +f 13467//12210 13474//12217 13444//12187 13421//12164 +f 13474//12217 13467//12210 13469//12212 13476//12219 +f 13475//12218 13474//12217 13476//12219 13477//12220 +f 13478//12221 13479//12222 13469//12212 13468//12211 +f 13463//12206 13478//12221 13468//12211 13449//12192 +f 13478//12221 13463//12206 13465//12208 13480//12223 +f 13479//12222 13478//12221 13480//12223 13481//12224 +f 13482//12225 13483//12226 13465//12208 13464//12207 +f 13457//12200 13482//12225 13464//12207 13455//12198 +f 13482//12225 13457//12200 13461//12204 13484//12227 +f 13483//12226 13482//12225 13484//12227 13485//12228 +f 13486//12229 13487//12230 13477//12220 13476//12219 +f 13479//12222 13486//12229 13476//12219 13469//12212 +f 13486//12229 13479//12222 13481//12224 13488//12231 +f 13487//12230 13486//12229 13488//12231 13489//12232 +f 13490//12233 13491//12234 13481//12224 13480//12223 +f 13483//12226 13490//12233 13480//12223 13465//12208 +f 13490//12233 13483//12226 13485//12228 13492//12235 +f 13491//12234 13490//12233 13492//12235 13493//12236 +f 13494//12237 13495//12238 13485//12228 13484//12227 +f 13496//12239 13494//12237 13484//12227 13461//12204 +f 13494//12237 13496//12239 13497//12240 13498//12241 +f 13495//12238 13494//12237 13498//12241 13499//12242 +f 13500//12243 13501//12244 13502//12245 13503//12246 +f 13496//12239 13500//12243 13503//12246 13497//12240 +f 13500//12243 13496//12239 13461//12204 13460//12203 +f 13501//12244 13500//12243 13460//12203 13459//12202 +f 13504//12247 13505//12248 13497//12240 13503//12246 +f 13506//12249 13504//12247 13503//12246 13502//12245 +f 13504//12247 13506//12249 13507//12250 13508//12251 +f 13505//12248 13504//12247 13508//12251 13509//12252 +f 13510//12253 13511//12254 13509//12252 13508//12251 +f 13512//12255 13510//12253 13508//12251 13507//12250 +f 13510//12253 13512//12255 13513//12256 13514//12257 +f 13511//12254 13510//12253 13514//12257 13515//12258 +f 13516//12259 13517//12260 13499//12242 13498//12241 +f 13505//12248 13516//12259 13498//12241 13497//12240 +f 13516//12259 13505//12248 13509//12252 13518//12261 +f 13517//12260 13516//12259 13518//12261 13519//12262 +f 13520//12263 13521//12264 13493//12236 13492//12235 +f 13495//12238 13520//12263 13492//12235 13485//12228 +f 13520//12263 13495//12238 13499//12242 13522//12265 +f 13521//12264 13520//12263 13522//12265 13523//12266 +f 13524//12267 13525//12268 13515//12258 13514//12257 +f 13526//12269 13524//12267 13514//12257 13513//12256 +f 13524//12267 13526//12269 13527//12270 13528//12271 +f 13525//12268 13524//12267 13528//12271 13529//12272 +f 13530//12273 13531//12274 13519//12262 13518//12261 +f 13511//12254 13530//12273 13518//12261 13509//12252 +f 13530//12273 13511//12254 13515//12258 13532//12275 +f 13531//12274 13530//12273 13532//12275 13533//12276 +f 13534//12277 13535//12278 13523//12266 13522//12265 +f 13517//12260 13534//12277 13522//12265 13499//12242 +f 13534//12277 13517//12260 13519//12262 13536//12279 +f 13535//12278 13534//12277 13536//12279 13537//12280 +f 13538//12281 13539//12282 13489//12232 13488//12231 +f 13491//12234 13538//12281 13488//12231 13481//12224 +f 13538//12281 13491//12234 13493//12236 13540//12283 +f 13539//12282 13538//12281 13540//12283 13541//12284 +f 13542//12285 13543//12286 13541//12284 13540//12283 +f 13521//12264 13542//12285 13540//12283 13493//12236 +f 13542//12285 13521//12264 13523//12266 13544//12287 +f 13543//12286 13542//12285 13544//12287 13545//12288 +f 13546//12289 13547//12290 13545//12288 13544//12287 +f 13535//12278 13546//12289 13544//12287 13523//12266 +f 13546//12289 13535//12278 13537//12280 13548//12291 +f 13547//12290 13546//12289 13548//12291 13549//12292 +f 13550//12293 13551//12294 13552//12295 13553//12296 +f 13539//12282 13550//12293 13553//12296 13489//12232 +f 13550//12293 13539//12282 13541//12284 13554//12297 +f 13551//12294 13550//12293 13554//12297 13555//12298 +f 13556//12299 13557//12300 13555//12298 13554//12297 +f 13543//12286 13556//12299 13554//12297 13541//12284 +f 13556//12299 13543//12286 13545//12288 13558//12301 +f 13557//12300 13556//12299 13558//12301 13559//12302 +f 13560//12303 13561//12304 13562//12305 13563//12306 +f 13487//12230 13560//12303 13563//12306 13477//12220 +f 13560//12303 13487//12230 13489//12232 13553//12296 +f 13561//12304 13560//12303 13553//12296 13552//12295 +f 13564//12307 13475//12218 13477//12220 13563//12306 +f 13565//12308 13564//12307 13563//12306 13562//12305 +f 13564//12307 13565//12308 13473//12216 13472//12215 +f 13475//12218 13564//12307 13472//12215 13445//12188 +f 13566//12309 13567//12310 13568//12311 13569//12312 +f 13561//12304 13566//12309 13569//12312 13562//12305 +f 13566//12309 13561//12304 13552//12295 13570//12313 +f 13567//12310 13566//12309 13570//12313 13571//12314 +f 13572//12315 13573//12316 13574//12317 13575//12318 +f 13565//12308 13572//12315 13575//12318 13473//12216 +f 13572//12315 13565//12308 13562//12305 13569//12312 +f 13573//12316 13572//12315 13569//12312 13568//12311 +f 13576//12319 13577//12320 13578//12321 13579//12322 +f 13471//12214 13576//12319 13579//12322 13435//12178 +f 13576//12319 13471//12214 13473//12216 13575//12318 +f 13577//12320 13576//12319 13575//12318 13574//12317 +f 13580//12323 13433//12176 13435//12178 13579//12322 +f 13581//12324 13580//12323 13579//12322 13578//12321 +f 13580//12323 13581//12324 13431//12174 13430//12173 +f 13433//12176 13580//12323 13430//12173 13413//12156 +f 13582//12325 13583//12326 13578//12321 13577//12320 +f 13584//12327 13582//12325 13577//12320 13574//12317 +f 13582//12325 13584//12327 13585//12328 13586//12329 +f 13583//12326 13582//12325 13586//12329 13587//12330 +f 13588//12331 13438//12181 13427//12170 13429//12172 +f 13589//12332 13588//12331 13429//12172 13431//12174 +f 13588//12331 13589//12332 13590//12333 13591//12334 +f 13438//12181 13588//12331 13591//12334 13439//12182 +f 13592//12335 13589//12332 13431//12174 13581//12324 +f 13583//12326 13592//12335 13581//12324 13578//12321 +f 13592//12335 13583//12326 13587//12330 13593//12336 +f 13589//12332 13592//12335 13593//12336 13590//12333 +f 13594//12337 13595//12338 13596//12339 13597//12340 +f 13584//12327 13594//12337 13597//12340 13585//12328 +f 13594//12337 13584//12327 13574//12317 13573//12316 +f 13595//12338 13594//12337 13573//12316 13568//12311 +f 13598//12341 13599//12342 13441//12184 13440//12183 +f 13600//12343 13598//12341 13440//12183 13439//12182 +f 13598//12341 13600//12343 13601//12344 13602//12345 +f 13599//12342 13598//12341 13602//12345 13603//12346 +f 13604//12347 13605//12348 13603//12346 13602//12345 +f 13606//12349 13604//12347 13602//12345 13601//12344 +f 13604//12347 13606//12349 13607//12350 13608//12351 +f 13605//12348 13604//12347 13608//12351 13609//12352 +f 13610//12353 13611//12354 13612//12355 13613//12356 +f 13600//12343 13610//12353 13613//12356 13601//12344 +f 13610//12353 13600//12343 13439//12182 13591//12334 +f 13611//12354 13610//12353 13591//12334 13590//12333 +f 13614//12357 13615//12358 13609//12352 13608//12351 +f 13616//12359 13614//12357 13608//12351 13607//12350 +f 13614//12357 13616//12359 13617//12360 13618//12361 +f 13615//12358 13614//12357 13618//12361 13619//12362 +f 13620//12363 13621//12364 13619//12362 13618//12361 +f 13622//12365 13620//12363 13618//12361 13617//12360 +f 13620//12363 13622//12365 13623//12366 13624//12367 +f 13621//12364 13620//12363 13624//12367 13625//12368 +f 13626//12369 13627//12370 13628//12371 13629//12372 +f 13606//12349 13626//12369 13629//12372 13607//12350 +f 13626//12369 13606//12349 13601//12344 13613//12356 +f 13627//12370 13626//12369 13613//12356 13612//12355 +f 13630//12373 13631//12374 13632//12375 13633//12376 +f 13616//12359 13630//12373 13633//12376 13617//12360 +f 13630//12373 13616//12359 13607//12350 13629//12372 +f 13631//12374 13630//12373 13629//12372 13628//12371 +f 13634//12377 13622//12365 13617//12360 13633//12376 +f 13635//12378 13634//12377 13633//12376 13632//12375 +f 13634//12377 13635//12378 13636//12379 13637//12380 +f 13622//12365 13634//12377 13637//12380 13623//12366 +f 13638//12381 13639//12382 13640//12383 13641//12384 +f 13631//12374 13638//12381 13641//12384 13632//12375 +f 13638//12381 13631//12374 13628//12371 13642//12385 +f 13639//12382 13638//12381 13642//12385 13643//12386 +f 13644//12387 13635//12378 13632//12375 13641//12384 +f 13645//12388 13644//12387 13641//12384 13640//12383 +f 13644//12387 13645//12388 13646//12389 13647//12390 +f 13635//12378 13644//12387 13647//12390 13636//12379 +f 13648//12391 13649//12392 13625//12368 13624//12367 +f 13650//12393 13648//12391 13624//12367 13623//12366 +f 13648//12391 13650//12393 13651//12394 13652//12395 +f 13649//12392 13648//12391 13652//12395 13653//12396 +f 13654//12397 13655//12398 13653//12396 13652//12395 +f 13656//12399 13654//12397 13652//12395 13651//12394 +f 13654//12397 13656//12399 13657//12400 13658//12401 +f 13655//12398 13654//12397 13658//12401 13659//12402 +f 13660//12403 13650//12393 13623//12366 13637//12380 +f 13661//12404 13660//12403 13637//12380 13636//12379 +f 13660//12403 13661//12404 13662//12405 13663//12406 +f 13650//12393 13660//12403 13663//12406 13651//12394 +f 13664//12407 13665//12408 13659//12402 13658//12401 +f 13666//12409 13664//12407 13658//12401 13657//12400 +f 13664//12407 13666//12409 13667//12410 13668//12411 +f 13665//12408 13664//12407 13668//12411 13669//12412 +f 13670//12413 13656//12399 13651//12394 13663//12406 +f 13671//12414 13670//12413 13663//12406 13662//12405 +f 13670//12413 13671//12414 13672//12415 13673//12416 +f 13656//12399 13670//12413 13673//12416 13657//12400 +f 13674//12417 13675//12418 13669//12412 13668//12411 +f 13676//12419 13674//12417 13668//12411 13667//12410 +f 13674//12417 13676//12419 13677//12420 13678//12421 +f 13675//12418 13674//12417 13678//12421 13679//12422 +f 13680//12423 13666//12409 13657//12400 13673//12416 +f 13681//12424 13680//12423 13673//12416 13672//12415 +f 13680//12423 13681//12424 13682//12425 13683//12426 +f 13666//12409 13680//12423 13683//12426 13667//12410 +f 13684//12427 13685//12428 13686//12429 13687//12430 +f 13678//12421 13684//12427 13687//12430 13679//12422 +f 13684//12427 13678//12421 13677//12420 13688//12431 +f 13685//12428 13684//12427 13688//12431 13689//12432 +f 13690//12433 13691//12434 13692//12435 13693//12436 +f 13676//12419 13690//12433 13693//12436 13677//12420 +f 13690//12433 13676//12419 13667//12410 13683//12426 +f 13691//12434 13690//12433 13683//12426 13682//12425 +f 13694//12437 13695//12438 13689//12432 13688//12431 +f 13693//12436 13694//12437 13688//12431 13677//12420 +f 13694//12437 13693//12436 13692//12435 13696//12439 +f 13695//12438 13694//12437 13696//12439 13697//12440 +f 13698//12441 13699//12442 13700//12443 13701//12444 +f 13685//12428 13698//12441 13701//12444 13686//12429 +f 13698//12441 13685//12428 13689//12432 13702//12445 +f 13699//12442 13698//12441 13702//12445 13703//12446 +f 13704//12447 13323//12066 13324//12067 13705//12448 +f 13699//12442 13704//12447 13705//12448 13700//12443 +f 13704//12447 13699//12442 13703//12446 13706//12449 +f 13323//12066 13704//12447 13706//12449 13325//12068 +f 13707//12450 13708//12451 13325//12068 13706//12449 +f 13709//12452 13707//12450 13706//12449 13703//12446 +f 13707//12450 13709//12452 13710//12453 13711//12454 +f 13708//12451 13707//12450 13711//12454 13712//12455 +f 13713//12456 13714//12457 13697//12440 13696//12439 +f 13715//12458 13713//12456 13696//12439 13692//12435 +f 13713//12456 13715//12458 13716//12459 13717//12460 +f 13714//12457 13713//12456 13717//12460 13718//12461 +f 13719//12462 13720//12463 13716//12459 13715//12458 +f 13691//12434 13719//12462 13715//12458 13692//12435 +f 13719//12462 13691//12434 13682//12425 13721//12464 +f 13720//12463 13719//12462 13721//12464 13722//12465 +f 13723//12466 13724//12467 13710//12453 13725//12468 +f 13714//12457 13723//12466 13725//12468 13697//12440 +f 13723//12466 13714//12457 13718//12461 13726//12469 +f 13724//12467 13723//12466 13726//12469 13727//12470 +f 13728//12471 13729//12472 13722//12465 13721//12464 +f 13681//12424 13728//12471 13721//12464 13682//12425 +f 13728//12471 13681//12424 13672//12415 13730//12473 +f 13729//12472 13728//12471 13730//12473 13731//12474 +f 13732//12475 13733//12476 13718//12461 13717//12460 +f 13734//12477 13732//12475 13717//12460 13716//12459 +f 13732//12475 13734//12477 13735//12478 13736//12479 +f 13733//12476 13732//12475 13736//12479 13737//12480 +f 13738//12481 13739//12482 13735//12478 13734//12477 +f 13720//12463 13738//12481 13734//12477 13716//12459 +f 13738//12481 13720//12463 13722//12465 13740//12483 +f 13739//12482 13738//12481 13740//12483 13741//12484 +f 13742//12485 13743//12486 13731//12474 13730//12473 +f 13671//12414 13742//12485 13730//12473 13672//12415 +f 13742//12485 13671//12414 13662//12405 13744//12487 +f 13743//12486 13742//12485 13744//12487 13745//12488 +f 13746//12489 13747//12490 13741//12484 13740//12483 +f 13729//12472 13746//12489 13740//12483 13722//12465 +f 13746//12489 13729//12472 13731//12474 13748//12491 +f 13747//12490 13746//12489 13748//12491 13749//12492 +f 13750//12493 13751//12494 13745//12488 13744//12487 +f 13661//12404 13750//12493 13744//12487 13662//12405 +f 13750//12493 13661//12404 13636//12379 13647//12390 +f 13751//12494 13750//12493 13647//12390 13646//12389 +f 13752//12495 13753//12496 13749//12492 13748//12491 +f 13743//12486 13752//12495 13748//12491 13731//12474 +f 13752//12495 13743//12486 13745//12488 13754//12497 +f 13753//12496 13752//12495 13754//12497 13755//12498 +f 13756//12499 13757//12500 13755//12498 13754//12497 +f 13751//12494 13756//12499 13754//12497 13745//12488 +f 13756//12499 13751//12494 13646//12389 13758//12501 +f 13757//12500 13756//12499 13758//12501 13759//12502 +f 13760//12503 13761//12504 13759//12502 13758//12501 +f 13645//12388 13760//12503 13758//12501 13646//12389 +f 13760//12503 13645//12388 13640//12383 13762//12505 +f 13761//12504 13760//12503 13762//12505 13763//12506 +f 13764//12507 13765//12508 13766//12509 13767//12510 +f 13753//12496 13764//12507 13767//12510 13749//12492 +f 13764//12507 13753//12496 13755//12498 13768//12511 +f 13765//12508 13764//12507 13768//12511 13769//12512 +f 13770//12513 13771//12514 13769//12512 13768//12511 +f 13757//12500 13770//12513 13768//12511 13755//12498 +f 13770//12513 13757//12500 13759//12502 13772//12515 +f 13771//12514 13770//12513 13772//12515 13773//12516 +f 13774//12517 13775//12518 13776//12519 13777//12520 +f 13747//12490 13774//12517 13777//12520 13741//12484 +f 13774//12517 13747//12490 13749//12492 13767//12510 +f 13775//12518 13774//12517 13767//12510 13766//12509 +f 13778//12521 13739//12482 13741//12484 13777//12520 +f 13779//12522 13778//12521 13777//12520 13776//12519 +f 13778//12521 13779//12522 13780//12523 13781//12524 +f 13739//12482 13778//12521 13781//12524 13735//12478 +f 13782//12525 13783//12526 13784//12527 13785//12528 +f 13775//12518 13782//12525 13785//12528 13776//12519 +f 13782//12525 13775//12518 13766//12509 13786//12529 +f 13783//12526 13782//12525 13786//12529 13787//12530 +f 13788//12531 13789//12532 13737//12480 13736//12479 +f 13781//12524 13788//12531 13736//12479 13735//12478 +f 13788//12531 13781//12524 13780//12523 13790//12533 +f 13789//12532 13788//12531 13790//12533 13791//12534 +f 13792//12535 13793//12536 13794//12537 13795//12538 +f 13779//12522 13792//12535 13795//12538 13780//12523 +f 13792//12535 13779//12522 13776//12519 13785//12528 +f 13793//12536 13792//12535 13785//12528 13784//12527 +f 13796//12539 13797//12540 13791//12534 13790//12533 +f 13795//12538 13796//12539 13790//12533 13780//12523 +f 13796//12539 13795//12538 13794//12537 13798//12541 +f 13797//12540 13796//12539 13798//12541 13799//12542 +f 13800//12543 13801//12544 13727//12470 13726//12469 +f 13733//12476 13800//12543 13726//12469 13718//12461 +f 13800//12543 13733//12476 13737//12480 13802//12545 +f 13801//12544 13800//12543 13802//12545 13803//12546 +f 13804//12547 13805//12548 13803//12546 13802//12545 +f 13789//12532 13804//12547 13802//12545 13737//12480 +f 13804//12547 13789//12532 13791//12534 13806//12549 +f 13805//12548 13804//12547 13806//12549 13807//12550 +f 13808//12551 13809//12552 13712//12455 13711//12454 +f 13724//12467 13808//12551 13711//12454 13710//12453 +f 13808//12551 13724//12467 13727//12470 13810//12553 +f 13809//12552 13808//12551 13810//12553 13811//12554 +f 13812//12555 13813//12556 13327//12070 13326//12069 +f 13708//12451 13812//12555 13326//12069 13325//12068 +f 13812//12555 13708//12451 13712//12455 13814//12557 +f 13813//12556 13812//12555 13814//12557 13815//12558 +f 13816//12559 13817//12560 13811//12554 13810//12553 +f 13801//12544 13816//12559 13810//12553 13727//12470 +f 13816//12559 13801//12544 13803//12546 13818//12561 +f 13817//12560 13816//12559 13818//12561 13819//12562 +f 13820//12563 13821//12564 13815//12558 13814//12557 +f 13809//12552 13820//12563 13814//12557 13712//12455 +f 13820//12563 13809//12552 13811//12554 13822//12565 +f 13821//12564 13820//12563 13822//12565 13823//12566 +f 13824//12567 13825//12568 13826//12569 13827//12570 +f 13813//12556 13824//12567 13827//12570 13327//12070 +f 13824//12567 13813//12556 13815//12558 13828//12571 +f 13825//12568 13824//12567 13828//12571 13829//12572 +f 13830//12573 13831//12574 13832//12575 13833//12576 +f 13825//12568 13830//12573 13833//12576 13826//12569 +f 13830//12573 13825//12568 13829//12572 13834//12577 +f 13831//12574 13830//12573 13834//12577 13835//12578 +f 13836//12579 13837//12580 13829//12572 13828//12571 +f 13821//12564 13836//12579 13828//12571 13815//12558 +f 13836//12579 13821//12564 13823//12566 13838//12581 +f 13837//12580 13836//12579 13838//12581 13839//12582 +f 13840//12583 13841//12584 13823//12566 13822//12565 +f 13817//12560 13840//12583 13822//12565 13811//12554 +f 13840//12583 13817//12560 13819//12562 13842//12585 +f 13841//12584 13840//12583 13842//12585 13843//12586 +f 13844//12587 13845//12588 13835//12578 13834//12577 +f 13837//12580 13844//12587 13834//12577 13829//12572 +f 13844//12587 13837//12580 13839//12582 13846//12589 +f 13845//12588 13844//12587 13846//12589 13847//12590 +f 13848//12591 13849//12592 13839//12582 13838//12581 +f 13841//12584 13848//12591 13838//12581 13823//12566 +f 13848//12591 13841//12584 13843//12586 13850//12593 +f 13849//12592 13848//12591 13850//12593 13851//12594 +f 13852//12595 13853//12596 13847//12590 13846//12589 +f 13849//12592 13852//12595 13846//12589 13839//12582 +f 13852//12595 13849//12592 13851//12594 13854//12597 +f 13853//12596 13852//12595 13854//12597 13855//12598 +f 13856//12599 13857//12600 13843//12586 13842//12585 +f 13858//12601 13856//12599 13842//12585 13819//12562 +f 13856//12599 13858//12601 13859//12602 13860//12603 +f 13857//12600 13856//12599 13860//12603 13861//12604 +f 13862//12605 13863//12606 13855//12598 13854//12597 +f 13864//12607 13862//12605 13854//12597 13851//12594 +f 13862//12605 13864//12607 13865//12608 13866//12609 +f 13863//12606 13862//12605 13866//12609 13867//12610 +f 13868//12611 13864//12607 13851//12594 13850//12593 +f 13857//12600 13868//12611 13850//12593 13843//12586 +f 13868//12611 13857//12600 13861//12604 13869//12612 +f 13864//12607 13868//12611 13869//12612 13865//12608 +f 13870//12613 13871//12614 13867//12610 13866//12609 +f 13872//12615 13870//12613 13866//12609 13865//12608 +f 13870//12613 13872//12615 13873//12616 13874//12617 +f 13871//12614 13870//12613 13874//12617 13875//12618 +f 13876//12619 13872//12615 13865//12608 13869//12612 +f 13877//12620 13876//12619 13869//12612 13861//12604 +f 13876//12619 13877//12620 13878//12621 13879//12622 +f 13872//12615 13876//12619 13879//12622 13873//12616 +f 13880//12623 13881//12624 13875//12618 13874//12617 +f 13882//12625 13880//12623 13874//12617 13873//12616 +f 13880//12623 13882//12625 13883//12626 13884//12627 +f 13881//12624 13880//12623 13884//12627 13885//12628 +f 13886//12629 13887//12630 13885//12628 13884//12627 +f 13888//12631 13886//12629 13884//12627 13883//12626 +f 13886//12629 13888//12631 13889//12632 13890//12633 +f 13887//12630 13886//12629 13890//12633 13891//12634 +f 13892//12635 13893//12636 13894//12637 13895//12638 +f 13882//12625 13892//12635 13895//12638 13883//12626 +f 13892//12635 13882//12625 13873//12616 13879//12622 +f 13893//12636 13892//12635 13879//12622 13878//12621 +f 13896//12639 13888//12631 13883//12626 13895//12638 +f 13897//12640 13896//12639 13895//12638 13894//12637 +f 13896//12639 13897//12640 13898//12641 13899//12642 +f 13888//12631 13896//12639 13899//12642 13889//12632 +f 13900//12643 13901//12644 13889//12632 13899//12642 +f 13902//12645 13900//12643 13899//12642 13898//12641 +f 13900//12643 13902//12645 13903//12646 13904//12647 +f 13901//12644 13900//12643 13904//12647 13905//12648 +f 13906//12649 13907//12650 13908//12651 13909//12652 +f 13897//12640 13906//12649 13909//12652 13898//12641 +f 13906//12649 13897//12640 13894//12637 13910//12653 +f 13907//12650 13906//12649 13910//12653 13911//12654 +f 13912//12655 13913//12656 13914//12657 13915//12658 +f 13902//12645 13912//12655 13915//12658 13903//12646 +f 13912//12655 13902//12645 13898//12641 13909//12652 +f 13913//12656 13912//12655 13909//12652 13908//12651 +f 13916//12659 13917//12660 13911//12654 13910//12653 +f 13893//12636 13916//12659 13910//12653 13894//12637 +f 13916//12659 13893//12636 13878//12621 13918//12661 +f 13917//12660 13916//12659 13918//12661 13919//12662 +f 13920//12663 13921//12664 13919//12662 13918//12661 +f 13877//12620 13920//12663 13918//12661 13878//12621 +f 13920//12663 13877//12620 13861//12604 13860//12603 +f 13921//12664 13920//12663 13860//12603 13859//12602 +f 13922//12665 13923//12666 13924//12667 13925//12668 +f 13907//12650 13922//12665 13925//12668 13908//12651 +f 13922//12665 13907//12650 13911//12654 13926//12669 +f 13923//12666 13922//12665 13926//12669 13927//12670 +f 13928//12671 13929//12672 13927//12670 13926//12669 +f 13917//12660 13928//12671 13926//12669 13911//12654 +f 13928//12671 13917//12660 13919//12662 13930//12673 +f 13929//12672 13928//12671 13930//12673 13931//12674 +f 13932//12675 13933//12676 13931//12674 13930//12673 +f 13921//12664 13932//12675 13930//12673 13919//12662 +f 13932//12675 13921//12664 13859//12602 13934//12677 +f 13933//12676 13932//12675 13934//12677 13807//12550 +f 13935//12678 13805//12548 13807//12550 13934//12677 +f 13858//12601 13935//12678 13934//12677 13859//12602 +f 13935//12678 13858//12601 13819//12562 13818//12561 +f 13805//12548 13935//12678 13818//12561 13803//12546 +f 13936//12679 13933//12676 13807//12550 13806//12549 +f 13797//12540 13936//12679 13806//12549 13791//12534 +f 13936//12679 13797//12540 13799//12542 13937//12680 +f 13933//12676 13936//12679 13937//12680 13931//12674 +f 13938//12681 13929//12672 13931//12674 13937//12680 +f 13939//12682 13938//12681 13937//12680 13799//12542 +f 13938//12681 13939//12682 13940//12683 13941//12684 +f 13929//12672 13938//12681 13941//12684 13927//12670 +f 13942//12685 13939//12682 13799//12542 13798//12541 +f 13943//12686 13942//12685 13798//12541 13794//12537 +f 13942//12685 13943//12686 13944//12687 13945//12688 +f 13939//12682 13942//12685 13945//12688 13940//12683 +f 13946//12689 13947//12690 13944//12687 13943//12686 +f 13793//12536 13946//12689 13943//12686 13794//12537 +f 13946//12689 13793//12536 13784//12527 13948//12691 +f 13947//12690 13946//12689 13948//12691 13949//12692 +f 13950//12693 13923//12666 13927//12670 13941//12684 +f 13951//12694 13950//12693 13941//12684 13940//12683 +f 13950//12693 13951//12694 13952//12695 13953//12696 +f 13923//12666 13950//12693 13953//12696 13924//12667 +f 13954//12697 13951//12694 13940//12683 13945//12688 +f 13955//12698 13954//12697 13945//12688 13944//12687 +f 13954//12697 13955//12698 13956//12699 13957//12700 +f 13951//12694 13954//12697 13957//12700 13952//12695 +f 13958//12701 13959//12702 13956//12699 13955//12698 +f 13947//12690 13958//12701 13955//12698 13944//12687 +f 13958//12701 13947//12690 13949//12692 13960//12703 +f 13959//12702 13958//12701 13960//12703 13961//12704 +f 13962//12705 13963//12706 13949//12692 13948//12691 +f 13783//12526 13962//12705 13948//12691 13784//12527 +f 13962//12705 13783//12526 13787//12530 13964//12707 +f 13963//12706 13962//12705 13964//12707 13965//12708 +f 13966//12709 13967//12710 13787//12530 13786//12529 +f 13765//12508 13966//12709 13786//12529 13766//12509 +f 13966//12709 13765//12508 13769//12512 13968//12711 +f 13967//12710 13966//12709 13968//12711 13969//12712 +f 13970//12713 13971//12714 13961//12704 13960//12703 +f 13963//12706 13970//12713 13960//12703 13949//12692 +f 13970//12713 13963//12706 13965//12708 13972//12715 +f 13971//12714 13970//12713 13972//12715 13973//12716 +f 13974//12717 13975//12718 13965//12708 13964//12707 +f 13967//12710 13974//12717 13964//12707 13787//12530 +f 13974//12717 13967//12710 13969//12712 13976//12719 +f 13975//12718 13974//12717 13976//12719 13977//12720 +f 13978//12721 13979//12722 13980//12723 13981//12724 +f 13959//12702 13978//12721 13981//12724 13956//12699 +f 13978//12721 13959//12702 13961//12704 13982//12725 +f 13979//12722 13978//12721 13982//12725 13983//12726 +f 13984//12727 13985//12728 13952//12695 13957//12700 +f 13981//12724 13984//12727 13957//12700 13956//12699 +f 13984//12727 13981//12724 13980//12723 13986//12729 +f 13985//12728 13984//12727 13986//12729 13987//12730 +f 13988//12731 13989//12732 13924//12667 13953//12696 +f 13985//12728 13988//12731 13953//12696 13952//12695 +f 13988//12731 13985//12728 13987//12730 13990//12733 +f 13989//12732 13988//12731 13990//12733 13991//12734 +f 13992//12735 13993//12736 13983//12726 13982//12725 +f 13971//12714 13992//12735 13982//12725 13961//12704 +f 13992//12735 13971//12714 13973//12716 13994//12737 +f 13993//12736 13992//12735 13994//12737 13995//12738 +f 13996//12739 13997//12740 13987//12730 13986//12729 +f 13998//12741 13996//12739 13986//12729 13980//12723 +f 13996//12739 13998//12741 13999//12742 14000//12743 +f 13997//12740 13996//12739 14000//12743 14001//12744 +f 14002//12745 14003//12746 13999//12742 13998//12741 +f 13979//12722 14002//12745 13998//12741 13980//12723 +f 14002//12745 13979//12722 13983//12726 14004//12747 +f 14003//12746 14002//12745 14004//12747 14005//12748 +f 14006//12749 13913//12656 13908//12651 13925//12668 +f 13989//12732 14006//12749 13925//12668 13924//12667 +f 14006//12749 13989//12732 13991//12734 14007//12750 +f 13913//12656 14006//12749 14007//12750 13914//12657 +f 14008//12751 14009//12752 13991//12734 13990//12733 +f 13997//12740 14008//12751 13990//12733 13987//12730 +f 14008//12751 13997//12740 14001//12744 14010//12753 +f 14009//12752 14008//12751 14010//12753 14011//12754 +f 14012//12755 14013//12756 13914//12657 14007//12750 +f 14009//12752 14012//12755 14007//12750 13991//12734 +f 14012//12755 14009//12752 14011//12754 14014//12757 +f 14013//12756 14012//12755 14014//12757 14015//12758 +f 14016//12759 14017//12760 13903//12646 13915//12658 +f 14013//12756 14016//12759 13915//12658 13914//12657 +f 14016//12759 14013//12756 14015//12758 14018//12761 +f 14017//12760 14016//12759 14018//12761 14019//12762 +f 14020//12763 14021//7588 14011//12754 14010//12753 +f 14022//12764 14020//12763 14010//12753 14001//12744 +f 14020//12763 14022//12764 14023//12765 14024//12766 +f 14021//7588 14020//12763 14024//12766 14025//12767 +f 14026//12768 14027//12769 13905//12648 13904//12647 +f 14017//12760 14026//12768 13904//12647 13903//12646 +f 14026//12768 14017//12760 14019//12762 14028//12770 +f 14027//12769 14026//12768 14028//12770 14029//12771 +f 14030//12772 14031//12773 14015//12758 14014//12757 +f 14021//7588 14030//12772 14014//12757 14011//12754 +f 14030//12772 14021//7588 14025//12767 14032//12774 +f 14031//12773 14030//12772 14032//12774 14033//12775 +f 14034//12776 14035//12777 14019//12762 14018//12761 +f 14031//12773 14034//12776 14018//12761 14015//12758 +f 14034//12776 14031//12773 14033//12775 14036//12778 +f 14035//12777 14034//12776 14036//12778 14037//12779 +f 14038//12780 14039//12781 14040//12782 14041//12783 +f 14027//12769 14038//12780 14041//12783 13905//12648 +f 14038//12780 14027//12769 14029//12771 14042//12784 +f 14039//12781 14038//12780 14042//12784 14043//12785 +f 14044//12786 13901//12644 13905//12648 14041//12783 +f 14045//12787 14044//12786 14041//12783 14040//12782 +f 14044//12786 14045//12787 13891//12634 13890//12633 +f 13901//12644 14044//12786 13890//12633 13889//12632 +f 14046//12788 14047//12789 14029//12771 14028//12770 +f 14035//12777 14046//12788 14028//12770 14019//12762 +f 14046//12788 14035//12777 14037//12779 14048//12790 +f 14047//12789 14046//12788 14048//12790 14049//12791 +f 14050//12792 14051//12793 14043//12785 14042//12784 +f 14047//12789 14050//12792 14042//12784 14029//12771 +f 14050//12792 14047//12789 14049//12791 14052//12794 +f 14051//12793 14050//12792 14052//12794 14053//12795 +f 14054//12796 14055//12797 14053//12795 14052//12794 +f 14056//12798 14054//12796 14052//12794 14049//12791 +f 14054//12796 14056//12798 14057//12799 14058//12800 +f 14055//12797 14054//12796 14058//12800 14059//12801 +f 14060//12802 14056//12798 14049//12791 14048//12790 +f 14061//12803 14060//12802 14048//12790 14037//12779 +f 14060//12802 14061//12803 14062//12804 14063//12805 +f 14056//12798 14060//12802 14063//12805 14057//12799 +f 14064//12806 14065//12807 14057//12799 14063//12805 +f 14066//12808 14064//12806 14063//12805 14062//12804 +f 14064//12806 14066//12808 14067//12809 14068//12810 +f 14065//12807 14064//12806 14068//12810 14069//12811 +f 14070//12812 14071//12813 14072//12814 14073//12815 +f 14061//12803 14070//12812 14073//12815 14062//12804 +f 14070//12812 14061//12803 14037//12779 14036//12778 +f 14071//12813 14070//12812 14036//12778 14033//12775 +f 14074//12816 14075//12817 14076//12818 14077//12819 +f 14066//12808 14074//12816 14077//12819 14067//12809 +f 14074//12816 14066//12808 14062//12804 14073//12815 +f 14075//12817 14074//12816 14073//12815 14072//12814 +f 14078//12820 14079//12821 14080//12822 14081//12823 +f 14071//12813 14078//12820 14081//12823 14072//12814 +f 14078//12820 14071//12813 14033//12775 14032//12774 +f 14079//12821 14078//12820 14032//12774 14025//12767 +f 14082//12824 14083//12825 14084//12826 14085//12827 +f 14075//12817 14082//12824 14085//12827 14076//12818 +f 14082//12824 14075//12817 14072//12814 14081//12823 +f 14083//12825 14082//12824 14081//12823 14080//12822 +f 14086//12828 14087//12829 14088//12830 14089//12831 +f 14079//12821 14086//12828 14089//12831 14080//12822 +f 14086//12828 14079//12821 14025//12767 14024//12766 +f 14087//12829 14086//12828 14024//12766 14023//12765 +f 14090//12832 14091//12833 14092//12834 14093//12835 +f 14083//12825 14090//12832 14093//12835 14084//12826 +f 14090//12832 14083//12825 14080//12822 14089//12831 +f 14091//12833 14090//12832 14089//12831 14088//12830 +f 14094//12836 14095//12837 14076//12818 14085//12827 +f 14096//12838 14094//12836 14085//12827 14084//12826 +f 14094//12836 14096//12838 14097//12839 14098//12840 +f 14095//12837 14094//12836 14098//12840 14099//12841 +f 14100//12842 14096//12838 14084//12826 14093//12835 +f 14101//12843 14100//12842 14093//12835 14092//12834 +f 14100//12842 14101//12843 14102//12844 14103//12845 +f 14096//12838 14100//12842 14103//12845 14097//12839 +f 14104//12846 14105//12847 14106//12848 14107//12849 +f 14091//12833 14104//12846 14107//12849 14092//12834 +f 14104//12846 14091//12833 14088//12830 14108//12850 +f 14105//12847 14104//12846 14108//12850 14109//12851 +f 14110//12852 14111//12853 14067//12809 14077//12819 +f 14095//12837 14110//12852 14077//12819 14076//12818 +f 14110//12852 14095//12837 14099//12841 14112//12854 +f 14111//12853 14110//12852 14112//12854 14113//12855 +f 14114//12856 14101//12843 14092//12834 14107//12849 +f 14115//12857 14114//12856 14107//12849 14106//12848 +f 14114//12856 14115//12857 14116//12858 14117//12859 +f 14101//12843 14114//12856 14117//12859 14102//12844 +f 14118//12860 14119//12861 14069//12811 14068//12810 +f 14111//12853 14118//12860 14068//12810 14067//12809 +f 14118//12860 14111//12853 14113//12855 14120//12862 +f 14119//12861 14118//12860 14120//12862 14121//12863 +f 14122//12864 14065//12807 14069//12811 14123//12865 +f 14124//12866 14122//12864 14123//12865 14125//12867 +f 14122//12864 14124//12866 14059//12801 14058//12800 +f 14065//12807 14122//12864 14058//12800 14057//12799 +f 14126//12868 14127//12869 14125//12867 14123//12865 +f 14119//12861 14126//12868 14123//12865 14069//12811 +f 14126//12868 14119//12861 14121//12863 14128//12870 +f 14127//12869 14126//12868 14128//12870 14129//12871 +f 14130//12872 14131//12873 14113//12855 14112//12854 +f 14132//12874 14130//12872 14112//12854 14099//12841 +f 14130//12872 14132//12874 14133//12875 14134//12876 +f 14131//12873 14130//12872 14134//12876 14135//12877 +f 14136//12878 14137//12879 14129//12871 14128//12870 +f 14138//12880 14136//12878 14128//12870 14121//12863 +f 14136//12878 14138//12880 14139//12881 14140//12882 +f 14137//12879 14136//12878 14140//12882 14141//12883 +f 14142//12884 14138//12880 14121//12863 14120//12862 +f 14131//12873 14142//12884 14120//12862 14113//12855 +f 14142//12884 14131//12873 14135//12877 14143//12885 +f 14138//12880 14142//12884 14143//12885 14139//12881 +f 14144//12886 14145//12887 14141//12883 14140//12882 +f 14146//12888 14144//12886 14140//12882 14139//12881 +f 14144//12886 14146//12888 13336//12079 13335//12078 +f 14145//12887 14144//12886 13335//12078 13334//12077 +f 14147//12889 14146//12888 14139//12881 14143//12885 +f 14148//12890 14147//12889 14143//12885 14135//12877 +f 14147//12889 14148//12890 14149//12891 14150//12892 +f 14146//12888 14147//12889 14150//12892 13336//12079 +f 14151//12893 14148//12890 14135//12877 14134//12876 +f 14152//12894 14151//12893 14134//12876 14133//12875 +f 14151//12893 14152//12894 14153//12895 14154//12896 +f 14148//12890 14151//12893 14154//12896 14149//12891 +f 14155//12897 13329//12072 13336//12079 14150//12892 +f 14156//12898 14155//12897 14150//12892 14149//12891 +f 14155//12897 14156//12898 14157//12899 14158//12900 +f 13329//12072 14155//12897 14158//12900 13330//12073 +f 14159//12901 14156//12898 14149//12891 14154//12896 +f 14160//12902 14159//12901 14154//12896 14153//12895 +f 14159//12901 14160//12902 14161//12903 14162//12904 +f 14156//12898 14159//12901 14162//12904 14157//12899 +f 14163//12905 14164//12906 14165//12907 14166//12908 +f 14167//12909 14163//12905 14166//12908 14168//12910 +f 14163//12905 14167//12909 13330//12073 14158//12900 +f 14164//12906 14163//12905 14158//12900 14157//12899 +f 14169//12911 14170//12912 13333//12076 13331//12074 +f 14167//12909 14169//12911 13331//12074 13330//12073 +f 14169//12911 14167//12909 14168//12910 14171//12913 +f 14170//12912 14169//12911 14171//12913 14172//12914 +f 14173//12915 14174//12916 14175//12917 14176//12918 +f 14164//12906 14173//12915 14176//12918 14165//12907 +f 14173//12915 14164//12906 14157//12899 14162//12904 +f 14174//12916 14173//12915 14162//12904 14161//12903 +f 14177//12919 14178//12920 14165//12907 14176//12918 +f 14179//12921 14177//12919 14176//12918 14175//12917 +f 14177//12919 14179//12921 14180//12922 14181//12923 +f 14178//12920 14177//12919 14181//12923 14182//12924 +f 14183//12925 14184//12926 14185//12927 14186//12928 +f 14179//12921 14183//12925 14186//12928 14180//12922 +f 14183//12925 14179//12921 14175//12917 14187//12929 +f 14184//12926 14183//12925 14187//12929 14188//12930 +f 14189//12931 14190//12932 14188//12930 14187//12929 +f 14174//12916 14189//12931 14187//12929 14175//12917 +f 14189//12931 14174//12916 14161//12903 14191//12933 +f 14190//12932 14189//12931 14191//12933 14192//12934 +f 14193//12935 14194//12936 14192//12934 14191//12933 +f 14160//12902 14193//12935 14191//12933 14161//12903 +f 14193//12935 14160//12902 14153//12895 14195//12937 +f 14194//12936 14193//12935 14195//12937 14196//12938 +f 14197//12939 14198//12940 14199//12941 14200//12942 +f 14184//12926 14197//12939 14200//12942 14185//12927 +f 14197//12939 14184//12926 14188//12930 14201//12943 +f 14198//12940 14197//12939 14201//12943 14202//12944 +f 14203//12945 14204//12946 14196//12938 14195//12937 +f 14152//12894 14203//12945 14195//12937 14153//12895 +f 14203//12945 14152//12894 14133//12875 14205//12947 +f 14204//12946 14203//12945 14205//12947 14206//12948 +f 14207//12949 14208//12950 14202//12944 14201//12943 +f 14190//12932 14207//12949 14201//12943 14188//12930 +f 14207//12949 14190//12932 14192//12934 14209//12951 +f 14208//12950 14207//12949 14209//12951 14210//12952 +f 14211//12953 14212//12954 14210//12952 14209//12951 +f 14194//12936 14211//12953 14209//12951 14192//12934 +f 14211//12953 14194//12936 14196//12938 14213//12955 +f 14212//12954 14211//12953 14213//12955 14214//12956 +f 14215//12957 14216//12958 14206//12948 14205//12947 +f 14132//12874 14215//12957 14205//12947 14133//12875 +f 14215//12957 14132//12874 14099//12841 14098//12840 +f 14216//12958 14215//12957 14098//12840 14097//12839 +f 14217//12959 14218//12960 14214//12956 14213//12955 +f 14204//12946 14217//12959 14213//12955 14196//12938 +f 14217//12959 14204//12946 14206//12948 14219//12961 +f 14218//12960 14217//12959 14219//12961 14220//12962 +f 14221//12963 14222//12964 14220//12962 14219//12961 +f 14216//12958 14221//12963 14219//12961 14206//12948 +f 14221//12963 14216//12958 14097//12839 14103//12845 +f 14222//12964 14221//12963 14103//12845 14102//12844 +f 14223//12965 14224//12966 14225//12967 14226//12968 +f 14212//12954 14223//12965 14226//12968 14210//12952 +f 14223//12965 14212//12954 14214//12956 14227//12969 +f 14224//12966 14223//12965 14227//12969 14228//12970 +f 14229//12971 14230//12972 14231//12973 14232//12974 +f 14222//12964 14229//12971 14232//12974 14220//12962 +f 14229//12971 14222//12964 14102//12844 14117//12859 +f 14230//12972 14229//12971 14117//12859 14116//12858 +f 14233//12975 14234//12976 14228//12970 14227//12969 +f 14218//12960 14233//12975 14227//12969 14214//12956 +f 14233//12975 14218//12960 14220//12962 14232//12974 +f 14234//12976 14233//12975 14232//12974 14231//12973 +f 14235//12977 14236//12978 14231//12973 14230//12972 +f 14237//12979 14235//12977 14230//12972 14116//12858 +f 14235//12977 14237//12979 14238//12980 14239//12981 +f 14236//12978 14235//12977 14239//12981 14240//12982 +f 14241//12983 14242//12984 14228//12970 14234//12976 +f 14236//12978 14241//12983 14234//12976 14231//12973 +f 14241//12983 14236//12978 14240//12982 14243//12985 +f 14242//12984 14241//12983 14243//12985 14244//12986 +f 14245//12987 14246//12988 14225//12967 14224//12966 +f 14242//12984 14245//12987 14224//12966 14228//12970 +f 14245//12987 14242//12984 14244//12986 14247//12987 +f 14246//12988 14245//12987 14247//12987 14248//12989 +f 14249//12990 14208//12950 14210//12952 14226//12968 +f 14250//12991 14249//12990 14226//12968 14225//12967 +f 14249//12990 14250//12991 14251//12992 14252//12993 +f 14208//12950 14249//12990 14252//12993 14202//12944 +f 14253//12994 14254//12995 14251//12992 14250//12991 +f 14246//12988 14253//12994 14250//12991 14225//12967 +f 14253//12994 14246//12988 14248//12989 14255//12996 +f 14254//12995 14253//12994 14255//12996 14256//12997 +f 14257//12998 14198//12940 14202//12944 14252//12993 +f 14258//12999 14257//12998 14252//12993 14251//12992 +f 14257//12998 14258//12999 14259//13000 14260//13001 +f 14198//12940 14257//12998 14260//13001 14199//12941 +f 14261//13002 14262//13003 14259//13000 14258//12999 +f 14254//12995 14261//13002 14258//12999 14251//12992 +f 14261//13002 14254//12995 14256//12997 14263//13004 +f 14262//13003 14261//13002 14263//13004 14264//13005 +f 14265//13006 14266//13007 14248//12989 14247//12987 +f 14267//13008 14265//13006 14247//12987 14244//12986 +f 14265//13006 14267//13008 14268//13009 14269//13010 +f 14266//13007 14265//13006 14269//13010 14270//13011 +f 14271//13012 14272//13013 14199//12941 14260//13001 +f 14273//13014 14271//13012 14260//13001 14259//13000 +f 14271//13012 14273//13014 14274//13015 14275//13016 +f 14272//13013 14271//13012 14275//13016 14276//13017 +f 14277//13018 14278//13019 14256//12997 14255//12996 +f 14266//13007 14277//13018 14255//12996 14248//12989 +f 14277//13018 14266//13007 14270//13011 14279//13020 +f 14278//13019 14277//13018 14279//13020 14280//13021 +f 14281//13022 14282//13023 14274//13015 14273//13014 +f 14262//13003 14281//13022 14273//13014 14259//13000 +f 14281//13022 14262//13003 14264//13005 14283//13024 +f 14282//13023 14281//13022 14283//13024 14284//13025 +f 14285//13026 14286//13027 14264//13005 14263//13004 +f 14278//13019 14285//13026 14263//13004 14256//12997 +f 14285//13026 14278//13019 14280//13021 14287//13028 +f 14286//13027 14285//13026 14287//13028 14288//13029 +f 14289//13030 14290//13031 14185//12927 14200//12942 +f 14272//13013 14289//13030 14200//12942 14199//12941 +f 14289//13030 14272//13013 14276//13017 14291//13032 +f 14290//13031 14289//13030 14291//13032 14292//13033 +f 14293//13034 14294//13035 14180//12922 14186//12928 +f 14290//13031 14293//13034 14186//12928 14185//12927 +f 14293//13034 14290//13031 14292//13033 14295//13036 +f 14294//13035 14293//13034 14295//13036 14296//13037 +f 14297//13038 14298//13039 14276//13017 14275//13016 +f 14299//13040 14297//13038 14275//13016 14274//13015 +f 14297//13038 14299//13040 14300//13041 14301//13042 +f 14298//13039 14297//13038 14301//13042 14302//13043 +f 14303//13044 14304//13045 14300//13041 14299//13040 +f 14282//13023 14303//13044 14299//13040 14274//13015 +f 14303//13044 14282//13023 14284//13025 14305//13046 +f 14304//13045 14303//13044 14305//13046 14306//13047 +f 14307//13048 14308//13049 14292//13033 14291//13032 +f 14298//13039 14307//13048 14291//13032 14276//13017 +f 14307//13048 14298//13039 14302//13043 14309//13050 +f 14308//13049 14307//13048 14309//13050 14310//13051 +f 14311//13052 14312//13053 14306//13047 14305//13046 +f 14313//13054 14311//13052 14305//13046 14284//13025 +f 14311//13052 14313//13054 14314//13055 14315//13056 +f 14312//13053 14311//13052 14315//13056 14316//13057 +f 14317//13058 14318//13059 14296//13037 14295//13036 +f 14308//13049 14317//13058 14295//13036 14292//13033 +f 14317//13058 14308//13049 14310//13051 14319//13060 +f 14318//13059 14317//13058 14319//13060 14320//13061 +f 14321//13062 14322//13063 14182//12924 14181//12923 +f 14294//13035 14321//13062 14181//12923 14180//12922 +f 14321//13062 14294//13035 14296//13037 14323//13064 +f 14322//13063 14321//13062 14323//13064 14324//13065 +f 14325//13066 14326//13067 14324//13065 14323//13064 +f 14318//13059 14325//13066 14323//13064 14296//13037 +f 14325//13066 14318//13059 14320//13061 14327//13068 +f 14326//13067 14325//13066 14327//13068 14328//13069 +f 14329//13070 13338//12081 13345//12088 14330//13071 +f 14326//13067 14329//13070 14330//13071 14324//13065 +f 14329//13070 14326//13067 14328//13069 14331//13072 +f 13338//12081 14329//13070 14331//13072 13339//12082 +f 14332//13073 14333//13074 14334//13075 14335//13076 +f 14322//13063 14332//13073 14335//13076 14182//12924 +f 14332//13073 14322//13063 14324//13065 14330//13071 +f 14333//13074 14332//13073 14330//13071 13345//12088 +f 14336//13077 14337//13078 14338//13079 14339//13080 +f 14333//13074 14336//13077 14339//13080 14334//13075 +f 14336//13077 14333//13074 13345//12088 13344//12087 +f 14337//13078 14336//13077 13344//12087 13343//12086 +f 14340//13081 14341//13082 14316//13057 14315//13056 +f 14342//13083 14340//13081 14315//13056 14314//13055 +f 14340//13081 14342//13083 14343//13084 14344//13085 +f 14341//13082 14340//13081 14344//13085 14345//13086 +f 14346//13087 14286//13027 14288//13029 14347//13088 +f 14313//13054 14346//13087 14347//13088 14314//13055 +f 14346//13087 14313//13054 14284//13025 14283//13024 +f 14286//13027 14346//13087 14283//13024 14264//13005 +f 14348//13089 14342//13083 14314//13055 14347//13088 +f 14349//13090 14348//13089 14347//13088 14288//13029 +f 14348//13089 14349//13090 14350//13091 14351//13092 +f 14342//13083 14348//13089 14351//13092 14343//13084 +f 14352//13093 14349//13090 14288//13029 14287//13028 +f 14353//13094 14352//13093 14287//13028 14280//13021 +f 14352//13093 14353//13094 14354//13095 14355//13096 +f 14349//13090 14352//13093 14355//13096 14350//13091 +f 14356//13097 14357//13098 14345//13086 14344//13085 +f 14358//13099 14356//13097 14344//13085 14343//13084 +f 14356//13097 14358//13099 14359//13100 14360//13101 +f 14357//13098 14356//13097 14360//13101 14361//13102 +f 14362//13103 14358//13099 14343//13084 14351//13092 +f 14363//13104 14362//13103 14351//13092 14350//13091 +f 14362//13103 14363//13104 14364//13105 14365//13106 +f 14358//13099 14362//13103 14365//13106 14359//13100 +f 14366//13107 14367//13108 14361//13102 14360//13101 +f 14368//13109 14366//13107 14360//13101 14359//13100 +f 14366//13107 14368//13109 14369//13110 14370//13111 +f 14367//13108 14366//13107 14370//13111 14371//13112 +f 14372//13113 14368//13109 14359//13100 14365//13106 +f 14373//13114 14372//13113 14365//13106 14364//13105 +f 14372//13113 14373//13114 14374//13115 14375//13116 +f 14368//13109 14372//13113 14375//13116 14369//13110 +f 14376//13117 14377//13118 14378//13119 14379//13120 +f 14363//13104 14376//13117 14379//13120 14364//13105 +f 14376//13117 14363//13104 14350//13091 14355//13096 +f 14377//13118 14376//13117 14355//13096 14354//13095 +f 14380//13121 14381//13122 14382//13123 14383//13124 +f 14373//13114 14380//13121 14383//13124 14374//13115 +f 14380//13121 14373//13114 14364//13105 14379//13120 +f 14381//13122 14380//13121 14379//13120 14378//13119 +f 14384//13125 14385//13126 14371//13112 14370//13111 +f 14386//13127 14384//13125 14370//13111 14369//13110 +f 14384//13125 14386//13127 14387//13128 14388//13129 +f 14385//13126 14384//13125 14388//13129 14389//13130 +f 14390//13131 14386//13127 14369//13110 14375//13116 +f 14391//13132 14390//13131 14375//13116 14374//13115 +f 14390//13131 14391//13132 14392//13133 14393//13134 +f 14386//13127 14390//13131 14393//13134 14387//13128 +f 14394//13135 14395//13136 14389//13130 14388//13129 +f 14396//13137 14394//13135 14388//13129 14387//13128 +f 14394//13135 14396//13137 14397//13138 14398//13139 +f 14395//13136 14394//13135 14398//13139 14399//13140 +f 14400//13141 14396//13137 14387//13128 14393//13134 +f 14401//13142 14400//13141 14393//13134 14392//13133 +f 14400//13141 14401//13142 14402//13143 14403//13144 +f 14396//13137 14400//13141 14403//13144 14397//13138 +f 14404//13145 14405//13146 14406//13147 14407//13148 +f 14391//13132 14404//13145 14407//13148 14392//13133 +f 14404//13145 14391//13132 14374//13115 14383//13124 +f 14405//13146 14404//13145 14383//13124 14382//13123 +f 14408//13149 14409//13150 14410//13151 14411//13152 +f 14401//13142 14408//13149 14411//13152 14402//13143 +f 14408//13149 14401//13142 14392//13133 14407//13148 +f 14409//13150 14408//13149 14407//13148 14406//13147 +f 14412//13153 14413//13154 14399//13140 14398//13139 +f 14414//13155 14412//13153 14398//13139 14397//13138 +f 14412//13153 14414//13155 14415//13156 14416//13157 +f 14413//13154 14412//13153 14416//13157 14417//13158 +f 14418//13159 14414//13155 14397//13138 14403//13144 +f 14419//13160 14418//13159 14403//13144 14402//13143 +f 14418//13159 14419//13160 14420//13161 14421//13162 +f 14414//13155 14418//13159 14421//13162 14415//13156 +f 14422//13163 14423//13164 14417//13158 14416//13157 +f 14424//13165 14422//13163 14416//13157 14415//13156 +f 14422//13163 14424//13165 14425//13166 14426//13167 +f 14423//13164 14422//13163 14426//13167 14427//13168 +f 14428//13169 14429//13170 14430//13171 14431//13172 +f 14426//13167 14428//13169 14431//13172 14427//13168 +f 14428//13169 14426//13167 14425//13166 14432//13173 +f 14429//13170 14428//13169 14432//13173 14433//13174 +f 14434//13175 14435//13176 14436//13177 14437//13178 +f 14424//13165 14434//13175 14437//13178 14425//13166 +f 14434//13175 14424//13165 14415//13156 14421//13162 +f 14435//13176 14434//13175 14421//13162 14420//13161 +f 14438//13179 14439//13180 14433//13174 14432//13173 +f 14437//13178 14438//13179 14432//13173 14425//13166 +f 14438//13179 14437//13178 14436//13177 14440//13181 +f 14439//13180 14438//13179 14440//13181 14441//13182 +f 14442//13183 14443//13184 14444//13185 14445//13186 +f 14429//13170 14442//13183 14445//13186 14430//13171 +f 14442//13183 14429//13170 14433//13174 14446//13187 +f 14443//13184 14442//13183 14446//13187 14447//13188 +f 14448//13189 14449//13190 14450//13191 14451//13192 +f 14435//13176 14448//13189 14451//13192 14436//13177 +f 14448//13189 14435//13176 14420//13161 14452//13193 +f 14449//13190 14448//13189 14452//13193 14453//13194 +f 14454//13195 14455//13196 14456//13197 14457//13198 +f 14443//13184 14454//13195 14457//13198 14444//13185 +f 14454//13195 14443//13184 14447//13188 14458//13199 +f 14455//13196 14454//13195 14458//13199 14459//13200 +f 14460//13201 14461//13202 14447//13188 14446//13187 +f 14439//13180 14460//13201 14446//13187 14433//13174 +f 14460//13201 14439//13180 14441//13182 14462//13203 +f 14461//13202 14460//13201 14462//13203 14463//13204 +f 14464//13205 14465//13206 14441//13182 14440//13181 +f 14451//13192 14464//13205 14440//13181 14436//13177 +f 14464//13205 14451//13192 14450//13191 14466//13207 +f 14465//13206 14464//13205 14466//13207 14467//13208 +f 14468//13209 14469//13210 14470//13211 14471//13212 +f 14455//13196 14468//13209 14471//13212 14456//13197 +f 14468//13209 14455//13196 14459//13200 14472//13213 +f 14469//13210 14468//13209 14472//13213 14473//13214 +f 14474//13215 14475//13216 14459//13200 14458//13199 +f 14461//13202 14474//13215 14458//13199 14447//13188 +f 14474//13215 14461//13202 14463//13204 14476//13217 +f 14475//13216 14474//13215 14476//13217 14477//13218 +f 14478//13219 13314//12057 13315//12058 14479//13220 +f 14469//13210 14478//13219 14479//13220 14470//13211 +f 14478//13219 14469//13210 14473//13214 14480//13221 +f 13314//12057 14478//13219 14480//13221 13316//12059 +f 14481//13222 14482//13223 14473//13214 14472//13213 +f 14475//13216 14481//13222 14472//13213 14459//13200 +f 14481//13222 14475//13216 14477//13218 14483//13224 +f 14482//13223 14481//13222 14483//13224 14484//13225 +f 14485//13226 14486//13227 13316//12059 14480//13221 +f 14482//13223 14485//13226 14480//13221 14473//13214 +f 14485//13226 14482//13223 14484//13225 14487//13228 +f 14486//13227 14485//13226 14487//13228 14488//13229 +f 14489//13230 14490//13231 13318//12061 13317//12060 +f 14486//13227 14489//13230 13317//12060 13316//12059 +f 14489//13230 14486//13227 14488//13229 14491//13232 +f 14490//13231 14489//13230 14491//13232 14492//13233 +f 14493//13234 14494//13235 14484//13225 14483//13224 +f 14495//13236 14493//13234 14483//13224 14477//13218 +f 14493//13234 14495//13236 14496//13237 14497//13238 +f 14494//13235 14493//13234 14497//13238 14498//13239 +f 14499//13240 14500//13241 14501//13242 14502//13243 +f 14495//13236 14499//13240 14502//13243 14496//13237 +f 14499//13240 14495//13236 14477//13218 14476//13217 +f 14500//13241 14499//13240 14476//13217 14463//13204 +f 14503//13244 14504//13245 14498//13239 14497//13238 +f 14505//13246 14503//13244 14497//13238 14496//13237 +f 14503//13244 14505//13246 14506//13247 14507//13248 +f 14504//13245 14503//13244 14507//13248 14508//13249 +f 14509//13250 14505//13246 14496//13237 14502//13243 +f 14510//13251 14509//13250 14502//13243 14501//13242 +f 14509//13250 14510//13251 14511//13252 14512//13253 +f 14505//13246 14509//13250 14512//13253 14506//13247 +f 14513//13254 14514//13255 14515//13256 14516//13257 +f 14504//13245 14513//13254 14516//13257 14498//13239 +f 14513//13254 14504//13245 14508//13249 14517//13258 +f 14514//13255 14513//13254 14517//13258 14518//13259 +f 14519//13260 14520//13261 14518//13259 14517//13258 +f 14521//13262 14519//13260 14517//13258 14508//13249 +f 14519//13260 14521//13262 14522//13263 14523//13264 +f 14520//13261 14519//13260 14523//13264 14524//13265 +f 14525//13266 14521//13262 14508//13249 14507//13248 +f 14526//13267 14525//13266 14507//13248 14506//13247 +f 14525//13266 14526//13267 14527//13268 14528//13269 +f 14521//13262 14525//13266 14528//13269 14522//13263 +f 14529//13270 14530//13271 14531//13272 14532//13273 +f 14533//13274 14529//13270 14532//13273 14534//13275 +f 14529//13270 14533//13274 14524//13265 14523//13264 +f 14530//13271 14529//13270 14523//13264 14522//13263 +f 14535//13276 14536//13277 14537//13278 14538//13279 +f 14526//13267 14535//13276 14538//13279 14527//13268 +f 14535//13276 14526//13267 14506//13247 14512//13253 +f 14536//13277 14535//13276 14512//13253 14511//13252 +f 14539//13280 14530//13271 14522//13263 14528//13269 +f 14540//13281 14539//13280 14528//13269 14527//13268 +f 14539//13280 14540//13281 14541//13282 14542//13283 +f 14530//13271 14539//13280 14542//13283 14531//13272 +f 14543//13284 14540//13281 14527//13268 14538//13279 +f 14544//13285 14543//13284 14538//13279 14537//13278 +f 14543//13284 14544//13285 14545//13286 14546//13287 +f 14540//13281 14543//13284 14546//13287 14541//13282 +f 14547//13288 14548//13289 14549//13290 14550//13291 +f 14536//13277 14547//13288 14550//13291 14537//13278 +f 14547//13288 14536//13277 14511//13252 14551//13292 +f 14548//13289 14547//13288 14551//13292 14552//13293 +f 14553//13294 14554//13295 14555//13296 14556//13297 +f 14544//13285 14553//13294 14556//13297 14545//13286 +f 14553//13294 14544//13285 14537//13278 14550//13291 +f 14554//13295 14553//13294 14550//13291 14549//13290 +f 14557//13298 14558//13299 14541//13282 14546//13287 +f 14559//13300 14557//13298 14546//13287 14545//13286 +f 14557//13298 14559//13300 14560//13301 14561//13302 +f 14558//13299 14557//13298 14561//13302 14562//13303 +f 14563//13304 14564//13305 14552//13293 14551//13292 +f 14510//13251 14563//13304 14551//13292 14511//13252 +f 14563//13304 14510//13251 14501//13242 14565//13306 +f 14564//13305 14563//13304 14565//13306 14467//13208 +f 14566//13307 14567//13308 14531//13272 14542//13283 +f 14558//13299 14566//13307 14542//13283 14541//13282 +f 14566//13307 14558//13299 14562//13303 14568//13309 +f 14567//13308 14566//13307 14568//13309 14569//13310 +f 14570//13311 14571//13312 14534//13275 14532//13273 +f 14567//13308 14570//13311 14532//13273 14531//13272 +f 14570//13311 14567//13308 14569//13310 14572//13313 +f 14571//13312 14570//13311 14572//13313 14573//13314 +f 14574//13315 14575//13316 14576//13317 14577//13318 +f 14559//13300 14574//13315 14577//13318 14560//13301 +f 14574//13315 14559//13300 14545//13286 14556//13297 +f 14575//13316 14574//13315 14556//13297 14555//13296 +f 14578//13319 14579//13320 14562//13303 14561//13302 +f 14580//13321 14578//13319 14561//13302 14560//13301 +f 14578//13319 14580//13321 14581//13322 14582//13323 +f 14579//13320 14578//13319 14582//13323 14583//13324 +f 14584//13325 14580//13321 14560//13301 14577//13318 +f 14585//13326 14584//13325 14577//13318 14576//13317 +f 14584//13325 14585//13326 14586//13327 14587//13328 +f 14580//13321 14584//13325 14587//13328 14581//13322 +f 14588//13329 14589//13330 14569//13310 14568//13309 +f 14579//13320 14588//13329 14568//13309 14562//13303 +f 14588//13329 14579//13320 14583//13324 14590//13331 +f 14589//13330 14588//13329 14590//13331 14591//13332 +f 14592//13333 14593//13334 14594//13335 14595//13336 +f 14571//13312 14592//13333 14595//13336 14534//13275 +f 14592//13333 14571//13312 14573//13314 14596//13337 +f 14593//13334 14592//13333 14596//13337 14597//13338 +f 14598//13339 14533//13274 14534//13275 14595//13336 +f 14599//13340 14598//13339 14595//13336 14594//13335 +f 14598//13339 14599//13340 14600//13341 14601//13342 +f 14533//13274 14598//13339 14601//13342 14524//13265 +f 14602//13343 14603//13344 14573//13314 14572//13313 +f 14589//13330 14602//13343 14572//13313 14569//13310 +f 14602//13343 14589//13330 14591//13332 14604//13345 +f 14603//13344 14602//13343 14604//13345 14605//13346 +f 14606//13347 14607//13348 14605//13346 14604//13345 +f 14608//13349 14606//13347 14604//13345 14591//13332 +f 14606//13347 14608//13349 14609//13350 14610//13351 +f 14607//13348 14606//13347 14610//13351 14611//13352 +f 14612//13353 14608//13349 14591//13332 14590//13331 +f 14613//13354 14612//13353 14590//13331 14583//13324 +f 14612//13353 14613//13354 14614//13355 14615//13356 +f 14608//13349 14612//13353 14615//13356 14609//13350 +f 14616//13357 14617//13358 14618//13359 14619//13360 +f 14613//13354 14616//13357 14619//13360 14614//13355 +f 14616//13357 14613//13354 14583//13324 14582//13323 +f 14617//13358 14616//13357 14582//13323 14581//13322 +f 14620//13361 14621//13362 14609//13350 14615//13356 +f 14622//13363 14620//13361 14615//13356 14614//13355 +f 14620//13361 14622//13363 14623//13364 14624//13365 +f 14621//13362 14620//13361 14624//13365 14625//13366 +f 14626//13367 14627//13368 14628//13369 14629//13370 +f 14617//13358 14626//13367 14629//13370 14618//13359 +f 14626//13367 14617//13358 14581//13322 14587//13328 +f 14627//13368 14626//13367 14587//13328 14586//13327 +f 14630//13371 14622//13363 14614//13355 14619//13360 +f 14631//13372 14630//13371 14619//13360 14618//13359 +f 14630//13371 14631//13372 14632//13373 14633//13374 +f 14622//13363 14630//13371 14633//13374 14623//13364 +f 14634//13375 14631//13372 14618//13359 14629//13370 +f 14635//13376 14634//13375 14629//13370 14628//13369 +f 14634//13375 14635//13376 14636//13377 14637//13378 +f 14631//13372 14634//13375 14637//13378 14632//13373 +f 14638//13379 14639//13380 14640//13381 14641//13382 +f 14627//13368 14638//13379 14641//13382 14628//13369 +f 14638//13379 14627//13368 14586//13327 14642//13383 +f 14639//13380 14638//13379 14642//13383 14643//13384 +f 14644//13385 14645//13386 14646//13387 14647//13388 +f 14635//13376 14644//13385 14647//13388 14636//13377 +f 14644//13385 14635//13376 14628//13369 14641//13382 +f 14645//13386 14644//13385 14641//13382 14640//13381 +f 14648//13389 14649//13390 14632//13373 14637//13378 +f 14650//13391 14648//13389 14637//13378 14636//13377 +f 14648//13389 14650//13391 14651//13392 14652//13393 +f 14649//13390 14648//13389 14652//13393 14653//13394 +f 14654//13395 14655//13396 14643//13384 14642//13383 +f 14585//13326 14654//13395 14642//13383 14586//13327 +f 14654//13395 14585//13326 14576//13317 14656//13397 +f 14655//13396 14654//13395 14656//13397 14657//13398 +f 14658//13399 14659//13400 14623//13364 14633//13374 +f 14649//13390 14658//13399 14633//13374 14632//13373 +f 14658//13399 14649//13390 14653//13394 14660//13401 +f 14659//13400 14658//13399 14660//13401 14661//13402 +f 14662//13403 14663//13404 14657//13398 14656//13397 +f 14575//13316 14662//13403 14656//13397 14576//13317 +f 14662//13403 14575//13316 14555//13296 14664//13405 +f 14663//13404 14662//13403 14664//13405 14665//13406 +f 14666//13407 14667//13408 14640//13381 14639//13380 +f 14668//13409 14666//13407 14639//13380 14643//13384 +f 14666//13407 14668//13409 14669//13410 14670//13411 +f 14667//13408 14666//13407 14670//13411 14671//13412 +f 14672//13413 14673//13414 14665//13406 14664//13405 +f 14554//13295 14672//13413 14664//13405 14555//13296 +f 14672//13413 14554//13295 14549//13290 14674//13415 +f 14673//13414 14672//13413 14674//13415 14675//13416 +f 14676//13417 14668//13409 14643//13384 14655//13396 +f 14677//13418 14676//13417 14655//13396 14657//13398 +f 14676//13417 14677//13418 14678//13419 14679//13420 +f 14668//13409 14676//13417 14679//13420 14669//13410 +f 14680//13421 14677//13418 14657//13398 14663//13404 +f 14681//13422 14680//13421 14663//13404 14665//13406 +f 14680//13421 14681//13422 14682//13423 14683//13424 +f 14677//13418 14680//13421 14683//13424 14678//13419 +f 14684//13425 14685//13426 14675//13416 14674//13415 +f 14548//13289 14684//13425 14674//13415 14549//13290 +f 14684//13425 14548//13289 14552//13293 14686//13427 +f 14685//13426 14684//13425 14686//13427 14687//13428 +f 14688//13429 14689//13430 14690//13431 14691//13432 +f 14681//13422 14688//13429 14691//13432 14682//13423 +f 14688//13429 14681//13422 14665//13406 14673//13414 +f 14689//13430 14688//13429 14673//13414 14675//13416 +f 14692//13433 14693//13434 14678//13419 14683//13424 +f 14694//13435 14692//13433 14683//13424 14682//13423 +f 14692//13433 14694//13435 14695//13436 14696//13437 +f 14693//13434 14692//13433 14696//13437 14697//13438 +f 14698//13439 14694//13435 14682//13423 14691//13432 +f 14699//13440 14698//13439 14691//13432 14690//13431 +f 14698//13439 14699//13440 14700//13441 14701//13442 +f 14694//13435 14698//13439 14701//13442 14695//13436 +f 14702//13443 14703//13444 14704//13445 14705//13446 +f 14689//13430 14702//13443 14705//13446 14690//13431 +f 14702//13443 14689//13430 14675//13416 14685//13426 +f 14703//13444 14702//13443 14685//13426 14687//13428 +f 14706//13447 14707//13448 14669//13410 14679//13420 +f 14693//13434 14706//13447 14679//13420 14678//13419 +f 14706//13447 14693//13434 14697//13438 14708//13449 +f 14707//13448 14706//13447 14708//13449 14709//13450 +f 14710//13451 14699//13440 14690//13431 14705//13446 +f 14711//13452 14710//13451 14705//13446 14704//13445 +f 14710//13451 14711//13452 14712//13453 14713//13454 +f 14699//13440 14710//13451 14713//13454 14700//13441 +f 14714//13455 14715//13456 14410//13151 14716//13457 +f 14711//13452 14714//13455 14716//13457 14712//13453 +f 14714//13455 14711//13452 14704//13445 14717//13458 +f 14715//13456 14714//13455 14717//13458 14453//13194 +f 14718//13459 14719//13460 14687//13428 14686//13427 +f 14564//13305 14718//13459 14686//13427 14552//13293 +f 14718//13459 14564//13305 14467//13208 14466//13207 +f 14719//13460 14718//13459 14466//13207 14450//13191 +f 14720//13461 14465//13206 14467//13208 14565//13306 +f 14500//13241 14720//13461 14565//13306 14501//13242 +f 14720//13461 14500//13241 14463//13204 14462//13203 +f 14465//13206 14720//13461 14462//13203 14441//13182 +f 14721//13462 14703//13444 14687//13428 14719//13460 +f 14449//13190 14721//13462 14719//13460 14450//13191 +f 14721//13462 14449//13190 14453//13194 14717//13458 +f 14703//13444 14721//13462 14717//13458 14704//13445 +f 14722//13463 14715//13456 14453//13194 14452//13193 +f 14419//13160 14722//13463 14452//13193 14420//13161 +f 14722//13463 14419//13160 14402//13143 14411//13152 +f 14715//13456 14722//13463 14411//13152 14410//13151 +f 14723//13464 14724//13465 14712//13453 14716//13457 +f 14409//13150 14723//13464 14716//13457 14410//13151 +f 14723//13464 14409//13150 14406//13147 14725//13466 +f 14724//13465 14723//13464 14725//13466 14726//13467 +f 14727//13468 14728//13469 14700//13441 14713//13454 +f 14724//13465 14727//13468 14713//13454 14712//13453 +f 14727//13468 14724//13465 14726//13467 14729//13470 +f 14728//13469 14727//13468 14729//13470 14730//13471 +f 14731//13472 14732//13473 14726//13467 14725//13466 +f 14405//13146 14731//13472 14725//13466 14406//13147 +f 14731//13472 14405//13146 14382//13123 14733//13474 +f 14732//13473 14731//13472 14733//13474 14734//13475 +f 14735//13476 14736//13477 14695//13436 14701//13442 +f 14728//13469 14735//13476 14701//13442 14700//13441 +f 14735//13476 14728//13469 14730//13471 14737//13478 +f 14736//13477 14735//13476 14737//13478 14738//13479 +f 14739//13480 14740//13481 14730//13471 14729//13470 +f 14732//13473 14739//13480 14729//13470 14726//13467 +f 14739//13480 14732//13473 14734//13475 14741//13482 +f 14740//13481 14739//13480 14741//13482 14742//13483 +f 14743//13484 14744//13485 14734//13475 14733//13474 +f 14381//13122 14743//13484 14733//13474 14382//13123 +f 14743//13484 14381//13122 14378//13119 14745//13486 +f 14744//13485 14743//13484 14745//13486 14746//13487 +f 14747//13488 14748//13489 14697//13438 14696//13437 +f 14736//13477 14747//13488 14696//13437 14695//13436 +f 14747//13488 14736//13477 14738//13479 14749//13490 +f 14748//13489 14747//13488 14749//13490 14750//13491 +f 14751//13492 14752//13493 14738//13479 14737//13478 +f 14740//13481 14751//13492 14737//13478 14730//13471 +f 14751//13492 14740//13481 14742//13483 14753//13494 +f 14752//13493 14751//13492 14753//13494 14754//13495 +f 14755//13496 14756//13497 14742//13483 14741//13482 +f 14744//13485 14755//13496 14741//13482 14734//13475 +f 14755//13496 14744//13485 14746//13487 14757//13498 +f 14756//13497 14755//13496 14757//13498 14758//13499 +f 14759//13500 14760//13501 14746//13487 14745//13486 +f 14377//13118 14759//13500 14745//13486 14378//13119 +f 14759//13500 14377//13118 14354//13095 14761//13502 +f 14760//13501 14759//13500 14761//13502 14762//13503 +f 14763//13504 14764//13505 14762//13503 14761//13502 +f 14353//13094 14763//13504 14761//13502 14354//13095 +f 14763//13504 14353//13094 14280//13021 14279//13020 +f 14764//13505 14763//13504 14279//13020 14270//13011 +f 14765//13506 14766//13507 14758//13499 14757//13498 +f 14760//13501 14765//13506 14757//13498 14746//13487 +f 14765//13506 14760//13501 14762//13503 14767//13508 +f 14766//13507 14765//13506 14767//13508 14768//13509 +f 14769//13510 14770//13511 14754//13495 14753//13494 +f 14756//13497 14769//13510 14753//13494 14742//13483 +f 14769//13510 14756//13497 14758//13499 14771//13512 +f 14770//13511 14769//13510 14771//13512 14772//13513 +f 14773//13514 14774//13515 14768//13509 14767//13508 +f 14764//13505 14773//13514 14767//13508 14762//13503 +f 14773//13514 14764//13505 14270//13011 14269//13010 +f 14774//13515 14773//13514 14269//13010 14268//13009 +f 14775//13516 14776//13517 14772//13513 14771//13512 +f 14766//13507 14775//13516 14771//13512 14758//13499 +f 14775//13516 14766//13507 14768//13509 14777//13518 +f 14776//13517 14775//13516 14777//13518 14778//13519 +f 14779//13520 14780//13521 14778//13519 14777//13518 +f 14774//13515 14779//13520 14777//13518 14768//13509 +f 14779//13520 14774//13515 14268//13009 14781//13522 +f 14780//13521 14779//13520 14781//13522 14782//13523 +f 14783//13524 14784//13525 14782//13523 14781//13522 +f 14267//13008 14783//13524 14781//13522 14268//13009 +f 14783//13524 14267//13008 14244//12986 14243//12985 +f 14784//13525 14783//13524 14243//12985 14240//12982 +f 14785//13526 14786//13527 14787//13528 14788//13529 +f 14776//13517 14785//13526 14788//13529 14772//13513 +f 14785//13526 14776//13517 14778//13519 14789//13530 +f 14786//13527 14785//13526 14789//13530 14790//13531 +f 14791//13532 14792//13533 14793//13534 14794//13535 +f 14784//13525 14791//13532 14794//13535 14782//13523 +f 14791//13532 14784//13525 14240//12982 14239//12981 +f 14792//13533 14791//13532 14239//12981 14238//12980 +f 14795//13536 14796//13537 14790//13531 14789//13530 +f 14780//13521 14795//13536 14789//13530 14778//13519 +f 14795//13536 14780//13521 14782//13523 14794//13535 +f 14796//13537 14795//13536 14794//13535 14793//13534 +f 14797//13538 14798//13539 14799//13540 14800//13541 +f 14792//13533 14797//13538 14800//13541 14793//13534 +f 14797//13538 14792//13533 14238//12980 14801//13542 +f 14798//13539 14797//13538 14801//13542 14802//13543 +f 14803//13544 14804//13545 14805//13546 14806//13547 +f 14796//13537 14803//13544 14806//13547 14790//13531 +f 14803//13544 14796//13537 14793//13534 14800//13541 +f 14804//13545 14803//13544 14800//13541 14799//13540 +f 14807//13548 14808//13549 14809//13550 14810//13551 +f 14786//13527 14807//13548 14810//13551 14787//13528 +f 14807//13548 14786//13527 14790//13531 14806//13547 +f 14808//13549 14807//13548 14806//13547 14805//13546 +f 14811//13552 14770//13511 14772//13513 14788//13529 +f 14812//13553 14811//13552 14788//13529 14787//13528 +f 14811//13552 14812//13553 14813//13554 14814//13555 +f 14770//13511 14811//13552 14814//13555 14754//13495 +f 14815//13556 14812//13553 14787//13528 14810//13551 +f 14816//13557 14815//13556 14810//13551 14809//13550 +f 14815//13556 14816//13557 14817//13558 14818//13559 +f 14812//13553 14815//13556 14818//13559 14813//13554 +f 14819//13560 14752//13493 14754//13495 14814//13555 +f 14820//13561 14819//13560 14814//13555 14813//13554 +f 14819//13560 14820//13561 14750//13491 14749//13490 +f 14752//13493 14819//13560 14749//13490 14738//13479 +f 14821//13562 14822//13563 14823//13564 14824//13565 +f 14820//13561 14821//13562 14824//13565 14750//13491 +f 14821//13562 14820//13561 14813//13554 14818//13559 +f 14822//13563 14821//13562 14818//13559 14817//13558 +f 14825//13566 14826//13567 14709//13450 14708//13449 +f 14748//13489 14825//13566 14708//13449 14697//13438 +f 14825//13566 14748//13489 14750//13491 14824//13565 +f 14826//13567 14825//13566 14824//13565 14823//13564 +f 14827//13568 14828//13569 14829//13570 14830//13571 +f 14822//13563 14827//13568 14830//13571 14823//13564 +f 14827//13568 14822//13563 14817//13558 14831//13572 +f 14828//13569 14827//13568 14831//13572 14832//13573 +f 14833//13574 14834//13575 14671//13412 14670//13411 +f 14707//13448 14833//13574 14670//13411 14669//13410 +f 14833//13574 14707//13448 14709//13450 14835//13576 +f 14834//13575 14833//13574 14835//13576 14836//13577 +f 14837//13578 14838//13579 14836//13577 14835//13576 +f 14826//13567 14837//13578 14835//13576 14709//13450 +f 14837//13578 14826//13567 14823//13564 14830//13571 +f 14838//13579 14837//13578 14830//13571 14829//13570 +f 14839//13580 14840//13581 14646//13387 14645//13386 +f 14667//13408 14839//13580 14645//13386 14640//13381 +f 14839//13580 14667//13408 14671//13412 14841//13582 +f 14840//13581 14839//13580 14841//13582 14842//13583 +f 14843//13584 14844//13585 14842//13583 14841//13582 +f 14834//13575 14843//13584 14841//13582 14671//13412 +f 14843//13584 14834//13575 14836//13577 14845//13586 +f 14844//13585 14843//13584 14845//13586 14846//13587 +f 14847//13588 14848//13589 14846//13587 14845//13586 +f 14838//13579 14847//13588 14845//13586 14836//13577 +f 14847//13588 14838//13579 14829//13570 14849//13590 +f 14848//13589 14847//13588 14849//13590 14850//13591 +f 14851//13592 14852//13593 14832//13573 14831//13572 +f 14816//13557 14851//13592 14831//13572 14817//13558 +f 14851//13592 14816//13557 14809//13550 14853//13594 +f 14852//13593 14851//13592 14853//13594 14854//13595 +f 14855//13596 14856//13597 14850//13591 14849//13590 +f 14828//13569 14855//13596 14849//13590 14829//13570 +f 14855//13596 14828//13569 14832//13573 14857//13598 +f 14856//13597 14855//13596 14857//13598 14858//13599 +f 14859//13600 14860//13601 14854//13595 14853//13594 +f 14808//13549 14859//13600 14853//13594 14809//13550 +f 14859//13600 14808//13549 14805//13546 14861//13602 +f 14860//13601 14859//13600 14861//13602 14862//13603 +f 14863//13604 14864//13605 14858//13599 14857//13598 +f 14852//13593 14863//13604 14857//13598 14832//13573 +f 14863//13604 14852//13593 14854//13595 14865//13606 +f 14864//13605 14863//13604 14865//13606 14866//13607 +f 14867//13608 14868//13609 14862//13603 14861//13602 +f 14804//13545 14867//13608 14861//13602 14805//13546 +f 14867//13608 14804//13545 14799//13540 14869//13610 +f 14868//13609 14867//13608 14869//13610 14870//13611 +f 14871//13612 14872//13613 14866//13607 14865//13606 +f 14860//13601 14871//13612 14865//13606 14854//13595 +f 14871//13612 14860//13601 14862//13603 14873//13614 +f 14872//13613 14871//13612 14873//13614 14874//13615 +f 14875//13616 14876//13617 14877//13618 14878//13619 +f 14856//13597 14875//13616 14878//13619 14850//13591 +f 14875//13616 14856//13597 14858//13599 14879//13620 +f 14876//13617 14875//13616 14879//13620 14880//13621 +f 14881//13622 14882//13623 14880//13621 14879//13620 +f 14864//13605 14881//13622 14879//13620 14858//13599 +f 14881//13622 14864//13605 14866//13607 14883//13624 +f 14882//13623 14881//13622 14883//13624 14884//13625 +f 14885//13626 14848//13589 14850//13591 14878//13619 +f 14886//13627 14885//13626 14878//13619 14877//13618 +f 14885//13626 14886//13627 14887//13628 14888//13629 +f 14848//13589 14885//13626 14888//13629 14846//13587 +f 14889//13630 14890//13631 14874//13615 14873//13614 +f 14868//13609 14889//13630 14873//13614 14862//13603 +f 14889//13630 14868//13609 14870//13611 14891//13632 +f 14890//13631 14889//13630 14891//13632 14892//13633 +f 14893//13634 14844//13585 14846//13587 14888//13629 +f 14894//13635 14893//13634 14888//13629 14887//13628 +f 14893//13634 14894//13635 14895//13636 14896//13637 +f 14844//13585 14893//13634 14896//13637 14842//13583 +f 14897//13638 14898//13639 14870//13611 14869//13610 +f 14798//13539 14897//13638 14869//13610 14799//13540 +f 14897//13638 14798//13539 14802//13543 14899//13640 +f 14898//13639 14897//13638 14899//13640 14900//13641 +f 14901//13642 14902//13643 14802//13543 14801//13542 +f 14237//12979 14901//13642 14801//13542 14238//12980 +f 14901//13642 14237//12979 14116//12858 14115//12857 +f 14902//13643 14901//13642 14115//12857 14106//12848 +f 14903//13644 14904//13645 14900//13641 14899//13640 +f 14902//13643 14903//13644 14899//13640 14802//13543 +f 14903//13644 14902//13643 14106//12848 14105//12847 +f 14904//13645 14903//13644 14105//12847 14109//12851 +f 14905//13646 14906//13647 14892//13633 14891//13632 +f 14898//13639 14905//13646 14891//13632 14870//13611 +f 14905//13646 14898//13639 14900//13641 14907//13648 +f 14906//13647 14905//13646 14907//13648 14908//13649 +f 14909//13650 14910//13651 14109//12851 14108//12850 +f 14087//12829 14909//13650 14108//12850 14088//12830 +f 14909//13650 14087//12829 14023//12765 14911//13652 +f 14910//13651 14909//13650 14911//13652 14912//13653 +f 14913//13654 14914//13655 14908//13649 14907//13648 +f 14904//13645 14913//13654 14907//13648 14900//13641 +f 14913//13654 14904//13645 14109//12851 14910//13651 +f 14914//13655 14913//13654 14910//13651 14912//13653 +f 14915//13656 14916//13657 14912//13653 14911//13652 +f 14022//12764 14915//13656 14911//13652 14023//12765 +f 14915//13656 14022//12764 14001//12744 14000//12743 +f 14916//13657 14915//13656 14000//12743 13999//12742 +f 14917//13658 14914//13655 14912//13653 14916//13657 +f 14003//12746 14917//13658 14916//13657 13999//12742 +f 14917//13658 14003//12746 14005//12748 14918//13659 +f 14914//13655 14917//13658 14918//13659 14908//13649 +f 14919//13660 14906//13647 14908//13649 14918//13659 +f 14920//13661 14919//13660 14918//13659 14005//12748 +f 14919//13660 14920//13661 14921//13662 14922//13663 +f 14906//13647 14919//13660 14922//13663 14892//13633 +f 14923//13664 14920//13661 14005//12748 14004//12747 +f 13993//12736 14923//13664 14004//12747 13983//12726 +f 14923//13664 13993//12736 13995//12738 14924//13665 +f 14920//13661 14923//13664 14924//13665 14921//13662 +f 14925//13666 14890//13631 14892//13633 14922//13663 +f 14926//13667 14925//13666 14922//13663 14921//13662 +f 14925//13666 14926//13667 14927//13668 14928//13669 +f 14890//13631 14925//13666 14928//13669 14874//13615 +f 14929//13670 14926//13667 14921//13662 14924//13665 +f 14930//13671 14929//13670 14924//13665 13995//12738 +f 14929//13670 14930//13671 14931//13672 14932//13673 +f 14926//13667 14929//13670 14932//13673 14927//13668 +f 14933//13674 14930//13671 13995//12738 13994//12737 +f 14934//13675 14933//13674 13994//12737 13973//12716 +f 14933//13674 14934//13675 14935//13676 14936//13677 +f 14930//13671 14933//13674 14936//13677 14931//13672 +f 14937//13678 14872//13613 14874//13615 14928//13669 +f 14938//13679 14937//13678 14928//13669 14927//13668 +f 14937//13678 14938//13679 14884//13625 14883//13624 +f 14872//13613 14937//13678 14883//13624 14866//13607 +f 14939//13680 14938//13679 14927//13668 14932//13673 +f 14940//13681 14939//13680 14932//13673 14931//13672 +f 14939//13680 14940//13681 14941//13682 14942//13683 +f 14938//13679 14939//13680 14942//13683 14884//13625 +f 14943//13684 14944//13685 14945//13686 14946//13687 +f 14882//13623 14943//13684 14946//13687 14880//13621 +f 14943//13684 14882//13623 14884//13625 14942//13683 +f 14944//13685 14943//13684 14942//13683 14941//13682 +f 14947//13688 14948//13689 14949//13690 14950//13691 +f 14940//13681 14947//13688 14950//13691 14941//13682 +f 14947//13688 14940//13681 14931//13672 14936//13677 +f 14948//13689 14947//13688 14936//13677 14935//13676 +f 14951//13692 14952//13693 14953//13694 14954//13695 +f 14944//13685 14951//13692 14954//13695 14945//13686 +f 14951//13692 14944//13685 14941//13682 14950//13691 +f 14952//13693 14951//13692 14950//13691 14949//13690 +f 14955//13696 14876//13617 14880//13621 14946//13687 +f 14956//13697 14955//13696 14946//13687 14945//13686 +f 14955//13696 14956//13697 14957//13698 14958//13699 +f 14876//13617 14955//13696 14958//13699 14877//13618 +f 14959//13700 14956//13697 14945//13686 14954//13695 +f 14960//13701 14959//13700 14954//13695 14953//13694 +f 14959//13700 14960//13701 14961//13702 14962//13703 +f 14956//13697 14959//13700 14962//13703 14957//13698 +f 14963//13704 14886//13627 14877//13618 14958//13699 +f 14964//13705 14963//13704 14958//13699 14957//13698 +f 14963//13704 14964//13705 14965//13706 14966//13707 +f 14886//13627 14963//13704 14966//13707 14887//13628 +f 14967//13708 14964//13705 14957//13698 14962//13703 +f 14968//13709 14967//13708 14962//13703 14961//13702 +f 14967//13708 14968//13709 14969//13710 14970//13711 +f 14964//13705 14967//13708 14970//13711 14965//13706 +f 14971//13712 14894//13635 14887//13628 14966//13707 +f 14972//13713 14971//13712 14966//13707 14965//13706 +f 14971//13712 14972//13713 14973//13714 14974//13715 +f 14894//13635 14971//13712 14974//13715 14895//13636 +f 14975//13716 14972//13713 14965//13706 14970//13711 +f 14976//13717 14975//13716 14970//13711 14969//13710 +f 14975//13716 14976//13717 14977//13718 14978//13719 +f 14972//13713 14975//13716 14978//13719 14973//13714 +f 14979//13720 14980//13721 14981//13722 14982//13723 +f 14968//13709 14979//13720 14982//13723 14969//13710 +f 14979//13720 14968//13709 14961//13702 14983//13724 +f 14980//13721 14979//13720 14983//13724 14984//13725 +f 14985//13726 14986//13727 14987//13728 14988//13729 +f 14976//13717 14985//13726 14988//13729 14977//13718 +f 14985//13726 14976//13717 14969//13710 14982//13723 +f 14986//13727 14985//13726 14982//13723 14981//13722 +f 14989//13730 14990//13731 14973//13714 14978//13719 +f 14991//13732 14989//13730 14978//13719 14977//13718 +f 14989//13730 14991//13732 14992//13733 14993//13734 +f 14990//13731 14989//13730 14993//13734 14994//13735 +f 14995//13736 14996//13737 14984//13725 14983//13724 +f 14960//13701 14995//13736 14983//13724 14961//13702 +f 14995//13736 14960//13701 14953//13694 14997//13738 +f 14996//13737 14995//13736 14997//13738 14998//13739 +f 14999//13740 15000//13741 14895//13636 14974//13715 +f 14990//13731 14999//13740 14974//13715 14973//13714 +f 14999//13740 14990//13731 14994//13735 15001//13742 +f 15000//13741 14999//13740 15001//13742 15002//13743 +f 15003//13744 15004//13745 14998//13739 14997//13738 +f 14952//13693 15003//13744 14997//13738 14953//13694 +f 15003//13744 14952//13693 14949//13690 15005//13746 +f 15004//13745 15003//13744 15005//13746 15006//13747 +f 15007//13748 14840//13581 14842//13583 14896//13637 +f 15000//13741 15007//13748 14896//13637 14895//13636 +f 15007//13748 15000//13741 15002//13743 15008//13749 +f 14840//13581 15007//13748 15008//13749 14646//13387 +f 15009//13750 14650//13391 14636//13377 14647//13388 +f 15008//13749 15009//13750 14647//13388 14646//13387 +f 15009//13750 15008//13749 15002//13743 15010//13751 +f 14650//13391 15009//13750 15010//13751 14651//13392 +f 15011//13752 15012//13753 14651//13392 15010//13751 +f 15001//13742 15011//13752 15010//13751 15002//13743 +f 15011//13752 15001//13742 14994//13735 15013//13754 +f 15012//13753 15011//13752 15013//13754 15014//13755 +f 15015//13756 15016//13757 15014//13755 15013//13754 +f 14993//13734 15015//13756 15013//13754 14994//13735 +f 15015//13756 14993//13734 14992//13733 15017//13758 +f 15016//13757 15015//13756 15017//13758 13559//12302 +f 15018//13759 15019//13760 14653//13394 14652//13393 +f 15012//13753 15018//13759 14652//13393 14651//13392 +f 15018//13759 15012//13753 15014//13755 15020//13761 +f 15019//13760 15018//13759 15020//13761 13549//12292 +f 15021//13762 13547//12290 13549//12292 15020//13761 +f 15016//13757 15021//13762 15020//13761 15014//13755 +f 15021//13762 15016//13757 13559//12302 13558//12301 +f 13547//12290 15021//13762 13558//12301 13545//12288 +f 15022//13763 15023//13764 14661//13402 14660//13401 +f 15019//13760 15022//13763 14660//13401 14653//13394 +f 15022//13763 15019//13760 13549//12292 13548//12291 +f 15023//13764 15022//13763 13548//12291 13537//12280 +f 15024//13765 13531//12274 13533//12276 15025//13766 +f 15023//13764 15024//13765 15025//13766 14661//13402 +f 15024//13765 15023//13764 13537//12280 13536//12279 +f 13531//12274 15024//13765 13536//12279 13519//12262 +f 15026//13767 14659//13400 14661//13402 15025//13766 +f 15027//13768 15026//13767 15025//13766 13533//12276 +f 15026//13767 15027//13768 14625//13366 14624//13365 +f 14659//13400 15026//13767 14624//13365 14623//13364 +f 15028//13769 13525//12268 13529//12272 15029//13770 +f 15027//13768 15028//13769 15029//13770 14625//13366 +f 15028//13769 15027//13768 13533//12276 13532//12275 +f 13525//12268 15028//13769 13532//12275 13515//12258 +f 15030//13771 14621//13362 14625//13366 15029//13770 +f 15031//13772 15030//13771 15029//13770 13529//12272 +f 15030//13771 15031//13772 14611//13352 14610//13351 +f 14621//13362 15030//13771 14610//13351 14609//13350 +f 15032//13773 15033//13774 15034//13775 15035//13776 +f 14607//13348 15032//13773 15035//13776 14605//13346 +f 15032//13773 14607//13348 14611//13352 15036//13777 +f 15033//13774 15032//13773 15036//13777 15037//13778 +f 15038//13779 14603//13344 14605//13346 15035//13776 +f 15039//13780 15038//13779 15035//13776 15034//13775 +f 15038//13779 15039//13780 14597//13338 14596//13337 +f 14603//13344 15038//13779 14596//13337 14573//13314 +f 15040//13781 13557//12300 13559//12302 15017//13758 +f 15041//13782 15040//13781 15017//13758 14992//13733 +f 15040//13781 15041//13782 15042//13783 15043//13784 +f 13557//12300 15040//13781 15043//13784 13555//12298 +f 15044//13785 15045//13786 15042//13783 15041//13782 +f 14991//13732 15044//13785 15041//13782 14992//13733 +f 15044//13785 14991//13732 14977//13718 14988//13729 +f 15045//13786 15044//13785 14988//13729 14987//13728 +f 15046//13787 13551//12294 13555//12298 15043//13784 +f 15047//13788 15046//13787 15043//13784 15042//13783 +f 15046//13787 15047//13788 13571//12314 13570//12313 +f 13551//12294 15046//13787 13570//12313 13552//12295 +f 15048//13789 15049//13790 13571//12314 15047//13788 +f 15045//13786 15048//13789 15047//13788 15042//13783 +f 15048//13789 15045//13786 14987//13728 15050//13791 +f 15049//13790 15048//13789 15050//13791 15051//13792 +f 15052//13793 13595//12338 13568//12311 13567//12310 +f 15049//13790 15052//13793 13567//12310 13571//12314 +f 15052//13793 15049//13790 15051//13792 15053//13794 +f 13595//12338 15052//13793 15053//13794 13596//12339 +f 15054//13795 15055//13796 15051//13792 15050//13791 +f 14986//13727 15054//13795 15050//13791 14987//13728 +f 15054//13795 14986//13727 14981//13722 15056//13797 +f 15055//13796 15054//13795 15056//13797 15057//13798 +f 15058//13799 15059//13800 13596//12339 15053//13794 +f 15055//13796 15058//13799 15053//13794 15051//13792 +f 15058//13799 15055//13796 15057//13798 15060//13801 +f 15059//13800 15058//13799 15060//13801 15061//13802 +f 15062//13803 15063//13804 15057//13798 15056//13797 +f 14980//13721 15062//13803 15056//13797 14981//13722 +f 15062//13803 14980//13721 14984//13725 15064//13805 +f 15063//13804 15062//13803 15064//13805 15065//13806 +f 15066//13807 15067//13808 13585//12328 13597//12340 +f 15059//13800 15066//13807 13597//12340 13596//12339 +f 15066//13807 15059//13800 15061//13802 15068//13809 +f 15067//13808 15066//13807 15068//13809 15069//13810 +f 15070//13811 15071//13812 15061//13802 15060//13801 +f 15063//13804 15070//13811 15060//13801 15057//13798 +f 15070//13811 15063//13804 15065//13806 15072//13813 +f 15071//13812 15070//13811 15072//13813 15073//13814 +f 15074//13815 15075//13816 15065//13806 15064//13805 +f 14996//13737 15074//13815 15064//13805 14984//13725 +f 15074//13815 14996//13737 14998//13739 15076//13817 +f 15075//13816 15074//13815 15076//13817 15077//13818 +f 15078//13819 15079//13820 13587//12330 13586//12329 +f 15067//13808 15078//13819 13586//12329 13585//12328 +f 15078//13819 15067//13808 15069//13810 15080//13821 +f 15079//13820 15078//13819 15080//13821 15081//13822 +f 15082//13823 15083//13824 15069//13810 15068//13809 +f 15071//13812 15082//13823 15068//13809 15061//13802 +f 15082//13823 15071//13812 15073//13814 15084//13825 +f 15083//13824 15082//13823 15084//13825 15085//13826 +f 15086//13827 15087//13828 15073//13814 15072//13813 +f 15075//13816 15086//13827 15072//13813 15065//13806 +f 15086//13827 15075//13816 15077//13818 15088//13829 +f 15087//13828 15086//13827 15088//13829 15089//13830 +f 15090//13831 13611//12354 13590//12333 13593//12336 +f 15079//13820 15090//13831 13593//12336 13587//12330 +f 15090//13831 15079//13820 15081//13822 15091//13832 +f 13611//12354 15090//13831 15091//13832 13612//12355 +f 15092//13833 15093//13834 15081//13822 15080//13821 +f 15083//13824 15092//13833 15080//13821 15069//13810 +f 15092//13833 15083//13824 15085//13826 15094//13835 +f 15093//13834 15092//13833 15094//13835 13643//12386 +f 15095//13836 13627//12370 13612//12355 15091//13832 +f 15093//13834 15095//13836 15091//13832 15081//13822 +f 15095//13836 15093//13834 13643//12386 13642//12385 +f 13627//12370 15095//13836 13642//12385 13628//12371 +f 15096//13837 15097//13838 13763//12506 13762//12505 +f 13639//12382 15096//13837 13762//12505 13640//12383 +f 15096//13837 13639//12382 13643//12386 15094//13835 +f 15097//13838 15096//13837 15094//13835 15085//13826 +f 15098//13839 15097//13838 15085//13826 15084//13825 +f 15087//13828 15098//13839 15084//13825 15073//13814 +f 15098//13839 15087//13828 15089//13830 15099//13840 +f 15097//13838 15098//13839 15099//13840 13763//12506 +f 15100//13841 15101//13842 13773//12516 13772//12515 +f 13761//12504 15100//13841 13772//12515 13759//12502 +f 15100//13841 13761//12504 13763//12506 15099//13840 +f 15101//13842 15100//13841 15099//13840 15089//13830 +f 15102//13843 15103//13844 13969//12712 13968//12711 +f 13771//12514 15102//13843 13968//12711 13769//12512 +f 15102//13843 13771//12514 13773//12516 15104//13845 +f 15103//13844 15102//13843 15104//13845 15105//13846 +f 15106//13847 15107//13848 15105//13846 15104//13845 +f 15101//13842 15106//13847 15104//13845 13773//12516 +f 15106//13847 15101//13842 15089//13830 15088//13829 +f 15107//13848 15106//13847 15088//13829 15077//13818 +f 15108//13849 15109//13850 13977//12720 13976//12719 +f 15103//13844 15108//13849 13976//12719 13969//12712 +f 15108//13849 15103//13844 15105//13846 15110//13851 +f 15109//13850 15108//13849 15110//13851 15006//13747 +f 15111//13852 14934//13675 13973//12716 13972//12715 +f 13975//12718 15111//13852 13972//12715 13965//12708 +f 15111//13852 13975//12718 13977//12720 15112//13853 +f 14934//13675 15111//13852 15112//13853 14935//13676 +f 15113//13854 15004//13745 15006//13747 15110//13851 +f 15107//13848 15113//13854 15110//13851 15105//13846 +f 15113//13854 15107//13848 15077//13818 15076//13817 +f 15004//13745 15113//13854 15076//13817 14998//13739 +f 15114//13855 14948//13689 14935//13676 15112//13853 +f 15109//13850 15114//13855 15112//13853 13977//12720 +f 15114//13855 15109//13850 15006//13747 15005//13746 +f 14948//13689 15114//13855 15005//13746 14949//13690 +f 15115//13856 15116//13857 14488//13229 14487//13228 +f 14494//13235 15115//13856 14487//13228 14484//13225 +f 15115//13856 14494//13235 14498//13239 14516//13257 +f 15116//13857 15115//13856 14516//13257 14515//13256 +f 15117//13858 15118//13859 14492//13233 14491//13232 +f 15116//13857 15117//13858 14491//13232 14488//13229 +f 15117//13858 15116//13857 14515//13256 15119//13860 +f 15118//13859 15117//13858 15119//13860 15120//13861 +f 15121//13862 15122//13863 15120//13861 15119//13860 +f 14514//13255 15121//13862 15119//13860 14515//13256 +f 15121//13862 14514//13255 14518//13259 15123//13864 +f 15122//13863 15121//13862 15123//13864 15124//13865 +f 15125//13866 15126//13867 15124//13865 15123//13864 +f 14520//13261 15125//13866 15123//13864 14518//13259 +f 15125//13866 14520//13261 14524//13265 14601//13342 +f 15126//13867 15125//13866 14601//13342 14600//13341 +f 15127//13868 15128//13869 14334//13075 14339//13080 +f 15129//13870 15127//13868 14339//13080 14338//13079 +f 15127//13868 15129//13870 14172//12914 14171//12913 +f 15128//13869 15127//13868 14171//12913 14168//12910 +f 15130//13871 14178//12920 14182//12924 14335//13076 +f 15128//13869 15130//13871 14335//13076 14334//13075 +f 15130//13871 15128//13869 14168//12910 14166//12908 +f 14178//12920 15130//13871 14166//12908 14165//12907 +f 15131//13872 15132//13873 13385//12128 13384//12127 +f 13365//12108 15131//13872 13384//12127 13366//12109 +f 15131//13872 13365//12108 13303//12046 15133//13874 +f 15132//13873 15131//13872 15133//13874 15134//13875 +f 15135//13876 15136//13877 15137//13878 15138//13879 +f 15139//13880 15135//13876 15138//13879 13309//12052 +f 15135//13876 15139//13880 15140//13881 15141//13882 +f 15136//13877 15135//13876 15141//13882 15142//13883 +f 15143//13884 15144//13885 15145//13886 15146//13887 +f 15139//13880 15143//13884 15146//13887 15140//13881 +f 15143//13884 15139//13880 13309//12052 13308//12051 +f 15144//13885 15143//13884 13308//12051 13307//12050 +f 15147//13888 15148//13889 15149//13890 15150//13891 +f 15144//13885 15147//13888 15150//13891 15145//13886 +f 15147//13888 15144//13885 13307//12050 13349//12092 +f 15148//13889 15147//13888 13349//12092 13348//12091 +f 15151//13892 15152//13893 15153//13894 15154//13895 +f 15148//13889 15151//13892 15154//13895 15149//13890 +f 15151//13892 15148//13889 13348//12091 13355//12098 +f 15152//13893 15151//13892 13355//12098 13354//12097 +f 15155//13896 15156//13897 15157//13898 15158//13899 +f 15152//13893 15155//13896 15158//13899 15153//13894 +f 15155//13896 15152//13893 13354//12097 13371//12114 +f 15156//13897 15155//13896 13371//12114 13370//12113 +f 15159//13900 15160//13901 15161//13902 15162//13903 +f 15156//13897 15159//13900 15162//13903 15157//13898 +f 15159//13900 15156//13897 13370//12113 13425//12168 +f 15160//13901 15159//13900 13425//12168 13424//12167 +f 15163//13904 15164//13905 15161//13902 15160//13901 +f 13437//12180 15163//13904 15160//13901 13424//12167 +f 15163//13904 13437//12180 13441//12184 15165//13906 +f 15164//13905 15163//13904 15165//13906 15166//13907 +f 15167//13908 15168//13909 15166//13907 15165//13906 +f 13599//12342 15167//13908 15165//13906 13441//12184 +f 15167//13908 13599//12342 13603//12346 15169//13910 +f 15168//13909 15167//13908 15169//13910 15170//13911 +f 15171//13912 15172//13913 15170//13911 15169//13910 +f 13605//12348 15171//13912 15169//13910 13603//12346 +f 15171//13912 13605//12348 13609//12352 15173//13914 +f 15172//13913 15171//13912 15173//13914 15174//13915 +f 15175//13916 15176//13917 15174//13915 15173//13914 +f 13615//12358 15175//13916 15173//13914 13609//12352 +f 15175//13916 13615//12358 13619//12362 15177//13918 +f 15176//13917 15175//13916 15177//13918 15178//13919 +f 15179//13920 15180//13921 15178//13919 15177//13918 +f 13621//12364 15179//13920 15177//13918 13619//12362 +f 15179//13920 13621//12364 13625//12368 15181//13922 +f 15180//13921 15179//13920 15181//13922 15182//13923 +f 15183//13924 15184//13925 15182//13923 15181//13922 +f 13649//12392 15183//13924 15181//13922 13625//12368 +f 15183//13924 13649//12392 13653//12396 15185//13926 +f 15184//13925 15183//13924 15185//13926 15186//13927 +f 15187//13928 15188//13929 15186//13927 15185//13926 +f 13655//12398 15187//13928 15185//13926 13653//12396 +f 15187//13928 13655//12398 13659//12402 15189//13930 +f 15188//13929 15187//13928 15189//13930 15190//13931 +f 15191//13932 15192//13933 15190//13931 15189//13930 +f 13665//12408 15191//13932 15189//13930 13659//12402 +f 15191//13932 13665//12408 13669//12412 15193//13934 +f 15192//13933 15191//13932 15193//13934 15194//13935 +f 15195//13936 15196//13937 15194//13935 15193//13934 +f 13675//12418 15195//13936 15193//13934 13669//12412 +f 15195//13936 13675//12418 13679//12422 15197//13938 +f 15196//13937 15195//13936 15197//13938 15198//13939 +f 15199//13940 15200//13941 15201//13942 15202//13943 +f 15197//13938 15199//13940 15202//13943 15198//13939 +f 15199//13940 15197//13938 13679//12422 13687//12430 +f 15200//13941 15199//13940 13687//12430 13686//12429 +f 15203//13944 15204//13945 15205//13946 15206//13947 +f 15200//13941 15203//13944 15206//13947 15201//13942 +f 15203//13944 15200//13941 13686//12429 13701//12444 +f 15204//13945 15203//13944 13701//12444 13700//12443 +f 15207//13948 15208//13949 15209//13950 15210//13951 +f 15204//13945 15207//13948 15210//13951 15205//13946 +f 15207//13948 15204//13945 13700//12443 13705//12448 +f 15208//13949 15207//13948 13705//12448 13324//12067 +f 15211//13952 15212//13953 15213//13954 15214//13955 +f 15208//13949 15211//13952 15214//13955 15209//13950 +f 15211//13952 15208//13949 13324//12067 13322//12065 +f 15212//13953 15211//13952 13322//12065 13321//12064 +f 15215//13956 15216//13957 15217//13958 15218//13959 +f 15212//13953 15215//13956 15218//13959 15213//13954 +f 15215//13956 15212//13953 13321//12064 15219//13960 +f 15216//13957 15215//13956 15219//13960 15220//13961 +f 15221//13962 15222//13963 15223//13964 15224//13965 +f 15216//13957 15221//13962 15224//13965 15217//13958 +f 15221//13962 15216//13957 15220//13961 15225//13966 +f 15222//13963 15221//13962 15225//13966 15226//13967 +f 15227//13968 15228//13969 13826//12569 13833//12576 +f 15229//13970 15227//13968 13833//12576 13832//12575 +f 15227//13968 15229//13970 15226//13967 15225//13966 +f 15228//13969 15227//13968 15225//13966 15220//13961 +f 15230//13971 13320//12063 13327//12070 13827//12570 +f 15228//13969 15230//13971 13827//12570 13826//12569 +f 15230//13971 15228//13969 15220//13961 15219//13960 +f 13320//12063 15230//13971 15219//13960 13321//12064 +f 15231//13972 15031//13772 13529//12272 13528//12271 +f 15232//13973 15231//13972 13528//12271 13527//12270 +f 15231//13972 15232//13973 15037//13778 15036//13777 +f 15031//13772 15231//13972 15036//13777 14611//13352 +f 15233//13974 13302//12045 13309//12052 15138//13879 +f 15234//13975 15233//13974 15138//13879 15137//13878 +f 15233//13974 15234//13975 15134//13875 15133//13874 +f 13302//12045 15233//13974 15133//13874 13303//12046 +f 15235//13976 13709//12452 13703//12446 13702//12445 +f 13695//12438 15235//13976 13702//12445 13689//12432 +f 15235//13976 13695//12438 13697//12440 13725//12468 +f 13709//12452 15235//13976 13725//12468 13710//12453 +f 15236//13977 15237//13978 15238//13979 15239//13980 +f 15240//13981 15236//13977 15239//13980 15241//13982 +f 15236//13977 15240//13981 15242//13983 15243//13984 +f 15237//13978 15236//13977 15243//13984 15244//13985 +f 15245//13986 15246//13987 15247//13988 15248//13989 +f 15249//13990 15245//13986 15248//13989 15250//13991 +f 15245//13986 15249//13990 15251//13992 15252//13993 +f 15246//13987 15245//13986 15252//13993 15253//13994 +f 15254//13995 15255//13996 15256//13997 15257//13998 +f 15258//13999 15254//13995 15257//13998 15259//14000 +f 15254//13995 15258//13999 15260//14001 15261//14002 +f 15255//13996 15254//13995 15261//14002 15262//14003 +f 15263//14004 15264//14005 15265//14006 15266//14007 +f 15267//14008 15263//14004 15266//14007 15268//14009 +f 15263//14004 15267//14008 15269//14010 15270//14011 +f 15264//14005 15263//14004 15270//14011 15271//14012 +f 15272//14013 15273//14014 15274//14015 15275//14016 +f 15276//14017 15272//14013 15275//14016 15277//14018 +f 15272//14013 15276//14017 15278//14019 15279//14020 +f 15273//14014 15272//14013 15279//14020 15280//14021 +f 15281//14022 15282//14023 15283//14024 15284//14025 +f 15240//13981 15281//14022 15284//14025 15242//13983 +f 15281//14022 15240//13981 15241//13982 15285//14026 +f 15282//14023 15281//14022 15285//14026 15286//14027 +f 15287//14028 15288//14029 15289//14030 15290//14031 +f 15282//14023 15287//14028 15290//14031 15283//14024 +f 15287//14028 15282//14023 15286//14027 15291//14032 +f 15288//14029 15287//14028 15291//14032 15292//14033 +f 15293//14034 15294//14035 15286//14027 15285//14026 +f 15295//14036 15293//14034 15285//14026 15241//13982 +f 15293//14034 15295//14036 15296//14037 15297//14038 +f 15294//14035 15293//14034 15297//14038 15298//14039 +f 15299//14040 15300//14041 15301//14042 15302//14043 +f 15295//14036 15299//14040 15302//14043 15296//14037 +f 15299//14040 15295//14036 15241//13982 15239//13980 +f 15300//14041 15299//14040 15239//13980 15238//13979 +f 15303//14044 15304//14045 15305//14046 15306//14047 +f 15288//14029 15303//14044 15306//14047 15289//14030 +f 15303//14044 15288//14029 15292//14033 15307//14048 +f 15304//14045 15303//14044 15307//14048 15308//14049 +f 15309//14050 15310//14051 15296//14037 15302//14043 +f 15311//14052 15309//14050 15302//14043 15301//14042 +f 15309//14050 15311//14052 15312//14053 15313//14054 +f 15310//14051 15309//14050 15313//14054 15314//14055 +f 15315//14056 15316//14057 15317//14058 15318//14059 +f 15311//14052 15315//14056 15318//14059 15312//14053 +f 15315//14056 15311//14052 15301//14042 15319//14060 +f 15316//14057 15315//14056 15319//14060 15320//14061 +f 15321//14062 15322//14063 15312//14053 15318//14059 +f 15323//14064 15321//14062 15318//14059 15317//14058 +f 15321//14062 15323//14064 15324//14065 15325//14066 +f 15322//14063 15321//14062 15325//14066 15326//14067 +f 15327//14068 15328//14069 15326//14067 15325//14066 +f 15329//14070 15327//14068 15325//14066 15324//14065 +f 15327//14068 15329//14070 15330//14071 15331//14072 +f 15328//14069 15327//14068 15331//14072 15332//14073 +f 15333//14074 15334//14075 15314//14055 15313//14054 +f 15322//14063 15333//14074 15313//14054 15312//14053 +f 15333//14074 15322//14063 15326//14067 15335//14076 +f 15334//14075 15333//14074 15335//14076 15336//14077 +f 15337//14078 15338//14079 15298//14039 15297//14038 +f 15310//14051 15337//14078 15297//14038 15296//14037 +f 15337//14078 15310//14051 15314//14055 15339//14080 +f 15338//14079 15337//14078 15339//14080 15340//14081 +f 15341//14082 15342//14083 15292//14033 15291//14032 +f 15294//14035 15341//14082 15291//14032 15286//14027 +f 15341//14082 15294//14035 15298//14039 15343//14084 +f 15342//14083 15341//14082 15343//14084 15344//14085 +f 15345//14086 15346//14087 15308//14049 15307//14048 +f 15342//14083 15345//14086 15307//14048 15292//14033 +f 15345//14086 15342//14083 15344//14085 15347//14088 +f 15346//14087 15345//14086 15347//14088 15348//14089 +f 15349//14090 15350//14091 15344//14085 15343//14084 +f 15338//14079 15349//14090 15343//14084 15298//14039 +f 15349//14090 15338//14079 15340//14081 15351//14092 +f 15350//14091 15349//14090 15351//14092 15352//14093 +f 15353//14094 15354//14095 15340//14081 15339//14080 +f 15334//14075 15353//14094 15339//14080 15314//14055 +f 15353//14094 15334//14075 15336//14077 15355//14096 +f 15354//14095 15353//14094 15355//14096 15356//14097 +f 15357//14098 15358//14099 15359//14100 15360//14101 +f 15304//14045 15357//14098 15360//14101 15305//14046 +f 15357//14098 15304//14045 15308//14049 15361//14102 +f 15358//14099 15357//14098 15361//14102 15362//14103 +f 15363//14104 15364//14105 15362//14103 15361//14102 +f 15346//14087 15363//14104 15361//14102 15308//14049 +f 15363//14104 15346//14087 15348//14089 15365//14106 +f 15364//14105 15363//14104 15365//14106 15366//14107 +f 15367//14108 15368//14109 15348//14089 15347//14088 +f 15350//14091 15367//14108 15347//14088 15344//14085 +f 15367//14108 15350//14091 15352//14093 15369//14110 +f 15368//14109 15367//14108 15369//14110 15370//14111 +f 15371//14112 15372//14113 15359//14100 15358//14099 +f 15373//14114 15371//14112 15358//14099 15362//14103 +f 15371//14112 15373//14114 15374//14115 15375//14116 +f 15372//14113 15371//14112 15375//14116 15376//14117 +f 15377//14118 15378//14119 15352//14093 15351//14092 +f 15354//14095 15377//14118 15351//14092 15340//14081 +f 15377//14118 15354//14095 15356//14097 15379//14120 +f 15378//14119 15377//14118 15379//14120 15380//14121 +f 15381//14122 15382//14123 15336//14077 15335//14076 +f 15328//14069 15381//14122 15335//14076 15326//14067 +f 15381//14122 15328//14069 15332//14073 15383//14124 +f 15382//14123 15381//14122 15383//14124 15384//14125 +f 15385//14126 15386//14127 15387//14128 15388//14129 +f 15389//14130 15385//14126 15388//14129 15390//14131 +f 15385//14126 15389//14130 15332//14073 15331//14072 +f 15386//14127 15385//14126 15331//14072 15330//14071 +f 15391//14132 15392//14133 15390//14131 15388//14129 +f 15393//14134 15391//14132 15388//14129 15387//14128 +f 15391//14132 15393//14134 15394//14135 15395//14136 +f 15392//14133 15391//14132 15395//14136 15396//14137 +f 15397//14138 15398//14139 15384//14125 15383//14124 +f 15389//14130 15397//14138 15383//14124 15332//14073 +f 15397//14138 15389//14130 15390//14131 15399//14140 +f 15398//14139 15397//14138 15399//14140 15400//14141 +f 15401//14142 15402//14143 15356//14097 15355//14096 +f 15382//14123 15401//14142 15355//14096 15336//14077 +f 15401//14142 15382//14123 15384//14125 15403//14144 +f 15402//14143 15401//14142 15403//14144 15404//14145 +f 15405//14146 15406//14147 15370//14111 15369//14110 +f 15378//14119 15405//14146 15369//14110 15352//14093 +f 15405//14146 15378//14119 15380//14121 15407//14148 +f 15406//14147 15405//14146 15407//14148 15408//14149 +f 15409//14150 15410//14151 15380//14121 15379//14120 +f 15402//14143 15409//14150 15379//14120 15356//14097 +f 15409//14150 15402//14143 15404//14145 15411//14152 +f 15410//14151 15409//14150 15411//14152 15412//14153 +f 15413//14154 15414//14155 15404//14145 15403//14144 +f 15398//14139 15413//14154 15403//14144 15384//14125 +f 15413//14154 15398//14139 15400//14141 15415//14156 +f 15414//14155 15413//14154 15415//14156 15416//14157 +f 15417//14158 15418//14159 15400//14141 15399//14140 +f 15392//14133 15417//14158 15399//14140 15390//14131 +f 15417//14158 15392//14133 15396//14137 15419//14160 +f 15418//14159 15417//14158 15419//14160 15420//14161 +f 15421//14162 15422//14163 15412//14153 15411//14152 +f 15414//14155 15421//14162 15411//14152 15404//14145 +f 15421//14162 15414//14155 15416//14157 15423//14164 +f 15422//14163 15421//14162 15423//14164 15424//14165 +f 15425//14166 15426//14167 15416//14157 15415//14156 +f 15418//14159 15425//14166 15415//14156 15400//14141 +f 15425//14166 15418//14159 15420//14161 15427//14168 +f 15426//14167 15425//14166 15427//14168 15428//14169 +f 15429//14170 15430//14171 15420//14161 15419//14160 +f 15431//14172 15429//14170 15419//14160 15396//14137 +f 15429//14170 15431//14172 15432//14173 15433//14174 +f 15430//14171 15429//14170 15433//14174 15434//14175 +f 15435//14176 15436//14177 15437//14178 15438//14179 +f 15431//14172 15435//14176 15438//14179 15432//14173 +f 15435//14176 15431//14172 15396//14137 15395//14136 +f 15436//14177 15435//14176 15395//14136 15394//14135 +f 15439//14180 15440//14181 15432//14173 15438//14179 +f 15441//14182 15439//14180 15438//14179 15437//14178 +f 15439//14180 15441//14182 15442//14183 15443//14184 +f 15440//14181 15439//14180 15443//14184 15444//14185 +f 15445//14186 15446//14187 15444//14185 15443//14184 +f 15447//14188 15445//14186 15443//14184 15442//14183 +f 15445//14186 15447//14188 15448//14189 15449//14190 +f 15446//14187 15445//14186 15449//14190 15450//14191 +f 15451//14192 15452//14193 15434//14175 15433//14174 +f 15440//14181 15451//14192 15433//14174 15432//14173 +f 15451//14192 15440//14181 15444//14185 15453//14194 +f 15452//14193 15451//14192 15453//14194 15454//14195 +f 15455//14196 15456//14197 15428//14169 15427//14168 +f 15430//14171 15455//14196 15427//14168 15420//14161 +f 15455//14196 15430//14171 15434//14175 15457//14198 +f 15456//14197 15455//14196 15457//14198 15458//14199 +f 15459//14200 15460//14201 15450//14191 15449//14190 +f 15461//14202 15459//14200 15449//14190 15448//14189 +f 15459//14200 15461//14202 15462//14203 15463//14204 +f 15460//14201 15459//14200 15463//14204 15464//14205 +f 15465//14206 15466//14207 15454//14195 15453//14194 +f 15446//14187 15465//14206 15453//14194 15444//14185 +f 15465//14206 15446//14187 15450//14191 15467//14208 +f 15466//14207 15465//14206 15467//14208 15468//14209 +f 15469//14210 15470//14211 15458//14199 15457//14198 +f 15452//14193 15469//14210 15457//14198 15434//14175 +f 15469//14210 15452//14193 15454//14195 15471//14212 +f 15470//14211 15469//14210 15471//14212 15472//14213 +f 15473//14214 15474//14215 15424//14165 15423//14164 +f 15426//14167 15473//14214 15423//14164 15416//14157 +f 15473//14214 15426//14167 15428//14169 15475//14216 +f 15474//14215 15473//14214 15475//14216 15476//14217 +f 15477//14218 15478//14219 15476//14217 15475//14216 +f 15456//14197 15477//14218 15475//14216 15428//14169 +f 15477//14218 15456//14197 15458//14199 15479//14220 +f 15478//14219 15477//14218 15479//14220 15480//14221 +f 15481//14222 15482//14223 15480//14221 15479//14220 +f 15470//14211 15481//14222 15479//14220 15458//14199 +f 15481//14222 15470//14211 15472//14213 15483//14224 +f 15482//14223 15481//14222 15483//14224 15484//14225 +f 15485//14226 15486//14227 15487//14228 15488//14229 +f 15474//14215 15485//14226 15488//14229 15424//14165 +f 15485//14226 15474//14215 15476//14217 15489//14230 +f 15486//14227 15485//14226 15489//14230 15490//14231 +f 15491//14232 15492//14233 15490//14231 15489//14230 +f 15478//14219 15491//14232 15489//14230 15476//14217 +f 15491//14232 15478//14219 15480//14221 15493//14234 +f 15492//14233 15491//14232 15493//14234 15494//14235 +f 15495//14236 15496//14237 15497//14238 15498//14239 +f 15422//14163 15495//14236 15498//14239 15412//14153 +f 15495//14236 15422//14163 15424//14165 15488//14229 +f 15496//14237 15495//14236 15488//14229 15487//14228 +f 15499//14240 15410//14151 15412//14153 15498//14239 +f 15500//14241 15499//14240 15498//14239 15497//14238 +f 15499//14240 15500//14241 15408//14149 15407//14148 +f 15410//14151 15499//14240 15407//14148 15380//14121 +f 15501//14242 15502//14243 15503//14244 15504//14245 +f 15496//14237 15501//14242 15504//14245 15497//14238 +f 15501//14242 15496//14237 15487//14228 15505//14246 +f 15502//14243 15501//14242 15505//14246 15506//14247 +f 15507//14248 15508//14249 15509//14250 15510//14251 +f 15500//14241 15507//14248 15510//14251 15408//14149 +f 15507//14248 15500//14241 15497//14238 15504//14245 +f 15508//14249 15507//14248 15504//14245 15503//14244 +f 15511//14252 15512//14253 15513//14254 15514//14255 +f 15406//14147 15511//14252 15514//14255 15370//14111 +f 15511//14252 15406//14147 15408//14149 15510//14251 +f 15512//14253 15511//14252 15510//14251 15509//14250 +f 15515//14256 15368//14109 15370//14111 15514//14255 +f 15516//14257 15515//14256 15514//14255 15513//14254 +f 15515//14256 15516//14257 15366//14107 15365//14106 +f 15368//14109 15515//14256 15365//14106 15348//14089 +f 15517//14258 15518//14259 15513//14254 15512//14253 +f 15519//14260 15517//14258 15512//14253 15509//14250 +f 15517//14258 15519//14260 15520//14261 15521//14262 +f 15518//14259 15517//14258 15521//14262 15522//14263 +f 15523//14264 15373//14114 15362//14103 15364//14105 +f 15524//14265 15523//14264 15364//14105 15366//14107 +f 15523//14264 15524//14265 15525//14266 15526//14267 +f 15373//14114 15523//14264 15526//14267 15374//14115 +f 15527//14268 15524//14265 15366//14107 15516//14257 +f 15518//14259 15527//14268 15516//14257 15513//14254 +f 15527//14268 15518//14259 15522//14263 15528//14269 +f 15524//14265 15527//14268 15528//14269 15525//14266 +f 15529//14270 15530//14271 15531//14272 15532//14273 +f 15519//14260 15529//14270 15532//14273 15520//14261 +f 15529//14270 15519//14260 15509//14250 15508//14249 +f 15530//14271 15529//14270 15508//14249 15503//14244 +f 15533//14274 15534//14275 15376//14117 15375//14116 +f 15535//14276 15533//14274 15375//14116 15374//14115 +f 15533//14274 15535//14276 15536//14277 15537//14278 +f 15534//14275 15533//14274 15537//14278 15538//14279 +f 15539//14280 15540//14281 15538//14279 15537//14278 +f 15541//14282 15539//14280 15537//14278 15536//14277 +f 15539//14280 15541//14282 15542//14283 15543//14284 +f 15540//14281 15539//14280 15543//14284 15544//14285 +f 15545//14286 15546//14287 15547//14288 15548//14289 +f 15535//14276 15545//14286 15548//14289 15536//14277 +f 15545//14286 15535//14276 15374//14115 15526//14267 +f 15546//14287 15545//14286 15526//14267 15525//14266 +f 15549//14290 15550//14291 15544//14285 15543//14284 +f 15551//14292 15549//14290 15543//14284 15542//14283 +f 15549//14290 15551//14292 15552//14293 15553//14294 +f 15550//14291 15549//14290 15553//14294 15554//14295 +f 15555//14296 15556//14297 15554//14295 15553//14294 +f 15557//14298 15555//14296 15553//14294 15552//14293 +f 15555//14296 15557//14298 15558//14299 15559//14300 +f 15556//14297 15555//14296 15559//14300 15560//14301 +f 15561//14302 15562//14303 15563//14304 15564//14305 +f 15541//14282 15561//14302 15564//14305 15542//14283 +f 15561//14302 15541//14282 15536//14277 15548//14289 +f 15562//14303 15561//14302 15548//14289 15547//14288 +f 15565//14306 15566//14307 15567//14308 15568//14309 +f 15551//14292 15565//14306 15568//14309 15552//14293 +f 15565//14306 15551//14292 15542//14283 15564//14305 +f 15566//14307 15565//14306 15564//14305 15563//14304 +f 15569//14310 15557//14298 15552//14293 15568//14309 +f 15570//14311 15569//14310 15568//14309 15567//14308 +f 15569//14310 15570//14311 15571//14312 15572//14313 +f 15557//14298 15569//14310 15572//14313 15558//14299 +f 15573//14314 15574//14315 15575//14316 15576//14317 +f 15566//14307 15573//14314 15576//14317 15567//14308 +f 15573//14314 15566//14307 15563//14304 15577//14318 +f 15574//14315 15573//14314 15577//14318 15578//14319 +f 15579//14320 15570//14311 15567//14308 15576//14317 +f 15580//14321 15579//14320 15576//14317 15575//14316 +f 15579//14320 15580//14321 15581//14322 15582//14323 +f 15570//14311 15579//14320 15582//14323 15571//14312 +f 15583//14324 15584//14325 15560//14301 15559//14300 +f 15585//14326 15583//14324 15559//14300 15558//14299 +f 15583//14324 15585//14326 15586//14327 15587//14328 +f 15584//14325 15583//14324 15587//14328 15588//14329 +f 15589//14330 15590//14331 15588//14329 15587//14328 +f 15591//14332 15589//14330 15587//14328 15586//14327 +f 15589//14330 15591//14332 15592//14333 15593//14334 +f 15590//14331 15589//14330 15593//14334 15594//14335 +f 15595//14336 15585//14326 15558//14299 15572//14313 +f 15596//14337 15595//14336 15572//14313 15571//14312 +f 15595//14336 15596//14337 15597//14338 15598//14339 +f 15585//14326 15595//14336 15598//14339 15586//14327 +f 15599//14340 15600//14341 15594//14335 15593//14334 +f 15601//14342 15599//14340 15593//14334 15592//14333 +f 15599//14340 15601//14342 15602//14343 15603//14344 +f 15600//14341 15599//14340 15603//14344 15604//14345 +f 15605//14346 15591//14332 15586//14327 15598//14339 +f 15606//14347 15605//14346 15598//14339 15597//14338 +f 15605//14346 15606//14347 15607//14348 15608//14349 +f 15591//14332 15605//14346 15608//14349 15592//14333 +f 15609//14350 15610//14351 15604//14345 15603//14344 +f 15611//14352 15609//14350 15603//14344 15602//14343 +f 15609//14350 15611//14352 15612//14353 15613//14354 +f 15610//14351 15609//14350 15613//14354 15614//14355 +f 15615//14356 15601//14342 15592//14333 15608//14349 +f 15616//14357 15615//14356 15608//14349 15607//14348 +f 15615//14356 15616//14357 15617//14358 15618//14359 +f 15601//14342 15615//14356 15618//14359 15602//14343 +f 15619//14360 15620//14361 15621//14362 15622//14363 +f 15613//14354 15619//14360 15622//14363 15614//14355 +f 15619//14360 15613//14354 15612//14353 15623//14364 +f 15620//14361 15619//14360 15623//14364 15624//14365 +f 15625//14366 15626//14367 15627//14368 15628//14369 +f 15611//14352 15625//14366 15628//14369 15612//14353 +f 15625//14366 15611//14352 15602//14343 15618//14359 +f 15626//14367 15625//14366 15618//14359 15617//14358 +f 15629//14370 15630//14371 15624//14365 15623//14364 +f 15628//14369 15629//14370 15623//14364 15612//14353 +f 15629//14370 15628//14369 15627//14368 15631//14372 +f 15630//14371 15629//14370 15631//14372 15632//14373 +f 15633//14374 15634//14375 15635//14376 15636//14377 +f 15620//14361 15633//14374 15636//14377 15621//14362 +f 15633//14374 15620//14361 15624//14365 15637//14378 +f 15634//14375 15633//14374 15637//14378 15638//14379 +f 15639//14380 15258//13999 15259//14000 15640//14381 +f 15634//14375 15639//14380 15640//14381 15635//14376 +f 15639//14380 15634//14375 15638//14379 15641//14382 +f 15258//13999 15639//14380 15641//14382 15260//14001 +f 15642//14383 15643//14384 15260//14001 15641//14382 +f 15644//14385 15642//14383 15641//14382 15638//14379 +f 15642//14383 15644//14385 15645//14386 15646//14387 +f 15643//14384 15642//14383 15646//14387 15647//14388 +f 15648//14389 15649//14390 15632//14373 15631//14372 +f 15650//14391 15648//14389 15631//14372 15627//14368 +f 15648//14389 15650//14391 15651//14392 15652//14393 +f 15649//14390 15648//14389 15652//14393 15653//14394 +f 15654//14395 15655//14396 15651//14392 15650//14391 +f 15626//14367 15654//14395 15650//14391 15627//14368 +f 15654//14395 15626//14367 15617//14358 15656//14397 +f 15655//14396 15654//14395 15656//14397 15657//14398 +f 15658//14399 15659//14400 15645//14386 15660//14401 +f 15649//14390 15658//14399 15660//14401 15632//14373 +f 15658//14399 15649//14390 15653//14394 15661//14402 +f 15659//14400 15658//14399 15661//14402 15662//14403 +f 15663//14404 15664//14405 15657//14398 15656//14397 +f 15616//14357 15663//14404 15656//14397 15617//14358 +f 15663//14404 15616//14357 15607//14348 15665//14406 +f 15664//14405 15663//14404 15665//14406 15666//14407 +f 15667//14408 15668//14409 15653//14394 15652//14393 +f 15669//14410 15667//14408 15652//14393 15651//14392 +f 15667//14408 15669//14410 15670//14411 15671//14412 +f 15668//14409 15667//14408 15671//14412 15672//14413 +f 15673//14414 15674//14415 15670//14411 15669//14410 +f 15655//14396 15673//14414 15669//14410 15651//14392 +f 15673//14414 15655//14396 15657//14398 15675//14416 +f 15674//14415 15673//14414 15675//14416 15676//14417 +f 15677//14418 15678//14419 15666//14407 15665//14406 +f 15606//14347 15677//14418 15665//14406 15607//14348 +f 15677//14418 15606//14347 15597//14338 15679//14420 +f 15678//14419 15677//14418 15679//14420 15680//14421 +f 15681//14422 15682//14423 15676//14417 15675//14416 +f 15664//14405 15681//14422 15675//14416 15657//14398 +f 15681//14422 15664//14405 15666//14407 15683//14424 +f 15682//14423 15681//14422 15683//14424 15684//14425 +f 15685//14426 15686//14427 15680//14421 15679//14420 +f 15596//14337 15685//14426 15679//14420 15597//14338 +f 15685//14426 15596//14337 15571//14312 15582//14323 +f 15686//14427 15685//14426 15582//14323 15581//14322 +f 15687//14428 15688//14429 15684//14425 15683//14424 +f 15678//14419 15687//14428 15683//14424 15666//14407 +f 15687//14428 15678//14419 15680//14421 15689//14430 +f 15688//14429 15687//14428 15689//14430 15690//14431 +f 15691//14432 15692//14433 15690//14431 15689//14430 +f 15686//14427 15691//14432 15689//14430 15680//14421 +f 15691//14432 15686//14427 15581//14322 15693//14434 +f 15692//14433 15691//14432 15693//14434 15694//14435 +f 15695//14436 15696//14437 15694//14435 15693//14434 +f 15580//14321 15695//14436 15693//14434 15581//14322 +f 15695//14436 15580//14321 15575//14316 15697//14438 +f 15696//14437 15695//14436 15697//14438 15698//14439 +f 15699//14440 15700//14441 15701//14442 15702//14443 +f 15688//14429 15699//14440 15702//14443 15684//14425 +f 15699//14440 15688//14429 15690//14431 15703//14444 +f 15700//14441 15699//14440 15703//14444 15704//14445 +f 15705//14446 15706//14447 15704//14445 15703//14444 +f 15692//14433 15705//14446 15703//14444 15690//14431 +f 15705//14446 15692//14433 15694//14435 15707//14448 +f 15706//14447 15705//14446 15707//14448 15708//14449 +f 15709//14450 15710//14451 15711//14452 15712//14453 +f 15682//14423 15709//14450 15712//14453 15676//14417 +f 15709//14450 15682//14423 15684//14425 15702//14443 +f 15710//14451 15709//14450 15702//14443 15701//14442 +f 15713//14454 15674//14415 15676//14417 15712//14453 +f 15714//14455 15713//14454 15712//14453 15711//14452 +f 15713//14454 15714//14455 15715//14456 15716//14457 +f 15674//14415 15713//14454 15716//14457 15670//14411 +f 15717//14458 15718//14459 15719//14460 15720//14461 +f 15710//14451 15717//14458 15720//14461 15711//14452 +f 15717//14458 15710//14451 15701//14442 15721//14462 +f 15718//14459 15717//14458 15721//14462 15722//14463 +f 15723//14464 15724//14465 15672//14413 15671//14412 +f 15716//14457 15723//14464 15671//14412 15670//14411 +f 15723//14464 15716//14457 15715//14456 15725//14466 +f 15724//14465 15723//14464 15725//14466 15726//14467 +f 15727//14468 15728//14469 15729//14470 15730//14471 +f 15714//14455 15727//14468 15730//14471 15715//14456 +f 15727//14468 15714//14455 15711//14452 15720//14461 +f 15728//14469 15727//14468 15720//14461 15719//14460 +f 15731//14472 15732//14473 15726//14467 15725//14466 +f 15730//14471 15731//14472 15725//14466 15715//14456 +f 15731//14472 15730//14471 15729//14470 15733//14474 +f 15732//14473 15731//14472 15733//14474 15734//14475 +f 15735//14476 15736//14477 15662//14403 15661//14402 +f 15668//14409 15735//14476 15661//14402 15653//14394 +f 15735//14476 15668//14409 15672//14413 15737//14478 +f 15736//14477 15735//14476 15737//14478 15738//14479 +f 15739//14480 15740//14481 15738//14479 15737//14478 +f 15724//14465 15739//14480 15737//14478 15672//14413 +f 15739//14480 15724//14465 15726//14467 15741//14482 +f 15740//14481 15739//14480 15741//14482 15742//14483 +f 15743//14484 15744//14485 15647//14388 15646//14387 +f 15659//14400 15743//14484 15646//14387 15645//14386 +f 15743//14484 15659//14400 15662//14403 15745//14486 +f 15744//14485 15743//14484 15745//14486 15746//14487 +f 15747//14488 15748//14489 15262//14003 15261//14002 +f 15643//14384 15747//14488 15261//14002 15260//14001 +f 15747//14488 15643//14384 15647//14388 15749//14490 +f 15748//14489 15747//14488 15749//14490 15750//14491 +f 15751//14492 15752//14493 15746//14487 15745//14486 +f 15736//14477 15751//14492 15745//14486 15662//14403 +f 15751//14492 15736//14477 15738//14479 15753//14494 +f 15752//14493 15751//14492 15753//14494 15754//14495 +f 15755//14496 15756//14497 15750//14491 15749//14490 +f 15744//14485 15755//14496 15749//14490 15647//14388 +f 15755//14496 15744//14485 15746//14487 15757//14498 +f 15756//14497 15755//14496 15757//14498 15758//14499 +f 15759//14500 15760//14501 15761//14502 15762//14503 +f 15748//14489 15759//14500 15762//14503 15262//14003 +f 15759//14500 15748//14489 15750//14491 15763//14504 +f 15760//14501 15759//14500 15763//14504 15764//14505 +f 15765//14506 15766//14507 15767//14508 15768//14509 +f 15760//14501 15765//14506 15768//14509 15761//14502 +f 15765//14506 15760//14501 15764//14505 15769//14510 +f 15766//14507 15765//14506 15769//14510 15770//14511 +f 15771//14512 15772//14513 15764//14505 15763//14504 +f 15756//14497 15771//14512 15763//14504 15750//14491 +f 15771//14512 15756//14497 15758//14499 15773//14514 +f 15772//14513 15771//14512 15773//14514 15774//14515 +f 15775//14516 15776//14517 15758//14499 15757//14498 +f 15752//14493 15775//14516 15757//14498 15746//14487 +f 15775//14516 15752//14493 15754//14495 15777//14518 +f 15776//14517 15775//14516 15777//14518 15778//14519 +f 15779//14520 15780//14521 15770//14511 15769//14510 +f 15772//14513 15779//14520 15769//14510 15764//14505 +f 15779//14520 15772//14513 15774//14515 15781//14522 +f 15780//14521 15779//14520 15781//14522 15782//14523 +f 15783//14524 15784//14525 15774//14515 15773//14514 +f 15776//14517 15783//14524 15773//14514 15758//14499 +f 15783//14524 15776//14517 15778//14519 15785//14526 +f 15784//14525 15783//14524 15785//14526 15786//14527 +f 15787//14528 15788//14529 15782//14523 15781//14522 +f 15784//14525 15787//14528 15781//14522 15774//14515 +f 15787//14528 15784//14525 15786//14527 15789//14530 +f 15788//14529 15787//14528 15789//14530 15790//14531 +f 15791//14532 15792//14533 15778//14519 15777//14518 +f 15793//14534 15791//14532 15777//14518 15754//14495 +f 15791//14532 15793//14534 15794//14535 15795//14536 +f 15792//14533 15791//14532 15795//14536 15796//14537 +f 15797//14538 15798//14539 15790//14531 15789//14530 +f 15799//14540 15797//14538 15789//14530 15786//14527 +f 15797//14538 15799//14540 15800//14541 15801//14542 +f 15798//14539 15797//14538 15801//14542 15802//14543 +f 15803//14544 15799//14540 15786//14527 15785//14526 +f 15792//14533 15803//14544 15785//14526 15778//14519 +f 15803//14544 15792//14533 15796//14537 15804//14545 +f 15799//14540 15803//14544 15804//14545 15800//14541 +f 15805//14546 15806//14547 15802//14543 15801//14542 +f 15807//14548 15805//14546 15801//14542 15800//14541 +f 15805//14546 15807//14548 15808//14549 15809//14550 +f 15806//14547 15805//14546 15809//14550 15810//14551 +f 15811//14552 15807//14548 15800//14541 15804//14545 +f 15812//14553 15811//14552 15804//14545 15796//14537 +f 15811//14552 15812//14553 15813//14554 15814//14555 +f 15807//14548 15811//14552 15814//14555 15808//14549 +f 15815//14556 15816//14557 15810//14551 15809//14550 +f 15817//14558 15815//14556 15809//14550 15808//14549 +f 15815//14556 15817//14558 15818//14559 15819//14560 +f 15816//14557 15815//14556 15819//14560 15820//14561 +f 15821//14562 15822//14563 15820//14561 15819//14560 +f 15823//14564 15821//14562 15819//14560 15818//14559 +f 15821//14562 15823//14564 15824//14565 15825//14566 +f 15822//14563 15821//14562 15825//14566 15826//14567 +f 15827//14568 15828//14569 15829//14570 15830//14571 +f 15817//14558 15827//14568 15830//14571 15818//14559 +f 15827//14568 15817//14558 15808//14549 15814//14555 +f 15828//14569 15827//14568 15814//14555 15813//14554 +f 15831//14572 15823//14564 15818//14559 15830//14571 +f 15832//14573 15831//14572 15830//14571 15829//14570 +f 15831//14572 15832//14573 15833//14574 15834//14575 +f 15823//14564 15831//14572 15834//14575 15824//14565 +f 15835//14576 15836//14577 15824//14565 15834//14575 +f 15837//14578 15835//14576 15834//14575 15833//14574 +f 15835//14576 15837//14578 15838//14579 15839//14580 +f 15836//14577 15835//14576 15839//14580 15840//14581 +f 15841//14582 15842//14583 15843//14584 15844//14585 +f 15832//14573 15841//14582 15844//14585 15833//14574 +f 15841//14582 15832//14573 15829//14570 15845//14586 +f 15842//14583 15841//14582 15845//14586 15846//14587 +f 15847//14588 15848//14589 15849//14590 15850//14591 +f 15837//14578 15847//14588 15850//14591 15838//14579 +f 15847//14588 15837//14578 15833//14574 15844//14585 +f 15848//14589 15847//14588 15844//14585 15843//14584 +f 15851//14592 15852//14593 15846//14587 15845//14586 +f 15828//14569 15851//14592 15845//14586 15829//14570 +f 15851//14592 15828//14569 15813//14554 15853//14594 +f 15852//14593 15851//14592 15853//14594 15854//14595 +f 15855//14596 15856//14597 15854//14595 15853//14594 +f 15812//14553 15855//14596 15853//14594 15813//14554 +f 15855//14596 15812//14553 15796//14537 15795//14536 +f 15856//14597 15855//14596 15795//14536 15794//14535 +f 15857//14598 15858//14599 15859//14600 15860//14601 +f 15842//14583 15857//14598 15860//14601 15843//14584 +f 15857//14598 15842//14583 15846//14587 15861//14602 +f 15858//14599 15857//14598 15861//14602 15862//14603 +f 15863//14604 15864//14605 15862//14603 15861//14602 +f 15852//14593 15863//14604 15861//14602 15846//14587 +f 15863//14604 15852//14593 15854//14595 15865//14606 +f 15864//14605 15863//14604 15865//14606 15866//14607 +f 15867//14608 15868//14609 15866//14607 15865//14606 +f 15856//14597 15867//14608 15865//14606 15854//14595 +f 15867//14608 15856//14597 15794//14535 15869//14610 +f 15868//14609 15867//14608 15869//14610 15742//14483 +f 15870//14611 15740//14481 15742//14483 15869//14610 +f 15793//14534 15870//14611 15869//14610 15794//14535 +f 15870//14611 15793//14534 15754//14495 15753//14494 +f 15740//14481 15870//14611 15753//14494 15738//14479 +f 15871//14612 15868//14609 15742//14483 15741//14482 +f 15732//14473 15871//14612 15741//14482 15726//14467 +f 15871//14612 15732//14473 15734//14475 15872//14613 +f 15868//14609 15871//14612 15872//14613 15866//14607 +f 15873//14614 15864//14605 15866//14607 15872//14613 +f 15874//14615 15873//14614 15872//14613 15734//14475 +f 15873//14614 15874//14615 15875//14616 15876//14617 +f 15864//14605 15873//14614 15876//14617 15862//14603 +f 15877//14618 15874//14615 15734//14475 15733//14474 +f 15878//14619 15877//14618 15733//14474 15729//14470 +f 15877//14618 15878//14619 15879//14620 15880//14621 +f 15874//14615 15877//14618 15880//14621 15875//14616 +f 15881//14622 15882//14623 15879//14620 15878//14619 +f 15728//14469 15881//14622 15878//14619 15729//14470 +f 15881//14622 15728//14469 15719//14460 15883//14624 +f 15882//14623 15881//14622 15883//14624 15884//14625 +f 15885//14626 15858//14599 15862//14603 15876//14617 +f 15886//14627 15885//14626 15876//14617 15875//14616 +f 15885//14626 15886//14627 15887//14628 15888//14629 +f 15858//14599 15885//14626 15888//14629 15859//14600 +f 15889//14630 15886//14627 15875//14616 15880//14621 +f 15890//14631 15889//14630 15880//14621 15879//14620 +f 15889//14630 15890//14631 15891//14632 15892//14633 +f 15886//14627 15889//14630 15892//14633 15887//14628 +f 15893//14634 15894//14635 15891//14632 15890//14631 +f 15882//14623 15893//14634 15890//14631 15879//14620 +f 15893//14634 15882//14623 15884//14625 15895//14636 +f 15894//14635 15893//14634 15895//14636 15896//14637 +f 15897//14638 15898//14639 15884//14625 15883//14624 +f 15718//14459 15897//14638 15883//14624 15719//14460 +f 15897//14638 15718//14459 15722//14463 15899//14640 +f 15898//14639 15897//14638 15899//14640 15900//14641 +f 15901//14642 15902//14643 15722//14463 15721//14462 +f 15700//14441 15901//14642 15721//14462 15701//14442 +f 15901//14642 15700//14441 15704//14445 15903//14644 +f 15902//14643 15901//14642 15903//14644 15904//14645 +f 15905//14646 15906//14647 15896//14637 15895//14636 +f 15898//14639 15905//14646 15895//14636 15884//14625 +f 15905//14646 15898//14639 15900//14641 15907//14648 +f 15906//14647 15905//14646 15907//14648 15908//14649 +f 15909//14650 15910//14651 15900//14641 15899//14640 +f 15902//14643 15909//14650 15899//14640 15722//14463 +f 15909//14650 15902//14643 15904//14645 15911//14652 +f 15910//14651 15909//14650 15911//14652 15912//14653 +f 15913//14654 15914//14655 15915//14656 15916//14657 +f 15894//14635 15913//14654 15916//14657 15891//14632 +f 15913//14654 15894//14635 15896//14637 15917//14658 +f 15914//14655 15913//14654 15917//14658 15918//14659 +f 15919//14660 15920//14661 15887//14628 15892//14633 +f 15916//14657 15919//14660 15892//14633 15891//14632 +f 15919//14660 15916//14657 15915//14656 15921//14662 +f 15920//14661 15919//14660 15921//14662 15922//14663 +f 15923//14664 15924//14665 15859//14600 15888//14629 +f 15920//14661 15923//14664 15888//14629 15887//14628 +f 15923//14664 15920//14661 15922//14663 15925//14666 +f 15924//14665 15923//14664 15925//14666 15926//14667 +f 15927//14668 15928//14669 15918//14659 15917//14658 +f 15906//14647 15927//14668 15917//14658 15896//14637 +f 15927//14668 15906//14647 15908//14649 15929//14670 +f 15928//14669 15927//14668 15929//14670 15930//14671 +f 15931//14672 15932//14673 15922//14663 15921//14662 +f 15933//14674 15931//14672 15921//14662 15915//14656 +f 15931//14672 15933//14674 15934//14675 15935//14676 +f 15932//14673 15931//14672 15935//14676 15936//14677 +f 15937//14678 15938//14679 15934//14675 15933//14674 +f 15914//14655 15937//14678 15933//14674 15915//14656 +f 15937//14678 15914//14655 15918//14659 15939//14680 +f 15938//14679 15937//14678 15939//14680 15940//14681 +f 15941//14682 15848//14589 15843//14584 15860//14601 +f 15924//14665 15941//14682 15860//14601 15859//14600 +f 15941//14682 15924//14665 15926//14667 15942//14683 +f 15848//14589 15941//14682 15942//14683 15849//14590 +f 15943//14684 15944//14685 15926//14667 15925//14666 +f 15932//14673 15943//14684 15925//14666 15922//14663 +f 15943//14684 15932//14673 15936//14677 15945//14686 +f 15944//14685 15943//14684 15945//14686 15946//14687 +f 15947//14688 15948//14689 15849//14590 15942//14683 +f 15944//14685 15947//14688 15942//14683 15926//14667 +f 15947//14688 15944//14685 15946//14687 15949//14690 +f 15948//14689 15947//14688 15949//14690 15950//14691 +f 15951//14692 15952//14693 15838//14579 15850//14591 +f 15948//14689 15951//14692 15850//14591 15849//14590 +f 15951//14692 15948//14689 15950//14691 15953//14694 +f 15952//14693 15951//14692 15953//14694 15954//14695 +f 15955//14696 15956//14697 15946//14687 15945//14686 +f 15957//14698 15955//14696 15945//14686 15936//14677 +f 15955//14696 15957//14698 15958//14699 15959//14700 +f 15956//14697 15955//14696 15959//14700 15960//14701 +f 15961//14702 15962//14703 15840//14581 15839//14580 +f 15952//14693 15961//14702 15839//14580 15838//14579 +f 15961//14702 15952//14693 15954//14695 15963//14704 +f 15962//14703 15961//14702 15963//14704 15964//14705 +f 15965//14706 15966//14707 15950//14691 15949//14690 +f 15956//14697 15965//14706 15949//14690 15946//14687 +f 15965//14706 15956//14697 15960//14701 15967//14708 +f 15966//14707 15965//14706 15967//14708 15968//14709 +f 15969//14710 15970//14711 15954//14695 15953//14694 +f 15966//14707 15969//14710 15953//14694 15950//14691 +f 15969//14710 15966//14707 15968//14709 15971//14712 +f 15970//14711 15969//14710 15971//14712 15972//14713 +f 15973//14714 15974//14715 15975//14716 15976//14717 +f 15962//14703 15973//14714 15976//14717 15840//14581 +f 15973//14714 15962//14703 15964//14705 15977//14718 +f 15974//14715 15973//14714 15977//14718 15978//14719 +f 15979//14720 15836//14577 15840//14581 15976//14717 +f 15980//14721 15979//14720 15976//14717 15975//14716 +f 15979//14720 15980//14721 15826//14567 15825//14566 +f 15836//14577 15979//14720 15825//14566 15824//14565 +f 15981//14722 15982//14723 15964//14705 15963//14704 +f 15970//14711 15981//14722 15963//14704 15954//14695 +f 15981//14722 15970//14711 15972//14713 15983//14724 +f 15982//14723 15981//14722 15983//14724 15984//14725 +f 15985//14726 15986//14727 15978//14719 15977//14718 +f 15982//14723 15985//14726 15977//14718 15964//14705 +f 15985//14726 15982//14723 15984//14725 15987//14728 +f 15986//14727 15985//14726 15987//14728 15988//14729 +f 15989//14730 15990//14731 15988//14729 15987//14728 +f 15991//14732 15989//14730 15987//14728 15984//14725 +f 15989//14730 15991//14732 15992//14733 15993//14734 +f 15990//14731 15989//14730 15993//14734 15994//14735 +f 15995//14736 15991//14732 15984//14725 15983//14724 +f 15996//14737 15995//14736 15983//14724 15972//14713 +f 15995//14736 15996//14737 15997//14738 15998//14739 +f 15991//14732 15995//14736 15998//14739 15992//14733 +f 15999//14740 16000//14741 15992//14733 15998//14739 +f 16001//14742 15999//14740 15998//14739 15997//14738 +f 15999//14740 16001//14742 16002//14743 16003//14744 +f 16000//14741 15999//14740 16003//14744 16004//14745 +f 16005//14746 16006//14747 16007//14748 16008//14749 +f 15996//14737 16005//14746 16008//14749 15997//14738 +f 16005//14746 15996//14737 15972//14713 15971//14712 +f 16006//14747 16005//14746 15971//14712 15968//14709 +f 16009//14750 16010//14751 16011//14752 16012//14753 +f 16001//14742 16009//14750 16012//14753 16002//14743 +f 16009//14750 16001//14742 15997//14738 16008//14749 +f 16010//14751 16009//14750 16008//14749 16007//14748 +f 16013//14754 16014//14755 16015//14756 16016//14757 +f 16006//14747 16013//14754 16016//14757 16007//14748 +f 16013//14754 16006//14747 15968//14709 15967//14708 +f 16014//14755 16013//14754 15967//14708 15960//14701 +f 16017//14758 16018//14759 16019//14760 16020//14761 +f 16010//14751 16017//14758 16020//14761 16011//14752 +f 16017//14758 16010//14751 16007//14748 16016//14757 +f 16018//14759 16017//14758 16016//14757 16015//14756 +f 16021//14762 16022//14763 16023//14764 16024//14765 +f 16014//14755 16021//14762 16024//14765 16015//14756 +f 16021//14762 16014//14755 15960//14701 15959//14700 +f 16022//14763 16021//14762 15959//14700 15958//14699 +f 16025//14766 16026//14767 16027//14768 16028//14769 +f 16018//14759 16025//14766 16028//14769 16019//14760 +f 16025//14766 16018//14759 16015//14756 16024//14765 +f 16026//14767 16025//14766 16024//14765 16023//14764 +f 16029//14770 16030//14771 16011//14752 16020//14761 +f 16031//14772 16029//14770 16020//14761 16019//14760 +f 16029//14770 16031//14772 16032//14773 16033//14774 +f 16030//14771 16029//14770 16033//14774 16034//14775 +f 16035//14776 16031//14772 16019//14760 16028//14769 +f 16036//14777 16035//14776 16028//14769 16027//14768 +f 16035//14776 16036//14777 16037//14778 16038//14779 +f 16031//14772 16035//14776 16038//14779 16032//14773 +f 16039//14780 16040//14781 16041//14782 16042//14783 +f 16026//14767 16039//14780 16042//14783 16027//14768 +f 16039//14780 16026//14767 16023//14764 16043//14784 +f 16040//14781 16039//14780 16043//14784 16044//14785 +f 16045//14786 16046//14787 16002//14743 16012//14753 +f 16030//14771 16045//14786 16012//14753 16011//14752 +f 16045//14786 16030//14771 16034//14775 16047//14788 +f 16046//14787 16045//14786 16047//14788 16048//14789 +f 16049//14790 16036//14777 16027//14768 16042//14783 +f 16050//14791 16049//14790 16042//14783 16041//14782 +f 16049//14790 16050//14791 16051//14792 16052//14793 +f 16036//14777 16049//14790 16052//14793 16037//14778 +f 16053//14794 16054//14795 16004//14745 16003//14744 +f 16046//14787 16053//14794 16003//14744 16002//14743 +f 16053//14794 16046//14787 16048//14789 16055//14796 +f 16054//14795 16053//14794 16055//14796 16056//14797 +f 16057//14798 16000//14741 16004//14745 16058//14799 +f 16059//14800 16057//14798 16058//14799 16060//14801 +f 16057//14798 16059//14800 15994//14735 15993//14734 +f 16000//14741 16057//14798 15993//14734 15992//14733 +f 16061//14802 16062//14803 16060//14801 16058//14799 +f 16054//14795 16061//14802 16058//14799 16004//14745 +f 16061//14802 16054//14795 16056//14797 16063//14804 +f 16062//14803 16061//14802 16063//14804 16064//14805 +f 16065//14806 16066//14807 16048//14789 16047//14788 +f 16067//14808 16065//14806 16047//14788 16034//14775 +f 16065//14806 16067//14808 16068//14809 16069//14810 +f 16066//14807 16065//14806 16069//14810 16070//14811 +f 16071//14812 16072//14813 16064//14805 16063//14804 +f 16073//14814 16071//14812 16063//14804 16056//14797 +f 16071//14812 16073//14814 16074//14815 16075//14816 +f 16072//14813 16071//14812 16075//14816 16076//14817 +f 16077//14818 16073//14814 16056//14797 16055//14796 +f 16066//14807 16077//14818 16055//14796 16048//14789 +f 16077//14818 16066//14807 16070//14811 16078//14819 +f 16073//14814 16077//14818 16078//14819 16074//14815 +f 16079//14820 16080//14821 16076//14817 16075//14816 +f 16081//14822 16079//14820 16075//14816 16074//14815 +f 16079//14820 16081//14822 15271//14012 15270//14011 +f 16080//14821 16079//14820 15270//14011 15269//14010 +f 16082//14823 16081//14822 16074//14815 16078//14819 +f 16083//14824 16082//14823 16078//14819 16070//14811 +f 16082//14823 16083//14824 16084//14825 16085//14826 +f 16081//14822 16082//14823 16085//14826 15271//14012 +f 16086//14827 16083//14824 16070//14811 16069//14810 +f 16087//14828 16086//14827 16069//14810 16068//14809 +f 16086//14827 16087//14828 16088//14829 16089//14830 +f 16083//14824 16086//14827 16089//14830 16084//14825 +f 16090//14831 15264//14005 15271//14012 16085//14826 +f 16091//14832 16090//14831 16085//14826 16084//14825 +f 16090//14831 16091//14832 16092//14833 16093//14834 +f 15264//14005 16090//14831 16093//14834 15265//14006 +f 16094//14835 16091//14832 16084//14825 16089//14830 +f 16095//14836 16094//14835 16089//14830 16088//14829 +f 16094//14835 16095//14836 16096//14837 16097//14838 +f 16091//14832 16094//14835 16097//14838 16092//14833 +f 16098//14839 16099//14840 16100//14841 16101//14842 +f 16102//14843 16098//14839 16101//14842 16103//14844 +f 16098//14839 16102//14843 15265//14006 16093//14834 +f 16099//14840 16098//14839 16093//14834 16092//14833 +f 16104//14845 16105//14846 15268//14009 15266//14007 +f 16102//14843 16104//14845 15266//14007 15265//14006 +f 16104//14845 16102//14843 16103//14844 16106//14847 +f 16105//14846 16104//14845 16106//14847 16107//14848 +f 16108//14849 16109//14850 16110//14851 16111//14852 +f 16099//14840 16108//14849 16111//14852 16100//14841 +f 16108//14849 16099//14840 16092//14833 16097//14838 +f 16109//14850 16108//14849 16097//14838 16096//14837 +f 16112//14853 16113//14854 16100//14841 16111//14852 +f 16114//14855 16112//14853 16111//14852 16110//14851 +f 16112//14853 16114//14855 16115//14856 16116//14857 +f 16113//14854 16112//14853 16116//14857 16117//14858 +f 16118//14859 16119//14860 16120//14861 16121//14862 +f 16114//14855 16118//14859 16121//14862 16115//14856 +f 16118//14859 16114//14855 16110//14851 16122//14863 +f 16119//14860 16118//14859 16122//14863 16123//14864 +f 16124//14865 16125//14866 16123//14864 16122//14863 +f 16109//14850 16124//14865 16122//14863 16110//14851 +f 16124//14865 16109//14850 16096//14837 16126//14867 +f 16125//14866 16124//14865 16126//14867 16127//14868 +f 16128//14869 16129//14870 16127//14868 16126//14867 +f 16095//14836 16128//14869 16126//14867 16096//14837 +f 16128//14869 16095//14836 16088//14829 16130//14871 +f 16129//14870 16128//14869 16130//14871 16131//14872 +f 16132//14873 16133//14874 16134//14875 16135//14876 +f 16119//14860 16132//14873 16135//14876 16120//14861 +f 16132//14873 16119//14860 16123//14864 16136//14877 +f 16133//14874 16132//14873 16136//14877 16137//14878 +f 16138//14879 16139//14880 16131//14872 16130//14871 +f 16087//14828 16138//14879 16130//14871 16088//14829 +f 16138//14879 16087//14828 16068//14809 16140//14881 +f 16139//14880 16138//14879 16140//14881 16141//14882 +f 16142//14883 16143//14884 16137//14878 16136//14877 +f 16125//14866 16142//14883 16136//14877 16123//14864 +f 16142//14883 16125//14866 16127//14868 16144//14885 +f 16143//14884 16142//14883 16144//14885 16145//14886 +f 16146//14887 16147//14888 16145//14886 16144//14885 +f 16129//14870 16146//14887 16144//14885 16127//14868 +f 16146//14887 16129//14870 16131//14872 16148//14889 +f 16147//14888 16146//14887 16148//14889 16149//14890 +f 16150//14891 16151//14892 16141//14882 16140//14881 +f 16067//14808 16150//14891 16140//14881 16068//14809 +f 16150//14891 16067//14808 16034//14775 16033//14774 +f 16151//14892 16150//14891 16033//14774 16032//14773 +f 16152//14893 16153//14894 16149//14890 16148//14889 +f 16139//14880 16152//14893 16148//14889 16131//14872 +f 16152//14893 16139//14880 16141//14882 16154//14895 +f 16153//14894 16152//14893 16154//14895 16155//14896 +f 16156//14897 16157//14898 16155//14896 16154//14895 +f 16151//14892 16156//14897 16154//14895 16141//14882 +f 16156//14897 16151//14892 16032//14773 16038//14779 +f 16157//14898 16156//14897 16038//14779 16037//14778 +f 16158//14899 16159//14900 16160//14901 16161//14902 +f 16147//14888 16158//14899 16161//14902 16145//14886 +f 16158//14899 16147//14888 16149//14890 16162//14903 +f 16159//14900 16158//14899 16162//14903 16163//14904 +f 16164//11470 16165//14905 16166//14906 16167//14907 +f 16157//14898 16164//11470 16167//14907 16155//14896 +f 16164//11470 16157//14898 16037//14778 16052//14793 +f 16165//14905 16164//11470 16052//14793 16051//14792 +f 16168//14908 16169//14909 16163//14904 16162//14903 +f 16153//14894 16168//14908 16162//14903 16149//14890 +f 16168//14908 16153//14894 16155//14896 16167//14907 +f 16169//14909 16168//14908 16167//14907 16166//14906 +f 16170//14910 16171//14911 16166//14906 16165//14905 +f 16172//14912 16170//14910 16165//14905 16051//14792 +f 16170//14910 16172//14912 16173//14913 16174//14914 +f 16171//14911 16170//14910 16174//14914 16175//14915 +f 16176//14916 16177//14917 16163//14904 16169//14909 +f 16171//14911 16176//14916 16169//14909 16166//14906 +f 16176//14916 16171//14911 16175//14915 16178//14918 +f 16177//14917 16176//14916 16178//14918 16179//14919 +f 16180//14920 16181//14921 16160//14901 16159//14900 +f 16177//14917 16180//14920 16159//14900 16163//14904 +f 16180//14920 16177//14917 16179//14919 16182//14922 +f 16181//14921 16180//14920 16182//14922 16183//14923 +f 16184//14924 16143//14884 16145//14886 16161//14902 +f 16185//14925 16184//14924 16161//14902 16160//14901 +f 16184//14924 16185//14925 16186//14926 16187//14927 +f 16143//14884 16184//14924 16187//14927 16137//14878 +f 16188//14928 16189//14929 16186//14926 16185//14925 +f 16181//14921 16188//14928 16185//14925 16160//14901 +f 16188//14928 16181//14921 16183//14923 16190//14930 +f 16189//14929 16188//14928 16190//14930 16191//14931 +f 16192//14932 16133//14874 16137//14878 16187//14927 +f 16193//14933 16192//14932 16187//14927 16186//14926 +f 16192//14932 16193//14933 16194//14934 16195//14935 +f 16133//14874 16192//14932 16195//14935 16134//14875 +f 16196//14936 16197//14937 16194//14934 16193//14933 +f 16189//14929 16196//14936 16193//14933 16186//14926 +f 16196//14936 16189//14929 16191//14931 16198//14938 +f 16197//14937 16196//14936 16198//14938 16199//14939 +f 16200//14940 16201//14941 16183//14923 16182//14922 +f 16202//14942 16200//14940 16182//14922 16179//14919 +f 16200//14940 16202//14942 16203//14943 16204//14944 +f 16201//14941 16200//14940 16204//14944 16205//14945 +f 16206//14946 16207//14947 16134//14875 16195//14935 +f 16208//14948 16206//14946 16195//14935 16194//14934 +f 16206//14946 16208//14948 16209//14949 16210//14950 +f 16207//14947 16206//14946 16210//14950 16211//14951 +f 16212//14952 16213//14953 16191//14931 16190//14930 +f 16201//14941 16212//14952 16190//14930 16183//14923 +f 16212//14952 16201//14941 16205//14945 16214//14954 +f 16213//14953 16212//14952 16214//14954 16215//14955 +f 16216//14956 16217//14957 16209//14949 16208//14948 +f 16197//14937 16216//14956 16208//14948 16194//14934 +f 16216//14956 16197//14937 16199//14939 16218//14958 +f 16217//14957 16216//14956 16218//14958 16219//14959 +f 16220//14960 16221//14961 16199//14939 16198//14938 +f 16213//14953 16220//14960 16198//14938 16191//14931 +f 16220//14960 16213//14953 16215//14955 16222//14962 +f 16221//14961 16220//14960 16222//14962 16223//14963 +f 16224//14964 16225//14965 16120//14861 16135//14876 +f 16207//14947 16224//14964 16135//14876 16134//14875 +f 16224//14964 16207//14947 16211//14951 16226//14966 +f 16225//14965 16224//14964 16226//14966 16227//14967 +f 16228//14968 16229//14969 16115//14856 16121//14862 +f 16225//14965 16228//14968 16121//14862 16120//14861 +f 16228//14968 16225//14965 16227//14967 16230//14970 +f 16229//14969 16228//14968 16230//14970 16231//14971 +f 16232//14972 16233//14973 16211//14951 16210//14950 +f 16234//14974 16232//14972 16210//14950 16209//14949 +f 16232//14972 16234//14974 16235//14975 16236//14976 +f 16233//14973 16232//14972 16236//14976 16237//14977 +f 16238//14978 16239//14979 16235//14975 16234//14974 +f 16217//14957 16238//14978 16234//14974 16209//14949 +f 16238//14978 16217//14957 16219//14959 16240//14980 +f 16239//14979 16238//14978 16240//14980 16241//14981 +f 16242//14982 16243//14983 16227//14967 16226//14966 +f 16233//14973 16242//14982 16226//14966 16211//14951 +f 16242//14982 16233//14973 16237//14977 16244//14984 +f 16243//14983 16242//14982 16244//14984 16245//14985 +f 16246//14986 16247//14987 16241//14981 16240//14980 +f 16248//14988 16246//14986 16240//14980 16219//14959 +f 16246//14986 16248//14988 16249//14989 16250//14990 +f 16247//14987 16246//14986 16250//14990 16251//14991 +f 16252//14992 16253//14993 16231//14971 16230//14970 +f 16243//14983 16252//14992 16230//14970 16227//14967 +f 16252//14992 16243//14983 16245//14985 16254//14994 +f 16253//14993 16252//14992 16254//14994 16255//14995 +f 16256//14996 16257//14997 16117//14858 16116//14857 +f 16229//14969 16256//14996 16116//14857 16115//14856 +f 16256//14996 16229//14969 16231//14971 16258//14998 +f 16257//14997 16256//14996 16258//14998 16259//14999 +f 16260//15000 16261//15001 16259//14999 16258//14998 +f 16253//14993 16260//15000 16258//14998 16231//14971 +f 16260//15000 16253//14993 16255//14995 16262//15002 +f 16261//15001 16260//15000 16262//15002 16263//15003 +f 16264//15004 15273//14014 15280//14021 16265//15005 +f 16261//15001 16264//15004 16265//15005 16259//14999 +f 16264//15004 16261//15001 16263//15003 16266//15006 +f 15273//14014 16264//15004 16266//15006 15274//14015 +f 16267//15007 16268//15008 16269//15009 16270//15010 +f 16257//14997 16267//15007 16270//15010 16117//14858 +f 16267//15007 16257//14997 16259//14999 16265//15005 +f 16268//15008 16267//15007 16265//15005 15280//14021 +f 16271//15011 16272//15012 16273//15013 16274//15014 +f 16268//15008 16271//15011 16274//15014 16269//15009 +f 16271//15011 16268//15008 15280//14021 15279//14020 +f 16272//15012 16271//15011 15279//14020 15278//14019 +f 16275//15015 16276//15016 16251//14991 16250//14990 +f 16277//15017 16275//15015 16250//14990 16249//14989 +f 16275//15015 16277//15017 16278//15018 16279//15019 +f 16276//15016 16275//15015 16279//15019 16280//15020 +f 16281//15021 16221//14961 16223//14963 16282//15022 +f 16248//14988 16281//15021 16282//15022 16249//14989 +f 16281//15021 16248//14988 16219//14959 16218//14958 +f 16221//14961 16281//15021 16218//14958 16199//14939 +f 16283//15023 16277//15017 16249//14989 16282//15022 +f 16284//15024 16283//15023 16282//15022 16223//14963 +f 16283//15023 16284//15024 16285//15025 16286//15026 +f 16277//15017 16283//15023 16286//15026 16278//15018 +f 16287//15027 16284//15024 16223//14963 16222//14962 +f 16288//15028 16287//15027 16222//14962 16215//14955 +f 16287//15027 16288//15028 16289//15029 16290//15030 +f 16284//15024 16287//15027 16290//15030 16285//15025 +f 16291//15031 16292//15032 16280//15020 16279//15019 +f 16293//15033 16291//15031 16279//15019 16278//15018 +f 16291//15031 16293//15033 16294//15034 16295//15035 +f 16292//15032 16291//15031 16295//15035 16296//15036 +f 16297//15037 16293//15033 16278//15018 16286//15026 +f 16298//15038 16297//15037 16286//15026 16285//15025 +f 16297//15037 16298//15038 16299//15039 16300//15040 +f 16293//15033 16297//15037 16300//15040 16294//15034 +f 16301//15041 16302//15042 16296//15036 16295//15035 +f 16303//15043 16301//15041 16295//15035 16294//15034 +f 16301//15041 16303//15043 16304//15044 16305//15045 +f 16302//15042 16301//15041 16305//15045 16306//15046 +f 16307//15047 16303//15043 16294//15034 16300//15040 +f 16308//15048 16307//15047 16300//15040 16299//15039 +f 16307//15047 16308//15048 16309//15049 16310//15050 +f 16303//15043 16307//15047 16310//15050 16304//15044 +f 16311//15051 16312//15052 16313//15053 16314//15054 +f 16298//15038 16311//15051 16314//15054 16299//15039 +f 16311//15051 16298//15038 16285//15025 16290//15030 +f 16312//15052 16311//15051 16290//15030 16289//15029 +f 16315//15055 16316//15056 16317//15057 16318//15058 +f 16308//15048 16315//15055 16318//15058 16309//15049 +f 16315//15055 16308//15048 16299//15039 16314//15054 +f 16316//15056 16315//15055 16314//15054 16313//15053 +f 16319//15059 16320//15060 16306//15046 16305//15045 +f 16321//15061 16319//15059 16305//15045 16304//15044 +f 16319//15059 16321//15061 16322//15062 16323//15063 +f 16320//15060 16319//15059 16323//15063 16324//15064 +f 16325//15065 16321//15061 16304//15044 16310//15050 +f 16326//15066 16325//15065 16310//15050 16309//15049 +f 16325//15065 16326//15066 16327//15067 16328//15068 +f 16321//15061 16325//15065 16328//15068 16322//15062 +f 16329//15069 16330//15070 16324//15064 16323//15063 +f 16331//15071 16329//15069 16323//15063 16322//15062 +f 16329//15069 16331//15071 16332//15072 16333//15073 +f 16330//15070 16329//15069 16333//15073 16334//15074 +f 16335//15075 16331//15071 16322//15062 16328//15068 +f 16336//15076 16335//15075 16328//15068 16327//15067 +f 16335//15075 16336//15076 16337//15077 16338//15078 +f 16331//15071 16335//15075 16338//15078 16332//15072 +f 16339//15079 16340//15080 16341//15081 16342//15082 +f 16326//15066 16339//15079 16342//15082 16327//15067 +f 16339//15079 16326//15066 16309//15049 16318//15058 +f 16340//15080 16339//15079 16318//15058 16317//15057 +f 16343//15083 16344//15084 16345//15085 16346//15086 +f 16336//15076 16343//15083 16346//15086 16337//15077 +f 16343//15083 16336//15076 16327//15067 16342//15082 +f 16344//15084 16343//15083 16342//15082 16341//15081 +f 16347//15087 16348//15088 16334//15074 16333//15073 +f 16349//15089 16347//15087 16333//15073 16332//15072 +f 16347//15087 16349//15089 16350//15090 16351//15091 +f 16348//15088 16347//15087 16351//15091 16352//15092 +f 16353//15093 16349//15089 16332//15072 16338//15078 +f 16354//15094 16353//15093 16338//15078 16337//15077 +f 16353//15093 16354//15094 16355//15095 16356//15096 +f 16349//15089 16353//15093 16356//15096 16350//15090 +f 16357//15097 16358//15098 16352//15092 16351//15091 +f 16359//15099 16357//15097 16351//15091 16350//15090 +f 16357//15097 16359//15099 16360//15100 16361//15101 +f 16358//15098 16357//15097 16361//15101 16362//15102 +f 16363//15103 16364//15104 16365//15105 16366//15106 +f 16361//15101 16363//15103 16366//15106 16362//15102 +f 16363//15103 16361//15101 16360//15100 16367//15107 +f 16364//15104 16363//15103 16367//15107 16368//15108 +f 16369//15109 16370//15110 16371//15111 16372//15112 +f 16359//15099 16369//15109 16372//15112 16360//15100 +f 16369//15109 16359//15099 16350//15090 16356//15096 +f 16370//15110 16369//15109 16356//15096 16355//15095 +f 16373//15113 16374//15114 16368//15108 16367//15107 +f 16372//15112 16373//15113 16367//15107 16360//15100 +f 16373//15113 16372//15112 16371//15111 16375//15115 +f 16374//15114 16373//15113 16375//15115 16376//15116 +f 16377//15117 16378//15118 16379//15119 16380//15120 +f 16364//15104 16377//15117 16380//15120 16365//15105 +f 16377//15117 16364//15104 16368//15108 16381//15121 +f 16378//15118 16377//15117 16381//15121 16382//15122 +f 16383//15123 16384//15124 16385//15125 16386//15126 +f 16370//15110 16383//15123 16386//15126 16371//15111 +f 16383//15123 16370//15110 16355//15095 16387//15127 +f 16384//15124 16383//15123 16387//15127 16388//15128 +f 16389//15129 16390//15130 16391//15131 16392//15132 +f 16378//15118 16389//15129 16392//15132 16379//15119 +f 16389//15129 16378//15118 16382//15122 16393//15133 +f 16390//15130 16389//15129 16393//15133 16394//15134 +f 16395//15135 16396//15136 16382//15122 16381//15121 +f 16374//15114 16395//15135 16381//15121 16368//15108 +f 16395//15135 16374//15114 16376//15116 16397//15137 +f 16396//15136 16395//15135 16397//15137 16398//15138 +f 16399//15139 16400//15140 16376//15116 16375//15115 +f 16386//15126 16399//15139 16375//15115 16371//15111 +f 16399//15139 16386//15126 16385//15125 16401//15141 +f 16400//15140 16399//15139 16401//15141 16402//15142 +f 16403//15143 16404//15144 16405//15145 16406//15146 +f 16390//15130 16403//15143 16406//15146 16391//15131 +f 16403//15143 16390//15130 16394//15134 16407//15147 +f 16404//15144 16403//15143 16407//15147 16408//15148 +f 16409//15149 16410//15150 16394//15134 16393//15133 +f 16396//15136 16409//15149 16393//15133 16382//15122 +f 16409//15149 16396//15136 16398//15138 16411//15151 +f 16410//15150 16409//15149 16411//15151 16412//15152 +f 16413//15153 15249//13990 15250//13991 16414//15154 +f 16404//15144 16413//15153 16414//15154 16405//15145 +f 16413//15153 16404//15144 16408//15148 16415//15155 +f 15249//13990 16413//15153 16415//15155 15251//13992 +f 16416//15156 16417//15157 16408//15148 16407//15147 +f 16410//15150 16416//15156 16407//15147 16394//15134 +f 16416//15156 16410//15150 16412//15152 16418//15158 +f 16417//15157 16416//15156 16418//15158 16419//15159 +f 16420//15160 16421//15161 15251//13992 16415//15155 +f 16417//15157 16420//15160 16415//15155 16408//15148 +f 16420//15160 16417//15157 16419//15159 16422//15162 +f 16421//15161 16420//15160 16422//15162 16423//15163 +f 16424//15164 16425//15165 15253//13994 15252//13993 +f 16421//15161 16424//15164 15252//13993 15251//13992 +f 16424//15164 16421//15161 16423//15163 16426//15166 +f 16425//15165 16424//15164 16426//15166 16427//15167 +f 16428//15168 16429//15169 16419//15159 16418//15158 +f 16430//15170 16428//15168 16418//15158 16412//15152 +f 16428//15168 16430//15170 16431//15171 16432//15172 +f 16429//15169 16428//15168 16432//15172 16433//15173 +f 16434//15174 16435//15175 16436//15176 16437//15177 +f 16430//15170 16434//15174 16437//15177 16431//15171 +f 16434//15174 16430//15170 16412//15152 16411//15151 +f 16435//15175 16434//15174 16411//15151 16398//15138 +f 16438//15178 16439//15179 16433//15173 16432//15172 +f 16440//15180 16438//15178 16432//15172 16431//15171 +f 16438//15178 16440//15180 16441//15181 16442//15182 +f 16439//15179 16438//15178 16442//15182 16443//15183 +f 16444//15184 16440//15180 16431//15171 16437//15177 +f 16445//15185 16444//15184 16437//15177 16436//15176 +f 16444//15184 16445//15185 16446//15186 16447//15187 +f 16440//15180 16444//15184 16447//15187 16441//15181 +f 16448//15188 16449//15189 16450//15190 16451//15191 +f 16439//15179 16448//15188 16451//15191 16433//15173 +f 16448//15188 16439//15179 16443//15183 16452//15192 +f 16449//15189 16448//15188 16452//15192 16453//15193 +f 16454//15194 16455//15195 16453//15193 16452//15192 +f 16456//15196 16454//15194 16452//15192 16443//15183 +f 16454//15194 16456//15196 16457//15197 16458//15198 +f 16455//15195 16454//15194 16458//15198 16459//15199 +f 16460//15200 16456//15196 16443//15183 16442//15182 +f 16461//15201 16460//15200 16442//15182 16441//15181 +f 16460//15200 16461//15201 16462//15202 16463//15203 +f 16456//15196 16460//15200 16463//15203 16457//15197 +f 16464//15204 16465//15205 16466//15206 16467//15207 +f 16468//15208 16464//15204 16467//15207 16469//15209 +f 16464//15204 16468//15208 16459//15199 16458//15198 +f 16465//15205 16464//15204 16458//15198 16457//15197 +f 16470//15210 16471//15211 16472//15212 16473//15213 +f 16461//15201 16470//15210 16473//15213 16462//15202 +f 16470//15210 16461//15201 16441//15181 16447//15187 +f 16471//15211 16470//15210 16447//15187 16446//15186 +f 16474//15214 16465//15205 16457//15197 16463//15203 +f 16475//15215 16474//15214 16463//15203 16462//15202 +f 16474//15214 16475//15215 16476//15216 16477//15217 +f 16465//15205 16474//15214 16477//15217 16466//15206 +f 16478//15218 16475//15215 16462//15202 16473//15213 +f 16479//15219 16478//15218 16473//15213 16472//15212 +f 16478//15218 16479//15219 16480//15220 16481//15221 +f 16475//15215 16478//15218 16481//15221 16476//15216 +f 16482//15222 16483//15223 16484//15224 16485//15225 +f 16471//15211 16482//15222 16485//15225 16472//15212 +f 16482//15222 16471//15211 16446//15186 16486//15226 +f 16483//15223 16482//15222 16486//15226 16487//15227 +f 16488//15228 16489//15229 16490//15230 16491//15231 +f 16479//15219 16488//15228 16491//15231 16480//15220 +f 16488//15228 16479//15219 16472//15212 16485//15225 +f 16489//15229 16488//15228 16485//15225 16484//15224 +f 16492//15232 16493//15233 16476//15216 16481//15221 +f 16494//15234 16492//15232 16481//15221 16480//15220 +f 16492//15232 16494//15234 16495//15235 16496//15236 +f 16493//15233 16492//15232 16496//15236 16497//15237 +f 16498//15238 16499//15239 16487//15227 16486//15226 +f 16445//15185 16498//15238 16486//15226 16446//15186 +f 16498//15238 16445//15185 16436//15176 16500//15240 +f 16499//15239 16498//15238 16500//15240 16402//15142 +f 16501//15241 16502//15242 16466//15206 16477//15217 +f 16493//15233 16501//15241 16477//15217 16476//15216 +f 16501//15241 16493//15233 16497//15237 16503//15243 +f 16502//15242 16501//15241 16503//15243 16504//15244 +f 16505//15245 16506//15246 16469//15209 16467//15207 +f 16502//15242 16505//15245 16467//15207 16466//15206 +f 16505//15245 16502//15242 16504//15244 16507//15247 +f 16506//15246 16505//15245 16507//15247 16508//15248 +f 16509//15249 16510//15250 16511//15251 16512//15252 +f 16494//15234 16509//15249 16512//15252 16495//15235 +f 16509//15249 16494//15234 16480//15220 16491//15231 +f 16510//15250 16509//15249 16491//15231 16490//15230 +f 16513//15253 16514//15254 16497//15237 16496//15236 +f 16515//15255 16513//15253 16496//15236 16495//15235 +f 16513//15253 16515//15255 16516//15256 16517//15257 +f 16514//15254 16513//15253 16517//15257 16518//15258 +f 16519//15259 16515//15255 16495//15235 16512//15252 +f 16520//15260 16519//15259 16512//15252 16511//15251 +f 16519//15259 16520//15260 16521//15261 16522//15262 +f 16515//15255 16519//15259 16522//15262 16516//15256 +f 16523//15263 16524//15264 16504//15244 16503//15243 +f 16514//15254 16523//15263 16503//15243 16497//15237 +f 16523//15263 16514//15254 16518//15258 16525//15265 +f 16524//15264 16523//15263 16525//15265 16526//15266 +f 16527//15267 16528//15268 16529//15269 16530//15270 +f 16506//15246 16527//15267 16530//15270 16469//15209 +f 16527//15267 16506//15246 16508//15248 16531//15271 +f 16528//15268 16527//15267 16531//15271 16532//15272 +f 16533//15273 16468//15208 16469//15209 16530//15270 +f 16534//15274 16533//15273 16530//15270 16529//15269 +f 16533//15273 16534//15274 16535//15275 16536//15276 +f 16468//15208 16533//15273 16536//15276 16459//15199 +f 16537//15277 16538//15278 16508//15248 16507//15247 +f 16524//15264 16537//15277 16507//15247 16504//15244 +f 16537//15277 16524//15264 16526//15266 16539//15279 +f 16538//15278 16537//15277 16539//15279 16540//15280 +f 16541//15281 16542//15282 16540//15280 16539//15279 +f 16543//15283 16541//15281 16539//15279 16526//15266 +f 16541//15281 16543//15283 16544//15284 16545//15285 +f 16542//15282 16541//15281 16545//15285 16546//15286 +f 16547//15287 16543//15283 16526//15266 16525//15265 +f 16548//15288 16547//15287 16525//15265 16518//15258 +f 16547//15287 16548//15288 16549//15289 16550//15290 +f 16543//15283 16547//15287 16550//15290 16544//15284 +f 16551//15291 16552//15292 16553//15293 16554//15294 +f 16548//15288 16551//15291 16554//15294 16549//15289 +f 16551//15291 16548//15288 16518//15258 16517//15257 +f 16552//15292 16551//15291 16517//15257 16516//15256 +f 16555//15295 16556//15296 16544//15284 16550//15290 +f 16557//15297 16555//15295 16550//15290 16549//15289 +f 16555//15295 16557//15297 16558//15298 16559//15299 +f 16556//15296 16555//15295 16559//15299 16560//15300 +f 16561//15301 16562//15302 16563//15303 16564//15304 +f 16552//15292 16561//15301 16564//15304 16553//15293 +f 16561//15301 16552//15292 16516//15256 16522//15262 +f 16562//15302 16561//15301 16522//15262 16521//15261 +f 16565//15305 16557//15297 16549//15289 16554//15294 +f 16566//15306 16565//15305 16554//15294 16553//15293 +f 16565//15305 16566//15306 16567//15307 16568//15308 +f 16557//15297 16565//15305 16568//15308 16558//15298 +f 16569//15309 16566//15306 16553//15293 16564//15304 +f 16570//15310 16569//15309 16564//15304 16563//15303 +f 16569//15309 16570//15310 16571//15311 16572//15312 +f 16566//15306 16569//15309 16572//15312 16567//15307 +f 16573//15313 16574//15314 16575//15315 16576//15316 +f 16562//15302 16573//15313 16576//15316 16563//15303 +f 16573//15313 16562//15302 16521//15261 16577//15317 +f 16574//15314 16573//15313 16577//15317 16578//15318 +f 16579//15319 16580//15320 16581//15321 16582//15322 +f 16570//15310 16579//15319 16582//15322 16571//15311 +f 16579//15319 16570//15310 16563//15303 16576//15316 +f 16580//15320 16579//15319 16576//15316 16575//15315 +f 16583//15323 16584//15324 16567//15307 16572//15312 +f 16585//15325 16583//15323 16572//15312 16571//15311 +f 16583//15323 16585//15325 16586//15326 16587//15327 +f 16584//15324 16583//15323 16587//15327 16588//15328 +f 16589//15329 16590//15330 16578//15318 16577//15317 +f 16520//15260 16589//15329 16577//15317 16521//15261 +f 16589//15329 16520//15260 16511//15251 16591//15331 +f 16590//15330 16589//15329 16591//15331 16592//15332 +f 16593//15333 16594//15334 16558//15298 16568//15308 +f 16584//15324 16593//15333 16568//15308 16567//15307 +f 16593//15333 16584//15324 16588//15328 16595//15335 +f 16594//15334 16593//15333 16595//15335 16596//15336 +f 16597//15337 16598//15338 16592//15332 16591//15331 +f 16510//15250 16597//15337 16591//15331 16511//15251 +f 16597//15337 16510//15250 16490//15230 16599//15339 +f 16598//15338 16597//15337 16599//15339 16600//15340 +f 16601//15341 16602//15342 16575//15315 16574//15314 +f 16603//15343 16601//15341 16574//15314 16578//15318 +f 16601//15341 16603//15343 16604//15344 16605//15345 +f 16602//15342 16601//15341 16605//15345 16606//15346 +f 16607//15347 16608//15348 16600//15340 16599//15339 +f 16489//15229 16607//15347 16599//15339 16490//15230 +f 16607//15347 16489//15229 16484//15224 16609//15349 +f 16608//15348 16607//15347 16609//15349 16610//15350 +f 16611//15351 16603//15343 16578//15318 16590//15330 +f 16612//15352 16611//15351 16590//15330 16592//15332 +f 16611//15351 16612//15352 16613//15353 16614//15354 +f 16603//15343 16611//15351 16614//15354 16604//15344 +f 16615//15355 16612//15352 16592//15332 16598//15338 +f 16616//15356 16615//15355 16598//15338 16600//15340 +f 16615//15355 16616//15356 16617//15357 16618//15358 +f 16612//15352 16615//15355 16618//15358 16613//15353 +f 16619//15359 16620//15360 16610//15350 16609//15349 +f 16483//15223 16619//15359 16609//15349 16484//15224 +f 16619//15359 16483//15223 16487//15227 16621//15361 +f 16620//15360 16619//15359 16621//15361 16622//15362 +f 16623//15363 16624//15364 16625//15365 16626//15366 +f 16616//15356 16623//15363 16626//15366 16617//15357 +f 16623//15363 16616//15356 16600//15340 16608//15348 +f 16624//15364 16623//15363 16608//15348 16610//15350 +f 16627//15367 16628//15368 16613//15353 16618//15358 +f 16629//15369 16627//15367 16618//15358 16617//15357 +f 16627//15367 16629//15369 16630//15370 16631//15371 +f 16628//15368 16627//15367 16631//15371 16632//15372 +f 16633//15373 16629//15369 16617//15357 16626//15366 +f 16634//15374 16633//15373 16626//15366 16625//15365 +f 16633//15373 16634//15374 16635//15375 16636//15376 +f 16629//15369 16633//15373 16636//15376 16630//15370 +f 16637//15377 16638//15378 16639//15379 16640//15380 +f 16624//15364 16637//15377 16640//15380 16625//15365 +f 16637//15377 16624//15364 16610//15350 16620//15360 +f 16638//15378 16637//15377 16620//15360 16622//15362 +f 16641//15381 16642//15382 16604//15344 16614//15354 +f 16628//15368 16641//15381 16614//15354 16613//15353 +f 16641//15381 16628//15368 16632//15372 16643//15383 +f 16642//15382 16641//15381 16643//15383 16644//15384 +f 16645//15385 16634//15374 16625//15365 16640//15380 +f 16646//15386 16645//15385 16640//15380 16639//15379 +f 16645//15385 16646//15386 16647//15387 16648//15388 +f 16634//15374 16645//15385 16648//15388 16635//15375 +f 16649//15389 16650//15390 16345//15085 16651//15391 +f 16646//15386 16649//15389 16651//15391 16647//15387 +f 16649//15389 16646//15386 16639//15379 16652//15392 +f 16650//15390 16649//15389 16652//15392 16388//15128 +f 16653//15393 16654//15394 16622//15362 16621//15361 +f 16499//15239 16653//15393 16621//15361 16487//15227 +f 16653//15393 16499//15239 16402//15142 16401//15141 +f 16654//15394 16653//15393 16401//15141 16385//15125 +f 16655//15395 16400//15140 16402//15142 16500//15240 +f 16435//15175 16655//15395 16500//15240 16436//15176 +f 16655//15395 16435//15175 16398//15138 16397//15137 +f 16400//15140 16655//15395 16397//15137 16376//15116 +f 16656//15396 16638//15378 16622//15362 16654//15394 +f 16384//15124 16656//15396 16654//15394 16385//15125 +f 16656//15396 16384//15124 16388//15128 16652//15392 +f 16638//15378 16656//15396 16652//15392 16639//15379 +f 16657//15397 16650//15390 16388//15128 16387//15127 +f 16354//15094 16657//15397 16387//15127 16355//15095 +f 16657//15397 16354//15094 16337//15077 16346//15086 +f 16650//15390 16657//15397 16346//15086 16345//15085 +f 16658//15398 16659//15399 16647//15387 16651//15391 +f 16344//15084 16658//15398 16651//15391 16345//15085 +f 16658//15398 16344//15084 16341//15081 16660//15400 +f 16659//15399 16658//15398 16660//15400 16661//15401 +f 16662//15402 16663//15403 16635//15375 16648//15388 +f 16659//15399 16662//15402 16648//15388 16647//15387 +f 16662//15402 16659//15399 16661//15401 16664//15404 +f 16663//15403 16662//15402 16664//15404 16665//15405 +f 16666//15406 16667//15407 16661//15401 16660//15400 +f 16340//15080 16666//15406 16660//15400 16341//15081 +f 16666//15406 16340//15080 16317//15057 16668//15408 +f 16667//15407 16666//15406 16668//15408 16669//15409 +f 16670//15410 16671//15411 16630//15370 16636//15376 +f 16663//15403 16670//15410 16636//15376 16635//15375 +f 16670//15410 16663//15403 16665//15405 16672//15412 +f 16671//15411 16670//15410 16672//15412 16673//15413 +f 16674//15414 16675//15415 16665//15405 16664//15404 +f 16667//15407 16674//15414 16664//15404 16661//15401 +f 16674//15414 16667//15407 16669//15409 16676//15416 +f 16675//15415 16674//15414 16676//15416 16677//15417 +f 16678//15418 16679//15419 16669//15409 16668//15408 +f 16316//15056 16678//15418 16668//15408 16317//15057 +f 16678//15418 16316//15056 16313//15053 16680//15420 +f 16679//15419 16678//15418 16680//15420 16681//15421 +f 16682//15422 16683//15423 16632//15372 16631//15371 +f 16671//15411 16682//15422 16631//15371 16630//15370 +f 16682//15422 16671//15411 16673//15413 16684//15424 +f 16683//15423 16682//15422 16684//15424 16685//15425 +f 16686//15426 16687//15427 16673//15413 16672//15412 +f 16675//15415 16686//15426 16672//15412 16665//15405 +f 16686//15426 16675//15415 16677//15417 16688//15428 +f 16687//15427 16686//15426 16688//15428 16689//15429 +f 16690//15430 16691//15431 16677//15417 16676//15416 +f 16679//15419 16690//15430 16676//15416 16669//15409 +f 16690//15430 16679//15419 16681//15421 16692//15432 +f 16691//15431 16690//15430 16692//15432 16693//15433 +f 16694//15434 16695//15435 16681//15421 16680//15420 +f 16312//15052 16694//15434 16680//15420 16313//15053 +f 16694//15434 16312//15052 16289//15029 16696//15436 +f 16695//15435 16694//15434 16696//15436 16697//15437 +f 16698//15438 16699//15439 16697//15437 16696//15436 +f 16288//15028 16698//15438 16696//15436 16289//15029 +f 16698//15438 16288//15028 16215//14955 16214//14954 +f 16699//15439 16698//15438 16214//14954 16205//14945 +f 16700//15440 16701//15441 16693//15433 16692//15432 +f 16695//15435 16700//15440 16692//15432 16681//15421 +f 16700//15440 16695//15435 16697//15437 16702//15442 +f 16701//15441 16700//15440 16702//15442 16703//15443 +f 16704//15444 16705//15445 16689//15429 16688//15428 +f 16691//15431 16704//15444 16688//15428 16677//15417 +f 16704//15444 16691//15431 16693//15433 16706//15446 +f 16705//15445 16704//15444 16706//15446 16707//15447 +f 16708//15448 16709//15449 16703//15443 16702//15442 +f 16699//15439 16708//15448 16702//15442 16697//15437 +f 16708//15448 16699//15439 16205//14945 16204//14944 +f 16709//15449 16708//15448 16204//14944 16203//14943 +f 16710//15450 16711//15451 16707//15447 16706//15446 +f 16701//15441 16710//15450 16706//15446 16693//15433 +f 16710//15450 16701//15441 16703//15443 16712//15452 +f 16711//15451 16710//15450 16712//15452 16713//15453 +f 16714//15454 16715//15455 16713//15453 16712//15452 +f 16709//15449 16714//15454 16712//15452 16703//15443 +f 16714//15454 16709//15449 16203//14943 16716//15456 +f 16715//15455 16714//15454 16716//15456 16717//15457 +f 16718//15458 16719//15459 16717//15457 16716//15456 +f 16202//14942 16718//15458 16716//15456 16203//14943 +f 16718//15458 16202//14942 16179//14919 16178//14918 +f 16719//15459 16718//15458 16178//14918 16175//14915 +f 16720//15460 16721//15461 16722//15462 16723//15463 +f 16711//15451 16720//15460 16723//15463 16707//15447 +f 16720//15460 16711//15451 16713//15453 16724//15464 +f 16721//15461 16720//15460 16724//15464 16725//15465 +f 16726//15466 16727//15467 16728//15468 16729//15469 +f 16719//15459 16726//15466 16729//15469 16717//15457 +f 16726//15466 16719//15459 16175//14915 16174//14914 +f 16727//15467 16726//15466 16174//14914 16173//14913 +f 16730//15470 16731//15471 16725//15465 16724//15464 +f 16715//15455 16730//15470 16724//15464 16713//15453 +f 16730//15470 16715//15455 16717//15457 16729//15469 +f 16731//15471 16730//15470 16729//15469 16728//15468 +f 16732//15472 16733//15473 16734//15474 16735//15475 +f 16727//15467 16732//15472 16735//15475 16728//15468 +f 16732//15472 16727//15467 16173//14913 16736//15476 +f 16733//15473 16732//15472 16736//15476 16737//15477 +f 16738//15478 16739//15479 16740//15480 16741//15481 +f 16731//15471 16738//15478 16741//15481 16725//15465 +f 16738//15478 16731//15471 16728//15468 16735//15475 +f 16739//15479 16738//15478 16735//15475 16734//15474 +f 16742//15482 16743//15483 16744//15484 16745//15485 +f 16721//15461 16742//15482 16745//15485 16722//15462 +f 16742//15482 16721//15461 16725//15465 16741//15481 +f 16743//15483 16742//15482 16741//15481 16740//15480 +f 16746//15486 16705//15445 16707//15447 16723//15463 +f 16747//15487 16746//15486 16723//15463 16722//15462 +f 16746//15486 16747//15487 16748//15488 16749//15489 +f 16705//15445 16746//15486 16749//15489 16689//15429 +f 16750//15490 16747//15487 16722//15462 16745//15485 +f 16751//15491 16750//15490 16745//15485 16744//15484 +f 16750//15490 16751//15491 16752//15492 16753//15493 +f 16747//15487 16750//15490 16753//15493 16748//15488 +f 16754//15494 16687//15427 16689//15429 16749//15489 +f 16755//15495 16754//15494 16749//15489 16748//15488 +f 16754//15494 16755//15495 16685//15425 16684//15424 +f 16687//15427 16754//15494 16684//15424 16673//15413 +f 16756//15496 16757//15497 16758//15498 16759//15499 +f 16755//15495 16756//15496 16759//15499 16685//15425 +f 16756//15496 16755//15495 16748//15488 16753//15493 +f 16757//15497 16756//15496 16753//15493 16752//15492 +f 16760//15500 16761//15501 16644//15384 16643//15383 +f 16683//15423 16760//15500 16643//15383 16632//15372 +f 16760//15500 16683//15423 16685//15425 16759//15499 +f 16761//15501 16760//15500 16759//15499 16758//15498 +f 16762//15502 16763//15503 16764//15504 16765//15505 +f 16757//15497 16762//15502 16765//15505 16758//15498 +f 16762//15502 16757//15497 16752//15492 16766//15506 +f 16763//15503 16762//15502 16766//15506 16767//15507 +f 16768//15508 16769//15509 16606//15346 16605//15345 +f 16642//15382 16768//15508 16605//15345 16604//15344 +f 16768//15508 16642//15382 16644//15384 16770//15510 +f 16769//15509 16768//15508 16770//15510 16771//15511 +f 16772//15512 16773//15513 16771//15511 16770//15510 +f 16761//15501 16772//15512 16770//15510 16644//15384 +f 16772//15512 16761//15501 16758//15498 16765//15505 +f 16773//15513 16772//15512 16765//15505 16764//15504 +f 16774//15514 16775//15515 16581//15321 16580//15320 +f 16602//15342 16774//15514 16580//15320 16575//15315 +f 16774//15514 16602//15342 16606//15346 16776//15516 +f 16775//15515 16774//15514 16776//15516 16777//15517 +f 16778//15518 16779//15519 16777//15517 16776//15516 +f 16769//15509 16778//15518 16776//15516 16606//15346 +f 16778//15518 16769//15509 16771//15511 16780//15520 +f 16779//15519 16778//15518 16780//15520 16781//15521 +f 16782//15522 16783//15523 16781//15521 16780//15520 +f 16773//15513 16782//15522 16780//15520 16771//15511 +f 16782//15522 16773//15513 16764//15504 16784//15524 +f 16783//15523 16782//15522 16784//15524 16785//15525 +f 16786//15526 16787//15527 16767//15507 16766//15506 +f 16751//15491 16786//15526 16766//15506 16752//15492 +f 16786//15526 16751//15491 16744//15484 16788//15528 +f 16787//15527 16786//15526 16788//15528 16789//15529 +f 16790//15530 16791//15531 16785//15525 16784//15524 +f 16763//15503 16790//15530 16784//15524 16764//15504 +f 16790//15530 16763//15503 16767//15507 16792//15532 +f 16791//15531 16790//15530 16792//15532 16793//15533 +f 16794//15534 16795//15535 16789//15529 16788//15528 +f 16743//15483 16794//15534 16788//15528 16744//15484 +f 16794//15534 16743//15483 16740//15480 16796//15536 +f 16795//15535 16794//15534 16796//15536 16797//15537 +f 16798//15538 16799//15539 16793//15533 16792//15532 +f 16787//15527 16798//15538 16792//15532 16767//15507 +f 16798//15538 16787//15527 16789//15529 16800//15540 +f 16799//15539 16798//15538 16800//15540 16801//15541 +f 16802//15542 16803//15543 16797//15537 16796//15536 +f 16739//15479 16802//15542 16796//15536 16740//15480 +f 16802//15542 16739//15479 16734//15474 16804//15544 +f 16803//15543 16802//15542 16804//15544 16805//15545 +f 16806//15546 16807//15547 16801//15541 16800//15540 +f 16795//15535 16806//15546 16800//15540 16789//15529 +f 16806//15546 16795//15535 16797//15537 16808//15548 +f 16807//15547 16806//15546 16808//15548 16809//15549 +f 16810//15550 16811//15551 16812//15552 16813//15553 +f 16791//15531 16810//15550 16813//15553 16785//15525 +f 16810//15550 16791//15531 16793//15533 16814//15554 +f 16811//15551 16810//15550 16814//15554 16815//15555 +f 16816//15556 16817//15557 16815//15555 16814//15554 +f 16799//15539 16816//15556 16814//15554 16793//15533 +f 16816//15556 16799//15539 16801//15541 16818//15558 +f 16817//15557 16816//15556 16818//15558 16819//15559 +f 16820//15560 16783//15523 16785//15525 16813//15553 +f 16821//15561 16820//15560 16813//15553 16812//15552 +f 16820//15560 16821//15561 16822//15562 16823//15563 +f 16783//15523 16820//15560 16823//15563 16781//15521 +f 16824//15564 16825//15565 16809//15549 16808//15548 +f 16803//15543 16824//15564 16808//15548 16797//15537 +f 16824//15564 16803//15543 16805//15545 16826//15566 +f 16825//15565 16824//15564 16826//15566 16827//15567 +f 16828//15568 16779//15519 16781//15521 16823//15563 +f 16829//15569 16828//15568 16823//15563 16822//15562 +f 16828//15568 16829//15569 16830//15570 16831//15571 +f 16779//15519 16828//15568 16831//15571 16777//15517 +f 16832//15572 16833//15573 16805//15545 16804//15544 +f 16733//15473 16832//15572 16804//15544 16734//15474 +f 16832//15572 16733//15473 16737//15477 16834//15574 +f 16833//15573 16832//15572 16834//15574 16835//15575 +f 16836//15576 16837//15577 16737//15477 16736//15476 +f 16172//14912 16836//15576 16736//15476 16173//14913 +f 16836//15576 16172//14912 16051//14792 16050//14791 +f 16837//15577 16836//15576 16050//14791 16041//14782 +f 16838//15578 16839//15579 16835//15575 16834//15574 +f 16837//15577 16838//15578 16834//15574 16737//15477 +f 16838//15578 16837//15577 16041//14782 16040//14781 +f 16839//15579 16838//15578 16040//14781 16044//14785 +f 16840//15580 16841//15581 16827//15567 16826//15566 +f 16833//15573 16840//15580 16826//15566 16805//15545 +f 16840//15580 16833//15573 16835//15575 16842//15582 +f 16841//15581 16840//15580 16842//15582 16843//15583 +f 16844//15584 16845//15585 16044//14785 16043//14784 +f 16022//14763 16844//15584 16043//14784 16023//14764 +f 16844//15584 16022//14763 15958//14699 16846//15586 +f 16845//15585 16844//15584 16846//15586 16847//15587 +f 16848//15588 16849//15589 16843//15583 16842//15582 +f 16839//15579 16848//15588 16842//15582 16835//15575 +f 16848//15588 16839//15579 16044//14785 16845//15585 +f 16849//15589 16848//15588 16845//15585 16847//15587 +f 16850//15590 16851//15591 16847//15587 16846//15586 +f 15957//14698 16850//15590 16846//15586 15958//14699 +f 16850//15590 15957//14698 15936//14677 15935//14676 +f 16851//15591 16850//15590 15935//14676 15934//14675 +f 16852//15592 16849//15589 16847//15587 16851//15591 +f 15938//14679 16852//15592 16851//15591 15934//14675 +f 16852//15592 15938//14679 15940//14681 16853//15593 +f 16849//15589 16852//15592 16853//15593 16843//15583 +f 16854//15594 16841//15581 16843//15583 16853//15593 +f 16855//15595 16854//15594 16853//15593 15940//14681 +f 16854//15594 16855//15595 16856//15596 16857//15597 +f 16841//15581 16854//15594 16857//15597 16827//15567 +f 16858//15598 16855//15595 15940//14681 15939//14680 +f 15928//14669 16858//15598 15939//14680 15918//14659 +f 16858//15598 15928//14669 15930//14671 16859//15599 +f 16855//15595 16858//15598 16859//15599 16856//15596 +f 16860//15600 16825//15565 16827//15567 16857//15597 +f 16861//15601 16860//15600 16857//15597 16856//15596 +f 16860//15600 16861//15601 16862//15602 16863//15603 +f 16825//15565 16860//15600 16863//15603 16809//15549 +f 16864//15604 16861//15601 16856//15596 16859//15599 +f 16865//15605 16864//15604 16859//15599 15930//14671 +f 16864//15604 16865//15605 16866//15606 16867//15607 +f 16861//15601 16864//15604 16867//15607 16862//15602 +f 16868//15608 16865//15605 15930//14671 15929//14670 +f 16869//15609 16868//15608 15929//14670 15908//14649 +f 16868//15608 16869//15609 16870//15610 16871//15611 +f 16865//15605 16868//15608 16871//15611 16866//15606 +f 16872//15612 16807//15547 16809//15549 16863//15603 +f 16873//15613 16872//15612 16863//15603 16862//15602 +f 16872//15612 16873//15613 16819//15559 16818//15558 +f 16807//15547 16872//15612 16818//15558 16801//15541 +f 16874//15614 16873//15613 16862//15602 16867//15607 +f 16875//15615 16874//15614 16867//15607 16866//15606 +f 16874//15614 16875//15615 16876//15616 16877//15617 +f 16873//15613 16874//15614 16877//15617 16819//15559 +f 16878//15618 16879//15619 16880//15620 16881//15621 +f 16817//15557 16878//15618 16881//15621 16815//15555 +f 16878//15618 16817//15557 16819//15559 16877//15617 +f 16879//15619 16878//15618 16877//15617 16876//15616 +f 16882//15622 16883//15623 16884//15624 16885//15625 +f 16875//15615 16882//15622 16885//15625 16876//15616 +f 16882//15622 16875//15615 16866//15606 16871//15611 +f 16883//15623 16882//15622 16871//15611 16870//15610 +f 16886//15626 16887//15627 16888//15628 16889//15629 +f 16879//15619 16886//15626 16889//15629 16880//15620 +f 16886//15626 16879//15619 16876//15616 16885//15625 +f 16887//15627 16886//15626 16885//15625 16884//15624 +f 16890//15630 16811//15551 16815//15555 16881//15621 +f 16891//15631 16890//15630 16881//15621 16880//15620 +f 16890//15630 16891//15631 16892//15632 16893//15633 +f 16811//15551 16890//15630 16893//15633 16812//15552 +f 16894//15634 16891//15631 16880//15620 16889//15629 +f 16895//15635 16894//15634 16889//15629 16888//15628 +f 16894//15634 16895//15635 16896//15636 16897//15637 +f 16891//15631 16894//15634 16897//15637 16892//15632 +f 16898//15638 16821//15561 16812//15552 16893//15633 +f 16899//15639 16898//15638 16893//15633 16892//15632 +f 16898//15638 16899//15639 16900//15640 16901//15641 +f 16821//15561 16898//15638 16901//15641 16822//15562 +f 16902//15642 16899//15639 16892//15632 16897//15637 +f 16903//15643 16902//15642 16897//15637 16896//15636 +f 16902//15642 16903//15643 16904//15644 16905//15645 +f 16899//15639 16902//15642 16905//15645 16900//15640 +f 16906//15646 16829//15569 16822//15562 16901//15641 +f 16907//15647 16906//15646 16901//15641 16900//15640 +f 16906//15646 16907//15647 16908//15648 16909//15649 +f 16829//15569 16906//15646 16909//15649 16830//15570 +f 16910//15650 16907//15647 16900//15640 16905//15645 +f 16911//15651 16910//15650 16905//15645 16904//15644 +f 16910//15650 16911//15651 16912//15652 16913//15653 +f 16907//15647 16910//15650 16913//15653 16908//15648 +f 16914//15654 16915//15655 16916//15656 16917//15657 +f 16903//15643 16914//15654 16917//15657 16904//15644 +f 16914//15654 16903//15643 16896//15636 16918//15658 +f 16915//15655 16914//15654 16918//15658 16919//15659 +f 16920//15660 16921//15661 16922//15662 16923//15663 +f 16911//15651 16920//15660 16923//15663 16912//15652 +f 16920//15660 16911//15651 16904//15644 16917//15657 +f 16921//15661 16920//15660 16917//15657 16916//15656 +f 16924//15664 16925//15665 16908//15648 16913//15653 +f 16926//15666 16924//15664 16913//15653 16912//15652 +f 16924//15664 16926//15666 16927//15667 16928//15668 +f 16925//15665 16924//15664 16928//15668 16929//15669 +f 16930//15670 16931//15671 16919//15659 16918//15658 +f 16895//15635 16930//15670 16918//15658 16896//15636 +f 16930//15670 16895//15635 16888//15628 16932//15672 +f 16931//15671 16930//15670 16932//15672 16933//15673 +f 16934//15674 16935//15675 16830//15570 16909//15649 +f 16925//15665 16934//15674 16909//15649 16908//15648 +f 16934//15674 16925//15665 16929//15669 16936//15676 +f 16935//15675 16934//15674 16936//15676 16937//15677 +f 16938//15678 16939//15679 16933//15673 16932//15672 +f 16887//15627 16938//15678 16932//15672 16888//15628 +f 16938//15678 16887//15627 16884//15624 16940//15680 +f 16939//15679 16938//15678 16940//15680 16941//15681 +f 16942//15682 16775//15515 16777//15517 16831//15571 +f 16935//15675 16942//15682 16831//15571 16830//15570 +f 16942//15682 16935//15675 16937//15677 16943//15683 +f 16775//15515 16942//15682 16943//15683 16581//15321 +f 16944//15684 16585//15325 16571//15311 16582//15322 +f 16943//15683 16944//15684 16582//15322 16581//15321 +f 16944//15684 16943//15683 16937//15677 16945//15685 +f 16585//15325 16944//15684 16945//15685 16586//15326 +f 16946//15686 16947//15687 16586//15326 16945//15685 +f 16936//15676 16946//15686 16945//15685 16937//15677 +f 16946//15686 16936//15676 16929//15669 16948//15688 +f 16947//15687 16946//15686 16948//15688 16949//15689 +f 16950//15690 16951//15691 16949//15689 16948//15688 +f 16928//15668 16950//15690 16948//15688 16929//15669 +f 16950//15690 16928//15668 16927//15667 16952//15692 +f 16951//15691 16950//15690 16952//15692 15494//14235 +f 16953//15693 16954//15694 16588//15328 16587//15327 +f 16947//15687 16953//15693 16587//15327 16586//15326 +f 16953//15693 16947//15687 16949//15689 16955//15695 +f 16954//15694 16953//15693 16955//15695 15484//14225 +f 16956//15696 15482//14223 15484//14225 16955//15695 +f 16951//15691 16956//15696 16955//15695 16949//15689 +f 16956//15696 16951//15691 15494//14235 15493//14234 +f 15482//14223 16956//15696 15493//14234 15480//14221 +f 16957//15697 16958//15698 16596//15336 16595//15335 +f 16954//15694 16957//15697 16595//15335 16588//15328 +f 16957//15697 16954//15694 15484//14225 15483//14224 +f 16958//15698 16957//15697 15483//14224 15472//14213 +f 16959//15699 15466//14207 15468//14209 16960//15700 +f 16958//15698 16959//15699 16960//15700 16596//15336 +f 16959//15699 16958//15698 15472//14213 15471//14212 +f 15466//14207 16959//15699 15471//14212 15454//14195 +f 16961//15701 16594//15334 16596//15336 16960//15700 +f 16962//15702 16961//15701 16960//15700 15468//14209 +f 16961//15701 16962//15702 16560//15300 16559//15299 +f 16594//15334 16961//15701 16559//15299 16558//15298 +f 16963//15703 15460//14201 15464//14205 16964//15704 +f 16962//15702 16963//15703 16964//15704 16560//15300 +f 16963//15703 16962//15702 15468//14209 15467//14208 +f 15460//14201 16963//15703 15467//14208 15450//14191 +f 16965//15705 16556//15296 16560//15300 16964//15704 +f 16966//15706 16965//15705 16964//15704 15464//14205 +f 16965//15705 16966//15706 16546//15286 16545//15285 +f 16556//15296 16965//15705 16545//15285 16544//15284 +f 16967//15707 16968//15708 16969//15709 16970//15710 +f 16542//15282 16967//15707 16970//15710 16540//15280 +f 16967//15707 16542//15282 16546//15286 16971//15711 +f 16968//15708 16967//15707 16971//15711 16972//15712 +f 16973//15713 16538//15278 16540//15280 16970//15710 +f 16974//15714 16973//15713 16970//15710 16969//15709 +f 16973//15713 16974//15714 16532//15272 16531//15271 +f 16538//15278 16973//15713 16531//15271 16508//15248 +f 16975//15715 15492//14233 15494//14235 16952//15692 +f 16976//15716 16975//15715 16952//15692 16927//15667 +f 16975//15715 16976//15716 16977//15717 16978//15718 +f 15492//14233 16975//15715 16978//15718 15490//14231 +f 16979//15719 16980//15720 16977//15717 16976//15716 +f 16926//15666 16979//15719 16976//15716 16927//15667 +f 16979//15719 16926//15666 16912//15652 16923//15663 +f 16980//15720 16979//15719 16923//15663 16922//15662 +f 16981//15721 15486//14227 15490//14231 16978//15718 +f 16982//15722 16981//15721 16978//15718 16977//15717 +f 16981//15721 16982//15722 15506//14247 15505//14246 +f 15486//14227 16981//15721 15505//14246 15487//14228 +f 16983//15723 16984//15724 15506//14247 16982//15722 +f 16980//15720 16983//15723 16982//15722 16977//15717 +f 16983//15723 16980//15720 16922//15662 16985//15725 +f 16984//15724 16983//15723 16985//15725 16986//15726 +f 16987//15727 15530//14271 15503//14244 15502//14243 +f 16984//15724 16987//15727 15502//14243 15506//14247 +f 16987//15727 16984//15724 16986//15726 16988//15728 +f 15530//14271 16987//15727 16988//15728 15531//14272 +f 16989//15729 16990//15730 16986//15726 16985//15725 +f 16921//15661 16989//15729 16985//15725 16922//15662 +f 16989//15729 16921//15661 16916//15656 16991//15731 +f 16990//15730 16989//15729 16991//15731 16992//15732 +f 16993//15733 16994//15734 15531//14272 16988//15728 +f 16990//15730 16993//15733 16988//15728 16986//15726 +f 16993//15733 16990//15730 16992//15732 16995//15735 +f 16994//15734 16993//15733 16995//15735 16996//15736 +f 16997//15737 16998//15738 16992//15732 16991//15731 +f 16915//15655 16997//15737 16991//15731 16916//15656 +f 16997//15737 16915//15655 16919//15659 16999//15739 +f 16998//15738 16997//15737 16999//15739 17000//15740 +f 17001//15741 17002//15742 15520//14261 15532//14273 +f 16994//15734 17001//15741 15532//14273 15531//14272 +f 17001//15741 16994//15734 16996//15736 17003//15743 +f 17002//15742 17001//15741 17003//15743 17004//15744 +f 17005//15745 17006//15746 16996//15736 16995//15735 +f 16998//15738 17005//15745 16995//15735 16992//15732 +f 17005//15745 16998//15738 17000//15740 17007//15747 +f 17006//15746 17005//15745 17007//15747 17008//15748 +f 17009//15749 17010//15750 17000//15740 16999//15739 +f 16931//15671 17009//15749 16999//15739 16919//15659 +f 17009//15749 16931//15671 16933//15673 17011//15751 +f 17010//15750 17009//15749 17011//15751 17012//15752 +f 17013//15753 17014//15754 15522//14263 15521//14262 +f 17002//15742 17013//15753 15521//14262 15520//14261 +f 17013//15753 17002//15742 17004//15744 17015//15755 +f 17014//15754 17013//15753 17015//15755 17016//15756 +f 17017//15757 17018//15758 17004//15744 17003//15743 +f 17006//15746 17017//15757 17003//15743 16996//15736 +f 17017//15757 17006//15746 17008//15748 17019//15759 +f 17018//15758 17017//15757 17019//15759 17020//15760 +f 17021//15761 17022//15762 17008//15748 17007//15747 +f 17010//15750 17021//15761 17007//15747 17000//15740 +f 17021//15761 17010//15750 17012//15752 17023//15763 +f 17022//15762 17021//15761 17023//15763 17024//15764 +f 17025//15765 15546//14287 15525//14266 15528//14269 +f 17014//15754 17025//15765 15528//14269 15522//14263 +f 17025//15765 17014//15754 17016//15756 17026//15766 +f 15546//14287 17025//15765 17026//15766 15547//14288 +f 17027//15767 17028//15768 17016//15756 17015//15755 +f 17018//15758 17027//15767 17015//15755 17004//15744 +f 17027//15767 17018//15758 17020//15760 17029//15769 +f 17028//15768 17027//15767 17029//15769 15578//14319 +f 17030//15770 15562//14303 15547//14288 17026//15766 +f 17028//15768 17030//15770 17026//15766 17016//15756 +f 17030//15770 17028//15768 15578//14319 15577//14318 +f 15562//14303 17030//15770 15577//14318 15563//14304 +f 17031//15771 17032//15772 15698//14439 15697//14438 +f 15574//14315 17031//15771 15697//14438 15575//14316 +f 17031//15771 15574//14315 15578//14319 17029//15769 +f 17032//15772 17031//15771 17029//15769 17020//15760 +f 17033//15773 17032//15772 17020//15760 17019//15759 +f 17022//15762 17033//15773 17019//15759 17008//15748 +f 17033//15773 17022//15762 17024//15764 17034//15774 +f 17032//15772 17033//15773 17034//15774 15698//14439 +f 17035//15775 17036//15776 15708//14449 15707//14448 +f 15696//14437 17035//15775 15707//14448 15694//14435 +f 17035//15775 15696//14437 15698//14439 17034//15774 +f 17036//15776 17035//15775 17034//15774 17024//15764 +f 17037//15777 17038//15778 15904//14645 15903//14644 +f 15706//14447 17037//15777 15903//14644 15704//14445 +f 17037//15777 15706//14447 15708//14449 17039//15779 +f 17038//15778 17037//15777 17039//15779 17040//15780 +f 17041//15781 17042//15782 17040//15780 17039//15779 +f 17036//15776 17041//15781 17039//15779 15708//14449 +f 17041//15781 17036//15776 17024//15764 17023//15763 +f 17042//15782 17041//15781 17023//15763 17012//15752 +f 17043//15783 17044//15784 15912//14653 15911//14652 +f 17038//15778 17043//15783 15911//14652 15904//14645 +f 17043//15783 17038//15778 17040//15780 17045//15785 +f 17044//15784 17043//15783 17045//15785 16941//15681 +f 17046//15786 16869//15609 15908//14649 15907//14648 +f 15910//14651 17046//15786 15907//14648 15900//14641 +f 17046//15786 15910//14651 15912//14653 17047//15787 +f 16869//15609 17046//15786 17047//15787 16870//15610 +f 17048//15788 16939//15679 16941//15681 17045//15785 +f 17042//15782 17048//15788 17045//15785 17040//15780 +f 17048//15788 17042//15782 17012//15752 17011//15751 +f 16939//15679 17048//15788 17011//15751 16933//15673 +f 17049//15789 16883//15623 16870//15610 17047//15787 +f 17044//15784 17049//15789 17047//15787 15912//14653 +f 17049//15789 17044//15784 16941//15681 16940//15680 +f 16883//15623 17049//15789 16940//15680 16884//15624 +f 17050//15790 17051//15791 16423//15163 16422//15162 +f 16429//15169 17050//15790 16422//15162 16419//15159 +f 17050//15790 16429//15169 16433//15173 16451//15191 +f 17051//15791 17050//15790 16451//15191 16450//15190 +f 17052//15792 17053//15793 16427//15167 16426//15166 +f 17051//15791 17052//15792 16426//15166 16423//15163 +f 17052//15792 17051//15791 16450//15190 17054//15794 +f 17053//15793 17052//15792 17054//15794 17055//15795 +f 17056//15796 17057//15797 17055//15795 17054//15794 +f 16449//15189 17056//15796 17054//15794 16450//15190 +f 17056//15796 16449//15189 16453//15193 17058//15798 +f 17057//15797 17056//15796 17058//15798 17059//15799 +f 17060//15800 17061//15801 17059//15799 17058//15798 +f 16455//15195 17060//15800 17058//15798 16453//15193 +f 17060//15800 16455//15195 16459//15199 16536//15276 +f 17061//15801 17060//15800 16536//15276 16535//15275 +f 17062//15802 17063//15803 16269//15009 16274//15014 +f 17064//15804 17062//15802 16274//15014 16273//15013 +f 17062//15802 17064//15804 16107//14848 16106//14847 +f 17063//15803 17062//15802 16106//14847 16103//14844 +f 17065//15805 16113//14854 16117//14858 16270//15010 +f 17063//15803 17065//15805 16270//15010 16269//15009 +f 17065//15805 17063//15803 16103//14844 16101//14842 +f 16113//14854 17065//15805 16101//14842 16100//14841 +f 17066//15806 17067//15807 15320//14061 15319//14060 +f 15300//14041 17066//15806 15319//14060 15301//14042 +f 17066//15806 15300//14041 15238//13979 17068//15808 +f 17067//15807 17066//15806 17068//15808 17069//15809 +f 17070//15810 17071//15811 17072//15812 17073//15813 +f 17074//15814 17070//15810 17073//15813 15244//13985 +f 17070//15810 17074//15814 17075//15815 17076//15816 +f 17071//15811 17070//15810 17076//15816 17077//15817 +f 17078//15818 17079//15819 17080//15820 17081//15821 +f 17074//15814 17078//15818 17081//15821 17075//15815 +f 17078//15818 17074//15814 15244//13985 15243//13984 +f 17079//15819 17078//15818 15243//13984 15242//13983 +f 17082//15822 17083//15823 17084//15824 17085//15825 +f 17079//15819 17082//15822 17085//15825 17080//15820 +f 17082//15822 17079//15819 15242//13983 15284//14025 +f 17083//15823 17082//15822 15284//14025 15283//14024 +f 17086//15826 17087//15827 17088//15828 17089//15829 +f 17083//15823 17086//15826 17089//15829 17084//15824 +f 17086//15826 17083//15823 15283//14024 15290//14031 +f 17087//15827 17086//15826 15290//14031 15289//14030 +f 17090//15830 17091//15831 17092//15832 17093//15833 +f 17087//15827 17090//15830 17093//15833 17088//15828 +f 17090//15830 17087//15827 15289//14030 15306//14047 +f 17091//15831 17090//15830 15306//14047 15305//14046 +f 17094//15834 17095//15835 17096//15836 17097//15837 +f 17091//15831 17094//15834 17097//15837 17092//15832 +f 17094//15834 17091//15831 15305//14046 15360//14101 +f 17095//15835 17094//15834 15360//14101 15359//14100 +f 17098//15838 17099//15839 17096//15836 17095//15835 +f 15372//14113 17098//15838 17095//15835 15359//14100 +f 17098//15838 15372//14113 15376//14117 17100//15840 +f 17099//15839 17098//15838 17100//15840 17101//15841 +f 17102//15842 17103//15843 17101//15841 17100//15840 +f 15534//14275 17102//15842 17100//15840 15376//14117 +f 17102//15842 15534//14275 15538//14279 17104//15844 +f 17103//15843 17102//15842 17104//15844 17105//15845 +f 17106//15846 17107//15847 17105//15845 17104//15844 +f 15540//14281 17106//15846 17104//15844 15538//14279 +f 17106//15846 15540//14281 15544//14285 17108//15848 +f 17107//15847 17106//15846 17108//15848 17109//15849 +f 17110//15850 17111//15851 17109//15849 17108//15848 +f 15550//14291 17110//15850 17108//15848 15544//14285 +f 17110//15850 15550//14291 15554//14295 17112//15852 +f 17111//15851 17110//15850 17112//15852 17113//15853 +f 17114//15854 17115//15855 17113//15853 17112//15852 +f 15556//14297 17114//15854 17112//15852 15554//14295 +f 17114//15854 15556//14297 15560//14301 17116//15856 +f 17115//15855 17114//15854 17116//15856 17117//15857 +f 17118//15858 17119//15859 17117//15857 17116//15856 +f 15584//14325 17118//15858 17116//15856 15560//14301 +f 17118//15858 15584//14325 15588//14329 17120//15860 +f 17119//15859 17118//15858 17120//15860 17121//15861 +f 17122//15862 17123//15863 17121//15861 17120//15860 +f 15590//14331 17122//15862 17120//15860 15588//14329 +f 17122//15862 15590//14331 15594//14335 17124//15864 +f 17123//15863 17122//15862 17124//15864 17125//15865 +f 17126//15866 17127//15867 17125//15865 17124//15864 +f 15600//14341 17126//15866 17124//15864 15594//14335 +f 17126//15866 15600//14341 15604//14345 17128//15868 +f 17127//15867 17126//15866 17128//15868 17129//15869 +f 17130//15870 17131//15871 17129//15869 17128//15868 +f 15610//14351 17130//15870 17128//15868 15604//14345 +f 17130//15870 15610//14351 15614//14355 17132//15872 +f 17131//15871 17130//15870 17132//15872 17133//15873 +f 17134//15874 17135//15875 17136//15876 17137//15877 +f 17132//15872 17134//15874 17137//15877 17133//15873 +f 17134//15874 17132//15872 15614//14355 15622//14363 +f 17135//15875 17134//15874 15622//14363 15621//14362 +f 17138//15878 17139//15879 17140//15880 17141//15881 +f 17135//15875 17138//15878 17141//15881 17136//15876 +f 17138//15878 17135//15875 15621//14362 15636//14377 +f 17139//15879 17138//15878 15636//14377 15635//14376 +f 17142//15882 17143//15883 17144//15884 17145//15885 +f 17139//15879 17142//15882 17145//15885 17140//15880 +f 17142//15882 17139//15879 15635//14376 15640//14381 +f 17143//15883 17142//15882 15640//14381 15259//14000 +f 17146//15886 17147//15887 17148//15888 17149//15889 +f 17143//15883 17146//15886 17149//15889 17144//15884 +f 17146//15886 17143//15883 15259//14000 15257//13998 +f 17147//15887 17146//15886 15257//13998 15256//13997 +f 17150//15890 17151//15891 17152//15892 17153//15893 +f 17147//15887 17150//15890 17153//15893 17148//15888 +f 17150//15890 17147//15887 15256//13997 17154//15894 +f 17151//15891 17150//15890 17154//15894 17155//15895 +f 17156//15896 17157//15897 17158//15898 17159//15899 +f 17151//15891 17156//15896 17159//15899 17152//15892 +f 17156//15896 17151//15891 17155//15895 17160//15900 +f 17157//15897 17156//15896 17160//15900 17161//15901 +f 17162//15902 17163//15903 15761//14502 15768//14509 +f 17164//15904 17162//15902 15768//14509 15767//14508 +f 17162//15902 17164//15904 17161//15901 17160//15900 +f 17163//15903 17162//15902 17160//15900 17155//15895 +f 17165//15905 15255//13996 15262//14003 15762//14503 +f 17163//15903 17165//15905 15762//14503 15761//14502 +f 17165//15905 17163//15903 17155//15895 17154//15894 +f 15255//13996 17165//15905 17154//15894 15256//13997 +f 17166//15906 16966//15706 15464//14205 15463//14204 +f 17167//15907 17166//15906 15463//14204 15462//14203 +f 17166//15906 17167//15907 16972//15712 16971//15711 +f 16966//15706 17166//15906 16971//15711 16546//15286 +f 17168//15908 15237//13978 15244//13985 17073//15813 +f 17169//15909 17168//15908 17073//15813 17072//15812 +f 17168//15908 17169//15909 17069//15809 17068//15808 +f 15237//13978 17168//15908 17068//15808 15238//13979 +f 17170//15910 15644//14385 15638//14379 15637//14378 +f 15630//14371 17170//15910 15637//14378 15624//14365 +f 17170//15910 15630//14371 15632//14373 15660//14401 +f 15644//14385 17170//15910 15660//14401 15645//14386 +f 17171//15911 17172//15912 17173//15913 17174//15914 +f 17175//15915 17171//15911 17174//15914 17176//15916 +f 17171//15911 17175//15915 17177//15917 17178//15918 +f 17172//15912 17171//15911 17178//15918 17179//15919 +f 17180//15920 17181//15921 17182//15922 17183//15923 +f 17184//15924 17180//15920 17183//15923 17185//15925 +f 17180//15920 17184//15924 17186//15926 17187//15927 +f 17181//15921 17180//15920 17187//15927 17188//15928 +f 17189//15929 17190//15930 17191//15931 17192//15932 +f 17193//15933 17189//15929 17192//15932 17194//15934 +f 17189//15929 17193//15933 17195//15935 17196//15936 +f 17190//15930 17189//15929 17196//15936 17197//15937 +f 17198//15938 17199//15939 17200//15940 17201//15941 +f 17202//15942 17198//15938 17201//15941 17203//15943 +f 17198//15938 17202//15942 17204//15944 17205//15945 +f 17199//15939 17198//15938 17205//15945 17206//15946 +f 17207//15947 17208//15948 17209//15949 17210//15950 +f 17211//15951 17207//15947 17210//15950 17212//15952 +f 17207//15947 17211//15951 17213//15953 17214//15954 +f 17208//15948 17207//15947 17214//15954 17215//15955 +f 17216//15956 17217//15957 17218//15958 17219//15959 +f 17175//15915 17216//15956 17219//15959 17177//15917 +f 17216//15956 17175//15915 17176//15916 17220//15960 +f 17217//15957 17216//15956 17220//15960 17221//15961 +f 17222//15962 17223//15963 17224//15964 17225//15965 +f 17217//15957 17222//15962 17225//15965 17218//15958 +f 17222//15962 17217//15957 17221//15961 17226//15966 +f 17223//15963 17222//15962 17226//15966 17227//15967 +f 17228//15968 17229//15969 17221//15961 17220//15960 +f 17230//15970 17228//15968 17220//15960 17176//15916 +f 17228//15968 17230//15970 17231//15971 17232//15972 +f 17229//15969 17228//15968 17232//15972 17233//15973 +f 17234//15974 17235//15975 17236//15976 17237//15977 +f 17230//15970 17234//15974 17237//15977 17231//15971 +f 17234//15974 17230//15970 17176//15916 17174//15914 +f 17235//15975 17234//15974 17174//15914 17173//15913 +f 17238//15978 17239//15979 17240//15980 17241//15981 +f 17223//15963 17238//15978 17241//15981 17224//15964 +f 17238//15978 17223//15963 17227//15967 17242//15982 +f 17239//15979 17238//15978 17242//15982 17243//15983 +f 17244//15984 17245//15985 17231//15971 17237//15977 +f 17246//15986 17244//15984 17237//15977 17236//15976 +f 17244//15984 17246//15986 17247//15987 17248//15988 +f 17245//15985 17244//15984 17248//15988 17249//15989 +f 17250//15990 17251//15991 17252//15992 17253//15993 +f 17246//15986 17250//15990 17253//15993 17247//15987 +f 17250//15990 17246//15986 17236//15976 17254//15994 +f 17251//15991 17250//15990 17254//15994 17255//15995 +f 17256//15996 17257//15997 17247//15987 17253//15993 +f 17258//15998 17256//15996 17253//15993 17252//15992 +f 17256//15996 17258//15998 17259//15999 17260//16000 +f 17257//15997 17256//15996 17260//16000 17261//16001 +f 17262//16002 17263//16003 17261//16001 17260//16000 +f 17264//16004 17262//16002 17260//16000 17259//15999 +f 17262//16002 17264//16004 17265//16005 17266//16006 +f 17263//16003 17262//16002 17266//16006 17267//16007 +f 17268//16008 17269//16009 17249//15989 17248//15988 +f 17257//15997 17268//16008 17248//15988 17247//15987 +f 17268//16008 17257//15997 17261//16001 17270//16010 +f 17269//16009 17268//16008 17270//16010 17271//16011 +f 17272//16012 17273//16013 17233//15973 17232//15972 +f 17245//15985 17272//16012 17232//15972 17231//15971 +f 17272//16012 17245//15985 17249//15989 17274//16014 +f 17273//16013 17272//16012 17274//16014 17275//16015 +f 17276//16016 17277//16017 17227//15967 17226//15966 +f 17229//15969 17276//16016 17226//15966 17221//15961 +f 17276//16016 17229//15969 17233//15973 17278//16018 +f 17277//16017 17276//16016 17278//16018 17279//16019 +f 17280//16020 17281//16021 17243//15983 17242//15982 +f 17277//16017 17280//16020 17242//15982 17227//15967 +f 17280//16020 17277//16017 17279//16019 17282//16022 +f 17281//16021 17280//16020 17282//16022 17283//16023 +f 17284//16024 17285//16025 17279//16019 17278//16018 +f 17273//16013 17284//16024 17278//16018 17233//15973 +f 17284//16024 17273//16013 17275//16015 17286//16026 +f 17285//16025 17284//16024 17286//16026 17287//16027 +f 17288//16028 17289//16029 17275//16015 17274//16014 +f 17269//16009 17288//16028 17274//16014 17249//15989 +f 17288//16028 17269//16009 17271//16011 17290//16030 +f 17289//16029 17288//16028 17290//16030 17291//16031 +f 17292//16032 17293//16033 17294//16034 17295//16035 +f 17239//15979 17292//16032 17295//16035 17240//15980 +f 17292//16032 17239//15979 17243//15983 17296//16036 +f 17293//16033 17292//16032 17296//16036 17297//16037 +f 17298//16038 17299//16039 17297//16037 17296//16036 +f 17281//16021 17298//16038 17296//16036 17243//15983 +f 17298//16038 17281//16021 17283//16023 17300//16040 +f 17299//16039 17298//16038 17300//16040 17301//16041 +f 17302//16042 17303//16043 17283//16023 17282//16022 +f 17285//16025 17302//16042 17282//16022 17279//16019 +f 17302//16042 17285//16025 17287//16027 17304//16044 +f 17303//16043 17302//16042 17304//16044 17305//16045 +f 17306//16046 17307//16047 17294//16034 17293//16033 +f 17308//16048 17306//16046 17293//16033 17297//16037 +f 17306//16046 17308//16048 17309//16049 17310//16050 +f 17307//16047 17306//16046 17310//16050 17311//16051 +f 17312//16052 17313//16053 17287//16027 17286//16026 +f 17289//16029 17312//16052 17286//16026 17275//16015 +f 17312//16052 17289//16029 17291//16031 17314//16054 +f 17313//16053 17312//16052 17314//16054 17315//16055 +f 17316//16056 17317//16057 17271//16011 17270//16010 +f 17263//16003 17316//16056 17270//16010 17261//16001 +f 17316//16056 17263//16003 17267//16007 17318//16058 +f 17317//16057 17316//16056 17318//16058 17319//16059 +f 17320//16060 17321//16061 17322//16062 17323//16063 +f 17324//16064 17320//16060 17323//16063 17325//16065 +f 17320//16060 17324//16064 17267//16007 17266//16006 +f 17321//16061 17320//16060 17266//16006 17265//16005 +f 17326//16066 17327//16067 17325//16065 17323//16063 +f 17328//16068 17326//16066 17323//16063 17322//16062 +f 17326//16066 17328//16068 17329//16069 17330//16070 +f 17327//16067 17326//16066 17330//16070 17331//16071 +f 17332//16072 17333//16073 17319//16059 17318//16058 +f 17324//16064 17332//16072 17318//16058 17267//16007 +f 17332//16072 17324//16064 17325//16065 17334//16074 +f 17333//16073 17332//16072 17334//16074 17335//16075 +f 17336//16076 17337//16077 17291//16031 17290//16030 +f 17317//16057 17336//16076 17290//16030 17271//16011 +f 17336//16076 17317//16057 17319//16059 17338//16078 +f 17337//16077 17336//16076 17338//16078 17339//16079 +f 17340//16080 17341//16081 17305//16045 17304//16044 +f 17313//16053 17340//16080 17304//16044 17287//16027 +f 17340//16080 17313//16053 17315//16055 17342//16082 +f 17341//16081 17340//16080 17342//16082 17343//16083 +f 17344//16084 17345//16085 17315//16055 17314//16054 +f 17337//16077 17344//16084 17314//16054 17291//16031 +f 17344//16084 17337//16077 17339//16079 17346//16086 +f 17345//16085 17344//16084 17346//16086 17347//16087 +f 17348//16088 17349//16089 17339//16079 17338//16078 +f 17333//16073 17348//16088 17338//16078 17319//16059 +f 17348//16088 17333//16073 17335//16075 17350//16090 +f 17349//16089 17348//16088 17350//16090 17351//16091 +f 17352//16092 17353//16093 17335//16075 17334//16074 +f 17327//16067 17352//16092 17334//16074 17325//16065 +f 17352//16092 17327//16067 17331//16071 17354//16094 +f 17353//16093 17352//16092 17354//16094 17355//16095 +f 17356//16096 17357//16097 17347//16087 17346//16086 +f 17349//16089 17356//16096 17346//16086 17339//16079 +f 17356//16096 17349//16089 17351//16091 17358//16098 +f 17357//16097 17356//16096 17358//16098 17359//16099 +f 17360//16100 17361//16101 17351//16091 17350//16090 +f 17353//16093 17360//16100 17350//16090 17335//16075 +f 17360//16100 17353//16093 17355//16095 17362//16102 +f 17361//16101 17360//16100 17362//16102 17363//16103 +f 17364//16104 17365//16105 17355//16095 17354//16094 +f 17366//16106 17364//16104 17354//16094 17331//16071 +f 17364//16104 17366//16106 17367//16107 17368//16108 +f 17365//16105 17364//16104 17368//16108 17369//16109 +f 17370//16110 17371//16111 17372//16112 17373//16113 +f 17366//16106 17370//16110 17373//16113 17367//16107 +f 17370//16110 17366//16106 17331//16071 17330//16070 +f 17371//16111 17370//16110 17330//16070 17329//16069 +f 17374//16114 17375//16115 17367//16107 17373//16113 +f 17376//16116 17374//16114 17373//16113 17372//16112 +f 17374//16114 17376//16116 17377//16117 17378//16118 +f 17375//16115 17374//16114 17378//16118 17379//16119 +f 17380//16120 17381//16121 17379//16119 17378//16118 +f 17382//16122 17380//16120 17378//16118 17377//16117 +f 17380//16120 17382//16122 17383//16123 17384//16124 +f 17381//16121 17380//16120 17384//16124 17385//16125 +f 17386//16126 17387//16127 17369//16109 17368//16108 +f 17375//16115 17386//16126 17368//16108 17367//16107 +f 17386//16126 17375//16115 17379//16119 17388//16128 +f 17387//16127 17386//16126 17388//16128 17389//16129 +f 17390//16130 17391//16131 17363//16103 17362//16102 +f 17365//16105 17390//16130 17362//16102 17355//16095 +f 17390//16130 17365//16105 17369//16109 17392//16132 +f 17391//16131 17390//16130 17392//16132 17393//16133 +f 17394//16134 17395//16135 17385//16125 17384//16124 +f 17396//16136 17394//16134 17384//16124 17383//16123 +f 17394//16134 17396//16136 17397//16137 17398//16138 +f 17395//16135 17394//16134 17398//16138 17399//16139 +f 17400//16140 17401//16141 17389//16129 17388//16128 +f 17381//16121 17400//16140 17388//16128 17379//16119 +f 17400//16140 17381//16121 17385//16125 17402//16142 +f 17401//16141 17400//16140 17402//16142 17403//16143 +f 17404//16144 17405//16145 17393//16133 17392//16132 +f 17387//16127 17404//16144 17392//16132 17369//16109 +f 17404//16144 17387//16127 17389//16129 17406//16146 +f 17405//16145 17404//16144 17406//16146 17407//16147 +f 17408//16148 17409//16149 17359//16099 17358//16098 +f 17361//16101 17408//16148 17358//16098 17351//16091 +f 17408//16148 17361//16101 17363//16103 17410//16150 +f 17409//16149 17408//16148 17410//16150 17411//16151 +f 17412//16152 17413//16153 17411//16151 17410//16150 +f 17391//16131 17412//16152 17410//16150 17363//16103 +f 17412//16152 17391//16131 17393//16133 17414//16154 +f 17413//16153 17412//16152 17414//16154 17415//16155 +f 17416//16156 17417//16157 17415//16155 17414//16154 +f 17405//16145 17416//16156 17414//16154 17393//16133 +f 17416//16156 17405//16145 17407//16147 17418//16158 +f 17417//16157 17416//16156 17418//16158 17419//16159 +f 17420//16160 17421//16161 17422//16162 17423//16163 +f 17409//16149 17420//16160 17423//16163 17359//16099 +f 17420//16160 17409//16149 17411//16151 17424//16164 +f 17421//16161 17420//16160 17424//16164 17425//16165 +f 17426//16166 17427//16167 17425//16165 17424//16164 +f 17413//16153 17426//16166 17424//16164 17411//16151 +f 17426//16166 17413//16153 17415//16155 17428//16168 +f 17427//16167 17426//16166 17428//16168 17429//16169 +f 17430//16170 17431//16171 17432//16172 17433//16173 +f 17357//16097 17430//16170 17433//16173 17347//16087 +f 17430//16170 17357//16097 17359//16099 17423//16163 +f 17431//16171 17430//16170 17423//16163 17422//16162 +f 17434//16174 17345//16085 17347//16087 17433//16173 +f 17435//16175 17434//16174 17433//16173 17432//16172 +f 17434//16174 17435//16175 17343//16083 17342//16082 +f 17345//16085 17434//16174 17342//16082 17315//16055 +f 17436//16176 17437//16177 17438//16178 17439//16179 +f 17431//16171 17436//16176 17439//16179 17432//16172 +f 17436//16176 17431//16171 17422//16162 17440//16180 +f 17437//16177 17436//16176 17440//16180 17441//16181 +f 17442//16182 17443//16183 17444//16184 17445//16185 +f 17435//16175 17442//16182 17445//16185 17343//16083 +f 17442//16182 17435//16175 17432//16172 17439//16179 +f 17443//16183 17442//16182 17439//16179 17438//16178 +f 17446//16186 17447//16187 17448//16188 17449//16189 +f 17341//16081 17446//16186 17449//16189 17305//16045 +f 17446//16186 17341//16081 17343//16083 17445//16185 +f 17447//16187 17446//16186 17445//16185 17444//16184 +f 17450//16190 17303//16043 17305//16045 17449//16189 +f 17451//16191 17450//16190 17449//16189 17448//16188 +f 17450//16190 17451//16191 17301//16041 17300//16040 +f 17303//16043 17450//16190 17300//16040 17283//16023 +f 17452//16192 17453//16193 17448//16188 17447//16187 +f 17454//16194 17452//16192 17447//16187 17444//16184 +f 17452//16192 17454//16194 17455//16195 17456//16196 +f 17453//16193 17452//16192 17456//16196 17457//16197 +f 17458//16198 17308//16048 17297//16037 17299//16039 +f 17459//16199 17458//16198 17299//16039 17301//16041 +f 17458//16198 17459//16199 17460//16200 17461//16201 +f 17308//16048 17458//16198 17461//16201 17309//16049 +f 17462//16202 17459//16199 17301//16041 17451//16191 +f 17453//16193 17462//16202 17451//16191 17448//16188 +f 17462//16202 17453//16193 17457//16197 17463//16203 +f 17459//16199 17462//16202 17463//16203 17460//16200 +f 17464//16204 17465//16205 17466//16206 17467//16207 +f 17454//16194 17464//16204 17467//16207 17455//16195 +f 17464//16204 17454//16194 17444//16184 17443//16183 +f 17465//16205 17464//16204 17443//16183 17438//16178 +f 17468//16208 17469//16209 17311//16051 17310//16050 +f 17470//16210 17468//16208 17310//16050 17309//16049 +f 17468//16208 17470//16210 17471//16211 17472//16212 +f 17469//16209 17468//16208 17472//16212 17473//16213 +f 17474//16214 17475//16215 17473//16213 17472//16212 +f 17476//16216 17474//16214 17472//16212 17471//16211 +f 17474//16214 17476//16216 17477//16217 17478//16218 +f 17475//16215 17474//16214 17478//16218 17479//16219 +f 17480//16220 17481//16221 17482//16222 17483//16223 +f 17470//16210 17480//16220 17483//16223 17471//16211 +f 17480//16220 17470//16210 17309//16049 17461//16201 +f 17481//16221 17480//16220 17461//16201 17460//16200 +f 17484//16224 17485//16225 17479//16219 17478//16218 +f 17486//16226 17484//16224 17478//16218 17477//16217 +f 17484//16224 17486//16226 17487//16227 17488//16228 +f 17485//16225 17484//16224 17488//16228 17489//16229 +f 17490//16230 17491//16231 17489//16229 17488//16228 +f 17492//16232 17490//16230 17488//16228 17487//16227 +f 17490//16230 17492//16232 17493//16233 17494//16234 +f 17491//16231 17490//16230 17494//16234 17495//16235 +f 17496//16236 17497//16237 17498//16238 17499//16239 +f 17476//16216 17496//16236 17499//16239 17477//16217 +f 17496//16236 17476//16216 17471//16211 17483//16223 +f 17497//16237 17496//16236 17483//16223 17482//16222 +f 17500//16240 17501//16241 17502//16242 17503//16243 +f 17486//16226 17500//16240 17503//16243 17487//16227 +f 17500//16240 17486//16226 17477//16217 17499//16239 +f 17501//16241 17500//16240 17499//16239 17498//16238 +f 17504//16244 17492//16232 17487//16227 17503//16243 +f 17505//16245 17504//16244 17503//16243 17502//16242 +f 17504//16244 17505//16245 17506//16246 17507//16247 +f 17492//16232 17504//16244 17507//16247 17493//16233 +f 17508//16248 17509//16249 17510//16250 17511//16251 +f 17501//16241 17508//16248 17511//16251 17502//16242 +f 17508//16248 17501//16241 17498//16238 17512//16252 +f 17509//16249 17508//16248 17512//16252 17513//16253 +f 17514//16254 17505//16245 17502//16242 17511//16251 +f 17515//16255 17514//16254 17511//16251 17510//16250 +f 17514//16254 17515//16255 17516//16256 17517//16257 +f 17505//16245 17514//16254 17517//16257 17506//16246 +f 17518//16258 17519//16259 17495//16235 17494//16234 +f 17520//16260 17518//16258 17494//16234 17493//16233 +f 17518//16258 17520//16260 17521//16261 17522//16262 +f 17519//16259 17518//16258 17522//16262 17523//16263 +f 17524//16264 17525//16265 17523//16263 17522//16262 +f 17526//16266 17524//16264 17522//16262 17521//16261 +f 17524//16264 17526//16266 17527//16267 17528//16268 +f 17525//16265 17524//16264 17528//16268 17529//16269 +f 17530//16270 17520//16260 17493//16233 17507//16247 +f 17531//16271 17530//16270 17507//16247 17506//16246 +f 17530//16270 17531//16271 17532//16272 17533//16273 +f 17520//16260 17530//16270 17533//16273 17521//16261 +f 17534//16274 17535//16275 17529//16269 17528//16268 +f 17536//16276 17534//16274 17528//16268 17527//16267 +f 17534//16274 17536//16276 17537//16277 17538//16278 +f 17535//16275 17534//16274 17538//16278 17539//16279 +f 17540//16280 17526//16266 17521//16261 17533//16273 +f 17541//16281 17540//16280 17533//16273 17532//16272 +f 17540//16280 17541//16281 17542//16282 17543//16283 +f 17526//16266 17540//16280 17543//16283 17527//16267 +f 17544//16284 17545//16285 17539//16279 17538//16278 +f 17546//16286 17544//16284 17538//16278 17537//16277 +f 17544//16284 17546//16286 17547//16287 17548//16288 +f 17545//16285 17544//16284 17548//16288 17549//16289 +f 17550//16290 17536//16276 17527//16267 17543//16283 +f 17551//16291 17550//16290 17543//16283 17542//16282 +f 17550//16290 17551//16291 17552//16292 17553//16293 +f 17536//16276 17550//16290 17553//16293 17537//16277 +f 17554//16294 17555//16295 17556//16296 17557//16297 +f 17548//16288 17554//16294 17557//16297 17549//16289 +f 17554//16294 17548//16288 17547//16287 17558//16298 +f 17555//16295 17554//16294 17558//16298 17559//16299 +f 17560//16300 17561//16301 17562//16302 17563//16303 +f 17546//16286 17560//16300 17563//16303 17547//16287 +f 17560//16300 17546//16286 17537//16277 17553//16293 +f 17561//16301 17560//16300 17553//16293 17552//16292 +f 17564//16304 17565//16305 17559//16299 17558//16298 +f 17563//16303 17564//16304 17558//16298 17547//16287 +f 17564//16304 17563//16303 17562//16302 17566//16306 +f 17565//16305 17564//16304 17566//16306 17567//16307 +f 17568//16308 17569//16309 17570//16310 17571//16311 +f 17555//16295 17568//16308 17571//16311 17556//16296 +f 17568//16308 17555//16295 17559//16299 17572//16312 +f 17569//16309 17568//16308 17572//16312 17573//16313 +f 17574//16314 17193//15933 17194//15934 17575//16315 +f 17569//16309 17574//16314 17575//16315 17570//16310 +f 17574//16314 17569//16309 17573//16313 17576//16316 +f 17193//15933 17574//16314 17576//16316 17195//15935 +f 17577//16317 17578//16318 17195//15935 17576//16316 +f 17579//16319 17577//16317 17576//16316 17573//16313 +f 17577//16317 17579//16319 17580//16320 17581//16321 +f 17578//16318 17577//16317 17581//16321 17582//16322 +f 17583//16323 17584//16324 17567//16307 17566//16306 +f 17585//16325 17583//16323 17566//16306 17562//16302 +f 17583//16323 17585//16325 17586//16326 17587//16327 +f 17584//16324 17583//16323 17587//16327 17588//16328 +f 17589//16329 17590//16330 17586//16326 17585//16325 +f 17561//16301 17589//16329 17585//16325 17562//16302 +f 17589//16329 17561//16301 17552//16292 17591//16331 +f 17590//16330 17589//16329 17591//16331 17592//16332 +f 17593//16333 17594//16334 17580//16320 17595//16335 +f 17584//16324 17593//16333 17595//16335 17567//16307 +f 17593//16333 17584//16324 17588//16328 17596//16336 +f 17594//16334 17593//16333 17596//16336 17597//16337 +f 17598//16338 17599//16339 17592//16332 17591//16331 +f 17551//16291 17598//16338 17591//16331 17552//16292 +f 17598//16338 17551//16291 17542//16282 17600//16340 +f 17599//16339 17598//16338 17600//16340 17601//16341 +f 17602//16342 17603//16343 17588//16328 17587//16327 +f 17604//16344 17602//16342 17587//16327 17586//16326 +f 17602//16342 17604//16344 17605//16345 17606//16346 +f 17603//16343 17602//16342 17606//16346 17607//16347 +f 17608//16348 17609//16349 17605//16345 17604//16344 +f 17590//16330 17608//16348 17604//16344 17586//16326 +f 17608//16348 17590//16330 17592//16332 17610//16350 +f 17609//16349 17608//16348 17610//16350 17611//16351 +f 17612//16352 17613//16353 17601//16341 17600//16340 +f 17541//16281 17612//16352 17600//16340 17542//16282 +f 17612//16352 17541//16281 17532//16272 17614//16354 +f 17613//16353 17612//16352 17614//16354 17615//16355 +f 17616//16356 17617//16357 17611//16351 17610//16350 +f 17599//16339 17616//16356 17610//16350 17592//16332 +f 17616//16356 17599//16339 17601//16341 17618//16358 +f 17617//16357 17616//16356 17618//16358 17619//16359 +f 17620//16360 17621//16361 17615//16355 17614//16354 +f 17531//16271 17620//16360 17614//16354 17532//16272 +f 17620//16360 17531//16271 17506//16246 17517//16257 +f 17621//16361 17620//16360 17517//16257 17516//16256 +f 17622//16362 17623//16363 17619//16359 17618//16358 +f 17613//16353 17622//16362 17618//16358 17601//16341 +f 17622//16362 17613//16353 17615//16355 17624//16364 +f 17623//16363 17622//16362 17624//16364 17625//16365 +f 17626//16366 17627//16367 17625//16365 17624//16364 +f 17621//16361 17626//16366 17624//16364 17615//16355 +f 17626//16366 17621//16361 17516//16256 17628//16368 +f 17627//16367 17626//16366 17628//16368 17629//16369 +f 17630//16370 17631//16371 17629//16369 17628//16368 +f 17515//16255 17630//16370 17628//16368 17516//16256 +f 17630//16370 17515//16255 17510//16250 17632//16372 +f 17631//16371 17630//16370 17632//16372 17633//16373 +f 17634//16374 17635//16375 17636//16376 17637//16377 +f 17623//16363 17634//16374 17637//16377 17619//16359 +f 17634//16374 17623//16363 17625//16365 17638//16378 +f 17635//16375 17634//16374 17638//16378 17639//16379 +f 17640//16380 17641//16381 17639//16379 17638//16378 +f 17627//16367 17640//16380 17638//16378 17625//16365 +f 17640//16380 17627//16367 17629//16369 17642//16382 +f 17641//16381 17640//16380 17642//16382 17643//16383 +f 17644//16384 17645//16385 17646//16386 17647//16387 +f 17617//16357 17644//16384 17647//16387 17611//16351 +f 17644//16384 17617//16357 17619//16359 17637//16377 +f 17645//16385 17644//16384 17637//16377 17636//16376 +f 17648//16388 17609//16349 17611//16351 17647//16387 +f 17649//16389 17648//16388 17647//16387 17646//16386 +f 17648//16388 17649//16389 17650//16390 17651//16391 +f 17609//16349 17648//16388 17651//16391 17605//16345 +f 17652//16392 17653//16393 17654//16394 17655//16395 +f 17645//16385 17652//16392 17655//16395 17646//16386 +f 17652//16392 17645//16385 17636//16376 17656//16396 +f 17653//16393 17652//16392 17656//16396 17657//16397 +f 17658//16398 17659//16399 17607//16347 17606//16346 +f 17651//16391 17658//16398 17606//16346 17605//16345 +f 17658//16398 17651//16391 17650//16390 17660//16400 +f 17659//16399 17658//16398 17660//16400 17661//16401 +f 17662//16402 17663//16403 17664//16404 17665//16405 +f 17649//16389 17662//16402 17665//16405 17650//16390 +f 17662//16402 17649//16389 17646//16386 17655//16395 +f 17663//16403 17662//16402 17655//16395 17654//16394 +f 17666//16406 17667//16407 17661//16401 17660//16400 +f 17665//16405 17666//16406 17660//16400 17650//16390 +f 17666//16406 17665//16405 17664//16404 17668//16408 +f 17667//16407 17666//16406 17668//16408 17669//16409 +f 17670//16410 17671//16411 17597//16337 17596//16336 +f 17603//16343 17670//16410 17596//16336 17588//16328 +f 17670//16410 17603//16343 17607//16347 17672//16412 +f 17671//16411 17670//16410 17672//16412 17673//16413 +f 17674//16414 17675//16415 17673//16413 17672//16412 +f 17659//16399 17674//16414 17672//16412 17607//16347 +f 17674//16414 17659//16399 17661//16401 17676//16416 +f 17675//16415 17674//16414 17676//16416 17677//16417 +f 17678//16418 17679//16419 17582//16322 17581//16321 +f 17594//16334 17678//16418 17581//16321 17580//16320 +f 17678//16418 17594//16334 17597//16337 17680//16420 +f 17679//16419 17678//16418 17680//16420 17681//16421 +f 17682//16422 17683//16423 17197//15937 17196//15936 +f 17578//16318 17682//16422 17196//15936 17195//15935 +f 17682//16422 17578//16318 17582//16322 17684//16424 +f 17683//16423 17682//16422 17684//16424 17685//16425 +f 17686//16426 17687//16427 17681//16421 17680//16420 +f 17671//16411 17686//16426 17680//16420 17597//16337 +f 17686//16426 17671//16411 17673//16413 17688//16428 +f 17687//16427 17686//16426 17688//16428 17689//16429 +f 17690//16430 17691//16431 17685//16425 17684//16424 +f 17679//16419 17690//16430 17684//16424 17582//16322 +f 17690//16430 17679//16419 17681//16421 17692//16432 +f 17691//16431 17690//16430 17692//16432 17693//16433 +f 17694//16434 17695//16435 17696//16436 17697//16437 +f 17683//16423 17694//16434 17697//16437 17197//15937 +f 17694//16434 17683//16423 17685//16425 17698//16438 +f 17695//16435 17694//16434 17698//16438 17699//16439 +f 17700//16440 17701//16441 17702//16442 17703//16443 +f 17695//16435 17700//16440 17703//16443 17696//16436 +f 17700//16440 17695//16435 17699//16439 17704//16444 +f 17701//16441 17700//16440 17704//16444 17705//16445 +f 17706//16446 17707//16447 17699//16439 17698//16438 +f 17691//16431 17706//16446 17698//16438 17685//16425 +f 17706//16446 17691//16431 17693//16433 17708//16448 +f 17707//16447 17706//16446 17708//16448 17709//16449 +f 17710//16450 17711//16451 17693//16433 17692//16432 +f 17687//16427 17710//16450 17692//16432 17681//16421 +f 17710//16450 17687//16427 17689//16429 17712//16452 +f 17711//16451 17710//16450 17712//16452 17713//16453 +f 17714//16454 17715//16455 17705//16445 17704//16444 +f 17707//16447 17714//16454 17704//16444 17699//16439 +f 17714//16454 17707//16447 17709//16449 17716//16456 +f 17715//16455 17714//16454 17716//16456 17717//16457 +f 17718//16458 17719//16459 17709//16449 17708//16448 +f 17711//16451 17718//16458 17708//16448 17693//16433 +f 17718//16458 17711//16451 17713//16453 17720//16460 +f 17719//16459 17718//16458 17720//16460 17721//16461 +f 17722//16462 17723//16463 17717//16457 17716//16456 +f 17719//16459 17722//16462 17716//16456 17709//16449 +f 17722//16462 17719//16459 17721//16461 17724//16464 +f 17723//16463 17722//16462 17724//16464 17725//16465 +f 17726//16466 17727//16467 17713//16453 17712//16452 +f 17728//16468 17726//16466 17712//16452 17689//16429 +f 17726//16466 17728//16468 17729//16469 17730//16470 +f 17727//16467 17726//16466 17730//16470 17731//16471 +f 17732//16472 17733//16473 17725//16465 17724//16464 +f 17734//16474 17732//16472 17724//16464 17721//16461 +f 17732//16472 17734//16474 17735//16475 17736//16476 +f 17733//16473 17732//16472 17736//16476 17737//16477 +f 17738//16478 17734//16474 17721//16461 17720//16460 +f 17727//16467 17738//16478 17720//16460 17713//16453 +f 17738//16478 17727//16467 17731//16471 17739//16479 +f 17734//16474 17738//16478 17739//16479 17735//16475 +f 17740//16480 17741//16481 17737//16477 17736//16476 +f 17742//16482 17740//16480 17736//16476 17735//16475 +f 17740//16480 17742//16482 17743//16483 17744//16484 +f 17741//16481 17740//16480 17744//16484 17745//16485 +f 17746//16486 17742//16482 17735//16475 17739//16479 +f 17747//16487 17746//16486 17739//16479 17731//16471 +f 17746//16486 17747//16487 17748//16488 17749//16489 +f 17742//16482 17746//16486 17749//16489 17743//16483 +f 17750//16490 17751//16491 17745//16485 17744//16484 +f 17752//16492 17750//16490 17744//16484 17743//16483 +f 17750//16490 17752//16492 17753//16493 17754//16494 +f 17751//16491 17750//16490 17754//16494 17755//16495 +f 17756//16496 17757//16497 17755//16495 17754//16494 +f 17758//16498 17756//16496 17754//16494 17753//16493 +f 17756//16496 17758//16498 17759//16499 17760//16500 +f 17757//16497 17756//16496 17760//16500 17761//16501 +f 17762//16502 17763//16503 17764//16504 17765//16505 +f 17752//16492 17762//16502 17765//16505 17753//16493 +f 17762//16502 17752//16492 17743//16483 17749//16489 +f 17763//16503 17762//16502 17749//16489 17748//16488 +f 17766//16506 17758//16498 17753//16493 17765//16505 +f 17767//16507 17766//16506 17765//16505 17764//16504 +f 17766//16506 17767//16507 17768//16508 17769//16509 +f 17758//16498 17766//16506 17769//16509 17759//16499 +f 17770//16510 17771//16511 17759//16499 17769//16509 +f 17772//16512 17770//16510 17769//16509 17768//16508 +f 17770//16510 17772//16512 17773//16513 17774//16514 +f 17771//16511 17770//16510 17774//16514 17775//16515 +f 17776//16516 17777//16517 17778//16518 17779//16519 +f 17767//16507 17776//16516 17779//16519 17768//16508 +f 17776//16516 17767//16507 17764//16504 17780//16520 +f 17777//16517 17776//16516 17780//16520 17781//16521 +f 17782//16522 17783//16523 17784//16524 17785//16525 +f 17772//16512 17782//16522 17785//16525 17773//16513 +f 17782//16522 17772//16512 17768//16508 17779//16519 +f 17783//16523 17782//16522 17779//16519 17778//16518 +f 17786//16526 17787//16527 17781//16521 17780//16520 +f 17763//16503 17786//16526 17780//16520 17764//16504 +f 17786//16526 17763//16503 17748//16488 17788//16528 +f 17787//16527 17786//16526 17788//16528 17789//16529 +f 17790//16530 17791//16531 17789//16529 17788//16528 +f 17747//16487 17790//16530 17788//16528 17748//16488 +f 17790//16530 17747//16487 17731//16471 17730//16470 +f 17791//16531 17790//16530 17730//16470 17729//16469 +f 17792//16532 17793//16533 17794//16534 17795//16535 +f 17777//16517 17792//16532 17795//16535 17778//16518 +f 17792//16532 17777//16517 17781//16521 17796//16536 +f 17793//16533 17792//16532 17796//16536 17797//16537 +f 17798//16538 17799//16539 17797//16537 17796//16536 +f 17787//16527 17798//16538 17796//16536 17781//16521 +f 17798//16538 17787//16527 17789//16529 17800//16540 +f 17799//16539 17798//16538 17800//16540 17801//16541 +f 17802//16542 17803//16543 17801//16541 17800//16540 +f 17791//16531 17802//16542 17800//16540 17789//16529 +f 17802//16542 17791//16531 17729//16469 17804//16544 +f 17803//16543 17802//16542 17804//16544 17677//16417 +f 17805//16545 17675//16415 17677//16417 17804//16544 +f 17728//16468 17805//16545 17804//16544 17729//16469 +f 17805//16545 17728//16468 17689//16429 17688//16428 +f 17675//16415 17805//16545 17688//16428 17673//16413 +f 17806//16546 17803//16543 17677//16417 17676//16416 +f 17667//16407 17806//16546 17676//16416 17661//16401 +f 17806//16546 17667//16407 17669//16409 17807//16547 +f 17803//16543 17806//16546 17807//16547 17801//16541 +f 17808//16548 17799//16539 17801//16541 17807//16547 +f 17809//16549 17808//16548 17807//16547 17669//16409 +f 17808//16548 17809//16549 17810//16550 17811//16551 +f 17799//16539 17808//16548 17811//16551 17797//16537 +f 17812//16552 17809//16549 17669//16409 17668//16408 +f 17813//16553 17812//16552 17668//16408 17664//16404 +f 17812//16552 17813//16553 17814//16554 17815//16555 +f 17809//16549 17812//16552 17815//16555 17810//16550 +f 17816//16556 17817//16557 17814//16554 17813//16553 +f 17663//16403 17816//16556 17813//16553 17664//16404 +f 17816//16556 17663//16403 17654//16394 17818//16558 +f 17817//16557 17816//16556 17818//16558 17819//16559 +f 17820//16560 17793//16533 17797//16537 17811//16551 +f 17821//16561 17820//16560 17811//16551 17810//16550 +f 17820//16560 17821//16561 17822//16562 17823//16563 +f 17793//16533 17820//16560 17823//16563 17794//16534 +f 17824//16564 17821//16561 17810//16550 17815//16555 +f 17825//16565 17824//16564 17815//16555 17814//16554 +f 17824//16564 17825//16565 17826//16566 17827//16567 +f 17821//16561 17824//16564 17827//16567 17822//16562 +f 17828//16568 17829//16569 17826//16566 17825//16565 +f 17817//16557 17828//16568 17825//16565 17814//16554 +f 17828//16568 17817//16557 17819//16559 17830//16570 +f 17829//16569 17828//16568 17830//16570 17831//16571 +f 17832//16572 17833//16573 17819//16559 17818//16558 +f 17653//16393 17832//16572 17818//16558 17654//16394 +f 17832//16572 17653//16393 17657//16397 17834//16574 +f 17833//16573 17832//16572 17834//16574 17835//16575 +f 17836//16576 17837//16577 17657//16397 17656//16396 +f 17635//16375 17836//16576 17656//16396 17636//16376 +f 17836//16576 17635//16375 17639//16379 17838//16578 +f 17837//16577 17836//16576 17838//16578 17839//16579 +f 17840//16580 17841//16581 17831//16571 17830//16570 +f 17833//16573 17840//16580 17830//16570 17819//16559 +f 17840//16580 17833//16573 17835//16575 17842//16582 +f 17841//16581 17840//16580 17842//16582 17843//16583 +f 17844//16584 17845//16585 17835//16575 17834//16574 +f 17837//16577 17844//16584 17834//16574 17657//16397 +f 17844//16584 17837//16577 17839//16579 17846//16586 +f 17845//16585 17844//16584 17846//16586 17847//16587 +f 17848//16588 17849//16589 17850//16590 17851//16591 +f 17829//16569 17848//16588 17851//16591 17826//16566 +f 17848//16588 17829//16569 17831//16571 17852//16592 +f 17849//16589 17848//16588 17852//16592 17853//16593 +f 17854//16594 17855//16595 17822//16562 17827//16567 +f 17851//16591 17854//16594 17827//16567 17826//16566 +f 17854//16594 17851//16591 17850//16590 17856//16596 +f 17855//16595 17854//16594 17856//16596 17857//16597 +f 17858//16598 17859//16599 17794//16534 17823//16563 +f 17855//16595 17858//16598 17823//16563 17822//16562 +f 17858//16598 17855//16595 17857//16597 17860//16600 +f 17859//16599 17858//16598 17860//16600 17861//16601 +f 17862//16602 17863//16603 17853//16593 17852//16592 +f 17841//16581 17862//16602 17852//16592 17831//16571 +f 17862//16602 17841//16581 17843//16583 17864//16604 +f 17863//16603 17862//16602 17864//16604 17865//16605 +f 17866//16606 17867//16607 17857//16597 17856//16596 +f 17868//16608 17866//16606 17856//16596 17850//16590 +f 17866//16606 17868//16608 17869//16609 17870//16610 +f 17867//16607 17866//16606 17870//16610 17871//16611 +f 17872//16612 17873//16613 17869//16609 17868//16608 +f 17849//16589 17872//16612 17868//16608 17850//16590 +f 17872//16612 17849//16589 17853//16593 17874//16614 +f 17873//16613 17872//16612 17874//16614 17875//16615 +f 17876//16616 17783//16523 17778//16518 17795//16535 +f 17859//16599 17876//16616 17795//16535 17794//16534 +f 17876//16616 17859//16599 17861//16601 17877//16617 +f 17783//16523 17876//16616 17877//16617 17784//16524 +f 17878//16618 17879//16619 17861//16601 17860//16600 +f 17867//16607 17878//16618 17860//16600 17857//16597 +f 17878//16618 17867//16607 17871//16611 17880//16620 +f 17879//16619 17878//16618 17880//16620 17881//16621 +f 17882//16622 17883//16623 17784//16524 17877//16617 +f 17879//16619 17882//16622 17877//16617 17861//16601 +f 17882//16622 17879//16619 17881//16621 17884//16624 +f 17883//16623 17882//16622 17884//16624 17885//16625 +f 17886//16626 17887//16627 17773//16513 17785//16525 +f 17883//16623 17886//16626 17785//16525 17784//16524 +f 17886//16626 17883//16623 17885//16625 17888//16628 +f 17887//16627 17886//16626 17888//16628 17889//16629 +f 17890//16630 17891//16631 17881//16621 17880//16620 +f 17892//16632 17890//16630 17880//16620 17871//16611 +f 17890//16630 17892//16632 17893//16633 17894//16634 +f 17891//16631 17890//16630 17894//16634 17895//16635 +f 17896//16636 17897//16637 17775//16515 17774//16514 +f 17887//16627 17896//16636 17774//16514 17773//16513 +f 17896//16636 17887//16627 17889//16629 17898//16638 +f 17897//16637 17896//16636 17898//16638 17899//16639 +f 17900//16640 17901//16641 17885//16625 17884//16624 +f 17891//16631 17900//16640 17884//16624 17881//16621 +f 17900//16640 17891//16631 17895//16635 17902//16642 +f 17901//16641 17900//16640 17902//16642 17903//16643 +f 17904//16644 17905//16645 17889//16629 17888//16628 +f 17901//16641 17904//16644 17888//16628 17885//16625 +f 17904//16644 17901//16641 17903//16643 17906//16646 +f 17905//16645 17904//16644 17906//16646 17907//16647 +f 17908//16648 17909//16649 17910//16650 17911//16651 +f 17897//16637 17908//16648 17911//16651 17775//16515 +f 17908//16648 17897//16637 17899//16639 17912//16652 +f 17909//16649 17908//16648 17912//16652 17913//16653 +f 17914//16654 17771//16511 17775//16515 17911//16651 +f 17915//16655 17914//16654 17911//16651 17910//16650 +f 17914//16654 17915//16655 17761//16501 17760//16500 +f 17771//16511 17914//16654 17760//16500 17759//16499 +f 17916//16656 17917//16657 17899//16639 17898//16638 +f 17905//16645 17916//16656 17898//16638 17889//16629 +f 17916//16656 17905//16645 17907//16647 17918//16658 +f 17917//16657 17916//16656 17918//16658 17919//16659 +f 17920//16660 17921//16661 17913//16653 17912//16652 +f 17917//16657 17920//16660 17912//16652 17899//16639 +f 17920//16660 17917//16657 17919//16659 17922//16662 +f 17921//16661 17920//16660 17922//16662 17923//16663 +f 17924//16664 17925//16665 17923//16663 17922//16662 +f 17926//16666 17924//16664 17922//16662 17919//16659 +f 17924//16664 17926//16666 17927//16667 17928//16668 +f 17925//16665 17924//16664 17928//16668 17929//16669 +f 17930//16670 17926//16666 17919//16659 17918//16658 +f 17931//16671 17930//16670 17918//16658 17907//16647 +f 17930//16670 17931//16671 17932//16672 17933//16673 +f 17926//16666 17930//16670 17933//16673 17927//16667 +f 17934//16674 17935//16675 17927//16667 17933//16673 +f 17936//16676 17934//16674 17933//16673 17932//16672 +f 17934//16674 17936//16676 17937//16677 17938//16678 +f 17935//16675 17934//16674 17938//16678 17939//16679 +f 17940//16680 17941//16681 17942//16682 17943//16683 +f 17931//16671 17940//16680 17943//16683 17932//16672 +f 17940//16680 17931//16671 17907//16647 17906//16646 +f 17941//16681 17940//16680 17906//16646 17903//16643 +f 17944//16684 17945//16685 17946//16686 17947//16687 +f 17936//16676 17944//16684 17947//16687 17937//16677 +f 17944//16684 17936//16676 17932//16672 17943//16683 +f 17945//16685 17944//16684 17943//16683 17942//16682 +f 17948//16688 17949//16689 17950//16690 17951//16691 +f 17941//16681 17948//16688 17951//16691 17942//16682 +f 17948//16688 17941//16681 17903//16643 17902//16642 +f 17949//16689 17948//16688 17902//16642 17895//16635 +f 17952//16692 17953//16693 17954//16694 17955//16695 +f 17945//16685 17952//16692 17955//16695 17946//16686 +f 17952//16692 17945//16685 17942//16682 17951//16691 +f 17953//16693 17952//16692 17951//16691 17950//16690 +f 17956//16696 17957//16697 17958//16698 17959//16699 +f 17949//16689 17956//16696 17959//16699 17950//16690 +f 17956//16696 17949//16689 17895//16635 17894//16634 +f 17957//16697 17956//16696 17894//16634 17893//16633 +f 17960//16700 17961//16701 17962//16702 17963//16703 +f 17953//16693 17960//16700 17963//16703 17954//16694 +f 17960//16700 17953//16693 17950//16690 17959//16699 +f 17961//16701 17960//16700 17959//16699 17958//16698 +f 17964//16704 17965//16705 17946//16686 17955//16695 +f 17966//16706 17964//16704 17955//16695 17954//16694 +f 17964//16704 17966//16706 17967//16707 17968//16708 +f 17965//16705 17964//16704 17968//16708 17969//16709 +f 17970//16710 17966//16706 17954//16694 17963//16703 +f 17971//16711 17970//16710 17963//16703 17962//16702 +f 17970//16710 17971//16711 17972//16712 17973//16713 +f 17966//16706 17970//16710 17973//16713 17967//16707 +f 17974//16714 17975//16715 17976//16716 17977//16717 +f 17961//16701 17974//16714 17977//16717 17962//16702 +f 17974//16714 17961//16701 17958//16698 17978//16718 +f 17975//16715 17974//16714 17978//16718 17979//16719 +f 17980//16720 17981//16721 17937//16677 17947//16687 +f 17965//16705 17980//16720 17947//16687 17946//16686 +f 17980//16720 17965//16705 17969//16709 17982//16722 +f 17981//16721 17980//16720 17982//16722 17983//16723 +f 17984//16724 17971//16711 17962//16702 17977//16717 +f 17985//16725 17984//16724 17977//16717 17976//16716 +f 17984//16724 17985//16725 17986//16726 17987//16727 +f 17971//16711 17984//16724 17987//16727 17972//16712 +f 17988//16728 17989//16729 17939//16679 17938//16678 +f 17981//16721 17988//16728 17938//16678 17937//16677 +f 17988//16728 17981//16721 17983//16723 17990//16730 +f 17989//16729 17988//16728 17990//16730 17991//16731 +f 17992//16732 17935//16675 17939//16679 17993//16733 +f 17994//16734 17992//16732 17993//16733 17995//16735 +f 17992//16732 17994//16734 17929//16669 17928//16668 +f 17935//16675 17992//16732 17928//16668 17927//16667 +f 17996//16736 17997//16737 17995//16735 17993//16733 +f 17989//16729 17996//16736 17993//16733 17939//16679 +f 17996//16736 17989//16729 17991//16731 17998//16738 +f 17997//16737 17996//16736 17998//16738 17999//16739 +f 18000//16740 18001//16741 17983//16723 17982//16722 +f 18002//16742 18000//16740 17982//16722 17969//16709 +f 18000//16740 18002//16742 18003//16743 18004//16744 +f 18001//16741 18000//16740 18004//16744 18005//16745 +f 18006//16746 18007//16747 17999//16739 17998//16738 +f 18008//16748 18006//16746 17998//16738 17991//16731 +f 18006//16746 18008//16748 18009//16749 18010//16750 +f 18007//16747 18006//16746 18010//16750 18011//16751 +f 18012//16752 18008//16748 17991//16731 17990//16730 +f 18001//16741 18012//16752 17990//16730 17983//16723 +f 18012//16752 18001//16741 18005//16745 18013//16753 +f 18008//16748 18012//16752 18013//16753 18009//16749 +f 18014//16754 18015//16755 18011//16751 18010//16750 +f 18016//16756 18014//16754 18010//16750 18009//16749 +f 18014//16754 18016//16756 17206//15946 17205//15945 +f 18015//16755 18014//16754 17205//15945 17204//15944 +f 18017//16757 18016//16756 18009//16749 18013//16753 +f 18018//16758 18017//16757 18013//16753 18005//16745 +f 18017//16757 18018//16758 18019//16759 18020//16760 +f 18016//16756 18017//16757 18020//16760 17206//15946 +f 18021//16761 18018//16758 18005//16745 18004//16744 +f 18022//16762 18021//16761 18004//16744 18003//16743 +f 18021//16761 18022//16762 18023//16763 18024//16764 +f 18018//16758 18021//16761 18024//16764 18019//16759 +f 18025//16765 17199//15939 17206//15946 18020//16760 +f 18026//16766 18025//16765 18020//16760 18019//16759 +f 18025//16765 18026//16766 18027//16767 18028//16768 +f 17199//15939 18025//16765 18028//16768 17200//15940 +f 18029//16769 18026//16766 18019//16759 18024//16764 +f 18030//16770 18029//16769 18024//16764 18023//16763 +f 18029//16769 18030//16770 18031//16771 18032//16772 +f 18026//16766 18029//16769 18032//16772 18027//16767 +f 18033//16773 18034//16774 18035//16775 18036//16776 +f 18037//16777 18033//16773 18036//16776 18038//16778 +f 18033//16773 18037//16777 17200//15940 18028//16768 +f 18034//16774 18033//16773 18028//16768 18027//16767 +f 18039//16779 18040//16780 17203//15943 17201//15941 +f 18037//16777 18039//16779 17201//15941 17200//15940 +f 18039//16779 18037//16777 18038//16778 18041//16781 +f 18040//16780 18039//16779 18041//16781 18042//16782 +f 18043//16783 18044//16784 18045//16785 18046//16786 +f 18034//16774 18043//16783 18046//16786 18035//16775 +f 18043//16783 18034//16774 18027//16767 18032//16772 +f 18044//16784 18043//16783 18032//16772 18031//16771 +f 18047//16787 18048//16788 18035//16775 18046//16786 +f 18049//16789 18047//16787 18046//16786 18045//16785 +f 18047//16787 18049//16789 18050//16790 18051//16791 +f 18048//16788 18047//16787 18051//16791 18052//16792 +f 18053//16793 18054//16794 18055//16795 18056//16796 +f 18049//16789 18053//16793 18056//16796 18050//16790 +f 18053//16793 18049//16789 18045//16785 18057//16797 +f 18054//16794 18053//16793 18057//16797 18058//16798 +f 18059//16799 18060//16800 18058//16798 18057//16797 +f 18044//16784 18059//16799 18057//16797 18045//16785 +f 18059//16799 18044//16784 18031//16771 18061//16801 +f 18060//16800 18059//16799 18061//16801 18062//16802 +f 18063//16803 18064//16804 18062//16802 18061//16801 +f 18030//16770 18063//16803 18061//16801 18031//16771 +f 18063//16803 18030//16770 18023//16763 18065//16805 +f 18064//16804 18063//16803 18065//16805 18066//16806 +f 18067//16807 18068//16808 18069//16809 18070//16810 +f 18054//16794 18067//16807 18070//16810 18055//16795 +f 18067//16807 18054//16794 18058//16798 18071//16811 +f 18068//16808 18067//16807 18071//16811 18072//16812 +f 18073//16813 18074//16814 18066//16806 18065//16805 +f 18022//16762 18073//16813 18065//16805 18023//16763 +f 18073//16813 18022//16762 18003//16743 18075//16815 +f 18074//16814 18073//16813 18075//16815 18076//16816 +f 18077//16817 18078//16818 18072//16812 18071//16811 +f 18060//16800 18077//16817 18071//16811 18058//16798 +f 18077//16817 18060//16800 18062//16802 18079//16819 +f 18078//16818 18077//16817 18079//16819 18080//16820 +f 18081//16821 18082//16822 18080//16820 18079//16819 +f 18064//16804 18081//16821 18079//16819 18062//16802 +f 18081//16821 18064//16804 18066//16806 18083//16823 +f 18082//16822 18081//16821 18083//16823 18084//16824 +f 18085//16825 18086//16826 18076//16816 18075//16815 +f 18002//16742 18085//16825 18075//16815 18003//16743 +f 18085//16825 18002//16742 17969//16709 17968//16708 +f 18086//16826 18085//16825 17968//16708 17967//16707 +f 18087//16827 18088//16828 18084//16824 18083//16823 +f 18074//16814 18087//16827 18083//16823 18066//16806 +f 18087//16827 18074//16814 18076//16816 18089//16829 +f 18088//16828 18087//16827 18089//16829 18090//16830 +f 18091//16831 18092//16832 18090//16830 18089//16829 +f 18086//16826 18091//16831 18089//16829 18076//16816 +f 18091//16831 18086//16826 17967//16707 17973//16713 +f 18092//16832 18091//16831 17973//16713 17972//16712 +f 18093//16833 18094//16834 18095//16835 18096//16836 +f 18082//16822 18093//16833 18096//16836 18080//16820 +f 18093//16833 18082//16822 18084//16824 18097//16837 +f 18094//16834 18093//16833 18097//16837 18098//16838 +f 18099//16839 18100//16840 18101//16841 18102//16842 +f 18092//16832 18099//16839 18102//16842 18090//16830 +f 18099//16839 18092//16832 17972//16712 17987//16727 +f 18100//16840 18099//16839 17987//16727 17986//16726 +f 18103//16843 18104//16844 18098//16838 18097//16837 +f 18088//16828 18103//16843 18097//16837 18084//16824 +f 18103//16843 18088//16828 18090//16830 18102//16842 +f 18104//16844 18103//16843 18102//16842 18101//16841 +f 18105//16845 18106//16846 18101//16841 18100//16840 +f 18107//16847 18105//16845 18100//16840 17986//16726 +f 18105//16845 18107//16847 18108//16848 18109//16849 +f 18106//16846 18105//16845 18109//16849 18110//16850 +f 18111//16851 18112//16852 18098//16838 18104//16844 +f 18106//16846 18111//16851 18104//16844 18101//16841 +f 18111//16851 18106//16846 18110//16850 18113//16853 +f 18112//16852 18111//16851 18113//16853 18114//16854 +f 18115//16855 18116//16856 18095//16835 18094//16834 +f 18112//16852 18115//16855 18094//16834 18098//16838 +f 18115//16855 18112//16852 18114//16854 18117//16857 +f 18116//16856 18115//16855 18117//16857 18118//16858 +f 18119//16859 18078//16818 18080//16820 18096//16836 +f 18120//16860 18119//16859 18096//16836 18095//16835 +f 18119//16859 18120//16860 18121//16861 18122//16862 +f 18078//16818 18119//16859 18122//16862 18072//16812 +f 18123//16863 18124//16864 18121//16861 18120//16860 +f 18116//16856 18123//16863 18120//16860 18095//16835 +f 18123//16863 18116//16856 18118//16858 18125//16865 +f 18124//16864 18123//16863 18125//16865 18126//16866 +f 18127//16867 18068//16808 18072//16812 18122//16862 +f 18128//16868 18127//16867 18122//16862 18121//16861 +f 18127//16867 18128//16868 18129//16869 18130//16870 +f 18068//16808 18127//16867 18130//16870 18069//16809 +f 18131//16871 18132//16872 18129//16869 18128//16868 +f 18124//16864 18131//16871 18128//16868 18121//16861 +f 18131//16871 18124//16864 18126//16866 18133//16873 +f 18132//16872 18131//16871 18133//16873 18134//16874 +f 18135//16875 18136//16876 18118//16858 18117//16857 +f 18137//16877 18135//16875 18117//16857 18114//16854 +f 18135//16875 18137//16877 18138//16878 18139//16879 +f 18136//16876 18135//16875 18139//16879 18140//16880 +f 18141//16881 18142//16882 18069//16809 18130//16870 +f 18143//16883 18141//16881 18130//16870 18129//16869 +f 18141//16881 18143//16883 18144//16884 18145//16885 +f 18142//16882 18141//16881 18145//16885 18146//16886 +f 18147//16887 18148//16888 18126//16866 18125//16865 +f 18136//16876 18147//16887 18125//16865 18118//16858 +f 18147//16887 18136//16876 18140//16880 18149//16889 +f 18148//16888 18147//16887 18149//16889 18150//16890 +f 18151//16891 18152//16892 18144//16884 18143//16883 +f 18132//16872 18151//16891 18143//16883 18129//16869 +f 18151//16891 18132//16872 18134//16874 18153//16893 +f 18152//16892 18151//16891 18153//16893 18154//16894 +f 18155//16895 18156//16896 18134//16874 18133//16873 +f 18148//16888 18155//16895 18133//16873 18126//16866 +f 18155//16895 18148//16888 18150//16890 18157//16897 +f 18156//16896 18155//16895 18157//16897 18158//16898 +f 18159//16899 18160//16900 18055//16795 18070//16810 +f 18142//16882 18159//16899 18070//16810 18069//16809 +f 18159//16899 18142//16882 18146//16886 18161//16901 +f 18160//16900 18159//16899 18161//16901 18162//16902 +f 18163//16903 18164//16904 18050//16790 18056//16796 +f 18160//16900 18163//16903 18056//16796 18055//16795 +f 18163//16903 18160//16900 18162//16902 18165//16905 +f 18164//16904 18163//16903 18165//16905 18166//16906 +f 18167//16907 18168//16908 18146//16886 18145//16885 +f 18169//16909 18167//16907 18145//16885 18144//16884 +f 18167//16907 18169//16909 18170//16910 18171//16911 +f 18168//16908 18167//16907 18171//16911 18172//16912 +f 18173//16913 18174//16914 18170//16910 18169//16909 +f 18152//16892 18173//16913 18169//16909 18144//16884 +f 18173//16913 18152//16892 18154//16894 18175//16915 +f 18174//16914 18173//16913 18175//16915 18176//16916 +f 18177//16917 18178//16918 18162//16902 18161//16901 +f 18168//16908 18177//16917 18161//16901 18146//16886 +f 18177//16917 18168//16908 18172//16912 18179//16919 +f 18178//16918 18177//16917 18179//16919 18180//16920 +f 18181//16921 18182//16922 18176//16916 18175//16915 +f 18183//16923 18181//16921 18175//16915 18154//16894 +f 18181//16921 18183//16923 18184//16924 18185//16925 +f 18182//16922 18181//16921 18185//16925 18186//16926 +f 18187//16927 18188//16928 18166//16906 18165//16905 +f 18178//16918 18187//16927 18165//16905 18162//16902 +f 18187//16927 18178//16918 18180//16920 18189//16929 +f 18188//16928 18187//16927 18189//16929 18190//16930 +f 18191//16931 18192//16932 18052//16792 18051//16791 +f 18164//16904 18191//16931 18051//16791 18050//16790 +f 18191//16931 18164//16904 18166//16906 18193//16933 +f 18192//16932 18191//16931 18193//16933 18194//16934 +f 18195//16935 18196//16936 18194//16934 18193//16933 +f 18188//16928 18195//16935 18193//16933 18166//16906 +f 18195//16935 18188//16928 18190//16930 18197//16937 +f 18196//16936 18195//16935 18197//16937 18198//16938 +f 18199//16939 17208//15948 17215//15955 18200//16940 +f 18196//16936 18199//16939 18200//16940 18194//16934 +f 18199//16939 18196//16936 18198//16938 18201//16941 +f 17208//15948 18199//16939 18201//16941 17209//15949 +f 18202//16942 18203//16943 18204//16944 18205//16945 +f 18192//16932 18202//16942 18205//16945 18052//16792 +f 18202//16942 18192//16932 18194//16934 18200//16940 +f 18203//16943 18202//16942 18200//16940 17215//15955 +f 18206//16946 18207//16947 18208//16948 18209//16949 +f 18203//16943 18206//16946 18209//16949 18204//16944 +f 18206//16946 18203//16943 17215//15955 17214//15954 +f 18207//16947 18206//16946 17214//15954 17213//15953 +f 18210//16950 18211//16951 18186//16926 18185//16925 +f 18212//16952 18210//16950 18185//16925 18184//16924 +f 18210//16950 18212//16952 18213//16953 18214//16954 +f 18211//16951 18210//16950 18214//16954 18215//16955 +f 18216//16956 18156//16896 18158//16898 18217//16957 +f 18183//16923 18216//16956 18217//16957 18184//16924 +f 18216//16956 18183//16923 18154//16894 18153//16893 +f 18156//16896 18216//16956 18153//16893 18134//16874 +f 18218//16958 18212//16952 18184//16924 18217//16957 +f 18219//16959 18218//16958 18217//16957 18158//16898 +f 18218//16958 18219//16959 18220//16960 18221//16961 +f 18212//16952 18218//16958 18221//16961 18213//16953 +f 18222//16962 18219//16959 18158//16898 18157//16897 +f 18223//16963 18222//16962 18157//16897 18150//16890 +f 18222//16962 18223//16963 18224//16964 18225//16965 +f 18219//16959 18222//16962 18225//16965 18220//16960 +f 18226//16966 18227//16967 18215//16955 18214//16954 +f 18228//16968 18226//16966 18214//16954 18213//16953 +f 18226//16966 18228//16968 18229//16969 18230//16970 +f 18227//16967 18226//16966 18230//16970 18231//16971 +f 18232//16972 18228//16968 18213//16953 18221//16961 +f 18233//16973 18232//16972 18221//16961 18220//16960 +f 18232//16972 18233//16973 18234//16974 18235//16975 +f 18228//16968 18232//16972 18235//16975 18229//16969 +f 18236//16976 18237//16977 18231//16971 18230//16970 +f 18238//16978 18236//16976 18230//16970 18229//16969 +f 18236//16976 18238//16978 18239//16979 18240//16980 +f 18237//16977 18236//16976 18240//16980 18241//16981 +f 18242//16982 18238//16978 18229//16969 18235//16975 +f 18243//16983 18242//16982 18235//16975 18234//16974 +f 18242//16982 18243//16983 18244//16984 18245//16985 +f 18238//16978 18242//16982 18245//16985 18239//16979 +f 18246//16986 18247//16987 18248//16988 18249//16989 +f 18233//16973 18246//16986 18249//16989 18234//16974 +f 18246//16986 18233//16973 18220//16960 18225//16965 +f 18247//16987 18246//16986 18225//16965 18224//16964 +f 18250//16990 18251//16991 18252//16992 18253//16993 +f 18243//16983 18250//16990 18253//16993 18244//16984 +f 18250//16990 18243//16983 18234//16974 18249//16989 +f 18251//16991 18250//16990 18249//16989 18248//16988 +f 18254//16994 18255//16995 18241//16981 18240//16980 +f 18256//16996 18254//16994 18240//16980 18239//16979 +f 18254//16994 18256//16996 18257//16997 18258//16998 +f 18255//16995 18254//16994 18258//16998 18259//16999 +f 18260//17000 18256//16996 18239//16979 18245//16985 +f 18261//17001 18260//17000 18245//16985 18244//16984 +f 18260//17000 18261//17001 18262//17002 18263//17003 +f 18256//16996 18260//17000 18263//17003 18257//16997 +f 18264//17004 18265//17005 18259//16999 18258//16998 +f 18266//17006 18264//17004 18258//16998 18257//16997 +f 18264//17004 18266//17006 18267//17007 18268//17008 +f 18265//17005 18264//17004 18268//17008 18269//17009 +f 18270//17010 18266//17006 18257//16997 18263//17003 +f 18271//17011 18270//17010 18263//17003 18262//17002 +f 18270//17010 18271//17011 18272//17012 18273//17013 +f 18266//17006 18270//17010 18273//17013 18267//17007 +f 18274//17014 18275//17015 18276//17016 18277//17017 +f 18261//17001 18274//17014 18277//17017 18262//17002 +f 18274//17014 18261//17001 18244//16984 18253//16993 +f 18275//17015 18274//17014 18253//16993 18252//16992 +f 18278//17018 18279//17019 18280//17020 18281//17021 +f 18271//17011 18278//17018 18281//17021 18272//17012 +f 18278//17018 18271//17011 18262//17002 18277//17017 +f 18279//17019 18278//17018 18277//17017 18276//17016 +f 18282//17022 18283//17023 18269//17009 18268//17008 +f 18284//17024 18282//17022 18268//17008 18267//17007 +f 18282//17022 18284//17024 18285//17025 18286//17026 +f 18283//17023 18282//17022 18286//17026 18287//17027 +f 18288//17028 18284//17024 18267//17007 18273//17013 +f 18289//17029 18288//17028 18273//17013 18272//17012 +f 18288//17028 18289//17029 18290//17030 18291//17031 +f 18284//17024 18288//17028 18291//17031 18285//17025 +f 18292//17032 18293//17033 18287//17027 18286//17026 +f 18294//17034 18292//17032 18286//17026 18285//17025 +f 18292//17032 18294//17034 18295//17035 18296//17036 +f 18293//17033 18292//17032 18296//17036 18297//17037 +f 18298//17038 18299//17039 18300//17040 18301//17041 +f 18296//17036 18298//17038 18301//17041 18297//17037 +f 18298//17038 18296//17036 18295//17035 18302//17042 +f 18299//17039 18298//17038 18302//17042 18303//17043 +f 18304//17044 18305//17045 18306//17046 18307//17047 +f 18294//17034 18304//17044 18307//17047 18295//17035 +f 18304//17044 18294//17034 18285//17025 18291//17031 +f 18305//17045 18304//17044 18291//17031 18290//17030 +f 18308//17048 18309//17049 18303//17043 18302//17042 +f 18307//17047 18308//17048 18302//17042 18295//17035 +f 18308//17048 18307//17047 18306//17046 18310//17050 +f 18309//17049 18308//17048 18310//17050 18311//17051 +f 18312//17052 18313//17053 18314//17054 18315//17055 +f 18299//17039 18312//17052 18315//17055 18300//17040 +f 18312//17052 18299//17039 18303//17043 18316//17056 +f 18313//17053 18312//17052 18316//17056 18317//17057 +f 18318//17058 18319//17059 18320//17060 18321//17061 +f 18305//17045 18318//17058 18321//17061 18306//17046 +f 18318//17058 18305//17045 18290//17030 18322//17062 +f 18319//17059 18318//17058 18322//17062 18323//17063 +f 18324//17064 18325//17065 18326//17066 18327//17067 +f 18313//17053 18324//17064 18327//17067 18314//17054 +f 18324//17064 18313//17053 18317//17057 18328//17068 +f 18325//17065 18324//17064 18328//17068 18329//17069 +f 18330//17070 18331//17071 18317//17057 18316//17056 +f 18309//17049 18330//17070 18316//17056 18303//17043 +f 18330//17070 18309//17049 18311//17051 18332//17072 +f 18331//17071 18330//17070 18332//17072 18333//17073 +f 18334//17074 18335//17075 18311//17051 18310//17050 +f 18321//17061 18334//17074 18310//17050 18306//17046 +f 18334//17074 18321//17061 18320//17060 18336//17076 +f 18335//17075 18334//17074 18336//17076 18337//17077 +f 18338//17078 18339//17079 18340//17080 18341//17081 +f 18325//17065 18338//17078 18341//17081 18326//17066 +f 18338//17078 18325//17065 18329//17069 18342//17082 +f 18339//17079 18338//17078 18342//17082 18343//17083 +f 18344//17084 18345//17085 18329//17069 18328//17068 +f 18331//17071 18344//17084 18328//17068 18317//17057 +f 18344//17084 18331//17071 18333//17073 18346//17086 +f 18345//17085 18344//17084 18346//17086 18347//17087 +f 18348//17088 17184//15924 17185//15925 18349//17089 +f 18339//17079 18348//17088 18349//17089 18340//17080 +f 18348//17088 18339//17079 18343//17083 18350//17090 +f 17184//15924 18348//17088 18350//17090 17186//15926 +f 18351//17091 18352//17092 18343//17083 18342//17082 +f 18345//17085 18351//17091 18342//17082 18329//17069 +f 18351//17091 18345//17085 18347//17087 18353//17093 +f 18352//17092 18351//17091 18353//17093 18354//17094 +f 18355//17095 18356//17096 17186//15926 18350//17090 +f 18352//17092 18355//17095 18350//17090 18343//17083 +f 18355//17095 18352//17092 18354//17094 18357//17097 +f 18356//17096 18355//17095 18357//17097 18358//17098 +f 18359//17099 18360//17100 17188//15928 17187//15927 +f 18356//17096 18359//17099 17187//15927 17186//15926 +f 18359//17099 18356//17096 18358//17098 18361//17101 +f 18360//17100 18359//17099 18361//17101 18362//17102 +f 18363//17103 18364//17104 18354//17094 18353//17093 +f 18365//17105 18363//17103 18353//17093 18347//17087 +f 18363//17103 18365//17105 18366//17106 18367//17107 +f 18364//17104 18363//17103 18367//17107 18368//17108 +f 18369//17109 18370//17110 18371//17111 18372//17112 +f 18365//17105 18369//17109 18372//17112 18366//17106 +f 18369//17109 18365//17105 18347//17087 18346//17086 +f 18370//17110 18369//17109 18346//17086 18333//17073 +f 18373//17113 18374//17114 18368//17108 18367//17107 +f 18375//17115 18373//17113 18367//17107 18366//17106 +f 18373//17113 18375//17115 18376//17116 18377//17117 +f 18374//17114 18373//17113 18377//17117 18378//17118 +f 18379//17119 18375//17115 18366//17106 18372//17112 +f 18380//17120 18379//17119 18372//17112 18371//17111 +f 18379//17119 18380//17120 18381//17121 18382//17122 +f 18375//17115 18379//17119 18382//17122 18376//17116 +f 18383//17123 18384//17124 18385//17125 18386//17126 +f 18374//17114 18383//17123 18386//17126 18368//17108 +f 18383//17123 18374//17114 18378//17118 18387//17127 +f 18384//17124 18383//17123 18387//17127 18388//17128 +f 18389//17129 18390//17130 18388//17128 18387//17127 +f 18391//17131 18389//17129 18387//17127 18378//17118 +f 18389//17129 18391//17131 18392//17132 18393//17133 +f 18390//17130 18389//17129 18393//17133 18394//17134 +f 18395//17135 18391//17131 18378//17118 18377//17117 +f 18396//17136 18395//17135 18377//17117 18376//17116 +f 18395//17135 18396//17136 18397//17137 18398//17138 +f 18391//17131 18395//17135 18398//17138 18392//17132 +f 18399//17139 18400//17140 18401//17141 18402//17142 +f 18403//17143 18399//17139 18402//17142 18404//17144 +f 18399//17139 18403//17143 18394//17134 18393//17133 +f 18400//17140 18399//17139 18393//17133 18392//17132 +f 18405//17145 18406//17146 18407//17147 18408//17148 +f 18396//17136 18405//17145 18408//17148 18397//17137 +f 18405//17145 18396//17136 18376//17116 18382//17122 +f 18406//17146 18405//17145 18382//17122 18381//17121 +f 18409//17149 18400//17140 18392//17132 18398//17138 +f 18410//17150 18409//17149 18398//17138 18397//17137 +f 18409//17149 18410//17150 18411//17151 18412//17152 +f 18400//17140 18409//17149 18412//17152 18401//17141 +f 18413//17153 18410//17150 18397//17137 18408//17148 +f 18414//17154 18413//17153 18408//17148 18407//17147 +f 18413//17153 18414//17154 18415//17155 18416//17156 +f 18410//17150 18413//17153 18416//17156 18411//17151 +f 18417//17157 18418//17158 18419//17159 18420//17160 +f 18406//17146 18417//17157 18420//17160 18407//17147 +f 18417//17157 18406//17146 18381//17121 18421//17161 +f 18418//17158 18417//17157 18421//17161 18422//17162 +f 18423//17163 18424//17164 18425//17165 18426//17166 +f 18414//17154 18423//17163 18426//17166 18415//17155 +f 18423//17163 18414//17154 18407//17147 18420//17160 +f 18424//17164 18423//17163 18420//17160 18419//17159 +f 18427//17167 18428//17168 18411//17151 18416//17156 +f 18429//17169 18427//17167 18416//17156 18415//17155 +f 18427//17167 18429//17169 18430//17170 18431//17171 +f 18428//17168 18427//17167 18431//17171 18432//17172 +f 18433//17173 18434//17174 18422//17162 18421//17161 +f 18380//17120 18433//17173 18421//17161 18381//17121 +f 18433//17173 18380//17120 18371//17111 18435//17175 +f 18434//17174 18433//17173 18435//17175 18337//17077 +f 18436//17176 18437//17177 18401//17141 18412//17152 +f 18428//17168 18436//17176 18412//17152 18411//17151 +f 18436//17176 18428//17168 18432//17172 18438//17178 +f 18437//17177 18436//17176 18438//17178 18439//17179 +f 18440//17180 18441//17181 18404//17144 18402//17142 +f 18437//17177 18440//17180 18402//17142 18401//17141 +f 18440//17180 18437//17177 18439//17179 18442//17182 +f 18441//17181 18440//17180 18442//17182 18443//17183 +f 18444//17184 18445//17185 18446//17186 18447//17187 +f 18429//17169 18444//17184 18447//17187 18430//17170 +f 18444//17184 18429//17169 18415//17155 18426//17166 +f 18445//17185 18444//17184 18426//17166 18425//17165 +f 18448//17188 18449//17189 18432//17172 18431//17171 +f 18450//17190 18448//17188 18431//17171 18430//17170 +f 18448//17188 18450//17190 18451//17191 18452//17192 +f 18449//17189 18448//17188 18452//17192 18453//17193 +f 18454//17194 18450//17190 18430//17170 18447//17187 +f 18455//17195 18454//17194 18447//17187 18446//17186 +f 18454//17194 18455//17195 18456//17196 18457//17197 +f 18450//17190 18454//17194 18457//17197 18451//17191 +f 18458//17198 18459//17199 18439//17179 18438//17178 +f 18449//17189 18458//17198 18438//17178 18432//17172 +f 18458//17198 18449//17189 18453//17193 18460//17200 +f 18459//17199 18458//17198 18460//17200 18461//17201 +f 18462//17202 18463//17203 18464//17204 18465//17205 +f 18441//17181 18462//17202 18465//17205 18404//17144 +f 18462//17202 18441//17181 18443//17183 18466//17206 +f 18463//17203 18462//17202 18466//17206 18467//17207 +f 18468//17208 18403//17143 18404//17144 18465//17205 +f 18469//17209 18468//17208 18465//17205 18464//17204 +f 18468//17208 18469//17209 18470//17210 18471//17211 +f 18403//17143 18468//17208 18471//17211 18394//17134 +f 18472//17212 18473//17213 18443//17183 18442//17182 +f 18459//17199 18472//17212 18442//17182 18439//17179 +f 18472//17212 18459//17199 18461//17201 18474//17214 +f 18473//17213 18472//17212 18474//17214 18475//17215 +f 18476//17216 18477//17217 18475//17215 18474//17214 +f 18478//17218 18476//17216 18474//17214 18461//17201 +f 18476//17216 18478//17218 18479//17219 18480//17220 +f 18477//17217 18476//17216 18480//17220 18481//17221 +f 18482//17222 18478//17218 18461//17201 18460//17200 +f 18483//17223 18482//17222 18460//17200 18453//17193 +f 18482//17222 18483//17223 18484//17224 18485//17225 +f 18478//17218 18482//17222 18485//17225 18479//17219 +f 18486//17226 18487//17227 18488//17228 18489//17229 +f 18483//17223 18486//17226 18489//17229 18484//17224 +f 18486//17226 18483//17223 18453//17193 18452//17192 +f 18487//17227 18486//17226 18452//17192 18451//17191 +f 18490//17230 18491//17231 18479//17219 18485//17225 +f 18492//17232 18490//17230 18485//17225 18484//17224 +f 18490//17230 18492//17232 18493//17233 18494//17234 +f 18491//17231 18490//17230 18494//17234 18495//17235 +f 18496//17236 18497//17237 18498//17238 18499//17239 +f 18487//17227 18496//17236 18499//17239 18488//17228 +f 18496//17236 18487//17227 18451//17191 18457//17197 +f 18497//17237 18496//17236 18457//17197 18456//17196 +f 18500//17240 18492//17232 18484//17224 18489//17229 +f 18501//17241 18500//17240 18489//17229 18488//17228 +f 18500//17240 18501//17241 18502//17242 18503//17243 +f 18492//17232 18500//17240 18503//17243 18493//17233 +f 18504//17244 18501//17241 18488//17228 18499//17239 +f 18505//17245 18504//17244 18499//17239 18498//17238 +f 18504//17244 18505//17245 18506//17246 18507//17247 +f 18501//17241 18504//17244 18507//17247 18502//17242 +f 18508//17248 18509//17249 18510//17250 18511//17251 +f 18497//17237 18508//17248 18511//17251 18498//17238 +f 18508//17248 18497//17237 18456//17196 18512//17252 +f 18509//17249 18508//17248 18512//17252 18513//17253 +f 18514//17254 18515//17255 18516//17256 18517//17257 +f 18505//17245 18514//17254 18517//17257 18506//17246 +f 18514//17254 18505//17245 18498//17238 18511//17251 +f 18515//17255 18514//17254 18511//17251 18510//17250 +f 18518//17258 18519//17259 18502//17242 18507//17247 +f 18520//17260 18518//17258 18507//17247 18506//17246 +f 18518//17258 18520//17260 18521//17261 18522//17262 +f 18519//17259 18518//17258 18522//17262 18523//17263 +f 18524//17264 18525//17265 18513//17253 18512//17252 +f 18455//17195 18524//17264 18512//17252 18456//17196 +f 18524//17264 18455//17195 18446//17186 18526//17266 +f 18525//17265 18524//17264 18526//17266 18527//17267 +f 18528//17268 18529//17269 18493//17233 18503//17243 +f 18519//17259 18528//17268 18503//17243 18502//17242 +f 18528//17268 18519//17259 18523//17263 18530//17270 +f 18529//17269 18528//17268 18530//17270 18531//17271 +f 18532//17272 18533//17273 18527//17267 18526//17266 +f 18445//17185 18532//17272 18526//17266 18446//17186 +f 18532//17272 18445//17185 18425//17165 18534//17274 +f 18533//17273 18532//17272 18534//17274 18535//17275 +f 18536//17276 18537//17277 18510//17250 18509//17249 +f 18538//17278 18536//17276 18509//17249 18513//17253 +f 18536//17276 18538//17278 18539//17279 18540//17280 +f 18537//17277 18536//17276 18540//17280 18541//17281 +f 18542//17282 18543//17283 18535//17275 18534//17274 +f 18424//17164 18542//17282 18534//17274 18425//17165 +f 18542//17282 18424//17164 18419//17159 18544//17284 +f 18543//17283 18542//17282 18544//17284 18545//17285 +f 18546//17286 18538//17278 18513//17253 18525//17265 +f 18547//17287 18546//17286 18525//17265 18527//17267 +f 18546//17286 18547//17287 18548//17288 18549//17289 +f 18538//17278 18546//17286 18549//17289 18539//17279 +f 18550//17290 18547//17287 18527//17267 18533//17273 +f 18551//17291 18550//17290 18533//17273 18535//17275 +f 18550//17290 18551//17291 18552//17292 18553//17293 +f 18547//17287 18550//17290 18553//17293 18548//17288 +f 18554//17294 18555//17295 18545//17285 18544//17284 +f 18418//17158 18554//17294 18544//17284 18419//17159 +f 18554//17294 18418//17158 18422//17162 18556//17296 +f 18555//17295 18554//17294 18556//17296 18557//17297 +f 18558//17298 18559//17299 18560//17300 18561//17301 +f 18551//17291 18558//17298 18561//17301 18552//17292 +f 18558//17298 18551//17291 18535//17275 18543//17283 +f 18559//17299 18558//17298 18543//17283 18545//17285 +f 18562//17302 18563//17303 18548//17288 18553//17293 +f 18564//17304 18562//17302 18553//17293 18552//17292 +f 18562//17302 18564//17304 18565//17305 18566//17306 +f 18563//17303 18562//17302 18566//17306 18567//17307 +f 18568//17308 18564//17304 18552//17292 18561//17301 +f 18569//17309 18568//17308 18561//17301 18560//17300 +f 18568//17308 18569//17309 18570//17310 18571//17311 +f 18564//17304 18568//17308 18571//17311 18565//17305 +f 18572//17312 18573//17313 18574//17314 18575//17315 +f 18559//17299 18572//17312 18575//17315 18560//17300 +f 18572//17312 18559//17299 18545//17285 18555//17295 +f 18573//17313 18572//17312 18555//17295 18557//17297 +f 18576//17316 18577//17317 18539//17279 18549//17289 +f 18563//17303 18576//17316 18549//17289 18548//17288 +f 18576//17316 18563//17303 18567//17307 18578//17318 +f 18577//17317 18576//17316 18578//17318 18579//17319 +f 18580//17320 18569//17309 18560//17300 18575//17315 +f 18581//17321 18580//17320 18575//17315 18574//17314 +f 18580//17320 18581//17321 18582//17322 18583//17323 +f 18569//17309 18580//17320 18583//17323 18570//17310 +f 18584//17324 18585//17325 18280//17020 18586//17326 +f 18581//17321 18584//17324 18586//17326 18582//17322 +f 18584//17324 18581//17321 18574//17314 18587//17327 +f 18585//17325 18584//17324 18587//17327 18323//17063 +f 18588//17328 18589//17329 18557//17297 18556//17296 +f 18434//17174 18588//17328 18556//17296 18422//17162 +f 18588//17328 18434//17174 18337//17077 18336//17076 +f 18589//17329 18588//17328 18336//17076 18320//17060 +f 18590//17330 18335//17075 18337//17077 18435//17175 +f 18370//17110 18590//17330 18435//17175 18371//17111 +f 18590//17330 18370//17110 18333//17073 18332//17072 +f 18335//17075 18590//17330 18332//17072 18311//17051 +f 18591//17331 18573//17313 18557//17297 18589//17329 +f 18319//17059 18591//17331 18589//17329 18320//17060 +f 18591//17331 18319//17059 18323//17063 18587//17327 +f 18573//17313 18591//17331 18587//17327 18574//17314 +f 18592//17332 18585//17325 18323//17063 18322//17062 +f 18289//17029 18592//17332 18322//17062 18290//17030 +f 18592//17332 18289//17029 18272//17012 18281//17021 +f 18585//17325 18592//17332 18281//17021 18280//17020 +f 18593//17333 18594//17334 18582//17322 18586//17326 +f 18279//17019 18593//17333 18586//17326 18280//17020 +f 18593//17333 18279//17019 18276//17016 18595//17335 +f 18594//17334 18593//17333 18595//17335 18596//17336 +f 18597//17337 18598//17338 18570//17310 18583//17323 +f 18594//17334 18597//17337 18583//17323 18582//17322 +f 18597//17337 18594//17334 18596//17336 18599//17339 +f 18598//17338 18597//17337 18599//17339 18600//17340 +f 18601//17341 18602//17342 18596//17336 18595//17335 +f 18275//17015 18601//17341 18595//17335 18276//17016 +f 18601//17341 18275//17015 18252//16992 18603//17343 +f 18602//17342 18601//17341 18603//17343 18604//17344 +f 18605//17345 18606//17346 18565//17305 18571//17311 +f 18598//17338 18605//17345 18571//17311 18570//17310 +f 18605//17345 18598//17338 18600//17340 18607//17347 +f 18606//17346 18605//17345 18607//17347 18608//17348 +f 18609//17349 18610//17350 18600//17340 18599//17339 +f 18602//17342 18609//17349 18599//17339 18596//17336 +f 18609//17349 18602//17342 18604//17344 18611//17351 +f 18610//17350 18609//17349 18611//17351 18612//17352 +f 18613//17353 18614//17354 18604//17344 18603//17343 +f 18251//16991 18613//17353 18603//17343 18252//16992 +f 18613//17353 18251//16991 18248//16988 18615//17355 +f 18614//17354 18613//17353 18615//17355 18616//17356 +f 18617//17357 18618//17358 18567//17307 18566//17306 +f 18606//17346 18617//17357 18566//17306 18565//17305 +f 18617//17357 18606//17346 18608//17348 18619//17359 +f 18618//17358 18617//17357 18619//17359 18620//17360 +f 18621//17361 18622//17362 18608//17348 18607//17347 +f 18610//17350 18621//17361 18607//17347 18600//17340 +f 18621//17361 18610//17350 18612//17352 18623//17363 +f 18622//17362 18621//17361 18623//17363 18624//17364 +f 18625//17365 18626//17366 18612//17352 18611//17351 +f 18614//17354 18625//17365 18611//17351 18604//17344 +f 18625//17365 18614//17354 18616//17356 18627//17367 +f 18626//17366 18625//17365 18627//17367 18628//17368 +f 18629//17369 18630//17370 18616//17356 18615//17355 +f 18247//16987 18629//17369 18615//17355 18248//16988 +f 18629//17369 18247//16987 18224//16964 18631//17371 +f 18630//17370 18629//17369 18631//17371 18632//17372 +f 18633//17373 18634//17374 18632//17372 18631//17371 +f 18223//16963 18633//17373 18631//17371 18224//16964 +f 18633//17373 18223//16963 18150//16890 18149//16889 +f 18634//17374 18633//17373 18149//16889 18140//16880 +f 18635//17375 18636//17376 18628//17368 18627//17367 +f 18630//17370 18635//17375 18627//17367 18616//17356 +f 18635//17375 18630//17370 18632//17372 18637//17377 +f 18636//17376 18635//17375 18637//17377 18638//17378 +f 18639//17379 18640//17380 18624//17364 18623//17363 +f 18626//17366 18639//17379 18623//17363 18612//17352 +f 18639//17379 18626//17366 18628//17368 18641//17381 +f 18640//17380 18639//17379 18641//17381 18642//17382 +f 18643//17383 18644//17384 18638//17378 18637//17377 +f 18634//17374 18643//17383 18637//17377 18632//17372 +f 18643//17383 18634//17374 18140//16880 18139//16879 +f 18644//17384 18643//17383 18139//16879 18138//16878 +f 18645//17385 18646//17386 18642//17382 18641//17381 +f 18636//17376 18645//17385 18641//17381 18628//17368 +f 18645//17385 18636//17376 18638//17378 18647//17387 +f 18646//17386 18645//17385 18647//17387 18648//17388 +f 18649//17389 18650//17390 18648//17388 18647//17387 +f 18644//17384 18649//17389 18647//17387 18638//17378 +f 18649//17389 18644//17384 18138//16878 18651//17391 +f 18650//17390 18649//17389 18651//17391 18652//17392 +f 18653//17393 18654//17394 18652//17392 18651//17391 +f 18137//16877 18653//17393 18651//17391 18138//16878 +f 18653//17393 18137//16877 18114//16854 18113//16853 +f 18654//17394 18653//17393 18113//16853 18110//16850 +f 18655//17395 18656//17396 18657//17397 18658//17398 +f 18646//17386 18655//17395 18658//17398 18642//17382 +f 18655//17395 18646//17386 18648//17388 18659//17399 +f 18656//17396 18655//17395 18659//17399 18660//17400 +f 18661//17401 18662//17402 18663//17403 18664//17404 +f 18654//17394 18661//17401 18664//17404 18652//17392 +f 18661//17401 18654//17394 18110//16850 18109//16849 +f 18662//17402 18661//17401 18109//16849 18108//16848 +f 18665//17405 18666//17406 18660//17400 18659//17399 +f 18650//17390 18665//17405 18659//17399 18648//17388 +f 18665//17405 18650//17390 18652//17392 18664//17404 +f 18666//17406 18665//17405 18664//17404 18663//17403 +f 18667//17407 18668//17408 18669//17409 18670//17410 +f 18662//17402 18667//17407 18670//17410 18663//17403 +f 18667//17407 18662//17402 18108//16848 18671//17411 +f 18668//17408 18667//17407 18671//17411 18672//17412 +f 18673//17413 18674//17414 18675//17415 18676//17416 +f 18666//17406 18673//17413 18676//17416 18660//17400 +f 18673//17413 18666//17406 18663//17403 18670//17410 +f 18674//17414 18673//17413 18670//17410 18669//17409 +f 18677//17417 18678//17418 18679//17419 18680//17420 +f 18656//17396 18677//17417 18680//17420 18657//17397 +f 18677//17417 18656//17396 18660//17400 18676//17416 +f 18678//17418 18677//17417 18676//17416 18675//17415 +f 18681//17421 18640//17380 18642//17382 18658//17398 +f 18682//17422 18681//17421 18658//17398 18657//17397 +f 18681//17421 18682//17422 18683//17423 18684//17424 +f 18640//17380 18681//17421 18684//17424 18624//17364 +f 18685//17425 18682//17422 18657//17397 18680//17420 +f 18686//17426 18685//17425 18680//17420 18679//17419 +f 18685//17425 18686//17426 18687//17427 18688//17428 +f 18682//17422 18685//17425 18688//17428 18683//17423 +f 18689//17429 18622//17362 18624//17364 18684//17424 +f 18690//17430 18689//17429 18684//17424 18683//17423 +f 18689//17429 18690//17430 18620//17360 18619//17359 +f 18622//17362 18689//17429 18619//17359 18608//17348 +f 18691//17431 18692//17432 18693//17433 18694//17434 +f 18690//17430 18691//17431 18694//17434 18620//17360 +f 18691//17431 18690//17430 18683//17423 18688//17428 +f 18692//17432 18691//17431 18688//17428 18687//17427 +f 18695//17435 18696//17436 18579//17319 18578//17318 +f 18618//17358 18695//17435 18578//17318 18567//17307 +f 18695//17435 18618//17358 18620//17360 18694//17434 +f 18696//17436 18695//17435 18694//17434 18693//17433 +f 18697//17437 18698//17438 18699//17439 18700//17440 +f 18692//17432 18697//17437 18700//17440 18693//17433 +f 18697//17437 18692//17432 18687//17427 18701//17441 +f 18698//17438 18697//17437 18701//17441 18702//17442 +f 18703//17443 18704//17444 18541//17281 18540//17280 +f 18577//17317 18703//17443 18540//17280 18539//17279 +f 18703//17443 18577//17317 18579//17319 18705//17445 +f 18704//17444 18703//17443 18705//17445 18706//17446 +f 18707//17447 18708//17448 18706//17446 18705//17445 +f 18696//17436 18707//17447 18705//17445 18579//17319 +f 18707//17447 18696//17436 18693//17433 18700//17440 +f 18708//17448 18707//17447 18700//17440 18699//17439 +f 18709//17449 18710//17450 18516//17256 18515//17255 +f 18537//17277 18709//17449 18515//17255 18510//17250 +f 18709//17449 18537//17277 18541//17281 18711//17451 +f 18710//17450 18709//17449 18711//17451 18712//17452 +f 18713//17453 18714//17454 18712//17452 18711//17451 +f 18704//17444 18713//17453 18711//17451 18541//17281 +f 18713//17453 18704//17444 18706//17446 18715//17455 +f 18714//17454 18713//17453 18715//17455 18716//17456 +f 18717//17457 18718//17458 18716//17456 18715//17455 +f 18708//17448 18717//17457 18715//17455 18706//17446 +f 18717//17457 18708//17448 18699//17439 18719//17459 +f 18718//17458 18717//17457 18719//17459 18720//17460 +f 18721//17461 18722//17462 18702//17442 18701//17441 +f 18686//17426 18721//17461 18701//17441 18687//17427 +f 18721//17461 18686//17426 18679//17419 18723//17463 +f 18722//17462 18721//17461 18723//17463 18724//17464 +f 18725//17465 18726//17466 18720//17460 18719//17459 +f 18698//17438 18725//17465 18719//17459 18699//17439 +f 18725//17465 18698//17438 18702//17442 18727//17467 +f 18726//17466 18725//17465 18727//17467 18728//17468 +f 18729//17469 18730//17470 18724//17464 18723//17463 +f 18678//17418 18729//17469 18723//17463 18679//17419 +f 18729//17469 18678//17418 18675//17415 18731//17471 +f 18730//17470 18729//17469 18731//17471 18732//17472 +f 18733//17473 18734//17474 18728//17468 18727//17467 +f 18722//17462 18733//17473 18727//17467 18702//17442 +f 18733//17473 18722//17462 18724//17464 18735//17475 +f 18734//17474 18733//17473 18735//17475 18736//17476 +f 18737//17477 18738//17478 18732//17472 18731//17471 +f 18674//17414 18737//17477 18731//17471 18675//17415 +f 18737//17477 18674//17414 18669//17409 18739//17479 +f 18738//17478 18737//17477 18739//17479 18740//17480 +f 18741//17481 18742//17482 18736//17476 18735//17475 +f 18730//17470 18741//17481 18735//17475 18724//17464 +f 18741//17481 18730//17470 18732//17472 18743//17483 +f 18742//17482 18741//17481 18743//17483 18744//17484 +f 18745//17485 18746//17486 18747//17487 18748//17488 +f 18726//17466 18745//17485 18748//17488 18720//17460 +f 18745//17485 18726//17466 18728//17468 18749//17489 +f 18746//17486 18745//17485 18749//17489 18750//17490 +f 18751//17491 18752//17492 18750//17490 18749//17489 +f 18734//17474 18751//17491 18749//17489 18728//17468 +f 18751//17491 18734//17474 18736//17476 18753//17493 +f 18752//17492 18751//17491 18753//17493 18754//17494 +f 18755//17495 18718//17458 18720//17460 18748//17488 +f 18756//17496 18755//17495 18748//17488 18747//17487 +f 18755//17495 18756//17496 18757//17497 18758//17498 +f 18718//17458 18755//17495 18758//17498 18716//17456 +f 18759//17499 18760//17500 18744//17484 18743//17483 +f 18738//17478 18759//17499 18743//17483 18732//17472 +f 18759//17499 18738//17478 18740//17480 18761//17501 +f 18760//17500 18759//17499 18761//17501 18762//17502 +f 18763//17503 18714//17454 18716//17456 18758//17498 +f 18764//17504 18763//17503 18758//17498 18757//17497 +f 18763//17503 18764//17504 18765//17505 18766//17506 +f 18714//17454 18763//17503 18766//17506 18712//17452 +f 18767//17507 18768//17508 18740//17480 18739//17479 +f 18668//17408 18767//17507 18739//17479 18669//17409 +f 18767//17507 18668//17408 18672//17412 18769//17509 +f 18768//17508 18767//17507 18769//17509 18770//17510 +f 18771//17511 18772//17512 18672//17412 18671//17411 +f 18107//16847 18771//17511 18671//17411 18108//16848 +f 18771//17511 18107//16847 17986//16726 17985//16725 +f 18772//17512 18771//17511 17985//16725 17976//16716 +f 18773//17513 18774//17514 18770//17510 18769//17509 +f 18772//17512 18773//17513 18769//17509 18672//17412 +f 18773//17513 18772//17512 17976//16716 17975//16715 +f 18774//17514 18773//17513 17975//16715 17979//16719 +f 18775//17515 18776//17516 18762//17502 18761//17501 +f 18768//17508 18775//17515 18761//17501 18740//17480 +f 18775//17515 18768//17508 18770//17510 18777//17517 +f 18776//17516 18775//17515 18777//17517 18778//17518 +f 18779//17519 18780//17520 17979//16719 17978//16718 +f 17957//16697 18779//17519 17978//16718 17958//16698 +f 18779//17519 17957//16697 17893//16633 18781//17521 +f 18780//17520 18779//17519 18781//17521 18782//17522 +f 18783//17523 18784//17524 18778//17518 18777//17517 +f 18774//17514 18783//17523 18777//17517 18770//17510 +f 18783//17523 18774//17514 17979//16719 18780//17520 +f 18784//17524 18783//17523 18780//17520 18782//17522 +f 18785//17525 18786//17526 18782//17522 18781//17521 +f 17892//16632 18785//17525 18781//17521 17893//16633 +f 18785//17525 17892//16632 17871//16611 17870//16610 +f 18786//17526 18785//17525 17870//16610 17869//16609 +f 18787//17527 18784//17524 18782//17522 18786//17526 +f 17873//16613 18787//17527 18786//17526 17869//16609 +f 18787//17527 17873//16613 17875//16615 18788//17528 +f 18784//17524 18787//17527 18788//17528 18778//17518 +f 18789//17529 18776//17516 18778//17518 18788//17528 +f 18790//17530 18789//17529 18788//17528 17875//16615 +f 18789//17529 18790//17530 18791//17531 18792//17532 +f 18776//17516 18789//17529 18792//17532 18762//17502 +f 18793//17533 18790//17530 17875//16615 17874//16614 +f 17863//16603 18793//17533 17874//16614 17853//16593 +f 18793//17533 17863//16603 17865//16605 18794//17534 +f 18790//17530 18793//17533 18794//17534 18791//17531 +f 18795//17535 18760//17500 18762//17502 18792//17532 +f 18796//17536 18795//17535 18792//17532 18791//17531 +f 18795//17535 18796//17536 18797//17537 18798//17538 +f 18760//17500 18795//17535 18798//17538 18744//17484 +f 18799//17539 18796//17536 18791//17531 18794//17534 +f 18800//17540 18799//17539 18794//17534 17865//16605 +f 18799//17539 18800//17540 18801//17541 18802//17542 +f 18796//17536 18799//17539 18802//17542 18797//17537 +f 18803//17543 18800//17540 17865//16605 17864//16604 +f 18804//17544 18803//17543 17864//16604 17843//16583 +f 18803//17543 18804//17544 18805//17545 18806//17546 +f 18800//17540 18803//17543 18806//17546 18801//17541 +f 18807//17547 18742//17482 18744//17484 18798//17538 +f 18808//17548 18807//17547 18798//17538 18797//17537 +f 18807//17547 18808//17548 18754//17494 18753//17493 +f 18742//17482 18807//17547 18753//17493 18736//17476 +f 18809//17549 18808//17548 18797//17537 18802//17542 +f 18810//17550 18809//17549 18802//17542 18801//17541 +f 18809//17549 18810//17550 18811//17551 18812//17552 +f 18808//17548 18809//17549 18812//17552 18754//17494 +f 18813//17553 18814//17554 18815//17555 18816//17556 +f 18752//17492 18813//17553 18816//17556 18750//17490 +f 18813//17553 18752//17492 18754//17494 18812//17552 +f 18814//17554 18813//17553 18812//17552 18811//17551 +f 18817//17557 18818//17558 18819//17559 18820//17560 +f 18810//17550 18817//17557 18820//17560 18811//17551 +f 18817//17557 18810//17550 18801//17541 18806//17546 +f 18818//17558 18817//17557 18806//17546 18805//17545 +f 18821//17561 18822//17562 18823//17563 18824//17564 +f 18814//17554 18821//17561 18824//17564 18815//17555 +f 18821//17561 18814//17554 18811//17551 18820//17560 +f 18822//17562 18821//17561 18820//17560 18819//17559 +f 18825//17565 18746//17486 18750//17490 18816//17556 +f 18826//17566 18825//17565 18816//17556 18815//17555 +f 18825//17565 18826//17566 18827//17567 18828//17568 +f 18746//17486 18825//17565 18828//17568 18747//17487 +f 18829//17569 18826//17566 18815//17555 18824//17564 +f 18830//17570 18829//17569 18824//17564 18823//17563 +f 18829//17569 18830//17570 18831//17571 18832//17572 +f 18826//17566 18829//17569 18832//17572 18827//17567 +f 18833//17573 18756//17496 18747//17487 18828//17568 +f 18834//17574 18833//17573 18828//17568 18827//17567 +f 18833//17573 18834//17574 18835//17575 18836//17576 +f 18756//17496 18833//17573 18836//17576 18757//17497 +f 18837//17577 18834//17574 18827//17567 18832//17572 +f 18838//17578 18837//17577 18832//17572 18831//17571 +f 18837//17577 18838//17578 18839//17579 18840//17580 +f 18834//17574 18837//17577 18840//17580 18835//17575 +f 18841//17581 18764//17504 18757//17497 18836//17576 +f 18842//17582 18841//17581 18836//17576 18835//17575 +f 18841//17581 18842//17582 18843//17583 18844//17584 +f 18764//17504 18841//17581 18844//17584 18765//17505 +f 18845//17585 18842//17582 18835//17575 18840//17580 +f 18846//17586 18845//17585 18840//17580 18839//17579 +f 18845//17585 18846//17586 18847//17587 18848//17588 +f 18842//17582 18845//17585 18848//17588 18843//17583 +f 18849//17589 18850//17590 18851//17591 18852//17592 +f 18838//17578 18849//17589 18852//17592 18839//17579 +f 18849//17589 18838//17578 18831//17571 18853//17593 +f 18850//17590 18849//17589 18853//17593 18854//17594 +f 18855//17595 18856//17596 18857//17597 18858//17598 +f 18846//17586 18855//17595 18858//17598 18847//17587 +f 18855//17595 18846//17586 18839//17579 18852//17592 +f 18856//17596 18855//17595 18852//17592 18851//17591 +f 18859//17599 18860//17600 18843//17583 18848//17588 +f 18861//17601 18859//17599 18848//17588 18847//17587 +f 18859//17599 18861//17601 18862//17602 18863//17603 +f 18860//17600 18859//17599 18863//17603 18864//17604 +f 18865//17605 18866//17606 18854//17594 18853//17593 +f 18830//17570 18865//17605 18853//17593 18831//17571 +f 18865//17605 18830//17570 18823//17563 18867//17607 +f 18866//17606 18865//17605 18867//17607 18868//17608 +f 18869//17609 18870//17610 18765//17505 18844//17584 +f 18860//17600 18869//17609 18844//17584 18843//17583 +f 18869//17609 18860//17600 18864//17604 18871//17611 +f 18870//17610 18869//17609 18871//17611 18872//17612 +f 18873//17613 18874//17614 18868//17608 18867//17607 +f 18822//17562 18873//17613 18867//17607 18823//17563 +f 18873//17613 18822//17562 18819//17559 18875//17615 +f 18874//17614 18873//17613 18875//17615 18876//17616 +f 18877//17617 18710//17450 18712//17452 18766//17506 +f 18870//17610 18877//17617 18766//17506 18765//17505 +f 18877//17617 18870//17610 18872//17612 18878//17618 +f 18710//17450 18877//17617 18878//17618 18516//17256 +f 18879//17619 18520//17260 18506//17246 18517//17257 +f 18878//17618 18879//17619 18517//17257 18516//17256 +f 18879//17619 18878//17618 18872//17612 18880//17620 +f 18520//17260 18879//17619 18880//17620 18521//17261 +f 18881//17621 18882//17622 18521//17261 18880//17620 +f 18871//17611 18881//17621 18880//17620 18872//17612 +f 18881//17621 18871//17611 18864//17604 18883//17623 +f 18882//17622 18881//17621 18883//17623 18884//17624 +f 18885//17625 18886//17626 18884//17624 18883//17623 +f 18863//17603 18885//17625 18883//17623 18864//17604 +f 18885//17625 18863//17603 18862//17602 18887//17627 +f 18886//17626 18885//17625 18887//17627 17429//16169 +f 18888//17628 18889//17629 18523//17263 18522//17262 +f 18882//17622 18888//17628 18522//17262 18521//17261 +f 18888//17628 18882//17622 18884//17624 18890//17630 +f 18889//17629 18888//17628 18890//17630 17419//16159 +f 18891//17631 17417//16157 17419//16159 18890//17630 +f 18886//17626 18891//17631 18890//17630 18884//17624 +f 18891//17631 18886//17626 17429//16169 17428//16168 +f 17417//16157 18891//17631 17428//16168 17415//16155 +f 18892//17632 18893//17633 18531//17271 18530//17270 +f 18889//17629 18892//17632 18530//17270 18523//17263 +f 18892//17632 18889//17629 17419//16159 17418//16158 +f 18893//17633 18892//17632 17418//16158 17407//16147 +f 18894//17634 17401//16141 17403//16143 18895//17635 +f 18893//17633 18894//17634 18895//17635 18531//17271 +f 18894//17634 18893//17633 17407//16147 17406//16146 +f 17401//16141 18894//17634 17406//16146 17389//16129 +f 18896//17636 18529//17269 18531//17271 18895//17635 +f 18897//17637 18896//17636 18895//17635 17403//16143 +f 18896//17636 18897//17637 18495//17235 18494//17234 +f 18529//17269 18896//17636 18494//17234 18493//17233 +f 18898//17638 17395//16135 17399//16139 18899//17639 +f 18897//17637 18898//17638 18899//17639 18495//17235 +f 18898//17638 18897//17637 17403//16143 17402//16142 +f 17395//16135 18898//17638 17402//16142 17385//16125 +f 18900//17640 18491//17231 18495//17235 18899//17639 +f 18901//17641 18900//17640 18899//17639 17399//16139 +f 18900//17640 18901//17641 18481//17221 18480//17220 +f 18491//17231 18900//17640 18480//17220 18479//17219 +f 18902//17642 18903//17643 18904//17644 18905//17645 +f 18477//17217 18902//17642 18905//17645 18475//17215 +f 18902//17642 18477//17217 18481//17221 18906//17646 +f 18903//17643 18902//17642 18906//17646 18907//17647 +f 18908//17648 18473//17213 18475//17215 18905//17645 +f 18909//17649 18908//17648 18905//17645 18904//17644 +f 18908//17648 18909//17649 18467//17207 18466//17206 +f 18473//17213 18908//17648 18466//17206 18443//17183 +f 18910//17650 17427//16167 17429//16169 18887//17627 +f 18911//17651 18910//17650 18887//17627 18862//17602 +f 18910//17650 18911//17651 18912//17652 18913//17653 +f 17427//16167 18910//17650 18913//17653 17425//16165 +f 18914//17654 18915//17655 18912//17652 18911//17651 +f 18861//17601 18914//17654 18911//17651 18862//17602 +f 18914//17654 18861//17601 18847//17587 18858//17598 +f 18915//17655 18914//17654 18858//17598 18857//17597 +f 18916//17656 17421//16161 17425//16165 18913//17653 +f 18917//17657 18916//17656 18913//17653 18912//17652 +f 18916//17656 18917//17657 17441//16181 17440//16180 +f 17421//16161 18916//17656 17440//16180 17422//16162 +f 18918//17658 18919//17659 17441//16181 18917//17657 +f 18915//17655 18918//17658 18917//17657 18912//17652 +f 18918//17658 18915//17655 18857//17597 18920//17660 +f 18919//17659 18918//17658 18920//17660 18921//17661 +f 18922//17662 17465//16205 17438//16178 17437//16177 +f 18919//17659 18922//17662 17437//16177 17441//16181 +f 18922//17662 18919//17659 18921//17661 18923//17663 +f 17465//16205 18922//17662 18923//17663 17466//16206 +f 18924//17664 18925//17665 18921//17661 18920//17660 +f 18856//17596 18924//17664 18920//17660 18857//17597 +f 18924//17664 18856//17596 18851//17591 18926//17666 +f 18925//17665 18924//17664 18926//17666 18927//17667 +f 18928//17668 18929//17669 17466//16206 18923//17663 +f 18925//17665 18928//17668 18923//17663 18921//17661 +f 18928//17668 18925//17665 18927//17667 18930//17670 +f 18929//17669 18928//17668 18930//17670 18931//17671 +f 18932//17672 18933//17673 18927//17667 18926//17666 +f 18850//17590 18932//17672 18926//17666 18851//17591 +f 18932//17672 18850//17590 18854//17594 18934//17674 +f 18933//17673 18932//17672 18934//17674 18935//17675 +f 18936//17676 18937//17677 17455//16195 17467//16207 +f 18929//17669 18936//17676 17467//16207 17466//16206 +f 18936//17676 18929//17669 18931//17671 18938//17678 +f 18937//17677 18936//17676 18938//17678 18939//17679 +f 18940//17680 18941//17681 18931//17671 18930//17670 +f 18933//17673 18940//17680 18930//17670 18927//17667 +f 18940//17680 18933//17673 18935//17675 18942//17682 +f 18941//17681 18940//17680 18942//17682 18943//17683 +f 18944//17684 18945//17685 18935//17675 18934//17674 +f 18866//17606 18944//17684 18934//17674 18854//17594 +f 18944//17684 18866//17606 18868//17608 18946//17686 +f 18945//17685 18944//17684 18946//17686 18947//17687 +f 18948//17688 18949//17689 17457//16197 17456//16196 +f 18937//17677 18948//17688 17456//16196 17455//16195 +f 18948//17688 18937//17677 18939//17679 18950//17690 +f 18949//17689 18948//17688 18950//17690 18951//17691 +f 18952//17692 18953//17693 18939//17679 18938//17678 +f 18941//17681 18952//17692 18938//17678 18931//17671 +f 18952//17692 18941//17681 18943//17683 18954//17694 +f 18953//17693 18952//17692 18954//17694 18955//17695 +f 18956//17696 18957//17697 18943//17683 18942//17682 +f 18945//17685 18956//17696 18942//17682 18935//17675 +f 18956//17696 18945//17685 18947//17687 18958//17698 +f 18957//17697 18956//17696 18958//17698 18959//17699 +f 18960//17700 17481//16221 17460//16200 17463//16203 +f 18949//17689 18960//17700 17463//16203 17457//16197 +f 18960//17700 18949//17689 18951//17691 18961//17701 +f 17481//16221 18960//17700 18961//17701 17482//16222 +f 18962//17702 18963//17703 18951//17691 18950//17690 +f 18953//17693 18962//17702 18950//17690 18939//17679 +f 18962//17702 18953//17693 18955//17695 18964//17704 +f 18963//17703 18962//17702 18964//17704 17513//16253 +f 18965//17705 17497//16237 17482//16222 18961//17701 +f 18963//17703 18965//17705 18961//17701 18951//17691 +f 18965//17705 18963//17703 17513//16253 17512//16252 +f 17497//16237 18965//17705 17512//16252 17498//16238 +f 18966//17706 18967//17707 17633//16373 17632//16372 +f 17509//16249 18966//17706 17632//16372 17510//16250 +f 18966//17706 17509//16249 17513//16253 18964//17704 +f 18967//17707 18966//17706 18964//17704 18955//17695 +f 18968//17708 18967//17707 18955//17695 18954//17694 +f 18957//17697 18968//17708 18954//17694 18943//17683 +f 18968//17708 18957//17697 18959//17699 18969//17709 +f 18967//17707 18968//17708 18969//17709 17633//16373 +f 18970//17710 18971//17711 17643//16383 17642//16382 +f 17631//16371 18970//17710 17642//16382 17629//16369 +f 18970//17710 17631//16371 17633//16373 18969//17709 +f 18971//17711 18970//17710 18969//17709 18959//17699 +f 18972//17712 18973//17713 17839//16579 17838//16578 +f 17641//16381 18972//17712 17838//16578 17639//16379 +f 18972//17712 17641//16381 17643//16383 18974//17714 +f 18973//17713 18972//17712 18974//17714 18975//17715 +f 18976//17716 18977//17717 18975//17715 18974//17714 +f 18971//17711 18976//17716 18974//17714 17643//16383 +f 18976//17716 18971//17711 18959//17699 18958//17698 +f 18977//17717 18976//17716 18958//17698 18947//17687 +f 18978//17718 18979//17719 17847//16587 17846//16586 +f 18973//17713 18978//17718 17846//16586 17839//16579 +f 18978//17718 18973//17713 18975//17715 18980//17720 +f 18979//17719 18978//17718 18980//17720 18876//17616 +f 18981//17721 18804//17544 17843//16583 17842//16582 +f 17845//16585 18981//17721 17842//16582 17835//16575 +f 18981//17721 17845//16585 17847//16587 18982//17722 +f 18804//17544 18981//17721 18982//17722 18805//17545 +f 18983//17723 18874//17614 18876//17616 18980//17720 +f 18977//17717 18983//17723 18980//17720 18975//17715 +f 18983//17723 18977//17717 18947//17687 18946//17686 +f 18874//17614 18983//17723 18946//17686 18868//17608 +f 18984//17724 18818//17558 18805//17545 18982//17722 +f 18979//17719 18984//17724 18982//17722 17847//16587 +f 18984//17724 18979//17719 18876//17616 18875//17615 +f 18818//17558 18984//17724 18875//17615 18819//17559 +f 18985//17725 18986//17726 18358//17098 18357//17097 +f 18364//17104 18985//17725 18357//17097 18354//17094 +f 18985//17725 18364//17104 18368//17108 18386//17126 +f 18986//17726 18985//17725 18386//17126 18385//17125 +f 18987//17727 18988//17728 18362//17102 18361//17101 +f 18986//17726 18987//17727 18361//17101 18358//17098 +f 18987//17727 18986//17726 18385//17125 18989//17729 +f 18988//17728 18987//17727 18989//17729 18990//17730 +f 18991//17731 18992//17732 18990//17730 18989//17729 +f 18384//17124 18991//17731 18989//17729 18385//17125 +f 18991//17731 18384//17124 18388//17128 18993//17733 +f 18992//17732 18991//17731 18993//17733 18994//17734 +f 18995//17735 18996//17736 18994//17734 18993//17733 +f 18390//17130 18995//17735 18993//17733 18388//17128 +f 18995//17735 18390//17130 18394//17134 18471//17211 +f 18996//17736 18995//17735 18471//17211 18470//17210 +f 18997//17737 18998//17738 18204//16944 18209//16949 +f 18999//17739 18997//17737 18209//16949 18208//16948 +f 18997//17737 18999//17739 18042//16782 18041//16781 +f 18998//17738 18997//17737 18041//16781 18038//16778 +f 19000//17740 18048//16788 18052//16792 18205//16945 +f 18998//17738 19000//17740 18205//16945 18204//16944 +f 19000//17740 18998//17738 18038//16778 18036//16776 +f 18048//16788 19000//17740 18036//16776 18035//16775 +f 19001//17741 19002//17742 17255//15995 17254//15994 +f 17235//15975 19001//17741 17254//15994 17236//15976 +f 19001//17741 17235//15975 17173//15913 19003//17743 +f 19002//17742 19001//17741 19003//17743 19004//17744 +f 19005//17745 19006//17746 19007//17747 19008//17748 +f 19009//17749 19005//17745 19008//17748 17179//15919 +f 19005//17745 19009//17749 19010//17750 19011//17751 +f 19006//17746 19005//17745 19011//17751 19012//17752 +f 19013//17753 19014//17754 19015//17755 19016//17756 +f 19009//17749 19013//17753 19016//17756 19010//17750 +f 19013//17753 19009//17749 17179//15919 17178//15918 +f 19014//17754 19013//17753 17178//15918 17177//15917 +f 19017//17757 19018//17758 19019//17759 19020//17760 +f 19014//17754 19017//17757 19020//17760 19015//17755 +f 19017//17757 19014//17754 17177//15917 17219//15959 +f 19018//17758 19017//17757 17219//15959 17218//15958 +f 19021//17761 19022//17762 19023//17763 19024//17764 +f 19018//17758 19021//17761 19024//17764 19019//17759 +f 19021//17761 19018//17758 17218//15958 17225//15965 +f 19022//17762 19021//17761 17225//15965 17224//15964 +f 19025//17765 19026//17766 19027//17767 19028//17768 +f 19022//17762 19025//17765 19028//17768 19023//17763 +f 19025//17765 19022//17762 17224//15964 17241//15981 +f 19026//17766 19025//17765 17241//15981 17240//15980 +f 19029//17769 19030//17770 19031//17771 19032//17772 +f 19026//17766 19029//17769 19032//17772 19027//17767 +f 19029//17769 19026//17766 17240//15980 17295//16035 +f 19030//17770 19029//17769 17295//16035 17294//16034 +f 19033//17773 19034//17774 19031//17771 19030//17770 +f 17307//16047 19033//17773 19030//17770 17294//16034 +f 19033//17773 17307//16047 17311//16051 19035//17775 +f 19034//17774 19033//17773 19035//17775 19036//17776 +f 19037//17777 19038//17778 19036//17776 19035//17775 +f 17469//16209 19037//17777 19035//17775 17311//16051 +f 19037//17777 17469//16209 17473//16213 19039//17779 +f 19038//17778 19037//17777 19039//17779 19040//17780 +f 19041//17781 19042//17782 19040//17780 19039//17779 +f 17475//16215 19041//17781 19039//17779 17473//16213 +f 19041//17781 17475//16215 17479//16219 19043//17783 +f 19042//17782 19041//17781 19043//17783 19044//17784 +f 19045//17785 19046//17786 19044//17784 19043//17783 +f 17485//16225 19045//17785 19043//17783 17479//16219 +f 19045//17785 17485//16225 17489//16229 19047//17787 +f 19046//17786 19045//17785 19047//17787 19048//17788 +f 19049//17789 19050//17790 19048//17788 19047//17787 +f 17491//16231 19049//17789 19047//17787 17489//16229 +f 19049//17789 17491//16231 17495//16235 19051//17791 +f 19050//17790 19049//17789 19051//17791 19052//17792 +f 19053//17793 19054//17794 19052//17792 19051//17791 +f 17519//16259 19053//17793 19051//17791 17495//16235 +f 19053//17793 17519//16259 17523//16263 19055//17795 +f 19054//17794 19053//17793 19055//17795 19056//17796 +f 19057//17797 19058//17798 19056//17796 19055//17795 +f 17525//16265 19057//17797 19055//17795 17523//16263 +f 19057//17797 17525//16265 17529//16269 19059//17799 +f 19058//17798 19057//17797 19059//17799 19060//17800 +f 19061//17801 19062//17802 19060//17800 19059//17799 +f 17535//16275 19061//17801 19059//17799 17529//16269 +f 19061//17801 17535//16275 17539//16279 19063//17803 +f 19062//17802 19061//17801 19063//17803 19064//17804 +f 19065//17805 19066//17806 19064//17804 19063//17803 +f 17545//16285 19065//17805 19063//17803 17539//16279 +f 19065//17805 17545//16285 17549//16289 19067//17807 +f 19066//17806 19065//17805 19067//17807 19068//17808 +f 19069//17809 19070//17810 19071//17811 19072//17812 +f 19067//17807 19069//17809 19072//17812 19068//17808 +f 19069//17809 19067//17807 17549//16289 17557//16297 +f 19070//17810 19069//17809 17557//16297 17556//16296 +f 19073//17813 19074//17814 19075//17815 19076//17816 +f 19070//17810 19073//17813 19076//17816 19071//17811 +f 19073//17813 19070//17810 17556//16296 17571//16311 +f 19074//17814 19073//17813 17571//16311 17570//16310 +f 19077//17817 19078//17818 19079//17819 19080//17820 +f 19074//17814 19077//17817 19080//17820 19075//17815 +f 19077//17817 19074//17814 17570//16310 17575//16315 +f 19078//17818 19077//17817 17575//16315 17194//15934 +f 19081//17821 19082//17822 19083//17823 19084//17824 +f 19078//17818 19081//17821 19084//17824 19079//17819 +f 19081//17821 19078//17818 17194//15934 17192//15932 +f 19082//17822 19081//17821 17192//15932 17191//15931 +f 19085//17825 19086//17826 19087//17827 19088//17828 +f 19082//17822 19085//17825 19088//17828 19083//17823 +f 19085//17825 19082//17822 17191//15931 19089//17829 +f 19086//17826 19085//17825 19089//17829 19090//17830 +f 19091//17831 19092//17832 19093//17833 19094//17834 +f 19086//17826 19091//17831 19094//17834 19087//17827 +f 19091//17831 19086//17826 19090//17830 19095//17835 +f 19092//17832 19091//17831 19095//17835 19096//17836 +f 19097//17837 19098//17838 17696//16436 17703//16443 +f 19099//17839 19097//17837 17703//16443 17702//16442 +f 19097//17837 19099//17839 19096//17836 19095//17835 +f 19098//17838 19097//17837 19095//17835 19090//17830 +f 19100//17840 17190//15930 17197//15937 17697//16437 +f 19098//17838 19100//17840 17697//16437 17696//16436 +f 19100//17840 19098//17838 19090//17830 19089//17829 +f 17190//15930 19100//17840 19089//17829 17191//15931 +f 19101//17841 18901//17641 17399//16139 17398//16138 +f 19102//17842 19101//17841 17398//16138 17397//16137 +f 19101//17841 19102//17842 18907//17647 18906//17646 +f 18901//17641 19101//17841 18906//17646 18481//17221 +f 19103//17843 17172//15912 17179//15919 19008//17748 +f 19104//17844 19103//17843 19008//17748 19007//17747 +f 19103//17843 19104//17844 19004//17744 19003//17743 +f 17172//15912 19103//17843 19003//17743 17173//15913 +f 19105//17845 17579//16319 17573//16313 17572//16312 +f 17565//16305 19105//17845 17572//16312 17559//16299 +f 19105//17845 17565//16305 17567//16307 17595//16335 +f 17579//16319 19105//17845 17595//16335 17580//16320 +f 19106//17846 19107//17847 19108//17848 19109//17849 +f 19110//17850 19106//17846 19109//17849 19111//17851 +f 19106//17846 19110//17850 19112//17852 19113//17853 +f 19107//17847 19106//17846 19113//17853 19114//17854 +f 19115//17855 19116//17856 19117//17857 19118//17858 +f 19119//17859 19115//17855 19118//17858 19120//17860 +f 19115//17855 19119//17859 19121//17861 19122//17862 +f 19116//17856 19115//17855 19122//17862 19123//17863 +f 19124//17864 19125//17865 19126//17866 19127//17867 +f 19128//17868 19124//17864 19127//17867 19129//17869 +f 19124//17864 19128//17868 19130//17870 19131//17871 +f 19125//17865 19124//17864 19131//17871 19132//17872 +f 19133//17873 19134//17874 19135//17875 19136//17876 +f 19137//17877 19133//17873 19136//17876 19138//17878 +f 19133//17873 19137//17877 19139//17879 19140//17880 +f 19134//17874 19133//17873 19140//17880 19141//17881 +f 19142//17882 19143//17883 19144//17884 19145//17885 +f 19146//17886 19142//17882 19145//17885 19147//17887 +f 19142//17882 19146//17886 19148//17888 19149//17889 +f 19143//17883 19142//17882 19149//17889 19150//17890 +f 19151//17891 19152//17892 19153//17893 19154//17894 +f 19110//17850 19151//17891 19154//17894 19112//17852 +f 19151//17891 19110//17850 19111//17851 19155//17895 +f 19152//17892 19151//17891 19155//17895 19156//17896 +f 19157//17897 19158//17898 19159//17899 19160//17900 +f 19152//17892 19157//17897 19160//17900 19153//17893 +f 19157//17897 19152//17892 19156//17896 19161//17901 +f 19158//17898 19157//17897 19161//17901 19162//17902 +f 19163//17903 19164//17904 19156//17896 19155//17895 +f 19165//17905 19163//17903 19155//17895 19111//17851 +f 19163//17903 19165//17905 19166//17906 19167//17907 +f 19164//17904 19163//17903 19167//17907 19168//17908 +f 19169//17909 19170//17910 19171//17911 19172//17912 +f 19165//17905 19169//17909 19172//17912 19166//17906 +f 19169//17909 19165//17905 19111//17851 19109//17849 +f 19170//17910 19169//17909 19109//17849 19108//17848 +f 19173//17913 19174//17914 19175//17915 19176//17916 +f 19158//17898 19173//17913 19176//17916 19159//17899 +f 19173//17913 19158//17898 19162//17902 19177//17917 +f 19174//17914 19173//17913 19177//17917 19178//17918 +f 19179//17919 19180//17920 19166//17906 19172//17912 +f 19181//17921 19179//17919 19172//17912 19171//17911 +f 19179//17919 19181//17921 19182//17922 19183//17923 +f 19180//17920 19179//17919 19183//17923 19184//17924 +f 19185//17925 19186//17926 19187//17927 19188//17928 +f 19181//17921 19185//17925 19188//17928 19182//17922 +f 19185//17925 19181//17921 19171//17911 19189//17929 +f 19186//17926 19185//17925 19189//17929 19190//17930 +f 19191//17931 19192//17932 19182//17922 19188//17928 +f 19193//17933 19191//17931 19188//17928 19187//17927 +f 19191//17931 19193//17933 19194//17934 19195//17935 +f 19192//17932 19191//17931 19195//17935 19196//17936 +f 19197//17937 19198//17938 19196//17936 19195//17935 +f 19199//17939 19197//17937 19195//17935 19194//17934 +f 19197//17937 19199//17939 19200//17940 19201//17941 +f 19198//17938 19197//17937 19201//17941 19202//17942 +f 19203//17943 19204//17944 19184//17924 19183//17923 +f 19192//17932 19203//17943 19183//17923 19182//17922 +f 19203//17943 19192//17932 19196//17936 19205//17945 +f 19204//17944 19203//17943 19205//17945 19206//17946 +f 19207//17947 19208//17948 19168//17908 19167//17907 +f 19180//17920 19207//17947 19167//17907 19166//17906 +f 19207//17947 19180//17920 19184//17924 19209//17949 +f 19208//17948 19207//17947 19209//17949 19210//17950 +f 19211//17951 19212//17952 19162//17902 19161//17901 +f 19164//17904 19211//17951 19161//17901 19156//17896 +f 19211//17951 19164//17904 19168//17908 19213//17953 +f 19212//17952 19211//17951 19213//17953 19214//17954 +f 19215//17955 19216//17956 19178//17918 19177//17917 +f 19212//17952 19215//17955 19177//17917 19162//17902 +f 19215//17955 19212//17952 19214//17954 19217//17957 +f 19216//17956 19215//17955 19217//17957 19218//17958 +f 19219//17959 19220//17960 19214//17954 19213//17953 +f 19208//17948 19219//17959 19213//17953 19168//17908 +f 19219//17959 19208//17948 19210//17950 19221//17961 +f 19220//17960 19219//17959 19221//17961 19222//17962 +f 19223//17963 19224//17964 19210//17950 19209//17949 +f 19204//17944 19223//17963 19209//17949 19184//17924 +f 19223//17963 19204//17944 19206//17946 19225//17965 +f 19224//17964 19223//17963 19225//17965 19226//17966 +f 19227//17967 19228//17968 19229//17969 19230//17970 +f 19174//17914 19227//17967 19230//17970 19175//17915 +f 19227//17967 19174//17914 19178//17918 19231//17971 +f 19228//17968 19227//17967 19231//17971 19232//17972 +f 19233//17973 19234//17974 19232//17972 19231//17971 +f 19216//17956 19233//17973 19231//17971 19178//17918 +f 19233//17973 19216//17956 19218//17958 19235//17975 +f 19234//17974 19233//17973 19235//17975 19236//17976 +f 19237//17977 19238//17978 19218//17958 19217//17957 +f 19220//17960 19237//17977 19217//17957 19214//17954 +f 19237//17977 19220//17960 19222//17962 19239//17979 +f 19238//17978 19237//17977 19239//17979 19240//17980 +f 19241//17981 19242//17982 19229//17969 19228//17968 +f 19243//17983 19241//17981 19228//17968 19232//17972 +f 19241//17981 19243//17983 19244//17984 19245//17985 +f 19242//17982 19241//17981 19245//17985 19246//17986 +f 19247//17987 19248//17988 19222//17962 19221//17961 +f 19224//17964 19247//17987 19221//17961 19210//17950 +f 19247//17987 19224//17964 19226//17966 19249//17989 +f 19248//17988 19247//17987 19249//17989 19250//17990 +f 19251//17991 19252//17992 19206//17946 19205//17945 +f 19198//17938 19251//17991 19205//17945 19196//17936 +f 19251//17991 19198//17938 19202//17942 19253//17993 +f 19252//17992 19251//17991 19253//17993 19254//17994 +f 19255//17995 19256//17996 19257//17997 19258//17998 +f 19259//17999 19255//17995 19258//17998 19260//18000 +f 19255//17995 19259//17999 19202//17942 19201//17941 +f 19256//17996 19255//17995 19201//17941 19200//17940 +f 19261//18001 19262//18002 19260//18000 19258//17998 +f 19263//18003 19261//18001 19258//17998 19257//17997 +f 19261//18001 19263//18003 19264//18004 19265//18005 +f 19262//18002 19261//18001 19265//18005 19266//18006 +f 19267//18007 19268//18008 19254//17994 19253//17993 +f 19259//17999 19267//18007 19253//17993 19202//17942 +f 19267//18007 19259//17999 19260//18000 19269//18009 +f 19268//18008 19267//18007 19269//18009 19270//18010 +f 19271//18011 19272//18012 19226//17966 19225//17965 +f 19252//17992 19271//18011 19225//17965 19206//17946 +f 19271//18011 19252//17992 19254//17994 19273//18013 +f 19272//18012 19271//18011 19273//18013 19274//18014 +f 19275//18015 19276//18016 19240//17980 19239//17979 +f 19248//17988 19275//18015 19239//17979 19222//17962 +f 19275//18015 19248//17988 19250//17990 19277//18017 +f 19276//18016 19275//18015 19277//18017 19278//18018 +f 19279//18019 19280//18020 19250//17990 19249//17989 +f 19272//18012 19279//18019 19249//17989 19226//17966 +f 19279//18019 19272//18012 19274//18014 19281//18021 +f 19280//18020 19279//18019 19281//18021 19282//18022 +f 19283//18023 19284//18024 19274//18014 19273//18013 +f 19268//18008 19283//18023 19273//18013 19254//17994 +f 19283//18023 19268//18008 19270//18010 19285//18025 +f 19284//18024 19283//18023 19285//18025 19286//18026 +f 19287//18027 19288//18028 19270//18010 19269//18009 +f 19262//18002 19287//18027 19269//18009 19260//18000 +f 19287//18027 19262//18002 19266//18006 19289//18029 +f 19288//18028 19287//18027 19289//18029 19290//18030 +f 19291//18031 19292//18032 19282//18022 19281//18021 +f 19284//18024 19291//18031 19281//18021 19274//18014 +f 19291//18031 19284//18024 19286//18026 19293//18033 +f 19292//18032 19291//18031 19293//18033 19294//18034 +f 19295//18035 19296//18036 19286//18026 19285//18025 +f 19288//18028 19295//18035 19285//18025 19270//18010 +f 19295//18035 19288//18028 19290//18030 19297//18037 +f 19296//18036 19295//18035 19297//18037 19298//18038 +f 19299//18039 19300//18040 19290//18030 19289//18029 +f 19301//18041 19299//18039 19289//18029 19266//18006 +f 19299//18039 19301//18041 19302//18042 19303//18043 +f 19300//18040 19299//18039 19303//18043 19304//18044 +f 19305//18045 19306//18046 19307//18047 19308//18048 +f 19301//18041 19305//18045 19308//18048 19302//18042 +f 19305//18045 19301//18041 19266//18006 19265//18005 +f 19306//18046 19305//18045 19265//18005 19264//18004 +f 19309//18049 19310//18050 19302//18042 19308//18048 +f 19311//18051 19309//18049 19308//18048 19307//18047 +f 19309//18049 19311//18051 19312//18052 19313//18053 +f 19310//18050 19309//18049 19313//18053 19314//18054 +f 19315//18055 19316//18056 19314//18054 19313//18053 +f 19317//18057 19315//18055 19313//18053 19312//18052 +f 19315//18055 19317//18057 19318//18058 19319//18059 +f 19316//18056 19315//18055 19319//18059 19320//18060 +f 19321//18061 19322//18062 19304//18044 19303//18043 +f 19310//18050 19321//18061 19303//18043 19302//18042 +f 19321//18061 19310//18050 19314//18054 19323//18063 +f 19322//18062 19321//18061 19323//18063 19324//18064 +f 19325//18065 19326//18066 19298//18038 19297//18037 +f 19300//18040 19325//18065 19297//18037 19290//18030 +f 19325//18065 19300//18040 19304//18044 19327//18067 +f 19326//18066 19325//18065 19327//18067 19328//18068 +f 19329//18069 19330//18070 19320//18060 19319//18059 +f 19331//18071 19329//18069 19319//18059 19318//18058 +f 19329//18069 19331//18071 19332//18072 19333//18073 +f 19330//18070 19329//18069 19333//18073 19334//18074 +f 19335//18075 19336//18076 19324//18064 19323//18063 +f 19316//18056 19335//18075 19323//18063 19314//18054 +f 19335//18075 19316//18056 19320//18060 19337//18077 +f 19336//18076 19335//18075 19337//18077 19338//18078 +f 19339//18079 19340//18080 19328//18068 19327//18067 +f 19322//18062 19339//18079 19327//18067 19304//18044 +f 19339//18079 19322//18062 19324//18064 19341//18081 +f 19340//18080 19339//18079 19341//18081 19342//18082 +f 19343//18083 19344//18084 19294//18034 19293//18033 +f 19296//18036 19343//18083 19293//18033 19286//18026 +f 19343//18083 19296//18036 19298//18038 19345//18085 +f 19344//18084 19343//18083 19345//18085 19346//18086 +f 19347//18087 19348//18088 19346//18086 19345//18085 +f 19326//18066 19347//18087 19345//18085 19298//18038 +f 19347//18087 19326//18066 19328//18068 19349//18089 +f 19348//18088 19347//18087 19349//18089 19350//18090 +f 19351//18091 19352//18092 19350//18090 19349//18089 +f 19340//18080 19351//18091 19349//18089 19328//18068 +f 19351//18091 19340//18080 19342//18082 19353//18093 +f 19352//18092 19351//18091 19353//18093 19354//18094 +f 19355//18095 19356//18096 19357//18097 19358//18098 +f 19344//18084 19355//18095 19358//18098 19294//18034 +f 19355//18095 19344//18084 19346//18086 19359//18099 +f 19356//18096 19355//18095 19359//18099 19360//18100 +f 19361//18101 19362//18102 19360//18100 19359//18099 +f 19348//18088 19361//18101 19359//18099 19346//18086 +f 19361//18101 19348//18088 19350//18090 19363//18103 +f 19362//18102 19361//18101 19363//18103 19364//18104 +f 19365//18105 19366//18106 19367//18107 19368//18108 +f 19292//18032 19365//18105 19368//18108 19282//18022 +f 19365//18105 19292//18032 19294//18034 19358//18098 +f 19366//18106 19365//18105 19358//18098 19357//18097 +f 19369//18109 19280//18020 19282//18022 19368//18108 +f 19370//18110 19369//18109 19368//18108 19367//18107 +f 19369//18109 19370//18110 19278//18018 19277//18017 +f 19280//18020 19369//18109 19277//18017 19250//17990 +f 19371//18111 19372//18112 19373//18113 19374//18114 +f 19366//18106 19371//18111 19374//18114 19367//18107 +f 19371//18111 19366//18106 19357//18097 19375//18115 +f 19372//18112 19371//18111 19375//18115 19376//18116 +f 19377//18117 19378//18118 19379//18119 19380//18120 +f 19370//18110 19377//18117 19380//18120 19278//18018 +f 19377//18117 19370//18110 19367//18107 19374//18114 +f 19378//18118 19377//18117 19374//18114 19373//18113 +f 19381//18121 19382//18122 19383//18123 19384//18124 +f 19276//18016 19381//18121 19384//18124 19240//17980 +f 19381//18121 19276//18016 19278//18018 19380//18120 +f 19382//18122 19381//18121 19380//18120 19379//18119 +f 19385//18125 19238//17978 19240//17980 19384//18124 +f 19386//18126 19385//18125 19384//18124 19383//18123 +f 19385//18125 19386//18126 19236//17976 19235//17975 +f 19238//17978 19385//18125 19235//17975 19218//17958 +f 19387//18127 19388//18128 19383//18123 19382//18122 +f 19389//18129 19387//18127 19382//18122 19379//18119 +f 19387//18127 19389//18129 19390//18130 19391//18131 +f 19388//18128 19387//18127 19391//18131 19392//18132 +f 19393//18133 19243//17983 19232//17972 19234//17974 +f 19394//18134 19393//18133 19234//17974 19236//17976 +f 19393//18133 19394//18134 19395//18135 19396//18136 +f 19243//17983 19393//18133 19396//18136 19244//17984 +f 19397//18137 19394//18134 19236//17976 19386//18126 +f 19388//18128 19397//18137 19386//18126 19383//18123 +f 19397//18137 19388//18128 19392//18132 19398//18138 +f 19394//18134 19397//18137 19398//18138 19395//18135 +f 19399//18139 19400//18140 19401//18141 19402//18142 +f 19389//18129 19399//18139 19402//18142 19390//18130 +f 19399//18139 19389//18129 19379//18119 19378//18118 +f 19400//18140 19399//18139 19378//18118 19373//18113 +f 19403//18143 19404//18144 19246//17986 19245//17985 +f 19405//18145 19403//18143 19245//17985 19244//17984 +f 19403//18143 19405//18145 19406//18146 19407//18147 +f 19404//18144 19403//18143 19407//18147 19408//18148 +f 19409//18149 19410//18150 19408//18148 19407//18147 +f 19411//18151 19409//18149 19407//18147 19406//18146 +f 19409//18149 19411//18151 19412//18152 19413//18153 +f 19410//18150 19409//18149 19413//18153 19414//18154 +f 19415//18155 19416//18156 19417//18157 19418//18158 +f 19405//18145 19415//18155 19418//18158 19406//18146 +f 19415//18155 19405//18145 19244//17984 19396//18136 +f 19416//18156 19415//18155 19396//18136 19395//18135 +f 19419//18159 19420//18160 19414//18154 19413//18153 +f 19421//18161 19419//18159 19413//18153 19412//18152 +f 19419//18159 19421//18161 19422//18162 19423//18163 +f 19420//18160 19419//18159 19423//18163 19424//18164 +f 19425//18165 19426//18166 19424//18164 19423//18163 +f 19427//18167 19425//18165 19423//18163 19422//18162 +f 19425//18165 19427//18167 19428//18168 19429//18169 +f 19426//18166 19425//18165 19429//18169 19430//18170 +f 19431//18171 19432//18172 19433//18173 19434//18174 +f 19411//18151 19431//18171 19434//18174 19412//18152 +f 19431//18171 19411//18151 19406//18146 19418//18158 +f 19432//18172 19431//18171 19418//18158 19417//18157 +f 19435//18175 19436//18176 19437//18177 19438//18178 +f 19421//18161 19435//18175 19438//18178 19422//18162 +f 19435//18175 19421//18161 19412//18152 19434//18174 +f 19436//18176 19435//18175 19434//18174 19433//18173 +f 19439//18179 19427//18167 19422//18162 19438//18178 +f 19440//18180 19439//18179 19438//18178 19437//18177 +f 19439//18179 19440//18180 19441//18181 19442//18182 +f 19427//18167 19439//18179 19442//18182 19428//18168 +f 19443//18183 19444//18184 19445//18185 19446//18186 +f 19436//18176 19443//18183 19446//18186 19437//18177 +f 19443//18183 19436//18176 19433//18173 19447//18187 +f 19444//18184 19443//18183 19447//18187 19448//18188 +f 19449//18189 19440//18180 19437//18177 19446//18186 +f 19450//18190 19449//18189 19446//18186 19445//18185 +f 19449//18189 19450//18190 19451//18191 19452//18192 +f 19440//18180 19449//18189 19452//18192 19441//18181 +f 19453//18193 19454//18194 19430//18170 19429//18169 +f 19455//18195 19453//18193 19429//18169 19428//18168 +f 19453//18193 19455//18195 19456//18196 19457//18197 +f 19454//18194 19453//18193 19457//18197 19458//18198 +f 19459//18199 19460//18200 19458//18198 19457//18197 +f 19461//18201 19459//18199 19457//18197 19456//18196 +f 19459//18199 19461//18201 19462//18202 19463//18203 +f 19460//18200 19459//18199 19463//18203 19464//18204 +f 19465//18205 19455//18195 19428//18168 19442//18182 +f 19466//18206 19465//18205 19442//18182 19441//18181 +f 19465//18205 19466//18206 19467//18207 19468//18208 +f 19455//18195 19465//18205 19468//18208 19456//18196 +f 19469//18209 19470//18210 19464//18204 19463//18203 +f 19471//18211 19469//18209 19463//18203 19462//18202 +f 19469//18209 19471//18211 19472//18212 19473//18213 +f 19470//18210 19469//18209 19473//18213 19474//18214 +f 19475//18215 19461//18201 19456//18196 19468//18208 +f 19476//18216 19475//18215 19468//18208 19467//18207 +f 19475//18215 19476//18216 19477//18217 19478//18218 +f 19461//18201 19475//18215 19478//18218 19462//18202 +f 19479//18219 19480//18220 19474//18214 19473//18213 +f 19481//18221 19479//18219 19473//18213 19472//18212 +f 19479//18219 19481//18221 19482//18222 19483//18223 +f 19480//18220 19479//18219 19483//18223 19484//18224 +f 19485//18225 19471//18211 19462//18202 19478//18218 +f 19486//18226 19485//18225 19478//18218 19477//18217 +f 19485//18225 19486//18226 19487//18227 19488//18228 +f 19471//18211 19485//18225 19488//18228 19472//18212 +f 19489//18229 19490//18230 19491//18231 19492//18232 +f 19483//18223 19489//18229 19492//18232 19484//18224 +f 19489//18229 19483//18223 19482//18222 19493//18233 +f 19490//18230 19489//18229 19493//18233 19494//18234 +f 19495//18235 19496//18236 19497//18237 19498//18238 +f 19481//18221 19495//18235 19498//18238 19482//18222 +f 19495//18235 19481//18221 19472//18212 19488//18228 +f 19496//18236 19495//18235 19488//18228 19487//18227 +f 19499//18239 19500//18240 19494//18234 19493//18233 +f 19498//18238 19499//18239 19493//18233 19482//18222 +f 19499//18239 19498//18238 19497//18237 19501//18241 +f 19500//18240 19499//18239 19501//18241 19502//18242 +f 19503//18243 19504//18244 19505//18245 19506//18246 +f 19490//18230 19503//18243 19506//18246 19491//18231 +f 19503//18243 19490//18230 19494//18234 19507//18247 +f 19504//18244 19503//18243 19507//18247 19508//18248 +f 19509//18249 19128//17868 19129//17869 19510//18250 +f 19504//18244 19509//18249 19510//18250 19505//18245 +f 19509//18249 19504//18244 19508//18248 19511//18251 +f 19128//17868 19509//18249 19511//18251 19130//17870 +f 19512//18252 19513//18253 19130//17870 19511//18251 +f 19514//18254 19512//18252 19511//18251 19508//18248 +f 19512//18252 19514//18254 19515//18255 19516//18256 +f 19513//18253 19512//18252 19516//18256 19517//18257 +f 19518//18258 19519//18259 19502//18242 19501//18241 +f 19520//18260 19518//18258 19501//18241 19497//18237 +f 19518//18258 19520//18260 19521//18261 19522//18262 +f 19519//18259 19518//18258 19522//18262 19523//18263 +f 19524//18264 19525//18265 19521//18261 19520//18260 +f 19496//18236 19524//18264 19520//18260 19497//18237 +f 19524//18264 19496//18236 19487//18227 19526//18266 +f 19525//18265 19524//18264 19526//18266 19527//18267 +f 19528//18268 19529//18269 19515//18255 19530//18270 +f 19519//18259 19528//18268 19530//18270 19502//18242 +f 19528//18268 19519//18259 19523//18263 19531//18271 +f 19529//18269 19528//18268 19531//18271 19532//18272 +f 19533//18273 19534//18274 19527//18267 19526//18266 +f 19486//18226 19533//18273 19526//18266 19487//18227 +f 19533//18273 19486//18226 19477//18217 19535//18275 +f 19534//18274 19533//18273 19535//18275 19536//18276 +f 19537//18277 19538//18278 19523//18263 19522//18262 +f 19539//18279 19537//18277 19522//18262 19521//18261 +f 19537//18277 19539//18279 19540//18280 19541//18281 +f 19538//18278 19537//18277 19541//18281 19542//18282 +f 19543//18283 19544//18284 19540//18280 19539//18279 +f 19525//18265 19543//18283 19539//18279 19521//18261 +f 19543//18283 19525//18265 19527//18267 19545//18285 +f 19544//18284 19543//18283 19545//18285 19546//18286 +f 19547//18287 19548//18288 19536//18276 19535//18275 +f 19476//18216 19547//18287 19535//18275 19477//18217 +f 19547//18287 19476//18216 19467//18207 19549//18289 +f 19548//18288 19547//18287 19549//18289 19550//18290 +f 19551//18291 19552//18292 19546//18286 19545//18285 +f 19534//18274 19551//18291 19545//18285 19527//18267 +f 19551//18291 19534//18274 19536//18276 19553//18293 +f 19552//18292 19551//18291 19553//18293 19554//18294 +f 19555//18295 19556//18296 19550//18290 19549//18289 +f 19466//18206 19555//18295 19549//18289 19467//18207 +f 19555//18295 19466//18206 19441//18181 19452//18192 +f 19556//18296 19555//18295 19452//18192 19451//18191 +f 19557//18297 19558//18298 19554//18294 19553//18293 +f 19548//18288 19557//18297 19553//18293 19536//18276 +f 19557//18297 19548//18288 19550//18290 19559//18299 +f 19558//18298 19557//18297 19559//18299 19560//18300 +f 19561//18301 19562//18302 19560//18300 19559//18299 +f 19556//18296 19561//18301 19559//18299 19550//18290 +f 19561//18301 19556//18296 19451//18191 19563//18303 +f 19562//18302 19561//18301 19563//18303 19564//18304 +f 19565//18305 19566//18306 19564//18304 19563//18303 +f 19450//18190 19565//18305 19563//18303 19451//18191 +f 19565//18305 19450//18190 19445//18185 19567//18307 +f 19566//18306 19565//18305 19567//18307 19568//18308 +f 19569//18309 19570//18310 19571//18311 19572//18312 +f 19558//18298 19569//18309 19572//18312 19554//18294 +f 19569//18309 19558//18298 19560//18300 19573//18313 +f 19570//18310 19569//18309 19573//18313 19574//18314 +f 19575//18315 19576//18316 19574//18314 19573//18313 +f 19562//18302 19575//18315 19573//18313 19560//18300 +f 19575//18315 19562//18302 19564//18304 19577//18317 +f 19576//18316 19575//18315 19577//18317 19578//18318 +f 19579//18319 19580//18320 19581//18321 19582//18322 +f 19552//18292 19579//18319 19582//18322 19546//18286 +f 19579//18319 19552//18292 19554//18294 19572//18312 +f 19580//18320 19579//18319 19572//18312 19571//18311 +f 19583//18323 19544//18284 19546//18286 19582//18322 +f 19584//18324 19583//18323 19582//18322 19581//18321 +f 19583//18323 19584//18324 19585//18325 19586//18326 +f 19544//18284 19583//18323 19586//18326 19540//18280 +f 19587//18327 19588//18328 19589//18329 19590//18330 +f 19580//18320 19587//18327 19590//18330 19581//18321 +f 19587//18327 19580//18320 19571//18311 19591//18331 +f 19588//18328 19587//18327 19591//18331 19592//18332 +f 19593//18333 19594//18334 19542//18282 19541//18281 +f 19586//18326 19593//18333 19541//18281 19540//18280 +f 19593//18333 19586//18326 19585//18325 19595//18335 +f 19594//18334 19593//18333 19595//18335 19596//18336 +f 19597//18337 19598//18338 19599//18339 19600//18340 +f 19584//18324 19597//18337 19600//18340 19585//18325 +f 19597//18337 19584//18324 19581//18321 19590//18330 +f 19598//18338 19597//18337 19590//18330 19589//18329 +f 19601//18341 19602//18342 19596//18336 19595//18335 +f 19600//18340 19601//18341 19595//18335 19585//18325 +f 19601//18341 19600//18340 19599//18339 19603//18343 +f 19602//18342 19601//18341 19603//18343 19604//18344 +f 19605//18345 19606//18346 19532//18272 19531//18271 +f 19538//18278 19605//18345 19531//18271 19523//18263 +f 19605//18345 19538//18278 19542//18282 19607//18347 +f 19606//18346 19605//18345 19607//18347 19608//18348 +f 19609//18349 19610//18350 19608//18348 19607//18347 +f 19594//18334 19609//18349 19607//18347 19542//18282 +f 19609//18349 19594//18334 19596//18336 19611//18351 +f 19610//18350 19609//18349 19611//18351 19612//18352 +f 19613//18353 19614//18354 19517//18257 19516//18256 +f 19529//18269 19613//18353 19516//18256 19515//18255 +f 19613//18353 19529//18269 19532//18272 19615//18355 +f 19614//18354 19613//18353 19615//18355 19616//18356 +f 19617//18357 19618//18358 19132//17872 19131//17871 +f 19513//18253 19617//18357 19131//17871 19130//17870 +f 19617//18357 19513//18253 19517//18257 19619//18359 +f 19618//18358 19617//18357 19619//18359 19620//18360 +f 19621//18361 19622//18362 19616//18356 19615//18355 +f 19606//18346 19621//18361 19615//18355 19532//18272 +f 19621//18361 19606//18346 19608//18348 19623//18363 +f 19622//18362 19621//18361 19623//18363 19624//18364 +f 19625//18365 19626//18366 19620//18360 19619//18359 +f 19614//18354 19625//18365 19619//18359 19517//18257 +f 19625//18365 19614//18354 19616//18356 19627//18367 +f 19626//18366 19625//18365 19627//18367 19628//18368 +f 19629//18369 19630//18370 19631//18371 19632//18372 +f 19618//18358 19629//18369 19632//18372 19132//17872 +f 19629//18369 19618//18358 19620//18360 19633//18373 +f 19630//18370 19629//18369 19633//18373 19634//18374 +f 19635//18375 19636//18376 19637//18377 19638//18378 +f 19630//18370 19635//18375 19638//18378 19631//18371 +f 19635//18375 19630//18370 19634//18374 19639//18379 +f 19636//18376 19635//18375 19639//18379 19640//18380 +f 19641//18381 19642//18382 19634//18374 19633//18373 +f 19626//18366 19641//18381 19633//18373 19620//18360 +f 19641//18381 19626//18366 19628//18368 19643//18383 +f 19642//18382 19641//18381 19643//18383 19644//18384 +f 19645//18385 19646//18386 19628//18368 19627//18367 +f 19622//18362 19645//18385 19627//18367 19616//18356 +f 19645//18385 19622//18362 19624//18364 19647//18387 +f 19646//18386 19645//18385 19647//18387 19648//18388 +f 19649//18389 19650//18390 19640//18380 19639//18379 +f 19642//18382 19649//18389 19639//18379 19634//18374 +f 19649//18389 19642//18382 19644//18384 19651//18391 +f 19650//18390 19649//18389 19651//18391 19652//18392 +f 19653//18393 19654//18394 19644//18384 19643//18383 +f 19646//18386 19653//18393 19643//18383 19628//18368 +f 19653//18393 19646//18386 19648//18388 19655//18395 +f 19654//18394 19653//18393 19655//18395 19656//18396 +f 19657//18397 19658//18398 19652//18392 19651//18391 +f 19654//18394 19657//18397 19651//18391 19644//18384 +f 19657//18397 19654//18394 19656//18396 19659//18399 +f 19658//18398 19657//18397 19659//18399 19660//18400 +f 19661//18401 19662//18402 19648//18388 19647//18387 +f 19663//18403 19661//18401 19647//18387 19624//18364 +f 19661//18401 19663//18403 19664//18404 19665//18405 +f 19662//18402 19661//18401 19665//18405 19666//18406 +f 19667//18407 19668//18408 19660//18400 19659//18399 +f 19669//18409 19667//18407 19659//18399 19656//18396 +f 19667//18407 19669//18409 19670//18410 19671//18411 +f 19668//18408 19667//18407 19671//18411 19672//18412 +f 19673//18413 19669//18409 19656//18396 19655//18395 +f 19662//18402 19673//18413 19655//18395 19648//18388 +f 19673//18413 19662//18402 19666//18406 19674//18414 +f 19669//18409 19673//18413 19674//18414 19670//18410 +f 19675//18415 19676//18416 19672//18412 19671//18411 +f 19677//18417 19675//18415 19671//18411 19670//18410 +f 19675//18415 19677//18417 19678//18418 19679//18419 +f 19676//18416 19675//18415 19679//18419 19680//18420 +f 19681//18421 19677//18417 19670//18410 19674//18414 +f 19682//18422 19681//18421 19674//18414 19666//18406 +f 19681//18421 19682//18422 19683//18423 19684//18424 +f 19677//18417 19681//18421 19684//18424 19678//18418 +f 19685//18425 19686//18426 19680//18420 19679//18419 +f 19687//18427 19685//18425 19679//18419 19678//18418 +f 19685//18425 19687//18427 19688//18428 19689//18429 +f 19686//18426 19685//18425 19689//18429 19690//18430 +f 19691//18431 19692//18432 19690//18430 19689//18429 +f 19693//18433 19691//18431 19689//18429 19688//18428 +f 19691//18431 19693//18433 19694//18434 19695//18435 +f 19692//18432 19691//18431 19695//18435 19696//18436 +f 19697//18437 19698//18438 19699//18439 19700//18440 +f 19687//18427 19697//18437 19700//18440 19688//18428 +f 19697//18437 19687//18427 19678//18418 19684//18424 +f 19698//18438 19697//18437 19684//18424 19683//18423 +f 19701//18441 19693//18433 19688//18428 19700//18440 +f 19702//18442 19701//18441 19700//18440 19699//18439 +f 19701//18441 19702//18442 19703//18443 19704//18444 +f 19693//18433 19701//18441 19704//18444 19694//18434 +f 19705//18445 19706//18446 19694//18434 19704//18444 +f 19707//18447 19705//18445 19704//18444 19703//18443 +f 19705//18445 19707//18447 19708//18448 19709//18449 +f 19706//18446 19705//18445 19709//18449 19710//18450 +f 19711//18451 19712//18452 19713//18453 19714//18454 +f 19702//18442 19711//18451 19714//18454 19703//18443 +f 19711//18451 19702//18442 19699//18439 19715//18455 +f 19712//18452 19711//18451 19715//18455 19716//18456 +f 19717//18457 19718//18458 19719//18459 19720//18460 +f 19707//18447 19717//18457 19720//18460 19708//18448 +f 19717//18457 19707//18447 19703//18443 19714//18454 +f 19718//18458 19717//18457 19714//18454 19713//18453 +f 19721//18461 19722//18462 19716//18456 19715//18455 +f 19698//18438 19721//18461 19715//18455 19699//18439 +f 19721//18461 19698//18438 19683//18423 19723//18463 +f 19722//18462 19721//18461 19723//18463 19724//18464 +f 19725//18465 19726//18466 19724//18464 19723//18463 +f 19682//18422 19725//18465 19723//18463 19683//18423 +f 19725//18465 19682//18422 19666//18406 19665//18405 +f 19726//18466 19725//18465 19665//18405 19664//18404 +f 19727//18467 19728//18468 19729//18469 19730//18470 +f 19712//18452 19727//18467 19730//18470 19713//18453 +f 19727//18467 19712//18452 19716//18456 19731//18471 +f 19728//18468 19727//18467 19731//18471 19732//18472 +f 19733//18473 19734//18474 19732//18472 19731//18471 +f 19722//18462 19733//18473 19731//18471 19716//18456 +f 19733//18473 19722//18462 19724//18464 19735//18475 +f 19734//18474 19733//18473 19735//18475 19736//18476 +f 19737//18477 19738//18478 19736//18476 19735//18475 +f 19726//18466 19737//18477 19735//18475 19724//18464 +f 19737//18477 19726//18466 19664//18404 19739//18479 +f 19738//18478 19737//18477 19739//18479 19612//18352 +f 19740//18480 19610//18350 19612//18352 19739//18479 +f 19663//18403 19740//18480 19739//18479 19664//18404 +f 19740//18480 19663//18403 19624//18364 19623//18363 +f 19610//18350 19740//18480 19623//18363 19608//18348 +f 19741//18481 19738//18478 19612//18352 19611//18351 +f 19602//18342 19741//18481 19611//18351 19596//18336 +f 19741//18481 19602//18342 19604//18344 19742//18482 +f 19738//18478 19741//18481 19742//18482 19736//18476 +f 19743//18483 19734//18474 19736//18476 19742//18482 +f 19744//18484 19743//18483 19742//18482 19604//18344 +f 19743//18483 19744//18484 19745//18485 19746//18486 +f 19734//18474 19743//18483 19746//18486 19732//18472 +f 19747//18487 19744//18484 19604//18344 19603//18343 +f 19748//18488 19747//18487 19603//18343 19599//18339 +f 19747//18487 19748//18488 19749//18489 19750//18490 +f 19744//18484 19747//18487 19750//18490 19745//18485 +f 19751//18491 19752//18492 19749//18489 19748//18488 +f 19598//18338 19751//18491 19748//18488 19599//18339 +f 19751//18491 19598//18338 19589//18329 19753//18493 +f 19752//18492 19751//18491 19753//18493 19754//18494 +f 19755//18495 19728//18468 19732//18472 19746//18486 +f 19756//18496 19755//18495 19746//18486 19745//18485 +f 19755//18495 19756//18496 19757//18497 19758//18498 +f 19728//18468 19755//18495 19758//18498 19729//18469 +f 19759//18499 19756//18496 19745//18485 19750//18490 +f 19760//18500 19759//18499 19750//18490 19749//18489 +f 19759//18499 19760//18500 19761//18501 19762//18502 +f 19756//18496 19759//18499 19762//18502 19757//18497 +f 19763//18503 19764//18504 19761//18501 19760//18500 +f 19752//18492 19763//18503 19760//18500 19749//18489 +f 19763//18503 19752//18492 19754//18494 19765//18505 +f 19764//18504 19763//18503 19765//18505 19766//18506 +f 19767//18507 19768//18508 19754//18494 19753//18493 +f 19588//18328 19767//18507 19753//18493 19589//18329 +f 19767//18507 19588//18328 19592//18332 19769//18509 +f 19768//18508 19767//18507 19769//18509 19770//18510 +f 19771//18511 19772//18512 19592//18332 19591//18331 +f 19570//18310 19771//18511 19591//18331 19571//18311 +f 19771//18511 19570//18310 19574//18314 19773//18513 +f 19772//18512 19771//18511 19773//18513 19774//18514 +f 19775//18515 19776//18516 19766//18506 19765//18505 +f 19768//18508 19775//18515 19765//18505 19754//18494 +f 19775//18515 19768//18508 19770//18510 19777//18517 +f 19776//18516 19775//18515 19777//18517 19778//18518 +f 19779//18519 19780//18520 19770//18510 19769//18509 +f 19772//18512 19779//18519 19769//18509 19592//18332 +f 19779//18519 19772//18512 19774//18514 19781//18521 +f 19780//18520 19779//18519 19781//18521 19782//18522 +f 19783//18523 19784//18524 19785//18525 19786//18526 +f 19764//18504 19783//18523 19786//18526 19761//18501 +f 19783//18523 19764//18504 19766//18506 19787//18527 +f 19784//18524 19783//18523 19787//18527 19788//18528 +f 19789//18529 19790//18530 19757//18497 19762//18502 +f 19786//18526 19789//18529 19762//18502 19761//18501 +f 19789//18529 19786//18526 19785//18525 19791//18531 +f 19790//18530 19789//18529 19791//18531 19792//18532 +f 19793//18533 19794//18534 19729//18469 19758//18498 +f 19790//18530 19793//18533 19758//18498 19757//18497 +f 19793//18533 19790//18530 19792//18532 19795//18535 +f 19794//18534 19793//18533 19795//18535 19796//18536 +f 19797//18537 19798//18538 19788//18528 19787//18527 +f 19776//18516 19797//18537 19787//18527 19766//18506 +f 19797//18537 19776//18516 19778//18518 19799//18539 +f 19798//18538 19797//18537 19799//18539 19800//18540 +f 19801//18541 19802//18542 19792//18532 19791//18531 +f 19803//18543 19801//18541 19791//18531 19785//18525 +f 19801//18541 19803//18543 19804//18544 19805//18545 +f 19802//18542 19801//18541 19805//18545 19806//18546 +f 19807//18547 19808//18548 19804//18544 19803//18543 +f 19784//18524 19807//18547 19803//18543 19785//18525 +f 19807//18547 19784//18524 19788//18528 19809//18549 +f 19808//18548 19807//18547 19809//18549 19810//18550 +f 19811//18551 19718//18458 19713//18453 19730//18470 +f 19794//18534 19811//18551 19730//18470 19729//18469 +f 19811//18551 19794//18534 19796//18536 19812//18552 +f 19718//18458 19811//18551 19812//18552 19719//18459 +f 19813//18553 19814//18554 19796//18536 19795//18535 +f 19802//18542 19813//18553 19795//18535 19792//18532 +f 19813//18553 19802//18542 19806//18546 19815//18555 +f 19814//18554 19813//18553 19815//18555 19816//18556 +f 19817//18557 19818//18558 19719//18459 19812//18552 +f 19814//18554 19817//18557 19812//18552 19796//18536 +f 19817//18557 19814//18554 19816//18556 19819//18559 +f 19818//18558 19817//18557 19819//18559 19820//18560 +f 19821//18561 19822//18562 19708//18448 19720//18460 +f 19818//18558 19821//18561 19720//18460 19719//18459 +f 19821//18561 19818//18558 19820//18560 19823//18563 +f 19822//18562 19821//18561 19823//18563 19824//18564 +f 19825//18565 19826//18566 19816//18556 19815//18555 +f 19827//18567 19825//18565 19815//18555 19806//18546 +f 19825//18565 19827//18567 19828//18568 19829//18569 +f 19826//18566 19825//18565 19829//18569 19830//18570 +f 19831//18571 19832//18572 19710//18450 19709//18449 +f 19822//18562 19831//18571 19709//18449 19708//18448 +f 19831//18571 19822//18562 19824//18564 19833//18573 +f 19832//18572 19831//18571 19833//18573 19834//18574 +f 19835//18575 19836//18576 19820//18560 19819//18559 +f 19826//18566 19835//18575 19819//18559 19816//18556 +f 19835//18575 19826//18566 19830//18570 19837//18577 +f 19836//18576 19835//18575 19837//18577 19838//18578 +f 19839//18579 19840//18580 19824//18564 19823//18563 +f 19836//18576 19839//18579 19823//18563 19820//18560 +f 19839//18579 19836//18576 19838//18578 19841//18581 +f 19840//18580 19839//18579 19841//18581 19842//18582 +f 19843//18583 19844//18584 19845//18585 19846//18586 +f 19832//18572 19843//18583 19846//18586 19710//18450 +f 19843//18583 19832//18572 19834//18574 19847//18587 +f 19844//18584 19843//18583 19847//18587 19848//18588 +f 19849//18589 19706//18446 19710//18450 19846//18586 +f 19850//18590 19849//18589 19846//18586 19845//18585 +f 19849//18589 19850//18590 19696//18436 19695//18435 +f 19706//18446 19849//18589 19695//18435 19694//18434 +f 19851//18591 19852//18592 19834//18574 19833//18573 +f 19840//18580 19851//18591 19833//18573 19824//18564 +f 19851//18591 19840//18580 19842//18582 19853//18593 +f 19852//18592 19851//18591 19853//18593 19854//18594 +f 19855//18595 19856//18596 19848//18588 19847//18587 +f 19852//18592 19855//18595 19847//18587 19834//18574 +f 19855//18595 19852//18592 19854//18594 19857//18597 +f 19856//18596 19855//18595 19857//18597 19858//18598 +f 19859//18599 19860//18600 19858//18598 19857//18597 +f 19861//18601 19859//18599 19857//18597 19854//18594 +f 19859//18599 19861//18601 19862//18602 19863//18603 +f 19860//18600 19859//18599 19863//18603 19864//18604 +f 19865//18605 19861//18601 19854//18594 19853//18593 +f 19866//18606 19865//18605 19853//18593 19842//18582 +f 19865//18605 19866//18606 19867//18607 19868//18608 +f 19861//18601 19865//18605 19868//18608 19862//18602 +f 19869//18609 19870//18610 19862//18602 19868//18608 +f 19871//18611 19869//18609 19868//18608 19867//18607 +f 19869//18609 19871//18611 19872//18612 19873//18613 +f 19870//18610 19869//18609 19873//18613 19874//18614 +f 19875//18615 19876//18616 19877//18617 19878//18618 +f 19866//18606 19875//18615 19878//18618 19867//18607 +f 19875//18615 19866//18606 19842//18582 19841//18581 +f 19876//18616 19875//18615 19841//18581 19838//18578 +f 19879//18619 19880//18620 19881//18621 19882//18622 +f 19871//18611 19879//18619 19882//18622 19872//18612 +f 19879//18619 19871//18611 19867//18607 19878//18618 +f 19880//18620 19879//18619 19878//18618 19877//18617 +f 19883//18623 19884//18624 19885//18625 19886//18626 +f 19876//18616 19883//18623 19886//18626 19877//18617 +f 19883//18623 19876//18616 19838//18578 19837//18577 +f 19884//18624 19883//18623 19837//18577 19830//18570 +f 19887//18627 19888//18628 19889//18629 19890//18630 +f 19880//18620 19887//18627 19890//18630 19881//18621 +f 19887//18627 19880//18620 19877//18617 19886//18626 +f 19888//18628 19887//18627 19886//18626 19885//18625 +f 19891//18631 19892//18632 19893//18633 19894//18634 +f 19884//18624 19891//18631 19894//18634 19885//18625 +f 19891//18631 19884//18624 19830//18570 19829//18569 +f 19892//18632 19891//18631 19829//18569 19828//18568 +f 19895//18635 19896//18636 19897//18637 19898//18638 +f 19888//18628 19895//18635 19898//18638 19889//18629 +f 19895//18635 19888//18628 19885//18625 19894//18634 +f 19896//18636 19895//18635 19894//18634 19893//18633 +f 19899//18639 19900//18640 19881//18621 19890//18630 +f 19901//18641 19899//18639 19890//18630 19889//18629 +f 19899//18639 19901//18641 19902//18642 19903//18643 +f 19900//18640 19899//18639 19903//18643 19904//18644 +f 19905//18645 19901//18641 19889//18629 19898//18638 +f 19906//18646 19905//18645 19898//18638 19897//18637 +f 19905//18645 19906//18646 19907//18647 19908//18648 +f 19901//18641 19905//18645 19908//18648 19902//18642 +f 19909//18649 19910//18650 19911//18651 19912//18652 +f 19896//18636 19909//18649 19912//18652 19897//18637 +f 19909//18649 19896//18636 19893//18633 19913//18653 +f 19910//18650 19909//18649 19913//18653 19914//18654 +f 19915//18655 19916//18656 19872//18612 19882//18622 +f 19900//18640 19915//18655 19882//18622 19881//18621 +f 19915//18655 19900//18640 19904//18644 19917//18657 +f 19916//18656 19915//18655 19917//18657 19918//18658 +f 19919//18659 19906//18646 19897//18637 19912//18652 +f 19920//18660 19919//18659 19912//18652 19911//18651 +f 19919//18659 19920//18660 19921//18661 19922//18662 +f 19906//18646 19919//18659 19922//18662 19907//18647 +f 19923//18663 19924//18664 19874//18614 19873//18613 +f 19916//18656 19923//18663 19873//18613 19872//18612 +f 19923//18663 19916//18656 19918//18658 19925//18665 +f 19924//18664 19923//18663 19925//18665 19926//18666 +f 19927//18667 19870//18610 19874//18614 19928//18668 +f 19929//18669 19927//18667 19928//18668 19930//18670 +f 19927//18667 19929//18669 19864//18604 19863//18603 +f 19870//18610 19927//18667 19863//18603 19862//18602 +f 19931//18671 19932//18672 19930//18670 19928//18668 +f 19924//18664 19931//18671 19928//18668 19874//18614 +f 19931//18671 19924//18664 19926//18666 19933//18673 +f 19932//18672 19931//18671 19933//18673 19934//18674 +f 19935//18675 19936//18676 19918//18658 19917//18657 +f 19937//18677 19935//18675 19917//18657 19904//18644 +f 19935//18675 19937//18677 19938//18678 19939//18679 +f 19936//18676 19935//18675 19939//18679 19940//18680 +f 19941//18681 19942//18682 19934//18674 19933//18673 +f 19943//18683 19941//18681 19933//18673 19926//18666 +f 19941//18681 19943//18683 19944//18684 19945//18685 +f 19942//18682 19941//18681 19945//18685 19946//18686 +f 19947//18687 19943//18683 19926//18666 19925//18665 +f 19936//18676 19947//18687 19925//18665 19918//18658 +f 19947//18687 19936//18676 19940//18680 19948//18688 +f 19943//18683 19947//18687 19948//18688 19944//18684 +f 19949//18689 19950//18690 19946//18686 19945//18685 +f 19951//18691 19949//18689 19945//18685 19944//18684 +f 19949//18689 19951//18691 19141//17881 19140//17880 +f 19950//18690 19949//18689 19140//17880 19139//17879 +f 19952//18692 19951//18691 19944//18684 19948//18688 +f 19953//18693 19952//18692 19948//18688 19940//18680 +f 19952//18692 19953//18693 19954//18694 19955//18695 +f 19951//18691 19952//18692 19955//18695 19141//17881 +f 19956//18696 19953//18693 19940//18680 19939//18679 +f 19957//18697 19956//18696 19939//18679 19938//18678 +f 19956//18696 19957//18697 19958//18698 19959//18699 +f 19953//18693 19956//18696 19959//18699 19954//18694 +f 19960//18700 19134//17874 19141//17881 19955//18695 +f 19961//18701 19960//18700 19955//18695 19954//18694 +f 19960//18700 19961//18701 19962//18702 19963//18703 +f 19134//17874 19960//18700 19963//18703 19135//17875 +f 19964//18704 19961//18701 19954//18694 19959//18699 +f 19965//18705 19964//18704 19959//18699 19958//18698 +f 19964//18704 19965//18705 19966//18706 19967//18707 +f 19961//18701 19964//18704 19967//18707 19962//18702 +f 19968//18708 19969//18709 19970//18710 19971//18711 +f 19972//18712 19968//18708 19971//18711 19973//18713 +f 19968//18708 19972//18712 19135//17875 19963//18703 +f 19969//18709 19968//18708 19963//18703 19962//18702 +f 19974//18714 19975//18715 19138//17878 19136//17876 +f 19972//18712 19974//18714 19136//17876 19135//17875 +f 19974//18714 19972//18712 19973//18713 19976//18716 +f 19975//18715 19974//18714 19976//18716 19977//18717 +f 19978//18718 19979//18719 19980//18720 19981//18721 +f 19969//18709 19978//18718 19981//18721 19970//18710 +f 19978//18718 19969//18709 19962//18702 19967//18707 +f 19979//18719 19978//18718 19967//18707 19966//18706 +f 19982//18722 19983//18723 19970//18710 19981//18721 +f 19984//18724 19982//18722 19981//18721 19980//18720 +f 19982//18722 19984//18724 19985//18725 19986//18726 +f 19983//18723 19982//18722 19986//18726 19987//18727 +f 19988//18728 19989//18729 19990//18730 19991//18731 +f 19984//18724 19988//18728 19991//18731 19985//18725 +f 19988//18728 19984//18724 19980//18720 19992//18732 +f 19989//18729 19988//18728 19992//18732 19993//18733 +f 19994//18734 19995//18735 19993//18733 19992//18732 +f 19979//18719 19994//18734 19992//18732 19980//18720 +f 19994//18734 19979//18719 19966//18706 19996//18736 +f 19995//18735 19994//18734 19996//18736 19997//18737 +f 19998//18738 19999//18739 19997//18737 19996//18736 +f 19965//18705 19998//18738 19996//18736 19966//18706 +f 19998//18738 19965//18705 19958//18698 20000//18740 +f 19999//18739 19998//18738 20000//18740 20001//18741 +f 20002//18742 20003//18743 20004//18744 20005//18745 +f 19989//18729 20002//18742 20005//18745 19990//18730 +f 20002//18742 19989//18729 19993//18733 20006//18746 +f 20003//18743 20002//18742 20006//18746 20007//18747 +f 20008//18748 20009//18749 20001//18741 20000//18740 +f 19957//18697 20008//18748 20000//18740 19958//18698 +f 20008//18748 19957//18697 19938//18678 20010//18750 +f 20009//18749 20008//18748 20010//18750 20011//18751 +f 20012//18752 20013//18753 20007//18747 20006//18746 +f 19995//18735 20012//18752 20006//18746 19993//18733 +f 20012//18752 19995//18735 19997//18737 20014//18754 +f 20013//18753 20012//18752 20014//18754 20015//18755 +f 20016//18756 20017//18757 20015//18755 20014//18754 +f 19999//18739 20016//18756 20014//18754 19997//18737 +f 20016//18756 19999//18739 20001//18741 20018//18758 +f 20017//18757 20016//18756 20018//18758 20019//18759 +f 20020//18760 20021//18761 20011//18751 20010//18750 +f 19937//18677 20020//18760 20010//18750 19938//18678 +f 20020//18760 19937//18677 19904//18644 19903//18643 +f 20021//18761 20020//18760 19903//18643 19902//18642 +f 20022//18762 20023//18763 20019//18759 20018//18758 +f 20009//18749 20022//18762 20018//18758 20001//18741 +f 20022//18762 20009//18749 20011//18751 20024//18764 +f 20023//18763 20022//18762 20024//18764 20025//18765 +f 20026//18766 20027//18767 20025//18765 20024//18764 +f 20021//18761 20026//18766 20024//18764 20011//18751 +f 20026//18766 20021//18761 19902//18642 19908//18648 +f 20027//18767 20026//18766 19908//18648 19907//18647 +f 20028//18768 20029//18769 20030//18770 20031//18771 +f 20017//18757 20028//18768 20031//18771 20015//18755 +f 20028//18768 20017//18757 20019//18759 20032//18772 +f 20029//18769 20028//18768 20032//18772 20033//18773 +f 20034//18774 20035//18775 20036//18776 20037//18777 +f 20027//18767 20034//18774 20037//18777 20025//18765 +f 20034//18774 20027//18767 19907//18647 19922//18662 +f 20035//18775 20034//18774 19922//18662 19921//18661 +f 20038//18778 20039//18779 20033//18773 20032//18772 +f 20023//18763 20038//18778 20032//18772 20019//18759 +f 20038//18778 20023//18763 20025//18765 20037//18777 +f 20039//18779 20038//18778 20037//18777 20036//18776 +f 20040//18780 20041//18781 20036//18776 20035//18775 +f 20042//18782 20040//18780 20035//18775 19921//18661 +f 20040//18780 20042//18782 20043//18783 20044//18784 +f 20041//18781 20040//18780 20044//18784 20045//18785 +f 20046//18786 20047//18787 20033//18773 20039//18779 +f 20041//18781 20046//18786 20039//18779 20036//18776 +f 20046//18786 20041//18781 20045//18785 20048//18788 +f 20047//18787 20046//18786 20048//18788 20049//18789 +f 20050//18790 20051//18791 20030//18770 20029//18769 +f 20047//18787 20050//18790 20029//18769 20033//18773 +f 20050//18790 20047//18787 20049//18789 20052//18792 +f 20051//18791 20050//18790 20052//18792 20053//18793 +f 20054//18794 20013//18753 20015//18755 20031//18771 +f 20055//18795 20054//18794 20031//18771 20030//18770 +f 20054//18794 20055//18795 20056//18796 20057//18797 +f 20013//18753 20054//18794 20057//18797 20007//18747 +f 20058//18798 20059//18799 20056//18796 20055//18795 +f 20051//18791 20058//18798 20055//18795 20030//18770 +f 20058//18798 20051//18791 20053//18793 20060//18800 +f 20059//18799 20058//18798 20060//18800 20061//18801 +f 20062//18802 20003//18743 20007//18747 20057//18797 +f 20063//18803 20062//18802 20057//18797 20056//18796 +f 20062//18802 20063//18803 20064//18804 20065//18805 +f 20003//18743 20062//18802 20065//18805 20004//18744 +f 20066//18806 20067//18807 20064//18804 20063//18803 +f 20059//18799 20066//18806 20063//18803 20056//18796 +f 20066//18806 20059//18799 20061//18801 20068//18808 +f 20067//18807 20066//18806 20068//18808 20069//18809 +f 20070//18810 20071//18811 20053//18793 20052//18792 +f 20072//18812 20070//18810 20052//18792 20049//18789 +f 20070//18810 20072//18812 20073//18813 20074//18814 +f 20071//18811 20070//18810 20074//18814 20075//18815 +f 20076//18816 20077//18817 20004//18744 20065//18805 +f 20078//18818 20076//18816 20065//18805 20064//18804 +f 20076//18816 20078//18818 20079//18819 20080//18820 +f 20077//18817 20076//18816 20080//18820 20081//18821 +f 20082//18822 20083//18823 20061//18801 20060//18800 +f 20071//18811 20082//18822 20060//18800 20053//18793 +f 20082//18822 20071//18811 20075//18815 20084//18824 +f 20083//18823 20082//18822 20084//18824 20085//18825 +f 20086//18826 20087//18827 20079//18819 20078//18818 +f 20067//18807 20086//18826 20078//18818 20064//18804 +f 20086//18826 20067//18807 20069//18809 20088//18828 +f 20087//18827 20086//18826 20088//18828 20089//18829 +f 20090//18830 20091//18831 20069//18809 20068//18808 +f 20083//18823 20090//18830 20068//18808 20061//18801 +f 20090//18830 20083//18823 20085//18825 20092//18832 +f 20091//18831 20090//18830 20092//18832 20093//18833 +f 20094//18834 20095//18835 19990//18730 20005//18745 +f 20077//18817 20094//18834 20005//18745 20004//18744 +f 20094//18834 20077//18817 20081//18821 20096//18836 +f 20095//18835 20094//18834 20096//18836 20097//18837 +f 20098//18838 20099//18839 19985//18725 19991//18731 +f 20095//18835 20098//18838 19991//18731 19990//18730 +f 20098//18838 20095//18835 20097//18837 20100//18840 +f 20099//18839 20098//18838 20100//18840 20101//18841 +f 20102//18842 20103//18843 20081//18821 20080//18820 +f 20104//18844 20102//18842 20080//18820 20079//18819 +f 20102//18842 20104//18844 20105//18845 20106//18846 +f 20103//18843 20102//18842 20106//18846 20107//18847 +f 20108//18848 20109//18849 20105//18845 20104//18844 +f 20087//18827 20108//18848 20104//18844 20079//18819 +f 20108//18848 20087//18827 20089//18829 20110//18850 +f 20109//18849 20108//18848 20110//18850 20111//18851 +f 20112//18852 20113//18853 20097//18837 20096//18836 +f 20103//18843 20112//18852 20096//18836 20081//18821 +f 20112//18852 20103//18843 20107//18847 20114//18854 +f 20113//18853 20112//18852 20114//18854 20115//18855 +f 20116//18856 20117//18857 20111//18851 20110//18850 +f 20118//18858 20116//18856 20110//18850 20089//18829 +f 20116//18856 20118//18858 20119//18859 20120//18860 +f 20117//18857 20116//18856 20120//18860 20121//18861 +f 20122//18862 20123//18863 20101//18841 20100//18840 +f 20113//18853 20122//18862 20100//18840 20097//18837 +f 20122//18862 20113//18853 20115//18855 20124//18864 +f 20123//18863 20122//18862 20124//18864 20125//18865 +f 20126//18866 20127//18867 19987//18727 19986//18726 +f 20099//18839 20126//18866 19986//18726 19985//18725 +f 20126//18866 20099//18839 20101//18841 20128//18868 +f 20127//18867 20126//18866 20128//18868 20129//18869 +f 20130//18870 20131//18871 20129//18869 20128//18868 +f 20123//18863 20130//18870 20128//18868 20101//18841 +f 20130//18870 20123//18863 20125//18865 20132//18872 +f 20131//18871 20130//18870 20132//18872 20133//18873 +f 20134//18874 19143//17883 19150//17890 20135//18875 +f 20131//18871 20134//18874 20135//18875 20129//18869 +f 20134//18874 20131//18871 20133//18873 20136//18876 +f 19143//17883 20134//18874 20136//18876 19144//17884 +f 20137//18877 20138//18878 20139//18879 20140//18880 +f 20127//18867 20137//18877 20140//18880 19987//18727 +f 20137//18877 20127//18867 20129//18869 20135//18875 +f 20138//18878 20137//18877 20135//18875 19150//17890 +f 20141//18881 20142//18882 20143//18883 20144//18884 +f 20138//18878 20141//18881 20144//18884 20139//18879 +f 20141//18881 20138//18878 19150//17890 19149//17889 +f 20142//18882 20141//18881 19149//17889 19148//17888 +f 20145//18885 20146//18886 20121//18861 20120//18860 +f 20147//18887 20145//18885 20120//18860 20119//18859 +f 20145//18885 20147//18887 20148//18888 20149//18889 +f 20146//18886 20145//18885 20149//18889 20150//18890 +f 20151//18891 20091//18831 20093//18833 20152//18892 +f 20118//18858 20151//18891 20152//18892 20119//18859 +f 20151//18891 20118//18858 20089//18829 20088//18828 +f 20091//18831 20151//18891 20088//18828 20069//18809 +f 20153//18893 20147//18887 20119//18859 20152//18892 +f 20154//18894 20153//18893 20152//18892 20093//18833 +f 20153//18893 20154//18894 20155//18895 20156//18896 +f 20147//18887 20153//18893 20156//18896 20148//18888 +f 20157//18897 20154//18894 20093//18833 20092//18832 +f 20158//18898 20157//18897 20092//18832 20085//18825 +f 20157//18897 20158//18898 20159//18899 20160//18900 +f 20154//18894 20157//18897 20160//18900 20155//18895 +f 20161//18901 20162//18902 20150//18890 20149//18889 +f 20163//18903 20161//18901 20149//18889 20148//18888 +f 20161//18901 20163//18903 20164//18904 20165//18905 +f 20162//18902 20161//18901 20165//18905 20166//18906 +f 20167//18907 20163//18903 20148//18888 20156//18896 +f 20168//18908 20167//18907 20156//18896 20155//18895 +f 20167//18907 20168//18908 20169//18909 20170//18910 +f 20163//18903 20167//18907 20170//18910 20164//18904 +f 20171//18911 20172//18912 20166//18906 20165//18905 +f 20173//18913 20171//18911 20165//18905 20164//18904 +f 20171//18911 20173//18913 20174//18914 20175//18915 +f 20172//18912 20171//18911 20175//18915 20176//18916 +f 20177//18917 20173//18913 20164//18904 20170//18910 +f 20178//18918 20177//18917 20170//18910 20169//18909 +f 20177//18917 20178//18918 20179//18919 20180//18920 +f 20173//18913 20177//18917 20180//18920 20174//18914 +f 20181//18921 20182//18922 20183//18923 20184//18924 +f 20168//18908 20181//18921 20184//18924 20169//18909 +f 20181//18921 20168//18908 20155//18895 20160//18900 +f 20182//18922 20181//18921 20160//18900 20159//18899 +f 20185//18925 20186//18926 20187//18927 20188//18928 +f 20178//18918 20185//18925 20188//18928 20179//18919 +f 20185//18925 20178//18918 20169//18909 20184//18924 +f 20186//18926 20185//18925 20184//18924 20183//18923 +f 20189//18929 20190//18930 20176//18916 20175//18915 +f 20191//18931 20189//18929 20175//18915 20174//18914 +f 20189//18929 20191//18931 20192//18932 20193//18933 +f 20190//18930 20189//18929 20193//18933 20194//18934 +f 20195//18935 20191//18931 20174//18914 20180//18920 +f 20196//18936 20195//18935 20180//18920 20179//18919 +f 20195//18935 20196//18936 20197//18937 20198//18938 +f 20191//18931 20195//18935 20198//18938 20192//18932 +f 20199//18939 20200//18940 20194//18934 20193//18933 +f 20201//18941 20199//18939 20193//18933 20192//18932 +f 20199//18939 20201//18941 20202//18942 20203//18943 +f 20200//18940 20199//18939 20203//18943 20204//18944 +f 20205//18945 20201//18941 20192//18932 20198//18938 +f 20206//18946 20205//18945 20198//18938 20197//18937 +f 20205//18945 20206//18946 20207//18947 20208//18948 +f 20201//18941 20205//18945 20208//18948 20202//18942 +f 20209//18949 20210//18950 20211//18951 20212//18952 +f 20196//18936 20209//18949 20212//18952 20197//18937 +f 20209//18949 20196//18936 20179//18919 20188//18928 +f 20210//18950 20209//18949 20188//18928 20187//18927 +f 20213//18953 20214//18954 20215//18955 20216//18956 +f 20206//18946 20213//18953 20216//18956 20207//18947 +f 20213//18953 20206//18946 20197//18937 20212//18952 +f 20214//18954 20213//18953 20212//18952 20211//18951 +f 20217//18957 20218//18958 20204//18944 20203//18943 +f 20219//18959 20217//18957 20203//18943 20202//18942 +f 20217//18957 20219//18959 20220//18960 20221//18961 +f 20218//18958 20217//18957 20221//18961 20222//18962 +f 20223//18963 20219//18959 20202//18942 20208//18948 +f 20224//18964 20223//18963 20208//18948 20207//18947 +f 20223//18963 20224//18964 20225//18965 20226//18966 +f 20219//18959 20223//18963 20226//18966 20220//18960 +f 20227//18967 20228//18968 20222//18962 20221//18961 +f 20229//18969 20227//18967 20221//18961 20220//18960 +f 20227//18967 20229//18969 20230//18970 20231//18971 +f 20228//18968 20227//18967 20231//18971 20232//18972 +f 20233//18973 20234//18974 20235//18975 20236//18976 +f 20231//18971 20233//18973 20236//18976 20232//18972 +f 20233//18973 20231//18971 20230//18970 20237//18977 +f 20234//18974 20233//18973 20237//18977 20238//18978 +f 20239//18979 20240//18980 20241//18981 20242//18982 +f 20229//18969 20239//18979 20242//18982 20230//18970 +f 20239//18979 20229//18969 20220//18960 20226//18966 +f 20240//18980 20239//18979 20226//18966 20225//18965 +f 20243//18983 20244//18984 20238//18978 20237//18977 +f 20242//18982 20243//18983 20237//18977 20230//18970 +f 20243//18983 20242//18982 20241//18981 20245//18985 +f 20244//18984 20243//18983 20245//18985 20246//18986 +f 20247//18987 20248//18988 20249//18989 20250//18990 +f 20234//18974 20247//18987 20250//18990 20235//18975 +f 20247//18987 20234//18974 20238//18978 20251//18991 +f 20248//18988 20247//18987 20251//18991 20252//18992 +f 20253//18993 20254//18994 20255//18995 20256//18996 +f 20240//18980 20253//18993 20256//18996 20241//18981 +f 20253//18993 20240//18980 20225//18965 20257//18997 +f 20254//18994 20253//18993 20257//18997 20258//18998 +f 20259//18999 20260//19000 20261//19001 20262//19002 +f 20248//18988 20259//18999 20262//19002 20249//18989 +f 20259//18999 20248//18988 20252//18992 20263//19003 +f 20260//19000 20259//18999 20263//19003 20264//19004 +f 20265//19005 20266//19006 20252//18992 20251//18991 +f 20244//18984 20265//19005 20251//18991 20238//18978 +f 20265//19005 20244//18984 20246//18986 20267//19007 +f 20266//19006 20265//19005 20267//19007 20268//19008 +f 20269//19009 20270//19010 20246//18986 20245//18985 +f 20256//18996 20269//19009 20245//18985 20241//18981 +f 20269//19009 20256//18996 20255//18995 20271//19011 +f 20270//19010 20269//19009 20271//19011 20272//19012 +f 20273//19013 20274//19014 20275//19015 20276//19016 +f 20260//19000 20273//19013 20276//19016 20261//19001 +f 20273//19013 20260//19000 20264//19004 20277//19017 +f 20274//19014 20273//19013 20277//19017 20278//19018 +f 20279//19019 20280//19020 20264//19004 20263//19003 +f 20266//19006 20279//19019 20263//19003 20252//18992 +f 20279//19019 20266//19006 20268//19008 20281//19021 +f 20280//19020 20279//19019 20281//19021 20282//19022 +f 20283//19023 19119//17859 19120//17860 20284//19024 +f 20274//19014 20283//19023 20284//19024 20275//19015 +f 20283//19023 20274//19014 20278//19018 20285//19025 +f 19119//17859 20283//19023 20285//19025 19121//17861 +f 20286//19026 20287//19027 20278//19018 20277//19017 +f 20280//19020 20286//19026 20277//19017 20264//19004 +f 20286//19026 20280//19020 20282//19022 20288//19028 +f 20287//19027 20286//19026 20288//19028 20289//19029 +f 20290//19030 20291//19031 19121//17861 20285//19025 +f 20287//19027 20290//19030 20285//19025 20278//19018 +f 20290//19030 20287//19027 20289//19029 20292//19032 +f 20291//19031 20290//19030 20292//19032 20293//19033 +f 20294//19034 20295//19035 19123//17863 19122//17862 +f 20291//19031 20294//19034 19122//17862 19121//17861 +f 20294//19034 20291//19031 20293//19033 20296//19036 +f 20295//19035 20294//19034 20296//19036 20297//19037 +f 20298//19038 20299//19039 20289//19029 20288//19028 +f 20300//19040 20298//19038 20288//19028 20282//19022 +f 20298//19038 20300//19040 20301//19041 20302//19042 +f 20299//19039 20298//19038 20302//19042 20303//19043 +f 20304//19044 20305//19045 20306//19046 20307//19047 +f 20300//19040 20304//19044 20307//19047 20301//19041 +f 20304//19044 20300//19040 20282//19022 20281//19021 +f 20305//19045 20304//19044 20281//19021 20268//19008 +f 20308//19048 20309//19049 20303//19043 20302//19042 +f 20310//19050 20308//19048 20302//19042 20301//19041 +f 20308//19048 20310//19050 20311//19051 20312//19052 +f 20309//19049 20308//19048 20312//19052 20313//19053 +f 20314//19054 20310//19050 20301//19041 20307//19047 +f 20315//19055 20314//19054 20307//19047 20306//19046 +f 20314//19054 20315//19055 20316//19056 20317//19057 +f 20310//19050 20314//19054 20317//19057 20311//19051 +f 20318//19058 20319//19059 20320//19060 20321//19061 +f 20309//19049 20318//19058 20321//19061 20303//19043 +f 20318//19058 20309//19049 20313//19053 20322//19062 +f 20319//19059 20318//19058 20322//19062 20323//19063 +f 20324//19064 20325//19065 20323//19063 20322//19062 +f 20326//19066 20324//19064 20322//19062 20313//19053 +f 20324//19064 20326//19066 20327//19067 20328//19068 +f 20325//19065 20324//19064 20328//19068 20329//19069 +f 20330//19070 20326//19066 20313//19053 20312//19052 +f 20331//19071 20330//19070 20312//19052 20311//19051 +f 20330//19070 20331//19071 20332//19072 20333//19073 +f 20326//19066 20330//19070 20333//19073 20327//19067 +f 20334//19074 20335//19075 20336//19076 20337//19077 +f 20338//19078 20334//19074 20337//19077 20339//19079 +f 20334//19074 20338//19078 20329//19069 20328//19068 +f 20335//19075 20334//19074 20328//19068 20327//19067 +f 20340//19080 20341//19081 20342//19082 20343//19083 +f 20331//19071 20340//19080 20343//19083 20332//19072 +f 20340//19080 20331//19071 20311//19051 20317//19057 +f 20341//19081 20340//19080 20317//19057 20316//19056 +f 20344//19084 20335//19075 20327//19067 20333//19073 +f 20345//19085 20344//19084 20333//19073 20332//19072 +f 20344//19084 20345//19085 20346//19086 20347//19087 +f 20335//19075 20344//19084 20347//19087 20336//19076 +f 20348//19088 20345//19085 20332//19072 20343//19083 +f 20349//19089 20348//19088 20343//19083 20342//19082 +f 20348//19088 20349//19089 20350//19090 20351//19091 +f 20345//19085 20348//19088 20351//19091 20346//19086 +f 20352//19092 20353//19093 20354//19094 20355//19095 +f 20341//19081 20352//19092 20355//19095 20342//19082 +f 20352//19092 20341//19081 20316//19056 20356//19096 +f 20353//19093 20352//19092 20356//19096 20357//19097 +f 20358//19098 20359//19099 20360//19100 20361//19101 +f 20349//19089 20358//19098 20361//19101 20350//19090 +f 20358//19098 20349//19089 20342//19082 20355//19095 +f 20359//19099 20358//19098 20355//19095 20354//19094 +f 20362//19102 20363//19103 20346//19086 20351//19091 +f 20364//19104 20362//19102 20351//19091 20350//19090 +f 20362//19102 20364//19104 20365//19105 20366//19106 +f 20363//19103 20362//19102 20366//19106 20367//19107 +f 20368//19108 20369//19109 20357//19097 20356//19096 +f 20315//19055 20368//19108 20356//19096 20316//19056 +f 20368//19108 20315//19055 20306//19046 20370//19110 +f 20369//19109 20368//19108 20370//19110 20272//19012 +f 20371//19111 20372//19112 20336//19076 20347//19087 +f 20363//19103 20371//19111 20347//19087 20346//19086 +f 20371//19111 20363//19103 20367//19107 20373//19113 +f 20372//19112 20371//19111 20373//19113 20374//19114 +f 20375//19115 20376//19116 20339//19079 20337//19077 +f 20372//19112 20375//19115 20337//19077 20336//19076 +f 20375//19115 20372//19112 20374//19114 20377//19117 +f 20376//19116 20375//19115 20377//19117 20378//19118 +f 20379//19119 20380//19120 20381//19121 20382//19122 +f 20364//19104 20379//19119 20382//19122 20365//19105 +f 20379//19119 20364//19104 20350//19090 20361//19101 +f 20380//19120 20379//19119 20361//19101 20360//19100 +f 20383//19123 20384//19124 20367//19107 20366//19106 +f 20385//19125 20383//19123 20366//19106 20365//19105 +f 20383//19123 20385//19125 20386//19126 20387//19127 +f 20384//19124 20383//19123 20387//19127 20388//19128 +f 20389//19129 20385//19125 20365//19105 20382//19122 +f 20390//19130 20389//19129 20382//19122 20381//19121 +f 20389//19129 20390//19130 20391//19131 20392//19132 +f 20385//19125 20389//19129 20392//19132 20386//19126 +f 20393//19133 20394//19134 20374//19114 20373//19113 +f 20384//19124 20393//19133 20373//19113 20367//19107 +f 20393//19133 20384//19124 20388//19128 20395//19135 +f 20394//19134 20393//19133 20395//19135 20396//19136 +f 20397//19137 20398//19138 20399//19139 20400//19140 +f 20376//19116 20397//19137 20400//19140 20339//19079 +f 20397//19137 20376//19116 20378//19118 20401//19141 +f 20398//19138 20397//19137 20401//19141 20402//19142 +f 20403//19143 20338//19078 20339//19079 20400//19140 +f 20404//19144 20403//19143 20400//19140 20399//19139 +f 20403//19143 20404//19144 20405//19145 20406//19146 +f 20338//19078 20403//19143 20406//19146 20329//19069 +f 20407//19147 20408//19148 20378//19118 20377//19117 +f 20394//19134 20407//19147 20377//19117 20374//19114 +f 20407//19147 20394//19134 20396//19136 20409//19149 +f 20408//19148 20407//19147 20409//19149 20410//19150 +f 20411//19151 20412//19152 20410//19150 20409//19149 +f 20413//19153 20411//19151 20409//19149 20396//19136 +f 20411//19151 20413//19153 20414//19154 20415//19155 +f 20412//19152 20411//19151 20415//19155 20416//19156 +f 20417//19157 20413//19153 20396//19136 20395//19135 +f 20418//19158 20417//19157 20395//19135 20388//19128 +f 20417//19157 20418//19158 20419//19159 20420//19160 +f 20413//19153 20417//19157 20420//19160 20414//19154 +f 20421//19161 20422//19162 20423//19163 20424//19164 +f 20418//19158 20421//19161 20424//19164 20419//19159 +f 20421//19161 20418//19158 20388//19128 20387//19127 +f 20422//19162 20421//19161 20387//19127 20386//19126 +f 20425//19165 20426//19166 20414//19154 20420//19160 +f 20427//19167 20425//19165 20420//19160 20419//19159 +f 20425//19165 20427//19167 20428//19168 20429//19169 +f 20426//19166 20425//19165 20429//19169 20430//19170 +f 20431//19171 20432//19172 20433//19173 20434//19174 +f 20422//19162 20431//19171 20434//19174 20423//19163 +f 20431//19171 20422//19162 20386//19126 20392//19132 +f 20432//19172 20431//19171 20392//19132 20391//19131 +f 20435//19175 20427//19167 20419//19159 20424//19164 +f 20436//19176 20435//19175 20424//19164 20423//19163 +f 20435//19175 20436//19176 20437//19177 20438//19178 +f 20427//19167 20435//19175 20438//19178 20428//19168 +f 20439//19179 20436//19176 20423//19163 20434//19174 +f 20440//19180 20439//19179 20434//19174 20433//19173 +f 20439//19179 20440//19180 20441//19181 20442//19182 +f 20436//19176 20439//19179 20442//19182 20437//19177 +f 20443//19183 20444//19184 20445//19185 20446//19186 +f 20432//19172 20443//19183 20446//19186 20433//19173 +f 20443//19183 20432//19172 20391//19131 20447//19187 +f 20444//19184 20443//19183 20447//19187 20448//19188 +f 20449//19189 20450//19190 20451//19191 20452//19192 +f 20440//19180 20449//19189 20452//19192 20441//19181 +f 20449//19189 20440//19180 20433//19173 20446//19186 +f 20450//19190 20449//19189 20446//19186 20445//19185 +f 20453//19193 20454//19194 20437//19177 20442//19182 +f 20455//19195 20453//19193 20442//19182 20441//19181 +f 20453//19193 20455//19195 20456//19196 20457//19197 +f 20454//19194 20453//19193 20457//19197 20458//19198 +f 20459//19199 20460//19200 20448//19188 20447//19187 +f 20390//19130 20459//19199 20447//19187 20391//19131 +f 20459//19199 20390//19130 20381//19121 20461//19201 +f 20460//19200 20459//19199 20461//19201 20462//19202 +f 20463//19203 20464//19204 20428//19168 20438//19178 +f 20454//19194 20463//19203 20438//19178 20437//19177 +f 20463//19203 20454//19194 20458//19198 20465//19205 +f 20464//19204 20463//19203 20465//19205 20466//19206 +f 20467//19207 20468//19208 20462//19202 20461//19201 +f 20380//19120 20467//19207 20461//19201 20381//19121 +f 20467//19207 20380//19120 20360//19100 20469//19209 +f 20468//19208 20467//19207 20469//19209 20470//19210 +f 20471//19211 20472//19212 20445//19185 20444//19184 +f 20473//19213 20471//19211 20444//19184 20448//19188 +f 20471//19211 20473//19213 20474//19214 20475//19215 +f 20472//19212 20471//19211 20475//19215 20476//19216 +f 20477//19217 20478//19218 20470//19210 20469//19209 +f 20359//19099 20477//19217 20469//19209 20360//19100 +f 20477//19217 20359//19099 20354//19094 20479//19219 +f 20478//19218 20477//19217 20479//19219 20480//19220 +f 20481//19221 20473//19213 20448//19188 20460//19200 +f 20482//19222 20481//19221 20460//19200 20462//19202 +f 20481//19221 20482//19222 20483//19223 20484//19224 +f 20473//19213 20481//19221 20484//19224 20474//19214 +f 20485//19225 20482//19222 20462//19202 20468//19208 +f 20486//19226 20485//19225 20468//19208 20470//19210 +f 20485//19225 20486//19226 20487//19227 20488//19228 +f 20482//19222 20485//19225 20488//19228 20483//19223 +f 20489//19229 20490//19230 20480//19220 20479//19219 +f 20353//19093 20489//19229 20479//19219 20354//19094 +f 20489//19229 20353//19093 20357//19097 20491//19231 +f 20490//19230 20489//19229 20491//19231 20492//19232 +f 20493//19233 20494//19234 20495//19235 20496//19236 +f 20486//19226 20493//19233 20496//19236 20487//19227 +f 20493//19233 20486//19226 20470//19210 20478//19218 +f 20494//19234 20493//19233 20478//19218 20480//19220 +f 20497//19237 20498//19238 20483//19223 20488//19228 +f 20499//19239 20497//19237 20488//19228 20487//19227 +f 20497//19237 20499//19239 20500//19240 20501//19241 +f 20498//19238 20497//19237 20501//19241 20502//19242 +f 20503//19243 20499//19239 20487//19227 20496//19236 +f 20504//19244 20503//19243 20496//19236 20495//19235 +f 20503//19243 20504//19244 20505//19245 20506//19246 +f 20499//19239 20503//19243 20506//19246 20500//19240 +f 20507//19247 20508//19248 20509//19249 20510//19250 +f 20494//19234 20507//19247 20510//19250 20495//19235 +f 20507//19247 20494//19234 20480//19220 20490//19230 +f 20508//19248 20507//19247 20490//19230 20492//19232 +f 20511//19251 20512//19252 20474//19214 20484//19224 +f 20498//19238 20511//19251 20484//19224 20483//19223 +f 20511//19251 20498//19238 20502//19242 20513//19253 +f 20512//19252 20511//19251 20513//19253 20514//19254 +f 20515//19255 20504//19244 20495//19235 20510//19250 +f 20516//19256 20515//19255 20510//19250 20509//19249 +f 20515//19255 20516//19256 20517//19257 20518//19258 +f 20504//19244 20515//19255 20518//19258 20505//19245 +f 20519//19259 20520//19260 20215//18955 20521//19261 +f 20516//19256 20519//19259 20521//19261 20517//19257 +f 20519//19259 20516//19256 20509//19249 20522//19262 +f 20520//19260 20519//19259 20522//19262 20258//18998 +f 20523//19263 20524//19264 20492//19232 20491//19231 +f 20369//19109 20523//19263 20491//19231 20357//19097 +f 20523//19263 20369//19109 20272//19012 20271//19011 +f 20524//19264 20523//19263 20271//19011 20255//18995 +f 20525//19265 20270//19010 20272//19012 20370//19110 +f 20305//19045 20525//19265 20370//19110 20306//19046 +f 20525//19265 20305//19045 20268//19008 20267//19007 +f 20270//19010 20525//19265 20267//19007 20246//18986 +f 20526//19266 20508//19248 20492//19232 20524//19264 +f 20254//18994 20526//19266 20524//19264 20255//18995 +f 20526//19266 20254//18994 20258//18998 20522//19262 +f 20508//19248 20526//19266 20522//19262 20509//19249 +f 20527//19267 20520//19260 20258//18998 20257//18997 +f 20224//18964 20527//19267 20257//18997 20225//18965 +f 20527//19267 20224//18964 20207//18947 20216//18956 +f 20520//19260 20527//19267 20216//18956 20215//18955 +f 20528//19268 20529//19269 20517//19257 20521//19261 +f 20214//18954 20528//19268 20521//19261 20215//18955 +f 20528//19268 20214//18954 20211//18951 20530//19270 +f 20529//19269 20528//19268 20530//19270 20531//19271 +f 20532//19272 20533//19273 20505//19245 20518//19258 +f 20529//19269 20532//19272 20518//19258 20517//19257 +f 20532//19272 20529//19269 20531//19271 20534//19274 +f 20533//19273 20532//19272 20534//19274 20535//19275 +f 20536//19276 20537//19277 20531//19271 20530//19270 +f 20210//18950 20536//19276 20530//19270 20211//18951 +f 20536//19276 20210//18950 20187//18927 20538//19278 +f 20537//19277 20536//19276 20538//19278 20539//19279 +f 20540//19280 20541//19281 20500//19240 20506//19246 +f 20533//19273 20540//19280 20506//19246 20505//19245 +f 20540//19280 20533//19273 20535//19275 20542//19282 +f 20541//19281 20540//19280 20542//19282 20543//19283 +f 20544//19284 20545//19285 20535//19275 20534//19274 +f 20537//19277 20544//19284 20534//19274 20531//19271 +f 20544//19284 20537//19277 20539//19279 20546//19286 +f 20545//19285 20544//19284 20546//19286 20547//19287 +f 20548//19288 20549//19289 20539//19279 20538//19278 +f 20186//18926 20548//19288 20538//19278 20187//18927 +f 20548//19288 20186//18926 20183//18923 20550//19290 +f 20549//19289 20548//19288 20550//19290 20551//19291 +f 20552//19292 20553//19293 20502//19242 20501//19241 +f 20541//19281 20552//19292 20501//19241 20500//19240 +f 20552//19292 20541//19281 20543//19283 20554//19294 +f 20553//19293 20552//19292 20554//19294 20555//19295 +f 20556//19296 20557//19297 20543//19283 20542//19282 +f 20545//19285 20556//19296 20542//19282 20535//19275 +f 20556//19296 20545//19285 20547//19287 20558//19298 +f 20557//19297 20556//19296 20558//19298 20559//19299 +f 20560//19300 20561//19301 20547//19287 20546//19286 +f 20549//19289 20560//19300 20546//19286 20539//19279 +f 20560//19300 20549//19289 20551//19291 20562//19302 +f 20561//19301 20560//19300 20562//19302 20563//19303 +f 20564//19304 20565//19305 20551//19291 20550//19290 +f 20182//18922 20564//19304 20550//19290 20183//18923 +f 20564//19304 20182//18922 20159//18899 20566//19306 +f 20565//19305 20564//19304 20566//19306 20567//19307 +f 20568//19308 20569//19309 20567//19307 20566//19306 +f 20158//18898 20568//19308 20566//19306 20159//18899 +f 20568//19308 20158//18898 20085//18825 20084//18824 +f 20569//19309 20568//19308 20084//18824 20075//18815 +f 20570//19310 20571//19311 20563//19303 20562//19302 +f 20565//19305 20570//19310 20562//19302 20551//19291 +f 20570//19310 20565//19305 20567//19307 20572//19312 +f 20571//19311 20570//19310 20572//19312 20573//19313 +f 20574//19314 20575//19315 20559//19299 20558//19298 +f 20561//19301 20574//19314 20558//19298 20547//19287 +f 20574//19314 20561//19301 20563//19303 20576//19316 +f 20575//19315 20574//19314 20576//19316 20577//19317 +f 20578//19318 20579//19319 20573//19313 20572//19312 +f 20569//19309 20578//19318 20572//19312 20567//19307 +f 20578//19318 20569//19309 20075//18815 20074//18814 +f 20579//19319 20578//19318 20074//18814 20073//18813 +f 20580//19320 20581//19321 20577//19317 20576//19316 +f 20571//19311 20580//19320 20576//19316 20563//19303 +f 20580//19320 20571//19311 20573//19313 20582//19322 +f 20581//19321 20580//19320 20582//19322 20583//19323 +f 20584//19324 20585//19325 20583//19323 20582//19322 +f 20579//19319 20584//19324 20582//19322 20573//19313 +f 20584//19324 20579//19319 20073//18813 20586//19326 +f 20585//19325 20584//19324 20586//19326 20587//19327 +f 20588//19328 20589//19329 20587//19327 20586//19326 +f 20072//18812 20588//19328 20586//19326 20073//18813 +f 20588//19328 20072//18812 20049//18789 20048//18788 +f 20589//19329 20588//19328 20048//18788 20045//18785 +f 20590//19330 20591//19331 20592//19332 20593//19333 +f 20581//19321 20590//19330 20593//19333 20577//19317 +f 20590//19330 20581//19321 20583//19323 20594//19334 +f 20591//19331 20590//19330 20594//19334 20595//19335 +f 20596//19336 20597//19337 20598//19338 20599//19339 +f 20589//19329 20596//19336 20599//19339 20587//19327 +f 20596//19336 20589//19329 20045//18785 20044//18784 +f 20597//19337 20596//19336 20044//18784 20043//18783 +f 20600//19340 20601//19341 20595//19335 20594//19334 +f 20585//19325 20600//19340 20594//19334 20583//19323 +f 20600//19340 20585//19325 20587//19327 20599//19339 +f 20601//19341 20600//19340 20599//19339 20598//19338 +f 20602//19342 20603//19343 20604//19344 20605//19345 +f 20597//19337 20602//19342 20605//19345 20598//19338 +f 20602//19342 20597//19337 20043//18783 20606//19346 +f 20603//19343 20602//19342 20606//19346 20607//19347 +f 20608//19348 20609//19349 20610//19350 20611//19351 +f 20601//19341 20608//19348 20611//19351 20595//19335 +f 20608//19348 20601//19341 20598//19338 20605//19345 +f 20609//19349 20608//19348 20605//19345 20604//19344 +f 20612//19352 20613//19353 20614//19354 20615//19355 +f 20591//19331 20612//19352 20615//19355 20592//19332 +f 20612//19352 20591//19331 20595//19335 20611//19351 +f 20613//19353 20612//19352 20611//19351 20610//19350 +f 20616//19356 20575//19315 20577//19317 20593//19333 +f 20617//19357 20616//19356 20593//19333 20592//19332 +f 20616//19356 20617//19357 20618//19358 20619//19359 +f 20575//19315 20616//19356 20619//19359 20559//19299 +f 20620//19360 20617//19357 20592//19332 20615//19355 +f 20621//19361 20620//19360 20615//19355 20614//19354 +f 20620//19360 20621//19361 20622//19362 20623//19363 +f 20617//19357 20620//19360 20623//19363 20618//19358 +f 20624//19364 20557//19297 20559//19299 20619//19359 +f 20625//19365 20624//19364 20619//19359 20618//19358 +f 20624//19364 20625//19365 20555//19295 20554//19294 +f 20557//19297 20624//19364 20554//19294 20543//19283 +f 20626//19366 20627//19367 20628//19368 20629//19369 +f 20625//19365 20626//19366 20629//19369 20555//19295 +f 20626//19366 20625//19365 20618//19358 20623//19363 +f 20627//19367 20626//19366 20623//19363 20622//19362 +f 20630//19370 20631//19371 20514//19254 20513//19253 +f 20553//19293 20630//19370 20513//19253 20502//19242 +f 20630//19370 20553//19293 20555//19295 20629//19369 +f 20631//19371 20630//19370 20629//19369 20628//19368 +f 20632//19372 20633//19373 20634//19374 20635//19375 +f 20627//19367 20632//19372 20635//19375 20628//19368 +f 20632//19372 20627//19367 20622//19362 20636//19376 +f 20633//19373 20632//19372 20636//19376 20637//19377 +f 20638//19378 20639//19379 20476//19216 20475//19215 +f 20512//19252 20638//19378 20475//19215 20474//19214 +f 20638//19378 20512//19252 20514//19254 20640//19380 +f 20639//19379 20638//19378 20640//19380 20641//19381 +f 20642//19382 20643//19383 20641//19381 20640//19380 +f 20631//19371 20642//19382 20640//19380 20514//19254 +f 20642//19382 20631//19371 20628//19368 20635//19375 +f 20643//19383 20642//19382 20635//19375 20634//19374 +f 20644//19384 20645//19385 20451//19191 20450//19190 +f 20472//19212 20644//19384 20450//19190 20445//19185 +f 20644//19384 20472//19212 20476//19216 20646//19386 +f 20645//19385 20644//19384 20646//19386 20647//19387 +f 20648//19388 20649//19389 20647//19387 20646//19386 +f 20639//19379 20648//19388 20646//19386 20476//19216 +f 20648//19388 20639//19379 20641//19381 20650//19390 +f 20649//19389 20648//19388 20650//19390 20651//19391 +f 20652//19392 20653//19393 20651//19391 20650//19390 +f 20643//19383 20652//19392 20650//19390 20641//19381 +f 20652//19392 20643//19383 20634//19374 20654//19394 +f 20653//19393 20652//19392 20654//19394 20655//19395 +f 20656//19396 20657//19397 20637//19377 20636//19376 +f 20621//19361 20656//19396 20636//19376 20622//19362 +f 20656//19396 20621//19361 20614//19354 20658//19398 +f 20657//19397 20656//19396 20658//19398 20659//19399 +f 20660//19400 20661//19401 20655//19395 20654//19394 +f 20633//19373 20660//19400 20654//19394 20634//19374 +f 20660//19400 20633//19373 20637//19377 20662//19402 +f 20661//19401 20660//19400 20662//19402 20663//19403 +f 20664//19404 20665//19405 20659//19399 20658//19398 +f 20613//19353 20664//19404 20658//19398 20614//19354 +f 20664//19404 20613//19353 20610//19350 20666//19406 +f 20665//19405 20664//19404 20666//19406 20667//19407 +f 20668//19408 20669//19409 20663//19403 20662//19402 +f 20657//19397 20668//19408 20662//19402 20637//19377 +f 20668//19408 20657//19397 20659//19399 20670//19410 +f 20669//19409 20668//19408 20670//19410 20671//19411 +f 20672//19412 20673//19413 20667//19407 20666//19406 +f 20609//19349 20672//19412 20666//19406 20610//19350 +f 20672//19412 20609//19349 20604//19344 20674//19414 +f 20673//19413 20672//19412 20674//19414 20675//19415 +f 20676//19416 20677//19417 20671//19411 20670//19410 +f 20665//19405 20676//19416 20670//19410 20659//19399 +f 20676//19416 20665//19405 20667//19407 20678//19418 +f 20677//19417 20676//19416 20678//19418 20679//19419 +f 20680//19420 20681//19421 20682//19422 20683//19423 +f 20661//19401 20680//19420 20683//19423 20655//19395 +f 20680//19420 20661//19401 20663//19403 20684//19424 +f 20681//19421 20680//19420 20684//19424 20685//19425 +f 20686//19426 20687//19427 20685//19425 20684//19424 +f 20669//19409 20686//19426 20684//19424 20663//19403 +f 20686//19426 20669//19409 20671//19411 20688//19428 +f 20687//19427 20686//19426 20688//19428 20689//19429 +f 20690//19430 20653//19393 20655//19395 20683//19423 +f 20691//19431 20690//19430 20683//19423 20682//19422 +f 20690//19430 20691//19431 20692//19432 20693//19433 +f 20653//19393 20690//19430 20693//19433 20651//19391 +f 20694//19434 20695//19435 20679//19419 20678//19418 +f 20673//19413 20694//19434 20678//19418 20667//19407 +f 20694//19434 20673//19413 20675//19415 20696//19436 +f 20695//19435 20694//19434 20696//19436 20697//19437 +f 20698//19438 20649//19389 20651//19391 20693//19433 +f 20699//19439 20698//19438 20693//19433 20692//19432 +f 20698//19438 20699//19439 20700//19440 20701//19441 +f 20649//19389 20698//19438 20701//19441 20647//19387 +f 20702//19442 20703//19443 20675//19415 20674//19414 +f 20603//19343 20702//19442 20674//19414 20604//19344 +f 20702//19442 20603//19343 20607//19347 20704//19444 +f 20703//19443 20702//19442 20704//19444 20705//19445 +f 20706//19446 20707//19447 20607//19347 20606//19346 +f 20042//18782 20706//19446 20606//19346 20043//18783 +f 20706//19446 20042//18782 19921//18661 19920//18660 +f 20707//19447 20706//19446 19920//18660 19911//18651 +f 20708//19448 20709//19449 20705//19445 20704//19444 +f 20707//19447 20708//19448 20704//19444 20607//19347 +f 20708//19448 20707//19447 19911//18651 19910//18650 +f 20709//19449 20708//19448 19910//18650 19914//18654 +f 20710//19450 20711//19451 20697//19437 20696//19436 +f 20703//19443 20710//19450 20696//19436 20675//19415 +f 20710//19450 20703//19443 20705//19445 20712//19452 +f 20711//19451 20710//19450 20712//19452 20713//19453 +f 20714//19454 20715//19455 19914//18654 19913//18653 +f 19892//18632 20714//19454 19913//18653 19893//18633 +f 20714//19454 19892//18632 19828//18568 20716//19456 +f 20715//19455 20714//19454 20716//19456 20717//19457 +f 20718//19458 20719//19459 20713//19453 20712//19452 +f 20709//19449 20718//19458 20712//19452 20705//19445 +f 20718//19458 20709//19449 19914//18654 20715//19455 +f 20719//19459 20718//19458 20715//19455 20717//19457 +f 20720//19460 20721//19461 20717//19457 20716//19456 +f 19827//18567 20720//19460 20716//19456 19828//18568 +f 20720//19460 19827//18567 19806//18546 19805//18545 +f 20721//19461 20720//19460 19805//18545 19804//18544 +f 20722//19462 20719//19459 20717//19457 20721//19461 +f 19808//18548 20722//19462 20721//19461 19804//18544 +f 20722//19462 19808//18548 19810//18550 20723//19463 +f 20719//19459 20722//19462 20723//19463 20713//19453 +f 20724//19464 20711//19451 20713//19453 20723//19463 +f 20725//19465 20724//19464 20723//19463 19810//18550 +f 20724//19464 20725//19465 20726//19466 20727//19467 +f 20711//19451 20724//19464 20727//19467 20697//19437 +f 20728//19468 20725//19465 19810//18550 19809//18549 +f 19798//18538 20728//19468 19809//18549 19788//18528 +f 20728//19468 19798//18538 19800//18540 20729//19469 +f 20725//19465 20728//19468 20729//19469 20726//19466 +f 20730//19470 20695//19435 20697//19437 20727//19467 +f 20731//19471 20730//19470 20727//19467 20726//19466 +f 20730//19470 20731//19471 20732//19472 20733//19473 +f 20695//19435 20730//19470 20733//19473 20679//19419 +f 20734//19474 20731//19471 20726//19466 20729//19469 +f 20735//19475 20734//19474 20729//19469 19800//18540 +f 20734//19474 20735//19475 20736//19476 20737//19477 +f 20731//19471 20734//19474 20737//19477 20732//19472 +f 20738//19478 20735//19475 19800//18540 19799//18539 +f 20739//19479 20738//19478 19799//18539 19778//18518 +f 20738//19478 20739//19479 20740//19480 20741//19481 +f 20735//19475 20738//19478 20741//19481 20736//19476 +f 20742//19482 20677//19417 20679//19419 20733//19473 +f 20743//19483 20742//19482 20733//19473 20732//19472 +f 20742//19482 20743//19483 20689//19429 20688//19428 +f 20677//19417 20742//19482 20688//19428 20671//19411 +f 20744//19484 20743//19483 20732//19472 20737//19477 +f 20745//19485 20744//19484 20737//19477 20736//19476 +f 20744//19484 20745//19485 20746//19486 20747//19487 +f 20743//19483 20744//19484 20747//19487 20689//19429 +f 20748//19488 20749//19489 20750//19490 20751//19491 +f 20687//19427 20748//19488 20751//19491 20685//19425 +f 20748//19488 20687//19427 20689//19429 20747//19487 +f 20749//19489 20748//19488 20747//19487 20746//19486 +f 20752//19492 20753//19493 20754//19494 20755//19495 +f 20745//19485 20752//19492 20755//19495 20746//19486 +f 20752//19492 20745//19485 20736//19476 20741//19481 +f 20753//19493 20752//19492 20741//19481 20740//19480 +f 20756//19496 20757//19497 20758//19498 20759//19499 +f 20749//19489 20756//19496 20759//19499 20750//19490 +f 20756//19496 20749//19489 20746//19486 20755//19495 +f 20757//19497 20756//19496 20755//19495 20754//19494 +f 20760//19500 20681//19421 20685//19425 20751//19491 +f 20761//19501 20760//19500 20751//19491 20750//19490 +f 20760//19500 20761//19501 20762//19502 20763//19503 +f 20681//19421 20760//19500 20763//19503 20682//19422 +f 20764//19504 20761//19501 20750//19490 20759//19499 +f 20765//19505 20764//19504 20759//19499 20758//19498 +f 20764//19504 20765//19505 20766//19506 20767//19507 +f 20761//19501 20764//19504 20767//19507 20762//19502 +f 20768//19508 20691//19431 20682//19422 20763//19503 +f 20769//19509 20768//19508 20763//19503 20762//19502 +f 20768//19508 20769//19509 20770//19510 20771//19511 +f 20691//19431 20768//19508 20771//19511 20692//19432 +f 20772//19512 20769//19509 20762//19502 20767//19507 +f 20773//19513 20772//19512 20767//19507 20766//19506 +f 20772//19512 20773//19513 20774//19514 20775//19515 +f 20769//19509 20772//19512 20775//19515 20770//19510 +f 20776//19516 20699//19439 20692//19432 20771//19511 +f 20777//19517 20776//19516 20771//19511 20770//19510 +f 20776//19516 20777//19517 20778//19518 20779//19519 +f 20699//19439 20776//19516 20779//19519 20700//19440 +f 20780//19520 20777//19517 20770//19510 20775//19515 +f 20781//19521 20780//19520 20775//19515 20774//19514 +f 20780//19520 20781//19521 20782//19522 20783//19523 +f 20777//19517 20780//19520 20783//19523 20778//19518 +f 20784//19524 20785//19525 20786//19526 20787//19527 +f 20773//19513 20784//19524 20787//19527 20774//19514 +f 20784//19524 20773//19513 20766//19506 20788//19528 +f 20785//19525 20784//19524 20788//19528 20789//19529 +f 20790//19530 20791//19531 20792//19532 20793//19533 +f 20781//19521 20790//19530 20793//19533 20782//19522 +f 20790//19530 20781//19521 20774//19514 20787//19527 +f 20791//19531 20790//19530 20787//19527 20786//19526 +f 20794//19534 20795//19535 20778//19518 20783//19523 +f 20796//19536 20794//19534 20783//19523 20782//19522 +f 20794//19534 20796//19536 20797//19537 20798//19538 +f 20795//19535 20794//19534 20798//19538 20799//19539 +f 20800//19540 20801//19541 20789//19529 20788//19528 +f 20765//19505 20800//19540 20788//19528 20766//19506 +f 20800//19540 20765//19505 20758//19498 20802//19542 +f 20801//19541 20800//19540 20802//19542 20803//19543 +f 20804//19544 20805//19545 20700//19440 20779//19519 +f 20795//19535 20804//19544 20779//19519 20778//19518 +f 20804//19544 20795//19535 20799//19539 20806//19546 +f 20805//19545 20804//19544 20806//19546 20807//19547 +f 20808//19548 20809//19549 20803//19543 20802//19542 +f 20757//19497 20808//19548 20802//19542 20758//19498 +f 20808//19548 20757//19497 20754//19494 20810//19550 +f 20809//19549 20808//19548 20810//19550 20811//19551 +f 20812//19552 20645//19385 20647//19387 20701//19441 +f 20805//19545 20812//19552 20701//19441 20700//19440 +f 20812//19552 20805//19545 20807//19547 20813//19553 +f 20645//19385 20812//19552 20813//19553 20451//19191 +f 20814//19554 20455//19195 20441//19181 20452//19192 +f 20813//19553 20814//19554 20452//19192 20451//19191 +f 20814//19554 20813//19553 20807//19547 20815//19555 +f 20455//19195 20814//19554 20815//19555 20456//19196 +f 20816//19556 20817//19557 20456//19196 20815//19555 +f 20806//19546 20816//19556 20815//19555 20807//19547 +f 20816//19556 20806//19546 20799//19539 20818//19558 +f 20817//19557 20816//19556 20818//19558 20819//19559 +f 20820//19560 20821//19561 20819//19559 20818//19558 +f 20798//19538 20820//19560 20818//19558 20799//19539 +f 20820//19560 20798//19538 20797//19537 20822//19562 +f 20821//19561 20820//19560 20822//19562 19364//18104 +f 20823//19563 20824//19564 20458//19198 20457//19197 +f 20817//19557 20823//19563 20457//19197 20456//19196 +f 20823//19563 20817//19557 20819//19559 20825//19565 +f 20824//19564 20823//19563 20825//19565 19354//18094 +f 20826//19566 19352//18092 19354//18094 20825//19565 +f 20821//19561 20826//19566 20825//19565 20819//19559 +f 20826//19566 20821//19561 19364//18104 19363//18103 +f 19352//18092 20826//19566 19363//18103 19350//18090 +f 20827//19567 20828//19568 20466//19206 20465//19205 +f 20824//19564 20827//19567 20465//19205 20458//19198 +f 20827//19567 20824//19564 19354//18094 19353//18093 +f 20828//19568 20827//19567 19353//18093 19342//18082 +f 20829//19569 19336//18076 19338//18078 20830//19570 +f 20828//19568 20829//19569 20830//19570 20466//19206 +f 20829//19569 20828//19568 19342//18082 19341//18081 +f 19336//18076 20829//19569 19341//18081 19324//18064 +f 20831//19571 20464//19204 20466//19206 20830//19570 +f 20832//19572 20831//19571 20830//19570 19338//18078 +f 20831//19571 20832//19572 20430//19170 20429//19169 +f 20464//19204 20831//19571 20429//19169 20428//19168 +f 20833//19573 19330//18070 19334//18074 20834//19574 +f 20832//19572 20833//19573 20834//19574 20430//19170 +f 20833//19573 20832//19572 19338//18078 19337//18077 +f 19330//18070 20833//19573 19337//18077 19320//18060 +f 20835//19575 20426//19166 20430//19170 20834//19574 +f 20836//19576 20835//19575 20834//19574 19334//18074 +f 20835//19575 20836//19576 20416//19156 20415//19155 +f 20426//19166 20835//19575 20415//19155 20414//19154 +f 20837//19577 20838//19578 20839//19579 20840//19580 +f 20412//19152 20837//19577 20840//19580 20410//19150 +f 20837//19577 20412//19152 20416//19156 20841//19581 +f 20838//19578 20837//19577 20841//19581 20842//19582 +f 20843//19583 20408//19148 20410//19150 20840//19580 +f 20844//19584 20843//19583 20840//19580 20839//19579 +f 20843//19583 20844//19584 20402//19142 20401//19141 +f 20408//19148 20843//19583 20401//19141 20378//19118 +f 20845//19585 19362//18102 19364//18104 20822//19562 +f 20846//19586 20845//19585 20822//19562 20797//19537 +f 20845//19585 20846//19586 20847//19587 20848//19588 +f 19362//18102 20845//19585 20848//19588 19360//18100 +f 20849//19589 20850//19590 20847//19587 20846//19586 +f 20796//19536 20849//19589 20846//19586 20797//19537 +f 20849//19589 20796//19536 20782//19522 20793//19533 +f 20850//19590 20849//19589 20793//19533 20792//19532 +f 20851//19591 19356//18096 19360//18100 20848//19588 +f 20852//19592 20851//19591 20848//19588 20847//19587 +f 20851//19591 20852//19592 19376//18116 19375//18115 +f 19356//18096 20851//19591 19375//18115 19357//18097 +f 20853//19593 20854//19594 19376//18116 20852//19592 +f 20850//19590 20853//19593 20852//19592 20847//19587 +f 20853//19593 20850//19590 20792//19532 20855//19595 +f 20854//19594 20853//19593 20855//19595 20856//19596 +f 20857//19597 19400//18140 19373//18113 19372//18112 +f 20854//19594 20857//19597 19372//18112 19376//18116 +f 20857//19597 20854//19594 20856//19596 20858//19598 +f 19400//18140 20857//19597 20858//19598 19401//18141 +f 20859//19599 20860//19600 20856//19596 20855//19595 +f 20791//19531 20859//19599 20855//19595 20792//19532 +f 20859//19599 20791//19531 20786//19526 20861//19601 +f 20860//19600 20859//19599 20861//19601 20862//19602 +f 20863//19603 20864//19604 19401//18141 20858//19598 +f 20860//19600 20863//19603 20858//19598 20856//19596 +f 20863//19603 20860//19600 20862//19602 20865//19605 +f 20864//19604 20863//19603 20865//19605 20866//19606 +f 20867//19607 20868//19608 20862//19602 20861//19601 +f 20785//19525 20867//19607 20861//19601 20786//19526 +f 20867//19607 20785//19525 20789//19529 20869//19609 +f 20868//19608 20867//19607 20869//19609 20870//19610 +f 20871//19611 20872//19612 19390//18130 19402//18142 +f 20864//19604 20871//19611 19402//18142 19401//18141 +f 20871//19611 20864//19604 20866//19606 20873//19613 +f 20872//19612 20871//19611 20873//19613 20874//19614 +f 20875//19615 20876//19616 20866//19606 20865//19605 +f 20868//19608 20875//19615 20865//19605 20862//19602 +f 20875//19615 20868//19608 20870//19610 20877//19617 +f 20876//19616 20875//19615 20877//19617 20878//19618 +f 20879//19619 20880//19620 20870//19610 20869//19609 +f 20801//19541 20879//19619 20869//19609 20789//19529 +f 20879//19619 20801//19541 20803//19543 20881//19621 +f 20880//19620 20879//19619 20881//19621 20882//19622 +f 20883//19623 20884//19624 19392//18132 19391//18131 +f 20872//19612 20883//19623 19391//18131 19390//18130 +f 20883//19623 20872//19612 20874//19614 20885//19625 +f 20884//19624 20883//19623 20885//19625 20886//19626 +f 20887//19627 20888//19628 20874//19614 20873//19613 +f 20876//19616 20887//19627 20873//19613 20866//19606 +f 20887//19627 20876//19616 20878//19618 20889//19629 +f 20888//19628 20887//19627 20889//19629 20890//19630 +f 20891//19631 20892//19632 20878//19618 20877//19617 +f 20880//19620 20891//19631 20877//19617 20870//19610 +f 20891//19631 20880//19620 20882//19622 20893//19633 +f 20892//19632 20891//19631 20893//19633 20894//19634 +f 20895//19635 19416//18156 19395//18135 19398//18138 +f 20884//19624 20895//19635 19398//18138 19392//18132 +f 20895//19635 20884//19624 20886//19626 20896//19636 +f 19416//18156 20895//19635 20896//19636 19417//18157 +f 20897//19637 20898//19638 20886//19626 20885//19625 +f 20888//19628 20897//19637 20885//19625 20874//19614 +f 20897//19637 20888//19628 20890//19630 20899//19639 +f 20898//19638 20897//19637 20899//19639 19448//18188 +f 20900//19640 19432//18172 19417//18157 20896//19636 +f 20898//19638 20900//19640 20896//19636 20886//19626 +f 20900//19640 20898//19638 19448//18188 19447//18187 +f 19432//18172 20900//19640 19447//18187 19433//18173 +f 20901//19641 20902//19642 19568//18308 19567//18307 +f 19444//18184 20901//19641 19567//18307 19445//18185 +f 20901//19641 19444//18184 19448//18188 20899//19639 +f 20902//19642 20901//19641 20899//19639 20890//19630 +f 20903//19643 20902//19642 20890//19630 20889//19629 +f 20892//19632 20903//19643 20889//19629 20878//19618 +f 20903//19643 20892//19632 20894//19634 20904//19644 +f 20902//19642 20903//19643 20904//19644 19568//18308 +f 20905//19645 20906//19646 19578//18318 19577//18317 +f 19566//18306 20905//19645 19577//18317 19564//18304 +f 20905//19645 19566//18306 19568//18308 20904//19644 +f 20906//19646 20905//19645 20904//19644 20894//19634 +f 20907//19647 20908//19648 19774//18514 19773//18513 +f 19576//18316 20907//19647 19773//18513 19574//18314 +f 20907//19647 19576//18316 19578//18318 20909//19649 +f 20908//19648 20907//19647 20909//19649 20910//19650 +f 20911//19651 20912//19652 20910//19650 20909//19649 +f 20906//19646 20911//19651 20909//19649 19578//18318 +f 20911//19651 20906//19646 20894//19634 20893//19633 +f 20912//19652 20911//19651 20893//19633 20882//19622 +f 20913//19653 20914//19654 19782//18522 19781//18521 +f 20908//19648 20913//19653 19781//18521 19774//18514 +f 20913//19653 20908//19648 20910//19650 20915//19655 +f 20914//19654 20913//19653 20915//19655 20811//19551 +f 20916//19656 20739//19479 19778//18518 19777//18517 +f 19780//18520 20916//19656 19777//18517 19770//18510 +f 20916//19656 19780//18520 19782//18522 20917//19657 +f 20739//19479 20916//19656 20917//19657 20740//19480 +f 20918//19658 20809//19549 20811//19551 20915//19655 +f 20912//19652 20918//19658 20915//19655 20910//19650 +f 20918//19658 20912//19652 20882//19622 20881//19621 +f 20809//19549 20918//19658 20881//19621 20803//19543 +f 20919//19659 20753//19493 20740//19480 20917//19657 +f 20914//19654 20919//19659 20917//19657 19782//18522 +f 20919//19659 20914//19654 20811//19551 20810//19550 +f 20753//19493 20919//19659 20810//19550 20754//19494 +f 20920//19660 20921//19661 20293//19033 20292//19032 +f 20299//19039 20920//19660 20292//19032 20289//19029 +f 20920//19660 20299//19039 20303//19043 20321//19061 +f 20921//19661 20920//19660 20321//19061 20320//19060 +f 20922//19662 20923//19663 20297//19037 20296//19036 +f 20921//19661 20922//19662 20296//19036 20293//19033 +f 20922//19662 20921//19661 20320//19060 20924//19664 +f 20923//19663 20922//19662 20924//19664 20925//19665 +f 20926//19666 20927//19667 20925//19665 20924//19664 +f 20319//19059 20926//19666 20924//19664 20320//19060 +f 20926//19666 20319//19059 20323//19063 20928//19668 +f 20927//19667 20926//19666 20928//19668 20929//19669 +f 20930//19670 20931//19671 20929//19669 20928//19668 +f 20325//19065 20930//19670 20928//19668 20323//19063 +f 20930//19670 20325//19065 20329//19069 20406//19146 +f 20931//19671 20930//19670 20406//19146 20405//19145 +f 20932//19672 20933//19673 20139//18879 20144//18884 +f 20934//19674 20932//19672 20144//18884 20143//18883 +f 20932//19672 20934//19674 19977//18717 19976//18716 +f 20933//19673 20932//19672 19976//18716 19973//18713 +f 20935//19675 19983//18723 19987//18727 20140//18880 +f 20933//19673 20935//19675 20140//18880 20139//18879 +f 20935//19675 20933//19673 19973//18713 19971//18711 +f 19983//18723 20935//19675 19971//18711 19970//18710 +f 20936//19676 20937//19677 19190//17930 19189//17929 +f 19170//17910 20936//19676 19189//17929 19171//17911 +f 20936//19676 19170//17910 19108//17848 20938//19678 +f 20937//19677 20936//19676 20938//19678 20939//19679 +f 20940//19680 20941//19681 20942//19682 20943//19683 +f 20944//19684 20940//19680 20943//19683 19114//17854 +f 20940//19680 20944//19684 20945//19685 20946//19686 +f 20941//19681 20940//19680 20946//19686 20947//19687 +f 20948//19688 20949//19689 20950//19690 20951//19691 +f 20944//19684 20948//19688 20951//19691 20945//19685 +f 20948//19688 20944//19684 19114//17854 19113//17853 +f 20949//19689 20948//19688 19113//17853 19112//17852 +f 20952//19692 20953//19693 20954//19694 20955//19695 +f 20949//19689 20952//19692 20955//19695 20950//19690 +f 20952//19692 20949//19689 19112//17852 19154//17894 +f 20953//19693 20952//19692 19154//17894 19153//17893 +f 20956//19696 20957//19697 20958//19698 20959//19699 +f 20953//19693 20956//19696 20959//19699 20954//19694 +f 20956//19696 20953//19693 19153//17893 19160//17900 +f 20957//19697 20956//19696 19160//17900 19159//17899 +f 20960//19700 20961//19701 20962//19702 20963//19703 +f 20957//19697 20960//19700 20963//19703 20958//19698 +f 20960//19700 20957//19697 19159//17899 19176//17916 +f 20961//19701 20960//19700 19176//17916 19175//17915 +f 20964//19704 20965//19705 20966//19706 20967//19707 +f 20961//19701 20964//19704 20967//19707 20962//19702 +f 20964//19704 20961//19701 19175//17915 19230//17970 +f 20965//19705 20964//19704 19230//17970 19229//17969 +f 20968//19708 20969//19709 20966//19706 20965//19705 +f 19242//17982 20968//19708 20965//19705 19229//17969 +f 20968//19708 19242//17982 19246//17986 20970//19710 +f 20969//19709 20968//19708 20970//19710 20971//19711 +f 20972//19712 20973//19713 20971//19711 20970//19710 +f 19404//18144 20972//19712 20970//19710 19246//17986 +f 20972//19712 19404//18144 19408//18148 20974//19714 +f 20973//19713 20972//19712 20974//19714 20975//19715 +f 20976//19716 20977//19717 20975//19715 20974//19714 +f 19410//18150 20976//19716 20974//19714 19408//18148 +f 20976//19716 19410//18150 19414//18154 20978//19718 +f 20977//19717 20976//19716 20978//19718 20979//19719 +f 20980//19720 20981//19721 20979//19719 20978//19718 +f 19420//18160 20980//19720 20978//19718 19414//18154 +f 20980//19720 19420//18160 19424//18164 20982//19722 +f 20981//19721 20980//19720 20982//19722 20983//19723 +f 20984//19724 20985//19725 20983//19723 20982//19722 +f 19426//18166 20984//19724 20982//19722 19424//18164 +f 20984//19724 19426//18166 19430//18170 20986//19726 +f 20985//19725 20984//19724 20986//19726 20987//19727 +f 20988//19728 20989//19729 20987//19727 20986//19726 +f 19454//18194 20988//19728 20986//19726 19430//18170 +f 20988//19728 19454//18194 19458//18198 20990//19730 +f 20989//19729 20988//19728 20990//19730 20991//19731 +f 20992//19732 20993//19733 20991//19731 20990//19730 +f 19460//18200 20992//19732 20990//19730 19458//18198 +f 20992//19732 19460//18200 19464//18204 20994//19734 +f 20993//19733 20992//19732 20994//19734 20995//19735 +f 20996//19736 20997//19737 20995//19735 20994//19734 +f 19470//18210 20996//19736 20994//19734 19464//18204 +f 20996//19736 19470//18210 19474//18214 20998//19738 +f 20997//19737 20996//19736 20998//19738 20999//19739 +f 21000//19740 21001//19741 20999//19739 20998//19738 +f 19480//18220 21000//19740 20998//19738 19474//18214 +f 21000//19740 19480//18220 19484//18224 21002//19742 +f 21001//19741 21000//19740 21002//19742 21003//19743 +f 21004//19744 21005//19745 21006//19746 21007//19747 +f 21002//19742 21004//19744 21007//19747 21003//19743 +f 21004//19744 21002//19742 19484//18224 19492//18232 +f 21005//19745 21004//19744 19492//18232 19491//18231 +f 21008//19748 21009//19749 21010//19750 21011//19751 +f 21005//19745 21008//19748 21011//19751 21006//19746 +f 21008//19748 21005//19745 19491//18231 19506//18246 +f 21009//19749 21008//19748 19506//18246 19505//18245 +f 21012//19752 21013//19753 21014//19754 21015//19755 +f 21009//19749 21012//19752 21015//19755 21010//19750 +f 21012//19752 21009//19749 19505//18245 19510//18250 +f 21013//19753 21012//19752 19510//18250 19129//17869 +f 21016//19756 21017//19757 21018//19758 21019//19759 +f 21013//19753 21016//19756 21019//19759 21014//19754 +f 21016//19756 21013//19753 19129//17869 19127//17867 +f 21017//19757 21016//19756 19127//17867 19126//17866 +f 21020//19760 21021//19761 21022//19762 21023//19763 +f 21017//19757 21020//19760 21023//19763 21018//19758 +f 21020//19760 21017//19757 19126//17866 21024//19764 +f 21021//19761 21020//19760 21024//19764 21025//19765 +f 21026//19766 21027//19767 21028//19768 21029//19769 +f 21021//19761 21026//19766 21029//19769 21022//19762 +f 21026//19766 21021//19761 21025//19765 21030//19770 +f 21027//19767 21026//19766 21030//19770 21031//19771 +f 21032//19772 21033//19773 19631//18371 19638//18378 +f 21034//19774 21032//19772 19638//18378 19637//18377 +f 21032//19772 21034//19774 21031//19771 21030//19770 +f 21033//19773 21032//19772 21030//19770 21025//19765 +f 21035//19775 19125//17865 19132//17872 19632//18372 +f 21033//19773 21035//19775 19632//18372 19631//18371 +f 21035//19775 21033//19773 21025//19765 21024//19764 +f 19125//17865 21035//19775 21024//19764 19126//17866 +f 21036//19776 20836//19576 19334//18074 19333//18073 +f 21037//19777 21036//19776 19333//18073 19332//18072 +f 21036//19776 21037//19777 20842//19582 20841//19581 +f 20836//19576 21036//19776 20841//19581 20416//19156 +f 21038//19778 19107//17847 19114//17854 20943//19683 +f 21039//19779 21038//19778 20943//19683 20942//19682 +f 21038//19778 21039//19779 20939//19679 20938//19678 +f 19107//17847 21038//19778 20938//19678 19108//17848 +f 21040//19780 19514//18254 19508//18248 19507//18247 +f 19500//18240 21040//19780 19507//18247 19494//18234 +f 21040//19780 19500//18240 19502//18242 19530//18270 +f 19514//18254 21040//19780 19530//18270 19515//18255 +f 21041//19781 21042//19782 9473//8217 9471//8215 +f 21043//19783 21041//19781 9471//8215 9472//8216 +f 21041//19781 21043//19783 7507//6252 7506//6251 +f 21042//19782 21041//19781 7506//6251 7513//6258 +f 21044//19784 21045//19785 10468//9212 10467//9211 +f 21042//19782 21044//19784 10467//9211 9473//8217 +f 21044//19784 21042//19782 7513//6258 8685//7429 +f 21045//19785 21044//19784 8685//7429 8687//7431 +f 21046//19786 21047//19787 10302//9046 11259//10003 +f 21045//19785 21046//19786 11259//10003 10468//9212 +f 21046//19786 21045//19785 8687//7431 9313//8057 +f 21047//19787 21046//19786 9313//8057 9315//8059 +f 21048//19788 21049//19789 9463//8207 10300//9044 +f 21047//19787 21048//19788 10300//9044 10302//9046 +f 21048//19788 21047//19787 9315//8059 9317//8061 +f 21049//19789 21048//19788 9317//8061 9319//8063 +f 21050//19790 21051//19791 9464//8208 9462//8206 +f 21049//19789 21050//19790 9462//8206 9463//8207 +f 21050//19790 21049//19789 9319//8063 9321//8065 +f 21051//19791 21050//19790 9321//8065 8795//7539 +f 21052//19792 21053//19793 10271//9015 10275//9019 +f 21051//19791 21052//19792 10275//9019 9464//8208 +f 21052//19792 21051//19791 8795//7539 8794//7538 +f 21053//19793 21052//19792 8794//7538 8789//7533 +f 21054//19794 21055//19795 10259//9003 10267//9011 +f 21053//19793 21054//19794 10267//9011 10271//9015 +f 21054//19794 21053//19793 8789//7533 8788//7532 +f 21055//19795 21054//19794 8788//7532 8792//7536 +f 21056//19796 21057//19797 10255//8999 10257//9001 +f 21055//19795 21056//19796 10257//9001 10259//9003 +f 21056//19796 21055//19795 8792//7536 9234//7978 +f 21057//19797 21056//19796 9234//7978 9229//7973 +f 21058//19798 21059//19799 10189//8933 10254//8998 +f 21057//19797 21058//19798 10254//8998 10255//8999 +f 21058//19798 21057//19797 9229//7973 9228//7972 +f 21059//19799 21058//19798 9228//7972 9232//7976 +f 21060//19800 21061//19801 10183//8927 10185//8929 +f 21059//19799 21060//19800 10185//8929 10189//8933 +f 21060//19800 21059//19799 9232//7976 9427//8171 +f 21061//19801 21060//19800 9427//8171 7722//6467 +f 21062//19802 21063//19803 10173//8917 10181//8925 +f 21061//19801 21062//19802 10181//8925 10183//8927 +f 21062//19802 21061//19801 7722//6467 7721//6466 +f 21063//19803 21062//19802 7721//6466 7708//6453 +f 21064//19804 21065//19805 10170//8914 10169//8913 +f 21063//19803 21064//19804 10169//8913 10173//8917 +f 21064//19804 21063//19803 7708//6453 7707//6452 +f 21065//19805 21064//19804 7707//6452 7702//6447 +f 21066//19806 21067//19807 10021//8765 10175//8919 +f 21065//19805 21066//19806 10175//8919 10170//8914 +f 21066//19806 21065//19805 7702//6447 7701//6446 +f 21067//19807 21066//19806 7701//6446 7697//6442 +f 21068//19808 21069//19809 10015//8759 10017//8761 +f 21067//19807 21068//19808 10017//8761 10021//8765 +f 21068//19808 21067//19807 7697//6442 7696//6441 +f 21069//19809 21068//19808 7696//6441 7654//6399 +f 21070//19810 21071//19811 10005//8749 10011//8755 +f 21069//19809 21070//19810 10011//8755 10015//8759 +f 21070//19810 21069//19809 7654//6399 7653//6398 +f 21071//19811 21070//19810 7653//6398 7647//6392 +f 21072//19812 21073//19813 9997//8741 10001//8745 +f 21071//19811 21072//19812 10001//8745 10005//8749 +f 21072//19812 21071//19811 7647//6392 7646//6391 +f 21073//19813 21072//19812 7646//6391 7590//6335 +f 21074//19814 21075//19815 9985//8729 9993//8737 +f 21073//19813 21074//19814 9993//8737 9997//8741 +f 21074//19814 21073//19813 7590//6335 7589//6334 +f 21075//19815 21074//19814 7589//6334 7584//6329 +f 21076//19816 21077//19817 9977//8721 9983//8727 +f 21075//19815 21076//19816 9983//8727 9985//8729 +f 21076//19816 21075//19815 7584//6329 7583//6328 +f 21077//19817 21076//19816 7583//6328 7577//6322 +f 21078//19818 21079//19819 9965//8709 9975//8719 +f 21077//19817 21078//19818 9975//8719 9977//8721 +f 21078//19818 21077//19817 7577//6322 7576//6321 +f 21079//19819 21078//19818 7576//6321 7580//6325 +f 21080//19820 21081//19821 9962//8706 9961//8705 +f 21079//19819 21080//19820 9961//8705 9965//8709 +f 21080//19820 21079//19819 7580//6325 9327//8071 +f 21081//19821 21080//19820 9327//8071 9329//8073 +f 21082//19822 21083//19823 11356//10100 11359//10103 +f 21081//19821 21082//19822 11359//10103 9962//8706 +f 21082//19822 21081//19821 9329//8073 9429//8173 +f 21083//19823 21082//19822 9429//8173 9332//8076 +f 21084//19824 21085//19825 11353//10097 11352//10096 +f 21083//19823 21084//19824 11352//10096 11356//10100 +f 21084//19824 21083//19823 9332//8076 9331//8075 +f 21085//19825 21084//19824 9331//8075 9337//8081 +f 21086//19826 21087//19827 11408//10152 11406//10150 +f 21088//19828 21086//19826 11406//10150 11407//10151 +f 21086//19826 21088//19828 9442//8186 9441//8185 +f 21087//19827 21086//19826 9441//8185 9448//8192 +f 21089//19829 21090//19830 12403//11146 12402//11145 +f 21087//19827 21089//19829 12402//11145 11408//10152 +f 21089//19829 21087//19827 9448//8192 10620//9364 +f 21090//19830 21089//19829 10620//9364 10622//9366 +f 21091//19831 21092//19832 12237//10981 13194//11937 +f 21090//19830 21091//19831 13194//11937 12403//11146 +f 21091//19831 21090//19830 10622//9366 11248//9992 +f 21092//19832 21091//19831 11248//9992 11250//9994 +f 21093//19833 21094//19834 11398//10142 12235//10979 +f 21092//19832 21093//19833 12235//10979 12237//10981 +f 21093//19833 21092//19832 11250//9994 11252//9996 +f 21094//19834 21093//19833 11252//9996 11254//9998 +f 21095//19835 21096//19836 11399//10143 11397//10141 +f 21094//19834 21095//19835 11397//10141 11398//10142 +f 21095//19835 21094//19834 11254//9998 11256//10000 +f 21096//19836 21095//19835 11256//10000 10730//9474 +f 21097//19837 21098//19838 12206//10950 12210//10954 +f 21096//19836 21097//19837 12210//10954 11399//10143 +f 21097//19837 21096//19836 10730//9474 10729//9473 +f 21098//19838 21097//19837 10729//9473 10724//9468 +f 21099//19839 21100//19840 12194//10938 12202//10946 +f 21098//19838 21099//19839 12202//10946 12206//10950 +f 21099//19839 21098//19838 10724//9468 10723//9467 +f 21100//19840 21099//19839 10723//9467 10727//9471 +f 21101//19841 21102//19842 12190//10934 12192//10936 +f 21100//19840 21101//19841 12192//10936 12194//10938 +f 21101//19841 21100//19840 10727//9471 11169//9913 +f 21102//19842 21101//19841 11169//9913 11164//9908 +f 21103//19843 21104//19844 12124//10868 12189//10933 +f 21102//19842 21103//19843 12189//10933 12190//10934 +f 21103//19843 21102//19842 11164//9908 11163//9907 +f 21104//19844 21103//19843 11163//9907 11167//9911 +f 21105//19845 21106//19846 12118//10862 12120//10864 +f 21104//19844 21105//19845 12120//10864 12124//10868 +f 21105//19845 21104//19844 11167//9911 11362//10106 +f 21106//19846 21105//19845 11362//10106 9657//8401 +f 21107//19847 21108//19848 12108//10852 12116//10860 +f 21106//19846 21107//19847 12116//10860 12118//10862 +f 21107//19847 21106//19846 9657//8401 9656//8400 +f 21108//19848 21107//19847 9656//8400 9643//8387 +f 21109//19849 21110//19850 12105//10849 12104//10848 +f 21108//19848 21109//19849 12104//10848 12108//10852 +f 21109//19849 21108//19848 9643//8387 9642//8386 +f 21110//19850 21109//19849 9642//8386 9637//8381 +f 21111//19851 21112//19852 11956//10700 12110//10854 +f 21110//19850 21111//19851 12110//10854 12105//10849 +f 21111//19851 21110//19850 9637//8381 9636//8380 +f 21112//19852 21111//19851 9636//8380 9632//8376 +f 21113//19853 21114//19854 11950//10694 11952//10696 +f 21112//19852 21113//19853 11952//10696 11956//10700 +f 21113//19853 21112//19852 9632//8376 9631//8375 +f 21114//19854 21113//19853 9631//8375 9589//8333 +f 21115//19855 21116//19856 11940//10684 11946//10690 +f 21114//19854 21115//19855 11946//10690 11950//10694 +f 21115//19855 21114//19854 9589//8333 9588//8332 +f 21116//19856 21115//19855 9588//8332 9582//8326 +f 21117//19857 21118//19858 11932//10676 11936//10680 +f 21116//19856 21117//19857 11936//10680 11940//10684 +f 21117//19857 21116//19856 9582//8326 9581//8325 +f 21118//19858 21117//19857 9581//8325 9525//8269 +f 21119//19859 21120//19860 11920//10664 11928//10672 +f 21118//19858 21119//19859 11928//10672 11932//10676 +f 21119//19859 21118//19858 9525//8269 9524//8268 +f 21120//19860 21119//19859 9524//8268 9519//8263 +f 21121//19861 21122//19862 11912//10656 11918//10662 +f 21120//19860 21121//19861 11918//10662 11920//10664 +f 21121//19861 21120//19860 9519//8263 9518//8262 +f 21122//19862 21121//19861 9518//8262 9512//8256 +f 21123//19863 21124//19864 11900//10644 11910//10654 +f 21122//19862 21123//19863 11910//10654 11912//10656 +f 21123//19863 21122//19862 9512//8256 9511//8255 +f 21124//19864 21123//19863 9511//8255 9515//8259 +f 21125//19865 21126//19866 11897//10641 11896//10640 +f 21124//19864 21125//19865 11896//10640 11900//10644 +f 21125//19865 21124//19864 9515//8259 11262//10006 +f 21126//19866 21125//19865 11262//10006 11264//10008 +f 21127//19867 21128//19868 13291//12034 13294//12037 +f 21126//19866 21127//19867 13294//12037 11897//10641 +f 21127//19867 21126//19866 11264//10008 11364//10108 +f 21128//19868 21127//19867 11364//10108 11267//10011 +f 21129//19869 21130//19870 13288//12031 13287//12030 +f 21128//19868 21129//19869 13287//12030 13291//12034 +f 21129//19869 21128//19868 11267//10011 11266//10010 +f 21130//19870 21129//19869 11266//10010 11272//10016 +f 21131//19871 21132//19872 13343//12086 13341//12084 +f 21133//19873 21131//19871 13341//12084 13342//12085 +f 21131//19871 21133//19873 11377//10121 11376//10120 +f 21132//19872 21131//19871 11376//10120 11383//10127 +f 21134//19874 21135//19875 14338//13079 14337//13078 +f 21132//19872 21134//19874 14337//13078 13343//12086 +f 21134//19874 21132//19872 11383//10127 12555//11298 +f 21135//19875 21134//19874 12555//11298 12557//11300 +f 21136//19876 21137//19877 14172//12914 15129//13870 +f 21135//19875 21136//19876 15129//13870 14338//13079 +f 21136//19876 21135//19875 12557//11300 13183//11926 +f 21137//19877 21136//19876 13183//11926 13185//11928 +f 21138//19878 21139//19879 13333//12076 14170//12912 +f 21137//19877 21138//19878 14170//12912 14172//12914 +f 21138//19878 21137//19877 13185//11928 13187//11930 +f 21139//19879 21138//19878 13187//11930 13189//11932 +f 21140//19880 21141//19881 13334//12077 13332//12075 +f 21139//19879 21140//19880 13332//12075 13333//12076 +f 21140//19880 21139//19879 13189//11932 13191//11934 +f 21141//19881 21140//19880 13191//11934 12665//11408 +f 21142//19882 21143//19883 14141//12883 14145//12887 +f 21141//19881 21142//19882 14145//12887 13334//12077 +f 21142//19882 21141//19881 12665//11408 12664//11407 +f 21143//19883 21142//19882 12664//11407 12659//11402 +f 21144//19884 21145//19885 14129//12871 14137//12879 +f 21143//19883 21144//19884 14137//12879 14141//12883 +f 21144//19884 21143//19883 12659//11402 12658//11401 +f 21145//19885 21144//19884 12658//11401 12662//11405 +f 21146//19886 21147//19887 14125//12867 14127//12869 +f 21145//19885 21146//19886 14127//12869 14129//12871 +f 21146//19886 21145//19885 12662//11405 13104//11847 +f 21147//19887 21146//19886 13104//11847 13099//11842 +f 21148//19888 21149//19889 14059//12801 14124//12866 +f 21147//19887 21148//19888 14124//12866 14125//12867 +f 21148//19888 21147//19887 13099//11842 13098//11841 +f 21149//19889 21148//19888 13098//11841 13102//11845 +f 21150//19890 21151//19891 14053//12795 14055//12797 +f 21149//19889 21150//19890 14055//12797 14059//12801 +f 21150//19890 21149//19889 13102//11845 13297//12040 +f 21151//19891 21150//19890 13297//12040 11592//10336 +f 21152//19892 21153//19893 14043//12785 14051//12793 +f 21151//19891 21152//19892 14051//12793 14053//12795 +f 21152//19892 21151//19891 11592//10336 11591//10335 +f 21153//19893 21152//19892 11591//10335 11578//10322 +f 21154//19894 21155//19895 14040//12782 14039//12781 +f 21153//19893 21154//19894 14039//12781 14043//12785 +f 21154//19894 21153//19893 11578//10322 11577//10321 +f 21155//19895 21154//19894 11577//10321 11572//10316 +f 21156//19896 21157//19897 13891//12634 14045//12787 +f 21155//19895 21156//19896 14045//12787 14040//12782 +f 21156//19896 21155//19895 11572//10316 11571//10315 +f 21157//19897 21156//19896 11571//10315 11567//10311 +f 21158//19898 21159//19899 13885//12628 13887//12630 +f 21157//19897 21158//19898 13887//12630 13891//12634 +f 21158//19898 21157//19897 11567//10311 11566//10310 +f 21159//19899 21158//19898 11566//10310 11524//10268 +f 21160//19900 21161//19901 13875//12618 13881//12624 +f 21159//19899 21160//19900 13881//12624 13885//12628 +f 21160//19900 21159//19899 11524//10268 11523//10267 +f 21161//19901 21160//19900 11523//10267 11517//10261 +f 21162//19902 21163//19903 13867//12610 13871//12614 +f 21161//19901 21162//19902 13871//12614 13875//12618 +f 21162//19902 21161//19901 11517//10261 11516//10260 +f 21163//19903 21162//19902 11516//10260 11460//10204 +f 21164//19904 21165//19905 13855//12598 13863//12606 +f 21163//19903 21164//19904 13863//12606 13867//12610 +f 21164//19904 21163//19903 11460//10204 11459//10203 +f 21165//19905 21164//19904 11459//10203 11454//10198 +f 21166//19906 21167//19907 13847//12590 13853//12596 +f 21165//19905 21166//19906 13853//12596 13855//12598 +f 21166//19906 21165//19905 11454//10198 11453//10197 +f 21167//19907 21166//19906 11453//10197 11447//10191 +f 21168//19908 21169//19909 13835//12578 13845//12588 +f 21167//19907 21168//19908 13845//12588 13847//12590 +f 21168//19908 21167//19907 11447//10191 11446//10190 +f 21169//19909 21168//19908 11446//10190 11450//10194 +f 21170//19910 21171//19911 13832//12575 13831//12574 +f 21169//19909 21170//19910 13831//12574 13835//12578 +f 21170//19910 21169//19909 11450//10194 13197//11940 +f 21171//19911 21170//19910 13197//11940 13199//11942 +f 21172//19912 21173//19913 15226//13967 15229//13970 +f 21171//19911 21172//19912 15229//13970 13832//12575 +f 21172//19912 21171//19911 13199//11942 13299//12042 +f 21173//19913 21172//19912 13299//12042 13202//11945 +f 21174//19914 21175//19915 15223//13964 15222//13963 +f 21173//19913 21174//19914 15222//13963 15226//13967 +f 21174//19914 21173//19913 13202//11945 13201//11944 +f 21175//19915 21174//19914 13201//11944 13207//11950 +f 21176//19916 21177//19917 15278//14019 15276//14017 +f 21178//19918 21176//19916 15276//14017 15277//14018 +f 21176//19916 21178//19918 13312//12055 13311//12054 +f 21177//19917 21176//19916 13311//12054 13318//12061 +f 21179//19919 21180//19920 16273//15013 16272//15012 +f 21177//19917 21179//19919 16272//15012 15278//14019 +f 21179//19919 21177//19917 13318//12061 14490//13231 +f 21180//19920 21179//19919 14490//13231 14492//13233 +f 21181//19921 21182//19922 16107//14848 17064//15804 +f 21180//19920 21181//19921 17064//15804 16273//15013 +f 21181//19921 21180//19920 14492//13233 15118//13859 +f 21182//19922 21181//19921 15118//13859 15120//13861 +f 21183//19923 21184//19924 15268//14009 16105//14846 +f 21182//19922 21183//19923 16105//14846 16107//14848 +f 21183//19923 21182//19922 15120//13861 15122//13863 +f 21184//19924 21183//19923 15122//13863 15124//13865 +f 21185//19925 21186//19926 15269//14010 15267//14008 +f 21184//19924 21185//19925 15267//14008 15268//14009 +f 21185//19925 21184//19924 15124//13865 15126//13867 +f 21186//19926 21185//19925 15126//13867 14600//13341 +f 21187//19927 21188//19928 16076//14817 16080//14821 +f 21186//19926 21187//19927 16080//14821 15269//14010 +f 21187//19927 21186//19926 14600//13341 14599//13340 +f 21188//19928 21187//19927 14599//13340 14594//13335 +f 21189//19929 21190//19930 16064//14805 16072//14813 +f 21188//19928 21189//19929 16072//14813 16076//14817 +f 21189//19929 21188//19928 14594//13335 14593//13334 +f 21190//19930 21189//19929 14593//13334 14597//13338 +f 21191//19931 21192//19932 16060//14801 16062//14803 +f 21190//19930 21191//19931 16062//14803 16064//14805 +f 21191//19931 21190//19930 14597//13338 15039//13780 +f 21192//19932 21191//19931 15039//13780 15034//13775 +f 21193//19933 21194//19934 15994//14735 16059//14800 +f 21192//19932 21193//19933 16059//14800 16060//14801 +f 21193//19933 21192//19932 15034//13775 15033//13774 +f 21194//19934 21193//19933 15033//13774 15037//13778 +f 21195//19935 21196//19936 15988//14729 15990//14731 +f 21194//19934 21195//19935 15990//14731 15994//14735 +f 21195//19935 21194//19934 15037//13778 15232//13973 +f 21196//19936 21195//19935 15232//13973 13527//12270 +f 21197//19937 21198//19938 15978//14719 15986//14727 +f 21196//19936 21197//19937 15986//14727 15988//14729 +f 21197//19937 21196//19936 13527//12270 13526//12269 +f 21198//19938 21197//19937 13526//12269 13513//12256 +f 21199//19939 21200//19940 15975//14716 15974//14715 +f 21198//19938 21199//19939 15974//14715 15978//14719 +f 21199//19939 21198//19938 13513//12256 13512//12255 +f 21200//19940 21199//19939 13512//12255 13507//12250 +f 21201//19941 21202//19942 15826//14567 15980//14721 +f 21200//19940 21201//19941 15980//14721 15975//14716 +f 21201//19941 21200//19940 13507//12250 13506//12249 +f 21202//19942 21201//19941 13506//12249 13502//12245 +f 21203//19943 21204//19944 15820//14561 15822//14563 +f 21202//19942 21203//19943 15822//14563 15826//14567 +f 21203//19943 21202//19942 13502//12245 13501//12244 +f 21204//19944 21203//19943 13501//12244 13459//12202 +f 21205//19945 21206//19946 15810//14551 15816//14557 +f 21204//19944 21205//19945 15816//14557 15820//14561 +f 21205//19945 21204//19944 13459//12202 13458//12201 +f 21206//19946 21205//19945 13458//12201 13452//12195 +f 21207//19947 21208//19948 15802//14543 15806//14547 +f 21206//19946 21207//19947 15806//14547 15810//14551 +f 21207//19947 21206//19946 13452//12195 13451//12194 +f 21208//19948 21207//19947 13451//12194 13395//12138 +f 21209//19949 21210//19950 15790//14531 15798//14539 +f 21208//19948 21209//19949 15798//14539 15802//14543 +f 21209//19949 21208//19948 13395//12138 13394//12137 +f 21210//19950 21209//19949 13394//12137 13389//12132 +f 21211//19951 21212//19952 15782//14523 15788//14529 +f 21210//19950 21211//19951 15788//14529 15790//14531 +f 21211//19951 21210//19950 13389//12132 13388//12131 +f 21212//19952 21211//19951 13388//12131 13382//12125 +f 21213//19953 21214//19954 15770//14511 15780//14521 +f 21212//19952 21213//19953 15780//14521 15782//14523 +f 21213//19953 21212//19952 13382//12125 13381//12124 +f 21214//19954 21213//19953 13381//12124 13385//12128 +f 21215//19955 21216//19956 15767//14508 15766//14507 +f 21214//19954 21215//19955 15766//14507 15770//14511 +f 21215//19955 21214//19954 13385//12128 15132//13873 +f 21216//19956 21215//19955 15132//13873 15134//13875 +f 21217//19957 21218//19958 17161//15901 17164//15904 +f 21216//19956 21217//19957 17164//15904 15767//14508 +f 21217//19957 21216//19956 15134//13875 15234//13975 +f 21218//19958 21217//19957 15234//13975 15137//13878 +f 21219//19959 21220//19960 17158//15898 17157//15897 +f 21218//19958 21219//19959 17157//15897 17161//15901 +f 21219//19959 21218//19958 15137//13878 15136//13877 +f 21220//19960 21219//19959 15136//13877 15142//13883 +f 21221//19961 21222//19962 17213//15953 17211//15951 +f 21223//19963 21221//19961 17211//15951 17212//15952 +f 21221//19961 21223//19963 15247//13988 15246//13987 +f 21222//19962 21221//19961 15246//13987 15253//13994 +f 21224//19964 21225//19965 18208//16948 18207//16947 +f 21222//19962 21224//19964 18207//16947 17213//15953 +f 21224//19964 21222//19962 15253//13994 16425//15165 +f 21225//19965 21224//19964 16425//15165 16427//15167 +f 21226//19966 21227//19967 18042//16782 18999//17739 +f 21225//19965 21226//19966 18999//17739 18208//16948 +f 21226//19966 21225//19965 16427//15167 17053//15793 +f 21227//19967 21226//19966 17053//15793 17055//15795 +f 21228//19968 21229//19969 17203//15943 18040//16780 +f 21227//19967 21228//19968 18040//16780 18042//16782 +f 21228//19968 21227//19967 17055//15795 17057//15797 +f 21229//19969 21228//19968 17057//15797 17059//15799 +f 21230//19970 21231//19971 17204//15944 17202//15942 +f 21229//19969 21230//19970 17202//15942 17203//15943 +f 21230//19970 21229//19969 17059//15799 17061//15801 +f 21231//19971 21230//19970 17061//15801 16535//15275 +f 21232//19972 21233//19973 18011//16751 18015//16755 +f 21231//19971 21232//19972 18015//16755 17204//15944 +f 21232//19972 21231//19971 16535//15275 16534//15274 +f 21233//19973 21232//19972 16534//15274 16529//15269 +f 21234//19974 21235//19975 17999//16739 18007//16747 +f 21233//19973 21234//19974 18007//16747 18011//16751 +f 21234//19974 21233//19973 16529//15269 16528//15268 +f 21235//19975 21234//19974 16528//15268 16532//15272 +f 21236//19976 21237//19977 17995//16735 17997//16737 +f 21235//19975 21236//19976 17997//16737 17999//16739 +f 21236//19976 21235//19975 16532//15272 16974//15714 +f 21237//19977 21236//19976 16974//15714 16969//15709 +f 21238//19978 21239//19979 17929//16669 17994//16734 +f 21237//19977 21238//19978 17994//16734 17995//16735 +f 21238//19978 21237//19977 16969//15709 16968//15708 +f 21239//19979 21238//19978 16968//15708 16972//15712 +f 21240//19980 21241//19981 17923//16663 17925//16665 +f 21239//19979 21240//19980 17925//16665 17929//16669 +f 21240//19980 21239//19979 16972//15712 17167//15907 +f 21241//19981 21240//19980 17167//15907 15462//14203 +f 21242//19982 21243//19983 17913//16653 17921//16661 +f 21241//19981 21242//19982 17921//16661 17923//16663 +f 21242//19982 21241//19981 15462//14203 15461//14202 +f 21243//19983 21242//19982 15461//14202 15448//14189 +f 21244//19984 21245//19985 17910//16650 17909//16649 +f 21243//19983 21244//19984 17909//16649 17913//16653 +f 21244//19984 21243//19983 15448//14189 15447//14188 +f 21245//19985 21244//19984 15447//14188 15442//14183 +f 21246//19986 21247//19987 17761//16501 17915//16655 +f 21245//19985 21246//19986 17915//16655 17910//16650 +f 21246//19986 21245//19985 15442//14183 15441//14182 +f 21247//19987 21246//19986 15441//14182 15437//14178 +f 21248//19988 21249//19989 17755//16495 17757//16497 +f 21247//19987 21248//19988 17757//16497 17761//16501 +f 21248//19988 21247//19987 15437//14178 15436//14177 +f 21249//19989 21248//19988 15436//14177 15394//14135 +f 21250//19990 21251//19991 17745//16485 17751//16491 +f 21249//19989 21250//19990 17751//16491 17755//16495 +f 21250//19990 21249//19989 15394//14135 15393//14134 +f 21251//19991 21250//19990 15393//14134 15387//14128 +f 21252//19992 21253//19993 17737//16477 17741//16481 +f 21251//19991 21252//19992 17741//16481 17745//16485 +f 21252//19992 21251//19991 15387//14128 15386//14127 +f 21253//19993 21252//19992 15386//14127 15330//14071 +f 21254//19994 21255//19995 17725//16465 17733//16473 +f 21253//19993 21254//19994 17733//16473 17737//16477 +f 21254//19994 21253//19993 15330//14071 15329//14070 +f 21255//19995 21254//19994 15329//14070 15324//14065 +f 21256//19996 21257//19997 17717//16457 17723//16463 +f 21255//19995 21256//19996 17723//16463 17725//16465 +f 21256//19996 21255//19995 15324//14065 15323//14064 +f 21257//19997 21256//19996 15323//14064 15317//14058 +f 21258//19998 21259//19999 17705//16445 17715//16455 +f 21257//19997 21258//19998 17715//16455 17717//16457 +f 21258//19998 21257//19997 15317//14058 15316//14057 +f 21259//19999 21258//19998 15316//14057 15320//14061 +f 21260//20000 21261//20001 17702//16442 17701//16441 +f 21259//19999 21260//20000 17701//16441 17705//16445 +f 21260//20000 21259//19999 15320//14061 17067//15807 +f 21261//20001 21260//20000 17067//15807 17069//15809 +f 21262//20002 21263//20003 19096//17836 19099//17839 +f 21261//20001 21262//20002 19099//17839 17702//16442 +f 21262//20002 21261//20001 17069//15809 17169//15909 +f 21263//20003 21262//20002 17169//15909 17072//15812 +f 21264//20004 21265//20005 19093//17833 19092//17832 +f 21263//20003 21264//20004 19092//17832 19096//17836 +f 21264//20004 21263//20003 17072//15812 17071//15811 +f 21265//20005 21264//20004 17071//15811 17077//15817 +f 21266//20006 21267//20007 19148//17888 19146//17886 +f 21268//20008 21266//20006 19146//17886 19147//17887 +f 21266//20006 21268//20008 17182//15922 17181//15921 +f 21267//20007 21266//20006 17181//15921 17188//15928 +f 21269//20009 21270//20010 20143//18883 20142//18882 +f 21267//20007 21269//20009 20142//18882 19148//17888 +f 21269//20009 21267//20007 17188//15928 18360//17100 +f 21270//20010 21269//20009 18360//17100 18362//17102 +f 21271//20011 21272//20012 19977//18717 20934//19674 +f 21270//20010 21271//20011 20934//19674 20143//18883 +f 21271//20011 21270//20010 18362//17102 18988//17728 +f 21272//20012 21271//20011 18988//17728 18990//17730 +f 21273//20013 21274//20014 19138//17878 19975//18715 +f 21272//20012 21273//20013 19975//18715 19977//18717 +f 21273//20013 21272//20012 18990//17730 18992//17732 +f 21274//20014 21273//20013 18992//17732 18994//17734 +f 21275//20015 21276//20016 19139//17879 19137//17877 +f 21274//20014 21275//20015 19137//17877 19138//17878 +f 21275//20015 21274//20014 18994//17734 18996//17736 +f 21276//20016 21275//20015 18996//17736 18470//17210 +f 21277//20017 21278//20018 19946//18686 19950//18690 +f 21276//20016 21277//20017 19950//18690 19139//17879 +f 21277//20017 21276//20016 18470//17210 18469//17209 +f 21278//20018 21277//20017 18469//17209 18464//17204 +f 21279//20019 21280//20020 19934//18674 19942//18682 +f 21278//20018 21279//20019 19942//18682 19946//18686 +f 21279//20019 21278//20018 18464//17204 18463//17203 +f 21280//20020 21279//20019 18463//17203 18467//17207 +f 21281//20021 21282//20022 19930//18670 19932//18672 +f 21280//20020 21281//20021 19932//18672 19934//18674 +f 21281//20021 21280//20020 18467//17207 18909//17649 +f 21282//20022 21281//20021 18909//17649 18904//17644 +f 21283//20023 21284//20024 19864//18604 19929//18669 +f 21282//20022 21283//20023 19929//18669 19930//18670 +f 21283//20023 21282//20022 18904//17644 18903//17643 +f 21284//20024 21283//20023 18903//17643 18907//17647 +f 21285//20025 21286//20026 19858//18598 19860//18600 +f 21284//20024 21285//20025 19860//18600 19864//18604 +f 21285//20025 21284//20024 18907//17647 19102//17842 +f 21286//20026 21285//20025 19102//17842 17397//16137 +f 21287//20027 21288//20028 19848//18588 19856//18596 +f 21286//20026 21287//20027 19856//18596 19858//18598 +f 21287//20027 21286//20026 17397//16137 17396//16136 +f 21288//20028 21287//20027 17396//16136 17383//16123 +f 21289//20029 21290//20030 19845//18585 19844//18584 +f 21288//20028 21289//20029 19844//18584 19848//18588 +f 21289//20029 21288//20028 17383//16123 17382//16122 +f 21290//20030 21289//20029 17382//16122 17377//16117 +f 21291//20031 21292//20032 19696//18436 19850//18590 +f 21290//20030 21291//20031 19850//18590 19845//18585 +f 21291//20031 21290//20030 17377//16117 17376//16116 +f 21292//20032 21291//20031 17376//16116 17372//16112 +f 21293//20033 21294//20034 19690//18430 19692//18432 +f 21292//20032 21293//20033 19692//18432 19696//18436 +f 21293//20033 21292//20032 17372//16112 17371//16111 +f 21294//20034 21293//20033 17371//16111 17329//16069 +f 21295//20035 21296//20036 19680//18420 19686//18426 +f 21294//20034 21295//20035 19686//18426 19690//18430 +f 21295//20035 21294//20034 17329//16069 17328//16068 +f 21296//20036 21295//20035 17328//16068 17322//16062 +f 21297//20037 21298//20038 19672//18412 19676//18416 +f 21296//20036 21297//20037 19676//18416 19680//18420 +f 21297//20037 21296//20036 17322//16062 17321//16061 +f 21298//20038 21297//20037 17321//16061 17265//16005 +f 21299//20039 21300//20040 19660//18400 19668//18408 +f 21298//20038 21299//20039 19668//18408 19672//18412 +f 21299//20039 21298//20038 17265//16005 17264//16004 +f 21300//20040 21299//20039 17264//16004 17259//15999 +f 21301//20041 21302//20042 19652//18392 19658//18398 +f 21300//20040 21301//20041 19658//18398 19660//18400 +f 21301//20041 21300//20040 17259//15999 17258//15998 +f 21302//20042 21301//20041 17258//15998 17252//15992 +f 21303//20043 21304//20044 19640//18380 19650//18390 +f 21302//20042 21303//20043 19650//18390 19652//18392 +f 21303//20043 21302//20042 17252//15992 17251//15991 +f 21304//20044 21303//20043 17251//15991 17255//15995 +f 21305//20045 21306//20046 19637//18377 19636//18376 +f 21304//20044 21305//20045 19636//18376 19640//18380 +f 21305//20045 21304//20044 17255//15995 19002//17742 +f 21306//20046 21305//20045 19002//17742 19004//17744 +f 21307//20047 21308//20048 21031//19771 21034//19774 +f 21306//20046 21307//20047 21034//19774 19637//18377 +f 21307//20047 21306//20046 19004//17744 19104//17844 +f 21308//20048 21307//20047 19104//17844 19007//17747 +f 21309//20049 21310//20050 21028//19768 21027//19767 +f 21308//20048 21309//20049 21027//19767 21031//19771 +f 21309//20049 21308//20048 19007//17747 19006//17746 +f 21310//20050 21309//20049 19006//17746 19012//17752 +f 21311//20051 21312//20052 20942//19682 20941//19681 +f 21313//20053 21311//20051 20941//19681 20947//19687 +f 21311//20051 21313//20053 9418//8162 9417//8161 +f 21312//20052 21311//20051 9417//8161 9421//8165 +f 21314//20054 21315//20055 20939//19679 21039//19779 +f 21312//20052 21314//20054 21039//19779 20942//19682 +f 21314//20054 21312//20052 9421//8165 9424//8168 +f 21315//20055 21314//20054 9424//8168 8027//6772 +f 21316//20056 21317//20057 19190//17930 20937//19677 +f 21315//20055 21316//20056 20937//19677 20939//19679 +f 21316//20056 21315//20055 8027//6772 8026//6771 +f 21317//20057 21316//20056 8026//6771 8030//6775 +f 21318//20058 21319//20059 19187//17927 19186//17926 +f 21317//20057 21318//20058 19186//17926 19190//17930 +f 21318//20058 21317//20057 8030//6775 8040//6785 +f 21319//20059 21318//20058 8040//6785 8042//6787 +f 21320//20060 21321//20061 19194//17934 19193//17933 +f 21319//20059 21320//20060 19193//17933 19187//17927 +f 21320//20060 21319//20059 8042//6787 8048//6793 +f 21321//20061 21320//20060 8048//6793 8050//6795 +f 21322//20062 21323//20063 19200//17940 19199//17939 +f 21321//20061 21322//20062 19199//17939 19194//17934 +f 21322//20062 21321//20061 8050//6795 8058//6803 +f 21323//20063 21322//20062 8058//6803 8062//6807 +f 21324//20064 21325//20065 19257//17997 19256//17996 +f 21323//20063 21324//20064 19256//17996 19200//17940 +f 21324//20064 21323//20063 8062//6807 8066//6811 +f 21325//20065 21324//20064 8066//6811 8070//6815 +f 21326//20066 21327//20067 19264//18004 19263//18003 +f 21325//20065 21326//20066 19263//18003 19257//17997 +f 21326//20066 21325//20065 8070//6815 8076//6821 +f 21327//20067 21326//20066 8076//6821 8080//6825 +f 21328//20068 21329//20069 19307//18047 19306//18046 +f 21327//20067 21328//20068 19306//18046 19264//18004 +f 21328//20068 21327//20067 8080//6825 8082//6827 +f 21329//20069 21328//20068 8082//6827 8086//6831 +f 21330//20070 21331//20071 19312//18052 19311//18051 +f 21329//20069 21330//20070 19311//18051 19307//18047 +f 21330//20070 21329//20069 8086//6831 8240//6985 +f 21331//20071 21330//20070 8240//6985 8235//6980 +f 21332//20072 21333//20073 19318//18058 19317//18057 +f 21331//20071 21332//20072 19317//18057 19312//18052 +f 21332//20072 21331//20071 8235//6980 8234//6979 +f 21333//20073 21332//20072 8234//6979 8238//6983 +f 21334//20074 21335//20075 19332//18072 19331//18071 +f 21333//20073 21334//20074 19331//18071 19318//18058 +f 21334//20074 21333//20073 8238//6983 8246//6991 +f 21335//20075 21334//20074 8246//6991 8248//6993 +f 21336//20076 21337//20077 20842//19582 21037//19777 +f 21335//20075 21336//20076 21037//19777 19332//18072 +f 21336//20076 21335//20075 8248//6993 8250//6995 +f 21337//20077 21336//20076 8250//6995 8254//6999 +f 21338//20078 21339//20079 20839//19579 20838//19578 +f 21337//20077 21338//20078 20838//19578 20842//19582 +f 21338//20078 21337//20077 8254//6999 8319//7064 +f 21339//20079 21338//20078 8319//7064 8320//7065 +f 21340//20080 21341//20081 20402//19142 20844//19584 +f 21339//20079 21340//20080 20844//19584 20839//19579 +f 21340//20080 21339//20079 8320//7065 8322//7067 +f 21341//20081 21340//20080 8322//7067 8324//7069 +f 21342//20082 21343//20083 20399//19139 20398//19138 +f 21341//20081 21342//20082 20398//19138 20402//19142 +f 21342//20082 21341//20081 8324//7069 8332//7077 +f 21343//20083 21342//20082 8332//7077 8336//7081 +f 21344//20084 21345//20085 20405//19145 20404//19144 +f 21343//20083 21344//20084 20404//19144 20399//19139 +f 21344//20084 21343//20083 8336//7081 8340//7085 +f 21345//20085 21344//20084 8340//7085 7529//6274 +f 21346//20086 21347//20087 20929//19669 20931//19671 +f 21345//20085 21346//20086 20931//19671 20405//19145 +f 21346//20086 21345//20085 7529//6274 7527//6272 +f 21347//20087 21346//20086 7527//6272 7528//6273 +f 21348//20088 21349//20089 20925//19665 20927//19667 +f 21347//20087 21348//20088 20927//19667 20929//19669 +f 21348//20088 21347//20087 7528//6273 8365//7110 +f 21349//20089 21348//20088 8365//7110 8367//7112 +f 21350//20090 21351//20091 20297//19037 20923//19663 +f 21349//20089 21350//20090 20923//19663 20925//19665 +f 21350//20090 21349//20089 8367//7112 9324//8068 +f 21351//20091 21350//20090 9324//8068 8533//7277 +f 21352//20092 21353//20093 19123//17863 20295//19035 +f 21351//20091 21352//20092 20295//19035 20297//19037 +f 21352//20092 21351//20091 8533//7277 8532//7276 +f 21353//20093 21352//20092 8532//7276 7538//6283 +f 21354//20094 21355//20095 19117//17857 19116//17856 +f 21353//20093 21354//20094 19116//17856 19123//17863 +f 21354//20094 21353//20093 7538//6283 7536//6281 +f 21355//20095 21354//20094 7536//6281 7537//6282 +f 21356//20096 21357//20096 21358//20096 21359//20096 +f 21360//20097 21361//20098 21357//20099 21356//20100 +f 21362//20101 21357//20099 21361//20098 21363//20102 +f 21364//20103 21358//20104 21357//20099 21362//20101 +f 21365//20105 21366//20106 21367//20107 21368//20108 +f 21359//20109 21358//20104 21366//20106 21365//20105 +f 21369//20110 21366//20106 21358//20104 21364//20103 +f 21370//20111 21367//20107 21366//20106 21369//20110 +f 21371//20112 21372//20113 21373//20114 21374//20115 +f 21368//20108 21367//20107 21372//20113 21371//20112 +f 21375//20116 21372//20113 21367//20107 21370//20111 +f 21376//20117 21373//20114 21372//20113 21375//20116 +f 21377//20118 21378//20119 21379//20120 21380//20121 +f 21374//20115 21373//20114 21378//20119 21377//20118 +f 21381//20122 21378//20119 21373//20114 21376//20117 +f 21382//20123 21379//20120 21378//20119 21381//20122 +f 21383//20124 21384//20125 21385//20126 21386//20127 +f 21380//20121 21379//20120 21384//20125 21383//20124 +f 21387//20128 21384//20125 21379//20120 21382//20123 +f 21388//20129 21385//20126 21384//20125 21387//20128 +f 21389//20130 21390//20131 21391//20132 21392//20133 +f 21386//20127 21385//20126 21390//20131 21389//20130 +f 21393//20134 21390//20131 21385//20126 21388//20129 +f 21394//20135 21391//20132 21390//20131 21393//20134 +f 21395//20136 21396//20137 21397//20138 21398//20139 +f 21392//20133 21391//20132 21396//20137 21395//20136 +f 21399//20140 21396//20137 21391//20132 21394//20135 +f 21400//20141 21397//20138 21396//20137 21399//20140 +f 21401//20142 21402//20143 21403//20144 21404//20145 +f 21398//20139 21397//20138 21402//20143 21401//20142 +f 21405//20146 21402//20143 21397//20138 21400//20141 +f 21406//20147 21403//20144 21402//20143 21405//20146 +f 21407//20148 21408//20149 21409//20150 21410//20151 +f 21404//20145 21403//20144 21408//20149 21407//20148 +f 21411//20152 21408//20149 21403//20144 21406//20147 +f 21412//20153 21409//20150 21408//20149 21411//20152 +f 21413//20154 21414//20155 21415//20156 21416//20157 +f 21410//20151 21409//20150 21414//20155 21413//20154 +f 21417//20158 21414//20155 21409//20150 21412//20153 +f 21418//20159 21415//20156 21414//20155 21417//20158 +f 21419//20160 21420//20161 21421//20162 21422//20163 +f 21416//20157 21415//20156 21420//20161 21419//20160 +f 21423//20164 21420//20161 21415//20156 21418//20159 +f 21424//20165 21421//20162 21420//20161 21423//20164 +f 21425//20166 21426//20167 21427//20168 21428//20169 +f 21422//20163 21421//20162 21426//20167 21425//20166 +f 21429//20170 21426//20167 21421//20162 21424//20165 +f 21430//20171 21427//20168 21426//20167 21429//20170 +f 21431//20172 21432//20173 21433//20174 21434//20175 +f 21428//20169 21427//20168 21432//20173 21431//20172 +f 21435//20176 21432//20173 21427//20168 21430//20171 +f 21436//20177 21433//20174 21432//20173 21435//20176 +f 21437//20178 21438//20179 21439//20180 21440//20181 +f 21434//20175 21433//20174 21438//20179 21437//20178 +f 21441//20182 21438//20179 21433//20174 21436//20177 +f 21442//20183 21439//20180 21438//20179 21441//20182 +f 21443//20184 21444//20185 21445//20186 21446//20187 +f 21440//20181 21439//20180 21444//20185 21443//20184 +f 21447//20188 21444//20185 21439//20180 21442//20183 +f 21448//20189 21445//20186 21444//20185 21447//20188 +f 21449//20190 21450//20191 21451//20192 21452//20193 +f 21446//20187 21445//20186 21450//20191 21449//20190 +f 21453//20194 21450//20191 21445//20186 21448//20189 +f 21454//20195 21451//20192 21450//20191 21453//20194 +f 21455//20196 21456//20197 21457//20198 21458//20199 +f 21452//20193 21451//20192 21456//20197 21455//20196 +f 21459//20200 21456//20197 21451//20192 21454//20195 +f 21460//20201 21457//20198 21456//20197 21459//20200 +f 21461//20202 21462//20203 21463//20204 21464//20205 +f 21458//20199 21457//20198 21462//20203 21461//20202 +f 21465//20206 21462//20203 21457//20198 21460//20201 +f 21466//20207 21463//20204 21462//20203 21465//20206 +f 21467//20208 21468//20209 21469//20210 21470//20211 +f 21464//20205 21463//20204 21468//20209 21467//20208 +f 21471//20212 21468//20209 21463//20204 21466//20207 +f 21472//20213 21469//20210 21468//20209 21471//20212 +f 21473//20214 21474//20215 21475//20216 21476//20217 +f 21470//20211 21469//20210 21474//20215 21473//20214 +f 21477//20218 21474//20215 21469//20210 21472//20213 +f 21478//20219 21475//20216 21474//20215 21477//20218 +f 21479//20220 21480//20221 21481//20222 21482//20223 +f 21476//20217 21475//20216 21480//20221 21479//20220 +f 21483//20224 21480//20221 21475//20216 21478//20219 +f 21484//20225 21481//20222 21480//20221 21483//20224 +f 21485//20226 21486//20227 21487//20228 21488//20229 +f 21482//20223 21481//20222 21486//20227 21485//20226 +f 21489//20230 21486//20227 21481//20222 21484//20225 +f 21490//20231 21487//20228 21486//20227 21489//20230 +f 21491//20232 21492//20233 21493//20234 21494//20235 +f 21488//20229 21487//20228 21492//20233 21491//20232 +f 21495//20236 21492//20233 21487//20228 21490//20231 +f 21496//20237 21493//20234 21492//20233 21495//20236 +f 21497//20238 21498//20239 21499//20240 21500//20241 +f 21494//20235 21493//20234 21498//20239 21497//20238 +f 21501//20242 21498//20239 21493//20234 21496//20237 +f 21502//20243 21499//20240 21498//20239 21501//20242 +f 21503//20244 21504//20245 21505//20246 21506//20247 +f 21500//20241 21499//20240 21504//20245 21503//20244 +f 21507//20248 21504//20245 21499//20240 21502//20243 +f 21508//20249 21505//20246 21504//20245 21507//20248 +f 21509//20250 21510//20251 21511//20252 21512//20253 +f 21506//20247 21505//20246 21510//20251 21509//20250 +f 21513//20254 21510//20251 21505//20246 21508//20249 +f 21514//20255 21511//20252 21510//20251 21513//20254 +f 21515//20256 21516//20257 21517//20258 21518//20259 +f 21512//20253 21511//20252 21516//20257 21515//20256 +f 21519//20260 21516//20257 21511//20252 21514//20255 +f 21520//20261 21517//20258 21516//20257 21519//20260 +f 21521//20262 21522//20263 21523//20264 21524//20265 +f 21518//20259 21517//20258 21522//20263 21521//20262 +f 21525//20266 21522//20263 21517//20258 21520//20261 +f 21526//20267 21523//20264 21522//20263 21525//20266 +f 21527//20268 21528//20269 21529//20270 21530//20271 +f 21524//20265 21523//20264 21528//20269 21527//20268 +f 21531//20272 21528//20269 21523//20264 21526//20267 +f 21532//20273 21529//20270 21528//20269 21531//20272 +f 21533//20274 21534//20275 21535//20276 21536//20277 +f 21530//20271 21529//20270 21534//20275 21533//20274 +f 21537//20278 21534//20275 21529//20270 21532//20273 +f 21538//20279 21535//20276 21534//20275 21537//20278 +f 21539//20280 21540//20281 21541//20282 21542//20283 +f 21536//20277 21535//20276 21540//20281 21539//20280 +f 21543//20284 21540//20281 21535//20276 21538//20279 +f 21544//20285 21541//20282 21540//20281 21543//20284 +f 21545//20286 21546//20287 21547//20288 21548//20289 +f 21542//20283 21541//20282 21546//20287 21545//20286 +f 21549//20290 21546//20287 21541//20282 21544//20285 +f 21550//20291 21547//20288 21546//20287 21549//20290 +f 21551//20292 21552//20293 21553//20294 21554//20295 +f 21548//20289 21547//20288 21552//20293 21551//20292 +f 21555//20296 21552//20293 21547//20288 21550//20291 +f 21556//20297 21553//20294 21552//20293 21555//20296 +f 21557//20298 21558//20299 21559//20300 21560//20301 +f 21554//20295 21553//20294 21558//20299 21557//20298 +f 21561//20302 21558//20299 21553//20294 21556//20297 +f 21562//20303 21559//20300 21558//20299 21561//20302 +f 21563//20304 21564//20305 21565//20306 21566//20307 +f 21560//20301 21559//20300 21564//20305 21563//20304 +f 21567//20308 21564//20305 21559//20300 21562//20303 +f 21568//20309 21565//20306 21564//20305 21567//20308 +f 21569//20310 21570//20311 21571//20312 21572//20313 +f 21566//20307 21565//20306 21570//20311 21569//20310 +f 21573//20314 21570//20311 21565//20306 21568//20309 +f 21574//20315 21571//20312 21570//20311 21573//20314 +f 21575//20316 21576//20317 21577//20318 21578//20319 +f 21572//20313 21571//20312 21576//20317 21575//20316 +f 21579//20320 21576//20317 21571//20312 21574//20315 +f 21580//20321 21577//20318 21576//20317 21579//20320 +f 21581//20322 21582//20323 21583//20324 21584//20325 +f 21578//20319 21577//20318 21582//20323 21581//20322 +f 21585//20326 21582//20323 21577//20318 21580//20321 +f 21586//20327 21583//20324 21582//20323 21585//20326 +f 21587//20328 21588//20329 21589//20330 21590//20331 +f 21584//20325 21583//20324 21588//20329 21587//20328 +f 21591//20332 21588//20329 21583//20324 21586//20327 +f 21592//20333 21589//20330 21588//20329 21591//20332 +f 21593//20334 21594//20335 21361//20098 21360//20097 +f 21590//20331 21589//20330 21594//20335 21593//20334 +f 21595//20336 21594//20335 21589//20330 21592//20333 +f 21363//20102 21361//20098 21594//20335 21595//20336 +f 21596//20337 21597//20338 21598//20339 21599//20340 +f 21600//20341 21601//20342 21597//20338 21596//20337 +f 21602//20343 21597//20338 21601//20342 21603//20344 +f 21604//20345 21598//20339 21597//20338 21602//20343 +f 21602//20343 21605//20346 21606//20347 21604//20345 +f 21603//20344 21607//20348 21605//20346 21602//20343 +f 21608//20349 21605//20346 21607//20348 21609//20350 +f 21610//20351 21606//20347 21605//20346 21608//20349 +f 21608//20349 21611//20352 21612//20353 21610//20351 +f 21609//20350 21613//20354 21611//20352 21608//20349 +f 21614//20355 21611//20352 21613//20354 21615//20356 +f 21616//20357 21612//20353 21611//20352 21614//20355 +f 21614//20355 21617//20358 21618//20359 21616//20357 +f 21615//20356 21619//20360 21617//20358 21614//20355 +f 21620//20361 21617//20358 21619//20360 21621//20362 +f 21622//20363 21618//20359 21617//20358 21620//20361 +f 21620//20361 21623//20364 21624//20365 21622//20363 +f 21621//20362 21625//20366 21623//20364 21620//20361 +f 21626//20367 21623//20364 21625//20366 21627//20368 +f 21628//20369 21624//20365 21623//20364 21626//20367 +f 21626//20367 21629//20370 21630//20371 21628//20369 +f 21627//20368 21631//20372 21629//20370 21626//20367 +f 21632//20373 21629//20370 21631//20372 21633//20374 +f 21634//20375 21630//20371 21629//20370 21632//20373 +f 21632//20373 21635//20376 21636//20377 21634//20375 +f 21633//20374 21637//20378 21635//20376 21632//20373 +f 21638//20379 21635//20376 21637//20378 21639//20380 +f 21640//20381 21636//20377 21635//20376 21638//20379 +f 21638//20379 21641//20382 21642//20383 21640//20381 +f 21639//20380 21643//20384 21641//20382 21638//20379 +f 21644//20385 21641//20382 21643//20384 21645//20386 +f 21646//20387 21642//20383 21641//20382 21644//20385 +f 21644//20385 21647//20388 21648//20389 21646//20387 +f 21645//20386 21649//20390 21647//20388 21644//20385 +f 21650//20391 21647//20388 21649//20390 21651//20392 +f 21652//20393 21648//20389 21647//20388 21650//20391 +f 21650//20391 21653//20394 21654//20395 21652//20393 +f 21651//20392 21655//20396 21653//20394 21650//20391 +f 21656//20397 21653//20394 21655//20396 21657//20398 +f 21658//20399 21654//20395 21653//20394 21656//20397 +f 21656//20397 21659//20400 21660//20401 21658//20399 +f 21657//20398 21661//20402 21659//20400 21656//20397 +f 21662//20403 21659//20400 21661//20402 21663//20404 +f 21664//20405 21660//20401 21659//20400 21662//20403 +f 21662//20403 21665//20406 21666//20407 21664//20405 +f 21663//20404 21667//20408 21665//20406 21662//20403 +f 21668//20409 21665//20406 21667//20408 21669//20410 +f 21670//20411 21666//20407 21665//20406 21668//20409 +f 21668//20409 21671//20412 21672//20413 21670//20411 +f 21669//20410 21673//20414 21671//20412 21668//20409 +f 21674//20415 21671//20412 21673//20414 21675//20416 +f 21676//20417 21672//20413 21671//20412 21674//20415 +f 21674//20415 21677//20418 21678//20419 21676//20417 +f 21675//20416 21679//20420 21677//20418 21674//20415 +f 21680//20421 21677//20418 21679//20420 21681//20422 +f 21682//20423 21678//20419 21677//20418 21680//20421 +f 21680//20421 21683//20424 21684//20425 21682//20423 +f 21681//20422 21685//20426 21683//20424 21680//20421 +f 21686//20427 21683//20424 21685//20426 21687//20428 +f 21688//20429 21684//20425 21683//20424 21686//20427 +f 21686//20427 21689//20430 21690//20431 21688//20429 +f 21687//20428 21691//20432 21689//20430 21686//20427 +f 21692//20433 21689//20430 21691//20432 21693//20434 +f 21694//20435 21690//20431 21689//20430 21692//20433 +f 21692//20433 21695//20436 21696//20437 21694//20435 +f 21693//20434 21697//20438 21695//20436 21692//20433 +f 21698//20439 21695//20436 21697//20438 21699//20440 +f 21700//20441 21696//20437 21695//20436 21698//20439 +f 21698//20439 21701//20442 21702//20443 21700//20441 +f 21699//20440 21703//20444 21701//20442 21698//20439 +f 21704//20445 21701//20442 21703//20444 21705//20446 +f 21706//20447 21702//20443 21701//20442 21704//20445 +f 21704//20445 21707//20448 21708//20449 21706//20447 +f 21705//20446 21709//20450 21707//20448 21704//20445 +f 21710//20451 21707//20448 21709//20450 21711//20452 +f 21712//20453 21708//20449 21707//20448 21710//20451 +f 21710//20451 21713//20454 21714//20455 21712//20453 +f 21711//20452 21715//20456 21713//20454 21710//20451 +f 21716//20457 21713//20454 21715//20456 21717//20458 +f 21718//20459 21714//20455 21713//20454 21716//20457 +f 21716//20457 21719//20460 21720//20461 21718//20459 +f 21717//20458 21721//20462 21719//20460 21716//20457 +f 21722//20463 21719//20460 21721//20462 21723//20464 +f 21724//20465 21720//20461 21719//20460 21722//20463 +f 21722//20463 21725//20466 21726//20467 21724//20465 +f 21723//20464 21727//20468 21725//20466 21722//20463 +f 21728//20469 21725//20466 21727//20468 21729//20470 +f 21730//20471 21726//20467 21725//20466 21728//20469 +f 21728//20469 21731//20472 21732//20473 21730//20471 +f 21729//20470 21733//20474 21731//20472 21728//20469 +f 21734//20475 21731//20472 21733//20474 21735//20476 +f 21736//20477 21732//20473 21731//20472 21734//20475 +f 21734//20475 21737//20478 21738//20479 21736//20477 +f 21735//20476 21739//20480 21737//20478 21734//20475 +f 21740//20481 21737//20478 21739//20480 21741//20482 +f 21742//20483 21738//20479 21737//20478 21740//20481 +f 21740//20481 21743//20484 21744//20485 21742//20483 +f 21741//20482 21745//20486 21743//20484 21740//20481 +f 21746//20487 21743//20484 21745//20486 21747//20488 +f 21748//20489 21744//20485 21743//20484 21746//20487 +f 21746//20487 21749//20490 21750//20491 21748//20489 +f 21747//20488 21751//20492 21749//20490 21746//20487 +f 21752//20493 21749//20490 21751//20492 21753//20494 +f 21754//20495 21750//20491 21749//20490 21752//20493 +f 21752//20493 21755//20496 21756//20497 21754//20495 +f 21753//20494 21757//20498 21755//20496 21752//20493 +f 21758//20499 21755//20496 21757//20498 21759//20500 +f 21760//20501 21756//20497 21755//20496 21758//20499 +f 21758//20499 21761//20502 21762//20503 21760//20501 +f 21759//20500 21763//20504 21761//20502 21758//20499 +f 21764//20505 21761//20502 21763//20504 21765//20506 +f 21766//20507 21762//20503 21761//20502 21764//20505 +f 21764//20505 21767//20508 21768//20509 21766//20507 +f 21765//20506 21769//20510 21767//20508 21764//20505 +f 21770//20511 21767//20508 21769//20510 21771//20512 +f 21772//20513 21768//20509 21767//20508 21770//20511 +f 21770//20511 21773//20514 21774//20515 21772//20513 +f 21771//20512 21775//20516 21773//20514 21770//20511 +f 21776//20517 21773//20514 21775//20516 21777//20518 +f 21778//20519 21774//20515 21773//20514 21776//20517 +f 21776//20517 21779//20520 21780//20521 21778//20519 +f 21777//20518 21781//20522 21779//20520 21776//20517 +f 21782//20523 21779//20520 21781//20522 21783//20524 +f 21784//20525 21780//20521 21779//20520 21782//20523 +f 21782//20523 21785//20526 21786//20527 21784//20525 +f 21783//20524 21787//20528 21785//20526 21782//20523 +f 21788//20529 21785//20526 21787//20528 21789//20530 +f 21790//20531 21786//20527 21785//20526 21788//20529 +f 21788//20529 21791//20532 21792//20533 21790//20531 +f 21789//20530 21793//20534 21791//20532 21788//20529 +f 21794//20535 21791//20532 21793//20534 21795//20536 +f 21796//20537 21792//20533 21791//20532 21794//20535 +f 21794//20535 21797//20538 21798//20539 21796//20537 +f 21795//20536 21799//20540 21797//20538 21794//20535 +f 21800//20541 21797//20538 21799//20540 21801//20542 +f 21802//20543 21798//20539 21797//20538 21800//20541 +f 21800//20541 21803//20544 21804//20545 21802//20543 +f 21801//20542 21805//20546 21803//20544 21800//20541 +f 21806//20547 21803//20544 21805//20546 21807//20548 +f 21808//20549 21804//20545 21803//20544 21806//20547 +f 21806//20547 21809//20550 21810//20551 21808//20549 +f 21807//20548 21811//20552 21809//20550 21806//20547 +f 21812//20553 21809//20550 21811//20552 21813//20554 +f 21814//20555 21810//20551 21809//20550 21812//20553 +f 21812//20553 21815//20556 21816//20557 21814//20555 +f 21813//20554 21817//20558 21815//20556 21812//20553 +f 21818//20559 21815//20556 21817//20558 21819//20560 +f 21820//20561 21816//20557 21815//20556 21818//20559 +f 21818//20559 21821//20562 21822//20563 21820//20561 +f 21819//20560 21823//20564 21821//20562 21818//20559 +f 21824//20565 21821//20562 21823//20564 21825//20566 +f 21826//20567 21822//20563 21821//20562 21824//20565 +f 21824//20565 21827//20568 21828//20569 21826//20567 +f 21825//20566 21829//20570 21827//20568 21824//20565 +f 21830//20571 21827//20568 21829//20570 21831//20572 +f 21832//20573 21828//20569 21827//20568 21830//20571 +f 21830//20571 21833//20574 21834//20575 21832//20573 +f 21831//20572 21835//20576 21833//20574 21830//20571 +f 21596//20337 21833//20574 21835//20576 21600//20341 +f 21599//20340 21834//20575 21833//20574 21596//20337 +f 21836//20577 21837//20578 21601//20342 21600//20341 +f 21838//20579 21839//20580 21837//20578 21836//20577 +f 21840//20581 21837//20578 21839//20580 21841//20582 +f 21603//20344 21601//20342 21837//20578 21840//20581 +f 21840//20581 21842//20583 21607//20348 21603//20344 +f 21841//20582 21843//20584 21842//20583 21840//20581 +f 21844//20585 21842//20583 21843//20584 21845//20586 +f 21609//20350 21607//20348 21842//20583 21844//20585 +f 21844//20585 21846//20587 21613//20354 21609//20350 +f 21845//20586 21847//20588 21846//20587 21844//20585 +f 21848//20589 21846//20587 21847//20588 21849//20590 +f 21615//20356 21613//20354 21846//20587 21848//20589 +f 21848//20589 21850//20591 21619//20360 21615//20356 +f 21849//20590 21851//20592 21850//20591 21848//20589 +f 21852//20593 21850//20591 21851//20592 21853//20594 +f 21621//20362 21619//20360 21850//20591 21852//20593 +f 21852//20593 21854//20595 21625//20366 21621//20362 +f 21853//20594 21855//20596 21854//20595 21852//20593 +f 21856//20597 21854//20595 21855//20596 21857//20598 +f 21627//20368 21625//20366 21854//20595 21856//20597 +f 21856//20597 21858//20599 21631//20372 21627//20368 +f 21857//20598 21859//20600 21858//20599 21856//20597 +f 21860//20601 21858//20599 21859//20600 21861//20602 +f 21633//20374 21631//20372 21858//20599 21860//20601 +f 21860//20601 21862//20603 21637//20378 21633//20374 +f 21861//20602 21863//20604 21862//20603 21860//20601 +f 21864//20605 21862//20603 21863//20604 21865//20606 +f 21639//20380 21637//20378 21862//20603 21864//20605 +f 21864//20605 21866//20607 21643//20384 21639//20380 +f 21865//20606 21867//20608 21866//20607 21864//20605 +f 21868//20609 21866//20607 21867//20608 21869//20610 +f 21645//20386 21643//20384 21866//20607 21868//20609 +f 21868//20609 21870//20611 21649//20390 21645//20386 +f 21869//20610 21871//20612 21870//20611 21868//20609 +f 21872//20613 21870//20611 21871//20612 21873//20614 +f 21651//20392 21649//20390 21870//20611 21872//20613 +f 21872//20613 21874//20615 21655//20396 21651//20392 +f 21873//20614 21875//20616 21874//20615 21872//20613 +f 21876//20617 21874//20615 21875//20616 21877//20618 +f 21657//20398 21655//20396 21874//20615 21876//20617 +f 21876//20617 21878//20619 21661//20402 21657//20398 +f 21877//20618 21879//20620 21878//20619 21876//20617 +f 21880//20621 21878//20619 21879//20620 21881//20622 +f 21663//20404 21661//20402 21878//20619 21880//20621 +f 21880//20621 21882//20623 21667//20408 21663//20404 +f 21881//20622 21883//20624 21882//20623 21880//20621 +f 21884//20625 21882//20623 21883//20624 21885//20626 +f 21669//20410 21667//20408 21882//20623 21884//20625 +f 21884//20625 21886//20627 21673//20414 21669//20410 +f 21885//20626 21887//20628 21886//20627 21884//20625 +f 21888//20629 21886//20627 21887//20628 21889//20630 +f 21675//20416 21673//20414 21886//20627 21888//20629 +f 21888//20629 21890//20631 21679//20420 21675//20416 +f 21889//20630 21891//20632 21890//20631 21888//20629 +f 21892//20633 21890//20631 21891//20632 21893//20634 +f 21681//20422 21679//20420 21890//20631 21892//20633 +f 21892//20633 21894//20635 21685//20426 21681//20422 +f 21893//20634 21895//20636 21894//20635 21892//20633 +f 21896//20637 21894//20635 21895//20636 21897//20638 +f 21687//20428 21685//20426 21894//20635 21896//20637 +f 21896//20637 21898//20639 21691//20432 21687//20428 +f 21897//20638 21899//20640 21898//20639 21896//20637 +f 21900//20641 21898//20639 21899//20640 21901//20642 +f 21693//20434 21691//20432 21898//20639 21900//20641 +f 21900//20641 21902//20643 21697//20438 21693//20434 +f 21901//20642 21903//20644 21902//20643 21900//20641 +f 21904//20645 21902//20643 21903//20644 21905//20646 +f 21699//20440 21697//20438 21902//20643 21904//20645 +f 21904//20645 21906//20647 21703//20444 21699//20440 +f 21905//20646 21907//20648 21906//20647 21904//20645 +f 21908//20649 21906//20647 21907//20648 21909//20650 +f 21705//20446 21703//20444 21906//20647 21908//20649 +f 21908//20649 21910//20651 21709//20450 21705//20446 +f 21909//20650 21911//20652 21910//20651 21908//20649 +f 21912//20653 21910//20651 21911//20652 21913//20654 +f 21711//20452 21709//20450 21910//20651 21912//20653 +f 21912//20653 21914//20655 21715//20456 21711//20452 +f 21913//20654 21915//20656 21914//20655 21912//20653 +f 21916//20657 21914//20655 21915//20656 21917//20658 +f 21717//20458 21715//20456 21914//20655 21916//20657 +f 21916//20657 21918//20659 21721//20462 21717//20458 +f 21917//20658 21919//20660 21918//20659 21916//20657 +f 21920//20661 21918//20659 21919//20660 21921//20662 +f 21723//20464 21721//20462 21918//20659 21920//20661 +f 21920//20661 21922//20663 21727//20468 21723//20464 +f 21921//20662 21923//20664 21922//20663 21920//20661 +f 21924//20665 21922//20663 21923//20664 21925//20666 +f 21729//20470 21727//20468 21922//20663 21924//20665 +f 21924//20665 21926//20667 21733//20474 21729//20470 +f 21925//20666 21927//20668 21926//20667 21924//20665 +f 21928//20669 21926//20667 21927//20668 21929//20670 +f 21735//20476 21733//20474 21926//20667 21928//20669 +f 21928//20669 21930//20671 21739//20480 21735//20476 +f 21929//20670 21931//20672 21930//20671 21928//20669 +f 21932//20673 21930//20671 21931//20672 21933//20674 +f 21741//20482 21739//20480 21930//20671 21932//20673 +f 21932//20673 21934//20675 21745//20486 21741//20482 +f 21933//20674 21935//20676 21934//20675 21932//20673 +f 21936//20677 21934//20675 21935//20676 21937//20678 +f 21747//20488 21745//20486 21934//20675 21936//20677 +f 21936//20677 21938//20679 21751//20492 21747//20488 +f 21937//20678 21939//20680 21938//20679 21936//20677 +f 21940//20681 21938//20679 21939//20680 21941//20682 +f 21753//20494 21751//20492 21938//20679 21940//20681 +f 21940//20681 21942//20683 21757//20498 21753//20494 +f 21941//20682 21943//20684 21942//20683 21940//20681 +f 21944//20685 21942//20683 21943//20684 21945//20686 +f 21759//20500 21757//20498 21942//20683 21944//20685 +f 21944//20685 21946//20687 21763//20504 21759//20500 +f 21945//20686 21947//20688 21946//20687 21944//20685 +f 21948//20689 21946//20687 21947//20688 21949//20690 +f 21765//20506 21763//20504 21946//20687 21948//20689 +f 21948//20689 21950//20691 21769//20510 21765//20506 +f 21949//20690 21951//20692 21950//20691 21948//20689 +f 21952//20693 21950//20691 21951//20692 21953//20694 +f 21771//20512 21769//20510 21950//20691 21952//20693 +f 21952//20693 21954//20695 21775//20516 21771//20512 +f 21953//20694 21955//20696 21954//20695 21952//20693 +f 21956//20697 21954//20695 21955//20696 21957//20698 +f 21777//20518 21775//20516 21954//20695 21956//20697 +f 21956//20697 21958//20699 21781//20522 21777//20518 +f 21957//20698 21959//20700 21958//20699 21956//20697 +f 21960//20701 21958//20699 21959//20700 21961//20702 +f 21783//20524 21781//20522 21958//20699 21960//20701 +f 21960//20701 21962//20703 21787//20528 21783//20524 +f 21961//20702 21963//20704 21962//20703 21960//20701 +f 21964//20705 21962//20703 21963//20704 21965//20706 +f 21789//20530 21787//20528 21962//20703 21964//20705 +f 21964//20705 21966//20707 21793//20534 21789//20530 +f 21965//20706 21967//20708 21966//20707 21964//20705 +f 21968//20709 21966//20707 21967//20708 21969//20710 +f 21795//20536 21793//20534 21966//20707 21968//20709 +f 21968//20709 21970//20711 21799//20540 21795//20536 +f 21969//20710 21971//20712 21970//20711 21968//20709 +f 21972//20713 21970//20711 21971//20712 21973//20714 +f 21801//20542 21799//20540 21970//20711 21972//20713 +f 21972//20713 21974//20715 21805//20546 21801//20542 +f 21973//20714 21975//20716 21974//20715 21972//20713 +f 21976//20717 21974//20715 21975//20716 21977//20718 +f 21807//20548 21805//20546 21974//20715 21976//20717 +f 21976//20717 21978//20719 21811//20552 21807//20548 +f 21977//20718 21979//20720 21978//20719 21976//20717 +f 21980//20721 21978//20719 21979//20720 21981//20722 +f 21813//20554 21811//20552 21978//20719 21980//20721 +f 21980//20721 21982//20723 21817//20558 21813//20554 +f 21981//20722 21983//20724 21982//20723 21980//20721 +f 21984//20725 21982//20723 21983//20724 21985//20726 +f 21819//20560 21817//20558 21982//20723 21984//20725 +f 21984//20725 21986//20727 21823//20564 21819//20560 +f 21985//20726 21987//20728 21986//20727 21984//20725 +f 21988//20729 21986//20727 21987//20728 21989//20730 +f 21825//20566 21823//20564 21986//20727 21988//20729 +f 21988//20729 21990//20731 21829//20570 21825//20566 +f 21989//20730 21991//20732 21990//20731 21988//20729 +f 21992//20733 21990//20731 21991//20732 21993//20734 +f 21831//20572 21829//20570 21990//20731 21992//20733 +f 21992//20733 21994//20735 21835//20576 21831//20572 +f 21993//20734 21995//20736 21994//20735 21992//20733 +f 21836//20577 21994//20735 21995//20736 21838//20579 +f 21600//20341 21835//20576 21994//20735 21836//20577 +f 21996//20737 21997//20738 21362//20101 21363//20102 +f 21599//20340 21598//20339 21997//20738 21996//20737 +f 21998//20739 21997//20738 21598//20339 21604//20345 +f 21364//20103 21362//20101 21997//20738 21998//20739 +f 21998//20739 21999//20740 21369//20110 21364//20103 +f 21604//20345 21606//20347 21999//20740 21998//20739 +f 22000//20741 21999//20740 21606//20347 21610//20351 +f 21370//20111 21369//20110 21999//20740 22000//20741 +f 22000//20741 22001//20742 21375//20116 21370//20111 +f 21610//20351 21612//20353 22001//20742 22000//20741 +f 22002//20743 22001//20742 21612//20353 21616//20357 +f 21376//20117 21375//20116 22001//20742 22002//20743 +f 22002//20743 22003//20744 21381//20122 21376//20117 +f 21616//20357 21618//20359 22003//20744 22002//20743 +f 22004//20745 22003//20744 21618//20359 21622//20363 +f 21382//20123 21381//20122 22003//20744 22004//20745 +f 22004//20745 22005//20746 21387//20128 21382//20123 +f 21622//20363 21624//20365 22005//20746 22004//20745 +f 22006//20747 22005//20746 21624//20365 21628//20369 +f 21388//20129 21387//20128 22005//20746 22006//20747 +f 22006//20747 22007//20748 21393//20134 21388//20129 +f 21628//20369 21630//20371 22007//20748 22006//20747 +f 22008//20749 22007//20748 21630//20371 21634//20375 +f 21394//20135 21393//20134 22007//20748 22008//20749 +f 22008//20749 22009//20750 21399//20140 21394//20135 +f 21634//20375 21636//20377 22009//20750 22008//20749 +f 22010//20751 22009//20750 21636//20377 21640//20381 +f 21400//20141 21399//20140 22009//20750 22010//20751 +f 22010//20751 22011//20752 21405//20146 21400//20141 +f 21640//20381 21642//20383 22011//20752 22010//20751 +f 22012//20753 22011//20752 21642//20383 21646//20387 +f 21406//20147 21405//20146 22011//20752 22012//20753 +f 22012//20753 22013//20754 21411//20152 21406//20147 +f 21646//20387 21648//20389 22013//20754 22012//20753 +f 22014//20755 22013//20754 21648//20389 21652//20393 +f 21412//20153 21411//20152 22013//20754 22014//20755 +f 22014//20755 22015//20756 21417//20158 21412//20153 +f 21652//20393 21654//20395 22015//20756 22014//20755 +f 22016//20757 22015//20756 21654//20395 21658//20399 +f 21418//20159 21417//20158 22015//20756 22016//20757 +f 22016//20757 22017//20758 21423//20164 21418//20159 +f 21658//20399 21660//20401 22017//20758 22016//20757 +f 22018//20759 22017//20758 21660//20401 21664//20405 +f 21424//20165 21423//20164 22017//20758 22018//20759 +f 22018//20759 22019//20760 21429//20170 21424//20165 +f 21664//20405 21666//20407 22019//20760 22018//20759 +f 22020//20761 22019//20760 21666//20407 21670//20411 +f 21430//20171 21429//20170 22019//20760 22020//20761 +f 22020//20761 22021//20762 21435//20176 21430//20171 +f 21670//20411 21672//20413 22021//20762 22020//20761 +f 22022//20763 22021//20762 21672//20413 21676//20417 +f 21436//20177 21435//20176 22021//20762 22022//20763 +f 22022//20763 22023//20764 21441//20182 21436//20177 +f 21676//20417 21678//20419 22023//20764 22022//20763 +f 22024//20765 22023//20764 21678//20419 21682//20423 +f 21442//20183 21441//20182 22023//20764 22024//20765 +f 22024//20765 22025//20766 21447//20188 21442//20183 +f 21682//20423 21684//20425 22025//20766 22024//20765 +f 22026//20767 22025//20766 21684//20425 21688//20429 +f 21448//20189 21447//20188 22025//20766 22026//20767 +f 22026//20767 22027//20768 21453//20194 21448//20189 +f 21688//20429 21690//20431 22027//20768 22026//20767 +f 22028//20769 22027//20768 21690//20431 21694//20435 +f 21454//20195 21453//20194 22027//20768 22028//20769 +f 22028//20769 22029//20770 21459//20200 21454//20195 +f 21694//20435 21696//20437 22029//20770 22028//20769 +f 22030//20771 22029//20770 21696//20437 21700//20441 +f 21460//20201 21459//20200 22029//20770 22030//20771 +f 22030//20771 22031//20772 21465//20206 21460//20201 +f 21700//20441 21702//20443 22031//20772 22030//20771 +f 22032//20773 22031//20772 21702//20443 21706//20447 +f 21466//20207 21465//20206 22031//20772 22032//20773 +f 22032//20773 22033//20774 21471//20212 21466//20207 +f 21706//20447 21708//20449 22033//20774 22032//20773 +f 22034//20775 22033//20774 21708//20449 21712//20453 +f 21472//20213 21471//20212 22033//20774 22034//20775 +f 22034//20775 22035//20776 21477//20218 21472//20213 +f 21712//20453 21714//20455 22035//20776 22034//20775 +f 22036//20777 22035//20776 21714//20455 21718//20459 +f 21478//20219 21477//20218 22035//20776 22036//20777 +f 22036//20777 22037//20778 21483//20224 21478//20219 +f 21718//20459 21720//20461 22037//20778 22036//20777 +f 22038//20779 22037//20778 21720//20461 21724//20465 +f 21484//20225 21483//20224 22037//20778 22038//20779 +f 22038//20779 22039//20780 21489//20230 21484//20225 +f 21724//20465 21726//20467 22039//20780 22038//20779 +f 22040//20781 22039//20780 21726//20467 21730//20471 +f 21490//20231 21489//20230 22039//20780 22040//20781 +f 22040//20781 22041//20782 21495//20236 21490//20231 +f 21730//20471 21732//20473 22041//20782 22040//20781 +f 22042//20783 22041//20782 21732//20473 21736//20477 +f 21496//20237 21495//20236 22041//20782 22042//20783 +f 22042//20783 22043//20784 21501//20242 21496//20237 +f 21736//20477 21738//20479 22043//20784 22042//20783 +f 22044//20785 22043//20784 21738//20479 21742//20483 +f 21502//20243 21501//20242 22043//20784 22044//20785 +f 22044//20785 22045//20786 21507//20248 21502//20243 +f 21742//20483 21744//20485 22045//20786 22044//20785 +f 22046//20787 22045//20786 21744//20485 21748//20489 +f 21508//20249 21507//20248 22045//20786 22046//20787 +f 22046//20787 22047//20788 21513//20254 21508//20249 +f 21748//20489 21750//20491 22047//20788 22046//20787 +f 22048//20789 22047//20788 21750//20491 21754//20495 +f 21514//20255 21513//20254 22047//20788 22048//20789 +f 22048//20789 22049//20790 21519//20260 21514//20255 +f 21754//20495 21756//20497 22049//20790 22048//20789 +f 22050//20791 22049//20790 21756//20497 21760//20501 +f 21520//20261 21519//20260 22049//20790 22050//20791 +f 22050//20791 22051//20792 21525//20266 21520//20261 +f 21760//20501 21762//20503 22051//20792 22050//20791 +f 22052//20793 22051//20792 21762//20503 21766//20507 +f 21526//20267 21525//20266 22051//20792 22052//20793 +f 22052//20793 22053//20794 21531//20272 21526//20267 +f 21766//20507 21768//20509 22053//20794 22052//20793 +f 22054//20795 22053//20794 21768//20509 21772//20513 +f 21532//20273 21531//20272 22053//20794 22054//20795 +f 22054//20795 22055//20796 21537//20278 21532//20273 +f 21772//20513 21774//20515 22055//20796 22054//20795 +f 22056//20797 22055//20796 21774//20515 21778//20519 +f 21538//20279 21537//20278 22055//20796 22056//20797 +f 22056//20797 22057//20798 21543//20284 21538//20279 +f 21778//20519 21780//20521 22057//20798 22056//20797 +f 22058//20799 22057//20798 21780//20521 21784//20525 +f 21544//20285 21543//20284 22057//20798 22058//20799 +f 22058//20799 22059//20800 21549//20290 21544//20285 +f 21784//20525 21786//20527 22059//20800 22058//20799 +f 22060//20801 22059//20800 21786//20527 21790//20531 +f 21550//20291 21549//20290 22059//20800 22060//20801 +f 22060//20801 22061//20802 21555//20296 21550//20291 +f 21790//20531 21792//20533 22061//20802 22060//20801 +f 22062//20803 22061//20802 21792//20533 21796//20537 +f 21556//20297 21555//20296 22061//20802 22062//20803 +f 22062//20803 22063//20804 21561//20302 21556//20297 +f 21796//20537 21798//20539 22063//20804 22062//20803 +f 22064//20805 22063//20804 21798//20539 21802//20543 +f 21562//20303 21561//20302 22063//20804 22064//20805 +f 22064//20805 22065//20806 21567//20308 21562//20303 +f 21802//20543 21804//20545 22065//20806 22064//20805 +f 22066//20807 22065//20806 21804//20545 21808//20549 +f 21568//20309 21567//20308 22065//20806 22066//20807 +f 22066//20807 22067//20808 21573//20314 21568//20309 +f 21808//20549 21810//20551 22067//20808 22066//20807 +f 22068//20809 22067//20808 21810//20551 21814//20555 +f 21574//20315 21573//20314 22067//20808 22068//20809 +f 22068//20809 22069//20810 21579//20320 21574//20315 +f 21814//20555 21816//20557 22069//20810 22068//20809 +f 22070//20811 22069//20810 21816//20557 21820//20561 +f 21580//20321 21579//20320 22069//20810 22070//20811 +f 22070//20811 22071//20812 21585//20326 21580//20321 +f 21820//20561 21822//20563 22071//20812 22070//20811 +f 22072//20813 22071//20812 21822//20563 21826//20567 +f 21586//20327 21585//20326 22071//20812 22072//20813 +f 22072//20813 22073//20814 21591//20332 21586//20327 +f 21826//20567 21828//20569 22073//20814 22072//20813 +f 22074//20815 22073//20814 21828//20569 21832//20573 +f 21592//20333 21591//20332 22073//20814 22074//20815 +f 22074//20815 22075//20816 21595//20336 21592//20333 +f 21832//20573 21834//20575 22075//20816 22074//20815 +f 21996//20737 22075//20816 21834//20575 21599//20340 +f 21363//20102 21595//20336 22075//20816 21996//20737 +f 22076//20817 22077//20818 22078//20819 22079//20820 +f 22080//20821 22076//20817 22079//20820 22081//20822 +f 22082//20823 22083//20824 22081//20822 22079//20820 +f 22084//20825 22082//20823 22079//20820 22078//20819 +f 22085//20826 22086//20827 22087//20828 22088//20829 +f 22077//20818 22085//20826 22088//20829 22078//20819 +f 22089//20830 22084//20825 22078//20819 22088//20829 +f 22090//20831 22089//20830 22088//20829 22087//20828 +f 22091//20832 22092//20833 22093//20834 22094//20835 +f 22086//20827 22091//20832 22094//20835 22087//20828 +f 22095//20836 22090//20831 22087//20828 22094//20835 +f 22096//20837 22095//20836 22094//20835 22093//20834 +f 22097//20838 22098//20839 22099//20840 22100//20841 +f 22092//20833 22097//20838 22100//20841 22093//20834 +f 22101//20842 22096//20837 22093//20834 22100//20841 +f 22102//20843 22101//20842 22100//20841 22099//20840 +f 22103//20844 22104//20845 22105//20846 22106//20847 +f 22098//20839 22103//20844 22106//20847 22099//20840 +f 22107//20848 22102//20843 22099//20840 22106//20847 +f 22108//20849 22107//20848 22106//20847 22105//20846 +f 22109//20850 22110//20851 22111//20852 22112//20853 +f 22104//20845 22109//20850 22112//20853 22105//20846 +f 22113//20854 22108//20849 22105//20846 22112//20853 +f 22114//20855 22113//20854 22112//20853 22111//20852 +f 22115//20856 22116//20857 22117//20858 22118//20859 +f 22110//20851 22115//20856 22118//20859 22111//20852 +f 22119//20860 22114//20855 22111//20852 22118//20859 +f 22120//20861 22119//20860 22118//20859 22117//20858 +f 22121//20862 22122//20863 22123//20864 22124//20865 +f 22116//20857 22121//20862 22124//20865 22117//20858 +f 22125//20866 22120//20861 22117//20858 22124//20865 +f 22126//20867 22125//20866 22124//20865 22123//20864 +f 22127//20868 22128//20869 22129//20870 22130//20871 +f 22122//20863 22127//20868 22130//20871 22123//20864 +f 22131//20872 22126//20867 22123//20864 22130//20871 +f 22132//20873 22131//20872 22130//20871 22129//20870 +f 22133//20874 22134//20875 22135//20876 22136//20877 +f 22128//20869 22133//20874 22136//20877 22129//20870 +f 22137//20878 22132//20873 22129//20870 22136//20877 +f 22138//20879 22137//20878 22136//20877 22135//20876 +f 22139//20880 22140//20881 22141//20882 22142//20883 +f 22134//20875 22139//20880 22142//20883 22135//20876 +f 22143//20884 22138//20879 22135//20876 22142//20883 +f 22144//20885 22143//20884 22142//20883 22141//20882 +f 22145//20886 22146//20887 22147//20888 22148//20889 +f 22140//20881 22145//20886 22148//20889 22141//20882 +f 22149//20890 22144//20885 22141//20882 22148//20889 +f 22150//20891 22149//20890 22148//20889 22147//20888 +f 22151//20892 22152//20893 22153//20894 22154//20895 +f 22146//20887 22151//20892 22154//20895 22147//20888 +f 22155//20896 22150//20891 22147//20888 22154//20895 +f 22156//20897 22155//20896 22154//20895 22153//20894 +f 22157//20898 22158//20899 22159//20900 22160//20901 +f 22152//20893 22157//20898 22160//20901 22153//20894 +f 22161//20902 22156//20897 22153//20894 22160//20901 +f 22162//20903 22161//20902 22160//20901 22159//20900 +f 22163//20904 22164//20905 22165//20906 22166//20907 +f 22158//20899 22163//20904 22166//20907 22159//20900 +f 22167//20908 22162//20903 22159//20900 22166//20907 +f 22168//20909 22167//20908 22166//20907 22165//20906 +f 22169//20910 22170//20911 22171//20912 22172//20913 +f 22164//20905 22169//20910 22172//20913 22165//20906 +f 22173//20914 22168//20909 22165//20906 22172//20913 +f 22174//20915 22173//20914 22172//20913 22171//20912 +f 22175//20916 22176//20917 22177//20918 22178//20919 +f 22170//20911 22175//20916 22178//20919 22171//20912 +f 22179//20920 22174//20915 22171//20912 22178//20919 +f 22180//20921 22179//20920 22178//20919 22177//20918 +f 22181//20922 22182//20923 22183//20924 22184//20925 +f 22176//20917 22181//20922 22184//20925 22177//20918 +f 22185//20926 22180//20921 22177//20918 22184//20925 +f 22186//20927 22185//20926 22184//20925 22183//20924 +f 22187//20928 22188//20929 22189//20930 22190//20931 +f 22182//20923 22187//20928 22190//20931 22183//20924 +f 22191//20932 22186//20927 22183//20924 22190//20931 +f 22192//20933 22191//20932 22190//20931 22189//20930 +f 22193//20934 22194//20935 22195//20936 22196//20937 +f 22188//20929 22193//20934 22196//20937 22189//20930 +f 22197//20938 22192//20933 22189//20930 22196//20937 +f 22198//20939 22197//20938 22196//20937 22195//20936 +f 22199//20940 22200//20941 22201//20942 22202//20943 +f 22194//20935 22199//20940 22202//20943 22195//20936 +f 22203//20944 22198//20939 22195//20936 22202//20943 +f 22204//20945 22203//20944 22202//20943 22201//20942 +f 22205//20946 22206//20947 22207//20948 22208//20949 +f 22200//20941 22205//20946 22208//20949 22201//20942 +f 22209//20950 22204//20945 22201//20942 22208//20949 +f 22210//20951 22209//20950 22208//20949 22207//20948 +f 22211//20952 22212//20953 22213//20954 22214//20955 +f 22206//20947 22211//20952 22214//20955 22207//20948 +f 22215//20956 22210//20951 22207//20948 22214//20955 +f 22216//20957 22215//20956 22214//20955 22213//20954 +f 22217//20958 22218//20959 22219//20960 22220//20961 +f 22212//20953 22217//20958 22220//20961 22213//20954 +f 22221//20962 22216//20957 22213//20954 22220//20961 +f 22222//20963 22221//20962 22220//20961 22219//20960 +f 22223//20964 22224//20965 22225//20966 22226//20967 +f 22218//20959 22223//20964 22226//20967 22219//20960 +f 22227//20968 22222//20963 22219//20960 22226//20967 +f 22228//20969 22227//20968 22226//20967 22225//20966 +f 22229//20970 22230//20971 22231//20972 22232//20973 +f 22224//20965 22229//20970 22232//20973 22225//20966 +f 22233//20974 22228//20969 22225//20966 22232//20973 +f 22234//20975 22233//20974 22232//20973 22231//20972 +f 22235//20976 22236//20977 22237//20978 22238//20979 +f 22230//20971 22235//20976 22238//20979 22231//20972 +f 22239//20980 22234//20975 22231//20972 22238//20979 +f 22240//20981 22239//20980 22238//20979 22237//20978 +f 22241//20982 22242//20983 22243//20984 22244//20985 +f 22236//20977 22241//20982 22244//20985 22237//20978 +f 22245//20986 22240//20981 22237//20978 22244//20985 +f 22246//20987 22245//20986 22244//20985 22243//20984 +f 22247//20988 22248//20989 22249//20990 22250//20991 +f 22242//20983 22247//20988 22250//20991 22243//20984 +f 22251//20992 22246//20987 22243//20984 22250//20991 +f 22252//20993 22251//20992 22250//20991 22249//20990 +f 22253//20994 22254//20995 22255//20996 22256//20997 +f 22248//20989 22253//20994 22256//20997 22249//20990 +f 22257//20998 22252//20993 22249//20990 22256//20997 +f 22258//20999 22257//20998 22256//20997 22255//20996 +f 22259//21000 22260//21001 22261//21002 22262//21003 +f 22254//20995 22259//21000 22262//21003 22255//20996 +f 22263//21004 22258//20999 22255//20996 22262//21003 +f 22264//21005 22263//21004 22262//21003 22261//21002 +f 22265//21006 22266//21007 22267//21008 22268//21009 +f 22260//21001 22265//21006 22268//21009 22261//21002 +f 22269//21010 22264//21005 22261//21002 22268//21009 +f 22270//21011 22269//21010 22268//21009 22267//21008 +f 22271//21012 22272//21013 22273//21014 22274//21015 +f 22266//21007 22271//21012 22274//21015 22267//21008 +f 22275//21016 22270//21011 22267//21008 22274//21015 +f 22276//21017 22275//21016 22274//21015 22273//21014 +f 22277//21018 22278//21019 22279//21020 22280//21021 +f 22272//21013 22277//21018 22280//21021 22273//21014 +f 22281//21022 22276//21017 22273//21014 22280//21021 +f 22282//21023 22281//21022 22280//21021 22279//21020 +f 22283//21024 22284//21025 22285//21026 22286//21027 +f 22278//21019 22283//21024 22286//21027 22279//21020 +f 22287//21028 22282//21023 22279//21020 22286//21027 +f 22288//21029 22287//21028 22286//21027 22285//21026 +f 22289//21030 22290//21031 22291//21032 22292//21033 +f 22284//21025 22289//21030 22292//21033 22285//21026 +f 22293//21034 22288//21029 22285//21026 22292//21033 +f 22294//21035 22293//21034 22292//21033 22291//21032 +f 22295//21036 22296//21037 22297//21038 22298//21039 +f 22290//21031 22295//21036 22298//21039 22291//21032 +f 22299//21040 22294//21035 22291//21032 22298//21039 +f 22300//21041 22299//21040 22298//21039 22297//21038 +f 22301//21042 22302//21043 22303//21044 22304//21045 +f 22296//21037 22301//21042 22304//21045 22297//21038 +f 22305//21046 22300//21041 22297//21038 22304//21045 +f 22306//21047 22305//21046 22304//21045 22303//21044 +f 22307//21048 22308//21049 22309//21050 22310//21051 +f 22302//21043 22307//21048 22310//21051 22303//21044 +f 22311//21052 22306//21047 22303//21044 22310//21051 +f 22312//21053 22311//21052 22310//21051 22309//21050 +f 22313//21054 22080//20821 22081//20822 22314//21055 +f 22308//21049 22313//21054 22314//21055 22309//21050 +f 22315//21056 22312//21053 22309//21050 22314//21055 +f 22083//20824 22315//21056 22314//21055 22081//20822 +f 22316//21057 22317//21058 22318//21059 22319//21060 +f 22320//21061 22316//21057 22319//21060 22321//21062 +f 22322//21063 22323//21064 22321//21062 22319//21060 +f 22324//21065 22322//21063 22319//21060 22318//21059 +f 22322//21063 22324//21065 22325//21066 22326//21067 +f 22323//21064 22322//21063 22326//21067 22327//21068 +f 22328//21069 22329//21070 22327//21068 22326//21067 +f 22330//21071 22328//21069 22326//21067 22325//21066 +f 22328//21069 22330//21071 22331//21072 22332//21073 +f 22329//21070 22328//21069 22332//21073 22333//21074 +f 22334//21075 22335//21076 22333//21074 22332//21073 +f 22336//21077 22334//21075 22332//21073 22331//21072 +f 22334//21075 22336//21077 22337//21078 22338//21079 +f 22335//21076 22334//21075 22338//21079 22339//21080 +f 22340//21081 22341//21082 22339//21080 22338//21079 +f 22342//21083 22340//21081 22338//21079 22337//21078 +f 22340//21081 22342//21083 22343//21084 22344//21085 +f 22341//21082 22340//21081 22344//21085 22345//21086 +f 22346//21087 22347//21088 22345//21086 22344//21085 +f 22348//21089 22346//21087 22344//21085 22343//21084 +f 22346//21087 22348//21089 22349//21090 22350//21091 +f 22347//21088 22346//21087 22350//21091 22351//21092 +f 22352//21093 22353//21094 22351//21092 22350//21091 +f 22354//21095 22352//21093 22350//21091 22349//21090 +f 22352//21093 22354//21095 22355//21096 22356//21097 +f 22353//21094 22352//21093 22356//21097 22357//21098 +f 22358//21099 22359//21100 22357//21098 22356//21097 +f 22360//21101 22358//21099 22356//21097 22355//21096 +f 22358//21099 22360//21101 22361//21102 22362//21103 +f 22359//21100 22358//21099 22362//21103 22363//21104 +f 22364//21105 22365//21106 22363//21104 22362//21103 +f 22366//21107 22364//21105 22362//21103 22361//21102 +f 22364//21105 22366//21107 22367//21108 22368//21109 +f 22365//21106 22364//21105 22368//21109 22369//21110 +f 22370//21111 22371//21112 22369//21110 22368//21109 +f 22372//21113 22370//21111 22368//21109 22367//21108 +f 22370//21111 22372//21113 22373//21114 22374//21115 +f 22371//21112 22370//21111 22374//21115 22375//21116 +f 22376//21117 22377//21118 22375//21116 22374//21115 +f 22378//21119 22376//21117 22374//21115 22373//21114 +f 22376//21117 22378//21119 22379//21120 22380//21121 +f 22377//21118 22376//21117 22380//21121 22381//21122 +f 22382//21123 22383//21124 22381//21122 22380//21121 +f 22384//21125 22382//21123 22380//21121 22379//21120 +f 22382//21123 22384//21125 22385//21126 22386//21127 +f 22383//21124 22382//21123 22386//21127 22387//21128 +f 22388//21129 22389//21130 22387//21128 22386//21127 +f 22390//21131 22388//21129 22386//21127 22385//21126 +f 22388//21129 22390//21131 22391//21132 22392//21133 +f 22389//21130 22388//21129 22392//21133 22393//21134 +f 22394//21135 22395//21136 22393//21134 22392//21133 +f 22396//21137 22394//21135 22392//21133 22391//21132 +f 22394//21135 22396//21137 22397//21138 22398//21139 +f 22395//21136 22394//21135 22398//21139 22399//21140 +f 22400//21141 22401//21142 22399//21140 22398//21139 +f 22402//21143 22400//21141 22398//21139 22397//21138 +f 22400//21141 22402//21143 22403//21144 22404//21145 +f 22401//21142 22400//21141 22404//21145 22405//21146 +f 22406//21147 22407//21148 22405//21146 22404//21145 +f 22408//21149 22406//21147 22404//21145 22403//21144 +f 22406//21147 22408//21149 22409//21150 22410//21151 +f 22407//21148 22406//21147 22410//21151 22411//21152 +f 22412//21153 22413//21154 22411//21152 22410//21151 +f 22414//21155 22412//21153 22410//21151 22409//21150 +f 22412//21153 22414//21155 22415//21156 22416//21157 +f 22413//21154 22412//21153 22416//21157 22417//21158 +f 22418//21159 22419//21160 22417//21158 22416//21157 +f 22420//21161 22418//21159 22416//21157 22415//21156 +f 22418//21159 22420//21161 22421//21162 22422//21163 +f 22419//21160 22418//21159 22422//21163 22423//21164 +f 22424//21165 22425//21166 22423//21164 22422//21163 +f 22426//21167 22424//21165 22422//21163 22421//21162 +f 22424//21165 22426//21167 22427//21168 22428//21169 +f 22425//21166 22424//21165 22428//21169 22429//21170 +f 22430//21171 22431//21172 22429//21170 22428//21169 +f 22432//21173 22430//21171 22428//21169 22427//21168 +f 22430//21171 22432//21173 22433//21174 22434//21175 +f 22431//21172 22430//21171 22434//21175 22435//21176 +f 22436//21177 22437//21178 22435//21176 22434//21175 +f 22438//21179 22436//21177 22434//21175 22433//21174 +f 22436//21177 22438//21179 22439//21180 22440//21181 +f 22437//21178 22436//21177 22440//21181 22441//21182 +f 22442//21183 22443//21184 22441//21182 22440//21181 +f 22444//21185 22442//21183 22440//21181 22439//21180 +f 22442//21183 22444//21185 22445//21186 22446//21187 +f 22443//21184 22442//21183 22446//21187 22447//21188 +f 22448//21189 22449//21190 22447//21188 22446//21187 +f 22450//21191 22448//21189 22446//21187 22445//21186 +f 22448//21189 22450//21191 22451//21192 22452//21193 +f 22449//21190 22448//21189 22452//21193 22453//21194 +f 22454//21195 22455//21196 22453//21194 22452//21193 +f 22456//21197 22454//21195 22452//21193 22451//21192 +f 22454//21195 22456//21197 22457//21198 22458//21199 +f 22455//21196 22454//21195 22458//21199 22459//21200 +f 22460//21201 22461//21202 22459//21200 22458//21199 +f 22462//21203 22460//21201 22458//21199 22457//21198 +f 22460//21201 22462//21203 22463//21204 22464//21205 +f 22461//21202 22460//21201 22464//21205 22465//21206 +f 22466//21207 22467//21208 22465//21206 22464//21205 +f 22468//21209 22466//21207 22464//21205 22463//21204 +f 22466//21207 22468//21209 22469//21210 22470//21211 +f 22467//21208 22466//21207 22470//21211 22471//21212 +f 22472//21213 22473//21214 22471//21212 22470//21211 +f 22474//21215 22472//21213 22470//21211 22469//21210 +f 22472//21213 22474//21215 22475//21216 22476//21217 +f 22473//21214 22472//21213 22476//21217 22477//21218 +f 22478//21219 22479//21220 22477//21218 22476//21217 +f 22480//21221 22478//21219 22476//21217 22475//21216 +f 22478//21219 22480//21221 22481//21222 22482//21223 +f 22479//21220 22478//21219 22482//21223 22483//21224 +f 22484//21225 22485//21226 22483//21224 22482//21223 +f 22486//21227 22484//21225 22482//21223 22481//21222 +f 22484//21225 22486//21227 22487//21228 22488//21229 +f 22485//21226 22484//21225 22488//21229 22489//21230 +f 22490//21231 22491//21232 22489//21230 22488//21229 +f 22492//21233 22490//21231 22488//21229 22487//21228 +f 22490//21231 22492//21233 22493//21234 22494//21235 +f 22491//21232 22490//21231 22494//21235 22495//21236 +f 22496//21237 22497//21238 22495//21236 22494//21235 +f 22498//21239 22496//21237 22494//21235 22493//21234 +f 22496//21237 22498//21239 22499//21240 22500//21241 +f 22497//21238 22496//21237 22500//21241 22501//21242 +f 22502//21243 22503//21244 22501//21242 22500//21241 +f 22504//21245 22502//21243 22500//21241 22499//21240 +f 22502//21243 22504//21245 22505//21246 22506//21247 +f 22503//21244 22502//21243 22506//21247 22507//21248 +f 22508//21249 22509//21250 22507//21248 22506//21247 +f 22510//21251 22508//21249 22506//21247 22505//21246 +f 22508//21249 22510//21251 22511//21252 22512//21253 +f 22509//21250 22508//21249 22512//21253 22513//21254 +f 22514//21255 22515//21256 22513//21254 22512//21253 +f 22516//21257 22514//21255 22512//21253 22511//21252 +f 22514//21255 22516//21257 22517//21258 22518//21259 +f 22515//21256 22514//21255 22518//21259 22519//21260 +f 22520//21261 22521//21262 22519//21260 22518//21259 +f 22522//21263 22520//21261 22518//21259 22517//21258 +f 22520//21261 22522//21263 22523//21264 22524//21265 +f 22521//21262 22520//21261 22524//21265 22525//21266 +f 22526//21267 22527//21268 22525//21266 22524//21265 +f 22528//21269 22526//21267 22524//21265 22523//21264 +f 22526//21267 22528//21269 22529//21270 22530//21271 +f 22527//21268 22526//21267 22530//21271 22531//21272 +f 22532//21273 22533//21274 22531//21272 22530//21271 +f 22534//21275 22532//21273 22530//21271 22529//21270 +f 22532//21273 22534//21275 22535//21276 22536//21277 +f 22533//21274 22532//21273 22536//21277 22537//21278 +f 22538//21279 22539//21280 22537//21278 22536//21277 +f 22540//21281 22538//21279 22536//21277 22535//21276 +f 22538//21279 22540//21281 22541//21282 22542//21283 +f 22539//21280 22538//21279 22542//21283 22543//21284 +f 22544//21285 22545//21286 22543//21284 22542//21283 +f 22546//21287 22544//21285 22542//21283 22541//21282 +f 22544//21285 22546//21287 22547//21288 22548//21289 +f 22545//21286 22544//21285 22548//21289 22549//21290 +f 22550//21291 22551//21292 22549//21290 22548//21289 +f 22552//21293 22550//21291 22548//21289 22547//21288 +f 22550//21291 22552//21293 22553//21294 22554//21295 +f 22551//21292 22550//21291 22554//21295 22555//21296 +f 22316//21057 22320//21061 22555//21296 22554//21295 +f 22317//21058 22316//21057 22554//21295 22553//21294 +f 22556//21297 22320//21061 22321//21062 22557//21298 +f 22558//21299 22556//21297 22557//21298 22559//21300 +f 22560//21301 22561//21302 22559//21300 22557//21298 +f 22323//21064 22560//21301 22557//21298 22321//21062 +f 22560//21301 22323//21064 22327//21068 22562//21303 +f 22561//21302 22560//21301 22562//21303 22563//21304 +f 22564//21305 22565//21306 22563//21304 22562//21303 +f 22329//21070 22564//21305 22562//21303 22327//21068 +f 22564//21305 22329//21070 22333//21074 22566//21307 +f 22565//21306 22564//21305 22566//21307 22567//21308 +f 22568//21309 22569//21310 22567//21308 22566//21307 +f 22335//21076 22568//21309 22566//21307 22333//21074 +f 22568//21309 22335//21076 22339//21080 22570//21311 +f 22569//21310 22568//21309 22570//21311 22571//21312 +f 22572//21313 22573//21314 22571//21312 22570//21311 +f 22341//21082 22572//21313 22570//21311 22339//21080 +f 22572//21313 22341//21082 22345//21086 22574//21315 +f 22573//21314 22572//21313 22574//21315 22575//21316 +f 22576//21317 22577//21318 22575//21316 22574//21315 +f 22347//21088 22576//21317 22574//21315 22345//21086 +f 22576//21317 22347//21088 22351//21092 22578//21319 +f 22577//21318 22576//21317 22578//21319 22579//21320 +f 22580//21321 22581//21322 22579//21320 22578//21319 +f 22353//21094 22580//21321 22578//21319 22351//21092 +f 22580//21321 22353//21094 22357//21098 22582//21323 +f 22581//21322 22580//21321 22582//21323 22583//21324 +f 22584//21325 22585//21326 22583//21324 22582//21323 +f 22359//21100 22584//21325 22582//21323 22357//21098 +f 22584//21325 22359//21100 22363//21104 22586//21327 +f 22585//21326 22584//21325 22586//21327 22587//21328 +f 22588//21329 22589//21330 22587//21328 22586//21327 +f 22365//21106 22588//21329 22586//21327 22363//21104 +f 22588//21329 22365//21106 22369//21110 22590//21331 +f 22589//21330 22588//21329 22590//21331 22591//21332 +f 22592//21333 22593//21334 22591//21332 22590//21331 +f 22371//21112 22592//21333 22590//21331 22369//21110 +f 22592//21333 22371//21112 22375//21116 22594//21335 +f 22593//21334 22592//21333 22594//21335 22595//21336 +f 22596//21337 22597//21338 22595//21336 22594//21335 +f 22377//21118 22596//21337 22594//21335 22375//21116 +f 22596//21337 22377//21118 22381//21122 22598//21339 +f 22597//21338 22596//21337 22598//21339 22599//21340 +f 22600//21341 22601//21342 22599//21340 22598//21339 +f 22383//21124 22600//21341 22598//21339 22381//21122 +f 22600//21341 22383//21124 22387//21128 22602//21343 +f 22601//21342 22600//21341 22602//21343 22603//21344 +f 22604//21345 22605//21346 22603//21344 22602//21343 +f 22389//21130 22604//21345 22602//21343 22387//21128 +f 22604//21345 22389//21130 22393//21134 22606//21347 +f 22605//21346 22604//21345 22606//21347 22607//21348 +f 22608//21349 22609//21350 22607//21348 22606//21347 +f 22395//21136 22608//21349 22606//21347 22393//21134 +f 22608//21349 22395//21136 22399//21140 22610//21351 +f 22609//21350 22608//21349 22610//21351 22611//21352 +f 22612//21353 22613//21354 22611//21352 22610//21351 +f 22401//21142 22612//21353 22610//21351 22399//21140 +f 22612//21353 22401//21142 22405//21146 22614//21355 +f 22613//21354 22612//21353 22614//21355 22615//21356 +f 22616//21357 22617//21358 22615//21356 22614//21355 +f 22407//21148 22616//21357 22614//21355 22405//21146 +f 22616//21357 22407//21148 22411//21152 22618//21359 +f 22617//21358 22616//21357 22618//21359 22619//21360 +f 22620//21361 22621//21362 22619//21360 22618//21359 +f 22413//21154 22620//21361 22618//21359 22411//21152 +f 22620//21361 22413//21154 22417//21158 22622//21363 +f 22621//21362 22620//21361 22622//21363 22623//21364 +f 22624//21365 22625//21366 22623//21364 22622//21363 +f 22419//21160 22624//21365 22622//21363 22417//21158 +f 22624//21365 22419//21160 22423//21164 22626//21367 +f 22625//21366 22624//21365 22626//21367 22627//21368 +f 22628//21369 22629//21370 22627//21368 22626//21367 +f 22425//21166 22628//21369 22626//21367 22423//21164 +f 22628//21369 22425//21166 22429//21170 22630//21371 +f 22629//21370 22628//21369 22630//21371 22631//21372 +f 22632//21373 22633//21374 22631//21372 22630//21371 +f 22431//21172 22632//21373 22630//21371 22429//21170 +f 22632//21373 22431//21172 22435//21176 22634//21375 +f 22633//21374 22632//21373 22634//21375 22635//21376 +f 22636//21377 22637//21378 22635//21376 22634//21375 +f 22437//21178 22636//21377 22634//21375 22435//21176 +f 22636//21377 22437//21178 22441//21182 22638//21379 +f 22637//21378 22636//21377 22638//21379 22639//21380 +f 22640//21381 22641//21382 22639//21380 22638//21379 +f 22443//21184 22640//21381 22638//21379 22441//21182 +f 22640//21381 22443//21184 22447//21188 22642//21383 +f 22641//21382 22640//21381 22642//21383 22643//21384 +f 22644//21385 22645//21386 22643//21384 22642//21383 +f 22449//21190 22644//21385 22642//21383 22447//21188 +f 22644//21385 22449//21190 22453//21194 22646//21387 +f 22645//21386 22644//21385 22646//21387 22647//21388 +f 22648//21389 22649//21390 22647//21388 22646//21387 +f 22455//21196 22648//21389 22646//21387 22453//21194 +f 22648//21389 22455//21196 22459//21200 22650//21391 +f 22649//21390 22648//21389 22650//21391 22651//21392 +f 22652//21393 22653//21394 22651//21392 22650//21391 +f 22461//21202 22652//21393 22650//21391 22459//21200 +f 22652//21393 22461//21202 22465//21206 22654//21395 +f 22653//21394 22652//21393 22654//21395 22655//21396 +f 22656//21397 22657//21398 22655//21396 22654//21395 +f 22467//21208 22656//21397 22654//21395 22465//21206 +f 22656//21397 22467//21208 22471//21212 22658//21399 +f 22657//21398 22656//21397 22658//21399 22659//21400 +f 22660//21401 22661//21402 22659//21400 22658//21399 +f 22473//21214 22660//21401 22658//21399 22471//21212 +f 22660//21401 22473//21214 22477//21218 22662//21403 +f 22661//21402 22660//21401 22662//21403 22663//21404 +f 22664//21405 22665//21406 22663//21404 22662//21403 +f 22479//21220 22664//21405 22662//21403 22477//21218 +f 22664//21405 22479//21220 22483//21224 22666//21407 +f 22665//21406 22664//21405 22666//21407 22667//21408 +f 22668//21409 22669//21410 22667//21408 22666//21407 +f 22485//21226 22668//21409 22666//21407 22483//21224 +f 22668//21409 22485//21226 22489//21230 22670//21411 +f 22669//21410 22668//21409 22670//21411 22671//21412 +f 22672//21413 22673//21414 22671//21412 22670//21411 +f 22491//21232 22672//21413 22670//21411 22489//21230 +f 22672//21413 22491//21232 22495//21236 22674//21415 +f 22673//21414 22672//21413 22674//21415 22675//21416 +f 22676//21417 22677//21418 22675//21416 22674//21415 +f 22497//21238 22676//21417 22674//21415 22495//21236 +f 22676//21417 22497//21238 22501//21242 22678//21419 +f 22677//21418 22676//21417 22678//21419 22679//21420 +f 22680//21421 22681//21422 22679//21420 22678//21419 +f 22503//21244 22680//21421 22678//21419 22501//21242 +f 22680//21421 22503//21244 22507//21248 22682//21423 +f 22681//21422 22680//21421 22682//21423 22683//21424 +f 22684//21425 22685//21426 22683//21424 22682//21423 +f 22509//21250 22684//21425 22682//21423 22507//21248 +f 22684//21425 22509//21250 22513//21254 22686//21427 +f 22685//21426 22684//21425 22686//21427 22687//21428 +f 22688//21429 22689//21430 22687//21428 22686//21427 +f 22515//21256 22688//21429 22686//21427 22513//21254 +f 22688//21429 22515//21256 22519//21260 22690//21431 +f 22689//21430 22688//21429 22690//21431 22691//21432 +f 22692//21433 22693//21434 22691//21432 22690//21431 +f 22521//21262 22692//21433 22690//21431 22519//21260 +f 22692//21433 22521//21262 22525//21266 22694//21435 +f 22693//21434 22692//21433 22694//21435 22695//21436 +f 22696//21437 22697//21438 22695//21436 22694//21435 +f 22527//21268 22696//21437 22694//21435 22525//21266 +f 22696//21437 22527//21268 22531//21272 22698//21439 +f 22697//21438 22696//21437 22698//21439 22699//21440 +f 22700//21441 22701//21442 22699//21440 22698//21439 +f 22533//21274 22700//21441 22698//21439 22531//21272 +f 22700//21441 22533//21274 22537//21278 22702//21443 +f 22701//21442 22700//21441 22702//21443 22703//21444 +f 22704//21445 22705//21446 22703//21444 22702//21443 +f 22539//21280 22704//21445 22702//21443 22537//21278 +f 22704//21445 22539//21280 22543//21284 22706//21447 +f 22705//21446 22704//21445 22706//21447 22707//21448 +f 22708//21449 22709//21450 22707//21448 22706//21447 +f 22545//21286 22708//21449 22706//21447 22543//21284 +f 22708//21449 22545//21286 22549//21290 22710//21451 +f 22709//21450 22708//21449 22710//21451 22711//21452 +f 22712//21453 22713//21454 22711//21452 22710//21451 +f 22551//21292 22712//21453 22710//21451 22549//21290 +f 22712//21453 22551//21292 22555//21296 22714//21455 +f 22713//21454 22712//21453 22714//21455 22715//21456 +f 22556//21297 22558//21299 22715//21456 22714//21455 +f 22320//21061 22556//21297 22714//21455 22555//21296 +f 22716//21457 22083//20824 22082//20823 22717//21458 +f 22317//21058 22716//21457 22717//21458 22318//21059 +f 22718//21459 22324//21065 22318//21059 22717//21458 +f 22084//20825 22718//21459 22717//21458 22082//20823 +f 22718//21459 22084//20825 22089//20830 22719//21460 +f 22324//21065 22718//21459 22719//21460 22325//21066 +f 22720//21461 22330//21071 22325//21066 22719//21460 +f 22090//20831 22720//21461 22719//21460 22089//20830 +f 22720//21461 22090//20831 22095//20836 22721//21462 +f 22330//21071 22720//21461 22721//21462 22331//21072 +f 22722//21463 22336//21077 22331//21072 22721//21462 +f 22096//20837 22722//21463 22721//21462 22095//20836 +f 22722//21463 22096//20837 22101//20842 22723//21464 +f 22336//21077 22722//21463 22723//21464 22337//21078 +f 22724//21465 22342//21083 22337//21078 22723//21464 +f 22102//20843 22724//21465 22723//21464 22101//20842 +f 22724//21465 22102//20843 22107//20848 22725//21466 +f 22342//21083 22724//21465 22725//21466 22343//21084 +f 22726//21467 22348//21089 22343//21084 22725//21466 +f 22108//20849 22726//21467 22725//21466 22107//20848 +f 22726//21467 22108//20849 22113//20854 22727//21468 +f 22348//21089 22726//21467 22727//21468 22349//21090 +f 22728//21469 22354//21095 22349//21090 22727//21468 +f 22114//20855 22728//21469 22727//21468 22113//20854 +f 22728//21469 22114//20855 22119//20860 22729//21470 +f 22354//21095 22728//21469 22729//21470 22355//21096 +f 22730//21471 22360//21101 22355//21096 22729//21470 +f 22120//20861 22730//21471 22729//21470 22119//20860 +f 22730//21471 22120//20861 22125//20866 22731//21472 +f 22360//21101 22730//21471 22731//21472 22361//21102 +f 22732//21473 22366//21107 22361//21102 22731//21472 +f 22126//20867 22732//21473 22731//21472 22125//20866 +f 22732//21473 22126//20867 22131//20872 22733//21474 +f 22366//21107 22732//21473 22733//21474 22367//21108 +f 22734//21475 22372//21113 22367//21108 22733//21474 +f 22132//20873 22734//21475 22733//21474 22131//20872 +f 22734//21475 22132//20873 22137//20878 22735//21476 +f 22372//21113 22734//21475 22735//21476 22373//21114 +f 22736//21477 22378//21119 22373//21114 22735//21476 +f 22138//20879 22736//21477 22735//21476 22137//20878 +f 22736//21477 22138//20879 22143//20884 22737//21478 +f 22378//21119 22736//21477 22737//21478 22379//21120 +f 22738//21479 22384//21125 22379//21120 22737//21478 +f 22144//20885 22738//21479 22737//21478 22143//20884 +f 22738//21479 22144//20885 22149//20890 22739//21480 +f 22384//21125 22738//21479 22739//21480 22385//21126 +f 22740//21481 22390//21131 22385//21126 22739//21480 +f 22150//20891 22740//21481 22739//21480 22149//20890 +f 22740//21481 22150//20891 22155//20896 22741//21482 +f 22390//21131 22740//21481 22741//21482 22391//21132 +f 22742//21483 22396//21137 22391//21132 22741//21482 +f 22156//20897 22742//21483 22741//21482 22155//20896 +f 22742//21483 22156//20897 22161//20902 22743//21484 +f 22396//21137 22742//21483 22743//21484 22397//21138 +f 22744//21485 22402//21143 22397//21138 22743//21484 +f 22162//20903 22744//21485 22743//21484 22161//20902 +f 22744//21485 22162//20903 22167//20908 22745//21486 +f 22402//21143 22744//21485 22745//21486 22403//21144 +f 22746//21487 22408//21149 22403//21144 22745//21486 +f 22168//20909 22746//21487 22745//21486 22167//20908 +f 22746//21487 22168//20909 22173//20914 22747//21488 +f 22408//21149 22746//21487 22747//21488 22409//21150 +f 22748//21489 22414//21155 22409//21150 22747//21488 +f 22174//20915 22748//21489 22747//21488 22173//20914 +f 22748//21489 22174//20915 22179//20920 22749//21490 +f 22414//21155 22748//21489 22749//21490 22415//21156 +f 22750//21491 22420//21161 22415//21156 22749//21490 +f 22180//20921 22750//21491 22749//21490 22179//20920 +f 22750//21491 22180//20921 22185//20926 22751//21492 +f 22420//21161 22750//21491 22751//21492 22421//21162 +f 22752//21493 22426//21167 22421//21162 22751//21492 +f 22186//20927 22752//21493 22751//21492 22185//20926 +f 22752//21493 22186//20927 22191//20932 22753//21494 +f 22426//21167 22752//21493 22753//21494 22427//21168 +f 22754//21495 22432//21173 22427//21168 22753//21494 +f 22192//20933 22754//21495 22753//21494 22191//20932 +f 22754//21495 22192//20933 22197//20938 22755//21496 +f 22432//21173 22754//21495 22755//21496 22433//21174 +f 22756//21497 22438//21179 22433//21174 22755//21496 +f 22198//20939 22756//21497 22755//21496 22197//20938 +f 22756//21497 22198//20939 22203//20944 22757//21498 +f 22438//21179 22756//21497 22757//21498 22439//21180 +f 22758//21499 22444//21185 22439//21180 22757//21498 +f 22204//20945 22758//21499 22757//21498 22203//20944 +f 22758//21499 22204//20945 22209//20950 22759//21500 +f 22444//21185 22758//21499 22759//21500 22445//21186 +f 22760//21501 22450//21191 22445//21186 22759//21500 +f 22210//20951 22760//21501 22759//21500 22209//20950 +f 22760//21501 22210//20951 22215//20956 22761//21502 +f 22450//21191 22760//21501 22761//21502 22451//21192 +f 22762//21503 22456//21197 22451//21192 22761//21502 +f 22216//20957 22762//21503 22761//21502 22215//20956 +f 22762//21503 22216//20957 22221//20962 22763//21504 +f 22456//21197 22762//21503 22763//21504 22457//21198 +f 22764//21505 22462//21203 22457//21198 22763//21504 +f 22222//20963 22764//21505 22763//21504 22221//20962 +f 22764//21505 22222//20963 22227//20968 22765//21506 +f 22462//21203 22764//21505 22765//21506 22463//21204 +f 22766//21507 22468//21209 22463//21204 22765//21506 +f 22228//20969 22766//21507 22765//21506 22227//20968 +f 22766//21507 22228//20969 22233//20974 22767//21508 +f 22468//21209 22766//21507 22767//21508 22469//21210 +f 22768//21509 22474//21215 22469//21210 22767//21508 +f 22234//20975 22768//21509 22767//21508 22233//20974 +f 22768//21509 22234//20975 22239//20980 22769//21510 +f 22474//21215 22768//21509 22769//21510 22475//21216 +f 22770//21511 22480//21221 22475//21216 22769//21510 +f 22240//20981 22770//21511 22769//21510 22239//20980 +f 22770//21511 22240//20981 22245//20986 22771//21512 +f 22480//21221 22770//21511 22771//21512 22481//21222 +f 22772//21513 22486//21227 22481//21222 22771//21512 +f 22246//20987 22772//21513 22771//21512 22245//20986 +f 22772//21513 22246//20987 22251//20992 22773//21514 +f 22486//21227 22772//21513 22773//21514 22487//21228 +f 22774//21515 22492//21233 22487//21228 22773//21514 +f 22252//20993 22774//21515 22773//21514 22251//20992 +f 22774//21515 22252//20993 22257//20998 22775//21516 +f 22492//21233 22774//21515 22775//21516 22493//21234 +f 22776//21517 22498//21239 22493//21234 22775//21516 +f 22258//20999 22776//21517 22775//21516 22257//20998 +f 22776//21517 22258//20999 22263//21004 22777//21518 +f 22498//21239 22776//21517 22777//21518 22499//21240 +f 22778//21519 22504//21245 22499//21240 22777//21518 +f 22264//21005 22778//21519 22777//21518 22263//21004 +f 22778//21519 22264//21005 22269//21010 22779//21520 +f 22504//21245 22778//21519 22779//21520 22505//21246 +f 22780//21521 22510//21251 22505//21246 22779//21520 +f 22270//21011 22780//21521 22779//21520 22269//21010 +f 22780//21521 22270//21011 22275//21016 22781//21522 +f 22510//21251 22780//21521 22781//21522 22511//21252 +f 22782//21523 22516//21257 22511//21252 22781//21522 +f 22276//21017 22782//21523 22781//21522 22275//21016 +f 22782//21523 22276//21017 22281//21022 22783//21524 +f 22516//21257 22782//21523 22783//21524 22517//21258 +f 22784//21525 22522//21263 22517//21258 22783//21524 +f 22282//21023 22784//21525 22783//21524 22281//21022 +f 22784//21525 22282//21023 22287//21028 22785//21526 +f 22522//21263 22784//21525 22785//21526 22523//21264 +f 22786//21527 22528//21269 22523//21264 22785//21526 +f 22288//21029 22786//21527 22785//21526 22287//21028 +f 22786//21527 22288//21029 22293//21034 22787//21528 +f 22528//21269 22786//21527 22787//21528 22529//21270 +f 22788//21529 22534//21275 22529//21270 22787//21528 +f 22294//21035 22788//21529 22787//21528 22293//21034 +f 22788//21529 22294//21035 22299//21040 22789//21530 +f 22534//21275 22788//21529 22789//21530 22535//21276 +f 22790//21531 22540//21281 22535//21276 22789//21530 +f 22300//21041 22790//21531 22789//21530 22299//21040 +f 22790//21531 22300//21041 22305//21046 22791//21532 +f 22540//21281 22790//21531 22791//21532 22541//21282 +f 22792//21533 22546//21287 22541//21282 22791//21532 +f 22306//21047 22792//21533 22791//21532 22305//21046 +f 22792//21533 22306//21047 22311//21052 22793//21534 +f 22546//21287 22792//21533 22793//21534 22547//21288 +f 22794//21535 22552//21293 22547//21288 22793//21534 +f 22312//21053 22794//21535 22793//21534 22311//21052 +f 22794//21535 22312//21053 22315//21056 22795//21536 +f 22552//21293 22794//21535 22795//21536 22553//21294 +f 22716//21457 22317//21058 22553//21294 22795//21536 +f 22083//20824 22716//21457 22795//21536 22315//21056 +f 22796//21537 22797//21537 22798//21537 22799//21537 +f 22800//21538 22801//21539 22797//21540 22796//21541 +f 22802//21542 22797//21540 22801//21539 22803//21543 +f 22804//21544 22798//21545 22797//21540 22802//21542 +f 22802//21542 22805//21546 22806//21547 22804//21544 +f 22803//21543 22807//21548 22805//21546 22802//21542 +f 22808//21549 22805//21546 22807//21548 22809//21550 +f 22810//21551 22806//21547 22805//21546 22808//21549 +f 22808//21549 22811//21552 22812//21553 22810//21551 +f 22809//21550 22813//21554 22811//21552 22808//21549 +f 22814//21555 22811//21552 22813//21554 22815//21556 +f 22816//21557 22812//21553 22811//21552 22814//21555 +f 22814//21555 22817//21558 22818//21559 22816//21557 +f 22815//21556 22819//21560 22817//21558 22814//21555 +f 22820//21561 22817//21558 22819//21560 22821//21562 +f 22822//21563 22818//21559 22817//21558 22820//21561 +f 22820//21561 22823//21564 22824//21565 22822//21563 +f 22821//21562 22825//21566 22823//21564 22820//21561 +f 22826//21567 22823//21564 22825//21566 22827//21568 +f 22828//21569 22824//21565 22823//21564 22826//21567 +f 22826//21567 22829//21570 22830//21571 22828//21569 +f 22827//21568 22831//21572 22829//21570 22826//21567 +f 22832//21573 22829//21570 22831//21572 22833//21574 +f 22834//21575 22830//21571 22829//21570 22832//21573 +f 22832//21573 22835//21576 22836//21577 22834//21575 +f 22833//21574 22837//21578 22835//21576 22832//21573 +f 22838//21579 22835//21576 22837//21578 22839//21580 +f 22840//21581 22836//21577 22835//21576 22838//21579 +f 22838//21579 22841//21582 22842//21583 22840//21581 +f 22839//21580 22843//21584 22841//21582 22838//21579 +f 22844//21585 22841//21582 22843//21584 22845//21586 +f 22846//21587 22842//21583 22841//21582 22844//21585 +f 22844//21585 22847//21588 22848//21589 22846//21587 +f 22845//21586 22849//21590 22847//21588 22844//21585 +f 22850//21591 22847//21588 22849//21590 22851//21592 +f 22852//21593 22848//21589 22847//21588 22850//21591 +f 22850//21591 22853//21594 22854//21595 22852//21593 +f 22851//21592 22855//21596 22853//21594 22850//21591 +f 22856//21597 22853//21594 22855//21596 22857//21598 +f 22858//21599 22854//21595 22853//21594 22856//21597 +f 22856//21597 22859//21600 22860//21601 22858//21599 +f 22857//21598 22861//21602 22859//21600 22856//21597 +f 22862//21603 22859//21600 22861//21602 22863//21604 +f 22864//21605 22860//21601 22859//21600 22862//21603 +f 22862//21603 22865//21606 22866//21607 22864//21605 +f 22863//21604 22867//21608 22865//21606 22862//21603 +f 22868//21609 22865//21606 22867//21608 22869//21610 +f 22870//21611 22866//21607 22865//21606 22868//21609 +f 22868//21609 22871//21612 22872//21613 22870//21611 +f 22869//21610 22873//21614 22871//21612 22868//21609 +f 22874//21615 22871//21612 22873//21614 22875//21616 +f 22876//21617 22872//21613 22871//21612 22874//21615 +f 22874//21615 22877//21618 22878//21619 22876//21617 +f 22875//21616 22879//21620 22877//21618 22874//21615 +f 22880//21621 22877//21618 22879//21620 22881//21622 +f 22882//21623 22878//21619 22877//21618 22880//21621 +f 22880//21621 22883//21624 22884//21625 22882//21623 +f 22881//21622 22885//21626 22883//21624 22880//21621 +f 22886//21627 22883//21624 22885//21626 22887//21628 +f 22888//21629 22884//21625 22883//21624 22886//21627 +f 22886//21627 22889//21630 22890//21631 22888//21629 +f 22887//21628 22891//21632 22889//21630 22886//21627 +f 22892//21633 22889//21630 22891//21632 22893//21634 +f 22894//21635 22890//21631 22889//21630 22892//21633 +f 22892//21633 22895//21636 22896//21637 22894//21635 +f 22893//21634 22897//21638 22895//21636 22892//21633 +f 22898//21639 22895//21636 22897//21638 22899//21640 +f 22900//21641 22896//21637 22895//21636 22898//21639 +f 22898//21639 22901//21642 22902//21643 22900//21641 +f 22899//21640 22903//21644 22901//21642 22898//21639 +f 22904//21645 22901//21642 22903//21644 22905//21646 +f 22906//21647 22902//21643 22901//21642 22904//21645 +f 22904//21645 22907//21648 22908//21649 22906//21647 +f 22905//21646 22909//21650 22907//21648 22904//21645 +f 22910//21651 22907//21648 22909//21650 22911//21652 +f 22912//21653 22908//21649 22907//21648 22910//21651 +f 22910//21651 22913//21654 22914//21655 22912//21653 +f 22911//21652 22915//21656 22913//21654 22910//21651 +f 22916//21657 22913//21654 22915//21656 22917//21658 +f 22918//21659 22914//21655 22913//21654 22916//21657 +f 22919//21660 22920//21661 22921//21662 22922//21663 +f 22923//21664 22924//21665 22920//21661 22919//21660 +f 22925//21666 22920//21661 22924//21665 22926//21667 +f 22927//21668 22921//21662 22920//21661 22925//21666 +f 22925//21666 22928//21669 22929//21670 22927//21668 +f 22926//21667 22930//21671 22928//21669 22925//21666 +f 22931//21672 22928//21669 22930//21671 22932//21673 +f 22933//21674 22929//21670 22928//21669 22931//21672 +f 22931//21672 22934//21675 22935//21676 22933//21674 +f 22932//21673 22936//21677 22934//21675 22931//21672 +f 22937//21678 22934//21675 22936//21677 22938//21679 +f 22939//21680 22935//21676 22934//21675 22937//21678 +f 22937//21678 22940//21681 22941//21682 22939//21680 +f 22938//21679 22942//21683 22940//21681 22937//21678 +f 22943//21684 22940//21681 22942//21683 22944//21685 +f 22945//21686 22941//21682 22940//21681 22943//21684 +f 22943//21684 22946//21687 22947//21688 22945//21686 +f 22944//21685 22948//21689 22946//21687 22943//21684 +f 22949//21690 22946//21687 22948//21689 22950//21691 +f 22951//21692 22947//21688 22946//21687 22949//21690 +f 22949//21690 22952//21693 22953//21694 22951//21692 +f 22950//21691 22954//21695 22952//21693 22949//21690 +f 22955//21696 22952//21693 22954//21695 22956//21697 +f 22957//21698 22953//21694 22952//21693 22955//21696 +f 22955//21696 22958//21699 22959//21700 22957//21698 +f 22956//21697 22960//21701 22958//21699 22955//21696 +f 22961//21702 22958//21699 22960//21701 22962//21703 +f 22963//21704 22959//21700 22958//21699 22961//21702 +f 22961//21702 22964//21705 22965//21706 22963//21704 +f 22962//21703 22966//21707 22964//21705 22961//21702 +f 22967//21708 22964//21705 22966//21707 22968//21709 +f 22969//21710 22965//21706 22964//21705 22967//21708 +f 22967//21708 22970//21711 22971//21712 22969//21710 +f 22968//21709 22972//21713 22970//21711 22967//21708 +f 22973//21714 22970//21711 22972//21713 22974//21715 +f 22975//21716 22971//21712 22970//21711 22973//21714 +f 22973//21714 22976//21717 22977//21718 22975//21716 +f 22974//21715 22978//21719 22976//21717 22973//21714 +f 22979//21720 22976//21717 22978//21719 22980//21721 +f 22981//21722 22977//21718 22976//21717 22979//21720 +f 22979//21720 22982//21723 22983//21724 22981//21722 +f 22980//21721 22984//21725 22982//21723 22979//21720 +f 22985//21726 22982//21723 22984//21725 22986//21727 +f 22987//21728 22983//21724 22982//21723 22985//21726 +f 22985//21726 22988//21729 22989//21730 22987//21728 +f 22986//21727 22990//21731 22988//21729 22985//21726 +f 22991//21732 22988//21729 22990//21731 22992//21733 +f 22993//21734 22989//21730 22988//21729 22991//21732 +f 22991//21732 22994//21735 22995//21736 22993//21734 +f 22992//21733 22996//21737 22994//21735 22991//21732 +f 22997//21738 22994//21735 22996//21737 22998//21739 +f 22999//21740 22995//21736 22994//21735 22997//21738 +f 22997//21738 23000//21741 23001//21742 22999//21740 +f 22998//21739 23002//21743 23000//21741 22997//21738 +f 23003//21744 23000//21741 23002//21743 23004//21745 +f 23005//21746 23001//21742 23000//21741 23003//21744 +f 23003//21744 23006//21747 23007//21748 23005//21746 +f 23004//21745 23008//21749 23006//21747 23003//21744 +f 23009//21750 23006//21747 23008//21749 23010//21751 +f 23011//21752 23007//21748 23006//21747 23009//21750 +f 23009//21750 23012//21753 23013//21754 23011//21752 +f 23010//21751 23014//21755 23012//21753 23009//21750 +f 23015//21756 23012//21753 23014//21755 23016//21757 +f 23017//21758 23013//21754 23012//21753 23015//21756 +f 23015//21756 23018//21759 23019//21760 23017//21758 +f 23016//21757 23020//21761 23018//21759 23015//21756 +f 23021//21762 23018//21759 23020//21761 23022//21763 +f 23023//21764 23019//21760 23018//21759 23021//21762 +f 23021//21762 23024//21765 23025//21766 23023//21764 +f 23022//21763 23026//21767 23024//21765 23021//21762 +f 23027//21768 23024//21765 23026//21767 23028//21769 +f 23029//21770 23025//21766 23024//21765 23027//21768 +f 23027//21768 23030//21771 23031//21772 23029//21770 +f 23028//21769 23032//21773 23030//21771 23027//21768 +f 23033//21774 23030//21771 23032//21773 23034//21775 +f 23035//21776 23031//21772 23030//21771 23033//21774 +f 23033//21774 23036//21777 23037//21778 23035//21776 +f 23034//21775 23038//21779 23036//21777 23033//21774 +f 23039//21780 23036//21777 23038//21779 23040//21781 +f 23041//21782 23037//21778 23036//21777 23039//21780 +f 23042//21783 23043//21784 23044//21785 23045//21786 +f 23046//21787 23047//21788 23043//21784 23042//21783 +f 23048//21789 23043//21784 23047//21788 23049//21790 +f 23050//21791 23044//21785 23043//21784 23048//21789 +f 23048//21789 23051//21792 23052//21793 23050//21791 +f 23049//21790 23053//21794 23051//21792 23048//21789 +f 23054//21795 23051//21792 23053//21794 23055//21796 +f 23056//21797 23052//21793 23051//21792 23054//21795 +f 23054//21795 23057//21798 23058//21799 23056//21797 +f 23055//21796 23059//21800 23057//21798 23054//21795 +f 23060//21801 23057//21798 23059//21800 23061//21802 +f 23062//21803 23058//21799 23057//21798 23060//21801 +f 23060//21801 23063//21804 23064//21805 23062//21803 +f 23061//21802 23065//21806 23063//21804 23060//21801 +f 23066//21807 23063//21804 23065//21806 23067//21808 +f 23068//21809 23064//21805 23063//21804 23066//21807 +f 23066//21807 23069//21810 23070//21811 23068//21809 +f 23067//21808 23071//21812 23069//21810 23066//21807 +f 23072//21813 23069//21810 23071//21812 23073//21814 +f 23074//21815 23070//21811 23069//21810 23072//21813 +f 23072//21813 23075//21816 23076//21817 23074//21815 +f 23073//21814 23077//21818 23075//21816 23072//21813 +f 23078//21819 23079//21820 23075//21816 23077//21818 +f 23079//21820 23080//21821 23076//21817 23075//21816 +f 23080//21821 23079//21820 23081//21822 23082//21823 +f 23079//21820 23078//21819 23083//21824 23081//21822 +f 23084//21825 23085//21826 23081//21822 23083//21824 +f 23085//21826 23086//21827 23082//21823 23081//21822 +f 23086//21827 23085//21826 23087//21828 23088//21829 +f 23085//21826 23084//21825 23089//21830 23087//21828 +f 23090//21831 23091//21832 23087//21828 23089//21830 +f 23091//21832 23092//21833 23088//21829 23087//21828 +f 23092//21833 23091//21832 23093//21834 23094//21835 +f 23091//21832 23090//21831 23095//21836 23093//21834 +f 23096//21837 23097//21838 23093//21834 23095//21836 +f 23097//21838 23098//21839 23094//21835 23093//21834 +f 23098//21839 23097//21838 23099//21840 23100//21841 +f 23097//21838 23096//21837 23101//21842 23099//21840 +f 23102//21843 23103//21844 23099//21840 23101//21842 +f 23103//21844 23104//21845 23100//21841 23099//21840 +f 23103//21844 23105//21846 23106//21847 23104//21845 +f 23102//21843 23107//21848 23105//21846 23103//21844 +f 23108//21849 23105//21846 23107//21848 23109//21850 +f 23110//21851 23106//21847 23105//21846 23108//21849 +f 23108//21849 23111//21852 23112//21853 23110//21851 +f 23109//21850 23113//21854 23111//21852 23108//21849 +f 23114//21855 23111//21852 23113//21854 23115//21856 +f 23116//21857 23112//21853 23111//21852 23114//21855 +f 23114//21855 23117//21858 23118//21859 23116//21857 +f 23115//21856 23119//21860 23117//21858 23114//21855 +f 23120//21861 23117//21858 23119//21860 23121//21862 +f 23122//21863 23118//21859 23117//21858 23120//21861 +f 23120//21861 23123//21864 23124//21865 23122//21863 +f 23121//21862 23125//21866 23123//21864 23120//21861 +f 23126//21867 23123//21864 23125//21866 23127//21868 +f 23128//21869 23124//21865 23123//21864 23126//21867 +f 23126//21867 23129//21870 23130//21871 23128//21869 +f 23127//21868 23131//21872 23129//21870 23126//21867 +f 23132//21873 23129//21870 23131//21872 23133//21874 +f 23134//21875 23130//21871 23129//21870 23132//21873 +f 23132//21873 23135//21876 23136//21877 23134//21875 +f 23133//21874 23137//21878 23135//21876 23132//21873 +f 23138//21879 23135//21876 23137//21878 23139//21880 +f 23140//21881 23136//21877 23135//21876 23138//21879 +f 23138//21879 23141//21882 23142//21883 23140//21881 +f 23139//21880 23143//21884 23141//21882 23138//21879 +f 23144//21885 23141//21882 23143//21884 23145//21886 +f 23146//21887 23142//21883 23141//21882 23144//21885 +f 23144//21885 23147//21888 23148//21889 23146//21887 +f 23145//21886 23149//21890 23147//21888 23144//21885 +f 23150//21891 23147//21888 23149//21890 23151//21892 +f 23152//21893 23148//21889 23147//21888 23150//21891 +f 23150//21891 23153//21894 23154//21895 23152//21893 +f 23151//21892 23155//21896 23153//21894 23150//21891 +f 23156//21897 23153//21894 23155//21896 23157//21898 +f 23158//21899 23154//21895 23153//21894 23156//21897 +f 23156//21897 23159//21900 23160//21901 23158//21899 +f 23157//21898 23161//21902 23159//21900 23156//21897 +f 23162//21903 23159//21900 23161//21902 23163//21904 +f 23164//21905 23160//21901 23159//21900 23162//21903 +f 23165//21906 23166//21907 23047//21788 23046//21787 +f 23167//21908 23168//21909 23166//21907 23165//21906 +f 23169//21910 23166//21907 23168//21909 23170//21911 +f 23049//21790 23047//21788 23166//21907 23169//21910 +f 23169//21910 23171//21912 23053//21794 23049//21790 +f 23170//21911 23172//21913 23171//21912 23169//21910 +f 23173//21914 23171//21912 23172//21913 23174//21915 +f 23055//21796 23053//21794 23171//21912 23173//21914 +f 23173//21914 23175//21916 23059//21800 23055//21796 +f 23174//21915 23176//21917 23175//21916 23173//21914 +f 23177//21918 23175//21916 23176//21917 23178//21919 +f 23061//21802 23059//21800 23175//21916 23177//21918 +f 23177//21918 23179//21920 23065//21806 23061//21802 +f 23178//21919 23180//21921 23179//21920 23177//21918 +f 23181//21922 23179//21920 23180//21921 23182//21923 +f 23067//21808 23065//21806 23179//21920 23181//21922 +f 23181//21922 23183//21924 23071//21812 23067//21808 +f 23181//21922 23182//21923 23184//21925 23183//21924 +f 23185//21926 23186//21927 23183//21924 23184//21925 +f 23073//21814 23071//21812 23183//21924 23186//21927 +f 23186//21927 23187//21928 23077//21818 23073//21814 +f 23186//21927 23185//21926 23188//21929 23187//21928 +f 23189//21930 23190//21931 23187//21928 23188//21929 +f 23190//21931 23078//21819 23077//21818 23187//21928 +f 23191//21932 23192//21933 23131//21872 23127//21868 +f 23193//21934 23194//21935 23192//21933 23191//21932 +f 23195//21936 23192//21933 23194//21935 23196//21937 +f 23133//21874 23131//21872 23192//21933 23195//21936 +f 23195//21936 23197//21938 23137//21878 23133//21874 +f 23196//21937 23198//21939 23197//21938 23195//21936 +f 23199//21940 23197//21938 23198//21939 23200//21941 +f 23139//21880 23137//21878 23197//21938 23199//21940 +f 23199//21940 23201//21942 23143//21884 23139//21880 +f 23200//21941 23202//21943 23201//21942 23199//21940 +f 23203//21944 23201//21942 23202//21943 23204//21945 +f 23145//21886 23143//21884 23201//21942 23203//21944 +f 23203//21944 23205//21946 23149//21890 23145//21886 +f 23204//21945 23206//21947 23205//21946 23203//21944 +f 23207//21948 23205//21946 23206//21947 23208//21949 +f 23151//21892 23149//21890 23205//21946 23207//21948 +f 23207//21948 23209//21950 23155//21896 23151//21892 +f 23208//21949 23210//21951 23209//21950 23207//21948 +f 23211//21952 23209//21950 23210//21951 23212//21953 +f 23157//21898 23155//21896 23209//21950 23211//21952 +f 23211//21952 23213//21954 23161//21902 23157//21898 +f 23212//21953 23214//21955 23213//21954 23211//21952 +f 23215//21956 23213//21954 23214//21955 23216//21957 +f 23163//21904 23161//21902 23213//21954 23215//21956 +f 23217//21958 23218//21959 23168//21909 23167//21908 +f 23219//21960 23220//21961 23218//21959 23217//21958 +f 23221//21962 23218//21959 23220//21961 23222//21963 +f 23170//21911 23168//21909 23218//21959 23221//21962 +f 23221//21962 23223//21964 23172//21913 23170//21911 +f 23222//21963 23224//21965 23223//21964 23221//21962 +f 23225//21966 23223//21964 23224//21965 23226//21967 +f 23174//21915 23172//21913 23223//21964 23225//21966 +f 23225//21966 23227//21968 23176//21917 23174//21915 +f 23226//21967 23228//21969 23227//21968 23225//21966 +f 23229//21970 23227//21968 23228//21969 23230//21971 +f 23178//21919 23176//21917 23227//21968 23229//21970 +f 23229//21970 23231//21972 23180//21921 23178//21919 +f 23230//21971 23232//21973 23231//21972 23229//21970 +f 23233//21974 23234//21975 23231//21972 23232//21973 +f 23234//21975 23182//21923 23180//21921 23231//21972 +f 23182//21923 23234//21975 23235//21976 23184//21925 +f 23234//21975 23233//21974 23236//21977 23235//21976 +f 23237//21978 23238//21979 23235//21976 23236//21977 +f 23238//21979 23185//21926 23184//21925 23235//21976 +f 23239//21980 23240//21981 23198//21939 23196//21937 +f 23241//21982 23242//21983 23240//21981 23239//21980 +f 23243//21984 23240//21981 23242//21983 23244//21985 +f 23200//21941 23198//21939 23240//21981 23243//21984 +f 23243//21984 23245//21986 23202//21943 23200//21941 +f 23244//21985 23246//21987 23245//21986 23243//21984 +f 23247//21988 23245//21986 23246//21987 23248//21989 +f 23204//21945 23202//21943 23245//21986 23247//21988 +f 23247//21988 23249//21990 23206//21947 23204//21945 +f 23248//21989 23250//21991 23249//21990 23247//21988 +f 23251//21992 23249//21990 23250//21991 23252//21993 +f 23208//21949 23206//21947 23249//21990 23251//21992 +f 23251//21992 23253//21994 23210//21951 23208//21949 +f 23252//21993 23254//21995 23253//21994 23251//21992 +f 23255//21996 23253//21994 23254//21995 23256//21997 +f 23212//21953 23210//21951 23253//21994 23255//21996 +f 23255//21996 23257//21998 23214//21955 23212//21953 +f 23256//21997 23258//21999 23257//21998 23255//21996 +f 23259//22000 23257//21998 23258//21999 23260//22001 +f 23216//21957 23214//21955 23257//21998 23259//22000 +f 23261//22002 23262//22003 23220//21961 23219//21960 +f 23263//22004 23264//22005 23262//22003 23261//22002 +f 23265//22006 23262//22003 23264//22005 23266//22007 +f 23222//21963 23220//21961 23262//22003 23265//22006 +f 23265//22006 23267//22008 23224//21965 23222//21963 +f 23266//22007 23268//22009 23267//22008 23265//22006 +f 23269//22010 23267//22008 23268//22009 23270//22011 +f 23226//21967 23224//21965 23267//22008 23269//22010 +f 23269//22010 23271//22012 23228//21969 23226//21967 +f 23270//22011 23272//22013 23271//22012 23269//22010 +f 23273//22014 23271//22012 23272//22013 23274//22015 +f 23230//21971 23228//21969 23271//22012 23273//22014 +f 23273//22014 23275//22016 23232//21973 23230//21971 +f 23274//22015 23276//22017 23275//22016 23273//22014 +f 23277//22018 23278//22019 23275//22016 23276//22017 +f 23278//22019 23233//21974 23232//21973 23275//22016 +f 23233//21974 23278//22019 23279//22020 23236//21977 +f 23278//22019 23277//22018 23280//22021 23279//22020 +f 23281//22022 23282//22023 23279//22020 23280//22021 +f 23282//22023 23237//21978 23236//21977 23279//22020 +f 23283//22024 23284//22025 23242//21983 23241//21982 +f 23285//22026 23286//22027 23284//22025 23283//22024 +f 23287//22028 23284//22025 23286//22027 23288//22029 +f 23244//21985 23242//21983 23284//22025 23287//22028 +f 23287//22028 23289//22030 23246//21987 23244//21985 +f 23288//22029 23290//22031 23289//22030 23287//22028 +f 23291//22032 23289//22030 23290//22031 23292//22033 +f 23248//21989 23246//21987 23289//22030 23291//22032 +f 23291//22032 23293//22034 23250//21991 23248//21989 +f 23292//22033 23294//22035 23293//22034 23291//22032 +f 23295//22036 23293//22034 23294//22035 23296//22037 +f 23252//21993 23250//21991 23293//22034 23295//22036 +f 23295//22036 23297//22038 23254//21995 23252//21993 +f 23296//22037 23298//22039 23297//22038 23295//22036 +f 23299//22040 23297//22038 23298//22039 23300//22041 +f 23256//21997 23254//21995 23297//22038 23299//22040 +f 23299//22040 23301//22042 23258//21999 23256//21997 +f 23300//22041 23302//22043 23301//22042 23299//22040 +f 23303//22044 23301//22042 23302//22043 23304//22045 +f 23260//22001 23258//21999 23301//22042 23303//22044 +f 23305//22046 23306//22047 23264//22005 23263//22004 +f 23307//22048 23308//22049 23306//22047 23305//22046 +f 23309//22050 23306//22047 23308//22049 23310//22051 +f 23266//22007 23264//22005 23306//22047 23309//22050 +f 23309//22050 23311//22052 23268//22009 23266//22007 +f 23310//22051 23312//22053 23311//22052 23309//22050 +f 23313//22054 23311//22052 23312//22053 23314//22055 +f 23270//22011 23268//22009 23311//22052 23313//22054 +f 23313//22054 23315//22056 23272//22013 23270//22011 +f 23314//22055 23316//22057 23315//22056 23313//22054 +f 23317//22058 23315//22056 23316//22057 23318//22059 +f 23274//22015 23272//22013 23315//22056 23317//22058 +f 23317//22058 23319//22060 23276//22017 23274//22015 +f 23318//22059 23320//22061 23319//22060 23317//22058 +f 23321//22062 23319//22060 23320//22061 23322//22063 +f 23277//22018 23276//22017 23319//22060 23321//22062 +f 23277//22018 23321//22062 23323//22064 23280//22021 +f 23321//22062 23322//22063 23324//22065 23323//22064 +f 23325//22066 23326//22067 23323//22064 23324//22065 +f 23326//22067 23281//22022 23280//22021 23323//22064 +f 23327//22068 23328//22069 23329//22070 23330//22071 +f 23328//22069 23331//22072 23332//22073 23329//22070 +f 23288//22029 23286//22027 23329//22070 23332//22073 +f 23286//22027 23285//22026 23330//22071 23329//22070 +f 23332//22073 23333//22074 23290//22031 23288//22029 +f 23331//22072 23334//22075 23333//22074 23332//22073 +f 23335//22076 23333//22074 23334//22075 23336//22077 +f 23292//22033 23290//22031 23333//22074 23335//22076 +f 23335//22076 23337//22078 23294//22035 23292//22033 +f 23336//22077 23338//22079 23337//22078 23335//22076 +f 23339//22080 23337//22078 23338//22079 23340//22081 +f 23296//22037 23294//22035 23337//22078 23339//22080 +f 23339//22080 23341//22082 23298//22039 23296//22037 +f 23340//22081 23342//22083 23341//22082 23339//22080 +f 23343//22084 23341//22082 23342//22083 23344//22085 +f 23300//22041 23298//22039 23341//22082 23343//22084 +f 23343//22084 23345//22086 23302//22043 23300//22041 +f 23344//22085 23346//22087 23345//22086 23343//22084 +f 23347//22088 23345//22086 23346//22087 23348//22089 +f 23304//22045 23302//22043 23345//22086 23347//22088 +f 23349//22090 23350//22091 23308//22049 23307//22048 +f 23351//22092 23352//22093 23350//22091 23349//22090 +f 23353//22094 23350//22091 23352//22093 23354//22095 +f 23310//22051 23308//22049 23350//22091 23353//22094 +f 23353//22094 23355//22096 23312//22053 23310//22051 +f 23354//22095 23356//22097 23355//22096 23353//22094 +f 23357//22098 23355//22096 23356//22097 23358//22099 +f 23314//22055 23312//22053 23355//22096 23357//22098 +f 23357//22098 23359//22100 23316//22057 23314//22055 +f 23358//22099 23360//22101 23359//22100 23357//22098 +f 23361//22102 23359//22100 23360//22101 23362//22103 +f 23318//22059 23316//22057 23359//22100 23361//22102 +f 23361//22102 23363//22104 23320//22061 23318//22059 +f 23362//22103 23364//22105 23363//22104 23361//22102 +f 23365//22106 23363//22104 23364//22105 23366//22107 +f 23322//22063 23320//22061 23363//22104 23365//22106 +f 23322//22063 23365//22106 23367//22108 23324//22065 +f 23366//22107 23368//22109 23367//22108 23365//22106 +f 23369//22110 23370//22111 23367//22108 23368//22109 +f 23370//22111 23325//22066 23324//22065 23367//22108 +f 23371//22112 23372//22113 23373//22114 23374//22115 +f 23375//22116 23376//22117 23372//22113 23371//22112 +f 23331//22072 23328//22069 23372//22113 23376//22117 +f 23328//22069 23327//22068 23373//22114 23372//22113 +f 23376//22117 23377//22118 23334//22075 23331//22072 +f 23375//22116 23378//22119 23377//22118 23376//22117 +f 23379//22120 23377//22118 23378//22119 23380//22121 +f 23336//22077 23334//22075 23377//22118 23379//22120 +f 23379//22120 23381//22122 23338//22079 23336//22077 +f 23380//22121 23382//22123 23381//22122 23379//22120 +f 23383//22124 23381//22122 23382//22123 23384//22125 +f 23340//22081 23338//22079 23381//22122 23383//22124 +f 23383//22124 23385//22126 23342//22083 23340//22081 +f 23384//22125 23386//22127 23385//22126 23383//22124 +f 23387//22128 23385//22126 23386//22127 23388//22129 +f 23344//22085 23342//22083 23385//22126 23387//22128 +f 23387//22128 23389//22130 23346//22087 23344//22085 +f 23388//22129 23390//22131 23389//22130 23387//22128 +f 23391//22132 23389//22130 23390//22131 23392//22133 +f 23348//22089 23346//22087 23389//22130 23391//22132 +f 23393//22134 23394//22135 23352//22093 23351//22092 +f 23395//22136 23396//22137 23394//22135 23393//22134 +f 23397//22138 23394//22135 23396//22137 23398//22139 +f 23354//22095 23352//22093 23394//22135 23397//22138 +f 23397//22138 23399//22140 23356//22097 23354//22095 +f 23398//22139 23400//22141 23399//22140 23397//22138 +f 23401//22142 23399//22140 23400//22141 23402//22143 +f 23358//22099 23356//22097 23399//22140 23401//22142 +f 23401//22142 23403//22144 23360//22101 23358//22099 +f 23402//22143 23404//22145 23403//22144 23401//22142 +f 23405//22146 23403//22144 23404//22145 23406//22147 +f 23362//22103 23360//22101 23403//22144 23405//22146 +f 23405//22146 23407//22148 23364//22105 23362//22103 +f 23406//22147 23408//22149 23407//22148 23405//22146 +f 23409//22150 23407//22148 23408//22149 23410//22151 +f 23366//22107 23364//22105 23407//22148 23409//22150 +f 23409//22150 23411//22152 23368//22109 23366//22107 +f 23410//22151 23412//22153 23411//22152 23409//22150 +f 23413//22154 23411//22152 23412//22153 23414//22155 +f 23369//22110 23368//22109 23411//22152 23413//22154 +f 23415//22156 23416//22157 23417//22158 23418//22159 +f 23419//22160 23420//22161 23416//22157 23415//22156 +f 23371//22112 23416//22157 23420//22161 23375//22116 +f 23374//22115 23417//22158 23416//22157 23371//22112 +f 23420//22161 23421//22162 23378//22119 23375//22116 +f 23419//22160 23422//22163 23421//22162 23420//22161 +f 23423//22164 23421//22162 23422//22163 23424//22165 +f 23380//22121 23378//22119 23421//22162 23423//22164 +f 23423//22164 23425//22166 23382//22123 23380//22121 +f 23424//22165 23426//22167 23425//22166 23423//22164 +f 23427//22168 23425//22166 23426//22167 23428//22169 +f 23384//22125 23382//22123 23425//22166 23427//22168 +f 23427//22168 23429//22170 23386//22127 23384//22125 +f 23428//22169 23430//22171 23429//22170 23427//22168 +f 23431//22172 23429//22170 23430//22171 23432//22173 +f 23388//22129 23386//22127 23429//22170 23431//22172 +f 23431//22172 23433//22174 23390//22131 23388//22129 +f 23432//22173 23434//22175 23433//22174 23431//22172 +f 23435//22176 23433//22174 23434//22175 23436//22177 +f 23392//22133 23390//22131 23433//22174 23435//22176 +f 23437//22178 23438//22179 23396//22137 23395//22136 +f 23439//22180 23440//22181 23438//22179 23437//22178 +f 23441//22182 23438//22179 23440//22181 23442//22183 +f 23398//22139 23396//22137 23438//22179 23441//22182 +f 23441//22182 23443//22184 23400//22141 23398//22139 +f 23442//22183 23444//22185 23443//22184 23441//22182 +f 23445//22186 23443//22184 23444//22185 23446//22187 +f 23402//22143 23400//22141 23443//22184 23445//22186 +f 23445//22186 23447//22188 23404//22145 23402//22143 +f 23446//22187 23448//22189 23447//22188 23445//22186 +f 23449//22190 23447//22188 23448//22189 23450//22191 +f 23406//22147 23404//22145 23447//22188 23449//22190 +f 23449//22190 23451//22192 23408//22149 23406//22147 +f 23450//22191 23452//22193 23451//22192 23449//22190 +f 23453//22194 23451//22192 23452//22193 23454//22195 +f 23410//22151 23408//22149 23451//22192 23453//22194 +f 23453//22194 23455//22196 23412//22153 23410//22151 +f 23454//22195 23456//22197 23455//22196 23453//22194 +f 23457//22198 23455//22196 23456//22197 23458//22199 +f 23414//22155 23412//22153 23455//22196 23457//22198 +f 23459//22200 23460//22201 23461//22202 23462//22203 +f 23463//22204 23464//22205 23460//22201 23459//22200 +f 23415//22156 23460//22201 23464//22205 23419//22160 +f 23418//22159 23461//22202 23460//22201 23415//22156 +f 23464//22205 23465//22206 23422//22163 23419//22160 +f 23464//22205 23463//22204 23466//22207 23465//22206 +f 23467//22208 23465//22206 23466//22207 23468//22209 +f 23424//22165 23422//22163 23465//22206 23467//22208 +f 23467//22208 23469//22210 23426//22167 23424//22165 +f 23468//22209 23470//22211 23469//22210 23467//22208 +f 23471//22212 23469//22210 23470//22211 23472//22213 +f 23428//22169 23426//22167 23469//22210 23471//22212 +f 23471//22212 23473//22214 23430//22171 23428//22169 +f 23472//22213 23474//22215 23473//22214 23471//22212 +f 23475//22216 23473//22214 23474//22215 23476//22217 +f 23432//22173 23430//22171 23473//22214 23475//22216 +f 23475//22216 23477//22218 23434//22175 23432//22173 +f 23476//22217 23478//22219 23477//22218 23475//22216 +f 23479//22220 23477//22218 23478//22219 23480//22221 +f 23436//22177 23434//22175 23477//22218 23479//22220 +f 23481//22222 23482//22223 23440//22181 23439//22180 +f 23483//22224 23484//22225 23482//22223 23481//22222 +f 23485//22226 23482//22223 23484//22225 23486//22227 +f 23442//22183 23440//22181 23482//22223 23485//22226 +f 23485//22226 23487//22228 23444//22185 23442//22183 +f 23486//22227 23488//22229 23487//22228 23485//22226 +f 23489//22230 23487//22228 23488//22229 23490//22231 +f 23446//22187 23444//22185 23487//22228 23489//22230 +f 23489//22230 23491//22232 23448//22189 23446//22187 +f 23490//22231 23492//22233 23491//22232 23489//22230 +f 23493//22234 23491//22232 23492//22233 23494//22235 +f 23450//22191 23448//22189 23491//22232 23493//22234 +f 23493//22234 23495//22236 23452//22193 23450//22191 +f 23494//22235 23496//22237 23495//22236 23493//22234 +f 23497//22238 23495//22236 23496//22237 23498//22239 +f 23454//22195 23452//22193 23495//22236 23497//22238 +f 23497//22238 23499//22240 23456//22197 23454//22195 +f 23498//22239 23500//22241 23499//22240 23497//22238 +f 23501//22242 23499//22240 23500//22241 23502//22243 +f 23458//22199 23456//22197 23499//22240 23501//22242 +f 23503//22244 23504//22245 23505//22246 23506//22247 +f 23507//22248 23508//22249 23504//22245 23503//22244 +f 23459//22200 23504//22245 23508//22249 23463//22204 +f 23462//22203 23505//22246 23504//22245 23459//22200 +f 23463//22204 23508//22249 23509//22250 23466//22207 +f 23508//22249 23507//22248 23510//22251 23509//22250 +f 23511//22252 23509//22250 23510//22251 23512//22253 +f 23468//22209 23466//22207 23509//22250 23511//22252 +f 23511//22252 23513//22254 23470//22211 23468//22209 +f 23512//22253 23514//22255 23513//22254 23511//22252 +f 23515//22256 23513//22254 23514//22255 23516//22257 +f 23472//22213 23470//22211 23513//22254 23515//22256 +f 23515//22256 23517//22258 23474//22215 23472//22213 +f 23516//22257 23518//22259 23517//22258 23515//22256 +f 23519//22260 23517//22258 23518//22259 23520//22261 +f 23476//22217 23474//22215 23517//22258 23519//22260 +f 23519//22260 23521//22262 23478//22219 23476//22217 +f 23520//22261 23522//22263 23521//22262 23519//22260 +f 23523//22264 23521//22262 23522//22263 23524//22265 +f 23480//22221 23478//22219 23521//22262 23523//22264 +f 23525//22266 23526//22267 23484//22225 23483//22224 +f 23527//22268 23528//22269 23526//22267 23525//22266 +f 23529//22270 23526//22267 23528//22269 23530//22271 +f 23486//22227 23484//22225 23526//22267 23529//22270 +f 23529//22270 23531//22272 23488//22229 23486//22227 +f 23530//22271 23532//22273 23531//22272 23529//22270 +f 23533//22274 23531//22272 23532//22273 23534//22275 +f 23490//22231 23488//22229 23531//22272 23533//22274 +f 23533//22274 23535//22276 23492//22233 23490//22231 +f 23534//22275 23536//22277 23535//22276 23533//22274 +f 23537//22278 23535//22276 23536//22277 23538//22279 +f 23494//22235 23492//22233 23535//22276 23537//22278 +f 23537//22278 23539//22280 23496//22237 23494//22235 +f 23538//22279 23540//22281 23539//22280 23537//22278 +f 23541//22282 23539//22280 23540//22281 23542//22283 +f 23498//22239 23496//22237 23539//22280 23541//22282 +f 23541//22282 23543//22284 23500//22241 23498//22239 +f 23542//22283 23544//22285 23543//22284 23541//22282 +f 23545//22286 23543//22284 23544//22285 23546//22287 +f 23502//22243 23500//22241 23543//22284 23545//22286 +f 23506//22247 23547//22288 23548//22289 23503//22244 +f 23547//22288 23549//22290 23550//22291 23548//22289 +f 23551//22292 23552//22293 23548//22289 23550//22291 +f 23552//22293 23507//22248 23503//22244 23548//22289 +f 23507//22248 23552//22293 23553//22294 23510//22251 +f 23552//22293 23551//22292 23554//22295 23553//22294 +f 23555//22296 23553//22294 23554//22295 23556//22297 +f 23512//22253 23510//22251 23553//22294 23555//22296 +f 23555//22296 23557//22298 23514//22255 23512//22253 +f 23556//22297 23558//22299 23557//22298 23555//22296 +f 23559//22300 23557//22298 23558//22299 23560//22301 +f 23516//22257 23514//22255 23557//22298 23559//22300 +f 23559//22300 23561//22302 23518//22259 23516//22257 +f 23560//22301 23562//22303 23561//22302 23559//22300 +f 23563//22304 23561//22302 23562//22303 23564//22305 +f 23520//22261 23518//22259 23561//22302 23563//22304 +f 23563//22304 23565//22306 23522//22263 23520//22261 +f 23564//22305 23566//22307 23565//22306 23563//22304 +f 23567//22308 23565//22306 23566//22307 23568//22309 +f 23524//22265 23522//22263 23565//22306 23567//22308 +f 23569//22310 23570//22311 23528//22269 23527//22268 +f 23571//22312 23572//22313 23570//22311 23569//22310 +f 23573//22314 23570//22311 23572//22313 23574//22315 +f 23530//22271 23528//22269 23570//22311 23573//22314 +f 23573//22314 23575//22316 23532//22273 23530//22271 +f 23574//22315 23576//22317 23575//22316 23573//22314 +f 23577//22318 23575//22316 23576//22317 23578//22319 +f 23534//22275 23532//22273 23575//22316 23577//22318 +f 23577//22318 23579//22320 23536//22277 23534//22275 +f 23578//22319 23580//22321 23579//22320 23577//22318 +f 23581//22322 23579//22320 23580//22321 23582//22323 +f 23538//22279 23536//22277 23579//22320 23581//22322 +f 23581//22322 23583//22324 23540//22281 23538//22279 +f 23582//22323 23584//22325 23583//22324 23581//22322 +f 23585//22326 23583//22324 23584//22325 23586//22327 +f 23542//22283 23540//22281 23583//22324 23585//22326 +f 23585//22326 23587//22328 23544//22285 23542//22283 +f 23586//22327 23588//22329 23587//22328 23585//22326 +f 23589//22330 23590//22331 23587//22328 23588//22329 +f 23546//22287 23544//22285 23587//22328 23590//22331 +f 23590//22331 23591//22332 23592//22333 23546//22287 +f 23590//22331 23589//22330 23593//22334 23591//22332 +f 23594//22335 23591//22332 23593//22334 23595//22336 +f 23596//22337 23592//22333 23591//22332 23594//22335 +f 23597//22338 23598//22339 23599//22340 23600//22341 +f 23598//22339 23601//22342 23602//22343 23599//22340 +f 23603//22344 23604//22345 23599//22340 23602//22343 +f 23604//22345 23549//22290 23600//22341 23599//22340 +f 23549//22290 23604//22345 23605//22346 23550//22291 +f 23604//22345 23603//22344 23606//22347 23605//22346 +f 23607//22348 23605//22346 23606//22347 23608//22349 +f 23607//22348 23551//22292 23550//22291 23605//22346 +f 23607//22348 23609//22350 23554//22295 23551//22292 +f 23608//22349 23610//22351 23609//22350 23607//22348 +f 23611//22352 23609//22350 23610//22351 23612//22353 +f 23556//22297 23554//22295 23609//22350 23611//22352 +f 23611//22352 23613//22354 23558//22299 23556//22297 +f 23612//22353 23614//22355 23613//22354 23611//22352 +f 23615//22356 23613//22354 23614//22355 23616//22357 +f 23560//22301 23558//22299 23613//22354 23615//22356 +f 23615//22356 23617//22358 23562//22303 23560//22301 +f 23616//22357 23618//22359 23617//22358 23615//22356 +f 23619//22360 23617//22358 23618//22359 23620//22361 +f 23564//22305 23562//22303 23617//22358 23619//22360 +f 23619//22360 23621//22362 23566//22307 23564//22305 +f 23620//22361 23622//22363 23621//22362 23619//22360 +f 23623//22364 23621//22362 23622//22363 23624//22365 +f 23568//22309 23566//22307 23621//22362 23623//22364 +f 23625//22366 23626//22367 23572//22313 23571//22312 +f 23627//22368 23628//22369 23626//22367 23625//22366 +f 23629//22370 23626//22367 23628//22369 23630//22371 +f 23574//22315 23572//22313 23626//22367 23629//22370 +f 23629//22370 23631//22372 23576//22317 23574//22315 +f 23630//22371 23632//22373 23631//22372 23629//22370 +f 23633//22374 23631//22372 23632//22373 23634//22375 +f 23578//22319 23576//22317 23631//22372 23633//22374 +f 23633//22374 23635//22376 23580//22321 23578//22319 +f 23634//22375 23636//22377 23635//22376 23633//22374 +f 23637//22378 23635//22376 23636//22377 23638//22379 +f 23582//22323 23580//22321 23635//22376 23637//22378 +f 23637//22378 23639//22380 23584//22325 23582//22323 +f 23638//22379 23640//22381 23639//22380 23637//22378 +f 23641//22382 23639//22380 23640//22381 23642//22383 +f 23586//22327 23584//22325 23639//22380 23641//22382 +f 23641//22382 23643//22384 23588//22329 23586//22327 +f 23642//22383 23644//22385 23643//22384 23641//22382 +f 23645//22386 23643//22384 23644//22385 23646//22387 +f 23589//22330 23588//22329 23643//22384 23645//22386 +f 23589//22330 23645//22386 23647//22388 23593//22334 +f 23646//22387 23648//22389 23647//22388 23645//22386 +f 23649//22390 23647//22388 23648//22389 23650//22391 +f 23595//22336 23593//22334 23647//22388 23649//22390 +f 23649//22390 23651//22392 23652//22393 23595//22336 +f 23650//22391 23653//22394 23651//22392 23649//22390 +f 23654//22395 23651//22392 23653//22394 23655//22396 +f 23656//22397 23652//22393 23651//22392 23654//22395 +f 23657//22398 23658//22399 23659//22400 23660//22401 +f 23661//22402 23662//22403 23658//22399 23657//22398 +f 23663//22404 23658//22399 23662//22403 23664//22405 +f 23665//22406 23659//22400 23658//22399 23663//22404 +f 23663//22404 23666//22407 23667//22408 23665//22406 +f 23664//22405 23668//22409 23666//22407 23663//22404 +f 23669//22410 23666//22407 23668//22409 23670//22411 +f 23671//22412 23667//22408 23666//22407 23669//22410 +f 23671//22412 23669//22410 23672//22413 23673//22414 +f 23669//22410 23670//22411 23674//22415 23672//22413 +f 23675//22416 23676//22417 23672//22413 23674//22415 +f 23676//22417 23677//22418 23673//22414 23672//22413 +f 23677//22418 23676//22417 23678//22419 23679//22420 +f 23676//22417 23675//22416 23680//22421 23678//22419 +f 23681//22422 23682//22423 23678//22419 23680//22421 +f 23682//22423 23683//22424 23679//22420 23678//22419 +f 23684//22425 23685//22426 23686//22427 23687//22428 +f 23685//22426 23688//22429 23689//22430 23686//22427 +f 23690//22431 23691//22432 23686//22427 23689//22430 +f 23691//22432 23601//22342 23687//22428 23686//22427 +f 23601//22342 23691//22432 23692//22433 23602//22343 +f 23691//22432 23690//22431 23693//22434 23692//22433 +f 23694//22435 23695//22436 23692//22433 23693//22434 +f 23695//22436 23603//22344 23602//22343 23692//22433 +f 23603//22344 23695//22436 23696//22437 23606//22347 +f 23695//22436 23694//22435 23697//22438 23696//22437 +f 23698//22439 23696//22437 23697//22438 23699//22440 +f 23608//22349 23606//22347 23696//22437 23698//22439 +f 23698//22439 23700//22441 23610//22351 23608//22349 +f 23699//22440 23701//22442 23700//22441 23698//22439 +f 23702//22443 23700//22441 23701//22442 23703//22444 +f 23612//22353 23610//22351 23700//22441 23702//22443 +f 23702//22443 23704//22445 23614//22355 23612//22353 +f 23703//22444 23705//22446 23704//22445 23702//22443 +f 23706//22447 23704//22445 23705//22446 23707//22448 +f 23616//22357 23614//22355 23704//22445 23706//22447 +f 23706//22447 23708//22449 23618//22359 23616//22357 +f 23707//22448 23709//22450 23708//22449 23706//22447 +f 23710//22451 23708//22449 23709//22450 23711//22452 +f 23620//22361 23618//22359 23708//22449 23710//22451 +f 23710//22451 23712//22453 23622//22363 23620//22361 +f 23711//22452 23713//22454 23712//22453 23710//22451 +f 23714//22455 23712//22453 23713//22454 23715//22456 +f 23624//22365 23622//22363 23712//22453 23714//22455 +f 23716//22457 23717//22458 23628//22369 23627//22368 +f 23718//22459 23719//22460 23717//22458 23716//22457 +f 23720//22461 23717//22458 23719//22460 23721//22462 +f 23630//22371 23628//22369 23717//22458 23720//22461 +f 23720//22461 23722//22463 23632//22373 23630//22371 +f 23721//22462 23723//22464 23722//22463 23720//22461 +f 23724//22465 23722//22463 23723//22464 23725//22466 +f 23634//22375 23632//22373 23722//22463 23724//22465 +f 23724//22465 23726//22467 23636//22377 23634//22375 +f 23725//22466 23727//22468 23726//22467 23724//22465 +f 23728//22469 23726//22467 23727//22468 23729//22470 +f 23638//22379 23636//22377 23726//22467 23728//22469 +f 23728//22469 23730//22471 23640//22381 23638//22379 +f 23729//22470 23731//22472 23730//22471 23728//22469 +f 23732//22473 23730//22471 23731//22472 23733//22474 +f 23642//22383 23640//22381 23730//22471 23732//22473 +f 23732//22473 23734//22475 23644//22385 23642//22383 +f 23733//22474 23735//22476 23734//22475 23732//22473 +f 23736//22477 23734//22475 23735//22476 23737//22478 +f 23646//22387 23644//22385 23734//22475 23736//22477 +f 23736//22477 23738//22479 23648//22389 23646//22387 +f 23737//22478 23739//22480 23738//22479 23736//22477 +f 23740//22481 23738//22479 23739//22480 23741//22482 +f 23650//22391 23648//22389 23738//22479 23740//22481 +f 23740//22481 23742//22483 23653//22394 23650//22391 +f 23741//22482 23743//22484 23742//22483 23740//22481 +f 23744//22485 23742//22483 23743//22484 23745//22486 +f 23655//22396 23653//22394 23742//22483 23744//22485 +f 23744//22485 23746//22487 23747//22488 23655//22396 +f 23745//22486 23748//22489 23746//22487 23744//22485 +f 23749//22490 23746//22487 23748//22489 23750//22491 +f 23751//22492 23747//22488 23746//22487 23749//22490 +f 23749//22490 23752//22493 23753//22494 23751//22492 +f 23750//22491 23754//22495 23752//22493 23749//22490 +f 23755//22496 23752//22493 23754//22495 23756//22497 +f 23757//22498 23753//22494 23752//22493 23755//22496 +f 23755//22496 23758//22499 23759//22500 23757//22498 +f 23756//22497 23760//22501 23758//22499 23755//22496 +f 23761//22502 23758//22499 23760//22501 23762//22503 +f 23763//22504 23759//22500 23758//22499 23761//22502 +f 23761//22502 23764//22505 23765//22506 23763//22504 +f 23762//22503 23766//22507 23764//22505 23761//22502 +f 23767//22508 23764//22505 23766//22507 23768//22509 +f 23767//22508 23769//22510 23765//22506 23764//22505 +f 23769//22510 23767//22508 23770//22511 23771//22512 +f 23768//22509 23772//22513 23770//22511 23767//22508 +f 23773//22514 23770//22511 23772//22513 23774//22515 +f 23773//22514 23775//22516 23771//22512 23770//22511 +f 23775//22516 23773//22514 23776//22517 23777//22518 +f 23774//22515 23778//22519 23776//22517 23773//22514 +f 23779//22520 23776//22517 23778//22519 23780//22521 +f 23779//22520 23688//22429 23777//22518 23776//22517 +f 23688//22429 23779//22520 23781//22522 23689//22430 +f 23780//22521 23782//22523 23781//22522 23779//22520 +f 23783//22524 23781//22522 23782//22523 23784//22525 +f 23783//22524 23690//22431 23689//22430 23781//22522 +f 23690//22431 23783//22524 23785//22526 23693//22434 +f 23784//22525 23786//22527 23785//22526 23783//22524 +f 23787//22528 23785//22526 23786//22527 23788//22529 +f 23787//22528 23694//22435 23693//22434 23785//22526 +f 23787//22528 23789//22530 23697//22438 23694//22435 +f 23788//22529 23790//22531 23789//22530 23787//22528 +f 23791//22532 23789//22530 23790//22531 23792//22533 +f 23699//22440 23697//22438 23789//22530 23791//22532 +f 23791//22532 23793//22534 23701//22442 23699//22440 +f 23792//22533 23794//22535 23793//22534 23791//22532 +f 23795//22536 23793//22534 23794//22535 23796//22537 +f 23703//22444 23701//22442 23793//22534 23795//22536 +f 23795//22536 23797//22538 23705//22446 23703//22444 +f 23796//22537 23798//22539 23797//22538 23795//22536 +f 23799//22540 23797//22538 23798//22539 23800//22541 +f 23707//22448 23705//22446 23797//22538 23799//22540 +f 23799//22540 23801//22542 23709//22450 23707//22448 +f 23800//22541 23802//22543 23801//22542 23799//22540 +f 23803//22544 23801//22542 23802//22543 23804//22545 +f 23711//22452 23709//22450 23801//22542 23803//22544 +f 23803//22544 23805//22546 23713//22454 23711//22452 +f 23804//22545 23806//22547 23805//22546 23803//22544 +f 23807//22548 23805//22546 23806//22547 23808//22549 +f 23715//22456 23713//22454 23805//22546 23807//22548 +f 23809//22550 23810//22551 23719//22460 23718//22459 +f 23811//22552 23812//22553 23810//22551 23809//22550 +f 23813//22554 23810//22551 23812//22553 23814//22555 +f 23721//22462 23719//22460 23810//22551 23813//22554 +f 23813//22554 23815//22556 23723//22464 23721//22462 +f 23814//22555 23816//22557 23815//22556 23813//22554 +f 23817//22558 23815//22556 23816//22557 23818//22559 +f 23725//22466 23723//22464 23815//22556 23817//22558 +f 23817//22558 23819//22560 23727//22468 23725//22466 +f 23818//22559 23820//22561 23819//22560 23817//22558 +f 23821//22562 23819//22560 23820//22561 23822//22563 +f 23729//22470 23727//22468 23819//22560 23821//22562 +f 23821//22562 23823//22564 23731//22472 23729//22470 +f 23822//22563 23824//22565 23823//22564 23821//22562 +f 23825//22566 23823//22564 23824//22565 23826//22567 +f 23733//22474 23731//22472 23823//22564 23825//22566 +f 23825//22566 23827//22568 23735//22476 23733//22474 +f 23826//22567 23828//22569 23827//22568 23825//22566 +f 23829//22570 23827//22568 23828//22569 23830//22571 +f 23737//22478 23735//22476 23827//22568 23829//22570 +f 23829//22570 23831//22572 23739//22480 23737//22478 +f 23830//22571 23832//22573 23831//22572 23829//22570 +f 23833//22574 23831//22572 23832//22573 23834//22575 +f 23741//22482 23739//22480 23831//22572 23833//22574 +f 23833//22574 23835//22576 23743//22484 23741//22482 +f 23834//22575 23836//22577 23835//22576 23833//22574 +f 23837//22578 23835//22576 23836//22577 23838//22579 +f 23745//22486 23743//22484 23835//22576 23837//22578 +f 23837//22578 23839//22580 23748//22489 23745//22486 +f 23838//22579 23840//22581 23839//22580 23837//22578 +f 23841//22582 23839//22580 23840//22581 23842//22583 +f 23750//22491 23748//22489 23839//22580 23841//22582 +f 23841//22582 23843//22584 23754//22495 23750//22491 +f 23842//22583 23844//22585 23843//22584 23841//22582 +f 23845//22586 23843//22584 23844//22585 23846//22587 +f 23756//22497 23754//22495 23843//22584 23845//22586 +f 23845//22586 23847//22588 23760//22501 23756//22497 +f 23846//22587 23848//22589 23847//22588 23845//22586 +f 23849//22590 23847//22588 23848//22589 23850//22591 +f 23762//22503 23760//22501 23847//22588 23849//22590 +f 23849//22590 23851//22592 23766//22507 23762//22503 +f 23850//22591 23852//22593 23851//22592 23849//22590 +f 23853//22594 23851//22592 23852//22593 23854//22595 +f 23768//22509 23766//22507 23851//22592 23853//22594 +f 23853//22594 23855//22596 23772//22513 23768//22509 +f 23854//22595 23856//22597 23855//22596 23853//22594 +f 23857//22598 23855//22596 23856//22597 23858//22599 +f 23774//22515 23772//22513 23855//22596 23857//22598 +f 23857//22598 23859//22600 23778//22519 23774//22515 +f 23858//22599 23860//22601 23859//22600 23857//22598 +f 23861//22602 23859//22600 23860//22601 23862//22603 +f 23780//22521 23778//22519 23859//22600 23861//22602 +f 23861//22602 23863//22604 23782//22523 23780//22521 +f 23862//22603 23864//22605 23863//22604 23861//22602 +f 23865//22606 23863//22604 23864//22605 23866//22607 +f 23784//22525 23782//22523 23863//22604 23865//22606 +f 23865//22606 23867//22608 23786//22527 23784//22525 +f 23866//22607 23868//22609 23867//22608 23865//22606 +f 23869//22610 23867//22608 23868//22609 23870//22611 +f 23788//22529 23786//22527 23867//22608 23869//22610 +f 23869//22610 23871//22612 23790//22531 23788//22529 +f 23870//22611 23872//22613 23871//22612 23869//22610 +f 23873//22614 23871//22612 23872//22613 23874//22615 +f 23792//22533 23790//22531 23871//22612 23873//22614 +f 23873//22614 23875//22616 23794//22535 23792//22533 +f 23874//22615 23876//22617 23875//22616 23873//22614 +f 23877//22618 23875//22616 23876//22617 23878//22619 +f 23796//22537 23794//22535 23875//22616 23877//22618 +f 23877//22618 23879//22620 23798//22539 23796//22537 +f 23878//22619 23880//22621 23879//22620 23877//22618 +f 23881//22622 23879//22620 23880//22621 23882//22623 +f 23800//22541 23798//22539 23879//22620 23881//22622 +f 23881//22622 23883//22624 23802//22543 23800//22541 +f 23882//22623 23884//22625 23883//22624 23881//22622 +f 23885//22626 23883//22624 23884//22625 23886//22627 +f 23804//22545 23802//22543 23883//22624 23885//22626 +f 23885//22626 23887//22628 23806//22547 23804//22545 +f 23886//22627 23888//22629 23887//22628 23885//22626 +f 23889//22630 23887//22628 23888//22629 23890//22631 +f 23808//22549 23806//22547 23887//22628 23889//22630 +f 23891//22632 23892//22633 23812//22553 23811//22552 +f 23893//22634 23894//22635 23892//22633 23891//22632 +f 23895//22636 23892//22633 23894//22635 23896//22637 +f 23814//22555 23812//22553 23892//22633 23895//22636 +f 23895//22636 23897//22638 23816//22557 23814//22555 +f 23896//22637 23898//22639 23897//22638 23895//22636 +f 23899//22640 23900//22641 23897//22638 23898//22639 +f 23818//22559 23816//22557 23897//22638 23900//22641 +f 23900//22641 23901//22642 23820//22561 23818//22559 +f 23899//22640 23902//22643 23901//22642 23900//22641 +f 23903//22644 23904//22645 23901//22642 23902//22643 +f 23822//22563 23820//22561 23901//22642 23904//22645 +f 23904//22645 23905//22646 23824//22565 23822//22563 +f 23904//22645 23903//22644 23906//22647 23905//22646 +f 23907//22648 23908//22649 23905//22646 23906//22647 +f 23826//22567 23824//22565 23905//22646 23908//22649 +f 23908//22649 23909//22650 23828//22569 23826//22567 +f 23907//22648 23910//22651 23909//22650 23908//22649 +f 23911//22652 23909//22650 23910//22651 23912//22653 +f 23830//22571 23828//22569 23909//22650 23911//22652 +f 23911//22652 23913//22654 23832//22573 23830//22571 +f 23912//22653 23914//22655 23913//22654 23911//22652 +f 23915//22656 23916//22657 23913//22654 23914//22655 +f 23834//22575 23832//22573 23913//22654 23916//22657 +f 23916//22657 23917//22658 23836//22577 23834//22575 +f 23915//22656 23918//22659 23917//22658 23916//22657 +f 23919//22660 23920//22661 23917//22658 23918//22659 +f 23838//22579 23836//22577 23917//22658 23920//22661 +f 23920//22661 23921//22662 23840//22581 23838//22579 +f 23920//22661 23919//22660 23922//22663 23921//22662 +f 23923//22664 23924//22665 23921//22662 23922//22663 +f 23842//22583 23840//22581 23921//22662 23924//22665 +f 23924//22665 23925//22666 23844//22585 23842//22583 +f 23923//22664 23926//22667 23925//22666 23924//22665 +f 23927//22668 23925//22666 23926//22667 23928//22669 +f 23846//22587 23844//22585 23925//22666 23927//22668 +f 23927//22668 23929//22670 23848//22589 23846//22587 +f 23928//22669 23930//22671 23929//22670 23927//22668 +f 23931//22672 23932//22673 23929//22670 23930//22671 +f 23850//22591 23848//22589 23929//22670 23932//22673 +f 23932//22673 23933//22674 23852//22593 23850//22591 +f 23931//22672 23934//22675 23933//22674 23932//22673 +f 23935//22676 23936//22677 23933//22674 23934//22675 +f 23854//22595 23852//22593 23933//22674 23936//22677 +f 23936//22677 23937//22678 23856//22597 23854//22595 +f 23936//22677 23935//22676 23938//22679 23937//22678 +f 23939//22680 23940//22681 23937//22678 23938//22679 +f 23858//22599 23856//22597 23937//22678 23940//22681 +f 23940//22681 23941//22682 23860//22601 23858//22599 +f 23939//22680 23942//22683 23941//22682 23940//22681 +f 23943//22684 23941//22682 23942//22683 23944//22685 +f 23862//22603 23860//22601 23941//22682 23943//22684 +f 23943//22684 23945//22686 23864//22605 23862//22603 +f 23944//22685 23946//22687 23945//22686 23943//22684 +f 23947//22688 23948//22689 23945//22686 23946//22687 +f 23866//22607 23864//22605 23945//22686 23948//22689 +f 23948//22689 23949//22690 23868//22609 23866//22607 +f 23947//22688 23950//22691 23949//22690 23948//22689 +f 23951//22692 23952//22693 23949//22690 23950//22691 +f 23870//22611 23868//22609 23949//22690 23952//22693 +f 23952//22693 23953//22694 23872//22613 23870//22611 +f 23952//22693 23951//22692 23954//22695 23953//22694 +f 23955//22696 23956//22697 23953//22694 23954//22695 +f 23874//22615 23872//22613 23953//22694 23956//22697 +f 23956//22697 23957//22698 23876//22617 23874//22615 +f 23955//22696 23958//22699 23957//22698 23956//22697 +f 23959//22700 23957//22698 23958//22699 23960//22701 +f 23878//22619 23876//22617 23957//22698 23959//22700 +f 23959//22700 23961//22702 23880//22621 23878//22619 +f 23960//22701 23962//22703 23961//22702 23959//22700 +f 23963//22704 23964//22705 23961//22702 23962//22703 +f 23882//22623 23880//22621 23961//22702 23964//22705 +f 23964//22705 23965//22706 23884//22625 23882//22623 +f 23963//22704 23966//22707 23965//22706 23964//22705 +f 23967//22708 23968//22709 23965//22706 23966//22707 +f 23886//22627 23884//22625 23965//22706 23968//22709 +f 23968//22709 23969//22710 23888//22629 23886//22627 +f 23968//22709 23967//22708 23970//22711 23969//22710 +f 23971//22712 23972//22713 23969//22710 23970//22711 +f 23890//22631 23888//22629 23969//22710 23972//22713 +f 23973//22714 23974//22715 23975//22716 23976//22717 +f 22922//21663 22921//21662 23974//22715 23973//22714 +f 23977//22718 23974//22715 22921//21662 22927//21668 +f 23978//22719 23975//22716 23974//22715 23977//22718 +f 23977//22718 23979//22720 23980//22721 23978//22719 +f 22927//21668 22929//21670 23979//22720 23977//22718 +f 23981//22722 23979//22720 22929//21670 22933//21674 +f 23982//22723 23980//22721 23979//22720 23981//22722 +f 23981//22722 23983//22724 23984//22725 23982//22723 +f 22933//21674 22935//21676 23983//22724 23981//22722 +f 23985//22726 23983//22724 22935//21676 22939//21680 +f 23986//22727 23984//22725 23983//22724 23985//22726 +f 23985//22726 23987//22728 23988//22729 23986//22727 +f 22939//21680 22941//21682 23987//22728 23985//22726 +f 23989//22730 23987//22728 22941//21682 22945//21686 +f 23990//22731 23988//22729 23987//22728 23989//22730 +f 23989//22730 23991//22732 23992//22733 23990//22731 +f 22945//21686 22947//21688 23991//22732 23989//22730 +f 23993//22734 23991//22732 22947//21688 22951//21692 +f 23994//22735 23992//22733 23991//22732 23993//22734 +f 23993//22734 23995//22736 23996//22737 23994//22735 +f 22951//21692 22953//21694 23995//22736 23993//22734 +f 23997//22738 23995//22736 22953//21694 22957//21698 +f 23998//22739 23996//22737 23995//22736 23997//22738 +f 23997//22738 23999//22740 24000//22741 23998//22739 +f 22957//21698 22959//21700 23999//22740 23997//22738 +f 24001//22742 23999//22740 22959//21700 22963//21704 +f 24002//22743 24000//22741 23999//22740 24001//22742 +f 24001//22742 24003//22744 24004//22745 24002//22743 +f 22963//21704 22965//21706 24003//22744 24001//22742 +f 24005//22746 24003//22744 22965//21706 22969//21710 +f 24006//22747 24004//22745 24003//22744 24005//22746 +f 24005//22746 24007//22748 24008//22749 24006//22747 +f 22969//21710 22971//21712 24007//22748 24005//22746 +f 24009//22750 24007//22748 22971//21712 22975//21716 +f 24010//22751 24008//22749 24007//22748 24009//22750 +f 24009//22750 24011//22752 24012//22753 24010//22751 +f 22975//21716 22977//21718 24011//22752 24009//22750 +f 24013//22754 24011//22752 22977//21718 22981//21722 +f 24014//22755 24012//22753 24011//22752 24013//22754 +f 24013//22754 24015//22756 24016//22757 24014//22755 +f 22981//21722 22983//21724 24015//22756 24013//22754 +f 24017//22758 24015//22756 22983//21724 22987//21728 +f 24018//22759 24016//22757 24015//22756 24017//22758 +f 24017//22758 24019//22760 24020//22761 24018//22759 +f 22987//21728 22989//21730 24019//22760 24017//22758 +f 24021//22762 24019//22760 22989//21730 22993//21734 +f 24022//22763 24020//22761 24019//22760 24021//22762 +f 24021//22762 24023//22764 24024//22765 24022//22763 +f 22993//21734 22995//21736 24023//22764 24021//22762 +f 24025//22766 24023//22764 22995//21736 22999//21740 +f 24026//22767 24024//22765 24023//22764 24025//22766 +f 24025//22766 24027//22768 24028//22769 24026//22767 +f 22999//21740 23001//21742 24027//22768 24025//22766 +f 24029//22770 24027//22768 23001//21742 23005//21746 +f 24030//22771 24028//22769 24027//22768 24029//22770 +f 24029//22770 24031//22772 24032//22773 24030//22771 +f 23005//21746 23007//21748 24031//22772 24029//22770 +f 24033//22774 24031//22772 23007//21748 23011//21752 +f 24034//22775 24032//22773 24031//22772 24033//22774 +f 24033//22774 24035//22776 24036//22777 24034//22775 +f 23011//21752 23013//21754 24035//22776 24033//22774 +f 24037//22778 24035//22776 23013//21754 23017//21758 +f 24038//22779 24036//22777 24035//22776 24037//22778 +f 24037//22778 24039//22780 24040//22781 24038//22779 +f 23017//21758 23019//21760 24039//22780 24037//22778 +f 24041//22782 24039//22780 23019//21760 23023//21764 +f 24042//22783 24040//22781 24039//22780 24041//22782 +f 24041//22782 24043//22784 24044//22785 24042//22783 +f 23023//21764 23025//21766 24043//22784 24041//22782 +f 24045//22786 24043//22784 23025//21766 23029//21770 +f 24046//22787 24044//22785 24043//22784 24045//22786 +f 24045//22786 24047//22788 24048//22789 24046//22787 +f 23029//21770 23031//21772 24047//22788 24045//22786 +f 24049//22790 24047//22788 23031//21772 23035//21776 +f 24050//22791 24048//22789 24047//22788 24049//22790 +f 24049//22790 24051//22792 24052//22793 24050//22791 +f 23035//21776 23037//21778 24051//22792 24049//22790 +f 24053//22794 24051//22792 23037//21778 23041//21782 +f 24054//22795 24052//22793 24051//22792 24053//22794 +f 24055//22796 24056//22797 24057//22798 24058//22799 +f 23976//22717 23975//22716 24056//22797 24055//22796 +f 24059//22800 24056//22797 23975//22716 23978//22719 +f 24060//22801 24057//22798 24056//22797 24059//22800 +f 24059//22800 24061//22802 24062//22803 24060//22801 +f 23978//22719 23980//22721 24061//22802 24059//22800 +f 24063//22804 24061//22802 23980//22721 23982//22723 +f 24064//22805 24062//22803 24061//22802 24063//22804 +f 24063//22804 24065//22806 24066//22807 24064//22805 +f 23982//22723 23984//22725 24065//22806 24063//22804 +f 24067//22808 24065//22806 23984//22725 23986//22727 +f 24068//22809 24066//22807 24065//22806 24067//22808 +f 24067//22808 24069//22810 24070//22811 24068//22809 +f 23986//22727 23988//22729 24069//22810 24067//22808 +f 24071//22812 24069//22810 23988//22729 23990//22731 +f 24072//22813 24070//22811 24069//22810 24071//22812 +f 24071//22812 24073//22814 24074//22815 24072//22813 +f 23990//22731 23992//22733 24073//22814 24071//22812 +f 24075//22816 24073//22814 23992//22733 23994//22735 +f 24076//22817 24074//22815 24073//22814 24075//22816 +f 24075//22816 24077//22818 24078//22819 24076//22817 +f 23994//22735 23996//22737 24077//22818 24075//22816 +f 24079//22820 24077//22818 23996//22737 23998//22739 +f 24080//22821 24078//22819 24077//22818 24079//22820 +f 24079//22820 24081//22822 24082//22823 24080//22821 +f 23998//22739 24000//22741 24081//22822 24079//22820 +f 24083//22824 24081//22822 24000//22741 24002//22743 +f 24084//22825 24082//22823 24081//22822 24083//22824 +f 24083//22824 24085//22826 24086//22827 24084//22825 +f 24002//22743 24004//22745 24085//22826 24083//22824 +f 24087//22828 24085//22826 24004//22745 24006//22747 +f 24088//22829 24086//22827 24085//22826 24087//22828 +f 24087//22828 24089//22830 24090//22831 24088//22829 +f 24006//22747 24008//22749 24089//22830 24087//22828 +f 24091//22832 24089//22830 24008//22749 24010//22751 +f 24092//22833 24090//22831 24089//22830 24091//22832 +f 24091//22832 24093//22834 24094//22835 24092//22833 +f 24010//22751 24012//22753 24093//22834 24091//22832 +f 24095//22836 24093//22834 24012//22753 24014//22755 +f 24096//22837 24094//22835 24093//22834 24095//22836 +f 24095//22836 24097//22838 24098//22839 24096//22837 +f 24014//22755 24016//22757 24097//22838 24095//22836 +f 24099//22840 24097//22838 24016//22757 24018//22759 +f 24100//22841 24098//22839 24097//22838 24099//22840 +f 24099//22840 24101//22842 24102//22843 24100//22841 +f 24018//22759 24020//22761 24101//22842 24099//22840 +f 24103//22844 24101//22842 24020//22761 24022//22763 +f 24104//22845 24102//22843 24101//22842 24103//22844 +f 24103//22844 24105//22846 24106//22847 24104//22845 +f 24022//22763 24024//22765 24105//22846 24103//22844 +f 24107//22848 24105//22846 24024//22765 24026//22767 +f 24108//22849 24106//22847 24105//22846 24107//22848 +f 24107//22848 24109//22850 24110//22851 24108//22849 +f 24026//22767 24028//22769 24109//22850 24107//22848 +f 24111//22852 24109//22850 24028//22769 24030//22771 +f 24112//22853 24110//22851 24109//22850 24111//22852 +f 24111//22852 24113//22854 24114//22855 24112//22853 +f 24030//22771 24032//22773 24113//22854 24111//22852 +f 24115//22856 24113//22854 24032//22773 24034//22775 +f 24116//22857 24114//22855 24113//22854 24115//22856 +f 24115//22856 24117//22858 24118//22859 24116//22857 +f 24034//22775 24036//22777 24117//22858 24115//22856 +f 24119//22860 24117//22858 24036//22777 24038//22779 +f 24120//22861 24118//22859 24117//22858 24119//22860 +f 24119//22860 24121//22862 24122//22863 24120//22861 +f 24038//22779 24040//22781 24121//22862 24119//22860 +f 24123//22864 24121//22862 24040//22781 24042//22783 +f 24124//22865 24122//22863 24121//22862 24123//22864 +f 24123//22864 24125//22866 24126//22867 24124//22865 +f 24042//22783 24044//22785 24125//22866 24123//22864 +f 24127//22868 24125//22866 24044//22785 24046//22787 +f 24128//22869 24126//22867 24125//22866 24127//22868 +f 24127//22868 24129//22870 24130//22871 24128//22869 +f 24046//22787 24048//22789 24129//22870 24127//22868 +f 24131//22872 24129//22870 24048//22789 24050//22791 +f 24132//22873 24130//22871 24129//22870 24131//22872 +f 24131//22872 24133//22874 24134//22875 24132//22873 +f 24050//22791 24052//22793 24133//22874 24131//22872 +f 24135//22876 24133//22874 24052//22793 24054//22795 +f 24136//22877 24134//22875 24133//22874 24135//22876 +f 24137//22878 24138//22879 22924//21665 22923//21664 +f 23045//21786 23044//21785 24138//22879 24137//22878 +f 24139//22880 24138//22879 23044//21785 23050//21791 +f 22926//21667 22924//21665 24138//22879 24139//22880 +f 24139//22880 24140//22881 22930//21671 22926//21667 +f 23050//21791 23052//21793 24140//22881 24139//22880 +f 24141//22882 24140//22881 23052//21793 23056//21797 +f 22932//21673 22930//21671 24140//22881 24141//22882 +f 24141//22882 24142//22883 22936//21677 22932//21673 +f 23056//21797 23058//21799 24142//22883 24141//22882 +f 24143//22884 24142//22883 23058//21799 23062//21803 +f 22938//21679 22936//21677 24142//22883 24143//22884 +f 24143//22884 24144//22885 22942//21683 22938//21679 +f 23062//21803 23064//21805 24144//22885 24143//22884 +f 24145//22886 24144//22885 23064//21805 23068//21809 +f 22944//21685 22942//21683 24144//22885 24145//22886 +f 24145//22886 24146//22887 22948//21689 22944//21685 +f 23068//21809 23070//21811 24146//22887 24145//22886 +f 24147//22888 24146//22887 23070//21811 23074//21815 +f 22950//21691 22948//21689 24146//22887 24147//22888 +f 24147//22888 24148//22889 22954//21695 22950//21691 +f 23074//21815 23076//21817 24148//22889 24147//22888 +f 24149//22890 24148//22889 23076//21817 23080//21821 +f 22956//21697 22954//21695 24148//22889 24149//22890 +f 24149//22890 24150//22891 22960//21701 22956//21697 +f 24149//22890 23080//21821 23082//21823 24150//22891 +f 23086//21827 24151//22892 24150//22891 23082//21823 +f 22962//21703 22960//21701 24150//22891 24151//22892 +f 24151//22892 24152//22893 22966//21707 22962//21703 +f 24151//22892 23086//21827 23088//21829 24152//22893 +f 23092//21833 24153//22894 24152//22893 23088//21829 +f 22968//21709 22966//21707 24152//22893 24153//22894 +f 24153//22894 24154//22895 22972//21713 22968//21709 +f 24153//22894 23092//21833 23094//21835 24154//22895 +f 23098//21839 24155//22896 24154//22895 23094//21835 +f 22974//21715 22972//21713 24154//22895 24155//22896 +f 24155//22896 24156//22897 22978//21719 22974//21715 +f 24155//22896 23098//21839 23100//21841 24156//22897 +f 24157//22898 24156//22897 23100//21841 23104//21845 +f 22980//21721 22978//21719 24156//22897 24157//22898 +f 24157//22898 24158//22899 22984//21725 22980//21721 +f 23104//21845 23106//21847 24158//22899 24157//22898 +f 24159//22900 24158//22899 23106//21847 23110//21851 +f 22986//21727 22984//21725 24158//22899 24159//22900 +f 24159//22900 24160//22901 22990//21731 22986//21727 +f 23110//21851 23112//21853 24160//22901 24159//22900 +f 24161//22902 24160//22901 23112//21853 23116//21857 +f 22992//21733 22990//21731 24160//22901 24161//22902 +f 24161//22902 24162//22903 22996//21737 22992//21733 +f 23116//21857 23118//21859 24162//22903 24161//22902 +f 24163//22904 24162//22903 23118//21859 23122//21863 +f 22998//21739 22996//21737 24162//22903 24163//22904 +f 24163//22904 24164//22905 23002//21743 22998//21739 +f 23122//21863 23124//21865 24164//22905 24163//22904 +f 24165//22906 24164//22905 23124//21865 23128//21869 +f 23004//21745 23002//21743 24164//22905 24165//22906 +f 24165//22906 24166//22907 23008//21749 23004//21745 +f 23128//21869 23130//21871 24166//22907 24165//22906 +f 24167//22908 24166//22907 23130//21871 23134//21875 +f 23010//21751 23008//21749 24166//22907 24167//22908 +f 24167//22908 24168//22909 23014//21755 23010//21751 +f 23134//21875 23136//21877 24168//22909 24167//22908 +f 24169//22910 24168//22909 23136//21877 23140//21881 +f 23016//21757 23014//21755 24168//22909 24169//22910 +f 24169//22910 24170//22911 23020//21761 23016//21757 +f 23140//21881 23142//21883 24170//22911 24169//22910 +f 24171//22912 24170//22911 23142//21883 23146//21887 +f 23022//21763 23020//21761 24170//22911 24171//22912 +f 24171//22912 24172//22913 23026//21767 23022//21763 +f 23146//21887 23148//21889 24172//22913 24171//22912 +f 24173//22914 24172//22913 23148//21889 23152//21893 +f 23028//21769 23026//21767 24172//22913 24173//22914 +f 24173//22914 24174//22915 23032//21773 23028//21769 +f 23152//21893 23154//21895 24174//22915 24173//22914 +f 24175//22916 24174//22915 23154//21895 23158//21899 +f 23034//21775 23032//21773 24174//22915 24175//22916 +f 24175//22916 24176//22917 23038//21779 23034//21775 +f 23158//21899 23160//21901 24176//22917 24175//22916 +f 24177//22918 24176//22917 23160//21901 23164//21905 +f 23040//21781 23038//21779 24176//22917 24177//22918 +f 24178//22919 24179//22920 24180//22921 24181//22922 +f 24058//22799 24057//22798 24179//22920 24178//22919 +f 24182//22923 24179//22920 24057//22798 24060//22801 +f 24183//22924 24180//22921 24179//22920 24182//22923 +f 24182//22923 24184//22925 24185//22926 24183//22924 +f 24060//22801 24062//22803 24184//22925 24182//22923 +f 24186//22927 24184//22925 24062//22803 24064//22805 +f 24187//22928 24185//22926 24184//22925 24186//22927 +f 24186//22927 24188//22929 24189//22930 24187//22928 +f 24064//22805 24066//22807 24188//22929 24186//22927 +f 24190//22931 24188//22929 24066//22807 24068//22809 +f 24191//22932 24189//22930 24188//22929 24190//22931 +f 24190//22931 24192//22933 24193//22934 24191//22932 +f 24068//22809 24070//22811 24192//22933 24190//22931 +f 24194//22935 24192//22933 24070//22811 24072//22813 +f 24195//22936 24193//22934 24192//22933 24194//22935 +f 24194//22935 24196//22937 24197//22938 24195//22936 +f 24072//22813 24074//22815 24196//22937 24194//22935 +f 24198//22939 24196//22937 24074//22815 24076//22817 +f 24199//22940 24197//22938 24196//22937 24198//22939 +f 24198//22939 24200//22941 24201//22942 24199//22940 +f 24076//22817 24078//22819 24200//22941 24198//22939 +f 24202//22943 24200//22941 24078//22819 24080//22821 +f 24203//22944 24201//22942 24200//22941 24202//22943 +f 24202//22943 24204//22945 24205//22946 24203//22944 +f 24080//22821 24082//22823 24204//22945 24202//22943 +f 24206//22947 24204//22945 24082//22823 24084//22825 +f 24207//22948 24205//22946 24204//22945 24206//22947 +f 24206//22947 24208//22949 24209//22950 24207//22948 +f 24084//22825 24086//22827 24208//22949 24206//22947 +f 24210//22951 24208//22949 24086//22827 24088//22829 +f 24211//22952 24209//22950 24208//22949 24210//22951 +f 24210//22951 24212//22953 24213//22954 24211//22952 +f 24088//22829 24090//22831 24212//22953 24210//22951 +f 24214//22955 24212//22953 24090//22831 24092//22833 +f 24215//22956 24213//22954 24212//22953 24214//22955 +f 24214//22955 24216//22957 24217//22958 24215//22956 +f 24092//22833 24094//22835 24216//22957 24214//22955 +f 24218//22959 24216//22957 24094//22835 24096//22837 +f 24219//22960 24217//22958 24216//22957 24218//22959 +f 24218//22959 24220//22961 24221//22962 24219//22960 +f 24096//22837 24098//22839 24220//22961 24218//22959 +f 24222//22963 24220//22961 24098//22839 24100//22841 +f 24223//22964 24221//22962 24220//22961 24222//22963 +f 24222//22963 24224//22965 24225//22966 24223//22964 +f 24100//22841 24102//22843 24224//22965 24222//22963 +f 24226//22967 24224//22965 24102//22843 24104//22845 +f 24227//22968 24225//22966 24224//22965 24226//22967 +f 24226//22967 24228//22969 24229//22970 24227//22968 +f 24104//22845 24106//22847 24228//22969 24226//22967 +f 24230//22971 24228//22969 24106//22847 24108//22849 +f 24231//22972 24229//22970 24228//22969 24230//22971 +f 24230//22971 24232//22973 24233//22974 24231//22972 +f 24108//22849 24110//22851 24232//22973 24230//22971 +f 24234//22975 24232//22973 24110//22851 24112//22853 +f 24235//22976 24233//22974 24232//22973 24234//22975 +f 24234//22975 24236//22977 24237//22978 24235//22976 +f 24112//22853 24114//22855 24236//22977 24234//22975 +f 24238//22979 24236//22977 24114//22855 24116//22857 +f 24239//22980 24237//22978 24236//22977 24238//22979 +f 24238//22979 24240//22981 24241//22982 24239//22980 +f 24116//22857 24118//22859 24240//22981 24238//22979 +f 24242//22983 24240//22981 24118//22859 24120//22861 +f 24243//22984 24241//22982 24240//22981 24242//22983 +f 24242//22983 24244//22985 24245//22986 24243//22984 +f 24120//22861 24122//22863 24244//22985 24242//22983 +f 24246//22987 24244//22985 24122//22863 24124//22865 +f 24247//22988 24245//22986 24244//22985 24246//22987 +f 24246//22987 24248//22989 24249//22990 24247//22988 +f 24124//22865 24126//22867 24248//22989 24246//22987 +f 24250//22991 24248//22989 24126//22867 24128//22869 +f 24251//22992 24249//22990 24248//22989 24250//22991 +f 24250//22991 24252//22993 24253//22994 24251//22992 +f 24128//22869 24130//22871 24252//22993 24250//22991 +f 24254//22995 24252//22993 24130//22871 24132//22873 +f 24255//22996 24253//22994 24252//22993 24254//22995 +f 24254//22995 24256//22997 24257//22998 24255//22996 +f 24132//22873 24134//22875 24256//22997 24254//22995 +f 24258//22999 24256//22997 24134//22875 24136//22877 +f 24259//23000 24257//22998 24256//22997 24258//22999 +f 24260//23001 24261//23002 22801//21539 22800//21538 +f 24181//22922 24180//22921 24261//23002 24260//23001 +f 24262//23003 24261//23002 24180//22921 24183//22924 +f 22803//21543 22801//21539 24261//23002 24262//23003 +f 24262//23003 24263//23004 22807//21548 22803//21543 +f 24183//22924 24185//22926 24263//23004 24262//23003 +f 24264//23005 24263//23004 24185//22926 24187//22928 +f 22809//21550 22807//21548 24263//23004 24264//23005 +f 24264//23005 24265//23006 22813//21554 22809//21550 +f 24187//22928 24189//22930 24265//23006 24264//23005 +f 24266//23007 24265//23006 24189//22930 24191//22932 +f 22815//21556 22813//21554 24265//23006 24266//23007 +f 24266//23007 24267//23008 22819//21560 22815//21556 +f 24191//22932 24193//22934 24267//23008 24266//23007 +f 24268//23009 24267//23008 24193//22934 24195//22936 +f 22821//21562 22819//21560 24267//23008 24268//23009 +f 24268//23009 24269//23010 22825//21566 22821//21562 +f 24195//22936 24197//22938 24269//23010 24268//23009 +f 24270//23011 24269//23010 24197//22938 24199//22940 +f 22827//21568 22825//21566 24269//23010 24270//23011 +f 24270//23011 24271//23012 22831//21572 22827//21568 +f 24199//22940 24201//22942 24271//23012 24270//23011 +f 24272//23013 24271//23012 24201//22942 24203//22944 +f 22833//21574 22831//21572 24271//23012 24272//23013 +f 24272//23013 24273//23014 22837//21578 22833//21574 +f 24203//22944 24205//22946 24273//23014 24272//23013 +f 24274//23015 24273//23014 24205//22946 24207//22948 +f 22839//21580 22837//21578 24273//23014 24274//23015 +f 24274//23015 24275//23016 22843//21584 22839//21580 +f 24207//22948 24209//22950 24275//23016 24274//23015 +f 24276//23017 24275//23016 24209//22950 24211//22952 +f 22845//21586 22843//21584 24275//23016 24276//23017 +f 24276//23017 24277//23018 22849//21590 22845//21586 +f 24211//22952 24213//22954 24277//23018 24276//23017 +f 24278//23019 24277//23018 24213//22954 24215//22956 +f 22851//21592 22849//21590 24277//23018 24278//23019 +f 24278//23019 24279//23020 22855//21596 22851//21592 +f 24215//22956 24217//22958 24279//23020 24278//23019 +f 24280//23021 24279//23020 24217//22958 24219//22960 +f 22857//21598 22855//21596 24279//23020 24280//23021 +f 24280//23021 24281//23022 22861//21602 22857//21598 +f 24219//22960 24221//22962 24281//23022 24280//23021 +f 24282//23023 24281//23022 24221//22962 24223//22964 +f 22863//21604 22861//21602 24281//23022 24282//23023 +f 24282//23023 24283//23024 22867//21608 22863//21604 +f 24223//22964 24225//22966 24283//23024 24282//23023 +f 24284//23025 24283//23024 24225//22966 24227//22968 +f 22869//21610 22867//21608 24283//23024 24284//23025 +f 24284//23025 24285//23026 22873//21614 22869//21610 +f 24227//22968 24229//22970 24285//23026 24284//23025 +f 24286//23027 24285//23026 24229//22970 24231//22972 +f 22875//21616 22873//21614 24285//23026 24286//23027 +f 24286//23027 24287//23028 22879//21620 22875//21616 +f 24231//22972 24233//22974 24287//23028 24286//23027 +f 24288//23029 24287//23028 24233//22974 24235//22976 +f 22881//21622 22879//21620 24287//23028 24288//23029 +f 24288//23029 24289//23030 22885//21626 22881//21622 +f 24235//22976 24237//22978 24289//23030 24288//23029 +f 24290//23031 24289//23030 24237//22978 24239//22980 +f 22887//21628 22885//21626 24289//23030 24290//23031 +f 24290//23031 24291//23032 22891//21632 22887//21628 +f 24239//22980 24241//22982 24291//23032 24290//23031 +f 24292//23033 24291//23032 24241//22982 24243//22984 +f 22893//21634 22891//21632 24291//23032 24292//23033 +f 24292//23033 24293//23034 22897//21638 22893//21634 +f 24243//22984 24245//22986 24293//23034 24292//23033 +f 24294//23035 24293//23034 24245//22986 24247//22988 +f 22899//21640 22897//21638 24293//23034 24294//23035 +f 24294//23035 24295//23036 22903//21644 22899//21640 +f 24247//22988 24249//22990 24295//23036 24294//23035 +f 24296//23037 24295//23036 24249//22990 24251//22992 +f 22905//21646 22903//21644 24295//23036 24296//23037 +f 24296//23037 24297//23038 22909//21650 22905//21646 +f 24251//22992 24253//22994 24297//23038 24296//23037 +f 24298//23039 24297//23038 24253//22994 24255//22996 +f 22911//21652 22909//21650 24297//23038 24298//23039 +f 24298//23039 24299//23040 22915//21656 22911//21652 +f 24255//22996 24257//22998 24299//23040 24298//23039 +f 24300//23041 24299//23040 24257//22998 24259//23000 +f 22917//21658 22915//21656 24299//23040 24300//23041 +f 22798//21545 24301//23042 24302//23043 22799//23044 +f 22804//21544 24303//23045 24301//23042 22798//21545 +f 24304//23046 24301//23042 24303//23045 24305//23047 +f 24306//23048 24302//23043 24301//23042 24304//23046 +f 22806//21547 24307//23049 24303//23045 22804//21544 +f 22810//21551 24308//23050 24307//23049 22806//21547 +f 24309//23051 24307//23049 24308//23050 24310//23052 +f 24305//23047 24303//23045 24307//23049 24309//23051 +f 22812//21553 24311//23053 24308//23050 22810//21551 +f 22816//21557 24312//23054 24311//23053 22812//21553 +f 24313//23055 24311//23053 24312//23054 24314//23056 +f 24310//23052 24308//23050 24311//23053 24313//23055 +f 22818//21559 24315//23057 24312//23054 22816//21557 +f 22822//21563 24316//23058 24315//23057 22818//21559 +f 24317//23059 24315//23057 24316//23058 24318//23060 +f 24314//23056 24312//23054 24315//23057 24317//23059 +f 22824//21565 24319//23061 24316//23058 22822//21563 +f 22828//21569 24320//23062 24319//23061 22824//21565 +f 24321//23063 24319//23061 24320//23062 24322//23064 +f 24318//23060 24316//23058 24319//23061 24321//23063 +f 22830//21571 24323//23065 24320//23062 22828//21569 +f 22834//21575 24324//23066 24323//23065 22830//21571 +f 24325//23067 24323//23065 24324//23066 24326//23068 +f 24322//23064 24320//23062 24323//23065 24325//23067 +f 22836//21577 24327//23069 24324//23066 22834//21575 +f 22840//21581 24328//23070 24327//23069 22836//21577 +f 24329//23071 24327//23069 24328//23070 24330//23072 +f 24326//23068 24324//23066 24327//23069 24329//23071 +f 22842//21583 24331//23073 24328//23070 22840//21581 +f 22846//21587 24332//23074 24331//23073 22842//21583 +f 24333//23075 24331//23073 24332//23074 24334//23076 +f 24330//23072 24328//23070 24331//23073 24333//23075 +f 22848//21589 24335//23077 24332//23074 22846//21587 +f 22852//21593 24336//23078 24335//23077 22848//21589 +f 24337//23079 24335//23077 24336//23078 24338//23080 +f 24334//23076 24332//23074 24335//23077 24337//23079 +f 22854//21595 24339//23081 24336//23078 22852//21593 +f 22858//21599 24340//23082 24339//23081 22854//21595 +f 24341//23083 24339//23081 24340//23082 24342//23084 +f 24338//23080 24336//23078 24339//23081 24341//23083 +f 22860//21601 24343//23085 24340//23082 22858//21599 +f 22864//21605 24344//23086 24343//23085 22860//21601 +f 24345//23087 24343//23085 24344//23086 24346//23088 +f 24342//23084 24340//23082 24343//23085 24345//23087 +f 22866//21607 24347//23089 24344//23086 22864//21605 +f 22870//21611 24348//23090 24347//23089 22866//21607 +f 24349//23091 24347//23089 24348//23090 24350//23092 +f 24346//23088 24344//23086 24347//23089 24349//23091 +f 22872//21613 24351//23093 24348//23090 22870//21611 +f 22876//21617 24352//23094 24351//23093 22872//21613 +f 24353//23095 24351//23093 24352//23094 24354//23096 +f 24350//23092 24348//23090 24351//23093 24353//23095 +f 22878//21619 24355//23097 24352//23094 22876//21617 +f 22882//21623 24356//23098 24355//23097 22878//21619 +f 24357//23099 24355//23097 24356//23098 24358//23100 +f 24354//23096 24352//23094 24355//23097 24357//23099 +f 22884//21625 24359//23101 24356//23098 22882//21623 +f 22888//21629 24360//23102 24359//23101 22884//21625 +f 24361//23103 24359//23101 24360//23102 24362//23104 +f 24358//23100 24356//23098 24359//23101 24361//23103 +f 22890//21631 24363//23105 24360//23102 22888//21629 +f 22894//21635 24364//23106 24363//23105 22890//21631 +f 24365//23107 24363//23105 24364//23106 24366//23108 +f 24362//23104 24360//23102 24363//23105 24365//23107 +f 22896//21637 24367//23109 24364//23106 22894//21635 +f 22900//21641 24368//23110 24367//23109 22896//21637 +f 24369//23111 24367//23109 24368//23110 24370//23112 +f 24366//23108 24364//23106 24367//23109 24369//23111 +f 22902//21643 24371//23113 24368//23110 22900//21641 +f 22906//21647 24372//23114 24371//23113 22902//21643 +f 24373//23115 24371//23113 24372//23114 24374//23116 +f 24370//23112 24368//23110 24371//23113 24373//23115 +f 22908//21649 24375//23117 24372//23114 22906//21647 +f 22912//21653 24376//23118 24375//23117 22908//21649 +f 24377//23119 24375//23117 24376//23118 24378//23120 +f 24374//23116 24372//23114 24375//23117 24377//23119 +f 22914//21655 24379//23121 24376//23118 22912//21653 +f 22918//21659 24380//23122 24379//23121 22914//21655 +f 24381//23123 24379//23121 24380//23122 24382//23124 +f 24378//23120 24376//23118 24379//23121 24381//23123 +f 24304//23046 24383//23125 24384//23126 24306//23048 +f 24305//23047 24385//23127 24383//23125 24304//23046 +f 24386//23128 24383//23125 24385//23127 24387//23129 +f 24388//23130 24384//23126 24383//23125 24386//23128 +f 24309//23051 24389//23131 24385//23127 24305//23047 +f 24310//23052 24390//23132 24389//23131 24309//23051 +f 24391//23133 24389//23131 24390//23132 24392//23134 +f 24387//23129 24385//23127 24389//23131 24391//23133 +f 24313//23055 24393//23135 24390//23132 24310//23052 +f 24314//23056 24394//23136 24393//23135 24313//23055 +f 24395//23137 24393//23135 24394//23136 24396//23138 +f 24392//23134 24390//23132 24393//23135 24395//23137 +f 24317//23059 24397//23139 24394//23136 24314//23056 +f 24318//23060 24398//23140 24397//23139 24317//23059 +f 24399//23141 24397//23139 24398//23140 24400//23142 +f 24396//23138 24394//23136 24397//23139 24399//23141 +f 24321//23063 24401//23143 24398//23140 24318//23060 +f 24322//23064 24402//23144 24401//23143 24321//23063 +f 24403//23145 24401//23143 24402//23144 24404//23146 +f 24400//23142 24398//23140 24401//23143 24403//23145 +f 24325//23067 24405//23147 24402//23144 24322//23064 +f 24326//23068 24406//23148 24405//23147 24325//23067 +f 24407//23149 24405//23147 24406//23148 24408//23150 +f 24404//23146 24402//23144 24405//23147 24407//23149 +f 24329//23071 24409//23151 24406//23148 24326//23068 +f 24330//23072 24410//23152 24409//23151 24329//23071 +f 24411//23153 24409//23151 24410//23152 24412//23154 +f 24408//23150 24406//23148 24409//23151 24411//23153 +f 24333//23075 24413//23155 24410//23152 24330//23072 +f 24334//23076 24414//23156 24413//23155 24333//23075 +f 24415//23157 24413//23155 24414//23156 24416//23158 +f 24412//23154 24410//23152 24413//23155 24415//23157 +f 24337//23079 24417//23159 24414//23156 24334//23076 +f 24338//23080 24418//23160 24417//23159 24337//23079 +f 24419//23161 24417//23159 24418//23160 24420//23162 +f 24416//23158 24414//23156 24417//23159 24419//23161 +f 24341//23083 24421//23163 24418//23160 24338//23080 +f 24342//23084 24422//23164 24421//23163 24341//23083 +f 24423//23165 24421//23163 24422//23164 24424//23166 +f 24420//23162 24418//23160 24421//23163 24423//23165 +f 24345//23087 24425//23167 24422//23164 24342//23084 +f 24346//23088 24426//23168 24425//23167 24345//23087 +f 24427//23169 24425//23167 24426//23168 24428//23170 +f 24424//23166 24422//23164 24425//23167 24427//23169 +f 24349//23091 24429//23171 24426//23168 24346//23088 +f 24350//23092 24430//23172 24429//23171 24349//23091 +f 24431//23173 24429//23171 24430//23172 24432//23174 +f 24428//23170 24426//23168 24429//23171 24431//23173 +f 24353//23095 24433//23175 24430//23172 24350//23092 +f 24354//23096 24434//23176 24433//23175 24353//23095 +f 24435//23177 24433//23175 24434//23176 24436//23178 +f 24432//23174 24430//23172 24433//23175 24435//23177 +f 24357//23099 24437//23179 24434//23176 24354//23096 +f 24358//23100 24438//23180 24437//23179 24357//23099 +f 24439//23181 24437//23179 24438//23180 24440//23182 +f 24436//23178 24434//23176 24437//23179 24439//23181 +f 24361//23103 24441//23183 24438//23180 24358//23100 +f 24362//23104 24442//23184 24441//23183 24361//23103 +f 24443//23185 24441//23183 24442//23184 24444//23186 +f 24440//23182 24438//23180 24441//23183 24443//23185 +f 24365//23107 24445//23187 24442//23184 24362//23104 +f 24366//23108 24446//23188 24445//23187 24365//23107 +f 24447//23189 24445//23187 24446//23188 24448//23190 +f 24444//23186 24442//23184 24445//23187 24447//23189 +f 24369//23111 24449//23191 24446//23188 24366//23108 +f 24370//23112 24450//23192 24449//23191 24369//23111 +f 24451//23193 24449//23191 24450//23192 24452//23194 +f 24448//23190 24446//23188 24449//23191 24451//23193 +f 24373//23115 24453//23195 24450//23192 24370//23112 +f 24374//23116 24454//23196 24453//23195 24373//23115 +f 24455//23197 24453//23195 24454//23196 24456//23198 +f 24452//23194 24450//23192 24453//23195 24455//23197 +f 24377//23119 24457//23199 24454//23196 24374//23116 +f 24378//23120 24458//23200 24457//23199 24377//23119 +f 24459//23201 24457//23199 24458//23200 24460//23202 +f 24456//23198 24454//23196 24457//23199 24459//23201 +f 24381//23123 24461//23203 24458//23200 24378//23120 +f 24382//23124 24462//23204 24461//23203 24381//23123 +f 24463//23205 24461//23203 24462//23204 24464//23206 +f 24460//23202 24458//23200 24461//23203 24463//23205 +f 24465//23207 24466//23208 24467//23209 24468//23210 +f 24466//23208 24469//23211 24470//23212 24467//23209 +f 24471//23213 24472//23214 24467//23209 24470//23212 +f 24472//23214 24473//23215 24468//23210 24467//23209 +f 24473//23215 24472//23214 24474//23216 24475//23217 +f 24472//23214 24471//23213 24476//23218 24474//23216 +f 24477//23219 24474//23216 24476//23218 23596//22337 +f 24477//23219 24478//23220 24475//23217 24474//23216 +f 24477//23219 24479//23221 24480//23222 24478//23220 +f 23596//22337 24481//23223 24479//23221 24477//23219 +f 24482//23224 24479//23221 24481//23223 24483//23225 +f 24484//23226 24480//23222 24479//23221 24482//23224 +f 24482//23224 24485//23227 24486//23228 24484//23226 +f 24483//23225 24487//23229 24485//23227 24482//23224 +f 24488//23230 24485//23227 24487//23229 23660//22401 +f 24489//23231 24486//23228 24485//23227 24488//23230 +f 24488//23230 24490//23232 24491//23233 24489//23231 +f 23660//22401 23659//22400 24490//23232 24488//23230 +f 24492//23234 24490//23232 23659//22400 23665//22406 +f 24493//23235 24491//23233 24490//23232 24492//23234 +f 24494//23236 24495//23237 24496//23238 24497//23239 +f 24495//23237 23677//22418 23679//22420 24496//23238 +f 23683//22424 24498//23240 24496//23238 23679//22420 +f 24498//23240 24499//23241 24497//23239 24496//23238 +f 23683//22424 23682//22423 24500//23242 24501//23243 +f 23682//22423 23681//22422 24502//23244 24500//23242 +f 23684//22425 24503//23245 24500//23242 24502//23244 +f 24503//23245 24504//23246 24501//23243 24500//23242 +f 24504//23246 24503//23245 24505//23247 24506//23248 +f 24503//23245 23684//22425 23687//22428 24505//23247 +f 23601//22342 23598//22339 24505//23247 23687//22428 +f 23598//22339 23597//22338 24506//23248 24505//23247 +f 23600//22341 24507//23249 24508//23250 23597//22338 +f 23549//22290 23547//22288 24507//23249 23600//22341 +f 24509//23251 24507//23249 23547//22288 23506//22247 +f 24510//23252 24508//23250 24507//23249 24509//23251 +f 24509//23251 24511//23253 24512//23254 24510//23252 +f 23506//22247 23505//22246 24511//23253 24509//23251 +f 24513//23255 24511//23253 23505//22246 23462//22203 +f 24514//23256 24512//23254 24511//23253 24513//23255 +f 24515//23257 24516//23258 24517//23259 24518//23260 +f 24514//23256 24519//23261 24516//23258 24515//23257 +f 24520//23262 24516//23258 24519//23261 24521//23263 +f 24522//23264 24517//23259 24516//23258 24520//23262 +f 24523//23265 24524//23266 24525//23267 24526//23268 +f 24524//23266 24527//23269 24528//23270 24525//23267 +f 24529//23271 24530//23272 24525//23267 24528//23270 +f 24530//23272 24531//23273 24526//23268 24525//23267 +f 24529//23271 24532//23274 24533//23275 24534//23276 +f 24532//23274 23285//22026 23283//22024 24533//23275 +f 23241//21982 24535//23277 24533//23275 23283//22024 +f 24535//23277 24536//23278 24534//23276 24533//23275 +f 24536//23278 24535//23277 24537//23279 24538//23280 +f 24535//23277 23241//21982 23239//21980 24537//23279 +f 23196//21937 23194//21935 24537//23279 23239//21980 +f 23194//21935 23193//21934 24538//23280 24537//23279 +f 23191//21932 24539//23281 24540//23282 23193//21934 +f 23127//21868 23125//21866 24539//23281 23191//21932 +f 24541//23283 24539//23281 23125//21866 23121//21862 +f 24542//23284 24540//23282 24539//23281 24541//23283 +f 24543//23285 24544//23286 24545//23287 24546//23288 +f 24544//23286 23084//21825 23083//21824 24545//23287 +f 23078//21819 23190//21931 24545//23287 23083//21824 +f 23190//21931 23189//21930 24546//23288 24545//23287 +f 23188//21929 24547//23289 24548//23290 23189//21930 +f 23185//21926 23238//21979 24547//23289 23188//21929 +f 24549//23291 24547//23289 23238//21979 23237//21978 +f 24550//23292 24548//23290 24547//23289 24549//23291 +f 24551//23293 24552//23294 24553//23295 24554//23296 +f 24555//23297 24556//23298 24552//23294 24551//23293 +f 24557//23299 24552//23294 24556//23298 24558//23300 +f 24559//23301 24553//23295 24552//23294 24557//23299 +f 24560//23302 24561//23303 24562//23304 24563//23305 +f 24561//23303 24554//23296 24553//23295 24562//23304 +f 24564//23306 24562//23304 24553//23295 24559//23301 +f 24564//23306 24565//23307 24563//23305 24562//23304 +f 24566//23308 24567//23309 24568//23310 24569//23311 +f 24567//23309 24570//23312 24571//23313 24568//23310 +f 24572//23314 24568//23310 24571//23313 24573//23315 +f 24572//23314 24574//23316 24569//23311 24568//23310 +f 24575//23317 24576//23318 24577//23319 24578//23320 +f 24523//23265 24579//23321 24576//23318 24575//23317 +f 24580//23322 24576//23318 24579//23321 24581//23323 +f 24582//23324 24577//23319 24576//23318 24580//23322 +f 24583//23325 24584//23326 24571//23313 24570//23312 +f 24585//23327 24586//23328 24584//23326 24583//23325 +f 24587//23329 24584//23326 24586//23328 24588//23330 +f 24573//23315 24571//23313 24584//23326 24587//23329 +f 24522//23264 24589//23331 24590//23332 24591//23333 +f 24578//23320 24577//23319 24590//23332 24589//23331 +f 24592//23334 24590//23332 24577//23319 24582//23324 +f 24593//23335 24591//23333 24590//23332 24592//23334 +f 24493//23235 24594//23336 24595//23337 24596//23338 +f 24594//23336 24597//23339 24598//23340 24595//23337 +f 24599//23341 24595//23337 24598//23340 24600//23342 +f 24601//23343 24596//23338 24595//23337 24599//23341 +f 24602//23344 24603//23345 24598//23340 24597//23339 +f 24494//23236 24604//23346 24603//23345 24602//23344 +f 24605//23347 24603//23345 24604//23346 24606//23348 +f 24600//23342 24598//23340 24603//23345 24605//23347 +f 24607//23349 24608//23350 24586//23328 24585//23327 +f 24465//23207 24609//23351 24608//23350 24607//23349 +f 24610//23352 24608//23350 24609//23351 24611//23353 +f 24588//23330 24586//23328 24608//23350 24610//23352 +f 24468//23210 24612//23354 24609//23351 24465//23207 +f 24473//23215 24613//23355 24612//23354 24468//23210 +f 24614//23356 24612//23354 24613//23355 24615//23357 +f 24611//23353 24609//23351 24612//23354 24614//23356 +f 24475//23217 24616//23358 24613//23355 24473//23215 +f 24478//23220 24617//23359 24616//23358 24475//23217 +f 24618//23360 24616//23358 24617//23359 24619//23361 +f 24615//23357 24613//23355 24616//23358 24618//23360 +f 24478//23220 24480//23222 24620//23362 24617//23359 +f 24480//23222 24484//23226 24621//23363 24620//23362 +f 24622//23364 24623//23365 24620//23362 24621//23363 +f 24623//23365 24619//23361 24617//23359 24620//23362 +f 24484//23226 24486//23228 24624//23366 24621//23363 +f 24486//23228 24489//23231 24625//23367 24624//23366 +f 24626//23368 24627//23369 24624//23366 24625//23367 +f 24627//23369 24622//23364 24621//23363 24624//23366 +f 24489//23231 24491//23233 24628//23370 24625//23367 +f 24491//23233 24493//23235 24596//23338 24628//23370 +f 24629//23371 24628//23370 24596//23338 24601//23343 +f 24629//23371 24626//23368 24625//23367 24628//23370 +f 24497//23239 24630//23372 24604//23346 24494//23236 +f 24499//23241 24631//23373 24630//23372 24497//23239 +f 24632//23374 24630//23372 24631//23373 24633//23375 +f 24606//23348 24604//23346 24630//23372 24632//23374 +f 24634//23376 24635//23377 24631//23373 24499//23241 +f 24636//23378 24637//23379 24635//23377 24634//23376 +f 24638//23380 24635//23377 24637//23379 24639//23381 +f 24633//23375 24631//23373 24635//23377 24638//23380 +f 24640//23382 24641//23383 24637//23379 24636//23378 +f 24642//23384 24643//23385 24641//23383 24640//23382 +f 24644//23386 24641//23383 24643//23385 24645//23387 +f 24639//23381 24637//23379 24641//23383 24644//23386 +f 24646//23388 24647//23389 24643//23385 24642//23384 +f 24646//23388 24648//23390 24649//23391 24647//23389 +f 24650//23392 24647//23389 24649//23391 24651//23393 +f 24645//23387 24643//23385 24647//23389 24650//23392 +f 24648//23390 24652//23394 24653//23395 24649//23391 +f 24652//23394 24518//23260 24654//23396 24653//23395 +f 24655//23397 24653//23395 24654//23396 24656//23398 +f 24651//23393 24649//23391 24653//23395 24655//23397 +f 24518//23260 24517//23259 24657//23399 24654//23396 +f 24517//23259 24522//23264 24591//23333 24657//23399 +f 24658//23400 24657//23399 24591//23333 24593//23335 +f 24656//23398 24654//23396 24657//23399 24658//23400 +f 24526//23268 24659//23401 24579//23321 24523//23265 +f 24531//23273 24660//23402 24659//23401 24526//23268 +f 24661//23403 24659//23401 24660//23402 24662//23404 +f 24581//23323 24579//23321 24659//23401 24661//23403 +f 24663//23405 24664//23406 24660//23402 24531//23273 +f 24665//23407 24666//23408 24664//23406 24663//23405 +f 24667//23409 24664//23406 24666//23408 24668//23410 +f 24662//23404 24660//23402 24664//23406 24667//23409 +f 24669//23411 24670//23412 24666//23408 24665//23407 +f 24671//23413 24672//23414 24670//23412 24669//23411 +f 24673//23415 24670//23412 24672//23414 24674//23416 +f 24668//23410 24666//23408 24670//23412 24673//23415 +f 24671//23413 24675//23417 24676//23418 24672//23414 +f 24675//23417 24677//23419 24678//23420 24676//23418 +f 24679//23421 24680//23422 24676//23418 24678//23420 +f 24680//23422 24674//23416 24672//23414 24676//23418 +f 24677//23419 24681//23423 24682//23424 24678//23420 +f 24681//23423 24683//23425 24684//23426 24682//23424 +f 24685//23427 24686//23428 24682//23424 24684//23426 +f 24686//23428 24679//23421 24678//23420 24682//23424 +f 24683//23425 24687//23429 24688//23430 24684//23426 +f 24687//23429 24560//23302 24563//23305 24688//23430 +f 24565//23307 24689//23431 24688//23430 24563//23305 +f 24689//23431 24685//23427 24684//23426 24688//23430 +f 24690//23432 24691//23433 24556//23298 24555//23297 +f 24692//23434 24693//23435 24691//23433 24690//23432 +f 24694//23436 24691//23433 24693//23435 24695//23437 +f 24558//23300 24556//23298 24691//23433 24694//23436 +f 24696//23438 24697//23439 24693//23435 24692//23434 +f 24698//23440 24699//23441 24697//23439 24696//23438 +f 24700//23442 24697//23439 24699//23441 24701//23443 +f 24695//23437 24693//23435 24697//23439 24700//23442 +f 24702//23444 24703//23445 24699//23441 24698//23440 +f 24704//23446 24705//23447 24703//23445 24702//23444 +f 24706//23448 24703//23445 24705//23447 24707//23449 +f 24701//23443 24699//23441 24703//23445 24706//23448 +f 24704//23446 24708//23450 24709//23451 24705//23447 +f 24708//23450 24710//23452 24711//23453 24709//23451 +f 24712//23454 24713//23455 24709//23451 24711//23453 +f 24713//23455 24707//23449 24705//23447 24709//23451 +f 24710//23452 24714//23456 24715//23457 24711//23453 +f 24714//23456 24716//23458 24717//23459 24715//23457 +f 24718//23460 24719//23461 24715//23457 24717//23459 +f 24719//23461 24712//23454 24711//23453 24715//23457 +f 24716//23458 24720//23462 24721//23463 24717//23459 +f 24720//23462 24566//23308 24569//23311 24721//23463 +f 24574//23316 24722//23464 24721//23463 24569//23311 +f 24722//23464 24718//23460 24717//23459 24721//23463 +f 24723//23465 24724//23466 24557//23299 24558//23300 +f 24725//23467 24726//23468 24724//23466 24723//23465 +f 24727//23469 24724//23466 24726//23468 24728//23470 +f 24559//23301 24557//23299 24724//23466 24727//23469 +f 24727//23469 24729//23471 24564//23306 24559//23301 +f 24728//23470 24730//23472 24729//23471 24727//23469 +f 24731//23473 24729//23471 24730//23472 24732//23474 +f 24565//23307 24564//23306 24729//23471 24731//23473 +f 24733//23475 24734//23476 24572//23314 24573//23315 +f 24735//23477 24736//23478 24734//23476 24733//23475 +f 24737//23479 24734//23476 24736//23478 24738//23480 +f 24574//23316 24572//23314 24734//23476 24737//23479 +f 24739//23481 24740//23482 24580//23322 24581//23323 +f 24741//23483 24742//23484 24740//23482 24739//23481 +f 24743//23485 24740//23482 24742//23484 24744//23486 +f 24582//23324 24580//23322 24740//23482 24743//23485 +f 24745//23487 24746//23488 24587//23329 24588//23330 +f 24747//23489 24748//23490 24746//23488 24745//23487 +f 24733//23475 24746//23488 24748//23490 24735//23477 +f 24573//23315 24587//23329 24746//23488 24733//23475 +f 24582//23324 24743//23485 24749//23491 24592//23334 +f 24743//23485 24744//23486 24750//23492 24749//23491 +f 24751//23493 24752//23494 24749//23491 24750//23492 +f 24752//23494 24593//23335 24592//23334 24749//23491 +f 24753//23495 24754//23496 24599//23341 24600//23342 +f 24755//23497 24756//23498 24754//23496 24753//23495 +f 24757//23499 24754//23496 24756//23498 24758//23500 +f 24601//23343 24599//23341 24754//23496 24757//23499 +f 24759//23501 24760//23502 24605//23347 24606//23348 +f 24761//23503 24762//23504 24760//23502 24759//23501 +f 24753//23495 24760//23502 24762//23504 24755//23497 +f 24600//23342 24605//23347 24760//23502 24753//23495 +f 24763//23505 24764//23506 24610//23352 24611//23353 +f 24765//23507 24766//23508 24764//23506 24763//23505 +f 24745//23487 24764//23506 24766//23508 24747//23489 +f 24588//23330 24610//23352 24764//23506 24745//23487 +f 24767//23509 24768//23510 24614//23356 24615//23357 +f 24769//23511 24770//23512 24768//23510 24767//23509 +f 24763//23505 24768//23510 24770//23512 24765//23507 +f 24611//23353 24614//23356 24768//23510 24763//23505 +f 24771//23513 24772//23514 24618//23360 24619//23361 +f 24773//23515 24774//23516 24772//23514 24771//23513 +f 24767//23509 24772//23514 24774//23516 24769//23511 +f 24615//23357 24618//23360 24772//23514 24767//23509 +f 24775//23517 24776//23518 24623//23365 24622//23364 +f 24777//23519 24778//23520 24776//23518 24775//23517 +f 24771//23513 24776//23518 24778//23520 24773//23515 +f 24619//23361 24623//23365 24776//23518 24771//23513 +f 24779//23521 24780//23522 24627//23369 24626//23368 +f 24781//23523 24782//23524 24780//23522 24779//23521 +f 24775//23517 24780//23522 24782//23524 24777//23519 +f 24622//23364 24627//23369 24780//23522 24775//23517 +f 24757//23499 24783//23525 24629//23371 24601//23343 +f 24758//23500 24784//23526 24783//23525 24757//23499 +f 24779//23521 24783//23525 24784//23526 24781//23523 +f 24626//23368 24629//23371 24783//23525 24779//23521 +f 24633//23375 24785//23527 24786//23528 24632//23374 +f 24787//23529 24788//23530 24786//23528 24785//23527 +f 24759//23501 24786//23528 24788//23530 24761//23503 +f 24606//23348 24632//23374 24786//23528 24759//23501 +f 24639//23381 24789//23531 24790//23532 24638//23380 +f 24791//23533 24792//23534 24790//23532 24789//23531 +f 24785//23527 24790//23532 24792//23534 24787//23529 +f 24785//23527 24633//23375 24638//23380 24790//23532 +f 24645//23387 24793//23535 24794//23536 24644//23386 +f 24795//23537 24796//23538 24794//23536 24793//23535 +f 24789//23531 24794//23536 24796//23538 24791//23533 +f 24789//23531 24639//23381 24644//23386 24794//23536 +f 24651//23393 24797//23539 24798//23540 24650//23392 +f 24797//23539 24799//23541 24800//23542 24798//23540 +f 24793//23535 24798//23540 24800//23542 24795//23537 +f 24645//23387 24650//23392 24798//23540 24793//23535 +f 24801//23543 24802//23544 24655//23397 24656//23398 +f 24803//23545 24804//23546 24802//23544 24801//23543 +f 24799//23541 24797//23539 24802//23544 24804//23546 +f 24797//23539 24651//23393 24655//23397 24802//23544 +f 24752//23494 24805//23547 24658//23400 24593//23335 +f 24751//23493 24806//23548 24805//23547 24752//23494 +f 24801//23543 24805//23547 24806//23548 24803//23545 +f 24656//23398 24658//23400 24805//23547 24801//23543 +f 24662//23404 24807//23549 24808//23550 24661//23403 +f 24809//23551 24810//23552 24808//23550 24807//23549 +f 24739//23481 24808//23550 24810//23552 24741//23483 +f 24739//23481 24581//23323 24661//23403 24808//23550 +f 24811//23553 24812//23554 24667//23409 24668//23410 +f 24813//23555 24814//23556 24812//23554 24811//23553 +f 24807//23549 24812//23554 24814//23556 24809//23551 +f 24807//23549 24662//23404 24667//23409 24812//23554 +f 24674//23416 24815//23557 24816//23558 24673//23415 +f 24817//23559 24818//23560 24816//23558 24815//23557 +f 24811//23553 24816//23558 24818//23560 24813//23555 +f 24668//23410 24673//23415 24816//23558 24811//23553 +f 24819//23561 24820//23562 24680//23422 24679//23421 +f 24821//23563 24822//23564 24820//23562 24819//23561 +f 24815//23557 24820//23562 24822//23564 24817//23559 +f 24674//23416 24680//23422 24820//23562 24815//23557 +f 24823//23565 24824//23566 24686//23428 24685//23427 +f 24825//23567 24826//23568 24824//23566 24823//23565 +f 24821//23563 24819//23561 24824//23566 24826//23568 +f 24679//23421 24686//23428 24824//23566 24819//23561 +f 24731//23473 24827//23569 24689//23431 24565//23307 +f 24732//23474 24828//23570 24827//23569 24731//23473 +f 24823//23565 24827//23569 24828//23570 24825//23567 +f 24685//23427 24689//23431 24827//23569 24823//23565 +f 24829//23571 24830//23572 24694//23436 24695//23437 +f 24831//23573 24832//23574 24830//23572 24829//23571 +f 24723//23465 24830//23572 24832//23574 24725//23467 +f 24558//23300 24694//23436 24830//23572 24723//23465 +f 24833//23575 24834//23576 24700//23442 24701//23443 +f 24835//23577 24836//23578 24834//23576 24833//23575 +f 24829//23571 24834//23576 24836//23578 24831//23573 +f 24695//23437 24700//23442 24834//23576 24829//23571 +f 24837//23579 24838//23580 24706//23448 24707//23449 +f 24839//23581 24840//23582 24838//23580 24837//23579 +f 24833//23575 24838//23580 24840//23582 24835//23577 +f 24701//23443 24706//23448 24838//23580 24833//23575 +f 24841//23583 24842//23584 24713//23455 24712//23454 +f 24843//23585 24844//23586 24842//23584 24841//23583 +f 24837//23579 24842//23584 24844//23586 24839//23581 +f 24707//23449 24713//23455 24842//23584 24837//23579 +f 24845//23587 24846//23588 24719//23461 24718//23460 +f 24847//23589 24848//23590 24846//23588 24845//23587 +f 24841//23583 24846//23588 24848//23590 24843//23585 +f 24712//23454 24719//23461 24846//23588 24841//23583 +f 24737//23479 24849//23591 24722//23464 24574//23316 +f 24738//23480 24850//23592 24849//23591 24737//23479 +f 24845//23587 24849//23591 24850//23592 24847//23589 +f 24718//23460 24722//23464 24849//23591 24845//23587 +f 24851//23593 24852//23594 24726//23468 24725//23467 +f 24853//23595 24854//23596 24852//23594 24851//23593 +f 24855//23597 24852//23594 24854//23596 24856//23598 +f 24728//23470 24726//23468 24852//23594 24855//23597 +f 24855//23597 24857//23599 24730//23472 24728//23470 +f 24856//23598 24858//23600 24857//23599 24855//23597 +f 24859//23601 24860//23602 24857//23599 24858//23600 +f 24732//23474 24730//23472 24857//23599 24860//23602 +f 24861//23603 24862//23604 24736//23478 24735//23477 +f 24863//23605 24864//23606 24862//23604 24861//23603 +f 24865//23607 24862//23604 24864//23606 24866//23608 +f 24738//23480 24736//23478 24862//23604 24865//23607 +f 24867//23609 24868//23610 24742//23484 24741//23483 +f 24869//23611 24870//23612 24868//23610 24867//23609 +f 24871//23613 24868//23610 24870//23612 24872//23614 +f 24744//23486 24742//23484 24868//23610 24871//23613 +f 24873//23615 24874//23616 24748//23490 24747//23489 +f 24875//23617 24876//23618 24874//23616 24873//23615 +f 24861//23603 24874//23616 24876//23618 24863//23605 +f 24735//23477 24748//23490 24874//23616 24861//23603 +f 24871//23613 24877//23619 24750//23492 24744//23486 +f 24872//23614 24878//23620 24877//23619 24871//23613 +f 24879//23621 24877//23619 24878//23620 24880//23622 +f 24751//23493 24750//23492 24877//23619 24879//23621 +f 24881//23623 24882//23624 24756//23498 24755//23497 +f 24883//23625 24884//23626 24882//23624 24881//23623 +f 24885//23627 24882//23624 24884//23626 24886//23628 +f 24758//23500 24756//23498 24882//23624 24885//23627 +f 24887//23629 24888//23630 24762//23504 24761//23503 +f 24889//23631 24890//23632 24888//23630 24887//23629 +f 24881//23623 24888//23630 24890//23632 24883//23625 +f 24755//23497 24762//23504 24888//23630 24881//23623 +f 24891//23633 24892//23634 24766//23508 24765//23507 +f 24893//23635 24894//23636 24892//23634 24891//23633 +f 24873//23615 24892//23634 24894//23636 24875//23617 +f 24747//23489 24766//23508 24892//23634 24873//23615 +f 24895//23637 24896//23638 24770//23512 24769//23511 +f 24897//23639 24898//23640 24896//23638 24895//23637 +f 24891//23633 24896//23638 24898//23640 24893//23635 +f 24765//23507 24770//23512 24896//23638 24891//23633 +f 24899//23641 24900//23642 24774//23516 24773//23515 +f 24901//23643 24902//23644 24900//23642 24899//23641 +f 24895//23637 24900//23642 24902//23644 24897//23639 +f 24769//23511 24774//23516 24900//23642 24895//23637 +f 24777//23519 24903//23645 24904//23646 24778//23520 +f 24903//23645 24905//23647 24906//23648 24904//23646 +f 24899//23641 24904//23646 24906//23648 24901//23643 +f 24773//23515 24778//23520 24904//23646 24899//23641 +f 24781//23523 24907//23649 24908//23650 24782//23524 +f 24907//23649 24909//23651 24910//23652 24908//23650 +f 24905//23647 24903//23645 24908//23650 24910//23652 +f 24903//23645 24777//23519 24782//23524 24908//23650 +f 24885//23627 24911//23653 24784//23526 24758//23500 +f 24886//23628 24912//23654 24911//23653 24885//23627 +f 24909//23651 24907//23649 24911//23653 24912//23654 +f 24781//23523 24784//23526 24911//23653 24907//23649 +f 24913//23655 24914//23656 24788//23530 24787//23529 +f 24915//23657 24916//23658 24914//23656 24913//23655 +f 24887//23629 24914//23656 24916//23658 24889//23631 +f 24761//23503 24788//23530 24914//23656 24887//23629 +f 24917//23659 24918//23660 24792//23534 24791//23533 +f 24919//23661 24920//23662 24918//23660 24917//23659 +f 24913//23655 24918//23660 24920//23662 24915//23657 +f 24787//23529 24792//23534 24918//23660 24913//23655 +f 24921//23663 24922//23664 24796//23538 24795//23537 +f 24923//23665 24924//23666 24922//23664 24921//23663 +f 24917//23659 24922//23664 24924//23666 24919//23661 +f 24791//23533 24796//23538 24922//23664 24917//23659 +f 24799//23541 24925//23667 24926//23668 24800//23542 +f 24925//23667 24927//23669 24928//23670 24926//23668 +f 24921//23663 24926//23668 24928//23670 24923//23665 +f 24795//23537 24800//23542 24926//23668 24921//23663 +f 24803//23545 24929//23671 24930//23672 24804//23546 +f 24929//23671 24931//23673 24932//23674 24930//23672 +f 24927//23669 24925//23667 24930//23672 24932//23674 +f 24925//23667 24799//23541 24804//23546 24930//23672 +f 24879//23621 24933//23675 24806//23548 24751//23493 +f 24880//23622 24934//23676 24933//23675 24879//23621 +f 24929//23671 24933//23675 24934//23676 24931//23673 +f 24803//23545 24806//23548 24933//23675 24929//23671 +f 24935//23677 24936//23678 24810//23552 24809//23551 +f 24937//23679 24938//23680 24936//23678 24935//23677 +f 24867//23609 24936//23678 24938//23680 24869//23611 +f 24741//23483 24810//23552 24936//23678 24867//23609 +f 24939//23681 24940//23682 24814//23556 24813//23555 +f 24941//23683 24942//23684 24940//23682 24939//23681 +f 24935//23677 24940//23682 24942//23684 24937//23679 +f 24809//23551 24814//23556 24940//23682 24935//23677 +f 24943//23685 24944//23686 24818//23560 24817//23559 +f 24945//23687 24946//23688 24944//23686 24943//23685 +f 24939//23681 24944//23686 24946//23688 24941//23683 +f 24813//23555 24818//23560 24944//23686 24939//23681 +f 24821//23563 24947//23689 24948//23690 24822//23564 +f 24947//23689 24949//23691 24950//23692 24948//23690 +f 24945//23687 24943//23685 24948//23690 24950//23692 +f 24817//23559 24822//23564 24948//23690 24943//23685 +f 24825//23567 24951//23693 24952//23694 24826//23568 +f 24951//23693 24953//23695 24954//23696 24952//23694 +f 24949//23691 24947//23689 24952//23694 24954//23696 +f 24947//23689 24821//23563 24826//23568 24952//23694 +f 24860//23602 24955//23697 24828//23570 24732//23474 +f 24860//23602 24859//23601 24956//23698 24955//23697 +f 24953//23695 24951//23693 24955//23697 24956//23698 +f 24951//23693 24825//23567 24828//23570 24955//23697 +f 24957//23699 24958//23700 24832//23574 24831//23573 +f 24959//23701 24960//23702 24958//23700 24957//23699 +f 24851//23593 24958//23700 24960//23702 24853//23595 +f 24725//23467 24832//23574 24958//23700 24851//23593 +f 24961//23703 24962//23704 24836//23578 24835//23577 +f 24963//23705 24964//23706 24962//23704 24961//23703 +f 24957//23699 24962//23704 24964//23706 24959//23701 +f 24831//23573 24836//23578 24962//23704 24957//23699 +f 24965//23707 24966//23708 24840//23582 24839//23581 +f 24967//23709 24968//23710 24966//23708 24965//23707 +f 24961//23703 24966//23708 24968//23710 24963//23705 +f 24835//23577 24840//23582 24966//23708 24961//23703 +f 24969//23711 24970//23712 24844//23586 24843//23585 +f 24969//23711 24971//23713 24972//23714 24970//23712 +f 24965//23707 24970//23712 24972//23714 24967//23709 +f 24839//23581 24844//23586 24970//23712 24965//23707 +f 24973//23715 24974//23716 24848//23590 24847//23589 +f 24973//23715 24975//23717 24976//23718 24974//23716 +f 24971//23713 24969//23711 24974//23716 24976//23718 +f 24843//23585 24848//23590 24974//23716 24969//23711 +f 24865//23607 24977//23719 24850//23592 24738//23480 +f 24866//23608 24978//23720 24977//23719 24865//23607 +f 24975//23717 24973//23715 24977//23719 24978//23720 +f 24847//23589 24850//23592 24977//23719 24973//23715 +f 24979//23721 24980//23722 24981//23723 24982//23724 +f 23896//22637 23894//22635 24980//23722 24979//23721 +f 24983//23725 24980//23722 23894//22635 23893//22634 +f 24984//23726 24981//23723 24980//23722 24983//23725 +f 24985//23727 24986//23728 24979//23721 24982//23724 +f 23903//22644 23902//22643 24986//23728 24985//23727 +f 23898//22639 24986//23728 23902//22643 23899//22640 +f 23896//22637 24979//23721 24986//23728 23898//22639 +f 24987//23729 24988//23730 24989//23731 24990//23732 +f 24988//23730 23907//22648 23906//22647 24989//23731 +f 23903//22644 24985//23727 24989//23731 23906//22647 +f 24985//23727 24982//23724 24990//23732 24989//23731 +f 24991//23733 24992//23734 24993//23735 24994//23736 +f 23912//22653 23910//22651 24992//23734 24991//23733 +f 24988//23730 24992//23734 23910//22651 23907//22648 +f 24987//23729 24993//23735 24992//23734 24988//23730 +f 24995//23737 24996//23738 24991//23733 24994//23736 +f 23919//22660 23918//22659 24996//23738 24995//23737 +f 23914//22655 24996//23738 23918//22659 23915//22656 +f 23912//22653 24991//23733 24996//23738 23914//22655 +f 24997//23739 24998//23740 24999//23741 25000//23742 +f 24998//23740 23923//22664 23922//22663 24999//23741 +f 23919//22660 24995//23737 24999//23741 23922//22663 +f 24995//23737 24994//23736 25000//23742 24999//23741 +f 25001//23743 25002//23744 25003//23745 25004//23746 +f 23928//22669 23926//22667 25002//23744 25001//23743 +f 24998//23740 25002//23744 23926//22667 23923//22664 +f 24997//23739 25003//23745 25002//23744 24998//23740 +f 25005//23747 25006//23748 25001//23743 25004//23746 +f 23935//22676 23934//22675 25006//23748 25005//23747 +f 23930//22671 25006//23748 23934//22675 23931//22672 +f 23928//22669 25001//23743 25006//23748 23930//22671 +f 25007//23749 25008//23750 25009//23751 25010//23752 +f 25008//23750 23939//22680 23938//22679 25009//23751 +f 23935//22676 25005//23747 25009//23751 23938//22679 +f 25005//23747 25004//23746 25010//23752 25009//23751 +f 25011//23753 25012//23754 25013//23755 25014//23756 +f 23944//22685 23942//22683 25012//23754 25011//23753 +f 25008//23750 25012//23754 23942//22683 23939//22680 +f 25007//23749 25013//23755 25012//23754 25008//23750 +f 25015//23757 25016//23758 25011//23753 25014//23756 +f 23951//22692 23950//22691 25016//23758 25015//23757 +f 23946//22687 25016//23758 23950//22691 23947//22688 +f 23944//22685 25011//23753 25016//23758 23946//22687 +f 25017//23759 25018//23760 25019//23761 25020//23762 +f 25018//23760 23955//22696 23954//22695 25019//23761 +f 23951//22692 25015//23757 25019//23761 23954//22695 +f 25015//23757 25014//23756 25020//23762 25019//23761 +f 25021//23763 25022//23764 25023//23765 25024//23766 +f 23960//22701 23958//22699 25022//23764 25021//23763 +f 25018//23760 25022//23764 23958//22699 23955//22696 +f 25017//23759 25023//23765 25022//23764 25018//23760 +f 25025//23767 25026//23768 25021//23763 25024//23766 +f 23967//22708 23966//22707 25026//23768 25025//23767 +f 23962//22703 25026//23768 23966//22707 23963//22704 +f 23960//22701 25021//23763 25026//23768 23962//22703 +f 25027//23769 25028//23770 25029//23771 25030//23772 +f 25028//23770 23971//22712 23970//22711 25029//23771 +f 23967//22708 25025//23767 25029//23771 23970//22711 +f 25025//23767 25024//23766 25030//23772 25029//23771 +f 25023//23765 25031//23773 25032//23774 25024//23766 +f 25017//23759 25033//23775 25031//23773 25023//23765 +f 25034//23776 25031//23773 25033//23775 25035//23777 +f 25036//23778 25032//23774 25031//23773 25034//23776 +f 25037//23779 25038//23780 25039//23781 25040//23782 +f 25041//23783 25042//23784 25038//23780 25037//23779 +f 25043//23785 25044//23786 25038//23780 25042//23784 +f 25044//23786 25045//23787 25039//23781 25038//23780 +f 25045//23787 25044//23786 25046//23788 25047//23789 +f 25043//23785 25048//23790 25046//23788 25044//23786 +f 25049//23791 25046//23788 25048//23790 25050//23792 +f 25051//23793 25047//23789 25046//23788 25049//23791 +f 25052//23794 25053//23795 25054//23796 25055//23797 +f 25053//23795 25056//23798 25057//23799 25054//23796 +f 25058//23800 25059//23801 25054//23796 25057//23799 +f 25059//23801 25060//23802 25055//23797 25054//23796 +f 25053//23795 25061//23803 25062//23804 25056//23798 +f 25052//23794 25063//23805 25061//23803 25053//23795 +f 25064//23806 25061//23803 25063//23805 25065//23807 +f 25066//23808 25062//23804 25061//23803 25064//23806 +f 25064//23806 25067//23809 25068//23810 25066//23808 +f 25065//23807 25069//23811 25067//23809 25064//23806 +f 25070//23812 25067//23809 25069//23811 25071//23813 +f 25072//23814 25068//23810 25067//23809 25070//23812 +f 25073//23815 25074//23816 25059//23801 25058//23800 +f 25073//23815 25007//23749 25010//23752 25074//23816 +f 25075//23817 25074//23816 25010//23752 25004//23746 +f 25075//23817 25060//23802 25059//23801 25074//23816 +f 25076//23818 25077//23819 25078//23820 25079//23821 +f 24997//23739 25000//23742 25078//23820 25077//23819 +f 25080//23822 25078//23820 25000//23742 24994//23736 +f 25081//23823 25079//23821 25078//23820 25080//23822 +f 25003//23745 25082//23824 25075//23817 25004//23746 +f 25003//23745 24997//23739 25077//23819 25082//23824 +f 25083//23825 25082//23824 25077//23819 25076//23818 +f 25060//23802 25075//23817 25082//23824 25083//23825 +f 25083//23825 25084//23826 25055//23797 25060//23802 +f 25076//23818 25085//23827 25084//23826 25083//23825 +f 25086//23828 25084//23826 25085//23827 25040//23782 +f 25052//23794 25055//23797 25084//23826 25086//23828 +f 25086//23828 25087//23829 25063//23805 25052//23794 +f 25040//23782 25039//23781 25087//23829 25086//23828 +f 25045//23787 25088//23830 25087//23829 25039//23781 +f 25088//23830 25065//23807 25063//23805 25087//23829 +f 25088//23830 25089//23831 25069//23811 25065//23807 +f 25088//23830 25045//23787 25047//23789 25089//23831 +f 25090//23832 25089//23831 25047//23789 25051//23793 +f 25071//23813 25069//23811 25089//23831 25090//23832 +f 24994//23736 24993//23735 25091//23833 25080//23822 +f 24993//23735 24987//23729 25092//23834 25091//23833 +f 25041//23783 25093//23835 25091//23833 25092//23834 +f 25093//23835 25081//23823 25080//23822 25091//23833 +f 25035//23777 25094//23836 25095//23837 25034//23776 +f 25094//23836 25056//23798 25062//23804 25095//23837 +f 25096//23838 25095//23837 25062//23804 25066//23808 +f 25036//23778 25034//23776 25095//23837 25096//23838 +f 25036//23778 25096//23838 25097//23839 25098//23840 +f 25096//23838 25066//23808 25068//23810 25097//23839 +f 25072//23814 25099//23841 25097//23839 25068//23810 +f 25099//23841 25100//23842 25098//23840 25097//23839 +f 25037//23779 25101//23843 25093//23835 25041//23783 +f 25040//23782 25085//23827 25101//23843 25037//23779 +f 25079//23821 25101//23843 25085//23827 25076//23818 +f 25081//23823 25093//23835 25101//23843 25079//23821 +f 25102//23844 25103//23845 25104//23846 25105//23847 +f 25103//23845 25058//23800 25057//23799 25104//23846 +f 25056//23798 25094//23836 25104//23846 25057//23799 +f 25094//23836 25035//23777 25105//23847 25104//23846 +f 25013//23755 25106//23848 25107//23849 25014//23756 +f 25013//23755 25007//23749 25073//23815 25106//23848 +f 25058//23800 25103//23845 25106//23848 25073//23815 +f 25102//23844 25107//23849 25106//23848 25103//23845 +f 25092//23834 25108//23850 25042//23784 25041//23783 +f 24987//23729 24990//23732 25108//23850 25092//23834 +f 25109//23851 25108//23850 24990//23732 24982//23724 +f 25109//23851 25043//23785 25042//23784 25108//23850 +f 25109//23851 25110//23852 25048//23790 25043//23785 +f 25109//23851 24982//23724 24981//23723 25110//23852 +f 25111//23853 25110//23852 24981//23723 24984//23726 +f 25050//23792 25048//23790 25110//23852 25111//23853 +f 25100//23842 25112//23854 25113//23855 25098//23840 +f 25112//23854 25027//23769 25030//23772 25113//23855 +f 25032//23774 25113//23855 25030//23772 25024//23766 +f 25032//23774 25036//23778 25098//23840 25113//23855 +f 25035//23777 25033//23775 25114//23856 25105//23847 +f 25033//23775 25017//23759 25020//23762 25114//23856 +f 25107//23849 25114//23856 25020//23762 25014//23756 +f 25107//23849 25102//23844 25105//23847 25114//23856 +f 24469//23211 24466//23208 25115//23857 25116//23858 +f 24466//23208 24465//23207 24607//23349 25115//23857 +f 24585//23327 25117//23859 25115//23857 24607//23349 +f 25117//23859 25118//23860 25116//23858 25115//23857 +f 25118//23860 25117//23859 25119//23861 25120//23862 +f 25117//23859 24585//23327 24583//23325 25119//23861 +f 24570//23312 25121//23863 25119//23861 24583//23325 +f 25121//23863 25122//23864 25120//23862 25119//23861 +f 25121//23863 25123//23865 25124//23866 25122//23864 +f 24570//23312 24567//23309 25123//23865 25121//23863 +f 25125//23867 25123//23865 24567//23309 24566//23308 +f 25126//23868 25124//23866 25123//23865 25125//23867 +f 25125//23867 25127//23869 25128//23870 25126//23868 +f 24566//23308 24720//23462 25127//23869 25125//23867 +f 25129//23871 25127//23869 24720//23462 24716//23458 +f 25130//23872 25128//23870 25127//23869 25129//23871 +f 24471//23213 25131//23873 25132//23874 24476//23218 +f 25131//23873 23502//22243 23545//22286 25132//23874 +f 23546//22287 23592//22333 25132//23874 23545//22286 +f 23592//22333 23596//22337 24476//23218 25132//23874 +f 25129//23871 25133//23875 25134//23876 25130//23872 +f 24716//23458 24714//23456 25133//23875 25129//23871 +f 25135//23877 25133//23875 24714//23456 24710//23452 +f 24550//23292 25134//23876 25133//23875 25135//23877 +f 25135//23877 25136//23878 24548//23290 24550//23292 +f 24710//23452 24708//23450 25136//23878 25135//23877 +f 25137//23879 25136//23878 24708//23450 24704//23446 +f 23189//21930 24548//23290 25136//23878 25137//23879 +f 23189//21930 25137//23879 25138//23880 24546//23288 +f 25137//23879 24704//23446 24702//23444 25138//23880 +f 24698//23440 25139//23881 25138//23880 24702//23444 +f 25139//23881 24543//23285 24546//23288 25138//23880 +f 24543//23285 25139//23881 25140//23882 25141//23883 +f 25139//23881 24698//23440 24696//23438 25140//23882 +f 24692//23434 25142//23884 25140//23882 24696//23438 +f 25142//23884 25143//23885 25141//23883 25140//23882 +f 25143//23885 25142//23884 25144//23886 25145//23887 +f 25142//23884 24692//23434 24690//23432 25144//23886 +f 24555//23297 25146//23888 25144//23886 24690//23432 +f 25146//23888 25147//23889 25145//23887 25144//23886 +f 25147//23889 25146//23888 25148//23890 25149//23891 +f 25146//23888 24555//23297 24551//23293 25148//23890 +f 24554//23296 25150//23892 25148//23890 24551//23293 +f 25150//23892 25151//23893 25149//23891 25148//23890 +f 25150//23892 25152//23894 25153//23895 25151//23893 +f 24554//23296 24561//23303 25152//23894 25150//23892 +f 25154//23896 25152//23894 24561//23303 24560//23302 +f 25155//23897 25153//23895 25152//23894 25154//23896 +f 25154//23896 25156//23898 25157//23899 25155//23897 +f 24560//23302 24687//23429 25156//23898 25154//23896 +f 25158//23900 25156//23898 24687//23429 24683//23425 +f 25159//23901 25157//23899 25156//23898 25158//23900 +f 25158//23900 25160//23902 25161//23903 25159//23901 +f 24683//23425 24681//23423 25160//23902 25158//23900 +f 25162//23904 25160//23902 24681//23423 24677//23419 +f 24542//23284 25161//23903 25160//23902 25162//23904 +f 25162//23904 25163//23905 24540//23282 24542//23284 +f 24677//23419 24675//23417 25163//23905 25162//23904 +f 25164//23906 25163//23905 24675//23417 24671//23413 +f 23193//21934 24540//23282 25163//23905 25164//23906 +f 25164//23906 25165//23907 24538//23280 23193//21934 +f 24671//23413 24669//23411 25165//23907 25164//23906 +f 24665//23407 25166//23908 25165//23907 24669//23411 +f 25166//23908 24536//23278 24538//23280 25165//23907 +f 24536//23278 25166//23908 25167//23909 24534//23276 +f 25166//23908 24665//23407 24663//23405 25167//23909 +f 24531//23273 24530//23272 25167//23909 24663//23405 +f 24530//23272 24529//23271 24534//23276 25167//23909 +f 24527//23269 24524//23266 25168//23910 25169//23911 +f 24524//23266 24523//23265 24575//23317 25168//23910 +f 24578//23320 25170//23912 25168//23910 24575//23317 +f 25170//23912 25171//23913 25169//23911 25168//23910 +f 25170//23912 25172//23914 25173//23915 25171//23913 +f 24578//23320 24589//23331 25172//23914 25170//23912 +f 24520//23262 25172//23914 24589//23331 24522//23264 +f 24521//23263 25173//23915 25172//23914 24520//23262 +f 24515//23257 25174//23916 24512//23254 24514//23256 +f 24518//23260 24652//23394 25174//23916 24515//23257 +f 25175//23917 25174//23916 24652//23394 24648//23390 +f 24510//23252 24512//23254 25174//23916 25175//23917 +f 25175//23917 25176//23918 24508//23250 24510//23252 +f 24648//23390 24646//23388 25176//23918 25175//23917 +f 24642//23384 25177//23919 25176//23918 24646//23388 +f 25177//23919 23597//22338 24508//23250 25176//23918 +f 23597//22338 25177//23919 25178//23920 24506//23248 +f 25177//23919 24642//23384 24640//23382 25178//23920 +f 24636//23378 25179//23921 25178//23920 24640//23382 +f 25179//23921 24504//23246 24506//23248 25178//23920 +f 24504//23246 25179//23921 25180//23922 24501//23243 +f 25179//23921 24636//23378 24634//23376 25180//23922 +f 24499//23241 24498//23240 25180//23922 24634//23376 +f 24498//23240 23683//22424 24501//23243 25180//23922 +f 23677//22418 24495//23237 25181//23923 23673//22414 +f 24495//23237 24494//23236 24602//23344 25181//23923 +f 24597//23339 25182//23924 25181//23923 24602//23344 +f 25182//23924 23671//22412 23673//22414 25181//23923 +f 25182//23924 25183//23925 23667//22408 23671//22412 +f 24597//23339 24594//23336 25183//23925 25182//23924 +f 24492//23234 25183//23925 24594//23336 24493//23235 +f 23665//22406 23667//22408 25183//23925 24492//23234 +f 23594//22335 25184//23926 24481//23223 23596//22337 +f 23595//22336 23652//22393 25184//23926 23594//22335 +f 25185//23927 25184//23926 23652//22393 23656//22397 +f 24483//23225 24481//23223 25184//23926 25185//23927 +f 25185//23927 25186//23928 24487//23229 24483//23225 +f 23656//22397 25187//23929 25186//23928 25185//23927 +f 23657//22398 25186//23928 25187//23929 23661//22402 +f 23660//22401 24487//23229 25186//23928 23657//22398 +f 25188//23930 25189//23931 25190//23932 25191//23933 +f 25192//23934 25193//23935 25190//23932 25189//23931 +f 25194//23936 25190//23932 25193//23935 25195//23937 +f 25194//23936 25196//23938 25191//23933 25190//23932 +f 25197//23939 25198//23940 25193//23935 25192//23934 +f 25199//23941 25200//23942 25198//23940 25197//23939 +f 25201//23943 25198//23940 25200//23942 25202//23944 +f 25195//23937 25193//23935 25198//23940 25201//23943 +f 25203//23945 25204//23946 25200//23942 25199//23941 +f 25205//23947 25206//23948 25204//23946 25203//23945 +f 25207//23949 25204//23946 25206//23948 25208//23950 +f 25202//23944 25200//23942 25204//23946 25207//23949 +f 25209//23951 25210//23952 25206//23948 25205//23947 +f 25209//23951 25211//23953 25212//23954 25210//23952 +f 25213//23955 25210//23952 25212//23954 25214//23956 +f 25208//23950 25206//23948 25210//23952 25213//23955 +f 25211//23953 25215//23957 25216//23958 25212//23954 +f 25217//23959 25218//23960 25216//23958 25215//23957 +f 25219//23961 25220//23962 25216//23958 25218//23960 +f 25220//23962 25214//23956 25212//23954 25216//23958 +f 25221//23963 25222//23964 25218//23960 25217//23959 +f 25223//23965 25224//23966 25222//23964 25221//23963 +f 25225//23967 25222//23964 25224//23966 25226//23968 +f 25219//23961 25218//23960 25222//23964 25225//23967 +f 25227//23969 25228//23970 25224//23966 25223//23965 +f 25229//23971 25230//23972 25228//23970 25227//23969 +f 25231//23973 25228//23970 25230//23972 25232//23974 +f 25226//23968 25224//23966 25228//23970 25231//23973 +f 25233//23975 25234//23976 25230//23972 25229//23971 +f 25233//23975 25235//23977 25236//23978 25234//23976 +f 25237//23979 25234//23976 25236//23978 25238//23980 +f 25232//23974 25230//23972 25234//23976 25237//23979 +f 25235//23977 25239//23981 25240//23982 25236//23978 +f 25239//23981 25241//23983 25242//23984 25240//23982 +f 25243//23985 25244//23986 25240//23982 25242//23984 +f 25244//23986 25238//23980 25236//23978 25240//23982 +f 25245//23987 25246//23988 25242//23984 25241//23983 +f 25247//23989 25248//23990 25246//23988 25245//23987 +f 25249//23991 25246//23988 25248//23990 25250//23992 +f 25243//23985 25242//23984 25246//23988 25249//23991 +f 25251//23993 25252//23994 25248//23990 25247//23989 +f 25253//23995 25254//23996 25252//23994 25251//23993 +f 25255//23997 25252//23994 25254//23996 25256//23998 +f 25250//23992 25248//23990 25252//23994 25255//23997 +f 25257//23999 25258//24000 25254//23996 25253//23995 +f 25257//23999 25259//24001 25260//24002 25258//24000 +f 25261//24003 25262//24004 25258//24000 25260//24002 +f 25256//23998 25254//23996 25258//24000 25262//24004 +f 25259//24001 25263//24005 25264//24006 25260//24002 +f 25263//24005 25265//24007 25266//24008 25264//24006 +f 25267//24009 25268//24010 25264//24006 25266//24008 +f 25268//24010 25261//24003 25260//24002 25264//24006 +f 25269//24011 25270//24012 25266//24008 25265//24007 +f 25271//24013 25272//24014 25270//24012 25269//24011 +f 25273//24015 25270//24012 25272//24014 25274//24016 +f 25267//24009 25266//24008 25270//24012 25273//24015 +f 25275//24017 25276//24018 25272//24014 25271//24013 +f 25277//24019 25278//24020 25276//24018 25275//24017 +f 25279//24021 25276//24018 25278//24020 25280//24022 +f 25274//24016 25272//24014 25276//24018 25279//24021 +f 25281//24023 25282//24024 25278//24020 25277//24019 +f 25281//24023 25283//24025 25284//24026 25282//24024 +f 25285//24027 25286//24028 25282//24024 25284//24026 +f 25280//24022 25278//24020 25282//24024 25286//24028 +f 25283//24025 25287//24029 25288//24030 25284//24026 +f 25287//24029 25289//24031 25290//24032 25288//24030 +f 25291//24033 25292//24034 25288//24030 25290//24032 +f 25292//24034 25285//24027 25284//24026 25288//24030 +f 25293//24035 25294//24036 25290//24032 25289//24031 +f 25295//24037 25296//24038 25294//24036 25293//24035 +f 25297//24039 25294//24036 25296//24038 25298//24040 +f 25291//24033 25290//24032 25294//24036 25297//24039 +f 25299//24041 25300//24042 25296//24038 25295//24037 +f 25301//24043 25302//24044 25300//24042 25299//24041 +f 25303//24045 25300//24042 25302//24044 25304//24046 +f 25298//24040 25296//24038 25300//24042 25303//24045 +f 25305//24047 25306//24048 25302//24044 25301//24043 +f 25305//24047 25307//24049 25308//24050 25306//24048 +f 25309//24051 25310//24052 25306//24048 25308//24050 +f 25304//24046 25302//24044 25306//24048 25310//24052 +f 25307//24049 25311//24053 25312//24054 25308//24050 +f 25311//24053 25313//24055 25314//24056 25312//24054 +f 25315//24057 25316//24058 25312//24054 25314//24056 +f 25316//24058 25309//24051 25308//24050 25312//24054 +f 25317//24059 25318//24060 25314//24056 25313//24055 +f 25319//24061 25320//24062 25318//24060 25317//24059 +f 25321//24063 25318//24060 25320//24062 25322//24064 +f 25315//24057 25314//24056 25318//24060 25321//24063 +f 25323//24065 25324//24066 25320//24062 25319//24061 +f 25325//24067 25326//24068 25324//24066 25323//24065 +f 25327//24069 25324//24066 25326//24068 25328//24070 +f 25322//24064 25320//24062 25324//24066 25327//24069 +f 25329//24071 25330//24072 25326//24068 25325//24067 +f 25329//24071 25331//24073 25332//24074 25330//24072 +f 25333//24075 25334//24076 25330//24072 25332//24074 +f 25328//24070 25326//24068 25330//24072 25334//24076 +f 25331//24073 25335//24077 25336//24078 25332//24074 +f 25335//24077 25337//24079 25338//24080 25336//24078 +f 25339//24081 25340//24082 25336//24078 25338//24080 +f 25340//24082 25333//24075 25332//24074 25336//24078 +f 25341//24083 25342//24084 25338//24080 25337//24079 +f 25343//24085 25344//24086 25342//24084 25341//24083 +f 25345//24087 25342//24084 25344//24086 25346//24088 +f 25339//24081 25338//24080 25342//24084 25345//24087 +f 25347//24089 25348//24090 25344//24086 25343//24085 +f 25349//24091 25350//24092 25348//24090 25347//24089 +f 25351//24093 25348//24090 25350//24092 25352//24094 +f 25346//24088 25344//24086 25348//24090 25351//24093 +f 25353//24095 25354//24096 25350//24092 25349//24091 +f 25353//24095 25355//24097 25356//24098 25354//24096 +f 25357//24099 25354//24096 25356//24098 25358//24100 +f 25352//24094 25350//24092 25354//24096 25357//24099 +f 25355//24097 25359//24101 25360//24102 25356//24098 +f 25361//24103 25362//24104 25360//24102 25359//24101 +f 25363//24105 25364//24106 25360//24102 25362//24104 +f 25364//24106 25358//24100 25356//24098 25360//24102 +f 25365//24107 25366//24108 25362//24104 25361//24103 +f 25367//24109 25368//24110 25366//24108 25365//24107 +f 25369//24111 25366//24108 25368//24110 25370//24112 +f 25363//24105 25362//24104 25366//24108 25369//24111 +f 25371//24113 25372//24114 25368//24110 25367//24109 +f 25373//24115 25374//24116 25372//24114 25371//24113 +f 25375//24117 25372//24114 25374//24116 25376//24118 +f 25370//24112 25368//24110 25372//24114 25375//24117 +f 25377//24119 25378//24120 25374//24116 25373//24115 +f 25379//24121 25380//24122 25378//24120 25377//24119 +f 25381//24123 25378//24120 25380//24122 25382//24124 +f 25376//24118 25374//24116 25378//24120 25381//24123 +f 25379//24121 25383//24125 25384//24126 25380//24122 +f 25385//24127 25386//24128 25384//24126 25383//24125 +f 25387//24129 25384//24126 25386//24128 25388//24130 +f 25387//24129 25382//24124 25380//24122 25384//24126 +f 25389//24131 25390//24132 25386//24128 25385//24127 +f 25391//24133 25392//24134 25390//24132 25389//24131 +f 25393//24135 25390//24132 25392//24134 25394//24136 +f 25388//24130 25386//24128 25390//24132 25393//24135 +f 25395//24137 25396//24138 25392//24134 25391//24133 +f 25397//24139 25398//24140 25396//24138 25395//24137 +f 25399//24141 25396//24138 25398//24140 25400//24142 +f 25394//24136 25392//24134 25396//24138 25399//24141 +f 25401//24143 25402//24144 25398//24140 25397//24139 +f 25403//24145 25404//24146 25402//24144 25401//24143 +f 25405//24147 25402//24144 25404//24146 25406//24148 +f 25400//24142 25398//24140 25402//24144 25405//24147 +f 25403//24145 25407//24149 25408//24150 25404//24146 +f 25409//24151 25410//24152 25408//24150 25407//24149 +f 25411//24153 25408//24150 25410//24152 25412//24154 +f 25411//24153 25406//24148 25404//24146 25408//24150 +f 25413//24155 25414//24156 25410//24152 25409//24151 +f 25415//24157 25416//24158 25414//24156 25413//24155 +f 25417//24159 25414//24156 25416//24158 25418//24160 +f 25412//24154 25410//24152 25414//24156 25417//24159 +f 25419//24161 25420//24162 25416//24158 25415//24157 +f 25421//24163 25422//24164 25420//24162 25419//24161 +f 25423//24165 25420//24162 25422//24164 25424//24166 +f 25418//24160 25416//24158 25420//24162 25423//24165 +f 25425//24167 25426//24168 25422//24164 25421//24163 +f 25188//23930 25191//23933 25426//24168 25425//24167 +f 25427//24169 25426//24168 25191//23933 25196//23938 +f 25424//24166 25422//24164 25426//24168 25427//24169 +f 25428//24170 25429//24171 25189//23931 25188//23930 +f 25430//24172 25431//24173 25429//24171 25428//24170 +f 25432//24174 25429//24171 25431//24173 25433//24175 +f 25192//23934 25189//23931 25429//24171 25432//24174 +f 25192//23934 25432//24174 25434//24176 25197//23939 +f 25433//24175 25435//24177 25434//24176 25432//24174 +f 25436//24178 25434//24176 25435//24177 25437//24179 +f 25436//24178 25199//23941 25197//23939 25434//24176 +f 25199//23941 25436//24178 25438//24180 25203//23945 +f 25437//24179 25439//24181 25438//24180 25436//24178 +f 25440//24182 25438//24180 25439//24181 25441//24183 +f 25440//24182 25205//23947 25203//23945 25438//24180 +f 25440//24182 25442//24184 25209//23951 25205//23947 +f 25441//24183 25443//24185 25442//24184 25440//24182 +f 25444//24186 25442//24184 25443//24185 25445//24187 +f 25211//23953 25209//23951 25442//24184 25444//24186 +f 25444//24186 25446//24188 25215//23957 25211//23953 +f 25445//24187 25447//24189 25446//24188 25444//24186 +f 25448//24190 25446//24188 25447//24189 25449//24191 +f 25217//23959 25215//23957 25446//24188 25448//24190 +f 25217//23959 25448//24190 25450//24192 25221//23963 +f 25449//24191 25451//24193 25450//24192 25448//24190 +f 25452//24194 25450//24192 25451//24193 25453//24195 +f 25452//24194 25223//23965 25221//23963 25450//24192 +f 25223//23965 25452//24194 25454//24196 25227//23969 +f 25453//24195 25455//24197 25454//24196 25452//24194 +f 25456//24198 25454//24196 25455//24197 25457//24199 +f 25456//24198 25229//23971 25227//23969 25454//24196 +f 25456//24198 25458//24200 25233//23975 25229//23971 +f 25457//24199 25459//24201 25458//24200 25456//24198 +f 25460//24202 25458//24200 25459//24201 25461//24203 +f 25235//23977 25233//23975 25458//24200 25460//24202 +f 25460//24202 25462//24204 25239//23981 25235//23977 +f 25461//24203 25463//24205 25462//24204 25460//24202 +f 25464//24206 25462//24204 25463//24205 25465//24207 +f 25241//23983 25239//23981 25462//24204 25464//24206 +f 25241//23983 25464//24206 25466//24208 25245//23987 +f 25465//24207 25467//24209 25466//24208 25464//24206 +f 25468//24210 25466//24208 25467//24209 25469//24211 +f 25468//24210 25247//23989 25245//23987 25466//24208 +f 25247//23989 25468//24210 25470//24212 25251//23993 +f 25469//24211 25471//24213 25470//24212 25468//24210 +f 25472//24214 25470//24212 25471//24213 25473//24215 +f 25253//23995 25251//23993 25470//24212 25472//24214 +f 25472//24214 25474//24216 25257//23999 25253//23995 +f 25473//24215 25475//24217 25474//24216 25472//24214 +f 25476//24218 25474//24216 25475//24217 25477//24219 +f 25259//24001 25257//23999 25474//24216 25476//24218 +f 25476//24218 25478//24220 25263//24005 25259//24001 +f 25477//24219 25479//24221 25478//24220 25476//24218 +f 25480//24222 25478//24220 25479//24221 25481//24223 +f 25265//24007 25263//24005 25478//24220 25480//24222 +f 25265//24007 25480//24222 25482//24224 25269//24011 +f 25481//24223 25483//24225 25482//24224 25480//24222 +f 25484//24226 25482//24224 25483//24225 25485//24227 +f 25484//24226 25271//24013 25269//24011 25482//24224 +f 25271//24013 25484//24226 25486//24228 25275//24017 +f 25485//24227 25487//24229 25486//24228 25484//24226 +f 25488//24230 25486//24228 25487//24229 25489//24231 +f 25277//24019 25275//24017 25486//24228 25488//24230 +f 25488//24230 25490//24232 25281//24023 25277//24019 +f 25489//24231 25491//24233 25490//24232 25488//24230 +f 25492//24234 25490//24232 25491//24233 25493//24235 +f 25283//24025 25281//24023 25490//24232 25492//24234 +f 25492//24234 25494//24236 25287//24029 25283//24025 +f 25493//24235 25495//24237 25494//24236 25492//24234 +f 25496//24238 25494//24236 25495//24237 25497//24239 +f 25289//24031 25287//24029 25494//24236 25496//24238 +f 25496//24238 25498//24240 25293//24035 25289//24031 +f 25497//24239 25499//24241 25498//24240 25496//24238 +f 25500//24242 25498//24240 25499//24241 25501//24243 +f 25500//24242 25295//24037 25293//24035 25498//24240 +f 25295//24037 25500//24242 25502//24244 25299//24041 +f 25501//24243 25503//24245 25502//24244 25500//24242 +f 25504//24246 25502//24244 25503//24245 25505//24247 +f 25301//24043 25299//24041 25502//24244 25504//24246 +f 25504//24246 25506//24248 25305//24047 25301//24043 +f 25505//24247 25507//24249 25506//24248 25504//24246 +f 25508//24250 25506//24248 25507//24249 25509//24251 +f 25307//24049 25305//24047 25506//24248 25508//24250 +f 25508//24250 25510//24252 25311//24053 25307//24049 +f 25509//24251 25511//24253 25510//24252 25508//24250 +f 25512//24254 25510//24252 25511//24253 25513//24255 +f 25313//24055 25311//24053 25510//24252 25512//24254 +f 25313//24055 25512//24254 25514//24256 25317//24059 +f 25513//24255 25515//24257 25514//24256 25512//24254 +f 25516//24258 25514//24256 25515//24257 25517//24259 +f 25516//24258 25319//24061 25317//24059 25514//24256 +f 25319//24061 25516//24258 25518//24260 25323//24065 +f 25517//24259 25519//24261 25518//24260 25516//24258 +f 25520//24262 25518//24260 25519//24261 25521//24263 +f 25325//24067 25323//24065 25518//24260 25520//24262 +f 25520//24262 25522//24264 25329//24071 25325//24067 +f 25521//24263 25523//24265 25522//24264 25520//24262 +f 25524//24266 25522//24264 25523//24265 25525//24267 +f 25331//24073 25329//24071 25522//24264 25524//24266 +f 25524//24266 25526//24268 25335//24077 25331//24073 +f 25525//24267 25527//24269 25526//24268 25524//24266 +f 25528//24270 25526//24268 25527//24269 25529//24271 +f 25337//24079 25335//24077 25526//24268 25528//24270 +f 25337//24079 25528//24270 25530//24272 25341//24083 +f 25529//24271 25531//24273 25530//24272 25528//24270 +f 25532//24274 25530//24272 25531//24273 25533//24275 +f 25532//24274 25343//24085 25341//24083 25530//24272 +f 25343//24085 25532//24274 25534//24276 25347//24089 +f 25533//24275 25535//24277 25534//24276 25532//24274 +f 25536//24278 25534//24276 25535//24277 25537//24279 +f 25536//24278 25349//24091 25347//24089 25534//24276 +f 25536//24278 25538//24280 25353//24095 25349//24091 +f 25537//24279 25539//24281 25538//24280 25536//24278 +f 25540//24282 25538//24280 25539//24281 25541//24283 +f 25355//24097 25353//24095 25538//24280 25540//24282 +f 25540//24282 25542//24284 25359//24101 25355//24097 +f 25541//24283 25543//24285 25542//24284 25540//24282 +f 25544//24286 25542//24284 25543//24285 25545//24287 +f 25361//24103 25359//24101 25542//24284 25544//24286 +f 25361//24103 25544//24286 25546//24288 25365//24107 +f 25545//24287 25547//24289 25546//24288 25544//24286 +f 25548//24290 25546//24288 25547//24289 25549//24291 +f 25548//24290 25367//24109 25365//24107 25546//24288 +f 25367//24109 25548//24290 25550//24292 25371//24113 +f 25549//24291 25551//24293 25550//24292 25548//24290 +f 25552//24294 25550//24292 25551//24293 25553//24295 +f 25552//24294 25373//24115 25371//24113 25550//24292 +f 25552//24294 25554//24296 25377//24119 25373//24115 +f 25553//24295 25555//24297 25554//24296 25552//24294 +f 25556//24298 25554//24296 25555//24297 25557//24299 +f 25379//24121 25377//24119 25554//24296 25556//24298 +f 25556//24298 25558//24300 25383//24125 25379//24121 +f 25557//24299 25559//24301 25558//24300 25556//24298 +f 25560//24302 25558//24300 25559//24301 25561//24303 +f 25385//24127 25383//24125 25558//24300 25560//24302 +f 25385//24127 25560//24302 25562//24304 25389//24131 +f 25561//24303 25563//24305 25562//24304 25560//24302 +f 25564//24306 25562//24304 25563//24305 25565//24307 +f 25564//24306 25391//24133 25389//24131 25562//24304 +f 25391//24133 25564//24306 25566//24308 25395//24137 +f 25565//24307 25567//24309 25566//24308 25564//24306 +f 25568//24310 25566//24308 25567//24309 25569//24311 +f 25568//24310 25397//24139 25395//24137 25566//24308 +f 25568//24310 25570//24312 25401//24143 25397//24139 +f 25569//24311 25571//24313 25570//24312 25568//24310 +f 25572//24314 25570//24312 25571//24313 25573//24315 +f 25403//24145 25401//24143 25570//24312 25572//24314 +f 25572//24314 25574//24316 25407//24149 25403//24145 +f 25573//24315 25575//24317 25574//24316 25572//24314 +f 25576//24318 25574//24316 25575//24317 25577//24319 +f 25409//24151 25407//24149 25574//24316 25576//24318 +f 25409//24151 25576//24318 25578//24320 25413//24155 +f 25577//24319 25579//24321 25578//24320 25576//24318 +f 25580//24322 25578//24320 25579//24321 25581//24323 +f 25580//24322 25415//24157 25413//24155 25578//24320 +f 25415//24157 25580//24322 25582//24324 25419//24161 +f 25581//24323 25583//24325 25582//24324 25580//24322 +f 25584//24326 25582//24324 25583//24325 25585//24327 +f 25584//24326 25421//24163 25419//24161 25582//24324 +f 25584//24326 25586//24328 25425//24167 25421//24163 +f 25585//24327 25587//24329 25586//24328 25584//24326 +f 25428//24170 25586//24328 25587//24329 25430//24172 +f 25188//23930 25425//24167 25586//24328 25428//24170 +f 25588//24330 25589//24331 25431//24173 25430//24172 +f 25590//24332 25591//24333 25589//24331 25588//24330 +f 25592//24334 25589//24331 25591//24333 25593//24335 +f 25433//24175 25431//24173 25589//24331 25592//24334 +f 25592//24334 25594//24336 25435//24177 25433//24175 +f 25593//24335 25595//24337 25594//24336 25592//24334 +f 25596//24338 25594//24336 25595//24337 25597//24339 +f 25437//24179 25435//24177 25594//24336 25596//24338 +f 25596//24338 25598//24340 25439//24181 25437//24179 +f 25597//24339 25599//24341 25598//24340 25596//24338 +f 25600//24342 25598//24340 25599//24341 25601//24343 +f 25441//24183 25439//24181 25598//24340 25600//24342 +f 25600//24342 25602//24344 25443//24185 25441//24183 +f 25601//24343 25603//24345 25602//24344 25600//24342 +f 25604//24346 25602//24344 25603//24345 25605//24347 +f 25445//24187 25443//24185 25602//24344 25604//24346 +f 25604//24346 25606//24348 25447//24189 25445//24187 +f 25605//24347 25607//24349 25606//24348 25604//24346 +f 25608//24350 25606//24348 25607//24349 25609//24351 +f 25449//24191 25447//24189 25606//24348 25608//24350 +f 25608//24350 25610//24352 25451//24193 25449//24191 +f 25609//24351 25611//24353 25610//24352 25608//24350 +f 25612//24354 25610//24352 25611//24353 25613//24355 +f 25453//24195 25451//24193 25610//24352 25612//24354 +f 25612//24354 25614//24356 25455//24197 25453//24195 +f 25613//24355 25615//24357 25614//24356 25612//24354 +f 25616//24358 25614//24356 25615//24357 25617//24359 +f 25457//24199 25455//24197 25614//24356 25616//24358 +f 25616//24358 25618//24360 25459//24201 25457//24199 +f 25617//24359 25619//24361 25618//24360 25616//24358 +f 25620//24362 25618//24360 25619//24361 25621//24363 +f 25461//24203 25459//24201 25618//24360 25620//24362 +f 25620//24362 25622//24364 25463//24205 25461//24203 +f 25621//24363 25623//24365 25622//24364 25620//24362 +f 25624//24366 25622//24364 25623//24365 25625//24367 +f 25465//24207 25463//24205 25622//24364 25624//24366 +f 25624//24366 25626//24368 25467//24209 25465//24207 +f 25625//24367 25627//24369 25626//24368 25624//24366 +f 25628//24370 25626//24368 25627//24369 25629//24371 +f 25469//24211 25467//24209 25626//24368 25628//24370 +f 25628//24370 25630//24372 25471//24213 25469//24211 +f 25629//24371 25631//24373 25630//24372 25628//24370 +f 25632//24374 25630//24372 25631//24373 25633//24375 +f 25473//24215 25471//24213 25630//24372 25632//24374 +f 25632//24374 25634//24376 25475//24217 25473//24215 +f 25633//24375 25635//24377 25634//24376 25632//24374 +f 25636//24378 25634//24376 25635//24377 25637//24379 +f 25477//24219 25475//24217 25634//24376 25636//24378 +f 25636//24378 25638//24380 25479//24221 25477//24219 +f 25637//24379 25639//24381 25638//24380 25636//24378 +f 25640//24382 25638//24380 25639//24381 25641//24383 +f 25481//24223 25479//24221 25638//24380 25640//24382 +f 25640//24382 25642//24384 25483//24225 25481//24223 +f 25641//24383 25643//24385 25642//24384 25640//24382 +f 25644//24386 25642//24384 25643//24385 25645//24387 +f 25485//24227 25483//24225 25642//24384 25644//24386 +f 25644//24386 25646//24388 25487//24229 25485//24227 +f 25645//24387 25647//24389 25646//24388 25644//24386 +f 25648//24390 25646//24388 25647//24389 25649//24391 +f 25489//24231 25487//24229 25646//24388 25648//24390 +f 25648//24390 25650//24392 25491//24233 25489//24231 +f 25649//24391 25651//24393 25650//24392 25648//24390 +f 25652//24394 25650//24392 25651//24393 25653//24395 +f 25493//24235 25491//24233 25650//24392 25652//24394 +f 25652//24394 25654//24396 25495//24237 25493//24235 +f 25653//24395 25655//24397 25654//24396 25652//24394 +f 25656//24398 25654//24396 25655//24397 25657//24399 +f 25497//24239 25495//24237 25654//24396 25656//24398 +f 25656//24398 25658//24400 25499//24241 25497//24239 +f 25657//24399 25659//24401 25658//24400 25656//24398 +f 25660//24402 25658//24400 25659//24401 25661//24403 +f 25501//24243 25499//24241 25658//24400 25660//24402 +f 25660//24402 25662//24404 25503//24245 25501//24243 +f 25661//24403 25663//24405 25662//24404 25660//24402 +f 25664//24406 25662//24404 25663//24405 25665//24407 +f 25505//24247 25503//24245 25662//24404 25664//24406 +f 25664//24406 25666//24408 25507//24249 25505//24247 +f 25665//24407 25667//24409 25666//24408 25664//24406 +f 25668//24410 25666//24408 25667//24409 25669//24411 +f 25509//24251 25507//24249 25666//24408 25668//24410 +f 25668//24410 25670//24412 25511//24253 25509//24251 +f 25669//24411 25671//24413 25670//24412 25668//24410 +f 25672//24414 25670//24412 25671//24413 25673//24415 +f 25513//24255 25511//24253 25670//24412 25672//24414 +f 25672//24414 25674//24416 25515//24257 25513//24255 +f 25673//24415 25675//24417 25674//24416 25672//24414 +f 25676//24418 25674//24416 25675//24417 25677//24419 +f 25517//24259 25515//24257 25674//24416 25676//24418 +f 25676//24418 25678//24420 25519//24261 25517//24259 +f 25677//24419 25679//24421 25678//24420 25676//24418 +f 25680//24422 25678//24420 25679//24421 25681//24423 +f 25521//24263 25519//24261 25678//24420 25680//24422 +f 25680//24422 25682//24424 25523//24265 25521//24263 +f 25681//24423 25683//24425 25682//24424 25680//24422 +f 25684//24426 25682//24424 25683//24425 25685//24427 +f 25525//24267 25523//24265 25682//24424 25684//24426 +f 25684//24426 25686//24428 25527//24269 25525//24267 +f 25685//24427 25687//24429 25686//24428 25684//24426 +f 25688//24430 25686//24428 25687//24429 25689//24431 +f 25529//24271 25527//24269 25686//24428 25688//24430 +f 25688//24430 25690//24432 25531//24273 25529//24271 +f 25689//24431 25691//24433 25690//24432 25688//24430 +f 25692//24434 25690//24432 25691//24433 25693//24435 +f 25533//24275 25531//24273 25690//24432 25692//24434 +f 25692//24434 25694//24436 25535//24277 25533//24275 +f 25693//24435 25695//24437 25694//24436 25692//24434 +f 25696//24438 25694//24436 25695//24437 25697//24439 +f 25537//24279 25535//24277 25694//24436 25696//24438 +f 25696//24438 25698//24440 25539//24281 25537//24279 +f 25697//24439 25699//24441 25698//24440 25696//24438 +f 25700//24442 25698//24440 25699//24441 25701//24443 +f 25541//24283 25539//24281 25698//24440 25700//24442 +f 25700//24442 25702//24444 25543//24285 25541//24283 +f 25701//24443 25703//24445 25702//24444 25700//24442 +f 25704//24446 25702//24444 25703//24445 25705//24447 +f 25545//24287 25543//24285 25702//24444 25704//24446 +f 25704//24446 25706//24448 25547//24289 25545//24287 +f 25705//24447 25707//24449 25706//24448 25704//24446 +f 25708//24450 25706//24448 25707//24449 25709//24451 +f 25549//24291 25547//24289 25706//24448 25708//24450 +f 25708//24450 25710//24452 25551//24293 25549//24291 +f 25709//24451 25711//24453 25710//24452 25708//24450 +f 25712//24454 25710//24452 25711//24453 25713//24455 +f 25553//24295 25551//24293 25710//24452 25712//24454 +f 25712//24454 25714//24456 25555//24297 25553//24295 +f 25713//24455 25715//24457 25714//24456 25712//24454 +f 25716//24458 25714//24456 25715//24457 25717//24459 +f 25557//24299 25555//24297 25714//24456 25716//24458 +f 25716//24458 25718//24460 25559//24301 25557//24299 +f 25717//24459 25719//24461 25718//24460 25716//24458 +f 25720//24462 25718//24460 25719//24461 25721//24463 +f 25561//24303 25559//24301 25718//24460 25720//24462 +f 25720//24462 25722//24464 25563//24305 25561//24303 +f 25721//24463 25723//24465 25722//24464 25720//24462 +f 25724//24466 25722//24464 25723//24465 25725//24467 +f 25565//24307 25563//24305 25722//24464 25724//24466 +f 25724//24466 25726//24468 25567//24309 25565//24307 +f 25725//24467 25727//24469 25726//24468 25724//24466 +f 25728//24470 25726//24468 25727//24469 25729//24471 +f 25569//24311 25567//24309 25726//24468 25728//24470 +f 25728//24470 25730//24472 25571//24313 25569//24311 +f 25729//24471 25731//24473 25730//24472 25728//24470 +f 25732//24474 25730//24472 25731//24473 25733//24475 +f 25573//24315 25571//24313 25730//24472 25732//24474 +f 25732//24474 25734//24476 25575//24317 25573//24315 +f 25733//24475 25735//24477 25734//24476 25732//24474 +f 25736//24478 25734//24476 25735//24477 25737//24479 +f 25577//24319 25575//24317 25734//24476 25736//24478 +f 25736//24478 25738//24480 25579//24321 25577//24319 +f 25737//24479 25739//24481 25738//24480 25736//24478 +f 25740//24482 25738//24480 25739//24481 25741//24483 +f 25581//24323 25579//24321 25738//24480 25740//24482 +f 25740//24482 25742//24484 25583//24325 25581//24323 +f 25741//24483 25743//24485 25742//24484 25740//24482 +f 25744//24486 25742//24484 25743//24485 25745//24487 +f 25585//24327 25583//24325 25742//24484 25744//24486 +f 25744//24486 25746//24488 25587//24329 25585//24327 +f 25745//24487 25747//24489 25746//24488 25744//24486 +f 25588//24330 25746//24488 25747//24489 25590//24332 +f 25430//24172 25587//24329 25746//24488 25588//24330 +f 25591//24333 25748//24490 25749//24491 25593//24335 +f 25590//24332 25750//24492 25748//24490 25591//24333 +f 25751//24493 25748//24490 25750//24492 25752//24494 +f 25753//24495 25749//24491 25748//24490 25751//24493 +f 25595//24337 25754//24496 25755//24497 25597//24339 +f 25593//24335 25749//24491 25754//24496 25595//24337 +f 25756//24498 25754//24496 25749//24491 25753//24495 +f 25757//24499 25755//24497 25754//24496 25756//24498 +f 25599//24341 25758//24500 25759//24501 25601//24343 +f 25597//24339 25755//24497 25758//24500 25599//24341 +f 25760//24502 25758//24500 25755//24497 25757//24499 +f 25761//24503 25759//24501 25758//24500 25760//24502 +f 25603//24345 25762//24504 25763//24505 25605//24347 +f 25601//24343 25759//24501 25762//24504 25603//24345 +f 25764//24506 25762//24504 25759//24501 25761//24503 +f 25765//24507 25763//24505 25762//24504 25764//24506 +f 25607//24349 25766//24508 25767//24509 25609//24351 +f 25605//24347 25763//24505 25766//24508 25607//24349 +f 25768//24510 25766//24508 25763//24505 25765//24507 +f 25769//24511 25767//24509 25766//24508 25768//24510 +f 25611//24353 25770//24512 25771//24513 25613//24355 +f 25609//24351 25767//24509 25770//24512 25611//24353 +f 25772//24514 25770//24512 25767//24509 25769//24511 +f 25773//24515 25771//24513 25770//24512 25772//24514 +f 25615//24357 25774//24516 25775//24517 25617//24359 +f 25613//24355 25771//24513 25774//24516 25615//24357 +f 25776//24518 25774//24516 25771//24513 25773//24515 +f 25777//24519 25775//24517 25774//24516 25776//24518 +f 25619//24361 25778//24520 25779//24521 25621//24363 +f 25617//24359 25775//24517 25778//24520 25619//24361 +f 25780//24522 25778//24520 25775//24517 25777//24519 +f 25781//24523 25779//24521 25778//24520 25780//24522 +f 25623//24365 25782//24524 25783//24525 25625//24367 +f 25621//24363 25779//24521 25782//24524 25623//24365 +f 25784//24526 25782//24524 25779//24521 25781//24523 +f 25785//24527 25783//24525 25782//24524 25784//24526 +f 25627//24369 25786//24528 25787//24529 25629//24371 +f 25625//24367 25783//24525 25786//24528 25627//24369 +f 25788//24530 25786//24528 25783//24525 25785//24527 +f 25789//24531 25787//24529 25786//24528 25788//24530 +f 25631//24373 25790//24532 25791//24533 25633//24375 +f 25629//24371 25787//24529 25790//24532 25631//24373 +f 25792//24534 25790//24532 25787//24529 25789//24531 +f 25793//24535 25791//24533 25790//24532 25792//24534 +f 25635//24377 25794//24536 25795//24537 25637//24379 +f 25633//24375 25791//24533 25794//24536 25635//24377 +f 25796//24538 25794//24536 25791//24533 25793//24535 +f 25797//24539 25795//24537 25794//24536 25796//24538 +f 25639//24381 25798//24540 25799//24541 25641//24383 +f 25637//24379 25795//24537 25798//24540 25639//24381 +f 25800//24542 25798//24540 25795//24537 25797//24539 +f 25801//24543 25799//24541 25798//24540 25800//24542 +f 25643//24385 25802//24544 25803//24545 25645//24387 +f 25641//24383 25799//24541 25802//24544 25643//24385 +f 25804//24546 25802//24544 25799//24541 25801//24543 +f 25805//24547 25803//24545 25802//24544 25804//24546 +f 25647//24389 25806//24548 25807//24549 25649//24391 +f 25645//24387 25803//24545 25806//24548 25647//24389 +f 25808//24550 25806//24548 25803//24545 25805//24547 +f 25809//24551 25807//24549 25806//24548 25808//24550 +f 25651//24393 25810//24552 25811//24553 25653//24395 +f 25649//24391 25807//24549 25810//24552 25651//24393 +f 25812//24554 25810//24552 25807//24549 25809//24551 +f 25813//24555 25811//24553 25810//24552 25812//24554 +f 25655//24397 25814//24556 25815//24557 25657//24399 +f 25653//24395 25811//24553 25814//24556 25655//24397 +f 25816//24558 25814//24556 25811//24553 25813//24555 +f 25817//24559 25815//24557 25814//24556 25816//24558 +f 25659//24401 25818//24560 25819//24561 25661//24403 +f 25657//24399 25815//24557 25818//24560 25659//24401 +f 25820//24562 25818//24560 25815//24557 25817//24559 +f 25821//24563 25819//24561 25818//24560 25820//24562 +f 25663//24405 25822//24564 25823//24565 25665//24407 +f 25661//24403 25819//24561 25822//24564 25663//24405 +f 25824//24566 25822//24564 25819//24561 25821//24563 +f 25825//24567 25823//24565 25822//24564 25824//24566 +f 25667//24409 25826//24568 25827//24569 25669//24411 +f 25665//24407 25823//24565 25826//24568 25667//24409 +f 25828//24570 25826//24568 25823//24565 25825//24567 +f 25829//24571 25827//24569 25826//24568 25828//24570 +f 25671//24413 25830//24572 25831//24573 25673//24415 +f 25669//24411 25827//24569 25830//24572 25671//24413 +f 25832//24574 25830//24572 25827//24569 25829//24571 +f 25833//24575 25831//24573 25830//24572 25832//24574 +f 25675//24417 25834//24576 25835//24577 25677//24419 +f 25673//24415 25831//24573 25834//24576 25675//24417 +f 25836//24578 25834//24576 25831//24573 25833//24575 +f 25837//24579 25835//24577 25834//24576 25836//24578 +f 25679//24421 25838//24580 25839//24581 25681//24423 +f 25677//24419 25835//24577 25838//24580 25679//24421 +f 25840//24582 25838//24580 25835//24577 25837//24579 +f 25841//24583 25839//24581 25838//24580 25840//24582 +f 25683//24425 25842//24584 25843//24585 25685//24427 +f 25681//24423 25839//24581 25842//24584 25683//24425 +f 25844//24586 25842//24584 25839//24581 25841//24583 +f 25845//24587 25843//24585 25842//24584 25844//24586 +f 25687//24429 25846//24588 25847//24589 25689//24431 +f 25685//24427 25843//24585 25846//24588 25687//24429 +f 25848//24590 25846//24588 25843//24585 25845//24587 +f 25849//24591 25847//24589 25846//24588 25848//24590 +f 25691//24433 25850//24592 25851//24593 25693//24435 +f 25689//24431 25847//24589 25850//24592 25691//24433 +f 25852//24594 25850//24592 25847//24589 25849//24591 +f 25853//24595 25851//24593 25850//24592 25852//24594 +f 25695//24437 25854//24596 25855//24597 25697//24439 +f 25693//24435 25851//24593 25854//24596 25695//24437 +f 25856//24598 25854//24596 25851//24593 25853//24595 +f 25857//24599 25855//24597 25854//24596 25856//24598 +f 25699//24441 25858//24600 25859//24601 25701//24443 +f 25697//24439 25855//24597 25858//24600 25699//24441 +f 25860//24602 25858//24600 25855//24597 25857//24599 +f 25861//24603 25859//24601 25858//24600 25860//24602 +f 25703//24445 25862//24604 25863//24605 25705//24447 +f 25701//24443 25859//24601 25862//24604 25703//24445 +f 25864//24606 25862//24604 25859//24601 25861//24603 +f 25865//24607 25863//24605 25862//24604 25864//24606 +f 25707//24449 25866//24608 25867//24609 25709//24451 +f 25705//24447 25863//24605 25866//24608 25707//24449 +f 25868//24610 25866//24608 25863//24605 25865//24607 +f 25869//24611 25867//24609 25866//24608 25868//24610 +f 25711//24453 25870//24612 25871//24613 25713//24455 +f 25709//24451 25867//24609 25870//24612 25711//24453 +f 25872//24614 25870//24612 25867//24609 25869//24611 +f 25873//24615 25871//24613 25870//24612 25872//24614 +f 25715//24457 25874//24616 25875//24617 25717//24459 +f 25713//24455 25871//24613 25874//24616 25715//24457 +f 25876//24618 25874//24616 25871//24613 25873//24615 +f 25877//24619 25875//24617 25874//24616 25876//24618 +f 25719//24461 25878//24620 25879//24621 25721//24463 +f 25717//24459 25875//24617 25878//24620 25719//24461 +f 25880//24622 25878//24620 25875//24617 25877//24619 +f 25881//24623 25879//24621 25878//24620 25880//24622 +f 25723//24465 25882//24624 25883//24625 25725//24467 +f 25721//24463 25879//24621 25882//24624 25723//24465 +f 25884//24626 25882//24624 25879//24621 25881//24623 +f 25885//24627 25883//24625 25882//24624 25884//24626 +f 25727//24469 25886//24628 25887//24629 25729//24471 +f 25725//24467 25883//24625 25886//24628 25727//24469 +f 25888//24630 25886//24628 25883//24625 25885//24627 +f 25889//24631 25887//24629 25886//24628 25888//24630 +f 25731//24473 25890//24632 25891//24633 25733//24475 +f 25729//24471 25887//24629 25890//24632 25731//24473 +f 25892//24634 25890//24632 25887//24629 25889//24631 +f 25893//24635 25891//24633 25890//24632 25892//24634 +f 25735//24477 25894//24636 25895//24637 25737//24479 +f 25733//24475 25891//24633 25894//24636 25735//24477 +f 25896//24638 25894//24636 25891//24633 25893//24635 +f 25897//24639 25895//24637 25894//24636 25896//24638 +f 25739//24481 25898//24640 25899//24641 25741//24483 +f 25737//24479 25895//24637 25898//24640 25739//24481 +f 25900//24642 25898//24640 25895//24637 25897//24639 +f 25901//24643 25899//24641 25898//24640 25900//24642 +f 25743//24485 25902//24644 25903//24645 25745//24487 +f 25741//24483 25899//24641 25902//24644 25743//24485 +f 25904//24646 25902//24644 25899//24641 25901//24643 +f 25905//24647 25903//24645 25902//24644 25904//24646 +f 25747//24489 25906//24648 25750//24492 25590//24332 +f 25745//24487 25903//24645 25906//24648 25747//24489 +f 25907//24649 25906//24648 25903//24645 25905//24647 +f 25752//24494 25750//24492 25906//24648 25907//24649 +f 25751//24493 25908//24650 25909//24651 25753//24495 +f 25752//24494 25910//24652 25908//24650 25751//24493 +f 25911//24653 25908//24650 25910//24652 25912//24654 +f 25913//24655 25909//24651 25908//24650 25911//24653 +f 25756//24498 25914//24656 25915//24657 25757//24499 +f 25753//24495 25909//24651 25914//24656 25756//24498 +f 25916//24658 25914//24656 25909//24651 25913//24655 +f 25917//24659 25915//24657 25914//24656 25916//24658 +f 25760//24502 25918//24660 25919//24661 25761//24503 +f 25757//24499 25915//24657 25918//24660 25760//24502 +f 25920//24662 25918//24660 25915//24657 25917//24659 +f 25921//24663 25919//24661 25918//24660 25920//24662 +f 25764//24506 25922//24664 25923//24665 25765//24507 +f 25761//24503 25919//24661 25922//24664 25764//24506 +f 25924//24666 25922//24664 25919//24661 25921//24663 +f 25925//24667 25923//24665 25922//24664 25924//24666 +f 25768//24510 25926//24668 25927//24669 25769//24511 +f 25765//24507 25923//24665 25926//24668 25768//24510 +f 25928//24670 25926//24668 25923//24665 25925//24667 +f 25929//24671 25927//24669 25926//24668 25928//24670 +f 25772//24514 25930//24672 25931//24673 25773//24515 +f 25769//24511 25927//24669 25930//24672 25772//24514 +f 25932//24674 25930//24672 25927//24669 25929//24671 +f 25933//24675 25931//24673 25930//24672 25932//24674 +f 25776//24518 25934//24676 25935//24677 25777//24519 +f 25773//24515 25931//24673 25934//24676 25776//24518 +f 25936//24678 25934//24676 25931//24673 25933//24675 +f 25937//24679 25935//24677 25934//24676 25936//24678 +f 25780//24522 25938//24680 25939//24681 25781//24523 +f 25777//24519 25935//24677 25938//24680 25780//24522 +f 25940//24682 25938//24680 25935//24677 25937//24679 +f 25941//24683 25939//24681 25938//24680 25940//24682 +f 25784//24526 25942//24684 25943//24685 25785//24527 +f 25781//24523 25939//24681 25942//24684 25784//24526 +f 25944//24686 25942//24684 25939//24681 25941//24683 +f 25945//24687 25943//24685 25942//24684 25944//24686 +f 25788//24530 25946//24688 25947//24689 25789//24531 +f 25785//24527 25943//24685 25946//24688 25788//24530 +f 25948//24690 25946//24688 25943//24685 25945//24687 +f 25949//24691 25947//24689 25946//24688 25948//24690 +f 25792//24534 25950//24692 25951//24693 25793//24535 +f 25789//24531 25947//24689 25950//24692 25792//24534 +f 25952//24694 25950//24692 25947//24689 25949//24691 +f 25953//24695 25951//24693 25950//24692 25952//24694 +f 25796//24538 25954//24696 25955//24697 25797//24539 +f 25793//24535 25951//24693 25954//24696 25796//24538 +f 25956//24698 25954//24696 25951//24693 25953//24695 +f 25957//24699 25955//24697 25954//24696 25956//24698 +f 25800//24542 25958//24700 25959//24701 25801//24543 +f 25797//24539 25955//24697 25958//24700 25800//24542 +f 25960//24702 25958//24700 25955//24697 25957//24699 +f 25961//24703 25959//24701 25958//24700 25960//24702 +f 25804//24546 25962//24704 25963//24705 25805//24547 +f 25801//24543 25959//24701 25962//24704 25804//24546 +f 25964//24706 25962//24704 25959//24701 25961//24703 +f 25965//24707 25963//24705 25962//24704 25964//24706 +f 25808//24550 25966//24708 25967//24709 25809//24551 +f 25805//24547 25963//24705 25966//24708 25808//24550 +f 25968//24710 25966//24708 25963//24705 25965//24707 +f 25969//24711 25967//24709 25966//24708 25968//24710 +f 25812//24554 25970//24712 25971//24713 25813//24555 +f 25809//24551 25967//24709 25970//24712 25812//24554 +f 25972//24714 25970//24712 25967//24709 25969//24711 +f 25973//24715 25971//24713 25970//24712 25972//24714 +f 25816//24558 25974//24716 25975//24717 25817//24559 +f 25813//24555 25971//24713 25974//24716 25816//24558 +f 25976//24718 25974//24716 25971//24713 25973//24715 +f 25977//24719 25975//24717 25974//24716 25976//24718 +f 25820//24562 25978//24720 25979//24721 25821//24563 +f 25817//24559 25975//24717 25978//24720 25820//24562 +f 25980//24722 25978//24720 25975//24717 25977//24719 +f 25981//24723 25979//24721 25978//24720 25980//24722 +f 25824//24566 25982//24724 25983//24725 25825//24567 +f 25821//24563 25979//24721 25982//24724 25824//24566 +f 25984//24726 25982//24724 25979//24721 25981//24723 +f 25985//24727 25983//24725 25982//24724 25984//24726 +f 25828//24570 25986//24728 25987//24729 25829//24571 +f 25825//24567 25983//24725 25986//24728 25828//24570 +f 25988//24730 25986//24728 25983//24725 25985//24727 +f 25989//24731 25987//24729 25986//24728 25988//24730 +f 25832//24574 25990//24732 25991//24733 25833//24575 +f 25829//24571 25987//24729 25990//24732 25832//24574 +f 25992//24734 25990//24732 25987//24729 25989//24731 +f 25993//24735 25991//24733 25990//24732 25992//24734 +f 25836//24578 25994//24736 25995//24737 25837//24579 +f 25833//24575 25991//24733 25994//24736 25836//24578 +f 25996//24738 25994//24736 25991//24733 25993//24735 +f 25997//24739 25995//24737 25994//24736 25996//24738 +f 25840//24582 25998//24740 25999//24741 25841//24583 +f 25837//24579 25995//24737 25998//24740 25840//24582 +f 26000//24742 25998//24740 25995//24737 25997//24739 +f 26001//24743 25999//24741 25998//24740 26000//24742 +f 25844//24586 26002//24744 26003//24745 25845//24587 +f 25841//24583 25999//24741 26002//24744 25844//24586 +f 26004//24746 26002//24744 25999//24741 26001//24743 +f 26005//24747 26003//24745 26002//24744 26004//24746 +f 25848//24590 26006//24748 26007//24749 25849//24591 +f 25845//24587 26003//24745 26006//24748 25848//24590 +f 26008//24750 26006//24748 26003//24745 26005//24747 +f 26009//24751 26007//24749 26006//24748 26008//24750 +f 25852//24594 26010//24752 26011//24753 25853//24595 +f 25849//24591 26007//24749 26010//24752 25852//24594 +f 26012//24754 26010//24752 26007//24749 26009//24751 +f 26013//24755 26011//24753 26010//24752 26012//24754 +f 25856//24598 26014//24756 26015//24757 25857//24599 +f 25853//24595 26011//24753 26014//24756 25856//24598 +f 26016//24758 26014//24756 26011//24753 26013//24755 +f 26017//24759 26015//24757 26014//24756 26016//24758 +f 25860//24602 26018//24760 26019//24761 25861//24603 +f 25857//24599 26015//24757 26018//24760 25860//24602 +f 26020//24762 26018//24760 26015//24757 26017//24759 +f 26021//24763 26019//24761 26018//24760 26020//24762 +f 25864//24606 26022//24764 26023//24765 25865//24607 +f 25861//24603 26019//24761 26022//24764 25864//24606 +f 26024//24766 26022//24764 26019//24761 26021//24763 +f 26025//24767 26023//24765 26022//24764 26024//24766 +f 25868//24610 26026//24768 26027//24769 25869//24611 +f 25865//24607 26023//24765 26026//24768 25868//24610 +f 26028//24770 26026//24768 26023//24765 26025//24767 +f 26029//24771 26027//24769 26026//24768 26028//24770 +f 25872//24614 26030//24772 26031//24773 25873//24615 +f 25869//24611 26027//24769 26030//24772 25872//24614 +f 26032//24774 26030//24772 26027//24769 26029//24771 +f 26033//24775 26031//24773 26030//24772 26032//24774 +f 25876//24618 26034//24776 26035//24777 25877//24619 +f 25873//24615 26031//24773 26034//24776 25876//24618 +f 26036//24778 26034//24776 26031//24773 26033//24775 +f 26037//24779 26035//24777 26034//24776 26036//24778 +f 25880//24622 26038//24780 26039//24781 25881//24623 +f 25877//24619 26035//24777 26038//24780 25880//24622 +f 26040//24782 26038//24780 26035//24777 26037//24779 +f 26041//24783 26039//24781 26038//24780 26040//24782 +f 25884//24626 26042//24784 26043//24785 25885//24627 +f 25881//24623 26039//24781 26042//24784 25884//24626 +f 26044//24786 26042//24784 26039//24781 26041//24783 +f 26045//24787 26043//24785 26042//24784 26044//24786 +f 25888//24630 26046//24788 26047//24789 25889//24631 +f 25885//24627 26043//24785 26046//24788 25888//24630 +f 26048//24790 26046//24788 26043//24785 26045//24787 +f 26049//24791 26047//24789 26046//24788 26048//24790 +f 25892//24634 26050//24792 26051//24793 25893//24635 +f 25889//24631 26047//24789 26050//24792 25892//24634 +f 26052//24794 26050//24792 26047//24789 26049//24791 +f 26053//24795 26051//24793 26050//24792 26052//24794 +f 25896//24638 26054//24796 26055//24797 25897//24639 +f 25893//24635 26051//24793 26054//24796 25896//24638 +f 26056//24798 26054//24796 26051//24793 26053//24795 +f 26057//24799 26055//24797 26054//24796 26056//24798 +f 25900//24642 26058//24800 26059//24801 25901//24643 +f 25897//24639 26055//24797 26058//24800 25900//24642 +f 26060//24802 26058//24800 26055//24797 26057//24799 +f 26061//24803 26059//24801 26058//24800 26060//24802 +f 25904//24646 26062//24804 26063//24805 25905//24647 +f 25901//24643 26059//24801 26062//24804 25904//24646 +f 26064//24806 26062//24804 26059//24801 26061//24803 +f 26065//24807 26063//24805 26062//24804 26064//24806 +f 25907//24649 26066//24808 25910//24652 25752//24494 +f 25905//24647 26063//24805 26066//24808 25907//24649 +f 26067//24809 26066//24808 26063//24805 26065//24807 +f 25912//24654 25910//24652 26066//24808 26067//24809 +f 25911//24653 26068//24810 26069//24811 25913//24655 +f 25912//24654 26070//24812 26068//24810 25911//24653 +f 26071//24813 26068//24810 26070//24812 26072//24814 +f 26073//24815 26069//24811 26068//24810 26071//24813 +f 25916//24658 26074//24816 26075//24817 25917//24659 +f 25913//24655 26069//24811 26074//24816 25916//24658 +f 26076//24818 26074//24816 26069//24811 26073//24815 +f 26077//24819 26075//24817 26074//24816 26076//24818 +f 25920//24662 26078//24820 26079//24821 25921//24663 +f 25917//24659 26075//24817 26078//24820 25920//24662 +f 26080//24822 26078//24820 26075//24817 26077//24819 +f 26081//24823 26079//24821 26078//24820 26080//24822 +f 25924//24666 26082//24824 26083//24825 25925//24667 +f 25921//24663 26079//24821 26082//24824 25924//24666 +f 26084//24826 26082//24824 26079//24821 26081//24823 +f 26085//24827 26083//24825 26082//24824 26084//24826 +f 25928//24670 26086//24828 26087//24829 25929//24671 +f 25925//24667 26083//24825 26086//24828 25928//24670 +f 26088//24830 26086//24828 26083//24825 26085//24827 +f 26089//24831 26087//24829 26086//24828 26088//24830 +f 25932//24674 26090//24832 26091//24833 25933//24675 +f 25929//24671 26087//24829 26090//24832 25932//24674 +f 26092//24834 26090//24832 26087//24829 26089//24831 +f 26093//24835 26091//24833 26090//24832 26092//24834 +f 25936//24678 26094//24836 26095//24837 25937//24679 +f 25933//24675 26091//24833 26094//24836 25936//24678 +f 26096//24838 26094//24836 26091//24833 26093//24835 +f 26097//24839 26095//24837 26094//24836 26096//24838 +f 25940//24682 26098//24840 26099//24841 25941//24683 +f 25937//24679 26095//24837 26098//24840 25940//24682 +f 26100//24842 26098//24840 26095//24837 26097//24839 +f 26101//24843 26099//24841 26098//24840 26100//24842 +f 25944//24686 26102//24844 26103//24845 25945//24687 +f 25941//24683 26099//24841 26102//24844 25944//24686 +f 26104//24846 26102//24844 26099//24841 26101//24843 +f 26105//24847 26103//24845 26102//24844 26104//24846 +f 25948//24690 26106//24848 26107//24849 25949//24691 +f 25945//24687 26103//24845 26106//24848 25948//24690 +f 26108//24850 26106//24848 26103//24845 26105//24847 +f 26109//24851 26107//24849 26106//24848 26108//24850 +f 25952//24694 26110//24852 26111//24853 25953//24695 +f 25949//24691 26107//24849 26110//24852 25952//24694 +f 26112//24854 26110//24852 26107//24849 26109//24851 +f 26113//24855 26111//24853 26110//24852 26112//24854 +f 25956//24698 26114//24856 26115//24857 25957//24699 +f 25953//24695 26111//24853 26114//24856 25956//24698 +f 26116//24858 26114//24856 26111//24853 26113//24855 +f 26117//24859 26115//24857 26114//24856 26116//24858 +f 25960//24702 26118//24860 26119//24861 25961//24703 +f 25957//24699 26115//24857 26118//24860 25960//24702 +f 26120//24862 26118//24860 26115//24857 26117//24859 +f 26121//24863 26119//24861 26118//24860 26120//24862 +f 25964//24706 26122//24864 26123//24865 25965//24707 +f 25961//24703 26119//24861 26122//24864 25964//24706 +f 26124//24866 26122//24864 26119//24861 26121//24863 +f 26125//24867 26123//24865 26122//24864 26124//24866 +f 25968//24710 26126//24868 26127//24869 25969//24711 +f 25965//24707 26123//24865 26126//24868 25968//24710 +f 26128//24870 26126//24868 26123//24865 26125//24867 +f 26129//24871 26127//24869 26126//24868 26128//24870 +f 25972//24714 26130//24872 26131//24873 25973//24715 +f 25969//24711 26127//24869 26130//24872 25972//24714 +f 26132//24874 26130//24872 26127//24869 26129//24871 +f 26133//24875 26131//24873 26130//24872 26132//24874 +f 25976//24718 26134//24876 26135//24877 25977//24719 +f 25973//24715 26131//24873 26134//24876 25976//24718 +f 26136//24878 26134//24876 26131//24873 26133//24875 +f 26137//24879 26135//24877 26134//24876 26136//24878 +f 25980//24722 26138//24880 26139//24881 25981//24723 +f 25977//24719 26135//24877 26138//24880 25980//24722 +f 26140//24882 26138//24880 26135//24877 26137//24879 +f 26141//24883 26139//24881 26138//24880 26140//24882 +f 25984//24726 26142//24884 26143//24885 25985//24727 +f 25981//24723 26139//24881 26142//24884 25984//24726 +f 26144//24886 26142//24884 26139//24881 26141//24883 +f 26145//24887 26143//24885 26142//24884 26144//24886 +f 25988//24730 26146//24888 26147//24889 25989//24731 +f 25985//24727 26143//24885 26146//24888 25988//24730 +f 26148//24890 26146//24888 26143//24885 26145//24887 +f 26149//24891 26147//24889 26146//24888 26148//24890 +f 25992//24734 26150//24892 26151//24893 25993//24735 +f 25989//24731 26147//24889 26150//24892 25992//24734 +f 26152//24894 26150//24892 26147//24889 26149//24891 +f 26153//24895 26151//24893 26150//24892 26152//24894 +f 25996//24738 26154//24896 26155//24897 25997//24739 +f 25993//24735 26151//24893 26154//24896 25996//24738 +f 26156//24898 26154//24896 26151//24893 26153//24895 +f 26157//24899 26155//24897 26154//24896 26156//24898 +f 26000//24742 26158//24900 26159//24901 26001//24743 +f 25997//24739 26155//24897 26158//24900 26000//24742 +f 26160//24902 26158//24900 26155//24897 26157//24899 +f 26161//24903 26159//24901 26158//24900 26160//24902 +f 26004//24746 26162//24904 26163//24905 26005//24747 +f 26001//24743 26159//24901 26162//24904 26004//24746 +f 26164//24906 26162//24904 26159//24901 26161//24903 +f 26165//24907 26163//24905 26162//24904 26164//24906 +f 26008//24750 26166//24908 26167//24909 26009//24751 +f 26005//24747 26163//24905 26166//24908 26008//24750 +f 26168//24910 26166//24908 26163//24905 26165//24907 +f 26169//24911 26167//24909 26166//24908 26168//24910 +f 26012//24754 26170//24912 26171//24913 26013//24755 +f 26009//24751 26167//24909 26170//24912 26012//24754 +f 26172//24914 26170//24912 26167//24909 26169//24911 +f 26173//24915 26171//24913 26170//24912 26172//24914 +f 26016//24758 26174//24916 26175//24917 26017//24759 +f 26013//24755 26171//24913 26174//24916 26016//24758 +f 26176//24918 26174//24916 26171//24913 26173//24915 +f 26177//24919 26175//24917 26174//24916 26176//24918 +f 26020//24762 26178//24920 26179//24921 26021//24763 +f 26017//24759 26175//24917 26178//24920 26020//24762 +f 26180//24922 26178//24920 26175//24917 26177//24919 +f 26181//24923 26179//24921 26178//24920 26180//24922 +f 26024//24766 26182//24924 26183//24925 26025//24767 +f 26021//24763 26179//24921 26182//24924 26024//24766 +f 26184//24926 26182//24924 26179//24921 26181//24923 +f 26185//24927 26183//24925 26182//24924 26184//24926 +f 26028//24770 26186//24928 26187//24929 26029//24771 +f 26025//24767 26183//24925 26186//24928 26028//24770 +f 26188//24930 26186//24928 26183//24925 26185//24927 +f 26189//24931 26187//24929 26186//24928 26188//24930 +f 26032//24774 26190//24932 26191//24933 26033//24775 +f 26029//24771 26187//24929 26190//24932 26032//24774 +f 26192//24934 26190//24932 26187//24929 26189//24931 +f 26193//24935 26191//24933 26190//24932 26192//24934 +f 26036//24778 26194//24936 26195//24937 26037//24779 +f 26033//24775 26191//24933 26194//24936 26036//24778 +f 26196//24938 26194//24936 26191//24933 26193//24935 +f 26197//24939 26195//24937 26194//24936 26196//24938 +f 26040//24782 26198//24940 26199//24941 26041//24783 +f 26037//24779 26195//24937 26198//24940 26040//24782 +f 26200//24942 26198//24940 26195//24937 26197//24939 +f 26201//24943 26199//24941 26198//24940 26200//24942 +f 26044//24786 26202//24944 26203//24945 26045//24787 +f 26041//24783 26199//24941 26202//24944 26044//24786 +f 26204//24946 26202//24944 26199//24941 26201//24943 +f 26205//24947 26203//24945 26202//24944 26204//24946 +f 26048//24790 26206//24948 26207//24949 26049//24791 +f 26045//24787 26203//24945 26206//24948 26048//24790 +f 26208//24950 26206//24948 26203//24945 26205//24947 +f 26209//24951 26207//24949 26206//24948 26208//24950 +f 26052//24794 26210//24952 26211//24953 26053//24795 +f 26049//24791 26207//24949 26210//24952 26052//24794 +f 26212//24954 26210//24952 26207//24949 26209//24951 +f 26213//24955 26211//24953 26210//24952 26212//24954 +f 26056//24798 26214//24956 26215//24957 26057//24799 +f 26053//24795 26211//24953 26214//24956 26056//24798 +f 26216//24958 26214//24956 26211//24953 26213//24955 +f 26217//24959 26215//24957 26214//24956 26216//24958 +f 26060//24802 26218//24960 26219//24961 26061//24803 +f 26057//24799 26215//24957 26218//24960 26060//24802 +f 26220//24962 26218//24960 26215//24957 26217//24959 +f 26221//24963 26219//24961 26218//24960 26220//24962 +f 26064//24806 26222//24964 26223//24965 26065//24807 +f 26061//24803 26219//24961 26222//24964 26064//24806 +f 26224//24966 26222//24964 26219//24961 26221//24963 +f 26225//24967 26223//24965 26222//24964 26224//24966 +f 26067//24809 26226//24968 26070//24812 25912//24654 +f 26065//24807 26223//24965 26226//24968 26067//24809 +f 26227//24969 26226//24968 26223//24965 26225//24967 +f 26072//24814 26070//24812 26226//24968 26227//24969 +f 24386//23128 26228//24970 26229//24971 24388//23130 +f 24387//23129 26230//24972 26228//24970 24386//23128 +f 26231//24973 26228//24970 26230//24972 26232//24974 +f 26233//24975 26229//24971 26228//24970 26231//24973 +f 24391//23133 26234//24976 26230//24972 24387//23129 +f 24392//23134 26235//24977 26234//24976 24391//23133 +f 26236//24978 26234//24976 26235//24977 26237//24979 +f 26232//24974 26230//24972 26234//24976 26236//24978 +f 24395//23137 26238//24980 26235//24977 24392//23134 +f 24396//23138 26239//24981 26238//24980 24395//23137 +f 26240//24982 26238//24980 26239//24981 26241//24983 +f 26237//24979 26235//24977 26238//24980 26240//24982 +f 24399//23141 26242//24984 26239//24981 24396//23138 +f 24400//23142 26243//24985 26242//24984 24399//23141 +f 26244//24986 26242//24984 26243//24985 26245//24987 +f 26241//24983 26239//24981 26242//24984 26244//24986 +f 24403//23145 26246//24988 26243//24985 24400//23142 +f 24404//23146 26247//24989 26246//24988 24403//23145 +f 26248//24990 26246//24988 26247//24989 26249//24991 +f 26245//24987 26243//24985 26246//24988 26248//24990 +f 24407//23149 26250//24992 26247//24989 24404//23146 +f 24408//23150 26251//24993 26250//24992 24407//23149 +f 26252//24994 26250//24992 26251//24993 26253//24995 +f 26249//24991 26247//24989 26250//24992 26252//24994 +f 24411//23153 26254//24996 26251//24993 24408//23150 +f 24412//23154 26255//24997 26254//24996 24411//23153 +f 26256//24998 26254//24996 26255//24997 26257//24999 +f 26253//24995 26251//24993 26254//24996 26256//24998 +f 24415//23157 26258//25000 26255//24997 24412//23154 +f 24416//23158 26259//25001 26258//25000 24415//23157 +f 26260//25002 26258//25000 26259//25001 26261//25003 +f 26257//24999 26255//24997 26258//25000 26260//25002 +f 24419//23161 26262//25004 26259//25001 24416//23158 +f 24420//23162 26263//25005 26262//25004 24419//23161 +f 26264//25006 26262//25004 26263//25005 26265//25007 +f 26261//25003 26259//25001 26262//25004 26264//25006 +f 24423//23165 26266//25008 26263//25005 24420//23162 +f 24424//23166 26267//25009 26266//25008 24423//23165 +f 26268//25010 26266//25008 26267//25009 26269//25011 +f 26265//25007 26263//25005 26266//25008 26268//25010 +f 24427//23169 26270//25012 26267//25009 24424//23166 +f 24428//23170 26271//25013 26270//25012 24427//23169 +f 26272//25014 26270//25012 26271//25013 26273//25015 +f 26269//25011 26267//25009 26270//25012 26272//25014 +f 24431//23173 26274//25016 26271//25013 24428//23170 +f 24432//23174 26275//25017 26274//25016 24431//23173 +f 26276//25018 26274//25016 26275//25017 26277//25019 +f 26273//25015 26271//25013 26274//25016 26276//25018 +f 24435//23177 26278//25020 26275//25017 24432//23174 +f 24436//23178 26279//25021 26278//25020 24435//23177 +f 26280//25022 26278//25020 26279//25021 26281//25023 +f 26277//25019 26275//25017 26278//25020 26280//25022 +f 24439//23181 26282//25024 26279//25021 24436//23178 +f 24440//23182 26283//25025 26282//25024 24439//23181 +f 26284//25026 26282//25024 26283//25025 26285//25027 +f 26281//25023 26279//25021 26282//25024 26284//25026 +f 24443//23185 26286//25028 26283//25025 24440//23182 +f 24444//23186 26287//25029 26286//25028 24443//23185 +f 26288//25030 26286//25028 26287//25029 26289//25031 +f 26285//25027 26283//25025 26286//25028 26288//25030 +f 24447//23189 26290//25032 26287//25029 24444//23186 +f 24448//23190 26291//25033 26290//25032 24447//23189 +f 26292//25034 26290//25032 26291//25033 26293//25035 +f 26289//25031 26287//25029 26290//25032 26292//25034 +f 24451//23193 26294//25036 26291//25033 24448//23190 +f 24452//23194 26295//25037 26294//25036 24451//23193 +f 26296//25038 26294//25036 26295//25037 26297//25039 +f 26293//25035 26291//25033 26294//25036 26296//25038 +f 24455//23197 26298//25040 26295//25037 24452//23194 +f 24456//23198 26299//25041 26298//25040 24455//23197 +f 26300//25042 26298//25040 26299//25041 26301//25043 +f 26297//25039 26295//25037 26298//25040 26300//25042 +f 24459//23201 26302//25044 26299//25041 24456//23198 +f 24460//23202 26303//25045 26302//25044 24459//23201 +f 26304//25046 26302//25044 26303//25045 26305//25047 +f 26301//25043 26299//25041 26302//25044 26304//25046 +f 24463//23205 26306//25048 26303//25045 24460//23202 +f 24464//23206 26307//25049 26306//25048 24463//23205 +f 26308//25050 26306//25048 26307//25049 26309//25051 +f 26305//25047 26303//25045 26306//25048 26308//25050 +f 26310//25052 26311//25053 26312//25054 26313//25055 +f 26314//25056 26315//25057 26311//25053 26310//25052 +f 26316//25058 26311//25053 26315//25057 26317//25059 +f 26318//25060 26312//25054 26311//25053 26316//25058 +f 26319//25061 26320//25062 26315//25057 26314//25056 +f 26321//25063 26322//25064 26320//25062 26319//25061 +f 26323//25065 26320//25062 26322//25064 26324//25066 +f 26317//25059 26315//25057 26320//25062 26323//25065 +f 26325//25067 26326//25068 26322//25064 26321//25063 +f 26327//25069 26328//25070 26326//25068 26325//25067 +f 26329//25071 26326//25068 26328//25070 26330//25072 +f 26324//25066 26322//25064 26326//25068 26329//25071 +f 26331//25073 26332//25074 26328//25070 26327//25069 +f 26333//25075 26334//25076 26332//25074 26331//25073 +f 26335//25077 26332//25074 26334//25076 26336//25078 +f 26330//25072 26328//25070 26332//25074 26335//25077 +f 26337//25079 26338//25080 26334//25076 26333//25075 +f 26339//25081 26340//25082 26338//25080 26337//25079 +f 26341//25083 26338//25080 26340//25082 26342//25084 +f 26336//25078 26334//25076 26338//25080 26341//25083 +f 26343//25085 26344//25086 26340//25082 26339//25081 +f 26345//25087 26346//25088 26344//25086 26343//25085 +f 26347//25089 26344//25086 26346//25088 26348//25090 +f 26342//25084 26340//25082 26344//25086 26347//25089 +f 26349//25091 26350//25092 26346//25088 26345//25087 +f 26351//25093 26352//25094 26350//25092 26349//25091 +f 26353//25095 26350//25092 26352//25094 26354//25096 +f 26348//25090 26346//25088 26350//25092 26353//25095 +f 26355//25097 26356//25098 26352//25094 26351//25093 +f 26357//25099 26358//25100 26356//25098 26355//25097 +f 26359//25101 26356//25098 26358//25100 26360//25102 +f 26354//25096 26352//25094 26356//25098 26359//25101 +f 26361//25103 26362//25104 26358//25100 26357//25099 +f 26363//25105 26364//25106 26362//25104 26361//25103 +f 26365//25107 26362//25104 26364//25106 26366//25108 +f 26360//25102 26358//25100 26362//25104 26365//25107 +f 26367//25109 26368//25110 26364//25106 26363//25105 +f 26369//25111 26370//25112 26368//25110 26367//25109 +f 26371//25113 26368//25110 26370//25112 26372//25114 +f 26366//25108 26364//25106 26368//25110 26371//25113 +f 26373//25115 26374//25116 26370//25112 26369//25111 +f 26375//25117 26376//25118 26374//25116 26373//25115 +f 26377//25119 26374//25116 26376//25118 26378//25120 +f 26372//25114 26370//25112 26374//25116 26377//25119 +f 26379//25121 26380//25122 26376//25118 26375//25117 +f 26381//25123 26382//25124 26380//25122 26379//25121 +f 26383//25125 26380//25122 26382//25124 26384//25126 +f 26378//25120 26376//25118 26380//25122 26383//25125 +f 26385//25127 26386//25128 26382//25124 26381//25123 +f 26387//25129 26388//25130 26386//25128 26385//25127 +f 26389//25131 26386//25128 26388//25130 26390//25132 +f 26384//25126 26382//25124 26386//25128 26389//25131 +f 26391//25133 26392//25134 26388//25130 26387//25129 +f 26393//25135 26394//25136 26392//25134 26391//25133 +f 26395//25137 26392//25134 26394//25136 26396//25138 +f 26390//25132 26388//25130 26392//25134 26395//25137 +f 26397//25139 26398//25140 26394//25136 26393//25135 +f 26399//25141 26400//25142 26398//25140 26397//25139 +f 26401//25143 26398//25140 26400//25142 26402//25144 +f 26396//25138 26394//25136 26398//25140 26401//25143 +f 26403//25145 26404//25146 26400//25142 26399//25141 +f 26405//25147 26406//25148 26404//25146 26403//25145 +f 26407//25149 26404//25146 26406//25148 26408//25150 +f 26402//25144 26400//25142 26404//25146 26407//25149 +f 26409//25151 26410//25152 26406//25148 26405//25147 +f 26411//25153 26412//25154 26410//25152 26409//25151 +f 26413//25155 26410//25152 26412//25154 26414//25156 +f 26408//25150 26406//25148 26410//25152 26413//25155 +f 26415//25157 26416//25158 26412//25154 26411//25153 +f 26417//25159 26418//25160 26416//25158 26415//25157 +f 26419//25161 26416//25158 26418//25160 26420//25162 +f 26414//25156 26412//25154 26416//25158 26419//25161 +f 26421//25163 26422//25164 26418//25160 26417//25159 +f 26423//25165 26424//25166 26422//25164 26421//25163 +f 26425//25167 26422//25164 26424//25166 26426//25168 +f 26420//25162 26418//25160 26422//25164 26425//25167 +f 26427//25169 26428//25170 26424//25166 26423//25165 +f 26429//25171 26430//25172 26428//25170 26427//25169 +f 26431//25173 26428//25170 26430//25172 26432//25174 +f 26426//25168 26424//25166 26428//25170 26431//25173 +f 26433//25175 26434//25176 26435//25177 26436//25178 +f 26437//25179 26438//25180 26434//25176 26433//25175 +f 26439//25181 26434//25176 26438//25180 26440//25182 +f 26441//25183 26435//25177 26434//25176 26439//25181 +f 26442//25184 26443//25185 26444//25186 26445//25187 +f 26446//25188 26447//25189 26443//25185 26442//25184 +f 26433//25175 26443//25185 26447//25189 26437//25179 +f 26436//25178 26444//25186 26443//25185 26433//25175 +f 26448//25190 26449//25191 26450//25192 26451//25193 +f 26452//25194 26453//25195 26449//25191 26448//25190 +f 26442//25184 26449//25191 26453//25195 26446//25188 +f 26445//25187 26450//25192 26449//25191 26442//25184 +f 26454//25196 26455//25197 26456//25198 26457//25199 +f 26458//25200 26459//25201 26455//25197 26454//25196 +f 26448//25190 26455//25197 26459//25201 26452//25194 +f 26451//25193 26456//25198 26455//25197 26448//25190 +f 26460//25202 26461//25203 26462//25204 26463//25205 +f 26464//25206 26465//25207 26461//25203 26460//25202 +f 26454//25196 26461//25203 26465//25207 26458//25200 +f 26457//25199 26462//25204 26461//25203 26454//25196 +f 26466//25208 26467//25209 26468//25210 26469//25211 +f 26470//25212 26471//25213 26467//25209 26466//25208 +f 26460//25202 26467//25209 26471//25213 26464//25206 +f 26463//25205 26468//25210 26467//25209 26460//25202 +f 26472//25214 26473//25215 26474//25216 26475//25217 +f 26476//25218 26477//25219 26473//25215 26472//25214 +f 26466//25208 26473//25215 26477//25219 26470//25212 +f 26469//25211 26474//25216 26473//25215 26466//25208 +f 26478//25220 26479//25221 26480//25222 26481//25223 +f 26482//25224 26483//25225 26479//25221 26478//25220 +f 26472//25214 26479//25221 26483//25225 26476//25218 +f 26475//25217 26480//25222 26479//25221 26472//25214 +f 26484//25226 26485//25227 26486//25228 26487//25229 +f 26488//25230 26489//25231 26485//25227 26484//25226 +f 26478//25220 26485//25227 26489//25231 26482//25224 +f 26481//25223 26486//25228 26485//25227 26478//25220 +f 26490//25232 26491//25233 26492//25234 26493//25235 +f 26494//25236 26495//25237 26491//25233 26490//25232 +f 26484//25226 26491//25233 26495//25237 26488//25230 +f 26487//25229 26492//25234 26491//25233 26484//25226 +f 26496//25238 26497//25239 26498//25240 26499//25241 +f 26500//25242 26501//25243 26497//25239 26496//25238 +f 26490//25232 26497//25239 26501//25243 26494//25236 +f 26493//25235 26498//25240 26497//25239 26490//25232 +f 26502//25244 26503//25245 26504//25246 26505//25247 +f 26506//25248 26507//25249 26503//25245 26502//25244 +f 26496//25238 26503//25245 26507//25249 26500//25242 +f 26499//25241 26504//25246 26503//25245 26496//25238 +f 26508//25250 26509//25251 26510//25252 26511//25253 +f 26512//25254 26513//25255 26509//25251 26508//25250 +f 26502//25244 26509//25251 26513//25255 26506//25248 +f 26505//25247 26510//25252 26509//25251 26502//25244 +f 26514//25256 26515//25257 26516//25258 26517//25259 +f 26518//25260 26519//25261 26515//25257 26514//25256 +f 26508//25250 26515//25257 26519//25261 26512//25254 +f 26511//25253 26516//25258 26515//25257 26508//25250 +f 26520//25262 26521//25263 26522//25264 26523//25265 +f 26524//25266 26525//25267 26521//25263 26520//25262 +f 26514//25256 26521//25263 26525//25267 26518//25260 +f 26517//25259 26522//25264 26521//25263 26514//25256 +f 26526//25268 26527//25269 26528//25270 26529//25271 +f 26530//25272 26531//25273 26527//25269 26526//25268 +f 26520//25262 26527//25269 26531//25273 26524//25266 +f 26523//25265 26528//25270 26527//25269 26520//25262 +f 26532//25274 26533//25275 26534//25276 26535//25277 +f 26536//25278 26537//25279 26533//25275 26532//25274 +f 26526//25268 26533//25275 26537//25279 26530//25272 +f 26529//25271 26534//25276 26533//25275 26526//25268 +f 26538//25280 26539//25281 26540//25282 26541//25283 +f 26542//25284 26543//25285 26539//25281 26538//25280 +f 26532//25274 26539//25281 26543//25285 26536//25278 +f 26535//25277 26540//25282 26539//25281 26532//25274 +f 26544//25286 26545//25287 26546//25288 26547//25289 +f 26548//25290 26549//25291 26545//25287 26544//25286 +f 26538//25280 26545//25287 26549//25291 26542//25284 +f 26541//25283 26546//25288 26545//25287 26538//25280 +f 26550//25292 26551//25293 26552//25294 26553//25295 +f 26554//25296 26555//25297 26551//25293 26550//25292 +f 26544//25286 26551//25293 26555//25297 26548//25290 +f 26547//25289 26552//25294 26551//25293 26544//25286 +f 26556//25298 26557//25299 26438//25180 26437//25179 +f 26558//25300 26559//25301 26557//25299 26556//25298 +f 26560//25302 26557//25299 26559//25301 26561//25303 +f 26440//25182 26438//25180 26557//25299 26560//25302 +f 26562//25304 26563//25305 26447//25189 26446//25188 +f 26564//25306 26565//25307 26563//25305 26562//25304 +f 26556//25298 26563//25305 26565//25307 26558//25300 +f 26437//25179 26447//25189 26563//25305 26556//25298 +f 26566//25308 26567//25309 26453//25195 26452//25194 +f 26568//25310 26569//25311 26567//25309 26566//25308 +f 26562//25304 26567//25309 26569//25311 26564//25306 +f 26446//25188 26453//25195 26567//25309 26562//25304 +f 26570//25312 26571//25313 26459//25201 26458//25200 +f 26572//25314 26573//25315 26571//25313 26570//25312 +f 26566//25308 26571//25313 26573//25315 26568//25310 +f 26452//25194 26459//25201 26571//25313 26566//25308 +f 26574//25316 26575//25317 26465//25207 26464//25206 +f 26576//25318 26577//25319 26575//25317 26574//25316 +f 26570//25312 26575//25317 26577//25319 26572//25314 +f 26458//25200 26465//25207 26575//25317 26570//25312 +f 26578//25320 26579//25321 26471//25213 26470//25212 +f 26580//25322 26581//25323 26579//25321 26578//25320 +f 26574//25316 26579//25321 26581//25323 26576//25318 +f 26464//25206 26471//25213 26579//25321 26574//25316 +f 26582//25324 26583//25325 26477//25219 26476//25218 +f 26584//25326 26585//25327 26583//25325 26582//25324 +f 26578//25320 26583//25325 26585//25327 26580//25322 +f 26470//25212 26477//25219 26583//25325 26578//25320 +f 26586//25328 26587//25329 26483//25225 26482//25224 +f 26588//25330 26589//25331 26587//25329 26586//25328 +f 26582//25324 26587//25329 26589//25331 26584//25326 +f 26476//25218 26483//25225 26587//25329 26582//25324 +f 26590//25332 26591//25333 26489//25231 26488//25230 +f 26592//25334 26593//25335 26591//25333 26590//25332 +f 26586//25328 26591//25333 26593//25335 26588//25330 +f 26482//25224 26489//25231 26591//25333 26586//25328 +f 26594//25336 26595//25337 26495//25237 26494//25236 +f 26596//25338 26597//25339 26595//25337 26594//25336 +f 26590//25332 26595//25337 26597//25339 26592//25334 +f 26488//25230 26495//25237 26595//25337 26590//25332 +f 26598//25340 26599//25341 26501//25243 26500//25242 +f 26600//25342 26601//25343 26599//25341 26598//25340 +f 26594//25336 26599//25341 26601//25343 26596//25338 +f 26494//25236 26501//25243 26599//25341 26594//25336 +f 26602//25344 26603//25345 26507//25249 26506//25248 +f 26604//25346 26605//25347 26603//25345 26602//25344 +f 26598//25340 26603//25345 26605//25347 26600//25342 +f 26500//25242 26507//25249 26603//25345 26598//25340 +f 26606//25348 26607//25349 26513//25255 26512//25254 +f 26608//25350 26609//25351 26607//25349 26606//25348 +f 26602//25344 26607//25349 26609//25351 26604//25346 +f 26506//25248 26513//25255 26607//25349 26602//25344 +f 26610//25352 26611//25353 26519//25261 26518//25260 +f 26612//25354 26613//25355 26611//25353 26610//25352 +f 26606//25348 26611//25353 26613//25355 26608//25350 +f 26512//25254 26519//25261 26611//25353 26606//25348 +f 26614//25356 26615//25357 26525//25267 26524//25266 +f 26616//25358 26617//25359 26615//25357 26614//25356 +f 26610//25352 26615//25357 26617//25359 26612//25354 +f 26518//25260 26525//25267 26615//25357 26610//25352 +f 26618//25360 26619//25361 26531//25273 26530//25272 +f 26620//25362 26621//25363 26619//25361 26618//25360 +f 26614//25356 26619//25361 26621//25363 26616//25358 +f 26524//25266 26531//25273 26619//25361 26614//25356 +f 26622//25364 26623//25365 26537//25279 26536//25278 +f 26624//25366 26625//25367 26623//25365 26622//25364 +f 26618//25360 26623//25365 26625//25367 26620//25362 +f 26530//25272 26537//25279 26623//25365 26618//25360 +f 26626//25368 26627//25369 26543//25285 26542//25284 +f 26628//25370 26629//25371 26627//25369 26626//25368 +f 26622//25364 26627//25369 26629//25371 26624//25366 +f 26536//25278 26543//25285 26627//25369 26622//25364 +f 26630//25372 26631//25373 26549//25291 26548//25290 +f 26632//25374 26633//25375 26631//25373 26630//25372 +f 26626//25368 26631//25373 26633//25375 26628//25370 +f 26542//25284 26549//25291 26631//25373 26626//25368 +f 26634//25376 26635//25377 26555//25297 26554//25296 +f 26636//25378 26637//25379 26635//25377 26634//25376 +f 26630//25372 26635//25377 26637//25379 26632//25374 +f 26548//25290 26555//25297 26635//25377 26630//25372 +f 26638//25380 26639//25381 26316//25058 26317//25059 +f 26436//25178 26435//25177 26639//25381 26638//25380 +f 26640//25382 26639//25381 26435//25177 26441//25183 +f 26318//25060 26316//25058 26639//25381 26640//25382 +f 26641//25383 26642//25384 26323//25065 26324//25066 +f 26445//25187 26444//25186 26642//25384 26641//25383 +f 26638//25380 26642//25384 26444//25186 26436//25178 +f 26317//25059 26323//25065 26642//25384 26638//25380 +f 26643//25385 26644//25386 26329//25071 26330//25072 +f 26451//25193 26450//25192 26644//25386 26643//25385 +f 26641//25383 26644//25386 26450//25192 26445//25187 +f 26324//25066 26329//25071 26644//25386 26641//25383 +f 26645//25387 26646//25388 26335//25077 26336//25078 +f 26457//25199 26456//25198 26646//25388 26645//25387 +f 26643//25385 26646//25388 26456//25198 26451//25193 +f 26330//25072 26335//25077 26646//25388 26643//25385 +f 26647//25389 26648//25390 26341//25083 26342//25084 +f 26463//25205 26462//25204 26648//25390 26647//25389 +f 26645//25387 26648//25390 26462//25204 26457//25199 +f 26336//25078 26341//25083 26648//25390 26645//25387 +f 26649//25391 26650//25392 26347//25089 26348//25090 +f 26469//25211 26468//25210 26650//25392 26649//25391 +f 26647//25389 26650//25392 26468//25210 26463//25205 +f 26342//25084 26347//25089 26650//25392 26647//25389 +f 26651//25393 26652//25394 26353//25095 26354//25096 +f 26475//25217 26474//25216 26652//25394 26651//25393 +f 26649//25391 26652//25394 26474//25216 26469//25211 +f 26348//25090 26353//25095 26652//25394 26649//25391 +f 26653//25395 26654//25396 26359//25101 26360//25102 +f 26481//25223 26480//25222 26654//25396 26653//25395 +f 26651//25393 26654//25396 26480//25222 26475//25217 +f 26354//25096 26359//25101 26654//25396 26651//25393 +f 26655//25397 26656//25398 26365//25107 26366//25108 +f 26487//25229 26486//25228 26656//25398 26655//25397 +f 26653//25395 26656//25398 26486//25228 26481//25223 +f 26360//25102 26365//25107 26656//25398 26653//25395 +f 26657//25399 26658//25400 26371//25113 26372//25114 +f 26493//25235 26492//25234 26658//25400 26657//25399 +f 26655//25397 26658//25400 26492//25234 26487//25229 +f 26366//25108 26371//25113 26658//25400 26655//25397 +f 26659//25401 26660//25402 26377//25119 26378//25120 +f 26499//25241 26498//25240 26660//25402 26659//25401 +f 26657//25399 26660//25402 26498//25240 26493//25235 +f 26372//25114 26377//25119 26660//25402 26657//25399 +f 26661//25403 26662//25404 26383//25125 26384//25126 +f 26505//25247 26504//25246 26662//25404 26661//25403 +f 26659//25401 26662//25404 26504//25246 26499//25241 +f 26378//25120 26383//25125 26662//25404 26659//25401 +f 26663//25405 26664//25406 26389//25131 26390//25132 +f 26511//25253 26510//25252 26664//25406 26663//25405 +f 26661//25403 26664//25406 26510//25252 26505//25247 +f 26384//25126 26389//25131 26664//25406 26661//25403 +f 26665//25407 26666//25408 26395//25137 26396//25138 +f 26517//25259 26516//25258 26666//25408 26665//25407 +f 26663//25405 26666//25408 26516//25258 26511//25253 +f 26390//25132 26395//25137 26666//25408 26663//25405 +f 26667//25409 26668//25410 26401//25143 26402//25144 +f 26523//25265 26522//25264 26668//25410 26667//25409 +f 26665//25407 26668//25410 26522//25264 26517//25259 +f 26396//25138 26401//25143 26668//25410 26665//25407 +f 26669//25411 26670//25412 26407//25149 26408//25150 +f 26529//25271 26528//25270 26670//25412 26669//25411 +f 26667//25409 26670//25412 26528//25270 26523//25265 +f 26402//25144 26407//25149 26670//25412 26667//25409 +f 26671//25413 26672//25414 26413//25155 26414//25156 +f 26535//25277 26534//25276 26672//25414 26671//25413 +f 26669//25411 26672//25414 26534//25276 26529//25271 +f 26408//25150 26413//25155 26672//25414 26669//25411 +f 26673//25415 26674//25416 26419//25161 26420//25162 +f 26541//25283 26540//25282 26674//25416 26673//25415 +f 26671//25413 26674//25416 26540//25282 26535//25277 +f 26414//25156 26419//25161 26674//25416 26671//25413 +f 26675//25417 26676//25418 26425//25167 26426//25168 +f 26547//25289 26546//25288 26676//25418 26675//25417 +f 26673//25415 26676//25418 26546//25288 26541//25283 +f 26420//25162 26425//25167 26676//25418 26673//25415 +f 26677//25419 26678//25420 26431//25173 26432//25174 +f 26553//25295 26552//25294 26678//25420 26677//25419 +f 26675//25417 26678//25420 26552//25294 26547//25289 +f 26426//25168 26431//25173 26678//25420 26675//25417 +f 26679//25421 26680//25422 26231//24973 26232//24974 +f 26314//25056 26310//25052 26680//25422 26679//25421 +f 26681//25423 26680//25422 26310//25052 26313//25055 +f 26233//24975 26231//24973 26680//25422 26681//25423 +f 26682//25424 26683//25425 26236//24978 26237//24979 +f 26321//25063 26319//25061 26683//25425 26682//25424 +f 26679//25421 26683//25425 26319//25061 26314//25056 +f 26232//24974 26236//24978 26683//25425 26679//25421 +f 26684//25426 26685//25427 26240//24982 26241//24983 +f 26327//25069 26325//25067 26685//25427 26684//25426 +f 26682//25424 26685//25427 26325//25067 26321//25063 +f 26237//24979 26240//24982 26685//25427 26682//25424 +f 26686//25428 26687//25429 26244//24986 26245//24987 +f 26333//25075 26331//25073 26687//25429 26686//25428 +f 26684//25426 26687//25429 26331//25073 26327//25069 +f 26241//24983 26244//24986 26687//25429 26684//25426 +f 26688//25430 26689//25431 26248//24990 26249//24991 +f 26339//25081 26337//25079 26689//25431 26688//25430 +f 26686//25428 26689//25431 26337//25079 26333//25075 +f 26245//24987 26248//24990 26689//25431 26686//25428 +f 26690//25432 26691//25433 26252//24994 26253//24995 +f 26345//25087 26343//25085 26691//25433 26690//25432 +f 26688//25430 26691//25433 26343//25085 26339//25081 +f 26249//24991 26252//24994 26691//25433 26688//25430 +f 26692//25434 26693//25435 26256//24998 26257//24999 +f 26351//25093 26349//25091 26693//25435 26692//25434 +f 26690//25432 26693//25435 26349//25091 26345//25087 +f 26253//24995 26256//24998 26693//25435 26690//25432 +f 26694//25436 26695//25437 26260//25002 26261//25003 +f 26357//25099 26355//25097 26695//25437 26694//25436 +f 26692//25434 26695//25437 26355//25097 26351//25093 +f 26257//24999 26260//25002 26695//25437 26692//25434 +f 26696//25438 26697//25439 26264//25006 26265//25007 +f 26363//25105 26361//25103 26697//25439 26696//25438 +f 26694//25436 26697//25439 26361//25103 26357//25099 +f 26261//25003 26264//25006 26697//25439 26694//25436 +f 26698//25440 26699//25441 26268//25010 26269//25011 +f 26369//25111 26367//25109 26699//25441 26698//25440 +f 26696//25438 26699//25441 26367//25109 26363//25105 +f 26265//25007 26268//25010 26699//25441 26696//25438 +f 26700//25442 26701//25443 26272//25014 26273//25015 +f 26375//25117 26373//25115 26701//25443 26700//25442 +f 26698//25440 26701//25443 26373//25115 26369//25111 +f 26269//25011 26272//25014 26701//25443 26698//25440 +f 26702//25444 26703//25445 26276//25018 26277//25019 +f 26381//25123 26379//25121 26703//25445 26702//25444 +f 26700//25442 26703//25445 26379//25121 26375//25117 +f 26273//25015 26276//25018 26703//25445 26700//25442 +f 26704//25446 26705//25447 26280//25022 26281//25023 +f 26387//25129 26385//25127 26705//25447 26704//25446 +f 26702//25444 26705//25447 26385//25127 26381//25123 +f 26277//25019 26280//25022 26705//25447 26702//25444 +f 26706//25448 26707//25449 26284//25026 26285//25027 +f 26393//25135 26391//25133 26707//25449 26706//25448 +f 26704//25446 26707//25449 26391//25133 26387//25129 +f 26281//25023 26284//25026 26707//25449 26704//25446 +f 26708//25450 26709//25451 26288//25030 26289//25031 +f 26399//25141 26397//25139 26709//25451 26708//25450 +f 26706//25448 26709//25451 26397//25139 26393//25135 +f 26285//25027 26288//25030 26709//25451 26706//25448 +f 26710//25452 26711//25453 26292//25034 26293//25035 +f 26405//25147 26403//25145 26711//25453 26710//25452 +f 26708//25450 26711//25453 26403//25145 26399//25141 +f 26289//25031 26292//25034 26711//25453 26708//25450 +f 26712//25454 26713//25455 26296//25038 26297//25039 +f 26411//25153 26409//25151 26713//25455 26712//25454 +f 26710//25452 26713//25455 26409//25151 26405//25147 +f 26293//25035 26296//25038 26713//25455 26710//25452 +f 26714//25456 26715//25457 26300//25042 26301//25043 +f 26417//25159 26415//25157 26715//25457 26714//25456 +f 26712//25454 26715//25457 26415//25157 26411//25153 +f 26297//25039 26300//25042 26715//25457 26712//25454 +f 26716//25458 26717//25459 26304//25046 26305//25047 +f 26423//25165 26421//25163 26717//25459 26716//25458 +f 26714//25456 26717//25459 26421//25163 26417//25159 +f 26301//25043 26304//25046 26717//25459 26714//25456 +f 26718//25460 26719//25461 26308//25050 26309//25051 +f 26429//25171 26427//25169 26719//25461 26718//25460 +f 26716//25458 26719//25461 26427//25169 26423//25165 +f 26305//25047 26308//25050 26719//25461 26716//25458 +f 23502//22243 25131//23873 26720//25462 23501//22242 +f 25131//23873 24471//23213 24470//23212 26720//25462 +f 24469//23211 26721//25463 26720//25462 24470//23212 +f 26721//25463 23458//22199 23501//22242 26720//25462 +f 23458//22199 26721//25463 26722//25464 23457//22198 +f 26721//25463 24469//23211 25116//23858 26722//25464 +f 25118//23860 26723//25465 26722//25464 25116//23858 +f 26723//25465 23414//22155 23457//22198 26722//25464 +f 23414//22155 26723//25465 26724//25466 23413//22154 +f 26723//25465 25118//23860 25120//23862 26724//25466 +f 25122//23864 26725//25467 26724//25466 25120//23862 +f 26725//25467 23369//22110 23413//22154 26724//25466 +f 26725//25467 26726//25468 23370//22111 23369//22110 +f 25122//23864 25124//23866 26726//25468 26725//25467 +f 26727//25469 26726//25468 25124//23866 25126//23868 +f 23325//22066 23370//22111 26726//25468 26727//25469 +f 26727//25469 26728//25470 23326//22067 23325//22066 +f 25126//23868 25128//23870 26728//25470 26727//25469 +f 26729//25471 26728//25470 25128//23870 25130//23872 +f 23281//22022 23326//22067 26728//25470 26729//25471 +f 26729//25471 26730//25472 23282//22023 23281//22022 +f 25130//23872 25134//23876 26730//25472 26729//25471 +f 24549//23291 26730//25472 25134//23876 24550//23292 +f 23237//21978 23282//22023 26730//25472 24549//23291 +f 23084//21825 24544//23286 26731//25473 23089//21830 +f 24544//23286 24543//23285 25141//23883 26731//25473 +f 25143//23885 26732//25474 26731//25473 25141//23883 +f 26732//25474 23090//21831 23089//21830 26731//25473 +f 23090//21831 26732//25474 26733//25475 23095//21836 +f 26732//25474 25143//23885 25145//23887 26733//25475 +f 25147//23889 26734//25476 26733//25475 25145//23887 +f 26734//25476 23096//21837 23095//21836 26733//25475 +f 23096//21837 26734//25476 26735//25477 23101//21842 +f 26734//25476 25147//23889 25149//23891 26735//25477 +f 25151//23893 26736//25478 26735//25477 25149//23891 +f 26736//25478 23102//21843 23101//21842 26735//25477 +f 26736//25478 26737//25479 23107//21848 23102//21843 +f 25151//23893 25153//23895 26737//25479 26736//25478 +f 26738//25480 26737//25479 25153//23895 25155//23897 +f 23109//21850 23107//21848 26737//25479 26738//25480 +f 26738//25480 26739//25481 23113//21854 23109//21850 +f 25155//23897 25157//23899 26739//25481 26738//25480 +f 26740//25482 26739//25481 25157//23899 25159//23901 +f 23115//21856 23113//21854 26739//25481 26740//25482 +f 26740//25482 26741//25483 23119//21860 23115//21856 +f 25159//23901 25161//23903 26741//25483 26740//25482 +f 24541//23283 26741//25483 25161//23903 24542//23284 +f 23121//21862 23119//21860 26741//25483 24541//23283 +f 26071//24813 26742//25484 26743//25485 26073//24815 +f 26072//24814 26744//25486 26742//25484 26071//24813 +f 26745//25487 26742//25484 26744//25486 26746//25488 +f 26747//25489 26743//25485 26742//25484 26745//25487 +f 26076//24818 26748//25490 26749//25491 26077//24819 +f 26073//24815 26743//25485 26748//25490 26076//24818 +f 26750//25492 26748//25490 26743//25485 26747//25489 +f 26751//25493 26749//25491 26748//25490 26750//25492 +f 26080//24822 26752//25494 26753//25495 26081//24823 +f 26077//24819 26749//25491 26752//25494 26080//24822 +f 26754//25496 26752//25494 26749//25491 26751//25493 +f 26755//25497 26753//25495 26752//25494 26754//25496 +f 26084//24826 26756//25498 26757//25499 26085//24827 +f 26081//24823 26753//25495 26756//25498 26084//24826 +f 26758//25500 26756//25498 26753//25495 26755//25497 +f 26759//25501 26757//25499 26756//25498 26758//25500 +f 26088//24830 26760//25502 26761//25503 26089//24831 +f 26085//24827 26757//25499 26760//25502 26088//24830 +f 26762//25504 26760//25502 26757//25499 26759//25501 +f 26763//25505 26761//25503 26760//25502 26762//25504 +f 26092//24834 26764//25506 26765//25507 26093//24835 +f 26089//24831 26761//25503 26764//25506 26092//24834 +f 26766//25508 26764//25506 26761//25503 26763//25505 +f 26767//25509 26765//25507 26764//25506 26766//25508 +f 26096//24838 26768//25510 26769//25511 26097//24839 +f 26093//24835 26765//25507 26768//25510 26096//24838 +f 26770//25512 26768//25510 26765//25507 26767//25509 +f 26771//25513 26769//25511 26768//25510 26770//25512 +f 26100//24842 26772//25514 26773//25515 26101//24843 +f 26097//24839 26769//25511 26772//25514 26100//24842 +f 26774//25516 26772//25514 26769//25511 26771//25513 +f 26775//25517 26773//25515 26772//25514 26774//25516 +f 26104//24846 26776//25518 26777//25519 26105//24847 +f 26101//24843 26773//25515 26776//25518 26104//24846 +f 26778//25520 26776//25518 26773//25515 26775//25517 +f 26779//25521 26777//25519 26776//25518 26778//25520 +f 26108//24850 26780//25522 26781//25523 26109//24851 +f 26105//24847 26777//25519 26780//25522 26108//24850 +f 26782//25524 26780//25522 26777//25519 26779//25521 +f 26783//25525 26781//25523 26780//25522 26782//25524 +f 26112//24854 26784//25526 26785//25527 26113//24855 +f 26109//24851 26781//25523 26784//25526 26112//24854 +f 26786//25528 26784//25526 26781//25523 26783//25525 +f 26787//25529 26785//25527 26784//25526 26786//25528 +f 26116//24858 26788//25530 26789//25531 26117//24859 +f 26113//24855 26785//25527 26788//25530 26116//24858 +f 26790//25532 26788//25530 26785//25527 26787//25529 +f 26791//25533 26789//25531 26788//25530 26790//25532 +f 26120//24862 26792//25534 26793//25535 26121//24863 +f 26117//24859 26789//25531 26792//25534 26120//24862 +f 26794//25536 26792//25534 26789//25531 26791//25533 +f 26795//25537 26793//25535 26792//25534 26794//25536 +f 26124//24866 26796//25538 26797//25539 26125//24867 +f 26121//24863 26793//25535 26796//25538 26124//24866 +f 26798//25540 26796//25538 26793//25535 26795//25537 +f 26799//25541 26797//25539 26796//25538 26798//25540 +f 26128//24870 26800//25542 26801//25543 26129//24871 +f 26125//24867 26797//25539 26800//25542 26128//24870 +f 26802//25544 26800//25542 26797//25539 26799//25541 +f 26803//25545 26801//25543 26800//25542 26802//25544 +f 26132//24874 26804//25546 26805//25547 26133//24875 +f 26129//24871 26801//25543 26804//25546 26132//24874 +f 26806//25548 26804//25546 26801//25543 26803//25545 +f 26807//25549 26805//25547 26804//25546 26806//25548 +f 26136//24878 26808//25550 26809//25551 26137//24879 +f 26133//24875 26805//25547 26808//25550 26136//24878 +f 26810//25552 26808//25550 26805//25547 26807//25549 +f 26811//25553 26809//25551 26808//25550 26810//25552 +f 26140//24882 26812//25554 26813//25555 26141//24883 +f 26137//24879 26809//25551 26812//25554 26140//24882 +f 26814//25556 26812//25554 26809//25551 26811//25553 +f 26815//25557 26813//25555 26812//25554 26814//25556 +f 26144//24886 26816//25558 26817//25559 26145//24887 +f 26141//24883 26813//25555 26816//25558 26144//24886 +f 26818//25560 26816//25558 26813//25555 26815//25557 +f 26819//25561 26817//25559 26816//25558 26818//25560 +f 26148//24890 26820//25562 26821//25563 26149//24891 +f 26145//24887 26817//25559 26820//25562 26148//24890 +f 26822//25564 26820//25562 26817//25559 26819//25561 +f 26823//25565 26821//25563 26820//25562 26822//25564 +f 26152//24894 26824//25566 26825//25567 26153//24895 +f 26149//24891 26821//25563 26824//25566 26152//24894 +f 26826//25568 26824//25566 26821//25563 26823//25565 +f 26827//25569 26825//25567 26824//25566 26826//25568 +f 26156//24898 26828//25570 26829//25571 26157//24899 +f 26153//24895 26825//25567 26828//25570 26156//24898 +f 26830//25572 26828//25570 26825//25567 26827//25569 +f 26831//25573 26829//25571 26828//25570 26830//25572 +f 26160//24902 26832//25574 26833//25575 26161//24903 +f 26157//24899 26829//25571 26832//25574 26160//24902 +f 26834//25576 26832//25574 26829//25571 26831//25573 +f 26835//25577 26833//25575 26832//25574 26834//25576 +f 26164//24906 26836//25578 26837//25579 26165//24907 +f 26161//24903 26833//25575 26836//25578 26164//24906 +f 26838//25580 26836//25578 26833//25575 26835//25577 +f 26839//25581 26837//25579 26836//25578 26838//25580 +f 26168//24910 26840//25582 26841//25583 26169//24911 +f 26165//24907 26837//25579 26840//25582 26168//24910 +f 26842//25584 26840//25582 26837//25579 26839//25581 +f 26843//25585 26841//25583 26840//25582 26842//25584 +f 26172//24914 26844//25586 26845//25587 26173//24915 +f 26169//24911 26841//25583 26844//25586 26172//24914 +f 26846//25588 26844//25586 26841//25583 26843//25585 +f 26847//25589 26845//25587 26844//25586 26846//25588 +f 26176//24918 26848//25590 26849//25591 26177//24919 +f 26173//24915 26845//25587 26848//25590 26176//24918 +f 26850//25592 26848//25590 26845//25587 26847//25589 +f 26851//25593 26849//25591 26848//25590 26850//25592 +f 26180//24922 26852//25594 26853//25595 26181//24923 +f 26177//24919 26849//25591 26852//25594 26180//24922 +f 26854//25596 26852//25594 26849//25591 26851//25593 +f 26855//25597 26853//25595 26852//25594 26854//25596 +f 26184//24926 26856//25598 26857//25599 26185//24927 +f 26181//24923 26853//25595 26856//25598 26184//24926 +f 26858//25600 26856//25598 26853//25595 26855//25597 +f 26859//25601 26857//25599 26856//25598 26858//25600 +f 26188//24930 26860//25602 26861//25603 26189//24931 +f 26185//24927 26857//25599 26860//25602 26188//24930 +f 26862//25604 26860//25602 26857//25599 26859//25601 +f 26863//25605 26861//25603 26860//25602 26862//25604 +f 26192//24934 26864//25606 26865//25607 26193//24935 +f 26189//24931 26861//25603 26864//25606 26192//24934 +f 26866//25608 26864//25606 26861//25603 26863//25605 +f 26867//25609 26865//25607 26864//25606 26866//25608 +f 26196//24938 26868//25610 26869//25611 26197//24939 +f 26193//24935 26865//25607 26868//25610 26196//24938 +f 26870//25612 26868//25610 26865//25607 26867//25609 +f 26871//25613 26869//25611 26868//25610 26870//25612 +f 26200//24942 26872//25614 26873//25615 26201//24943 +f 26197//24939 26869//25611 26872//25614 26200//24942 +f 26874//25616 26872//25614 26869//25611 26871//25613 +f 26875//25617 26873//25615 26872//25614 26874//25616 +f 26204//24946 26876//25618 26877//25619 26205//24947 +f 26201//24943 26873//25615 26876//25618 26204//24946 +f 26878//25620 26876//25618 26873//25615 26875//25617 +f 26879//25621 26877//25619 26876//25618 26878//25620 +f 26208//24950 26880//25622 26881//25623 26209//24951 +f 26205//24947 26877//25619 26880//25622 26208//24950 +f 26882//25624 26880//25622 26877//25619 26879//25621 +f 26883//25625 26881//25623 26880//25622 26882//25624 +f 26212//24954 26884//25626 26885//25627 26213//24955 +f 26209//24951 26881//25623 26884//25626 26212//24954 +f 26886//25628 26884//25626 26881//25623 26883//25625 +f 26887//25629 26885//25627 26884//25626 26886//25628 +f 26216//24958 26888//25630 26889//25631 26217//24959 +f 26213//24955 26885//25627 26888//25630 26216//24958 +f 26890//25632 26888//25630 26885//25627 26887//25629 +f 26891//25633 26889//25631 26888//25630 26890//25632 +f 26220//24962 26892//25634 26893//25635 26221//24963 +f 26217//24959 26889//25631 26892//25634 26220//24962 +f 26894//25636 26892//25634 26889//25631 26891//25633 +f 26895//25637 26893//25635 26892//25634 26894//25636 +f 26224//24966 26896//25638 26897//25639 26225//24967 +f 26221//24963 26893//25635 26896//25638 26224//24966 +f 26898//25640 26896//25638 26893//25635 26895//25637 +f 26899//25641 26897//25639 26896//25638 26898//25640 +f 26227//24969 26900//25642 26744//25486 26072//24814 +f 26225//24967 26897//25639 26900//25642 26227//24969 +f 26901//25643 26900//25642 26897//25639 26899//25641 +f 26746//25488 26744//25486 26900//25642 26901//25643 +f 23285//22026 24532//23274 26902//25644 23330//22071 +f 24532//23274 24529//23271 24528//23270 26902//25644 +f 24527//23269 26903//25645 26902//25644 24528//23270 +f 26903//25645 23327//22068 23330//22071 26902//25644 +f 23327//22068 26903//25645 26904//25646 23373//22114 +f 26903//25645 24527//23269 25169//23911 26904//25646 +f 25171//23913 26905//25647 26904//25646 25169//23911 +f 26905//25647 23374//22115 23373//22114 26904//25646 +f 26905//25647 26906//25648 23417//22158 23374//22115 +f 25171//23913 25173//23915 26906//25648 26905//25647 +f 26907//25649 26906//25648 25173//23915 24521//23263 +f 23418//22159 23417//22158 26906//25648 26907//25649 +f 26907//25649 26908//25650 23461//22202 23418//22159 +f 24521//23263 24519//23261 26908//25650 26907//25649 +f 24513//23255 26908//25650 24519//23261 24514//23256 +f 23462//22203 23461//22202 26908//25650 24513//23255 +f 23654//22395 26909//25651 25187//23929 23656//22397 +f 23655//22396 23747//22488 26909//25651 23654//22395 +f 26910//25652 26909//25651 23747//22488 23751//22492 +f 23661//22402 25187//23929 26909//25651 26910//25652 +f 26910//25652 26911//25653 23662//22403 23661//22402 +f 23751//22492 23753//22494 26911//25653 26910//25652 +f 26912//25654 26911//25653 23753//22494 23757//22498 +f 23664//22405 23662//22403 26911//25653 26912//25654 +f 26912//25654 26913//25655 23668//22409 23664//22405 +f 23757//22498 23759//22500 26913//25655 26912//25654 +f 26914//25656 26913//25655 23759//22500 23763//22504 +f 23670//22411 23668//22409 26913//25655 26914//25656 +f 26914//25656 26915//25657 23674//22415 23670//22411 +f 23763//22504 23765//22506 26915//25657 26914//25656 +f 23769//22510 26916//25658 26915//25657 23765//22506 +f 26916//25658 23675//22416 23674//22415 26915//25657 +f 23675//22416 26916//25658 26917//25659 23680//22421 +f 26916//25658 23769//22510 23771//22512 26917//25659 +f 23775//22516 26918//25660 26917//25659 23771//22512 +f 26918//25660 23681//22422 23680//22421 26917//25659 +f 23681//22422 26918//25660 26919//25661 24502//23244 +f 26918//25660 23775//22516 23777//22518 26919//25661 +f 23688//22429 23685//22426 26919//25661 23777//22518 +f 23685//22426 23684//22425 24502//23244 26919//25661 +f 26920//25662 26921//25663 26922//25664 26923//25665 +f 26924//25666 26925//25667 26921//25663 26920//25662 +f 26926//25668 26921//25663 26925//25667 26927//25669 +f 26928//25670 26922//25664 26921//25663 26926//25668 +f 26929//25671 26930//25672 26920//25662 26923//25665 +f 26931//25673 26932//25674 26930//25672 26929//25671 +f 26933//25675 26930//25672 26932//25674 26934//25676 +f 26924//25666 26920//25662 26930//25672 26933//25675 +f 26935//25677 26936//25678 26937//25679 26938//25680 +f 26936//25678 26939//25681 26940//25682 26937//25679 +f 26931//25673 26929//25671 26937//25679 26940//25682 +f 26929//25671 26923//25665 26938//25680 26937//25679 +f 26941//25683 26942//25684 26943//25685 26944//25686 +f 26945//25687 26946//25688 26942//25684 26941//25683 +f 26936//25678 26942//25684 26946//25688 26939//25681 +f 26935//25677 26943//25685 26942//25684 26936//25678 +f 26947//25689 26948//25690 26941//25683 26944//25686 +f 26949//25691 26950//25692 26948//25690 26947//25689 +f 26951//25693 26948//25690 26950//25692 26952//25694 +f 26945//25687 26941//25683 26948//25690 26951//25693 +f 26953//25695 26954//25696 26955//25697 26956//25698 +f 26954//25696 26957//25699 26958//25700 26955//25697 +f 26949//25691 26947//25689 26955//25697 26958//25700 +f 26947//25689 26944//25686 26956//25698 26955//25697 +f 26959//25701 26960//25702 26961//25703 26962//25704 +f 26963//25705 26964//25706 26960//25702 26959//25701 +f 26954//25696 26960//25702 26964//25706 26957//25699 +f 26953//25695 26961//25703 26960//25702 26954//25696 +f 26965//25707 26966//25708 26959//25701 26962//25704 +f 26967//25709 26968//25710 26966//25708 26965//25707 +f 26969//25711 26966//25708 26968//25710 26970//25712 +f 26963//25705 26959//25701 26966//25708 26969//25711 +f 26971//25713 26972//25714 26973//25715 26974//25716 +f 26972//25714 26975//25717 26976//25718 26973//25715 +f 26967//25709 26965//25707 26973//25715 26976//25718 +f 26965//25707 26962//25704 26974//25716 26973//25715 +f 26977//25719 26978//25720 26979//25721 26980//25722 +f 26981//25723 26982//25724 26978//25720 26977//25719 +f 26972//25714 26978//25720 26982//25724 26975//25717 +f 26971//25713 26979//25721 26978//25720 26972//25714 +f 26983//25725 26984//25726 26977//25719 26980//25722 +f 26985//25727 26986//25728 26984//25726 26983//25725 +f 26987//25729 26984//25726 26986//25728 26988//25730 +f 26981//25723 26977//25719 26984//25726 26987//25729 +f 26989//25731 26990//25732 26991//25733 26992//25734 +f 26990//25732 26993//25735 26994//25736 26991//25733 +f 26985//25727 26983//25725 26991//25733 26994//25736 +f 26983//25725 26980//25722 26992//25734 26991//25733 +f 26995//25737 26996//25738 26997//25739 26998//25740 +f 26999//25741 27000//25742 26996//25738 26995//25737 +f 26990//25732 26996//25738 27000//25742 26993//25735 +f 26989//25731 26997//25739 26996//25738 26990//25732 +f 27001//25743 27002//25744 26995//25737 26998//25740 +f 27003//25745 27004//25746 27002//25744 27001//25743 +f 27005//25747 27002//25744 27004//25746 27006//25748 +f 26999//25741 26995//25737 27002//25744 27005//25747 +f 27007//25749 27008//25750 27009//25751 27010//25752 +f 27008//25750 27011//25753 27012//25754 27009//25751 +f 27003//25745 27001//25743 27009//25751 27012//25754 +f 27001//25743 26998//25740 27010//25752 27009//25751 +f 26997//25739 27013//25755 27014//25756 26998//25740 +f 26989//25731 27015//25757 27013//25755 26997//25739 +f 27016//25758 27013//25755 27015//25757 27017//25759 +f 27018//25760 27014//25756 27013//25755 27016//25758 +f 27019//25761 27020//25762 27021//25763 27022//25764 +f 27023//25765 27024//25766 27020//25762 27019//25761 +f 27025//25767 27026//25768 27020//25762 27024//25766 +f 27026//25768 27027//25769 27021//25763 27020//25762 +f 27026//25768 27028//25770 27029//25771 27027//25769 +f 27025//25767 27030//25772 27028//25770 27026//25768 +f 27031//25773 27028//25770 27030//25772 27032//25774 +f 27033//25775 27029//25771 27028//25770 27031//25773 +f 27034//25776 27035//25777 27036//25778 27037//25779 +f 27035//25777 27038//25780 27039//25781 27036//25778 +f 27040//25782 27041//25783 27036//25778 27039//25781 +f 27041//25783 27042//25784 27037//25779 27036//25778 +f 27035//25777 27043//25785 27044//25786 27038//25780 +f 27034//25776 27045//25787 27043//25785 27035//25777 +f 27046//25788 27043//25785 27045//25787 27047//25789 +f 27048//25790 27044//25786 27043//25785 27046//25788 +f 27048//25790 27046//25788 27049//25791 27050//25792 +f 27046//25788 27047//25789 27051//25793 27049//25791 +f 27052//25794 27053//25795 27049//25791 27051//25793 +f 27053//25795 27054//25796 27050//25792 27049//25791 +f 27055//25797 27056//25798 27041//25783 27040//25782 +f 27055//25797 26971//25713 26974//25716 27056//25798 +f 27057//25799 27056//25798 26974//25716 26962//25704 +f 27057//25799 27042//25784 27041//25783 27056//25798 +f 27058//25800 27059//25801 27060//25802 27061//25803 +f 26953//25695 26956//25698 27060//25802 27059//25801 +f 27062//25804 27060//25802 26956//25698 26944//25686 +f 27063//25805 27061//25803 27060//25802 27062//25804 +f 26961//25703 27064//25806 27057//25799 26962//25704 +f 26961//25703 26953//25695 27059//25801 27064//25806 +f 27065//25807 27064//25806 27059//25801 27058//25800 +f 27042//25784 27057//25799 27064//25806 27065//25807 +f 27065//25807 27066//25808 27037//25779 27042//25784 +f 27058//25800 27067//25809 27066//25808 27065//25807 +f 27068//25810 27066//25808 27067//25809 27022//25764 +f 27034//25776 27037//25779 27066//25808 27068//25810 +f 27068//25810 27069//25811 27045//25787 27034//25776 +f 27022//25764 27021//25763 27069//25811 27068//25810 +f 27027//25769 27070//25812 27069//25811 27021//25763 +f 27047//25789 27045//25787 27069//25811 27070//25812 +f 27070//25812 27071//25813 27051//25793 27047//25789 +f 27027//25769 27029//25771 27071//25813 27070//25812 +f 27072//25814 27071//25813 27029//25771 27033//25775 +f 27052//25794 27051//25793 27071//25813 27072//25814 +f 26944//25686 26943//25685 27073//25815 27062//25804 +f 26943//25685 26935//25677 27074//25816 27073//25815 +f 27023//25765 27075//25817 27073//25815 27074//25816 +f 27075//25817 27063//25805 27062//25804 27073//25815 +f 27017//25759 27076//25818 27077//25819 27016//25758 +f 27076//25818 27038//25780 27044//25786 27077//25819 +f 27078//25820 27077//25819 27044//25786 27048//25790 +f 27018//25760 27016//25758 27077//25819 27078//25820 +f 27018//25760 27078//25820 27079//25821 27080//25822 +f 27078//25820 27048//25790 27050//25792 27079//25821 +f 27054//25796 27081//25823 27079//25821 27050//25792 +f 27081//25823 27082//25824 27080//25822 27079//25821 +f 27019//25761 27083//25825 27075//25817 27023//25765 +f 27022//25764 27067//25809 27083//25825 27019//25761 +f 27061//25803 27083//25825 27067//25809 27058//25800 +f 27063//25805 27075//25817 27083//25825 27061//25803 +f 27084//25826 27085//25827 27086//25828 27087//25829 +f 27085//25827 27040//25782 27039//25781 27086//25828 +f 27038//25780 27076//25818 27086//25828 27039//25781 +f 27076//25818 27017//25759 27087//25829 27086//25828 +f 26979//25721 27088//25830 27089//25831 26980//25722 +f 26979//25721 26971//25713 27055//25797 27088//25830 +f 27040//25782 27085//25827 27088//25830 27055//25797 +f 27084//25826 27089//25831 27088//25830 27085//25827 +f 27074//25816 27090//25832 27024//25766 27023//25765 +f 26935//25677 26938//25680 27090//25832 27074//25816 +f 27091//25833 27090//25832 26938//25680 26923//25665 +f 27091//25833 27025//25767 27024//25766 27090//25832 +f 27091//25833 27092//25834 27030//25772 27025//25767 +f 27091//25833 26923//25665 26922//25664 27092//25834 +f 27093//25835 27092//25834 26922//25664 26928//25670 +f 27032//25774 27030//25772 27092//25834 27093//25835 +f 27082//25824 27094//25836 27095//25837 27080//25822 +f 27094//25836 27007//25749 27010//25752 27095//25837 +f 27014//25756 27095//25837 27010//25752 26998//25740 +f 27014//25756 27018//25760 27080//25822 27095//25837 +f 27017//25759 27015//25757 27096//25838 27087//25829 +f 27015//25757 26989//25731 26992//25734 27096//25838 +f 26980//25722 27089//25831 27096//25838 26992//25734 +f 27089//25831 27084//25826 27087//25829 27096//25838 +f 27097//25839 27098//25840 27099//25841 27100//25842 +f 26928//25670 26926//25668 27098//25840 27097//25839 +f 27101//25843 27098//25840 26926//25668 26927//25669 +f 27102//25844 27099//25841 27098//25840 27101//25843 +f 27099//25841 27103//25845 27104//25846 27100//25842 +f 27102//25844 27105//25847 27103//25845 27099//25841 +f 27106//25848 27103//25845 27105//25847 27107//25849 +f 27108//25850 27104//25846 27103//25845 27106//25848 +f 27109//25851 27110//25852 27111//25853 27112//25854 +f 27110//25852 27100//25842 27104//25846 27111//25853 +f 27108//25850 27113//25855 27111//25853 27104//25846 +f 27113//25855 27114//25856 27112//25854 27111//25853 +f 27115//25857 27116//25858 27117//25859 27118//25860 +f 27109//25851 27112//25854 27116//25858 27115//25857 +f 27119//25861 27116//25858 27112//25854 27114//25856 +f 27120//25862 27117//25859 27116//25858 27119//25861 +f 27117//25859 27121//25863 27122//25864 27118//25860 +f 27120//25862 27123//25865 27121//25863 27117//25859 +f 27124//25866 27121//25863 27123//25865 27125//25867 +f 27126//25868 27122//25864 27121//25863 27124//25866 +f 27127//25869 27128//25870 27129//25871 27130//25872 +f 27128//25870 27118//25860 27122//25864 27129//25871 +f 27126//25868 27131//25873 27129//25871 27122//25864 +f 27131//25873 27132//25874 27130//25872 27129//25871 +f 27133//25875 27134//25876 27135//25877 27136//25878 +f 27127//25869 27130//25872 27134//25876 27133//25875 +f 27137//25879 27134//25876 27130//25872 27132//25874 +f 27138//25880 27135//25877 27134//25876 27137//25879 +f 27135//25877 27139//25881 27140//25882 27136//25878 +f 27138//25880 27141//25883 27139//25881 27135//25877 +f 27142//25884 27139//25881 27141//25883 27143//25885 +f 27144//25886 27140//25882 27139//25881 27142//25884 +f 27145//25887 27146//25888 27147//25889 27148//25890 +f 27146//25888 27136//25878 27140//25882 27147//25889 +f 27144//25886 27149//25891 27147//25889 27140//25882 +f 27149//25891 27150//25892 27148//25890 27147//25889 +f 27151//25893 27152//25894 27153//25895 27154//25896 +f 27145//25887 27148//25890 27152//25894 27151//25893 +f 27155//25897 27152//25894 27148//25890 27150//25892 +f 27156//25898 27153//25895 27152//25894 27155//25897 +f 27153//25895 27157//25899 27158//25900 27154//25896 +f 27156//25898 27159//25901 27157//25899 27153//25895 +f 27160//25902 27157//25899 27159//25901 27161//25903 +f 27162//25904 27158//25900 27157//25899 27160//25902 +f 27163//25905 27164//25906 27165//25907 27166//25908 +f 27164//25906 27154//25896 27158//25900 27165//25907 +f 27162//25904 27167//25909 27165//25907 27158//25900 +f 27167//25909 27168//25910 27166//25908 27165//25907 +f 27169//25911 27170//25912 27171//25913 27172//25914 +f 27163//25905 27166//25908 27170//25912 27169//25911 +f 27173//25915 27170//25912 27166//25908 27168//25910 +f 27174//25916 27171//25913 27170//25912 27173//25915 +f 27171//25913 27175//25917 27176//25918 27172//25914 +f 27174//25916 27177//25919 27175//25917 27171//25913 +f 27178//25920 27175//25917 27177//25919 27179//25921 +f 27180//25922 27176//25918 27175//25917 27178//25920 +f 27007//25749 27181//25923 27182//25924 27008//25750 +f 27181//25923 27172//25914 27176//25918 27182//25924 +f 27180//25922 27183//25925 27182//25924 27176//25918 +f 27183//25925 27011//25753 27008//25750 27182//25924 +f 27184//25926 27185//25927 27169//25911 27172//25914 +f 27186//25928 27187//25929 27185//25927 27184//25926 +f 27188//25930 27185//25927 27187//25929 27189//25931 +f 27163//25905 27169//25911 27185//25927 27188//25930 +f 27190//25932 27191//25933 27192//25934 27193//25935 +f 27190//25932 27194//25936 27195//25937 27191//25933 +f 27196//25938 27197//25939 27191//25933 27195//25937 +f 27198//25940 27192//25934 27191//25933 27197//25939 +f 27199//25941 27200//25942 27195//25937 27194//25936 +f 27033//25775 27031//25773 27200//25942 27199//25941 +f 27201//25943 27200//25942 27031//25773 27032//25774 +f 27196//25938 27195//25937 27200//25942 27201//25943 +f 27202//25944 27203//25945 27204//25946 27205//25947 +f 27203//25945 27206//25948 27207//25949 27204//25946 +f 27208//25950 27209//25951 27204//25946 27207//25949 +f 27209//25951 27210//25952 27205//25947 27204//25946 +f 27211//25953 27212//25954 27205//25947 27210//25952 +f 27213//25955 27214//25956 27212//25954 27211//25953 +f 27215//25957 27216//25958 27212//25954 27214//25956 +f 27216//25958 27202//25944 27205//25947 27212//25954 +f 27213//25955 27217//25959 27218//25960 27214//25956 +f 27217//25959 27054//25796 27053//25795 27218//25960 +f 27219//25961 27218//25960 27053//25795 27052//25794 +f 27219//25961 27215//25957 27214//25956 27218//25960 +f 27207//25949 27220//25962 27221//25963 27208//25950 +f 27207//25949 27206//25948 27222//25964 27220//25962 +f 27146//25888 27220//25962 27222//25964 27136//25878 +f 27146//25888 27145//25887 27221//25963 27220//25962 +f 27223//25965 27224//25966 27225//25967 27226//25968 +f 27227//25969 27228//25970 27225//25967 27224//25966 +f 27128//25870 27225//25967 27228//25970 27118//25860 +f 27127//25869 27226//25968 27225//25967 27128//25870 +f 27222//25964 27229//25971 27133//25875 27136//25878 +f 27206//25948 27230//25972 27229//25971 27222//25964 +f 27226//25968 27229//25971 27230//25972 27223//25965 +f 27226//25968 27127//25869 27133//25875 27229//25971 +f 27203//25945 27231//25973 27230//25972 27206//25948 +f 27202//25944 27232//25974 27231//25973 27203//25945 +f 27233//25975 27231//25973 27232//25974 27193//25935 +f 27223//25965 27230//25972 27231//25973 27233//25975 +f 27216//25958 27234//25976 27232//25974 27202//25944 +f 27215//25957 27235//25977 27234//25976 27216//25958 +f 27190//25932 27234//25976 27235//25977 27194//25936 +f 27193//25935 27232//25974 27234//25976 27190//25932 +f 27219//25961 27236//25978 27235//25977 27215//25957 +f 27052//25794 27072//25814 27236//25978 27219//25961 +f 27199//25941 27236//25978 27072//25814 27033//25775 +f 27194//25936 27235//25977 27236//25978 27199//25941 +f 27118//25860 27228//25970 27237//25979 27115//25857 +f 27228//25970 27227//25969 27238//25980 27237//25979 +f 27198//25940 27239//25981 27237//25979 27238//25980 +f 27239//25981 27109//25851 27115//25857 27237//25979 +f 27189//25931 27187//25929 27240//25982 27241//25983 +f 27186//25928 27242//25984 27240//25982 27187//25929 +f 27211//25953 27240//25982 27242//25984 27213//25955 +f 27211//25953 27210//25952 27241//25983 27240//25982 +f 27186//25928 27243//25985 27244//25986 27242//25984 +f 27243//25985 27082//25824 27081//25823 27244//25986 +f 27054//25796 27217//25959 27244//25986 27081//25823 +f 27217//25959 27213//25955 27242//25984 27244//25986 +f 27238//25980 27245//25987 27192//25934 27198//25940 +f 27227//25969 27224//25966 27245//25987 27238//25980 +f 27233//25975 27245//25987 27224//25966 27223//25965 +f 27193//25935 27192//25934 27245//25987 27233//25975 +f 27246//25988 27247//25989 27248//25990 27249//25991 +f 27247//25989 27189//25931 27241//25983 27248//25990 +f 27210//25952 27209//25951 27248//25990 27241//25983 +f 27209//25951 27208//25950 27249//25991 27248//25990 +f 27250//25992 27251//25993 27151//25893 27154//25896 +f 27246//25988 27249//25991 27251//25993 27250//25992 +f 27208//25950 27221//25963 27251//25993 27249//25991 +f 27221//25963 27145//25887 27151//25893 27251//25993 +f 27197//25939 27252//25994 27239//25981 27198//25940 +f 27197//25939 27196//25938 27253//25995 27252//25994 +f 27110//25852 27252//25994 27253//25995 27100//25842 +f 27109//25851 27239//25981 27252//25994 27110//25852 +f 27201//25943 27254//25996 27253//25995 27196//25938 +f 27032//25774 27093//25835 27254//25996 27201//25943 +f 27097//25839 27254//25996 27093//25835 26928//25670 +f 27097//25839 27100//25842 27253//25995 27254//25996 +f 27082//25824 27243//25985 27255//25997 27094//25836 +f 27243//25985 27186//25928 27184//25926 27255//25997 +f 27181//25923 27255//25997 27184//25926 27172//25914 +f 27181//25923 27007//25749 27094//25836 27255//25997 +f 27189//25931 27247//25989 27256//25998 27188//25930 +f 27247//25989 27246//25988 27250//25992 27256//25998 +f 27154//25896 27164//25906 27256//25998 27250//25992 +f 27164//25906 27163//25905 27188//25930 27256//25998 +f 25195//23937 27257//25999 27258//26000 25194//23936 +f 27107//25849 27105//25847 27258//26000 27257//25999 +f 27102//25844 27259//26001 27258//26000 27105//25847 +f 27259//26001 25196//23938 25194//23936 27258//26000 +f 25202//23944 27260//26002 27261//26003 25201//23943 +f 27260//26002 27108//25850 27106//25848 27261//26003 +f 27107//25849 27257//25999 27261//26003 27106//25848 +f 27257//25999 25195//23937 25201//23943 27261//26003 +f 25208//23950 27262//26004 27263//26005 25207//23949 +f 27114//25856 27113//25855 27263//26005 27262//26004 +f 27260//26002 27263//26005 27113//25855 27108//25850 +f 27260//26002 25202//23944 25207//23949 27263//26005 +f 25214//23956 27264//26006 27265//26007 25213//23955 +f 27264//26006 27120//25862 27119//25861 27265//26007 +f 27114//25856 27262//26004 27265//26007 27119//25861 +f 27262//26004 25208//23950 25213//23955 27265//26007 +f 27266//26008 27267//26009 25220//23962 25219//23961 +f 27125//25867 27123//25865 27267//26009 27266//26008 +f 27120//25862 27264//26006 27267//26009 27123//25865 +f 25214//23956 25220//23962 27267//26009 27264//26006 +f 25226//23968 27268//26010 27269//26011 25225//23967 +f 27268//26010 27126//25868 27124//25866 27269//26011 +f 27125//25867 27266//26008 27269//26011 27124//25866 +f 27266//26008 25219//23961 25225//23967 27269//26011 +f 25232//23974 27270//26012 27271//26013 25231//23973 +f 27132//25874 27131//25873 27271//26013 27270//26012 +f 27268//26010 27271//26013 27131//25873 27126//25868 +f 27268//26010 25226//23968 25231//23973 27271//26013 +f 25238//23980 27272//26014 27273//26015 25237//23979 +f 27272//26014 27138//25880 27137//25879 27273//26015 +f 27132//25874 27270//26012 27273//26015 27137//25879 +f 27270//26012 25232//23974 25237//23979 27273//26015 +f 27274//26016 27275//26017 25244//23986 25243//23985 +f 27143//25885 27141//25883 27275//26017 27274//26016 +f 27138//25880 27272//26014 27275//26017 27141//25883 +f 25238//23980 25244//23986 27275//26017 27272//26014 +f 25250//23992 27276//26018 27277//26019 25249//23991 +f 27276//26018 27144//25886 27142//25884 27277//26019 +f 27143//25885 27274//26016 27277//26019 27142//25884 +f 27274//26016 25243//23985 25249//23991 27277//26019 +f 27278//26020 27279//26021 25255//23997 25256//23998 +f 27150//25892 27149//25891 27279//26021 27278//26020 +f 27276//26018 27279//26021 27149//25891 27144//25886 +f 25250//23992 25255//23997 27279//26021 27276//26018 +f 25261//24003 27280//26022 27281//26023 25262//24004 +f 27280//26022 27156//25898 27155//25897 27281//26023 +f 27150//25892 27278//26020 27281//26023 27155//25897 +f 27278//26020 25256//23998 25262//24004 27281//26023 +f 27282//26024 27283//26025 25268//24010 25267//24009 +f 27161//25903 27159//25901 27283//26025 27282//26024 +f 27156//25898 27280//26022 27283//26025 27159//25901 +f 25261//24003 25268//24010 27283//26025 27280//26022 +f 25274//24016 27284//26026 27285//26027 25273//24015 +f 27162//25904 27160//25902 27285//26027 27284//26026 +f 27161//25903 27282//26024 27285//26027 27160//25902 +f 27282//26024 25267//24009 25273//24015 27285//26027 +f 27286//26028 27287//26029 25279//24021 25280//24022 +f 27168//25910 27167//25909 27287//26029 27286//26028 +f 27284//26026 27287//26029 27167//25909 27162//25904 +f 25274//24016 25279//24021 27287//26029 27284//26026 +f 25285//24027 27288//26030 27289//26031 25286//24028 +f 27288//26030 27174//25916 27173//25915 27289//26031 +f 27168//25910 27286//26028 27289//26031 27173//25915 +f 27286//26028 25280//24022 25286//24028 27289//26031 +f 27290//26032 27291//26033 25292//24034 25291//24033 +f 27179//25921 27177//25919 27291//26033 27290//26032 +f 27174//25916 27288//26030 27291//26033 27177//25919 +f 25285//24027 25292//24034 27291//26033 27288//26030 +f 25298//24040 27292//26034 27293//26035 25297//24039 +f 27180//25922 27178//25920 27293//26035 27292//26034 +f 27179//25921 27290//26032 27293//26035 27178//25920 +f 27290//26032 25291//24033 25297//24039 27293//26035 +f 27294//26036 27295//26037 25303//24045 25304//24046 +f 27011//25753 27183//25925 27295//26037 27294//26036 +f 27292//26034 27295//26037 27183//25925 27180//25922 +f 25298//24040 25303//24045 27295//26037 27292//26034 +f 25309//24051 27296//26038 27297//26039 25310//24052 +f 27296//26038 27003//25745 27012//25754 27297//26039 +f 27011//25753 27294//26036 27297//26039 27012//25754 +f 27294//26036 25304//24046 25310//24052 27297//26039 +f 27298//26040 27299//26041 25316//24058 25315//24057 +f 27006//25748 27004//25746 27299//26041 27298//26040 +f 27003//25745 27296//26038 27299//26041 27004//25746 +f 25309//24051 25316//24058 27299//26041 27296//26038 +f 25322//24064 27300//26042 27301//26043 25321//24063 +f 27300//26042 26999//25741 27005//25747 27301//26043 +f 27006//25748 27298//26040 27301//26043 27005//25747 +f 27298//26040 25315//24057 25321//24063 27301//26043 +f 27302//26044 27303//26045 25327//24069 25328//24070 +f 26993//25735 27000//25742 27303//26045 27302//26044 +f 27300//26042 27303//26045 27000//25742 26999//25741 +f 25322//24064 25327//24069 27303//26045 27300//26042 +f 25333//24075 27304//26046 27305//26047 25334//24076 +f 27304//26046 26985//25727 26994//25736 27305//26047 +f 26993//25735 27302//26044 27305//26047 26994//25736 +f 27302//26044 25328//24070 25334//24076 27305//26047 +f 27306//26048 27307//26049 25340//24082 25339//24081 +f 26988//25730 26986//25728 27307//26049 27306//26048 +f 26985//25727 27304//26046 27307//26049 26986//25728 +f 25333//24075 25340//24082 27307//26049 27304//26046 +f 25346//24088 27308//26050 27309//26051 25345//24087 +f 27308//26050 26981//25723 26987//25729 27309//26051 +f 26988//25730 27306//26048 27309//26051 26987//25729 +f 27306//26048 25339//24081 25345//24087 27309//26051 +f 25352//24094 27310//26052 27311//26053 25351//24093 +f 26975//25717 26982//25724 27311//26053 27310//26052 +f 27308//26050 27311//26053 26982//25724 26981//25723 +f 27308//26050 25346//24088 25351//24093 27311//26053 +f 25358//24100 27312//26054 27313//26055 25357//24099 +f 27312//26054 26967//25709 26976//25718 27313//26055 +f 26975//25717 27310//26052 27313//26055 26976//25718 +f 27310//26052 25352//24094 25357//24099 27313//26055 +f 27314//26056 27315//26057 25364//24106 25363//24105 +f 26970//25712 26968//25710 27315//26057 27314//26056 +f 26967//25709 27312//26054 27315//26057 26968//25710 +f 25358//24100 25364//24106 27315//26057 27312//26054 +f 25370//24112 27316//26058 27317//26059 25369//24111 +f 27316//26058 26963//25705 26969//25711 27317//26059 +f 26970//25712 27314//26056 27317//26059 26969//25711 +f 27314//26056 25363//24105 25369//24111 27317//26059 +f 25376//24118 27318//26060 27319//26061 25375//24117 +f 26957//25699 26964//25706 27319//26061 27318//26060 +f 27316//26058 27319//26061 26964//25706 26963//25705 +f 27316//26058 25370//24112 25375//24117 27319//26061 +f 25382//24124 27320//26062 27321//26063 25381//24123 +f 27320//26062 26949//25691 26958//25700 27321//26063 +f 26957//25699 27318//26060 27321//26063 26958//25700 +f 27318//26060 25376//24118 25381//24123 27321//26063 +f 25388//24130 27322//26064 27323//26065 25387//24129 +f 26952//25694 26950//25692 27323//26065 27322//26064 +f 26949//25691 27320//26062 27323//26065 26950//25692 +f 27320//26062 25382//24124 25387//24129 27323//26065 +f 25394//24136 27324//26066 27325//26067 25393//24135 +f 27324//26066 26945//25687 26951//25693 27325//26067 +f 26952//25694 27322//26064 27325//26067 26951//25693 +f 27322//26064 25388//24130 25393//24135 27325//26067 +f 25400//24142 27326//26068 27327//26069 25399//24141 +f 26939//25681 26946//25688 27327//26069 27326//26068 +f 27324//26066 27327//26069 26946//25688 26945//25687 +f 27324//26066 25394//24136 25399//24141 27327//26069 +f 25406//24148 27328//26070 27329//26071 25405//24147 +f 27328//26070 26931//25673 26940//25682 27329//26071 +f 26939//25681 27326//26068 27329//26071 26940//25682 +f 27326//26068 25400//24142 25405//24147 27329//26071 +f 25412//24154 27330//26072 27331//26073 25411//24153 +f 26934//25676 26932//25674 27331//26073 27330//26072 +f 26931//25673 27328//26070 27331//26073 26932//25674 +f 27328//26070 25406//24148 25411//24153 27331//26073 +f 25418//24160 27332//26074 27333//26075 25417//24159 +f 27332//26074 26924//25666 26933//25675 27333//26075 +f 26934//25676 27330//26072 27333//26075 26933//25675 +f 27330//26072 25412//24154 25417//24159 27333//26075 +f 25424//24166 27334//26076 27335//26077 25423//24165 +f 26927//25669 26925//25667 27335//26077 27334//26076 +f 27332//26074 27335//26077 26925//25667 26924//25666 +f 27332//26074 25418//24160 25423//24165 27335//26077 +f 25196//23938 27259//26001 27336//26078 25427//24169 +f 27259//26001 27102//25844 27101//25843 27336//26078 +f 26927//25669 27334//26076 27336//26078 27101//25843 +f 27334//26076 25424//24166 25427//24169 27336//26078 +f 22796//21541 22799//23044 27337//26079 27338//26080 +f 22800//21538 22796//21541 27338//26080 27339//26081 +f 27340//26082 27341//26083 27339//26081 27338//26080 +f 27342//26084 27340//26082 27338//26080 27337//26079 +f 27340//26082 27342//26084 27343//26085 27344//26086 +f 27341//26083 27340//26082 27344//26086 27345//26087 +f 27346//26088 27347//26089 27345//26087 27344//26086 +f 27348//26090 27346//26088 27344//26086 27343//26085 +f 27346//26088 27348//26090 27349//26091 27350//26092 +f 27347//26089 27346//26088 27350//26092 27351//26093 +f 27352//26094 27353//26095 27351//26093 27350//26092 +f 27354//26096 27352//26094 27350//26092 27349//26091 +f 27352//26094 27354//26096 27355//26097 27356//26098 +f 27353//26095 27352//26094 27356//26098 27357//26099 +f 27358//26100 27359//26101 27357//26099 27356//26098 +f 27360//26102 27358//26100 27356//26098 27355//26097 +f 27358//26100 27360//26102 27361//26103 27362//26104 +f 27359//26101 27358//26100 27362//26104 27363//26105 +f 27364//26106 27365//26107 27363//26105 27362//26104 +f 27366//26108 27364//26106 27362//26104 27361//26103 +f 27364//26106 27366//26108 27367//26109 27368//26110 +f 27365//26107 27364//26106 27368//26110 27369//26111 +f 27370//26112 27371//26113 27369//26111 27368//26110 +f 27372//26114 27370//26112 27368//26110 27367//26109 +f 27370//26112 27372//26114 27373//26115 27374//26116 +f 27371//26113 27370//26112 27374//26116 27375//26117 +f 27376//26118 27377//26119 27375//26117 27374//26116 +f 27378//26120 27376//26118 27374//26116 27373//26115 +f 27376//26118 27378//26120 27379//26121 27380//26122 +f 27377//26119 27376//26118 27380//26122 27381//26123 +f 27382//26124 27383//26125 27381//26123 27380//26122 +f 27384//26126 27382//26124 27380//26122 27379//26121 +f 27382//26124 27384//26126 27385//26127 27386//26128 +f 27383//26125 27382//26124 27386//26128 27387//26129 +f 27388//26130 27389//26131 27387//26129 27386//26128 +f 27390//26132 27388//26130 27386//26128 27385//26127 +f 27388//26130 27390//26132 27391//26133 27392//26134 +f 27389//26131 27388//26130 27392//26134 27393//26135 +f 27394//26136 27395//26137 27393//26135 27392//26134 +f 27396//26138 27394//26136 27392//26134 27391//26133 +f 27394//26136 27396//26138 27397//26139 27398//26140 +f 27395//26137 27394//26136 27398//26140 27399//26141 +f 27400//26142 27401//26143 27399//26141 27398//26140 +f 27402//26144 27400//26142 27398//26140 27397//26139 +f 27400//26142 27402//26144 27403//26145 27404//26146 +f 27401//26143 27400//26142 27404//26146 27405//26147 +f 27406//26148 27407//26149 27405//26147 27404//26146 +f 27408//26150 27406//26148 27404//26146 27403//26145 +f 27406//26148 27408//26150 27409//26151 27410//26152 +f 27407//26149 27406//26148 27410//26152 27411//26153 +f 27412//26154 27413//26155 27411//26153 27410//26152 +f 27414//26156 27412//26154 27410//26152 27409//26151 +f 27412//26154 27414//26156 27415//26157 27416//26158 +f 27413//26155 27412//26154 27416//26158 27417//26159 +f 27418//26160 27419//26161 27417//26159 27416//26158 +f 27420//26162 27418//26160 27416//26158 27415//26157 +f 27418//26160 27420//26162 27421//26163 27422//26164 +f 27419//26161 27418//26160 27422//26164 27423//26165 +f 27424//26166 27425//26167 27423//26165 27422//26164 +f 27426//26168 27424//26166 27422//26164 27421//26163 +f 27424//26166 27426//26168 27427//26169 27428//26170 +f 27425//26167 27424//26166 27428//26170 27429//26171 +f 27430//26172 27431//26173 27429//26171 27428//26170 +f 27432//26174 27430//26172 27428//26170 27427//26169 +f 27430//26172 27432//26174 27433//26175 27434//26176 +f 27431//26173 27430//26172 27434//26176 27435//26177 +f 27436//26178 27437//26179 27435//26177 27434//26176 +f 27438//26180 27436//26178 27434//26176 27433//26175 +f 27436//26178 27438//26180 27439//26181 27440//26182 +f 27437//26179 27436//26178 27440//26182 27441//26183 +f 27442//26184 27443//26185 27441//26183 27440//26182 +f 27444//26186 27442//26184 27440//26182 27439//26181 +f 27442//26184 27444//26186 27445//26187 27446//26188 +f 27443//26185 27442//26184 27446//26188 27447//26189 +f 27448//26190 27449//26191 27447//26189 27446//26188 +f 27450//26192 27448//26190 27446//26188 27445//26187 +f 27448//26190 27450//26192 27451//26193 27452//26194 +f 27449//26191 27448//26190 27452//26194 27453//26195 +f 22916//21657 22917//21658 27453//26195 27452//26194 +f 22918//21659 22916//21657 27452//26194 27451//26193 +f 22919//21660 22922//21663 27454//26196 27455//26197 +f 22923//21664 22919//21660 27455//26197 27456//26198 +f 27457//26199 27458//26200 27456//26198 27455//26197 +f 27459//26201 27457//26199 27455//26197 27454//26196 +f 27457//26199 27459//26201 27460//26202 27461//26203 +f 27458//26200 27457//26199 27461//26203 27462//26204 +f 27463//26205 27464//26206 27462//26204 27461//26203 +f 27465//26207 27463//26205 27461//26203 27460//26202 +f 27463//26205 27465//26207 27466//26208 27467//26209 +f 27464//26206 27463//26205 27467//26209 27468//26210 +f 27469//26211 27470//26212 27468//26210 27467//26209 +f 27471//26213 27469//26211 27467//26209 27466//26208 +f 27469//26211 27471//26213 27472//26214 27473//26215 +f 27470//26212 27469//26211 27473//26215 27474//26216 +f 27475//26217 27476//26218 27474//26216 27473//26215 +f 27477//26219 27475//26217 27473//26215 27472//26214 +f 27475//26217 27477//26219 27478//26220 27479//26221 +f 27476//26218 27475//26217 27479//26221 27480//26222 +f 27481//26223 27482//26224 27480//26222 27479//26221 +f 27483//26225 27481//26223 27479//26221 27478//26220 +f 27481//26223 27483//26225 27484//26226 27485//26227 +f 27482//26224 27481//26223 27485//26227 27486//26228 +f 27487//26229 27488//26230 27486//26228 27485//26227 +f 27489//26231 27487//26229 27485//26227 27484//26226 +f 27487//26229 27489//26231 27490//26232 27491//26233 +f 27488//26230 27487//26229 27491//26233 27492//26234 +f 27493//26235 27494//26236 27492//26234 27491//26233 +f 27495//26237 27493//26235 27491//26233 27490//26232 +f 27493//26235 27495//26237 27496//26238 27497//26239 +f 27494//26236 27493//26235 27497//26239 27498//26240 +f 27499//26241 27500//26242 27498//26240 27497//26239 +f 27501//26243 27499//26241 27497//26239 27496//26238 +f 27499//26241 27501//26243 27502//26244 27503//26245 +f 27500//26242 27499//26241 27503//26245 27504//26246 +f 27505//26247 27506//26248 27504//26246 27503//26245 +f 27507//26249 27505//26247 27503//26245 27502//26244 +f 27505//26247 27507//26249 27508//26250 27509//26251 +f 27506//26248 27505//26247 27509//26251 27510//26252 +f 27511//26253 27512//26254 27510//26252 27509//26251 +f 27513//26255 27511//26253 27509//26251 27508//26250 +f 27511//26253 27513//26255 27514//26256 27515//26257 +f 27512//26254 27511//26253 27515//26257 27516//26258 +f 27517//26259 27518//26260 27516//26258 27515//26257 +f 27519//26261 27517//26259 27515//26257 27514//26256 +f 27517//26259 27519//26261 27520//26262 27521//26263 +f 27518//26260 27517//26259 27521//26263 27522//26264 +f 27523//26265 27524//26266 27522//26264 27521//26263 +f 27525//26267 27523//26265 27521//26263 27520//26262 +f 27523//26265 27525//26267 27526//26268 27527//26269 +f 27524//26266 27523//26265 27527//26269 27528//26270 +f 27529//26271 27530//26272 27528//26270 27527//26269 +f 27531//26273 27529//26271 27527//26269 27526//26268 +f 27529//26271 27531//26273 27532//26274 27533//26275 +f 27530//26272 27529//26271 27533//26275 27534//26276 +f 27535//26277 27536//26278 27534//26276 27533//26275 +f 27537//26279 27535//26277 27533//26275 27532//26274 +f 27535//26277 27537//26279 27538//26280 27539//26281 +f 27536//26278 27535//26277 27539//26281 27540//26282 +f 27541//26283 27542//26284 27540//26282 27539//26281 +f 27543//26285 27541//26283 27539//26281 27538//26280 +f 27541//26283 27543//26285 27544//26286 27545//26287 +f 27542//26284 27541//26283 27545//26287 27546//26288 +f 27547//26289 27548//26290 27546//26288 27545//26287 +f 27549//26291 27547//26289 27545//26287 27544//26286 +f 27547//26289 27549//26291 27550//26292 27551//26293 +f 27548//26290 27547//26289 27551//26293 27552//26294 +f 27553//26295 27554//26296 27552//26294 27551//26293 +f 27555//26297 27553//26295 27551//26293 27550//26292 +f 27553//26295 27555//26297 27556//26298 27557//26299 +f 27554//26296 27553//26295 27557//26299 27558//26300 +f 27559//26301 27560//26302 27558//26300 27557//26299 +f 27561//26303 27559//26301 27557//26299 27556//26298 +f 27559//26301 27561//26303 27562//26304 27563//26305 +f 27560//26302 27559//26301 27563//26305 27564//26306 +f 27565//26307 27566//26308 27564//26306 27563//26305 +f 27567//26309 27565//26307 27563//26305 27562//26304 +f 27565//26307 27567//26309 27568//26310 27569//26311 +f 27566//26308 27565//26307 27569//26311 27570//26312 +f 23039//21780 23040//21781 27570//26312 27569//26311 +f 23041//21782 23039//21780 27569//26311 27568//26310 +f 23042//21783 23045//21786 27571//26313 27572//26314 +f 23046//21787 23042//21783 27572//26314 27573//26315 +f 27574//26316 27575//26317 27573//26315 27572//26314 +f 27576//26318 27574//26316 27572//26314 27571//26313 +f 27574//26316 27576//26318 27577//26319 27578//26320 +f 27575//26317 27574//26316 27578//26320 27579//26321 +f 27580//26322 27581//26323 27579//26321 27578//26320 +f 27582//26324 27580//26322 27578//26320 27577//26319 +f 27580//26322 27582//26324 27583//26325 27584//26326 +f 27581//26323 27580//26322 27584//26326 27585//26327 +f 27586//26328 27587//26329 27585//26327 27584//26326 +f 27588//26330 27586//26328 27584//26326 27583//26325 +f 27586//26328 27588//26330 27589//26331 27590//26332 +f 27587//26329 27586//26328 27590//26332 27591//26333 +f 27592//26334 27593//26335 27591//26333 27590//26332 +f 27594//26336 27592//26334 27590//26332 27589//26331 +f 27592//26334 27594//26336 27595//26337 27596//26338 +f 27593//26335 27592//26334 27596//26338 27597//26339 +f 27598//26340 27599//26341 27597//26339 27596//26338 +f 27600//26342 27598//26340 27596//26338 27595//26337 +f 27598//26340 27600//26342 27601//26343 27602//26344 +f 27599//26341 27598//26340 27602//26344 27603//26345 +f 27604//26346 27603//26345 27602//26344 27605//26347 +f 27605//26347 27602//26344 27601//26343 27606//26348 +f 27606//26348 27607//26349 27608//26350 27605//26347 +f 27605//26347 27608//26350 27609//26351 27604//26346 +f 27610//26352 27609//26351 27608//26350 27611//26353 +f 27611//26353 27608//26350 27607//26349 27612//26354 +f 27612//26354 27613//26355 27614//26356 27611//26353 +f 27611//26353 27614//26356 27615//26357 27610//26352 +f 27616//26358 27615//26357 27614//26356 27617//26359 +f 27617//26359 27614//26356 27613//26355 27618//26360 +f 27618//26360 27619//26361 27620//26362 27617//26359 +f 27617//26359 27620//26362 27621//26363 27616//26358 +f 27622//26364 27621//26363 27620//26362 27623//26365 +f 27623//26365 27620//26362 27619//26361 27624//26366 +f 27624//26366 27625//26367 27626//26368 27623//26365 +f 27623//26365 27626//26368 27627//26369 27622//26364 +f 27628//26370 27627//26369 27626//26368 27629//26371 +f 27629//26371 27626//26368 27625//26367 27630//26372 +f 27629//26371 27630//26372 27631//26373 27632//26374 +f 27628//26370 27629//26371 27632//26374 27633//26375 +f 27634//26376 27635//26377 27633//26375 27632//26374 +f 27636//26378 27634//26376 27632//26374 27631//26373 +f 27634//26376 27636//26378 27637//26379 27638//26380 +f 27635//26377 27634//26376 27638//26380 27639//26381 +f 27640//26382 27641//26383 27639//26381 27638//26380 +f 27642//26384 27640//26382 27638//26380 27637//26379 +f 27640//26382 27642//26384 27643//26385 27644//26386 +f 27641//26383 27640//26382 27644//26386 27645//26387 +f 27646//26388 27647//26389 27645//26387 27644//26386 +f 27648//26390 27646//26388 27644//26386 27643//26385 +f 27646//26388 27648//26390 27649//26391 27650//26392 +f 27647//26389 27646//26388 27650//26392 27651//26393 +f 27652//26394 27653//26395 27651//26393 27650//26392 +f 27654//26396 27652//26394 27650//26392 27649//26391 +f 27652//26394 27654//26396 27655//26397 27656//26398 +f 27653//26395 27652//26394 27656//26398 27657//26399 +f 27658//26400 27659//26401 27657//26399 27656//26398 +f 27660//26402 27658//26400 27656//26398 27655//26397 +f 27658//26400 27660//26402 27661//26403 27662//26404 +f 27659//26401 27658//26400 27662//26404 27663//26405 +f 27664//26406 27665//26407 27663//26405 27662//26404 +f 27666//26408 27664//26406 27662//26404 27661//26403 +f 27664//26406 27666//26408 27667//26409 27668//26410 +f 27665//26407 27664//26406 27668//26410 27669//26411 +f 27670//26412 27671//26413 27669//26411 27668//26410 +f 27672//26414 27670//26412 27668//26410 27667//26409 +f 27670//26412 27672//26414 27673//26415 27674//26416 +f 27671//26413 27670//26412 27674//26416 27675//26417 +f 27676//26418 27677//26419 27675//26417 27674//26416 +f 27678//26420 27676//26418 27674//26416 27673//26415 +f 27676//26418 27678//26420 27679//26421 27680//26422 +f 27677//26419 27676//26418 27680//26422 27681//26423 +f 27682//26424 27683//26425 27681//26423 27680//26422 +f 27684//26426 27682//26424 27680//26422 27679//26421 +f 27682//26424 27684//26426 27685//26427 27686//26428 +f 27683//26425 27682//26424 27686//26428 27687//26429 +f 23162//21903 23163//21904 27687//26429 27686//26428 +f 23164//21905 23162//21903 27686//26428 27685//26427 +f 23165//21906 23046//21787 27573//26315 27688//26430 +f 23167//21908 23165//21906 27688//26430 27689//26431 +f 27690//26432 27691//26433 27689//26431 27688//26430 +f 27575//26317 27690//26432 27688//26430 27573//26315 +f 27690//26432 27575//26317 27579//26321 27692//26434 +f 27691//26433 27690//26432 27692//26434 27693//26435 +f 27694//26436 27695//26437 27693//26435 27692//26434 +f 27581//26323 27694//26436 27692//26434 27579//26321 +f 27694//26436 27581//26323 27585//26327 27696//26438 +f 27695//26437 27694//26436 27696//26438 27697//26439 +f 27698//26440 27699//26441 27697//26439 27696//26438 +f 27587//26329 27698//26440 27696//26438 27585//26327 +f 27698//26440 27587//26329 27591//26333 27700//26442 +f 27699//26441 27698//26440 27700//26442 27701//26443 +f 27702//26444 27703//26445 27701//26443 27700//26442 +f 27593//26335 27702//26444 27700//26442 27591//26333 +f 27702//26444 27593//26335 27597//26339 27704//26446 +f 27702//26444 27704//26446 27705//26447 27703//26445 +f 27706//26448 27705//26447 27704//26446 27707//26449 +f 27599//26341 27707//26449 27704//26446 27597//26339 +f 27707//26449 27599//26341 27603//26345 27708//26450 +f 27707//26449 27708//26450 27709//26451 27706//26448 +f 27710//26452 27709//26451 27708//26450 27711//26453 +f 27711//26453 27708//26450 27603//26345 27604//26346 +f 27712//26454 27653//26395 27657//26399 27713//26455 +f 27714//26456 27712//26454 27713//26455 27715//26457 +f 27716//26458 27717//26459 27715//26457 27713//26455 +f 27659//26401 27716//26458 27713//26455 27657//26399 +f 27716//26458 27659//26401 27663//26405 27718//26460 +f 27717//26459 27716//26458 27718//26460 27719//26461 +f 27720//26462 27721//26463 27719//26461 27718//26460 +f 27665//26407 27720//26462 27718//26460 27663//26405 +f 27720//26462 27665//26407 27669//26411 27722//26464 +f 27721//26463 27720//26462 27722//26464 27723//26465 +f 27724//26466 27725//26467 27723//26465 27722//26464 +f 27671//26413 27724//26466 27722//26464 27669//26411 +f 27724//26466 27671//26413 27675//26417 27726//26468 +f 27725//26467 27724//26466 27726//26468 27727//26469 +f 27728//26470 27729//26471 27727//26469 27726//26468 +f 27677//26419 27728//26470 27726//26468 27675//26417 +f 27728//26470 27677//26419 27681//26423 27730//26472 +f 27729//26471 27728//26470 27730//26472 27731//26473 +f 27732//26474 27733//26475 27731//26473 27730//26472 +f 27683//26425 27732//26474 27730//26472 27681//26423 +f 27732//26474 27683//26425 27687//26429 27734//26476 +f 27733//26475 27732//26474 27734//26476 27735//26477 +f 23215//21956 23216//21957 27735//26477 27734//26476 +f 23163//21904 23215//21956 27734//26476 27687//26429 +f 23217//21958 23167//21908 27689//26431 27736//26478 +f 23219//21960 23217//21958 27736//26478 27737//26479 +f 27738//26480 27739//26481 27737//26479 27736//26478 +f 27691//26433 27738//26480 27736//26478 27689//26431 +f 27738//26480 27691//26433 27693//26435 27740//26482 +f 27739//26481 27738//26480 27740//26482 27741//26483 +f 27742//26484 27743//26485 27741//26483 27740//26482 +f 27695//26437 27742//26484 27740//26482 27693//26435 +f 27742//26484 27695//26437 27697//26439 27744//26486 +f 27743//26485 27742//26484 27744//26486 27745//26487 +f 27746//26488 27747//26489 27745//26487 27744//26486 +f 27699//26441 27746//26488 27744//26486 27697//26439 +f 27746//26488 27699//26441 27701//26443 27748//26490 +f 27747//26489 27746//26488 27748//26490 27749//26491 +f 27750//26492 27749//26491 27748//26490 27751//26493 +f 27751//26493 27748//26490 27701//26443 27703//26445 +f 27703//26445 27705//26447 27752//26494 27751//26493 +f 27751//26493 27752//26494 27753//26495 27750//26492 +f 27754//26496 27753//26495 27752//26494 27755//26497 +f 27755//26497 27752//26494 27705//26447 27706//26448 +f 27756//26498 27717//26459 27719//26461 27757//26499 +f 27758//26500 27756//26498 27757//26499 27759//26501 +f 27760//26502 27761//26503 27759//26501 27757//26499 +f 27721//26463 27760//26502 27757//26499 27719//26461 +f 27760//26502 27721//26463 27723//26465 27762//26504 +f 27761//26503 27760//26502 27762//26504 27763//26505 +f 27764//26506 27765//26507 27763//26505 27762//26504 +f 27725//26467 27764//26506 27762//26504 27723//26465 +f 27764//26506 27725//26467 27727//26469 27766//26508 +f 27765//26507 27764//26506 27766//26508 27767//26509 +f 27768//26510 27769//26511 27767//26509 27766//26508 +f 27729//26471 27768//26510 27766//26508 27727//26469 +f 27768//26510 27729//26471 27731//26473 27770//26512 +f 27769//26511 27768//26510 27770//26512 27771//26513 +f 27772//26514 27773//26515 27771//26513 27770//26512 +f 27733//26475 27772//26514 27770//26512 27731//26473 +f 27772//26514 27733//26475 27735//26477 27774//26516 +f 27773//26515 27772//26514 27774//26516 27775//26517 +f 23259//22000 23260//22001 27775//26517 27774//26516 +f 23216//21957 23259//22000 27774//26516 27735//26477 +f 23261//22002 23219//21960 27737//26479 27776//26518 +f 23263//22004 23261//22002 27776//26518 27777//26519 +f 27778//26520 27779//26521 27777//26519 27776//26518 +f 27739//26481 27778//26520 27776//26518 27737//26479 +f 27778//26520 27739//26481 27741//26483 27780//26522 +f 27779//26521 27778//26520 27780//26522 27781//26523 +f 27782//26524 27783//26525 27781//26523 27780//26522 +f 27743//26485 27782//26524 27780//26522 27741//26483 +f 27782//26524 27743//26485 27745//26487 27784//26526 +f 27783//26525 27782//26524 27784//26526 27785//26527 +f 27786//26528 27787//26529 27785//26527 27784//26526 +f 27747//26489 27786//26528 27784//26526 27745//26487 +f 27786//26528 27747//26489 27749//26491 27788//26530 +f 27787//26529 27786//26528 27788//26530 27789//26531 +f 27790//26532 27789//26531 27788//26530 27791//26533 +f 27791//26533 27788//26530 27749//26491 27750//26492 +f 27750//26492 27753//26495 27792//26534 27791//26533 +f 27791//26533 27792//26534 27793//26535 27790//26532 +f 27794//26536 27793//26535 27792//26534 27795//26537 +f 27795//26537 27792//26534 27753//26495 27754//26496 +f 27796//26538 27758//26500 27759//26501 27797//26539 +f 27798//26540 27796//26538 27797//26539 27799//26541 +f 27800//26542 27801//26543 27799//26541 27797//26539 +f 27761//26503 27800//26542 27797//26539 27759//26501 +f 27800//26542 27761//26503 27763//26505 27802//26544 +f 27801//26543 27800//26542 27802//26544 27803//26545 +f 27804//26546 27805//26547 27803//26545 27802//26544 +f 27765//26507 27804//26546 27802//26544 27763//26505 +f 27804//26546 27765//26507 27767//26509 27806//26548 +f 27805//26547 27804//26546 27806//26548 27807//26549 +f 27808//26550 27809//26551 27807//26549 27806//26548 +f 27769//26511 27808//26550 27806//26548 27767//26509 +f 27808//26550 27769//26511 27771//26513 27810//26552 +f 27809//26551 27808//26550 27810//26552 27811//26553 +f 27812//26554 27813//26555 27811//26553 27810//26552 +f 27773//26515 27812//26554 27810//26552 27771//26513 +f 27812//26554 27773//26515 27775//26517 27814//26556 +f 27813//26555 27812//26554 27814//26556 27815//26557 +f 23303//22044 23304//22045 27815//26557 27814//26556 +f 23260//22001 23303//22044 27814//26556 27775//26517 +f 23305//22046 23263//22004 27777//26519 27816//26558 +f 23307//22048 23305//22046 27816//26558 27817//26559 +f 27818//26560 27819//26561 27817//26559 27816//26558 +f 27779//26521 27818//26560 27816//26558 27777//26519 +f 27818//26560 27779//26521 27781//26523 27820//26562 +f 27819//26561 27818//26560 27820//26562 27821//26563 +f 27822//26564 27823//26565 27821//26563 27820//26562 +f 27783//26525 27822//26564 27820//26562 27781//26523 +f 27822//26564 27783//26525 27785//26527 27824//26566 +f 27823//26565 27822//26564 27824//26566 27825//26567 +f 27826//26568 27827//26569 27825//26567 27824//26566 +f 27787//26529 27826//26568 27824//26566 27785//26527 +f 27826//26568 27787//26529 27789//26531 27828//26570 +f 27827//26569 27826//26568 27828//26570 27829//26571 +f 27830//26572 27831//26573 27829//26571 27828//26570 +f 27790//26532 27830//26572 27828//26570 27789//26531 +f 27790//26532 27793//26535 27832//26574 27830//26572 +f 27830//26572 27832//26574 27833//26575 27831//26573 +f 27834//26576 27833//26575 27832//26574 27835//26577 +f 27835//26577 27832//26574 27793//26535 27794//26536 +f 27836//26578 27837//26579 27838//26580 27839//26581 +f 27839//26581 27838//26580 27840//26582 27841//26583 +f 27801//26543 27840//26582 27838//26580 27799//26541 +f 27799//26541 27838//26580 27837//26579 27798//26540 +f 27840//26582 27801//26543 27803//26545 27842//26584 +f 27841//26583 27840//26582 27842//26584 27843//26585 +f 27844//26586 27845//26587 27843//26585 27842//26584 +f 27805//26547 27844//26586 27842//26584 27803//26545 +f 27844//26586 27805//26547 27807//26549 27846//26588 +f 27845//26587 27844//26586 27846//26588 27847//26589 +f 27848//26590 27849//26591 27847//26589 27846//26588 +f 27809//26551 27848//26590 27846//26588 27807//26549 +f 27848//26590 27809//26551 27811//26553 27850//26592 +f 27849//26591 27848//26590 27850//26592 27851//26593 +f 27852//26594 27853//26595 27851//26593 27850//26592 +f 27813//26555 27852//26594 27850//26592 27811//26553 +f 27852//26594 27813//26555 27815//26557 27854//26596 +f 27853//26595 27852//26594 27854//26596 27855//26597 +f 23347//22088 23348//22089 27855//26597 27854//26596 +f 23304//22045 23347//22088 27854//26596 27815//26557 +f 23349//22090 23307//22048 27817//26559 27856//26598 +f 23351//22092 23349//22090 27856//26598 27857//26599 +f 27858//26600 27859//26601 27857//26599 27856//26598 +f 27819//26561 27858//26600 27856//26598 27817//26559 +f 27858//26600 27819//26561 27821//26563 27860//26602 +f 27859//26601 27858//26600 27860//26602 27861//26603 +f 27862//26604 27863//26605 27861//26603 27860//26602 +f 27823//26565 27862//26604 27860//26602 27821//26563 +f 27862//26604 27823//26565 27825//26567 27864//26606 +f 27863//26605 27862//26604 27864//26606 27865//26607 +f 27866//26608 27867//26609 27865//26607 27864//26606 +f 27827//26569 27866//26608 27864//26606 27825//26567 +f 27866//26608 27827//26569 27829//26571 27868//26610 +f 27867//26609 27866//26608 27868//26610 27869//26611 +f 27870//26612 27871//26613 27869//26611 27868//26610 +f 27831//26573 27870//26612 27868//26610 27829//26571 +f 27831//26573 27833//26575 27872//26614 27870//26612 +f 27871//26613 27870//26612 27872//26614 27873//26615 +f 27874//26616 27873//26615 27872//26614 27875//26617 +f 27875//26617 27872//26614 27833//26575 27834//26576 +f 27876//26618 27877//26619 27878//26620 27879//26621 +f 27880//26622 27876//26618 27879//26621 27881//26623 +f 27841//26583 27881//26623 27879//26621 27839//26581 +f 27839//26581 27879//26621 27878//26620 27836//26578 +f 27881//26623 27841//26583 27843//26585 27882//26624 +f 27880//26622 27881//26623 27882//26624 27883//26625 +f 27884//26626 27885//26627 27883//26625 27882//26624 +f 27845//26587 27884//26626 27882//26624 27843//26585 +f 27884//26626 27845//26587 27847//26589 27886//26628 +f 27885//26627 27884//26626 27886//26628 27887//26629 +f 27888//26630 27889//26631 27887//26629 27886//26628 +f 27849//26591 27888//26630 27886//26628 27847//26589 +f 27888//26630 27849//26591 27851//26593 27890//26632 +f 27889//26631 27888//26630 27890//26632 27891//26633 +f 27892//26634 27893//26635 27891//26633 27890//26632 +f 27853//26595 27892//26634 27890//26632 27851//26593 +f 27892//26634 27853//26595 27855//26597 27894//26636 +f 27893//26635 27892//26634 27894//26636 27895//26637 +f 23391//22132 23392//22133 27895//26637 27894//26636 +f 23348//22089 23391//22132 27894//26636 27855//26597 +f 23393//22134 23351//22092 27857//26599 27896//26638 +f 23395//22136 23393//22134 27896//26638 27897//26639 +f 27898//26640 27899//26641 27897//26639 27896//26638 +f 27859//26601 27898//26640 27896//26638 27857//26599 +f 27898//26640 27859//26601 27861//26603 27900//26642 +f 27899//26641 27898//26640 27900//26642 27901//26643 +f 27902//26644 27903//26645 27901//26643 27900//26642 +f 27863//26605 27902//26644 27900//26642 27861//26603 +f 27902//26644 27863//26605 27865//26607 27904//26646 +f 27903//26645 27902//26644 27904//26646 27905//26647 +f 27906//26648 27907//26649 27905//26647 27904//26646 +f 27867//26609 27906//26648 27904//26646 27865//26607 +f 27906//26648 27867//26609 27869//26611 27908//26650 +f 27907//26649 27906//26648 27908//26650 27909//26651 +f 27910//26652 27911//26653 27909//26651 27908//26650 +f 27871//26613 27910//26652 27908//26650 27869//26611 +f 27910//26652 27871//26613 27873//26615 27912//26654 +f 27911//26653 27910//26652 27912//26654 27913//26655 +f 27914//26656 27915//26657 27913//26655 27912//26654 +f 27874//26616 27914//26656 27912//26654 27873//26615 +f 27916//26658 27917//26659 27918//26660 27919//26661 +f 27920//26662 27916//26658 27919//26661 27921//26663 +f 27876//26618 27880//26622 27921//26663 27919//26661 +f 27877//26619 27876//26618 27919//26661 27918//26660 +f 27921//26663 27880//26622 27883//26625 27922//26664 +f 27920//26662 27921//26663 27922//26664 27923//26665 +f 27924//26666 27925//26667 27923//26665 27922//26664 +f 27885//26627 27924//26666 27922//26664 27883//26625 +f 27924//26666 27885//26627 27887//26629 27926//26668 +f 27925//26667 27924//26666 27926//26668 27927//26669 +f 27928//26670 27929//26671 27927//26669 27926//26668 +f 27889//26631 27928//26670 27926//26668 27887//26629 +f 27928//26670 27889//26631 27891//26633 27930//26672 +f 27929//26671 27928//26670 27930//26672 27931//26673 +f 27932//26674 27933//26675 27931//26673 27930//26672 +f 27893//26635 27932//26674 27930//26672 27891//26633 +f 27932//26674 27893//26635 27895//26637 27934//26676 +f 27933//26675 27932//26674 27934//26676 27935//26677 +f 23435//22176 23436//22177 27935//26677 27934//26676 +f 23392//22133 23435//22176 27934//26676 27895//26637 +f 23437//22178 23395//22136 27897//26639 27936//26678 +f 23439//22180 23437//22178 27936//26678 27937//26679 +f 27938//26680 27939//26681 27937//26679 27936//26678 +f 27899//26641 27938//26680 27936//26678 27897//26639 +f 27938//26680 27899//26641 27901//26643 27940//26682 +f 27939//26681 27938//26680 27940//26682 27941//26683 +f 27942//26684 27943//26685 27941//26683 27940//26682 +f 27903//26645 27942//26684 27940//26682 27901//26643 +f 27942//26684 27903//26645 27905//26647 27944//26686 +f 27943//26685 27942//26684 27944//26686 27945//26687 +f 27946//26688 27947//26689 27945//26687 27944//26686 +f 27907//26649 27946//26688 27944//26686 27905//26647 +f 27946//26688 27907//26649 27909//26651 27948//26690 +f 27947//26689 27946//26688 27948//26690 27949//26691 +f 27950//26692 27951//26693 27949//26691 27948//26690 +f 27911//26653 27950//26692 27948//26690 27909//26651 +f 27950//26692 27911//26653 27913//26655 27952//26694 +f 27951//26693 27950//26692 27952//26694 27953//26695 +f 27954//26696 27955//26697 27953//26695 27952//26694 +f 27915//26657 27954//26696 27952//26694 27913//26655 +f 27956//26698 27957//26699 27958//26700 27959//26701 +f 27960//26702 27956//26698 27959//26701 27961//26703 +f 27916//26658 27920//26662 27961//26703 27959//26701 +f 27917//26659 27916//26658 27959//26701 27958//26700 +f 27961//26703 27920//26662 27923//26665 27962//26704 +f 27961//26703 27962//26704 27963//26705 27960//26702 +f 27964//26706 27965//26707 27963//26705 27962//26704 +f 27925//26667 27964//26706 27962//26704 27923//26665 +f 27964//26706 27925//26667 27927//26669 27966//26708 +f 27965//26707 27964//26706 27966//26708 27967//26709 +f 27968//26710 27969//26711 27967//26709 27966//26708 +f 27929//26671 27968//26710 27966//26708 27927//26669 +f 27968//26710 27929//26671 27931//26673 27970//26712 +f 27969//26711 27968//26710 27970//26712 27971//26713 +f 27972//26714 27973//26715 27971//26713 27970//26712 +f 27933//26675 27972//26714 27970//26712 27931//26673 +f 27972//26714 27933//26675 27935//26677 27974//26716 +f 27973//26715 27972//26714 27974//26716 27975//26717 +f 23479//22220 23480//22221 27975//26717 27974//26716 +f 23436//22177 23479//22220 27974//26716 27935//26677 +f 23481//22222 23439//22180 27937//26679 27976//26718 +f 23483//22224 23481//22222 27976//26718 27977//26719 +f 27978//26720 27979//26721 27977//26719 27976//26718 +f 27939//26681 27978//26720 27976//26718 27937//26679 +f 27978//26720 27939//26681 27941//26683 27980//26722 +f 27979//26721 27978//26720 27980//26722 27981//26723 +f 27982//26724 27983//26725 27981//26723 27980//26722 +f 27943//26685 27982//26724 27980//26722 27941//26683 +f 27982//26724 27943//26685 27945//26687 27984//26726 +f 27983//26725 27982//26724 27984//26726 27985//26727 +f 27986//26728 27987//26729 27985//26727 27984//26726 +f 27947//26689 27986//26728 27984//26726 27945//26687 +f 27986//26728 27947//26689 27949//26691 27988//26730 +f 27987//26729 27986//26728 27988//26730 27989//26731 +f 27990//26732 27991//26733 27989//26731 27988//26730 +f 27951//26693 27990//26732 27988//26730 27949//26691 +f 27990//26732 27951//26693 27953//26695 27992//26734 +f 27991//26733 27990//26732 27992//26734 27993//26735 +f 27994//26736 27995//26737 27993//26735 27992//26734 +f 27955//26697 27994//26736 27992//26734 27953//26695 +f 27996//26738 27997//26739 27998//26740 27999//26741 +f 28000//26742 27996//26738 27999//26741 28001//26743 +f 27956//26698 27960//26702 28001//26743 27999//26741 +f 27957//26699 27956//26698 27999//26741 27998//26740 +f 27960//26702 27963//26705 28002//26744 28001//26743 +f 28001//26743 28002//26744 28003//26745 28000//26742 +f 28004//26746 28005//26747 28003//26745 28002//26744 +f 27965//26707 28004//26746 28002//26744 27963//26705 +f 28004//26746 27965//26707 27967//26709 28006//26748 +f 28005//26747 28004//26746 28006//26748 28007//26749 +f 28008//26750 28009//26751 28007//26749 28006//26748 +f 27969//26711 28008//26750 28006//26748 27967//26709 +f 28008//26750 27969//26711 27971//26713 28010//26752 +f 28009//26751 28008//26750 28010//26752 28011//26753 +f 28012//26754 28013//26755 28011//26753 28010//26752 +f 27973//26715 28012//26754 28010//26752 27971//26713 +f 28012//26754 27973//26715 27975//26717 28014//26756 +f 28013//26755 28012//26754 28014//26756 28015//26757 +f 23523//22264 23524//22265 28015//26757 28014//26756 +f 23480//22221 23523//22264 28014//26756 27975//26717 +f 23525//22266 23483//22224 27977//26719 28016//26758 +f 23527//22268 23525//22266 28016//26758 28017//26759 +f 28018//26760 28019//26761 28017//26759 28016//26758 +f 27979//26721 28018//26760 28016//26758 27977//26719 +f 28018//26760 27979//26721 27981//26723 28020//26762 +f 28019//26761 28018//26760 28020//26762 28021//26763 +f 28022//26764 28023//26765 28021//26763 28020//26762 +f 27983//26725 28022//26764 28020//26762 27981//26723 +f 28022//26764 27983//26725 27985//26727 28024//26766 +f 28023//26765 28022//26764 28024//26766 28025//26767 +f 28026//26768 28027//26769 28025//26767 28024//26766 +f 27987//26729 28026//26768 28024//26766 27985//26727 +f 28026//26768 27987//26729 27989//26731 28028//26770 +f 28027//26769 28026//26768 28028//26770 28029//26771 +f 28030//26772 28031//26773 28029//26771 28028//26770 +f 27991//26733 28030//26772 28028//26770 27989//26731 +f 28030//26772 27991//26733 27993//26735 28032//26774 +f 28031//26773 28030//26772 28032//26774 28033//26775 +f 28034//26776 28035//26777 28033//26775 28032//26774 +f 27995//26737 28034//26776 28032//26774 27993//26735 +f 27997//26739 27996//26738 28036//26778 28037//26779 +f 28037//26779 28036//26778 28038//26780 28039//26781 +f 28040//26782 28038//26780 28036//26778 28041//26783 +f 28041//26783 28036//26778 27996//26738 28000//26742 +f 28000//26742 28003//26745 28042//26784 28041//26783 +f 28041//26783 28042//26784 28043//26785 28040//26782 +f 28044//26786 28045//26787 28043//26785 28042//26784 +f 28005//26747 28044//26786 28042//26784 28003//26745 +f 28044//26786 28005//26747 28007//26749 28046//26788 +f 28045//26787 28044//26786 28046//26788 28047//26789 +f 28048//26790 28049//26791 28047//26789 28046//26788 +f 28009//26751 28048//26790 28046//26788 28007//26749 +f 28048//26790 28009//26751 28011//26753 28050//26792 +f 28049//26791 28048//26790 28050//26792 28051//26793 +f 28052//26794 28053//26795 28051//26793 28050//26792 +f 28013//26755 28052//26794 28050//26792 28011//26753 +f 28052//26794 28013//26755 28015//26757 28054//26796 +f 28053//26795 28052//26794 28054//26796 28055//26797 +f 23567//22308 23568//22309 28055//26797 28054//26796 +f 23524//22265 23567//22308 28054//26796 28015//26757 +f 23569//22310 23527//22268 28017//26759 28056//26798 +f 23571//22312 23569//22310 28056//26798 28057//26799 +f 28058//26800 28059//26801 28057//26799 28056//26798 +f 28019//26761 28058//26800 28056//26798 28017//26759 +f 28058//26800 28019//26761 28021//26763 28060//26802 +f 28059//26801 28058//26800 28060//26802 28061//26803 +f 28062//26804 28063//26805 28061//26803 28060//26802 +f 28023//26765 28062//26804 28060//26802 28021//26763 +f 28062//26804 28023//26765 28025//26767 28064//26806 +f 28063//26805 28062//26804 28064//26806 28065//26807 +f 28066//26808 28067//26809 28065//26807 28064//26806 +f 28027//26769 28066//26808 28064//26806 28025//26767 +f 28066//26808 28027//26769 28029//26771 28068//26810 +f 28067//26809 28066//26808 28068//26810 28069//26811 +f 28070//26812 28071//26813 28069//26811 28068//26810 +f 28031//26773 28070//26812 28068//26810 28029//26771 +f 28070//26812 28031//26773 28033//26775 28072//26814 +f 28071//26813 28070//26812 28072//26814 28073//26815 +f 28074//26816 28073//26815 28072//26814 28075//26817 +f 28035//26777 28075//26817 28072//26814 28033//26775 +f 28075//26817 28035//26777 28076//26818 28077//26819 +f 28075//26817 28077//26819 28078//26820 28074//26816 +f 28079//26821 28080//26822 28078//26820 28077//26819 +f 28081//26823 28079//26821 28077//26819 28076//26818 +f 28082//26824 28083//26825 28084//26826 28085//26827 +f 28085//26827 28084//26826 28086//26828 28087//26829 +f 28088//26830 28086//26828 28084//26826 28089//26831 +f 28089//26831 28084//26826 28083//26825 28039//26781 +f 28039//26781 28038//26780 28090//26832 28089//26831 +f 28089//26831 28090//26832 28091//26833 28088//26830 +f 28092//26834 28093//26835 28091//26833 28090//26832 +f 28092//26834 28090//26832 28038//26780 28040//26782 +f 28092//26834 28040//26782 28043//26785 28094//26836 +f 28093//26835 28092//26834 28094//26836 28095//26837 +f 28096//26838 28097//26839 28095//26837 28094//26836 +f 28045//26787 28096//26838 28094//26836 28043//26785 +f 28096//26838 28045//26787 28047//26789 28098//26840 +f 28097//26839 28096//26838 28098//26840 28099//26841 +f 28100//26842 28101//26843 28099//26841 28098//26840 +f 28049//26791 28100//26842 28098//26840 28047//26789 +f 28100//26842 28049//26791 28051//26793 28102//26844 +f 28101//26843 28100//26842 28102//26844 28103//26845 +f 28104//26846 28105//26847 28103//26845 28102//26844 +f 28053//26795 28104//26846 28102//26844 28051//26793 +f 28104//26846 28053//26795 28055//26797 28106//26848 +f 28105//26847 28104//26846 28106//26848 28107//26849 +f 23623//22364 23624//22365 28107//26849 28106//26848 +f 23568//22309 23623//22364 28106//26848 28055//26797 +f 23625//22366 23571//22312 28057//26799 28108//26850 +f 23627//22368 23625//22366 28108//26850 28109//26851 +f 28110//26852 28111//26853 28109//26851 28108//26850 +f 28059//26801 28110//26852 28108//26850 28057//26799 +f 28110//26852 28059//26801 28061//26803 28112//26854 +f 28111//26853 28110//26852 28112//26854 28113//26855 +f 28114//26856 28115//26857 28113//26855 28112//26854 +f 28063//26805 28114//26856 28112//26854 28061//26803 +f 28114//26856 28063//26805 28065//26807 28116//26858 +f 28115//26857 28114//26856 28116//26858 28117//26859 +f 28118//26860 28119//26861 28117//26859 28116//26858 +f 28067//26809 28118//26860 28116//26858 28065//26807 +f 28118//26860 28067//26809 28069//26811 28120//26862 +f 28119//26861 28118//26860 28120//26862 28121//26863 +f 28122//26864 28123//26865 28121//26863 28120//26862 +f 28071//26813 28122//26864 28120//26862 28069//26811 +f 28122//26864 28071//26813 28073//26815 28124//26866 +f 28123//26865 28122//26864 28124//26866 28125//26867 +f 28126//26868 28127//26869 28125//26867 28124//26866 +f 28074//26816 28126//26868 28124//26866 28073//26815 +f 28074//26816 28078//26820 28128//26870 28126//26868 +f 28127//26869 28126//26868 28128//26870 28129//26871 +f 28130//26872 28131//26873 28129//26871 28128//26870 +f 28080//26822 28130//26872 28128//26870 28078//26820 +f 28130//26872 28080//26822 28132//26874 28133//26875 +f 28131//26873 28130//26872 28133//26875 28134//26876 +f 28135//26877 28136//26878 28134//26876 28133//26875 +f 28137//26879 28135//26877 28133//26875 28132//26874 +f 28138//26880 28139//26881 28140//26882 28141//26883 +f 28142//26884 28138//26880 28141//26883 28143//26885 +f 28144//26886 28145//26887 28143//26885 28141//26883 +f 28146//26888 28144//26886 28141//26883 28140//26882 +f 28144//26886 28146//26888 28147//26889 28148//26890 +f 28145//26887 28144//26886 28148//26890 28149//26891 +f 28150//26892 28151//26893 28149//26891 28148//26890 +f 28152//26894 28150//26892 28148//26890 28147//26889 +f 28152//26894 28153//26895 28154//26896 28150//26892 +f 28150//26892 28154//26896 28155//26897 28151//26893 +f 28156//26898 28155//26897 28154//26896 28157//26899 +f 28157//26899 28154//26896 28153//26895 28158//26900 +f 28158//26900 28159//26901 28160//26902 28157//26899 +f 28157//26899 28160//26902 28161//26903 28156//26898 +f 28162//26904 28161//26903 28160//26902 28163//26905 +f 28163//26905 28160//26902 28159//26901 28164//26906 +f 28165//26907 28166//26908 28167//26909 28168//26910 +f 28168//26910 28167//26909 28169//26911 28170//26912 +f 28171//26913 28169//26911 28167//26909 28172//26914 +f 28172//26914 28167//26909 28166//26908 28087//26829 +f 28087//26829 28086//26828 28173//26915 28172//26914 +f 28172//26914 28173//26915 28174//26916 28171//26913 +f 28175//26917 28174//26916 28173//26915 28176//26918 +f 28176//26918 28173//26915 28086//26828 28088//26830 +f 28088//26830 28091//26833 28177//26919 28176//26918 +f 28176//26918 28177//26919 28178//26920 28175//26917 +f 28179//26921 28180//26922 28178//26920 28177//26919 +f 28093//26835 28179//26921 28177//26919 28091//26833 +f 28179//26921 28093//26835 28095//26837 28181//26923 +f 28180//26922 28179//26921 28181//26923 28182//26924 +f 28183//26925 28184//26926 28182//26924 28181//26923 +f 28097//26839 28183//26925 28181//26923 28095//26837 +f 28183//26925 28097//26839 28099//26841 28185//26927 +f 28184//26926 28183//26925 28185//26927 28186//26928 +f 28187//26929 28188//26930 28186//26928 28185//26927 +f 28101//26843 28187//26929 28185//26927 28099//26841 +f 28187//26929 28101//26843 28103//26845 28189//26931 +f 28188//26930 28187//26929 28189//26931 28190//26932 +f 28191//26933 28192//26934 28190//26932 28189//26931 +f 28105//26847 28191//26933 28189//26931 28103//26845 +f 28191//26933 28105//26847 28107//26849 28193//26935 +f 28192//26934 28191//26933 28193//26935 28194//26936 +f 23714//22455 23715//22456 28194//26936 28193//26935 +f 23624//22365 23714//22455 28193//26935 28107//26849 +f 23716//22457 23627//22368 28109//26851 28195//26937 +f 23718//22459 23716//22457 28195//26937 28196//26938 +f 28197//26939 28198//26940 28196//26938 28195//26937 +f 28111//26853 28197//26939 28195//26937 28109//26851 +f 28197//26939 28111//26853 28113//26855 28199//26941 +f 28198//26940 28197//26939 28199//26941 28200//26942 +f 28201//26943 28202//26944 28200//26942 28199//26941 +f 28115//26857 28201//26943 28199//26941 28113//26855 +f 28201//26943 28115//26857 28117//26859 28203//26945 +f 28202//26944 28201//26943 28203//26945 28204//26946 +f 28205//26947 28206//26948 28204//26946 28203//26945 +f 28119//26861 28205//26947 28203//26945 28117//26859 +f 28205//26947 28119//26861 28121//26863 28207//26949 +f 28206//26948 28205//26947 28207//26949 28208//26950 +f 28209//26951 28210//26952 28208//26950 28207//26949 +f 28123//26865 28209//26951 28207//26949 28121//26863 +f 28209//26951 28123//26865 28125//26867 28211//26953 +f 28210//26952 28209//26951 28211//26953 28212//26954 +f 28213//26955 28214//26956 28212//26954 28211//26953 +f 28127//26869 28213//26955 28211//26953 28125//26867 +f 28213//26955 28127//26869 28129//26871 28215//26957 +f 28214//26956 28213//26955 28215//26957 28216//26958 +f 28217//26959 28218//26960 28216//26958 28215//26957 +f 28131//26873 28217//26959 28215//26957 28129//26871 +f 28217//26959 28131//26873 28134//26876 28219//26961 +f 28218//26960 28217//26959 28219//26961 28220//26962 +f 28221//26963 28222//26964 28220//26962 28219//26961 +f 28136//26878 28221//26963 28219//26961 28134//26876 +f 28221//26963 28136//26878 28223//26965 28224//26966 +f 28222//26964 28221//26963 28224//26966 28225//26967 +f 28226//26968 28227//26969 28225//26967 28224//26966 +f 28228//26970 28226//26968 28224//26966 28223//26965 +f 28226//26968 28228//26970 28229//26971 28230//26972 +f 28227//26969 28226//26968 28230//26972 28231//26973 +f 28232//26974 28233//26975 28231//26973 28230//26972 +f 28234//26976 28232//26974 28230//26972 28229//26971 +f 28232//26974 28234//26976 28235//26977 28236//26978 +f 28233//26975 28232//26974 28236//26978 28237//26979 +f 28238//26980 28239//26981 28237//26979 28236//26978 +f 28240//26982 28238//26980 28236//26978 28235//26977 +f 28238//26980 28240//26982 28241//26983 28242//26984 +f 28239//26981 28238//26980 28242//26984 28243//26985 +f 28244//26986 28245//26987 28243//26985 28242//26984 +f 28244//26986 28242//26984 28241//26983 28246//26988 +f 28246//26988 28247//26989 28248//26990 28244//26986 +f 28245//26987 28244//26986 28248//26990 28249//26991 +f 28250//26992 28251//26993 28249//26991 28248//26990 +f 28250//26992 28248//26990 28247//26989 28252//26994 +f 28252//26994 28253//26995 28254//26996 28250//26992 +f 28251//26993 28250//26992 28254//26996 28255//26997 +f 28256//26998 28257//26999 28255//26997 28254//26996 +f 28256//26998 28254//26996 28253//26995 28170//26912 +f 28170//26912 28169//26911 28258//27000 28256//26998 +f 28257//26999 28256//26998 28258//27000 28259//27001 +f 28260//27002 28261//27003 28259//27001 28258//27000 +f 28260//27002 28258//27000 28169//26911 28171//26913 +f 28171//26913 28174//26916 28262//27004 28260//27002 +f 28261//27003 28260//27002 28262//27004 28263//27005 +f 28264//27006 28265//27007 28263//27005 28262//27004 +f 28264//27006 28262//27004 28174//26916 28175//26917 +f 28264//27006 28175//26917 28178//26920 28266//27008 +f 28265//27007 28264//27006 28266//27008 28267//27009 +f 28268//27010 28269//27011 28267//27009 28266//27008 +f 28180//26922 28268//27010 28266//27008 28178//26920 +f 28268//27010 28180//26922 28182//26924 28270//27012 +f 28269//27011 28268//27010 28270//27012 28271//27013 +f 28272//27014 28273//27015 28271//27013 28270//27012 +f 28184//26926 28272//27014 28270//27012 28182//26924 +f 28272//27014 28184//26926 28186//26928 28274//27016 +f 28273//27015 28272//27014 28274//27016 28275//27017 +f 28276//27018 28277//27019 28275//27017 28274//27016 +f 28188//26930 28276//27018 28274//27016 28186//26928 +f 28276//27018 28188//26930 28190//26932 28278//27020 +f 28277//27019 28276//27018 28278//27020 28279//27021 +f 28280//27022 28281//27023 28279//27021 28278//27020 +f 28192//26934 28280//27022 28278//27020 28190//26932 +f 28280//27022 28192//26934 28194//26936 28282//27024 +f 28281//27023 28280//27022 28282//27024 28283//27025 +f 23807//22548 23808//22549 28283//27025 28282//27024 +f 23715//22456 23807//22548 28282//27024 28194//26936 +f 23809//22550 23718//22459 28196//26938 28284//27026 +f 23811//22552 23809//22550 28284//27026 28285//27027 +f 28286//27028 28287//27029 28285//27027 28284//27026 +f 28198//26940 28286//27028 28284//27026 28196//26938 +f 28286//27028 28198//26940 28200//26942 28288//27030 +f 28287//27029 28286//27028 28288//27030 28289//27031 +f 28290//27032 28291//27033 28289//27031 28288//27030 +f 28202//26944 28290//27032 28288//27030 28200//26942 +f 28290//27032 28202//26944 28204//26946 28292//27034 +f 28291//27033 28290//27032 28292//27034 28293//27035 +f 28294//27036 28295//27037 28293//27035 28292//27034 +f 28206//26948 28294//27036 28292//27034 28204//26946 +f 28294//27036 28206//26948 28208//26950 28296//27038 +f 28295//27037 28294//27036 28296//27038 28297//27039 +f 28298//27040 28299//27041 28297//27039 28296//27038 +f 28210//26952 28298//27040 28296//27038 28208//26950 +f 28298//27040 28210//26952 28212//26954 28300//27042 +f 28299//27041 28298//27040 28300//27042 28301//27043 +f 28302//27044 28303//27045 28301//27043 28300//27042 +f 28214//26956 28302//27044 28300//27042 28212//26954 +f 28302//27044 28214//26956 28216//26958 28304//27046 +f 28303//27045 28302//27044 28304//27046 28305//27047 +f 28306//27048 28307//27049 28305//27047 28304//27046 +f 28218//26960 28306//27048 28304//27046 28216//26958 +f 28306//27048 28218//26960 28220//26962 28308//27050 +f 28307//27049 28306//27048 28308//27050 28309//27051 +f 28310//27052 28311//27053 28309//27051 28308//27050 +f 28222//26964 28310//27052 28308//27050 28220//26962 +f 28310//27052 28222//26964 28225//26967 28312//27054 +f 28311//27053 28310//27052 28312//27054 28313//27055 +f 28314//27056 28315//27057 28313//27055 28312//27054 +f 28227//26969 28314//27056 28312//27054 28225//26967 +f 28314//27056 28227//26969 28231//26973 28316//27058 +f 28315//27057 28314//27056 28316//27058 28317//27059 +f 28318//27060 28319//27061 28317//27059 28316//27058 +f 28233//26975 28318//27060 28316//27058 28231//26973 +f 28318//27060 28233//26975 28237//26979 28320//27062 +f 28319//27061 28318//27060 28320//27062 28321//27063 +f 28322//27064 28323//27065 28321//27063 28320//27062 +f 28239//26981 28322//27064 28320//27062 28237//26979 +f 28322//27064 28239//26981 28243//26985 28324//27066 +f 28323//27065 28322//27064 28324//27066 28325//27067 +f 28326//27068 28327//27069 28325//27067 28324//27066 +f 28245//26987 28326//27068 28324//27066 28243//26985 +f 28326//27068 28245//26987 28249//26991 28328//27070 +f 28327//27069 28326//27068 28328//27070 28329//27071 +f 28330//27072 28331//27073 28329//27071 28328//27070 +f 28251//26993 28330//27072 28328//27070 28249//26991 +f 28330//27072 28251//26993 28255//26997 28332//27074 +f 28331//27073 28330//27072 28332//27074 28333//27075 +f 28334//27076 28335//27077 28333//27075 28332//27074 +f 28257//26999 28334//27076 28332//27074 28255//26997 +f 28334//27076 28257//26999 28259//27001 28336//27078 +f 28335//27077 28334//27076 28336//27078 28337//27079 +f 28338//27080 28339//27081 28337//27079 28336//27078 +f 28261//27003 28338//27080 28336//27078 28259//27001 +f 28338//27080 28261//27003 28263//27005 28340//27082 +f 28339//27081 28338//27080 28340//27082 28341//27083 +f 28342//27084 28343//27085 28341//27083 28340//27082 +f 28265//27007 28342//27084 28340//27082 28263//27005 +f 28342//27084 28265//27007 28267//27009 28344//27086 +f 28343//27085 28342//27084 28344//27086 28345//27087 +f 28346//27088 28347//27089 28345//27087 28344//27086 +f 28269//27011 28346//27088 28344//27086 28267//27009 +f 28346//27088 28269//27011 28271//27013 28348//27090 +f 28347//27089 28346//27088 28348//27090 28349//27091 +f 28350//27092 28351//27093 28349//27091 28348//27090 +f 28273//27015 28350//27092 28348//27090 28271//27013 +f 28350//27092 28273//27015 28275//27017 28352//27094 +f 28351//27093 28350//27092 28352//27094 28353//27095 +f 28354//27096 28355//27097 28353//27095 28352//27094 +f 28277//27019 28354//27096 28352//27094 28275//27017 +f 28354//27096 28277//27019 28279//27021 28356//27098 +f 28355//27097 28354//27096 28356//27098 28357//27099 +f 28358//27100 28359//27101 28357//27099 28356//27098 +f 28281//27023 28358//27100 28356//27098 28279//27021 +f 28358//27100 28281//27023 28283//27025 28360//27102 +f 28359//27101 28358//27100 28360//27102 28361//27103 +f 23889//22630 23890//22631 28361//27103 28360//27102 +f 23808//22549 23889//22630 28360//27102 28283//27025 +f 23891//22632 23811//22552 28285//27027 28362//27104 +f 23893//22634 23891//22632 28362//27104 28363//27105 +f 28364//27106 28365//27107 28363//27105 28362//27104 +f 28287//27029 28364//27106 28362//27104 28285//27027 +f 28364//27106 28287//27029 28289//27031 28366//27108 +f 28365//27107 28364//27106 28366//27108 28367//27109 +f 28368//27110 28367//27109 28366//27108 28369//27111 +f 28291//27033 28369//27111 28366//27108 28289//27031 +f 28369//27111 28291//27033 28293//27035 28370//27112 +f 28368//27110 28369//27111 28370//27112 28371//27113 +f 28372//27114 28371//27113 28370//27112 28373//27115 +f 28295//27037 28373//27115 28370//27112 28293//27035 +f 28373//27115 28295//27037 28297//27039 28374//27116 +f 28373//27115 28374//27116 28375//27117 28372//27114 +f 28376//27118 28375//27117 28374//27116 28377//27119 +f 28299//27041 28377//27119 28374//27116 28297//27039 +f 28377//27119 28299//27041 28301//27043 28378//27120 +f 28376//27118 28377//27119 28378//27120 28379//27121 +f 28380//27122 28381//27123 28379//27121 28378//27120 +f 28303//27045 28380//27122 28378//27120 28301//27043 +f 28380//27122 28303//27045 28305//27047 28382//27124 +f 28381//27123 28380//27122 28382//27124 28383//27125 +f 28384//27126 28383//27125 28382//27124 28385//27127 +f 28307//27049 28385//27127 28382//27124 28305//27047 +f 28385//27127 28307//27049 28309//27051 28386//27128 +f 28384//27126 28385//27127 28386//27128 28387//27129 +f 28388//27130 28387//27129 28386//27128 28389//27131 +f 28311//27053 28389//27131 28386//27128 28309//27051 +f 28389//27131 28311//27053 28313//27055 28390//27132 +f 28389//27131 28390//27132 28391//27133 28388//27130 +f 28392//27134 28391//27133 28390//27132 28393//27135 +f 28315//27057 28393//27135 28390//27132 28313//27055 +f 28393//27135 28315//27057 28317//27059 28394//27136 +f 28392//27134 28393//27135 28394//27136 28395//27137 +f 28396//27138 28397//27139 28395//27137 28394//27136 +f 28319//27061 28396//27138 28394//27136 28317//27059 +f 28396//27138 28319//27061 28321//27063 28398//27140 +f 28397//27139 28396//27138 28398//27140 28399//27141 +f 28400//27142 28399//27141 28398//27140 28401//27143 +f 28323//27065 28401//27143 28398//27140 28321//27063 +f 28401//27143 28323//27065 28325//27067 28402//27144 +f 28400//27142 28401//27143 28402//27144 28403//27145 +f 28404//27146 28403//27145 28402//27144 28405//27147 +f 28327//27069 28405//27147 28402//27144 28325//27067 +f 28405//27147 28327//27069 28329//27071 28406//27148 +f 28405//27147 28406//27148 28407//27149 28404//27146 +f 28408//27150 28407//27149 28406//27148 28409//27151 +f 28331//27073 28409//27151 28406//27148 28329//27071 +f 28409//27151 28331//27073 28333//27075 28410//27152 +f 28408//27150 28409//27151 28410//27152 28411//27153 +f 28412//27154 28413//27155 28411//27153 28410//27152 +f 28335//27077 28412//27154 28410//27152 28333//27075 +f 28412//27154 28335//27077 28337//27079 28414//27156 +f 28413//27155 28412//27154 28414//27156 28415//27157 +f 28416//27158 28415//27157 28414//27156 28417//27159 +f 28339//27081 28417//27159 28414//27156 28337//27079 +f 28417//27159 28339//27081 28341//27083 28418//27160 +f 28416//27158 28417//27159 28418//27160 28419//27161 +f 28420//27162 28419//27161 28418//27160 28421//27163 +f 28343//27085 28421//27163 28418//27160 28341//27083 +f 28421//27163 28343//27085 28345//27087 28422//27164 +f 28421//27163 28422//27164 28423//27165 28420//27162 +f 28424//27166 28423//27165 28422//27164 28425//27167 +f 28347//27089 28425//27167 28422//27164 28345//27087 +f 28425//27167 28347//27089 28349//27091 28426//27168 +f 28424//27166 28425//27167 28426//27168 28427//27169 +f 28428//27170 28429//27171 28427//27169 28426//27168 +f 28351//27093 28428//27170 28426//27168 28349//27091 +f 28428//27170 28351//27093 28353//27095 28430//27172 +f 28429//27171 28428//27170 28430//27172 28431//27173 +f 28432//27174 28431//27173 28430//27172 28433//27175 +f 28355//27097 28433//27175 28430//27172 28353//27095 +f 28433//27175 28355//27097 28357//27099 28434//27176 +f 28432//27174 28433//27175 28434//27176 28435//27177 +f 28436//27178 28435//27177 28434//27176 28437//27179 +f 28359//27101 28437//27179 28434//27176 28357//27099 +f 28437//27179 28359//27101 28361//27103 28438//27180 +f 28437//27179 28438//27180 28439//27181 28436//27178 +f 23971//22712 28439//27181 28438//27180 23972//22713 +f 23890//22631 23972//22713 28438//27180 28361//27103 +f 23973//22714 23976//22717 28440//27182 28441//27183 +f 22922//21663 23973//22714 28441//27183 27454//26196 +f 28442//27184 27459//26201 27454//26196 28441//27183 +f 28443//27185 28442//27184 28441//27183 28440//27182 +f 28442//27184 28443//27185 28444//27186 28445//27187 +f 27459//26201 28442//27184 28445//27187 27460//26202 +f 28446//27188 27465//26207 27460//26202 28445//27187 +f 28447//27189 28446//27188 28445//27187 28444//27186 +f 28446//27188 28447//27189 28448//27190 28449//27191 +f 27465//26207 28446//27188 28449//27191 27466//26208 +f 28450//27192 27471//26213 27466//26208 28449//27191 +f 28451//27193 28450//27192 28449//27191 28448//27190 +f 28450//27192 28451//27193 28452//27194 28453//27195 +f 27471//26213 28450//27192 28453//27195 27472//26214 +f 28454//27196 27477//26219 27472//26214 28453//27195 +f 28455//27197 28454//27196 28453//27195 28452//27194 +f 28454//27196 28455//27197 28456//27198 28457//27199 +f 27477//26219 28454//27196 28457//27199 27478//26220 +f 28458//27200 27483//26225 27478//26220 28457//27199 +f 28459//27201 28458//27200 28457//27199 28456//27198 +f 28458//27200 28459//27201 28460//27202 28461//27203 +f 27483//26225 28458//27200 28461//27203 27484//26226 +f 28462//27204 27489//26231 27484//26226 28461//27203 +f 28463//27205 28462//27204 28461//27203 28460//27202 +f 28462//27204 28463//27205 28464//27206 28465//27207 +f 27489//26231 28462//27204 28465//27207 27490//26232 +f 28466//27208 27495//26237 27490//26232 28465//27207 +f 28467//27209 28466//27208 28465//27207 28464//27206 +f 28466//27208 28467//27209 28468//27210 28469//27211 +f 27495//26237 28466//27208 28469//27211 27496//26238 +f 28470//27212 27501//26243 27496//26238 28469//27211 +f 28471//27213 28470//27212 28469//27211 28468//27210 +f 28470//27212 28471//27213 28472//27214 28473//27215 +f 27501//26243 28470//27212 28473//27215 27502//26244 +f 28474//27216 27507//26249 27502//26244 28473//27215 +f 28475//27217 28474//27216 28473//27215 28472//27214 +f 28474//27216 28475//27217 28476//27218 28477//27219 +f 27507//26249 28474//27216 28477//27219 27508//26250 +f 28478//27220 27513//26255 27508//26250 28477//27219 +f 28479//27221 28478//27220 28477//27219 28476//27218 +f 28478//27220 28479//27221 28480//27222 28481//27223 +f 27513//26255 28478//27220 28481//27223 27514//26256 +f 28482//27224 27519//26261 27514//26256 28481//27223 +f 28483//27225 28482//27224 28481//27223 28480//27222 +f 28482//27224 28483//27225 28484//27226 28485//27227 +f 27519//26261 28482//27224 28485//27227 27520//26262 +f 28486//27228 27525//26267 27520//26262 28485//27227 +f 28487//27229 28486//27228 28485//27227 28484//27226 +f 28486//27228 28487//27229 28488//27230 28489//27231 +f 27525//26267 28486//27228 28489//27231 27526//26268 +f 28490//27232 27531//26273 27526//26268 28489//27231 +f 28491//27233 28490//27232 28489//27231 28488//27230 +f 28490//27232 28491//27233 28492//27234 28493//27235 +f 27531//26273 28490//27232 28493//27235 27532//26274 +f 28494//27236 27537//26279 27532//26274 28493//27235 +f 28495//27237 28494//27236 28493//27235 28492//27234 +f 28494//27236 28495//27237 28496//27238 28497//27239 +f 27537//26279 28494//27236 28497//27239 27538//26280 +f 28498//27240 27543//26285 27538//26280 28497//27239 +f 28499//27241 28498//27240 28497//27239 28496//27238 +f 28498//27240 28499//27241 28500//27242 28501//27243 +f 27543//26285 28498//27240 28501//27243 27544//26286 +f 28502//27244 27549//26291 27544//26286 28501//27243 +f 28503//27245 28502//27244 28501//27243 28500//27242 +f 28502//27244 28503//27245 28504//27246 28505//27247 +f 27549//26291 28502//27244 28505//27247 27550//26292 +f 28506//27248 27555//26297 27550//26292 28505//27247 +f 28507//27249 28506//27248 28505//27247 28504//27246 +f 28506//27248 28507//27249 28508//27250 28509//27251 +f 27555//26297 28506//27248 28509//27251 27556//26298 +f 28510//27252 27561//26303 27556//26298 28509//27251 +f 28511//27253 28510//27252 28509//27251 28508//27250 +f 28510//27252 28511//27253 28512//27254 28513//27255 +f 27561//26303 28510//27252 28513//27255 27562//26304 +f 28514//27256 27567//26309 27562//26304 28513//27255 +f 28515//27257 28514//27256 28513//27255 28512//27254 +f 28514//27256 28515//27257 28516//27258 28517//27259 +f 27567//26309 28514//27256 28517//27259 27568//26310 +f 24053//22794 23041//21782 27568//26310 28517//27259 +f 24054//22795 24053//22794 28517//27259 28516//27258 +f 24055//22796 24058//22799 28518//27260 28519//27261 +f 23976//22717 24055//22796 28519//27261 28440//27182 +f 28520//27262 28443//27185 28440//27182 28519//27261 +f 28521//27263 28520//27262 28519//27261 28518//27260 +f 28520//27262 28521//27263 28522//27264 28523//27265 +f 28443//27185 28520//27262 28523//27265 28444//27186 +f 28524//27266 28447//27189 28444//27186 28523//27265 +f 28525//27267 28524//27266 28523//27265 28522//27264 +f 28524//27266 28525//27267 28526//27268 28527//27269 +f 28447//27189 28524//27266 28527//27269 28448//27190 +f 28528//27270 28451//27193 28448//27190 28527//27269 +f 28529//27271 28528//27270 28527//27269 28526//27268 +f 28528//27270 28529//27271 28530//27272 28531//27273 +f 28451//27193 28528//27270 28531//27273 28452//27194 +f 28532//27274 28455//27197 28452//27194 28531//27273 +f 28533//27275 28532//27274 28531//27273 28530//27272 +f 28532//27274 28533//27275 28534//27276 28535//27277 +f 28455//27197 28532//27274 28535//27277 28456//27198 +f 28536//27278 28459//27201 28456//27198 28535//27277 +f 28537//27279 28536//27278 28535//27277 28534//27276 +f 28536//27278 28537//27279 28538//27280 28539//27281 +f 28459//27201 28536//27278 28539//27281 28460//27202 +f 28540//27282 28463//27205 28460//27202 28539//27281 +f 28541//27283 28540//27282 28539//27281 28538//27280 +f 28540//27282 28541//27283 28542//27284 28543//27285 +f 28463//27205 28540//27282 28543//27285 28464//27206 +f 28544//27286 28467//27209 28464//27206 28543//27285 +f 28545//27287 28544//27286 28543//27285 28542//27284 +f 28544//27286 28545//27287 28546//27288 28547//27289 +f 28467//27209 28544//27286 28547//27289 28468//27210 +f 28548//27290 28471//27213 28468//27210 28547//27289 +f 28549//27291 28548//27290 28547//27289 28546//27288 +f 28548//27290 28549//27291 28550//27292 28551//27293 +f 28471//27213 28548//27290 28551//27293 28472//27214 +f 28552//27294 28475//27217 28472//27214 28551//27293 +f 28553//27295 28552//27294 28551//27293 28550//27292 +f 28552//27294 28553//27295 28554//27296 28555//27297 +f 28475//27217 28552//27294 28555//27297 28476//27218 +f 28556//27298 28479//27221 28476//27218 28555//27297 +f 28557//27299 28556//27298 28555//27297 28554//27296 +f 28556//27298 28557//27299 28558//27300 28559//27301 +f 28479//27221 28556//27298 28559//27301 28480//27222 +f 28560//27302 28483//27225 28480//27222 28559//27301 +f 28561//27303 28560//27302 28559//27301 28558//27300 +f 28560//27302 28561//27303 28562//27304 28563//27305 +f 28483//27225 28560//27302 28563//27305 28484//27226 +f 28564//27306 28487//27229 28484//27226 28563//27305 +f 28565//27307 28564//27306 28563//27305 28562//27304 +f 28564//27306 28565//27307 28566//27308 28567//27309 +f 28487//27229 28564//27306 28567//27309 28488//27230 +f 28568//27310 28491//27233 28488//27230 28567//27309 +f 28569//27311 28568//27310 28567//27309 28566//27308 +f 28568//27310 28569//27311 28570//27312 28571//27313 +f 28491//27233 28568//27310 28571//27313 28492//27234 +f 28572//27314 28495//27237 28492//27234 28571//27313 +f 28573//27315 28572//27314 28571//27313 28570//27312 +f 28572//27314 28573//27315 28574//27316 28575//27317 +f 28495//27237 28572//27314 28575//27317 28496//27238 +f 28576//27318 28499//27241 28496//27238 28575//27317 +f 28577//27319 28576//27318 28575//27317 28574//27316 +f 28576//27318 28577//27319 28578//27320 28579//27321 +f 28499//27241 28576//27318 28579//27321 28500//27242 +f 28580//27322 28503//27245 28500//27242 28579//27321 +f 28581//27323 28580//27322 28579//27321 28578//27320 +f 28580//27322 28581//27323 28582//27324 28583//27325 +f 28503//27245 28580//27322 28583//27325 28504//27246 +f 28584//27326 28507//27249 28504//27246 28583//27325 +f 28585//27327 28584//27326 28583//27325 28582//27324 +f 28584//27326 28585//27327 28586//27328 28587//27329 +f 28507//27249 28584//27326 28587//27329 28508//27250 +f 28588//27330 28511//27253 28508//27250 28587//27329 +f 28589//27331 28588//27330 28587//27329 28586//27328 +f 28588//27330 28589//27331 28590//27332 28591//27333 +f 28511//27253 28588//27330 28591//27333 28512//27254 +f 28592//27334 28515//27257 28512//27254 28591//27333 +f 28593//27335 28592//27334 28591//27333 28590//27332 +f 28592//27334 28593//27335 28594//27336 28595//27337 +f 28515//27257 28592//27334 28595//27337 28516//27258 +f 24135//22876 24054//22795 28516//27258 28595//27337 +f 24136//22877 24135//22876 28595//27337 28594//27336 +f 24137//22878 22923//21664 27456//26198 28596//27338 +f 23045//21786 24137//22878 28596//27338 27571//26313 +f 28597//27339 27576//26318 27571//26313 28596//27338 +f 27458//26200 28597//27339 28596//27338 27456//26198 +f 28597//27339 27458//26200 27462//26204 28598//27340 +f 27576//26318 28597//27339 28598//27340 27577//26319 +f 28599//27341 27582//26324 27577//26319 28598//27340 +f 27464//26206 28599//27341 28598//27340 27462//26204 +f 28599//27341 27464//26206 27468//26210 28600//27342 +f 27582//26324 28599//27341 28600//27342 27583//26325 +f 28601//27343 27588//26330 27583//26325 28600//27342 +f 27470//26212 28601//27343 28600//27342 27468//26210 +f 28601//27343 27470//26212 27474//26216 28602//27344 +f 27588//26330 28601//27343 28602//27344 27589//26331 +f 28603//27345 27594//26336 27589//26331 28602//27344 +f 27476//26218 28603//27345 28602//27344 27474//26216 +f 28603//27345 27476//26218 27480//26222 28604//27346 +f 27594//26336 28603//27345 28604//27346 27595//26337 +f 28605//27347 27600//26342 27595//26337 28604//27346 +f 27482//26224 28605//27347 28604//27346 27480//26222 +f 28605//27347 27482//26224 27486//26228 28606//27348 +f 27600//26342 28605//27347 28606//27348 27601//26343 +f 28607//27349 27606//26348 27601//26343 28606//27348 +f 27488//26230 28607//27349 28606//27348 27486//26228 +f 28607//27349 27488//26230 27492//26234 28608//27350 +f 28607//27349 28608//27350 27607//26349 27606//26348 +f 27612//26354 27607//26349 28608//27350 28609//27351 +f 27494//26236 28609//27351 28608//27350 27492//26234 +f 28609//27351 27494//26236 27498//26240 28610//27352 +f 28609//27351 28610//27352 27613//26355 27612//26354 +f 27618//26360 27613//26355 28610//27352 28611//27353 +f 27500//26242 28611//27353 28610//27352 27498//26240 +f 28611//27353 27500//26242 27504//26246 28612//27354 +f 28611//27353 28612//27354 27619//26361 27618//26360 +f 27624//26366 27619//26361 28612//27354 28613//27355 +f 27506//26248 28613//27355 28612//27354 27504//26246 +f 28613//27355 27506//26248 27510//26252 28614//27356 +f 28613//27355 28614//27356 27625//26367 27624//26366 +f 28615//27357 27630//26372 27625//26367 28614//27356 +f 27512//26254 28615//27357 28614//27356 27510//26252 +f 28615//27357 27512//26254 27516//26258 28616//27358 +f 27630//26372 28615//27357 28616//27358 27631//26373 +f 28617//27359 27636//26378 27631//26373 28616//27358 +f 27518//26260 28617//27359 28616//27358 27516//26258 +f 28617//27359 27518//26260 27522//26264 28618//27360 +f 27636//26378 28617//27359 28618//27360 27637//26379 +f 28619//27361 27642//26384 27637//26379 28618//27360 +f 27524//26266 28619//27361 28618//27360 27522//26264 +f 28619//27361 27524//26266 27528//26270 28620//27362 +f 27642//26384 28619//27361 28620//27362 27643//26385 +f 28621//27363 27648//26390 27643//26385 28620//27362 +f 27530//26272 28621//27363 28620//27362 27528//26270 +f 28621//27363 27530//26272 27534//26276 28622//27364 +f 27648//26390 28621//27363 28622//27364 27649//26391 +f 28623//27365 27654//26396 27649//26391 28622//27364 +f 27536//26278 28623//27365 28622//27364 27534//26276 +f 28623//27365 27536//26278 27540//26282 28624//27366 +f 27654//26396 28623//27365 28624//27366 27655//26397 +f 28625//27367 27660//26402 27655//26397 28624//27366 +f 27542//26284 28625//27367 28624//27366 27540//26282 +f 28625//27367 27542//26284 27546//26288 28626//27368 +f 27660//26402 28625//27367 28626//27368 27661//26403 +f 28627//27369 27666//26408 27661//26403 28626//27368 +f 27548//26290 28627//27369 28626//27368 27546//26288 +f 28627//27369 27548//26290 27552//26294 28628//27370 +f 27666//26408 28627//27369 28628//27370 27667//26409 +f 28629//27371 27672//26414 27667//26409 28628//27370 +f 27554//26296 28629//27371 28628//27370 27552//26294 +f 28629//27371 27554//26296 27558//26300 28630//27372 +f 27672//26414 28629//27371 28630//27372 27673//26415 +f 28631//27373 27678//26420 27673//26415 28630//27372 +f 27560//26302 28631//27373 28630//27372 27558//26300 +f 28631//27373 27560//26302 27564//26306 28632//27374 +f 27678//26420 28631//27373 28632//27374 27679//26421 +f 28633//27375 27684//26426 27679//26421 28632//27374 +f 27566//26308 28633//27375 28632//27374 27564//26306 +f 28633//27375 27566//26308 27570//26312 28634//27376 +f 27684//26426 28633//27375 28634//27376 27685//26427 +f 24177//22918 23164//21905 27685//26427 28634//27376 +f 23040//21781 24177//22918 28634//27376 27570//26312 +f 24178//22919 24181//22922 28635//27377 28636//27378 +f 24058//22799 24178//22919 28636//27378 28518//27260 +f 28637//27379 28521//27263 28518//27260 28636//27378 +f 28638//27380 28637//27379 28636//27378 28635//27377 +f 28637//27379 28638//27380 28639//27381 28640//27382 +f 28521//27263 28637//27379 28640//27382 28522//27264 +f 28641//27383 28525//27267 28522//27264 28640//27382 +f 28642//27384 28641//27383 28640//27382 28639//27381 +f 28641//27383 28642//27384 28643//27385 28644//27386 +f 28525//27267 28641//27383 28644//27386 28526//27268 +f 28645//27387 28529//27271 28526//27268 28644//27386 +f 28646//27388 28645//27387 28644//27386 28643//27385 +f 28645//27387 28646//27388 28647//27389 28648//27390 +f 28529//27271 28645//27387 28648//27390 28530//27272 +f 28649//27391 28533//27275 28530//27272 28648//27390 +f 28650//27392 28649//27391 28648//27390 28647//27389 +f 28649//27391 28650//27392 28651//27393 28652//27394 +f 28533//27275 28649//27391 28652//27394 28534//27276 +f 28653//27395 28537//27279 28534//27276 28652//27394 +f 28654//27396 28653//27395 28652//27394 28651//27393 +f 28653//27395 28654//27396 28655//27397 28656//27398 +f 28537//27279 28653//27395 28656//27398 28538//27280 +f 28657//27399 28541//27283 28538//27280 28656//27398 +f 28658//27400 28657//27399 28656//27398 28655//27397 +f 28657//27399 28658//27400 28659//27401 28660//27402 +f 28541//27283 28657//27399 28660//27402 28542//27284 +f 28661//27403 28545//27287 28542//27284 28660//27402 +f 28662//27404 28661//27403 28660//27402 28659//27401 +f 28661//27403 28662//27404 28663//27405 28664//27406 +f 28545//27287 28661//27403 28664//27406 28546//27288 +f 28665//27407 28549//27291 28546//27288 28664//27406 +f 28666//27408 28665//27407 28664//27406 28663//27405 +f 28665//27407 28666//27408 28667//27409 28668//27410 +f 28549//27291 28665//27407 28668//27410 28550//27292 +f 28669//27411 28553//27295 28550//27292 28668//27410 +f 28670//27412 28669//27411 28668//27410 28667//27409 +f 28669//27411 28670//27412 28671//27413 28672//27414 +f 28553//27295 28669//27411 28672//27414 28554//27296 +f 28673//27415 28557//27299 28554//27296 28672//27414 +f 28674//27416 28673//27415 28672//27414 28671//27413 +f 28673//27415 28674//27416 28675//27417 28676//27418 +f 28557//27299 28673//27415 28676//27418 28558//27300 +f 28677//27419 28561//27303 28558//27300 28676//27418 +f 28678//27420 28677//27419 28676//27418 28675//27417 +f 28677//27419 28678//27420 28679//27421 28680//27422 +f 28561//27303 28677//27419 28680//27422 28562//27304 +f 28681//27423 28565//27307 28562//27304 28680//27422 +f 28682//27424 28681//27423 28680//27422 28679//27421 +f 28681//27423 28682//27424 28683//27425 28684//27426 +f 28565//27307 28681//27423 28684//27426 28566//27308 +f 28685//27427 28569//27311 28566//27308 28684//27426 +f 28686//27428 28685//27427 28684//27426 28683//27425 +f 28685//27427 28686//27428 28687//27429 28688//27430 +f 28569//27311 28685//27427 28688//27430 28570//27312 +f 28689//27431 28573//27315 28570//27312 28688//27430 +f 28690//27432 28689//27431 28688//27430 28687//27429 +f 28689//27431 28690//27432 28691//27433 28692//27434 +f 28573//27315 28689//27431 28692//27434 28574//27316 +f 28693//27435 28577//27319 28574//27316 28692//27434 +f 28694//27436 28693//27435 28692//27434 28691//27433 +f 28693//27435 28694//27436 28695//27437 28696//27438 +f 28577//27319 28693//27435 28696//27438 28578//27320 +f 28697//27439 28581//27323 28578//27320 28696//27438 +f 28698//27440 28697//27439 28696//27438 28695//27437 +f 28697//27439 28698//27440 28699//27441 28700//27442 +f 28581//27323 28697//27439 28700//27442 28582//27324 +f 28701//27443 28585//27327 28582//27324 28700//27442 +f 28702//27444 28701//27443 28700//27442 28699//27441 +f 28701//27443 28702//27444 28703//27445 28704//27446 +f 28585//27327 28701//27443 28704//27446 28586//27328 +f 28705//27447 28589//27331 28586//27328 28704//27446 +f 28706//27448 28705//27447 28704//27446 28703//27445 +f 28705//27447 28706//27448 28707//27449 28708//27450 +f 28589//27331 28705//27447 28708//27450 28590//27332 +f 28709//27451 28593//27335 28590//27332 28708//27450 +f 28710//27452 28709//27451 28708//27450 28707//27449 +f 28709//27451 28710//27452 28711//27453 28712//27454 +f 28593//27335 28709//27451 28712//27454 28594//27336 +f 24258//22999 24136//22877 28594//27336 28712//27454 +f 24259//23000 24258//22999 28712//27454 28711//27453 +f 24260//23001 22800//21538 27339//26081 28713//27455 +f 24181//22922 24260//23001 28713//27455 28635//27377 +f 28714//27456 28638//27380 28635//27377 28713//27455 +f 27341//26083 28714//27456 28713//27455 27339//26081 +f 28714//27456 27341//26083 27345//26087 28715//27457 +f 28638//27380 28714//27456 28715//27457 28639//27381 +f 28716//27458 28642//27384 28639//27381 28715//27457 +f 27347//26089 28716//27458 28715//27457 27345//26087 +f 28716//27458 27347//26089 27351//26093 28717//27459 +f 28642//27384 28716//27458 28717//27459 28643//27385 +f 28718//27460 28646//27388 28643//27385 28717//27459 +f 27353//26095 28718//27460 28717//27459 27351//26093 +f 28718//27460 27353//26095 27357//26099 28719//27461 +f 28646//27388 28718//27460 28719//27461 28647//27389 +f 28720//27462 28650//27392 28647//27389 28719//27461 +f 27359//26101 28720//27462 28719//27461 27357//26099 +f 28720//27462 27359//26101 27363//26105 28721//27463 +f 28650//27392 28720//27462 28721//27463 28651//27393 +f 28722//27464 28654//27396 28651//27393 28721//27463 +f 27365//26107 28722//27464 28721//27463 27363//26105 +f 28722//27464 27365//26107 27369//26111 28723//27465 +f 28654//27396 28722//27464 28723//27465 28655//27397 +f 28724//27466 28658//27400 28655//27397 28723//27465 +f 27371//26113 28724//27466 28723//27465 27369//26111 +f 28724//27466 27371//26113 27375//26117 28725//27467 +f 28658//27400 28724//27466 28725//27467 28659//27401 +f 28726//27468 28662//27404 28659//27401 28725//27467 +f 27377//26119 28726//27468 28725//27467 27375//26117 +f 28726//27468 27377//26119 27381//26123 28727//27469 +f 28662//27404 28726//27468 28727//27469 28663//27405 +f 28728//27470 28666//27408 28663//27405 28727//27469 +f 27383//26125 28728//27470 28727//27469 27381//26123 +f 28728//27470 27383//26125 27387//26129 28729//27471 +f 28666//27408 28728//27470 28729//27471 28667//27409 +f 28730//27472 28670//27412 28667//27409 28729//27471 +f 27389//26131 28730//27472 28729//27471 27387//26129 +f 28730//27472 27389//26131 27393//26135 28731//27473 +f 28670//27412 28730//27472 28731//27473 28671//27413 +f 28732//27474 28674//27416 28671//27413 28731//27473 +f 27395//26137 28732//27474 28731//27473 27393//26135 +f 28732//27474 27395//26137 27399//26141 28733//27475 +f 28674//27416 28732//27474 28733//27475 28675//27417 +f 28734//27476 28678//27420 28675//27417 28733//27475 +f 27401//26143 28734//27476 28733//27475 27399//26141 +f 28734//27476 27401//26143 27405//26147 28735//27477 +f 28678//27420 28734//27476 28735//27477 28679//27421 +f 28736//27478 28682//27424 28679//27421 28735//27477 +f 27407//26149 28736//27478 28735//27477 27405//26147 +f 28736//27478 27407//26149 27411//26153 28737//27479 +f 28682//27424 28736//27478 28737//27479 28683//27425 +f 28738//27480 28686//27428 28683//27425 28737//27479 +f 27413//26155 28738//27480 28737//27479 27411//26153 +f 28738//27480 27413//26155 27417//26159 28739//27481 +f 28686//27428 28738//27480 28739//27481 28687//27429 +f 28740//27482 28690//27432 28687//27429 28739//27481 +f 27419//26161 28740//27482 28739//27481 27417//26159 +f 28740//27482 27419//26161 27423//26165 28741//27483 +f 28690//27432 28740//27482 28741//27483 28691//27433 +f 28742//27484 28694//27436 28691//27433 28741//27483 +f 27425//26167 28742//27484 28741//27483 27423//26165 +f 28742//27484 27425//26167 27429//26171 28743//27485 +f 28694//27436 28742//27484 28743//27485 28695//27437 +f 28744//27486 28698//27440 28695//27437 28743//27485 +f 27431//26173 28744//27486 28743//27485 27429//26171 +f 28744//27486 27431//26173 27435//26177 28745//27487 +f 28698//27440 28744//27486 28745//27487 28699//27441 +f 28746//27488 28702//27444 28699//27441 28745//27487 +f 27437//26179 28746//27488 28745//27487 27435//26177 +f 28746//27488 27437//26179 27441//26183 28747//27489 +f 28702//27444 28746//27488 28747//27489 28703//27445 +f 28748//27490 28706//27448 28703//27445 28747//27489 +f 27443//26185 28748//27490 28747//27489 27441//26183 +f 28748//27490 27443//26185 27447//26189 28749//27491 +f 28706//27448 28748//27490 28749//27491 28707//27449 +f 28750//27492 28710//27452 28707//27449 28749//27491 +f 27449//26191 28750//27492 28749//27491 27447//26189 +f 28750//27492 27449//26191 27453//26195 28751//27493 +f 28710//27452 28750//27492 28751//27493 28711//27453 +f 24300//23041 24259//23000 28711//27453 28751//27493 +f 22917//21658 24300//23041 28751//27493 27453//26195 +f 27337//26079 22799//23044 24302//23043 28752//27494 +f 27342//26084 27337//26079 28752//27494 28753//27495 +f 28754//27496 28755//27497 28753//27495 28752//27494 +f 24306//23048 28754//27496 28752//27494 24302//23043 +f 27343//26085 27342//26084 28753//27495 28756//27498 +f 27348//26090 27343//26085 28756//27498 28757//27499 +f 28758//27500 28759//27501 28757//27499 28756//27498 +f 28755//27497 28758//27500 28756//27498 28753//27495 +f 27349//26091 27348//26090 28757//27499 28760//27502 +f 27354//26096 27349//26091 28760//27502 28761//27503 +f 28762//27504 28763//27505 28761//27503 28760//27502 +f 28759//27501 28762//27504 28760//27502 28757//27499 +f 27355//26097 27354//26096 28761//27503 28764//27506 +f 27360//26102 27355//26097 28764//27506 28765//27507 +f 28766//27508 28767//27509 28765//27507 28764//27506 +f 28763//27505 28766//27508 28764//27506 28761//27503 +f 27361//26103 27360//26102 28765//27507 28768//27510 +f 27366//26108 27361//26103 28768//27510 28769//27511 +f 28770//27512 28771//27513 28769//27511 28768//27510 +f 28767//27509 28770//27512 28768//27510 28765//27507 +f 27367//26109 27366//26108 28769//27511 28772//27514 +f 27372//26114 27367//26109 28772//27514 28773//27515 +f 28774//27516 28775//27517 28773//27515 28772//27514 +f 28771//27513 28774//27516 28772//27514 28769//27511 +f 27373//26115 27372//26114 28773//27515 28776//27518 +f 27378//26120 27373//26115 28776//27518 28777//27519 +f 28778//27520 28779//27521 28777//27519 28776//27518 +f 28775//27517 28778//27520 28776//27518 28773//27515 +f 27379//26121 27378//26120 28777//27519 28780//27522 +f 27384//26126 27379//26121 28780//27522 28781//27523 +f 28782//27524 28783//27525 28781//27523 28780//27522 +f 28779//27521 28782//27524 28780//27522 28777//27519 +f 27385//26127 27384//26126 28781//27523 28784//27526 +f 27390//26132 27385//26127 28784//27526 28785//27527 +f 28786//27528 28787//27529 28785//27527 28784//27526 +f 28783//27525 28786//27528 28784//27526 28781//27523 +f 27391//26133 27390//26132 28785//27527 28788//27530 +f 27396//26138 27391//26133 28788//27530 28789//27531 +f 28790//27532 28791//27533 28789//27531 28788//27530 +f 28787//27529 28790//27532 28788//27530 28785//27527 +f 27397//26139 27396//26138 28789//27531 28792//27534 +f 27402//26144 27397//26139 28792//27534 28793//27535 +f 28794//27536 28795//27537 28793//27535 28792//27534 +f 28791//27533 28794//27536 28792//27534 28789//27531 +f 27403//26145 27402//26144 28793//27535 28796//27538 +f 27408//26150 27403//26145 28796//27538 28797//27539 +f 28798//27540 28799//27541 28797//27539 28796//27538 +f 28795//27537 28798//27540 28796//27538 28793//27535 +f 27409//26151 27408//26150 28797//27539 28800//27542 +f 27414//26156 27409//26151 28800//27542 28801//27543 +f 28802//27544 28803//27545 28801//27543 28800//27542 +f 28799//27541 28802//27544 28800//27542 28797//27539 +f 27415//26157 27414//26156 28801//27543 28804//27546 +f 27420//26162 27415//26157 28804//27546 28805//27547 +f 28806//27548 28807//27549 28805//27547 28804//27546 +f 28803//27545 28806//27548 28804//27546 28801//27543 +f 27421//26163 27420//26162 28805//27547 28808//27550 +f 27426//26168 27421//26163 28808//27550 28809//27551 +f 28810//27552 28811//27553 28809//27551 28808//27550 +f 28807//27549 28810//27552 28808//27550 28805//27547 +f 27427//26169 27426//26168 28809//27551 28812//27554 +f 27432//26174 27427//26169 28812//27554 28813//27555 +f 28814//27556 28815//27557 28813//27555 28812//27554 +f 28811//27553 28814//27556 28812//27554 28809//27551 +f 27433//26175 27432//26174 28813//27555 28816//27558 +f 27438//26180 27433//26175 28816//27558 28817//27559 +f 28818//27560 28819//27561 28817//27559 28816//27558 +f 28815//27557 28818//27560 28816//27558 28813//27555 +f 27439//26181 27438//26180 28817//27559 28820//27562 +f 27444//26186 27439//26181 28820//27562 28821//27563 +f 28822//27564 28823//27565 28821//27563 28820//27562 +f 28819//27561 28822//27564 28820//27562 28817//27559 +f 27445//26187 27444//26186 28821//27563 28824//27566 +f 27450//26192 27445//26187 28824//27566 28825//27567 +f 28826//27568 28827//27569 28825//27567 28824//27566 +f 28823//27565 28826//27568 28824//27566 28821//27563 +f 27451//26193 27450//26192 28825//27567 28828//27570 +f 22918//21659 27451//26193 28828//27570 24380//23122 +f 28829//27571 24382//23124 24380//23122 28828//27570 +f 28827//27569 28829//27571 28828//27570 28825//27567 +f 28754//27496 24306//23048 24384//23126 28830//27572 +f 28755//27497 28754//27496 28830//27572 28831//27573 +f 28832//27574 28833//27575 28831//27573 28830//27572 +f 24388//23130 28832//27574 28830//27572 24384//23126 +f 28758//27500 28755//27497 28831//27573 28834//27576 +f 28759//27501 28758//27500 28834//27576 28835//27577 +f 28836//27578 28837//27579 28835//27577 28834//27576 +f 28833//27575 28836//27578 28834//27576 28831//27573 +f 28762//27504 28759//27501 28835//27577 28838//27580 +f 28763//27505 28762//27504 28838//27580 28839//27581 +f 28840//27582 28841//27583 28839//27581 28838//27580 +f 28837//27579 28840//27582 28838//27580 28835//27577 +f 28766//27508 28763//27505 28839//27581 28842//27584 +f 28767//27509 28766//27508 28842//27584 28843//27585 +f 28844//27586 28845//27587 28843//27585 28842//27584 +f 28841//27583 28844//27586 28842//27584 28839//27581 +f 28770//27512 28767//27509 28843//27585 28846//27588 +f 28771//27513 28770//27512 28846//27588 28847//27589 +f 28848//27590 28849//27591 28847//27589 28846//27588 +f 28845//27587 28848//27590 28846//27588 28843//27585 +f 28774//27516 28771//27513 28847//27589 28850//27592 +f 28775//27517 28774//27516 28850//27592 28851//27593 +f 28852//27594 28853//27595 28851//27593 28850//27592 +f 28849//27591 28852//27594 28850//27592 28847//27589 +f 28778//27520 28775//27517 28851//27593 28854//27596 +f 28779//27521 28778//27520 28854//27596 28855//27597 +f 28856//27598 28857//27599 28855//27597 28854//27596 +f 28853//27595 28856//27598 28854//27596 28851//27593 +f 28782//27524 28779//27521 28855//27597 28858//27600 +f 28783//27525 28782//27524 28858//27600 28859//27601 +f 28860//27602 28861//27603 28859//27601 28858//27600 +f 28857//27599 28860//27602 28858//27600 28855//27597 +f 28786//27528 28783//27525 28859//27601 28862//27604 +f 28787//27529 28786//27528 28862//27604 28863//27605 +f 28864//27606 28865//27607 28863//27605 28862//27604 +f 28861//27603 28864//27606 28862//27604 28859//27601 +f 28790//27532 28787//27529 28863//27605 28866//27608 +f 28791//27533 28790//27532 28866//27608 28867//27609 +f 28868//27610 28869//27611 28867//27609 28866//27608 +f 28865//27607 28868//27610 28866//27608 28863//27605 +f 28794//27536 28791//27533 28867//27609 28870//27612 +f 28795//27537 28794//27536 28870//27612 28871//27613 +f 28872//27614 28873//27615 28871//27613 28870//27612 +f 28869//27611 28872//27614 28870//27612 28867//27609 +f 28798//27540 28795//27537 28871//27613 28874//27616 +f 28799//27541 28798//27540 28874//27616 28875//27617 +f 28876//27618 28877//27619 28875//27617 28874//27616 +f 28873//27615 28876//27618 28874//27616 28871//27613 +f 28802//27544 28799//27541 28875//27617 28878//27620 +f 28803//27545 28802//27544 28878//27620 28879//27621 +f 28880//27622 28881//27623 28879//27621 28878//27620 +f 28877//27619 28880//27622 28878//27620 28875//27617 +f 28806//27548 28803//27545 28879//27621 28882//27624 +f 28807//27549 28806//27548 28882//27624 28883//27625 +f 28884//27626 28885//27627 28883//27625 28882//27624 +f 28881//27623 28884//27626 28882//27624 28879//27621 +f 28810//27552 28807//27549 28883//27625 28886//27628 +f 28811//27553 28810//27552 28886//27628 28887//27629 +f 28888//27630 28889//27631 28887//27629 28886//27628 +f 28885//27627 28888//27630 28886//27628 28883//27625 +f 28814//27556 28811//27553 28887//27629 28890//27632 +f 28815//27557 28814//27556 28890//27632 28891//27633 +f 28892//27634 28893//27635 28891//27633 28890//27632 +f 28889//27631 28892//27634 28890//27632 28887//27629 +f 28818//27560 28815//27557 28891//27633 28894//27636 +f 28819//27561 28818//27560 28894//27636 28895//27637 +f 28896//27638 28897//27639 28895//27637 28894//27636 +f 28893//27635 28896//27638 28894//27636 28891//27633 +f 28822//27564 28819//27561 28895//27637 28898//27640 +f 28823//27565 28822//27564 28898//27640 28899//27641 +f 28900//27642 28901//27643 28899//27641 28898//27640 +f 28897//27639 28900//27642 28898//27640 28895//27637 +f 28826//27568 28823//27565 28899//27641 28902//27644 +f 28827//27569 28826//27568 28902//27644 28903//27645 +f 28904//27646 28905//27647 28903//27645 28902//27644 +f 28901//27643 28904//27646 28902//27644 28899//27641 +f 28829//27571 28827//27569 28903//27645 28906//27648 +f 24382//23124 28829//27571 28906//27648 24462//23204 +f 28907//27649 24464//23206 24462//23204 28906//27648 +f 28905//27647 28907//27649 28906//27648 28903//27645 +f 28908//27650 28909//27651 28910//27652 28911//27653 +f 28911//27653 28910//27652 28912//27654 28913//27655 +f 28914//27656 28912//27654 28910//27652 28915//27657 +f 28915//27657 28910//27652 28909//27651 28916//27658 +f 28916//27658 28917//27659 28918//27660 28915//27657 +f 28915//27657 28918//27660 28919//27661 28914//27656 +f 28920//27662 28081//26823 28919//27661 28918//27660 +f 28920//27662 28918//27660 28917//27659 28921//27663 +f 28920//27662 28921//27663 28922//27664 28923//27665 +f 28081//26823 28920//27662 28923//27665 28924//27666 +f 28925//27667 28926//27668 28924//27666 28923//27665 +f 28927//27669 28925//27667 28923//27665 28922//27664 +f 28925//27667 28927//27669 28928//27670 28929//27671 +f 28926//27668 28925//27667 28929//27671 28930//27672 +f 28931//27673 28139//26881 28930//27672 28929//27671 +f 28932//27674 28931//27673 28929//27671 28928//27670 +f 28931//27673 28932//27674 28933//27675 28934//27676 +f 28139//26881 28931//27673 28934//27676 28140//26882 +f 28935//27677 28146//26888 28140//26882 28934//27676 +f 28936//27678 28935//27677 28934//27676 28933//27675 +f 28937//27679 28938//27680 28939//27681 28940//27682 +f 28940//27682 28939//27681 28159//26901 28158//26900 +f 28164//26906 28159//26901 28939//27681 28941//27683 +f 28941//27683 28939//27681 28938//27680 28942//27684 +f 28164//26906 28943//27685 28944//27686 28163//26905 +f 28163//26905 28944//27686 28945//27687 28162//26904 +f 28165//26907 28945//27687 28944//27686 28946//27688 +f 28946//27688 28944//27686 28943//27685 28947//27689 +f 28947//27689 28948//27690 28949//27691 28946//27688 +f 28946//27688 28949//27691 28166//26908 28165//26907 +f 28087//26829 28166//26908 28949//27691 28085//26827 +f 28085//26827 28949//27691 28948//27690 28082//26824 +f 28083//26825 28082//26824 28950//27692 28951//27693 +f 28039//26781 28083//26825 28951//27693 28037//26779 +f 28952//27694 27997//26739 28037//26779 28951//27693 +f 28953//27695 28952//27694 28951//27693 28950//27692 +f 28952//27694 28953//27695 28954//27696 28955//27697 +f 27997//26739 28952//27694 28955//27697 27998//26740 +f 28956//27698 27957//26699 27998//26740 28955//27697 +f 28957//27699 28956//27698 28955//27697 28954//27696 +f 28958//27700 28959//27701 28960//27702 28961//27703 +f 28957//27699 28958//27700 28961//27703 28962//27704 +f 28963//27705 28964//27706 28962//27704 28961//27703 +f 28965//27707 28963//27705 28961//27703 28960//27702 +f 28966//27708 28967//27709 28968//27710 28969//27711 +f 28969//27711 28968//27710 28970//27712 28971//27713 +f 28972//27714 28970//27712 28968//27710 28973//27715 +f 28973//27715 28968//27710 28967//27709 28974//27716 +f 28972//27714 28975//27717 28976//27718 28977//27719 +f 28977//27719 28976//27718 27796//26538 27798//26540 +f 27758//26500 27796//26538 28976//27718 28978//27720 +f 28978//27720 28976//27718 28975//27717 28979//27721 +f 28979//27721 28980//27722 28981//27723 28978//27720 +f 28978//27720 28981//27723 27756//26498 27758//26500 +f 27717//26459 27756//26498 28981//27723 27715//26457 +f 27715//26457 28981//27723 28980//27722 27714//26456 +f 27712//26454 27714//26456 28982//27724 28983//27725 +f 27653//26395 27712//26454 28983//27725 27651//26393 +f 28984//27726 27647//26389 27651//26393 28983//27725 +f 28985//27727 28984//27726 28983//27725 28982//27724 +f 28986//27728 28987//27729 28988//27730 28989//27731 +f 28989//27731 28988//27730 27609//26351 27610//26352 +f 27604//26346 27609//26351 28988//27730 27711//26453 +f 27711//26453 28988//27730 28987//27729 27710//26452 +f 27709//26451 27710//26452 28990//27732 28991//27733 +f 27706//26448 27709//26451 28991//27733 27755//26497 +f 28992//27734 27754//26496 27755//26497 28991//27733 +f 28993//27735 28992//27734 28991//27733 28990//27732 +f 28994//27736 28995//27737 28996//27738 28997//27739 +f 28998//27740 28994//27736 28997//27739 28999//27741 +f 29000//27742 29001//27743 28999//27741 28997//27739 +f 29002//27744 29000//27742 28997//27739 28996//27738 +f 29003//27745 29004//27746 29005//27747 29006//27748 +f 29006//27748 29005//27747 28996//27738 28995//27737 +f 29007//27749 29002//27744 28996//27738 29005//27747 +f 29007//27749 29005//27747 29004//27746 29008//27750 +f 29009//27751 29010//27752 29011//27753 29012//27754 +f 29012//27754 29011//27753 29013//27755 29014//27756 +f 29015//27757 29016//27758 29013//27755 29011//27753 +f 29015//27757 29011//27753 29010//27752 29017//27759 +f 29018//27760 29019//27761 29020//27762 29021//27763 +f 28966//27708 29018//27760 29021//27763 29022//27764 +f 29023//27765 29024//27766 29022//27764 29021//27763 +f 29025//27767 29023//27765 29021//27763 29020//27762 +f 29026//27768 29014//27756 29013//27755 29027//27769 +f 29028//27770 29026//27768 29027//27769 29029//27771 +f 29030//27772 29031//27773 29029//27771 29027//27769 +f 29016//27758 29030//27772 29027//27769 29013//27755 +f 28965//27707 29032//27774 29033//27775 29034//27776 +f 29019//27761 29034//27776 29033//27775 29020//27762 +f 29035//27777 29025//27767 29020//27762 29033//27775 +f 29036//27778 29035//27777 29033//27775 29032//27774 +f 28936//27678 29037//27779 29038//27780 29039//27781 +f 29039//27781 29038//27780 29040//27782 29041//27783 +f 29042//27784 29043//27785 29040//27782 29038//27780 +f 29044//27786 29042//27784 29038//27780 29037//27779 +f 29045//27787 29041//27783 29040//27782 29046//27788 +f 28937//27679 29045//27787 29046//27788 29047//27789 +f 29048//27790 29049//27791 29047//27789 29046//27788 +f 29043//27785 29048//27790 29046//27788 29040//27782 +f 29050//27792 29028//27770 29029//27771 29051//27793 +f 28908//27650 29050//27792 29051//27793 29052//27794 +f 29053//27795 29054//27796 29052//27794 29051//27793 +f 29031//27773 29053//27795 29051//27793 29029//27771 +f 28909//27651 28908//27650 29052//27794 29055//27797 +f 28916//27658 28909//27651 29055//27797 29056//27798 +f 29057//27799 29058//27800 29056//27798 29055//27797 +f 29054//27796 29057//27799 29055//27797 29052//27794 +f 28917//27659 28916//27658 29056//27798 29059//27801 +f 28921//27663 28917//27659 29059//27801 29060//27802 +f 29061//27803 29062//27804 29060//27802 29059//27801 +f 29058//27800 29061//27803 29059//27801 29056//27798 +f 28921//27663 29060//27802 29063//27805 28922//27664 +f 28922//27664 29063//27805 29064//27806 28927//27669 +f 29065//27807 29064//27806 29063//27805 29066//27808 +f 29066//27808 29063//27805 29060//27802 29062//27804 +f 28927//27669 29064//27806 29067//27809 28928//27670 +f 28928//27670 29067//27809 29068//27810 28932//27674 +f 29069//27811 29068//27810 29067//27809 29070//27812 +f 29070//27812 29067//27809 29064//27806 29065//27807 +f 28932//27674 29068//27810 29071//27813 28933//27675 +f 28933//27675 29071//27813 29037//27779 28936//27678 +f 29072//27814 29044//27786 29037//27779 29071//27813 +f 29072//27814 29071//27813 29068//27810 29069//27811 +f 28938//27680 28937//27679 29047//27789 29073//27815 +f 28942//27684 28938//27680 29073//27815 29074//27816 +f 29075//27817 29076//27818 29074//27816 29073//27815 +f 29049//27791 29075//27817 29073//27815 29047//27789 +f 29077//27819 28942//27684 29074//27816 29078//27820 +f 29079//27821 29077//27819 29078//27820 29080//27822 +f 29081//27823 29082//27824 29080//27822 29078//27820 +f 29076//27818 29081//27823 29078//27820 29074//27816 +f 29083//27825 29079//27821 29080//27822 29084//27826 +f 29085//27827 29083//27825 29084//27826 29086//27828 +f 29087//27829 29088//27830 29086//27828 29084//27826 +f 29082//27824 29087//27829 29084//27826 29080//27822 +f 29089//27831 29085//27827 29086//27828 29090//27832 +f 29089//27831 29090//27832 29091//27833 29092//27834 +f 29093//27835 29094//27836 29091//27833 29090//27832 +f 29088//27830 29093//27835 29090//27832 29086//27828 +f 29092//27834 29091//27833 29095//27837 29096//27838 +f 29096//27838 29095//27837 29097//27839 28959//27701 +f 29098//27840 29099//27841 29097//27839 29095//27837 +f 29094//27836 29098//27840 29095//27837 29091//27833 +f 28959//27701 29097//27839 29100//27842 28960//27702 +f 28960//27702 29100//27842 29032//27774 28965//27707 +f 29101//27843 29036//27778 29032//27774 29100//27842 +f 29099//27841 29101//27843 29100//27842 29097//27839 +f 28967//27709 28966//27708 29022//27764 29102//27844 +f 28974//27716 28967//27709 29102//27844 29103//27845 +f 29104//27846 29105//27847 29103//27845 29102//27844 +f 29024//27766 29104//27846 29102//27844 29022//27764 +f 29106//27848 28974//27716 29103//27845 29107//27849 +f 29108//27850 29106//27848 29107//27849 29109//27851 +f 29110//27852 29111//27853 29109//27851 29107//27849 +f 29105//27847 29110//27852 29107//27849 29103//27845 +f 29112//27854 29108//27850 29109//27851 29113//27855 +f 29114//27856 29112//27854 29113//27855 29115//27857 +f 29116//27858 29117//27859 29115//27857 29113//27855 +f 29111//27853 29116//27858 29113//27855 29109//27851 +f 29114//27856 29115//27857 29118//27860 29119//27861 +f 29119//27861 29118//27860 29120//27862 29121//27863 +f 29122//27864 29120//27862 29118//27860 29123//27865 +f 29123//27865 29118//27860 29115//27857 29117//27859 +f 29121//27863 29120//27862 29124//27866 29125//27867 +f 29125//27867 29124//27866 29126//27868 29127//27869 +f 29128//27870 29126//27868 29124//27866 29129//27871 +f 29129//27871 29124//27866 29120//27862 29122//27864 +f 29127//27869 29126//27868 29130//27872 29131//27873 +f 29131//27873 29130//27872 29004//27746 29003//27745 +f 29008//27750 29004//27746 29130//27872 29132//27874 +f 29132//27874 29130//27872 29126//27868 29128//27870 +f 29133//27875 28998//27740 28999//27741 29134//27876 +f 29135//27877 29133//27875 29134//27876 29136//27878 +f 29137//27879 29138//27880 29136//27878 29134//27876 +f 29001//27743 29137//27879 29134//27876 28999//27741 +f 29139//27881 29135//27877 29136//27878 29140//27882 +f 29141//27883 29139//27881 29140//27882 29142//27884 +f 29143//27885 29144//27886 29142//27884 29140//27882 +f 29138//27880 29143//27885 29140//27882 29136//27878 +f 29145//27887 29141//27883 29142//27884 29146//27888 +f 29147//27889 29145//27887 29146//27888 29148//27890 +f 29149//27891 29150//27892 29148//27890 29146//27888 +f 29144//27886 29149//27891 29146//27888 29142//27884 +f 29147//27889 29148//27890 29151//27893 29152//27894 +f 29152//27894 29151//27893 29153//27895 29154//27896 +f 29155//27897 29153//27895 29151//27893 29156//27898 +f 29156//27898 29151//27893 29148//27890 29150//27892 +f 29154//27896 29153//27895 29157//27899 29158//27900 +f 29158//27900 29157//27899 29159//27901 29160//27902 +f 29161//27903 29159//27901 29157//27899 29162//27904 +f 29162//27904 29157//27899 29153//27895 29155//27897 +f 29160//27902 29159//27901 29163//27905 29164//27906 +f 29164//27906 29163//27905 29010//27752 29009//27751 +f 29017//27759 29010//27752 29163//27905 29165//27907 +f 29165//27907 29163//27905 29159//27901 29161//27903 +f 29166//27908 29001//27743 29000//27742 29167//27909 +f 29168//27910 29166//27908 29167//27909 29169//27911 +f 29170//27912 29171//27913 29169//27911 29167//27909 +f 29002//27744 29170//27912 29167//27909 29000//27742 +f 29170//27912 29002//27744 29007//27749 29172//27914 +f 29171//27913 29170//27912 29172//27914 29173//27915 +f 29174//27916 29175//27917 29173//27915 29172//27914 +f 29008//27750 29174//27916 29172//27914 29007//27749 +f 29176//27918 29016//27758 29015//27757 29177//27919 +f 29178//27920 29176//27918 29177//27919 29179//27921 +f 29180//27922 29181//27923 29179//27921 29177//27919 +f 29017//27759 29180//27922 29177//27919 29015//27757 +f 29182//27924 29024//27766 29023//27765 29183//27925 +f 29184//27926 29182//27924 29183//27925 29185//27927 +f 29186//27928 29187//27929 29185//27927 29183//27925 +f 29025//27767 29186//27928 29183//27925 29023//27765 +f 29188//27930 29031//27773 29030//27772 29189//27931 +f 29190//27932 29188//27930 29189//27931 29191//27933 +f 29176//27918 29178//27920 29191//27933 29189//27931 +f 29016//27758 29176//27918 29189//27931 29030//27772 +f 29025//27767 29035//27777 29192//27934 29186//27928 +f 29186//27928 29192//27934 29193//27935 29187//27929 +f 29194//27936 29193//27935 29192//27934 29195//27937 +f 29195//27937 29192//27934 29035//27777 29036//27778 +f 29196//27938 29043//27785 29042//27784 29197//27939 +f 29198//27940 29196//27938 29197//27939 29199//27941 +f 29200//27942 29201//27943 29199//27941 29197//27939 +f 29044//27786 29200//27942 29197//27939 29042//27784 +f 29202//27944 29049//27791 29048//27790 29203//27945 +f 29204//27946 29202//27944 29203//27945 29205//27947 +f 29196//27938 29198//27940 29205//27947 29203//27945 +f 29043//27785 29196//27938 29203//27945 29048//27790 +f 29206//27948 29054//27796 29053//27795 29207//27949 +f 29208//27950 29206//27948 29207//27949 29209//27951 +f 29188//27930 29190//27932 29209//27951 29207//27949 +f 29031//27773 29188//27930 29207//27949 29053//27795 +f 29210//27952 29058//27800 29057//27799 29211//27953 +f 29212//27954 29210//27952 29211//27953 29213//27955 +f 29206//27948 29208//27950 29213//27955 29211//27953 +f 29054//27796 29206//27948 29211//27953 29057//27799 +f 29214//27956 29062//27804 29061//27803 29215//27957 +f 29216//27958 29214//27956 29215//27957 29217//27959 +f 29210//27952 29212//27954 29217//27959 29215//27957 +f 29058//27800 29210//27952 29215//27957 29061//27803 +f 29218//27960 29065//27807 29066//27808 29219//27961 +f 29220//27962 29218//27960 29219//27961 29221//27963 +f 29214//27956 29216//27958 29221//27963 29219//27961 +f 29062//27804 29214//27956 29219//27961 29066//27808 +f 29222//27964 29069//27811 29070//27812 29223//27965 +f 29224//27966 29222//27964 29223//27965 29225//27967 +f 29218//27960 29220//27962 29225//27967 29223//27965 +f 29065//27807 29218//27960 29223//27965 29070//27812 +f 29200//27942 29044//27786 29072//27814 29226//27968 +f 29201//27943 29200//27942 29226//27968 29227//27969 +f 29222//27964 29224//27966 29227//27969 29226//27968 +f 29069//27811 29222//27964 29226//27968 29072//27814 +f 29076//27818 29075//27817 29228//27970 29229//27971 +f 29230//27972 29229//27971 29228//27970 29231//27973 +f 29202//27944 29204//27946 29231//27973 29228//27970 +f 29049//27791 29202//27944 29228//27970 29075//27817 +f 29082//27824 29081//27823 29232//27974 29233//27975 +f 29234//27976 29233//27975 29232//27974 29235//27977 +f 29229//27971 29230//27972 29235//27977 29232//27974 +f 29229//27971 29232//27974 29081//27823 29076//27818 +f 29088//27830 29087//27829 29236//27978 29237//27979 +f 29238//27980 29237//27979 29236//27978 29239//27981 +f 29233//27975 29234//27976 29239//27981 29236//27978 +f 29233//27975 29236//27978 29087//27829 29082//27824 +f 29094//27836 29093//27835 29240//27982 29241//27983 +f 29241//27983 29240//27982 29242//27984 29243//27985 +f 29237//27979 29238//27980 29242//27984 29240//27982 +f 29088//27830 29237//27979 29240//27982 29093//27835 +f 29244//27986 29099//27841 29098//27840 29245//27987 +f 29246//27988 29244//27986 29245//27987 29247//27989 +f 29243//27985 29247//27989 29245//27987 29241//27983 +f 29241//27983 29245//27987 29098//27840 29094//27836 +f 29195//27937 29036//27778 29101//27843 29248//27990 +f 29194//27936 29195//27937 29248//27990 29249//27991 +f 29244//27986 29246//27988 29249//27991 29248//27990 +f 29099//27841 29244//27986 29248//27990 29101//27843 +f 29105//27847 29104//27846 29250//27992 29251//27993 +f 29252//27994 29251//27993 29250//27992 29253//27995 +f 29182//27924 29184//27926 29253//27995 29250//27992 +f 29182//27924 29250//27992 29104//27846 29024//27766 +f 29254//27996 29111//27853 29110//27852 29255//27997 +f 29256//27998 29254//27996 29255//27997 29257//27999 +f 29251//27993 29252//27994 29257//27999 29255//27997 +f 29251//27993 29255//27997 29110//27852 29105//27847 +f 29117//27859 29116//27858 29258//28000 29259//28001 +f 29260//28002 29259//28001 29258//28000 29261//28003 +f 29254//27996 29256//27998 29261//28003 29258//28000 +f 29111//27853 29254//27996 29258//28000 29116//27858 +f 29262//28004 29122//27864 29123//27865 29263//28005 +f 29264//28006 29262//28004 29263//28005 29265//28007 +f 29259//28001 29260//28002 29265//28007 29263//28005 +f 29117//27859 29259//28001 29263//28005 29123//27865 +f 29266//28008 29128//27870 29129//27871 29267//28009 +f 29268//28010 29266//28008 29267//28009 29269//28011 +f 29264//28006 29269//28011 29267//28009 29262//28004 +f 29122//27864 29262//28004 29267//28009 29129//27871 +f 29174//27916 29008//27750 29132//27874 29270//28012 +f 29175//27917 29174//27916 29270//28012 29271//28013 +f 29266//28008 29268//28010 29271//28013 29270//28012 +f 29128//27870 29266//28008 29270//28012 29132//27874 +f 29272//28014 29138//27880 29137//27879 29273//28015 +f 29274//28016 29272//28014 29273//28015 29275//28017 +f 29166//27908 29168//27910 29275//28017 29273//28015 +f 29001//27743 29166//27908 29273//28015 29137//27879 +f 29276//28018 29144//27886 29143//27885 29277//28019 +f 29278//28020 29276//28018 29277//28019 29279//28021 +f 29272//28014 29274//28016 29279//28021 29277//28019 +f 29138//27880 29272//28014 29277//28019 29143//27885 +f 29280//28022 29150//27892 29149//27891 29281//28023 +f 29282//28024 29280//28022 29281//28023 29283//28025 +f 29276//28018 29278//28020 29283//28025 29281//28023 +f 29144//27886 29276//28018 29281//28023 29149//27891 +f 29284//28026 29155//27897 29156//27898 29285//28027 +f 29286//28028 29284//28026 29285//28027 29287//28029 +f 29280//28022 29282//28024 29287//28029 29285//28027 +f 29150//27892 29280//28022 29285//28027 29156//27898 +f 29288//28030 29161//27903 29162//27904 29289//28031 +f 29290//28032 29288//28030 29289//28031 29291//28033 +f 29284//28026 29286//28028 29291//28033 29289//28031 +f 29155//27897 29284//28026 29289//28031 29162//27904 +f 29180//27922 29017//27759 29165//27907 29292//28034 +f 29181//27923 29180//27922 29292//28034 29293//28035 +f 29288//28030 29290//28032 29293//28035 29292//28034 +f 29161//27903 29288//28030 29292//28034 29165//27907 +f 29294//28036 29168//27910 29169//27911 29295//28037 +f 29296//28038 29294//28036 29295//28037 29297//28039 +f 29298//28040 29299//28041 29297//28039 29295//28037 +f 29171//27913 29298//28040 29295//28037 29169//27911 +f 29298//28040 29171//27913 29173//27915 29300//28042 +f 29299//28041 29298//28040 29300//28042 29301//28043 +f 29302//28044 29301//28043 29300//28042 29303//28045 +f 29175//27917 29303//28045 29300//28042 29173//27915 +f 29304//28046 29178//27920 29179//27921 29305//28047 +f 29306//28048 29304//28046 29305//28047 29307//28049 +f 29308//28050 29309//28051 29307//28049 29305//28047 +f 29181//27923 29308//28050 29305//28047 29179//27921 +f 29310//28052 29184//27926 29185//27927 29311//28053 +f 29312//28054 29310//28052 29311//28053 29313//28055 +f 29314//28056 29315//28057 29313//28055 29311//28053 +f 29187//27929 29314//28056 29311//28053 29185//27927 +f 29316//28058 29190//27932 29191//27933 29317//28059 +f 29318//28060 29316//28058 29317//28059 29319//28061 +f 29304//28046 29306//28048 29319//28061 29317//28059 +f 29178//27920 29304//28046 29317//28059 29191//27933 +f 29314//28056 29187//27929 29193//27935 29320//28062 +f 29315//28057 29314//28056 29320//28062 29321//28063 +f 29322//28064 29323//28065 29321//28063 29320//28062 +f 29194//27936 29322//28064 29320//28062 29193//27935 +f 29324//28066 29198//27940 29199//27941 29325//28067 +f 29326//28068 29324//28066 29325//28067 29327//28069 +f 29328//28070 29329//28071 29327//28069 29325//28067 +f 29201//27943 29328//28070 29325//28067 29199//27941 +f 29330//28072 29204//27946 29205//27947 29331//28073 +f 29332//28074 29330//28072 29331//28073 29333//28075 +f 29324//28066 29326//28068 29333//28075 29331//28073 +f 29198//27940 29324//28066 29331//28073 29205//27947 +f 29334//28076 29208//27950 29209//27951 29335//28077 +f 29336//28078 29334//28076 29335//28077 29337//28079 +f 29316//28058 29318//28060 29337//28079 29335//28077 +f 29190//27932 29316//28058 29335//28077 29209//27951 +f 29338//28080 29212//27954 29213//27955 29339//28081 +f 29340//28082 29338//28080 29339//28081 29341//28083 +f 29334//28076 29336//28078 29341//28083 29339//28081 +f 29208//27950 29334//28076 29339//28081 29213//27955 +f 29342//28084 29216//27958 29217//27959 29343//28085 +f 29344//28086 29342//28084 29343//28085 29345//28087 +f 29338//28080 29340//28082 29345//28087 29343//28085 +f 29212//27954 29338//28080 29343//28085 29217//27959 +f 29220//27962 29221//27963 29346//28088 29347//28089 +f 29347//28089 29346//28088 29348//28090 29349//28091 +f 29342//28084 29344//28086 29348//28090 29346//28088 +f 29216//27958 29342//28084 29346//28088 29221//27963 +f 29224//27966 29225//27967 29350//28092 29351//28093 +f 29351//28093 29350//28092 29352//28094 29353//28095 +f 29349//28091 29352//28094 29350//28092 29347//28089 +f 29347//28089 29350//28092 29225//27967 29220//27962 +f 29328//28070 29201//27943 29227//27969 29354//28096 +f 29329//28071 29328//28070 29354//28096 29355//28097 +f 29353//28095 29355//28097 29354//28096 29351//28093 +f 29224//27966 29351//28093 29354//28096 29227//27969 +f 29356//28098 29230//27972 29231//27973 29357//28099 +f 29358//28100 29356//28098 29357//28099 29359//28101 +f 29330//28072 29332//28074 29359//28101 29357//28099 +f 29204//27946 29330//28072 29357//28099 29231//27973 +f 29360//28102 29234//27976 29235//27977 29361//28103 +f 29362//28104 29360//28102 29361//28103 29363//28105 +f 29356//28098 29358//28100 29363//28105 29361//28103 +f 29230//27972 29356//28098 29361//28103 29235//27977 +f 29364//28106 29238//27980 29239//27981 29365//28107 +f 29366//28108 29364//28106 29365//28107 29367//28109 +f 29360//28102 29362//28104 29367//28109 29365//28107 +f 29234//27976 29360//28102 29365//28107 29239//27981 +f 29243//27985 29242//27984 29368//28110 29369//28111 +f 29369//28111 29368//28110 29370//28112 29371//28113 +f 29364//28106 29366//28108 29370//28112 29368//28110 +f 29238//27980 29364//28106 29368//28110 29242//27984 +f 29246//27988 29247//27989 29372//28114 29373//28115 +f 29373//28115 29372//28114 29374//28116 29375//28117 +f 29371//28113 29374//28116 29372//28114 29369//28111 +f 29369//28111 29372//28114 29247//27989 29243//27985 +f 29322//28064 29194//27936 29249//27991 29376//28118 +f 29323//28065 29322//28064 29376//28118 29377//28119 +f 29373//28115 29375//28117 29377//28119 29376//28118 +f 29246//27988 29373//28115 29376//28118 29249//27991 +f 29378//28120 29252//27994 29253//27995 29379//28121 +f 29380//28122 29378//28120 29379//28121 29381//28123 +f 29310//28052 29312//28054 29381//28123 29379//28121 +f 29184//27926 29310//28052 29379//28121 29253//27995 +f 29382//28124 29256//27998 29257//27999 29383//28125 +f 29384//28126 29382//28124 29383//28125 29385//28127 +f 29378//28120 29380//28122 29385//28127 29383//28125 +f 29252//27994 29378//28120 29383//28125 29257//27999 +f 29386//28128 29260//28002 29261//28003 29387//28129 +f 29388//28130 29386//28128 29387//28129 29389//28131 +f 29382//28124 29384//28126 29389//28131 29387//28129 +f 29256//27998 29382//28124 29387//28129 29261//28003 +f 29264//28006 29265//28007 29390//28132 29391//28133 +f 29391//28133 29390//28132 29392//28134 29393//28135 +f 29388//28130 29392//28134 29390//28132 29386//28128 +f 29260//28002 29386//28128 29390//28132 29265//28007 +f 29268//28010 29269//28011 29394//28136 29395//28137 +f 29395//28137 29394//28136 29396//28138 29397//28139 +f 29393//28135 29396//28138 29394//28136 29391//28133 +f 29391//28133 29394//28136 29269//28011 29264//28006 +f 29303//28045 29175//27917 29271//28013 29398//28140 +f 29303//28045 29398//28140 29399//28141 29302//28044 +f 29397//28139 29399//28141 29398//28140 29395//28137 +f 29395//28137 29398//28140 29271//28013 29268//28010 +f 29400//28142 29274//28016 29275//28017 29401//28143 +f 29402//28144 29400//28142 29401//28143 29403//28145 +f 29294//28036 29296//28038 29403//28145 29401//28143 +f 29168//27910 29294//28036 29401//28143 29275//28017 +f 29404//28146 29278//28020 29279//28021 29405//28147 +f 29406//28148 29404//28146 29405//28147 29407//28149 +f 29400//28142 29402//28144 29407//28149 29405//28147 +f 29274//28016 29400//28142 29405//28147 29279//28021 +f 29408//28150 29282//28024 29283//28025 29409//28151 +f 29410//28152 29408//28150 29409//28151 29411//28153 +f 29404//28146 29406//28148 29411//28153 29409//28151 +f 29278//28020 29404//28146 29409//28151 29283//28025 +f 29412//28154 29286//28028 29287//28029 29413//28155 +f 29412//28154 29413//28155 29414//28156 29415//28157 +f 29408//28150 29410//28152 29414//28156 29413//28155 +f 29282//28024 29408//28150 29413//28155 29287//28029 +f 29416//28158 29290//28032 29291//28033 29417//28159 +f 29416//28158 29417//28159 29418//28160 29419//28161 +f 29415//28157 29418//28160 29417//28159 29412//28154 +f 29286//28028 29412//28154 29417//28159 29291//28033 +f 29308//28050 29181//27923 29293//28035 29420//28162 +f 29309//28051 29308//28050 29420//28162 29421//28163 +f 29419//28161 29421//28163 29420//28162 29416//28158 +f 29290//28032 29416//28158 29420//28162 29293//28035 +f 29422//28164 29423//28165 29424//28166 29425//28167 +f 28365//27107 29422//28164 29425//28167 28363//27105 +f 24983//23725 23893//22634 28363//27105 29425//28167 +f 24984//23726 24983//23725 29425//28167 29424//28166 +f 29426//28168 29423//28165 29422//28164 29427//28169 +f 28372//27114 29426//28168 29427//28169 28371//27113 +f 28367//27109 28368//27110 28371//27113 29427//28169 +f 28365//27107 28367//27109 29427//28169 29422//28164 +f 29428//28170 29429//28171 29430//28172 29431//28173 +f 29431//28173 29430//28172 28375//27117 28376//27118 +f 28372//27114 28375//27117 29430//28172 29426//28168 +f 29426//28168 29430//28172 29429//28171 29423//28165 +f 29432//28174 29433//28175 29434//28176 29435//28177 +f 28381//27123 29432//28174 29435//28177 28379//27121 +f 29431//28173 28376//27118 28379//27121 29435//28177 +f 29428//28170 29431//28173 29435//28177 29434//28176 +f 29436//28178 29433//28175 29432//28174 29437//28179 +f 28388//27130 29436//28178 29437//28179 28387//27129 +f 28383//27125 28384//27126 28387//27129 29437//28179 +f 28381//27123 28383//27125 29437//28179 29432//28174 +f 29438//28180 29439//28181 29440//28182 29441//28183 +f 29441//28183 29440//28182 28391//27133 28392//27134 +f 28388//27130 28391//27133 29440//28182 29436//28178 +f 29436//28178 29440//28182 29439//28181 29433//28175 +f 29442//28184 29443//28185 29444//28186 29445//28187 +f 28397//27139 29442//28184 29445//28187 28395//27137 +f 29441//28183 28392//27134 28395//27137 29445//28187 +f 29438//28180 29441//28183 29445//28187 29444//28186 +f 29446//28188 29443//28185 29442//28184 29447//28189 +f 28404//27146 29446//28188 29447//28189 28403//27145 +f 28399//27141 28400//27142 28403//27145 29447//28189 +f 28397//27139 28399//27141 29447//28189 29442//28184 +f 29448//28190 29449//28191 29450//28192 29451//28193 +f 29451//28193 29450//28192 28407//27149 28408//27150 +f 28404//27146 28407//27149 29450//28192 29446//28188 +f 29446//28188 29450//28192 29449//28191 29443//28185 +f 29452//28194 29453//28195 29454//28196 29455//28197 +f 28413//27155 29452//28194 29455//28197 28411//27153 +f 29451//28193 28408//27150 28411//27153 29455//28197 +f 29448//28190 29451//28193 29455//28197 29454//28196 +f 29456//28198 29453//28195 29452//28194 29457//28199 +f 28420//27162 29456//28198 29457//28199 28419//27161 +f 28415//27157 28416//27158 28419//27161 29457//28199 +f 28413//27155 28415//27157 29457//28199 29452//28194 +f 29458//28200 29459//28201 29460//28202 29461//28203 +f 29461//28203 29460//28202 28423//27165 28424//27166 +f 28420//27162 28423//27165 29460//28202 29456//28198 +f 29456//28198 29460//28202 29459//28201 29453//28195 +f 29462//28204 29463//28205 29464//28206 29465//28207 +f 28429//27171 29462//28204 29465//28207 28427//27169 +f 29461//28203 28424//27166 28427//27169 29465//28207 +f 29458//28200 29461//28203 29465//28207 29464//28206 +f 29466//28208 29463//28205 29462//28204 29467//28209 +f 28436//27178 29466//28208 29467//28209 28435//27177 +f 28431//27173 28432//27174 28435//27177 29467//28209 +f 28429//27171 28431//27173 29467//28209 29462//28204 +f 25027//23769 29468//28210 29469//28211 25028//23770 +f 25028//23770 29469//28211 28439//27181 23971//22712 +f 28436//27178 28439//27181 29469//28211 29466//28208 +f 29466//28208 29469//28211 29468//28210 29463//28205 +f 29464//28206 29463//28205 29470//28212 29471//28213 +f 29458//28200 29464//28206 29471//28213 29472//28214 +f 29473//28215 29474//28216 29472//28214 29471//28213 +f 29475//28217 29473//28215 29471//28213 29470//28212 +f 29476//28218 29477//28219 29478//28220 29479//28221 +f 29480//28222 29476//28218 29479//28221 29481//28223 +f 29482//28224 29481//28223 29479//28221 29483//28225 +f 29483//28225 29479//28221 29478//28220 29484//28226 +f 29484//28226 29485//28227 29486//28228 29483//28225 +f 29482//28224 29483//28225 29486//28228 29487//28229 +f 25049//23791 25050//23792 29487//28229 29486//28228 +f 25051//23793 25049//23791 29486//28228 29485//28227 +f 29488//28230 29489//28231 29490//28232 29491//28233 +f 29491//28233 29490//28232 29492//28234 29493//28235 +f 29494//28236 29492//28234 29490//28232 29495//28237 +f 29495//28237 29490//28232 29489//28231 29496//28238 +f 29491//28233 29493//28235 29497//28239 29498//28240 +f 29488//28230 29491//28233 29498//28240 29499//28241 +f 29500//28242 29501//28243 29499//28241 29498//28240 +f 29502//28244 29500//28242 29498//28240 29497//28239 +f 29500//28242 29502//28244 29503//28245 29504//28246 +f 29501//28243 29500//28242 29504//28246 29505//28247 +f 25070//23812 25071//23813 29505//28247 29504//28246 +f 25072//23814 25070//23812 29504//28246 29503//28245 +f 29506//28248 29494//28236 29495//28237 29507//28249 +f 29506//28248 29507//28249 29449//28191 29448//28190 +f 29508//28250 29443//28185 29449//28191 29507//28249 +f 29508//28250 29507//28249 29495//28237 29496//28238 +f 29509//28251 29510//28252 29511//28253 29512//28254 +f 29438//28180 29512//28254 29511//28253 29439//28181 +f 29513//28255 29433//28175 29439//28181 29511//28253 +f 29514//28256 29513//28255 29511//28253 29510//28252 +f 29444//28186 29443//28185 29508//28250 29515//28257 +f 29444//28186 29515//28257 29512//28254 29438//28180 +f 29516//28258 29509//28251 29512//28254 29515//28257 +f 29496//28238 29516//28258 29515//28257 29508//28250 +f 29516//28258 29496//28238 29489//28231 29517//28259 +f 29509//28251 29516//28258 29517//28259 29518//28260 +f 29519//28261 29477//28219 29518//28260 29517//28259 +f 29488//28230 29519//28261 29517//28259 29489//28231 +f 29519//28261 29488//28230 29499//28241 29520//28262 +f 29477//28219 29519//28261 29520//28262 29478//28220 +f 29484//28226 29478//28220 29520//28262 29521//28263 +f 29521//28263 29520//28262 29499//28241 29501//28243 +f 29521//28263 29501//28243 29505//28247 29522//28264 +f 29521//28263 29522//28264 29485//28227 29484//28226 +f 25090//23832 25051//23793 29485//28227 29522//28264 +f 25071//23813 25090//23832 29522//28264 29505//28247 +f 29433//28175 29513//28255 29523//28265 29434//28176 +f 29434//28176 29523//28265 29524//28266 29428//28170 +f 29480//28222 29524//28266 29523//28265 29525//28267 +f 29525//28267 29523//28265 29513//28255 29514//28256 +f 29474//28216 29473//28215 29526//28268 29527//28269 +f 29527//28269 29526//28268 29497//28239 29493//28235 +f 29528//28270 29502//28244 29497//28239 29526//28268 +f 29475//28217 29528//28270 29526//28268 29473//28215 +f 29475//28217 29529//28271 29530//28272 29528//28270 +f 29528//28270 29530//28272 29503//28245 29502//28244 +f 25072//23814 29503//28245 29530//28272 25099//23841 +f 25099//23841 29530//28272 29529//28271 25100//23842 +f 29476//28218 29480//28222 29525//28267 29531//28273 +f 29477//28219 29476//28218 29531//28273 29518//28260 +f 29510//28252 29509//28251 29518//28260 29531//28273 +f 29514//28256 29510//28252 29531//28273 29525//28267 +f 29532//28274 29533//28275 29534//28276 29535//28277 +f 29535//28277 29534//28276 29492//28234 29494//28236 +f 29493//28235 29492//28234 29534//28276 29527//28269 +f 29527//28269 29534//28276 29533//28275 29474//28216 +f 29454//28196 29453//28195 29536//28278 29537//28279 +f 29454//28196 29537//28279 29506//28248 29448//28190 +f 29494//28236 29506//28248 29537//28279 29535//28277 +f 29532//28274 29535//28277 29537//28279 29536//28278 +f 29524//28266 29480//28222 29481//28223 29538//28280 +f 29428//28170 29524//28266 29538//28280 29429//28171 +f 29539//28281 29423//28165 29429//28171 29538//28280 +f 29539//28281 29538//28280 29481//28223 29482//28224 +f 29539//28281 29482//28224 29487//28229 29540//28282 +f 29539//28281 29540//28282 29424//28166 29423//28165 +f 25111//23853 24984//23726 29424//28166 29540//28282 +f 25050//23792 25111//23853 29540//28282 29487//28229 +f 25100//23842 29529//28271 29541//28283 25112//23854 +f 25112//23854 29541//28283 29468//28210 25027//23769 +f 29470//28212 29463//28205 29468//28210 29541//28283 +f 29470//28212 29541//28283 29529//28271 29475//28217 +f 29474//28216 29533//28275 29542//28284 29472//28214 +f 29472//28214 29542//28284 29459//28201 29458//28200 +f 29536//28278 29453//28195 29459//28201 29542//28284 +f 29536//28278 29542//28284 29533//28275 29532//28274 +f 28913//27655 29543//28285 29544//28286 28911//27653 +f 28911//27653 29544//28286 29050//27792 28908//27650 +f 29028//27770 29050//27792 29544//28286 29545//28287 +f 29545//28287 29544//28286 29543//28285 29546//28288 +f 29546//28288 29547//28289 29548//28290 29545//28287 +f 29545//28287 29548//28290 29026//27768 29028//27770 +f 29014//27756 29026//27768 29548//28290 29549//28291 +f 29549//28291 29548//28290 29547//28289 29550//28292 +f 29549//28291 29550//28292 29551//28293 29552//28294 +f 29014//27756 29549//28291 29552//28294 29012//27754 +f 29553//28295 29009//27751 29012//27754 29552//28294 +f 29554//28296 29553//28295 29552//28294 29551//28293 +f 29553//28295 29554//28296 29555//28297 29556//28298 +f 29009//27751 29553//28295 29556//28298 29164//27906 +f 29557//28299 29160//27902 29164//27906 29556//28298 +f 29558//28300 29557//28299 29556//28298 29555//28297 +f 28914//27656 28919//27661 29559//28301 29560//28302 +f 29560//28302 29559//28301 28034//26776 27995//26737 +f 28035//26777 28034//26776 29559//28301 28076//26818 +f 28076//26818 29559//28301 28919//27661 28081//26823 +f 29557//28299 29558//28300 29561//28303 29562//28304 +f 29160//27902 29557//28299 29562//28304 29158//27900 +f 29563//28305 29154//27896 29158//27900 29562//28304 +f 28993//27735 29563//28305 29562//28304 29561//28303 +f 29563//28305 28993//27735 28990//27732 29564//28306 +f 29154//27896 29563//28305 29564//28306 29152//27894 +f 29565//28307 29147//27889 29152//27894 29564//28306 +f 27710//26452 29565//28307 29564//28306 28990//27732 +f 27710//26452 28987//27729 29566//28308 29565//28307 +f 29565//28307 29566//28308 29145//27887 29147//27889 +f 29141//27883 29145//27887 29566//28308 29567//28309 +f 29567//28309 29566//28308 28987//27729 28986//27728 +f 28986//27728 29568//28310 29569//28311 29567//28309 +f 29567//28309 29569//28311 29139//27881 29141//27883 +f 29135//27877 29139//27881 29569//28311 29570//28312 +f 29570//28312 29569//28311 29568//28310 29571//28313 +f 29571//28313 29572//28314 29573//28315 29570//28312 +f 29570//28312 29573//28315 29133//27875 29135//27877 +f 28998//27740 29133//27875 29573//28315 29574//28316 +f 29574//28316 29573//28315 29572//28314 29575//28317 +f 29575//28317 29576//28318 29577//28319 29574//28316 +f 29574//28316 29577//28319 28994//27736 28998//27740 +f 28995//27737 28994//27736 29577//28319 29578//28320 +f 29578//28320 29577//28319 29576//28318 29579//28321 +f 29578//28320 29579//28321 29580//28322 29581//28323 +f 28995//27737 29578//28320 29581//28323 29006//27748 +f 29582//28324 29003//27745 29006//27748 29581//28323 +f 29583//28325 29582//28324 29581//28323 29580//28322 +f 29582//28324 29583//28325 29584//28326 29585//28327 +f 29003//27745 29582//28324 29585//28327 29131//27873 +f 29586//28328 29127//27869 29131//27873 29585//28327 +f 29587//28329 29586//28328 29585//28327 29584//28326 +f 29586//28328 29587//28329 29588//28330 29589//28331 +f 29127//27869 29586//28328 29589//28331 29125//27867 +f 29590//28332 29121//27863 29125//27867 29589//28331 +f 28985//27727 29590//28332 29589//28331 29588//28330 +f 29590//28332 28985//27727 28982//27724 29591//28333 +f 29121//27863 29590//28332 29591//28333 29119//27861 +f 29592//28334 29114//27856 29119//27861 29591//28333 +f 27714//26456 29592//28334 29591//28333 28982//27724 +f 29592//28334 27714//26456 28980//27722 29593//28335 +f 29114//27856 29592//28334 29593//28335 29112//27854 +f 29108//27850 29112//27854 29593//28335 29594//28336 +f 29594//28336 29593//28335 28980//27722 28979//27721 +f 28979//27721 28975//27717 29595//28337 29594//28336 +f 29594//28336 29595//28337 29106//27848 29108//27850 +f 28974//27716 29106//27848 29595//28337 28973//27715 +f 28973//27715 29595//28337 28975//27717 28972//27714 +f 28971//27713 29596//28338 29597//28339 28969//27711 +f 28969//27711 29597//28339 29018//27760 28966//27708 +f 29019//27761 29018//27760 29597//28339 29598//28340 +f 29598//28340 29597//28339 29596//28338 29599//28341 +f 29598//28340 29599//28341 29600//28342 29601//28343 +f 29019//27761 29598//28340 29601//28343 29034//27776 +f 28963//27705 28965//27707 29034//27776 29601//28343 +f 28964//27706 28963//27705 29601//28343 29600//28342 +f 28958//27700 28957//27699 28954//27696 29602//28344 +f 28959//27701 28958//27700 29602//28344 29096//27838 +f 29603//28345 29092//27834 29096//27838 29602//28344 +f 28953//27695 29603//28345 29602//28344 28954//27696 +f 29603//28345 28953//27695 28950//27692 29604//28346 +f 29092//27834 29603//28345 29604//28346 29089//27831 +f 29085//27827 29089//27831 29604//28346 29605//28347 +f 29605//28347 29604//28346 28950//27692 28082//26824 +f 28082//26824 28948//27690 29606//28348 29605//28347 +f 29605//28347 29606//28348 29083//27825 29085//27827 +f 29079//27821 29083//27825 29606//28348 29607//28349 +f 29607//28349 29606//28348 28948//27690 28947//27689 +f 28947//27689 28943//27685 29608//28350 29607//28349 +f 29607//28349 29608//28350 29077//27819 29079//27821 +f 28942//27684 29077//27819 29608//28350 28941//27683 +f 28941//27683 29608//28350 28943//27685 28164//26906 +f 28158//26900 28153//26895 29609//28351 28940//27682 +f 28940//27682 29609//28351 29045//27787 28937//27679 +f 29041//27783 29045//27787 29609//28351 29610//28352 +f 29610//28352 29609//28351 28153//26895 28152//26894 +f 29610//28352 28152//26894 28147//26889 29611//28353 +f 29041//27783 29610//28352 29611//28353 29039//27781 +f 28935//27677 28936//27678 29039//27781 29611//28353 +f 28146//26888 28935//27677 29611//28353 28147//26889 +f 28079//26821 28081//26823 28924//27666 29612//28354 +f 28080//26822 28079//26821 29612//28354 28132//26874 +f 29613//28355 28137//26879 28132//26874 29612//28354 +f 28926//27668 29613//28355 29612//28354 28924//27666 +f 29613//28355 28926//27668 28930//27672 29614//28356 +f 28137//26879 29613//28355 29614//28356 29615//28357 +f 28138//26880 28142//26884 29615//28357 29614//28356 +f 28139//26881 28138//26880 29614//28356 28930//27672 +f 29616//28358 29617//28359 29618//28360 29619//28361 +f 29620//28362 29619//28361 29618//28360 29621//28363 +f 29622//28364 29623//28365 29621//28363 29618//28360 +f 29622//28364 29618//28360 29617//28359 29624//28366 +f 29625//28367 29620//28362 29621//28363 29626//28368 +f 29627//28369 29625//28367 29626//28368 29628//28370 +f 29629//28371 29630//28372 29628//28370 29626//28368 +f 29623//28365 29629//28371 29626//28368 29621//28363 +f 29631//28373 29627//28369 29628//28370 29632//28374 +f 29633//28375 29631//28373 29632//28374 29634//28376 +f 29635//28377 29636//28378 29634//28376 29632//28374 +f 29630//28372 29635//28377 29632//28374 29628//28370 +f 29637//28379 29633//28375 29634//28376 29638//28380 +f 29637//28379 29638//28380 29639//28381 29640//28382 +f 29641//28383 29642//28384 29639//28381 29638//28380 +f 29636//28378 29641//28383 29638//28380 29634//28376 +f 29640//28382 29639//28381 29643//28385 29644//28386 +f 29645//28387 29644//28386 29643//28385 29646//28388 +f 29647//28389 29646//28388 29643//28385 29648//28390 +f 29648//28390 29643//28385 29639//28381 29642//28384 +f 29649//28391 29645//28387 29646//28388 29650//28392 +f 29651//28393 29649//28391 29650//28392 29652//28394 +f 29653//28395 29654//28396 29652//28394 29650//28392 +f 29647//28389 29653//28395 29650//28392 29646//28388 +f 29655//28397 29651//28393 29652//28394 29656//28398 +f 29657//28399 29655//28397 29656//28398 29658//28400 +f 29659//28401 29660//28402 29658//28400 29656//28398 +f 29654//28396 29659//28401 29656//28398 29652//28394 +f 29661//28403 29657//28399 29658//28400 29662//28404 +f 29661//28403 29662//28404 29663//28405 29664//28406 +f 29665//28407 29666//28408 29663//28405 29662//28404 +f 29660//28402 29665//28407 29662//28404 29658//28400 +f 29664//28406 29663//28405 29667//28409 29668//28410 +f 29668//28410 29667//28409 29669//28411 29670//28412 +f 29671//28413 29669//28411 29667//28409 29672//28414 +f 29672//28414 29667//28409 29663//28405 29666//28408 +f 29673//28415 29670//28412 29669//28411 29674//28416 +f 29675//28417 29673//28415 29674//28416 29676//28418 +f 29677//28419 29678//28420 29676//28418 29674//28416 +f 29671//28413 29677//28419 29674//28416 29669//28411 +f 29679//28421 29675//28417 29676//28418 29680//28422 +f 29681//28423 29679//28421 29680//28422 29682//28424 +f 29683//28425 29684//28426 29682//28424 29680//28422 +f 29678//28420 29683//28425 29680//28422 29676//28418 +f 29685//28427 29681//28423 29682//28424 29686//28428 +f 29685//28427 29686//28428 29687//28429 29688//28430 +f 29689//28431 29687//28429 29686//28428 29690//28432 +f 29684//28426 29690//28432 29686//28428 29682//28424 +f 29688//28430 29687//28429 29691//28433 29692//28434 +f 29692//28434 29691//28433 29693//28435 29694//28436 +f 29695//28437 29693//28435 29691//28433 29696//28438 +f 29696//28438 29691//28433 29687//28429 29689//28431 +f 29697//28439 29694//28436 29693//28435 29698//28440 +f 29699//28441 29697//28439 29698//28440 29700//28442 +f 29701//28443 29702//28444 29700//28442 29698//28440 +f 29695//28437 29701//28443 29698//28440 29693//28435 +f 29703//28445 29699//28441 29700//28442 29704//28446 +f 29705//28447 29703//28445 29704//28446 29706//28448 +f 29707//28449 29708//28450 29706//28448 29704//28446 +f 29702//28444 29707//28449 29704//28446 29700//28442 +f 29709//28451 29705//28447 29706//28448 29710//28452 +f 29709//28451 29710//28452 29711//28453 29712//28454 +f 29713//28455 29711//28453 29710//28452 29714//28456 +f 29708//28450 29714//28456 29710//28452 29706//28448 +f 29712//28454 29711//28453 29715//28457 29716//28458 +f 29716//28458 29715//28457 29717//28459 29718//28460 +f 29719//28461 29717//28459 29715//28457 29720//28462 +f 29720//28462 29715//28457 29711//28453 29713//28455 +f 29721//28463 29718//28460 29717//28459 29722//28464 +f 29723//28465 29721//28463 29722//28464 29724//28466 +f 29725//28467 29726//28468 29724//28466 29722//28464 +f 29719//28461 29725//28467 29722//28464 29717//28459 +f 29727//28469 29723//28465 29724//28466 29728//28470 +f 29729//28471 29727//28469 29728//28470 29730//28472 +f 29731//28473 29732//28474 29730//28472 29728//28470 +f 29726//28468 29731//28473 29728//28470 29724//28466 +f 29733//28475 29729//28471 29730//28472 29734//28476 +f 29733//28475 29734//28476 29735//28477 29736//28478 +f 29737//28479 29735//28477 29734//28476 29738//28480 +f 29732//28474 29738//28480 29734//28476 29730//28472 +f 29736//28478 29735//28477 29739//28481 29740//28482 +f 29740//28482 29739//28481 29741//28483 29742//28484 +f 29743//28485 29741//28483 29739//28481 29744//28486 +f 29744//28486 29739//28481 29735//28477 29737//28479 +f 29745//28487 29742//28484 29741//28483 29746//28488 +f 29747//28489 29745//28487 29746//28488 29748//28490 +f 29749//28491 29750//28492 29748//28490 29746//28488 +f 29743//28485 29749//28491 29746//28488 29741//28483 +f 29751//28493 29747//28489 29748//28490 29752//28494 +f 29753//28495 29751//28493 29752//28494 29754//28496 +f 29755//28497 29756//28498 29754//28496 29752//28494 +f 29750//28492 29755//28497 29752//28494 29748//28490 +f 29757//28499 29753//28495 29754//28496 29758//28500 +f 29757//28499 29758//28500 29759//28501 29760//28502 +f 29761//28503 29759//28501 29758//28500 29762//28504 +f 29756//28498 29762//28504 29758//28500 29754//28496 +f 29760//28502 29759//28501 29763//28505 29764//28506 +f 29764//28506 29763//28505 29765//28507 29766//28508 +f 29767//28509 29765//28507 29763//28505 29768//28510 +f 29768//28510 29763//28505 29759//28501 29761//28503 +f 29769//28511 29766//28508 29765//28507 29770//28512 +f 29771//28513 29769//28511 29770//28512 29772//28514 +f 29773//28515 29774//28516 29772//28514 29770//28512 +f 29767//28509 29773//28515 29770//28512 29765//28507 +f 29775//28517 29771//28513 29772//28514 29776//28518 +f 29777//28519 29775//28517 29776//28518 29778//28520 +f 29779//28521 29780//28522 29778//28520 29776//28518 +f 29774//28516 29779//28521 29776//28518 29772//28514 +f 29781//28523 29777//28519 29778//28520 29782//28524 +f 29781//28523 29782//28524 29783//28525 29784//28526 +f 29785//28527 29786//28528 29783//28525 29782//28524 +f 29780//28522 29785//28527 29782//28524 29778//28520 +f 29784//28526 29783//28525 29787//28529 29788//28530 +f 29789//28531 29788//28530 29787//28529 29790//28532 +f 29791//28533 29790//28532 29787//28529 29792//28534 +f 29792//28534 29787//28529 29783//28525 29786//28528 +f 29793//28535 29789//28531 29790//28532 29794//28536 +f 29795//28537 29793//28535 29794//28536 29796//28538 +f 29797//28539 29798//28540 29796//28538 29794//28536 +f 29791//28533 29797//28539 29794//28536 29790//28532 +f 29799//28541 29795//28537 29796//28538 29800//28542 +f 29801//28543 29799//28541 29800//28542 29802//28544 +f 29803//28545 29804//28546 29802//28544 29800//28542 +f 29798//28540 29803//28545 29800//28542 29796//28538 +f 29805//28547 29801//28543 29802//28544 29806//28548 +f 29807//28549 29805//28547 29806//28548 29808//28550 +f 29809//28551 29810//28552 29808//28550 29806//28548 +f 29804//28546 29809//28551 29806//28548 29802//28544 +f 29807//28549 29808//28550 29811//28553 29812//28554 +f 29813//28555 29812//28554 29811//28553 29814//28556 +f 29815//28557 29816//28558 29814//28556 29811//28553 +f 29815//28557 29811//28553 29808//28550 29810//28552 +f 29817//28559 29813//28555 29814//28556 29818//28560 +f 29819//28561 29817//28559 29818//28560 29820//28562 +f 29821//28563 29822//28564 29820//28562 29818//28560 +f 29816//28558 29821//28563 29818//28560 29814//28556 +f 29823//28565 29819//28561 29820//28562 29824//28566 +f 29825//28567 29823//28565 29824//28566 29826//28568 +f 29827//28569 29828//28570 29826//28568 29824//28566 +f 29822//28564 29827//28569 29824//28566 29820//28562 +f 29829//28571 29825//28567 29826//28568 29830//28572 +f 29831//28573 29829//28571 29830//28572 29832//28574 +f 29833//28575 29834//28576 29832//28574 29830//28572 +f 29828//28570 29833//28575 29830//28572 29826//28568 +f 29831//28573 29832//28574 29835//28577 29836//28578 +f 29837//28579 29836//28578 29835//28577 29838//28580 +f 29839//28581 29840//28582 29838//28580 29835//28577 +f 29839//28581 29835//28577 29832//28574 29834//28576 +f 29841//28583 29837//28579 29838//28580 29842//28584 +f 29843//28585 29841//28583 29842//28584 29844//28586 +f 29845//28587 29846//28588 29844//28586 29842//28584 +f 29840//28582 29845//28587 29842//28584 29838//28580 +f 29847//28589 29843//28585 29844//28586 29848//28590 +f 29849//28591 29847//28589 29848//28590 29850//28592 +f 29851//28593 29852//28594 29850//28592 29848//28590 +f 29846//28588 29851//28593 29848//28590 29844//28586 +f 29853//28595 29849//28591 29850//28592 29854//28596 +f 29616//28358 29853//28595 29854//28596 29617//28359 +f 29855//28597 29624//28366 29617//28359 29854//28596 +f 29852//28594 29855//28597 29854//28596 29850//28592 +f 29856//28598 29616//28358 29619//28361 29857//28599 +f 29858//28600 29856//28598 29857//28599 29859//28601 +f 29860//28602 29861//28603 29859//28601 29857//28599 +f 29620//28362 29860//28602 29857//28599 29619//28361 +f 29620//28362 29625//28367 29862//28604 29860//28602 +f 29861//28603 29860//28602 29862//28604 29863//28605 +f 29864//28606 29865//28607 29863//28605 29862//28604 +f 29864//28606 29862//28604 29625//28367 29627//28369 +f 29627//28369 29631//28373 29866//28608 29864//28606 +f 29865//28607 29864//28606 29866//28608 29867//28609 +f 29868//28610 29869//28611 29867//28609 29866//28608 +f 29868//28610 29866//28608 29631//28373 29633//28375 +f 29868//28610 29633//28375 29637//28379 29870//28612 +f 29869//28611 29868//28610 29870//28612 29871//28613 +f 29872//28614 29873//28615 29871//28613 29870//28612 +f 29640//28382 29872//28614 29870//28612 29637//28379 +f 29872//28614 29640//28382 29644//28386 29874//28616 +f 29873//28615 29872//28614 29874//28616 29875//28617 +f 29876//28618 29877//28619 29875//28617 29874//28616 +f 29645//28387 29876//28618 29874//28616 29644//28386 +f 29645//28387 29649//28391 29878//28620 29876//28618 +f 29877//28619 29876//28618 29878//28620 29879//28621 +f 29880//28622 29881//28623 29879//28621 29878//28620 +f 29880//28622 29878//28620 29649//28391 29651//28393 +f 29651//28393 29655//28397 29882//28624 29880//28622 +f 29881//28623 29880//28622 29882//28624 29883//28625 +f 29884//28626 29885//28627 29883//28625 29882//28624 +f 29884//28626 29882//28624 29655//28397 29657//28399 +f 29884//28626 29657//28399 29661//28403 29886//28628 +f 29885//28627 29884//28626 29886//28628 29887//28629 +f 29888//28630 29889//28631 29887//28629 29886//28628 +f 29664//28406 29888//28630 29886//28628 29661//28403 +f 29888//28630 29664//28406 29668//28410 29890//28632 +f 29889//28631 29888//28630 29890//28632 29891//28633 +f 29892//28634 29893//28635 29891//28633 29890//28632 +f 29670//28412 29892//28634 29890//28632 29668//28410 +f 29670//28412 29673//28415 29894//28636 29892//28634 +f 29893//28635 29892//28634 29894//28636 29895//28637 +f 29896//28638 29897//28639 29895//28637 29894//28636 +f 29896//28638 29894//28636 29673//28415 29675//28417 +f 29675//28417 29679//28421 29898//28640 29896//28638 +f 29897//28639 29896//28638 29898//28640 29899//28641 +f 29900//28642 29901//28643 29899//28641 29898//28640 +f 29681//28423 29900//28642 29898//28640 29679//28421 +f 29900//28642 29681//28423 29685//28427 29902//28644 +f 29901//28643 29900//28642 29902//28644 29903//28645 +f 29904//28646 29905//28647 29903//28645 29902//28644 +f 29688//28430 29904//28646 29902//28644 29685//28427 +f 29904//28646 29688//28430 29692//28434 29906//28648 +f 29905//28647 29904//28646 29906//28648 29907//28649 +f 29908//28650 29909//28651 29907//28649 29906//28648 +f 29694//28436 29908//28650 29906//28648 29692//28434 +f 29694//28436 29697//28439 29910//28652 29908//28650 +f 29909//28651 29908//28650 29910//28652 29911//28653 +f 29912//28654 29913//28655 29911//28653 29910//28652 +f 29912//28654 29910//28652 29697//28439 29699//28441 +f 29699//28441 29703//28445 29914//28656 29912//28654 +f 29913//28655 29912//28654 29914//28656 29915//28657 +f 29916//28658 29917//28659 29915//28657 29914//28656 +f 29705//28447 29916//28658 29914//28656 29703//28445 +f 29916//28658 29705//28447 29709//28451 29918//28660 +f 29917//28659 29916//28658 29918//28660 29919//28661 +f 29920//28662 29921//28663 29919//28661 29918//28660 +f 29712//28454 29920//28662 29918//28660 29709//28451 +f 29920//28662 29712//28454 29716//28458 29922//28664 +f 29921//28663 29920//28662 29922//28664 29923//28665 +f 29924//28666 29925//28667 29923//28665 29922//28664 +f 29718//28460 29924//28666 29922//28664 29716//28458 +f 29924//28666 29718//28460 29721//28463 29926//28668 +f 29925//28667 29924//28666 29926//28668 29927//28669 +f 29928//28670 29929//28671 29927//28669 29926//28668 +f 29928//28670 29926//28668 29721//28463 29723//28465 +f 29723//28465 29727//28469 29930//28672 29928//28670 +f 29929//28671 29928//28670 29930//28672 29931//28673 +f 29932//28674 29933//28675 29931//28673 29930//28672 +f 29729//28471 29932//28674 29930//28672 29727//28469 +f 29932//28674 29729//28471 29733//28475 29934//28676 +f 29933//28675 29932//28674 29934//28676 29935//28677 +f 29936//28678 29937//28679 29935//28677 29934//28676 +f 29736//28478 29936//28678 29934//28676 29733//28475 +f 29936//28678 29736//28478 29740//28482 29938//28680 +f 29937//28679 29936//28678 29938//28680 29939//28681 +f 29940//28682 29941//28683 29939//28681 29938//28680 +f 29742//28484 29940//28682 29938//28680 29740//28482 +f 29742//28484 29745//28487 29942//28684 29940//28682 +f 29941//28683 29940//28682 29942//28684 29943//28685 +f 29944//28686 29945//28687 29943//28685 29942//28684 +f 29944//28686 29942//28684 29745//28487 29747//28489 +f 29747//28489 29751//28493 29946//28688 29944//28686 +f 29945//28687 29944//28686 29946//28688 29947//28689 +f 29948//28690 29949//28691 29947//28689 29946//28688 +f 29753//28495 29948//28690 29946//28688 29751//28493 +f 29948//28690 29753//28495 29757//28499 29950//28692 +f 29949//28691 29948//28690 29950//28692 29951//28693 +f 29952//28694 29953//28695 29951//28693 29950//28692 +f 29760//28502 29952//28694 29950//28692 29757//28499 +f 29952//28694 29760//28502 29764//28506 29954//28696 +f 29953//28695 29952//28694 29954//28696 29955//28697 +f 29956//28698 29957//28699 29955//28697 29954//28696 +f 29766//28508 29956//28698 29954//28696 29764//28506 +f 29766//28508 29769//28511 29958//28700 29956//28698 +f 29957//28699 29956//28698 29958//28700 29959//28701 +f 29960//28702 29961//28703 29959//28701 29958//28700 +f 29960//28702 29958//28700 29769//28511 29771//28513 +f 29771//28513 29775//28517 29962//28704 29960//28702 +f 29961//28703 29960//28702 29962//28704 29963//28705 +f 29964//28706 29965//28707 29963//28705 29962//28704 +f 29964//28706 29962//28704 29775//28517 29777//28519 +f 29964//28706 29777//28519 29781//28523 29966//28708 +f 29965//28707 29964//28706 29966//28708 29967//28709 +f 29968//28710 29969//28711 29967//28709 29966//28708 +f 29784//28526 29968//28710 29966//28708 29781//28523 +f 29968//28710 29784//28526 29788//28530 29970//28712 +f 29969//28711 29968//28710 29970//28712 29971//28713 +f 29972//28714 29973//28715 29971//28713 29970//28712 +f 29789//28531 29972//28714 29970//28712 29788//28530 +f 29789//28531 29793//28535 29974//28716 29972//28714 +f 29973//28715 29972//28714 29974//28716 29975//28717 +f 29976//28718 29977//28719 29975//28717 29974//28716 +f 29976//28718 29974//28716 29793//28535 29795//28537 +f 29795//28537 29799//28541 29978//28720 29976//28718 +f 29977//28719 29976//28718 29978//28720 29979//28721 +f 29980//28722 29981//28723 29979//28721 29978//28720 +f 29980//28722 29978//28720 29799//28541 29801//28543 +f 29980//28722 29801//28543 29805//28547 29982//28724 +f 29981//28723 29980//28722 29982//28724 29983//28725 +f 29984//28726 29985//28727 29983//28725 29982//28724 +f 29807//28549 29984//28726 29982//28724 29805//28547 +f 29984//28726 29807//28549 29812//28554 29986//28728 +f 29985//28727 29984//28726 29986//28728 29987//28729 +f 29988//28730 29989//28731 29987//28729 29986//28728 +f 29813//28555 29988//28730 29986//28728 29812//28554 +f 29813//28555 29817//28559 29990//28732 29988//28730 +f 29989//28731 29988//28730 29990//28732 29991//28733 +f 29992//28734 29993//28735 29991//28733 29990//28732 +f 29992//28734 29990//28732 29817//28559 29819//28561 +f 29819//28561 29823//28565 29994//28736 29992//28734 +f 29993//28735 29992//28734 29994//28736 29995//28737 +f 29996//28738 29997//28739 29995//28737 29994//28736 +f 29996//28738 29994//28736 29823//28565 29825//28567 +f 29996//28738 29825//28567 29829//28571 29998//28740 +f 29997//28739 29996//28738 29998//28740 29999//28741 +f 30000//28742 30001//28743 29999//28741 29998//28740 +f 29831//28573 30000//28742 29998//28740 29829//28571 +f 30000//28742 29831//28573 29836//28578 30002//28744 +f 30001//28743 30000//28742 30002//28744 30003//28745 +f 30004//28746 30005//28747 30003//28745 30002//28744 +f 29837//28579 30004//28746 30002//28744 29836//28578 +f 29837//28579 29841//28583 30006//28748 30004//28746 +f 30005//28747 30004//28746 30006//28748 30007//28749 +f 30008//28750 30009//28751 30007//28749 30006//28748 +f 30008//28750 30006//28748 29841//28583 29843//28585 +f 29843//28585 29847//28589 30010//28752 30008//28750 +f 30009//28751 30008//28750 30010//28752 30011//28753 +f 30012//28754 30013//28755 30011//28753 30010//28752 +f 30012//28754 30010//28752 29847//28589 29849//28591 +f 30012//28754 29849//28591 29853//28595 30014//28756 +f 30013//28755 30012//28754 30014//28756 30015//28757 +f 29856//28598 29858//28600 30015//28757 30014//28756 +f 29616//28358 29856//28598 30014//28756 29853//28595 +f 30016//28758 29858//28600 29859//28601 30017//28759 +f 30018//28760 30016//28758 30017//28759 30019//28761 +f 30020//28762 30021//28763 30019//28761 30017//28759 +f 29861//28603 30020//28762 30017//28759 29859//28601 +f 30020//28762 29861//28603 29863//28605 30022//28764 +f 30021//28763 30020//28762 30022//28764 30023//28765 +f 30024//28766 30025//28767 30023//28765 30022//28764 +f 29865//28607 30024//28766 30022//28764 29863//28605 +f 30024//28766 29865//28607 29867//28609 30026//28768 +f 30025//28767 30024//28766 30026//28768 30027//28769 +f 30028//28770 30029//28771 30027//28769 30026//28768 +f 29869//28611 30028//28770 30026//28768 29867//28609 +f 30028//28770 29869//28611 29871//28613 30030//28772 +f 30029//28771 30028//28770 30030//28772 30031//28773 +f 30032//28774 30033//28775 30031//28773 30030//28772 +f 29873//28615 30032//28774 30030//28772 29871//28613 +f 30032//28774 29873//28615 29875//28617 30034//28776 +f 30033//28775 30032//28774 30034//28776 30035//28777 +f 30036//28778 30037//28779 30035//28777 30034//28776 +f 29877//28619 30036//28778 30034//28776 29875//28617 +f 30036//28778 29877//28619 29879//28621 30038//28780 +f 30037//28779 30036//28778 30038//28780 30039//28781 +f 30040//28782 30041//28783 30039//28781 30038//28780 +f 29881//28623 30040//28782 30038//28780 29879//28621 +f 30040//28782 29881//28623 29883//28625 30042//28784 +f 30041//28783 30040//28782 30042//28784 30043//28785 +f 30044//28786 30045//28787 30043//28785 30042//28784 +f 29885//28627 30044//28786 30042//28784 29883//28625 +f 30044//28786 29885//28627 29887//28629 30046//28788 +f 30045//28787 30044//28786 30046//28788 30047//28789 +f 30048//28790 30049//28791 30047//28789 30046//28788 +f 29889//28631 30048//28790 30046//28788 29887//28629 +f 30048//28790 29889//28631 29891//28633 30050//28792 +f 30049//28791 30048//28790 30050//28792 30051//28793 +f 30052//28794 30053//28795 30051//28793 30050//28792 +f 29893//28635 30052//28794 30050//28792 29891//28633 +f 30052//28794 29893//28635 29895//28637 30054//28796 +f 30053//28795 30052//28794 30054//28796 30055//28797 +f 30056//28798 30057//28799 30055//28797 30054//28796 +f 29897//28639 30056//28798 30054//28796 29895//28637 +f 30056//28798 29897//28639 29899//28641 30058//28800 +f 30057//28799 30056//28798 30058//28800 30059//28801 +f 30060//28802 30061//28803 30059//28801 30058//28800 +f 29901//28643 30060//28802 30058//28800 29899//28641 +f 30060//28802 29901//28643 29903//28645 30062//28804 +f 30061//28803 30060//28802 30062//28804 30063//28805 +f 30064//28806 30065//28807 30063//28805 30062//28804 +f 29905//28647 30064//28806 30062//28804 29903//28645 +f 30064//28806 29905//28647 29907//28649 30066//28808 +f 30065//28807 30064//28806 30066//28808 30067//28809 +f 30068//28810 30069//28811 30067//28809 30066//28808 +f 29909//28651 30068//28810 30066//28808 29907//28649 +f 30068//28810 29909//28651 29911//28653 30070//28812 +f 30069//28811 30068//28810 30070//28812 30071//28813 +f 30072//28814 30073//28815 30071//28813 30070//28812 +f 29913//28655 30072//28814 30070//28812 29911//28653 +f 30072//28814 29913//28655 29915//28657 30074//28816 +f 30073//28815 30072//28814 30074//28816 30075//28817 +f 30076//28818 30077//28819 30075//28817 30074//28816 +f 29917//28659 30076//28818 30074//28816 29915//28657 +f 30076//28818 29917//28659 29919//28661 30078//28820 +f 30077//28819 30076//28818 30078//28820 30079//28821 +f 30080//28822 30081//28823 30079//28821 30078//28820 +f 29921//28663 30080//28822 30078//28820 29919//28661 +f 30080//28822 29921//28663 29923//28665 30082//28824 +f 30081//28823 30080//28822 30082//28824 30083//28825 +f 30084//28826 30085//28827 30083//28825 30082//28824 +f 29925//28667 30084//28826 30082//28824 29923//28665 +f 30084//28826 29925//28667 29927//28669 30086//28828 +f 30085//28827 30084//28826 30086//28828 30087//28829 +f 30088//28830 30089//28831 30087//28829 30086//28828 +f 29929//28671 30088//28830 30086//28828 29927//28669 +f 30088//28830 29929//28671 29931//28673 30090//28832 +f 30089//28831 30088//28830 30090//28832 30091//28833 +f 30092//28834 30093//28835 30091//28833 30090//28832 +f 29933//28675 30092//28834 30090//28832 29931//28673 +f 30092//28834 29933//28675 29935//28677 30094//28836 +f 30093//28835 30092//28834 30094//28836 30095//28837 +f 30096//28838 30097//28839 30095//28837 30094//28836 +f 29937//28679 30096//28838 30094//28836 29935//28677 +f 30096//28838 29937//28679 29939//28681 30098//28840 +f 30097//28839 30096//28838 30098//28840 30099//28841 +f 30100//28842 30101//28843 30099//28841 30098//28840 +f 29941//28683 30100//28842 30098//28840 29939//28681 +f 30100//28842 29941//28683 29943//28685 30102//28844 +f 30101//28843 30100//28842 30102//28844 30103//28845 +f 30104//28846 30105//28847 30103//28845 30102//28844 +f 29945//28687 30104//28846 30102//28844 29943//28685 +f 30104//28846 29945//28687 29947//28689 30106//28848 +f 30105//28847 30104//28846 30106//28848 30107//28849 +f 30108//28850 30109//28851 30107//28849 30106//28848 +f 29949//28691 30108//28850 30106//28848 29947//28689 +f 30108//28850 29949//28691 29951//28693 30110//28852 +f 30109//28851 30108//28850 30110//28852 30111//28853 +f 30112//28854 30113//28855 30111//28853 30110//28852 +f 29953//28695 30112//28854 30110//28852 29951//28693 +f 30112//28854 29953//28695 29955//28697 30114//28856 +f 30113//28855 30112//28854 30114//28856 30115//28857 +f 30116//28858 30117//28859 30115//28857 30114//28856 +f 29957//28699 30116//28858 30114//28856 29955//28697 +f 30116//28858 29957//28699 29959//28701 30118//28860 +f 30117//28859 30116//28858 30118//28860 30119//28861 +f 30120//28862 30121//28863 30119//28861 30118//28860 +f 29961//28703 30120//28862 30118//28860 29959//28701 +f 30120//28862 29961//28703 29963//28705 30122//28864 +f 30121//28863 30120//28862 30122//28864 30123//28865 +f 30124//28866 30125//28867 30123//28865 30122//28864 +f 29965//28707 30124//28866 30122//28864 29963//28705 +f 30124//28866 29965//28707 29967//28709 30126//28868 +f 30125//28867 30124//28866 30126//28868 30127//28869 +f 30128//28870 30129//28871 30127//28869 30126//28868 +f 29969//28711 30128//28870 30126//28868 29967//28709 +f 30128//28870 29969//28711 29971//28713 30130//28872 +f 30129//28871 30128//28870 30130//28872 30131//28873 +f 30132//28874 30133//28875 30131//28873 30130//28872 +f 29973//28715 30132//28874 30130//28872 29971//28713 +f 30132//28874 29973//28715 29975//28717 30134//28876 +f 30133//28875 30132//28874 30134//28876 30135//28877 +f 30136//28878 30137//28879 30135//28877 30134//28876 +f 29977//28719 30136//28878 30134//28876 29975//28717 +f 30136//28878 29977//28719 29979//28721 30138//28880 +f 30137//28879 30136//28878 30138//28880 30139//28881 +f 30140//28882 30141//28883 30139//28881 30138//28880 +f 29981//28723 30140//28882 30138//28880 29979//28721 +f 30140//28882 29981//28723 29983//28725 30142//28884 +f 30141//28883 30140//28882 30142//28884 30143//28885 +f 30144//28886 30145//28887 30143//28885 30142//28884 +f 29985//28727 30144//28886 30142//28884 29983//28725 +f 30144//28886 29985//28727 29987//28729 30146//28888 +f 30145//28887 30144//28886 30146//28888 30147//28889 +f 30148//28890 30149//28891 30147//28889 30146//28888 +f 29989//28731 30148//28890 30146//28888 29987//28729 +f 30148//28890 29989//28731 29991//28733 30150//28892 +f 30149//28891 30148//28890 30150//28892 30151//28893 +f 30152//28894 30153//28895 30151//28893 30150//28892 +f 29993//28735 30152//28894 30150//28892 29991//28733 +f 30152//28894 29993//28735 29995//28737 30154//28896 +f 30153//28895 30152//28894 30154//28896 30155//28897 +f 30156//28898 30157//28899 30155//28897 30154//28896 +f 29997//28739 30156//28898 30154//28896 29995//28737 +f 30156//28898 29997//28739 29999//28741 30158//28900 +f 30157//28899 30156//28898 30158//28900 30159//28901 +f 30160//28902 30161//28903 30159//28901 30158//28900 +f 30001//28743 30160//28902 30158//28900 29999//28741 +f 30160//28902 30001//28743 30003//28745 30162//28904 +f 30161//28903 30160//28902 30162//28904 30163//28905 +f 30164//28906 30165//28907 30163//28905 30162//28904 +f 30005//28747 30164//28906 30162//28904 30003//28745 +f 30164//28906 30005//28747 30007//28749 30166//28908 +f 30165//28907 30164//28906 30166//28908 30167//28909 +f 30168//28910 30169//28911 30167//28909 30166//28908 +f 30009//28751 30168//28910 30166//28908 30007//28749 +f 30168//28910 30009//28751 30011//28753 30170//28912 +f 30169//28911 30168//28910 30170//28912 30171//28913 +f 30172//28914 30173//28915 30171//28913 30170//28912 +f 30013//28755 30172//28914 30170//28912 30011//28753 +f 30172//28914 30013//28755 30015//28757 30174//28916 +f 30173//28915 30172//28914 30174//28916 30175//28917 +f 30016//28758 30018//28760 30175//28917 30174//28916 +f 29858//28600 30016//28758 30174//28916 30015//28757 +f 30019//28761 30021//28763 30176//28918 30177//28919 +f 30018//28760 30019//28761 30177//28919 30178//28920 +f 30179//28921 30180//28922 30178//28920 30177//28919 +f 30181//28923 30179//28921 30177//28919 30176//28918 +f 30023//28765 30025//28767 30182//28924 30183//28925 +f 30021//28763 30023//28765 30183//28925 30176//28918 +f 30184//28926 30181//28923 30176//28918 30183//28925 +f 30185//28927 30184//28926 30183//28925 30182//28924 +f 30027//28769 30029//28771 30186//28928 30187//28929 +f 30025//28767 30027//28769 30187//28929 30182//28924 +f 30188//28930 30185//28927 30182//28924 30187//28929 +f 30189//28931 30188//28930 30187//28929 30186//28928 +f 30031//28773 30033//28775 30190//28932 30191//28933 +f 30029//28771 30031//28773 30191//28933 30186//28928 +f 30192//28934 30189//28931 30186//28928 30191//28933 +f 30193//28935 30192//28934 30191//28933 30190//28932 +f 30035//28777 30037//28779 30194//28936 30195//28937 +f 30033//28775 30035//28777 30195//28937 30190//28932 +f 30196//28938 30193//28935 30190//28932 30195//28937 +f 30197//28939 30196//28938 30195//28937 30194//28936 +f 30039//28781 30041//28783 30198//28940 30199//28941 +f 30037//28779 30039//28781 30199//28941 30194//28936 +f 30200//28942 30197//28939 30194//28936 30199//28941 +f 30201//28943 30200//28942 30199//28941 30198//28940 +f 30043//28785 30045//28787 30202//28944 30203//28945 +f 30041//28783 30043//28785 30203//28945 30198//28940 +f 30204//28946 30201//28943 30198//28940 30203//28945 +f 30205//28947 30204//28946 30203//28945 30202//28944 +f 30047//28789 30049//28791 30206//28948 30207//28949 +f 30045//28787 30047//28789 30207//28949 30202//28944 +f 30208//28950 30205//28947 30202//28944 30207//28949 +f 30209//28951 30208//28950 30207//28949 30206//28948 +f 30051//28793 30053//28795 30210//28952 30211//28953 +f 30049//28791 30051//28793 30211//28953 30206//28948 +f 30212//28954 30209//28951 30206//28948 30211//28953 +f 30213//28955 30212//28954 30211//28953 30210//28952 +f 30055//28797 30057//28799 30214//28956 30215//28957 +f 30053//28795 30055//28797 30215//28957 30210//28952 +f 30216//28958 30213//28955 30210//28952 30215//28957 +f 30217//28959 30216//28958 30215//28957 30214//28956 +f 30059//28801 30061//28803 30218//28960 30219//28961 +f 30057//28799 30059//28801 30219//28961 30214//28956 +f 30220//28962 30217//28959 30214//28956 30219//28961 +f 30221//28963 30220//28962 30219//28961 30218//28960 +f 30063//28805 30065//28807 30222//28964 30223//28965 +f 30061//28803 30063//28805 30223//28965 30218//28960 +f 30224//28966 30221//28963 30218//28960 30223//28965 +f 30225//28967 30224//28966 30223//28965 30222//28964 +f 30067//28809 30069//28811 30226//28968 30227//28969 +f 30065//28807 30067//28809 30227//28969 30222//28964 +f 30228//28970 30225//28967 30222//28964 30227//28969 +f 30229//28971 30228//28970 30227//28969 30226//28968 +f 30071//28813 30073//28815 30230//28972 30231//28973 +f 30069//28811 30071//28813 30231//28973 30226//28968 +f 30232//28974 30229//28971 30226//28968 30231//28973 +f 30233//28975 30232//28974 30231//28973 30230//28972 +f 30075//28817 30077//28819 30234//28976 30235//28977 +f 30073//28815 30075//28817 30235//28977 30230//28972 +f 30236//28978 30233//28975 30230//28972 30235//28977 +f 30237//28979 30236//28978 30235//28977 30234//28976 +f 30079//28821 30081//28823 30238//28980 30239//28981 +f 30077//28819 30079//28821 30239//28981 30234//28976 +f 30240//28982 30237//28979 30234//28976 30239//28981 +f 30241//28983 30240//28982 30239//28981 30238//28980 +f 30083//28825 30085//28827 30242//28984 30243//28985 +f 30081//28823 30083//28825 30243//28985 30238//28980 +f 30244//28986 30241//28983 30238//28980 30243//28985 +f 30245//28987 30244//28986 30243//28985 30242//28984 +f 30087//28829 30089//28831 30246//28988 30247//28989 +f 30085//28827 30087//28829 30247//28989 30242//28984 +f 30248//28990 30245//28987 30242//28984 30247//28989 +f 30249//28991 30248//28990 30247//28989 30246//28988 +f 30091//28833 30093//28835 30250//28992 30251//28993 +f 30089//28831 30091//28833 30251//28993 30246//28988 +f 30252//28994 30249//28991 30246//28988 30251//28993 +f 30253//28995 30252//28994 30251//28993 30250//28992 +f 30095//28837 30097//28839 30254//28996 30255//28997 +f 30093//28835 30095//28837 30255//28997 30250//28992 +f 30256//28998 30253//28995 30250//28992 30255//28997 +f 30257//28999 30256//28998 30255//28997 30254//28996 +f 30099//28841 30101//28843 30258//29000 30259//29001 +f 30097//28839 30099//28841 30259//29001 30254//28996 +f 30260//29002 30257//28999 30254//28996 30259//29001 +f 30261//29003 30260//29002 30259//29001 30258//29000 +f 30103//28845 30105//28847 30262//29004 30263//29005 +f 30101//28843 30103//28845 30263//29005 30258//29000 +f 30264//29006 30261//29003 30258//29000 30263//29005 +f 30265//29007 30264//29006 30263//29005 30262//29004 +f 30107//28849 30109//28851 30266//29008 30267//29009 +f 30105//28847 30107//28849 30267//29009 30262//29004 +f 30268//29010 30265//29007 30262//29004 30267//29009 +f 30269//29011 30268//29010 30267//29009 30266//29008 +f 30111//28853 30113//28855 30270//29012 30271//29013 +f 30109//28851 30111//28853 30271//29013 30266//29008 +f 30272//29014 30269//29011 30266//29008 30271//29013 +f 30273//29015 30272//29014 30271//29013 30270//29012 +f 30115//28857 30117//28859 30274//29016 30275//29017 +f 30113//28855 30115//28857 30275//29017 30270//29012 +f 30276//29018 30273//29015 30270//29012 30275//29017 +f 30277//29019 30276//29018 30275//29017 30274//29016 +f 30119//28861 30121//28863 30278//29020 30279//29021 +f 30117//28859 30119//28861 30279//29021 30274//29016 +f 30280//29022 30277//29019 30274//29016 30279//29021 +f 30281//29023 30280//29022 30279//29021 30278//29020 +f 30123//28865 30125//28867 30282//29024 30283//29025 +f 30121//28863 30123//28865 30283//29025 30278//29020 +f 30284//29026 30281//29023 30278//29020 30283//29025 +f 30285//29027 30284//29026 30283//29025 30282//29024 +f 30127//28869 30129//28871 30286//29028 30287//29029 +f 30125//28867 30127//28869 30287//29029 30282//29024 +f 30288//29030 30285//29027 30282//29024 30287//29029 +f 30289//29031 30288//29030 30287//29029 30286//29028 +f 30131//28873 30133//28875 30290//29032 30291//29033 +f 30129//28871 30131//28873 30291//29033 30286//29028 +f 30292//29034 30289//29031 30286//29028 30291//29033 +f 30293//29035 30292//29034 30291//29033 30290//29032 +f 30135//28877 30137//28879 30294//29036 30295//29037 +f 30133//28875 30135//28877 30295//29037 30290//29032 +f 30296//29038 30293//29035 30290//29032 30295//29037 +f 30297//29039 30296//29038 30295//29037 30294//29036 +f 30139//28881 30141//28883 30298//29040 30299//29041 +f 30137//28879 30139//28881 30299//29041 30294//29036 +f 30300//29042 30297//29039 30294//29036 30299//29041 +f 30301//29043 30300//29042 30299//29041 30298//29040 +f 30143//28885 30145//28887 30302//29044 30303//29045 +f 30141//28883 30143//28885 30303//29045 30298//29040 +f 30304//29046 30301//29043 30298//29040 30303//29045 +f 30305//29047 30304//29046 30303//29045 30302//29044 +f 30147//28889 30149//28891 30306//29048 30307//29049 +f 30145//28887 30147//28889 30307//29049 30302//29044 +f 30308//29050 30305//29047 30302//29044 30307//29049 +f 30309//29051 30308//29050 30307//29049 30306//29048 +f 30151//28893 30153//28895 30310//29052 30311//29053 +f 30149//28891 30151//28893 30311//29053 30306//29048 +f 30312//29054 30309//29051 30306//29048 30311//29053 +f 30313//29055 30312//29054 30311//29053 30310//29052 +f 30155//28897 30157//28899 30314//29056 30315//29057 +f 30153//28895 30155//28897 30315//29057 30310//29052 +f 30316//29058 30313//29055 30310//29052 30315//29057 +f 30317//29059 30316//29058 30315//29057 30314//29056 +f 30159//28901 30161//28903 30318//29060 30319//29061 +f 30157//28899 30159//28901 30319//29061 30314//29056 +f 30320//29062 30317//29059 30314//29056 30319//29061 +f 30321//29063 30320//29062 30319//29061 30318//29060 +f 30163//28905 30165//28907 30322//29064 30323//29065 +f 30161//28903 30163//28905 30323//29065 30318//29060 +f 30324//29066 30321//29063 30318//29060 30323//29065 +f 30325//29067 30324//29066 30323//29065 30322//29064 +f 30167//28909 30169//28911 30326//29068 30327//29069 +f 30165//28907 30167//28909 30327//29069 30322//29064 +f 30328//29070 30325//29067 30322//29064 30327//29069 +f 30329//29071 30328//29070 30327//29069 30326//29068 +f 30171//28913 30173//28915 30330//29072 30331//29073 +f 30169//28911 30171//28913 30331//29073 30326//29068 +f 30332//29074 30329//29071 30326//29068 30331//29073 +f 30333//29075 30332//29074 30331//29073 30330//29072 +f 30175//28917 30018//28760 30178//28920 30334//29076 +f 30173//28915 30175//28917 30334//29076 30330//29072 +f 30335//29077 30333//29075 30330//29072 30334//29076 +f 30180//28922 30335//29077 30334//29076 30178//28920 +f 30179//28921 30181//28923 30336//29078 30337//29079 +f 30180//28922 30179//28921 30337//29079 30338//29080 +f 30339//29081 30340//29082 30338//29080 30337//29079 +f 30341//29083 30339//29081 30337//29079 30336//29078 +f 30184//28926 30185//28927 30342//29084 30343//29085 +f 30181//28923 30184//28926 30343//29085 30336//29078 +f 30344//29086 30341//29083 30336//29078 30343//29085 +f 30345//29087 30344//29086 30343//29085 30342//29084 +f 30188//28930 30189//28931 30346//29088 30347//29089 +f 30185//28927 30188//28930 30347//29089 30342//29084 +f 30348//29090 30345//29087 30342//29084 30347//29089 +f 30349//29091 30348//29090 30347//29089 30346//29088 +f 30192//28934 30193//28935 30350//29092 30351//29093 +f 30189//28931 30192//28934 30351//29093 30346//29088 +f 30352//29094 30349//29091 30346//29088 30351//29093 +f 30353//29095 30352//29094 30351//29093 30350//29092 +f 30196//28938 30197//28939 30354//29096 30355//29097 +f 30193//28935 30196//28938 30355//29097 30350//29092 +f 30356//29098 30353//29095 30350//29092 30355//29097 +f 30357//29099 30356//29098 30355//29097 30354//29096 +f 30200//28942 30201//28943 30358//29100 30359//29101 +f 30197//28939 30200//28942 30359//29101 30354//29096 +f 30360//29102 30357//29099 30354//29096 30359//29101 +f 30361//29103 30360//29102 30359//29101 30358//29100 +f 30204//28946 30205//28947 30362//29104 30363//29105 +f 30201//28943 30204//28946 30363//29105 30358//29100 +f 30364//29106 30361//29103 30358//29100 30363//29105 +f 30365//29107 30364//29106 30363//29105 30362//29104 +f 30208//28950 30209//28951 30366//29108 30367//29109 +f 30205//28947 30208//28950 30367//29109 30362//29104 +f 30368//29110 30365//29107 30362//29104 30367//29109 +f 30369//29111 30368//29110 30367//29109 30366//29108 +f 30212//28954 30213//28955 30370//29112 30371//29113 +f 30209//28951 30212//28954 30371//29113 30366//29108 +f 30372//29114 30369//29111 30366//29108 30371//29113 +f 30373//29115 30372//29114 30371//29113 30370//29112 +f 30216//28958 30217//28959 30374//29116 30375//29117 +f 30213//28955 30216//28958 30375//29117 30370//29112 +f 30376//29118 30373//29115 30370//29112 30375//29117 +f 30377//29119 30376//29118 30375//29117 30374//29116 +f 30220//28962 30221//28963 30378//29120 30379//29121 +f 30217//28959 30220//28962 30379//29121 30374//29116 +f 30380//29122 30377//29119 30374//29116 30379//29121 +f 30381//29123 30380//29122 30379//29121 30378//29120 +f 30224//28966 30225//28967 30382//29124 30383//29125 +f 30221//28963 30224//28966 30383//29125 30378//29120 +f 30384//29126 30381//29123 30378//29120 30383//29125 +f 30385//29127 30384//29126 30383//29125 30382//29124 +f 30228//28970 30229//28971 30386//29128 30387//29129 +f 30225//28967 30228//28970 30387//29129 30382//29124 +f 30388//29130 30385//29127 30382//29124 30387//29129 +f 30389//29131 30388//29130 30387//29129 30386//29128 +f 30232//28974 30233//28975 30390//29132 30391//29133 +f 30229//28971 30232//28974 30391//29133 30386//29128 +f 30392//29134 30389//29131 30386//29128 30391//29133 +f 30393//29135 30392//29134 30391//29133 30390//29132 +f 30236//28978 30237//28979 30394//29136 30395//29137 +f 30233//28975 30236//28978 30395//29137 30390//29132 +f 30396//29138 30393//29135 30390//29132 30395//29137 +f 30397//29139 30396//29138 30395//29137 30394//29136 +f 30240//28982 30241//28983 30398//29140 30399//29141 +f 30237//28979 30240//28982 30399//29141 30394//29136 +f 30400//29142 30397//29139 30394//29136 30399//29141 +f 30401//29143 30400//29142 30399//29141 30398//29140 +f 30244//28986 30245//28987 30402//29144 30403//29145 +f 30241//28983 30244//28986 30403//29145 30398//29140 +f 30404//29146 30401//29143 30398//29140 30403//29145 +f 30405//29147 30404//29146 30403//29145 30402//29144 +f 30248//28990 30249//28991 30406//29148 30407//29149 +f 30245//28987 30248//28990 30407//29149 30402//29144 +f 30408//29150 30405//29147 30402//29144 30407//29149 +f 30409//29151 30408//29150 30407//29149 30406//29148 +f 30252//28994 30253//28995 30410//29152 30411//29153 +f 30249//28991 30252//28994 30411//29153 30406//29148 +f 30412//29154 30409//29151 30406//29148 30411//29153 +f 30413//29155 30412//29154 30411//29153 30410//29152 +f 30256//28998 30257//28999 30414//29156 30415//29157 +f 30253//28995 30256//28998 30415//29157 30410//29152 +f 30416//29158 30413//29155 30410//29152 30415//29157 +f 30417//29159 30416//29158 30415//29157 30414//29156 +f 30260//29002 30261//29003 30418//29160 30419//29161 +f 30257//28999 30260//29002 30419//29161 30414//29156 +f 30420//29162 30417//29159 30414//29156 30419//29161 +f 30421//29163 30420//29162 30419//29161 30418//29160 +f 30264//29006 30265//29007 30422//29164 30423//29165 +f 30261//29003 30264//29006 30423//29165 30418//29160 +f 30424//29166 30421//29163 30418//29160 30423//29165 +f 30425//29167 30424//29166 30423//29165 30422//29164 +f 30268//29010 30269//29011 30426//29168 30427//29169 +f 30265//29007 30268//29010 30427//29169 30422//29164 +f 30428//29170 30425//29167 30422//29164 30427//29169 +f 30429//29171 30428//29170 30427//29169 30426//29168 +f 30272//29014 30273//29015 30430//29172 30431//29173 +f 30269//29011 30272//29014 30431//29173 30426//29168 +f 30432//29174 30429//29171 30426//29168 30431//29173 +f 30433//29175 30432//29174 30431//29173 30430//29172 +f 30276//29018 30277//29019 30434//29176 30435//29177 +f 30273//29015 30276//29018 30435//29177 30430//29172 +f 30436//29178 30433//29175 30430//29172 30435//29177 +f 30437//29179 30436//29178 30435//29177 30434//29176 +f 30280//29022 30281//29023 30438//29180 30439//29181 +f 30277//29019 30280//29022 30439//29181 30434//29176 +f 30440//29182 30437//29179 30434//29176 30439//29181 +f 30441//29183 30440//29182 30439//29181 30438//29180 +f 30284//29026 30285//29027 30442//29184 30443//29185 +f 30281//29023 30284//29026 30443//29185 30438//29180 +f 30444//29186 30441//29183 30438//29180 30443//29185 +f 30445//29187 30444//29186 30443//29185 30442//29184 +f 30288//29030 30289//29031 30446//29188 30447//29189 +f 30285//29027 30288//29030 30447//29189 30442//29184 +f 30448//29190 30445//29187 30442//29184 30447//29189 +f 30449//29191 30448//29190 30447//29189 30446//29188 +f 30292//29034 30293//29035 30450//29192 30451//29193 +f 30289//29031 30292//29034 30451//29193 30446//29188 +f 30452//29194 30449//29191 30446//29188 30451//29193 +f 30453//29195 30452//29194 30451//29193 30450//29192 +f 30296//29038 30297//29039 30454//29196 30455//29197 +f 30293//29035 30296//29038 30455//29197 30450//29192 +f 30456//29198 30453//29195 30450//29192 30455//29197 +f 30457//29199 30456//29198 30455//29197 30454//29196 +f 30300//29042 30301//29043 30458//29200 30459//29201 +f 30297//29039 30300//29042 30459//29201 30454//29196 +f 30460//29202 30457//29199 30454//29196 30459//29201 +f 30461//29203 30460//29202 30459//29201 30458//29200 +f 30304//29046 30305//29047 30462//29204 30463//29205 +f 30301//29043 30304//29046 30463//29205 30458//29200 +f 30464//29206 30461//29203 30458//29200 30463//29205 +f 30465//29207 30464//29206 30463//29205 30462//29204 +f 30308//29050 30309//29051 30466//29208 30467//29209 +f 30305//29047 30308//29050 30467//29209 30462//29204 +f 30468//29210 30465//29207 30462//29204 30467//29209 +f 30469//29211 30468//29210 30467//29209 30466//29208 +f 30312//29054 30313//29055 30470//29212 30471//29213 +f 30309//29051 30312//29054 30471//29213 30466//29208 +f 30472//29214 30469//29211 30466//29208 30471//29213 +f 30473//29215 30472//29214 30471//29213 30470//29212 +f 30316//29058 30317//29059 30474//29216 30475//29217 +f 30313//29055 30316//29058 30475//29217 30470//29212 +f 30476//29218 30473//29215 30470//29212 30475//29217 +f 30477//29219 30476//29218 30475//29217 30474//29216 +f 30320//29062 30321//29063 30478//29220 30479//29221 +f 30317//29059 30320//29062 30479//29221 30474//29216 +f 30480//29222 30477//29219 30474//29216 30479//29221 +f 30481//29223 30480//29222 30479//29221 30478//29220 +f 30324//29066 30325//29067 30482//29224 30483//29225 +f 30321//29063 30324//29066 30483//29225 30478//29220 +f 30484//29226 30481//29223 30478//29220 30483//29225 +f 30485//29227 30484//29226 30483//29225 30482//29224 +f 30328//29070 30329//29071 30486//29228 30487//29229 +f 30325//29067 30328//29070 30487//29229 30482//29224 +f 30488//29230 30485//29227 30482//29224 30487//29229 +f 30489//29231 30488//29230 30487//29229 30486//29228 +f 30332//29074 30333//29075 30490//29232 30491//29233 +f 30329//29071 30332//29074 30491//29233 30486//29228 +f 30492//29234 30489//29231 30486//29228 30491//29233 +f 30493//29235 30492//29234 30491//29233 30490//29232 +f 30335//29077 30180//28922 30338//29080 30494//29236 +f 30333//29075 30335//29077 30494//29236 30490//29232 +f 30495//29237 30493//29235 30490//29232 30494//29236 +f 30340//29082 30495//29237 30494//29236 30338//29080 +f 30339//29081 30341//29083 30496//29238 30497//29239 +f 30340//29082 30339//29081 30497//29239 30498//29240 +f 30499//29241 30500//29242 30498//29240 30497//29239 +f 30501//29243 30499//29241 30497//29239 30496//29238 +f 30344//29086 30345//29087 30502//29244 30503//29245 +f 30341//29083 30344//29086 30503//29245 30496//29238 +f 30504//29246 30501//29243 30496//29238 30503//29245 +f 30505//29247 30504//29246 30503//29245 30502//29244 +f 30348//29090 30349//29091 30506//29248 30507//29249 +f 30345//29087 30348//29090 30507//29249 30502//29244 +f 30508//29250 30505//29247 30502//29244 30507//29249 +f 30509//29251 30508//29250 30507//29249 30506//29248 +f 30352//29094 30353//29095 30510//29252 30511//29253 +f 30349//29091 30352//29094 30511//29253 30506//29248 +f 30512//29254 30509//29251 30506//29248 30511//29253 +f 30513//29255 30512//29254 30511//29253 30510//29252 +f 30356//29098 30357//29099 30514//29256 30515//29257 +f 30353//29095 30356//29098 30515//29257 30510//29252 +f 30516//29258 30513//29255 30510//29252 30515//29257 +f 30517//29259 30516//29258 30515//29257 30514//29256 +f 30360//29102 30361//29103 30518//29260 30519//29261 +f 30357//29099 30360//29102 30519//29261 30514//29256 +f 30520//29262 30517//29259 30514//29256 30519//29261 +f 30521//29263 30520//29262 30519//29261 30518//29260 +f 30364//29106 30365//29107 30522//29264 30523//29265 +f 30361//29103 30364//29106 30523//29265 30518//29260 +f 30524//29266 30521//29263 30518//29260 30523//29265 +f 30525//29267 30524//29266 30523//29265 30522//29264 +f 30368//29110 30369//29111 30526//29268 30527//29269 +f 30365//29107 30368//29110 30527//29269 30522//29264 +f 30528//29270 30525//29267 30522//29264 30527//29269 +f 30529//29271 30528//29270 30527//29269 30526//29268 +f 30372//29114 30373//29115 30530//29272 30531//29273 +f 30369//29111 30372//29114 30531//29273 30526//29268 +f 30532//29274 30529//29271 30526//29268 30531//29273 +f 30533//29275 30532//29274 30531//29273 30530//29272 +f 30376//29118 30377//29119 30534//29276 30535//29277 +f 30373//29115 30376//29118 30535//29277 30530//29272 +f 30536//29278 30533//29275 30530//29272 30535//29277 +f 30537//29279 30536//29278 30535//29277 30534//29276 +f 30380//29122 30381//29123 30538//29280 30539//29281 +f 30377//29119 30380//29122 30539//29281 30534//29276 +f 30540//29282 30537//29279 30534//29276 30539//29281 +f 30541//29283 30540//29282 30539//29281 30538//29280 +f 30384//29126 30385//29127 30542//29284 30543//29285 +f 30381//29123 30384//29126 30543//29285 30538//29280 +f 30544//29286 30541//29283 30538//29280 30543//29285 +f 30545//29287 30544//29286 30543//29285 30542//29284 +f 30388//29130 30389//29131 30546//29288 30547//29289 +f 30385//29127 30388//29130 30547//29289 30542//29284 +f 30548//29290 30545//29287 30542//29284 30547//29289 +f 30549//29291 30548//29290 30547//29289 30546//29288 +f 30392//29134 30393//29135 30550//29292 30551//29293 +f 30389//29131 30392//29134 30551//29293 30546//29288 +f 30552//29294 30549//29291 30546//29288 30551//29293 +f 30553//29295 30552//29294 30551//29293 30550//29292 +f 30396//29138 30397//29139 30554//29296 30555//29297 +f 30393//29135 30396//29138 30555//29297 30550//29292 +f 30556//29298 30553//29295 30550//29292 30555//29297 +f 30557//29299 30556//29298 30555//29297 30554//29296 +f 30400//29142 30401//29143 30558//29300 30559//29301 +f 30397//29139 30400//29142 30559//29301 30554//29296 +f 30560//29302 30557//29299 30554//29296 30559//29301 +f 30561//29303 30560//29302 30559//29301 30558//29300 +f 30404//29146 30405//29147 30562//29304 30563//29305 +f 30401//29143 30404//29146 30563//29305 30558//29300 +f 30564//29306 30561//29303 30558//29300 30563//29305 +f 30565//29307 30564//29306 30563//29305 30562//29304 +f 30408//29150 30409//29151 30566//29308 30567//29309 +f 30405//29147 30408//29150 30567//29309 30562//29304 +f 30568//29310 30565//29307 30562//29304 30567//29309 +f 30569//29311 30568//29310 30567//29309 30566//29308 +f 30412//29154 30413//29155 30570//29312 30571//29313 +f 30409//29151 30412//29154 30571//29313 30566//29308 +f 30572//29314 30569//29311 30566//29308 30571//29313 +f 30573//29315 30572//29314 30571//29313 30570//29312 +f 30416//29158 30417//29159 30574//29316 30575//29317 +f 30413//29155 30416//29158 30575//29317 30570//29312 +f 30576//29318 30573//29315 30570//29312 30575//29317 +f 30577//29319 30576//29318 30575//29317 30574//29316 +f 30420//29162 30421//29163 30578//29320 30579//29321 +f 30417//29159 30420//29162 30579//29321 30574//29316 +f 30580//29322 30577//29319 30574//29316 30579//29321 +f 30581//29323 30580//29322 30579//29321 30578//29320 +f 30424//29166 30425//29167 30582//29324 30583//29325 +f 30421//29163 30424//29166 30583//29325 30578//29320 +f 30584//29326 30581//29323 30578//29320 30583//29325 +f 30585//29327 30584//29326 30583//29325 30582//29324 +f 30428//29170 30429//29171 30586//29328 30587//29329 +f 30425//29167 30428//29170 30587//29329 30582//29324 +f 30588//29330 30585//29327 30582//29324 30587//29329 +f 30589//29331 30588//29330 30587//29329 30586//29328 +f 30432//29174 30433//29175 30590//29332 30591//29333 +f 30429//29171 30432//29174 30591//29333 30586//29328 +f 30592//29334 30589//29331 30586//29328 30591//29333 +f 30593//29335 30592//29334 30591//29333 30590//29332 +f 30436//29178 30437//29179 30594//29336 30595//29337 +f 30433//29175 30436//29178 30595//29337 30590//29332 +f 30596//29338 30593//29335 30590//29332 30595//29337 +f 30597//29339 30596//29338 30595//29337 30594//29336 +f 30440//29182 30441//29183 30598//29340 30599//29341 +f 30437//29179 30440//29182 30599//29341 30594//29336 +f 30600//29342 30597//29339 30594//29336 30599//29341 +f 30601//29343 30600//29342 30599//29341 30598//29340 +f 30444//29186 30445//29187 30602//29344 30603//29345 +f 30441//29183 30444//29186 30603//29345 30598//29340 +f 30604//29346 30601//29343 30598//29340 30603//29345 +f 30605//29347 30604//29346 30603//29345 30602//29344 +f 30448//29190 30449//29191 30606//29348 30607//29349 +f 30445//29187 30448//29190 30607//29349 30602//29344 +f 30608//29350 30605//29347 30602//29344 30607//29349 +f 30609//29351 30608//29350 30607//29349 30606//29348 +f 30452//29194 30453//29195 30610//29352 30611//29353 +f 30449//29191 30452//29194 30611//29353 30606//29348 +f 30612//29354 30609//29351 30606//29348 30611//29353 +f 30613//29355 30612//29354 30611//29353 30610//29352 +f 30456//29198 30457//29199 30614//29356 30615//29357 +f 30453//29195 30456//29198 30615//29357 30610//29352 +f 30616//29358 30613//29355 30610//29352 30615//29357 +f 30617//29359 30616//29358 30615//29357 30614//29356 +f 30460//29202 30461//29203 30618//29360 30619//29361 +f 30457//29199 30460//29202 30619//29361 30614//29356 +f 30620//29362 30617//29359 30614//29356 30619//29361 +f 30621//29363 30620//29362 30619//29361 30618//29360 +f 30464//29206 30465//29207 30622//29364 30623//29365 +f 30461//29203 30464//29206 30623//29365 30618//29360 +f 30624//29366 30621//29363 30618//29360 30623//29365 +f 30625//29367 30624//29366 30623//29365 30622//29364 +f 30468//29210 30469//29211 30626//29368 30627//29369 +f 30465//29207 30468//29210 30627//29369 30622//29364 +f 30628//29370 30625//29367 30622//29364 30627//29369 +f 30629//29371 30628//29370 30627//29369 30626//29368 +f 30472//29214 30473//29215 30630//29372 30631//29373 +f 30469//29211 30472//29214 30631//29373 30626//29368 +f 30632//29374 30629//29371 30626//29368 30631//29373 +f 30633//29375 30632//29374 30631//29373 30630//29372 +f 30476//29218 30477//29219 30634//29376 30635//29377 +f 30473//29215 30476//29218 30635//29377 30630//29372 +f 30636//29378 30633//29375 30630//29372 30635//29377 +f 30637//29379 30636//29378 30635//29377 30634//29376 +f 30480//29222 30481//29223 30638//29380 30639//29381 +f 30477//29219 30480//29222 30639//29381 30634//29376 +f 30640//29382 30637//29379 30634//29376 30639//29381 +f 30641//29383 30640//29382 30639//29381 30638//29380 +f 30484//29226 30485//29227 30642//29384 30643//29385 +f 30481//29223 30484//29226 30643//29385 30638//29380 +f 30644//29386 30641//29383 30638//29380 30643//29385 +f 30645//29387 30644//29386 30643//29385 30642//29384 +f 30488//29230 30489//29231 30646//29388 30647//29389 +f 30485//29227 30488//29230 30647//29389 30642//29384 +f 30648//29390 30645//29387 30642//29384 30647//29389 +f 30649//29391 30648//29390 30647//29389 30646//29388 +f 30492//29234 30493//29235 30650//29392 30651//29393 +f 30489//29231 30492//29234 30651//29393 30646//29388 +f 30652//29394 30649//29391 30646//29388 30651//29393 +f 30653//29395 30652//29394 30651//29393 30650//29392 +f 30495//29237 30340//29082 30498//29240 30654//29396 +f 30493//29235 30495//29237 30654//29396 30650//29392 +f 30655//29397 30653//29395 30650//29392 30654//29396 +f 30500//29242 30655//29397 30654//29396 30498//29240 +f 28832//27574 24388//23130 26229//24971 30656//29398 +f 28833//27575 28832//27574 30656//29398 30657//29399 +f 30658//29400 30659//29401 30657//29399 30656//29398 +f 26233//24975 30658//29400 30656//29398 26229//24971 +f 28836//27578 28833//27575 30657//29399 30660//29402 +f 28837//27579 28836//27578 30660//29402 30661//29403 +f 30662//29404 30663//29405 30661//29403 30660//29402 +f 30659//29401 30662//29404 30660//29402 30657//29399 +f 28840//27582 28837//27579 30661//29403 30664//29406 +f 28841//27583 28840//27582 30664//29406 30665//29407 +f 30666//29408 30667//29409 30665//29407 30664//29406 +f 30663//29405 30666//29408 30664//29406 30661//29403 +f 28844//27586 28841//27583 30665//29407 30668//29410 +f 28845//27587 28844//27586 30668//29410 30669//29411 +f 30670//29412 30671//29413 30669//29411 30668//29410 +f 30667//29409 30670//29412 30668//29410 30665//29407 +f 28848//27590 28845//27587 30669//29411 30672//29414 +f 28849//27591 28848//27590 30672//29414 30673//29415 +f 30674//29416 30675//29417 30673//29415 30672//29414 +f 30671//29413 30674//29416 30672//29414 30669//29411 +f 28852//27594 28849//27591 30673//29415 30676//29418 +f 28853//27595 28852//27594 30676//29418 30677//29419 +f 30678//29420 30679//29421 30677//29419 30676//29418 +f 30675//29417 30678//29420 30676//29418 30673//29415 +f 28856//27598 28853//27595 30677//29419 30680//29422 +f 28857//27599 28856//27598 30680//29422 30681//29423 +f 30682//29424 30683//29425 30681//29423 30680//29422 +f 30679//29421 30682//29424 30680//29422 30677//29419 +f 28860//27602 28857//27599 30681//29423 30684//29426 +f 28861//27603 28860//27602 30684//29426 30685//29427 +f 30686//29428 30687//29429 30685//29427 30684//29426 +f 30683//29425 30686//29428 30684//29426 30681//29423 +f 28864//27606 28861//27603 30685//29427 30688//29430 +f 28865//27607 28864//27606 30688//29430 30689//29431 +f 30690//29432 30691//29433 30689//29431 30688//29430 +f 30687//29429 30690//29432 30688//29430 30685//29427 +f 28868//27610 28865//27607 30689//29431 30692//29434 +f 28869//27611 28868//27610 30692//29434 30693//29435 +f 30694//29436 30695//29437 30693//29435 30692//29434 +f 30691//29433 30694//29436 30692//29434 30689//29431 +f 28872//27614 28869//27611 30693//29435 30696//29438 +f 28873//27615 28872//27614 30696//29438 30697//29439 +f 30698//29440 30699//29441 30697//29439 30696//29438 +f 30695//29437 30698//29440 30696//29438 30693//29435 +f 28876//27618 28873//27615 30697//29439 30700//29442 +f 28877//27619 28876//27618 30700//29442 30701//29443 +f 30702//29444 30703//29445 30701//29443 30700//29442 +f 30699//29441 30702//29444 30700//29442 30697//29439 +f 28880//27622 28877//27619 30701//29443 30704//29446 +f 28881//27623 28880//27622 30704//29446 30705//29447 +f 30706//29448 30707//29449 30705//29447 30704//29446 +f 30703//29445 30706//29448 30704//29446 30701//29443 +f 28884//27626 28881//27623 30705//29447 30708//29450 +f 28885//27627 28884//27626 30708//29450 30709//29451 +f 30710//29452 30711//29453 30709//29451 30708//29450 +f 30707//29449 30710//29452 30708//29450 30705//29447 +f 28888//27630 28885//27627 30709//29451 30712//29454 +f 28889//27631 28888//27630 30712//29454 30713//29455 +f 30714//29456 30715//29457 30713//29455 30712//29454 +f 30711//29453 30714//29456 30712//29454 30709//29451 +f 28892//27634 28889//27631 30713//29455 30716//29458 +f 28893//27635 28892//27634 30716//29458 30717//29459 +f 30718//29460 30719//29461 30717//29459 30716//29458 +f 30715//29457 30718//29460 30716//29458 30713//29455 +f 28896//27638 28893//27635 30717//29459 30720//29462 +f 28897//27639 28896//27638 30720//29462 30721//29463 +f 30722//29464 30723//29465 30721//29463 30720//29462 +f 30719//29461 30722//29464 30720//29462 30717//29459 +f 28900//27642 28897//27639 30721//29463 30724//29466 +f 28901//27643 28900//27642 30724//29466 30725//29467 +f 30726//29468 30727//29469 30725//29467 30724//29466 +f 30723//29465 30726//29468 30724//29466 30721//29463 +f 28904//27646 28901//27643 30725//29467 30728//29470 +f 28905//27647 28904//27646 30728//29470 30729//29471 +f 30730//29472 30731//29473 30729//29471 30728//29470 +f 30727//29469 30730//29472 30728//29470 30725//29467 +f 28907//27649 28905//27647 30729//29471 30732//29474 +f 24464//23206 28907//27649 30732//29474 26307//25049 +f 30733//29475 26309//25051 26307//25049 30732//29474 +f 30731//29473 30733//29475 30732//29474 30729//29471 +f 30734//29476 26313//25055 26312//25054 30735//29477 +f 30736//29478 30734//29476 30735//29477 30737//29479 +f 30738//29480 30739//29481 30737//29479 30735//29477 +f 26318//25060 30738//29480 30735//29477 26312//25054 +f 30740//29482 30736//29478 30737//29479 30741//29483 +f 30742//29484 30740//29482 30741//29483 30743//29485 +f 30744//29486 30745//29487 30743//29485 30741//29483 +f 30739//29481 30744//29486 30741//29483 30737//29479 +f 30746//29488 30742//29484 30743//29485 30747//29489 +f 30748//29490 30746//29488 30747//29489 30749//29491 +f 30750//29492 30751//29493 30749//29491 30747//29489 +f 30745//29487 30750//29492 30747//29489 30743//29485 +f 30752//29494 30748//29490 30749//29491 30753//29495 +f 30754//29496 30752//29494 30753//29495 30755//29497 +f 30756//29498 30757//29499 30755//29497 30753//29495 +f 30751//29493 30756//29498 30753//29495 30749//29491 +f 30758//29500 30754//29496 30755//29497 30759//29501 +f 30760//29502 30758//29500 30759//29501 30761//29503 +f 30762//29504 30763//29505 30761//29503 30759//29501 +f 30757//29499 30762//29504 30759//29501 30755//29497 +f 30764//29506 30760//29502 30761//29503 30765//29507 +f 30766//29508 30764//29506 30765//29507 30767//29509 +f 30768//29510 30769//29511 30767//29509 30765//29507 +f 30763//29505 30768//29510 30765//29507 30761//29503 +f 30770//29512 30766//29508 30767//29509 30771//29513 +f 30772//29514 30770//29512 30771//29513 30773//29515 +f 30774//29516 30775//29517 30773//29515 30771//29513 +f 30769//29511 30774//29516 30771//29513 30767//29509 +f 30776//29518 30772//29514 30773//29515 30777//29519 +f 30778//29520 30776//29518 30777//29519 30779//29521 +f 30780//29522 30781//29523 30779//29521 30777//29519 +f 30775//29517 30780//29522 30777//29519 30773//29515 +f 30782//29524 30778//29520 30779//29521 30783//29525 +f 30784//29526 30782//29524 30783//29525 30785//29527 +f 30786//29528 30787//29529 30785//29527 30783//29525 +f 30781//29523 30786//29528 30783//29525 30779//29521 +f 30788//29530 30784//29526 30785//29527 30789//29531 +f 30790//29532 30788//29530 30789//29531 30791//29533 +f 30792//29534 30793//29535 30791//29533 30789//29531 +f 30787//29529 30792//29534 30789//29531 30785//29527 +f 30794//29536 30790//29532 30791//29533 30795//29537 +f 30796//29538 30794//29536 30795//29537 30797//29539 +f 30798//29540 30799//29541 30797//29539 30795//29537 +f 30793//29535 30798//29540 30795//29537 30791//29533 +f 30800//29542 30796//29538 30797//29539 30801//29543 +f 30802//29544 30800//29542 30801//29543 30803//29545 +f 30804//29546 30805//29547 30803//29545 30801//29543 +f 30799//29541 30804//29546 30801//29543 30797//29539 +f 30806//29548 30802//29544 30803//29545 30807//29549 +f 30808//29550 30806//29548 30807//29549 30809//29551 +f 30810//29552 30811//29553 30809//29551 30807//29549 +f 30805//29547 30810//29552 30807//29549 30803//29545 +f 30812//29554 30808//29550 30809//29551 30813//29555 +f 30814//29556 30812//29554 30813//29555 30815//29557 +f 30816//29558 30817//29559 30815//29557 30813//29555 +f 30811//29553 30816//29558 30813//29555 30809//29551 +f 30818//29560 30814//29556 30815//29557 30819//29561 +f 30820//29562 30818//29560 30819//29561 30821//29563 +f 30822//29564 30823//29565 30821//29563 30819//29561 +f 30817//29559 30822//29564 30819//29561 30815//29557 +f 30824//29566 30820//29562 30821//29563 30825//29567 +f 30826//29568 30824//29566 30825//29567 30827//29569 +f 30828//29570 30829//29571 30827//29569 30825//29567 +f 30823//29565 30828//29570 30825//29567 30821//29563 +f 30830//29572 30826//29568 30827//29569 30831//29573 +f 30832//29574 30830//29572 30831//29573 30833//29575 +f 30834//29576 30835//29577 30833//29575 30831//29573 +f 30829//29571 30834//29576 30831//29573 30827//29569 +f 30836//29578 30832//29574 30833//29575 30837//29579 +f 30838//29580 30836//29578 30837//29579 30839//29581 +f 30840//29582 30841//29583 30839//29581 30837//29579 +f 30835//29577 30840//29582 30837//29579 30833//29575 +f 30842//29584 30838//29580 30839//29581 30843//29585 +f 30844//29586 30842//29584 30843//29585 30845//29587 +f 30846//29588 30847//29589 30845//29587 30843//29585 +f 30841//29583 30846//29588 30843//29585 30839//29581 +f 30848//29590 30844//29586 30845//29587 30849//29591 +f 26429//25171 30848//29590 30849//29591 26430//25172 +f 30850//29592 26432//25174 26430//25172 30849//29591 +f 30847//29589 30850//29592 30849//29591 30845//29587 +f 30851//29593 30852//29594 30853//29595 30854//29596 +f 30855//29597 30851//29593 30854//29596 30856//29598 +f 26439//25181 26440//25182 30856//29598 30854//29596 +f 26441//25183 26439//25181 30854//29596 30853//29595 +f 30857//29599 30858//29600 30859//29601 30860//29602 +f 30861//29603 30857//29599 30860//29602 30862//29604 +f 30851//29593 30855//29597 30862//29604 30860//29602 +f 30852//29594 30851//29593 30860//29602 30859//29601 +f 30863//29605 30864//29606 30865//29607 30866//29608 +f 30867//29609 30863//29605 30866//29608 30868//29610 +f 30857//29599 30861//29603 30868//29610 30866//29608 +f 30858//29600 30857//29599 30866//29608 30865//29607 +f 30869//29611 30870//29612 30871//29613 30872//29614 +f 30873//29615 30869//29611 30872//29614 30874//29616 +f 30863//29605 30867//29609 30874//29616 30872//29614 +f 30864//29606 30863//29605 30872//29614 30871//29613 +f 30875//29617 30876//29618 30877//29619 30878//29620 +f 30879//29621 30875//29617 30878//29620 30880//29622 +f 30869//29611 30873//29615 30880//29622 30878//29620 +f 30870//29612 30869//29611 30878//29620 30877//29619 +f 30881//29623 30882//29624 30883//29625 30884//29626 +f 30885//29627 30881//29623 30884//29626 30886//29628 +f 30875//29617 30879//29621 30886//29628 30884//29626 +f 30876//29618 30875//29617 30884//29626 30883//29625 +f 30887//29629 30888//29630 30889//29631 30890//29632 +f 30891//29633 30887//29629 30890//29632 30892//29634 +f 30881//29623 30885//29627 30892//29634 30890//29632 +f 30882//29624 30881//29623 30890//29632 30889//29631 +f 30893//29635 30894//29636 30895//29637 30896//29638 +f 30897//29639 30893//29635 30896//29638 30898//29640 +f 30887//29629 30891//29633 30898//29640 30896//29638 +f 30888//29630 30887//29629 30896//29638 30895//29637 +f 30899//29641 30900//29642 30901//29643 30902//29644 +f 30903//29645 30899//29641 30902//29644 30904//29646 +f 30893//29635 30897//29639 30904//29646 30902//29644 +f 30894//29636 30893//29635 30902//29644 30901//29643 +f 30905//29647 30906//29648 30907//29649 30908//29650 +f 30909//29651 30905//29647 30908//29650 30910//29652 +f 30899//29641 30903//29645 30910//29652 30908//29650 +f 30900//29642 30899//29641 30908//29650 30907//29649 +f 30911//29653 30912//29654 30913//29655 30914//29656 +f 30915//29657 30911//29653 30914//29656 30916//29658 +f 30905//29647 30909//29651 30916//29658 30914//29656 +f 30906//29648 30905//29647 30914//29656 30913//29655 +f 30917//29659 30918//29660 30919//29661 30920//29662 +f 30921//29663 30917//29659 30920//29662 30922//29664 +f 30911//29653 30915//29657 30922//29664 30920//29662 +f 30912//29654 30911//29653 30920//29662 30919//29661 +f 30923//29665 30924//29666 30925//29667 30926//29668 +f 30927//29669 30923//29665 30926//29668 30928//29670 +f 30917//29659 30921//29663 30928//29670 30926//29668 +f 30918//29660 30917//29659 30926//29668 30925//29667 +f 30929//29671 30930//29672 30931//29673 30932//29674 +f 30933//29675 30929//29671 30932//29674 30934//29676 +f 30923//29665 30927//29669 30934//29676 30932//29674 +f 30924//29666 30923//29665 30932//29674 30931//29673 +f 30935//29677 30936//29678 30937//29679 30938//29680 +f 30939//29681 30935//29677 30938//29680 30940//29682 +f 30929//29671 30933//29675 30940//29682 30938//29680 +f 30930//29672 30929//29671 30938//29680 30937//29679 +f 30941//29683 30942//29684 30943//29685 30944//29686 +f 30945//29687 30941//29683 30944//29686 30946//29688 +f 30935//29677 30939//29681 30946//29688 30944//29686 +f 30936//29678 30935//29677 30944//29686 30943//29685 +f 30947//29689 30948//29690 30949//29691 30950//29692 +f 30951//29693 30947//29689 30950//29692 30952//29694 +f 30941//29683 30945//29687 30952//29694 30950//29692 +f 30942//29684 30941//29683 30950//29692 30949//29691 +f 30953//29695 30954//29696 30955//29697 30956//29698 +f 30957//29699 30953//29695 30956//29698 30958//29700 +f 30947//29689 30951//29693 30958//29700 30956//29698 +f 30948//29690 30947//29689 30956//29698 30955//29697 +f 30959//29701 30960//29702 30961//29703 30962//29704 +f 30963//29705 30959//29701 30962//29704 30964//29706 +f 30953//29695 30957//29699 30964//29706 30962//29704 +f 30954//29696 30953//29695 30962//29704 30961//29703 +f 26550//25292 26553//25295 30965//29707 30966//29708 +f 26554//25296 26550//25292 30966//29708 30967//29709 +f 30959//29701 30963//29705 30967//29709 30966//29708 +f 30960//29702 30959//29701 30966//29708 30965//29707 +f 30968//29710 30855//29597 30856//29598 30969//29711 +f 30970//29712 30968//29710 30969//29711 30971//29713 +f 26560//25302 26561//25303 30971//29713 30969//29711 +f 26440//25182 26560//25302 30969//29711 30856//29598 +f 30972//29714 30861//29603 30862//29604 30973//29715 +f 30974//29716 30972//29714 30973//29715 30975//29717 +f 30968//29710 30970//29712 30975//29717 30973//29715 +f 30855//29597 30968//29710 30973//29715 30862//29604 +f 30976//29718 30867//29609 30868//29610 30977//29719 +f 30978//29720 30976//29718 30977//29719 30979//29721 +f 30972//29714 30974//29716 30979//29721 30977//29719 +f 30861//29603 30972//29714 30977//29719 30868//29610 +f 30980//29722 30873//29615 30874//29616 30981//29723 +f 30982//29724 30980//29722 30981//29723 30983//29725 +f 30976//29718 30978//29720 30983//29725 30981//29723 +f 30867//29609 30976//29718 30981//29723 30874//29616 +f 30984//29726 30879//29621 30880//29622 30985//29727 +f 30986//29728 30984//29726 30985//29727 30987//29729 +f 30980//29722 30982//29724 30987//29729 30985//29727 +f 30873//29615 30980//29722 30985//29727 30880//29622 +f 30988//29730 30885//29627 30886//29628 30989//29731 +f 30990//29732 30988//29730 30989//29731 30991//29733 +f 30984//29726 30986//29728 30991//29733 30989//29731 +f 30879//29621 30984//29726 30989//29731 30886//29628 +f 30992//29734 30891//29633 30892//29634 30993//29735 +f 30994//29736 30992//29734 30993//29735 30995//29737 +f 30988//29730 30990//29732 30995//29737 30993//29735 +f 30885//29627 30988//29730 30993//29735 30892//29634 +f 30996//29738 30897//29639 30898//29640 30997//29739 +f 30998//29740 30996//29738 30997//29739 30999//29741 +f 30992//29734 30994//29736 30999//29741 30997//29739 +f 30891//29633 30992//29734 30997//29739 30898//29640 +f 31000//29742 30903//29645 30904//29646 31001//29743 +f 31002//29744 31000//29742 31001//29743 31003//29745 +f 30996//29738 30998//29740 31003//29745 31001//29743 +f 30897//29639 30996//29738 31001//29743 30904//29646 +f 31004//29746 30909//29651 30910//29652 31005//29747 +f 31006//29748 31004//29746 31005//29747 31007//29749 +f 31000//29742 31002//29744 31007//29749 31005//29747 +f 30903//29645 31000//29742 31005//29747 30910//29652 +f 31008//29750 30915//29657 30916//29658 31009//29751 +f 31010//29752 31008//29750 31009//29751 31011//29753 +f 31004//29746 31006//29748 31011//29753 31009//29751 +f 30909//29651 31004//29746 31009//29751 30916//29658 +f 31012//29754 30921//29663 30922//29664 31013//29755 +f 31014//29756 31012//29754 31013//29755 31015//29757 +f 31008//29750 31010//29752 31015//29757 31013//29755 +f 30915//29657 31008//29750 31013//29755 30922//29664 +f 31016//29758 30927//29669 30928//29670 31017//29759 +f 31018//29760 31016//29758 31017//29759 31019//29761 +f 31012//29754 31014//29756 31019//29761 31017//29759 +f 30921//29663 31012//29754 31017//29759 30928//29670 +f 31020//29762 30933//29675 30934//29676 31021//29763 +f 31022//29764 31020//29762 31021//29763 31023//29765 +f 31016//29758 31018//29760 31023//29765 31021//29763 +f 30927//29669 31016//29758 31021//29763 30934//29676 +f 31024//29766 30939//29681 30940//29682 31025//29767 +f 31026//29768 31024//29766 31025//29767 31027//29769 +f 31020//29762 31022//29764 31027//29769 31025//29767 +f 30933//29675 31020//29762 31025//29767 30940//29682 +f 31028//29770 30945//29687 30946//29688 31029//29771 +f 31030//29772 31028//29770 31029//29771 31031//29773 +f 31024//29766 31026//29768 31031//29773 31029//29771 +f 30939//29681 31024//29766 31029//29771 30946//29688 +f 31032//29774 30951//29693 30952//29694 31033//29775 +f 31034//29776 31032//29774 31033//29775 31035//29777 +f 31028//29770 31030//29772 31035//29777 31033//29775 +f 30945//29687 31028//29770 31033//29775 30952//29694 +f 31036//29778 30957//29699 30958//29700 31037//29779 +f 31038//29780 31036//29778 31037//29779 31039//29781 +f 31032//29774 31034//29776 31039//29781 31037//29779 +f 30951//29693 31032//29774 31037//29779 30958//29700 +f 31040//29782 30963//29705 30964//29706 31041//29783 +f 31042//29784 31040//29782 31041//29783 31043//29785 +f 31036//29778 31038//29780 31043//29785 31041//29783 +f 30957//29699 31036//29778 31041//29783 30964//29706 +f 26634//25376 26554//25296 30967//29709 31044//29786 +f 26636//25378 26634//25376 31044//29786 31045//29787 +f 31040//29782 31042//29784 31045//29787 31044//29786 +f 30963//29705 31040//29782 31044//29786 30967//29709 +f 31046//29788 30739//29481 30738//29480 31047//29789 +f 30852//29594 31046//29788 31047//29789 30853//29595 +f 26640//25382 26441//25183 30853//29595 31047//29789 +f 26318//25060 26640//25382 31047//29789 30738//29480 +f 31048//29790 30745//29487 30744//29486 31049//29791 +f 30858//29600 31048//29790 31049//29791 30859//29601 +f 31046//29788 30852//29594 30859//29601 31049//29791 +f 30739//29481 31046//29788 31049//29791 30744//29486 +f 31050//29792 30751//29493 30750//29492 31051//29793 +f 30864//29606 31050//29792 31051//29793 30865//29607 +f 31048//29790 30858//29600 30865//29607 31051//29793 +f 30745//29487 31048//29790 31051//29793 30750//29492 +f 31052//29794 30757//29499 30756//29498 31053//29795 +f 30870//29612 31052//29794 31053//29795 30871//29613 +f 31050//29792 30864//29606 30871//29613 31053//29795 +f 30751//29493 31050//29792 31053//29795 30756//29498 +f 31054//29796 30763//29505 30762//29504 31055//29797 +f 30876//29618 31054//29796 31055//29797 30877//29619 +f 31052//29794 30870//29612 30877//29619 31055//29797 +f 30757//29499 31052//29794 31055//29797 30762//29504 +f 31056//29798 30769//29511 30768//29510 31057//29799 +f 30882//29624 31056//29798 31057//29799 30883//29625 +f 31054//29796 30876//29618 30883//29625 31057//29799 +f 30763//29505 31054//29796 31057//29799 30768//29510 +f 31058//29800 30775//29517 30774//29516 31059//29801 +f 30888//29630 31058//29800 31059//29801 30889//29631 +f 31056//29798 30882//29624 30889//29631 31059//29801 +f 30769//29511 31056//29798 31059//29801 30774//29516 +f 31060//29802 30781//29523 30780//29522 31061//29803 +f 30894//29636 31060//29802 31061//29803 30895//29637 +f 31058//29800 30888//29630 30895//29637 31061//29803 +f 30775//29517 31058//29800 31061//29803 30780//29522 +f 31062//29804 30787//29529 30786//29528 31063//29805 +f 30900//29642 31062//29804 31063//29805 30901//29643 +f 31060//29802 30894//29636 30901//29643 31063//29805 +f 30781//29523 31060//29802 31063//29805 30786//29528 +f 31064//29806 30793//29535 30792//29534 31065//29807 +f 30906//29648 31064//29806 31065//29807 30907//29649 +f 31062//29804 30900//29642 30907//29649 31065//29807 +f 30787//29529 31062//29804 31065//29807 30792//29534 +f 31066//29808 30799//29541 30798//29540 31067//29809 +f 30912//29654 31066//29808 31067//29809 30913//29655 +f 31064//29806 30906//29648 30913//29655 31067//29809 +f 30793//29535 31064//29806 31067//29809 30798//29540 +f 31068//29810 30805//29547 30804//29546 31069//29811 +f 30918//29660 31068//29810 31069//29811 30919//29661 +f 31066//29808 30912//29654 30919//29661 31069//29811 +f 30799//29541 31066//29808 31069//29811 30804//29546 +f 31070//29812 30811//29553 30810//29552 31071//29813 +f 30924//29666 31070//29812 31071//29813 30925//29667 +f 31068//29810 30918//29660 30925//29667 31071//29813 +f 30805//29547 31068//29810 31071//29813 30810//29552 +f 31072//29814 30817//29559 30816//29558 31073//29815 +f 30930//29672 31072//29814 31073//29815 30931//29673 +f 31070//29812 30924//29666 30931//29673 31073//29815 +f 30811//29553 31070//29812 31073//29815 30816//29558 +f 31074//29816 30823//29565 30822//29564 31075//29817 +f 30936//29678 31074//29816 31075//29817 30937//29679 +f 31072//29814 30930//29672 30937//29679 31075//29817 +f 30817//29559 31072//29814 31075//29817 30822//29564 +f 31076//29818 30829//29571 30828//29570 31077//29819 +f 30942//29684 31076//29818 31077//29819 30943//29685 +f 31074//29816 30936//29678 30943//29685 31077//29819 +f 30823//29565 31074//29816 31077//29819 30828//29570 +f 31078//29820 30835//29577 30834//29576 31079//29821 +f 30948//29690 31078//29820 31079//29821 30949//29691 +f 31076//29818 30942//29684 30949//29691 31079//29821 +f 30829//29571 31076//29818 31079//29821 30834//29576 +f 31080//29822 30841//29583 30840//29582 31081//29823 +f 30954//29696 31080//29822 31081//29823 30955//29697 +f 31078//29820 30948//29690 30955//29697 31081//29823 +f 30835//29577 31078//29820 31081//29823 30840//29582 +f 31082//29824 30847//29589 30846//29588 31083//29825 +f 30960//29702 31082//29824 31083//29825 30961//29703 +f 31080//29822 30954//29696 30961//29703 31083//29825 +f 30841//29583 31080//29822 31083//29825 30846//29588 +f 26677//25419 26432//25174 30850//29592 31084//29826 +f 26553//25295 26677//25419 31084//29826 30965//29707 +f 31082//29824 30960//29702 30965//29707 31084//29826 +f 30847//29589 31082//29824 31084//29826 30850//29592 +f 31085//29827 30659//29401 30658//29400 31086//29828 +f 30736//29478 31085//29827 31086//29828 30734//29476 +f 26681//25423 26313//25055 30734//29476 31086//29828 +f 26233//24975 26681//25423 31086//29828 30658//29400 +f 31087//29829 30663//29405 30662//29404 31088//29830 +f 30742//29484 31087//29829 31088//29830 30740//29482 +f 31085//29827 30736//29478 30740//29482 31088//29830 +f 30659//29401 31085//29827 31088//29830 30662//29404 +f 31089//29831 30667//29409 30666//29408 31090//29832 +f 30748//29490 31089//29831 31090//29832 30746//29488 +f 31087//29829 30742//29484 30746//29488 31090//29832 +f 30663//29405 31087//29829 31090//29832 30666//29408 +f 31091//29833 30671//29413 30670//29412 31092//29834 +f 30754//29496 31091//29833 31092//29834 30752//29494 +f 31089//29831 30748//29490 30752//29494 31092//29834 +f 30667//29409 31089//29831 31092//29834 30670//29412 +f 31093//29835 30675//29417 30674//29416 31094//29836 +f 30760//29502 31093//29835 31094//29836 30758//29500 +f 31091//29833 30754//29496 30758//29500 31094//29836 +f 30671//29413 31091//29833 31094//29836 30674//29416 +f 31095//29837 30679//29421 30678//29420 31096//29838 +f 30766//29508 31095//29837 31096//29838 30764//29506 +f 31093//29835 30760//29502 30764//29506 31096//29838 +f 30675//29417 31093//29835 31096//29838 30678//29420 +f 31097//29839 30683//29425 30682//29424 31098//29840 +f 30772//29514 31097//29839 31098//29840 30770//29512 +f 31095//29837 30766//29508 30770//29512 31098//29840 +f 30679//29421 31095//29837 31098//29840 30682//29424 +f 31099//29841 30687//29429 30686//29428 31100//29842 +f 30778//29520 31099//29841 31100//29842 30776//29518 +f 31097//29839 30772//29514 30776//29518 31100//29842 +f 30683//29425 31097//29839 31100//29842 30686//29428 +f 31101//29843 30691//29433 30690//29432 31102//29844 +f 30784//29526 31101//29843 31102//29844 30782//29524 +f 31099//29841 30778//29520 30782//29524 31102//29844 +f 30687//29429 31099//29841 31102//29844 30690//29432 +f 31103//29845 30695//29437 30694//29436 31104//29846 +f 30790//29532 31103//29845 31104//29846 30788//29530 +f 31101//29843 30784//29526 30788//29530 31104//29846 +f 30691//29433 31101//29843 31104//29846 30694//29436 +f 31105//29847 30699//29441 30698//29440 31106//29848 +f 30796//29538 31105//29847 31106//29848 30794//29536 +f 31103//29845 30790//29532 30794//29536 31106//29848 +f 30695//29437 31103//29845 31106//29848 30698//29440 +f 31107//29849 30703//29445 30702//29444 31108//29850 +f 30802//29544 31107//29849 31108//29850 30800//29542 +f 31105//29847 30796//29538 30800//29542 31108//29850 +f 30699//29441 31105//29847 31108//29850 30702//29444 +f 31109//29851 30707//29449 30706//29448 31110//29852 +f 30808//29550 31109//29851 31110//29852 30806//29548 +f 31107//29849 30802//29544 30806//29548 31110//29852 +f 30703//29445 31107//29849 31110//29852 30706//29448 +f 31111//29853 30711//29453 30710//29452 31112//29854 +f 30814//29556 31111//29853 31112//29854 30812//29554 +f 31109//29851 30808//29550 30812//29554 31112//29854 +f 30707//29449 31109//29851 31112//29854 30710//29452 +f 31113//29855 30715//29457 30714//29456 31114//29856 +f 30820//29562 31113//29855 31114//29856 30818//29560 +f 31111//29853 30814//29556 30818//29560 31114//29856 +f 30711//29453 31111//29853 31114//29856 30714//29456 +f 31115//29857 30719//29461 30718//29460 31116//29858 +f 30826//29568 31115//29857 31116//29858 30824//29566 +f 31113//29855 30820//29562 30824//29566 31116//29858 +f 30715//29457 31113//29855 31116//29858 30718//29460 +f 31117//29859 30723//29465 30722//29464 31118//29860 +f 30832//29574 31117//29859 31118//29860 30830//29572 +f 31115//29857 30826//29568 30830//29572 31118//29860 +f 30719//29461 31115//29857 31118//29860 30722//29464 +f 31119//29861 30727//29469 30726//29468 31120//29862 +f 30838//29580 31119//29861 31120//29862 30836//29578 +f 31117//29859 30832//29574 30836//29578 31120//29862 +f 30723//29465 31117//29859 31120//29862 30726//29468 +f 31121//29863 30731//29473 30730//29472 31122//29864 +f 30844//29586 31121//29863 31122//29864 30842//29584 +f 31119//29861 30838//29580 30842//29584 31122//29864 +f 30727//29469 31119//29861 31122//29864 30730//29472 +f 26718//25460 26309//25051 30733//29475 31123//29865 +f 26429//25171 26718//25460 31123//29865 30848//29590 +f 31121//29863 30844//29586 30848//29590 31123//29865 +f 30731//29473 31121//29863 31123//29865 30733//29475 +f 27995//26737 27994//26736 31124//29866 29560//28302 +f 29560//28302 31124//29866 28912//27654 28914//27656 +f 28913//27655 28912//27654 31124//29866 31125//29867 +f 31125//29867 31124//29866 27994//26736 27955//26697 +f 27955//26697 27954//26696 31126//29868 31125//29867 +f 31125//29867 31126//29868 29543//28285 28913//27655 +f 29546//28288 29543//28285 31126//29868 31127//29869 +f 31127//29869 31126//29868 27954//26696 27915//26657 +f 27915//26657 27914//26656 31128//29870 31127//29869 +f 31127//29869 31128//29870 29547//28289 29546//28288 +f 29550//28292 29547//28289 31128//29870 31129//29871 +f 31129//29871 31128//29870 27914//26656 27874//26616 +f 31129//29871 27874//26616 27875//26617 31130//29872 +f 29550//28292 31129//29871 31130//29872 29551//28293 +f 31131//29873 29554//28296 29551//28293 31130//29872 +f 27834//26576 31131//29873 31130//29872 27875//26617 +f 31131//29873 27834//26576 27835//26577 31132//29874 +f 29554//28296 31131//29873 31132//29874 29555//28297 +f 31133//29875 29558//28300 29555//28297 31132//29874 +f 27794//26536 31133//29875 31132//29874 27835//26577 +f 31133//29875 27794//26536 27795//26537 31134//29876 +f 29558//28300 31133//29875 31134//29876 29561//28303 +f 28992//27734 28993//27735 29561//28303 31134//29876 +f 27754//26496 28992//27734 31134//29876 27795//26537 +f 27610//26352 27615//26357 31135//29877 28989//27731 +f 28989//27731 31135//29877 29568//28310 28986//27728 +f 29571//28313 29568//28310 31135//29877 31136//29878 +f 31136//29878 31135//29877 27615//26357 27616//26358 +f 27616//26358 27621//26363 31137//29879 31136//29878 +f 31136//29878 31137//29879 29572//28314 29571//28313 +f 29575//28317 29572//28314 31137//29879 31138//29880 +f 31138//29880 31137//29879 27621//26363 27622//26364 +f 27622//26364 27627//26369 31139//29881 31138//29880 +f 31138//29880 31139//29881 29576//28318 29575//28317 +f 29579//28321 29576//28318 31139//29881 31140//29882 +f 31140//29882 31139//29881 27627//26369 27628//26370 +f 31140//29882 27628//26370 27633//26375 31141//29883 +f 29579//28321 31140//29882 31141//29883 29580//28322 +f 31142//29884 29583//28325 29580//28322 31141//29883 +f 27635//26377 31142//29884 31141//29883 27633//26375 +f 31142//29884 27635//26377 27639//26381 31143//29885 +f 29583//28325 31142//29884 31143//29885 29584//28326 +f 31144//29886 29587//28329 29584//28326 31143//29885 +f 27641//26383 31144//29886 31143//29885 27639//26381 +f 31144//29886 27641//26383 27645//26387 31145//29887 +f 29587//28329 31144//29886 31145//29887 29588//28330 +f 28984//27726 28985//27727 29588//28330 31145//29887 +f 27647//26389 28984//27726 31145//29887 27645//26387 +f 30499//29241 30501//29243 31146//29888 31147//29889 +f 30500//29242 30499//29241 31147//29889 31148//29890 +f 31149//29891 31150//29892 31148//29890 31147//29889 +f 31151//29893 31149//29891 31147//29889 31146//29888 +f 30504//29246 30505//29247 31152//29894 31153//29895 +f 30501//29243 30504//29246 31153//29895 31146//29888 +f 31154//29896 31151//29893 31146//29888 31153//29895 +f 31155//29897 31154//29896 31153//29895 31152//29894 +f 30508//29250 30509//29251 31156//29898 31157//29899 +f 30505//29247 30508//29250 31157//29899 31152//29894 +f 31158//29900 31155//29897 31152//29894 31157//29899 +f 31159//29901 31158//29900 31157//29899 31156//29898 +f 30512//29254 30513//29255 31160//29902 31161//29903 +f 30509//29251 30512//29254 31161//29903 31156//29898 +f 31162//29904 31159//29901 31156//29898 31161//29903 +f 31163//29905 31162//29904 31161//29903 31160//29902 +f 30516//29258 30517//29259 31164//29906 31165//29907 +f 30513//29255 30516//29258 31165//29907 31160//29902 +f 31166//29908 31163//29905 31160//29902 31165//29907 +f 31167//29909 31166//29908 31165//29907 31164//29906 +f 30520//29262 30521//29263 31168//29910 31169//29911 +f 30517//29259 30520//29262 31169//29911 31164//29906 +f 31170//29912 31167//29909 31164//29906 31169//29911 +f 31171//29913 31170//29912 31169//29911 31168//29910 +f 30524//29266 30525//29267 31172//29914 31173//29915 +f 30521//29263 30524//29266 31173//29915 31168//29910 +f 31174//29916 31171//29913 31168//29910 31173//29915 +f 31175//29917 31174//29916 31173//29915 31172//29914 +f 30528//29270 30529//29271 31176//29918 31177//29919 +f 30525//29267 30528//29270 31177//29919 31172//29914 +f 31178//29920 31175//29917 31172//29914 31177//29919 +f 31179//29921 31178//29920 31177//29919 31176//29918 +f 30532//29274 30533//29275 31180//29922 31181//29923 +f 30529//29271 30532//29274 31181//29923 31176//29918 +f 31182//29924 31179//29921 31176//29918 31181//29923 +f 31183//29925 31182//29924 31181//29923 31180//29922 +f 30536//29278 30537//29279 31184//29926 31185//29927 +f 30533//29275 30536//29278 31185//29927 31180//29922 +f 31186//29928 31183//29925 31180//29922 31185//29927 +f 31187//29929 31186//29928 31185//29927 31184//29926 +f 30540//29282 30541//29283 31188//29930 31189//29931 +f 30537//29279 30540//29282 31189//29931 31184//29926 +f 31190//29932 31187//29929 31184//29926 31189//29931 +f 31191//29933 31190//29932 31189//29931 31188//29930 +f 30544//29286 30545//29287 31192//29934 31193//29935 +f 30541//29283 30544//29286 31193//29935 31188//29930 +f 31194//29936 31191//29933 31188//29930 31193//29935 +f 31195//29937 31194//29936 31193//29935 31192//29934 +f 30548//29290 30549//29291 31196//29938 31197//29939 +f 30545//29287 30548//29290 31197//29939 31192//29934 +f 31198//29940 31195//29937 31192//29934 31197//29939 +f 31199//29941 31198//29940 31197//29939 31196//29938 +f 30552//29294 30553//29295 31200//29942 31201//29943 +f 30549//29291 30552//29294 31201//29943 31196//29938 +f 31202//29944 31199//29941 31196//29938 31201//29943 +f 31203//29945 31202//29944 31201//29943 31200//29942 +f 30556//29298 30557//29299 31204//29946 31205//29947 +f 30553//29295 30556//29298 31205//29947 31200//29942 +f 31206//29948 31203//29945 31200//29942 31205//29947 +f 31207//29949 31206//29948 31205//29947 31204//29946 +f 30560//29302 30561//29303 31208//29950 31209//29951 +f 30557//29299 30560//29302 31209//29951 31204//29946 +f 31210//29952 31207//29949 31204//29946 31209//29951 +f 31211//29953 31210//29952 31209//29951 31208//29950 +f 30564//29306 30565//29307 31212//29954 31213//29955 +f 30561//29303 30564//29306 31213//29955 31208//29950 +f 31214//29956 31211//29953 31208//29950 31213//29955 +f 31215//29957 31214//29956 31213//29955 31212//29954 +f 30568//29310 30569//29311 31216//29958 31217//29959 +f 30565//29307 30568//29310 31217//29959 31212//29954 +f 31218//29960 31215//29957 31212//29954 31217//29959 +f 31219//29961 31218//29960 31217//29959 31216//29958 +f 30572//29314 30573//29315 31220//29962 31221//29963 +f 30569//29311 30572//29314 31221//29963 31216//29958 +f 31222//29964 31219//29961 31216//29958 31221//29963 +f 31223//29965 31222//29964 31221//29963 31220//29962 +f 30576//29318 30577//29319 31224//29966 31225//29967 +f 30573//29315 30576//29318 31225//29967 31220//29962 +f 31226//29968 31223//29965 31220//29962 31225//29967 +f 31227//29969 31226//29968 31225//29967 31224//29966 +f 30580//29322 30581//29323 31228//29970 31229//29971 +f 30577//29319 30580//29322 31229//29971 31224//29966 +f 31230//29972 31227//29969 31224//29966 31229//29971 +f 31231//29973 31230//29972 31229//29971 31228//29970 +f 30584//29326 30585//29327 31232//29974 31233//29975 +f 30581//29323 30584//29326 31233//29975 31228//29970 +f 31234//29976 31231//29973 31228//29970 31233//29975 +f 31235//29977 31234//29976 31233//29975 31232//29974 +f 30588//29330 30589//29331 31236//29978 31237//29979 +f 30585//29327 30588//29330 31237//29979 31232//29974 +f 31238//29980 31235//29977 31232//29974 31237//29979 +f 31239//29981 31238//29980 31237//29979 31236//29978 +f 30592//29334 30593//29335 31240//29982 31241//29983 +f 30589//29331 30592//29334 31241//29983 31236//29978 +f 31242//29984 31239//29981 31236//29978 31241//29983 +f 31243//29985 31242//29984 31241//29983 31240//29982 +f 30596//29338 30597//29339 31244//29986 31245//29987 +f 30593//29335 30596//29338 31245//29987 31240//29982 +f 31246//29988 31243//29985 31240//29982 31245//29987 +f 31247//29989 31246//29988 31245//29987 31244//29986 +f 30600//29342 30601//29343 31248//29990 31249//29991 +f 30597//29339 30600//29342 31249//29991 31244//29986 +f 31250//29992 31247//29989 31244//29986 31249//29991 +f 31251//29993 31250//29992 31249//29991 31248//29990 +f 30604//29346 30605//29347 31252//29994 31253//29995 +f 30601//29343 30604//29346 31253//29995 31248//29990 +f 31254//29996 31251//29993 31248//29990 31253//29995 +f 31255//29997 31254//29996 31253//29995 31252//29994 +f 30608//29350 30609//29351 31256//29998 31257//29999 +f 30605//29347 30608//29350 31257//29999 31252//29994 +f 31258//30000 31255//29997 31252//29994 31257//29999 +f 31259//30001 31258//30000 31257//29999 31256//29998 +f 30612//29354 30613//29355 31260//30002 31261//30003 +f 30609//29351 30612//29354 31261//30003 31256//29998 +f 31262//30004 31259//30001 31256//29998 31261//30003 +f 31263//30005 31262//30004 31261//30003 31260//30002 +f 30616//29358 30617//29359 31264//30006 31265//30007 +f 30613//29355 30616//29358 31265//30007 31260//30002 +f 31266//30008 31263//30005 31260//30002 31265//30007 +f 31267//30009 31266//30008 31265//30007 31264//30006 +f 30620//29362 30621//29363 31268//30010 31269//30011 +f 30617//29359 30620//29362 31269//30011 31264//30006 +f 31270//30012 31267//30009 31264//30006 31269//30011 +f 31271//30013 31270//30012 31269//30011 31268//30010 +f 30624//29366 30625//29367 31272//30014 31273//30015 +f 30621//29363 30624//29366 31273//30015 31268//30010 +f 31274//30016 31271//30013 31268//30010 31273//30015 +f 31275//30017 31274//30016 31273//30015 31272//30014 +f 30628//29370 30629//29371 31276//30018 31277//30019 +f 30625//29367 30628//29370 31277//30019 31272//30014 +f 31278//30020 31275//30017 31272//30014 31277//30019 +f 31279//30021 31278//30020 31277//30019 31276//30018 +f 30632//29374 30633//29375 31280//30022 31281//30023 +f 30629//29371 30632//29374 31281//30023 31276//30018 +f 31282//30024 31279//30021 31276//30018 31281//30023 +f 31283//30025 31282//30024 31281//30023 31280//30022 +f 30636//29378 30637//29379 31284//30026 31285//30027 +f 30633//29375 30636//29378 31285//30027 31280//30022 +f 31286//30028 31283//30025 31280//30022 31285//30027 +f 31287//30029 31286//30028 31285//30027 31284//30026 +f 30640//29382 30641//29383 31288//30030 31289//30031 +f 30637//29379 30640//29382 31289//30031 31284//30026 +f 31290//30032 31287//30029 31284//30026 31289//30031 +f 31291//30033 31290//30032 31289//30031 31288//30030 +f 30644//29386 30645//29387 31292//30034 31293//30035 +f 30641//29383 30644//29386 31293//30035 31288//30030 +f 31294//30036 31291//30033 31288//30030 31293//30035 +f 31295//30037 31294//30036 31293//30035 31292//30034 +f 30648//29390 30649//29391 31296//30038 31297//30039 +f 30645//29387 30648//29390 31297//30039 31292//30034 +f 31298//30040 31295//30037 31292//30034 31297//30039 +f 31299//30041 31298//30040 31297//30039 31296//30038 +f 30652//29394 30653//29395 31300//30042 31301//30043 +f 30649//29391 30652//29394 31301//30043 31296//30038 +f 31302//30044 31299//30041 31296//30038 31301//30043 +f 31303//30045 31302//30044 31301//30043 31300//30042 +f 30655//29397 30500//29242 31148//29890 31304//30046 +f 30653//29395 30655//29397 31304//30046 31300//30042 +f 31305//30047 31303//30045 31300//30042 31304//30046 +f 31150//29892 31305//30047 31304//30046 31148//29890 +f 27798//26540 27837//26579 31306//30048 28977//27719 +f 28977//27719 31306//30048 28970//27712 28972//27714 +f 28971//27713 28970//27712 31306//30048 31307//30049 +f 31307//30049 31306//30048 27837//26579 27836//26578 +f 27836//26578 27878//26620 31308//30050 31307//30049 +f 31307//30049 31308//30050 29596//28338 28971//27713 +f 29599//28341 29596//28338 31308//30050 31309//30051 +f 31309//30051 31308//30050 27878//26620 27877//26619 +f 31309//30051 27877//26619 27918//26660 31310//30052 +f 29599//28341 31309//30051 31310//30052 29600//28342 +f 31311//30053 28964//27706 29600//28342 31310//30052 +f 27917//26659 31311//30053 31310//30052 27918//26660 +f 31311//30053 27917//26659 27958//26700 31312//30054 +f 28964//27706 31311//30053 31312//30054 28962//27704 +f 28956//27698 28957//27699 28962//27704 31312//30054 +f 27957//26699 28956//27698 31312//30054 27958//26700 +f 28135//26877 28137//26879 29615//28357 31313//30055 +f 28136//26878 28135//26877 31313//30055 28223//26965 +f 31314//30056 28228//26970 28223//26965 31313//30055 +f 28142//26884 31314//30056 31313//30055 29615//28357 +f 31314//30056 28142//26884 28143//26885 31315//30057 +f 28228//26970 31314//30056 31315//30057 28229//26971 +f 31316//30058 28234//26976 28229//26971 31315//30057 +f 28145//26887 31316//30058 31315//30057 28143//26885 +f 31316//30058 28145//26887 28149//26891 31317//30059 +f 28234//26976 31316//30058 31317//30059 28235//26977 +f 31318//30060 28240//26982 28235//26977 31317//30059 +f 28151//26893 31318//30060 31317//30059 28149//26891 +f 31318//30060 28151//26893 28155//26897 31319//30061 +f 28240//26982 31318//30060 31319//30061 28241//26983 +f 28246//26988 28241//26983 31319//30061 31320//30062 +f 31320//30062 31319//30061 28155//26897 28156//26898 +f 28156//26898 28161//26903 31321//30063 31320//30062 +f 31320//30062 31321//30063 28247//26989 28246//26988 +f 28252//26994 28247//26989 31321//30063 31322//30064 +f 31322//30064 31321//30063 28161//26903 28162//26904 +f 28162//26904 28945//27687 31323//30065 31322//30064 +f 31322//30064 31323//30065 28253//26995 28252//26994 +f 28170//26912 28253//26995 31323//30065 28168//26910 +f 28168//26910 31323//30065 28945//27687 28165//26907 +f 31324//30066 31325//30067 31326//30068 31327//30069 +f 31328//30070 31324//30066 31327//30069 31329//30071 +f 31330//30072 31331//30073 31329//30071 31327//30069 +f 31332//30074 31330//30072 31327//30069 31326//30068 +f 31333//30075 31325//30067 31324//30066 31334//30076 +f 31335//30077 31333//30075 31334//30076 31336//30078 +f 31337//30079 31338//30080 31336//30078 31334//30076 +f 31328//30070 31337//30079 31334//30076 31324//30066 +f 31339//30081 31340//30082 31341//30083 31342//30084 +f 31342//30084 31341//30083 31343//30085 31344//30086 +f 31335//30077 31343//30085 31341//30083 31333//30075 +f 31333//30075 31341//30083 31340//30082 31325//30067 +f 31345//30087 31346//30088 31347//30089 31348//30090 +f 31349//30091 31345//30087 31348//30090 31350//30092 +f 31342//30084 31344//30086 31350//30092 31348//30090 +f 31339//30081 31342//30084 31348//30090 31347//30089 +f 31351//30093 31346//30088 31345//30087 31352//30094 +f 31353//30095 31351//30093 31352//30094 31354//30096 +f 31355//30097 31356//30098 31354//30096 31352//30094 +f 31349//30091 31355//30097 31352//30094 31345//30087 +f 31357//30099 31358//30100 31359//30101 31360//30102 +f 31360//30102 31359//30101 31361//30103 31362//30104 +f 31353//30095 31361//30103 31359//30101 31351//30093 +f 31351//30093 31359//30101 31358//30100 31346//30088 +f 31363//30105 31364//30106 31365//30107 31366//30108 +f 31367//30109 31363//30105 31366//30108 31368//30110 +f 31360//30102 31362//30104 31368//30110 31366//30108 +f 31357//30099 31360//30102 31366//30108 31365//30107 +f 31369//30111 31364//30106 31363//30105 31370//30112 +f 31371//30113 31369//30111 31370//30112 31372//30114 +f 31373//30115 31374//30116 31372//30114 31370//30112 +f 31367//30109 31373//30115 31370//30112 31363//30105 +f 31375//30117 31376//30118 31377//30119 31378//30120 +f 31378//30120 31377//30119 31379//30121 31380//30122 +f 31371//30113 31379//30121 31377//30119 31369//30111 +f 31369//30111 31377//30119 31376//30118 31364//30106 +f 31381//30123 31382//30124 31383//30125 31384//30126 +f 31385//30127 31381//30123 31384//30126 31386//30128 +f 31378//30120 31380//30122 31386//30128 31384//30126 +f 31375//30117 31378//30120 31384//30126 31383//30125 +f 31387//30129 31382//30124 31381//30123 31388//30130 +f 31389//30131 31387//30129 31388//30130 31390//30132 +f 31391//30133 31392//30134 31390//30132 31388//30130 +f 31385//30127 31391//30133 31388//30130 31381//30123 +f 31393//30135 31394//30136 31395//30137 31396//30138 +f 31396//30138 31395//30137 31397//30139 31398//30140 +f 31389//30131 31397//30139 31395//30137 31387//30129 +f 31387//30129 31395//30137 31394//30136 31382//30124 +f 31399//30141 31400//30142 31401//30143 31402//30144 +f 31403//30145 31399//30141 31402//30144 31404//30146 +f 31396//30138 31398//30140 31404//30146 31402//30144 +f 31393//30135 31396//30138 31402//30144 31401//30143 +f 31405//30147 31400//30142 31399//30141 31406//30148 +f 31407//30149 31405//30147 31406//30148 31408//30150 +f 31409//30151 31410//30152 31408//30150 31406//30148 +f 31403//30145 31409//30151 31406//30148 31399//30141 +f 31411//30153 31412//30154 31413//30155 31414//30156 +f 31414//30156 31413//30155 31415//30157 31416//30158 +f 31407//30149 31415//30157 31413//30155 31405//30147 +f 31405//30147 31413//30155 31412//30154 31400//30142 +f 31401//30143 31400//30142 31417//30159 31418//30160 +f 31393//30135 31401//30143 31418//30160 31419//30161 +f 31420//30162 31421//30163 31419//30161 31418//30160 +f 31422//30164 31420//30162 31418//30160 31417//30159 +f 31423//30165 31424//30166 31425//30167 31426//30168 +f 31427//30169 31423//30165 31426//30168 31428//30170 +f 31429//30171 31428//30170 31426//30168 31430//30172 +f 31430//30172 31426//30168 31425//30167 31431//30173 +f 31430//30172 31431//30173 31432//30174 31433//30175 +f 31429//30171 31430//30172 31433//30175 31434//30176 +f 31435//30177 31436//30178 31434//30176 31433//30175 +f 31437//30179 31435//30177 31433//30175 31432//30174 +f 31438//30180 31439//30181 31440//30182 31441//30183 +f 31441//30183 31440//30182 31442//30184 31443//30185 +f 31444//30186 31442//30184 31440//30182 31445//30187 +f 31445//30187 31440//30182 31439//30181 31446//30188 +f 31441//30183 31443//30185 31447//30189 31448//30190 +f 31438//30180 31441//30183 31448//30190 31449//30191 +f 31450//30192 31451//30193 31449//30191 31448//30190 +f 31452//30194 31450//30192 31448//30190 31447//30189 +f 31452//30194 31453//30195 31454//30196 31450//30192 +f 31450//30192 31454//30196 31455//30197 31451//30193 +f 31456//30198 31455//30197 31454//30196 31457//30199 +f 31457//30199 31454//30196 31453//30195 31458//30200 +f 31459//30201 31444//30186 31445//30187 31460//30202 +f 31459//30201 31460//30202 31376//30118 31375//30117 +f 31461//30203 31364//30106 31376//30118 31460//30202 +f 31461//30203 31460//30202 31445//30187 31446//30188 +f 31462//30204 31463//30205 31464//30206 31465//30207 +f 31357//30099 31465//30207 31464//30206 31358//30100 +f 31466//30208 31346//30088 31358//30100 31464//30206 +f 31467//30209 31466//30208 31464//30206 31463//30205 +f 31365//30107 31364//30106 31461//30203 31468//30210 +f 31365//30107 31468//30210 31465//30207 31357//30099 +f 31469//30211 31462//30204 31465//30207 31468//30210 +f 31446//30188 31469//30211 31468//30210 31461//30203 +f 31469//30211 31446//30188 31439//30181 31470//30212 +f 31462//30204 31469//30211 31470//30212 31471//30213 +f 31472//30214 31424//30166 31471//30213 31470//30212 +f 31438//30180 31472//30214 31470//30212 31439//30181 +f 31472//30214 31438//30180 31449//30191 31473//30215 +f 31424//30166 31472//30214 31473//30215 31425//30167 +f 31431//30173 31425//30167 31473//30215 31474//30216 +f 31451//30193 31474//30216 31473//30215 31449//30191 +f 31474//30216 31451//30193 31455//30197 31475//30217 +f 31431//30173 31474//30216 31475//30217 31432//30174 +f 31476//30218 31437//30179 31432//30174 31475//30217 +f 31456//30198 31476//30218 31475//30217 31455//30197 +f 31346//30088 31466//30208 31477//30219 31347//30089 +f 31347//30089 31477//30219 31478//30220 31339//30081 +f 31427//30169 31478//30220 31477//30219 31479//30221 +f 31479//30221 31477//30219 31466//30208 31467//30209 +f 31421//30163 31420//30162 31480//30222 31481//30223 +f 31481//30223 31480//30222 31447//30189 31443//30185 +f 31482//30224 31452//30194 31447//30189 31480//30222 +f 31422//30164 31482//30224 31480//30222 31420//30162 +f 31422//30164 31483//30225 31484//30226 31482//30224 +f 31482//30224 31484//30226 31453//30195 31452//30194 +f 31458//30200 31453//30195 31484//30226 31485//30227 +f 31485//30227 31484//30226 31483//30225 31486//30228 +f 31423//30165 31427//30169 31479//30221 31487//30229 +f 31424//30166 31423//30165 31487//30229 31471//30213 +f 31463//30205 31462//30204 31471//30213 31487//30229 +f 31467//30209 31463//30205 31487//30229 31479//30221 +f 31488//30230 31489//30231 31490//30232 31491//30233 +f 31491//30233 31490//30232 31442//30184 31444//30186 +f 31443//30185 31442//30184 31490//30232 31481//30223 +f 31481//30223 31490//30232 31489//30231 31421//30163 +f 31383//30125 31382//30124 31492//30234 31493//30235 +f 31383//30125 31493//30235 31459//30201 31375//30117 +f 31444//30186 31459//30201 31493//30235 31491//30233 +f 31488//30230 31491//30233 31493//30235 31492//30234 +f 31478//30220 31427//30169 31428//30170 31494//30236 +f 31339//30081 31478//30220 31494//30236 31340//30082 +f 31495//30237 31325//30067 31340//30082 31494//30236 +f 31495//30237 31494//30236 31428//30170 31429//30171 +f 31495//30237 31429//30171 31434//30176 31496//30238 +f 31495//30237 31496//30238 31326//30068 31325//30067 +f 31497//30239 31332//30074 31326//30068 31496//30238 +f 31436//30178 31497//30239 31496//30238 31434//30176 +f 31486//30228 31483//30225 31498//30240 31499//30241 +f 31499//30241 31498//30240 31412//30154 31411//30153 +f 31417//30159 31400//30142 31412//30154 31498//30240 +f 31417//30159 31498//30240 31483//30225 31422//30164 +f 31421//30163 31489//30231 31500//30242 31419//30161 +f 31419//30161 31500//30242 31394//30136 31393//30135 +f 31382//30124 31394//30136 31500//30242 31492//30234 +f 31492//30234 31500//30242 31489//30231 31488//30230 +f 31501//30243 31502//30244 31503//30245 31504//30246 +f 31332//30074 31501//30243 31504//30246 31330//30072 +f 31505//30247 31331//30073 31330//30072 31504//30246 +f 31506//30248 31505//30247 31504//30246 31503//30245 +f 31503//30245 31502//30244 31507//30249 31508//30250 +f 31506//30248 31503//30245 31508//30250 31509//30251 +f 31510//30252 31511//30253 31509//30251 31508//30250 +f 31512//30254 31510//30252 31508//30250 31507//30249 +f 31513//30255 31514//30256 31515//30257 31516//30258 +f 31516//30258 31515//30257 31507//30249 31502//30244 +f 31512//30254 31507//30249 31515//30257 31517//30259 +f 31517//30259 31515//30257 31514//30256 31518//30260 +f 31519//30261 31520//30262 31521//30263 31522//30264 +f 31513//30255 31519//30261 31522//30264 31514//30256 +f 31523//30265 31518//30260 31514//30256 31522//30264 +f 31524//30266 31523//30265 31522//30264 31521//30263 +f 31521//30263 31520//30262 31525//30267 31526//30268 +f 31524//30266 31521//30263 31526//30268 31527//30269 +f 31528//30270 31529//30271 31527//30269 31526//30268 +f 31530//30272 31528//30270 31526//30268 31525//30267 +f 31531//30273 31532//30274 31533//30275 31534//30276 +f 31534//30276 31533//30275 31525//30267 31520//30262 +f 31530//30272 31525//30267 31533//30275 31535//30277 +f 31535//30277 31533//30275 31532//30274 31536//30278 +f 31537//30279 31538//30280 31539//30281 31540//30282 +f 31531//30273 31537//30279 31540//30282 31532//30274 +f 31541//30283 31536//30278 31532//30274 31540//30282 +f 31542//30284 31541//30283 31540//30282 31539//30281 +f 31539//30281 31538//30280 31543//30285 31544//30286 +f 31542//30284 31539//30281 31544//30286 31545//30287 +f 31546//30288 31547//30289 31545//30287 31544//30286 +f 31548//30290 31546//30288 31544//30286 31543//30285 +f 31549//30291 31550//30292 31551//30293 31552//30294 +f 31552//30294 31551//30293 31543//30285 31538//30280 +f 31548//30290 31543//30285 31551//30293 31553//30295 +f 31553//30295 31551//30293 31550//30292 31554//30296 +f 31555//30297 31556//30298 31557//30299 31558//30300 +f 31549//30291 31555//30297 31558//30300 31550//30292 +f 31559//30301 31554//30296 31550//30292 31558//30300 +f 31560//30302 31559//30301 31558//30300 31557//30299 +f 31557//30299 31556//30298 31561//30303 31562//30304 +f 31560//30302 31557//30299 31562//30304 31563//30305 +f 31564//30306 31565//30307 31563//30305 31562//30304 +f 31566//30308 31564//30306 31562//30304 31561//30303 +f 31567//30309 31568//30310 31569//30311 31570//30312 +f 31570//30312 31569//30311 31561//30303 31556//30298 +f 31566//30308 31561//30303 31569//30311 31571//30313 +f 31571//30313 31569//30311 31568//30310 31572//30314 +f 31573//30315 31574//30316 31575//30317 31576//30318 +f 31567//30309 31573//30315 31576//30318 31568//30310 +f 31577//30319 31572//30314 31568//30310 31576//30318 +f 31578//30320 31577//30319 31576//30318 31575//30317 +f 31575//30317 31574//30316 31579//30321 31580//30322 +f 31578//30320 31575//30317 31580//30322 31581//30323 +f 31582//30324 31583//30325 31581//30323 31580//30322 +f 31584//30326 31582//30324 31580//30322 31579//30321 +f 31411//30153 31414//30156 31585//30327 31586//30328 +f 31586//30328 31585//30327 31579//30321 31574//30316 +f 31584//30326 31579//30321 31585//30327 31587//30329 +f 31587//30329 31585//30327 31414//30156 31416//30158 +f 31588//30330 31574//30316 31573//30315 31589//30331 +f 31590//30332 31588//30330 31589//30331 31591//30333 +f 31592//30334 31593//30335 31591//30333 31589//30331 +f 31567//30309 31592//30334 31589//30331 31573//30315 +f 31594//30336 31595//30337 31596//30338 31597//30339 +f 31594//30336 31597//30339 31598//30340 31599//30341 +f 31600//30342 31598//30340 31597//30339 31601//30343 +f 31602//30344 31601//30343 31597//30339 31596//30338 +f 31603//30345 31599//30341 31598//30340 31604//30346 +f 31437//30179 31603//30345 31604//30346 31435//30177 +f 31605//30347 31436//30178 31435//30177 31604//30346 +f 31600//30342 31605//30347 31604//30346 31598//30340 +f 31606//30348 31607//30349 31608//30350 31609//30351 +f 31609//30351 31608//30350 31610//30352 31611//30353 +f 31612//30354 31610//30352 31608//30350 31613//30355 +f 31613//30355 31608//30350 31607//30349 31614//30356 +f 31615//30357 31614//30356 31607//30349 31616//30358 +f 31617//30359 31615//30357 31616//30358 31618//30360 +f 31619//30361 31618//30360 31616//30358 31620//30362 +f 31620//30362 31616//30358 31607//30349 31606//30348 +f 31617//30359 31618//30360 31621//30363 31622//30364 +f 31622//30364 31621//30363 31457//30199 31458//30200 +f 31623//30365 31456//30198 31457//30199 31621//30363 +f 31623//30365 31621//30363 31618//30360 31619//30361 +f 31610//30352 31612//30354 31624//30366 31625//30367 +f 31610//30352 31625//30367 31626//30368 31611//30353 +f 31552//30294 31538//30280 31626//30368 31625//30367 +f 31552//30294 31625//30367 31624//30366 31549//30291 +f 31627//30369 31628//30370 31629//30371 31630//30372 +f 31631//30373 31630//30372 31629//30371 31632//30374 +f 31534//30276 31520//30262 31632//30374 31629//30371 +f 31531//30273 31534//30276 31629//30371 31628//30370 +f 31626//30368 31538//30280 31537//30279 31633//30375 +f 31611//30353 31626//30368 31633//30375 31634//30376 +f 31628//30370 31627//30369 31634//30376 31633//30375 +f 31628//30370 31633//30375 31537//30279 31531//30273 +f 31609//30351 31611//30353 31634//30376 31635//30377 +f 31606//30348 31609//30351 31635//30377 31636//30378 +f 31637//30379 31595//30337 31636//30378 31635//30377 +f 31627//30369 31637//30379 31635//30377 31634//30376 +f 31620//30362 31606//30348 31636//30378 31638//30380 +f 31619//30361 31620//30362 31638//30380 31639//30381 +f 31594//30336 31599//30341 31639//30381 31638//30380 +f 31595//30337 31594//30336 31638//30380 31636//30378 +f 31623//30365 31619//30361 31639//30381 31640//30382 +f 31456//30198 31623//30365 31640//30382 31476//30218 +f 31603//30345 31437//30179 31476//30218 31640//30382 +f 31599//30341 31603//30345 31640//30382 31639//30381 +f 31520//30262 31519//30261 31641//30383 31632//30374 +f 31632//30374 31641//30383 31642//30384 31631//30373 +f 31602//30344 31642//30384 31641//30383 31643//30385 +f 31643//30385 31641//30383 31519//30261 31513//30255 +f 31593//30335 31644//30386 31645//30387 31591//30333 +f 31590//30332 31591//30333 31645//30387 31646//30388 +f 31615//30357 31617//30359 31646//30388 31645//30387 +f 31615//30357 31645//30387 31644//30386 31614//30356 +f 31590//30332 31646//30388 31647//30389 31648//30390 +f 31648//30390 31647//30389 31485//30227 31486//30228 +f 31458//30200 31485//30227 31647//30389 31622//30364 +f 31622//30364 31647//30389 31646//30388 31617//30359 +f 31642//30384 31602//30344 31596//30338 31649//30391 +f 31631//30373 31642//30384 31649//30391 31630//30372 +f 31637//30379 31627//30369 31630//30372 31649//30391 +f 31595//30337 31637//30379 31649//30391 31596//30338 +f 31650//30392 31651//30393 31652//30394 31653//30395 +f 31653//30395 31652//30394 31644//30386 31593//30335 +f 31614//30356 31644//30386 31652//30394 31613//30355 +f 31613//30355 31652//30394 31651//30393 31612//30354 +f 31654//30396 31556//30298 31555//30297 31655//30397 +f 31650//30392 31654//30396 31655//30397 31651//30393 +f 31612//30354 31651//30393 31655//30397 31624//30366 +f 31624//30366 31655//30397 31555//30297 31549//30291 +f 31601//30343 31602//30344 31643//30385 31656//30398 +f 31601//30343 31656//30398 31657//30399 31600//30342 +f 31516//30258 31502//30244 31657//30399 31656//30398 +f 31513//30255 31516//30258 31656//30398 31643//30385 +f 31605//30347 31600//30342 31657//30399 31658//30400 +f 31436//30178 31605//30347 31658//30400 31497//30239 +f 31501//30243 31332//30074 31497//30239 31658//30400 +f 31501//30243 31658//30400 31657//30399 31502//30244 +f 31486//30228 31499//30241 31659//30401 31648//30390 +f 31648//30390 31659//30401 31588//30330 31590//30332 +f 31586//30328 31574//30316 31588//30330 31659//30401 +f 31586//30328 31659//30401 31499//30241 31411//30153 +f 31593//30335 31592//30334 31660//30402 31653//30395 +f 31653//30395 31660//30402 31654//30396 31650//30392 +f 31556//30298 31654//30396 31660//30402 31570//30312 +f 31570//30312 31660//30402 31592//30334 31567//30309 +f 29623//28365 29622//28364 31661//30403 31662//30404 +f 31511//30253 31662//30404 31661//30403 31509//30251 +f 31506//30248 31509//30251 31661//30403 31663//30405 +f 31663//30405 31661//30403 29622//28364 29624//28366 +f 29630//28372 29629//28371 31664//30406 31665//30407 +f 31665//30407 31664//30406 31510//30252 31512//30254 +f 31511//30253 31510//30252 31664//30406 31662//30404 +f 31662//30404 31664//30406 29629//28371 29623//28365 +f 29636//28378 29635//28377 31666//30408 31667//30409 +f 31518//30260 31667//30409 31666//30408 31517//30259 +f 31665//30407 31512//30254 31517//30259 31666//30408 +f 31665//30407 31666//30408 29635//28377 29630//28372 +f 29642//28384 29641//28383 31668//30410 31669//30411 +f 31669//30411 31668//30410 31523//30265 31524//30266 +f 31518//30260 31523//30265 31668//30410 31667//30409 +f 31667//30409 31668//30410 29641//28383 29636//28378 +f 31670//30412 29647//28389 29648//28390 31671//30413 +f 31529//30271 31670//30412 31671//30413 31527//30269 +f 31524//30266 31527//30269 31671//30413 31669//30411 +f 29642//28384 31669//30411 31671//30413 29648//28390 +f 29654//28396 29653//28395 31672//30414 31673//30415 +f 31673//30415 31672//30414 31528//30270 31530//30272 +f 31529//30271 31528//30270 31672//30414 31670//30412 +f 31670//30412 31672//30414 29653//28395 29647//28389 +f 29660//28402 29659//28401 31674//30416 31675//30417 +f 31536//30278 31675//30417 31674//30416 31535//30277 +f 31673//30415 31530//30272 31535//30277 31674//30416 +f 31673//30415 31674//30416 29659//28401 29654//28396 +f 29666//28408 29665//28407 31676//30418 31677//30419 +f 31677//30419 31676//30418 31541//30283 31542//30284 +f 31536//30278 31541//30283 31676//30418 31675//30417 +f 31675//30417 31676//30418 29665//28407 29660//28402 +f 31678//30420 29671//28413 29672//28414 31679//30421 +f 31547//30289 31678//30420 31679//30421 31545//30287 +f 31542//30284 31545//30287 31679//30421 31677//30419 +f 29666//28408 31677//30419 31679//30421 29672//28414 +f 29678//28420 29677//28419 31680//30422 31681//30423 +f 31681//30423 31680//30422 31546//30288 31548//30290 +f 31547//30289 31546//30288 31680//30422 31678//30420 +f 31678//30420 31680//30422 29677//28419 29671//28413 +f 31682//30424 29684//28426 29683//28425 31683//30425 +f 31554//30296 31682//30424 31683//30425 31553//30295 +f 31681//30423 31548//30290 31553//30295 31683//30425 +f 29678//28420 31681//30423 31683//30425 29683//28425 +f 29689//28431 29690//28432 31684//30426 31685//30427 +f 31685//30427 31684//30426 31559//30301 31560//30302 +f 31554//30296 31559//30301 31684//30426 31682//30424 +f 31682//30424 31684//30426 29690//28432 29684//28426 +f 31686//30428 29695//28437 29696//28438 31687//30429 +f 31565//30307 31686//30428 31687//30429 31563//30305 +f 31560//30302 31563//30305 31687//30429 31685//30427 +f 29689//28431 31685//30427 31687//30429 29696//28438 +f 29702//28444 29701//28443 31688//30430 31689//30431 +f 31566//30308 31689//30431 31688//30430 31564//30306 +f 31565//30307 31564//30306 31688//30430 31686//30428 +f 31686//30428 31688//30430 29701//28443 29695//28437 +f 31690//30432 29708//28450 29707//28449 31691//30433 +f 31572//30314 31690//30432 31691//30433 31571//30313 +f 31689//30431 31566//30308 31571//30313 31691//30433 +f 29702//28444 31689//30431 31691//30433 29707//28449 +f 29713//28455 29714//28456 31692//30434 31693//30435 +f 31693//30435 31692//30434 31577//30319 31578//30320 +f 31572//30314 31577//30319 31692//30434 31690//30432 +f 31690//30432 31692//30434 29714//28456 29708//28450 +f 31694//30436 29719//28461 29720//28462 31695//30437 +f 31583//30325 31694//30436 31695//30437 31581//30323 +f 31578//30320 31581//30323 31695//30437 31693//30435 +f 29713//28455 31693//30435 31695//30437 29720//28462 +f 29726//28468 29725//28467 31696//30438 31697//30439 +f 31584//30326 31697//30439 31696//30438 31582//30324 +f 31583//30325 31582//30324 31696//30438 31694//30436 +f 31694//30436 31696//30438 29725//28467 29719//28461 +f 31698//30440 29732//28474 29731//28473 31699//30441 +f 31416//30158 31698//30440 31699//30441 31587//30329 +f 31697//30439 31584//30326 31587//30329 31699//30441 +f 29726//28468 31697//30439 31699//30441 29731//28473 +f 29737//28479 29738//28480 31700//30442 31701//30443 +f 31701//30443 31700//30442 31415//30157 31407//30149 +f 31416//30158 31415//30157 31700//30442 31698//30440 +f 31698//30440 31700//30442 29738//28480 29732//28474 +f 31702//30444 29743//28485 29744//28486 31703//30445 +f 31410//30152 31702//30444 31703//30445 31408//30150 +f 31407//30149 31408//30150 31703//30445 31701//30443 +f 29737//28479 31701//30443 31703//30445 29744//28486 +f 29750//28492 29749//28491 31704//30446 31705//30447 +f 31705//30447 31704//30446 31409//30151 31403//30145 +f 31410//30152 31409//30151 31704//30446 31702//30444 +f 31702//30444 31704//30446 29749//28491 29743//28485 +f 31706//30448 29756//28498 29755//28497 31707//30449 +f 31398//30140 31706//30448 31707//30449 31404//30146 +f 31705//30447 31403//30145 31404//30146 31707//30449 +f 29750//28492 31705//30447 31707//30449 29755//28497 +f 29761//28503 29762//28504 31708//30450 31709//30451 +f 31709//30451 31708//30450 31397//30139 31389//30131 +f 31398//30140 31397//30139 31708//30450 31706//30448 +f 31706//30448 31708//30450 29762//28504 29756//28498 +f 31710//30452 29767//28509 29768//28510 31711//30453 +f 31392//30134 31710//30452 31711//30453 31390//30132 +f 31389//30131 31390//30132 31711//30453 31709//30451 +f 29761//28503 31709//30451 31711//30453 29768//28510 +f 29774//28516 29773//28515 31712//30454 31713//30455 +f 31713//30455 31712//30454 31391//30133 31385//30127 +f 31392//30134 31391//30133 31712//30454 31710//30452 +f 31710//30452 31712//30454 29773//28515 29767//28509 +f 29780//28522 29779//28521 31714//30456 31715//30457 +f 31380//30122 31715//30457 31714//30456 31386//30128 +f 31713//30455 31385//30127 31386//30128 31714//30456 +f 31713//30455 31714//30456 29779//28521 29774//28516 +f 29786//28528 29785//28527 31716//30458 31717//30459 +f 31717//30459 31716//30458 31379//30121 31371//30113 +f 31380//30122 31379//30121 31716//30458 31715//30457 +f 31715//30457 31716//30458 29785//28527 29780//28522 +f 31718//30460 29791//28533 29792//28534 31719//30461 +f 31374//30116 31718//30460 31719//30461 31372//30114 +f 31371//30113 31372//30114 31719//30461 31717//30459 +f 29786//28528 31717//30459 31719//30461 29792//28534 +f 29798//28540 29797//28539 31720//30462 31721//30463 +f 31721//30463 31720//30462 31373//30115 31367//30109 +f 31374//30116 31373//30115 31720//30462 31718//30460 +f 31718//30460 31720//30462 29797//28539 29791//28533 +f 29804//28546 29803//28545 31722//30464 31723//30465 +f 31362//30104 31723//30465 31722//30464 31368//30110 +f 31721//30463 31367//30109 31368//30110 31722//30464 +f 31721//30463 31722//30464 29803//28545 29798//28540 +f 29810//28552 29809//28551 31724//30466 31725//30467 +f 31725//30467 31724//30466 31361//30103 31353//30095 +f 31362//30104 31361//30103 31724//30466 31723//30465 +f 31723//30465 31724//30466 29809//28551 29804//28546 +f 29816//28558 29815//28557 31726//30468 31727//30469 +f 31356//30098 31727//30469 31726//30468 31354//30096 +f 31353//30095 31354//30096 31726//30468 31725//30467 +f 31725//30467 31726//30468 29815//28557 29810//28552 +f 29822//28564 29821//28563 31728//30470 31729//30471 +f 31729//30471 31728//30470 31355//30097 31349//30091 +f 31356//30098 31355//30097 31728//30470 31727//30469 +f 31727//30469 31728//30470 29821//28563 29816//28558 +f 29828//28570 29827//28569 31730//30472 31731//30473 +f 31344//30086 31731//30473 31730//30472 31350//30092 +f 31729//30471 31349//30091 31350//30092 31730//30472 +f 31729//30471 31730//30472 29827//28569 29822//28564 +f 29834//28576 29833//28575 31732//30474 31733//30475 +f 31733//30475 31732//30474 31343//30085 31335//30077 +f 31344//30086 31343//30085 31732//30474 31731//30473 +f 31731//30473 31732//30474 29833//28575 29828//28570 +f 29840//28582 29839//28581 31734//30476 31735//30477 +f 31338//30080 31735//30477 31734//30476 31336//30078 +f 31335//30077 31336//30078 31734//30476 31733//30475 +f 31733//30475 31734//30476 29839//28581 29834//28576 +f 29846//28588 29845//28587 31736//30478 31737//30479 +f 31737//30479 31736//30478 31337//30079 31328//30070 +f 31338//30080 31337//30079 31736//30478 31735//30477 +f 31735//30477 31736//30478 29845//28587 29840//28582 +f 29852//28594 29851//28593 31738//30480 31739//30481 +f 31331//30073 31739//30481 31738//30480 31329//30071 +f 31737//30479 31328//30070 31329//30071 31738//30480 +f 31737//30479 31738//30480 29851//28593 29846//28588 +f 29624//28366 29855//28597 31740//30482 31663//30405 +f 31663//30405 31740//30482 31505//30247 31506//30248 +f 31331//30073 31505//30247 31740//30482 31739//30481 +f 31739//30481 31740//30482 29855//28597 29852//28594 +f 31741//30483 31742//30483 31743//30483 31744//30483 +f 31745//30484 31741//30485 31744//30486 31746//30487 +f 31741//30485 31745//30484 31747//30488 31748//30489 +f 31742//30490 31741//30485 31748//30489 31749//30491 +f 31750//30492 31745//30484 31746//30487 31751//30493 +f 31752//30494 31750//30492 31751//30493 31753//30495 +f 31750//30492 31752//30494 31754//30496 31755//30497 +f 31745//30484 31750//30492 31755//30497 31747//30488 +f 31756//30498 31752//30494 31753//30495 31757//30499 +f 31758//30500 31756//30498 31757//30499 31759//30501 +f 31756//30498 31758//30500 31760//30502 31761//30503 +f 31752//30494 31756//30498 31761//30503 31754//30496 +f 31762//30504 31758//30500 31759//30501 31763//30505 +f 31764//30506 31762//30504 31763//30505 31765//30507 +f 31762//30504 31764//30506 31766//30508 31767//30509 +f 31758//30500 31762//30504 31767//30509 31760//30502 +f 31768//30510 31764//30506 31765//30507 31769//30511 +f 31770//30512 31768//30510 31769//30511 31771//30513 +f 31768//30510 31770//30512 31772//30514 31773//30515 +f 31764//30506 31768//30510 31773//30515 31766//30508 +f 31774//30516 31770//30512 31771//30513 31775//30517 +f 31776//30518 31774//30516 31775//30517 31777//30519 +f 31774//30516 31776//30518 31778//30520 31779//30521 +f 31770//30512 31774//30516 31779//30521 31772//30514 +f 31780//30522 31776//30518 31777//30519 31781//30523 +f 31782//30524 31780//30522 31781//30523 31783//30525 +f 31780//30522 31782//30524 31784//30526 31785//30527 +f 31776//30518 31780//30522 31785//30527 31778//30520 +f 31786//30528 31782//30524 31783//30525 31787//30529 +f 31788//30530 31786//30528 31787//30529 31789//30531 +f 31786//30528 31788//30530 31790//30532 31791//30533 +f 31782//30524 31786//30528 31791//30533 31784//30526 +f 31792//30534 31788//30530 31789//30531 31793//30535 +f 31794//30536 31792//30534 31793//30535 31795//30537 +f 31792//30534 31794//30536 31796//30538 31797//30539 +f 31788//30530 31792//30534 31797//30539 31790//30532 +f 31798//30540 31794//30536 31795//30537 31799//30541 +f 31800//30542 31798//30540 31799//30541 31801//30543 +f 31798//30540 31800//30542 31802//30544 31803//30545 +f 31794//30536 31798//30540 31803//30545 31796//30538 +f 31804//30546 31800//30542 31801//30543 31805//30547 +f 31806//30548 31804//30546 31805//30547 31807//30549 +f 31804//30546 31806//30548 31808//30550 31809//30551 +f 31800//30542 31804//30546 31809//30551 31802//30544 +f 31810//30552 31806//30548 31807//30549 31811//30553 +f 31812//30554 31810//30552 31811//30553 31813//30555 +f 31810//30552 31812//30554 31814//30556 31815//30557 +f 31806//30548 31810//30552 31815//30557 31808//30550 +f 31816//30558 31812//30554 31813//30555 31817//30559 +f 31818//30560 31816//30558 31817//30559 31819//30561 +f 31816//30558 31818//30560 31820//30562 31821//30563 +f 31812//30554 31816//30558 31821//30563 31814//30556 +f 31822//30564 31818//30560 31819//30561 31823//30565 +f 31824//30566 31822//30564 31823//30565 31825//30567 +f 31822//30564 31824//30566 31826//30568 31827//30569 +f 31818//30560 31822//30564 31827//30569 31820//30562 +f 31828//30570 31824//30566 31825//30567 31829//30571 +f 31830//30572 31828//30570 31829//30571 31831//30573 +f 31828//30570 31830//30572 31832//30574 31833//30575 +f 31824//30566 31828//30570 31833//30575 31826//30568 +f 31834//30576 31830//30572 31831//30573 31835//30577 +f 31836//30578 31834//30576 31835//30577 31837//30579 +f 31834//30576 31836//30578 31838//30580 31839//30581 +f 31830//30572 31834//30576 31839//30581 31832//30574 +f 31840//30582 31836//30578 31837//30579 31841//30583 +f 31842//30584 31840//30582 31841//30583 31843//30585 +f 31840//30582 31842//30584 31844//30586 31845//30587 +f 31836//30578 31840//30582 31845//30587 31838//30580 +f 31846//30588 31842//30584 31843//30585 31847//30589 +f 31848//30590 31846//30588 31847//30589 31849//30591 +f 31846//30588 31848//30590 31850//30592 31851//30593 +f 31842//30584 31846//30588 31851//30593 31844//30586 +f 31852//30594 31848//30590 31849//30591 31853//30595 +f 31854//30596 31852//30594 31853//30595 31855//30597 +f 31852//30594 31854//30596 31856//30598 31857//30599 +f 31848//30590 31852//30594 31857//30599 31850//30592 +f 31858//30600 31854//30596 31855//30597 31859//30601 +f 31860//30602 31858//30600 31859//30601 31861//30603 +f 31858//30600 31860//30602 31862//30604 31863//30605 +f 31854//30596 31858//30600 31863//30605 31856//30598 +f 31864//30606 31860//30602 31861//30603 31865//30607 +f 31866//30608 31864//30606 31865//30607 31867//30609 +f 31864//30606 31866//30608 31868//30610 31869//30611 +f 31860//30602 31864//30606 31869//30611 31862//30604 +f 31870//30612 31866//30608 31867//30609 31871//30613 +f 31872//30614 31870//30612 31871//30613 31873//30615 +f 31870//30612 31872//30614 31874//30616 31875//30617 +f 31866//30608 31870//30612 31875//30617 31868//30610 +f 31876//30618 31872//30614 31873//30615 31877//30619 +f 31878//30620 31876//30618 31877//30619 31879//30621 +f 31876//30618 31878//30620 31880//30622 31881//30623 +f 31872//30614 31876//30618 31881//30623 31874//30616 +f 31882//30624 31878//30620 31879//30621 31883//30625 +f 31884//30626 31882//30624 31883//30625 31885//30627 +f 31882//30624 31884//30626 31886//30628 31887//30629 +f 31878//30620 31882//30624 31887//30629 31880//30622 +f 31888//30630 31884//30626 31885//30627 31889//30631 +f 31890//30632 31888//30630 31889//30631 31891//30633 +f 31888//30630 31890//30632 31892//8129 31893//30634 +f 31884//30626 31888//30630 31893//30634 31886//30628 +f 31894//30635 31890//30632 31891//30633 31895//30636 +f 31896//30637 31894//30635 31895//30636 31897//30638 +f 31894//30635 31896//30637 31898//8121 31899//8125 +f 31890//30632 31894//30635 31899//8125 31892//8129 +f 31900//30639 31896//30637 31897//30638 31901//30640 +f 31902//30641 31900//30639 31901//30640 31903//30642 +f 31900//30639 31902//30641 31904//8113 31905//8117 +f 31896//30637 31900//30639 31905//8117 31898//8121 +f 31906//30643 31902//30641 31903//30642 31907//30644 +f 31908//30645 31906//30643 31907//30644 31909//30646 +f 31906//30643 31908//30645 31910//30647 31911//8109 +f 31902//30641 31906//30643 31911//8109 31904//8113 +f 31912//30648 31908//30645 31909//30646 31913//30649 +f 31914//30650 31912//30648 31913//30649 31915//30651 +f 31912//30648 31914//30650 31916//30652 31917//30653 +f 31908//30645 31912//30648 31917//30653 31910//30647 +f 31918//30654 31914//30650 31915//30651 31919//30655 +f 31920//30656 31918//30654 31919//30655 31921//30657 +f 31918//30654 31920//30656 31922//30658 31923//30659 +f 31914//30650 31918//30654 31923//30659 31916//30652 +f 31924//30660 31920//30656 31921//30657 31925//30661 +f 31926//30662 31924//30660 31925//30661 31927//30663 +f 31924//30660 31926//30662 31928//30664 31929//30665 +f 31920//30656 31924//30660 31929//30665 31922//30658 +f 31930//30666 31926//30662 31927//30663 31931//30667 +f 31742//30490 31930//30666 31931//30667 31743//30668 +f 31930//30666 31742//30490 31749//30491 31932//30669 +f 31926//30662 31930//30666 31932//30669 31928//30664 +f 31933//30670 31934//30671 31935//30672 31936//30673 +f 31937//30674 31933//30670 31936//30673 31938//30675 +f 31933//30670 31937//30674 31939//30676 31940//30677 +f 31934//30671 31933//30670 31940//30677 31941//30678 +f 31942//30679 31943//30680 31944//30681 31945//30682 +f 31934//30671 31942//30679 31945//30682 31935//30672 +f 31942//30679 31934//30671 31941//30678 31946//30683 +f 31943//30680 31942//30679 31946//30683 31947//30684 +f 31948//30685 31949//30686 31950//30687 31951//30688 +f 31943//30680 31948//30685 31951//30688 31944//30681 +f 31948//30685 31943//30680 31947//30684 31952//30689 +f 31949//30686 31948//30685 31952//30689 31953//30690 +f 31954//30691 31955//30692 31956//30693 31957//30694 +f 31949//30686 31954//30691 31957//30694 31950//30687 +f 31954//30691 31949//30686 31953//30690 31958//30695 +f 31955//30692 31954//30691 31958//30695 31959//30696 +f 31960//30697 31961//30698 31962//30699 31963//30700 +f 31955//30692 31960//30697 31963//30700 31956//30693 +f 31960//30697 31955//30692 31959//30696 31964//30701 +f 31961//30698 31960//30697 31964//30701 31965//30702 +f 31966//30703 31967//30704 31968//30705 31969//30706 +f 31961//30698 31966//30703 31969//30706 31962//30699 +f 31966//30703 31961//30698 31965//30702 31970//30707 +f 31967//30704 31966//30703 31970//30707 31971//30708 +f 31972//30709 31973//30710 31974//30711 31975//30712 +f 31967//30704 31972//30709 31975//30712 31968//30705 +f 31972//30709 31967//30704 31971//30708 31976//30713 +f 31973//30710 31972//30709 31976//30713 31977//30714 +f 31978//30715 31979//30716 31980//30717 31981//30718 +f 31973//30710 31978//30715 31981//30718 31974//30711 +f 31978//30715 31973//30710 31977//30714 31982//30719 +f 31979//30716 31978//30715 31982//30719 31983//30720 +f 31984//30721 31985//30722 31986//30723 31987//30724 +f 31979//30716 31984//30721 31987//30724 31980//30717 +f 31984//30721 31979//30716 31983//30720 31988//30725 +f 31985//30722 31984//30721 31988//30725 31989//30726 +f 31990//30727 31991//30728 31992//30729 31993//30730 +f 31985//30722 31990//30727 31993//30730 31986//30723 +f 31990//30727 31985//30722 31989//30726 31994//30731 +f 31991//30728 31990//30727 31994//30731 31995//30732 +f 31996//30733 31997//30734 31998//30735 31999//30736 +f 31991//30728 31996//30733 31999//30736 31992//30729 +f 31996//30733 31991//30728 31995//30732 32000//30737 +f 31997//30734 31996//30733 32000//30737 32001//30738 +f 32002//30739 32003//30740 32004//30741 32005//30742 +f 31997//30734 32002//30739 32005//30742 31998//30735 +f 32002//30739 31997//30734 32001//30738 32006//30743 +f 32003//30740 32002//30739 32006//30743 32007//30744 +f 32008//30745 32009//30746 32010//30747 32011//30748 +f 32003//30740 32008//30745 32011//30748 32004//30741 +f 32008//30745 32003//30740 32007//30744 32012//30749 +f 32009//30746 32008//30745 32012//30749 32013//30750 +f 32014//30751 32015//30752 32016//30753 32017//30754 +f 32009//30746 32014//30751 32017//30754 32010//30747 +f 32014//30751 32009//30746 32013//30750 32018//30755 +f 32015//30752 32014//30751 32018//30755 32019//30756 +f 32020//30757 32021//30758 32022//30759 32023//30760 +f 32015//30752 32020//30757 32023//30760 32016//30753 +f 32020//30757 32015//30752 32019//30756 32024//30761 +f 32021//30758 32020//30757 32024//30761 32025//30762 +f 32026//30763 32027//30764 32028//30765 32029//30766 +f 32021//30758 32026//30763 32029//30766 32022//30759 +f 32026//30763 32021//30758 32025//30762 32030//30767 +f 32027//30764 32026//30763 32030//30767 32031//30768 +f 32032//30769 32033//30770 32034//30771 32035//30772 +f 32027//30764 32032//30769 32035//30772 32028//30765 +f 32032//30769 32027//30764 32031//30768 32036//30773 +f 32033//30770 32032//30769 32036//30773 32037//30774 +f 32038//30775 32039//30776 32040//30777 32041//30778 +f 32033//30770 32038//30775 32041//30778 32034//30771 +f 32038//30775 32033//30770 32037//30774 32042//30779 +f 32039//30776 32038//30775 32042//30779 32043//30780 +f 32044//30781 32045//30782 32046//30783 32047//30784 +f 32039//30776 32044//30781 32047//30784 32040//30777 +f 32044//30781 32039//30776 32043//30780 32048//30785 +f 32045//30782 32044//30781 32048//30785 32049//30786 +f 32050//30787 32051//30788 32052//30789 32053//30790 +f 32045//30782 32050//30787 32053//30790 32046//30783 +f 32050//30787 32045//30782 32049//30786 32054//30791 +f 32051//30788 32050//30787 32054//30791 32055//30792 +f 32056//30793 32057//30794 32058//30795 32059//30796 +f 32051//30788 32056//30793 32059//30796 32052//30789 +f 32056//30793 32051//30788 32055//30792 32060//30797 +f 32057//30794 32056//30793 32060//30797 32061//30798 +f 32062//30799 32063//30800 32064//30801 32065//30802 +f 32057//30794 32062//30799 32065//30802 32058//30795 +f 32062//30799 32057//30794 32061//30798 32066//30803 +f 32063//30800 32062//30799 32066//30803 32067//30804 +f 32068//30805 32069//30806 32070//30807 32071//30808 +f 32063//30800 32068//30805 32071//30808 32064//30801 +f 32068//30805 32063//30800 32067//30804 32072//30809 +f 32069//30806 32068//30805 32072//30809 32073//30810 +f 32074//30811 32075//30812 32076//30813 32077//30814 +f 32069//30806 32074//30811 32077//30814 32070//30807 +f 32074//30811 32069//30806 32073//30810 32078//30815 +f 32075//30812 32074//30811 32078//30815 32079//30816 +f 32080//30817 32081//30818 32082//30819 32083//30820 +f 32075//30812 32080//30817 32083//30820 32076//30813 +f 32080//30817 32075//30812 32079//30816 32084//30821 +f 32081//30818 32080//30817 32084//30821 32085//30822 +f 32086//30823 32087//30824 32088//30825 32089//30826 +f 32081//30818 32086//30823 32089//30826 32082//30819 +f 32086//30823 32081//30818 32085//30822 32090//30827 +f 32087//30824 32086//30823 32090//30827 32091//30828 +f 32092//30829 32093//30830 32094//30831 32095//30832 +f 32087//30824 32092//30829 32095//30832 32088//30825 +f 32092//30829 32087//30824 32091//30828 32096//30833 +f 32093//30830 32092//30829 32096//30833 32097//30834 +f 32098//30835 32099//30836 32100//30837 32101//30838 +f 32093//30830 32098//30835 32101//30838 32094//30831 +f 32098//30835 32093//30830 32097//30834 32102//30839 +f 32099//30836 32098//30835 32102//30839 32103//30840 +f 32104//30841 32105//30842 32106//30843 32107//30844 +f 32099//30836 32104//30841 32107//30844 32100//30837 +f 32104//30841 32099//30836 32103//30840 32108//30845 +f 32105//30842 32104//30841 32108//30845 32109//30846 +f 32110//30847 32111//30848 32112//30849 32113//30850 +f 32105//30842 32110//30847 32113//30850 32106//30843 +f 32110//30847 32105//30842 32109//30846 32114//30851 +f 32111//30848 32110//30847 32114//30851 32115//30852 +f 32116//30853 32117//30854 32118//30855 32119//30856 +f 32111//30848 32116//30853 32119//30856 32112//30849 +f 32116//30853 32111//30848 32115//30852 32120//30857 +f 32117//30854 32116//30853 32120//30857 32121//30858 +f 32122//30859 31937//30674 31938//30675 32123//30860 +f 32117//30854 32122//30859 32123//30860 32118//30855 +f 32122//30859 32117//30854 32121//30858 32124//30861 +f 31937//30674 32122//30859 32124//30861 31939//30676 +f 32125//30862 31936//30673 31935//30672 32126//30863 +f 32127//30864 32125//30862 32126//30863 32128//30865 +f 32125//30862 32127//30864 32129//30866 32130//30867 +f 31936//30673 32125//30862 32130//30867 31938//30675 +f 32131//30868 31940//30677 31939//30676 32132//30869 +f 32133//30870 32131//30868 32132//30869 32134//30871 +f 32131//30868 32133//30870 32135//30872 32136//30873 +f 31940//30677 32131//30868 32136//30873 31941//30678 +f 32137//30874 31945//30682 31944//30681 32138//30875 +f 32139//30876 32137//30874 32138//30875 32140//30877 +f 32137//30874 32139//30876 32128//30865 32126//30863 +f 31945//30682 32137//30874 32126//30863 31935//30672 +f 32141//30878 31946//30683 31941//30678 32136//30873 +f 32142//30879 32141//30878 32136//30873 32135//30872 +f 32141//30878 32142//30879 32143//30880 32144//30881 +f 31946//30683 32141//30878 32144//30881 31947//30684 +f 32145//30882 31951//30688 31950//30687 32146//30883 +f 32147//30884 32145//30882 32146//30883 32148//30885 +f 32145//30882 32147//30884 32140//30877 32138//30875 +f 31951//30688 32145//30882 32138//30875 31944//30681 +f 32149//30886 31952//30689 31947//30684 32144//30881 +f 32150//30887 32149//30886 32144//30881 32143//30880 +f 32149//30886 32150//30887 32151//30888 32152//30889 +f 31952//30689 32149//30886 32152//30889 31953//30690 +f 32153//30890 31957//30694 31956//30693 32154//30891 +f 32155//30892 32153//30890 32154//30891 32156//30893 +f 32153//30890 32155//30892 32148//30885 32146//30883 +f 31957//30694 32153//30890 32146//30883 31950//30687 +f 32157//30894 31958//30695 31953//30690 32152//30889 +f 32158//30895 32157//30894 32152//30889 32151//30888 +f 32157//30894 32158//30895 32159//30896 32160//30897 +f 31958//30695 32157//30894 32160//30897 31959//30696 +f 32161//30898 31963//30700 31962//30699 32162//30899 +f 32163//30900 32161//30898 32162//30899 32164//30901 +f 32161//30898 32163//30900 32156//30893 32154//30891 +f 31963//30700 32161//30898 32154//30891 31956//30693 +f 32165//30902 31964//30701 31959//30696 32160//30897 +f 32166//30903 32165//30902 32160//30897 32159//30896 +f 32165//30902 32166//30903 32167//30904 32168//30905 +f 31964//30701 32165//30902 32168//30905 31965//30702 +f 32169//30906 31969//30706 31968//30705 32170//30907 +f 32171//30908 32169//30906 32170//30907 32172//30909 +f 32169//30906 32171//30908 32164//30901 32162//30899 +f 31969//30706 32169//30906 32162//30899 31962//30699 +f 32173//30910 31970//30707 31965//30702 32168//30905 +f 32174//30911 32173//30910 32168//30905 32167//30904 +f 32173//30910 32174//30911 32175//30912 32176//30913 +f 31970//30707 32173//30910 32176//30913 31971//30708 +f 32177//30914 31975//30712 31974//30711 32178//30915 +f 32179//30916 32177//30914 32178//30915 32180//30917 +f 32177//30914 32179//30916 32172//30909 32170//30907 +f 31975//30712 32177//30914 32170//30907 31968//30705 +f 32181//30918 31976//30713 31971//30708 32176//30913 +f 32182//30919 32181//30918 32176//30913 32175//30912 +f 32181//30918 32182//30919 32183//30920 32184//30921 +f 31976//30713 32181//30918 32184//30921 31977//30714 +f 32185//30922 31981//30718 31980//30717 32186//30923 +f 32187//30924 32185//30922 32186//30923 32188//30925 +f 32185//30922 32187//30924 32180//30917 32178//30915 +f 31981//30718 32185//30922 32178//30915 31974//30711 +f 32189//30926 31982//30719 31977//30714 32184//30921 +f 32190//30927 32189//30926 32184//30921 32183//30920 +f 32189//30926 32190//30927 32191//30928 32192//30929 +f 31982//30719 32189//30926 32192//30929 31983//30720 +f 32193//30930 31987//30724 31986//30723 32194//30931 +f 32195//30932 32193//30930 32194//30931 32196//30933 +f 32193//30930 32195//30932 32188//30925 32186//30923 +f 31987//30724 32193//30930 32186//30923 31980//30717 +f 32197//30934 31988//30725 31983//30720 32192//30929 +f 32198//30935 32197//30934 32192//30929 32191//30928 +f 32197//30934 32198//30935 32199//30936 32200//30937 +f 31988//30725 32197//30934 32200//30937 31989//30726 +f 32201//30938 31993//30730 31992//30729 32202//30939 +f 32203//30940 32201//30938 32202//30939 32204//30941 +f 32201//30938 32203//30940 32196//30933 32194//30931 +f 31993//30730 32201//30938 32194//30931 31986//30723 +f 32205//30942 31994//30731 31989//30726 32200//30937 +f 32206//30943 32205//30942 32200//30937 32199//30936 +f 32205//30942 32206//30943 32207//30944 32208//30945 +f 31994//30731 32205//30942 32208//30945 31995//30732 +f 32209//30946 31999//30736 31998//30735 32210//30947 +f 32211//30948 32209//30946 32210//30947 32212//30949 +f 32209//30946 32211//30948 32204//30941 32202//30939 +f 31999//30736 32209//30946 32202//30939 31992//30729 +f 32213//30950 32000//30737 31995//30732 32208//30945 +f 32214//30951 32213//30950 32208//30945 32207//30944 +f 32213//30950 32214//30951 32215//30952 32216//30953 +f 32000//30737 32213//30950 32216//30953 32001//30738 +f 32217//30954 32005//30742 32004//30741 32218//30955 +f 32219//30956 32217//30954 32218//30955 32220//30957 +f 32217//30954 32219//30956 32212//30949 32210//30947 +f 32005//30742 32217//30954 32210//30947 31998//30735 +f 32221//30958 32006//30743 32001//30738 32216//30953 +f 32222//30959 32221//30958 32216//30953 32215//30952 +f 32221//30958 32222//30959 32223//30960 32224//30961 +f 32006//30743 32221//30958 32224//30961 32007//30744 +f 32225//30962 32011//30748 32010//30747 32226//30963 +f 32227//30964 32225//30962 32226//30963 32228//30965 +f 32225//30962 32227//30964 32220//30957 32218//30955 +f 32011//30748 32225//30962 32218//30955 32004//30741 +f 32229//30966 32012//30749 32007//30744 32224//30961 +f 32230//30967 32229//30966 32224//30961 32223//30960 +f 32229//30966 32230//30967 32231//30968 32232//30969 +f 32012//30749 32229//30966 32232//30969 32013//30750 +f 32233//30970 32017//30754 32016//30753 32234//30971 +f 32235//30972 32233//30970 32234//30971 32236//30973 +f 32233//30970 32235//30972 32228//30965 32226//30963 +f 32017//30754 32233//30970 32226//30963 32010//30747 +f 32237//30974 32018//30755 32013//30750 32232//30969 +f 32238//30975 32237//30974 32232//30969 32231//30968 +f 32237//30974 32238//30975 32239//30976 32240//30977 +f 32018//30755 32237//30974 32240//30977 32019//30756 +f 32241//30978 32023//30760 32022//30759 32242//30979 +f 32243//30980 32241//30978 32242//30979 32244//30981 +f 32241//30978 32243//30980 32236//30973 32234//30971 +f 32023//30760 32241//30978 32234//30971 32016//30753 +f 32245//30982 32024//30761 32019//30756 32240//30977 +f 32246//30983 32245//30982 32240//30977 32239//30976 +f 32245//30982 32246//30983 32247//30984 32248//30985 +f 32024//30761 32245//30982 32248//30985 32025//30762 +f 32249//30986 32029//30766 32028//30765 32250//30987 +f 32251//30988 32249//30986 32250//30987 32252//30989 +f 32249//30986 32251//30988 32244//30981 32242//30979 +f 32029//30766 32249//30986 32242//30979 32022//30759 +f 32253//30990 32030//30767 32025//30762 32248//30985 +f 32254//30991 32253//30990 32248//30985 32247//30984 +f 32253//30990 32254//30991 32255//30992 32256//30993 +f 32030//30767 32253//30990 32256//30993 32031//30768 +f 32257//30994 32035//30772 32034//30771 32258//30995 +f 32259//30996 32257//30994 32258//30995 32260//30997 +f 32257//30994 32259//30996 32252//30989 32250//30987 +f 32035//30772 32257//30994 32250//30987 32028//30765 +f 32261//30998 32036//30773 32031//30768 32256//30993 +f 32262//30999 32261//30998 32256//30993 32255//30992 +f 32261//30998 32262//30999 32263//31000 32264//31001 +f 32036//30773 32261//30998 32264//31001 32037//30774 +f 32265//31002 32041//30778 32040//30777 32266//31003 +f 32267//31004 32265//31002 32266//31003 32268//31005 +f 32265//31002 32267//31004 32260//30997 32258//30995 +f 32041//30778 32265//31002 32258//30995 32034//30771 +f 32269//31006 32042//30779 32037//30774 32264//31001 +f 32270//31007 32269//31006 32264//31001 32263//31000 +f 32269//31006 32270//31007 32271//31008 32272//31009 +f 32042//30779 32269//31006 32272//31009 32043//30780 +f 32273//31010 32047//30784 32046//30783 32274//31011 +f 32275//31012 32273//31010 32274//31011 32276//31013 +f 32273//31010 32275//31012 32268//31005 32266//31003 +f 32047//30784 32273//31010 32266//31003 32040//30777 +f 32277//31014 32048//30785 32043//30780 32272//31009 +f 32278//31015 32277//31014 32272//31009 32271//31008 +f 32277//31014 32278//31015 32279//31016 32280//31017 +f 32048//30785 32277//31014 32280//31017 32049//30786 +f 32281//31018 32053//30790 32052//30789 32282//31019 +f 32283//31020 32281//31018 32282//31019 32284//31021 +f 32281//31018 32283//31020 32276//31013 32274//31011 +f 32053//30790 32281//31018 32274//31011 32046//30783 +f 32285//31022 32054//30791 32049//30786 32280//31017 +f 32286//31023 32285//31022 32280//31017 32279//31016 +f 32285//31022 32286//31023 32287//31024 32288//31025 +f 32054//30791 32285//31022 32288//31025 32055//30792 +f 32289//31026 32059//30796 32058//30795 32290//31027 +f 32291//31028 32289//31026 32290//31027 32292//31029 +f 32289//31026 32291//31028 32284//31021 32282//31019 +f 32059//30796 32289//31026 32282//31019 32052//30789 +f 32293//31030 32060//30797 32055//30792 32288//31025 +f 32294//31031 32293//31030 32288//31025 32287//31024 +f 32293//31030 32294//31031 32295//31032 32296//31033 +f 32060//30797 32293//31030 32296//31033 32061//30798 +f 32297//31034 32065//30802 32064//30801 32298//31035 +f 32299//31036 32297//31034 32298//31035 32300//31037 +f 32297//31034 32299//31036 32292//31029 32290//31027 +f 32065//30802 32297//31034 32290//31027 32058//30795 +f 32301//31038 32066//30803 32061//30798 32296//31033 +f 32302//31039 32301//31038 32296//31033 32295//31032 +f 32301//31038 32302//31039 32303//31040 32304//31041 +f 32066//30803 32301//31038 32304//31041 32067//30804 +f 32305//31042 32071//30808 32070//30807 32306//31043 +f 32307//31044 32305//31042 32306//31043 32308//31045 +f 32305//31042 32307//31044 32300//31037 32298//31035 +f 32071//30808 32305//31042 32298//31035 32064//30801 +f 32309//31046 32072//30809 32067//30804 32304//31041 +f 32310//31047 32309//31046 32304//31041 32303//31040 +f 32309//31046 32310//31047 32311//31048 32312//31049 +f 32072//30809 32309//31046 32312//31049 32073//30810 +f 32313//31050 32077//30814 32076//30813 32314//31051 +f 32315//31052 32313//31050 32314//31051 32316//31053 +f 32313//31050 32315//31052 32308//31045 32306//31043 +f 32077//30814 32313//31050 32306//31043 32070//30807 +f 32317//31054 32078//30815 32073//30810 32312//31049 +f 32318//31055 32317//31054 32312//31049 32311//31048 +f 32317//31054 32318//31055 32319//31056 32320//31057 +f 32078//30815 32317//31054 32320//31057 32079//30816 +f 32321//31058 32083//30820 32082//30819 32322//31059 +f 32323//31060 32321//31058 32322//31059 32324//31061 +f 32321//31058 32323//31060 32316//31053 32314//31051 +f 32083//30820 32321//31058 32314//31051 32076//30813 +f 32325//31062 32084//30821 32079//30816 32320//31057 +f 32326//31063 32325//31062 32320//31057 32319//31056 +f 32325//31062 32326//31063 32327//31064 32328//31065 +f 32084//30821 32325//31062 32328//31065 32085//30822 +f 32329//31066 32089//30826 32088//30825 32330//31067 +f 32331//31068 32329//31066 32330//31067 32332//31069 +f 32329//31066 32331//31068 32324//31061 32322//31059 +f 32089//30826 32329//31066 32322//31059 32082//30819 +f 32333//31070 32090//30827 32085//30822 32328//31065 +f 32334//31071 32333//31070 32328//31065 32327//31064 +f 32333//31070 32334//31071 32335//31072 32336//31073 +f 32090//30827 32333//31070 32336//31073 32091//30828 +f 32337//31074 32095//30832 32094//30831 32338//31075 +f 32339//31076 32337//31074 32338//31075 32340//31077 +f 32337//31074 32339//31076 32332//31069 32330//31067 +f 32095//30832 32337//31074 32330//31067 32088//30825 +f 32341//31078 32096//30833 32091//30828 32336//31073 +f 32342//31079 32341//31078 32336//31073 32335//31072 +f 32341//31078 32342//31079 32343//31080 32344//31081 +f 32096//30833 32341//31078 32344//31081 32097//30834 +f 32345//31082 32101//30838 32100//30837 32346//31083 +f 32347//31084 32345//31082 32346//31083 32348//31085 +f 32345//31082 32347//31084 32340//31077 32338//31075 +f 32101//30838 32345//31082 32338//31075 32094//30831 +f 32349//31086 32102//30839 32097//30834 32344//31081 +f 32350//31087 32349//31086 32344//31081 32343//31080 +f 32349//31086 32350//31087 32351//31088 32352//31089 +f 32102//30839 32349//31086 32352//31089 32103//30840 +f 32353//31090 32107//30844 32106//30843 32354//31091 +f 32355//31092 32353//31090 32354//31091 32356//31093 +f 32353//31090 32355//31092 32348//31085 32346//31083 +f 32107//30844 32353//31090 32346//31083 32100//30837 +f 32357//31094 32108//30845 32103//30840 32352//31089 +f 32358//31095 32357//31094 32352//31089 32351//31088 +f 32357//31094 32358//31095 32359//31096 32360//31097 +f 32108//30845 32357//31094 32360//31097 32109//30846 +f 32361//31098 32113//30850 32112//30849 32362//31099 +f 32363//31100 32361//31098 32362//31099 32364//31101 +f 32361//31098 32363//31100 32356//31093 32354//31091 +f 32113//30850 32361//31098 32354//31091 32106//30843 +f 32365//31102 32114//30851 32109//30846 32360//31097 +f 32366//31103 32365//31102 32360//31097 32359//31096 +f 32365//31102 32366//31103 32367//31104 32368//31105 +f 32114//30851 32365//31102 32368//31105 32115//30852 +f 32369//31106 32119//30856 32118//30855 32370//31107 +f 32371//31108 32369//31106 32370//31107 32372//31109 +f 32369//31106 32371//31108 32364//31101 32362//31099 +f 32119//30856 32369//31106 32362//31099 32112//30849 +f 32373//31110 32120//30857 32115//30852 32368//31105 +f 32374//31111 32373//31110 32368//31105 32367//31104 +f 32373//31110 32374//31111 32375//31112 32376//31113 +f 32120//30857 32373//31110 32376//31113 32121//30858 +f 32377//31114 32123//30860 31938//30675 32130//30867 +f 32378//31115 32377//31114 32130//30867 32129//30866 +f 32377//31114 32378//31115 32372//31109 32370//31107 +f 32123//30860 32377//31114 32370//31107 32118//30855 +f 32379//31116 32124//30861 32121//30858 32376//31113 +f 32380//31117 32379//31116 32376//31113 32375//31112 +f 32379//31116 32380//31117 32134//30871 32132//30869 +f 32124//30861 32379//31116 32132//30869 31939//30676 +f 32381//31118 32133//30870 32134//30871 32382//31119 +f 32383//31120 32381//31118 32382//31119 32384//31121 +f 32381//31118 32383//31120 32385//31122 32386//31123 +f 32133//30870 32381//31118 32386//31123 32135//30872 +f 32387//31124 32142//30879 32135//30872 32386//31123 +f 32388//31125 32387//31124 32386//31123 32385//31122 +f 32387//31124 32388//31125 32389//31126 32390//31127 +f 32142//30879 32387//31124 32390//31127 32143//30880 +f 32391//31128 32150//30887 32143//30880 32390//31127 +f 32392//31129 32391//31128 32390//31127 32389//31126 +f 32391//31128 32392//31129 32393//31130 32394//31131 +f 32150//30887 32391//31128 32394//31131 32151//30888 +f 32395//31132 32158//30895 32151//30888 32394//31131 +f 32396//31133 32395//31132 32394//31131 32393//31130 +f 32395//31132 32396//31133 32397//31134 32398//31135 +f 32158//30895 32395//31132 32398//31135 32159//30896 +f 32399//31136 32166//30903 32159//30896 32398//31135 +f 32400//31137 32399//31136 32398//31135 32397//31134 +f 32399//31136 32400//31137 32401//31138 32402//31139 +f 32166//30903 32399//31136 32402//31139 32167//30904 +f 32403//31140 32174//30911 32167//30904 32402//31139 +f 32404//31141 32403//31140 32402//31139 32401//31138 +f 32403//31140 32404//31141 32405//31142 32406//31143 +f 32174//30911 32403//31140 32406//31143 32175//30912 +f 32407//31144 32182//30919 32175//30912 32406//31143 +f 32408//31145 32407//31144 32406//31143 32405//31142 +f 32407//31144 32408//31145 32409//31146 32410//31147 +f 32182//30919 32407//31144 32410//31147 32183//30920 +f 32411//31148 32190//30927 32183//30920 32410//31147 +f 32412//31149 32411//31148 32410//31147 32409//31146 +f 32411//31148 32412//31149 32413//31150 32414//31151 +f 32190//30927 32411//31148 32414//31151 32191//30928 +f 32415//31152 32198//30935 32191//30928 32414//31151 +f 32416//31153 32415//31152 32414//31151 32413//31150 +f 32415//31152 32416//31153 32417//31154 32418//31155 +f 32198//30935 32415//31152 32418//31155 32199//30936 +f 32419//31156 32206//30943 32199//30936 32418//31155 +f 32420//31157 32419//31156 32418//31155 32417//31154 +f 32419//31156 32420//31157 32421//31158 32422//31159 +f 32206//30943 32419//31156 32422//31159 32207//30944 +f 32423//31160 32214//30951 32207//30944 32422//31159 +f 32424//31161 32423//31160 32422//31159 32421//31158 +f 32423//31160 32424//31161 32425//31162 32426//31163 +f 32214//30951 32423//31160 32426//31163 32215//30952 +f 32427//31164 32222//30959 32215//30952 32426//31163 +f 32428//31165 32427//31164 32426//31163 32425//31162 +f 32427//31164 32428//31165 32429//31166 32430//31167 +f 32222//30959 32427//31164 32430//31167 32223//30960 +f 32431//31168 32230//30967 32223//30960 32430//31167 +f 32432//31169 32431//31168 32430//31167 32429//31166 +f 32431//31168 32432//31169 32433//31170 32434//31171 +f 32230//30967 32431//31168 32434//31171 32231//30968 +f 32435//31172 32238//30975 32231//30968 32434//31171 +f 32436//31173 32435//31172 32434//31171 32433//31170 +f 32435//31172 32436//31173 32437//31174 32438//31175 +f 32238//30975 32435//31172 32438//31175 32239//30976 +f 32439//31176 32246//30983 32239//30976 32438//31175 +f 32440//31177 32439//31176 32438//31175 32437//31174 +f 32439//31176 32440//31177 32441//31178 32442//31179 +f 32246//30983 32439//31176 32442//31179 32247//30984 +f 32443//31180 32254//30991 32247//30984 32442//31179 +f 32444//31181 32443//31180 32442//31179 32441//31178 +f 32443//31180 32444//31181 32445//31182 32446//31183 +f 32254//30991 32443//31180 32446//31183 32255//30992 +f 32447//31184 32262//30999 32255//30992 32446//31183 +f 32448//31185 32447//31184 32446//31183 32445//31182 +f 32447//31184 32448//31185 32449//31186 32450//31187 +f 32262//30999 32447//31184 32450//31187 32263//31000 +f 32451//31188 32270//31007 32263//31000 32450//31187 +f 32452//31189 32451//31188 32450//31187 32449//31186 +f 32451//31188 32452//31189 32453//31190 32454//31191 +f 32270//31007 32451//31188 32454//31191 32271//31008 +f 32455//31192 32278//31015 32271//31008 32454//31191 +f 32456//31193 32455//31192 32454//31191 32453//31190 +f 32455//31192 32456//31193 32457//31194 32458//31195 +f 32278//31015 32455//31192 32458//31195 32279//31016 +f 32459//31196 32286//31023 32279//31016 32458//31195 +f 32460//31197 32459//31196 32458//31195 32457//31194 +f 32459//31196 32460//31197 32461//31198 32462//31199 +f 32286//31023 32459//31196 32462//31199 32287//31024 +f 32463//31200 32294//31031 32287//31024 32462//31199 +f 32464//31201 32463//31200 32462//31199 32461//31198 +f 32463//31200 32464//31201 32465//31202 32466//31203 +f 32294//31031 32463//31200 32466//31203 32295//31032 +f 32467//31204 32302//31039 32295//31032 32466//31203 +f 32468//31205 32467//31204 32466//31203 32465//31202 +f 32467//31204 32468//31205 32469//31206 32470//31207 +f 32302//31039 32467//31204 32470//31207 32303//31040 +f 32471//31208 32310//31047 32303//31040 32470//31207 +f 32472//31209 32471//31208 32470//31207 32469//31206 +f 32471//31208 32472//31209 32473//31210 32474//31211 +f 32310//31047 32471//31208 32474//31211 32311//31048 +f 32475//31212 32318//31055 32311//31048 32474//31211 +f 32476//31213 32475//31212 32474//31211 32473//31210 +f 32475//31212 32476//31213 32477//31214 32478//31215 +f 32318//31055 32475//31212 32478//31215 32319//31056 +f 32479//31216 32326//31063 32319//31056 32478//31215 +f 32480//31217 32479//31216 32478//31215 32477//31214 +f 32479//31216 32480//31217 32481//31218 32482//31219 +f 32326//31063 32479//31216 32482//31219 32327//31064 +f 32483//31220 32334//31071 32327//31064 32482//31219 +f 32484//31221 32483//31220 32482//31219 32481//31218 +f 32483//31220 32484//31221 32485//31222 32486//31223 +f 32334//31071 32483//31220 32486//31223 32335//31072 +f 32487//31224 32342//31079 32335//31072 32486//31223 +f 32488//31225 32487//31224 32486//31223 32485//31222 +f 32487//31224 32488//31225 32489//31226 32490//31227 +f 32342//31079 32487//31224 32490//31227 32343//31080 +f 32491//31228 32350//31087 32343//31080 32490//31227 +f 32492//31229 32491//31228 32490//31227 32489//31226 +f 32491//31228 32492//31229 32493//31230 32494//31231 +f 32350//31087 32491//31228 32494//31231 32351//31088 +f 32495//31232 32358//31095 32351//31088 32494//31231 +f 32496//31233 32495//31232 32494//31231 32493//31230 +f 32495//31232 32496//31233 32497//31234 32498//31235 +f 32358//31095 32495//31232 32498//31235 32359//31096 +f 32499//31236 32366//31103 32359//31096 32498//31235 +f 32500//31237 32499//31236 32498//31235 32497//31234 +f 32499//31236 32500//31237 32501//31238 32502//31239 +f 32366//31103 32499//31236 32502//31239 32367//31104 +f 32503//31240 32374//31111 32367//31104 32502//31239 +f 32504//31241 32503//31240 32502//31239 32501//31238 +f 32503//31240 32504//31241 32505//31242 32506//31243 +f 32374//31111 32503//31240 32506//31243 32375//31112 +f 32507//31244 32380//31117 32375//31112 32506//31243 +f 32508//31245 32507//31244 32506//31243 32505//31242 +f 32507//31244 32508//31245 32384//31121 32382//31119 +f 32380//31117 32507//31244 32382//31119 32134//30871 +f 32509//31246 31748//30489 31747//30488 32510//31247 +f 32383//31120 32509//31246 32510//31247 32385//31122 +f 32509//31246 32383//31120 32384//31121 32511//31248 +f 31748//30489 32509//31246 32511//31248 31749//30491 +f 32512//31249 31755//30497 31754//30496 32513//31250 +f 32388//31125 32512//31249 32513//31250 32389//31126 +f 32512//31249 32388//31125 32385//31122 32510//31247 +f 31755//30497 32512//31249 32510//31247 31747//30488 +f 32514//31251 31761//30503 31760//30502 32515//31252 +f 32392//31129 32514//31251 32515//31252 32393//31130 +f 32514//31251 32392//31129 32389//31126 32513//31250 +f 31761//30503 32514//31251 32513//31250 31754//30496 +f 32516//31253 31767//30509 31766//30508 32517//31254 +f 32396//31133 32516//31253 32517//31254 32397//31134 +f 32516//31253 32396//31133 32393//31130 32515//31252 +f 31767//30509 32516//31253 32515//31252 31760//30502 +f 32518//31255 31773//30515 31772//30514 32519//31256 +f 32400//31137 32518//31255 32519//31256 32401//31138 +f 32518//31255 32400//31137 32397//31134 32517//31254 +f 31773//30515 32518//31255 32517//31254 31766//30508 +f 32520//31257 31779//30521 31778//30520 32521//31258 +f 32404//31141 32520//31257 32521//31258 32405//31142 +f 32520//31257 32404//31141 32401//31138 32519//31256 +f 31779//30521 32520//31257 32519//31256 31772//30514 +f 32522//31259 31785//30527 31784//30526 32523//31260 +f 32408//31145 32522//31259 32523//31260 32409//31146 +f 32522//31259 32408//31145 32405//31142 32521//31258 +f 31785//30527 32522//31259 32521//31258 31778//30520 +f 32524//31261 31791//30533 31790//30532 32525//31262 +f 32412//31149 32524//31261 32525//31262 32413//31150 +f 32524//31261 32412//31149 32409//31146 32523//31260 +f 31791//30533 32524//31261 32523//31260 31784//30526 +f 32526//31263 31797//30539 31796//30538 32527//31264 +f 32416//31153 32526//31263 32527//31264 32417//31154 +f 32526//31263 32416//31153 32413//31150 32525//31262 +f 31797//30539 32526//31263 32525//31262 31790//30532 +f 32528//31265 31803//30545 31802//30544 32529//31266 +f 32420//31157 32528//31265 32529//31266 32421//31158 +f 32528//31265 32420//31157 32417//31154 32527//31264 +f 31803//30545 32528//31265 32527//31264 31796//30538 +f 32530//31267 31809//30551 31808//30550 32531//31268 +f 32424//31161 32530//31267 32531//31268 32425//31162 +f 32530//31267 32424//31161 32421//31158 32529//31266 +f 31809//30551 32530//31267 32529//31266 31802//30544 +f 32532//31269 31815//30557 31814//30556 32533//31270 +f 32428//31165 32532//31269 32533//31270 32429//31166 +f 32532//31269 32428//31165 32425//31162 32531//31268 +f 31815//30557 32532//31269 32531//31268 31808//30550 +f 32534//31271 31821//30563 31820//30562 32535//31272 +f 32432//31169 32534//31271 32535//31272 32433//31170 +f 32534//31271 32432//31169 32429//31166 32533//31270 +f 31821//30563 32534//31271 32533//31270 31814//30556 +f 32536//31273 31827//30569 31826//30568 32537//31274 +f 32436//31173 32536//31273 32537//31274 32437//31174 +f 32536//31273 32436//31173 32433//31170 32535//31272 +f 31827//30569 32536//31273 32535//31272 31820//30562 +f 32538//31275 31833//30575 31832//30574 32539//31276 +f 32440//31177 32538//31275 32539//31276 32441//31178 +f 32538//31275 32440//31177 32437//31174 32537//31274 +f 31833//30575 32538//31275 32537//31274 31826//30568 +f 32540//31277 31839//30581 31838//30580 32541//31278 +f 32444//31181 32540//31277 32541//31278 32445//31182 +f 32540//31277 32444//31181 32441//31178 32539//31276 +f 31839//30581 32540//31277 32539//31276 31832//30574 +f 32542//31279 31845//30587 31844//30586 32543//31280 +f 32448//31185 32542//31279 32543//31280 32449//31186 +f 32542//31279 32448//31185 32445//31182 32541//31278 +f 31845//30587 32542//31279 32541//31278 31838//30580 +f 32544//31281 31851//30593 31850//30592 32545//31282 +f 32452//31189 32544//31281 32545//31282 32453//31190 +f 32544//31281 32452//31189 32449//31186 32543//31280 +f 31851//30593 32544//31281 32543//31280 31844//30586 +f 32546//31283 31857//30599 31856//30598 32547//31284 +f 32456//31193 32546//31283 32547//31284 32457//31194 +f 32546//31283 32456//31193 32453//31190 32545//31282 +f 31857//30599 32546//31283 32545//31282 31850//30592 +f 32548//31285 31863//30605 31862//30604 32549//31286 +f 32460//31197 32548//31285 32549//31286 32461//31198 +f 32548//31285 32460//31197 32457//31194 32547//31284 +f 31863//30605 32548//31285 32547//31284 31856//30598 +f 32550//31287 31869//30611 31868//30610 32551//31288 +f 32464//31201 32550//31287 32551//31288 32465//31202 +f 32550//31287 32464//31201 32461//31198 32549//31286 +f 31869//30611 32550//31287 32549//31286 31862//30604 +f 32552//31289 31875//30617 31874//30616 32553//31290 +f 32468//31205 32552//31289 32553//31290 32469//31206 +f 32552//31289 32468//31205 32465//31202 32551//31288 +f 31875//30617 32552//31289 32551//31288 31868//30610 +f 32554//31291 31881//30623 31880//30622 32555//31292 +f 32472//31209 32554//31291 32555//31292 32473//31210 +f 32554//31291 32472//31209 32469//31206 32553//31290 +f 31881//30623 32554//31291 32553//31290 31874//30616 +f 32556//31293 31887//30629 31886//30628 32557//31294 +f 32476//31213 32556//31293 32557//31294 32477//31214 +f 32556//31293 32476//31213 32473//31210 32555//31292 +f 31887//30629 32556//31293 32555//31292 31880//30622 +f 32558//31295 31893//30634 31892//8129 32559//31296 +f 32480//31217 32558//31295 32559//31296 32481//31218 +f 32558//31295 32480//31217 32477//31214 32557//31294 +f 31893//30634 32558//31295 32557//31294 31886//30628 +f 32560//31297 31899//8125 31898//8121 32561//31298 +f 32484//31221 32560//31297 32561//31298 32485//31222 +f 32560//31297 32484//31221 32481//31218 32559//31296 +f 31899//8125 32560//31297 32559//31296 31892//8129 +f 32562//31299 31905//8117 31904//8113 32563//31300 +f 32488//31225 32562//31299 32563//31300 32489//31226 +f 32562//31299 32488//31225 32485//31222 32561//31298 +f 31905//8117 32562//31299 32561//31298 31898//8121 +f 32564//31301 31911//8109 31910//30647 32565//31302 +f 32492//31229 32564//31301 32565//31302 32493//31230 +f 32564//31301 32492//31229 32489//31226 32563//31300 +f 31911//8109 32564//31301 32563//31300 31904//8113 +f 32566//31303 31917//30653 31916//30652 32567//31304 +f 32496//31233 32566//31303 32567//31304 32497//31234 +f 32566//31303 32496//31233 32493//31230 32565//31302 +f 31917//30653 32566//31303 32565//31302 31910//30647 +f 32568//31305 31923//30659 31922//30658 32569//31306 +f 32500//31237 32568//31305 32569//31306 32501//31238 +f 32568//31305 32500//31237 32497//31234 32567//31304 +f 31923//30659 32568//31305 32567//31304 31916//30652 +f 32570//31307 31929//30665 31928//30664 32571//31308 +f 32504//31241 32570//31307 32571//31308 32505//31242 +f 32570//31307 32504//31241 32501//31238 32569//31306 +f 31929//30665 32570//31307 32569//31306 31922//30658 +f 32572//31309 31932//30669 31749//30491 32511//31248 +f 32508//31245 32572//31309 32511//31248 32384//31121 +f 32572//31309 32508//31245 32505//31242 32571//31308 +f 31932//30669 32572//31309 32571//31308 31928//30664 +f 32573//31310 32574//31311 31746//30487 31744//30486 +f 32575//31312 32573//31310 31744//30486 31743//30668 +f 32576//31313 32575//31312 31743//30668 31931//30667 +f 32577//31314 32576//31313 31931//30667 31927//30663 +f 32578//31315 32577//31314 31927//30663 31925//30661 +f 32579//31316 32578//31315 31925//30661 31921//30657 +f 32580//31317 32579//31316 31921//30657 31919//30655 +f 32581//31318 32580//31317 31919//30655 31915//30651 +f 32582//31319 32581//31318 31915//30651 31913//30649 +f 32583//31320 32582//31319 31913//30649 31909//30646 +f 32584//31321 32583//31320 31909//30646 31907//30644 +f 32585//31322 32584//31321 31907//30644 31903//30642 +f 32586//31323 32585//31322 31903//30642 31901//30640 +f 32587//31324 32586//31323 31901//30640 31897//30638 +f 32588//31325 32587//31324 31897//30638 31895//30636 +f 32589//31326 32588//31325 31895//30636 31891//30633 +f 32590//31327 32589//31326 31891//30633 31889//30631 +f 32591//31328 32590//31327 31889//30631 31885//30627 +f 32592//31329 32591//31328 31885//30627 31883//30625 +f 32593//31330 32592//31329 31883//30625 31879//30621 +f 32594//31331 32593//31330 31879//30621 31877//30619 +f 32595//31332 32594//31331 31877//30619 31873//30615 +f 32596//31333 32595//31332 31873//30615 31871//30613 +f 32597//31334 32596//31333 31871//30613 31867//30609 +f 32598//31335 32597//31334 31867//30609 31865//30607 +f 32599//31336 32598//31335 31865//30607 31861//30603 +f 32600//31337 32599//31336 31861//30603 31859//30601 +f 32601//31338 32600//31337 31859//30601 31855//30597 +f 32602//31339 32601//31338 31855//30597 31853//30595 +f 32603//31340 32602//31339 31853//30595 31849//30591 +f 32604//31341 32603//31340 31849//30591 31847//30589 +f 32605//31342 32604//31341 31847//30589 31843//30585 +f 32606//31343 32605//31342 31843//30585 31841//30583 +f 32607//31344 32606//31343 31841//30583 31837//30579 +f 32608//31345 32607//31344 31837//30579 31835//30577 +f 32609//31346 32608//31345 31835//30577 31831//30573 +f 32610//31347 32609//31346 31831//30573 31829//30571 +f 32611//31348 32610//31347 31829//30571 31825//30567 +f 32612//31349 32611//31348 31825//30567 31823//30565 +f 32613//31350 32612//31349 31823//30565 31819//30561 +f 32614//31351 32613//31350 31819//30561 31817//30559 +f 32615//31352 32614//31351 31817//30559 31813//30555 +f 32616//31353 32615//31352 31813//30555 31811//30553 +f 32617//31354 32616//31353 31811//30553 31807//30549 +f 32618//31355 32617//31354 31807//30549 31805//30547 +f 32619//31356 32618//31355 31805//30547 31801//30543 +f 32620//31357 32619//31356 31801//30543 31799//30541 +f 32621//31358 32620//31357 31799//30541 31795//30537 +f 32622//31359 32621//31358 31795//30537 31793//30535 +f 32623//31360 32622//31359 31793//30535 31789//30531 +f 32624//31361 32623//31360 31789//30531 31787//30529 +f 32625//31362 32624//31361 31787//30529 31783//30525 +f 32626//31363 32625//31362 31783//30525 31781//30523 +f 32627//31364 32626//31363 31781//30523 31777//30519 +f 32628//31365 32627//31364 31777//30519 31775//30517 +f 32629//31366 32628//31365 31775//30517 31771//30513 +f 32630//31367 32629//31366 31771//30513 31769//30511 +f 32631//31368 32630//31367 31769//30511 31765//30507 +f 32632//31369 32631//31368 31765//30507 31763//30505 +f 32633//31370 32632//31369 31763//30505 31759//30501 +f 32634//31371 32633//31370 31759//30501 31757//30499 +f 32635//31372 32634//31371 31757//30499 31753//30495 +f 32636//31373 32635//31372 31753//30495 31751//30493 +f 32574//31311 32636//31373 31751//30493 31746//30487 +f 32637//31374 32127//30864 32128//30865 32638//31375 +f 32639//31376 32637//31374 32638//31375 32640//31377 +f 32637//31374 32639//31376 32641//31378 32642//31379 +f 32127//30864 32637//31374 32642//31379 32129//30866 +f 32643//31380 32139//30876 32140//30877 32644//31381 +f 32645//31382 32643//31380 32644//31381 32646//31383 +f 32643//31380 32645//31382 32640//31377 32638//31375 +f 32139//30876 32643//31380 32638//31375 32128//30865 +f 32647//31384 32147//30884 32148//30885 32648//31385 +f 32649//31386 32647//31384 32648//31385 32650//31387 +f 32647//31384 32649//31386 32646//31383 32644//31381 +f 32147//30884 32647//31384 32644//31381 32140//30877 +f 32651//31388 32155//30892 32156//30893 32652//31389 +f 32653//31390 32651//31388 32652//31389 32654//31391 +f 32651//31388 32653//31390 32650//31387 32648//31385 +f 32155//30892 32651//31388 32648//31385 32148//30885 +f 32655//31392 32163//30900 32164//30901 32656//31393 +f 32657//31394 32655//31392 32656//31393 32658//31395 +f 32655//31392 32657//31394 32654//31391 32652//31389 +f 32163//30900 32655//31392 32652//31389 32156//30893 +f 32659//31396 32171//30908 32172//30909 32660//31397 +f 32661//31398 32659//31396 32660//31397 32662//31399 +f 32659//31396 32661//31398 32658//31395 32656//31393 +f 32171//30908 32659//31396 32656//31393 32164//30901 +f 32663//31400 32179//30916 32180//30917 32664//31401 +f 32665//31402 32663//31400 32664//31401 32666//31403 +f 32663//31400 32665//31402 32662//31399 32660//31397 +f 32179//30916 32663//31400 32660//31397 32172//30909 +f 32667//31404 32187//30924 32188//30925 32668//31405 +f 32669//31406 32667//31404 32668//31405 32670//31407 +f 32667//31404 32669//31406 32666//31403 32664//31401 +f 32187//30924 32667//31404 32664//31401 32180//30917 +f 32671//31408 32195//30932 32196//30933 32672//31409 +f 32673//31410 32671//31408 32672//31409 32674//31411 +f 32671//31408 32673//31410 32670//31407 32668//31405 +f 32195//30932 32671//31408 32668//31405 32188//30925 +f 32675//31412 32203//30940 32204//30941 32676//31413 +f 32677//31414 32675//31412 32676//31413 32678//31415 +f 32675//31412 32677//31414 32674//31411 32672//31409 +f 32203//30940 32675//31412 32672//31409 32196//30933 +f 32679//31416 32211//30948 32212//30949 32680//31417 +f 32681//31418 32679//31416 32680//31417 32682//31419 +f 32679//31416 32681//31418 32678//31415 32676//31413 +f 32211//30948 32679//31416 32676//31413 32204//30941 +f 32683//31420 32219//30956 32220//30957 32684//31421 +f 32685//31422 32683//31420 32684//31421 32686//31423 +f 32683//31420 32685//31422 32682//31419 32680//31417 +f 32219//30956 32683//31420 32680//31417 32212//30949 +f 32687//31424 32227//30964 32228//30965 32688//31425 +f 32689//31426 32687//31424 32688//31425 32690//31427 +f 32687//31424 32689//31426 32686//31423 32684//31421 +f 32227//30964 32687//31424 32684//31421 32220//30957 +f 32691//31428 32235//30972 32236//30973 32692//31429 +f 32693//31430 32691//31428 32692//31429 32694//31431 +f 32691//31428 32693//31430 32690//31427 32688//31425 +f 32235//30972 32691//31428 32688//31425 32228//30965 +f 32695//31432 32243//30980 32244//30981 32696//31433 +f 32697//31434 32695//31432 32696//31433 32698//31435 +f 32695//31432 32697//31434 32694//31431 32692//31429 +f 32243//30980 32695//31432 32692//31429 32236//30973 +f 32699//31436 32251//30988 32252//30989 32700//31437 +f 32701//31438 32699//31436 32700//31437 32702//31439 +f 32699//31436 32701//31438 32698//31435 32696//31433 +f 32251//30988 32699//31436 32696//31433 32244//30981 +f 32703//31440 32259//30996 32260//30997 32704//31441 +f 32705//31442 32703//31440 32704//31441 32706//31443 +f 32703//31440 32705//31442 32702//31439 32700//31437 +f 32259//30996 32703//31440 32700//31437 32252//30989 +f 32707//31444 32267//31004 32268//31005 32708//31445 +f 32709//31446 32707//31444 32708//31445 32710//31447 +f 32707//31444 32709//31446 32706//31443 32704//31441 +f 32267//31004 32707//31444 32704//31441 32260//30997 +f 32711//31448 32275//31012 32276//31013 32712//31449 +f 32713//31450 32711//31448 32712//31449 32714//31451 +f 32711//31448 32713//31450 32710//31447 32708//31445 +f 32275//31012 32711//31448 32708//31445 32268//31005 +f 32715//31452 32283//31020 32284//31021 32716//31453 +f 32717//31454 32715//31452 32716//31453 32718//31455 +f 32715//31452 32717//31454 32714//31451 32712//31449 +f 32283//31020 32715//31452 32712//31449 32276//31013 +f 32719//31456 32291//31028 32292//31029 32720//31457 +f 32721//31458 32719//31456 32720//31457 32722//31459 +f 32719//31456 32721//31458 32718//31455 32716//31453 +f 32291//31028 32719//31456 32716//31453 32284//31021 +f 32723//31460 32299//31036 32300//31037 32724//31461 +f 32725//31462 32723//31460 32724//31461 32726//31463 +f 32723//31460 32725//31462 32722//31459 32720//31457 +f 32299//31036 32723//31460 32720//31457 32292//31029 +f 32727//31464 32307//31044 32308//31045 32728//31465 +f 32729//31466 32727//31464 32728//31465 32730//31467 +f 32727//31464 32729//31466 32726//31463 32724//31461 +f 32307//31044 32727//31464 32724//31461 32300//31037 +f 32731//31468 32315//31052 32316//31053 32732//31469 +f 32733//31470 32731//31468 32732//31469 32734//31471 +f 32731//31468 32733//31470 32730//31467 32728//31465 +f 32315//31052 32731//31468 32728//31465 32308//31045 +f 32735//31472 32323//31060 32324//31061 32736//31473 +f 32737//31474 32735//31472 32736//31473 32738//31475 +f 32735//31472 32737//31474 32734//31471 32732//31469 +f 32323//31060 32735//31472 32732//31469 32316//31053 +f 32739//31476 32331//31068 32332//31069 32740//31477 +f 32741//31478 32739//31476 32740//31477 32742//31479 +f 32739//31476 32741//31478 32738//31475 32736//31473 +f 32331//31068 32739//31476 32736//31473 32324//31061 +f 32743//31480 32339//31076 32340//31077 32744//31481 +f 32745//31482 32743//31480 32744//31481 32746//31483 +f 32743//31480 32745//31482 32742//31479 32740//31477 +f 32339//31076 32743//31480 32740//31477 32332//31069 +f 32747//31484 32347//31084 32348//31085 32748//31485 +f 32749//31486 32747//31484 32748//31485 32750//31487 +f 32747//31484 32749//31486 32746//31483 32744//31481 +f 32347//31084 32747//31484 32744//31481 32340//31077 +f 32751//31488 32355//31092 32356//31093 32752//31489 +f 32753//31490 32751//31488 32752//31489 32754//31491 +f 32751//31488 32753//31490 32750//31487 32748//31485 +f 32355//31092 32751//31488 32748//31485 32348//31085 +f 32755//31492 32363//31100 32364//31101 32756//31493 +f 32757//31494 32755//31492 32756//31493 32758//31495 +f 32755//31492 32757//31494 32754//31491 32752//31489 +f 32363//31100 32755//31492 32752//31489 32356//31093 +f 32759//31496 32371//31108 32372//31109 32760//31497 +f 32761//31498 32759//31496 32760//31497 32762//31499 +f 32759//31496 32761//31498 32758//31495 32756//31493 +f 32371//31108 32759//31496 32756//31493 32364//31101 +f 32763//31500 32378//31115 32129//30866 32642//31379 +f 32764//31501 32763//31500 32642//31379 32641//31378 +f 32763//31500 32764//31501 32762//31499 32760//31497 +f 32378//31115 32763//31500 32760//31497 32372//31109 +f 32765//3570 32766//3570 32767//3570 32768//3570 +f 32769//3570 32765//3570 32768//3570 32770//3570 +f 32765//3570 32769//3570 32771//3570 32772//3570 +f 32766//3570 32765//3570 32772//3570 32773//3570 +f 32774//3570 32769//3570 32770//3570 32775//3570 +f 32776//3570 32774//3570 32775//3570 32777//3570 +f 32774//3570 32776//3570 32778//3570 32779//3570 +f 32769//3570 32774//3570 32779//3570 32771//3570 +f 32780//3570 32776//3570 32777//3570 32781//3570 +f 32782//3570 32780//3570 32781//3570 32783//3570 +f 32780//3570 32782//3570 32784//3570 32785//3570 +f 32776//3570 32780//3570 32785//3570 32778//3570 +f 32786//3570 32782//3570 32783//3570 32787//3570 +f 32788//3570 32786//3570 32787//3570 32789//3570 +f 32786//3570 32788//3570 32790//3570 32791//3570 +f 32782//3570 32786//3570 32791//3570 32784//3570 +f 32792//3570 32788//3570 32789//3570 32793//3570 +f 32794//3570 32792//3570 32793//3570 32795//3570 +f 32792//3570 32794//3570 32796//3570 32797//3570 +f 32788//3570 32792//3570 32797//3570 32790//3570 +f 32798//3570 32794//3570 32795//3570 32799//3570 +f 32800//3570 32798//3570 32799//3570 32801//3570 +f 32798//3570 32800//3570 32802//3570 32803//3570 +f 32794//3570 32798//3570 32803//3570 32796//3570 +f 32804//3570 32800//3570 32801//3570 32805//3570 +f 32806//3570 32804//3570 32805//3570 32807//3570 +f 32804//3570 32806//3570 32808//3570 32809//3570 +f 32800//3570 32804//3570 32809//3570 32802//3570 +f 32810//3570 32806//3570 32807//3570 32811//3570 +f 32812//3570 32810//3570 32811//3570 32813//3570 +f 32810//3570 32812//3570 32814//3570 32815//3570 +f 32806//3570 32810//3570 32815//3570 32808//3570 +f 32816//3570 32812//3570 32813//3570 32817//3570 +f 32818//3570 32816//3570 32817//3570 32819//3570 +f 32816//3570 32818//3570 32820//3570 32821//3570 +f 32812//3570 32816//3570 32821//3570 32814//3570 +f 32822//3570 32818//3570 32819//3570 32823//3570 +f 32824//3570 32822//3570 32823//3570 32825//3570 +f 32822//3570 32824//3570 32826//3570 32827//3570 +f 32818//3570 32822//3570 32827//3570 32820//3570 +f 32828//3570 32824//3570 32825//3570 32829//3570 +f 32830//3570 32828//3570 32829//3570 32831//3570 +f 32828//3570 32830//3570 32832//3570 32833//3570 +f 32824//3570 32828//3570 32833//3570 32826//3570 +f 32834//3570 32830//3570 32831//3570 32835//3570 +f 32836//3570 32834//3570 32835//3570 32837//3570 +f 32834//3570 32836//3570 32838//3570 32839//3570 +f 32830//3570 32834//3570 32839//3570 32832//3570 +f 32840//3570 32836//3570 32837//3570 32841//3570 +f 32842//3570 32840//3570 32841//3570 32843//3570 +f 32840//3570 32842//3570 32844//3570 32845//3570 +f 32836//3570 32840//3570 32845//3570 32838//3570 +f 32846//3570 32842//3570 32843//3570 32847//3570 +f 32848//3570 32846//3570 32847//3570 32849//3570 +f 32846//3570 32848//3570 32850//3570 32851//3570 +f 32842//3570 32846//3570 32851//3570 32844//3570 +f 32852//3570 32848//3570 32849//3570 32853//3570 +f 32854//3570 32852//3570 32853//3570 32855//3570 +f 32852//3570 32854//3570 32856//3570 32857//3570 +f 32848//3570 32852//3570 32857//3570 32850//3570 +f 32858//3570 32854//3570 32855//3570 32859//3570 +f 32860//3570 32858//3570 32859//3570 32861//3570 +f 32858//3570 32860//3570 32862//3570 32863//3570 +f 32854//3570 32858//3570 32863//3570 32856//3570 +f 32864//3570 32860//3570 32861//3570 32865//3570 +f 32866//3570 32864//3570 32865//3570 32867//3570 +f 32864//3570 32866//3570 32868//3570 32869//3570 +f 32860//3570 32864//3570 32869//3570 32862//3570 +f 32870//3570 32866//3570 32867//3570 32871//3570 +f 32872//3570 32870//3570 32871//3570 32873//3570 +f 32870//3570 32872//3570 32874//3570 32875//3570 +f 32866//3570 32870//3570 32875//3570 32868//3570 +f 32876//3570 32872//3570 32873//3570 32877//3570 +f 32878//3570 32876//3570 32877//3570 32879//3570 +f 32876//3570 32878//3570 32880//3570 32881//3570 +f 32872//3570 32876//3570 32881//3570 32874//3570 +f 32882//3570 32878//3570 32879//3570 32883//3570 +f 32884//3570 32882//3570 32883//3570 32885//3570 +f 32882//3570 32884//3570 32886//3570 32887//3570 +f 32878//3570 32882//3570 32887//3570 32880//3570 +f 32888//3570 32884//3570 32885//3570 32889//3570 +f 32890//3570 32888//3570 32889//3570 32891//3570 +f 32888//3570 32890//3570 32892//3570 32893//3570 +f 32884//3570 32888//3570 32893//3570 32886//3570 +f 32894//3570 32890//3570 32891//3570 32895//3570 +f 32896//3570 32894//3570 32895//3570 32897//3570 +f 32894//3570 32896//3570 32898//3570 32899//3570 +f 32890//3570 32894//3570 32899//3570 32892//3570 +f 32900//3570 32896//3570 32897//3570 32901//3570 +f 32902//3570 32900//3570 32901//3570 32903//3570 +f 32900//3570 32902//3570 32904//3570 32905//3570 +f 32896//3570 32900//3570 32905//3570 32898//3570 +f 32906//3570 32902//3570 32903//3570 32907//3570 +f 32908//3570 32906//3570 32907//3570 32909//3570 +f 32906//3570 32908//3570 32910//3570 32911//3570 +f 32902//3570 32906//3570 32911//3570 32904//3570 +f 32912//3570 32908//3570 32909//3570 32913//3570 +f 32914//3570 32912//3570 32913//3570 32915//3570 +f 32912//3570 32914//3570 32916//3570 32917//3570 +f 32908//3570 32912//3570 32917//3570 32910//3570 +f 32918//3570 32914//3570 32915//3570 32919//3570 +f 32920//3570 32918//3570 32919//3570 32921//3570 +f 32918//3570 32920//3570 32922//3570 32923//3570 +f 32914//3570 32918//3570 32923//3570 32916//3570 +f 32924//3570 32920//3570 32921//3570 32925//3570 +f 32926//3570 32924//3570 32925//3570 32927//3570 +f 32924//3570 32926//3570 32928//3570 32929//3570 +f 32920//3570 32924//3570 32929//3570 32922//3570 +f 32930//3570 32926//3570 32927//3570 32931//3570 +f 32932//3570 32930//3570 32931//3570 32933//3570 +f 32930//3570 32932//3570 32934//3570 32935//3570 +f 32926//3570 32930//3570 32935//3570 32928//3570 +f 32936//3570 32932//3570 32933//3570 32937//3570 +f 32938//3570 32936//3570 32937//3570 32939//3570 +f 32936//3570 32938//3570 32940//3570 32941//3570 +f 32932//3570 32936//3570 32941//3570 32934//3570 +f 32942//3570 32938//3570 32939//3570 32943//3570 +f 32944//3570 32942//3570 32943//3570 32945//3570 +f 32942//3570 32944//3570 32946//3570 32947//3570 +f 32938//3570 32942//3570 32947//3570 32940//3570 +f 32948//3570 32944//3570 32945//3570 32949//3570 +f 32950//3570 32948//3570 32949//3570 32951//3570 +f 32948//3570 32950//3570 32952//3570 32953//3570 +f 32944//3570 32948//3570 32953//3570 32946//3570 +f 32954//3570 32950//3570 32951//3570 32955//3570 +f 32766//3570 32954//3570 32955//3570 32767//3570 +f 32954//3570 32766//3570 32773//3570 32956//3570 +f 32950//3570 32954//3570 32956//3570 32952//3570 +f 32957//31502 32639//31376 32640//31377 32958//31503 +f 32768//31504 32957//31502 32958//31503 32770//31505 +f 32957//31502 32768//31504 32767//31506 32959//31507 +f 32639//31376 32957//31502 32959//31507 32641//31378 +f 32960//31508 32645//31382 32646//31383 32961//31509 +f 32775//31510 32960//31508 32961//31509 32777//31511 +f 32960//31508 32775//31510 32770//31505 32958//31503 +f 32645//31382 32960//31508 32958//31503 32640//31377 +f 32962//31512 32649//31386 32650//31387 32963//31513 +f 32781//31514 32962//31512 32963//31513 32783//31515 +f 32962//31512 32781//31514 32777//31511 32961//31509 +f 32649//31386 32962//31512 32961//31509 32646//31383 +f 32964//31516 32653//31390 32654//31391 32965//31517 +f 32787//31518 32964//31516 32965//31517 32789//31519 +f 32964//31516 32787//31518 32783//31515 32963//31513 +f 32653//31390 32964//31516 32963//31513 32650//31387 +f 32966//31520 32657//31394 32658//31395 32967//31521 +f 32793//31522 32966//31520 32967//31521 32795//31523 +f 32966//31520 32793//31522 32789//31519 32965//31517 +f 32657//31394 32966//31520 32965//31517 32654//31391 +f 32968//31524 32661//31398 32662//31399 32969//31525 +f 32799//31526 32968//31524 32969//31525 32801//31527 +f 32968//31524 32799//31526 32795//31523 32967//31521 +f 32661//31398 32968//31524 32967//31521 32658//31395 +f 32970//31528 32665//31402 32666//31403 32971//31529 +f 32805//31530 32970//31528 32971//31529 32807//31531 +f 32970//31528 32805//31530 32801//31527 32969//31525 +f 32665//31402 32970//31528 32969//31525 32662//31399 +f 32972//31532 32669//31406 32670//31407 32973//31533 +f 32811//31534 32972//31532 32973//31533 32813//31535 +f 32972//31532 32811//31534 32807//31531 32971//31529 +f 32669//31406 32972//31532 32971//31529 32666//31403 +f 32974//31536 32673//31410 32674//31411 32975//31537 +f 32817//31538 32974//31536 32975//31537 32819//31539 +f 32974//31536 32817//31538 32813//31535 32973//31533 +f 32673//31410 32974//31536 32973//31533 32670//31407 +f 32976//31540 32677//31414 32678//31415 32977//31541 +f 32823//31542 32976//31540 32977//31541 32825//31543 +f 32976//31540 32823//31542 32819//31539 32975//31537 +f 32677//31414 32976//31540 32975//31537 32674//31411 +f 32978//31544 32681//31418 32682//31419 32979//31545 +f 32829//31546 32978//31544 32979//31545 32831//31547 +f 32978//31544 32829//31546 32825//31543 32977//31541 +f 32681//31418 32978//31544 32977//31541 32678//31415 +f 32980//31548 32685//31422 32686//31423 32981//31549 +f 32835//31550 32980//31548 32981//31549 32837//31551 +f 32980//31548 32835//31550 32831//31547 32979//31545 +f 32685//31422 32980//31548 32979//31545 32682//31419 +f 32982//31552 32689//31426 32690//31427 32983//31553 +f 32841//31554 32982//31552 32983//31553 32843//31555 +f 32982//31552 32841//31554 32837//31551 32981//31549 +f 32689//31426 32982//31552 32981//31549 32686//31423 +f 32984//31556 32693//31430 32694//31431 32985//31557 +f 32847//31558 32984//31556 32985//31557 32849//31559 +f 32984//31556 32847//31558 32843//31555 32983//31553 +f 32693//31430 32984//31556 32983//31553 32690//31427 +f 32986//31560 32697//31434 32698//31435 32987//31561 +f 32853//31562 32986//31560 32987//31561 32855//31563 +f 32986//31560 32853//31562 32849//31559 32985//31557 +f 32697//31434 32986//31560 32985//31557 32694//31431 +f 32988//31564 32701//31438 32702//31439 32989//31565 +f 32859//31566 32988//31564 32989//31565 32861//31567 +f 32988//31564 32859//31566 32855//31563 32987//31561 +f 32701//31438 32988//31564 32987//31561 32698//31435 +f 32990//31568 32705//31442 32706//31443 32991//31569 +f 32865//31570 32990//31568 32991//31569 32867//31571 +f 32990//31568 32865//31570 32861//31567 32989//31565 +f 32705//31442 32990//31568 32989//31565 32702//31439 +f 32992//31572 32709//31446 32710//31447 32993//31573 +f 32871//31574 32992//31572 32993//31573 32873//31575 +f 32992//31572 32871//31574 32867//31571 32991//31569 +f 32709//31446 32992//31572 32991//31569 32706//31443 +f 32994//31576 32713//31450 32714//31451 32995//31577 +f 32877//31578 32994//31576 32995//31577 32879//31579 +f 32994//31576 32877//31578 32873//31575 32993//31573 +f 32713//31450 32994//31576 32993//31573 32710//31447 +f 32996//31580 32717//31454 32718//31455 32997//31581 +f 32883//31582 32996//31580 32997//31581 32998//31583 +f 32996//31580 32883//31582 32879//31579 32995//31577 +f 32717//31454 32996//31580 32995//31577 32714//31451 +f 32999//31584 32721//31458 32722//31459 33000//31585 +f 32889//31586 32999//31584 33000//31585 32891//31587 +f 32999//31584 32889//31586 32998//31583 32997//31581 +f 32721//31458 32999//31584 32997//31581 32718//31455 +f 33001//31588 32725//31462 32726//31463 33002//31589 +f 32895//31590 33001//31588 33002//31589 32897//31591 +f 33001//31588 32895//31590 32891//31587 33000//31585 +f 32725//31462 33001//31588 33000//31585 32722//31459 +f 33003//31592 32729//31466 32730//31467 33004//31593 +f 32901//31594 33003//31592 33004//31593 32903//31595 +f 33003//31592 32901//31594 32897//31591 33002//31589 +f 32729//31466 33003//31592 33002//31589 32726//31463 +f 33005//31596 32733//31470 32734//31471 33006//31597 +f 32907//31598 33005//31596 33006//31597 32909//31599 +f 33005//31596 32907//31598 32903//31595 33004//31593 +f 32733//31470 33005//31596 33004//31593 32730//31467 +f 33007//31600 32737//31474 32738//31475 33008//31601 +f 32913//31602 33007//31600 33008//31601 32915//31603 +f 33007//31600 32913//31602 32909//31599 33006//31597 +f 32737//31474 33007//31600 33006//31597 32734//31471 +f 33009//31604 32741//31478 32742//31479 33010//31605 +f 32919//31606 33009//31604 33010//31605 32921//31607 +f 33009//31604 32919//31606 32915//31603 33008//31601 +f 32741//31478 33009//31604 33008//31601 32738//31475 +f 33011//31608 32745//31482 32746//31483 33012//31609 +f 32925//31610 33011//31608 33012//31609 32927//31611 +f 33011//31608 32925//31610 32921//31607 33010//31605 +f 32745//31482 33011//31608 33010//31605 32742//31479 +f 33013//31612 32749//31486 32750//31487 33014//31613 +f 32931//31614 33013//31612 33014//31613 32933//31615 +f 33013//31612 32931//31614 32927//31611 33012//31609 +f 32749//31486 33013//31612 33012//31609 32746//31483 +f 33015//31616 32753//31490 32754//31491 33016//31617 +f 32937//31618 33015//31616 33016//31617 32939//31619 +f 33015//31616 32937//31618 32933//31615 33014//31613 +f 32753//31490 33015//31616 33014//31613 32750//31487 +f 33017//31620 32757//31494 32758//31495 33018//31621 +f 32943//31622 33017//31620 33018//31621 32945//31623 +f 33017//31620 32943//31622 32939//31619 33016//31617 +f 32757//31494 33017//31620 33016//31617 32754//31491 +f 33019//31624 32761//31498 32762//31499 33020//31625 +f 32949//31626 33019//31624 33020//31625 32951//31627 +f 33019//31624 32949//31626 32945//31623 33018//31621 +f 32761//31498 33019//31624 33018//31621 32758//31495 +f 33021//31628 32764//31501 32641//31378 32959//31507 +f 32955//31629 33021//31628 32959//31507 32767//31506 +f 33021//31628 32955//31629 32951//31627 33020//31625 +f 32764//31501 33021//31628 33020//31625 32762//31499 +f 33022//31630 33023//31631 32773//3570 32772//3570 +f 33024//31632 33022//31630 32772//3570 32771//3570 +f 33022//31630 33024//31632 33025//31633 33026//31634 +f 33023//31631 33022//31630 33026//31634 33027//31635 +f 33028//31636 33024//31632 32771//3570 32779//3570 +f 33029//31637 33028//31636 32779//3570 32778//3570 +f 33028//31636 33029//31637 33030//31638 33031//31639 +f 33024//31632 33028//31636 33031//31639 33025//31633 +f 33032//31640 33029//31637 32778//3570 32785//3570 +f 33033//31641 33032//31640 32785//3570 32784//3570 +f 33032//31640 33033//31641 33034//31642 33035//31643 +f 33029//31637 33032//31640 33035//31643 33030//31638 +f 33036//31644 33033//31641 32784//3570 32791//3570 +f 33037//31645 33036//31644 32791//3570 32790//3570 +f 33036//31644 33037//31645 33038//31646 33039//31647 +f 33033//31641 33036//31644 33039//31647 33034//31642 +f 33040//31648 33037//31645 32790//3570 32797//3570 +f 33041//31649 33040//31648 32797//3570 32796//3570 +f 33040//31648 33041//31649 33042//31650 33043//31651 +f 33037//31645 33040//31648 33043//31651 33038//31646 +f 33044//31652 33041//31649 32796//3570 32803//3570 +f 33045//31653 33044//31652 32803//3570 32802//3570 +f 33044//31652 33045//31653 33046//31654 33047//31655 +f 33041//31649 33044//31652 33047//31655 33042//31650 +f 33048//31656 33045//31653 32802//3570 32809//3570 +f 33049//31657 33048//31656 32809//3570 32808//3570 +f 33048//31656 33049//31657 33050//31658 33051//31659 +f 33045//31653 33048//31656 33051//31659 33046//31654 +f 33052//31660 33049//31657 32808//3570 32815//3570 +f 33053//31661 33052//31660 32815//3570 32814//3570 +f 33052//31660 33053//31661 33054//31662 33055//31663 +f 33049//31657 33052//31660 33055//31663 33050//31658 +f 33056//31664 33053//31661 32814//3570 32821//3570 +f 33057//31665 33056//31664 32821//3570 32820//3570 +f 33056//31664 33057//31665 33058//31666 33059//31667 +f 33053//31661 33056//31664 33059//31667 33054//31662 +f 33060//31668 33057//31665 32820//3570 32827//3570 +f 33061//31669 33060//31668 32827//3570 32826//3570 +f 33060//31668 33061//31669 33062//31670 33063//31671 +f 33057//31665 33060//31668 33063//31671 33058//31666 +f 33064//31672 33061//31669 32826//3570 32833//3570 +f 33065//31673 33064//31672 32833//3570 32832//3570 +f 33064//31672 33065//31673 33066//31674 33067//31675 +f 33061//31669 33064//31672 33067//31675 33062//31670 +f 33068//31676 33065//31673 32832//3570 32839//3570 +f 33069//31677 33068//31676 32839//3570 32838//3570 +f 33068//31676 33069//31677 33070//31678 33071//31679 +f 33065//31673 33068//31676 33071//31679 33066//31674 +f 33072//31680 33069//31677 32838//3570 32845//3570 +f 33073//31681 33072//31680 32845//3570 32844//3570 +f 33072//31680 33073//31681 33074//31682 33075//31683 +f 33069//31677 33072//31680 33075//31683 33070//31678 +f 33076//31684 33073//31681 32844//3570 32851//3570 +f 33077//31685 33076//31684 32851//3570 32850//3570 +f 33076//31684 33077//31685 33078//31686 33079//31687 +f 33073//31681 33076//31684 33079//31687 33074//31682 +f 33080//31688 33077//31685 32850//3570 32857//3570 +f 33081//31689 33080//31688 32857//3570 32856//3570 +f 33080//31688 33081//31689 33082//31690 33083//31691 +f 33077//31685 33080//31688 33083//31691 33078//31686 +f 33084//31692 33081//31689 32856//3570 32863//3570 +f 33085//31693 33084//31692 32863//3570 32862//3570 +f 33084//31692 33085//31693 33086//31694 33087//31695 +f 33081//31689 33084//31692 33087//31695 33082//31690 +f 33088//31696 33085//31693 32862//3570 32869//3570 +f 33089//31697 33088//31696 32869//3570 32868//3570 +f 33088//31696 33089//31697 33090//31698 33091//31699 +f 33085//31693 33088//31696 33091//31699 33086//31694 +f 33092//31700 33089//31697 32868//3570 32875//3570 +f 33093//31701 33092//31700 32875//3570 32874//3570 +f 33092//31700 33093//31701 33094//31702 33095//31703 +f 33089//31697 33092//31700 33095//31703 33090//31698 +f 33096//31704 33093//31701 32874//3570 32881//3570 +f 33097//31705 33096//31704 32881//3570 32880//3570 +f 33096//31704 33097//31705 33098//31706 33099//31707 +f 33093//31701 33096//31704 33099//31707 33094//31702 +f 33100//31708 33097//31705 32880//3570 32887//3570 +f 33101//31709 33100//31708 32887//3570 32886//3570 +f 33100//31708 33101//31709 33102//31710 33103//31711 +f 33097//31705 33100//31708 33103//31711 33098//31706 +f 33104//31712 33101//31709 32886//3570 32893//3570 +f 33105//31713 33104//31712 32893//3570 32892//3570 +f 33104//31712 33105//31713 33106//31714 33107//31715 +f 33101//31709 33104//31712 33107//31715 33102//31710 +f 33108//31716 33105//31713 32892//3570 32899//3570 +f 33109//31717 33108//31716 32899//3570 32898//3570 +f 33108//31716 33109//31717 33110//31718 33111//31719 +f 33105//31713 33108//31716 33111//31719 33106//31714 +f 33112//31720 33109//31717 32898//3570 32905//3570 +f 33113//31721 33112//31720 32905//3570 32904//3570 +f 33112//31720 33113//31721 33114//31722 33115//31723 +f 33109//31717 33112//31720 33115//31723 33110//31718 +f 33116//31724 33113//31721 32904//3570 32911//3570 +f 33117//31725 33116//31724 32911//3570 32910//3570 +f 33116//31724 33117//31725 33118//31726 33119//31727 +f 33113//31721 33116//31724 33119//31727 33114//31722 +f 33120//31728 33117//31725 32910//3570 32917//3570 +f 33121//31729 33120//31728 32917//3570 32916//3570 +f 33120//31728 33121//31729 33122//31730 33123//31731 +f 33117//31725 33120//31728 33123//31731 33118//31726 +f 33124//31732 33121//31729 32916//3570 32923//3570 +f 33125//31733 33124//31732 32923//3570 32922//3570 +f 33124//31732 33125//31733 33126//31734 33127//31735 +f 33121//31729 33124//31732 33127//31735 33122//31730 +f 33128//31736 33125//31733 32922//3570 32929//3570 +f 33129//31737 33128//31736 32929//3570 32928//3570 +f 33128//31736 33129//31737 33130//31738 33131//31739 +f 33125//31733 33128//31736 33131//31739 33126//31734 +f 33132//31740 33129//31737 32928//3570 32935//3570 +f 33133//31741 33132//31740 32935//3570 32934//3570 +f 33132//31740 33133//31741 33134//31742 33135//31743 +f 33129//31737 33132//31740 33135//31743 33130//31738 +f 33136//31744 33133//31741 32934//3570 32941//3570 +f 33137//31745 33136//31744 32941//3570 32940//3570 +f 33136//31744 33137//31745 33138//31746 33139//31747 +f 33133//31741 33136//31744 33139//31747 33134//31742 +f 33140//31748 33137//31745 32940//3570 32947//3570 +f 33141//31749 33140//31748 32947//3570 32946//3570 +f 33140//31748 33141//31749 33142//31750 33143//31751 +f 33137//31745 33140//31748 33143//31751 33138//31746 +f 33144//31752 33141//31749 32946//3570 32953//3570 +f 33145//31753 33144//31752 32953//3570 32952//3570 +f 33144//31752 33145//31753 33146//31754 33147//31755 +f 33141//31749 33144//31752 33147//31755 33142//31750 +f 33148//31756 33145//31753 32952//3570 32956//3570 +f 33023//31631 33148//31756 32956//3570 32773//3570 +f 33148//31756 33023//31631 33027//31635 33149//31757 +f 33145//31753 33148//31756 33149//31757 33146//31754 +f 33150//31758 33151//31759 33027//31635 33026//31634 +f 33152//31760 33150//31758 33026//31634 33025//31633 +f 33150//31758 33152//31760 33153//31761 33154//31762 +f 33151//31759 33150//31758 33154//31762 33155//31763 +f 33156//31764 33152//31760 33025//31633 33031//31639 +f 33157//31765 33156//31764 33031//31639 33030//31638 +f 33156//31764 33157//31765 33158//31766 33159//31767 +f 33152//31760 33156//31764 33159//31767 33153//31761 +f 33160//31768 33157//31765 33030//31638 33035//31643 +f 33161//31769 33160//31768 33035//31643 33034//31642 +f 33160//31768 33161//31769 33162//31770 33163//31771 +f 33157//31765 33160//31768 33163//31771 33158//31766 +f 33164//31772 33161//31769 33034//31642 33039//31647 +f 33165//31773 33164//31772 33039//31647 33038//31646 +f 33164//31772 33165//31773 33166//31774 33167//31775 +f 33161//31769 33164//31772 33167//31775 33162//31770 +f 33168//31776 33165//31773 33038//31646 33043//31651 +f 33169//31777 33168//31776 33043//31651 33042//31650 +f 33168//31776 33169//31777 33170//31778 33171//31779 +f 33165//31773 33168//31776 33171//31779 33166//31774 +f 33172//31780 33169//31777 33042//31650 33047//31655 +f 33173//31781 33172//31780 33047//31655 33046//31654 +f 33172//31780 33173//31781 33174//31782 33175//31783 +f 33169//31777 33172//31780 33175//31783 33170//31778 +f 33176//31784 33173//31781 33046//31654 33051//31659 +f 33177//31785 33176//31784 33051//31659 33050//31658 +f 33176//31784 33177//31785 33178//31786 33179//31787 +f 33173//31781 33176//31784 33179//31787 33174//31782 +f 33180//31788 33177//31785 33050//31658 33055//31663 +f 33181//31789 33180//31788 33055//31663 33054//31662 +f 33180//31788 33181//31789 33182//31790 33183//31791 +f 33177//31785 33180//31788 33183//31791 33178//31786 +f 33184//31792 33181//31789 33054//31662 33059//31667 +f 33185//31793 33184//31792 33059//31667 33058//31666 +f 33184//31792 33185//31793 33186//31794 33187//31795 +f 33181//31789 33184//31792 33187//31795 33182//31790 +f 33188//31796 33185//31793 33058//31666 33063//31671 +f 33189//31797 33188//31796 33063//31671 33062//31670 +f 33188//31796 33189//31797 33190//31798 33191//31799 +f 33185//31793 33188//31796 33191//31799 33186//31794 +f 33192//31800 33189//31797 33062//31670 33067//31675 +f 33193//31801 33192//31800 33067//31675 33066//31674 +f 33192//31800 33193//31801 33194//31802 33195//31803 +f 33189//31797 33192//31800 33195//31803 33190//31798 +f 33196//31804 33193//31801 33066//31674 33071//31679 +f 33197//31805 33196//31804 33071//31679 33070//31678 +f 33196//31804 33197//31805 33198//31806 33199//31807 +f 33193//31801 33196//31804 33199//31807 33194//31802 +f 33200//31808 33197//31805 33070//31678 33075//31683 +f 33201//31809 33200//31808 33075//31683 33074//31682 +f 33200//31808 33201//31809 33202//31810 33203//31811 +f 33197//31805 33200//31808 33203//31811 33198//31806 +f 33204//31812 33201//31809 33074//31682 33079//31687 +f 33205//31813 33204//31812 33079//31687 33078//31686 +f 33204//31812 33205//31813 33206//31814 33207//31815 +f 33201//31809 33204//31812 33207//31815 33202//31810 +f 33208//31816 33205//31813 33078//31686 33083//31691 +f 33209//31817 33208//31816 33083//31691 33082//31690 +f 33208//31816 33209//31817 33210//31818 33211//31819 +f 33205//31813 33208//31816 33211//31819 33206//31814 +f 33212//31820 33209//31817 33082//31690 33087//31695 +f 33213//31821 33212//31820 33087//31695 33086//31694 +f 33212//31820 33213//31821 33214//31822 33215//31823 +f 33209//31817 33212//31820 33215//31823 33210//31818 +f 33216//31824 33213//31821 33086//31694 33091//31699 +f 33217//31825 33216//31824 33091//31699 33090//31698 +f 33216//31824 33217//31825 33218//31826 33219//31827 +f 33213//31821 33216//31824 33219//31827 33214//31822 +f 33220//31828 33217//31825 33090//31698 33095//31703 +f 33221//31829 33220//31828 33095//31703 33094//31702 +f 33220//31828 33221//31829 33222//31830 33223//31831 +f 33217//31825 33220//31828 33223//31831 33218//31826 +f 33224//31832 33221//31829 33094//31702 33099//31707 +f 33225//31833 33224//31832 33099//31707 33098//31706 +f 33224//31832 33225//31833 33226//31834 33227//31835 +f 33221//31829 33224//31832 33227//31835 33222//31830 +f 33228//31836 33225//31833 33098//31706 33103//31711 +f 33229//31837 33228//31836 33103//31711 33102//31710 +f 33228//31836 33229//31837 33230//31838 33231//31839 +f 33225//31833 33228//31836 33231//31839 33226//31834 +f 33232//31840 33229//31837 33102//31710 33107//31715 +f 33233//31841 33232//31840 33107//31715 33106//31714 +f 33232//31840 33233//31841 33234//31842 33235//31843 +f 33229//31837 33232//31840 33235//31843 33230//31838 +f 33236//31844 33233//31841 33106//31714 33111//31719 +f 33237//31845 33236//31844 33111//31719 33110//31718 +f 33236//31844 33237//31845 33238//31846 33239//31847 +f 33233//31841 33236//31844 33239//31847 33234//31842 +f 33240//31848 33237//31845 33110//31718 33115//31723 +f 33241//31849 33240//31848 33115//31723 33114//31722 +f 33240//31848 33241//31849 33242//31850 33243//31851 +f 33237//31845 33240//31848 33243//31851 33238//31846 +f 33244//31852 33241//31849 33114//31722 33119//31727 +f 33245//31853 33244//31852 33119//31727 33118//31726 +f 33244//31852 33245//31853 33246//31854 33247//31855 +f 33241//31849 33244//31852 33247//31855 33242//31850 +f 33248//31856 33245//31853 33118//31726 33123//31731 +f 33249//31857 33248//31856 33123//31731 33122//31730 +f 33248//31856 33249//31857 33250//31858 33251//31859 +f 33245//31853 33248//31856 33251//31859 33246//31854 +f 33252//31860 33249//31857 33122//31730 33127//31735 +f 33253//31861 33252//31860 33127//31735 33126//31734 +f 33252//31860 33253//31861 33254//31862 33255//31863 +f 33249//31857 33252//31860 33255//31863 33250//31858 +f 33256//31864 33253//31861 33126//31734 33131//31739 +f 33257//31865 33256//31864 33131//31739 33130//31738 +f 33256//31864 33257//31865 33258//31866 33259//31867 +f 33253//31861 33256//31864 33259//31867 33254//31862 +f 33260//31868 33257//31865 33130//31738 33135//31743 +f 33261//31869 33260//31868 33135//31743 33134//31742 +f 33260//31868 33261//31869 33262//31870 33263//31871 +f 33257//31865 33260//31868 33263//31871 33258//31866 +f 33264//31872 33261//31869 33134//31742 33139//31747 +f 33265//31873 33264//31872 33139//31747 33138//31746 +f 33264//31872 33265//31873 33266//31874 33267//31875 +f 33261//31869 33264//31872 33267//31875 33262//31870 +f 33268//31876 33265//31873 33138//31746 33143//31751 +f 33269//31877 33268//31876 33143//31751 33142//31750 +f 33268//31876 33269//31877 33270//31878 33271//31879 +f 33265//31873 33268//31876 33271//31879 33266//31874 +f 33272//31880 33269//31877 33142//31750 33147//31755 +f 33273//31881 33272//31880 33147//31755 33146//31754 +f 33272//31880 33273//31881 33274//31882 33275//31883 +f 33269//31877 33272//31880 33275//31883 33270//31878 +f 33276//31884 33273//31881 33146//31754 33149//31757 +f 33151//31759 33276//31884 33149//31757 33027//31635 +f 33276//31884 33151//31759 33155//31763 33277//31885 +f 33273//31881 33276//31884 33277//31885 33274//31882 +f 33278//31886 33279//31887 33155//31763 33154//31762 +f 33280//31888 33278//31886 33154//31762 33153//31761 +f 33278//31886 33280//31888 33281//30488 33282//30489 +f 33279//31887 33278//31886 33282//30489 33283//30491 +f 33284//31889 33280//31888 33153//31761 33159//31767 +f 33285//31890 33284//31889 33159//31767 33158//31766 +f 33284//31889 33285//31890 33286//30496 33287//30497 +f 33280//31888 33284//31889 33287//30497 33281//30488 +f 33288//31891 33285//31890 33158//31766 33163//31771 +f 33289//31892 33288//31891 33163//31771 33162//31770 +f 33288//31891 33289//31892 33290//30502 33291//30503 +f 33285//31890 33288//31891 33291//30503 33286//30496 +f 33292//31893 33289//31892 33162//31770 33167//31775 +f 33293//31894 33292//31893 33167//31775 33166//31774 +f 33292//31893 33293//31894 33294//30508 33295//30509 +f 33289//31892 33292//31893 33295//30509 33290//30502 +f 33296//31895 33293//31894 33166//31774 33171//31779 +f 33297//31896 33296//31895 33171//31779 33170//31778 +f 33296//31895 33297//31896 33298//30514 33299//30515 +f 33293//31894 33296//31895 33299//30515 33294//30508 +f 33300//31897 33297//31896 33170//31778 33175//31783 +f 33301//31898 33300//31897 33175//31783 33174//31782 +f 33300//31897 33301//31898 33302//30520 33303//30521 +f 33297//31896 33300//31897 33303//30521 33298//30514 +f 33304//31899 33301//31898 33174//31782 33179//31787 +f 33305//31900 33304//31899 33179//31787 33178//31786 +f 33304//31899 33305//31900 33306//30526 33307//30527 +f 33301//31898 33304//31899 33307//30527 33302//30520 +f 33308//31901 33305//31900 33178//31786 33183//31791 +f 33309//31902 33308//31901 33183//31791 33182//31790 +f 33308//31901 33309//31902 33310//30532 33311//30533 +f 33305//31900 33308//31901 33311//30533 33306//30526 +f 33312//31903 33309//31902 33182//31790 33187//31795 +f 33313//31904 33312//31903 33187//31795 33186//31794 +f 33312//31903 33313//31904 33314//30538 33315//30539 +f 33309//31902 33312//31903 33315//30539 33310//30532 +f 33316//31905 33313//31904 33186//31794 33191//31799 +f 33317//31906 33316//31905 33191//31799 33190//31798 +f 33316//31905 33317//31906 33318//30544 33319//30545 +f 33313//31904 33316//31905 33319//30545 33314//30538 +f 33320//31907 33317//31906 33190//31798 33195//31803 +f 33321//31908 33320//31907 33195//31803 33194//31802 +f 33320//31907 33321//31908 33322//30550 33323//30551 +f 33317//31906 33320//31907 33323//30551 33318//30544 +f 33324//31909 33321//31908 33194//31802 33199//31807 +f 33325//31910 33324//31909 33199//31807 33198//31806 +f 33324//31909 33325//31910 33326//30556 33327//30557 +f 33321//31908 33324//31909 33327//30557 33322//30550 +f 33328//31911 33325//31910 33198//31806 33203//31811 +f 33329//31912 33328//31911 33203//31811 33202//31810 +f 33328//31911 33329//31912 33330//30562 33331//30563 +f 33325//31910 33328//31911 33331//30563 33326//30556 +f 33332//31913 33329//31912 33202//31810 33207//31815 +f 33333//31914 33332//31913 33207//31815 33206//31814 +f 33332//31913 33333//31914 33334//30568 33335//30569 +f 33329//31912 33332//31913 33335//30569 33330//30562 +f 33336//31915 33333//31914 33206//31814 33211//31819 +f 33337//31916 33336//31915 33211//31819 33210//31818 +f 33336//31915 33337//31916 33338//30574 33339//30575 +f 33333//31914 33336//31915 33339//30575 33334//30568 +f 33340//31917 33337//31916 33210//31818 33215//31823 +f 33341//31918 33340//31917 33215//31823 33214//31822 +f 33340//31917 33341//31918 33342//30580 33343//30581 +f 33337//31916 33340//31917 33343//30581 33338//30574 +f 33344//31919 33341//31918 33214//31822 33219//31827 +f 33345//31920 33344//31919 33219//31827 33218//31826 +f 33344//31919 33345//31920 33346//30586 33347//30587 +f 33341//31918 33344//31919 33347//30587 33342//30580 +f 33348//31921 33345//31920 33218//31826 33223//31831 +f 33349//31922 33348//31921 33223//31831 33222//31830 +f 33348//31921 33349//31922 33350//30592 33351//30593 +f 33345//31920 33348//31921 33351//30593 33346//30586 +f 33352//31923 33349//31922 33222//31830 33227//31835 +f 33353//31924 33352//31923 33227//31835 33226//31834 +f 33352//31923 33353//31924 33354//30598 33355//30599 +f 33349//31922 33352//31923 33355//30599 33350//30592 +f 33356//31925 33353//31924 33226//31834 33231//31839 +f 33357//31926 33356//31925 33231//31839 33230//31838 +f 33356//31925 33357//31926 33358//30604 33359//30605 +f 33353//31924 33356//31925 33359//30605 33354//30598 +f 33360//31927 33357//31926 33230//31838 33235//31843 +f 33361//31928 33360//31927 33235//31843 33234//31842 +f 33360//31927 33361//31928 33362//30610 33363//30611 +f 33357//31926 33360//31927 33363//30611 33358//30604 +f 33364//31929 33361//31928 33234//31842 33239//31847 +f 33365//31930 33364//31929 33239//31847 33238//31846 +f 33364//31929 33365//31930 33366//30616 33367//30617 +f 33361//31928 33364//31929 33367//30617 33362//30610 +f 33368//31931 33365//31930 33238//31846 33243//31851 +f 33369//31932 33368//31931 33243//31851 33242//31850 +f 33368//31931 33369//31932 33370//30622 33371//30623 +f 33365//31930 33368//31931 33371//30623 33366//30616 +f 33372//31933 33369//31932 33242//31850 33247//31855 +f 33373//31934 33372//31933 33247//31855 33246//31854 +f 33372//31933 33373//31934 33374//30628 33375//30629 +f 33369//31932 33372//31933 33375//30629 33370//30622 +f 33376//31935 33373//31934 33246//31854 33251//31859 +f 33377//31936 33376//31935 33251//31859 33250//31858 +f 33376//31935 33377//31936 33378//8129 33379//30634 +f 33373//31934 33376//31935 33379//30634 33374//30628 +f 33380//31937 33377//31936 33250//31858 33255//31863 +f 33381//31938 33380//31937 33255//31863 33254//31862 +f 33380//31937 33381//31938 33382//8121 33383//8125 +f 33377//31936 33380//31937 33383//8125 33378//8129 +f 33384//31939 33381//31938 33254//31862 33259//31867 +f 33385//31940 33384//31939 33259//31867 33258//31866 +f 33384//31939 33385//31940 33386//8113 33387//8117 +f 33381//31938 33384//31939 33387//8117 33382//8121 +f 33388//31941 33385//31940 33258//31866 33263//31871 +f 33389//31942 33388//31941 33263//31871 33262//31870 +f 33388//31941 33389//31942 33390//30647 33391//8109 +f 33385//31940 33388//31941 33391//8109 33386//8113 +f 33392//31943 33389//31942 33262//31870 33267//31875 +f 33393//31944 33392//31943 33267//31875 33266//31874 +f 33392//31943 33393//31944 33394//30652 33395//30653 +f 33389//31942 33392//31943 33395//30653 33390//30647 +f 33396//31945 33393//31944 33266//31874 33271//31879 +f 33397//31946 33396//31945 33271//31879 33270//31878 +f 33396//31945 33397//31946 33398//30658 33399//30659 +f 33393//31944 33396//31945 33399//30659 33394//30652 +f 33400//31947 33397//31946 33270//31878 33275//31883 +f 33401//31948 33400//31947 33275//31883 33274//31882 +f 33400//31947 33401//31948 33402//30664 33403//30665 +f 33397//31946 33400//31947 33403//30665 33398//30658 +f 33404//31949 33401//31948 33274//31882 33277//31885 +f 33279//31887 33404//31949 33277//31885 33155//31763 +f 33404//31949 33279//31887 33283//30491 33405//30669 +f 33401//31948 33404//31949 33405//30669 33402//30664 +f 33406//31950 33407//31951 33408//31952 33409//31953 +f 33410//31954 33406//31950 33409//31953 33411//31955 +f 33406//31950 33410//31954 33412//31956 33413//31957 +f 33407//31951 33406//31950 33413//31957 33414//31958 +f 33415//31959 33410//31954 33411//31955 33416//31960 +f 33417//31961 33415//31959 33416//31960 33418//31962 +f 33415//31959 33417//31961 33419//31963 33420//31964 +f 33410//31954 33415//31959 33420//31964 33412//31956 +f 33421//31965 33417//31961 33418//31962 33422//31966 +f 33423//31967 33421//31965 33422//31966 33424//31968 +f 33421//31965 33423//31967 33425//31969 33426//31970 +f 33417//31961 33421//31965 33426//31970 33419//31963 +f 33427//31971 33423//31967 33424//31968 33428//31972 +f 33429//31973 33427//31971 33428//31972 33430//31974 +f 33427//31971 33429//31973 33431//31975 33432//31976 +f 33423//31967 33427//31971 33432//31976 33425//31969 +f 33433//31977 33429//31973 33430//31974 33434//31978 +f 33435//31979 33433//31977 33434//31978 33436//31980 +f 33433//31977 33435//31979 33437//31981 33438//31982 +f 33429//31973 33433//31977 33438//31982 33431//31975 +f 33439//31983 33435//31979 33436//31980 33440//31984 +f 33441//31985 33439//31983 33440//31984 33442//31986 +f 33439//31983 33441//31985 33443//31987 33444//31988 +f 33435//31979 33439//31983 33444//31988 33437//31981 +f 33445//31989 33441//31985 33442//31986 33446//31990 +f 33447//31991 33445//31989 33446//31990 33448//31992 +f 33445//31989 33447//31991 33449//31993 33450//31994 +f 33441//31985 33445//31989 33450//31994 33443//31987 +f 33451//31995 33447//31991 33448//31992 33452//31996 +f 33453//31997 33451//31995 33452//31996 33454//31998 +f 33451//31995 33453//31997 33455//31999 33456//32000 +f 33447//31991 33451//31995 33456//32000 33449//31993 +f 33457//32001 33453//31997 33454//31998 33458//32002 +f 33459//32003 33457//32001 33458//32002 33460//32004 +f 33457//32001 33459//32003 33461//32005 33462//32006 +f 33453//31997 33457//32001 33462//32006 33455//31999 +f 33463//32007 33459//32003 33460//32004 33464//32008 +f 33465//32009 33463//32007 33464//32008 33466//32010 +f 33463//32007 33465//32009 33467//32011 33468//32012 +f 33459//32003 33463//32007 33468//32012 33461//32005 +f 33469//32013 33465//32009 33466//32010 33470//32014 +f 33471//32015 33469//32013 33470//32014 33472//32016 +f 33469//32013 33471//32015 33473//32017 33474//32018 +f 33465//32009 33469//32013 33474//32018 33467//32011 +f 33475//32019 33471//32015 33472//32016 33476//32020 +f 33477//32021 33475//32019 33476//32020 33478//32022 +f 33475//32019 33477//32021 33479//32023 33480//32024 +f 33471//32015 33475//32019 33480//32024 33473//32017 +f 33481//32025 33477//32021 33478//32022 33482//32026 +f 33483//32027 33481//32025 33482//32026 33484//32028 +f 33481//32025 33483//32027 33485//32029 33486//32030 +f 33477//32021 33481//32025 33486//32030 33479//32023 +f 33487//32031 33483//32027 33484//32028 33488//32032 +f 33489//32033 33487//32031 33488//32032 33490//32034 +f 33487//32031 33489//32033 33491//32035 33492//32036 +f 33483//32027 33487//32031 33492//32036 33485//32029 +f 33493//32037 33489//32033 33490//32034 33494//32038 +f 33495//32039 33493//32037 33494//32038 33496//32040 +f 33493//32037 33495//32039 33497//32041 33498//32042 +f 33489//32033 33493//32037 33498//32042 33491//32035 +f 33499//32043 33495//32039 33496//32040 33500//32044 +f 33501//32045 33499//32043 33500//32044 33502//32046 +f 33499//32043 33501//32045 33503//32047 33504//32048 +f 33495//32039 33499//32043 33504//32048 33497//32041 +f 33505//32049 33501//32045 33502//32046 33506//32050 +f 33507//32051 33505//32049 33506//32050 33508//32052 +f 33505//32049 33507//32051 33509//32053 33510//32054 +f 33501//32045 33505//32049 33510//32054 33503//32047 +f 33511//32055 33507//32051 33508//32052 33512//32056 +f 33513//32057 33511//32055 33512//32056 33514//32058 +f 33511//32055 33513//32057 33515//32059 33516//32060 +f 33507//32051 33511//32055 33516//32060 33509//32053 +f 33517//32061 33513//32057 33514//32058 33518//32062 +f 33519//32063 33517//32061 33518//32062 33520//32064 +f 33517//32061 33519//32063 33521//32065 33522//32066 +f 33513//32057 33517//32061 33522//32066 33515//32059 +f 33523//32067 33519//32063 33520//32064 33524//32068 +f 33525//32069 33523//32067 33524//32068 33526//32070 +f 33523//32067 33525//32069 33527//32071 33528//32072 +f 33519//32063 33523//32067 33528//32072 33521//32065 +f 33529//32073 33525//32069 33526//32070 33530//32074 +f 33531//32075 33529//32073 33530//32074 33532//32076 +f 33529//32073 33531//32075 33533//32077 33534//32078 +f 33525//32069 33529//32073 33534//32078 33527//32071 +f 33535//32079 33531//32075 33532//32076 33536//32080 +f 33537//32081 33535//32079 33536//32080 33538//32082 +f 33535//32079 33537//32081 33539//32083 33540//32084 +f 33531//32075 33535//32079 33540//32084 33533//32077 +f 33541//32085 33537//32081 33538//32082 33542//32086 +f 33543//32087 33541//32085 33542//32086 33544//32088 +f 33541//32085 33543//32087 33545//32089 33546//32090 +f 33537//32081 33541//32085 33546//32090 33539//32083 +f 33547//32091 33543//32087 33544//32088 33548//32092 +f 33549//32093 33547//32091 33548//32092 33550//32094 +f 33547//32091 33549//32093 33551//32095 33552//32096 +f 33543//32087 33547//32091 33552//32096 33545//32089 +f 33553//32097 33549//32093 33550//32094 33554//32098 +f 33555//32099 33553//32097 33554//32098 33556//32100 +f 33553//32097 33555//32099 33557//32101 33558//32102 +f 33549//32093 33553//32097 33558//32102 33551//32095 +f 33559//32103 33555//32099 33556//32100 33560//32104 +f 33561//32105 33559//32103 33560//32104 33562//32106 +f 33559//32103 33561//32105 33563//32107 33564//32108 +f 33555//32099 33559//32103 33564//32108 33557//32101 +f 33565//32109 33561//32105 33562//32106 33566//32110 +f 33567//32111 33565//32109 33566//32110 33568//32112 +f 33565//32109 33567//32111 33569//32113 33570//32114 +f 33561//32105 33565//32109 33570//32114 33563//32107 +f 33571//32115 33567//32111 33568//32112 33572//32116 +f 33573//32117 33571//32115 33572//32116 33574//32118 +f 33571//32115 33573//32117 33575//32119 33576//32120 +f 33567//32111 33571//32115 33576//32120 33569//32113 +f 33577//32121 33573//32117 33574//32118 33578//32122 +f 33579//32123 33577//32121 33578//32122 33580//32124 +f 33577//32121 33579//32123 33581//32125 33582//32126 +f 33573//32117 33577//32121 33582//32126 33575//32119 +f 33583//32127 33579//32123 33580//32124 33584//32128 +f 33585//32129 33583//32127 33584//32128 33586//32130 +f 33583//32127 33585//32129 33587//32131 33588//32132 +f 33579//32123 33583//32127 33588//32132 33581//32125 +f 33589//32133 33585//32129 33586//32130 33590//32134 +f 33591//32135 33589//32133 33590//32134 33592//32136 +f 33589//32133 33591//32135 33593//32137 33594//32138 +f 33585//32129 33589//32133 33594//32138 33587//32131 +f 33595//32139 33591//32135 33592//32136 33596//32140 +f 33407//31951 33595//32139 33596//32140 33408//31952 +f 33595//32139 33407//31951 33414//31958 33597//32141 +f 33591//32135 33595//32139 33597//32141 33593//32137 +f 33598//32142 33599//32143 33600//32144 33601//32145 +f 33602//32146 33598//32142 33601//32145 33603//32147 +f 33598//32142 33602//32146 33604//32148 33605//32149 +f 33599//32143 33598//32142 33605//32149 33606//32150 +f 33607//32151 33602//32146 33603//32147 33608//32152 +f 33609//32153 33607//32151 33608//32152 33610//32154 +f 33607//32151 33609//32153 33611//32155 33612//32156 +f 33602//32146 33607//32151 33612//32156 33604//32148 +f 33613//32157 33609//32153 33610//32154 33614//32158 +f 33615//32159 33613//32157 33614//32158 33616//32160 +f 33613//32157 33615//32159 33617//32161 33618//32162 +f 33609//32153 33613//32157 33618//32162 33611//32155 +f 33619//32163 33615//32159 33616//32160 33620//32164 +f 33621//32165 33619//32163 33620//32164 33622//32166 +f 33619//32163 33621//32165 33623//32167 33624//32168 +f 33615//32159 33619//32163 33624//32168 33617//32161 +f 33625//32169 33621//32165 33622//32166 33626//32170 +f 33627//32171 33625//32169 33626//32170 33628//32172 +f 33625//32169 33627//32171 33629//32173 33630//32174 +f 33621//32165 33625//32169 33630//32174 33623//32167 +f 33631//32175 33627//32171 33628//32172 33632//32176 +f 33633//32177 33631//32175 33632//32176 33634//32178 +f 33631//32175 33633//32177 33635//32179 33636//32180 +f 33627//32171 33631//32175 33636//32180 33629//32173 +f 33637//32181 33633//32177 33634//32178 33638//32182 +f 33639//32183 33637//32181 33638//32182 33640//32184 +f 33637//32181 33639//32183 33641//32185 33642//32186 +f 33633//32177 33637//32181 33642//32186 33635//32179 +f 33643//32187 33639//32183 33640//32184 33644//32188 +f 33645//32189 33643//32187 33644//32188 33646//32190 +f 33643//32187 33645//32189 33647//32191 33648//32192 +f 33639//32183 33643//32187 33648//32192 33641//32185 +f 33649//32193 33645//32189 33646//32190 33650//32194 +f 33651//32195 33649//32193 33650//32194 33652//32196 +f 33649//32193 33651//32195 33653//32197 33654//32198 +f 33645//32189 33649//32193 33654//32198 33647//32191 +f 33655//32199 33651//32195 33652//32196 33656//32200 +f 33657//32201 33655//32199 33656//32200 33658//32202 +f 33655//32199 33657//32201 33659//32203 33660//32204 +f 33651//32195 33655//32199 33660//32204 33653//32197 +f 33661//32205 33657//32201 33658//32202 33662//32206 +f 33663//32207 33661//32205 33662//32206 33664//32208 +f 33661//32205 33663//32207 33665//32209 33666//32210 +f 33657//32201 33661//32205 33666//32210 33659//32203 +f 33667//32211 33663//32207 33664//32208 33668//32212 +f 33669//32213 33667//32211 33668//32212 33670//32214 +f 33667//32211 33669//32213 33671//32215 33672//32216 +f 33663//32207 33667//32211 33672//32216 33665//32209 +f 33673//32217 33669//32213 33670//32214 33674//32218 +f 33675//32219 33673//32217 33674//32218 33676//32220 +f 33673//32217 33675//32219 33677//32221 33678//32222 +f 33669//32213 33673//32217 33678//32222 33671//32215 +f 33679//32223 33675//32219 33676//32220 33680//32224 +f 33681//32225 33679//32223 33680//32224 33682//32226 +f 33679//32223 33681//32225 33683//32227 33684//32228 +f 33675//32219 33679//32223 33684//32228 33677//32221 +f 33685//32229 33681//32225 33682//32226 33686//32230 +f 33687//32231 33685//32229 33686//32230 33688//32232 +f 33685//32229 33687//32231 33689//32233 33690//32234 +f 33681//32225 33685//32229 33690//32234 33683//32227 +f 33691//32235 33687//32231 33688//32232 33692//32236 +f 33693//32237 33691//32235 33692//32236 33694//32238 +f 33691//32235 33693//32237 33695//32239 33696//32240 +f 33687//32231 33691//32235 33696//32240 33689//32233 +f 33697//32241 33693//32237 33694//32238 33698//32242 +f 33699//32243 33697//32241 33698//32242 33700//32244 +f 33697//32241 33699//32243 33701//32245 33702//32246 +f 33693//32237 33697//32241 33702//32246 33695//32239 +f 33703//32247 33699//32243 33700//32244 33704//32248 +f 33705//32249 33703//32247 33704//32248 33706//32250 +f 33703//32247 33705//32249 33707//32251 33708//32252 +f 33699//32243 33703//32247 33708//32252 33701//32245 +f 33709//32253 33705//32249 33706//32250 33710//32254 +f 33711//32255 33709//32253 33710//32254 33712//32256 +f 33709//32253 33711//32255 33713//32257 33714//32258 +f 33705//32249 33709//32253 33714//32258 33707//32251 +f 33715//32259 33711//32255 33712//32256 33716//32260 +f 33717//32261 33715//32259 33716//32260 33718//32262 +f 33715//32259 33717//32261 33719//32263 33720//32264 +f 33711//32255 33715//32259 33720//32264 33713//32257 +f 33721//32265 33717//32261 33718//32262 33722//32266 +f 33723//32267 33721//32265 33722//32266 33724//32268 +f 33721//32265 33723//32267 33725//32269 33726//32270 +f 33717//32261 33721//32265 33726//32270 33719//32263 +f 33727//32271 33723//32267 33724//32268 33728//32272 +f 33729//32273 33727//32271 33728//32272 33730//32274 +f 33727//32271 33729//32273 33731//32275 33732//32276 +f 33723//32267 33727//32271 33732//32276 33725//32269 +f 33733//32277 33729//32273 33730//32274 33734//32278 +f 33735//32279 33733//32277 33734//32278 33736//32280 +f 33733//32277 33735//32279 33737//32281 33738//32282 +f 33729//32273 33733//32277 33738//32282 33731//32275 +f 33739//32283 33735//32279 33736//32280 33740//32284 +f 33741//32285 33739//32283 33740//32284 33742//32286 +f 33739//32283 33741//32285 33743//32287 33744//32288 +f 33735//32279 33739//32283 33744//32288 33737//32281 +f 33745//32289 33741//32285 33742//32286 33746//32290 +f 33747//32291 33745//32289 33746//32290 33748//32292 +f 33745//32289 33747//32291 33749//32293 33750//32294 +f 33741//32285 33745//32289 33750//32294 33743//32287 +f 33751//32295 33747//32291 33748//32292 33752//32296 +f 33753//32297 33751//32295 33752//32296 33754//32298 +f 33751//32295 33753//32297 33755//32299 33756//32300 +f 33747//32291 33751//32295 33756//32300 33749//32293 +f 33757//32301 33753//32297 33754//32298 33758//32302 +f 33759//32303 33757//32301 33758//32302 33760//32304 +f 33757//32301 33759//32303 33761//32305 33762//32306 +f 33753//32297 33757//32301 33762//32306 33755//32299 +f 33763//32307 33759//32303 33760//32304 33764//32308 +f 33765//32309 33763//32307 33764//32308 33766//32310 +f 33763//32307 33765//32309 33767//32311 33768//32312 +f 33759//32303 33763//32307 33768//32312 33761//32305 +f 33769//32313 33765//32309 33766//32310 33770//32314 +f 33771//32315 33769//32313 33770//32314 33772//32316 +f 33769//32313 33771//32315 33773//32317 33774//32318 +f 33765//32309 33769//32313 33774//32318 33767//32311 +f 33775//32319 33771//32315 33772//32316 33776//32320 +f 33777//32321 33775//32319 33776//32320 33778//32322 +f 33775//32319 33777//32321 33779//32323 33780//32324 +f 33771//32315 33775//32319 33780//32324 33773//32317 +f 33781//32325 33777//32321 33778//32322 33782//32326 +f 33783//32327 33781//32325 33782//32326 33784//32328 +f 33781//32325 33783//32327 33785//32329 33786//32330 +f 33777//32321 33781//32325 33786//32330 33779//32323 +f 33787//32331 33783//32327 33784//32328 33788//32332 +f 33599//32143 33787//32331 33788//32332 33600//32144 +f 33787//32331 33599//32143 33606//32150 33789//32333 +f 33783//32327 33787//32331 33789//32333 33785//32329 +f 33790//32334 33791//32335 33606//32150 33605//32149 +f 33792//32336 33790//32334 33605//32149 33604//32148 +f 33790//32334 33792//32336 33793//32337 33794//32338 +f 33791//32335 33790//32334 33794//32338 33795//32339 +f 33796//32340 33792//32336 33604//32148 33612//32156 +f 33797//32341 33796//32340 33612//32156 33611//32155 +f 33796//32340 33797//32341 33798//32342 33799//32343 +f 33792//32336 33796//32340 33799//32343 33793//32337 +f 33800//32344 33797//32341 33611//32155 33618//32162 +f 33801//32345 33800//32344 33618//32162 33617//32161 +f 33800//32344 33801//32345 33802//32346 33803//32347 +f 33797//32341 33800//32344 33803//32347 33798//32342 +f 33804//32348 33801//32345 33617//32161 33624//32168 +f 33805//32349 33804//32348 33624//32168 33623//32167 +f 33804//32348 33805//32349 33806//32350 33807//32351 +f 33801//32345 33804//32348 33807//32351 33802//32346 +f 33808//32352 33805//32349 33623//32167 33630//32174 +f 33809//32353 33808//32352 33630//32174 33629//32173 +f 33808//32352 33809//32353 33810//32354 33811//32355 +f 33805//32349 33808//32352 33811//32355 33806//32350 +f 33812//32356 33809//32353 33629//32173 33636//32180 +f 33813//32357 33812//32356 33636//32180 33635//32179 +f 33812//32356 33813//32357 33814//32358 33815//32359 +f 33809//32353 33812//32356 33815//32359 33810//32354 +f 33816//32360 33813//32357 33635//32179 33642//32186 +f 33817//32361 33816//32360 33642//32186 33641//32185 +f 33816//32360 33817//32361 33818//32362 33819//32363 +f 33813//32357 33816//32360 33819//32363 33814//32358 +f 33820//32364 33817//32361 33641//32185 33648//32192 +f 33821//32365 33820//32364 33648//32192 33647//32191 +f 33820//32364 33821//32365 33822//32366 33823//32367 +f 33817//32361 33820//32364 33823//32367 33818//32362 +f 33824//32368 33821//32365 33647//32191 33654//32198 +f 33825//32369 33824//32368 33654//32198 33653//32197 +f 33824//32368 33825//32369 33826//32370 33827//32371 +f 33821//32365 33824//32368 33827//32371 33822//32366 +f 33828//32372 33825//32369 33653//32197 33660//32204 +f 33829//32373 33828//32372 33660//32204 33659//32203 +f 33828//32372 33829//32373 33830//32374 33831//32375 +f 33825//32369 33828//32372 33831//32375 33826//32370 +f 33832//32376 33829//32373 33659//32203 33666//32210 +f 33833//32377 33832//32376 33666//32210 33665//32209 +f 33832//32376 33833//32377 33834//32378 33835//32379 +f 33829//32373 33832//32376 33835//32379 33830//32374 +f 33836//32380 33833//32377 33665//32209 33672//32216 +f 33837//32381 33836//32380 33672//32216 33671//32215 +f 33836//32380 33837//32381 33838//32382 33839//32383 +f 33833//32377 33836//32380 33839//32383 33834//32378 +f 33840//32384 33837//32381 33671//32215 33678//32222 +f 33841//32385 33840//32384 33678//32222 33677//32221 +f 33840//32384 33841//32385 33842//32386 33843//32387 +f 33837//32381 33840//32384 33843//32387 33838//32382 +f 33844//32388 33841//32385 33677//32221 33684//32228 +f 33845//32389 33844//32388 33684//32228 33683//32227 +f 33844//32388 33845//32389 33846//32390 33847//32391 +f 33841//32385 33844//32388 33847//32391 33842//32386 +f 33848//32392 33845//32389 33683//32227 33690//32234 +f 33849//32393 33848//32392 33690//32234 33689//32233 +f 33848//32392 33849//32393 33850//32394 33851//32395 +f 33845//32389 33848//32392 33851//32395 33846//32390 +f 33852//32396 33849//32393 33689//32233 33696//32240 +f 33853//32397 33852//32396 33696//32240 33695//32239 +f 33852//32396 33853//32397 33854//32398 33855//32399 +f 33849//32393 33852//32396 33855//32399 33850//32394 +f 33856//32400 33853//32397 33695//32239 33702//32246 +f 33857//32401 33856//32400 33702//32246 33701//32245 +f 33856//32400 33857//32401 33858//32402 33859//32403 +f 33853//32397 33856//32400 33859//32403 33854//32398 +f 33860//32404 33857//32401 33701//32245 33708//32252 +f 33861//32405 33860//32404 33708//32252 33707//32251 +f 33860//32404 33861//32405 33862//32406 33863//32407 +f 33857//32401 33860//32404 33863//32407 33858//32402 +f 33864//32408 33861//32405 33707//32251 33714//32258 +f 33865//32409 33864//32408 33714//32258 33713//32257 +f 33864//32408 33865//32409 33866//32410 33867//32411 +f 33861//32405 33864//32408 33867//32411 33862//32406 +f 33868//32412 33865//32409 33713//32257 33720//32264 +f 33869//32413 33868//32412 33720//32264 33719//32263 +f 33868//32412 33869//32413 33870//32414 33871//32415 +f 33865//32409 33868//32412 33871//32415 33866//32410 +f 33872//32416 33869//32413 33719//32263 33726//32270 +f 33873//32417 33872//32416 33726//32270 33725//32269 +f 33872//32416 33873//32417 33874//32418 33875//32419 +f 33869//32413 33872//32416 33875//32419 33870//32414 +f 33876//32420 33873//32417 33725//32269 33732//32276 +f 33877//32421 33876//32420 33732//32276 33731//32275 +f 33876//32420 33877//32421 33878//32422 33879//32423 +f 33873//32417 33876//32420 33879//32423 33874//32418 +f 33880//32424 33877//32421 33731//32275 33738//32282 +f 33881//32425 33880//32424 33738//32282 33737//32281 +f 33880//32424 33881//32425 33882//32426 33883//32427 +f 33877//32421 33880//32424 33883//32427 33878//32422 +f 33884//32428 33881//32425 33737//32281 33744//32288 +f 33885//32429 33884//32428 33744//32288 33743//32287 +f 33884//32428 33885//32429 33886//32430 33887//32431 +f 33881//32425 33884//32428 33887//32431 33882//32426 +f 33888//32432 33885//32429 33743//32287 33750//32294 +f 33889//32433 33888//32432 33750//32294 33749//32293 +f 33888//32432 33889//32433 33890//32434 33891//32435 +f 33885//32429 33888//32432 33891//32435 33886//32430 +f 33892//32436 33889//32433 33749//32293 33756//32300 +f 33893//32437 33892//32436 33756//32300 33755//32299 +f 33892//32436 33893//32437 33894//32438 33895//32439 +f 33889//32433 33892//32436 33895//32439 33890//32434 +f 33896//32440 33893//32437 33755//32299 33762//32306 +f 33897//32441 33896//32440 33762//32306 33761//32305 +f 33896//32440 33897//32441 33898//32442 33899//32443 +f 33893//32437 33896//32440 33899//32443 33894//32438 +f 33900//32444 33897//32441 33761//32305 33768//32312 +f 33901//32445 33900//32444 33768//32312 33767//32311 +f 33900//32444 33901//32445 33902//32446 33903//32447 +f 33897//32441 33900//32444 33903//32447 33898//32442 +f 33904//32448 33901//32445 33767//32311 33774//32318 +f 33905//32449 33904//32448 33774//32318 33773//32317 +f 33904//32448 33905//32449 33906//32450 33907//32451 +f 33901//32445 33904//32448 33907//32451 33902//32446 +f 33908//32452 33905//32449 33773//32317 33780//32324 +f 33909//32453 33908//32452 33780//32324 33779//32323 +f 33908//32452 33909//32453 33910//32454 33911//32455 +f 33905//32449 33908//32452 33911//32455 33906//32450 +f 33912//32456 33909//32453 33779//32323 33786//32330 +f 33913//32457 33912//32456 33786//32330 33785//32329 +f 33912//32456 33913//32457 33914//32458 33915//32459 +f 33909//32453 33912//32456 33915//32459 33910//32454 +f 33916//32460 33913//32457 33785//32329 33789//32333 +f 33791//32335 33916//32460 33789//32333 33606//32150 +f 33916//32460 33791//32335 33795//32339 33917//32461 +f 33913//32457 33916//32460 33917//32461 33914//32458 +f 33918//32462 33919//32463 33920//32464 33921//32465 +f 33922//32466 33918//32462 33921//32465 33923//32467 +f 33924//32468 33922//32466 33923//32467 33925//32469 +f 33926//32470 33924//32468 33925//32469 33927//32471 +f 33928//32472 33926//32470 33927//32471 33929//32473 +f 33930//32474 33928//32472 33929//32473 33931//32475 +f 33932//32476 33930//32474 33931//32475 33933//32477 +f 33934//32478 33932//32476 33933//32477 33935//32479 +f 33936//32480 33934//32478 33935//32479 33937//32481 +f 33938//32482 33936//32480 33937//32481 33939//32483 +f 33940//32484 33938//32482 33939//32483 33941//32485 +f 33942//32486 33940//32484 33941//32485 33943//32487 +f 33944//32488 33942//32486 33943//32487 33945//32489 +f 33946//32490 33944//32488 33945//32489 33947//32491 +f 33948//32492 33946//32490 33947//32491 33949//32493 +f 33950//32494 33948//32492 33949//32493 33951//32495 +f 33952//32496 33950//32494 33951//32495 33953//32497 +f 33954//32498 33952//32496 33953//32497 33955//32499 +f 33956//32500 33954//32498 33955//32499 33957//32501 +f 33958//32502 33956//32500 33957//32501 33959//32503 +f 33960//32504 33958//32502 33959//32503 33961//32505 +f 33962//32506 33960//32504 33961//32505 33963//32507 +f 33964//32508 33962//32506 33963//32507 33965//32509 +f 33966//32510 33964//32508 33965//32509 33967//32511 +f 33968//32512 33966//32510 33967//32511 33969//32513 +f 33970//32514 33968//32512 33969//32513 33971//32515 +f 33972//32516 33970//32514 33971//32515 33973//32517 +f 33974//32518 33972//32516 33973//32517 33975//32519 +f 33976//32520 33974//32518 33975//32519 33977//32521 +f 33978//32522 33976//32520 33977//32521 33979//32523 +f 33980//32524 33978//32522 33979//32523 33981//32525 +f 33982//32526 33980//32524 33981//32525 33983//32527 +f 33984//32528 33982//32526 33983//32527 33985//32529 +f 33986//32530 33984//32528 33985//32529 33987//32531 +f 33988//32532 33986//32530 33987//32531 33989//32533 +f 33990//32534 33988//32532 33989//32533 33991//32535 +f 33992//32536 33990//32534 33991//32535 33993//32537 +f 33994//32538 33992//32536 33993//32537 33995//32539 +f 33996//32540 33994//32538 33995//32539 33997//32541 +f 33998//32542 33996//32540 33997//32541 33999//32543 +f 34000//32544 33998//32542 33999//32543 34001//32545 +f 34002//32546 34000//32544 34001//32545 34003//32547 +f 34004//32548 34002//32546 34003//32547 34005//32549 +f 34006//32550 34004//32548 34005//32549 34007//32551 +f 34008//32552 34006//32550 34007//32551 34009//32553 +f 34010//32554 34008//32552 34009//32553 34011//32555 +f 34012//32556 34010//32554 34011//32555 34013//32557 +f 34014//32558 34012//32556 34013//32557 34015//32559 +f 34016//32560 34014//32558 34015//32559 34017//32561 +f 34018//32562 34016//32560 34017//32561 34019//32563 +f 34020//32564 34018//32562 34019//32563 34021//32565 +f 34022//32566 34020//32564 34021//32565 34023//32567 +f 34024//32568 34022//32566 34023//32567 34025//32569 +f 34026//32570 34024//32568 34025//32569 34027//32571 +f 34028//32572 34026//32570 34027//32571 34029//32573 +f 34030//32574 34028//32572 34029//32573 34031//32575 +f 34032//32576 34030//32574 34031//32575 34033//32577 +f 34034//32578 34032//32576 34033//32577 34035//32579 +f 34036//32580 34034//32578 34035//32579 34037//32581 +f 34038//32582 34036//32580 34037//32581 34039//32583 +f 34040//32584 34038//32582 34039//32583 34041//32585 +f 34042//32586 34040//32584 34041//32585 34043//32587 +f 34044//32588 34042//32586 34043//32587 34045//32589 +f 33919//32463 34044//32588 34045//32589 33920//32464 +f 34046//32590 33413//31957 33412//31956 34047//32591 +f 34048//32592 34046//32590 34047//32591 34049//32593 +f 34046//32590 34048//32592 34050//32594 34051//32595 +f 33413//31957 34046//32590 34051//32595 33414//31958 +f 34052//32596 33420//31964 33419//31963 34053//32597 +f 34054//32598 34052//32596 34053//32597 34055//32599 +f 34052//32596 34054//32598 34049//32593 34047//32591 +f 33420//31964 34052//32596 34047//32591 33412//31956 +f 34056//32600 33426//31970 33425//31969 34057//32601 +f 34058//32602 34056//32600 34057//32601 34059//32603 +f 34056//32600 34058//32602 34055//32599 34053//32597 +f 33426//31970 34056//32600 34053//32597 33419//31963 +f 34060//32604 33432//31976 33431//31975 34061//32605 +f 34062//32606 34060//32604 34061//32605 34063//32607 +f 34060//32604 34062//32606 34059//32603 34057//32601 +f 33432//31976 34060//32604 34057//32601 33425//31969 +f 34064//32608 33438//31982 33437//31981 34065//32609 +f 34066//32610 34064//32608 34065//32609 34067//32611 +f 34064//32608 34066//32610 34063//32607 34061//32605 +f 33438//31982 34064//32608 34061//32605 33431//31975 +f 34068//32612 33444//31988 33443//31987 34069//32613 +f 34070//32614 34068//32612 34069//32613 34071//32615 +f 34068//32612 34070//32614 34067//32611 34065//32609 +f 33444//31988 34068//32612 34065//32609 33437//31981 +f 34072//32616 33450//31994 33449//31993 34073//32617 +f 34074//32618 34072//32616 34073//32617 34075//32619 +f 34072//32616 34074//32618 34071//32615 34069//32613 +f 33450//31994 34072//32616 34069//32613 33443//31987 +f 34076//32620 33456//32000 33455//31999 34077//32621 +f 34078//32622 34076//32620 34077//32621 34079//32623 +f 34076//32620 34078//32622 34075//32619 34073//32617 +f 33456//32000 34076//32620 34073//32617 33449//31993 +f 34080//32624 33462//32006 33461//32005 34081//32625 +f 34082//32626 34080//32624 34081//32625 34083//32627 +f 34080//32624 34082//32626 34079//32623 34077//32621 +f 33462//32006 34080//32624 34077//32621 33455//31999 +f 34084//32628 33468//32012 33467//32011 34085//32629 +f 34086//32630 34084//32628 34085//32629 34087//32631 +f 34084//32628 34086//32630 34083//32627 34081//32625 +f 33468//32012 34084//32628 34081//32625 33461//32005 +f 34088//32632 33474//32018 33473//32017 34089//32633 +f 34090//32634 34088//32632 34089//32633 34091//32635 +f 34088//32632 34090//32634 34087//32631 34085//32629 +f 33474//32018 34088//32632 34085//32629 33467//32011 +f 34092//32636 33480//32024 33479//32023 34093//32637 +f 34094//32638 34092//32636 34093//32637 34095//32639 +f 34092//32636 34094//32638 34091//32635 34089//32633 +f 33480//32024 34092//32636 34089//32633 33473//32017 +f 34096//32640 33486//32030 33485//32029 34097//32641 +f 34098//32642 34096//32640 34097//32641 34099//32643 +f 34096//32640 34098//32642 34095//32639 34093//32637 +f 33486//32030 34096//32640 34093//32637 33479//32023 +f 34100//32644 33492//32036 33491//32035 34101//32645 +f 34102//32646 34100//32644 34101//32645 34103//32647 +f 34100//32644 34102//32646 34099//32643 34097//32641 +f 33492//32036 34100//32644 34097//32641 33485//32029 +f 34104//32648 33498//32042 33497//32041 34105//32649 +f 34106//32650 34104//32648 34105//32649 34107//32651 +f 34104//32648 34106//32650 34103//32647 34101//32645 +f 33498//32042 34104//32648 34101//32645 33491//32035 +f 34108//32652 33504//32048 33503//32047 34109//32653 +f 34110//32654 34108//32652 34109//32653 34111//32655 +f 34108//32652 34110//32654 34107//32651 34105//32649 +f 33504//32048 34108//32652 34105//32649 33497//32041 +f 34112//32656 33510//32054 33509//32053 34113//32657 +f 34114//32658 34112//32656 34113//32657 34115//32659 +f 34112//32656 34114//32658 34111//32655 34109//32653 +f 33510//32054 34112//32656 34109//32653 33503//32047 +f 34116//32660 33516//32060 33515//32059 34117//32661 +f 34118//32662 34116//32660 34117//32661 34119//32663 +f 34116//32660 34118//32662 34115//32659 34113//32657 +f 33516//32060 34116//32660 34113//32657 33509//32053 +f 34120//32664 33522//32066 33521//32065 34121//32665 +f 34122//32666 34120//32664 34121//32665 34123//32667 +f 34120//32664 34122//32666 34119//32663 34117//32661 +f 33522//32066 34120//32664 34117//32661 33515//32059 +f 34124//32668 33528//32072 33527//32071 34125//32669 +f 34126//32670 34124//32668 34125//32669 34127//32671 +f 34124//32668 34126//32670 34123//32667 34121//32665 +f 33528//32072 34124//32668 34121//32665 33521//32065 +f 34128//32672 33534//32078 33533//32077 34129//32673 +f 34130//32674 34128//32672 34129//32673 34131//32675 +f 34128//32672 34130//32674 34127//32671 34125//32669 +f 33534//32078 34128//32672 34125//32669 33527//32071 +f 34132//32676 33540//32084 33539//32083 34133//32677 +f 34134//32678 34132//32676 34133//32677 34135//32679 +f 34132//32676 34134//32678 34131//32675 34129//32673 +f 33540//32084 34132//32676 34129//32673 33533//32077 +f 34136//32680 33546//32090 33545//32089 34137//32681 +f 34138//32682 34136//32680 34137//32681 34139//32683 +f 34136//32680 34138//32682 34135//32679 34133//32677 +f 33546//32090 34136//32680 34133//32677 33539//32083 +f 34140//32684 33552//32096 33551//32095 34141//32685 +f 34142//32686 34140//32684 34141//32685 34143//32687 +f 34140//32684 34142//32686 34139//32683 34137//32681 +f 33552//32096 34140//32684 34137//32681 33545//32089 +f 34144//32688 33558//32102 33557//32101 34145//32689 +f 34146//32690 34144//32688 34145//32689 34147//32691 +f 34144//32688 34146//32690 34143//32687 34141//32685 +f 33558//32102 34144//32688 34141//32685 33551//32095 +f 34148//32692 33564//32108 33563//32107 34149//32693 +f 34150//32694 34148//32692 34149//32693 34151//32695 +f 34148//32692 34150//32694 34147//32691 34145//32689 +f 33564//32108 34148//32692 34145//32689 33557//32101 +f 34152//32696 33570//32114 33569//32113 34153//32697 +f 34154//32698 34152//32696 34153//32697 34155//32699 +f 34152//32696 34154//32698 34151//32695 34149//32693 +f 33570//32114 34152//32696 34149//32693 33563//32107 +f 34156//32700 33576//32120 33575//32119 34157//32701 +f 34158//32702 34156//32700 34157//32701 34159//32703 +f 34156//32700 34158//32702 34155//32699 34153//32697 +f 33576//32120 34156//32700 34153//32697 33569//32113 +f 34160//32704 33582//32126 33581//32125 34161//32705 +f 34162//32706 34160//32704 34161//32705 34163//32707 +f 34160//32704 34162//32706 34159//32703 34157//32701 +f 33582//32126 34160//32704 34157//32701 33575//32119 +f 34164//32708 33588//32132 33587//32131 34165//32709 +f 34166//32710 34164//32708 34165//32709 34167//32711 +f 34164//32708 34166//32710 34163//32707 34161//32705 +f 33588//32132 34164//32708 34161//32705 33581//32125 +f 34168//32712 33594//32138 33593//32137 34169//32713 +f 34170//32714 34168//32712 34169//32713 34171//32715 +f 34168//32712 34170//32714 34167//32711 34165//32709 +f 33594//32138 34168//32712 34165//32709 33587//32131 +f 34172//32716 33597//32141 33414//31958 34051//32595 +f 34173//32717 34172//32716 34051//32595 34050//32594 +f 34172//32716 34173//32717 34171//32715 34169//32713 +f 33597//32141 34172//32716 34169//32713 33593//32137 +f 34174//32718 34048//32592 34049//32593 34175//32719 +f 33601//32145 34174//32718 34175//32719 33603//32147 +f 34174//32718 33601//32145 33600//32144 34176//32720 +f 34048//32592 34174//32718 34176//32720 34050//32594 +f 34177//32721 34054//32598 34055//32599 34178//32722 +f 33608//32152 34177//32721 34178//32722 33610//32154 +f 34177//32721 33608//32152 33603//32147 34175//32719 +f 34054//32598 34177//32721 34175//32719 34049//32593 +f 34179//32723 34058//32602 34059//32603 34180//32724 +f 33614//32158 34179//32723 34180//32724 33616//32160 +f 34179//32723 33614//32158 33610//32154 34178//32722 +f 34058//32602 34179//32723 34178//32722 34055//32599 +f 34181//32725 34062//32606 34063//32607 34182//32726 +f 33620//32164 34181//32725 34182//32726 33622//32166 +f 34181//32725 33620//32164 33616//32160 34180//32724 +f 34062//32606 34181//32725 34180//32724 34059//32603 +f 34183//32727 34066//32610 34067//32611 34184//32728 +f 33626//32170 34183//32727 34184//32728 33628//32172 +f 34183//32727 33626//32170 33622//32166 34182//32726 +f 34066//32610 34183//32727 34182//32726 34063//32607 +f 34185//32729 34070//32614 34071//32615 34186//32730 +f 33632//32176 34185//32729 34186//32730 33634//32178 +f 34185//32729 33632//32176 33628//32172 34184//32728 +f 34070//32614 34185//32729 34184//32728 34067//32611 +f 34187//32731 34074//32618 34075//32619 34188//32732 +f 33638//32182 34187//32731 34188//32732 33640//32184 +f 34187//32731 33638//32182 33634//32178 34186//32730 +f 34074//32618 34187//32731 34186//32730 34071//32615 +f 34189//32733 34078//32622 34079//32623 34190//32734 +f 33644//32188 34189//32733 34190//32734 33646//32190 +f 34189//32733 33644//32188 33640//32184 34188//32732 +f 34078//32622 34189//32733 34188//32732 34075//32619 +f 34191//32735 34082//32626 34083//32627 34192//32736 +f 33650//32194 34191//32735 34192//32736 33652//32196 +f 34191//32735 33650//32194 33646//32190 34190//32734 +f 34082//32626 34191//32735 34190//32734 34079//32623 +f 34193//32737 34086//32630 34087//32631 34194//32738 +f 33656//32200 34193//32737 34194//32738 33658//32202 +f 34193//32737 33656//32200 33652//32196 34192//32736 +f 34086//32630 34193//32737 34192//32736 34083//32627 +f 34195//32739 34090//32634 34091//32635 34196//32740 +f 33662//32206 34195//32739 34196//32740 33664//32208 +f 34195//32739 33662//32206 33658//32202 34194//32738 +f 34090//32634 34195//32739 34194//32738 34087//32631 +f 34197//32741 34094//32638 34095//32639 34198//32742 +f 33668//32212 34197//32741 34198//32742 33670//32214 +f 34197//32741 33668//32212 33664//32208 34196//32740 +f 34094//32638 34197//32741 34196//32740 34091//32635 +f 34199//32743 34098//32642 34099//32643 34200//32744 +f 33674//32218 34199//32743 34200//32744 33676//32220 +f 34199//32743 33674//32218 33670//32214 34198//32742 +f 34098//32642 34199//32743 34198//32742 34095//32639 +f 34201//32745 34102//32646 34103//32647 34202//32746 +f 33680//32224 34201//32745 34202//32746 33682//32226 +f 34201//32745 33680//32224 33676//32220 34200//32744 +f 34102//32646 34201//32745 34200//32744 34099//32643 +f 34203//32747 34106//32650 34107//32651 34204//32748 +f 33686//32230 34203//32747 34204//32748 33688//32232 +f 34203//32747 33686//32230 33682//32226 34202//32746 +f 34106//32650 34203//32747 34202//32746 34103//32647 +f 34205//32749 34110//32654 34111//32655 34206//32750 +f 33692//32236 34205//32749 34206//32750 33694//32238 +f 34205//32749 33692//32236 33688//32232 34204//32748 +f 34110//32654 34205//32749 34204//32748 34107//32651 +f 34207//32751 34114//32658 34115//32659 34208//32752 +f 33698//32242 34207//32751 34208//32752 33700//32244 +f 34207//32751 33698//32242 33694//32238 34206//32750 +f 34114//32658 34207//32751 34206//32750 34111//32655 +f 34209//32753 34118//32662 34119//32663 34210//32754 +f 33704//32248 34209//32753 34210//32754 33706//32250 +f 34209//32753 33704//32248 33700//32244 34208//32752 +f 34118//32662 34209//32753 34208//32752 34115//32659 +f 34211//32755 34122//32666 34123//32667 34212//32756 +f 33710//32254 34211//32755 34212//32756 33712//32256 +f 34211//32755 33710//32254 33706//32250 34210//32754 +f 34122//32666 34211//32755 34210//32754 34119//32663 +f 34213//32757 34126//32670 34127//32671 34214//32758 +f 33716//32260 34213//32757 34214//32758 33718//32262 +f 34213//32757 33716//32260 33712//32256 34212//32756 +f 34126//32670 34213//32757 34212//32756 34123//32667 +f 34215//32759 34130//32674 34131//32675 34216//32760 +f 33722//32266 34215//32759 34216//32760 33724//32268 +f 34215//32759 33722//32266 33718//32262 34214//32758 +f 34130//32674 34215//32759 34214//32758 34127//32671 +f 34217//32761 34134//32678 34135//32679 34218//32762 +f 33728//32272 34217//32761 34218//32762 33730//32274 +f 34217//32761 33728//32272 33724//32268 34216//32760 +f 34134//32678 34217//32761 34216//32760 34131//32675 +f 34219//32763 34138//32682 34139//32683 34220//32764 +f 33734//32278 34219//32763 34220//32764 33736//32280 +f 34219//32763 33734//32278 33730//32274 34218//32762 +f 34138//32682 34219//32763 34218//32762 34135//32679 +f 34221//32765 34142//32686 34143//32687 34222//32766 +f 33740//32284 34221//32765 34222//32766 33742//32286 +f 34221//32765 33740//32284 33736//32280 34220//32764 +f 34142//32686 34221//32765 34220//32764 34139//32683 +f 34223//32767 34146//32690 34147//32691 34224//32768 +f 33746//32290 34223//32767 34224//32768 33748//32292 +f 34223//32767 33746//32290 33742//32286 34222//32766 +f 34146//32690 34223//32767 34222//32766 34143//32687 +f 34225//32769 34150//32694 34151//32695 34226//32770 +f 33752//32296 34225//32769 34226//32770 33754//32298 +f 34225//32769 33752//32296 33748//32292 34224//32768 +f 34150//32694 34225//32769 34224//32768 34147//32691 +f 34227//32771 34154//32698 34155//32699 34228//32772 +f 33758//32302 34227//32771 34228//32772 33760//32304 +f 34227//32771 33758//32302 33754//32298 34226//32770 +f 34154//32698 34227//32771 34226//32770 34151//32695 +f 34229//32773 34158//32702 34159//32703 34230//32774 +f 33764//32308 34229//32773 34230//32774 33766//32310 +f 34229//32773 33764//32308 33760//32304 34228//32772 +f 34158//32702 34229//32773 34228//32772 34155//32699 +f 34231//32775 34162//32706 34163//32707 34232//32776 +f 33770//32314 34231//32775 34232//32776 33772//32316 +f 34231//32775 33770//32314 33766//32310 34230//32774 +f 34162//32706 34231//32775 34230//32774 34159//32703 +f 34233//32777 34166//32710 34167//32711 34234//32778 +f 33776//32320 34233//32777 34234//32778 33778//32322 +f 34233//32777 33776//32320 33772//32316 34232//32776 +f 34166//32710 34233//32777 34232//32776 34163//32707 +f 34235//32779 34170//32714 34171//32715 34236//32780 +f 33782//32326 34235//32779 34236//32780 33784//32328 +f 34235//32779 33782//32326 33778//32322 34234//32778 +f 34170//32714 34235//32779 34234//32778 34167//32711 +f 34237//32781 34173//32717 34050//32594 34176//32720 +f 33788//32332 34237//32781 34176//32720 33600//32144 +f 34237//32781 33788//32332 33784//32328 34236//32780 +f 34173//32717 34237//32781 34236//32780 34171//32715 +f 34238//32782 34239//30489 34240//30488 34241//32783 +f 33409//31953 34238//32782 34241//32783 33411//31955 +f 34238//32782 33409//31953 33408//31952 34242//32784 +f 34239//30489 34238//32782 34242//32784 34243//30491 +f 34244//32785 34245//30497 34246//30496 34247//32786 +f 33416//31960 34244//32785 34247//32786 33418//31962 +f 34244//32785 33416//31960 33411//31955 34241//32783 +f 34245//30497 34244//32785 34241//32783 34240//30488 +f 34248//32787 34249//30503 34250//30502 34251//32788 +f 33422//31966 34248//32787 34251//32788 33424//31968 +f 34248//32787 33422//31966 33418//31962 34247//32786 +f 34249//30503 34248//32787 34247//32786 34246//30496 +f 34252//32789 34253//30509 34254//30508 34255//32790 +f 33428//31972 34252//32789 34255//32790 33430//31974 +f 34252//32789 33428//31972 33424//31968 34251//32788 +f 34253//30509 34252//32789 34251//32788 34250//30502 +f 34256//32791 34257//30515 34258//30514 34259//32792 +f 33434//31978 34256//32791 34259//32792 33436//31980 +f 34256//32791 33434//31978 33430//31974 34255//32790 +f 34257//30515 34256//32791 34255//32790 34254//30508 +f 34260//32793 34261//30521 34262//30520 34263//32794 +f 33440//31984 34260//32793 34263//32794 33442//31986 +f 34260//32793 33440//31984 33436//31980 34259//32792 +f 34261//30521 34260//32793 34259//32792 34258//30514 +f 34264//32795 34265//30527 34266//30526 34267//32796 +f 33446//31990 34264//32795 34267//32796 33448//31992 +f 34264//32795 33446//31990 33442//31986 34263//32794 +f 34265//30527 34264//32795 34263//32794 34262//30520 +f 34268//32797 34269//30533 34270//30532 34271//32798 +f 33452//31996 34268//32797 34271//32798 33454//31998 +f 34268//32797 33452//31996 33448//31992 34267//32796 +f 34269//30533 34268//32797 34267//32796 34266//30526 +f 34272//32799 34273//30539 34274//30538 34275//32800 +f 33458//32002 34272//32799 34275//32800 33460//32004 +f 34272//32799 33458//32002 33454//31998 34271//32798 +f 34273//30539 34272//32799 34271//32798 34270//30532 +f 34276//32801 34277//30545 34278//30544 34279//32802 +f 33464//32008 34276//32801 34279//32802 33466//32010 +f 34276//32801 33464//32008 33460//32004 34275//32800 +f 34277//30545 34276//32801 34275//32800 34274//30538 +f 34280//32803 34281//30551 34282//30550 34283//32804 +f 33470//32014 34280//32803 34283//32804 33472//32016 +f 34280//32803 33470//32014 33466//32010 34279//32802 +f 34281//30551 34280//32803 34279//32802 34278//30544 +f 34284//32805 34285//30557 34286//30556 34287//32806 +f 33476//32020 34284//32805 34287//32806 33478//32022 +f 34284//32805 33476//32020 33472//32016 34283//32804 +f 34285//30557 34284//32805 34283//32804 34282//30550 +f 34288//32807 34289//30563 34290//30562 34291//32808 +f 33482//32026 34288//32807 34291//32808 33484//32028 +f 34288//32807 33482//32026 33478//32022 34287//32806 +f 34289//30563 34288//32807 34287//32806 34286//30556 +f 34292//32809 34293//30569 34294//30568 34295//32810 +f 33488//32032 34292//32809 34295//32810 33490//32034 +f 34292//32809 33488//32032 33484//32028 34291//32808 +f 34293//30569 34292//32809 34291//32808 34290//30562 +f 34296//32811 34297//30575 34298//30574 34299//32812 +f 33494//32038 34296//32811 34299//32812 33496//32040 +f 34296//32811 33494//32038 33490//32034 34295//32810 +f 34297//30575 34296//32811 34295//32810 34294//30568 +f 34300//32813 34301//30581 34302//30580 34303//32814 +f 33500//32044 34300//32813 34303//32814 33502//32046 +f 34300//32813 33500//32044 33496//32040 34299//32812 +f 34301//30581 34300//32813 34299//32812 34298//30574 +f 34304//32815 34305//30587 34306//30586 34307//32816 +f 33506//32050 34304//32815 34307//32816 33508//32052 +f 34304//32815 33506//32050 33502//32046 34303//32814 +f 34305//30587 34304//32815 34303//32814 34302//30580 +f 34308//32817 34309//30593 34310//30592 34311//32818 +f 33512//32056 34308//32817 34311//32818 33514//32058 +f 34308//32817 33512//32056 33508//32052 34307//32816 +f 34309//30593 34308//32817 34307//32816 34306//30586 +f 34312//32819 34313//30599 34314//30598 34315//32820 +f 33518//32062 34312//32819 34315//32820 33520//32064 +f 34312//32819 33518//32062 33514//32058 34311//32818 +f 34313//30599 34312//32819 34311//32818 34310//30592 +f 34316//32821 34317//30605 34318//30604 34319//32822 +f 33524//32068 34316//32821 34319//32822 33526//32070 +f 34316//32821 33524//32068 33520//32064 34315//32820 +f 34317//30605 34316//32821 34315//32820 34314//30598 +f 34320//32823 34321//30611 34322//30610 34323//32824 +f 33530//32074 34320//32823 34323//32824 33532//32076 +f 34320//32823 33530//32074 33526//32070 34319//32822 +f 34321//30611 34320//32823 34319//32822 34318//30604 +f 34324//32825 34325//30617 34326//30616 34327//32826 +f 33536//32080 34324//32825 34327//32826 33538//32082 +f 34324//32825 33536//32080 33532//32076 34323//32824 +f 34325//30617 34324//32825 34323//32824 34322//30610 +f 34328//32827 34329//30623 34330//30622 34331//32828 +f 33542//32086 34328//32827 34331//32828 33544//32088 +f 34328//32827 33542//32086 33538//32082 34327//32826 +f 34329//30623 34328//32827 34327//32826 34326//30616 +f 34332//32829 34333//30629 34334//30628 34335//32830 +f 33548//32092 34332//32829 34335//32830 33550//32094 +f 34332//32829 33548//32092 33544//32088 34331//32828 +f 34333//30629 34332//32829 34331//32828 34330//30622 +f 34336//32831 34337//30634 34338//8129 34339//32832 +f 33554//32098 34336//32831 34339//32832 33556//32100 +f 34336//32831 33554//32098 33550//32094 34335//32830 +f 34337//30634 34336//32831 34335//32830 34334//30628 +f 34340//32833 34341//8125 34342//8121 34343//32834 +f 33560//32104 34340//32833 34343//32834 33562//32106 +f 34340//32833 33560//32104 33556//32100 34339//32832 +f 34341//8125 34340//32833 34339//32832 34338//8129 +f 34344//32835 34345//8117 34346//8113 34347//32836 +f 33566//32110 34344//32835 34347//32836 33568//32112 +f 34344//32835 33566//32110 33562//32106 34343//32834 +f 34345//8117 34344//32835 34343//32834 34342//8121 +f 34348//32837 34349//8109 34350//30647 34351//32838 +f 33572//32116 34348//32837 34351//32838 33574//32118 +f 34348//32837 33572//32116 33568//32112 34347//32836 +f 34349//8109 34348//32837 34347//32836 34346//8113 +f 34352//32839 34353//30653 34354//30652 34355//32840 +f 33578//32122 34352//32839 34355//32840 33580//32124 +f 34352//32839 33578//32122 33574//32118 34351//32838 +f 34353//30653 34352//32839 34351//32838 34350//30647 +f 34356//32841 34357//30659 34358//30658 34359//32842 +f 33584//32128 34356//32841 34359//32842 33586//32130 +f 34356//32841 33584//32128 33580//32124 34355//32840 +f 34357//30659 34356//32841 34355//32840 34354//30652 +f 34360//32843 34361//30665 34362//30664 34363//32844 +f 33590//32134 34360//32843 34363//32844 33592//32136 +f 34360//32843 33590//32134 33586//32130 34359//32842 +f 34361//30665 34360//32843 34359//32842 34358//30658 +f 34364//32845 34365//30669 34243//30491 34242//32784 +f 33596//32140 34364//32845 34242//32784 33408//31952 +f 34364//32845 33596//32140 33592//32136 34363//32844 +f 34365//30669 34364//32845 34363//32844 34362//30664 +f 34366//30489 33282//30489 33281//30488 34367//30488 +f 34239//30489 34366//30489 34367//30488 34240//30488 +f 34366//30489 34239//30489 34243//30491 34368//30491 +f 33282//30489 34366//30489 34368//30491 33283//30491 +f 34369//30497 33287//30497 33286//30496 34370//30496 +f 34245//30497 34369//30497 34370//30496 34246//30496 +f 34369//30497 34245//30497 34240//30488 34367//30488 +f 33287//30497 34369//30497 34367//30488 33281//30488 +f 34371//30503 33291//30503 33290//30502 34372//30502 +f 34249//30503 34371//30503 34372//30502 34250//30502 +f 34371//30503 34249//30503 34246//30496 34370//30496 +f 33291//30503 34371//30503 34370//30496 33286//30496 +f 34373//30509 33295//30509 33294//30508 34374//30508 +f 34253//30509 34373//30509 34374//30508 34254//30508 +f 34373//30509 34253//30509 34250//30502 34372//30502 +f 33295//30509 34373//30509 34372//30502 33290//30502 +f 34375//30515 33299//30515 33298//30514 34376//30514 +f 34257//30515 34375//30515 34376//30514 34258//30514 +f 34375//30515 34257//30515 34254//30508 34374//30508 +f 33299//30515 34375//30515 34374//30508 33294//30508 +f 34377//30521 33303//30521 33302//30520 34378//30520 +f 34261//30521 34377//30521 34378//30520 34262//30520 +f 34377//30521 34261//30521 34258//30514 34376//30514 +f 33303//30521 34377//30521 34376//30514 33298//30514 +f 34379//30527 33307//30527 33306//30526 34380//30526 +f 34265//30527 34379//30527 34380//30526 34266//30526 +f 34379//30527 34265//30527 34262//30520 34378//30520 +f 33307//30527 34379//30527 34378//30520 33302//30520 +f 34381//30533 33311//30533 33310//30532 34382//30532 +f 34269//30533 34381//30533 34382//30532 34270//30532 +f 34381//30533 34269//30533 34266//30526 34380//30526 +f 33311//30533 34381//30533 34380//30526 33306//30526 +f 34383//30539 33315//30539 33314//30538 34384//30538 +f 34273//30539 34383//30539 34384//30538 34274//30538 +f 34383//30539 34273//30539 34270//30532 34382//30532 +f 33315//30539 34383//30539 34382//30532 33310//30532 +f 34385//30545 33319//30545 33318//30544 34386//30544 +f 34277//30545 34385//30545 34386//30544 34278//30544 +f 34385//30545 34277//30545 34274//30538 34384//30538 +f 33319//30545 34385//30545 34384//30538 33314//30538 +f 34387//30551 33323//30551 33322//30550 34388//30550 +f 34281//30551 34387//30551 34388//30550 34282//30550 +f 34387//30551 34281//30551 34278//30544 34386//30544 +f 33323//30551 34387//30551 34386//30544 33318//30544 +f 34389//30557 33327//30557 33326//30556 34390//30556 +f 34285//30557 34389//30557 34390//30556 34286//30556 +f 34389//30557 34285//30557 34282//30550 34388//30550 +f 33327//30557 34389//30557 34388//30550 33322//30550 +f 34391//30563 33331//30563 33330//30562 34392//30562 +f 34289//30563 34391//30563 34392//30562 34290//30562 +f 34391//30563 34289//30563 34286//30556 34390//30556 +f 33331//30563 34391//30563 34390//30556 33326//30556 +f 34393//30569 33335//30569 33334//30568 34394//30568 +f 34293//30569 34393//30569 34394//30568 34294//30568 +f 34393//30569 34293//30569 34290//30562 34392//30562 +f 33335//30569 34393//30569 34392//30562 33330//30562 +f 34395//30575 33339//30575 33338//30574 34396//30574 +f 34297//30575 34395//30575 34396//30574 34298//30574 +f 34395//30575 34297//30575 34294//30568 34394//30568 +f 33339//30575 34395//30575 34394//30568 33334//30568 +f 34397//30581 33343//30581 33342//30580 34398//30580 +f 34301//30581 34397//30581 34398//30580 34302//30580 +f 34397//30581 34301//30581 34298//30574 34396//30574 +f 33343//30581 34397//30581 34396//30574 33338//30574 +f 34399//30587 33347//30587 33346//30586 34400//30586 +f 34305//30587 34399//30587 34400//30586 34306//30586 +f 34399//30587 34305//30587 34302//30580 34398//30580 +f 33347//30587 34399//30587 34398//30580 33342//30580 +f 34401//30593 33351//30593 33350//30592 34402//30592 +f 34309//30593 34401//30593 34402//30592 34310//30592 +f 34401//30593 34309//30593 34306//30586 34400//30586 +f 33351//30593 34401//30593 34400//30586 33346//30586 +f 34403//30599 33355//30599 33354//30598 34404//30598 +f 34313//30599 34403//30599 34404//30598 34314//30598 +f 34403//30599 34313//30599 34310//30592 34402//30592 +f 33355//30599 34403//30599 34402//30592 33350//30592 +f 34405//30605 33359//30605 33358//30604 34406//30604 +f 34317//30605 34405//30605 34406//30604 34318//30604 +f 34405//30605 34317//30605 34314//30598 34404//30598 +f 33359//30605 34405//30605 34404//30598 33354//30598 +f 34407//30611 33363//30611 33362//30610 34408//30610 +f 34321//30611 34407//30611 34408//30610 34322//30610 +f 34407//30611 34321//30611 34318//30604 34406//30604 +f 33363//30611 34407//30611 34406//30604 33358//30604 +f 34409//30617 33367//30617 33366//30616 34410//30616 +f 34325//30617 34409//30617 34410//30616 34326//30616 +f 34409//30617 34325//30617 34322//30610 34408//30610 +f 33367//30617 34409//30617 34408//30610 33362//30610 +f 34411//30623 33371//30623 33370//30622 34412//30622 +f 34329//30623 34411//30623 34412//30622 34330//30622 +f 34411//30623 34329//30623 34326//30616 34410//30616 +f 33371//30623 34411//30623 34410//30616 33366//30616 +f 34413//30629 33375//30629 33374//30628 34414//30628 +f 34333//30629 34413//30629 34414//30628 34334//30628 +f 34413//30629 34333//30629 34330//30622 34412//30622 +f 33375//30629 34413//30629 34412//30622 33370//30622 +f 34415//30634 33379//30634 33378//8129 34416//8129 +f 34337//30634 34415//30634 34416//8129 34338//8129 +f 34415//30634 34337//30634 34334//30628 34414//30628 +f 33379//30634 34415//30634 34414//30628 33374//30628 +f 34417//8125 33383//8125 33382//8121 34418//8121 +f 34341//8125 34417//8125 34418//8121 34342//8121 +f 34417//8125 34341//8125 34338//8129 34416//8129 +f 33383//8125 34417//8125 34416//8129 33378//8129 +f 34419//8117 33387//8117 33386//8113 34420//8113 +f 34345//8117 34419//8117 34420//8113 34346//8113 +f 34419//8117 34345//8117 34342//8121 34418//8121 +f 33387//8117 34419//8117 34418//8121 33382//8121 +f 34421//8109 33391//8109 33390//30647 34422//30647 +f 34349//8109 34421//8109 34422//30647 34350//30647 +f 34421//8109 34349//8109 34346//8113 34420//8113 +f 33391//8109 34421//8109 34420//8113 33386//8113 +f 34423//30653 33395//30653 33394//30652 34424//30652 +f 34353//30653 34423//30653 34424//30652 34354//30652 +f 34423//30653 34353//30653 34350//30647 34422//30647 +f 33395//30653 34423//30653 34422//30647 33390//30647 +f 34425//30659 33399//30659 33398//30658 34426//30658 +f 34357//30659 34425//30659 34426//30658 34358//30658 +f 34425//30659 34357//30659 34354//30652 34424//30652 +f 33399//30659 34425//30659 34424//30652 33394//30652 +f 34427//30665 33403//30665 33402//30664 34428//30664 +f 34361//30665 34427//30665 34428//30664 34362//30664 +f 34427//30665 34361//30665 34358//30658 34426//30658 +f 33403//30665 34427//30665 34426//30658 33398//30658 +f 34429//30669 33405//30669 33283//30491 34368//30491 +f 34365//30669 34429//30669 34368//30491 34243//30491 +f 34429//30669 34365//30669 34362//30664 34428//30664 +f 33405//30669 34429//30669 34428//30664 33402//30664 +f 34430//32846 33794//32338 33793//32337 34431//32847 +f 33921//32465 34430//32846 34431//32847 33923//32467 +f 34430//32846 33921//32465 33920//32464 34432//32848 +f 33794//32338 34430//32846 34432//32848 33795//32339 +f 34433//32849 33799//32343 33798//32342 34434//32850 +f 33925//32469 34433//32849 34434//32850 33927//32471 +f 34433//32849 33925//32469 33923//32467 34431//32847 +f 33799//32343 34433//32849 34431//32847 33793//32337 +f 34435//32851 33803//32347 33802//32346 34436//32852 +f 33929//32473 34435//32851 34436//32852 33931//32475 +f 34435//32851 33929//32473 33927//32471 34434//32850 +f 33803//32347 34435//32851 34434//32850 33798//32342 +f 34437//32853 33807//32351 33806//32350 34438//32854 +f 33933//32477 34437//32853 34438//32854 33935//32479 +f 34437//32853 33933//32477 33931//32475 34436//32852 +f 33807//32351 34437//32853 34436//32852 33802//32346 +f 34439//32855 33811//32355 33810//32354 34440//32856 +f 33937//32481 34439//32855 34440//32856 33939//32483 +f 34439//32855 33937//32481 33935//32479 34438//32854 +f 33811//32355 34439//32855 34438//32854 33806//32350 +f 34441//32857 33815//32359 33814//32358 34442//32858 +f 33941//32485 34441//32857 34442//32858 33943//32487 +f 34441//32857 33941//32485 33939//32483 34440//32856 +f 33815//32359 34441//32857 34440//32856 33810//32354 +f 34443//32859 33819//32363 33818//32362 34444//32860 +f 33945//32489 34443//32859 34444//32860 33947//32491 +f 34443//32859 33945//32489 33943//32487 34442//32858 +f 33819//32363 34443//32859 34442//32858 33814//32358 +f 34445//32861 33823//32367 33822//32366 34446//32862 +f 33949//32493 34445//32861 34446//32862 33951//32495 +f 34445//32861 33949//32493 33947//32491 34444//32860 +f 33823//32367 34445//32861 34444//32860 33818//32362 +f 34447//32863 33827//32371 33826//32370 34448//32864 +f 33953//32497 34447//32863 34448//32864 33955//32499 +f 34447//32863 33953//32497 33951//32495 34446//32862 +f 33827//32371 34447//32863 34446//32862 33822//32366 +f 34449//32865 33831//32375 33830//32374 34450//32866 +f 33957//32501 34449//32865 34450//32866 33959//32503 +f 34449//32865 33957//32501 33955//32499 34448//32864 +f 33831//32375 34449//32865 34448//32864 33826//32370 +f 34451//32867 33835//32379 33834//32378 34452//32868 +f 33961//32505 34451//32867 34452//32868 33963//32507 +f 34451//32867 33961//32505 33959//32503 34450//32866 +f 33835//32379 34451//32867 34450//32866 33830//32374 +f 34453//32869 33839//32383 33838//32382 34454//32870 +f 33965//32509 34453//32869 34454//32870 33967//32511 +f 34453//32869 33965//32509 33963//32507 34452//32868 +f 33839//32383 34453//32869 34452//32868 33834//32378 +f 34455//32871 33843//32387 33842//32386 34456//32872 +f 33969//32513 34455//32871 34456//32872 33971//32515 +f 34455//32871 33969//32513 33967//32511 34454//32870 +f 33843//32387 34455//32871 34454//32870 33838//32382 +f 34457//32873 33847//32391 33846//32390 34458//32874 +f 33973//32517 34457//32873 34458//32874 33975//32519 +f 34457//32873 33973//32517 33971//32515 34456//32872 +f 33847//32391 34457//32873 34456//32872 33842//32386 +f 34459//32875 33851//32395 33850//32394 34460//32876 +f 33977//32521 34459//32875 34460//32876 33979//32523 +f 34459//32875 33977//32521 33975//32519 34458//32874 +f 33851//32395 34459//32875 34458//32874 33846//32390 +f 34461//32877 33855//32399 33854//32398 34462//32878 +f 33981//32525 34461//32877 34462//32878 33983//32527 +f 34461//32877 33981//32525 33979//32523 34460//32876 +f 33855//32399 34461//32877 34460//32876 33850//32394 +f 34463//32879 33859//32403 33858//32402 34464//32880 +f 33985//32529 34463//32879 34464//32880 33987//32531 +f 34463//32879 33985//32529 33983//32527 34462//32878 +f 33859//32403 34463//32879 34462//32878 33854//32398 +f 34465//32881 33863//32407 33862//32406 34466//32882 +f 33989//32533 34465//32881 34466//32882 33991//32535 +f 34465//32881 33989//32533 33987//32531 34464//32880 +f 33863//32407 34465//32881 34464//32880 33858//32402 +f 34467//32883 33867//32411 33866//32410 34468//32884 +f 33993//32537 34467//32883 34468//32884 33995//32539 +f 34467//32883 33993//32537 33991//32535 34466//32882 +f 33867//32411 34467//32883 34466//32882 33862//32406 +f 34469//32885 33871//32415 33870//32414 34470//32886 +f 33997//32541 34469//32885 34470//32886 33999//32543 +f 34469//32885 33997//32541 33995//32539 34468//32884 +f 33871//32415 34469//32885 34468//32884 33866//32410 +f 34471//32887 33875//32419 33874//32418 34472//32888 +f 34001//32545 34471//32887 34472//32888 34003//32547 +f 34471//32887 34001//32545 33999//32543 34470//32886 +f 33875//32419 34471//32887 34470//32886 33870//32414 +f 34473//32889 33879//32423 33878//32422 34474//32890 +f 34005//32549 34473//32889 34474//32890 34007//32551 +f 34473//32889 34005//32549 34003//32547 34472//32888 +f 33879//32423 34473//32889 34472//32888 33874//32418 +f 34475//32891 33883//32427 33882//32426 34476//32892 +f 34009//32553 34475//32891 34476//32892 34011//32555 +f 34475//32891 34009//32553 34007//32551 34474//32890 +f 33883//32427 34475//32891 34474//32890 33878//32422 +f 34477//32893 33887//32431 33886//32430 34478//32894 +f 34013//32557 34477//32893 34478//32894 34015//32559 +f 34477//32893 34013//32557 34011//32555 34476//32892 +f 33887//32431 34477//32893 34476//32892 33882//32426 +f 34479//32895 33891//32435 33890//32434 34480//32896 +f 34017//32561 34479//32895 34480//32896 34019//32563 +f 34479//32895 34017//32561 34015//32559 34478//32894 +f 33891//32435 34479//32895 34478//32894 33886//32430 +f 34481//32897 33895//32439 33894//32438 34482//32898 +f 34021//32565 34481//32897 34482//32898 34023//32567 +f 34481//32897 34021//32565 34019//32563 34480//32896 +f 33895//32439 34481//32897 34480//32896 33890//32434 +f 34483//32899 33899//32443 33898//32442 34484//32900 +f 34025//32569 34483//32899 34484//32900 34027//32571 +f 34483//32899 34025//32569 34023//32567 34482//32898 +f 33899//32443 34483//32899 34482//32898 33894//32438 +f 34485//32901 33903//32447 33902//32446 34486//32902 +f 34029//32573 34485//32901 34486//32902 34031//32575 +f 34485//32901 34029//32573 34027//32571 34484//32900 +f 33903//32447 34485//32901 34484//32900 33898//32442 +f 34487//32903 33907//32451 33906//32450 34488//32904 +f 34033//32577 34487//32903 34488//32904 34035//32579 +f 34487//32903 34033//32577 34031//32575 34486//32902 +f 33907//32451 34487//32903 34486//32902 33902//32446 +f 34489//32905 33911//32455 33910//32454 34490//32906 +f 34037//32581 34489//32905 34490//32906 34039//32583 +f 34489//32905 34037//32581 34035//32579 34488//32904 +f 33911//32455 34489//32905 34488//32904 33906//32450 +f 34491//32907 33915//32459 33914//32458 34492//32908 +f 34041//32585 34491//32907 34492//32908 34043//32587 +f 34491//32907 34041//32585 34039//32583 34490//32906 +f 33915//32459 34491//32907 34490//32906 33910//32454 +f 34493//32909 33917//32461 33795//32339 34432//32848 +f 34045//32589 34493//32909 34432//32848 33920//32464 +f 34493//32909 34045//32589 34043//32587 34492//32908 +f 33917//32461 34493//32909 34492//32908 33914//32458 +f 33919//32463 33918//32462 34494//3570 +f 33918//32462 33922//32466 34494//3570 +f 33922//32466 33924//32468 34494//3570 +f 33924//32468 33926//32470 34494//3570 +f 33926//32470 33928//32472 34494//3570 +f 33928//32472 33930//32474 34494//3570 +f 33930//32474 33932//32476 34494//3570 +f 33932//32476 33934//32478 34494//3570 +f 33934//32478 33936//32480 34494//3570 +f 33936//32480 33938//32482 34494//3570 +f 33938//32482 33940//32484 34494//3570 +f 33940//32484 33942//32486 34494//3570 +f 33942//32486 33944//32488 34494//3570 +f 33944//32488 33946//32490 34494//3570 +f 33946//32490 33948//32492 34494//3570 +f 33948//32492 33950//32494 34494//3570 +f 33950//32494 33952//32496 34494//3570 +f 33952//32496 33954//32498 34494//3570 +f 33954//32498 33956//32500 34494//3570 +f 33956//32500 33958//32502 34494//3570 +f 33958//32502 33960//32504 34494//3570 +f 33960//32504 33962//32506 34494//3570 +f 33962//32506 33964//32508 34494//3570 +f 33964//32508 33966//32510 34494//3570 +f 33966//32510 33968//32512 34494//3570 +f 33968//32512 33970//32514 34494//3570 +f 33970//32514 33972//32516 34494//3570 +f 33972//32516 33974//32518 34494//3570 +f 33974//32518 33976//32520 34494//3570 +f 33976//32520 33978//32522 34494//3570 +f 33978//32522 33980//32524 34494//3570 +f 33980//32524 33982//32526 34494//3570 +f 33982//32526 33984//32528 34494//3570 +f 33984//32528 33986//32530 34494//3570 +f 33986//32530 33988//32532 34494//3570 +f 33988//32532 33990//32534 34494//3570 +f 33990//32534 33992//32536 34494//3570 +f 33992//32536 33994//32538 34494//3570 +f 33994//32538 33996//32540 34494//3570 +f 33996//32540 33998//32542 34494//3570 +f 33998//32542 34000//32544 34494//3570 +f 34000//32544 34002//32546 34494//3570 +f 34002//32546 34004//32548 34494//3570 +f 34004//32548 34006//32550 34494//3570 +f 34006//32550 34008//32552 34494//3570 +f 34008//32552 34010//32554 34494//3570 +f 34010//32554 34012//32556 34494//3570 +f 34012//32556 34014//32558 34494//3570 +f 34014//32558 34016//32560 34494//3570 +f 34016//32560 34018//32562 34494//3570 +f 34018//32562 34020//32564 34494//3570 +f 34020//32564 34022//32566 34494//3570 +f 34022//32566 34024//32568 34494//3570 +f 34024//32568 34026//32570 34494//3570 +f 34026//32570 34028//32572 34494//3570 +f 34028//32572 34030//32574 34494//3570 +f 34030//32574 34032//32576 34494//3570 +f 34032//32576 34034//32578 34494//3570 +f 34034//32578 34036//32580 34494//3570 +f 34036//32580 34038//32582 34494//3570 +f 34038//32582 34040//32584 34494//3570 +f 34040//32584 34042//32586 34494//3570 +f 34042//32586 34044//32588 34494//3570 +f 34044//32588 33919//32463 34494//3570 +f 32574//31311 32573//31310 34495//4220 34496//4220 +f 32573//31310 32575//31312 34497//4220 34495//4220 +f 32575//31312 32576//31313 34498//4220 34497//4220 +f 32576//31313 32577//31314 34499//4220 34498//4220 +f 32577//31314 32578//31315 34500//4220 34499//4220 +f 32578//31315 32579//31316 34501//4220 34500//4220 +f 32579//31316 32580//31317 34502//4220 34501//4220 +f 32580//31317 32581//31318 34503//4220 34502//4220 +f 32581//31318 32582//31319 34504//4220 34503//4220 +f 32582//31319 32583//31320 34505//4220 34504//4220 +f 32583//31320 32584//31321 34506//4220 34505//4220 +f 32584//31321 32585//31322 34507//4220 34506//4220 +f 32585//31322 32586//31323 34508//4220 34507//4220 +f 32586//31323 32587//31324 34509//4220 34508//4220 +f 32587//31324 32588//31325 34510//4220 34509//4220 +f 32588//31325 32589//31326 34511//4220 34510//4220 +f 32589//31326 32590//31327 34512//4220 34511//4220 +f 32590//31327 32591//31328 34513//4220 34512//4220 +f 32591//31328 32592//31329 34514//4220 34513//4220 +f 32592//31329 32593//31330 34515//4220 34514//4220 +f 32593//31330 32594//31331 34516//4220 34515//4220 +f 32594//31331 32595//31332 34517//4220 34516//4220 +f 32595//31332 32596//31333 34518//4220 34517//4220 +f 32596//31333 32597//31334 34519//4220 34518//4220 +f 32597//31334 32598//31335 34520//4220 34519//4220 +f 32598//31335 32599//31336 34521//4220 34520//4220 +f 32599//31336 32600//31337 34522//4220 34521//4220 +f 32600//31337 32601//31338 34523//4220 34522//4220 +f 32601//31338 32602//31339 34524//4220 34523//4220 +f 32602//31339 32603//31340 34525//4220 34524//4220 +f 32603//31340 32604//31341 34526//4220 34525//4220 +f 32604//31341 32605//31342 34527//4220 34526//4220 +f 32605//31342 32606//31343 34528//4220 34527//4220 +f 32606//31343 32607//31344 34529//4220 34528//4220 +f 32607//31344 32608//31345 34530//4220 34529//4220 +f 32608//31345 32609//31346 34531//4220 34530//4220 +f 32609//31346 32610//31347 34532//4220 34531//4220 +f 32610//31347 32611//31348 34533//4220 34532//4220 +f 32611//31348 32612//31349 34534//4220 34533//4220 +f 32612//31349 32613//31350 34535//4220 34534//4220 +f 32613//31350 32614//31351 34536//4220 34535//4220 +f 32614//31351 32615//31352 34537//4220 34536//4220 +f 32615//31352 32616//31353 34538//4220 34537//4220 +f 32616//31353 32617//31354 34539//4220 34538//4220 +f 32617//31354 32618//31355 34540//4220 34539//4220 +f 32618//31355 32619//31356 34541//4220 34540//4220 +f 32619//31356 32620//31357 34542//4220 34541//4220 +f 32620//31357 32621//31358 34543//4220 34542//4220 +f 32621//31358 32622//31359 34544//4220 34543//4220 +f 32622//31359 32623//31360 34545//4220 34544//4220 +f 32623//31360 32624//31361 34546//4220 34545//4220 +f 32624//31361 32625//31362 34547//4220 34546//4220 +f 32625//31362 32626//31363 34548//4220 34547//4220 +f 32626//31363 32627//31364 34549//4220 34548//4220 +f 32627//31364 32628//31365 34550//4220 34549//4220 +f 32628//31365 32629//31366 34551//4220 34550//4220 +f 32629//31366 32630//31367 34552//4220 34551//4220 +f 32630//31367 32631//31368 34553//4220 34552//4220 +f 32631//31368 32632//31369 34554//4220 34553//4220 +f 32632//31369 32633//31370 34555//4220 34554//4220 +f 32633//31370 32634//31371 34556//4220 34555//4220 +f 32634//31371 32635//31372 34557//4220 34556//4220 +f 32635//31372 32636//31373 34558//4220 34557//4220 +f 32636//31373 32574//31311 34496//4220 34558//4220 +f 34496//4220 34495//4220 34559//4220 34560//4220 +f 34495//4220 34497//4220 34561//4220 34559//4220 +f 34497//4220 34498//4220 34562//4220 34561//4220 +f 34498//4220 34499//4220 34563//4220 34562//4220 +f 34499//4220 34500//4220 34564//4220 34563//4220 +f 34500//4220 34501//4220 34565//4220 34564//4220 +f 34501//4220 34502//4220 34566//4220 34565//4220 +f 34502//4220 34503//4220 34567//4220 34566//4220 +f 34503//4220 34504//4220 34568//4220 34567//4220 +f 34504//4220 34505//4220 34569//4220 34568//4220 +f 34505//4220 34506//4220 34570//4220 34569//4220 +f 34506//4220 34507//4220 34571//4220 34570//4220 +f 34507//4220 34508//4220 34572//4220 34571//4220 +f 34508//4220 34509//4220 34573//4220 34572//4220 +f 34509//4220 34510//4220 34574//4220 34573//4220 +f 34510//4220 34511//4220 34575//4220 34574//4220 +f 34511//4220 34512//4220 34576//4220 34575//4220 +f 34512//4220 34513//4220 34577//4220 34576//4220 +f 34513//4220 34514//4220 34578//4220 34577//4220 +f 34514//4220 34515//4220 34579//4220 34578//4220 +f 34515//4220 34516//4220 34580//4220 34579//4220 +f 34516//4220 34517//4220 34581//4220 34580//4220 +f 34517//4220 34518//4220 34582//4220 34581//4220 +f 34518//4220 34519//4220 34583//4220 34582//4220 +f 34519//4220 34520//4220 34584//4220 34583//4220 +f 34520//4220 34521//4220 34585//4220 34584//4220 +f 34521//4220 34522//4220 34586//4220 34585//4220 +f 34522//4220 34523//4220 34587//4220 34586//4220 +f 34523//4220 34524//4220 34588//4220 34587//4220 +f 34524//4220 34525//4220 34589//4220 34588//4220 +f 34525//4220 34526//4220 34590//4220 34589//4220 +f 34526//4220 34527//4220 34591//4220 34590//4220 +f 34527//4220 34528//4220 34592//4220 34591//4220 +f 34528//4220 34529//4220 34593//4220 34592//4220 +f 34529//4220 34530//4220 34594//4220 34593//4220 +f 34530//4220 34531//4220 34595//4220 34594//4220 +f 34531//4220 34532//4220 34596//4220 34595//4220 +f 34532//4220 34533//4220 34597//4220 34596//4220 +f 34533//4220 34534//4220 34598//4220 34597//4220 +f 34534//4220 34535//4220 34599//4220 34598//4220 +f 34535//4220 34536//4220 34600//4220 34599//4220 +f 34536//4220 34537//4220 34601//4220 34600//4220 +f 34537//4220 34538//4220 34602//4220 34601//4220 +f 34538//4220 34539//4220 34603//4220 34602//4220 +f 34539//4220 34540//4220 34604//4220 34603//4220 +f 34540//4220 34541//4220 34605//4220 34604//4220 +f 34541//4220 34542//4220 34606//4220 34605//4220 +f 34542//4220 34543//4220 34607//4220 34606//4220 +f 34543//4220 34544//4220 34608//4220 34607//4220 +f 34544//4220 34545//4220 34609//4220 34608//4220 +f 34545//4220 34546//4220 34610//4220 34609//4220 +f 34546//4220 34547//4220 34611//4220 34610//4220 +f 34547//4220 34548//4220 34612//4220 34611//4220 +f 34548//4220 34549//4220 34613//4220 34612//4220 +f 34549//4220 34550//4220 34614//4220 34613//4220 +f 34550//4220 34551//4220 34615//4220 34614//4220 +f 34551//4220 34552//4220 34616//4220 34615//4220 +f 34552//4220 34553//4220 34617//4220 34616//4220 +f 34553//4220 34554//4220 34618//4220 34617//4220 +f 34554//4220 34555//4220 34619//4220 34618//4220 +f 34555//4220 34556//4220 34620//4220 34619//4220 +f 34556//4220 34557//4220 34621//4220 34620//4220 +f 34557//4220 34558//4220 34622//4220 34621//4220 +f 34558//4220 34496//4220 34560//4220 34622//4220 +f 34560//4220 34559//4220 34623//4220 +f 34559//4220 34561//4220 34623//4220 +f 34561//4220 34562//4220 34623//4220 +f 34562//4220 34563//4220 34623//4220 +f 34563//4220 34564//4220 34623//4220 +f 34564//4220 34565//4220 34623//4220 +f 34565//4220 34566//4220 34623//4220 +f 34566//4220 34567//4220 34623//4220 +f 34567//4220 34568//4220 34623//4220 +f 34568//4220 34569//4220 34623//4220 +f 34569//4220 34570//4220 34623//4220 +f 34570//4220 34571//4220 34623//4220 +f 34571//4220 34572//4220 34623//4220 +f 34572//4220 34573//4220 34623//4220 +f 34573//4220 34574//4220 34623//4220 +f 34574//4220 34575//4220 34623//4220 +f 34575//4220 34576//4220 34623//4220 +f 34576//4220 34577//4220 34623//4220 +f 34577//4220 34578//4220 34623//4220 +f 34578//4220 34579//4220 34623//4220 +f 34579//4220 34580//4220 34623//4220 +f 34580//4220 34581//4220 34623//4220 +f 34581//4220 34582//4220 34623//4220 +f 34582//4220 34583//4220 34623//4220 +f 34583//4220 34584//4220 34623//4220 +f 34584//4220 34585//4220 34623//4220 +f 34585//4220 34586//4220 34623//4220 +f 34586//4220 34587//4220 34623//4220 +f 34587//4220 34588//4220 34623//4220 +f 34588//4220 34589//4220 34623//4220 +f 34589//4220 34590//4220 34623//4220 +f 34590//4220 34591//4220 34623//4220 +f 34591//4220 34592//4220 34623//4220 +f 34592//4220 34593//4220 34623//4220 +f 34593//4220 34594//4220 34623//4220 +f 34594//4220 34595//4220 34623//4220 +f 34595//4220 34596//4220 34623//4220 +f 34596//4220 34597//4220 34623//4220 +f 34597//4220 34598//4220 34623//4220 +f 34598//4220 34599//4220 34623//4220 +f 34599//4220 34600//4220 34623//4220 +f 34600//4220 34601//4220 34623//4220 +f 34601//4220 34602//4220 34623//4220 +f 34602//4220 34603//4220 34623//4220 +f 34603//4220 34604//4220 34623//4220 +f 34604//4220 34605//4220 34623//4220 +f 34605//4220 34606//4220 34623//4220 +f 34606//4220 34607//4220 34623//4220 +f 34607//4220 34608//4220 34623//4220 +f 34608//4220 34609//4220 34623//4220 +f 34609//4220 34610//4220 34623//4220 +f 34610//4220 34611//4220 34623//4220 +f 34611//4220 34612//4220 34623//4220 +f 34612//4220 34613//4220 34623//4220 +f 34613//4220 34614//4220 34623//4220 +f 34614//4220 34615//4220 34623//4220 +f 34615//4220 34616//4220 34623//4220 +f 34616//4220 34617//4220 34623//4220 +f 34617//4220 34618//4220 34623//4220 +f 34618//4220 34619//4220 34623//4220 +f 34619//4220 34620//4220 34623//4220 +f 34620//4220 34621//4220 34623//4220 +f 34621//4220 34622//4220 34623//4220 +f 34622//4220 34560//4220 34623//4220 diff --git a/samples/dual_layer/D3D11/media/StaticMesh.hlsl b/samples/dual_layer/D3D11/media/StaticMesh.hlsl new file mode 100644 index 0000000..61c36ba --- /dev/null +++ b/samples/dual_layer/D3D11/media/StaticMesh.hlsl @@ -0,0 +1,35 @@ +cbuffer PerFrame : register(b0) +{ + row_major float4x4 MatView; + row_major float4x4 MatViewProj; +}; + +cbuffer PerObject : register(b1) +{ + row_major float4x4 MatWorld; +}; + +struct VSInput +{ + float4 Position : POSITION; +}; + +struct PSInput +{ + float4 Position : SV_Position; + float3 ViewPosition : VIEWPOSITION; +}; + +void VSMain(in VSInput In, out PSInput Out) +{ + Out.Position = mul(In.Position, MatWorld); + Out.ViewPosition = mul(Out.Position, (float3x3)MatView); + Out.Position = mul(Out.Position, MatViewProj); +} + +void PSMain(in PSInput In, out float4 Out : SV_Target) +{ + float3 Normal = -normalize(cross(ddx(In.ViewPosition), ddy(In.ViewPosition))); + Out = float4(1.0, 1.0, 0.0, 1.0); + Out = float4(Normal * 0.5 + 0.5, 1.0); +} \ No newline at end of file diff --git a/samples/dual_layer/D3D11/media/directx.ico b/samples/dual_layer/D3D11/media/directx.ico new file mode 100644 index 0000000..eda6490 Binary files /dev/null and b/samples/dual_layer/D3D11/media/directx.ico differ diff --git a/samples/dual_layer/D3D11/src/Camera.cpp b/samples/dual_layer/D3D11/src/Camera.cpp new file mode 100644 index 0000000..fee0fe3 --- /dev/null +++ b/samples/dual_layer/D3D11/src/Camera.cpp @@ -0,0 +1,55 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "Camera.h" + +Camera::Camera() +{ + InitProjectionMatrix(1280, 720); + + mPosition = { -5.0f, -5.0f, 3.0f }; + mViewVector = XMVector3Normalize({ -4.0f, -4.0f, -2.0f }); + UpdateViewMatrix(); +} + +void Camera::InitProjectionMatrix(uint32_t width, uint32_t height, float zNear, float zFar) +{ + mMatProj = XMMatrixPerspectiveFovRH(XMConvertToRadians(60.0f), (float)width / (float)height, zNear, zFar); + UpdateViewMatrix(); +} + +void Camera::MoveForward(float dt) +{ + mPosition += mViewVector * dt; + UpdateViewMatrix(); +} + +void Camera::MoveRight(float dt) +{ + mPosition += XMMatrixTranspose(mMatView).r[0] * dt; + UpdateViewMatrix(); +} + +void Camera::AdvanceAngles(float yaw, float pitch) +{ + XMMATRIX matBasisVecs = XMMatrixTranspose(mMatView); + + XMMATRIX matRot = XMMatrixRotationY(yaw);// *XMMatrixRotationX(pitch); + + mViewVector = XMVector3Rotate(mViewVector, XMQuaternionRotationAxis(matBasisVecs.r[1], yaw)); + mViewVector = XMVector3Rotate(mViewVector, XMQuaternionRotationAxis(matBasisVecs.r[0], pitch)); + UpdateViewMatrix(); +} + +void Camera::UpdateViewMatrix() +{ + mMatView = XMMatrixLookAtRH(mPosition, mPosition + mViewVector, { 0.0f, 0.0f, 1.0f }); + mMatViewProj = XMMatrixMultiply(mMatView, mMatProj); +} diff --git a/samples/dual_layer/D3D11/src/Camera.h b/samples/dual_layer/D3D11/src/Camera.h new file mode 100644 index 0000000..2cc373b --- /dev/null +++ b/samples/dual_layer/D3D11/src/Camera.h @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once + +#include +using namespace DirectX; + +class Camera +{ +public: + Camera(); + + union + { + struct + { + XMMATRIX mMatView; + XMMATRIX mMatViewProj; + }; + float PerFrameData[32]; + }; + XMMATRIX mMatProj; + + void InitProjectionMatrix(uint32_t width, uint32_t height, float zNear = 0.01f, float zFar = 10000.0f); + void MoveForward(float dt); + void MoveRight(float dt); + void AdvanceAngles(float yaw, float pitch); + + void UpdateViewMatrix(); + + XMVECTOR mPosition; + XMVECTOR mViewVector; +}; + diff --git a/samples/dual_layer/D3D11/src/D3D11Mesh.cpp b/samples/dual_layer/D3D11/src/D3D11Mesh.cpp new file mode 100644 index 0000000..79e2857 --- /dev/null +++ b/samples/dual_layer/D3D11/src/D3D11Mesh.cpp @@ -0,0 +1,50 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#define _SCL_SECURE_NO_WARNINGS +#include "D3D11Mesh.h" + +bool D3D11Mesh::InitializeFromMesh(ID3D11Device* device, Mesh& mesh) +{ + mNumIndices = (uint32_t)mesh.mIndices.size(); + + uint32_t vertexBufferSize = (uint32_t)mesh.mVertices.size() * sizeof(decltype(mesh.mVertices)::value_type); + uint32_t indexBufferSize = (uint32_t)mesh.mIndices.size() * sizeof(decltype(mesh.mIndices)::value_type); + + D3D11_BUFFER_DESC bufferDesc{}; + D3D11_SUBRESOURCE_DATA initialData{}; + + bufferDesc.ByteWidth = vertexBufferSize; + bufferDesc.Usage = D3D11_USAGE_DEFAULT; + bufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER; + bufferDesc.CPUAccessFlags = 0; + bufferDesc.MiscFlags = 0; + bufferDesc.StructureByteStride = 0; + + initialData.pSysMem = mesh.mVertices.data(); + initialData.SysMemPitch = 0; + initialData.SysMemSlicePitch = 0; + device->CreateBuffer(&bufferDesc, &initialData, &mVertexBuffer); + + + bufferDesc.ByteWidth = indexBufferSize; + bufferDesc.Usage = D3D11_USAGE_DEFAULT; + bufferDesc.BindFlags = D3D11_BIND_INDEX_BUFFER; + bufferDesc.CPUAccessFlags = 0; + bufferDesc.MiscFlags = 0; + bufferDesc.StructureByteStride = 0; + + initialData.pSysMem = mesh.mIndices.data(); + initialData.SysMemPitch = 0; + initialData.SysMemSlicePitch = 0; + device->CreateBuffer(&bufferDesc, &initialData, &mIndexBuffer); + + return true; +} diff --git a/samples/dual_layer/D3D11/src/D3D11Mesh.h b/samples/dual_layer/D3D11/src/D3D11Mesh.h new file mode 100644 index 0000000..6f9610f --- /dev/null +++ b/samples/dual_layer/D3D11/src/D3D11Mesh.h @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include "Mesh.h" +#include +#include +#include + +using namespace DirectX; +using namespace Microsoft::WRL; + +class D3D11Mesh +{ +public: + bool InitializeFromMesh(ID3D11Device* device, Mesh& mesh); + uint32_t mNumIndices; + XMMATRIX mMatWorld; + ComPtr mVertexBuffer; + ComPtr mIndexBuffer; +}; + diff --git a/samples/dual_layer/D3D11/src/DeviceManager11.cpp b/samples/dual_layer/D3D11/src/DeviceManager11.cpp new file mode 100644 index 0000000..3bc8bdd --- /dev/null +++ b/samples/dual_layer/D3D11/src/DeviceManager11.cpp @@ -0,0 +1,771 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#define NOMINMAX +#include "DeviceManager11.h" +#include +#include +#include +#include +#include +#include + +#pragma comment(lib, "dxgi.lib") +#pragma comment(lib, "d3d11.lib") + +#ifndef SAFE_RELEASE +#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } } +#endif + +#define WINDOW_CLASS_NAME L"NvDX11" + +#define WINDOW_STYLE_NORMAL (WS_OVERLAPPEDWINDOW | WS_VISIBLE) +#define WINDOW_STYLE_FULLSCREEN (WS_POPUP | WS_SYSMENU | WS_VISIBLE) + +LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + DeviceManager* pDM = (DeviceManager*)GetWindowLongPtr(hWnd, 0); + if (pDM) + return pDM->MsgProc(hWnd, uMsg, wParam, lParam); + else + return DefWindowProc(hWnd, uMsg, wParam, lParam); +} + +bool IsNvDeviceID(UINT id) +{ + return id == 0x10DE; +} + +// Find an adapter whose name contains the given string. +IDXGIAdapter* FindAdapter(const WCHAR* targetName, bool& isNv) +{ + IDXGIAdapter* targetAdapter = NULL; + IDXGIFactory* IDXGIFactory_0001 = NULL; + HRESULT hres = CreateDXGIFactory(__uuidof(IDXGIFactory), (void**)&IDXGIFactory_0001); + if (hres != S_OK) + { + printf("ERROR in CreateDXGIFactory, %s@%d.\nFor more info, get log from debug D3D runtime: (1) Install DX SDK, and enable Debug D3D from DX Control Panel Utility. (2) Install and start DbgView. (3) Try running the program again.\n", __FILE__, __LINE__); + return targetAdapter; + } + + unsigned int adapterNo = 0; + while (SUCCEEDED(hres)) + { + IDXGIAdapter* pAdapter = NULL; + hres = IDXGIFactory_0001->EnumAdapters(adapterNo, (IDXGIAdapter**)&pAdapter); + + if (SUCCEEDED(hres)) + { + DXGI_ADAPTER_DESC aDesc; + pAdapter->GetDesc(&aDesc); + + // If no name is specified, return the first adapater. This is the same behaviour as the + // default specified for D3D11CreateDevice when no adapter is specified. + if (wcslen(targetName) == 0) + { + targetAdapter = pAdapter; + isNv = IsNvDeviceID(aDesc.VendorId); + break; + } + + std::wstring aName = aDesc.Description; + if (aName.find(targetName) != std::string::npos) + { + targetAdapter = pAdapter; + isNv = IsNvDeviceID(aDesc.VendorId); + } + else + { + pAdapter->Release(); + } + } + + adapterNo++; + } + + if (IDXGIFactory_0001) + IDXGIFactory_0001->Release(); + + return targetAdapter; +} + +// Adjust window rect so that it is centred on the given adapter. Clamps to fit if it's too big. +RECT MoveWindowOntoAdapter(IDXGIAdapter* targetAdapter, const RECT& rect) +{ + assert(targetAdapter != NULL); + + RECT result = rect; + HRESULT hres = S_OK; + unsigned int outputNo = 0; + while (SUCCEEDED(hres)) + { + IDXGIOutput* pOutput = NULL; + hres = targetAdapter->EnumOutputs(outputNo++, &pOutput); + + if (SUCCEEDED(hres) && pOutput) + { + DXGI_OUTPUT_DESC OutputDesc; + pOutput->GetDesc(&OutputDesc); + const RECT desktop = OutputDesc.DesktopCoordinates; + const int centreX = (int)desktop.left + (int)(desktop.right - desktop.left) / 2; + const int centreY = (int)desktop.top + (int)(desktop.bottom - desktop.top) / 2; + const int winW = rect.right - rect.left; + const int winH = rect.bottom - rect.top; + int left = centreX - winW / 2; + int right = left + winW; + int top = centreY - winH / 2; + int bottom = top + winH; + result.left = std::max(left, (int)desktop.left); + result.right = std::min(right, (int)desktop.right); + result.bottom = std::min(bottom, (int)desktop.bottom); + result.top = std::max(top, (int)desktop.top); + + // If there is more than one output, go with the first found. Multi-monitor support could go here. + break; + } + } + return result; +} + +HRESULT +DeviceManager::CreateWindowDeviceAndSwapChain(const DeviceCreationParameters& params, LPWSTR title) +{ + m_WindowTitle = title; + + HINSTANCE hInstance = GetModuleHandle(NULL); + WNDCLASSEX windowClass = { sizeof(WNDCLASSEX), CS_HREDRAW | CS_VREDRAW, WindowProc, + 0L, sizeof(void*), hInstance, NULL, NULL, NULL, NULL, WINDOW_CLASS_NAME, NULL }; + + windowClass.hCursor = LoadCursor(NULL, IDC_ARROW); + + RegisterClassEx(&windowClass); + + UINT windowStyle = params.startFullscreen + ? WINDOW_STYLE_FULLSCREEN + : params.startMaximized + ? (WINDOW_STYLE_NORMAL | WS_MAXIMIZE) + : WINDOW_STYLE_NORMAL; + + RECT rect = { 0, 0, params.backBufferWidth, params.backBufferHeight }; + AdjustWindowRect(&rect, windowStyle, FALSE); + + IDXGIAdapter* targetAdapter = FindAdapter(params.adapterNameSubstring, m_IsNvidia); + if (targetAdapter) + { + rect = MoveWindowOntoAdapter(targetAdapter, rect); + } + else + { + // We could silently use a default adapter in this case. I think it's better to choke. + std::wostringstream ostr; + ostr << L"Could not find an adapter matching \"" << params.adapterNameSubstring << "\"" << std::ends; + MessageBox(NULL, ostr.str().c_str(), m_WindowTitle.c_str(), MB_OK | MB_ICONERROR); + return E_FAIL; + } + + m_hWnd = CreateWindowEx( + 0, + WINDOW_CLASS_NAME, + title, + windowStyle, + rect.left, + rect.top, + rect.right - rect.left, + rect.bottom - rect.top, + GetDesktopWindow(), + NULL, + hInstance, + NULL + ); + + if(!m_hWnd) + { +#ifdef DEBUG + DWORD errorCode = GetLastError(); + printf("CreateWindowEx error code = 0x%x\n", errorCode); +#endif + + MessageBox(NULL, L"Cannot create window", m_WindowTitle.c_str(), MB_OK | MB_ICONERROR); + return E_FAIL; + } + + SetWindowLongPtr(m_hWnd, 0, (LONG_PTR)this); + UpdateWindow(m_hWnd); + + HRESULT hr = E_FAIL; + + RECT clientRect; + GetClientRect(m_hWnd, &clientRect); + UINT width = clientRect.right - clientRect.left; + UINT height = clientRect.bottom - clientRect.top; + + ZeroMemory(&m_SwapChainDesc, sizeof(m_SwapChainDesc)); + m_SwapChainDesc.BufferCount = params.swapChainBufferCount; + m_SwapChainDesc.BufferDesc.Width = width; + m_SwapChainDesc.BufferDesc.Height = height; + m_SwapChainDesc.BufferDesc.Format = params.swapChainFormat; + m_SwapChainDesc.BufferDesc.RefreshRate.Numerator = params.refreshRate; + m_SwapChainDesc.BufferDesc.RefreshRate.Denominator = 0; + m_SwapChainDesc.BufferUsage = params.swapChainUsage; + m_SwapChainDesc.OutputWindow = m_hWnd; + m_SwapChainDesc.SampleDesc.Count = params.swapChainSampleCount; + m_SwapChainDesc.SampleDesc.Quality = params.swapChainSampleQuality; + m_SwapChainDesc.Windowed = !params.startFullscreen; + m_SwapChainDesc.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; + + UINT createFlags = 0; + if (params.enableDebugRuntime) + createFlags |= D3D11_CREATE_DEVICE_DEBUG; + + const D3D_DRIVER_TYPE dType = (targetAdapter) ? D3D_DRIVER_TYPE_UNKNOWN : params.driverType; + + hr = D3D11CreateDeviceAndSwapChain( + targetAdapter, // pAdapter + dType, // DriverType + NULL, // Software + createFlags, // Flags + ¶ms.featureLevel, // pFeatureLevels + 1, // FeatureLevels + D3D11_SDK_VERSION, // SDKVersion + &m_SwapChainDesc, // pSwapChainDesc + &m_SwapChain, // ppSwapChain + &m_Device, // ppDevice + NULL, // pFeatureLevel + &m_ImmediateContext // ppImmediateContext + ); + + if (targetAdapter) + targetAdapter->Release(); + + if(FAILED(hr)) + return hr; + + hr = CreateRenderTarget(); + + if(FAILED(hr)) + return hr; + + DeviceCreated(); + BackBufferResized(); + + return S_OK; +} + +void +DeviceManager::Shutdown() +{ + if(m_ShutdownCalled) + return; + + m_ShutdownCalled = true; + + if(m_SwapChain && GetWindowState() == kWindowFullscreen) + m_SwapChain->SetFullscreenState(false, NULL); + + DeviceDestroyed(); + + SAFE_RELEASE(m_BackBufferRTV); + + SAFE_RELEASE(m_SwapChain); + SAFE_RELEASE(m_Device); + + if(m_hWnd) + { + DestroyWindow(m_hWnd); + m_hWnd = NULL; + } +} + +HRESULT +DeviceManager::CreateRenderTarget() +{ + HRESULT hr; + + ID3D11Texture2D *backBuffer = NULL; + hr = m_SwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&backBuffer); + if (FAILED(hr)) + return hr; + + hr = m_Device->CreateRenderTargetView(backBuffer, NULL, &m_BackBufferRTV); + backBuffer->Release(); + if (FAILED(hr)) + return hr; + + return S_OK; +} + +void +DeviceManager::MessageLoop() +{ + MSG msg = {0}; + + LARGE_INTEGER perfFreq, previousTime; + QueryPerformanceFrequency(&perfFreq); + QueryPerformanceCounter(&previousTime); + + while (WM_QUIT != msg.message) + { +#if ENABLE_XINPUT + XINPUT_KEYSTROKE xInputKeystroke; + memset(&xInputKeystroke, 0, sizeof(xInputKeystroke)); + const int gamepadIndex = 0; + + if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + else if(XInputGetKeystroke(gamepadIndex, 0, &xInputKeystroke) == ERROR_SUCCESS && xInputKeystroke.Flags != 0) + { + if(xInputKeystroke.Flags & (XINPUT_KEYSTROKE_KEYDOWN | XINPUT_KEYSTROKE_REPEAT)) + { + MsgProc(m_hWnd, WM_KEYDOWN, xInputKeystroke.VirtualKey, 0); + } + + if(xInputKeystroke.Flags & XINPUT_KEYSTROKE_KEYUP) + { + MsgProc(m_hWnd, WM_KEYUP, xInputKeystroke.VirtualKey, 0); + } + } +#else + if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } +#endif + else + { + LARGE_INTEGER newTime; + QueryPerformanceCounter(&newTime); + + double elapsedSeconds = (m_FixedFrameInterval >= 0) + ? m_FixedFrameInterval + : (double)(newTime.QuadPart - previousTime.QuadPart) / (double)perfFreq.QuadPart; + + + if(m_SwapChain && GetWindowState() != kWindowMinimized) + { + Animate(elapsedSeconds); + Render(); + m_SwapChain->Present(m_SyncInterval, 0); + Sleep(0); + } + else + { + // Release CPU resources when idle + Sleep(1); + } + + { + m_vFrameTimes.push_back(elapsedSeconds); + double timeSum = 0; + for(auto it = m_vFrameTimes.begin(); it != m_vFrameTimes.end(); it++) + timeSum += *it; + + if(timeSum > m_AverageTimeUpdateInterval) + { + m_AverageFrameTime = timeSum / (double)m_vFrameTimes.size(); + m_vFrameTimes.clear(); + } + } + + previousTime = newTime; + } + } +} + +LRESULT +DeviceManager::MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + switch(uMsg) + { + case WM_DESTROY: + case WM_CLOSE: + PostQuitMessage(0); + return 0; + + case WM_SYSKEYDOWN: + if(wParam == VK_F4) + { + PostQuitMessage(0); + return 0; + } + break; + + case WM_ENTERSIZEMOVE: + m_InSizingModalLoop = true; + m_NewWindowSize.cx = m_SwapChainDesc.BufferDesc.Width; + m_NewWindowSize.cy = m_SwapChainDesc.BufferDesc.Height; + break; + + case WM_EXITSIZEMOVE: + m_InSizingModalLoop = false; + ResizeSwapChain(); + break; + + case WM_SIZE: + // Ignore the WM_SIZE event if there is no device, + // or if the window has been minimized (size == 0), + // or if it has been restored to the previous size (this part is tested inside ResizeSwapChain) + if (m_Device && (lParam != 0)) + { + m_NewWindowSize.cx = LOWORD(lParam); + m_NewWindowSize.cy = HIWORD(lParam); + + if(!m_InSizingModalLoop) + ResizeSwapChain(); + } + } + + if( uMsg >= WM_MOUSEFIRST && uMsg <= WM_MOUSELAST || + uMsg >= WM_KEYFIRST && uMsg <= WM_KEYLAST ) + { + // processing messages front-to-back + for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) + { + if((*it)->IsEnabled()) + { + // for kb/mouse messages, 0 means the message has been handled + if(0 == (*it)->MsgProc(hWnd, uMsg, wParam, lParam)) + return 0; + } + } + } + + return DefWindowProc(hWnd, uMsg, wParam, lParam); +} + +void +DeviceManager::ResizeSwapChain() +{ + if(m_NewWindowSize.cx == (LONG)m_SwapChainDesc.BufferDesc.Width && + m_NewWindowSize.cy == (LONG)m_SwapChainDesc.BufferDesc.Height) + return; + + m_SwapChainDesc.BufferDesc.Width = m_NewWindowSize.cx; + m_SwapChainDesc.BufferDesc.Height = m_NewWindowSize.cy; + + ID3D11RenderTargetView *nullRTV = NULL; + m_ImmediateContext->OMSetRenderTargets(1, &nullRTV, NULL); + SAFE_RELEASE(m_BackBufferRTV); + + if (m_SwapChain) + { + // Resize the swap chain + m_SwapChain->ResizeBuffers(m_SwapChainDesc.BufferCount, m_SwapChainDesc.BufferDesc.Width, + m_SwapChainDesc.BufferDesc.Height, m_SwapChainDesc.BufferDesc.Format, + m_SwapChainDesc.Flags); + + CreateRenderTarget(); + + BackBufferResized(); + } +} + +void +DeviceManager::Render() +{ + D3D11_VIEWPORT viewport = { 0.0f, 0.0f, (float)m_SwapChainDesc.BufferDesc.Width, (float)m_SwapChainDesc.BufferDesc.Height, 0.0f, 1.0f }; + + if(m_EnableRenderTargetClear) + { + m_ImmediateContext->ClearRenderTargetView(m_BackBufferRTV, m_RenderTargetClearColor); + } + + // rendering back-to-front + for(auto it = m_vControllers.rbegin(); it != m_vControllers.rend(); it++) + { + if((*it)->IsEnabled()) + { + m_ImmediateContext->OMSetRenderTargets(1, &m_BackBufferRTV, nullptr); + m_ImmediateContext->RSSetViewports(1, &viewport); + + (*it)->Render(m_BackBufferRTV); + } + } + + m_ImmediateContext->OMSetRenderTargets(0, NULL, NULL); +} + +void +DeviceManager::Animate(double fElapsedTimeSeconds) +{ + // front-to-back, but the order shouldn't matter + for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) + { + if((*it)->IsEnabled()) + { + (*it)->Animate(fElapsedTimeSeconds); + } + } +} + +void +DeviceManager::DeviceCreated() +{ + // creating resources front-to-back + for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) + { + (*it)->DeviceCreated(); + } +} + +void +DeviceManager::DeviceDestroyed() +{ + // releasing resources back-to-front + for(auto it = m_vControllers.rbegin(); it != m_vControllers.rend(); it++) + { + (*it)->DeviceDestroyed(); + } +} + +void +DeviceManager::BackBufferResized() +{ + if(m_SwapChain == NULL) + return; + + for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) + { + (*it)->BackBufferResized(m_SwapChainDesc.BufferDesc.Width, m_SwapChainDesc.BufferDesc.Height, m_SwapChainDesc.SampleDesc.Count); + } +} + +HRESULT +DeviceManager::ChangeBackBufferFormat(DXGI_FORMAT format, UINT sampleCount) +{ + HRESULT hr = E_FAIL; + + if((format == DXGI_FORMAT_UNKNOWN || format == m_SwapChainDesc.BufferDesc.Format) && + (sampleCount == 0 || sampleCount == m_SwapChainDesc.SampleDesc.Count)) + return S_FALSE; + + if(m_Device) + { + bool fullscreen = (GetWindowState() == kWindowFullscreen); + if(fullscreen) + m_SwapChain->SetFullscreenState(false, NULL); + + IDXGISwapChain* newSwapChain = NULL; + DXGI_SWAP_CHAIN_DESC newSwapChainDesc = m_SwapChainDesc; + + if(format != DXGI_FORMAT_UNKNOWN) + newSwapChainDesc.BufferDesc.Format = format; + if(sampleCount != 0) + newSwapChainDesc.SampleDesc.Count = sampleCount; + + IDXGIAdapter* pDXGIAdapter = GetDXGIAdapter(); + + IDXGIFactory* pDXGIFactory = NULL; + pDXGIAdapter->GetParent(__uuidof(IDXGIFactory), reinterpret_cast(&pDXGIFactory)); + + hr = pDXGIFactory->CreateSwapChain(m_Device, &newSwapChainDesc, &newSwapChain); + + pDXGIFactory->Release(); + pDXGIAdapter->Release(); + + if (FAILED(hr)) + { + if(fullscreen) + m_SwapChain->SetFullscreenState(true, NULL); + + return hr; + } + + SAFE_RELEASE(m_BackBufferRTV); + SAFE_RELEASE(m_SwapChain); + + m_SwapChain = newSwapChain; + m_SwapChainDesc = newSwapChainDesc; + + if(fullscreen) + m_SwapChain->SetFullscreenState(true, NULL); + + CreateRenderTarget(); + BackBufferResized(); + } + + return S_OK; +} + +void +DeviceManager::AddControllerToFront(IVisualController* pController) +{ + m_vControllers.remove(pController); + m_vControllers.push_front(pController); +} + +void +DeviceManager::AddControllerToBack(IVisualController* pController) +{ + m_vControllers.remove(pController); + m_vControllers.push_back(pController); +} + +void +DeviceManager::RemoveController(IVisualController* pController) +{ + m_vControllers.remove(pController); +} + +HRESULT +DeviceManager::ResizeWindow(int width, int height) +{ + if(m_SwapChain == NULL) + return E_FAIL; + + RECT rect; + GetWindowRect(m_hWnd, &rect); + + ShowWindow(m_hWnd, SW_RESTORE); + + if(!MoveWindow(m_hWnd, rect.left, rect.top, width, height, true)) + return E_FAIL; + + // No need to call m_SwapChain->ResizeBackBuffer because MoveWindow will send WM_SIZE, which calls that function. + + return S_OK; +} + +HRESULT +DeviceManager::EnterFullscreenMode(int width, int height) +{ + if(m_SwapChain == NULL) + return E_FAIL; + + if(GetWindowState() == kWindowFullscreen) + return S_FALSE; + + if(width <= 0 || height <= 0) + { + width = m_SwapChainDesc.BufferDesc.Width; + height = m_SwapChainDesc.BufferDesc.Height; + } + + SetWindowLong(m_hWnd, GWL_STYLE, WINDOW_STYLE_FULLSCREEN); + MoveWindow(m_hWnd, 0, 0, width, height, true); + + HRESULT hr = m_SwapChain->SetFullscreenState(true, NULL); + + if(FAILED(hr)) + { + SetWindowLong(m_hWnd, GWL_STYLE, WINDOW_STYLE_NORMAL); + return hr; + } + + UpdateWindow(m_hWnd); + m_SwapChain->GetDesc(&m_SwapChainDesc); + + return S_OK; +} + +HRESULT +DeviceManager::LeaveFullscreenMode(int windowWidth, int windowHeight) +{ + if(m_SwapChain == NULL) + return E_FAIL; + + if(GetWindowState() != kWindowFullscreen) + return S_FALSE; + + HRESULT hr = m_SwapChain->SetFullscreenState(false, NULL); + if(FAILED(hr)) return hr; + + SetWindowLong(m_hWnd, GWL_STYLE, WINDOW_STYLE_NORMAL); + + if(windowWidth <= 0 || windowHeight <= 0) + { + windowWidth = m_SwapChainDesc.BufferDesc.Width; + windowHeight = m_SwapChainDesc.BufferDesc.Height; + } + + RECT rect = { 0, 0, windowWidth, windowHeight }; + AdjustWindowRect(&rect, WINDOW_STYLE_NORMAL, FALSE); + MoveWindow(m_hWnd, 0, 0, rect.right - rect.left, rect.bottom - rect.top, true); + UpdateWindow(m_hWnd); + + m_SwapChain->GetDesc(&m_SwapChainDesc); + + return S_OK; +} + +HRESULT +DeviceManager::ToggleFullscreen() +{ + if(GetWindowState() == kWindowFullscreen) + return LeaveFullscreenMode(); + else + return EnterFullscreenMode(); +} + +DeviceManager::WindowState +DeviceManager::GetWindowState() +{ + if(m_SwapChain && !m_SwapChainDesc.Windowed) + return kWindowFullscreen; + + if(m_hWnd == INVALID_HANDLE_VALUE) + return kWindowNone; + + if(IsZoomed(m_hWnd)) + return kWindowMaximized; + + if(IsIconic(m_hWnd)) + return kWindowMinimized; + + return kWindowNormal; +} + +HRESULT +DeviceManager::GetDisplayResolution(int& width, int& height) +{ + if(m_hWnd != INVALID_HANDLE_VALUE) + { + HMONITOR monitor = MonitorFromWindow(m_hWnd, MONITOR_DEFAULTTOPRIMARY); + MONITORINFO info; + info.cbSize = sizeof(MONITORINFO); + + if(GetMonitorInfo(monitor, &info)) + { + width = info.rcMonitor.right - info.rcMonitor.left; + height = info.rcMonitor.bottom - info.rcMonitor.top; + return S_OK; + } + } + + return E_FAIL; +} + +IDXGIAdapter* +DeviceManager::GetDXGIAdapter() +{ + if(!m_Device) + return NULL; + + IDXGIDevice* pDXGIDevice = NULL; + m_Device->QueryInterface(__uuidof(IDXGIDevice), reinterpret_cast(&pDXGIDevice)); + + IDXGIAdapter* pDXGIAdapter = NULL; + pDXGIDevice->GetParent(__uuidof(IDXGIAdapter), reinterpret_cast(&pDXGIAdapter)); + + pDXGIDevice->Release(); + + return pDXGIAdapter; +} + +void DeviceManager::SetPrimaryRenderTargetClearColor(bool enableClear, const float * pColor) +{ + m_EnableRenderTargetClear = enableClear; + + if(pColor) + memcpy(m_RenderTargetClearColor, pColor, sizeof(float) * 4); +} diff --git a/samples/dual_layer/D3D11/src/DeviceManager11.h b/samples/dual_layer/D3D11/src/DeviceManager11.h new file mode 100644 index 0000000..4d59d95 --- /dev/null +++ b/samples/dual_layer/D3D11/src/DeviceManager11.h @@ -0,0 +1,174 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include +#include +#include +#include + + +struct DeviceCreationParameters +{ + bool startMaximized; + bool startFullscreen; + int backBufferWidth; + int backBufferHeight; + int refreshRate; + int swapChainBufferCount; + DXGI_FORMAT swapChainFormat; + DXGI_USAGE swapChainUsage; + int swapChainSampleCount; + int swapChainSampleQuality; + D3D_DRIVER_TYPE driverType; + D3D_FEATURE_LEVEL featureLevel; + bool enableDebugRuntime; + + // For use in the case of multiple adapters. If this is non-null, device creation will try to match + // the given string against an adapter name. If the specified string exists as a sub-string of the + // adapter name, the device and window will be created on that adapter. Case sensitive. + const WCHAR* adapterNameSubstring; + + DeviceCreationParameters() + : startMaximized(false) + , startFullscreen(false) + , backBufferWidth(1280) + , backBufferHeight(720) + , refreshRate(0) + , swapChainBufferCount(1) + , swapChainFormat(DXGI_FORMAT_R8G8B8A8_UNORM) + , swapChainUsage(DXGI_USAGE_SHADER_INPUT | DXGI_USAGE_RENDER_TARGET_OUTPUT) + , swapChainSampleCount(1) + , swapChainSampleQuality(0) + , driverType(D3D_DRIVER_TYPE_HARDWARE) + , featureLevel(D3D_FEATURE_LEVEL_11_0) + , enableDebugRuntime(false) + , adapterNameSubstring(L"") + { } +}; + +typedef ID3D11RenderTargetView* RenderTargetView; + +#pragma warning(push) +#pragma warning(disable: 4100) // unreferenced formal parameter +class IVisualController +{ +private: + bool m_Enabled; +public: + IVisualController() : m_Enabled(true) { } + + virtual LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { return 1; } + virtual void Render(RenderTargetView RTV) { } + virtual void Animate(double fElapsedTimeSeconds) { } + virtual HRESULT DeviceCreated() { return S_OK; } + virtual void DeviceDestroyed() { } + virtual void BackBufferResized(uint32_t width, uint32_t height, uint32_t sampleCount) { } + + virtual void EnableController() { m_Enabled = true; } + virtual void DisableController() { m_Enabled = false; } + virtual bool IsEnabled() { return m_Enabled; } +}; +#pragma warning(pop) + +class DeviceManager +{ +public: + enum WindowState + { + kWindowNone, + kWindowNormal, + kWindowMinimized, + kWindowMaximized, + kWindowFullscreen + }; + +protected: + ID3D11Device* m_Device; + ID3D11DeviceContext* m_ImmediateContext; + IDXGISwapChain* m_SwapChain; + ID3D11RenderTargetView* m_BackBufferRTV; + DXGI_SWAP_CHAIN_DESC m_SwapChainDesc; + bool m_IsNvidia; + HWND m_hWnd; + std::list m_vControllers; + std::wstring m_WindowTitle; + double m_FixedFrameInterval; + UINT m_SyncInterval; + std::list m_vFrameTimes; + double m_AverageFrameTime; + double m_AverageTimeUpdateInterval; + bool m_InSizingModalLoop; + SIZE m_NewWindowSize; + bool m_ShutdownCalled; + bool m_EnableRenderTargetClear; + float m_RenderTargetClearColor[4]; +private: + HRESULT CreateRenderTarget(); + void ResizeSwapChain(); +public: + + DeviceManager() + : m_Device(NULL) + , m_ImmediateContext(NULL) + , m_SwapChain(NULL) + , m_BackBufferRTV(NULL) + , m_IsNvidia(false) + , m_hWnd(NULL) + , m_WindowTitle(L"") + , m_FixedFrameInterval(-1) + , m_SyncInterval(0) + , m_AverageFrameTime(0) + , m_AverageTimeUpdateInterval(0.5) + , m_InSizingModalLoop(false) + , m_ShutdownCalled(false) + { } + + virtual ~DeviceManager() + { + Shutdown(); + } + + virtual HRESULT CreateWindowDeviceAndSwapChain(const DeviceCreationParameters& params, LPWSTR windowTitle); + virtual HRESULT ChangeBackBufferFormat(DXGI_FORMAT format, UINT sampleCount); + virtual HRESULT ResizeWindow(int width, int height); + virtual HRESULT EnterFullscreenMode(int width = 0, int height = 0); + virtual HRESULT LeaveFullscreenMode(int windowWidth = 0, int windowHeight = 0); + virtual HRESULT ToggleFullscreen(); + + virtual void Shutdown(); + virtual void MessageLoop(); + virtual LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); + virtual void Render(); + virtual void Animate(double fElapsedTimeSeconds); + virtual void DeviceCreated(); + virtual void DeviceDestroyed(); + virtual void BackBufferResized(); + + void AddControllerToFront(IVisualController* pController); + void AddControllerToBack(IVisualController* pController); + void RemoveController(IVisualController* pController); + + void SetFixedFrameInterval(double seconds) { m_FixedFrameInterval = seconds; } + void DisableFixedFrameInterval() { m_FixedFrameInterval = -1; } + + bool IsNvidia() const { return m_IsNvidia; } + HWND GetHWND() { return m_hWnd; } + ID3D11Device* GetDevice() { return m_Device; } + ID3D11DeviceContext* GetImmediateContext() { return m_ImmediateContext; } + WindowState GetWindowState(); + bool GetVsyncEnabled() { return m_SyncInterval > 0; } + void SetVsyncEnabled(bool enabled) { m_SyncInterval = enabled ? 1 : 0; } + HRESULT GetDisplayResolution(int& width, int& height); + IDXGIAdapter* GetDXGIAdapter(); + double GetAverageFrameTime() { return m_AverageFrameTime; } + void SetAverageTimeUpdateInterval(double value) { m_AverageTimeUpdateInterval = value; } + void SetPrimaryRenderTargetClearColor(bool enableClear, const float* pColor); +}; diff --git a/samples/dual_layer/D3D11/src/GPUTimers.cpp b/samples/dual_layer/D3D11/src/GPUTimers.cpp new file mode 100644 index 0000000..a5015cb --- /dev/null +++ b/samples/dual_layer/D3D11/src/GPUTimers.cpp @@ -0,0 +1,133 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "GPUTimers.h" +#include + +#ifndef SAFE_RELEASE +#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } } +#endif + +#ifndef SAFE_D3D_CALL +#define SAFE_D3D_CALL(x) { if (x != S_OK) assert(0); } +#endif + +//-------------------------------------------------------------------------------- +void GPUTimers::Create(ID3D11Device* pD3DDevice, UINT NumTimers) +{ + m_Timers.resize(NumTimers); + + D3D11_QUERY_DESC queryDesc; + queryDesc.MiscFlags = 0; + + queryDesc.Query = D3D11_QUERY_TIMESTAMP_DISJOINT; + SAFE_D3D_CALL( pD3DDevice->CreateQuery(&queryDesc, &m_pDisjointTimestampQuery) ); + m_DisjointQueryInFlight = false; + + queryDesc.Query = D3D11_QUERY_TIMESTAMP; + for (UINT i = 0; i < m_Timers.size(); ++i) + { + SAFE_D3D_CALL( pD3DDevice->CreateQuery(&queryDesc, &m_Timers[i].pGPUTimersBegin) ); + SAFE_D3D_CALL( pD3DDevice->CreateQuery(&queryDesc, &m_Timers[i].pGPUTimersEnd) ); + m_Timers[i].TimestampQueryInFlight = false; + } +} + +//-------------------------------------------------------------------------------- +void GPUTimers::Release() +{ + SAFE_RELEASE(m_pDisjointTimestampQuery); + + for (UINT i = 0; i < m_Timers.size(); ++i) + { + SAFE_RELEASE(m_Timers[i].pGPUTimersBegin); + SAFE_RELEASE(m_Timers[i].pGPUTimersEnd); + } + + m_Timers.clear(); +} + +//-------------------------------------------------------------------------------- +void GPUTimers::BeginFrame(ID3D11DeviceContext* pDeviceContext) +{ + if (!m_DisjointQueryInFlight) + { + pDeviceContext->Begin(m_pDisjointTimestampQuery); + } +} + +//-------------------------------------------------------------------------------- +void GPUTimers::EndFrame(ID3D11DeviceContext* pDeviceContext) +{ + if (!m_DisjointQueryInFlight) + { + pDeviceContext->End(m_pDisjointTimestampQuery); + } + m_DisjointQueryInFlight = true; + + D3D11_QUERY_DATA_TIMESTAMP_DISJOINT disjointTimestampValue; + if (pDeviceContext->GetData(m_pDisjointTimestampQuery, &disjointTimestampValue, sizeof(disjointTimestampValue), D3D11_ASYNC_GETDATA_DONOTFLUSH) == S_OK) + { + m_DisjointQueryInFlight = false; + + if (!disjointTimestampValue.Disjoint) + { + double InvFrequencyMS = 1000.0 / disjointTimestampValue.Frequency; + for (UINT i = 0; i < m_Timers.size(); ++i) + { + if (m_Timers[i].TimestampQueryInFlight) + { + UINT64 TimestampValueBegin; + UINT64 TimestampValueEnd; + if ((pDeviceContext->GetData(m_Timers[i].pGPUTimersBegin, &TimestampValueBegin, sizeof(UINT64), D3D11_ASYNC_GETDATA_DONOTFLUSH) == S_OK) && + (pDeviceContext->GetData(m_Timers[i].pGPUTimersEnd, &TimestampValueEnd, sizeof(UINT64), D3D11_ASYNC_GETDATA_DONOTFLUSH) == S_OK)) + { + m_Timers[i].TimestampQueryInFlight = false; + m_Timers[i].GPUTimeInMS = float(double(TimestampValueEnd - TimestampValueBegin) * InvFrequencyMS); + } + } + else + { + m_Timers[i].GPUTimeInMS = 0.f; + } + } + } + } +} + +//-------------------------------------------------------------------------------- +void GPUTimers::StartTimer(ID3D11DeviceContext* pDeviceContext, UINT i) +{ + if (!m_Timers[i].TimestampQueryInFlight) + { + pDeviceContext->End(m_Timers[i].pGPUTimersBegin); + } +} + +//-------------------------------------------------------------------------------- +void GPUTimers::StopTimer(ID3D11DeviceContext* pDeviceContext, UINT i) +{ + if (!m_Timers[i].TimestampQueryInFlight) + { + pDeviceContext->End(m_Timers[i].pGPUTimersEnd); + } + m_Timers[i].TimestampQueryInFlight = true; +} + +//-------------------------------------------------------------------------------- +float GPUTimers::GetGPUTimeInMS(UINT i) +{ + if (i < m_Timers.size()) + { + return m_Timers[i].GPUTimeInMS; + } + assert(0); + return 0.f; +} diff --git a/samples/dual_layer/D3D11/src/GPUTimers.h b/samples/dual_layer/D3D11/src/GPUTimers.h new file mode 100644 index 0000000..4ccc37b --- /dev/null +++ b/samples/dual_layer/D3D11/src/GPUTimers.h @@ -0,0 +1,68 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#pragma warning( disable : 4995 ) +#include +#include + +typedef int RenderTimeId; + +//-------------------------------------------------------------------------------- +struct GPUTimerState +{ + bool TimestampQueryInFlight; + ID3D11Query* pGPUTimersBegin; + ID3D11Query* pGPUTimersEnd; + float GPUTimeInMS; +}; + +//-------------------------------------------------------------------------------- +class GPUTimers +{ +public: + void Create(ID3D11Device* pD3DDevice, UINT NumTimers); + void Release(); + + void BeginFrame(ID3D11DeviceContext* pDeviceContext); + void EndFrame(ID3D11DeviceContext* pDeviceContext); + + void StartTimer(ID3D11DeviceContext* pDeviceContext, UINT Id); + void StopTimer(ID3D11DeviceContext* pDeviceContext, UINT Id); + + float GetGPUTimeInMS(UINT Id); + +protected: + bool m_DisjointQueryInFlight; + ID3D11Query* m_pDisjointTimestampQuery; + std::vector m_Timers; +}; + +//-------------------------------------------------------------------------------- +class GPUTimer +{ +public: + GPUTimer(GPUTimers* pGPUTimers, ID3D11DeviceContext* pDeviceContext, RenderTimeId Id) + : m_pGPUTimers(pGPUTimers) + , m_pDeviceContext(pDeviceContext) + , m_RenderTimeId(Id) + { + m_pGPUTimers->StartTimer(m_pDeviceContext, m_RenderTimeId); + } + ~GPUTimer() + { + m_pGPUTimers->StopTimer(m_pDeviceContext, m_RenderTimeId); + } + +private: + GPUTimers* m_pGPUTimers; + ID3D11DeviceContext* m_pDeviceContext; + RenderTimeId m_RenderTimeId; +}; diff --git a/samples/dual_layer/D3D11/src/HBAOSample.cpp b/samples/dual_layer/D3D11/src/HBAOSample.cpp new file mode 100644 index 0000000..0c7cb48 --- /dev/null +++ b/samples/dual_layer/D3D11/src/HBAOSample.cpp @@ -0,0 +1,134 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "HBAOSample.h" +#include "imgui/imgui.h" +#include + +void HBAOSample::RenderUI() +{ + bool show_ssao_window = true; + bool show_test_window = false; + + // Show SSAO property window + if (show_ssao_window) + { + ImGui::SetNextWindowPos(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); + ImGui::SetNextWindowSize(ImVec2(400, 300), ImGuiSetCond_FirstUseEver); + ImGui::Begin("HBAO+", &show_ssao_window); + + GFSDK_SSAO_Version Version; + GFSDK_SSAO_Status Status; + Status = GFSDK_SSAO_GetVersion(&Version); + assert(Status == GFSDK_SSAO_OK); + + ImGui::Text("HBAO+ %d.%d.%d.%d", Version.Major, Version.Minor, Version.Branch, Version.Revision); + + ImGui::Text("AO: %.2f ms/frame", mFrameTimeMs); + + float radius = mAOParameters.Radius; + ImGui::DragFloat("Radius", &radius, 0.05f, 0.0f, 100.0f); + if (radius != mAOParameters.Radius) + { + mAOParameters.Radius = radius; + int stop = 0; + stop = stop; + } + ImGui::DragFloat("PowerExponent", &mAOParameters.PowerExponent, 0.05f, 1.f, 8.f); + ImGui::DragFloat("Bias", &mAOParameters.Bias, 0.001f, 0, 0.5f); + + ImGui::DragFloat("SmallScaleAO", &mAOParameters.SmallScaleAO, 0.01f, 0.f, 2.f); + ImGui::DragFloat("LargeScaleAO", &mAOParameters.LargeScaleAO, 0.01f, 0.f, 2.f); + + bool BlurEnabled = mAOParameters.Blur.Enable ? true : false; + ImGui::Checkbox("Blur.Enable", &BlurEnabled); + mAOParameters.Blur.Enable = BlurEnabled; + + ImGui::DragFloat("Blur.Sharpness", &mAOParameters.Blur.Sharpness, 0.f, 0.f, 32.0f); + + { + const char* listbox_items[] = { "GFSDK_SSAO_FP16_VIEW_DEPTHS", "GFSDK_SSAO_FP32_VIEW_DEPTHS" }; + int listbox_item_current = (int)mAOParameters.DepthStorage; + ImGui::ListBox("DepthStorage", &listbox_item_current, listbox_items, ARRAYSIZE(listbox_items), 2); + mAOParameters.DepthStorage = (GFSDK_SSAO_DepthStorage)(listbox_item_current); + } + + { + bool EnableDualLayerAO = mAOParameters.EnableDualLayerAO ? true : false; + ImGui::Checkbox("DualLayerAO", &EnableDualLayerAO); + mAOParameters.EnableDualLayerAO = EnableDualLayerAO; + } + ImGui::End(); + } + + // Show the ImGui test window. Most of the sample code is in ImGui::ShowTestWindow() + if (show_test_window) + { + ImGui::SetNextWindowPos(ImVec2(650, 20), ImGuiSetCond_FirstUseEver); // Normally user code doesn't need/want to call it because positions are saved in .ini file anyway. Here we just want to make the demo initial state a bit more friendly! + ImGui::ShowTestWindow(&show_test_window); + } + + ImGui::Render(); + + auto& io = ImGui::GetIO(); + + static float oldMouseX = io.MousePos.x; + static float oldMouseY = io.MousePos.y; + + if (io.MouseClicked[0]) + { + oldMouseX = io.MousePos.x; + oldMouseY = io.MousePos.y; + } + + if (!io.WantCaptureMouse && io.MouseDown[0]) + { + float mouseDeltaX = io.MousePos.x - oldMouseX; + oldMouseX = io.MousePos.x; + float mouseDeltaY = io.MousePos.y - oldMouseY; + oldMouseY = io.MousePos.y; + + const float kRotationDelta = 0.001f; + mCamera.AdvanceAngles(-mouseDeltaX * kRotationDelta, -mouseDeltaY * kRotationDelta); + } + + const float kMoveDelta = 0.01f; + if (io.KeysDown['W'] || io.KeysDown[VK_UP]) + { + mCamera.MoveForward(kMoveDelta); + } + if (io.KeysDown['S'] || io.KeysDown[VK_DOWN]) + { + mCamera.MoveForward(-kMoveDelta); + } + + if (io.KeysDown['D'] || io.KeysDown[VK_RIGHT]) + { + mCamera.MoveRight(kMoveDelta); + } + if (io.KeysDown['A'] || io.KeysDown[VK_LEFT]) + { + mCamera.MoveRight(-kMoveDelta); + } +} + +void HBAOSample::InitializeHBAOParameters() +{ + mAOParameters = {}; + + mAOParameters.Radius = 2.f; + mAOParameters.Bias = 0.2f; + mAOParameters.PowerExponent = 2.f; + mAOParameters.Blur.Enable = true; + mAOParameters.Blur.Sharpness = 32.f; + mAOParameters.Blur.Radius = GFSDK_SSAO_BLUR_RADIUS_4; + mAOParameters.DepthStorage = GFSDK_SSAO_FP32_VIEW_DEPTHS; + mAOParameters.EnableDualLayerAO = true; +} diff --git a/samples/dual_layer/D3D11/src/HBAOSample.h b/samples/dual_layer/D3D11/src/HBAOSample.h new file mode 100644 index 0000000..caf5e3e --- /dev/null +++ b/samples/dual_layer/D3D11/src/HBAOSample.h @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include "Scene.h" +#include "Camera.h" +#include "GFSDK_SSAO.h" + +enum GPUTimeId +{ + GPU_TIME_AO, + NUM_GPU_TIMES +}; + +class HBAOSample +{ +public: + virtual void Initialize() {}; + virtual void Run() = 0; + virtual void RenderUI(); + +protected: + void InitializeHBAOParameters(); + + Scene mScene; + Camera mCamera; + uint32_t mWindowWidth = 1280; + uint32_t mWindowHeight = 720; + float mFrameTimeMs; + GFSDK_SSAO_Parameters mAOParameters; +}; \ No newline at end of file diff --git a/samples/dual_layer/D3D11/src/HBAOSampleD3D11.cpp b/samples/dual_layer/D3D11/src/HBAOSampleD3D11.cpp new file mode 100644 index 0000000..6246a2d --- /dev/null +++ b/samples/dual_layer/D3D11/src/HBAOSampleD3D11.cpp @@ -0,0 +1,206 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "HBAOSampleD3D11.h" +#include "DeviceManager11.h" +#include "imgui/imgui.h" +#include "imgui/imgui_impl_dx11.h" +#include "GPUTimers.h" + +static const uint32_t kNumAppDescriptors = 2; +static const uint32_t kNumImguiDescriptors = 2; +static const uint32_t kNumTotalAppDescriptors = kNumImguiDescriptors + kNumAppDescriptors; + +GPUTimers gGPUTimers; + +void HBAOSampleD3D11::Initialize() +{ + DeviceCreationParameters deviceParams{}; + deviceParams.backBufferWidth = mWindowWidth; + deviceParams.backBufferHeight = mWindowHeight; + deviceParams.driverType = D3D_DRIVER_TYPE_HARDWARE; +#if ENABLE_DEBUG_RUNTIME + deviceParams.enableDebugRuntime = true; +#else + deviceParams.enableDebugRuntime = false; +#endif + deviceParams.featureLevel = D3D_FEATURE_LEVEL_11_0; + deviceParams.refreshRate = 0; + deviceParams.startFullscreen = false; + deviceParams.startMaximized = false; + deviceParams.swapChainBufferCount = 2; + deviceParams.swapChainFormat = DXGI_FORMAT_R8G8B8A8_UNORM; + deviceParams.swapChainUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + + mDeviceManager.CreateWindowDeviceAndSwapChain(deviceParams, L"HBAO+ D3D11 Sample"); + + mDeviceManager.AddControllerToBack(this); + + mDevice = mDeviceManager.GetDevice(); + mDeviceContext = mDeviceManager.GetImmediateContext(); + + InitializeHBAOPlus(); + InitializeRenderTargets(); + + ImGui_ImplDX11_Init(mDeviceManager.GetHWND(), mDevice, mDeviceContext); + ImGui_ImplDX11_CreateDeviceObjects(); + + mScene.InitializeDefault(); + mSceneRenderer.InitializeWithScene(mDevice, mScene); + + gGPUTimers.Create(mDevice, NUM_GPU_TIMES); +} + +void HBAOSampleD3D11::Render(RenderTargetView RTV) +{ + gGPUTimers.BeginFrame(mDeviceContext); + D3D11_VIEWPORT viewport{}; + viewport.TopLeftX = 0; + viewport.TopLeftY = 0; + viewport.Width = (FLOAT)mWindowWidth; + viewport.Height = (FLOAT)mWindowHeight; + viewport.MinDepth = 0.0f; + viewport.MaxDepth = 1.0f; + + D3D11_RECT scissorRect{}; + scissorRect.left = 0; + scissorRect.right = mWindowWidth; + scissorRect.top = 0; + scissorRect.bottom = mWindowHeight; + + mDeviceContext->RSSetScissorRects(1, &scissorRect); + mDeviceContext->RSSetViewports(1, &viewport); + float color[4] = { 0.0f, 0.0f, 0.0f, 1.0f }; + mDeviceContext->ClearRenderTargetView(RTV, color); + mDeviceContext->ClearDepthStencilView(mDepthStencilView[0].Get(), D3D11_CLEAR_DEPTH, 1.0f, 0); + mDeviceContext->ClearDepthStencilView(mDepthStencilView[1].Get(), D3D11_CLEAR_DEPTH, 1.0f, 0); + + // 1. Render background meshes to DepthStencilView[0] + mDeviceContext->OMSetRenderTargets(1, &RTV, mDepthStencilView[0].Get()); + mSceneRenderer.RenderLayer(mDeviceContext, 0, mCamera); // draw the cube mesh (see Scene.cpp) + + // 2. Copy DepthStencilView[0] to DepthStencilView[1] + if (mAOParameters.EnableDualLayerAO) + { + mDeviceContext->CopyResource(mDepthStencil[1].Get(), mDepthStencil[0].Get()); + } + + // 3. Render foreground meshes to DepthStencilView[0] + mSceneRenderer.RenderLayer(mDeviceContext, 1, mCamera); // draw the actor mesh (see Scene.cpp) + + GFSDK_SSAO_InputData_D3D11 InputData = {}; + InputData.DepthData.DepthTextureType = GFSDK_SSAO_HARDWARE_DEPTHS; + + // FullResDepthTextureSRV + if (mAOParameters.EnableDualLayerAO) + { + InputData.DepthData.pFullResDepthTextureSRV = mDepthSRV[0].Get(); + InputData.DepthData.pFullResDepthTexture2ndLayerSRV = mDepthSRV[1].Get(); + } + else + { + InputData.DepthData.pFullResDepthTextureSRV = mDepthSRV[0].Get(); + InputData.DepthData.pFullResDepthTexture2ndLayerSRV = nullptr; + } + + // DepthData + InputData.DepthData.ProjectionMatrix.Data = GFSDK_SSAO_Float4x4((const GFSDK_SSAO_FLOAT*)&mCamera.mMatProj); + InputData.DepthData.ProjectionMatrix.Layout = GFSDK_SSAO_ROW_MAJOR_ORDER; + InputData.DepthData.MetersToViewSpaceUnits = 1.0f; + InputData.NormalData.Enable = false; + + GFSDK_SSAO_RenderMask RenderMask = GFSDK_SSAO_RENDER_AO; + + + GFSDK_SSAO_Output_D3D11 Output; + + Output.pRenderTargetView = RTV; + + { + GPUTimer timer(&gGPUTimers, mDeviceContext, GPU_TIME_AO); + GFSDK_SSAO_Status status = mSSAOContext->RenderAO(mDeviceContext, InputData, mAOParameters, Output, RenderMask); + assert(status == GFSDK_SSAO_OK); + } + + mFrameTimeMs = gGPUTimers.GetGPUTimeInMS(GPU_TIME_AO); + + + ImGui_ImplDX11_NewFrame(); + RenderUI(); + gGPUTimers.EndFrame(mDeviceContext); +} + +void HBAOSampleD3D11::BackBufferResized(uint32_t width, uint32_t height, uint32_t sampleCount) +{ + mWindowWidth = width; + mWindowHeight = height; + + mCamera.InitProjectionMatrix(width, height); + + InitializeRenderTargets(); +} + +bool HBAOSampleD3D11::InitializeHBAOPlus() +{ + InitializeHBAOParameters(); + + const UINT NodeMask = 1; + + GFSDK_SSAO_CustomHeap CustomHeap; + CustomHeap.new_ = ::operator new; + CustomHeap.delete_ = ::operator delete; + + GFSDK_SSAO_Status status = GFSDK_SSAO_CreateContext_D3D11(mDevice, &mSSAOContext, &CustomHeap); + assert(status == GFSDK_SSAO_OK); + return true; +} + +bool HBAOSampleD3D11::InitializeRenderTargets() +{ + D3D11_TEXTURE2D_DESC depthResourceDesc = CD3D11_TEXTURE2D_DESC(DXGI_FORMAT_R32_TYPELESS, mWindowWidth, mWindowHeight, 1, 0, D3D11_BIND_DEPTH_STENCIL | D3D11_BIND_SHADER_RESOURCE); + for (uint32_t i = 0; i < 2; ++i) + { + mDevice->CreateTexture2D(&depthResourceDesc, nullptr, &mDepthStencil[i]); + } + + for (uint32_t i = 0; i < 2; ++i) + { + D3D11_DEPTH_STENCIL_VIEW_DESC dsvDesc{}; + dsvDesc.Format = DXGI_FORMAT_D32_FLOAT; + dsvDesc.Flags = 0; + dsvDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; + dsvDesc.Texture2D.MipSlice = 0; + + mDevice->CreateDepthStencilView(mDepthStencil[i].Get(), &dsvDesc, &mDepthStencilView[i]); + + D3D11_SHADER_RESOURCE_VIEW_DESC depthSRVDesc = {}; + + depthSRVDesc.Format = DXGI_FORMAT_R32_FLOAT; + + depthSRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; + depthSRVDesc.Texture2D.MipLevels = 1; + depthSRVDesc.Texture2D.MostDetailedMip = 0; // No MIP + mDevice->CreateShaderResourceView(mDepthStencil[i].Get(), &depthSRVDesc, &mDepthSRV[i]); + } + + return true; +} + +void HBAOSampleD3D11::Run() +{ + mDeviceManager.MessageLoop(); +} + +extern LRESULT ImGui_ImplDX11_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); + +LRESULT HBAOSampleD3D11::MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + return ImGui_ImplDX11_WndProcHandler(hWnd, uMsg, wParam, lParam); +} diff --git a/samples/dual_layer/D3D11/src/HBAOSampleD3D11.h b/samples/dual_layer/D3D11/src/HBAOSampleD3D11.h new file mode 100644 index 0000000..661449c --- /dev/null +++ b/samples/dual_layer/D3D11/src/HBAOSampleD3D11.h @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "HBAOSample.h" +#include "DeviceManager11.h" +#include +#include +#include "SceneRenderer.h" + +#include + +using namespace Microsoft::WRL; +class HBAOSampleD3D11 : public HBAOSample, public IVisualController +{ +public: + void Initialize() override; + void Run() override; + + void Render(RenderTargetView RTV) override; + void BackBufferResized(uint32_t width, uint32_t height, uint32_t sampleCount) override; + +private: + bool InitializeHBAOPlus(); + bool InitializeRenderTargets(); + LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) override; + + DeviceManager mDeviceManager; + ComPtr mDepthStencil[2]; + ComPtr mNormalsGBuffer; + ComPtr mDepthStencilView[2]; + ComPtr mDepthSRV[2]; + + ID3D11Device* mDevice = nullptr; + ID3D11DeviceContext* mDeviceContext = nullptr; + + ID3D12CommandQueue* mCommandQueue; + + SceneRenderer mSceneRenderer; + + GFSDK_SSAO_InputData_D3D11 mSSAOInputData; + GFSDK_SSAO_Context_D3D11* mSSAOContext; +}; \ No newline at end of file diff --git a/samples/dual_layer/D3D11/src/Main.cpp b/samples/dual_layer/D3D11/src/Main.cpp new file mode 100644 index 0000000..f1aa53f --- /dev/null +++ b/samples/dual_layer/D3D11/src/Main.cpp @@ -0,0 +1,20 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include +#include "HBAOSampleD3D11.h" + +INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nShowCmd) +{ + HBAOSampleD3D11 hbaoSample; + hbaoSample.Initialize(); + hbaoSample.Run(); + return 0; +} \ No newline at end of file diff --git a/samples/dual_layer/D3D11/src/Mesh.cpp b/samples/dual_layer/D3D11/src/Mesh.cpp new file mode 100644 index 0000000..efc32a2 --- /dev/null +++ b/samples/dual_layer/D3D11/src/Mesh.cpp @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "Mesh.h" + +#define TINYOBJLOADER_IMPLEMENTATION +#include "tiny_obj_loader.h" + +std::shared_ptr Mesh::LoadFromFile(const std::string& filename) +{ + std::shared_ptr mesh = std::make_shared(); + std::ifstream inputFile(filename); + tinyobj::attrib_t attrib; + std::vector shapes; + std::vector materials; + std::string err; + + tinyobj::LoadObj(&attrib, &shapes, &materials, &err, &inputFile, nullptr, true); + + tinyobj::shape_t& shape = shapes[0]; + + + for (auto& index : shape.mesh.indices) + { + mesh->mIndices.push_back((uint32_t)index.vertex_index); + } + + Vertex vertex{}; + for (uint32_t i = 0; i < attrib.vertices.size() / 3; ++i) + { + memcpy(vertex.Position, &attrib.vertices[i * 3], sizeof(float) * 3); + mesh->mVertices.push_back(vertex); + } + return mesh; +} \ No newline at end of file diff --git a/samples/dual_layer/D3D11/src/Mesh.h b/samples/dual_layer/D3D11/src/Mesh.h new file mode 100644 index 0000000..4023c04 --- /dev/null +++ b/samples/dual_layer/D3D11/src/Mesh.h @@ -0,0 +1,31 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once + +#include +#include +#include +#include + +class Mesh +{ +public: + struct Vertex + { + float Position[3]; + }; + + static std::shared_ptr LoadFromFile(const std::string& filename); + +//protected: + std::vector mVertices; + std::vector mIndices; +}; \ No newline at end of file diff --git a/samples/dual_layer/D3D11/src/MeshRenderer.cpp b/samples/dual_layer/D3D11/src/MeshRenderer.cpp new file mode 100644 index 0000000..ba62de9 --- /dev/null +++ b/samples/dual_layer/D3D11/src/MeshRenderer.cpp @@ -0,0 +1,80 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "MeshRenderer.h" +#include + +#include "D3D11Mesh.h" +#include "Camera.h" + +void MeshRenderer::Initialize(ID3D11Device* device) +{ + D3D11_INPUT_ELEMENT_DESC inputLayout[] = + { + {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0} + }; + + ID3D10Blob* vs = nullptr; + ID3D10Blob* ps = nullptr; + ID3D10Blob* errors = nullptr; + + D3DCompileFromFile(L"..\\Media\\StaticMesh.hlsl", nullptr, nullptr, "VSMain", "vs_5_0", 0, 0, &vs, &errors); + D3DCompileFromFile(L"..\\Media\\StaticMesh.hlsl", nullptr, nullptr, "PSMain", "ps_5_0", 0, 0, &ps, &errors); + + device->CreateInputLayout(inputLayout, ARRAYSIZE(inputLayout), vs->GetBufferPointer(), vs->GetBufferSize(), &mInputLayout); + + device->CreateVertexShader(vs->GetBufferPointer(), vs->GetBufferSize(), nullptr, &mVertexShader); + device->CreatePixelShader(ps->GetBufferPointer(), ps->GetBufferSize(), nullptr, &mPixelShader); + + D3D11_RASTERIZER_DESC rasterizerDesc = CD3D11_RASTERIZER_DESC(D3D11_DEFAULT); + rasterizerDesc.CullMode = D3D11_CULL_NONE; + device->CreateRasterizerState(&rasterizerDesc, &mRasterizerState); + + D3D11_BLEND_DESC blendDesc = CD3D11_BLEND_DESC(D3D11_DEFAULT); + device->CreateBlendState(&blendDesc, &mBlendState); + + D3D11_DEPTH_STENCIL_DESC depthStencilDesc = CD3D11_DEPTH_STENCIL_DESC(D3D11_DEFAULT); + depthStencilDesc.DepthFunc = D3D11_COMPARISON_LESS_EQUAL; + device->CreateDepthStencilState(&depthStencilDesc, &mDepthStencilState); + + D3D11_BUFFER_DESC bufferDesc = CD3D11_BUFFER_DESC(sizeof(XMMATRIX) * 2, D3D11_BIND_CONSTANT_BUFFER); + device->CreateBuffer(&bufferDesc, nullptr, &mPerFrameCB); + + bufferDesc.ByteWidth = sizeof(XMMATRIX); + device->CreateBuffer(&bufferDesc, nullptr, &mPerObjectCB); +} + +void MeshRenderer::RenderMeshes(ID3D11DeviceContext* deviceContext, const std::vector& meshes, const Camera& camera) +{ + deviceContext->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); + deviceContext->IASetInputLayout(mInputLayout.Get()); + deviceContext->VSSetShader(mVertexShader.Get(), nullptr, 0); + deviceContext->PSSetShader(mPixelShader.Get(), nullptr, 0); + deviceContext->RSSetState(mRasterizerState.Get()); + float kBlendFactor[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; + deviceContext->OMSetBlendState(mBlendState.Get(), kBlendFactor, 0xFFFFFFFF); + deviceContext->OMSetDepthStencilState(mDepthStencilState.Get(), 0); + ID3D11Buffer* constantBuffers[2] = { mPerFrameCB.Get(), mPerObjectCB.Get() }; + deviceContext->VSSetConstantBuffers(0, 2, constantBuffers); + ID3D11Buffer* vertexBuffer = nullptr; + UINT stride = sizeof(Mesh::Vertex); + UINT offset = 0; + + deviceContext->UpdateSubresource(mPerFrameCB.Get(), 0, nullptr, camera.PerFrameData, 0, 0); + + for (const D3D11Mesh& mesh : meshes) + { + deviceContext->UpdateSubresource(mPerObjectCB.Get(), 0, nullptr, &mesh.mMatWorld, 0, 0); + deviceContext->IASetIndexBuffer(mesh.mIndexBuffer.Get(), DXGI_FORMAT_R32_UINT, 0); + vertexBuffer = mesh.mVertexBuffer.Get(); + deviceContext->IASetVertexBuffers(0, 1, &vertexBuffer, &stride, &offset); + deviceContext->DrawIndexedInstanced(mesh.mNumIndices, 1, 0, 0, 0); + } +} \ No newline at end of file diff --git a/samples/dual_layer/D3D11/src/MeshRenderer.h b/samples/dual_layer/D3D11/src/MeshRenderer.h new file mode 100644 index 0000000..21e70bd --- /dev/null +++ b/samples/dual_layer/D3D11/src/MeshRenderer.h @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include +#include +#include + +using namespace Microsoft::WRL; + +class Camera; +class D3D11Mesh; + +class MeshRenderer +{ +public: + void Initialize(ID3D11Device* device); + void RenderMeshes(ID3D11DeviceContext* deviceContext, const std::vector& meshes, const Camera& camera); + +private: + //ComPtr mPSO; + //ComPtr mRootSignature; + ComPtr mInputLayout; + ComPtr mRasterizerState; + ComPtr mBlendState; + ComPtr mDepthStencilState; + + ComPtr mVertexShader; + ComPtr mPixelShader; + + ComPtr mPerFrameCB; + ComPtr mPerObjectCB; +}; \ No newline at end of file diff --git a/samples/dual_layer/D3D11/src/SSAO11.rc b/samples/dual_layer/D3D11/src/SSAO11.rc new file mode 100644 index 0000000..628e3ee --- /dev/null +++ b/samples/dual_layer/D3D11/src/SSAO11.rc @@ -0,0 +1,72 @@ +// Microsoft Visual C++ generated resource script. +// + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "WinResRc.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""WinResRc.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON1 ICON "..\\Media\\directx.ico" +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/samples/dual_layer/D3D11/src/SSAO11_2015.vcxproj b/samples/dual_layer/D3D11/src/SSAO11_2015.vcxproj new file mode 100644 index 0000000..b7ebaed --- /dev/null +++ b/samples/dual_layer/D3D11/src/SSAO11_2015.vcxproj @@ -0,0 +1,466 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + SampleApp_D3D11 + {A66D14E4-918C-493C-81C9-7661CCCE336D} + + + Win32Proj + 8.1 + + + + Application + v100 + + + Application + v100 + + + Application + v140 + Unicode + + + Application + v140 + Unicode + + + Application + v140 + Unicode + + + Application + v140 + Unicode + + + Application + v100 + Unicode + + + Application + v140 + Unicode + + + Application + v140 + Unicode + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.50727.1 + + + ..\Bin\ + ..\Temp\$(Configuration)\$(ProjectName)\ + true + true + true + $(ProjectName)d.win32 + + + true + true + true + $(ProjectName)d.win64 + + + ..\Bin\ + ..\Temp\$(Configuration)\$(ProjectName)\ + true + false + + + ..\Bin\ + ..\Temp\$(Configuration)\$(ProjectName)\ + false + true + true + $(ProjectName).win32 + + + false + true + true + $(ProjectName).win64 + + + ..\Bin\ + ..\Temp\$(Configuration)\$(ProjectName)\ + false + false + + + ..\..\Bin\ + ..\..\Temp\$(Configuration)\$(ProjectName)\ + false + false + + + ..\Temp\$(Configuration)\$(ProjectName)\ + ..\Bin\ + + + + Disabled + ..\..\..\..\include;..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + Default + MultiThreadedDebugDLL + false + NotUsing + + + + + Level3 + EditAndContinue + + + 0x0000 + + + /IGNORE:4089 %(AdditionalOptions) + GFSDK_SSAO_D3D11.win32.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName)$(TargetExt) + ..\..\..\..\lib;%(AdditionalLibraryDirectories) + $(IntDir)$(ProjectName).manifest + %(IgnoreSpecificDefaultLibraries) + true + $(TargetDir)$(TargetName).pdb + Windows + false + + MachineX86 + + + copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D11.win32.dll ..\Bin +copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D11.win32.pdb ..\Bin + + + + + Disabled + ..\external\AntTweakBar\1.16\include;..\external\zlib\1.2.8\src;..\..\..\lib;..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + Default + MultiThreadedDebugDLL + false + + + DXUT.h + + + Level4 + ProgramDatabase + + + 0x0000 + + + /IGNORE:4089 %(AdditionalOptions) + GFSDK_SSAO_D3D11.win64.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) + true + $(OutDir)EmptyProject10.pdb + Windows + false + + MachineX64 + ..\external\AntTweakBar\1.16\Lib\Win64;..\..\..\lib;%(AdditionalLibraryDirectories) + + + copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D11.win64.dll ..\Bin +copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D11.win64.pdb ..\Bin + + + + + X64 + + + Disabled + ..\..\..\..\include;..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;PROFILE;%(PreprocessorDefinitions) + true + Default + MultiThreadedDebug + NotUsing + + + Level3 + ProgramDatabase + + + /IGNORE:4089 %(AdditionalOptions) + GFSDK_SSAO_D3D11.win64.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) + true + $(OutDir)EmptyProject10.pdb + Windows + false + + MachineX64 + ..\..\..\..\lib;%(AdditionalLibraryDirectories) + + + + + Disabled + OnlyExplicitInline + true + ..\..\..\..\include;..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + Sync + MultiThreadedDLL + false + true + StreamingSIMDExtensions + NotUsing + + + + + Level3 + + + + 0x0000 + + + /IGNORE:4089 %(AdditionalOptions) + GFSDK_SSAO_D3D11.win32.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName)$(TargetExt) + ..\..\..\..\lib;%(AdditionalLibraryDirectories) + $(IntDir)$(ProjectName).manifest + %(IgnoreSpecificDefaultLibraries) + false + Windows + true + true + false + + MachineX86 + + + copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D11.win32.dll ..\Bin +copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D11.win32.pdb ..\Bin + + + + + MaxSpeed + OnlyExplicitInline + true + ..\external\AntTweakBar\1.16\include;..\external\zlib\1.2.8\src;..\..\..\lib;..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + Sync + MultiThreadedDLL + false + true + + + DXUT.h + + + Level4 + + + + + 0x0000 + + + /IGNORE:4089 %(AdditionalOptions) + GFSDK_SSAO_D3D11.win64.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).win64.exe + ..\external\AntTweakBar\1.16\Lib\Win32;%OUTPUT_DIR_LIB%;..\..\..\lib;%(AdditionalLibraryDirectories) + $(IntDir)$(ProjectName).manifest + %(IgnoreSpecificDefaultLibraries) + false + Windows + true + true + false + + + + + copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D11.win64.dll ..\Bin +copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D11.win64.pdb ..\Bin + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + true + ..\..\..\..\include;..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + Async + MultiThreaded + true + NotUsing + + + Level3 + ProgramDatabase + + + /IGNORE:4089 %(AdditionalOptions) + GFSDK_SSAO_D3D11.win64.lib;dxguid.lib;d3d11.lib;winmm.lib;comctl32.lib;dxgi.lib;d3dcompiler.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName)$(TargetExt) + true + Windows + true + true + false + + MachineX64 + ..\..\..\..\lib;%(AdditionalLibraryDirectories) + + + + + X64 + + + MaxSpeed + OnlyExplicitInline + true + ..\..\..\public\testapp\include\DXSDK;..\..\..\public\testapp\include\DXUT\Core;..\..\..\public\testapp\include\DXUT\Optional;..\..\..\public\lib;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;PROFILE;%(PreprocessorDefinitions) + true + + MultiThreaded + true + Create + DXUT.h + Level4 + ProgramDatabase + + + /IGNORE:4089 %(AdditionalOptions) + dxerr9.lib;dxguid.lib;d3dx9.lib;d3d9.lib;winmm.lib;comctl32.lib;%(AdditionalDependencies) + $(OutDir)EmptyProject10.exe + true + Windows + true + true + false + + MachineX64 + ..\..\lib\x64;..\lib;%(AdditionalLibraryDirectories) + + + + + ..\external\DXSDK\June_2010\Include;..\include\DXUT\Core;..\include\DXUT\Optional;..\..\..\lib;..\include;%(AdditionalIncludeDirectories) + + + ..\external\DXSDK\June_2010\Lib\x86;%OUTPUT_DIR_LIB%;..\..\..\lib;..\lib;%(AdditionalLibraryDirectories) + + + copy /Y ..\..\..\lib\GFSDK_SSAO.win32.dll ..\Bin + + + + + + ..\external\DXSDK\June_2010\Include;..\include\DXUT\Core;..\include\DXUT\Optional;..\..\..\lib;..\include;%(AdditionalIncludeDirectories) + + + ..\external\DXSDK\June_2010\Lib\x86;%OUTPUT_DIR_LIB%;..\..\..\lib;..\lib;%(AdditionalLibraryDirectories) + + + copy /Y ..\..\..\lib\GFSDK_SSAO.win32.dll ..\Bin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/dual_layer/D3D11/src/SSAO11_2015.vcxproj.filters b/samples/dual_layer/D3D11/src/SSAO11_2015.vcxproj.filters new file mode 100644 index 0000000..bba5677 --- /dev/null +++ b/samples/dual_layer/D3D11/src/SSAO11_2015.vcxproj.filters @@ -0,0 +1,120 @@ + + + + + + + + + + + src\imgui + + + src\imgui + + + src\imgui + + + src\imgui + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + + + src\imgui + + + src\imgui + + + src\imgui + + + src\imgui + + + src\imgui + + + src\imgui + + + src\imgui + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + src + + + + + {b73af8d3-b6df-4328-a422-edde03a07b9a} + + + {67c8c3fe-8a35-4cd5-a021-4a4979609ffc} + + + \ No newline at end of file diff --git a/samples/dual_layer/D3D11/src/Scene.cpp b/samples/dual_layer/D3D11/src/Scene.cpp new file mode 100644 index 0000000..4a5b9a9 --- /dev/null +++ b/samples/dual_layer/D3D11/src/Scene.cpp @@ -0,0 +1,43 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "Scene.h" + + +bool Scene::InitializeDefault() +{ + std::shared_ptr actorMesh = Mesh::LoadFromFile("..\\Media\\Meshes\\shaderBall.obj"); + std::shared_ptr cubeMesh = Mesh::LoadFromFile("..\\Media\\Meshes\\cube.obj"); + + // + // Layer 1 = Foreground meshes + // + Node node; + node.mesh = actorMesh; + node.layer = 1; + + for (uint32_t i = 0; i < 4; ++i) + { + node.matWorld = XMMatrixTranslation((i % 2) * 16.0f - 8.0f, (i / 2) * 16.0f - 8.0f, 0.0f); + mNodes.push_back(node); + } + + // + // Layer 0 = Background meshes + // + node.mesh = cubeMesh; + node.matWorld = XMMatrixIdentity(); + node.layer = 0; + + mNodes.push_back(node); + + + return true; +} diff --git a/samples/dual_layer/D3D11/src/Scene.h b/samples/dual_layer/D3D11/src/Scene.h new file mode 100644 index 0000000..392f321 --- /dev/null +++ b/samples/dual_layer/D3D11/src/Scene.h @@ -0,0 +1,41 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include "Mesh.h" +#include +#include +using namespace DirectX; + +class Scene +{ +public: + struct Node + { + std::shared_ptr mesh; + XMMATRIX matWorld; + uint32_t layer; + }; + + enum class ESceneType + { + kShaderBall = 0, + kCustom + }; + using Nodes = std::vector; + + bool InitializeDefault(); + + const Nodes& GetNodes() const { return mNodes; } + +private: + Nodes mNodes; +}; + diff --git a/samples/dual_layer/D3D11/src/SceneRenderer.cpp b/samples/dual_layer/D3D11/src/SceneRenderer.cpp new file mode 100644 index 0000000..7d41659 --- /dev/null +++ b/samples/dual_layer/D3D11/src/SceneRenderer.cpp @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "SceneRenderer.h" +#include "Scene.h" +#include "Camera.h" + +bool SceneRenderer::InitializeWithScene(ID3D11Device* device, Scene& scene) +{ + mMeshRenderer.Initialize(device); + + for (auto& sceneNode : scene.GetNodes()) + { + if (sceneNode.layer < kLayersCount) + { + mMeshes[sceneNode.layer].emplace_back(); + + D3D11Mesh& mesh = mMeshes[sceneNode.layer].back(); + + mesh.InitializeFromMesh(device, *sceneNode.mesh); + mesh.mMatWorld = sceneNode.matWorld; + } + } + return true; +} + +void SceneRenderer::RenderLayer(ID3D11DeviceContext* deviceContext, uint32_t layer, const Camera& camera) +{ + mMeshRenderer.RenderMeshes(deviceContext, mMeshes[layer], camera); +} \ No newline at end of file diff --git a/samples/dual_layer/D3D11/src/SceneRenderer.h b/samples/dual_layer/D3D11/src/SceneRenderer.h new file mode 100644 index 0000000..375549c --- /dev/null +++ b/samples/dual_layer/D3D11/src/SceneRenderer.h @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include "D3D11Mesh.h" +#include "MeshRenderer.h" + +class Camera; +class Scene; + +class SceneRenderer +{ +public: + bool InitializeWithScene(ID3D11Device* device, Scene& scene); + void RenderLayer(ID3D11DeviceContext* deviceContext, uint32_t layer, const Camera& camera); + static const uint32_t kLayersCount = 2; + +private: + std::vector mMeshes[kLayersCount]; + MeshRenderer mMeshRenderer; +}; + diff --git a/samples/dual_layer/D3D11/src/imgui/imconfig.h b/samples/dual_layer/D3D11/src/imgui/imconfig.h new file mode 100644 index 0000000..20f58b2 --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/imconfig.h @@ -0,0 +1,56 @@ +//----------------------------------------------------------------------------- +// USER IMPLEMENTATION +// This file contains compile-time options for ImGui. +// Other options (memory allocation overrides, callbacks, etc.) can be set at runtime via the ImGuiIO structure - ImGui::GetIO(). +//----------------------------------------------------------------------------- + +#pragma once + +//---- Define assertion handler. Defaults to calling assert(). +//#define IM_ASSERT(_EXPR) MyAssert(_EXPR) + +//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows. +//#define IMGUI_API __declspec( dllexport ) +//#define IMGUI_API __declspec( dllimport ) + +//---- Include imgui_user.inl at the end of imgui.cpp so you can include code that extends ImGui using its private data/functions. +//#define IMGUI_INCLUDE_IMGUI_USER_INL + +//---- Include imgui_user.h at the end of imgui.h +//#define IMGUI_INCLUDE_IMGUI_USER_H + +//---- Don't implement default handlers for Windows (so as not to link with OpenClipboard() and others Win32 functions) +//#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS +//#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS + +//---- Don't implement help and test window functionality (ShowUserGuide()/ShowStyleEditor()/ShowTestWindow() methods will be empty) +//#define IMGUI_DISABLE_TEST_WINDOWS + +//---- Don't define obsolete functions names +//#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS + +//---- Implement STB libraries in a namespace to avoid conflicts +//#define IMGUI_STB_NAMESPACE ImGuiStb + +//---- Define constructor and implicit cast operators to convert back<>forth from your math types and ImVec2/ImVec4. +/* +#define IM_VEC2_CLASS_EXTRA \ + ImVec2(const MyVec2& f) { x = f.x; y = f.y; } \ + operator MyVec2() const { return MyVec2(x,y); } + +#define IM_VEC4_CLASS_EXTRA \ + ImVec4(const MyVec4& f) { x = f.x; y = f.y; z = f.z; w = f.w; } \ + operator MyVec4() const { return MyVec4(x,y,z,w); } +*/ + +//---- Freely implement extra functions within the ImGui:: namespace. +//---- Declare helpers or widgets implemented in imgui_user.inl or elsewhere, so end-user doesn't need to include multiple files. +//---- e.g. you can create variants of the ImGui::Value() helper for your low-level math types, or your own widgets/helpers. +/* +namespace ImGui +{ + void Value(const char* prefix, const MyVec2& v, const char* float_format = NULL); + void Value(const char* prefix, const MyVec4& v, const char* float_format = NULL); +} +*/ + diff --git a/samples/dual_layer/D3D11/src/imgui/imgui.cpp b/samples/dual_layer/D3D11/src/imgui/imgui.cpp new file mode 100644 index 0000000..d9b0cf2 --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/imgui.cpp @@ -0,0 +1,8920 @@ +// ImGui library v1.44 +// Main code & documentation + +// See ImGui::ShowTestWindow() in imgui_demo.cpp for demo code. +// Read 'Programmer guide' below for notes on how to setup ImGui in your codebase. +// Get latest version at https://github.com/ocornut/imgui +// Releases change-log at https://github.com/ocornut/imgui/releases +// Developed by Omar Cornut and ImGui contributors. + +/* + + Index + - MISSION STATEMENT + - END-USER GUIDE + - PROGRAMMER GUIDE (read me!) + - API BREAKING CHANGES (read me when you update!) + - FREQUENTLY ASKED QUESTIONS (FAQ), TIPS + - How do I update to a newer version of ImGui? + - Can I have multiple widgets with the same label? Can I have widget without a label? (Yes) + - Why is my text output blurry? + - How can I load a different font than the default? + - How can I load multiple fonts? + - How can I display and input non-latin characters such as Chinese, Japanese, Korean, Cyrillic? + - ISSUES & TODO-LIST + - CODE + + + MISSION STATEMENT + ================= + + - easy to use to create code-driven and data-driven tools + - easy to use to create ad hoc short-lived tools and long-lived, more elaborate tools + - easy to hack and improve + - minimize screen real-estate usage + - minimize setup and maintenance + - minimize state storage on user side + - portable, minimize dependencies, run on target (consoles, phones, etc.) + - efficient runtime (NB- we do allocate when "growing" content - creating a window / opening a tree node for the first time, etc. - but a typical frame won't allocate anything) + - read about immediate-mode gui principles @ http://mollyrocket.com/861, http://mollyrocket.com/forums/index.html + + Designed for developers and content-creators, not the typical end-user! Some of the weaknesses includes: + - doesn't look fancy, doesn't animate + - limited layout features, intricate layouts are typically crafted in code + - occasionally uses statically sized buffers for string manipulations - won't crash, but some very long pieces of text may be clipped. functions like ImGui::TextUnformatted() don't have such restriction. + + + END-USER GUIDE + ============== + + - double-click title bar to collapse window + - click upper right corner to close a window, available when 'bool* p_opened' is passed to ImGui::Begin() + - click and drag on lower right corner to resize window + - click and drag on any empty space to move window + - double-click/double-tap on lower right corner grip to auto-fit to content + - TAB/SHIFT+TAB to cycle through keyboard editable fields + - use mouse wheel to scroll + - use CTRL+mouse wheel to zoom window contents (if IO.FontAllowScaling is true) + - CTRL+Click on a slider or drag box to input value as text + - text editor: + - Hold SHIFT or use mouse to select text. + - CTRL+Left/Right to word jump + - CTRL+Shift+Left/Right to select words + - CTRL+A our Double-Click to select all + - CTRL+X,CTRL+C,CTRL+V to use OS clipboard + - CTRL+Z,CTRL+Y to undo/redo + - ESCAPE to revert text to its original value + - You can apply arithmetic operators +,*,/ on numerical values. Use +- to subtract (because - would set a negative value!) + + + PROGRAMMER GUIDE + ================ + + - read the FAQ below this section! + - your code creates the UI, if your code doesn't run the UI is gone! == very dynamic UI, no construction/destructions steps, less data retention on your side, no state duplication, less sync, less bugs. + - call and read ImGui::ShowTestWindow() for demo code demonstrating most features. + - see examples/ folder for standalone sample applications. e.g. examples/opengl_example/ + - customization: PushStyleColor()/PushStyleVar() or the style editor to tweak the look of the interface (e.g. if you want a more compact UI or a different color scheme). + + - getting started: + - initialisation: call ImGui::GetIO() to retrieve the ImGuiIO structure and fill the 'Settings' data. + - every frame: + 1/ in your mainloop or right after you got your keyboard/mouse info, call ImGui::GetIO() and fill the 'Input' data, then call ImGui::NewFrame(). + 2/ use any ImGui function you want between NewFrame() and Render() + 3/ ImGui::Render() to render all the accumulated command-lists. it will call your RenderDrawListFn handler that you set in the IO structure. + - all rendering information are stored into command-lists until ImGui::Render() is called. + - ImGui never touches or know about your GPU state. the only function that knows about GPU is the RenderDrawListFn handler that you must provide. + - effectively it means you can create widgets at any time in your code, regardless of "update" vs "render" considerations. + - refer to the examples applications in the examples/ folder for instruction on how to setup your code. + - a typical application skeleton may be: + + // Application init + ImGuiIO& io = ImGui::GetIO(); + io.DisplaySize.x = 1920.0f; + io.DisplaySize.y = 1280.0f; + io.DeltaTime = 1.0f/60.0f; + io.IniFilename = "imgui.ini"; + // TODO: Fill others settings of the io structure + + // Load texture + unsigned char* pixels; + int width, height, bytes_per_pixels; + io.Fonts->GetTexDataAsRGBA32(pixels, &width, &height, &bytes_per_pixels); + // TODO: copy texture to graphics memory. + // TODO: store your texture pointer/identifier in 'io.Fonts->TexID' + + // Application main loop + while (true) + { + // 1) get low-level input + // e.g. on Win32, GetKeyboardState(), or poll your events, etc. + + // 2) TODO: fill all fields of IO structure and call NewFrame + ImGuiIO& io = ImGui::GetIO(); + io.MousePos = mouse_pos; + io.MouseDown[0] = mouse_button_0; + io.KeysDown[i] = ... + ImGui::NewFrame(); + + // 3) most of your application code here - you can use any of ImGui::* functions at any point in the frame + ImGui::Begin("My window"); + ImGui::Text("Hello, world."); + ImGui::End(); + GameUpdate(); + GameRender(); + + // 4) render & swap video buffers + ImGui::Render(); + // swap video buffer, etc. + } + + - after calling ImGui::NewFrame() you can read back 'io.WantCaptureMouse' and 'io.WantCaptureKeyboard' to tell if ImGui + wants to use your inputs. if it does you can discard/hide the inputs from the rest of your application. + + API BREAKING CHANGES + ==================== + + Occasionally introducing changes that are breaking the API. The breakage are generally minor and easy to fix. + Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code. + Also read releases logs https://github.com/ocornut/imgui/releases for more details. + + - 2015/08/05 (1.44) - split imgui.cpp into extra files: imgui_demo.cpp imgui_draw.cpp imgui_internal.h that you need to add to your project. + - 2015/07/18 (1.44) - fixed angles in ImDrawList::PathArcTo(), PathArcToFast() (introduced in 1.43) being off by an extra PI for no justifiable reason + - 2015/07/14 (1.43) - add new ImFontAtlas::AddFont() API. For the old AddFont***, moved the 'font_no' parameter of ImFontAtlas::AddFont** functions to the ImFontConfig structure. + you need to render your textured triangles with bilinear filtering to benefit from sub-pixel positioning of text. + - 2015/07/08 (1.43) - switched rendering data to use indexed rendering. this is saving a fair amount of CPU/GPU and enables us to get anti-aliasing for a marginal cost. + this necessary change will break your rendering function! the fix should be very easy. sorry for that :( + - if you are using a vanilla copy of one of the imgui_impl_XXXX.cpp provided in the example, you just need to update your copy and you can ignore the rest. + - the signature of the io.RenderDrawListsFn handler has changed! + ImGui_XXXX_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_count) + became: + ImGui_XXXX_RenderDrawLists(ImDrawData* draw_data). + argument 'cmd_lists' -> 'draw_data->CmdLists' + argument 'cmd_lists_count' -> 'draw_data->CmdListsCount' + ImDrawList 'commands' -> 'CmdBuffer' + ImDrawList 'vtx_buffer' -> 'VtxBuffer' + ImDrawList n/a -> 'IdxBuffer' (new) + ImDrawCmd 'vtx_count' -> 'ElemCount' + ImDrawCmd 'clip_rect' -> 'ClipRect' + ImDrawCmd 'user_callback' -> 'UserCallback' + ImDrawCmd 'texture_id' -> 'TextureId' + - each ImDrawList now contains both a vertex buffer and an index buffer. For each command, render ElemCount/3 triangles using indices from the index buffer. + - if you REALLY cannot render indexed primitives, you can call the draw_data->DeIndexAllBuffers() method to de-index the buffers. This is slow and a waste of CPU/GPU. Prefer using indexed rendering! + - refer to code in the examples/ folder or ask on the GitHub if you are unsure of how to upgrade. please upgrade! + - 2015/07/10 (1.43) - changed SameLine() parameters from int to float. + - 2015/07/02 (1.42) - renamed SetScrollPosHere() to SetScrollFromCursorPos(). Kept inline redirection function (will obsolete). + - 2015/07/02 (1.42) - renamed GetScrollPosY() to GetScrollY(). Necessary to reduce confusion along with other scrolling functions, because positions (e.g. cursor position) are not equivalent to scrolling amount. + - 2015/06/14 (1.41) - changed ImageButton() default bg_col parameter from (0,0,0,1) (black) to (0,0,0,0) (transparent) - makes a difference when texture have transparence + - 2015/06/14 (1.41) - changed Selectable() API from (label, selected, size) to (label, selected, flags, size). Size override should have been rarely be used. Sorry! + - 2015/05/31 (1.40) - renamed GetWindowCollapsed() to IsWindowCollapsed() for consistency. Kept inline redirection function (will obsolete). + - 2015/05/31 (1.40) - renamed IsRectClipped() to IsRectVisible() for consistency. Note that return value is opposite! Kept inline redirection function (will obsolete). + - 2015/05/27 (1.40) - removed the third 'repeat_if_held' parameter from Button() - sorry! it was rarely used and inconsistent. Use PushButtonRepeat(true) / PopButtonRepeat() to enable repeat on desired buttons. + - 2015/05/11 (1.40) - changed BeginPopup() API, takes a string identifier instead of a bool. ImGui needs to manage the open/closed state of popups. Call OpenPopup() to actually set the "opened" state of a popup. BeginPopup() returns true if the popup is opened. + - 2015/05/03 (1.40) - removed style.AutoFitPadding, using style.WindowPadding makes more sense (the default values were already the same). + - 2015/04/13 (1.38) - renamed IsClipped() to IsRectClipped(). Kept inline redirection function (will obsolete). + - 2015/04/09 (1.38) - renamed ImDrawList::AddArc() to ImDrawList::AddArcFast() for compatibility with future API + - 2015/04/03 (1.38) - removed ImGuiCol_CheckHovered, ImGuiCol_CheckActive, replaced with the more general ImGuiCol_FrameBgHovered, ImGuiCol_FrameBgActive. + - 2014/04/03 (1.38) - removed support for passing -FLT_MAX..+FLT_MAX as the range for a SliderFloat(). Use DragFloat() or Inputfloat() instead. + - 2015/03/17 (1.36) - renamed GetItemBoxMin()/GetItemBoxMax()/IsMouseHoveringBox() to GetItemRectMin()/GetItemRectMax()/IsMouseHoveringRect(). Kept inline redirection function (will obsolete). + - 2015/03/15 (1.36) - renamed style.TreeNodeSpacing to style.IndentSpacing, ImGuiStyleVar_TreeNodeSpacing to ImGuiStyleVar_IndentSpacing + - 2015/03/13 (1.36) - renamed GetWindowIsFocused() to IsWindowFocused(). Kept inline redirection function (will obsolete). + - 2015/03/08 (1.35) - renamed style.ScrollBarWidth to style.ScrollbarWidth + - 2015/02/27 (1.34) - renamed OpenNextNode(bool) to SetNextTreeNodeOpened(bool, ImGuiSetCond). Kept inline redirection function (will obsolete). + - 2015/02/27 (1.34) - renamed ImGuiSetCondition_*** to ImGuiSetCond_***, and _FirstUseThisSession becomes _Once. + - 2015/02/11 (1.32) - changed text input callback ImGuiTextEditCallback return type from void-->int. reserved for future use, return 0 for now. + - 2015/02/10 (1.32) - renamed GetItemWidth() to CalcItemWidth() to clarify its evolving behavior + - 2015/02/08 (1.31) - renamed GetTextLineSpacing() to GetTextLineHeightWithSpacing() + - 2015/02/01 (1.31) - removed IO.MemReallocFn (unused) + - 2015/01/19 (1.30) - renamed ImGuiStorage::GetIntPtr()/GetFloatPtr() to GetIntRef()/GetIntRef() because Ptr was conflicting with actual pointer storage functions. + - 2015/01/11 (1.30) - big font/image API change! now loads TTF file. allow for multiple fonts. no need for a PNG loader. + (1.30) - removed GetDefaultFontData(). uses io.Fonts->GetTextureData*() API to retrieve uncompressed pixels. + this sequence: + const void* png_data; + unsigned int png_size; + ImGui::GetDefaultFontData(NULL, NULL, &png_data, &png_size); + // + became: + unsigned char* pixels; + int width, height; + io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); + // + io.Fonts->TexID = (your_texture_identifier); + you now have much more flexibility to load multiple TTF fonts and manage the texture buffer for internal needs. + it is now recommended that you sample the font texture with bilinear interpolation. + (1.30) - added texture identifier in ImDrawCmd passed to your render function (we can now render images). make sure to set io.Fonts->TexID. + (1.30) - removed IO.PixelCenterOffset (unnecessary, can be handled in user projection matrix) + (1.30) - removed ImGui::IsItemFocused() in favor of ImGui::IsItemActive() which handles all widgets + - 2014/12/10 (1.18) - removed SetNewWindowDefaultPos() in favor of new generic API SetNextWindowPos(pos, ImGuiSetCondition_FirstUseEver) + - 2014/11/28 (1.17) - moved IO.Font*** options to inside the IO.Font-> structure (FontYOffset, FontTexUvForWhite, FontBaseScale, FontFallbackGlyph) + - 2014/11/26 (1.17) - reworked syntax of IMGUI_ONCE_UPON_A_FRAME helper macro to increase compiler compatibility + - 2014/11/07 (1.15) - renamed IsHovered() to IsItemHovered() + - 2014/10/02 (1.14) - renamed IMGUI_INCLUDE_IMGUI_USER_CPP to IMGUI_INCLUDE_IMGUI_USER_INL and imgui_user.cpp to imgui_user.inl (more IDE friendly) + - 2014/09/25 (1.13) - removed 'text_end' parameter from IO.SetClipboardTextFn (the string is now always zero-terminated for simplicity) + - 2014/09/24 (1.12) - renamed SetFontScale() to SetWindowFontScale() + - 2014/09/24 (1.12) - moved IM_MALLOC/IM_REALLOC/IM_FREE preprocessor defines to IO.MemAllocFn/IO.MemReallocFn/IO.MemFreeFn + - 2014/08/30 (1.09) - removed IO.FontHeight (now computed automatically) + - 2014/08/30 (1.09) - moved IMGUI_FONT_TEX_UV_FOR_WHITE preprocessor define to IO.FontTexUvForWhite + - 2014/08/28 (1.09) - changed the behavior of IO.PixelCenterOffset following various rendering fixes + + + FREQUENTLY ASKED QUESTIONS (FAQ), TIPS + ====================================== + + Q: How do I update to a newer version of ImGui? + A: Overwrite the following files: + imgui.cpp + imgui.h + imgui_demo.cpp + imgui_draw.cpp + imgui_internal.h + stb_rect_pack.h + stb_textedit.h + stb_truetype.h + Don't overwrite imconfig.h if you have modification to your copy. + Check the "API BREAKING CHANGES" sections for a list of occasional API breaking changes. If you have a problem with a function, search for its name + in the code, there will likely be a comment about it. Please report any issue to the GitHub page! + + Q: Can I have multiple widgets with the same label? Can I have widget without a label? (Yes) + A: Yes. A primer on the use of labels/IDs in ImGui.. + + - Elements that are not clickable, such as Text() items don't need an ID. + + - Interactive widgets require state to be carried over multiple frames (most typically ImGui often needs to remember what is the "active" widget). + to do so they need an unique ID. unique ID are typically derived from a string label, an integer index or a pointer. + + Button("OK"); // Label = "OK", ID = hash of "OK" + Button("Cancel"); // Label = "Cancel", ID = hash of "Cancel" + + - ID are uniquely scoped within windows, tree nodes, etc. so no conflict can happen if you have two buttons called "OK" in two different windows + or in two different locations of a tree. + + - if you have a same ID twice in the same location, you'll have a conflict: + + Button("OK"); + Button("OK"); // ID collision! Both buttons will be treated as the same. + + Fear not! this is easy to solve and there are many ways to solve it! + + - when passing a label you can optionally specify extra unique ID information within string itself. This helps solving the simpler collision cases. + use "##" to pass a complement to the ID that won't be visible to the end-user: + + Button("Play##0"); // Label = "Play", ID = hash of "Play##0" + Button("Play##1"); // Label = "Play", ID = hash of "Play##1" (different from above) + + - so if you want to hide the label but need an ID: + + Checkbox("##On", &b); // Label = "", ID = hash of "##On" + + - occasionally (rarely) you might want change a label while preserving a constant ID. This allows you to animate labels. + use "###" to pass a label that isn't part of ID: + + Button("Hello###ID"; // Label = "Hello", ID = hash of "ID" + Button("World###ID"; // Label = "World", ID = hash of "ID" (same as above) + + - use PushID() / PopID() to create scopes and avoid ID conflicts within the same Window. + this is the most convenient way of distinguish ID if you are iterating and creating many UI elements. + you can push a pointer, a string or an integer value. remember that ID are formed from the addition of everything in the ID stack! + + for (int i = 0; i < 100; i++) + { + PushID(i); + Button("Click"); // Label = "Click", ID = hash of integer + "label" (unique) + PopID(); + } + + for (int i = 0; i < 100; i++) + { + MyObject* obj = Objects[i]; + PushID(obj); + Button("Click"); // Label = "Click", ID = hash of pointer + "label" (unique) + PopID(); + } + + for (int i = 0; i < 100; i++) + { + MyObject* obj = Objects[i]; + PushID(obj->Name); + Button("Click"); // Label = "Click", ID = hash of string + "label" (unique) + PopID(); + } + + - more example showing that you can stack multiple prefixes into the ID stack: + + Button("Click"); // Label = "Click", ID = hash of "Click" + PushID("node"); + Button("Click"); // Label = "Click", ID = hash of "node" + "Click" + PushID(my_ptr); + Button("Click"); // Label = "Click", ID = hash of "node" + ptr + "Click" + PopID(); + PopID(); + + - tree nodes implicitly creates a scope for you by calling PushID(). + + Button("Click"); // Label = "Click", ID = hash of "Click" + if (TreeNode("node")) + { + Button("Click"); // Label = "Click", ID = hash of "node" + "Click" + TreePop(); + } + + - when working with trees, ID are used to preserve the opened/closed state of each tree node. + depending on your use cases you may want to use strings, indices or pointers as ID. + e.g. when displaying a single object that may change over time (1-1 relationship), using a static string as ID will preserve your node open/closed state when the targeted object change. + e.g. when displaying a list of objects, using indices or pointers as ID will preserve the node open/closed state differently. experiment and see what makes more sense! + + Q: Why is my text output blurry? + A: In your Render function, try translating your projection matrix by (0.5f,0.5f) or (0.375f,0.375f) + + Q: How can I load a different font than the default? (default is an embedded version of ProggyClean.ttf, rendered at size 13) + A: Use the font atlas to load the TTF file you want: + + io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels); + io.Fonts->GetTexDataAsRGBA32() or GetTexDataAsAlpha8() + + Q: How can I load multiple fonts? + A: Use the font atlas to pack them into a single texture: + + ImFont* font0 = io.Fonts->AddFontDefault(); + ImFont* font1 = io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels); + ImFont* font2 = io.Fonts->AddFontFromFileTTF("myfontfile2.ttf", size_in_pixels); + io.Fonts->GetTexDataAsRGBA32() or GetTexDataAsAlpha8() + // the first loaded font gets used by default + // use ImGui::PushFont()/ImGui::PopFont() to change the font at runtime + + // Options + ImFontConfig config; + config.OversampleH = 3; + config.OversampleV = 3; + config.GlyphExtraSpacing.x = 1.0f; + io.Fonts->LoadFromFileTTF("myfontfile.ttf", size_pixels, &config); + + // Combine multiple fonts into one + ImWchar ranges[] = { 0xf000, 0xf3ff, 0 }; + ImFontConfig config; + config.MergeMode = true; + io.Fonts->AddFontDefault(); + io.Fonts->LoadFromFileTTF("fontawesome-webfont.ttf", 16.0f, &config, ranges); + io.Fonts->LoadFromFileTTF("myfontfile.ttf", size_pixels, NULL, &config, io.Fonts->GetGlyphRangesJapanese()); + + Read extra_fonts/README.txt or ImFontAtlas class for more details. + + Q: How can I display and input non-latin characters such as Chinese, Japanese, Korean, Cyrillic? + A: When loading a font, pass custom Unicode ranges to specify the glyphs to load. ImGui will support UTF-8 encoding across the board. + Character input depends on you passing the right character code to io.AddInputCharacter(). The example applications do that. + + io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, io.Fonts->GetGlyphRangesJapanese()); // Load Japanese characters + io.Fonts->GetTexDataAsRGBA32() or GetTexDataAsAlpha8() + io.ImeWindowHandle = MY_HWND; // To input using Microsoft IME, give ImGui the hwnd of your application + + - tip: the construct 'IMGUI_ONCE_UPON_A_FRAME { ... }' will run the block of code only once a frame. You can use it to quickly add custom UI in the middle of a deep nested inner loop in your code. + - tip: you can create widgets without a Begin()/End() block, they will go in an implicit window called "Debug" + - tip: you can call Begin() multiple times with the same name during the same frame, it will keep appending to the same window. this is also useful to set yourself in the context of a window (to get/set other settings) + - tip: you can call Render() multiple times (e.g for VR renders). + - tip: call and read the ShowTestWindow() code for more example of how to use ImGui! + + + ISSUES & TODO-LIST + ================== + Issue numbers (#) refer to github issues. + The list below consist mostly of notes of things to do before they are requested/discussed by users (at that point it usually happens on the github) + + - window: autofit feedback loop when user relies on any dynamic layout (window width multiplier, column). maybe just clearly drop manual autofit? + - window: add a way for very transient windows (non-saved, temporary overlay over hundreds of objects) to "clean" up from the global window list. + - window: allow resizing of child windows (possibly given min/max for each axis?) + - window: background options for child windows, border option (disable rounding) + - window: resizing from any sides? + mouse cursor directives for app. + - window: get size/pos helpers given names (see discussion in #249) + - window: a collapsed window can be stuck behind the main menu bar? + - scrolling: add horizontal scroll +!- scrolling: allow immediately effective change of scroll if we haven't appended items yet + - widgets: display mode: widget-label, label-widget (aligned on column or using fixed size), label-newline-tab-widget etc. + - widgets: clean up widgets internal toward exposing everything. + - widgets: add a disabled/read-only mode (#211) + - main: considering adding EndFrame()/Init(). some constructs are awkward in the implementation because of the lack of them. + - main: IsItemHovered() make it more consistent for various type of widgets, widgets with multiple components, etc. also effectively IsHovered() region sometimes differs from hot region, e.g tree nodes + - main: IsItemHovered() info stored in a stack? so that 'if TreeNode() { Text; TreePop; } if IsHovered' return the hover state of the TreeNode? + - input text: add ImGuiInputTextFlags_EnterToApply? (off #218) + - input text multi-line: way to dynamically grow the buffer without forcing the user to initially allocate for worse case (follow up on #200) + - input text multi-line: line numbers? status bar? (follow up on #200) + - input number: optional range min/max for Input*() functions + - input number: holding [-]/[+] buttons could increase the step speed non-linearly (or user-controlled) + - input number: use mouse wheel to step up/down + - input number: applying arithmetics ops (+,-,*,/) messes up with text edit undo stack. + - text: proper alignment options + - layout: horizontal layout helper (#97) + - layout: more generic alignment state (left/right/centered) for single items? + - layout: clean up the InputFloatN/SliderFloatN/ColorEdit4 layout code. item width should include frame padding. + - columns: separator function or parameter that works within the column (currently Separator() bypass all columns) (#125) + - columns: declare column set (each column: fixed size, %, fill, distribute default size among fills) (#125) + - columns: columns header to act as button (~sort op) and allow resize/reorder (#125) + - columns: user specify columns size (#125) + - popup: border options. richer api like BeginChild() perhaps? (#197) + - combo: sparse combo boxes (via function call?) + - combo: contents should extends to fit label if combo widget is small + - combo/listbox: keyboard control. need InputText-like non-active focus + key handling. considering keybord for custom listbox (pr #203) + - listbox: multiple selection + - listbox: user may want to initial scroll to focus on the one selected value? + - listbox: keyboard navigation. + - listbox: scrolling should track modified selection. + - menus: local shortcuts, global shortcuts (#126) + - menus: icons + - menus: menubars: some sort of priority / effect of main menu-bar on desktop size? + - tabs + - separator: separator on the initial position of a window is not visible (cursorpos.y <= clippos.y) + - gauge: various forms of gauge/loading bars widgets + - color: add a better color picker (perhaps a popup). + - plot: plotlines should use the polygon-stroke facilities (currently issues with averaging normals) + - plot: make it easier for user to draw extra stuff into the graph (e.g: draw basis, highlight certain points, 2d plots, multiple plots) + - plot: "smooth" automatic scale over time, user give an input 0.0(full user scale) 1.0(full derived from value) + - plot: add a helper e.g. Plot(char* label, float value, float time_span=2.0f) that stores values and Plot them for you - probably another function name. and/or automatically allow to plot ANY displayed value (more reliance on stable ID) + - file selection widget -> build the tool in our codebase to improve model-dialog idioms + - slider: allow using the [-]/[+] buttons used by InputFloat()/InputInt() + - slider: initial absolute click is imprecise. change to relative movement slider (same as scrollbar). + - slider: add dragging-based widgets to edit values with mouse (on 2 axises), saving screen real-estate. + - slider: tint background based on value (e.g. v_min -> v_max, or use 0.0f either side of the sign) + - slider & drag: int data passing through a float + - drag float: up/down axis + - text edit: clean up the mess caused by converting UTF-8 <> wchar. the code is rather inefficient right now. + - text edit: centered text for slider as input text so it matches typical positioning. + - text edit: flag to disable live update of the user buffer. + - text edit: field resize behavior - field could stretch when being edited? hover tooltip shows more text? + - tree: add treenode/treepush int variants? because (void*) cast from int warns on some platforms/settings + - textwrapped: figure out better way to use TextWrapped() in an always auto-resize context (tooltip, etc.) (git issue #249) + - settings: write more decent code to allow saving/loading new fields + - settings: api for per-tool simple persistent data (bool,int,float,columns sizes,etc.) in .ini file + - style: store rounded corners in texture to use 1 quad per corner (filled and wireframe). so rounding have minor cost. + - style: colorbox not always square? + - text: simple markup language for color change? + - log: LogButtons() options for specifying depth and/or hiding depth slider + - log: have more control over the log scope (e.g. stop logging when leaving current tree node scope) + - log: be able to log anything (e.g. right-click on a window/tree-node, shows context menu? log into tty/file/clipboard) + - log: let user copy any window content to clipboard easily (CTRL+C on windows? while moving it? context menu?). code is commented because it fails with multiple Begin/End pairs. + - filters: set a current filter that tree node can automatically query to hide themselves + - filters: handle wildcards (with implicit leading/trailing *), regexps + - shortcuts: add a shortcut api, e.g. parse "&Save" and/or "Save (CTRL+S)", pass in to widgets or provide simple ways to use (button=activate, input=focus) +!- keyboard: tooltip & combo boxes are messing up / not honoring keyboard tabbing + - keyboard: full keyboard navigation and focus. + - focus: SetKeyboardFocusHere() on with >= 0 offset could be done on same frame (else latch and modulate on beginning of next frame) + - input: rework IO to be able to pass actual events to fix temporal aliasing issues. + - input: support track pad style scrolling & slider edit. + - memory: add a way to discard allocs of unused/transient windows. with the current architecture new windows (including popup, opened combos, listbox) perform at least 3 allocs. + - misc: mark printf compiler attributes on relevant functions + - misc: provide a way to compile out the entire implementation while providing a dummy API (e.g. #define IMGUI_DUMMY_IMPL) + - misc: double-clicking on title bar to minimize isn't consistent, perhaps move to single-click on left-most collapse icon? + - style editor: have a more global HSV setter (e.g. alter hue on all elements). consider replacing active/hovered by offset in HSV space? + - style editor: color child window height expressed in multiple of line height. + - optimization/render: merge command-lists with same clip-rect into one even if they aren't sequential? (as long as in-between clip rectangle don't overlap)? + - optimization: turn some the various stack vectors into statically-sized arrays + - optimization: better clipping for multi-component widgets +*/ + +#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include "imgui.h" +#define IMGUI_DEFINE_MATH_OPERATORS +#include "imgui_internal.h" + +#include // toupper, isprint +#include // sqrtf, fabsf, fmodf, powf, cosf, sinf, floorf, ceilf +#include // vsnprintf, sscanf, printf +#include // new (ptr) +#if defined(_MSC_VER) && _MSC_VER <= 1500 // MSVC 2008 or earlier +#include // intptr_t +#else +#include // intptr_t +#endif + +#ifdef _MSC_VER +#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) +#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen +#define snprintf _snprintf +#endif + +// Clang warnings with -Weverything +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wold-style-cast" // warning : use of old-style cast // yes, they are more terse. +#pragma clang diagnostic ignored "-Wfloat-equal" // warning : comparing floating point with == or != is unsafe // storing and comparing against same constants ok. +#pragma clang diagnostic ignored "-Wformat-nonliteral" // warning : format string is not a string literal // passing non-literal to vsnformat(). yes, user passing incorrect format strings can crash the code. +#pragma clang diagnostic ignored "-Wexit-time-destructors" // warning : declaration requires an exit-time destructor // exit-time destruction order is undefined. if MemFree() leads to users code that has been disabled before exit it might cause problems. ImGui coding style welcomes static/globals. +#pragma clang diagnostic ignored "-Wglobal-constructors" // warning : declaration requires a global destructor // similar to above, not sure what the exact difference it. +#pragma clang diagnostic ignored "-Wsign-conversion" // warning : implicit conversion changes signedness // +#pragma clang diagnostic ignored "-Wmissing-noreturn" // warning : function xx could be declared with attribute 'noreturn' warning // GetDefaultFontData() asserts which some implementation makes it never return. +#pragma clang diagnostic ignored "-Wdeprecated-declarations"// warning : 'xx' is deprecated: The POSIX name for this item.. // for strdup used in demo code (so user can copy & paste the code) +#pragma clang diagnostic ignored "-Wint-to-void-pointer-cast" // warning : cast to 'void *' from smaller integer type 'int' +#endif +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-function" // warning: 'xxxx' defined but not used +#pragma GCC diagnostic ignored "-Wint-to-pointer-cast" // warning: cast to pointer from integer of different size +#endif + +//------------------------------------------------------------------------- +// Forward Declarations +//------------------------------------------------------------------------- + +static void LogRenderedText(const ImVec2& ref_pos, const char* text, const char* text_end = NULL); +static const char* FindTextDisplayEnd(const char* text, const char* text_end = NULL); + +static void PushMultiItemsWidths(int components, float w_full = 0.0f); +static float GetDraggedColumnOffset(int column_index); + +static bool IsKeyPressedMap(ImGuiKey key, bool repeat = true); + +static void SetCurrentFont(ImFont* font); +static void SetCurrentWindow(ImGuiWindow* window); +static void SetWindowScrollY(ImGuiWindow* window, float new_scroll_y); +static void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiSetCond cond); +static void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiSetCond cond); +static void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiSetCond cond); +static ImGuiWindow* FindWindowByName(const char* name); +static ImGuiWindow* FindHoveredWindow(ImVec2 pos, bool excluding_childs); +static ImGuiWindow* CreateNewWindow(const char* name, ImVec2 size, ImGuiWindowFlags flags); +static inline bool IsWindowContentHoverable(ImGuiWindow* window); +static void ClearSetNextWindowData(); +static void CheckStacksSize(ImGuiWindow* window, bool write); +static void Scrollbar(ImGuiWindow* window); +static bool CloseWindowButton(bool* p_opened); + +static void AddDrawListToRenderList(ImVector& out_render_list, ImDrawList* draw_list); +static void AddWindowToRenderList(ImVector& out_render_list, ImGuiWindow* window); +static void AddWindowToSortedBuffer(ImVector& out_sorted_windows, ImGuiWindow* window); + +static ImGuiIniData* FindWindowSettings(const char* name); +static ImGuiIniData* AddWindowSettings(const char* name); +static void LoadSettings(); +static void SaveSettings(); +static void MarkSettingsDirty(); + +static void PushClipRect(const ImRect& clip_rect, bool clipped_by_current = true); +static void PushColumnClipRect(int column_index = -1); +static void PopClipRect(); +static ImRect GetVisibleRect(); + +static bool BeginPopupEx(const char* str_id, ImGuiWindowFlags extra_flags); +static void CloseInactivePopups(); +static void ClosePopupToLevel(int remaining); +static void ClosePopup(ImGuiID id); +static bool IsPopupOpen(ImGuiID id); +static ImGuiWindow* GetFrontMostModalRootWindow(); +static ImVec2 FindBestPopupWindowPos(const ImVec2& base_pos, const ImVec2& size, ImGuiWindowFlags flags, int* last_dir, const ImRect& r_inner); + +static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data); +static int InputTextCalcTextLenAndLineCount(const char* text_begin, const char** out_text_end); +static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const ImWchar* text_end, const ImWchar** remaining = NULL, ImVec2* out_offset = NULL, bool stop_on_new_line = false); + +static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, const char* display_format, char* buf, int buf_size); +static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, int decimal_precision, char* buf, int buf_size); +static void DataTypeApplyOp(ImGuiDataType data_type, int op, void* value1, const void* value2); +static void DataTypeApplyOpFromText(const char* buf, const char* initial_value_buf, ImGuiDataType data_type, void* data_ptr, const char* scalar_format); + +//----------------------------------------------------------------------------- +// Platform dependent default implementations +//----------------------------------------------------------------------------- + +static const char* GetClipboardTextFn_DefaultImpl(); +static void SetClipboardTextFn_DefaultImpl(const char* text); +static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y); + +//----------------------------------------------------------------------------- +// Context +//----------------------------------------------------------------------------- + +// We access everything through this pointer (always assumed to be != NULL) +// You can swap the pointer to a different context by calling ImGui::SetInternalState() +static ImGuiState GImDefaultState; +ImGuiState* GImGui = &GImDefaultState; + +// Statically allocated default font atlas. This is merely a maneuver to keep ImFontAtlas definition at the bottom of the .h file (otherwise it'd be inside ImGuiIO) +// Also we wouldn't be able to new() one at this point, before users may define IO.MemAllocFn. +static ImFontAtlas GImDefaultFontAtlas; + +//----------------------------------------------------------------------------- +// User facing structures +//----------------------------------------------------------------------------- + +ImGuiStyle::ImGuiStyle() +{ + Alpha = 1.0f; // Global alpha applies to everything in ImGui + WindowPadding = ImVec2(8,8); // Padding within a window + WindowMinSize = ImVec2(32,32); // Minimum window size + WindowRounding = 9.0f; // Radius of window corners rounding. Set to 0.0f to have rectangular windows + WindowTitleAlign = ImGuiAlign_Left; // Alignment for title bar text + ChildWindowRounding = 0.0f; // Radius of child window corners rounding. Set to 0.0f to have rectangular windows + FramePadding = ImVec2(4,3); // Padding within a framed rectangle (used by most widgets) + FrameRounding = 0.0f; // Radius of frame corners rounding. Set to 0.0f to have rectangular frames (used by most widgets). + ItemSpacing = ImVec2(8,4); // Horizontal and vertical spacing between widgets/lines + ItemInnerSpacing = ImVec2(4,4); // Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label) + TouchExtraPadding = ImVec2(0,0); // Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! + WindowFillAlphaDefault = 0.70f; // Default alpha of window background, if not specified in ImGui::Begin() + IndentSpacing = 22.0f; // Horizontal spacing when e.g. entering a tree node + ColumnsMinSpacing = 6.0f; // Minimum horizontal spacing between two columns + ScrollbarWidth = 16.0f; // Width of the vertical scrollbar + ScrollbarRounding = 0.0f; // Radius of grab corners rounding for scrollbar + GrabMinSize = 10.0f; // Minimum width/height of a grab box for slider/scrollbar + GrabRounding = 0.0f; // Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. + DisplayWindowPadding = ImVec2(22,22); // Window positions are clamped to be visible within the display area by at least this amount. Only covers regular windows. + DisplaySafeAreaPadding = ImVec2(4,4); // If you cannot see the edge of your screen (e.g. on a TV) increase the safe area padding. Covers popups/tooltips as well regular windows. + AntiAliasedLines = true; // Enable anti-aliasing on lines/borders. Disable if you are really short on CPU/GPU. + AntiAliasedShapes = true; // Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.) + + Colors[ImGuiCol_Text] = ImVec4(0.90f, 0.90f, 0.90f, 1.00f); + Colors[ImGuiCol_TextDisabled] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f); + Colors[ImGuiCol_WindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 1.00f); + Colors[ImGuiCol_ChildWindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); + Colors[ImGuiCol_Border] = ImVec4(0.70f, 0.70f, 0.70f, 0.65f); + Colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); + Colors[ImGuiCol_FrameBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.30f); // Background of checkbox, radio button, plot, slider, text input + Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.90f, 0.80f, 0.80f, 0.40f); + Colors[ImGuiCol_FrameBgActive] = ImVec4(0.90f, 0.65f, 0.65f, 0.45f); + Colors[ImGuiCol_TitleBg] = ImVec4(0.50f, 0.50f, 1.00f, 0.45f); + Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.40f, 0.40f, 0.80f, 0.20f); + Colors[ImGuiCol_TitleBgActive] = ImVec4(0.50f, 0.50f, 1.00f, 0.55f); + Colors[ImGuiCol_MenuBarBg] = ImVec4(0.40f, 0.40f, 0.55f, 0.60f); + Colors[ImGuiCol_ScrollbarBg] = ImVec4(0.40f, 0.40f, 0.80f, 0.15f); + Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.40f, 0.40f, 0.80f, 0.30f); + Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.40f, 0.40f, 0.80f, 0.40f); + Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.80f, 0.50f, 0.50f, 0.40f); + Colors[ImGuiCol_ComboBg] = ImVec4(0.20f, 0.20f, 0.20f, 0.99f); + Colors[ImGuiCol_CheckMark] = ImVec4(0.90f, 0.90f, 0.90f, 0.50f); + Colors[ImGuiCol_SliderGrab] = ImVec4(1.00f, 1.00f, 1.00f, 0.30f); + Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.80f, 0.50f, 0.50f, 1.00f); + Colors[ImGuiCol_Button] = ImVec4(0.67f, 0.40f, 0.40f, 0.60f); + Colors[ImGuiCol_ButtonHovered] = ImVec4(0.67f, 0.40f, 0.40f, 1.00f); + Colors[ImGuiCol_ButtonActive] = ImVec4(0.80f, 0.50f, 0.50f, 1.00f); + Colors[ImGuiCol_Header] = ImVec4(0.40f, 0.40f, 0.90f, 0.45f); + Colors[ImGuiCol_HeaderHovered] = ImVec4(0.45f, 0.45f, 0.90f, 0.80f); + Colors[ImGuiCol_HeaderActive] = ImVec4(0.53f, 0.53f, 0.87f, 0.80f); + Colors[ImGuiCol_Column] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f); + Colors[ImGuiCol_ColumnHovered] = ImVec4(0.70f, 0.60f, 0.60f, 1.00f); + Colors[ImGuiCol_ColumnActive] = ImVec4(0.90f, 0.70f, 0.70f, 1.00f); + Colors[ImGuiCol_ResizeGrip] = ImVec4(1.00f, 1.00f, 1.00f, 0.30f); + Colors[ImGuiCol_ResizeGripHovered] = ImVec4(1.00f, 1.00f, 1.00f, 0.60f); + Colors[ImGuiCol_ResizeGripActive] = ImVec4(1.00f, 1.00f, 1.00f, 0.90f); + Colors[ImGuiCol_CloseButton] = ImVec4(0.50f, 0.50f, 0.90f, 0.50f); + Colors[ImGuiCol_CloseButtonHovered] = ImVec4(0.70f, 0.70f, 0.90f, 0.60f); + Colors[ImGuiCol_CloseButtonActive] = ImVec4(0.70f, 0.70f, 0.70f, 1.00f); + Colors[ImGuiCol_PlotLines] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f); + Colors[ImGuiCol_PlotLinesHovered] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); + Colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); + Colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f); + Colors[ImGuiCol_TextSelectedBg] = ImVec4(0.00f, 0.00f, 1.00f, 0.35f); + Colors[ImGuiCol_TooltipBg] = ImVec4(0.05f, 0.05f, 0.10f, 0.90f); + Colors[ImGuiCol_ModalWindowDarkening] = ImVec4(0.20f, 0.20f, 0.20f, 0.35f); +} + +ImGuiIO::ImGuiIO() +{ + // Most fields are initialized with zero + memset(this, 0, sizeof(*this)); + + DisplaySize = ImVec2(-1.0f, -1.0f); + DeltaTime = 1.0f/60.0f; + IniSavingRate = 5.0f; + IniFilename = "imgui.ini"; + LogFilename = "imgui_log.txt"; + Fonts = &GImDefaultFontAtlas; + FontGlobalScale = 1.0f; + MousePos = ImVec2(-1,-1); + MousePosPrev = ImVec2(-1,-1); + MouseDoubleClickTime = 0.30f; + MouseDoubleClickMaxDist = 6.0f; + MouseDragThreshold = 6.0f; + for (int i = 0; i < ImGuiKey_COUNT; i++) + KeyMap[i] = -1; + KeyRepeatDelay = 0.250f; + KeyRepeatRate = 0.050f; + UserData = NULL; + + // User functions + RenderDrawListsFn = NULL; + MemAllocFn = malloc; + MemFreeFn = free; + GetClipboardTextFn = GetClipboardTextFn_DefaultImpl; // Platform dependent default implementations + SetClipboardTextFn = SetClipboardTextFn_DefaultImpl; + ImeSetInputScreenPosFn = ImeSetInputScreenPosFn_DefaultImpl; +} + +// Pass in translated ASCII characters for text input. +// - with glfw you can get those from the callback set in glfwSetCharCallback() +// - on Windows you can get those using ToAscii+keyboard state, or via the WM_CHAR message +void ImGuiIO::AddInputCharacter(ImWchar c) +{ + const int n = ImStrlenW(InputCharacters); + if (n + 1 < IM_ARRAYSIZE(InputCharacters)) + { + InputCharacters[n] = c; + InputCharacters[n+1] = '\0'; + } +} + +void ImGuiIO::AddInputCharactersUTF8(const char* utf8_chars) +{ + // We can't pass more wchars than ImGuiIO::InputCharacters[] can hold so don't convert more + const int wchars_buf_len = sizeof(ImGuiIO::InputCharacters) / sizeof(ImWchar); + ImWchar wchars[wchars_buf_len]; + ImTextStrFromUtf8(wchars, wchars_buf_len, utf8_chars, NULL); + for (int i = 0; wchars[i] != 0 && i < wchars_buf_len; i++) + AddInputCharacter(wchars[i]); +} + +//----------------------------------------------------------------------------- +// HELPERS +//----------------------------------------------------------------------------- + +#define IM_INT_MIN (-2147483647-1) +#define IM_INT_MAX (2147483647) + +// Play it nice with Windows users. Notepad in 2015 still doesn't display text data with Unix-style \n. +#ifdef _MSC_VER +#define IM_NEWLINE "\r\n" +#else +#define IM_NEWLINE "\n" +#endif + +bool ImIsPointInTriangle(const ImVec2& p, const ImVec2& a, const ImVec2& b, const ImVec2& c) +{ + bool b1 = ((p.x - b.x) * (a.y - b.y) - (p.y - b.y) * (a.x - b.x)) < 0.0f; + bool b2 = ((p.x - c.x) * (b.y - c.y) - (p.y - c.y) * (b.x - c.x)) < 0.0f; + bool b3 = ((p.x - a.x) * (c.y - a.y) - (p.y - a.y) * (c.x - a.x)) < 0.0f; + return ((b1 == b2) && (b2 == b3)); +} + +int ImStricmp(const char* str1, const char* str2) +{ + int d; + while ((d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; } + return d; +} + +int ImStrnicmp(const char* str1, const char* str2, int count) +{ + int d = 0; + while (count > 0 && (d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; count--; } + return d; +} + +char* ImStrdup(const char *str) +{ + char *buff = (char*)ImGui::MemAlloc(strlen(str) + 1); + IM_ASSERT(buff); + strcpy(buff, str); + return buff; +} + +int ImStrlenW(const ImWchar* str) +{ + int n = 0; + while (*str++) n++; + return n; +} + +const ImWchar* ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin) // find beginning-of-line +{ + while (buf_mid_line > buf_begin && buf_mid_line[-1] != '\n') + buf_mid_line--; + return buf_mid_line; +} + +const char* ImStristr(const char* haystack, const char* needle, const char* needle_end) +{ + if (!needle_end) + needle_end = needle + strlen(needle); + + const char un0 = (char)toupper(*needle); + while (*haystack) + { + if (toupper(*haystack) == un0) + { + const char* b = needle + 1; + for (const char* a = haystack + 1; b < needle_end; a++, b++) + if (toupper(*a) != toupper(*b)) + break; + if (b == needle_end) + return haystack; + } + haystack++; + } + return NULL; +} + +int ImFormatString(char* buf, int buf_size, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + int w = vsnprintf(buf, buf_size, fmt, args); + va_end(args); + buf[buf_size-1] = 0; + return (w == -1) ? buf_size : w; +} + +int ImFormatStringV(char* buf, int buf_size, const char* fmt, va_list args) +{ + int w = vsnprintf(buf, buf_size, fmt, args); + buf[buf_size-1] = 0; + return (w == -1) ? buf_size : w; +} + +// Pass data_size==0 for zero-terminated string +// FIXME-OPT: Replace with e.g. FNV1a hash? CRC32 pretty much randomly access 1KB. Need to do proper measurements. +ImU32 ImHash(const void* data, int data_size, ImU32 seed = 0) +{ + static ImU32 crc32_lut[256] = { 0 }; + if (!crc32_lut[1]) + { + const ImU32 polynomial = 0xEDB88320; + for (ImU32 i = 0; i < 256; i++) + { + ImU32 crc = i; + for (ImU32 j = 0; j < 8; j++) + crc = (crc >> 1) ^ (ImU32(-int(crc & 1)) & polynomial); + crc32_lut[i] = crc; + } + } + + seed = ~seed; + ImU32 crc = seed; + const unsigned char* current = (const unsigned char*)data; + + if (data_size > 0) + { + // Known size + while (data_size--) + crc = (crc >> 8) ^ crc32_lut[(crc & 0xFF) ^ *current++]; + } + else + { + // Zero-terminated string + while (unsigned char c = *current++) + { + // We support a syntax of "label###id" where only "###id" is included in the hash, and only "label" gets displayed. + // Because this syntax is rarely used we are optimizing for the common case. + // - If we reach ### in the string we discard the hash so far and reset to the seed. + // - We don't do 'current += 2; continue;' after handling ### to keep the code smaller. + if (c == '#' && current[0] == '#' && current[1] == '#') + crc = seed; + + crc = (crc >> 8) ^ crc32_lut[(crc & 0xFF) ^ c]; + } + } + return ~crc; +} + +//----------------------------------------------------------------------------- +// ImText* helpers +//----------------------------------------------------------------------------- + +// Convert UTF-8 to 32-bits character, process single character input. +// Based on stb_from_utf8() from github.com/nothings/stb/ +// We handle UTF-8 decoding error by skipping forward. +int ImTextCharFromUtf8(unsigned int* out_char, const char* in_text, const char* in_text_end) +{ + unsigned int c = (unsigned int)-1; + const unsigned char* str = (const unsigned char*)in_text; + if (!(*str & 0x80)) + { + c = (unsigned int)(*str++); + *out_char = c; + return 1; + } + if ((*str & 0xe0) == 0xc0) + { + *out_char = 0; + if (in_text_end && in_text_end - (const char*)str < 2) return 0; + if (*str < 0xc2) return 0; + c = (unsigned int)((*str++ & 0x1f) << 6); + if ((*str & 0xc0) != 0x80) return 0; + c += (*str++ & 0x3f); + *out_char = c; + return 2; + } + if ((*str & 0xf0) == 0xe0) + { + *out_char = 0; + if (in_text_end && in_text_end - (const char*)str < 3) return 0; + if (*str == 0xe0 && (str[1] < 0xa0 || str[1] > 0xbf)) return 0; + if (*str == 0xed && str[1] > 0x9f) return 0; // str[1] < 0x80 is checked below + c = (unsigned int)((*str++ & 0x0f) << 12); + if ((*str & 0xc0) != 0x80) return 0; + c += (unsigned int)((*str++ & 0x3f) << 6); + if ((*str & 0xc0) != 0x80) return 0; + c += (*str++ & 0x3f); + *out_char = c; + return 3; + } + if ((*str & 0xf8) == 0xf0) + { + *out_char = 0; + if (in_text_end && in_text_end - (const char*)str < 4) return 0; + if (*str > 0xf4) return 0; + if (*str == 0xf0 && (str[1] < 0x90 || str[1] > 0xbf)) return 0; + if (*str == 0xf4 && str[1] > 0x8f) return 0; // str[1] < 0x80 is checked below + c = (unsigned int)((*str++ & 0x07) << 18); + if ((*str & 0xc0) != 0x80) return 0; + c += (unsigned int)((*str++ & 0x3f) << 12); + if ((*str & 0xc0) != 0x80) return 0; + c += (unsigned int)((*str++ & 0x3f) << 6); + if ((*str & 0xc0) != 0x80) return 0; + c += (*str++ & 0x3f); + // utf-8 encodings of values used in surrogate pairs are invalid + if ((c & 0xFFFFF800) == 0xD800) return 0; + *out_char = c; + return 4; + } + *out_char = 0; + return 0; +} + +int ImTextStrFromUtf8(ImWchar* buf, int buf_size, const char* in_text, const char* in_text_end, const char** in_text_remaining) +{ + ImWchar* buf_out = buf; + ImWchar* buf_end = buf + buf_size; + while (buf_out < buf_end-1 && (!in_text_end || in_text < in_text_end) && *in_text) + { + unsigned int c; + in_text += ImTextCharFromUtf8(&c, in_text, in_text_end); + if (c == 0) + break; + if (c < 0x10000) // FIXME: Losing characters that don't fit in 2 bytes + *buf_out++ = (ImWchar)c; + } + *buf_out = 0; + if (in_text_remaining) + *in_text_remaining = in_text; + return (int)(buf_out - buf); +} + +int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end) +{ + int char_count = 0; + while ((!in_text_end || in_text < in_text_end) && *in_text) + { + unsigned int c; + in_text += ImTextCharFromUtf8(&c, in_text, in_text_end); + if (c == 0) + break; + if (c < 0x10000) + char_count++; + } + return char_count; +} + +// Based on stb_to_utf8() from github.com/nothings/stb/ +static inline int ImTextCharToUtf8(char* buf, int buf_size, unsigned int c) +{ + if (c < 0x80) + { + buf[0] = (char)c; + return 1; + } + if (c < 0x800) + { + if (buf_size < 2) return 0; + buf[0] = (char)(0xc0 + (c >> 6)); + buf[1] = (char)(0x80 + (c & 0x3f)); + return 2; + } + if (c >= 0xdc00 && c < 0xe000) + { + return 0; + } + if (c >= 0xd800 && c < 0xdc00) + { + if (buf_size < 4) return 0; + buf[0] = (char)(0xf0 + (c >> 18)); + buf[1] = (char)(0x80 + ((c >> 12) & 0x3f)); + buf[2] = (char)(0x80 + ((c >> 6) & 0x3f)); + buf[3] = (char)(0x80 + ((c ) & 0x3f)); + return 4; + } + //else if (c < 0x10000) + { + if (buf_size < 3) return 0; + buf[0] = (char)(0xe0 + (c >> 12)); + buf[1] = (char)(0x80 + ((c>> 6) & 0x3f)); + buf[2] = (char)(0x80 + ((c ) & 0x3f)); + return 3; + } +} + +static inline int ImTextCountUtf8BytesFromChar(unsigned int c) +{ + if (c < 0x80) return 1; + if (c < 0x800) return 2; + if (c >= 0xdc00 && c < 0xe000) return 0; + if (c >= 0xd800 && c < 0xdc00) return 4; + return 3; +} + +int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, const ImWchar* in_text_end) +{ + char* buf_out = buf; + const char* buf_end = buf + buf_size; + while (buf_out < buf_end-1 && (!in_text_end || in_text < in_text_end) && *in_text) + { + unsigned int c = (unsigned int)(*in_text++); + if (c < 0x80) + *buf_out++ = (char)c; + else + buf_out += ImTextCharToUtf8(buf_out, (int)(buf_end-buf_out-1), c); + } + *buf_out = 0; + return (int)(buf_out - buf); +} + +int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* in_text_end) +{ + int bytes_count = 0; + while ((!in_text_end || in_text < in_text_end) && *in_text) + { + unsigned int c = (unsigned int)(*in_text++); + if (c < 0x80) + bytes_count++; + else + bytes_count += ImTextCountUtf8BytesFromChar(c); + } + return bytes_count; +} + +ImU32 ImGui::ColorConvertFloat4ToU32(const ImVec4& in) +{ + ImU32 out = ((ImU32)(ImSaturate(in.x)*255.f)); + out |= ((ImU32)(ImSaturate(in.y)*255.f) << 8); + out |= ((ImU32)(ImSaturate(in.z)*255.f) << 16); + out |= ((ImU32)(ImSaturate(in.w)*255.f) << 24); + return out; +} + +// Convert rgb floats ([0-1],[0-1],[0-1]) to hsv floats ([0-1],[0-1],[0-1]), from Foley & van Dam p592 +// Optimized http://lolengine.net/blog/2013/01/13/fast-rgb-to-hsv +void ImGui::ColorConvertRGBtoHSV(float r, float g, float b, float& out_h, float& out_s, float& out_v) +{ + float K = 0.f; + if (g < b) + { + const float tmp = g; g = b; b = tmp; + K = -1.f; + } + if (r < g) + { + const float tmp = r; r = g; g = tmp; + K = -2.f / 6.f - K; + } + + const float chroma = r - (g < b ? g : b); + out_h = fabsf(K + (g - b) / (6.f * chroma + 1e-20f)); + out_s = chroma / (r + 1e-20f); + out_v = r; +} + +// Convert hsv floats ([0-1],[0-1],[0-1]) to rgb floats ([0-1],[0-1],[0-1]), from Foley & van Dam p593 +// also http://en.wikipedia.org/wiki/HSL_and_HSV +void ImGui::ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b) +{ + if (s == 0.0f) + { + // gray + out_r = out_g = out_b = v; + return; + } + + h = fmodf(h, 1.0f) / (60.0f/360.0f); + int i = (int)h; + float f = h - (float)i; + float p = v * (1.0f - s); + float q = v * (1.0f - s * f); + float t = v * (1.0f - s * (1.0f - f)); + + switch (i) + { + case 0: out_r = v; out_g = t; out_b = p; break; + case 1: out_r = q; out_g = v; out_b = p; break; + case 2: out_r = p; out_g = v; out_b = t; break; + case 3: out_r = p; out_g = q; out_b = v; break; + case 4: out_r = t; out_g = p; out_b = v; break; + case 5: default: out_r = v; out_g = p; out_b = q; break; + } +} + +// Load file content into memory +// Memory allocated with ImGui::MemAlloc(), must be freed by user using ImGui::MemFree() +bool ImLoadFileToMemory(const char* filename, const char* file_open_mode, void** out_file_data, int* out_file_size, int padding_bytes) +{ + IM_ASSERT(filename && file_open_mode && out_file_data && out_file_size); + *out_file_data = NULL; + *out_file_size = 0; + + FILE* f; + if ((f = fopen(filename, file_open_mode)) == NULL) + return false; + + long file_size_signed; + if (fseek(f, 0, SEEK_END) || (file_size_signed = ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) + { + fclose(f); + return false; + } + + int file_size = (int)file_size_signed; + void* file_data = ImGui::MemAlloc(file_size + padding_bytes); + if (file_data == NULL) + { + fclose(f); + return false; + } + if (fread(file_data, 1, (size_t)file_size, f) != (size_t)file_size) + { + fclose(f); + ImGui::MemFree(file_data); + return false; + } + if (padding_bytes > 0) + memset((void *)(((char*)file_data) + file_size), 0, padding_bytes); + + fclose(f); + *out_file_data = file_data; + if (out_file_size) + *out_file_size = file_size; + + return true; +} + +//----------------------------------------------------------------------------- +// ImGuiStorage +//----------------------------------------------------------------------------- + +// Helper: Key->value storage +void ImGuiStorage::Clear() +{ + Data.clear(); +} + +// std::lower_bound but without the bullshit +static ImVector::iterator LowerBound(ImVector& data, ImU32 key) +{ + ImVector::iterator first = data.begin(); + ImVector::iterator last = data.end(); + int count = (int)(last - first); + while (count > 0) + { + int count2 = count / 2; + ImVector::iterator mid = first + count2; + if (mid->key < key) + { + first = ++mid; + count -= count2 + 1; + } + else + { + count = count2; + } + } + return first; +} + +int ImGuiStorage::GetInt(ImU32 key, int default_val) const +{ + ImVector::iterator it = LowerBound(const_cast&>(Data), key); + if (it == Data.end() || it->key != key) + return default_val; + return it->val_i; +} + +float ImGuiStorage::GetFloat(ImU32 key, float default_val) const +{ + ImVector::iterator it = LowerBound(const_cast&>(Data), key); + if (it == Data.end() || it->key != key) + return default_val; + return it->val_f; +} + +void* ImGuiStorage::GetVoidPtr(ImGuiID key) const +{ + ImVector::iterator it = LowerBound(const_cast&>(Data), key); + if (it == Data.end() || it->key != key) + return NULL; + return it->val_p; +} + +// References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer. +int* ImGuiStorage::GetIntRef(ImGuiID key, int default_val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + it = Data.insert(it, Pair(key, default_val)); + return &it->val_i; +} + +float* ImGuiStorage::GetFloatRef(ImGuiID key, float default_val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + it = Data.insert(it, Pair(key, default_val)); + return &it->val_f; +} + +void** ImGuiStorage::GetVoidPtrRef(ImGuiID key, void* default_val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + it = Data.insert(it, Pair(key, default_val)); + return &it->val_p; +} + +// FIXME-OPT: Need a way to reuse the result of lower_bound when doing GetInt()/SetInt() - not too bad because it only happens on explicit interaction (maximum one a frame) +void ImGuiStorage::SetInt(ImU32 key, int val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + { + Data.insert(it, Pair(key, val)); + return; + } + it->val_i = val; +} + +void ImGuiStorage::SetFloat(ImU32 key, float val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + { + Data.insert(it, Pair(key, val)); + return; + } + it->val_f = val; +} + +void ImGuiStorage::SetVoidPtr(ImU32 key, void* val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + { + Data.insert(it, Pair(key, val)); + return; + } + it->val_p = val; +} + +void ImGuiStorage::SetAllInt(int v) +{ + for (int i = 0; i < Data.Size; i++) + Data[i].val_i = v; +} + +//----------------------------------------------------------------------------- +// ImGuiTextFilter +//----------------------------------------------------------------------------- + +// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" +ImGuiTextFilter::ImGuiTextFilter(const char* default_filter) +{ + if (default_filter) + { + ImFormatString(InputBuf, IM_ARRAYSIZE(InputBuf), "%s", default_filter); + Build(); + } + else + { + InputBuf[0] = 0; + CountGrep = 0; + } +} + +void ImGuiTextFilter::Draw(const char* label, float width) +{ + if (width > 0.0f) + ImGui::PushItemWidth(width); + ImGui::InputText(label, InputBuf, IM_ARRAYSIZE(InputBuf)); + if (width > 0.0f) + ImGui::PopItemWidth(); + Build(); +} + +void ImGuiTextFilter::TextRange::split(char separator, ImVector& out) +{ + out.resize(0); + const char* wb = b; + const char* we = wb; + while (we < e) + { + if (*we == separator) + { + out.push_back(TextRange(wb, we)); + wb = we + 1; + } + we++; + } + if (wb != we) + out.push_back(TextRange(wb, we)); +} + +void ImGuiTextFilter::Build() +{ + Filters.resize(0); + TextRange input_range(InputBuf, InputBuf+strlen(InputBuf)); + input_range.split(',', Filters); + + CountGrep = 0; + for (int i = 0; i != Filters.Size; i++) + { + Filters[i].trim_blanks(); + if (Filters[i].empty()) + continue; + if (Filters[i].front() != '-') + CountGrep += 1; + } +} + +bool ImGuiTextFilter::PassFilter(const char* val) const +{ + if (Filters.empty()) + return true; + + if (val == NULL) + val = ""; + + for (int i = 0; i != Filters.Size; i++) + { + const TextRange& f = Filters[i]; + if (f.empty()) + continue; + if (f.front() == '-') + { + // Subtract + if (ImStristr(val, f.begin()+1, f.end()) != NULL) + return false; + } + else + { + // Grep + if (ImStristr(val, f.begin(), f.end()) != NULL) + return true; + } + } + + // Implicit * grep + if (CountGrep == 0) + return true; + + return false; +} + +//----------------------------------------------------------------------------- +// ImGuiTextBuffer +//----------------------------------------------------------------------------- + +// On some platform vsnprintf() takes va_list by reference and modifies it. +// va_copy is the 'correct' way to copy a va_list but Visual Studio prior to 2013 doesn't have it. +#ifndef va_copy +#define va_copy(dest, src) (dest = src) +#endif + +// Helper: Text buffer for logging/accumulating text +void ImGuiTextBuffer::appendv(const char* fmt, va_list args) +{ + va_list args_copy; + va_copy(args_copy, args); + + int len = vsnprintf(NULL, 0, fmt, args); // FIXME-OPT: could do a first pass write attempt, likely successful on first pass. + if (len <= 0) + return; + + const int write_off = Buf.Size; + const int needed_sz = write_off + len; + if (write_off + len >= Buf.Capacity) + { + int double_capacity = Buf.Capacity * 2; + Buf.reserve(needed_sz > double_capacity ? needed_sz : double_capacity); + } + + Buf.resize(needed_sz); + ImFormatStringV(&Buf[write_off] - 1, len+1, fmt, args_copy); +} + +void ImGuiTextBuffer::append(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + appendv(fmt, args); + va_end(args); +} + +//----------------------------------------------------------------------------- +// ImGuiSimpleColumns +//----------------------------------------------------------------------------- + +ImGuiSimpleColumns::ImGuiSimpleColumns() +{ + Count = 0; + Spacing = Width = NextWidth = 0.0f; + memset(Pos, 0, sizeof(Pos)); + memset(NextWidths, 0, sizeof(NextWidths)); +} + +void ImGuiSimpleColumns::Update(int count, float spacing, bool clear) +{ + IM_ASSERT(Count <= IM_ARRAYSIZE(Pos)); + Count = count; + Width = NextWidth = 0.0f; + Spacing = spacing; + if (clear) memset(NextWidths, 0, sizeof(NextWidths)); + for (int i = 0; i < Count; i++) + { + if (i > 0 && NextWidths[i] > 0.0f) + Width += Spacing; + Pos[i] = (float)(int)Width; + Width += NextWidths[i]; + NextWidths[i] = 0.0f; + } +} + +float ImGuiSimpleColumns::DeclColumns(float w0, float w1, float w2) // not using va_arg because they promote float to double +{ + NextWidth = 0.0f; + NextWidths[0] = ImMax(NextWidths[0], w0); + NextWidths[1] = ImMax(NextWidths[1], w1); + NextWidths[2] = ImMax(NextWidths[2], w2); + for (int i = 0; i < 3; i++) + NextWidth += NextWidths[i] + ((i > 0 && NextWidths[i] > 0.0f) ? Spacing : 0.0f); + return ImMax(Width, NextWidth); +} + +float ImGuiSimpleColumns::CalcExtraSpace(float avail_w) +{ + return ImMax(0.0f, avail_w - Width); +} + +//----------------------------------------------------------------------------- +// ImGuiWindow +//----------------------------------------------------------------------------- + +ImGuiWindow::ImGuiWindow(const char* name) +{ + Name = ImStrdup(name); + ID = ImHash(name, 0); + IDStack.push_back(ID); + MoveID = GetID("#MOVE"); + + Flags = 0; + PosFloat = Pos = ImVec2(0.0f, 0.0f); + Size = SizeFull = ImVec2(0.0f, 0.0f); + SizeContents = ImVec2(0.0f, 0.0f); + WindowPadding = ImVec2(0.0f, 0.0f); + ScrollY = 0.0f; + ScrollTargetRelY = FLT_MAX; + ScrollTargetCenterRatioY = 0.5f; + ScrollbarY = false; + Active = WasActive = false; + Accessed = false; + Collapsed = false; + SkipItems = false; + BeginCount = 0; + PopupID = 0; + AutoFitFramesX = AutoFitFramesY = -1; + AutoFitOnlyGrows = false; + AutoPosLastDirection = -1; + HiddenFrames = 0; + SetWindowPosAllowFlags = SetWindowSizeAllowFlags = SetWindowCollapsedAllowFlags = ImGuiSetCond_Always | ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing; + SetWindowPosCenterWanted = false; + + LastFrameDrawn = -1; + ItemWidthDefault = 0.0f; + FontWindowScale = 1.0f; + + DrawList = (ImDrawList*)ImGui::MemAlloc(sizeof(ImDrawList)); + new(DrawList) ImDrawList(); + DrawList->_OwnerName = Name; + RootWindow = NULL; + RootNonPopupWindow = NULL; + + FocusIdxAllCounter = FocusIdxTabCounter = -1; + FocusIdxAllRequestCurrent = FocusIdxTabRequestCurrent = IM_INT_MAX; + FocusIdxAllRequestNext = FocusIdxTabRequestNext = IM_INT_MAX; +} + +ImGuiWindow::~ImGuiWindow() +{ + DrawList->~ImDrawList(); + ImGui::MemFree(DrawList); + DrawList = NULL; + ImGui::MemFree(Name); + Name = NULL; +} + +ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end) +{ + ImGuiID seed = IDStack.back(); + ImGuiID id = ImHash(str, str_end ? (int)(str_end - str) : 0, seed); + ImGui::KeepAliveID(id); + return id; +} + +ImGuiID ImGuiWindow::GetID(const void* ptr) +{ + ImGuiID seed = IDStack.back(); + ImGuiID id = ImHash(&ptr, sizeof(void*), seed); + ImGui::KeepAliveID(id); + return id; +} + +//----------------------------------------------------------------------------- +// Internal API exposed in imgui_internal.h +//----------------------------------------------------------------------------- + +ImGuiWindow* ImGui::GetCurrentWindow() +{ + // If this ever crash it probably means that ImGui::NewFrame() has never been called (which is illegal). We should always have a CurrentWindow in the stack (there is an implicit "Debug" window) + ImGuiState& g = *GImGui; + g.CurrentWindow->Accessed = true; + return g.CurrentWindow; +} + +static void SetCurrentWindow(ImGuiWindow* window) +{ + ImGuiState& g = *GImGui; + g.CurrentWindow = window; + if (window) + g.FontSize = window->CalcFontSize(); +} + +ImGuiWindow* ImGui::GetParentWindow() +{ + ImGuiState& g = *GImGui; + IM_ASSERT(g.CurrentWindowStack.Size >= 2); + return g.CurrentWindowStack[g.CurrentWindowStack.Size - 2]; +} + +void ImGui::SetActiveID(ImGuiID id, ImGuiWindow* window = NULL) +{ + ImGuiState& g = *GImGui; + g.ActiveId = id; + g.ActiveIdIsFocusedOnly = false; + g.ActiveIdIsJustActivated = true; + g.ActiveIdWindow = window; +} + +void ImGui::KeepAliveID(ImGuiID id) +{ + ImGuiState& g = *GImGui; + if (g.ActiveId == id) + g.ActiveIdIsAlive = true; +} + +// Advance cursor given item size for layout. +void ImGui::ItemSize(const ImVec2& size, float text_offset_y) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + // Always align ourselves on pixel boundaries + ImGuiState& g = *GImGui; + const float line_height = ImMax(window->DC.CurrentLineHeight, size.y); + const float text_base_offset = ImMax(window->DC.CurrentLineTextBaseOffset, text_offset_y); + window->DC.CursorPosPrevLine = ImVec2(window->DC.CursorPos.x + size.x, window->DC.CursorPos.y); + window->DC.CursorPos = ImVec2((float)(int)(window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX), (float)(int)(window->DC.CursorPos.y + line_height + g.Style.ItemSpacing.y)); + window->DC.CursorMaxPos.x = ImMax(window->DC.CursorMaxPos.x, window->DC.CursorPosPrevLine.x); + window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, window->DC.CursorPos.y); + + //window->DrawList->AddCircle(window->DC.CursorMaxPos, 3.0f, 0xFF0000FF, 4); // Debug + + window->DC.PrevLineHeight = line_height; + window->DC.PrevLineTextBaseOffset = text_base_offset; + window->DC.CurrentLineHeight = window->DC.CurrentLineTextBaseOffset = 0.0f; +} + +void ImGui::ItemSize(const ImRect& bb, float text_offset_y) +{ + ItemSize(bb.GetSize(), text_offset_y); +} + +// Declare item bounding box for clipping and interaction. +// Note that the size can be different than the one provided to ItemSize(). Typically, widgets that spread over available surface +// declares their minimum size requirement to ItemSize() and then use a larger region for drawing/interaction, which is passed to ItemAdd(). +bool ImGui::ItemAdd(const ImRect& bb, const ImGuiID* id) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.LastItemID = id ? *id : 0; + window->DC.LastItemRect = bb; + if (IsClippedEx(bb, id, false)) + { + window->DC.LastItemHoveredAndUsable = window->DC.LastItemHoveredRect = false; + return false; + } + + // This is a sensible default, but widgets are free to override it after calling ItemAdd() + ImGuiState& g = *GImGui; + if (IsMouseHoveringRect(bb.Min, bb.Max)) + { + // Matching the behavior of IsHovered() but ignore if ActiveId==window->MoveID (we clicked on the window background) + // So that clicking on items with no active id such as Text() still returns true with IsItemHovered() + window->DC.LastItemHoveredRect = true; + window->DC.LastItemHoveredAndUsable = false; + if (g.HoveredRootWindow == window->RootWindow) + if (g.ActiveId == 0 || (id && g.ActiveId == *id) || g.ActiveIdIsFocusedOnly || (g.ActiveId == window->MoveID)) + if (IsWindowContentHoverable(window)) + window->DC.LastItemHoveredAndUsable = true; + } + else + { + window->DC.LastItemHoveredAndUsable = window->DC.LastItemHoveredRect = false; + } + + return true; +} + +bool ImGui::IsClippedEx(const ImRect& bb, const ImGuiID* id, bool clip_even_when_logged) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + if (!bb.Overlaps(window->ClipRect)) + { + if (!id || *id != GImGui->ActiveId) + if (clip_even_when_logged || !g.LogEnabled) + return true; + } + return false; +} + +bool ImGui::IsHovered(const ImRect& bb, ImGuiID id, bool flatten_childs) +{ + ImGuiState& g = *GImGui; + if (g.HoveredId == 0 || g.HoveredId == id) + { + ImGuiWindow* window = GetCurrentWindow(); + if (g.HoveredWindow == window || (flatten_childs && g.HoveredRootWindow == window->RootWindow)) + if ((g.ActiveId == 0 || g.ActiveId == id || g.ActiveIdIsFocusedOnly) && ImGui::IsMouseHoveringRect(bb.Min, bb.Max)) + if (IsWindowContentHoverable(g.HoveredRootWindow)) + return true; + } + return false; +} + +bool ImGui::FocusableItemRegister(ImGuiWindow* window, bool is_active, bool tab_stop) +{ + ImGuiState& g = *GImGui; + + const bool allow_keyboard_focus = window->DC.AllowKeyboardFocus; + window->FocusIdxAllCounter++; + if (allow_keyboard_focus) + window->FocusIdxTabCounter++; + + // Process keyboard input at this point: TAB, Shift-TAB switch focus + // We can always TAB out of a widget that doesn't allow tabbing in. + if (tab_stop && window->FocusIdxAllRequestNext == IM_INT_MAX && window->FocusIdxTabRequestNext == IM_INT_MAX && is_active && IsKeyPressedMap(ImGuiKey_Tab)) + { + // Modulo on index will be applied at the end of frame once we've got the total counter of items. + window->FocusIdxTabRequestNext = window->FocusIdxTabCounter + (g.IO.KeyShift ? (allow_keyboard_focus ? -1 : 0) : +1); + } + + if (window->FocusIdxAllCounter == window->FocusIdxAllRequestCurrent) + return true; + + if (allow_keyboard_focus) + if (window->FocusIdxTabCounter == window->FocusIdxTabRequestCurrent) + return true; + + return false; +} + +void ImGui::FocusableItemUnregister(ImGuiWindow* window) +{ + window->FocusIdxAllCounter--; + window->FocusIdxTabCounter--; +} + +ImVec2 ImGui::CalcItemSize(ImVec2 size, float default_x, float default_y) +{ + ImGuiState& g = *GImGui; + ImVec2 content_max; + if (size.x < 0.0f || size.y < 0.0f) + content_max = g.CurrentWindow->Pos + ImGui::GetContentRegionMax(); + if (size.x <= 0.0f) + size.x = (size.x == 0.0f) ? default_x : ImMax(content_max.x - g.CurrentWindow->DC.CursorPos.x, 4.0f) + size.x; + if (size.y <= 0.0f) + size.y = (size.y == 0.0f) ? default_y : ImMax(content_max.y - g.CurrentWindow->DC.CursorPos.y, 4.0f) + size.y; + return size; +} + +float ImGui::CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x) +{ + if (wrap_pos_x < 0.0f) + return 0.0f; + + ImGuiWindow* window = ImGui::GetCurrentWindow(); + if (wrap_pos_x == 0.0f) + wrap_pos_x = ImGui::GetContentRegionMax().x; + if (wrap_pos_x > 0.0f) + wrap_pos_x += window->Pos.x; // wrap_pos_x is provided is window local space + + const float wrap_width = wrap_pos_x > 0.0f ? ImMax(wrap_pos_x - pos.x, 0.00001f) : 0.0f; + return wrap_width; +} + +//----------------------------------------------------------------------------- + +void* ImGui::MemAlloc(size_t sz) +{ + GImGui->IO.MetricsAllocs++; + return GImGui->IO.MemAllocFn(sz); +} + +void ImGui::MemFree(void* ptr) +{ + if (ptr) GImGui->IO.MetricsAllocs--; + return GImGui->IO.MemFreeFn(ptr); +} + +const char* ImGui::GetVersion() +{ + return IMGUI_VERSION; +} + +// Internal state access - if you want to share ImGui state between modules (e.g. DLL) or allocate it yourself +// Note that we still point to some static data and members (such as GFontAtlas), so the state instance you end up using will point to the static data within its module +void* ImGui::GetInternalState() +{ + return GImGui; +} + +size_t ImGui::GetInternalStateSize() +{ + return sizeof(ImGuiState); +} + +void ImGui::SetInternalState(void* state, bool construct) +{ + if (construct) + new (state) ImGuiState(); + GImGui = (ImGuiState*)state; +} + +ImGuiIO& ImGui::GetIO() +{ + return GImGui->IO; +} + +ImGuiStyle& ImGui::GetStyle() +{ + return GImGui->Style; +} + +float ImGui::GetTime() +{ + return GImGui->Time; +} + +int ImGui::GetFrameCount() +{ + return GImGui->FrameCount; +} + +void ImGui::NewFrame() +{ + ImGuiState& g = *GImGui; + + // Check user data + IM_ASSERT(g.IO.DeltaTime >= 0.0f); + IM_ASSERT(g.IO.DisplaySize.x >= 0.0f && g.IO.DisplaySize.y >= 0.0f); + IM_ASSERT(g.IO.RenderDrawListsFn != NULL); // Must be implemented + IM_ASSERT(g.IO.Fonts->Fonts.Size > 0); // Font Atlas not created. Did you call io.Fonts->GetTexDataAsRGBA32 / GetTexDataAsAlpha8 ? + IM_ASSERT(g.IO.Fonts->Fonts[0]->IsLoaded()); // Font Atlas not created. Did you call io.Fonts->GetTexDataAsRGBA32 / GetTexDataAsAlpha8 ? + + if (!g.Initialized) + { + // Initialize on first frame + g.LogClipboard = (ImGuiTextBuffer*)ImGui::MemAlloc(sizeof(ImGuiTextBuffer)); + new(g.LogClipboard) ImGuiTextBuffer(); + + IM_ASSERT(g.Settings.empty()); + LoadSettings(); + g.Initialized = true; + } + + SetCurrentFont(g.IO.Fonts->Fonts[0]); + + g.Time += g.IO.DeltaTime; + g.FrameCount += 1; + g.Tooltip[0] = '\0'; + g.OverlayDrawList.Clear(); + g.OverlayDrawList.PushTextureID(g.IO.Fonts->TexID); + g.OverlayDrawList.PushClipRectFullScreen(); + g.OverlayDrawList.AddDrawCmd(); + + // Update inputs state + if (g.IO.MousePos.x < 0 && g.IO.MousePos.y < 0) + g.IO.MousePos = ImVec2(-9999.0f, -9999.0f); + if ((g.IO.MousePos.x < 0 && g.IO.MousePos.y < 0) || (g.IO.MousePosPrev.x < 0 && g.IO.MousePosPrev.y < 0)) // if mouse just appeared or disappeared (negative coordinate) we cancel out movement in MouseDelta + g.IO.MouseDelta = ImVec2(0.0f, 0.0f); + else + g.IO.MouseDelta = g.IO.MousePos - g.IO.MousePosPrev; + g.IO.MousePosPrev = g.IO.MousePos; + for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) + { + g.IO.MouseDownDurationPrev[i] = g.IO.MouseDownDuration[i]; + g.IO.MouseDownDuration[i] = g.IO.MouseDown[i] ? (g.IO.MouseDownDuration[i] < 0.0f ? 0.0f : g.IO.MouseDownDuration[i] + g.IO.DeltaTime) : -1.0f; + g.IO.MouseClicked[i] = g.IO.MouseDownDuration[i] == 0.0f; + g.IO.MouseReleased[i] = g.IO.MouseDownDurationPrev[i] >= 0.0f && !g.IO.MouseDown[i]; + g.IO.MouseDoubleClicked[i] = false; + if (g.IO.MouseClicked[i]) + { + if (g.Time - g.IO.MouseClickedTime[i] < g.IO.MouseDoubleClickTime) + { + if (ImLengthSqr(g.IO.MousePos - g.IO.MouseClickedPos[i]) < g.IO.MouseDoubleClickMaxDist * g.IO.MouseDoubleClickMaxDist) + g.IO.MouseDoubleClicked[i] = true; + g.IO.MouseClickedTime[i] = -FLT_MAX; // so the third click isn't turned into a double-click + } + else + { + g.IO.MouseClickedTime[i] = g.Time; + } + g.IO.MouseClickedPos[i] = g.IO.MousePos; + g.IO.MouseDragMaxDistanceSqr[i] = 0.0f; + } + else if (g.IO.MouseDown[i]) + { + g.IO.MouseDragMaxDistanceSqr[i] = ImMax(g.IO.MouseDragMaxDistanceSqr[i], ImLengthSqr(g.IO.MousePos - g.IO.MouseClickedPos[i])); + } + } + memcpy(g.IO.KeysDownDurationPrev, g.IO.KeysDownDuration, sizeof(g.IO.KeysDownDuration)); + for (int i = 0; i < IM_ARRAYSIZE(g.IO.KeysDown); i++) + g.IO.KeysDownDuration[i] = g.IO.KeysDown[i] ? (g.IO.KeysDownDuration[i] < 0.0f ? 0.0f : g.IO.KeysDownDuration[i] + g.IO.DeltaTime) : -1.0f; + + // Calculate frame-rate for the user, as a purely luxurious feature + g.FramerateSecPerFrameAccum += g.IO.DeltaTime - g.FramerateSecPerFrame[g.FramerateSecPerFrameIdx]; + g.FramerateSecPerFrame[g.FramerateSecPerFrameIdx] = g.IO.DeltaTime; + g.FramerateSecPerFrameIdx = (g.FramerateSecPerFrameIdx + 1) % IM_ARRAYSIZE(g.FramerateSecPerFrame); + g.IO.Framerate = 1.0f / (g.FramerateSecPerFrameAccum / (float)IM_ARRAYSIZE(g.FramerateSecPerFrame)); + + // Clear reference to active widget if the widget isn't alive anymore + g.HoveredIdPreviousFrame = g.HoveredId; + g.HoveredId = 0; + if (!g.ActiveIdIsAlive && g.ActiveIdPreviousFrame == g.ActiveId && g.ActiveId != 0) + SetActiveID(0); + g.ActiveIdPreviousFrame = g.ActiveId; + g.ActiveIdIsAlive = false; + g.ActiveIdIsJustActivated = false; + if (!g.ActiveId) + g.MovedWindow = NULL; + + // Delay saving settings so we don't spam disk too much + if (g.SettingsDirtyTimer > 0.0f) + { + g.SettingsDirtyTimer -= g.IO.DeltaTime; + if (g.SettingsDirtyTimer <= 0.0f) + SaveSettings(); + } + + // Find the window we are hovering. Child windows can extend beyond the limit of their parent so we need to derive HoveredRootWindow from HoveredWindow + g.HoveredWindow = FindHoveredWindow(g.IO.MousePos, false); + if (g.HoveredWindow && (g.HoveredWindow->Flags & ImGuiWindowFlags_ChildWindow)) + g.HoveredRootWindow = g.HoveredWindow->RootWindow; + else + g.HoveredRootWindow = FindHoveredWindow(g.IO.MousePos, true); + + if (ImGuiWindow* modal_window = GetFrontMostModalRootWindow()) + { + g.ModalWindowDarkeningRatio = ImMin(g.ModalWindowDarkeningRatio + g.IO.DeltaTime * 6.0f, 1.0f); + if (g.HoveredRootWindow != modal_window) + g.HoveredRootWindow = g.HoveredWindow = NULL; + } + else + { + g.ModalWindowDarkeningRatio = 0.0f; + } + + // Are we using inputs? Tell user so they can capture/discard the inputs away from the rest of their application. + // When clicking outside of a window we assume the click is owned by the application and won't request capture. + int mouse_earliest_button_down = -1; + bool mouse_any_down = false; + for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) + { + if (g.IO.MouseClicked[i]) + g.IO.MouseDownOwned[i] = (g.HoveredWindow != NULL) || (!g.OpenedPopupStack.empty()); + mouse_any_down |= g.IO.MouseDown[i]; + if (g.IO.MouseDown[i]) + if (mouse_earliest_button_down == -1 || g.IO.MouseClickedTime[mouse_earliest_button_down] > g.IO.MouseClickedTime[i]) + mouse_earliest_button_down = i; + } + bool mouse_owned_by_application = mouse_earliest_button_down != -1 && !g.IO.MouseDownOwned[mouse_earliest_button_down]; + g.IO.WantCaptureMouse = (!mouse_owned_by_application && g.HoveredWindow != NULL) || (!mouse_owned_by_application && mouse_any_down) || (g.ActiveId != 0) || (!g.OpenedPopupStack.empty()) || (g.CaptureMouseNextFrame); + g.IO.WantCaptureKeyboard = (g.ActiveId != 0) || (g.CaptureKeyboardNextFrame); + g.MouseCursor = ImGuiMouseCursor_Arrow; + g.CaptureMouseNextFrame = g.CaptureKeyboardNextFrame = false; + + // If mouse was first clicked outside of ImGui bounds we also cancel out hovering. + if (mouse_owned_by_application) + g.HoveredWindow = g.HoveredRootWindow = NULL; + + // Scale & Scrolling + if (g.HoveredWindow && g.IO.MouseWheel != 0.0f && !g.HoveredWindow->Collapsed) + { + ImGuiWindow* window = g.HoveredWindow; + if (g.IO.KeyCtrl) + { + if (g.IO.FontAllowUserScaling) + { + // Zoom / Scale window + float new_font_scale = ImClamp(window->FontWindowScale + g.IO.MouseWheel * 0.10f, 0.50f, 2.50f); + float scale = new_font_scale / window->FontWindowScale; + window->FontWindowScale = new_font_scale; + + const ImVec2 offset = window->Size * (1.0f - scale) * (g.IO.MousePos - window->Pos) / window->Size; + window->Pos += offset; + window->PosFloat += offset; + window->Size *= scale; + window->SizeFull *= scale; + } + } + else + { + // Scroll + if (!(window->Flags & ImGuiWindowFlags_NoScrollWithMouse)) + { + const int scroll_lines = (window->Flags & ImGuiWindowFlags_ComboBox) ? 3 : 5; + SetWindowScrollY(window, window->ScrollY - g.IO.MouseWheel * window->CalcFontSize() * scroll_lines); + } + } + } + + // Pressing TAB activate widget focus + // NB: Don't discard FocusedWindow if it isn't active, so that a window that go on/off programatically won't lose its keyboard focus. + if (g.ActiveId == 0 && g.FocusedWindow != NULL && g.FocusedWindow->Active && IsKeyPressedMap(ImGuiKey_Tab, false)) + g.FocusedWindow->FocusIdxTabRequestNext = 0; + + // Mark all windows as not visible + for (int i = 0; i != g.Windows.Size; i++) + { + ImGuiWindow* window = g.Windows[i]; + window->WasActive = window->Active; + window->Active = false; + window->Accessed = false; + } + + // No window should be open at the beginning of the frame. + // But in order to allow the user to call NewFrame() multiple times without calling Render(), we are doing an explicit clear. + g.CurrentWindowStack.resize(0); + g.CurrentPopupStack.resize(0); + CloseInactivePopups(); + + // Create implicit window - we will only render it if the user has added something to it. + ImGui::SetNextWindowSize(ImVec2(400,400), ImGuiSetCond_FirstUseEver); + ImGui::Begin("Debug"); +} + +// NB: behavior of ImGui after Shutdown() is not tested/guaranteed at the moment. This function is merely here to free heap allocations. +void ImGui::Shutdown() +{ + ImGuiState& g = *GImGui; + if (!g.Initialized) + return; + + SaveSettings(); + + for (int i = 0; i < g.Windows.Size; i++) + { + g.Windows[i]->~ImGuiWindow(); + ImGui::MemFree(g.Windows[i]); + } + g.Windows.clear(); + g.WindowsSortBuffer.clear(); + g.CurrentWindowStack.clear(); + g.FocusedWindow = NULL; + g.HoveredWindow = NULL; + g.HoveredRootWindow = NULL; + for (int i = 0; i < g.Settings.Size; i++) + ImGui::MemFree(g.Settings[i].Name); + g.Settings.clear(); + g.ColorModifiers.clear(); + g.StyleModifiers.clear(); + g.FontStack.clear(); + g.OpenedPopupStack.clear(); + g.CurrentPopupStack.clear(); + for (int i = 0; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) + g.RenderDrawLists[i].clear(); + g.OverlayDrawList.ClearFreeMemory(); + g.ColorEditModeStorage.Clear(); + if (g.PrivateClipboard) + { + ImGui::MemFree(g.PrivateClipboard); + g.PrivateClipboard = NULL; + } + g.InputTextState.Text.clear(); + g.InputTextState.InitialText.clear(); + g.InputTextState.TempTextBuffer.clear(); + + if (g.LogFile && g.LogFile != stdout) + { + fclose(g.LogFile); + g.LogFile = NULL; + } + if (g.LogClipboard) + { + g.LogClipboard->~ImGuiTextBuffer(); + ImGui::MemFree(g.LogClipboard); + } + + if (g.IO.Fonts) // Testing for NULL to allow user to NULLify in case of running Shutdown() on multiple contexts. Bit hacky. + g.IO.Fonts->Clear(); + + g.Initialized = false; +} + +static ImGuiIniData* FindWindowSettings(const char* name) +{ + ImGuiState& g = *GImGui; + ImGuiID id = ImHash(name, 0); + for (int i = 0; i != g.Settings.Size; i++) + { + ImGuiIniData* ini = &g.Settings[i]; + if (ini->ID == id) + return ini; + } + return NULL; +} + +static ImGuiIniData* AddWindowSettings(const char* name) +{ + GImGui->Settings.resize(GImGui->Settings.Size + 1); + ImGuiIniData* ini = &GImGui->Settings.back(); + ini->Name = ImStrdup(name); + ini->ID = ImHash(name, 0); + ini->Collapsed = false; + ini->Pos = ImVec2(FLT_MAX,FLT_MAX); + ini->Size = ImVec2(0,0); + return ini; +} + +// Zero-tolerance, poor-man .ini parsing +// FIXME: Write something less rubbish +static void LoadSettings() +{ + ImGuiState& g = *GImGui; + const char* filename = g.IO.IniFilename; + if (!filename) + return; + + char* file_data; + int file_size; + if (!ImLoadFileToMemory(filename, "rb", (void**)&file_data, &file_size, 1)) + return; + + ImGuiIniData* settings = NULL; + const char* buf_end = file_data + file_size; + for (const char* line_start = file_data; line_start < buf_end; ) + { + const char* line_end = line_start; + while (line_end < buf_end && *line_end != '\n' && *line_end != '\r') + line_end++; + + if (line_start[0] == '[' && line_end > line_start && line_end[-1] == ']') + { + char name[64]; + ImFormatString(name, IM_ARRAYSIZE(name), "%.*s", line_end-line_start-2, line_start+1); + settings = FindWindowSettings(name); + if (!settings) + settings = AddWindowSettings(name); + } + else if (settings) + { + float x, y; + int i; + if (sscanf(line_start, "Pos=%f,%f", &x, &y) == 2) + settings->Pos = ImVec2(x, y); + else if (sscanf(line_start, "Size=%f,%f", &x, &y) == 2) + settings->Size = ImMax(ImVec2(x, y), g.Style.WindowMinSize); + else if (sscanf(line_start, "Collapsed=%d", &i) == 1) + settings->Collapsed = (i != 0); + } + + line_start = line_end+1; + } + + ImGui::MemFree(file_data); +} + +static void SaveSettings() +{ + ImGuiState& g = *GImGui; + const char* filename = g.IO.IniFilename; + if (!filename) + return; + + // Gather data from windows that were active during this session + for (int i = 0; i != g.Windows.Size; i++) + { + ImGuiWindow* window = g.Windows[i]; + if (window->Flags & ImGuiWindowFlags_NoSavedSettings) + continue; + ImGuiIniData* settings = FindWindowSettings(window->Name); + settings->Pos = window->Pos; + settings->Size = window->SizeFull; + settings->Collapsed = window->Collapsed; + } + + // Write .ini file + // If a window wasn't opened in this session we preserve its settings + FILE* f = fopen(filename, "wt"); + if (!f) + return; + for (int i = 0; i != g.Settings.Size; i++) + { + const ImGuiIniData* settings = &g.Settings[i]; + if (settings->Pos.x == FLT_MAX) + continue; + const char* name = settings->Name; + if (const char* p = strstr(name, "###")) // Skip to the "###" marker if any. We don't skip past to match the behavior of GetID() + name = p; + fprintf(f, "[%s]\n", name); + fprintf(f, "Pos=%d,%d\n", (int)settings->Pos.x, (int)settings->Pos.y); + fprintf(f, "Size=%d,%d\n", (int)settings->Size.x, (int)settings->Size.y); + fprintf(f, "Collapsed=%d\n", settings->Collapsed); + fprintf(f, "\n"); + } + + fclose(f); +} + +static void MarkSettingsDirty() +{ + ImGuiState& g = *GImGui; + if (g.SettingsDirtyTimer <= 0.0f) + g.SettingsDirtyTimer = g.IO.IniSavingRate; +} + +// FIXME: Add a more explicit sort order in the window structure. +static int ChildWindowComparer(const void* lhs, const void* rhs) +{ + const ImGuiWindow* a = *(const ImGuiWindow**)lhs; + const ImGuiWindow* b = *(const ImGuiWindow**)rhs; + if (int d = (a->Flags & ImGuiWindowFlags_Popup) - (b->Flags & ImGuiWindowFlags_Popup)) + return d; + if (int d = (a->Flags & ImGuiWindowFlags_Tooltip) - (b->Flags & ImGuiWindowFlags_Tooltip)) + return d; + if (int d = (a->Flags & ImGuiWindowFlags_ComboBox) - (b->Flags & ImGuiWindowFlags_ComboBox)) + return d; + return 0; +} + +static void AddWindowToSortedBuffer(ImVector& out_sorted_windows, ImGuiWindow* window) +{ + out_sorted_windows.push_back(window); + if (window->Active) + { + int count = window->DC.ChildWindows.Size; + if (count > 1) + qsort(window->DC.ChildWindows.begin(), (size_t)count, sizeof(ImGuiWindow*), ChildWindowComparer); + for (int i = 0; i < count; i++) + { + ImGuiWindow* child = window->DC.ChildWindows[i]; + if (child->Active) + AddWindowToSortedBuffer(out_sorted_windows, child); + } + } +} + +static void AddDrawListToRenderList(ImVector& out_render_list, ImDrawList* draw_list) +{ + if (!draw_list->CmdBuffer.empty() && !draw_list->VtxBuffer.empty()) + { + if (draw_list->CmdBuffer.back().ElemCount == 0) + draw_list->CmdBuffer.pop_back(); + out_render_list.push_back(draw_list); + GImGui->IO.MetricsRenderVertices += draw_list->VtxBuffer.Size; + GImGui->IO.MetricsRenderIndices += draw_list->IdxBuffer.Size; + } +} + +static void AddWindowToRenderList(ImVector& out_render_list, ImGuiWindow* window) +{ + AddDrawListToRenderList(out_render_list, window->DrawList); + for (int i = 0; i < window->DC.ChildWindows.Size; i++) + { + ImGuiWindow* child = window->DC.ChildWindows[i]; + if (!child->Active) // clipped children may have been marked not active + continue; + if ((child->Flags & ImGuiWindowFlags_Popup) && child->HiddenFrames > 0) + continue; + AddWindowToRenderList(out_render_list, child); + } +} + +static void PushClipRect(const ImRect& clip_rect, bool clipped) +{ + ImGuiWindow* window = ImGui::GetCurrentWindow(); + + ImRect cr = clip_rect; + if (clipped) + { + // Clip our argument with the current clip rect + cr.Clip(window->ClipRect); + } + cr.Max.x = ImMax(cr.Min.x, cr.Max.x); + cr.Max.y = ImMax(cr.Min.y, cr.Max.y); + + IM_ASSERT(cr.Min.x <= cr.Max.x && cr.Min.y <= cr.Max.y); + window->ClipRect = cr; + window->DrawList->PushClipRect(ImVec4(cr.Min.x, cr.Min.y, cr.Max.x, cr.Max.y)); +} + +static void PopClipRect() +{ + ImGuiWindow* window = ImGui::GetCurrentWindow(); + window->DrawList->PopClipRect(); + window->ClipRect = window->DrawList->_ClipRectStack.back(); +} + +void ImGui::Render() +{ + ImGuiState& g = *GImGui; + IM_ASSERT(g.Initialized); // Forgot to call ImGui::NewFrame() + + const bool first_render_of_the_frame = (g.FrameCountRendered != g.FrameCount); + g.FrameCountRendered = g.FrameCount; + + if (first_render_of_the_frame) + { + // Hide implicit "Debug" window if it hasn't been used + IM_ASSERT(g.CurrentWindowStack.Size == 1); // Mismatched Begin/End + if (g.CurrentWindow && !g.CurrentWindow->Accessed) + g.CurrentWindow->Active = false; + ImGui::End(); + + // Click to focus window and start moving (after we're done with all our widgets) + if (!g.ActiveId) + g.MovedWindow = NULL; + if (g.ActiveId == 0 && g.HoveredId == 0 && g.IO.MouseClicked[0]) + { + if (!(g.FocusedWindow && !g.FocusedWindow->WasActive && g.FocusedWindow->Active)) // Unless we just made a popup appear + { + if (g.HoveredRootWindow != NULL) + { + g.MovedWindow = g.HoveredWindow; + SetActiveID(g.HoveredRootWindow->MoveID, g.HoveredRootWindow); + } + else if (g.FocusedWindow != NULL && GetFrontMostModalRootWindow() == NULL) + { + // Clicking on void disable focus + FocusWindow(NULL); + } + } + } + + // Sort the window list so that all child windows are after their parent + // We cannot do that on FocusWindow() because childs may not exist yet + g.WindowsSortBuffer.resize(0); + g.WindowsSortBuffer.reserve(g.Windows.Size); + for (int i = 0; i != g.Windows.Size; i++) + { + ImGuiWindow* window = g.Windows[i]; + if (window->Flags & ImGuiWindowFlags_ChildWindow) // if a child is active its parent will add it + if (window->Active) + continue; + AddWindowToSortedBuffer(g.WindowsSortBuffer, window); + } + IM_ASSERT(g.Windows.Size == g.WindowsSortBuffer.Size); // we done something wrong + g.Windows.swap(g.WindowsSortBuffer); + + // Clear Input data for next frame + g.IO.MouseWheel = 0.0f; + memset(g.IO.InputCharacters, 0, sizeof(g.IO.InputCharacters)); + } + + // Skip render altogether if alpha is 0.0 + // Note that vertex buffers have been created and are wasted, so it is best practice that you don't create windows in the first place, or respond to Begin() returning false. + if (g.Style.Alpha > 0.0f) + { + // Render tooltip + if (g.Tooltip[0]) + { + ImGui::BeginTooltip(); + ImGui::TextUnformatted(g.Tooltip); + ImGui::EndTooltip(); + } + + // Gather windows to render + g.IO.MetricsRenderVertices = g.IO.MetricsRenderIndices = g.IO.MetricsActiveWindows = 0; + for (int i = 0; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) + g.RenderDrawLists[i].resize(0); + for (int i = 0; i != g.Windows.Size; i++) + { + ImGuiWindow* window = g.Windows[i]; + if (window->Active && window->HiddenFrames <= 0 && (window->Flags & (ImGuiWindowFlags_ChildWindow)) == 0) + { + // FIXME: Generalize this with a proper layering system so e.g. user can draw in specific layers, below text, .. + g.IO.MetricsActiveWindows++; + if (window->Flags & ImGuiWindowFlags_Popup) + AddWindowToRenderList(g.RenderDrawLists[1], window); + else if (window->Flags & ImGuiWindowFlags_Tooltip) + AddWindowToRenderList(g.RenderDrawLists[2], window); + else + AddWindowToRenderList(g.RenderDrawLists[0], window); + } + } + + // Flatten layers + int n = g.RenderDrawLists[0].Size; + int flattened_size = n; + for (int i = 1; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) + flattened_size += g.RenderDrawLists[i].Size; + g.RenderDrawLists[0].resize(flattened_size); + for (int i = 1; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) + { + ImVector& layer = g.RenderDrawLists[i]; + if (!layer.empty()) + { + memcpy(&g.RenderDrawLists[0][n], &layer[0], layer.Size * sizeof(ImDrawList*)); + n += layer.Size; + } + } + + if (g.IO.MouseDrawCursor) + { + const ImGuiMouseCursorData& cursor_data = g.MouseCursorData[g.MouseCursor]; + const ImVec2 pos = g.IO.MousePos - cursor_data.HotOffset; + const ImVec2 size = cursor_data.Size; + const ImTextureID tex_id = g.IO.Fonts->TexID; + g.OverlayDrawList.PushTextureID(tex_id); + g.OverlayDrawList.AddImage(tex_id, pos+ImVec2(1,0), pos+ImVec2(1,0) + size, cursor_data.TexUvMin[1], cursor_data.TexUvMax[1], 0x30000000); // Shadow + g.OverlayDrawList.AddImage(tex_id, pos+ImVec2(2,0), pos+ImVec2(2,0) + size, cursor_data.TexUvMin[1], cursor_data.TexUvMax[1], 0x30000000); // Shadow + g.OverlayDrawList.AddImage(tex_id, pos, pos + size, cursor_data.TexUvMin[1], cursor_data.TexUvMax[1], 0xFF000000); // Black border + g.OverlayDrawList.AddImage(tex_id, pos, pos + size, cursor_data.TexUvMin[0], cursor_data.TexUvMax[0], 0xFFFFFFFF); // White fill + g.OverlayDrawList.PopTextureID(); + } + if (!g.OverlayDrawList.VtxBuffer.empty()) + AddDrawListToRenderList(g.RenderDrawLists[0], &g.OverlayDrawList); + + // Render + if (!g.RenderDrawLists[0].empty()) + { + ImDrawData data; + data.CmdLists = &g.RenderDrawLists[0][0]; + data.CmdListsCount = g.RenderDrawLists[0].Size; + data.TotalVtxCount = g.IO.MetricsRenderVertices; + data.TotalIdxCount = g.IO.MetricsRenderIndices; + g.IO.RenderDrawListsFn(&data); + } + } +} + +// Find the optional ## from which we stop displaying text. +static const char* FindTextDisplayEnd(const char* text, const char* text_end) +{ + const char* text_display_end = text; + if (!text_end) + text_end = (const char*)-1; + + ImGuiState& g = *GImGui; + if (g.DisableHideTextAfterDoubleHash > 0) + { + while (text_display_end < text_end && *text_display_end != '\0') + text_display_end++; + } + else + { + while (text_display_end < text_end && *text_display_end != '\0' && (text_display_end[0] != '#' || text_display_end[1] != '#')) + text_display_end++; + } + return text_display_end; +} + +// Pass text data straight to log (without being displayed) +void ImGui::LogText(const char* fmt, ...) +{ + ImGuiState& g = *GImGui; + if (!g.LogEnabled) + return; + + va_list args; + va_start(args, fmt); + if (g.LogFile) + { + vfprintf(g.LogFile, fmt, args); + } + else + { + g.LogClipboard->appendv(fmt, args); + } + va_end(args); +} + +// Internal version that takes a position to decide on newline placement and pad items according to their depth. +// We split text into individual lines to add current tree level padding +static void LogRenderedText(const ImVec2& ref_pos, const char* text, const char* text_end) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = ImGui::GetCurrentWindow(); + + if (!text_end) + text_end = FindTextDisplayEnd(text, text_end); + + const bool log_new_line = ref_pos.y > window->DC.LogLinePosY+1; + window->DC.LogLinePosY = ref_pos.y; + + const char* text_remaining = text; + if (g.LogStartDepth > window->DC.TreeDepth) // Re-adjust padding if we have popped out of our starting depth + g.LogStartDepth = window->DC.TreeDepth; + const int tree_depth = (window->DC.TreeDepth - g.LogStartDepth); + for (;;) + { + // Split the string. Each new line (after a '\n') is followed by spacing corresponding to the current depth of our log entry. + const char* line_end = text_remaining; + while (line_end < text_end) + if (*line_end == '\n') + break; + else + line_end++; + if (line_end >= text_end) + line_end = NULL; + + const bool is_first_line = (text == text_remaining); + bool is_last_line = false; + if (line_end == NULL) + { + is_last_line = true; + line_end = text_end; + } + if (line_end != NULL && !(is_last_line && (line_end - text_remaining)==0)) + { + const int char_count = (int)(line_end - text_remaining); + if (log_new_line || !is_first_line) + ImGui::LogText(IM_NEWLINE "%*s%.*s", tree_depth*4, "", char_count, text_remaining); + else + ImGui::LogText(" %.*s", char_count, text_remaining); + } + + if (is_last_line) + break; + text_remaining = line_end + 1; + } +} + +// Internal ImGui functions to render text +// RenderText***() functions calls ImDrawList::AddText() calls ImBitmapFont::RenderText() +void ImGui::RenderText(ImVec2 pos, const char* text, const char* text_end, bool hide_text_after_hash) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + // Hide anything after a '##' string + const char* text_display_end; + if (hide_text_after_hash) + { + text_display_end = FindTextDisplayEnd(text, text_end); + } + else + { + if (!text_end) + text_end = text + strlen(text); // FIXME-OPT + text_display_end = text_end; + } + + const int text_len = (int)(text_display_end - text); + if (text_len > 0) + { + // Render + window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_display_end); + + // Log as text + if (g.LogEnabled) + LogRenderedText(pos, text, text_display_end); + } +} + +void ImGui::RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + if (!text_end) + text_end = text + strlen(text); // FIXME-OPT + + const int text_len = (int)(text_end - text); + if (text_len > 0) + { + window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_end, wrap_width); + if (g.LogEnabled) + LogRenderedText(pos, text, text_end); + } +} + +void ImGui::RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, ImGuiAlign align, const ImVec2* clip_min, const ImVec2* clip_max) +{ + // Hide anything after a '##' string + const char* text_display_end = FindTextDisplayEnd(text, text_end); + const int text_len = (int)(text_display_end - text); + if (text_len == 0) + return; + + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + // Perform CPU side clipping for single clipped element to avoid using scissor state + ImVec2 pos = pos_min; + const ImVec2 text_size = text_size_if_known ? *text_size_if_known : ImGui::CalcTextSize(text, text_display_end, false, 0.0f); + + if (!clip_max) clip_max = &pos_max; + bool need_clipping = (pos.x + text_size.x >= clip_max->x) || (pos.y + text_size.y >= clip_max->y); + if (!clip_min) clip_min = &pos_min; else need_clipping |= (pos.x < clip_min->x) || (pos.y < clip_min->y); + + // Align + if (align & ImGuiAlign_Center) pos.x = ImMax(pos.x, (pos.x + pos_max.x - text_size.x) * 0.5f); + else if (align & ImGuiAlign_Right) pos.x = ImMax(pos.x, pos_max.x - text_size.x); + if (align & ImGuiAlign_VCenter) pos.y = ImMax(pos.y, (pos.y + pos_max.y - text_size.y) * 0.5f); + + // Render + if (need_clipping) + { + ImVec4 fine_clip_rect(clip_min->x, clip_min->y, clip_max->x, clip_max->y); + window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_display_end, 0.0f, &fine_clip_rect); + } + else + { + window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_display_end, 0.0f, NULL); + } + if (g.LogEnabled) + LogRenderedText(pos, text, text_display_end); +} + +// Render a rectangle shaped with optional rounding and borders +void ImGui::RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border, float rounding) +{ + ImGuiWindow* window = GetCurrentWindow(); + + window->DrawList->AddRectFilled(p_min, p_max, fill_col, rounding); + if (border && (window->Flags & ImGuiWindowFlags_ShowBorders)) + { + window->DrawList->AddRect(p_min+ImVec2(1,1), p_max, window->Color(ImGuiCol_BorderShadow), rounding); + window->DrawList->AddRect(p_min, p_max-ImVec2(1,1), window->Color(ImGuiCol_Border), rounding); + } +} + +// Render a triangle to denote expanded/collapsed state +void ImGui::RenderCollapseTriangle(ImVec2 p_min, bool opened, float scale, bool shadow) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + const float h = g.FontSize * 1.00f; + const float r = h * 0.40f * scale; + ImVec2 center = p_min + ImVec2(h*0.50f, h*0.50f*scale); + + ImVec2 a, b, c; + if (opened) + { + center.y -= r*0.25f; + a = center + ImVec2(0,1)*r; + b = center + ImVec2(-0.866f,-0.5f)*r; + c = center + ImVec2(0.866f,-0.5f)*r; + } + else + { + a = center + ImVec2(1,0)*r; + b = center + ImVec2(-0.500f,0.866f)*r; + c = center + ImVec2(-0.500f,-0.866f)*r; + } + + if (shadow && (window->Flags & ImGuiWindowFlags_ShowBorders) != 0) + window->DrawList->AddTriangleFilled(a+ImVec2(2,2), b+ImVec2(2,2), c+ImVec2(2,2), window->Color(ImGuiCol_BorderShadow)); + window->DrawList->AddTriangleFilled(a, b, c, window->Color(ImGuiCol_Text)); +} + +void ImGui::RenderCheckMark(ImVec2 pos, ImU32 col) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + ImVec2 a, b, c; + float start_x = (float)(int)(g.FontSize * 0.307f + 0.5f); + float rem_third = (float)(int)((g.FontSize - start_x) / 3.0f); + a.x = pos.x + 0.5f + start_x; + b.x = a.x + rem_third; + c.x = a.x + rem_third * 3.0f; + b.y = pos.y - 1.0f + (float)(int)(g.Font->Ascent * (g.FontSize / g.Font->FontSize) + 0.5f) + (float)(int)(g.Font->DisplayOffset.y); + a.y = b.y - rem_third; + c.y = b.y - rem_third * 2.0f; + + window->DrawList->PathLineTo(a); + window->DrawList->PathLineTo(b); + window->DrawList->PathLineTo(c); + window->DrawList->PathStroke(col, false); +} + +// Calculate text size. Text can be multi-line. Optionally ignore text after a ## marker. +// CalcTextSize("") should return ImVec2(0.0f, GImGui->FontSize) +ImVec2 ImGui::CalcTextSize(const char* text, const char* text_end, bool hide_text_after_double_hash, float wrap_width) +{ + ImGuiState& g = *GImGui; + + const char* text_display_end; + if (hide_text_after_double_hash) + text_display_end = FindTextDisplayEnd(text, text_end); // Hide anything after a '##' string + else + text_display_end = text_end; + + ImFont* font = g.Font; + const float font_size = g.FontSize; + ImVec2 text_size = font->CalcTextSizeA(font_size, FLT_MAX, wrap_width, text, text_display_end, NULL); + + // Cancel out character spacing for the last character of a line (it is baked into glyph->XAdvance field) + const float font_scale = font_size / font->FontSize; + const float character_spacing_x = 1.0f * font_scale; + if (text_size.x > 0.0f) + text_size.x -= character_spacing_x; + + return text_size; +} + +// Helper to calculate coarse clipping of large list of evenly sized items. +// NB: Prefer using the ImGuiListClipper higher-level helper if you can! +// If you are displaying thousands of items and you have a random access to the list, you can perform clipping yourself to save on CPU. +// { +// float item_height = ImGui::GetTextLineHeightWithSpacing(); +// int display_start, display_end; +// ImGui::CalcListClipping(count, item_height, &display_start, &display_end); // calculate how many to clip/display +// ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (display_start) * item_height); // advance cursor +// for (int i = display_start; i < display_end; i++) // display only visible items +// // TODO: display visible item +// ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (count - display_end) * item_height); // advance cursor +// } +void ImGui::CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + if (g.LogEnabled) + { + // If logging is active, do not perform any clipping + *out_items_display_start = 0; + *out_items_display_end = items_count; + return; + } + + const ImVec2 pos = window->DC.CursorPos; + int start = (int)((window->ClipRect.Min.y - pos.y) / items_height); + int end = (int)((window->ClipRect.Max.y - pos.y) / items_height); + start = ImClamp(start, 0, items_count); + end = ImClamp(end + 1, start, items_count); + *out_items_display_start = start; + *out_items_display_end = end; +} + +// Find window given position, search front-to-back +static ImGuiWindow* FindHoveredWindow(ImVec2 pos, bool excluding_childs) +{ + ImGuiState& g = *GImGui; + for (int i = g.Windows.Size-1; i >= 0; i--) + { + ImGuiWindow* window = g.Windows[i]; + if (!window->Active) + continue; + if (window->Flags & ImGuiWindowFlags_NoInputs) + continue; + if (excluding_childs && (window->Flags & ImGuiWindowFlags_ChildWindow) != 0) + continue; + + // Using the clipped AABB so a child window will typically be clipped by its parent. + ImRect bb(window->ClippedWindowRect.Min - g.Style.TouchExtraPadding, window->ClippedWindowRect.Max + g.Style.TouchExtraPadding); + if (bb.Contains(pos)) + return window; + } + return NULL; +} + +// Test if mouse cursor is hovering given rectangle +// NB- Rectangle is clipped by our current clip setting +// NB- Expand the rectangle to be generous on imprecise inputs systems (g.Style.TouchExtraPadding) +bool ImGui::IsMouseHoveringRect(const ImVec2& rect_min, const ImVec2& rect_max) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + // Clip + ImRect rect_clipped(rect_min, rect_max); + rect_clipped.Clip(window->ClipRect); + + // Expand for touch input + const ImRect rect_for_touch(rect_clipped.Min - g.Style.TouchExtraPadding, rect_clipped.Max + g.Style.TouchExtraPadding); + return rect_for_touch.Contains(g.IO.MousePos); +} + +bool ImGui::IsMouseHoveringWindow() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + return g.HoveredWindow == window; +} + +bool ImGui::IsMouseHoveringAnyWindow() +{ + ImGuiState& g = *GImGui; + return g.HoveredWindow != NULL; +} + +bool ImGui::IsPosHoveringAnyWindow(const ImVec2& pos) +{ + return FindHoveredWindow(pos, false) != NULL; +} + +static bool IsKeyPressedMap(ImGuiKey key, bool repeat) +{ + const int key_index = GImGui->IO.KeyMap[key]; + return ImGui::IsKeyPressed(key_index, repeat); +} + +int ImGui::GetKeyIndex(ImGuiKey key) +{ + IM_ASSERT(key >= 0 && key < ImGuiKey_COUNT); + return GImGui->IO.KeyMap[key]; +} + +bool ImGui::IsKeyDown(int key_index) +{ + if (key_index < 0) return false; + IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(GImGui->IO.KeysDown)); + return GImGui->IO.KeysDown[key_index]; +} + +bool ImGui::IsKeyPressed(int key_index, bool repeat) +{ + ImGuiState& g = *GImGui; + if (key_index < 0) return false; + IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(g.IO.KeysDown)); + const float t = g.IO.KeysDownDuration[key_index]; + if (t == 0.0f) + return true; + + if (repeat && t > g.IO.KeyRepeatDelay) + { + float delay = g.IO.KeyRepeatDelay, rate = g.IO.KeyRepeatRate; + if ((fmodf(t - delay, rate) > rate*0.5f) != (fmodf(t - delay - g.IO.DeltaTime, rate) > rate*0.5f)) + return true; + } + return false; +} + +bool ImGui::IsKeyReleased(int key_index) +{ + ImGuiState& g = *GImGui; + if (key_index < 0) return false; + IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(g.IO.KeysDown)); + if (g.IO.KeysDownDurationPrev[key_index] >= 0.0f && !g.IO.KeysDown[key_index]) + return true; + return false; +} + +bool ImGui::IsMouseDown(int button) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + return g.IO.MouseDown[button]; +} + +bool ImGui::IsMouseClicked(int button, bool repeat) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + const float t = g.IO.MouseDownDuration[button]; + if (t == 0.0f) + return true; + + if (repeat && t > g.IO.KeyRepeatDelay) + { + float delay = g.IO.KeyRepeatDelay, rate = g.IO.KeyRepeatRate; + if ((fmodf(t - delay, rate) > rate*0.5f) != (fmodf(t - delay - g.IO.DeltaTime, rate) > rate*0.5f)) + return true; + } + + return false; +} + +bool ImGui::IsMouseReleased(int button) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + return g.IO.MouseReleased[button]; +} + +bool ImGui::IsMouseDoubleClicked(int button) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + return g.IO.MouseDoubleClicked[button]; +} + +bool ImGui::IsMouseDragging(int button, float lock_threshold) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + if (!g.IO.MouseDown[button]) + return false; + if (lock_threshold < 0.0f) + lock_threshold = g.IO.MouseDragThreshold; + return g.IO.MouseDragMaxDistanceSqr[button] >= lock_threshold * lock_threshold; +} + +ImVec2 ImGui::GetMousePos() +{ + return GImGui->IO.MousePos; +} + +ImVec2 ImGui::GetMouseDragDelta(int button, float lock_threshold) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + if (lock_threshold < 0.0f) + lock_threshold = g.IO.MouseDragThreshold; + if (g.IO.MouseDown[button]) + if (g.IO.MouseDragMaxDistanceSqr[button] >= lock_threshold * lock_threshold) + return g.IO.MousePos - g.IO.MouseClickedPos[button]; // Assume we can only get active with left-mouse button (at the moment). + return ImVec2(0.0f, 0.0f); +} + +void ImGui::ResetMouseDragDelta(int button) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + // NB: We don't need to reset g.IO.MouseDragMaxDistanceSqr + g.IO.MouseClickedPos[button] = g.IO.MousePos; +} + +ImGuiMouseCursor ImGui::GetMouseCursor() +{ + return GImGui->MouseCursor; +} + +void ImGui::SetMouseCursor(ImGuiMouseCursor cursor_type) +{ + GImGui->MouseCursor = cursor_type; +} + +void ImGui::CaptureKeyboardFromApp() +{ + GImGui->CaptureKeyboardNextFrame = true; +} + +void ImGui::CaptureMouseFromApp() +{ + GImGui->CaptureMouseNextFrame = true; +} + +bool ImGui::IsItemHovered() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.LastItemHoveredAndUsable; +} + +bool ImGui::IsItemHoveredRect() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.LastItemHoveredRect; +} + +bool ImGui::IsItemActive() +{ + ImGuiState& g = *GImGui; + if (g.ActiveId) + { + ImGuiWindow* window = GetCurrentWindow(); + return g.ActiveId == window->DC.LastItemID; + } + return false; +} + +bool ImGui::IsAnyItemHovered() +{ + return GImGui->HoveredId != 0 || GImGui->HoveredIdPreviousFrame != 0; +} + +bool ImGui::IsAnyItemActive() +{ + return GImGui->ActiveId != 0; +} + +bool ImGui::IsItemVisible() +{ + ImGuiWindow* window = GetCurrentWindow(); + ImRect r(window->ClipRect); + return r.Overlaps(window->DC.LastItemRect); +} + +ImVec2 ImGui::GetItemRectMin() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.LastItemRect.Min; +} + +ImVec2 ImGui::GetItemRectMax() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.LastItemRect.Max; +} + +ImVec2 ImGui::GetItemRectSize() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.LastItemRect.GetSize(); +} + +ImVec2 ImGui::CalcItemRectClosestPoint(const ImVec2& pos, bool on_edge, float outward) +{ + ImGuiWindow* window = GetCurrentWindow(); + ImRect rect = window->DC.LastItemRect; + rect.Expand(outward); + return rect.GetClosestPoint(pos, on_edge); +} + +// Tooltip is stored and turned into a BeginTooltip()/EndTooltip() sequence at the end of the frame. Each call override previous value. +void ImGui::SetTooltipV(const char* fmt, va_list args) +{ + ImGuiState& g = *GImGui; + ImFormatStringV(g.Tooltip, IM_ARRAYSIZE(g.Tooltip), fmt, args); +} + +void ImGui::SetTooltip(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + SetTooltipV(fmt, args); + va_end(args); +} + +static ImRect GetVisibleRect() +{ + ImGuiState& g = *GImGui; + if (g.IO.DisplayVisibleMin.x != g.IO.DisplayVisibleMax.x && g.IO.DisplayVisibleMin.y != g.IO.DisplayVisibleMax.y) + return ImRect(g.IO.DisplayVisibleMin, g.IO.DisplayVisibleMax); + return ImRect(0.0f, 0.0f, g.IO.DisplaySize.x, g.IO.DisplaySize.y); +} + +void ImGui::BeginTooltip() +{ + ImGuiState& g = *GImGui; + ImGuiWindowFlags flags = ImGuiWindowFlags_Tooltip|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_AlwaysAutoResize; + ImGui::Begin("##Tooltip", NULL, ImVec2(0,0), g.Style.Colors[ImGuiCol_TooltipBg].w, flags); +} + +void ImGui::EndTooltip() +{ + IM_ASSERT(GetCurrentWindow()->Flags & ImGuiWindowFlags_Tooltip); + ImGui::End(); +} + +static bool IsPopupOpen(ImGuiID id) +{ + ImGuiState& g = *GImGui; + const bool opened = g.OpenedPopupStack.Size > g.CurrentPopupStack.Size && g.OpenedPopupStack[g.CurrentPopupStack.Size].PopupID == id; + return opened; +} + +// One open popup per level of the popup hierarchy (NB: when assigning we reset the Window member of ImGuiPopupRef to NULL) +void ImGui::OpenPopup(const char* str_id) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + ImGuiID id = window->GetID(str_id); + int current_stack_size = g.CurrentPopupStack.Size; + ImGuiPopupRef popup_ref = ImGuiPopupRef(id, window, window->GetID("##menus")); // Tagged as new ref because constructor sets Window to NULL (we are passing the ParentWindow info here) + if (g.OpenedPopupStack.Size < current_stack_size + 1) + g.OpenedPopupStack.push_back(popup_ref); + else if (g.OpenedPopupStack[current_stack_size].PopupID != id) + { + g.OpenedPopupStack.resize(current_stack_size+1); + g.OpenedPopupStack[current_stack_size] = popup_ref; + } +} + +static void CloseInactivePopups() +{ + ImGuiState& g = *GImGui; + if (g.OpenedPopupStack.empty()) + return; + + // When popups are stacked, clicking on a lower level popups puts focus back to it and close popups above it. + // Don't close our own child popup windows + int n = 0; + if (g.FocusedWindow) + { + for (n = 0; n < g.OpenedPopupStack.Size; n++) + { + ImGuiPopupRef& popup = g.OpenedPopupStack[n]; + if (!popup.Window) + continue; + IM_ASSERT((popup.Window->Flags & ImGuiWindowFlags_Popup) != 0); + if (popup.Window->Flags & ImGuiWindowFlags_ChildWindow) + continue; + + bool has_focus = false; + for (int m = n; m < g.OpenedPopupStack.Size && !has_focus; m++) + has_focus = (g.OpenedPopupStack[m].Window && g.OpenedPopupStack[m].Window->RootWindow == g.FocusedWindow->RootWindow); + if (!has_focus) + break; + } + } + if (n < g.OpenedPopupStack.Size) // This test is not required but it allows to set a useful breakpoint on the line below + g.OpenedPopupStack.resize(n); +} + +static ImGuiWindow* GetFrontMostModalRootWindow() +{ + ImGuiState& g = *GImGui; + if (!g.OpenedPopupStack.empty()) + if (ImGuiWindow* front_most_popup = g.OpenedPopupStack.back().Window) + if (front_most_popup->Flags & ImGuiWindowFlags_Modal) + return front_most_popup; + return NULL; +} + +static void ClosePopupToLevel(int remaining) +{ + ImGuiState& g = *GImGui; + if (remaining > 0) + ImGui::FocusWindow(g.OpenedPopupStack[remaining-1].Window); + else + ImGui::FocusWindow(g.OpenedPopupStack[0].ParentWindow); + g.OpenedPopupStack.resize(remaining); +} + +static void ClosePopup(ImGuiID id) +{ + if (!IsPopupOpen(id)) + return; + ImGuiState& g = *GImGui; + ClosePopupToLevel(g.OpenedPopupStack.Size - 1); +} + +// Close the popup we have begin-ed into. +void ImGui::CloseCurrentPopup() +{ + ImGuiState& g = *GImGui; + int popup_idx = g.CurrentPopupStack.Size - 1; + if (popup_idx < 0 || popup_idx > g.OpenedPopupStack.Size || g.CurrentPopupStack[popup_idx].PopupID != g.OpenedPopupStack[popup_idx].PopupID) + return; + while (popup_idx > 0 && g.OpenedPopupStack[popup_idx].Window && (g.OpenedPopupStack[popup_idx].Window->Flags & ImGuiWindowFlags_ChildMenu)) + popup_idx--; + ClosePopupToLevel(popup_idx); +} + +static void ClearSetNextWindowData() +{ + ImGuiState& g = *GImGui; + g.SetNextWindowPosCond = g.SetNextWindowSizeCond = g.SetNextWindowCollapsedCond = g.SetNextWindowFocus = 0; +} + +static bool BeginPopupEx(const char* str_id, ImGuiWindowFlags extra_flags) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + const ImGuiID id = window->GetID(str_id); + if (!IsPopupOpen(id)) + { + ClearSetNextWindowData(); // We behave like Begin() and need to consume those values + return false; + } + + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); + ImGuiWindowFlags flags = extra_flags|ImGuiWindowFlags_Popup|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_AlwaysAutoResize; + + char name[32]; + if (flags & ImGuiWindowFlags_ChildMenu) + ImFormatString(name, 20, "##menu_%d", g.CurrentPopupStack.Size); // Recycle windows based on depth + else + ImFormatString(name, 20, "##popup_%08x", id); // Not recycling, so we can close/open during the same frame + float alpha = 1.0f; + + bool opened = ImGui::Begin(name, NULL, ImVec2(0.0f, 0.0f), alpha, flags); + if (!(window->Flags & ImGuiWindowFlags_ShowBorders)) + g.CurrentWindow->Flags &= ~ImGuiWindowFlags_ShowBorders; + if (!opened) // opened can be 'false' when the popup is completely clipped (e.g. zero size display) + ImGui::EndPopup(); + + return opened; +} + +bool ImGui::BeginPopup(const char* str_id) +{ + return BeginPopupEx(str_id, ImGuiWindowFlags_ShowBorders); +} + +bool ImGui::BeginPopupModal(const char* name, bool* p_opened, ImGuiWindowFlags extra_flags) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + const ImGuiID id = window->GetID(name); + if (!IsPopupOpen(id)) + { + ClearSetNextWindowData(); // We behave like Begin() and need to consume those values + return false; + } + + ImGuiWindowFlags flags = extra_flags|ImGuiWindowFlags_Popup|ImGuiWindowFlags_Modal|ImGuiWindowFlags_NoCollapse|ImGuiWindowFlags_NoSavedSettings; + bool opened = ImGui::Begin(name, p_opened, ImVec2(0.0f, 0.0f), -1.0f, flags); + if (!opened || (p_opened && !*p_opened)) // Opened can be 'false' when the popup is completely clipped (e.g. zero size display) + { + ImGui::EndPopup(); + if (opened) + ClosePopup(id); + return false; + } + + return opened; +} + +void ImGui::EndPopup() +{ + ImGuiWindow* window = GetCurrentWindow(); + IM_ASSERT(window->Flags & ImGuiWindowFlags_Popup); + IM_ASSERT(GImGui->CurrentPopupStack.Size > 0); + ImGui::End(); + if (!(window->Flags & ImGuiWindowFlags_Modal)) + ImGui::PopStyleVar(); +} + +bool ImGui::BeginPopupContextItem(const char* str_id, int mouse_button) +{ + if (ImGui::IsItemHovered() && ImGui::IsMouseClicked(mouse_button)) + ImGui::OpenPopup(str_id); + return ImGui::BeginPopup(str_id); +} + +bool ImGui::BeginPopupContextWindow(bool also_over_items, const char* str_id, int mouse_button) +{ + if (!str_id) str_id = "window_context_menu"; + if (ImGui::IsMouseHoveringWindow() && ImGui::IsMouseClicked(mouse_button)) + if (also_over_items || !ImGui::IsAnyItemHovered()) + ImGui::OpenPopup(str_id); + return ImGui::BeginPopup(str_id); +} + +bool ImGui::BeginPopupContextVoid(const char* str_id, int mouse_button) +{ + if (!str_id) str_id = "void_context_menu"; + if (!ImGui::IsMouseHoveringAnyWindow() && ImGui::IsMouseClicked(mouse_button)) + ImGui::OpenPopup(str_id); + return ImGui::BeginPopup(str_id); +} + +bool ImGui::BeginChild(const char* str_id, const ImVec2& size_arg, bool border, ImGuiWindowFlags extra_flags) +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGuiWindowFlags flags = ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_ChildWindow; + + const ImVec2 content_avail = ImGui::GetContentRegionAvail(); + ImVec2 size = size_arg; + if (size.x <= 0.0f) + { + if (size.x == 0.0f) + flags |= ImGuiWindowFlags_ChildWindowAutoFitX; + size.x = ImMax(content_avail.x, 4.0f) - fabsf(size.x); // Arbitrary minimum zero-ish child size of 4.0f (0.0f causing too much issues) + } + if (size.y <= 0.0f) + { + if (size.y == 0.0f) + flags |= ImGuiWindowFlags_ChildWindowAutoFitY; + size.y = ImMax(content_avail.y, 4.0f) - fabsf(size.y); + } + if (border) + flags |= ImGuiWindowFlags_ShowBorders; + flags |= extra_flags; + + char title[256]; + ImFormatString(title, IM_ARRAYSIZE(title), "%s.%s", window->Name, str_id); + + const float alpha = 1.0f; + bool ret = ImGui::Begin(title, NULL, size, alpha, flags); + + if (!(window->Flags & ImGuiWindowFlags_ShowBorders)) + GetCurrentWindow()->Flags &= ~ImGuiWindowFlags_ShowBorders; + + return ret; +} + +bool ImGui::BeginChild(ImGuiID id, const ImVec2& size, bool border, ImGuiWindowFlags extra_flags) +{ + char str_id[32]; + ImFormatString(str_id, IM_ARRAYSIZE(str_id), "child_%08x", id); + bool ret = ImGui::BeginChild(str_id, size, border, extra_flags); + return ret; +} + +void ImGui::EndChild() +{ + ImGuiWindow* window = GetCurrentWindow(); + + IM_ASSERT(window->Flags & ImGuiWindowFlags_ChildWindow); + if ((window->Flags & ImGuiWindowFlags_ComboBox) || window->BeginCount > 1) + { + ImGui::End(); + } + else + { + // When using auto-filling child window, we don't provide full width/height to ItemSize so that it doesn't feed back into automatic size-fitting. + ImGuiState& g = *GImGui; + ImVec2 sz = ImGui::GetWindowSize(); + if (window->Flags & ImGuiWindowFlags_ChildWindowAutoFitX) // Arbitrary minimum zeroish child size of 4.0f + sz.x = ImMax(4.0f, sz.x - g.Style.WindowPadding.x); + if (window->Flags & ImGuiWindowFlags_ChildWindowAutoFitY) + sz.y = ImMax(4.0f, sz.y - g.Style.WindowPadding.y); + + ImGui::End(); + + window = GetCurrentWindow(); + ImRect bb(window->DC.CursorPos, window->DC.CursorPos + sz); + ItemSize(sz); + ItemAdd(bb, NULL); + } +} + +// Helper to create a child window / scrolling region that looks like a normal widget frame. +bool ImGui::BeginChildFrame(ImGuiID id, const ImVec2& size) +{ + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + ImGui::PushStyleColor(ImGuiCol_ChildWindowBg, style.Colors[ImGuiCol_FrameBg]); + ImGui::PushStyleVar(ImGuiStyleVar_ChildWindowRounding, style.FrameRounding); + return ImGui::BeginChild(id, size); +} + +void ImGui::EndChildFrame() +{ + ImGui::EndChild(); + ImGui::PopStyleVar(); + ImGui::PopStyleColor(); +} + +// Save and compare stack sizes on Begin()/End() to detect usage errors +static void CheckStacksSize(ImGuiWindow* window, bool write) +{ + // NOT checking: DC.ItemWidth, DC.AllowKeyboardFocus, DC.ButtonRepeat, DC.TextWrapPos (per window) to allow user to conveniently push once and not pop (they are cleared on Begin) + ImGuiState& g = *GImGui; + int* p_backup = &window->DC.StackSizesBackup[0]; + { int current = window->IDStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopID() + { int current = window->DC.GroupStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot EndGroup() + { int current = g.CurrentPopupStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot EndPopup()/EndMenu() + { int current = g.ColorModifiers.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopStyleColor() + { int current = g.StyleModifiers.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopStyleVar() + { int current = g.FontStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopFont() + IM_ASSERT(p_backup == window->DC.StackSizesBackup + IM_ARRAYSIZE(window->DC.StackSizesBackup)); +} + +static ImVec2 FindBestPopupWindowPos(const ImVec2& base_pos, const ImVec2& size, ImGuiWindowFlags flags, int* last_dir, const ImRect& r_inner) +{ + const ImGuiStyle& style = GImGui->Style; + + // Clamp into visible area while not overlapping the cursor + ImRect r_outer(GetVisibleRect()); + r_outer.Reduce(style.DisplaySafeAreaPadding); + ImVec2 base_pos_clamped = ImClamp(base_pos, r_outer.Min, r_outer.Max - size); + + for (int n = (*last_dir != -1) ? -1 : 0; n < 4; n++) // Right, down, up, left. Favor last used direction. + { + const int dir = (n == -1) ? *last_dir : n; + ImRect rect(dir == 0 ? r_inner.Max.x : r_outer.Min.x, dir == 1 ? r_inner.Max.y : r_outer.Min.y, dir == 3 ? r_inner.Min.x : r_outer.Max.x, dir == 2 ? r_inner.Min.y : r_outer.Max.y); + if (rect.GetWidth() < size.x || rect.GetHeight() < size.y) + continue; + *last_dir = dir; + return ImVec2(dir == 0 ? r_inner.Max.x : dir == 3 ? r_inner.Min.x - size.x : base_pos_clamped.x, dir == 1 ? r_inner.Max.y : dir == 2 ? r_inner.Min.y - size.y : base_pos_clamped.y); + } + + // Fallback + *last_dir = -1; + if (flags & ImGuiWindowFlags_Tooltip) // For tooltip we prefer avoiding the cursor at all cost even if it means that part of the tooltip won't be visible. + return base_pos + ImVec2(2,2); + + // Otherwise try to keep within display + ImVec2 pos = base_pos; + pos.x = ImMax(ImMin(pos.x + size.x, r_outer.Max.x) - size.x, r_outer.Min.x); + pos.y = ImMax(ImMin(pos.y + size.y, r_outer.Max.y) - size.y, r_outer.Min.y); + return pos; +} + +static ImGuiWindow* FindWindowByName(const char* name) +{ + // FIXME-OPT: Store sorted hashes -> pointers. + ImGuiState& g = *GImGui; + ImGuiID id = ImHash(name, 0); + for (int i = 0; i < g.Windows.Size; i++) + if (g.Windows[i]->ID == id) + return g.Windows[i]; + return NULL; +} + +static ImGuiWindow* CreateNewWindow(const char* name, ImVec2 size, ImGuiWindowFlags flags) +{ + ImGuiState& g = *GImGui; + + // Create window the first time + ImGuiWindow* window = (ImGuiWindow*)ImGui::MemAlloc(sizeof(ImGuiWindow)); + new(window) ImGuiWindow(name); + window->Flags = flags; + + if (flags & ImGuiWindowFlags_NoSavedSettings) + { + // User can disable loading and saving of settings. Tooltip and child windows also don't store settings. + window->Size = window->SizeFull = size; + } + else + { + // Retrieve settings from .ini file + // Use SetWindowPos() or SetNextWindowPos() with the appropriate condition flag to change the initial position of a window. + window->PosFloat = ImVec2(60, 60); + window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); + + ImGuiIniData* settings = FindWindowSettings(name); + if (!settings) + { + settings = AddWindowSettings(name); + } + else + { + window->SetWindowPosAllowFlags &= ~ImGuiSetCond_FirstUseEver; + window->SetWindowSizeAllowFlags &= ~ImGuiSetCond_FirstUseEver; + window->SetWindowCollapsedAllowFlags &= ~ImGuiSetCond_FirstUseEver; + } + + if (settings->Pos.x != FLT_MAX) + { + window->PosFloat = settings->Pos; + window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); + window->Collapsed = settings->Collapsed; + } + + if (ImLengthSqr(settings->Size) > 0.00001f && !(flags & ImGuiWindowFlags_NoResize)) + size = settings->Size; + window->Size = window->SizeFull = size; + } + + if ((flags & ImGuiWindowFlags_AlwaysAutoResize) != 0) + { + window->AutoFitFramesX = window->AutoFitFramesY = 2; + window->AutoFitOnlyGrows = false; + } + else + { + if (window->Size.x <= 0.0f) + window->AutoFitFramesX = 2; + if (window->Size.y <= 0.0f) + window->AutoFitFramesY = 2; + window->AutoFitOnlyGrows = (window->AutoFitFramesX > 0) || (window->AutoFitFramesY > 0); + } + + g.Windows.push_back(window); + return window; +} + +// Push a new ImGui window to add widgets to. +// - A default window called "Debug" is automatically stacked at the beginning of every frame so you can use widgets without explicitly calling a Begin/End pair. +// - Begin/End can be called multiple times during the frame with the same window name to append content. +// - 'size_on_first_use' for a regular window denote the initial size for first-time creation (no saved data) and isn't that useful. Use SetNextWindowSize() prior to calling Begin() for more flexible window manipulation. +// - The window name is used as a unique identifier to preserve window information across frames (and save rudimentary information to the .ini file). +// You can use the "##" or "###" markers to use the same label with different id, or same id with different label. See documentation at the top of this file. +// - Return false when window is collapsed, so you can early out in your code. You always need to call ImGui::End() even if false is returned. +// - Passing 'bool* p_opened' displays a Close button on the upper-right corner of the window, the pointed value will be set to false when the button is pressed. +// - Passing non-zero 'size' is roughly equivalent to calling SetNextWindowSize(size, ImGuiSetCond_FirstUseEver) prior to calling Begin(). +bool ImGui::Begin(const char* name, bool* p_opened, ImGuiWindowFlags flags) +{ + return ImGui::Begin(name, p_opened, ImVec2(0.f, 0.f), -1.0f, flags); +} + +bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_use, float bg_alpha, ImGuiWindowFlags flags) +{ + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + IM_ASSERT(g.Initialized); // Forgot to call ImGui::NewFrame() + IM_ASSERT(name != NULL); // Must pass a name + + if (flags & ImGuiWindowFlags_NoInputs) + flags |= ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize; + + // Find or create + bool window_is_new = false; + ImGuiWindow* window = FindWindowByName(name); + if (!window) + { + window = CreateNewWindow(name, size_on_first_use, flags); + window_is_new = true; + } + window->Flags = (ImGuiWindowFlags)flags; + + // Add to stack + ImGuiWindow* parent_window = !g.CurrentWindowStack.empty() ? g.CurrentWindowStack.back() : NULL; + g.CurrentWindowStack.push_back(window); + SetCurrentWindow(window); + CheckStacksSize(window, true); + IM_ASSERT(parent_window != NULL || !(flags & ImGuiWindowFlags_ChildWindow)); + + const int current_frame = ImGui::GetFrameCount(); + bool window_was_visible = (window->LastFrameDrawn == current_frame - 1); // Not using !WasActive because the implicit "Debug" window would always toggle off->on + if (flags & ImGuiWindowFlags_Popup) + { + ImGuiPopupRef& popup_ref = g.OpenedPopupStack[g.CurrentPopupStack.Size]; + window_was_visible &= (window->PopupID == popup_ref.PopupID); + window_was_visible &= (window == popup_ref.Window); + popup_ref.Window = window; + g.CurrentPopupStack.push_back(popup_ref); + window->PopupID = popup_ref.PopupID; + } + + // Process SetNextWindow***() calls + bool window_pos_set_by_api = false, window_size_set_by_api = false; + if (g.SetNextWindowPosCond) + { + const ImVec2 backup_cursor_pos = window->DC.CursorPos; // FIXME: not sure of the exact reason of this anymore :( need to look into that. + if (!window_was_visible) window->SetWindowPosAllowFlags |= ImGuiSetCond_Appearing; + window_pos_set_by_api = (window->SetWindowPosAllowFlags & g.SetNextWindowPosCond) != 0; + if (window_pos_set_by_api && ImLengthSqr(g.SetNextWindowPosVal - ImVec2(-FLT_MAX,-FLT_MAX)) < 0.001f) + { + window->SetWindowPosCenterWanted = true; // May be processed on the next frame if this is our first frame and we are measuring size + window->SetWindowPosAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); + } + else + { + ImGui::SetWindowPos(g.SetNextWindowPosVal, g.SetNextWindowPosCond); + } + window->DC.CursorPos = backup_cursor_pos; + g.SetNextWindowPosCond = 0; + } + if (g.SetNextWindowSizeCond) + { + if (!window_was_visible) window->SetWindowSizeAllowFlags |= ImGuiSetCond_Appearing; + window_size_set_by_api = (window->SetWindowSizeAllowFlags & g.SetNextWindowSizeCond) != 0; + ImGui::SetWindowSize(g.SetNextWindowSizeVal, g.SetNextWindowSizeCond); + g.SetNextWindowSizeCond = 0; + } + if (g.SetNextWindowCollapsedCond) + { + if (!window_was_visible) window->SetWindowCollapsedAllowFlags |= ImGuiSetCond_Appearing; + ImGui::SetWindowCollapsed(g.SetNextWindowCollapsedVal, g.SetNextWindowCollapsedCond); + g.SetNextWindowCollapsedCond = 0; + } + if (g.SetNextWindowFocus) + { + ImGui::SetWindowFocus(); + g.SetNextWindowFocus = false; + } + + // Update known root window (if we are a child window, otherwise window == window->RootWindow) + int root_idx, root_non_popup_idx; + for (root_idx = g.CurrentWindowStack.Size - 1; root_idx > 0; root_idx--) + if (!(g.CurrentWindowStack[root_idx]->Flags & ImGuiWindowFlags_ChildWindow)) + break; + for (root_non_popup_idx = root_idx; root_non_popup_idx > 0; root_non_popup_idx--) + if (!(g.CurrentWindowStack[root_non_popup_idx]->Flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup))) + break; + window->RootWindow = g.CurrentWindowStack[root_idx]; + window->RootNonPopupWindow = g.CurrentWindowStack[root_non_popup_idx]; // This is merely for displaying the TitleBgActive color. + + // Default alpha + if (bg_alpha < 0.0f) + bg_alpha = style.WindowFillAlphaDefault; + + // When reusing window again multiple times a frame, just append content (don't need to setup again) + const bool first_begin_of_the_frame = (window->LastFrameDrawn != current_frame); + if (first_begin_of_the_frame) + { + window->Active = true; + window->BeginCount = 0; + window->DrawList->Clear(); + window->ClipRect = ImVec4(-FLT_MAX,-FLT_MAX,+FLT_MAX,+FLT_MAX); + window->LastFrameDrawn = current_frame; + window->IDStack.resize(1); + + // Setup texture, outer clipping rectangle + window->DrawList->PushTextureID(g.Font->ContainerAtlas->TexID); + if ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & (ImGuiWindowFlags_ComboBox|ImGuiWindowFlags_Popup))) + PushClipRect(parent_window->ClipRect); + else + PushClipRect(GetVisibleRect()); + + // New windows appears in front + if (!window_was_visible) + { + window->AutoPosLastDirection = -1; + + if (!(flags & (ImGuiWindowFlags_ChildWindow|ImGuiWindowFlags_Tooltip)) || (flags & ImGuiWindowFlags_Popup)) + FocusWindow(window); + + // Popup first latch mouse position, will position itself when it appears next frame + if ((flags & ImGuiWindowFlags_Popup) != 0 && !window_pos_set_by_api) + window->PosFloat = g.IO.MousePos; + } + + // Collapse window by double-clicking on title bar + // At this point we don't have a clipping rectangle setup yet, so we can use the title bar area for hit detection and drawing + if (!(flags & ImGuiWindowFlags_NoTitleBar) && !(flags & ImGuiWindowFlags_NoCollapse)) + { + ImRect title_bar_rect = window->TitleBarRect(); + if (g.HoveredWindow == window && IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max) && g.IO.MouseDoubleClicked[0]) + { + window->Collapsed = !window->Collapsed; + if (!(flags & ImGuiWindowFlags_NoSavedSettings)) + MarkSettingsDirty(); + FocusWindow(window); + } + } + else + { + window->Collapsed = false; + } + + const bool window_appearing_after_being_hidden = (window->HiddenFrames == 1); + if (window->HiddenFrames > 0) + window->HiddenFrames--; + + // SIZE + + // Save contents size from last frame for auto-fitting + window->SizeContents = window_is_new ? ImVec2(0.0f, 0.0f) : window->DC.CursorMaxPos - window->Pos; + window->SizeContents.y += window->ScrollY; + + // Hide popup/tooltip window when first appearing while we measure size (because we recycle them) + if ((flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_Tooltip)) != 0 && !window_was_visible) + { + window->HiddenFrames = 1; + if (flags & ImGuiWindowFlags_AlwaysAutoResize) + { + if (!window_size_set_by_api) + window->Size = window->SizeFull = ImVec2(0.f, 0.f); + window->SizeContents = ImVec2(0.f, 0.f); + } + } + + // Lock window padding so that altering the ShowBorders flag for childs doesn't have side-effects. + window->WindowPadding = ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & (ImGuiWindowFlags_ShowBorders | ImGuiWindowFlags_ComboBox | ImGuiWindowFlags_Popup))) ? ImVec2(0,0) : style.WindowPadding; + + // Calculate auto-fit size + ImVec2 size_auto_fit; + if ((flags & ImGuiWindowFlags_Tooltip) != 0) + { + // Tooltip always resize. We keep the spacing symmetric on both axises for aesthetic purpose. + size_auto_fit = window->SizeContents + window->WindowPadding - ImVec2(0.0f, style.ItemSpacing.y); + } + else + { + size_auto_fit = ImClamp(window->SizeContents + window->WindowPadding, style.WindowMinSize, ImMax(style.WindowMinSize, g.IO.DisplaySize - window->WindowPadding)); + if (size_auto_fit.y < window->SizeContents.y && !(flags & ImGuiWindowFlags_NoScrollbar)) + size_auto_fit.x += style.ScrollbarWidth; + size_auto_fit.y = ImMax(size_auto_fit.y - style.ItemSpacing.y, 0.0f); + } + + // Handle automatic resize + if (window->Collapsed) + { + // We still process initial auto-fit on collapsed windows to get a window width, + // But otherwise we don't honor ImGuiWindowFlags_AlwaysAutoResize when collapsed. + if (window->AutoFitFramesX > 0) + window->SizeFull.x = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.x, size_auto_fit.x) : size_auto_fit.x; + if (window->AutoFitFramesY > 0) + window->SizeFull.y = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.y, size_auto_fit.y) : size_auto_fit.y; + window->Size = window->TitleBarRect().GetSize(); + } + else + { + if ((flags & ImGuiWindowFlags_AlwaysAutoResize) && !window_size_set_by_api) + { + window->SizeFull = size_auto_fit; + } + else if ((window->AutoFitFramesX > 0 || window->AutoFitFramesY > 0) && !window_size_set_by_api) + { + // Auto-fit only grows during the first few frames + if (window->AutoFitFramesX > 0) + window->SizeFull.x = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.x, size_auto_fit.x) : size_auto_fit.x; + if (window->AutoFitFramesY > 0) + window->SizeFull.y = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.y, size_auto_fit.y) : size_auto_fit.y; + if (!(flags & ImGuiWindowFlags_NoSavedSettings)) + MarkSettingsDirty(); + } + window->Size = window->SizeFull; + } + + // Minimum window size + if (!(flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_AlwaysAutoResize))) + { + window->SizeFull = ImMax(window->SizeFull, style.WindowMinSize); + if (!window->Collapsed) + window->Size = window->SizeFull; + } + + // POSITION + + // Position child window + if (flags & ImGuiWindowFlags_ChildWindow) + parent_window->DC.ChildWindows.push_back(window); + if ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Popup)) + { + window->Pos = window->PosFloat = parent_window->DC.CursorPos; + window->Size = window->SizeFull = size_on_first_use; // NB: argument name 'size_on_first_use' misleading here, it's really just 'size' as provided by user. + } + + bool window_pos_center = false; + window_pos_center |= (window->SetWindowPosCenterWanted && window->HiddenFrames == 0); + window_pos_center |= ((flags & ImGuiWindowFlags_Modal) && !window_pos_set_by_api && window_appearing_after_being_hidden); + if (window_pos_center) + { + // Center (any sort of window) + ImRect fullscreen_rect(GetVisibleRect()); + SetWindowPos(ImMax(style.DisplaySafeAreaPadding, fullscreen_rect.GetCenter() - window->SizeFull * 0.5f)); + } + else if (flags & ImGuiWindowFlags_ChildMenu) + { + IM_ASSERT(window_pos_set_by_api); + ImRect rect_to_avoid; + if (parent_window->DC.MenuBarAppending) + rect_to_avoid = ImRect(-FLT_MAX, parent_window->Pos.y + parent_window->TitleBarHeight(), FLT_MAX, parent_window->Pos.y + parent_window->TitleBarHeight() + parent_window->MenuBarHeight()); + else + rect_to_avoid = ImRect(parent_window->Pos.x + style.ItemSpacing.x, -FLT_MAX, parent_window->Pos.x + parent_window->Size.x - style.ItemSpacing.x - parent_window->ScrollbarWidth(), FLT_MAX); // We want some overlap to convey the relative depth of each popup (here hard-coded to 4) + window->PosFloat = FindBestPopupWindowPos(window->PosFloat, window->Size, flags, &window->AutoPosLastDirection, rect_to_avoid); + } + else if ((flags & ImGuiWindowFlags_Popup) != 0 && !window_pos_set_by_api && window_appearing_after_being_hidden) + { + ImRect rect_to_avoid(window->PosFloat.x - 1, window->PosFloat.y - 1, window->PosFloat.x + 1, window->PosFloat.y + 1); + window->PosFloat = FindBestPopupWindowPos(window->PosFloat, window->Size, flags, &window->AutoPosLastDirection, rect_to_avoid); + } + + // Position tooltip (always follows mouse) + if ((flags & ImGuiWindowFlags_Tooltip) != 0 && !window_pos_set_by_api) + { + ImRect rect_to_avoid(g.IO.MousePos.x - 16, g.IO.MousePos.y - 8, g.IO.MousePos.x + 24, g.IO.MousePos.y + 24); // FIXME: Completely hard-coded. Perhaps center on cursor hit-point instead? + window->PosFloat = FindBestPopupWindowPos(g.IO.MousePos, window->Size, flags, &window->AutoPosLastDirection, rect_to_avoid); + } + + // User moving window (at the beginning of the frame to avoid input lag or sheering). Only valid for root windows. + KeepAliveID(window->MoveID); + if (g.ActiveId == window->MoveID) + { + if (g.IO.MouseDown[0]) + { + if (!(flags & ImGuiWindowFlags_NoMove)) + { + window->PosFloat += g.IO.MouseDelta; + if (!(flags & ImGuiWindowFlags_NoSavedSettings)) + MarkSettingsDirty(); + } + IM_ASSERT(g.MovedWindow != NULL); + FocusWindow(g.MovedWindow); + } + else + { + SetActiveID(0); + g.MovedWindow = NULL; // Not strictly necessary but doing it for sanity. + } + } + + // Clamp position so it stays visible + if (!(flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Tooltip)) + { + if (!window_pos_set_by_api && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0 && g.IO.DisplaySize.x > 0.0f && g.IO.DisplaySize.y > 0.0f) // Ignore zero-sized display explicitly to avoid losing positions if a window manager reports zero-sized window when initializing or minimizing. + { + ImVec2 padding = ImMax(style.DisplayWindowPadding, style.DisplaySafeAreaPadding); + window->PosFloat = ImMax(window->PosFloat + window->Size, padding) - window->Size; + window->PosFloat = ImMin(window->PosFloat, g.IO.DisplaySize - padding); + } + } + window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); + + // Default item width. Make it proportional to window size if window manually resizes + if (window->Size.x > 0.0f && !(flags & ImGuiWindowFlags_Tooltip) && !(flags & ImGuiWindowFlags_AlwaysAutoResize)) + window->ItemWidthDefault = (float)(int)(window->Size.x * 0.65f); + else + window->ItemWidthDefault = (float)(int)(g.FontSize * 16.0f); + + // Prepare for focus requests + window->FocusIdxAllRequestCurrent = (window->FocusIdxAllRequestNext == IM_INT_MAX || window->FocusIdxAllCounter == -1) ? IM_INT_MAX : (window->FocusIdxAllRequestNext + (window->FocusIdxAllCounter+1)) % (window->FocusIdxAllCounter+1); + window->FocusIdxTabRequestCurrent = (window->FocusIdxTabRequestNext == IM_INT_MAX || window->FocusIdxTabCounter == -1) ? IM_INT_MAX : (window->FocusIdxTabRequestNext + (window->FocusIdxTabCounter+1)) % (window->FocusIdxTabCounter+1); + window->FocusIdxAllCounter = window->FocusIdxTabCounter = -1; + window->FocusIdxAllRequestNext = window->FocusIdxTabRequestNext = IM_INT_MAX; + + // Apply scrolling + if (window->ScrollTargetRelY < FLT_MAX) + { + float center_ratio_y = window->ScrollTargetCenterRatioY; + window->ScrollY = window->ScrollTargetRelY - ((1.0f - center_ratio_y) * window->TitleBarHeight()) - (center_ratio_y * window->SizeFull.y); + window->ScrollTargetRelY = FLT_MAX; + } + window->ScrollY = ImMax(window->ScrollY, 0.0f); + if (!window->Collapsed && !window->SkipItems) + window->ScrollY = ImMin(window->ScrollY, ImMax(0.0f, window->SizeContents.y - window->SizeFull.y)); + + // Modal window darkens what is behind them + if ((flags & ImGuiWindowFlags_Modal) != 0 && window == GetFrontMostModalRootWindow()) + { + ImRect fullscreen_rect = GetVisibleRect(); + window->DrawList->AddRectFilled(fullscreen_rect.Min, fullscreen_rect.Max, window->Color(ImGuiCol_ModalWindowDarkening, g.ModalWindowDarkeningRatio)); + } + + // Draw window + handle manual resize + ImRect title_bar_rect = window->TitleBarRect(); + const float window_rounding = (flags & ImGuiWindowFlags_ChildWindow) ? style.ChildWindowRounding : style.WindowRounding; + if (window->Collapsed) + { + // Draw title bar only + window->DrawList->AddRectFilled(title_bar_rect.GetTL(), title_bar_rect.GetBR(), window->Color(ImGuiCol_TitleBgCollapsed), window_rounding); + if (flags & ImGuiWindowFlags_ShowBorders) + { + window->DrawList->AddRect(title_bar_rect.GetTL()+ImVec2(1,1), title_bar_rect.GetBR()+ImVec2(1,1), window->Color(ImGuiCol_BorderShadow), window_rounding); + window->DrawList->AddRect(title_bar_rect.GetTL(), title_bar_rect.GetBR(), window->Color(ImGuiCol_Border), window_rounding); + } + } + else + { + ImU32 resize_col = 0; + const float resize_corner_size = ImMax(g.FontSize * 1.35f, window_rounding + 1.0f + g.FontSize * 0.2f); + if (!(flags & ImGuiWindowFlags_AlwaysAutoResize) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0 && !(flags & ImGuiWindowFlags_NoResize)) + { + // Manual resize + const ImVec2 br = window->Rect().GetBR(); + const ImRect resize_rect(br - ImVec2(resize_corner_size * 0.75f, resize_corner_size * 0.75f), br); + const ImGuiID resize_id = window->GetID("#RESIZE"); + bool hovered, held; + ButtonBehavior(resize_rect, resize_id, &hovered, &held, true, ImGuiButtonFlags_FlattenChilds); + resize_col = window->Color(held ? ImGuiCol_ResizeGripActive : hovered ? ImGuiCol_ResizeGripHovered : ImGuiCol_ResizeGrip); + + if (hovered || held) + g.MouseCursor = ImGuiMouseCursor_ResizeNWSE; + + if (g.HoveredWindow == window && held && g.IO.MouseDoubleClicked[0]) + { + // Manual auto-fit when double-clicking + window->SizeFull = size_auto_fit; + if (!(flags & ImGuiWindowFlags_NoSavedSettings)) + MarkSettingsDirty(); + SetActiveID(0); + } + else if (held) + { + window->SizeFull = ImMax(window->SizeFull + g.IO.MouseDelta, style.WindowMinSize); + if (!(flags & ImGuiWindowFlags_NoSavedSettings)) + MarkSettingsDirty(); + } + + window->Size = window->SizeFull; + title_bar_rect = window->TitleBarRect(); + } + + // Scrollbar + window->ScrollbarY = (window->SizeContents.y > window->Size.y + style.ItemSpacing.y) && !(flags & ImGuiWindowFlags_NoScrollbar); + + // Window background + if (bg_alpha > 0.0f) + { + if ((flags & ImGuiWindowFlags_ComboBox) != 0) + window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_ComboBg, bg_alpha), window_rounding); + else if ((flags & ImGuiWindowFlags_Tooltip) != 0) + window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_TooltipBg, bg_alpha), window_rounding); + else if ((flags & ImGuiWindowFlags_Popup) != 0) + window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_WindowBg, bg_alpha), window_rounding); + else if ((flags & ImGuiWindowFlags_ChildWindow) != 0) + window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size-ImVec2(window->ScrollbarWidth(),0.0f), window->Color(ImGuiCol_ChildWindowBg, bg_alpha), window_rounding, window->ScrollbarY ? (1|8) : (0xF)); + else + window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_WindowBg, bg_alpha), window_rounding); + } + + // Title bar + if (!(flags & ImGuiWindowFlags_NoTitleBar)) + window->DrawList->AddRectFilled(title_bar_rect.GetTL(), title_bar_rect.GetBR(), window->Color((g.FocusedWindow && window->RootNonPopupWindow == g.FocusedWindow->RootNonPopupWindow) ? ImGuiCol_TitleBgActive : ImGuiCol_TitleBg), window_rounding, 1|2); + + // Menu bar + if (flags & ImGuiWindowFlags_MenuBar) + { + ImRect menu_bar_rect = window->MenuBarRect(); + window->DrawList->AddRectFilled(menu_bar_rect.GetTL(), menu_bar_rect.GetBR(), window->Color(ImGuiCol_MenuBarBg), (flags & ImGuiWindowFlags_NoTitleBar) ? window_rounding : 0.0f, 1|2); + } + + // Borders + if (flags & ImGuiWindowFlags_ShowBorders) + { + window->DrawList->AddRect(window->Pos+ImVec2(1,1), window->Pos+window->Size+ImVec2(1,1), window->Color(ImGuiCol_BorderShadow), window_rounding); + window->DrawList->AddRect(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_Border), window_rounding); + if (!(flags & ImGuiWindowFlags_NoTitleBar)) + window->DrawList->AddLine(title_bar_rect.GetBL(), title_bar_rect.GetBR(), window->Color(ImGuiCol_Border)); + } + + // Scrollbar + if (window->ScrollbarY) + Scrollbar(window); + + // Render resize grip + // (after the input handling so we don't have a frame of latency) + if (!(flags & ImGuiWindowFlags_NoResize)) + { + const ImVec2 br = window->Rect().GetBR(); + window->DrawList->PathLineTo(br + ImVec2(-resize_corner_size, 0.0f)); + window->DrawList->PathLineTo(br + ImVec2(0.0f, -resize_corner_size)); + window->DrawList->PathArcToFast(ImVec2(br.x - window_rounding, br.y - window_rounding), window_rounding, 0, 3); + window->DrawList->PathFill(resize_col); + } + } + + // Setup drawing context + window->DC.ColumnsStartX = window->WindowPadding.x; + window->DC.ColumnsOffsetX = 0.0f; + window->DC.CursorStartPos = window->Pos + ImVec2(window->DC.ColumnsStartX + window->DC.ColumnsOffsetX, window->TitleBarHeight() + window->MenuBarHeight() + window->WindowPadding.y) - ImVec2(0.0f, window->ScrollY); + window->DC.CursorPos = window->DC.CursorStartPos; + window->DC.CursorPosPrevLine = window->DC.CursorPos; + window->DC.CursorMaxPos = window->DC.CursorStartPos; + window->DC.CurrentLineHeight = window->DC.PrevLineHeight = 0.0f; + window->DC.CurrentLineTextBaseOffset = window->DC.PrevLineTextBaseOffset = 0.0f; + window->DC.MenuBarAppending = false; + window->DC.MenuBarOffsetX = ImMax(window->DC.ColumnsStartX, style.ItemSpacing.x); + window->DC.LogLinePosY = window->DC.CursorPos.y - 9999.0f; + window->DC.ChildWindows.resize(0); + window->DC.LayoutType = ImGuiLayoutType_Vertical; + window->DC.ItemWidth = window->ItemWidthDefault; + window->DC.ItemWidthStack.resize(0); + window->DC.ButtonRepeat = false; + window->DC.ButtonRepeatStack.resize(0); + window->DC.AllowKeyboardFocus = true; + window->DC.AllowKeyboardFocusStack.resize(0); + window->DC.TextWrapPos = -1.0f; // disabled + window->DC.TextWrapPosStack.resize(0); + window->DC.ColorEditMode = ImGuiColorEditMode_UserSelect; + window->DC.ColumnsCurrent = 0; + window->DC.ColumnsCount = 1; + window->DC.ColumnsStartPos = window->DC.CursorPos; + window->DC.ColumnsCellMinY = window->DC.ColumnsCellMaxY = window->DC.ColumnsStartPos.y; + window->DC.TreeDepth = 0; + window->DC.StateStorage = &window->StateStorage; + window->DC.GroupStack.resize(0); + window->MenuColumns.Update(3, style.ItemSpacing.x, !window_was_visible); + + if (window->AutoFitFramesX > 0) + window->AutoFitFramesX--; + if (window->AutoFitFramesY > 0) + window->AutoFitFramesY--; + + // Title bar + if (!(flags & ImGuiWindowFlags_NoTitleBar)) + { + if (p_opened != NULL) + CloseWindowButton(p_opened); + + const ImVec2 text_size = CalcTextSize(name, NULL, true); + if (!(flags & ImGuiWindowFlags_NoCollapse)) + RenderCollapseTriangle(window->Pos + style.FramePadding, !window->Collapsed, 1.0f, true); + + ImVec2 text_min = window->Pos + style.FramePadding; + ImVec2 text_max = window->Pos + ImVec2(window->Size.x - style.FramePadding.x, style.FramePadding.y*2 + text_size.y); + ImVec2 clip_max = ImVec2(window->Pos.x + window->Size.x - (p_opened ? title_bar_rect.GetHeight() - 3 : style.FramePadding.x), text_max.y); // Match the size of CloseWindowButton() + bool pad_left = (flags & ImGuiWindowFlags_NoCollapse) == 0; + bool pad_right = (p_opened != NULL); + if (style.WindowTitleAlign & ImGuiAlign_Center) pad_right = pad_left; + if (pad_left) text_min.x += g.FontSize + style.ItemInnerSpacing.x; + if (pad_right) text_max.x -= g.FontSize + style.ItemInnerSpacing.x; + RenderTextClipped(text_min, text_max, name, NULL, &text_size, style.WindowTitleAlign, NULL, &clip_max); + } + + // Save clipped aabb so we can access it in constant-time in FindHoveredWindow() + window->ClippedWindowRect = window->Rect(); + window->ClippedWindowRect.Clip(window->ClipRect); + + // Pressing CTRL+C while holding on a window copy its content to the clipboard + // This works but 1. doesn't handle multiple Begin/End pairs, 2. recursing into another Begin/End pair - so we need to work that out and add better logging scope. + // Maybe we can support CTRL+C on every element? + /* + if (g.ActiveId == move_id) + if (g.IO.KeyCtrl && IsKeyPressedMap(ImGuiKey_C)) + ImGui::LogToClipboard(); + */ + } + window->BeginCount++; + + // Inner clipping rectangle + // We set this up after processing the resize grip so that our clip rectangle doesn't lag by a frame + // Note that if our window is collapsed we will end up with a null clipping rectangle which is the correct behavior. + const ImRect title_bar_rect = window->TitleBarRect(); + ImVec4 clip_rect(title_bar_rect.Min.x+0.5f+window->WindowPadding.x*0.5f, title_bar_rect.Max.y+window->MenuBarHeight()+0.5f, window->Rect().Max.x+0.5f-window->WindowPadding.x*0.5f, window->Rect().Max.y-1.5f); + if (window->ScrollbarY) + clip_rect.z -= style.ScrollbarWidth; + PushClipRect(clip_rect); + + // Clear 'accessed' flag last thing + if (first_begin_of_the_frame) + window->Accessed = false; + + // Child window can be out of sight and have "negative" clip windows. + // Mark them as collapsed so commands are skipped earlier (we can't manually collapse because they have no title bar). + if (flags & ImGuiWindowFlags_ChildWindow) + { + IM_ASSERT((flags & ImGuiWindowFlags_NoTitleBar) != 0); + window->Collapsed = parent_window && parent_window->Collapsed; + + if (!(flags & ImGuiWindowFlags_AlwaysAutoResize) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0) + window->Collapsed |= (window->ClipRect.Min.x >= window->ClipRect.Max.x || window->ClipRect.Min.y >= window->ClipRect.Max.y); + + // We also hide the window from rendering because we've already added its border to the command list. + // (we could perform the check earlier in the function but it is simpler at this point) + if (window->Collapsed) + window->Active = false; + } + if (style.Alpha <= 0.0f) + window->Active = false; + + // Return false if we don't intend to display anything to allow user to perform an early out optimization + window->SkipItems = (window->Collapsed || !window->Active) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0; + return !window->SkipItems; +} + +void ImGui::End() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + + ImGui::Columns(1, "#CloseColumns"); + PopClipRect(); // inner window clip rectangle + + // Stop logging + if (!(window->Flags & ImGuiWindowFlags_ChildWindow)) // FIXME: add more options for scope of logging + ImGui::LogFinish(); + + // Pop + // NB: we don't clear 'window->RootWindow'. The pointer is allowed to live until the next call to Begin(). + g.CurrentWindowStack.pop_back(); + if (window->Flags & ImGuiWindowFlags_Popup) + g.CurrentPopupStack.pop_back(); + CheckStacksSize(window, false); + SetCurrentWindow(g.CurrentWindowStack.empty() ? NULL : g.CurrentWindowStack.back()); +} + +// Vertical scrollbar +// The entire piece of code below is rather confusing because: +// - We handle absolute seeking (when first clicking outside the grab) and relative manipulation (afterward or when clicking inside the grab) +// - We store values as ratio and in a form that allows the window content to change while we are holding on a scrollbar +static void Scrollbar(ImGuiWindow* window) +{ + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID("#SCROLLY"); + + // Render background + ImRect bb(window->Rect().Max.x - style.ScrollbarWidth, window->Pos.y + window->TitleBarHeight()+1, window->Rect().Max.x, window->Rect().Max.y-1); + window->DrawList->AddRectFilled(bb.Min, bb.Max, window->Color(ImGuiCol_ScrollbarBg)); + bb.Expand(-3.0f); + const float scrollbar_height = bb.GetHeight(); + + // The grabable box size generally represent the amount visible (vs the total scrollable amount) + // But we maintain a minimum size in pixel to allow for the user to still aim inside. + const float grab_h_pixels = ImMin(ImMax(scrollbar_height * ImSaturate(window->Size.y / ImMax(window->SizeContents.y, window->Size.y)), style.GrabMinSize), scrollbar_height); + const float grab_h_norm = grab_h_pixels / scrollbar_height; + + // Handle input right away. None of the code of Begin() is relying on scrolling position before calling Scrollbar(). + bool held = false; + bool hovered = false; + const bool previously_held = (g.ActiveId == id); + ImGui::ButtonBehavior(bb, id, &hovered, &held, true); + + const float scroll_max = ImMax(1.0f, window->SizeContents.y - window->Size.y); + float scroll_ratio = ImSaturate(window->ScrollY / scroll_max); + float grab_y_norm = scroll_ratio * (scrollbar_height - grab_h_pixels) / scrollbar_height; + if (held) + { + const float clicked_y_norm = ImSaturate((g.IO.MousePos.y - bb.Min.y) / scrollbar_height); // Click position in scrollbar space (0.0f->1.0f) + g.HoveredId = id; + + bool seek_absolute = false; + if (!previously_held) + { + // On initial click calculate the distance between mouse and the center of the grab + if (clicked_y_norm >= grab_y_norm && clicked_y_norm <= grab_y_norm + grab_h_norm) + { + g.ScrollbarClickDeltaToGrabCenter = clicked_y_norm - grab_y_norm - grab_h_norm*0.5f; + } + else + { + seek_absolute = true; + g.ScrollbarClickDeltaToGrabCenter = 0; + } + } + + // Apply scroll + // It is ok to modify ScrollY here because we are being called in Begin() after the calculation of SizeContents and before setting up our starting position + const float scroll_y_norm = ImSaturate((clicked_y_norm - g.ScrollbarClickDeltaToGrabCenter - grab_h_norm*0.5f) / (1.0f - grab_h_norm)); + window->ScrollY = (float)(int)(0.5f + scroll_y_norm * (window->SizeContents.y - window->Size.y)); + + // Update values for rendering + scroll_ratio = ImSaturate(window->ScrollY / scroll_max); + grab_y_norm = scroll_ratio * (scrollbar_height - grab_h_pixels) / scrollbar_height; + + // Update distance to grab now that we have seeked and saturated + if (seek_absolute) + g.ScrollbarClickDeltaToGrabCenter = clicked_y_norm - grab_y_norm - grab_h_norm*0.5f; + } + + // Render + const ImU32 grab_col = window->Color(held ? ImGuiCol_ScrollbarGrabActive : hovered ? ImGuiCol_ScrollbarGrabHovered : ImGuiCol_ScrollbarGrab); + window->DrawList->AddRectFilled(ImVec2(bb.Min.x, ImLerp(bb.Min.y, bb.Max.y, grab_y_norm)), ImVec2(bb.Max.x, ImLerp(bb.Min.y, bb.Max.y, grab_y_norm) + grab_h_pixels), grab_col, style.ScrollbarRounding); +} + +// Moving window to front of display (which happens to be back of our sorted list) +void ImGui::FocusWindow(ImGuiWindow* window) +{ + ImGuiState& g = *GImGui; + + // Always mark the window we passed as focused. This is used for keyboard interactions such as tabbing. + g.FocusedWindow = window; + + // Passing NULL allow to disable keyboard focus + if (!window) + return; + + // And move its root window to the top of the pile + if (window->RootWindow) + window = window->RootWindow; + + // Steal focus on active widgets + if (window->Flags & ImGuiWindowFlags_Popup) // FIXME: This statement should be unnecessary. Need further testing before removing it.. + if (g.ActiveId != 0 && g.ActiveIdWindow && g.ActiveIdWindow->RootWindow != window) + ImGui::SetActiveID(0); + + if (g.Windows.back() == window) + return; + + for (int i = 0; i < g.Windows.Size; i++) + if (g.Windows[i] == window) + { + g.Windows.erase(g.Windows.begin() + i); + break; + } + g.Windows.push_back(window); +} + +void ImGui::PushItemWidth(float item_width) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ItemWidth = (item_width == 0.0f ? window->ItemWidthDefault : item_width); + window->DC.ItemWidthStack.push_back(window->DC.ItemWidth); +} + +static void PushMultiItemsWidths(int components, float w_full) +{ + ImGuiWindow* window = ImGui::GetCurrentWindow(); + const ImGuiStyle& style = GImGui->Style; + if (w_full <= 0.0f) + w_full = ImGui::CalcItemWidth(); + const float w_item_one = ImMax(1.0f, (float)(int)((w_full - (style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1)) / (float)components)); + const float w_item_last = ImMax(1.0f, (float)(int)(w_full - (w_item_one + style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1))); + window->DC.ItemWidthStack.push_back(w_item_last); + for (int i = 0; i < components-1; i++) + window->DC.ItemWidthStack.push_back(w_item_one); + window->DC.ItemWidth = window->DC.ItemWidthStack.back(); +} + +void ImGui::PopItemWidth() +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ItemWidthStack.pop_back(); + window->DC.ItemWidth = window->DC.ItemWidthStack.empty() ? window->ItemWidthDefault : window->DC.ItemWidthStack.back(); +} + +float ImGui::CalcItemWidth() +{ + ImGuiWindow* window = GetCurrentWindow(); + float w = window->DC.ItemWidth; + if (w < 0.0f) + { + // Align to a right-side limit. We include 1 frame padding in the calculation because this is how the width is always used (we add 2 frame padding to it), but we could move that responsibility to the widget as well. + ImGuiState& g = *GImGui; + float width_to_right_edge = ImGui::GetContentRegionAvail().x; + w = ImMax(1.0f, width_to_right_edge + w - g.Style.FramePadding.x * 2.0f); + } + w = (float)(int)w; + return w; +} + +static void SetCurrentFont(ImFont* font) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(font && font->IsLoaded()); + IM_ASSERT(font->Scale > 0.0f); + g.Font = font; + g.FontBaseSize = g.IO.FontGlobalScale * g.Font->FontSize * g.Font->Scale; + g.FontSize = g.CurrentWindow ? g.CurrentWindow->CalcFontSize() : 0.0f; + g.FontTexUvWhitePixel = g.Font->ContainerAtlas->TexUvWhitePixel; +} + +void ImGui::PushFont(ImFont* font) +{ + ImGuiState& g = *GImGui; + if (!font) + font = g.IO.Fonts->Fonts[0]; + SetCurrentFont(font); + g.FontStack.push_back(font); + g.CurrentWindow->DrawList->PushTextureID(font->ContainerAtlas->TexID); +} + +void ImGui::PopFont() +{ + ImGuiState& g = *GImGui; + g.CurrentWindow->DrawList->PopTextureID(); + g.FontStack.pop_back(); + SetCurrentFont(g.FontStack.empty() ? g.IO.Fonts->Fonts[0] : g.FontStack.back()); +} + +void ImGui::PushAllowKeyboardFocus(bool allow_keyboard_focus) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.AllowKeyboardFocus = allow_keyboard_focus; + window->DC.AllowKeyboardFocusStack.push_back(allow_keyboard_focus); +} + +void ImGui::PopAllowKeyboardFocus() +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.AllowKeyboardFocusStack.pop_back(); + window->DC.AllowKeyboardFocus = window->DC.AllowKeyboardFocusStack.empty() ? true : window->DC.AllowKeyboardFocusStack.back(); +} + +void ImGui::PushButtonRepeat(bool repeat) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ButtonRepeat = repeat; + window->DC.ButtonRepeatStack.push_back(repeat); +} + +void ImGui::PopButtonRepeat() +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ButtonRepeatStack.pop_back(); + window->DC.ButtonRepeat = window->DC.ButtonRepeatStack.empty() ? false : window->DC.ButtonRepeatStack.back(); +} + +void ImGui::PushTextWrapPos(float wrap_pos_x) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.TextWrapPos = wrap_pos_x; + window->DC.TextWrapPosStack.push_back(wrap_pos_x); +} + +void ImGui::PopTextWrapPos() +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.TextWrapPosStack.pop_back(); + window->DC.TextWrapPos = window->DC.TextWrapPosStack.empty() ? -1.0f : window->DC.TextWrapPosStack.back(); +} + +void ImGui::PushStyleColor(ImGuiCol idx, const ImVec4& col) +{ + ImGuiState& g = *GImGui; + ImGuiColMod backup; + backup.Col = idx; + backup.PreviousValue = g.Style.Colors[idx]; + g.ColorModifiers.push_back(backup); + g.Style.Colors[idx] = col; +} + +void ImGui::PopStyleColor(int count) +{ + ImGuiState& g = *GImGui; + while (count > 0) + { + ImGuiColMod& backup = g.ColorModifiers.back(); + g.Style.Colors[backup.Col] = backup.PreviousValue; + g.ColorModifiers.pop_back(); + count--; + } +} + +static float* GetStyleVarFloatAddr(ImGuiStyleVar idx) +{ + ImGuiState& g = *GImGui; + switch (idx) + { + case ImGuiStyleVar_Alpha: return &g.Style.Alpha; + case ImGuiStyleVar_WindowRounding: return &g.Style.WindowRounding; + case ImGuiStyleVar_ChildWindowRounding: return &g.Style.ChildWindowRounding; + case ImGuiStyleVar_FrameRounding: return &g.Style.FrameRounding; + case ImGuiStyleVar_IndentSpacing: return &g.Style.IndentSpacing; + case ImGuiStyleVar_GrabMinSize: return &g.Style.GrabMinSize; + } + return NULL; +} + +static ImVec2* GetStyleVarVec2Addr(ImGuiStyleVar idx) +{ + ImGuiState& g = *GImGui; + switch (idx) + { + case ImGuiStyleVar_WindowPadding: return &g.Style.WindowPadding; + case ImGuiStyleVar_WindowMinSize: return &g.Style.WindowMinSize; + case ImGuiStyleVar_FramePadding: return &g.Style.FramePadding; + case ImGuiStyleVar_ItemSpacing: return &g.Style.ItemSpacing; + case ImGuiStyleVar_ItemInnerSpacing: return &g.Style.ItemInnerSpacing; + } + return NULL; +} + +void ImGui::PushStyleVar(ImGuiStyleVar idx, float val) +{ + ImGuiState& g = *GImGui; + float* pvar = GetStyleVarFloatAddr(idx); + IM_ASSERT(pvar != NULL); // Called function with wrong-type? Variable is not a float. + ImGuiStyleMod backup; + backup.Var = idx; + backup.PreviousValue = ImVec2(*pvar, 0.0f); + g.StyleModifiers.push_back(backup); + *pvar = val; +} + + +void ImGui::PushStyleVar(ImGuiStyleVar idx, const ImVec2& val) +{ + ImGuiState& g = *GImGui; + ImVec2* pvar = GetStyleVarVec2Addr(idx); + IM_ASSERT(pvar != NULL); // Called function with wrong-type? Variable is not a ImVec2. + ImGuiStyleMod backup; + backup.Var = idx; + backup.PreviousValue = *pvar; + g.StyleModifiers.push_back(backup); + *pvar = val; +} + +void ImGui::PopStyleVar(int count) +{ + ImGuiState& g = *GImGui; + while (count > 0) + { + ImGuiStyleMod& backup = g.StyleModifiers.back(); + if (float* pvar_f = GetStyleVarFloatAddr(backup.Var)) + *pvar_f = backup.PreviousValue.x; + else if (ImVec2* pvar_v = GetStyleVarVec2Addr(backup.Var)) + *pvar_v = backup.PreviousValue; + g.StyleModifiers.pop_back(); + count--; + } +} + +const char* ImGui::GetStyleColName(ImGuiCol idx) +{ + // Create switch-case from enum with regexp: ImGuiCol_{.*}, --> case ImGuiCol_\1: return "\1"; + switch (idx) + { + case ImGuiCol_Text: return "Text"; + case ImGuiCol_TextDisabled: return "TextDisabled"; + case ImGuiCol_WindowBg: return "WindowBg"; + case ImGuiCol_ChildWindowBg: return "ChildWindowBg"; + case ImGuiCol_Border: return "Border"; + case ImGuiCol_BorderShadow: return "BorderShadow"; + case ImGuiCol_FrameBg: return "FrameBg"; + case ImGuiCol_FrameBgHovered: return "FrameBgHovered"; + case ImGuiCol_FrameBgActive: return "FrameBgActive"; + case ImGuiCol_TitleBg: return "TitleBg"; + case ImGuiCol_TitleBgCollapsed: return "TitleBgCollapsed"; + case ImGuiCol_TitleBgActive: return "TitleBgActive"; + case ImGuiCol_MenuBarBg: return "MenuBarBg"; + case ImGuiCol_ScrollbarBg: return "ScrollbarBg"; + case ImGuiCol_ScrollbarGrab: return "ScrollbarGrab"; + case ImGuiCol_ScrollbarGrabHovered: return "ScrollbarGrabHovered"; + case ImGuiCol_ScrollbarGrabActive: return "ScrollbarGrabActive"; + case ImGuiCol_ComboBg: return "ComboBg"; + case ImGuiCol_CheckMark: return "CheckMark"; + case ImGuiCol_SliderGrab: return "SliderGrab"; + case ImGuiCol_SliderGrabActive: return "SliderGrabActive"; + case ImGuiCol_Button: return "Button"; + case ImGuiCol_ButtonHovered: return "ButtonHovered"; + case ImGuiCol_ButtonActive: return "ButtonActive"; + case ImGuiCol_Header: return "Header"; + case ImGuiCol_HeaderHovered: return "HeaderHovered"; + case ImGuiCol_HeaderActive: return "HeaderActive"; + case ImGuiCol_Column: return "Column"; + case ImGuiCol_ColumnHovered: return "ColumnHovered"; + case ImGuiCol_ColumnActive: return "ColumnActive"; + case ImGuiCol_ResizeGrip: return "ResizeGrip"; + case ImGuiCol_ResizeGripHovered: return "ResizeGripHovered"; + case ImGuiCol_ResizeGripActive: return "ResizeGripActive"; + case ImGuiCol_CloseButton: return "CloseButton"; + case ImGuiCol_CloseButtonHovered: return "CloseButtonHovered"; + case ImGuiCol_CloseButtonActive: return "CloseButtonActive"; + case ImGuiCol_PlotLines: return "PlotLines"; + case ImGuiCol_PlotLinesHovered: return "PlotLinesHovered"; + case ImGuiCol_PlotHistogram: return "PlotHistogram"; + case ImGuiCol_PlotHistogramHovered: return "PlotHistogramHovered"; + case ImGuiCol_TextSelectedBg: return "TextSelectedBg"; + case ImGuiCol_TooltipBg: return "TooltipBg"; + case ImGuiCol_ModalWindowDarkening: return "ModalWindowDarkening"; + } + IM_ASSERT(0); + return "Unknown"; +} + +bool ImGui::IsWindowHovered() +{ + ImGuiState& g = *GImGui; + return g.HoveredWindow == g.CurrentWindow; +} + +bool ImGui::IsWindowFocused() +{ + ImGuiState& g = *GImGui; + return g.FocusedWindow == g.CurrentWindow; +} + +bool ImGui::IsRootWindowFocused() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* root_window = g.CurrentWindow->RootWindow; + return g.FocusedWindow == root_window; +} + +bool ImGui::IsRootWindowOrAnyChildFocused() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* root_window = g.CurrentWindow->RootWindow; + return g.FocusedWindow && g.FocusedWindow->RootWindow == root_window; +} + +float ImGui::GetWindowWidth() +{ + ImGuiWindow* window = GImGui->CurrentWindow; + return window->Size.x; +} + +ImVec2 ImGui::GetWindowPos() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + return window->Pos; +} + +static void SetWindowScrollY(ImGuiWindow* window, float new_scroll_y) +{ + window->DC.CursorMaxPos.y += window->ScrollY; + window->ScrollY = new_scroll_y; + window->DC.CursorMaxPos.y -= window->ScrollY; +} + +static void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiSetCond cond) +{ + // Test condition (NB: bit 0 is always true) and clear flags for next time + if (cond && (window->SetWindowPosAllowFlags & cond) == 0) + return; + window->SetWindowPosAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); + window->SetWindowPosCenterWanted = false; + + // Set + const ImVec2 old_pos = window->Pos; + window->PosFloat = pos; + window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); + window->DC.CursorPos += (window->Pos - old_pos); // As we happen to move the window while it is being appended to (which is a bad idea - will smear) let's at least offset the cursor + window->DC.CursorMaxPos += (window->Pos - old_pos); // And more importantly we need to adjust this so size calculation doesn't get affected. +} + +void ImGui::SetWindowPos(const ImVec2& pos, ImGuiSetCond cond) +{ + ImGuiWindow* window = GetCurrentWindow(); + SetWindowPos(window, pos, cond); +} + +void ImGui::SetWindowPos(const char* name, const ImVec2& pos, ImGuiSetCond cond) +{ + ImGuiWindow* window = FindWindowByName(name); + if (window) + SetWindowPos(window, pos, cond); +} + +ImVec2 ImGui::GetWindowSize() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->Size; +} + +static void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiSetCond cond) +{ + // Test condition (NB: bit 0 is always true) and clear flags for next time + if (cond && (window->SetWindowSizeAllowFlags & cond) == 0) + return; + window->SetWindowSizeAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); + + // Set + if (size.x > 0.0f) + { + window->AutoFitFramesX = 0; + window->SizeFull.x = size.x; + } + else + { + window->AutoFitFramesX = 2; + window->AutoFitOnlyGrows = false; + } + if (size.y > 0.0f) + { + window->AutoFitFramesY = 0; + window->SizeFull.y = size.y; + } + else + { + window->AutoFitFramesY = 2; + window->AutoFitOnlyGrows = false; + } +} + +void ImGui::SetWindowSize(const ImVec2& size, ImGuiSetCond cond) +{ + ImGuiWindow* window = GetCurrentWindow(); + SetWindowSize(window, size, cond); +} + +void ImGui::SetWindowSize(const char* name, const ImVec2& size, ImGuiSetCond cond) +{ + ImGuiWindow* window = FindWindowByName(name); + if (window) + SetWindowSize(window, size, cond); +} + +static void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiSetCond cond) +{ + // Test condition (NB: bit 0 is always true) and clear flags for next time + if (cond && (window->SetWindowCollapsedAllowFlags & cond) == 0) + return; + window->SetWindowCollapsedAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); + + // Set + window->Collapsed = collapsed; +} + +void ImGui::SetWindowCollapsed(bool collapsed, ImGuiSetCond cond) +{ + ImGuiWindow* window = GetCurrentWindow(); + SetWindowCollapsed(window, collapsed, cond); +} + +bool ImGui::IsWindowCollapsed() +{ + return GImGui->CurrentWindow->Collapsed; +} + +void ImGui::SetWindowCollapsed(const char* name, bool collapsed, ImGuiSetCond cond) +{ + ImGuiWindow* window = FindWindowByName(name); + if (window) + SetWindowCollapsed(window, collapsed, cond); +} + +void ImGui::SetWindowFocus() +{ + ImGuiWindow* window = GetCurrentWindow(); + FocusWindow(window); +} + +void ImGui::SetWindowFocus(const char* name) +{ + if (name) + { + ImGuiWindow* window = FindWindowByName(name); + if (window) + FocusWindow(window); + } + else + { + FocusWindow(NULL); + } +} + +void ImGui::SetNextWindowPos(const ImVec2& pos, ImGuiSetCond cond) +{ + ImGuiState& g = *GImGui; + g.SetNextWindowPosVal = pos; + g.SetNextWindowPosCond = cond ? cond : ImGuiSetCond_Always; +} + +void ImGui::SetNextWindowPosCenter(ImGuiSetCond cond) +{ + ImGuiState& g = *GImGui; + g.SetNextWindowPosVal = ImVec2(-FLT_MAX, -FLT_MAX); + g.SetNextWindowPosCond = cond ? cond : ImGuiSetCond_Always; +} + +void ImGui::SetNextWindowSize(const ImVec2& size, ImGuiSetCond cond) +{ + ImGuiState& g = *GImGui; + g.SetNextWindowSizeVal = size; + g.SetNextWindowSizeCond = cond ? cond : ImGuiSetCond_Always; +} + +void ImGui::SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond) +{ + ImGuiState& g = *GImGui; + g.SetNextWindowCollapsedVal = collapsed; + g.SetNextWindowCollapsedCond = cond ? cond : ImGuiSetCond_Always; +} + +void ImGui::SetNextWindowFocus() +{ + ImGuiState& g = *GImGui; + g.SetNextWindowFocus = true; +} + +// In window space (not screen space!) +ImVec2 ImGui::GetContentRegionMax() +{ + ImGuiWindow* window = GetCurrentWindow(); + ImVec2 mx = window->Size - window->WindowPadding; + if (window->DC.ColumnsCount != 1) + mx.x = ImGui::GetColumnOffset(window->DC.ColumnsCurrent + 1) - window->WindowPadding.x; + else + mx.x -= window->ScrollbarWidth(); + return mx; +} + +ImVec2 ImGui::GetContentRegionAvail() +{ + ImGuiWindow* window = GetCurrentWindow(); + return GetContentRegionMax() - (window->DC.CursorPos - window->Pos); +} + +// In window space (not screen space!) +ImVec2 ImGui::GetWindowContentRegionMin() +{ + ImGuiWindow* window = GetCurrentWindow(); + return ImVec2(0, window->TitleBarHeight() + window->MenuBarHeight()) + window->WindowPadding; +} + +ImVec2 ImGui::GetWindowContentRegionMax() +{ + ImGuiWindow* window = GetCurrentWindow(); + ImVec2 m = window->Size - window->WindowPadding; + m.x -= window->ScrollbarWidth(); + return m; +} + +float ImGui::GetTextLineHeight() +{ + ImGuiState& g = *GImGui; + return g.FontSize; +} + +float ImGui::GetTextLineHeightWithSpacing() +{ + ImGuiState& g = *GImGui; + return g.FontSize + g.Style.ItemSpacing.y; +} + +float ImGui::GetItemsLineHeightWithSpacing() +{ + ImGuiState& g = *GImGui; + return g.FontSize + g.Style.FramePadding.y * 2.0f + g.Style.ItemSpacing.y; +} + +ImDrawList* ImGui::GetWindowDrawList() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DrawList; +} + +ImFont* ImGui::GetWindowFont() +{ + ImGuiState& g = *GImGui; + return g.Font; +} + +float ImGui::GetWindowFontSize() +{ + ImGuiState& g = *GImGui; + return g.FontSize; +} + +void ImGui::SetWindowFontScale(float scale) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + window->FontWindowScale = scale; + g.FontSize = window->CalcFontSize(); +} + +// User generally sees positions in window coordinates. Internally we store CursorPos in absolute screen coordinates because it is more convenient. +// Conversion happens as we pass the value to user, but it makes our naming convention confusing because GetCursorPos() == (DC.CursorPos - window.Pos). May want to rename 'DC.CursorPos'. +ImVec2 ImGui::GetCursorPos() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.CursorPos - window->Pos; +} + +float ImGui::GetCursorPosX() +{ + return ImGui::GetCursorPos().x; +} + +float ImGui::GetCursorPosY() +{ + return ImGui::GetCursorPos().y; +} + +void ImGui::SetCursorPos(const ImVec2& pos) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.CursorPos = window->Pos + pos; + window->DC.CursorMaxPos = ImMax(window->DC.CursorMaxPos, window->DC.CursorPos); +} + +void ImGui::SetCursorPosX(float x) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.CursorPos.x = window->Pos.x + x; + window->DC.CursorMaxPos.x = ImMax(window->DC.CursorMaxPos.x, window->DC.CursorPos.x); +} + +void ImGui::SetCursorPosY(float y) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.CursorPos.y = window->Pos.y + y; + window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, window->DC.CursorPos.y); +} + +ImVec2 ImGui::GetCursorStartPos() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.CursorStartPos - window->Pos; +} + +ImVec2 ImGui::GetCursorScreenPos() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.CursorPos; +} + +void ImGui::SetCursorScreenPos(const ImVec2& screen_pos) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.CursorPos = screen_pos; +} + +float ImGui::GetScrollY() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->ScrollY; +} + +float ImGui::GetScrollMaxY() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->SizeContents.y - window->SizeFull.y; +} + +void ImGui::SetScrollY(float scroll_y) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->ScrollTargetRelY = scroll_y + window->TitleBarHeight(); // title bar height cancelled out when using ScrollTargetRelY + window->ScrollTargetCenterRatioY = 0.0f; +} + +void ImGui::SetScrollFromPosY(float pos_y, float center_y_ratio) +{ + // We store a target position so centering can occur on the next frame when we are guaranteed to have a known window size + ImGuiWindow* window = GetCurrentWindow(); + IM_ASSERT(center_y_ratio >= 0.0f && center_y_ratio <= 1.0f); + window->ScrollTargetRelY = (float)(int)(pos_y + window->ScrollY); + if (center_y_ratio <= 0.0f && window->ScrollTargetRelY <= window->WindowPadding.y) // Minor hack to make "scroll to top" take account of WindowPadding, else it would scroll to (WindowPadding.y - ItemSpacing.y) + window->ScrollTargetRelY = 0.0f; + window->ScrollTargetCenterRatioY = center_y_ratio; +} + +void ImGui::SetScrollHere(float center_y_ratio) +{ + ImGuiWindow* window = GetCurrentWindow(); + float target_y = window->DC.CursorPosPrevLine.y + (window->DC.PrevLineHeight * center_y_ratio) + (GImGui->Style.ItemSpacing.y * (center_y_ratio - 0.5f) * 2.0f); // Precisely aim above, in the middle or below the last line. + ImGui::SetScrollFromPosY(target_y - window->Pos.y, center_y_ratio); +} + +void ImGui::SetKeyboardFocusHere(int offset) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->FocusIdxAllRequestNext = window->FocusIdxAllCounter + 1 + offset; + window->FocusIdxTabRequestNext = IM_INT_MAX; +} + +void ImGui::SetStateStorage(ImGuiStorage* tree) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.StateStorage = tree ? tree : &window->StateStorage; +} + +ImGuiStorage* ImGui::GetStateStorage() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.StateStorage; +} + +void ImGui::TextV(const char* fmt, va_list args) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + const char* text_end = g.TempBuffer + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); + TextUnformatted(g.TempBuffer, text_end); +} + +void ImGui::Text(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + TextV(fmt, args); + va_end(args); +} + +void ImGui::TextColoredV(const ImVec4& col, const char* fmt, va_list args) +{ + ImGui::PushStyleColor(ImGuiCol_Text, col); + TextV(fmt, args); + ImGui::PopStyleColor(); +} + +void ImGui::TextColored(const ImVec4& col, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + TextColoredV(col, fmt, args); + va_end(args); +} + +void ImGui::TextDisabledV(const char* fmt, va_list args) +{ + ImGui::PushStyleColor(ImGuiCol_Text, GImGui->Style.Colors[ImGuiCol_TextDisabled]); + TextV(fmt, args); + ImGui::PopStyleColor(); +} + +void ImGui::TextDisabled(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + TextDisabledV(fmt, args); + va_end(args); +} + +void ImGui::TextWrappedV(const char* fmt, va_list args) +{ + ImGui::PushTextWrapPos(0.0f); + TextV(fmt, args); + ImGui::PopTextWrapPos(); +} + +void ImGui::TextWrapped(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + TextWrappedV(fmt, args); + va_end(args); +} + +void ImGui::TextUnformatted(const char* text, const char* text_end) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + IM_ASSERT(text != NULL); + const char* text_begin = text; + if (text_end == NULL) + text_end = text + strlen(text); // FIXME-OPT + + const float wrap_pos_x = window->DC.TextWrapPos; + const bool wrap_enabled = wrap_pos_x >= 0.0f; + if (text_end - text > 2000 && !wrap_enabled) + { + // Long text! + // Perform manual coarse clipping to optimize for long multi-line text + // From this point we will only compute the width of lines that are visible. Optimization only available when word-wrapping is disabled. + // We also don't vertically center the text within the line full height, which is unlikely to matter because we are likely the biggest and only item on the line. + const char* line = text; + const float line_height = ImGui::GetTextLineHeight(); + const ImVec2 text_pos = window->DC.CursorPos + ImVec2(0.0f, window->DC.CurrentLineTextBaseOffset); + const ImRect clip_rect = window->ClipRect; + ImVec2 text_size(0,0); + + if (text_pos.y <= clip_rect.Max.y) + { + ImVec2 pos = text_pos; + + // Lines to skip (can't skip when logging text) + if (!g.LogEnabled) + { + int lines_skippable = (int)((clip_rect.Min.y - text_pos.y) / line_height); + if (lines_skippable > 0) + { + int lines_skipped = 0; + while (line < text_end && lines_skipped < lines_skippable) + { + const char* line_end = strchr(line, '\n'); + line = line_end + 1; + lines_skipped++; + } + pos.y += lines_skipped * line_height; + } + } + + // Lines to render + if (line < text_end) + { + ImRect line_rect(pos, pos + ImVec2(ImGui::GetWindowWidth(), line_height)); + while (line < text_end) + { + const char* line_end = strchr(line, '\n'); + if (IsClippedEx(line_rect, NULL, false)) + break; + + const ImVec2 line_size = CalcTextSize(line, line_end, false); + text_size.x = ImMax(text_size.x, line_size.x); + RenderText(pos, line, line_end, false); + if (!line_end) + line_end = text_end; + line = line_end + 1; + line_rect.Min.y += line_height; + line_rect.Max.y += line_height; + pos.y += line_height; + } + + // Count remaining lines + int lines_skipped = 0; + while (line < text_end) + { + const char* line_end = strchr(line, '\n'); + if (!line_end) + line_end = text_end; + line = line_end + 1; + lines_skipped++; + } + pos.y += lines_skipped * line_height; + } + + text_size.y += (pos - text_pos).y; + } + + ImRect bb(text_pos, text_pos + text_size); + ItemSize(bb); + ItemAdd(bb, NULL); + } + else + { + const float wrap_width = wrap_enabled ? CalcWrapWidthForPos(window->DC.CursorPos, wrap_pos_x) : 0.0f; + const ImVec2 text_size = CalcTextSize(text_begin, text_end, false, wrap_width); + + // Account of baseline offset + ImVec2 text_pos = window->DC.CursorPos; + text_pos.y += window->DC.CurrentLineTextBaseOffset; + + ImRect bb(text_pos, text_pos + text_size); + ItemSize(bb.GetSize()); + if (!ItemAdd(bb, NULL)) + return; + + // Render (we don't hide text after ## in this end-user function) + RenderTextWrapped(bb.Min, text_begin, text_end, wrap_width); + } +} + +void ImGui::AlignFirstTextHeightToWidgets() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + // Declare a dummy item size to that upcoming items that are smaller will center-align on the newly expanded line height. + ImGuiState& g = *GImGui; + ItemSize(ImVec2(0, g.FontSize + g.Style.FramePadding.y*2), g.Style.FramePadding.y); + ImGui::SameLine(0, 0); +} + +// Add a label+text combo aligned to other label+value widgets +void ImGui::LabelTextV(const char* label, const char* fmt, va_list args) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const float w = ImGui::CalcItemWidth(); + + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImRect value_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w + style.FramePadding.x*2, label_size.y + style.FramePadding.y*2)); + const ImRect total_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w + style.FramePadding.x*2 + (label_size.x > 0.0f ? style.ItemInnerSpacing.x : 0.0f), style.FramePadding.y*2) + label_size); + ItemSize(total_bb, style.FramePadding.y); + if (!ItemAdd(total_bb, NULL)) + return; + + // Render + const char* value_text_begin = &g.TempBuffer[0]; + const char* value_text_end = value_text_begin + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); + RenderTextClipped(value_bb.Min, value_bb.Max, value_text_begin, value_text_end, NULL, ImGuiAlign_VCenter); + RenderText(ImVec2(value_bb.Max.x + style.ItemInnerSpacing.x, value_bb.Min.y + style.FramePadding.y), label); +} + +void ImGui::LabelText(const char* label, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + LabelTextV(label, fmt, args); + va_end(args); +} + +static inline bool IsWindowContentHoverable(ImGuiWindow* window) +{ + // An active popup disable hovering on other windows (apart from its own children) + ImGuiState& g = *GImGui; + if (ImGuiWindow* focused_window = g.FocusedWindow) + if (ImGuiWindow* focused_root_window = focused_window->RootWindow) + if ((focused_root_window->Flags & ImGuiWindowFlags_Popup) != 0 && focused_root_window->WasActive && focused_root_window != window->RootWindow) + return false; + + return true; +} + +bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, bool allow_key_modifiers, ImGuiButtonFlags flags) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + if (flags & ImGuiButtonFlags_Disabled) + { + if (out_hovered) *out_hovered = false; + if (out_held) *out_held = false; + if (g.ActiveId == id) SetActiveID(0); + return false; + } + + bool pressed = false; + const bool hovered = IsHovered(bb, id, (flags & ImGuiButtonFlags_FlattenChilds) != 0); + if (hovered) + { + g.HoveredId = id; + if (allow_key_modifiers || (!g.IO.KeyCtrl && !g.IO.KeyShift && !g.IO.KeyAlt)) + { + if (g.IO.MouseClicked[0]) + { + if (flags & ImGuiButtonFlags_PressedOnClick) + { + pressed = true; + SetActiveID(0); + } + else + { + SetActiveID(id, window); + } + FocusWindow(window); + } + else if (g.IO.MouseReleased[0] && (flags & ImGuiButtonFlags_PressedOnRelease)) + { + pressed = true; + SetActiveID(0); + } + else if ((flags & ImGuiButtonFlags_Repeat) && g.ActiveId == id && ImGui::IsMouseClicked(0, true)) + { + pressed = true; + } + } + } + + bool held = false; + if (g.ActiveId == id) + { + if (g.IO.MouseDown[0]) + { + held = true; + } + else + { + if (hovered) + pressed = true; + SetActiveID(0); + } + } + + if (out_hovered) *out_hovered = hovered; + if (out_held) *out_held = held; + + return pressed; +} + +bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags flags) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + + ImVec2 pos = window->DC.CursorPos; + if ((flags & ImGuiButtonFlags_AlignTextBaseLine) && style.FramePadding.y < window->DC.CurrentLineTextBaseOffset) + pos.y += window->DC.CurrentLineTextBaseOffset - style.FramePadding.y; + ImVec2 size = CalcItemSize(size_arg, label_size.x + style.FramePadding.x * 2.0f, label_size.y + style.FramePadding.y * 2.0f); + + const ImRect bb(pos, pos + size); + ItemSize(bb, style.FramePadding.y); + if (!ItemAdd(bb, &id)) + return false; + + if (window->DC.ButtonRepeat) flags |= ImGuiButtonFlags_Repeat; + bool hovered, held; + bool pressed = ButtonBehavior(bb, id, &hovered, &held, true, flags); + + // Render + const ImU32 col = window->Color((hovered && held) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); + RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding); + RenderTextClipped(bb.Min, bb.Max, label, NULL, &label_size, ImGuiAlign_Center | ImGuiAlign_VCenter); + + // Automatically close popups + //if (pressed && !(flags & ImGuiButtonFlags_DontClosePopups) && (window->Flags & ImGuiWindowFlags_Popup)) + // ImGui::CloseCurrentPopup(); + + return pressed; +} + +bool ImGui::Button(const char* label, const ImVec2& size_arg) +{ + return ButtonEx(label, size_arg, 0); +} + +// Small buttons fits within text without additional vertical spacing. +bool ImGui::SmallButton(const char* label) +{ + ImGuiState& g = *GImGui; + float backup_padding_y = g.Style.FramePadding.y; + g.Style.FramePadding.y = 0.0f; + bool pressed = ButtonEx(label, ImVec2(0,0), ImGuiButtonFlags_AlignTextBaseLine); + g.Style.FramePadding.y = backup_padding_y; + return pressed; +} + +// Tip: use ImGui::PushID()/PopID() to push indices or pointers in the ID stack. +// Then you can keep 'str_id' empty or the same for all your buttons (instead of creating a string based on a non-string id) +bool ImGui::InvisibleButton(const char* str_id, const ImVec2& size) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + const ImGuiID id = window->GetID(str_id); + const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); + ItemSize(bb); + if (!ItemAdd(bb, &id)) + return false; + + bool hovered, held; + bool pressed = ButtonBehavior(bb, id, &hovered, &held, true); + + return pressed; +} + +// Upper-right button to close a window. +static bool CloseWindowButton(bool* p_opened) +{ + ImGuiWindow* window = ImGui::GetCurrentWindow(); + + const ImGuiID id = window->GetID("#CLOSE"); + const float size = window->TitleBarHeight() - 4.0f; + const ImRect bb(window->Rect().GetTR() + ImVec2(-2.0f-size,2.0f), window->Rect().GetTR() + ImVec2(-2.0f,2.0f+size)); + + bool hovered, held; + bool pressed = ImGui::ButtonBehavior(bb, id, &hovered, &held, true); + + // Render + const ImU32 col = window->Color((held && hovered) ? ImGuiCol_CloseButtonActive : hovered ? ImGuiCol_CloseButtonHovered : ImGuiCol_CloseButton); + const ImVec2 center = bb.GetCenter(); + window->DrawList->AddCircleFilled(center, ImMax(2.0f,size*0.5f), col, 16); + + const float cross_extent = (size * 0.5f * 0.7071f) - 1.0f; + if (hovered) + { + window->DrawList->AddLine(center + ImVec2(+cross_extent,+cross_extent), center + ImVec2(-cross_extent,-cross_extent), window->Color(ImGuiCol_Text)); + window->DrawList->AddLine(center + ImVec2(+cross_extent,-cross_extent), center + ImVec2(-cross_extent,+cross_extent), window->Color(ImGuiCol_Text)); + } + + if (p_opened != NULL && pressed) + *p_opened = !*p_opened; + + return pressed; +} + +void ImGui::Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, const ImVec4& tint_col, const ImVec4& border_col) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); + if (border_col.w > 0.0f) + bb.Max += ImVec2(2,2); + ItemSize(bb); + if (!ItemAdd(bb, NULL)) + return; + + if (border_col.w > 0.0f) + { + window->DrawList->AddRect(bb.Min, bb.Max, window->Color(border_col), 0.0f); + window->DrawList->AddImage(user_texture_id, bb.Min+ImVec2(1,1), bb.Max-ImVec2(1,1), uv0, uv1, window->Color(tint_col)); + } + else + { + window->DrawList->AddImage(user_texture_id, bb.Min, bb.Max, uv0, uv1, window->Color(tint_col)); + } +} + +// frame_padding < 0: uses FramePadding from style (default) +// frame_padding = 0: no framing +// frame_padding > 0: set framing size +// The color used are the button colors. +bool ImGui::ImageButton(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, int frame_padding, const ImVec4& bg_col, const ImVec4& tint_col) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + + // Default to using texture ID as ID. User can still push string/integer prefixes. + // We could hash the size/uv to create a unique ID but that would prevent the user from animating UV. + ImGui::PushID((void *)user_texture_id); + const ImGuiID id = window->GetID("#image"); + ImGui::PopID(); + + const ImVec2 padding = (frame_padding >= 0) ? ImVec2((float)frame_padding, (float)frame_padding) : style.FramePadding; + const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size + padding*2); + const ImRect image_bb(window->DC.CursorPos + padding, window->DC.CursorPos + padding + size); + ItemSize(bb); + if (!ItemAdd(bb, &id)) + return false; + + bool hovered, held; + bool pressed = ButtonBehavior(bb, id, &hovered, &held, true); + + // Render + const ImU32 col = window->Color((hovered && held) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); + RenderFrame(bb.Min, bb.Max, col); + if (bg_col.w > 0.0f) + window->DrawList->AddRectFilled(image_bb.Min, image_bb.Max, window->Color(bg_col)); + window->DrawList->AddImage(user_texture_id, image_bb.Min, image_bb.Max, uv0, uv1, window->Color(tint_col)); + + return pressed; +} + +// Start logging ImGui output to TTY +void ImGui::LogToTTY(int max_depth) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + if (g.LogEnabled) + return; + + g.LogEnabled = true; + g.LogFile = stdout; + g.LogStartDepth = window->DC.TreeDepth; + if (max_depth >= 0) + g.LogAutoExpandMaxDepth = max_depth; +} + +// Start logging ImGui output to given file +void ImGui::LogToFile(int max_depth, const char* filename) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + if (g.LogEnabled) + return; + if (!filename) + { + filename = g.IO.LogFilename; + if (!filename) + return; + } + + g.LogFile = fopen(filename, "ab"); + if (!g.LogFile) + { + IM_ASSERT(g.LogFile != NULL); // Consider this an error + return; + } + g.LogEnabled = true; + g.LogStartDepth = window->DC.TreeDepth; + if (max_depth >= 0) + g.LogAutoExpandMaxDepth = max_depth; +} + +// Start logging ImGui output to clipboard +void ImGui::LogToClipboard(int max_depth) +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGuiState& g = *GImGui; + if (g.LogEnabled) + return; + + g.LogEnabled = true; + g.LogFile = NULL; + g.LogStartDepth = window->DC.TreeDepth; + if (max_depth >= 0) + g.LogAutoExpandMaxDepth = max_depth; +} + +void ImGui::LogFinish() +{ + ImGuiState& g = *GImGui; + if (!g.LogEnabled) + return; + + ImGui::LogText(IM_NEWLINE); + g.LogEnabled = false; + if (g.LogFile != NULL) + { + if (g.LogFile == stdout) + fflush(g.LogFile); + else + fclose(g.LogFile); + g.LogFile = NULL; + } + if (g.LogClipboard->size() > 1) + { + if (g.IO.SetClipboardTextFn) + g.IO.SetClipboardTextFn(g.LogClipboard->begin()); + g.LogClipboard->clear(); + } +} + +// Helper to display logging buttons +void ImGui::LogButtons() +{ + ImGuiState& g = *GImGui; + + ImGui::PushID("LogButtons"); + const bool log_to_tty = ImGui::Button("Log To TTY"); + ImGui::SameLine(); + const bool log_to_file = ImGui::Button("Log To File"); + ImGui::SameLine(); + const bool log_to_clipboard = ImGui::Button("Log To Clipboard"); + ImGui::SameLine(); + + ImGui::PushItemWidth(80.0f); + ImGui::PushAllowKeyboardFocus(false); + ImGui::SliderInt("Depth", &g.LogAutoExpandMaxDepth, 0, 9, NULL); + ImGui::PopAllowKeyboardFocus(); + ImGui::PopItemWidth(); + ImGui::PopID(); + + // Start logging at the end of the function so that the buttons don't appear in the log + if (log_to_tty) + LogToTTY(g.LogAutoExpandMaxDepth); + if (log_to_file) + LogToFile(g.LogAutoExpandMaxDepth, g.IO.LogFilename); + if (log_to_clipboard) + LogToClipboard(g.LogAutoExpandMaxDepth); +} + +bool ImGui::CollapsingHeader(const char* label, const char* str_id, bool display_frame, bool default_open) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + + IM_ASSERT(str_id != NULL || label != NULL); + if (str_id == NULL) + str_id = label; + if (label == NULL) + label = str_id; + const ImGuiID id = window->GetID(str_id); + + // We only write to the tree storage if the user clicks (or explicitely use SetNextTreeNode*** functions) + ImGuiStorage* storage = window->DC.StateStorage; + bool opened; + if (g.SetNextTreeNodeOpenedCond != 0) + { + if (g.SetNextTreeNodeOpenedCond & ImGuiSetCond_Always) + { + opened = g.SetNextTreeNodeOpenedVal; + storage->SetInt(id, opened); + } + else + { + // We treat ImGuiSetCondition_Once and ImGuiSetCondition_FirstUseEver the same because tree node state are not saved persistently. + const int stored_value = storage->GetInt(id, -1); + if (stored_value == -1) + { + opened = g.SetNextTreeNodeOpenedVal; + storage->SetInt(id, opened); + } + else + { + opened = stored_value != 0; + } + } + g.SetNextTreeNodeOpenedCond = 0; + } + else + { + opened = storage->GetInt(id, default_open) != 0; + } + + // Framed header expand a little outside the default padding + const ImVec2 window_padding = window->WindowPadding; + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImVec2 pos_min = window->DC.CursorPos; + const ImVec2 pos_max = window->Pos + GetContentRegionMax(); + ImRect bb = ImRect(pos_min, ImVec2(pos_max.x, pos_min.y + label_size.y)); + if (display_frame) + { + bb.Min.x -= (float)(int)(window_padding.x*0.5f) - 1; + bb.Max.x += (float)(int)(window_padding.x*0.5f) - 1; + bb.Max.y += style.FramePadding.y * 2; + } + + // FIXME: we don't provide our width so that it doesn't get feed back into AutoFit. Should manage that better so we can still hover without extending ContentsSize + const ImRect text_bb(bb.Min, bb.Min + ImVec2(g.FontSize + style.FramePadding.x*2*2,0) + label_size); + ItemSize(ImVec2(text_bb.GetSize().x, bb.GetSize().y), display_frame ? style.FramePadding.y : 0.0f); + + // When logging is enabled, if automatically expand tree nodes (but *NOT* collapsing headers.. seems like sensible behavior). + // NB- If we are above max depth we still allow manually opened nodes to be logged. + if (g.LogEnabled && !display_frame && window->DC.TreeDepth < g.LogAutoExpandMaxDepth) + opened = true; + + if (!ItemAdd(bb, &id)) + return opened; + + bool hovered, held; + bool pressed = ButtonBehavior(display_frame ? bb : text_bb, id, &hovered, &held, false); + if (pressed) + { + opened = !opened; + storage->SetInt(id, opened); + } + + // Render + const ImU32 col = window->Color((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); + if (display_frame) + { + // Framed type + RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding); + RenderCollapseTriangle(bb.Min + style.FramePadding, opened, 1.0f, true); + if (g.LogEnabled) + { + // NB: '##' is normally used to hide text (as a library-wide feature), so we need to specify the text range to make sure the ## aren't stripped out here. + const char log_prefix[] = "\n##"; + LogRenderedText(bb.Min + style.FramePadding, log_prefix, log_prefix+3); + } + RenderTextClipped(bb.Min + style.FramePadding + ImVec2(g.FontSize + style.FramePadding.x*2,0), bb.Max, label, NULL, &label_size); + if (g.LogEnabled) + { + const char log_suffix[] = "##"; + LogRenderedText(bb.Min + style.FramePadding, log_suffix, log_suffix+2); + } + } + else + { + // Unframed typed for tree nodes + if ((held && hovered) || hovered) + RenderFrame(bb.Min, bb.Max, col, false); + RenderCollapseTriangle(bb.Min + ImVec2(style.FramePadding.x, g.FontSize*0.15f), opened, 0.70f, false); + if (g.LogEnabled) + LogRenderedText(bb.Min, ">"); + RenderText(bb.Min + ImVec2(g.FontSize + style.FramePadding.x*2,0), label); + } + + return opened; +} + +void ImGui::Bullet() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const float line_height = g.FontSize; + const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(line_height, line_height)); + ItemSize(bb); + if (!ItemAdd(bb, NULL)) + return; + + // Render + const float bullet_size = line_height*0.15f; + window->DrawList->AddCircleFilled(bb.Min + ImVec2(style.FramePadding.x + line_height*0.5f, line_height*0.5f), bullet_size, window->Color(ImGuiCol_Text)); + + // Stay on same line + ImGui::SameLine(0, -1); +} + +// Text with a little bullet aligned to the typical tree node. +void ImGui::BulletTextV(const char* fmt, va_list args) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + + const char* text_begin = g.TempBuffer; + const char* text_end = text_begin + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); + const float line_height = g.FontSize; + const ImVec2 label_size = CalcTextSize(text_begin, text_end, true); + const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(line_height + (label_size.x > 0.0f ? (style.FramePadding.x*2) : 0.0f),0) + label_size); // Empty text doesn't add padding + ItemSize(bb); + if (!ItemAdd(bb, NULL)) + return; + + // Render + const float bullet_size = line_height*0.15f; + window->DrawList->AddCircleFilled(bb.Min + ImVec2(style.FramePadding.x + line_height*0.5f, line_height*0.5f), bullet_size, window->Color(ImGuiCol_Text)); + RenderText(bb.Min+ImVec2(g.FontSize + style.FramePadding.x*2,0), text_begin, text_end); +} + +void ImGui::BulletText(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + BulletTextV(fmt, args); + va_end(args); +} + +// If returning 'true' the node is open and the user is responsible for calling TreePop +bool ImGui::TreeNodeV(const char* str_id, const char* fmt, va_list args) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); + if (!str_id || !str_id[0]) + str_id = fmt; + + ImGui::PushID(str_id); + const bool opened = ImGui::CollapsingHeader(g.TempBuffer, "", false); + ImGui::PopID(); + + if (opened) + ImGui::TreePush(str_id); + + return opened; +} + +bool ImGui::TreeNode(const char* str_id, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + bool s = TreeNodeV(str_id, fmt, args); + va_end(args); + return s; +} + +// If returning 'true' the node is open and the user is responsible for calling TreePop +bool ImGui::TreeNodeV(const void* ptr_id, const char* fmt, va_list args) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); + + if (!ptr_id) + ptr_id = fmt; + + ImGui::PushID(ptr_id); + const bool opened = ImGui::CollapsingHeader(g.TempBuffer, "", false); + ImGui::PopID(); + + if (opened) + ImGui::TreePush(ptr_id); + + return opened; +} + +bool ImGui::TreeNode(const void* ptr_id, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + bool s = TreeNodeV(ptr_id, fmt, args); + va_end(args); + return s; +} + +bool ImGui::TreeNode(const char* str_label_id) +{ + return TreeNode(str_label_id, "%s", str_label_id); +} + +void ImGui::SetNextTreeNodeOpened(bool opened, ImGuiSetCond cond) +{ + ImGuiState& g = *GImGui; + g.SetNextTreeNodeOpenedVal = opened; + g.SetNextTreeNodeOpenedCond = cond ? cond : ImGuiSetCond_Always; +} + +void ImGui::PushID(const char* str_id) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->IDStack.push_back(window->GetID(str_id)); +} + +void ImGui::PushID(const char* str_id_begin, const char* str_id_end) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->IDStack.push_back(window->GetID(str_id_begin, str_id_end)); +} + +void ImGui::PushID(const void* ptr_id) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->IDStack.push_back(window->GetID(ptr_id)); +} + +void ImGui::PushID(int int_id) +{ + const void* ptr_id = (void*)(intptr_t)int_id; + ImGuiWindow* window = GetCurrentWindow(); + window->IDStack.push_back(window->GetID(ptr_id)); +} + +void ImGui::PopID() +{ + ImGuiWindow* window = GetCurrentWindow(); + window->IDStack.pop_back(); +} + +ImGuiID ImGui::GetID(const char* str_id) +{ + return GImGui->CurrentWindow->GetID(str_id); +} + +ImGuiID ImGui::GetID(const char* str_id_begin, const char* str_id_end) +{ + return GImGui->CurrentWindow->GetID(str_id_begin, str_id_end); +} + +ImGuiID ImGui::GetID(const void* ptr_id) +{ + return GImGui->CurrentWindow->GetID(ptr_id); +} + +static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, const char* display_format, char* buf, int buf_size) +{ + if (data_type == ImGuiDataType_Int) + ImFormatString(buf, buf_size, display_format, *(int*)data_ptr); + else if (data_type == ImGuiDataType_Float) + ImFormatString(buf, buf_size, display_format, *(float*)data_ptr); +} + +static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, int decimal_precision, char* buf, int buf_size) +{ + if (data_type == ImGuiDataType_Int) + { + if (decimal_precision < 0) + ImFormatString(buf, buf_size, "%d", *(int*)data_ptr); + else + ImFormatString(buf, buf_size, "%.*d", decimal_precision, *(int*)data_ptr); + } + else if (data_type == ImGuiDataType_Float) + { + if (decimal_precision < 0) + ImFormatString(buf, buf_size, "%f", *(float*)data_ptr); // Ideally we'd have a minimum decimal precision of 1 to visually denote that it is a float, while hiding non-significant digits? + else + ImFormatString(buf, buf_size, "%.*f", decimal_precision, *(float*)data_ptr); + } +} + +static void DataTypeApplyOp(ImGuiDataType data_type, int op, void* value1, const void* value2)// Store into value1 +{ + if (data_type == ImGuiDataType_Int) + { + if (op == '+') + *(int*)value1 = *(int*)value1 + *(const int*)value2; + else if (op == '-') + *(int*)value1 = *(int*)value1 - *(const int*)value2; + } + else if (data_type == ImGuiDataType_Float) + { + if (op == '+') + *(float*)value1 = *(float*)value1 + *(const float*)value2; + else if (op == '-') + *(float*)value1 = *(float*)value1 - *(const float*)value2; + } +} + +// User can input math operators (e.g. +100) to edit a numerical values. +static void DataTypeApplyOpFromText(const char* buf, const char* initial_value_buf, ImGuiDataType data_type, void* data_ptr, const char* scalar_format) +{ + while (ImCharIsSpace(*buf)) + buf++; + + // We don't support '-' op because it would conflict with inputing negative value. + // Instead you can use +-100 to subtract from an existing value + char op = buf[0]; + if (op == '+' || op == '*' || op == '/') + { + buf++; + while (ImCharIsSpace(*buf)) + buf++; + } + else + { + op = 0; + } + if (!buf[0]) + return; + + if (data_type == ImGuiDataType_Int) + { + if (!scalar_format) + scalar_format = "%d"; + int* v = (int*)data_ptr; + int ref_v = *v; + if (op && sscanf(initial_value_buf, scalar_format, &ref_v) < 1) + return; + + // Store operand in a float so we can use fractional value for multipliers (*1.1), but constant always parsed as integer so we can fit big integers (e.g. 2000000003) past float precision + float op_v = 0.0f; + if (op == '+') { if (sscanf(buf, "%f", &op_v) == 1) *v = (int)(ref_v + op_v); } // Add (use "+-" to subtract) + else if (op == '*') { if (sscanf(buf, "%f", &op_v) == 1) *v = (int)(ref_v * op_v); } // Multiply + else if (op == '/') { if (sscanf(buf, "%f", &op_v) == 1 && op_v != 0.0f) *v = (int)(ref_v / op_v); }// Divide + else { if (sscanf(buf, scalar_format, &ref_v) == 1) *v = ref_v; } // Assign constant + } + else if (data_type == ImGuiDataType_Float) + { + if (!scalar_format) + scalar_format = "%f"; + float* v = (float*)data_ptr; + float ref_v = *v; + if (op && sscanf(initial_value_buf, scalar_format, &ref_v) < 1) + return; + float op_v = 0.0f; + if (sscanf(buf, scalar_format, &op_v) < 1) + return; + + if (op == '+') { *v = ref_v + op_v; } // Add (use "+-" to subtract) + else if (op == '*') { *v = ref_v * op_v; } // Multiply + else if (op == '/') { if (op_v != 0.0f) *v = ref_v / op_v; } // Divide + else { *v = op_v; } // Assign constant + } +} + +// Create text input in place of a slider (when CTRL+Clicking on slider) +bool ImGui::InputScalarAsWidgetReplacement(const ImRect& aabb, const char* label, ImGuiDataType data_type, void* data_ptr, ImGuiID id, int decimal_precision) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + // Our replacement widget will override the focus ID (registered previously to allow for a TAB focus to happen) + SetActiveID(g.ScalarAsInputTextId, window); + g.HoveredId = 0; + FocusableItemUnregister(window); + + char buf[32]; + DataTypeFormatString(data_type, data_ptr, decimal_precision, buf, IM_ARRAYSIZE(buf)); + bool value_changed = InputTextEx(label, buf, IM_ARRAYSIZE(buf), aabb.GetSize() - g.Style.FramePadding*2.0f, ImGuiInputTextFlags_CharsDecimal | ImGuiInputTextFlags_AutoSelectAll); + if (g.ScalarAsInputTextId == 0) + { + // First frame + IM_ASSERT(g.ActiveId == id); // InputText ID expected to match the Slider ID (else we'd need to store them both, which is also possible) + g.ScalarAsInputTextId = g.ActiveId; + g.HoveredId = id; + } + else if (g.ActiveId != g.ScalarAsInputTextId) + { + // Release + g.ScalarAsInputTextId = 0; + } + if (value_changed) + DataTypeApplyOpFromText(buf, GImGui->InputTextState.InitialText.begin(), data_type, data_ptr, NULL); + return value_changed; +} + +// Parse display precision back from the display format string +int ImGui::ParseFormatPrecision(const char* fmt, int default_precision) +{ + int precision = default_precision; + while ((fmt = strchr(fmt, '%')) != NULL) + { + fmt++; + if (fmt[0] == '%') { fmt++; continue; } // Ignore "%%" + while (*fmt >= '0' && *fmt <= '9') + fmt++; + if (*fmt == '.') + { + precision = atoi(fmt + 1); + if (precision < 0 || precision > 10) + precision = default_precision; + } + break; + } + return precision; +} + +float ImGui::RoundScalar(float value, int decimal_precision) +{ + // Round past decimal precision + // So when our value is 1.99999 with a precision of 0.001 we'll end up rounding to 2.0 + // FIXME: Investigate better rounding methods + static const float min_steps[10] = { 1.0f, 0.1f, 0.01f, 0.001f, 0.0001f, 0.00001f, 0.000001f, 0.0000001f, 0.00000001f, 0.000000001f }; + float min_step = (decimal_precision >= 0 && decimal_precision < 10) ? min_steps[decimal_precision] : powf(10.0f, (float)-decimal_precision); + bool negative = value < 0.0f; + value = fabsf(value); + float remainder = fmodf(value, min_step); + if (remainder <= min_step*0.5f) + value -= remainder; + else + value += (min_step - remainder); + return negative ? -value : value; +} + +bool ImGui::SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_min, float v_max, float power, int decimal_precision, bool horizontal) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + const ImGuiStyle& style = g.Style; + + // Draw frame + RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); + + const bool is_non_linear = fabsf(power - 1.0f) > 0.0001f; + + const float grab_padding = 2.0f; + const float slider_sz = horizontal ? (frame_bb.GetWidth() - grab_padding * 2.0f) : (frame_bb.GetHeight() - grab_padding * 2.0f); + float grab_sz; + if (decimal_precision > 0) + grab_sz = ImMin(style.GrabMinSize, slider_sz); + else + grab_sz = ImMin(ImMax(1.0f * (slider_sz / (v_max-v_min+1.0f)), style.GrabMinSize), slider_sz); // Integer sliders, if possible have the grab size represent 1 unit + const float slider_usable_sz = slider_sz - grab_sz; + const float slider_usable_pos_min = (horizontal ? frame_bb.Min.x : frame_bb.Min.y) + grab_padding + grab_sz*0.5f; + const float slider_usable_pos_max = (horizontal ? frame_bb.Max.x : frame_bb.Max.y) - grab_padding - grab_sz*0.5f; + + // For logarithmic sliders that cross over sign boundary we want the exponential increase to be symmetric around 0.0f + float linear_zero_pos = 0.0f; // 0.0->1.0f + if (v_min * v_max < 0.0f) + { + // Different sign + const float linear_dist_min_to_0 = powf(fabsf(0.0f - v_min), 1.0f/power); + const float linear_dist_max_to_0 = powf(fabsf(v_max - 0.0f), 1.0f/power); + linear_zero_pos = linear_dist_min_to_0 / (linear_dist_min_to_0+linear_dist_max_to_0); + } + else + { + // Same sign + linear_zero_pos = v_min < 0.0f ? 1.0f : 0.0f; + } + + // Process clicking on the slider + bool value_changed = false; + if (g.ActiveId == id) + { + if (g.IO.MouseDown[0]) + { + const float mouse_abs_pos = horizontal ? g.IO.MousePos.x : g.IO.MousePos.y; + float normalized_pos = ImClamp((mouse_abs_pos - slider_usable_pos_min) / slider_usable_sz, 0.0f, 1.0f); + if (!horizontal) + normalized_pos = 1.0f - normalized_pos; + + float new_value; + if (is_non_linear) + { + // Account for logarithmic scale on both sides of the zero + if (normalized_pos < linear_zero_pos) + { + // Negative: rescale to the negative range before powering + float a = 1.0f - (normalized_pos / linear_zero_pos); + a = powf(a, power); + new_value = ImLerp(ImMin(v_max,0.0f), v_min, a); + } + else + { + // Positive: rescale to the positive range before powering + float a; + if (fabsf(linear_zero_pos - 1.0f) > 1.e-6) + a = (normalized_pos - linear_zero_pos) / (1.0f - linear_zero_pos); + else + a = normalized_pos; + a = powf(a, power); + new_value = ImLerp(ImMax(v_min,0.0f), v_max, a); + } + } + else + { + // Linear slider + new_value = ImLerp(v_min, v_max, normalized_pos); + } + + // Round past decimal precision + new_value = RoundScalar(new_value, decimal_precision); + if (*v != new_value) + { + *v = new_value; + value_changed = true; + } + } + else + { + SetActiveID(0); + } + } + + // Calculate slider grab positioning + float grab_t; + if (is_non_linear) + { + float v_clamped = ImClamp(*v, v_min, v_max); + if (v_clamped < 0.0f) + { + const float f = 1.0f - (v_clamped - v_min) / (ImMin(0.0f,v_max) - v_min); + grab_t = (1.0f - powf(f, 1.0f/power)) * linear_zero_pos; + } + else + { + const float f = (v_clamped - ImMax(0.0f,v_min)) / (v_max - ImMax(0.0f,v_min)); + grab_t = linear_zero_pos + powf(f, 1.0f/power) * (1.0f - linear_zero_pos); + } + } + else + { + // Linear slider + grab_t = (ImClamp(*v, v_min, v_max) - v_min) / (v_max - v_min); + } + + // Draw + if (!horizontal) + grab_t = 1.0f - grab_t; + const float grab_pos = ImLerp(slider_usable_pos_min, slider_usable_pos_max, grab_t); + ImRect grab_bb; + if (horizontal) + grab_bb = ImRect(ImVec2(grab_pos - grab_sz*0.5f, frame_bb.Min.y + grab_padding), ImVec2(grab_pos + grab_sz*0.5f, frame_bb.Max.y - grab_padding)); + else + grab_bb = ImRect(ImVec2(frame_bb.Min.x + grab_padding, grab_pos - grab_sz*0.5f), ImVec2(frame_bb.Max.x - grab_padding, grab_pos + grab_sz*0.5f)); + window->DrawList->AddRectFilled(grab_bb.Min, grab_bb.Max, window->Color(g.ActiveId == id ? ImGuiCol_SliderGrabActive : ImGuiCol_SliderGrab), style.GrabRounding); + + return value_changed; +} + +// Use power!=1.0 for logarithmic sliders. +// Adjust display_format to decorate the value with a prefix or a suffix. +// "%.3f" 1.234 +// "%5.2f secs" 01.23 secs +// "Gold: %.0f" Gold: 1 +bool ImGui::SliderFloat(const char* label, float* v, float v_min, float v_max, const char* display_format, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const float w = ImGui::CalcItemWidth(); + + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); + const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + + // NB- we don't call ItemSize() yet because we may turn into a text edit box below + if (!ItemAdd(total_bb, &id)) + { + ItemSize(total_bb, style.FramePadding.y); + return false; + } + + const bool hovered = IsHovered(frame_bb, id); + if (hovered) + g.HoveredId = id; + + if (!display_format) + display_format = "%.3f"; + int decimal_precision = ParseFormatPrecision(display_format, 3); + + // Tabbing or CTRL-clicking on Slider turns it into an input box + bool start_text_input = false; + const bool tab_focus_requested = FocusableItemRegister(window, g.ActiveId == id); + if (tab_focus_requested || (hovered && g.IO.MouseClicked[0])) + { + SetActiveID(id, window); + FocusWindow(window); + + if (tab_focus_requested || g.IO.KeyCtrl) + { + start_text_input = true; + g.ScalarAsInputTextId = 0; + } + } + if (start_text_input || (g.ActiveId == id && g.ScalarAsInputTextId == id)) + return InputScalarAsWidgetReplacement(frame_bb, label, ImGuiDataType_Float, v, id, decimal_precision); + + ItemSize(total_bb, style.FramePadding.y); + + // Actual slider behavior + render grab + const bool value_changed = SliderBehavior(frame_bb, id, v, v_min, v_max, power, decimal_precision, true); + + // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. + char value_buf[64]; + const char* value_buf_end = value_buf + ImFormatString(value_buf, IM_ARRAYSIZE(value_buf), display_format, *v); + RenderTextClipped(frame_bb.Min, frame_bb.Max, value_buf, value_buf_end, NULL, ImGuiAlign_Center|ImGuiAlign_VCenter); + + if (label_size.x > 0.0f) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + return value_changed; +} + +bool ImGui::VSliderFloat(const char* label, const ImVec2& size, float* v, float v_min, float v_max, const char* display_format, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + size); + const ImRect bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + + ItemSize(bb, style.FramePadding.y); + if (!ItemAdd(frame_bb, &id)) + return false; + + const bool hovered = IsHovered(frame_bb, id); + if (hovered) + g.HoveredId = id; + + if (!display_format) + display_format = "%.3f"; + int decimal_precision = ParseFormatPrecision(display_format, 3); + + if (hovered && g.IO.MouseClicked[0]) + { + SetActiveID(id, window); + FocusWindow(window); + } + + // Actual slider behavior + render grab + bool value_changed = SliderBehavior(frame_bb, id, v, v_min, v_max, power, decimal_precision, false); + + // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. + // For the vertical slider we allow centered text to overlap the frame padding + char value_buf[64]; + char* value_buf_end = value_buf + ImFormatString(value_buf, IM_ARRAYSIZE(value_buf), display_format, *v); + RenderTextClipped(ImVec2(frame_bb.Min.x, frame_bb.Min.y + style.FramePadding.y), frame_bb.Max, value_buf, value_buf_end, NULL, ImGuiAlign_Center); + + if (label_size.x > 0.0f) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + return value_changed; +} + +bool ImGui::SliderAngle(const char* label, float* v_rad, float v_degrees_min, float v_degrees_max) +{ + float v_deg = (*v_rad) * 360.0f / (2*IM_PI); + bool value_changed = ImGui::SliderFloat(label, &v_deg, v_degrees_min, v_degrees_max, "%.0f deg", 1.0f); + *v_rad = v_deg * (2*IM_PI) / 360.0f; + return value_changed; +} + +bool ImGui::SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format) +{ + if (!display_format) + display_format = "%.0f"; + float v_f = (float)*v; + bool value_changed = ImGui::SliderFloat(label, &v_f, (float)v_min, (float)v_max, display_format, 1.0f); + *v = (int)v_f; + return value_changed; +} + +bool ImGui::VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* display_format) +{ + if (!display_format) + display_format = "%.0f"; + float v_f = (float)*v; + bool value_changed = ImGui::VSliderFloat(label, size, &v_f, (float)v_min, (float)v_max, display_format, 1.0f); + *v = (int)v_f; + return value_changed; +} + +// Add multiple sliders on 1 line for compact edition of multiple components +bool ImGui::SliderFloatN(const char* label, float* v, int components, float v_min, float v_max, const char* display_format, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::SliderFloat("##v", &v[i], v_min, v_max, display_format, power); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::SliderFloat2(const char* label, float v[2], float v_min, float v_max, const char* display_format, float power) +{ + return SliderFloatN(label, v, 2, v_min, v_max, display_format, power); +} + +bool ImGui::SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* display_format, float power) +{ + return SliderFloatN(label, v, 3, v_min, v_max, display_format, power); +} + +bool ImGui::SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* display_format, float power) +{ + return SliderFloatN(label, v, 4, v_min, v_max, display_format, power); +} + +bool ImGui::SliderIntN(const char* label, int* v, int components, int v_min, int v_max, const char* display_format) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::SliderInt("##v", &v[i], v_min, v_max, display_format); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* display_format) +{ + return SliderIntN(label, v, 2, v_min, v_max, display_format); +} + +bool ImGui::SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* display_format) +{ + return SliderIntN(label, v, 3, v_min, v_max, display_format); +} + +bool ImGui::SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* display_format) +{ + return SliderIntN(label, v, 4, v_min, v_max, display_format); +} + +bool ImGui::DragBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_speed, float v_min, float v_max, int decimal_precision, float power) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + const ImGuiStyle& style = g.Style; + + // Draw frame + const ImU32 frame_col = window->Color(g.ActiveId == id ? ImGuiCol_FrameBgActive : g.HoveredId == id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg); + RenderFrame(frame_bb.Min, frame_bb.Max, frame_col, true, style.FrameRounding); + + bool value_changed = false; + + // Process clicking on the drag + if (g.ActiveId == id) + { + if (g.IO.MouseDown[0]) + { + if (g.ActiveIdIsJustActivated) + { + // Lock current value on click + g.DragCurrentValue = *v; + g.DragLastMouseDelta = ImVec2(0.f, 0.f); + } + + const ImVec2 mouse_drag_delta = ImGui::GetMouseDragDelta(0, 1.0f); + if (fabsf(mouse_drag_delta.x - g.DragLastMouseDelta.x) > 0.0f) + { + float speed = v_speed; + if (speed == 0.0f && (v_max - v_min) != 0.0f && (v_max - v_min) < FLT_MAX) + speed = (v_max - v_min) * g.DragSpeedDefaultRatio; + if (g.IO.KeyShift && g.DragSpeedScaleFast >= 0.0f) + speed = speed * g.DragSpeedScaleFast; + if (g.IO.KeyAlt && g.DragSpeedScaleSlow >= 0.0f) + speed = speed * g.DragSpeedScaleSlow; + + float v_cur = g.DragCurrentValue; + float delta = (mouse_drag_delta.x - g.DragLastMouseDelta.x) * speed; + if (fabsf(power - 1.0f) > 0.001f) + { + // Logarithmic curve on both side of 0.0 + float v0_abs = v_cur >= 0.0f ? v_cur : -v_cur; + float v0_sign = v_cur >= 0.0f ? 1.0f : -1.0f; + float v1 = powf(v0_abs, 1.0f / power) + (delta * v0_sign); + float v1_abs = v1 >= 0.0f ? v1 : -v1; + float v1_sign = v1 >= 0.0f ? 1.0f : -1.0f; // Crossed sign line + v_cur = powf(v1_abs, power) * v0_sign * v1_sign; // Reapply sign + } + else + { + v_cur += delta; + } + g.DragLastMouseDelta.x = mouse_drag_delta.x; + + // Clamp + if (v_min < v_max) + v_cur = ImClamp(v_cur, v_min, v_max); + g.DragCurrentValue = v_cur; + + // Round to user desired precision, then apply + v_cur = RoundScalar(v_cur, decimal_precision); + if (*v != v_cur) + { + *v = v_cur; + value_changed = true; + } + } + } + else + { + SetActiveID(0); + } + } + + return value_changed; +} + +bool ImGui::DragFloat(const char* label, float* v, float v_speed, float v_min, float v_max, const char* display_format, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const float w = ImGui::CalcItemWidth(); + + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); + const ImRect inner_bb(frame_bb.Min + style.FramePadding, frame_bb.Max - style.FramePadding); + const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + + // NB- we don't call ItemSize() yet because we may turn into a text edit box below + if (!ItemAdd(total_bb, &id)) + { + ItemSize(total_bb, style.FramePadding.y); + return false; + } + + const bool hovered = IsHovered(frame_bb, id); + if (hovered) + g.HoveredId = id; + + if (!display_format) + display_format = "%.3f"; + int decimal_precision = ParseFormatPrecision(display_format, 3); + + // Tabbing or CTRL-clicking on Drag turns it into an input box + bool start_text_input = false; + const bool tab_focus_requested = FocusableItemRegister(window, g.ActiveId == id); + if (tab_focus_requested || (hovered && (g.IO.MouseClicked[0] | g.IO.MouseDoubleClicked[0]))) + { + SetActiveID(id, window); + FocusWindow(window); + + if (tab_focus_requested || g.IO.KeyCtrl || g.IO.MouseDoubleClicked[0]) + { + start_text_input = true; + g.ScalarAsInputTextId = 0; + } + } + if (start_text_input || (g.ActiveId == id && g.ScalarAsInputTextId == id)) + return InputScalarAsWidgetReplacement(frame_bb, label, ImGuiDataType_Float, v, id, decimal_precision); + + // Actual drag behavior + ItemSize(total_bb, style.FramePadding.y); + const bool value_changed = DragBehavior(frame_bb, id, v, v_speed, v_min, v_max, decimal_precision, power); + + // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. + char value_buf[64]; + const char* value_buf_end = value_buf + ImFormatString(value_buf, IM_ARRAYSIZE(value_buf), display_format, *v); + RenderTextClipped(frame_bb.Min, frame_bb.Max, value_buf, value_buf_end, NULL, ImGuiAlign_Center|ImGuiAlign_VCenter); + + if (label_size.x > 0.0f) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, inner_bb.Min.y), label); + + return value_changed; +} + +bool ImGui::DragFloatN(const char* label, float* v, int components, float v_speed, float v_min, float v_max, const char* display_format, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::DragFloat("##v", &v[i], v_speed, v_min, v_max, display_format, power); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::DragFloat2(const char* label, float v[2], float v_speed, float v_min, float v_max, const char* display_format, float power) +{ + return DragFloatN(label, v, 2, v_speed, v_min, v_max, display_format, power); +} + +bool ImGui::DragFloat3(const char* label, float v[3], float v_speed, float v_min, float v_max, const char* display_format, float power) +{ + return DragFloatN(label, v, 3, v_speed, v_min, v_max, display_format, power); +} + +bool ImGui::DragFloat4(const char* label, float v[4], float v_speed, float v_min, float v_max, const char* display_format, float power) +{ + return DragFloatN(label, v, 4, v_speed, v_min, v_max, display_format, power); +} + +bool ImGui::DragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, const char* display_format, const char* display_format_max, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + ImGui::PushID(label); + ImGui::BeginGroup(); + PushMultiItemsWidths(2); + + bool value_changed = ImGui::DragFloat("##min", v_current_min, v_speed, (v_min >= v_max) ? -FLT_MAX : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format, power); + ImGui::PopItemWidth(); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + value_changed |= ImGui::DragFloat("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? FLT_MAX : v_max, display_format_max ? display_format_max : display_format, power); + ImGui::PopItemWidth(); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + ImGui::PopID(); + + return value_changed; +} + +// NB: v_speed is float to allow adjusting the drag speed with more precision +bool ImGui::DragInt(const char* label, int* v, float v_speed, int v_min, int v_max, const char* display_format) +{ + if (!display_format) + display_format = "%.0f"; + float v_f = (float)*v; + bool value_changed = ImGui::DragFloat(label, &v_f, v_speed, (float)v_min, (float)v_max, display_format); + *v = (int)v_f; + return value_changed; +} + +bool ImGui::DragIntN(const char* label, int* v, int components, float v_speed, int v_min, int v_max, const char* display_format) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::DragInt("##v", &v[i], v_speed, v_min, v_max, display_format); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::DragInt2(const char* label, int v[2], float v_speed, int v_min, int v_max, const char* display_format) +{ + return DragIntN(label, v, 2, v_speed, v_min, v_max, display_format); +} + +bool ImGui::DragInt3(const char* label, int v[3], float v_speed, int v_min, int v_max, const char* display_format) +{ + return DragIntN(label, v, 3, v_speed, v_min, v_max, display_format); +} + +bool ImGui::DragInt4(const char* label, int v[4], float v_speed, int v_min, int v_max, const char* display_format) +{ + return DragIntN(label, v, 4, v_speed, v_min, v_max, display_format); +} + +bool ImGui::DragIntRange2(const char* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, const char* display_format, const char* display_format_max) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + ImGui::PushID(label); + ImGui::BeginGroup(); + PushMultiItemsWidths(2); + + bool value_changed = ImGui::DragInt("##min", v_current_min, v_speed, (v_min >= v_max) ? IM_INT_MIN : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format); + ImGui::PopItemWidth(); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + value_changed |= ImGui::DragInt("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? IM_INT_MAX : v_max, display_format_max ? display_format_max : display_format); + ImGui::PopItemWidth(); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + ImGui::PopID(); + + return value_changed; +} + +void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + + const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + if (graph_size.x == 0.0f) + graph_size.x = ImGui::CalcItemWidth() + (style.FramePadding.x * 2); + if (graph_size.y == 0.0f) + graph_size.y = label_size.y + (style.FramePadding.y * 2); + + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(graph_size.x, graph_size.y)); + const ImRect inner_bb(frame_bb.Min + style.FramePadding, frame_bb.Max - style.FramePadding); + const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0)); + ItemSize(total_bb, style.FramePadding.y); + if (!ItemAdd(total_bb, NULL)) + return; + + // Determine scale from values if not specified + if (scale_min == FLT_MAX || scale_max == FLT_MAX) + { + float v_min = FLT_MAX; + float v_max = -FLT_MAX; + for (int i = 0; i < values_count; i++) + { + const float v = values_getter(data, i); + v_min = ImMin(v_min, v); + v_max = ImMax(v_max, v); + } + if (scale_min == FLT_MAX) + scale_min = v_min; + if (scale_max == FLT_MAX) + scale_max = v_max; + } + + RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); + + int res_w = ImMin((int)graph_size.x, values_count); + if (plot_type == ImGuiPlotType_Lines) + res_w -= 1; + + // Tooltip on hover + int v_hovered = -1; + if (IsHovered(inner_bb, 0)) + { + const float t = ImClamp((g.IO.MousePos.x - inner_bb.Min.x) / (inner_bb.Max.x - inner_bb.Min.x), 0.0f, 0.9999f); + const int v_idx = (int)(t * (values_count + ((plot_type == ImGuiPlotType_Lines) ? -1 : 0))); + IM_ASSERT(v_idx >= 0 && v_idx < values_count); + + const float v0 = values_getter(data, (v_idx + values_offset) % values_count); + const float v1 = values_getter(data, (v_idx + 1 + values_offset) % values_count); + if (plot_type == ImGuiPlotType_Lines) + ImGui::SetTooltip("%d: %8.4g\n%d: %8.4g", v_idx, v0, v_idx+1, v1); + else if (plot_type == ImGuiPlotType_Histogram) + ImGui::SetTooltip("%d: %8.4g", v_idx, v0); + v_hovered = v_idx; + } + + const float t_step = 1.0f / (float)res_w; + + float v0 = values_getter(data, (0 + values_offset) % values_count); + float t0 = 0.0f; + ImVec2 p0 = ImVec2( t0, 1.0f - ImSaturate((v0 - scale_min) / (scale_max - scale_min)) ); + + const ImU32 col_base = window->Color((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram); + const ImU32 col_hovered = window->Color((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered); + + for (int n = 0; n < res_w; n++) + { + const float t1 = t0 + t_step; + const int v_idx = (int)(t0 * values_count); + IM_ASSERT(v_idx >= 0 && v_idx < values_count); + const float v1 = values_getter(data, (v_idx + values_offset + 1) % values_count); + const ImVec2 p1 = ImVec2( t1, 1.0f - ImSaturate((v1 - scale_min) / (scale_max - scale_min)) ); + + // NB- Draw calls are merged together by the DrawList system. + if (plot_type == ImGuiPlotType_Lines) + window->DrawList->AddLine(ImLerp(inner_bb.Min, inner_bb.Max, p0), ImLerp(inner_bb.Min, inner_bb.Max, p1), v_hovered == v_idx ? col_hovered : col_base); + else if (plot_type == ImGuiPlotType_Histogram) + window->DrawList->AddRectFilled(ImLerp(inner_bb.Min, inner_bb.Max, p0), ImLerp(inner_bb.Min, inner_bb.Max, ImVec2(p1.x, 1.0f))+ImVec2(-1,0), v_hovered == v_idx ? col_hovered : col_base); + + t0 = t1; + p0 = p1; + } + + // Text overlay + if (overlay_text) + RenderTextClipped(ImVec2(frame_bb.Min.x, frame_bb.Min.y + style.FramePadding.y), frame_bb.Max, overlay_text, NULL, NULL, ImGuiAlign_Center); + + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, inner_bb.Min.y), label); +} + +struct ImGuiPlotArrayGetterData +{ + const float* Values; + int Stride; + + ImGuiPlotArrayGetterData(const float* values, int stride) { Values = values; Stride = stride; } +}; + +static float Plot_ArrayGetter(void* data, int idx) +{ + ImGuiPlotArrayGetterData* plot_data = (ImGuiPlotArrayGetterData*)data; + const float v = *(float*)(void*)((unsigned char*)plot_data->Values + (size_t)idx * plot_data->Stride); + return v; +} + +void ImGui::PlotLines(const char* label, const float* values, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) +{ + ImGuiPlotArrayGetterData data(values, stride); + PlotEx(ImGuiPlotType_Lines, label, &Plot_ArrayGetter, (void*)&data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); +} + +void ImGui::PlotLines(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) +{ + PlotEx(ImGuiPlotType_Lines, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); +} + +void ImGui::PlotHistogram(const char* label, const float* values, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) +{ + ImGuiPlotArrayGetterData data(values, stride); + PlotEx(ImGuiPlotType_Histogram, label, &Plot_ArrayGetter, (void*)&data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); +} + +void ImGui::PlotHistogram(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) +{ + PlotEx(ImGuiPlotType_Histogram, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); +} + +bool ImGui::Checkbox(const char* label, bool* v) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const ImVec2 label_size = CalcTextSize(label, NULL, true); + + const ImRect check_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(label_size.y + style.FramePadding.y*2, label_size.y + style.FramePadding.y*2)); + ItemSize(check_bb, style.FramePadding.y); + + ImRect total_bb = check_bb; + if (label_size.x > 0) + SameLine(0, style.ItemInnerSpacing.x); + const ImRect text_bb(window->DC.CursorPos + ImVec2(0,style.FramePadding.y), window->DC.CursorPos + ImVec2(0,style.FramePadding.y) + label_size); + if (label_size.x > 0) + { + ItemSize(ImVec2(text_bb.GetWidth(), check_bb.GetHeight()), style.FramePadding.y); + total_bb = ImRect(ImMin(check_bb.Min, text_bb.Min), ImMax(check_bb.Max, text_bb.Max)); + } + + if (!ItemAdd(total_bb, &id)) + return false; + + bool hovered, held; + bool pressed = ButtonBehavior(total_bb, id, &hovered, &held, true); + if (pressed) + *v = !(*v); + + RenderFrame(check_bb.Min, check_bb.Max, window->Color((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), true, style.FrameRounding); + if (*v) + { + const float check_sz = ImMin(check_bb.GetWidth(), check_bb.GetHeight()); + const float pad = ImMax(1.0f, (float)(int)(check_sz / 6.0f)); + window->DrawList->AddRectFilled(check_bb.Min+ImVec2(pad,pad), check_bb.Max-ImVec2(pad,pad), window->Color(ImGuiCol_CheckMark), style.FrameRounding); + } + + if (g.LogEnabled) + LogRenderedText(text_bb.GetTL(), *v ? "[x]" : "[ ]"); + RenderText(text_bb.GetTL(), label); + + return pressed; +} + +bool ImGui::CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value) +{ + bool v = (*flags & flags_value) ? true : false; + bool pressed = ImGui::Checkbox(label, &v); + if (v) + *flags |= flags_value; + else + *flags &= ~flags_value; + return pressed; +} + +bool ImGui::RadioButton(const char* label, bool active) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const ImVec2 label_size = CalcTextSize(label, NULL, true); + + const ImRect check_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(label_size.y + style.FramePadding.y*2-1, label_size.y + style.FramePadding.y*2-1)); + ItemSize(check_bb, style.FramePadding.y); + + ImRect total_bb = check_bb; + if (label_size.x > 0) + SameLine(0, style.ItemInnerSpacing.x); + const ImRect text_bb(window->DC.CursorPos + ImVec2(0, style.FramePadding.y), window->DC.CursorPos + ImVec2(0, style.FramePadding.y) + label_size); + if (label_size.x > 0) + { + ItemSize(ImVec2(text_bb.GetWidth(), check_bb.GetHeight()), style.FramePadding.y); + total_bb.Add(text_bb); + } + + if (!ItemAdd(total_bb, &id)) + return false; + + ImVec2 center = check_bb.GetCenter(); + center.x = (float)(int)center.x + 0.5f; + center.y = (float)(int)center.y + 0.5f; + const float radius = check_bb.GetHeight() * 0.5f; + + bool hovered, held; + bool pressed = ButtonBehavior(total_bb, id, &hovered, &held, true); + + window->DrawList->AddCircleFilled(center, radius, window->Color((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), 16); + if (active) + { + const float check_sz = ImMin(check_bb.GetWidth(), check_bb.GetHeight()); + const float pad = ImMax(1.0f, (float)(int)(check_sz / 6.0f)); + window->DrawList->AddCircleFilled(center, radius-pad, window->Color(ImGuiCol_CheckMark), 16); + } + + if (window->Flags & ImGuiWindowFlags_ShowBorders) + { + window->DrawList->AddCircle(center+ImVec2(1,1), radius, window->Color(ImGuiCol_BorderShadow), 16); + window->DrawList->AddCircle(center, radius, window->Color(ImGuiCol_Border), 16); + } + + if (g.LogEnabled) + LogRenderedText(text_bb.GetTL(), active ? "(x)" : "( )"); + RenderText(text_bb.GetTL(), label); + + return pressed; +} + +bool ImGui::RadioButton(const char* label, int* v, int v_button) +{ + const bool pressed = ImGui::RadioButton(label, *v == v_button); + if (pressed) + { + *v = v_button; + } + return pressed; +} + +static int InputTextCalcTextLenAndLineCount(const char* text_begin, const char** out_text_end) +{ + int line_count = 0; + const char* s = text_begin; + while (char c = *s++) // We are only matching for \n so we can ignore UTF-8 decoding + if (c == '\n') + line_count++; + s--; + if (s[0] != '\n' && s[0] != '\r') + line_count++; + *out_text_end = s; + return line_count; +} + +static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const ImWchar* text_end, const ImWchar** remaining, ImVec2* out_offset, bool stop_on_new_line) +{ + ImFont* font = GImGui->Font; + const float line_height = GImGui->FontSize; + const float scale = line_height / font->FontSize; + + ImVec2 text_size = ImVec2(0,0); + float line_width = 0.0f; + + const ImWchar* s = text_begin; + while (s < text_end) + { + unsigned int c = (unsigned int)(*s++); + if (c == '\n') + { + text_size.x = ImMax(text_size.x, line_width); + text_size.y += line_height; + line_width = 0.0f; + if (stop_on_new_line) + break; + continue; + } + if (c == '\r') + continue; + + const float char_width = font->GetCharAdvance((unsigned short)c) * scale; + line_width += char_width; + } + + if (text_size.x < line_width) + text_size.x = line_width; + + if (out_offset) + *out_offset = ImVec2(line_width, text_size.y + line_height); // offset allow for the possibility of sitting after a trailing \n + + if (line_width > 0 || text_size.y == 0.0f) // whereas size.y will ignore the trailing \n + text_size.y += line_height; + + if (remaining) + *remaining = s; + + return text_size; +} + +// Wrapper for stb_textedit.h to edit text (our wrapper is for: statically sized buffer, single-line, wchar characters. InputText converts between UTF-8 and wchar) +namespace ImGuiStb +{ + +static int STB_TEXTEDIT_STRINGLEN(const STB_TEXTEDIT_STRING* obj) { return obj->CurLenW; } +static ImWchar STB_TEXTEDIT_GETCHAR(const STB_TEXTEDIT_STRING* obj, int idx) { return obj->Text[idx]; } +static float STB_TEXTEDIT_GETWIDTH(STB_TEXTEDIT_STRING* obj, int line_start_idx, int char_idx) { ImWchar c = obj->Text[line_start_idx+char_idx]; if (c == '\n') return STB_TEXTEDIT_GETWIDTH_NEWLINE; return GImGui->Font->GetCharAdvance(c) * (GImGui->FontSize / GImGui->Font->FontSize); } +static int STB_TEXTEDIT_KEYTOTEXT(int key) { return key >= 0x10000 ? 0 : key; } +static ImWchar STB_TEXTEDIT_NEWLINE = '\n'; +static void STB_TEXTEDIT_LAYOUTROW(StbTexteditRow* r, STB_TEXTEDIT_STRING* obj, int line_start_idx) +{ + const ImWchar* text = obj->Text.Data; + const ImWchar* text_remaining = NULL; + const ImVec2 size = InputTextCalcTextSizeW(text + line_start_idx, text + obj->CurLenW, &text_remaining, NULL, true); + r->x0 = 0.0f; + r->x1 = size.x; + r->baseline_y_delta = size.y; + r->ymin = 0.0f; + r->ymax = size.y; + r->num_chars = (int)(text_remaining - (text + line_start_idx)); +} + +static bool is_separator(unsigned int c) { return c==',' || c==';' || c=='(' || c==')' || c=='{' || c=='}' || c=='[' || c==']' || c=='|'; } +#define STB_TEXTEDIT_IS_SPACE(CH) ( ImCharIsSpace((unsigned int)CH) || is_separator((unsigned int)CH) ) +static void STB_TEXTEDIT_DELETECHARS(STB_TEXTEDIT_STRING* obj, int pos, int n) +{ + ImWchar* dst = obj->Text.Data + pos; + + // We maintain our buffer length in both UTF-8 and wchar formats + obj->CurLenA -= ImTextCountUtf8BytesFromStr(dst, dst + n); + obj->CurLenW -= n; + + // Offset remaining text + const ImWchar* src = obj->Text.Data + pos + n; + while (ImWchar c = *src++) + *dst++ = c; + *dst = '\0'; +} + +static bool STB_TEXTEDIT_INSERTCHARS(STB_TEXTEDIT_STRING* obj, int pos, const ImWchar* new_text, int new_text_len) +{ + const int text_len = obj->CurLenW; + if (new_text_len + text_len + 1 > obj->Text.Size) + return false; + + const int new_text_len_utf8 = ImTextCountUtf8BytesFromStr(new_text, new_text + new_text_len); + if (new_text_len_utf8 + obj->CurLenA + 1 > obj->BufSizeA) + return false; + + ImWchar* text = obj->Text.Data; + if (pos != text_len) + memmove(text + pos + new_text_len, text + pos, (size_t)(text_len - pos) * sizeof(ImWchar)); + memcpy(text + pos, new_text, (size_t)new_text_len * sizeof(ImWchar)); + + obj->CurLenW += new_text_len; + obj->CurLenA += new_text_len_utf8; + obj->Text[obj->CurLenW] = '\0'; + + return true; +} + +// We don't use an enum so we can build even with conflicting symbols (if another user of stb_textedit.h leak their STB_TEXTEDIT_K_* symbols) +#define STB_TEXTEDIT_K_LEFT 0x10000 // keyboard input to move cursor left +#define STB_TEXTEDIT_K_RIGHT 0x10001 // keyboard input to move cursor right +#define STB_TEXTEDIT_K_UP 0x10002 // keyboard input to move cursor up +#define STB_TEXTEDIT_K_DOWN 0x10003 // keyboard input to move cursor down +#define STB_TEXTEDIT_K_LINESTART 0x10004 // keyboard input to move cursor to start of line +#define STB_TEXTEDIT_K_LINEEND 0x10005 // keyboard input to move cursor to end of line +#define STB_TEXTEDIT_K_TEXTSTART 0x10006 // keyboard input to move cursor to start of text +#define STB_TEXTEDIT_K_TEXTEND 0x10007 // keyboard input to move cursor to end of text +#define STB_TEXTEDIT_K_DELETE 0x10008 // keyboard input to delete selection or character under cursor +#define STB_TEXTEDIT_K_BACKSPACE 0x10009 // keyboard input to delete selection or character left of cursor +#define STB_TEXTEDIT_K_UNDO 0x1000A // keyboard input to perform undo +#define STB_TEXTEDIT_K_REDO 0x1000B // keyboard input to perform redo +#define STB_TEXTEDIT_K_WORDLEFT 0x1000C // keyboard input to move cursor left one word +#define STB_TEXTEDIT_K_WORDRIGHT 0x1000D // keyboard input to move cursor right one word +#define STB_TEXTEDIT_K_SHIFT 0x20000 + +#define STB_TEXTEDIT_IMPLEMENTATION +#include "stb_textedit.h" + +} + +void ImGuiTextEditState::OnKeyPressed(int key) +{ + stb_textedit_key(this, &StbState, key); + CursorFollow = true; + CursorAnimReset(); +} + +// Public API to manipulate UTF-8 text +// We expose UTF-8 to the user (unlike the STB_TEXTEDIT_* functions which are manipulating wchar) +void ImGuiTextEditCallbackData::DeleteChars(int pos, int bytes_count) +{ + char* dst = Buf + pos; + const char* src = Buf + pos + bytes_count; + while (char c = *src++) + *dst++ = c; + *dst = '\0'; + + BufDirty = true; + if (CursorPos + bytes_count >= pos) + CursorPos -= bytes_count; + else if (CursorPos >= pos) + CursorPos = pos; + SelectionStart = SelectionEnd = CursorPos; +} + +void ImGuiTextEditCallbackData::InsertChars(int pos, const char* new_text, const char* new_text_end) +{ + const int text_len = (int)strlen(Buf); + if (!new_text_end) + new_text_end = new_text + strlen(new_text); + const int new_text_len = (int)(new_text_end - new_text); + + if (new_text_len + text_len + 1 >= BufSize) + return; + + if (text_len != pos) + memmove(Buf + pos + new_text_len, Buf + pos, (size_t)(text_len - pos)); + memcpy(Buf + pos, new_text, (size_t)new_text_len * sizeof(char)); + Buf[text_len + new_text_len] = '\0'; + + BufDirty = true; + if (CursorPos >= pos) + CursorPos += new_text_len; + SelectionStart = SelectionEnd = CursorPos; +} + +// Return false to discard a character. +static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) +{ + unsigned int c = *p_char; + + if (c < 128 && c != ' ' && !isprint((int)(c & 0xFF))) + { + bool pass = false; + pass |= (c == '\n' && (flags & ImGuiInputTextFlags_Multiline)); + pass |= (c == '\t' && (flags & ImGuiInputTextFlags_AllowTabInput)); + if (!pass) + return false; + } + + if (c >= 0xE000 && c <= 0xF8FF) // Filter private Unicode range. I don't imagine anybody would want to input them. GLFW on OSX seems to send private characters for special keys like arrow keys. + return false; + + if (flags & (ImGuiInputTextFlags_CharsDecimal | ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase | ImGuiInputTextFlags_CharsNoBlank)) + { + if (flags & ImGuiInputTextFlags_CharsDecimal) + if (!(c >= '0' && c <= '9') && (c != '.') && (c != '-') && (c != '+') && (c != '*') && (c != '/')) + return false; + + if (flags & ImGuiInputTextFlags_CharsHexadecimal) + if (!(c >= '0' && c <= '9') && !(c >= 'a' && c <= 'f') && !(c >= 'A' && c <= 'F')) + return false; + + if (flags & ImGuiInputTextFlags_CharsUppercase) + if (c >= 'a' && c <= 'z') + *p_char = (c += (unsigned int)('A'-'a')); + + if (flags & ImGuiInputTextFlags_CharsNoBlank) + if (ImCharIsSpace(c)) + return false; + } + + if (flags & ImGuiInputTextFlags_CallbackCharFilter) + { + ImGuiTextEditCallbackData callback_data; + memset(&callback_data, 0, sizeof(ImGuiTextEditCallbackData)); + callback_data.EventFlag = ImGuiInputTextFlags_CallbackCharFilter; + callback_data.EventChar = (ImWchar)c; + callback_data.Flags = flags; + callback_data.UserData = user_data; + if (callback(&callback_data) != 0) + return false; + *p_char = callback_data.EventChar; + if (!callback_data.EventChar) + return false; + } + + return true; +} + +// Edit a string of text +bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2& size_arg, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + IM_ASSERT(!((flags & ImGuiInputTextFlags_CallbackHistory) && (flags & ImGuiInputTextFlags_Multiline))); // Can't use both together (they both use up/down keys) + IM_ASSERT(!((flags & ImGuiInputTextFlags_CallbackCompletion) && (flags & ImGuiInputTextFlags_AllowTabInput))); // Can't use both together (they both use tab key) + + ImGuiState& g = *GImGui; + const ImGuiIO& io = g.IO; + const ImGuiStyle& style = g.Style; + + const ImGuiID id = window->GetID(label); + const bool is_multiline = (flags & ImGuiInputTextFlags_Multiline) != 0; + + ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + ImVec2 size = CalcItemSize(size_arg, ImGui::CalcItemWidth(), is_multiline ? ImGui::GetTextLineHeight() * 8.0f : label_size.y); // Arbitrary default of 8 lines high for multi-line + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + size + style.FramePadding*2.0f); + const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? (style.ItemInnerSpacing.x + label_size.x) : 0.0f, 0.0f)); + + ImGuiWindow* draw_window = window; + if (is_multiline) + { + ImGui::BeginGroup(); + if (!ImGui::BeginChildFrame(id, frame_bb.GetSize())) + { + ImGui::EndChildFrame(); + ImGui::EndGroup(); + return false; + } + draw_window = GetCurrentWindow(); + draw_window->DC.CursorPos += style.FramePadding; + size.x -= draw_window->ScrollbarWidth(); + } + else + { + ItemSize(total_bb, style.FramePadding.y); + if (!ItemAdd(total_bb, &id)) + return false; + } + + // NB: we are only allowed to access 'edit_state' if we are the active widget. + ImGuiTextEditState& edit_state = g.InputTextState; + + const bool is_ctrl_down = io.KeyCtrl; + const bool is_shift_down = io.KeyShift; + const bool is_alt_down = io.KeyAlt; + const bool focus_requested = FocusableItemRegister(window, g.ActiveId == id, (flags & (ImGuiInputTextFlags_CallbackCompletion|ImGuiInputTextFlags_AllowTabInput)) == 0); // Using completion callback disable keyboard tabbing + const bool focus_requested_by_code = focus_requested && (window->FocusIdxAllCounter == window->FocusIdxAllRequestCurrent); + const bool focus_requested_by_tab = focus_requested && !focus_requested_by_code; + + const bool hovered = IsHovered(frame_bb, id); + if (hovered) + { + g.HoveredId = id; + g.MouseCursor = ImGuiMouseCursor_TextInput; + } + const bool user_clicked = hovered && io.MouseClicked[0]; + const bool user_scrolled = is_multiline && g.ActiveId == 0 && edit_state.Id == id && g.ActiveIdPreviousFrame == draw_window->GetID("#SCROLLY"); + + bool select_all = (g.ActiveId != id) && (flags & ImGuiInputTextFlags_AutoSelectAll) != 0; + if (focus_requested || user_clicked || user_scrolled) + { + if (g.ActiveId != id) + { + // Start edition + // Take a copy of the initial buffer value (both in original UTF-8 format and converted to wchar) + // From the moment we focused we are ignoring the content of 'buf' + edit_state.Text.resize(buf_size); // wchar count <= utf-8 count + edit_state.InitialText.resize(buf_size); // utf-8 + ImFormatString(edit_state.InitialText.Data, edit_state.InitialText.Size, "%s", buf); + const char* buf_end = NULL; + edit_state.CurLenW = ImTextStrFromUtf8(edit_state.Text.Data, edit_state.Text.Size, buf, NULL, &buf_end); + edit_state.CurLenA = (int)(buf_end - buf); // We can't get the result from ImFormatString() above because it is not UTF-8 aware. Here we'll cut off malformed UTF-8. + edit_state.InputCursorScreenPos = ImVec2(-1.f, -1.f); + edit_state.CursorAnimReset(); + + if (edit_state.Id != id) + { + edit_state.Id = id; + edit_state.ScrollX = 0.f; + stb_textedit_initialize_state(&edit_state.StbState, !is_multiline); + if (!is_multiline && focus_requested_by_code) + select_all = true; + } + else + { + // Recycle existing cursor/selection/undo stack but clamp position + // Note a single mouse click will override the cursor/position immediately by calling stb_textedit_click handler. + edit_state.StbState.cursor = ImMin(edit_state.StbState.cursor, edit_state.CurLenW); + edit_state.StbState.select_start = ImMin(edit_state.StbState.select_start, edit_state.CurLenW); + edit_state.StbState.select_end = ImMin(edit_state.StbState.select_end, edit_state.CurLenW); + } + if (flags & ImGuiInputTextFlags_AlwaysInsertMode) + edit_state.StbState.insert_mode = true; + if (!is_multiline && (focus_requested_by_tab || (user_clicked && is_ctrl_down))) + select_all = true; + } + SetActiveID(id, window); + FocusWindow(window); + } + else if (io.MouseClicked[0]) + { + // Release focus when we click outside + if (g.ActiveId == id) + SetActiveID(0); + } + + bool value_changed = false; + bool cancel_edit = false; + bool enter_pressed = false; + + if (g.ActiveId == id) + { + edit_state.BufSizeA = buf_size; + + // Although we are active we don't prevent mouse from hovering other elements unless we are interacting right now with the widget. + // Down the line we should have a cleaner concept of focused vs active in the library. + g.ActiveIdIsFocusedOnly = !io.MouseDown[0]; + + // Edit in progress + const float mouse_x = (g.IO.MousePos.x - frame_bb.Min.x - style.FramePadding.x) + edit_state.ScrollX; + const float mouse_y = (is_multiline ? (g.IO.MousePos.y - draw_window->DC.CursorPos.y - style.FramePadding.y) : (g.FontSize*0.5f)); + + if (select_all || (hovered && io.MouseDoubleClicked[0])) + { + edit_state.SelectAll(); + edit_state.SelectedAllMouseLock = true; + } + else if (io.MouseClicked[0] && !edit_state.SelectedAllMouseLock) + { + stb_textedit_click(&edit_state, &edit_state.StbState, mouse_x, mouse_y); + edit_state.CursorAnimReset(); + } + else if (io.MouseDown[0] && !edit_state.SelectedAllMouseLock) + { + stb_textedit_drag(&edit_state, &edit_state.StbState, mouse_x, mouse_y); + edit_state.CursorAnimReset(); + } + if (edit_state.SelectedAllMouseLock && !io.MouseDown[0]) + edit_state.SelectedAllMouseLock = false; + + if (g.IO.InputCharacters[0]) + { + // Process text input (before we check for Return because using some IME will effectively send a Return?) + for (int n = 0; n < IM_ARRAYSIZE(g.IO.InputCharacters) && g.IO.InputCharacters[n]; n++) + { + if (unsigned int c = (unsigned int)g.IO.InputCharacters[n]) + { + // Insert character if they pass filtering + if (!InputTextFilterCharacter(&c, flags, callback, user_data)) + continue; + edit_state.OnKeyPressed((int)c); + } + } + + // Consume characters + memset(g.IO.InputCharacters, 0, sizeof(g.IO.InputCharacters)); + } + + const int k_mask = (is_shift_down ? STB_TEXTEDIT_K_SHIFT : 0); + const bool is_ctrl_only = is_ctrl_down && !is_alt_down && !is_shift_down; + if (IsKeyPressedMap(ImGuiKey_LeftArrow)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_WORDLEFT | k_mask : STB_TEXTEDIT_K_LEFT | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_RightArrow)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_WORDRIGHT | k_mask : STB_TEXTEDIT_K_RIGHT | k_mask); } + else if (is_multiline && IsKeyPressedMap(ImGuiKey_UpArrow)) { if (is_ctrl_down) SetWindowScrollY(draw_window, draw_window->ScrollY - g.FontSize); else edit_state.OnKeyPressed(STB_TEXTEDIT_K_UP | k_mask); } + else if (is_multiline && IsKeyPressedMap(ImGuiKey_DownArrow)) { if (is_ctrl_down) SetWindowScrollY(draw_window, draw_window->ScrollY + g.FontSize); else edit_state.OnKeyPressed(STB_TEXTEDIT_K_DOWN| k_mask); } + else if (IsKeyPressedMap(ImGuiKey_Home)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_TEXTSTART | k_mask : STB_TEXTEDIT_K_LINESTART | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_End)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_TEXTEND | k_mask : STB_TEXTEDIT_K_LINEEND | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_Delete)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_DELETE | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_Backspace)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_BACKSPACE | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_Enter)) + { + bool ctrl_enter_for_new_line = (flags & ImGuiInputTextFlags_CtrlEnterForNewLine) != 0; + if (!is_multiline || (ctrl_enter_for_new_line && !is_ctrl_down) || (!ctrl_enter_for_new_line && is_ctrl_down)) + { + SetActiveID(0); + enter_pressed = true; + } + else // New line + { + unsigned int c = '\n'; + if (InputTextFilterCharacter(&c, flags, callback, user_data)) + edit_state.OnKeyPressed((int)c); + } + } + else if ((flags & ImGuiInputTextFlags_AllowTabInput) && IsKeyPressedMap(ImGuiKey_Tab) && !is_ctrl_down && !is_shift_down && !is_alt_down) + { + unsigned int c = '\t'; + if (InputTextFilterCharacter(&c, flags, callback, user_data)) + edit_state.OnKeyPressed((int)c); + } + else if (IsKeyPressedMap(ImGuiKey_Escape)) { SetActiveID(0); cancel_edit = true; } + else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_Z)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_UNDO); edit_state.ClearSelection(); } + else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_Y)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_REDO); edit_state.ClearSelection(); } + else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_A)) { edit_state.SelectAll(); edit_state.CursorFollow = true; } + else if (is_ctrl_only && (IsKeyPressedMap(ImGuiKey_X) || IsKeyPressedMap(ImGuiKey_C)) && (!is_multiline || edit_state.HasSelection())) + { + // Cut, Copy + const bool cut = IsKeyPressedMap(ImGuiKey_X); + if (cut && !edit_state.HasSelection()) + edit_state.SelectAll(); + + if (g.IO.SetClipboardTextFn) + { + const int ib = edit_state.HasSelection() ? ImMin(edit_state.StbState.select_start, edit_state.StbState.select_end) : 0; + const int ie = edit_state.HasSelection() ? ImMax(edit_state.StbState.select_start, edit_state.StbState.select_end) : edit_state.CurLenW; + edit_state.TempTextBuffer.resize((ie-ib) * 4 + 1); + ImTextStrToUtf8(edit_state.TempTextBuffer.Data, edit_state.TempTextBuffer.Size, edit_state.Text.Data+ib, edit_state.Text.Data+ie); + g.IO.SetClipboardTextFn(edit_state.TempTextBuffer.Data); + } + + if (cut) + { + edit_state.CursorFollow = true; + stb_textedit_cut(&edit_state, &edit_state.StbState); + } + } + else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_V)) + { + // Paste + if (g.IO.GetClipboardTextFn) + { + if (const char* clipboard = g.IO.GetClipboardTextFn()) + { + // Remove new-line from pasted buffer + const int clipboard_len = (int)strlen(clipboard); + ImWchar* clipboard_filtered = (ImWchar*)ImGui::MemAlloc((clipboard_len+1) * sizeof(ImWchar)); + int clipboard_filtered_len = 0; + for (const char* s = clipboard; *s; ) + { + unsigned int c; + s += ImTextCharFromUtf8(&c, s, NULL); + if (c == 0) + break; + if (c >= 0x10000 || !InputTextFilterCharacter(&c, flags, callback, user_data)) + continue; + clipboard_filtered[clipboard_filtered_len++] = (ImWchar)c; + } + clipboard_filtered[clipboard_filtered_len] = 0; + if (clipboard_filtered_len > 0) // If everything was filtered, ignore the pasting operation + { + stb_textedit_paste(&edit_state, &edit_state.StbState, clipboard_filtered, clipboard_filtered_len); + edit_state.CursorFollow = true; + } + ImGui::MemFree(clipboard_filtered); + } + } + } + + if (cancel_edit) + { + // Restore initial value + ImFormatString(buf, buf_size, "%s", edit_state.InitialText.Data); + value_changed = true; + } + else + { + // Apply new value immediately - copy modified buffer back + // Note that as soon as we can focus into the input box, the in-widget value gets priority over any underlying modification of the input buffer + // FIXME: We actually always render 'buf' in RenderTextScrolledClipped + // FIXME-OPT: CPU waste to do this every time the widget is active, should mark dirty state from the stb_textedit callbacks + edit_state.TempTextBuffer.resize(edit_state.Text.Size * 4); + ImTextStrToUtf8(edit_state.TempTextBuffer.Data, edit_state.TempTextBuffer.Size, edit_state.Text.Data, NULL); + + // User callback + if ((flags & (ImGuiInputTextFlags_CallbackCompletion | ImGuiInputTextFlags_CallbackHistory | ImGuiInputTextFlags_CallbackAlways)) != 0) + { + IM_ASSERT(callback != NULL); + + // The reason we specify the usage semantic (Completion/History) is that Completion needs to disable keyboard TABBING at the moment. + ImGuiInputTextFlags event_flag = 0; + ImGuiKey event_key = ImGuiKey_COUNT; + if ((flags & ImGuiInputTextFlags_CallbackCompletion) != 0 && IsKeyPressedMap(ImGuiKey_Tab)) + { + event_flag = ImGuiInputTextFlags_CallbackCompletion; + event_key = ImGuiKey_Tab; + } + else if ((flags & ImGuiInputTextFlags_CallbackHistory) != 0 && IsKeyPressedMap(ImGuiKey_UpArrow)) + { + event_flag = ImGuiInputTextFlags_CallbackHistory; + event_key = ImGuiKey_UpArrow; + } + else if ((flags & ImGuiInputTextFlags_CallbackHistory) != 0 && IsKeyPressedMap(ImGuiKey_DownArrow)) + { + event_flag = ImGuiInputTextFlags_CallbackHistory; + event_key = ImGuiKey_DownArrow; + } + + if (event_key != ImGuiKey_COUNT || (flags & ImGuiInputTextFlags_CallbackAlways) != 0) + { + ImGuiTextEditCallbackData callback_data; + callback_data.EventFlag = event_flag; + callback_data.EventKey = event_key; + callback_data.Buf = edit_state.TempTextBuffer.Data; + callback_data.BufSize = edit_state.BufSizeA; + callback_data.BufDirty = false; + callback_data.Flags = flags; + callback_data.UserData = user_data; + + // We have to convert from position from wchar to UTF-8 positions + ImWchar* text = edit_state.Text.Data; + const int utf8_cursor_pos = callback_data.CursorPos = ImTextCountUtf8BytesFromStr(text, text + edit_state.StbState.cursor); + const int utf8_selection_start = callback_data.SelectionStart = ImTextCountUtf8BytesFromStr(text, text + edit_state.StbState.select_start); + const int utf8_selection_end = callback_data.SelectionEnd = ImTextCountUtf8BytesFromStr(text, text + edit_state.StbState.select_end); + + // Call user code + callback(&callback_data); + + // Read back what user may have modified + IM_ASSERT(callback_data.Buf == edit_state.TempTextBuffer.Data); // Invalid to modify those fields + IM_ASSERT(callback_data.BufSize == edit_state.BufSizeA); + IM_ASSERT(callback_data.Flags == flags); + if (callback_data.CursorPos != utf8_cursor_pos) edit_state.StbState.cursor = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.CursorPos); + if (callback_data.SelectionStart != utf8_selection_start) edit_state.StbState.select_start = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.SelectionStart); + if (callback_data.SelectionEnd != utf8_selection_end) edit_state.StbState.select_end = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.SelectionEnd); + if (callback_data.BufDirty) + { + edit_state.CurLenW = ImTextStrFromUtf8(text, edit_state.Text.Size, edit_state.TempTextBuffer.Data, NULL); + edit_state.CurLenA = (int)strlen(edit_state.TempTextBuffer.Data); + edit_state.CursorAnimReset(); + } + } + } + + if (strcmp(edit_state.TempTextBuffer.Data, buf) != 0) + { + ImFormatString(buf, buf_size, "%s", edit_state.TempTextBuffer.Data); + value_changed = true; + } + } + } + + if (!is_multiline) + RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); + + ImVec2 render_pos = is_multiline ? draw_window->DC.CursorPos : frame_bb.Min + style.FramePadding; + + ImVec4 clip_rect(frame_bb.Min.x, frame_bb.Min.y, frame_bb.Min.x + size.x + style.FramePadding.x*2.0f, frame_bb.Min.y + size.y + style.FramePadding.y*2.0f); + ImVec2 text_size(0.f, 0.f); + if (g.ActiveId == id || (edit_state.Id == id && is_multiline && g.ActiveId == draw_window->GetID("#SCROLLY"))) + { + edit_state.CursorAnim += g.IO.DeltaTime; + + // We need to: + // - Display the text (this can be more easily clipped) + // - Handle scrolling, highlight selection, display cursor (those all requires some form of 1d->2d cursor position calculation) + // - Measure text height (for scrollbar) + // We are attempting to do most of that in one main pass to minimize the computation cost (non-negligible for large amount of text) + 2nd pass for selection rendering (we could merge them by an extra refactoring effort) + const ImWchar* text_begin = edit_state.Text.Data; + const ImWchar* text_end = text_begin + edit_state.CurLenW; + ImVec2 cursor_offset, select_start_offset; + + { + // Count lines + find lines numbers of cursor and select_start + int matches_remaining = 0; + int matches_line_no[2] = { -1, -999 }; + const ImWchar* matches_ptr[2] = { NULL, NULL }; + matches_ptr[0] = text_begin + edit_state.StbState.cursor; matches_remaining++; + if (edit_state.StbState.select_start != edit_state.StbState.select_end) + { + matches_ptr[1] = text_begin + ImMin(edit_state.StbState.select_start, edit_state.StbState.select_end); + matches_line_no[1] = -1; + matches_remaining++; + } + matches_remaining += is_multiline ? 1 : 0; // So that we never exit the loop until all lines are counted. + + int line_count = 0; + for (const ImWchar* s = text_begin; s < text_end+1; s++) + if ((*s) == '\n' || s == text_end) + { + line_count++; + if (matches_line_no[0] == -1 && s >= matches_ptr[0]) { matches_line_no[0] = line_count; if (--matches_remaining <= 0) break; } + if (matches_line_no[1] == -1 && s >= matches_ptr[1]) { matches_line_no[1] = line_count; if (--matches_remaining <= 0) break; } + } + + // Calculate 2d position + IM_ASSERT(matches_line_no[0] != -1); + cursor_offset.x = InputTextCalcTextSizeW(ImStrbolW(matches_ptr[0], text_begin), matches_ptr[0]).x; + cursor_offset.y = matches_line_no[0] * g.FontSize; + if (matches_line_no[1] >= 0) + { + select_start_offset.x = InputTextCalcTextSizeW(ImStrbolW(matches_ptr[1], text_begin), matches_ptr[1]).x; + select_start_offset.y = matches_line_no[1] * g.FontSize; + } + + // Calculate text height + if (is_multiline) + text_size = ImVec2(size.x, line_count * g.FontSize); + } + + // Scroll + if (edit_state.CursorFollow) + { + // Horizontal scroll in chunks of quarter width + if (!(flags & ImGuiInputTextFlags_NoHorizontalScroll)) + { + const float scroll_increment_x = size.x * 0.25f; + if (cursor_offset.x < edit_state.ScrollX) + edit_state.ScrollX = ImMax(0.0f, cursor_offset.x - scroll_increment_x); + else if (cursor_offset.x - size.x >= edit_state.ScrollX) + edit_state.ScrollX = cursor_offset.x - size.x + scroll_increment_x; + } + else + { + edit_state.ScrollX = 0.0f; + } + + // Vertical scroll + if (is_multiline) + { + float scroll_y = draw_window->ScrollY; + if (cursor_offset.y - g.FontSize < scroll_y) + scroll_y = ImMax(0.0f, cursor_offset.y - g.FontSize); + else if (cursor_offset.y - size.y >= scroll_y) + scroll_y = cursor_offset.y - size.y; + draw_window->DC.CursorPos.y += (draw_window->ScrollY - scroll_y); // To avoid a frame of lag + draw_window->ScrollY = scroll_y; + render_pos.y = draw_window->DC.CursorPos.y; + } + } + edit_state.CursorFollow = false; + ImVec2 render_scroll = ImVec2(edit_state.ScrollX, 0.0f); + + // Draw selection + if (edit_state.StbState.select_start != edit_state.StbState.select_end) + { + const ImWchar* text_selected_begin = text_begin + ImMin(edit_state.StbState.select_start, edit_state.StbState.select_end); + const ImWchar* text_selected_end = text_begin + ImMax(edit_state.StbState.select_start, edit_state.StbState.select_end); + + float bg_offy_up = is_multiline ? 0.0f : -1.0f; // FIXME: those offsets should be part of the style? they don't play so well with multi-line selection. + float bg_offy_dn = is_multiline ? 0.0f : 2.0f; + ImU32 bg_color = draw_window->Color(ImGuiCol_TextSelectedBg); + ImVec2 rect_pos = render_pos + select_start_offset - render_scroll; + for (const ImWchar* p = text_selected_begin; p < text_selected_end; ) + { + if (rect_pos.y > clip_rect.w + g.FontSize) + break; + if (rect_pos.y < clip_rect.y) + { + while (p < text_selected_end) + if (*p++ == '\n') + break; + } + else + { + ImVec2 rect_size = InputTextCalcTextSizeW(p, text_selected_end, &p, NULL, true); + if (rect_size.x <= 0.0f) rect_size.x = (float)(int)(g.Font->GetCharAdvance((unsigned short)' ') * 0.50f); // So we can see selected empty lines + ImRect rect(rect_pos + ImVec2(0.0f, bg_offy_up - g.FontSize), rect_pos +ImVec2(rect_size.x, bg_offy_dn)); + rect.Clip(clip_rect); + if (rect.Overlaps(clip_rect)) + draw_window->DrawList->AddRectFilled(rect.Min, rect.Max, bg_color); + } + rect_pos.x = render_pos.x - render_scroll.x; + rect_pos.y += g.FontSize; + } + } + + draw_window->DrawList->AddText(g.Font, g.FontSize, render_pos - render_scroll, draw_window->Color(ImGuiCol_Text), buf, buf+edit_state.CurLenA, 0.0f, is_multiline ? NULL : &clip_rect); + + // Draw blinking cursor + ImVec2 cursor_screen_pos = render_pos + cursor_offset - render_scroll; + bool cursor_is_visible = (g.InputTextState.CursorAnim <= 0.0f) || fmodf(g.InputTextState.CursorAnim, 1.20f) <= 0.80f; + if (cursor_is_visible) + draw_window->DrawList->AddLine(cursor_screen_pos + ImVec2(0.0f,-g.FontSize+0.5f), cursor_screen_pos + ImVec2(0.0f,-1.5f), window->Color(ImGuiCol_Text)); + + // Notify OS of text input position for advanced IME + if (io.ImeSetInputScreenPosFn && ImLengthSqr(edit_state.InputCursorScreenPos - cursor_screen_pos) > 0.0001f) + io.ImeSetInputScreenPosFn((int)cursor_screen_pos.x - 1, (int)(cursor_screen_pos.y - g.FontSize)); // -1 x offset so that Windows IME can cover our cursor. Bit of an extra nicety. + + edit_state.InputCursorScreenPos = cursor_screen_pos; + } + else + { + // Render text only + const char* buf_end = NULL; + if (is_multiline) + text_size = ImVec2(size.x, InputTextCalcTextLenAndLineCount(buf, &buf_end) * g.FontSize); // We don't need width + draw_window->DrawList->AddText(g.Font, g.FontSize, render_pos, draw_window->Color(ImGuiCol_Text), buf, buf_end, 0.0f, is_multiline ? NULL : &clip_rect); + } + + if (is_multiline) + { + ImGui::Dummy(text_size + ImVec2(0.0f, g.FontSize)); // Always add room to scroll an extra line + ImGui::EndChildFrame(); + ImGui::EndGroup(); + } + + // Log as text + if (g.LogEnabled) + LogRenderedText(render_pos, buf, NULL); + + if (label_size.x > 0) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + if ((flags & ImGuiInputTextFlags_EnterReturnsTrue) != 0) + return enter_pressed; + else + return value_changed; +} + +bool ImGui::InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) +{ + IM_ASSERT(!(flags & ImGuiInputTextFlags_Multiline)); // call InputTextMultiline() + bool ret = InputTextEx(label, buf, (int)buf_size, ImVec2(0,0), flags, callback, user_data); + return ret; +} + +bool ImGui::InputTextMultiline(const char* label, char* buf, size_t buf_size, const ImVec2& size, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) +{ + bool ret = InputTextEx(label, buf, (int)buf_size, size, flags | ImGuiInputTextFlags_Multiline, callback, user_data); + return ret; +} + +// NB: scalar_format here must be a simple "%xx" format string with no prefix/suffix (unlike the Drag/Slider functions "display_format" argument) +bool ImGui::InputScalarEx(const char* label, ImGuiDataType data_type, void* data_ptr, void* step_ptr, void* step_fast_ptr, const char* scalar_format, ImGuiInputTextFlags extra_flags) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const float w = ImGui::CalcItemWidth(); + const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); + + ImGui::BeginGroup(); + ImGui::PushID(label); + const ImVec2 button_sz = ImVec2(g.FontSize, g.FontSize) + style.FramePadding * 2; + if (step_ptr) + ImGui::PushItemWidth(ImMax(1.0f, w - (button_sz.x + style.ItemInnerSpacing.x)*2)); + + char buf[64]; + DataTypeFormatString(data_type, data_ptr, scalar_format, buf, IM_ARRAYSIZE(buf)); + + bool value_changed = false; + if (!(extra_flags & ImGuiInputTextFlags_CharsHexadecimal)) + extra_flags |= ImGuiInputTextFlags_CharsDecimal; + extra_flags |= ImGuiInputTextFlags_AutoSelectAll; + if (ImGui::InputText("", buf, IM_ARRAYSIZE(buf), extra_flags)) + { + DataTypeApplyOpFromText(buf, GImGui->InputTextState.InitialText.begin(), data_type, data_ptr, scalar_format); + value_changed = true; + } + + // Step buttons + if (step_ptr) + { + ImGui::PopItemWidth(); + ImGui::SameLine(0, style.ItemInnerSpacing.x); + if (ButtonEx("-", button_sz, ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups)) + { + DataTypeApplyOp(data_type, '-', data_ptr, g.IO.KeyCtrl && step_fast_ptr ? step_fast_ptr : step_ptr); + value_changed = true; + } + ImGui::SameLine(0, style.ItemInnerSpacing.x); + if (ButtonEx("+", button_sz, ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups)) + { + DataTypeApplyOp(data_type, '+', data_ptr, g.IO.KeyCtrl && step_fast_ptr ? step_fast_ptr : step_ptr); + value_changed = true; + } + } + ImGui::PopID(); + + if (label_size.x > 0) + { + ImGui::SameLine(0, style.ItemInnerSpacing.x); + RenderText(ImVec2(window->DC.CursorPos.x, window->DC.CursorPos.y + style.FramePadding.y), label); + ItemSize(label_size, style.FramePadding.y); + } + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::InputFloat(const char* label, float* v, float step, float step_fast, int decimal_precision, ImGuiInputTextFlags extra_flags) +{ + char display_format[16]; + if (decimal_precision < 0) + strcpy(display_format, "%f"); // Ideally we'd have a minimum decimal precision of 1 to visually denote that this is a float, while hiding non-significant digits? %f doesn't have a minimum of 1 + else + ImFormatString(display_format, 16, "%%%df", decimal_precision); + return InputScalarEx(label, ImGuiDataType_Float, (void*)v, (void*)(step>0.0f ? &step : NULL), (void*)(step_fast>0.0f ? &step_fast : NULL), display_format, extra_flags); +} + +bool ImGui::InputInt(const char* label, int* v, int step, int step_fast, ImGuiInputTextFlags extra_flags) +{ + // Hexadecimal input provided as a convenience but the flag name is awkward. Typically you'd use InputText() to parse your own data, if you want to handle prefixes. + const char* scalar_format = (extra_flags & ImGuiInputTextFlags_CharsHexadecimal) ? "%08X" : "%d"; + return InputScalarEx(label, ImGuiDataType_Int, (void*)v, (void*)(step>0.0f ? &step : NULL), (void*)(step_fast>0.0f ? &step_fast : NULL), scalar_format, extra_flags); +} + +bool ImGui::InputFloatN(const char* label, float* v, int components, int decimal_precision, ImGuiInputTextFlags extra_flags) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::InputFloat("##v", &v[i], 0, 0, decimal_precision, extra_flags); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.CurrentLineTextBaseOffset, g.Style.FramePadding.y); + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::InputFloat2(const char* label, float v[2], int decimal_precision, ImGuiInputTextFlags extra_flags) +{ + return InputFloatN(label, v, 2, decimal_precision, extra_flags); +} + +bool ImGui::InputFloat3(const char* label, float v[3], int decimal_precision, ImGuiInputTextFlags extra_flags) +{ + return InputFloatN(label, v, 3, decimal_precision, extra_flags); +} + +bool ImGui::InputFloat4(const char* label, float v[4], int decimal_precision, ImGuiInputTextFlags extra_flags) +{ + return InputFloatN(label, v, 4, decimal_precision, extra_flags); +} + +bool ImGui::InputIntN(const char* label, int* v, int components, ImGuiInputTextFlags extra_flags) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::InputInt("##v", &v[i], 0, 0, extra_flags); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.CurrentLineTextBaseOffset, g.Style.FramePadding.y); + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::InputInt2(const char* label, int v[2], ImGuiInputTextFlags extra_flags) +{ + return InputIntN(label, v, 2, extra_flags); +} + +bool ImGui::InputInt3(const char* label, int v[3], ImGuiInputTextFlags extra_flags) +{ + return InputIntN(label, v, 3, extra_flags); +} + +bool ImGui::InputInt4(const char* label, int v[4], ImGuiInputTextFlags extra_flags) +{ + return InputIntN(label, v, 4, extra_flags); +} + +static bool Items_ArrayGetter(void* data, int idx, const char** out_text) +{ + const char** items = (const char**)data; + if (out_text) + *out_text = items[idx]; + return true; +} + +static bool Items_SingleStringGetter(void* data, int idx, const char** out_text) +{ + // FIXME-OPT: we could pre-compute the indices to fasten this. But only 1 active combo means the waste is limited. + const char* items_separated_by_zeros = (const char*)data; + int items_count = 0; + const char* p = items_separated_by_zeros; + while (*p) + { + if (idx == items_count) + break; + p += strlen(p) + 1; + items_count++; + } + if (!*p) + return false; + if (out_text) + *out_text = p; + return true; +} + +// Combo box helper allowing to pass an array of strings. +bool ImGui::Combo(const char* label, int* current_item, const char** items, int items_count, int height_in_items) +{ + const bool value_changed = Combo(label, current_item, Items_ArrayGetter, (void*)items, items_count, height_in_items); + return value_changed; +} + +// Combo box helper allowing to pass all items in a single string. +bool ImGui::Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items) +{ + int items_count = 0; + const char* p = items_separated_by_zeros; // FIXME-OPT: Avoid computing this, or at least only when combo is open + while (*p) + { + p += strlen(p) + 1; + items_count++; + } + bool value_changed = Combo(label, current_item, Items_SingleStringGetter, (void*)items_separated_by_zeros, items_count, height_in_items); + return value_changed; +} + +// Combo box function. +bool ImGui::Combo(const char* label, int* current_item, bool (*items_getter)(void*, int, const char**), void* data, int items_count, int height_in_items) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const float w = ImGui::CalcItemWidth(); + + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); + const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + ItemSize(total_bb, style.FramePadding.y); + if (!ItemAdd(total_bb, &id)) + return false; + + const float arrow_size = (g.FontSize + style.FramePadding.x * 2.0f); + const bool hovered = IsHovered(frame_bb, id); + + const ImRect value_bb(frame_bb.Min, frame_bb.Max - ImVec2(arrow_size, 0.0f)); + RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); + RenderFrame(ImVec2(frame_bb.Max.x-arrow_size, frame_bb.Min.y), frame_bb.Max, window->Color(hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button), true, style.FrameRounding); // FIXME-ROUNDING + RenderCollapseTriangle(ImVec2(frame_bb.Max.x-arrow_size, frame_bb.Min.y) + style.FramePadding, true); + + if (*current_item >= 0 && *current_item < items_count) + { + const char* item_text; + if (items_getter(data, *current_item, &item_text)) + RenderTextClipped(frame_bb.Min + style.FramePadding, value_bb.Max, item_text, NULL, NULL); + } + + if (label_size.x > 0) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + bool menu_toggled = false; + if (hovered) + { + g.HoveredId = id; + if (g.IO.MouseClicked[0]) + { + SetActiveID(0); + if (IsPopupOpen(id)) + { + ClosePopup(id); + } + else + { + FocusWindow(window); + ImGui::OpenPopup(label); + menu_toggled = true; + } + } + } + + bool value_changed = false; + if (IsPopupOpen(id)) + { + // Size default to hold ~7 items + if (height_in_items < 0) + height_in_items = 7; + + float popup_height = (label_size.y + style.ItemSpacing.y) * ImMin(items_count, height_in_items) + (style.FramePadding.y * 3); + ImRect popup_rect(ImVec2(frame_bb.Min.x, frame_bb.Max.y), ImVec2(frame_bb.Max.x, frame_bb.Max.y + popup_height)); + popup_rect.Max.y = ImMin(popup_rect.Max.y, g.IO.DisplaySize.y - style.DisplaySafeAreaPadding.y); // Adhoc height limit for Combo. Ideally should be handled in Begin() along with other popups size, we want to have the possibility of moving the popup above as well. + ImGui::SetNextWindowPos(popup_rect.Min); + ImGui::SetNextWindowSize(popup_rect.GetSize()); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, style.FramePadding); + + const ImGuiWindowFlags flags = ImGuiWindowFlags_ComboBox | ((window->Flags & ImGuiWindowFlags_ShowBorders) ? ImGuiWindowFlags_ShowBorders : 0); + if (BeginPopupEx(label, flags)) + { + // Display items + ImGui::Spacing(); + for (int i = 0; i < items_count; i++) + { + ImGui::PushID((void*)(intptr_t)i); + const bool item_selected = (i == *current_item); + const char* item_text; + if (!items_getter(data, i, &item_text)) + item_text = "*Unknown item*"; + if (ImGui::Selectable(item_text, item_selected)) + { + SetActiveID(0); + value_changed = true; + *current_item = i; + } + if (item_selected && menu_toggled) + ImGui::SetScrollHere(); + ImGui::PopID(); + } + ImGui::EndPopup(); + } + ImGui::PopStyleVar(); + } + return value_changed; +} + +// Tip: pass an empty label (e.g. "##dummy") then you can use the space to draw other text or image. +// But you need to make sure the ID is unique, e.g. enclose calls in PushID/PopID. +bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags flags, const ImVec2& size_arg) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + + if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsCount > 1) + PopClipRect(); + + ImGuiID id = window->GetID(label); + ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + ImVec2 size(size_arg.x != 0.0f ? size_arg.x : label_size.x, size_arg.y != 0.0f ? size_arg.y : label_size.y); + ImVec2 pos = window->DC.CursorPos; + pos.y += window->DC.CurrentLineTextBaseOffset; + ImRect bb(pos, pos + size); + ItemSize(bb); + + // Fill horizontal space. + ImVec2 window_padding = window->WindowPadding; + float max_x = (flags & ImGuiSelectableFlags_SpanAllColumns) ? ImGui::GetWindowContentRegionMax().x : ImGui::GetContentRegionMax().x; + float w_draw = ImMax(label_size.x, window->Pos.x + max_x - window_padding.x - window->DC.CursorPos.x); + ImVec2 size_draw((size_arg.x != 0 && !(flags & ImGuiSelectableFlags_DrawFillAvailWidth)) ? size_arg.x : w_draw, size_arg.y != 0.0f ? size_arg.y : size.y); + ImRect bb_with_spacing(pos, pos + size_draw); + if (size_arg.x == 0.0f || (flags & ImGuiSelectableFlags_DrawFillAvailWidth)) + bb_with_spacing.Max.x += window_padding.x; + + // Selectables are tightly packed together, we extend the box to cover spacing between selectable. + float spacing_L = (float)(int)(style.ItemSpacing.x * 0.5f); + float spacing_U = (float)(int)(style.ItemSpacing.y * 0.5f); + float spacing_R = style.ItemSpacing.x - spacing_L; + float spacing_D = style.ItemSpacing.y - spacing_U; + bb_with_spacing.Min.x -= spacing_L; + bb_with_spacing.Min.y -= spacing_U; + bb_with_spacing.Max.x += spacing_R; + bb_with_spacing.Max.y += spacing_D; + if (!ItemAdd(bb_with_spacing, &id)) + { + if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsCount > 1) + PushColumnClipRect(); + return false; + } + + ImGuiButtonFlags button_flags = 0; + if (flags & ImGuiSelectableFlags_Menu) button_flags |= ImGuiButtonFlags_PressedOnClick; + if (flags & ImGuiSelectableFlags_MenuItem) button_flags |= ImGuiButtonFlags_PressedOnClick|ImGuiButtonFlags_PressedOnRelease; + if (flags & ImGuiSelectableFlags_Disabled) button_flags |= ImGuiButtonFlags_Disabled; + bool hovered, held; + bool pressed = ButtonBehavior(bb_with_spacing, id, &hovered, &held, true, button_flags); + if (flags & ImGuiSelectableFlags_Disabled) + selected = false; + + // Render + if (hovered || selected) + { + const ImU32 col = window->Color((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); + RenderFrame(bb_with_spacing.Min, bb_with_spacing.Max, col, false, 0.0f); + } + + if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsCount > 1) + { + PushColumnClipRect(); + bb_with_spacing.Max.x -= (ImGui::GetContentRegionMax().x - max_x); + } + + if (flags & ImGuiSelectableFlags_Disabled) ImGui::PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]); + RenderTextClipped(bb.Min, bb_with_spacing.Max, label, NULL, &label_size); + if (flags & ImGuiSelectableFlags_Disabled) ImGui::PopStyleColor(); + + // Automatically close popups + if (pressed && !(flags & ImGuiSelectableFlags_DontClosePopups) && (window->Flags & ImGuiWindowFlags_Popup)) + ImGui::CloseCurrentPopup(); + return pressed; +} + +bool ImGui::Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags flags, const ImVec2& size_arg) +{ + if (ImGui::Selectable(label, *p_selected, flags, size_arg)) + { + *p_selected = !*p_selected; + return true; + } + return false; +} + +// Helper to calculate the size of a listbox and display a label on the right. +// Tip: To have a list filling the entire window width, PushItemWidth(-1) and pass an empty label "##empty" +bool ImGui::ListBoxHeader(const char* label, const ImVec2& size_arg) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + const ImGuiStyle& style = ImGui::GetStyle(); + const ImGuiID id = ImGui::GetID(label); + const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + + // Size default to hold ~7 items. Fractional number of items helps seeing that we can scroll down/up without looking at scrollbar. + ImVec2 size = CalcItemSize(size_arg, ImGui::CalcItemWidth() + style.FramePadding.x * 2.0f, ImGui::GetTextLineHeightWithSpacing() * 7.4f + style.ItemSpacing.y); + ImVec2 frame_size = ImVec2(size.x, ImMax(size.y, label_size.y)); + ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + frame_size); + ImRect bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + window->DC.LastItemRect = bb; + + ImGui::BeginGroup(); + if (label_size.x > 0) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + ImGui::BeginChildFrame(id, frame_bb.GetSize()); + return true; +} + +bool ImGui::ListBoxHeader(const char* label, int items_count, int height_in_items) +{ + // Size default to hold ~7 items. Fractional number of items helps seeing that we can scroll down/up without looking at scrollbar. + // However we don't add +0.40f if items_count <= height_in_items. It is slightly dodgy, because it means a dynamic list of items will make the widget resize occasionally when it crosses that size. + // I am expecting that someone will come and complain about this behavior in a remote future, then we can advise on a better solution. + if (height_in_items < 0) + height_in_items = ImMin(items_count, 7); + float height_in_items_f = height_in_items < items_count ? (height_in_items + 0.40f) : (height_in_items + 0.00f); + + // We include ItemSpacing.y so that a list sized for the exact number of items doesn't make a scrollbar appears. We could also enforce that by passing a flag to BeginChild(). + ImVec2 size; + size.x = 0.0f; + size.y = ImGui::GetTextLineHeightWithSpacing() * height_in_items_f + ImGui::GetStyle().ItemSpacing.y; + return ImGui::ListBoxHeader(label, size); +} + +void ImGui::ListBoxFooter() +{ + ImGuiWindow* parent_window = GetParentWindow(); + const ImRect bb = parent_window->DC.LastItemRect; + const ImGuiStyle& style = ImGui::GetStyle(); + + ImGui::EndChildFrame(); + + // Redeclare item size so that it includes the label (we have stored the full size in LastItemRect) + // We call SameLine() to restore DC.CurrentLine* data + ImGui::SameLine(); + parent_window->DC.CursorPos = bb.Min; + ItemSize(bb, style.FramePadding.y); + ImGui::EndGroup(); +} + +bool ImGui::ListBox(const char* label, int* current_item, const char** items, int items_count, int height_items) +{ + const bool value_changed = ListBox(label, current_item, Items_ArrayGetter, (void*)items, items_count, height_items); + return value_changed; +} + +bool ImGui::ListBox(const char* label, int* current_item, bool (*items_getter)(void*, int, const char**), void* data, int items_count, int height_in_items) +{ + if (!ImGui::ListBoxHeader(label, items_count, height_in_items)) + return false; + + // Assume all items have even height (= 1 line of text). If you need items of different or variable sizes you can create a custom version of ListBox() in your code without using the clipper. + bool value_changed = false; + ImGuiListClipper clipper(items_count, ImGui::GetTextLineHeightWithSpacing()); + for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) + { + const bool item_selected = (i == *current_item); + const char* item_text; + if (!items_getter(data, i, &item_text)) + item_text = "*Unknown item*"; + + ImGui::PushID(i); + if (ImGui::Selectable(item_text, item_selected)) + { + *current_item = i; + value_changed = true; + } + ImGui::PopID(); + } + clipper.End(); + ImGui::ListBoxFooter(); + return value_changed; +} + +bool ImGui::MenuItem(const char* label, const char* shortcut, bool selected, bool enabled) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + ImVec2 pos = window->DC.CursorPos; + ImVec2 label_size = CalcTextSize(label, NULL, true); + ImVec2 shortcut_size = shortcut ? CalcTextSize(shortcut, NULL) : ImVec2(0.0f, 0.0f); + float w = window->MenuColumns.DeclColumns(label_size.x, shortcut_size.x, (float)(int)(g.FontSize * 1.20f)); // Feedback for next frame + float extra_w = ImMax(0.0f, ImGui::GetContentRegionAvail().x - w); + + bool pressed = ImGui::Selectable(label, false, ImGuiSelectableFlags_MenuItem | ImGuiSelectableFlags_DrawFillAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f)); + if (shortcut_size.x > 0.0f) + { + ImGui::PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]); + RenderText(pos + ImVec2(window->MenuColumns.Pos[1] + extra_w, 0.0f), shortcut, NULL, false); + ImGui::PopStyleColor(); + } + + if (selected) + RenderCheckMark(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.20f, 0.0f), window->Color(ImGuiCol_Text)); + + return pressed; +} + +bool ImGui::MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled) +{ + if (ImGui::MenuItem(label, shortcut, p_selected ? *p_selected : false, enabled)) + { + if (p_selected) + *p_selected = !*p_selected; + return true; + } + return false; +} + +bool ImGui::BeginMainMenuBar() +{ + ImGuiState& g = *GImGui; + ImGui::SetNextWindowPos(ImVec2(0.0f, 0.0f)); + ImGui::SetNextWindowSize(ImVec2(g.IO.DisplaySize.x, g.FontBaseSize + g.Style.FramePadding.y * 2.0f)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); + ImGui::PushStyleVar(ImGuiStyleVar_WindowMinSize, ImVec2(0,0)); + if (!ImGui::Begin("##MainMenuBar", NULL, ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_MenuBar) + || !ImGui::BeginMenuBar()) + { + ImGui::End(); + ImGui::PopStyleVar(2); + return false; + } + g.CurrentWindow->DC.MenuBarOffsetX += g.Style.DisplaySafeAreaPadding.x; + return true; +} + +void ImGui::EndMainMenuBar() +{ + ImGui::EndMenuBar(); + ImGui::End(); + ImGui::PopStyleVar(2); +} + +bool ImGui::BeginMenuBar() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + if (!(window->Flags & ImGuiWindowFlags_MenuBar)) + return false; + + IM_ASSERT(!window->DC.MenuBarAppending); + ImGui::BeginGroup(); // Save position + ImGui::PushID("##menubar"); + ImRect rect = window->MenuBarRect(); + PushClipRect(ImVec4(rect.Min.x+0.5f, rect.Min.y-0.5f, rect.Max.x+0.5f, rect.Max.y-1.5f), false); + window->DC.CursorPos = ImVec2(rect.Min.x + window->DC.MenuBarOffsetX, rect.Min.y);// + g.Style.FramePadding.y); + window->DC.LayoutType = ImGuiLayoutType_Horizontal; + window->DC.MenuBarAppending = true; + ImGui::AlignFirstTextHeightToWidgets(); + return true; +} + +void ImGui::EndMenuBar() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + IM_ASSERT(window->Flags & ImGuiWindowFlags_MenuBar); + IM_ASSERT(window->DC.MenuBarAppending); + PopClipRect(); + ImGui::PopID(); + window->DC.MenuBarOffsetX = window->DC.CursorPos.x - window->MenuBarRect().Min.x; + window->DC.GroupStack.back().AdvanceCursor = false; + ImGui::EndGroup(); + window->DC.LayoutType = ImGuiLayoutType_Vertical; + window->DC.MenuBarAppending = false; +} + +bool ImGui::BeginMenu(const char* label, bool enabled) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + + ImVec2 label_size = CalcTextSize(label, NULL, true); + ImGuiWindow* backed_focused_window = g.FocusedWindow; + + bool pressed; + bool opened = IsPopupOpen(id); + bool menuset_opened = !(window->Flags & ImGuiWindowFlags_Popup) && (g.OpenedPopupStack.Size > g.CurrentPopupStack.Size && g.OpenedPopupStack[g.CurrentPopupStack.Size].ParentMenuSet == window->GetID("##menus")); + if (menuset_opened) + g.FocusedWindow = window; + + ImVec2 popup_pos, pos = window->DC.CursorPos; + if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) + { + popup_pos = ImVec2(pos.x - window->WindowPadding.x, pos.y - style.FramePadding.y + window->MenuBarHeight()); + window->DC.CursorPos.x += (float)(int)(style.ItemSpacing.x * 0.5f); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, style.ItemSpacing * 2.0f); + float w = label_size.x; + pressed = ImGui::Selectable(label, opened, ImGuiSelectableFlags_Menu | ImGuiSelectableFlags_DontClosePopups | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f)); + ImGui::PopStyleVar(); + ImGui::SameLine(); + window->DC.CursorPos.x += (float)(int)(style.ItemSpacing.x * 0.5f); + } + else + { + popup_pos = ImVec2(pos.x, pos.y - style.WindowPadding.y); + float w = window->MenuColumns.DeclColumns(label_size.x, 0.0f, (float)(int)(g.FontSize * 1.20f)); // Feedback to next frame + float extra_w = ImMax(0.0f, ImGui::GetContentRegionAvail().x - w); + pressed = ImGui::Selectable(label, opened, ImGuiSelectableFlags_Menu | ImGuiSelectableFlags_DontClosePopups | ImGuiSelectableFlags_DrawFillAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f)); + if (!enabled) ImGui::PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]); + RenderCollapseTriangle(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.20f, 0.0f), false); + if (!enabled) ImGui::PopStyleColor(); + } + + bool hovered = enabled && IsHovered(window->DC.LastItemRect, id); + if (menuset_opened) + g.FocusedWindow = backed_focused_window; + + bool want_open = false, want_close = false; + if (window->Flags & (ImGuiWindowFlags_Popup|ImGuiWindowFlags_ChildMenu)) + { + // Implement http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown to avoid using timers so menus feel more reactive. + bool moving_within_opened_triangle = false; + if (g.HoveredWindow == window && g.OpenedPopupStack.Size > g.CurrentPopupStack.Size && g.OpenedPopupStack[g.CurrentPopupStack.Size].ParentWindow == window) + { + if (ImGuiWindow* next_window = g.OpenedPopupStack[g.CurrentPopupStack.Size].Window) + { + ImRect next_window_rect = next_window->Rect(); + ImVec2 ta = g.IO.MousePos - g.IO.MouseDelta; + ImVec2 tb = (window->Pos.x < next_window->Pos.x) ? next_window_rect.GetTL() : next_window_rect.GetTR(); + ImVec2 tc = (window->Pos.x < next_window->Pos.x) ? next_window_rect.GetBL() : next_window_rect.GetBR(); + float extra = ImClamp(fabsf(ta.x - tb.x) * 0.30f, 5.0f, 30.0f); // add a bit of extra slack. + ta.x += (window->Pos.x < next_window->Pos.x) ? -0.5f : +0.5f; // to avoid numerical issues + tb.y = ta.y + ImMax((tb.y - extra) - ta.y, -100.0f); // triangle is maximum 200 high to limit the slope and the bias toward large sub-menus + tc.y = ta.y + ImMin((tc.y + extra) - ta.y, +100.0f); + moving_within_opened_triangle = ImIsPointInTriangle(g.IO.MousePos, ta, tb, tc); + //window->DrawList->PushClipRectFullScreen(); window->DrawList->AddTriangleFilled(ta, tb, tc, moving_within_opened_triangle ? 0x80008000 : 0x80000080); window->DrawList->PopClipRect(); // Debug + } + } + + want_close = (opened && !hovered && g.HoveredWindow == window && g.HoveredIdPreviousFrame != 0 && g.HoveredIdPreviousFrame != id && !moving_within_opened_triangle); + want_open = (!opened && hovered && !moving_within_opened_triangle) || (!opened && hovered && pressed); + } + else if (opened && pressed && menuset_opened) // menu-bar: click open menu to close + { + want_close = true; + want_open = opened = false; + } + else if (pressed || (hovered && menuset_opened && !opened)) // menu-bar: first click to open, then hover to open others + want_open = true; + + if (want_close && IsPopupOpen(id)) + ClosePopupToLevel(GImGui->CurrentPopupStack.Size); + + if (!opened && want_open && g.OpenedPopupStack.Size > g.CurrentPopupStack.Size) + { + // Don't recycle same menu level in the same frame, first close the other menu and yield for a frame. + ImGui::OpenPopup(label); + return false; + } + + opened |= want_open; + if (want_open) + ImGui::OpenPopup(label); + + if (opened) + { + ImGui::SetNextWindowPos(popup_pos, ImGuiSetCond_Always); + ImGuiWindowFlags flags = ImGuiWindowFlags_ShowBorders | ((window->Flags & (ImGuiWindowFlags_Popup|ImGuiWindowFlags_ChildMenu)) ? ImGuiWindowFlags_ChildMenu|ImGuiWindowFlags_ChildWindow : ImGuiWindowFlags_ChildMenu); + opened = BeginPopupEx(label, flags); // opened can be 'false' when the popup is completely clipped (e.g. zero size display) + } + + return opened; +} + +void ImGui::EndMenu() +{ + ImGui::EndPopup(); +} + +// A little colored square. Return true when clicked. +bool ImGui::ColorButton(const ImVec4& col, bool small_height, bool outline_border) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID("#colorbutton"); + const float square_size = g.FontSize; + const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(square_size + style.FramePadding.y*2, square_size + (small_height ? 0 : style.FramePadding.y*2))); + ItemSize(bb, small_height ? 0.0f : style.FramePadding.y); + if (!ItemAdd(bb, &id)) + return false; + + bool hovered, held; + bool pressed = ButtonBehavior(bb, id, &hovered, &held, true); + RenderFrame(bb.Min, bb.Max, window->Color(col), outline_border, style.FrameRounding); + + if (hovered) + { + int ix = (int)(col.x * 255.0f + 0.5f); + int iy = (int)(col.y * 255.0f + 0.5f); + int iz = (int)(col.z * 255.0f + 0.5f); + int iw = (int)(col.w * 255.0f + 0.5f); + ImGui::SetTooltip("Color:\n(%.2f,%.2f,%.2f,%.2f)\n#%02X%02X%02X%02X", col.x, col.y, col.z, col.w, ix, iy, iz, iw); + } + + return pressed; +} + +bool ImGui::ColorEdit3(const char* label, float col[3]) +{ + float col4[4]; + col4[0] = col[0]; + col4[1] = col[1]; + col4[2] = col[2]; + col4[3] = 1.0f; + const bool value_changed = ImGui::ColorEdit4(label, col4, false); + col[0] = col4[0]; + col[1] = col4[1]; + col[2] = col4[2]; + return value_changed; +} + +// Edit colors components (each component in 0.0f..1.0f range +// Use CTRL-Click to input value and TAB to go to next item. +bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const float w_full = ImGui::CalcItemWidth(); + const float square_sz = (g.FontSize + style.FramePadding.y * 2.0f); + + ImGuiColorEditMode edit_mode = window->DC.ColorEditMode; + if (edit_mode == ImGuiColorEditMode_UserSelect || edit_mode == ImGuiColorEditMode_UserSelectShowButton) + edit_mode = g.ColorEditModeStorage.GetInt(id, 0) % 3; + + float f[4] = { col[0], col[1], col[2], col[3] }; + + if (edit_mode == ImGuiColorEditMode_HSV) + ImGui::ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]); + + int i[4] = { (int)(f[0] * 255.0f + 0.5f), (int)(f[1] * 255.0f + 0.5f), (int)(f[2] * 255.0f + 0.5f), (int)(f[3] * 255.0f + 0.5f) }; + + int components = alpha ? 4 : 3; + bool value_changed = false; + + ImGui::BeginGroup(); + ImGui::PushID(label); + + const bool hsv = (edit_mode == 1); + switch (edit_mode) + { + case ImGuiColorEditMode_RGB: + case ImGuiColorEditMode_HSV: + { + // RGB/HSV 0..255 Sliders + const float w_items_all = w_full - (square_sz + style.ItemInnerSpacing.x); + const float w_item_one = ImMax(1.0f, (float)(int)((w_items_all - (style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1)) / (float)components)); + const float w_item_last = ImMax(1.0f, (float)(int)(w_items_all - (w_item_one + style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1))); + + const bool hide_prefix = (w_item_one <= CalcTextSize("M:999").x); + const char* ids[4] = { "##X", "##Y", "##Z", "##W" }; + const char* fmt_table[3][4] = + { + { "%3.0f", "%3.0f", "%3.0f", "%3.0f" }, + { "R:%3.0f", "G:%3.0f", "B:%3.0f", "A:%3.0f" }, + { "H:%3.0f", "S:%3.0f", "V:%3.0f", "A:%3.0f" } + }; + const char** fmt = hide_prefix ? fmt_table[0] : hsv ? fmt_table[2] : fmt_table[1]; + + ImGui::PushItemWidth(w_item_one); + for (int n = 0; n < components; n++) + { + if (n > 0) + ImGui::SameLine(0, style.ItemInnerSpacing.x); + if (n + 1 == components) + ImGui::PushItemWidth(w_item_last); + value_changed |= ImGui::DragInt(ids[n], &i[n], 1.0f, 0, 255, fmt[n]); + } + ImGui::PopItemWidth(); + ImGui::PopItemWidth(); + } + break; + case ImGuiColorEditMode_HEX: + { + // RGB Hexadecimal Input + const float w_slider_all = w_full - square_sz; + char buf[64]; + if (alpha) + ImFormatString(buf, IM_ARRAYSIZE(buf), "#%02X%02X%02X%02X", i[0], i[1], i[2], i[3]); + else + ImFormatString(buf, IM_ARRAYSIZE(buf), "#%02X%02X%02X", i[0], i[1], i[2]); + ImGui::PushItemWidth(w_slider_all - style.ItemInnerSpacing.x); + value_changed |= ImGui::InputText("##Text", buf, IM_ARRAYSIZE(buf), ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase); + ImGui::PopItemWidth(); + char* p = buf; + while (*p == '#' || ImCharIsSpace(*p)) + p++; + + // Treat at unsigned (%X is unsigned) + i[0] = i[1] = i[2] = i[3] = 0; + if (alpha) + sscanf(p, "%02X%02X%02X%02X", (unsigned int*)&i[0], (unsigned int*)&i[1], (unsigned int*)&i[2], (unsigned int*)&i[3]); + else + sscanf(p, "%02X%02X%02X", (unsigned int*)&i[0], (unsigned int*)&i[1], (unsigned int*)&i[2]); + } + break; + } + + ImGui::SameLine(0, style.ItemInnerSpacing.x); + + const ImVec4 col_display(col[0], col[1], col[2], 1.0f); + if (ImGui::ColorButton(col_display)) + g.ColorEditModeStorage.SetInt(id, (edit_mode + 1) % 3); // Don't set local copy of 'edit_mode' right away! + + if (window->DC.ColorEditMode == ImGuiColorEditMode_UserSelectShowButton) + { + ImGui::SameLine(0, style.ItemInnerSpacing.x); + const char* button_titles[3] = { "RGB", "HSV", "HEX" }; + if (ButtonEx(button_titles[edit_mode], ImVec2(0,0), ImGuiButtonFlags_DontClosePopups)) + g.ColorEditModeStorage.SetInt(id, (edit_mode + 1) % 3); // Don't set local copy of 'edit_mode' right away! + ImGui::SameLine(); + } + else + { + ImGui::SameLine(0, style.ItemInnerSpacing.x); + } + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + + // Convert back + for (int n = 0; n < 4; n++) + f[n] = i[n] / 255.0f; + if (edit_mode == 1) + ImGui::ColorConvertHSVtoRGB(f[0], f[1], f[2], f[0], f[1], f[2]); + + if (value_changed) + { + col[0] = f[0]; + col[1] = f[1]; + col[2] = f[2]; + if (alpha) + col[3] = f[3]; + } + + ImGui::PopID(); + ImGui::EndGroup(); + + return value_changed; +} + +void ImGui::ColorEditMode(ImGuiColorEditMode mode) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ColorEditMode = mode; +} + +// Horizontal separating line. +void ImGui::Separator() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + if (window->DC.ColumnsCount > 1) + PopClipRect(); + + float x1 = window->Pos.x; + float x2 = window->Pos.x + window->Size.x; + if (!window->DC.GroupStack.empty()) + x1 += window->DC.ColumnsStartX; + + const ImRect bb(ImVec2(x1, window->DC.CursorPos.y), ImVec2(x2, window->DC.CursorPos.y)); + ItemSize(ImVec2(0.0f, bb.GetSize().y)); // NB: we don't provide our width so that it doesn't get feed back into AutoFit + if (!ItemAdd(bb, NULL)) + { + if (window->DC.ColumnsCount > 1) + PushColumnClipRect(); + return; + } + + window->DrawList->AddLine(bb.Min, bb.Max, window->Color(ImGuiCol_Border)); + + ImGuiState& g = *GImGui; + if (g.LogEnabled) + ImGui::LogText(IM_NEWLINE "--------------------------------"); + + if (window->DC.ColumnsCount > 1) + { + PushColumnClipRect(); + window->DC.ColumnsCellMinY = window->DC.CursorPos.y; + } +} + +void ImGui::Spacing() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + ItemSize(ImVec2(0,0)); +} + +void ImGui::Dummy(const ImVec2& size) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + ItemSize(size); +} + +bool ImGui::IsRectVisible(const ImVec2& size) +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->ClipRect.Overlaps(ImRect(window->DC.CursorPos, window->DC.CursorPos + size)); +} + +void ImGui::BeginGroup() +{ + ImGuiWindow* window = GetCurrentWindow(); + + window->DC.GroupStack.resize(window->DC.GroupStack.Size + 1); + ImGuiGroupData& group_data = window->DC.GroupStack.back(); + group_data.BackupCursorPos = window->DC.CursorPos; + group_data.BackupCursorMaxPos = window->DC.CursorMaxPos; + group_data.BackupColumnsStartX = window->DC.ColumnsStartX; + group_data.BackupCurrentLineHeight = window->DC.CurrentLineHeight; + group_data.BackupCurrentLineTextBaseOffset = window->DC.CurrentLineTextBaseOffset; + group_data.BackupLogLinePosY = window->DC.LogLinePosY; + group_data.AdvanceCursor = true; + + window->DC.ColumnsStartX = window->DC.CursorPos.x - window->Pos.x; + window->DC.CursorMaxPos = window->DC.CursorPos; + window->DC.CurrentLineHeight = 0.0f; + window->DC.LogLinePosY = window->DC.CursorPos.y - 9999.0f; +} + +void ImGui::EndGroup() +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGuiStyle& style = ImGui::GetStyle(); + + IM_ASSERT(!window->DC.GroupStack.empty()); + + ImGuiGroupData& group_data = window->DC.GroupStack.back(); + + ImRect group_bb(group_data.BackupCursorPos, window->DC.CursorMaxPos); + group_bb.Max.y -= style.ItemSpacing.y; // Cancel out last vertical spacing because we are adding one ourselves. + group_bb.Max = ImMax(group_bb.Min, group_bb.Max); + + window->DC.CursorPos = group_data.BackupCursorPos; + window->DC.CursorMaxPos = ImMax(group_data.BackupCursorMaxPos, window->DC.CursorMaxPos); + window->DC.CurrentLineHeight = group_data.BackupCurrentLineHeight; + window->DC.CurrentLineTextBaseOffset = group_data.BackupCurrentLineTextBaseOffset; + window->DC.ColumnsStartX = group_data.BackupColumnsStartX; + window->DC.LogLinePosY = window->DC.CursorPos.y - 9999.0f; + + if (group_data.AdvanceCursor) + { + window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.PrevLineTextBaseOffset, group_data.BackupCurrentLineTextBaseOffset); // FIXME: Incorrect, we should grab the base offset from the *first line* of the group but it is hard to obtain now. + ItemSize(group_bb.GetSize(), group_data.BackupCurrentLineTextBaseOffset); + ItemAdd(group_bb, NULL); + } + + window->DC.GroupStack.pop_back(); + + //window->DrawList->AddRect(group_bb.Min, group_bb.Max, 0xFFFF00FF); // Debug +} + +// Gets back to previous line and continue with horizontal layout +// pos_x == 0 : follow on previous item +// pos_x != 0 : align to specified column +// spacing_w < 0 : use default spacing if column_x==0, no spacing if column_x!=0 +// spacing_w >= 0 : enforce spacing +void ImGui::SameLine(float pos_x, float spacing_w) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + float x, y; + if (pos_x != 0.0f) + { + if (spacing_w < 0.0f) spacing_w = 0.0f; + x = window->Pos.x + pos_x + spacing_w; + y = window->DC.CursorPosPrevLine.y; + } + else + { + if (spacing_w < 0.0f) spacing_w = g.Style.ItemSpacing.x; + x = window->DC.CursorPosPrevLine.x + spacing_w; + y = window->DC.CursorPosPrevLine.y; + } + window->DC.CurrentLineHeight = window->DC.PrevLineHeight; + window->DC.CurrentLineTextBaseOffset = window->DC.PrevLineTextBaseOffset; + window->DC.CursorPos = ImVec2(x, y); +} + +void ImGui::NextColumn() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + if (window->DC.ColumnsCount > 1) + { + ImGui::PopItemWidth(); + PopClipRect(); + + window->DC.ColumnsCellMaxY = ImMax(window->DC.ColumnsCellMaxY, window->DC.CursorPos.y); + if (++window->DC.ColumnsCurrent < window->DC.ColumnsCount) + { + window->DC.ColumnsOffsetX = ImGui::GetColumnOffset(window->DC.ColumnsCurrent) - window->DC.ColumnsStartX + g.Style.ItemSpacing.x; + window->DrawList->ChannelsSetCurrent(window->DC.ColumnsCurrent); + } + else + { + window->DC.ColumnsCurrent = 0; + window->DC.ColumnsOffsetX = 0.0f; + window->DC.ColumnsCellMinY = window->DC.ColumnsCellMaxY; + window->DrawList->ChannelsSetCurrent(0); + } + window->DC.CursorPos.x = (float)(int)(window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX); + window->DC.CursorPos.y = window->DC.ColumnsCellMinY; + window->DC.CurrentLineHeight = 0.0f; + window->DC.CurrentLineTextBaseOffset = 0.0f; + + PushColumnClipRect(); + ImGui::PushItemWidth(ImGui::GetColumnWidth() * 0.65f); // FIXME + } +} + +int ImGui::GetColumnIndex() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.ColumnsCurrent; +} + +int ImGui::GetColumnsCount() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.ColumnsCount; +} + +static float GetDraggedColumnOffset(int column_index) +{ + // Active (dragged) column always follow mouse. The reason we need this is that dragging a column to the right edge of an auto-resizing + // window creates a feedback loop because we store normalized positions/ So while dragging we enforce absolute positioning + ImGuiState& g = *GImGui; + ImGuiWindow* window = ImGui::GetCurrentWindow(); + IM_ASSERT(column_index > 0); // We cannot drag column 0. If you get this assert you may have a conflict between the ID of your columns and another widgets. + IM_ASSERT(g.ActiveId == window->DC.ColumnsSetID + ImGuiID(column_index)); + + float x = g.IO.MousePos.x + g.ActiveClickDeltaToCenter.x - window->Pos.x; + x = ImClamp(x, ImGui::GetColumnOffset(column_index-1)+g.Style.ColumnsMinSpacing, ImGui::GetColumnOffset(column_index+1)-g.Style.ColumnsMinSpacing); + + return (float)(int)x; +} + +float ImGui::GetColumnOffset(int column_index) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + if (column_index < 0) + column_index = window->DC.ColumnsCurrent; + + if (g.ActiveId) + { + const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); + if (g.ActiveId == column_id) + return GetDraggedColumnOffset(column_index); + } + + // Read from cache + IM_ASSERT(column_index < window->DC.ColumnsOffsetsT.Size); + const float t = window->DC.ColumnsOffsetsT[column_index]; + + const float min_x = window->DC.ColumnsStartX; + const float max_x = window->Size.x - ((window->Flags & ImGuiWindowFlags_NoScrollbar) ? 0 : g.Style.ScrollbarWidth);// - window->WindowPadding().x; + const float x = min_x + t * (max_x - min_x); + return (float)(int)x; +} + +void ImGui::SetColumnOffset(int column_index, float offset) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + if (column_index < 0) + column_index = window->DC.ColumnsCurrent; + + IM_ASSERT(column_index < window->DC.ColumnsOffsetsT.Size); + const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); + + const float min_x = window->DC.ColumnsStartX; + const float max_x = window->Size.x - ((window->Flags & ImGuiWindowFlags_NoScrollbar) ? 0 : g.Style.ScrollbarWidth);// - window->WindowPadding().x; + const float t = (offset - min_x) / (max_x - min_x); + window->DC.StateStorage->SetFloat(column_id, t); + window->DC.ColumnsOffsetsT[column_index] = t; +} + +float ImGui::GetColumnWidth(int column_index) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (column_index < 0) + column_index = window->DC.ColumnsCurrent; + + const float w = GetColumnOffset(column_index+1) - GetColumnOffset(column_index); + return w; +} + +static void PushColumnClipRect(int column_index) +{ + ImGuiWindow* window = ImGui::GetCurrentWindow(); + if (column_index < 0) + column_index = window->DC.ColumnsCurrent; + + const float x1 = window->Pos.x + ImGui::GetColumnOffset(column_index) - 1; + const float x2 = window->Pos.x + ImGui::GetColumnOffset(column_index+1) - 1; + PushClipRect(ImVec4(x1,-FLT_MAX,x2,+FLT_MAX)); +} + +void ImGui::Columns(int columns_count, const char* id, bool border) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + if (window->DC.ColumnsCount != 1) + { + if (window->DC.ColumnsCurrent != 0) + ItemSize(ImVec2(0,0)); // Advance to column 0 + ImGui::PopItemWidth(); + PopClipRect(); + window->DrawList->ChannelsMerge(window->DC.ColumnsCount); + + window->DC.ColumnsCellMaxY = ImMax(window->DC.ColumnsCellMaxY, window->DC.CursorPos.y); + window->DC.CursorPos.y = window->DC.ColumnsCellMaxY; + } + + // Draw columns borders and handle resize at the time of "closing" a columns set + if (window->DC.ColumnsCount != columns_count && window->DC.ColumnsCount != 1 && window->DC.ColumnsShowBorders && !window->SkipItems) + { + const float y1 = window->DC.ColumnsStartPos.y; + const float y2 = window->DC.CursorPos.y; + for (int i = 1; i < window->DC.ColumnsCount; i++) + { + float x = window->Pos.x + GetColumnOffset(i); + const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(i); + const ImRect column_rect(ImVec2(x-4,y1),ImVec2(x+4,y2)); + if (IsClippedEx(column_rect, &column_id, false)) + continue; + + bool hovered, held; + ButtonBehavior(column_rect, column_id, &hovered, &held, true); + if (hovered || held) + g.MouseCursor = ImGuiMouseCursor_ResizeEW; + + // Draw before resize so our items positioning are in sync with the line being drawn + const ImU32 col = window->Color(held ? ImGuiCol_ColumnActive : hovered ? ImGuiCol_ColumnHovered : ImGuiCol_Column); + const float xi = (float)(int)x; + window->DrawList->AddLine(ImVec2(xi, y1+1.0f), ImVec2(xi, y2), col); + + if (held) + { + if (g.ActiveIdIsJustActivated) + g.ActiveClickDeltaToCenter.x = x - g.IO.MousePos.x; + + x = GetDraggedColumnOffset(i); + SetColumnOffset(i, x); + } + } + } + + // Set state for first column + ImGui::PushID(0x11223344); // Differentiate column ID with an arbitrary/random prefix for cases where users name their columns set the same as another non-scope widget + window->DC.ColumnsSetID = window->GetID(id ? id : ""); + ImGui::PopID(); + window->DC.ColumnsCurrent = 0; + window->DC.ColumnsCount = columns_count; + window->DC.ColumnsShowBorders = border; + window->DC.ColumnsStartPos = window->DC.CursorPos; + window->DC.ColumnsCellMinY = window->DC.ColumnsCellMaxY = window->DC.CursorPos.y; + window->DC.ColumnsOffsetX = 0.0f; + window->DC.CursorPos.x = (float)(int)(window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX); + + if (window->DC.ColumnsCount != 1) + { + // Cache column offsets + window->DC.ColumnsOffsetsT.resize(columns_count + 1); + for (int column_index = 0; column_index < columns_count + 1; column_index++) + { + const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); + KeepAliveID(column_id); + const float default_t = column_index / (float)window->DC.ColumnsCount; + const float t = window->DC.StateStorage->GetFloat(column_id, default_t); // Cheaply store our floating point value inside the integer (could store an union into the map?) + window->DC.ColumnsOffsetsT[column_index] = t; + } + window->DrawList->ChannelsSplit(window->DC.ColumnsCount); + PushColumnClipRect(); + ImGui::PushItemWidth(ImGui::GetColumnWidth() * 0.65f); + } + else + { + window->DC.ColumnsOffsetsT.resize(2); + window->DC.ColumnsOffsetsT[0] = 0.0f; + window->DC.ColumnsOffsetsT[1] = 1.0f; + } +} + +void ImGui::Indent() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ColumnsStartX += g.Style.IndentSpacing; + window->DC.CursorPos.x = window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX; +} + +void ImGui::Unindent() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ColumnsStartX -= g.Style.IndentSpacing; + window->DC.CursorPos.x = window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX; +} + +void ImGui::TreePush(const char* str_id) +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGui::Indent(); + window->DC.TreeDepth++; + PushID(str_id ? str_id : "#TreePush"); +} + +void ImGui::TreePush(const void* ptr_id) +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGui::Indent(); + window->DC.TreeDepth++; + PushID(ptr_id ? ptr_id : (const void*)"#TreePush"); +} + +void ImGui::TreePop() +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGui::Unindent(); + window->DC.TreeDepth--; + PopID(); +} + +void ImGui::Value(const char* prefix, bool b) +{ + ImGui::Text("%s: %s", prefix, (b ? "true" : "false")); +} + +void ImGui::Value(const char* prefix, int v) +{ + ImGui::Text("%s: %d", prefix, v); +} + +void ImGui::Value(const char* prefix, unsigned int v) +{ + ImGui::Text("%s: %d", prefix, v); +} + +void ImGui::Value(const char* prefix, float v, const char* float_format) +{ + if (float_format) + { + char fmt[64]; + ImFormatString(fmt, IM_ARRAYSIZE(fmt), "%%s: %s", float_format); + ImGui::Text(fmt, prefix, v); + } + else + { + ImGui::Text("%s: %.3f", prefix, v); + } +} + +void ImGui::Color(const char* prefix, const ImVec4& v) +{ + ImGui::Text("%s: (%.2f,%.2f,%.2f,%.2f)", prefix, v.x, v.y, v.z, v.w); + ImGui::SameLine(); + ImGui::ColorButton(v, true); +} + +void ImGui::Color(const char* prefix, unsigned int v) +{ + ImGui::Text("%s: %08X", prefix, v); + ImGui::SameLine(); + + ImVec4 col; + col.x = (float)((v >> 0) & 0xFF) / 255.0f; + col.y = (float)((v >> 8) & 0xFF) / 255.0f; + col.z = (float)((v >> 16) & 0xFF) / 255.0f; + col.w = (float)((v >> 24) & 0xFF) / 255.0f; + ImGui::ColorButton(col, true); +} + +//----------------------------------------------------------------------------- +// PLATFORM DEPENDANT HELPERS +//----------------------------------------------------------------------------- + +#if defined(_MSC_VER) && !defined(IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS) + +#ifndef _WINDOWS_ +#define WIN32_LEAN_AND_MEAN +#include +#endif +#pragma comment(lib, "user32") + +// Win32 API clipboard implementation +static const char* GetClipboardTextFn_DefaultImpl() +{ + static char* buf_local = NULL; + if (buf_local) + { + ImGui::MemFree(buf_local); + buf_local = NULL; + } + if (!OpenClipboard(NULL)) + return NULL; + HANDLE wbuf_handle = GetClipboardData(CF_UNICODETEXT); + if (wbuf_handle == NULL) + return NULL; + if (ImWchar* wbuf_global = (ImWchar*)GlobalLock(wbuf_handle)) + { + int buf_len = ImTextCountUtf8BytesFromStr(wbuf_global, NULL) + 1; + buf_local = (char*)ImGui::MemAlloc(buf_len * sizeof(char)); + ImTextStrToUtf8(buf_local, buf_len, wbuf_global, NULL); + } + GlobalUnlock(wbuf_handle); + CloseClipboard(); + return buf_local; +} + +// Win32 API clipboard implementation +static void SetClipboardTextFn_DefaultImpl(const char* text) +{ + if (!OpenClipboard(NULL)) + return; + + const int wbuf_length = ImTextCountCharsFromUtf8(text, NULL) + 1; + HGLOBAL wbuf_handle = GlobalAlloc(GMEM_MOVEABLE, (SIZE_T)wbuf_length * sizeof(ImWchar)); + if (wbuf_handle == NULL) + return; + ImWchar* wbuf_global = (ImWchar*)GlobalLock(wbuf_handle); + ImTextStrFromUtf8(wbuf_global, wbuf_length, text, NULL); + GlobalUnlock(wbuf_handle); + EmptyClipboard(); + SetClipboardData(CF_UNICODETEXT, wbuf_handle); + CloseClipboard(); +} + +#else + +// Local ImGui-only clipboard implementation, if user hasn't defined better clipboard handlers +static const char* GetClipboardTextFn_DefaultImpl() +{ + return GImGui->PrivateClipboard; +} + +// Local ImGui-only clipboard implementation, if user hasn't defined better clipboard handlers +static void SetClipboardTextFn_DefaultImpl(const char* text) +{ + ImGuiState& g = *GImGui; + if (g.PrivateClipboard) + { + ImGui::MemFree(g.PrivateClipboard); + g.PrivateClipboard = NULL; + } + const char* text_end = text + strlen(text); + g.PrivateClipboard = (char*)ImGui::MemAlloc((size_t)(text_end - text) + 1); + memcpy(g.PrivateClipboard, text, (size_t)(text_end - text)); + g.PrivateClipboard[(int)(text_end - text)] = 0; +} + +#endif + +#if defined(_MSC_VER) && !defined(IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS) + +#ifndef _WINDOWS_ +#define WIN32_LEAN_AND_MEAN +#include +#endif +#include +#pragma comment(lib, "imm32") + +static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y) +{ + // Notify OS Input Method Editor of text input position + if (HWND hwnd = (HWND)GImGui->IO.ImeWindowHandle) + if (HIMC himc = ImmGetContext(hwnd)) + { + COMPOSITIONFORM cf; + cf.ptCurrentPos.x = x; + cf.ptCurrentPos.y = y; + cf.dwStyle = CFS_FORCE_POSITION; + ImmSetCompositionWindow(himc, &cf); + } +} + +#else + +static void ImeSetInputScreenPosFn_DefaultImpl(int, int) {} + +#endif + +//----------------------------------------------------------------------------- +// HELP +//----------------------------------------------------------------------------- + +void ImGui::ShowMetricsWindow(bool* opened) +{ + if (ImGui::Begin("ImGui Metrics", opened)) + { + ImGui::Text("ImGui %s", ImGui::GetVersion()); + ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate); + ImGui::Text("%d vertices, %d triangles", ImGui::GetIO().MetricsRenderVertices, ImGui::GetIO().MetricsRenderIndices / 3); + ImGui::Text("%d allocations", ImGui::GetIO().MetricsAllocs); + static bool show_clip_rects = true; + ImGui::Checkbox("Show clipping rectangles when hovering ImDrawList", &show_clip_rects); + ImGui::Separator(); + + struct Funcs + { + static void NodeDrawList(ImDrawList* draw_list, const char* label) + { + bool node_opened = ImGui::TreeNode(draw_list, "%s: '%s' %d vtx, %d indices, %d cmds", label, draw_list->_OwnerName ? draw_list->_OwnerName : "", draw_list->VtxBuffer.Size, draw_list->IdxBuffer.Size, draw_list->CmdBuffer.Size); + if (draw_list == ImGui::GetWindowDrawList()) + { + ImGui::SameLine(); + ImGui::TextColored(ImColor(255,100,100), "CURRENTLY APPENDING"); // Can't display stats for active draw list! (we don't have the data double-buffered) + } + if (!node_opened) + return; + + int elem_offset = 0; + for (const ImDrawCmd* pcmd = draw_list->CmdBuffer.begin(); pcmd < draw_list->CmdBuffer.end(); elem_offset += pcmd->ElemCount, pcmd++) + { + if (pcmd->UserCallback) + ImGui::BulletText("Callback %p, user_data %p", pcmd->UserCallback, pcmd->UserCallbackData); + else + { + ImGui::BulletText("Draw %d indexed vtx, tex = %p, clip_rect = (%.0f,%.0f)..(%.0f,%.0f)", pcmd->ElemCount, pcmd->TextureId, pcmd->ClipRect.x, pcmd->ClipRect.y, pcmd->ClipRect.z, pcmd->ClipRect.w); + if (show_clip_rects && ImGui::IsItemHovered()) + { + ImRect clip_rect = pcmd->ClipRect; + ImRect vtxs_rect; + for (int i = elem_offset; i < elem_offset + (int)pcmd->ElemCount; i++) + vtxs_rect.Add(draw_list->VtxBuffer[draw_list->IdxBuffer[i]].pos); + GImGui->OverlayDrawList.PushClipRectFullScreen(); + clip_rect.Round(); GImGui->OverlayDrawList.AddRect(clip_rect.Min, clip_rect.Max, ImColor(255,255,0)); + vtxs_rect.Round(); GImGui->OverlayDrawList.AddRect(vtxs_rect.Min, vtxs_rect.Max, ImColor(255,0,255)); + GImGui->OverlayDrawList.PopClipRect(); + } + } + } + ImGui::TreePop(); + } + + static void NodeWindows(ImVector& windows, const char* label) + { + if (!ImGui::TreeNode(label, "%s (%d)", label, windows.Size)) + return; + for (int i = 0; i < windows.Size; i++) + Funcs::NodeWindow(windows[i], "Window"); + ImGui::TreePop(); + } + + static void NodeWindow(ImGuiWindow* window, const char* label) + { + if (!ImGui::TreeNode(window, "%s '%s', %d @ 0x%p", label, window->Name, window->Active || window->WasActive, window)) + return; + NodeDrawList(window->DrawList, "DrawList"); + if (window->RootWindow != window) NodeWindow(window->RootWindow, "RootWindow"); + if (window->DC.ChildWindows.Size > 0) NodeWindows(window->DC.ChildWindows, "ChildWindows"); + ImGui::BulletText("Storage: %d bytes", window->StateStorage.Data.Size * sizeof(ImGuiStorage::Pair)); + ImGui::TreePop(); + } + }; + + ImGuiState& g = *GImGui; // Access private state + g.DisableHideTextAfterDoubleHash++; // Not exposed (yet). Disable processing that hides text after '##' markers. + Funcs::NodeWindows(g.Windows, "Windows"); + if (ImGui::TreeNode("DrawList", "Active DrawLists (%d)", g.RenderDrawLists[0].Size)) + { + for (int i = 0; i < g.RenderDrawLists[0].Size; i++) + Funcs::NodeDrawList(g.RenderDrawLists[0][i], "DrawList"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Popups", "Opened Popups Stack (%d)", g.OpenedPopupStack.Size)) + { + for (int i = 0; i < g.OpenedPopupStack.Size; i++) + { + ImGuiWindow* window = g.OpenedPopupStack[i].Window; + ImGui::BulletText("PopupID: %08x, Window: '%s'%s%s", g.OpenedPopupStack[i].PopupID, window ? window->Name : "NULL", window && (window->Flags & ImGuiWindowFlags_ChildWindow) ? " ChildWindow" : "", window && (window->Flags & ImGuiWindowFlags_ChildMenu) ? " ChildMenu" : ""); + } + ImGui::TreePop(); + } + g.DisableHideTextAfterDoubleHash--; + } + ImGui::End(); +} + +//----------------------------------------------------------------------------- + +//---- Include imgui_user.inl at the end of imgui.cpp +//---- So you can include code that extends ImGui using its private data/functions. +#ifdef IMGUI_INCLUDE_IMGUI_USER_INL +#include "imgui_user.inl" +#endif + +//----------------------------------------------------------------------------- diff --git a/samples/dual_layer/D3D11/src/imgui/imgui.h b/samples/dual_layer/D3D11/src/imgui/imgui.h new file mode 100644 index 0000000..f958c85 --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/imgui.h @@ -0,0 +1,1250 @@ +// ImGui library v1.44 +// Headers + +// See imgui.cpp file for documentation. +// See ImGui::ShowTestWindow() in imgui_demo.cpp for demo code. +// Read 'Programmer guide' in .cpp for notes on how to setup ImGui in your codebase. +// Get latest version at https://github.com/ocornut/imgui + +#pragma once + +#if !defined(IMGUI_DISABLE_INCLUDE_IMCONFIG_H) || defined(IMGUI_INCLUDE_IMCONFIG_H) +#include "imconfig.h" // User-editable configuration file +#endif +#include // FLT_MAX +#include // va_list +#include // ptrdiff_t, NULL +#include // NULL, malloc, free, qsort, atoi +#include // memset, memmove, memcpy, strlen, strchr, strcpy, strcmp + +#define IMGUI_VERSION "1.44" + +// Define assertion handler. +#ifndef IM_ASSERT +#include +#define IM_ASSERT(_EXPR) assert(_EXPR) +#endif + +// Define attributes of all API symbols declarations, e.g. for DLL under Windows. +#ifndef IMGUI_API +#define IMGUI_API +#endif + +// Forward declarations +struct ImDrawCmd; +struct ImDrawList; +struct ImDrawData; +struct ImFont; +struct ImFontAtlas; +struct ImGuiIO; +struct ImGuiStorage; +struct ImGuiStyle; + +typedef unsigned int ImU32; +typedef unsigned short ImWchar; // character for keyboard input/display +typedef void* ImTextureID; // user data to refer to a texture (e.g. store your texture handle/id) +typedef ImU32 ImGuiID; // unique ID used by widgets (typically hashed from a stack of string) +typedef int ImGuiCol; // enum ImGuiCol_ +typedef int ImGuiStyleVar; // enum ImGuiStyleVar_ +typedef int ImGuiKey; // enum ImGuiKey_ +typedef int ImGuiAlign; // enum ImGuiAlign_ +typedef int ImGuiColorEditMode; // enum ImGuiColorEditMode_ +typedef int ImGuiMouseCursor; // enum ImGuiMouseCursor_ +typedef int ImGuiWindowFlags; // enum ImGuiWindowFlags_ +typedef int ImGuiSetCond; // enum ImGuiSetCond_ +typedef int ImGuiInputTextFlags; // enum ImGuiInputTextFlags_ +typedef int ImGuiSelectableFlags; // enum ImGuiSelectableFlags_ +struct ImGuiTextEditCallbackData; // for advanced uses of InputText() +typedef int (*ImGuiTextEditCallback)(ImGuiTextEditCallbackData *data); + +struct ImVec2 +{ + float x, y; + ImVec2() { x = y = 0.0f; } + ImVec2(float _x, float _y) { x = _x; y = _y; } + +#ifdef IM_VEC2_CLASS_EXTRA // Define constructor and implicit cast operators in imconfig.h to convert back<>forth from your math types and ImVec2. + IM_VEC2_CLASS_EXTRA +#endif +}; + +struct ImVec4 +{ + float x, y, z, w; + ImVec4() { x = y = z = w = 0.0f; } + ImVec4(float _x, float _y, float _z, float _w) { x = _x; y = _y; z = _z; w = _w; } + +#ifdef IM_VEC4_CLASS_EXTRA // Define constructor and implicit cast operators in imconfig.h to convert back<>forth from your math types and ImVec4. + IM_VEC4_CLASS_EXTRA +#endif +}; + +// Helpers at bottom of the file: +// - class ImVector<> // Lightweight std::vector like class. +// - IMGUI_ONCE_UPON_A_FRAME // Execute a block of code once per frame only (convenient for creating UI within deep-nested code that runs multiple times) +// - struct ImGuiTextFilter // Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" +// - struct ImGuiTextBuffer // Text buffer for logging/accumulating text +// - struct ImGuiStorage // Custom key value storage (if you need to alter open/close states manually) +// - struct ImGuiTextEditCallbackData // Shared state of ImGui::InputText() when using custom callbacks +// - struct ImGuiListClipper // Helper to manually clip large list of items. +// - struct ImColor // Helper functions to created packed 32-bit RGBA color values +// - struct ImDrawList // Draw command list +// - struct ImFontAtlas // Bake multiple fonts into a single texture, TTF font loader, bake glyphs into bitmap +// - struct ImFont // Single font + +// ImGui end-user API +// In a namespace so that user can add extra functions in a separate file (e.g. Value() helpers for your vector or common types) +namespace ImGui +{ + // Main + IMGUI_API ImGuiIO& GetIO(); + IMGUI_API ImGuiStyle& GetStyle(); + IMGUI_API void NewFrame(); + IMGUI_API void Render(); + IMGUI_API void Shutdown(); + IMGUI_API void ShowUserGuide(); // help block + IMGUI_API void ShowStyleEditor(ImGuiStyle* ref = NULL); // style editor block + IMGUI_API void ShowTestWindow(bool* opened = NULL); // test window, demonstrate ImGui features + IMGUI_API void ShowMetricsWindow(bool* opened = NULL); // metrics window for debugging imgui + + // Window + IMGUI_API bool Begin(const char* name = "Debug", bool* p_opened = NULL, ImGuiWindowFlags flags = 0); // see .cpp for details. return false when window is collapsed, so you can early out in your code. 'bool* p_opened' creates a widget on the upper-right to close the window (which sets your bool to false). + IMGUI_API bool Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_use, float bg_alpha = -1.0f, ImGuiWindowFlags flags = 0); // this is the older/longer API. call SetNextWindowSize() instead if you want to set a window size. For regular windows, 'size_on_first_use' only applies to the first time EVER the window is created and probably not what you want! maybe obsolete this API eventually. + IMGUI_API void End(); + IMGUI_API bool BeginChild(const char* str_id, const ImVec2& size = ImVec2(0,0), bool border = false, ImGuiWindowFlags extra_flags = 0); // begin a scrolling region. size==0.0f: use remaining window size, size<0.0f: use remaining window size minus abs(size). size>0.0f: fixed size. each axis can use a different mode, e.g. ImVec2(0,400). + IMGUI_API bool BeginChild(ImGuiID id, const ImVec2& size = ImVec2(0,0), bool border = false, ImGuiWindowFlags extra_flags = 0); // " + IMGUI_API void EndChild(); + IMGUI_API ImVec2 GetContentRegionMax(); // window or current column boundaries, in windows coordinates + IMGUI_API ImVec2 GetContentRegionAvail(); // == GetContentRegionMax() - GetCursorPos() + IMGUI_API ImVec2 GetWindowContentRegionMin(); // window boundaries, in windows coordinates + IMGUI_API ImVec2 GetWindowContentRegionMax(); + IMGUI_API ImDrawList* GetWindowDrawList(); // get rendering command-list if you want to append your own draw primitives + IMGUI_API ImFont* GetWindowFont(); + IMGUI_API float GetWindowFontSize(); // size (also height in pixels) of current font with current scale applied + IMGUI_API void SetWindowFontScale(float scale); // per-window font scale. Adjust IO.FontGlobalScale if you want to scale all windows + IMGUI_API ImVec2 GetWindowPos(); // get current window position in screen space (useful if you want to do your own drawing via the DrawList api) + IMGUI_API ImVec2 GetWindowSize(); // get current window size + IMGUI_API float GetWindowWidth(); + IMGUI_API bool IsWindowCollapsed(); + + IMGUI_API void SetNextWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0); // set next window position. call before Begin() + IMGUI_API void SetNextWindowPosCenter(ImGuiSetCond cond = 0); // set next window position to be centered on screen. call before Begin() + IMGUI_API void SetNextWindowSize(const ImVec2& size, ImGuiSetCond cond = 0); // set next window size. set to ImVec2(0,0) to force an auto-fit. call before Begin() + IMGUI_API void SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0); // set next window collapsed state. call before Begin() + IMGUI_API void SetNextWindowFocus(); // set next window to be focused / front-most. call before Begin() + IMGUI_API void SetWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0); // set current window position - call within Begin()/End(). may incur tearing + IMGUI_API void SetWindowSize(const ImVec2& size, ImGuiSetCond cond = 0); // set current window size. set to ImVec2(0,0) to force an auto-fit. may incur tearing + IMGUI_API void SetWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0); // set current window collapsed state + IMGUI_API void SetWindowFocus(); // set current window to be focused / front-most + IMGUI_API void SetWindowPos(const char* name, const ImVec2& pos, ImGuiSetCond cond = 0); // set named window position - call within Begin()/End(). may incur tearing + IMGUI_API void SetWindowSize(const char* name, const ImVec2& size, ImGuiSetCond cond = 0); // set named window size. set to ImVec2(0,0) to force an auto-fit. may incur tearing + IMGUI_API void SetWindowCollapsed(const char* name, bool collapsed, ImGuiSetCond cond = 0); // set named window collapsed state + IMGUI_API void SetWindowFocus(const char* name); // set named window to be focused / front-most. use NULL to remove focus. + + IMGUI_API float GetScrollY(); // get scrolling amount [0..GetScrollMaxY()] + IMGUI_API float GetScrollMaxY(); // get maximum scrolling amount == ContentSize.Y - WindowSize.Y + IMGUI_API void SetScrollY(float scroll_y); // set scrolling amount [0..GetScrollMaxY()] + IMGUI_API void SetScrollHere(float center_y_ratio = 0.5f); // adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. + IMGUI_API void SetScrollFromPosY(float pos_y, float center_y_ratio = 0.5f); // adjust scrolling amount to make given position valid. use GetCursorPos() or GetCursorStartPos()+offset to get valid positions. + IMGUI_API void SetKeyboardFocusHere(int offset = 0); // focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget + IMGUI_API void SetStateStorage(ImGuiStorage* tree); // replace tree state storage with our own (if you want to manipulate it yourself, typically clear subsection of it) + IMGUI_API ImGuiStorage* GetStateStorage(); + + // Parameters stacks (shared) + IMGUI_API void PushFont(ImFont* font); // use NULL as a shortcut to push default font + IMGUI_API void PopFont(); + IMGUI_API void PushStyleColor(ImGuiCol idx, const ImVec4& col); + IMGUI_API void PopStyleColor(int count = 1); + IMGUI_API void PushStyleVar(ImGuiStyleVar idx, float val); + IMGUI_API void PushStyleVar(ImGuiStyleVar idx, const ImVec2& val); + IMGUI_API void PopStyleVar(int count = 1); + + // Parameters stacks (current window) + IMGUI_API void PushItemWidth(float item_width); // width of items for the common item+label case, pixels. 0.0f = default to ~2/3 of windows width, >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -1.0f always align width to the right side) + IMGUI_API void PopItemWidth(); + IMGUI_API float CalcItemWidth(); // width of item given pushed settings and current cursor position + IMGUI_API void PushAllowKeyboardFocus(bool v); // allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets + IMGUI_API void PopAllowKeyboardFocus(); + IMGUI_API void PushTextWrapPos(float wrap_pos_x = 0.0f); // word-wrapping for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrap_pos_x' position in window local space + IMGUI_API void PopTextWrapPos(); + IMGUI_API void PushButtonRepeat(bool repeat); // in 'repeat' mode, Button*() functions return true multiple times as you hold them (uses io.KeyRepeatDelay/io.KeyRepeatRate for now) + IMGUI_API void PopButtonRepeat(); + + // Cursor / Layout + IMGUI_API void BeginGroup(); // once closing a group it is seen as a single item (so you can use IsItemHovered() on a group, SameLine() between groups, etc. + IMGUI_API void EndGroup(); + IMGUI_API void Separator(); // horizontal line + IMGUI_API void SameLine(float pos_x = 0.0f, float spacing_w = -1.0f); // call between widgets or groups to layout them horizontally + IMGUI_API void Spacing(); // add spacing + IMGUI_API void Dummy(const ImVec2& size); // add a dummy item of given size + IMGUI_API void Indent(); // move content position toward the right by style.IndentSpacing pixels + IMGUI_API void Unindent(); // move content position back to the left (cancel Indent) + IMGUI_API void Columns(int count = 1, const char* id = NULL, bool border=true); // setup number of columns. use an identifier to distinguish multiple column sets. close with Columns(1). + IMGUI_API void NextColumn(); // next column + IMGUI_API int GetColumnIndex(); // get current column index + IMGUI_API float GetColumnOffset(int column_index = -1); // get position of column line (in pixels, from the left side of the contents region). pass -1 to use current column, otherwise 0..GetcolumnsCount() inclusive. column 0 is usually 0.0f and not resizable unless you call this + IMGUI_API void SetColumnOffset(int column_index, float offset_x); // set position of column line (in pixels, from the left side of the contents region). pass -1 to use current column + IMGUI_API float GetColumnWidth(int column_index = -1); // column width (== GetColumnOffset(GetColumnIndex()+1) - GetColumnOffset(GetColumnOffset()) + IMGUI_API int GetColumnsCount(); // number of columns (what was passed to Columns()) + IMGUI_API ImVec2 GetCursorPos(); // cursor position is relative to window position + IMGUI_API float GetCursorPosX(); // " + IMGUI_API float GetCursorPosY(); // " + IMGUI_API void SetCursorPos(const ImVec2& pos); // " + IMGUI_API void SetCursorPosX(float x); // " + IMGUI_API void SetCursorPosY(float y); // " + IMGUI_API ImVec2 GetCursorStartPos(); // initial cursor position + IMGUI_API ImVec2 GetCursorScreenPos(); // cursor position in absolute screen coordinates [0..io.DisplaySize] + IMGUI_API void SetCursorScreenPos(const ImVec2& pos); // cursor position in absolute screen coordinates [0..io.DisplaySize] + IMGUI_API void AlignFirstTextHeightToWidgets(); // call once if the first item on the line is a Text() item and you want to vertically lower it to match subsequent (bigger) widgets + IMGUI_API float GetTextLineHeight(); // height of font == GetWindowFontSize() + IMGUI_API float GetTextLineHeightWithSpacing(); // distance (in pixels) between 2 consecutive lines of text == GetWindowFontSize() + GetStyle().ItemSpacing.y + IMGUI_API float GetItemsLineHeightWithSpacing(); // distance (in pixels) between 2 consecutive lines of standard height widgets == GetWindowFontSize() + GetStyle().FramePadding.y*2 + GetStyle().ItemSpacing.y + + // ID scopes + // If you are creating widgets in a loop you most likely want to push a unique identifier so ImGui can differentiate them. + // You can also use "##extra" within your widget name to distinguish them from each others. Read the FAQ for more details. + IMGUI_API void PushID(const char* str_id); // push identifier into the ID stack. IDs are hash of the *entire* stack! + IMGUI_API void PushID(const char* str_id_begin, const char* str_id_end); + IMGUI_API void PushID(const void* ptr_id); + IMGUI_API void PushID(int int_id); + IMGUI_API void PopID(); + IMGUI_API ImGuiID GetID(const char* str_id); // calculate unique ID (hash of whole ID stack + given parameter). useful if you want to query into ImGuiStorage yourself. otherwise rarely needed + IMGUI_API ImGuiID GetID(const char* str_id_begin, const char* str_id_end); + IMGUI_API ImGuiID GetID(const void* ptr_id); + + // Widgets + IMGUI_API void Text(const char* fmt, ...); + IMGUI_API void TextV(const char* fmt, va_list args); + IMGUI_API void TextColored(const ImVec4& col, const char* fmt, ...); // shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor(); + IMGUI_API void TextColoredV(const ImVec4& col, const char* fmt, va_list args); + IMGUI_API void TextDisabled(const char* fmt, ...); // shortcut for PushStyleColor(ImGuiCol_Text, style.Colors[ImGuiCol_TextDisabled]); Text(fmt, ...); PopStyleColor(); + IMGUI_API void TextDisabledV(const char* fmt, va_list args); + IMGUI_API void TextWrapped(const char* fmt, ...); // shortcut for PushTextWrapPos(0.0f); Text(fmt, ...); PopTextWrapPos();. Note that this won't work on an auto-resizing window if there's no other widgets to extend the window width, yoy may need to set a size using SetNextWindowSize(). + IMGUI_API void TextWrappedV(const char* fmt, va_list args); + IMGUI_API void TextUnformatted(const char* text, const char* text_end = NULL); // doesn't require null terminated string if 'text_end' is specified. no copy done to any bounded stack buffer, recommended for long chunks of text + IMGUI_API void LabelText(const char* label, const char* fmt, ...); // display text+label aligned the same way as value+label widgets + IMGUI_API void LabelTextV(const char* label, const char* fmt, va_list args); + IMGUI_API void Bullet(); + IMGUI_API void BulletText(const char* fmt, ...); + IMGUI_API void BulletTextV(const char* fmt, va_list args); + IMGUI_API bool Button(const char* label, const ImVec2& size = ImVec2(0,0)); + IMGUI_API bool SmallButton(const char* label); + IMGUI_API bool InvisibleButton(const char* str_id, const ImVec2& size); + IMGUI_API void Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0 = ImVec2(0,0), const ImVec2& uv1 = ImVec2(1,1), const ImVec4& tint_col = ImVec4(1,1,1,1), const ImVec4& border_col = ImVec4(0,0,0,0)); + IMGUI_API bool ImageButton(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0 = ImVec2(0,0), const ImVec2& uv1 = ImVec2(1,1), int frame_padding = -1, const ImVec4& bg_col = ImVec4(0,0,0,0), const ImVec4& tint_col = ImVec4(1,1,1,1)); // <0 frame_padding uses default frame padding settings. 0 for no padding + IMGUI_API bool CollapsingHeader(const char* label, const char* str_id = NULL, bool display_frame = true, bool default_open = false); + IMGUI_API bool Checkbox(const char* label, bool* v); + IMGUI_API bool CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value); + IMGUI_API bool RadioButton(const char* label, bool active); + IMGUI_API bool RadioButton(const char* label, int* v, int v_button); + IMGUI_API bool Combo(const char* label, int* current_item, const char** items, int items_count, int height_in_items = -1); + IMGUI_API bool Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items = -1); // separate items with \0, end item-list with \0\0 + IMGUI_API bool Combo(const char* label, int* current_item, bool (*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int height_in_items = -1); + IMGUI_API bool ColorButton(const ImVec4& col, bool small_height = false, bool outline_border = true); + IMGUI_API bool ColorEdit3(const char* label, float col[3]); + IMGUI_API bool ColorEdit4(const char* label, float col[4], bool show_alpha = true); + IMGUI_API void ColorEditMode(ImGuiColorEditMode mode); + IMGUI_API void PlotLines(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0), int stride = sizeof(float)); + IMGUI_API void PlotLines(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0)); + IMGUI_API void PlotHistogram(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0), int stride = sizeof(float)); + IMGUI_API void PlotHistogram(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0)); + + // Widgets: Drags (tip: ctrl+click on a drag box to input text) + IMGUI_API bool DragFloat(const char* label, float* v, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); // If v_min >= v_max we have no bound + IMGUI_API bool DragFloat2(const char* label, float v[2], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool DragFloat3(const char* label, float v[3], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool DragFloat4(const char* label, float v[4], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool DragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", const char* display_format_max = NULL, float power = 1.0f); + IMGUI_API bool DragInt(const char* label, int* v, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); // If v_min >= v_max we have no bound + IMGUI_API bool DragInt2(const char* label, int v[2], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); + IMGUI_API bool DragInt3(const char* label, int v[3], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); + IMGUI_API bool DragInt4(const char* label, int v[4], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); + IMGUI_API bool DragIntRange2(const char* label, int* v_current_min, int* v_current_max, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f", const char* display_format_max = NULL); + + // Widgets: Input + IMGUI_API bool InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags = 0, ImGuiTextEditCallback callback = NULL, void* user_data = NULL); + IMGUI_API bool InputTextMultiline(const char* label, char* buf, size_t buf_size, const ImVec2& size = ImVec2(0,0), ImGuiInputTextFlags flags = 0, ImGuiTextEditCallback callback = NULL, void* user_data = NULL); + IMGUI_API bool InputFloat(const char* label, float* v, float step = 0.0f, float step_fast = 0.0f, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputFloat2(const char* label, float v[2], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputFloat3(const char* label, float v[3], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputFloat4(const char* label, float v[4], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputInt(const char* label, int* v, int step = 1, int step_fast = 100, ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputInt2(const char* label, int v[2], ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputInt3(const char* label, int v[3], ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputInt4(const char* label, int v[4], ImGuiInputTextFlags extra_flags = 0); + + // Widgets: Sliders (tip: ctrl+click on a slider to input text) + IMGUI_API bool SliderFloat(const char* label, float* v, float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); // adjust display_format to decorate the value with a prefix or a suffix. Use power!=1.0 for logarithmic sliders + IMGUI_API bool SliderFloat2(const char* label, float v[2], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool SliderAngle(const char* label, float* v_rad, float v_degrees_min = -360.0f, float v_degrees_max = +360.0f); + IMGUI_API bool SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format = "%.0f"); + IMGUI_API bool SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* display_format = "%.0f"); + IMGUI_API bool SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* display_format = "%.0f"); + IMGUI_API bool SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* display_format = "%.0f"); + IMGUI_API bool VSliderFloat(const char* label, const ImVec2& size, float* v, float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* display_format = "%.0f"); + + // Widgets: Trees + IMGUI_API bool TreeNode(const char* str_label_id); // if returning 'true' the node is open and the user is responsible for calling TreePop + IMGUI_API bool TreeNode(const char* str_id, const char* fmt, ...); // " + IMGUI_API bool TreeNode(const void* ptr_id, const char* fmt, ...); // " + IMGUI_API bool TreeNodeV(const char* str_id, const char* fmt, va_list args); // " + IMGUI_API bool TreeNodeV(const void* ptr_id, const char* fmt, va_list args); // " + IMGUI_API void TreePush(const char* str_id = NULL); // already called by TreeNode(), but you can call Push/Pop yourself for layouting purpose + IMGUI_API void TreePush(const void* ptr_id = NULL); // " + IMGUI_API void TreePop(); + IMGUI_API void SetNextTreeNodeOpened(bool opened, ImGuiSetCond cond = 0); // set next tree node to be opened. + + // Widgets: Selectable / Lists + IMGUI_API bool Selectable(const char* label, bool selected = false, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0,0)); // size.x==0.0: use remaining width, size.x>0.0: specify width. size.y==0.0: use label height, size.y>0.0: specify height + IMGUI_API bool Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0,0)); + IMGUI_API bool ListBox(const char* label, int* current_item, const char** items, int items_count, int height_in_items = -1); + IMGUI_API bool ListBox(const char* label, int* current_item, bool (*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int height_in_items = -1); + IMGUI_API bool ListBoxHeader(const char* label, const ImVec2& size = ImVec2(0,0)); // use if you want to reimplement ListBox() will custom data or interactions. make sure to call ListBoxFooter() afterwards. + IMGUI_API bool ListBoxHeader(const char* label, int items_count, int height_in_items = -1); // " + IMGUI_API void ListBoxFooter(); // terminate the scrolling region + + // Widgets: Value() Helpers. Output single value in "name: value" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace) + IMGUI_API void Value(const char* prefix, bool b); + IMGUI_API void Value(const char* prefix, int v); + IMGUI_API void Value(const char* prefix, unsigned int v); + IMGUI_API void Value(const char* prefix, float v, const char* float_format = NULL); + IMGUI_API void Color(const char* prefix, const ImVec4& v); + IMGUI_API void Color(const char* prefix, unsigned int v); + + // Tooltip + IMGUI_API void SetTooltip(const char* fmt, ...); // set tooltip under mouse-cursor, typically use with ImGui::IsHovered(). last call wins + IMGUI_API void SetTooltipV(const char* fmt, va_list args); + IMGUI_API void BeginTooltip(); // use to create full-featured tooltip windows that aren't just text + IMGUI_API void EndTooltip(); + + // Menus + IMGUI_API bool BeginMainMenuBar(); // create and append to a full screen menu-bar. only call EndMainMenuBar() if this returns true! + IMGUI_API void EndMainMenuBar(); + IMGUI_API bool BeginMenuBar(); // append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set). only call EndMenuBar() if this returns true! + IMGUI_API void EndMenuBar(); + IMGUI_API bool BeginMenu(const char* label, bool enabled = true); // create a sub-menu entry. only call EndMenu() if this returns true! + IMGUI_API void EndMenu(); + IMGUI_API bool MenuItem(const char* label, const char* shortcut = NULL, bool selected = false, bool enabled = true); // return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment + IMGUI_API bool MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled = true); // return true when activated + toggle (*p_selected) if p_selected != NULL + + // Popup + IMGUI_API void OpenPopup(const char* str_id); // mark popup as open. popup identifiers are relative to the current ID-stack (so OpenPopup and BeginPopup needs to be at the same level). close childs popups if any. will close popup when user click outside, or activate a pressable item, or CloseCurrentPopup() is called within a BeginPopup()/EndPopup() block. + IMGUI_API bool BeginPopup(const char* str_id); // return true if popup if opened and start outputting to it. only call EndPopup() if BeginPopup() returned true! + IMGUI_API bool BeginPopupModal(const char* name, bool* p_opened = NULL, ImGuiWindowFlags extra_flags = 0); // modal dialog (can't close them by clicking outside) + IMGUI_API bool BeginPopupContextItem(const char* str_id, int mouse_button = 1); // helper to open and begin popup when clicked on last item + IMGUI_API bool BeginPopupContextWindow(bool also_over_items = true, const char* str_id = NULL, int mouse_button = 1); // helper to open and begin popup when clicked on current window + IMGUI_API bool BeginPopupContextVoid(const char* str_id = NULL, int mouse_button = 1); // helper to open and begin popup when clicked in void (no window) + IMGUI_API void EndPopup(); + IMGUI_API void CloseCurrentPopup(); // close the popup we have begin-ed into. clicking on a MenuItem or Selectable automatically close the current popup. + + // Logging: all text output from interface is redirected to tty/file/clipboard. Tree nodes are automatically opened. + IMGUI_API void LogToTTY(int max_depth = -1); // start logging to tty + IMGUI_API void LogToFile(int max_depth = -1, const char* filename = NULL); // start logging to file + IMGUI_API void LogToClipboard(int max_depth = -1); // start logging to OS clipboard + IMGUI_API void LogFinish(); // stop logging (close file, etc.) + IMGUI_API void LogButtons(); // helper to display buttons for logging to tty/file/clipboard + IMGUI_API void LogText(const char* fmt, ...); // pass text data straight to log (without being displayed) + + // Utilities + IMGUI_API bool IsItemHovered(); // was the last item hovered by mouse? + IMGUI_API bool IsItemHoveredRect(); // was the last item hovered by mouse? even if another item is active while we are hovering this + IMGUI_API bool IsItemActive(); // was the last item active? (e.g. button being held, text field being edited- items that don't interact will always return false) + IMGUI_API bool IsItemVisible(); + IMGUI_API bool IsAnyItemHovered(); + IMGUI_API bool IsAnyItemActive(); + IMGUI_API ImVec2 GetItemRectMin(); // get bounding rect of last item in screen space + IMGUI_API ImVec2 GetItemRectMax(); // " + IMGUI_API ImVec2 GetItemRectSize(); // " + IMGUI_API bool IsWindowHovered(); + IMGUI_API bool IsWindowFocused(); // is current window focused (differentiate child windows from each others) + IMGUI_API bool IsRootWindowFocused(); // is current root window focused (top parent window in case of child windows) + IMGUI_API bool IsRootWindowOrAnyChildFocused(); // is current root window or any of its child (including current window) focused + IMGUI_API bool IsRectVisible(const ImVec2& size); // test if rectangle of given size starting from cursor pos is visible (not clipped). to perform coarse clipping on user's side (as an optimization) + IMGUI_API bool IsPosHoveringAnyWindow(const ImVec2& pos); // is given position hovering any active imgui window + IMGUI_API float GetTime(); + IMGUI_API int GetFrameCount(); + IMGUI_API const char* GetStyleColName(ImGuiCol idx); + IMGUI_API ImVec2 CalcItemRectClosestPoint(const ImVec2& pos, bool on_edge = false, float outward = +0.0f); // utility to find the closest point the last item bounding rectangle edge. useful to visually link items + IMGUI_API ImVec2 CalcTextSize(const char* text, const char* text_end = NULL, bool hide_text_after_double_hash = false, float wrap_width = -1.0f); + IMGUI_API void CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end); // calculate coarse clipping for large list of evenly sized items. Prefer using the ImGuiListClipper higher-level helper if you can. + + IMGUI_API bool BeginChildFrame(ImGuiID id, const ImVec2& size); // helper to create a child window / scrolling region that looks like a normal widget frame + IMGUI_API void EndChildFrame(); + + IMGUI_API ImU32 ColorConvertFloat4ToU32(const ImVec4& in); + IMGUI_API void ColorConvertRGBtoHSV(float r, float g, float b, float& out_h, float& out_s, float& out_v); + IMGUI_API void ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b); + + // Inputs + IMGUI_API int GetKeyIndex(ImGuiKey key); // map ImGuiKey_* values into user's key index. == io.KeyMap[key] + IMGUI_API bool IsKeyDown(int key_index); // key_index into the keys_down[] array, imgui doesn't know the semantic of each entry, uses your own indices! + IMGUI_API bool IsKeyPressed(int key_index, bool repeat = true); // uses user's key indices as stored in the keys_down[] array. if repeat=true. uses io.KeyRepeatDelay / KeyRepeatRate + IMGUI_API bool IsKeyReleased(int key_index); // " + IMGUI_API bool IsMouseDown(int button); // is mouse button held + IMGUI_API bool IsMouseClicked(int button, bool repeat = false); // did mouse button clicked (went from !Down to Down) + IMGUI_API bool IsMouseDoubleClicked(int button); // did mouse button double-clicked. a double-click returns false in IsMouseClicked(). uses io.MouseDoubleClickTime. + IMGUI_API bool IsMouseReleased(int button); // did mouse button released (went from Down to !Down) + IMGUI_API bool IsMouseHoveringWindow(); // is mouse hovering current window ("window" in API names always refer to current window) + IMGUI_API bool IsMouseHoveringAnyWindow(); // is mouse hovering any active imgui window + IMGUI_API bool IsMouseHoveringRect(const ImVec2& rect_min, const ImVec2& rect_max);// is mouse hovering given bounding rect + IMGUI_API bool IsMouseDragging(int button = 0, float lock_threshold = -1.0f); // is mouse dragging. if lock_threshold < -1.0f uses io.MouseDraggingThreshold + IMGUI_API ImVec2 GetMousePos(); // shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls + IMGUI_API ImVec2 GetMouseDragDelta(int button = 0, float lock_threshold = -1.0f); // dragging amount since clicking, also see: GetItemActiveDragDelta(). if lock_threshold < -1.0f uses io.MouseDraggingThreshold + IMGUI_API void ResetMouseDragDelta(int button = 0); // + IMGUI_API ImGuiMouseCursor GetMouseCursor(); // get desired cursor type, reset in ImGui::NewFrame(), this updated during the frame. valid before Render(). If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you + IMGUI_API void SetMouseCursor(ImGuiMouseCursor type); // set desired cursor type + IMGUI_API void CaptureKeyboardFromApp(); // manually enforce imgui setting the io.WantCaptureKeyboard flag next frame (your application needs to handle it). e.g. capture keyboard when your widget is being hovered. + IMGUI_API void CaptureMouseFromApp(); // manually enforce imgui setting the io.WantCaptureMouse flag next frame (your application needs to handle it). + + // Helpers functions to access the MemAllocFn/MemFreeFn pointers in ImGui::GetIO() + IMGUI_API void* MemAlloc(size_t sz); + IMGUI_API void MemFree(void* ptr); + + // Internal state/context access - if you want to use multiple ImGui context, or share context between modules (e.g. DLL), or allocate the memory yourself + IMGUI_API const char* GetVersion(); + IMGUI_API void* GetInternalState(); + IMGUI_API size_t GetInternalStateSize(); + IMGUI_API void SetInternalState(void* state, bool construct = false); + + // Obsolete (will be removed) +#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS + static inline void OpenNextNode(bool open) { ImGui::SetNextTreeNodeOpened(open, 0); } // OBSOLETE 1.34+ + static inline bool GetWindowIsFocused() { return ImGui::IsWindowFocused(); } // OBSOLETE 1.36+ + static inline bool GetWindowCollapsed() { return ImGui::IsWindowCollapsed(); } // OBSOLETE 1.39+ + static inline ImVec2 GetItemBoxMin() { return GetItemRectMin(); } // OBSOLETE 1.36+ + static inline ImVec2 GetItemBoxMax() { return GetItemRectMax(); } // OBSOLETE 1.36+ + static inline bool IsClipped(const ImVec2& size) { return !IsRectVisible(size); } // OBSOLETE 1.38+ + static inline bool IsRectClipped(const ImVec2& size) { return !IsRectVisible(size); } // OBSOLETE 1.39+ + static inline bool IsMouseHoveringBox(const ImVec2& rect_min, const ImVec2& rect_max) { return IsMouseHoveringRect(rect_min, rect_max); } // OBSOLETE 1.36+ + static inline void SetScrollPosHere() { SetScrollHere(); } // OBSOLETE 1.42+ +#endif + +} // namespace ImGui + +// Flags for ImGui::Begin() +enum ImGuiWindowFlags_ +{ + // Default: 0 + ImGuiWindowFlags_NoTitleBar = 1 << 0, // Disable title-bar + ImGuiWindowFlags_NoResize = 1 << 1, // Disable user resizing with the lower-right grip + ImGuiWindowFlags_NoMove = 1 << 2, // Disable user moving the window + ImGuiWindowFlags_NoScrollbar = 1 << 3, // Disable scrollbar (window can still scroll with mouse or programatically) + ImGuiWindowFlags_NoScrollWithMouse = 1 << 4, // Disable user scrolling with mouse wheel + ImGuiWindowFlags_NoCollapse = 1 << 5, // Disable user collapsing window by double-clicking on it + ImGuiWindowFlags_AlwaysAutoResize = 1 << 6, // Resize every window to its content every frame + ImGuiWindowFlags_ShowBorders = 1 << 7, // Show borders around windows and items + ImGuiWindowFlags_NoSavedSettings = 1 << 8, // Never load/save settings in .ini file + ImGuiWindowFlags_NoInputs = 1 << 9, // Disable catching mouse or keyboard inputs + ImGuiWindowFlags_MenuBar = 1 << 10, // Has a menu-bar + // [Internal] + ImGuiWindowFlags_ChildWindow = 1 << 20, // Don't use! For internal use by BeginChild() + ImGuiWindowFlags_ChildWindowAutoFitX = 1 << 21, // Don't use! For internal use by BeginChild() + ImGuiWindowFlags_ChildWindowAutoFitY = 1 << 22, // Don't use! For internal use by BeginChild() + ImGuiWindowFlags_ComboBox = 1 << 23, // Don't use! For internal use by ComboBox() + ImGuiWindowFlags_Tooltip = 1 << 24, // Don't use! For internal use by BeginTooltip() + ImGuiWindowFlags_Popup = 1 << 25, // Don't use! For internal use by BeginPopup() + ImGuiWindowFlags_Modal = 1 << 26, // Don't use! For internal use by BeginPopupModal() + ImGuiWindowFlags_ChildMenu = 1 << 27 // Don't use! For internal use by BeginMenu() +}; + +// Flags for ImGui::InputText() +enum ImGuiInputTextFlags_ +{ + // Default: 0 + ImGuiInputTextFlags_CharsDecimal = 1 << 0, // Allow 0123456789.+-*/ + ImGuiInputTextFlags_CharsHexadecimal = 1 << 1, // Allow 0123456789ABCDEFabcdef + ImGuiInputTextFlags_CharsUppercase = 1 << 2, // Turn a..z into A..Z + ImGuiInputTextFlags_CharsNoBlank = 1 << 3, // Filter out spaces, tabs + ImGuiInputTextFlags_AutoSelectAll = 1 << 4, // Select entire text when first taking mouse focus + ImGuiInputTextFlags_EnterReturnsTrue = 1 << 5, // Return 'true' when Enter is pressed (as opposed to when the value was modified) + ImGuiInputTextFlags_CallbackCompletion = 1 << 6, // Call user function on pressing TAB (for completion handling) + ImGuiInputTextFlags_CallbackHistory = 1 << 7, // Call user function on pressing Up/Down arrows (for history handling) + ImGuiInputTextFlags_CallbackAlways = 1 << 8, // Call user function every time + ImGuiInputTextFlags_CallbackCharFilter = 1 << 9, // Call user function to filter character. Modify data->EventChar to replace/filter input, or return 1 to discard character. + ImGuiInputTextFlags_AllowTabInput = 1 << 10, // Pressing TAB input a '\t' character into the text field + ImGuiInputTextFlags_CtrlEnterForNewLine = 1 << 11, // In multi-line mode, allow exiting edition by pressing Enter. Ctrl+Enter to add new line (by default adds new lines with Enter). + ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12, // Disable following the cursor horizontally + ImGuiInputTextFlags_AlwaysInsertMode = 1 << 13, // Insert mode + // [Internal] + ImGuiInputTextFlags_Multiline = 1 << 20 // For internal use by InputTextMultiline() +}; + +// Flags for ImGui::Selectable() +enum ImGuiSelectableFlags_ +{ + // Default: 0 + ImGuiSelectableFlags_DontClosePopups = 1 << 0, // Clicking this don't close parent popup window + ImGuiSelectableFlags_SpanAllColumns = 1 << 1 // Selectable frame can span all columns (text will still fit in current column) +}; + +// User fill ImGuiIO.KeyMap[] array with indices into the ImGuiIO.KeysDown[512] array +enum ImGuiKey_ +{ + ImGuiKey_Tab, // for tabbing through fields + ImGuiKey_LeftArrow, // for text edit + ImGuiKey_RightArrow,// for text edit + ImGuiKey_UpArrow, // for text edit + ImGuiKey_DownArrow, // for text edit + ImGuiKey_PageUp, + ImGuiKey_PageDown, + ImGuiKey_Home, // for text edit + ImGuiKey_End, // for text edit + ImGuiKey_Delete, // for text edit + ImGuiKey_Backspace, // for text edit + ImGuiKey_Enter, // for text edit + ImGuiKey_Escape, // for text edit + ImGuiKey_A, // for text edit CTRL+A: select all + ImGuiKey_C, // for text edit CTRL+C: copy + ImGuiKey_V, // for text edit CTRL+V: paste + ImGuiKey_X, // for text edit CTRL+X: cut + ImGuiKey_Y, // for text edit CTRL+Y: redo + ImGuiKey_Z, // for text edit CTRL+Z: undo + ImGuiKey_COUNT +}; + +// Enumeration for PushStyleColor() / PopStyleColor() +enum ImGuiCol_ +{ + ImGuiCol_Text, + ImGuiCol_TextDisabled, + ImGuiCol_WindowBg, + ImGuiCol_ChildWindowBg, + ImGuiCol_Border, + ImGuiCol_BorderShadow, + ImGuiCol_FrameBg, // Background of checkbox, radio button, plot, slider, text input + ImGuiCol_FrameBgHovered, + ImGuiCol_FrameBgActive, + ImGuiCol_TitleBg, + ImGuiCol_TitleBgCollapsed, + ImGuiCol_TitleBgActive, + ImGuiCol_MenuBarBg, + ImGuiCol_ScrollbarBg, + ImGuiCol_ScrollbarGrab, + ImGuiCol_ScrollbarGrabHovered, + ImGuiCol_ScrollbarGrabActive, + ImGuiCol_ComboBg, + ImGuiCol_CheckMark, + ImGuiCol_SliderGrab, + ImGuiCol_SliderGrabActive, + ImGuiCol_Button, + ImGuiCol_ButtonHovered, + ImGuiCol_ButtonActive, + ImGuiCol_Header, + ImGuiCol_HeaderHovered, + ImGuiCol_HeaderActive, + ImGuiCol_Column, + ImGuiCol_ColumnHovered, + ImGuiCol_ColumnActive, + ImGuiCol_ResizeGrip, + ImGuiCol_ResizeGripHovered, + ImGuiCol_ResizeGripActive, + ImGuiCol_CloseButton, + ImGuiCol_CloseButtonHovered, + ImGuiCol_CloseButtonActive, + ImGuiCol_PlotLines, + ImGuiCol_PlotLinesHovered, + ImGuiCol_PlotHistogram, + ImGuiCol_PlotHistogramHovered, + ImGuiCol_TextSelectedBg, + ImGuiCol_TooltipBg, + ImGuiCol_ModalWindowDarkening, // darken entire screen when a modal window is active + ImGuiCol_COUNT +}; + +// Enumeration for PushStyleVar() / PopStyleVar() +// NB: the enum only refers to fields of ImGuiStyle() which makes sense to be pushed/poped in UI code. Feel free to add others. +enum ImGuiStyleVar_ +{ + ImGuiStyleVar_Alpha, // float + ImGuiStyleVar_WindowPadding, // ImVec2 + ImGuiStyleVar_WindowRounding, // float + ImGuiStyleVar_WindowMinSize, // ImVec2 + ImGuiStyleVar_ChildWindowRounding, // float + ImGuiStyleVar_FramePadding, // ImVec2 + ImGuiStyleVar_FrameRounding, // float + ImGuiStyleVar_ItemSpacing, // ImVec2 + ImGuiStyleVar_ItemInnerSpacing, // ImVec2 + ImGuiStyleVar_IndentSpacing, // float + ImGuiStyleVar_GrabMinSize // float +}; + +enum ImGuiAlign_ +{ + ImGuiAlign_Left = 1 << 0, + ImGuiAlign_Center = 1 << 1, + ImGuiAlign_Right = 1 << 2, + ImGuiAlign_Top = 1 << 3, + ImGuiAlign_VCenter = 1 << 4, + ImGuiAlign_Default = ImGuiAlign_Left | ImGuiAlign_Top +}; + +// Enumeration for ColorEditMode() +enum ImGuiColorEditMode_ +{ + ImGuiColorEditMode_UserSelect = -2, + ImGuiColorEditMode_UserSelectShowButton = -1, + ImGuiColorEditMode_RGB = 0, + ImGuiColorEditMode_HSV = 1, + ImGuiColorEditMode_HEX = 2 +}; + +// Enumeration for GetMouseCursor() +enum ImGuiMouseCursor_ +{ + ImGuiMouseCursor_Arrow = 0, + ImGuiMouseCursor_TextInput, // When hovering over InputText, etc. + ImGuiMouseCursor_Move, // Unused + ImGuiMouseCursor_ResizeNS, // Unused + ImGuiMouseCursor_ResizeEW, // When hovering over a column + ImGuiMouseCursor_ResizeNESW, // Unused + ImGuiMouseCursor_ResizeNWSE, // When hovering over the bottom-right corner of a window + ImGuiMouseCursor_Count_ +}; + +// Condition flags for ImGui::SetWindow***(), SetNextWindow***(), SetNextTreeNode***() functions +// All those functions treat 0 as a shortcut to ImGuiSetCond_Always +enum ImGuiSetCond_ +{ + ImGuiSetCond_Always = 1 << 0, // Set the variable + ImGuiSetCond_Once = 1 << 1, // Only set the variable on the first call per runtime session + ImGuiSetCond_FirstUseEver = 1 << 2, // Only set the variable if the window doesn't exist in the .ini file + ImGuiSetCond_Appearing = 1 << 3 // Only set the variable if the window is appearing after being inactive (or the first time) +}; + +struct ImGuiStyle +{ + float Alpha; // Global alpha applies to everything in ImGui + ImVec2 WindowPadding; // Padding within a window + ImVec2 WindowMinSize; // Minimum window size + float WindowRounding; // Radius of window corners rounding. Set to 0.0f to have rectangular windows + ImGuiAlign WindowTitleAlign; // Alignment for title bar text + float ChildWindowRounding; // Radius of child window corners rounding. Set to 0.0f to have rectangular windows + ImVec2 FramePadding; // Padding within a framed rectangle (used by most widgets) + float FrameRounding; // Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets). + ImVec2 ItemSpacing; // Horizontal and vertical spacing between widgets/lines + ImVec2 ItemInnerSpacing; // Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label) + ImVec2 TouchExtraPadding; // Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! + float WindowFillAlphaDefault; // Default alpha of window background, if not specified in ImGui::Begin() + float IndentSpacing; // Horizontal indentation when e.g. entering a tree node + float ColumnsMinSpacing; // Minimum horizontal spacing between two columns + float ScrollbarWidth; // Width of the vertical scrollbar + float ScrollbarRounding; // Radius of grab corners for scrollbar + float GrabMinSize; // Minimum width/height of a grab box for slider/scrollbar + float GrabRounding; // Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. + ImVec2 DisplayWindowPadding; // Window positions are clamped to be visible within the display area by at least this amount. Only covers regular windows. + ImVec2 DisplaySafeAreaPadding; // If you cannot see the edge of your screen (e.g. on a TV) increase the safe area padding. Covers popups/tooltips as well regular windows. + bool AntiAliasedLines; // Enable anti-aliasing on lines/borders. Disable if you are really tight on CPU/GPU. + bool AntiAliasedShapes; // Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.) + ImVec4 Colors[ImGuiCol_COUNT]; + + IMGUI_API ImGuiStyle(); +}; + +// This is where your app communicate with ImGui. Access via ImGui::GetIO(). +// Read 'Programmer guide' section in .cpp file for general usage. +struct ImGuiIO +{ + //------------------------------------------------------------------ + // Settings (fill once) // Default value: + //------------------------------------------------------------------ + + ImVec2 DisplaySize; // // Display size, in pixels. For clamping windows positions. + float DeltaTime; // = 1.0f/60.0f // Time elapsed since last frame, in seconds. + float IniSavingRate; // = 5.0f // Maximum time between saving positions/sizes to .ini file, in seconds. + const char* IniFilename; // = "imgui.ini" // Path to .ini file. NULL to disable .ini saving. + const char* LogFilename; // = "imgui_log.txt" // Path to .log file (default parameter to ImGui::LogToFile when no file is specified). + float MouseDoubleClickTime; // = 0.30f // Time for a double-click, in seconds. + float MouseDoubleClickMaxDist; // = 6.0f // Distance threshold to stay in to validate a double-click, in pixels. + float MouseDragThreshold; // = 6.0f // Distance threshold before considering we are dragging + int KeyMap[ImGuiKey_COUNT]; // // Map of indices into the KeysDown[512] entries array + float KeyRepeatDelay; // = 0.250f // When holding a key/button, time before it starts repeating, in seconds. (for actions where 'repeat' is active) + float KeyRepeatRate; // = 0.020f // When holding a key/button, rate at which it repeats, in seconds. + void* UserData; // = NULL // Store your own data for retrieval by callbacks. + + ImFontAtlas* Fonts; // // Load and assemble one or more fonts into a single tightly packed texture. Output to Fonts array. + float FontGlobalScale; // = 1.0f // Global scale all fonts + bool FontAllowUserScaling; // = false // Allow user scaling text of individual window with CTRL+Wheel. + ImVec2 DisplayVisibleMin; // (0.0f,0.0f) // If you use DisplaySize as a virtual space larger than your screen, set DisplayVisibleMin/Max to the visible area. + ImVec2 DisplayVisibleMax; // (0.0f,0.0f) // If the values are the same, we defaults to Min=(0.0f) and Max=DisplaySize + + //------------------------------------------------------------------ + // User Functions + //------------------------------------------------------------------ + + // REQUIRED: rendering function. + // See example code if you are unsure of how to implement this. + void (*RenderDrawListsFn)(ImDrawData* data); + + // Optional: access OS clipboard + // (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures) + const char* (*GetClipboardTextFn)(); + void (*SetClipboardTextFn)(const char* text); + + // Optional: override memory allocations. MemFreeFn() may be called with a NULL pointer. + // (default to posix malloc/free) + void* (*MemAllocFn)(size_t sz); + void (*MemFreeFn)(void* ptr); + + // Optional: notify OS Input Method Editor of the screen position of your cursor for text input position (e.g. when using Japanese/Chinese IME in Windows) + // (default to use native imm32 api on Windows) + void (*ImeSetInputScreenPosFn)(int x, int y); + void* ImeWindowHandle; // (Windows) Set this to your HWND to get automatic IME cursor positioning. + + //------------------------------------------------------------------ + // Input - Fill before calling NewFrame() + //------------------------------------------------------------------ + + ImVec2 MousePos; // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.) + bool MouseDown[5]; // Mouse buttons: left, right, middle + extras. ImGui itself mostly only uses left button (BeginPopupContext** are using right button). Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. + float MouseWheel; // Mouse wheel: 1 unit scrolls about 5 lines text. + bool MouseDrawCursor; // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). + bool KeyCtrl; // Keyboard modifier pressed: Control + bool KeyShift; // Keyboard modifier pressed: Shift + bool KeyAlt; // Keyboard modifier pressed: Alt + bool KeysDown[512]; // Keyboard keys that are pressed (in whatever storage order you naturally have access to keyboard data) + ImWchar InputCharacters[16+1]; // List of characters input (translated by user from keypress+keyboard state). Fill using AddInputCharacter() helper. + + // Functions + IMGUI_API void AddInputCharacter(ImWchar c); // Helper to add a new character into InputCharacters[] + IMGUI_API void AddInputCharactersUTF8(const char* utf8_chars); // Helper to add new characters into InputCharacters[] from an UTF-8 string + + //------------------------------------------------------------------ + // Output - Retrieve after calling NewFrame(), you can use them to discard inputs or hide them from the rest of your application + //------------------------------------------------------------------ + + bool WantCaptureMouse; // Mouse is hovering a window or widget is active (= ImGui will use your mouse input) + bool WantCaptureKeyboard; // Widget is active (= ImGui will use your keyboard input) + float Framerate; // Framerate estimation, in frame per second. Rolling average estimation based on IO.DeltaTime over 120 frames + int MetricsAllocs; // Number of active memory allocations + int MetricsRenderVertices; // Vertices output during last call to Render() + int MetricsRenderIndices; // Indices output during last call to Render() = number of triangles * 3 + int MetricsActiveWindows; // Number of visible windows (exclude child windows) + + //------------------------------------------------------------------ + // [Internal] ImGui will maintain those fields for you + //------------------------------------------------------------------ + + ImVec2 MousePosPrev; // Previous mouse position + ImVec2 MouseDelta; // Mouse delta. Note that this is zero if either current or previous position are negative to allow mouse enabling/disabling. + bool MouseClicked[5]; // Mouse button went from !Down to Down + ImVec2 MouseClickedPos[5]; // Position at time of clicking + float MouseClickedTime[5]; // Time of last click (used to figure out double-click) + bool MouseDoubleClicked[5]; // Has mouse button been double-clicked? + bool MouseReleased[5]; // Mouse button went from Down to !Down + bool MouseDownOwned[5]; // Track if button was clicked inside a window. We don't request mouse capture from the application if click started outside ImGui bounds. + float MouseDownDuration[5]; // Duration the mouse button has been down (0.0f == just clicked) + float MouseDownDurationPrev[5]; // Previous time the mouse button has been down + float MouseDragMaxDistanceSqr[5]; // Squared maximum distance of how much mouse has traveled from the click point + float KeysDownDuration[512]; // Duration the keyboard key has been down (0.0f == just pressed) + float KeysDownDurationPrev[512]; // Previous duration the key has been down + + IMGUI_API ImGuiIO(); +}; + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +// Lightweight std::vector<> like class to avoid dragging dependencies (also: windows implementation of STL with debug enabled is absurdly slow, so let's bypass it so our code runs fast in debug). +// Our implementation does NOT call c++ constructors because we don't use them in ImGui. Don't use this class as a straight std::vector replacement in your code! +template +class ImVector +{ +public: + int Size; + int Capacity; + T* Data; + + typedef T value_type; + typedef value_type* iterator; + typedef const value_type* const_iterator; + + ImVector() { Size = Capacity = 0; Data = NULL; } + ~ImVector() { if (Data) ImGui::MemFree(Data); } + + inline bool empty() const { return Size == 0; } + inline int size() const { return Size; } + inline int capacity() const { return Capacity; } + + inline value_type& operator[](int i) { IM_ASSERT(i < Size); return Data[i]; } + inline const value_type& operator[](int i) const { IM_ASSERT(i < Size); return Data[i]; } + + inline void clear() { if (Data) { Size = Capacity = 0; ImGui::MemFree(Data); Data = NULL; } } + inline iterator begin() { return Data; } + inline const_iterator begin() const { return Data; } + inline iterator end() { return Data + Size; } + inline const_iterator end() const { return Data + Size; } + inline value_type& front() { IM_ASSERT(Size > 0); return Data[0]; } + inline const value_type& front() const { IM_ASSERT(Size > 0); return Data[0]; } + inline value_type& back() { IM_ASSERT(Size > 0); return Data[Size-1]; } + inline const value_type& back() const { IM_ASSERT(Size > 0); return Data[Size-1]; } + inline void swap(ImVector& rhs) { int rhs_size = rhs.Size; rhs.Size = Size; Size = rhs_size; int rhs_cap = rhs.Capacity; rhs.Capacity = Capacity; Capacity = rhs_cap; value_type* rhs_data = rhs.Data; rhs.Data = Data; Data = rhs_data; } + + inline int _grow_capacity(int new_size) { int new_capacity = Capacity ? (Capacity + Capacity/2) : 8; return new_capacity > new_size ? new_capacity : new_size; } + + inline void resize(int new_size) { if (new_size > Capacity) reserve(_grow_capacity(new_size)); Size = new_size; } + inline void reserve(int new_capacity) + { + if (new_capacity <= Capacity) return; + T* new_data = (value_type*)ImGui::MemAlloc((size_t)new_capacity * sizeof(value_type)); + memcpy(new_data, Data, (size_t)Size * sizeof(value_type)); + ImGui::MemFree(Data); + Data = new_data; + Capacity = new_capacity; + } + + inline void push_back(const value_type& v) { if (Size == Capacity) reserve(_grow_capacity(Size+1)); Data[Size++] = v; } + inline void pop_back() { IM_ASSERT(Size > 0); Size--; } + + inline iterator erase(const_iterator it) { IM_ASSERT(it >= begin() && it < end()); const ptrdiff_t off = it - begin(); memmove(Data + off, Data + off + 1, ((size_t)Size - (size_t)off - 1) * sizeof(value_type)); Size--; return Data + off; } + inline iterator insert(const_iterator it, const value_type& v) { IM_ASSERT(it >= begin() && it <= end()); const ptrdiff_t off = it - begin(); if (Size == Capacity) reserve(Capacity ? Capacity * 2 : 4); if (off < (int)Size) memmove(Data + off + 1, Data + off, ((size_t)Size - (size_t)off) * sizeof(value_type)); Data[off] = v; Size++; return Data + off; } +}; + +// Helper: execute a block of code once a frame only +// Convenient if you want to quickly create an UI within deep-nested code that runs multiple times every frame. +// Usage: +// IMGUI_ONCE_UPON_A_FRAME +// { +// // code block will be executed one per frame +// } +// Attention! the macro expands into 2 statement so make sure you don't use it within e.g. an if() statement without curly braces. +#define IMGUI_ONCE_UPON_A_FRAME static ImGuiOnceUponAFrame imgui_oaf##__LINE__; if (imgui_oaf##__LINE__) +struct ImGuiOnceUponAFrame +{ + ImGuiOnceUponAFrame() { RefFrame = -1; } + mutable int RefFrame; + operator bool() const { int current_frame = ImGui::GetFrameCount(); if (RefFrame == current_frame) return false; RefFrame = current_frame; return true; } +}; + +// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" +struct ImGuiTextFilter +{ + struct TextRange + { + const char* b; + const char* e; + + TextRange() { b = e = NULL; } + TextRange(const char* _b, const char* _e) { b = _b; e = _e; } + const char* begin() const { return b; } + const char* end() const { return e; } + bool empty() const { return b == e; } + char front() const { return *b; } + static bool isblank(char c) { return c == ' ' || c == '\t'; } + void trim_blanks() { while (b < e && isblank(*b)) b++; while (e > b && isblank(*(e-1))) e--; } + IMGUI_API void split(char separator, ImVector& out); + }; + + char InputBuf[256]; + ImVector Filters; + int CountGrep; + + ImGuiTextFilter(const char* default_filter = ""); + void Clear() { InputBuf[0] = 0; Build(); } + void Draw(const char* label = "Filter (inc,-exc)", float width = -1.0f); // Helper calling InputText+Build + bool PassFilter(const char* val) const; + bool IsActive() const { return !Filters.empty(); } + IMGUI_API void Build(); +}; + +// Helper: Text buffer for logging/accumulating text +struct ImGuiTextBuffer +{ + ImVector Buf; + + ImGuiTextBuffer() { Buf.push_back(0); } + const char* begin() const { return &Buf.front(); } + const char* end() const { return &Buf.back(); } // Buf is zero-terminated, so end() will point on the zero-terminator + int size() const { return Buf.Size-1; } + bool empty() { return size() >= 1; } + void clear() { Buf.clear(); Buf.push_back(0); } + IMGUI_API void append(const char* fmt, ...); + IMGUI_API void appendv(const char* fmt, va_list args); +}; + +// Helper: Key->value storage +// - Store collapse state for a tree (Int 0/1) +// - Store color edit options (Int using values in ImGuiColorEditMode enum). +// - Custom user storage for temporary values. +// Typically you don't have to worry about this since a storage is held within each Window. +// Declare your own storage if: +// - You want to manipulate the open/close state of a particular sub-tree in your interface (tree node uses Int 0/1 to store their state). +// - You want to store custom debug data easily without adding or editing structures in your code. +struct ImGuiStorage +{ + struct Pair + { + ImGuiID key; + union { int val_i; float val_f; void* val_p; }; + Pair(ImGuiID _key, int _val_i) { key = _key; val_i = _val_i; } + Pair(ImGuiID _key, float _val_f) { key = _key; val_f = _val_f; } + Pair(ImGuiID _key, void* _val_p) { key = _key; val_p = _val_p; } + }; + ImVector Data; + + // - Get***() functions find pair, never add/allocate. Pairs are sorted so a query is O(log N) + // - Set***() functions find pair, insertion on demand if missing. + // - Sorted insertion is costly but should amortize. A typical frame shouldn't need to insert any new pair. + IMGUI_API void Clear(); + IMGUI_API int GetInt(ImGuiID key, int default_val = 0) const; + IMGUI_API void SetInt(ImGuiID key, int val); + IMGUI_API float GetFloat(ImGuiID key, float default_val = 0.0f) const; + IMGUI_API void SetFloat(ImGuiID key, float val); + IMGUI_API void* GetVoidPtr(ImGuiID key) const; // default_val is NULL + IMGUI_API void SetVoidPtr(ImGuiID key, void* val); + + // - Get***Ref() functions finds pair, insert on demand if missing, return pointer. Useful if you intend to do Get+Set. + // - References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer. + // - A typical use case where this is convenient: + // float* pvar = ImGui::GetFloatRef(key); ImGui::SliderFloat("var", pvar, 0, 100.0f); some_var += *pvar; + // - You can also use this to quickly create temporary editable values during a session of using Edit&Continue, without restarting your application. + IMGUI_API int* GetIntRef(ImGuiID key, int default_val = 0); + IMGUI_API float* GetFloatRef(ImGuiID key, float default_val = 0); + IMGUI_API void** GetVoidPtrRef(ImGuiID key, void* default_val = NULL); + + // Use on your own storage if you know only integer are being stored (open/close all tree nodes) + IMGUI_API void SetAllInt(int val); +}; + +// Shared state of InputText(), passed to callback when a ImGuiInputTextFlags_Callback* flag is used. +struct ImGuiTextEditCallbackData +{ + ImGuiInputTextFlags EventFlag; // One of ImGuiInputTextFlags_Callback* // Read-only + ImGuiInputTextFlags Flags; // What user passed to InputText() // Read-only + void* UserData; // What user passed to InputText() // Read-only + + // CharFilter event: + ImWchar EventChar; // Character input // Read-write (replace character or set to zero) + + // Completion,History,Always events: + ImGuiKey EventKey; // Key pressed (Up/Down/TAB) // Read-only + char* Buf; // Current text // Read-write (pointed data only) + int BufSize; // // Read-only + bool BufDirty; // Set if you modify Buf directly // Write + int CursorPos; // // Read-write + int SelectionStart; // // Read-write (== to SelectionEnd when no selection) + int SelectionEnd; // // Read-write + + // NB: calling those function loses selection. + void DeleteChars(int pos, int bytes_count); + void InsertChars(int pos, const char* text, const char* text_end = NULL); + bool HasSelection() const { return SelectionStart != SelectionEnd; } +}; + +// ImColor() is just a helper that implicity converts to either ImU32 (packed 4x1 byte) or ImVec4 (4x1 float) +// None of the ImGui API are using ImColor directly but you can use it as a convenience to pass colors in either ImU32 or ImVec4 formats. +struct ImColor +{ + ImVec4 Value; + + ImColor(int r, int g, int b, int a = 255) { Value.x = (float)r / 255.0f; Value.y = (float)g / 255.0f; Value.z = (float)b / 255.0f; Value.w = (float)a / 255.0f; } + ImColor(float r, float g, float b, float a = 1.0f) { Value.x = r; Value.y = g; Value.z = b; Value.w = a; } + ImColor(const ImVec4& col) { Value = col; } + operator ImU32() const { return ImGui::ColorConvertFloat4ToU32(Value); } + operator ImVec4() const { return Value; } + + static ImColor HSV(float h, float s, float v, float a = 1.0f) { float r,g,b; ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b); return ImColor(r,g,b,a); } +}; + +// Helper: Manually clip large list of items. +// If you are displaying thousands of even spaced items and you have a random access to the list, you can perform clipping yourself to save on CPU. +// Usage: +// ImGuiListClipper clipper(count, ImGui::GetTextLineHeightWithSpacing()); +// for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) // display only visible items +// ImGui::Text("line number %d", i); +// clipper.End(); +struct ImGuiListClipper +{ + float ItemsHeight; + int ItemsCount, DisplayStart, DisplayEnd; + + ImGuiListClipper() { ItemsHeight = 0.0f; ItemsCount = DisplayStart = DisplayEnd = -1; } + ImGuiListClipper(int count, float height) { ItemsCount = -1; Begin(count, height); } + ~ImGuiListClipper() { IM_ASSERT(ItemsCount == -1); } // user forgot to call End() + + void Begin(int count, float height) // items_height: generally pass GetTextLineHeightWithSpacing() or GetItemsLineHeightWithSpacing() + { + IM_ASSERT(ItemsCount == -1); + ItemsCount = count; + ItemsHeight = height; + ImGui::CalcListClipping(ItemsCount, ItemsHeight, &DisplayStart, &DisplayEnd); // calculate how many to clip/display + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + DisplayStart * ItemsHeight); // advance cursor + } + void End() + { + IM_ASSERT(ItemsCount >= 0); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (ItemsCount - DisplayEnd) * ItemsHeight); // advance cursor + ItemsCount = -1; + } +}; + +//----------------------------------------------------------------------------- +// Draw List +// Hold a series of drawing commands. The user provides a renderer for ImDrawData which essentially contains an array of ImDrawList. +//----------------------------------------------------------------------------- + +// Draw callbacks for advanced uses. +// NB- You most likely do NOT need to use draw callbacks just to create your own widget or customized UI rendering (you can poke into the draw list for that) +// Draw callback are useful for example if you want to render a complex 3D scene inside a UI element. +// The expected behavior from your rendering loop is: +// if (cmd.UserCallback != NULL) +// cmd.UserCallback(parent_list, cmd); +// else +// RenderTriangles() +// It is up to you to decide if your rendering loop or the callback should be responsible for backup/restoring rendering state. +typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd); + +// Typically, 1 command = 1 gpu draw call (unless command is a callback) +struct ImDrawCmd +{ + unsigned int ElemCount; // Number of indices (multiple of 3) to be rendered as triangles. Vertices are stored in the callee ImDrawList's vtx_buffer[] array, indices in idx_buffer[]. + ImVec4 ClipRect; // Clipping rectangle (x1, y1, x2, y2) + ImTextureID TextureId; // User-provided texture ID. Set by user in ImfontAtlas::SetTexID() for fonts or passed to Image*() functions. Ignore if never using images or multiple fonts atlas. + ImDrawCallback UserCallback; // If != NULL, call the function instead of rendering the vertices. clip_rect and texture_id will be set normally. + void* UserCallbackData; // The draw callback code can access this. +}; + +// Vertex index +typedef unsigned short ImDrawIdx; + +// Vertex layout +#ifndef IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT +struct ImDrawVert +{ + ImVec2 pos; + ImVec2 uv; + ImU32 col; +}; +#else +// You can change the vertex format layout by defining IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT in imconfig.h +// The code expect ImVec2 pos (8 bytes), ImVec2 uv (8 bytes), ImU32 col (4 bytes), but you can re-order them or add other fields as needed to simplify integration in your engine. +// The type has to be described by the #define (you can either declare the struct or use a typedef) +IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT; +#endif + +// Draw channels are used by the Columns API to "split" the render list into different channels while building, so items of each column can be batched together. +struct ImDrawChannel +{ + ImVector CmdBuffer; + ImVector IdxBuffer; +}; + +// Draw command list +// This is the low-level list of polygons that ImGui functions are filling. At the end of the frame, all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering. +// At the moment, each ImGui window contains its own ImDrawList but they could potentially be merged in the future. +// If you want to add custom rendering within a window, you can use ImGui::GetWindowDrawList() to access the current draw list and add your own primitives. +// You can interleave normal ImGui:: calls and adding primitives to the current draw list. +// All positions are in screen coordinates (0,0=top-left, 1 pixel per unit). Primitives are always added to the list and not culled (culling is done at render time and at a higher-level by ImGui:: functions). +// Note that this only gives you access to rendering polygons. If your intent is to create custom widgets and the publicly exposed functions/data aren't sufficient, you can add code in imgui_user.inl +struct ImDrawList +{ + // This is what you have to render + ImVector CmdBuffer; // Commands. Typically 1 command = 1 gpu draw call. + ImVector IdxBuffer; // Index buffer. Each command consume ImDrawCmd::ElemCount of those + ImVector VtxBuffer; // Vertex buffer. + + // [Internal, used while building lists] + const char* _OwnerName; // Pointer to owner window's name (if any) for debugging + unsigned int _VtxCurrentIdx; // [Internal] == VtxBuffer.Size + ImDrawVert* _VtxWritePtr; // [Internal] point within VtxBuffer.Data after each add command (to avoid using the ImVector<> operators too much) + ImDrawIdx* _IdxWritePtr; // [Internal] point within IdxBuffer.Data after each add command (to avoid using the ImVector<> operators too much) + ImVector _ClipRectStack; // [Internal] + ImVector _TextureIdStack; // [Internal] + ImVector _Path; // [Internal] current path building + int _ChannelCurrent; // [Internal] current channel number (0) + ImVector _Channels; // [Internal] draw channels for columns API + + ImDrawList() { _OwnerName = NULL; Clear(); } + ~ImDrawList() { ClearFreeMemory(); } + IMGUI_API void Clear(); + IMGUI_API void ClearFreeMemory(); + IMGUI_API void PushClipRect(const ImVec4& clip_rect); // Scissoring. The values are x1, y1, x2, y2. + IMGUI_API void PushClipRectFullScreen(); + IMGUI_API void PopClipRect(); + IMGUI_API void PushTextureID(const ImTextureID& texture_id); + IMGUI_API void PopTextureID(); + + // Primitives + IMGUI_API void AddLine(const ImVec2& a, const ImVec2& b, ImU32 col, float thickness = 1.0f); + IMGUI_API void AddRect(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding = 0.0f, int rounding_corners = 0x0F); + IMGUI_API void AddRectFilled(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding = 0.0f, int rounding_corners = 0x0F); + IMGUI_API void AddRectFilledMultiColor(const ImVec2& a, const ImVec2& b, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left); + IMGUI_API void AddTriangleFilled(const ImVec2& a, const ImVec2& b, const ImVec2& c, ImU32 col); + IMGUI_API void AddCircle(const ImVec2& centre, float radius, ImU32 col, int num_segments = 12); + IMGUI_API void AddCircleFilled(const ImVec2& centre, float radius, ImU32 col, int num_segments = 12); + IMGUI_API void AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL); + IMGUI_API void AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL, float wrap_width = 0.0f, const ImVec4* cpu_fine_clip_rect = NULL); + IMGUI_API void AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv0, const ImVec2& uv1, ImU32 col = 0xFFFFFFFF); + IMGUI_API void AddPolyline(const ImVec2* points, const int num_points, ImU32 col, bool closed, float thickness, bool anti_aliased); + IMGUI_API void AddConvexPolyFilled(const ImVec2* points, const int num_points, ImU32 col, bool anti_aliased); + + // Stateful path API, add points then finish with PathFill() or PathStroke() + inline void PathClear() { _Path.resize(0); } + inline void PathLineTo(const ImVec2& p) { _Path.push_back(p); } + IMGUI_API void PathArcTo(const ImVec2& centre, float radius, float a_min, float a_max, int num_segments = 10); + IMGUI_API void PathArcToFast(const ImVec2& centre, float radius, int a_min_of_12, int a_max_of_12); + IMGUI_API void PathRect(const ImVec2& a, const ImVec2& b, float rounding = 0.0f, int rounding_corners = 0x0F); + inline void PathFill(ImU32 col) { AddConvexPolyFilled(_Path.Data, _Path.Size, col, true); PathClear(); } + inline void PathStroke(ImU32 col, bool closed, float thickness = 1.0f) { AddPolyline(_Path.Data, _Path.Size, col, closed, thickness, true); PathClear(); } + + // Advanced + IMGUI_API void AddCallback(ImDrawCallback callback, void* callback_data); // Your rendering function must check for 'UserCallback' in ImDrawCmd and call the function instead of rendering triangles. + IMGUI_API void AddDrawCmd(); // This is useful if you need to forcefully create a new draw call (to allow for dependent rendering / blending). Otherwise primitives are merged into the same draw-call as much as possible + IMGUI_API void ChannelsSplit(int channel_count); + IMGUI_API void ChannelsMerge(int channel_count); + IMGUI_API void ChannelsSetCurrent(int idx); + + // Internal helpers + // NB: all primitives needs to be reserved via PrimReserve() beforehand! + IMGUI_API void PrimReserve(int idx_count, int vtx_count); + IMGUI_API void PrimRect(const ImVec2& a, const ImVec2& b, ImU32 col); + IMGUI_API void PrimRectUV(const ImVec2& a, const ImVec2& b, const ImVec2& uv_a, const ImVec2& uv_b, ImU32 col); + inline void PrimVtx(const ImVec2& pos, const ImVec2& uv, ImU32 col) { PrimWriteIdx((ImDrawIdx)_VtxCurrentIdx); PrimWriteVtx(pos, uv, col); } + inline void PrimWriteVtx(const ImVec2& pos, const ImVec2& uv, ImU32 col){ _VtxWritePtr->pos = pos; _VtxWritePtr->uv = uv; _VtxWritePtr->col = col; _VtxWritePtr++; _VtxCurrentIdx++; } + inline void PrimWriteIdx(ImDrawIdx idx) { *_IdxWritePtr = idx; _IdxWritePtr++; } + IMGUI_API void UpdateClipRect(); + IMGUI_API void UpdateTextureID(); +}; + +// All draw data to render an ImGui frame +struct ImDrawData +{ + ImDrawList** CmdLists; + int CmdListsCount; + int TotalVtxCount; // For convenience, sum of all cmd_lists vtx_buffer.Size + int TotalIdxCount; // For convenience, sum of all cmd_lists idx_buffer.Size + + // Functions + void DeIndexAllBuffers(); // For backward compatibility: convert all buffers from indexed to de-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. Always prefer indexed rendering! +}; + +struct ImFontConfig +{ + void* FontData; // // TTF data + int FontDataSize; // // TTF data size + bool FontDataOwnedByAtlas; // true // TTF data ownership taken by the container ImFontAtlas (will delete memory itself). Set to true + int FontNo; // 0 // Index of font within TTF file + float SizePixels; // // Size in pixels for rasterizer + int OversampleH, OversampleV; // 3, 1 // Rasterize at higher quality for sub-pixel positioning. We don't use sub-pixel positions on the Y axis. + bool PixelSnapH; // false // Align every character to pixel boundary (if enabled, set OversampleH/V to 1) + ImVec2 GlyphExtraSpacing; // 0, 0 // Extra spacing (in pixels) between glyphs + const ImWchar* GlyphRanges; // // List of Unicode range (2 value per range, values are inclusive, zero-terminated list) + bool MergeMode; // false // Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). + bool MergeGlyphCenterV; // false // When merging (multiple ImFontInput for one ImFont), vertically center new glyphs instead of aligning their baseline + + // [Internal] + char Name[32]; // Name (strictly for debugging) + ImFont* DstFont; + + IMGUI_API ImFontConfig(); +}; + +// Load and rasterize multiple TTF fonts into a same texture. +// Sharing a texture for multiple fonts allows us to reduce the number of draw calls during rendering. +// We also add custom graphic data into the texture that serves for ImGui. +// 1. (Optional) Call AddFont*** functions. If you don't call any, the default font will be loaded for you. +// 2. Call GetTexDataAsAlpha8() or GetTexDataAsRGBA32() to build and retrieve pixels data. +// 3. Upload the pixels data into a texture within your graphics system. +// 4. Call SetTexID(my_tex_id); and pass the pointer/identifier to your texture. This value will be passed back to you during rendering to identify the texture. +// 5. Call ClearTexData() to free textures memory on the heap. +struct ImFontAtlas +{ + IMGUI_API ImFontAtlas(); + IMGUI_API ~ImFontAtlas(); + IMGUI_API ImFont* AddFont(const ImFontConfig* font_cfg); + IMGUI_API ImFont* AddFontDefault(const ImFontConfig* font_cfg = NULL); + IMGUI_API ImFont* AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); + IMGUI_API ImFont* AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // Transfer ownership of 'ttf_data' to ImFontAtlas, will be deleted after Build() + IMGUI_API ImFont* AddFontFromMemoryCompressedTTF(const void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // 'compressed_ttf_data' still owned by caller. Compress with binary_to_compressed_c.cpp + IMGUI_API ImFont* AddFontFromMemoryCompressedBase85TTF(const char* compressed_ttf_data_base85, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // 'compressed_ttf_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 paramaeter + IMGUI_API void ClearTexData(); // Clear the CPU-side texture data. Saves RAM once the texture has been copied to graphics memory. + IMGUI_API void ClearInputData(); // Clear the input TTF data (inc sizes, glyph ranges) + IMGUI_API void ClearFonts(); // Clear the ImGui-side font data (glyphs storage, UV coordinates) + IMGUI_API void Clear(); // Clear all + + // Retrieve texture data + // User is in charge of copying the pixels into graphics memory, then call SetTextureUserID() + // After loading the texture into your graphic system, store your texture handle in 'TexID' (ignore if you aren't using multiple fonts nor images) + // RGBA32 format is provided for convenience and high compatibility, but note that all RGB pixels are white, so 75% of the memory is wasted. + // Pitch = Width * BytesPerPixels + IMGUI_API void GetTexDataAsAlpha8(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel = NULL); // 1 byte per-pixel + IMGUI_API void GetTexDataAsRGBA32(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel = NULL); // 4 bytes-per-pixel + IMGUI_API void SetTexID(void* id) { TexID = id; } + + // Helpers to retrieve list of common Unicode ranges (2 value per range, values are inclusive, zero-terminated list) + // (Those functions could be static but aren't so most users don't have to refer to the ImFontAtlas:: name ever if in their code; just using io.Fonts->) + IMGUI_API const ImWchar* GetGlyphRangesDefault(); // Basic Latin, Extended Latin + IMGUI_API const ImWchar* GetGlyphRangesJapanese(); // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs + IMGUI_API const ImWchar* GetGlyphRangesChinese(); // Japanese + full set of about 21000 CJK Unified Ideographs + IMGUI_API const ImWchar* GetGlyphRangesCyrillic(); // Default + about 400 Cyrillic characters + + // Members + // (Access texture data via GetTexData*() calls which will setup a default font for you.) + void* TexID; // User data to refer to the texture once it has been uploaded to user's graphic systems. It ia passed back to you during rendering. + unsigned char* TexPixelsAlpha8; // 1 component per pixel, each component is unsigned 8-bit. Total size = TexWidth * TexHeight + unsigned int* TexPixelsRGBA32; // 4 component per pixel, each component is unsigned 8-bit. Total size = TexWidth * TexHeight * 4 + int TexWidth; + int TexHeight; + ImVec2 TexUvWhitePixel; // Texture coordinates to a white pixel (part of the TexExtraData block) + ImVector Fonts; + + // Private + ImVector ConfigData; // Internal data + IMGUI_API bool Build(); // Build pixels data. This is automatically for you by the GetTexData*** functions. + IMGUI_API void RenderCustomTexData(int pass, void* rects); +}; + +// Font runtime data and rendering +// ImFontAtlas automatically loads a default embedded font for you when you call GetTexDataAsAlpha8() or GetTexDataAsRGBA32(). +struct ImFont +{ + // Members: Settings + float FontSize; // // Height of characters, set during loading (don't change after loading) + float Scale; // = 1.0f // Base font scale, multiplied by the per-window font scale which you can adjust with SetFontScale() + ImVec2 DisplayOffset; // = (0.0f,0.0f) // Offset font rendering by xx pixels + ImWchar FallbackChar; // = '?' // Replacement glyph if one isn't found. Only set via SetFallbackChar() + ImFontConfig* ConfigData; // // Pointer within ImFontAtlas->ConfigData + int ConfigDataCount; // + + // Members: Runtime data + struct Glyph + { + ImWchar Codepoint; + float XAdvance; + float X0, Y0, X1, Y1; + float U0, V0, U1, V1; // Texture coordinates + }; + float Ascent, Descent; // Ascent: distance from top to bottom of e.g. 'A' [0..FontSize] + ImFontAtlas* ContainerAtlas; // What we has been loaded into + ImVector Glyphs; + const Glyph* FallbackGlyph; // == FindGlyph(FontFallbackChar) + float FallbackXAdvance; // + ImVector IndexXAdvance; // Sparse. Glyphs->XAdvance directly indexable (for CalcTextSize functions which are often bottleneck in large UI) + ImVector IndexLookup; // Sparse. Index glyphs by Unicode code-point + + // Methods + IMGUI_API ImFont(); + IMGUI_API ~ImFont(); + IMGUI_API void Clear(); + IMGUI_API void BuildLookupTable(); + IMGUI_API float GetCharAdvance(unsigned short c) const { return ((int)c < IndexXAdvance.Size) ? IndexXAdvance[(int)c] : FallbackXAdvance; } + IMGUI_API const Glyph* FindGlyph(unsigned short c) const; + IMGUI_API void SetFallbackChar(ImWchar c); + IMGUI_API bool IsLoaded() const { return ContainerAtlas != NULL; } + + // 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. + // 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + IMGUI_API ImVec2 CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end = NULL, const char** remaining = NULL) const; // utf8 + IMGUI_API const char* CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const; + IMGUI_API void RenderText(float size, ImVec2 pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, ImDrawList* draw_list, float wrap_width = 0.0f, bool cpu_fine_clip = false) const; +}; + +//---- Include imgui_user.h at the end of imgui.h +//---- So you can include code that extends ImGui using any of the types declared above. +//---- (also convenient for user to only explicitly include vanilla imgui.h) +#ifdef IMGUI_INCLUDE_IMGUI_USER_H +#include "imgui_user.h" +#endif diff --git a/samples/dual_layer/D3D11/src/imgui/imgui_demo.cpp b/samples/dual_layer/D3D11/src/imgui/imgui_demo.cpp new file mode 100644 index 0000000..255c463 --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/imgui_demo.cpp @@ -0,0 +1,2048 @@ +// ImGui library v1.44 +// Demo code + +// Don't remove this file from your project! It is useful reference code that you can execute. +// You can call ImGui::ShowTestWindow() in your code to learn about various features of ImGui. +// Everything in this file will be stripped out by the linker if you don't call ImGui::ShowTestWindow(). + +#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include "imgui.h" +#include // toupper, isprint +#include // sqrtf, fabsf, fmodf, powf, cosf, sinf, floorf, ceilf +#include // vsnprintf, sscanf, printf + +#ifdef _MSC_VER +#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) +#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen +#define snprintf _snprintf +#endif +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wdeprecated-declarations" // warning : 'xx' is deprecated: The POSIX name for this item.. // for strdup used in demo code (so user can copy & paste the code) +#pragma clang diagnostic ignored "-Wint-to-void-pointer-cast" // warning : cast to 'void *' from smaller integer type 'int' +#endif +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wint-to-pointer-cast" // warning: cast to pointer from integer of different size +#endif + +// Play it nice with Windows users. Notepad in 2015 still doesn't display text data with Unix-style \n. +#ifdef _MSC_VER +#define IM_NEWLINE "\r\n" +#else +#define IM_NEWLINE "\n" +#endif + +#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR)/sizeof(*_ARR))) + +//----------------------------------------------------------------------------- +// DEMO CODE +//----------------------------------------------------------------------------- + +#ifndef IMGUI_DISABLE_TEST_WINDOWS + +static void ShowExampleAppConsole(bool* opened); +static void ShowExampleAppLayout(bool* opened); +static void ShowExampleAppLongText(bool* opened); +static void ShowExampleAppAutoResize(bool* opened); +static void ShowExampleAppFixedOverlay(bool* opened); +static void ShowExampleAppManipulatingWindowTitle(bool* opened); +static void ShowExampleAppCustomRendering(bool* opened); +static void ShowExampleAppMainMenuBar(); +static void ShowExampleMenuFile(); + +static void ShowHelpMarker(const char* desc) +{ + ImGui::TextDisabled("(?)"); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip(desc); +} + +void ImGui::ShowUserGuide() +{ + ImGui::BulletText("Double-click on title bar to collapse window."); + ImGui::BulletText("Click and drag on lower right corner to resize window."); + ImGui::BulletText("Click and drag on any empty space to move window."); + ImGui::BulletText("Mouse Wheel to scroll."); + if (ImGui::GetIO().FontAllowUserScaling) + ImGui::BulletText("CTRL+Mouse Wheel to zoom window contents."); + ImGui::BulletText("TAB/SHIFT+TAB to cycle through keyboard editable fields."); + ImGui::BulletText("CTRL+Click on a slider or drag box to input text."); + ImGui::BulletText( + "While editing text:\n" + "- Hold SHIFT or use mouse to select text\n" + "- CTRL+Left/Right to word jump\n" + "- CTRL+A or double-click to select all\n" + "- CTRL+X,CTRL+C,CTRL+V clipboard\n" + "- CTRL+Z,CTRL+Y undo/redo\n" + "- ESCAPE to revert\n" + "- You can apply arithmetic operators +,*,/ on numerical values.\n" + " Use +- to subtract.\n"); +} + +// Demonstrate most ImGui features (big function!) +void ImGui::ShowTestWindow(bool* opened) +{ + // Examples apps + static bool show_app_metrics = false; + static bool show_app_main_menu_bar = false; + static bool show_app_console = false; + static bool show_app_layout = false; + static bool show_app_long_text = false; + static bool show_app_auto_resize = false; + static bool show_app_fixed_overlay = false; + static bool show_app_custom_rendering = false; + static bool show_app_manipulating_window_title = false; + static bool show_app_about = false; + if (show_app_metrics) ImGui::ShowMetricsWindow(&show_app_metrics); + if (show_app_main_menu_bar) ShowExampleAppMainMenuBar(); + if (show_app_console) ShowExampleAppConsole(&show_app_console); + if (show_app_layout) ShowExampleAppLayout(&show_app_layout); + if (show_app_long_text) ShowExampleAppLongText(&show_app_long_text); + if (show_app_auto_resize) ShowExampleAppAutoResize(&show_app_auto_resize); + if (show_app_fixed_overlay) ShowExampleAppFixedOverlay(&show_app_fixed_overlay); + if (show_app_manipulating_window_title) ShowExampleAppManipulatingWindowTitle(&show_app_manipulating_window_title); + if (show_app_custom_rendering) ShowExampleAppCustomRendering(&show_app_custom_rendering); + if (show_app_about) + { + ImGui::Begin("About ImGui", &show_app_about, ImGuiWindowFlags_AlwaysAutoResize); + ImGui::Text("ImGui %s", ImGui::GetVersion()); + ImGui::Separator(); + ImGui::Text("By Omar Cornut and all github contributors."); + ImGui::Text("ImGui is licensed under the MIT License, see LICENSE for more information."); + ImGui::End(); + } + + static bool no_titlebar = false; + static bool no_border = true; + static bool no_resize = false; + static bool no_move = false; + static bool no_scrollbar = false; + static bool no_collapse = false; + static bool no_menu = false; + static float bg_alpha = 0.65f; + + // Demonstrate the various window flags. Typically you would just use the default. + ImGuiWindowFlags window_flags = 0; + if (no_titlebar) window_flags |= ImGuiWindowFlags_NoTitleBar; + if (!no_border) window_flags |= ImGuiWindowFlags_ShowBorders; + if (no_resize) window_flags |= ImGuiWindowFlags_NoResize; + if (no_move) window_flags |= ImGuiWindowFlags_NoMove; + if (no_scrollbar) window_flags |= ImGuiWindowFlags_NoScrollbar; + if (no_collapse) window_flags |= ImGuiWindowFlags_NoCollapse; + if (!no_menu) window_flags |= ImGuiWindowFlags_MenuBar; + if (!ImGui::Begin("ImGui Demo", opened, ImVec2(550,680), bg_alpha, window_flags)) + { + // Early out if the window is collapsed, as an optimization. + ImGui::End(); + return; + } + + //ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.65f); // 2/3 of the space for widget and 1/3 for labels + ImGui::PushItemWidth(-140); // Right align, keep 140 pixels for labels + + ImGui::Text("ImGui says hello."); + + // Menu + if (ImGui::BeginMenuBar()) + { + if (ImGui::BeginMenu("Menu")) + { + ShowExampleMenuFile(); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Examples")) + { + ImGui::MenuItem("Main menu bar", NULL, &show_app_main_menu_bar); + ImGui::MenuItem("Console", NULL, &show_app_console); + ImGui::MenuItem("Simple layout", NULL, &show_app_layout); + ImGui::MenuItem("Long text display", NULL, &show_app_long_text); + ImGui::MenuItem("Auto-resizing window", NULL, &show_app_auto_resize); + ImGui::MenuItem("Simple overlay", NULL, &show_app_fixed_overlay); + ImGui::MenuItem("Manipulating window title", NULL, &show_app_manipulating_window_title); + ImGui::MenuItem("Custom rendering", NULL, &show_app_custom_rendering); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Help")) + { + ImGui::MenuItem("Metrics", NULL, &show_app_metrics); + ImGui::MenuItem("About ImGui", NULL, &show_app_about); + ImGui::EndMenu(); + } + ImGui::EndMenuBar(); + } + + ImGui::Spacing(); + if (ImGui::CollapsingHeader("Help")) + { + ImGui::TextWrapped("This window is being created by the ShowTestWindow() function. Please refer to the code for programming reference.\n\nUser Guide:"); + ImGui::ShowUserGuide(); + } + + if (ImGui::CollapsingHeader("Window options")) + { + ImGui::Checkbox("no titlebar", &no_titlebar); ImGui::SameLine(150); + ImGui::Checkbox("no border", &no_border); ImGui::SameLine(300); + ImGui::Checkbox("no resize", &no_resize); + ImGui::Checkbox("no move", &no_move); ImGui::SameLine(150); + ImGui::Checkbox("no scrollbar", &no_scrollbar); ImGui::SameLine(300); + ImGui::Checkbox("no collapse", &no_collapse); + ImGui::Checkbox("no menu", &no_menu); + ImGui::SliderFloat("bg alpha", &bg_alpha, 0.0f, 1.0f); + + if (ImGui::TreeNode("Style")) + { + ImGui::ShowStyleEditor(); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Fonts", "Fonts (%d)", ImGui::GetIO().Fonts->Fonts.Size)) + { + ImGui::TextWrapped("Tip: Load fonts with io.Fonts->AddFontFromFileTTF()."); + ImFontAtlas* atlas = ImGui::GetIO().Fonts; + if (ImGui::TreeNode("Atlas texture")) + { + ImGui::Text("%dx%d pixels", atlas->TexWidth, atlas->TexHeight); + ImGui::Image(atlas->TexID, ImVec2((float)atlas->TexWidth, (float)atlas->TexHeight), ImVec2(0,0), ImVec2(1,1), ImColor(255,255,255,255), ImColor(255,255,255,128)); + ImGui::TreePop(); + } + ImGui::PushItemWidth(100); + for (int i = 0; i < atlas->Fonts.Size; i++) + { + ImFont* font = atlas->Fonts[i]; + ImGui::BulletText("Font %d: \'%s\', %.2f px, %d glyphs", i, font->ConfigData ? font->ConfigData[0].Name : "", font->FontSize, font->Glyphs.Size); + ImGui::TreePush((void*)i); + if (i > 0) { ImGui::SameLine(); if (ImGui::SmallButton("Set as default")) { atlas->Fonts[i] = atlas->Fonts[0]; atlas->Fonts[0] = font; } } + ImGui::PushFont(font); + ImGui::Text("The quick brown fox jumps over the lazy dog"); + ImGui::PopFont(); + if (ImGui::TreeNode("Details")) + { + ImGui::DragFloat("font scale", &font->Scale, 0.005f, 0.3f, 2.0f, "%.1f"); // scale only this font + ImGui::Text("Ascent: %f, Descent: %f, Height: %f", font->Ascent, font->Descent, font->Ascent - font->Descent); + ImGui::Text("Fallback character: '%c' (%d)", font->FallbackChar, font->FallbackChar); + for (int config_i = 0; config_i < font->ConfigDataCount; config_i++) + ImGui::BulletText("Input %d: \'%s\'", config_i, font->ConfigData[config_i].Name); + ImGui::TreePop(); + } + ImGui::TreePop(); + } + static float window_scale = 1.0f; + ImGui::DragFloat("this window scale", &window_scale, 0.005f, 0.3f, 2.0f, "%.1f"); // scale only this window + ImGui::DragFloat("global scale", &ImGui::GetIO().FontGlobalScale, 0.005f, 0.3f, 2.0f, "%.1f"); // scale everything + ImGui::PopItemWidth(); + ImGui::SetWindowFontScale(window_scale); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Logging")) + { + ImGui::TextWrapped("The logging API redirects all text output so you can easily capture the content of a window or a block. Tree nodes can be automatically expanded. You can also call ImGui::LogText() to output directly to the log without a visual output."); + ImGui::LogButtons(); + ImGui::TreePop(); + } + } + + if (ImGui::CollapsingHeader("Widgets")) + { + if (ImGui::TreeNode("Tree")) + { + for (int i = 0; i < 5; i++) + { + if (ImGui::TreeNode((void*)i, "Child %d", i)) + { + ImGui::Text("blah blah"); + ImGui::SameLine(); + if (ImGui::SmallButton("print")) + printf("Child %d pressed", i); + ImGui::TreePop(); + } + } + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Bullets")) + { + ImGui::BulletText("Bullet point 1"); + ImGui::BulletText("Bullet point 2\nOn multiple lines"); + ImGui::Bullet(); ImGui::Text("Bullet point 3 (two calls)"); + ImGui::Bullet(); ImGui::SmallButton("Button"); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Colored Text")) + { + // Using shortcut. You can use PushStyleColor()/PopStyleColor() for more flexibility. + ImGui::TextColored(ImVec4(1.0f,0.0f,1.0f,1.0f), "Pink"); + ImGui::TextColored(ImVec4(1.0f,1.0f,0.0f,1.0f), "Yellow"); + ImGui::TextDisabled("Disabled"); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Word Wrapping")) + { + // Using shortcut. You can use PushTextWrapPos()/PopTextWrapPos() for more flexibility. + ImGui::TextWrapped("This text should automatically wrap on the edge of the window. The current implementation for text wrapping follows simple rules suitable for English and possibly other languages."); + ImGui::Spacing(); + + static float wrap_width = 200.0f; + ImGui::SliderFloat("Wrap width", &wrap_width, -20, 600, "%.0f"); + + ImGui::Text("Test paragraph 1:"); + ImVec2 pos = ImGui::GetCursorScreenPos(); + ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(pos.x + wrap_width, pos.y), ImVec2(pos.x + wrap_width + 10, pos.y + ImGui::GetTextLineHeight()), 0xFFFF00FF); + ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + wrap_width); + ImGui::Text("lazy dog. This paragraph is made to fit within %.0f pixels. The quick brown fox jumps over the lazy dog.", wrap_width); + ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), 0xFF00FFFF); + ImGui::PopTextWrapPos(); + + ImGui::Text("Test paragraph 2:"); + pos = ImGui::GetCursorScreenPos(); + ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(pos.x + wrap_width, pos.y), ImVec2(pos.x + wrap_width + 10, pos.y + ImGui::GetTextLineHeight()), 0xFFFF00FF); + ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + wrap_width); + ImGui::Text("aaaaaaaa bbbbbbbb, cccccccc,dddddddd. eeeeeeee ffffffff. gggggggg!hhhhhhhh"); + ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), 0xFF00FFFF); + ImGui::PopTextWrapPos(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("UTF-8 Text")) + { + // UTF-8 test with Japanese characters + // (needs a suitable font, try Arial Unicode or M+ fonts http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html) + // Most compiler appears to support UTF-8 in source code (with Visual Studio you need to save your file as 'UTF-8 without signature') + // However for the sake for maximum portability here we are *not* including raw UTF-8 character in this source file, instead we encode the string with hexadecimal constants. + // In your own application be reasonable and use UTF-8 in source or retrieve the data from file system! + // Note that characters values are preserved even if the font cannot be displayed, so you can safely copy & paste garbled characters into another application. + ImGui::TextWrapped("CJK text will only appears if the font was loaded with the appropriate CJK character ranges. Call io.Font->LoadFromFileTTF() manually to load extra character ranges."); + ImGui::Text("Hiragana: \xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91\xe3\x81\x93 (kakikukeko)"); + ImGui::Text("Kanjis: \xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e (nihongo)"); + static char buf[32] = "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"; + ImGui::InputText("UTF-8 input", buf, IM_ARRAYSIZE(buf)); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Images")) + { + ImGui::TextWrapped("Below we are displaying the font texture (which is the only texture we have access to in this demo). Use the 'ImTextureID' type as storage to pass pointers or identifier to your own texture data. Hover the texture for a zoomed view!"); + ImVec2 tex_screen_pos = ImGui::GetCursorScreenPos(); + float tex_w = (float)ImGui::GetIO().Fonts->TexWidth; + float tex_h = (float)ImGui::GetIO().Fonts->TexHeight; + ImTextureID tex_id = ImGui::GetIO().Fonts->TexID; + ImGui::Text("%.0fx%.0f", tex_w, tex_h); + ImGui::Image(tex_id, ImVec2(tex_w, tex_h), ImVec2(0,0), ImVec2(1,1), ImColor(255,255,255,255), ImColor(255,255,255,128)); + if (ImGui::IsItemHovered()) + { + ImGui::BeginTooltip(); + float focus_sz = 32.0f; + float focus_x = ImGui::GetMousePos().x - tex_screen_pos.x - focus_sz * 0.5f; if (focus_x < 0.0f) focus_x = 0.0f; else if (focus_x > tex_w - focus_sz) focus_x = tex_w - focus_sz; + float focus_y = ImGui::GetMousePos().y - tex_screen_pos.y - focus_sz * 0.5f; if (focus_y < 0.0f) focus_y = 0.0f; else if (focus_y > tex_h - focus_sz) focus_y = tex_h - focus_sz; + ImGui::Text("Min: (%.2f, %.2f)", focus_x, focus_y); + ImGui::Text("Max: (%.2f, %.2f)", focus_x + focus_sz, focus_y + focus_sz); + ImVec2 uv0 = ImVec2((focus_x) / tex_w, (focus_y) / tex_h); + ImVec2 uv1 = ImVec2((focus_x + focus_sz) / tex_w, (focus_y + focus_sz) / tex_h); + ImGui::Image(tex_id, ImVec2(128,128), uv0, uv1, ImColor(255,255,255,255), ImColor(255,255,255,128)); + ImGui::EndTooltip(); + } + ImGui::TextWrapped("And now some textured buttons.."); + static int pressed_count = 0; + for (int i = 0; i < 8; i++) + { + if (i > 0) + ImGui::SameLine(); + ImGui::PushID(i); + int frame_padding = -1 + i; // -1 = uses default padding + if (ImGui::ImageButton(tex_id, ImVec2(32,32), ImVec2(0,0), ImVec2(32.0f/tex_w,32/tex_h), frame_padding, ImColor(0,0,0,255))) + pressed_count += 1; + ImGui::PopID(); + } + ImGui::Text("Pressed %d times.", pressed_count); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Selectables")) + { + if (ImGui::TreeNode("Basic")) + { + static bool selected[3] = { false, true, false }; + ImGui::Selectable("1. I am selectable", &selected[0]); + ImGui::Selectable("2. I am selectable", &selected[1]); + ImGui::Text("3. I am not selectable"); + ImGui::Selectable("4. I am selectable", &selected[2]); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Rendering more text into the same block")) + { + static bool selected[3] = { false, false, false }; + ImGui::Selectable("main.c", &selected[0]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); + ImGui::Selectable("Hello.cpp", &selected[1]); ImGui::SameLine(300); ImGui::Text("12,345 bytes"); + ImGui::Selectable("Hello.h", &selected[2]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Grid")) + { + static bool selected[16] = { true, false, false, false, false, true, false, false, false, false, true, false, false, false, false, true }; + for (int i = 0; i < 16; i++) + { + ImGui::PushID(i); + if (ImGui::Selectable("Me", &selected[i], 0, ImVec2(50,50))) + { + int x = i % 4, y = i / 4; + if (x > 0) selected[i - 1] ^= 1; + if (x < 3) selected[i + 1] ^= 1; + if (y > 0) selected[i - 4] ^= 1; + if (y < 3) selected[i + 4] ^= 1; + } + if ((i % 4) < 3) ImGui::SameLine(); + ImGui::PopID(); + } + ImGui::TreePop(); + } + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Filtered Text Input")) + { + static char buf1[64] = ""; ImGui::InputText("default", buf1, 64); + static char buf2[64] = ""; ImGui::InputText("decimal", buf2, 64, ImGuiInputTextFlags_CharsDecimal); + static char buf3[64] = ""; ImGui::InputText("hexadecimal", buf3, 64, ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase); + static char buf4[64] = ""; ImGui::InputText("uppercase", buf4, 64, ImGuiInputTextFlags_CharsUppercase); + static char buf5[64] = ""; ImGui::InputText("no blank", buf5, 64, ImGuiInputTextFlags_CharsNoBlank); + struct TextFilters { static int FilterImGuiLetters(ImGuiTextEditCallbackData* data) { if (data->EventChar < 256 && strchr("imgui", (char)data->EventChar)) return 0; return 1; } }; + static char buf6[64] = ""; ImGui::InputText("\"imgui\" letters", buf6, 64, ImGuiInputTextFlags_CallbackCharFilter, TextFilters::FilterImGuiLetters); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Multi-line Text Input")) + { + static char text[1024*16] = "// F00F bug\nlabel:\n\tlock cmpxchg8b eax\n"; + ImGui::InputTextMultiline("##source", text, IM_ARRAYSIZE(text), ImVec2(-1.0f, ImGui::GetTextLineHeight() * 16), ImGuiInputTextFlags_AllowTabInput); + ImGui::TreePop(); + } + + static bool a=false; + if (ImGui::Button("Button")) { printf("Clicked\n"); a ^= 1; } + if (a) + { + ImGui::SameLine(); + ImGui::Text("Thanks for clicking me!"); + } + + static bool check = true; + ImGui::Checkbox("checkbox", &check); + + static int e = 0; + ImGui::RadioButton("radio a", &e, 0); ImGui::SameLine(); + ImGui::RadioButton("radio b", &e, 1); ImGui::SameLine(); + ImGui::RadioButton("radio c", &e, 2); + + // Color buttons, demonstrate using PushID() to add unique identifier in the ID stack, and changing style. + for (int i = 0; i < 7; i++) + { + if (i > 0) ImGui::SameLine(); + ImGui::PushID(i); + ImGui::PushStyleColor(ImGuiCol_Button, ImColor::HSV(i/7.0f, 0.6f, 0.6f)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImColor::HSV(i/7.0f, 0.7f, 0.7f)); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImColor::HSV(i/7.0f, 0.8f, 0.8f)); + ImGui::Button("Click"); + ImGui::PopStyleColor(3); + ImGui::PopID(); + } + + ImGui::Text("Hover over me"); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("I am a tooltip"); + + ImGui::SameLine(); + ImGui::Text("- or me"); + if (ImGui::IsItemHovered()) + { + ImGui::BeginTooltip(); + ImGui::Text("I am a fancy tooltip"); + static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f }; + ImGui::PlotLines("Curve", arr, IM_ARRAYSIZE(arr)); + ImGui::EndTooltip(); + } + + // Testing IMGUI_ONCE_UPON_A_FRAME macro + //for (int i = 0; i < 5; i++) + //{ + // IMGUI_ONCE_UPON_A_FRAME + // { + // ImGui::Text("This will be displayed only once."); + // } + //} + + ImGui::Separator(); + + ImGui::LabelText("label", "Value"); + + static int item = 1; + ImGui::Combo("combo", &item, "aaaa\0bbbb\0cccc\0dddd\0eeee\0\0"); // Combo using values packed in a single constant string (for really quick combo) + + const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGG", "HHHH", "IIII", "JJJJ", "KKKK" }; + static int item2 = -1; + ImGui::Combo("combo scroll", &item2, items, IM_ARRAYSIZE(items)); // Combo using proper array. You can also pass a callback to retrieve array value, no need to create/copy an array just for that. + + { + static char str0[128] = "Hello, world!"; + static int i0=123; + static float f0=0.001f; + ImGui::InputText("input text", str0, IM_ARRAYSIZE(str0)); + ImGui::SameLine(); ShowHelpMarker("Hold SHIFT or use mouse to select text.\n" "CTRL+Left/Right to word jump.\n" "CTRL+A or double-click to select all.\n" "CTRL+X,CTRL+C,CTRL+V clipboard.\n" "CTRL+Z,CTRL+Y undo/redo.\n" "ESCAPE to revert.\n"); + + ImGui::InputInt("input int", &i0); + ImGui::SameLine(); ShowHelpMarker("You can apply arithmetic operators +,*,/ on numerical values.\n e.g. [ 100 ], input \'*2\', result becomes [ 200 ]\nUse +- to subtract.\n"); + + ImGui::InputFloat("input float", &f0, 0.01f, 1.0f); + + static float vec4a[4] = { 0.10f, 0.20f, 0.30f, 0.44f }; + ImGui::InputFloat3("input float3", vec4a); + } + + { + static int i1=50, i2=42; + ImGui::DragInt("drag int", &i1, 1); + ImGui::SameLine(); ShowHelpMarker("Click and drag to edit value.\nHold SHIFT/ALT for faster/slower edit.\nDouble-click or CTRL+click to input value."); + + ImGui::DragInt("drag int 0..100", &i2, 1, 0, 100, "%.0f%%"); + + static float f1=1.00f, f2=0.0067f; + ImGui::DragFloat("drag float", &f1, 0.005f); + ImGui::DragFloat("drag small float", &f2, 0.0001f, 0.0f, 0.0f, "%.06f ns"); + } + + { + static int i1=0; + ImGui::SliderInt("slider int", &i1, -1, 3); + ImGui::SameLine(); ShowHelpMarker("CTRL+click to input value."); + + static float f1=0.123f, f2=0.0f; + ImGui::SliderFloat("slider float", &f1, 0.0f, 1.0f, "ratio = %.3f"); + ImGui::SliderFloat("slider log float", &f2, -10.0f, 10.0f, "%.4f", 3.0f); + static float angle = 0.0f; + ImGui::SliderAngle("slider angle", &angle); + } + + static float col1[3] = { 1.0f,0.0f,0.2f }; + static float col2[4] = { 0.4f,0.7f,0.0f,0.5f }; + ImGui::ColorEdit3("color 1", col1); + ImGui::SameLine(); ShowHelpMarker("Click on the colored square to change edit mode.\nCTRL+click on individual component to input value.\n"); + + ImGui::ColorEdit4("color 2", col2); + + const char* listbox_items[] = { "Apple", "Banana", "Cherry", "Kiwi", "Mango", "Orange", "Pineapple", "Strawberry", "Watermelon" }; + static int listbox_item_current = 1; + ImGui::ListBox("listbox\n(single select)", &listbox_item_current, listbox_items, IM_ARRAYSIZE(listbox_items), 4); + + //static int listbox_item_current2 = 2; + //ImGui::PushItemWidth(-1); + //ImGui::ListBox("##listbox2", &listbox_item_current2, listbox_items, IM_ARRAYSIZE(listbox_items), 4); + //ImGui::PopItemWidth(); + + if (ImGui::TreeNode("Range Widgets")) + { + ImGui::Unindent(); + + static float begin = 10, end = 90; + static int begin_i = 100, end_i = 1000; + ImGui::DragFloatRange2("range", &begin, &end, 0.25f, 0.0f, 100.0f, "Min: %.1f %%", "Max: %.1f %%"); + ImGui::DragIntRange2("range int (no bounds)", &begin_i, &end_i, 5, 0, 0, "Min: %.0f units", "Max: %.0f units"); + + ImGui::Indent(); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Multi-component Widgets")) + { + ImGui::Unindent(); + + static float vec4f[4] = { 0.10f, 0.20f, 0.30f, 0.44f }; + static int vec4i[4] = { 1, 5, 100, 255 }; + + ImGui::InputFloat2("input float2", vec4f); + ImGui::DragFloat2("drag float2", vec4f, 0.01f, 0.0f, 1.0f); + ImGui::SliderFloat2("slider float2", vec4f, 0.0f, 1.0f); + ImGui::DragInt2("drag int2", vec4i, 1, 0, 255); + ImGui::InputInt2("input int2", vec4i); + ImGui::SliderInt2("slider int2", vec4i, 0, 255); + ImGui::Spacing(); + + ImGui::InputFloat3("input float3", vec4f); + ImGui::DragFloat3("drag float3", vec4f, 0.01f, 0.0f, 1.0f); + ImGui::SliderFloat3("slider float3", vec4f, 0.0f, 1.0f); + ImGui::DragInt3("drag int3", vec4i, 1, 0, 255); + ImGui::InputInt3("input int3", vec4i); + ImGui::SliderInt3("slider int3", vec4i, 0, 255); + ImGui::Spacing(); + + ImGui::InputFloat4("input float4", vec4f); + ImGui::DragFloat4("drag float4", vec4f, 0.01f, 0.0f, 1.0f); + ImGui::SliderFloat4("slider float4", vec4f, 0.0f, 1.0f); + ImGui::InputInt4("input int4", vec4i); + ImGui::DragInt4("drag int4", vec4i, 1, 0, 255); + ImGui::SliderInt4("slider int4", vec4i, 0, 255); + + ImGui::Indent(); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Vertical Sliders")) + { + ImGui::Unindent(); + const float spacing = 4; + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(spacing, spacing)); + + static int int_value = 0; + ImGui::VSliderInt("##int", ImVec2(18,160), &int_value, 0, 5); + ImGui::SameLine(); + + static float values[7] = { 0.0f, 0.60f, 0.35f, 0.9f, 0.70f, 0.20f, 0.0f }; + ImGui::PushID("set1"); + for (int i = 0; i < 7; i++) + { + if (i > 0) ImGui::SameLine(); + ImGui::PushID(i); + ImGui::PushStyleColor(ImGuiCol_FrameBg, ImColor::HSV(i/7.0f, 0.5f, 0.5f)); + ImGui::PushStyleColor(ImGuiCol_FrameBgHovered, ImColor::HSV(i/7.0f, 0.6f, 0.5f)); + ImGui::PushStyleColor(ImGuiCol_FrameBgActive, ImColor::HSV(i/7.0f, 0.7f, 0.5f)); + ImGui::PushStyleColor(ImGuiCol_SliderGrab, ImColor::HSV(i/7.0f, 0.9f, 0.9f)); + ImGui::VSliderFloat("##v", ImVec2(18,160), &values[i], 0.0f, 1.0f, ""); + if (ImGui::IsItemActive() || ImGui::IsItemHovered()) + ImGui::SetTooltip("%.3f", values[i]); + ImGui::PopStyleColor(4); + ImGui::PopID(); + } + ImGui::PopID(); + + ImGui::SameLine(); + ImGui::PushID("set2"); + static float values2[4] = { 0.20f, 0.80f, 0.40f, 0.25f }; + const int rows = 3; + const ImVec2 small_slider_size(18, (160.0f-(rows-1)*spacing)/rows); + for (int nx = 0; nx < 4; nx++) + { + if (nx > 0) ImGui::SameLine(); + ImGui::BeginGroup(); + for (int ny = 0; ny < rows; ny++) + { + ImGui::PushID(nx*rows+ny); + ImGui::VSliderFloat("##v", small_slider_size, &values2[nx], 0.0f, 1.0f, ""); + if (ImGui::IsItemActive() || ImGui::IsItemHovered()) + ImGui::SetTooltip("%.3f", values2[nx]); + ImGui::PopID(); + } + ImGui::EndGroup(); + } + ImGui::PopID(); + + ImGui::SameLine(); + ImGui::PushID("set3"); + for (int i = 0; i < 4; i++) + { + if (i > 0) ImGui::SameLine(); + ImGui::PushID(i); + ImGui::PushStyleVar(ImGuiStyleVar_GrabMinSize, 40); + ImGui::VSliderFloat("##v", ImVec2(40,160), &values[i], 0.0f, 1.0f, "%.2f"); + ImGui::PopStyleVar(); + ImGui::PopID(); + } + ImGui::PopID(); + ImGui::PopStyleVar(); + + ImGui::Indent(); + ImGui::TreePop(); + } + } + + if (ImGui::CollapsingHeader("Graphs widgets")) + { + static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f }; + ImGui::PlotLines("Frame Times", arr, IM_ARRAYSIZE(arr)); + + static bool pause; + static ImVector values; if (values.empty()) { values.resize(90); memset(values.Data, 0, values.Size*sizeof(float)); } + static int values_offset = 0; + if (!pause) + { + static float refresh_time = ImGui::GetTime(); // Create dummy data at fixed 60 hz rate for the demo + for (; ImGui::GetTime() > refresh_time + 1.0f/60.0f; refresh_time += 1.0f/60.0f) + { + static float phase = 0.0f; + values[values_offset] = cosf(phase); + values_offset = (values_offset+1)%values.Size; + phase += 0.10f*values_offset; + } + } + ImGui::PlotLines("##Graph", values.Data, values.Size, values_offset, "avg 0.0", -1.0f, 1.0f, ImVec2(0,80)); + ImGui::SameLine(0, ImGui::GetStyle().ItemInnerSpacing.x); + ImGui::BeginGroup(); + ImGui::Text("Graph"); + ImGui::Checkbox("pause", &pause); + ImGui::EndGroup(); + ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0,80)); + } + + if (ImGui::CollapsingHeader("Layout")) + { + if (ImGui::TreeNode("Child regions")) + { + ImGui::Text("Without border"); + static int line = 50; + bool goto_line = ImGui::Button("Goto"); + ImGui::SameLine(); + ImGui::PushItemWidth(100); + goto_line |= ImGui::InputInt("##Line", &line, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue); + ImGui::PopItemWidth(); + ImGui::BeginChild("Sub1", ImVec2(ImGui::GetWindowWidth() * 0.5f,300)); + for (int i = 0; i < 100; i++) + { + ImGui::Text("%04d: scrollable region", i); + if (goto_line && line == i) + ImGui::SetScrollHere(); + } + if (goto_line && line >= 100) + ImGui::SetScrollHere(); + ImGui::EndChild(); + + ImGui::SameLine(); + + ImGui::PushStyleVar(ImGuiStyleVar_ChildWindowRounding, 5.0f); + ImGui::BeginChild("Sub2", ImVec2(0,300), true); + ImGui::Text("With border"); + ImGui::Columns(2); + for (int i = 0; i < 100; i++) + { + if (i == 50) + ImGui::NextColumn(); + char buf[32]; + sprintf(buf, "%08x", i*5731); + ImGui::Button(buf, ImVec2(-1.0f, 0.0f)); + } + ImGui::EndChild(); + ImGui::PopStyleVar(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Widgets Alignment")) + { + static float f = 0.0f; + ImGui::Text("Fixed: 100 pixels"); + ImGui::PushItemWidth(100); + ImGui::InputFloat("float##1", &f); + ImGui::PopItemWidth(); + + ImGui::Text("Proportional: 50%% of window width"); + ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.5f); + ImGui::InputFloat("float##2", &f); + ImGui::PopItemWidth(); + + ImGui::Text("Right-aligned: Leave 100 pixels for label"); + ImGui::PushItemWidth(-100); + ImGui::InputFloat("float##3", &f); + ImGui::PopItemWidth(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Basic Horizontal Layout")) + { + ImGui::TextWrapped("(Use ImGui::SameLine() to keep adding items to the right of the preceeding item)"); + + // Text + ImGui::Text("Two items: Hello"); ImGui::SameLine(); + ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); + + // Adjust spacing + ImGui::Text("More spacing: Hello"); ImGui::SameLine(0, 20); + ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); + + // Button + ImGui::AlignFirstTextHeightToWidgets(); + ImGui::Text("Normal buttons"); ImGui::SameLine(); + ImGui::Button("Banana"); ImGui::SameLine(); + ImGui::Button("Apple"); ImGui::SameLine(); + ImGui::Button("Corniflower"); + + // Button + ImGui::Text("Small buttons"); ImGui::SameLine(); + ImGui::SmallButton("Like this one"); ImGui::SameLine(); + ImGui::Text("can fit within a text block."); + + // Aligned to arbitrary position. Easy/cheap column. + ImGui::Text("Aligned"); + ImGui::SameLine(150); ImGui::Text("x=150"); + ImGui::SameLine(300); ImGui::Text("x=300"); + ImGui::Text("Aligned"); + ImGui::SameLine(150); ImGui::SmallButton("x=150"); + ImGui::SameLine(300); ImGui::SmallButton("x=300"); + + // Checkbox + static bool c1=false,c2=false,c3=false,c4=false; + ImGui::Checkbox("My", &c1); ImGui::SameLine(); + ImGui::Checkbox("Tailor", &c2); ImGui::SameLine(); + ImGui::Checkbox("Is", &c3); ImGui::SameLine(); + ImGui::Checkbox("Rich", &c4); + + // Various + static float f0=1.0f, f1=2.0f, f2=3.0f; + ImGui::PushItemWidth(80); + const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD" }; + static int item = -1; + ImGui::Combo("Combo", &item, items, IM_ARRAYSIZE(items)); ImGui::SameLine(); + ImGui::SliderFloat("X", &f0, 0.0f,5.0f); ImGui::SameLine(); + ImGui::SliderFloat("Y", &f1, 0.0f,5.0f); ImGui::SameLine(); + ImGui::SliderFloat("Z", &f2, 0.0f,5.0f); + ImGui::PopItemWidth(); + + ImGui::PushItemWidth(80); + ImGui::Text("Lists:"); + static int selection[4] = { 0, 1, 2, 3 }; + for (int i = 0; i < 4; i++) + { + if (i > 0) ImGui::SameLine(); + ImGui::PushID(i); + ImGui::ListBox("", &selection[i], items, IM_ARRAYSIZE(items)); + ImGui::PopID(); + //if (ImGui::IsItemHovered()) ImGui::SetTooltip("ListBox %d hovered", i); + } + ImGui::PopItemWidth(); + + // Dummy + ImVec2 sz(30,30); + ImGui::Button("A", sz); ImGui::SameLine(); + ImGui::Dummy(sz); ImGui::SameLine(); + ImGui::Button("B", sz); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Groups")) + { + ImGui::TextWrapped("(Using ImGui::BeginGroup()/EndGroup() to layout items)"); + ImGui::BeginGroup(); + { + ImGui::BeginGroup(); + ImGui::Button("AAA"); + ImGui::SameLine(); + ImGui::Button("BBB"); + ImGui::SameLine(); + ImGui::BeginGroup(); + ImGui::Button("CCC"); + ImGui::Button("DDD"); + ImGui::EndGroup(); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Group hovered"); + ImGui::SameLine(); + ImGui::Button("EEE"); + ImGui::EndGroup(); + } + // Capture the group size and create widgets using the same size + ImVec2 size = ImGui::GetItemRectSize(); + const float values[5] = { 0.5f, 0.20f, 0.80f, 0.60f, 0.25f }; + ImGui::PlotHistogram("##values", values, IM_ARRAYSIZE(values), 0, NULL, 0.0f, 1.0f, size); + + ImGui::Button("ACTION", ImVec2((size.x - ImGui::GetStyle().ItemSpacing.x)*0.5f,size.y)); + ImGui::SameLine(); + ImGui::Button("REACTION", ImVec2((size.x - ImGui::GetStyle().ItemSpacing.x)*0.5f,size.y)); + ImGui::EndGroup(); + ImGui::SameLine(); + + ImGui::Button("LEVERAGE\nBUZZWORD", size); + ImGui::SameLine(); + + ImGui::ListBoxHeader("List", size); + ImGui::Selectable("Selected", true); + ImGui::Selectable("Not Selected", false); + ImGui::ListBoxFooter(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Text Baseline Alignment")) + { + ImGui::TextWrapped("(This is testing the vertical alignment that occurs on text to keep it at the same baseline as widgets. Lines only composed of text or \"small\" widgets fit in less vertical spaces than lines with normal widgets)"); + + ImGui::Text("One\nTwo\nThree"); ImGui::SameLine(); + ImGui::Text("Hello\nWorld"); ImGui::SameLine(); + ImGui::Text("Banana"); + + ImGui::Text("Banana"); ImGui::SameLine(); + ImGui::Text("Hello\nWorld"); ImGui::SameLine(); + ImGui::Text("One\nTwo\nThree"); + + ImGui::Button("HOP"); ImGui::SameLine(); + ImGui::Text("Banana"); ImGui::SameLine(); + ImGui::Text("Hello\nWorld"); ImGui::SameLine(); + ImGui::Text("Banana"); + + ImGui::Button("HOP"); ImGui::SameLine(); + ImGui::Text("Hello\nWorld"); ImGui::SameLine(); + ImGui::Text("Banana"); + + ImGui::Button("TEST"); ImGui::SameLine(); + ImGui::Text("TEST"); ImGui::SameLine(); + ImGui::SmallButton("TEST"); + + ImGui::AlignFirstTextHeightToWidgets(); // If your line starts with text, call this to align it to upcoming widgets. + ImGui::Text("Text aligned to Widget"); ImGui::SameLine(); + ImGui::Button("Widget"); ImGui::SameLine(); + ImGui::Text("Widget"); ImGui::SameLine(); + ImGui::SmallButton("Widget"); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Scrolling")) + { + ImGui::TextWrapped("Use SetScrollHere() or SetScrollFromPosY() to scroll to a given position."); + static bool track = true; + static int track_line = 50, scroll_to_px = 200; + ImGui::Checkbox("Track", &track); + ImGui::SameLine(130); track |= ImGui::DragInt("##line", &track_line, 0.25f, 0, 9999, "Line %.0f"); + bool scroll_to = ImGui::Button("Scroll To"); + ImGui::SameLine(130); scroll_to |= ImGui::DragInt("##pos_y", &scroll_to_px, 1.00f, 0, 9999, "y = %.0f px"); + if (scroll_to) track = false; + + for (int i = 0; i < 5; i++) + { + if (i > 0) ImGui::SameLine(); + ImGui::BeginGroup(); + ImGui::Text("%s", i == 0 ? "Top" : i == 1 ? "25%" : i == 2 ? "Center" : i == 3 ? "75%" : "Bottom"); + ImGui::BeginChild(ImGui::GetID((void*)i), ImVec2(ImGui::GetWindowWidth() * 0.17f, 200.0f), true); + if (scroll_to) + ImGui::SetScrollFromPosY(ImGui::GetCursorStartPos().y + scroll_to_px, i * 0.25f); + for (int line = 0; line < 100; line++) + { + if (track && line == track_line) + { + ImGui::TextColored(ImColor(255,255,0), "Line %d", line); + ImGui::SetScrollHere(i * 0.25f); // 0.0f:top, 0.5f:center, 1.0f:bottom + } + else + { + ImGui::Text("Line %d", line); + } + } + ImGui::EndChild(); + ImGui::EndGroup(); + } + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Clipping")) + { + static ImVec2 size(100, 100), offset(50, 20); + ImGui::TextWrapped("On a per-widget basis we are occasionally clipping text CPU-side if it won't fit in its frame. Otherwise we are doing coarser clipping + passing a scissor rectangle to the renderer. The system is designed to try minimizing both execution and CPU/GPU rendering cost."); + ImGui::DragFloat2("size", (float*)&size, 0.5f, 0.0f, 200.0f, "%.0f"); + ImGui::DragFloat2("offset", (float*)&offset, 0.5f, -200, 200.0f, "%.0f"); + ImVec2 pos = ImGui::GetCursorScreenPos(); + ImVec4 clip_rect(pos.x, pos.y, pos.x+size.x, pos.y+size.y); + ImGui::GetWindowDrawList()->AddRectFilled(pos, ImVec2(pos.x+size.x,pos.y+size.y), ImColor(90,90,120,255)); + ImGui::GetWindowDrawList()->AddText(ImGui::GetWindowFont(), ImGui::GetWindowFontSize()*2.0f, ImVec2(pos.x+offset.x,pos.y+offset.y), ImColor(255,255,255,255), "Line 1 hello\nLine 2 clip me!", NULL, 0.0f, &clip_rect); + ImGui::Dummy(size); + ImGui::TreePop(); + } + } + + if (ImGui::CollapsingHeader("Popups & Modal windows")) + { + if (ImGui::TreeNode("Popups")) + { + ImGui::TextWrapped("When a popup is active, it inhibits interacting with windows that are behind the popup. Clicking outside the popup closes it."); + + static int selected_fish = -1; + const char* names[] = { "Bream", "Haddock", "Mackerel", "Pollock", "Tilefish" }; + static bool toggles[] = { true, false, false, false, false }; + + if (ImGui::Button("Select..")) + ImGui::OpenPopup("select"); + ImGui::SameLine(); + ImGui::Text(selected_fish == -1 ? "" : names[selected_fish]); + if (ImGui::BeginPopup("select")) + { + ImGui::Text("Aquarium"); + ImGui::Separator(); + for (int i = 0; i < IM_ARRAYSIZE(names); i++) + if (ImGui::Selectable(names[i])) + selected_fish = i; + ImGui::EndPopup(); + } + + if (ImGui::Button("Toggle..")) + ImGui::OpenPopup("toggle"); + if (ImGui::BeginPopup("toggle")) + { + for (int i = 0; i < IM_ARRAYSIZE(names); i++) + ImGui::MenuItem(names[i], "", &toggles[i]); + if (ImGui::BeginMenu("Sub-menu")) + { + ImGui::MenuItem("Click me"); + ImGui::EndMenu(); + } + + ImGui::Separator(); + ImGui::Text("Tooltip here"); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("I am a tooltip over a popup"); + + if (ImGui::Button("Stacked Popup")) + ImGui::OpenPopup("another popup"); + if (ImGui::BeginPopup("another popup")) + { + for (int i = 0; i < IM_ARRAYSIZE(names); i++) + ImGui::MenuItem(names[i], "", &toggles[i]); + if (ImGui::BeginMenu("Sub-menu")) + { + ImGui::MenuItem("Click me"); + ImGui::EndMenu(); + } + ImGui::EndPopup(); + } + ImGui::EndPopup(); + } + + if (ImGui::Button("Popup Menu..")) + ImGui::OpenPopup("popup from button"); + if (ImGui::BeginPopup("popup from button")) + { + ShowExampleMenuFile(); + ImGui::EndPopup(); + } + + ImGui::TextWrapped("Below we are testing adding menu items to a regular window. It's rather unusual but should work!"); + ImGui::Separator(); + ImGui::MenuItem("Menu item", "CTRL+M"); + if (ImGui::BeginMenu("Menu")) + { + ShowExampleMenuFile(); + ImGui::EndMenu(); + } + ImGui::Separator(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Context menus")) + { + static float value = 0.5f; + ImGui::Text("Value = %.3f (<-- right-click here)", value); + if (ImGui::BeginPopupContextItem("item context menu")) + { + if (ImGui::Selectable("Set to zero")) value = 0.0f; + if (ImGui::Selectable("Set to PI")) value = 3.1415f; + ImGui::EndPopup(); + } + + static ImVec4 color = ImColor(1.0f, 0.0f, 1.0f, 1.0f); + ImGui::ColorButton(color); + if (ImGui::BeginPopupContextItem("color context menu")) + { + ImGui::Text("Edit color"); + ImGui::ColorEdit3("##edit", (float*)&color); + if (ImGui::Button("Close")) + ImGui::CloseCurrentPopup(); + ImGui::EndPopup(); + } + ImGui::SameLine(); ImGui::Text("(<-- right-click here)"); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Modals")) + { + ImGui::TextWrapped("Modal windows are like popups but the user cannot close them by clicking outside the window."); + + if (ImGui::Button("Delete..")) + ImGui::OpenPopup("Delete?"); + if (ImGui::BeginPopupModal("Delete?", NULL, ImGuiWindowFlags_AlwaysAutoResize)) + { + ImGui::Text("All those beautiful files will be deleted.\nThis operation cannot be undone!\n\n"); + ImGui::Separator(); + + static bool dont_ask_me_next_time = false; + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0,0)); + ImGui::Checkbox("Don't ask me next time", &dont_ask_me_next_time); + ImGui::PopStyleVar(); + + if (ImGui::Button("OK", ImVec2(120,0))) { ImGui::CloseCurrentPopup(); } + ImGui::SameLine(); + if (ImGui::Button("Cancel", ImVec2(120,0))) { ImGui::CloseCurrentPopup(); } + ImGui::EndPopup(); + } + + if (ImGui::Button("Stacked modals..")) + ImGui::OpenPopup("Stacked 1"); + if (ImGui::BeginPopupModal("Stacked 1")) + { + ImGui::Text("Hello from Stacked The First"); + + if (ImGui::Button("Another one..")) + ImGui::OpenPopup("Stacked 2"); + if (ImGui::BeginPopupModal("Stacked 2")) + { + ImGui::Text("Hello from Stacked The Second"); + if (ImGui::Button("Close")) + ImGui::CloseCurrentPopup(); + ImGui::EndPopup(); + } + + if (ImGui::Button("Close")) + ImGui::CloseCurrentPopup(); + ImGui::EndPopup(); + } + + ImGui::TreePop(); + } + } + + if (ImGui::CollapsingHeader("Columns")) + { + // Basic columns + ImGui::Text("Basic:"); + ImGui::Columns(4, "mycolumns"); + ImGui::Separator(); + ImGui::Text("ID"); ImGui::NextColumn(); + ImGui::Text("Name"); ImGui::NextColumn(); + ImGui::Text("Path"); ImGui::NextColumn(); + ImGui::Text("Flags"); ImGui::NextColumn(); + ImGui::Separator(); + const char* names[3] = { "One", "Two", "Three" }; + const char* paths[3] = { "/path/one", "/path/two", "/path/three" }; + static int selected = -1; + for (int i = 0; i < 3; i++) + { + char label[32]; + sprintf(label, "%04d", i); + if (ImGui::Selectable(label, selected == i, ImGuiSelectableFlags_SpanAllColumns)) + selected = i; + ImGui::NextColumn(); + ImGui::Text(names[i]); ImGui::NextColumn(); + ImGui::Text(paths[i]); ImGui::NextColumn(); + ImGui::Text("...."); ImGui::NextColumn(); + } + ImGui::Columns(1); + + ImGui::Separator(); + ImGui::Spacing(); + + // Scrolling columns + /* + ImGui::Text("Scrolling:"); + ImGui::BeginChild("##header", ImVec2(0, ImGui::GetTextLineHeightWithSpacing()+ImGui::GetStyle().ItemSpacing.y)); + ImGui::Columns(3); + ImGui::Text("ID"); ImGui::NextColumn(); + ImGui::Text("Name"); ImGui::NextColumn(); + ImGui::Text("Path"); ImGui::NextColumn(); + ImGui::Columns(1); + ImGui::Separator(); + ImGui::EndChild(); + ImGui::BeginChild("##scrollingregion", ImVec2(0, 60)); + ImGui::Columns(3); + for (int i = 0; i < 10; i++) + { + ImGui::Text("%04d", i); ImGui::NextColumn(); + ImGui::Text("Foobar"); ImGui::NextColumn(); + ImGui::Text("/path/foobar/%04d/", i); ImGui::NextColumn(); + } + ImGui::Columns(1); + ImGui::EndChild(); + + ImGui::Separator(); + ImGui::Spacing(); + */ + + // Create multiple items in a same cell before switching to next column + ImGui::Text("Mixed items:"); + ImGui::Columns(3, "mixed"); + ImGui::Separator(); + + static int e = 0; + ImGui::Text("Hello"); + ImGui::Button("Banana"); + ImGui::RadioButton("radio a", &e, 0); + ImGui::NextColumn(); + + ImGui::Text("ImGui"); + ImGui::Button("Apple"); + ImGui::RadioButton("radio b", &e, 1); + static float foo = 1.0f; + ImGui::InputFloat("red", &foo, 0.05f, 0, 3); + ImGui::Text("An extra line here."); + ImGui::NextColumn(); + + ImGui::Text("Sailor"); + ImGui::Button("Corniflower"); + ImGui::RadioButton("radio c", &e, 2); + static float bar = 1.0f; + ImGui::InputFloat("blue", &bar, 0.05f, 0, 3); + ImGui::NextColumn(); + + if (ImGui::CollapsingHeader("Category A")) ImGui::Text("Blah blah blah"); ImGui::NextColumn(); + if (ImGui::CollapsingHeader("Category B")) ImGui::Text("Blah blah blah"); ImGui::NextColumn(); + if (ImGui::CollapsingHeader("Category C")) ImGui::Text("Blah blah blah"); ImGui::NextColumn(); + ImGui::Columns(1); + + ImGui::Separator(); + ImGui::Spacing(); + + // Tree items + ImGui::Text("Tree items:"); + ImGui::Columns(2, "tree items"); + ImGui::Separator(); + if (ImGui::TreeNode("Hello")) { ImGui::BulletText("Sailor"); ImGui::TreePop(); } ImGui::NextColumn(); + if (ImGui::TreeNode("Bonjour")) { ImGui::BulletText("Marin"); ImGui::TreePop(); } ImGui::NextColumn(); + ImGui::Columns(1); + + ImGui::Separator(); + ImGui::Spacing(); + + // Word-wrapping + ImGui::Text("Word-wrapping:"); + ImGui::Columns(2, "word-wrapping"); + ImGui::Separator(); + ImGui::TextWrapped("The quick brown fox jumps over the lazy dog."); + ImGui::Text("Hello Left"); + ImGui::NextColumn(); + ImGui::TextWrapped("The quick brown fox jumps over the lazy dog."); + ImGui::Text("Hello Right"); + ImGui::Columns(1); + + ImGui::Separator(); + ImGui::Spacing(); + + if (ImGui::TreeNode("Inside a tree..")) + { + if (ImGui::TreeNode("node 1 (with borders)")) + { + ImGui::Columns(4); + for (int i = 0; i < 8; i++) + { + ImGui::Text("%c%c%c", 'a'+i, 'a'+i, 'a'+i); + ImGui::NextColumn(); + } + ImGui::Columns(1); + ImGui::TreePop(); + } + if (ImGui::TreeNode("node 2 (without borders)")) + { + ImGui::Columns(4, NULL, false); + for (int i = 0; i < 8; i++) + { + ImGui::Text("%c%c%c", 'a'+i, 'a'+i, 'a'+i); + ImGui::NextColumn(); + } + ImGui::Columns(1); + ImGui::TreePop(); + } + ImGui::TreePop(); + } + } + + if (ImGui::CollapsingHeader("Filtering")) + { + static ImGuiTextFilter filter; + ImGui::Text("Filter usage:\n" + " \"\" display all lines\n" + " \"xxx\" display lines containing \"xxx\"\n" + " \"xxx,yyy\" display lines containing \"xxx\" or \"yyy\"\n" + " \"-xxx\" hide lines containing \"xxx\""); + filter.Draw(); + const char* lines[] = { "aaa1.c", "bbb1.c", "ccc1.c", "aaa2.cpp", "bbb2.cpp", "ccc2.cpp", "abc.h", "hello, world" }; + for (int i = 0; i < IM_ARRAYSIZE(lines); i++) + if (filter.PassFilter(lines[i])) + ImGui::BulletText("%s", lines[i]); + } + + if (ImGui::CollapsingHeader("Keyboard, Mouse & Focus")) + { + if (ImGui::TreeNode("Tabbing")) + { + ImGui::Text("Use TAB/SHIFT+TAB to cycle through keyboard editable fields."); + static char buf[32] = "dummy"; + ImGui::InputText("1", buf, IM_ARRAYSIZE(buf)); + ImGui::InputText("2", buf, IM_ARRAYSIZE(buf)); + ImGui::InputText("3", buf, IM_ARRAYSIZE(buf)); + ImGui::PushAllowKeyboardFocus(false); + ImGui::InputText("4 (tab skip)", buf, IM_ARRAYSIZE(buf)); + //ImGui::SameLine(); ShowHelperMarker("Use ImGui::PushAllowKeyboardFocus(bool)\nto disable tabbing through certain widgets."); + ImGui::PopAllowKeyboardFocus(); + ImGui::InputText("5", buf, IM_ARRAYSIZE(buf)); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Focus from code")) + { + bool focus_1 = ImGui::Button("Focus on 1"); ImGui::SameLine(); + bool focus_2 = ImGui::Button("Focus on 2"); ImGui::SameLine(); + bool focus_3 = ImGui::Button("Focus on 3"); + int has_focus = 0; + static char buf[128] = "click on a button to set focus"; + + if (focus_1) ImGui::SetKeyboardFocusHere(); + ImGui::InputText("1", buf, IM_ARRAYSIZE(buf)); + if (ImGui::IsItemActive()) has_focus = 1; + + if (focus_2) ImGui::SetKeyboardFocusHere(); + ImGui::InputText("2", buf, IM_ARRAYSIZE(buf)); + if (ImGui::IsItemActive()) has_focus = 2; + + ImGui::PushAllowKeyboardFocus(false); + if (focus_3) ImGui::SetKeyboardFocusHere(); + ImGui::InputText("3 (tab skip)", buf, IM_ARRAYSIZE(buf)); + if (ImGui::IsItemActive()) has_focus = 3; + ImGui::PopAllowKeyboardFocus(); + if (has_focus) + ImGui::Text("Item with focus: %d", has_focus); + else + ImGui::Text("Item with focus: "); + ImGui::TextWrapped("Cursor & selection are preserved when refocusing last used item in code."); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Dragging")) + { + ImGui::TextWrapped("You can use ImGui::GetItemActiveDragDelta() to query for the dragged amount on any widget."); + ImGui::Button("Drag Me"); + if (ImGui::IsItemActive()) + { + // Draw a line between the button and the mouse cursor + ImDrawList* draw_list = ImGui::GetWindowDrawList(); + draw_list->PushClipRectFullScreen(); + draw_list->AddLine(ImGui::CalcItemRectClosestPoint(ImGui::GetIO().MousePos, true, -2.0f), ImGui::GetIO().MousePos, ImColor(ImGui::GetStyle().Colors[ImGuiCol_Button]), 4.0f); + draw_list->PopClipRect(); + ImVec2 value_raw = ImGui::GetMouseDragDelta(0, 0.0f); + ImVec2 value_with_lock_threshold = ImGui::GetMouseDragDelta(0); + ImGui::SameLine(); ImGui::Text("Raw (%.1f, %.1f), WithLockThresold (%.1f, %.1f)", value_raw.x, value_raw.y, value_with_lock_threshold.x, value_with_lock_threshold.y); + } + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Keyboard & Mouse State")) + { + ImGuiIO& io = ImGui::GetIO(); + + ImGui::Text("MousePos: (%g, %g)", io.MousePos.x, io.MousePos.y); + ImGui::Text("Mouse down:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (io.MouseDownDuration[i] >= 0.0f) { ImGui::SameLine(); ImGui::Text("%d (%.02f secs)", i, io.MouseDownDuration[i]); } + ImGui::Text("Mouse clicked:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseClicked(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } + ImGui::Text("Mouse released:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseReleased(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } + ImGui::Text("MouseWheel: %.1f", io.MouseWheel); + + ImGui::Text("Keys down:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (io.KeysDownDuration[i] >= 0.0f) { ImGui::SameLine(); ImGui::Text("%d (%.02f secs)", i, io.KeysDownDuration[i]); } + ImGui::Text("Keys pressed:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (ImGui::IsKeyPressed(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } + ImGui::Text("Keys release:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (ImGui::IsKeyReleased(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } + ImGui::Text("KeyMods: %s%s%s", io.KeyCtrl ? "CTRL " : "", io.KeyShift ? "SHIFT " : "", io.KeyAlt ? "ALT " : ""); + + ImGui::Text("WantCaptureMouse: %s", io.WantCaptureMouse ? "true" : "false"); + ImGui::Text("WantCaptureKeyboard: %s", io.WantCaptureKeyboard ? "true" : "false"); + + ImGui::Button("Hover me\nto enforce\ninputs capture"); + if (ImGui::IsItemHovered()) + ImGui::CaptureKeyboardFromApp(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Mouse cursors")) + { + ImGui::TextWrapped("Your application can render a different mouse cursor based on what ImGui::GetMouseCursor() returns. You can also set io.MouseDrawCursor to ask ImGui to render the cursor for you in software."); + ImGui::Checkbox("io.MouseDrawCursor", &ImGui::GetIO().MouseDrawCursor); + ImGui::Text("Hover to see mouse cursors:"); + for (int i = 0; i < ImGuiMouseCursor_Count_; i++) + { + char label[32]; + sprintf(label, "Mouse cursor %d", i); + ImGui::Bullet(); ImGui::Selectable(label, false); + if (ImGui::IsItemHovered()) + ImGui::SetMouseCursor(i); + } + ImGui::TreePop(); + } + } + + ImGui::End(); +} + +void ImGui::ShowStyleEditor(ImGuiStyle* ref) +{ + ImGuiStyle& style = ImGui::GetStyle(); + + const ImGuiStyle def; // Default style + if (ImGui::Button("Revert Style")) + style = ref ? *ref : def; + if (ref) + { + ImGui::SameLine(); + if (ImGui::Button("Save Style")) + *ref = style; + } + + ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.55f); + + if (ImGui::TreeNode("Rendering")) + { + ImGui::Checkbox("Anti-aliased lines", &style.AntiAliasedLines); + ImGui::Checkbox("Anti-aliased shapes", &style.AntiAliasedShapes); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Sizes")) + { + ImGui::SliderFloat("Alpha", &style.Alpha, 0.20f, 1.0f, "%.2f"); // Not exposing zero here so user doesn't "lose" the UI. But application code could have a toggle to switch between zero and non-zero. + ImGui::SliderFloat2("WindowPadding", (float*)&style.WindowPadding, 0.0f, 20.0f, "%.0f"); + ImGui::SliderFloat("WindowRounding", &style.WindowRounding, 0.0f, 16.0f, "%.0f"); + ImGui::SliderFloat("ChildWindowRounding", &style.ChildWindowRounding, 0.0f, 16.0f, "%.0f"); + ImGui::SliderFloat2("FramePadding", (float*)&style.FramePadding, 0.0f, 20.0f, "%.0f"); + ImGui::SliderFloat("FrameRounding", &style.FrameRounding, 0.0f, 16.0f, "%.0f"); + ImGui::SliderFloat2("ItemSpacing", (float*)&style.ItemSpacing, 0.0f, 20.0f, "%.0f"); + ImGui::SliderFloat2("ItemInnerSpacing", (float*)&style.ItemInnerSpacing, 0.0f, 20.0f, "%.0f"); + ImGui::SliderFloat2("TouchExtraPadding", (float*)&style.TouchExtraPadding, 0.0f, 10.0f, "%.0f"); + ImGui::SliderFloat("IndentSpacing", &style.IndentSpacing, 0.0f, 30.0f, "%.0f"); + ImGui::SliderFloat("ScrollbarWidth", &style.ScrollbarWidth, 1.0f, 20.0f, "%.0f"); + ImGui::SliderFloat("ScrollbarRounding", &style.ScrollbarRounding, 0.0f, 16.0f, "%.0f"); + ImGui::SliderFloat("GrabMinSize", &style.GrabMinSize, 1.0f, 20.0f, "%.0f"); + ImGui::SliderFloat("GrabRounding", &style.GrabRounding, 0.0f, 16.0f, "%.0f"); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Colors")) + { + static int output_dest = 0; + static bool output_only_modified = false; + if (ImGui::Button("Output Colors")) + { + if (output_dest == 0) + ImGui::LogToClipboard(); + else + ImGui::LogToTTY(); + ImGui::LogText("ImGuiStyle& style = ImGui::GetStyle();" IM_NEWLINE); + for (int i = 0; i < ImGuiCol_COUNT; i++) + { + const ImVec4& col = style.Colors[i]; + const char* name = ImGui::GetStyleColName(i); + if (!output_only_modified || memcmp(&col, (ref ? &ref->Colors[i] : &def.Colors[i]), sizeof(ImVec4)) != 0) + ImGui::LogText("style.Colors[ImGuiCol_%s]%*s= ImVec4(%.2ff, %.2ff, %.2ff, %.2ff);" IM_NEWLINE, name, 22 - strlen(name), "", col.x, col.y, col.z, col.w); + } + ImGui::LogFinish(); + } + ImGui::SameLine(); ImGui::PushItemWidth(120); ImGui::Combo("##output_type", &output_dest, "To Clipboard\0To TTY"); ImGui::PopItemWidth(); + ImGui::SameLine(); ImGui::Checkbox("Only Modified Fields", &output_only_modified); + + static ImGuiColorEditMode edit_mode = ImGuiColorEditMode_RGB; + ImGui::RadioButton("RGB", &edit_mode, ImGuiColorEditMode_RGB); + ImGui::SameLine(); + ImGui::RadioButton("HSV", &edit_mode, ImGuiColorEditMode_HSV); + ImGui::SameLine(); + ImGui::RadioButton("HEX", &edit_mode, ImGuiColorEditMode_HEX); + //ImGui::Text("Tip: Click on colored square to change edit mode."); + + static ImGuiTextFilter filter; + filter.Draw("Filter colors", 200); + + ImGui::BeginChild("#colors", ImVec2(0, 300), true); + ImGui::PushItemWidth(-160); + ImGui::ColorEditMode(edit_mode); + for (int i = 0; i < ImGuiCol_COUNT; i++) + { + const char* name = ImGui::GetStyleColName(i); + if (!filter.PassFilter(name)) + continue; + ImGui::PushID(i); + ImGui::ColorEdit4(name, (float*)&style.Colors[i], true); + if (memcmp(&style.Colors[i], (ref ? &ref->Colors[i] : &def.Colors[i]), sizeof(ImVec4)) != 0) + { + ImGui::SameLine(); if (ImGui::Button("Revert")) style.Colors[i] = ref ? ref->Colors[i] : def.Colors[i]; + if (ref) { ImGui::SameLine(); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i]; } + } + ImGui::PopID(); + } + ImGui::PopItemWidth(); + ImGui::EndChild(); + + ImGui::TreePop(); + } + + ImGui::PopItemWidth(); +} + +static void ShowExampleAppMainMenuBar() +{ + if (ImGui::BeginMainMenuBar()) + { + if (ImGui::BeginMenu("File")) + { + ShowExampleMenuFile(); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Edit")) + { + if (ImGui::MenuItem("Undo", "CTRL+Z")) {} + if (ImGui::MenuItem("Redo", "CTRL+Y", false, false)) {} // Disabled item + ImGui::Separator(); + if (ImGui::MenuItem("Cut", "CTRL+X")) {} + if (ImGui::MenuItem("Copy", "CTRL+C")) {} + if (ImGui::MenuItem("Paste", "CTRL+V")) {} + ImGui::EndMenu(); + } + ImGui::EndMainMenuBar(); + } +} + +static void ShowExampleMenuFile() +{ + ImGui::MenuItem("(dummy menu)", NULL, false, false); + if (ImGui::MenuItem("New")) {} + if (ImGui::MenuItem("Open", "Ctrl+O")) {} + if (ImGui::BeginMenu("Open Recent")) + { + ImGui::MenuItem("fish_hat.c"); + ImGui::MenuItem("fish_hat.inl"); + ImGui::MenuItem("fish_hat.h"); + if (ImGui::BeginMenu("More..")) + { + ImGui::MenuItem("Hello"); + ImGui::MenuItem("Sailor"); + if (ImGui::BeginMenu("Recurse..")) + { + ShowExampleMenuFile(); + ImGui::EndMenu(); + } + ImGui::EndMenu(); + } + ImGui::EndMenu(); + } + if (ImGui::MenuItem("Save", "Ctrl+S")) {} + if (ImGui::MenuItem("Save As..")) {} + ImGui::Separator(); + if (ImGui::BeginMenu("Options")) + { + static bool enabled = true; + ImGui::MenuItem("Enabled", "", &enabled); + ImGui::BeginChild("child", ImVec2(0, 60), true); + for (int i = 0; i < 10; i++) + ImGui::Text("Scrolling Text %d", i); + ImGui::EndChild(); + static float f = 0.5f; + static int n = 0; + ImGui::SliderFloat("Value", &f, 0.0f, 1.0f); + ImGui::InputFloat("Input", &f, 0.1f); + ImGui::Combo("Combo", &n, "Yes\0No\0Maybe\0\0"); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Colors")) + { + for (int i = 0; i < ImGuiCol_COUNT; i++) + ImGui::MenuItem(ImGui::GetStyleColName((ImGuiCol)i)); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Disabled", false)) // Disabled + { + IM_ASSERT(0); + } + if (ImGui::MenuItem("Checked", NULL, true)) {} + if (ImGui::MenuItem("Quit", "Alt+F4")) {} +} + +static void ShowExampleAppAutoResize(bool* opened) +{ + if (!ImGui::Begin("Example: Auto-resizing window", opened, ImGuiWindowFlags_AlwaysAutoResize)) + { + ImGui::End(); + return; + } + + static int lines = 10; + ImGui::Text("Window will resize every-frame to the size of its content.\nNote that you probably don't want to query the window size to\noutput your content because that would create a feedback loop."); + ImGui::SliderInt("Number of lines", &lines, 1, 20); + for (int i = 0; i < lines; i++) + ImGui::Text("%*sThis is line %d", i*4, "", i); // Pad with space to extend size horizontally + ImGui::End(); +} + +static void ShowExampleAppFixedOverlay(bool* opened) +{ + ImGui::SetNextWindowPos(ImVec2(10,10)); + if (!ImGui::Begin("Example: Fixed Overlay", opened, ImVec2(0,0), 0.3f, ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoSavedSettings)) + { + ImGui::End(); + return; + } + ImGui::Text("Simple overlay\non the top-left side of the screen."); + ImGui::Separator(); + ImGui::Text("Mouse Position: (%.1f,%.1f)", ImGui::GetIO().MousePos.x, ImGui::GetIO().MousePos.y); + ImGui::End(); +} + +static void ShowExampleAppManipulatingWindowTitle(bool* opened) +{ + (void)opened; + + // By default, Windows are uniquely identified by their title. + // You can use the "##" and "###" markers to manipulate the display/ID. Read FAQ at the top of this file! + + // Using "##" to display same title but have unique identifier. + ImGui::SetNextWindowPos(ImVec2(100,100), ImGuiSetCond_FirstUseEver); + ImGui::Begin("Same title as another window##1"); + ImGui::Text("This is window 1.\nMy title is the same as window 2, but my identifier is unique."); + ImGui::End(); + + ImGui::SetNextWindowPos(ImVec2(100,200), ImGuiSetCond_FirstUseEver); + ImGui::Begin("Same title as another window##2"); + ImGui::Text("This is window 2.\nMy title is the same as window 1, but my identifier is unique."); + ImGui::End(); + + // Using "###" to display a changing title but keep a static identifier "AnimatedTitle" + char buf[128]; + sprintf(buf, "Animated title %c %d###AnimatedTitle", "|/-\\"[(int)(ImGui::GetTime()/0.25f)&3], rand()); + ImGui::SetNextWindowPos(ImVec2(100,300), ImGuiSetCond_FirstUseEver); + ImGui::Begin(buf); + ImGui::Text("This window has a changing title."); + ImGui::End(); +} + +static void ShowExampleAppCustomRendering(bool* opened) +{ + ImGui::SetNextWindowSize(ImVec2(300,350), ImGuiSetCond_FirstUseEver); + if (!ImGui::Begin("Example: Custom rendering", opened)) + { + ImGui::End(); + return; + } + + // Tip: If you do a lot of custom rendering, you probably want to use your own geometrical types and benefit of overloaded operators, etc. + // Define IM_VEC2_CLASS_EXTRA in imconfig.h to create implicit conversions between your types and ImVec2/ImVec4. + // ImGui defines overloaded operators but they are internal to imgui.cpp and not exposed outside (to avoid messing with your types) + // In this example we aren't using the operators. + + static ImVector points; + static bool adding_line = false; + if (ImGui::Button("Clear")) points.clear(); + if (points.Size >= 2) { ImGui::SameLine(); if (ImGui::Button("Undo")) { points.pop_back(); points.pop_back(); } } + ImGui::Text("Left-click and drag to add lines"); + ImGui::Text("Right-click to undo"); + + ImDrawList* draw_list = ImGui::GetWindowDrawList(); + + // Here we are using InvisibleButton() as a convenience to 1) advance the cursor and 2) allows us to use IsItemHovered() + // However you can draw directly and poll mouse/keyboard by yourself. You can manipulate the cursor using GetCursorPos() and SetCursorPos(). + // If you only use the ImDrawList API, you can notify the owner window of its extends by using SetCursorPos(max). + ImVec2 canvas_pos = ImGui::GetCursorScreenPos(); // ImDrawList API uses screen coordinates! + ImVec2 canvas_size = ImGui::GetContentRegionAvail(); // Resize canvas to what's available + if (canvas_size.x < 50.0f) canvas_size.x = 50.0f; + if (canvas_size.y < 50.0f) canvas_size.y = 50.0f; + draw_list->AddRectFilledMultiColor(canvas_pos, ImVec2(canvas_pos.x + canvas_size.x, canvas_pos.y + canvas_size.y), ImColor(0,0,0), ImColor(255,0,0), ImColor(255,255,0), ImColor(0,255,0)); + draw_list->AddRect(canvas_pos, ImVec2(canvas_pos.x + canvas_size.x, canvas_pos.y + canvas_size.y), ImColor(255,255,255)); + bool adding_preview = false; + ImGui::InvisibleButton("canvas", canvas_size); + if (ImGui::IsItemHovered()) + { + ImVec2 mouse_pos_in_canvas = ImVec2(ImGui::GetIO().MousePos.x - canvas_pos.x, ImGui::GetIO().MousePos.y - canvas_pos.y); + if (!adding_line && ImGui::GetIO().MouseClicked[0]) + { + points.push_back(mouse_pos_in_canvas); + adding_line = true; + } + if (adding_line) + { + adding_preview = true; + points.push_back(mouse_pos_in_canvas); + if (!ImGui::GetIO().MouseDown[0]) + adding_line = adding_preview = false; + } + if (ImGui::GetIO().MouseClicked[1] && !points.empty()) + { + adding_line = false; + points.pop_back(); + points.pop_back(); + } + } + draw_list->PushClipRect(ImVec4(canvas_pos.x, canvas_pos.y, canvas_pos.x+canvas_size.x, canvas_pos.y+canvas_size.y)); // clip lines within the canvas (if we resize it, etc.) + for (int i = 0; i < points.Size - 1; i += 2) + draw_list->AddLine(ImVec2(canvas_pos.x + points[i].x, canvas_pos.y + points[i].y), ImVec2(canvas_pos.x + points[i+1].x, canvas_pos.y + points[i+1].y), 0xFF00FFFF); + draw_list->PopClipRect(); + if (adding_preview) + points.pop_back(); + ImGui::End(); +} + +// For the console example, here we are using a more C++ like approach of declaring a class to hold the data and the functions. +struct ExampleAppConsole +{ + char InputBuf[256]; + ImVector Items; + bool ScrollToBottom; + ImVector History; + int HistoryPos; // -1: new line, 0..History.Size-1 browsing history. + ImVector Commands; + + ExampleAppConsole() + { + ClearLog(); + HistoryPos = -1; + Commands.push_back("HELP"); + Commands.push_back("HISTORY"); + Commands.push_back("CLEAR"); + Commands.push_back("CLASSIFY"); // "classify" is here to provide an example of "C"+[tab] completing to "CL" and displaying matches. + } + ~ExampleAppConsole() + { + ClearLog(); + for (int i = 0; i < Items.Size; i++) + free(History[i]); + } + + void ClearLog() + { + for (int i = 0; i < Items.Size; i++) + free(Items[i]); + Items.clear(); + ScrollToBottom = true; + } + + void AddLog(const char* fmt, ...) + { + char buf[1024]; + va_list args; + va_start(args, fmt); + vsnprintf(buf, IM_ARRAYSIZE(buf), fmt, args); + buf[IM_ARRAYSIZE(buf)-1] = 0; + va_end(args); + Items.push_back(strdup(buf)); + ScrollToBottom = true; + } + + void Run(const char* title, bool* opened) + { + ImGui::SetNextWindowSize(ImVec2(520,600), ImGuiSetCond_FirstUseEver); + if (!ImGui::Begin(title, opened)) + { + ImGui::End(); + return; + } + + ImGui::TextWrapped("This example implements a console with basic coloring, completion and history. A more elaborate implementation may want to store entries along with extra data such as timestamp, emitter, etc."); + ImGui::TextWrapped("Enter 'HELP' for help, press TAB to use text completion."); + + // TODO: display items starting from the bottom + + if (ImGui::SmallButton("Add Dummy Text")) { AddLog("%d some text", Items.Size); AddLog("some more text"); AddLog("display very important message here!"); } ImGui::SameLine(); + if (ImGui::SmallButton("Add Dummy Error")) AddLog("[error] something went wrong"); ImGui::SameLine(); + if (ImGui::SmallButton("Clear")) ClearLog(); + //static float t = 0.0f; if (ImGui::GetTime() - t > 0.02f) { t = ImGui::GetTime(); AddLog("Spam %f", t); } + + ImGui::Separator(); + + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0,0)); + static ImGuiTextFilter filter; + filter.Draw("Filter (\"incl,-excl\") (\"error\")", 180); + ImGui::PopStyleVar(); + ImGui::Separator(); + + // Display every line as a separate entry so we can change their color or add custom widgets. If you only want raw text you can use ImGui::TextUnformatted(log.begin(), log.end()); + // NB- if you have thousands of entries this approach may be too inefficient. You can seek and display only the lines that are visible - CalcListClipping() is a helper to compute this information. + // If your items are of variable size you may want to implement code similar to what CalcListClipping() does. Or split your data into fixed height items to allow random-seeking into your list. + ImGui::BeginChild("ScrollingRegion", ImVec2(0,-ImGui::GetItemsLineHeightWithSpacing())); + if (ImGui::BeginPopupContextWindow()) + { + if (ImGui::Selectable("Clear")) ClearLog(); + ImGui::EndPopup(); + } + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(4,1)); // Tighten spacing + for (int i = 0; i < Items.Size; i++) + { + const char* item = Items[i]; + if (!filter.PassFilter(item)) + continue; + ImVec4 col = ImColor(255,255,255); // A better implementation may store a type per-item. For the sample let's just parse the text. + if (strstr(item, "[error]")) col = ImColor(255,100,100); + else if (strncmp(item, "# ", 2) == 0) col = ImColor(255,200,150); + ImGui::PushStyleColor(ImGuiCol_Text, col); + ImGui::TextUnformatted(item); + ImGui::PopStyleColor(); + } + if (ScrollToBottom) + ImGui::SetScrollHere(); + ScrollToBottom = false; + ImGui::PopStyleVar(); + ImGui::EndChild(); + ImGui::Separator(); + + // Command-line + if (ImGui::InputText("Input", InputBuf, IM_ARRAYSIZE(InputBuf), ImGuiInputTextFlags_EnterReturnsTrue|ImGuiInputTextFlags_CallbackCompletion|ImGuiInputTextFlags_CallbackHistory, &TextEditCallbackStub, (void*)this)) + { + char* input_end = InputBuf+strlen(InputBuf); + while (input_end > InputBuf && input_end[-1] == ' ') input_end--; *input_end = 0; + if (InputBuf[0]) + ExecCommand(InputBuf); + strcpy(InputBuf, ""); + } + + // Demonstrate keeping auto focus on the input box + if (ImGui::IsItemHovered() || (ImGui::IsRootWindowOrAnyChildFocused() && !ImGui::IsAnyItemActive() && !ImGui::IsMouseClicked(0))) + ImGui::SetKeyboardFocusHere(-1); // Auto focus + + ImGui::End(); + } + + static int Stricmp(const char* str1, const char* str2) { int d; while ((d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; } return d; } + static int Strnicmp(const char* str1, const char* str2, int count) { int d = 0; while (count > 0 && (d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; count--; } return d; } + + void ExecCommand(const char* command_line) + { + AddLog("# %s\n", command_line); + + // Insert into history. First find match and delete it so it can be pushed to the back. This isn't trying to be smart or optimal. + HistoryPos = -1; + for (int i = History.Size-1; i >= 0; i--) + if (Stricmp(History[i], command_line) == 0) + { + free(History[i]); + History.erase(History.begin() + i); + break; + } + History.push_back(strdup(command_line)); + + // Process command + if (Stricmp(command_line, "CLEAR") == 0) + { + ClearLog(); + } + else if (Stricmp(command_line, "HELP") == 0) + { + AddLog("Commands:"); + for (int i = 0; i < Commands.Size; i++) + AddLog("- %s", Commands[i]); + } + else if (Stricmp(command_line, "HISTORY") == 0) + { + for (int i = History.Size >= 10 ? History.Size - 10 : 0; i < History.Size; i++) + AddLog("%3d: %s\n", i, History[i]); + } + else + { + AddLog("Unknown command: '%s'\n", command_line); + } + } + + static int TextEditCallbackStub(ImGuiTextEditCallbackData* data) // In C++11 you are better off using lambdas for this sort of forwarding callbacks + { + ExampleAppConsole* console = (ExampleAppConsole*)data->UserData; + return console->TextEditCallback(data); + } + + int TextEditCallback(ImGuiTextEditCallbackData* data) + { + //AddLog("cursor: %d, selection: %d-%d", data->CursorPos, data->SelectionStart, data->SelectionEnd); + switch (data->EventFlag) + { + case ImGuiInputTextFlags_CallbackCompletion: + { + // Example of TEXT COMPLETION + + // Locate beginning of current word + const char* word_end = data->Buf + data->CursorPos; + const char* word_start = word_end; + while (word_start > data->Buf) + { + const char c = word_start[-1]; + if (c == ' ' || c == '\t' || c == ',' || c == ';') + break; + word_start--; + } + + // Build a list of candidates + ImVector candidates; + for (int i = 0; i < Commands.Size; i++) + if (Strnicmp(Commands[i], word_start, (int)(word_end-word_start)) == 0) + candidates.push_back(Commands[i]); + + if (candidates.Size == 0) + { + // No match + AddLog("No match for \"%.*s\"!\n", word_end-word_start, word_start); + } + else if (candidates.Size == 1) + { + // Single match. Delete the beginning of the word and replace it entirely so we've got nice casing + data->DeleteChars((int)(word_start-data->Buf), (int)(word_end-word_start)); + data->InsertChars(data->CursorPos, candidates[0]); + data->InsertChars(data->CursorPos, " "); + } + else + { + // Multiple matches. Complete as much as we can, so inputing "C" will complete to "CL" and display "CLEAR" and "CLASSIFY" + int match_len = (int)(word_end - word_start); + for (;;) + { + int c = 0; + bool all_candidates_matches = true; + for (int i = 0; i < candidates.Size && all_candidates_matches; i++) + if (i == 0) + c = toupper(candidates[i][match_len]); + else if (c != toupper(candidates[i][match_len])) + all_candidates_matches = false; + if (!all_candidates_matches) + break; + match_len++; + } + + if (match_len > 0) + { + data->DeleteChars((int)(word_start - data->Buf), (int)(word_end-word_start)); + data->InsertChars(data->CursorPos, candidates[0], candidates[0] + match_len); + } + + // List matches + AddLog("Possible matches:\n"); + for (int i = 0; i < candidates.Size; i++) + AddLog("- %s\n", candidates[i]); + } + + break; + } + case ImGuiInputTextFlags_CallbackHistory: + { + // Example of HISTORY + const int prev_history_pos = HistoryPos; + if (data->EventKey == ImGuiKey_UpArrow) + { + if (HistoryPos == -1) + HistoryPos = History.Size - 1; + else if (HistoryPos > 0) + HistoryPos--; + } + else if (data->EventKey == ImGuiKey_DownArrow) + { + if (HistoryPos != -1) + if (++HistoryPos >= History.Size) + HistoryPos = -1; + } + + // A better implementation would preserve the data on the current input line along with cursor position. + if (prev_history_pos != HistoryPos) + { + snprintf(data->Buf, data->BufSize, "%s", (HistoryPos >= 0) ? History[HistoryPos] : ""); + data->BufDirty = true; + data->CursorPos = data->SelectionStart = data->SelectionEnd = (int)strlen(data->Buf); + } + } + } + return 0; + } +}; + +static void ShowExampleAppConsole(bool* opened) +{ + static ExampleAppConsole console; + console.Run("Example: Console", opened); +} + +static void ShowExampleAppLayout(bool* opened) +{ + ImGui::SetNextWindowSize(ImVec2(500, 440), ImGuiSetCond_FirstUseEver); + if (ImGui::Begin("Example: Layout", opened, ImGuiWindowFlags_MenuBar)) + { + if (ImGui::BeginMenuBar()) + { + if (ImGui::BeginMenu("File")) + { + if (ImGui::MenuItem("Close")) *opened = false; + ImGui::EndMenu(); + } + ImGui::EndMenuBar(); + } + + // left + static int selected = 0; + ImGui::BeginChild("left pane", ImVec2(150, 0), true); + for (int i = 0; i < 100; i++) + { + char label[128]; + sprintf(label, "MyObject %d", i); + if (ImGui::Selectable(label, selected == i)) + selected = i; + } + ImGui::EndChild(); + ImGui::SameLine(); + + // right + ImGui::BeginGroup(); + ImGui::BeginChild("item view", ImVec2(0, -ImGui::GetItemsLineHeightWithSpacing())); // Leave room for 1 line below us + ImGui::Text("MyObject: %d", selected); + ImGui::Separator(); + ImGui::TextWrapped("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "); + ImGui::EndChild(); + ImGui::BeginChild("buttons"); + if (ImGui::Button("Revert")) {} + ImGui::SameLine(); + if (ImGui::Button("Save")) {} + ImGui::EndChild(); + ImGui::EndGroup(); + } + ImGui::End(); +} + +static void ShowExampleAppLongText(bool* opened) +{ + ImGui::SetNextWindowSize(ImVec2(520,600), ImGuiSetCond_FirstUseEver); + if (!ImGui::Begin("Example: Long text display", opened)) + { + ImGui::End(); + return; + } + + static int test_type = 0; + static ImGuiTextBuffer log; + static int lines = 0; + ImGui::Text("Printing unusually long amount of text."); + ImGui::Combo("Test type", &test_type, "Single call to TextUnformatted()\0Multiple calls to Text(), clipped manually\0Multiple calls to Text(), not clipped"); + ImGui::Text("Buffer contents: %d lines, %d bytes", lines, log.size()); + if (ImGui::Button("Clear")) { log.clear(); lines = 0; } + ImGui::SameLine(); + if (ImGui::Button("Add 1000 lines")) + { + for (int i = 0; i < 1000; i++) + log.append("%i The quick brown fox jumps over the lazy dog\n", lines+i); + lines += 1000; + } + ImGui::BeginChild("Log"); + switch (test_type) + { + case 0: + // Single call to TextUnformatted() with a big buffer + ImGui::TextUnformatted(log.begin(), log.end()); + break; + case 1: + // Multiple calls to Text(), manually coarsely clipped - demonstrate how to use the CalcListClipping() helper. + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0,0)); + int display_start, display_end; + ImGui::CalcListClipping(lines, ImGui::GetTextLineHeight(), &display_start, &display_end); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (display_start) * ImGui::GetTextLineHeight()); + for (int i = display_start; i < display_end; i++) + ImGui::Text("%i The quick brown fox jumps over the lazy dog\n", i); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (lines - display_end) * ImGui::GetTextLineHeight()); + ImGui::PopStyleVar(); + break; + case 2: + // Multiple calls to Text(), not clipped (slow) + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0,0)); + for (int i = 0; i < lines; i++) + ImGui::Text("%i The quick brown fox jumps over the lazy dog\n", i); + ImGui::PopStyleVar(); + break; + } + ImGui::EndChild(); + ImGui::End(); +} + +// End of Demo code +#else + +void ImGui::ShowTestWindow(bool*) {} +void ImGui::ShowUserGuide(bool*) {} +void ImGui::ShowStyleEditor(bool*) {} + +#endif diff --git a/samples/dual_layer/D3D11/src/imgui/imgui_draw.cpp b/samples/dual_layer/D3D11/src/imgui/imgui_draw.cpp new file mode 100644 index 0000000..d4d8ccb --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/imgui_draw.cpp @@ -0,0 +1,2108 @@ +// ImGui library v1.44 +// Drawing and font code + +// Contains implementation for +// - ImDrawList +// - ImDrawData +// - ImFontAtlas +// - ImFont +// - Default font data + +#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include "imgui.h" +#define IMGUI_DEFINE_MATH_OPERATORS +#include "imgui_internal.h" + +#include // vsnprintf, sscanf, printf +#include // new (ptr) +#ifndef alloca +#if defined(_MSC_VER) || defined(__MINGW32__) +#include // alloca +#else +#include // alloca +#endif +#endif + +#ifdef _MSC_VER +#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) +#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen +#define snprintf _snprintf +#endif + +//------------------------------------------------------------------------- +// STB libraries implementation +//------------------------------------------------------------------------- + +//#define IMGUI_STB_NAMESPACE ImGuiStb +//#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION +//#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION + +#ifdef IMGUI_STB_NAMESPACE +namespace IMGUI_STB_NAMESPACE +{ +#endif + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-function" +#pragma clang diagnostic ignored "-Wmissing-prototypes" +#endif + +#define STBRP_ASSERT(x) IM_ASSERT(x) +#ifndef IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION +#define STBRP_STATIC +#define STB_RECT_PACK_IMPLEMENTATION +#endif +#include "stb_rect_pack.h" + +#define STBTT_malloc(x,u) ((void)(u), ImGui::MemAlloc(x)) +#define STBTT_free(x,u) ((void)(u), ImGui::MemFree(x)) +#define STBTT_assert(x) IM_ASSERT(x) +#ifndef IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION +#define STBTT_STATIC +#define STB_TRUETYPE_IMPLEMENTATION +#else +#define STBTT_DEF extern +#endif +#include "stb_truetype.h" + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +#ifdef IMGUI_STB_NAMESPACE +} // namespace ImGuiStb +using namespace IMGUI_STB_NAMESPACE; +#endif + +//----------------------------------------------------------------------------- +// ImDrawList +//----------------------------------------------------------------------------- + +static ImVec4 GNullClipRect(-9999.0f,-9999.0f, +9999.0f, +9999.0f); + +void ImDrawList::Clear() +{ + CmdBuffer.resize(0); + IdxBuffer.resize(0); + VtxBuffer.resize(0); + _VtxCurrentIdx = 0; + _VtxWritePtr = NULL; + _IdxWritePtr = NULL; + _ClipRectStack.resize(0); + _TextureIdStack.resize(0); + _Path.resize(0); + _ChannelCurrent = 0; + // NB: Do not clear channels so our allocations are re-used after the first frame. +} + +void ImDrawList::ClearFreeMemory() +{ + CmdBuffer.clear(); + IdxBuffer.clear(); + VtxBuffer.clear(); + _VtxCurrentIdx = 0; + _VtxWritePtr = NULL; + _IdxWritePtr = NULL; + _ClipRectStack.clear(); + _TextureIdStack.clear(); + _Path.clear(); + _ChannelCurrent = 0; + for (int i = 0; i < _Channels.Size; i++) + { + if (i == 0) memset(&_Channels[0], 0, sizeof(_Channels[0])); // channel 0 is a copy of CmdBuffer/IdxBuffer, don't destruct again + _Channels[i].CmdBuffer.clear(); + _Channels[i].IdxBuffer.clear(); + } + _Channels.clear(); +} + +void ImDrawList::AddDrawCmd() +{ + ImDrawCmd draw_cmd; + draw_cmd.ElemCount = 0; + draw_cmd.ClipRect = _ClipRectStack.Size ? _ClipRectStack.back() : GNullClipRect; + draw_cmd.TextureId = _TextureIdStack.Size ? _TextureIdStack.back() : NULL; + draw_cmd.UserCallback = NULL; + draw_cmd.UserCallbackData = NULL; + + IM_ASSERT(draw_cmd.ClipRect.x <= draw_cmd.ClipRect.z && draw_cmd.ClipRect.y <= draw_cmd.ClipRect.w); + CmdBuffer.push_back(draw_cmd); +} + +void ImDrawList::AddCallback(ImDrawCallback callback, void* callback_data) +{ + ImDrawCmd* current_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; + if (!current_cmd || current_cmd->ElemCount != 0 || current_cmd->UserCallback != NULL) + { + AddDrawCmd(); + current_cmd = &CmdBuffer.back(); + } + current_cmd->UserCallback = callback; + current_cmd->UserCallbackData = callback_data; + + // Force a new command after us (we function this way so that the most common calls AddLine, AddRect, etc. always have a command to add to without doing any check). + AddDrawCmd(); +} + +void ImDrawList::ChannelsSplit(int channel_count) +{ + IM_ASSERT(_ChannelCurrent == 0); + int old_channels_count = _Channels.Size; + if (old_channels_count < channel_count) + _Channels.resize(channel_count); + for (int i = 0; i < channel_count; i++) + if (i >= old_channels_count) + new(&_Channels[i]) ImDrawChannel(); + else + _Channels[i].CmdBuffer.resize(0), _Channels[i].IdxBuffer.resize(0); +} + +void ImDrawList::ChannelsMerge(int channel_count) +{ + // Note that we never use or rely on channels.Size because it is merely a buffer that we never shrink back to 0 to keep all sub-buffers ready for use. + // This is why this function takes 'channel_count' as a parameter of how many channels to merge (the user knows) + if (channel_count < 2) + return; + + ChannelsSetCurrent(0); + if (CmdBuffer.Size && CmdBuffer.back().ElemCount == 0) + CmdBuffer.pop_back(); + + int new_cmd_buffer_count = 0, new_idx_buffer_count = 0; + for (int i = 1; i < channel_count; i++) + { + ImDrawChannel& ch = _Channels[i]; + if (ch.CmdBuffer.Size && ch.CmdBuffer.back().ElemCount == 0) + ch.CmdBuffer.pop_back(); + new_cmd_buffer_count += ch.CmdBuffer.Size; + new_idx_buffer_count += ch.IdxBuffer.Size; + } + CmdBuffer.resize(CmdBuffer.Size + new_cmd_buffer_count); + IdxBuffer.resize(IdxBuffer.Size + new_idx_buffer_count); + + ImDrawCmd* cmd_write = CmdBuffer.Data + CmdBuffer.Size - new_cmd_buffer_count; + _IdxWritePtr = IdxBuffer.Data + IdxBuffer.Size - new_idx_buffer_count; + for (int i = 1; i < channel_count; i++) + { + ImDrawChannel& ch = _Channels[i]; + if (int sz = ch.CmdBuffer.Size) { memcpy(cmd_write, ch.CmdBuffer.Data, sz * sizeof(ImDrawCmd)); cmd_write += sz; } + if (int sz = ch.IdxBuffer.Size) { memcpy(_IdxWritePtr, ch.IdxBuffer.Data, sz * sizeof(ImDrawIdx)); _IdxWritePtr += sz; } + } + AddDrawCmd(); +} + +void ImDrawList::ChannelsSetCurrent(int idx) +{ + if (_ChannelCurrent == idx) return; + memcpy(&_Channels.Data[_ChannelCurrent].CmdBuffer, &CmdBuffer, sizeof(CmdBuffer)); + memcpy(&_Channels.Data[_ChannelCurrent].IdxBuffer, &IdxBuffer, sizeof(IdxBuffer)); + _ChannelCurrent = idx; + memcpy(&CmdBuffer, &_Channels.Data[_ChannelCurrent].CmdBuffer, sizeof(CmdBuffer)); + memcpy(&IdxBuffer, &_Channels.Data[_ChannelCurrent].IdxBuffer, sizeof(IdxBuffer)); + _IdxWritePtr = IdxBuffer.Data + IdxBuffer.Size; +} + +void ImDrawList::UpdateClipRect() +{ + ImDrawCmd* current_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; + if (!current_cmd || (current_cmd->ElemCount != 0) || current_cmd->UserCallback != NULL) + { + AddDrawCmd(); + } + else + { + ImVec4 current_clip_rect = _ClipRectStack.Size ? _ClipRectStack.back() : GNullClipRect; + if (CmdBuffer.Size >= 2 && ImLengthSqr(CmdBuffer.Data[CmdBuffer.Size-2].ClipRect - current_clip_rect) < 0.00001f) + CmdBuffer.pop_back(); + else + current_cmd->ClipRect = current_clip_rect; + } +} + +// Scissoring. The values in clip_rect are x1, y1, x2, y2. +void ImDrawList::PushClipRect(const ImVec4& clip_rect) +{ + _ClipRectStack.push_back(clip_rect); + UpdateClipRect(); +} + +void ImDrawList::PushClipRectFullScreen() +{ + PushClipRect(GNullClipRect); + + // This would be more correct but we're not supposed to access ImGuiState from here? + //ImGuiState& g = *GImGui; + //PushClipRect(GetVisibleRect()); +} + +void ImDrawList::PopClipRect() +{ + IM_ASSERT(_ClipRectStack.Size > 0); + _ClipRectStack.pop_back(); + UpdateClipRect(); +} + +void ImDrawList::UpdateTextureID() +{ + ImDrawCmd* current_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; + const ImTextureID texture_id = _TextureIdStack.Size ? _TextureIdStack.back() : NULL; + if (!current_cmd || (current_cmd->ElemCount != 0 && current_cmd->TextureId != texture_id) || current_cmd->UserCallback != NULL) + AddDrawCmd(); + else + current_cmd->TextureId = texture_id; +} + +void ImDrawList::PushTextureID(const ImTextureID& texture_id) +{ + _TextureIdStack.push_back(texture_id); + UpdateTextureID(); +} + +void ImDrawList::PopTextureID() +{ + IM_ASSERT(_TextureIdStack.Size > 0); + _TextureIdStack.pop_back(); + UpdateTextureID(); +} + +// NB: this can be called with negative count for removing primitives (as long as the result does not underflow) +void ImDrawList::PrimReserve(int idx_count, int vtx_count) +{ + ImDrawCmd& draw_cmd = CmdBuffer.Data[CmdBuffer.Size-1]; + draw_cmd.ElemCount += idx_count; + + int vtx_buffer_size = VtxBuffer.Size; + VtxBuffer.resize(vtx_buffer_size + vtx_count); + _VtxWritePtr = VtxBuffer.Data + vtx_buffer_size; + + int idx_buffer_size = IdxBuffer.Size; + IdxBuffer.resize(idx_buffer_size + idx_count); + _IdxWritePtr = IdxBuffer.Data + idx_buffer_size; +} + +void ImDrawList::PrimRect(const ImVec2& a, const ImVec2& c, ImU32 col) +{ + const ImVec2 uv = GImGui->FontTexUvWhitePixel; + const ImVec2 b(c.x, a.y); + const ImVec2 d(a.x, c.y); + _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+2); + _IdxWritePtr[3] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[4] = (ImDrawIdx)(_VtxCurrentIdx+2); _IdxWritePtr[5] = (ImDrawIdx)(_VtxCurrentIdx+3); + _VtxWritePtr[0].pos = a; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; + _VtxWritePtr[1].pos = b; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; + _VtxWritePtr[2].pos = c; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; + _VtxWritePtr[3].pos = d; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col; + _VtxWritePtr += 4; + _VtxCurrentIdx += 4; + _IdxWritePtr += 6; +} + +void ImDrawList::PrimRectUV(const ImVec2& a, const ImVec2& c, const ImVec2& uv_a, const ImVec2& uv_c, ImU32 col) +{ + const ImVec2 b(c.x, a.y); + const ImVec2 d(a.x, c.y); + const ImVec2 uv_b(uv_c.x, uv_a.y); + const ImVec2 uv_d(uv_a.x, uv_c.y); + _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+2); + _IdxWritePtr[3] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[4] = (ImDrawIdx)(_VtxCurrentIdx+2); _IdxWritePtr[5] = (ImDrawIdx)(_VtxCurrentIdx+3); + _VtxWritePtr[0].pos = a; _VtxWritePtr[0].uv = uv_a; _VtxWritePtr[0].col = col; + _VtxWritePtr[1].pos = b; _VtxWritePtr[1].uv = uv_b; _VtxWritePtr[1].col = col; + _VtxWritePtr[2].pos = c; _VtxWritePtr[2].uv = uv_c; _VtxWritePtr[2].col = col; + _VtxWritePtr[3].pos = d; _VtxWritePtr[3].uv = uv_d; _VtxWritePtr[3].col = col; + _VtxWritePtr += 4; + _VtxCurrentIdx += 4; + _IdxWritePtr += 6; +} + +// TODO: Thickness anti-aliased lines cap are missing their AA fringe. +void ImDrawList::AddPolyline(const ImVec2* points, const int points_count, ImU32 col, bool closed, float thickness, bool anti_aliased) +{ + if (points_count < 2) + return; + + const ImVec2 uv = GImGui->FontTexUvWhitePixel; + anti_aliased &= GImGui->Style.AntiAliasedLines; + //if (ImGui::GetIO().KeyCtrl) anti_aliased = false; + + int count = points_count; + if (!closed) + count = points_count-1; + + const bool thick_line = thickness > 1.0f; + if (anti_aliased) + { + // Anti-aliased stroke + const float AA_SIZE = 1.0f; + const ImU32 col_trans = col & 0x00ffffff; + + const int idx_count = thick_line ? count*18 : count*12; + const int vtx_count = thick_line ? points_count*4 : points_count*3; + PrimReserve(idx_count, vtx_count); + + // Temporary buffer + ImVec2* temp_normals = (ImVec2*)alloca(points_count * (thick_line ? 5 : 3) * sizeof(ImVec2)); + ImVec2* temp_points = temp_normals + points_count; + + for (int i1 = 0; i1 < count; i1++) + { + const int i2 = (i1+1) == points_count ? 0 : i1+1; + ImVec2 diff = points[i2] - points[i1]; + diff *= ImInvLength(diff, 1.0f); + temp_normals[i1].x = diff.y; + temp_normals[i1].y = -diff.x; + } + if (!closed) + temp_normals[points_count-1] = temp_normals[points_count-2]; + + if (!thick_line) + { + if (!closed) + { + temp_points[0] = points[0] + temp_normals[0] * AA_SIZE; + temp_points[1] = points[0] - temp_normals[0] * AA_SIZE; + temp_points[(points_count-1)*2+0] = points[points_count-1] + temp_normals[points_count-1] * AA_SIZE; + temp_points[(points_count-1)*2+1] = points[points_count-1] - temp_normals[points_count-1] * AA_SIZE; + } + + // FIXME-OPT: Merge the different loops, possibly remove the temporary buffer. + unsigned int idx1 = _VtxCurrentIdx; + for (int i1 = 0; i1 < count; i1++) + { + const int i2 = (i1+1) == points_count ? 0 : i1+1; + unsigned int idx2 = (i1+1) == points_count ? _VtxCurrentIdx : idx1+3; + + // Average normals + ImVec2 dm = (temp_normals[i1] + temp_normals[i2]) * 0.5f; + float dmr2 = dm.x*dm.x + dm.y*dm.y; + if (dmr2 > 0.000001f) + { + float scale = 1.0f / dmr2; + if (scale > 100.0f) scale = 100.0f; + dm *= scale; + } + dm *= AA_SIZE; + temp_points[i2*2+0] = points[i2] + dm; + temp_points[i2*2+1] = points[i2] - dm; + + // Add indexes + _IdxWritePtr[0] = (ImDrawIdx)(idx2+0); _IdxWritePtr[1] = (ImDrawIdx)(idx1+0); _IdxWritePtr[2] = (ImDrawIdx)(idx1+2); + _IdxWritePtr[3] = (ImDrawIdx)(idx1+2); _IdxWritePtr[4] = (ImDrawIdx)(idx2+2); _IdxWritePtr[5] = (ImDrawIdx)(idx2+0); + _IdxWritePtr[6] = (ImDrawIdx)(idx2+1); _IdxWritePtr[7] = (ImDrawIdx)(idx1+1); _IdxWritePtr[8] = (ImDrawIdx)(idx1+0); + _IdxWritePtr[9] = (ImDrawIdx)(idx1+0); _IdxWritePtr[10]= (ImDrawIdx)(idx2+0); _IdxWritePtr[11]= (ImDrawIdx)(idx2+1); + _IdxWritePtr += 12; + + idx1 = idx2; + } + + // Add vertexes + for (int i = 0; i < points_count; i++) + { + _VtxWritePtr[0].pos = points[i]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; + _VtxWritePtr[1].pos = temp_points[i*2+0]; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col_trans; + _VtxWritePtr[2].pos = temp_points[i*2+1]; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col_trans; + _VtxWritePtr += 3; + } + } + else + { + const float half_inner_thickness = (thickness - AA_SIZE) * 0.5f; + if (!closed) + { + temp_points[0] = points[0] + temp_normals[0] * (half_inner_thickness + AA_SIZE); + temp_points[1] = points[0] + temp_normals[0] * (half_inner_thickness); + temp_points[2] = points[0] - temp_normals[0] * (half_inner_thickness); + temp_points[3] = points[0] - temp_normals[0] * (half_inner_thickness + AA_SIZE); + temp_points[(points_count-1)*4+0] = points[points_count-1] + temp_normals[points_count-1] * (half_inner_thickness + AA_SIZE); + temp_points[(points_count-1)*4+1] = points[points_count-1] + temp_normals[points_count-1] * (half_inner_thickness); + temp_points[(points_count-1)*4+2] = points[points_count-1] - temp_normals[points_count-1] * (half_inner_thickness); + temp_points[(points_count-1)*4+3] = points[points_count-1] - temp_normals[points_count-1] * (half_inner_thickness + AA_SIZE); + } + + // FIXME-OPT: Merge the different loops, possibly remove the temporary buffer. + unsigned int idx1 = _VtxCurrentIdx; + for (int i1 = 0; i1 < count; i1++) + { + const int i2 = (i1+1) == points_count ? 0 : i1+1; + unsigned int idx2 = (i1+1) == points_count ? _VtxCurrentIdx : idx1+4; + + // Average normals + ImVec2 dm = (temp_normals[i1] + temp_normals[i2]) * 0.5f; + float dmr2 = dm.x*dm.x + dm.y*dm.y; + if (dmr2 > 0.000001f) + { + float scale = 1.0f / dmr2; + if (scale > 100.0f) scale = 100.0f; + dm *= scale; + } + ImVec2 dm_out = dm * (half_inner_thickness + AA_SIZE); + ImVec2 dm_in = dm * half_inner_thickness; + temp_points[i2*4+0] = points[i2] + dm_out; + temp_points[i2*4+1] = points[i2] + dm_in; + temp_points[i2*4+2] = points[i2] - dm_in; + temp_points[i2*4+3] = points[i2] - dm_out; + + // Add indexes + _IdxWritePtr[0] = (ImDrawIdx)(idx2+1); _IdxWritePtr[1] = (ImDrawIdx)(idx1+1); _IdxWritePtr[2] = (ImDrawIdx)(idx1+2); + _IdxWritePtr[3] = (ImDrawIdx)(idx1+2); _IdxWritePtr[4] = (ImDrawIdx)(idx2+2); _IdxWritePtr[5] = (ImDrawIdx)(idx2+1); + _IdxWritePtr[6] = (ImDrawIdx)(idx2+1); _IdxWritePtr[7] = (ImDrawIdx)(idx1+1); _IdxWritePtr[8] = (ImDrawIdx)(idx1+0); + _IdxWritePtr[9] = (ImDrawIdx)(idx1+0); _IdxWritePtr[10] = (ImDrawIdx)(idx2+0); _IdxWritePtr[11] = (ImDrawIdx)(idx2+1); + _IdxWritePtr[12] = (ImDrawIdx)(idx2+2); _IdxWritePtr[13] = (ImDrawIdx)(idx1+2); _IdxWritePtr[14] = (ImDrawIdx)(idx1+3); + _IdxWritePtr[15] = (ImDrawIdx)(idx1+3); _IdxWritePtr[16] = (ImDrawIdx)(idx2+3); _IdxWritePtr[17] = (ImDrawIdx)(idx2+2); + _IdxWritePtr += 18; + + idx1 = idx2; + } + + // Add vertexes + for (int i = 0; i < points_count; i++) + { + _VtxWritePtr[0].pos = temp_points[i*4+0]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col_trans; + _VtxWritePtr[1].pos = temp_points[i*4+1]; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; + _VtxWritePtr[2].pos = temp_points[i*4+2]; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; + _VtxWritePtr[3].pos = temp_points[i*4+3]; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col_trans; + _VtxWritePtr += 4; + } + } + _VtxCurrentIdx += (ImDrawIdx)vtx_count; + } + else + { + // Non Anti-aliased Stroke + const int idx_count = count*6; + const int vtx_count = count*4; // FIXME-OPT: Not sharing edges + PrimReserve(idx_count, vtx_count); + + for (int i1 = 0; i1 < count; i1++) + { + const int i2 = (i1+1) == points_count ? 0 : i1+1; + const ImVec2& p1 = points[i1]; + const ImVec2& p2 = points[i2]; + ImVec2 diff = p2 - p1; + diff *= ImInvLength(diff, 1.0f); + + const float dx = diff.x * (thickness * 0.5f); + const float dy = diff.y * (thickness * 0.5f); + _VtxWritePtr[0].pos.x = p1.x + dy; _VtxWritePtr[0].pos.y = p1.y - dx; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; + _VtxWritePtr[1].pos.x = p2.x + dy; _VtxWritePtr[1].pos.y = p2.y - dx; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; + _VtxWritePtr[2].pos.x = p2.x - dy; _VtxWritePtr[2].pos.y = p2.y + dx; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; + _VtxWritePtr[3].pos.x = p1.x - dy; _VtxWritePtr[3].pos.y = p1.y + dx; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col; + _VtxWritePtr += 4; + + _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+2); + _IdxWritePtr[3] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[4] = (ImDrawIdx)(_VtxCurrentIdx+2); _IdxWritePtr[5] = (ImDrawIdx)(_VtxCurrentIdx+3); + _IdxWritePtr += 6; + _VtxCurrentIdx += 4; + } + } +} + +void ImDrawList::AddConvexPolyFilled(const ImVec2* points, const int points_count, ImU32 col, bool anti_aliased) +{ + const ImVec2 uv = GImGui->FontTexUvWhitePixel; + anti_aliased &= GImGui->Style.AntiAliasedShapes; + //if (ImGui::GetIO().KeyCtrl) anti_aliased = false; + + if (anti_aliased) + { + // Anti-aliased Fill + const float AA_SIZE = 1.0f; + const ImU32 col_trans = col & 0x00ffffff; + const int idx_count = (points_count-2)*3 + points_count*6; + const int vtx_count = (points_count*2); + PrimReserve(idx_count, vtx_count); + + // Add indexes for fill + unsigned int vtx_inner_idx = _VtxCurrentIdx; + unsigned int vtx_outer_idx = _VtxCurrentIdx+1; + for (int i = 2; i < points_count; i++) + { + _IdxWritePtr[0] = (ImDrawIdx)(vtx_inner_idx); _IdxWritePtr[1] = (ImDrawIdx)(vtx_inner_idx+((i-1)<<1)); _IdxWritePtr[2] = (ImDrawIdx)(vtx_inner_idx+(i<<1)); + _IdxWritePtr += 3; + } + + // Compute normals + ImVec2* temp_normals = (ImVec2*)alloca(points_count * sizeof(ImVec2)); + for (int i0 = points_count-1, i1 = 0; i1 < points_count; i0 = i1++) + { + const ImVec2& p0 = points[i0]; + const ImVec2& p1 = points[i1]; + ImVec2 diff = p1 - p0; + diff *= ImInvLength(diff, 1.0f); + temp_normals[i0].x = diff.y; + temp_normals[i0].y = -diff.x; + } + + for (int i0 = points_count-1, i1 = 0; i1 < points_count; i0 = i1++) + { + // Average normals + const ImVec2& n0 = temp_normals[i0]; + const ImVec2& n1 = temp_normals[i1]; + ImVec2 dm = (n0 + n1) * 0.5f; + float dmr2 = dm.x*dm.x + dm.y*dm.y; + if (dmr2 > 0.000001f) + { + float scale = 1.0f / dmr2; + if (scale > 100.0f) scale = 100.0f; + dm *= scale; + } + dm *= AA_SIZE * 0.5f; + + // Add vertices + _VtxWritePtr[0].pos = (points[i1] - dm); _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; // Inner + _VtxWritePtr[1].pos = (points[i1] + dm); _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col_trans; // Outer + _VtxWritePtr += 2; + + // Add indexes for fringes + _IdxWritePtr[0] = (ImDrawIdx)(vtx_inner_idx+(i1<<1)); _IdxWritePtr[1] = (ImDrawIdx)(vtx_inner_idx+(i0<<1)); _IdxWritePtr[2] = (ImDrawIdx)(vtx_outer_idx+(i0<<1)); + _IdxWritePtr[3] = (ImDrawIdx)(vtx_outer_idx+(i0<<1)); _IdxWritePtr[4] = (ImDrawIdx)(vtx_outer_idx+(i1<<1)); _IdxWritePtr[5] = (ImDrawIdx)(vtx_inner_idx+(i1<<1)); + _IdxWritePtr += 6; + } + _VtxCurrentIdx += (ImDrawIdx)vtx_count; + } + else + { + // Non Anti-aliased Fill + const int idx_count = (points_count-2)*3; + const int vtx_count = points_count; + PrimReserve(idx_count, vtx_count); + for (int i = 0; i < vtx_count; i++) + { + _VtxWritePtr[0].pos = points[i]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; + _VtxWritePtr++; + } + for (int i = 2; i < points_count; i++) + { + _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+i-1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+i); + _IdxWritePtr += 3; + } + _VtxCurrentIdx += (ImDrawIdx)vtx_count; + } +} + +void ImDrawList::PathArcToFast(const ImVec2& centre, float radius, int amin, int amax) +{ + static ImVec2 circle_vtx[12]; + static bool circle_vtx_builds = false; + const int circle_vtx_count = IM_ARRAYSIZE(circle_vtx); + if (!circle_vtx_builds) + { + for (int i = 0; i < circle_vtx_count; i++) + { + const float a = ((float)i / (float)circle_vtx_count) * 2*IM_PI; + circle_vtx[i].x = cosf(a); + circle_vtx[i].y = sinf(a); + } + circle_vtx_builds = true; + } + + if (amin > amax) return; + if (radius == 0.0f) + { + _Path.push_back(centre); + } + else + { + _Path.reserve(_Path.Size + (amax - amin + 1)); + for (int a = amin; a <= amax; a++) + { + const ImVec2& c = circle_vtx[a % circle_vtx_count]; + _Path.push_back(ImVec2(centre.x + c.x * radius, centre.y + c.y * radius)); + } + } +} + +void ImDrawList::PathArcTo(const ImVec2& centre, float radius, float amin, float amax, int num_segments) +{ + if (radius == 0.0f) + _Path.push_back(centre); + _Path.reserve(_Path.Size + (num_segments + 1)); + for (int i = 0; i <= num_segments; i++) + { + const float a = amin + ((float)i / (float)num_segments) * (amax - amin); + _Path.push_back(ImVec2(centre.x + cosf(a) * radius, centre.y + sinf(a) * radius)); + } +} + +void ImDrawList::PathRect(const ImVec2& a, const ImVec2& b, float rounding, int rounding_corners) +{ + float r = rounding; + r = ImMin(r, fabsf(b.x-a.x) * ( ((rounding_corners&(1|2))==(1|2)) || ((rounding_corners&(4|8))==(4|8)) ? 0.5f : 1.0f ) - 1.0f); + r = ImMin(r, fabsf(b.y-a.y) * ( ((rounding_corners&(1|8))==(1|8)) || ((rounding_corners&(2|4))==(2|4)) ? 0.5f : 1.0f ) - 1.0f); + + if (r == 0.0f || rounding_corners == 0) + { + PathLineTo(a); + PathLineTo(ImVec2(b.x,a.y)); + PathLineTo(b); + PathLineTo(ImVec2(a.x,b.y)); + } + else + { + const float r0 = (rounding_corners & 1) ? r : 0.0f; + const float r1 = (rounding_corners & 2) ? r : 0.0f; + const float r2 = (rounding_corners & 4) ? r : 0.0f; + const float r3 = (rounding_corners & 8) ? r : 0.0f; + PathArcToFast(ImVec2(a.x+r0,a.y+r0), r0, 6, 9); + PathArcToFast(ImVec2(b.x-r1,a.y+r1), r1, 9, 12); + PathArcToFast(ImVec2(b.x-r2,b.y-r2), r2, 0, 3); + PathArcToFast(ImVec2(a.x+r3,b.y-r3), r3, 3, 6); + } +} + +void ImDrawList::AddLine(const ImVec2& a, const ImVec2& b, ImU32 col, float thickness) +{ + if ((col >> 24) == 0) + return; + PathLineTo(a + ImVec2(0.5f,0.5f)); + PathLineTo(b + ImVec2(0.5f,0.5f)); + PathStroke(col, false, thickness); +} + +void ImDrawList::AddRect(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding, int rounding_corners) +{ + if ((col >> 24) == 0) + return; + PathRect(a + ImVec2(0.5f,0.5f), b + ImVec2(0.5f,0.5f), rounding, rounding_corners); + PathStroke(col, true); +} + +void ImDrawList::AddRectFilled(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding, int rounding_corners) +{ + if ((col >> 24) == 0) + return; + if (rounding > 0.0f) + { + PathRect(a, b, rounding, rounding_corners); + PathFill(col); + } + else + { + PrimReserve(6, 4); + PrimRect(a, b, col); + } +} + +void ImDrawList::AddRectFilledMultiColor(const ImVec2& a, const ImVec2& c, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left) +{ + if (((col_upr_left | col_upr_right | col_bot_right | col_bot_left) >> 24) == 0) + return; + + const ImVec2 uv = GImGui->FontTexUvWhitePixel; + PrimReserve(6, 4); + PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+1)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+2)); + PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+2)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+3)); + PrimWriteVtx(a, uv, col_upr_left); + PrimWriteVtx(ImVec2(c.x, a.y), uv, col_upr_right); + PrimWriteVtx(c, uv, col_bot_right); + PrimWriteVtx(ImVec2(a.x, c.y), uv, col_bot_left); +} + +void ImDrawList::AddTriangleFilled(const ImVec2& a, const ImVec2& b, const ImVec2& c, ImU32 col) +{ + if ((col >> 24) == 0) + return; + PathLineTo(a); + PathLineTo(b); + PathLineTo(c); + PathFill(col); +} + +void ImDrawList::AddCircle(const ImVec2& centre, float radius, ImU32 col, int num_segments) +{ + if ((col >> 24) == 0) + return; + + const float a_max = IM_PI*2.0f * ((float)num_segments - 1.0f) / (float)num_segments; + PathArcTo(centre, radius, 0.0f, a_max, num_segments); + PathStroke(col, true); +} + +void ImDrawList::AddCircleFilled(const ImVec2& centre, float radius, ImU32 col, int num_segments) +{ + if ((col >> 24) == 0) + return; + + const float a_max = IM_PI*2.0f * ((float)num_segments - 1.0f) / (float)num_segments; + PathArcTo(centre, radius, 0.0f, a_max, num_segments); + PathFill(col); +} + +void ImDrawList::AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end, float wrap_width, const ImVec4* cpu_fine_clip_rect) +{ + if ((col >> 24) == 0) + return; + + if (text_end == NULL) + text_end = text_begin + strlen(text_begin); + if (text_begin == text_end) + return; + + IM_ASSERT(font->ContainerAtlas->TexID == _TextureIdStack.back()); // Use high-level ImGui::PushFont() or low-level ImDrawList::PushTextureId() to change font. + + // reserve vertices for worse case + const int char_count = (int)(text_end - text_begin); + const int vtx_count_max = char_count * 4; + const int idx_count_max = char_count * 6; + const int vtx_begin = VtxBuffer.Size; + const int idx_begin = IdxBuffer.Size; + PrimReserve(idx_count_max, vtx_count_max); + + ImVec4 clip_rect = _ClipRectStack.back(); + if (cpu_fine_clip_rect) + { + clip_rect.x = ImMax(clip_rect.x, cpu_fine_clip_rect->x); + clip_rect.y = ImMax(clip_rect.y, cpu_fine_clip_rect->y); + clip_rect.z = ImMin(clip_rect.z, cpu_fine_clip_rect->z); + clip_rect.w = ImMin(clip_rect.w, cpu_fine_clip_rect->w); + } + font->RenderText(font_size, pos, col, clip_rect, text_begin, text_end, this, wrap_width, cpu_fine_clip_rect != NULL); + + // give back unused vertices + // FIXME-OPT + VtxBuffer.resize((int)(_VtxWritePtr - VtxBuffer.Data)); + IdxBuffer.resize((int)(_IdxWritePtr - IdxBuffer.Data)); + int vtx_unused = vtx_count_max - (VtxBuffer.Size - vtx_begin); + int idx_unused = idx_count_max - (IdxBuffer.Size - idx_begin); + CmdBuffer.back().ElemCount -= idx_unused; + _VtxWritePtr -= vtx_unused; + _IdxWritePtr -= idx_unused; + _VtxCurrentIdx = (ImDrawIdx)VtxBuffer.Size; +} + +// This is one of the few function breaking the encapsulation of ImDrawLst, but it is just so useful. +void ImDrawList::AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end) +{ + if ((col >> 24) == 0) + return; + AddText(ImGui::GetWindowFont(), ImGui::GetWindowFontSize(), pos, col, text_begin, text_end); +} + +void ImDrawList::AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv0, const ImVec2& uv1, ImU32 col) +{ + if ((col >> 24) == 0) + return; + + // FIXME-OPT: This is wasting draw calls. + const bool push_texture_id = _TextureIdStack.empty() || user_texture_id != _TextureIdStack.back(); + if (push_texture_id) + PushTextureID(user_texture_id); + + PrimReserve(6, 4); + PrimRectUV(a, b, uv0, uv1, col); + + if (push_texture_id) + PopTextureID(); +} + +//----------------------------------------------------------------------------- +// ImDrawData +//----------------------------------------------------------------------------- + +// For backward compatibility: convert all buffers from indexed to de-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. Always prefer indexed rendering! +void ImDrawData::DeIndexAllBuffers() +{ + ImVector new_vtx_buffer; + TotalVtxCount = TotalIdxCount = 0; + for (int i = 0; i < CmdListsCount; i++) + { + ImDrawList* cmd_list = CmdLists[i]; + if (cmd_list->IdxBuffer.empty()) + continue; + new_vtx_buffer.resize(cmd_list->IdxBuffer.Size); + for (int j = 0; j < cmd_list->IdxBuffer.Size; j++) + new_vtx_buffer[j] = cmd_list->VtxBuffer[cmd_list->IdxBuffer[j]]; + cmd_list->VtxBuffer.swap(new_vtx_buffer); + cmd_list->IdxBuffer.resize(0); + TotalVtxCount += cmd_list->VtxBuffer.Size; + } +} + +//----------------------------------------------------------------------------- +// ImFontAtlias +//----------------------------------------------------------------------------- + +ImFontConfig::ImFontConfig() +{ + FontData = NULL; + FontDataSize = 0; + FontDataOwnedByAtlas = true; + FontNo = 0; + SizePixels = 0.0f; + OversampleH = 3; + OversampleV = 1; + PixelSnapH = false; + GlyphExtraSpacing = ImVec2(0.0f, 0.0f); + GlyphRanges = NULL; + MergeMode = false; + MergeGlyphCenterV = false; + DstFont = NULL; + memset(Name, 0, sizeof(Name)); +} + +ImFontAtlas::ImFontAtlas() +{ + TexID = NULL; + TexPixelsAlpha8 = NULL; + TexPixelsRGBA32 = NULL; + TexWidth = TexHeight = 0; + TexUvWhitePixel = ImVec2(0, 0); +} + +ImFontAtlas::~ImFontAtlas() +{ + Clear(); +} + +void ImFontAtlas::ClearInputData() +{ + for (int i = 0; i < ConfigData.Size; i++) + if (ConfigData[i].FontData && ConfigData[i].FontDataOwnedByAtlas) + { + ImGui::MemFree(ConfigData[i].FontData); + ConfigData[i].FontData = NULL; + } + + // When clearing this we lose access to the font name and other information used to build the font. + for (int i = 0; i < Fonts.Size; i++) + if (Fonts[i]->ConfigData >= ConfigData.Data && Fonts[i]->ConfigData < ConfigData.Data + ConfigData.Size) + { + Fonts[i]->ConfigData = NULL; + Fonts[i]->ConfigDataCount = 0; + } + ConfigData.clear(); +} + +void ImFontAtlas::ClearTexData() +{ + if (TexPixelsAlpha8) + ImGui::MemFree(TexPixelsAlpha8); + if (TexPixelsRGBA32) + ImGui::MemFree(TexPixelsRGBA32); + TexPixelsAlpha8 = NULL; + TexPixelsRGBA32 = NULL; +} + +void ImFontAtlas::ClearFonts() +{ + for (int i = 0; i < Fonts.Size; i++) + { + Fonts[i]->~ImFont(); + ImGui::MemFree(Fonts[i]); + } + Fonts.clear(); +} + +void ImFontAtlas::Clear() +{ + ClearInputData(); + ClearTexData(); + ClearFonts(); +} + +void ImFontAtlas::GetTexDataAsAlpha8(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel) +{ + // Lazily build + if (TexPixelsAlpha8 == NULL) + { + if (ConfigData.empty()) + AddFontDefault(); + Build(); + } + + *out_pixels = TexPixelsAlpha8; + if (out_width) *out_width = TexWidth; + if (out_height) *out_height = TexHeight; + if (out_bytes_per_pixel) *out_bytes_per_pixel = 1; +} + +void ImFontAtlas::GetTexDataAsRGBA32(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel) +{ + // Lazily convert to RGBA32 format + // Although it is likely to be the most commonly used format, our font rendering is 8 bpp + if (!TexPixelsRGBA32) + { + unsigned char* pixels; + GetTexDataAsAlpha8(&pixels, NULL, NULL); + TexPixelsRGBA32 = (unsigned int*)ImGui::MemAlloc((size_t)(TexWidth * TexHeight * 4)); + const unsigned char* src = pixels; + unsigned int* dst = TexPixelsRGBA32; + for (int n = TexWidth * TexHeight; n > 0; n--) + *dst++ = ((unsigned int)(*src++) << 24) | 0x00FFFFFF; + } + + *out_pixels = (unsigned char*)TexPixelsRGBA32; + if (out_width) *out_width = TexWidth; + if (out_height) *out_height = TexHeight; + if (out_bytes_per_pixel) *out_bytes_per_pixel = 4; +} + +ImFont* ImFontAtlas::AddFont(const ImFontConfig* font_cfg) +{ + IM_ASSERT(font_cfg->FontData != NULL && font_cfg->FontDataSize > 0); + IM_ASSERT(font_cfg->SizePixels > 0.0f); + + // Create new font + if (!font_cfg->MergeMode) + { + ImFont* font = (ImFont*)ImGui::MemAlloc(sizeof(ImFont)); + new (font) ImFont(); + Fonts.push_back(font); + } + + ConfigData.push_back(*font_cfg); + ImFontConfig& new_font_cfg = ConfigData.back(); + new_font_cfg.DstFont = Fonts.back(); + if (!new_font_cfg.FontDataOwnedByAtlas) + { + new_font_cfg.FontData = ImGui::MemAlloc(new_font_cfg.FontDataSize); + new_font_cfg.FontDataOwnedByAtlas = true; + memcpy(new_font_cfg.FontData, font_cfg->FontData, (size_t)new_font_cfg.FontDataSize); + } + + // Invalidate texture + ClearTexData(); + return Fonts.back(); +} + +// Default font ttf is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder) +static unsigned int stb_decompress_length(unsigned char *input); +static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length); +static const char* GetDefaultCompressedFontDataTTFBase85(); +static unsigned int Decode85Byte(char c) { return c >= '\\' ? c-36 : c-35; } +static void Decode85(const unsigned char* src, unsigned int* dst) { for (; *src; src += 5) *dst++ = Decode85Byte(src[0]) + 85*(Decode85Byte(src[1]) + 85*(Decode85Byte(src[2]) + 85*(Decode85Byte(src[3]) + 85*Decode85Byte(src[4])))); } + +// Load embedded ProggyClean.ttf at size 13 +ImFont* ImFontAtlas::AddFontDefault(const ImFontConfig* font_cfg_template) +{ + ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); + if (!font_cfg_template) + { + font_cfg.OversampleH = font_cfg.OversampleV = 1; + font_cfg.PixelSnapH = true; + } + if (font_cfg.Name[0] == '\0') strcpy(font_cfg.Name, ""); + + const char* ttf_compressed_base85 = GetDefaultCompressedFontDataTTFBase85(); + ImFont* font = AddFontFromMemoryCompressedBase85TTF(ttf_compressed_base85, 13.0f, &font_cfg, GetGlyphRangesDefault()); + return font; +} + +ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) +{ + void* data = NULL; + int data_size = 0; + if (!ImLoadFileToMemory(filename, "rb", (void**)&data, &data_size, 0)) + { + IM_ASSERT(0); // Could not load file. + return NULL; + } + ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); + if (font_cfg.Name[0] == '\0') + { + const char* p; + for (p = filename + strlen(filename); p > filename && p[-1] != '/' && p[-1] != '\\'; p--) {} + snprintf(font_cfg.Name, IM_ARRAYSIZE(font_cfg.Name), "%s", p); + } + return AddFontFromMemoryTTF(data, data_size, size_pixels, &font_cfg, glyph_ranges); +} + +// Transfer ownership of 'ttf_data' to ImFontAtlas, will be deleted after Build() +ImFont* ImFontAtlas::AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) +{ + ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); + IM_ASSERT(font_cfg.FontData == NULL); + font_cfg.FontData = ttf_data; + font_cfg.FontDataSize = ttf_size; + font_cfg.SizePixels = size_pixels; + if (glyph_ranges) + font_cfg.GlyphRanges = glyph_ranges; + return AddFont(&font_cfg); +} + +ImFont* ImFontAtlas::AddFontFromMemoryCompressedTTF(const void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) +{ + const unsigned int buf_decompressed_size = stb_decompress_length((unsigned char*)compressed_ttf_data); + unsigned char* buf_decompressed_data = (unsigned char *)ImGui::MemAlloc(buf_decompressed_size); + stb_decompress(buf_decompressed_data, (unsigned char*)compressed_ttf_data, (unsigned int)compressed_ttf_size); + + ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); + IM_ASSERT(font_cfg.FontData == NULL); + font_cfg.FontDataOwnedByAtlas = true; + return AddFontFromMemoryTTF(buf_decompressed_data, (int)buf_decompressed_size, size_pixels, font_cfg_template, glyph_ranges); +} + +ImFont* ImFontAtlas::AddFontFromMemoryCompressedBase85TTF(const char* compressed_ttf_data_base85, float size_pixels, const ImFontConfig* font_cfg, const ImWchar* glyph_ranges) +{ + int compressed_ttf_size = (((int)strlen(compressed_ttf_data_base85) + 4) / 5) * 4; + void* compressed_ttf = ImGui::MemAlloc(compressed_ttf_size); + Decode85((const unsigned char*)compressed_ttf_data_base85, (unsigned int*)compressed_ttf); + ImFont* font = AddFontFromMemoryCompressedTTF(compressed_ttf, compressed_ttf_size, size_pixels, font_cfg, glyph_ranges); + ImGui::MemFree(compressed_ttf); + return font; +} + +bool ImFontAtlas::Build() +{ + IM_ASSERT(ConfigData.Size > 0); + + TexID = NULL; + TexWidth = TexHeight = 0; + TexUvWhitePixel = ImVec2(0, 0); + ClearTexData(); + + struct ImFontTempBuildData + { + stbtt_fontinfo FontInfo; + stbrp_rect* Rects; + stbtt_pack_range* Ranges; + int RangesCount; + }; + ImFontTempBuildData* tmp_array = (ImFontTempBuildData*)ImGui::MemAlloc((size_t)ConfigData.Size * sizeof(ImFontTempBuildData)); + + // Initialize font information early (so we can error without any cleanup) + count glyphs + int total_glyph_count = 0; + int total_glyph_range_count = 0; + for (int input_i = 0; input_i < ConfigData.Size; input_i++) + { + ImFontConfig& cfg = ConfigData[input_i]; + ImFontTempBuildData& tmp = tmp_array[input_i]; + + IM_ASSERT(cfg.DstFont && (!cfg.DstFont->IsLoaded() || cfg.DstFont->ContainerAtlas == this)); + const int font_offset = stbtt_GetFontOffsetForIndex((unsigned char*)cfg.FontData, cfg.FontNo); + IM_ASSERT(font_offset >= 0); + if (!stbtt_InitFont(&tmp.FontInfo, (unsigned char*)cfg.FontData, font_offset)) + return false; + + if (!cfg.GlyphRanges) + cfg.GlyphRanges = GetGlyphRangesDefault(); + for (const ImWchar* in_range = cfg.GlyphRanges; in_range[0] && in_range[1]; in_range += 2) + { + total_glyph_count += (in_range[1] - in_range[0]) + 1; + total_glyph_range_count++; + } + } + + // Start packing + TexWidth = (total_glyph_count > 1000) ? 1024 : 512; // Width doesn't actually matters. + TexHeight = 0; + const int max_tex_height = 1024*32; + stbtt_pack_context spc; + stbtt_PackBegin(&spc, NULL, TexWidth, max_tex_height, 0, 1, NULL); + + // Pack our extra data rectangles first, so it will be on the upper-left corner of our texture (UV will have small values). + ImVector extra_rects; + RenderCustomTexData(0, &extra_rects); + stbtt_PackSetOversampling(&spc, 1, 1); + stbrp_pack_rects((stbrp_context*)spc.pack_info, &extra_rects[0], extra_rects.Size); + for (int i = 0; i < extra_rects.Size; i++) + if (extra_rects[i].was_packed) + TexHeight = ImMax(TexHeight, extra_rects[i].y + extra_rects[i].h); + + // Allocate packing character data and flag packed characters buffer as non-packed (x0=y0=x1=y1=0) + int buf_packedchars_n = 0, buf_rects_n = 0, buf_ranges_n = 0; + stbtt_packedchar* buf_packedchars = (stbtt_packedchar*)ImGui::MemAlloc(total_glyph_count * sizeof(stbtt_packedchar)); + stbrp_rect* buf_rects = (stbrp_rect*)ImGui::MemAlloc(total_glyph_count * sizeof(stbrp_rect)); + stbtt_pack_range* buf_ranges = (stbtt_pack_range*)ImGui::MemAlloc(total_glyph_range_count * sizeof(stbtt_pack_range)); + memset(buf_packedchars, 0, total_glyph_count * sizeof(stbtt_packedchar)); + memset(buf_rects, 0, total_glyph_count * sizeof(stbrp_rect)); // Unnecessary but let's clear this for the sake of sanity. + memset(buf_ranges, 0, total_glyph_range_count * sizeof(stbtt_pack_range)); + + // First font pass: pack all glyphs (no rendering at this point, we are working with glyph sizes only) + for (int input_i = 0; input_i < ConfigData.Size; input_i++) + { + ImFontConfig& cfg = ConfigData[input_i]; + ImFontTempBuildData& tmp = tmp_array[input_i]; + + // Setup ranges + int glyph_count = 0; + int glyph_ranges_count = 0; + for (const ImWchar* in_range = cfg.GlyphRanges; in_range[0] && in_range[1]; in_range += 2) + { + glyph_count += (in_range[1] - in_range[0]) + 1; + glyph_ranges_count++; + } + tmp.Ranges = buf_ranges + buf_ranges_n; + tmp.RangesCount = glyph_ranges_count; + buf_ranges_n += glyph_ranges_count; + for (int i = 0; i < glyph_ranges_count; i++) + { + const ImWchar* in_range = &cfg.GlyphRanges[i * 2]; + stbtt_pack_range& range = tmp.Ranges[i]; + range.font_size = cfg.SizePixels; + range.first_unicode_codepoint_in_range = in_range[0]; + range.num_chars = (in_range[1] - in_range[0]) + 1; + range.chardata_for_range = buf_packedchars + buf_packedchars_n; + buf_packedchars_n += range.num_chars; + } + + // Pack + tmp.Rects = buf_rects + buf_rects_n; + buf_rects_n += glyph_count; + stbtt_PackSetOversampling(&spc, cfg.OversampleH, cfg.OversampleV); + int n = stbtt_PackFontRangesGatherRects(&spc, &tmp.FontInfo, tmp.Ranges, tmp.RangesCount, tmp.Rects); + stbrp_pack_rects((stbrp_context*)spc.pack_info, tmp.Rects, n); + + // Extend texture height + for (int i = 0; i < n; i++) + if (tmp.Rects[i].was_packed) + TexHeight = ImMax(TexHeight, tmp.Rects[i].y + tmp.Rects[i].h); + } + IM_ASSERT(buf_rects_n == total_glyph_count); + IM_ASSERT(buf_packedchars_n == total_glyph_count); + IM_ASSERT(buf_ranges_n == total_glyph_range_count); + + // Create texture + TexHeight = ImUpperPowerOfTwo(TexHeight); + TexPixelsAlpha8 = (unsigned char*)ImGui::MemAlloc(TexWidth * TexHeight); + memset(TexPixelsAlpha8, 0, TexWidth * TexHeight); + spc.pixels = TexPixelsAlpha8; + spc.height = TexHeight; + + // Second pass: render characters + for (int input_i = 0; input_i < ConfigData.Size; input_i++) + { + ImFontConfig& cfg = ConfigData[input_i]; + ImFontTempBuildData& tmp = tmp_array[input_i]; + stbtt_PackSetOversampling(&spc, cfg.OversampleH, cfg.OversampleV); + stbtt_PackFontRangesRenderIntoRects(&spc, &tmp.FontInfo, tmp.Ranges, tmp.RangesCount, tmp.Rects); + tmp.Rects = NULL; + } + + // End packing + stbtt_PackEnd(&spc); + ImGui::MemFree(buf_rects); + buf_rects = NULL; + + // Third pass: setup ImFont and glyphs for runtime + for (int input_i = 0; input_i < ConfigData.Size; input_i++) + { + ImFontConfig& cfg = ConfigData[input_i]; + ImFontTempBuildData& tmp = tmp_array[input_i]; + ImFont* dst_font = cfg.DstFont; + + float font_scale = stbtt_ScaleForPixelHeight(&tmp.FontInfo, cfg.SizePixels); + int unscaled_ascent, unscaled_descent, unscaled_line_gap; + stbtt_GetFontVMetrics(&tmp.FontInfo, &unscaled_ascent, &unscaled_descent, &unscaled_line_gap); + + float ascent = unscaled_ascent * font_scale; + float descent = unscaled_descent * font_scale; + if (!cfg.MergeMode) + { + dst_font->ContainerAtlas = this; + dst_font->ConfigData = &cfg; + dst_font->ConfigDataCount = 0; + dst_font->FontSize = cfg.SizePixels; + dst_font->Ascent = ascent; + dst_font->Descent = descent; + dst_font->Glyphs.resize(0); + } + dst_font->ConfigDataCount++; + float off_y = (cfg.MergeMode && cfg.MergeGlyphCenterV) ? (ascent - dst_font->Ascent) * 0.5f : 0.0f; + + dst_font->FallbackGlyph = NULL; // Always clear fallback so FindGlyph can return NULL. It will be set again in BuildLookupTable() + for (int i = 0; i < tmp.RangesCount; i++) + { + stbtt_pack_range& range = tmp.Ranges[i]; + for (int char_idx = 0; char_idx < range.num_chars; char_idx += 1) + { + const stbtt_packedchar& pc = range.chardata_for_range[char_idx]; + if (!pc.x0 && !pc.x1 && !pc.y0 && !pc.y1) + continue; + + const int codepoint = range.first_unicode_codepoint_in_range + char_idx; + if (cfg.MergeMode && dst_font->FindGlyph((unsigned short)codepoint)) + continue; + + stbtt_aligned_quad q; + float dummy_x = 0.0f, dummy_y = 0.0f; + stbtt_GetPackedQuad(range.chardata_for_range, TexWidth, TexHeight, char_idx, &dummy_x, &dummy_y, &q, 0); + + dst_font->Glyphs.resize(dst_font->Glyphs.Size + 1); + ImFont::Glyph& glyph = dst_font->Glyphs.back(); + glyph.Codepoint = (ImWchar)codepoint; + glyph.X0 = q.x0; glyph.Y0 = q.y0; glyph.X1 = q.x1; glyph.Y1 = q.y1; + glyph.U0 = q.s0; glyph.V0 = q.t0; glyph.U1 = q.s1; glyph.V1 = q.t1; + glyph.Y0 += (float)(int)(dst_font->Ascent + off_y + 0.5f); + glyph.Y1 += (float)(int)(dst_font->Ascent + off_y + 0.5f); + glyph.XAdvance = (pc.xadvance + cfg.GlyphExtraSpacing.x); // Bake spacing into XAdvance + if (cfg.PixelSnapH) + glyph.XAdvance = (float)(int)(glyph.XAdvance + 0.5f); + } + } + cfg.DstFont->BuildLookupTable(); + } + + // Cleanup temporaries + ImGui::MemFree(buf_packedchars); + ImGui::MemFree(buf_ranges); + ImGui::MemFree(tmp_array); + + // Render into our custom data block + RenderCustomTexData(1, &extra_rects); + + return true; +} + +void ImFontAtlas::RenderCustomTexData(int pass, void* p_rects) +{ + // . = white layer, X = black layer, others are blank + const int TEX_DATA_W = 90; + const int TEX_DATA_H = 27; + const char texture_data[TEX_DATA_W*TEX_DATA_H+1] = + { + "..- -XXXXXXX- X - X -XXXXXXX - XXXXXXX" + "..- -X.....X- X.X - X.X -X.....X - X.....X" + "--- -XXX.XXX- X...X - X...X -X....X - X....X" + "X - X.X - X.....X - X.....X -X...X - X...X" + "XX - X.X -X.......X- X.......X -X..X.X - X.X..X" + "X.X - X.X -XXXX.XXXX- XXXX.XXXX -X.X X.X - X.X X.X" + "X..X - X.X - X.X - X.X -XX X.X - X.X XX" + "X...X - X.X - X.X - XX X.X XX - X.X - X.X " + "X....X - X.X - X.X - X.X X.X X.X - X.X - X.X " + "X.....X - X.X - X.X - X..X X.X X..X - X.X - X.X " + "X......X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X XX-XX X.X " + "X.......X - X.X - X.X -X.....................X- X.X X.X-X.X X.X " + "X........X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X..X-X..X.X " + "X.........X -XXX.XXX- X.X - X..X X.X X..X - X...X-X...X " + "X..........X-X.....X- X.X - X.X X.X X.X - X....X-X....X " + "X......XXXXX-XXXXXXX- X.X - XX X.X XX - X.....X-X.....X " + "X...X..X --------- X.X - X.X - XXXXXXX-XXXXXXX " + "X..X X..X - -XXXX.XXXX- XXXX.XXXX ------------------------------------" + "X.X X..X - -X.......X- X.......X - XX XX - " + "XX X..X - - X.....X - X.....X - X.X X.X - " + " X..X - X...X - X...X - X..X X..X - " + " XX - X.X - X.X - X...XXXXXXXXXXXXX...X - " + "------------ - X - X -X.....................X- " + " ----------------------------------- X...XXXXXXXXXXXXX...X - " + " - X..X X..X - " + " - X.X X.X - " + " - XX XX - " + }; + + ImVector& rects = *(ImVector*)p_rects; + if (pass == 0) + { + stbrp_rect r; + memset(&r, 0, sizeof(r)); + r.w = (TEX_DATA_W*2)+1; + r.h = TEX_DATA_H+1; + rects.push_back(r); + } + else if (pass == 1) + { + // Copy pixels + const stbrp_rect& r = rects[0]; + for (int y = 0, n = 0; y < TEX_DATA_H; y++) + for (int x = 0; x < TEX_DATA_W; x++, n++) + { + const int offset0 = (int)(r.x + x) + (int)(r.y + y) * TexWidth; + const int offset1 = offset0 + 1 + TEX_DATA_W; + TexPixelsAlpha8[offset0] = texture_data[n] == '.' ? 0xFF : 0x00; + TexPixelsAlpha8[offset1] = texture_data[n] == 'X' ? 0xFF : 0x00; + } + const ImVec2 tex_uv_scale(1.0f / TexWidth, 1.0f / TexHeight); + TexUvWhitePixel = ImVec2((r.x + 0.5f) * tex_uv_scale.x, (r.y + 0.5f) * tex_uv_scale.y); + + const ImVec2 cursor_datas[ImGuiMouseCursor_Count_][3] = + { + // Pos ........ Size ......... Offset ...... + { ImVec2(0,3), ImVec2(12,19), ImVec2( 0, 0) }, // ImGuiMouseCursor_Arrow + { ImVec2(13,0), ImVec2(7,16), ImVec2( 4, 8) }, // ImGuiMouseCursor_TextInput + { ImVec2(31,0), ImVec2(23,23), ImVec2(11,11) }, // ImGuiMouseCursor_Move + { ImVec2(21,0), ImVec2( 9,23), ImVec2( 5,11) }, // ImGuiMouseCursor_ResizeNS + { ImVec2(55,18),ImVec2(23, 9), ImVec2(11, 5) }, // ImGuiMouseCursor_ResizeEW + { ImVec2(73,0), ImVec2(17,17), ImVec2( 9, 9) }, // ImGuiMouseCursor_ResizeNESW + { ImVec2(55,0), ImVec2(17,17), ImVec2( 9, 9) }, // ImGuiMouseCursor_ResizeNWSE + }; + + for (int type = 0; type < ImGuiMouseCursor_Count_; type++) + { + ImGuiMouseCursorData& cursor_data = GImGui->MouseCursorData[type]; + ImVec2 pos = cursor_datas[type][0] + ImVec2((float)r.x, (float)r.y); + const ImVec2 size = cursor_datas[type][1]; + cursor_data.Type = type; + cursor_data.Size = size; + cursor_data.HotOffset = cursor_datas[type][2]; + cursor_data.TexUvMin[0] = (pos) * tex_uv_scale; + cursor_data.TexUvMax[0] = (pos + size) * tex_uv_scale; + pos.x += TEX_DATA_W+1; + cursor_data.TexUvMin[1] = (pos) * tex_uv_scale; + cursor_data.TexUvMax[1] = (pos + size) * tex_uv_scale; + } + } +} + +// Retrieve list of range (2 int per range, values are inclusive) +const ImWchar* ImFontAtlas::GetGlyphRangesDefault() +{ + static const ImWchar ranges[] = + { + 0x0020, 0x00FF, // Basic Latin + Latin Supplement + 0, + }; + return &ranges[0]; +} + +const ImWchar* ImFontAtlas::GetGlyphRangesChinese() +{ + static const ImWchar ranges[] = + { + 0x0020, 0x00FF, // Basic Latin + Latin Supplement + 0x3000, 0x30FF, // Punctuations, Hiragana, Katakana + 0x31F0, 0x31FF, // Katakana Phonetic Extensions + 0xFF00, 0xFFEF, // Half-width characters + 0x4e00, 0x9FAF, // CJK Ideograms + 0, + }; + return &ranges[0]; +} + +const ImWchar* ImFontAtlas::GetGlyphRangesJapanese() +{ + // Store the 1946 ideograms code points as successive offsets from the initial unicode codepoint 0x4E00. Each offset has an implicit +1. + // This encoding helps us reduce the source code size. + static const short offsets_from_0x4E00[] = + { + -1,0,1,3,0,0,0,0,1,0,5,1,1,0,7,4,6,10,0,1,9,9,7,1,3,19,1,10,7,1,0,1,0,5,1,0,6,4,2,6,0,0,12,6,8,0,3,5,0,1,0,9,0,0,8,1,1,3,4,5,13,0,0,8,2,17, + 4,3,1,1,9,6,0,0,0,2,1,3,2,22,1,9,11,1,13,1,3,12,0,5,9,2,0,6,12,5,3,12,4,1,2,16,1,1,4,6,5,3,0,6,13,15,5,12,8,14,0,0,6,15,3,6,0,18,8,1,6,14,1, + 5,4,12,24,3,13,12,10,24,0,0,0,1,0,1,1,2,9,10,2,2,0,0,3,3,1,0,3,8,0,3,2,4,4,1,6,11,10,14,6,15,3,4,15,1,0,0,5,2,2,0,0,1,6,5,5,6,0,3,6,5,0,0,1,0, + 11,2,2,8,4,7,0,10,0,1,2,17,19,3,0,2,5,0,6,2,4,4,6,1,1,11,2,0,3,1,2,1,2,10,7,6,3,16,0,8,24,0,0,3,1,1,3,0,1,6,0,0,0,2,0,1,5,15,0,1,0,0,2,11,19, + 1,4,19,7,6,5,1,0,0,0,0,5,1,0,1,9,0,0,5,0,2,0,1,0,3,0,11,3,0,2,0,0,0,0,0,9,3,6,4,12,0,14,0,0,29,10,8,0,14,37,13,0,31,16,19,0,8,30,1,20,8,3,48, + 21,1,0,12,0,10,44,34,42,54,11,18,82,0,2,1,2,12,1,0,6,2,17,2,12,7,0,7,17,4,2,6,24,23,8,23,39,2,16,23,1,0,5,1,2,15,14,5,6,2,11,0,8,6,2,2,2,14, + 20,4,15,3,4,11,10,10,2,5,2,1,30,2,1,0,0,22,5,5,0,3,1,5,4,1,0,0,2,2,21,1,5,1,2,16,2,1,3,4,0,8,4,0,0,5,14,11,2,16,1,13,1,7,0,22,15,3,1,22,7,14, + 22,19,11,24,18,46,10,20,64,45,3,2,0,4,5,0,1,4,25,1,0,0,2,10,0,0,0,1,0,1,2,0,0,9,1,2,0,0,0,2,5,2,1,1,5,5,8,1,1,1,5,1,4,9,1,3,0,1,0,1,1,2,0,0, + 2,0,1,8,22,8,1,0,0,0,0,4,2,1,0,9,8,5,0,9,1,30,24,2,6,4,39,0,14,5,16,6,26,179,0,2,1,1,0,0,0,5,2,9,6,0,2,5,16,7,5,1,1,0,2,4,4,7,15,13,14,0,0, + 3,0,1,0,0,0,2,1,6,4,5,1,4,9,0,3,1,8,0,0,10,5,0,43,0,2,6,8,4,0,2,0,0,9,6,0,9,3,1,6,20,14,6,1,4,0,7,2,3,0,2,0,5,0,3,1,0,3,9,7,0,3,4,0,4,9,1,6,0, + 9,0,0,2,3,10,9,28,3,6,2,4,1,2,32,4,1,18,2,0,3,1,5,30,10,0,2,2,2,0,7,9,8,11,10,11,7,2,13,7,5,10,0,3,40,2,0,1,6,12,0,4,5,1,5,11,11,21,4,8,3,7, + 8,8,33,5,23,0,0,19,8,8,2,3,0,6,1,1,1,5,1,27,4,2,5,0,3,5,6,3,1,0,3,1,12,5,3,3,2,0,7,7,2,1,0,4,0,1,1,2,0,10,10,6,2,5,9,7,5,15,15,21,6,11,5,20, + 4,3,5,5,2,5,0,2,1,0,1,7,28,0,9,0,5,12,5,5,18,30,0,12,3,3,21,16,25,32,9,3,14,11,24,5,66,9,1,2,0,5,9,1,5,1,8,0,8,3,3,0,1,15,1,4,8,1,2,7,0,7,2, + 8,3,7,5,3,7,10,2,1,0,0,2,25,0,6,4,0,10,0,4,2,4,1,12,5,38,4,0,4,1,10,5,9,4,0,14,4,2,5,18,20,21,1,3,0,5,0,7,0,3,7,1,3,1,1,8,1,0,0,0,3,2,5,2,11, + 6,0,13,1,3,9,1,12,0,16,6,2,1,0,2,1,12,6,13,11,2,0,28,1,7,8,14,13,8,13,0,2,0,5,4,8,10,2,37,42,19,6,6,7,4,14,11,18,14,80,7,6,0,4,72,12,36,27, + 7,7,0,14,17,19,164,27,0,5,10,7,3,13,6,14,0,2,2,5,3,0,6,13,0,0,10,29,0,4,0,3,13,0,3,1,6,51,1,5,28,2,0,8,0,20,2,4,0,25,2,10,13,10,0,16,4,0,1,0, + 2,1,7,0,1,8,11,0,0,1,2,7,2,23,11,6,6,4,16,2,2,2,0,22,9,3,3,5,2,0,15,16,21,2,9,20,15,15,5,3,9,1,0,0,1,7,7,5,4,2,2,2,38,24,14,0,0,15,5,6,24,14, + 5,5,11,0,21,12,0,3,8,4,11,1,8,0,11,27,7,2,4,9,21,59,0,1,39,3,60,62,3,0,12,11,0,3,30,11,0,13,88,4,15,5,28,13,1,4,48,17,17,4,28,32,46,0,16,0, + 18,11,1,8,6,38,11,2,6,11,38,2,0,45,3,11,2,7,8,4,30,14,17,2,1,1,65,18,12,16,4,2,45,123,12,56,33,1,4,3,4,7,0,0,0,3,2,0,16,4,2,4,2,0,7,4,5,2,26, + 2,25,6,11,6,1,16,2,6,17,77,15,3,35,0,1,0,5,1,0,38,16,6,3,12,3,3,3,0,9,3,1,3,5,2,9,0,18,0,25,1,3,32,1,72,46,6,2,7,1,3,14,17,0,28,1,40,13,0,20, + 15,40,6,38,24,12,43,1,1,9,0,12,6,0,6,2,4,19,3,7,1,48,0,9,5,0,5,6,9,6,10,15,2,11,19,3,9,2,0,1,10,1,27,8,1,3,6,1,14,0,26,0,27,16,3,4,9,6,2,23, + 9,10,5,25,2,1,6,1,1,48,15,9,15,14,3,4,26,60,29,13,37,21,1,6,4,0,2,11,22,23,16,16,2,2,1,3,0,5,1,6,4,0,0,4,0,0,8,3,0,2,5,0,7,1,7,3,13,2,4,10, + 3,0,2,31,0,18,3,0,12,10,4,1,0,7,5,7,0,5,4,12,2,22,10,4,2,15,2,8,9,0,23,2,197,51,3,1,1,4,13,4,3,21,4,19,3,10,5,40,0,4,1,1,10,4,1,27,34,7,21, + 2,17,2,9,6,4,2,3,0,4,2,7,8,2,5,1,15,21,3,4,4,2,2,17,22,1,5,22,4,26,7,0,32,1,11,42,15,4,1,2,5,0,19,3,1,8,6,0,10,1,9,2,13,30,8,2,24,17,19,1,4, + 4,25,13,0,10,16,11,39,18,8,5,30,82,1,6,8,18,77,11,13,20,75,11,112,78,33,3,0,0,60,17,84,9,1,1,12,30,10,49,5,32,158,178,5,5,6,3,3,1,3,1,4,7,6, + 19,31,21,0,2,9,5,6,27,4,9,8,1,76,18,12,1,4,0,3,3,6,3,12,2,8,30,16,2,25,1,5,5,4,3,0,6,10,2,3,1,0,5,1,19,3,0,8,1,5,2,6,0,0,0,19,1,2,0,5,1,2,5, + 1,3,7,0,4,12,7,3,10,22,0,9,5,1,0,2,20,1,1,3,23,30,3,9,9,1,4,191,14,3,15,6,8,50,0,1,0,0,4,0,0,1,0,2,4,2,0,2,3,0,2,0,2,2,8,7,0,1,1,1,3,3,17,11, + 91,1,9,3,2,13,4,24,15,41,3,13,3,1,20,4,125,29,30,1,0,4,12,2,21,4,5,5,19,11,0,13,11,86,2,18,0,7,1,8,8,2,2,22,1,2,6,5,2,0,1,2,8,0,2,0,5,2,1,0, + 2,10,2,0,5,9,2,1,2,0,1,0,4,0,0,10,2,5,3,0,6,1,0,1,4,4,33,3,13,17,3,18,6,4,7,1,5,78,0,4,1,13,7,1,8,1,0,35,27,15,3,0,0,0,1,11,5,41,38,15,22,6, + 14,14,2,1,11,6,20,63,5,8,27,7,11,2,2,40,58,23,50,54,56,293,8,8,1,5,1,14,0,1,12,37,89,8,8,8,2,10,6,0,0,0,4,5,2,1,0,1,1,2,7,0,3,3,0,4,6,0,3,2, + 19,3,8,0,0,0,4,4,16,0,4,1,5,1,3,0,3,4,6,2,17,10,10,31,6,4,3,6,10,126,7,3,2,2,0,9,0,0,5,20,13,0,15,0,6,0,2,5,8,64,50,3,2,12,2,9,0,0,11,8,20, + 109,2,18,23,0,0,9,61,3,0,28,41,77,27,19,17,81,5,2,14,5,83,57,252,14,154,263,14,20,8,13,6,57,39,38, + }; + static int ranges_unpacked = false; + static ImWchar ranges[8 + IM_ARRAYSIZE(offsets_from_0x4E00)*2 + 1] = + { + 0x0020, 0x00FF, // Basic Latin + Latin Supplement + 0x3000, 0x30FF, // Punctuations, Hiragana, Katakana + 0x31F0, 0x31FF, // Katakana Phonetic Extensions + 0xFF00, 0xFFEF, // Half-width characters + }; + if (!ranges_unpacked) + { + // Unpack + int codepoint = 0x4e00; + ImWchar* dst = &ranges[8]; + for (int n = 0; n < IM_ARRAYSIZE(offsets_from_0x4E00); n++, dst += 2) + dst[0] = dst[1] = (ImWchar)(codepoint += (offsets_from_0x4E00[n] + 1)); + dst[0] = 0; + ranges_unpacked = true; + } + return &ranges[0]; +} + +const ImWchar* ImFontAtlas::GetGlyphRangesCyrillic() +{ + static const ImWchar ranges[] = + { + 0x0020, 0x00FF, // Basic Latin + Latin Supplement + 0x0400, 0x052F, // Cyrillic + Cyrillic Supplement + 0x2DE0, 0x2DFF, // Cyrillic Extended-A + 0xA640, 0xA69F, // Cyrillic Extended-B + 0, + }; + return &ranges[0]; +} + +//----------------------------------------------------------------------------- +// ImFont +//----------------------------------------------------------------------------- + +ImFont::ImFont() +{ + Scale = 1.0f; + FallbackChar = (ImWchar)'?'; + Clear(); +} + +ImFont::~ImFont() +{ + // Invalidate active font so that the user gets a clear crash instead of a dangling pointer. + // If you want to delete fonts you need to do it between Render() and NewFrame(). + // FIXME-CLEANUP + /* + ImGuiState& g = *GImGui; + if (g.Font == this) + g.Font = NULL; + */ + Clear(); +} + +void ImFont::Clear() +{ + FontSize = 0.0f; + DisplayOffset = ImVec2(0.0f, 1.0f); + ConfigData = NULL; + ConfigDataCount = 0; + Ascent = Descent = 0.0f; + ContainerAtlas = NULL; + Glyphs.clear(); + FallbackGlyph = NULL; + FallbackXAdvance = 0.0f; + IndexXAdvance.clear(); + IndexLookup.clear(); +} + +void ImFont::BuildLookupTable() +{ + int max_codepoint = 0; + for (int i = 0; i != Glyphs.Size; i++) + max_codepoint = ImMax(max_codepoint, (int)Glyphs[i].Codepoint); + + IndexXAdvance.clear(); + IndexXAdvance.resize(max_codepoint + 1); + IndexLookup.clear(); + IndexLookup.resize(max_codepoint + 1); + for (int i = 0; i < max_codepoint + 1; i++) + { + IndexXAdvance[i] = -1.0f; + IndexLookup[i] = -1; + } + for (int i = 0; i < Glyphs.Size; i++) + { + int codepoint = (int)Glyphs[i].Codepoint; + IndexXAdvance[codepoint] = Glyphs[i].XAdvance; + IndexLookup[codepoint] = i; + } + + // Create a glyph to handle TAB + // FIXME: Needs proper TAB handling but it needs to be contextualized (can arbitrary say that each string starts at "column 0" + if (FindGlyph((unsigned short)' ')) + { + if (Glyphs.back().Codepoint != '\t') // So we can call this function multiple times + Glyphs.resize(Glyphs.Size + 1); + ImFont::Glyph& tab_glyph = Glyphs.back(); + tab_glyph = *FindGlyph((unsigned short)' '); + tab_glyph.Codepoint = '\t'; + tab_glyph.XAdvance *= 4; + IndexXAdvance[(int)tab_glyph.Codepoint] = (float)tab_glyph.XAdvance; + IndexLookup[(int)tab_glyph.Codepoint] = (int)(Glyphs.Size-1); + } + + FallbackGlyph = NULL; + FallbackGlyph = FindGlyph(FallbackChar); + FallbackXAdvance = FallbackGlyph ? FallbackGlyph->XAdvance : 0.0f; + for (int i = 0; i < max_codepoint + 1; i++) + if (IndexXAdvance[i] < 0.0f) + IndexXAdvance[i] = FallbackXAdvance; +} + +void ImFont::SetFallbackChar(ImWchar c) +{ + FallbackChar = c; + BuildLookupTable(); +} + +const ImFont::Glyph* ImFont::FindGlyph(unsigned short c) const +{ + if (c < IndexLookup.Size) + { + const int i = IndexLookup[c]; + if (i != -1) + return &Glyphs[i]; + } + return FallbackGlyph; +} + +const char* ImFont::CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const +{ + // Simple word-wrapping for English, not full-featured. Please submit failing cases! + // FIXME: Much possible improvements (don't cut things like "word !", "word!!!" but cut within "word,,,,", more sensible support for punctuations, support for Unicode punctuations, etc.) + + // For references, possible wrap point marked with ^ + // "aaa bbb, ccc,ddd. eee fff. ggg!" + // ^ ^ ^ ^ ^__ ^ ^ + + // List of hardcoded separators: .,;!?'" + + // Skip extra blanks after a line returns (that includes not counting them in width computation) + // e.g. "Hello world" --> "Hello" "World" + + // Cut words that cannot possibly fit within one line. + // e.g.: "The tropical fish" with ~5 characters worth of width --> "The tr" "opical" "fish" + + float line_width = 0.0f; + float word_width = 0.0f; + float blank_width = 0.0f; + + const char* word_end = text; + const char* prev_word_end = NULL; + bool inside_word = true; + + const char* s = text; + while (s < text_end) + { + unsigned int c = (unsigned int)*s; + const char* next_s; + if (c < 0x80) + next_s = s + 1; + else + next_s = s + ImTextCharFromUtf8(&c, s, text_end); + if (c == 0) + break; + + if (c < 32) + { + if (c == '\n') + { + line_width = word_width = blank_width = 0.0f; + inside_word = true; + s = next_s; + continue; + } + if (c == '\r') + { + s = next_s; + continue; + } + } + + const float char_width = ((int)c < IndexXAdvance.Size) ? IndexXAdvance[(int)c] * scale : FallbackXAdvance; + if (ImCharIsSpace(c)) + { + if (inside_word) + { + line_width += blank_width; + blank_width = 0.0f; + } + blank_width += char_width; + inside_word = false; + } + else + { + word_width += char_width; + if (inside_word) + { + word_end = next_s; + } + else + { + prev_word_end = word_end; + line_width += word_width + blank_width; + word_width = blank_width = 0.0f; + } + + // Allow wrapping after punctuation. + inside_word = !(c == '.' || c == ',' || c == ';' || c == '!' || c == '?' || c == '\"'); + } + + // We ignore blank width at the end of the line (they can be skipped) + if (line_width + word_width >= wrap_width) + { + // Words that cannot possibly fit within an entire line will be cut anywhere. + if (word_width < wrap_width) + s = prev_word_end ? prev_word_end : word_end; + break; + } + + s = next_s; + } + + return s; +} + +ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end, const char** remaining) const +{ + if (!text_end) + text_end = text_begin + strlen(text_begin); // FIXME-OPT: Need to avoid this. + + const float line_height = size; + const float scale = size / FontSize; + + ImVec2 text_size = ImVec2(0,0); + float line_width = 0.0f; + + const bool word_wrap_enabled = (wrap_width > 0.0f); + const char* word_wrap_eol = NULL; + + const char* s = text_begin; + while (s < text_end) + { + if (word_wrap_enabled) + { + // Calculate how far we can render. Requires two passes on the string data but keeps the code simple and not intrusive for what's essentially an uncommon feature. + if (!word_wrap_eol) + { + word_wrap_eol = CalcWordWrapPositionA(scale, s, text_end, wrap_width - line_width); + if (word_wrap_eol == s) // Wrap_width is too small to fit anything. Force displaying 1 character to minimize the height discontinuity. + word_wrap_eol++; // +1 may not be a character start point in UTF-8 but it's ok because we use s >= word_wrap_eol below + } + + if (s >= word_wrap_eol) + { + if (text_size.x < line_width) + text_size.x = line_width; + text_size.y += line_height; + line_width = 0.0f; + word_wrap_eol = NULL; + + // Wrapping skips upcoming blanks + while (s < text_end) + { + const char c = *s; + if (ImCharIsSpace(c)) { s++; } else if (c == '\n') { s++; break; } else { break; } + } + continue; + } + } + + // Decode and advance source (handle unlikely UTF-8 decoding failure by skipping to the next byte) + const char* prev_s = s; + unsigned int c = (unsigned int)*s; + if (c < 0x80) + { + s += 1; + } + else + { + s += ImTextCharFromUtf8(&c, s, text_end); + if (c == 0) + break; + } + + if (c < 32) + { + if (c == '\n') + { + text_size.x = ImMax(text_size.x, line_width); + text_size.y += line_height; + line_width = 0.0f; + continue; + } + if (c == '\r') + continue; + } + + const float char_width = ((int)c < IndexXAdvance.Size ? IndexXAdvance[(int)c] : FallbackXAdvance) * scale; + if (line_width + char_width >= max_width) + { + s = prev_s; + break; + } + + line_width += char_width; + } + + if (text_size.x < line_width) + text_size.x = line_width; + + if (line_width > 0 || text_size.y == 0.0f) + text_size.y += line_height; + + if (remaining) + *remaining = s; + + return text_size; +} + +void ImFont::RenderText(float size, ImVec2 pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, ImDrawList* draw_list, float wrap_width, bool cpu_fine_clip) const +{ + if (!text_end) + text_end = text_begin + strlen(text_begin); + + // Align to be pixel perfect + pos.x = (float)(int)pos.x + DisplayOffset.x; + pos.y = (float)(int)pos.y + DisplayOffset.y; + float x = pos.x; + float y = pos.y; + if (y > clip_rect.w) + return; + + const float scale = size / FontSize; + const float line_height = FontSize * scale; + const bool word_wrap_enabled = (wrap_width > 0.0f); + const char* word_wrap_eol = NULL; + + ImDrawVert* vtx_write = draw_list->_VtxWritePtr; + ImDrawIdx* idx_write = draw_list->_IdxWritePtr; + unsigned int vtx_current_idx = draw_list->_VtxCurrentIdx; + + const char* s = text_begin; + if (!word_wrap_enabled && y + line_height < clip_rect.y) + while (s < text_end && *s != '\n') // Fast-forward to next line + s++; + while (s < text_end) + { + if (word_wrap_enabled) + { + // Calculate how far we can render. Requires two passes on the string data but keeps the code simple and not intrusive for what's essentially an uncommon feature. + if (!word_wrap_eol) + { + word_wrap_eol = CalcWordWrapPositionA(scale, s, text_end, wrap_width - (x - pos.x)); + if (word_wrap_eol == s) // Wrap_width is too small to fit anything. Force displaying 1 character to minimize the height discontinuity. + word_wrap_eol++; // +1 may not be a character start point in UTF-8 but it's ok because we use s >= word_wrap_eol below + } + + if (s >= word_wrap_eol) + { + x = pos.x; + y += line_height; + word_wrap_eol = NULL; + + // Wrapping skips upcoming blanks + while (s < text_end) + { + const char c = *s; + if (ImCharIsSpace(c)) { s++; } else if (c == '\n') { s++; break; } else { break; } + } + continue; + } + } + + // Decode and advance source (handle unlikely UTF-8 decoding failure by skipping to the next byte) + unsigned int c = (unsigned int)*s; + if (c < 0x80) + { + s += 1; + } + else + { + s += ImTextCharFromUtf8(&c, s, text_end); + if (c == 0) + break; + } + + if (c < 32) + { + if (c == '\n') + { + x = pos.x; + y += line_height; + + if (y > clip_rect.w) + break; + if (!word_wrap_enabled && y + line_height < clip_rect.y) + while (s < text_end && *s != '\n') // Fast-forward to next line + s++; + continue; + } + if (c == '\r') + continue; + } + + float char_width = 0.0f; + if (const Glyph* glyph = FindGlyph((unsigned short)c)) + { + char_width = glyph->XAdvance * scale; + + // Clipping on Y is more likely + if (c != ' ' && c != '\t') + { + // We don't do a second finer clipping test on the Y axis (todo: do some measurement see if it is worth it, probably not) + float y1 = (float)(y + glyph->Y0 * scale); + float y2 = (float)(y + glyph->Y1 * scale); + + float x1 = (float)(x + glyph->X0 * scale); + float x2 = (float)(x + glyph->X1 * scale); + if (x1 <= clip_rect.z && x2 >= clip_rect.x) + { + // Render a character + float u1 = glyph->U0; + float v1 = glyph->V0; + float u2 = glyph->U1; + float v2 = glyph->V1; + + // CPU side clipping used to fit text in their frame when the frame is too small. Only does clipping for axis aligned quads + if (cpu_fine_clip) + { + if (x1 < clip_rect.x) + { + u1 = u1 + (1.0f - (x2 - clip_rect.x) / (x2 - x1)) * (u2 - u1); + x1 = clip_rect.x; + } + if (y1 < clip_rect.y) + { + v1 = v1 + (1.0f - (y2 - clip_rect.y) / (y2 - y1)) * (v2 - v1); + y1 = clip_rect.y; + } + if (x2 > clip_rect.z) + { + u2 = u1 + ((clip_rect.z - x1) / (x2 - x1)) * (u2 - u1); + x2 = clip_rect.z; + } + if (y2 > clip_rect.w) + { + v2 = v1 + ((clip_rect.w - y1) / (y2 - y1)) * (v2 - v1); + y2 = clip_rect.w; + } + if (y1 >= y2) + { + x += char_width; + continue; + } + } + + // NB: we are not calling PrimRectUV() here because non-inlined causes too much overhead in a debug build. + // inlined: + { + idx_write[0] = (ImDrawIdx)(vtx_current_idx); idx_write[1] = (ImDrawIdx)(vtx_current_idx+1); idx_write[2] = (ImDrawIdx)(vtx_current_idx+2); + idx_write[3] = (ImDrawIdx)(vtx_current_idx); idx_write[4] = (ImDrawIdx)(vtx_current_idx+2); idx_write[5] = (ImDrawIdx)(vtx_current_idx+3); + vtx_write[0].pos.x = x1; vtx_write[0].pos.y = y1; vtx_write[0].col = col; vtx_write[0].uv.x = u1; vtx_write[0].uv.y = v1; + vtx_write[1].pos.x = x2; vtx_write[1].pos.y = y1; vtx_write[1].col = col; vtx_write[1].uv.x = u2; vtx_write[1].uv.y = v1; + vtx_write[2].pos.x = x2; vtx_write[2].pos.y = y2; vtx_write[2].col = col; vtx_write[2].uv.x = u2; vtx_write[2].uv.y = v2; + vtx_write[3].pos.x = x1; vtx_write[3].pos.y = y2; vtx_write[3].col = col; vtx_write[3].uv.x = u1; vtx_write[3].uv.y = v2; + vtx_write += 4; + vtx_current_idx += 4; + idx_write += 6; + } + } + } + } + + x += char_width; + } + + draw_list->_VtxWritePtr = vtx_write; + draw_list->_VtxCurrentIdx = vtx_current_idx; + draw_list->_IdxWritePtr = idx_write; +} + +//----------------------------------------------------------------------------- +// DEFAULT FONT DATA +//----------------------------------------------------------------------------- +// Compressed with stb_compress() then converted to a C array. +// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file. +// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h +//----------------------------------------------------------------------------- + +static unsigned int stb_decompress_length(unsigned char *input) +{ + return (input[8] << 24) + (input[9] << 16) + (input[10] << 8) + input[11]; +} + +static unsigned char *stb__barrier, *stb__barrier2, *stb__barrier3, *stb__barrier4; +static unsigned char *stb__dout; +static void stb__match(unsigned char *data, unsigned int length) +{ + // INVERSE of memmove... write each byte before copying the next... + IM_ASSERT (stb__dout + length <= stb__barrier); + if (stb__dout + length > stb__barrier) { stb__dout += length; return; } + if (data < stb__barrier4) { stb__dout = stb__barrier+1; return; } + while (length--) *stb__dout++ = *data++; +} + +static void stb__lit(unsigned char *data, unsigned int length) +{ + IM_ASSERT (stb__dout + length <= stb__barrier); + if (stb__dout + length > stb__barrier) { stb__dout += length; return; } + if (data < stb__barrier2) { stb__dout = stb__barrier+1; return; } + memcpy(stb__dout, data, length); + stb__dout += length; +} + +#define stb__in2(x) ((i[x] << 8) + i[(x)+1]) +#define stb__in3(x) ((i[x] << 16) + stb__in2((x)+1)) +#define stb__in4(x) ((i[x] << 24) + stb__in3((x)+1)) + +static unsigned char *stb_decompress_token(unsigned char *i) +{ + if (*i >= 0x20) { // use fewer if's for cases that expand small + if (*i >= 0x80) stb__match(stb__dout-i[1]-1, i[0] - 0x80 + 1), i += 2; + else if (*i >= 0x40) stb__match(stb__dout-(stb__in2(0) - 0x4000 + 1), i[2]+1), i += 3; + else /* *i >= 0x20 */ stb__lit(i+1, i[0] - 0x20 + 1), i += 1 + (i[0] - 0x20 + 1); + } else { // more ifs for cases that expand large, since overhead is amortized + if (*i >= 0x18) stb__match(stb__dout-(stb__in3(0) - 0x180000 + 1), i[3]+1), i += 4; + else if (*i >= 0x10) stb__match(stb__dout-(stb__in3(0) - 0x100000 + 1), stb__in2(3)+1), i += 5; + else if (*i >= 0x08) stb__lit(i+2, stb__in2(0) - 0x0800 + 1), i += 2 + (stb__in2(0) - 0x0800 + 1); + else if (*i == 0x07) stb__lit(i+3, stb__in2(1) + 1), i += 3 + (stb__in2(1) + 1); + else if (*i == 0x06) stb__match(stb__dout-(stb__in3(1)+1), i[4]+1), i += 5; + else if (*i == 0x04) stb__match(stb__dout-(stb__in3(1)+1), stb__in2(4)+1), i += 6; + } + return i; +} + +static unsigned int stb_adler32(unsigned int adler32, unsigned char *buffer, unsigned int buflen) +{ + const unsigned long ADLER_MOD = 65521; + unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16; + unsigned long blocklen, i; + + blocklen = buflen % 5552; + while (buflen) { + for (i=0; i + 7 < blocklen; i += 8) { + s1 += buffer[0], s2 += s1; + s1 += buffer[1], s2 += s1; + s1 += buffer[2], s2 += s1; + s1 += buffer[3], s2 += s1; + s1 += buffer[4], s2 += s1; + s1 += buffer[5], s2 += s1; + s1 += buffer[6], s2 += s1; + s1 += buffer[7], s2 += s1; + + buffer += 8; + } + + for (; i < blocklen; ++i) + s1 += *buffer++, s2 += s1; + + s1 %= ADLER_MOD, s2 %= ADLER_MOD; + buflen -= blocklen; + blocklen = 5552; + } + return (unsigned int)(s2 << 16) + (unsigned int)s1; +} + +static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length) +{ + unsigned int olen; + if (stb__in4(0) != 0x57bC0000) return 0; + if (stb__in4(4) != 0) return 0; // error! stream is > 4GB + olen = stb_decompress_length(i); + stb__barrier2 = i; + stb__barrier3 = i+length; + stb__barrier = output + olen; + stb__barrier4 = output; + i += 16; + + stb__dout = output; + for (;;) { + unsigned char *old_i = i; + i = stb_decompress_token(i); + if (i == old_i) { + if (*i == 0x05 && i[1] == 0xfa) { + IM_ASSERT(stb__dout == output + olen); + if (stb__dout != output + olen) return 0; + if (stb_adler32(1, output, olen) != (unsigned int) stb__in4(2)) + return 0; + return olen; + } else { + IM_ASSERT(0); /* NOTREACHED */ + return 0; + } + } + IM_ASSERT(stb__dout <= output + olen); + if (stb__dout > output + olen) + return 0; + } +} + +//----------------------------------------------------------------------------- +// ProggyClean.ttf +// Copyright (c) 2004, 2005 Tristan Grimmer +// MIT license (see License.txt in http://www.upperbounds.net/download/ProggyClean.ttf.zip) +// Download and more information at http://upperbounds.net +//----------------------------------------------------------------------------- +// File: 'ProggyClean.ttf' (41208 bytes) +// Exported using binary_to_compressed_c.cpp +//----------------------------------------------------------------------------- +static const char proggy_clean_ttf_compressed_data_base85[11980+1] = + "7])#######hV0qs'/###[),##/l:$#Q6>##5[n42>c-TH`->>#/e>11NNV=Bv(*:.F?uu#(gRU.o0XGH`$vhLG1hxt9?W`#,5LsCp#-i>.r$<$6pD>Lb';9Crc6tgXmKVeU2cD4Eo3R/" + "2*>]b(MC;$jPfY.;h^`IWM9Qo#t'X#(v#Y9w0#1D$CIf;W'#pWUPXOuxXuU(H9M(1=Ke$$'5F%)]0^#0X@U.a$FBjVQTSDgEKnIS7EM9>ZY9w0#L;>>#Mx&4Mvt//L[MkA#W@lK.N'[0#7RL_&#w+F%HtG9M#XL`N&.,GM4Pg;--VsM.M0rJfLH2eTM`*oJMHRC`N" + "kfimM2J,W-jXS:)r0wK#@Fge$U>`w'N7G#$#fB#$E^$#:9:hk+eOe--6x)F7*E%?76%^GMHePW-Z5l'&GiF#$956:rS?dA#fiK:)Yr+`�j@'DbG&#^$PG.Ll+DNa&VZ>1i%h1S9u5o@YaaW$e+bROPOpxTO7Stwi1::iB1q)C_=dV26J;2,]7op$]uQr@_V7$q^%lQwtuHY]=DX,n3L#0PHDO4f9>dC@O>HBuKPpP*E,N+b3L#lpR/MrTEH.IAQk.a>D[.e;mc." + "x]Ip.PH^'/aqUO/$1WxLoW0[iLAw=4h(9.`G" + "CRUxHPeR`5Mjol(dUWxZa(>STrPkrJiWx`5U7F#.g*jrohGg`cg:lSTvEY/EV_7H4Q9[Z%cnv;JQYZ5q.l7Zeas:HOIZOB?Ggv:[7MI2k).'2($5FNP&EQ(,)" + "U]W]+fh18.vsai00);D3@4ku5P?DP8aJt+;qUM]=+b'8@;mViBKx0DE[-auGl8:PJ&Dj+M6OC]O^((##]`0i)drT;-7X`=-H3[igUnPG-NZlo.#k@h#=Ork$m>a>$-?Tm$UV(?#P6YY#" + "'/###xe7q.73rI3*pP/$1>s9)W,JrM7SN]'/4C#v$U`0#V.[0>xQsH$fEmPMgY2u7Kh(G%siIfLSoS+MK2eTM$=5,M8p`A.;_R%#u[K#$x4AG8.kK/HSB==-'Ie/QTtG?-.*^N-4B/ZM" + "_3YlQC7(p7q)&](`6_c)$/*JL(L-^(]$wIM`dPtOdGA,U3:w2M-0+WomX2u7lqM2iEumMTcsF?-aT=Z-97UEnXglEn1K-bnEO`gu" + "Ft(c%=;Am_Qs@jLooI&NX;]0#j4#F14;gl8-GQpgwhrq8'=l_f-b49'UOqkLu7-##oDY2L(te+Mch&gLYtJ,MEtJfLh'x'M=$CS-ZZ%P]8bZ>#S?YY#%Q&q'3^Fw&?D)UDNrocM3A76/" + "/oL?#h7gl85[qW/NDOk%16ij;+:1a'iNIdb-ou8.P*w,v5#EI$TWS>Pot-R*H'-SEpA:g)f+O$%%`kA#G=8RMmG1&O`>to8bC]T&$,n.LoO>29sp3dt-52U%VM#q7'DHpg+#Z9%H[Ket`e;)f#Km8&+DC$I46>#Kr]]u-[=99tts1.qb#q72g1WJO81q+eN'03'eM>&1XxY-caEnO" + "j%2n8)),?ILR5^.Ibn<-X-Mq7[a82Lq:F&#ce+S9wsCK*x`569E8ew'He]h:sI[2LM$[guka3ZRd6:t%IG:;$%YiJ:Nq=?eAw;/:nnDq0(CYcMpG)qLN4$##&J-XTt,%OVU4)S1+R-#dg0/Nn?Ku1^0f$B*P:Rowwm-`0PKjYDDM'3]d39VZHEl4,.j']Pk-M.h^&:0FACm$maq-&sgw0t7/6(^xtk%" + "LuH88Fj-ekm>GA#_>568x6(OFRl-IZp`&b,_P'$MhLbxfc$mj`,O;&%W2m`Zh:/)Uetw:aJ%]K9h:TcF]u_-Sj9,VK3M.*'&0D[Ca]J9gp8,kAW]" + "%(?A%R$f<->Zts'^kn=-^@c4%-pY6qI%J%1IGxfLU9CP8cbPlXv);C=b),<2mOvP8up,UVf3839acAWAW-W?#ao/^#%KYo8fRULNd2.>%m]UK:n%r$'sw]J;5pAoO_#2mO3n,'=H5(et" + "Hg*`+RLgv>=4U8guD$I%D:W>-r5V*%j*W:Kvej.Lp$'?;++O'>()jLR-^u68PHm8ZFWe+ej8h:9r6L*0//c&iH&R8pRbA#Kjm%upV1g:" + "a_#Ur7FuA#(tRh#.Y5K+@?3<-8m0$PEn;J:rh6?I6uG<-`wMU'ircp0LaE_OtlMb&1#6T.#FDKu#1Lw%u%+GM+X'e?YLfjM[VO0MbuFp7;>Q&#WIo)0@F%q7c#4XAXN-U&VBpqB>0ie&jhZ[?iLR@@_AvA-iQC(=ksRZRVp7`.=+NpBC%rh&3]R:8XDmE5^V8O(x<-+k?'(^](H.aREZSi,#1:[IXaZFOm<-ui#qUq2$##Ri;u75OK#(RtaW-K-F`S+cF]uN`-KMQ%rP/Xri.LRcB##=YL3BgM/3M" + "D?@f&1'BW-)Ju#bmmWCMkk&#TR`C,5d>g)F;t,4:@_l8G/5h4vUd%&%950:VXD'QdWoY-F$BtUwmfe$YqL'8(PWX(" + "P?^@Po3$##`MSs?DWBZ/S>+4%>fX,VWv/w'KD`LP5IbH;rTV>n3cEK8U#bX]l-/V+^lj3;vlMb&[5YQ8#pekX9JP3XUC72L,,?+Ni&co7ApnO*5NK,((W-i:$,kp'UDAO(G0Sq7MVjJs" + "bIu)'Z,*[>br5fX^:FPAWr-m2KgLQ_nN6'8uTGT5g)uLv:873UpTLgH+#FgpH'_o1780Ph8KmxQJ8#H72L4@768@Tm&Q" + "h4CB/5OvmA&,Q&QbUoi$a_%3M01H)4x7I^&KQVgtFnV+;[Pc>[m4k//,]1?#`VY[Jr*3&&slRfLiVZJ:]?=K3Sw=[$=uRB?3xk48@aege0jT6'N#(q%.O=?2S]u*(m<-" + "V8J'(1)G][68hW$5'q[GC&5j`TE?m'esFGNRM)j,ffZ?-qx8;->g4t*:CIP/[Qap7/9'#(1sao7w-.qNUdkJ)tCF&#B^;xGvn2r9FEPFFFcL@.iFNkTve$m%#QvQS8U@)2Z+3K:AKM5i" + "sZ88+dKQ)W6>J%CL`.d*(B`-n8D9oK-XV1q['-5k'cAZ69e;D_?$ZPP&s^+7])$*$#@QYi9,5P r+$%CE=68>K8r0=dSC%%(@p7" + ".m7jilQ02'0-VWAgTlGW'b)Tq7VT9q^*^$$.:&N@@" + "$&)WHtPm*5_rO0&e%K&#-30j(E4#'Zb.o/(Tpm$>K'f@[PvFl,hfINTNU6u'0pao7%XUp9]5.>%h`8_=VYbxuel.NTSsJfLacFu3B'lQSu/m6-Oqem8T+oE--$0a/k]uj9EwsG>%veR*" + "hv^BFpQj:K'#SJ,sB-'#](j.Lg92rTw-*n%@/;39rrJF,l#qV%OrtBeC6/,;qB3ebNW[?,Hqj2L.1NP&GjUR=1D8QaS3Up&@*9wP?+lo7b?@%'k4`p0Z$22%K3+iCZj?XJN4Nm&+YF]u" + "@-W$U%VEQ/,,>>#)D#%8cY#YZ?=,`Wdxu/ae&#" + "w6)R89tI#6@s'(6Bf7a&?S=^ZI_kS&ai`&=tE72L_D,;^R)7[$so8lKN%5/$(vdfq7+ebA#" + "u1p]ovUKW&Y%q]'>$1@-[xfn$7ZTp7mM,G,Ko7a&Gu%G[RMxJs[0MM%wci.LFDK)(%:_i2B5CsR8&9Z&#=mPEnm0f`<&c)QL5uJ#%u%lJj+D-r;BoFDoS97h5g)E#o:&S4weDF,9^Hoe`h*L+_a*NrLW-1pG_&2UdB8" + "6e%B/:=>)N4xeW.*wft-;$'58-ESqr#U`'6AQ]m&6/`Z>#S?YY#Vc;r7U2&326d=w&H####?TZ`*4?&.MK?LP8Vxg>$[QXc%QJv92.(Db*B)gb*BM9dM*hJMAo*c&#" + "b0v=Pjer]$gG&JXDf->'StvU7505l9$AFvgYRI^&<^b68?j#q9QX4SM'RO#&sL1IM.rJfLUAj221]d##DW=m83u5;'bYx,*Sl0hL(W;;$doB&O/TQ:(Z^xBdLjLV#*8U_72Lh+2Q8Cj0i:6hp&$C/:p(HK>T8Y[gHQ4`4)'$Ab(Nof%V'8hL&#SfD07&6D@M.*J:;$-rv29'M]8qMv-tLp,'886iaC=Hb*YJoKJ,(j%K=H`K.v9HggqBIiZu'QvBT.#=)0ukruV&.)3=(^1`o*Pj4<-#MJ+gLq9-##@HuZPN0]u:h7.T..G:;$/Usj(T7`Q8tT72LnYl<-qx8;-HV7Q-&Xdx%1a,hC=0u+HlsV>nuIQL-5" + "_>@kXQtMacfD.m-VAb8;IReM3$wf0''hra*so568'Ip&vRs849'MRYSp%:t:h5qSgwpEr$B>Q,;s(C#$)`svQuF$##-D,##,g68@2[T;.XSdN9Qe)rpt._K-#5wF)sP'##p#C0c%-Gb%" + "hd+<-j'Ai*x&&HMkT]C'OSl##5RG[JXaHN;d'uA#x._U;.`PU@(Z3dt4r152@:v,'R.Sj'w#0<-;kPI)FfJ&#AYJ&#//)>-k=m=*XnK$>=)72L]0I%>.G690a:$##<,);?;72#?x9+d;" + "^V'9;jY@;)br#q^YQpx:X#Te$Z^'=-=bGhLf:D6&bNwZ9-ZD#n^9HhLMr5G;']d&6'wYmTFmLq9wI>P(9mI[>kC-ekLC/R&CH+s'B;K-M6$EB%is00:" + "+A4[7xks.LrNk0&E)wILYF@2L'0Nb$+pv<(2.768/FrY&h$^3i&@+G%JT'<-,v`3;_)I9M^AE]CN?Cl2AZg+%4iTpT3$U4O]GKx'm9)b@p7YsvK3w^YR-" + "CdQ*:Ir<($u&)#(&?L9Rg3H)4fiEp^iI9O8KnTj,]H?D*r7'M;PwZ9K0E^k&-cpI;.p/6_vwoFMV<->#%Xi.LxVnrU(4&8/P+:hLSKj$#U%]49t'I:rgMi'FL@a:0Y-uA[39',(vbma*" + "hU%<-SRF`Tt:542R_VV$p@[p8DV[A,?1839FWdFTi1O*H&#(AL8[_P%.M>v^-))qOT*F5Cq0`Ye%+$B6i:7@0IXSsDiWP,##P`%/L-" + "S(qw%sf/@%#B6;/U7K]uZbi^Oc^2n%t<)'mEVE''n`WnJra$^TKvX5B>;_aSEK',(hwa0:i4G?.Bci.(X[?b*($,=-n<.Q%`(X=?+@Am*Js0&=3bh8K]mL69=Lb,OcZV/);TTm8VI;?%OtJ<(b4mq7M6:u?KRdFl*:xP?Yb.5)%w_I?7uk5JC+FS(m#i'k.'a0i)9<7b'fs'59hq$*5Uhv##pi^8+hIEBF`nvo`;'l0.^S1<-wUK2/Coh58KKhLj" + "M=SO*rfO`+qC`W-On.=AJ56>>i2@2LH6A:&5q`?9I3@@'04&p2/LVa*T-4<-i3;M9UvZd+N7>b*eIwg:CC)c<>nO&#$(>.Z-I&J(Q0Hd5Q%7Co-b`-cP)hI;*_F]u`Rb[.j8_Q/<&>uu+VsH$sM9TA%?)(vmJ80),P7E>)tjD%2L=-t#fK[%`v=Q8WlA2);Sa" + ">gXm8YB`1d@K#n]76-a$U,mF%Ul:#/'xoFM9QX-$.QN'>" + "[%$Z$uF6pA6Ki2O5:8w*vP1<-1`[G,)-m#>0`P&#eb#.3i)rtB61(o'$?X3B2Qft^ae_5tKL9MUe9b*sLEQ95C&`=G?@Mj=wh*'3E>=-<)Gt*Iw)'QG:`@I" + "wOf7&]1i'S01B+Ev/Nac#9S;=;YQpg_6U`*kVY39xK,[/6Aj7:'1Bm-_1EYfa1+o&o4hp7KN_Q(OlIo@S%;jVdn0'1h19w,WQhLI)3S#f$2(eb,jr*b;3Vw]*7NH%$c4Vs,eD9>XW8?N]o+(*pgC%/72LV-uW%iewS8W6m2rtCpo'RS1R84=@paTKt)>=%&1[)*vp'u+x,VrwN;&]kuO9JDbg=pO$J*.jVe;u'm0dr9l,<*wMK*Oe=g8lV_KEBFkO'oU]^=[-792#ok,)" + "i]lR8qQ2oA8wcRCZ^7w/Njh;?.stX?Q1>S1q4Bn$)K1<-rGdO'$Wr.Lc.CG)$/*JL4tNR/,SVO3,aUw'DJN:)Ss;wGn9A32ijw%FL+Z0Fn.U9;reSq)bmI32U==5ALuG&#Vf1398/pVo" + "1*c-(aY168o<`JsSbk-,1N;$>0:OUas(3:8Z972LSfF8eb=c-;>SPw7.6hn3m`9^Xkn(r.qS[0;T%&Qc=+STRxX'q1BNk3&*eu2;&8q$&x>Q#Q7^Tf+6<(d%ZVmj2bDi%.3L2n+4W'$P" + "iDDG)g,r%+?,$@?uou5tSe2aN_AQU*'IAO" + "URQ##V^Fv-XFbGM7Fl(N<3DhLGF%q.1rC$#:T__&Pi68%0xi_&[qFJ(77j_&JWoF.V735&T,[R*:xFR*K5>>#`bW-?4Ne_&6Ne_&6Ne_&n`kr-#GJcM6X;uM6X;uM(.a..^2TkL%oR(#" + ";u.T%fAr%4tJ8&><1=GHZ_+m9/#H1F^R#SC#*N=BA9(D?v[UiFY>>^8p,KKF.W]L29uLkLlu/+4T" + "w$)F./^n3+rlo+DB;5sIYGNk+i1t-69Jg--0pao7Sm#K)pdHW&;LuDNH@H>#/X-TI(;P>#,Gc>#0Su>#4`1?#8lC?#xL$#B.`$#F:r$#JF.%#NR@%#R_R%#Vke%#Zww%#_-4^Rh%Sflr-k'MS.o?.5/sWel/wpEM0%3'/1)K^f1-d>G21&v(35>V`39V7A4=onx4" + "A1OY5EI0;6Ibgr6M$HS7Q<)58C5w,;WoA*#[%T*#`1g*#d=#+#hI5+#lUG+#pbY+#tnl+#x$),#&1;,#*=M,#.I`,#2Ur,#6b.-#;w[H#iQtA#m^0B#qjBB#uvTB##-hB#'9$C#+E6C#" + "/QHC#3^ZC#7jmC#;v)D#?,)4kMYD4lVu`4m`:&5niUA5@(A5BA1]PBB:xlBCC=2CDLXMCEUtiCf&0g2'tN?PGT4CPGT4CPGT4CPGT4CPGT4CPGT4CPGT4CP" + "GT4CPGT4CPGT4CPGT4CPGT4CPGT4CP-qekC`.9kEg^+F$kwViFJTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5o,^<-28ZI'O?;xp" + "O?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xp;7q-#lLYI:xvD=#"; + +static const char* GetDefaultCompressedFontDataTTFBase85() +{ + return proggy_clean_ttf_compressed_data_base85; +} diff --git a/samples/dual_layer/D3D11/src/imgui/imgui_impl_dx11.cpp b/samples/dual_layer/D3D11/src/imgui/imgui_impl_dx11.cpp new file mode 100644 index 0000000..5d3a7c3 --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/imgui_impl_dx11.cpp @@ -0,0 +1,498 @@ +// ImGui Win32 + DirectX11 binding +// https://github.com/ocornut/imgui + +#include "imgui.h" +#include "imgui_impl_dx11.h" + +// DirectX +#include +#include +#define DIRECTINPUT_VERSION 0x0800 +#include + +// Data +static INT64 g_Time = 0; +static INT64 g_TicksPerSecond = 0; + +static HWND g_hWnd = 0; +static ID3D11Device* g_pd3dDevice = NULL; +static ID3D11DeviceContext* g_pd3dDeviceContext = NULL; +static ID3D11Buffer* g_pVB = NULL; +static ID3D11Buffer* g_pIB = NULL; +static ID3D10Blob * g_pVertexShaderBlob = NULL; +static ID3D11VertexShader* g_pVertexShader = NULL; +static ID3D11InputLayout* g_pInputLayout = NULL; +static ID3D11Buffer* g_pVertexConstantBuffer = NULL; +static ID3D10Blob * g_pPixelShaderBlob = NULL; +static ID3D11PixelShader* g_pPixelShader = NULL; +static ID3D11SamplerState* g_pFontSampler = NULL; +static ID3D11ShaderResourceView*g_pFontTextureView = NULL; +static ID3D11RasterizerState* g_pRasterizerState = NULL; +static ID3D11BlendState* g_pBlendState = NULL; +static int VERTEX_BUFFER_SIZE = 20000; // TODO: Make buffers smaller and grow dynamically as needed. +static int INDEX_BUFFER_SIZE = 40000; // TODO: Make buffers smaller and grow dynamically as needed. + +struct VERTEX_CONSTANT_BUFFER +{ + float mvp[4][4]; +}; + +// This is the main rendering function that you have to implement and provide to ImGui (via setting up 'RenderDrawListsFn' in the ImGuiIO structure) +// If text or lines are blurry when integrating ImGui in your engine: +// - in your Render function, try translating your projection matrix by (0.5f,0.5f) or (0.375f,0.375f) +static void ImGui_ImplDX11_RenderDrawLists(ImDrawData* draw_data) +{ + // Copy and convert all vertices into a single contiguous buffer + D3D11_MAPPED_SUBRESOURCE vtx_resource, idx_resource; + if (g_pd3dDeviceContext->Map(g_pVB, 0, D3D11_MAP_WRITE_DISCARD, 0, &vtx_resource) != S_OK) + return; + if (g_pd3dDeviceContext->Map(g_pIB, 0, D3D11_MAP_WRITE_DISCARD, 0, &idx_resource) != S_OK) + return; + ImDrawVert* vtx_dst = (ImDrawVert*)vtx_resource.pData; + ImDrawIdx* idx_dst = (ImDrawIdx*)idx_resource.pData; + for (int n = 0; n < draw_data->CmdListsCount; n++) + { + const ImDrawList* cmd_list = draw_data->CmdLists[n]; + memcpy(vtx_dst, &cmd_list->VtxBuffer[0], cmd_list->VtxBuffer.size() * sizeof(ImDrawVert)); + memcpy(idx_dst, &cmd_list->IdxBuffer[0], cmd_list->IdxBuffer.size() * sizeof(ImDrawIdx)); + vtx_dst += cmd_list->VtxBuffer.size(); + idx_dst += cmd_list->IdxBuffer.size(); + } + g_pd3dDeviceContext->Unmap(g_pVB, 0); + g_pd3dDeviceContext->Unmap(g_pIB, 0); + + // Setup orthographic projection matrix into our constant buffer + { + D3D11_MAPPED_SUBRESOURCE mappedResource; + if (g_pd3dDeviceContext->Map(g_pVertexConstantBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource) != S_OK) + return; + + VERTEX_CONSTANT_BUFFER* pConstantBuffer = (VERTEX_CONSTANT_BUFFER*)mappedResource.pData; + const float L = 0.0f; + const float R = ImGui::GetIO().DisplaySize.x; + const float B = ImGui::GetIO().DisplaySize.y; + const float T = 0.0f; + const float mvp[4][4] = + { + { 2.0f/(R-L), 0.0f, 0.0f, 0.0f}, + { 0.0f, 2.0f/(T-B), 0.0f, 0.0f,}, + { 0.0f, 0.0f, 0.5f, 0.0f }, + { (R+L)/(L-R), (T+B)/(B-T), 0.5f, 1.0f }, + }; + memcpy(&pConstantBuffer->mvp, mvp, sizeof(mvp)); + g_pd3dDeviceContext->Unmap(g_pVertexConstantBuffer, 0); + } + + // Setup viewport + { + D3D11_VIEWPORT vp; + memset(&vp, 0, sizeof(D3D11_VIEWPORT)); + vp.Width = ImGui::GetIO().DisplaySize.x; + vp.Height = ImGui::GetIO().DisplaySize.y; + vp.MinDepth = 0.0f; + vp.MaxDepth = 1.0f; + vp.TopLeftX = 0; + vp.TopLeftY = 0; + g_pd3dDeviceContext->RSSetViewports(1, &vp); + } + + // Bind shader and vertex buffers + unsigned int stride = sizeof(ImDrawVert); + unsigned int offset = 0; + g_pd3dDeviceContext->IASetInputLayout(g_pInputLayout); + g_pd3dDeviceContext->IASetVertexBuffers(0, 1, &g_pVB, &stride, &offset); + g_pd3dDeviceContext->IASetIndexBuffer(g_pIB, DXGI_FORMAT_R16_UINT, 0); + g_pd3dDeviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); + g_pd3dDeviceContext->VSSetShader(g_pVertexShader, NULL, 0); + g_pd3dDeviceContext->VSSetConstantBuffers(0, 1, &g_pVertexConstantBuffer); + g_pd3dDeviceContext->PSSetShader(g_pPixelShader, NULL, 0); + g_pd3dDeviceContext->PSSetSamplers(0, 1, &g_pFontSampler); + + // Setup render state + const float blendFactor[4] = { 0.f, 0.f, 0.f, 0.f }; + g_pd3dDeviceContext->OMSetBlendState(g_pBlendState, blendFactor, 0xffffffff); + g_pd3dDeviceContext->RSSetState(g_pRasterizerState); + + // Render command lists + int vtx_offset = 0; + int idx_offset = 0; + for (int n = 0; n < draw_data->CmdListsCount; n++) + { + const ImDrawList* cmd_list = draw_data->CmdLists[n]; + for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.size(); cmd_i++) + { + const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[cmd_i]; + if (pcmd->UserCallback) + { + pcmd->UserCallback(cmd_list, pcmd); + } + else + { + const D3D11_RECT r = { (LONG)pcmd->ClipRect.x, (LONG)pcmd->ClipRect.y, (LONG)pcmd->ClipRect.z, (LONG)pcmd->ClipRect.w }; + g_pd3dDeviceContext->PSSetShaderResources(0, 1, (ID3D11ShaderResourceView**)&pcmd->TextureId); + g_pd3dDeviceContext->RSSetScissorRects(1, &r); + g_pd3dDeviceContext->DrawIndexed(pcmd->ElemCount, idx_offset, vtx_offset); + } + idx_offset += pcmd->ElemCount; + } + vtx_offset += cmd_list->VtxBuffer.size(); + } + + // Restore modified state + g_pd3dDeviceContext->IASetInputLayout(NULL); + g_pd3dDeviceContext->PSSetShader(NULL, NULL, 0); + g_pd3dDeviceContext->VSSetShader(NULL, NULL, 0); +} + +LRESULT ImGui_ImplDX11_WndProcHandler(HWND, UINT msg, WPARAM wParam, LPARAM lParam) +{ + ImGuiIO& io = ImGui::GetIO(); + switch (msg) + { + case WM_LBUTTONDOWN: + io.MouseDown[0] = true; + return true; + case WM_LBUTTONUP: + io.MouseDown[0] = false; + return true; + case WM_RBUTTONDOWN: + io.MouseDown[1] = true; + return true; + case WM_RBUTTONUP: + io.MouseDown[1] = false; + return true; + case WM_MOUSEWHEEL: + io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; + return true; + case WM_MOUSEMOVE: + io.MousePos.x = (signed short)(lParam); + io.MousePos.y = (signed short)(lParam >> 16); + return true; + case WM_KEYDOWN: + if (wParam < 256) + io.KeysDown[wParam] = 1; + return true; + case WM_KEYUP: + if (wParam < 256) + io.KeysDown[wParam] = 0; + return true; + case WM_CHAR: + // You can also use ToAscii()+GetKeyboardState() to retrieve characters. + if (wParam > 0 && wParam < 0x10000) + io.AddInputCharacter((unsigned short)wParam); + return true; + } + return 0; +} + +static void ImGui_ImplDX11_CreateFontsTexture() +{ + ImGuiIO& io = ImGui::GetIO(); + + // Build + unsigned char* pixels; + int width, height; + io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); + + // Create DX11 texture + { + D3D11_TEXTURE2D_DESC texDesc; + ZeroMemory(&texDesc, sizeof(texDesc)); + texDesc.Width = width; + texDesc.Height = height; + texDesc.MipLevels = 1; + texDesc.ArraySize = 1; + texDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + texDesc.SampleDesc.Count = 1; + texDesc.Usage = D3D11_USAGE_DEFAULT; + texDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE; + texDesc.CPUAccessFlags = 0; + + ID3D11Texture2D *pTexture = NULL; + D3D11_SUBRESOURCE_DATA subResource; + subResource.pSysMem = pixels; + subResource.SysMemPitch = texDesc.Width * 4; + subResource.SysMemSlicePitch = 0; + g_pd3dDevice->CreateTexture2D(&texDesc, &subResource, &pTexture); + + // Create texture view + D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc; + ZeroMemory(&srvDesc, sizeof(srvDesc)); + srvDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; + srvDesc.Texture2D.MipLevels = texDesc.MipLevels; + srvDesc.Texture2D.MostDetailedMip = 0; + g_pd3dDevice->CreateShaderResourceView(pTexture, &srvDesc, &g_pFontTextureView); + pTexture->Release(); + } + + // Store our identifier + io.Fonts->TexID = (void *)g_pFontTextureView; + + // Create texture sampler + { + D3D11_SAMPLER_DESC samplerDesc; + ZeroMemory(&samplerDesc, sizeof(samplerDesc)); + samplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; + samplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP; + samplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP; + samplerDesc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP; + samplerDesc.MipLODBias = 0.f; + samplerDesc.ComparisonFunc = D3D11_COMPARISON_ALWAYS; + samplerDesc.MinLOD = 0.f; + samplerDesc.MaxLOD = 0.f; + g_pd3dDevice->CreateSamplerState(&samplerDesc, &g_pFontSampler); + } + + // Cleanup (don't clear the input data if you want to append new fonts later) + io.Fonts->ClearInputData(); + io.Fonts->ClearTexData(); +} + +bool ImGui_ImplDX11_CreateDeviceObjects() +{ + if (!g_pd3dDevice) + return false; + if (g_pVB) + ImGui_ImplDX11_InvalidateDeviceObjects(); + + // Create the vertex shader + { + static const char* vertexShader = + "cbuffer vertexBuffer : register(b0) \ + {\ + float4x4 ProjectionMatrix; \ + };\ + struct VS_INPUT\ + {\ + float2 pos : POSITION;\ + float4 col : COLOR0;\ + float2 uv : TEXCOORD0;\ + };\ + \ + struct PS_INPUT\ + {\ + float4 pos : SV_POSITION;\ + float4 col : COLOR0;\ + float2 uv : TEXCOORD0;\ + };\ + \ + PS_INPUT main(VS_INPUT input)\ + {\ + PS_INPUT output;\ + output.pos = mul( ProjectionMatrix, float4(input.pos.xy, 0.f, 1.f));\ + output.col = input.col;\ + output.uv = input.uv;\ + return output;\ + }"; + + D3DCompile(vertexShader, strlen(vertexShader), NULL, NULL, NULL, "main", "vs_5_0", 0, 0, &g_pVertexShaderBlob, NULL); + if (g_pVertexShaderBlob == NULL) // NB: Pass ID3D10Blob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! + return false; + if (g_pd3dDevice->CreateVertexShader((DWORD*)g_pVertexShaderBlob->GetBufferPointer(), g_pVertexShaderBlob->GetBufferSize(), NULL, &g_pVertexShader) != S_OK) + return false; + + // Create the input layout + D3D11_INPUT_ELEMENT_DESC localLayout[] = { + { "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, (size_t)(&((ImDrawVert*)0)->pos), D3D11_INPUT_PER_VERTEX_DATA, 0 }, + { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, (size_t)(&((ImDrawVert*)0)->uv), D3D11_INPUT_PER_VERTEX_DATA, 0 }, + { "COLOR", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, (size_t)(&((ImDrawVert*)0)->col), D3D11_INPUT_PER_VERTEX_DATA, 0 }, + }; + + if (g_pd3dDevice->CreateInputLayout(localLayout, 3, g_pVertexShaderBlob->GetBufferPointer(), g_pVertexShaderBlob->GetBufferSize(), &g_pInputLayout) != S_OK) + return false; + + // Create the constant buffer + { + D3D11_BUFFER_DESC cbDesc; + cbDesc.ByteWidth = sizeof(VERTEX_CONSTANT_BUFFER); + cbDesc.Usage = D3D11_USAGE_DYNAMIC; + cbDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER; + cbDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; + cbDesc.MiscFlags = 0; + g_pd3dDevice->CreateBuffer(&cbDesc, NULL, &g_pVertexConstantBuffer); + } + } + + // Create the pixel shader + { + static const char* pixelShader = + "struct PS_INPUT\ + {\ + float4 pos : SV_POSITION;\ + float4 col : COLOR0;\ + float2 uv : TEXCOORD0;\ + };\ + sampler sampler0;\ + Texture2D texture0;\ + \ + float4 main(PS_INPUT input) : SV_Target\ + {\ + float4 out_col = input.col * texture0.Sample(sampler0, input.uv); \ + return out_col; \ + }"; + + D3DCompile(pixelShader, strlen(pixelShader), NULL, NULL, NULL, "main", "ps_5_0", 0, 0, &g_pPixelShaderBlob, NULL); + if (g_pPixelShaderBlob == NULL) // NB: Pass ID3D10Blob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! + return false; + if (g_pd3dDevice->CreatePixelShader((DWORD*)g_pPixelShaderBlob->GetBufferPointer(), g_pPixelShaderBlob->GetBufferSize(), NULL, &g_pPixelShader) != S_OK) + return false; + } + + // Create the blending setup + { + D3D11_BLEND_DESC desc; + ZeroMemory(&desc, sizeof(desc)); + desc.AlphaToCoverageEnable = false; + desc.RenderTarget[0].BlendEnable = true; + desc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA; + desc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; + desc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; + desc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA; + desc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ZERO; + desc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; + desc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; + g_pd3dDevice->CreateBlendState(&desc, &g_pBlendState); + } + + // Create the rasterizer state + { + D3D11_RASTERIZER_DESC desc; + ZeroMemory(&desc, sizeof(desc)); + desc.FillMode = D3D11_FILL_SOLID; + desc.CullMode = D3D11_CULL_NONE; + desc.ScissorEnable = true; + desc.DepthClipEnable = true; + g_pd3dDevice->CreateRasterizerState(&desc, &g_pRasterizerState); + } + + // Create the vertex buffer + { + D3D11_BUFFER_DESC desc; + memset(&desc, 0, sizeof(D3D11_BUFFER_DESC)); + desc.Usage = D3D11_USAGE_DYNAMIC; + desc.ByteWidth = VERTEX_BUFFER_SIZE * sizeof(ImDrawVert); + desc.BindFlags = D3D11_BIND_VERTEX_BUFFER; + desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; + desc.MiscFlags = 0; + if (g_pd3dDevice->CreateBuffer(&desc, NULL, &g_pVB) < 0) + return false; + } + + // Create the index buffer + { + D3D11_BUFFER_DESC bufferDesc; + memset(&bufferDesc, 0, sizeof(D3D11_BUFFER_DESC)); + bufferDesc.Usage = D3D11_USAGE_DYNAMIC; + bufferDesc.ByteWidth = INDEX_BUFFER_SIZE * sizeof(ImDrawIdx); + bufferDesc.BindFlags = D3D11_BIND_INDEX_BUFFER; + bufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; + if (g_pd3dDevice->CreateBuffer(&bufferDesc, NULL, &g_pIB) < 0) + return false; + } + + ImGui_ImplDX11_CreateFontsTexture(); + + return true; +} + +void ImGui_ImplDX11_InvalidateDeviceObjects() +{ + if (!g_pd3dDevice) + return; + + if (g_pFontSampler) { g_pFontSampler->Release(); g_pFontSampler = NULL; } + if (g_pFontTextureView) { g_pFontTextureView->Release(); g_pFontTextureView = NULL; ImGui::GetIO().Fonts->TexID = 0; } + if (g_pIB) { g_pIB->Release(); g_pIB = NULL; } + if (g_pVB) { g_pVB->Release(); g_pVB = NULL; } + + if (g_pBlendState) { g_pBlendState->Release(); g_pBlendState = NULL; } + if (g_pRasterizerState) { g_pRasterizerState->Release(); g_pRasterizerState = NULL; } + if (g_pPixelShader) { g_pPixelShader->Release(); g_pPixelShader = NULL; } + if (g_pPixelShaderBlob) { g_pPixelShaderBlob->Release(); g_pPixelShaderBlob = NULL; } + if (g_pVertexConstantBuffer) { g_pVertexConstantBuffer->Release(); g_pVertexConstantBuffer = NULL; } + if (g_pInputLayout) { g_pInputLayout->Release(); g_pInputLayout = NULL; } + if (g_pVertexShader) { g_pVertexShader->Release(); g_pVertexShader = NULL; } + if (g_pVertexShaderBlob) { g_pVertexShaderBlob->Release(); g_pVertexShaderBlob = NULL; } +} + +bool ImGui_ImplDX11_Init(void* hwnd, ID3D11Device* device, ID3D11DeviceContext* device_context) +{ + g_hWnd = (HWND)hwnd; + g_pd3dDevice = device; + g_pd3dDeviceContext = device_context; + + if (!QueryPerformanceFrequency((LARGE_INTEGER *)&g_TicksPerSecond)) + return false; + if (!QueryPerformanceCounter((LARGE_INTEGER *)&g_Time)) + return false; + + ImGuiIO& io = ImGui::GetIO(); + io.KeyMap[ImGuiKey_Tab] = VK_TAB; // Keyboard mapping. ImGui will use those indices to peek into the io.KeyDown[] array that we will update during the application lifetime. + io.KeyMap[ImGuiKey_LeftArrow] = VK_LEFT; + io.KeyMap[ImGuiKey_RightArrow] = VK_RIGHT; + io.KeyMap[ImGuiKey_UpArrow] = VK_UP; + io.KeyMap[ImGuiKey_DownArrow] = VK_DOWN; + io.KeyMap[ImGuiKey_PageUp] = VK_PRIOR; + io.KeyMap[ImGuiKey_PageDown] = VK_NEXT; + io.KeyMap[ImGuiKey_Home] = VK_HOME; + io.KeyMap[ImGuiKey_End] = VK_END; + io.KeyMap[ImGuiKey_Delete] = VK_DELETE; + io.KeyMap[ImGuiKey_Backspace] = VK_BACK; + io.KeyMap[ImGuiKey_Enter] = VK_RETURN; + io.KeyMap[ImGuiKey_Escape] = VK_ESCAPE; + io.KeyMap[ImGuiKey_A] = 'A'; + io.KeyMap[ImGuiKey_C] = 'C'; + io.KeyMap[ImGuiKey_V] = 'V'; + io.KeyMap[ImGuiKey_X] = 'X'; + io.KeyMap[ImGuiKey_Y] = 'Y'; + io.KeyMap[ImGuiKey_Z] = 'Z'; + + io.RenderDrawListsFn = ImGui_ImplDX11_RenderDrawLists; + io.ImeWindowHandle = g_hWnd; + + return true; +} + +void ImGui_ImplDX11_Shutdown() +{ + ImGui_ImplDX11_InvalidateDeviceObjects(); + ImGui::Shutdown(); + g_pd3dDevice = NULL; + g_pd3dDeviceContext = NULL; + g_hWnd = (HWND)0; +} + +void ImGui_ImplDX11_NewFrame() +{ + if (!g_pVB) + ImGui_ImplDX11_CreateDeviceObjects(); + + ImGuiIO& io = ImGui::GetIO(); + + // Setup display size (every frame to accommodate for window resizing) + RECT rect; + GetClientRect(g_hWnd, &rect); + io.DisplaySize = ImVec2((float)(rect.right - rect.left), (float)(rect.bottom - rect.top)); + + // Setup time step + INT64 current_time; + QueryPerformanceCounter((LARGE_INTEGER *)¤t_time); + io.DeltaTime = (float)(current_time - g_Time) / g_TicksPerSecond; + g_Time = current_time; + + // Read keyboard modifiers inputs + io.KeyCtrl = (GetKeyState(VK_CONTROL) & 0x8000) != 0; + io.KeyShift = (GetKeyState(VK_SHIFT) & 0x8000) != 0; + io.KeyAlt = (GetKeyState(VK_MENU) & 0x8000) != 0; + // io.KeysDown : filled by WM_KEYDOWN/WM_KEYUP events + // io.MousePos : filled by WM_MOUSEMOVE events + // io.MouseDown : filled by WM_*BUTTON* events + // io.MouseWheel : filled by WM_MOUSEWHEEL events + + // Hide OS mouse cursor if ImGui is drawing it + SetCursor(io.MouseDrawCursor ? NULL : LoadCursor(NULL, IDC_ARROW)); + + // Start the frame + ImGui::NewFrame(); +} diff --git a/samples/dual_layer/D3D11/src/imgui/imgui_impl_dx11.h b/samples/dual_layer/D3D11/src/imgui/imgui_impl_dx11.h new file mode 100644 index 0000000..c920d0b --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/imgui_impl_dx11.h @@ -0,0 +1,20 @@ +// ImGui Win32 + DirectX11 binding +// https://github.com/ocornut/imgui + +struct ID3D11Device; +struct ID3D11DeviceContext; + +bool ImGui_ImplDX11_Init(void* hwnd, ID3D11Device* device, ID3D11DeviceContext* device_context); +void ImGui_ImplDX11_Shutdown(); +void ImGui_ImplDX11_NewFrame(); + +// Use if you want to reset your rendering device without losing ImGui state. +void ImGui_ImplDX11_InvalidateDeviceObjects(); +bool ImGui_ImplDX11_CreateDeviceObjects(); + +// Handler for Win32 messages, update mouse/keyboard data. +// You may or not need this for your implementation, but it can serve as reference for handling inputs. +// Commented out to avoid dragging dependencies on types. You can copy the extern declaration in your code. +/* +extern LRESULT ImGui_ImplDX11_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); +*/ diff --git a/samples/dual_layer/D3D11/src/imgui/imgui_internal.h b/samples/dual_layer/D3D11/src/imgui/imgui_internal.h new file mode 100644 index 0000000..dc5714f --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/imgui_internal.h @@ -0,0 +1,664 @@ +// ImGui library v1.44 +// Internals +// You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility! + +// Implement maths operators for ImVec2 (disabled by default to not collide with using IM_VEC2_CLASS_EXTRA along with your own math types+operators) +// #define IMGUI_DEFINE_MATH_OPERATORS + +#pragma once + +#include // FILE* +#include // sqrtf() + +//----------------------------------------------------------------------------- +// Forward Declarations +//----------------------------------------------------------------------------- + +struct ImRect; +struct ImGuiColMod; +struct ImGuiStyleMod; +struct ImGuiGroupData; +struct ImGuiSimpleColumns; +struct ImGuiDrawContext; +struct ImGuiTextEditState; +struct ImGuiIniData; +struct ImGuiMouseCursorData; +struct ImGuiPopupRef; +struct ImGuiState; +struct ImGuiWindow; + +typedef int ImGuiLayoutType; // enum ImGuiLayoutType_ +typedef int ImGuiButtonFlags; // enum ImGuiButtonFlags_ + +//------------------------------------------------------------------------- +// STB libraries +//------------------------------------------------------------------------- + +namespace ImGuiStb +{ + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-function" +#pragma clang diagnostic ignored "-Wmissing-prototypes" +#endif + +#undef STB_TEXTEDIT_STRING +#undef STB_TEXTEDIT_CHARTYPE +#define STB_TEXTEDIT_STRING ImGuiTextEditState +#define STB_TEXTEDIT_CHARTYPE ImWchar +#define STB_TEXTEDIT_GETWIDTH_NEWLINE -1.0f +#include "stb_textedit.h" + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +} // namespace ImGuiStb + +//----------------------------------------------------------------------------- +// Context +//----------------------------------------------------------------------------- + +extern ImGuiState* GImGui; + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR)/sizeof(*_ARR))) +#define IM_PI 3.14159265358979323846f + +// Helpers: UTF-8 <> wchar +int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, const ImWchar* in_text_end); // return output UTF-8 bytes count +int ImTextCharFromUtf8(unsigned int* out_char, const char* in_text, const char* in_text_end); // return input UTF-8 bytes count +int ImTextStrFromUtf8(ImWchar* buf, int buf_size, const char* in_text, const char* in_text_end, const char** in_remaining = NULL); // return input UTF-8 bytes count +int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end); // return number of UTF-8 code-points (NOT bytes count) +int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* in_text_end); // return number of bytes to express string as UTF-8 code-points + +// Helpers: Misc +ImU32 ImHash(const void* data, int data_size, ImU32 seed); +bool ImLoadFileToMemory(const char* filename, const char* file_open_mode, void** out_file_data, int* out_file_size = NULL, int padding_bytes = 0); +bool ImIsPointInTriangle(const ImVec2& p, const ImVec2& a, const ImVec2& b, const ImVec2& c); +static inline bool ImCharIsSpace(int c) { return c == ' ' || c == '\t' || c == 0x3000; } +static inline int ImUpperPowerOfTwo(int v) { v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; v++; return v; } + +// Helpers: String +int ImStricmp(const char* str1, const char* str2); +int ImStrnicmp(const char* str1, const char* str2, int count); +char* ImStrdup(const char* str); +int ImStrlenW(const ImWchar* str); +const ImWchar* ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin); // Find beginning-of-line +const char* ImStristr(const char* haystack, const char* needle, const char* needle_end); +int ImFormatString(char* buf, int buf_size, const char* fmt, ...); +int ImFormatStringV(char* buf, int buf_size, const char* fmt, va_list args); + +// Helpers: Math +// We are keeping those not leaking to the user by default, in the case the user has implicit cast operators between ImVec2 and its own types (when IM_VEC2_CLASS_EXTRA is defined) +#ifdef IMGUI_DEFINE_MATH_OPERATORS +static inline ImVec2 operator*(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x*rhs, lhs.y*rhs); } +static inline ImVec2 operator/(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x/rhs, lhs.y/rhs); } +static inline ImVec2 operator+(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x+rhs.x, lhs.y+rhs.y); } +static inline ImVec2 operator-(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x-rhs.x, lhs.y-rhs.y); } +static inline ImVec2 operator*(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x*rhs.x, lhs.y*rhs.y); } +static inline ImVec2 operator/(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x/rhs.x, lhs.y/rhs.y); } +static inline ImVec2& operator+=(ImVec2& lhs, const ImVec2& rhs) { lhs.x += rhs.x; lhs.y += rhs.y; return lhs; } +static inline ImVec2& operator-=(ImVec2& lhs, const ImVec2& rhs) { lhs.x -= rhs.x; lhs.y -= rhs.y; return lhs; } +static inline ImVec2& operator*=(ImVec2& lhs, const float rhs) { lhs.x *= rhs; lhs.y *= rhs; return lhs; } +static inline ImVec2& operator/=(ImVec2& lhs, const float rhs) { lhs.x /= rhs; lhs.y /= rhs; return lhs; } +static inline ImVec4 operator-(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x-rhs.x, lhs.y-rhs.y, lhs.z-rhs.z, lhs.w-lhs.w); } +#endif + +static inline int ImMin(int lhs, int rhs) { return lhs < rhs ? lhs : rhs; } +static inline int ImMax(int lhs, int rhs) { return lhs >= rhs ? lhs : rhs; } +static inline float ImMin(float lhs, float rhs) { return lhs < rhs ? lhs : rhs; } +static inline float ImMax(float lhs, float rhs) { return lhs >= rhs ? lhs : rhs; } +static inline ImVec2 ImMin(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(ImMin(lhs.x,rhs.x), ImMin(lhs.y,rhs.y)); } +static inline ImVec2 ImMax(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(ImMax(lhs.x,rhs.x), ImMax(lhs.y,rhs.y)); } +static inline int ImClamp(int v, int mn, int mx) { return (v < mn) ? mn : (v > mx) ? mx : v; } +static inline float ImClamp(float v, float mn, float mx) { return (v < mn) ? mn : (v > mx) ? mx : v; } +static inline ImVec2 ImClamp(const ImVec2& f, const ImVec2& mn, ImVec2 mx) { return ImVec2(ImClamp(f.x,mn.x,mx.x), ImClamp(f.y,mn.y,mx.y)); } +static inline float ImSaturate(float f) { return (f < 0.0f) ? 0.0f : (f > 1.0f) ? 1.0f : f; } +static inline float ImLerp(float a, float b, float t) { return a + (b - a) * t; } +static inline ImVec2 ImLerp(const ImVec2& a, const ImVec2& b, const ImVec2& t) { return ImVec2(a.x + (b.x - a.x) * t.x, a.y + (b.y - a.y) * t.y); } +static inline float ImLengthSqr(const ImVec2& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y; } +static inline float ImLengthSqr(const ImVec4& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y + lhs.z*lhs.z + lhs.w*lhs.w; } +static inline float ImInvLength(const ImVec2& lhs, float fail_value) { float d = lhs.x*lhs.x + lhs.y*lhs.y; if (d > 0.0f) return 1.0f / sqrtf(d); return fail_value; } + +//----------------------------------------------------------------------------- +// Types +//----------------------------------------------------------------------------- + +enum ImGuiButtonFlags_ +{ + ImGuiButtonFlags_Repeat = 1 << 0, + ImGuiButtonFlags_PressedOnClick = 1 << 1, // return pressed on click only (default requires click+release) + ImGuiButtonFlags_PressedOnRelease = 1 << 2, // return pressed on release only (default requires click+release) + ImGuiButtonFlags_FlattenChilds = 1 << 3, + ImGuiButtonFlags_DontClosePopups = 1 << 4, + ImGuiButtonFlags_Disabled = 1 << 5, + ImGuiButtonFlags_AlignTextBaseLine = 1 << 6 +}; + +enum ImGuiSelectableFlagsPrivate_ +{ + // NB: need to be in sync with last value of ImGuiSelectableFlags_ + ImGuiSelectableFlags_Menu = 1 << 2, + ImGuiSelectableFlags_MenuItem = 1 << 3, + ImGuiSelectableFlags_Disabled = 1 << 4, + ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 5 +}; + +// FIXME: this is in development, not exposed/functional as a generic feature yet. +enum ImGuiLayoutType_ +{ + ImGuiLayoutType_Vertical, + ImGuiLayoutType_Horizontal +}; + +enum ImGuiPlotType +{ + ImGuiPlotType_Lines, + ImGuiPlotType_Histogram +}; + +enum ImGuiDataType +{ + ImGuiDataType_Int, + ImGuiDataType_Float +}; + +// 2D axis aligned bounding-box +// NB: we can't rely on ImVec2 math operators being available here +struct ImRect +{ + ImVec2 Min; // Upper-left + ImVec2 Max; // Lower-right + + ImRect() : Min(FLT_MAX,FLT_MAX), Max(-FLT_MAX,-FLT_MAX) {} + ImRect(const ImVec2& min, const ImVec2& max) : Min(min), Max(max) {} + ImRect(const ImVec4& v) : Min(v.x, v.y), Max(v.z, v.w) {} + ImRect(float x1, float y1, float x2, float y2) : Min(x1, y1), Max(x2, y2) {} + + ImVec2 GetCenter() const { return ImVec2((Min.x+Max.x)*0.5f, (Min.y+Max.y)*0.5f); } + ImVec2 GetSize() const { return ImVec2(Max.x-Min.x, Max.y-Min.y); } + float GetWidth() const { return Max.x-Min.x; } + float GetHeight() const { return Max.y-Min.y; } + ImVec2 GetTL() const { return Min; } + ImVec2 GetTR() const { return ImVec2(Max.x, Min.y); } + ImVec2 GetBL() const { return ImVec2(Min.x, Max.y); } + ImVec2 GetBR() const { return Max; } + bool Contains(const ImVec2& p) const { return p.x >= Min.x && p.y >= Min.y && p.x < Max.x && p.y < Max.y; } + bool Contains(const ImRect& r) const { return r.Min.x >= Min.x && r.Min.y >= Min.y && r.Max.x < Max.x && r.Max.y < Max.y; } + bool Overlaps(const ImRect& r) const { return r.Min.y < Max.y && r.Max.y > Min.y && r.Min.x < Max.x && r.Max.x > Min.x; } + void Add(const ImVec2& rhs) { if (Min.x > rhs.x) Min.x = rhs.x; if (Min.y > rhs.y) Min.y = rhs.y; if (Max.x < rhs.x) Max.x = rhs.x; if (Max.y < rhs.y) Max.y = rhs.y; } + void Add(const ImRect& rhs) { if (Min.x > rhs.Min.x) Min.x = rhs.Min.x; if (Min.y > rhs.Min.y) Min.y = rhs.Min.y; if (Max.x < rhs.Max.x) Max.x = rhs.Max.x; if (Max.y < rhs.Max.y) Max.y = rhs.Max.y; } + void Expand(const float amount) { Min.x -= amount; Min.y -= amount; Max.x += amount; Max.y += amount; } + void Expand(const ImVec2& amount) { Min.x -= amount.x; Min.y -= amount.y; Max.x += amount.x; Max.y += amount.y; } + void Reduce(const ImVec2& amount) { Min.x += amount.x; Min.y += amount.y; Max.x -= amount.x; Max.y -= amount.y; } + void Clip(const ImRect& clip) { if (Min.x < clip.Min.x) Min.x = clip.Min.x; if (Min.y < clip.Min.y) Min.y = clip.Min.y; if (Max.x > clip.Max.x) Max.x = clip.Max.x; if (Max.y > clip.Max.y) Max.y = clip.Max.y; } + void Round() { Min.x = (float)(int)Min.x; Min.y = (float)(int)Min.y; Max.x = (float)(int)Max.x; Max.y = (float)(int)Max.y; } + ImVec2 GetClosestPoint(ImVec2 p, bool on_edge) const + { + if (!on_edge && Contains(p)) + return p; + if (p.x > Max.x) p.x = Max.x; + else if (p.x < Min.x) p.x = Min.x; + if (p.y > Max.y) p.y = Max.y; + else if (p.y < Min.y) p.y = Min.y; + return p; + } +}; + +// Stacked color modifier, backup of modified data so we can restore it +struct ImGuiColMod +{ + ImGuiCol Col; + ImVec4 PreviousValue; +}; + +// Stacked style modifier, backup of modified data so we can restore it +struct ImGuiStyleMod +{ + ImGuiStyleVar Var; + ImVec2 PreviousValue; +}; + +// Stacked data for BeginGroup()/EndGroup() +struct ImGuiGroupData +{ + ImVec2 BackupCursorPos; + ImVec2 BackupCursorMaxPos; + float BackupColumnsStartX; + float BackupCurrentLineHeight; + float BackupCurrentLineTextBaseOffset; + float BackupLogLinePosY; + bool AdvanceCursor; +}; + +// Simple column measurement currently used for MenuItem() only. This is very short-sighted for now and not a generic helper. +struct ImGuiSimpleColumns +{ + int Count; + float Spacing; + float Width, NextWidth; + float Pos[8], NextWidths[8]; + + ImGuiSimpleColumns(); + void Update(int count, float spacing, bool clear); + float DeclColumns(float w0, float w1, float w2); + float CalcExtraSpace(float avail_w); +}; + +// Internal state of the currently focused/edited text input box +struct ImGuiTextEditState +{ + ImGuiID Id; // widget id owning the text state + ImVector Text; // edit buffer, we need to persist but can't guarantee the persistence of the user-provided buffer. so we copy into own buffer. + ImVector InitialText; // backup of end-user buffer at the time of focus (in UTF-8, unaltered) + ImVector TempTextBuffer; + int CurLenA, CurLenW; // we need to maintain our buffer length in both UTF-8 and wchar format. + int BufSizeA; // end-user buffer size + float ScrollX; + ImGuiStb::STB_TexteditState StbState; + float CursorAnim; + bool CursorFollow; + ImVec2 InputCursorScreenPos; // Cursor position in screen space to be used by IME callback. + bool SelectedAllMouseLock; + + ImGuiTextEditState() { memset(this, 0, sizeof(*this)); } + void CursorAnimReset() { CursorAnim = -0.30f; } // After a user-input the cursor stays on for a while without blinking + bool HasSelection() const { return StbState.select_start != StbState.select_end; } + void ClearSelection() { StbState.select_start = StbState.select_end = StbState.cursor; } + void SelectAll() { StbState.select_start = 0; StbState.select_end = CurLenW; StbState.cursor = StbState.select_end; StbState.has_preferred_x = false; } + void OnKeyPressed(int key); +}; + +// Data saved in imgui.ini file +struct ImGuiIniData +{ + char* Name; + ImGuiID ID; + ImVec2 Pos; + ImVec2 Size; + bool Collapsed; +}; + +// Mouse cursor data (used when io.MouseDrawCursor is set) +struct ImGuiMouseCursorData +{ + ImGuiMouseCursor Type; + ImVec2 HotOffset; + ImVec2 Size; + ImVec2 TexUvMin[2]; + ImVec2 TexUvMax[2]; +}; + +// Storage for current popup stack +struct ImGuiPopupRef +{ + ImGuiID PopupID; // Set on OpenPopup() + ImGuiWindow* Window; // Resolved on BeginPopup() - may stay unresolved if user never calls OpenPopup() + ImGuiWindow* ParentWindow; // Set on OpenPopup() + ImGuiID ParentMenuSet; // Set on OpenPopup() + + ImGuiPopupRef(ImGuiID id, ImGuiWindow* parent_window, ImGuiID parent_menu_set) { PopupID = id; Window = NULL; ParentWindow = parent_window; ParentMenuSet = parent_menu_set; } +}; + +// Main state for ImGui +struct ImGuiState +{ + bool Initialized; + ImGuiIO IO; + ImGuiStyle Style; + ImFont* Font; // (Shortcut) == FontStack.empty() ? IO.Font : FontStack.back() + float FontSize; // (Shortcut) == FontBaseSize * g.CurrentWindow->FontWindowScale == window->FontSize() + float FontBaseSize; // (Shortcut) == IO.FontGlobalScale * Font->Scale * Font->FontSize. Size of characters. + ImVec2 FontTexUvWhitePixel; // (Shortcut) == Font->TexUvForWhite + + float Time; + int FrameCount; + int FrameCountRendered; + ImVector Windows; + ImVector WindowsSortBuffer; + ImGuiWindow* CurrentWindow; // Being drawn into + ImVector CurrentWindowStack; + ImGuiWindow* FocusedWindow; // Will catch keyboard inputs + ImGuiWindow* HoveredWindow; // Will catch mouse inputs + ImGuiWindow* HoveredRootWindow; // Will catch mouse inputs (for focus/move only) + ImGuiID HoveredId; // Hovered widget + ImGuiID HoveredIdPreviousFrame; + ImGuiID ActiveId; // Active widget + ImGuiID ActiveIdPreviousFrame; + bool ActiveIdIsAlive; + bool ActiveIdIsJustActivated; // Set at the time of activation for one frame + bool ActiveIdIsFocusedOnly; // Set only by active widget. Denote focus but no active interaction + ImGuiWindow* ActiveIdWindow; + ImGuiWindow* MovedWindow; // Track the child window we clicked on to move a window. Pointer is only valid if ActiveID is the "#MOVE" identifier of a window. + ImVector Settings; // .ini Settings + float SettingsDirtyTimer; // Save .ini settinngs on disk when time reaches zero + int DisableHideTextAfterDoubleHash; + ImVector ColorModifiers; // Stack for PushStyleColor()/PopStyleColor() + ImVector StyleModifiers; // Stack for PushStyleVar()/PopStyleVar() + ImVector FontStack; // Stack for PushFont()/PopFont() + ImVector OpenedPopupStack; // Which popups are open (persistent) + ImVector CurrentPopupStack; // Which level of BeginPopup() we are in (reset every frame) + + // Storage for SetNexWindow** and SetNextTreeNode*** functions + ImVec2 SetNextWindowPosVal; + ImVec2 SetNextWindowSizeVal; + bool SetNextWindowCollapsedVal; + ImGuiSetCond SetNextWindowPosCond; + ImGuiSetCond SetNextWindowSizeCond; + ImGuiSetCond SetNextWindowCollapsedCond; + bool SetNextWindowFocus; + bool SetNextTreeNodeOpenedVal; + ImGuiSetCond SetNextTreeNodeOpenedCond; + + // Render + ImVector RenderDrawLists[3]; + float ModalWindowDarkeningRatio; + ImDrawList OverlayDrawList; // Optional software render of mouse cursors, if io.MouseDrawCursor is set + a few debug overlays + ImGuiMouseCursor MouseCursor; + ImGuiMouseCursorData MouseCursorData[ImGuiMouseCursor_Count_]; + + // Widget state + ImGuiTextEditState InputTextState; + ImGuiID ScalarAsInputTextId; // Temporary text input when CTRL+clicking on a slider, etc. + ImGuiStorage ColorEditModeStorage; // Store user selection of color edit mode + ImVec2 ActiveClickDeltaToCenter; + float DragCurrentValue; // Currently dragged value, always float, not rounded by end-user precision settings + ImVec2 DragLastMouseDelta; + float DragSpeedDefaultRatio; // If speed == 0.0f, uses (max-min) * DragSpeedDefaultRatio + float DragSpeedScaleSlow; + float DragSpeedScaleFast; + float ScrollbarClickDeltaToGrabCenter; // Distance between mouse and center of grab box, normalized in parent space + char Tooltip[1024]; + char* PrivateClipboard; // If no custom clipboard handler is defined + + // Logging + bool LogEnabled; + FILE* LogFile; // If != NULL log to stdout/ file + ImGuiTextBuffer* LogClipboard; // Else log to clipboard. This is pointer so our GImGui static constructor doesn't call heap allocators. + int LogStartDepth; + int LogAutoExpandMaxDepth; + + // Misc + float FramerateSecPerFrame[120]; // calculate estimate of framerate for user + int FramerateSecPerFrameIdx; + float FramerateSecPerFrameAccum; + bool CaptureMouseNextFrame; // explicit capture via CaptureInputs() sets those flags + bool CaptureKeyboardNextFrame; + char TempBuffer[1024*3+1]; // temporary text buffer + + ImGuiState() + { + Initialized = false; + Font = NULL; + FontSize = FontBaseSize = 0.0f; + FontTexUvWhitePixel = ImVec2(0.0f, 0.0f); + + Time = 0.0f; + FrameCount = 0; + FrameCountRendered = -1; + CurrentWindow = NULL; + FocusedWindow = NULL; + HoveredWindow = NULL; + HoveredRootWindow = NULL; + HoveredId = 0; + HoveredIdPreviousFrame = 0; + ActiveId = 0; + ActiveIdPreviousFrame = 0; + ActiveIdIsAlive = false; + ActiveIdIsJustActivated = false; + ActiveIdIsFocusedOnly = false; + ActiveIdWindow = NULL; + MovedWindow = NULL; + SettingsDirtyTimer = 0.0f; + DisableHideTextAfterDoubleHash = 0; + + SetNextWindowPosVal = ImVec2(0.0f, 0.0f); + SetNextWindowSizeVal = ImVec2(0.0f, 0.0f); + SetNextWindowCollapsedVal = false; + SetNextWindowPosCond = 0; + SetNextWindowSizeCond = 0; + SetNextWindowCollapsedCond = 0; + SetNextWindowFocus = false; + SetNextTreeNodeOpenedVal = false; + SetNextTreeNodeOpenedCond = 0; + + ScalarAsInputTextId = 0; + ActiveClickDeltaToCenter = ImVec2(0.0f, 0.0f); + DragCurrentValue = 0.0f; + DragLastMouseDelta = ImVec2(0.0f, 0.0f); + DragSpeedDefaultRatio = 0.01f; + DragSpeedScaleSlow = 0.01f; + DragSpeedScaleFast = 10.0f; + ScrollbarClickDeltaToGrabCenter = 0.0f; + memset(Tooltip, 0, sizeof(Tooltip)); + PrivateClipboard = NULL; + + ModalWindowDarkeningRatio = 0.0f; + OverlayDrawList._OwnerName = "##Overlay"; // Give it a name for debugging + MouseCursor = ImGuiMouseCursor_Arrow; + + LogEnabled = false; + LogFile = NULL; + LogClipboard = NULL; + LogStartDepth = 0; + LogAutoExpandMaxDepth = 2; + + memset(FramerateSecPerFrame, 0, sizeof(FramerateSecPerFrame)); + FramerateSecPerFrameIdx = 0; + FramerateSecPerFrameAccum = 0.0f; + CaptureMouseNextFrame = CaptureKeyboardNextFrame = false; + } +}; + +// Transient per-window data, reset at the beginning of the frame +// FIXME: That's theory, in practice the delimitation between ImGuiWindow and ImGuiDrawContext is quite tenuous and could be reconsidered. +struct ImGuiDrawContext +{ + ImVec2 CursorPos; + ImVec2 CursorPosPrevLine; + ImVec2 CursorStartPos; + ImVec2 CursorMaxPos; // Implicitly calculate the size of our contents, always extending. Saved into window->SizeContents at the end of the frame + float CurrentLineHeight; + float CurrentLineTextBaseOffset; + float PrevLineHeight; + float PrevLineTextBaseOffset; + float LogLinePosY; + int TreeDepth; + ImGuiID LastItemID; + ImRect LastItemRect; + bool LastItemHoveredAndUsable; + bool LastItemHoveredRect; + bool MenuBarAppending; + float MenuBarOffsetX; + ImVector ChildWindows; + ImGuiStorage* StateStorage; + ImGuiLayoutType LayoutType; + + // We store the current settings outside of the vectors to increase memory locality (reduce cache misses). The vectors are rarely modified. Also it allows us to not heap allocate for short-lived windows which are not using those settings. + bool ButtonRepeat; // == ButtonRepeatStack.back() [empty == false] + bool AllowKeyboardFocus; // == AllowKeyboardFocusStack.back() [empty == true] + float ItemWidth; // == ItemWidthStack.back(). 0.0: default, >0.0: width in pixels, <0.0: align xx pixels to the right of window + float TextWrapPos; // == TextWrapPosStack.back() [empty == -1.0f] + ImVector ButtonRepeatStack; + ImVector AllowKeyboardFocusStack; + ImVector ItemWidthStack; + ImVector TextWrapPosStack; + ImVectorGroupStack; + ImGuiColorEditMode ColorEditMode; + int StackSizesBackup[6]; // Store size of various stacks for asserting + + float ColumnsStartX; // Indentation / start position from left of window (increased by TreePush/TreePop, etc.) + float ColumnsOffsetX; // Offset to the current column (if ColumnsCurrent > 0). FIXME: This and the above should be a stack to allow use cases like Tree->Column->Tree. Need revamp columns API. + int ColumnsCurrent; + int ColumnsCount; + ImVec2 ColumnsStartPos; + float ColumnsCellMinY; + float ColumnsCellMaxY; + bool ColumnsShowBorders; + ImGuiID ColumnsSetID; + ImVector ColumnsOffsetsT; // Columns offset normalized 0.0 (far left) -> 1.0 (far right) + + ImGuiDrawContext() + { + CursorPos = CursorPosPrevLine = CursorStartPos = CursorMaxPos = ImVec2(0.0f, 0.0f); + CurrentLineHeight = PrevLineHeight = 0.0f; + CurrentLineTextBaseOffset = PrevLineTextBaseOffset = 0.0f; + LogLinePosY = -1.0f; + TreeDepth = 0; + LastItemID = 0; + LastItemRect = ImRect(0.0f,0.0f,0.0f,0.0f); + LastItemHoveredAndUsable = LastItemHoveredRect = false; + MenuBarAppending = false; + MenuBarOffsetX = 0.0f; + StateStorage = NULL; + LayoutType = ImGuiLayoutType_Vertical; + ItemWidth = 0.0f; + ButtonRepeat = false; + AllowKeyboardFocus = true; + TextWrapPos = -1.0f; + ColorEditMode = ImGuiColorEditMode_RGB; + memset(StackSizesBackup, 0, sizeof(StackSizesBackup)); + + ColumnsStartX = 0.0f; + ColumnsOffsetX = 0.0f; + ColumnsCurrent = 0; + ColumnsCount = 1; + ColumnsStartPos = ImVec2(0.0f, 0.0f); + ColumnsCellMinY = ColumnsCellMaxY = 0.0f; + ColumnsShowBorders = true; + ColumnsSetID = 0; + } +}; + +// Windows data +struct ImGuiWindow +{ + char* Name; + ImGuiID ID; + ImGuiWindowFlags Flags; + ImVec2 PosFloat; + ImVec2 Pos; // Position rounded-up to nearest pixel + ImVec2 Size; // Current size (==SizeFull or collapsed title bar size) + ImVec2 SizeFull; // Size when non collapsed + ImVec2 SizeContents; // Size of contents (== extents reach of the drawing cursor) from previous frame + ImVec2 WindowPadding; // Window padding at the time of begin. We need to lock it, in particular manipulation of the ShowBorder would have an effect + ImGuiID MoveID; // == window->GetID("#MOVE") + float ScrollY; + float ScrollTargetRelY; // target scroll position. stored as cursor position with scrolling canceled out, so the highest point is always 0.0f. (FLT_MAX for no change) + float ScrollTargetCenterRatioY; // 0.0f = scroll so that target position is at top, 0.5f = scroll so that target position is centered + bool ScrollbarY; + bool Active; // Set to true on Begin() + bool WasActive; + bool Accessed; // Set to true when any widget access the current window + bool Collapsed; // Set when collapsing window to become only title-bar + bool SkipItems; // == Visible && !Collapsed + int BeginCount; // Number of Begin() during the current frame (generally 0 or 1, 1+ if appending via multiple Begin/End pairs) + ImGuiID PopupID; // ID in the popup stack when this window is used as a popup/menu (because we use generic Name/ID for recycling) + int AutoFitFramesX, AutoFitFramesY; + bool AutoFitOnlyGrows; + int AutoPosLastDirection; + int HiddenFrames; + int SetWindowPosAllowFlags; // bit ImGuiSetCond_*** specify if SetWindowPos() call will succeed with this particular flag. + int SetWindowSizeAllowFlags; // bit ImGuiSetCond_*** specify if SetWindowSize() call will succeed with this particular flag. + int SetWindowCollapsedAllowFlags; // bit ImGuiSetCond_*** specify if SetWindowCollapsed() call will succeed with this particular flag. + bool SetWindowPosCenterWanted; + + ImGuiDrawContext DC; // Temporary per-window data, reset at the beginning of the frame + ImVector IDStack; // ID stack. ID are hashes seeded with the value at the top of the stack + ImRect ClipRect; // = DrawList->clip_rect_stack.back(). Scissoring / clipping rectangle. x1, y1, x2, y2. + ImRect ClippedWindowRect; // = ClipRect just after setup in Begin() + int LastFrameDrawn; + float ItemWidthDefault; + ImGuiSimpleColumns MenuColumns; // Simplified columns storage for menu items + ImGuiStorage StateStorage; + float FontWindowScale; // Scale multiplier per-window + ImDrawList* DrawList; + ImGuiWindow* RootWindow; + ImGuiWindow* RootNonPopupWindow; + + // Focus + int FocusIdxAllCounter; // Start at -1 and increase as assigned via FocusItemRegister() + int FocusIdxTabCounter; // (same, but only count widgets which you can Tab through) + int FocusIdxAllRequestCurrent; // Item being requested for focus + int FocusIdxTabRequestCurrent; // Tab-able item being requested for focus + int FocusIdxAllRequestNext; // Item being requested for focus, for next update (relies on layout to be stable between the frame pressing TAB and the next frame) + int FocusIdxTabRequestNext; // " + +public: + ImGuiWindow(const char* name); + ~ImGuiWindow(); + + ImGuiID GetID(const char* str, const char* str_end = NULL); + ImGuiID GetID(const void* ptr); + + ImRect Rect() const { return ImRect(Pos.x, Pos.y, Pos.x+Size.x, Pos.y+Size.y); } + float CalcFontSize() const { return GImGui->FontBaseSize * FontWindowScale; } + float TitleBarHeight() const { return (Flags & ImGuiWindowFlags_NoTitleBar) ? 0.0f : CalcFontSize() + GImGui->Style.FramePadding.y * 2.0f; } + ImRect TitleBarRect() const { return ImRect(Pos, ImVec2(Pos.x + SizeFull.x, Pos.y + TitleBarHeight())); } + float MenuBarHeight() const { return (Flags & ImGuiWindowFlags_MenuBar) ? CalcFontSize() + GImGui->Style.FramePadding.y * 2.0f : 0.0f; } + ImRect MenuBarRect() const { float y1 = Pos.y + TitleBarHeight(); return ImRect(Pos.x, y1, Pos.x + SizeFull.x, y1 + MenuBarHeight()); } + float ScrollbarWidth() const { return ScrollbarY ? GImGui->Style.ScrollbarWidth : 0.0f; } + ImU32 Color(ImGuiCol idx, float a=1.f) const { ImVec4 c = GImGui->Style.Colors[idx]; c.w *= GImGui->Style.Alpha * a; return ImGui::ColorConvertFloat4ToU32(c); } + ImU32 Color(const ImVec4& col) const { ImVec4 c = col; c.w *= GImGui->Style.Alpha; return ImGui::ColorConvertFloat4ToU32(c); } +}; + +//----------------------------------------------------------------------------- +// Internal API +// No guarantee of forward compatibility here. +//----------------------------------------------------------------------------- + +namespace ImGui +{ + IMGUI_API ImGuiWindow* GetCurrentWindow(); + IMGUI_API ImGuiWindow* GetParentWindow(); + IMGUI_API void FocusWindow(ImGuiWindow* window); + + IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow* window); + IMGUI_API void KeepAliveID(ImGuiID id); + + IMGUI_API void ItemSize(const ImVec2& size, float text_offset_y = 0.0f); + IMGUI_API void ItemSize(const ImRect& bb, float text_offset_y = 0.0f); + IMGUI_API bool ItemAdd(const ImRect& bb, const ImGuiID* id); + IMGUI_API bool IsClippedEx(const ImRect& bb, const ImGuiID* id, bool clip_even_when_logged); + IMGUI_API bool IsHovered(const ImRect& bb, ImGuiID id, bool flatten_childs = false); + IMGUI_API bool FocusableItemRegister(ImGuiWindow* window, bool is_active, bool tab_stop = true); // Return true if focus is requested + IMGUI_API void FocusableItemUnregister(ImGuiWindow* window); + IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_x, float default_y); + IMGUI_API float CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x); + + IMGUI_API void RenderText(ImVec2 pos, const char* text, const char* text_end = NULL, bool hide_text_after_hash = true); + IMGUI_API void RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width); + IMGUI_API void RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, ImGuiAlign align = ImGuiAlign_Default, const ImVec2* clip_min = NULL, const ImVec2* clip_max = NULL); + IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border = true, float rounding = 0.0f); + IMGUI_API void RenderCollapseTriangle(ImVec2 p_min, bool opened, float scale = 1.0f, bool shadow = false); + IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col); + + IMGUI_API bool ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, bool allow_key_modifiers, ImGuiButtonFlags flags = 0); + IMGUI_API bool ButtonEx(const char* label, const ImVec2& size_arg = ImVec2(0,0), ImGuiButtonFlags flags = 0); + + IMGUI_API bool SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_min, float v_max, float power, int decimal_precision, bool horizontal); + IMGUI_API bool SliderFloatN(const char* label, float* v, int components, float v_min, float v_max, const char* display_format, float power); + IMGUI_API bool SliderIntN(const char* label, int* v, int components, int v_min, int v_max, const char* display_format); + + IMGUI_API bool DragBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_speed, float v_min, float v_max, int decimal_precision, float power); + IMGUI_API bool DragFloatN(const char* label, float* v, int components, float v_speed, float v_min, float v_max, const char* display_format, float power); + IMGUI_API bool DragIntN(const char* label, int* v, int components, float v_speed, int v_min, int v_max, const char* display_format); + + IMGUI_API bool InputTextEx(const char* label, char* buf, int buf_size, const ImVec2& size_arg, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback = NULL, void* user_data = NULL); + IMGUI_API bool InputFloatN(const char* label, float* v, int components, int decimal_precision, ImGuiInputTextFlags extra_flags); + IMGUI_API bool InputIntN(const char* label, int* v, int components, ImGuiInputTextFlags extra_flags); + IMGUI_API bool InputScalarEx(const char* label, ImGuiDataType data_type, void* data_ptr, void* step_ptr, void* step_fast_ptr, const char* scalar_format, ImGuiInputTextFlags extra_flags); + IMGUI_API bool InputScalarAsWidgetReplacement(const ImRect& aabb, const char* label, ImGuiDataType data_type, void* data_ptr, ImGuiID id, int decimal_precision); + + IMGUI_API void PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size); + + IMGUI_API int ParseFormatPrecision(const char* fmt, int default_value); + IMGUI_API float RoundScalar(float value, int decimal_precision); + +} // namespace ImGuiP + diff --git a/samples/dual_layer/D3D11/src/imgui/stb_rect_pack.h b/samples/dual_layer/D3D11/src/imgui/stb_rect_pack.h new file mode 100644 index 0000000..eb0ef2f --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/stb_rect_pack.h @@ -0,0 +1,547 @@ +// stb_rect_pack.h - v0.05 - public domain - rectangle packing +// Sean Barrett 2014 +// +// Useful for e.g. packing rectangular textures into an atlas. +// Does not do rotation. +// +// Not necessarily the awesomest packing method, but better than +// the totally naive one in stb_truetype (which is primarily what +// this is meant to replace). +// +// Has only had a few tests run, may have issues. +// +// More docs to come. +// +// No memory allocations; uses qsort() and assert() from stdlib. +// +// This library currently uses the Skyline Bottom-Left algorithm. +// +// Please note: better rectangle packers are welcome! Please +// implement them to the same API, but with a different init +// function. +// +// Version history: +// +// 0.05: added STBRP_ASSERT to allow replacing assert +// 0.04: fixed minor bug in STBRP_LARGE_RECTS support +// 0.01: initial release + +////////////////////////////////////////////////////////////////////////////// +// +// INCLUDE SECTION +// + +#ifndef STB_INCLUDE_STB_RECT_PACK_H +#define STB_INCLUDE_STB_RECT_PACK_H + +#define STB_RECT_PACK_VERSION 1 + +#ifdef STBRP_STATIC +#define STBRP_DEF static +#else +#define STBRP_DEF extern +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct stbrp_context stbrp_context; +typedef struct stbrp_node stbrp_node; +typedef struct stbrp_rect stbrp_rect; + +#ifdef STBRP_LARGE_RECTS +typedef int stbrp_coord; +#else +typedef unsigned short stbrp_coord; +#endif + +STBRP_DEF void stbrp_pack_rects (stbrp_context *context, stbrp_rect *rects, int num_rects); +// Assign packed locations to rectangles. The rectangles are of type +// 'stbrp_rect' defined below, stored in the array 'rects', and there +// are 'num_rects' many of them. +// +// Rectangles which are successfully packed have the 'was_packed' flag +// set to a non-zero value and 'x' and 'y' store the minimum location +// on each axis (i.e. bottom-left in cartesian coordinates, top-left +// if you imagine y increasing downwards). Rectangles which do not fit +// have the 'was_packed' flag set to 0. +// +// You should not try to access the 'rects' array from another thread +// while this function is running, as the function temporarily reorders +// the array while it executes. +// +// To pack into another rectangle, you need to call stbrp_init_target +// again. To continue packing into the same rectangle, you can call +// this function again. Calling this multiple times with multiple rect +// arrays will probably produce worse packing results than calling it +// a single time with the full rectangle array, but the option is +// available. + +struct stbrp_rect +{ + // reserved for your use: + int id; + + // input: + stbrp_coord w, h; + + // output: + stbrp_coord x, y; + int was_packed; // non-zero if valid packing + +}; // 16 bytes, nominally + + +STBRP_DEF void stbrp_init_target (stbrp_context *context, int width, int height, stbrp_node *nodes, int num_nodes); +// Initialize a rectangle packer to: +// pack a rectangle that is 'width' by 'height' in dimensions +// using temporary storage provided by the array 'nodes', which is 'num_nodes' long +// +// You must call this function every time you start packing into a new target. +// +// There is no "shutdown" function. The 'nodes' memory must stay valid for +// the following stbrp_pack_rects() call (or calls), but can be freed after +// the call (or calls) finish. +// +// Note: to guarantee best results, either: +// 1. make sure 'num_nodes' >= 'width' +// or 2. call stbrp_allow_out_of_mem() defined below with 'allow_out_of_mem = 1' +// +// If you don't do either of the above things, widths will be quantized to multiples +// of small integers to guarantee the algorithm doesn't run out of temporary storage. +// +// If you do #2, then the non-quantized algorithm will be used, but the algorithm +// may run out of temporary storage and be unable to pack some rectangles. + +STBRP_DEF void stbrp_setup_allow_out_of_mem (stbrp_context *context, int allow_out_of_mem); +// Optionally call this function after init but before doing any packing to +// change the handling of the out-of-temp-memory scenario, described above. +// If you call init again, this will be reset to the default (false). + + +STBRP_DEF void stbrp_setup_heuristic (stbrp_context *context, int heuristic); +// Optionally select which packing heuristic the library should use. Different +// heuristics will produce better/worse results for different data sets. +// If you call init again, this will be reset to the default. + +enum +{ + STBRP_HEURISTIC_Skyline_default=0, + STBRP_HEURISTIC_Skyline_BL_sortHeight = STBRP_HEURISTIC_Skyline_default, + STBRP_HEURISTIC_Skyline_BF_sortHeight +}; + + +////////////////////////////////////////////////////////////////////////////// +// +// the details of the following structures don't matter to you, but they must +// be visible so you can handle the memory allocations for them + +struct stbrp_node +{ + stbrp_coord x,y; + stbrp_node *next; +}; + +struct stbrp_context +{ + int width; + int height; + int align; + int init_mode; + int heuristic; + int num_nodes; + stbrp_node *active_head; + stbrp_node *free_head; + stbrp_node extra[2]; // we allocate two extra nodes so optimal user-node-count is 'width' not 'width+2' +}; + +#ifdef __cplusplus +} +#endif + +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// IMPLEMENTATION SECTION +// + +#ifdef STB_RECT_PACK_IMPLEMENTATION +#include + +#ifndef STBRP_ASSERT +#include +#define STBRP_ASSERT assert +#endif + +enum +{ + STBRP__INIT_skyline = 1 +}; + +STBRP_DEF void stbrp_setup_heuristic(stbrp_context *context, int heuristic) +{ + switch (context->init_mode) { + case STBRP__INIT_skyline: + STBRP_ASSERT(heuristic == STBRP_HEURISTIC_Skyline_BL_sortHeight || heuristic == STBRP_HEURISTIC_Skyline_BF_sortHeight); + context->heuristic = heuristic; + break; + default: + STBRP_ASSERT(0); + } +} + +STBRP_DEF void stbrp_setup_allow_out_of_mem(stbrp_context *context, int allow_out_of_mem) +{ + if (allow_out_of_mem) + // if it's ok to run out of memory, then don't bother aligning them; + // this gives better packing, but may fail due to OOM (even though + // the rectangles easily fit). @TODO a smarter approach would be to only + // quantize once we've hit OOM, then we could get rid of this parameter. + context->align = 1; + else { + // if it's not ok to run out of memory, then quantize the widths + // so that num_nodes is always enough nodes. + // + // I.e. num_nodes * align >= width + // align >= width / num_nodes + // align = ceil(width/num_nodes) + + context->align = (context->width + context->num_nodes-1) / context->num_nodes; + } +} + +STBRP_DEF void stbrp_init_target(stbrp_context *context, int width, int height, stbrp_node *nodes, int num_nodes) +{ + int i; +#ifndef STBRP_LARGE_RECTS + STBRP_ASSERT(width <= 0xffff && height <= 0xffff); +#endif + + for (i=0; i < num_nodes-1; ++i) + nodes[i].next = &nodes[i+1]; + nodes[i].next = NULL; + context->init_mode = STBRP__INIT_skyline; + context->heuristic = STBRP_HEURISTIC_Skyline_default; + context->free_head = &nodes[0]; + context->active_head = &context->extra[0]; + context->width = width; + context->height = height; + context->num_nodes = num_nodes; + stbrp_setup_allow_out_of_mem(context, 0); + + // node 0 is the full width, node 1 is the sentinel (lets us not store width explicitly) + context->extra[0].x = 0; + context->extra[0].y = 0; + context->extra[0].next = &context->extra[1]; + context->extra[1].x = (stbrp_coord) width; +#ifdef STBRP_LARGE_RECTS + context->extra[1].y = (1<<30); +#else + context->extra[1].y = 65535; +#endif + context->extra[1].next = NULL; +} + +// find minimum y position if it starts at x1 +static int stbrp__skyline_find_min_y(stbrp_context *c, stbrp_node *first, int x0, int width, int *pwaste) +{ + (void)c; + stbrp_node *node = first; + int x1 = x0 + width; + int min_y, visited_width, waste_area; + STBRP_ASSERT(first->x <= x0); + + #if 0 + // skip in case we're past the node + while (node->next->x <= x0) + ++node; + #else + STBRP_ASSERT(node->next->x > x0); // we ended up handling this in the caller for efficiency + #endif + + STBRP_ASSERT(node->x <= x0); + + min_y = 0; + waste_area = 0; + visited_width = 0; + while (node->x < x1) { + if (node->y > min_y) { + // raise min_y higher. + // we've accounted for all waste up to min_y, + // but we'll now add more waste for everything we've visted + waste_area += visited_width * (node->y - min_y); + min_y = node->y; + // the first time through, visited_width might be reduced + if (node->x < x0) + visited_width += node->next->x - x0; + else + visited_width += node->next->x - node->x; + } else { + // add waste area + int under_width = node->next->x - node->x; + if (under_width + visited_width > width) + under_width = width - visited_width; + waste_area += under_width * (min_y - node->y); + visited_width += under_width; + } + node = node->next; + } + + *pwaste = waste_area; + return min_y; +} + +typedef struct +{ + int x,y; + stbrp_node **prev_link; +} stbrp__findresult; + +static stbrp__findresult stbrp__skyline_find_best_pos(stbrp_context *c, int width, int height) +{ + int best_waste = (1<<30), best_x, best_y = (1 << 30); + stbrp__findresult fr; + stbrp_node **prev, *node, *tail, **best = NULL; + + // align to multiple of c->align + width = (width + c->align - 1); + width -= width % c->align; + STBRP_ASSERT(width % c->align == 0); + + node = c->active_head; + prev = &c->active_head; + while (node->x + width <= c->width) { + int y,waste; + y = stbrp__skyline_find_min_y(c, node, node->x, width, &waste); + if (c->heuristic == STBRP_HEURISTIC_Skyline_BL_sortHeight) { // actually just want to test BL + // bottom left + if (y < best_y) { + best_y = y; + best = prev; + } + } else { + // best-fit + if (y + height <= c->height) { + // can only use it if it first vertically + if (y < best_y || (y == best_y && waste < best_waste)) { + best_y = y; + best_waste = waste; + best = prev; + } + } + } + prev = &node->next; + node = node->next; + } + + best_x = (best == NULL) ? 0 : (*best)->x; + + // if doing best-fit (BF), we also have to try aligning right edge to each node position + // + // e.g, if fitting + // + // ____________________ + // |____________________| + // + // into + // + // | | + // | ____________| + // |____________| + // + // then right-aligned reduces waste, but bottom-left BL is always chooses left-aligned + // + // This makes BF take about 2x the time + + if (c->heuristic == STBRP_HEURISTIC_Skyline_BF_sortHeight) { + tail = c->active_head; + node = c->active_head; + prev = &c->active_head; + // find first node that's admissible + while (tail->x < width) + tail = tail->next; + while (tail) { + int xpos = tail->x - width; + int y,waste; + STBRP_ASSERT(xpos >= 0); + // find the left position that matches this + while (node->next->x <= xpos) { + prev = &node->next; + node = node->next; + } + STBRP_ASSERT(node->next->x > xpos && node->x <= xpos); + y = stbrp__skyline_find_min_y(c, node, xpos, width, &waste); + if (y + height < c->height) { + if (y <= best_y) { + if (y < best_y || waste < best_waste || (waste==best_waste && xpos < best_x)) { + best_x = xpos; + STBRP_ASSERT(y <= best_y); + best_y = y; + best_waste = waste; + best = prev; + } + } + } + tail = tail->next; + } + } + + fr.prev_link = best; + fr.x = best_x; + fr.y = best_y; + return fr; +} + +static stbrp__findresult stbrp__skyline_pack_rectangle(stbrp_context *context, int width, int height) +{ + // find best position according to heuristic + stbrp__findresult res = stbrp__skyline_find_best_pos(context, width, height); + stbrp_node *node, *cur; + + // bail if: + // 1. it failed + // 2. the best node doesn't fit (we don't always check this) + // 3. we're out of memory + if (res.prev_link == NULL || res.y + height > context->height || context->free_head == NULL) { + res.prev_link = NULL; + return res; + } + + // on success, create new node + node = context->free_head; + node->x = (stbrp_coord) res.x; + node->y = (stbrp_coord) (res.y + height); + + context->free_head = node->next; + + // insert the new node into the right starting point, and + // let 'cur' point to the remaining nodes needing to be + // stiched back in + + cur = *res.prev_link; + if (cur->x < res.x) { + // preserve the existing one, so start testing with the next one + stbrp_node *next = cur->next; + cur->next = node; + cur = next; + } else { + *res.prev_link = node; + } + + // from here, traverse cur and free the nodes, until we get to one + // that shouldn't be freed + while (cur->next && cur->next->x <= res.x + width) { + stbrp_node *next = cur->next; + // move the current node to the free list + cur->next = context->free_head; + context->free_head = cur; + cur = next; + } + + // stitch the list back in + node->next = cur; + + if (cur->x < res.x + width) + cur->x = (stbrp_coord) (res.x + width); + +#ifdef _DEBUG + cur = context->active_head; + while (cur->x < context->width) { + STBRP_ASSERT(cur->x < cur->next->x); + cur = cur->next; + } + STBRP_ASSERT(cur->next == NULL); + + { + stbrp_node *L1 = NULL, *L2 = NULL; + int count=0; + cur = context->active_head; + while (cur) { + L1 = cur; + cur = cur->next; + ++count; + } + cur = context->free_head; + while (cur) { + L2 = cur; + cur = cur->next; + ++count; + } + STBRP_ASSERT(count == context->num_nodes+2); + } +#endif + + return res; +} + +static int rect_height_compare(const void *a, const void *b) +{ + stbrp_rect *p = (stbrp_rect *) a; + stbrp_rect *q = (stbrp_rect *) b; + if (p->h > q->h) + return -1; + if (p->h < q->h) + return 1; + return (p->w > q->w) ? -1 : (p->w < q->w); +} + +static int rect_width_compare(const void *a, const void *b) +{ + stbrp_rect *p = (stbrp_rect *) a; + stbrp_rect *q = (stbrp_rect *) b; + if (p->w > q->w) + return -1; + if (p->w < q->w) + return 1; + return (p->h > q->h) ? -1 : (p->h < q->h); +} + +static int rect_original_order(const void *a, const void *b) +{ + stbrp_rect *p = (stbrp_rect *) a; + stbrp_rect *q = (stbrp_rect *) b; + return (p->was_packed < q->was_packed) ? -1 : (p->was_packed > q->was_packed); +} + +#ifdef STBRP_LARGE_RECTS +#define STBRP__MAXVAL 0xffffffff +#else +#define STBRP__MAXVAL 0xffff +#endif + +STBRP_DEF void stbrp_pack_rects(stbrp_context *context, stbrp_rect *rects, int num_rects) +{ + int i; + + // we use the 'was_packed' field internally to allow sorting/unsorting + for (i=0; i < num_rects; ++i) { + rects[i].was_packed = i; + #ifndef STBRP_LARGE_RECTS + STBRP_ASSERT(rects[i].w <= 0xffff && rects[i].h <= 0xffff); + #endif + } + + // sort according to heuristic + qsort(rects, num_rects, sizeof(rects[0]), rect_height_compare); + + for (i=0; i < num_rects; ++i) { + stbrp__findresult fr = stbrp__skyline_pack_rectangle(context, rects[i].w, rects[i].h); + if (fr.prev_link) { + rects[i].x = (stbrp_coord) fr.x; + rects[i].y = (stbrp_coord) fr.y; + } else { + rects[i].x = rects[i].y = STBRP__MAXVAL; + } + } + + // unsort + qsort(rects, num_rects, sizeof(rects[0]), rect_original_order); + + // set was_packed flags + for (i=0; i < num_rects; ++i) + rects[i].was_packed = !(rects[i].x == STBRP__MAXVAL && rects[i].y == STBRP__MAXVAL); +} +#endif diff --git a/samples/dual_layer/D3D11/src/imgui/stb_textedit.h b/samples/dual_layer/D3D11/src/imgui/stb_textedit.h new file mode 100644 index 0000000..3972c0f --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/stb_textedit.h @@ -0,0 +1,1261 @@ +// [ImGui] this is a slightly modified version of stb_truetype.h 1.4 +// [ImGui] we made a fix for using the END key on multi-line text edit, see https://github.com/ocornut/imgui/issues/275 + +// stb_textedit.h - v1.4 - public domain - Sean Barrett +// Development of this library was sponsored by RAD Game Tools +// +// This C header file implements the guts of a multi-line text-editing +// widget; you implement display, word-wrapping, and low-level string +// insertion/deletion, and stb_textedit will map user inputs into +// insertions & deletions, plus updates to the cursor position, +// selection state, and undo state. +// +// It is intended for use in games and other systems that need to build +// their own custom widgets and which do not have heavy text-editing +// requirements (this library is not recommended for use for editing large +// texts, as its performance does not scale and it has limited undo). +// +// Non-trivial behaviors are modelled after Windows text controls. +// +// +// LICENSE +// +// This software has been placed in the public domain by its author. +// Where that dedication is not recognized, you are granted a perpetual, +// irrevocable license to copy and modify this file as you see fit. +// +// +// DEPENDENCIES +// +// Uses the C runtime function 'memmove'. Uses no other functions. +// Performs no runtime allocations. +// +// +// VERSION HISTORY +// +// 1.4 (2014-08-17) fix signed/unsigned warnings +// 1.3 (2014-06-19) fix mouse clicking to round to nearest char boundary +// 1.2 (2014-05-27) fix some RAD types that had crept into the new code +// 1.1 (2013-12-15) move-by-word (requires STB_TEXTEDIT_IS_SPACE ) +// 1.0 (2012-07-26) improve documentation, initial public release +// 0.3 (2012-02-24) bugfixes, single-line mode; insert mode +// 0.2 (2011-11-28) fixes to undo/redo +// 0.1 (2010-07-08) initial version +// +// ADDITIONAL CONTRIBUTORS +// +// Ulf Winklemann: move-by-word in 1.1 +// Scott Graham: mouse selection bugfix in 1.3 +// +// USAGE +// +// This file behaves differently depending on what symbols you define +// before including it. +// +// +// Header-file mode: +// +// If you do not define STB_TEXTEDIT_IMPLEMENTATION before including this, +// it will operate in "header file" mode. In this mode, it declares a +// single public symbol, STB_TexteditState, which encapsulates the current +// state of a text widget (except for the string, which you will store +// separately). +// +// To compile in this mode, you must define STB_TEXTEDIT_CHARTYPE to a +// primitive type that defines a single character (e.g. char, wchar_t, etc). +// +// To save space or increase undo-ability, you can optionally define the +// following things that are used by the undo system: +// +// STB_TEXTEDIT_POSITIONTYPE small int type encoding a valid cursor position +// STB_TEXTEDIT_UNDOSTATECOUNT the number of undo states to allow +// STB_TEXTEDIT_UNDOCHARCOUNT the number of characters to store in the undo buffer +// +// If you don't define these, they are set to permissive types and +// moderate sizes. The undo system does no memory allocations, so +// it grows STB_TexteditState by the worst-case storage which is (in bytes): +// +// [4 + sizeof(STB_TEXTEDIT_POSITIONTYPE)] * STB_TEXTEDIT_UNDOSTATE_COUNT +// + sizeof(STB_TEXTEDIT_CHARTYPE) * STB_TEXTEDIT_UNDOCHAR_COUNT +// +// +// Implementation mode: +// +// If you define STB_TEXTEDIT_IMPLEMENTATION before including this, it +// will compile the implementation of the text edit widget, depending +// on a large number of symbols which must be defined before the include. +// +// The implementation is defined only as static functions. You will then +// need to provide your own APIs in the same file which will access the +// static functions. +// +// The basic concept is that you provide a "string" object which +// behaves like an array of characters. stb_textedit uses indices to +// refer to positions in the string, implicitly representing positions +// in the displayed textedit. This is true for both plain text and +// rich text; even with rich text stb_truetype interacts with your +// code as if there was an array of all the displayed characters. +// +// Symbols that must be the same in header-file and implementation mode: +// +// STB_TEXTEDIT_CHARTYPE the character type +// STB_TEXTEDIT_POSITIONTYPE small type that a valid cursor position +// STB_TEXTEDIT_UNDOSTATECOUNT the number of undo states to allow +// STB_TEXTEDIT_UNDOCHARCOUNT the number of characters to store in the undo buffer +// +// Symbols you must define for implementation mode: +// +// STB_TEXTEDIT_STRING the type of object representing a string being edited, +// typically this is a wrapper object with other data you need +// +// STB_TEXTEDIT_STRINGLEN(obj) the length of the string (ideally O(1)) +// STB_TEXTEDIT_LAYOUTROW(&r,obj,n) returns the results of laying out a line of characters +// starting from character #n (see discussion below) +// STB_TEXTEDIT_GETWIDTH(obj,n,i) returns the pixel delta from the xpos of the i'th character +// to the xpos of the i+1'th char for a line of characters +// starting at character #n (i.e. accounts for kerning +// with previous char) +// STB_TEXTEDIT_KEYTOTEXT(k) maps a keyboard input to an insertable character +// (return type is int, -1 means not valid to insert) +// STB_TEXTEDIT_GETCHAR(obj,i) returns the i'th character of obj, 0-based +// STB_TEXTEDIT_NEWLINE the character returned by _GETCHAR() we recognize +// as manually wordwrapping for end-of-line positioning +// +// STB_TEXTEDIT_DELETECHARS(obj,i,n) delete n characters starting at i +// STB_TEXTEDIT_INSERTCHARS(obj,i,c*,n) insert n characters at i (pointed to by STB_TEXTEDIT_CHARTYPE*) +// +// STB_TEXTEDIT_K_SHIFT a power of two that is or'd in to a keyboard input to represent the shift key +// +// STB_TEXTEDIT_K_LEFT keyboard input to move cursor left +// STB_TEXTEDIT_K_RIGHT keyboard input to move cursor right +// STB_TEXTEDIT_K_UP keyboard input to move cursor up +// STB_TEXTEDIT_K_DOWN keyboard input to move cursor down +// STB_TEXTEDIT_K_LINESTART keyboard input to move cursor to start of line // e.g. HOME +// STB_TEXTEDIT_K_LINEEND keyboard input to move cursor to end of line // e.g. END +// STB_TEXTEDIT_K_TEXTSTART keyboard input to move cursor to start of text // e.g. ctrl-HOME +// STB_TEXTEDIT_K_TEXTEND keyboard input to move cursor to end of text // e.g. ctrl-END +// STB_TEXTEDIT_K_DELETE keyboard input to delete selection or character under cursor +// STB_TEXTEDIT_K_BACKSPACE keyboard input to delete selection or character left of cursor +// STB_TEXTEDIT_K_UNDO keyboard input to perform undo +// STB_TEXTEDIT_K_REDO keyboard input to perform redo +// +// Optional: +// STB_TEXTEDIT_K_INSERT keyboard input to toggle insert mode +// STB_TEXTEDIT_IS_SPACE(ch) true if character is whitespace (e.g. 'isspace'), +// required for WORDLEFT/WORDRIGHT +// STB_TEXTEDIT_K_WORDLEFT keyboard input to move cursor left one word // e.g. ctrl-LEFT +// STB_TEXTEDIT_K_WORDRIGHT keyboard input to move cursor right one word // e.g. ctrl-RIGHT +// +// Todo: +// STB_TEXTEDIT_K_PGUP keyboard input to move cursor up a page +// STB_TEXTEDIT_K_PGDOWN keyboard input to move cursor down a page +// +// Keyboard input must be encoded as a single integer value; e.g. a character code +// and some bitflags that represent shift states. to simplify the interface, SHIFT must +// be a bitflag, so we can test the shifted state of cursor movements to allow selection, +// i.e. (STB_TEXTED_K_RIGHT|STB_TEXTEDIT_K_SHIFT) should be shifted right-arrow. +// +// You can encode other things, such as CONTROL or ALT, in additional bits, and +// then test for their presence in e.g. STB_TEXTEDIT_K_WORDLEFT. For example, +// my Windows implementations add an additional CONTROL bit, and an additional KEYDOWN +// bit. Then all of the STB_TEXTEDIT_K_ values bitwise-or in the KEYDOWN bit, +// and I pass both WM_KEYDOWN and WM_CHAR events to the "key" function in the +// API below. The control keys will only match WM_KEYDOWN events because of the +// keydown bit I add, and STB_TEXTEDIT_KEYTOTEXT only tests for the KEYDOWN +// bit so it only decodes WM_CHAR events. +// +// STB_TEXTEDIT_LAYOUTROW returns information about the shape of one displayed +// row of characters assuming they start on the i'th character--the width and +// the height and the number of characters consumed. This allows this library +// to traverse the entire layout incrementally. You need to compute word-wrapping +// here. +// +// Each textfield keeps its own insert mode state, which is not how normal +// applications work. To keep an app-wide insert mode, update/copy the +// "insert_mode" field of STB_TexteditState before/after calling API functions. +// +// API +// +// void stb_textedit_initialize_state(STB_TexteditState *state, int is_single_line) +// +// void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) +// void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) +// int stb_textedit_cut(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +// int stb_textedit_paste(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXTEDIT_CHARTYPE *text, int len) +// void stb_textedit_key(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int key) +// +// Each of these functions potentially updates the string and updates the +// state. +// +// initialize_state: +// set the textedit state to a known good default state when initially +// constructing the textedit. +// +// click: +// call this with the mouse x,y on a mouse down; it will update the cursor +// and reset the selection start/end to the cursor point. the x,y must +// be relative to the text widget, with (0,0) being the top left. +// +// drag: +// call this with the mouse x,y on a mouse drag/up; it will update the +// cursor and the selection end point +// +// cut: +// call this to delete the current selection; returns true if there was +// one. you should FIRST copy the current selection to the system paste buffer. +// (To copy, just copy the current selection out of the string yourself.) +// +// paste: +// call this to paste text at the current cursor point or over the current +// selection if there is one. +// +// key: +// call this for keyboard inputs sent to the textfield. you can use it +// for "key down" events or for "translated" key events. if you need to +// do both (as in Win32), or distinguish Unicode characters from control +// inputs, set a high bit to distinguish the two; then you can define the +// various definitions like STB_TEXTEDIT_K_LEFT have the is-key-event bit +// set, and make STB_TEXTEDIT_KEYTOCHAR check that the is-key-event bit is +// clear. +// +// When rendering, you can read the cursor position and selection state from +// the STB_TexteditState. +// +// +// Notes: +// +// This is designed to be usable in IMGUI, so it allows for the possibility of +// running in an IMGUI that has NOT cached the multi-line layout. For this +// reason, it provides an interface that is compatible with computing the +// layout incrementally--we try to make sure we make as few passes through +// as possible. (For example, to locate the mouse pointer in the text, we +// could define functions that return the X and Y positions of characters +// and binary search Y and then X, but if we're doing dynamic layout this +// will run the layout algorithm many times, so instead we manually search +// forward in one pass. Similar logic applies to e.g. up-arrow and +// down-arrow movement.) +// +// If it's run in a widget that *has* cached the layout, then this is less +// efficient, but it's not horrible on modern computers. But you wouldn't +// want to edit million-line files with it. + + +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//// +//// Header-file mode +//// +//// + +#ifndef INCLUDE_STB_TEXTEDIT_H +#define INCLUDE_STB_TEXTEDIT_H + +//////////////////////////////////////////////////////////////////////// +// +// STB_TexteditState +// +// Definition of STB_TexteditState which you should store +// per-textfield; it includes cursor position, selection state, +// and undo state. +// + +#ifndef STB_TEXTEDIT_UNDOSTATECOUNT +#define STB_TEXTEDIT_UNDOSTATECOUNT 99 +#endif +#ifndef STB_TEXTEDIT_UNDOCHARCOUNT +#define STB_TEXTEDIT_UNDOCHARCOUNT 999 +#endif +#ifndef STB_TEXTEDIT_CHARTYPE +#define STB_TEXTEDIT_CHARTYPE int +#endif +#ifndef STB_TEXTEDIT_POSITIONTYPE +#define STB_TEXTEDIT_POSITIONTYPE int +#endif + +typedef struct +{ + // private data + STB_TEXTEDIT_POSITIONTYPE where; + short insert_length; + short delete_length; + short char_storage; +} StbUndoRecord; + +typedef struct +{ + // private data + StbUndoRecord undo_rec [STB_TEXTEDIT_UNDOSTATECOUNT]; + STB_TEXTEDIT_CHARTYPE undo_char[STB_TEXTEDIT_UNDOCHARCOUNT]; + short undo_point, redo_point; + short undo_char_point, redo_char_point; +} StbUndoState; + +typedef struct +{ + ///////////////////// + // + // public data + // + + int cursor; + // position of the text cursor within the string + + int select_start; // selection start point + int select_end; + // selection start and end point in characters; if equal, no selection. + // note that start may be less than or greater than end (e.g. when + // dragging the mouse, start is where the initial click was, and you + // can drag in either direction) + + unsigned char insert_mode; + // each textfield keeps its own insert mode state. to keep an app-wide + // insert mode, copy this value in/out of the app state + + ///////////////////// + // + // private data + // + unsigned char cursor_at_end_of_line; // not implemented yet + unsigned char initialized; + unsigned char has_preferred_x; + unsigned char single_line; + unsigned char padding1, padding2, padding3; + float preferred_x; // this determines where the cursor up/down tries to seek to along x + StbUndoState undostate; +} STB_TexteditState; + + +//////////////////////////////////////////////////////////////////////// +// +// StbTexteditRow +// +// Result of layout query, used by stb_textedit to determine where +// the text in each row is. + +// result of layout query +typedef struct +{ + float x0,x1; // starting x location, end x location (allows for align=right, etc) + float baseline_y_delta; // position of baseline relative to previous row's baseline + float ymin,ymax; // height of row above and below baseline + int num_chars; +} StbTexteditRow; +#endif //INCLUDE_STB_TEXTEDIT_H + + +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//// +//// Implementation mode +//// +//// + + +// implementation isn't include-guarded, since it might have indirectly +// included just the "header" portion +#ifdef STB_TEXTEDIT_IMPLEMENTATION + +#include // memmove + + +///////////////////////////////////////////////////////////////////////////// +// +// Mouse input handling +// + +// traverse the layout to locate the nearest character to a display position +static int stb_text_locate_coord(STB_TEXTEDIT_STRING *str, float x, float y) +{ + StbTexteditRow r; + int n = STB_TEXTEDIT_STRINGLEN(str); + float base_y = 0, prev_x; + int i=0, k; + + if (y < 0) + return 0; + + r.x0 = r.x1 = 0; + r.ymin = r.ymax = 0; + r.num_chars = 0; + + // search rows to find one that straddles 'y' + while (i < n) { + STB_TEXTEDIT_LAYOUTROW(&r, str, i); + if (r.num_chars <= 0) + return n; + + if (y < base_y + r.ymax) + break; + + i += r.num_chars; + base_y += r.baseline_y_delta; + } + + // below all text, return 'after' last character + if (i >= n) + return n; + + // check if it's before the beginning of the line + if (x < r.x0) + return i; + + // check if it's before the end of the line + if (x < r.x1) { + // search characters in row for one that straddles 'x' + k = i; + prev_x = r.x0; + for (i=0; i < r.num_chars; ++i) { + float w = STB_TEXTEDIT_GETWIDTH(str, k, i); + if (x < prev_x+w) { + if (x < prev_x+w/2) + return k+i; + else + return k+i+1; + } + prev_x += w; + } + // shouldn't happen, but if it does, fall through to end-of-line case + } + + // if the last character is a newline, return that. otherwise return 'after' the last character + if (STB_TEXTEDIT_GETCHAR(str, i+r.num_chars-1) == STB_TEXTEDIT_NEWLINE) + return i+r.num_chars-1; + else + return i+r.num_chars; +} + +// API click: on mouse down, move the cursor to the clicked location, and reset the selection +static void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) +{ + state->cursor = stb_text_locate_coord(str, x, y); + state->select_start = state->cursor; + state->select_end = state->cursor; + state->has_preferred_x = 0; +} + +// API drag: on mouse drag, move the cursor and selection endpoint to the clicked location +static void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) +{ + int p = stb_text_locate_coord(str, x, y); + state->cursor = state->select_end = p; +} + +///////////////////////////////////////////////////////////////////////////// +// +// Keyboard input handling +// + +// forward declarations +static void stb_text_undo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state); +static void stb_text_redo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state); +static void stb_text_makeundo_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int length); +static void stb_text_makeundo_insert(STB_TexteditState *state, int where, int length); +static void stb_text_makeundo_replace(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int old_length, int new_length); + +typedef struct +{ + float x,y; // position of n'th character + float height; // height of line + int first_char, length; // first char of row, and length + int prev_first; // first char of previous row +} StbFindState; + +// find the x/y location of a character, and remember info about the previous row in +// case we get a move-up event (for page up, we'll have to rescan) +static void stb_textedit_find_charpos(StbFindState *find, STB_TEXTEDIT_STRING *str, int n, int single_line) +{ + StbTexteditRow r; + int prev_start = 0; + int z = STB_TEXTEDIT_STRINGLEN(str); + int i=0, first; + + if (n == z) { + // if it's at the end, then find the last line -- simpler than trying to + // explicitly handle this case in the regular code + if (single_line) { + STB_TEXTEDIT_LAYOUTROW(&r, str, 0); + find->y = 0; + find->first_char = 0; + find->length = z; + find->height = r.ymax - r.ymin; + find->x = r.x1; + } else { + find->y = 0; + find->x = 0; + find->height = 1; + while (i < z) { + STB_TEXTEDIT_LAYOUTROW(&r, str, i); + prev_start = i; + i += r.num_chars; + } + find->first_char = i; + find->length = 0; + find->prev_first = prev_start; + } + return; + } + + // search rows to find the one that straddles character n + find->y = 0; + + for(;;) { + STB_TEXTEDIT_LAYOUTROW(&r, str, i); + if (n < i + r.num_chars) + break; + prev_start = i; + i += r.num_chars; + find->y += r.baseline_y_delta; + } + + find->first_char = first = i; + find->length = r.num_chars; + find->height = r.ymax - r.ymin; + find->prev_first = prev_start; + + // now scan to find xpos + find->x = r.x0; + i = 0; + for (i=0; first+i < n; ++i) + find->x += STB_TEXTEDIT_GETWIDTH(str, first, i); +} + +#define STB_TEXT_HAS_SELECTION(s) ((s)->select_start != (s)->select_end) + +// make the selection/cursor state valid if client altered the string +static void stb_textedit_clamp(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + int n = STB_TEXTEDIT_STRINGLEN(str); + if (STB_TEXT_HAS_SELECTION(state)) { + if (state->select_start > n) state->select_start = n; + if (state->select_end > n) state->select_end = n; + // if clamping forced them to be equal, move the cursor to match + if (state->select_start == state->select_end) + state->cursor = state->select_start; + } + if (state->cursor > n) state->cursor = n; +} + +// delete characters while updating undo +static void stb_textedit_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int len) +{ + stb_text_makeundo_delete(str, state, where, len); + STB_TEXTEDIT_DELETECHARS(str, where, len); + state->has_preferred_x = 0; +} + +// delete the section +static void stb_textedit_delete_selection(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + stb_textedit_clamp(str, state); + if (STB_TEXT_HAS_SELECTION(state)) { + if (state->select_start < state->select_end) { + stb_textedit_delete(str, state, state->select_start, state->select_end - state->select_start); + state->select_end = state->cursor = state->select_start; + } else { + stb_textedit_delete(str, state, state->select_end, state->select_start - state->select_end); + state->select_start = state->cursor = state->select_end; + } + state->has_preferred_x = 0; + } +} + +// canoncialize the selection so start <= end +static void stb_textedit_sortselection(STB_TexteditState *state) +{ + if (state->select_end < state->select_start) { + int temp = state->select_end; + state->select_end = state->select_start; + state->select_start = temp; + } +} + +// move cursor to first character of selection +static void stb_textedit_move_to_first(STB_TexteditState *state) +{ + if (STB_TEXT_HAS_SELECTION(state)) { + stb_textedit_sortselection(state); + state->cursor = state->select_start; + state->select_end = state->select_start; + state->has_preferred_x = 0; + } +} + +// move cursor to last character of selection +static void stb_textedit_move_to_last(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + if (STB_TEXT_HAS_SELECTION(state)) { + stb_textedit_sortselection(state); + stb_textedit_clamp(str, state); + state->cursor = state->select_end; + state->select_start = state->select_end; + state->has_preferred_x = 0; + } +} + +#ifdef STB_TEXTEDIT_IS_SPACE +static int is_word_boundary( STB_TEXTEDIT_STRING *_str, int _idx ) +{ + return _idx > 0 ? (STB_TEXTEDIT_IS_SPACE( STB_TEXTEDIT_GETCHAR(_str,_idx-1) ) && !STB_TEXTEDIT_IS_SPACE( STB_TEXTEDIT_GETCHAR(_str, _idx) ) ) : 1; +} + +static int stb_textedit_move_to_word_previous( STB_TEXTEDIT_STRING *_str, STB_TexteditState *_state ) +{ + int c = _state->cursor - 1; + while( c >= 0 && !is_word_boundary( _str, c ) ) + --c; + + if( c < 0 ) + c = 0; + + return c; +} + +static int stb_textedit_move_to_word_next( STB_TEXTEDIT_STRING *_str, STB_TexteditState *_state ) +{ + const int len = STB_TEXTEDIT_STRINGLEN(_str); + int c = _state->cursor+1; + while( c < len && !is_word_boundary( _str, c ) ) + ++c; + + if( c > len ) + c = len; + + return c; +} +#endif + +// update selection and cursor to match each other +static void stb_textedit_prep_selection_at_cursor(STB_TexteditState *state) +{ + if (!STB_TEXT_HAS_SELECTION(state)) + state->select_start = state->select_end = state->cursor; + else + state->cursor = state->select_end; +} + +// API cut: delete selection +static int stb_textedit_cut(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + if (STB_TEXT_HAS_SELECTION(state)) { + stb_textedit_delete_selection(str,state); // implicity clamps + state->has_preferred_x = 0; + return 1; + } + return 0; +} + +// API paste: replace existing selection with passed-in text +static int stb_textedit_paste(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXTEDIT_CHARTYPE const *ctext, int len) +{ + STB_TEXTEDIT_CHARTYPE *text = (STB_TEXTEDIT_CHARTYPE *) ctext; + // if there's a selection, the paste should delete it + stb_textedit_clamp(str, state); + stb_textedit_delete_selection(str,state); + // try to insert the characters + if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, text, len)) { + stb_text_makeundo_insert(state, state->cursor, len); + state->cursor += len; + state->has_preferred_x = 0; + return 1; + } + // remove the undo since we didn't actually insert the characters + if (state->undostate.undo_point) + --state->undostate.undo_point; + return 0; +} + +// API key: process a keyboard input +static void stb_textedit_key(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int key) +{ +retry: + switch (key) { + default: { + int c = STB_TEXTEDIT_KEYTOTEXT(key); + if (c > 0) { + STB_TEXTEDIT_CHARTYPE ch = (STB_TEXTEDIT_CHARTYPE) c; + + // can't add newline in single-line mode + if (c == '\n' && state->single_line) + break; + + if (state->insert_mode && !STB_TEXT_HAS_SELECTION(state) && state->cursor < STB_TEXTEDIT_STRINGLEN(str)) { + stb_text_makeundo_replace(str, state, state->cursor, 1, 1); + STB_TEXTEDIT_DELETECHARS(str, state->cursor, 1); + if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, &ch, 1)) { + ++state->cursor; + state->has_preferred_x = 0; + } + } else { + stb_textedit_delete_selection(str,state); // implicity clamps + if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, &ch, 1)) { + stb_text_makeundo_insert(state, state->cursor, 1); + ++state->cursor; + state->has_preferred_x = 0; + } + } + } + break; + } + +#ifdef STB_TEXTEDIT_K_INSERT + case STB_TEXTEDIT_K_INSERT: + state->insert_mode = !state->insert_mode; + break; +#endif + + case STB_TEXTEDIT_K_UNDO: + stb_text_undo(str, state); + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_REDO: + stb_text_redo(str, state); + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_LEFT: + // if currently there's a selection, move cursor to start of selection + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_first(state); + else + if (state->cursor > 0) + --state->cursor; + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_RIGHT: + // if currently there's a selection, move cursor to end of selection + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_last(str, state); + else + ++state->cursor; + stb_textedit_clamp(str, state); + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_LEFT | STB_TEXTEDIT_K_SHIFT: + stb_textedit_clamp(str, state); + stb_textedit_prep_selection_at_cursor(state); + // move selection left + if (state->select_end > 0) + --state->select_end; + state->cursor = state->select_end; + state->has_preferred_x = 0; + break; + +#ifdef STB_TEXTEDIT_IS_SPACE + case STB_TEXTEDIT_K_WORDLEFT: + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_first(state); + else { + state->cursor = stb_textedit_move_to_word_previous(str, state); + stb_textedit_clamp( str, state ); + } + break; + + case STB_TEXTEDIT_K_WORDRIGHT: + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_last(str, state); + else { + state->cursor = stb_textedit_move_to_word_next(str, state); + stb_textedit_clamp( str, state ); + } + break; + + case STB_TEXTEDIT_K_WORDLEFT | STB_TEXTEDIT_K_SHIFT: + if( !STB_TEXT_HAS_SELECTION( state ) ) + stb_textedit_prep_selection_at_cursor(state); + + state->cursor = stb_textedit_move_to_word_previous(str, state); + state->select_end = state->cursor; + + stb_textedit_clamp( str, state ); + break; + + case STB_TEXTEDIT_K_WORDRIGHT | STB_TEXTEDIT_K_SHIFT: + if( !STB_TEXT_HAS_SELECTION( state ) ) + stb_textedit_prep_selection_at_cursor(state); + + state->cursor = stb_textedit_move_to_word_next(str, state); + state->select_end = state->cursor; + + stb_textedit_clamp( str, state ); + break; +#endif + + case STB_TEXTEDIT_K_RIGHT | STB_TEXTEDIT_K_SHIFT: + stb_textedit_prep_selection_at_cursor(state); + // move selection right + ++state->select_end; + stb_textedit_clamp(str, state); + state->cursor = state->select_end; + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_DOWN: + case STB_TEXTEDIT_K_DOWN | STB_TEXTEDIT_K_SHIFT: { + StbFindState find; + StbTexteditRow row; + int i, sel = (key & STB_TEXTEDIT_K_SHIFT) != 0; + + if (state->single_line) { + // on windows, up&down in single-line behave like left&right + key = STB_TEXTEDIT_K_RIGHT | (key & STB_TEXTEDIT_K_SHIFT); + goto retry; + } + + if (sel) + stb_textedit_prep_selection_at_cursor(state); + else if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_last(str,state); + + // compute current position of cursor point + stb_textedit_clamp(str, state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + + // now find character position down a row + if (find.length) { + float goal_x = state->has_preferred_x ? state->preferred_x : find.x; + float x; + int start = find.first_char + find.length; + state->cursor = start; + STB_TEXTEDIT_LAYOUTROW(&row, str, state->cursor); + x = row.x0; + for (i=0; i < row.num_chars; ++i) { + float dx = STB_TEXTEDIT_GETWIDTH(str, start, i); + #ifdef STB_TEXTEDIT_GETWIDTH_NEWLINE + if (dx == STB_TEXTEDIT_GETWIDTH_NEWLINE) + break; + #endif + x += dx; + if (x > goal_x) + break; + ++state->cursor; + } + stb_textedit_clamp(str, state); + + state->has_preferred_x = 1; + state->preferred_x = goal_x; + + if (sel) + state->select_end = state->cursor; + } + break; + } + + case STB_TEXTEDIT_K_UP: + case STB_TEXTEDIT_K_UP | STB_TEXTEDIT_K_SHIFT: { + StbFindState find; + StbTexteditRow row; + int i, sel = (key & STB_TEXTEDIT_K_SHIFT) != 0; + + if (state->single_line) { + // on windows, up&down become left&right + key = STB_TEXTEDIT_K_LEFT | (key & STB_TEXTEDIT_K_SHIFT); + goto retry; + } + + if (sel) + stb_textedit_prep_selection_at_cursor(state); + else if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_first(state); + + // compute current position of cursor point + stb_textedit_clamp(str, state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + + // can only go up if there's a previous row + if (find.prev_first != find.first_char) { + // now find character position up a row + float goal_x = state->has_preferred_x ? state->preferred_x : find.x; + float x; + state->cursor = find.prev_first; + STB_TEXTEDIT_LAYOUTROW(&row, str, state->cursor); + x = row.x0; + for (i=0; i < row.num_chars; ++i) { + float dx = STB_TEXTEDIT_GETWIDTH(str, find.prev_first, i); + #ifdef STB_TEXTEDIT_GETWIDTH_NEWLINE + if (dx == STB_TEXTEDIT_GETWIDTH_NEWLINE) + break; + #endif + x += dx; + if (x > goal_x) + break; + ++state->cursor; + } + stb_textedit_clamp(str, state); + + state->has_preferred_x = 1; + state->preferred_x = goal_x; + + if (sel) + state->select_end = state->cursor; + } + break; + } + + case STB_TEXTEDIT_K_DELETE: + case STB_TEXTEDIT_K_DELETE | STB_TEXTEDIT_K_SHIFT: + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_delete_selection(str, state); + else { + int n = STB_TEXTEDIT_STRINGLEN(str); + if (state->cursor < n) + stb_textedit_delete(str, state, state->cursor, 1); + } + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_BACKSPACE: + case STB_TEXTEDIT_K_BACKSPACE | STB_TEXTEDIT_K_SHIFT: + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_delete_selection(str, state); + else { + stb_textedit_clamp(str, state); + if (state->cursor > 0) { + stb_textedit_delete(str, state, state->cursor-1, 1); + --state->cursor; + } + } + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_TEXTSTART: + state->cursor = state->select_start = state->select_end = 0; + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_TEXTEND: + state->cursor = STB_TEXTEDIT_STRINGLEN(str); + state->select_start = state->select_end = 0; + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_TEXTSTART | STB_TEXTEDIT_K_SHIFT: + stb_textedit_prep_selection_at_cursor(state); + state->cursor = state->select_end = 0; + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_TEXTEND | STB_TEXTEDIT_K_SHIFT: + stb_textedit_prep_selection_at_cursor(state); + state->cursor = state->select_end = STB_TEXTEDIT_STRINGLEN(str); + state->has_preferred_x = 0; + break; + + + case STB_TEXTEDIT_K_LINESTART: { + StbFindState find; + stb_textedit_clamp(str, state); + stb_textedit_move_to_first(state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + state->cursor = find.first_char; + state->has_preferred_x = 0; + break; + } + + case STB_TEXTEDIT_K_LINEEND: { + StbFindState find; + stb_textedit_clamp(str, state); + stb_textedit_move_to_first(state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + state->cursor = find.first_char + find.length; + if (find.length > 0 && STB_TEXTEDIT_GETCHAR(str, state->cursor-1) == STB_TEXTEDIT_NEWLINE) + state->cursor--; + state->has_preferred_x = 0; + break; + } + + case STB_TEXTEDIT_K_LINESTART | STB_TEXTEDIT_K_SHIFT: { + StbFindState find; + stb_textedit_clamp(str, state); + stb_textedit_prep_selection_at_cursor(state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + state->cursor = state->select_end = find.first_char; + state->has_preferred_x = 0; + break; + } + + case STB_TEXTEDIT_K_LINEEND | STB_TEXTEDIT_K_SHIFT: { + StbFindState find; + stb_textedit_clamp(str, state); + stb_textedit_prep_selection_at_cursor(state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + state->cursor = state->select_end = find.first_char + find.length; + if (find.length > 0 && STB_TEXTEDIT_GETCHAR(str, state->cursor-1) == STB_TEXTEDIT_NEWLINE) + state->cursor = state->select_end = state->cursor - 1; + state->has_preferred_x = 0; + break; + } + +// @TODO: +// STB_TEXTEDIT_K_PGUP - move cursor up a page +// STB_TEXTEDIT_K_PGDOWN - move cursor down a page + } +} + +///////////////////////////////////////////////////////////////////////////// +// +// Undo processing +// +// @OPTIMIZE: the undo/redo buffer should be circular + +static void stb_textedit_flush_redo(StbUndoState *state) +{ + state->redo_point = STB_TEXTEDIT_UNDOSTATECOUNT; + state->redo_char_point = STB_TEXTEDIT_UNDOCHARCOUNT; +} + +// discard the oldest entry in the undo list +static void stb_textedit_discard_undo(StbUndoState *state) +{ + if (state->undo_point > 0) { + // if the 0th undo state has characters, clean those up + if (state->undo_rec[0].char_storage >= 0) { + int n = state->undo_rec[0].insert_length, i; + // delete n characters from all other records + state->undo_char_point = state->undo_char_point - (short) n; // vsnet05 + memmove(state->undo_char, state->undo_char + n, (size_t) ((size_t)state->undo_char_point*sizeof(STB_TEXTEDIT_CHARTYPE))); + for (i=0; i < state->undo_point; ++i) + if (state->undo_rec[i].char_storage >= 0) + state->undo_rec[i].char_storage = state->undo_rec[i].char_storage - (short) n; // vsnet05 // @OPTIMIZE: get rid of char_storage and infer it + } + --state->undo_point; + memmove(state->undo_rec, state->undo_rec+1, (size_t) ((size_t)state->undo_point*sizeof(state->undo_rec[0]))); + } +} + +// discard the oldest entry in the redo list--it's bad if this +// ever happens, but because undo & redo have to store the actual +// characters in different cases, the redo character buffer can +// fill up even though the undo buffer didn't +static void stb_textedit_discard_redo(StbUndoState *state) +{ + int k = STB_TEXTEDIT_UNDOSTATECOUNT-1; + + if (state->redo_point <= k) { + // if the k'th undo state has characters, clean those up + if (state->undo_rec[k].char_storage >= 0) { + int n = state->undo_rec[k].insert_length, i; + // delete n characters from all other records + state->redo_char_point = state->redo_char_point + (short) n; // vsnet05 + memmove(state->undo_char + state->redo_char_point, state->undo_char + state->redo_char_point-n, (size_t) ((size_t)(STB_TEXTEDIT_UNDOSTATECOUNT - state->redo_char_point)*sizeof(STB_TEXTEDIT_CHARTYPE))); + for (i=state->redo_point; i < k; ++i) + if (state->undo_rec[i].char_storage >= 0) + state->undo_rec[i].char_storage = state->undo_rec[i].char_storage + (short) n; // vsnet05 + } + ++state->redo_point; + memmove(state->undo_rec + state->redo_point-1, state->undo_rec + state->redo_point, (size_t) ((size_t)(STB_TEXTEDIT_UNDOSTATECOUNT - state->redo_point)*sizeof(state->undo_rec[0]))); + } +} + +static StbUndoRecord *stb_text_create_undo_record(StbUndoState *state, int numchars) +{ + // any time we create a new undo record, we discard redo + stb_textedit_flush_redo(state); + + // if we have no free records, we have to make room, by sliding the + // existing records down + if (state->undo_point == STB_TEXTEDIT_UNDOSTATECOUNT) + stb_textedit_discard_undo(state); + + // if the characters to store won't possibly fit in the buffer, we can't undo + if (numchars > STB_TEXTEDIT_UNDOCHARCOUNT) { + state->undo_point = 0; + state->undo_char_point = 0; + return NULL; + } + + // if we don't have enough free characters in the buffer, we have to make room + while (state->undo_char_point + numchars > STB_TEXTEDIT_UNDOCHARCOUNT) + stb_textedit_discard_undo(state); + + return &state->undo_rec[state->undo_point++]; +} + +static STB_TEXTEDIT_CHARTYPE *stb_text_createundo(StbUndoState *state, int pos, int insert_len, int delete_len) +{ + StbUndoRecord *r = stb_text_create_undo_record(state, insert_len); + if (r == NULL) + return NULL; + + r->where = pos; + r->insert_length = (short) insert_len; + r->delete_length = (short) delete_len; + + if (insert_len == 0) { + r->char_storage = -1; + return NULL; + } else { + r->char_storage = state->undo_char_point; + state->undo_char_point = state->undo_char_point + (short) insert_len; + return &state->undo_char[r->char_storage]; + } +} + +static void stb_text_undo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + StbUndoState *s = &state->undostate; + StbUndoRecord u, *r; + if (s->undo_point == 0) + return; + + // we need to do two things: apply the undo record, and create a redo record + u = s->undo_rec[s->undo_point-1]; + r = &s->undo_rec[s->redo_point-1]; + r->char_storage = -1; + + r->insert_length = u.delete_length; + r->delete_length = u.insert_length; + r->where = u.where; + + if (u.delete_length) { + // if the undo record says to delete characters, then the redo record will + // need to re-insert the characters that get deleted, so we need to store + // them. + + // there are three cases: + // there's enough room to store the characters + // characters stored for *redoing* don't leave room for redo + // characters stored for *undoing* don't leave room for redo + // if the last is true, we have to bail + + if (s->undo_char_point + u.delete_length >= STB_TEXTEDIT_UNDOCHARCOUNT) { + // the undo records take up too much character space; there's no space to store the redo characters + r->insert_length = 0; + } else { + int i; + + // there's definitely room to store the characters eventually + while (s->undo_char_point + u.delete_length > s->redo_char_point) { + // there's currently not enough room, so discard a redo record + stb_textedit_discard_redo(s); + // should never happen: + if (s->redo_point == STB_TEXTEDIT_UNDOSTATECOUNT) + return; + } + r = &s->undo_rec[s->redo_point-1]; + + r->char_storage = s->redo_char_point - u.delete_length; + s->redo_char_point = s->redo_char_point - (short) u.delete_length; + + // now save the characters + for (i=0; i < u.delete_length; ++i) + s->undo_char[r->char_storage + i] = STB_TEXTEDIT_GETCHAR(str, u.where + i); + } + + // now we can carry out the deletion + STB_TEXTEDIT_DELETECHARS(str, u.where, u.delete_length); + } + + // check type of recorded action: + if (u.insert_length) { + // easy case: was a deletion, so we need to insert n characters + STB_TEXTEDIT_INSERTCHARS(str, u.where, &s->undo_char[u.char_storage], u.insert_length); + s->undo_char_point -= u.insert_length; + } + + state->cursor = u.where + u.insert_length; + + s->undo_point--; + s->redo_point--; +} + +static void stb_text_redo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + StbUndoState *s = &state->undostate; + StbUndoRecord *u, r; + if (s->redo_point == STB_TEXTEDIT_UNDOSTATECOUNT) + return; + + // we need to do two things: apply the redo record, and create an undo record + u = &s->undo_rec[s->undo_point]; + r = s->undo_rec[s->redo_point]; + + // we KNOW there must be room for the undo record, because the redo record + // was derived from an undo record + + u->delete_length = r.insert_length; + u->insert_length = r.delete_length; + u->where = r.where; + u->char_storage = -1; + + if (r.delete_length) { + // the redo record requires us to delete characters, so the undo record + // needs to store the characters + + if (s->undo_char_point + u->insert_length > s->redo_char_point) { + u->insert_length = 0; + u->delete_length = 0; + } else { + int i; + u->char_storage = s->undo_char_point; + s->undo_char_point = s->undo_char_point + u->insert_length; + + // now save the characters + for (i=0; i < u->insert_length; ++i) + s->undo_char[u->char_storage + i] = STB_TEXTEDIT_GETCHAR(str, u->where + i); + } + + STB_TEXTEDIT_DELETECHARS(str, r.where, r.delete_length); + } + + if (r.insert_length) { + // easy case: need to insert n characters + STB_TEXTEDIT_INSERTCHARS(str, r.where, &s->undo_char[r.char_storage], r.insert_length); + } + + state->cursor = r.where + r.insert_length; + + s->undo_point++; + s->redo_point++; +} + +static void stb_text_makeundo_insert(STB_TexteditState *state, int where, int length) +{ + stb_text_createundo(&state->undostate, where, 0, length); +} + +static void stb_text_makeundo_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int length) +{ + int i; + STB_TEXTEDIT_CHARTYPE *p = stb_text_createundo(&state->undostate, where, length, 0); + if (p) { + for (i=0; i < length; ++i) + p[i] = STB_TEXTEDIT_GETCHAR(str, where+i); + } +} + +static void stb_text_makeundo_replace(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int old_length, int new_length) +{ + int i; + STB_TEXTEDIT_CHARTYPE *p = stb_text_createundo(&state->undostate, where, old_length, new_length); + if (p) { + for (i=0; i < old_length; ++i) + p[i] = STB_TEXTEDIT_GETCHAR(str, where+i); + } +} + +// reset the state to default +static void stb_textedit_clear_state(STB_TexteditState *state, int is_single_line) +{ + state->undostate.undo_point = 0; + state->undostate.undo_char_point = 0; + state->undostate.redo_point = STB_TEXTEDIT_UNDOSTATECOUNT; + state->undostate.redo_char_point = STB_TEXTEDIT_UNDOCHARCOUNT; + state->select_end = state->select_start = 0; + state->cursor = 0; + state->has_preferred_x = 0; + state->preferred_x = 0; + state->cursor_at_end_of_line = 0; + state->initialized = 1; + state->single_line = (unsigned char) is_single_line; + state->insert_mode = 0; +} + +// API initialize +static void stb_textedit_initialize_state(STB_TexteditState *state, int is_single_line) +{ + stb_textedit_clear_state(state, is_single_line); +} +#endif//STB_TEXTEDIT_IMPLEMENTATION diff --git a/samples/dual_layer/D3D11/src/imgui/stb_truetype.h b/samples/dual_layer/D3D11/src/imgui/stb_truetype.h new file mode 100644 index 0000000..3eba786 --- /dev/null +++ b/samples/dual_layer/D3D11/src/imgui/stb_truetype.h @@ -0,0 +1,3221 @@ +// stb_truetype.h - v1.07 - public domain +// authored from 2009-2015 by Sean Barrett / RAD Game Tools +// +// This library processes TrueType files: +// parse files +// extract glyph metrics +// extract glyph shapes +// render glyphs to one-channel bitmaps with antialiasing (box filter) +// +// Todo: +// non-MS cmaps +// crashproof on bad data +// hinting? (no longer patented) +// cleartype-style AA? +// optimize: use simple memory allocator for intermediates +// optimize: build edge-list directly from curves +// optimize: rasterize directly from curves? +// +// ADDITIONAL CONTRIBUTORS +// +// Mikko Mononen: compound shape support, more cmap formats +// Tor Andersson: kerning, subpixel rendering +// +// Bug/warning reports/fixes: +// "Zer" on mollyrocket (with fix) +// Cass Everitt +// stoiko (Haemimont Games) +// Brian Hook +// Walter van Niftrik +// David Gow +// David Given +// Ivan-Assen Ivanov +// Anthony Pesch +// Johan Duparc +// Hou Qiming +// Fabian "ryg" Giesen +// Martins Mozeiko +// Cap Petschulat +// Omar Cornut +// github:aloucks +// Peter LaValle +// Giumo X. Clanjor +// +// Misc other: +// Ryan Gordon +// +// VERSION HISTORY +// +// 1.07 (2015-08-01) allow PackFontRanges to accept arrays of sparse codepoints; +// variant PackFontRanges to pack and render in separate phases; +// fix stbtt_GetFontOFfsetForIndex (never worked for non-0 input?); +// fixed an assert() bug in the new rasterizer +// replace assert() with STBTT_assert() in new rasterizer +// 1.06 (2015-07-14) performance improvements (~35% faster on x86 and x64 on test machine) +// also more precise AA rasterizer, except if shapes overlap +// remove need for STBTT_sort +// 1.05 (2015-04-15) fix misplaced definitions for STBTT_STATIC +// 1.04 (2015-04-15) typo in example +// 1.03 (2015-04-12) STBTT_STATIC, fix memory leak in new packing, various fixes +// +// Full history can be found at the end of this file. +// +// LICENSE +// +// This software is in the public domain. Where that dedication is not +// recognized, you are granted a perpetual, irrevocable license to copy, +// distribute, and modify this file as you see fit. +// +// USAGE +// +// Include this file in whatever places neeed to refer to it. In ONE C/C++ +// file, write: +// #define STB_TRUETYPE_IMPLEMENTATION +// before the #include of this file. This expands out the actual +// implementation into that C/C++ file. +// +// To make the implementation private to the file that generates the implementation, +// #define STBTT_STATIC +// +// Simple 3D API (don't ship this, but it's fine for tools and quick start) +// stbtt_BakeFontBitmap() -- bake a font to a bitmap for use as texture +// stbtt_GetBakedQuad() -- compute quad to draw for a given char +// +// Improved 3D API (more shippable): +// #include "stb_rect_pack.h" -- optional, but you really want it +// stbtt_PackBegin() +// stbtt_PackSetOversample() -- for improved quality on small fonts +// stbtt_PackFontRanges() -- pack and renders +// stbtt_PackEnd() +// stbtt_GetPackedQuad() +// +// "Load" a font file from a memory buffer (you have to keep the buffer loaded) +// stbtt_InitFont() +// stbtt_GetFontOffsetForIndex() -- use for TTC font collections +// +// Render a unicode codepoint to a bitmap +// stbtt_GetCodepointBitmap() -- allocates and returns a bitmap +// stbtt_MakeCodepointBitmap() -- renders into bitmap you provide +// stbtt_GetCodepointBitmapBox() -- how big the bitmap must be +// +// Character advance/positioning +// stbtt_GetCodepointHMetrics() +// stbtt_GetFontVMetrics() +// stbtt_GetCodepointKernAdvance() +// +// Starting with version 1.06, the rasterizer was replaced with a new, +// faster and generally-more-precise rasterizer. The new rasterizer more +// accurately measures pixel coverage for anti-aliasing, except in the case +// where multiple shapes overlap, in which case it overestimates the AA pixel +// coverage. Thus, anti-aliasing of intersecting shapes may look wrong. If +// this turns out to be a problem, you can re-enable the old rasterizer with +// #define STBTT_RASTERIZER_VERSION 1 +// which will incur about a 15% speed hit. +// +// ADDITIONAL DOCUMENTATION +// +// Immediately after this block comment are a series of sample programs. +// +// After the sample programs is the "header file" section. This section +// includes documentation for each API function. +// +// Some important concepts to understand to use this library: +// +// Codepoint +// Characters are defined by unicode codepoints, e.g. 65 is +// uppercase A, 231 is lowercase c with a cedilla, 0x7e30 is +// the hiragana for "ma". +// +// Glyph +// A visual character shape (every codepoint is rendered as +// some glyph) +// +// Glyph index +// A font-specific integer ID representing a glyph +// +// Baseline +// Glyph shapes are defined relative to a baseline, which is the +// bottom of uppercase characters. Characters extend both above +// and below the baseline. +// +// Current Point +// As you draw text to the screen, you keep track of a "current point" +// which is the origin of each character. The current point's vertical +// position is the baseline. Even "baked fonts" use this model. +// +// Vertical Font Metrics +// The vertical qualities of the font, used to vertically position +// and space the characters. See docs for stbtt_GetFontVMetrics. +// +// Font Size in Pixels or Points +// The preferred interface for specifying font sizes in stb_truetype +// is to specify how tall the font's vertical extent should be in pixels. +// If that sounds good enough, skip the next paragraph. +// +// Most font APIs instead use "points", which are a common typographic +// measurement for describing font size, defined as 72 points per inch. +// stb_truetype provides a point API for compatibility. However, true +// "per inch" conventions don't make much sense on computer displays +// since they different monitors have different number of pixels per +// inch. For example, Windows traditionally uses a convention that +// there are 96 pixels per inch, thus making 'inch' measurements have +// nothing to do with inches, and thus effectively defining a point to +// be 1.333 pixels. Additionally, the TrueType font data provides +// an explicit scale factor to scale a given font's glyphs to points, +// but the author has observed that this scale factor is often wrong +// for non-commercial fonts, thus making fonts scaled in points +// according to the TrueType spec incoherently sized in practice. +// +// ADVANCED USAGE +// +// Quality: +// +// - Use the functions with Subpixel at the end to allow your characters +// to have subpixel positioning. Since the font is anti-aliased, not +// hinted, this is very import for quality. (This is not possible with +// baked fonts.) +// +// - Kerning is now supported, and if you're supporting subpixel rendering +// then kerning is worth using to give your text a polished look. +// +// Performance: +// +// - Convert Unicode codepoints to glyph indexes and operate on the glyphs; +// if you don't do this, stb_truetype is forced to do the conversion on +// every call. +// +// - There are a lot of memory allocations. We should modify it to take +// a temp buffer and allocate from the temp buffer (without freeing), +// should help performance a lot. +// +// NOTES +// +// The system uses the raw data found in the .ttf file without changing it +// and without building auxiliary data structures. This is a bit inefficient +// on little-endian systems (the data is big-endian), but assuming you're +// caching the bitmaps or glyph shapes this shouldn't be a big deal. +// +// It appears to be very hard to programmatically determine what font a +// given file is in a general way. I provide an API for this, but I don't +// recommend it. +// +// +// SOURCE STATISTICS (based on v0.6c, 2050 LOC) +// +// Documentation & header file 520 LOC \___ 660 LOC documentation +// Sample code 140 LOC / +// Truetype parsing 620 LOC ---- 620 LOC TrueType +// Software rasterization 240 LOC \ . +// Curve tesselation 120 LOC \__ 550 LOC Bitmap creation +// Bitmap management 100 LOC / +// Baked bitmap interface 70 LOC / +// Font name matching & access 150 LOC ---- 150 +// C runtime library abstraction 60 LOC ---- 60 +// +// +// PERFORMANCE MEASUREMENTS FOR 1.06: +// +// 32-bit 64-bit +// Previous release: 8.83 s 7.68 s +// Pool allocations: 7.72 s 6.34 s +// Inline sort : 6.54 s 5.65 s +// New rasterizer : 5.63 s 5.00 s + +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +//// +//// SAMPLE PROGRAMS +//// +// +// Incomplete text-in-3d-api example, which draws quads properly aligned to be lossless +// +#if 0 +#define STB_TRUETYPE_IMPLEMENTATION // force following include to generate implementation +#include "stb_truetype.h" + +unsigned char ttf_buffer[1<<20]; +unsigned char temp_bitmap[512*512]; + +stbtt_bakedchar cdata[96]; // ASCII 32..126 is 95 glyphs +GLuint ftex; + +void my_stbtt_initfont(void) +{ + fread(ttf_buffer, 1, 1<<20, fopen("c:/windows/fonts/times.ttf", "rb")); + stbtt_BakeFontBitmap(ttf_buffer,0, 32.0, temp_bitmap,512,512, 32,96, cdata); // no guarantee this fits! + // can free ttf_buffer at this point + glGenTextures(1, &ftex); + glBindTexture(GL_TEXTURE_2D, ftex); + glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 512,512, 0, GL_ALPHA, GL_UNSIGNED_BYTE, temp_bitmap); + // can free temp_bitmap at this point + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); +} + +void my_stbtt_print(float x, float y, char *text) +{ + // assume orthographic projection with units = screen pixels, origin at top left + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, ftex); + glBegin(GL_QUADS); + while (*text) { + if (*text >= 32 && *text < 128) { + stbtt_aligned_quad q; + stbtt_GetBakedQuad(cdata, 512,512, *text-32, &x,&y,&q,1);//1=opengl & d3d10+,0=d3d9 + glTexCoord2f(q.s0,q.t1); glVertex2f(q.x0,q.y0); + glTexCoord2f(q.s1,q.t1); glVertex2f(q.x1,q.y0); + glTexCoord2f(q.s1,q.t0); glVertex2f(q.x1,q.y1); + glTexCoord2f(q.s0,q.t0); glVertex2f(q.x0,q.y1); + } + ++text; + } + glEnd(); +} +#endif +// +// +////////////////////////////////////////////////////////////////////////////// +// +// Complete program (this compiles): get a single bitmap, print as ASCII art +// +#if 0 +#include +#define STB_TRUETYPE_IMPLEMENTATION // force following include to generate implementation +#include "stb_truetype.h" + +char ttf_buffer[1<<25]; + +int main(int argc, char **argv) +{ + stbtt_fontinfo font; + unsigned char *bitmap; + int w,h,i,j,c = (argc > 1 ? atoi(argv[1]) : 'a'), s = (argc > 2 ? atoi(argv[2]) : 20); + + fread(ttf_buffer, 1, 1<<25, fopen(argc > 3 ? argv[3] : "c:/windows/fonts/arialbd.ttf", "rb")); + + stbtt_InitFont(&font, ttf_buffer, stbtt_GetFontOffsetForIndex(ttf_buffer,0)); + bitmap = stbtt_GetCodepointBitmap(&font, 0,stbtt_ScaleForPixelHeight(&font, s), c, &w, &h, 0,0); + + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) + putchar(" .:ioVM@"[bitmap[j*w+i]>>5]); + putchar('\n'); + } + return 0; +} +#endif +// +// Output: +// +// .ii. +// @@@@@@. +// V@Mio@@o +// :i. V@V +// :oM@@M +// :@@@MM@M +// @@o o@M +// :@@. M@M +// @@@o@@@@ +// :M@@V:@@. +// +////////////////////////////////////////////////////////////////////////////// +// +// Complete program: print "Hello World!" banner, with bugs +// +#if 0 +char buffer[24<<20]; +unsigned char screen[20][79]; + +int main(int arg, char **argv) +{ + stbtt_fontinfo font; + int i,j,ascent,baseline,ch=0; + float scale, xpos=2; // leave a little padding in case the character extends left + char *text = "Heljo World!"; // intentionally misspelled to show 'lj' brokenness + + fread(buffer, 1, 1000000, fopen("c:/windows/fonts/arialbd.ttf", "rb")); + stbtt_InitFont(&font, buffer, 0); + + scale = stbtt_ScaleForPixelHeight(&font, 15); + stbtt_GetFontVMetrics(&font, &ascent,0,0); + baseline = (int) (ascent*scale); + + while (text[ch]) { + int advance,lsb,x0,y0,x1,y1; + float x_shift = xpos - (float) floor(xpos); + stbtt_GetCodepointHMetrics(&font, text[ch], &advance, &lsb); + stbtt_GetCodepointBitmapBoxSubpixel(&font, text[ch], scale,scale,x_shift,0, &x0,&y0,&x1,&y1); + stbtt_MakeCodepointBitmapSubpixel(&font, &screen[baseline + y0][(int) xpos + x0], x1-x0,y1-y0, 79, scale,scale,x_shift,0, text[ch]); + // note that this stomps the old data, so where character boxes overlap (e.g. 'lj') it's wrong + // because this API is really for baking character bitmaps into textures. if you want to render + // a sequence of characters, you really need to render each bitmap to a temp buffer, then + // "alpha blend" that into the working buffer + xpos += (advance * scale); + if (text[ch+1]) + xpos += scale*stbtt_GetCodepointKernAdvance(&font, text[ch],text[ch+1]); + ++ch; + } + + for (j=0; j < 20; ++j) { + for (i=0; i < 78; ++i) + putchar(" .:ioVM@"[screen[j][i]>>5]); + putchar('\n'); + } + + return 0; +} +#endif + + +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +//// +//// INTEGRATION WITH YOUR CODEBASE +//// +//// The following sections allow you to supply alternate definitions +//// of C library functions used by stb_truetype. + +#ifdef STB_TRUETYPE_IMPLEMENTATION + // #define your own (u)stbtt_int8/16/32 before including to override this + #ifndef stbtt_uint8 + typedef unsigned char stbtt_uint8; + typedef signed char stbtt_int8; + typedef unsigned short stbtt_uint16; + typedef signed short stbtt_int16; + typedef unsigned int stbtt_uint32; + typedef signed int stbtt_int32; + #endif + + typedef char stbtt__check_size32[sizeof(stbtt_int32)==4 ? 1 : -1]; + typedef char stbtt__check_size16[sizeof(stbtt_int16)==2 ? 1 : -1]; + + // #define your own STBTT_ifloor/STBTT_iceil() to avoid math.h + #ifndef STBTT_ifloor + #include + #define STBTT_ifloor(x) ((int) floor(x)) + #define STBTT_iceil(x) ((int) ceil(x)) + #endif + + #ifndef STBTT_sqrt + #include + #define STBTT_sqrt(x) sqrt(x) + #endif + + // #define your own functions "STBTT_malloc" / "STBTT_free" to avoid malloc.h + #ifndef STBTT_malloc + #include + #define STBTT_malloc(x,u) ((void)(u),malloc(x)) + #define STBTT_free(x,u) ((void)(u),free(x)) + #endif + + #ifndef STBTT_assert + #include + #define STBTT_assert(x) assert(x) + #endif + + #ifndef STBTT_strlen + #include + #define STBTT_strlen(x) strlen(x) + #endif + + #ifndef STBTT_memcpy + #include + #define STBTT_memcpy memcpy + #define STBTT_memset memset + #endif +#endif + +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +//// +//// INTERFACE +//// +//// + +#ifndef __STB_INCLUDE_STB_TRUETYPE_H__ +#define __STB_INCLUDE_STB_TRUETYPE_H__ + +#ifdef STBTT_STATIC +#define STBTT_DEF static +#else +#define STBTT_DEF extern +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// TEXTURE BAKING API +// +// If you use this API, you only have to call two functions ever. +// + +typedef struct +{ + unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap + float xoff,yoff,xadvance; +} stbtt_bakedchar; + +STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) + float pixel_height, // height of font in pixels + unsigned char *pixels, int pw, int ph, // bitmap to be filled in + int first_char, int num_chars, // characters to bake + stbtt_bakedchar *chardata); // you allocate this, it's num_chars long +// if return is positive, the first unused row of the bitmap +// if return is negative, returns the negative of the number of characters that fit +// if return is 0, no characters fit and no rows were used +// This uses a very crappy packing. + +typedef struct +{ + float x0,y0,s0,t0; // top-left + float x1,y1,s1,t1; // bottom-right +} stbtt_aligned_quad; + +STBTT_DEF void stbtt_GetBakedQuad(stbtt_bakedchar *chardata, int pw, int ph, // same data as above + int char_index, // character to display + float *xpos, float *ypos, // pointers to current position in screen pixel space + stbtt_aligned_quad *q, // output: quad to draw + int opengl_fillrule); // true if opengl fill rule; false if DX9 or earlier +// Call GetBakedQuad with char_index = 'character - first_char', and it +// creates the quad you need to draw and advances the current position. +// +// The coordinate system used assumes y increases downwards. +// +// Characters will extend both above and below the current position; +// see discussion of "BASELINE" above. +// +// It's inefficient; you might want to c&p it and optimize it. + + + +////////////////////////////////////////////////////////////////////////////// +// +// NEW TEXTURE BAKING API +// +// This provides options for packing multiple fonts into one atlas, not +// perfectly but better than nothing. + +typedef struct +{ + unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap + float xoff,yoff,xadvance; + float xoff2,yoff2; +} stbtt_packedchar; + +typedef struct stbtt_pack_context stbtt_pack_context; +typedef struct stbtt_fontinfo stbtt_fontinfo; +#ifndef STB_RECT_PACK_VERSION +typedef struct stbrp_rect stbrp_rect; +#endif + +STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, int width, int height, int stride_in_bytes, int padding, void *alloc_context); +// Initializes a packing context stored in the passed-in stbtt_pack_context. +// Future calls using this context will pack characters into the bitmap passed +// in here: a 1-channel bitmap that is weight x height. stride_in_bytes is +// the distance from one row to the next (or 0 to mean they are packed tightly +// together). "padding" is the amount of padding to leave between each +// character (normally you want '1' for bitmaps you'll use as textures with +// bilinear filtering). +// +// Returns 0 on failure, 1 on success. + +STBTT_DEF void stbtt_PackEnd (stbtt_pack_context *spc); +// Cleans up the packing context and frees all memory. + +#define STBTT_POINT_SIZE(x) (-(x)) + +STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, float font_size, + int first_unicode_char_in_range, int num_chars_in_range, stbtt_packedchar *chardata_for_range); +// Creates character bitmaps from the font_index'th font found in fontdata (use +// font_index=0 if you don't know what that is). It creates num_chars_in_range +// bitmaps for characters with unicode values starting at first_unicode_char_in_range +// and increasing. Data for how to render them is stored in chardata_for_range; +// pass these to stbtt_GetPackedQuad to get back renderable quads. +// +// font_size is the full height of the character from ascender to descender, +// as computed by stbtt_ScaleForPixelHeight. To use a point size as computed +// by stbtt_ScaleForMappingEmToPixels, wrap the point size in STBTT_POINT_SIZE() +// and pass that result as 'font_size': +// ..., 20 , ... // font max minus min y is 20 pixels tall +// ..., STBTT_POINT_SIZE(20), ... // 'M' is 20 pixels tall + +typedef struct +{ + float font_size; + int first_unicode_codepoint_in_range; // if non-zero, then the chars are continuous, and this is the first codepoint + int *array_of_unicode_codepoints; // if non-zero, then this is an array of unicode codepoints + int num_chars; + stbtt_packedchar *chardata_for_range; // output + unsigned char h_oversample, v_oversample; // don't set these, they're used internally +} stbtt_pack_range; + +STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, stbtt_pack_range *ranges, int num_ranges); +// Creates character bitmaps from multiple ranges of characters stored in +// ranges. This will usually create a better-packed bitmap than multiple +// calls to stbtt_PackFontRange. Note that you can call this multiple +// times within a single PackBegin/PackEnd. + +STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample); +// Oversampling a font increases the quality by allowing higher-quality subpixel +// positioning, and is especially valuable at smaller text sizes. +// +// This function sets the amount of oversampling for all following calls to +// stbtt_PackFontRange(s) or stbtt_PackFontRangesGatherRects for a given +// pack context. The default (no oversampling) is achieved by h_oversample=1 +// and v_oversample=1. The total number of pixels required is +// h_oversample*v_oversample larger than the default; for example, 2x2 +// oversampling requires 4x the storage of 1x1. For best results, render +// oversampled textures with bilinear filtering. Look at the readme in +// stb/tests/oversample for information about oversampled fonts +// +// To use with PackFontRangesGather etc., you must set it before calls +// call to PackFontRangesGatherRects. + +STBTT_DEF void stbtt_GetPackedQuad(stbtt_packedchar *chardata, int pw, int ph, // same data as above + int char_index, // character to display + float *xpos, float *ypos, // pointers to current position in screen pixel space + stbtt_aligned_quad *q, // output: quad to draw + int align_to_integer); + +STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); +STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, stbrp_rect *rects, int num_rects); +STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); +// Calling these functions in sequence is roughly equivalent to calling +// stbtt_PackFontRanges(). If you more control over the packing of multiple +// fonts, or if you want to pack custom data into a font texture, take a look +// at the source to of stbtt_PackFontRanges() and create a custom version +// using these functions, e.g. call GatherRects multiple times, +// building up a single array of rects, then call PackRects once, +// then call RenderIntoRects repeatedly. This may result in a +// better packing than calling PackFontRanges multiple times +// (or it may not). + +// this is an opaque structure that you shouldn't mess with which holds +// all the context needed from PackBegin to PackEnd. +struct stbtt_pack_context { + void *user_allocator_context; + void *pack_info; + int width; + int height; + int stride_in_bytes; + int padding; + unsigned int h_oversample, v_oversample; + unsigned char *pixels; + void *nodes; +}; + +////////////////////////////////////////////////////////////////////////////// +// +// FONT LOADING +// +// + +STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *data, int index); +// Each .ttf/.ttc file may have more than one font. Each font has a sequential +// index number starting from 0. Call this function to get the font offset for +// a given index; it returns -1 if the index is out of range. A regular .ttf +// file will only define one font and it always be at offset 0, so it will +// return '0' for index 0, and -1 for all other indices. You can just skip +// this step if you know it's that kind of font. + + +// The following structure is defined publically so you can declare one on +// the stack or as a global or etc, but you should treat it as opaque. +typedef struct stbtt_fontinfo +{ + void * userdata; + unsigned char * data; // pointer to .ttf file + int fontstart; // offset of start of font + + int numGlyphs; // number of glyphs, needed for range checking + + int loca,head,glyf,hhea,hmtx,kern; // table locations as offset from start of .ttf + int index_map; // a cmap mapping for our chosen character encoding + int indexToLocFormat; // format needed to map from glyph index to glyph +} stbtt_fontinfo; + +STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *data, int offset); +// Given an offset into the file that defines a font, this function builds +// the necessary cached info for the rest of the system. You must allocate +// the stbtt_fontinfo yourself, and stbtt_InitFont will fill it out. You don't +// need to do anything special to free it, because the contents are pure +// value data with no additional data structures. Returns 0 on failure. + + +////////////////////////////////////////////////////////////////////////////// +// +// CHARACTER TO GLYPH-INDEX CONVERSIOn + +STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint); +// If you're going to perform multiple operations on the same character +// and you want a speed-up, call this function with the character you're +// going to process, then use glyph-based functions instead of the +// codepoint-based functions. + + +////////////////////////////////////////////////////////////////////////////// +// +// CHARACTER PROPERTIES +// + +STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, float pixels); +// computes a scale factor to produce a font whose "height" is 'pixels' tall. +// Height is measured as the distance from the highest ascender to the lowest +// descender; in other words, it's equivalent to calling stbtt_GetFontVMetrics +// and computing: +// scale = pixels / (ascent - descent) +// so if you prefer to measure height by the ascent only, use a similar calculation. + +STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *info, float pixels); +// computes a scale factor to produce a font whose EM size is mapped to +// 'pixels' tall. This is probably what traditional APIs compute, but +// I'm not positive. + +STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *ascent, int *descent, int *lineGap); +// ascent is the coordinate above the baseline the font extends; descent +// is the coordinate below the baseline the font extends (i.e. it is typically negative) +// lineGap is the spacing between one row's descent and the next row's ascent... +// so you should advance the vertical position by "*ascent - *descent + *lineGap" +// these are expressed in unscaled coordinates, so you must multiply by +// the scale factor for a given size + +STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int *x0, int *y0, int *x1, int *y1); +// the bounding box around all possible characters + +STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint, int *advanceWidth, int *leftSideBearing); +// leftSideBearing is the offset from the current horizontal position to the left edge of the character +// advanceWidth is the offset from the current horizontal position to the next horizontal position +// these are expressed in unscaled coordinates + +STBTT_DEF int stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2); +// an additional amount to add to the 'advance' value between ch1 and ch2 + +STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1); +// Gets the bounding box of the visible part of the glyph, in unscaled coordinates + +STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int glyph_index, int *advanceWidth, int *leftSideBearing); +STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2); +STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1); +// as above, but takes one or more glyph indices for greater efficiency + + +////////////////////////////////////////////////////////////////////////////// +// +// GLYPH SHAPES (you probably don't need these, but they have to go before +// the bitmaps for C declaration-order reasons) +// + +#ifndef STBTT_vmove // you can predefine these to use different values (but why?) + enum { + STBTT_vmove=1, + STBTT_vline, + STBTT_vcurve + }; +#endif + +#ifndef stbtt_vertex // you can predefine this to use different values + // (we share this with other code at RAD) + #define stbtt_vertex_type short // can't use stbtt_int16 because that's not visible in the header file + typedef struct + { + stbtt_vertex_type x,y,cx,cy; + unsigned char type,padding; + } stbtt_vertex; +#endif + +STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_index); +// returns non-zero if nothing is drawn for this glyph + +STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codepoint, stbtt_vertex **vertices); +STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **vertices); +// returns # of vertices and fills *vertices with the pointer to them +// these are expressed in "unscaled" coordinates +// +// The shape is a series of countours. Each one starts with +// a STBTT_moveto, then consists of a series of mixed +// STBTT_lineto and STBTT_curveto segments. A lineto +// draws a line from previous endpoint to its x,y; a curveto +// draws a quadratic bezier from previous endpoint to +// its x,y, using cx,cy as the bezier control point. + +STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *vertices); +// frees the data allocated above + +////////////////////////////////////////////////////////////////////////////// +// +// BITMAP RENDERING +// + +STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata); +// frees the bitmap allocated below + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff); +// allocates a large-enough single-channel 8bpp bitmap and renders the +// specified character/glyph at the specified scale into it, with +// antialiasing. 0 is no coverage (transparent), 255 is fully covered (opaque). +// *width & *height are filled out with the width & height of the bitmap, +// which is stored left-to-right, top-to-bottom. +// +// xoff/yoff are the offset it pixel space from the glyph origin to the top-left of the bitmap + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff); +// the same as stbtt_GetCodepoitnBitmap, but you can specify a subpixel +// shift for the character + +STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint); +// the same as stbtt_GetCodepointBitmap, but you pass in storage for the bitmap +// in the form of 'output', with row spacing of 'out_stride' bytes. the bitmap +// is clipped to out_w/out_h bytes. Call stbtt_GetCodepointBitmapBox to get the +// width and height and positioning info for it first. + +STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint); +// same as stbtt_MakeCodepointBitmap, but you can specify a subpixel +// shift for the character + +STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1); +// get the bbox of the bitmap centered around the glyph origin; so the +// bitmap width is ix1-ix0, height is iy1-iy0, and location to place +// the bitmap top left is (leftSideBearing*scale,iy0). +// (Note that the bitmap uses y-increases-down, but the shape uses +// y-increases-up, so CodepointBitmapBox and CodepointBox are inverted.) + +STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1); +// same as stbtt_GetCodepointBitmapBox, but you can specify a subpixel +// shift for the character + +// the following functions are equivalent to the above functions, but operate +// on glyph indices instead of Unicode codepoints (for efficiency) +STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff); +STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int glyph, int *width, int *height, int *xoff, int *yoff); +STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int glyph); +STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int glyph); +STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1); +STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y,float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1); + + +// @TODO: don't expose this structure +typedef struct +{ + int w,h,stride; + unsigned char *pixels; +} stbtt__bitmap; + +STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, float flatness_in_pixels, stbtt_vertex *vertices, int num_verts, float scale_x, float scale_y, float shift_x, float shift_y, int x_off, int y_off, int invert, void *userdata); + +////////////////////////////////////////////////////////////////////////////// +// +// Finding the right font... +// +// You should really just solve this offline, keep your own tables +// of what font is what, and don't try to get it out of the .ttf file. +// That's because getting it out of the .ttf file is really hard, because +// the names in the file can appear in many possible encodings, in many +// possible languages, and e.g. if you need a case-insensitive comparison, +// the details of that depend on the encoding & language in a complex way +// (actually underspecified in truetype, but also gigantic). +// +// But you can use the provided functions in two possible ways: +// stbtt_FindMatchingFont() will use *case-sensitive* comparisons on +// unicode-encoded names to try to find the font you want; +// you can run this before calling stbtt_InitFont() +// +// stbtt_GetFontNameString() lets you get any of the various strings +// from the file yourself and do your own comparisons on them. +// You have to have called stbtt_InitFont() first. + + +STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *fontdata, const char *name, int flags); +// returns the offset (not index) of the font that matches, or -1 if none +// if you use STBTT_MACSTYLE_DONTCARE, use a font name like "Arial Bold". +// if you use any other flag, use a font name like "Arial"; this checks +// the 'macStyle' header field; i don't know if fonts set this consistently +#define STBTT_MACSTYLE_DONTCARE 0 +#define STBTT_MACSTYLE_BOLD 1 +#define STBTT_MACSTYLE_ITALIC 2 +#define STBTT_MACSTYLE_UNDERSCORE 4 +#define STBTT_MACSTYLE_NONE 8 // <= not same as 0, this makes us check the bitfield is 0 + +STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2); +// returns 1/0 whether the first string interpreted as utf8 is identical to +// the second string interpreted as big-endian utf16... useful for strings from next func + +STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font, int *length, int platformID, int encodingID, int languageID, int nameID); +// returns the string (which may be big-endian double byte, e.g. for unicode) +// and puts the length in bytes in *length. +// +// some of the values for the IDs are below; for more see the truetype spec: +// http://developer.apple.com/textfonts/TTRefMan/RM06/Chap6name.html +// http://www.microsoft.com/typography/otspec/name.htm + +enum { // platformID + STBTT_PLATFORM_ID_UNICODE =0, + STBTT_PLATFORM_ID_MAC =1, + STBTT_PLATFORM_ID_ISO =2, + STBTT_PLATFORM_ID_MICROSOFT =3 +}; + +enum { // encodingID for STBTT_PLATFORM_ID_UNICODE + STBTT_UNICODE_EID_UNICODE_1_0 =0, + STBTT_UNICODE_EID_UNICODE_1_1 =1, + STBTT_UNICODE_EID_ISO_10646 =2, + STBTT_UNICODE_EID_UNICODE_2_0_BMP=3, + STBTT_UNICODE_EID_UNICODE_2_0_FULL=4 +}; + +enum { // encodingID for STBTT_PLATFORM_ID_MICROSOFT + STBTT_MS_EID_SYMBOL =0, + STBTT_MS_EID_UNICODE_BMP =1, + STBTT_MS_EID_SHIFTJIS =2, + STBTT_MS_EID_UNICODE_FULL =10 +}; + +enum { // encodingID for STBTT_PLATFORM_ID_MAC; same as Script Manager codes + STBTT_MAC_EID_ROMAN =0, STBTT_MAC_EID_ARABIC =4, + STBTT_MAC_EID_JAPANESE =1, STBTT_MAC_EID_HEBREW =5, + STBTT_MAC_EID_CHINESE_TRAD =2, STBTT_MAC_EID_GREEK =6, + STBTT_MAC_EID_KOREAN =3, STBTT_MAC_EID_RUSSIAN =7 +}; + +enum { // languageID for STBTT_PLATFORM_ID_MICROSOFT; same as LCID... + // problematic because there are e.g. 16 english LCIDs and 16 arabic LCIDs + STBTT_MS_LANG_ENGLISH =0x0409, STBTT_MS_LANG_ITALIAN =0x0410, + STBTT_MS_LANG_CHINESE =0x0804, STBTT_MS_LANG_JAPANESE =0x0411, + STBTT_MS_LANG_DUTCH =0x0413, STBTT_MS_LANG_KOREAN =0x0412, + STBTT_MS_LANG_FRENCH =0x040c, STBTT_MS_LANG_RUSSIAN =0x0419, + STBTT_MS_LANG_GERMAN =0x0407, STBTT_MS_LANG_SPANISH =0x0409, + STBTT_MS_LANG_HEBREW =0x040d, STBTT_MS_LANG_SWEDISH =0x041D +}; + +enum { // languageID for STBTT_PLATFORM_ID_MAC + STBTT_MAC_LANG_ENGLISH =0 , STBTT_MAC_LANG_JAPANESE =11, + STBTT_MAC_LANG_ARABIC =12, STBTT_MAC_LANG_KOREAN =23, + STBTT_MAC_LANG_DUTCH =4 , STBTT_MAC_LANG_RUSSIAN =32, + STBTT_MAC_LANG_FRENCH =1 , STBTT_MAC_LANG_SPANISH =6 , + STBTT_MAC_LANG_GERMAN =2 , STBTT_MAC_LANG_SWEDISH =5 , + STBTT_MAC_LANG_HEBREW =10, STBTT_MAC_LANG_CHINESE_SIMPLIFIED =33, + STBTT_MAC_LANG_ITALIAN =3 , STBTT_MAC_LANG_CHINESE_TRAD =19 +}; + +#ifdef __cplusplus +} +#endif + +#endif // __STB_INCLUDE_STB_TRUETYPE_H__ + +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +//// +//// IMPLEMENTATION +//// +//// + +#ifdef STB_TRUETYPE_IMPLEMENTATION + +#ifndef STBTT_MAX_OVERSAMPLE +#define STBTT_MAX_OVERSAMPLE 8 +#endif + +#if STBTT_MAX_OVERSAMPLE > 255 +#error "STBTT_MAX_OVERSAMPLE cannot be > 255" +#endif + +typedef int stbtt__test_oversample_pow2[(STBTT_MAX_OVERSAMPLE & (STBTT_MAX_OVERSAMPLE-1)) == 0 ? 1 : -1]; + +#ifndef STBTT_RASTERIZER_VERSION +#define STBTT_RASTERIZER_VERSION 2 +#endif + +////////////////////////////////////////////////////////////////////////// +// +// accessors to parse data from file +// + +// on platforms that don't allow misaligned reads, if we want to allow +// truetype fonts that aren't padded to alignment, define ALLOW_UNALIGNED_TRUETYPE + +#define ttBYTE(p) (* (stbtt_uint8 *) (p)) +#define ttCHAR(p) (* (stbtt_int8 *) (p)) +#define ttFixed(p) ttLONG(p) + +#if defined(STB_TRUETYPE_BIGENDIAN) && !defined(ALLOW_UNALIGNED_TRUETYPE) + + #define ttUSHORT(p) (* (stbtt_uint16 *) (p)) + #define ttSHORT(p) (* (stbtt_int16 *) (p)) + #define ttULONG(p) (* (stbtt_uint32 *) (p)) + #define ttLONG(p) (* (stbtt_int32 *) (p)) + +#else + + static stbtt_uint16 ttUSHORT(const stbtt_uint8 *p) { return p[0]*256 + p[1]; } + static stbtt_int16 ttSHORT(const stbtt_uint8 *p) { return p[0]*256 + p[1]; } + static stbtt_uint32 ttULONG(const stbtt_uint8 *p) { return (p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]; } + static stbtt_int32 ttLONG(const stbtt_uint8 *p) { return (p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]; } + +#endif + +#define stbtt_tag4(p,c0,c1,c2,c3) ((p)[0] == (c0) && (p)[1] == (c1) && (p)[2] == (c2) && (p)[3] == (c3)) +#define stbtt_tag(p,str) stbtt_tag4(p,str[0],str[1],str[2],str[3]) + +static int stbtt__isfont(const stbtt_uint8 *font) +{ + // check the version number + if (stbtt_tag4(font, '1',0,0,0)) return 1; // TrueType 1 + if (stbtt_tag(font, "typ1")) return 1; // TrueType with type 1 font -- we don't support this! + if (stbtt_tag(font, "OTTO")) return 1; // OpenType with CFF + if (stbtt_tag4(font, 0,1,0,0)) return 1; // OpenType 1.0 + return 0; +} + +// @OPTIMIZE: binary search +static stbtt_uint32 stbtt__find_table(stbtt_uint8 *data, stbtt_uint32 fontstart, const char *tag) +{ + stbtt_int32 num_tables = ttUSHORT(data+fontstart+4); + stbtt_uint32 tabledir = fontstart + 12; + stbtt_int32 i; + for (i=0; i < num_tables; ++i) { + stbtt_uint32 loc = tabledir + 16*i; + if (stbtt_tag(data+loc+0, tag)) + return ttULONG(data+loc+8); + } + return 0; +} + +STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *font_collection, int index) +{ + // if it's just a font, there's only one valid index + if (stbtt__isfont(font_collection)) + return index == 0 ? 0 : -1; + + // check if it's a TTC + if (stbtt_tag(font_collection, "ttcf")) { + // version 1? + if (ttULONG(font_collection+4) == 0x00010000 || ttULONG(font_collection+4) == 0x00020000) { + stbtt_int32 n = ttLONG(font_collection+8); + if (index >= n) + return -1; + return ttULONG(font_collection+12+index*4); + } + } + return -1; +} + +STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *data2, int fontstart) +{ + stbtt_uint8 *data = (stbtt_uint8 *) data2; + stbtt_uint32 cmap, t; + stbtt_int32 i,numTables; + + info->data = data; + info->fontstart = fontstart; + + cmap = stbtt__find_table(data, fontstart, "cmap"); // required + info->loca = stbtt__find_table(data, fontstart, "loca"); // required + info->head = stbtt__find_table(data, fontstart, "head"); // required + info->glyf = stbtt__find_table(data, fontstart, "glyf"); // required + info->hhea = stbtt__find_table(data, fontstart, "hhea"); // required + info->hmtx = stbtt__find_table(data, fontstart, "hmtx"); // required + info->kern = stbtt__find_table(data, fontstart, "kern"); // not required + if (!cmap || !info->loca || !info->head || !info->glyf || !info->hhea || !info->hmtx) + return 0; + + t = stbtt__find_table(data, fontstart, "maxp"); + if (t) + info->numGlyphs = ttUSHORT(data+t+4); + else + info->numGlyphs = 0xffff; + + // find a cmap encoding table we understand *now* to avoid searching + // later. (todo: could make this installable) + // the same regardless of glyph. + numTables = ttUSHORT(data + cmap + 2); + info->index_map = 0; + for (i=0; i < numTables; ++i) { + stbtt_uint32 encoding_record = cmap + 4 + 8 * i; + // find an encoding we understand: + switch(ttUSHORT(data+encoding_record)) { + case STBTT_PLATFORM_ID_MICROSOFT: + switch (ttUSHORT(data+encoding_record+2)) { + case STBTT_MS_EID_UNICODE_BMP: + case STBTT_MS_EID_UNICODE_FULL: + // MS/Unicode + info->index_map = cmap + ttULONG(data+encoding_record+4); + break; + } + break; + case STBTT_PLATFORM_ID_UNICODE: + // Mac/iOS has these + // all the encodingIDs are unicode, so we don't bother to check it + info->index_map = cmap + ttULONG(data+encoding_record+4); + break; + } + } + if (info->index_map == 0) + return 0; + + info->indexToLocFormat = ttUSHORT(data+info->head + 50); + return 1; +} + +STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint) +{ + stbtt_uint8 *data = info->data; + stbtt_uint32 index_map = info->index_map; + + stbtt_uint16 format = ttUSHORT(data + index_map + 0); + if (format == 0) { // apple byte encoding + stbtt_int32 bytes = ttUSHORT(data + index_map + 2); + if (unicode_codepoint < bytes-6) + return ttBYTE(data + index_map + 6 + unicode_codepoint); + return 0; + } else if (format == 6) { + stbtt_uint32 first = ttUSHORT(data + index_map + 6); + stbtt_uint32 count = ttUSHORT(data + index_map + 8); + if ((stbtt_uint32) unicode_codepoint >= first && (stbtt_uint32) unicode_codepoint < first+count) + return ttUSHORT(data + index_map + 10 + (unicode_codepoint - first)*2); + return 0; + } else if (format == 2) { + STBTT_assert(0); // @TODO: high-byte mapping for japanese/chinese/korean + return 0; + } else if (format == 4) { // standard mapping for windows fonts: binary search collection of ranges + stbtt_uint16 segcount = ttUSHORT(data+index_map+6) >> 1; + stbtt_uint16 searchRange = ttUSHORT(data+index_map+8) >> 1; + stbtt_uint16 entrySelector = ttUSHORT(data+index_map+10); + stbtt_uint16 rangeShift = ttUSHORT(data+index_map+12) >> 1; + + // do a binary search of the segments + stbtt_uint32 endCount = index_map + 14; + stbtt_uint32 search = endCount; + + if (unicode_codepoint > 0xffff) + return 0; + + // they lie from endCount .. endCount + segCount + // but searchRange is the nearest power of two, so... + if (unicode_codepoint >= ttUSHORT(data + search + rangeShift*2)) + search += rangeShift*2; + + // now decrement to bias correctly to find smallest + search -= 2; + while (entrySelector) { + stbtt_uint16 end; + searchRange >>= 1; + end = ttUSHORT(data + search + searchRange*2); + if (unicode_codepoint > end) + search += searchRange*2; + --entrySelector; + } + search += 2; + + { + stbtt_uint16 offset, start; + stbtt_uint16 item = (stbtt_uint16) ((search - endCount) >> 1); + + STBTT_assert(unicode_codepoint <= ttUSHORT(data + endCount + 2*item)); + start = ttUSHORT(data + index_map + 14 + segcount*2 + 2 + 2*item); + if (unicode_codepoint < start) + return 0; + + offset = ttUSHORT(data + index_map + 14 + segcount*6 + 2 + 2*item); + if (offset == 0) + return (stbtt_uint16) (unicode_codepoint + ttSHORT(data + index_map + 14 + segcount*4 + 2 + 2*item)); + + return ttUSHORT(data + offset + (unicode_codepoint-start)*2 + index_map + 14 + segcount*6 + 2 + 2*item); + } + } else if (format == 12 || format == 13) { + stbtt_uint32 ngroups = ttULONG(data+index_map+12); + stbtt_int32 low,high; + low = 0; high = (stbtt_int32)ngroups; + // Binary search the right group. + while (low < high) { + stbtt_int32 mid = low + ((high-low) >> 1); // rounds down, so low <= mid < high + stbtt_uint32 start_char = ttULONG(data+index_map+16+mid*12); + stbtt_uint32 end_char = ttULONG(data+index_map+16+mid*12+4); + if ((stbtt_uint32) unicode_codepoint < start_char) + high = mid; + else if ((stbtt_uint32) unicode_codepoint > end_char) + low = mid+1; + else { + stbtt_uint32 start_glyph = ttULONG(data+index_map+16+mid*12+8); + if (format == 12) + return start_glyph + unicode_codepoint-start_char; + else // format == 13 + return start_glyph; + } + } + return 0; // not found + } + // @TODO + STBTT_assert(0); + return 0; +} + +STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codepoint, stbtt_vertex **vertices) +{ + return stbtt_GetGlyphShape(info, stbtt_FindGlyphIndex(info, unicode_codepoint), vertices); +} + +static void stbtt_setvertex(stbtt_vertex *v, stbtt_uint8 type, stbtt_int32 x, stbtt_int32 y, stbtt_int32 cx, stbtt_int32 cy) +{ + v->type = type; + v->x = (stbtt_int16) x; + v->y = (stbtt_int16) y; + v->cx = (stbtt_int16) cx; + v->cy = (stbtt_int16) cy; +} + +static int stbtt__GetGlyfOffset(const stbtt_fontinfo *info, int glyph_index) +{ + int g1,g2; + + if (glyph_index >= info->numGlyphs) return -1; // glyph index out of range + if (info->indexToLocFormat >= 2) return -1; // unknown index->glyph map format + + if (info->indexToLocFormat == 0) { + g1 = info->glyf + ttUSHORT(info->data + info->loca + glyph_index * 2) * 2; + g2 = info->glyf + ttUSHORT(info->data + info->loca + glyph_index * 2 + 2) * 2; + } else { + g1 = info->glyf + ttULONG (info->data + info->loca + glyph_index * 4); + g2 = info->glyf + ttULONG (info->data + info->loca + glyph_index * 4 + 4); + } + + return g1==g2 ? -1 : g1; // if length is 0, return -1 +} + +STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1) +{ + int g = stbtt__GetGlyfOffset(info, glyph_index); + if (g < 0) return 0; + + if (x0) *x0 = ttSHORT(info->data + g + 2); + if (y0) *y0 = ttSHORT(info->data + g + 4); + if (x1) *x1 = ttSHORT(info->data + g + 6); + if (y1) *y1 = ttSHORT(info->data + g + 8); + return 1; +} + +STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1) +{ + return stbtt_GetGlyphBox(info, stbtt_FindGlyphIndex(info,codepoint), x0,y0,x1,y1); +} + +STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_index) +{ + stbtt_int16 numberOfContours; + int g = stbtt__GetGlyfOffset(info, glyph_index); + if (g < 0) return 1; + numberOfContours = ttSHORT(info->data + g); + return numberOfContours == 0; +} + +static int stbtt__close_shape(stbtt_vertex *vertices, int num_vertices, int was_off, int start_off, + stbtt_int32 sx, stbtt_int32 sy, stbtt_int32 scx, stbtt_int32 scy, stbtt_int32 cx, stbtt_int32 cy) +{ + if (start_off) { + if (was_off) + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, (cx+scx)>>1, (cy+scy)>>1, cx,cy); + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, sx,sy,scx,scy); + } else { + if (was_off) + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve,sx,sy,cx,cy); + else + stbtt_setvertex(&vertices[num_vertices++], STBTT_vline,sx,sy,0,0); + } + return num_vertices; +} + +STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **pvertices) +{ + stbtt_int16 numberOfContours; + stbtt_uint8 *endPtsOfContours; + stbtt_uint8 *data = info->data; + stbtt_vertex *vertices=0; + int num_vertices=0; + int g = stbtt__GetGlyfOffset(info, glyph_index); + + *pvertices = NULL; + + if (g < 0) return 0; + + numberOfContours = ttSHORT(data + g); + + if (numberOfContours > 0) { + stbtt_uint8 flags=0,flagcount; + stbtt_int32 ins, i,j=0,m,n, next_move, was_off=0, off, start_off=0; + stbtt_int32 x,y,cx,cy,sx,sy, scx,scy; + stbtt_uint8 *points; + endPtsOfContours = (data + g + 10); + ins = ttUSHORT(data + g + 10 + numberOfContours * 2); + points = data + g + 10 + numberOfContours * 2 + 2 + ins; + + n = 1+ttUSHORT(endPtsOfContours + numberOfContours*2-2); + + m = n + 2*numberOfContours; // a loose bound on how many vertices we might need + vertices = (stbtt_vertex *) STBTT_malloc(m * sizeof(vertices[0]), info->userdata); + if (vertices == 0) + return 0; + + next_move = 0; + flagcount=0; + + // in first pass, we load uninterpreted data into the allocated array + // above, shifted to the end of the array so we won't overwrite it when + // we create our final data starting from the front + + off = m - n; // starting offset for uninterpreted data, regardless of how m ends up being calculated + + // first load flags + + for (i=0; i < n; ++i) { + if (flagcount == 0) { + flags = *points++; + if (flags & 8) + flagcount = *points++; + } else + --flagcount; + vertices[off+i].type = flags; + } + + // now load x coordinates + x=0; + for (i=0; i < n; ++i) { + flags = vertices[off+i].type; + if (flags & 2) { + stbtt_int16 dx = *points++; + x += (flags & 16) ? dx : -dx; // ??? + } else { + if (!(flags & 16)) { + x = x + (stbtt_int16) (points[0]*256 + points[1]); + points += 2; + } + } + vertices[off+i].x = (stbtt_int16) x; + } + + // now load y coordinates + y=0; + for (i=0; i < n; ++i) { + flags = vertices[off+i].type; + if (flags & 4) { + stbtt_int16 dy = *points++; + y += (flags & 32) ? dy : -dy; // ??? + } else { + if (!(flags & 32)) { + y = y + (stbtt_int16) (points[0]*256 + points[1]); + points += 2; + } + } + vertices[off+i].y = (stbtt_int16) y; + } + + // now convert them to our format + num_vertices=0; + sx = sy = cx = cy = scx = scy = 0; + for (i=0; i < n; ++i) { + flags = vertices[off+i].type; + x = (stbtt_int16) vertices[off+i].x; + y = (stbtt_int16) vertices[off+i].y; + + if (next_move == i) { + if (i != 0) + num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); + + // now start the new one + start_off = !(flags & 1); + if (start_off) { + // if we start off with an off-curve point, then when we need to find a point on the curve + // where we can start, and we need to save some state for when we wraparound. + scx = x; + scy = y; + if (!(vertices[off+i+1].type & 1)) { + // next point is also a curve point, so interpolate an on-point curve + sx = (x + (stbtt_int32) vertices[off+i+1].x) >> 1; + sy = (y + (stbtt_int32) vertices[off+i+1].y) >> 1; + } else { + // otherwise just use the next point as our start point + sx = (stbtt_int32) vertices[off+i+1].x; + sy = (stbtt_int32) vertices[off+i+1].y; + ++i; // we're using point i+1 as the starting point, so skip it + } + } else { + sx = x; + sy = y; + } + stbtt_setvertex(&vertices[num_vertices++], STBTT_vmove,sx,sy,0,0); + was_off = 0; + next_move = 1 + ttUSHORT(endPtsOfContours+j*2); + ++j; + } else { + if (!(flags & 1)) { // if it's a curve + if (was_off) // two off-curve control points in a row means interpolate an on-curve midpoint + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, (cx+x)>>1, (cy+y)>>1, cx, cy); + cx = x; + cy = y; + was_off = 1; + } else { + if (was_off) + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, x,y, cx, cy); + else + stbtt_setvertex(&vertices[num_vertices++], STBTT_vline, x,y,0,0); + was_off = 0; + } + } + } + num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); + } else if (numberOfContours == -1) { + // Compound shapes. + int more = 1; + stbtt_uint8 *comp = data + g + 10; + num_vertices = 0; + vertices = 0; + while (more) { + stbtt_uint16 flags, gidx; + int comp_num_verts = 0, i; + stbtt_vertex *comp_verts = 0, *tmp = 0; + float mtx[6] = {1,0,0,1,0,0}, m, n; + + flags = ttSHORT(comp); comp+=2; + gidx = ttSHORT(comp); comp+=2; + + if (flags & 2) { // XY values + if (flags & 1) { // shorts + mtx[4] = ttSHORT(comp); comp+=2; + mtx[5] = ttSHORT(comp); comp+=2; + } else { + mtx[4] = ttCHAR(comp); comp+=1; + mtx[5] = ttCHAR(comp); comp+=1; + } + } + else { + // @TODO handle matching point + STBTT_assert(0); + } + if (flags & (1<<3)) { // WE_HAVE_A_SCALE + mtx[0] = mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[1] = mtx[2] = 0; + } else if (flags & (1<<6)) { // WE_HAVE_AN_X_AND_YSCALE + mtx[0] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[1] = mtx[2] = 0; + mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; + } else if (flags & (1<<7)) { // WE_HAVE_A_TWO_BY_TWO + mtx[0] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[1] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[2] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; + } + + // Find transformation scales. + m = (float) STBTT_sqrt(mtx[0]*mtx[0] + mtx[1]*mtx[1]); + n = (float) STBTT_sqrt(mtx[2]*mtx[2] + mtx[3]*mtx[3]); + + // Get indexed glyph. + comp_num_verts = stbtt_GetGlyphShape(info, gidx, &comp_verts); + if (comp_num_verts > 0) { + // Transform vertices. + for (i = 0; i < comp_num_verts; ++i) { + stbtt_vertex* v = &comp_verts[i]; + stbtt_vertex_type x,y; + x=v->x; y=v->y; + v->x = (stbtt_vertex_type)(m * (mtx[0]*x + mtx[2]*y + mtx[4])); + v->y = (stbtt_vertex_type)(n * (mtx[1]*x + mtx[3]*y + mtx[5])); + x=v->cx; y=v->cy; + v->cx = (stbtt_vertex_type)(m * (mtx[0]*x + mtx[2]*y + mtx[4])); + v->cy = (stbtt_vertex_type)(n * (mtx[1]*x + mtx[3]*y + mtx[5])); + } + // Append vertices. + tmp = (stbtt_vertex*)STBTT_malloc((num_vertices+comp_num_verts)*sizeof(stbtt_vertex), info->userdata); + if (!tmp) { + if (vertices) STBTT_free(vertices, info->userdata); + if (comp_verts) STBTT_free(comp_verts, info->userdata); + return 0; + } + if (num_vertices > 0) STBTT_memcpy(tmp, vertices, num_vertices*sizeof(stbtt_vertex)); + STBTT_memcpy(tmp+num_vertices, comp_verts, comp_num_verts*sizeof(stbtt_vertex)); + if (vertices) STBTT_free(vertices, info->userdata); + vertices = tmp; + STBTT_free(comp_verts, info->userdata); + num_vertices += comp_num_verts; + } + // More components ? + more = flags & (1<<5); + } + } else if (numberOfContours < 0) { + // @TODO other compound variations? + STBTT_assert(0); + } else { + // numberOfCounters == 0, do nothing + } + + *pvertices = vertices; + return num_vertices; +} + +STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int glyph_index, int *advanceWidth, int *leftSideBearing) +{ + stbtt_uint16 numOfLongHorMetrics = ttUSHORT(info->data+info->hhea + 34); + if (glyph_index < numOfLongHorMetrics) { + if (advanceWidth) *advanceWidth = ttSHORT(info->data + info->hmtx + 4*glyph_index); + if (leftSideBearing) *leftSideBearing = ttSHORT(info->data + info->hmtx + 4*glyph_index + 2); + } else { + if (advanceWidth) *advanceWidth = ttSHORT(info->data + info->hmtx + 4*(numOfLongHorMetrics-1)); + if (leftSideBearing) *leftSideBearing = ttSHORT(info->data + info->hmtx + 4*numOfLongHorMetrics + 2*(glyph_index - numOfLongHorMetrics)); + } +} + +STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2) +{ + stbtt_uint8 *data = info->data + info->kern; + stbtt_uint32 needle, straw; + int l, r, m; + + // we only look at the first table. it must be 'horizontal' and format 0. + if (!info->kern) + return 0; + if (ttUSHORT(data+2) < 1) // number of tables, need at least 1 + return 0; + if (ttUSHORT(data+8) != 1) // horizontal flag must be set in format + return 0; + + l = 0; + r = ttUSHORT(data+10) - 1; + needle = glyph1 << 16 | glyph2; + while (l <= r) { + m = (l + r) >> 1; + straw = ttULONG(data+18+(m*6)); // note: unaligned read + if (needle < straw) + r = m - 1; + else if (needle > straw) + l = m + 1; + else + return ttSHORT(data+22+(m*6)); + } + return 0; +} + +STBTT_DEF int stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2) +{ + if (!info->kern) // if no kerning table, don't waste time looking up both codepoint->glyphs + return 0; + return stbtt_GetGlyphKernAdvance(info, stbtt_FindGlyphIndex(info,ch1), stbtt_FindGlyphIndex(info,ch2)); +} + +STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint, int *advanceWidth, int *leftSideBearing) +{ + stbtt_GetGlyphHMetrics(info, stbtt_FindGlyphIndex(info,codepoint), advanceWidth, leftSideBearing); +} + +STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *ascent, int *descent, int *lineGap) +{ + if (ascent ) *ascent = ttSHORT(info->data+info->hhea + 4); + if (descent) *descent = ttSHORT(info->data+info->hhea + 6); + if (lineGap) *lineGap = ttSHORT(info->data+info->hhea + 8); +} + +STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int *x0, int *y0, int *x1, int *y1) +{ + *x0 = ttSHORT(info->data + info->head + 36); + *y0 = ttSHORT(info->data + info->head + 38); + *x1 = ttSHORT(info->data + info->head + 40); + *y1 = ttSHORT(info->data + info->head + 42); +} + +STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, float height) +{ + int fheight = ttSHORT(info->data + info->hhea + 4) - ttSHORT(info->data + info->hhea + 6); + return (float) height / fheight; +} + +STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *info, float pixels) +{ + int unitsPerEm = ttUSHORT(info->data + info->head + 18); + return pixels / unitsPerEm; +} + +STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *v) +{ + STBTT_free(v, info->userdata); +} + +////////////////////////////////////////////////////////////////////////////// +// +// antialiasing software rasterizer +// + +STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y,float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + int x0,y0,x1,y1; + if (!stbtt_GetGlyphBox(font, glyph, &x0,&y0,&x1,&y1)) { + // e.g. space character + if (ix0) *ix0 = 0; + if (iy0) *iy0 = 0; + if (ix1) *ix1 = 0; + if (iy1) *iy1 = 0; + } else { + // move to integral bboxes (treating pixels as little squares, what pixels get touched)? + if (ix0) *ix0 = STBTT_ifloor( x0 * scale_x + shift_x); + if (iy0) *iy0 = STBTT_ifloor(-y1 * scale_y + shift_y); + if (ix1) *ix1 = STBTT_iceil ( x1 * scale_x + shift_x); + if (iy1) *iy1 = STBTT_iceil (-y0 * scale_y + shift_y); + } +} + +STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + stbtt_GetGlyphBitmapBoxSubpixel(font, glyph, scale_x, scale_y,0.0f,0.0f, ix0, iy0, ix1, iy1); +} + +STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + stbtt_GetGlyphBitmapBoxSubpixel(font, stbtt_FindGlyphIndex(font,codepoint), scale_x, scale_y,shift_x,shift_y, ix0,iy0,ix1,iy1); +} + +STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + stbtt_GetCodepointBitmapBoxSubpixel(font, codepoint, scale_x, scale_y,0.0f,0.0f, ix0,iy0,ix1,iy1); +} + +////////////////////////////////////////////////////////////////////////////// +// +// Rasterizer + +typedef struct stbtt__hheap_chunk +{ + struct stbtt__hheap_chunk *next; +} stbtt__hheap_chunk; + +typedef struct stbtt__hheap +{ + struct stbtt__hheap_chunk *head; + void *first_free; + int num_remaining_in_head_chunk; +} stbtt__hheap; + +static void *stbtt__hheap_alloc(stbtt__hheap *hh, size_t size, void *userdata) +{ + if (hh->first_free) { + void *p = hh->first_free; + hh->first_free = * (void **) p; + return p; + } else { + if (hh->num_remaining_in_head_chunk == 0) { + int count = (size < 32 ? 2000 : size < 128 ? 800 : 100); + stbtt__hheap_chunk *c = (stbtt__hheap_chunk *) STBTT_malloc(sizeof(stbtt__hheap_chunk) + size * count, userdata); + if (c == NULL) + return NULL; + c->next = hh->head; + hh->head = c; + hh->num_remaining_in_head_chunk = count; + } + --hh->num_remaining_in_head_chunk; + return (char *) (hh->head) + size * hh->num_remaining_in_head_chunk; + } +} + +static void stbtt__hheap_free(stbtt__hheap *hh, void *p) +{ + *(void **) p = hh->first_free; + hh->first_free = p; +} + +static void stbtt__hheap_cleanup(stbtt__hheap *hh, void *userdata) +{ + stbtt__hheap_chunk *c = hh->head; + while (c) { + stbtt__hheap_chunk *n = c->next; + STBTT_free(c, userdata); + c = n; + } +} + +typedef struct stbtt__edge { + float x0,y0, x1,y1; + int invert; +} stbtt__edge; + + +typedef struct stbtt__active_edge +{ + struct stbtt__active_edge *next; + #if STBTT_RASTERIZER_VERSION==1 + int x,dx; + float ey; + int direction; + #elif STBTT_RASTERIZER_VERSION==2 + float fx,fdx,fdy; + float direction; + float sy; + float ey; + #else + #error "Unrecognized value of STBTT_RASTERIZER_VERSION" + #endif +} stbtt__active_edge; + +#if STBTT_RASTERIZER_VERSION == 1 +#define STBTT_FIXSHIFT 10 +#define STBTT_FIX (1 << STBTT_FIXSHIFT) +#define STBTT_FIXMASK (STBTT_FIX-1) + +static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, int off_x, float start_point, void *userdata) +{ + stbtt__active_edge *z = (stbtt__active_edge *) stbtt__hheap_alloc(hh, sizeof(*z), userdata); + float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); + if (!z) return z; + + // round dx down to avoid overshooting + if (dxdy < 0) + z->dx = -STBTT_ifloor(STBTT_FIX * -dxdy); + else + z->dx = STBTT_ifloor(STBTT_FIX * dxdy); + + z->x = STBTT_ifloor(STBTT_FIX * e->x0 + z->dx * (start_point - e->y0)); // use z->dx so when we offset later it's by the same amount + z->x -= off_x * STBTT_FIX; + + z->ey = e->y1; + z->next = 0; + z->direction = e->invert ? 1 : -1; + return z; +} +#elif STBTT_RASTERIZER_VERSION == 2 +static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, int off_x, float start_point, void *userdata) +{ + stbtt__active_edge *z = (stbtt__active_edge *) stbtt__hheap_alloc(hh, sizeof(*z), userdata); + float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); + //STBTT_assert(e->y0 <= start_point); + if (!z) return z; + z->fdx = dxdy; + z->fdy = (1/dxdy); + z->fx = e->x0 + dxdy * (start_point - e->y0); + z->fx -= off_x; + z->direction = e->invert ? 1.0f : -1.0f; + z->sy = e->y0; + z->ey = e->y1; + z->next = 0; + return z; +} +#else +#error "Unrecognized value of STBTT_RASTERIZER_VERSION" +#endif + +#if STBTT_RASTERIZER_VERSION == 1 +// note: this routine clips fills that extend off the edges... ideally this +// wouldn't happen, but it could happen if the truetype glyph bounding boxes +// are wrong, or if the user supplies a too-small bitmap +static void stbtt__fill_active_edges(unsigned char *scanline, int len, stbtt__active_edge *e, int max_weight) +{ + // non-zero winding fill + int x0=0, w=0; + + while (e) { + if (w == 0) { + // if we're currently at zero, we need to record the edge start point + x0 = e->x; w += e->direction; + } else { + int x1 = e->x; w += e->direction; + // if we went to zero, we need to draw + if (w == 0) { + int i = x0 >> STBTT_FIXSHIFT; + int j = x1 >> STBTT_FIXSHIFT; + + if (i < len && j >= 0) { + if (i == j) { + // x0,x1 are the same pixel, so compute combined coverage + scanline[i] = scanline[i] + (stbtt_uint8) ((x1 - x0) * max_weight >> STBTT_FIXSHIFT); + } else { + if (i >= 0) // add antialiasing for x0 + scanline[i] = scanline[i] + (stbtt_uint8) (((STBTT_FIX - (x0 & STBTT_FIXMASK)) * max_weight) >> STBTT_FIXSHIFT); + else + i = -1; // clip + + if (j < len) // add antialiasing for x1 + scanline[j] = scanline[j] + (stbtt_uint8) (((x1 & STBTT_FIXMASK) * max_weight) >> STBTT_FIXSHIFT); + else + j = len; // clip + + for (++i; i < j; ++i) // fill pixels between x0 and x1 + scanline[i] = scanline[i] + (stbtt_uint8) max_weight; + } + } + } + } + + e = e->next; + } +} + +static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e, int n, int vsubsample, int off_x, int off_y, void *userdata) +{ + stbtt__hheap hh = { 0 }; + stbtt__active_edge *active = NULL; + int y,j=0; + int max_weight = (255 / vsubsample); // weight per vertical scanline + int s; // vertical subsample index + unsigned char scanline_data[512], *scanline; + + if (result->w > 512) + scanline = (unsigned char *) STBTT_malloc(result->w, userdata); + else + scanline = scanline_data; + + y = off_y * vsubsample; + e[n].y0 = (off_y + result->h) * (float) vsubsample + 1; + + while (j < result->h) { + STBTT_memset(scanline, 0, result->w); + for (s=0; s < vsubsample; ++s) { + // find center of pixel for this scanline + float scan_y = y + 0.5f; + stbtt__active_edge **step = &active; + + // update all active edges; + // remove all active edges that terminate before the center of this scanline + while (*step) { + stbtt__active_edge * z = *step; + if (z->ey <= scan_y) { + *step = z->next; // delete from list + STBTT_assert(z->direction); + z->direction = 0; + stbtt__hheap_free(&hh, z); + } else { + z->x += z->dx; // advance to position for current scanline + step = &((*step)->next); // advance through list + } + } + + // resort the list if needed + for(;;) { + int changed=0; + step = &active; + while (*step && (*step)->next) { + if ((*step)->x > (*step)->next->x) { + stbtt__active_edge *t = *step; + stbtt__active_edge *q = t->next; + + t->next = q->next; + q->next = t; + *step = q; + changed = 1; + } + step = &(*step)->next; + } + if (!changed) break; + } + + // insert all edges that start before the center of this scanline -- omit ones that also end on this scanline + while (e->y0 <= scan_y) { + if (e->y1 > scan_y) { + stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y, userdata); + // find insertion point + if (active == NULL) + active = z; + else if (z->x < active->x) { + // insert at front + z->next = active; + active = z; + } else { + // find thing to insert AFTER + stbtt__active_edge *p = active; + while (p->next && p->next->x < z->x) + p = p->next; + // at this point, p->next->x is NOT < z->x + z->next = p->next; + p->next = z; + } + } + ++e; + } + + // now process all active edges in XOR fashion + if (active) + stbtt__fill_active_edges(scanline, result->w, active, max_weight); + + ++y; + } + STBTT_memcpy(result->pixels + j * result->stride, scanline, result->w); + ++j; + } + + stbtt__hheap_cleanup(&hh, userdata); + + if (scanline != scanline_data) + STBTT_free(scanline, userdata); +} + +#elif STBTT_RASTERIZER_VERSION == 2 + +// the edge passed in here does not cross the vertical line at x or the vertical line at x+1 +// (i.e. it has already been clipped to those) +static void stbtt__handle_clipped_edge(float *scanline, int x, stbtt__active_edge *e, float x0, float y0, float x1, float y1) +{ + if (y0 == y1) return; + STBTT_assert(y0 < y1); + STBTT_assert(e->sy <= e->ey); + if (y0 > e->ey) return; + if (y1 < e->sy) return; + if (y0 < e->sy) { + x0 += (x1-x0) * (e->sy - y0) / (y1-y0); + y0 = e->sy; + } + if (y1 > e->ey) { + x1 += (x1-x0) * (e->ey - y1) / (y1-y0); + y1 = e->ey; + } + + if (x0 == x) + STBTT_assert(x1 <= x+1); + else if (x0 == x+1) + STBTT_assert(x1 >= x); + else if (x0 <= x) + STBTT_assert(x1 <= x); + else if (x0 >= x+1) + STBTT_assert(x1 >= x+1); + else + STBTT_assert(x1 >= x && x1 <= x+1); + + if (x0 <= x && x1 <= x) + scanline[x] += e->direction * (y1-y0); + else if (x0 >= x+1 && x1 >= x+1) + ; + else { + STBTT_assert(x0 >= x && x0 <= x+1 && x1 >= x && x1 <= x+1); + scanline[x] += e->direction * (y1-y0) * (1-((x0-x)+(x1-x))/2); // coverage = 1 - average x position + } +} + +static void stbtt__fill_active_edges_new(float *scanline, float *scanline_fill, int len, stbtt__active_edge *e, float y_top) +{ + float y_bottom = y_top+1; + + while (e) { + // brute force every pixel + + // compute intersection points with top & bottom + STBTT_assert(e->ey >= y_top); + + if (e->fdx == 0) { + float x0 = e->fx; + if (x0 < len) { + if (x0 >= 0) { + stbtt__handle_clipped_edge(scanline,(int) x0,e, x0,y_top, x0,y_bottom); + stbtt__handle_clipped_edge(scanline_fill-1,(int) x0+1,e, x0,y_top, x0,y_bottom); + } else { + stbtt__handle_clipped_edge(scanline_fill-1,0,e, x0,y_top, x0,y_bottom); + } + } + } else { + float x0 = e->fx; + float dx = e->fdx; + float xb = x0 + dx; + float x_top, x_bottom; + float y0,y1; + float dy = e->fdy; + STBTT_assert(e->sy <= y_bottom && e->ey >= y_top); + + // compute endpoints of line segment clipped to this scanline (if the + // line segment starts on this scanline. x0 is the intersection of the + // line with y_top, but that may be off the line segment. + if (e->sy > y_top) { + x_top = x0 + dx * (e->sy - y_top); + y0 = e->sy; + } else { + x_top = x0; + y0 = y_top; + } + if (e->ey < y_bottom) { + x_bottom = x0 + dx * (e->ey - y_top); + y1 = e->ey; + } else { + x_bottom = xb; + y1 = y_bottom; + } + + if (x_top >= 0 && x_bottom >= 0 && x_top < len && x_bottom < len) { + // from here on, we don't have to range check x values + + if ((int) x_top == (int) x_bottom) { + float height; + // simple case, only spans one pixel + int x = (int) x_top; + height = y1 - y0; + STBTT_assert(x >= 0 && x < len); + scanline[x] += e->direction * (1-((x_top - x) + (x_bottom-x))/2) * height; + scanline_fill[x] += e->direction * height; // everything right of this pixel is filled + } else { + int x,x1,x2; + float y_crossing, step, sign, area; + // covers 2+ pixels + if (x_top > x_bottom) { + // flip scanline vertically; signed area is the same + float t; + y0 = y_bottom - (y0 - y_top); + y1 = y_bottom - (y1 - y_top); + t = y0, y0 = y1, y1 = t; + t = x_bottom, x_bottom = x_top, x_top = t; + dx = -dx; + dy = -dy; + t = x0, x0 = xb, xb = t; + } + + x1 = (int) x_top; + x2 = (int) x_bottom; + // compute intersection with y axis at x1+1 + y_crossing = (x1+1 - x0) * dy + y_top; + + sign = e->direction; + // area of the rectangle covered from y0..y_crossing + area = sign * (y_crossing-y0); + // area of the triangle (x_top,y0), (x+1,y0), (x+1,y_crossing) + scanline[x1] += area * (1-((x_top - x1)+(x1+1-x1))/2); + + step = sign * dy; + for (x = x1+1; x < x2; ++x) { + scanline[x] += area + step/2; + area += step; + } + y_crossing += dy * (x2 - (x1+1)); + + STBTT_assert(fabs(area) <= 1.01f); + + scanline[x2] += area + sign * (1-((x2-x2)+(x_bottom-x2))/2) * (y1-y_crossing); + + scanline_fill[x2] += sign * (y1-y0); + } + } else { + // if edge goes outside of box we're drawing, we require + // clipping logic. since this does not match the intended use + // of this library, we use a different, very slow brute + // force implementation + int x; + for (x=0; x < len; ++x) { + // cases: + // + // there can be up to two intersections with the pixel. any intersection + // with left or right edges can be handled by splitting into two (or three) + // regions. intersections with top & bottom do not necessitate case-wise logic. + // + // the old way of doing this found the intersections with the left & right edges, + // then used some simple logic to produce up to three segments in sorted order + // from top-to-bottom. however, this had a problem: if an x edge was epsilon + // across the x border, then the corresponding y position might not be distinct + // from the other y segment, and it might ignored as an empty segment. to avoid + // that, we need to explicitly produce segments based on x positions. + + // rename variables to clear pairs + float y0 = y_top; + float x1 = (float) (x); + float x2 = (float) (x+1); + float x3 = xb; + float y3 = y_bottom; + float y1,y2; + + // x = e->x + e->dx * (y-y_top) + // (y-y_top) = (x - e->x) / e->dx + // y = (x - e->x) / e->dx + y_top + y1 = (x - x0) / dx + y_top; + y2 = (x+1 - x0) / dx + y_top; + + if (x0 < x1 && x3 > x2) { // three segments descending down-right + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); + } else if (x3 < x1 && x0 > x2) { // three segments descending down-left + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); + } else if (x0 < x1 && x3 > x1) { // two segments across x, down-right + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); + } else if (x3 < x1 && x0 > x1) { // two segments across x, down-left + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); + } else if (x0 < x2 && x3 > x2) { // two segments across x+1, down-right + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); + } else if (x3 < x2 && x0 > x2) { // two segments across x+1, down-left + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); + } else { // one segment + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x3,y3); + } + } + } + } + e = e->next; + } +} + +// directly AA rasterize edges w/o supersampling +static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e, int n, int vsubsample, int off_x, int off_y, void *userdata) +{ + (void)vsubsample; + stbtt__hheap hh = { 0 }; + stbtt__active_edge *active = NULL; + int y,j=0, i; + float scanline_data[129], *scanline, *scanline2; + + if (result->w > 64) + scanline = (float *) STBTT_malloc((result->w*2+1) * sizeof(float), userdata); + else + scanline = scanline_data; + + scanline2 = scanline + result->w; + + y = off_y; + e[n].y0 = (float) (off_y + result->h) + 1; + + while (j < result->h) { + // find center of pixel for this scanline + float scan_y_top = y + 0.0f; + float scan_y_bottom = y + 1.0f; + stbtt__active_edge **step = &active; + + STBTT_memset(scanline , 0, result->w*sizeof(scanline[0])); + STBTT_memset(scanline2, 0, (result->w+1)*sizeof(scanline[0])); + + // update all active edges; + // remove all active edges that terminate before the top of this scanline + while (*step) { + stbtt__active_edge * z = *step; + if (z->ey <= scan_y_top) { + *step = z->next; // delete from list + STBTT_assert(z->direction); + z->direction = 0; + stbtt__hheap_free(&hh, z); + } else { + step = &((*step)->next); // advance through list + } + } + + // insert all edges that start before the bottom of this scanline + while (e->y0 <= scan_y_bottom) { + stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y_top, userdata); + STBTT_assert(z->ey >= scan_y_top); + // insert at front + z->next = active; + active = z; + ++e; + } + + // now process all active edges + if (active) + stbtt__fill_active_edges_new(scanline, scanline2+1, result->w, active, scan_y_top); + + { + float sum = 0; + for (i=0; i < result->w; ++i) { + float k; + int m; + sum += scanline2[i]; + k = scanline[i] + sum; + k = (float) fabs(k)*255 + 0.5f; + m = (int) k; + if (m > 255) m = 255; + result->pixels[j*result->stride + i] = (unsigned char) m; + } + } + // advance all the edges + step = &active; + while (*step) { + stbtt__active_edge *z = *step; + z->fx += z->fdx; // advance to position for current scanline + step = &((*step)->next); // advance through list + } + + ++y; + ++j; + } + + stbtt__hheap_cleanup(&hh, userdata); + + if (scanline != scanline_data) + STBTT_free(scanline, userdata); +} +#else +#error "Unrecognized value of STBTT_RASTERIZER_VERSION" +#endif + +#define STBTT__COMPARE(a,b) ((a)->y0 < (b)->y0) + +static void stbtt__sort_edges_ins_sort(stbtt__edge *p, int n) +{ + int i,j; + for (i=1; i < n; ++i) { + stbtt__edge t = p[i], *a = &t; + j = i; + while (j > 0) { + stbtt__edge *b = &p[j-1]; + int c = STBTT__COMPARE(a,b); + if (!c) break; + p[j] = p[j-1]; + --j; + } + if (i != j) + p[j] = t; + } +} + +static void stbtt__sort_edges_quicksort(stbtt__edge *p, int n) +{ + /* threshhold for transitioning to insertion sort */ + while (n > 12) { + stbtt__edge t; + int c01,c12,c,m,i,j; + + /* compute median of three */ + m = n >> 1; + c01 = STBTT__COMPARE(&p[0],&p[m]); + c12 = STBTT__COMPARE(&p[m],&p[n-1]); + /* if 0 >= mid >= end, or 0 < mid < end, then use mid */ + if (c01 != c12) { + /* otherwise, we'll need to swap something else to middle */ + int z; + c = STBTT__COMPARE(&p[0],&p[n-1]); + /* 0>mid && midn => n; 0 0 */ + /* 0n: 0>n => 0; 0 n */ + z = (c == c12) ? 0 : n-1; + t = p[z]; + p[z] = p[m]; + p[m] = t; + } + /* now p[m] is the median-of-three */ + /* swap it to the beginning so it won't move around */ + t = p[0]; + p[0] = p[m]; + p[m] = t; + + /* partition loop */ + i=1; + j=n-1; + for(;;) { + /* handling of equality is crucial here */ + /* for sentinels & efficiency with duplicates */ + for (;;++i) { + if (!STBTT__COMPARE(&p[i], &p[0])) break; + } + for (;;--j) { + if (!STBTT__COMPARE(&p[0], &p[j])) break; + } + /* make sure we haven't crossed */ + if (i >= j) break; + t = p[i]; + p[i] = p[j]; + p[j] = t; + + ++i; + --j; + } + /* recurse on smaller side, iterate on larger */ + if (j < (n-i)) { + stbtt__sort_edges_quicksort(p,j); + p = p+i; + n = n-i; + } else { + stbtt__sort_edges_quicksort(p+i, n-i); + n = j; + } + } +} + +static void stbtt__sort_edges(stbtt__edge *p, int n) +{ + stbtt__sort_edges_quicksort(p, n); + stbtt__sort_edges_ins_sort(p, n); +} + +typedef struct +{ + float x,y; +} stbtt__point; + +static void stbtt__rasterize(stbtt__bitmap *result, stbtt__point *pts, int *wcount, int windings, float scale_x, float scale_y, float shift_x, float shift_y, int off_x, int off_y, int invert, void *userdata) +{ + float y_scale_inv = invert ? -scale_y : scale_y; + stbtt__edge *e; + int n,i,j,k,m; +#if STBTT_RASTERIZER_VERSION == 1 + int vsubsample = result->h < 8 ? 15 : 5; +#elif STBTT_RASTERIZER_VERSION == 2 + int vsubsample = 1; +#else + #error "Unrecognized value of STBTT_RASTERIZER_VERSION" +#endif + // vsubsample should divide 255 evenly; otherwise we won't reach full opacity + + // now we have to blow out the windings into explicit edge lists + n = 0; + for (i=0; i < windings; ++i) + n += wcount[i]; + + e = (stbtt__edge *) STBTT_malloc(sizeof(*e) * (n+1), userdata); // add an extra one as a sentinel + if (e == 0) return; + n = 0; + + m=0; + for (i=0; i < windings; ++i) { + stbtt__point *p = pts + m; + m += wcount[i]; + j = wcount[i]-1; + for (k=0; k < wcount[i]; j=k++) { + int a=k,b=j; + // skip the edge if horizontal + if (p[j].y == p[k].y) + continue; + // add edge from j to k to the list + e[n].invert = 0; + if (invert ? p[j].y > p[k].y : p[j].y < p[k].y) { + e[n].invert = 1; + a=j,b=k; + } + e[n].x0 = p[a].x * scale_x + shift_x; + e[n].y0 = (p[a].y * y_scale_inv + shift_y) * vsubsample; + e[n].x1 = p[b].x * scale_x + shift_x; + e[n].y1 = (p[b].y * y_scale_inv + shift_y) * vsubsample; + ++n; + } + } + + // now sort the edges by their highest point (should snap to integer, and then by x) + //STBTT_sort(e, n, sizeof(e[0]), stbtt__edge_compare); + stbtt__sort_edges(e, n); + + // now, traverse the scanlines and find the intersections on each scanline, use xor winding rule + stbtt__rasterize_sorted_edges(result, e, n, vsubsample, off_x, off_y, userdata); + + STBTT_free(e, userdata); +} + +static void stbtt__add_point(stbtt__point *points, int n, float x, float y) +{ + if (!points) return; // during first pass, it's unallocated + points[n].x = x; + points[n].y = y; +} + +// tesselate until threshhold p is happy... @TODO warped to compensate for non-linear stretching +static int stbtt__tesselate_curve(stbtt__point *points, int *num_points, float x0, float y0, float x1, float y1, float x2, float y2, float objspace_flatness_squared, int n) +{ + // midpoint + float mx = (x0 + 2*x1 + x2)/4; + float my = (y0 + 2*y1 + y2)/4; + // versus directly drawn line + float dx = (x0+x2)/2 - mx; + float dy = (y0+y2)/2 - my; + if (n > 16) // 65536 segments on one curve better be enough! + return 1; + if (dx*dx+dy*dy > objspace_flatness_squared) { // half-pixel error allowed... need to be smaller if AA + stbtt__tesselate_curve(points, num_points, x0,y0, (x0+x1)/2.0f,(y0+y1)/2.0f, mx,my, objspace_flatness_squared,n+1); + stbtt__tesselate_curve(points, num_points, mx,my, (x1+x2)/2.0f,(y1+y2)/2.0f, x2,y2, objspace_flatness_squared,n+1); + } else { + stbtt__add_point(points, *num_points,x2,y2); + *num_points = *num_points+1; + } + return 1; +} + +// returns number of contours +static stbtt__point *stbtt_FlattenCurves(stbtt_vertex *vertices, int num_verts, float objspace_flatness, int **contour_lengths, int *num_contours, void *userdata) +{ + stbtt__point *points=0; + int num_points=0; + + float objspace_flatness_squared = objspace_flatness * objspace_flatness; + int i,n=0,start=0, pass; + + // count how many "moves" there are to get the contour count + for (i=0; i < num_verts; ++i) + if (vertices[i].type == STBTT_vmove) + ++n; + + *num_contours = n; + if (n == 0) return 0; + + *contour_lengths = (int *) STBTT_malloc(sizeof(**contour_lengths) * n, userdata); + + if (*contour_lengths == 0) { + *num_contours = 0; + return 0; + } + + // make two passes through the points so we don't need to realloc + for (pass=0; pass < 2; ++pass) { + float x=0,y=0; + if (pass == 1) { + points = (stbtt__point *) STBTT_malloc(num_points * sizeof(points[0]), userdata); + if (points == NULL) goto error; + } + num_points = 0; + n= -1; + for (i=0; i < num_verts; ++i) { + switch (vertices[i].type) { + case STBTT_vmove: + // start the next contour + if (n >= 0) + (*contour_lengths)[n] = num_points - start; + ++n; + start = num_points; + + x = vertices[i].x, y = vertices[i].y; + stbtt__add_point(points, num_points++, x,y); + break; + case STBTT_vline: + x = vertices[i].x, y = vertices[i].y; + stbtt__add_point(points, num_points++, x, y); + break; + case STBTT_vcurve: + stbtt__tesselate_curve(points, &num_points, x,y, + vertices[i].cx, vertices[i].cy, + vertices[i].x, vertices[i].y, + objspace_flatness_squared, 0); + x = vertices[i].x, y = vertices[i].y; + break; + } + } + (*contour_lengths)[n] = num_points - start; + } + + return points; +error: + STBTT_free(points, userdata); + STBTT_free(*contour_lengths, userdata); + *contour_lengths = 0; + *num_contours = 0; + return NULL; +} + +STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, float flatness_in_pixels, stbtt_vertex *vertices, int num_verts, float scale_x, float scale_y, float shift_x, float shift_y, int x_off, int y_off, int invert, void *userdata) +{ + float scale = scale_x > scale_y ? scale_y : scale_x; + int winding_count, *winding_lengths; + stbtt__point *windings = stbtt_FlattenCurves(vertices, num_verts, flatness_in_pixels / scale, &winding_lengths, &winding_count, userdata); + if (windings) { + stbtt__rasterize(result, windings, winding_lengths, winding_count, scale_x, scale_y, shift_x, shift_y, x_off, y_off, invert, userdata); + STBTT_free(winding_lengths, userdata); + STBTT_free(windings, userdata); + } +} + +STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata) +{ + STBTT_free(bitmap, userdata); +} + +STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int glyph, int *width, int *height, int *xoff, int *yoff) +{ + int ix0,iy0,ix1,iy1; + stbtt__bitmap gbm; + stbtt_vertex *vertices; + int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); + + if (scale_x == 0) scale_x = scale_y; + if (scale_y == 0) { + if (scale_x == 0) return NULL; + scale_y = scale_x; + } + + stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,&ix1,&iy1); + + // now we get the size + gbm.w = (ix1 - ix0); + gbm.h = (iy1 - iy0); + gbm.pixels = NULL; // in case we error + + if (width ) *width = gbm.w; + if (height) *height = gbm.h; + if (xoff ) *xoff = ix0; + if (yoff ) *yoff = iy0; + + if (gbm.w && gbm.h) { + gbm.pixels = (unsigned char *) STBTT_malloc(gbm.w * gbm.h, info->userdata); + if (gbm.pixels) { + gbm.stride = gbm.w; + + stbtt_Rasterize(&gbm, 0.35f, vertices, num_verts, scale_x, scale_y, shift_x, shift_y, ix0, iy0, 1, info->userdata); + } + } + STBTT_free(vertices, info->userdata); + return gbm.pixels; +} + +STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff) +{ + return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y, 0.0f, 0.0f, glyph, width, height, xoff, yoff); +} + +STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int glyph) +{ + int ix0,iy0; + stbtt_vertex *vertices; + int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); + stbtt__bitmap gbm; + + stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,0,0); + gbm.pixels = output; + gbm.w = out_w; + gbm.h = out_h; + gbm.stride = out_stride; + + if (gbm.w && gbm.h) + stbtt_Rasterize(&gbm, 0.35f, vertices, num_verts, scale_x, scale_y, shift_x, shift_y, ix0,iy0, 1, info->userdata); + + STBTT_free(vertices, info->userdata); +} + +STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int glyph) +{ + stbtt_MakeGlyphBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, 0.0f,0.0f, glyph); +} + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff) +{ + return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y,shift_x,shift_y, stbtt_FindGlyphIndex(info,codepoint), width,height,xoff,yoff); +} + +STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint) +{ + stbtt_MakeGlyphBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, shift_x, shift_y, stbtt_FindGlyphIndex(info,codepoint)); +} + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff) +{ + return stbtt_GetCodepointBitmapSubpixel(info, scale_x, scale_y, 0.0f,0.0f, codepoint, width,height,xoff,yoff); +} + +STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint) +{ + stbtt_MakeCodepointBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, 0.0f,0.0f, codepoint); +} + +////////////////////////////////////////////////////////////////////////////// +// +// bitmap baking +// +// This is SUPER-CRAPPY packing to keep source code small + +STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) + float pixel_height, // height of font in pixels + unsigned char *pixels, int pw, int ph, // bitmap to be filled in + int first_char, int num_chars, // characters to bake + stbtt_bakedchar *chardata) +{ + float scale; + int x,y,bottom_y, i; + stbtt_fontinfo f; + if (!stbtt_InitFont(&f, data, offset)) + return -1; + STBTT_memset(pixels, 0, pw*ph); // background of 0 around pixels + x=y=1; + bottom_y = 1; + + scale = stbtt_ScaleForPixelHeight(&f, pixel_height); + + for (i=0; i < num_chars; ++i) { + int advance, lsb, x0,y0,x1,y1,gw,gh; + int g = stbtt_FindGlyphIndex(&f, first_char + i); + stbtt_GetGlyphHMetrics(&f, g, &advance, &lsb); + stbtt_GetGlyphBitmapBox(&f, g, scale,scale, &x0,&y0,&x1,&y1); + gw = x1-x0; + gh = y1-y0; + if (x + gw + 1 >= pw) + y = bottom_y, x = 1; // advance to next row + if (y + gh + 1 >= ph) // check if it fits vertically AFTER potentially moving to next row + return -i; + STBTT_assert(x+gw < pw); + STBTT_assert(y+gh < ph); + stbtt_MakeGlyphBitmap(&f, pixels+x+y*pw, gw,gh,pw, scale,scale, g); + chardata[i].x0 = (stbtt_int16) x; + chardata[i].y0 = (stbtt_int16) y; + chardata[i].x1 = (stbtt_int16) (x + gw); + chardata[i].y1 = (stbtt_int16) (y + gh); + chardata[i].xadvance = scale * advance; + chardata[i].xoff = (float) x0; + chardata[i].yoff = (float) y0; + x = x + gw + 1; + if (y+gh+1 > bottom_y) + bottom_y = y+gh+1; + } + return bottom_y; +} + +STBTT_DEF void stbtt_GetBakedQuad(stbtt_bakedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int opengl_fillrule) +{ + float d3d_bias = opengl_fillrule ? 0 : -0.5f; + float ipw = 1.0f / pw, iph = 1.0f / ph; + stbtt_bakedchar *b = chardata + char_index; + int round_x = STBTT_ifloor((*xpos + b->xoff) + 0.5f); + int round_y = STBTT_ifloor((*ypos + b->yoff) + 0.5f); + + q->x0 = round_x + d3d_bias; + q->y0 = round_y + d3d_bias; + q->x1 = round_x + b->x1 - b->x0 + d3d_bias; + q->y1 = round_y + b->y1 - b->y0 + d3d_bias; + + q->s0 = b->x0 * ipw; + q->t0 = b->y0 * iph; + q->s1 = b->x1 * ipw; + q->t1 = b->y1 * iph; + + *xpos += b->xadvance; +} + +////////////////////////////////////////////////////////////////////////////// +// +// rectangle packing replacement routines if you don't have stb_rect_pack.h +// + +#ifndef STB_RECT_PACK_VERSION +#ifdef _MSC_VER +#define STBTT__NOTUSED(v) (void)(v) +#else +#define STBTT__NOTUSED(v) (void)sizeof(v) +#endif + +typedef int stbrp_coord; + +//////////////////////////////////////////////////////////////////////////////////// +// // +// // +// COMPILER WARNING ?!?!? // +// // +// // +// if you get a compile warning due to these symbols being defined more than // +// once, move #include "stb_rect_pack.h" before #include "stb_truetype.h" // +// // +//////////////////////////////////////////////////////////////////////////////////// + +typedef struct +{ + int width,height; + int x,y,bottom_y; +} stbrp_context; + +typedef struct +{ + unsigned char x; +} stbrp_node; + +struct stbrp_rect +{ + stbrp_coord x,y; + int id,w,h,was_packed; +}; + +static void stbrp_init_target(stbrp_context *con, int pw, int ph, stbrp_node *nodes, int num_nodes) +{ + con->width = pw; + con->height = ph; + con->x = 0; + con->y = 0; + con->bottom_y = 0; + STBTT__NOTUSED(nodes); + STBTT__NOTUSED(num_nodes); +} + +static void stbrp_pack_rects(stbrp_context *con, stbrp_rect *rects, int num_rects) +{ + int i; + for (i=0; i < num_rects; ++i) { + if (con->x + rects[i].w > con->width) { + con->x = 0; + con->y = con->bottom_y; + } + if (con->y + rects[i].h > con->height) + break; + rects[i].x = con->x; + rects[i].y = con->y; + rects[i].was_packed = 1; + con->x += rects[i].w; + if (con->y + rects[i].h > con->bottom_y) + con->bottom_y = con->y + rects[i].h; + } + for ( ; i < num_rects; ++i) + rects[i].was_packed = 0; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// bitmap baking +// +// This is SUPER-AWESOME (tm Ryan Gordon) packing using stb_rect_pack.h. If +// stb_rect_pack.h isn't available, it uses the BakeFontBitmap strategy. + +STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, int pw, int ph, int stride_in_bytes, int padding, void *alloc_context) +{ + stbrp_context *context = (stbrp_context *) STBTT_malloc(sizeof(*context) ,alloc_context); + int num_nodes = pw - padding; + stbrp_node *nodes = (stbrp_node *) STBTT_malloc(sizeof(*nodes ) * num_nodes,alloc_context); + + if (context == NULL || nodes == NULL) { + if (context != NULL) STBTT_free(context, alloc_context); + if (nodes != NULL) STBTT_free(nodes , alloc_context); + return 0; + } + + spc->user_allocator_context = alloc_context; + spc->width = pw; + spc->height = ph; + spc->pixels = pixels; + spc->pack_info = context; + spc->nodes = nodes; + spc->padding = padding; + spc->stride_in_bytes = stride_in_bytes != 0 ? stride_in_bytes : pw; + spc->h_oversample = 1; + spc->v_oversample = 1; + + stbrp_init_target(context, pw-padding, ph-padding, nodes, num_nodes); + + if (pixels) + STBTT_memset(pixels, 0, pw*ph); // background of 0 around pixels + + return 1; +} + +STBTT_DEF void stbtt_PackEnd (stbtt_pack_context *spc) +{ + STBTT_free(spc->nodes , spc->user_allocator_context); + STBTT_free(spc->pack_info, spc->user_allocator_context); +} + +STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample) +{ + STBTT_assert(h_oversample <= STBTT_MAX_OVERSAMPLE); + STBTT_assert(v_oversample <= STBTT_MAX_OVERSAMPLE); + if (h_oversample <= STBTT_MAX_OVERSAMPLE) + spc->h_oversample = h_oversample; + if (v_oversample <= STBTT_MAX_OVERSAMPLE) + spc->v_oversample = v_oversample; +} + +#define STBTT__OVER_MASK (STBTT_MAX_OVERSAMPLE-1) + +static void stbtt__h_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width) +{ + unsigned char buffer[STBTT_MAX_OVERSAMPLE]; + int safe_w = w - kernel_width; + int j; + for (j=0; j < h; ++j) { + int i; + unsigned int total; + STBTT_memset(buffer, 0, kernel_width); + + total = 0; + + // make kernel_width a constant in common cases so compiler can optimize out the divide + switch (kernel_width) { + case 2: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 2); + } + break; + case 3: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 3); + } + break; + case 4: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 4); + } + break; + case 5: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 5); + } + break; + default: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / kernel_width); + } + break; + } + + for (; i < w; ++i) { + STBTT_assert(pixels[i] == 0); + total -= buffer[i & STBTT__OVER_MASK]; + pixels[i] = (unsigned char) (total / kernel_width); + } + + pixels += stride_in_bytes; + } +} + +static void stbtt__v_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width) +{ + unsigned char buffer[STBTT_MAX_OVERSAMPLE]; + int safe_h = h - kernel_width; + int j; + for (j=0; j < w; ++j) { + int i; + unsigned int total; + STBTT_memset(buffer, 0, kernel_width); + + total = 0; + + // make kernel_width a constant in common cases so compiler can optimize out the divide + switch (kernel_width) { + case 2: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 2); + } + break; + case 3: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 3); + } + break; + case 4: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 4); + } + break; + case 5: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 5); + } + break; + default: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / kernel_width); + } + break; + } + + for (; i < h; ++i) { + STBTT_assert(pixels[i*stride_in_bytes] == 0); + total -= buffer[i & STBTT__OVER_MASK]; + pixels[i*stride_in_bytes] = (unsigned char) (total / kernel_width); + } + + pixels += 1; + } +} + +static float stbtt__oversample_shift(int oversample) +{ + if (!oversample) + return 0.0f; + + // The prefilter is a box filter of width "oversample", + // which shifts phase by (oversample - 1)/2 pixels in + // oversampled space. We want to shift in the opposite + // direction to counter this. + return (float)-(oversample - 1) / (2.0f * (float)oversample); +} + +// rects array must be big enough to accommodate all characters in the given ranges +STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) +{ + int i,j,k; + + k=0; + for (i=0; i < num_ranges; ++i) { + float fh = ranges[i].font_size; + float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); + ranges[i].h_oversample = (unsigned char) spc->h_oversample; + ranges[i].v_oversample = (unsigned char) spc->v_oversample; + for (j=0; j < ranges[i].num_chars; ++j) { + int x0,y0,x1,y1; + int codepoint = ranges[i].first_unicode_codepoint_in_range ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; + int glyph = stbtt_FindGlyphIndex(info, codepoint); + stbtt_GetGlyphBitmapBoxSubpixel(info,glyph, + scale * spc->h_oversample, + scale * spc->v_oversample, + 0,0, + &x0,&y0,&x1,&y1); + rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1); + rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1); + ++k; + } + } + + return k; +} + +// rects array must be big enough to accommodate all characters in the given ranges +STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) +{ + int i,j,k, return_value = 1; + + // save current values + int old_h_over = spc->h_oversample; + int old_v_over = spc->v_oversample; + + k = 0; + for (i=0; i < num_ranges; ++i) { + float fh = ranges[i].font_size; + float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); + float recip_h,recip_v,sub_x,sub_y; + spc->h_oversample = ranges[i].h_oversample; + spc->v_oversample = ranges[i].v_oversample; + recip_h = 1.0f / spc->h_oversample; + recip_v = 1.0f / spc->v_oversample; + sub_x = stbtt__oversample_shift(spc->h_oversample); + sub_y = stbtt__oversample_shift(spc->v_oversample); + for (j=0; j < ranges[i].num_chars; ++j) { + stbrp_rect *r = &rects[k]; + if (r->was_packed) { + stbtt_packedchar *bc = &ranges[i].chardata_for_range[j]; + int advance, lsb, x0,y0,x1,y1; + int codepoint = ranges[i].first_unicode_codepoint_in_range ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; + int glyph = stbtt_FindGlyphIndex(info, codepoint); + stbrp_coord pad = (stbrp_coord) spc->padding; + + // pad on left and top + r->x += pad; + r->y += pad; + r->w -= pad; + r->h -= pad; + stbtt_GetGlyphHMetrics(info, glyph, &advance, &lsb); + stbtt_GetGlyphBitmapBox(info, glyph, + scale * spc->h_oversample, + scale * spc->v_oversample, + &x0,&y0,&x1,&y1); + stbtt_MakeGlyphBitmapSubpixel(info, + spc->pixels + r->x + r->y*spc->stride_in_bytes, + r->w - spc->h_oversample+1, + r->h - spc->v_oversample+1, + spc->stride_in_bytes, + scale * spc->h_oversample, + scale * spc->v_oversample, + 0,0, + glyph); + + if (spc->h_oversample > 1) + stbtt__h_prefilter(spc->pixels + r->x + r->y*spc->stride_in_bytes, + r->w, r->h, spc->stride_in_bytes, + spc->h_oversample); + + if (spc->v_oversample > 1) + stbtt__v_prefilter(spc->pixels + r->x + r->y*spc->stride_in_bytes, + r->w, r->h, spc->stride_in_bytes, + spc->v_oversample); + + bc->x0 = (stbtt_int16) r->x; + bc->y0 = (stbtt_int16) r->y; + bc->x1 = (stbtt_int16) (r->x + r->w); + bc->y1 = (stbtt_int16) (r->y + r->h); + bc->xadvance = scale * advance; + bc->xoff = (float) x0 * recip_h + sub_x; + bc->yoff = (float) y0 * recip_v + sub_y; + bc->xoff2 = (x0 + r->w) * recip_h + sub_x; + bc->yoff2 = (y0 + r->h) * recip_v + sub_y; + } else { + return_value = 0; // if any fail, report failure + } + + ++k; + } + } + + // restore original values + spc->h_oversample = old_h_over; + spc->v_oversample = old_v_over; + + return return_value; +} + +STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, stbrp_rect *rects, int num_rects) +{ + stbrp_pack_rects((stbrp_context *) spc->pack_info, rects, num_rects); +} + +STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, stbtt_pack_range *ranges, int num_ranges) +{ + stbtt_fontinfo info; + int i,j,n, return_value = 1; + //stbrp_context *context = (stbrp_context *) spc->pack_info; + stbrp_rect *rects; + + // flag all characters as NOT packed + for (i=0; i < num_ranges; ++i) + for (j=0; j < ranges[i].num_chars; ++j) + ranges[i].chardata_for_range[j].x0 = + ranges[i].chardata_for_range[j].y0 = + ranges[i].chardata_for_range[j].x1 = + ranges[i].chardata_for_range[j].y1 = 0; + + n = 0; + for (i=0; i < num_ranges; ++i) + n += ranges[i].num_chars; + + rects = (stbrp_rect *) STBTT_malloc(sizeof(*rects) * n, spc->user_allocator_context); + if (rects == NULL) + return 0; + + stbtt_InitFont(&info, fontdata, stbtt_GetFontOffsetForIndex(fontdata,font_index)); + + n = stbtt_PackFontRangesGatherRects(spc, &info, ranges, num_ranges, rects); + + stbtt_PackFontRangesPackRects(spc, rects, n); + + return_value = stbtt_PackFontRangesRenderIntoRects(spc, &info, ranges, num_ranges, rects); + + STBTT_free(rects, spc->user_allocator_context); + return return_value; +} + +STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, float font_size, + int first_unicode_codepoint_in_range, int num_chars_in_range, stbtt_packedchar *chardata_for_range) +{ + stbtt_pack_range range; + range.first_unicode_codepoint_in_range = first_unicode_codepoint_in_range; + range.array_of_unicode_codepoints = NULL; + range.num_chars = num_chars_in_range; + range.chardata_for_range = chardata_for_range; + range.font_size = font_size; + return stbtt_PackFontRanges(spc, fontdata, font_index, &range, 1); +} + +STBTT_DEF void stbtt_GetPackedQuad(stbtt_packedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int align_to_integer) +{ + float ipw = 1.0f / pw, iph = 1.0f / ph; + stbtt_packedchar *b = chardata + char_index; + + if (align_to_integer) { + float x = (float) STBTT_ifloor((*xpos + b->xoff) + 0.5f); + float y = (float) STBTT_ifloor((*ypos + b->yoff) + 0.5f); + q->x0 = x; + q->y0 = y; + q->x1 = x + b->xoff2 - b->xoff; + q->y1 = y + b->yoff2 - b->yoff; + } else { + q->x0 = *xpos + b->xoff; + q->y0 = *ypos + b->yoff; + q->x1 = *xpos + b->xoff2; + q->y1 = *ypos + b->yoff2; + } + + q->s0 = b->x0 * ipw; + q->t0 = b->y0 * iph; + q->s1 = b->x1 * ipw; + q->t1 = b->y1 * iph; + + *xpos += b->xadvance; +} + + +////////////////////////////////////////////////////////////////////////////// +// +// font name matching -- recommended not to use this +// + +// check if a utf8 string contains a prefix which is the utf16 string; if so return length of matching utf8 string +static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 *s1, stbtt_int32 len1, const stbtt_uint8 *s2, stbtt_int32 len2) +{ + stbtt_int32 i=0; + + // convert utf16 to utf8 and compare the results while converting + while (len2) { + stbtt_uint16 ch = s2[0]*256 + s2[1]; + if (ch < 0x80) { + if (i >= len1) return -1; + if (s1[i++] != ch) return -1; + } else if (ch < 0x800) { + if (i+1 >= len1) return -1; + if (s1[i++] != 0xc0 + (ch >> 6)) return -1; + if (s1[i++] != 0x80 + (ch & 0x3f)) return -1; + } else if (ch >= 0xd800 && ch < 0xdc00) { + stbtt_uint32 c; + stbtt_uint16 ch2 = s2[2]*256 + s2[3]; + if (i+3 >= len1) return -1; + c = ((ch - 0xd800) << 10) + (ch2 - 0xdc00) + 0x10000; + if (s1[i++] != 0xf0 + (c >> 18)) return -1; + if (s1[i++] != 0x80 + ((c >> 12) & 0x3f)) return -1; + if (s1[i++] != 0x80 + ((c >> 6) & 0x3f)) return -1; + if (s1[i++] != 0x80 + ((c ) & 0x3f)) return -1; + s2 += 2; // plus another 2 below + len2 -= 2; + } else if (ch >= 0xdc00 && ch < 0xe000) { + return -1; + } else { + if (i+2 >= len1) return -1; + if (s1[i++] != 0xe0 + (ch >> 12)) return -1; + if (s1[i++] != 0x80 + ((ch >> 6) & 0x3f)) return -1; + if (s1[i++] != 0x80 + ((ch ) & 0x3f)) return -1; + } + s2 += 2; + len2 -= 2; + } + return i; +} + +STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2) +{ + return len1 == stbtt__CompareUTF8toUTF16_bigendian_prefix((const stbtt_uint8*) s1, len1, (const stbtt_uint8*) s2, len2); +} + +// returns results in whatever encoding you request... but note that 2-byte encodings +// will be BIG-ENDIAN... use stbtt_CompareUTF8toUTF16_bigendian() to compare +STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font, int *length, int platformID, int encodingID, int languageID, int nameID) +{ + stbtt_int32 i,count,stringOffset; + stbtt_uint8 *fc = font->data; + stbtt_uint32 offset = font->fontstart; + stbtt_uint32 nm = stbtt__find_table(fc, offset, "name"); + if (!nm) return NULL; + + count = ttUSHORT(fc+nm+2); + stringOffset = nm + ttUSHORT(fc+nm+4); + for (i=0; i < count; ++i) { + stbtt_uint32 loc = nm + 6 + 12 * i; + if (platformID == ttUSHORT(fc+loc+0) && encodingID == ttUSHORT(fc+loc+2) + && languageID == ttUSHORT(fc+loc+4) && nameID == ttUSHORT(fc+loc+6)) { + *length = ttUSHORT(fc+loc+8); + return (const char *) (fc+stringOffset+ttUSHORT(fc+loc+10)); + } + } + return NULL; +} + +static int stbtt__matchpair(stbtt_uint8 *fc, stbtt_uint32 nm, stbtt_uint8 *name, stbtt_int32 nlen, stbtt_int32 target_id, stbtt_int32 next_id) +{ + stbtt_int32 i; + stbtt_int32 count = ttUSHORT(fc+nm+2); + stbtt_int32 stringOffset = nm + ttUSHORT(fc+nm+4); + + for (i=0; i < count; ++i) { + stbtt_uint32 loc = nm + 6 + 12 * i; + stbtt_int32 id = ttUSHORT(fc+loc+6); + if (id == target_id) { + // find the encoding + stbtt_int32 platform = ttUSHORT(fc+loc+0), encoding = ttUSHORT(fc+loc+2), language = ttUSHORT(fc+loc+4); + + // is this a Unicode encoding? + if (platform == 0 || (platform == 3 && encoding == 1) || (platform == 3 && encoding == 10)) { + stbtt_int32 slen = ttUSHORT(fc+loc+8); + stbtt_int32 off = ttUSHORT(fc+loc+10); + + // check if there's a prefix match + stbtt_int32 matchlen = stbtt__CompareUTF8toUTF16_bigendian_prefix(name, nlen, fc+stringOffset+off,slen); + if (matchlen >= 0) { + // check for target_id+1 immediately following, with same encoding & language + if (i+1 < count && ttUSHORT(fc+loc+12+6) == next_id && ttUSHORT(fc+loc+12) == platform && ttUSHORT(fc+loc+12+2) == encoding && ttUSHORT(fc+loc+12+4) == language) { + slen = ttUSHORT(fc+loc+12+8); + off = ttUSHORT(fc+loc+12+10); + if (slen == 0) { + if (matchlen == nlen) + return 1; + } else if (matchlen < nlen && name[matchlen] == ' ') { + ++matchlen; + if (stbtt_CompareUTF8toUTF16_bigendian((char*) (name+matchlen), nlen-matchlen, (char*)(fc+stringOffset+off),slen)) + return 1; + } + } else { + // if nothing immediately following + if (matchlen == nlen) + return 1; + } + } + } + + // @TODO handle other encodings + } + } + return 0; +} + +static int stbtt__matches(stbtt_uint8 *fc, stbtt_uint32 offset, stbtt_uint8 *name, stbtt_int32 flags) +{ + stbtt_int32 nlen = (stbtt_int32) STBTT_strlen((char *) name); + stbtt_uint32 nm,hd; + if (!stbtt__isfont(fc+offset)) return 0; + + // check italics/bold/underline flags in macStyle... + if (flags) { + hd = stbtt__find_table(fc, offset, "head"); + if ((ttUSHORT(fc+hd+44) & 7) != (flags & 7)) return 0; + } + + nm = stbtt__find_table(fc, offset, "name"); + if (!nm) return 0; + + if (flags) { + // if we checked the macStyle flags, then just check the family and ignore the subfamily + if (stbtt__matchpair(fc, nm, name, nlen, 16, -1)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 1, -1)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 3, -1)) return 1; + } else { + if (stbtt__matchpair(fc, nm, name, nlen, 16, 17)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 1, 2)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 3, -1)) return 1; + } + + return 0; +} + +STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *font_collection, const char *name_utf8, stbtt_int32 flags) +{ + stbtt_int32 i; + for (i=0;;++i) { + stbtt_int32 off = stbtt_GetFontOffsetForIndex(font_collection, i); + if (off < 0) return off; + if (stbtt__matches((stbtt_uint8 *) font_collection, off, (stbtt_uint8*) name_utf8, flags)) + return off; + } +} + +#endif // STB_TRUETYPE_IMPLEMENTATION + + +// FULL VERSION HISTORY +// +// 1.07 (2015-08-01) allow PackFontRanges to accept arrays of sparse codepoints; +// allow PackFontRanges to pack and render in separate phases; +// fix stbtt_GetFontOFfsetForIndex (never worked for non-0 input?); +// fixed an assert() bug in the new rasterizer +// replace assert() with STBTT_assert() in new rasterizer +// 1.06 (2015-07-14) performance improvements (~35% faster on x86 and x64 on test machine) +// also more precise AA rasterizer, except if shapes overlap +// remove need for STBTT_sort +// 1.05 (2015-04-15) fix misplaced definitions for STBTT_STATIC +// 1.04 (2015-04-15) typo in example +// 1.03 (2015-04-12) STBTT_STATIC, fix memory leak in new packing, various fixes +// 1.02 (2014-12-10) fix various warnings & compile issues w/ stb_rect_pack, C++ +// 1.01 (2014-12-08) fix subpixel position when oversampling to exactly match +// non-oversampled; STBTT_POINT_SIZE for packed case only +// 1.00 (2014-12-06) add new PackBegin etc. API, w/ support for oversampling +// 0.99 (2014-09-18) fix multiple bugs with subpixel rendering (ryg) +// 0.9 (2014-08-07) support certain mac/iOS fonts without an MS platformID +// 0.8b (2014-07-07) fix a warning +// 0.8 (2014-05-25) fix a few more warnings +// 0.7 (2013-09-25) bugfix: subpixel glyph bug fixed in 0.5 had come back +// 0.6c (2012-07-24) improve documentation +// 0.6b (2012-07-20) fix a few more warnings +// 0.6 (2012-07-17) fix warnings; added stbtt_ScaleForMappingEmToPixels, +// stbtt_GetFontBoundingBox, stbtt_IsGlyphEmpty +// 0.5 (2011-12-09) bugfixes: +// subpixel glyph renderer computed wrong bounding box +// first vertex of shape can be off-curve (FreeSans) +// 0.4b (2011-12-03) fixed an error in the font baking example +// 0.4 (2011-12-01) kerning, subpixel rendering (tor) +// bugfixes for: +// codepoint-to-glyph conversion using table fmt=12 +// codepoint-to-glyph conversion using table fmt=4 +// stbtt_GetBakedQuad with non-square texture (Zer) +// updated Hello World! sample to use kerning and subpixel +// fixed some warnings +// 0.3 (2009-06-24) cmap fmt=12, compound shapes (MM) +// userdata, malloc-from-userdata, non-zero fill (stb) +// 0.2 (2009-03-11) Fix unsigned/signed char warnings +// 0.1 (2009-03-09) First public release +// diff --git a/samples/dual_layer/D3D11/src/tiny_obj_loader.h b/samples/dual_layer/D3D11/src/tiny_obj_loader.h new file mode 100644 index 0000000..c2b49b3 --- /dev/null +++ b/samples/dual_layer/D3D11/src/tiny_obj_loader.h @@ -0,0 +1,1578 @@ +/* +The MIT License (MIT) + +Copyright (c) 2012-2016 Syoyo Fujita and many contributors. + +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 +copies 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 copies 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. +*/ + +// +// version 1.0.0 : Change data structure. Change license from BSD to MIT. +// + +// +// Use this in *one* .cc +// #define TINYOBJLOADER_IMPLEMENTATION +// #include "tiny_obj_loader.h" +// + +#ifndef TINY_OBJ_LOADER_H_ +#define TINY_OBJ_LOADER_H_ + +#include +#include +#include + +namespace tinyobj { + +typedef struct { + std::string name; + + float ambient[3]; + float diffuse[3]; + float specular[3]; + float transmittance[3]; + float emission[3]; + float shininess; + float ior; // index of refraction + float dissolve; // 1 == opaque; 0 == fully transparent + // illumination model (see http://www.fileformat.info/format/material/) + int illum; + + int dummy; // Suppress padding warning. + + std::string ambient_texname; // map_Ka + std::string diffuse_texname; // map_Kd + std::string specular_texname; // map_Ks + std::string specular_highlight_texname; // map_Ns + std::string bump_texname; // map_bump, bump + std::string displacement_texname; // disp + std::string alpha_texname; // map_d + + // PBR extension + // http://exocortex.com/blog/extending_wavefront_mtl_to_support_pbr + float roughness; // [0, 1] default 0 + float metallic; // [0, 1] default 0 + float sheen; // [0, 1] default 0 + float clearcoat_thickness; // [0, 1] default 0 + float clearcoat_roughness; // [0, 1] default 0 + float anisotropy; // aniso. [0, 1] default 0 + float anisotropy_rotation; // anisor. [0, 1] default 0 + std::string roughness_texname; // map_Pr + std::string metallic_texname; // map_Pm + std::string sheen_texname; // map_Ps + std::string emissive_texname; // map_Ke + std::string normal_texname; // norm. For normal mapping. + + std::map unknown_parameter; +} material_t; + +typedef struct { + std::string name; + + std::vector intValues; + std::vector floatValues; + std::vector stringValues; +} tag_t; + +// Index struct to support differnt indices for vtx/normal/texcoord. +// -1 means not used. +typedef struct { + int vertex_index; + int normal_index; + int texcoord_index; +} index_t; + +typedef struct { + std::vector indices; + std::vector num_face_vertices; // The number of vertices per + // face. 3 = polygon, 4 = quad, + // ... Up to 255. + std::vector material_ids; // per-face material ID + std::vector tags; // SubD tag +} mesh_t; + +typedef struct { + std::string name; + mesh_t mesh; +} shape_t; + +// Vertex attributes +typedef struct { + std::vector vertices; // 'v' + std::vector normals; // 'vn' + std::vector texcoords; // 'vt' +} attrib_t; + +typedef struct callback_t_ { + // W is optional and set to 1 if there is no `w` item in `v` line + void (*vertex_cb)(void *user_data, float x, float y, float z, float w); + void (*normal_cb)(void *user_data, float x, float y, float z); + + // y and z are optional and set to 0 if there is no `y` and/or `z` item(s) in + // `vt` line. + void (*texcoord_cb)(void *user_data, float x, float y, float z); + + // called per 'f' line. num_indices is the number of face indices(e.g. 3 for + // triangle, 4 for quad) + // 0 will be passed for undefined index in index_t members. + void (*index_cb)(void *user_data, index_t *indices, int num_indices); + // `name` material name, `material_id` = the array index of material_t[]. -1 + // if + // a material not found in .mtl + void (*usemtl_cb)(void *user_data, const char *name, int material_id); + // `materials` = parsed material data. + void (*mtllib_cb)(void *user_data, const material_t *materials, + int num_materials); + // There may be multiple group names + void (*group_cb)(void *user_data, const char **names, int num_names); + void (*object_cb)(void *user_data, const char *name); + + callback_t_() + : vertex_cb(NULL), + normal_cb(NULL), + texcoord_cb(NULL), + index_cb(NULL), + usemtl_cb(NULL), + mtllib_cb(NULL), + group_cb(NULL), + object_cb(NULL) {} +} callback_t; + +class MaterialReader { + public: + MaterialReader() {} + virtual ~MaterialReader(); + + virtual bool operator()(const std::string &matId, + std::vector *materials, + std::map *matMap, + std::string *err) = 0; +}; + +class MaterialFileReader : public MaterialReader { + public: + explicit MaterialFileReader(const std::string &mtl_basepath) + : m_mtlBasePath(mtl_basepath) {} + virtual ~MaterialFileReader() {} + virtual bool operator()(const std::string &matId, + std::vector *materials, + std::map *matMap, std::string *err); + + private: + std::string m_mtlBasePath; +}; + +/// Loads .obj from a file. +/// 'attrib', 'shapes' and 'materials' will be filled with parsed shape data +/// 'shapes' will be filled with parsed shape data +/// Returns true when loading .obj become success. +/// Returns warning and error message into `err` +/// 'mtl_basepath' is optional, and used for base path for .mtl file. +/// 'triangulate' is optional, and used whether triangulate polygon face in .obj +/// or not. +bool LoadObj(attrib_t *attrib, std::vector *shapes, + std::vector *materials, std::string *err, + const char *filename, const char *mtl_basepath = NULL, + bool triangulate = true); + +/// Loads .obj from a file with custom user callback. +/// .mtl is loaded as usual and parsed material_t data will be passed to +/// `callback.mtllib_cb`. +/// Returns true when loading .obj/.mtl become success. +/// Returns warning and error message into `err` +/// See `examples/callback_api/` for how to use this function. +bool LoadObjWithCallback(std::istream &inStream, const callback_t &callback, + void *user_data = NULL, + MaterialReader *readMatFn = NULL, + std::string *err = NULL); + +/// Loads object from a std::istream, uses GetMtlIStreamFn to retrieve +/// std::istream for materials. +/// Returns true when loading .obj become success. +/// Returns warning and error message into `err` +bool LoadObj(attrib_t *attrib, std::vector *shapes, + std::vector *materials, std::string *err, + std::istream *inStream, MaterialReader *readMatFn, + bool triangulate = true); + +/// Loads materials into std::map +void LoadMtl(std::map *material_map, + std::vector *materials, std::istream *inStream); + +} // namespace tinyobj + +#ifdef TINYOBJLOADER_IMPLEMENTATION +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +namespace tinyobj { + +MaterialReader::~MaterialReader() {} + +#define TINYOBJ_SSCANF_BUFFER_SIZE (4096) + +struct vertex_index { + int v_idx, vt_idx, vn_idx; + vertex_index() : v_idx(-1), vt_idx(-1), vn_idx(-1) {} + explicit vertex_index(int idx) : v_idx(idx), vt_idx(idx), vn_idx(idx) {} + vertex_index(int vidx, int vtidx, int vnidx) + : v_idx(vidx), vt_idx(vtidx), vn_idx(vnidx) {} +}; + +struct tag_sizes { + tag_sizes() : num_ints(0), num_floats(0), num_strings(0) {} + int num_ints; + int num_floats; + int num_strings; +}; + +struct obj_shape { + std::vector v; + std::vector vn; + std::vector vt; +}; + +#define IS_SPACE(x) (((x) == ' ') || ((x) == '\t')) +#define IS_DIGIT(x) \ + (static_cast((x) - '0') < static_cast(10)) +#define IS_NEW_LINE(x) (((x) == '\r') || ((x) == '\n') || ((x) == '\0')) + +// Make index zero-base, and also support relative index. +static inline int fixIndex(int idx, int n) { + if (idx > 0) return idx - 1; + if (idx == 0) return 0; + return n + idx; // negative value = relative +} + +static inline std::string parseString(const char **token) { + std::string s; + (*token) += strspn((*token), " \t"); + size_t e = strcspn((*token), " \t\r"); + s = std::string((*token), &(*token)[e]); + (*token) += e; + return s; +} + +static inline int parseInt(const char **token) { + (*token) += strspn((*token), " \t"); + int i = atoi((*token)); + (*token) += strcspn((*token), " \t\r"); + return i; +} + +// Tries to parse a floating point number located at s. +// +// s_end should be a location in the string where reading should absolutely +// stop. For example at the end of the string, to prevent buffer overflows. +// +// Parses the following EBNF grammar: +// sign = "+" | "-" ; +// END = ? anything not in digit ? +// digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ; +// integer = [sign] , digit , {digit} ; +// decimal = integer , ["." , integer] ; +// float = ( decimal , END ) | ( decimal , ("E" | "e") , integer , END ) ; +// +// Valid strings are for example: +// -0 +3.1417e+2 -0.0E-3 1.0324 -1.41 11e2 +// +// If the parsing is a success, result is set to the parsed value and true +// is returned. +// +// The function is greedy and will parse until any of the following happens: +// - a non-conforming character is encountered. +// - s_end is reached. +// +// The following situations triggers a failure: +// - s >= s_end. +// - parse failure. +// +static bool tryParseDouble(const char *s, const char *s_end, double *result) { + if (s >= s_end) { + return false; + } + + double mantissa = 0.0; + // This exponent is base 2 rather than 10. + // However the exponent we parse is supposed to be one of ten, + // thus we must take care to convert the exponent/and or the + // mantissa to a * 2^E, where a is the mantissa and E is the + // exponent. + // To get the final double we will use ldexp, it requires the + // exponent to be in base 2. + int exponent = 0; + + // NOTE: THESE MUST BE DECLARED HERE SINCE WE ARE NOT ALLOWED + // TO JUMP OVER DEFINITIONS. + char sign = '+'; + char exp_sign = '+'; + char const *curr = s; + + // How many characters were read in a loop. + int read = 0; + // Tells whether a loop terminated due to reaching s_end. + bool end_not_reached = false; + + /* + BEGIN PARSING. + */ + + // Find out what sign we've got. + if (*curr == '+' || *curr == '-') { + sign = *curr; + curr++; + } else if (IS_DIGIT(*curr)) { /* Pass through. */ + } else { + goto fail; + } + + // Read the integer part. + end_not_reached = (curr != s_end); + while (end_not_reached && IS_DIGIT(*curr)) { + mantissa *= 10; + mantissa += static_cast(*curr - 0x30); + curr++; + read++; + end_not_reached = (curr != s_end); + } + + // We must make sure we actually got something. + if (read == 0) goto fail; + // We allow numbers of form "#", "###" etc. + if (!end_not_reached) goto assemble; + + // Read the decimal part. + if (*curr == '.') { + curr++; + read = 1; + end_not_reached = (curr != s_end); + while (end_not_reached && IS_DIGIT(*curr)) { + // NOTE: Don't use powf here, it will absolutely murder precision. + mantissa += static_cast(*curr - 0x30) * pow(10.0, -read); + read++; + curr++; + end_not_reached = (curr != s_end); + } + } else if (*curr == 'e' || *curr == 'E') { + } else { + goto assemble; + } + + if (!end_not_reached) goto assemble; + + // Read the exponent part. + if (*curr == 'e' || *curr == 'E') { + curr++; + // Figure out if a sign is present and if it is. + end_not_reached = (curr != s_end); + if (end_not_reached && (*curr == '+' || *curr == '-')) { + exp_sign = *curr; + curr++; + } else if (IS_DIGIT(*curr)) { /* Pass through. */ + } else { + // Empty E is not allowed. + goto fail; + } + + read = 0; + end_not_reached = (curr != s_end); + while (end_not_reached && IS_DIGIT(*curr)) { + exponent *= 10; + exponent += static_cast(*curr - 0x30); + curr++; + read++; + end_not_reached = (curr != s_end); + } + exponent *= (exp_sign == '+' ? 1 : -1); + if (read == 0) goto fail; + } + +assemble: + *result = + (sign == '+' ? 1 : -1) * ldexp(mantissa * pow(5.0, exponent), exponent); + return true; +fail: + return false; +} + +static inline float parseFloat(const char **token, double default_value = 0.0) { + (*token) += strspn((*token), " \t"); + const char *end = (*token) + strcspn((*token), " \t\r"); + double val = default_value; + tryParseDouble((*token), end, &val); + float f = static_cast(val); + (*token) = end; + return f; +} + +static inline void parseFloat2(float *x, float *y, const char **token) { + (*x) = parseFloat(token); + (*y) = parseFloat(token); +} + +static inline void parseFloat3(float *x, float *y, float *z, + const char **token) { + (*x) = parseFloat(token); + (*y) = parseFloat(token); + (*z) = parseFloat(token); +} + +static inline void parseV(float *x, float *y, float *z, float *w, + const char **token) { + (*x) = parseFloat(token); + (*y) = parseFloat(token); + (*z) = parseFloat(token); + (*w) = parseFloat(token, 1.0); +} + +static tag_sizes parseTagTriple(const char **token) { + tag_sizes ts; + + ts.num_ints = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return ts; + } + (*token)++; + + ts.num_floats = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return ts; + } + (*token)++; + + ts.num_strings = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r") + 1; + + return ts; +} + +// Parse triples with index offsets: i, i/j/k, i//k, i/j +static vertex_index parseTriple(const char **token, int vsize, int vnsize, + int vtsize) { + vertex_index vi(-1); + + vi.v_idx = fixIndex(atoi((*token)), vsize); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return vi; + } + (*token)++; + + // i//k + if ((*token)[0] == '/') { + (*token)++; + vi.vn_idx = fixIndex(atoi((*token)), vnsize); + (*token) += strcspn((*token), "/ \t\r"); + return vi; + } + + // i/j/k or i/j + vi.vt_idx = fixIndex(atoi((*token)), vtsize); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return vi; + } + + // i/j/k + (*token)++; // skip '/' + vi.vn_idx = fixIndex(atoi((*token)), vnsize); + (*token) += strcspn((*token), "/ \t\r"); + return vi; +} + +// Parse raw triples: i, i/j/k, i//k, i/j +static vertex_index parseRawTriple(const char **token) { + vertex_index vi(static_cast(0)); // 0 is an invalid index in OBJ + + vi.v_idx = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return vi; + } + (*token)++; + + // i//k + if ((*token)[0] == '/') { + (*token)++; + vi.vn_idx = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + return vi; + } + + // i/j/k or i/j + vi.vt_idx = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return vi; + } + + // i/j/k + (*token)++; // skip '/' + vi.vn_idx = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + return vi; +} + +static void InitMaterial(material_t *material) { + material->name = ""; + material->ambient_texname = ""; + material->diffuse_texname = ""; + material->specular_texname = ""; + material->specular_highlight_texname = ""; + material->bump_texname = ""; + material->displacement_texname = ""; + material->alpha_texname = ""; + for (int i = 0; i < 3; i++) { + material->ambient[i] = 0.f; + material->diffuse[i] = 0.f; + material->specular[i] = 0.f; + material->transmittance[i] = 0.f; + material->emission[i] = 0.f; + } + material->illum = 0; + material->dissolve = 1.f; + material->shininess = 1.f; + material->ior = 1.f; + + material->roughness = 0.f; + material->metallic = 0.f; + material->sheen = 0.f; + material->clearcoat_thickness = 0.f; + material->clearcoat_roughness = 0.f; + material->anisotropy_rotation = 0.f; + material->anisotropy = 0.f; + material->roughness_texname = ""; + material->metallic_texname = ""; + material->sheen_texname = ""; + material->emissive_texname = ""; + material->normal_texname = ""; + + material->unknown_parameter.clear(); +} + +static bool exportFaceGroupToShape( + shape_t *shape, const std::vector > &faceGroup, + const std::vector &tags, const int material_id, + const std::string &name, bool triangulate) { + if (faceGroup.empty()) { + return false; + } + + // Flatten vertices and indices + for (size_t i = 0; i < faceGroup.size(); i++) { + const std::vector &face = faceGroup[i]; + + vertex_index i0 = face[0]; + vertex_index i1(-1); + vertex_index i2 = face[1]; + + size_t npolys = face.size(); + + if (triangulate) { + // Polygon -> triangle fan conversion + for (size_t k = 2; k < npolys; k++) { + i1 = i2; + i2 = face[k]; + + index_t idx0, idx1, idx2; + idx0.vertex_index = i0.v_idx; + idx0.normal_index = i0.vn_idx; + idx0.texcoord_index = i0.vt_idx; + idx1.vertex_index = i1.v_idx; + idx1.normal_index = i1.vn_idx; + idx1.texcoord_index = i1.vt_idx; + idx2.vertex_index = i2.v_idx; + idx2.normal_index = i2.vn_idx; + idx2.texcoord_index = i2.vt_idx; + + shape->mesh.indices.push_back(idx0); + shape->mesh.indices.push_back(idx1); + shape->mesh.indices.push_back(idx2); + + shape->mesh.num_face_vertices.push_back(3); + shape->mesh.material_ids.push_back(material_id); + } + } else { + for (size_t k = 0; k < npolys; k++) { + index_t idx; + idx.vertex_index = face[k].v_idx; + idx.normal_index = face[k].vn_idx; + idx.texcoord_index = face[k].vt_idx; + shape->mesh.indices.push_back(idx); + } + + shape->mesh.num_face_vertices.push_back( + static_cast(npolys)); + shape->mesh.material_ids.push_back(material_id); // per face + } + } + + shape->name = name; + shape->mesh.tags = tags; + + return true; +} + +void LoadMtl(std::map *material_map, + std::vector *materials, std::istream *inStream) { + // Create a default material anyway. + material_t material; + InitMaterial(&material); + + size_t maxchars = 8192; // Alloc enough size. + std::vector buf(maxchars); // Alloc enough size. + while (inStream->peek() != -1) { + inStream->getline(&buf[0], static_cast(maxchars)); + + std::string linebuf(&buf[0]); + + // Trim trailing whitespace. + if (linebuf.size() > 0) { + linebuf = linebuf.substr(0, linebuf.find_last_not_of(" \t") + 1); + } + + // Trim newline '\r\n' or '\n' + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\n') + linebuf.erase(linebuf.size() - 1); + } + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\r') + linebuf.erase(linebuf.size() - 1); + } + + // Skip if empty line. + if (linebuf.empty()) { + continue; + } + + // Skip leading space. + const char *token = linebuf.c_str(); + token += strspn(token, " \t"); + + assert(token); + if (token[0] == '\0') continue; // empty line + + if (token[0] == '#') continue; // comment line + + // new mtl + if ((0 == strncmp(token, "newmtl", 6)) && IS_SPACE((token[6]))) { + // flush previous material. + if (!material.name.empty()) { + material_map->insert(std::pair( + material.name, static_cast(materials->size()))); + materials->push_back(material); + } + + // initial temporary material + InitMaterial(&material); + + // set new mtl name + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + material.name = namebuf; + continue; + } + + // ambient + if (token[0] == 'K' && token[1] == 'a' && IS_SPACE((token[2]))) { + token += 2; + float r, g, b; + parseFloat3(&r, &g, &b, &token); + material.ambient[0] = r; + material.ambient[1] = g; + material.ambient[2] = b; + continue; + } + + // diffuse + if (token[0] == 'K' && token[1] == 'd' && IS_SPACE((token[2]))) { + token += 2; + float r, g, b; + parseFloat3(&r, &g, &b, &token); + material.diffuse[0] = r; + material.diffuse[1] = g; + material.diffuse[2] = b; + continue; + } + + // specular + if (token[0] == 'K' && token[1] == 's' && IS_SPACE((token[2]))) { + token += 2; + float r, g, b; + parseFloat3(&r, &g, &b, &token); + material.specular[0] = r; + material.specular[1] = g; + material.specular[2] = b; + continue; + } + + // transmittance + if ((token[0] == 'K' && token[1] == 't' && IS_SPACE((token[2]))) || + (token[0] == 'T' && token[1] == 'f' && IS_SPACE((token[2])))) { + token += 2; + float r, g, b; + parseFloat3(&r, &g, &b, &token); + material.transmittance[0] = r; + material.transmittance[1] = g; + material.transmittance[2] = b; + continue; + } + + // ior(index of refraction) + if (token[0] == 'N' && token[1] == 'i' && IS_SPACE((token[2]))) { + token += 2; + material.ior = parseFloat(&token); + continue; + } + + // emission + if (token[0] == 'K' && token[1] == 'e' && IS_SPACE(token[2])) { + token += 2; + float r, g, b; + parseFloat3(&r, &g, &b, &token); + material.emission[0] = r; + material.emission[1] = g; + material.emission[2] = b; + continue; + } + + // shininess + if (token[0] == 'N' && token[1] == 's' && IS_SPACE(token[2])) { + token += 2; + material.shininess = parseFloat(&token); + continue; + } + + // illum model + if (0 == strncmp(token, "illum", 5) && IS_SPACE(token[5])) { + token += 6; + material.illum = parseInt(&token); + continue; + } + + // dissolve + if ((token[0] == 'd' && IS_SPACE(token[1]))) { + token += 1; + material.dissolve = parseFloat(&token); + continue; + } + if (token[0] == 'T' && token[1] == 'r' && IS_SPACE(token[2])) { + token += 2; + // Invert value of Tr(assume Tr is in range [0, 1]) + material.dissolve = 1.0f - parseFloat(&token); + continue; + } + + // PBR: roughness + if (token[0] == 'P' && token[1] == 'r' && IS_SPACE(token[2])) { + token += 2; + material.roughness = parseFloat(&token); + continue; + } + + // PBR: metallic + if (token[0] == 'P' && token[1] == 'm' && IS_SPACE(token[2])) { + token += 2; + material.metallic = parseFloat(&token); + continue; + } + + // PBR: sheen + if (token[0] == 'P' && token[1] == 's' && IS_SPACE(token[2])) { + token += 2; + material.sheen = parseFloat(&token); + continue; + } + + // PBR: clearcoat thickness + if (token[0] == 'P' && token[1] == 'c' && IS_SPACE(token[2])) { + token += 2; + material.clearcoat_thickness = parseFloat(&token); + continue; + } + + // PBR: clearcoat roughness + if ((0 == strncmp(token, "Pcr", 3)) && IS_SPACE(token[3])) { + token += 4; + material.clearcoat_roughness = parseFloat(&token); + continue; + } + + // PBR: anisotropy + if ((0 == strncmp(token, "aniso", 5)) && IS_SPACE(token[5])) { + token += 6; + material.anisotropy = parseFloat(&token); + continue; + } + + // PBR: anisotropy rotation + if ((0 == strncmp(token, "anisor", 6)) && IS_SPACE(token[6])) { + token += 7; + material.anisotropy_rotation = parseFloat(&token); + continue; + } + + // ambient texture + if ((0 == strncmp(token, "map_Ka", 6)) && IS_SPACE(token[6])) { + token += 7; + material.ambient_texname = token; + continue; + } + + // diffuse texture + if ((0 == strncmp(token, "map_Kd", 6)) && IS_SPACE(token[6])) { + token += 7; + material.diffuse_texname = token; + continue; + } + + // specular texture + if ((0 == strncmp(token, "map_Ks", 6)) && IS_SPACE(token[6])) { + token += 7; + material.specular_texname = token; + continue; + } + + // specular highlight texture + if ((0 == strncmp(token, "map_Ns", 6)) && IS_SPACE(token[6])) { + token += 7; + material.specular_highlight_texname = token; + continue; + } + + // bump texture + if ((0 == strncmp(token, "map_bump", 8)) && IS_SPACE(token[8])) { + token += 9; + material.bump_texname = token; + continue; + } + + // alpha texture + if ((0 == strncmp(token, "map_d", 5)) && IS_SPACE(token[5])) { + token += 6; + material.alpha_texname = token; + continue; + } + + // bump texture + if ((0 == strncmp(token, "bump", 4)) && IS_SPACE(token[4])) { + token += 5; + material.bump_texname = token; + continue; + } + + // displacement texture + if ((0 == strncmp(token, "disp", 4)) && IS_SPACE(token[4])) { + token += 5; + material.displacement_texname = token; + continue; + } + + // PBR: roughness texture + if ((0 == strncmp(token, "map_Pr", 6)) && IS_SPACE(token[6])) { + token += 7; + material.roughness_texname = token; + continue; + } + + // PBR: metallic texture + if ((0 == strncmp(token, "map_Pm", 6)) && IS_SPACE(token[6])) { + token += 7; + material.metallic_texname = token; + continue; + } + + // PBR: sheen texture + if ((0 == strncmp(token, "map_Ps", 6)) && IS_SPACE(token[6])) { + token += 7; + material.sheen_texname = token; + continue; + } + + // PBR: emissive texture + if ((0 == strncmp(token, "map_Ke", 6)) && IS_SPACE(token[6])) { + token += 7; + material.emissive_texname = token; + continue; + } + + // PBR: normal map texture + if ((0 == strncmp(token, "norm", 4)) && IS_SPACE(token[4])) { + token += 5; + material.normal_texname = token; + continue; + } + + // unknown parameter + const char *_space = strchr(token, ' '); + if (!_space) { + _space = strchr(token, '\t'); + } + if (_space) { + std::ptrdiff_t len = _space - token; + std::string key(token, static_cast(len)); + std::string value = _space + 1; + material.unknown_parameter.insert( + std::pair(key, value)); + } + } + // flush last material. + material_map->insert(std::pair( + material.name, static_cast(materials->size()))); + materials->push_back(material); +} + +bool MaterialFileReader::operator()(const std::string &matId, + std::vector *materials, + std::map *matMap, + std::string *err) { + std::string filepath; + + if (!m_mtlBasePath.empty()) { + filepath = std::string(m_mtlBasePath) + matId; + } else { + filepath = matId; + } + + std::ifstream matIStream(filepath.c_str()); + LoadMtl(matMap, materials, &matIStream); + if (!matIStream) { + std::stringstream ss; + ss << "WARN: Material file [ " << filepath + << " ] not found. Created a default material."; + if (err) { + (*err) += ss.str(); + } + } + return true; +} + +bool LoadObj(attrib_t *attrib, std::vector *shapes, + std::vector *materials, std::string *err, + const char *filename, const char *mtl_basepath, + bool trianglulate) { + attrib->vertices.clear(); + attrib->normals.clear(); + attrib->texcoords.clear(); + shapes->clear(); + + std::stringstream errss; + + std::ifstream ifs(filename); + if (!ifs) { + errss << "Cannot open file [" << filename << "]" << std::endl; + if (err) { + (*err) = errss.str(); + } + return false; + } + + std::string basePath; + if (mtl_basepath) { + basePath = mtl_basepath; + } + MaterialFileReader matFileReader(basePath); + + return LoadObj(attrib, shapes, materials, err, &ifs, &matFileReader, + trianglulate); +} + +bool LoadObj(attrib_t *attrib, std::vector *shapes, + std::vector *materials, std::string *err, + std::istream *inStream, MaterialReader *readMatFn, + bool triangulate) { + std::stringstream errss; + + std::vector v; + std::vector vn; + std::vector vt; + std::vector tags; + std::vector > faceGroup; + std::string name; + + // material + std::map material_map; + int material = -1; + + shape_t shape; + + while (inStream->peek() != -1) { + std::string linebuf; + std::getline((*inStream), linebuf); + + // Trim newline '\r\n' or '\n' + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\n') + linebuf.erase(linebuf.size() - 1); + } + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\r') + linebuf.erase(linebuf.size() - 1); + } + + // Skip if empty line. + if (linebuf.empty()) { + continue; + } + + // Skip leading space. + const char *token = linebuf.c_str(); + token += strspn(token, " \t"); + + assert(token); + if (token[0] == '\0') continue; // empty line + + if (token[0] == '#') continue; // comment line + + // vertex + if (token[0] == 'v' && IS_SPACE((token[1]))) { + token += 2; + float x, y, z; + parseFloat3(&x, &y, &z, &token); + v.push_back(x); + v.push_back(y); + v.push_back(z); + continue; + } + + // normal + if (token[0] == 'v' && token[1] == 'n' && IS_SPACE((token[2]))) { + token += 3; + float x, y, z; + parseFloat3(&x, &y, &z, &token); + vn.push_back(x); + vn.push_back(y); + vn.push_back(z); + continue; + } + + // texcoord + if (token[0] == 'v' && token[1] == 't' && IS_SPACE((token[2]))) { + token += 3; + float x, y; + parseFloat2(&x, &y, &token); + vt.push_back(x); + vt.push_back(y); + continue; + } + + // face + if (token[0] == 'f' && IS_SPACE((token[1]))) { + token += 2; + token += strspn(token, " \t"); + + std::vector face; + face.reserve(3); + + while (!IS_NEW_LINE(token[0])) { + vertex_index vi = parseTriple(&token, static_cast(v.size() / 3), + static_cast(vn.size() / 3), + static_cast(vt.size() / 2)); + face.push_back(vi); + size_t n = strspn(token, " \t\r"); + token += n; + } + + // replace with emplace_back + std::move on C++11 + faceGroup.push_back(std::vector()); + faceGroup[faceGroup.size() - 1].swap(face); + + continue; + } + + // use mtl + if ((0 == strncmp(token, "usemtl", 6)) && IS_SPACE((token[6]))) { + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + + int newMaterialId = -1; + if (material_map.find(namebuf) != material_map.end()) { + newMaterialId = material_map[namebuf]; + } else { + // { error!! material not found } + } + + if (newMaterialId != material) { + // Create per-face material + exportFaceGroupToShape(&shape, faceGroup, tags, material, name, + triangulate); + faceGroup.clear(); + material = newMaterialId; + } + + continue; + } + + // load mtl + if ((0 == strncmp(token, "mtllib", 6)) && IS_SPACE((token[6]))) { + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + + std::string err_mtl; + bool ok = (*readMatFn)(namebuf, materials, &material_map, &err_mtl); + if (err) { + (*err) += err_mtl; + } + + if (!ok) { + faceGroup.clear(); // for safety + return false; + } + + continue; + } + + // group name + if (token[0] == 'g' && IS_SPACE((token[1]))) { + // flush previous face group. + bool ret = exportFaceGroupToShape(&shape, faceGroup, tags, material, name, + triangulate); + if (ret) { + shapes->push_back(shape); + } + + shape = shape_t(); + + // material = -1; + faceGroup.clear(); + + std::vector names; + names.reserve(2); + + while (!IS_NEW_LINE(token[0])) { + std::string str = parseString(&token); + names.push_back(str); + token += strspn(token, " \t\r"); // skip tag + } + + assert(names.size() > 0); + + // names[0] must be 'g', so skip the 0th element. + if (names.size() > 1) { + name = names[1]; + } else { + name = ""; + } + + continue; + } + + // object name + if (token[0] == 'o' && IS_SPACE((token[1]))) { + // flush previous face group. + bool ret = exportFaceGroupToShape(&shape, faceGroup, tags, material, name, + triangulate); + if (ret) { + shapes->push_back(shape); + } + + // material = -1; + faceGroup.clear(); + shape = shape_t(); + + // @todo { multiple object name? } + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 2; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + name = std::string(namebuf); + + continue; + } + + if (token[0] == 't' && IS_SPACE(token[1])) { + tag_t tag; + + char namebuf[4096]; + token += 2; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + tag.name = std::string(namebuf); + + token += tag.name.size() + 1; + + tag_sizes ts = parseTagTriple(&token); + + tag.intValues.resize(static_cast(ts.num_ints)); + + for (size_t i = 0; i < static_cast(ts.num_ints); ++i) { + tag.intValues[i] = atoi(token); + token += strcspn(token, "/ \t\r") + 1; + } + + tag.floatValues.resize(static_cast(ts.num_floats)); + for (size_t i = 0; i < static_cast(ts.num_floats); ++i) { + tag.floatValues[i] = parseFloat(&token); + token += strcspn(token, "/ \t\r") + 1; + } + + tag.stringValues.resize(static_cast(ts.num_strings)); + for (size_t i = 0; i < static_cast(ts.num_strings); ++i) { + char stringValueBuffer[4096]; + +#ifdef _MSC_VER + sscanf_s(token, "%s", stringValueBuffer, + (unsigned)_countof(stringValueBuffer)); +#else + sscanf(token, "%s", stringValueBuffer); +#endif + tag.stringValues[i] = stringValueBuffer; + token += tag.stringValues[i].size() + 1; + } + + tags.push_back(tag); + } + + // Ignore unknown command. + } + + bool ret = exportFaceGroupToShape(&shape, faceGroup, tags, material, name, + triangulate); + if (ret) { + shapes->push_back(shape); + } + faceGroup.clear(); // for safety + + if (err) { + (*err) += errss.str(); + } + + attrib->vertices.swap(v); + attrib->normals.swap(vn); + attrib->texcoords.swap(vt); + + return true; +} + +bool LoadObjWithCallback(std::istream &inStream, const callback_t &callback, + void *user_data /*= NULL*/, + MaterialReader *readMatFn /*= NULL*/, + std::string *err /*= NULL*/) { + std::stringstream errss; + + // material + std::map material_map; + int material_id = -1; // -1 = invalid + + std::vector indices; + std::vector materials; + std::vector names; + names.reserve(2); + std::string name; + std::vector names_out; + + std::string linebuf; + while (inStream.peek() != -1) { + std::getline(inStream, linebuf); + + // Trim newline '\r\n' or '\n' + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\n') + linebuf.erase(linebuf.size() - 1); + } + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\r') + linebuf.erase(linebuf.size() - 1); + } + + // Skip if empty line. + if (linebuf.empty()) { + continue; + } + + // Skip leading space. + const char *token = linebuf.c_str(); + token += strspn(token, " \t"); + + assert(token); + if (token[0] == '\0') continue; // empty line + + if (token[0] == '#') continue; // comment line + + // vertex + if (token[0] == 'v' && IS_SPACE((token[1]))) { + token += 2; + float x, y, z, w; // w is optional. default = 1.0 + parseV(&x, &y, &z, &w, &token); + if (callback.vertex_cb) { + callback.vertex_cb(user_data, x, y, z, w); + } + continue; + } + + // normal + if (token[0] == 'v' && token[1] == 'n' && IS_SPACE((token[2]))) { + token += 3; + float x, y, z; + parseFloat3(&x, &y, &z, &token); + if (callback.normal_cb) { + callback.normal_cb(user_data, x, y, z); + } + continue; + } + + // texcoord + if (token[0] == 'v' && token[1] == 't' && IS_SPACE((token[2]))) { + token += 3; + float x, y, z; // y and z are optional. default = 0.0 + parseFloat3(&x, &y, &z, &token); + if (callback.texcoord_cb) { + callback.texcoord_cb(user_data, x, y, z); + } + continue; + } + + // face + if (token[0] == 'f' && IS_SPACE((token[1]))) { + token += 2; + token += strspn(token, " \t"); + + indices.clear(); + while (!IS_NEW_LINE(token[0])) { + vertex_index vi = parseRawTriple(&token); + + index_t idx; + idx.vertex_index = vi.v_idx; + idx.normal_index = vi.vn_idx; + idx.texcoord_index = vi.vt_idx; + + indices.push_back(idx); + size_t n = strspn(token, " \t\r"); + token += n; + } + + if (callback.index_cb && indices.size() > 0) { + callback.index_cb(user_data, &indices.at(0), + static_cast(indices.size())); + } + + continue; + } + + // use mtl + if ((0 == strncmp(token, "usemtl", 6)) && IS_SPACE((token[6]))) { + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, + static_cast(_countof(namebuf))); +#else + sscanf(token, "%s", namebuf); +#endif + + int newMaterialId = -1; + if (material_map.find(namebuf) != material_map.end()) { + newMaterialId = material_map[namebuf]; + } else { + // { error!! material not found } + } + + if (newMaterialId != material_id) { + material_id = newMaterialId; + } + + if (callback.usemtl_cb) { + callback.usemtl_cb(user_data, namebuf, material_id); + } + + continue; + } + + // load mtl + if ((0 == strncmp(token, "mtllib", 6)) && IS_SPACE((token[6]))) { + if (readMatFn) { + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + + std::string err_mtl; + materials.clear(); + bool ok = (*readMatFn)(namebuf, &materials, &material_map, &err_mtl); + if (err) { + (*err) += err_mtl; + } + + if (!ok) { + return false; + } + + if (callback.mtllib_cb) { + callback.mtllib_cb(user_data, &materials.at(0), + static_cast(materials.size())); + } + } + + continue; + } + + // group name + if (token[0] == 'g' && IS_SPACE((token[1]))) { + names.clear(); + + while (!IS_NEW_LINE(token[0])) { + std::string str = parseString(&token); + names.push_back(str); + token += strspn(token, " \t\r"); // skip tag + } + + assert(names.size() > 0); + + // names[0] must be 'g', so skip the 0th element. + if (names.size() > 1) { + name = names[1]; + } else { + name.clear(); + } + + if (callback.group_cb) { + if (names.size() > 1) { + // create const char* array. + names_out.resize(names.size() - 1); + for (size_t j = 0; j < names_out.size(); j++) { + names_out[j] = names[j + 1].c_str(); + } + callback.group_cb(user_data, &names_out.at(0), + static_cast(names_out.size())); + + } else { + callback.group_cb(user_data, NULL, 0); + } + } + + continue; + } + + // object name + if (token[0] == 'o' && IS_SPACE((token[1]))) { + // @todo { multiple object name? } + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 2; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + std::string object_name = std::string(namebuf); + + if (callback.object_cb) { + callback.object_cb(user_data, object_name.c_str()); + } + + continue; + } + +#if 0 // @todo + if (token[0] == 't' && IS_SPACE(token[1])) { + tag_t tag; + + char namebuf[4096]; + token += 2; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + tag.name = std::string(namebuf); + + token += tag.name.size() + 1; + + tag_sizes ts = parseTagTriple(&token); + + tag.intValues.resize(static_cast(ts.num_ints)); + + for (size_t i = 0; i < static_cast(ts.num_ints); ++i) { + tag.intValues[i] = atoi(token); + token += strcspn(token, "/ \t\r") + 1; + } + + tag.floatValues.resize(static_cast(ts.num_floats)); + for (size_t i = 0; i < static_cast(ts.num_floats); ++i) { + tag.floatValues[i] = parseFloat(&token); + token += strcspn(token, "/ \t\r") + 1; + } + + tag.stringValues.resize(static_cast(ts.num_strings)); + for (size_t i = 0; i < static_cast(ts.num_strings); ++i) { + char stringValueBuffer[4096]; + +#ifdef _MSC_VER + sscanf_s(token, "%s", stringValueBuffer, + (unsigned)_countof(stringValueBuffer)); +#else + sscanf(token, "%s", stringValueBuffer); +#endif + tag.stringValues[i] = stringValueBuffer; + token += tag.stringValues[i].size() + 1; + } + + tags.push_back(tag); + } +#endif + + // Ignore unknown command. + } + + if (err) { + (*err) += errss.str(); + } + + return true; +} +} // namespace tinyobj + +#endif + +#endif // TINY_OBJ_LOADER_H_ diff --git a/samples/dual_layer/D3D12/media/Meshes/cube.obj b/samples/dual_layer/D3D12/media/Meshes/cube.obj new file mode 100644 index 0000000..7339cae --- /dev/null +++ b/samples/dual_layer/D3D12/media/Meshes/cube.obj @@ -0,0 +1,28 @@ +o Cube +v 9.900001 9.900000 19.800001 +v 9.900001 -9.900001 19.800001 +v -9.900002 -9.899999 19.800001 +v -9.899997 9.900004 19.800001 +v 9.900005 9.899995 0.000000 +v 9.899994 -9.900006 0.000000 +v -9.900004 -9.899997 0.000000 +v -9.900000 9.900001 0.000000 +vn -0.0000 0.0000 -1.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 -1.0000 0.0000 +s off +f 2//1 4//1 1//1 +f 8//2 6//2 5//2 +f 5//3 2//3 1//3 +f 6//4 3//4 2//4 +f 7//5 4//5 3//5 +f 1//6 8//6 5//6 +f 2//1 3//1 4//1 +f 8//2 7//2 6//2 +f 5//3 6//3 2//3 +f 6//4 7//4 3//4 +f 7//5 8//5 4//5 +f 1//6 4//6 8//6 diff --git a/samples/dual_layer/D3D12/media/Meshes/shaderBall.obj b/samples/dual_layer/D3D12/media/Meshes/shaderBall.obj new file mode 100644 index 0000000..4e57fb6 --- /dev/null +++ b/samples/dual_layer/D3D12/media/Meshes/shaderBall.obj @@ -0,0 +1,101517 @@ +# Source: https://github.com/derkreature/ShaderBall +# License: https://github.com/derkreature/ShaderBall/blob/master/LICENSE + +o ShaderBall +v 0.762625 -0.029111 1.973589 +v 0.769852 -0.029092 1.960994 +v 0.770320 -0.000211 1.961160 +v 0.763046 -0.000179 1.973839 +v 0.761402 -0.057967 1.972861 +v 0.768551 -0.057903 1.960410 +v 0.777023 -0.029014 1.948431 +v 0.777528 -0.000277 1.948511 +v 0.775653 -0.057693 1.947992 +v 0.759385 -0.086657 1.971662 +v 0.756591 -0.115117 1.970000 +v 0.763635 -0.114951 1.957772 +v 0.766461 -0.086546 1.959354 +v 0.770665 -0.114447 1.945591 +v 0.773504 -0.086200 1.947083 +v 0.783976 -0.112087 1.921205 +v 0.786759 -0.084511 1.922484 +v 0.780159 -0.085526 1.934709 +v 0.777337 -0.113493 1.933320 +v 0.788949 -0.056616 1.923080 +v 0.782337 -0.057270 1.935462 +v 0.790380 -0.028533 1.923211 +v 0.790934 -0.000417 1.923122 +v 0.784287 -0.000355 1.935744 +v 0.783749 -0.028834 1.935747 +v 0.721503 -0.289239 1.949130 +v 0.731288 -0.288590 1.932490 +v 0.742193 -0.243924 1.941706 +v 0.733633 -0.244466 1.956345 +v 0.705634 -0.338307 1.939692 +v 0.716940 -0.337554 1.920561 +v 0.741056 -0.286735 1.915938 +v 0.750758 -0.242395 1.927153 +v 0.728206 -0.335367 1.901521 +v 0.662831 -0.440541 1.914234 +v 0.677510 -0.439560 1.889444 +v 0.698972 -0.388579 1.906097 +v 0.685970 -0.389427 1.927996 +v 0.692129 -0.436701 1.864766 +v 0.711922 -0.386071 1.884294 +v 0.737427 -0.376123 1.841341 +v 0.724776 -0.381924 1.862685 +v 0.706657 -0.432003 1.840318 +v 0.720975 -0.425444 1.816179 +v 0.750465 -0.326750 1.864044 +v 0.739396 -0.331762 1.882655 +v 0.760343 -0.279406 1.883349 +v 0.767456 -0.236228 1.898383 +v 0.759203 -0.239836 1.912697 +v 0.750781 -0.283683 1.899547 +v 0.769699 -0.273907 1.867413 +v 0.775663 -0.231632 1.884361 +v 0.761253 -0.320291 1.845721 +v 0.778795 -0.267216 1.851804 +v 0.783569 -0.226000 1.870585 +v 0.771852 -0.312485 1.827821 +v 0.734993 -0.417026 1.792446 +v 0.749788 -0.368669 1.820345 +v 0.748797 -0.406881 1.769271 +v 0.761938 -0.359674 1.799839 +v 0.785143 -0.337092 1.760539 +v 0.773759 -0.349142 1.779880 +v 0.762127 -0.394942 1.746682 +v 0.775111 -0.381359 1.724836 +v 0.792036 -0.292866 1.793491 +v 0.782153 -0.303341 1.810394 +v 0.796273 -0.250480 1.821916 +v 0.798673 -0.211881 1.844151 +v 0.791316 -0.219428 1.857189 +v 0.787679 -0.259401 1.836622 +v 0.804529 -0.240483 1.807746 +v 0.805786 -0.203450 1.831594 +v 0.801671 -0.281184 1.777258 +v 0.812378 -0.229440 1.794126 +v 0.812722 -0.194186 1.819513 +v 0.810833 -0.268276 1.761692 +v 0.787492 -0.366078 1.703779 +v 0.796200 -0.323639 1.741951 +v 0.799440 -0.349283 1.683648 +v 0.806742 -0.308784 1.724148 +v 0.826250 -0.275200 1.691234 +v 0.816761 -0.292611 1.707215 +v 0.810767 -0.330984 1.664495 +v 0.821444 -0.311267 1.646411 +v 0.827810 -0.239094 1.732855 +v 0.819516 -0.254213 1.746862 +v 0.827013 -0.204480 1.768722 +v 0.825404 -0.173074 1.796474 +v 0.819144 -0.184016 1.807776 +v 0.819949 -0.217446 1.781128 +v 0.833767 -0.190651 1.756994 +v 0.831343 -0.161342 1.785539 +v 0.835510 -0.222919 1.719690 +v 0.839971 -0.176982 1.745014 +v 0.837041 -0.150670 1.773333 +v 0.842649 -0.206041 1.707203 +v 0.831467 -0.290226 1.629485 +v 0.835064 -0.256582 1.676260 +v 0.840723 -0.267930 1.613773 +v 0.843238 -0.236871 1.662365 +v 0.857700 -0.194556 1.638057 +v 0.850826 -0.216176 1.649617 +v 0.849346 -0.244534 1.599356 +v 0.857037 -0.220055 1.586275 +v 0.855179 -0.170670 1.684677 +v 0.849177 -0.188785 1.695208 +v 0.847521 -0.139061 1.743700 +v 0.842839 -0.142943 1.758255 +v 0.845914 -0.164629 1.731966 +v 0.850868 -0.151162 1.721379 +v 0.854789 -0.134333 1.716927 +v 0.848283 -0.124160 1.748925 +v 0.860206 -0.151098 1.676503 +v 0.858050 -0.115764 1.714641 +v 0.850071 -0.106357 1.751349 +v 0.864721 -0.130623 1.669772 +v 0.864024 -0.194666 1.574613 +v 0.863791 -0.172089 1.627740 +v 0.869958 -0.168402 1.564394 +v 0.869033 -0.148873 1.618700 +v 0.877436 -0.100693 1.604639 +v 0.873602 -0.125045 1.610990 +v 0.875123 -0.141448 1.555673 +v 0.879439 -0.113899 1.548486 +v 0.872072 -0.088341 1.658044 +v 0.868772 -0.109703 1.663507 +v 0.855018 -0.071782 1.746266 +v 0.852504 -0.089045 1.749680 +v 0.861183 -0.097099 1.710568 +v 0.864058 -0.078217 1.706081 +v 0.866338 -0.058977 1.702520 +v 0.857161 -0.054161 1.743476 +v 0.874557 -0.066585 1.653750 +v 0.867916 -0.039464 1.699910 +v 0.858607 -0.036256 1.741341 +v 0.876384 -0.044549 1.650665 +v 0.882695 -0.085845 1.542869 +v 0.880334 -0.075894 1.599670 +v 0.885057 -0.057432 1.538840 +v 0.882432 -0.050776 1.596107 +v 0.884174 0.000000 1.593243 +v 0.883717 -0.025442 1.593961 +v 0.886492 -0.028777 1.536412 +v 0.886982 0.000000 1.535598 +v 0.877969 -0.000003 1.648177 +v 0.877527 -0.022324 1.648801 +v 0.859904 -0.000033 1.739490 +v 0.859495 -0.018183 1.739977 +v 0.868932 -0.019781 1.698315 +v 0.869359 -0.000013 1.697773 +v 0.868936 0.019751 1.698289 +v 0.859510 0.018105 1.739914 +v 0.877528 0.022316 1.648795 +v 0.867928 0.039424 1.699862 +v 0.858640 0.036157 1.741223 +v 0.876386 0.044539 1.650652 +v 0.886492 0.028777 1.536412 +v 0.883717 0.025442 1.593961 +v 0.885057 0.057432 1.538840 +v 0.882432 0.050775 1.596107 +v 0.877436 0.100693 1.604638 +v 0.880334 0.075894 1.599670 +v 0.882695 0.085845 1.542869 +v 0.879439 0.113899 1.548486 +v 0.872077 0.088328 1.658026 +v 0.874560 0.066572 1.653734 +v 0.864076 0.078166 1.706012 +v 0.855076 0.071654 1.746093 +v 0.857210 0.054041 1.743319 +v 0.866355 0.058929 1.702456 +v 0.861201 0.097053 1.710505 +v 0.852561 0.088933 1.749522 +v 0.868777 0.109691 1.663491 +v 0.858066 0.115728 1.714591 +v 0.850115 0.106270 1.751224 +v 0.864726 0.130614 1.669760 +v 0.875123 0.141447 1.555673 +v 0.873602 0.125045 1.610989 +v 0.869958 0.168401 1.564394 +v 0.869033 0.148873 1.618700 +v 0.857700 0.194556 1.638057 +v 0.863792 0.172089 1.627740 +v 0.864024 0.194665 1.574613 +v 0.857037 0.220055 1.586275 +v 0.855183 0.170665 1.684670 +v 0.860210 0.151091 1.676494 +v 0.847547 0.139018 1.743636 +v 0.848315 0.124101 1.748838 +v 0.854802 0.134307 1.716890 +v 0.850878 0.151142 1.721349 +v 0.845929 0.164604 1.731929 +v 0.842874 0.142885 1.758168 +v 0.849180 0.188778 1.695198 +v 0.839993 0.176948 1.744962 +v 0.837097 0.150584 1.773205 +v 0.842654 0.206032 1.707190 +v 0.849346 0.244534 1.599356 +v 0.850826 0.216176 1.649616 +v 0.840723 0.267930 1.613773 +v 0.843239 0.236870 1.662365 +v 0.826250 0.275199 1.691234 +v 0.835064 0.256581 1.676260 +v 0.831468 0.290225 1.629485 +v 0.821444 0.311267 1.646410 +v 0.827819 0.239079 1.732835 +v 0.835516 0.222907 1.719674 +v 0.825505 0.172923 1.796273 +v 0.831418 0.161223 1.785368 +v 0.833795 0.190604 1.756926 +v 0.827053 0.204421 1.768642 +v 0.819993 0.217375 1.781041 +v 0.819259 0.183836 1.807559 +v 0.819528 0.254196 1.746840 +v 0.812429 0.229360 1.794039 +v 0.812855 0.193982 1.819299 +v 0.810846 0.268256 1.761670 +v 0.810767 0.330984 1.664495 +v 0.816761 0.292610 1.707215 +v 0.799440 0.349283 1.683647 +v 0.806742 0.308783 1.724148 +v 0.785143 0.337092 1.760540 +v 0.796200 0.323638 1.741951 +v 0.787493 0.366078 1.703779 +v 0.775111 0.381358 1.724836 +v 0.792051 0.292841 1.793473 +v 0.801685 0.281161 1.777238 +v 0.798815 0.211628 1.843965 +v 0.805921 0.203222 1.831389 +v 0.804583 0.240393 1.807664 +v 0.796333 0.250382 1.821842 +v 0.787741 0.259293 1.836558 +v 0.791456 0.219147 1.857026 +v 0.782170 0.303314 1.810378 +v 0.778856 0.267101 1.851750 +v 0.783718 0.225705 1.870451 +v 0.771869 0.312457 1.827809 +v 0.762127 0.394942 1.746682 +v 0.773760 0.349142 1.779880 +v 0.748798 0.406881 1.769271 +v 0.761939 0.359673 1.799839 +v 0.737428 0.376122 1.841341 +v 0.749789 0.368669 1.820345 +v 0.734993 0.417025 1.792446 +v 0.720975 0.425444 1.816179 +v 0.750479 0.326725 1.864036 +v 0.761269 0.320263 1.845711 +v 0.767578 0.235961 1.898299 +v 0.775801 0.231336 1.884252 +v 0.769757 0.273793 1.867370 +v 0.760398 0.279305 1.883316 +v 0.750821 0.283608 1.899523 +v 0.759297 0.239636 1.912634 +v 0.739407 0.331743 1.882649 +v 0.741082 0.286692 1.915921 +v 0.750818 0.242275 1.927109 +v 0.728213 0.335356 1.901517 +v 0.706657 0.432003 1.840318 +v 0.724776 0.381923 1.862685 +v 0.692129 0.436701 1.864766 +v 0.711922 0.386070 1.884294 +v 0.685970 0.389427 1.927996 +v 0.698972 0.388578 1.906097 +v 0.677511 0.439559 1.889444 +v 0.662831 0.440540 1.914234 +v 0.705634 0.338306 1.939692 +v 0.716943 0.337550 1.920559 +v 0.733638 0.244446 1.956348 +v 0.742222 0.243873 1.941683 +v 0.731299 0.288573 1.932481 +v 0.721505 0.289235 1.949131 +v 0.636858 -0.489866 1.898786 +v 0.653164 -0.488757 1.871212 +v 0.608144 -0.537194 1.881707 +v 0.626028 -0.535972 1.851471 +v 0.669445 -0.485594 1.843785 +v 0.643902 -0.532517 1.821404 +v 0.542934 -0.625030 1.842922 +v 0.563788 -0.623638 1.807767 +v 0.596202 -0.581003 1.830298 +v 0.576795 -0.582317 1.863062 +v 0.584535 -0.619562 1.772761 +v 0.615528 -0.577209 1.797682 +v 0.653677 -0.562334 1.733475 +v 0.634730 -0.570995 1.765370 +v 0.605139 -0.612882 1.738076 +v 0.625430 -0.603538 1.703828 +v 0.679058 -0.518767 1.762153 +v 0.661590 -0.526763 1.791582 +v 0.685640 -0.480397 1.816618 +v 0.701510 -0.473064 1.789755 +v 0.717095 -0.463696 1.763369 +v 0.696140 -0.508479 1.733218 +v 0.732487 -0.452444 1.737612 +v 0.712979 -0.496117 1.704961 +v 0.645365 -0.591602 1.670187 +v 0.672199 -0.551175 1.702115 +v 0.664806 -0.577093 1.637282 +v 0.690369 -0.537713 1.671466 +v 0.725184 -0.503987 1.612765 +v 0.708078 -0.521978 1.641643 +v 0.683804 -0.560197 1.605276 +v 0.702136 -0.540861 1.574285 +v 0.744948 -0.464908 1.650771 +v 0.729221 -0.481537 1.677424 +v 0.747292 -0.439151 1.712492 +v 0.761687 -0.424023 1.688192 +v 0.775538 -0.407069 1.664801 +v 0.760155 -0.446329 1.625130 +v 0.788743 -0.388353 1.642405 +v 0.774725 -0.425851 1.600589 +v 0.719850 -0.519257 1.544461 +v 0.741566 -0.483774 1.584962 +v 0.736697 -0.495359 1.515914 +v 0.757284 -0.461531 1.558361 +v 0.786362 -0.411274 1.509186 +v 0.772240 -0.437332 1.533065 +v 0.752715 -0.469360 1.488772 +v 0.767844 -0.441372 1.463152 +v 0.801567 -0.379493 1.555207 +v 0.788561 -0.403547 1.577247 +v 0.801356 -0.368013 1.621115 +v 0.813241 -0.346092 1.601013 +v 0.824345 -0.322678 1.582194 +v 0.813760 -0.353823 1.534576 +v 0.834683 -0.297903 1.564732 +v 0.825098 -0.326656 1.515433 +v 0.782043 -0.411519 1.439166 +v 0.799607 -0.383465 1.486832 +v 0.795292 -0.379947 1.416899 +v 0.811947 -0.354044 1.466084 +v 0.833266 -0.290693 1.429785 +v 0.823160 -0.323062 1.447039 +v 0.807315 -0.346690 1.396472 +v 0.818182 -0.311955 1.377963 +v 0.844799 -0.268224 1.481923 +v 0.835478 -0.298088 1.497854 +v 0.844233 -0.271879 1.548699 +v 0.852730 -0.244644 1.534160 +v 0.860477 -0.216414 1.521192 +v 0.853268 -0.237267 1.467704 +v 0.867069 -0.187211 1.509840 +v 0.860523 -0.205253 1.455268 +v 0.828094 -0.275972 1.361412 +v 0.842460 -0.257147 1.414371 +v 0.836491 -0.238717 1.346979 +v 0.850408 -0.222470 1.400892 +v 0.862759 -0.150439 1.379900 +v 0.857190 -0.186852 1.389382 +v 0.843869 -0.200520 1.334611 +v 0.849839 -0.161441 1.324442 +v 0.872121 -0.138831 1.435871 +v 0.866862 -0.172409 1.444638 +v 0.872802 -0.157245 1.500147 +v 0.877559 -0.126614 1.492157 +v 0.881186 -0.095428 1.485917 +v 0.876033 -0.104627 1.429043 +v 0.883829 -0.063844 1.481440 +v 0.878893 -0.069996 1.424141 +v 0.854475 -0.121675 1.316507 +v 0.867171 -0.113396 1.372482 +v 0.857920 -0.081411 1.310784 +v 0.870252 -0.075860 1.367176 +v 0.872873 0.000000 1.362880 +v 0.872139 -0.038010 1.363973 +v 0.859891 -0.040789 1.307361 +v 0.860679 0.000000 1.306181 +v 0.881333 0.000000 1.420179 +v 0.880666 -0.035073 1.421180 +v 0.885453 -0.031991 1.478740 +v 0.886039 0.000000 1.477832 +v 0.885453 0.031991 1.478740 +v 0.880666 0.035073 1.421180 +v 0.883829 0.063844 1.481439 +v 0.878893 0.069995 1.424141 +v 0.859891 0.040788 1.307361 +v 0.872139 0.038010 1.363973 +v 0.857921 0.081410 1.310784 +v 0.870252 0.075859 1.367176 +v 0.862759 0.150439 1.379900 +v 0.867171 0.113396 1.372482 +v 0.854475 0.121674 1.316507 +v 0.849839 0.161440 1.324442 +v 0.872121 0.138831 1.435871 +v 0.876033 0.104627 1.429043 +v 0.881186 0.095428 1.485917 +v 0.877559 0.126614 1.492155 +v 0.872802 0.157244 1.500147 +v 0.866862 0.172409 1.444638 +v 0.867069 0.187211 1.509840 +v 0.860523 0.205253 1.455268 +v 0.843869 0.200519 1.334611 +v 0.857190 0.186851 1.389382 +v 0.836491 0.238716 1.346978 +v 0.850408 0.222469 1.400891 +v 0.833266 0.290692 1.429783 +v 0.842460 0.257146 1.414371 +v 0.828094 0.275972 1.361412 +v 0.818182 0.311955 1.377963 +v 0.844799 0.268224 1.481923 +v 0.853268 0.237266 1.467704 +v 0.860477 0.216413 1.521191 +v 0.852730 0.244644 1.534160 +v 0.844233 0.271879 1.548698 +v 0.835479 0.298088 1.497854 +v 0.834683 0.297903 1.564732 +v 0.825098 0.326656 1.515432 +v 0.807316 0.346690 1.396472 +v 0.823160 0.323062 1.447039 +v 0.795292 0.379947 1.416899 +v 0.811948 0.354043 1.466084 +v 0.786362 0.411273 1.509185 +v 0.799607 0.383465 1.486832 +v 0.782043 0.411518 1.439165 +v 0.767844 0.441372 1.463152 +v 0.801568 0.379493 1.555206 +v 0.813760 0.353823 1.534576 +v 0.824345 0.322677 1.582193 +v 0.813241 0.346091 1.601013 +v 0.801358 0.368012 1.621115 +v 0.788561 0.403546 1.577246 +v 0.788743 0.388353 1.642405 +v 0.774725 0.425851 1.600588 +v 0.752715 0.469360 1.488772 +v 0.772240 0.437332 1.533065 +v 0.736697 0.495359 1.515914 +v 0.757284 0.461530 1.558360 +v 0.725185 0.503986 1.612765 +v 0.741566 0.483774 1.584962 +v 0.719850 0.519257 1.544460 +v 0.702137 0.540861 1.574285 +v 0.744948 0.464908 1.650771 +v 0.760155 0.446329 1.625130 +v 0.775538 0.407069 1.664800 +v 0.761687 0.424023 1.688192 +v 0.747292 0.439151 1.712492 +v 0.729222 0.481537 1.677424 +v 0.732487 0.452444 1.737611 +v 0.712979 0.496117 1.704960 +v 0.683804 0.560197 1.605276 +v 0.708078 0.521978 1.641643 +v 0.664806 0.577093 1.637282 +v 0.690369 0.537713 1.671465 +v 0.653678 0.562334 1.733474 +v 0.672199 0.551175 1.702114 +v 0.645365 0.591602 1.670187 +v 0.625430 0.603538 1.703828 +v 0.679059 0.518767 1.762153 +v 0.696141 0.508479 1.733218 +v 0.717096 0.463696 1.763368 +v 0.701510 0.473064 1.789755 +v 0.685641 0.480397 1.816618 +v 0.661590 0.526763 1.791582 +v 0.669445 0.485593 1.843784 +v 0.643902 0.532517 1.821404 +v 0.605140 0.612883 1.738075 +v 0.634730 0.570995 1.765369 +v 0.584535 0.619562 1.772761 +v 0.615528 0.577209 1.797682 +v 0.576795 0.582317 1.863062 +v 0.596202 0.581003 1.830298 +v 0.563788 0.623638 1.807767 +v 0.542934 0.625030 1.842922 +v 0.608144 0.537194 1.881707 +v 0.626028 0.535972 1.851471 +v 0.653164 0.488757 1.871212 +v 0.636859 0.489866 1.898786 +v 0.506691 -0.665142 1.821365 +v 0.528861 -0.663624 1.783944 +v 0.468209 -0.702466 1.798477 +v 0.491627 -0.700856 1.758959 +v 0.550935 -0.659274 1.746693 +v 0.514936 -0.696247 1.719619 +v 0.385110 -0.767928 1.749052 +v 0.410763 -0.766237 1.705877 +v 0.452225 -0.735149 1.732909 +v 0.427616 -0.736772 1.774333 +v 0.436268 -0.761204 1.662879 +v 0.476667 -0.730288 1.691643 +v 0.524837 -0.711313 1.610398 +v 0.500947 -0.722394 1.650759 +v 0.461567 -0.752955 1.620264 +v 0.486487 -0.741416 1.578203 +v 0.560877 -0.678196 1.642158 +v 0.538089 -0.688733 1.680641 +v 0.572869 -0.652175 1.709788 +v 0.594467 -0.642230 1.673349 +v 0.615739 -0.629583 1.637566 +v 0.583316 -0.664811 1.604368 +v 0.636434 -0.614136 1.602555 +v 0.605251 -0.648576 1.567410 +v 0.511004 -0.726754 1.536894 +v 0.548365 -0.697261 1.570764 +v 0.534941 -0.708936 1.496501 +v 0.571332 -0.680180 1.532004 +v 0.615290 -0.637392 1.457788 +v 0.593668 -0.660191 1.494292 +v 0.558262 -0.688140 1.457196 +v 0.580801 -0.664366 1.419153 +v 0.647171 -0.607797 1.496629 +v 0.626549 -0.629525 1.531443 +v 0.656566 -0.596074 1.568491 +v 0.676079 -0.575497 1.535522 +v 0.694884 -0.552471 1.503790 +v 0.666970 -0.583419 1.463127 +v 0.712891 -0.527097 1.473420 +v 0.685933 -0.556576 1.431067 +v 0.602470 -0.637721 1.382547 +v 0.636153 -0.611911 1.422647 +v 0.623279 -0.608438 1.347500 +v 0.656028 -0.583735 1.389032 +v 0.692813 -0.520127 1.326893 +v 0.674916 -0.553078 1.357076 +v 0.642953 -0.576460 1.314206 +v 0.661613 -0.542117 1.282751 +v 0.720995 -0.495933 1.371806 +v 0.703974 -0.527378 1.400582 +v 0.729994 -0.499465 1.444540 +v 0.746036 -0.469639 1.417293 +v 0.761115 -0.437852 1.391782 +v 0.736891 -0.462343 1.344881 +v 0.775212 -0.404260 1.368090 +v 0.751740 -0.426852 1.319873 +v 0.679007 -0.505395 1.253335 +v 0.709477 -0.484886 1.298668 +v 0.695109 -0.466508 1.226059 +v 0.724988 -0.447624 1.272465 +v 0.752101 -0.367555 1.226611 +v 0.739226 -0.408464 1.248407 +v 0.709957 -0.425697 1.200990 +v 0.723416 -0.383079 1.178265 +v 0.777576 -0.350498 1.276139 +v 0.765276 -0.389491 1.296938 +v 0.788007 -0.368871 1.346365 +v 0.799614 -0.331927 1.326671 +v 0.810014 -0.293589 1.309095 +v 0.788493 -0.309987 1.257606 +v 0.819077 -0.253990 1.293718 +v 0.798102 -0.268187 1.241364 +v 0.735316 -0.338778 1.158049 +v 0.763616 -0.325097 1.207159 +v 0.745883 -0.293117 1.140276 +v 0.773684 -0.281254 1.190136 +v 0.789311 -0.190181 1.163646 +v 0.782217 -0.236204 1.175629 +v 0.754812 -0.246176 1.125150 +v 0.762159 -0.198196 1.112690 +v 0.812983 -0.181343 1.216100 +v 0.806342 -0.225262 1.227484 +v 0.826899 -0.213343 1.280566 +v 0.833228 -0.171758 1.269761 +v 0.838183 -0.129453 1.261318 +v 0.818334 -0.136696 1.207146 +v 0.841844 -0.086615 1.255227 +v 0.822101 -0.091451 1.200750 +v 0.767927 -0.149385 1.102942 +v 0.794865 -0.143348 1.154280 +v 0.772090 -0.099945 1.095935 +v 0.798830 -0.095902 1.147570 +v 0.802114 0.000000 1.142125 +v 0.801252 -0.048054 1.143510 +v 0.774577 -0.050078 1.091724 +v 0.775459 0.000000 1.090286 +v 0.825258 0.000000 1.195552 +v 0.824395 -0.045823 1.196885 +v 0.843960 -0.043397 1.251585 +v 0.844791 0.000000 1.250325 +v 0.843960 0.043396 1.251585 +v 0.824395 0.045822 1.196885 +v 0.841844 0.086615 1.255227 +v 0.822102 0.091450 1.200750 +v 0.774577 0.050077 1.091724 +v 0.801252 0.048053 1.143510 +v 0.772090 0.099944 1.095935 +v 0.798830 0.095901 1.147570 +v 0.789311 0.190180 1.163646 +v 0.794865 0.143347 1.154280 +v 0.767927 0.149385 1.102942 +v 0.762159 0.198196 1.112690 +v 0.812983 0.181343 1.216100 +v 0.818334 0.136695 1.207146 +v 0.838183 0.129453 1.261318 +v 0.833228 0.171758 1.269761 +v 0.826899 0.213342 1.280566 +v 0.806342 0.225261 1.227483 +v 0.819078 0.253990 1.293718 +v 0.798102 0.268187 1.241364 +v 0.754812 0.246175 1.125149 +v 0.782217 0.236204 1.175629 +v 0.745883 0.293117 1.140276 +v 0.773684 0.281254 1.190135 +v 0.752101 0.367555 1.226611 +v 0.763616 0.325096 1.207159 +v 0.735316 0.338777 1.158048 +v 0.723416 0.383079 1.178265 +v 0.777576 0.350497 1.276138 +v 0.788493 0.309986 1.257605 +v 0.810014 0.293588 1.309094 +v 0.799614 0.331927 1.326671 +v 0.788007 0.368870 1.346364 +v 0.765277 0.389491 1.296937 +v 0.775212 0.404260 1.368089 +v 0.751741 0.426851 1.319873 +v 0.709957 0.425696 1.200989 +v 0.739226 0.408463 1.248406 +v 0.695110 0.466508 1.226059 +v 0.724988 0.447623 1.272465 +v 0.692813 0.520127 1.326893 +v 0.709477 0.484885 1.298668 +v 0.679007 0.505394 1.253335 +v 0.661613 0.542116 1.282750 +v 0.720995 0.495932 1.371806 +v 0.736891 0.462342 1.344881 +v 0.761115 0.437851 1.391782 +v 0.746036 0.469639 1.417293 +v 0.729994 0.499464 1.444540 +v 0.703974 0.527378 1.400581 +v 0.712891 0.527097 1.473418 +v 0.685933 0.556575 1.431067 +v 0.642953 0.576459 1.314206 +v 0.674917 0.553077 1.357074 +v 0.623279 0.608438 1.347499 +v 0.656028 0.583734 1.389032 +v 0.615290 0.637392 1.457786 +v 0.636153 0.611911 1.422647 +v 0.602470 0.637721 1.382547 +v 0.580801 0.664366 1.419153 +v 0.647171 0.607797 1.496628 +v 0.666970 0.583419 1.463127 +v 0.694884 0.552471 1.503790 +v 0.676080 0.575496 1.535522 +v 0.656567 0.596074 1.568490 +v 0.626549 0.629525 1.531443 +v 0.636434 0.614136 1.602555 +v 0.605252 0.648576 1.567410 +v 0.558262 0.688140 1.457196 +v 0.593668 0.660191 1.494290 +v 0.534941 0.708936 1.496501 +v 0.571332 0.680180 1.532004 +v 0.524837 0.711313 1.610397 +v 0.548365 0.697261 1.570763 +v 0.511005 0.726753 1.536894 +v 0.486487 0.741416 1.578202 +v 0.560877 0.678196 1.642158 +v 0.583316 0.664811 1.604367 +v 0.615739 0.629582 1.637565 +v 0.594467 0.642230 1.673349 +v 0.572870 0.652175 1.709788 +v 0.538089 0.688733 1.680641 +v 0.550935 0.659274 1.746693 +v 0.514936 0.696247 1.719619 +v 0.461567 0.752954 1.620264 +v 0.500947 0.722394 1.650759 +v 0.436268 0.761204 1.662879 +v 0.476667 0.730288 1.691643 +v 0.427616 0.736772 1.774333 +v 0.452225 0.735149 1.732908 +v 0.410763 0.766237 1.705877 +v 0.385110 0.767928 1.749052 +v 0.468209 0.702466 1.798477 +v 0.491627 0.700856 1.758959 +v 0.528861 0.663624 1.783944 +v 0.506691 0.665142 1.821365 +v 0.340879 -0.795797 1.722744 +v 0.367469 -0.794052 1.678006 +v 0.295114 -0.820240 1.695525 +v 0.322525 -0.818443 1.649414 +v 0.393909 -0.788837 1.633452 +v 0.349786 -0.813074 1.603496 +v 0.199853 -0.858366 1.638866 +v 0.228535 -0.856460 1.590613 +v 0.276137 -0.839282 1.620234 +v 0.248029 -0.841132 1.667519 +v 0.257079 -0.850857 1.542570 +v 0.304102 -0.833786 1.573153 +v 0.359155 -0.812108 1.480431 +v 0.331825 -0.824742 1.526484 +v 0.285368 -0.841607 1.494949 +v 0.313288 -0.828773 1.447955 +v 0.403498 -0.792015 1.513069 +v 0.376843 -0.804315 1.557986 +v 0.420150 -0.780325 1.589296 +v 0.445985 -0.768362 1.545712 +v 0.471393 -0.753157 1.502906 +v 0.429660 -0.776279 1.468953 +v 0.496243 -0.734743 1.461048 +v 0.455231 -0.757220 1.425822 +v 0.340688 -0.812317 1.401801 +v 0.386024 -0.796040 1.435194 +v 0.367521 -0.792489 1.356658 +v 0.412277 -0.776535 1.390965 +v 0.462495 -0.727617 1.306300 +v 0.437821 -0.753723 1.347932 +v 0.393545 -0.769107 1.312770 +v 0.418752 -0.742498 1.270286 +v 0.504211 -0.709564 1.343239 +v 0.480181 -0.735050 1.383839 +v 0.520346 -0.713089 1.420329 +v 0.543735 -0.688483 1.380908 +v 0.566181 -0.660846 1.342987 +v 0.527396 -0.681131 1.304148 +v 0.587741 -0.630493 1.306673 +v 0.549606 -0.649826 1.266730 +v 0.443012 -0.712718 1.229402 +v 0.486275 -0.698455 1.266222 +v 0.466232 -0.679915 1.190278 +v 0.509051 -0.666349 1.227858 +v 0.551005 -0.593620 1.157039 +v 0.530645 -0.631333 1.191417 +v 0.488296 -0.644211 1.153088 +v 0.509118 -0.605771 1.117988 +v 0.590521 -0.578928 1.197636 +v 0.570650 -0.615676 1.231187 +v 0.608109 -0.597322 1.272195 +v 0.627406 -0.561696 1.239624 +v 0.645505 -0.523701 1.209120 +v 0.609127 -0.539720 1.166231 +v 0.662220 -0.483418 1.180857 +v 0.626403 -0.498235 1.137086 +v 0.528638 -0.564778 1.085112 +v 0.570080 -0.553405 1.124851 +v 0.546679 -0.521318 1.054666 +v 0.587813 -0.510877 1.094963 +v 0.618772 -0.419460 1.042709 +v 0.604009 -0.466119 1.067586 +v 0.563300 -0.475714 1.026666 +v 0.578292 -0.428036 1.001350 +v 0.656549 -0.409062 1.086132 +v 0.642267 -0.454643 1.110325 +v 0.677547 -0.441084 1.154919 +v 0.691465 -0.396907 1.131396 +v 0.703946 -0.351076 1.110376 +v 0.669381 -0.361809 1.064494 +v 0.714807 -0.303719 1.092014 +v 0.680522 -0.312977 1.045616 +v 0.591693 -0.378568 0.978746 +v 0.631866 -0.370965 1.020578 +v 0.603453 -0.327518 0.958932 +v 0.643360 -0.320927 1.001181 +v 0.661293 -0.217023 0.970945 +v 0.653207 -0.269552 0.984593 +v 0.613466 -0.275070 0.942042 +v 0.621674 -0.221449 0.928162 +v 0.698011 -0.211649 1.016120 +v 0.690086 -0.262861 1.029463 +v 0.724012 -0.255061 1.076378 +v 0.731656 -0.205356 1.063458 +v 0.737684 -0.154792 1.053328 +v 0.704168 -0.159523 1.005721 +v 0.741947 -0.103555 1.046102 +v 0.708574 -0.106721 0.998268 +v 0.628108 -0.166905 0.917301 +v 0.667589 -0.163568 0.960303 +v 0.632727 -0.111660 0.909506 +v 0.672114 -0.109428 0.952660 +v 0.675761 0.000000 0.946506 +v 0.674843 -0.054829 0.948053 +v 0.635507 -0.055947 0.904811 +v 0.636433 0.000000 0.903242 +v 0.712148 0.000000 0.992250 +v 0.711240 -0.053474 0.993769 +v 0.744534 -0.051887 1.041734 +v 0.745430 0.000000 1.040251 +v 0.744534 0.051886 1.041734 +v 0.711240 0.053473 0.993769 +v 0.741947 0.103554 1.046101 +v 0.708574 0.106721 0.998268 +v 0.635507 0.055946 0.904811 +v 0.674843 0.054829 0.948053 +v 0.632727 0.111660 0.909506 +v 0.672114 0.109427 0.952660 +v 0.661293 0.217023 0.970945 +v 0.667589 0.163567 0.960303 +v 0.628108 0.166904 0.917301 +v 0.621674 0.221448 0.928162 +v 0.698011 0.211648 1.016119 +v 0.704168 0.159522 1.005721 +v 0.737684 0.154791 1.053328 +v 0.731656 0.205355 1.063457 +v 0.724012 0.255060 1.076378 +v 0.690086 0.262860 1.029462 +v 0.714807 0.303719 1.092013 +v 0.680522 0.312976 1.045616 +v 0.613466 0.275070 0.942041 +v 0.653208 0.269552 0.984592 +v 0.603453 0.327517 0.958932 +v 0.643360 0.320927 1.001181 +v 0.618772 0.419459 1.042708 +v 0.631866 0.370964 1.020578 +v 0.591693 0.378567 0.978745 +v 0.578292 0.428035 1.001350 +v 0.656550 0.409062 1.086132 +v 0.669381 0.361808 1.064494 +v 0.703946 0.351075 1.110375 +v 0.691465 0.396906 1.131396 +v 0.677547 0.441083 1.154919 +v 0.642267 0.454642 1.110324 +v 0.662220 0.483418 1.180856 +v 0.626403 0.498233 1.137086 +v 0.563300 0.475713 1.026665 +v 0.604009 0.466119 1.067585 +v 0.546679 0.521318 1.054666 +v 0.587814 0.510877 1.094963 +v 0.551005 0.593620 1.157038 +v 0.570081 0.553404 1.124850 +v 0.528638 0.564778 1.085112 +v 0.509119 0.605770 1.117988 +v 0.590521 0.578928 1.197635 +v 0.609127 0.539719 1.166230 +v 0.645505 0.523700 1.209120 +v 0.627406 0.561696 1.239624 +v 0.608109 0.597322 1.272194 +v 0.570650 0.615676 1.231186 +v 0.587741 0.630492 1.306672 +v 0.549606 0.649826 1.266729 +v 0.488296 0.644211 1.153088 +v 0.530646 0.631333 1.191417 +v 0.466232 0.679914 1.190278 +v 0.509052 0.666348 1.227858 +v 0.462495 0.727616 1.306300 +v 0.486275 0.698455 1.266222 +v 0.443013 0.712717 1.229402 +v 0.418753 0.742498 1.270286 +v 0.504211 0.709563 1.343238 +v 0.527396 0.681131 1.304147 +v 0.566181 0.660845 1.342986 +v 0.543736 0.688483 1.380908 +v 0.520347 0.713089 1.420329 +v 0.480181 0.735050 1.383839 +v 0.496243 0.734742 1.461048 +v 0.455232 0.757220 1.425822 +v 0.393546 0.769106 1.312770 +v 0.437822 0.753723 1.347931 +v 0.367522 0.792488 1.356657 +v 0.412278 0.776535 1.390965 +v 0.359156 0.812108 1.480431 +v 0.386024 0.796040 1.435194 +v 0.340689 0.812316 1.401801 +v 0.313288 0.828773 1.447954 +v 0.403498 0.792015 1.513069 +v 0.429660 0.776278 1.468951 +v 0.471393 0.753157 1.502905 +v 0.445985 0.768362 1.545712 +v 0.420151 0.780325 1.589296 +v 0.376843 0.804315 1.557986 +v 0.393909 0.788837 1.633452 +v 0.349786 0.813074 1.603496 +v 0.285368 0.841606 1.494948 +v 0.331825 0.824742 1.526483 +v 0.257080 0.850856 1.542570 +v 0.304102 0.833786 1.573152 +v 0.248029 0.841132 1.667519 +v 0.276137 0.839282 1.620234 +v 0.228535 0.856460 1.590613 +v 0.199853 0.858366 1.638866 +v 0.295114 0.820240 1.695525 +v 0.322525 0.818443 1.649414 +v 0.367470 0.794052 1.678006 +v 0.340879 0.795797 1.722744 +v 0.150845 -0.871896 1.609717 +v 0.179974 -0.869927 1.560703 +v 0.101142 -0.881897 1.580155 +v 0.130580 -0.879758 1.530575 +v 0.208966 -0.864212 1.511907 +v 0.159899 -0.873961 1.481231 +v 0.000270 -0.891163 1.520159 +v 0.029812 -0.887680 1.470037 +v 0.080500 -0.885791 1.500329 +v 0.050831 -0.887769 1.550232 +v 0.059407 -0.881865 1.420249 +v 0.109991 -0.879798 1.450652 +v 0.168068 -0.856728 1.352867 +v 0.139210 -0.870052 1.401434 +v 0.088670 -0.871977 1.370929 +v 0.117583 -0.858587 1.322260 +v 0.217596 -0.851096 1.384081 +v 0.188926 -0.864310 1.432333 +v 0.237720 -0.854874 1.463539 +v 0.266054 -0.841748 1.415817 +v 0.293915 -0.825097 1.368934 +v 0.245759 -0.834231 1.336685 +v 0.321155 -0.804915 1.323092 +v 0.273290 -0.813788 1.290347 +v 0.145994 -0.841560 1.274452 +v 0.196416 -0.839738 1.305162 +v 0.173767 -0.820927 1.227712 +v 0.224130 -0.819155 1.258521 +v 0.277176 -0.767583 1.169230 +v 0.251089 -0.795070 1.213144 +v 0.200784 -0.796783 1.182240 +v 0.226927 -0.769234 1.138234 +v 0.325969 -0.762527 1.201647 +v 0.300065 -0.789849 1.245269 +v 0.347613 -0.781197 1.278514 +v 0.373222 -0.754165 1.235369 +v 0.397876 -0.723924 1.193844 +v 0.350895 -0.731937 1.159671 +v 0.421449 -0.690577 1.154124 +v 0.374751 -0.698246 1.119502 +v 0.252091 -0.738401 1.095880 +v 0.302287 -0.736820 1.126964 +v 0.276167 -0.704419 1.055355 +v 0.326302 -0.702898 1.086532 +v 0.370646 -0.626207 1.011851 +v 0.349114 -0.665961 1.048113 +v 0.299050 -0.667436 1.016832 +v 0.320618 -0.627573 0.980506 +v 0.418797 -0.622070 1.045304 +v 0.397397 -0.661539 1.081344 +v 0.443848 -0.654285 1.116373 +v 0.465003 -0.615243 1.080729 +v 0.484781 -0.573550 1.047390 +v 0.438785 -0.579894 1.011616 +v 0.503166 -0.529469 1.016425 +v 0.457345 -0.535291 0.980345 +v 0.340802 -0.585041 0.946510 +v 0.390775 -0.583756 0.977937 +v 0.359522 -0.540030 0.914977 +v 0.409444 -0.538834 0.946483 +v 0.442104 -0.442377 0.891447 +v 0.426577 -0.491641 0.917612 +v 0.376700 -0.492737 0.886038 +v 0.392265 -0.443364 0.859815 +v 0.489831 -0.439509 0.925615 +v 0.474397 -0.488443 0.951624 +v 0.519976 -0.483085 0.988063 +v 0.535240 -0.434691 0.962331 +v 0.548892 -0.384479 0.939342 +v 0.503581 -0.388700 0.902434 +v 0.560802 -0.332611 0.919259 +v 0.515623 -0.336260 0.882139 +v 0.406157 -0.392122 0.836416 +v 0.455966 -0.391250 0.868098 +v 0.418316 -0.339224 0.815936 +v 0.468100 -0.338472 0.847658 +v 0.486990 -0.228869 0.815835 +v 0.478456 -0.284269 0.830212 +v 0.428691 -0.284898 0.798457 +v 0.437241 -0.229374 0.784054 +v 0.534376 -0.227370 0.850530 +v 0.525903 -0.282408 0.864812 +v 0.570948 -0.279334 0.902138 +v 0.579314 -0.224891 0.888022 +v 0.585868 -0.169504 0.876977 +v 0.541013 -0.171375 0.839355 +v 0.590574 -0.113401 0.869048 +v 0.545778 -0.114654 0.831333 +v 0.443934 -0.172884 0.772785 +v 0.493673 -0.172505 0.804585 +v 0.448740 -0.115664 0.764696 +v 0.498471 -0.115411 0.796510 +v 0.502343 0.000000 0.789998 +v 0.501365 -0.057828 0.791639 +v 0.451639 -0.057955 0.759817 +v 0.452619 0.000000 0.758171 +v 0.549620 0.000000 0.824870 +v 0.548652 -0.057449 0.826497 +v 0.593411 -0.056821 0.864270 +v 0.594362 0.000000 0.862667 +v 0.593411 0.056820 0.864270 +v 0.548652 0.057448 0.826497 +v 0.590574 0.113401 0.869048 +v 0.545778 0.114653 0.831333 +v 0.451639 0.057954 0.759817 +v 0.501365 0.057827 0.791639 +v 0.448740 0.115663 0.764696 +v 0.498471 0.115410 0.796510 +v 0.486990 0.228869 0.815835 +v 0.493673 0.172505 0.804585 +v 0.443934 0.172884 0.772785 +v 0.437241 0.229373 0.784054 +v 0.534377 0.227369 0.850530 +v 0.541013 0.171374 0.839355 +v 0.585869 0.169503 0.876977 +v 0.579314 0.224890 0.888022 +v 0.570948 0.279334 0.902137 +v 0.525903 0.282407 0.864812 +v 0.560803 0.332610 0.919259 +v 0.515623 0.336259 0.882138 +v 0.428691 0.284897 0.798457 +v 0.478456 0.284268 0.830212 +v 0.418316 0.339223 0.815935 +v 0.468100 0.338471 0.847658 +v 0.442105 0.442376 0.891447 +v 0.455966 0.391249 0.868098 +v 0.406157 0.392121 0.836416 +v 0.392265 0.443364 0.859814 +v 0.489831 0.439508 0.925614 +v 0.503582 0.388699 0.902434 +v 0.548893 0.384479 0.939342 +v 0.535240 0.434691 0.962331 +v 0.519976 0.483084 0.988063 +v 0.474398 0.488442 0.951623 +v 0.503166 0.529469 1.016425 +v 0.457345 0.535290 0.980345 +v 0.376701 0.492737 0.886037 +v 0.426577 0.491640 0.917611 +v 0.359523 0.540029 0.914976 +v 0.409444 0.538833 0.946482 +v 0.370646 0.626206 1.011850 +v 0.390775 0.583755 0.977937 +v 0.340802 0.585040 0.946509 +v 0.320618 0.627572 0.980505 +v 0.418798 0.622069 1.045303 +v 0.438785 0.579893 1.011615 +v 0.484781 0.573549 1.047389 +v 0.465003 0.615242 1.080728 +v 0.443848 0.654284 1.116372 +v 0.397397 0.661538 1.081343 +v 0.421450 0.690576 1.154124 +v 0.374751 0.698245 1.119502 +v 0.299051 0.667435 1.016832 +v 0.349114 0.665961 1.048113 +v 0.276167 0.704418 1.055355 +v 0.326303 0.702898 1.086532 +v 0.277177 0.767582 1.169229 +v 0.302287 0.736820 1.126964 +v 0.252091 0.738401 1.095880 +v 0.226928 0.769233 1.138233 +v 0.325969 0.762526 1.201646 +v 0.350895 0.731937 1.159671 +v 0.397876 0.723923 1.193844 +v 0.373223 0.754165 1.235368 +v 0.347613 0.781196 1.278513 +v 0.300065 0.789849 1.245268 +v 0.321155 0.804915 1.323091 +v 0.273291 0.813788 1.290346 +v 0.200784 0.796782 1.182240 +v 0.251090 0.795070 1.213143 +v 0.173768 0.820927 1.227711 +v 0.224130 0.819154 1.258520 +v 0.168069 0.856728 1.352866 +v 0.196416 0.839737 1.305161 +v 0.145994 0.841559 1.274452 +v 0.117583 0.858587 1.322259 +v 0.217597 0.851096 1.384080 +v 0.245760 0.834230 1.336684 +v 0.293915 0.825097 1.368934 +v 0.266055 0.841747 1.415816 +v 0.237721 0.854874 1.463538 +v 0.188926 0.864310 1.432333 +v 0.208966 0.864212 1.511907 +v 0.159899 0.873959 1.481230 +v 0.088670 0.871977 1.370928 +v 0.139210 0.870048 1.401434 +v 0.059408 0.881869 1.420249 +v 0.109990 0.879790 1.450652 +v 0.050831 0.887769 1.550232 +v 0.080501 0.885797 1.500328 +v 0.029813 0.887680 1.470037 +v 0.000270 0.891163 1.520159 +v 0.101141 0.881893 1.580154 +v 0.130582 0.879770 1.530575 +v 0.179974 0.869928 1.560703 +v 0.150845 0.871894 1.609717 +v 0.780123 -0.195710 1.895723 +v 0.772801 -0.199543 1.908582 +v 0.787188 -0.191005 1.883085 +v 0.783779 -0.164626 1.902831 +v 0.777104 -0.167796 1.915118 +v 0.790347 -0.160753 1.890808 +v 0.800577 -0.179163 1.858752 +v 0.794013 -0.185477 1.870744 +v 0.802685 -0.150943 1.867561 +v 0.796558 -0.156156 1.878994 +v 0.801980 -0.104690 1.885544 +v 0.799240 -0.129815 1.883470 +v 0.805003 -0.125556 1.872175 +v 0.807521 -0.101316 1.874173 +v 0.796296 -0.107647 1.897249 +v 0.793377 -0.133563 1.895123 +v 0.780770 -0.139250 1.919023 +v 0.787096 -0.136696 1.906933 +v 0.790187 -0.110108 1.909103 +v 0.806942 -0.172120 1.847186 +v 0.813043 -0.164333 1.835908 +v 0.808403 -0.145077 1.856423 +v 0.814117 -0.138628 1.845517 +v 0.824562 -0.146563 1.813819 +v 0.818834 -0.155792 1.824793 +v 0.824835 -0.123731 1.823297 +v 0.819431 -0.131485 1.834485 +v 0.822890 -0.088647 1.840480 +v 0.820960 -0.109631 1.839051 +v 0.826145 -0.103190 1.827335 +v 0.828113 -0.083478 1.828248 +v 0.817780 -0.093317 1.851971 +v 0.815722 -0.115480 1.850230 +v 0.810383 -0.120770 1.861157 +v 0.812680 -0.097526 1.863074 +v 0.830071 -0.136607 1.802832 +v 0.835731 -0.128053 1.789769 +v 0.830225 -0.115316 1.811711 +v 0.836059 -0.108265 1.797447 +v 0.841799 -0.122979 1.772494 +v 0.842577 -0.104553 1.778114 +v 0.846656 -0.070482 1.776194 +v 0.844461 -0.087336 1.778435 +v 0.839521 -0.072948 1.798294 +v 0.837501 -0.090282 1.799349 +v 0.831508 -0.096150 1.814859 +v 0.833441 -0.077755 1.814886 +v 0.850931 0.017741 1.771212 +v 0.851326 -0.000067 1.770875 +v 0.850070 0.035453 1.772266 +v 0.843742 0.018315 1.794549 +v 0.844128 -0.000112 1.794280 +v 0.842889 0.036630 1.795388 +v 0.846781 0.070228 1.775853 +v 0.848713 0.052984 1.773871 +v 0.839738 0.072535 1.797758 +v 0.841592 0.054744 1.796551 +v 0.830211 0.062411 1.827377 +v 0.835492 0.058239 1.813623 +v 0.833738 0.077164 1.814163 +v 0.828501 0.082714 1.827393 +v 0.831639 0.041751 1.826929 +v 0.836797 0.038965 1.812845 +v 0.833050 -0.000209 1.826259 +v 0.838102 -0.000161 1.811979 +v 0.837708 0.019468 1.812191 +v 0.832640 0.020846 1.826429 +v 0.827754 0.022076 1.839305 +v 0.828174 -0.000254 1.839163 +v 0.826689 0.044245 1.839698 +v 0.823071 0.023177 1.851303 +v 0.823507 -0.000294 1.851185 +v 0.821922 0.046480 1.851605 +v 0.823341 0.087727 1.839571 +v 0.825155 0.066163 1.839923 +v 0.818280 0.092254 1.851070 +v 0.820257 0.069534 1.851666 +v 0.810341 0.075244 1.874256 +v 0.815322 0.072548 1.862962 +v 0.813179 0.096321 1.862215 +v 0.808034 0.099972 1.873396 +v 0.812225 0.050246 1.874425 +v 0.817093 0.048470 1.863018 +v 0.813946 -0.000367 1.874209 +v 0.818740 -0.000331 1.862692 +v 0.818296 0.024154 1.862790 +v 0.813491 0.025025 1.874281 +v 0.808164 0.025786 1.886049 +v 0.808621 -0.000404 1.886004 +v 0.806871 0.051806 1.886105 +v 0.802668 0.026461 1.898199 +v 0.803119 -0.000431 1.898187 +v 0.801358 0.053184 1.898158 +v 0.802474 0.103196 1.884850 +v 0.804915 0.077619 1.885822 +v 0.796782 0.106047 1.896659 +v 0.799338 0.079717 1.897746 +v 0.787105 0.083066 1.922127 +v 0.793273 0.081514 1.909805 +v 0.790628 0.108485 1.908609 +v 0.784389 0.110578 1.920824 +v 0.789176 0.055395 1.922798 +v 0.795330 0.054367 1.910346 +v 0.797106 -0.000439 1.910523 +v 0.796656 0.027045 1.910496 +v 0.790493 0.027565 1.923057 +v 0.783853 0.028017 1.935637 +v 0.782536 0.056254 1.935256 +v 0.777098 0.028385 1.948357 +v 0.775802 0.056931 1.947859 +v 0.777680 0.112277 1.933040 +v 0.780446 0.084342 1.934445 +v 0.770911 0.113584 1.945406 +v 0.773713 0.085336 1.946909 +v 0.759429 0.086193 1.971688 +v 0.766581 0.085956 1.959274 +v 0.763774 0.114391 1.957687 +v 0.756643 0.114697 1.970030 +v 0.761432 0.057523 1.972879 +v 0.768636 0.057358 1.960348 +v 0.769897 0.028623 1.960960 +v 0.762641 0.028718 1.973598 +v 0.753034 -0.143328 1.967884 +v 0.760123 -0.143087 1.955611 +v 0.748401 -0.173094 1.965128 +v 0.755701 -0.172763 1.952538 +v 0.767227 -0.142386 1.943403 +v 0.763037 -0.171825 1.940030 +v 0.742172 -0.206227 1.961424 +v 0.749934 -0.205795 1.948094 +v 0.757729 -0.204580 1.934853 +v 0.765299 -0.202483 1.921630 +v 0.770072 -0.170154 1.927481 +v 0.773995 -0.141099 1.931123 +v 0.809910 -0.076525 1.874967 +v 0.804504 -0.079040 1.886459 +v 0.811925 -0.051323 1.874963 +v 0.806589 -0.052998 1.886591 +v 0.798937 -0.081239 1.898293 +v 0.801090 -0.054460 1.898579 +v 0.813345 -0.025878 1.874572 +v 0.808029 -0.026727 1.886313 +v 0.802545 -0.027466 1.898432 +v 0.796540 -0.028069 1.910693 +v 0.795087 -0.055665 1.910703 +v 0.792912 -0.083060 1.910267 +v 0.829858 -0.063135 1.828149 +v 0.824768 -0.067039 1.840751 +v 0.831389 -0.042361 1.827510 +v 0.826416 -0.044983 1.840321 +v 0.819831 -0.070548 1.852486 +v 0.821622 -0.047335 1.852223 +v 0.832515 -0.021331 1.826741 +v 0.827619 -0.022663 1.839639 +v 0.822922 -0.023857 1.851635 +v 0.818152 -0.024922 1.863109 +v 0.816800 -0.049438 1.863609 +v 0.814900 -0.073697 1.863746 +v 0.826519 0.102524 1.826553 +v 0.821371 0.108827 1.838210 +v 0.825141 0.123237 1.822686 +v 0.819770 0.130890 1.833828 +v 0.816204 0.114558 1.849406 +v 0.814493 0.137943 1.844865 +v 0.819064 0.155423 1.824366 +v 0.824757 0.146253 1.813419 +v 0.813286 0.163907 1.835479 +v 0.800847 0.178635 1.858384 +v 0.807213 0.171647 1.846785 +v 0.803080 0.150082 1.866997 +v 0.808803 0.144307 1.855807 +v 0.810869 0.119726 1.860371 +v 0.805504 0.124392 1.871466 +v 0.799726 0.128521 1.882840 +v 0.796962 0.155203 1.878501 +v 0.793853 0.132176 1.894587 +v 0.790733 0.159731 1.890386 +v 0.794290 0.184893 1.870423 +v 0.787453 0.190379 1.882812 +v 0.773035 0.198975 1.908415 +v 0.780394 0.195088 1.895510 +v 0.777447 0.166856 1.914860 +v 0.784147 0.163598 1.902488 +v 0.787535 0.135293 1.906489 +v 0.781149 0.137950 1.918669 +v 0.774329 0.140073 1.930874 +v 0.770345 0.169423 1.927289 +v 0.767464 0.141684 1.943240 +v 0.763219 0.171344 1.939899 +v 0.765482 0.202050 1.921505 +v 0.757848 0.204308 1.934767 +v 0.742187 0.206156 1.961433 +v 0.749995 0.205661 1.948051 +v 0.748430 0.172925 1.965146 +v 0.755800 0.172497 1.952476 +v 0.760252 0.142661 1.955534 +v 0.753078 0.143029 1.967910 +v 0.848607 -0.053223 1.774182 +v 0.849989 -0.035652 1.772498 +v 0.841404 -0.055135 1.797039 +v 0.842749 -0.036957 1.795753 +v 0.850891 -0.017898 1.771336 +v 0.843677 -0.018574 1.794746 +v 0.837613 -0.019841 1.812455 +v 0.836605 -0.039434 1.813336 +v 0.835222 -0.058798 1.814276 +v 0.844583 0.087113 1.778123 +v 0.842671 0.104384 1.777869 +v 0.837710 0.089920 1.798859 +v 0.836222 0.107993 1.797063 +v 0.841866 0.122869 1.772331 +v 0.835836 0.127880 1.789516 +v 0.830222 0.136366 1.802495 +v 0.830459 0.114931 1.811195 +v 0.831793 0.095633 1.814198 +v 0.755409 -0.000211 1.986302 +v 0.755039 -0.029093 1.985971 +v 0.747735 -0.000277 1.998674 +v 0.747422 -0.029015 1.998269 +v 0.753904 -0.057905 1.985105 +v 0.746390 -0.057695 1.997279 +v 0.739803 -0.000354 2.010747 +v 0.731882 -0.000416 2.022614 +v 0.731694 -0.028536 2.022083 +v 0.739547 -0.028837 2.010272 +v 0.730891 -0.056622 2.020886 +v 0.738620 -0.057276 2.009167 +v 0.726881 -0.112102 2.017419 +v 0.734348 -0.113507 2.005794 +v 0.736918 -0.085536 2.007611 +v 0.729331 -0.084522 2.019252 +v 0.741904 -0.114454 1.994046 +v 0.744570 -0.086205 1.995828 +v 0.749238 -0.114955 1.982044 +v 0.751978 -0.086550 1.983773 +v 0.724895 -0.243940 1.970879 +v 0.711600 -0.288612 1.965702 +v 0.716209 -0.242416 1.985362 +v 0.701740 -0.286767 1.982203 +v 0.694278 -0.337585 1.958795 +v 0.682957 -0.335415 1.977808 +v 0.707599 -0.239882 1.999728 +v 0.698970 -0.236278 2.013823 +v 0.682395 -0.279479 2.014776 +v 0.691999 -0.283725 1.998589 +v 0.660711 -0.326831 2.015310 +v 0.671751 -0.331826 1.996672 +v 0.618943 -0.432105 1.988136 +v 0.647223 -0.381997 1.993359 +v 0.634558 -0.376229 2.014711 +v 0.604616 -0.425582 2.012289 +v 0.633441 -0.436767 1.963656 +v 0.660033 -0.386118 1.971714 +v 0.672971 -0.388602 1.949899 +v 0.648095 -0.439587 1.938991 +v 0.690573 -0.231685 2.027738 +v 0.672875 -0.273988 2.030623 +v 0.682298 -0.226076 2.041309 +v 0.663515 -0.267303 2.046085 +v 0.649786 -0.320386 2.033564 +v 0.639158 -0.312602 2.051465 +v 0.674229 -0.219505 2.054522 +v 0.666333 -0.211976 2.067261 +v 0.645658 -0.250594 2.075783 +v 0.654472 -0.259514 2.061195 +v 0.618685 -0.293011 2.085665 +v 0.628803 -0.303479 2.068883 +v 0.563306 -0.395162 2.081775 +v 0.598008 -0.349318 2.076111 +v 0.586470 -0.337279 2.095384 +v 0.550335 -0.381596 2.103662 +v 0.576756 -0.407076 2.059225 +v 0.609874 -0.359832 2.056154 +v 0.622064 -0.368810 2.035651 +v 0.590494 -0.417194 2.035983 +v 0.658691 -0.203543 2.079512 +v 0.637154 -0.240598 2.089818 +v 0.651430 -0.194292 2.091425 +v 0.628978 -0.229572 2.103273 +v 0.609030 -0.281331 2.101904 +v 0.599779 -0.268447 2.117455 +v 0.644177 -0.184117 2.102676 +v 0.637271 -0.173184 2.113621 +v 0.613682 -0.204619 2.128329 +v 0.621171 -0.217574 2.116143 +v 0.582549 -0.239255 2.146176 +v 0.590895 -0.254380 2.132184 +v 0.514393 -0.331246 2.163941 +v 0.554791 -0.292831 2.148772 +v 0.545281 -0.275413 2.164765 +v 0.503611 -0.311526 2.181997 +v 0.525804 -0.349545 2.144805 +v 0.564836 -0.308982 2.131806 +v 0.575435 -0.323834 2.114012 +v 0.537769 -0.366330 2.124646 +v 0.630486 -0.161444 2.124062 +v 0.606593 -0.190781 2.139869 +v 0.622519 -0.150779 2.134952 +v 0.599064 -0.177118 2.151096 +v 0.574694 -0.223089 2.159287 +v 0.567123 -0.206199 2.171532 +v 0.601525 -0.139175 2.158383 +v 0.583521 -0.151288 2.172011 +v 0.590430 -0.164754 2.162556 +v 0.612036 -0.143047 2.147257 +v 0.553337 -0.170814 2.193360 +v 0.559735 -0.188945 2.183056 +v 0.475624 -0.244773 2.229116 +v 0.520478 -0.216370 2.206336 +v 0.513630 -0.194745 2.217954 +v 0.467831 -0.220289 2.242192 +v 0.484180 -0.268189 2.214635 +v 0.528065 -0.237083 2.193571 +v 0.536333 -0.256786 2.179681 +v 0.493567 -0.290499 2.198972 +v 0.606467 -0.124260 2.156542 +v 0.581498 -0.134451 2.177611 +v 0.609446 -0.106443 2.156954 +v 0.581036 -0.115864 2.181562 +v 0.548573 -0.151233 2.201717 +v 0.544834 -0.130746 2.208937 +v 0.607362 -0.071842 2.163758 +v 0.576383 -0.078285 2.190938 +v 0.578937 -0.097180 2.186245 +v 0.609148 -0.089118 2.159899 +v 0.538027 -0.088423 2.220997 +v 0.541281 -0.109811 2.215523 +v 0.449602 -0.141613 2.272803 +v 0.497467 -0.125179 2.244942 +v 0.493698 -0.100798 2.251326 +v 0.445323 -0.114027 2.280003 +v 0.454780 -0.168589 2.264049 +v 0.502041 -0.149024 2.237202 +v 0.507459 -0.172254 2.228230 +v 0.460904 -0.194869 2.253897 +v 0.605938 -0.054207 2.166980 +v 0.574352 -0.059029 2.194660 +v 0.604717 -0.036284 2.169229 +v 0.572821 -0.039500 2.197307 +v 0.535453 -0.066649 2.225254 +v 0.533622 -0.044593 2.228351 +v 0.603717 -0.000033 2.171262 +v 0.571638 -0.000013 2.199608 +v 0.571908 -0.019799 2.198969 +v 0.603947 -0.018197 2.170667 +v 0.532200 -0.000003 2.230945 +v 0.532536 -0.022347 2.230255 +v 0.438107 -0.028812 2.292039 +v 0.487333 -0.025470 2.261993 +v 0.486921 0.000000 2.262741 +v 0.437627 0.000000 2.292863 +v 0.439550 -0.057500 2.289603 +v 0.488600 -0.050830 2.259827 +v 0.490720 -0.075974 2.256261 +v 0.441954 -0.085945 2.285579 +v 0.603900 0.018120 2.170712 +v 0.571889 0.019769 2.198986 +v 0.604630 0.036186 2.169315 +v 0.572785 0.039461 2.197341 +v 0.532531 0.022339 2.230259 +v 0.533613 0.044583 2.228358 +v 0.605821 0.054087 2.167094 +v 0.607239 0.071715 2.163891 +v 0.576331 0.078234 2.190987 +v 0.574305 0.058982 2.194705 +v 0.538013 0.088410 2.221009 +v 0.535441 0.066636 2.225264 +v 0.441954 0.085944 2.285579 +v 0.490720 0.075974 2.256261 +v 0.493698 0.100797 2.251327 +v 0.445323 0.114027 2.280003 +v 0.439550 0.057500 2.289603 +v 0.488600 0.050830 2.259827 +v 0.487333 0.025470 2.261993 +v 0.438107 0.028812 2.292039 +v 0.609038 0.089006 2.160024 +v 0.578891 0.097134 2.186291 +v 0.609359 0.106356 2.157052 +v 0.581000 0.115829 2.181600 +v 0.541269 0.109800 2.215534 +v 0.544825 0.130737 2.208946 +v 0.601481 0.139132 2.158435 +v 0.583501 0.151268 2.172035 +v 0.581472 0.134426 2.177640 +v 0.606406 0.124201 2.156612 +v 0.553332 0.170809 2.193366 +v 0.548566 0.151226 2.201724 +v 0.460904 0.194868 2.253897 +v 0.507459 0.172253 2.228230 +v 0.513630 0.194745 2.217954 +v 0.467831 0.220289 2.242192 +v 0.454780 0.168588 2.264049 +v 0.502041 0.149024 2.237202 +v 0.497467 0.125179 2.244942 +v 0.449602 0.141613 2.272803 +v 0.611976 0.142989 2.147329 +v 0.590404 0.164730 2.162586 +v 0.622434 0.150693 2.135061 +v 0.599029 0.177084 2.151140 +v 0.559728 0.188939 2.183064 +v 0.567115 0.206190 2.171542 +v 0.637144 0.173034 2.113807 +v 0.613631 0.204559 2.128403 +v 0.606548 0.190733 2.139927 +v 0.630373 0.161325 2.124209 +v 0.582536 0.239240 2.146194 +v 0.574683 0.223077 2.159301 +v 0.493566 0.290499 2.198972 +v 0.536334 0.256786 2.179681 +v 0.545281 0.275413 2.164765 +v 0.503611 0.311526 2.181997 +v 0.484180 0.268188 2.214635 +v 0.528065 0.237082 2.193571 +v 0.520479 0.216370 2.206336 +v 0.475624 0.244773 2.229116 +v 0.644042 0.183937 2.102880 +v 0.621117 0.217502 2.116224 +v 0.651309 0.194089 2.091645 +v 0.628928 0.229492 2.103360 +v 0.590882 0.254362 2.132204 +v 0.599766 0.268427 2.117476 +v 0.666240 0.211723 2.067475 +v 0.645623 0.250495 2.075871 +v 0.637109 0.240508 2.089905 +v 0.658578 0.203314 2.079729 +v 0.618676 0.292986 2.085687 +v 0.609019 0.281309 2.101926 +v 0.537769 0.366330 2.124646 +v 0.575436 0.323834 2.114012 +v 0.586470 0.337278 2.095384 +v 0.550335 0.381596 2.103663 +v 0.525804 0.349544 2.144805 +v 0.564837 0.308981 2.131806 +v 0.554791 0.292831 2.148772 +v 0.514393 0.331245 2.163941 +v 0.674154 0.219223 2.054724 +v 0.654446 0.259405 2.061281 +v 0.682252 0.225780 2.041505 +v 0.663497 0.267188 2.046164 +v 0.628797 0.303452 2.068905 +v 0.639154 0.312573 2.051486 +v 0.698955 0.236011 2.013971 +v 0.682393 0.279378 2.014838 +v 0.672866 0.273874 2.030695 +v 0.690544 0.231389 2.027911 +v 0.660711 0.326806 2.015326 +v 0.649784 0.320358 2.033583 +v 0.590494 0.417194 2.035984 +v 0.622064 0.368809 2.035651 +v 0.634558 0.376228 2.014711 +v 0.604616 0.425582 2.012289 +v 0.576756 0.407076 2.059225 +v 0.609875 0.359831 2.056154 +v 0.598008 0.349317 2.076111 +v 0.563306 0.395162 2.081776 +v 0.707590 0.239682 1.999841 +v 0.691997 0.283650 1.998636 +v 0.716200 0.242296 1.985436 +v 0.701738 0.286724 1.982234 +v 0.671751 0.331808 1.996684 +v 0.682957 0.335404 1.977816 +v 0.711598 0.288596 1.965716 +v 0.724890 0.243889 1.970916 +v 0.694278 0.337581 1.958798 +v 0.648095 0.439587 1.938992 +v 0.672971 0.388601 1.949899 +v 0.633441 0.436766 1.963657 +v 0.660033 0.386117 1.971715 +v 0.647223 0.381996 1.993359 +v 0.618943 0.432104 1.988136 +v 0.620462 -0.488797 1.926309 +v 0.604193 -0.485683 1.953754 +v 0.590170 -0.536025 1.911894 +v 0.572323 -0.532610 1.941986 +v 0.572106 -0.473225 2.007806 +v 0.588080 -0.480511 1.980982 +v 0.537136 -0.518955 2.001263 +v 0.554622 -0.526915 1.971822 +v 0.480648 -0.613074 1.947764 +v 0.518761 -0.571165 1.960734 +v 0.499820 -0.562553 1.992661 +v 0.460294 -0.603807 1.982014 +v 0.501245 -0.619691 1.913050 +v 0.537945 -0.577329 1.928390 +v 0.557332 -0.581069 1.895797 +v 0.522050 -0.623700 1.878063 +v 0.556405 -0.463898 2.034154 +v 0.541166 -0.452686 2.060038 +v 0.519912 -0.508718 2.030151 +v 0.503154 -0.496392 2.058494 +v 0.511721 -0.424297 2.109380 +v 0.526167 -0.439398 2.085067 +v 0.470861 -0.465247 2.112585 +v 0.486737 -0.481839 2.085968 +v 0.401649 -0.560609 2.080556 +v 0.445213 -0.522349 2.084514 +v 0.428012 -0.504367 2.113379 +v 0.383200 -0.541323 2.111552 +v 0.420681 -0.577465 2.048514 +v 0.462923 -0.538031 2.054633 +v 0.481153 -0.551455 2.023977 +v 0.440285 -0.591925 2.015654 +v 0.497802 -0.407360 2.132772 +v 0.484451 -0.388658 2.155129 +v 0.455620 -0.446696 2.138264 +v 0.441035 -0.426237 2.162856 +v 0.459838 -0.346428 2.196571 +v 0.471784 -0.368325 2.176432 +v 0.413997 -0.379885 2.208233 +v 0.427145 -0.403940 2.186223 +v 0.332242 -0.469880 2.197061 +v 0.380510 -0.437785 2.193020 +v 0.366279 -0.411729 2.216903 +v 0.316958 -0.441896 2.222668 +v 0.348433 -0.495863 2.169941 +v 0.395580 -0.461970 2.167723 +v 0.411429 -0.484188 2.141129 +v 0.365463 -0.519742 2.141430 +v 0.448610 -0.323006 2.215360 +v 0.438204 -0.298215 2.232820 +v 0.401698 -0.354207 2.228854 +v 0.390297 -0.327028 2.248016 +v 0.419981 -0.244928 2.263386 +v 0.428686 -0.272179 2.248920 +v 0.370277 -0.268562 2.281452 +v 0.379833 -0.298459 2.265627 +v 0.277230 -0.347188 2.289454 +v 0.329271 -0.323496 2.279150 +v 0.318926 -0.291089 2.296306 +v 0.266143 -0.312411 2.307882 +v 0.289420 -0.380442 2.269008 +v 0.340625 -0.354473 2.260086 +v 0.352964 -0.383912 2.239279 +v 0.302663 -0.412033 2.246671 +v 0.412273 -0.216664 2.276395 +v 0.405466 -0.187441 2.287673 +v 0.361817 -0.237567 2.295703 +v 0.354367 -0.205527 2.308085 +v 0.394928 -0.126772 2.305370 +v 0.399701 -0.157447 2.297397 +v 0.342856 -0.139022 2.327590 +v 0.348066 -0.172651 2.318798 +v 0.240308 -0.200842 2.351332 +v 0.294858 -0.187137 2.336803 +v 0.289165 -0.150662 2.346205 +v 0.234213 -0.161700 2.361448 +v 0.247655 -0.239090 2.338891 +v 0.301721 -0.222791 2.325267 +v 0.309760 -0.257498 2.311766 +v 0.256319 -0.276377 2.324521 +v 0.391188 -0.095551 2.311573 +v 0.388523 -0.063928 2.316061 +v 0.338732 -0.104775 2.334330 +v 0.335794 -0.070097 2.339214 +v 0.386413 0.000000 2.319749 +v 0.386929 -0.032034 2.318794 +v 0.333482 0.000000 2.343277 +v 0.334043 -0.035124 2.342206 +v 0.224008 -0.040859 2.378551 +v 0.279660 -0.038070 2.362157 +v 0.279051 0.000000 2.363332 +v 0.223348 0.000000 2.379815 +v 0.226074 -0.081548 2.375163 +v 0.281572 -0.075979 2.358949 +v 0.284759 -0.113569 2.353669 +v 0.229455 -0.121876 2.369361 +v 0.386930 0.032033 2.318794 +v 0.388523 0.063928 2.316061 +v 0.334043 0.035124 2.342206 +v 0.335794 0.070096 2.339214 +v 0.394928 0.126771 2.305370 +v 0.391188 0.095550 2.311573 +v 0.342855 0.139021 2.327590 +v 0.338732 0.104775 2.334329 +v 0.229455 0.121875 2.369361 +v 0.284759 0.113569 2.353669 +v 0.289165 0.150662 2.346205 +v 0.234213 0.161699 2.361448 +v 0.226074 0.081548 2.375163 +v 0.281572 0.075978 2.358949 +v 0.279660 0.038070 2.362157 +v 0.224009 0.040858 2.378551 +v 0.399701 0.157447 2.297397 +v 0.405465 0.187440 2.287673 +v 0.348066 0.172650 2.318798 +v 0.354367 0.205527 2.308086 +v 0.419981 0.244928 2.263386 +v 0.412273 0.216663 2.276395 +v 0.370277 0.268562 2.281452 +v 0.361817 0.237566 2.295703 +v 0.256319 0.276376 2.324521 +v 0.309760 0.257498 2.311766 +v 0.318926 0.291088 2.296306 +v 0.266143 0.312410 2.307882 +v 0.247655 0.239089 2.338891 +v 0.301721 0.222791 2.325267 +v 0.294858 0.187136 2.336803 +v 0.240308 0.200841 2.351332 +v 0.428686 0.272178 2.248920 +v 0.438204 0.298215 2.232820 +v 0.379833 0.298459 2.265627 +v 0.390297 0.327028 2.248016 +v 0.459838 0.346428 2.196571 +v 0.448610 0.323005 2.215360 +v 0.413997 0.379884 2.208233 +v 0.401698 0.354207 2.228854 +v 0.302663 0.412033 2.246671 +v 0.352964 0.383912 2.239279 +v 0.366279 0.411729 2.216903 +v 0.316958 0.441895 2.222668 +v 0.289420 0.380441 2.269008 +v 0.340625 0.354472 2.260087 +v 0.329271 0.323495 2.279150 +v 0.277230 0.347188 2.289454 +v 0.471784 0.368325 2.176432 +v 0.484451 0.388658 2.155129 +v 0.427145 0.403940 2.186223 +v 0.441035 0.426237 2.162856 +v 0.511721 0.424297 2.109380 +v 0.497801 0.407360 2.132773 +v 0.470860 0.465246 2.112585 +v 0.455620 0.446695 2.138265 +v 0.365462 0.519742 2.141430 +v 0.411429 0.484188 2.141129 +v 0.428012 0.504367 2.113380 +v 0.383200 0.541323 2.111552 +v 0.348433 0.495863 2.169941 +v 0.395580 0.461969 2.167723 +v 0.380509 0.437785 2.193020 +v 0.332242 0.469879 2.197061 +v 0.526167 0.439397 2.085068 +v 0.541166 0.452685 2.060039 +v 0.486737 0.481839 2.085968 +v 0.503154 0.496392 2.058494 +v 0.572106 0.473225 2.007806 +v 0.556405 0.463897 2.034154 +v 0.537135 0.518955 2.001264 +v 0.519912 0.508718 2.030151 +v 0.440284 0.591925 2.015654 +v 0.481153 0.551455 2.023978 +v 0.499819 0.562553 1.992662 +v 0.460294 0.603807 1.982014 +v 0.420681 0.577465 2.048514 +v 0.462923 0.538031 2.054634 +v 0.445213 0.522349 2.084515 +v 0.401649 0.560609 2.080556 +v 0.588080 0.480511 1.980982 +v 0.604193 0.485683 1.953754 +v 0.554622 0.526915 1.971822 +v 0.572323 0.532610 1.941987 +v 0.620462 0.488797 1.926309 +v 0.590170 0.536025 1.911894 +v 0.522049 0.623700 1.878063 +v 0.557332 0.581069 1.895797 +v 0.501245 0.619691 1.913051 +v 0.537945 0.577329 1.928390 +v 0.518761 0.571165 1.960734 +v 0.480647 0.613074 1.947765 +v 0.484446 -0.663700 1.858748 +v 0.462305 -0.659431 1.895977 +v 0.444719 -0.700946 1.837960 +v 0.421323 -0.696418 1.877268 +v 0.418717 -0.642522 1.969354 +v 0.440392 -0.652406 1.932924 +v 0.375266 -0.678525 1.954736 +v 0.398169 -0.688987 1.916277 +v 0.308561 -0.753250 1.877853 +v 0.354171 -0.722673 1.897904 +v 0.330142 -0.711679 1.938233 +v 0.283525 -0.741807 1.919899 +v 0.333899 -0.761408 1.835225 +v 0.378466 -0.730475 1.856994 +v 0.403014 -0.735243 1.815770 +v 0.359465 -0.766337 1.792239 +v 0.397457 -0.629931 2.005192 +v 0.376610 -0.614558 2.040178 +v 0.352805 -0.665220 1.992572 +v 0.330820 -0.649038 2.029561 +v 0.336670 -0.576007 2.107176 +v 0.356312 -0.596549 2.074213 +v 0.288671 -0.608372 2.100369 +v 0.309400 -0.630043 2.065529 +v 0.211498 -0.688761 2.040991 +v 0.261033 -0.660770 2.054392 +v 0.239283 -0.638016 2.090908 +v 0.188835 -0.665060 2.079069 +v 0.234897 -0.709491 2.001643 +v 0.283497 -0.680698 2.016672 +v 0.306570 -0.697702 1.977901 +v 0.258950 -0.727228 1.961239 +v 0.317784 -0.553026 2.138949 +v 0.299693 -0.527658 2.169337 +v 0.268696 -0.584043 2.133866 +v 0.249573 -0.557207 2.165909 +v 0.266213 -0.470234 2.225457 +v 0.282494 -0.500053 2.198259 +v 0.214241 -0.496600 2.225223 +v 0.231399 -0.528028 2.196414 +v 0.126260 -0.577252 2.184108 +v 0.179248 -0.553800 2.191695 +v 0.161265 -0.520868 2.221951 +v 0.107509 -0.542898 2.215610 +v 0.146135 -0.609206 2.150811 +v 0.198318 -0.584439 2.159736 +v 0.218370 -0.612587 2.126124 +v 0.167004 -0.638443 2.115674 +v 0.250992 -0.438436 2.250966 +v 0.236896 -0.404821 2.274735 +v 0.198163 -0.462998 2.252132 +v 0.183270 -0.427491 2.277214 +v 0.212151 -0.332443 2.316139 +v 0.223918 -0.369420 2.296457 +v 0.157159 -0.351081 2.320992 +v 0.169563 -0.390089 2.300120 +v 0.058688 -0.426431 2.297457 +v 0.114409 -0.409125 2.300463 +v 0.101395 -0.368199 2.322322 +v 0.045122 -0.383746 2.320182 +v 0.073650 -0.467283 2.272351 +v 0.128771 -0.448331 2.276399 +v 0.144404 -0.485611 2.250159 +v 0.089947 -0.506168 2.245043 +v 0.201659 -0.294052 2.333715 +v 0.192476 -0.254413 2.349113 +v 0.146068 -0.310505 2.339467 +v 0.136381 -0.268663 2.355777 +v 0.178163 -0.172052 2.373062 +v 0.184637 -0.213695 2.362276 +v 0.121263 -0.181673 2.380997 +v 0.128100 -0.225655 2.369645 +v 0.013383 -0.246656 2.373395 +v 0.070926 -0.236641 2.373294 +v 0.063774 -0.190546 2.385333 +v 0.005928 -0.198594 2.385874 +v 0.022429 -0.293663 2.358225 +v 0.079617 -0.281778 2.358855 +v 0.089781 -0.325675 2.341782 +v 0.033021 -0.339408 2.340422 +v 0.173111 -0.129682 2.381509 +v 0.169505 -0.086771 2.387673 +v 0.115946 -0.136953 2.390039 +v 0.112121 -0.091625 2.396444 +v 0.166604 0.000000 2.392640 +v 0.167315 -0.043476 2.391300 +v 0.109050 0.000000 2.401671 +v 0.109814 -0.045910 2.400296 +v -0.006592 -0.050178 2.406843 +v 0.051758 -0.048146 2.405475 +v 0.050951 0.000000 2.406902 +v -0.007437 0.000000 2.408313 +v -0.004074 -0.100144 2.402617 +v 0.054176 -0.096091 2.401443 +v 0.058187 -0.143630 2.394743 +v 0.000104 -0.149694 2.395667 +v 0.167315 0.043476 2.391300 +v 0.169505 0.086770 2.387673 +v 0.109814 0.045909 2.400296 +v 0.112121 0.091625 2.396444 +v 0.178163 0.172051 2.373063 +v 0.173111 0.129681 2.381509 +v 0.121263 0.181672 2.380997 +v 0.115946 0.136952 2.390039 +v 0.000104 0.149693 2.395667 +v 0.058187 0.143629 2.394743 +v 0.063774 0.190545 2.385333 +v 0.005928 0.198593 2.385874 +v -0.004074 0.100143 2.402617 +v 0.054176 0.096090 2.401443 +v 0.051758 0.048146 2.405475 +v -0.006592 0.050178 2.406842 +v 0.184637 0.213694 2.362276 +v 0.192475 0.254412 2.349113 +v 0.128099 0.225655 2.369645 +v 0.136381 0.268662 2.355777 +v 0.212150 0.332442 2.316139 +v 0.201659 0.294052 2.333715 +v 0.157159 0.351081 2.320992 +v 0.146068 0.310504 2.339467 +v 0.033021 0.339407 2.340422 +v 0.089781 0.325674 2.341782 +v 0.101395 0.368199 2.322322 +v 0.045122 0.383745 2.320183 +v 0.022428 0.293662 2.358226 +v 0.079617 0.281777 2.358855 +v 0.070926 0.236640 2.373294 +v 0.013383 0.246655 2.373395 +v 0.223918 0.369419 2.296457 +v 0.236896 0.404821 2.274735 +v 0.169563 0.390088 2.300120 +v 0.183270 0.427491 2.277214 +v 0.266213 0.470233 2.225457 +v 0.250991 0.438435 2.250966 +v 0.214241 0.496600 2.225223 +v 0.198162 0.462997 2.252132 +v 0.089946 0.506168 2.245043 +v 0.144404 0.485610 2.250159 +v 0.161265 0.520868 2.221951 +v 0.107509 0.542897 2.215610 +v 0.073650 0.467282 2.272352 +v 0.128770 0.448331 2.276399 +v 0.114409 0.409124 2.300463 +v 0.058688 0.426430 2.297458 +v 0.282494 0.500051 2.198260 +v 0.299692 0.527656 2.169337 +v 0.231398 0.528027 2.196415 +v 0.249573 0.557207 2.165909 +v 0.336670 0.576006 2.107177 +v 0.317784 0.553026 2.138949 +v 0.288670 0.608372 2.100369 +v 0.268696 0.584043 2.133866 +v 0.167004 0.638443 2.115675 +v 0.218370 0.612587 2.126125 +v 0.239283 0.638016 2.090908 +v 0.188834 0.665059 2.079070 +v 0.146135 0.609206 2.150812 +v 0.198318 0.584438 2.159737 +v 0.179248 0.553800 2.191695 +v 0.126260 0.577251 2.184108 +v 0.356312 0.596548 2.074214 +v 0.376610 0.614557 2.040179 +v 0.309400 0.630042 2.065530 +v 0.330820 0.649038 2.029561 +v 0.418717 0.642522 1.969355 +v 0.397457 0.629931 2.005192 +v 0.375266 0.678525 1.954736 +v 0.352805 0.665220 1.992572 +v 0.258949 0.727228 1.961240 +v 0.306570 0.697702 1.977902 +v 0.330141 0.711678 1.938233 +v 0.283525 0.741807 1.919900 +v 0.234897 0.709491 2.001644 +v 0.283496 0.680698 2.016673 +v 0.261032 0.660770 2.054393 +v 0.211498 0.688761 2.040991 +v 0.440392 0.652406 1.932925 +v 0.462305 0.659431 1.895977 +v 0.398169 0.688987 1.916277 +v 0.421323 0.696417 1.877268 +v 0.484446 0.663700 1.858748 +v 0.444719 0.700946 1.837959 +v 0.359465 0.766337 1.792239 +v 0.403014 0.735243 1.815770 +v 0.333899 0.761408 1.835225 +v 0.378466 0.730475 1.856994 +v 0.354171 0.722673 1.897904 +v 0.308560 0.753250 1.877853 +v 0.314303 -0.794160 1.767500 +v 0.287812 -0.789060 1.812049 +v 0.267718 -0.818557 1.741653 +v 0.240416 -0.813310 1.787574 +v 0.235619 -0.768778 1.899815 +v 0.261563 -0.780643 1.856240 +v 0.186635 -0.792478 1.878068 +v 0.213366 -0.804670 1.833134 +v 0.114267 -0.841983 1.782829 +v 0.164174 -0.825112 1.808607 +v 0.136761 -0.812586 1.854674 +v 0.086301 -0.829252 1.829857 +v 0.142600 -0.851115 1.735186 +v 0.191932 -0.834034 1.761911 +v 0.219929 -0.839403 1.714819 +v 0.171170 -0.856586 1.687128 +v 0.210147 -0.753662 1.942653 +v 0.185242 -0.735359 1.984576 +v 0.160365 -0.776838 1.922197 +v 0.134670 -0.757856 1.965339 +v 0.137480 -0.689199 2.064741 +v 0.160964 -0.713759 2.025278 +v 0.085465 -0.710346 2.048008 +v 0.109684 -0.735777 2.007412 +v 0.005784 -0.769876 1.965180 +v 0.057861 -0.754455 1.987305 +v 0.033039 -0.728443 2.028983 +v -0.019540 -0.743341 2.007718 +v 0.031946 -0.793161 1.921257 +v 0.083499 -0.777217 1.944235 +v 0.109835 -0.796609 1.899952 +v 0.058821 -0.812923 1.876053 +v 0.114868 -0.661639 2.102698 +v 0.093230 -0.631291 2.139062 +v 0.062165 -0.681970 2.087158 +v 0.039864 -0.650692 2.124642 +v 0.053211 -0.562547 2.206177 +v 0.072640 -0.598158 2.173548 +v -0.001373 -0.579825 2.193815 +v 0.018651 -0.616557 2.160211 +v -0.089438 -0.645197 2.125145 +v -0.035466 -0.632266 2.144052 +v -0.055992 -0.594562 2.178475 +v -0.110382 -0.606756 2.160314 +v -0.067250 -0.680876 2.087881 +v -0.013721 -0.667276 2.107578 +v 0.009148 -0.699334 2.069124 +v -0.043918 -0.713630 2.048676 +v 0.035021 -0.524527 2.236732 +v 0.018139 -0.484219 2.265016 +v -0.020119 -0.540630 2.225300 +v -0.037514 -0.499112 2.254498 +v -0.011413 -0.397637 2.314552 +v 0.002638 -0.441878 2.291019 +v -0.067960 -0.409843 2.305515 +v -0.053486 -0.455452 2.281274 +v -0.164897 -0.476625 2.251878 +v -0.109409 -0.466993 2.268109 +v -0.124256 -0.420273 2.293051 +v -0.180023 -0.428878 2.277224 +v -0.148184 -0.522276 2.223797 +v -0.093042 -0.511778 2.240677 +v -0.075207 -0.554333 2.210716 +v -0.129997 -0.565753 2.193280 +v -0.023951 -0.351763 2.335688 +v -0.034923 -0.304306 2.354012 +v -0.080874 -0.362504 2.327173 +v -0.092175 -0.313610 2.346093 +v -0.052013 -0.205786 2.382643 +v -0.044289 -0.255576 2.369669 +v -0.109792 -0.212097 2.375681 +v -0.101832 -0.263415 2.362313 +v -0.215446 -0.275651 2.336677 +v -0.158987 -0.270136 2.351353 +v -0.167131 -0.217486 2.364974 +v -0.223755 -0.221931 2.350599 +v -0.205368 -0.328219 2.319803 +v -0.149081 -0.321602 2.334695 +v -0.137487 -0.371710 2.315220 +v -0.193532 -0.379348 2.299907 +v -0.058045 -0.155108 2.392750 +v -0.062372 -0.103770 2.399988 +v -0.116003 -0.159860 2.386074 +v -0.120461 -0.106951 2.393552 +v -0.065859 0.000000 2.405879 +v -0.064981 -0.051996 2.404375 +v -0.124054 0.000000 2.399603 +v -0.123150 -0.053590 2.398072 +v -0.237727 -0.056075 2.374049 +v -0.180827 -0.054952 2.387950 +v -0.181751 0.000000 2.389503 +v -0.238667 0.000000 2.375624 +v -0.234917 -0.111913 2.369333 +v -0.178071 -0.109671 2.383324 +v -0.173500 -0.163925 2.375652 +v -0.230253 -0.167277 2.361503 +v -0.064981 0.051995 2.404375 +v -0.062372 0.103769 2.399988 +v -0.123150 0.053589 2.398072 +v -0.120461 0.106950 2.393552 +v -0.052014 0.205786 2.382643 +v -0.058046 0.155107 2.392750 +v -0.109792 0.212097 2.375681 +v -0.116003 0.159859 2.386074 +v -0.230253 0.167276 2.361504 +v -0.173500 0.163924 2.375652 +v -0.167131 0.217485 2.364974 +v -0.223755 0.221930 2.350599 +v -0.234917 0.111913 2.369333 +v -0.178071 0.109670 2.383324 +v -0.180827 0.054951 2.387950 +v -0.237727 0.056075 2.374049 +v -0.044289 0.255575 2.369669 +v -0.034923 0.304306 2.354012 +v -0.101832 0.263414 2.362314 +v -0.092176 0.313609 2.346093 +v -0.011413 0.397637 2.314552 +v -0.023952 0.351762 2.335688 +v -0.067961 0.409842 2.305516 +v -0.080875 0.362504 2.327173 +v -0.193532 0.379347 2.299907 +v -0.137487 0.371709 2.315221 +v -0.124256 0.420272 2.293052 +v -0.180023 0.428877 2.277224 +v -0.205368 0.328218 2.319803 +v -0.149081 0.321601 2.334695 +v -0.158987 0.270135 2.351353 +v -0.215446 0.275650 2.336677 +v 0.002638 0.441877 2.291019 +v 0.018139 0.484218 2.265016 +v -0.053486 0.455451 2.281274 +v -0.037515 0.499112 2.254498 +v 0.053210 0.562547 2.206178 +v 0.035021 0.524527 2.236732 +v -0.001373 0.579825 2.193815 +v -0.020119 0.540630 2.225300 +v -0.129997 0.565753 2.193281 +v -0.075207 0.554332 2.210716 +v -0.055993 0.594562 2.178476 +v -0.110383 0.606756 2.160314 +v -0.148184 0.522274 2.223797 +v -0.093042 0.511778 2.240677 +v -0.109409 0.466993 2.268110 +v -0.164897 0.476624 2.251878 +v 0.072640 0.598157 2.173548 +v 0.093230 0.631291 2.139062 +v 0.018651 0.616557 2.160211 +v 0.039864 0.650691 2.124643 +v 0.137480 0.689199 2.064741 +v 0.114867 0.661638 2.102698 +v 0.085464 0.710346 2.048009 +v 0.062165 0.681969 2.087158 +v -0.043918 0.713630 2.048676 +v 0.009148 0.699334 2.069124 +v 0.033039 0.728442 2.028983 +v -0.019541 0.743341 2.007718 +v -0.067251 0.680875 2.087882 +v -0.013721 0.667276 2.107578 +v -0.035466 0.632265 2.144052 +v -0.089438 0.645196 2.125146 +v 0.160964 0.713758 2.025278 +v 0.185241 0.735359 1.984577 +v 0.109684 0.735777 2.007412 +v 0.134670 0.757855 1.965340 +v 0.235619 0.768778 1.899815 +v 0.210146 0.753662 1.942653 +v 0.186635 0.792477 1.878069 +v 0.160364 0.776837 1.922198 +v 0.058820 0.812923 1.876054 +v 0.109835 0.796608 1.899953 +v 0.136761 0.812586 1.854674 +v 0.086301 0.829252 1.829858 +v 0.031946 0.793161 1.921257 +v 0.083499 0.777217 1.944236 +v 0.057861 0.754454 1.987306 +v 0.005784 0.769876 1.965180 +v 0.261563 0.780642 1.856241 +v 0.287812 0.789060 1.812049 +v 0.213366 0.804670 1.833135 +v 0.240416 0.813310 1.787574 +v 0.314303 0.794160 1.767500 +v 0.267718 0.818557 1.741653 +v 0.171170 0.856586 1.687128 +v 0.219929 0.839403 1.714819 +v 0.142600 0.851115 1.735186 +v 0.191932 0.834034 1.761912 +v 0.164174 0.825112 1.808608 +v 0.114267 0.841982 1.782829 +v 0.121702 -0.870059 1.658733 +v 0.092677 -0.864472 1.707539 +v 0.071650 -0.879935 1.629717 +v 0.042287 -0.874202 1.679059 +v 0.035492 -0.842255 1.803691 +v 0.063904 -0.855245 1.755943 +v -0.015544 -0.851621 1.776256 +v 0.013178 -0.864702 1.727961 +v -0.088649 -0.872399 1.669178 +v -0.037713 -0.870454 1.699023 +v -0.066627 -0.857242 1.747625 +v -0.117627 -0.859121 1.717878 +v -0.059272 -0.882175 1.619875 +v -0.008404 -0.880143 1.649819 +v 0.021149 -0.885840 1.600130 +v -0.029654 -0.887857 1.570069 +v 0.007583 -0.825727 1.850636 +v -0.019716 -0.805608 1.896528 +v -0.043765 -0.834872 1.823707 +v -0.071366 -0.814530 1.870108 +v -0.072004 -0.755035 1.984370 +v -0.046284 -0.781981 1.941156 +v -0.124232 -0.763439 1.958951 +v -0.098228 -0.790686 1.915256 +v -0.201033 -0.797606 1.858081 +v -0.149854 -0.795881 1.887531 +v -0.176030 -0.768479 1.931528 +v -0.227262 -0.770129 1.902165 +v -0.173937 -0.821666 1.812540 +v -0.122816 -0.819883 1.842087 +v -0.095034 -0.840366 1.795383 +v -0.146095 -0.842200 1.765737 +v -0.096762 -0.724853 2.025970 +v -0.120455 -0.691556 2.065771 +v -0.149261 -0.732902 2.001003 +v -0.173215 -0.699238 2.041249 +v -0.164246 -0.616234 2.139304 +v -0.142980 -0.655282 2.103591 +v -0.217487 -0.623086 2.115610 +v -0.195988 -0.662573 2.079501 +v -0.299660 -0.668453 2.023840 +v -0.248275 -0.667025 2.052945 +v -0.269908 -0.627248 2.089274 +v -0.321351 -0.628631 2.060285 +v -0.276680 -0.705412 1.985222 +v -0.225340 -0.703889 2.014399 +v -0.201224 -0.737759 1.973871 +v -0.252513 -0.739353 1.944606 +v -0.184155 -0.574553 2.172742 +v -0.202628 -0.530421 2.203766 +v -0.237605 -0.580914 2.149391 +v -0.256280 -0.536295 2.180763 +v -0.234957 -0.435571 2.258038 +v -0.219579 -0.484009 2.232212 +v -0.288953 -0.440382 2.235619 +v -0.273431 -0.489402 2.209573 +v -0.377756 -0.493703 2.155013 +v -0.326185 -0.492605 2.183774 +v -0.341818 -0.443284 2.210024 +v -0.393420 -0.444268 2.181315 +v -0.360473 -0.541044 2.125991 +v -0.308939 -0.539838 2.154815 +v -0.290154 -0.584784 2.123271 +v -0.341645 -0.586085 2.094370 +v -0.248678 -0.385275 2.281091 +v -0.260670 -0.333307 2.301205 +v -0.302808 -0.389506 2.258878 +v -0.314940 -0.336982 2.279249 +v -0.279355 -0.225392 2.332556 +v -0.270912 -0.279939 2.318387 +v -0.333838 -0.227886 2.310984 +v -0.325299 -0.283033 2.296643 +v -0.430078 -0.285530 2.242880 +v -0.378413 -0.284912 2.271491 +v -0.387008 -0.229399 2.285927 +v -0.438686 -0.229892 2.257334 +v -0.419634 -0.339959 2.225341 +v -0.367985 -0.339217 2.253976 +v -0.355770 -0.392083 2.233458 +v -0.407398 -0.392948 2.204790 +v -0.285960 -0.169889 2.343653 +v -0.290700 -0.113663 2.351621 +v -0.340518 -0.171772 2.322212 +v -0.345314 -0.114923 2.330274 +v -0.294516 0.000000 2.358037 +v -0.293557 -0.056953 2.356424 +v -0.349177 0.000000 2.336775 +v -0.348205 -0.057585 2.335137 +v -0.453168 -0.058090 2.281674 +v -0.401469 -0.057967 2.310239 +v -0.402450 0.000000 2.311893 +v -0.454151 0.000000 2.283330 +v -0.450253 -0.115932 2.276772 +v -0.398558 -0.115686 2.305343 +v -0.393731 -0.172911 2.297229 +v -0.445419 -0.173281 2.268649 +v -0.293558 0.056952 2.356424 +v -0.290700 0.113663 2.351621 +v -0.348205 0.057584 2.335136 +v -0.345314 0.114923 2.330274 +v -0.279355 0.225391 2.332556 +v -0.285960 0.169889 2.343653 +v -0.333838 0.227886 2.310984 +v -0.340519 0.171771 2.322212 +v -0.445419 0.173280 2.268649 +v -0.393732 0.172911 2.297229 +v -0.387008 0.229398 2.285927 +v -0.438686 0.229892 2.257334 +v -0.450253 0.115931 2.276772 +v -0.398558 0.115685 2.305344 +v -0.401469 0.057966 2.310239 +v -0.453168 0.058089 2.281674 +v -0.270912 0.279939 2.318387 +v -0.260670 0.333307 2.301205 +v -0.325299 0.283033 2.296644 +v -0.314940 0.336982 2.279249 +v -0.234957 0.435570 2.258039 +v -0.248678 0.385274 2.281091 +v -0.288954 0.440381 2.235619 +v -0.302808 0.389505 2.258878 +v -0.407398 0.392947 2.204791 +v -0.355770 0.392082 2.233459 +v -0.341818 0.443283 2.210024 +v -0.393420 0.444267 2.181315 +v -0.419634 0.339958 2.225341 +v -0.367985 0.339216 2.253976 +v -0.378413 0.284911 2.271491 +v -0.430078 0.285529 2.242880 +v -0.219579 0.484008 2.232212 +v -0.202628 0.530420 2.203766 +v -0.273431 0.489401 2.209574 +v -0.256281 0.536295 2.180763 +v -0.164246 0.616233 2.139304 +v -0.184155 0.574552 2.172743 +v -0.217487 0.623085 2.115610 +v -0.237605 0.580913 2.149391 +v -0.341645 0.586084 2.094371 +v -0.290154 0.584783 2.123271 +v -0.269908 0.627248 2.089274 +v -0.321352 0.628631 2.060286 +v -0.360473 0.541043 2.125991 +v -0.308939 0.539838 2.154816 +v -0.326185 0.492605 2.183775 +v -0.377756 0.493703 2.155013 +v -0.142981 0.655282 2.103591 +v -0.120455 0.691555 2.065772 +v -0.195988 0.662572 2.079502 +v -0.173215 0.699237 2.041250 +v -0.072004 0.755035 1.984371 +v -0.096762 0.724852 2.025971 +v -0.124233 0.763438 1.958951 +v -0.149261 0.732901 2.001003 +v -0.252513 0.739353 1.944606 +v -0.201225 0.737758 1.973872 +v -0.176030 0.768478 1.931529 +v -0.227263 0.770129 1.902165 +v -0.276680 0.705411 1.985223 +v -0.225340 0.703888 2.014399 +v -0.248275 0.667024 2.052946 +v -0.299661 0.668453 2.023840 +v -0.046284 0.781981 1.941157 +v -0.019716 0.805608 1.896529 +v -0.098229 0.790686 1.915256 +v -0.071367 0.814530 1.870108 +v 0.035492 0.842255 1.803692 +v 0.007583 0.825727 1.850636 +v -0.015545 0.851620 1.776256 +v -0.043765 0.834872 1.823707 +v -0.146096 0.842200 1.765738 +v -0.095034 0.840365 1.795383 +v -0.066628 0.857242 1.747625 +v -0.117627 0.859120 1.717878 +v -0.173938 0.821665 1.812541 +v -0.122816 0.819883 1.842087 +v -0.149854 0.795880 1.887531 +v -0.201033 0.797606 1.858081 +v 0.063903 0.855245 1.755943 +v 0.092676 0.864472 1.707539 +v 0.013178 0.864702 1.727962 +v 0.042287 0.874198 1.679059 +v 0.121702 0.870059 1.658734 +v 0.071652 0.879954 1.629720 +v -0.029654 0.887857 1.570069 +v 0.021146 0.885817 1.600127 +v -0.059272 0.882177 1.619876 +v -0.008405 0.880139 1.649819 +v -0.037714 0.870450 1.699023 +v -0.088649 0.872400 1.669179 +v 0.710461 -0.199577 2.013634 +v 0.702711 -0.195764 2.026249 +v 0.718246 -0.167821 2.014284 +v 0.710689 -0.164666 2.026056 +v 0.694979 -0.191059 2.038495 +v 0.703256 -0.160792 2.037567 +v 0.719254 -0.110131 2.028684 +v 0.715872 -0.136726 2.027006 +v 0.723421 -0.139268 2.015636 +v 0.711777 -0.107674 2.039732 +v 0.708499 -0.133595 2.038172 +v 0.693969 -0.125606 2.059417 +v 0.701095 -0.129855 2.048918 +v 0.704225 -0.104720 2.050333 +v 0.696926 -0.101354 2.060672 +v 0.688759 -0.150993 2.059548 +v 0.695889 -0.156208 2.048708 +v 0.687443 -0.185548 2.050428 +v 0.680033 -0.179231 2.061924 +v 0.672954 -0.172202 2.073084 +v 0.681745 -0.145138 2.069933 +v 0.665949 -0.164410 2.083833 +v 0.674922 -0.138696 2.080197 +v 0.689623 -0.097562 2.070501 +v 0.686842 -0.120817 2.069401 +v 0.682344 -0.093359 2.080327 +v 0.679830 -0.115534 2.079352 +v 0.664716 -0.103248 2.099489 +v 0.672495 -0.109681 2.089291 +v 0.674673 -0.088686 2.090301 +v 0.666461 -0.083522 2.100782 +v 0.660549 -0.123805 2.100278 +v 0.667762 -0.131551 2.090141 +v 0.658985 -0.155879 2.094272 +v 0.652064 -0.146643 2.104544 +v 0.645076 -0.136695 2.114680 +v 0.652928 -0.115383 2.110546 +v 0.636291 -0.128135 2.125896 +v 0.643224 -0.108342 2.122546 +v 0.657254 -0.077797 2.111849 +v 0.656302 -0.096203 2.110161 +v 0.645628 -0.072997 2.125186 +v 0.645582 -0.090343 2.122900 +v 0.630541 -0.087400 2.139037 +v 0.629631 -0.070534 2.142048 +v 0.629357 -0.104631 2.137532 +v 0.624060 -0.123073 2.139550 +v 0.627204 -0.000067 2.148716 +v 0.627314 0.017756 2.148211 +v 0.644268 -0.000111 2.131117 +v 0.644320 0.018327 2.130649 +v 0.627825 0.035481 2.146944 +v 0.644653 0.036652 2.129500 +v 0.667089 -0.000209 2.106083 +v 0.667041 0.020858 2.105641 +v 0.656940 0.019480 2.116901 +v 0.656942 -0.000160 2.117349 +v 0.666998 0.041774 2.104518 +v 0.657076 0.038987 2.115784 +v 0.656764 0.077207 2.112457 +v 0.657132 0.058272 2.114261 +v 0.666706 0.062444 2.103045 +v 0.665899 0.082758 2.101533 +v 0.645264 0.072584 2.125634 +v 0.645082 0.054780 2.127832 +v 0.628583 0.053024 2.144978 +v 0.629392 0.070281 2.142323 +v 0.676055 -0.000253 2.095584 +v 0.675979 0.022087 2.095147 +v 0.684406 -0.000292 2.085744 +v 0.684299 0.023189 2.085303 +v 0.675812 0.044265 2.094019 +v 0.684012 0.046501 2.084147 +v 0.700000 -0.000366 2.066277 +v 0.699850 0.025034 2.065846 +v 0.692070 0.024164 2.075579 +v 0.692197 -0.000330 2.076017 +v 0.699385 0.050263 2.064675 +v 0.691693 0.048488 2.074410 +v 0.689111 0.096356 2.071352 +v 0.690794 0.072575 2.072878 +v 0.698348 0.075272 2.063109 +v 0.696492 0.100010 2.061496 +v 0.681796 0.092296 2.081198 +v 0.683267 0.069566 2.082652 +v 0.675273 0.066192 2.092561 +v 0.674095 0.087766 2.091135 +v 0.707814 -0.000403 2.055954 +v 0.707634 0.025794 2.055532 +v 0.715840 -0.000430 2.045264 +v 0.715633 0.026467 2.044860 +v 0.707063 0.051821 2.054366 +v 0.714970 0.053195 2.043727 +v 0.731614 0.027569 2.022256 +v 0.723575 0.027051 2.033707 +v 0.723815 -0.000438 2.034091 +v 0.730755 0.055402 2.021222 +v 0.722808 0.054378 2.032613 +v 0.719032 0.108508 2.029310 +v 0.721348 0.081531 2.031063 +v 0.729173 0.083076 2.019719 +v 0.726732 0.110592 2.017956 +v 0.711475 0.106071 2.040428 +v 0.713650 0.079734 2.042154 +v 0.705876 0.077641 2.052781 +v 0.703855 0.103226 2.051100 +v 0.739501 0.028021 2.010417 +v 0.747392 0.028386 1.998369 +v 0.738536 0.056261 2.009440 +v 0.746337 0.056934 1.997469 +v 0.755031 0.028625 1.986026 +v 0.753890 0.057361 1.985210 +v 0.749231 0.114396 1.982207 +v 0.751965 0.085959 1.983917 +v 0.741854 0.113590 1.994346 +v 0.744511 0.085340 1.996091 +v 0.736824 0.084352 2.007991 +v 0.734268 0.112291 2.006230 +v 0.745663 -0.143094 1.979990 +v 0.738335 -0.142394 1.992066 +v 0.740853 -0.172772 1.977572 +v 0.733366 -0.171834 1.989991 +v 0.730823 -0.141117 2.003907 +v 0.725753 -0.170179 2.002202 +v 0.718342 -0.202517 2.000808 +v 0.726290 -0.204594 1.987803 +v 0.734198 -0.205807 1.974629 +v 0.706237 -0.079061 2.052114 +v 0.698767 -0.076552 2.062392 +v 0.713953 -0.081257 2.041551 +v 0.707353 -0.053012 2.053886 +v 0.699728 -0.051340 2.064166 +v 0.715219 -0.054470 2.043296 +v 0.721579 -0.083076 2.030524 +v 0.723004 -0.055675 2.032228 +v 0.723693 -0.028073 2.033512 +v 0.715779 -0.027470 2.044640 +v 0.700043 -0.025885 2.065584 +v 0.707800 -0.026734 2.055286 +v 0.675812 -0.067067 2.091824 +v 0.667211 -0.063167 2.102365 +v 0.683780 -0.070578 2.081884 +v 0.676227 -0.045002 2.093481 +v 0.667386 -0.042383 2.104020 +v 0.684409 -0.047355 2.083587 +v 0.691277 -0.073723 2.072131 +v 0.692069 -0.049454 2.073868 +v 0.692279 -0.024930 2.075299 +v 0.684518 -0.023866 2.085013 +v 0.667253 -0.021342 2.105381 +v 0.676206 -0.022672 2.094866 +v 0.671958 0.108878 2.090056 +v 0.664212 0.102582 2.100193 +v 0.679342 0.114612 2.080171 +v 0.667350 0.130956 2.090753 +v 0.660162 0.123310 2.100840 +v 0.674515 0.138006 2.080824 +v 0.693569 0.124438 2.060182 +v 0.686388 0.119773 2.070205 +v 0.688456 0.150132 2.060166 +v 0.681399 0.144368 2.070579 +v 0.672734 0.171728 2.073515 +v 0.679842 0.178702 2.062338 +v 0.665689 0.163984 2.084250 +v 0.651807 0.146333 2.104906 +v 0.658722 0.155510 2.094679 +v 0.700776 0.128560 2.049648 +v 0.708246 0.132205 2.038838 +v 0.695652 0.155256 2.049300 +v 0.703072 0.159769 2.038109 +v 0.723293 0.137968 2.016140 +v 0.715694 0.135324 2.027605 +v 0.718184 0.166881 2.014709 +v 0.710566 0.163638 2.026543 +v 0.702654 0.195141 2.026589 +v 0.710427 0.199009 2.013919 +v 0.694867 0.190432 2.038859 +v 0.687296 0.184963 2.050826 +v 0.730765 0.140092 2.004320 +v 0.738297 0.141690 1.992347 +v 0.725716 0.169448 2.002534 +v 0.733338 0.171353 1.990214 +v 0.745658 0.142668 1.980141 +v 0.740846 0.172506 1.977689 +v 0.734190 0.205673 1.974703 +v 0.726272 0.204321 1.987949 +v 0.718321 0.202084 2.001028 +v 0.628803 -0.053263 2.144734 +v 0.645432 -0.055172 2.127449 +v 0.627990 -0.035679 2.146761 +v 0.644912 -0.036979 2.129210 +v 0.657574 -0.058829 2.113711 +v 0.657413 -0.039455 2.115380 +v 0.657124 -0.019851 2.116690 +v 0.644461 -0.018585 2.130498 +v 0.627404 -0.017912 2.148115 +v 0.630327 0.087177 2.139294 +v 0.645255 0.089981 2.123319 +v 0.629189 0.104461 2.137733 +v 0.642967 0.108069 2.122873 +v 0.655862 0.095686 2.110729 +v 0.652589 0.114998 2.110999 +v 0.644854 0.136454 2.114974 +v 0.636120 0.127962 2.126108 +v 0.623950 0.122963 2.139686 +v -0.062609 0.795521 0.022996 +v -0.062754 0.797361 0.021715 +v 0.000000 0.799830 0.021715 +v 0.000000 0.797985 0.022996 +v -0.062608 0.795510 0.028075 +v 0.000000 0.797974 0.028075 +v -0.124831 0.788149 0.028075 +v -0.124833 0.788161 0.022996 +v -0.125121 0.789983 0.021715 +v -0.063181 0.802784 0.111857 +v -0.062738 0.797167 0.106276 +v 0.000000 0.799636 0.106276 +v 0.000000 0.805270 0.111857 +v -0.063953 0.812603 0.117523 +v 0.000000 0.815120 0.117523 +v -0.127513 0.805084 0.117523 +v -0.125972 0.795356 0.111857 +v -0.125091 0.789791 0.106276 +v -0.088215 1.120876 0.360559 +v -0.086923 1.104465 0.358702 +v 0.000000 1.107886 0.358702 +v 0.000000 1.124348 0.360559 +v 0.000000 1.197354 0.360548 +v -0.093943 1.193658 0.360548 +v -0.187308 1.182613 0.360548 +v -0.175887 1.110505 0.360560 +v -0.173312 1.094246 0.358702 +v -0.098571 1.252464 0.244878 +v -0.098359 1.249770 0.295392 +v 0.000000 1.253641 0.295392 +v 0.000000 1.256343 0.244878 +v -0.098646 1.253413 0.193502 +v 0.000000 1.257295 0.193502 +v -0.196684 1.241815 0.193502 +v -0.196535 1.240875 0.244878 +v -0.196113 1.238206 0.295392 +v -0.105213 1.336859 0.062279 +v -0.104991 1.334033 0.069397 +v 0.000000 1.338164 0.069397 +v 0.000000 1.340999 0.062279 +v -0.105370 1.338851 0.053092 +v 0.000000 1.342998 0.053092 +v -0.210091 1.326463 0.053092 +v -0.209779 1.324489 0.062279 +v -0.209335 1.321689 0.069397 +v -0.186285 0.775933 0.022996 +v -0.186716 0.777727 0.021715 +v -0.186283 0.775922 0.028075 +v -0.246588 0.758918 0.028075 +v -0.246591 0.758929 0.022996 +v -0.247161 0.760684 0.021715 +v -0.187986 0.783017 0.111857 +v -0.186671 0.777538 0.106276 +v -0.190285 0.792594 0.117523 +v -0.251886 0.775225 0.117523 +v -0.248842 0.765857 0.111857 +v -0.247101 0.760499 0.106276 +v -0.262473 1.093277 0.360560 +v -0.258630 1.077270 0.358702 +v -0.279516 1.164266 0.360548 +v -0.370003 1.138752 0.360548 +v -0.347443 1.069318 0.360560 +v -0.342356 1.053662 0.358702 +v -0.293286 1.221624 0.244878 +v -0.292655 1.218997 0.295392 +v -0.293508 1.222550 0.193502 +v -0.388526 1.195758 0.193502 +v -0.388231 1.194853 0.244878 +v -0.387397 1.192283 0.295392 +v -0.313049 1.303941 0.062279 +v -0.312387 1.301184 0.069397 +v -0.313515 1.305884 0.053092 +v -0.415009 1.277267 0.053092 +v -0.414392 1.275366 0.062279 +v -0.413516 1.272670 0.069397 +v -0.305375 0.737239 0.022996 +v -0.306081 0.738943 0.021715 +v -0.305370 0.737228 0.028075 +v -0.362273 0.711000 0.028075 +v -0.362278 0.711010 0.022996 +v -0.363116 0.712654 0.021715 +v -0.308162 0.743969 0.111857 +v -0.306006 0.738764 0.106276 +v -0.311932 0.753069 0.117523 +v -0.370057 0.726277 0.117523 +v -0.365585 0.717501 0.111857 +v -0.363028 0.712481 0.106276 +v -0.430268 1.038757 0.360560 +v -0.423968 1.023548 0.358702 +v -0.458205 1.106206 0.360548 +v -0.543587 1.066851 0.360548 +v -0.510443 1.001801 0.360560 +v -0.502969 0.987133 0.358702 +v -0.480779 1.160704 0.244878 +v -0.479746 1.158207 0.295392 +v -0.481144 1.161583 0.193502 +v -0.570799 1.120258 0.193502 +v -0.570367 1.119409 0.244878 +v -0.569140 1.117002 0.295392 +v -0.513175 1.238915 0.062279 +v -0.512091 1.236297 0.069397 +v -0.513941 1.240762 0.053092 +v -0.609708 1.196620 0.053092 +v -0.608800 1.194839 0.062279 +v -0.607513 1.192313 0.069397 +v -0.416945 0.680391 0.022996 +v -0.417909 0.681964 0.021715 +v -0.416939 0.680381 0.028075 +v -0.469038 0.645574 0.028076 +v -0.469044 0.645583 0.022996 +v -0.470129 0.647076 0.021715 +v -0.420751 0.686602 0.111857 +v -0.417807 0.681798 0.106276 +v -0.425897 0.695000 0.117523 +v -0.479115 0.659446 0.117523 +v -0.473326 0.651477 0.111857 +v -0.470015 0.646919 0.106276 +v -0.587467 0.958659 0.360560 +v -0.578865 0.944623 0.358702 +v -0.625612 1.020908 0.360548 +v -0.703787 0.968680 0.360548 +v -0.660874 0.909616 0.360560 +v -0.651198 0.896298 0.358702 +v -0.656434 1.071203 0.244879 +v -0.655022 1.068899 0.295392 +v -0.656931 1.072015 0.193502 +v -0.739019 1.017173 0.193502 +v -0.738459 1.016402 0.244879 +v -0.736871 1.014217 0.295392 +v -0.700666 1.143384 0.062279 +v -0.699185 1.140967 0.069397 +v -0.701711 1.145088 0.053092 +v -0.789394 1.086508 0.053092 +v -0.788219 1.084891 0.062279 +v -0.786553 1.082597 0.069397 +v -0.518247 0.606790 0.022996 +v -0.519445 0.608193 0.021715 +v -0.518239 0.606781 0.028076 +v -0.564252 0.564252 0.028076 +v -0.564260 0.564260 0.022996 +v -0.565565 0.565565 0.021715 +v -0.522978 0.612329 0.111857 +v -0.519319 0.608045 0.106276 +v -0.529375 0.619819 0.117523 +v -0.576376 0.576376 0.117523 +v -0.569412 0.569412 0.111857 +v -0.565428 0.565428 0.106276 +v -0.730201 0.854956 0.360560 +v -0.719510 0.842439 0.358702 +v -0.777615 0.910471 0.360548 +v -0.846657 0.846657 0.360548 +v -0.795033 0.795034 0.360560 +v -0.783393 0.783393 0.358702 +v -0.815925 0.955326 0.244879 +v -0.814170 0.953271 0.295392 +v -0.816543 0.956050 0.193502 +v -0.889041 0.889041 0.193502 +v -0.888368 0.888368 0.244879 +v -0.886458 0.886458 0.295392 +v -0.870904 1.019698 0.062279 +v -0.869064 1.017543 0.069397 +v -0.872203 1.021218 0.053092 +v -0.949642 0.949642 0.053092 +v -0.948229 0.948229 0.062279 +v -0.946225 0.946225 0.069397 +v -0.606789 0.518247 0.022996 +v -0.608192 0.519445 0.021715 +v -0.606781 0.518241 0.028076 +v -0.645574 0.469038 0.028076 +v -0.645583 0.469044 0.022996 +v -0.647076 0.470129 0.021715 +v -0.612329 0.522978 0.111857 +v -0.608045 0.519319 0.106276 +v -0.619819 0.529375 0.117523 +v -0.659445 0.479116 0.117523 +v -0.651477 0.473326 0.111857 +v -0.646919 0.470015 0.106276 +v -0.854956 0.730202 0.360560 +v -0.842438 0.719511 0.358702 +v -0.910471 0.777616 0.360548 +v -0.968680 0.703787 0.360548 +v -0.909616 0.660875 0.360560 +v -0.896298 0.651199 0.358702 +v -0.955326 0.815925 0.244879 +v -0.953271 0.814170 0.295392 +v -0.956050 0.816543 0.193502 +v -1.017173 0.739019 0.193502 +v -1.016402 0.738459 0.244879 +v -1.014217 0.736871 0.295392 +v -1.019698 0.870905 0.062279 +v -1.017543 0.869064 0.069397 +v -1.021218 0.872203 0.053092 +v -1.086508 0.789394 0.053092 +v -1.084891 0.788219 0.062279 +v -1.082597 0.786553 0.069397 +v -0.680391 0.416945 0.022996 +v -0.681964 0.417909 0.021715 +v -0.680381 0.416939 0.028076 +v -0.711000 0.362273 0.028076 +v -0.711010 0.362278 0.022996 +v -0.712654 0.363116 0.021715 +v -0.686602 0.420751 0.111857 +v -0.681798 0.417807 0.106276 +v -0.695000 0.425897 0.117523 +v -0.726277 0.370057 0.117523 +v -0.717501 0.365585 0.111857 +v -0.712481 0.363028 0.106276 +v -0.958659 0.587467 0.360560 +v -0.944623 0.578866 0.358702 +v -1.020907 0.625613 0.360548 +v -1.066850 0.543587 0.360548 +v -1.001801 0.510444 0.360560 +v -0.987133 0.502970 0.358702 +v -1.071203 0.656434 0.244879 +v -1.068899 0.655022 0.295392 +v -1.072015 0.656931 0.193503 +v -1.120257 0.570799 0.193503 +v -1.119409 0.570367 0.244879 +v -1.117002 0.569141 0.295392 +v -1.143384 0.700666 0.062279 +v -1.140967 0.699185 0.069397 +v -1.145088 0.701711 0.053092 +v -1.196619 0.609708 0.053092 +v -1.194838 0.608800 0.062279 +v -1.192313 0.607513 0.069397 +v -0.737238 0.305375 0.022996 +v -0.738943 0.306081 0.021715 +v -0.737228 0.305370 0.028076 +v -0.758918 0.246588 0.028076 +v -0.758929 0.246591 0.022996 +v -0.760684 0.247162 0.021715 +v -0.743969 0.308163 0.111857 +v -0.738764 0.306006 0.106276 +v -0.753069 0.311932 0.117523 +v -0.775225 0.251886 0.117523 +v -0.765857 0.248843 0.111857 +v -0.760499 0.247101 0.106276 +v -1.038757 0.430268 0.360560 +v -1.023548 0.423968 0.358702 +v -1.106206 0.458206 0.360548 +v -1.138751 0.370003 0.360548 +v -1.069318 0.347443 0.360560 +v -1.053662 0.342356 0.358702 +v -1.160704 0.480780 0.244879 +v -1.158207 0.479746 0.295392 +v -1.161583 0.481144 0.193503 +v -1.195758 0.388526 0.193503 +v -1.194853 0.388232 0.244879 +v -1.192283 0.387397 0.295392 +v -1.238915 0.513175 0.062279 +v -1.236296 0.512091 0.069397 +v -1.240762 0.513941 0.053092 +v -1.277267 0.415009 0.053092 +v -1.275366 0.414392 0.062279 +v -1.272670 0.413516 0.069397 +v -0.775933 0.186285 0.022996 +v -0.777727 0.186716 0.021715 +v -0.775922 0.186283 0.028076 +v -0.788149 0.124831 0.028076 +v -0.788160 0.124833 0.022996 +v -0.789983 0.125121 0.021715 +v -0.783017 0.187986 0.111857 +v -0.777538 0.186671 0.106276 +v -0.792594 0.190285 0.117523 +v -0.805084 0.127513 0.117523 +v -0.795356 0.125972 0.111857 +v -0.789791 0.125091 0.106276 +v -1.093276 0.262473 0.360560 +v -1.077269 0.258630 0.358702 +v -1.164266 0.279516 0.360548 +v -1.182613 0.187308 0.360548 +v -1.110505 0.175887 0.360560 +v -1.094246 0.173312 0.358702 +v -1.221624 0.293286 0.244879 +v -1.218997 0.292656 0.295392 +v -1.222550 0.293509 0.193503 +v -1.241815 0.196685 0.193503 +v -1.240875 0.196536 0.244879 +v -1.238206 0.196113 0.295392 +v -1.303940 0.313049 0.062279 +v -1.301184 0.312387 0.069397 +v -1.305884 0.313515 0.053092 +v -1.326463 0.210091 0.053092 +v -1.324489 0.209779 0.062279 +v -1.321689 0.209335 0.069397 +v -0.795521 0.062609 0.022996 +v -0.797361 0.062754 0.021715 +v -0.795510 0.062608 0.028076 +v -0.797973 0.000000 0.028076 +v -0.797985 0.000000 0.022996 +v -0.799830 0.000000 0.021715 +v -0.802784 0.063181 0.111857 +v -0.797167 0.062739 0.106276 +v -0.812603 0.063953 0.117523 +v -0.815120 0.000000 0.117523 +v -0.805270 0.000000 0.111857 +v -0.799636 0.000000 0.106276 +v -1.120876 0.088215 0.360560 +v -1.104465 0.086924 0.358702 +v -1.193658 0.093943 0.360548 +v -1.197354 0.000000 0.360548 +v -1.124348 0.000000 0.360560 +v -1.107886 0.000000 0.358702 +v -1.252464 0.098571 0.244879 +v -1.249770 0.098359 0.295392 +v -1.253413 0.098646 0.193503 +v -1.257295 0.000000 0.193503 +v -1.256343 0.000000 0.244879 +v -1.253641 0.000000 0.295392 +v -1.336858 0.105213 0.062279 +v -1.334033 0.104991 0.069397 +v -1.338851 0.105370 0.053092 +v -1.342998 0.000000 0.053092 +v -1.340999 0.000000 0.062279 +v -1.338164 0.000000 0.069397 +v 0.563271 0.568336 0.022996 +v 0.565111 0.569137 0.021715 +v 0.568783 0.567770 0.022047 +v 0.567702 0.566866 0.022996 +v 0.563262 0.568328 0.028075 +v 0.567693 0.566858 0.028075 +v 0.549958 0.579691 0.028075 +v 0.549966 0.579699 0.022996 +v 0.551372 0.580911 0.021715 +v 0.568861 0.573077 0.110196 +v 0.564550 0.569402 0.105063 +v 0.567529 0.568721 0.104223 +v 0.571679 0.570563 0.107413 +v 0.576353 0.579849 0.115659 +v 0.580101 0.576907 0.112537 +v 0.562022 0.591974 0.117057 +v 0.555099 0.584880 0.111442 +v 0.551133 0.580871 0.105972 +v 0.794832 0.800175 0.358966 +v 0.783351 0.788589 0.357130 +v 0.788425 0.785387 0.354499 +v 0.799716 0.796703 0.356297 +v 0.849791 0.846892 0.356286 +v 0.845750 0.851555 0.358954 +v 0.825353 0.869518 0.360149 +v 0.775191 0.816636 0.360161 +v 0.763880 0.804712 0.358309 +v 0.886623 0.892803 0.244267 +v 0.884778 0.890940 0.294475 +v 0.887787 0.884977 0.292939 +v 0.889537 0.886731 0.243243 +v 0.887281 0.893466 0.193175 +v 0.890172 0.887367 0.192627 +v 0.866469 0.912867 0.193420 +v 0.865816 0.912179 0.244725 +v 0.863969 0.910232 0.295162 +v 0.946685 0.953401 0.062147 +v 0.944684 0.951382 0.069057 +v 0.948320 0.945641 0.068488 +v 0.950329 0.947654 0.061925 +v 0.948075 0.954803 0.053059 +v 0.951687 0.949015 0.053003 +v 0.925610 0.975201 0.053083 +v 0.924237 0.973754 0.062246 +v 0.922284 0.971695 0.069312 +v 0.416944 0.680391 0.022996 +v 0.417908 0.681964 0.021715 +v 0.469444 0.647661 0.021715 +v 0.468361 0.646167 0.022996 +v 0.416938 0.680381 0.028075 +v 0.468355 0.646157 0.028075 +v 0.362273 0.711000 0.028075 +v 0.362278 0.711010 0.022996 +v 0.363115 0.712654 0.021715 +v 0.420751 0.686602 0.111857 +v 0.417807 0.681798 0.106276 +v 0.469330 0.647503 0.106276 +v 0.472637 0.652066 0.111857 +v 0.425897 0.695000 0.117523 +v 0.478418 0.660041 0.117523 +v 0.370057 0.726277 0.117523 +v 0.365585 0.717501 0.111857 +v 0.363027 0.712481 0.106276 +v 0.587467 0.958659 0.360559 +v 0.578866 0.944623 0.358702 +v 0.650250 0.897108 0.358702 +v 0.659912 0.910438 0.360559 +v 0.702762 0.969555 0.360548 +v 0.625612 1.020908 0.360548 +v 0.543588 1.066851 0.360548 +v 0.510443 1.001801 0.360559 +v 0.502970 0.987133 0.358702 +v 0.656433 1.071203 0.244878 +v 0.655022 1.068899 0.295392 +v 0.735798 1.015133 0.295392 +v 0.737384 1.017321 0.244878 +v 0.656931 1.072015 0.193502 +v 0.737943 1.018092 0.193502 +v 0.570800 1.120258 0.193502 +v 0.570368 1.119409 0.244878 +v 0.569140 1.117002 0.295392 +v 0.700666 1.143384 0.062279 +v 0.699185 1.140967 0.069397 +v 0.785408 1.083576 0.069397 +v 0.787071 1.085871 0.062279 +v 0.701710 1.145088 0.053092 +v 0.788244 1.087489 0.053092 +v 0.609707 1.196620 0.053092 +v 0.608800 1.194839 0.062279 +v 0.607513 1.192313 0.069396 +v 0.305374 0.737239 0.022996 +v 0.306080 0.738943 0.021715 +v 0.305370 0.737228 0.028075 +v 0.246588 0.758918 0.028075 +v 0.246591 0.758929 0.022996 +v 0.247161 0.760684 0.021715 +v 0.308162 0.743969 0.111857 +v 0.306006 0.738764 0.106276 +v 0.311931 0.753069 0.117523 +v 0.251886 0.775225 0.117523 +v 0.248842 0.765857 0.111857 +v 0.247101 0.760499 0.106276 +v 0.430267 1.038757 0.360559 +v 0.423968 1.023548 0.358702 +v 0.458206 1.106206 0.360548 +v 0.370003 1.138752 0.360548 +v 0.347443 1.069318 0.360559 +v 0.342356 1.053662 0.358702 +v 0.480779 1.160704 0.244878 +v 0.479745 1.158208 0.295392 +v 0.481144 1.161583 0.193502 +v 0.388526 1.195758 0.193502 +v 0.388231 1.194853 0.244878 +v 0.387396 1.192283 0.295392 +v 0.513175 1.238915 0.062279 +v 0.512091 1.236297 0.069397 +v 0.513941 1.240762 0.053092 +v 0.415009 1.277267 0.053092 +v 0.414392 1.275366 0.062279 +v 0.413516 1.272670 0.069397 +v 0.186285 0.775933 0.022996 +v 0.186716 0.777727 0.021715 +v 0.186282 0.775922 0.028075 +v 0.124831 0.788149 0.028075 +v 0.124832 0.788161 0.022996 +v 0.125121 0.789983 0.021715 +v 0.187986 0.783017 0.111857 +v 0.186671 0.777538 0.106276 +v 0.190285 0.792594 0.117523 +v 0.127513 0.805084 0.117523 +v 0.125972 0.795356 0.111857 +v 0.125091 0.789791 0.106276 +v 0.262473 1.093277 0.360559 +v 0.258630 1.077270 0.358702 +v 0.279516 1.164266 0.360548 +v 0.187308 1.182613 0.360548 +v 0.175887 1.110505 0.360559 +v 0.173312 1.094246 0.358702 +v 0.293286 1.221624 0.244878 +v 0.292655 1.218997 0.295392 +v 0.293508 1.222550 0.193502 +v 0.196684 1.241815 0.193502 +v 0.196535 1.240875 0.244878 +v 0.196113 1.238206 0.295392 +v 0.313049 1.303941 0.062279 +v 0.312387 1.301184 0.069397 +v 0.313515 1.305884 0.053092 +v 0.210091 1.326463 0.053092 +v 0.209778 1.324489 0.062279 +v 0.209335 1.321689 0.069397 +v 0.062609 0.795521 0.022996 +v 0.062754 0.797361 0.021715 +v 0.062608 0.795510 0.028075 +v 0.063180 0.802784 0.111857 +v 0.062738 0.797167 0.106276 +v 0.063953 0.812603 0.117523 +v 0.088215 1.120876 0.360559 +v 0.086923 1.104465 0.358702 +v 0.093943 1.193658 0.360548 +v 0.098571 1.252464 0.244878 +v 0.098359 1.249770 0.295392 +v 0.098646 1.253413 0.193502 +v 0.105213 1.336859 0.062279 +v 0.104991 1.334033 0.069397 +v 0.105370 1.338851 0.053092 +v -0.083818 1.065009 0.332047 +v -0.167120 1.055154 0.332047 +v -0.166026 1.048244 0.303722 +v -0.083269 1.058034 0.303722 +v 0.000000 1.068307 0.332047 +v 0.000000 1.061310 0.303722 +v 0.000000 1.078596 0.344249 +v -0.084625 1.075266 0.344249 +v -0.168730 1.065316 0.344249 +v -0.096283 1.223387 0.350053 +v -0.191973 1.212067 0.350053 +v -0.189767 1.198142 0.357912 +v -0.095177 1.209332 0.357912 +v 0.000000 1.227176 0.350053 +v 0.000000 1.213077 0.357912 +v 0.000000 1.238983 0.338096 +v -0.097209 1.235157 0.338096 +v -0.193820 1.223729 0.338096 +v -0.249390 1.038785 0.332047 +v -0.330125 1.016020 0.332047 +v -0.327963 1.009366 0.303722 +v -0.247757 1.031981 0.303722 +v -0.251792 1.048789 0.344249 +v -0.333305 1.025805 0.344249 +v -0.286477 1.193263 0.350053 +v -0.379219 1.167114 0.350053 +v -0.374862 1.153705 0.357912 +v -0.283186 1.179554 0.357912 +v -0.289234 1.204744 0.338096 +v -0.382867 1.178343 0.338096 +v -0.408822 0.986982 0.332047 +v -0.485001 0.951869 0.332047 +v -0.481824 0.945634 0.303722 +v -0.406144 0.980518 0.303722 +v -0.412759 0.996488 0.344249 +v -0.489672 0.961036 0.344249 +v -0.469617 1.133757 0.350053 +v -0.557126 1.093422 0.350053 +v -0.550725 1.080860 0.357912 +v -0.464222 1.120732 0.357912 +v -0.474135 1.144665 0.338096 +v -0.562486 1.103942 0.338097 +v -0.558186 0.910877 0.332047 +v -0.627935 0.864278 0.332047 +v -0.623822 0.858618 0.303722 +v -0.554530 0.904911 0.303722 +v -0.563561 0.919649 0.344249 +v -0.633982 0.872602 0.344249 +v -0.641194 1.046335 0.350053 +v -0.721315 0.992806 0.350053 +v -0.713028 0.981400 0.357912 +v -0.633827 1.034313 0.357912 +v -0.647363 1.056401 0.338097 +v -0.728255 1.002358 0.338097 +v -0.693806 0.812343 0.332047 +v -0.755407 0.755407 0.332047 +v -0.750459 0.750460 0.303722 +v -0.689262 0.807023 0.303722 +v -0.700488 0.820166 0.344249 +v -0.762682 0.762682 0.344249 +v -0.796983 0.933147 0.350053 +v -0.867744 0.867744 0.350053 +v -0.857774 0.857775 0.357912 +v -0.787826 0.922427 0.357912 +v -0.804651 0.942125 0.338097 +v -0.876093 0.876093 0.338097 +v -0.812343 0.693806 0.332047 +v -0.864278 0.627935 0.332047 +v -0.858618 0.623822 0.303722 +v -0.807023 0.689262 0.303722 +v -0.820166 0.700488 0.344249 +v -0.872602 0.633982 0.344249 +v -0.933147 0.796983 0.350053 +v -0.992806 0.721316 0.350053 +v -0.981400 0.713028 0.357913 +v -0.922426 0.787827 0.357912 +v -0.942125 0.804651 0.338097 +v -1.002358 0.728255 0.338097 +v -0.910877 0.558186 0.332047 +v -0.951868 0.485002 0.332047 +v -0.945634 0.481825 0.303722 +v -0.904911 0.554530 0.303722 +v -0.919649 0.563562 0.344249 +v -0.961036 0.489673 0.344249 +v -1.046334 0.641194 0.350053 +v -1.093422 0.557126 0.350053 +v -1.080859 0.550725 0.357913 +v -1.034313 0.633828 0.357913 +v -1.056401 0.647363 0.338097 +v -1.103942 0.562486 0.338097 +v -0.986982 0.408822 0.332047 +v -1.016020 0.330126 0.332047 +v -1.009366 0.327963 0.303722 +v -0.980518 0.406144 0.303722 +v -0.996488 0.412759 0.344249 +v -1.025805 0.333305 0.344249 +v -1.133757 0.469618 0.350053 +v -1.167114 0.379219 0.350053 +v -1.153705 0.374862 0.357913 +v -1.120732 0.464223 0.357913 +v -1.144665 0.474136 0.338097 +v -1.178342 0.382867 0.338097 +v -1.038785 0.249390 0.332047 +v -1.055154 0.167120 0.332047 +v -1.048244 0.166026 0.303722 +v -1.031981 0.247757 0.303722 +v -1.048789 0.251792 0.344249 +v -1.065316 0.168730 0.344249 +v -1.193263 0.286478 0.350053 +v -1.212067 0.191973 0.350053 +v -1.198142 0.189767 0.357913 +v -1.179554 0.283186 0.357913 +v -1.204744 0.289234 0.338097 +v -1.223729 0.193820 0.338097 +v -1.065009 0.083818 0.332047 +v -1.068307 0.000000 0.332047 +v -1.061310 0.000000 0.303722 +v -1.058034 0.083269 0.303722 +v -1.075265 0.084625 0.344249 +v -1.078596 0.000000 0.344249 +v -1.223387 0.096283 0.350053 +v -1.227176 0.000000 0.350053 +v -1.213077 0.000000 0.357913 +v -1.209332 0.095177 0.357913 +v -1.235157 0.097209 0.338097 +v -1.238983 0.000000 0.338097 +v 0.690149 0.815467 0.332047 +v 0.627020 0.865059 0.332047 +v 0.622914 0.859394 0.303722 +v 0.685629 0.810126 0.303722 +v 0.736709 0.776066 0.331733 +v 0.731918 0.771014 0.303459 +v 0.743761 0.783502 0.343899 +v 0.696796 0.823320 0.344249 +v 0.633059 0.873390 0.344249 +v 0.792782 0.936735 0.350053 +v 0.720265 0.993703 0.350053 +v 0.711990 0.982287 0.357912 +v 0.783674 0.925973 0.357912 +v 0.845843 0.891119 0.349686 +v 0.836156 0.880907 0.357522 +v 0.853947 0.899663 0.337765 +v 0.800409 0.945748 0.338096 +v 0.727195 1.003264 0.338096 +v 0.558187 0.910877 0.332047 +v 0.485001 0.951869 0.332047 +v 0.481825 0.945634 0.303722 +v 0.554531 0.904911 0.303722 +v 0.563562 0.919649 0.344249 +v 0.489672 0.961036 0.344249 +v 0.641194 1.046335 0.350053 +v 0.557126 1.093422 0.350053 +v 0.550726 1.080860 0.357912 +v 0.633827 1.034313 0.357912 +v 0.647363 1.056401 0.338096 +v 0.562486 1.103942 0.338096 +v 0.408822 0.986982 0.332047 +v 0.330125 1.016020 0.332047 +v 0.327963 1.009366 0.303722 +v 0.406144 0.980518 0.303722 +v 0.412759 0.996488 0.344249 +v 0.333305 1.025805 0.344249 +v 0.469618 1.133757 0.350053 +v 0.379218 1.167114 0.350053 +v 0.374862 1.153705 0.357912 +v 0.464222 1.120732 0.357912 +v 0.474136 1.144665 0.338096 +v 0.382867 1.178343 0.338096 +v 0.249390 1.038785 0.332047 +v 0.167120 1.055154 0.332047 +v 0.166026 1.048244 0.303722 +v 0.247757 1.031981 0.303722 +v 0.251792 1.048789 0.344249 +v 0.168730 1.065316 0.344249 +v 0.286477 1.193263 0.350053 +v 0.191973 1.212067 0.350053 +v 0.189767 1.198142 0.357912 +v 0.283186 1.179554 0.357912 +v 0.289234 1.204744 0.338096 +v 0.193820 1.223729 0.338096 +v 0.083818 1.065009 0.332047 +v 0.083269 1.058034 0.303722 +v 0.084625 1.075265 0.344249 +v 0.096283 1.223387 0.350053 +v 0.095177 1.209332 0.357912 +v 0.097209 1.235157 0.338096 +v -0.085694 1.088840 0.353200 +v -0.170860 1.078765 0.353200 +v 0.000000 1.092212 0.353200 +v -0.254971 1.062029 0.353200 +v -0.337512 1.038755 0.353200 +v -0.417970 1.009067 0.353200 +v -0.495853 0.973168 0.353200 +v -0.570676 0.931259 0.353200 +v -0.641985 0.883618 0.353200 +v -0.709331 0.830520 0.353200 +v -0.772310 0.772310 0.353200 +v -0.830520 0.709331 0.353200 +v -0.883618 0.641986 0.353200 +v -0.931259 0.570676 0.353200 +v -0.973168 0.495854 0.353200 +v -1.009067 0.417970 0.353200 +v -1.038755 0.337512 0.353200 +v -1.062029 0.254971 0.353200 +v -1.078765 0.170860 0.353200 +v -1.088840 0.085694 0.353200 +v -1.092212 0.000000 0.353200 +v 0.705592 0.833714 0.353200 +v 0.641051 0.884416 0.353200 +v 0.753111 0.793359 0.352823 +v 0.715718 0.845678 0.358702 +v 0.570677 0.931259 0.353200 +v 0.495854 0.973168 0.353200 +v 0.417970 1.009067 0.353200 +v 0.337512 1.038755 0.353200 +v 0.254971 1.062029 0.353200 +v 0.170860 1.078765 0.353200 +v 0.085694 1.088840 0.353200 +v -0.098996 1.257856 0.128281 +v -0.098781 1.255128 0.144491 +v 0.000000 1.259015 0.144491 +v 0.000000 1.261752 0.128281 +v -0.099365 1.262556 0.114410 +v 0.000000 1.266466 0.114410 +v -0.198119 1.250874 0.114410 +v -0.197382 1.246218 0.128281 +v -0.196954 1.243515 0.144491 +v -0.294549 1.226884 0.128281 +v -0.293910 1.224223 0.144492 +v -0.295650 1.231468 0.114410 +v -0.391360 1.204481 0.114410 +v -0.389903 1.199997 0.128281 +v -0.389057 1.197394 0.144492 +v -0.482850 1.165701 0.128281 +v -0.481802 1.163173 0.144492 +v -0.484654 1.170057 0.114410 +v -0.574963 1.128430 0.114410 +v -0.572823 1.124229 0.128281 +v -0.571580 1.121791 0.144492 +v -0.659260 1.075815 0.128281 +v -0.657830 1.073482 0.144492 +v -0.661723 1.079835 0.114410 +v -0.744410 1.024593 0.114410 +v -0.741639 1.020779 0.128281 +v -0.740030 1.018565 0.144492 +v -0.819438 0.959439 0.128281 +v -0.817661 0.957358 0.144492 +v -0.822500 0.963024 0.114410 +v -0.895527 0.895527 0.114410 +v -0.892193 0.892193 0.128281 +v -0.890258 0.890258 0.144492 +v -0.959439 0.819438 0.128281 +v -0.957358 0.817661 0.144492 +v -0.963024 0.822500 0.114410 +v -1.024593 0.744410 0.114410 +v -1.020779 0.741639 0.128281 +v -1.018565 0.740030 0.144492 +v -1.075815 0.659260 0.128281 +v -1.073482 0.657830 0.144492 +v -1.079835 0.661723 0.114410 +v -1.128430 0.574963 0.114410 +v -1.124229 0.572823 0.128281 +v -1.121790 0.571580 0.144492 +v -1.165701 0.482850 0.128281 +v -1.163173 0.481802 0.144492 +v -1.170057 0.484654 0.114410 +v -1.204481 0.391360 0.114410 +v -1.199997 0.389903 0.128281 +v -1.197394 0.389057 0.144492 +v -1.226884 0.294549 0.128281 +v -1.224223 0.293910 0.144492 +v -1.231468 0.295650 0.114410 +v -1.250874 0.198119 0.114410 +v -1.246218 0.197382 0.128281 +v -1.243514 0.196954 0.144492 +v -1.257856 0.098996 0.128281 +v -1.255128 0.098781 0.144492 +v -1.262556 0.099365 0.114410 +v -1.266466 0.000000 0.114410 +v -1.261752 0.000000 0.128281 +v -1.259015 0.000000 0.144492 +v 0.890580 0.896794 0.127690 +v 0.888524 0.894720 0.144279 +v 0.891468 0.888665 0.143924 +v 0.893738 0.890940 0.126702 +v 0.894033 0.900277 0.113414 +v 0.897414 0.894623 0.111746 +v 0.872859 0.919600 0.114161 +v 0.869579 0.916143 0.128133 +v 0.867662 0.914124 0.144438 +v 0.659260 1.075815 0.128281 +v 0.657830 1.073482 0.144491 +v 0.738952 1.019485 0.144491 +v 0.740559 1.021701 0.128281 +v 0.661723 1.079835 0.114410 +v 0.743326 1.025518 0.114410 +v 0.574963 1.128430 0.114410 +v 0.572822 1.124229 0.128281 +v 0.571580 1.121791 0.144491 +v 0.482849 1.165701 0.128281 +v 0.481802 1.163173 0.144491 +v 0.484653 1.170057 0.114410 +v 0.391360 1.204481 0.114410 +v 0.389903 1.199997 0.128281 +v 0.389057 1.197394 0.144491 +v 0.294549 1.226884 0.128281 +v 0.293910 1.224223 0.144491 +v 0.295649 1.231468 0.114410 +v 0.198119 1.250874 0.114410 +v 0.197382 1.246218 0.128281 +v 0.196953 1.243515 0.144491 +v 0.098995 1.257856 0.128281 +v 0.098781 1.255128 0.144491 +v 0.099365 1.262556 0.114410 +v -0.104682 1.330110 0.076381 +v -0.103948 1.320786 0.082693 +v 0.000000 1.324876 0.082693 +v 0.000000 1.334229 0.076381 +v -0.208720 1.317802 0.076381 +v -0.207256 1.308565 0.082693 +v -0.311468 1.297358 0.076381 +v -0.309285 1.288264 0.082693 +v -0.412300 1.268927 0.076381 +v -0.409410 1.260032 0.082693 +v -0.510584 1.232661 0.076381 +v -0.507006 1.224020 0.082693 +v -0.605727 1.188807 0.076381 +v -0.601481 1.180473 0.082693 +v -0.697129 1.137612 0.076381 +v -0.692242 1.129637 0.082693 +v -0.784240 1.079414 0.076381 +v -0.778742 1.071847 0.082693 +v -0.866508 1.014551 0.076381 +v -0.860434 1.007439 0.082693 +v -0.943442 0.943442 0.076381 +v -0.936829 0.936829 0.082693 +v -1.014551 0.866508 0.076381 +v -1.007439 0.860434 0.082693 +v -1.079414 0.784240 0.076381 +v -1.071847 0.778742 0.082693 +v -1.137612 0.697129 0.076381 +v -1.129637 0.692242 0.082693 +v -1.188807 0.605727 0.076381 +v -1.180473 0.601481 0.082693 +v -1.232661 0.510584 0.076381 +v -1.224020 0.507006 0.082693 +v -1.268927 0.412300 0.076381 +v -1.260032 0.409410 0.082693 +v -1.297358 0.311468 0.076381 +v -1.288264 0.309285 0.082693 +v -1.317802 0.208720 0.076381 +v -1.308565 0.207256 0.082693 +v -1.330109 0.104682 0.076381 +v -1.320786 0.103948 0.082693 +v -1.334229 0.000000 0.076381 +v -1.324876 0.000000 0.082693 +v 0.941907 0.948580 0.075683 +v 0.935305 0.941919 0.081670 +v 0.938906 0.936207 0.079957 +v 0.945533 0.942847 0.074515 +v 0.919572 0.968836 0.076207 +v 0.913126 0.962042 0.082437 +v 0.697129 1.137612 0.076381 +v 0.692242 1.129637 0.082693 +v 0.777608 1.072816 0.082693 +v 0.783098 1.080389 0.076381 +v 0.605726 1.188807 0.076381 +v 0.601480 1.180474 0.082693 +v 0.510584 1.232661 0.076381 +v 0.507006 1.224020 0.082693 +v 0.412300 1.268927 0.076381 +v 0.409409 1.260032 0.082693 +v 0.311468 1.297358 0.076381 +v 0.309285 1.288264 0.082693 +v 0.208719 1.317802 0.076381 +v 0.207256 1.308565 0.082693 +v 0.104682 1.330110 0.076381 +v 0.103948 1.320786 0.082693 +v -0.105482 1.340275 0.039899 +v 0.000000 1.344426 0.039899 +v -0.105552 1.341161 0.028075 +v 0.000000 1.345315 0.028075 +v -0.210454 1.328752 0.028075 +v -0.210315 1.327874 0.039899 +v -0.313849 1.307273 0.039899 +v -0.314056 1.308138 0.028075 +v -0.415726 1.279471 0.028075 +v -0.415451 1.278625 0.039899 +v -0.514486 1.242082 0.039899 +v -0.514827 1.242903 0.028076 +v -0.610760 1.198684 0.028076 +v -0.610356 1.197892 0.039899 +v -0.702457 1.146306 0.039899 +v -0.702921 1.147064 0.028076 +v -0.790756 1.088382 0.028076 +v -0.790233 1.087663 0.039899 +v -0.873130 1.022304 0.039899 +v -0.873708 1.022980 0.028076 +v -0.951281 0.951281 0.028076 +v -0.950652 0.950652 0.039899 +v -1.022304 0.873130 0.039899 +v -1.022980 0.873708 0.028076 +v -1.088382 0.790756 0.028076 +v -1.087663 0.790233 0.039899 +v -1.146306 0.702457 0.039899 +v -1.147064 0.702921 0.028076 +v -1.198684 0.610760 0.028076 +v -1.197892 0.610356 0.039899 +v -1.242081 0.514486 0.039899 +v -1.242903 0.514827 0.028076 +v -1.279470 0.415725 0.028076 +v -1.278625 0.415451 0.039899 +v -1.307273 0.313849 0.039899 +v -1.308137 0.314056 0.028076 +v -1.328752 0.210454 0.028076 +v -1.327874 0.210315 0.039899 +v -1.340275 0.105482 0.039899 +v -1.341161 0.105552 0.028076 +v -1.345315 0.000000 0.028076 +v -1.344426 0.000000 0.039899 +v 0.949018 0.955756 0.039899 +v 0.952526 0.949856 0.039899 +v 0.949579 0.956322 0.028075 +v 0.952976 0.950308 0.028075 +v 0.927174 0.976851 0.028075 +v 0.926578 0.976222 0.039899 +v 0.702456 1.146306 0.039899 +v 0.789083 1.088646 0.039899 +v 0.702921 1.147064 0.028075 +v 0.789604 1.089366 0.028075 +v 0.610759 1.198684 0.028075 +v 0.610356 1.197892 0.039899 +v 0.514486 1.242082 0.039899 +v 0.514827 1.242903 0.028075 +v 0.415725 1.279471 0.028075 +v 0.415451 1.278625 0.039899 +v 0.313849 1.307273 0.039899 +v 0.314056 1.308138 0.028075 +v 0.210454 1.328752 0.028075 +v 0.210315 1.327874 0.039899 +v 0.105482 1.340275 0.039899 +v 0.105552 1.341161 0.028075 +v -0.082976 1.054304 0.246404 +v -0.082712 1.050952 0.188328 +v 0.000000 1.054207 0.188328 +v 0.000000 1.057570 0.246404 +v -0.165440 1.044549 0.246404 +v -0.164914 1.041228 0.188328 +v -0.246884 1.028344 0.246404 +v -0.246099 1.025075 0.188328 +v -0.326807 1.005809 0.246404 +v -0.325768 1.002611 0.188328 +v -0.404713 0.977062 0.246404 +v -0.403426 0.973956 0.188328 +v -0.480127 0.942301 0.246404 +v -0.478601 0.939305 0.188328 +v -0.552575 0.901722 0.246404 +v -0.550819 0.898855 0.188328 +v -0.621623 0.855592 0.246404 +v -0.619647 0.852871 0.188328 +v -0.686833 0.804178 0.246404 +v -0.684649 0.801621 0.188328 +v -0.747814 0.747814 0.246404 +v -0.745437 0.745437 0.188328 +v -0.804178 0.686833 0.246404 +v -0.801621 0.684649 0.188328 +v -0.855592 0.621623 0.246404 +v -0.852871 0.619647 0.188328 +v -0.901722 0.552576 0.246404 +v -0.898855 0.550819 0.188328 +v -0.942301 0.480127 0.246404 +v -0.939305 0.478601 0.188328 +v -0.977062 0.404713 0.246404 +v -0.973956 0.403426 0.188328 +v -1.005808 0.326807 0.246404 +v -1.002611 0.325768 0.188328 +v -1.028344 0.246884 0.246404 +v -1.025074 0.246099 0.188328 +v -1.044549 0.165441 0.246404 +v -1.041228 0.164915 0.188328 +v -1.054304 0.082976 0.246404 +v -1.050952 0.082712 0.188328 +v -1.057570 0.000000 0.246404 +v -1.054207 0.000000 0.188328 +v 0.748425 0.753345 0.245628 +v 0.746021 0.750920 0.187669 +v 0.751897 0.748775 0.186565 +v 0.754360 0.751243 0.244329 +v 0.751022 0.755965 0.302669 +v 0.756892 0.753782 0.300907 +v 0.729350 0.768308 0.246210 +v 0.727026 0.765857 0.188163 +v 0.552576 0.901722 0.246404 +v 0.550819 0.898855 0.188328 +v 0.618745 0.853642 0.188328 +v 0.620718 0.856365 0.246404 +v 0.480127 0.942302 0.246404 +v 0.478600 0.939306 0.188328 +v 0.404713 0.977062 0.246404 +v 0.403426 0.973956 0.188328 +v 0.326807 1.005808 0.246404 +v 0.325768 1.002611 0.188328 +v 0.246884 1.028344 0.246404 +v 0.246099 1.025075 0.188328 +v 0.165440 1.044549 0.246404 +v 0.164914 1.041228 0.188328 +v 0.082976 1.054304 0.246404 +v 0.082712 1.050952 0.188328 +v -0.080433 1.022001 0.130196 +v -0.077740 0.987774 0.122188 +v 0.000000 0.990833 0.122188 +v 0.000000 1.025166 0.130196 +v -0.081518 1.035787 0.142417 +v 0.000000 1.038994 0.142417 +v -0.162535 1.026203 0.142417 +v -0.160371 1.012544 0.130196 +v -0.155001 0.978635 0.122188 +v -0.239319 0.996836 0.130196 +v -0.231305 0.963452 0.122188 +v -0.242547 1.010282 0.142417 +v -0.321067 0.988142 0.142417 +v -0.316794 0.974991 0.130196 +v -0.306185 0.942338 0.122188 +v -0.392312 0.947125 0.130196 +v -0.379174 0.915406 0.122188 +v -0.397604 0.959901 0.142417 +v -0.471694 0.925751 0.142417 +v -0.465416 0.913429 0.130196 +v -0.449829 0.882839 0.122188 +v -0.535645 0.874093 0.130196 +v -0.517707 0.844820 0.122188 +v -0.542871 0.885884 0.142417 +v -0.610705 0.840564 0.142417 +v -0.602577 0.829377 0.130196 +v -0.582397 0.801601 0.122188 +v -0.665788 0.779538 0.130196 +v -0.643491 0.753432 0.122188 +v -0.674769 0.790054 0.142417 +v -0.734679 0.734680 0.142417 +v -0.724901 0.724901 0.130196 +v -0.700625 0.700625 0.122188 +v -0.779538 0.665788 0.130196 +v -0.753432 0.643491 0.122188 +v -0.790053 0.674769 0.142417 +v -0.840564 0.610705 0.142417 +v -0.829376 0.602577 0.130196 +v -0.801601 0.582397 0.122188 +v -0.874093 0.535645 0.130196 +v -0.844820 0.517707 0.122188 +v -0.885884 0.542871 0.142417 +v -0.925750 0.471694 0.142417 +v -0.913429 0.465416 0.130196 +v -0.882839 0.449829 0.122188 +v -0.947125 0.392313 0.130196 +v -0.915406 0.379174 0.122188 +v -0.959901 0.397605 0.142417 +v -0.988142 0.321067 0.142417 +v -0.974990 0.316794 0.130196 +v -0.942338 0.306185 0.122188 +v -0.996836 0.239319 0.130196 +v -0.963452 0.231305 0.122188 +v -1.010282 0.242548 0.142417 +v -1.026202 0.162535 0.142417 +v -1.012544 0.160372 0.130196 +v -0.978634 0.155001 0.122188 +v -1.022000 0.080433 0.130196 +v -0.987774 0.077740 0.122188 +v -1.035786 0.081518 0.142417 +v -1.038994 0.000000 0.142417 +v -1.025166 0.000000 0.130196 +v -0.990833 0.000000 0.122188 +v 0.724908 0.729623 0.128631 +v 0.700433 0.704930 0.120512 +v 0.704715 0.701495 0.117704 +v 0.729681 0.726515 0.126010 +v 0.734989 0.739792 0.141084 +v 0.740334 0.737189 0.138850 +v 0.716467 0.754733 0.142084 +v 0.706857 0.744607 0.129804 +v 0.683135 0.719606 0.121769 +v 0.535644 0.874093 0.130196 +v 0.517707 0.844820 0.122188 +v 0.581549 0.802325 0.122188 +v 0.601699 0.830126 0.130196 +v 0.542871 0.885884 0.142417 +v 0.609816 0.841323 0.142417 +v 0.471693 0.925751 0.142417 +v 0.465416 0.913429 0.130196 +v 0.449829 0.882839 0.122188 +v 0.392312 0.947125 0.130196 +v 0.379174 0.915406 0.122188 +v 0.397604 0.959901 0.142417 +v 0.321067 0.988142 0.142417 +v 0.316794 0.974991 0.130196 +v 0.306184 0.942338 0.122188 +v 0.239319 0.996836 0.130196 +v 0.231304 0.963452 0.122188 +v 0.242547 1.010282 0.142417 +v 0.162535 1.026203 0.142417 +v 0.160371 1.012544 0.130196 +v 0.155001 0.978635 0.122188 +v 0.080433 1.022001 0.130196 +v 0.077740 0.987774 0.122188 +v 0.081518 1.035787 0.142417 +v -0.064762 0.822876 0.119519 +v 0.000000 0.825425 0.119519 +v -0.066829 0.849140 0.119519 +v 0.000000 0.851770 0.119519 +v -0.133246 0.841283 0.119519 +v -0.129125 0.815262 0.119519 +v -0.192691 0.802614 0.119519 +v -0.198841 0.828232 0.119519 +v -0.263212 0.810082 0.119519 +v -0.255070 0.785025 0.119519 +v -0.315875 0.762589 0.119519 +v -0.325957 0.786929 0.119519 +v -0.386696 0.758933 0.119519 +v -0.374735 0.735459 0.119519 +v -0.431282 0.703787 0.119519 +v -0.445047 0.726250 0.119519 +v -0.500657 0.689096 0.119519 +v -0.485173 0.667782 0.119519 +v -0.536067 0.627655 0.119519 +v -0.553177 0.647688 0.119519 +v -0.602292 0.602292 0.119519 +v -0.583663 0.583663 0.119519 +v -0.627654 0.536067 0.119519 +v -0.647688 0.553177 0.119519 +v -0.689096 0.500659 0.119519 +v -0.667782 0.485173 0.119519 +v -0.703787 0.431282 0.119519 +v -0.726250 0.445047 0.119519 +v -0.758933 0.386696 0.119519 +v -0.735458 0.374735 0.119519 +v -0.762589 0.315875 0.119519 +v -0.786929 0.325957 0.119519 +v -0.810081 0.263212 0.119519 +v -0.785025 0.255071 0.119519 +v -0.802614 0.192691 0.119519 +v -0.828231 0.198841 0.119519 +v -0.841283 0.133246 0.119519 +v -0.815262 0.129125 0.119519 +v -0.822876 0.064762 0.119519 +v -0.849140 0.066829 0.119519 +v -0.851770 0.000000 0.119519 +v -0.825424 0.000000 0.119519 +v 0.583903 0.587352 0.117805 +v 0.588139 0.584661 0.114935 +v 0.602454 0.606070 0.117805 +v 0.606680 0.603243 0.114935 +v 0.587339 0.618628 0.119091 +v 0.569193 0.599501 0.119091 +v 0.431281 0.703787 0.119519 +v 0.484466 0.668386 0.119519 +v 0.445047 0.726250 0.119519 +v 0.499929 0.689719 0.119519 +v 0.386696 0.758933 0.119519 +v 0.374735 0.735459 0.119519 +v 0.315875 0.762589 0.119519 +v 0.325957 0.786929 0.119519 +v 0.263212 0.810082 0.119519 +v 0.255070 0.785025 0.119519 +v 0.192691 0.802614 0.119519 +v 0.198841 0.828232 0.119519 +v 0.133246 0.841283 0.119519 +v 0.129125 0.815262 0.119519 +v 0.064762 0.822876 0.119519 +v 0.066829 0.849140 0.119519 +v -0.062592 0.795308 0.100423 +v -0.062594 0.795330 0.093749 +v 0.000000 0.797793 0.093749 +v 0.000000 0.797771 0.100423 +v -0.124799 0.787949 0.100423 +v -0.124802 0.787970 0.093749 +v -0.186235 0.775725 0.100423 +v -0.186240 0.775746 0.093749 +v -0.246525 0.758725 0.100423 +v -0.246532 0.758746 0.093749 +v -0.305293 0.737041 0.100423 +v -0.305301 0.737061 0.093749 +v -0.362181 0.710819 0.100423 +v -0.362191 0.710839 0.093749 +v -0.416833 0.680208 0.100423 +v -0.416844 0.680227 0.093749 +v -0.468918 0.645410 0.100423 +v -0.468931 0.645428 0.093749 +v -0.518109 0.606627 0.100423 +v -0.518122 0.606643 0.093749 +v -0.564109 0.564109 0.100423 +v -0.564124 0.564124 0.093749 +v -0.606627 0.518109 0.100423 +v -0.606643 0.518122 0.093749 +v -0.645410 0.468919 0.100423 +v -0.645428 0.468931 0.093749 +v -0.680208 0.416833 0.100423 +v -0.680227 0.416844 0.093749 +v -0.710819 0.362181 0.100423 +v -0.710838 0.362191 0.093749 +v -0.737041 0.305293 0.100423 +v -0.737061 0.305301 0.093749 +v -0.758725 0.246525 0.100423 +v -0.758746 0.246532 0.093749 +v -0.775725 0.186235 0.100423 +v -0.775746 0.186241 0.093749 +v -0.787949 0.124799 0.100423 +v -0.787970 0.124803 0.093749 +v -0.795308 0.062592 0.100423 +v -0.795330 0.062594 0.093749 +v -0.797771 0.000000 0.100423 +v -0.797793 0.000000 0.093749 +v 0.563121 0.568185 0.099786 +v 0.563135 0.568199 0.093590 +v 0.567460 0.566831 0.093985 +v 0.567138 0.567129 0.100118 +v 0.549819 0.579544 0.100264 +v 0.549833 0.579559 0.093709 +v 0.416832 0.680208 0.100423 +v 0.416844 0.680227 0.093749 +v 0.468249 0.646011 0.093749 +v 0.468236 0.645993 0.100423 +v 0.362181 0.710819 0.100423 +v 0.362190 0.710839 0.093749 +v 0.305292 0.737041 0.100423 +v 0.305301 0.737061 0.093749 +v 0.246525 0.758725 0.100423 +v 0.246532 0.758746 0.093749 +v 0.186235 0.775725 0.100423 +v 0.186240 0.775746 0.093749 +v 0.124799 0.787949 0.100423 +v 0.124802 0.787970 0.093749 +v 0.062592 0.795308 0.100423 +v 0.062594 0.795330 0.093749 +v -0.072180 0.917130 0.119519 +v 0.000000 0.919971 0.119519 +v -0.143915 0.908644 0.119519 +v -0.214762 0.894547 0.119519 +v -0.284287 0.874944 0.119519 +v -0.352056 0.849938 0.119519 +v -0.417658 0.819700 0.119519 +v -0.480681 0.784400 0.119519 +v -0.540745 0.744272 0.119519 +v -0.597470 0.699548 0.119519 +v -0.650517 0.650517 0.119519 +v -0.699547 0.597470 0.119519 +v -0.744271 0.540745 0.119519 +v -0.784400 0.480682 0.119519 +v -0.819700 0.417658 0.119519 +v -0.849938 0.352056 0.119519 +v -0.874944 0.284287 0.119519 +v -0.894547 0.214762 0.119519 +v -0.908644 0.143915 0.119519 +v -0.917130 0.072180 0.119519 +v -0.919970 0.000000 0.119519 +v 0.650456 0.654504 0.117805 +v 0.654626 0.651296 0.114935 +v 0.634307 0.668138 0.119091 +v 0.480681 0.784400 0.119519 +v 0.539957 0.744944 0.119519 +v 0.417658 0.819700 0.119519 +v 0.352056 0.849938 0.119519 +v 0.284287 0.874944 0.119519 +v 0.214762 0.894547 0.119519 +v 0.143915 0.908644 0.119519 +v 0.072180 0.917130 0.119519 +v -0.082252 1.045108 0.157730 +v 0.000000 1.048345 0.157730 +v -0.163997 1.035438 0.157730 +v -0.244730 1.019374 0.157730 +v -0.323957 0.997035 0.157730 +v -0.401183 0.968540 0.157730 +v -0.475938 0.934082 0.157730 +v -0.547756 0.893857 0.157730 +v -0.616201 0.848129 0.157730 +v -0.680842 0.797164 0.157730 +v -0.741292 0.741292 0.157730 +v -0.797164 0.680842 0.157730 +v -0.848129 0.616201 0.157730 +v -0.893857 0.547756 0.157730 +v -0.934082 0.475939 0.157730 +v -0.968540 0.401183 0.157730 +v -0.997035 0.323957 0.157730 +v -1.019374 0.244731 0.157730 +v -1.035438 0.163998 0.157730 +v -1.045108 0.082252 0.157730 +v -1.048345 0.000000 0.157730 +v 0.741785 0.746647 0.156792 +v 0.747481 0.744350 0.155220 +v 0.722961 0.761574 0.157496 +v 0.547755 0.893857 0.157730 +v 0.615304 0.848895 0.157730 +v 0.475939 0.934082 0.157730 +v 0.401182 0.968540 0.157730 +v 0.323957 0.997036 0.157730 +v 0.244730 1.019374 0.157730 +v 0.163997 1.035438 0.157730 +v 0.082252 1.045108 0.157730 +v -0.102451 1.301758 0.087791 +v -0.100879 1.281785 0.093786 +v 0.000000 1.285754 0.093786 +v 0.000000 1.305789 0.087791 +v -0.204271 1.289713 0.087791 +v -0.201136 1.269925 0.093786 +v -0.304829 1.269704 0.087791 +v -0.300152 1.250223 0.093786 +v -0.403511 1.241879 0.087791 +v -0.397320 1.222825 0.093786 +v -0.499702 1.206386 0.087791 +v -0.492034 1.187876 0.093786 +v -0.592815 1.163467 0.087791 +v -0.583720 1.145615 0.093786 +v -0.682269 1.113363 0.087791 +v -0.671801 1.096280 0.093786 +v -0.767523 1.056406 0.087791 +v -0.755747 1.040197 0.093786 +v -0.848038 0.992925 0.087791 +v -0.835026 0.977690 0.093786 +v -0.923332 0.923332 0.087791 +v -0.909165 0.909165 0.093786 +v -0.992925 0.848038 0.087791 +v -0.977690 0.835026 0.093786 +v -1.056406 0.767523 0.087791 +v -1.040197 0.755747 0.093786 +v -1.113363 0.682269 0.087791 +v -1.096280 0.671801 0.093786 +v -1.163467 0.592816 0.087791 +v -1.145615 0.583720 0.093786 +v -1.206386 0.499702 0.087791 +v -1.187876 0.492035 0.093786 +v -1.241879 0.403512 0.087791 +v -1.222825 0.397320 0.093786 +v -1.269704 0.304829 0.087791 +v -1.250223 0.300152 0.093786 +v -1.289713 0.204271 0.087791 +v -1.269924 0.201136 0.093786 +v -1.301758 0.102451 0.087791 +v -1.281784 0.100879 0.093786 +v -1.305789 0.000000 0.087791 +v -1.285754 0.000000 0.093786 +v 0.921832 0.928325 0.086660 +v 0.907690 0.914056 0.092655 +v 0.911190 0.908430 0.090761 +v 0.925384 0.922655 0.084766 +v 0.899971 0.948176 0.087509 +v 0.886163 0.933622 0.093503 +v 0.682269 1.113363 0.087791 +v 0.671801 1.096280 0.093786 +v 0.754646 1.041137 0.093786 +v 0.766406 1.057360 0.087791 +v 0.592815 1.163467 0.087791 +v 0.583719 1.145615 0.093786 +v 0.499702 1.206386 0.087791 +v 0.492035 1.187876 0.093786 +v 0.403511 1.241880 0.087791 +v 0.397320 1.222825 0.093786 +v 0.304829 1.269704 0.087791 +v 0.300152 1.250223 0.093786 +v 0.204270 1.289713 0.087791 +v 0.201136 1.269925 0.093786 +v 0.102451 1.301758 0.087791 +v 0.100879 1.281785 0.093786 +v -0.097903 1.243977 0.323170 +v 0.000000 1.247829 0.323170 +v -0.195204 1.232466 0.323170 +v -0.291299 1.213346 0.323170 +v -0.385601 1.186756 0.323170 +v -0.477522 1.152838 0.323170 +v -0.566502 1.111824 0.323170 +v -0.651985 1.063944 0.323170 +v -0.733455 1.009515 0.323170 +v -0.810396 0.948852 0.323170 +v -0.882348 0.882348 0.323170 +v -0.948852 0.810396 0.323170 +v -1.009515 0.733455 0.323170 +v -1.063944 0.651986 0.323170 +v -1.111824 0.566502 0.323170 +v -1.152838 0.477522 0.323170 +v -1.186756 0.385601 0.323170 +v -1.213346 0.291299 0.323170 +v -1.232466 0.195204 0.323170 +v -1.243977 0.097903 0.323170 +v -1.247829 0.000000 0.323170 +v 0.880823 0.886949 0.322021 +v 0.874750 0.880820 0.336770 +v 0.878257 0.875423 0.334549 +v 0.884066 0.881246 0.320097 +v 0.860001 0.906047 0.322883 +v 0.651985 1.063944 0.323170 +v 0.732387 1.010427 0.323170 +v 0.566503 1.111824 0.323170 +v 0.477521 1.152839 0.323170 +v 0.385601 1.186756 0.323170 +v 0.291299 1.213346 0.323170 +v 0.195204 1.232466 0.323170 +v 0.097903 1.243977 0.323170 +v -0.099922 1.269625 0.102785 +v 0.000000 1.273557 0.102785 +v -0.199228 1.257877 0.102785 +v -0.297305 1.238362 0.102785 +v -0.393551 1.211225 0.102785 +v -0.487366 1.176607 0.102785 +v -0.578182 1.134747 0.102785 +v -0.665428 1.085880 0.102785 +v -0.748577 1.030329 0.102785 +v -0.827105 0.968415 0.102785 +v -0.900540 0.900540 0.102785 +v -0.968415 0.827105 0.102785 +v -1.030329 0.748577 0.102785 +v -1.085880 0.665428 0.102785 +v -1.134747 0.578182 0.102785 +v -1.176607 0.487367 0.102785 +v -1.211224 0.393551 0.102785 +v -1.238362 0.297305 0.102785 +v -1.257877 0.199228 0.102785 +v -1.269625 0.099922 0.102785 +v -1.273557 0.000000 0.102785 +v 0.899080 0.905369 0.101654 +v 0.902549 0.899770 0.099760 +v 0.877757 0.924761 0.102502 +v 0.665428 1.085881 0.102785 +v 0.747487 1.031260 0.102785 +v 0.578182 1.134748 0.102785 +v 0.487367 1.176608 0.102785 +v 0.393551 1.211225 0.102785 +v 0.297305 1.238362 0.102785 +v 0.199228 1.257877 0.102785 +v 0.099922 1.269625 0.102785 +v 0.856715 0.862620 0.356349 +v 0.860575 0.857701 0.353734 +v 0.783034 0.772817 0.344619 +v 0.793399 0.783181 0.349748 +v 0.777674 0.774612 0.349172 +v 0.774159 0.763942 0.336274 +v 0.768395 0.765312 0.340506 +v 0.778665 0.764764 0.331848 +v 0.786479 0.771289 0.336409 +v 0.796890 0.781698 0.340606 +v 0.767741 0.757525 0.324899 +v 0.761519 0.758420 0.328692 +v 0.763480 0.753265 0.297724 +v 0.772045 0.756856 0.294823 +v 0.775549 0.760359 0.322084 +v 0.872281 0.862056 0.341685 +v 0.879905 0.869679 0.330538 +v 0.870245 0.867393 0.346125 +v 0.862958 0.852734 0.349012 +v 0.864131 0.848930 0.339263 +v 0.873512 0.858309 0.332940 +v 0.879107 0.865194 0.326331 +v 0.885203 0.874977 0.316624 +v 0.888483 0.878257 0.290167 +v 0.882643 0.867439 0.314735 +v 0.885101 0.869897 0.288083 +v 0.852561 0.842338 0.351469 +v 0.804285 0.794065 0.351480 +v 0.807564 0.792370 0.341944 +v 0.854002 0.838802 0.341455 +v 0.761077 0.750862 0.241984 +v 0.769942 0.754754 0.239833 +v 0.758521 0.748306 0.184572 +v 0.767396 0.752208 0.182985 +v 0.890050 0.879824 0.241394 +v 0.886324 0.871119 0.239697 +v 0.886787 0.871583 0.190509 +v 0.890640 0.880414 0.191637 +v 0.753802 0.743587 0.152383 +v 0.746057 0.735843 0.134818 +v 0.754556 0.739369 0.131487 +v 0.762561 0.747373 0.150151 +v 0.658679 0.648473 0.109753 +v 0.708700 0.698490 0.112635 +v 0.611091 0.600890 0.109753 +v 0.614469 0.599302 0.102284 +v 0.661674 0.646501 0.102284 +v 0.719233 0.703455 0.104617 +v 0.592666 0.582467 0.109753 +v 0.583786 0.574225 0.106900 +v 0.586531 0.572316 0.099216 +v 0.596172 0.581007 0.102284 +v 0.734425 0.724212 0.121279 +v 0.742500 0.727315 0.117151 +v 0.573723 0.568624 0.102389 +v 0.574971 0.567391 0.095490 +v 0.575402 0.566994 0.087082 +v 0.567581 0.566745 0.086047 +v 0.575426 0.567017 0.077358 +v 0.567603 0.566767 0.076652 +v 0.587470 0.571703 0.079312 +v 0.587455 0.571688 0.089953 +v 0.926863 0.916633 0.081346 +v 0.940402 0.930170 0.076865 +v 0.912652 0.902423 0.087341 +v 0.908264 0.892459 0.080998 +v 0.926964 0.911754 0.075451 +v 0.940630 0.925418 0.071780 +v 0.947036 0.936804 0.072405 +v 0.949827 0.939595 0.067461 +v 0.947493 0.932280 0.068629 +v 0.949645 0.935723 0.066003 +v 0.951838 0.941605 0.061526 +v 0.953133 0.942900 0.052903 +v 0.951095 0.935881 0.061515 +v 0.952120 0.936906 0.052901 +v 0.904000 0.893772 0.096340 +v 0.898732 0.888504 0.108735 +v 0.894303 0.879098 0.105871 +v 0.899115 0.883909 0.092947 +v 0.894672 0.884445 0.124917 +v 0.892024 0.881797 0.143282 +v 0.887852 0.872648 0.142360 +v 0.890423 0.875218 0.123088 +v 0.953777 0.943544 0.039899 +v 0.952515 0.937301 0.039899 +v 0.952577 0.937363 0.028075 +v 0.954025 0.943793 0.028075 +v 0.662672 0.645843 0.092555 +v 0.713620 0.696783 0.092482 +v 0.615595 0.598773 0.092555 +v 0.615595 0.598773 0.081085 +v 0.662672 0.645843 0.081085 +v 0.713359 0.696523 0.080989 +v 0.597340 0.580521 0.092555 +v 0.597340 0.580521 0.081085 +v 0.878030 0.861168 0.121966 +v 0.880444 0.863581 0.104644 +v 0.876611 0.859748 0.141161 +v 0.862581 0.845721 0.139892 +v 0.862398 0.845538 0.121238 +v 0.862900 0.846040 0.104326 +v -0.098690 1.253974 0.163136 +v 0.000000 1.257857 0.163136 +v -0.196772 1.242371 0.163136 +v -0.293640 1.223097 0.163136 +v -0.388700 1.196293 0.163136 +v -0.481358 1.162103 0.163136 +v -0.571055 1.120759 0.163136 +v -0.657225 1.072495 0.163136 +v -0.739350 1.017628 0.163136 +v -0.816909 0.956478 0.163136 +v -0.889439 0.889439 0.163136 +v -0.956478 0.816909 0.163136 +v -1.017628 0.739350 0.163136 +v -1.072494 0.657225 0.163136 +v -1.120759 0.571055 0.163136 +v -1.162103 0.481359 0.163136 +v -1.196293 0.388700 0.163136 +v -1.223097 0.293640 0.163136 +v -1.242371 0.196773 0.163136 +v -1.253974 0.098690 0.163136 +v -1.257857 0.000000 0.163136 +v 0.887669 0.893858 0.162977 +v 0.890547 0.887743 0.162710 +v 0.866854 0.913274 0.163096 +v 0.657225 1.072495 0.163136 +v 0.738273 1.018547 0.163136 +v 0.571054 1.120759 0.163136 +v 0.481359 1.162103 0.163136 +v 0.388699 1.196293 0.163136 +v 0.293640 1.223097 0.163136 +v 0.196772 1.242371 0.163136 +v 0.098690 1.253974 0.163136 +v 0.890989 0.880762 0.162228 +v 0.886969 0.871764 0.161448 +v 0.876459 0.859597 0.160290 +v 0.876715 0.859853 0.189548 +v 0.864199 0.847338 0.188713 +v 0.863399 0.846539 0.159009 +v 0.876519 0.859657 0.239131 +v 0.875877 0.859015 0.288612 +v 0.864229 0.847369 0.290125 +v 0.864325 0.847465 0.239129 +v 0.757269 0.740425 0.116337 +v 0.774458 0.757612 0.117139 +v 0.783655 0.766808 0.132753 +v 0.768228 0.751382 0.131357 +v 0.747439 0.730597 0.103813 +v 0.766061 0.749216 0.103897 +v 0.775570 0.758724 0.150397 +v 0.789931 0.773082 0.151805 +v 0.793788 0.776938 0.184019 +v 0.780024 0.763177 0.183101 +v 0.782318 0.765470 0.239117 +v 0.795727 0.778877 0.239119 +v 0.796665 0.779815 0.293811 +v 0.783843 0.766995 0.293904 +v 0.789795 0.772946 0.117854 +v 0.797420 0.780570 0.133998 +v 0.782868 0.766020 0.103961 +v 0.802744 0.785893 0.153061 +v 0.806067 0.789216 0.184837 +v 0.807691 0.790839 0.239121 +v 0.808300 0.791448 0.293390 +v 0.848430 0.831572 0.120587 +v 0.850044 0.833186 0.138758 +v 0.847415 0.830557 0.104186 +v 0.851729 0.834871 0.157865 +v 0.853014 0.836156 0.187967 +v 0.853429 0.836571 0.239127 +v 0.853575 0.836716 0.290989 +v 0.785989 0.769141 0.322919 +v 0.797515 0.780665 0.324800 +v 0.808580 0.791728 0.325122 +v 0.854053 0.837194 0.323196 +v 0.864360 0.847499 0.321568 +v 0.874793 0.857931 0.317565 +v -0.062601 0.795417 0.066031 +v -0.062603 0.795449 0.054030 +v 0.000000 0.797913 0.054030 +v 0.000000 0.797880 0.066031 +v -0.062598 0.795386 0.076417 +v 0.000000 0.797849 0.076417 +v -0.124811 0.788026 0.076417 +v -0.124816 0.788057 0.066031 +v -0.124821 0.788089 0.054030 +v -0.186261 0.775831 0.066031 +v -0.186268 0.775863 0.054030 +v -0.186253 0.775801 0.076417 +v -0.246549 0.758799 0.076417 +v -0.246559 0.758829 0.066031 +v -0.246569 0.758860 0.054030 +v -0.305334 0.737142 0.066031 +v -0.305347 0.737172 0.054030 +v -0.305322 0.737113 0.076417 +v -0.362216 0.710889 0.076417 +v -0.362230 0.710916 0.066031 +v -0.362245 0.710946 0.054030 +v -0.416890 0.680301 0.066031 +v -0.416907 0.680329 0.054030 +v -0.416873 0.680275 0.076417 +v -0.468964 0.645473 0.076417 +v -0.468983 0.645498 0.066031 +v -0.469002 0.645525 0.054030 +v -0.518180 0.606710 0.066031 +v -0.518201 0.606735 0.054030 +v -0.518160 0.606686 0.076417 +v -0.564164 0.564164 0.076417 +v -0.564186 0.564186 0.066031 +v -0.564209 0.564209 0.054030 +v -0.606710 0.518180 0.066031 +v -0.606734 0.518201 0.054030 +v -0.606686 0.518160 0.076417 +v -0.645473 0.468964 0.076417 +v -0.645498 0.468983 0.066031 +v -0.645525 0.469002 0.054030 +v -0.680301 0.416890 0.066031 +v -0.680329 0.416907 0.054030 +v -0.680274 0.416874 0.076417 +v -0.710889 0.362216 0.076417 +v -0.710916 0.362231 0.066031 +v -0.710945 0.362245 0.054030 +v -0.737141 0.305335 0.066031 +v -0.737172 0.305347 0.054030 +v -0.737113 0.305323 0.076417 +v -0.758799 0.246549 0.076417 +v -0.758829 0.246559 0.066031 +v -0.758860 0.246569 0.054030 +v -0.775831 0.186261 0.066031 +v -0.775863 0.186269 0.054030 +v -0.775800 0.186254 0.076417 +v -0.788026 0.124811 0.076417 +v -0.788057 0.124816 0.066031 +v -0.788089 0.124821 0.054030 +v -0.795417 0.062601 0.066031 +v -0.795449 0.062603 0.054030 +v -0.795386 0.062598 0.076417 +v -0.797849 0.000000 0.076417 +v -0.797880 0.000000 0.066031 +v -0.797913 0.000000 0.054030 +v 0.563196 0.568261 0.066031 +v 0.563219 0.568284 0.054030 +v 0.567649 0.566814 0.054060 +v 0.567625 0.566790 0.066150 +v 0.563174 0.568239 0.076417 +v 0.549872 0.579600 0.076417 +v 0.549893 0.579623 0.066031 +v 0.549916 0.579647 0.054030 +v 0.416890 0.680301 0.066031 +v 0.416907 0.680329 0.054030 +v 0.468319 0.646108 0.054030 +v 0.468300 0.646082 0.066031 +v 0.416873 0.680275 0.076417 +v 0.468281 0.646056 0.076417 +v 0.362216 0.710889 0.076417 +v 0.362230 0.710917 0.066031 +v 0.362245 0.710946 0.054030 +v 0.305334 0.737142 0.066031 +v 0.305347 0.737172 0.054030 +v 0.305322 0.737113 0.076417 +v 0.246549 0.758799 0.076417 +v 0.246559 0.758829 0.066031 +v 0.246569 0.758860 0.054030 +v 0.186261 0.775831 0.066031 +v 0.186268 0.775863 0.054030 +v 0.186253 0.775801 0.076417 +v 0.124811 0.788026 0.076417 +v 0.124816 0.788057 0.066031 +v 0.124821 0.788089 0.054030 +v 0.062601 0.795417 0.066031 +v 0.062603 0.795449 0.054030 +v 0.062598 0.795386 0.076417 +v 0.575502 0.567094 0.039899 +v 0.575475 0.567067 0.054149 +v 0.567674 0.566838 0.039899 +v 0.575523 0.567114 0.028075 +v 0.587532 0.571765 0.028075 +v 0.587518 0.571752 0.039899 +v 0.587501 0.571735 0.054396 +v 0.662672 0.645843 0.039899 +v 0.662672 0.645843 0.054621 +v 0.615595 0.598773 0.054621 +v 0.615595 0.598773 0.039899 +v 0.662672 0.645843 0.028075 +v 0.615595 0.598773 0.028075 +v 0.712802 0.695965 0.028075 +v 0.712802 0.695965 0.039899 +v 0.712873 0.696036 0.054605 +v 0.597340 0.580521 0.039899 +v 0.597340 0.580521 0.054621 +v 0.597340 0.580521 0.028075 +v 0.740213 0.723372 0.039899 +v 0.740495 0.723654 0.054559 +v 0.740213 0.723372 0.028075 +v 0.756981 0.740138 0.028075 +v 0.756981 0.740138 0.039899 +v 0.757430 0.740586 0.054495 +v 0.925463 0.908594 0.022996 +v 0.907073 0.890206 0.022996 +v 0.905153 0.892409 0.021715 +v 0.923529 0.910824 0.021715 +v 0.940016 0.923144 0.022996 +v 0.938083 0.925408 0.021715 +v 0.940016 0.923144 0.028075 +v 0.925463 0.908594 0.028075 +v 0.907073 0.890206 0.028075 +v 0.948480 0.931607 0.022996 +v 0.946488 0.933830 0.021715 +v 0.952603 0.937390 0.022996 +v 0.950669 0.939474 0.021715 +v 0.948480 0.931607 0.028075 +v 0.947979 0.931106 0.062460 +v 0.940430 0.923558 0.064089 +v 0.940119 0.923247 0.053544 +v 0.948355 0.931482 0.053137 +v 0.926384 0.909514 0.066129 +v 0.907912 0.891045 0.067548 +v 0.907282 0.890416 0.054409 +v 0.925694 0.908824 0.054054 +v 0.887093 0.870229 0.022996 +v 0.867361 0.850500 0.022996 +v 0.865659 0.852835 0.021715 +v 0.885280 0.872496 0.021715 +v 0.887093 0.870229 0.028075 +v 0.867361 0.850500 0.028075 +v 0.848037 0.835175 0.021715 +v 0.849715 0.832857 0.022996 +v 0.775181 0.758335 0.022996 +v 0.773391 0.760370 0.021715 +v 0.849715 0.832857 0.028075 +v 0.775181 0.758335 0.028075 +v 0.756981 0.740138 0.022996 +v 0.755197 0.742137 0.021715 +v 0.743486 0.726644 0.092263 +v 0.762185 0.745341 0.091964 +v 0.742442 0.725601 0.080702 +v 0.760526 0.743682 0.080306 +v 0.776718 0.759871 0.067616 +v 0.758776 0.741932 0.067890 +v 0.775566 0.758719 0.054426 +v 0.849526 0.832668 0.054146 +v 0.848961 0.832103 0.066498 +v 0.778216 0.761369 0.079886 +v 0.848226 0.831368 0.078173 +v 0.847528 0.830671 0.090392 +v 0.864135 0.847275 0.090437 +v 0.779637 0.762790 0.091653 +v 0.865540 0.848679 0.078283 +v 0.887083 0.870219 0.067312 +v 0.866549 0.849688 0.066577 +v 0.867158 0.850297 0.054166 +v 0.887090 0.870227 0.054350 +v 0.886202 0.869339 0.079376 +v 0.575450 0.567042 0.066507 +v 0.587485 0.571719 0.067497 +v 0.662672 0.645843 0.068395 +v 0.615595 0.598773 0.068395 +v 0.713084 0.696248 0.068333 +v 0.597340 0.580521 0.068395 +v -0.062596 0.795356 0.085702 +v 0.000000 0.797819 0.085702 +v -0.124807 0.787997 0.085702 +v -0.186247 0.775772 0.085702 +v -0.246540 0.758771 0.085702 +v -0.305311 0.737085 0.085702 +v -0.362203 0.710862 0.085702 +v -0.416858 0.680249 0.085702 +v -0.468947 0.645449 0.085702 +v -0.518139 0.606663 0.085702 +v -0.564143 0.564143 0.085702 +v -0.606663 0.518139 0.085702 +v -0.645449 0.468947 0.085702 +v -0.680249 0.416858 0.085702 +v -0.710862 0.362203 0.085702 +v -0.737085 0.305311 0.085702 +v -0.758771 0.246540 0.085702 +v -0.775772 0.186247 0.085702 +v -0.787997 0.124807 0.085702 +v -0.795356 0.062596 0.085702 +v -0.797819 0.000000 0.085702 +v 0.563153 0.568218 0.085702 +v 0.549851 0.579579 0.085702 +v 0.416858 0.680249 0.085702 +v 0.468264 0.646032 0.085702 +v 0.362202 0.710862 0.085702 +v 0.305311 0.737085 0.085702 +v 0.246540 0.758771 0.085702 +v 0.186246 0.775772 0.085702 +v 0.124806 0.787997 0.085702 +v 0.062596 0.795356 0.085702 +v 0.741342 0.724501 0.068147 +v 0.883579 0.866715 0.091134 +v 0.515490 0.609093 0.039899 +v 0.549939 0.579671 0.039899 +v 0.515469 0.609067 0.054030 +v 0.468339 0.646135 0.039899 +v 0.515509 0.609114 0.028075 +v 0.520222 0.614683 0.111857 +v 0.526586 0.622202 0.117523 +v 0.516582 0.610383 0.106276 +v 0.726353 0.858244 0.360559 +v 0.811624 0.958999 0.244878 +v 0.812239 0.959726 0.193502 +v 0.809878 0.956937 0.295392 +v 0.866314 1.023619 0.062279 +v 0.867605 1.025145 0.053092 +v 0.864483 1.021456 0.069397 +v 0.755837 0.760825 0.330792 +v 0.762945 0.767998 0.342849 +v 0.866548 0.872543 0.348583 +v 0.772419 0.777559 0.351694 +v 0.815119 0.963128 0.128281 +v 0.818164 0.966727 0.114410 +v 0.813350 0.961039 0.144491 +v 0.861940 1.018452 0.076381 +v 0.855898 1.011313 0.082693 +v 0.869349 1.027205 0.022996 +v 0.927430 0.977122 0.022996 +v 0.926618 0.976052 0.021715 +v 0.868477 1.026175 0.021715 +v 0.789829 1.089675 0.022996 +v 0.789037 1.088583 0.021715 +v 0.869102 1.026914 0.028075 +v 0.683212 0.807270 0.246404 +v 0.681040 0.804704 0.188328 +v 0.662279 0.782536 0.130196 +v 0.671212 0.793091 0.142417 +v 0.640099 0.756329 0.122188 +v 0.533242 0.630068 0.119519 +v 0.550261 0.650178 0.119519 +v 0.515378 0.608959 0.100423 +v 0.515392 0.608976 0.093749 +v 0.594320 0.702237 0.119519 +v 0.677253 0.800229 0.157730 +v 0.843568 0.996743 0.087791 +v 0.830625 0.981450 0.093786 +v 0.806124 0.952501 0.323170 +v 0.822745 0.972139 0.102785 +v 0.773517 0.913972 0.360548 +v 0.812603 0.960155 0.163136 +v 0.515447 0.609043 0.066031 +v 0.515428 0.609019 0.076417 +v 0.515409 0.608996 0.085702 +v 0.865696 1.022890 0.021288 +v 0.786510 1.085097 0.021288 +v 0.924010 0.972661 0.021288 +v 0.920206 0.968011 0.021288 +v 0.861814 1.018302 0.021288 +v 0.782983 1.080230 0.021288 +v 0.420796 0.686677 0.021288 +v 0.472688 0.652136 0.021288 +v 0.365625 0.717579 0.021288 +v 0.370968 0.728066 0.021288 +v 0.426946 0.696712 0.021288 +v 0.479597 0.661667 0.021288 +v 0.512810 1.238032 0.021288 +v 0.414096 1.274456 0.021288 +v 0.415426 1.278551 0.021715 +v 0.514457 1.242009 0.021715 +v 0.608366 1.193987 0.021288 +v 0.610320 1.197822 0.021715 +v 0.605637 1.188632 0.021288 +v 0.510509 1.232480 0.021288 +v 0.412239 1.268741 0.021288 +v 0.188006 0.783102 0.021288 +v 0.248869 0.765940 0.021288 +v 0.125986 0.795442 0.021288 +v 0.127827 0.807067 0.021288 +v 0.190754 0.794546 0.021288 +v 0.252506 0.777134 0.021288 +v 0.105138 1.335906 0.021288 +v 0.000000 1.340043 0.021288 +v 0.000000 1.344348 0.021715 +v 0.105476 1.340197 0.021715 +v 0.209629 1.323545 0.021288 +v 0.210302 1.327797 0.021715 +v 0.208689 1.317609 0.021288 +v 0.104666 1.329914 0.021288 +v 0.000000 1.334033 0.021288 +v -0.063187 0.802871 0.021288 +v 0.000000 0.805357 0.021288 +v -0.125986 0.795442 0.021288 +v -0.127827 0.807067 0.021288 +v -0.064111 0.814604 0.021288 +v 0.000000 0.817127 0.021288 +v -0.312826 1.303011 0.021288 +v -0.414096 1.274456 0.021288 +v -0.415427 1.278550 0.021715 +v -0.313830 1.307197 0.021715 +v -0.209629 1.323545 0.021288 +v -0.210303 1.327797 0.021715 +v -0.208689 1.317609 0.021288 +v -0.311423 1.297167 0.021288 +v -0.412239 1.268741 0.021288 +v -0.512810 1.238032 0.021288 +v -0.608366 1.193987 0.021288 +v -0.610321 1.197822 0.021715 +v -0.514457 1.242009 0.021715 +v -0.510509 1.232480 0.021288 +v -0.605638 1.188632 0.021288 +v -0.420796 0.686677 0.021288 +v -0.365625 0.717579 0.021288 +v -0.473378 0.651548 0.021288 +v -0.480296 0.661070 0.021288 +v -0.426946 0.696712 0.021288 +v -0.370968 0.728066 0.021288 +v -0.870284 1.018971 0.021288 +v -0.947553 0.947553 0.021289 +v -0.950597 0.950597 0.021715 +v -0.873079 1.022245 0.021715 +v -0.787657 1.084117 0.021288 +v -0.790187 1.087600 0.021715 +v -0.784124 1.079255 0.021288 +v -0.866381 1.014401 0.021288 +v -0.943303 0.943303 0.021288 +v -0.612395 0.523036 0.021288 +v -0.569473 0.569473 0.021288 +v -0.651547 0.473378 0.021288 +v -0.661070 0.480296 0.021288 +v -0.621345 0.530680 0.021288 +v -0.577796 0.577796 0.021288 +v -1.142569 0.700167 0.021289 +v -1.193987 0.608366 0.021289 +v -1.197822 0.610321 0.021715 +v -1.146239 0.702416 0.021715 +v -1.084117 0.787657 0.021289 +v -1.087600 0.790187 0.021715 +v -1.079255 0.784124 0.021289 +v -1.137444 0.697026 0.021289 +v -1.188632 0.605638 0.021289 +v -0.744049 0.308196 0.021288 +v -0.717578 0.365625 0.021288 +v -0.765940 0.248870 0.021288 +v -0.777134 0.252507 0.021288 +v -0.754923 0.312700 0.021288 +v -0.728066 0.370969 0.021288 +v -1.303011 0.312826 0.021289 +v -1.323545 0.209629 0.021289 +v -1.327796 0.210303 0.021715 +v -1.307197 0.313830 0.021715 +v -1.274456 0.414096 0.021289 +v -1.278550 0.415427 0.021715 +v -1.268740 0.412239 0.021289 +v -1.297167 0.311423 0.021289 +v -1.317609 0.208689 0.021289 +v -0.802871 0.063187 0.021288 +v -0.795442 0.125986 0.021288 +v -0.805357 0.000000 0.021288 +v -0.817127 0.000000 0.021288 +v -0.814604 0.064111 0.021288 +v -0.807067 0.127827 0.021288 +v 0.520279 0.614750 0.021288 +v 0.527882 0.623734 0.021288 +v 0.564153 0.592629 0.021288 +v 0.555586 0.584542 0.021288 +v 0.516707 0.610531 0.021715 +v 0.308196 0.744050 0.021288 +v 0.312700 0.754924 0.021288 +v 0.063187 0.802871 0.021288 +v 0.064111 0.814604 0.021288 +v -0.188006 0.783102 0.021288 +v -0.190754 0.794546 0.021288 +v -0.248869 0.765940 0.021288 +v -0.252507 0.777134 0.021288 +v -0.308196 0.744050 0.021288 +v -0.312700 0.754924 0.021288 +v -0.523036 0.612396 0.021288 +v -0.530680 0.621345 0.021288 +v -0.686676 0.420797 0.021288 +v -0.696712 0.426946 0.021288 +v -0.783101 0.188006 0.021288 +v -0.794546 0.190754 0.021288 +v 0.433806 0.707907 0.021288 +v 0.376929 0.739764 0.021288 +v 0.447446 0.730166 0.021288 +v 0.388781 0.763025 0.021288 +v 0.502625 0.693438 0.021288 +v 0.487303 0.672299 0.021288 +v 0.193819 0.807313 0.021288 +v 0.129881 0.820035 0.021288 +v 0.199913 0.832697 0.021288 +v 0.133965 0.845819 0.021288 +v 0.264631 0.814449 0.021288 +v 0.256564 0.789621 0.021288 +v -0.065141 0.827694 0.021288 +v -0.129881 0.820035 0.021288 +v -0.067189 0.853719 0.021288 +v -0.133965 0.845819 0.021288 +v 0.000000 0.856363 0.021288 +v 0.000000 0.830257 0.021288 +v -0.433806 0.707907 0.021288 +v -0.488013 0.671692 0.021288 +v -0.447447 0.730166 0.021288 +v -0.503358 0.692812 0.021288 +v -0.388781 0.763025 0.021288 +v -0.376929 0.739764 0.021288 +v -0.631329 0.539207 0.021288 +v -0.671692 0.488014 0.021288 +v -0.651180 0.556160 0.021288 +v -0.692812 0.503358 0.021288 +v -0.605539 0.605540 0.021288 +v -0.587080 0.587080 0.021288 +v -0.767054 0.317725 0.021288 +v -0.789621 0.256564 0.021288 +v -0.791172 0.327715 0.021288 +v -0.814449 0.264631 0.021288 +v -0.763025 0.388781 0.021288 +v -0.739764 0.376929 0.021288 +v -0.827693 0.065141 0.021288 +v -0.830257 0.000000 0.021288 +v -0.853719 0.067189 0.021288 +v -0.856363 0.000000 0.021288 +v -0.845819 0.133965 0.021288 +v -0.820035 0.129881 0.021288 +v 0.536364 0.633757 0.021288 +v 0.553228 0.653684 0.021288 +v 0.591223 0.621028 0.021288 +v 0.573263 0.602097 0.021288 +v 0.317724 0.767054 0.021288 +v 0.327714 0.791172 0.021288 +v 0.065141 0.827694 0.021288 +v 0.067189 0.853719 0.021288 +v -0.193819 0.807313 0.021288 +v -0.199913 0.832697 0.021288 +v -0.256564 0.789621 0.021288 +v -0.264631 0.814449 0.021288 +v -0.317724 0.767054 0.021288 +v -0.327715 0.791172 0.021288 +v -0.539207 0.631329 0.021288 +v -0.556160 0.651180 0.021288 +v -0.707907 0.433807 0.021288 +v -0.730165 0.447447 0.021288 +v -0.807313 0.193819 0.021288 +v -0.832697 0.199913 0.021288 +v 0.482897 0.788015 0.021288 +v 0.419583 0.823478 0.021288 +v 0.520468 0.849325 0.021288 +v 0.452228 0.887547 0.021288 +v 0.584650 0.806604 0.021288 +v 0.542446 0.748377 0.021288 +v 0.215752 0.898670 0.021288 +v 0.144578 0.912832 0.021288 +v 0.232538 0.968590 0.021288 +v 0.155827 0.983853 0.021288 +v 0.307817 0.947364 0.021288 +v 0.285597 0.878977 0.021288 +v -0.072512 0.921357 0.021288 +v -0.144579 0.912832 0.021288 +v -0.078154 0.993042 0.021288 +v -0.155827 0.983853 0.021288 +v 0.000000 0.996117 0.021288 +v 0.000000 0.924211 0.021288 +v -0.482897 0.788015 0.021288 +v -0.543237 0.747702 0.021288 +v -0.520468 0.849325 0.021288 +v -0.585502 0.805876 0.021288 +v -0.452228 0.887547 0.021288 +v -0.419583 0.823478 0.021288 +v -0.702772 0.600224 0.021288 +v -0.747702 0.543237 0.021288 +v -0.757450 0.646923 0.021288 +v -0.805876 0.585503 0.021288 +v -0.704361 0.704361 0.021288 +v -0.653515 0.653515 0.021288 +v -0.853855 0.353679 0.021288 +v -0.878976 0.285597 0.021288 +v -0.920288 0.381196 0.021289 +v -0.947364 0.307817 0.021288 +v -0.887547 0.452228 0.021288 +v -0.823477 0.419583 0.021288 +v -0.921357 0.072513 0.021289 +v -0.924210 0.000000 0.021289 +v -0.993042 0.078154 0.021289 +v -0.996117 0.000000 0.021289 +v -0.983853 0.155827 0.021289 +v -0.912832 0.144579 0.021289 +v 0.597060 0.705474 0.021288 +v 0.643513 0.760362 0.021288 +v 0.687301 0.722312 0.021288 +v 0.637852 0.670185 0.021288 +v 0.353679 0.853855 0.021288 +v 0.381196 0.920288 0.021288 +v 0.072512 0.921357 0.021288 +v 0.078154 0.993042 0.021288 +v -0.215752 0.898670 0.021288 +v -0.232538 0.968590 0.021288 +v -0.285597 0.878976 0.021288 +v -0.307817 0.947364 0.021288 +v -0.353679 0.853855 0.021288 +v -0.381196 0.920288 0.021288 +v -0.600223 0.702772 0.021288 +v -0.646923 0.757450 0.021288 +v -0.788015 0.482897 0.021288 +v -0.849325 0.520468 0.021288 +v -0.898670 0.215752 0.021288 +v -0.968590 0.232538 0.021289 +v 0.540469 0.881967 0.021288 +v 0.469608 0.921657 0.021288 +v 0.552448 0.901515 0.021288 +v 0.480016 0.942085 0.021288 +v 0.620576 0.856168 0.021288 +v 0.607119 0.837603 0.021288 +v 0.241475 1.005815 0.021288 +v 0.161816 1.021665 0.021288 +v 0.246827 1.028107 0.021288 +v 0.165402 1.044309 0.021288 +v 0.326732 1.005577 0.021288 +v 0.319647 0.983773 0.021288 +v -0.081158 1.031206 0.021288 +v -0.161816 1.021665 0.021288 +v -0.082957 1.054062 0.021288 +v -0.165402 1.044309 0.021288 +v 0.000000 1.057326 0.021288 +v 0.000000 1.034400 0.021288 +v -0.540469 0.881967 0.021288 +v -0.608005 0.836847 0.021288 +v -0.552448 0.901515 0.021288 +v -0.621480 0.855395 0.021288 +v -0.480017 0.942085 0.021288 +v -0.469608 0.921657 0.021288 +v -0.786560 0.671785 0.021288 +v -0.836847 0.608005 0.021288 +v -0.803993 0.686675 0.021288 +v -0.855395 0.621480 0.021288 +v -0.747642 0.747642 0.021288 +v -0.731431 0.731431 0.021288 +v -0.955656 0.395846 0.021289 +v -0.983773 0.319648 0.021289 +v -0.976837 0.404620 0.021289 +v -1.005577 0.326732 0.021289 +v -0.942084 0.480017 0.021288 +v -0.921657 0.469608 0.021289 +v -1.031206 0.081158 0.021289 +v -1.034400 0.000000 0.021289 +v -1.054062 0.082957 0.021289 +v -1.057326 0.000000 0.021289 +v -1.044309 0.165403 0.021289 +v -1.021665 0.161816 0.021289 +v 0.668244 0.789584 0.021288 +v 0.683055 0.807085 0.021288 +v 0.729581 0.766872 0.021288 +v 0.713717 0.750154 0.021288 +v 0.395846 0.955657 0.021288 +v 0.404620 0.976838 0.021288 +v 0.081158 1.031206 0.021288 +v 0.082956 1.054062 0.021288 +v -0.241475 1.005815 0.021288 +v -0.246827 1.028107 0.021288 +v -0.319647 0.983773 0.021288 +v -0.326732 1.005577 0.021288 +v -0.395846 0.955656 0.021288 +v -0.404620 0.976838 0.021288 +v -0.671785 0.786560 0.021288 +v -0.686675 0.803993 0.021288 +v -0.881967 0.540470 0.021288 +v -0.901514 0.552448 0.021288 +v -1.005814 0.241475 0.021289 +v -1.028107 0.246827 0.021289 +v 0.565948 0.923545 0.021288 +v 0.491746 0.965106 0.021288 +v 0.540497 1.060785 0.021288 +v 0.622055 1.015103 0.021288 +v 0.698766 0.964043 0.021288 +v 0.635741 0.877090 0.021288 +v 0.252859 1.053231 0.021288 +v 0.169444 1.069829 0.021288 +v 0.186243 1.175889 0.021288 +v 0.277926 1.157646 0.021288 +v 0.367899 1.132277 0.021288 +v 0.334716 1.030150 0.021288 +v -0.084984 1.079820 0.021288 +v -0.169444 1.069829 0.021288 +v -0.186243 1.175889 0.021288 +v -0.093409 1.186871 0.021288 +v 0.000000 1.190547 0.021288 +v 0.000000 1.083164 0.021288 +v -0.565949 0.923545 0.021288 +v -0.636667 0.876298 0.021288 +v -0.699785 0.963172 0.021288 +v -0.622055 1.015103 0.021288 +v -0.540497 1.060785 0.021288 +v -0.491747 0.965106 0.021288 +v -0.823640 0.703455 0.021288 +v -0.876298 0.636668 0.021288 +v -0.963172 0.699785 0.021289 +v -0.905294 0.773194 0.021288 +v -0.841843 0.841843 0.021288 +v -0.765912 0.765913 0.021288 +v -1.000708 0.414508 0.021289 +v -1.030150 0.334717 0.021289 +v -1.132277 0.367900 0.021289 +v -1.099916 0.455601 0.021289 +v -1.060785 0.540497 0.021289 +v -0.965106 0.491747 0.021289 +v -1.079820 0.084984 0.021289 +v -1.083164 0.000000 0.021289 +v -1.190546 0.000000 0.021289 +v -1.186871 0.093409 0.021289 +v -1.175889 0.186243 0.021289 +v -1.069829 0.169445 0.021289 +v 0.747373 0.785626 0.021288 +v 0.699747 0.826807 0.021288 +v 0.769119 0.908775 0.021288 +v 0.821176 0.863429 0.021288 +v 0.414507 1.000709 0.021288 +v 0.455600 1.099917 0.021288 +v 0.084984 1.079820 0.021288 +v 0.093409 1.186871 0.021288 +v -0.252859 1.053231 0.021288 +v -0.277927 1.157646 0.021288 +v -0.334716 1.030150 0.021288 +v -0.367899 1.132277 0.021288 +v -0.414507 1.000709 0.021288 +v -0.455601 1.099916 0.021288 +v -0.703455 0.823640 0.021288 +v -0.773194 0.905294 0.021288 +v -0.923545 0.565949 0.021289 +v -1.015103 0.622056 0.021289 +v -1.053231 0.252859 0.021289 +v -1.157646 0.277927 0.021289 +v 0.635041 1.036294 0.021288 +v 0.551780 1.082930 0.021288 +v 0.713354 0.984168 0.021288 +v 0.283728 1.181813 0.021288 +v 0.190131 1.200437 0.021288 +v 0.375580 1.155914 0.021288 +v -0.095359 1.211648 0.021288 +v -0.190131 1.200437 0.021288 +v 0.000000 1.215400 0.021288 +v -0.635041 1.036294 0.021288 +v -0.714394 0.983279 0.021288 +v -0.551780 1.082930 0.021288 +v -0.924193 0.789335 0.021289 +v -0.983279 0.714394 0.021289 +v -0.859418 0.859418 0.021288 +v -1.122878 0.465112 0.021289 +v -1.155914 0.375580 0.021289 +v -1.082929 0.551780 0.021289 +v -1.211648 0.095359 0.021289 +v -1.215400 0.000000 0.021289 +v -1.200437 0.190131 0.021289 +v 0.857637 1.013367 0.021288 +v 0.915807 0.963163 0.021288 +v 0.850290 1.004686 0.021288 +v 0.907919 0.954852 0.021288 +v 0.772513 1.065786 0.021288 +v 0.779188 1.074995 0.021288 +v 0.508036 1.226507 0.021288 +v 0.602702 1.182872 0.021288 +v 0.503684 1.215999 0.021288 +v 0.597539 1.172738 0.021288 +v 0.406727 1.251775 0.021288 +v 0.410241 1.262592 0.021288 +v 0.104159 1.323469 0.021288 +v 0.207677 1.311223 0.021288 +v 0.103267 1.312131 0.021288 +v 0.205898 1.299990 0.021288 +v 0.000000 1.316195 0.021288 +v 0.000000 1.327568 0.021288 +v -0.309913 1.290881 0.021288 +v -0.207678 1.311223 0.021288 +v -0.307258 1.279822 0.021288 +v -0.205898 1.299990 0.021288 +v -0.406727 1.251775 0.021288 +v -0.410241 1.262592 0.021288 +v -0.508036 1.226507 0.021288 +v -0.503684 1.215999 0.021288 +v -0.597539 1.172738 0.021288 +v -0.602703 1.182871 0.021288 +v -0.862182 1.009485 0.021288 +v -0.780324 1.074025 0.021288 +v -0.854796 1.000837 0.021288 +v -0.773639 1.064824 0.021288 +v -0.930690 0.930690 0.021288 +v -0.938732 0.938732 0.021289 +v -1.131932 0.693648 0.021289 +v -1.074025 0.780324 0.021289 +v -1.122235 0.687706 0.021289 +v -1.064823 0.773639 0.021289 +v -1.172738 0.597539 0.021289 +v -1.182871 0.602703 0.021289 +v -1.290881 0.309913 0.021289 +v -1.262592 0.410241 0.021289 +v -1.279822 0.307258 0.021289 +v -1.251775 0.406727 0.021289 +v -1.299990 0.205898 0.021289 +v -1.311223 0.207678 0.021289 +v 0.700166 1.142569 0.021288 +v 0.697026 1.137445 0.021288 +v 0.702416 1.146239 0.021715 +v 0.312825 1.303011 0.021288 +v 0.311422 1.297167 0.021288 +v 0.313830 1.307197 0.021715 +v -0.105138 1.335906 0.021288 +v -0.104667 1.329914 0.021288 +v -0.105476 1.340197 0.021715 +v -0.700167 1.142569 0.021288 +v -0.697026 1.137445 0.021288 +v -0.702416 1.146239 0.021715 +v -1.018971 0.870284 0.021289 +v -1.014401 0.866381 0.021289 +v -1.022245 0.873079 0.021715 +v -1.238032 0.512810 0.021289 +v -1.232480 0.510509 0.021289 +v -1.242009 0.514458 0.021715 +v -1.335906 0.105138 0.021289 +v -1.329914 0.104667 0.021289 +v -1.334033 0.000000 0.021289 +v -1.340043 0.000000 0.021289 +v -1.340197 0.105476 0.021715 +v -1.344348 0.000000 0.021715 +v 0.693648 1.131932 0.021288 +v 0.687706 1.122235 0.021288 +v 0.309913 1.290881 0.021288 +v 0.307258 1.279822 0.021288 +v -0.104159 1.323469 0.021288 +v -0.103267 1.312131 0.021288 +v -0.693648 1.131932 0.021288 +v -0.687706 1.122235 0.021288 +v -1.009485 0.862182 0.021289 +v -1.000837 0.854796 0.021289 +v -1.226507 0.508036 0.021289 +v -1.215999 0.503684 0.021289 +v -1.323469 0.104159 0.021289 +v -1.312131 0.103267 0.021289 +v -1.316195 0.000000 0.021289 +v -1.327568 0.000000 0.021289 +v 0.836895 0.988859 0.021288 +v 0.893649 0.939809 0.021288 +v 0.820089 0.969001 0.021288 +v 0.875727 0.920918 0.021288 +v 0.745074 1.027931 0.021288 +v 0.760343 1.048996 0.021288 +v 0.495749 1.196844 0.021288 +v 0.588126 1.154264 0.021288 +v 0.485793 1.172809 0.021288 +v 0.576315 1.131084 0.021288 +v 0.392280 1.207314 0.021288 +v 0.400319 1.232056 0.021288 +v 0.101640 1.291461 0.021288 +v 0.202655 1.279511 0.021288 +v 0.099599 1.265526 0.021288 +v 0.198585 1.253817 0.021288 +v 0.000000 1.269445 0.021288 +v 0.000000 1.295460 0.021288 +v -0.302418 1.259661 0.021288 +v -0.202655 1.279511 0.021288 +v -0.296345 1.234365 0.021288 +v -0.198585 1.253817 0.021288 +v -0.392280 1.207314 0.021288 +v -0.400320 1.232056 0.021288 +v -0.495749 1.196844 0.021288 +v -0.485794 1.172809 0.021288 +v -0.576316 1.131084 0.021288 +v -0.588126 1.154264 0.021288 +v -0.841330 0.985071 0.021288 +v -0.761452 1.048049 0.021288 +v -0.824435 0.965289 0.021288 +v -0.746161 1.027003 0.021288 +v -0.897633 0.897633 0.021288 +v -0.916029 0.916029 0.021289 +v -1.104556 0.676873 0.021289 +v -1.048049 0.761452 0.021289 +v -1.082375 0.663280 0.021289 +v -1.027003 0.746161 0.021289 +v -1.131084 0.576316 0.021289 +v -1.154264 0.588126 0.021289 +v -1.259661 0.302418 0.021289 +v -1.232056 0.400320 0.021289 +v -1.234364 0.296345 0.021289 +v -1.207314 0.392281 0.021289 +v -1.253816 0.198585 0.021289 +v -1.279511 0.202655 0.021289 +v 0.676872 1.104556 0.021288 +v 0.663280 1.082375 0.021288 +v 0.302418 1.259661 0.021288 +v 0.296345 1.234365 0.021288 +v -0.101640 1.291461 0.021288 +v -0.099599 1.265526 0.021288 +v -0.676873 1.104556 0.021288 +v -0.663280 1.082375 0.021288 +v -0.985071 0.841330 0.021289 +v -0.965289 0.824435 0.021289 +v -1.196844 0.495749 0.021289 +v -1.172809 0.485794 0.021289 +v -1.291461 0.101640 0.021289 +v -1.265526 0.099599 0.021289 +v -1.269445 0.000000 0.021289 +v -1.295460 0.000000 0.021289 +v 0.802507 0.948226 0.021288 +v 0.856885 0.901063 0.021288 +v 0.785175 0.927747 0.021288 +v 0.838307 0.881486 0.021288 +v 0.729101 1.005892 0.021288 +v 0.475378 1.147665 0.021288 +v 0.563959 1.106834 0.021288 +v 0.465111 1.122878 0.021288 +v 0.383870 1.181430 0.021288 +v 0.097464 1.238394 0.021288 +v 0.194328 1.226935 0.021288 +v 0.095359 1.211648 0.021288 +v 0.000000 1.242229 0.021288 +v -0.289992 1.207901 0.021288 +v -0.194328 1.226935 0.021288 +v -0.283728 1.181813 0.021288 +v -0.375580 1.155914 0.021288 +v -0.383870 1.181430 0.021288 +v -0.475379 1.147665 0.021288 +v -0.465112 1.122878 0.021288 +v -0.563960 1.106834 0.021288 +v -0.806759 0.944594 0.021288 +v -0.730164 1.004985 0.021288 +v -0.789335 0.924193 0.021288 +v -0.878388 0.878389 0.021288 +v -1.059169 0.649060 0.021289 +v -1.004984 0.730164 0.021289 +v -1.036294 0.635042 0.021289 +v -1.106834 0.563960 0.021289 +v -1.207901 0.289992 0.021289 +v -1.181430 0.383870 0.021289 +v -1.181813 0.283729 0.021289 +v -1.226935 0.194328 0.021289 +v 0.947736 0.951125 0.021288 +v 0.949339 0.955246 0.021715 +v 0.952061 0.950477 0.022047 +v 0.952551 0.945724 0.021715 +v 0.944847 0.945708 0.021288 +v 0.570626 0.571534 0.021288 +v 0.580762 0.578065 0.021288 +v 0.585844 0.573345 0.021715 +v 0.574307 0.568228 0.021715 +v 0.590274 0.587134 0.021288 +v 0.608570 0.605595 0.021288 +v 0.613839 0.600479 0.021715 +v 0.595573 0.582174 0.021715 +v 0.655939 0.653390 0.021288 +v 0.706259 0.704163 0.021288 +v 0.711166 0.698015 0.021715 +v 0.660989 0.647730 0.021715 +v 0.733410 0.731555 0.021288 +v 0.749846 0.748136 0.021288 +v 0.738512 0.725418 0.021715 +v 0.768021 0.766473 0.021288 +v 0.843003 0.842131 0.021288 +v 0.649059 1.059170 0.021288 +v 0.289991 1.207901 0.021288 +v -0.097464 1.238394 0.021288 +v -0.649060 1.059170 0.021288 +v -0.944594 0.806759 0.021289 +v -1.147665 0.475379 0.021289 +v -1.238394 0.097464 0.021289 +v -1.242229 0.000000 0.021289 +v 0.860555 0.859839 0.021288 +v 0.879844 0.879297 0.021288 +v 0.899393 0.899017 0.021288 +v 0.917725 0.917513 0.021288 +v 0.932284 0.932202 0.021288 +v 0.940510 0.940500 0.021288 +v -0.062606 0.795483 0.039899 +v 0.000000 0.797947 0.039899 +v -0.124827 0.788123 0.039899 +v -0.186276 0.775896 0.039899 +v -0.246579 0.758892 0.039899 +v -0.305360 0.737203 0.039899 +v -0.362261 0.710976 0.039899 +v -0.416925 0.680358 0.039899 +v -0.469022 0.645552 0.039899 +v -0.518223 0.606760 0.039899 +v -0.564233 0.564233 0.039899 +v -0.606760 0.518223 0.039899 +v -0.645552 0.469022 0.039899 +v -0.680358 0.416925 0.039899 +v -0.710976 0.362261 0.039899 +v -0.737203 0.305360 0.039899 +v -0.758892 0.246580 0.039899 +v -0.775896 0.186276 0.039899 +v -0.788122 0.124827 0.039899 +v -0.795483 0.062606 0.039899 +v -0.797947 0.000000 0.039899 +v 0.563244 0.568308 0.039899 +v 0.416924 0.680358 0.039899 +v 0.362260 0.710976 0.039899 +v 0.305360 0.737203 0.039899 +v 0.246579 0.758892 0.039899 +v 0.186276 0.775896 0.039899 +v 0.124826 0.788123 0.039899 +v 0.062606 0.795483 0.039899 +v -0.105582 1.341542 0.022996 +v 0.000000 1.345697 0.022996 +v -0.210514 1.329129 0.022996 +v -0.314145 1.308509 0.022996 +v -0.415844 1.279834 0.022996 +v -0.514974 1.243256 0.022996 +v -0.610933 1.199025 0.022996 +v -0.703121 1.147390 0.022996 +v -0.790980 1.088692 0.022996 +v -0.873956 1.023271 0.022996 +v -0.951551 0.951551 0.022996 +v -1.023271 0.873956 0.022996 +v -1.088691 0.790980 0.022996 +v -1.147390 0.703121 0.022996 +v -1.199024 0.610933 0.022996 +v -1.243256 0.514974 0.022996 +v -1.279834 0.415844 0.022996 +v -1.308509 0.314146 0.022996 +v -1.329129 0.210514 0.022996 +v -1.341542 0.105582 0.022996 +v -1.345697 0.000000 0.022996 +v 0.949819 0.956565 0.022996 +v 0.953170 0.950502 0.022996 +v 0.703121 1.147390 0.022996 +v 0.610933 1.199025 0.022996 +v 0.514974 1.243256 0.022996 +v 0.415843 1.279834 0.022996 +v 0.314145 1.308509 0.022996 +v 0.210513 1.329129 0.022996 +v 0.105582 1.341542 0.022996 +v 0.954132 0.943899 0.022996 +v 0.575532 0.567124 0.022996 +v 0.587537 0.571771 0.022996 +v 0.662672 0.645843 0.022996 +v 0.615595 0.598773 0.022996 +v 0.712802 0.695965 0.022996 +v 0.597340 0.580521 0.022996 +v 0.740213 0.723372 0.022996 +v 0.925464 0.908594 0.039899 +v 0.940016 0.923144 0.039899 +v 0.907073 0.890206 0.039899 +v 0.948480 0.931607 0.039899 +v 0.887093 0.870229 0.039899 +v 0.867361 0.850500 0.039899 +v 0.849715 0.832857 0.039899 +v 0.775181 0.758335 0.039899 +v 0.515516 0.609123 0.022996 +v 0.868528 1.026235 0.039899 +v -0.062609 -0.795521 0.022996 +v 0.000000 -0.797985 0.022996 +v 0.000000 -0.799830 0.021715 +v -0.062754 -0.797361 0.021715 +v -0.062608 -0.795510 0.028075 +v 0.000000 -0.797973 0.028075 +v -0.124833 -0.788160 0.022996 +v -0.124831 -0.788149 0.028075 +v -0.125121 -0.789983 0.021715 +v -0.063181 -0.802784 0.111857 +v 0.000000 -0.805270 0.111857 +v 0.000000 -0.799636 0.106276 +v -0.062738 -0.797167 0.106276 +v -0.063953 -0.812603 0.117523 +v 0.000000 -0.815120 0.117523 +v -0.125972 -0.795356 0.111857 +v -0.127513 -0.805084 0.117523 +v -0.125091 -0.789791 0.106276 +v -0.088215 -1.120876 0.360559 +v 0.000000 -1.124348 0.360559 +v 0.000000 -1.107886 0.358702 +v -0.086923 -1.104465 0.358702 +v 0.000000 -1.197354 0.360548 +v -0.093943 -1.193658 0.360548 +v -0.175887 -1.110505 0.360560 +v -0.187308 -1.182613 0.360548 +v -0.173312 -1.094246 0.358702 +v -0.098571 -1.252464 0.244878 +v 0.000000 -1.256342 0.244878 +v 0.000000 -1.253641 0.295392 +v -0.098359 -1.249770 0.295392 +v -0.098646 -1.253413 0.193502 +v 0.000000 -1.257295 0.193502 +v -0.196535 -1.240875 0.244878 +v -0.196684 -1.241815 0.193502 +v -0.196113 -1.238206 0.295392 +v -0.105213 -1.336858 0.062279 +v 0.000000 -1.340999 0.062279 +v 0.000000 -1.338164 0.069397 +v -0.104991 -1.334033 0.069397 +v -0.105370 -1.338851 0.053092 +v 0.000000 -1.342998 0.053092 +v -0.209779 -1.324489 0.062279 +v -0.210091 -1.326463 0.053092 +v -0.209335 -1.321689 0.069397 +v -0.186285 -0.775933 0.022996 +v -0.186716 -0.777727 0.021715 +v -0.186283 -0.775922 0.028075 +v -0.246591 -0.758929 0.022996 +v -0.246588 -0.758918 0.028075 +v -0.247161 -0.760684 0.021715 +v -0.187986 -0.783017 0.111857 +v -0.186671 -0.777538 0.106276 +v -0.190285 -0.792594 0.117523 +v -0.248842 -0.765857 0.111857 +v -0.251886 -0.775225 0.117523 +v -0.247101 -0.760499 0.106276 +v -0.262473 -1.093277 0.360560 +v -0.258630 -1.077270 0.358702 +v -0.279516 -1.164266 0.360548 +v -0.347443 -1.069318 0.360560 +v -0.370003 -1.138752 0.360548 +v -0.342356 -1.053662 0.358702 +v -0.293286 -1.221624 0.244878 +v -0.292655 -1.218997 0.295392 +v -0.293508 -1.222550 0.193502 +v -0.388231 -1.194853 0.244878 +v -0.388526 -1.195758 0.193502 +v -0.387397 -1.192283 0.295392 +v -0.313049 -1.303941 0.062279 +v -0.312387 -1.301184 0.069397 +v -0.313515 -1.305884 0.053092 +v -0.414392 -1.275366 0.062279 +v -0.415009 -1.277267 0.053092 +v -0.413516 -1.272670 0.069397 +v -0.305375 -0.737238 0.022996 +v -0.306081 -0.738943 0.021715 +v -0.305370 -0.737228 0.028075 +v -0.362278 -0.711010 0.022996 +v -0.362273 -0.710999 0.028075 +v -0.363116 -0.712654 0.021715 +v -0.308162 -0.743969 0.111857 +v -0.306006 -0.738764 0.106276 +v -0.311932 -0.753069 0.117523 +v -0.365585 -0.717501 0.111857 +v -0.370057 -0.726277 0.117523 +v -0.363028 -0.712481 0.106276 +v -0.430268 -1.038757 0.360560 +v -0.423968 -1.023548 0.358702 +v -0.458205 -1.106206 0.360548 +v -0.510443 -1.001801 0.360560 +v -0.543587 -1.066851 0.360548 +v -0.502969 -0.987133 0.358702 +v -0.480779 -1.160704 0.244878 +v -0.479746 -1.158207 0.295392 +v -0.481144 -1.161583 0.193502 +v -0.570367 -1.119409 0.244878 +v -0.570799 -1.120258 0.193502 +v -0.569140 -1.117002 0.295392 +v -0.513175 -1.238915 0.062279 +v -0.512091 -1.236297 0.069397 +v -0.513941 -1.240762 0.053092 +v -0.608800 -1.194838 0.062279 +v -0.609708 -1.196620 0.053092 +v -0.607513 -1.192313 0.069397 +v -0.416945 -0.680391 0.022996 +v -0.417909 -0.681964 0.021715 +v -0.416939 -0.680381 0.028075 +v -0.469044 -0.645583 0.022996 +v -0.469038 -0.645574 0.028076 +v -0.470129 -0.647076 0.021715 +v -0.420751 -0.686602 0.111857 +v -0.417807 -0.681798 0.106276 +v -0.425897 -0.695000 0.117523 +v -0.473326 -0.651477 0.111857 +v -0.479115 -0.659445 0.117523 +v -0.470015 -0.646919 0.106276 +v -0.587467 -0.958659 0.360560 +v -0.578865 -0.944623 0.358702 +v -0.625612 -1.020907 0.360548 +v -0.660874 -0.909616 0.360560 +v -0.703787 -0.968680 0.360548 +v -0.651198 -0.896298 0.358702 +v -0.656434 -1.071203 0.244879 +v -0.655022 -1.068899 0.295392 +v -0.656931 -1.072015 0.193502 +v -0.738459 -1.016402 0.244879 +v -0.739019 -1.017173 0.193502 +v -0.736871 -1.014217 0.295392 +v -0.700666 -1.143384 0.062279 +v -0.699185 -1.140967 0.069397 +v -0.701711 -1.145088 0.053092 +v -0.788219 -1.084891 0.062279 +v -0.789394 -1.086508 0.053092 +v -0.786553 -1.082597 0.069397 +v -0.518247 -0.606790 0.022996 +v -0.519445 -0.608192 0.021715 +v -0.518239 -0.606781 0.028076 +v -0.564260 -0.564260 0.022996 +v -0.564252 -0.564252 0.028076 +v -0.565565 -0.565565 0.021715 +v -0.522978 -0.612329 0.111857 +v -0.519319 -0.608045 0.106276 +v -0.529375 -0.619819 0.117523 +v -0.569412 -0.569412 0.111857 +v -0.576376 -0.576376 0.117523 +v -0.565428 -0.565428 0.106276 +v -0.730201 -0.854956 0.360560 +v -0.719510 -0.842438 0.358702 +v -0.777615 -0.910471 0.360548 +v -0.795033 -0.795034 0.360560 +v -0.846657 -0.846657 0.360548 +v -0.783393 -0.783393 0.358702 +v -0.815925 -0.955325 0.244879 +v -0.814170 -0.953271 0.295392 +v -0.816543 -0.956049 0.193502 +v -0.888368 -0.888368 0.244879 +v -0.889041 -0.889041 0.193502 +v -0.886458 -0.886458 0.295392 +v -0.870904 -1.019698 0.062279 +v -0.869064 -1.017543 0.069397 +v -0.872203 -1.021218 0.053092 +v -0.948229 -0.948229 0.062279 +v -0.949642 -0.949642 0.053092 +v -0.946225 -0.946225 0.069397 +v -0.606789 -0.518247 0.022996 +v -0.608192 -0.519445 0.021715 +v -0.606781 -0.518241 0.028076 +v -0.645583 -0.469044 0.022996 +v -0.645574 -0.469038 0.028076 +v -0.647076 -0.470129 0.021715 +v -0.612329 -0.522978 0.111857 +v -0.608045 -0.519319 0.106276 +v -0.619819 -0.529375 0.117523 +v -0.651477 -0.473326 0.111857 +v -0.659445 -0.479116 0.117523 +v -0.646919 -0.470015 0.106276 +v -0.854956 -0.730202 0.360560 +v -0.842438 -0.719510 0.358702 +v -0.910471 -0.777615 0.360548 +v -0.909616 -0.660875 0.360560 +v -0.968680 -0.703787 0.360548 +v -0.896298 -0.651199 0.358702 +v -0.955326 -0.815925 0.244879 +v -0.953271 -0.814170 0.295392 +v -0.956050 -0.816543 0.193502 +v -1.016402 -0.738459 0.244879 +v -1.017173 -0.739019 0.193502 +v -1.014217 -0.736871 0.295392 +v -1.019698 -0.870904 0.062279 +v -1.017543 -0.869064 0.069397 +v -1.021218 -0.872203 0.053092 +v -1.084891 -0.788219 0.062279 +v -1.086508 -0.789394 0.053092 +v -1.082597 -0.786553 0.069397 +v -0.680391 -0.416945 0.022996 +v -0.681964 -0.417909 0.021715 +v -0.680381 -0.416939 0.028076 +v -0.711010 -0.362278 0.022996 +v -0.711000 -0.362273 0.028076 +v -0.712654 -0.363116 0.021715 +v -0.686602 -0.420751 0.111857 +v -0.681798 -0.417807 0.106276 +v -0.695000 -0.425897 0.117523 +v -0.717501 -0.365585 0.111857 +v -0.726277 -0.370057 0.117523 +v -0.712481 -0.363028 0.106276 +v -0.958659 -0.587467 0.360560 +v -0.944623 -0.578866 0.358702 +v -1.020907 -0.625612 0.360548 +v -1.001801 -0.510444 0.360560 +v -1.066850 -0.543587 0.360548 +v -0.987133 -0.502970 0.358702 +v -1.071203 -0.656434 0.244879 +v -1.068899 -0.655022 0.295392 +v -1.072015 -0.656931 0.193503 +v -1.119409 -0.570367 0.244879 +v -1.120257 -0.570799 0.193503 +v -1.117002 -0.569140 0.295392 +v -1.143384 -0.700666 0.062279 +v -1.140967 -0.699185 0.069397 +v -1.145088 -0.701710 0.053092 +v -1.194838 -0.608800 0.062279 +v -1.196619 -0.609708 0.053092 +v -1.192313 -0.607513 0.069397 +v -0.737238 -0.305375 0.022996 +v -0.738943 -0.306081 0.021715 +v -0.737228 -0.305370 0.028076 +v -0.758929 -0.246591 0.022996 +v -0.758918 -0.246588 0.028076 +v -0.760684 -0.247161 0.021715 +v -0.743969 -0.308162 0.111857 +v -0.738764 -0.306006 0.106276 +v -0.753069 -0.311932 0.117523 +v -0.765857 -0.248843 0.111857 +v -0.775225 -0.251886 0.117523 +v -0.760499 -0.247101 0.106276 +v -1.038757 -0.430268 0.360560 +v -1.023548 -0.423968 0.358702 +v -1.106206 -0.458206 0.360548 +v -1.069318 -0.347443 0.360560 +v -1.138751 -0.370003 0.360548 +v -1.053662 -0.342356 0.358702 +v -1.160704 -0.480780 0.244879 +v -1.158207 -0.479746 0.295392 +v -1.161583 -0.481144 0.193503 +v -1.194853 -0.388231 0.244879 +v -1.195758 -0.388526 0.193503 +v -1.192283 -0.387397 0.295392 +v -1.238915 -0.513175 0.062279 +v -1.236296 -0.512091 0.069397 +v -1.240762 -0.513941 0.053092 +v -1.275366 -0.414392 0.062279 +v -1.277267 -0.415009 0.053092 +v -1.272670 -0.413516 0.069397 +v -0.775933 -0.186285 0.022996 +v -0.777727 -0.186716 0.021715 +v -0.775922 -0.186283 0.028076 +v -0.788160 -0.124833 0.022996 +v -0.788149 -0.124831 0.028076 +v -0.789983 -0.125121 0.021715 +v -0.783017 -0.187986 0.111857 +v -0.777538 -0.186671 0.106276 +v -0.792594 -0.190285 0.117523 +v -0.795356 -0.125972 0.111857 +v -0.805084 -0.127513 0.117523 +v -0.789791 -0.125091 0.106276 +v -1.093276 -0.262473 0.360560 +v -1.077269 -0.258630 0.358702 +v -1.164266 -0.279516 0.360548 +v -1.110505 -0.175887 0.360560 +v -1.182613 -0.187308 0.360548 +v -1.094246 -0.173312 0.358702 +v -1.221624 -0.293286 0.244879 +v -1.218997 -0.292656 0.295392 +v -1.222550 -0.293509 0.193503 +v -1.240875 -0.196536 0.244879 +v -1.241815 -0.196684 0.193503 +v -1.238206 -0.196113 0.295392 +v -1.303940 -0.313049 0.062279 +v -1.301184 -0.312387 0.069397 +v -1.305884 -0.313515 0.053092 +v -1.324489 -0.209779 0.062279 +v -1.326463 -0.210091 0.053092 +v -1.321689 -0.209335 0.069397 +v -0.795521 -0.062609 0.022996 +v -0.797361 -0.062754 0.021715 +v -0.795510 -0.062608 0.028076 +v -0.802784 -0.063181 0.111857 +v -0.797167 -0.062738 0.106276 +v -0.812603 -0.063953 0.117523 +v -1.120876 -0.088215 0.360560 +v -1.104465 -0.086923 0.358702 +v -1.193658 -0.093943 0.360548 +v -1.252464 -0.098571 0.244879 +v -1.249770 -0.098359 0.295392 +v -1.253413 -0.098646 0.193503 +v -1.336858 -0.105213 0.062279 +v -1.334033 -0.104991 0.069397 +v -1.338851 -0.105370 0.053092 +v 0.563271 -0.568336 0.022996 +v 0.567702 -0.566866 0.022996 +v 0.568783 -0.567770 0.022047 +v 0.565111 -0.569137 0.021715 +v 0.563262 -0.568327 0.028075 +v 0.567693 -0.566858 0.028075 +v 0.549966 -0.579699 0.022996 +v 0.549958 -0.579691 0.028075 +v 0.551372 -0.580911 0.021715 +v 0.568861 -0.573077 0.110196 +v 0.571679 -0.570563 0.107413 +v 0.567529 -0.568721 0.104223 +v 0.564550 -0.569402 0.105063 +v 0.576353 -0.579849 0.115659 +v 0.580101 -0.576907 0.112537 +v 0.555099 -0.584879 0.111442 +v 0.562022 -0.591974 0.117057 +v 0.551133 -0.580871 0.105972 +v 0.794832 -0.800175 0.358966 +v 0.799716 -0.796703 0.356297 +v 0.788425 -0.785387 0.354499 +v 0.783351 -0.788589 0.357130 +v 0.849791 -0.846892 0.356286 +v 0.845750 -0.851555 0.358954 +v 0.775191 -0.816636 0.360161 +v 0.825353 -0.869518 0.360149 +v 0.763880 -0.804712 0.358309 +v 0.886623 -0.892803 0.244267 +v 0.889537 -0.886731 0.243243 +v 0.887787 -0.884977 0.292939 +v 0.884778 -0.890940 0.294475 +v 0.887281 -0.893466 0.193175 +v 0.890172 -0.887367 0.192627 +v 0.865816 -0.912179 0.244725 +v 0.866469 -0.912867 0.193420 +v 0.863969 -0.910232 0.295162 +v 0.946685 -0.953401 0.062147 +v 0.950329 -0.947653 0.061925 +v 0.948320 -0.945641 0.068488 +v 0.944684 -0.951382 0.069057 +v 0.948075 -0.954803 0.053059 +v 0.951687 -0.949015 0.053003 +v 0.924237 -0.973754 0.062246 +v 0.925610 -0.975201 0.053083 +v 0.922284 -0.971695 0.069312 +v 0.416944 -0.680391 0.022996 +v 0.468361 -0.646167 0.022996 +v 0.469444 -0.647661 0.021715 +v 0.417908 -0.681964 0.021715 +v 0.416938 -0.680381 0.028075 +v 0.468355 -0.646157 0.028075 +v 0.362278 -0.711010 0.022996 +v 0.362273 -0.711000 0.028075 +v 0.363115 -0.712654 0.021715 +v 0.420751 -0.686602 0.111857 +v 0.472637 -0.652066 0.111857 +v 0.469330 -0.647504 0.106276 +v 0.417807 -0.681798 0.106276 +v 0.425897 -0.695000 0.117523 +v 0.478418 -0.660041 0.117523 +v 0.365585 -0.717501 0.111857 +v 0.370057 -0.726277 0.117523 +v 0.363027 -0.712481 0.106276 +v 0.587467 -0.958659 0.360559 +v 0.659912 -0.910438 0.360559 +v 0.650250 -0.897108 0.358702 +v 0.578866 -0.944623 0.358702 +v 0.702762 -0.969555 0.360548 +v 0.625612 -1.020907 0.360548 +v 0.510443 -1.001801 0.360559 +v 0.543588 -1.066851 0.360548 +v 0.502970 -0.987133 0.358702 +v 0.656433 -1.071203 0.244878 +v 0.737384 -1.017321 0.244878 +v 0.735798 -1.015133 0.295392 +v 0.655022 -1.068899 0.295392 +v 0.656931 -1.072015 0.193502 +v 0.737943 -1.018092 0.193502 +v 0.570368 -1.119409 0.244878 +v 0.570800 -1.120258 0.193502 +v 0.569140 -1.117002 0.295392 +v 0.700666 -1.143384 0.062279 +v 0.787071 -1.085871 0.062279 +v 0.785408 -1.083575 0.069397 +v 0.699185 -1.140967 0.069397 +v 0.701710 -1.145088 0.053092 +v 0.788244 -1.087489 0.053092 +v 0.608800 -1.194839 0.062279 +v 0.609707 -1.196620 0.053092 +v 0.607513 -1.192313 0.069396 +v 0.305374 -0.737238 0.022996 +v 0.306080 -0.738943 0.021715 +v 0.305370 -0.737228 0.028075 +v 0.246591 -0.758929 0.022996 +v 0.246588 -0.758918 0.028075 +v 0.247161 -0.760684 0.021715 +v 0.308162 -0.743969 0.111857 +v 0.306006 -0.738764 0.106276 +v 0.311931 -0.753069 0.117523 +v 0.248842 -0.765857 0.111857 +v 0.251886 -0.775225 0.117523 +v 0.247101 -0.760499 0.106276 +v 0.430267 -1.038757 0.360559 +v 0.423968 -1.023548 0.358702 +v 0.458206 -1.106206 0.360548 +v 0.347443 -1.069318 0.360559 +v 0.370003 -1.138752 0.360548 +v 0.342356 -1.053662 0.358702 +v 0.480779 -1.160704 0.244878 +v 0.479745 -1.158208 0.295392 +v 0.481144 -1.161583 0.193502 +v 0.388231 -1.194853 0.244878 +v 0.388526 -1.195758 0.193502 +v 0.387396 -1.192283 0.295392 +v 0.513175 -1.238916 0.062279 +v 0.512091 -1.236297 0.069397 +v 0.513941 -1.240762 0.053092 +v 0.414392 -1.275366 0.062279 +v 0.415009 -1.277267 0.053092 +v 0.413516 -1.272670 0.069397 +v 0.186285 -0.775933 0.022996 +v 0.186716 -0.777727 0.021715 +v 0.186282 -0.775922 0.028075 +v 0.124832 -0.788160 0.022996 +v 0.124831 -0.788149 0.028075 +v 0.125121 -0.789983 0.021715 +v 0.187986 -0.783017 0.111857 +v 0.186671 -0.777538 0.106276 +v 0.190285 -0.792594 0.117523 +v 0.125972 -0.795356 0.111857 +v 0.127513 -0.805084 0.117523 +v 0.125091 -0.789791 0.106276 +v 0.262473 -1.093277 0.360559 +v 0.258630 -1.077270 0.358702 +v 0.279516 -1.164266 0.360548 +v 0.175887 -1.110505 0.360559 +v 0.187308 -1.182613 0.360548 +v 0.173312 -1.094246 0.358702 +v 0.293286 -1.221624 0.244878 +v 0.292655 -1.218997 0.295392 +v 0.293508 -1.222550 0.193502 +v 0.196535 -1.240875 0.244878 +v 0.196684 -1.241815 0.193502 +v 0.196113 -1.238206 0.295392 +v 0.313049 -1.303941 0.062279 +v 0.312387 -1.301184 0.069397 +v 0.313515 -1.305884 0.053092 +v 0.209778 -1.324489 0.062279 +v 0.210091 -1.326463 0.053092 +v 0.209335 -1.321689 0.069397 +v 0.062609 -0.795521 0.022996 +v 0.062754 -0.797361 0.021715 +v 0.062608 -0.795510 0.028075 +v 0.063180 -0.802784 0.111857 +v 0.062738 -0.797167 0.106276 +v 0.063953 -0.812603 0.117523 +v 0.088215 -1.120876 0.360559 +v 0.086923 -1.104465 0.358702 +v 0.093943 -1.193658 0.360548 +v 0.098571 -1.252464 0.244878 +v 0.098359 -1.249770 0.295392 +v 0.098646 -1.253413 0.193502 +v 0.105213 -1.336858 0.062279 +v 0.104991 -1.334033 0.069397 +v 0.105370 -1.338851 0.053092 +v -0.083818 -1.065009 0.332047 +v -0.083269 -1.058033 0.303722 +v -0.166026 -1.048244 0.303722 +v -0.167120 -1.055154 0.332047 +v 0.000000 -1.068307 0.332047 +v 0.000000 -1.061310 0.303722 +v -0.084625 -1.075265 0.344249 +v 0.000000 -1.078595 0.344249 +v -0.168730 -1.065316 0.344249 +v -0.096283 -1.223387 0.350053 +v -0.095177 -1.209332 0.357912 +v -0.189767 -1.198142 0.357912 +v -0.191973 -1.212067 0.350053 +v 0.000000 -1.227176 0.350053 +v 0.000000 -1.213077 0.357912 +v -0.097209 -1.235157 0.338096 +v 0.000000 -1.238983 0.338096 +v -0.193820 -1.223729 0.338096 +v -0.249390 -1.038785 0.332047 +v -0.247757 -1.031981 0.303722 +v -0.327963 -1.009366 0.303722 +v -0.330125 -1.016020 0.332047 +v -0.251792 -1.048789 0.344249 +v -0.333305 -1.025805 0.344249 +v -0.286477 -1.193263 0.350053 +v -0.283186 -1.179554 0.357912 +v -0.374862 -1.153705 0.357912 +v -0.379219 -1.167114 0.350053 +v -0.289234 -1.204744 0.338096 +v -0.382867 -1.178343 0.338096 +v -0.408822 -0.986982 0.332047 +v -0.406144 -0.980518 0.303722 +v -0.481824 -0.945634 0.303722 +v -0.485001 -0.951868 0.332047 +v -0.412759 -0.996488 0.344249 +v -0.489672 -0.961036 0.344249 +v -0.469617 -1.133757 0.350053 +v -0.464222 -1.120732 0.357912 +v -0.550725 -1.080860 0.357912 +v -0.557126 -1.093422 0.350053 +v -0.474135 -1.144665 0.338096 +v -0.562486 -1.103942 0.338097 +v -0.558186 -0.910877 0.332047 +v -0.554530 -0.904911 0.303722 +v -0.623822 -0.858618 0.303722 +v -0.627935 -0.864278 0.332047 +v -0.563561 -0.919649 0.344249 +v -0.633982 -0.872602 0.344249 +v -0.641194 -1.046335 0.350053 +v -0.633827 -1.034313 0.357912 +v -0.713028 -0.981400 0.357912 +v -0.721315 -0.992806 0.350053 +v -0.647363 -1.056401 0.338097 +v -0.728255 -1.002358 0.338097 +v -0.693806 -0.812343 0.332047 +v -0.689262 -0.807023 0.303722 +v -0.750459 -0.750459 0.303722 +v -0.755407 -0.755407 0.332047 +v -0.700488 -0.820166 0.344249 +v -0.762682 -0.762682 0.344249 +v -0.796983 -0.933147 0.350053 +v -0.787826 -0.922426 0.357912 +v -0.857774 -0.857775 0.357912 +v -0.867744 -0.867744 0.350053 +v -0.804651 -0.942125 0.338097 +v -0.876093 -0.876093 0.338097 +v -0.812343 -0.693806 0.332047 +v -0.807023 -0.689262 0.303722 +v -0.858618 -0.623822 0.303722 +v -0.864278 -0.627935 0.332047 +v -0.820166 -0.700488 0.344249 +v -0.872602 -0.633982 0.344249 +v -0.933147 -0.796983 0.350053 +v -0.922426 -0.787827 0.357912 +v -0.981400 -0.713028 0.357913 +v -0.992806 -0.721315 0.350053 +v -0.942125 -0.804651 0.338097 +v -1.002358 -0.728255 0.338097 +v -0.910877 -0.558186 0.332047 +v -0.904911 -0.554530 0.303722 +v -0.945634 -0.481825 0.303722 +v -0.951868 -0.485002 0.332047 +v -0.919649 -0.563562 0.344249 +v -0.961036 -0.489673 0.344249 +v -1.046334 -0.641194 0.350053 +v -1.034313 -0.633828 0.357913 +v -1.080859 -0.550725 0.357913 +v -1.093422 -0.557126 0.350053 +v -1.056401 -0.647363 0.338097 +v -1.103942 -0.562486 0.338097 +v -0.986982 -0.408822 0.332047 +v -0.980518 -0.406144 0.303722 +v -1.009366 -0.327963 0.303722 +v -1.016020 -0.330125 0.332047 +v -0.996488 -0.412759 0.344249 +v -1.025805 -0.333305 0.344249 +v -1.133757 -0.469618 0.350053 +v -1.120732 -0.464223 0.357913 +v -1.153705 -0.374862 0.357913 +v -1.167114 -0.379219 0.350053 +v -1.144665 -0.474136 0.338097 +v -1.178342 -0.382867 0.338097 +v -1.038785 -0.249390 0.332047 +v -1.031981 -0.247757 0.303722 +v -1.048244 -0.166026 0.303722 +v -1.055154 -0.167120 0.332047 +v -1.048789 -0.251792 0.344249 +v -1.065316 -0.168730 0.344249 +v -1.193263 -0.286478 0.350053 +v -1.179554 -0.283186 0.357913 +v -1.198142 -0.189767 0.357913 +v -1.212067 -0.191973 0.350053 +v -1.204744 -0.289234 0.338097 +v -1.223729 -0.193820 0.338097 +v -1.065009 -0.083818 0.332047 +v -1.058034 -0.083269 0.303722 +v -1.075265 -0.084625 0.344249 +v -1.223387 -0.096283 0.350053 +v -1.209332 -0.095177 0.357913 +v -1.235157 -0.097209 0.338097 +v 0.690149 -0.815466 0.332047 +v 0.685629 -0.810126 0.303722 +v 0.622914 -0.859393 0.303722 +v 0.627020 -0.865059 0.332047 +v 0.736709 -0.776066 0.331733 +v 0.731918 -0.771014 0.303459 +v 0.696796 -0.823320 0.344249 +v 0.743761 -0.783502 0.343899 +v 0.633059 -0.873390 0.344249 +v 0.792782 -0.936735 0.350053 +v 0.783674 -0.925973 0.357912 +v 0.711990 -0.982286 0.357912 +v 0.720265 -0.993703 0.350053 +v 0.845843 -0.891119 0.349686 +v 0.836156 -0.880907 0.357522 +v 0.800409 -0.945748 0.338096 +v 0.853947 -0.899663 0.337765 +v 0.727195 -1.003264 0.338096 +v 0.558187 -0.910877 0.332047 +v 0.554531 -0.904911 0.303722 +v 0.481825 -0.945634 0.303722 +v 0.485001 -0.951868 0.332047 +v 0.563562 -0.919649 0.344249 +v 0.489672 -0.961036 0.344249 +v 0.641194 -1.046335 0.350053 +v 0.633827 -1.034313 0.357912 +v 0.550726 -1.080860 0.357912 +v 0.557126 -1.093422 0.350053 +v 0.647363 -1.056401 0.338096 +v 0.562486 -1.103942 0.338096 +v 0.408822 -0.986982 0.332047 +v 0.406144 -0.980518 0.303722 +v 0.327963 -1.009366 0.303722 +v 0.330125 -1.016020 0.332047 +v 0.412759 -0.996488 0.344249 +v 0.333305 -1.025805 0.344249 +v 0.469618 -1.133757 0.350053 +v 0.464222 -1.120732 0.357912 +v 0.374862 -1.153705 0.357912 +v 0.379218 -1.167114 0.350053 +v 0.474136 -1.144665 0.338096 +v 0.382867 -1.178343 0.338096 +v 0.249390 -1.038784 0.332047 +v 0.247757 -1.031981 0.303722 +v 0.166026 -1.048244 0.303722 +v 0.167120 -1.055154 0.332047 +v 0.251792 -1.048789 0.344249 +v 0.168730 -1.065316 0.344249 +v 0.286477 -1.193263 0.350053 +v 0.283186 -1.179554 0.357912 +v 0.189767 -1.198142 0.357912 +v 0.191973 -1.212067 0.350053 +v 0.289234 -1.204744 0.338096 +v 0.193820 -1.223729 0.338096 +v 0.083818 -1.065009 0.332047 +v 0.083269 -1.058033 0.303722 +v 0.084625 -1.075265 0.344249 +v 0.096283 -1.223387 0.350053 +v 0.095177 -1.209332 0.357912 +v 0.097209 -1.235157 0.338096 +v -0.085694 -1.088840 0.353200 +v -0.170860 -1.078765 0.353200 +v 0.000000 -1.092212 0.353200 +v -0.254971 -1.062029 0.353200 +v -0.337512 -1.038755 0.353200 +v -0.417970 -1.009067 0.353200 +v -0.495853 -0.973168 0.353200 +v -0.570676 -0.931259 0.353200 +v -0.641985 -0.883618 0.353200 +v -0.709331 -0.830520 0.353200 +v -0.772310 -0.772310 0.353200 +v -0.830520 -0.709331 0.353200 +v -0.883618 -0.641986 0.353200 +v -0.931259 -0.570676 0.353200 +v -0.973168 -0.495854 0.353200 +v -1.009067 -0.417970 0.353200 +v -1.038755 -0.337512 0.353200 +v -1.062029 -0.254971 0.353200 +v -1.078765 -0.170860 0.353200 +v -1.088840 -0.085694 0.353200 +v 0.705592 -0.833713 0.353200 +v 0.641051 -0.884416 0.353200 +v 0.753111 -0.793359 0.352823 +v 0.715718 -0.845678 0.358702 +v 0.570677 -0.931259 0.353200 +v 0.495854 -0.973168 0.353200 +v 0.417970 -1.009067 0.353200 +v 0.337512 -1.038755 0.353200 +v 0.254971 -1.062029 0.353200 +v 0.170860 -1.078765 0.353200 +v 0.085694 -1.088840 0.353200 +v -0.098996 -1.257856 0.128281 +v 0.000000 -1.261752 0.128281 +v 0.000000 -1.259015 0.144491 +v -0.098781 -1.255128 0.144491 +v -0.099365 -1.262556 0.114410 +v 0.000000 -1.266466 0.114410 +v -0.197382 -1.246218 0.128281 +v -0.198119 -1.250874 0.114410 +v -0.196954 -1.243515 0.144491 +v -0.294549 -1.226884 0.128281 +v -0.293910 -1.224223 0.144492 +v -0.295650 -1.231468 0.114410 +v -0.389903 -1.199997 0.128281 +v -0.391360 -1.204481 0.114410 +v -0.389057 -1.197394 0.144492 +v -0.482850 -1.165701 0.128281 +v -0.481802 -1.163172 0.144492 +v -0.484654 -1.170057 0.114410 +v -0.572823 -1.124229 0.128281 +v -0.574963 -1.128430 0.114410 +v -0.571580 -1.121790 0.144492 +v -0.659260 -1.075815 0.128281 +v -0.657830 -1.073482 0.144492 +v -0.661723 -1.079835 0.114410 +v -0.741639 -1.020779 0.128281 +v -0.744410 -1.024593 0.114410 +v -0.740030 -1.018564 0.144492 +v -0.819438 -0.959439 0.128281 +v -0.817661 -0.957358 0.144492 +v -0.822500 -0.963024 0.114410 +v -0.892193 -0.892193 0.128281 +v -0.895527 -0.895527 0.114410 +v -0.890258 -0.890258 0.144492 +v -0.959439 -0.819438 0.128281 +v -0.957358 -0.817661 0.144492 +v -0.963024 -0.822500 0.114410 +v -1.020779 -0.741639 0.128281 +v -1.024593 -0.744410 0.114410 +v -1.018565 -0.740030 0.144492 +v -1.075815 -0.659260 0.128281 +v -1.073482 -0.657830 0.144492 +v -1.079835 -0.661723 0.114410 +v -1.124229 -0.572823 0.128281 +v -1.128430 -0.574963 0.114410 +v -1.121790 -0.571580 0.144492 +v -1.165701 -0.482850 0.128281 +v -1.163173 -0.481802 0.144492 +v -1.170057 -0.484654 0.114410 +v -1.199997 -0.389903 0.128281 +v -1.204481 -0.391360 0.114410 +v -1.197394 -0.389057 0.144492 +v -1.226884 -0.294549 0.128281 +v -1.224223 -0.293910 0.144492 +v -1.231468 -0.295649 0.114410 +v -1.246218 -0.197382 0.128281 +v -1.250874 -0.198119 0.114410 +v -1.243514 -0.196954 0.144492 +v -1.257856 -0.098996 0.128281 +v -1.255128 -0.098781 0.144492 +v -1.262556 -0.099365 0.114410 +v 0.890580 -0.896794 0.127690 +v 0.893738 -0.890940 0.126702 +v 0.891468 -0.888665 0.143924 +v 0.888524 -0.894720 0.144279 +v 0.894033 -0.900277 0.113414 +v 0.897414 -0.894623 0.111746 +v 0.869579 -0.916143 0.128133 +v 0.872859 -0.919600 0.114161 +v 0.867662 -0.914124 0.144438 +v 0.659260 -1.075815 0.128281 +v 0.740559 -1.021701 0.128281 +v 0.738952 -1.019485 0.144491 +v 0.657830 -1.073482 0.144491 +v 0.661723 -1.079835 0.114410 +v 0.743326 -1.025518 0.114410 +v 0.572822 -1.124229 0.128281 +v 0.574963 -1.128430 0.114410 +v 0.571580 -1.121791 0.144491 +v 0.482849 -1.165701 0.128281 +v 0.481802 -1.163173 0.144491 +v 0.484653 -1.170057 0.114410 +v 0.389903 -1.199997 0.128281 +v 0.391360 -1.204481 0.114410 +v 0.389057 -1.197394 0.144491 +v 0.294549 -1.226884 0.128281 +v 0.293910 -1.224223 0.144491 +v 0.295649 -1.231468 0.114410 +v 0.197382 -1.246218 0.128281 +v 0.198119 -1.250874 0.114410 +v 0.196953 -1.243515 0.144491 +v 0.098995 -1.257856 0.128281 +v 0.098781 -1.255128 0.144491 +v 0.099365 -1.262556 0.114410 +v -0.104682 -1.330109 0.076381 +v 0.000000 -1.334229 0.076381 +v 0.000000 -1.324876 0.082693 +v -0.103948 -1.320786 0.082693 +v -0.208720 -1.317802 0.076381 +v -0.207256 -1.308565 0.082693 +v -0.311468 -1.297358 0.076381 +v -0.309285 -1.288264 0.082693 +v -0.412300 -1.268927 0.076381 +v -0.409410 -1.260032 0.082693 +v -0.510584 -1.232661 0.076381 +v -0.507006 -1.224020 0.082693 +v -0.605727 -1.188807 0.076381 +v -0.601481 -1.180473 0.082693 +v -0.697129 -1.137612 0.076381 +v -0.692242 -1.129637 0.082693 +v -0.784240 -1.079414 0.076381 +v -0.778742 -1.071847 0.082693 +v -0.866508 -1.014550 0.076381 +v -0.860434 -1.007439 0.082693 +v -0.943442 -0.943442 0.076381 +v -0.936829 -0.936829 0.082693 +v -1.014551 -0.866508 0.076381 +v -1.007439 -0.860434 0.082693 +v -1.079414 -0.784240 0.076381 +v -1.071847 -0.778743 0.082693 +v -1.137612 -0.697129 0.076381 +v -1.129637 -0.692242 0.082693 +v -1.188807 -0.605727 0.076381 +v -1.180473 -0.601481 0.082693 +v -1.232661 -0.510584 0.076381 +v -1.224020 -0.507006 0.082693 +v -1.268927 -0.412300 0.076381 +v -1.260032 -0.409410 0.082693 +v -1.297358 -0.311468 0.076381 +v -1.288264 -0.309285 0.082693 +v -1.317802 -0.208720 0.076381 +v -1.308565 -0.207256 0.082693 +v -1.330109 -0.104682 0.076381 +v -1.320786 -0.103948 0.082693 +v 0.941907 -0.948580 0.075683 +v 0.945533 -0.942847 0.074515 +v 0.938906 -0.936207 0.079957 +v 0.935305 -0.941919 0.081670 +v 0.919572 -0.968836 0.076207 +v 0.913126 -0.962042 0.082437 +v 0.697129 -1.137612 0.076381 +v 0.783098 -1.080389 0.076381 +v 0.777608 -1.072816 0.082693 +v 0.692242 -1.129637 0.082693 +v 0.605726 -1.188807 0.076381 +v 0.601480 -1.180474 0.082693 +v 0.510584 -1.232661 0.076381 +v 0.507006 -1.224020 0.082693 +v 0.412300 -1.268927 0.076381 +v 0.409409 -1.260032 0.082693 +v 0.311468 -1.297358 0.076381 +v 0.309285 -1.288264 0.082693 +v 0.208719 -1.317802 0.076381 +v 0.207256 -1.308565 0.082693 +v 0.104682 -1.330109 0.076381 +v 0.103948 -1.320786 0.082693 +v -0.105482 -1.340275 0.039899 +v 0.000000 -1.344426 0.039899 +v -0.105552 -1.341161 0.028075 +v 0.000000 -1.345315 0.028075 +v -0.210315 -1.327874 0.039899 +v -0.210454 -1.328752 0.028075 +v -0.313849 -1.307273 0.039899 +v -0.314056 -1.308138 0.028075 +v -0.415451 -1.278625 0.039899 +v -0.415726 -1.279470 0.028075 +v -0.514486 -1.242081 0.039899 +v -0.514827 -1.242903 0.028076 +v -0.610356 -1.197892 0.039899 +v -0.610760 -1.198684 0.028076 +v -0.702457 -1.146306 0.039899 +v -0.702921 -1.147064 0.028076 +v -0.790233 -1.087663 0.039899 +v -0.790756 -1.088382 0.028076 +v -0.873130 -1.022304 0.039899 +v -0.873708 -1.022980 0.028076 +v -0.950652 -0.950652 0.039899 +v -0.951281 -0.951281 0.028076 +v -1.022304 -0.873130 0.039899 +v -1.022980 -0.873707 0.028076 +v -1.087663 -0.790233 0.039899 +v -1.088382 -0.790756 0.028076 +v -1.146306 -0.702457 0.039899 +v -1.147064 -0.702921 0.028076 +v -1.197892 -0.610356 0.039899 +v -1.198684 -0.610760 0.028076 +v -1.242081 -0.514486 0.039899 +v -1.242903 -0.514827 0.028076 +v -1.278625 -0.415451 0.039899 +v -1.279470 -0.415725 0.028076 +v -1.307273 -0.313849 0.039899 +v -1.308137 -0.314056 0.028076 +v -1.327874 -0.210315 0.039899 +v -1.328752 -0.210454 0.028076 +v -1.340275 -0.105482 0.039899 +v -1.341161 -0.105552 0.028076 +v 0.949018 -0.955756 0.039899 +v 0.952526 -0.949856 0.039899 +v 0.949579 -0.956322 0.028075 +v 0.952976 -0.950308 0.028075 +v 0.926578 -0.976222 0.039899 +v 0.927174 -0.976851 0.028075 +v 0.702456 -1.146306 0.039899 +v 0.789083 -1.088646 0.039899 +v 0.702921 -1.147064 0.028075 +v 0.789604 -1.089366 0.028075 +v 0.610356 -1.197892 0.039899 +v 0.610759 -1.198684 0.028075 +v 0.514486 -1.242082 0.039899 +v 0.514827 -1.242903 0.028075 +v 0.415451 -1.278625 0.039899 +v 0.415725 -1.279470 0.028075 +v 0.313849 -1.307273 0.039899 +v 0.314056 -1.308138 0.028075 +v 0.210315 -1.327874 0.039899 +v 0.210454 -1.328752 0.028075 +v 0.105482 -1.340275 0.039899 +v 0.105552 -1.341161 0.028075 +v -0.082976 -1.054304 0.246404 +v 0.000000 -1.057570 0.246404 +v 0.000000 -1.054207 0.188328 +v -0.082712 -1.050952 0.188328 +v -0.165440 -1.044549 0.246404 +v -0.164914 -1.041228 0.188328 +v -0.246884 -1.028344 0.246404 +v -0.246099 -1.025074 0.188328 +v -0.326807 -1.005808 0.246404 +v -0.325768 -1.002611 0.188328 +v -0.404713 -0.977062 0.246404 +v -0.403426 -0.973956 0.188328 +v -0.480127 -0.942301 0.246404 +v -0.478601 -0.939305 0.188328 +v -0.552575 -0.901722 0.246404 +v -0.550819 -0.898855 0.188328 +v -0.621623 -0.855592 0.246404 +v -0.619647 -0.852871 0.188328 +v -0.686833 -0.804178 0.246404 +v -0.684649 -0.801621 0.188328 +v -0.747814 -0.747814 0.246404 +v -0.745437 -0.745437 0.188328 +v -0.804178 -0.686833 0.246404 +v -0.801621 -0.684649 0.188328 +v -0.855592 -0.621623 0.246404 +v -0.852871 -0.619647 0.188328 +v -0.901722 -0.552576 0.246404 +v -0.898855 -0.550819 0.188328 +v -0.942301 -0.480127 0.246404 +v -0.939305 -0.478601 0.188328 +v -0.977062 -0.404713 0.246404 +v -0.973956 -0.403426 0.188328 +v -1.005808 -0.326807 0.246404 +v -1.002611 -0.325768 0.188328 +v -1.028344 -0.246884 0.246404 +v -1.025074 -0.246099 0.188328 +v -1.044549 -0.165441 0.246404 +v -1.041228 -0.164914 0.188328 +v -1.054304 -0.082976 0.246404 +v -1.050952 -0.082712 0.188328 +v 0.748425 -0.753345 0.245628 +v 0.754360 -0.751243 0.244329 +v 0.751897 -0.748775 0.186565 +v 0.746021 -0.750920 0.187669 +v 0.751022 -0.755965 0.302669 +v 0.756892 -0.753781 0.300907 +v 0.729350 -0.768308 0.246210 +v 0.727026 -0.765857 0.188163 +v 0.552576 -0.901722 0.246404 +v 0.620718 -0.856365 0.246404 +v 0.618745 -0.853642 0.188328 +v 0.550819 -0.898855 0.188328 +v 0.480127 -0.942301 0.246404 +v 0.478600 -0.939306 0.188328 +v 0.404713 -0.977062 0.246404 +v 0.403426 -0.973956 0.188328 +v 0.326807 -1.005808 0.246404 +v 0.325768 -1.002611 0.188328 +v 0.246884 -1.028344 0.246404 +v 0.246099 -1.025074 0.188328 +v 0.165440 -1.044549 0.246404 +v 0.164914 -1.041228 0.188328 +v 0.082976 -1.054304 0.246404 +v 0.082712 -1.050952 0.188328 +v -0.080433 -1.022001 0.130196 +v 0.000000 -1.025166 0.130196 +v 0.000000 -0.990833 0.122188 +v -0.077740 -0.987774 0.122188 +v -0.081518 -1.035786 0.142417 +v 0.000000 -1.038994 0.142417 +v -0.160371 -1.012544 0.130196 +v -0.162535 -1.026202 0.142417 +v -0.155001 -0.978634 0.122188 +v -0.239319 -0.996836 0.130196 +v -0.231305 -0.963452 0.122188 +v -0.242547 -1.010282 0.142417 +v -0.316794 -0.974991 0.130196 +v -0.321067 -0.988142 0.142417 +v -0.306185 -0.942339 0.122188 +v -0.392312 -0.947125 0.130196 +v -0.379174 -0.915406 0.122188 +v -0.397604 -0.959901 0.142417 +v -0.465416 -0.913429 0.130196 +v -0.471694 -0.925751 0.142417 +v -0.449829 -0.882839 0.122188 +v -0.535645 -0.874093 0.130196 +v -0.517707 -0.844820 0.122188 +v -0.542871 -0.885884 0.142417 +v -0.602577 -0.829377 0.130196 +v -0.610705 -0.840564 0.142417 +v -0.582397 -0.801601 0.122188 +v -0.665788 -0.779538 0.130196 +v -0.643491 -0.753432 0.122188 +v -0.674769 -0.790054 0.142417 +v -0.724901 -0.724901 0.130196 +v -0.734679 -0.734680 0.142417 +v -0.700625 -0.700625 0.122188 +v -0.779538 -0.665788 0.130196 +v -0.753432 -0.643491 0.122188 +v -0.790053 -0.674769 0.142417 +v -0.829376 -0.602577 0.130196 +v -0.840564 -0.610705 0.142417 +v -0.801601 -0.582397 0.122188 +v -0.874093 -0.535645 0.130196 +v -0.844820 -0.517707 0.122188 +v -0.885884 -0.542871 0.142417 +v -0.913429 -0.465416 0.130196 +v -0.925750 -0.471694 0.142417 +v -0.882839 -0.449829 0.122188 +v -0.947125 -0.392313 0.130196 +v -0.915406 -0.379174 0.122188 +v -0.959901 -0.397604 0.142417 +v -0.974990 -0.316794 0.130196 +v -0.988142 -0.321067 0.142417 +v -0.942338 -0.306185 0.122188 +v -0.996836 -0.239319 0.130196 +v -0.963452 -0.231305 0.122188 +v -1.010282 -0.242548 0.142417 +v -1.012544 -0.160371 0.130196 +v -1.026202 -0.162535 0.142417 +v -0.978634 -0.155001 0.122188 +v -1.022000 -0.080433 0.130196 +v -0.987774 -0.077740 0.122188 +v -1.035786 -0.081518 0.142417 +v 0.724908 -0.729623 0.128631 +v 0.729681 -0.726515 0.126010 +v 0.704715 -0.701495 0.117704 +v 0.700433 -0.704930 0.120512 +v 0.734989 -0.739792 0.141084 +v 0.740334 -0.737189 0.138850 +v 0.706857 -0.744607 0.129804 +v 0.716467 -0.754733 0.142084 +v 0.683135 -0.719606 0.121769 +v 0.535644 -0.874093 0.130196 +v 0.601699 -0.830126 0.130196 +v 0.581549 -0.802325 0.122188 +v 0.517707 -0.844820 0.122188 +v 0.542871 -0.885884 0.142417 +v 0.609816 -0.841323 0.142417 +v 0.465416 -0.913430 0.130196 +v 0.471693 -0.925751 0.142417 +v 0.449829 -0.882839 0.122188 +v 0.392312 -0.947125 0.130196 +v 0.379174 -0.915406 0.122188 +v 0.397604 -0.959901 0.142417 +v 0.316794 -0.974991 0.130196 +v 0.321067 -0.988142 0.142417 +v 0.306184 -0.942339 0.122188 +v 0.239319 -0.996836 0.130196 +v 0.231304 -0.963452 0.122188 +v 0.242547 -1.010282 0.142417 +v 0.160371 -1.012544 0.130196 +v 0.162535 -1.026202 0.142417 +v 0.155001 -0.978634 0.122188 +v 0.080433 -1.022001 0.130196 +v 0.077740 -0.987774 0.122188 +v 0.081518 -1.035786 0.142417 +v -0.064762 -0.822876 0.119519 +v 0.000000 -0.825424 0.119519 +v -0.066829 -0.849140 0.119519 +v 0.000000 -0.851770 0.119519 +v -0.129125 -0.815262 0.119519 +v -0.133246 -0.841283 0.119519 +v -0.192691 -0.802614 0.119519 +v -0.198841 -0.828232 0.119519 +v -0.255070 -0.785025 0.119519 +v -0.263212 -0.810081 0.119519 +v -0.315875 -0.762589 0.119519 +v -0.325957 -0.786929 0.119519 +v -0.374735 -0.735459 0.119519 +v -0.386696 -0.758933 0.119519 +v -0.431282 -0.703787 0.119519 +v -0.445047 -0.726250 0.119519 +v -0.485173 -0.667782 0.119519 +v -0.500657 -0.689096 0.119519 +v -0.536067 -0.627655 0.119519 +v -0.553177 -0.647688 0.119519 +v -0.583663 -0.583663 0.119519 +v -0.602292 -0.602292 0.119519 +v -0.627654 -0.536067 0.119519 +v -0.647688 -0.553177 0.119519 +v -0.667782 -0.485173 0.119519 +v -0.689096 -0.500657 0.119519 +v -0.703787 -0.431282 0.119519 +v -0.726250 -0.445047 0.119519 +v -0.735458 -0.374735 0.119519 +v -0.758933 -0.386696 0.119519 +v -0.762589 -0.315875 0.119519 +v -0.786929 -0.325957 0.119519 +v -0.785025 -0.255071 0.119519 +v -0.810081 -0.263212 0.119519 +v -0.802614 -0.192691 0.119519 +v -0.828231 -0.198841 0.119519 +v -0.815262 -0.129125 0.119519 +v -0.841283 -0.133246 0.119519 +v -0.822876 -0.064762 0.119519 +v -0.849140 -0.066829 0.119519 +v 0.583903 -0.587352 0.117805 +v 0.588139 -0.584661 0.114935 +v 0.602454 -0.606070 0.117805 +v 0.606680 -0.603243 0.114935 +v 0.569193 -0.599501 0.119091 +v 0.587339 -0.618628 0.119091 +v 0.431281 -0.703787 0.119519 +v 0.484466 -0.668386 0.119519 +v 0.445047 -0.726250 0.119519 +v 0.499929 -0.689719 0.119519 +v 0.374735 -0.735459 0.119519 +v 0.386696 -0.758933 0.119519 +v 0.315875 -0.762589 0.119519 +v 0.325957 -0.786929 0.119519 +v 0.255070 -0.785025 0.119519 +v 0.263212 -0.810081 0.119519 +v 0.192691 -0.802614 0.119519 +v 0.198841 -0.828232 0.119519 +v 0.129125 -0.815262 0.119519 +v 0.133246 -0.841283 0.119519 +v 0.064762 -0.822876 0.119519 +v 0.066829 -0.849140 0.119519 +v -0.062592 -0.795308 0.100423 +v 0.000000 -0.797771 0.100423 +v 0.000000 -0.797793 0.093749 +v -0.062594 -0.795330 0.093749 +v -0.124799 -0.787949 0.100423 +v -0.124802 -0.787970 0.093749 +v -0.186235 -0.775725 0.100423 +v -0.186240 -0.775746 0.093749 +v -0.246525 -0.758725 0.100423 +v -0.246532 -0.758746 0.093749 +v -0.305293 -0.737041 0.100423 +v -0.305301 -0.737061 0.093749 +v -0.362181 -0.710819 0.100423 +v -0.362191 -0.710838 0.093749 +v -0.416833 -0.680208 0.100423 +v -0.416844 -0.680227 0.093749 +v -0.468918 -0.645410 0.100423 +v -0.468931 -0.645428 0.093749 +v -0.518109 -0.606627 0.100423 +v -0.518122 -0.606643 0.093749 +v -0.564109 -0.564109 0.100423 +v -0.564124 -0.564124 0.093749 +v -0.606627 -0.518109 0.100423 +v -0.606643 -0.518122 0.093749 +v -0.645410 -0.468919 0.100423 +v -0.645428 -0.468931 0.093749 +v -0.680208 -0.416833 0.100423 +v -0.680227 -0.416844 0.093749 +v -0.710819 -0.362181 0.100423 +v -0.710838 -0.362191 0.093749 +v -0.737041 -0.305293 0.100423 +v -0.737061 -0.305301 0.093749 +v -0.758725 -0.246525 0.100423 +v -0.758746 -0.246532 0.093749 +v -0.775725 -0.186235 0.100423 +v -0.775746 -0.186240 0.093749 +v -0.787949 -0.124799 0.100423 +v -0.787970 -0.124803 0.093749 +v -0.795308 -0.062592 0.100423 +v -0.795330 -0.062594 0.093749 +v 0.563121 -0.568185 0.099786 +v 0.567138 -0.567129 0.100118 +v 0.567460 -0.566831 0.093985 +v 0.563135 -0.568199 0.093590 +v 0.549819 -0.579544 0.100264 +v 0.549833 -0.579559 0.093709 +v 0.416832 -0.680208 0.100423 +v 0.468236 -0.645993 0.100423 +v 0.468249 -0.646011 0.093749 +v 0.416844 -0.680227 0.093749 +v 0.362181 -0.710819 0.100423 +v 0.362190 -0.710838 0.093749 +v 0.305292 -0.737041 0.100423 +v 0.305301 -0.737061 0.093749 +v 0.246525 -0.758725 0.100423 +v 0.246532 -0.758746 0.093749 +v 0.186235 -0.775725 0.100423 +v 0.186240 -0.775746 0.093749 +v 0.124799 -0.787949 0.100423 +v 0.124802 -0.787970 0.093749 +v 0.062592 -0.795308 0.100423 +v 0.062594 -0.795330 0.093749 +v -0.072180 -0.917130 0.119519 +v 0.000000 -0.919971 0.119519 +v -0.143915 -0.908644 0.119519 +v -0.214762 -0.894547 0.119519 +v -0.284287 -0.874944 0.119519 +v -0.352056 -0.849938 0.119519 +v -0.417658 -0.819700 0.119519 +v -0.480681 -0.784400 0.119519 +v -0.540745 -0.744272 0.119519 +v -0.597470 -0.699548 0.119519 +v -0.650517 -0.650517 0.119519 +v -0.699547 -0.597470 0.119519 +v -0.744271 -0.540745 0.119519 +v -0.784400 -0.480681 0.119519 +v -0.819700 -0.417658 0.119519 +v -0.849938 -0.352056 0.119519 +v -0.874944 -0.284287 0.119519 +v -0.894547 -0.214762 0.119519 +v -0.908644 -0.143915 0.119519 +v -0.917130 -0.072180 0.119519 +v 0.650456 -0.654504 0.117805 +v 0.654626 -0.651296 0.114935 +v 0.634307 -0.668138 0.119091 +v 0.480681 -0.784400 0.119519 +v 0.539957 -0.744944 0.119519 +v 0.417658 -0.819700 0.119519 +v 0.352056 -0.849938 0.119519 +v 0.284287 -0.874944 0.119519 +v 0.214762 -0.894547 0.119519 +v 0.143915 -0.908644 0.119519 +v 0.072180 -0.917130 0.119519 +v -0.082252 -1.045108 0.157730 +v 0.000000 -1.048345 0.157730 +v -0.163997 -1.035438 0.157730 +v -0.244730 -1.019374 0.157730 +v -0.323957 -0.997035 0.157730 +v -0.401183 -0.968540 0.157730 +v -0.475938 -0.934082 0.157730 +v -0.547756 -0.893857 0.157730 +v -0.616201 -0.848129 0.157730 +v -0.680842 -0.797164 0.157730 +v -0.741292 -0.741292 0.157730 +v -0.797164 -0.680842 0.157730 +v -0.848129 -0.616201 0.157730 +v -0.893857 -0.547756 0.157730 +v -0.934082 -0.475939 0.157730 +v -0.968540 -0.401183 0.157730 +v -0.997035 -0.323957 0.157730 +v -1.019374 -0.244730 0.157730 +v -1.035438 -0.163998 0.157730 +v -1.045108 -0.082252 0.157730 +v 0.741785 -0.746647 0.156792 +v 0.747481 -0.744350 0.155220 +v 0.722961 -0.761574 0.157496 +v 0.547755 -0.893857 0.157730 +v 0.615304 -0.848895 0.157730 +v 0.475939 -0.934082 0.157730 +v 0.401182 -0.968540 0.157730 +v 0.323957 -0.997035 0.157730 +v 0.244730 -1.019374 0.157730 +v 0.163997 -1.035438 0.157730 +v 0.082252 -1.045108 0.157730 +v -0.102451 -1.301758 0.087791 +v 0.000000 -1.305789 0.087791 +v 0.000000 -1.285754 0.093786 +v -0.100879 -1.281785 0.093786 +v -0.204271 -1.289713 0.087791 +v -0.201136 -1.269924 0.093786 +v -0.304829 -1.269704 0.087791 +v -0.300152 -1.250223 0.093786 +v -0.403511 -1.241879 0.087791 +v -0.397320 -1.222825 0.093786 +v -0.499702 -1.206386 0.087791 +v -0.492034 -1.187876 0.093786 +v -0.592815 -1.163467 0.087791 +v -0.583720 -1.145615 0.093786 +v -0.682269 -1.113363 0.087791 +v -0.671801 -1.096280 0.093786 +v -0.767523 -1.056405 0.087791 +v -0.755747 -1.040197 0.093786 +v -0.848038 -0.992925 0.087791 +v -0.835026 -0.977690 0.093786 +v -0.923332 -0.923332 0.087791 +v -0.909165 -0.909165 0.093786 +v -0.992925 -0.848038 0.087791 +v -0.977690 -0.835026 0.093786 +v -1.056406 -0.767523 0.087791 +v -1.040197 -0.755747 0.093786 +v -1.113363 -0.682269 0.087791 +v -1.096280 -0.671801 0.093786 +v -1.163467 -0.592815 0.087791 +v -1.145615 -0.583720 0.093786 +v -1.206386 -0.499702 0.087791 +v -1.187876 -0.492035 0.093786 +v -1.241879 -0.403511 0.087791 +v -1.222825 -0.397320 0.093786 +v -1.269704 -0.304829 0.087791 +v -1.250223 -0.300152 0.093786 +v -1.289713 -0.204271 0.087791 +v -1.269924 -0.201136 0.093786 +v -1.301758 -0.102451 0.087791 +v -1.281784 -0.100879 0.093786 +v 0.921832 -0.928325 0.086660 +v 0.925384 -0.922655 0.084766 +v 0.911190 -0.908430 0.090761 +v 0.907690 -0.914056 0.092655 +v 0.899971 -0.948176 0.087509 +v 0.886163 -0.933622 0.093503 +v 0.682269 -1.113363 0.087791 +v 0.766406 -1.057360 0.087791 +v 0.754646 -1.041137 0.093786 +v 0.671801 -1.096280 0.093786 +v 0.592815 -1.163467 0.087791 +v 0.583719 -1.145615 0.093786 +v 0.499702 -1.206386 0.087791 +v 0.492035 -1.187876 0.093786 +v 0.403511 -1.241879 0.087791 +v 0.397320 -1.222825 0.093786 +v 0.304829 -1.269704 0.087791 +v 0.300152 -1.250223 0.093786 +v 0.204270 -1.289713 0.087791 +v 0.201136 -1.269924 0.093786 +v 0.102451 -1.301758 0.087791 +v 0.100879 -1.281785 0.093786 +v -0.097903 -1.243977 0.323170 +v 0.000000 -1.247829 0.323170 +v -0.195204 -1.232466 0.323170 +v -0.291299 -1.213346 0.323170 +v -0.385601 -1.186756 0.323170 +v -0.477522 -1.152838 0.323170 +v -0.566502 -1.111824 0.323170 +v -0.651985 -1.063944 0.323170 +v -0.733455 -1.009515 0.323170 +v -0.810396 -0.948852 0.323170 +v -0.882348 -0.882348 0.323170 +v -0.948852 -0.810396 0.323170 +v -1.009515 -0.733455 0.323170 +v -1.063944 -0.651985 0.323170 +v -1.111824 -0.566502 0.323170 +v -1.152838 -0.477522 0.323170 +v -1.186756 -0.385601 0.323170 +v -1.213346 -0.291299 0.323170 +v -1.232466 -0.195204 0.323170 +v -1.243977 -0.097903 0.323170 +v 0.880823 -0.886949 0.322021 +v 0.884066 -0.881246 0.320097 +v 0.878257 -0.875423 0.334549 +v 0.874750 -0.880820 0.336770 +v 0.860001 -0.906047 0.322883 +v 0.651985 -1.063944 0.323170 +v 0.732387 -1.010427 0.323170 +v 0.566503 -1.111824 0.323170 +v 0.477521 -1.152838 0.323170 +v 0.385601 -1.186756 0.323170 +v 0.291299 -1.213346 0.323170 +v 0.195204 -1.232466 0.323170 +v 0.097903 -1.243976 0.323170 +v -0.099922 -1.269625 0.102785 +v 0.000000 -1.273557 0.102785 +v -0.199228 -1.257877 0.102785 +v -0.297305 -1.238363 0.102785 +v -0.393551 -1.211224 0.102785 +v -0.487366 -1.176607 0.102785 +v -0.578182 -1.134747 0.102785 +v -0.665428 -1.085880 0.102785 +v -0.748577 -1.030329 0.102785 +v -0.827105 -0.968415 0.102785 +v -0.900540 -0.900540 0.102785 +v -0.968415 -0.827104 0.102785 +v -1.030329 -0.748577 0.102785 +v -1.085880 -0.665428 0.102785 +v -1.134747 -0.578182 0.102785 +v -1.176607 -0.487367 0.102785 +v -1.211224 -0.393551 0.102785 +v -1.238362 -0.297305 0.102785 +v -1.257877 -0.199228 0.102785 +v -1.269625 -0.099922 0.102785 +v 0.899080 -0.905369 0.101654 +v 0.902549 -0.899769 0.099760 +v 0.877757 -0.924761 0.102502 +v 0.665428 -1.085880 0.102785 +v 0.747487 -1.031260 0.102785 +v 0.578182 -1.134747 0.102785 +v 0.487367 -1.176608 0.102785 +v 0.393551 -1.211224 0.102785 +v 0.297305 -1.238363 0.102785 +v 0.199228 -1.257877 0.102785 +v 0.099922 -1.269625 0.102785 +v 0.856715 -0.862621 0.356349 +v 0.860575 -0.857700 0.353734 +v 0.783034 -0.772817 0.344619 +v 0.777674 -0.774612 0.349172 +v 0.793399 -0.783180 0.349748 +v 0.774159 -0.763942 0.336274 +v 0.768395 -0.765312 0.340506 +v 0.786479 -0.771289 0.336409 +v 0.778665 -0.764764 0.331848 +v 0.796890 -0.781698 0.340606 +v 0.767741 -0.757525 0.324899 +v 0.761519 -0.758419 0.328692 +v 0.763480 -0.753265 0.297724 +v 0.775549 -0.760359 0.322084 +v 0.772045 -0.756856 0.294823 +v 0.872281 -0.862056 0.341685 +v 0.870245 -0.867393 0.346125 +v 0.879905 -0.869679 0.330538 +v 0.862958 -0.852733 0.349012 +v 0.873512 -0.858309 0.332940 +v 0.864131 -0.848930 0.339263 +v 0.879107 -0.865194 0.326331 +v 0.885203 -0.874977 0.316624 +v 0.888483 -0.878257 0.290167 +v 0.882643 -0.867439 0.314735 +v 0.885101 -0.869897 0.288083 +v 0.852561 -0.842338 0.351469 +v 0.804285 -0.794065 0.351480 +v 0.854002 -0.838802 0.341455 +v 0.807564 -0.792370 0.341944 +v 0.761077 -0.750862 0.241984 +v 0.769942 -0.754753 0.239833 +v 0.758521 -0.748306 0.184572 +v 0.767396 -0.752208 0.182985 +v 0.890050 -0.879824 0.241394 +v 0.886324 -0.871119 0.239697 +v 0.890640 -0.880414 0.191637 +v 0.886787 -0.871583 0.190509 +v 0.753802 -0.743587 0.152383 +v 0.746057 -0.735843 0.134818 +v 0.762561 -0.747373 0.150151 +v 0.754556 -0.739369 0.131487 +v 0.658679 -0.648473 0.109753 +v 0.708700 -0.698490 0.112635 +v 0.611091 -0.600890 0.109753 +v 0.661674 -0.646501 0.102284 +v 0.614469 -0.599302 0.102284 +v 0.719233 -0.703455 0.104617 +v 0.592666 -0.582467 0.109753 +v 0.583786 -0.574225 0.106900 +v 0.596172 -0.581007 0.102284 +v 0.586531 -0.572315 0.099216 +v 0.734425 -0.724212 0.121279 +v 0.742500 -0.727315 0.117151 +v 0.573723 -0.568624 0.102389 +v 0.574971 -0.567391 0.095490 +v 0.575402 -0.566994 0.087082 +v 0.567581 -0.566745 0.086047 +v 0.575426 -0.567017 0.077358 +v 0.567603 -0.566767 0.076652 +v 0.587455 -0.571688 0.089953 +v 0.587470 -0.571703 0.079312 +v 0.926863 -0.916633 0.081346 +v 0.940402 -0.930170 0.076865 +v 0.912652 -0.902423 0.087341 +v 0.926964 -0.911754 0.075451 +v 0.908264 -0.892459 0.080998 +v 0.940630 -0.925418 0.071780 +v 0.947036 -0.936804 0.072405 +v 0.949827 -0.939595 0.067461 +v 0.947493 -0.932280 0.068629 +v 0.949645 -0.935723 0.066003 +v 0.951838 -0.941605 0.061526 +v 0.953133 -0.942900 0.052903 +v 0.951095 -0.935881 0.061515 +v 0.952120 -0.936906 0.052901 +v 0.904000 -0.893772 0.096340 +v 0.898732 -0.888504 0.108735 +v 0.899115 -0.883909 0.092947 +v 0.894303 -0.879097 0.105871 +v 0.894672 -0.884445 0.124917 +v 0.892024 -0.881797 0.143282 +v 0.890423 -0.875218 0.123088 +v 0.887852 -0.872648 0.142360 +v 0.953777 -0.943544 0.039899 +v 0.952515 -0.937301 0.039899 +v 0.954025 -0.943792 0.028075 +v 0.952577 -0.937363 0.028075 +v 0.662672 -0.645843 0.092555 +v 0.713620 -0.696783 0.092482 +v 0.615595 -0.598773 0.092555 +v 0.662672 -0.645843 0.081085 +v 0.615595 -0.598773 0.081085 +v 0.713359 -0.696523 0.080989 +v 0.597340 -0.580521 0.092555 +v 0.597340 -0.580521 0.081085 +v 0.878030 -0.861168 0.121966 +v 0.880444 -0.863581 0.104644 +v 0.876611 -0.859748 0.141161 +v 0.862398 -0.845538 0.121238 +v 0.862581 -0.845721 0.139892 +v 0.862900 -0.846040 0.104326 +v -0.098690 -1.253974 0.163136 +v 0.000000 -1.257857 0.163136 +v -0.196772 -1.242371 0.163136 +v -0.293640 -1.223097 0.163136 +v -0.388700 -1.196293 0.163136 +v -0.481358 -1.162103 0.163136 +v -0.571055 -1.120759 0.163136 +v -0.657225 -1.072494 0.163136 +v -0.739350 -1.017628 0.163136 +v -0.816909 -0.956478 0.163136 +v -0.889439 -0.889439 0.163136 +v -0.956478 -0.816909 0.163136 +v -1.017628 -0.739350 0.163136 +v -1.072494 -0.657225 0.163136 +v -1.120759 -0.571055 0.163136 +v -1.162103 -0.481359 0.163136 +v -1.196293 -0.388700 0.163136 +v -1.223097 -0.293640 0.163136 +v -1.242371 -0.196773 0.163136 +v -1.253974 -0.098690 0.163136 +v 0.887669 -0.893858 0.162977 +v 0.890547 -0.887743 0.162710 +v 0.866854 -0.913274 0.163096 +v 0.657225 -1.072494 0.163136 +v 0.738273 -1.018547 0.163136 +v 0.571054 -1.120759 0.163136 +v 0.481359 -1.162103 0.163136 +v 0.388699 -1.196293 0.163136 +v 0.293640 -1.223097 0.163136 +v 0.196772 -1.242371 0.163136 +v 0.098690 -1.253974 0.163136 +v 0.890989 -0.880762 0.162228 +v 0.886969 -0.871764 0.161448 +v 0.876459 -0.859596 0.160290 +v 0.876715 -0.859853 0.189548 +v 0.863399 -0.846539 0.159009 +v 0.864199 -0.847338 0.188713 +v 0.876519 -0.859657 0.239131 +v 0.875877 -0.859015 0.288612 +v 0.864325 -0.847465 0.239129 +v 0.864229 -0.847369 0.290125 +v 0.757269 -0.740425 0.116337 +v 0.768228 -0.751382 0.131357 +v 0.783655 -0.766808 0.132753 +v 0.774458 -0.757612 0.117139 +v 0.747439 -0.730597 0.103813 +v 0.766061 -0.749216 0.103897 +v 0.775570 -0.758724 0.150397 +v 0.780024 -0.763177 0.183101 +v 0.793788 -0.776938 0.184019 +v 0.789931 -0.773082 0.151805 +v 0.782318 -0.765470 0.239117 +v 0.783843 -0.766995 0.293904 +v 0.796665 -0.779815 0.293811 +v 0.795727 -0.778877 0.239119 +v 0.797420 -0.780570 0.133998 +v 0.789795 -0.772946 0.117854 +v 0.782868 -0.766020 0.103961 +v 0.806067 -0.789216 0.184837 +v 0.802744 -0.785893 0.153061 +v 0.808300 -0.791448 0.293390 +v 0.807691 -0.790839 0.239121 +v 0.848430 -0.831572 0.120587 +v 0.850044 -0.833186 0.138758 +v 0.847415 -0.830557 0.104186 +v 0.851729 -0.834871 0.157865 +v 0.853014 -0.836156 0.187967 +v 0.853429 -0.836570 0.239127 +v 0.853575 -0.836716 0.290989 +v 0.785989 -0.769141 0.322919 +v 0.797515 -0.780665 0.324800 +v 0.808580 -0.791728 0.325122 +v 0.854053 -0.837194 0.323196 +v 0.864360 -0.847499 0.321568 +v 0.874793 -0.857931 0.317565 +v -0.062601 -0.795417 0.066031 +v 0.000000 -0.797880 0.066031 +v 0.000000 -0.797913 0.054030 +v -0.062603 -0.795449 0.054030 +v -0.062598 -0.795386 0.076417 +v 0.000000 -0.797849 0.076417 +v -0.124816 -0.788057 0.066031 +v -0.124811 -0.788026 0.076417 +v -0.124821 -0.788089 0.054030 +v -0.186261 -0.775831 0.066031 +v -0.186268 -0.775863 0.054030 +v -0.186253 -0.775801 0.076417 +v -0.246559 -0.758829 0.066031 +v -0.246549 -0.758799 0.076417 +v -0.246569 -0.758860 0.054030 +v -0.305334 -0.737141 0.066031 +v -0.305347 -0.737172 0.054030 +v -0.305322 -0.737113 0.076417 +v -0.362230 -0.710916 0.066031 +v -0.362216 -0.710889 0.076417 +v -0.362245 -0.710945 0.054030 +v -0.416890 -0.680301 0.066031 +v -0.416907 -0.680329 0.054030 +v -0.416873 -0.680275 0.076417 +v -0.468983 -0.645498 0.066031 +v -0.468964 -0.645473 0.076417 +v -0.469002 -0.645525 0.054030 +v -0.518180 -0.606710 0.066031 +v -0.518201 -0.606735 0.054030 +v -0.518160 -0.606686 0.076417 +v -0.564186 -0.564186 0.066031 +v -0.564164 -0.564164 0.076417 +v -0.564209 -0.564209 0.054030 +v -0.606710 -0.518180 0.066031 +v -0.606734 -0.518201 0.054030 +v -0.606686 -0.518160 0.076417 +v -0.645498 -0.468983 0.066031 +v -0.645473 -0.468964 0.076417 +v -0.645525 -0.469002 0.054030 +v -0.680301 -0.416890 0.066031 +v -0.680329 -0.416907 0.054030 +v -0.680274 -0.416874 0.076417 +v -0.710916 -0.362230 0.066031 +v -0.710889 -0.362216 0.076417 +v -0.710945 -0.362245 0.054030 +v -0.737141 -0.305335 0.066031 +v -0.737172 -0.305347 0.054030 +v -0.737113 -0.305322 0.076417 +v -0.758829 -0.246559 0.066031 +v -0.758799 -0.246549 0.076417 +v -0.758860 -0.246569 0.054030 +v -0.775831 -0.186261 0.066031 +v -0.775863 -0.186269 0.054030 +v -0.775800 -0.186254 0.076417 +v -0.788057 -0.124816 0.066031 +v -0.788026 -0.124811 0.076417 +v -0.788089 -0.124821 0.054030 +v -0.795417 -0.062601 0.066031 +v -0.795449 -0.062603 0.054030 +v -0.795386 -0.062598 0.076417 +v 0.563196 -0.568261 0.066031 +v 0.567625 -0.566790 0.066150 +v 0.567649 -0.566813 0.054060 +v 0.563219 -0.568284 0.054030 +v 0.563174 -0.568239 0.076417 +v 0.549893 -0.579623 0.066031 +v 0.549872 -0.579600 0.076417 +v 0.549916 -0.579646 0.054030 +v 0.416890 -0.680301 0.066031 +v 0.468300 -0.646082 0.066031 +v 0.468319 -0.646108 0.054030 +v 0.416907 -0.680329 0.054030 +v 0.416873 -0.680275 0.076417 +v 0.468281 -0.646056 0.076417 +v 0.362230 -0.710916 0.066031 +v 0.362216 -0.710889 0.076417 +v 0.362245 -0.710945 0.054030 +v 0.305334 -0.737142 0.066031 +v 0.305347 -0.737172 0.054030 +v 0.305322 -0.737113 0.076417 +v 0.246559 -0.758829 0.066031 +v 0.246549 -0.758799 0.076417 +v 0.246569 -0.758860 0.054030 +v 0.186261 -0.775831 0.066031 +v 0.186268 -0.775863 0.054030 +v 0.186253 -0.775801 0.076417 +v 0.124816 -0.788057 0.066031 +v 0.124811 -0.788026 0.076417 +v 0.124821 -0.788089 0.054030 +v 0.062601 -0.795417 0.066031 +v 0.062603 -0.795449 0.054030 +v 0.062598 -0.795386 0.076417 +v 0.575502 -0.567093 0.039899 +v 0.567674 -0.566838 0.039899 +v 0.575475 -0.567067 0.054149 +v 0.575523 -0.567114 0.028075 +v 0.587518 -0.571752 0.039899 +v 0.587532 -0.571765 0.028075 +v 0.587501 -0.571735 0.054396 +v 0.662672 -0.645843 0.039899 +v 0.615595 -0.598773 0.039899 +v 0.615595 -0.598773 0.054621 +v 0.662672 -0.645843 0.054621 +v 0.662672 -0.645843 0.028075 +v 0.615595 -0.598773 0.028075 +v 0.712802 -0.695965 0.039899 +v 0.712802 -0.695965 0.028075 +v 0.712873 -0.696036 0.054605 +v 0.597340 -0.580521 0.039899 +v 0.597340 -0.580521 0.054621 +v 0.597340 -0.580521 0.028075 +v 0.740213 -0.723372 0.039899 +v 0.740495 -0.723654 0.054559 +v 0.740213 -0.723372 0.028075 +v 0.756981 -0.740138 0.039899 +v 0.756981 -0.740138 0.028075 +v 0.757430 -0.740586 0.054495 +v 0.925463 -0.908594 0.022996 +v 0.923529 -0.910824 0.021715 +v 0.905153 -0.892408 0.021715 +v 0.907073 -0.890206 0.022996 +v 0.940016 -0.923144 0.022996 +v 0.938083 -0.925408 0.021715 +v 0.925463 -0.908594 0.028075 +v 0.940016 -0.923144 0.028075 +v 0.907073 -0.890206 0.028075 +v 0.948480 -0.931607 0.022996 +v 0.946488 -0.933830 0.021715 +v 0.952603 -0.937390 0.022996 +v 0.950669 -0.939474 0.021715 +v 0.948480 -0.931607 0.028075 +v 0.947979 -0.931106 0.062460 +v 0.948355 -0.931482 0.053137 +v 0.940119 -0.923248 0.053544 +v 0.940430 -0.923558 0.064089 +v 0.926384 -0.909514 0.066129 +v 0.925694 -0.908824 0.054054 +v 0.907282 -0.890416 0.054409 +v 0.907912 -0.891045 0.067548 +v 0.887093 -0.870229 0.022996 +v 0.885280 -0.872496 0.021715 +v 0.865659 -0.852835 0.021715 +v 0.867361 -0.850500 0.022996 +v 0.887093 -0.870229 0.028075 +v 0.867361 -0.850500 0.028075 +v 0.848037 -0.835175 0.021715 +v 0.773391 -0.760370 0.021715 +v 0.775181 -0.758335 0.022996 +v 0.849715 -0.832857 0.022996 +v 0.849715 -0.832857 0.028075 +v 0.775181 -0.758335 0.028075 +v 0.755197 -0.742137 0.021715 +v 0.756981 -0.740138 0.022996 +v 0.743486 -0.726644 0.092263 +v 0.762185 -0.745341 0.091964 +v 0.742442 -0.725601 0.080702 +v 0.760526 -0.743681 0.080306 +v 0.776718 -0.759871 0.067616 +v 0.775566 -0.758719 0.054426 +v 0.758776 -0.741932 0.067890 +v 0.849526 -0.832668 0.054146 +v 0.848961 -0.832103 0.066498 +v 0.778216 -0.761369 0.079886 +v 0.848226 -0.831368 0.078173 +v 0.847528 -0.830671 0.090392 +v 0.864135 -0.847275 0.090437 +v 0.779637 -0.762790 0.091653 +v 0.865540 -0.848679 0.078283 +v 0.887083 -0.870219 0.067312 +v 0.887090 -0.870227 0.054350 +v 0.867158 -0.850297 0.054166 +v 0.866549 -0.849688 0.066577 +v 0.886202 -0.869339 0.079376 +v 0.575450 -0.567042 0.066507 +v 0.587485 -0.571719 0.067497 +v 0.662672 -0.645843 0.068395 +v 0.615595 -0.598773 0.068395 +v 0.713084 -0.696247 0.068333 +v 0.597340 -0.580521 0.068395 +v -0.062596 -0.795356 0.085702 +v 0.000000 -0.797819 0.085702 +v -0.124807 -0.787997 0.085702 +v -0.186247 -0.775772 0.085702 +v -0.246540 -0.758771 0.085702 +v -0.305311 -0.737085 0.085702 +v -0.362203 -0.710862 0.085702 +v -0.416858 -0.680249 0.085702 +v -0.468947 -0.645449 0.085702 +v -0.518139 -0.606663 0.085702 +v -0.564143 -0.564143 0.085702 +v -0.606663 -0.518139 0.085702 +v -0.645449 -0.468947 0.085702 +v -0.680249 -0.416858 0.085702 +v -0.710862 -0.362203 0.085702 +v -0.737085 -0.305311 0.085702 +v -0.758771 -0.246540 0.085702 +v -0.775772 -0.186247 0.085702 +v -0.787997 -0.124807 0.085702 +v -0.795356 -0.062596 0.085702 +v 0.563153 -0.568217 0.085702 +v 0.549851 -0.579579 0.085702 +v 0.416858 -0.680249 0.085702 +v 0.468264 -0.646032 0.085702 +v 0.362202 -0.710862 0.085702 +v 0.305311 -0.737085 0.085702 +v 0.246540 -0.758771 0.085702 +v 0.186246 -0.775772 0.085702 +v 0.124806 -0.787997 0.085702 +v 0.062596 -0.795356 0.085702 +v 0.741342 -0.724501 0.068147 +v 0.883579 -0.866716 0.091134 +v 0.515490 -0.609093 0.039899 +v 0.515469 -0.609067 0.054030 +v 0.549939 -0.579671 0.039899 +v 0.468339 -0.646136 0.039899 +v 0.515509 -0.609114 0.028075 +v 0.520222 -0.614684 0.111857 +v 0.526586 -0.622202 0.117523 +v 0.516582 -0.610383 0.106276 +v 0.726353 -0.858244 0.360559 +v 0.811624 -0.958999 0.244878 +v 0.812239 -0.959726 0.193502 +v 0.809878 -0.956936 0.295392 +v 0.866314 -1.023619 0.062279 +v 0.867605 -1.025145 0.053092 +v 0.864483 -1.021456 0.069397 +v 0.755837 -0.760825 0.330792 +v 0.762945 -0.767998 0.342849 +v 0.866548 -0.872543 0.348583 +v 0.772419 -0.777559 0.351694 +v 0.815119 -0.963128 0.128281 +v 0.818164 -0.966727 0.114410 +v 0.813350 -0.961039 0.144491 +v 0.861940 -1.018452 0.076381 +v 0.855898 -1.011313 0.082693 +v 0.869349 -1.027205 0.022996 +v 0.868477 -1.026175 0.021715 +v 0.926618 -0.976052 0.021715 +v 0.927430 -0.977122 0.022996 +v 0.789829 -1.089675 0.022996 +v 0.789037 -1.088582 0.021715 +v 0.869102 -1.026914 0.028075 +v 0.683212 -0.807270 0.246404 +v 0.681040 -0.804704 0.188328 +v 0.662279 -0.782536 0.130196 +v 0.671212 -0.793091 0.142417 +v 0.640099 -0.756329 0.122188 +v 0.533242 -0.630068 0.119519 +v 0.550261 -0.650178 0.119519 +v 0.515378 -0.608959 0.100423 +v 0.515392 -0.608976 0.093749 +v 0.594320 -0.702237 0.119519 +v 0.677253 -0.800229 0.157730 +v 0.843568 -0.996743 0.087791 +v 0.830625 -0.981449 0.093786 +v 0.806124 -0.952500 0.323170 +v 0.822745 -0.972139 0.102785 +v 0.773517 -0.913972 0.360548 +v 0.812603 -0.960155 0.163136 +v 0.515447 -0.609043 0.066031 +v 0.515428 -0.609019 0.076417 +v 0.515409 -0.608996 0.085702 +v 0.865696 -1.022889 0.021288 +v 0.786510 -1.085097 0.021288 +v 0.924010 -0.972661 0.021288 +v 0.861814 -1.018302 0.021288 +v 0.920206 -0.968011 0.021288 +v 0.782983 -1.080230 0.021288 +v 0.420796 -0.686677 0.021288 +v 0.472688 -0.652136 0.021288 +v 0.365625 -0.717579 0.021288 +v 0.426946 -0.696712 0.021288 +v 0.370968 -0.728066 0.021288 +v 0.479597 -0.661667 0.021288 +v 0.512810 -1.238032 0.021288 +v 0.514457 -1.242009 0.021715 +v 0.415426 -1.278550 0.021715 +v 0.414096 -1.274456 0.021288 +v 0.608366 -1.193987 0.021288 +v 0.610320 -1.197822 0.021715 +v 0.510509 -1.232480 0.021288 +v 0.605637 -1.188632 0.021288 +v 0.412239 -1.268741 0.021288 +v 0.188006 -0.783101 0.021288 +v 0.248869 -0.765940 0.021288 +v 0.125986 -0.795442 0.021288 +v 0.190754 -0.794546 0.021288 +v 0.127827 -0.807067 0.021288 +v 0.252506 -0.777134 0.021288 +v 0.105138 -1.335906 0.021288 +v 0.105476 -1.340197 0.021715 +v 0.000000 -1.344347 0.021715 +v 0.000000 -1.340043 0.021288 +v 0.209629 -1.323545 0.021288 +v 0.210302 -1.327797 0.021715 +v 0.104666 -1.329914 0.021288 +v 0.208689 -1.317609 0.021288 +v 0.000000 -1.334033 0.021288 +v -0.063187 -0.802871 0.021288 +v 0.000000 -0.805357 0.021288 +v -0.125986 -0.795442 0.021288 +v -0.064111 -0.814604 0.021288 +v -0.127827 -0.807067 0.021288 +v 0.000000 -0.817127 0.021288 +v -0.312826 -1.303011 0.021288 +v -0.313830 -1.307197 0.021715 +v -0.415427 -1.278550 0.021715 +v -0.414096 -1.274456 0.021288 +v -0.209629 -1.323545 0.021288 +v -0.210303 -1.327797 0.021715 +v -0.311423 -1.297167 0.021288 +v -0.208689 -1.317609 0.021288 +v -0.412239 -1.268741 0.021288 +v -0.512810 -1.238032 0.021288 +v -0.514457 -1.242009 0.021715 +v -0.610321 -1.197822 0.021715 +v -0.608366 -1.193987 0.021288 +v -0.510509 -1.232480 0.021288 +v -0.605638 -1.188632 0.021288 +v -0.420796 -0.686677 0.021288 +v -0.365625 -0.717578 0.021288 +v -0.473378 -0.651548 0.021288 +v -0.426946 -0.696712 0.021288 +v -0.480296 -0.661070 0.021288 +v -0.370968 -0.728066 0.021288 +v -0.870284 -1.018972 0.021288 +v -0.873079 -1.022245 0.021715 +v -0.950597 -0.950597 0.021715 +v -0.947553 -0.947553 0.021289 +v -0.787657 -1.084117 0.021288 +v -0.790187 -1.087600 0.021715 +v -0.866381 -1.014401 0.021288 +v -0.784124 -1.079255 0.021288 +v -0.943303 -0.943303 0.021288 +v -0.612395 -0.523036 0.021288 +v -0.569473 -0.569473 0.021288 +v -0.651547 -0.473378 0.021288 +v -0.621345 -0.530680 0.021288 +v -0.661070 -0.480296 0.021288 +v -0.577796 -0.577796 0.021288 +v -1.142569 -0.700167 0.021289 +v -1.146239 -0.702416 0.021715 +v -1.197822 -0.610320 0.021715 +v -1.193987 -0.608366 0.021289 +v -1.084117 -0.787657 0.021289 +v -1.087600 -0.790187 0.021715 +v -1.137444 -0.697027 0.021289 +v -1.079255 -0.784124 0.021289 +v -1.188632 -0.605638 0.021289 +v -0.744049 -0.308196 0.021288 +v -0.717578 -0.365625 0.021288 +v -0.765940 -0.248870 0.021288 +v -0.754923 -0.312700 0.021288 +v -0.777134 -0.252506 0.021288 +v -0.728066 -0.370968 0.021288 +v -1.303011 -0.312825 0.021289 +v -1.307197 -0.313830 0.021715 +v -1.327796 -0.210303 0.021715 +v -1.323545 -0.209629 0.021289 +v -1.274456 -0.414096 0.021289 +v -1.278550 -0.415426 0.021715 +v -1.297167 -0.311423 0.021289 +v -1.268740 -0.412239 0.021289 +v -1.317609 -0.208689 0.021289 +v -0.802871 -0.063187 0.021288 +v -0.795442 -0.125986 0.021288 +v -0.814604 -0.064111 0.021288 +v -0.807067 -0.127827 0.021288 +v 0.520279 -0.614750 0.021288 +v 0.555586 -0.584541 0.021288 +v 0.564153 -0.592629 0.021288 +v 0.527882 -0.623734 0.021288 +v 0.516707 -0.610531 0.021715 +v 0.308196 -0.744050 0.021288 +v 0.312700 -0.754924 0.021288 +v 0.063187 -0.802871 0.021288 +v 0.064111 -0.814604 0.021288 +v -0.188006 -0.783101 0.021288 +v -0.190754 -0.794546 0.021288 +v -0.248869 -0.765940 0.021288 +v -0.252507 -0.777134 0.021288 +v -0.308196 -0.744050 0.021288 +v -0.312700 -0.754924 0.021288 +v -0.523036 -0.612395 0.021288 +v -0.530680 -0.621345 0.021288 +v -0.686676 -0.420797 0.021288 +v -0.696712 -0.426946 0.021288 +v -0.783101 -0.188006 0.021288 +v -0.794546 -0.190754 0.021288 +v 0.433806 -0.707907 0.021288 +v 0.376929 -0.739764 0.021288 +v 0.447446 -0.730166 0.021288 +v 0.388781 -0.763025 0.021288 +v 0.487303 -0.672299 0.021288 +v 0.502625 -0.693438 0.021288 +v 0.193819 -0.807313 0.021288 +v 0.129881 -0.820035 0.021288 +v 0.199913 -0.832697 0.021288 +v 0.133965 -0.845819 0.021288 +v 0.256564 -0.789621 0.021288 +v 0.264631 -0.814449 0.021288 +v -0.065141 -0.827693 0.021288 +v -0.129881 -0.820035 0.021288 +v -0.067189 -0.853719 0.021288 +v -0.133965 -0.845819 0.021288 +v 0.000000 -0.830257 0.021288 +v 0.000000 -0.856363 0.021288 +v -0.433806 -0.707907 0.021288 +v -0.488013 -0.671692 0.021288 +v -0.447447 -0.730166 0.021288 +v -0.503358 -0.692812 0.021288 +v -0.376929 -0.739764 0.021288 +v -0.388781 -0.763025 0.021288 +v -0.631329 -0.539207 0.021288 +v -0.671692 -0.488013 0.021288 +v -0.651180 -0.556160 0.021288 +v -0.692812 -0.503358 0.021288 +v -0.587080 -0.587080 0.021288 +v -0.605539 -0.605540 0.021288 +v -0.767054 -0.317725 0.021288 +v -0.789621 -0.256564 0.021288 +v -0.791172 -0.327715 0.021288 +v -0.814449 -0.264631 0.021288 +v -0.739764 -0.376929 0.021288 +v -0.763025 -0.388781 0.021288 +v -0.827693 -0.065141 0.021288 +v -0.853719 -0.067189 0.021288 +v -0.820035 -0.129881 0.021288 +v -0.845819 -0.133965 0.021288 +v 0.536364 -0.633757 0.021288 +v 0.573263 -0.602097 0.021288 +v 0.591223 -0.621028 0.021288 +v 0.553228 -0.653684 0.021288 +v 0.317724 -0.767054 0.021288 +v 0.327714 -0.791172 0.021288 +v 0.065141 -0.827693 0.021288 +v 0.067189 -0.853719 0.021288 +v -0.193819 -0.807313 0.021288 +v -0.199913 -0.832697 0.021288 +v -0.256564 -0.789621 0.021288 +v -0.264631 -0.814449 0.021288 +v -0.317724 -0.767054 0.021288 +v -0.327715 -0.791172 0.021288 +v -0.539207 -0.631329 0.021288 +v -0.556160 -0.651180 0.021288 +v -0.707907 -0.433807 0.021288 +v -0.730165 -0.447447 0.021288 +v -0.807313 -0.193819 0.021288 +v -0.832697 -0.199913 0.021288 +v 0.482897 -0.788015 0.021288 +v 0.419583 -0.823478 0.021288 +v 0.520468 -0.849326 0.021288 +v 0.452228 -0.887547 0.021288 +v 0.542446 -0.748377 0.021288 +v 0.584650 -0.806604 0.021288 +v 0.215752 -0.898670 0.021288 +v 0.144578 -0.912832 0.021288 +v 0.232538 -0.968590 0.021288 +v 0.155827 -0.983853 0.021288 +v 0.285597 -0.878976 0.021288 +v 0.307817 -0.947364 0.021288 +v -0.072512 -0.921357 0.021288 +v -0.144579 -0.912832 0.021288 +v -0.078154 -0.993042 0.021288 +v -0.155827 -0.983853 0.021288 +v 0.000000 -0.924211 0.021288 +v 0.000000 -0.996117 0.021288 +v -0.482897 -0.788015 0.021288 +v -0.543237 -0.747702 0.021288 +v -0.520468 -0.849325 0.021288 +v -0.585502 -0.805876 0.021288 +v -0.419583 -0.823477 0.021288 +v -0.452228 -0.887547 0.021288 +v -0.702772 -0.600224 0.021288 +v -0.747702 -0.543237 0.021288 +v -0.757450 -0.646923 0.021288 +v -0.805876 -0.585503 0.021288 +v -0.653515 -0.653515 0.021288 +v -0.704361 -0.704361 0.021288 +v -0.853855 -0.353679 0.021288 +v -0.878976 -0.285597 0.021288 +v -0.920288 -0.381196 0.021289 +v -0.947364 -0.307817 0.021288 +v -0.823477 -0.419583 0.021288 +v -0.887547 -0.452228 0.021288 +v -0.921357 -0.072512 0.021289 +v -0.993042 -0.078154 0.021289 +v -0.912832 -0.144578 0.021289 +v -0.983853 -0.155827 0.021289 +v 0.597060 -0.705474 0.021288 +v 0.637852 -0.670185 0.021288 +v 0.687301 -0.722312 0.021288 +v 0.643513 -0.760362 0.021288 +v 0.353679 -0.853855 0.021288 +v 0.381196 -0.920288 0.021288 +v 0.072512 -0.921357 0.021288 +v 0.078154 -0.993042 0.021288 +v -0.215752 -0.898670 0.021288 +v -0.232538 -0.968590 0.021288 +v -0.285597 -0.878976 0.021288 +v -0.307817 -0.947364 0.021288 +v -0.353679 -0.853855 0.021288 +v -0.381196 -0.920288 0.021288 +v -0.600223 -0.702771 0.021288 +v -0.646923 -0.757450 0.021288 +v -0.788015 -0.482897 0.021288 +v -0.849325 -0.520468 0.021288 +v -0.898670 -0.215752 0.021288 +v -0.968590 -0.232538 0.021289 +v 0.540469 -0.881967 0.021288 +v 0.469608 -0.921657 0.021288 +v 0.552448 -0.901514 0.021288 +v 0.480016 -0.942085 0.021288 +v 0.607119 -0.837603 0.021288 +v 0.620576 -0.856168 0.021288 +v 0.241475 -1.005815 0.021288 +v 0.161816 -1.021665 0.021288 +v 0.246827 -1.028107 0.021288 +v 0.165402 -1.044309 0.021288 +v 0.319647 -0.983773 0.021288 +v 0.326732 -1.005577 0.021288 +v -0.081158 -1.031206 0.021288 +v -0.161816 -1.021665 0.021288 +v -0.082957 -1.054062 0.021288 +v -0.165402 -1.044309 0.021288 +v 0.000000 -1.034400 0.021288 +v 0.000000 -1.057326 0.021288 +v -0.540469 -0.881967 0.021288 +v -0.608005 -0.836847 0.021288 +v -0.552448 -0.901514 0.021288 +v -0.621480 -0.855395 0.021288 +v -0.469608 -0.921657 0.021288 +v -0.480017 -0.942084 0.021288 +v -0.786560 -0.671785 0.021288 +v -0.836847 -0.608005 0.021288 +v -0.803993 -0.686675 0.021288 +v -0.855395 -0.621480 0.021288 +v -0.731431 -0.731431 0.021288 +v -0.747642 -0.747642 0.021288 +v -0.955656 -0.395846 0.021289 +v -0.983773 -0.319647 0.021289 +v -0.976837 -0.404620 0.021289 +v -1.005577 -0.326732 0.021289 +v -0.921657 -0.469608 0.021289 +v -0.942084 -0.480017 0.021288 +v -1.031206 -0.081158 0.021289 +v -1.054062 -0.082957 0.021289 +v -1.021665 -0.161816 0.021289 +v -1.044309 -0.165402 0.021289 +v 0.668244 -0.789584 0.021288 +v 0.713717 -0.750154 0.021288 +v 0.729581 -0.766872 0.021288 +v 0.683055 -0.807085 0.021288 +v 0.395846 -0.955656 0.021288 +v 0.404620 -0.976838 0.021288 +v 0.081158 -1.031206 0.021288 +v 0.082956 -1.054062 0.021288 +v -0.241475 -1.005815 0.021288 +v -0.246827 -1.028107 0.021288 +v -0.319647 -0.983773 0.021288 +v -0.326732 -1.005577 0.021288 +v -0.395846 -0.955656 0.021288 +v -0.404620 -0.976837 0.021288 +v -0.671785 -0.786560 0.021288 +v -0.686675 -0.803993 0.021288 +v -0.881967 -0.540470 0.021288 +v -0.901514 -0.552448 0.021288 +v -1.005814 -0.241475 0.021289 +v -1.028107 -0.246827 0.021289 +v 0.565948 -0.923545 0.021288 +v 0.491746 -0.965106 0.021288 +v 0.540497 -1.060785 0.021288 +v 0.622055 -1.015103 0.021288 +v 0.635741 -0.877090 0.021288 +v 0.698766 -0.964043 0.021288 +v 0.252859 -1.053231 0.021288 +v 0.169444 -1.069829 0.021288 +v 0.186243 -1.175889 0.021288 +v 0.277926 -1.157646 0.021288 +v 0.334716 -1.030150 0.021288 +v 0.367899 -1.132277 0.021288 +v -0.084984 -1.079820 0.021288 +v -0.169444 -1.069829 0.021288 +v -0.186243 -1.175889 0.021288 +v -0.093409 -1.186871 0.021288 +v 0.000000 -1.083164 0.021288 +v 0.000000 -1.190547 0.021288 +v -0.565949 -0.923545 0.021288 +v -0.636667 -0.876298 0.021288 +v -0.699785 -0.963172 0.021288 +v -0.622055 -1.015103 0.021288 +v -0.491747 -0.965106 0.021288 +v -0.540497 -1.060785 0.021288 +v -0.823640 -0.703455 0.021288 +v -0.876298 -0.636668 0.021288 +v -0.963172 -0.699785 0.021289 +v -0.905294 -0.773194 0.021288 +v -0.765912 -0.765912 0.021288 +v -0.841843 -0.841843 0.021288 +v -1.000708 -0.414508 0.021289 +v -1.030150 -0.334716 0.021289 +v -1.132277 -0.367900 0.021289 +v -1.099916 -0.455601 0.021289 +v -0.965106 -0.491747 0.021289 +v -1.060785 -0.540497 0.021289 +v -1.079820 -0.084984 0.021289 +v -1.186871 -0.093409 0.021289 +v -1.069829 -0.169444 0.021289 +v -1.175889 -0.186243 0.021289 +v 0.747373 -0.785626 0.021288 +v 0.821176 -0.863428 0.021288 +v 0.769119 -0.908775 0.021288 +v 0.699747 -0.826807 0.021288 +v 0.414507 -1.000709 0.021288 +v 0.455600 -1.099916 0.021288 +v 0.084984 -1.079820 0.021288 +v 0.093409 -1.186871 0.021288 +v -0.252859 -1.053231 0.021288 +v -0.277927 -1.157646 0.021288 +v -0.334716 -1.030150 0.021288 +v -0.367899 -1.132277 0.021288 +v -0.414507 -1.000709 0.021288 +v -0.455601 -1.099916 0.021288 +v -0.703455 -0.823640 0.021288 +v -0.773194 -0.905294 0.021288 +v -0.923545 -0.565949 0.021289 +v -1.015103 -0.622056 0.021289 +v -1.053231 -0.252859 0.021289 +v -1.157646 -0.277927 0.021289 +v 0.635041 -1.036294 0.021288 +v 0.551780 -1.082930 0.021288 +v 0.713354 -0.984168 0.021288 +v 0.283728 -1.181813 0.021288 +v 0.190131 -1.200437 0.021288 +v 0.375580 -1.155914 0.021288 +v -0.095359 -1.211648 0.021288 +v -0.190131 -1.200437 0.021288 +v 0.000000 -1.215400 0.021288 +v -0.635041 -1.036294 0.021288 +v -0.714394 -0.983279 0.021288 +v -0.551780 -1.082930 0.021288 +v -0.924193 -0.789335 0.021289 +v -0.983279 -0.714394 0.021289 +v -0.859418 -0.859418 0.021288 +v -1.122878 -0.465112 0.021289 +v -1.155914 -0.375580 0.021289 +v -1.082929 -0.551780 0.021289 +v -1.211648 -0.095359 0.021289 +v -1.200437 -0.190131 0.021289 +v 0.857637 -1.013367 0.021288 +v 0.915807 -0.963163 0.021288 +v 0.850290 -1.004686 0.021288 +v 0.907919 -0.954852 0.021288 +v 0.779188 -1.074995 0.021288 +v 0.772513 -1.065786 0.021288 +v 0.508036 -1.226507 0.021288 +v 0.602702 -1.182872 0.021288 +v 0.503684 -1.215999 0.021288 +v 0.597539 -1.172738 0.021288 +v 0.410241 -1.262592 0.021288 +v 0.406727 -1.251775 0.021288 +v 0.104159 -1.323469 0.021288 +v 0.207677 -1.311223 0.021288 +v 0.103267 -1.312131 0.021288 +v 0.205898 -1.299990 0.021288 +v 0.000000 -1.327568 0.021288 +v 0.000000 -1.316194 0.021288 +v -0.309913 -1.290881 0.021288 +v -0.207678 -1.311223 0.021288 +v -0.307258 -1.279822 0.021288 +v -0.205898 -1.299990 0.021288 +v -0.410241 -1.262592 0.021288 +v -0.406727 -1.251775 0.021288 +v -0.508036 -1.226507 0.021288 +v -0.503684 -1.215999 0.021288 +v -0.602703 -1.182871 0.021288 +v -0.597539 -1.172738 0.021288 +v -0.862182 -1.009485 0.021288 +v -0.780324 -1.074025 0.021288 +v -0.854796 -1.000837 0.021288 +v -0.773639 -1.064823 0.021288 +v -0.938732 -0.938732 0.021289 +v -0.930690 -0.930690 0.021288 +v -1.131932 -0.693649 0.021289 +v -1.074025 -0.780324 0.021289 +v -1.122235 -0.687706 0.021289 +v -1.064823 -0.773639 0.021289 +v -1.182871 -0.602703 0.021289 +v -1.172738 -0.597539 0.021289 +v -1.290881 -0.309913 0.021289 +v -1.262592 -0.410241 0.021289 +v -1.279822 -0.307258 0.021289 +v -1.251775 -0.406727 0.021289 +v -1.311223 -0.207677 0.021289 +v -1.299990 -0.205898 0.021289 +v 0.700166 -1.142569 0.021288 +v 0.697026 -1.137444 0.021288 +v 0.702416 -1.146239 0.021715 +v 0.312825 -1.303011 0.021288 +v 0.311422 -1.297167 0.021288 +v 0.313830 -1.307197 0.021715 +v -0.105138 -1.335906 0.021288 +v -0.104667 -1.329914 0.021288 +v -0.105476 -1.340197 0.021715 +v -0.700167 -1.142569 0.021288 +v -0.697026 -1.137444 0.021288 +v -0.702416 -1.146239 0.021715 +v -1.018971 -0.870284 0.021289 +v -1.014401 -0.866380 0.021289 +v -1.022245 -0.873079 0.021715 +v -1.238032 -0.512810 0.021289 +v -1.232480 -0.510509 0.021289 +v -1.242009 -0.514458 0.021715 +v -1.335906 -0.105138 0.021289 +v -1.329914 -0.104667 0.021289 +v -1.340197 -0.105476 0.021715 +v 0.693648 -1.131932 0.021288 +v 0.687706 -1.122235 0.021288 +v 0.309913 -1.290881 0.021288 +v 0.307258 -1.279822 0.021288 +v -0.104159 -1.323469 0.021288 +v -0.103267 -1.312131 0.021288 +v -0.693648 -1.131932 0.021288 +v -0.687706 -1.122235 0.021288 +v -1.009485 -0.862182 0.021289 +v -1.000837 -0.854795 0.021289 +v -1.226507 -0.508036 0.021289 +v -1.215999 -0.503684 0.021289 +v -1.323469 -0.104159 0.021289 +v -1.312131 -0.103267 0.021289 +v 0.836895 -0.988858 0.021288 +v 0.893649 -0.939809 0.021288 +v 0.820089 -0.969001 0.021288 +v 0.875727 -0.920918 0.021288 +v 0.760343 -1.048996 0.021288 +v 0.745074 -1.027931 0.021288 +v 0.495749 -1.196844 0.021288 +v 0.588126 -1.154264 0.021288 +v 0.485793 -1.172809 0.021288 +v 0.576315 -1.131084 0.021288 +v 0.400319 -1.232056 0.021288 +v 0.392280 -1.207314 0.021288 +v 0.101640 -1.291461 0.021288 +v 0.202655 -1.279511 0.021288 +v 0.099599 -1.265526 0.021288 +v 0.198585 -1.253816 0.021288 +v 0.000000 -1.295460 0.021288 +v 0.000000 -1.269445 0.021288 +v -0.302418 -1.259661 0.021288 +v -0.202655 -1.279511 0.021288 +v -0.296345 -1.234364 0.021288 +v -0.198585 -1.253816 0.021288 +v -0.400320 -1.232056 0.021288 +v -0.392280 -1.207314 0.021288 +v -0.495749 -1.196844 0.021288 +v -0.485794 -1.172809 0.021288 +v -0.588126 -1.154264 0.021288 +v -0.576316 -1.131084 0.021288 +v -0.841330 -0.985071 0.021288 +v -0.761452 -1.048049 0.021288 +v -0.824435 -0.965289 0.021288 +v -0.746161 -1.027003 0.021288 +v -0.916029 -0.916028 0.021289 +v -0.897633 -0.897633 0.021288 +v -1.104556 -0.676873 0.021289 +v -1.048049 -0.761452 0.021289 +v -1.082375 -0.663280 0.021289 +v -1.027003 -0.746161 0.021289 +v -1.154264 -0.588126 0.021289 +v -1.131084 -0.576315 0.021289 +v -1.259661 -0.302418 0.021289 +v -1.232056 -0.400320 0.021289 +v -1.234364 -0.296345 0.021289 +v -1.207314 -0.392280 0.021289 +v -1.279511 -0.202655 0.021289 +v -1.253816 -0.198585 0.021289 +v 0.676872 -1.104556 0.021288 +v 0.663280 -1.082375 0.021288 +v 0.302418 -1.259661 0.021288 +v 0.296345 -1.234364 0.021288 +v -0.101640 -1.291461 0.021288 +v -0.099599 -1.265526 0.021288 +v -0.676873 -1.104556 0.021288 +v -0.663280 -1.082375 0.021288 +v -0.985071 -0.841330 0.021289 +v -0.965289 -0.824435 0.021289 +v -1.196844 -0.495749 0.021289 +v -1.172809 -0.485794 0.021289 +v -1.291461 -0.101640 0.021289 +v -1.265526 -0.099599 0.021289 +v 0.802507 -0.948226 0.021288 +v 0.856885 -0.901063 0.021288 +v 0.785175 -0.927747 0.021288 +v 0.838307 -0.881486 0.021288 +v 0.729101 -1.005892 0.021288 +v 0.475378 -1.147665 0.021288 +v 0.563959 -1.106834 0.021288 +v 0.465111 -1.122878 0.021288 +v 0.383870 -1.181430 0.021288 +v 0.097464 -1.238394 0.021288 +v 0.194328 -1.226935 0.021288 +v 0.095359 -1.211648 0.021288 +v 0.000000 -1.242229 0.021288 +v -0.289992 -1.207901 0.021288 +v -0.194328 -1.226935 0.021288 +v -0.283728 -1.181813 0.021288 +v -0.383870 -1.181430 0.021288 +v -0.375580 -1.155914 0.021288 +v -0.475379 -1.147665 0.021288 +v -0.465112 -1.122878 0.021288 +v -0.563960 -1.106834 0.021288 +v -0.806759 -0.944594 0.021288 +v -0.730164 -1.004984 0.021288 +v -0.789335 -0.924193 0.021288 +v -0.878388 -0.878388 0.021288 +v -1.059169 -0.649059 0.021289 +v -1.004984 -0.730164 0.021289 +v -1.036294 -0.635041 0.021289 +v -1.106834 -0.563960 0.021289 +v -1.207901 -0.289991 0.021289 +v -1.181430 -0.383870 0.021289 +v -1.181813 -0.283729 0.021289 +v -1.226935 -0.194328 0.021289 +v 0.947736 -0.951125 0.021288 +v 0.952551 -0.945723 0.021715 +v 0.952061 -0.950477 0.022047 +v 0.949339 -0.955246 0.021715 +v 0.944847 -0.945708 0.021288 +v 0.570626 -0.571534 0.021288 +v 0.574307 -0.568228 0.021715 +v 0.585844 -0.573345 0.021715 +v 0.580762 -0.578065 0.021288 +v 0.590274 -0.587134 0.021288 +v 0.595573 -0.582174 0.021715 +v 0.613839 -0.600479 0.021715 +v 0.608570 -0.605595 0.021288 +v 0.655939 -0.653390 0.021288 +v 0.660989 -0.647730 0.021715 +v 0.711166 -0.698015 0.021715 +v 0.706259 -0.704163 0.021288 +v 0.733410 -0.731555 0.021288 +v 0.738512 -0.725418 0.021715 +v 0.749846 -0.748136 0.021288 +v 0.768021 -0.766473 0.021288 +v 0.843003 -0.842130 0.021288 +v 0.649059 -1.059169 0.021288 +v 0.289991 -1.207901 0.021288 +v -0.097464 -1.238394 0.021288 +v -0.649060 -1.059169 0.021288 +v -0.944594 -0.806759 0.021289 +v -1.147665 -0.475379 0.021289 +v -1.238394 -0.097464 0.021289 +v 0.860555 -0.859839 0.021288 +v 0.879844 -0.879297 0.021288 +v 0.899393 -0.899017 0.021288 +v 0.917725 -0.917513 0.021288 +v 0.932284 -0.932202 0.021288 +v 0.940510 -0.940500 0.021288 +v -0.062606 -0.795483 0.039899 +v 0.000000 -0.797947 0.039899 +v -0.124827 -0.788123 0.039899 +v -0.186276 -0.775896 0.039899 +v -0.246579 -0.758892 0.039899 +v -0.305360 -0.737203 0.039899 +v -0.362261 -0.710976 0.039899 +v -0.416925 -0.680358 0.039899 +v -0.469022 -0.645552 0.039899 +v -0.518223 -0.606760 0.039899 +v -0.564233 -0.564233 0.039899 +v -0.606760 -0.518223 0.039899 +v -0.645552 -0.469022 0.039899 +v -0.680358 -0.416925 0.039899 +v -0.710976 -0.362261 0.039899 +v -0.737203 -0.305360 0.039899 +v -0.758892 -0.246580 0.039899 +v -0.775896 -0.186276 0.039899 +v -0.788122 -0.124827 0.039899 +v -0.795483 -0.062606 0.039899 +v 0.563244 -0.568308 0.039899 +v 0.416924 -0.680358 0.039899 +v 0.362260 -0.710976 0.039899 +v 0.305360 -0.737203 0.039899 +v 0.246579 -0.758892 0.039899 +v 0.186276 -0.775896 0.039899 +v 0.124826 -0.788123 0.039899 +v 0.062606 -0.795483 0.039899 +v -0.105582 -1.341542 0.022996 +v 0.000000 -1.345697 0.022996 +v -0.210514 -1.329129 0.022996 +v -0.314145 -1.308509 0.022996 +v -0.415844 -1.279834 0.022996 +v -0.514974 -1.243256 0.022996 +v -0.610933 -1.199025 0.022996 +v -0.703121 -1.147390 0.022996 +v -0.790980 -1.088691 0.022996 +v -0.873956 -1.023271 0.022996 +v -0.951551 -0.951551 0.022996 +v -1.023271 -0.873956 0.022996 +v -1.088691 -0.790980 0.022996 +v -1.147390 -0.703121 0.022996 +v -1.199024 -0.610933 0.022996 +v -1.243256 -0.514974 0.022996 +v -1.279834 -0.415844 0.022996 +v -1.308509 -0.314145 0.022996 +v -1.329129 -0.210514 0.022996 +v -1.341542 -0.105582 0.022996 +v 0.949819 -0.956565 0.022996 +v 0.953170 -0.950502 0.022996 +v 0.703121 -1.147390 0.022996 +v 0.610933 -1.199025 0.022996 +v 0.514974 -1.243256 0.022996 +v 0.415843 -1.279834 0.022996 +v 0.314145 -1.308509 0.022996 +v 0.210513 -1.329129 0.022996 +v 0.105582 -1.341542 0.022996 +v 0.954132 -0.943899 0.022996 +v 0.575532 -0.567123 0.022996 +v 0.587537 -0.571770 0.022996 +v 0.662672 -0.645843 0.022996 +v 0.615595 -0.598773 0.022996 +v 0.712802 -0.695965 0.022996 +v 0.597340 -0.580521 0.022996 +v 0.740213 -0.723372 0.022996 +v 0.925464 -0.908594 0.039899 +v 0.940016 -0.923144 0.039899 +v 0.907073 -0.890206 0.039899 +v 0.948480 -0.931607 0.039899 +v 0.887093 -0.870229 0.039899 +v 0.867361 -0.850500 0.039899 +v 0.849715 -0.832857 0.039899 +v 0.775181 -0.758335 0.039899 +v 0.515516 -0.609123 0.022996 +v 0.868528 -1.026235 0.039899 +v 0.700918 0.327055 0.169324 +v 0.699479 0.327109 0.169068 +v 0.698657 0.326721 0.172670 +v 0.700061 0.326649 0.173076 +v 0.702334 0.326696 0.169553 +v 0.701445 0.326275 0.173439 +v 0.702729 0.326883 0.166062 +v 0.701295 0.327233 0.165944 +v 0.699836 0.327278 0.165812 +v 0.280214 0.129141 0.308918 +v 0.280536 0.130886 0.308388 +v 0.280013 0.130638 0.306899 +v 0.279657 0.128877 0.307355 +v 0.279175 0.128208 0.309592 +v 0.278575 0.127924 0.307936 +v 0.279740 0.128475 0.310991 +v 0.280714 0.129377 0.310203 +v 0.280985 0.131099 0.309585 +v 0.703870 -0.325725 0.169756 +v 0.702477 -0.326389 0.169553 +v 0.702871 -0.326576 0.166062 +v 0.704281 -0.325919 0.166166 +v 0.705240 -0.324755 0.169931 +v 0.705665 -0.324956 0.166257 +v 0.704298 -0.324310 0.174037 +v 0.702952 -0.325291 0.173759 +v 0.701587 -0.325969 0.173439 +v 0.283817 -0.130695 0.312139 +v 0.283823 -0.130257 0.313610 +v 0.283002 -0.129869 0.313502 +v 0.283118 -0.130364 0.312055 +v 0.283317 -0.132056 0.310984 +v 0.282713 -0.131770 0.310918 +v 0.284071 -0.132414 0.311013 +v 0.284650 -0.131089 0.312176 +v 0.284755 -0.130697 0.313656 +v 0.280271 -0.129019 0.308918 +v 0.279231 -0.128086 0.309592 +v 0.278631 -0.127802 0.307936 +v 0.279713 -0.128755 0.307355 +v 0.280593 -0.130764 0.308388 +v 0.280070 -0.130516 0.306899 +v 0.281042 -0.130977 0.309585 +v 0.280770 -0.129255 0.310203 +v 0.279796 -0.128353 0.310991 +v 0.703728 0.326032 0.169756 +v 0.705099 0.325063 0.169931 +v 0.705523 0.325263 0.166257 +v 0.704138 0.326226 0.166166 +v 0.702810 0.325597 0.173759 +v 0.704157 0.324617 0.174037 +v 0.706447 0.323789 0.170079 +v 0.707772 0.322210 0.170200 +v 0.708217 0.322421 0.166395 +v 0.706882 0.323995 0.166333 +v 0.705484 0.323333 0.174271 +v 0.706792 0.321746 0.174463 +v 0.701156 0.324815 0.178186 +v 0.702464 0.323816 0.178568 +v 0.699834 0.325513 0.177745 +v 0.697379 0.324351 0.182484 +v 0.698648 0.323628 0.183038 +v 0.699910 0.322607 0.183518 +v 0.698499 0.325910 0.177245 +v 0.697151 0.326008 0.176686 +v 0.694824 0.324906 0.181154 +v 0.696104 0.324777 0.181856 +v 0.709075 0.320326 0.170295 +v 0.710354 0.318138 0.170362 +v 0.710812 0.318355 0.166479 +v 0.709527 0.320541 0.166444 +v 0.708082 0.319857 0.174613 +v 0.709352 0.317664 0.174720 +v 0.692748 0.323189 0.186936 +v 0.693958 0.322732 0.187670 +v 0.691539 0.323352 0.186116 +v 0.687183 0.321291 0.191516 +v 0.688318 0.321093 0.192433 +v 0.689463 0.320605 0.193254 +v 0.690332 0.323222 0.185209 +v 0.688558 0.324819 0.184497 +v 0.684350 0.322819 0.189706 +v 0.686057 0.321199 0.190502 +v 0.693537 0.324738 0.180378 +v 0.691697 0.326311 0.179769 +v 0.680593 0.318613 0.196200 +v 0.681640 0.318667 0.197301 +v 0.678952 0.320254 0.195335 +v 0.672259 0.317072 0.201327 +v 0.673835 0.315415 0.202247 +v 0.674806 0.315433 0.203419 +v 0.665678 0.311555 0.208589 +v 0.666579 0.311540 0.209818 +v 0.664164 0.313225 0.207623 +v 0.654571 0.308665 0.214173 +v 0.656025 0.306987 0.215176 +v 0.656860 0.306941 0.216452 +v 0.682704 0.318435 0.198297 +v 0.683784 0.317917 0.199189 +v 0.675802 0.315169 0.204479 +v 0.676821 0.314622 0.205428 +v 0.695170 0.321982 0.188317 +v 0.696383 0.320938 0.188878 +v 0.690617 0.319827 0.193978 +v 0.691780 0.318760 0.194605 +v 0.703760 0.322517 0.178892 +v 0.705042 0.320918 0.179157 +v 0.701167 0.321290 0.183925 +v 0.702417 0.319676 0.184257 +v 0.706311 0.319019 0.179363 +v 0.707567 0.316819 0.179510 +v 0.703661 0.317765 0.184516 +v 0.704900 0.315556 0.184701 +v 0.697598 0.319601 0.189353 +v 0.698814 0.317971 0.189742 +v 0.692952 0.317403 0.195136 +v 0.694134 0.315756 0.195571 +v 0.684882 0.317113 0.199975 +v 0.685996 0.316023 0.200657 +v 0.677865 0.313793 0.206265 +v 0.678932 0.312680 0.206991 +v 0.711612 0.315644 0.170403 +v 0.715152 0.307373 0.170423 +v 0.715617 0.307586 0.166510 +v 0.712073 0.315863 0.166500 +v 0.710604 0.315167 0.174784 +v 0.714136 0.306907 0.174816 +v 0.708810 0.314318 0.179598 +v 0.712328 0.306079 0.179642 +v 0.706132 0.313051 0.184811 +v 0.709631 0.304843 0.184867 +v 0.700032 0.316047 0.190044 +v 0.701252 0.313830 0.190260 +v 0.695324 0.313819 0.195909 +v 0.696524 0.311593 0.196150 +v 0.723280 0.287851 0.170430 +v 0.723753 0.288047 0.166514 +v 0.722247 0.287423 0.174826 +v 0.732822 0.259466 0.174826 +v 0.733874 0.259843 0.170430 +v 0.734356 0.260016 0.166514 +v 0.687127 0.314646 0.201233 +v 0.688274 0.312983 0.201705 +v 0.680023 0.311285 0.207604 +v 0.681139 0.309606 0.208107 +v 0.667510 0.311246 0.210931 +v 0.668473 0.310671 0.211926 +v 0.657732 0.306618 0.217606 +v 0.658641 0.306019 0.218639 +v 0.644777 0.301664 0.221957 +v 0.643380 0.303346 0.220925 +v 0.630492 0.297221 0.227835 +v 0.631836 0.295540 0.228891 +v 0.645552 0.301589 0.223272 +v 0.632555 0.295439 0.230236 +v 0.617100 0.288566 0.235933 +v 0.617770 0.288442 0.237302 +v 0.615808 0.290241 0.234858 +v 0.600552 0.282990 0.241506 +v 0.601798 0.281325 0.242597 +v 0.602425 0.281180 0.243985 +v 0.646369 0.301241 0.224460 +v 0.647228 0.300618 0.225524 +v 0.633322 0.295066 0.231452 +v 0.634137 0.294423 0.232541 +v 0.669466 0.309818 0.212804 +v 0.670489 0.308685 0.213565 +v 0.659587 0.305143 0.219551 +v 0.660570 0.303990 0.220341 +v 0.689439 0.311034 0.202072 +v 0.690620 0.308799 0.202334 +v 0.682278 0.307645 0.208497 +v 0.683441 0.305402 0.208776 +v 0.671544 0.307272 0.214209 +v 0.672629 0.305579 0.214736 +v 0.661590 0.302561 0.221009 +v 0.662646 0.300855 0.221556 +v 0.648131 0.299722 0.226463 +v 0.649076 0.298551 0.227276 +v 0.635000 0.293507 0.233501 +v 0.635911 0.292321 0.234334 +v 0.618493 0.288049 0.238541 +v 0.619268 0.287386 0.239650 +v 0.603109 0.280768 0.245241 +v 0.603848 0.280089 0.246365 +v 0.650064 0.297107 0.227964 +v 0.651095 0.295389 0.228528 +v 0.636870 0.290863 0.235038 +v 0.637877 0.289134 0.235614 +v 0.620095 0.286454 0.240628 +v 0.620976 0.285253 0.241475 +v 0.604644 0.279142 0.247357 +v 0.605498 0.277929 0.248217 +v 0.588395 0.273805 0.251067 +v 0.589104 0.273111 0.252204 +v 0.587745 0.274233 0.249797 +v 0.572797 0.267159 0.255164 +v 0.573416 0.266717 0.256445 +v 0.574099 0.266010 0.257591 +v 0.587156 0.274396 0.248393 +v 0.585952 0.276051 0.247290 +v 0.571074 0.268979 0.252636 +v 0.572240 0.267337 0.253748 +v 0.556118 0.259707 0.259085 +v 0.556643 0.259515 0.260511 +v 0.554987 0.261333 0.257964 +v 0.537656 0.253095 0.263258 +v 0.538751 0.251489 0.264385 +v 0.539250 0.251284 0.265819 +v 0.520105 0.242665 0.269631 +v 0.520578 0.242447 0.271073 +v 0.519045 0.244249 0.268498 +v 0.499113 0.234776 0.273668 +v 0.500138 0.233216 0.274806 +v 0.500587 0.232987 0.276254 +v 0.557236 0.259060 0.261801 +v 0.557895 0.258342 0.262955 +v 0.539818 0.250817 0.267117 +v 0.540455 0.250089 0.268278 +v 0.589873 0.272152 0.253206 +v 0.590703 0.270927 0.254075 +v 0.574845 0.265040 0.258603 +v 0.575655 0.263805 0.259479 +v 0.478810 0.223123 0.279894 +v 0.479237 0.222883 0.281348 +v 0.477821 0.224655 0.278752 +v 0.455126 0.213869 0.283734 +v 0.456080 0.212366 0.284880 +v 0.456485 0.212117 0.286338 +v 0.521123 0.241970 0.272377 +v 0.521739 0.241232 0.273544 +v 0.501110 0.232499 0.277564 +v 0.501707 0.231752 0.278736 +v 0.558619 0.257362 0.263974 +v 0.559412 0.256119 0.264856 +v 0.541161 0.249099 0.269303 +v 0.541935 0.247848 0.270191 +v 0.621909 0.283783 0.242192 +v 0.622895 0.282044 0.242779 +v 0.606408 0.276448 0.248944 +v 0.607377 0.274699 0.249539 +v 0.591595 0.269437 0.254811 +v 0.592546 0.267681 0.255412 +v 0.576528 0.262307 0.260221 +v 0.577466 0.260544 0.260828 +v 0.560270 0.254613 0.265603 +v 0.561194 0.252844 0.266214 +v 0.542779 0.246336 0.270942 +v 0.543692 0.244562 0.271557 +v 0.623934 0.280035 0.243235 +v 0.625025 0.277757 0.243561 +v 0.640035 0.284860 0.236383 +v 0.638932 0.287133 0.236063 +v 0.608400 0.272684 0.250002 +v 0.609481 0.270401 0.250333 +v 0.593557 0.265660 0.255880 +v 0.594630 0.263373 0.256214 +v 0.578466 0.258518 0.261300 +v 0.579530 0.256227 0.261637 +v 0.652168 0.293397 0.228966 +v 0.653285 0.291131 0.229278 +v 0.664871 0.296613 0.222285 +v 0.663740 0.298873 0.221981 +v 0.673744 0.303607 0.215146 +v 0.674891 0.301355 0.215439 +v 0.654444 0.288591 0.229466 +v 0.657637 0.281014 0.229560 +v 0.669296 0.286357 0.222558 +v 0.666038 0.294078 0.222467 +v 0.641186 0.282317 0.236575 +v 0.644307 0.274904 0.236671 +v 0.676067 0.298824 0.215614 +v 0.679382 0.290980 0.215702 +v 0.687993 0.294926 0.209027 +v 0.684628 0.302875 0.208944 +v 0.691818 0.306277 0.202492 +v 0.695225 0.298241 0.202570 +v 0.701177 0.300969 0.196367 +v 0.697733 0.309077 0.196295 +v 0.702472 0.311319 0.190389 +v 0.705946 0.303154 0.190454 +v 0.703035 0.279460 0.202597 +v 0.709081 0.281966 0.196391 +v 0.695688 0.276415 0.209055 +v 0.705754 0.249775 0.209055 +v 0.713241 0.252456 0.202597 +v 0.719403 0.254662 0.196391 +v 0.720410 0.286662 0.179657 +v 0.717669 0.285526 0.184885 +v 0.728156 0.257796 0.184885 +v 0.730949 0.258796 0.179657 +v 0.713926 0.283974 0.190475 +v 0.724341 0.256430 0.190475 +v 0.686943 0.272791 0.215731 +v 0.676699 0.268545 0.222589 +v 0.686401 0.242846 0.222589 +v 0.696841 0.246584 0.215731 +v 0.744811 0.226114 0.170430 +v 0.745301 0.226263 0.166514 +v 0.743741 0.225789 0.174826 +v 0.753925 0.189023 0.174826 +v 0.755009 0.189295 0.170430 +v 0.755506 0.189420 0.166514 +v 0.763388 0.152021 0.170430 +v 0.763890 0.152121 0.166514 +v 0.762291 0.151802 0.174826 +v 0.768822 0.114216 0.174826 +v 0.769928 0.114380 0.170430 +v 0.770434 0.114455 0.166514 +v 0.741838 0.225211 0.179657 +v 0.739000 0.224349 0.184885 +v 0.749118 0.187818 0.184885 +v 0.751996 0.188540 0.179657 +v 0.774612 0.076463 0.170430 +v 0.775122 0.076514 0.166514 +v 0.773500 0.076354 0.174826 +v 0.776315 0.038308 0.174826 +v 0.777432 0.038363 0.170430 +v 0.777943 0.038388 0.166514 +v 0.778377 0.000170 0.170430 +v 0.778889 0.000170 0.166514 +v 0.777259 0.000170 0.174826 +v 0.776332 -0.037969 0.174826 +v 0.777448 -0.038024 0.170430 +v 0.777960 -0.038049 0.166514 +v 0.760341 0.151414 0.179657 +v 0.757431 0.150834 0.184885 +v 0.763920 0.113487 0.184885 +v 0.766855 0.113923 0.179657 +v 0.771521 0.076158 0.179657 +v 0.768568 0.075867 0.184885 +v 0.771366 0.038063 0.184885 +v 0.774329 0.038210 0.179657 +v 0.775271 0.000169 0.179657 +v 0.772304 0.000168 0.184885 +v 0.771382 -0.037727 0.184885 +v 0.774345 -0.037872 0.179657 +v 0.764536 0.075469 0.190476 +v 0.759316 0.074953 0.196391 +v 0.762080 0.037605 0.196391 +v 0.767318 0.037864 0.190476 +v 0.759912 0.112892 0.190476 +v 0.754724 0.112121 0.196391 +v 0.768251 0.000168 0.190476 +v 0.763007 0.000166 0.196391 +v 0.762096 -0.037273 0.196391 +v 0.767335 -0.037529 0.190476 +v 0.774646 -0.076125 0.170430 +v 0.775155 -0.076175 0.166514 +v 0.773533 -0.076016 0.174826 +v 0.768872 -0.113880 0.174826 +v 0.769978 -0.114044 0.170430 +v 0.770484 -0.114119 0.166514 +v 0.763454 -0.151687 0.170430 +v 0.763956 -0.151787 0.166514 +v 0.762357 -0.151470 0.174826 +v 0.754007 -0.188694 0.174826 +v 0.755092 -0.188966 0.170430 +v 0.755588 -0.189090 0.166514 +v 0.771554 -0.075822 0.179657 +v 0.768601 -0.075531 0.184885 +v 0.763970 -0.113154 0.184885 +v 0.766905 -0.113589 0.179657 +v 0.744910 -0.225789 0.170430 +v 0.745399 -0.225937 0.166514 +v 0.743840 -0.225464 0.174826 +v 0.732935 -0.259147 0.174826 +v 0.733987 -0.259523 0.170430 +v 0.734470 -0.259695 0.166514 +v 0.760407 -0.151082 0.179657 +v 0.757497 -0.150504 0.184885 +v 0.749200 -0.187491 0.184885 +v 0.752078 -0.188212 0.179657 +v 0.723406 -0.287536 0.170430 +v 0.723879 -0.287731 0.166514 +v 0.722373 -0.287108 0.174826 +v 0.714269 -0.306596 0.174816 +v 0.715286 -0.307061 0.170423 +v 0.715751 -0.307274 0.166510 +v 0.741937 -0.224887 0.179657 +v 0.739097 -0.224027 0.184885 +v 0.728269 -0.257478 0.184885 +v 0.731062 -0.258477 0.179657 +v 0.711749 -0.315334 0.170403 +v 0.710493 -0.317828 0.170362 +v 0.710951 -0.318044 0.166479 +v 0.712210 -0.315552 0.166500 +v 0.710741 -0.314857 0.174784 +v 0.709491 -0.317354 0.174720 +v 0.720535 -0.286347 0.179657 +v 0.717794 -0.285213 0.184885 +v 0.709764 -0.304533 0.184867 +v 0.712461 -0.305768 0.179642 +v 0.708947 -0.314009 0.179598 +v 0.707705 -0.316510 0.179510 +v 0.706268 -0.312743 0.184812 +v 0.705037 -0.315249 0.184701 +v 0.709214 -0.320017 0.170295 +v 0.707912 -0.321901 0.170200 +v 0.708358 -0.322112 0.166396 +v 0.709667 -0.320231 0.166444 +v 0.708221 -0.319548 0.174613 +v 0.706933 -0.321438 0.174464 +v 0.706588 -0.323481 0.170079 +v 0.707024 -0.323687 0.166333 +v 0.705625 -0.323025 0.174271 +v 0.703900 -0.322210 0.178892 +v 0.702606 -0.323510 0.178569 +v 0.705182 -0.320611 0.179157 +v 0.702557 -0.319370 0.184257 +v 0.701307 -0.320984 0.183925 +v 0.700051 -0.322302 0.183519 +v 0.702608 -0.311013 0.190389 +v 0.701388 -0.313524 0.190260 +v 0.706079 -0.302846 0.190454 +v 0.701309 -0.300663 0.196367 +v 0.697868 -0.308772 0.196295 +v 0.696660 -0.311289 0.196150 +v 0.714050 -0.283663 0.190476 +v 0.709204 -0.281657 0.196391 +v 0.724453 -0.256114 0.190476 +v 0.719514 -0.254348 0.196391 +v 0.700170 -0.315742 0.190044 +v 0.698953 -0.317666 0.189742 +v 0.703800 -0.317458 0.184516 +v 0.695461 -0.313516 0.195909 +v 0.694271 -0.315453 0.195571 +v 0.735219 -0.222851 0.190476 +v 0.730200 -0.221330 0.196391 +v 0.745269 -0.186508 0.190476 +v 0.740181 -0.185234 0.196391 +v 0.691951 -0.305976 0.202492 +v 0.690755 -0.308498 0.202334 +v 0.695355 -0.297937 0.202570 +v 0.688122 -0.294626 0.209027 +v 0.684760 -0.302576 0.208944 +v 0.683575 -0.305103 0.208776 +v 0.703157 -0.279153 0.202597 +v 0.695809 -0.276112 0.209055 +v 0.713352 -0.252144 0.202597 +v 0.705863 -0.249467 0.209055 +v 0.753522 -0.149714 0.190476 +v 0.748378 -0.148692 0.196391 +v 0.759961 -0.112560 0.190476 +v 0.754773 -0.111792 0.196391 +v 0.723937 -0.219432 0.202597 +v 0.716326 -0.217125 0.209055 +v 0.733832 -0.183645 0.202597 +v 0.726118 -0.181715 0.209055 +v 0.764569 -0.075135 0.190476 +v 0.759349 -0.074622 0.196391 +v 0.741959 -0.147417 0.202597 +v 0.734159 -0.145867 0.209055 +v 0.748299 -0.110833 0.202597 +v 0.740432 -0.109668 0.209055 +v 0.752835 -0.073982 0.202597 +v 0.744921 -0.073204 0.209055 +v 0.755559 -0.036953 0.202597 +v 0.747616 -0.036565 0.209055 +v 0.756462 0.000165 0.202597 +v 0.748509 0.000163 0.209055 +v 0.755543 0.037283 0.202597 +v 0.747600 0.036891 0.209055 +v 0.724873 -0.144022 0.215731 +v 0.713997 -0.141861 0.222589 +v 0.706176 -0.176724 0.222589 +v 0.716934 -0.179417 0.215731 +v 0.731067 -0.108281 0.215731 +v 0.720098 -0.106656 0.222589 +v 0.735499 -0.072278 0.215731 +v 0.724463 -0.071194 0.222589 +v 0.738160 -0.036102 0.215731 +v 0.727085 -0.035560 0.222589 +v 0.707266 -0.214379 0.215731 +v 0.696654 -0.211162 0.222589 +v 0.686507 -0.242546 0.222589 +v 0.696949 -0.246279 0.215731 +v 0.687062 -0.272491 0.215731 +v 0.676816 -0.268249 0.222589 +v 0.669421 -0.286065 0.222558 +v 0.679509 -0.290684 0.215702 +v 0.684387 -0.207444 0.229591 +v 0.670361 -0.203192 0.236703 +v 0.660638 -0.233296 0.236703 +v 0.674437 -0.238230 0.229591 +v 0.693741 -0.173612 0.229591 +v 0.679525 -0.170055 0.236703 +v 0.676198 -0.298529 0.215614 +v 0.675022 -0.301061 0.215439 +v 0.666167 -0.293787 0.222467 +v 0.665000 -0.296323 0.222285 +v 0.664972 -0.263347 0.229591 +v 0.651432 -0.257741 0.236703 +v 0.644427 -0.274623 0.236671 +v 0.657760 -0.280727 0.229560 +v 0.654569 -0.288305 0.229466 +v 0.653412 -0.290846 0.229278 +v 0.641309 -0.282037 0.236575 +v 0.640159 -0.284581 0.236383 +v 0.689575 -0.310733 0.202072 +v 0.688411 -0.312683 0.201705 +v 0.682412 -0.307348 0.208497 +v 0.681274 -0.309309 0.208107 +v 0.673877 -0.303313 0.215146 +v 0.672762 -0.305286 0.214736 +v 0.663870 -0.298583 0.221981 +v 0.662778 -0.300566 0.221556 +v 0.697738 -0.319297 0.189353 +v 0.696524 -0.320635 0.188878 +v 0.693091 -0.317100 0.195136 +v 0.691919 -0.318458 0.194605 +v 0.701297 -0.324509 0.178186 +v 0.699976 -0.325207 0.177745 +v 0.698789 -0.323323 0.183038 +v 0.697521 -0.324047 0.182484 +v 0.687264 -0.314346 0.201233 +v 0.686134 -0.315723 0.200657 +v 0.680159 -0.310988 0.207604 +v 0.679069 -0.312384 0.206991 +v 0.695311 -0.321679 0.188317 +v 0.694099 -0.322429 0.187670 +v 0.690756 -0.319526 0.193978 +v 0.689603 -0.320304 0.193254 +v 0.698641 -0.325606 0.177245 +v 0.697293 -0.325703 0.176686 +v 0.698800 -0.326416 0.172671 +v 0.700203 -0.326344 0.173076 +v 0.696246 -0.324473 0.181856 +v 0.694965 -0.324603 0.181154 +v 0.695932 -0.325501 0.176068 +v 0.694033 -0.327051 0.175583 +v 0.695430 -0.327714 0.171870 +v 0.697377 -0.326184 0.172222 +v 0.693678 -0.324436 0.180378 +v 0.691840 -0.326010 0.179769 +v 0.692889 -0.322887 0.186936 +v 0.691680 -0.323050 0.186116 +v 0.688458 -0.320792 0.192433 +v 0.687323 -0.320991 0.191516 +v 0.685020 -0.316814 0.199975 +v 0.683923 -0.317619 0.199189 +v 0.678002 -0.313497 0.206265 +v 0.676959 -0.314327 0.205428 +v 0.690473 -0.322921 0.185209 +v 0.688699 -0.324519 0.184497 +v 0.686197 -0.320900 0.190502 +v 0.684491 -0.322521 0.189706 +v 0.682843 -0.318138 0.198297 +v 0.681779 -0.318370 0.197301 +v 0.675939 -0.314874 0.204479 +v 0.674944 -0.315139 0.203419 +v 0.680732 -0.318316 0.196200 +v 0.679092 -0.319958 0.195335 +v 0.673972 -0.315121 0.202247 +v 0.672397 -0.316779 0.201327 +v 0.669601 -0.309526 0.212804 +v 0.668608 -0.310380 0.211926 +v 0.670624 -0.308392 0.213565 +v 0.660702 -0.303702 0.220341 +v 0.659720 -0.304855 0.219551 +v 0.658775 -0.305732 0.218639 +v 0.665814 -0.311265 0.208589 +v 0.664301 -0.312935 0.207623 +v 0.666715 -0.311249 0.209819 +v 0.656994 -0.306654 0.216452 +v 0.656159 -0.306701 0.215176 +v 0.654706 -0.308380 0.214173 +v 0.667646 -0.310954 0.210931 +v 0.657866 -0.306331 0.217606 +v 0.644909 -0.301383 0.221958 +v 0.643512 -0.303066 0.220925 +v 0.645683 -0.301308 0.223272 +v 0.632684 -0.295163 0.230236 +v 0.631965 -0.295264 0.228891 +v 0.630622 -0.296946 0.227835 +v 0.646500 -0.300959 0.224460 +v 0.647360 -0.300336 0.225524 +v 0.634265 -0.294146 0.232541 +v 0.633450 -0.294790 0.231452 +v 0.617226 -0.288297 0.235933 +v 0.615934 -0.289973 0.234858 +v 0.617896 -0.288173 0.237303 +v 0.602547 -0.280917 0.243985 +v 0.601921 -0.281063 0.242597 +v 0.600676 -0.282728 0.241506 +v 0.587277 -0.274140 0.248394 +v 0.586073 -0.275795 0.247291 +v 0.587865 -0.273977 0.249797 +v 0.572913 -0.266909 0.255164 +v 0.572358 -0.267088 0.253748 +v 0.571192 -0.268730 0.252636 +v 0.618618 -0.287779 0.238541 +v 0.619393 -0.287116 0.239650 +v 0.603970 -0.279825 0.246366 +v 0.603230 -0.280505 0.245241 +v 0.588513 -0.273548 0.251067 +v 0.589222 -0.272854 0.252204 +v 0.574215 -0.265760 0.257591 +v 0.573532 -0.266467 0.256445 +v 0.557350 -0.258817 0.261801 +v 0.556757 -0.259272 0.260511 +v 0.558008 -0.258099 0.262955 +v 0.540564 -0.249853 0.268278 +v 0.539928 -0.250582 0.267117 +v 0.539360 -0.251048 0.265819 +v 0.589992 -0.271895 0.253206 +v 0.590822 -0.270670 0.254075 +v 0.575769 -0.263554 0.259479 +v 0.574961 -0.264789 0.258603 +v 0.604766 -0.278879 0.247357 +v 0.605619 -0.277664 0.248217 +v 0.558733 -0.257118 0.263974 +v 0.559524 -0.255875 0.264856 +v 0.542043 -0.247612 0.270191 +v 0.541269 -0.248863 0.269303 +v 0.620220 -0.286184 0.240628 +v 0.621100 -0.284982 0.241475 +v 0.635128 -0.293230 0.233501 +v 0.636039 -0.292044 0.234334 +v 0.648262 -0.299439 0.226463 +v 0.649207 -0.298268 0.227276 +v 0.591712 -0.269179 0.254811 +v 0.592663 -0.267423 0.255412 +v 0.577578 -0.260293 0.260828 +v 0.576643 -0.262055 0.260221 +v 0.606529 -0.276183 0.248944 +v 0.607495 -0.274434 0.249539 +v 0.622033 -0.283512 0.242192 +v 0.623018 -0.281772 0.242779 +v 0.636997 -0.290585 0.235038 +v 0.638003 -0.288855 0.235614 +v 0.650194 -0.296823 0.227964 +v 0.651224 -0.295105 0.228528 +v 0.661722 -0.302272 0.221009 +v 0.671678 -0.306979 0.214209 +v 0.652296 -0.293112 0.228966 +v 0.639057 -0.286854 0.236063 +v 0.624056 -0.279763 0.243236 +v 0.625147 -0.277484 0.243562 +v 0.609598 -0.270135 0.250333 +v 0.608519 -0.272418 0.250002 +v 0.626289 -0.274937 0.243757 +v 0.629325 -0.267710 0.243855 +v 0.613688 -0.260551 0.250630 +v 0.610735 -0.267585 0.250531 +v 0.636094 -0.251392 0.243888 +v 0.620213 -0.244818 0.250663 +v 0.645008 -0.227707 0.243888 +v 0.628823 -0.221921 0.250663 +v 0.593674 -0.265401 0.255880 +v 0.594745 -0.263113 0.256215 +v 0.579642 -0.255974 0.261637 +v 0.578578 -0.258265 0.261300 +v 0.595876 -0.260560 0.256415 +v 0.598747 -0.253712 0.256515 +v 0.583560 -0.246759 0.261940 +v 0.580768 -0.253419 0.261839 +v 0.605042 -0.238538 0.256549 +v 0.589617 -0.232153 0.261974 +v 0.613361 -0.216392 0.256549 +v 0.597642 -0.210771 0.261974 +v 0.654476 -0.198377 0.243888 +v 0.638027 -0.193392 0.250663 +v 0.663422 -0.166025 0.243888 +v 0.646749 -0.161852 0.250663 +v 0.701424 -0.139363 0.229591 +v 0.687050 -0.136507 0.236703 +v 0.707418 -0.104778 0.229591 +v 0.692921 -0.102631 0.236703 +v 0.622313 -0.188628 0.256549 +v 0.606337 -0.183786 0.261974 +v 0.630819 -0.157866 0.256549 +v 0.614625 -0.153813 0.261974 +v 0.670769 -0.133272 0.243888 +v 0.653911 -0.129923 0.250663 +v 0.676501 -0.100199 0.243887 +v 0.659499 -0.097680 0.250663 +v 0.572981 -0.225266 0.267369 +v 0.555089 -0.217859 0.272718 +v 0.549559 -0.231194 0.272684 +v 0.567177 -0.239259 0.267335 +v 0.580688 -0.204709 0.267369 +v 0.562454 -0.198189 0.272718 +v 0.564472 -0.245716 0.267233 +v 0.563349 -0.248273 0.267029 +v 0.546947 -0.237432 0.272581 +v 0.545829 -0.239991 0.272376 +v 0.562294 -0.250568 0.266690 +v 0.561304 -0.252599 0.266214 +v 0.544779 -0.242288 0.272035 +v 0.543798 -0.244324 0.271557 +v 0.589105 -0.178563 0.267369 +v 0.570574 -0.172946 0.272718 +v 0.597157 -0.149442 0.267369 +v 0.578372 -0.144741 0.272718 +v 0.528151 -0.228547 0.277869 +v 0.527036 -0.231108 0.277663 +v 0.530663 -0.222544 0.277972 +v 0.510448 -0.213290 0.283183 +v 0.508042 -0.219042 0.283080 +v 0.506931 -0.221604 0.282873 +v 0.535900 -0.209916 0.278006 +v 0.515371 -0.201418 0.283218 +v 0.542899 -0.191197 0.278006 +v 0.521978 -0.183717 0.283218 +v 0.560381 -0.254368 0.265603 +v 0.542886 -0.246099 0.270942 +v 0.525992 -0.233408 0.277319 +v 0.525020 -0.235448 0.276839 +v 0.505893 -0.223907 0.282528 +v 0.504929 -0.225951 0.282046 +v 0.524119 -0.237228 0.276221 +v 0.523290 -0.238747 0.275466 +v 0.504038 -0.227735 0.281425 +v 0.503221 -0.229261 0.280667 +v 0.522531 -0.240006 0.274574 +v 0.521844 -0.241004 0.273544 +v 0.502478 -0.230527 0.279770 +v 0.501808 -0.231533 0.278736 +v 0.484439 -0.213766 0.287646 +v 0.483483 -0.215813 0.287161 +v 0.485472 -0.211460 0.287992 +v 0.462618 -0.200657 0.293004 +v 0.461591 -0.202965 0.292657 +v 0.460641 -0.205016 0.292171 +v 0.521229 -0.241743 0.272377 +v 0.520684 -0.242220 0.271073 +v 0.501212 -0.232281 0.277564 +v 0.500689 -0.232769 0.276254 +v 0.482602 -0.217603 0.286539 +v 0.481797 -0.219133 0.285777 +v 0.459770 -0.206810 0.291546 +v 0.458976 -0.208346 0.290782 +v 0.481068 -0.220406 0.284877 +v 0.480414 -0.221420 0.283839 +v 0.458260 -0.209625 0.289879 +v 0.457621 -0.210646 0.288838 +v 0.520211 -0.242438 0.269631 +v 0.519152 -0.244023 0.268498 +v 0.537767 -0.252861 0.263258 +v 0.538861 -0.251254 0.264385 +v 0.500240 -0.232998 0.274806 +v 0.499216 -0.234558 0.273668 +v 0.556231 -0.259465 0.259085 +v 0.555102 -0.261091 0.257964 +v 0.479836 -0.222176 0.282663 +v 0.479334 -0.222674 0.281348 +v 0.457061 -0.211411 0.287657 +v 0.456578 -0.211918 0.286338 +v 0.478908 -0.222914 0.279894 +v 0.477919 -0.224447 0.278752 +v 0.456173 -0.212167 0.284880 +v 0.455219 -0.213670 0.283734 +v 0.431996 -0.200739 0.289747 +v 0.431078 -0.202208 0.288598 +v 0.432380 -0.200479 0.291209 +v 0.406700 -0.188340 0.295945 +v 0.406335 -0.188609 0.294479 +v 0.405452 -0.190042 0.293327 +v 0.432845 -0.199964 0.292532 +v 0.433389 -0.199192 0.293716 +v 0.407676 -0.187037 0.298457 +v 0.407147 -0.187817 0.297271 +v 0.379927 -0.174950 0.301859 +v 0.379496 -0.175481 0.300529 +v 0.380441 -0.174163 0.303048 +v 0.351642 -0.160550 0.307471 +v 0.351142 -0.161343 0.306280 +v 0.350727 -0.161882 0.304948 +v 0.434013 -0.198163 0.294760 +v 0.434716 -0.196879 0.295665 +v 0.408977 -0.184712 0.300412 +v 0.408286 -0.186002 0.299505 +v 0.381038 -0.173122 0.304097 +v 0.381718 -0.171826 0.305006 +v 0.352897 -0.158203 0.309433 +v 0.352227 -0.159503 0.308522 +v 0.435499 -0.195337 0.296431 +v 0.436362 -0.193540 0.297058 +v 0.410606 -0.181364 0.301808 +v 0.409751 -0.183166 0.301180 +v 0.382482 -0.170276 0.305776 +v 0.383329 -0.168471 0.306405 +v 0.354491 -0.154839 0.310835 +v 0.353652 -0.156648 0.310204 +v 0.437305 -0.191486 0.297545 +v 0.438328 -0.189175 0.297894 +v 0.412560 -0.176995 0.302646 +v 0.411542 -0.179307 0.302297 +v 0.384259 -0.166411 0.306895 +v 0.385273 -0.164096 0.307245 +v 0.356425 -0.150460 0.311676 +v 0.355416 -0.152777 0.311325 +v 0.323218 -0.142262 0.314449 +v 0.322472 -0.143821 0.313677 +v 0.324051 -0.140451 0.315080 +v 0.300305 -0.129225 0.318231 +v 0.299479 -0.131041 0.317598 +v 0.298742 -0.132604 0.316825 +v 0.324971 -0.138386 0.315572 +v 0.325976 -0.136067 0.315922 +v 0.302219 -0.124837 0.319074 +v 0.301218 -0.127158 0.318723 +v 0.386370 -0.161527 0.307455 +v 0.388137 -0.157297 0.307560 +v 0.359136 -0.144021 0.311991 +v 0.357520 -0.147890 0.311886 +v 0.413659 -0.174427 0.302855 +v 0.415570 -0.169855 0.302960 +v 0.321812 -0.145126 0.312764 +v 0.321238 -0.146178 0.311711 +v 0.298094 -0.133915 0.315911 +v 0.297533 -0.134973 0.314857 +v 0.327069 -0.133496 0.316133 +v 0.328526 -0.130008 0.316238 +v 0.304642 -0.119074 0.319390 +v 0.303309 -0.122265 0.319285 +v 0.320751 -0.146977 0.310518 +v 0.320350 -0.147523 0.309185 +v 0.297060 -0.135779 0.313662 +v 0.296676 -0.136332 0.312326 +v 0.379149 -0.175758 0.299060 +v 0.350396 -0.162167 0.303476 +v 0.378303 -0.177153 0.297906 +v 0.349587 -0.163519 0.302320 +v 0.320035 -0.147815 0.307711 +v 0.319263 -0.149122 0.306553 +v 0.296379 -0.136633 0.310850 +v 0.295641 -0.137907 0.309691 +v 0.289374 -0.129793 0.317050 +v 0.288831 -0.130859 0.315994 +v 0.290008 -0.128475 0.317966 +v 0.288762 -0.127886 0.318082 +v 0.288150 -0.129215 0.317165 +v 0.287633 -0.130293 0.316107 +v 0.287744 -0.132551 0.311981 +v 0.287031 -0.133820 0.310819 +v 0.288016 -0.132239 0.313459 +v 0.286881 -0.131702 0.313569 +v 0.286646 -0.132032 0.312088 +v 0.285963 -0.133312 0.310924 +v 0.288378 -0.131675 0.314797 +v 0.287210 -0.131123 0.314909 +v 0.285604 -0.131539 0.312156 +v 0.284964 -0.132839 0.310991 +v 0.285784 -0.131184 0.313638 +v 0.286063 -0.130581 0.314980 +v 0.286442 -0.129730 0.316180 +v 0.285283 -0.129183 0.316194 +v 0.284966 -0.130062 0.314996 +v 0.286920 -0.128633 0.317239 +v 0.287497 -0.127288 0.318157 +v 0.286237 -0.126693 0.318168 +v 0.285707 -0.128060 0.317252 +v 0.283945 -0.129579 0.314941 +v 0.284182 -0.128662 0.316131 +v 0.283153 -0.128176 0.315982 +v 0.283014 -0.129139 0.314811 +v 0.284535 -0.127506 0.317182 +v 0.285004 -0.126110 0.318092 +v 0.283814 -0.125547 0.317911 +v 0.283420 -0.126978 0.317016 +v 0.282188 -0.128748 0.314603 +v 0.282212 -0.127731 0.315739 +v 0.281351 -0.127324 0.315389 +v 0.281454 -0.128402 0.314312 +v 0.282305 -0.129539 0.313334 +v 0.281712 -0.129259 0.313107 +v 0.282562 -0.130102 0.311932 +v 0.282270 -0.131559 0.310830 +v 0.282125 -0.129895 0.311775 +v 0.281955 -0.131410 0.310729 +v 0.282376 -0.126485 0.316740 +v 0.282682 -0.125012 0.317608 +v 0.281614 -0.124508 0.317165 +v 0.281405 -0.126026 0.316340 +v 0.280505 -0.125601 0.315801 +v 0.280567 -0.126953 0.314924 +v 0.280614 -0.124035 0.316561 +v 0.279679 -0.123593 0.315763 +v 0.279666 -0.125204 0.315085 +v 0.279840 -0.126609 0.314302 +v 0.280895 -0.122256 0.317205 +v 0.281346 -0.120264 0.317731 +v 0.280263 -0.119752 0.316807 +v 0.279878 -0.121775 0.316337 +v 0.281979 -0.122769 0.317862 +v 0.282500 -0.120809 0.318433 +v 0.283129 -0.123312 0.318343 +v 0.283717 -0.121384 0.318944 +v 0.284335 -0.123882 0.318669 +v 0.284984 -0.121983 0.319289 +v 0.285589 -0.124475 0.318863 +v 0.286289 -0.122600 0.319493 +v 0.286874 -0.125082 0.318944 +v 0.287617 -0.123228 0.319578 +v 0.281969 -0.118059 0.318140 +v 0.282763 -0.115640 0.318433 +v 0.281590 -0.115086 0.317433 +v 0.280834 -0.117522 0.317172 +v 0.283177 -0.118630 0.318876 +v 0.284009 -0.116229 0.319193 +v 0.288173 -0.125697 0.318934 +v 0.288949 -0.123858 0.319570 +v 0.289467 -0.126308 0.318858 +v 0.290266 -0.124480 0.319493 +v 0.284445 -0.119229 0.319412 +v 0.285314 -0.116846 0.319745 +v 0.285760 -0.119850 0.319772 +v 0.286663 -0.117484 0.320116 +v 0.287106 -0.120487 0.319983 +v 0.288038 -0.118134 0.320333 +v 0.288466 -0.121130 0.320072 +v 0.289422 -0.118788 0.320424 +v 0.290732 -0.126906 0.318740 +v 0.291547 -0.125086 0.319374 +v 0.289823 -0.121771 0.320064 +v 0.290797 -0.119438 0.320417 +v 0.291158 -0.122403 0.319986 +v 0.292145 -0.120075 0.320339 +v 0.292452 -0.123014 0.319867 +v 0.293447 -0.120691 0.320219 +v 0.289086 -0.115541 0.320543 +v 0.290324 -0.112520 0.320648 +v 0.288916 -0.111875 0.320426 +v 0.287693 -0.114883 0.320323 +v 0.290484 -0.116202 0.320636 +v 0.291737 -0.113167 0.320742 +v 0.294533 -0.118117 0.320430 +v 0.295819 -0.115035 0.320536 +v 0.294502 -0.114433 0.320656 +v 0.293226 -0.117499 0.320550 +v 0.291870 -0.116858 0.320629 +v 0.293135 -0.113807 0.320735 +v 0.297413 -0.111192 0.320571 +v 0.296075 -0.110638 0.320692 +v 0.306373 -0.114901 0.319426 +v 0.308986 -0.107559 0.319426 +v 0.299855 -0.104295 0.320571 +v 0.298492 -0.103807 0.320692 +v 0.294686 -0.110063 0.320770 +v 0.293264 -0.109475 0.320777 +v 0.297076 -0.103301 0.320770 +v 0.295626 -0.102782 0.320777 +v 0.291827 -0.108880 0.320684 +v 0.290394 -0.108287 0.320461 +v 0.294162 -0.102259 0.320684 +v 0.292702 -0.101737 0.320461 +v 0.286325 -0.114236 0.319946 +v 0.287530 -0.111241 0.320046 +v 0.286184 -0.110625 0.319479 +v 0.284997 -0.113609 0.319384 +v 0.288983 -0.107702 0.320079 +v 0.287612 -0.107135 0.319510 +v 0.291264 -0.101222 0.320079 +v 0.289867 -0.100723 0.319510 +v 0.283728 -0.113009 0.318608 +v 0.284896 -0.110035 0.318696 +v 0.283684 -0.109481 0.317668 +v 0.282533 -0.112444 0.317590 +v 0.286301 -0.106592 0.318725 +v 0.285066 -0.106081 0.317694 +v 0.288530 -0.100245 0.318725 +v 0.287272 -0.099795 0.317694 +v 0.297898 -0.090295 0.320684 +v 0.296413 -0.089845 0.320461 +v 0.299386 -0.090746 0.320777 +v 0.303478 -0.075947 0.320777 +v 0.301970 -0.075569 0.320684 +v 0.300465 -0.075193 0.320461 +v 0.281430 -0.111923 0.316299 +v 0.280507 -0.114574 0.316165 +v 0.282566 -0.108969 0.316366 +v 0.281559 -0.108508 0.314760 +v 0.280436 -0.111453 0.314704 +v 0.279528 -0.114111 0.314591 +v 0.294952 -0.089402 0.320079 +v 0.293533 -0.088972 0.319510 +v 0.298984 -0.074822 0.320079 +v 0.297545 -0.074462 0.319510 +v 0.283927 -0.105610 0.316388 +v 0.282902 -0.105185 0.314779 +v 0.286112 -0.099380 0.316388 +v 0.285067 -0.099007 0.314779 +v 0.292174 -0.088560 0.318725 +v 0.290895 -0.088173 0.317694 +v 0.296168 -0.074118 0.318725 +v 0.294872 -0.073793 0.317694 +v 0.279783 -0.117025 0.315941 +v 0.279258 -0.119277 0.315629 +v 0.278830 -0.116575 0.314404 +v 0.278340 -0.118843 0.314141 +v 0.278932 -0.121328 0.315226 +v 0.278805 -0.123180 0.314735 +v 0.278060 -0.120916 0.313804 +v 0.277988 -0.122794 0.313391 +v 0.279568 -0.111042 0.312773 +v 0.278669 -0.113705 0.312676 +v 0.280681 -0.108106 0.312821 +v 0.279868 -0.107734 0.310714 +v 0.278762 -0.110661 0.310673 +v 0.277869 -0.113327 0.310590 +v 0.282009 -0.104816 0.312837 +v 0.281183 -0.104474 0.310728 +v 0.284157 -0.098681 0.312837 +v 0.283315 -0.098380 0.310728 +v 0.277986 -0.116176 0.312516 +v 0.277518 -0.118454 0.312291 +v 0.277196 -0.115803 0.310452 +v 0.276743 -0.118088 0.310258 +v 0.287729 -0.087213 0.312837 +v 0.286873 -0.086954 0.310728 +v 0.288654 -0.087494 0.314779 +v 0.292600 -0.073225 0.314779 +v 0.291662 -0.072990 0.312837 +v 0.290794 -0.072773 0.310728 +v 0.277265 -0.120540 0.312002 +v 0.277227 -0.122434 0.311648 +v 0.276509 -0.120183 0.310009 +v 0.276494 -0.122087 0.309705 +v 0.278877 -0.124831 0.314154 +v 0.279148 -0.126282 0.313483 +v 0.278126 -0.124476 0.312904 +v 0.278474 -0.125964 0.312341 +v 0.277405 -0.124135 0.311231 +v 0.277799 -0.125645 0.310749 +v 0.276699 -0.123802 0.309346 +v 0.277123 -0.125325 0.308931 +v 0.278407 -0.126962 0.310203 +v 0.279030 -0.127256 0.311704 +v 0.277767 -0.126659 0.308461 +v 0.279618 -0.127534 0.312724 +v 0.280287 -0.128585 0.311874 +v 0.280744 -0.128801 0.312423 +v 0.280199 -0.127808 0.313415 +v 0.281155 -0.129437 0.310936 +v 0.281343 -0.131120 0.310199 +v 0.281555 -0.131220 0.310467 +v 0.281475 -0.129588 0.311328 +v 0.294892 -0.058591 0.312837 +v 0.294015 -0.058417 0.310728 +v 0.295840 -0.058779 0.314779 +v 0.298368 -0.044192 0.314779 +v 0.297412 -0.044051 0.312837 +v 0.296527 -0.043920 0.310728 +v 0.289716 -0.087815 0.316388 +v 0.293676 -0.073494 0.316388 +v 0.296928 -0.058995 0.316388 +v 0.298137 -0.059236 0.317694 +v 0.300685 -0.044535 0.317694 +v 0.299465 -0.044355 0.316388 +v 0.299448 -0.059496 0.318725 +v 0.300840 -0.059773 0.319510 +v 0.303411 -0.044939 0.319510 +v 0.302006 -0.044731 0.318725 +v 0.299215 -0.029404 0.312837 +v 0.298325 -0.029317 0.310728 +v 0.300177 -0.029499 0.314779 +v 0.301263 -0.014734 0.314779 +v 0.300298 -0.014687 0.312837 +v 0.299404 -0.014643 0.310728 +v 0.301281 -0.029607 0.316388 +v 0.302508 -0.029728 0.317694 +v 0.303602 -0.014849 0.317694 +v 0.302371 -0.014788 0.316388 +v 0.300656 0.000066 0.312837 +v 0.299762 0.000065 0.310728 +v 0.301623 0.000066 0.314779 +v 0.301256 0.014866 0.314779 +v 0.300291 0.014818 0.312837 +v 0.299398 0.014774 0.310728 +v 0.302732 0.000066 0.316388 +v 0.303965 0.000066 0.317694 +v 0.303596 0.014981 0.317694 +v 0.302364 0.014920 0.316388 +v 0.303837 -0.029858 0.318725 +v 0.305250 -0.029997 0.319510 +v 0.306354 -0.014983 0.319510 +v 0.304937 -0.014914 0.318725 +v 0.305301 0.000067 0.318725 +v 0.306720 0.000067 0.319510 +v 0.306348 0.015117 0.319510 +v 0.304930 0.015047 0.318725 +v 0.299202 0.029535 0.312837 +v 0.298312 0.029447 0.310728 +v 0.300164 0.029630 0.314779 +v 0.298349 0.044322 0.314779 +v 0.297393 0.044180 0.312837 +v 0.296508 0.044049 0.310728 +v 0.301268 0.029739 0.316388 +v 0.302495 0.029860 0.317694 +v 0.300665 0.044666 0.317694 +v 0.299446 0.044485 0.316388 +v 0.294867 0.058719 0.312837 +v 0.293989 0.058545 0.310728 +v 0.295814 0.058908 0.314779 +v 0.292568 0.073352 0.314779 +v 0.291630 0.073117 0.312837 +v 0.290763 0.072900 0.310728 +v 0.296902 0.059125 0.316388 +v 0.298111 0.059366 0.317694 +v 0.294839 0.073922 0.317694 +v 0.293644 0.073622 0.316388 +v 0.303824 0.029991 0.318725 +v 0.305237 0.030130 0.319510 +v 0.303391 0.045071 0.319510 +v 0.301987 0.044863 0.318725 +v 0.299422 0.059626 0.318725 +v 0.300814 0.059904 0.319510 +v 0.297512 0.074592 0.319510 +v 0.296135 0.074247 0.318725 +v 0.287691 0.087339 0.312837 +v 0.286835 0.087079 0.310728 +v 0.288616 0.087619 0.314779 +v 0.285024 0.099131 0.314779 +v 0.284114 0.098805 0.312837 +v 0.283272 0.098504 0.310728 +v 0.289677 0.087942 0.316388 +v 0.290857 0.088300 0.317694 +v 0.287229 0.099921 0.317694 +v 0.286068 0.099505 0.316388 +v 0.281964 0.104939 0.312837 +v 0.281137 0.104596 0.310728 +v 0.282856 0.105309 0.314779 +v 0.281512 0.108631 0.314760 +v 0.280634 0.108228 0.312821 +v 0.279821 0.107856 0.310714 +v 0.279519 0.111164 0.312773 +v 0.278619 0.113827 0.312676 +v 0.277820 0.113448 0.310590 +v 0.278714 0.110783 0.310673 +v 0.280388 0.111575 0.314704 +v 0.279479 0.114233 0.314591 +v 0.283881 0.105734 0.316388 +v 0.285020 0.106205 0.317694 +v 0.283636 0.109604 0.317668 +v 0.282518 0.109092 0.316366 +v 0.281381 0.112045 0.316299 +v 0.280457 0.114696 0.316165 +v 0.282484 0.112567 0.317590 +v 0.281540 0.115209 0.317433 +v 0.277935 0.116297 0.312516 +v 0.277466 0.118575 0.312291 +v 0.276691 0.118208 0.310258 +v 0.277146 0.115924 0.310452 +v 0.278779 0.116696 0.314404 +v 0.278288 0.118964 0.314141 +v 0.286254 0.106717 0.318725 +v 0.287566 0.107261 0.319510 +v 0.286136 0.110750 0.319479 +v 0.284848 0.110160 0.318696 +v 0.288487 0.100371 0.318725 +v 0.289823 0.100849 0.319510 +v 0.277212 0.120661 0.312002 +v 0.277174 0.122555 0.311648 +v 0.276441 0.122208 0.309705 +v 0.276456 0.120303 0.310009 +v 0.278007 0.121037 0.313804 +v 0.277935 0.122915 0.313391 +v 0.279732 0.117147 0.315941 +v 0.279206 0.119398 0.315629 +v 0.280782 0.117644 0.317172 +v 0.280210 0.119874 0.316807 +v 0.283678 0.113132 0.318608 +v 0.282712 0.115763 0.318433 +v 0.284947 0.113733 0.319384 +v 0.283958 0.116353 0.319193 +v 0.277351 0.124256 0.311231 +v 0.277744 0.125766 0.310749 +v 0.277069 0.125446 0.308931 +v 0.276645 0.123922 0.309346 +v 0.278072 0.124597 0.312904 +v 0.278419 0.126085 0.312341 +v 0.278879 0.121450 0.315226 +v 0.278751 0.123301 0.314735 +v 0.279825 0.121897 0.316337 +v 0.279625 0.123715 0.315763 +v 0.278352 0.127083 0.310203 +v 0.277712 0.126780 0.308461 +v 0.278975 0.127378 0.311704 +v 0.278822 0.124952 0.314154 +v 0.279093 0.126404 0.313483 +v 0.279612 0.125326 0.315085 +v 0.279784 0.126731 0.314302 +v 0.279562 0.127656 0.312724 +v 0.280231 0.128707 0.311874 +v 0.280143 0.127931 0.313415 +v 0.280688 0.128924 0.312423 +v 0.281099 0.129559 0.310936 +v 0.281285 0.131242 0.310199 +v 0.281419 0.129711 0.311328 +v 0.281497 0.131343 0.310467 +v 0.280451 0.125723 0.315801 +v 0.280512 0.127076 0.314924 +v 0.280560 0.124157 0.316561 +v 0.281560 0.124630 0.317165 +v 0.281350 0.126149 0.316340 +v 0.281296 0.127447 0.315389 +v 0.280841 0.122378 0.317205 +v 0.281294 0.120386 0.317731 +v 0.282447 0.120932 0.318433 +v 0.281926 0.122892 0.317862 +v 0.282321 0.126608 0.316740 +v 0.282156 0.127854 0.315739 +v 0.282628 0.125136 0.317608 +v 0.283759 0.125671 0.317911 +v 0.283364 0.127102 0.317016 +v 0.283097 0.128299 0.315982 +v 0.283075 0.123435 0.318343 +v 0.283664 0.121508 0.318944 +v 0.284930 0.122107 0.319289 +v 0.284281 0.124006 0.318669 +v 0.282131 0.128871 0.314603 +v 0.282248 0.129662 0.313334 +v 0.281655 0.129381 0.313107 +v 0.281398 0.128524 0.314312 +v 0.282958 0.129262 0.314811 +v 0.282945 0.129992 0.313502 +v 0.283888 0.129703 0.314941 +v 0.283766 0.130380 0.313610 +v 0.284126 0.128786 0.316131 +v 0.285227 0.129307 0.316194 +v 0.284909 0.130186 0.314996 +v 0.284698 0.130821 0.313656 +v 0.284479 0.127630 0.317182 +v 0.284949 0.126234 0.318092 +v 0.286182 0.126818 0.318168 +v 0.285651 0.128184 0.317252 +v 0.286007 0.130705 0.314980 +v 0.286386 0.129855 0.316180 +v 0.287577 0.130419 0.316107 +v 0.287153 0.131248 0.314908 +v 0.285727 0.131308 0.313638 +v 0.286824 0.131827 0.313569 +v 0.285534 0.124599 0.318863 +v 0.286236 0.122725 0.319493 +v 0.287563 0.123353 0.319578 +v 0.286819 0.125207 0.318944 +v 0.286864 0.128758 0.317239 +v 0.287442 0.127414 0.318157 +v 0.288706 0.128012 0.318082 +v 0.288094 0.129340 0.317165 +v 0.288119 0.125822 0.318934 +v 0.288895 0.123984 0.319570 +v 0.290211 0.124607 0.319493 +v 0.289411 0.126434 0.318858 +v 0.287053 0.120612 0.319983 +v 0.287986 0.118259 0.320333 +v 0.289370 0.118914 0.320424 +v 0.288413 0.121256 0.320072 +v 0.285707 0.119975 0.319772 +v 0.286612 0.117609 0.320116 +v 0.289770 0.121898 0.320064 +v 0.290745 0.119565 0.320417 +v 0.292093 0.120203 0.320339 +v 0.291105 0.122529 0.319986 +v 0.290677 0.127033 0.318740 +v 0.289952 0.128602 0.317966 +v 0.291492 0.125213 0.319374 +v 0.300248 0.129356 0.318231 +v 0.299422 0.131171 0.317598 +v 0.298685 0.132734 0.316825 +v 0.284393 0.119353 0.319412 +v 0.285263 0.116971 0.319745 +v 0.283125 0.118753 0.318876 +v 0.289317 0.129919 0.317050 +v 0.288774 0.130985 0.315994 +v 0.298035 0.134045 0.315911 +v 0.297474 0.135103 0.314857 +v 0.288321 0.131800 0.314797 +v 0.287958 0.132364 0.313459 +v 0.297001 0.135908 0.313662 +v 0.296616 0.136461 0.312326 +v 0.292398 0.123141 0.319867 +v 0.293395 0.120819 0.320219 +v 0.302165 0.124969 0.319074 +v 0.301162 0.127289 0.318723 +v 0.323156 0.142403 0.314449 +v 0.322409 0.143961 0.313677 +v 0.323990 0.140592 0.315080 +v 0.354424 0.154994 0.310835 +v 0.353583 0.156802 0.310204 +v 0.352828 0.158357 0.309433 +v 0.324910 0.138527 0.315572 +v 0.325917 0.136209 0.315922 +v 0.356360 0.150616 0.311676 +v 0.355349 0.152932 0.311325 +v 0.321748 0.145266 0.312764 +v 0.321174 0.146318 0.311711 +v 0.352157 0.159657 0.308522 +v 0.351572 0.160703 0.307471 +v 0.287686 0.132676 0.311981 +v 0.286973 0.133945 0.310819 +v 0.285904 0.133437 0.310924 +v 0.286588 0.132157 0.312088 +v 0.296320 0.136762 0.310850 +v 0.295580 0.138036 0.309691 +v 0.285546 0.131664 0.312156 +v 0.284907 0.132963 0.310991 +v 0.284013 0.132538 0.311013 +v 0.284593 0.131213 0.312176 +v 0.320687 0.147117 0.310518 +v 0.320285 0.147662 0.309185 +v 0.351072 0.161496 0.306279 +v 0.350656 0.162035 0.304948 +v 0.379850 0.175115 0.301859 +v 0.379420 0.175647 0.300529 +v 0.380365 0.174329 0.303048 +v 0.407594 0.187215 0.298457 +v 0.407065 0.187994 0.297271 +v 0.406618 0.188518 0.295945 +v 0.380962 0.173288 0.304097 +v 0.381643 0.171993 0.305006 +v 0.408897 0.184890 0.300412 +v 0.408205 0.186180 0.299505 +v 0.382408 0.170443 0.305776 +v 0.383255 0.168638 0.306405 +v 0.410526 0.181543 0.301808 +v 0.409671 0.183345 0.301180 +v 0.433926 0.198353 0.294760 +v 0.433302 0.199381 0.293716 +v 0.434630 0.197068 0.295665 +v 0.458885 0.208546 0.290782 +v 0.458168 0.209825 0.289879 +v 0.457529 0.210846 0.288838 +v 0.384187 0.166579 0.306895 +v 0.385201 0.164264 0.307245 +v 0.412482 0.177175 0.302646 +v 0.411464 0.179487 0.302297 +v 0.435414 0.195527 0.296431 +v 0.436278 0.193730 0.297058 +v 0.460552 0.205217 0.292171 +v 0.459679 0.207010 0.291546 +v 0.437222 0.191676 0.297545 +v 0.438245 0.189367 0.297894 +v 0.462530 0.200859 0.293004 +v 0.461502 0.203167 0.292657 +v 0.386299 0.161696 0.307455 +v 0.388068 0.157467 0.307560 +v 0.415495 0.170037 0.302960 +v 0.413583 0.174607 0.302855 +v 0.357455 0.148046 0.311886 +v 0.359074 0.144178 0.311991 +v 0.439348 0.186800 0.298102 +v 0.441396 0.181907 0.298207 +v 0.465812 0.193097 0.293316 +v 0.463636 0.198294 0.293212 +v 0.484346 0.213977 0.287646 +v 0.483389 0.216024 0.287161 +v 0.485379 0.211672 0.287992 +v 0.506834 0.221825 0.282873 +v 0.505795 0.224128 0.282528 +v 0.504830 0.226171 0.282046 +v 0.327010 0.133638 0.316133 +v 0.328469 0.130151 0.316238 +v 0.303255 0.122397 0.319285 +v 0.304590 0.119207 0.319390 +v 0.482507 0.217813 0.286538 +v 0.481701 0.219343 0.285777 +v 0.503939 0.227955 0.281425 +v 0.503121 0.229480 0.280667 +v 0.294482 0.118245 0.320430 +v 0.295769 0.115164 0.320536 +v 0.293175 0.117626 0.320550 +v 0.294452 0.114561 0.320656 +v 0.391098 0.150171 0.307595 +v 0.418950 0.161716 0.302995 +v 0.361653 0.137967 0.312026 +v 0.365328 0.127884 0.312026 +v 0.395336 0.138629 0.307595 +v 0.423722 0.148792 0.302995 +v 0.291819 0.116985 0.320629 +v 0.293086 0.113935 0.320735 +v 0.290433 0.116329 0.320636 +v 0.291687 0.113294 0.320742 +v 0.330573 0.125086 0.316273 +v 0.306323 0.115035 0.319426 +v 0.308939 0.107694 0.319426 +v 0.333654 0.116543 0.316273 +v 0.297365 0.111322 0.320571 +v 0.296027 0.110768 0.320692 +v 0.298446 0.103937 0.320692 +v 0.299810 0.104425 0.320571 +v 0.289035 0.115667 0.320543 +v 0.290275 0.112647 0.320648 +v 0.287643 0.115009 0.320323 +v 0.288867 0.112001 0.320426 +v 0.294638 0.110192 0.320770 +v 0.293216 0.109602 0.320777 +v 0.295581 0.102911 0.320777 +v 0.297031 0.103430 0.320770 +v 0.303644 0.092182 0.320571 +v 0.312923 0.094999 0.319426 +v 0.302258 0.091761 0.320692 +v 0.306397 0.076819 0.320692 +v 0.307801 0.077172 0.320571 +v 0.317208 0.079530 0.319426 +v 0.300819 0.091324 0.320770 +v 0.299346 0.090877 0.320777 +v 0.303445 0.076079 0.320777 +v 0.304938 0.076454 0.320770 +v 0.291779 0.109007 0.320684 +v 0.290346 0.108413 0.320461 +v 0.292657 0.101864 0.320461 +v 0.294117 0.102387 0.320684 +v 0.338042 0.102624 0.316273 +v 0.370234 0.112397 0.312026 +v 0.342670 0.085914 0.316273 +v 0.375303 0.094096 0.312026 +v 0.297858 0.090425 0.320684 +v 0.296374 0.089975 0.320461 +v 0.300432 0.075324 0.320461 +v 0.301937 0.075701 0.320684 +v 0.294913 0.089531 0.320079 +v 0.293494 0.089100 0.319510 +v 0.298951 0.074953 0.320079 +v 0.291219 0.101349 0.320079 +v 0.286275 0.114361 0.319946 +v 0.287481 0.111366 0.320046 +v 0.281917 0.118181 0.318140 +v 0.288936 0.107828 0.320079 +v 0.292135 0.088688 0.318725 +v 0.302268 0.060193 0.320079 +v 0.303766 0.060492 0.320461 +v 0.304858 0.045289 0.320079 +v 0.306369 0.045514 0.320461 +v 0.305287 0.060795 0.320684 +v 0.306812 0.061098 0.320777 +v 0.307903 0.045742 0.320684 +v 0.309441 0.045970 0.320777 +v 0.306713 0.030276 0.320079 +v 0.308233 0.030426 0.320461 +v 0.307829 0.015190 0.320079 +v 0.309355 0.015265 0.320461 +v 0.308322 0.061399 0.320770 +v 0.309797 0.061693 0.320692 +v 0.310964 0.046196 0.320770 +v 0.312451 0.046417 0.320692 +v 0.309776 0.030578 0.320684 +v 0.311324 0.030731 0.320777 +v 0.310904 0.015342 0.320684 +v 0.312457 0.015418 0.320777 +v 0.308204 0.000067 0.320079 +v 0.309731 0.000068 0.320461 +v 0.307836 -0.015056 0.320079 +v 0.309361 -0.015130 0.320461 +v 0.311217 0.061975 0.320571 +v 0.320728 0.063869 0.319426 +v 0.313883 0.046630 0.320571 +v 0.323475 0.048055 0.319426 +v 0.312856 0.030882 0.320770 +v 0.314352 0.031030 0.320692 +v 0.313994 0.015494 0.320770 +v 0.315496 0.015568 0.320692 +v 0.311282 0.000068 0.320684 +v 0.312837 0.000068 0.320777 +v 0.310910 -0.015206 0.320684 +v 0.312463 -0.015282 0.320777 +v 0.306726 -0.030142 0.320079 +v 0.308246 -0.030292 0.320461 +v 0.304878 -0.045156 0.320079 +v 0.306388 -0.045380 0.320461 +v 0.302295 -0.060062 0.320079 +v 0.303792 -0.060359 0.320461 +v 0.309789 -0.030443 0.320684 +v 0.311337 -0.030595 0.320777 +v 0.307923 -0.045607 0.320684 +v 0.309461 -0.045835 0.320777 +v 0.314376 0.000069 0.320770 +v 0.315880 0.000069 0.320692 +v 0.314001 -0.015357 0.320770 +v 0.315503 -0.015431 0.320692 +v 0.305314 -0.060661 0.320684 +v 0.306839 -0.060965 0.320777 +v 0.312869 -0.030746 0.320770 +v 0.314365 -0.030893 0.320692 +v 0.310984 -0.046061 0.320770 +v 0.312471 -0.046281 0.320692 +v 0.308349 -0.061264 0.320770 +v 0.309824 -0.061557 0.320692 +v 0.304972 -0.076321 0.320770 +v 0.306430 -0.076686 0.320692 +v 0.300859 -0.091193 0.320770 +v 0.302298 -0.091629 0.320692 +v 0.315807 -0.031035 0.320571 +v 0.325457 -0.031983 0.319426 +v 0.326635 -0.015975 0.319426 +v 0.316949 -0.015501 0.320571 +v 0.313904 -0.046493 0.320571 +v 0.323496 -0.047914 0.319426 +v 0.303684 -0.092049 0.320571 +v 0.312964 -0.094862 0.319426 +v 0.317242 -0.079392 0.319426 +v 0.307835 -0.077037 0.320571 +v 0.311244 -0.061840 0.320571 +v 0.320755 -0.063729 0.319426 +v 0.338086 -0.102477 0.316273 +v 0.370283 -0.112236 0.312026 +v 0.375344 -0.093932 0.312026 +v 0.342708 -0.085764 0.316273 +v 0.333705 -0.116398 0.316273 +v 0.365384 -0.127725 0.312026 +v 0.346503 -0.068845 0.316273 +v 0.379501 -0.075401 0.312026 +v 0.382744 -0.056689 0.312026 +v 0.349464 -0.051760 0.316273 +v 0.351582 -0.034550 0.316273 +v 0.385064 -0.037841 0.312026 +v 0.386457 -0.018901 0.312026 +v 0.352854 -0.017258 0.316273 +v 0.317328 0.000069 0.320571 +v 0.327025 0.000071 0.319426 +v 0.326628 0.016118 0.319426 +v 0.316943 0.015640 0.320571 +v 0.353276 0.000077 0.316273 +v 0.386919 0.000084 0.312026 +v 0.386449 0.019069 0.312026 +v 0.352847 0.017411 0.316273 +v 0.315793 0.031172 0.320571 +v 0.325443 0.032125 0.319426 +v 0.351567 0.034704 0.316273 +v 0.385048 0.038009 0.312026 +v 0.382719 0.056856 0.312026 +v 0.349441 0.051913 0.316273 +v 0.346473 0.068996 0.316273 +v 0.379468 0.075567 0.312026 +v 0.416767 0.041140 0.307595 +v 0.446772 0.044102 0.302995 +v 0.444070 0.065971 0.302995 +v 0.414247 0.061540 0.307595 +v 0.418284 0.020640 0.307595 +v 0.448398 0.022126 0.302995 +v 0.400733 0.121657 0.307595 +v 0.429583 0.130415 0.302995 +v 0.406220 0.101847 0.307595 +v 0.435465 0.109179 0.302995 +v 0.410728 0.081792 0.307595 +v 0.440298 0.087680 0.302995 +v 0.445253 0.172617 0.298242 +v 0.470048 0.182894 0.293351 +v 0.450528 0.158390 0.298242 +v 0.475797 0.167438 0.293351 +v 0.456828 0.138686 0.298242 +v 0.482511 0.146483 0.293351 +v 0.463083 0.116104 0.298242 +v 0.489118 0.122631 0.293351 +v 0.468222 0.093241 0.298242 +v 0.494545 0.098483 0.293351 +v 0.472233 0.070154 0.298242 +v 0.498782 0.074099 0.293351 +v 0.418793 0.000091 0.307595 +v 0.448943 0.000098 0.302995 +v 0.418293 -0.020458 0.307595 +v 0.448407 -0.021931 0.302995 +v 0.475107 0.046899 0.298242 +v 0.501817 0.049535 0.293351 +v 0.476836 0.023530 0.298242 +v 0.503643 0.024853 0.293351 +v 0.416785 -0.040958 0.307595 +v 0.446791 -0.043907 0.302995 +v 0.414274 -0.061359 0.307595 +v 0.444099 -0.065777 0.302995 +v 0.477416 0.000104 0.298242 +v 0.504256 0.000110 0.293351 +v 0.476846 -0.023322 0.298242 +v 0.503654 -0.024633 0.293351 +v 0.410764 -0.081613 0.307595 +v 0.440336 -0.087488 0.302995 +v 0.406265 -0.101670 0.307595 +v 0.435513 -0.108989 0.302995 +v 0.475127 -0.046691 0.298242 +v 0.501839 -0.049316 0.293351 +v 0.472264 -0.069948 0.298242 +v 0.498815 -0.073881 0.293351 +v 0.526949 0.052016 0.288338 +v 0.550547 0.054345 0.283218 +v 0.547217 0.081294 0.283218 +v 0.523762 0.077810 0.288338 +v 0.528867 0.026097 0.288338 +v 0.552551 0.027266 0.283218 +v 0.529510 0.000116 0.288338 +v 0.553223 0.000121 0.283218 +v 0.528878 -0.025866 0.288338 +v 0.552563 -0.027025 0.283218 +v 0.519313 0.103416 0.288338 +v 0.542569 0.108047 0.283218 +v 0.536614 0.134539 0.283218 +v 0.513613 0.128773 0.288338 +v 0.468263 -0.093037 0.298242 +v 0.494588 -0.098268 0.293351 +v 0.463134 -0.115902 0.298242 +v 0.489171 -0.122418 0.293351 +v 0.506676 0.153819 0.288338 +v 0.529366 0.160708 0.283218 +v 0.521898 0.183944 0.283218 +v 0.499573 0.175951 0.288338 +v 0.400786 -0.121482 0.307595 +v 0.429640 -0.130228 0.302995 +v 0.395396 -0.138456 0.307595 +v 0.423787 -0.148607 0.302995 +v 0.330628 -0.124942 0.316273 +v 0.361713 -0.137810 0.312026 +v 0.391163 -0.150001 0.307595 +v 0.419021 -0.161533 0.302995 +v 0.456889 -0.138487 0.298242 +v 0.482575 -0.146272 0.293351 +v 0.450597 -0.158194 0.298242 +v 0.475870 -0.167230 0.293351 +v 0.439430 -0.186609 0.298103 +v 0.441475 -0.181715 0.298207 +v 0.463723 -0.198092 0.293212 +v 0.465896 -0.192894 0.293316 +v 0.445328 -0.172423 0.298242 +v 0.470128 -0.182689 0.293351 +v 0.486580 -0.208896 0.288200 +v 0.488873 -0.203413 0.288303 +v 0.493461 -0.192348 0.288338 +v 0.499650 -0.175733 0.288338 +v 0.506743 -0.153598 0.288338 +v 0.529436 -0.160477 0.283218 +v 0.536673 -0.134305 0.283218 +v 0.513669 -0.128548 0.288338 +v 0.550699 -0.166921 0.278006 +v 0.558226 -0.139699 0.278006 +v 0.519358 -0.103189 0.288338 +v 0.542616 -0.107810 0.283218 +v 0.547253 -0.081055 0.283218 +v 0.523796 -0.077581 0.288338 +v 0.564408 -0.112140 0.278006 +v 0.584777 -0.116187 0.272718 +v 0.589774 -0.087353 0.272718 +v 0.569230 -0.084310 0.278006 +v 0.603770 -0.119961 0.267369 +v 0.621431 -0.123470 0.261974 +v 0.626741 -0.092829 0.261974 +v 0.608930 -0.090191 0.267369 +v 0.526971 -0.051786 0.288338 +v 0.550570 -0.054105 0.283218 +v 0.572681 -0.056278 0.278006 +v 0.593349 -0.058309 0.272718 +v 0.595497 -0.029125 0.272718 +v 0.574754 -0.028110 0.278006 +v 0.575440 0.000126 0.278006 +v 0.596209 0.000130 0.272718 +v 0.595483 0.029384 0.272718 +v 0.574740 0.028361 0.278006 +v 0.612621 -0.060203 0.267369 +v 0.630541 -0.061964 0.261974 +v 0.632822 -0.030950 0.261974 +v 0.614837 -0.030071 0.267369 +v 0.615572 0.000134 0.267369 +v 0.633578 0.000138 0.261974 +v 0.632809 0.031226 0.261974 +v 0.614824 0.030339 0.267369 +v 0.572657 0.056528 0.278006 +v 0.593324 0.058568 0.272718 +v 0.589737 0.087611 0.272718 +v 0.569193 0.084559 0.278006 +v 0.612595 0.060470 0.267369 +v 0.630514 0.062239 0.261974 +v 0.626701 0.093102 0.261974 +v 0.608890 0.090456 0.267369 +v 0.564359 0.112386 0.278006 +v 0.584727 0.116442 0.272718 +v 0.578310 0.144993 0.272718 +v 0.558165 0.139943 0.278006 +v 0.603718 0.120224 0.267369 +v 0.621377 0.123741 0.261974 +v 0.614557 0.154081 0.261974 +v 0.597093 0.149702 0.267369 +v 0.550626 0.167162 0.278006 +v 0.570498 0.173195 0.272718 +v 0.562368 0.198435 0.272718 +v 0.542815 0.191434 0.278006 +v 0.589028 0.178820 0.267369 +v 0.606256 0.184051 0.261974 +v 0.597551 0.211032 0.261974 +v 0.580598 0.204962 0.267369 +v 0.637749 0.127001 0.256549 +v 0.653854 0.130208 0.250663 +v 0.646678 0.162135 0.250663 +v 0.630750 0.158141 0.256549 +v 0.643214 0.095555 0.256549 +v 0.659456 0.097968 0.250663 +v 0.622230 0.188900 0.256549 +v 0.637943 0.193670 0.250663 +v 0.628726 0.222195 0.250663 +v 0.613267 0.216660 0.256549 +v 0.572882 0.225516 0.267369 +v 0.554994 0.218101 0.272718 +v 0.589516 0.232410 0.261974 +v 0.583452 0.247013 0.261940 +v 0.567073 0.239507 0.267335 +v 0.549458 0.231433 0.272684 +v 0.647127 0.063879 0.256549 +v 0.663468 0.065492 0.250663 +v 0.649482 0.032049 0.256549 +v 0.665883 0.032858 0.250663 +v 0.535808 0.210149 0.278006 +v 0.515283 0.201643 0.283218 +v 0.530566 0.222775 0.277972 +v 0.510355 0.213512 0.283183 +v 0.650272 0.000142 0.256549 +v 0.666693 0.000145 0.250663 +v 0.649496 -0.031766 0.256549 +v 0.665897 -0.032568 0.250663 +v 0.493377 0.192563 0.288338 +v 0.488784 0.203626 0.288303 +v 0.486489 0.209109 0.288200 +v 0.507946 0.219263 0.283080 +v 0.528051 0.228777 0.277869 +v 0.526935 0.231337 0.277663 +v 0.546843 0.237670 0.272581 +v 0.545724 0.240229 0.272376 +v 0.564365 0.245962 0.267233 +v 0.563242 0.248519 0.267029 +v 0.580657 0.253672 0.261839 +v 0.525890 0.233637 0.277319 +v 0.524917 0.235677 0.276839 +v 0.544673 0.242526 0.272035 +v 0.562185 0.250813 0.266690 +v 0.524016 0.237456 0.276221 +v 0.523185 0.238975 0.275466 +v 0.522427 0.240234 0.274574 +v 0.502377 0.230746 0.279770 +v 0.480971 0.220616 0.284877 +v 0.480317 0.221630 0.283839 +v 0.479739 0.222386 0.282663 +v 0.456968 0.211610 0.287657 +v 0.432757 0.200152 0.292532 +v 0.432293 0.200668 0.291209 +v 0.379072 0.175923 0.299060 +v 0.378226 0.177318 0.297906 +v 0.349516 0.163672 0.302320 +v 0.350326 0.162320 0.303476 +v 0.406252 0.188786 0.294479 +v 0.405369 0.190219 0.293327 +v 0.319971 0.147955 0.307711 +v 0.319198 0.149261 0.306553 +v 0.595761 0.260820 0.256415 +v 0.598637 0.253973 0.256515 +v 0.613573 0.260819 0.250630 +v 0.610618 0.267851 0.250531 +v 0.604937 0.238802 0.256549 +v 0.620106 0.245089 0.250663 +v 0.626169 0.275210 0.243757 +v 0.629208 0.267984 0.243855 +v 0.635984 0.251670 0.243887 +v 0.651320 0.258025 0.236703 +v 0.644908 0.227989 0.243887 +v 0.660536 0.233584 0.236703 +v 0.664857 0.263637 0.229591 +v 0.674333 0.238525 0.229591 +v 0.654389 0.198663 0.243887 +v 0.670273 0.203485 0.236703 +v 0.663350 0.166315 0.243887 +v 0.679450 0.170351 0.236703 +v 0.684296 0.207742 0.229591 +v 0.696562 0.211466 0.222589 +v 0.693666 0.173915 0.229591 +v 0.706099 0.177033 0.222589 +v 0.670711 0.133565 0.243887 +v 0.686990 0.136807 0.236703 +v 0.676457 0.100494 0.243887 +v 0.692876 0.102933 0.236703 +v 0.707172 0.214687 0.215731 +v 0.716231 0.217437 0.209055 +v 0.716855 0.179729 0.215731 +v 0.726038 0.182032 0.209055 +v 0.701363 0.139669 0.229591 +v 0.713935 0.142173 0.222589 +v 0.707372 0.105087 0.229591 +v 0.720051 0.106970 0.222589 +v 0.680573 0.067181 0.243887 +v 0.697092 0.068811 0.236703 +v 0.683050 0.033705 0.243887 +v 0.699629 0.034524 0.236703 +v 0.723841 0.219747 0.202597 +v 0.730103 0.221649 0.196391 +v 0.733752 0.183966 0.202597 +v 0.740100 0.185557 0.196391 +v 0.724810 0.144338 0.215731 +v 0.734095 0.146187 0.209055 +v 0.731020 0.108600 0.215731 +v 0.740384 0.109991 0.209055 +v 0.711676 0.070251 0.229591 +v 0.724432 0.071510 0.222589 +v 0.714266 0.035246 0.229591 +v 0.727069 0.035878 0.222589 +v 0.735122 0.223172 0.190475 +v 0.745188 0.186833 0.190476 +v 0.741894 0.147740 0.202597 +v 0.748313 0.149019 0.196391 +v 0.748250 0.111159 0.202597 +v 0.753457 0.150043 0.190476 +v 0.752803 0.074311 0.202597 +v 0.744889 0.073529 0.209055 +v 0.735468 0.072599 0.215731 +v 0.738145 0.036424 0.215731 +v 0.739042 0.000161 0.215731 +v 0.727953 0.000159 0.222589 +v 0.711706 -0.069940 0.229591 +v 0.697122 -0.068507 0.236703 +v 0.714281 -0.034934 0.229591 +v 0.699644 -0.034218 0.236703 +v 0.715135 0.000156 0.229591 +v 0.700480 0.000153 0.236703 +v 0.680602 -0.066884 0.243887 +v 0.663497 -0.065203 0.250663 +v 0.683064 -0.033407 0.243887 +v 0.637805 -0.126723 0.256549 +v 0.643255 -0.095275 0.256549 +v 0.683880 0.000149 0.243887 +v 0.647154 -0.063597 0.256549 +v 0.280745 0.128215 0.313930 +v 0.281149 0.129142 0.312819 +v 0.281724 0.129855 0.311591 +v 0.281681 0.131430 0.310626 +v 0.282069 0.130018 0.311775 +v 0.281898 0.131533 0.310729 +v 0.282506 0.130225 0.311932 +v 0.282212 0.131682 0.310830 +v 0.283061 0.130488 0.312055 +v 0.282655 0.131893 0.310918 +v 0.283760 0.130819 0.312139 +v 0.283259 0.132180 0.310984 +v 0.281781 -0.129732 0.311591 +v 0.281205 -0.129019 0.312819 +v 0.281738 -0.131307 0.310626 +v 0.280801 -0.128093 0.313930 +v 0.695790 0.325805 0.176068 +v 0.693890 0.327354 0.175583 +v 0.697235 0.326489 0.172222 +v 0.695287 0.328017 0.171870 +v 0.698455 0.327066 0.162776 +v 0.696450 0.328570 0.162729 +v 0.696354 0.328525 0.165551 +v 0.698352 0.327017 0.165666 +v 0.699947 0.327331 0.162836 +v 0.699937 0.327326 0.160000 +v 0.698442 0.327060 0.160000 +v 0.696435 0.328563 0.160000 +v 0.701415 0.327290 0.162890 +v 0.702856 0.326943 0.162939 +v 0.702849 0.326939 0.160000 +v 0.701406 0.327286 0.160000 +v 0.704272 0.326289 0.162982 +v 0.705662 0.325329 0.163019 +v 0.705658 0.325327 0.160000 +v 0.704266 0.326287 0.160000 +v 0.707026 0.324063 0.163050 +v 0.708364 0.322490 0.163076 +v 0.708363 0.322490 0.160000 +v 0.707023 0.324062 0.160000 +v 0.709677 0.320612 0.163096 +v 0.710965 0.318427 0.163111 +v 0.710964 0.318426 0.160000 +v 0.709676 0.320611 0.160000 +v 0.712226 0.315935 0.163119 +v 0.715772 0.307657 0.163123 +v 0.715772 0.307657 0.160000 +v 0.712226 0.315935 0.160000 +v 0.723910 0.288113 0.163125 +v 0.723910 0.288113 0.160000 +v 0.734517 0.260073 0.163125 +v 0.734517 0.260073 0.160000 +v 0.745464 0.226312 0.163125 +v 0.745464 0.226312 0.160000 +v 0.755671 0.189461 0.163125 +v 0.755671 0.189461 0.160000 +v 0.764057 0.152154 0.163125 +v 0.764057 0.152154 0.160000 +v 0.770603 0.114480 0.163125 +v 0.770603 0.114480 0.160000 +v 0.775292 0.076530 0.163125 +v 0.775292 0.076530 0.160000 +v 0.778113 0.038396 0.163125 +v 0.778113 0.038396 0.160000 +v 0.779060 0.000170 0.163125 +v 0.779060 0.000170 0.160000 +v 0.778130 -0.038057 0.163125 +v 0.778130 -0.038057 0.160000 +v 0.775325 -0.076192 0.163125 +v 0.775325 -0.076192 0.160000 +v 0.770653 -0.114144 0.163125 +v 0.770653 -0.114144 0.160000 +v 0.764123 -0.151820 0.163125 +v 0.764123 -0.151820 0.160000 +v 0.755754 -0.189131 0.163125 +v 0.755754 -0.189131 0.160000 +v 0.745563 -0.225987 0.163125 +v 0.745563 -0.225987 0.160000 +v 0.734630 -0.259753 0.163125 +v 0.734630 -0.259753 0.160000 +v 0.724036 -0.287797 0.163125 +v 0.724036 -0.287797 0.160000 +v 0.715906 -0.307345 0.163123 +v 0.715906 -0.307345 0.160000 +v 0.712364 -0.315625 0.163119 +v 0.711104 -0.318116 0.163111 +v 0.711103 -0.318116 0.160000 +v 0.712364 -0.315624 0.160000 +v 0.709817 -0.320302 0.163096 +v 0.708505 -0.322181 0.163076 +v 0.708503 -0.322181 0.160000 +v 0.709816 -0.320302 0.160000 +v 0.707167 -0.323754 0.163051 +v 0.705804 -0.325021 0.163019 +v 0.705800 -0.325019 0.160000 +v 0.707165 -0.323753 0.160000 +v 0.704414 -0.325982 0.162982 +v 0.702998 -0.326636 0.162939 +v 0.702992 -0.326633 0.160000 +v 0.704409 -0.325979 0.160000 +v 0.701557 -0.326984 0.162890 +v 0.700090 -0.327026 0.162836 +v 0.700080 -0.327021 0.160000 +v 0.701549 -0.326980 0.160000 +v 0.701437 -0.326927 0.165944 +v 0.699978 -0.326973 0.165812 +v 0.698597 -0.326761 0.162776 +v 0.696593 -0.328266 0.162729 +v 0.696579 -0.328260 0.160000 +v 0.698585 -0.326755 0.160000 +v 0.698494 -0.326712 0.165666 +v 0.696497 -0.328221 0.165551 +v 0.698160 -0.326554 0.168785 +v 0.699621 -0.326804 0.169068 +v 0.696180 -0.328070 0.168562 +v 0.701060 -0.326749 0.169324 +v 0.431908 0.200927 0.289747 +v 0.430989 0.202396 0.288598 +v 0.698017 0.326859 0.168785 +v 0.696037 0.328374 0.168562 +v 0.706450 -0.318710 0.179363 +v 0.181689 0.751824 0.169324 +v 0.180748 0.750734 0.169068 +v 0.180540 0.749849 0.172670 +v 0.181471 0.750901 0.173076 +v 0.182853 0.752707 0.169553 +v 0.182627 0.751750 0.173439 +v 0.182953 0.753132 0.166062 +v 0.181784 0.752230 0.165944 +v 0.180839 0.751118 0.165812 +v 0.073894 0.299562 0.308918 +v 0.072664 0.300916 0.308388 +v 0.072533 0.300352 0.306899 +v 0.073752 0.298962 0.307355 +v 0.073975 0.298168 0.309592 +v 0.073822 0.297521 0.307936 +v 0.074118 0.298775 0.310991 +v 0.074021 0.300100 0.310203 +v 0.072777 0.301399 0.309585 +v 0.693690 0.346877 0.169756 +v 0.693340 0.345373 0.169553 +v 0.693733 0.345565 0.166062 +v 0.694098 0.347077 0.166166 +v 0.693787 0.348553 0.169931 +v 0.694209 0.348759 0.166257 +v 0.692851 0.348094 0.174037 +v 0.692779 0.346430 0.173759 +v 0.692457 0.344940 0.173439 +v 0.279209 0.140271 0.312139 +v 0.278870 0.140549 0.313610 +v 0.278054 0.140150 0.313502 +v 0.278514 0.139931 0.312055 +v 0.279960 0.139031 0.310984 +v 0.279359 0.138737 0.310918 +v 0.280711 0.139397 0.311013 +v 0.280036 0.140676 0.312176 +v 0.279795 0.141002 0.313656 +v 0.275686 0.138545 0.308918 +v 0.274309 0.138315 0.309592 +v 0.273712 0.138022 0.307936 +v 0.275132 0.138274 0.307355 +v 0.277251 0.137708 0.308388 +v 0.276731 0.137455 0.306899 +v 0.277697 0.137926 0.309585 +v 0.276182 0.138788 0.310203 +v 0.274869 0.138589 0.310991 +v 0.184241 0.753382 0.169756 +v 0.185854 0.753849 0.169931 +v 0.185962 0.754306 0.166257 +v 0.184346 0.753824 0.166166 +v 0.184008 0.752394 0.173759 +v 0.185615 0.752834 0.174037 +v 0.187691 0.754108 0.170079 +v 0.189751 0.754158 0.170200 +v 0.189864 0.754638 0.166395 +v 0.187801 0.754577 0.166333 +v 0.187446 0.753071 0.174271 +v 0.189502 0.753103 0.174463 +v 0.183588 0.750612 0.178186 +v 0.185185 0.751012 0.178568 +v 0.182218 0.750015 0.177745 +v 0.181594 0.747372 0.182484 +v 0.182951 0.747912 0.183038 +v 0.184536 0.748262 0.183518 +v 0.181074 0.749220 0.177245 +v 0.180157 0.748227 0.176686 +v 0.179566 0.745721 0.181154 +v 0.180466 0.746641 0.181856 +v 0.192036 0.754001 0.170295 +v 0.194545 0.753636 0.170362 +v 0.194661 0.754129 0.166479 +v 0.192151 0.754489 0.166444 +v 0.191784 0.752932 0.174613 +v 0.194290 0.752557 0.174720 +v 0.179613 0.743028 0.186936 +v 0.180725 0.743688 0.187670 +v 0.178732 0.742185 0.186116 +v 0.177625 0.737494 0.191516 +v 0.178488 0.738258 0.192433 +v 0.179583 0.738848 0.193254 +v 0.178080 0.741160 0.185209 +v 0.175563 0.740805 0.184497 +v 0.174501 0.736269 0.189706 +v 0.176994 0.736557 0.190502 +v 0.178894 0.744611 0.180378 +v 0.176354 0.744190 0.179769 +v 0.175606 0.730673 0.196200 +v 0.176217 0.731525 0.197301 +v 0.173140 0.730449 0.195335 +v 0.171452 0.723233 0.201327 +v 0.173889 0.723396 0.202247 +v 0.174481 0.724167 0.203419 +v 0.171817 0.714614 0.208589 +v 0.172391 0.715308 0.209818 +v 0.169411 0.714507 0.207623 +v 0.166991 0.704164 0.214173 +v 0.169365 0.704220 0.215176 +v 0.169922 0.704844 0.216452 +v 0.177062 0.732212 0.198297 +v 0.178141 0.732734 0.199189 +v 0.175308 0.724780 0.204479 +v 0.176372 0.725236 0.205428 +v 0.182068 0.744168 0.188317 +v 0.183640 0.744465 0.188878 +v 0.180911 0.739265 0.193978 +v 0.182471 0.739508 0.194605 +v 0.187008 0.751214 0.178892 +v 0.189058 0.751219 0.179157 +v 0.186349 0.748423 0.183925 +v 0.188391 0.748393 0.184257 +v 0.191334 0.751026 0.179363 +v 0.193837 0.750635 0.179510 +v 0.190661 0.748173 0.184516 +v 0.193159 0.747763 0.184701 +v 0.185443 0.744580 0.189353 +v 0.187476 0.744513 0.189742 +v 0.184262 0.739577 0.195136 +v 0.186287 0.739473 0.195571 +v 0.179454 0.733089 0.199975 +v 0.181001 0.733280 0.200657 +v 0.177671 0.725534 0.206265 +v 0.179207 0.725674 0.206991 +v 0.197278 0.753063 0.170403 +v 0.205951 0.750669 0.170423 +v 0.206074 0.751166 0.166510 +v 0.197395 0.753559 0.166500 +v 0.197022 0.751978 0.174784 +v 0.205681 0.749585 0.174816 +v 0.196566 0.750046 0.179598 +v 0.205200 0.747655 0.179642 +v 0.195886 0.747163 0.184811 +v 0.204484 0.744776 0.184867 +v 0.189739 0.744265 0.190044 +v 0.192233 0.743834 0.190260 +v 0.188543 0.739196 0.195909 +v 0.191032 0.738744 0.196150 +v 0.226278 0.744843 0.170430 +v 0.226420 0.745334 0.166514 +v 0.225969 0.743768 0.174826 +v 0.254415 0.734591 0.174826 +v 0.254777 0.735648 0.170430 +v 0.254943 0.736133 0.166514 +v 0.182783 0.733305 0.201233 +v 0.184798 0.733164 0.201705 +v 0.180978 0.725656 0.207604 +v 0.182985 0.725481 0.208107 +v 0.173202 0.715853 0.210931 +v 0.174251 0.716247 0.211926 +v 0.170718 0.705324 0.217606 +v 0.171753 0.705660 0.218639 +v 0.166507 0.692108 0.221957 +v 0.164169 0.692099 0.220925 +v 0.160919 0.678204 0.227835 +v 0.163220 0.678173 0.228891 +v 0.167049 0.692667 0.223272 +v 0.163747 0.678672 0.230236 +v 0.159476 0.662307 0.235933 +v 0.159991 0.662753 0.237302 +v 0.157216 0.662373 0.234858 +v 0.153369 0.645926 0.241506 +v 0.155589 0.645831 0.242597 +v 0.156093 0.646230 0.243985 +v 0.167831 0.693088 0.224460 +v 0.168854 0.693372 0.225524 +v 0.164517 0.679040 0.231452 +v 0.165528 0.679275 0.232541 +v 0.175538 0.716490 0.212804 +v 0.177062 0.716583 0.213565 +v 0.173028 0.705853 0.219551 +v 0.174542 0.705902 0.220341 +v 0.187048 0.732858 0.202072 +v 0.189532 0.732387 0.202334 +v 0.185229 0.725148 0.208497 +v 0.187708 0.724657 0.208776 +v 0.178824 0.716525 0.214209 +v 0.180823 0.716317 0.214736 +v 0.176295 0.705807 0.221009 +v 0.178288 0.705569 0.221556 +v 0.170118 0.693518 0.226463 +v 0.171622 0.693526 0.227276 +v 0.166782 0.679379 0.233501 +v 0.168278 0.679350 0.234334 +v 0.160749 0.663072 0.238541 +v 0.161751 0.663265 0.239650 +v 0.156841 0.646506 0.245241 +v 0.157834 0.646661 0.246365 +v 0.173367 0.693397 0.227964 +v 0.175353 0.693131 0.228528 +v 0.170015 0.679190 0.235038 +v 0.171995 0.678898 0.235614 +v 0.162996 0.663330 0.240628 +v 0.164484 0.663269 0.241475 +v 0.159070 0.646693 0.247357 +v 0.160552 0.646603 0.248217 +v 0.153103 0.630663 0.251067 +v 0.154088 0.630785 0.252204 +v 0.152364 0.630423 0.249797 +v 0.148566 0.614327 0.255164 +v 0.149298 0.614535 0.256445 +v 0.150276 0.614627 0.257591 +v 0.151869 0.630064 0.248393 +v 0.149686 0.630185 0.247290 +v 0.145934 0.614145 0.252636 +v 0.148080 0.614004 0.253748 +v 0.143984 0.596643 0.259085 +v 0.144463 0.596934 0.260511 +v 0.141878 0.596802 0.257964 +v 0.137507 0.578117 0.263258 +v 0.139572 0.577943 0.264385 +v 0.140044 0.578205 0.265819 +v 0.134835 0.557865 0.269631 +v 0.135300 0.558100 0.271073 +v 0.132813 0.558052 0.268498 +v 0.127787 0.536565 0.273668 +v 0.129763 0.536366 0.274806 +v 0.130222 0.536574 0.276254 +v 0.145188 0.597113 0.261801 +v 0.146160 0.597180 0.262955 +v 0.140763 0.578358 0.267117 +v 0.141729 0.578401 0.268278 +v 0.155318 0.630788 0.253206 +v 0.156793 0.630673 0.254075 +v 0.151500 0.614605 0.258603 +v 0.152970 0.614468 0.259479 +v 0.124345 0.513402 0.279894 +v 0.124798 0.513586 0.281348 +v 0.122417 0.513609 0.278752 +v 0.116694 0.489142 0.283734 +v 0.118571 0.488927 0.284880 +v 0.119018 0.489088 0.286338 +v 0.136014 0.558227 0.272377 +v 0.136975 0.558248 0.273544 +v 0.130930 0.536678 0.277564 +v 0.131886 0.536680 0.278736 +v 0.147378 0.597135 0.263974 +v 0.148844 0.596978 0.264856 +v 0.142943 0.578335 0.269303 +v 0.144404 0.578160 0.270191 +v 0.166215 0.663081 0.242192 +v 0.168189 0.662766 0.242779 +v 0.162277 0.646390 0.248944 +v 0.164247 0.646056 0.249539 +v 0.158514 0.630439 0.254811 +v 0.160479 0.630087 0.255412 +v 0.154686 0.614216 0.260221 +v 0.156648 0.613848 0.260828 +v 0.150556 0.596709 0.265603 +v 0.152515 0.596328 0.266214 +v 0.146112 0.577876 0.270942 +v 0.148068 0.577482 0.271557 +v 0.170407 0.662325 0.243235 +v 0.172868 0.661757 0.243561 +v 0.176681 0.677919 0.236383 +v 0.174217 0.678475 0.236063 +v 0.166461 0.645599 0.250002 +v 0.168919 0.645019 0.250333 +v 0.162690 0.629616 0.255880 +v 0.165146 0.629027 0.256214 +v 0.158856 0.613366 0.261300 +v 0.161310 0.612769 0.261637 +v 0.177580 0.692727 0.228966 +v 0.180047 0.692186 0.229278 +v 0.182990 0.704661 0.222285 +v 0.180519 0.705187 0.221981 +v 0.183061 0.715959 0.215146 +v 0.185536 0.715450 0.215439 +v 0.182755 0.691507 0.229466 +v 0.190669 0.689275 0.229560 +v 0.193767 0.701721 0.222558 +v 0.185701 0.703992 0.222467 +v 0.179387 0.677232 0.236575 +v 0.187127 0.675046 0.236671 +v 0.188248 0.714790 0.215614 +v 0.196447 0.712488 0.215702 +v 0.198734 0.721679 0.209027 +v 0.190423 0.724008 0.208944 +v 0.192250 0.731750 0.202492 +v 0.200656 0.729399 0.202570 +v 0.202238 0.735752 0.196367 +v 0.193752 0.738120 0.196295 +v 0.194956 0.743222 0.190389 +v 0.203505 0.740843 0.190454 +v 0.220206 0.723785 0.202597 +v 0.222019 0.730074 0.196391 +v 0.218002 0.716144 0.209055 +v 0.245102 0.707391 0.209055 +v 0.247678 0.714915 0.202597 +v 0.249798 0.721107 0.196391 +v 0.225418 0.741858 0.179657 +v 0.224596 0.739007 0.184885 +v 0.252810 0.729902 0.184885 +v 0.253771 0.732709 0.179657 +v 0.223473 0.735114 0.190475 +v 0.251497 0.726069 0.190475 +v 0.215379 0.707048 0.215731 +v 0.212306 0.696393 0.222589 +v 0.238444 0.687943 0.222589 +v 0.242036 0.698434 0.215731 +v 0.287960 0.723153 0.170430 +v 0.288150 0.723628 0.166514 +v 0.287547 0.722114 0.174826 +v 0.322633 0.707136 0.174826 +v 0.323097 0.708153 0.170430 +v 0.323310 0.708618 0.166514 +v 0.357455 0.691445 0.170430 +v 0.357690 0.691900 0.166514 +v 0.356942 0.690452 0.174826 +v 0.390391 0.672107 0.174826 +v 0.390953 0.673074 0.170430 +v 0.391210 0.673516 0.166514 +v 0.286811 0.720267 0.179657 +v 0.285714 0.717510 0.184885 +v 0.320576 0.702627 0.184885 +v 0.321808 0.705326 0.179657 +v 0.423508 0.653079 0.170430 +v 0.423786 0.653509 0.166514 +v 0.422899 0.652141 0.174826 +v 0.454389 0.630605 0.174826 +v 0.455043 0.631512 0.170430 +v 0.455342 0.631928 0.166514 +v 0.485481 0.608423 0.170430 +v 0.485801 0.608824 0.166514 +v 0.484784 0.607550 0.174826 +v 0.514012 0.583031 0.174826 +v 0.514751 0.583870 0.170430 +v 0.515090 0.584254 0.166514 +v 0.356029 0.688686 0.179657 +v 0.354666 0.686050 0.184885 +v 0.387902 0.667822 0.184885 +v 0.389392 0.670387 0.179657 +v 0.421817 0.650473 0.179657 +v 0.420203 0.647983 0.184885 +v 0.451493 0.626585 0.184885 +v 0.453227 0.628992 0.179657 +v 0.483544 0.605995 0.179657 +v 0.481693 0.603676 0.184885 +v 0.510735 0.579314 0.184885 +v 0.512697 0.581539 0.179657 +v 0.417999 0.644584 0.190476 +v 0.415145 0.640183 0.196391 +v 0.446057 0.619042 0.196391 +v 0.449124 0.623297 0.190476 +v 0.385867 0.664318 0.190476 +v 0.383233 0.659783 0.196391 +v 0.479166 0.600509 0.190476 +v 0.475895 0.596409 0.196391 +v 0.504586 0.572340 0.196391 +v 0.508055 0.576274 0.190476 +v 0.542780 0.557908 0.170430 +v 0.543136 0.558275 0.166514 +v 0.542000 0.557107 0.174826 +v 0.568683 0.529842 0.174826 +v 0.569501 0.530604 0.170430 +v 0.569875 0.530954 0.166514 +v 0.594850 0.502021 0.170430 +v 0.595241 0.502351 0.166514 +v 0.593995 0.501300 0.174826 +v 0.617878 0.471551 0.174826 +v 0.618767 0.472229 0.170430 +v 0.619173 0.472539 0.166514 +v 0.540612 0.555682 0.179657 +v 0.538545 0.553555 0.184885 +v 0.565058 0.526465 0.184885 +v 0.567228 0.528486 0.179657 +v 0.641192 0.441298 0.170430 +v 0.641614 0.441588 0.166514 +v 0.640271 0.440664 0.174826 +v 0.659791 0.411128 0.174826 +v 0.660742 0.411716 0.170430 +v 0.661177 0.411985 0.166514 +v 0.592476 0.500017 0.179657 +v 0.590209 0.498103 0.184885 +v 0.613939 0.468544 0.184885 +v 0.616297 0.470344 0.179657 +v 0.676033 0.385970 0.170430 +v 0.676481 0.386217 0.166514 +v 0.675054 0.385429 0.174826 +v 0.685229 0.366938 0.174816 +v 0.686226 0.367442 0.170423 +v 0.686683 0.367673 0.166510 +v 0.638633 0.439537 0.179657 +v 0.636189 0.437855 0.184885 +v 0.655576 0.408522 0.184885 +v 0.658100 0.410083 0.179657 +v 0.690485 0.359517 0.170403 +v 0.691651 0.356980 0.170362 +v 0.692106 0.357202 0.166479 +v 0.690944 0.359742 0.166500 +v 0.689484 0.359027 0.174784 +v 0.690655 0.356492 0.174720 +v 0.673313 0.384468 0.179657 +v 0.670716 0.383033 0.184885 +v 0.680806 0.364704 0.184867 +v 0.683454 0.366041 0.179642 +v 0.687702 0.358153 0.179598 +v 0.688881 0.355623 0.179510 +v 0.685041 0.356850 0.184812 +v 0.686232 0.354325 0.184701 +v 0.692564 0.354614 0.170295 +v 0.693224 0.352421 0.170200 +v 0.693667 0.352638 0.166396 +v 0.693014 0.354835 0.166444 +v 0.691577 0.354131 0.174613 +v 0.692251 0.351945 0.174464 +v 0.693632 0.350401 0.170079 +v 0.694065 0.350613 0.166333 +v 0.692676 0.349932 0.174271 +v 0.690963 0.349093 0.178892 +v 0.691170 0.347270 0.178569 +v 0.690512 0.351093 0.179157 +v 0.687904 0.349815 0.184257 +v 0.688387 0.347831 0.183925 +v 0.688633 0.346027 0.183519 +v 0.681405 0.355069 0.190389 +v 0.682607 0.352549 0.190260 +v 0.677188 0.362876 0.190454 +v 0.672506 0.360511 0.196367 +v 0.676697 0.352762 0.196295 +v 0.677911 0.350248 0.196150 +v 0.667169 0.381074 0.190476 +v 0.662578 0.378538 0.196391 +v 0.652129 0.406392 0.190476 +v 0.647668 0.403634 0.196391 +v 0.683580 0.350213 0.190044 +v 0.684325 0.348062 0.189742 +v 0.687186 0.351980 0.184516 +v 0.678903 0.347922 0.195909 +v 0.679674 0.345783 0.195571 +v 0.632851 0.435558 0.190476 +v 0.628531 0.432584 0.196391 +v 0.610717 0.466086 0.190476 +v 0.606548 0.462904 0.196391 +v 0.670820 0.349883 0.202492 +v 0.672045 0.347374 0.202334 +v 0.666662 0.357558 0.202570 +v 0.659561 0.353971 0.209027 +v 0.663677 0.346384 0.208944 +v 0.664912 0.343880 0.208776 +v 0.656849 0.375374 0.202597 +v 0.649888 0.371529 0.209055 +v 0.642101 0.400192 0.202597 +v 0.635337 0.396010 0.209055 +v 0.587112 0.495491 0.190476 +v 0.583103 0.492108 0.196391 +v 0.562093 0.523701 0.190476 +v 0.558256 0.520127 0.196391 +v 0.623139 0.428873 0.202597 +v 0.616588 0.424365 0.209055 +v 0.601345 0.458933 0.202597 +v 0.595024 0.454109 0.209055 +v 0.535719 0.550651 0.190476 +v 0.532062 0.546892 0.196391 +v 0.578102 0.487887 0.202597 +v 0.572025 0.482758 0.209055 +v 0.553466 0.515665 0.202597 +v 0.547649 0.510243 0.209055 +v 0.527498 0.542201 0.202597 +v 0.521952 0.536501 0.209055 +v 0.500258 0.567431 0.202597 +v 0.494999 0.561465 0.209055 +v 0.471813 0.591293 0.202597 +v 0.466853 0.585077 0.209055 +v 0.442231 0.613732 0.202597 +v 0.437582 0.607280 0.209055 +v 0.564790 0.476652 0.215731 +v 0.556316 0.469500 0.222589 +v 0.578683 0.441637 0.222589 +v 0.587498 0.448365 0.215731 +v 0.540722 0.503790 0.215731 +v 0.532609 0.496232 0.222589 +v 0.515351 0.529715 0.215731 +v 0.507618 0.521767 0.222589 +v 0.488738 0.554365 0.215731 +v 0.481405 0.546046 0.222589 +v 0.608790 0.418997 0.215731 +v 0.599655 0.412710 0.222589 +v 0.617853 0.385201 0.222589 +v 0.627284 0.391032 0.215731 +v 0.641600 0.366952 0.215731 +v 0.631894 0.361591 0.222589 +v 0.641204 0.344697 0.222558 +v 0.651107 0.349700 0.215702 +v 0.589096 0.405443 0.229591 +v 0.577025 0.397135 0.236703 +v 0.594485 0.370754 0.236703 +v 0.606949 0.378461 0.229591 +v 0.568493 0.433861 0.229591 +v 0.556843 0.424970 0.236703 +v 0.655172 0.342217 0.215614 +v 0.656417 0.339719 0.215439 +v 0.645208 0.337336 0.222467 +v 0.646462 0.334842 0.222285 +v 0.620673 0.355394 0.229591 +v 0.607844 0.348308 0.236703 +v 0.616668 0.332302 0.236671 +v 0.629756 0.338914 0.229560 +v 0.633689 0.331693 0.229466 +v 0.634952 0.329203 0.229278 +v 0.620517 0.325240 0.236575 +v 0.621789 0.322754 0.236383 +v 0.673056 0.345057 0.202072 +v 0.673853 0.342932 0.201705 +v 0.665941 0.341572 0.208497 +v 0.666764 0.339459 0.208107 +v 0.657463 0.337418 0.215146 +v 0.658309 0.335317 0.214736 +v 0.647524 0.332549 0.221981 +v 0.648392 0.330458 0.221556 +v 0.684841 0.346094 0.189353 +v 0.685129 0.344311 0.188878 +v 0.680225 0.343833 0.195136 +v 0.680555 0.342070 0.194605 +v 0.691135 0.345625 0.178186 +v 0.690856 0.344156 0.177745 +v 0.688643 0.344404 0.183038 +v 0.688418 0.342961 0.182484 +v 0.674438 0.340998 0.201233 +v 0.674809 0.339255 0.200657 +v 0.667381 0.337540 0.207604 +v 0.667791 0.335817 0.206991 +v 0.685188 0.342712 0.188317 +v 0.685019 0.341296 0.187670 +v 0.680664 0.340495 0.193978 +v 0.680553 0.339109 0.193254 +v 0.690335 0.342865 0.177245 +v 0.689571 0.341750 0.176686 +v 0.691067 0.342483 0.172671 +v 0.691886 0.343625 0.173076 +v 0.687956 0.341699 0.181856 +v 0.687258 0.340617 0.181154 +v 0.688563 0.340812 0.176068 +v 0.688590 0.338361 0.175583 +v 0.689979 0.339039 0.171870 +v 0.689999 0.341516 0.172222 +v 0.686325 0.339716 0.180378 +v 0.686408 0.337297 0.179769 +v 0.684621 0.340065 0.186936 +v 0.683995 0.339019 0.186116 +v 0.680221 0.337910 0.192433 +v 0.679667 0.336898 0.191516 +v 0.674967 0.337704 0.199975 +v 0.674911 0.336345 0.199189 +v 0.667995 0.334289 0.206265 +v 0.667993 0.332956 0.205428 +v 0.683141 0.338156 0.185209 +v 0.683283 0.335773 0.184497 +v 0.678894 0.336075 0.190502 +v 0.679096 0.333730 0.189706 +v 0.674642 0.335177 0.198297 +v 0.674160 0.334200 0.197301 +v 0.667785 0.331818 0.204479 +v 0.667371 0.330874 0.203419 +v 0.673465 0.333416 0.196200 +v 0.673725 0.331110 0.195335 +v 0.666751 0.330126 0.202247 +v 0.667064 0.327861 0.201327 +v 0.659651 0.330201 0.212804 +v 0.659699 0.328892 0.211926 +v 0.659403 0.331708 0.213565 +v 0.649548 0.326880 0.220341 +v 0.649836 0.325393 0.219551 +v 0.649931 0.324107 0.218639 +v 0.658647 0.326157 0.208589 +v 0.659009 0.323932 0.207623 +v 0.659197 0.326870 0.209819 +v 0.649541 0.322140 0.216452 +v 0.649057 0.321458 0.215176 +v 0.649462 0.319275 0.214173 +v 0.659548 0.327782 0.210931 +v 0.649833 0.323023 0.217606 +v 0.637882 0.315984 0.221958 +v 0.638326 0.313842 0.220925 +v 0.638306 0.316636 0.223272 +v 0.625394 0.310310 0.230236 +v 0.625024 0.309685 0.228891 +v 0.625501 0.307586 0.227835 +v 0.638543 0.317492 0.224460 +v 0.638593 0.318552 0.225524 +v 0.625586 0.312181 0.232541 +v 0.625581 0.311142 0.231452 +v 0.610385 0.302513 0.235933 +v 0.610888 0.300458 0.234858 +v 0.610705 0.303114 0.237303 +v 0.595460 0.295645 0.243985 +v 0.595182 0.295065 0.242597 +v 0.595707 0.293053 0.241506 +v 0.580635 0.287939 0.248394 +v 0.581178 0.285965 0.247291 +v 0.580876 0.288500 0.249797 +v 0.566024 0.281224 0.255164 +v 0.565817 0.280679 0.253748 +v 0.566373 0.278743 0.252636 +v 0.610848 0.303924 0.238541 +v 0.610813 0.304943 0.239650 +v 0.595493 0.297438 0.246366 +v 0.595563 0.296436 0.245241 +v 0.580945 0.289275 0.251067 +v 0.580845 0.290262 0.252204 +v 0.565938 0.282959 0.257591 +v 0.566064 0.281984 0.256445 +v 0.549990 0.274110 0.261801 +v 0.549976 0.273363 0.260511 +v 0.549839 0.275072 0.262955 +v 0.532512 0.266584 0.268278 +v 0.532684 0.265632 0.267117 +v 0.532695 0.264897 0.265819 +v 0.580575 0.291462 0.253206 +v 0.580136 0.292875 0.254075 +v 0.565184 0.285550 0.259479 +v 0.565643 0.284147 0.258603 +v 0.595250 0.298651 0.247357 +v 0.594835 0.300076 0.248217 +v 0.549525 0.276250 0.263974 +v 0.549047 0.277644 0.264856 +v 0.531684 0.269138 0.270191 +v 0.532179 0.267752 0.269303 +v 0.610601 0.306172 0.240628 +v 0.610211 0.307609 0.241475 +v 0.625409 0.313426 0.233501 +v 0.625049 0.314878 0.234334 +v 0.638455 0.319817 0.226463 +v 0.638129 0.321286 0.227276 +v 0.579525 0.294500 0.254811 +v 0.578746 0.296339 0.255412 +v 0.563763 0.288999 0.260828 +v 0.564557 0.287167 0.260221 +v 0.594243 0.301711 0.248944 +v 0.593480 0.303557 0.249539 +v 0.609644 0.309255 0.242192 +v 0.608898 0.311111 0.242779 +v 0.624507 0.316537 0.235038 +v 0.623783 0.318403 0.235614 +v 0.637616 0.322959 0.227964 +v 0.636915 0.324836 0.228528 +v 0.649066 0.328568 0.221009 +v 0.658956 0.333413 0.214209 +v 0.636027 0.326917 0.228966 +v 0.622877 0.320475 0.236063 +v 0.607976 0.313175 0.243236 +v 0.606875 0.315448 0.243562 +v 0.591433 0.307883 0.250333 +v 0.592542 0.305614 0.250002 +v 0.605597 0.317931 0.243757 +v 0.601843 0.324812 0.243855 +v 0.586493 0.317057 0.250630 +v 0.590149 0.310362 0.250531 +v 0.593315 0.340283 0.243888 +v 0.578269 0.331973 0.250663 +v 0.580365 0.362026 0.243888 +v 0.565746 0.352988 0.250663 +v 0.577797 0.298390 0.255880 +v 0.576678 0.300654 0.256215 +v 0.561675 0.293305 0.261637 +v 0.562803 0.291045 0.261300 +v 0.575387 0.303131 0.256415 +v 0.571828 0.309648 0.256515 +v 0.556918 0.302116 0.261940 +v 0.560382 0.295780 0.261839 +v 0.563896 0.324034 0.256549 +v 0.549283 0.315963 0.261974 +v 0.551778 0.344353 0.256549 +v 0.537580 0.335574 0.261974 +v 0.563350 0.387724 0.243888 +v 0.549192 0.377979 0.250663 +v 0.543648 0.414899 0.243888 +v 0.529985 0.404472 0.250663 +v 0.546520 0.461232 0.229591 +v 0.535320 0.451780 0.236703 +v 0.523230 0.487494 0.229591 +v 0.512508 0.477504 0.236703 +v 0.535666 0.368669 0.256549 +v 0.521914 0.359205 0.261974 +v 0.516931 0.394510 0.256549 +v 0.503661 0.384382 0.261974 +v 0.522635 0.441075 0.243888 +v 0.509500 0.429989 0.250663 +v 0.500363 0.466188 0.243887 +v 0.487788 0.454472 0.250663 +v 0.533521 0.307258 0.267369 +v 0.516570 0.297895 0.272718 +v 0.523541 0.285255 0.272684 +v 0.540836 0.293992 0.267335 +v 0.522264 0.326106 0.267369 +v 0.505793 0.315923 0.272718 +v 0.544195 0.287850 0.267233 +v 0.545493 0.285377 0.267029 +v 0.526787 0.279322 0.272581 +v 0.528089 0.276851 0.272376 +v 0.546628 0.283120 0.266690 +v 0.547598 0.281079 0.266214 +v 0.529230 0.274597 0.272035 +v 0.530209 0.272561 0.271557 +v 0.507081 0.348996 0.267369 +v 0.491130 0.338018 0.272718 +v 0.489347 0.373458 0.267369 +v 0.473953 0.361710 0.272718 +v 0.508116 0.270175 0.277869 +v 0.509422 0.267706 0.277663 +v 0.504992 0.275884 0.277972 +v 0.485149 0.265859 0.283183 +v 0.488143 0.260390 0.283080 +v 0.489452 0.257923 0.282873 +v 0.498390 0.287855 0.278006 +v 0.478942 0.277113 0.283218 +v 0.488128 0.305003 0.278006 +v 0.469230 0.293320 0.283218 +v 0.548404 0.279254 0.265603 +v 0.531027 0.270741 0.270942 +v 0.510569 0.265455 0.277319 +v 0.511557 0.263423 0.276839 +v 0.490604 0.255675 0.282528 +v 0.491600 0.253646 0.282046 +v 0.512386 0.261609 0.276221 +v 0.513055 0.260012 0.275466 +v 0.492439 0.251837 0.281425 +v 0.493121 0.250247 0.280667 +v 0.513566 0.258634 0.274574 +v 0.513918 0.257474 0.273544 +v 0.493647 0.248876 0.279770 +v 0.494016 0.247724 0.278736 +v 0.469294 0.245235 0.287646 +v 0.470298 0.243210 0.287161 +v 0.468137 0.247480 0.287992 +v 0.445436 0.236359 0.293004 +v 0.446599 0.234117 0.292657 +v 0.447609 0.232095 0.292171 +v 0.514111 0.256533 0.272377 +v 0.514144 0.255809 0.271073 +v 0.494228 0.246792 0.277564 +v 0.494283 0.246079 0.276254 +v 0.471146 0.241406 0.286539 +v 0.471841 0.239821 0.285777 +v 0.448467 0.230295 0.291546 +v 0.449172 0.228716 0.290782 +v 0.472380 0.238457 0.284877 +v 0.472765 0.237314 0.283839 +v 0.449725 0.227359 0.289879 +v 0.450125 0.226223 0.288838 +v 0.514019 0.255303 0.269631 +v 0.514597 0.253487 0.268498 +v 0.533118 0.262521 0.263258 +v 0.532544 0.264379 0.264385 +v 0.494182 0.245585 0.274806 +v 0.494762 0.243811 0.273668 +v 0.549798 0.272832 0.259085 +v 0.550364 0.270934 0.257964 +v 0.472995 0.236390 0.282663 +v 0.473071 0.235687 0.281348 +v 0.450373 0.225308 0.287657 +v 0.450468 0.224614 0.286338 +v 0.472992 0.235205 0.279894 +v 0.473574 0.233475 0.278752 +v 0.450410 0.224142 0.284880 +v 0.450990 0.222459 0.283734 +v 0.426395 0.212377 0.289747 +v 0.426970 0.210742 0.288598 +v 0.426432 0.212839 0.291209 +v 0.400924 0.200343 0.295945 +v 0.400906 0.199890 0.294479 +v 0.401475 0.198306 0.293327 +v 0.426319 0.213524 0.292532 +v 0.426055 0.214431 0.293716 +v 0.400514 0.201918 0.298457 +v 0.400793 0.201019 0.297271 +v 0.373755 0.187773 0.301859 +v 0.373902 0.187105 0.300529 +v 0.373461 0.188665 0.303048 +v 0.344856 0.174652 0.307471 +v 0.345163 0.173766 0.306280 +v 0.345325 0.173105 0.304948 +v 0.425640 0.215560 0.294760 +v 0.425075 0.216911 0.295665 +v 0.399509 0.204386 0.300412 +v 0.400086 0.203041 0.299505 +v 0.373020 0.189782 0.304097 +v 0.372432 0.191122 0.305006 +v 0.343804 0.177097 0.309433 +v 0.344402 0.175762 0.308522 +v 0.424359 0.218485 0.296431 +v 0.423493 0.220281 0.297058 +v 0.397908 0.207747 0.301808 +v 0.398783 0.205955 0.301180 +v 0.371697 0.192686 0.305776 +v 0.370815 0.194474 0.306405 +v 0.342170 0.180441 0.310835 +v 0.343060 0.178657 0.310204 +v 0.422476 0.222299 0.297545 +v 0.421308 0.224539 0.297894 +v 0.395713 0.212000 0.302646 +v 0.396885 0.209762 0.302297 +v 0.369785 0.196486 0.306895 +v 0.368609 0.198722 0.307245 +v 0.339955 0.184685 0.311676 +v 0.341135 0.182451 0.311325 +v 0.312830 0.163847 0.314449 +v 0.313583 0.162292 0.313677 +v 0.311934 0.165629 0.315080 +v 0.288346 0.154073 0.318231 +v 0.289250 0.152296 0.317598 +v 0.290012 0.150744 0.316825 +v 0.310894 0.167635 0.315572 +v 0.309709 0.169868 0.315922 +v 0.286111 0.158307 0.319074 +v 0.287300 0.156077 0.318723 +v 0.367285 0.201182 0.307455 +v 0.365082 0.205203 0.307560 +v 0.336614 0.190821 0.311991 +v 0.338628 0.187144 0.311886 +v 0.394392 0.214462 0.302855 +v 0.392011 0.218807 0.302960 +v 0.314191 0.160961 0.312764 +v 0.314655 0.159856 0.311711 +v 0.290632 0.149420 0.315911 +v 0.291109 0.148321 0.314857 +v 0.308381 0.172326 0.316133 +v 0.306565 0.175640 0.316238 +v 0.283119 0.163796 0.319390 +v 0.284780 0.160764 0.319285 +v 0.314975 0.158977 0.310518 +v 0.315152 0.158323 0.309185 +v 0.291444 0.147449 0.313662 +v 0.291636 0.146803 0.312326 +v 0.373902 0.186661 0.299060 +v 0.345342 0.172669 0.303476 +v 0.374464 0.185130 0.297906 +v 0.345894 0.171193 0.302320 +v 0.315184 0.157895 0.307711 +v 0.315724 0.156476 0.306553 +v 0.291687 0.146384 0.310850 +v 0.292221 0.145012 0.309691 +v 0.281970 0.145177 0.317050 +v 0.282465 0.144087 0.315994 +v 0.281336 0.146494 0.317966 +v 0.280098 0.145888 0.318082 +v 0.280755 0.144581 0.317165 +v 0.281276 0.143504 0.316107 +v 0.283109 0.142182 0.311981 +v 0.283655 0.140833 0.310819 +v 0.283034 0.142589 0.313459 +v 0.281907 0.142037 0.313569 +v 0.282018 0.141647 0.312088 +v 0.282593 0.140315 0.310924 +v 0.282820 0.143224 0.314797 +v 0.281660 0.142656 0.314909 +v 0.280983 0.141140 0.312156 +v 0.281600 0.139830 0.310991 +v 0.280817 0.141503 0.313638 +v 0.280521 0.142098 0.314980 +v 0.280092 0.142924 0.316180 +v 0.278941 0.142360 0.316194 +v 0.279430 0.141564 0.314996 +v 0.279533 0.143982 0.317239 +v 0.278842 0.145272 0.318157 +v 0.277591 0.144659 0.318168 +v 0.278328 0.143392 0.317252 +v 0.278416 0.141067 0.314941 +v 0.277847 0.141824 0.316131 +v 0.276825 0.141324 0.315982 +v 0.277492 0.140614 0.314811 +v 0.277164 0.142822 0.317182 +v 0.276366 0.144059 0.318092 +v 0.275183 0.143480 0.317911 +v 0.276056 0.142279 0.317016 +v 0.276671 0.140212 0.314603 +v 0.275890 0.140866 0.315739 +v 0.275036 0.140447 0.315389 +v 0.275942 0.139855 0.314312 +v 0.277361 0.139810 0.313334 +v 0.276772 0.139522 0.313107 +v 0.277962 0.139660 0.311932 +v 0.278919 0.138522 0.310830 +v 0.277528 0.139448 0.311775 +v 0.278606 0.138370 0.310729 +v 0.275020 0.141771 0.316740 +v 0.274059 0.142929 0.317608 +v 0.272999 0.142410 0.317165 +v 0.274055 0.141299 0.316340 +v 0.273161 0.140861 0.315801 +v 0.274257 0.140066 0.314924 +v 0.272006 0.141923 0.316561 +v 0.271077 0.141468 0.315763 +v 0.272328 0.140453 0.315085 +v 0.273534 0.139711 0.314302 +v 0.270790 0.143252 0.317205 +v 0.269515 0.144848 0.317731 +v 0.268439 0.144320 0.316807 +v 0.269780 0.142757 0.316337 +v 0.271867 0.143780 0.317862 +v 0.270661 0.145409 0.318433 +v 0.273009 0.144339 0.318343 +v 0.271869 0.146001 0.318944 +v 0.274207 0.144926 0.318669 +v 0.273128 0.146618 0.319289 +v 0.275453 0.145536 0.318863 +v 0.274425 0.147253 0.319493 +v 0.276729 0.146162 0.318944 +v 0.275743 0.147899 0.319578 +v 0.268180 0.146710 0.318140 +v 0.266785 0.148839 0.318433 +v 0.265620 0.148269 0.317433 +v 0.267052 0.146158 0.317172 +v 0.269380 0.147298 0.318876 +v 0.268023 0.149446 0.319193 +v 0.278020 0.146794 0.318934 +v 0.277067 0.148547 0.319570 +v 0.279305 0.147423 0.318858 +v 0.278374 0.149188 0.319493 +v 0.270639 0.147915 0.319412 +v 0.269320 0.150081 0.319745 +v 0.271945 0.148555 0.319772 +v 0.270659 0.150737 0.320116 +v 0.273282 0.149210 0.319983 +v 0.272025 0.151406 0.320333 +v 0.274634 0.149872 0.320072 +v 0.273400 0.152080 0.320424 +v 0.280561 0.148039 0.318740 +v 0.279647 0.149811 0.319374 +v 0.275982 0.150532 0.320064 +v 0.274766 0.152749 0.320417 +v 0.277308 0.151182 0.319986 +v 0.276105 0.153405 0.320339 +v 0.278593 0.151811 0.319867 +v 0.277398 0.154039 0.320219 +v 0.270653 0.153843 0.320543 +v 0.269064 0.156695 0.320648 +v 0.267682 0.155997 0.320426 +v 0.269270 0.153165 0.320323 +v 0.272042 0.154523 0.320636 +v 0.270451 0.157396 0.320742 +v 0.276064 0.156493 0.320430 +v 0.274458 0.159420 0.320536 +v 0.273165 0.158767 0.320656 +v 0.274765 0.155857 0.320550 +v 0.273419 0.155198 0.320629 +v 0.271824 0.158090 0.320735 +v 0.272449 0.163064 0.320571 +v 0.271182 0.162364 0.320692 +v 0.280938 0.167752 0.319426 +v 0.276830 0.174375 0.319426 +v 0.268582 0.169276 0.320571 +v 0.267350 0.168514 0.320692 +v 0.269865 0.161637 0.320770 +v 0.268518 0.160893 0.320777 +v 0.266071 0.167724 0.320770 +v 0.264762 0.166914 0.320777 +v 0.267157 0.160141 0.320684 +v 0.265799 0.159391 0.320461 +v 0.263439 0.166096 0.320684 +v 0.262120 0.165281 0.320461 +v 0.267910 0.152499 0.319946 +v 0.266321 0.155309 0.320046 +v 0.265000 0.154642 0.319479 +v 0.266591 0.151853 0.319384 +v 0.264462 0.158653 0.320079 +v 0.263164 0.157936 0.319510 +v 0.260821 0.164478 0.320079 +v 0.259559 0.163698 0.319510 +v 0.265330 0.151235 0.318608 +v 0.263736 0.154003 0.318696 +v 0.262546 0.153402 0.317668 +v 0.264144 0.150654 0.317590 +v 0.261921 0.157249 0.318725 +v 0.260752 0.156603 0.317694 +v 0.258352 0.162951 0.318725 +v 0.257215 0.162249 0.317694 +v 0.256420 0.176480 0.320684 +v 0.255142 0.175600 0.320461 +v 0.257701 0.177361 0.320777 +v 0.248688 0.189793 0.320777 +v 0.247452 0.188849 0.320684 +v 0.246219 0.187908 0.320461 +v 0.263049 0.150117 0.316299 +v 0.264545 0.147742 0.316165 +v 0.261448 0.152848 0.316366 +v 0.260460 0.152348 0.314760 +v 0.262061 0.149634 0.314704 +v 0.263572 0.147265 0.314591 +v 0.253884 0.174735 0.320079 +v 0.252663 0.173894 0.319510 +v 0.245005 0.186982 0.320079 +v 0.243826 0.186082 0.319510 +v 0.259673 0.156007 0.316388 +v 0.258702 0.155471 0.314779 +v 0.256167 0.161601 0.316388 +v 0.255223 0.161017 0.314779 +v 0.251493 0.173089 0.318725 +v 0.250393 0.172332 0.317694 +v 0.242697 0.185221 0.318725 +v 0.241635 0.184410 0.317694 +v 0.266009 0.145646 0.315941 +v 0.267441 0.143831 0.315629 +v 0.265062 0.145182 0.314404 +v 0.266529 0.143385 0.314141 +v 0.268840 0.142297 0.315226 +v 0.270208 0.141042 0.314735 +v 0.267974 0.141872 0.313804 +v 0.269397 0.140645 0.313391 +v 0.261198 0.149211 0.312773 +v 0.262719 0.146847 0.312676 +v 0.259599 0.151913 0.312821 +v 0.258800 0.151510 0.310714 +v 0.260398 0.148819 0.310673 +v 0.261925 0.146458 0.310590 +v 0.257856 0.155004 0.312837 +v 0.257072 0.154571 0.310728 +v 0.254401 0.160509 0.312837 +v 0.253640 0.160039 0.310728 +v 0.264223 0.144772 0.312516 +v 0.265712 0.142985 0.312291 +v 0.263439 0.144388 0.310452 +v 0.264942 0.142608 0.310258 +v 0.247667 0.170456 0.312837 +v 0.246930 0.169949 0.310728 +v 0.248463 0.171004 0.314779 +v 0.239773 0.182989 0.314779 +v 0.239005 0.182403 0.312837 +v 0.238294 0.181860 0.310728 +v 0.267185 0.141486 0.312002 +v 0.268641 0.140275 0.311648 +v 0.266434 0.141118 0.310009 +v 0.267913 0.139918 0.309705 +v 0.271543 0.140068 0.314154 +v 0.272847 0.139375 0.313483 +v 0.270798 0.139703 0.312904 +v 0.272177 0.139047 0.312341 +v 0.270082 0.139353 0.311231 +v 0.271507 0.138718 0.310749 +v 0.269380 0.139009 0.309346 +v 0.270836 0.138390 0.308931 +v 0.272916 0.138372 0.310203 +v 0.273534 0.138675 0.311704 +v 0.272280 0.138061 0.308461 +v 0.274118 0.138961 0.312724 +v 0.275357 0.138828 0.311874 +v 0.275811 0.139051 0.312423 +v 0.274695 0.139244 0.313415 +v 0.276564 0.138976 0.310936 +v 0.277996 0.138072 0.310199 +v 0.278208 0.138175 0.310467 +v 0.276882 0.139131 0.311328 +v 0.229767 0.193911 0.312837 +v 0.229083 0.193334 0.310728 +v 0.230506 0.194534 0.314779 +v 0.220683 0.205610 0.314779 +v 0.219976 0.204951 0.312837 +v 0.219321 0.204341 0.310728 +v 0.249377 0.171633 0.316388 +v 0.240655 0.183662 0.316388 +v 0.231353 0.195249 0.316388 +v 0.232295 0.196044 0.317694 +v 0.222396 0.207207 0.317694 +v 0.221495 0.206366 0.316388 +v 0.233316 0.196906 0.318725 +v 0.234401 0.197822 0.319510 +v 0.224413 0.209085 0.319510 +v 0.223374 0.208117 0.318725 +v 0.209654 0.215498 0.312837 +v 0.209030 0.214857 0.310728 +v 0.210328 0.216191 0.314779 +v 0.199467 0.226251 0.314779 +v 0.198828 0.225526 0.312837 +v 0.198236 0.224855 0.310728 +v 0.211102 0.216986 0.316388 +v 0.211961 0.217869 0.317694 +v 0.201016 0.228008 0.317694 +v 0.200201 0.227083 0.316388 +v 0.187522 0.235010 0.312837 +v 0.186964 0.234311 0.310728 +v 0.188125 0.235765 0.314779 +v 0.176330 0.244712 0.314779 +v 0.175765 0.243928 0.312837 +v 0.175242 0.243203 0.310728 +v 0.188817 0.236633 0.316388 +v 0.189586 0.237596 0.317694 +v 0.177699 0.246613 0.317694 +v 0.176979 0.245613 0.316388 +v 0.212893 0.218827 0.318725 +v 0.213883 0.219844 0.319510 +v 0.202838 0.230075 0.319510 +v 0.201899 0.229010 0.318725 +v 0.190419 0.238640 0.318725 +v 0.191304 0.239750 0.319510 +v 0.179310 0.248848 0.319510 +v 0.178480 0.247697 0.318725 +v 0.163584 0.252259 0.312837 +v 0.163097 0.251508 0.310728 +v 0.164110 0.253070 0.314779 +v 0.151495 0.260817 0.314779 +v 0.151010 0.259982 0.312837 +v 0.150560 0.259208 0.310728 +v 0.164714 0.254000 0.316388 +v 0.165384 0.255035 0.317694 +v 0.152671 0.262843 0.317694 +v 0.152052 0.261777 0.316388 +v 0.138071 0.267078 0.312837 +v 0.137660 0.266283 0.310728 +v 0.138515 0.267937 0.314779 +v 0.125201 0.274411 0.314779 +v 0.124800 0.273531 0.312837 +v 0.124428 0.272717 0.310728 +v 0.139024 0.268922 0.316388 +v 0.139590 0.270017 0.317694 +v 0.126173 0.276541 0.317694 +v 0.125661 0.275420 0.316388 +v 0.166111 0.256156 0.318725 +v 0.166884 0.257347 0.319510 +v 0.154055 0.265225 0.319510 +v 0.153342 0.263998 0.318725 +v 0.140204 0.271204 0.318725 +v 0.140856 0.272465 0.319510 +v 0.127317 0.279048 0.319510 +v 0.126728 0.277757 0.318725 +v 0.111228 0.279325 0.312837 +v 0.110897 0.278494 0.310728 +v 0.111585 0.280223 0.314779 +v 0.100347 0.284598 0.314779 +v 0.100034 0.283684 0.312837 +v 0.099745 0.282837 0.310728 +v 0.111996 0.281254 0.316388 +v 0.112452 0.282399 0.317694 +v 0.101106 0.286814 0.317694 +v 0.100707 0.285647 0.316388 +v 0.093900 0.285830 0.312837 +v 0.093652 0.284970 0.310728 +v 0.094167 0.286758 0.314779 +v 0.090732 0.287780 0.314760 +v 0.090499 0.286843 0.312821 +v 0.090283 0.285975 0.310714 +v 0.087509 0.287803 0.312773 +v 0.084867 0.288761 0.312676 +v 0.084664 0.287900 0.310590 +v 0.087305 0.286936 0.310673 +v 0.087730 0.288738 0.314704 +v 0.085085 0.289686 0.314591 +v 0.094475 0.287824 0.316388 +v 0.094816 0.289008 0.317694 +v 0.091297 0.290048 0.317668 +v 0.091000 0.288854 0.316366 +v 0.087982 0.289808 0.316299 +v 0.085334 0.290740 0.316165 +v 0.088262 0.290995 0.317590 +v 0.085609 0.291906 0.317433 +v 0.082509 0.289767 0.312516 +v 0.080436 0.290822 0.312291 +v 0.080240 0.289988 0.310258 +v 0.082309 0.288918 0.310452 +v 0.082724 0.290676 0.314404 +v 0.080645 0.291707 0.314141 +v 0.095187 0.290292 0.318725 +v 0.095580 0.291656 0.319510 +v 0.091961 0.292715 0.319479 +v 0.091619 0.291341 0.318696 +v 0.101539 0.288078 0.318725 +v 0.101999 0.289421 0.319510 +v 0.078648 0.291925 0.312002 +v 0.077144 0.293077 0.311648 +v 0.076958 0.292287 0.309705 +v 0.078456 0.291111 0.310009 +v 0.078850 0.292781 0.313804 +v 0.077337 0.293896 0.313391 +v 0.082966 0.291702 0.315941 +v 0.080878 0.292695 0.315629 +v 0.083233 0.292833 0.317172 +v 0.081134 0.293777 0.316807 +v 0.088566 0.292281 0.318608 +v 0.085907 0.293168 0.318433 +v 0.088888 0.293648 0.319384 +v 0.086223 0.294510 0.319193 +v 0.075925 0.294277 0.311231 +v 0.074990 0.295525 0.310749 +v 0.074819 0.294798 0.308931 +v 0.075746 0.293516 0.309346 +v 0.076108 0.295053 0.312904 +v 0.075162 0.296252 0.312341 +v 0.079071 0.293720 0.315226 +v 0.077545 0.294775 0.314735 +v 0.079312 0.294738 0.316337 +v 0.077767 0.295716 0.315763 +v 0.074340 0.296822 0.310203 +v 0.074178 0.296133 0.308461 +v 0.074498 0.297493 0.311704 +v 0.076299 0.295861 0.314154 +v 0.075333 0.296978 0.313483 +v 0.076499 0.296711 0.315085 +v 0.075509 0.297722 0.314302 +v 0.074648 0.298125 0.312724 +v 0.074243 0.299304 0.311874 +v 0.074795 0.298751 0.313415 +v 0.074359 0.299796 0.312423 +v 0.074118 0.300514 0.310936 +v 0.072853 0.301724 0.310199 +v 0.074200 0.300858 0.311328 +v 0.072907 0.301952 0.310467 +v 0.076712 0.297614 0.315801 +v 0.075693 0.298506 0.314924 +v 0.078004 0.296723 0.316561 +v 0.078258 0.297799 0.317165 +v 0.076941 0.298582 0.316340 +v 0.075893 0.299350 0.315389 +v 0.079570 0.295833 0.317205 +v 0.081409 0.294943 0.317731 +v 0.081702 0.296186 0.318433 +v 0.079845 0.297000 0.317862 +v 0.077187 0.299628 0.316740 +v 0.076111 0.300276 0.315739 +v 0.078530 0.298949 0.317608 +v 0.078817 0.300167 0.317911 +v 0.077452 0.300751 0.317016 +v 0.076350 0.301290 0.315982 +v 0.080137 0.298238 0.318343 +v 0.082011 0.297495 0.318944 +v 0.082333 0.298859 0.319289 +v 0.080444 0.299536 0.318669 +v 0.075300 0.300892 0.314603 +v 0.074755 0.301476 0.313334 +v 0.074605 0.300838 0.313107 +v 0.075114 0.300102 0.314312 +v 0.075510 0.301781 0.314811 +v 0.074932 0.302227 0.313502 +v 0.075747 0.302783 0.314941 +v 0.075141 0.303111 0.313610 +v 0.076612 0.302397 0.316131 +v 0.076891 0.303583 0.316194 +v 0.076006 0.303883 0.314996 +v 0.075378 0.304114 0.313656 +v 0.077736 0.301952 0.317182 +v 0.079119 0.301448 0.318092 +v 0.079433 0.302776 0.318168 +v 0.078033 0.303214 0.317252 +v 0.076285 0.305064 0.314980 +v 0.077186 0.304830 0.316180 +v 0.077488 0.306113 0.316107 +v 0.076576 0.306299 0.314908 +v 0.075639 0.305222 0.313638 +v 0.075918 0.306403 0.313569 +v 0.080762 0.300886 0.318863 +v 0.082664 0.300265 0.319493 +v 0.083002 0.301694 0.319578 +v 0.081089 0.302269 0.318944 +v 0.078342 0.304520 0.317239 +v 0.079753 0.304132 0.318157 +v 0.080074 0.305493 0.318082 +v 0.078654 0.305844 0.317165 +v 0.081419 0.303669 0.318934 +v 0.083340 0.303128 0.319570 +v 0.083674 0.304545 0.319493 +v 0.081747 0.305061 0.318858 +v 0.084826 0.299585 0.319983 +v 0.087247 0.298847 0.320333 +v 0.087598 0.300337 0.320424 +v 0.085171 0.301050 0.320072 +v 0.084484 0.298136 0.319772 +v 0.086897 0.297367 0.320116 +v 0.085516 0.302511 0.320064 +v 0.087948 0.301817 0.320417 +v 0.088290 0.303269 0.320339 +v 0.085855 0.303948 0.319986 +v 0.082069 0.306423 0.318740 +v 0.080390 0.306835 0.317966 +v 0.084000 0.305925 0.319374 +v 0.086224 0.315353 0.318231 +v 0.084290 0.315840 0.317598 +v 0.082609 0.316238 0.316825 +v 0.084150 0.296721 0.319412 +v 0.086555 0.295915 0.319745 +v 0.083828 0.295355 0.318876 +v 0.078965 0.307161 0.317050 +v 0.077792 0.307402 0.315994 +v 0.081179 0.316548 0.315911 +v 0.080002 0.316770 0.314857 +v 0.076873 0.307556 0.314797 +v 0.076206 0.307624 0.313459 +v 0.079078 0.316903 0.313662 +v 0.078405 0.316947 0.312326 +v 0.086184 0.305341 0.319867 +v 0.088621 0.304670 0.320219 +v 0.090849 0.314114 0.319074 +v 0.088410 0.314778 0.318723 +v 0.090320 0.341396 0.314449 +v 0.088636 0.341784 0.313677 +v 0.092255 0.340917 0.315080 +v 0.099987 0.373687 0.310835 +v 0.098049 0.374158 0.310204 +v 0.096363 0.374538 0.309433 +v 0.094443 0.340348 0.315572 +v 0.096883 0.339689 0.315922 +v 0.104616 0.372469 0.311676 +v 0.102176 0.373124 0.311325 +v 0.087204 0.342082 0.312764 +v 0.086023 0.342289 0.311711 +v 0.094929 0.374825 0.308522 +v 0.093745 0.375020 0.307471 +v 0.075792 0.307607 0.311981 +v 0.074288 0.307855 0.310819 +v 0.074019 0.306703 0.310924 +v 0.075513 0.306425 0.312088 +v 0.077985 0.316903 0.310850 +v 0.076459 0.317135 0.309691 +v 0.075248 0.305303 0.312156 +v 0.073767 0.305627 0.310991 +v 0.073542 0.304664 0.311013 +v 0.075006 0.304276 0.312176 +v 0.085095 0.342406 0.310518 +v 0.084418 0.342433 0.309185 +v 0.092814 0.375124 0.306279 +v 0.092134 0.375135 0.304948 +v 0.100125 0.406112 0.301859 +v 0.099441 0.406107 0.300529 +v 0.101060 0.406023 0.303048 +v 0.107977 0.435343 0.298457 +v 0.107038 0.435415 0.297271 +v 0.106350 0.435393 0.295945 +v 0.102246 0.405841 0.304097 +v 0.103683 0.405565 0.305006 +v 0.110607 0.434911 0.300412 +v 0.109167 0.435174 0.299505 +v 0.105372 0.405195 0.305776 +v 0.107311 0.404732 0.306405 +v 0.114239 0.434096 0.301808 +v 0.112298 0.434551 0.301180 +v 0.115701 0.462870 0.294760 +v 0.114508 0.463024 0.293716 +v 0.117144 0.462619 0.295665 +v 0.123306 0.488735 0.290782 +v 0.121859 0.488973 0.289879 +v 0.120663 0.489111 0.288838 +v 0.109502 0.404175 0.306895 +v 0.111943 0.403524 0.307245 +v 0.118874 0.432899 0.302646 +v 0.116431 0.433545 0.302297 +v 0.118837 0.462271 0.296431 +v 0.120781 0.461824 0.297058 +v 0.126947 0.487961 0.292171 +v 0.125002 0.488398 0.291546 +v 0.122975 0.461281 0.297545 +v 0.125418 0.460639 0.297894 +v 0.131588 0.486789 0.293004 +v 0.129143 0.487425 0.292657 +v 0.114636 0.402779 0.307455 +v 0.119045 0.401524 0.307560 +v 0.126332 0.430801 0.302960 +v 0.121567 0.432157 0.302855 +v 0.107308 0.371721 0.311886 +v 0.111341 0.370573 0.311991 +v 0.128112 0.459901 0.298102 +v 0.133214 0.458448 0.298207 +v 0.139701 0.484511 0.293316 +v 0.134282 0.486053 0.293212 +v 0.134946 0.512022 0.287646 +v 0.132749 0.512551 0.287161 +v 0.137392 0.511392 0.287992 +v 0.142843 0.534492 0.282873 +v 0.140395 0.535118 0.282528 +v 0.138196 0.535639 0.282046 +v 0.099574 0.338940 0.316133 +v 0.103209 0.337904 0.316238 +v 0.093539 0.313361 0.319285 +v 0.096864 0.312414 0.319390 +v 0.130801 0.512977 0.286538 +v 0.129102 0.513303 0.285777 +v 0.136245 0.536054 0.281425 +v 0.134544 0.536366 0.280667 +v 0.091310 0.303914 0.320430 +v 0.094521 0.302998 0.320536 +v 0.090978 0.302507 0.320550 +v 0.094171 0.301593 0.320656 +v 0.126636 0.399340 0.307595 +v 0.134991 0.428309 0.302995 +v 0.117803 0.368714 0.312026 +v 0.127976 0.365295 0.312026 +v 0.138301 0.395451 0.307595 +v 0.148067 0.423976 0.302995 +v 0.090634 0.301047 0.320629 +v 0.093808 0.300134 0.320735 +v 0.090282 0.299555 0.320636 +v 0.093436 0.298641 0.320742 +v 0.108481 0.336389 0.316273 +v 0.101206 0.311166 0.319426 +v 0.108576 0.308631 0.319426 +v 0.117079 0.333466 0.316273 +v 0.098519 0.301848 0.320571 +v 0.098118 0.300457 0.320692 +v 0.104966 0.298086 0.320692 +v 0.105435 0.299456 0.320571 +v 0.089927 0.298050 0.320543 +v 0.093061 0.297134 0.320648 +v 0.089573 0.296551 0.320323 +v 0.092687 0.295631 0.320426 +v 0.097701 0.299012 0.320770 +v 0.097275 0.297533 0.320777 +v 0.103980 0.295207 0.320777 +v 0.104478 0.296664 0.320770 +v 0.117395 0.294814 0.320571 +v 0.120983 0.303823 0.319426 +v 0.116860 0.293469 0.320692 +v 0.131119 0.287381 0.320692 +v 0.131720 0.288699 0.320571 +v 0.135745 0.297521 0.319426 +v 0.116303 0.292072 0.320770 +v 0.115734 0.290642 0.320777 +v 0.129856 0.284613 0.320777 +v 0.130495 0.286013 0.320770 +v 0.096844 0.296039 0.320684 +v 0.096414 0.294548 0.320461 +v 0.102974 0.292269 0.320461 +v 0.103476 0.293736 0.320684 +v 0.130694 0.328212 0.316273 +v 0.143140 0.359468 0.312026 +v 0.146642 0.321404 0.316273 +v 0.160606 0.352012 0.312026 +v 0.115159 0.289197 0.320684 +v 0.114585 0.287756 0.320461 +v 0.128566 0.281787 0.320461 +v 0.129210 0.283198 0.320684 +v 0.114020 0.286337 0.320079 +v 0.113471 0.284959 0.319510 +v 0.127932 0.280398 0.320079 +v 0.102479 0.290824 0.320079 +v 0.089226 0.295077 0.319946 +v 0.092319 0.294152 0.320046 +v 0.083521 0.294055 0.318140 +v 0.095991 0.293081 0.320079 +v 0.112946 0.283640 0.318725 +v 0.141537 0.273783 0.320079 +v 0.142238 0.275139 0.320461 +v 0.154800 0.266508 0.320079 +v 0.155567 0.267828 0.320461 +v 0.142950 0.276517 0.320684 +v 0.143664 0.277898 0.320777 +v 0.156346 0.269170 0.320684 +v 0.157127 0.270514 0.320777 +v 0.167691 0.258591 0.320079 +v 0.168521 0.259872 0.320461 +v 0.180177 0.250052 0.320079 +v 0.181070 0.251291 0.320461 +v 0.144371 0.279266 0.320770 +v 0.145062 0.280601 0.320692 +v 0.157900 0.271845 0.320770 +v 0.158656 0.273146 0.320692 +v 0.169365 0.261174 0.320684 +v 0.170211 0.262478 0.320777 +v 0.181977 0.252549 0.320684 +v 0.182886 0.253811 0.320777 +v 0.192229 0.240909 0.320079 +v 0.193182 0.242103 0.320461 +v 0.203819 0.231187 0.320079 +v 0.204829 0.232333 0.320461 +v 0.145727 0.281888 0.320571 +v 0.150180 0.290502 0.319426 +v 0.159383 0.274398 0.320571 +v 0.164254 0.282783 0.319426 +v 0.171049 0.263770 0.320770 +v 0.171867 0.265032 0.320692 +v 0.183786 0.255059 0.320770 +v 0.184665 0.256279 0.320692 +v 0.194149 0.243315 0.320684 +v 0.195119 0.244531 0.320777 +v 0.205854 0.233496 0.320684 +v 0.206883 0.234662 0.320777 +v 0.214917 0.220908 0.320079 +v 0.215982 0.222002 0.320461 +v 0.225498 0.210096 0.320079 +v 0.226615 0.211137 0.320461 +v 0.235535 0.198778 0.320079 +v 0.236702 0.199763 0.320461 +v 0.217063 0.223114 0.320684 +v 0.218148 0.224228 0.320777 +v 0.227750 0.212194 0.320684 +v 0.228888 0.213255 0.320777 +v 0.196079 0.245734 0.320770 +v 0.197017 0.246909 0.320692 +v 0.207901 0.235817 0.320770 +v 0.208895 0.236945 0.320692 +v 0.237887 0.200764 0.320684 +v 0.239076 0.201767 0.320777 +v 0.219221 0.225332 0.320770 +v 0.220270 0.226410 0.320692 +v 0.230014 0.214304 0.320770 +v 0.231114 0.215329 0.320692 +v 0.240252 0.202759 0.320770 +v 0.241401 0.203729 0.320692 +v 0.249912 0.190727 0.320770 +v 0.251107 0.191639 0.320692 +v 0.258969 0.178234 0.320770 +v 0.260208 0.179087 0.320692 +v 0.221280 0.227448 0.320571 +v 0.228042 0.234398 0.319426 +v 0.216266 0.245305 0.319426 +v 0.209853 0.238031 0.320571 +v 0.232174 0.216316 0.320571 +v 0.239269 0.222926 0.319426 +v 0.261401 0.179908 0.320571 +v 0.269389 0.185406 0.319426 +v 0.259967 0.198401 0.319426 +v 0.252258 0.192517 0.320571 +v 0.242508 0.204663 0.320571 +v 0.249919 0.210917 0.319426 +v 0.291013 0.200288 0.316273 +v 0.318727 0.219362 0.312026 +v 0.307579 0.234737 0.312026 +v 0.280835 0.214327 0.316273 +v 0.299159 0.188179 0.316273 +v 0.327775 0.205870 0.312026 +v 0.269980 0.227848 0.316273 +v 0.295691 0.249546 0.312026 +v 0.283090 0.263755 0.312026 +v 0.258475 0.240821 0.316273 +v 0.246347 0.253214 0.316273 +v 0.269807 0.277328 0.312026 +v 0.255874 0.290232 0.312026 +v 0.233626 0.264996 0.316273 +v 0.197920 0.248041 0.320571 +v 0.203969 0.255621 0.319426 +v 0.191180 0.265322 0.319426 +v 0.185511 0.257454 0.320571 +v 0.220341 0.276140 0.316273 +v 0.241325 0.302438 0.312026 +v 0.226194 0.313915 0.312026 +v 0.206527 0.286620 0.316273 +v 0.172655 0.266247 0.320571 +v 0.177931 0.274383 0.319426 +v 0.192214 0.296408 0.316273 +v 0.210519 0.324635 0.312026 +v 0.194336 0.334574 0.312026 +v 0.177439 0.305483 0.316273 +v 0.162235 0.313821 0.316273 +v 0.177685 0.343707 0.312026 +v 0.227861 0.351378 0.307595 +v 0.244266 0.376675 0.302995 +v 0.225489 0.388207 0.302995 +v 0.210345 0.362136 0.307595 +v 0.244828 0.339775 0.307595 +v 0.262454 0.364236 0.302995 +v 0.154932 0.389080 0.307595 +v 0.166086 0.417092 0.302995 +v 0.173837 0.381010 0.307595 +v 0.186352 0.408440 0.302995 +v 0.192323 0.372021 0.307595 +v 0.206169 0.398804 0.302995 +v 0.142880 0.455667 0.298242 +v 0.150318 0.481456 0.293351 +v 0.157290 0.450913 0.298242 +v 0.165984 0.476306 0.293351 +v 0.176620 0.443544 0.298242 +v 0.186549 0.468480 0.293351 +v 0.198171 0.434344 0.298242 +v 0.209312 0.458762 0.293351 +v 0.219244 0.424096 0.298242 +v 0.231570 0.447939 0.293351 +v 0.239790 0.412828 0.298242 +v 0.253271 0.436037 0.293351 +v 0.261205 0.327352 0.307595 +v 0.280010 0.350919 0.302995 +v 0.276953 0.314141 0.307595 +v 0.296892 0.336758 0.302995 +v 0.259757 0.400565 0.298242 +v 0.274361 0.423084 0.293351 +v 0.279099 0.387337 0.298242 +v 0.294790 0.409113 0.293351 +v 0.292033 0.300173 0.307595 +v 0.313058 0.321784 0.302995 +v 0.306410 0.285483 0.307595 +v 0.328470 0.306036 0.302995 +v 0.297768 0.373175 0.298242 +v 0.314509 0.394155 0.293351 +v 0.315721 0.358115 0.298242 +v 0.333471 0.378248 0.293351 +v 0.320049 0.270104 0.307595 +v 0.343091 0.289549 0.302995 +v 0.332917 0.254074 0.307595 +v 0.356885 0.272366 0.302995 +v 0.332912 0.342192 0.298242 +v 0.351628 0.361430 0.293351 +v 0.349302 0.325445 0.298242 +v 0.368940 0.343741 0.293351 +v 0.288101 0.444273 0.288338 +v 0.301003 0.464169 0.283218 +v 0.277865 0.478379 0.283218 +v 0.265955 0.457875 0.288338 +v 0.309554 0.429602 0.288338 +v 0.323416 0.448840 0.283218 +v 0.330260 0.413895 0.288338 +v 0.345050 0.432430 0.283218 +v 0.350171 0.397191 0.288338 +v 0.365853 0.414979 0.283218 +v 0.243167 0.470372 0.288338 +v 0.254057 0.491437 0.283218 +v 0.229637 0.503311 0.283218 +v 0.219794 0.481738 0.288338 +v 0.364850 0.307913 0.298242 +v 0.385362 0.325224 0.293351 +v 0.379519 0.289640 0.298242 +v 0.400856 0.305923 0.293351 +v 0.195892 0.491942 0.288338 +v 0.204664 0.513973 0.283218 +v 0.181845 0.522633 0.283218 +v 0.174164 0.500199 0.288338 +v 0.344983 0.237433 0.307595 +v 0.369819 0.254526 0.302995 +v 0.354886 0.222631 0.307595 +v 0.380531 0.238485 0.302995 +v 0.303917 0.180444 0.316273 +v 0.333366 0.196709 0.312026 +v 0.361267 0.212120 0.307595 +v 0.387660 0.226696 0.302995 +v 0.393274 0.270669 0.298242 +v 0.415383 0.285886 0.293351 +v 0.404750 0.253457 0.298242 +v 0.427580 0.267571 0.293351 +v 0.419990 0.227002 0.298103 +v 0.417441 0.231654 0.298207 +v 0.444120 0.238823 0.293212 +v 0.441414 0.243765 0.293316 +v 0.412583 0.240462 0.298242 +v 0.436078 0.253439 0.293351 +v 0.466824 0.249946 0.288200 +v 0.463969 0.255159 0.288303 +v 0.458184 0.265648 0.288338 +v 0.449060 0.280850 0.288338 +v 0.436186 0.300203 0.288338 +v 0.455720 0.313647 0.283218 +v 0.439781 0.335631 0.283218 +v 0.420931 0.321245 0.288338 +v 0.474022 0.326243 0.278006 +v 0.457443 0.349110 0.278006 +v 0.404661 0.341511 0.288338 +v 0.422783 0.356805 0.283218 +v 0.404766 0.377121 0.283218 +v 0.387417 0.360956 0.288338 +v 0.439762 0.371135 0.278006 +v 0.455633 0.384529 0.272718 +v 0.436217 0.406423 0.272718 +v 0.421022 0.392266 0.278006 +v 0.470432 0.397019 0.267369 +v 0.484193 0.408632 0.261974 +v 0.463559 0.431898 0.261974 +v 0.450385 0.419624 0.267369 +v 0.369239 0.379531 0.288338 +v 0.385774 0.396527 0.283218 +v 0.401267 0.412452 0.278006 +v 0.415749 0.427338 0.272718 +v 0.394280 0.447223 0.272718 +v 0.380546 0.431645 0.278006 +v 0.358907 0.449797 0.278006 +v 0.371861 0.466030 0.272718 +v 0.348546 0.483716 0.272718 +v 0.336405 0.466866 0.278006 +v 0.429252 0.441217 0.267369 +v 0.441808 0.454123 0.261974 +v 0.418994 0.475255 0.261974 +v 0.407086 0.461749 0.267369 +v 0.383938 0.481167 0.267369 +v 0.395169 0.495241 0.261974 +v 0.370393 0.514035 0.261974 +v 0.359866 0.499426 0.267369 +v 0.313091 0.482810 0.278006 +v 0.324391 0.500234 0.272718 +v 0.299455 0.515550 0.272718 +v 0.289024 0.497591 0.278006 +v 0.334927 0.516482 0.267369 +v 0.344724 0.531590 0.261974 +v 0.318225 0.547864 0.261974 +v 0.309181 0.532295 0.267369 +v 0.264260 0.511172 0.278006 +v 0.273797 0.529621 0.272718 +v 0.247480 0.542418 0.272718 +v 0.238860 0.523525 0.278006 +v 0.282690 0.546824 0.267369 +v 0.290959 0.562818 0.261974 +v 0.262993 0.576417 0.261974 +v 0.255518 0.560036 0.267369 +v 0.212884 0.534613 0.278006 +v 0.220567 0.553908 0.272718 +v 0.195769 0.563300 0.272718 +v 0.189042 0.543652 0.278006 +v 0.227731 0.571898 0.267369 +v 0.234392 0.588627 0.261974 +v 0.207874 0.598656 0.261974 +v 0.202041 0.581621 0.267369 +v 0.298625 0.577647 0.256549 +v 0.306166 0.592234 0.250663 +v 0.276738 0.606544 0.250663 +v 0.269922 0.591605 0.256549 +v 0.326610 0.562299 0.256549 +v 0.334857 0.576499 0.250663 +v 0.240568 0.604136 0.256549 +v 0.246643 0.619392 0.250663 +v 0.218600 0.629985 0.250663 +v 0.213281 0.614450 0.256549 +v 0.181164 0.588413 0.267369 +v 0.175799 0.569807 0.272718 +v 0.186154 0.605714 0.261974 +v 0.170958 0.610086 0.261940 +v 0.166606 0.592601 0.267335 +v 0.161926 0.573798 0.272684 +v 0.353807 0.545595 0.256549 +v 0.362741 0.559373 0.250663 +v 0.380152 0.527578 0.256549 +v 0.389752 0.540901 0.250663 +v 0.170044 0.549852 0.278006 +v 0.163887 0.528504 0.283218 +v 0.156906 0.553632 0.277972 +v 0.151536 0.532058 0.283183 +v 0.405581 0.508290 0.256549 +v 0.415823 0.521125 0.250663 +v 0.430033 0.487777 0.256549 +v 0.440893 0.500095 0.250663 +v 0.157316 0.505721 0.288338 +v 0.145805 0.509033 0.288303 +v 0.140088 0.510660 0.288200 +v 0.145539 0.533763 0.283080 +v 0.150646 0.555411 0.277869 +v 0.147949 0.556136 0.277663 +v 0.155420 0.575646 0.272581 +v 0.152722 0.576367 0.272376 +v 0.159871 0.594513 0.267233 +v 0.157172 0.595230 0.267029 +v 0.164010 0.612056 0.261839 +v 0.145500 0.556755 0.277319 +v 0.143299 0.557267 0.276839 +v 0.150271 0.576979 0.272035 +v 0.154720 0.595835 0.266690 +v 0.141346 0.557672 0.276221 +v 0.139641 0.557971 0.275466 +v 0.138184 0.558163 0.274574 +v 0.133090 0.536575 0.279770 +v 0.127652 0.513526 0.284877 +v 0.126452 0.513647 0.283839 +v 0.125500 0.513668 0.282663 +v 0.119716 0.489149 0.287657 +v 0.113565 0.463080 0.292532 +v 0.112873 0.463038 0.291209 +v 0.099008 0.406008 0.299060 +v 0.097301 0.406235 0.297906 +v 0.090061 0.375283 0.302320 +v 0.091705 0.375055 0.303476 +v 0.105912 0.435274 0.294479 +v 0.104146 0.435499 0.293327 +v 0.083993 0.342370 0.307711 +v 0.082415 0.342597 0.306553 +v 0.167847 0.628320 0.256415 +v 0.174992 0.626295 0.256515 +v 0.178961 0.642240 0.250630 +v 0.171622 0.644317 0.250531 +v 0.190780 0.621754 0.256549 +v 0.195330 0.637532 0.250663 +v 0.175572 0.661062 0.243757 +v 0.183115 0.658929 0.243855 +v 0.200093 0.654046 0.243887 +v 0.204693 0.669995 0.236703 +v 0.224168 0.646246 0.243887 +v 0.229544 0.661951 0.236703 +v 0.208754 0.684077 0.229591 +v 0.234291 0.675816 0.229591 +v 0.253001 0.635360 0.243887 +v 0.259142 0.650782 0.236703 +v 0.283873 0.622181 0.243887 +v 0.290763 0.637283 0.236703 +v 0.264564 0.664397 0.229591 +v 0.269306 0.676306 0.222589 +v 0.296846 0.650616 0.229591 +v 0.302167 0.662278 0.222589 +v 0.314060 0.607503 0.243887 +v 0.321682 0.622248 0.236703 +v 0.343490 0.591361 0.243887 +v 0.351827 0.605714 0.236703 +v 0.273409 0.686609 0.215731 +v 0.276911 0.695404 0.209055 +v 0.306770 0.672366 0.215731 +v 0.310699 0.680979 0.209055 +v 0.328412 0.635266 0.229591 +v 0.334299 0.646653 0.222589 +v 0.359188 0.618387 0.229591 +v 0.365627 0.629471 0.222589 +v 0.372093 0.573794 0.243887 +v 0.381124 0.587721 0.236703 +v 0.399800 0.554845 0.243887 +v 0.409504 0.568313 0.236703 +v 0.279853 0.702792 0.202597 +v 0.282274 0.708873 0.196391 +v 0.314000 0.688214 0.202597 +v 0.316717 0.694169 0.196391 +v 0.339392 0.656504 0.215731 +v 0.343739 0.664913 0.209055 +v 0.371196 0.639060 0.215731 +v 0.375951 0.647246 0.209055 +v 0.389098 0.600017 0.229591 +v 0.396073 0.610772 0.222589 +v 0.418071 0.580203 0.229591 +v 0.425565 0.590603 0.222589 +v 0.284214 0.713746 0.190475 +v 0.318894 0.698941 0.190476 +v 0.347391 0.671978 0.202597 +v 0.350397 0.677792 0.196391 +v 0.379945 0.654123 0.202597 +v 0.352805 0.682451 0.190476 +v 0.411584 0.634692 0.202597 +v 0.407257 0.628019 0.209055 +v 0.402106 0.620076 0.215731 +v 0.432048 0.599599 0.215731 +v 0.460948 0.577677 0.215731 +v 0.454032 0.569009 0.222589 +v 0.498679 0.512580 0.229591 +v 0.488460 0.502075 0.236703 +v 0.472928 0.536431 0.229591 +v 0.463236 0.525438 0.236703 +v 0.446037 0.558990 0.229591 +v 0.436896 0.547535 0.236703 +v 0.476885 0.490178 0.243887 +v 0.464900 0.477858 0.250663 +v 0.452259 0.512986 0.243887 +v 0.496950 0.419399 0.256549 +v 0.475773 0.443278 0.256549 +v 0.426543 0.534559 0.243887 +v 0.453449 0.466089 0.256549 +v 0.074948 0.299399 0.313930 +v 0.074476 0.300293 0.312819 +v 0.074277 0.301187 0.311591 +v 0.072953 0.302150 0.310626 +v 0.074365 0.301558 0.311775 +v 0.073008 0.302384 0.310729 +v 0.074476 0.302029 0.311932 +v 0.073087 0.302723 0.310830 +v 0.074617 0.302626 0.312055 +v 0.073199 0.303200 0.310918 +v 0.074795 0.303380 0.312139 +v 0.073352 0.303851 0.310984 +v 0.277186 0.139280 0.311591 +v 0.276269 0.139275 0.312819 +v 0.278390 0.138264 0.310626 +v 0.275293 0.139537 0.313930 +v 0.179466 0.747036 0.176068 +v 0.176907 0.746554 0.175583 +v 0.179834 0.748593 0.172222 +v 0.177260 0.748059 0.171870 +v 0.180144 0.749906 0.162776 +v 0.177553 0.749314 0.162729 +v 0.177529 0.749210 0.165551 +v 0.180117 0.749795 0.165666 +v 0.180868 0.751238 0.162836 +v 0.180865 0.751227 0.160000 +v 0.180140 0.749892 0.160000 +v 0.177549 0.749298 0.160000 +v 0.181815 0.752359 0.162890 +v 0.182986 0.753269 0.162939 +v 0.182984 0.753262 0.160000 +v 0.181813 0.752350 0.160000 +v 0.184380 0.753968 0.162982 +v 0.185997 0.754455 0.163019 +v 0.185996 0.754451 0.160000 +v 0.184378 0.753962 0.160000 +v 0.187838 0.754731 0.163050 +v 0.189902 0.754796 0.163076 +v 0.189901 0.754795 0.160000 +v 0.187837 0.754728 0.160000 +v 0.192189 0.754650 0.163096 +v 0.194700 0.754293 0.163111 +v 0.194700 0.754293 0.160000 +v 0.192189 0.754649 0.160000 +v 0.197434 0.753725 0.163119 +v 0.206115 0.751331 0.163123 +v 0.206115 0.751331 0.160000 +v 0.197434 0.753725 0.160000 +v 0.226468 0.745498 0.163125 +v 0.226468 0.745498 0.160000 +v 0.254998 0.736294 0.163125 +v 0.254998 0.736294 0.160000 +v 0.288213 0.723787 0.163125 +v 0.288213 0.723787 0.160000 +v 0.323381 0.708773 0.163125 +v 0.323381 0.708773 0.160000 +v 0.357769 0.692052 0.163125 +v 0.357769 0.692052 0.160000 +v 0.391296 0.673664 0.163125 +v 0.391296 0.673664 0.160000 +v 0.423879 0.653652 0.163125 +v 0.423879 0.653652 0.160000 +v 0.455442 0.632066 0.163125 +v 0.455442 0.632066 0.160000 +v 0.485907 0.608957 0.163125 +v 0.485907 0.608957 0.160000 +v 0.515202 0.584381 0.163125 +v 0.515202 0.584381 0.160000 +v 0.543256 0.558397 0.163125 +v 0.543256 0.558397 0.160000 +v 0.570000 0.531069 0.163125 +v 0.570000 0.531069 0.160000 +v 0.595371 0.502461 0.163125 +v 0.595371 0.502461 0.160000 +v 0.619309 0.472643 0.163125 +v 0.619309 0.472643 0.160000 +v 0.641754 0.441685 0.163125 +v 0.641754 0.441685 0.160000 +v 0.661322 0.412075 0.163125 +v 0.661322 0.412075 0.160000 +v 0.676630 0.386300 0.163125 +v 0.676630 0.386300 0.160000 +v 0.686835 0.367750 0.163123 +v 0.686835 0.367750 0.160000 +v 0.691096 0.359816 0.163119 +v 0.692257 0.357277 0.163111 +v 0.692257 0.357276 0.160000 +v 0.691096 0.359816 0.160000 +v 0.693163 0.354908 0.163096 +v 0.693813 0.352710 0.163076 +v 0.693811 0.352709 0.160000 +v 0.693162 0.354907 0.160000 +v 0.694208 0.350683 0.163051 +v 0.694347 0.348827 0.163019 +v 0.694343 0.348825 0.160000 +v 0.694205 0.350681 0.160000 +v 0.694230 0.347141 0.162982 +v 0.693859 0.345627 0.162939 +v 0.693852 0.345624 0.160000 +v 0.694225 0.347139 0.160000 +v 0.693232 0.344284 0.162890 +v 0.692349 0.343111 0.162836 +v 0.692338 0.343106 0.160000 +v 0.693223 0.344279 0.160000 +v 0.693112 0.344225 0.165944 +v 0.692238 0.343057 0.165812 +v 0.691211 0.342109 0.162776 +v 0.691137 0.339604 0.162729 +v 0.691122 0.339597 0.160000 +v 0.691198 0.342103 0.160000 +v 0.691108 0.342059 0.165666 +v 0.691041 0.339557 0.165551 +v 0.690776 0.341896 0.168785 +v 0.691883 0.342883 0.169068 +v 0.690726 0.339404 0.168562 +v 0.692738 0.344042 0.169324 +v 0.112430 0.462899 0.289747 +v 0.110607 0.463120 0.288598 +v 0.180032 0.749435 0.168785 +v 0.177449 0.748868 0.168562 +v 0.689818 0.353269 0.179363 +v -0.475280 0.610212 0.169324 +v -0.475012 0.608798 0.169068 +v -0.474450 0.608084 0.172670 +v -0.474694 0.609467 0.173076 +v -0.475247 0.611673 0.169553 +v -0.474638 0.610900 0.173439 +v -0.475517 0.612016 0.166062 +v -0.475539 0.610540 0.165944 +v -0.475257 0.609108 0.165812 +v -0.188439 0.244311 0.308918 +v -0.190265 0.244192 0.308388 +v -0.189906 0.243738 0.306899 +v -0.188058 0.243827 0.307355 +v -0.187298 0.243507 0.309592 +v -0.186887 0.242985 0.307936 +v -0.187684 0.243997 0.310991 +v -0.188781 0.244746 0.310203 +v -0.190573 0.244582 0.309585 +v 0.160364 0.758823 0.169756 +v 0.161323 0.757613 0.169553 +v 0.161417 0.758040 0.166062 +v 0.160462 0.759267 0.166166 +v 0.159113 0.759942 0.169931 +v 0.159214 0.760401 0.166257 +v 0.158890 0.758925 0.174037 +v 0.160146 0.757832 0.173759 +v 0.161112 0.756653 0.173439 +v 0.064034 0.305832 0.312139 +v 0.063606 0.305740 0.313610 +v 0.063411 0.304853 0.313502 +v 0.063868 0.305076 0.312055 +v 0.065539 0.305632 0.310984 +v 0.065394 0.304979 0.310918 +v 0.065720 0.306447 0.311013 +v 0.064232 0.306731 0.312176 +v 0.063827 0.306746 0.313656 +v 0.063192 0.302000 0.308918 +v 0.062515 0.300779 0.309592 +v 0.062372 0.300130 0.307936 +v 0.063060 0.301398 0.307355 +v 0.064887 0.302688 0.308388 +v 0.064761 0.302123 0.306899 +v 0.064994 0.303173 0.309585 +v 0.063311 0.302540 0.310203 +v 0.062649 0.301389 0.310991 +v -0.474911 0.613180 0.169756 +v -0.474272 0.614732 0.169931 +v -0.474562 0.615101 0.166257 +v -0.475192 0.613537 0.166166 +v -0.474282 0.612382 0.173759 +v -0.473627 0.613914 0.174037 +v -0.473330 0.616331 0.170079 +v -0.472088 0.617975 0.170200 +v -0.472393 0.618362 0.166395 +v -0.473630 0.616710 0.166333 +v -0.472672 0.615494 0.174271 +v -0.471418 0.617124 0.174463 +v -0.473150 0.610944 0.178186 +v -0.472468 0.612443 0.178568 +v -0.473535 0.609500 0.177745 +v -0.471855 0.607367 0.182484 +v -0.471433 0.608765 0.183038 +v -0.470721 0.610223 0.183518 +v -0.473624 0.608110 0.177245 +v -0.473419 0.606774 0.176686 +v -0.471826 0.604752 0.181154 +v -0.471986 0.606029 0.181856 +v -0.470543 0.619665 0.170295 +v -0.468695 0.621402 0.170362 +v -0.469009 0.621800 0.166479 +v -0.470853 0.620059 0.166444 +v -0.469863 0.618802 0.174613 +v -0.468009 0.620531 0.174720 +v -0.469688 0.603112 0.186936 +v -0.469513 0.604394 0.187670 +v -0.469577 0.601897 0.186116 +v -0.466595 0.598111 0.191516 +v -0.466656 0.599262 0.192433 +v -0.466436 0.600487 0.193254 +v -0.469180 0.600749 0.185209 +v -0.470471 0.598558 0.184497 +v -0.467580 0.594904 0.189706 +v -0.466255 0.597034 0.190502 +v -0.471375 0.603535 0.180378 +v -0.472627 0.601285 0.179769 +v -0.462514 0.592285 0.196200 +v -0.462801 0.593293 0.197301 +v -0.463874 0.590216 0.195335 +v -0.459277 0.584403 0.201327 +v -0.457888 0.586411 0.202247 +v -0.458123 0.587354 0.203419 +v -0.452305 0.579322 0.208589 +v -0.452491 0.580204 0.209818 +v -0.453719 0.577373 0.207623 +v -0.447130 0.569041 0.214173 +v -0.445697 0.570933 0.215176 +v -0.445838 0.571757 0.216452 +v -0.462812 0.594382 0.198297 +v -0.462549 0.595551 0.199189 +v -0.458088 0.588384 0.204479 +v -0.457782 0.589500 0.205428 +v -0.469053 0.605742 0.188317 +v -0.468306 0.607158 0.188878 +v -0.465936 0.601785 0.193978 +v -0.465155 0.603157 0.194605 +v -0.471492 0.613996 0.178892 +v -0.470219 0.615602 0.179157 +v -0.469717 0.611742 0.183925 +v -0.468423 0.613321 0.184257 +v -0.468651 0.617264 0.179363 +v -0.466787 0.618979 0.179510 +v -0.466838 0.614961 0.184516 +v -0.464961 0.616661 0.184701 +v -0.467274 0.608641 0.189353 +v -0.465957 0.610190 0.189742 +v -0.464094 0.604603 0.195136 +v -0.462752 0.606122 0.195571 +v -0.462010 0.596801 0.199975 +v -0.461196 0.598130 0.200657 +v -0.457206 0.590702 0.206265 +v -0.456360 0.591991 0.206991 +v -0.466545 0.623184 0.170403 +v -0.459273 0.628481 0.170423 +v -0.459585 0.628887 0.166510 +v -0.466861 0.623584 0.166500 +v -0.465856 0.622308 0.174784 +v -0.458593 0.627594 0.174816 +v -0.464628 0.620749 0.179598 +v -0.457382 0.626017 0.179642 +v -0.462795 0.618421 0.184811 +v -0.455575 0.623664 0.184867 +v -0.464353 0.611807 0.190044 +v -0.462464 0.613490 0.190260 +v -0.461130 0.607715 0.195909 +v -0.459228 0.609382 0.196150 +v -0.442059 0.640762 0.170430 +v -0.442355 0.641180 0.166514 +v -0.441411 0.639851 0.174826 +v -0.416521 0.656400 0.174826 +v -0.417123 0.657342 0.170430 +v -0.417399 0.657773 0.166514 +v -0.460106 0.599540 0.201233 +v -0.458742 0.601030 0.201705 +v -0.455244 0.593366 0.207604 +v -0.453857 0.594828 0.208107 +v -0.452412 0.581178 0.210931 +v -0.452067 0.582244 0.211926 +v -0.445718 0.572679 0.217606 +v -0.445337 0.573699 0.218639 +v -0.437997 0.561157 0.221957 +v -0.439445 0.559321 0.220925 +v -0.430595 0.548128 0.227835 +v -0.429138 0.549909 0.228891 +v -0.438097 0.561929 0.223272 +v -0.429200 0.550633 0.230236 +v -0.419051 0.537103 0.235933 +v -0.419080 0.537784 0.237302 +v -0.420510 0.535375 0.234858 +v -0.410034 0.522126 0.241506 +v -0.408577 0.523804 0.242597 +v -0.408575 0.524448 0.243985 +v -0.437940 0.562803 0.224460 +v -0.437525 0.563780 0.225524 +v -0.429009 0.551464 0.231452 +v -0.428563 0.552402 0.232541 +v -0.451457 0.583402 0.212804 +v -0.450581 0.584653 0.213565 +v -0.444695 0.574817 0.219551 +v -0.443790 0.576032 0.220341 +v -0.457102 0.602600 0.202072 +v -0.455186 0.604250 0.202334 +v -0.452200 0.596376 0.208497 +v -0.450272 0.598011 0.208776 +v -0.449439 0.585996 0.214209 +v -0.448031 0.587432 0.214736 +v -0.442625 0.577345 0.221009 +v -0.441198 0.578756 0.221556 +v -0.436853 0.564860 0.226463 +v -0.435923 0.566043 0.227276 +v -0.427864 0.553448 0.233501 +v -0.426911 0.554601 0.234334 +v -0.418858 0.538576 0.238541 +v -0.418385 0.539479 0.239650 +v -0.408326 0.525204 0.245241 +v -0.407829 0.526078 0.246365 +v -0.434735 0.567328 0.227964 +v -0.433291 0.568717 0.228528 +v -0.425703 0.555861 0.235038 +v -0.424243 0.557229 0.235614 +v -0.417661 0.540495 0.240628 +v -0.416687 0.541620 0.241475 +v -0.407084 0.527066 0.247357 +v -0.406092 0.528168 0.248217 +v -0.398254 0.512417 0.251067 +v -0.397736 0.513264 0.252204 +v -0.398526 0.511689 0.249797 +v -0.388293 0.498697 0.255164 +v -0.388000 0.499399 0.256445 +v -0.387464 0.500222 0.257591 +v -0.398553 0.511078 0.248393 +v -0.400007 0.509445 0.247290 +v -0.389789 0.496524 0.252636 +v -0.388343 0.498116 0.253748 +v -0.377306 0.484103 0.259085 +v -0.377236 0.484658 0.260511 +v -0.378742 0.482553 0.257964 +v -0.366840 0.467501 0.263258 +v -0.365418 0.469009 0.264385 +v -0.365329 0.469541 0.265819 +v -0.352654 0.452803 0.269631 +v -0.352547 0.453313 0.271073 +v -0.354058 0.451337 0.268498 +v -0.340370 0.434026 0.273668 +v -0.338985 0.435450 0.274806 +v -0.338863 0.435939 0.276254 +v -0.376925 0.485337 0.261801 +v -0.376372 0.486140 0.262955 +v -0.365001 0.470199 0.267117 +v -0.364434 0.470982 0.268278 +v -0.396973 0.514229 0.253206 +v -0.395964 0.515311 0.254075 +v -0.386685 0.501167 0.258603 +v -0.385662 0.502232 0.259479 +v -0.324386 0.416913 0.279894 +v -0.324248 0.417383 0.281348 +v -0.325748 0.415534 0.278752 +v -0.310163 0.395824 0.283734 +v -0.308826 0.397159 0.284880 +v -0.308674 0.397609 0.286338 +v -0.352204 0.453951 0.272377 +v -0.351622 0.454716 0.273544 +v -0.338504 0.436557 0.277564 +v -0.337909 0.437306 0.278736 +v -0.375578 0.487065 0.263974 +v -0.374543 0.488114 0.264856 +v -0.363626 0.471891 0.269303 +v -0.362580 0.472925 0.270191 +v -0.415462 0.542858 0.242192 +v -0.413987 0.544208 0.242779 +v -0.404851 0.529387 0.248944 +v -0.403363 0.530719 0.249539 +v -0.394710 0.516511 0.254811 +v -0.393211 0.517830 0.255412 +v -0.384397 0.503418 0.260221 +v -0.382888 0.504724 0.260828 +v -0.373267 0.489287 0.265603 +v -0.371749 0.490583 0.266214 +v -0.361294 0.474085 0.270942 +v -0.359768 0.475371 0.271557 +v -0.412261 0.545668 0.243235 +v -0.410284 0.547242 0.243561 +v -0.420559 0.560286 0.236383 +v -0.422528 0.558704 0.236063 +v -0.401627 0.532169 0.250002 +v -0.399643 0.533731 0.250333 +v -0.391467 0.519269 0.255880 +v -0.389477 0.520824 0.256214 +v -0.381136 0.506151 0.261300 +v -0.379141 0.507701 0.261637 +v -0.431589 0.570208 0.228966 +v -0.429629 0.571802 0.229278 +v -0.437560 0.581871 0.222285 +v -0.439510 0.580265 0.221981 +v -0.446358 0.588959 0.215146 +v -0.444419 0.590579 0.215439 +v -0.427412 0.573498 0.229466 +v -0.420739 0.578303 0.229560 +v -0.428551 0.588475 0.222558 +v -0.435349 0.583575 0.222467 +v -0.418337 0.561976 0.236575 +v -0.411808 0.566673 0.236671 +v -0.442214 0.592292 0.215614 +v -0.435308 0.597274 0.215702 +v -0.441077 0.604786 0.209027 +v -0.448074 0.599732 0.208944 +v -0.452996 0.605981 0.202492 +v -0.445923 0.611096 0.202570 +v -0.449911 0.616289 0.196367 +v -0.457045 0.611122 0.196295 +v -0.460289 0.615241 0.190389 +v -0.453106 0.620450 0.190454 +v -0.429360 0.622901 0.202597 +v -0.433152 0.628235 0.196391 +v -0.424752 0.616420 0.209055 +v -0.401031 0.632180 0.209055 +v -0.405316 0.638879 0.202597 +v -0.408842 0.644393 0.196391 +v -0.440259 0.638231 0.179657 +v -0.438540 0.635813 0.184885 +v -0.413851 0.652225 0.184885 +v -0.415449 0.654725 0.179657 +v -0.436192 0.632510 0.190475 +v -0.411667 0.648812 0.190475 +v -0.419266 0.608705 0.215731 +v -0.412840 0.599667 0.222589 +v -0.389956 0.614862 0.222589 +v -0.395930 0.624204 0.215731 +v -0.386686 0.675533 0.170430 +v -0.386941 0.675977 0.166514 +v -0.386131 0.674563 0.174826 +v -0.352567 0.692697 0.174826 +v -0.353074 0.693694 0.170430 +v -0.353306 0.694150 0.166514 +v -0.318610 0.710182 0.170430 +v -0.318820 0.710649 0.166514 +v -0.318153 0.709162 0.174826 +v -0.282973 0.723919 0.174826 +v -0.283380 0.724960 0.170430 +v -0.283566 0.725437 0.166514 +v -0.385143 0.672837 0.179657 +v -0.383669 0.670262 0.184885 +v -0.350319 0.688281 0.184885 +v -0.351665 0.690925 0.179657 +v -0.247466 0.737992 0.170430 +v -0.247629 0.738477 0.166514 +v -0.247111 0.736932 0.174826 +v -0.210654 0.748170 0.174826 +v -0.210957 0.749246 0.170430 +v -0.211095 0.749738 0.166514 +v -0.173939 0.758694 0.170430 +v -0.174053 0.759193 0.166514 +v -0.173689 0.757604 0.174826 +v -0.136306 0.765215 0.174826 +v -0.136502 0.766315 0.170430 +v -0.136591 0.766819 0.166514 +v -0.317339 0.707347 0.179657 +v -0.316124 0.704641 0.184885 +v -0.281169 0.719304 0.184885 +v -0.282249 0.722067 0.179657 +v -0.246478 0.735046 0.179657 +v -0.245535 0.732233 0.184885 +v -0.209311 0.743400 0.184885 +v -0.210115 0.746255 0.179657 +v -0.173244 0.755666 0.179657 +v -0.172581 0.752774 0.184885 +v -0.135437 0.760336 0.184885 +v -0.135957 0.763257 0.179657 +v -0.244247 0.728391 0.190476 +v -0.242579 0.723419 0.196391 +v -0.206791 0.734451 0.196391 +v -0.208212 0.739499 0.190476 +v -0.279693 0.715530 0.190476 +v -0.277784 0.710645 0.196391 +v -0.171676 0.748824 0.190476 +v -0.170504 0.743712 0.196391 +v -0.133806 0.751183 0.196391 +v -0.134726 0.756347 0.190476 +v -0.098736 0.772089 0.170430 +v -0.098801 0.772597 0.166514 +v -0.098594 0.770981 0.174826 +v -0.060645 0.774890 0.174826 +v -0.060732 0.776005 0.170430 +v -0.060772 0.776515 0.166514 +v -0.022583 0.778049 0.170430 +v -0.022597 0.778561 0.166514 +v -0.022550 0.776932 0.174826 +v 0.015599 0.777103 0.174826 +v 0.015622 0.778221 0.170430 +v 0.015632 0.778733 0.166514 +v -0.098342 0.769008 0.179657 +v -0.097966 0.766065 0.184885 +v -0.060259 0.769950 0.184885 +v -0.060490 0.772908 0.179657 +v 0.053789 0.776516 0.170430 +v 0.053824 0.777027 0.166514 +v 0.053711 0.775401 0.174826 +v 0.088978 0.772291 0.174826 +v 0.089110 0.773401 0.170430 +v 0.089170 0.773909 0.166514 +v -0.022492 0.774944 0.179657 +v -0.022406 0.771979 0.184885 +v 0.015500 0.772149 0.184885 +v 0.015559 0.775115 0.179657 +v 0.118778 0.769340 0.170430 +v 0.118863 0.769845 0.166514 +v 0.118592 0.768238 0.174826 +v 0.139397 0.764690 0.174816 +v 0.139623 0.765784 0.170423 +v 0.139727 0.766285 0.166510 +v 0.053574 0.773417 0.179657 +v 0.053369 0.770457 0.184885 +v 0.088393 0.767370 0.184885 +v 0.088743 0.770316 0.179657 +v 0.148477 0.764184 0.170403 +v 0.151188 0.763516 0.170362 +v 0.151297 0.764011 0.166479 +v 0.148586 0.764682 0.166500 +v 0.148237 0.763095 0.174784 +v 0.150950 0.762433 0.174720 +v 0.118260 0.766277 0.179657 +v 0.117766 0.763352 0.184885 +v 0.138392 0.759837 0.184867 +v 0.138994 0.762743 0.179642 +v 0.147811 0.761156 0.179598 +v 0.150526 0.760504 0.179510 +v 0.147175 0.758263 0.184812 +v 0.149893 0.757622 0.184701 +v 0.153608 0.762758 0.170295 +v 0.155735 0.761910 0.170200 +v 0.155841 0.762391 0.166396 +v 0.153715 0.763248 0.166444 +v 0.153372 0.761686 0.174613 +v 0.155502 0.760852 0.174464 +v 0.157570 0.760972 0.170079 +v 0.157674 0.761442 0.166333 +v 0.157342 0.759931 0.174271 +v 0.156932 0.758068 0.178892 +v 0.158488 0.757096 0.178569 +v 0.155086 0.758960 0.179157 +v 0.154463 0.756124 0.184257 +v 0.156316 0.755267 0.183925 +v 0.157881 0.754336 0.183519 +v 0.146306 0.754309 0.190389 +v 0.149026 0.753680 0.190260 +v 0.137570 0.755869 0.190454 +v 0.136507 0.750731 0.196367 +v 0.145180 0.749188 0.196295 +v 0.147903 0.748573 0.196150 +v 0.117091 0.759356 0.190476 +v 0.116218 0.754184 0.196391 +v 0.087915 0.763346 0.190476 +v 0.087297 0.758138 0.196391 +v 0.151460 0.752988 0.190044 +v 0.153607 0.752232 0.189742 +v 0.152322 0.756910 0.184516 +v 0.150341 0.747901 0.195909 +v 0.152495 0.747174 0.195571 +v 0.053089 0.766415 0.190476 +v 0.052726 0.761183 0.196391 +v 0.015419 0.768097 0.190476 +v 0.015313 0.762854 0.196391 +v 0.143775 0.742796 0.202492 +v 0.146500 0.742193 0.202334 +v 0.135179 0.744320 0.202570 +v 0.133566 0.736529 0.209027 +v 0.142067 0.735028 0.208944 +v 0.144795 0.734436 0.208776 +v 0.115128 0.747731 0.202597 +v 0.113803 0.739890 0.209055 +v 0.086524 0.751639 0.202597 +v 0.085586 0.743742 0.209055 +v -0.022289 0.767928 0.190476 +v -0.022136 0.762685 0.196391 +v -0.059942 0.765910 0.190476 +v -0.059533 0.760681 0.196391 +v 0.052274 0.754653 0.202597 +v 0.051725 0.746720 0.209055 +v 0.015182 0.756310 0.202597 +v 0.015022 0.748359 0.209055 +v -0.097452 0.762046 0.190476 +v -0.096786 0.756843 0.196391 +v -0.021947 0.756143 0.202597 +v -0.021716 0.748194 0.209055 +v -0.059023 0.754156 0.202597 +v -0.058402 0.746228 0.209055 +v -0.095956 0.750351 0.202597 +v -0.094947 0.742463 0.209055 +v -0.132659 0.744739 0.202597 +v -0.131264 0.736910 0.209055 +v -0.169041 0.737333 0.202597 +v -0.167264 0.729581 0.209055 +v -0.205017 0.728150 0.202597 +v -0.202862 0.720496 0.209055 +v -0.021441 0.738731 0.215731 +v -0.021120 0.727647 0.222589 +v 0.014610 0.727807 0.222589 +v 0.014832 0.738894 0.215731 +v -0.057663 0.736790 0.215731 +v -0.056798 0.725734 0.222589 +v -0.093746 0.733072 0.215731 +v -0.092340 0.722073 0.222589 +v -0.129604 0.727590 0.215731 +v -0.127659 0.716673 0.222589 +v 0.051070 0.737276 0.215731 +v 0.050304 0.726213 0.222589 +v 0.083161 0.723329 0.222589 +v 0.084469 0.734341 0.215731 +v 0.112227 0.730555 0.215731 +v 0.110380 0.719620 0.222589 +v 0.129397 0.716390 0.222558 +v 0.131646 0.727255 0.215702 +v 0.049418 0.713425 0.229591 +v 0.048406 0.698805 0.236703 +v 0.079920 0.696047 0.236703 +v 0.081649 0.710600 0.229591 +v 0.014353 0.714991 0.229591 +v 0.014058 0.700339 0.236703 +v 0.140033 0.725778 0.215614 +v 0.142763 0.725197 0.215439 +v 0.137650 0.714941 0.222467 +v 0.140383 0.714371 0.222285 +v 0.108245 0.706981 0.229591 +v 0.105804 0.692531 0.236703 +v 0.123823 0.689472 0.236671 +v 0.126796 0.703831 0.229560 +v 0.134896 0.702413 0.229466 +v 0.137631 0.701852 0.229278 +v 0.131746 0.688088 0.236575 +v 0.134483 0.687535 0.236383 +v 0.148943 0.741542 0.202072 +v 0.151103 0.740843 0.201705 +v 0.147242 0.733804 0.208497 +v 0.149408 0.733133 0.208107 +v 0.145214 0.724584 0.215146 +v 0.147386 0.723937 0.214736 +v 0.142838 0.713774 0.221981 +v 0.145015 0.713151 0.221556 +v 0.155468 0.751411 0.189353 +v 0.157043 0.750526 0.188878 +v 0.154364 0.746391 0.195136 +v 0.155949 0.745551 0.194605 +v 0.159753 0.756044 0.178186 +v 0.160729 0.754912 0.177745 +v 0.159158 0.753334 0.183038 +v 0.160146 0.752259 0.182484 +v 0.152980 0.740096 0.201233 +v 0.154575 0.739302 0.200657 +v 0.151293 0.732421 0.207604 +v 0.152897 0.731669 0.206991 +v 0.158331 0.749577 0.188317 +v 0.159334 0.748563 0.187670 +v 0.157250 0.744657 0.193978 +v 0.158266 0.743706 0.193254 +v 0.161416 0.753700 0.177245 +v 0.161812 0.752407 0.176686 +v 0.162170 0.754035 0.172671 +v 0.161787 0.755387 0.173076 +v 0.160847 0.751112 0.181856 +v 0.161259 0.749893 0.181154 +v 0.161919 0.751035 0.176068 +v 0.164016 0.749492 0.175583 +v 0.164351 0.751001 0.171870 +v 0.162262 0.752597 0.172222 +v 0.161383 0.748601 0.180378 +v 0.163490 0.747121 0.179769 +v 0.160049 0.747486 0.186936 +v 0.160479 0.746344 0.186116 +v 0.158997 0.742699 0.192433 +v 0.159444 0.741637 0.191516 +v 0.155887 0.738460 0.199975 +v 0.156917 0.737570 0.199189 +v 0.154220 0.730878 0.206265 +v 0.155262 0.730047 0.205428 +v 0.160622 0.745138 0.185209 +v 0.162737 0.743728 0.184497 +v 0.159607 0.740519 0.190502 +v 0.161728 0.739179 0.189706 +v 0.157663 0.736633 0.198297 +v 0.158127 0.735648 0.197301 +v 0.156024 0.729175 0.204479 +v 0.156504 0.728264 0.203419 +v 0.158308 0.734615 0.196200 +v 0.160434 0.733345 0.195335 +v 0.156703 0.727313 0.202247 +v 0.158829 0.726110 0.201327 +v 0.152225 0.721803 0.212804 +v 0.153279 0.721026 0.211926 +v 0.150891 0.722547 0.213565 +v 0.148535 0.711829 0.220341 +v 0.149878 0.711128 0.219551 +v 0.150943 0.710402 0.218639 +v 0.154765 0.718499 0.208589 +v 0.156888 0.717361 0.207623 +v 0.154549 0.719374 0.209819 +v 0.152240 0.708873 0.216452 +v 0.152472 0.708069 0.215176 +v 0.154587 0.706991 0.214173 +v 0.154054 0.720216 0.210931 +v 0.151731 0.709651 0.217606 +v 0.149800 0.695916 0.221958 +v 0.151903 0.694894 0.220925 +v 0.149554 0.696654 0.223272 +v 0.146466 0.682611 0.230236 +v 0.146725 0.681932 0.228891 +v 0.148812 0.680963 0.227835 +v 0.149031 0.697372 0.224460 +v 0.148232 0.698071 0.225524 +v 0.145122 0.683925 0.232541 +v 0.145932 0.683275 0.231452 +v 0.143225 0.666011 0.235933 +v 0.145291 0.665091 0.234858 +v 0.142954 0.666636 0.237303 +v 0.139308 0.650055 0.243985 +v 0.139590 0.649477 0.242597 +v 0.141632 0.648601 0.241506 +v 0.136111 0.633655 0.248394 +v 0.138131 0.632818 0.247291 +v 0.135821 0.634193 0.249797 +v 0.132270 0.618040 0.255164 +v 0.132568 0.617539 0.253748 +v 0.134563 0.616736 0.252636 +v 0.142409 0.667252 0.238541 +v 0.141590 0.667859 0.239650 +v 0.137926 0.651197 0.246366 +v 0.138754 0.650628 0.245241 +v 0.135258 0.634730 0.251067 +v 0.134424 0.635266 0.252204 +v 0.130859 0.619052 0.257591 +v 0.131700 0.618545 0.256445 +v 0.127856 0.601063 0.261801 +v 0.128432 0.600587 0.260511 +v 0.127009 0.601544 0.262955 +v 0.122866 0.582700 0.268278 +v 0.123718 0.582242 0.267117 +v 0.124300 0.581793 0.265819 +v 0.133316 0.635802 0.253206 +v 0.131937 0.636337 0.254075 +v 0.128362 0.620076 0.259479 +v 0.129746 0.619563 0.258603 +v 0.136826 0.651762 0.247357 +v 0.135452 0.652323 0.248217 +v 0.125892 0.602032 0.263974 +v 0.124503 0.602525 0.264856 +v 0.120351 0.583641 0.270191 +v 0.121744 0.583166 0.269303 +v 0.140496 0.668457 0.240628 +v 0.139129 0.669047 0.241475 +v 0.144037 0.684562 0.233501 +v 0.142677 0.685184 0.234334 +v 0.147157 0.698750 0.226463 +v 0.145804 0.699410 0.227276 +v 0.130285 0.636872 0.254811 +v 0.128361 0.637406 0.255412 +v 0.124778 0.621111 0.260828 +v 0.126706 0.620592 0.260221 +v 0.133805 0.652879 0.248944 +v 0.131884 0.653430 0.249539 +v 0.137487 0.669628 0.242192 +v 0.135571 0.670199 0.242779 +v 0.141041 0.685793 0.235038 +v 0.139130 0.686388 0.235614 +v 0.144176 0.700050 0.227964 +v 0.142270 0.700670 0.228528 +v 0.146914 0.712503 0.221009 +v 0.149278 0.723258 0.214209 +v 0.140089 0.701271 0.228966 +v 0.136944 0.686968 0.236063 +v 0.133381 0.670762 0.243236 +v 0.130917 0.671316 0.243562 +v 0.127224 0.654521 0.250333 +v 0.129691 0.653978 0.250002 +v 0.128179 0.671862 0.243757 +v 0.120456 0.673208 0.243855 +v 0.116969 0.656366 0.250630 +v 0.124484 0.655059 0.250531 +v 0.103039 0.676163 0.243888 +v 0.100177 0.659216 0.250663 +v 0.077962 0.679564 0.243888 +v 0.075934 0.662496 0.250663 +v 0.126165 0.637940 0.255880 +v 0.123696 0.638473 0.256215 +v 0.120109 0.622158 0.261637 +v 0.122579 0.621633 0.261300 +v 0.120955 0.639006 0.256415 +v 0.113638 0.640277 0.256515 +v 0.110251 0.623920 0.261940 +v 0.117366 0.622685 0.261839 +v 0.097442 0.643024 0.256549 +v 0.094661 0.626564 0.261974 +v 0.073997 0.646190 0.256549 +v 0.072028 0.629613 0.261974 +v 0.047259 0.682246 0.243888 +v 0.046071 0.665099 0.250663 +v 0.013725 0.683743 0.243888 +v 0.013380 0.666559 0.250663 +v -0.020748 0.714834 0.229591 +v -0.020323 0.700185 0.236703 +v -0.055798 0.712955 0.229591 +v -0.054655 0.698345 0.236703 +v 0.044936 0.648717 0.256549 +v 0.043782 0.632064 0.261974 +v 0.013051 0.650141 0.256549 +v 0.012716 0.633451 0.261974 +v -0.019841 0.683593 0.243888 +v -0.019342 0.666412 0.250663 +v -0.053359 0.681796 0.243887 +v -0.052018 0.664661 0.250663 +v 0.091662 0.608809 0.267369 +v 0.088437 0.589715 0.272718 +v 0.102670 0.587302 0.272684 +v 0.106598 0.606276 0.267335 +v 0.069904 0.611733 0.267369 +v 0.067619 0.592504 0.272718 +v 0.113496 0.605081 0.267233 +v 0.116239 0.604558 0.267029 +v 0.109333 0.586148 0.272581 +v 0.112077 0.585630 0.272376 +v 0.118711 0.604041 0.266690 +v 0.120913 0.603530 0.266214 +v 0.114551 0.585119 0.272035 +v 0.116755 0.584618 0.271557 +v 0.042538 0.614100 0.267369 +v 0.041200 0.594782 0.272718 +v 0.012354 0.615448 0.267369 +v 0.011966 0.596088 0.272718 +v 0.104869 0.565843 0.277869 +v 0.107614 0.565328 0.277663 +v 0.098456 0.566952 0.277972 +v 0.093949 0.545181 0.283183 +v 0.100093 0.544120 0.283080 +v 0.102839 0.543609 0.282873 +v 0.084978 0.569237 0.278006 +v 0.081277 0.547329 0.283218 +v 0.065169 0.571880 0.278006 +v 0.062548 0.549818 0.283218 +v 0.122843 0.603024 0.265603 +v 0.118688 0.584125 0.270942 +v 0.110089 0.564824 0.277319 +v 0.112295 0.564332 0.276839 +v 0.105315 0.543112 0.282528 +v 0.107523 0.542628 0.282046 +v 0.114231 0.563851 0.276221 +v 0.115897 0.563382 0.275466 +v 0.109461 0.542158 0.281425 +v 0.111130 0.541702 0.280667 +v 0.117293 0.562924 0.274574 +v 0.118420 0.562477 0.273544 +v 0.112530 0.541260 0.279770 +v 0.113661 0.540833 0.278736 +v 0.100220 0.519935 0.287646 +v 0.102429 0.519460 0.287161 +v 0.097742 0.520428 0.287992 +v 0.092313 0.495739 0.293004 +v 0.094793 0.495253 0.292657 +v 0.097004 0.494785 0.292171 +v 0.119277 0.562041 0.272377 +v 0.119864 0.561617 0.271073 +v 0.114523 0.540417 0.277564 +v 0.115115 0.540017 0.276254 +v 0.104370 0.519001 0.286539 +v 0.106042 0.518559 0.285777 +v 0.098946 0.494336 0.291546 +v 0.100621 0.493905 0.290782 +v 0.107445 0.518132 0.284877 +v 0.108580 0.517721 0.283839 +v 0.102028 0.493492 0.289879 +v 0.103166 0.493098 0.288838 +v 0.120182 0.561206 0.269631 +v 0.122085 0.560497 0.268498 +v 0.126548 0.580614 0.263258 +v 0.124612 0.581352 0.264385 +v 0.115438 0.539630 0.274806 +v 0.117305 0.538953 0.273668 +v 0.128737 0.600117 0.259085 +v 0.130705 0.599348 0.257964 +v 0.109446 0.517327 0.282663 +v 0.110043 0.516948 0.281348 +v 0.104036 0.492723 0.287657 +v 0.104638 0.492365 0.286338 +v 0.110372 0.516586 0.279894 +v 0.112199 0.515936 0.278752 +v 0.104972 0.492026 0.284880 +v 0.106756 0.491406 0.283734 +v 0.099229 0.465908 0.289747 +v 0.100968 0.465316 0.288598 +v 0.098891 0.466225 0.291209 +v 0.092791 0.438483 0.295945 +v 0.093134 0.438186 0.294479 +v 0.094823 0.437623 0.293327 +v 0.098284 0.466562 0.292532 +v 0.097410 0.466920 0.293716 +v 0.091303 0.439143 0.298457 +v 0.092181 0.438801 0.297271 +v 0.085715 0.409395 0.301859 +v 0.086330 0.409094 0.300529 +v 0.084834 0.409721 0.303048 +v 0.077994 0.378610 0.307471 +v 0.078878 0.378299 0.306280 +v 0.079496 0.378015 0.304948 +v 0.096268 0.467299 0.294760 +v 0.094859 0.467698 0.295665 +v 0.088746 0.439892 0.300412 +v 0.090158 0.439506 0.299505 +v 0.083686 0.410070 0.304097 +v 0.082271 0.410444 0.305006 +v 0.075426 0.379309 0.309433 +v 0.076843 0.378946 0.308522 +v 0.093182 0.468117 0.296431 +v 0.091237 0.468557 0.297058 +v 0.085119 0.440732 0.301808 +v 0.087066 0.440301 0.301180 +v 0.080589 0.410843 0.305776 +v 0.078641 0.411265 0.306405 +v 0.071791 0.380112 0.310835 +v 0.073742 0.379698 0.310204 +v 0.089024 0.469017 0.297545 +v 0.086544 0.469498 0.297894 +v 0.080424 0.441661 0.302646 +v 0.082905 0.441185 0.302297 +v 0.076425 0.411712 0.306895 +v 0.073943 0.412183 0.307245 +v 0.067091 0.381020 0.311676 +v 0.069574 0.380553 0.311325 +v 0.066513 0.346821 0.314449 +v 0.068199 0.346441 0.313677 +v 0.064561 0.347228 0.315080 +v 0.058921 0.321575 0.318231 +v 0.060875 0.321176 0.317598 +v 0.062563 0.320806 0.316825 +v 0.062343 0.347663 0.315572 +v 0.059859 0.348126 0.315922 +v 0.054216 0.322462 0.319074 +v 0.056701 0.322003 0.318723 +v 0.071193 0.412679 0.307455 +v 0.066676 0.413458 0.307560 +v 0.060209 0.382225 0.311991 +v 0.064341 0.381513 0.311886 +v 0.077675 0.442160 0.302855 +v 0.072793 0.443001 0.302960 +v 0.069619 0.346089 0.312764 +v 0.070772 0.345765 0.311711 +v 0.063985 0.320467 0.315911 +v 0.065142 0.320156 0.314857 +v 0.057108 0.348617 0.316133 +v 0.053384 0.349259 0.316238 +v 0.048058 0.323536 0.319390 +v 0.051465 0.322949 0.319285 +v 0.071660 0.345468 0.310518 +v 0.072281 0.345199 0.309185 +v 0.066033 0.319875 0.313662 +v 0.066658 0.319624 0.312326 +v 0.086677 0.408818 0.299060 +v 0.079848 0.377757 0.303476 +v 0.088314 0.408283 0.297906 +v 0.081429 0.377250 0.302320 +v 0.072637 0.344958 0.307711 +v 0.074158 0.344478 0.306553 +v 0.067018 0.319403 0.310850 +v 0.068494 0.318950 0.309691 +v 0.061914 0.311047 0.317050 +v 0.063075 0.310755 0.315994 +v 0.060488 0.311370 0.317966 +v 0.060192 0.310024 0.318082 +v 0.061624 0.309725 0.317165 +v 0.062791 0.309462 0.316107 +v 0.064967 0.310073 0.311981 +v 0.066430 0.309645 0.310819 +v 0.064601 0.310269 0.313459 +v 0.064332 0.309043 0.313569 +v 0.064706 0.308887 0.312088 +v 0.066173 0.308491 0.310924 +v 0.063971 0.310496 0.314797 +v 0.063694 0.309234 0.314909 +v 0.064459 0.307761 0.312156 +v 0.065934 0.307412 0.310991 +v 0.064071 0.307858 0.313638 +v 0.063421 0.307996 0.314980 +v 0.062508 0.308175 0.316180 +v 0.062233 0.306923 0.316194 +v 0.063160 0.306810 0.314996 +v 0.061331 0.308396 0.317239 +v 0.059892 0.308658 0.318157 +v 0.059593 0.307297 0.318168 +v 0.061043 0.307085 0.317252 +v 0.062918 0.305707 0.314941 +v 0.061971 0.305733 0.316131 +v 0.061727 0.304622 0.315982 +v 0.062697 0.304701 0.314811 +v 0.060765 0.305819 0.317182 +v 0.059300 0.305965 0.318092 +v 0.059017 0.304679 0.317911 +v 0.060500 0.304615 0.317016 +v 0.062501 0.303809 0.314603 +v 0.061503 0.303605 0.315739 +v 0.061299 0.302676 0.315389 +v 0.062326 0.303016 0.314312 +v 0.063245 0.304099 0.313334 +v 0.063104 0.303459 0.313107 +v 0.063736 0.304476 0.311932 +v 0.065288 0.304500 0.310830 +v 0.063632 0.304004 0.311775 +v 0.065213 0.304160 0.310729 +v 0.060252 0.303487 0.316740 +v 0.058748 0.303457 0.317608 +v 0.058495 0.302303 0.317165 +v 0.060022 0.302438 0.316340 +v 0.059808 0.301466 0.315801 +v 0.061113 0.301829 0.314924 +v 0.058257 0.301223 0.316561 +v 0.058035 0.300213 0.315763 +v 0.059609 0.300560 0.315085 +v 0.060940 0.301042 0.314302 +v 0.056461 0.301099 0.317205 +v 0.054418 0.301094 0.317731 +v 0.054161 0.299924 0.316807 +v 0.056219 0.300001 0.316337 +v 0.056718 0.302271 0.317862 +v 0.054692 0.302341 0.318433 +v 0.056991 0.303513 0.318343 +v 0.054981 0.303655 0.318944 +v 0.057278 0.304815 0.318669 +v 0.055282 0.305024 0.319289 +v 0.057576 0.306170 0.318863 +v 0.055592 0.306434 0.319493 +v 0.057881 0.307558 0.318944 +v 0.055907 0.307868 0.319578 +v 0.052129 0.301209 0.318140 +v 0.049595 0.301443 0.318433 +v 0.049316 0.300176 0.317433 +v 0.051860 0.299982 0.317172 +v 0.052416 0.302514 0.318876 +v 0.049891 0.302789 0.319193 +v 0.058189 0.308962 0.318934 +v 0.056224 0.309307 0.319570 +v 0.058497 0.310359 0.318858 +v 0.056536 0.310730 0.319493 +v 0.052718 0.303884 0.319412 +v 0.050201 0.304199 0.319745 +v 0.053030 0.305304 0.319772 +v 0.050521 0.305656 0.320116 +v 0.053349 0.306758 0.319983 +v 0.050848 0.307142 0.320333 +v 0.053673 0.308228 0.320072 +v 0.051176 0.308637 0.320424 +v 0.058797 0.311726 0.318740 +v 0.056841 0.312114 0.319374 +v 0.053995 0.309694 0.320064 +v 0.051503 0.310122 0.320417 +v 0.054312 0.311136 0.319986 +v 0.051823 0.311579 0.320339 +v 0.054619 0.312534 0.319867 +v 0.052133 0.312985 0.320219 +v 0.048087 0.307584 0.320543 +v 0.044865 0.308117 0.320648 +v 0.044551 0.306600 0.320426 +v 0.047756 0.306080 0.320323 +v 0.048419 0.309095 0.320636 +v 0.045180 0.309638 0.320742 +v 0.049381 0.313469 0.320430 +v 0.046090 0.314035 0.320536 +v 0.045797 0.312616 0.320656 +v 0.049070 0.312057 0.320550 +v 0.048748 0.310592 0.320629 +v 0.045492 0.311144 0.320735 +v 0.041988 0.314731 0.320571 +v 0.041747 0.313303 0.320692 +v 0.043604 0.324292 0.319426 +v 0.035863 0.325201 0.319426 +v 0.034720 0.315571 0.320571 +v 0.034549 0.314133 0.320692 +v 0.041497 0.311820 0.320770 +v 0.041240 0.310302 0.320777 +v 0.034371 0.312640 0.320770 +v 0.034190 0.311111 0.320777 +v 0.040981 0.308769 0.320684 +v 0.040723 0.307239 0.320461 +v 0.034006 0.309567 0.320684 +v 0.033823 0.308027 0.320461 +v 0.047431 0.304602 0.319946 +v 0.044242 0.305107 0.320046 +v 0.043942 0.303658 0.319479 +v 0.047116 0.303167 0.319384 +v 0.040469 0.305734 0.320079 +v 0.040222 0.304271 0.319510 +v 0.033643 0.306510 0.320079 +v 0.033468 0.305038 0.319510 +v 0.046814 0.301796 0.318608 +v 0.043655 0.302271 0.318696 +v 0.043385 0.300966 0.317668 +v 0.046530 0.300505 0.317590 +v 0.039985 0.302872 0.318725 +v 0.039763 0.301554 0.317694 +v 0.033301 0.303628 0.318725 +v 0.033143 0.302301 0.317694 +v 0.021511 0.310538 0.320684 +v 0.021403 0.308990 0.320461 +v 0.021618 0.312089 0.320777 +v 0.006279 0.312774 0.320777 +v 0.006247 0.311219 0.320684 +v 0.006216 0.309669 0.320461 +v 0.046269 0.299314 0.316299 +v 0.049059 0.299006 0.316165 +v 0.043136 0.299762 0.316366 +v 0.042911 0.298677 0.314760 +v 0.046032 0.298240 0.314704 +v 0.048827 0.297949 0.314591 +v 0.021298 0.307467 0.320079 +v 0.021195 0.305987 0.319510 +v 0.006186 0.308142 0.320079 +v 0.006156 0.306659 0.319510 +v 0.039557 0.300339 0.316388 +v 0.039373 0.299245 0.314779 +v 0.032998 0.301077 0.316388 +v 0.032867 0.299976 0.314779 +v 0.021097 0.304571 0.318725 +v 0.021005 0.303238 0.317694 +v 0.006127 0.305240 0.318725 +v 0.006101 0.303904 0.317694 +v 0.051610 0.298848 0.315941 +v 0.053922 0.298838 0.315629 +v 0.051384 0.297818 0.314404 +v 0.053704 0.297847 0.314141 +v 0.055994 0.298978 0.315226 +v 0.057827 0.299268 0.314735 +v 0.055787 0.298036 0.313804 +v 0.057634 0.298386 0.313391 +v 0.045826 0.297302 0.312773 +v 0.048622 0.297020 0.312676 +v 0.042716 0.297732 0.312821 +v 0.042534 0.296856 0.310714 +v 0.045635 0.296432 0.310673 +v 0.048433 0.296157 0.310590 +v 0.039212 0.298292 0.312837 +v 0.039063 0.297410 0.310728 +v 0.032753 0.299016 0.312837 +v 0.032647 0.298127 0.310728 +v 0.051183 0.296906 0.312516 +v 0.053509 0.296958 0.312291 +v 0.050996 0.296053 0.310452 +v 0.053325 0.296121 0.310258 +v 0.020776 0.299938 0.312837 +v 0.020715 0.299045 0.310728 +v 0.020843 0.300902 0.314779 +v 0.006054 0.301562 0.314779 +v 0.006034 0.300596 0.312837 +v 0.006016 0.299702 0.310728 +v 0.055598 0.297178 0.312002 +v 0.057453 0.297564 0.311648 +v 0.055419 0.296361 0.310009 +v 0.057279 0.296772 0.309705 +v 0.059421 0.299707 0.314154 +v 0.060775 0.300295 0.313483 +v 0.059243 0.298896 0.312904 +v 0.060615 0.299567 0.312341 +v 0.059072 0.298117 0.311231 +v 0.060455 0.298838 0.310749 +v 0.058904 0.297354 0.309346 +v 0.060295 0.298108 0.308931 +v 0.061603 0.299725 0.310203 +v 0.061751 0.300398 0.311704 +v 0.061451 0.299033 0.308461 +v 0.061890 0.301033 0.312724 +v 0.062766 0.301920 0.311874 +v 0.062874 0.302413 0.312423 +v 0.062028 0.301660 0.313415 +v 0.063402 0.302956 0.310936 +v 0.065066 0.303498 0.310199 +v 0.065117 0.303727 0.310467 +v 0.063478 0.303302 0.311328 +v -0.008723 0.300530 0.312837 +v -0.008697 0.299636 0.310728 +v -0.008751 0.301496 0.314779 +v -0.023534 0.300703 0.314779 +v -0.023458 0.299740 0.312837 +v -0.023389 0.298848 0.310728 +v 0.020920 0.302008 0.316388 +v 0.006076 0.302671 0.316388 +v -0.008783 0.302605 0.316388 +v -0.008819 0.303837 0.317694 +v -0.023717 0.303038 0.317694 +v -0.023620 0.301809 0.316388 +v -0.008857 0.305172 0.318725 +v -0.008899 0.306591 0.319510 +v -0.023932 0.305786 0.319510 +v -0.023821 0.304370 0.318725 +v -0.038138 0.298228 0.312837 +v -0.038024 0.297340 0.310728 +v -0.038260 0.299186 0.314779 +v -0.052895 0.296949 0.314779 +v -0.052725 0.295997 0.312837 +v -0.052568 0.295117 0.310728 +v -0.038401 0.300287 0.316388 +v -0.038557 0.301509 0.317694 +v -0.053305 0.299255 0.317694 +v -0.053089 0.298041 0.316388 +v -0.067185 0.293054 0.312837 +v -0.066986 0.292182 0.310728 +v -0.067401 0.293995 0.314779 +v -0.081746 0.290334 0.314779 +v -0.081484 0.289404 0.312837 +v -0.081242 0.288543 0.310728 +v -0.067649 0.295077 0.316388 +v -0.067925 0.296278 0.317694 +v -0.082381 0.292589 0.317694 +v -0.082047 0.291402 0.316388 +v -0.038727 0.302835 0.318725 +v -0.038907 0.304243 0.319510 +v -0.053789 0.301967 0.319510 +v -0.053540 0.300570 0.318725 +v -0.068223 0.297580 0.318725 +v -0.068541 0.298964 0.319510 +v -0.083128 0.295241 0.319510 +v -0.082743 0.293875 0.318725 +v -0.095586 0.285057 0.312837 +v -0.095302 0.284209 0.310728 +v -0.095893 0.285973 0.314779 +v -0.109810 0.280924 0.314779 +v -0.109458 0.280024 0.312837 +v -0.109133 0.279191 0.310728 +v -0.096246 0.287025 0.316388 +v -0.096638 0.288194 0.317694 +v -0.110663 0.283105 0.317694 +v -0.110214 0.281957 0.316388 +v -0.123066 0.274315 0.312837 +v -0.122700 0.273499 0.310728 +v -0.123462 0.275197 0.314779 +v -0.136817 0.268808 0.314779 +v -0.136378 0.267947 0.312837 +v -0.135972 0.267149 0.310728 +v -0.123916 0.276209 0.316388 +v -0.124421 0.277334 0.317694 +v -0.137879 0.270895 0.317694 +v -0.137320 0.269796 0.316388 +v -0.097063 0.289461 0.318725 +v -0.097514 0.290806 0.319510 +v -0.111666 0.285672 0.319510 +v -0.111149 0.284349 0.318725 +v -0.124968 0.278553 0.318725 +v -0.125549 0.279848 0.319510 +v -0.139129 0.273351 0.319510 +v -0.138485 0.272086 0.318725 +v -0.149361 0.260932 0.312837 +v -0.148917 0.260155 0.310728 +v -0.149841 0.261770 0.314779 +v -0.160261 0.255699 0.314779 +v -0.159740 0.254885 0.312837 +v -0.159258 0.254131 0.310728 +v -0.150393 0.262733 0.316388 +v -0.151005 0.263803 0.317694 +v -0.161523 0.257672 0.317694 +v -0.160858 0.256634 0.316388 +v -0.165239 0.251420 0.312837 +v -0.164720 0.250690 0.310728 +v -0.165799 0.252207 0.314779 +v -0.168736 0.250155 0.314760 +v -0.168149 0.249389 0.312821 +v -0.167604 0.248680 0.310714 +v -0.170761 0.247647 0.312773 +v -0.173156 0.246176 0.312676 +v -0.172608 0.245481 0.310590 +v -0.170210 0.246947 0.310673 +v -0.171356 0.248402 0.314704 +v -0.173744 0.246922 0.314591 +v -0.166441 0.253111 0.316388 +v -0.167156 0.254116 0.317694 +v -0.170160 0.252009 0.317668 +v -0.169411 0.251033 0.316366 +v -0.172036 0.249266 0.316299 +v -0.174414 0.247773 0.316165 +v -0.172791 0.250224 0.317590 +v -0.175155 0.248714 0.317433 +v -0.175411 0.244957 0.312516 +v -0.177527 0.243991 0.312291 +v -0.176996 0.243318 0.310258 +v -0.174871 0.244271 0.310452 +v -0.175988 0.245690 0.314404 +v -0.178090 0.244706 0.314141 +v -0.167930 0.255205 0.318725 +v -0.168752 0.256362 0.319510 +v -0.171834 0.254189 0.319479 +v -0.170972 0.253066 0.318696 +v -0.162242 0.258798 0.318725 +v -0.163007 0.259994 0.319510 +v -0.179503 0.243278 0.312002 +v -0.181341 0.242818 0.311648 +v -0.180839 0.242181 0.309705 +v -0.178986 0.242621 0.310009 +v -0.180047 0.243969 0.313804 +v -0.181862 0.243479 0.313391 +v -0.176641 0.246519 0.315941 +v -0.178718 0.245503 0.315629 +v -0.177360 0.247431 0.317172 +v -0.179405 0.246376 0.316807 +v -0.173608 0.251262 0.318608 +v -0.175957 0.249733 0.318433 +v -0.174477 0.252365 0.319384 +v -0.176810 0.250816 0.319193 +v -0.183039 0.242611 0.311231 +v -0.184598 0.242657 0.310749 +v -0.184136 0.242070 0.308931 +v -0.182556 0.241997 0.309346 +v -0.183532 0.243238 0.312904 +v -0.185060 0.243243 0.312341 +v -0.180644 0.244727 0.315226 +v -0.182420 0.244189 0.314735 +v -0.181292 0.245549 0.316337 +v -0.183019 0.244949 0.315763 +v -0.186018 0.242955 0.310203 +v -0.185580 0.242399 0.308461 +v -0.186444 0.243496 0.311704 +v -0.184046 0.243889 0.314154 +v -0.185521 0.243829 0.313483 +v -0.184586 0.244576 0.315085 +v -0.185995 0.244430 0.314302 +v -0.186846 0.244007 0.312724 +v -0.188021 0.244424 0.311874 +v -0.187244 0.244512 0.313415 +v -0.188333 0.244821 0.312423 +v -0.189045 0.245080 0.310936 +v -0.190779 0.244843 0.310199 +v -0.189264 0.245358 0.311328 +v -0.190925 0.245027 0.310467 +v -0.185161 0.245305 0.315801 +v -0.186493 0.245063 0.314924 +v -0.183659 0.245761 0.316561 +v -0.184343 0.246630 0.317165 +v -0.185776 0.246086 0.316340 +v -0.187029 0.245744 0.315389 +v -0.181988 0.246432 0.317205 +v -0.180147 0.247318 0.317731 +v -0.180937 0.248321 0.318433 +v -0.182730 0.247375 0.317862 +v -0.186441 0.246930 0.316740 +v -0.187618 0.246491 0.315739 +v -0.185074 0.247558 0.317608 +v -0.185848 0.248541 0.317911 +v -0.187155 0.247837 0.317016 +v -0.188262 0.247309 0.315982 +v -0.183517 0.248374 0.318343 +v -0.181769 0.249378 0.318944 +v -0.182636 0.250478 0.319289 +v -0.184342 0.249422 0.318669 +v -0.188605 0.246240 0.314603 +v -0.189401 0.246177 0.313334 +v -0.188996 0.245662 0.313107 +v -0.188102 0.245602 0.314312 +v -0.189170 0.246958 0.314811 +v -0.189879 0.246784 0.313502 +v -0.189807 0.247767 0.314941 +v -0.190441 0.247497 0.313610 +v -0.188967 0.248203 0.316131 +v -0.189720 0.249160 0.316194 +v -0.190506 0.248654 0.314996 +v -0.191078 0.248306 0.313656 +v -0.187918 0.248806 0.317182 +v -0.186663 0.249575 0.318092 +v -0.187507 0.250647 0.318168 +v -0.188721 0.249825 0.317252 +v -0.191257 0.249608 0.314980 +v -0.190513 0.250167 0.316180 +v -0.191329 0.251202 0.316107 +v -0.192042 0.250604 0.314908 +v -0.191783 0.249201 0.313638 +v -0.192533 0.250154 0.313569 +v -0.185200 0.250511 0.318863 +v -0.183530 0.251613 0.319493 +v -0.184439 0.252767 0.319578 +v -0.186080 0.251628 0.318944 +v -0.189551 0.250879 0.317239 +v -0.188369 0.251742 0.318157 +v -0.189235 0.252840 0.318082 +v -0.190393 0.251948 0.317165 +v -0.186969 0.252757 0.318934 +v -0.185350 0.253924 0.319570 +v -0.186251 0.255068 0.319493 +v -0.187854 0.253881 0.318858 +v -0.181652 0.252882 0.319983 +v -0.179568 0.254316 0.320333 +v -0.180515 0.255519 0.320424 +v -0.182584 0.254064 0.320072 +v -0.180731 0.251712 0.319772 +v -0.178626 0.253122 0.320116 +v -0.183513 0.255243 0.320064 +v -0.181456 0.256714 0.320417 +v -0.182379 0.257886 0.320339 +v -0.184426 0.256403 0.319986 +v -0.188720 0.254980 0.318740 +v -0.190088 0.253923 0.317966 +v -0.187128 0.256181 0.319374 +v -0.193122 0.263791 0.318231 +v -0.194707 0.262581 0.317598 +v -0.196066 0.261513 0.316825 +v -0.179832 0.250570 0.319412 +v -0.177704 0.251950 0.319745 +v -0.178963 0.249468 0.318876 +v -0.191230 0.253011 0.317050 +v -0.192148 0.252243 0.315994 +v -0.197198 0.260588 0.315911 +v -0.198104 0.259804 0.314857 +v -0.192841 0.251619 0.314797 +v -0.193310 0.251140 0.313459 +v -0.198784 0.259164 0.313662 +v -0.199237 0.258665 0.312326 +v -0.185311 0.257527 0.319867 +v -0.183270 0.259017 0.320219 +v -0.189273 0.266639 0.319074 +v -0.191311 0.265144 0.318723 +v -0.210954 0.283209 0.314449 +v -0.212306 0.282133 0.313677 +v -0.209374 0.284426 0.315080 +v -0.230207 0.310876 0.310835 +v -0.231782 0.309653 0.310204 +v -0.233129 0.308570 0.309433 +v -0.207567 0.285784 0.315572 +v -0.205533 0.287283 0.315922 +v -0.226372 0.313741 0.311676 +v -0.228404 0.312239 0.311325 +v -0.213431 0.281197 0.312764 +v -0.214328 0.280403 0.311711 +v -0.234247 0.307626 0.308522 +v -0.235136 0.306822 0.307471 +v -0.193554 0.250805 0.311981 +v -0.194684 0.249782 0.310819 +v -0.193951 0.248855 0.310924 +v -0.192802 0.249851 0.312088 +v -0.199464 0.258309 0.310850 +v -0.200595 0.257258 0.309691 +v -0.192089 0.248945 0.312156 +v -0.193265 0.247988 0.310991 +v -0.192652 0.247212 0.311013 +v -0.191437 0.248117 0.312176 +v -0.214997 0.279749 0.310518 +v -0.215439 0.279236 0.309185 +v -0.235797 0.306157 0.306279 +v -0.236229 0.305632 0.304948 +v -0.255497 0.331169 0.301859 +v -0.255919 0.330630 0.300529 +v -0.254846 0.331846 0.303048 +v -0.273485 0.355511 0.298457 +v -0.274127 0.354822 0.297271 +v -0.274537 0.354269 0.295945 +v -0.253965 0.332661 0.304097 +v -0.252854 0.333614 0.305006 +v -0.271510 0.357300 0.300412 +v -0.272613 0.356337 0.299505 +v -0.251514 0.334705 0.305776 +v -0.249944 0.335934 0.306405 +v -0.268612 0.359636 0.301808 +v -0.270176 0.358399 0.301180 +v -0.290220 0.378692 0.294760 +v -0.291083 0.377854 0.293716 +v -0.289126 0.379665 0.295665 +v -0.305729 0.400745 0.290782 +v -0.306815 0.399761 0.289879 +v -0.307668 0.398910 0.288838 +v -0.248144 0.337301 0.306895 +v -0.246115 0.338807 0.307245 +v -0.264790 0.362518 0.302646 +v -0.266816 0.361008 0.302297 +v -0.287799 0.380773 0.296431 +v -0.286240 0.382017 0.297058 +v -0.302856 0.403113 0.292171 +v -0.304409 0.401862 0.291546 +v -0.284449 0.383395 0.297545 +v -0.282425 0.384908 0.297894 +v -0.299050 0.406015 0.293004 +v -0.301069 0.404497 0.292657 +v -0.243856 0.340451 0.307455 +v -0.240129 0.343120 0.307560 +v -0.258505 0.367048 0.302960 +v -0.262533 0.364163 0.302855 +v -0.224111 0.315382 0.311886 +v -0.220702 0.317823 0.311991 +v -0.280170 0.386556 0.298102 +v -0.275858 0.389645 0.298207 +v -0.292216 0.410946 0.293316 +v -0.296796 0.407666 0.293212 +v -0.316707 0.424351 0.287646 +v -0.318489 0.422961 0.287161 +v -0.314691 0.425873 0.287992 +v -0.329377 0.444520 0.282873 +v -0.331390 0.442993 0.282528 +v -0.333166 0.441596 0.282046 +v -0.203271 0.288922 0.316133 +v -0.200197 0.291123 0.316238 +v -0.187009 0.268277 0.319285 +v -0.184198 0.270289 0.319390 +v -0.320035 0.421702 0.286538 +v -0.321347 0.420575 0.285777 +v -0.334706 0.440329 0.281425 +v -0.336010 0.439191 0.280667 +v -0.181004 0.260651 0.320430 +v -0.178288 0.262593 0.320536 +v -0.180109 0.259515 0.320550 +v -0.177406 0.261445 0.320656 +v -0.233694 0.347701 0.307595 +v -0.251165 0.372274 0.302995 +v -0.215224 0.321724 0.312026 +v -0.206216 0.327557 0.312026 +v -0.223389 0.354409 0.307595 +v -0.239633 0.379810 0.302995 +v -0.179181 0.258337 0.320629 +v -0.176491 0.260253 0.320735 +v -0.178232 0.257133 0.320636 +v -0.175554 0.259033 0.320742 +v -0.195730 0.294305 0.316273 +v -0.180518 0.272910 0.319426 +v -0.173947 0.277099 0.319426 +v -0.188090 0.299214 0.316273 +v -0.174899 0.265007 0.320571 +v -0.174060 0.263827 0.320692 +v -0.167942 0.267710 0.320692 +v -0.168722 0.268930 0.320571 +v -0.177275 0.255918 0.320543 +v -0.174607 0.257800 0.320648 +v -0.176322 0.254708 0.320323 +v -0.173664 0.256572 0.320426 +v -0.173189 0.262601 0.320770 +v -0.172297 0.261347 0.320777 +v -0.166303 0.265146 0.320777 +v -0.167132 0.266443 0.320770 +v -0.157644 0.275401 0.320571 +v -0.162461 0.283817 0.319426 +v -0.156924 0.274144 0.320692 +v -0.143284 0.281514 0.320692 +v -0.143941 0.282804 0.320571 +v -0.148339 0.291447 0.319426 +v -0.156177 0.272839 0.320770 +v -0.155412 0.271503 0.320777 +v -0.141903 0.278802 0.320777 +v -0.142602 0.280174 0.320770 +v -0.171396 0.260079 0.320684 +v -0.170497 0.258815 0.320461 +v -0.164629 0.262530 0.320461 +v -0.165465 0.263836 0.320684 +v -0.175502 0.306599 0.316273 +v -0.192215 0.335797 0.312026 +v -0.160247 0.314841 0.316273 +v -0.175507 0.344824 0.312026 +v -0.154640 0.270153 0.320684 +v -0.153869 0.268807 0.320461 +v -0.140494 0.276034 0.320461 +v -0.141198 0.277416 0.320684 +v -0.153111 0.267482 0.320079 +v -0.152374 0.266195 0.319510 +v -0.139802 0.274673 0.320079 +v -0.163806 0.261243 0.320079 +v -0.175386 0.253519 0.319946 +v -0.172736 0.255363 0.320046 +v -0.178137 0.248418 0.318140 +v -0.169612 0.257571 0.320079 +v -0.151669 0.264963 0.318725 +v -0.126156 0.281201 0.320079 +v -0.126781 0.282595 0.320461 +v -0.112206 0.287053 0.320079 +v -0.112762 0.288475 0.320461 +v -0.127416 0.284010 0.320684 +v -0.128052 0.285429 0.320777 +v -0.113327 0.289920 0.320684 +v -0.113893 0.291368 0.320777 +v -0.097986 0.292213 0.320079 +v -0.098471 0.293661 0.320461 +v -0.083529 0.296669 0.320079 +v -0.083943 0.298139 0.320461 +v -0.128682 0.286833 0.320770 +v -0.129298 0.288205 0.320692 +v -0.114453 0.292802 0.320770 +v -0.115001 0.294202 0.320692 +v -0.098964 0.295131 0.320684 +v -0.099459 0.296606 0.320777 +v -0.084364 0.299632 0.320684 +v -0.084785 0.301129 0.320777 +v -0.068872 0.300410 0.320079 +v -0.069213 0.301898 0.320461 +v -0.054049 0.303428 0.320079 +v -0.054316 0.304931 0.320461 +v -0.129891 0.289526 0.320571 +v -0.133860 0.298374 0.319426 +v -0.115528 0.295551 0.320571 +v -0.119058 0.304583 0.319426 +v -0.099948 0.298065 0.320770 +v -0.100426 0.299491 0.320692 +v -0.085202 0.302610 0.320770 +v -0.085610 0.304058 0.320692 +v -0.069560 0.303410 0.320684 +v -0.069907 0.304926 0.320777 +v -0.054588 0.306458 0.320684 +v -0.054861 0.307989 0.320777 +v -0.039095 0.305714 0.320079 +v -0.039289 0.307229 0.320461 +v -0.024047 0.307264 0.320079 +v -0.024166 0.308787 0.320461 +v -0.008942 0.308074 0.320079 +v -0.008986 0.309600 0.320461 +v -0.039486 0.308767 0.320684 +v -0.039683 0.310310 0.320777 +v -0.024287 0.310333 0.320684 +v -0.024409 0.311883 0.320777 +v -0.070251 0.306426 0.320770 +v -0.070587 0.307892 0.320692 +v -0.055131 0.309504 0.320770 +v -0.055395 0.310985 0.320692 +v -0.009031 0.311151 0.320684 +v -0.009076 0.312705 0.320777 +v -0.039878 0.311837 0.320770 +v -0.040069 0.313328 0.320692 +v -0.024529 0.313418 0.320770 +v -0.024646 0.314917 0.320692 +v -0.009121 0.314244 0.320770 +v -0.009164 0.315747 0.320692 +v 0.006309 0.314313 0.320770 +v 0.006340 0.315816 0.320692 +v 0.021725 0.313625 0.320770 +v 0.021828 0.315125 0.320692 +v -0.040252 0.314765 0.320571 +v -0.041483 0.324384 0.319426 +v -0.057349 0.321958 0.319426 +v -0.055649 0.312411 0.320571 +v -0.024759 0.316361 0.320571 +v -0.025516 0.326028 0.319426 +v 0.021929 0.316569 0.320571 +v 0.022599 0.326243 0.319426 +v 0.006563 0.326960 0.319426 +v 0.006369 0.317264 0.320571 +v -0.009206 0.317194 0.320571 +v -0.009488 0.326888 0.319426 +v 0.024413 0.352432 0.316273 +v 0.026737 0.385994 0.312026 +v 0.007765 0.386841 0.312026 +v 0.007090 0.353205 0.316273 +v 0.038960 0.351268 0.316273 +v 0.042929 0.384676 0.312026 +v -0.010249 0.353127 0.316273 +v -0.011225 0.386756 0.312026 +v -0.030189 0.385740 0.312026 +v -0.027564 0.352199 0.316273 +v -0.044812 0.350422 0.316273 +v -0.049080 0.383793 0.312026 +v -0.067853 0.380923 0.312026 +v -0.061953 0.347802 0.316273 +v -0.070911 0.309304 0.320571 +v -0.073078 0.318755 0.319426 +v -0.088631 0.314786 0.319426 +v -0.086002 0.305452 0.320571 +v -0.078944 0.344342 0.316273 +v -0.086462 0.377135 0.312026 +v -0.104863 0.372438 0.312026 +v -0.095745 0.340054 0.316273 +v -0.100887 0.300864 0.320571 +v -0.103970 0.310058 0.319426 +v -0.112315 0.334947 0.316273 +v -0.123011 0.366844 0.312026 +v -0.140863 0.360367 0.312026 +v -0.128615 0.329032 0.316273 +v -0.144605 0.322325 0.316273 +v -0.158376 0.353020 0.312026 +v -0.133145 0.397064 0.307595 +v -0.142730 0.425650 0.302995 +v -0.163444 0.418134 0.302995 +v -0.152468 0.390053 0.307595 +v -0.113501 0.403119 0.307595 +v -0.121673 0.432141 0.302995 +v -0.208050 0.363459 0.307595 +v -0.223028 0.389626 0.302995 +v -0.189965 0.373230 0.307595 +v -0.203642 0.400100 0.302995 +v -0.171423 0.382102 0.307595 +v -0.183764 0.409610 0.302995 +v -0.267663 0.395479 0.298242 +v -0.283216 0.417354 0.293351 +v -0.254973 0.403796 0.298242 +v -0.269434 0.426408 0.293351 +v -0.237173 0.414337 0.298242 +v -0.250507 0.437631 0.293351 +v -0.216557 0.425475 0.298242 +v -0.228732 0.449395 0.293351 +v -0.195419 0.435588 0.298242 +v -0.206405 0.460077 0.293351 +v -0.173810 0.444653 0.298242 +v -0.183582 0.469651 0.293351 +v -0.093585 0.408203 0.307595 +v -0.100322 0.437591 0.302995 +v -0.073442 0.412303 0.307595 +v -0.078730 0.441986 0.302995 +v -0.151782 0.452645 0.298242 +v -0.160316 0.478093 0.293351 +v -0.129389 0.459548 0.298242 +v -0.136664 0.485384 0.293351 +v -0.053123 0.415410 0.307595 +v -0.056948 0.445317 0.302995 +v -0.032676 0.417516 0.307595 +v -0.035028 0.447575 0.302995 +v -0.106685 0.465343 0.298242 +v -0.112682 0.491505 0.293351 +v -0.083723 0.470018 0.298242 +v -0.088430 0.496442 0.293351 +v -0.012150 0.418616 0.307595 +v -0.013025 0.448754 0.302995 +v 0.008405 0.418709 0.307595 +v 0.009010 0.448853 0.302995 +v -0.060559 0.473559 0.298242 +v -0.063964 0.500183 0.293351 +v -0.037250 0.475961 0.298242 +v -0.039344 0.502719 0.293351 +v -0.168345 0.502037 0.288338 +v -0.175883 0.524518 0.283218 +v -0.201409 0.515257 0.283218 +v -0.192776 0.493172 0.288338 +v -0.143508 0.509692 0.288338 +v -0.149935 0.532517 0.283218 +v -0.118326 0.516119 0.288338 +v -0.123625 0.539232 0.283218 +v -0.092858 0.521304 0.288338 +v -0.097017 0.544649 0.283218 +v -0.216742 0.483118 0.288338 +v -0.226448 0.504754 0.283218 +v -0.250943 0.493035 0.283218 +v -0.240187 0.471902 0.288338 +v -0.013851 0.477215 0.298242 +v -0.014630 0.504044 0.293351 +v 0.009582 0.477320 0.298242 +v 0.010120 0.504155 0.293351 +v -0.263052 0.459548 0.288338 +v -0.274833 0.480127 0.283218 +v -0.295816 0.467660 0.283218 +v -0.283040 0.447683 0.288338 +v 0.028940 0.417792 0.307595 +v 0.031024 0.447870 0.302995 +v 0.046689 0.416328 0.307595 +v 0.050246 0.446267 0.302995 +v 0.047976 0.350177 0.316273 +v 0.053579 0.383350 0.312026 +v 0.058888 0.414778 0.307595 +v 0.063909 0.444508 0.302995 +v 0.032991 0.476274 0.298242 +v 0.034846 0.503050 0.293351 +v 0.053605 0.474541 0.298242 +v 0.056771 0.501194 0.293351 +v 0.083796 0.470000 0.298103 +v 0.078569 0.470901 0.298207 +v 0.089566 0.496242 0.293212 +v 0.084014 0.497201 0.293316 +v 0.068652 0.472582 0.298242 +v 0.073122 0.499048 0.293351 +v 0.094995 0.520934 0.288200 +v 0.089138 0.521946 0.288303 +v 0.077328 0.523948 0.288338 +v 0.059751 0.526271 0.288338 +v 0.036591 0.528244 0.288338 +v 0.038230 0.551899 0.283218 +v 0.011103 0.553111 0.283218 +v 0.010627 0.529402 0.288338 +v 0.039765 0.574064 0.278006 +v 0.011549 0.575324 0.278006 +v -0.015362 0.529287 0.288338 +v -0.016050 0.552989 0.283218 +v -0.043165 0.551535 0.283218 +v -0.041315 0.527896 0.288338 +v -0.016695 0.575197 0.278006 +v -0.017297 0.595957 0.272718 +v -0.046519 0.594390 0.272718 +v -0.044898 0.573686 0.278006 +v -0.017859 0.615313 0.267369 +v -0.018382 0.633312 0.261974 +v -0.049435 0.631647 0.261974 +v -0.048030 0.613696 0.267369 +v -0.067167 0.525231 0.288338 +v -0.070175 0.548753 0.283218 +v -0.072994 0.570791 0.278006 +v -0.075628 0.591391 0.272718 +v -0.104555 0.586969 0.272718 +v -0.100913 0.566522 0.278006 +v -0.128589 0.560888 0.278006 +v -0.133230 0.581131 0.272718 +v -0.161585 0.573894 0.272718 +v -0.155956 0.553903 0.278006 +v -0.078084 0.610599 0.267369 +v -0.080368 0.628460 0.261974 +v -0.111109 0.623760 0.261974 +v -0.107951 0.606033 0.267369 +v -0.137558 0.600006 0.267369 +v -0.141581 0.617556 0.261974 +v -0.171713 0.609866 0.261974 +v -0.166833 0.592534 0.267369 +v -0.182947 0.545583 0.278006 +v -0.189550 0.565274 0.272718 +v -0.217058 0.555293 0.272718 +v -0.209497 0.535950 0.278006 +v -0.195706 0.583633 0.267369 +v -0.201431 0.600705 0.261974 +v -0.230664 0.590099 0.261974 +v -0.224108 0.573328 0.267369 +v -0.235543 0.525024 0.278006 +v -0.244044 0.543974 0.272718 +v -0.270441 0.531343 0.272718 +v -0.261021 0.512834 0.278006 +v -0.251970 0.561641 0.267369 +v -0.259340 0.578069 0.261974 +v -0.287393 0.564648 0.261974 +v -0.279225 0.548601 0.267369 +v -0.285870 0.499410 0.278006 +v -0.296187 0.517434 0.272718 +v -0.318975 0.503874 0.272718 +v -0.307786 0.486377 0.278006 +v -0.305807 0.534239 0.267369 +v -0.314752 0.549866 0.261974 +v -0.339109 0.535357 0.261974 +v -0.329408 0.520186 0.267369 +v -0.266174 0.593300 0.256549 +v -0.272895 0.608282 0.250663 +v -0.302414 0.594160 0.250663 +v -0.294965 0.579526 0.256549 +v -0.236741 0.605647 0.256549 +v -0.242719 0.620941 0.250663 +v -0.323046 0.564354 0.256549 +v -0.331203 0.578605 0.250663 +v -0.356951 0.563253 0.250663 +v -0.348103 0.549419 0.256549 +v -0.347720 0.508077 0.267369 +v -0.336499 0.492295 0.272718 +v -0.358154 0.522752 0.261974 +v -0.371035 0.513581 0.261940 +v -0.360061 0.499291 0.267335 +v -0.348259 0.483923 0.272684 +v -0.206738 0.616533 0.256549 +v -0.211959 0.632102 0.250663 +v -0.176237 0.625935 0.256549 +v -0.180688 0.641741 0.250663 +v -0.324465 0.475369 0.278006 +v -0.311590 0.457261 0.283218 +v -0.335601 0.467441 0.277972 +v -0.322060 0.449808 0.283183 +v -0.145312 0.633828 0.256549 +v -0.148981 0.649834 0.250663 +v -0.114036 0.640195 0.256549 +v -0.116916 0.656362 0.250663 +v -0.297850 0.437935 0.288338 +v -0.307608 0.430989 0.288303 +v -0.312440 0.427527 0.288200 +v -0.327128 0.446176 0.283080 +v -0.340891 0.463649 0.277869 +v -0.343137 0.461990 0.277663 +v -0.353755 0.479982 0.272581 +v -0.355999 0.478319 0.272376 +v -0.365749 0.495210 0.267233 +v -0.367990 0.493544 0.267029 +v -0.376902 0.509369 0.261839 +v -0.345146 0.460458 0.277319 +v -0.346917 0.459054 0.276839 +v -0.358003 0.476782 0.272035 +v -0.369991 0.492002 0.266690 +v -0.348450 0.457778 0.276221 +v -0.349745 0.456630 0.275466 +v -0.350802 0.455609 0.274574 +v -0.337078 0.438184 0.279770 +v -0.322425 0.419580 0.284877 +v -0.323267 0.418716 0.283839 +v -0.323875 0.417983 0.282663 +v -0.308287 0.398193 0.287657 +v -0.291714 0.377151 0.292532 +v -0.292113 0.376583 0.291209 +v -0.256111 0.330230 0.299060 +v -0.257351 0.329036 0.297906 +v -0.237635 0.304101 0.302320 +v -0.236433 0.305246 0.303476 +v -0.274717 0.353852 0.294479 +v -0.275992 0.352610 0.293327 +v -0.215654 0.278864 0.307711 +v -0.216814 0.277770 0.306553 +v -0.387242 0.522498 0.256415 +v -0.381209 0.526828 0.256515 +v -0.391217 0.539860 0.250630 +v -0.397412 0.535410 0.250531 +v -0.367827 0.536357 0.256549 +v -0.377342 0.549739 0.250663 +v -0.408057 0.548925 0.243757 +v -0.401692 0.553500 0.243855 +v -0.387302 0.563748 0.243887 +v -0.396920 0.577276 0.236703 +v -0.366211 0.577733 0.243887 +v -0.375154 0.591717 0.236703 +v -0.405412 0.589220 0.229591 +v -0.383050 0.604063 0.229591 +v -0.339742 0.593522 0.243887 +v -0.347988 0.607928 0.236703 +v -0.310210 0.609478 0.243887 +v -0.317739 0.624271 0.236703 +v -0.355268 0.620647 0.229591 +v -0.361637 0.631771 0.222589 +v -0.324387 0.637332 0.229591 +v -0.330201 0.648756 0.222589 +v -0.279930 0.623964 0.243887 +v -0.286725 0.639109 0.236703 +v -0.248977 0.636949 0.243887 +v -0.255020 0.652409 0.236703 +v -0.367145 0.641395 0.215731 +v -0.371848 0.649611 0.209055 +v -0.335232 0.658638 0.215731 +v -0.339526 0.667075 0.209055 +v -0.292724 0.652480 0.229591 +v -0.297971 0.664176 0.222589 +v -0.260356 0.666058 0.229591 +v -0.265022 0.677997 0.222589 +v -0.217423 0.648398 0.243887 +v -0.222701 0.664136 0.236703 +v -0.185346 0.658286 0.243887 +v -0.189845 0.674264 0.236703 +v -0.375799 0.656513 0.202597 +v -0.379051 0.662193 0.196391 +v -0.343133 0.674162 0.202597 +v -0.346102 0.679995 0.196391 +v -0.302510 0.674293 0.215731 +v -0.306385 0.682931 0.209055 +v -0.269059 0.688325 0.215731 +v -0.272506 0.697142 0.209055 +v -0.227360 0.678030 0.229591 +v -0.231435 0.690184 0.222589 +v -0.193817 0.688370 0.229591 +v -0.197291 0.700709 0.222589 +v -0.381656 0.666745 0.190475 +v -0.348481 0.684670 0.190476 +v -0.309640 0.690187 0.202597 +v -0.312319 0.696158 0.196391 +v -0.275401 0.704549 0.202597 +v -0.314466 0.700944 0.190476 +v -0.240499 0.717213 0.202597 +v -0.237970 0.709673 0.209055 +v -0.234961 0.700698 0.215731 +v -0.200296 0.711383 0.215731 +v -0.165149 0.720354 0.215731 +v -0.162671 0.709545 0.222589 +v -0.090714 0.709358 0.229591 +v -0.088855 0.694821 0.236703 +v -0.125411 0.704053 0.229591 +v -0.122841 0.689625 0.236703 +v -0.159806 0.697051 0.229591 +v -0.156531 0.682766 0.236703 +v -0.086749 0.678356 0.243887 +v -0.084569 0.661307 0.250663 +v -0.119930 0.673283 0.243887 +v -0.018866 0.649998 0.256549 +v -0.050737 0.648290 0.256549 +v -0.152822 0.666587 0.243887 +v -0.082486 0.645019 0.256549 +v -0.187656 0.245035 0.313930 +v -0.188649 0.245222 0.312819 +v -0.189473 0.245624 0.311591 +v -0.191050 0.245187 0.310626 +v -0.189709 0.245923 0.311775 +v -0.191200 0.245375 0.310729 +v -0.190008 0.246303 0.311932 +v -0.191415 0.245648 0.310830 +v -0.190388 0.246785 0.312055 +v -0.191719 0.246033 0.310918 +v -0.190867 0.247393 0.312139 +v -0.192134 0.246557 0.310984 +v 0.063551 0.303632 0.311591 +v 0.062984 0.302911 0.312819 +v 0.065161 0.303926 0.310626 +v 0.062171 0.302310 0.313930 +v -0.472917 0.605493 0.176068 +v -0.474133 0.603190 0.175583 +v -0.473906 0.606749 0.172222 +v -0.475091 0.604402 0.171870 +v -0.474741 0.607809 0.162776 +v -0.475890 0.605413 0.162729 +v -0.475824 0.605329 0.165551 +v -0.474670 0.607719 0.165666 +v -0.475332 0.609205 0.162836 +v -0.475326 0.609196 0.160000 +v -0.474733 0.607798 0.160000 +v -0.475880 0.605400 0.160000 +v -0.475621 0.610644 0.162890 +v -0.475603 0.612127 0.162939 +v -0.475599 0.612121 0.160000 +v -0.475615 0.610637 0.160000 +v -0.475283 0.613652 0.162982 +v -0.474658 0.615222 0.163019 +v -0.474655 0.615218 0.160000 +v -0.475279 0.613648 0.160000 +v -0.473727 0.616834 0.163050 +v -0.472494 0.618490 0.163076 +v -0.472492 0.618489 0.160000 +v -0.473726 0.616832 0.160000 +v -0.470956 0.620189 0.163096 +v -0.469113 0.621932 0.163111 +v -0.469113 0.621932 0.160000 +v -0.470955 0.620189 0.160000 +v -0.466966 0.623718 0.163119 +v -0.459689 0.629022 0.163123 +v -0.459689 0.629022 0.160000 +v -0.466966 0.623718 0.160000 +v -0.442454 0.641319 0.163125 +v -0.442454 0.641319 0.160000 +v -0.417491 0.657917 0.163125 +v -0.417491 0.657917 0.160000 +v -0.387025 0.676125 0.163125 +v -0.387025 0.676125 0.160000 +v -0.353384 0.694302 0.163125 +v -0.353384 0.694302 0.160000 +v -0.318890 0.710805 0.163125 +v -0.318890 0.710805 0.160000 +v -0.283628 0.725596 0.163125 +v -0.283628 0.725596 0.160000 +v -0.247683 0.738639 0.163125 +v -0.247683 0.738639 0.160000 +v -0.211142 0.749903 0.163125 +v -0.211142 0.749903 0.160000 +v -0.174091 0.759359 0.163125 +v -0.174091 0.759359 0.160000 +v -0.136621 0.766987 0.163125 +v -0.136621 0.766987 0.160000 +v -0.098823 0.772766 0.163125 +v -0.098823 0.772766 0.160000 +v -0.060786 0.776685 0.163125 +v -0.060786 0.776685 0.160000 +v -0.022602 0.778732 0.163125 +v -0.022602 0.778732 0.160000 +v 0.015636 0.778903 0.163125 +v 0.015636 0.778903 0.160000 +v 0.053836 0.777197 0.163125 +v 0.053836 0.777197 0.160000 +v 0.089190 0.774079 0.163125 +v 0.089190 0.774079 0.160000 +v 0.118892 0.770013 0.163125 +v 0.118892 0.770013 0.160000 +v 0.139762 0.766452 0.163123 +v 0.139762 0.766452 0.160000 +v 0.148623 0.764848 0.163119 +v 0.151333 0.764176 0.163111 +v 0.151333 0.764175 0.160000 +v 0.148623 0.764848 0.160000 +v 0.153751 0.763410 0.163096 +v 0.155876 0.762550 0.163076 +v 0.155875 0.762548 0.160000 +v 0.153751 0.763409 0.160000 +v 0.157708 0.761597 0.163051 +v 0.159247 0.760551 0.163019 +v 0.159246 0.760547 0.160000 +v 0.157707 0.761594 0.160000 +v 0.160494 0.759411 0.162982 +v 0.161447 0.758177 0.162939 +v 0.161446 0.758170 0.160000 +v 0.160492 0.759405 0.160000 +v 0.162108 0.756850 0.162890 +v 0.162476 0.755429 0.162836 +v 0.162474 0.755418 0.160000 +v 0.162106 0.756841 0.160000 +v 0.162080 0.756721 0.165944 +v 0.162450 0.755308 0.165812 +v 0.162552 0.753915 0.162776 +v 0.164630 0.752259 0.162729 +v 0.164626 0.752243 0.160000 +v 0.162549 0.753901 0.160000 +v 0.162527 0.753804 0.165666 +v 0.164607 0.752155 0.165551 +v 0.162448 0.753442 0.168785 +v 0.162365 0.754923 0.169068 +v 0.164531 0.751812 0.168562 +v 0.161990 0.756313 0.169324 +v -0.292279 0.376150 0.289747 +v -0.293587 0.374861 0.288598 +v -0.474441 0.607429 0.168785 +v -0.475607 0.605054 0.168562 +v 0.152951 0.759772 0.179363 +v -0.773426 0.007908 0.169324 +v -0.772152 0.007238 0.169068 +v -0.771243 0.007233 0.172670 +v -0.772478 0.007904 0.173076 +v -0.774548 0.008844 0.169553 +v -0.773564 0.008839 0.173439 +v -0.774985 0.008846 0.166062 +v -0.773843 0.007910 0.165944 +v -0.772547 0.007239 0.165812 +v -0.308506 0.004613 0.308918 +v -0.309553 0.003313 0.308388 +v -0.308974 0.003311 0.306899 +v -0.307890 0.004610 0.307355 +v -0.307166 0.005006 0.309592 +v -0.306502 0.005002 0.307936 +v -0.307791 0.005009 0.310991 +v -0.309059 0.004616 0.310203 +v -0.310049 0.003315 0.309585 +v -0.494033 0.597881 0.169756 +v -0.492489 0.597878 0.169553 +v -0.492764 0.598217 0.166062 +v -0.494318 0.598233 0.166166 +v -0.495686 0.597598 0.169931 +v -0.495982 0.597963 0.166257 +v -0.495029 0.596790 0.174037 +v -0.493391 0.597093 0.173759 +v -0.491867 0.597115 0.173439 +v -0.199484 0.240499 0.312139 +v -0.199679 0.240106 0.313610 +v -0.199106 0.239401 0.313502 +v -0.198996 0.239898 0.312055 +v -0.198391 0.241552 0.310984 +v -0.197970 0.241032 0.310918 +v -0.198916 0.242201 0.311013 +v -0.200065 0.241213 0.312176 +v -0.200329 0.240905 0.313656 +v -0.197010 0.237454 0.308918 +v -0.196476 0.236164 0.309592 +v -0.196057 0.235649 0.307936 +v -0.196621 0.236976 0.307355 +v -0.196493 0.239209 0.308388 +v -0.196129 0.238759 0.306899 +v -0.196806 0.239595 0.309585 +v -0.197359 0.237883 0.310203 +v -0.196869 0.236649 0.310991 +v -0.775518 0.010045 0.169756 +v -0.776336 0.011511 0.169931 +v -0.776805 0.011514 0.166257 +v -0.775972 0.010047 0.166166 +v -0.774503 0.010040 0.173759 +v -0.775293 0.011506 0.174037 +v -0.777001 0.013243 0.170079 +v -0.777514 0.015239 0.170200 +v -0.778007 0.015242 0.166395 +v -0.777483 0.013245 0.166333 +v -0.775936 0.013238 0.174271 +v -0.776430 0.015234 0.174463 +v -0.772673 0.010032 0.178186 +v -0.773421 0.011497 0.178568 +v -0.771782 0.008831 0.177745 +v -0.769066 0.008818 0.182484 +v -0.769898 0.010018 0.183038 +v -0.770596 0.011484 0.183518 +v -0.770750 0.007895 0.177245 +v -0.769576 0.007225 0.176686 +v -0.767002 0.007213 0.181154 +v -0.768101 0.007883 0.181856 +v -0.777875 0.017501 0.170295 +v -0.778083 0.020027 0.170362 +v -0.778590 0.020030 0.166479 +v -0.778376 0.017503 0.166444 +v -0.776776 0.017496 0.174613 +v -0.776975 0.020022 0.174720 +v -0.764388 0.007865 0.186936 +v -0.765282 0.008800 0.187670 +v -0.763368 0.007195 0.186116 +v -0.758549 0.007172 0.191516 +v -0.759487 0.007841 0.192433 +v -0.760309 0.008776 0.193254 +v -0.762223 0.006791 0.185209 +v -0.761317 0.004916 0.184497 +v -0.756658 0.004899 0.189706 +v -0.757494 0.006768 0.190502 +v -0.765769 0.006808 0.180378 +v -0.764793 0.004928 0.179769 +v -0.751449 0.006739 0.196200 +v -0.752416 0.007143 0.197301 +v -0.750682 0.004878 0.195335 +v -0.743271 0.004852 0.201327 +v -0.743972 0.006703 0.202247 +v -0.744856 0.007107 0.203419 +v -0.734948 0.006660 0.208589 +v -0.735755 0.007063 0.209818 +v -0.734309 0.004820 0.207623 +v -0.723687 0.004782 0.214173 +v -0.724269 0.006609 0.215176 +v -0.725002 0.007011 0.216452 +v -0.753276 0.007812 0.198297 +v -0.754026 0.008746 0.199189 +v -0.745640 0.007775 0.204479 +v -0.746323 0.008709 0.205428 +v -0.766051 0.010000 0.188317 +v -0.766694 0.011465 0.188878 +v -0.761013 0.009976 0.193978 +v -0.761601 0.011441 0.194605 +v -0.774028 0.013228 0.178892 +v -0.774494 0.015225 0.179157 +v -0.771160 0.013215 0.183925 +v -0.771590 0.015211 0.184257 +v -0.774818 0.017486 0.179363 +v -0.775000 0.020013 0.179510 +v -0.771886 0.017472 0.184516 +v -0.772049 0.019999 0.184701 +v -0.767212 0.013196 0.189353 +v -0.767604 0.015192 0.189742 +v -0.762072 0.013171 0.195136 +v -0.762426 0.015167 0.195571 +v -0.754669 0.009945 0.199975 +v -0.755202 0.011410 0.200657 +v -0.746906 0.009908 0.206265 +v -0.747388 0.011372 0.206991 +v -0.778140 0.022819 0.170403 +v -0.777758 0.031808 0.170423 +v -0.778270 0.031817 0.166510 +v -0.778650 0.022822 0.166500 +v -0.777025 0.022814 0.174784 +v -0.776641 0.031789 0.174816 +v -0.775040 0.022805 0.179598 +v -0.774653 0.031755 0.179642 +v -0.772078 0.022790 0.184811 +v -0.771686 0.031705 0.184867 +v -0.767871 0.017453 0.190044 +v -0.768013 0.019979 0.190260 +v -0.762663 0.017428 0.195909 +v -0.762783 0.019954 0.196150 +v -0.776654 0.052926 0.170430 +v -0.777165 0.052953 0.166514 +v -0.775537 0.052866 0.174826 +v -0.772994 0.082647 0.174826 +v -0.774106 0.082762 0.170430 +v -0.774615 0.082815 0.166514 +v -0.755627 0.013140 0.201233 +v -0.755944 0.015136 0.201705 +v -0.747769 0.013102 0.207604 +v -0.748050 0.015098 0.208107 +v -0.736467 0.007731 0.210931 +v -0.737087 0.008664 0.211926 +v -0.725649 0.007679 0.217606 +v -0.726210 0.008612 0.218639 +v -0.711826 0.006549 0.221957 +v -0.711296 0.004738 0.220925 +v -0.697026 0.004688 0.227835 +v -0.697508 0.006480 0.228891 +v -0.712492 0.006951 0.223272 +v -0.698113 0.006882 0.230236 +v -0.681207 0.006402 0.235933 +v -0.681757 0.006804 0.237302 +v -0.680768 0.004630 0.234858 +v -0.663877 0.004570 0.241506 +v -0.664278 0.006321 0.242597 +v -0.664780 0.006722 0.243985 +v -0.713078 0.007619 0.224460 +v -0.713584 0.008552 0.225524 +v -0.698644 0.007549 0.231452 +v -0.699101 0.008482 0.232541 +v -0.737614 0.009863 0.212804 +v -0.738047 0.011328 0.213565 +v -0.726685 0.009811 0.219551 +v -0.727073 0.011275 0.220341 +v -0.756152 0.017396 0.202072 +v -0.756251 0.019923 0.202334 +v -0.748230 0.017358 0.208497 +v -0.748309 0.019885 0.208776 +v -0.738387 0.013057 0.214209 +v -0.738635 0.015053 0.214736 +v -0.727375 0.013005 0.221009 +v -0.727591 0.015000 0.221556 +v -0.714011 0.009750 0.226463 +v -0.714358 0.011214 0.227276 +v -0.699484 0.009680 0.233501 +v -0.699793 0.011144 0.234334 +v -0.682238 0.007471 0.238541 +v -0.682651 0.008403 0.239650 +v -0.665218 0.007389 0.245241 +v -0.665592 0.008321 0.246365 +v -0.714625 0.012943 0.227964 +v -0.714812 0.014938 0.228528 +v -0.700028 0.012873 0.235038 +v -0.700189 0.014868 0.235614 +v -0.682995 0.009601 0.240628 +v -0.683270 0.011065 0.241475 +v -0.665901 0.009519 0.247357 +v -0.666147 0.010983 0.248217 +v -0.648940 0.007311 0.251067 +v -0.649280 0.008243 0.252204 +v -0.648540 0.006644 0.249797 +v -0.632001 0.006565 0.255164 +v -0.632369 0.007231 0.256445 +v -0.632679 0.008163 0.257591 +v -0.648079 0.006243 0.248393 +v -0.647711 0.004513 0.247290 +v -0.631238 0.004455 0.252636 +v -0.631577 0.006164 0.253748 +v -0.613740 0.006078 0.259085 +v -0.614131 0.006479 0.260511 +v -0.613426 0.004391 0.257964 +v -0.594237 0.004323 0.263258 +v -0.594527 0.005986 0.264385 +v -0.594888 0.006387 0.265819 +v -0.573899 0.005887 0.269631 +v -0.574232 0.006288 0.271073 +v -0.573630 0.004250 0.268498 +v -0.551562 0.004172 0.273668 +v -0.551809 0.005781 0.274806 +v -0.552115 0.006181 0.276254 +v -0.614469 0.007145 0.261801 +v -0.614753 0.008077 0.262955 +v -0.595199 0.007053 0.267117 +v -0.595459 0.007985 0.268278 +v -0.649560 0.009441 0.253206 +v -0.649779 0.010904 0.254075 +v -0.632933 0.009361 0.258603 +v -0.633130 0.010824 0.259479 +v -0.528214 0.005668 0.279894 +v -0.528495 0.006068 0.281348 +v -0.527986 0.004088 0.278752 +v -0.502859 0.003999 0.283734 +v -0.503068 0.005547 0.284880 +v -0.503325 0.005947 0.286338 +v -0.574516 0.006954 0.272377 +v -0.574753 0.007885 0.273544 +v -0.552376 0.006847 0.277564 +v -0.552591 0.007779 0.278736 +v -0.614983 0.009275 0.263974 +v -0.615160 0.010738 0.264856 +v -0.595667 0.009182 0.269303 +v -0.595826 0.010645 0.270191 +v -0.683476 0.012794 0.242192 +v -0.683614 0.014788 0.242779 +v -0.666328 0.012712 0.248944 +v -0.666445 0.014706 0.249539 +v -0.649939 0.012633 0.254811 +v -0.650038 0.014627 0.255412 +v -0.633270 0.012553 0.260221 +v -0.633354 0.014547 0.260828 +v -0.615283 0.012467 0.265603 +v -0.615353 0.014461 0.266214 +v -0.595933 0.012374 0.270942 +v -0.595989 0.014368 0.271557 +v -0.683683 0.017049 0.243235 +v -0.683683 0.019574 0.243561 +v -0.700289 0.019654 0.236383 +v -0.700276 0.017128 0.236063 +v -0.666497 0.016966 0.250002 +v -0.666486 0.019492 0.250333 +v -0.650077 0.016887 0.255880 +v -0.650055 0.019413 0.256214 +v -0.633380 0.016807 0.261300 +v -0.633350 0.019333 0.261637 +v -0.714919 0.017199 0.228966 +v -0.714947 0.019724 0.229278 +v -0.727764 0.019786 0.222285 +v -0.727721 0.017260 0.221981 +v -0.738789 0.017313 0.215146 +v -0.738849 0.019839 0.215439 +v -0.714894 0.022516 0.229466 +v -0.714500 0.030729 0.229560 +v -0.727324 0.030948 0.222558 +v -0.727722 0.022577 0.222467 +v -0.700228 0.022445 0.236575 +v -0.699839 0.030479 0.236671 +v -0.738817 0.022631 0.215614 +v -0.738417 0.031137 0.215702 +v -0.747888 0.031298 0.209027 +v -0.748288 0.022676 0.208944 +v -0.756242 0.022714 0.202492 +v -0.755842 0.031434 0.202570 +v -0.762389 0.031546 0.196367 +v -0.762786 0.022746 0.196295 +v -0.768029 0.022771 0.190389 +v -0.767634 0.031635 0.190454 +v -0.754770 0.051745 0.202597 +v -0.761306 0.052098 0.196391 +v -0.746829 0.051317 0.209055 +v -0.744396 0.079692 0.209055 +v -0.752307 0.080509 0.202597 +v -0.758817 0.081182 0.196391 +v -0.773552 0.052759 0.179657 +v -0.770589 0.052599 0.184885 +v -0.768065 0.082138 0.184885 +v -0.771016 0.082443 0.179657 +v -0.766543 0.052380 0.190475 +v -0.764034 0.081721 0.190475 +v -0.737376 0.050807 0.215731 +v -0.726303 0.050210 0.222589 +v -0.723949 0.077579 0.222589 +v -0.734979 0.078719 0.215731 +v -0.769395 0.117906 0.170430 +v -0.769901 0.117983 0.166514 +v -0.768290 0.117737 0.174826 +v -0.761588 0.155293 0.174826 +v -0.762684 0.155517 0.170430 +v -0.763185 0.155619 0.166514 +v -0.754134 0.192752 0.170430 +v -0.754630 0.192879 0.166514 +v -0.753051 0.192475 0.174826 +v -0.742700 0.229194 0.174826 +v -0.743768 0.229524 0.170430 +v -0.744257 0.229675 0.166514 +v -0.766325 0.117435 0.179657 +v -0.763392 0.116986 0.184885 +v -0.756733 0.154303 0.184885 +v -0.759640 0.154896 0.179657 +v -0.731609 0.265742 0.170430 +v -0.732090 0.265917 0.166514 +v -0.730559 0.265361 0.174826 +v -0.716658 0.300888 0.174826 +v -0.717689 0.301321 0.170430 +v -0.718161 0.301519 0.166514 +v -0.702039 0.336173 0.170430 +v -0.702501 0.336394 0.166514 +v -0.701031 0.335690 0.174826 +v -0.683715 0.369684 0.174826 +v -0.684699 0.370216 0.170430 +v -0.685149 0.370459 0.166514 +v -0.751124 0.191983 0.179657 +v -0.748249 0.191248 0.184885 +v -0.737965 0.227733 0.184885 +v -0.740799 0.228608 0.179657 +v -0.728689 0.264682 0.179657 +v -0.725901 0.263669 0.184885 +v -0.712089 0.298970 0.184885 +v -0.714825 0.300118 0.179657 +v -0.699237 0.334831 0.179657 +v -0.696561 0.333550 0.184885 +v -0.679356 0.367327 0.184885 +v -0.681966 0.368738 0.179657 +v -0.722092 0.262285 0.190476 +v -0.717162 0.260495 0.196391 +v -0.703517 0.295371 0.196391 +v -0.708353 0.297401 0.190476 +v -0.734093 0.226538 0.190476 +v -0.729081 0.224992 0.196391 +v -0.692906 0.331800 0.190476 +v -0.688176 0.329535 0.196391 +v -0.671178 0.362905 0.196391 +v -0.675792 0.365400 0.190476 +v -0.665708 0.403366 0.170430 +v -0.666146 0.403631 0.166514 +v -0.664752 0.402787 0.174826 +v -0.644188 0.434920 0.174826 +v -0.645114 0.435545 0.170430 +v -0.645539 0.435832 0.166514 +v -0.622965 0.466675 0.170430 +v -0.623375 0.466982 0.166514 +v -0.622071 0.466004 0.174826 +v -0.598456 0.495967 0.174826 +v -0.599317 0.496680 0.170430 +v -0.599711 0.497007 0.166514 +v -0.663051 0.401756 0.179657 +v -0.660514 0.400219 0.184885 +v -0.640081 0.432147 0.184885 +v -0.642539 0.433807 0.179657 +v -0.574224 0.525488 0.170430 +v -0.574601 0.525835 0.166514 +v -0.573399 0.524733 0.174826 +v -0.549011 0.550397 0.174826 +v -0.549797 0.551192 0.170430 +v -0.550159 0.551556 0.166514 +v -0.620479 0.464812 0.179657 +v -0.618105 0.463033 0.184885 +v -0.594641 0.492805 0.184885 +v -0.596925 0.494698 0.179657 +v -0.528150 0.571882 0.170430 +v -0.528493 0.572263 0.166514 +v -0.527404 0.571050 0.174826 +v -0.511675 0.585123 0.174816 +v -0.512392 0.585982 0.170423 +v -0.512718 0.586375 0.166510 +v -0.571932 0.523391 0.179657 +v -0.569743 0.521389 0.184885 +v -0.545524 0.546876 0.184885 +v -0.547611 0.548984 0.179657 +v -0.505628 0.591915 0.170403 +v -0.503418 0.593621 0.170362 +v -0.503736 0.594014 0.166479 +v -0.505950 0.592310 0.166500 +v -0.504925 0.591049 0.174784 +v -0.502719 0.592761 0.174720 +v -0.526075 0.569570 0.179657 +v -0.524094 0.567362 0.184885 +v -0.508503 0.581316 0.184867 +v -0.510404 0.583596 0.179642 +v -0.503672 0.589509 0.179598 +v -0.501473 0.591228 0.179510 +v -0.501804 0.587210 0.184812 +v -0.499611 0.588938 0.184701 +v -0.501319 0.595043 0.170295 +v -0.499329 0.596179 0.170200 +v -0.499640 0.596562 0.166396 +v -0.501634 0.595431 0.166444 +v -0.500625 0.594190 0.174613 +v -0.498646 0.595338 0.174464 +v -0.497452 0.597031 0.170079 +v -0.497756 0.597406 0.166333 +v -0.496781 0.596205 0.174271 +v -0.495578 0.594724 0.178892 +v -0.493849 0.595337 0.178569 +v -0.497425 0.593836 0.179157 +v -0.495593 0.591582 0.184257 +v -0.493769 0.592498 0.183925 +v -0.492067 0.593144 0.183519 +v -0.499250 0.584068 0.190389 +v -0.497065 0.585806 0.190260 +v -0.505909 0.578203 0.190454 +v -0.502551 0.574172 0.196367 +v -0.495944 0.579999 0.196295 +v -0.493767 0.581747 0.196150 +v -0.521387 0.564347 0.190476 +v -0.517883 0.560444 0.196391 +v -0.542672 0.543997 0.190476 +v -0.538981 0.540271 0.196391 +v -0.495008 0.587279 0.190044 +v -0.493081 0.588489 0.189742 +v -0.497541 0.590395 0.184516 +v -0.491725 0.583237 0.195909 +v -0.489814 0.584470 0.195571 +v -0.566754 0.518652 0.190476 +v -0.562885 0.515112 0.196391 +v -0.591521 0.490219 0.190476 +v -0.587482 0.486873 0.196391 +v -0.491818 0.574921 0.202492 +v -0.489649 0.576678 0.202334 +v -0.498359 0.569142 0.202570 +v -0.493268 0.563030 0.209027 +v -0.486800 0.568748 0.208944 +v -0.484640 0.570515 0.208776 +v -0.513511 0.555573 0.202597 +v -0.508199 0.549655 0.209055 +v -0.534376 0.535621 0.202597 +v -0.528779 0.529971 0.209055 +v -0.614862 0.460604 0.190476 +v -0.610664 0.457459 0.196391 +v -0.636722 0.429880 0.190476 +v -0.632375 0.426945 0.196391 +v -0.558056 0.510694 0.202597 +v -0.552190 0.505325 0.209055 +v -0.582443 0.482696 0.202597 +v -0.576320 0.477622 0.209055 +v -0.657048 0.398119 0.190476 +v -0.652562 0.395401 0.196391 +v -0.605426 0.453535 0.202597 +v -0.599061 0.448768 0.209055 +v -0.626951 0.423282 0.202597 +v -0.620360 0.418833 0.209055 +v -0.646965 0.392009 0.202597 +v -0.640163 0.387888 0.209055 +v -0.665421 0.359792 0.202597 +v -0.658426 0.356010 0.209055 +v -0.682273 0.326708 0.202597 +v -0.675100 0.323273 0.209055 +v -0.697482 0.292837 0.202597 +v -0.690150 0.289759 0.209055 +v -0.591484 0.443092 0.215731 +v -0.582609 0.436443 0.222589 +v -0.560493 0.464505 0.222589 +v -0.569031 0.471581 0.215731 +v -0.612514 0.413535 0.215731 +v -0.603323 0.407330 0.222589 +v -0.632067 0.382982 0.215731 +v -0.622583 0.377236 0.222589 +v -0.650098 0.351507 0.215731 +v -0.640343 0.346233 0.222589 +v -0.545206 0.498933 0.215731 +v -0.537025 0.491447 0.222589 +v -0.514314 0.515365 0.222589 +v -0.522117 0.523245 0.215731 +v -0.501875 0.542610 0.215731 +v -0.494468 0.534359 0.222589 +v -0.480102 0.547230 0.222558 +v -0.487204 0.555754 0.215702 +v -0.527569 0.482794 0.229591 +v -0.516757 0.472900 0.236703 +v -0.494981 0.495847 0.236703 +v -0.505294 0.506259 0.229591 +v -0.550623 0.456326 0.229591 +v -0.539339 0.446974 0.236703 +v -0.480828 0.561398 0.215614 +v -0.478674 0.563173 0.215439 +v -0.473830 0.552787 0.222467 +v -0.471682 0.554571 0.222285 +v -0.485905 0.524819 0.229591 +v -0.476115 0.513914 0.236703 +v -0.462505 0.526111 0.236671 +v -0.471892 0.537377 0.229560 +v -0.465740 0.542834 0.229466 +v -0.463599 0.544623 0.229278 +v -0.456490 0.531451 0.236575 +v -0.454354 0.533248 0.236383 +v -0.487617 0.578184 0.202072 +v -0.485726 0.579440 0.201705 +v -0.482621 0.572036 0.208497 +v -0.480747 0.573313 0.208107 +v -0.476667 0.564709 0.215146 +v -0.474809 0.566007 0.214736 +v -0.469687 0.556120 0.221981 +v -0.467845 0.557436 0.221556 +v -0.491279 0.589435 0.189353 +v -0.489606 0.590116 0.188878 +v -0.488037 0.585446 0.195136 +v -0.486394 0.586164 0.194605 +v -0.492238 0.595672 0.178186 +v -0.490744 0.595731 0.177745 +v -0.490488 0.593519 0.183038 +v -0.489031 0.593624 0.182484 +v -0.483973 0.580444 0.201233 +v -0.482359 0.581198 0.200657 +v -0.479017 0.574346 0.207604 +v -0.477430 0.575133 0.206991 +v -0.488061 0.590534 0.188317 +v -0.486645 0.590687 0.187670 +v -0.484885 0.586624 0.193978 +v -0.483508 0.586828 0.193254 +v -0.489369 0.595514 0.177245 +v -0.488111 0.595020 0.176686 +v -0.489161 0.596313 0.172671 +v -0.490458 0.596855 0.173076 +v -0.487697 0.593458 0.181856 +v -0.486487 0.593022 0.181154 +v -0.486970 0.594249 0.176068 +v -0.484457 0.594930 0.175583 +v -0.485429 0.596131 0.171870 +v -0.487979 0.595490 0.172222 +v -0.485397 0.592315 0.180378 +v -0.482929 0.593043 0.179769 +v -0.485355 0.590577 0.186936 +v -0.484194 0.590202 0.186116 +v -0.482265 0.586773 0.192433 +v -0.481156 0.586462 0.191516 +v -0.480882 0.581700 0.199975 +v -0.479546 0.581952 0.199189 +v -0.475987 0.575676 0.206265 +v -0.474688 0.575974 0.205428 +v -0.483162 0.589563 0.185209 +v -0.480742 0.590341 0.184497 +v -0.480179 0.585893 0.190502 +v -0.477809 0.586720 0.189706 +v -0.478348 0.581953 0.198297 +v -0.477288 0.581703 0.197301 +v -0.473532 0.576027 0.204479 +v -0.472520 0.575836 0.203419 +v -0.476367 0.581202 0.196200 +v -0.474050 0.582074 0.195335 +v -0.471652 0.575400 0.202247 +v -0.469387 0.576314 0.201327 +v -0.470127 0.568465 0.212804 +v -0.468863 0.568806 0.211926 +v -0.471539 0.567885 0.213565 +v -0.464618 0.559368 0.220341 +v -0.463234 0.559983 0.219551 +v -0.462003 0.560365 0.218639 +v -0.465961 0.568397 0.208589 +v -0.463748 0.569349 0.207623 +v -0.466780 0.568772 0.209819 +v -0.459998 0.560428 0.216452 +v -0.459225 0.560109 0.215176 +v -0.457065 0.561094 0.214173 +v -0.467747 0.568909 0.210931 +v -0.460924 0.560513 0.217606 +v -0.451378 0.550452 0.221958 +v -0.449269 0.551462 0.220925 +v -0.452108 0.550719 0.223272 +v -0.443040 0.539560 0.230236 +v -0.442348 0.539342 0.228891 +v -0.440290 0.540371 0.227835 +v -0.452996 0.550757 0.224460 +v -0.454040 0.550568 0.225524 +v -0.444906 0.539328 0.232541 +v -0.443893 0.539557 0.231452 +v -0.432067 0.526691 0.235933 +v -0.430061 0.527734 0.234858 +v -0.432724 0.526867 0.237303 +v -0.422017 0.513692 0.243985 +v -0.421390 0.513553 0.242597 +v -0.419433 0.514607 0.241506 +v -0.411173 0.500982 0.248394 +v -0.409261 0.502042 0.247291 +v -0.411775 0.501090 0.249797 +v -0.401344 0.488255 0.255164 +v -0.400766 0.488176 0.253748 +v -0.398896 0.489238 0.252636 +v -0.433546 0.526824 0.238541 +v -0.434531 0.526561 0.239650 +v -0.423772 0.513322 0.246366 +v -0.422811 0.513615 0.245241 +v -0.412545 0.500984 0.251067 +v -0.413484 0.500664 0.252204 +v -0.403015 0.487781 0.257591 +v -0.402094 0.488123 0.256445 +v -0.390805 0.474232 0.261801 +v -0.390074 0.474387 0.260511 +v -0.391709 0.473869 0.262955 +v -0.379540 0.458896 0.268278 +v -0.378652 0.459278 0.267117 +v -0.377938 0.459453 0.265819 +v -0.414593 0.500131 0.253206 +v -0.415871 0.499385 0.254075 +v -0.405370 0.486464 0.259479 +v -0.404107 0.487228 0.258603 +v -0.424899 0.512812 0.247357 +v -0.426193 0.512087 0.248217 +v -0.392786 0.473298 0.263974 +v -0.394037 0.472518 0.264856 +v -0.381843 0.457514 0.270191 +v -0.380604 0.458308 0.269303 +v -0.435680 0.526078 0.240628 +v -0.436993 0.525374 0.241475 +v -0.446079 0.538875 0.233501 +v -0.447413 0.538198 0.234334 +v -0.455241 0.550148 0.226463 +v -0.456599 0.549500 0.227276 +v -0.417317 0.498425 0.254811 +v -0.418933 0.497252 0.255412 +v -0.408411 0.484304 0.260828 +v -0.406805 0.485489 0.260221 +v -0.427654 0.511144 0.248944 +v -0.429281 0.509984 0.249539 +v -0.438469 0.524451 0.242192 +v -0.440109 0.523308 0.242779 +v -0.448908 0.537296 0.235038 +v -0.450563 0.536171 0.235614 +v -0.458114 0.548624 0.227964 +v -0.459785 0.547519 0.228528 +v -0.466155 0.558519 0.221009 +v -0.473100 0.567065 0.214209 +v -0.461613 0.546186 0.228966 +v -0.452378 0.534822 0.236063 +v -0.441913 0.521945 0.243236 +v -0.443881 0.520362 0.243562 +v -0.433035 0.507016 0.250333 +v -0.431075 0.508608 0.250002 +v -0.446012 0.518557 0.243757 +v -0.451873 0.513352 0.243855 +v -0.440863 0.500140 0.250630 +v -0.435162 0.505207 0.250531 +v -0.465028 0.501562 0.243888 +v -0.453547 0.488771 0.250663 +v -0.483301 0.484053 0.243888 +v -0.471206 0.471841 0.250663 +v -0.420718 0.495865 0.255880 +v -0.422673 0.494265 0.256215 +v -0.412137 0.481301 0.261637 +v -0.410188 0.482908 0.261300 +v -0.424796 0.492451 0.256415 +v -0.430345 0.487516 0.256515 +v -0.419652 0.474683 0.261940 +v -0.414257 0.479483 0.261839 +v -0.442578 0.476551 0.256549 +v -0.431427 0.464128 0.261974 +v -0.459650 0.460174 0.256549 +v -0.447903 0.448314 0.261974 +v -0.504512 0.461693 0.243888 +v -0.491832 0.450090 0.250663 +v -0.526559 0.436382 0.243888 +v -0.513325 0.425415 0.250663 +v -0.572350 0.428758 0.229591 +v -0.560621 0.419971 0.236703 +v -0.592699 0.400158 0.229591 +v -0.580553 0.391957 0.236703 +v -0.479719 0.439004 0.256549 +v -0.467404 0.427734 0.261974 +v -0.500681 0.414937 0.256549 +v -0.487829 0.404285 0.261974 +v -0.547336 0.410019 0.243888 +v -0.533580 0.399715 0.250663 +v -0.566796 0.382669 0.243887 +v -0.552551 0.373052 0.250663 +v -0.419399 0.450729 0.267369 +v -0.406463 0.436318 0.272718 +v -0.395715 0.445955 0.272684 +v -0.408118 0.460841 0.267335 +v -0.435232 0.435520 0.267369 +v -0.421605 0.421762 0.272718 +v -0.402889 0.465495 0.267233 +v -0.400772 0.467317 0.267029 +v -0.390664 0.450452 0.272581 +v -0.388549 0.452276 0.272376 +v -0.398828 0.468930 0.266690 +v -0.397058 0.470334 0.266214 +v -0.386610 0.453895 0.272035 +v -0.384846 0.455307 0.271557 +v -0.454120 0.415578 0.267369 +v -0.439835 0.402505 0.272718 +v -0.473965 0.392795 0.267369 +v -0.459055 0.380439 0.272718 +v -0.377552 0.434317 0.277869 +v -0.375440 0.436145 0.277663 +v -0.382411 0.429989 0.277972 +v -0.368180 0.412909 0.283183 +v -0.363524 0.417057 0.283080 +v -0.361415 0.418887 0.282873 +v -0.392590 0.420863 0.278006 +v -0.377749 0.404330 0.283218 +v -0.406990 0.407006 0.278006 +v -0.391355 0.391221 0.283218 +v -0.395461 0.471530 0.265603 +v -0.383257 0.456514 0.270942 +v -0.373505 0.437769 0.277319 +v -0.371747 0.439188 0.276839 +v -0.359484 0.420516 0.282528 +v -0.357731 0.421942 0.282046 +v -0.370165 0.440404 0.276221 +v -0.368761 0.441416 0.275466 +v -0.356157 0.423167 0.281425 +v -0.354761 0.424189 0.280667 +v -0.367533 0.442224 0.274574 +v -0.366482 0.442827 0.273544 +v -0.353544 0.425010 0.279770 +v -0.352505 0.425628 0.278736 +v -0.344518 0.402101 0.287646 +v -0.342771 0.403534 0.287161 +v -0.346445 0.400467 0.287992 +v -0.330503 0.380850 0.293004 +v -0.328579 0.382488 0.292657 +v -0.326837 0.383927 0.292171 +v -0.365607 0.443227 0.272377 +v -0.364910 0.443422 0.271073 +v -0.351644 0.426045 0.277564 +v -0.350962 0.426259 0.276254 +v -0.341203 0.404767 0.286539 +v -0.339816 0.405799 0.285777 +v -0.325276 0.385168 0.291546 +v -0.323896 0.386210 0.290782 +v -0.338608 0.406632 0.284877 +v -0.337580 0.407264 0.283839 +v -0.322698 0.387054 0.289879 +v -0.321680 0.387699 0.288838 +v -0.364389 0.443414 0.269631 +v -0.362650 0.444463 0.268498 +v -0.375616 0.460479 0.263258 +v -0.377399 0.459423 0.264385 +v -0.350458 0.426271 0.274806 +v -0.348765 0.427310 0.273668 +v -0.389517 0.474333 0.259085 +v -0.387690 0.475394 0.257964 +v -0.336732 0.407696 0.282663 +v -0.336065 0.407928 0.281348 +v -0.320845 0.388146 0.287657 +v -0.320190 0.388395 0.286338 +v -0.335577 0.407960 0.279894 +v -0.333932 0.408986 0.278752 +v -0.319717 0.388445 0.284880 +v -0.318121 0.389456 0.283734 +v -0.302851 0.367692 0.289747 +v -0.301307 0.368684 0.288598 +v -0.303310 0.367624 0.291209 +v -0.285396 0.345581 0.295945 +v -0.284951 0.345665 0.294479 +v -0.283458 0.346636 0.293327 +v -0.303952 0.367360 0.292532 +v -0.304776 0.366899 0.293716 +v -0.286839 0.344827 0.298457 +v -0.286026 0.345302 0.297271 +v -0.267037 0.321936 0.301859 +v -0.266419 0.322230 0.300529 +v -0.267840 0.321449 0.303048 +v -0.247751 0.296729 0.307471 +v -0.246957 0.297228 0.306280 +v -0.246350 0.297534 0.304948 +v -0.305783 0.366241 0.294760 +v -0.306973 0.365386 0.295665 +v -0.289018 0.343293 0.300412 +v -0.287836 0.344157 0.299505 +v -0.268829 0.320768 0.304097 +v -0.270002 0.319894 0.305006 +v -0.249897 0.295154 0.309433 +v -0.248731 0.296038 0.308522 +v -0.308345 0.364335 0.296431 +v -0.309900 0.363086 0.297058 +v -0.291932 0.340977 0.301808 +v -0.290383 0.342232 0.301180 +v -0.271361 0.318825 0.305776 +v -0.272905 0.317564 0.306405 +v -0.252788 0.292810 0.310835 +v -0.251249 0.294078 0.310204 +v -0.311638 0.361641 0.297545 +v -0.313558 0.360000 0.297894 +v -0.295583 0.337881 0.302646 +v -0.293666 0.339527 0.302297 +v -0.274634 0.316108 0.306895 +v -0.276548 0.314458 0.307245 +v -0.256424 0.289697 0.311676 +v -0.254513 0.291349 0.311325 +v -0.230019 0.267955 0.314449 +v -0.228673 0.269038 0.313677 +v -0.231553 0.266681 0.315080 +v -0.214988 0.246297 0.318231 +v -0.213459 0.247578 0.317598 +v -0.212119 0.248669 0.316825 +v -0.233275 0.265216 0.315572 +v -0.235183 0.263560 0.315922 +v -0.218611 0.243167 0.319074 +v -0.216705 0.244827 0.318723 +v -0.278647 0.312615 0.307455 +v -0.282069 0.309564 0.307560 +v -0.261651 0.285061 0.311991 +v -0.258522 0.287851 0.311886 +v -0.297684 0.336040 0.302855 +v -0.301382 0.332743 0.302960 +v -0.227513 0.269930 0.312764 +v -0.226541 0.270631 0.311711 +v -0.210968 0.249571 0.315911 +v -0.210005 0.250283 0.314857 +v -0.237279 0.261713 0.316133 +v -0.240101 0.259197 0.316238 +v -0.223285 0.239016 0.319390 +v -0.220705 0.241318 0.319285 +v -0.225757 0.271141 0.310518 +v -0.225159 0.271459 0.309185 +v -0.209231 0.250805 0.313662 +v -0.208645 0.251138 0.312326 +v -0.265986 0.322329 0.299060 +v -0.245929 0.297649 0.303476 +v -0.264549 0.323277 0.297906 +v -0.244548 0.298570 0.302320 +v -0.224749 0.271587 0.307711 +v -0.223427 0.272479 0.306553 +v -0.208247 0.251282 0.310850 +v -0.206974 0.252155 0.309691 +v -0.204885 0.242086 0.317050 +v -0.203934 0.242813 0.315994 +v -0.206026 0.241171 0.317966 +v -0.205157 0.240102 0.318082 +v -0.204032 0.241036 0.317165 +v -0.203099 0.241785 0.316107 +v -0.202223 0.243869 0.311981 +v -0.200978 0.244747 0.310819 +v -0.202603 0.243704 0.313459 +v -0.201812 0.242731 0.313569 +v -0.201457 0.242926 0.312088 +v -0.200234 0.243828 0.310924 +v -0.203174 0.243353 0.314797 +v -0.202359 0.242350 0.314909 +v -0.200730 0.242032 0.312156 +v -0.199538 0.242969 0.310991 +v -0.201047 0.241789 0.313638 +v -0.201559 0.241366 0.314980 +v -0.202268 0.240763 0.316180 +v -0.201460 0.239768 0.316194 +v -0.200793 0.240424 0.314996 +v -0.203173 0.239980 0.317239 +v -0.204275 0.239016 0.318157 +v -0.203396 0.237935 0.318168 +v -0.202327 0.238938 0.317252 +v -0.200081 0.239547 0.314941 +v -0.200692 0.238823 0.316131 +v -0.199974 0.237939 0.315982 +v -0.199432 0.238748 0.314811 +v -0.201510 0.237932 0.317182 +v -0.202536 0.236876 0.318092 +v -0.201705 0.235854 0.317911 +v -0.200732 0.236975 0.317016 +v -0.198856 0.238039 0.314603 +v -0.199317 0.237131 0.315739 +v -0.198717 0.236393 0.315389 +v -0.198344 0.237409 0.314312 +v -0.198619 0.238802 0.313334 +v -0.198206 0.238293 0.313107 +v -0.198609 0.239421 0.311932 +v -0.197661 0.240651 0.310830 +v -0.198304 0.239046 0.311775 +v -0.197442 0.240381 0.310729 +v -0.200004 0.236079 0.316740 +v -0.200916 0.234883 0.317608 +v -0.200171 0.233967 0.317165 +v -0.199326 0.235245 0.316340 +v -0.198699 0.234473 0.315801 +v -0.198170 0.235720 0.314924 +v -0.199474 0.233108 0.316561 +v -0.198821 0.232305 0.315763 +v -0.198113 0.233753 0.315085 +v -0.197662 0.235095 0.314302 +v -0.200495 0.231625 0.317205 +v -0.201763 0.230024 0.317731 +v -0.201007 0.229094 0.316807 +v -0.199786 0.230752 0.316337 +v -0.201252 0.232556 0.317862 +v -0.202568 0.231014 0.318433 +v -0.202053 0.233543 0.318343 +v -0.203416 0.232058 0.318944 +v -0.202895 0.234578 0.318669 +v -0.204300 0.233146 0.319289 +v -0.203769 0.235654 0.318863 +v -0.205211 0.234267 0.319493 +v -0.204666 0.236757 0.318944 +v -0.206137 0.235406 0.319578 +v -0.203277 0.228304 0.318140 +v -0.205038 0.226466 0.318433 +v -0.204220 0.225459 0.317433 +v -0.202485 0.227329 0.317172 +v -0.204120 0.229341 0.318876 +v -0.205907 0.227536 0.319193 +v -0.205572 0.237873 0.318934 +v -0.207066 0.236550 0.319570 +v -0.206475 0.238983 0.318858 +v -0.207985 0.237680 0.319493 +v -0.205005 0.230429 0.319412 +v -0.206818 0.228656 0.319745 +v -0.205922 0.231558 0.319772 +v -0.207759 0.229814 0.320116 +v -0.206861 0.232713 0.319983 +v -0.208718 0.230994 0.320333 +v -0.207810 0.233881 0.320072 +v -0.209683 0.232182 0.320424 +v -0.207357 0.240069 0.318740 +v -0.208879 0.238779 0.319374 +v -0.208757 0.235046 0.320064 +v -0.210643 0.233363 0.320417 +v -0.209688 0.236192 0.319986 +v -0.211583 0.234520 0.320339 +v -0.210590 0.237302 0.319867 +v -0.212492 0.235637 0.320219 +v -0.210783 0.229109 0.320543 +v -0.213205 0.226919 0.320648 +v -0.212214 0.225729 0.320426 +v -0.209812 0.227914 0.320323 +v -0.211759 0.230309 0.320636 +v -0.214200 0.228113 0.320742 +v -0.214583 0.233785 0.320430 +v -0.217074 0.231562 0.320536 +v -0.216147 0.230449 0.320656 +v -0.213671 0.232663 0.320550 +v -0.212725 0.231499 0.320629 +v -0.215185 0.229294 0.320735 +v -0.220172 0.228785 0.320571 +v -0.219205 0.227707 0.320692 +v -0.226650 0.236001 0.319426 +v -0.232179 0.230509 0.319426 +v -0.225355 0.223619 0.320571 +v -0.224336 0.222590 0.320692 +v -0.218200 0.226588 0.320770 +v -0.217172 0.225443 0.320777 +v -0.223278 0.221522 0.320770 +v -0.222195 0.220428 0.320777 +v -0.216133 0.224286 0.320684 +v -0.215097 0.223131 0.320461 +v -0.221100 0.219324 0.320684 +v -0.220009 0.218222 0.320461 +v -0.208857 0.226739 0.319946 +v -0.211238 0.224558 0.320046 +v -0.210290 0.223421 0.319479 +v -0.207931 0.225599 0.319384 +v -0.214077 0.221995 0.320079 +v -0.213087 0.220891 0.319510 +v -0.218934 0.217137 0.320079 +v -0.217890 0.216083 0.319510 +v -0.207045 0.224509 0.318608 +v -0.209384 0.222333 0.318696 +v -0.208531 0.221309 0.317668 +v -0.206212 0.223484 0.317590 +v -0.212138 0.219835 0.318725 +v -0.211246 0.218841 0.317694 +v -0.216891 0.215074 0.318725 +v -0.215951 0.214125 0.317694 +v -0.229639 0.210149 0.320684 +v -0.228494 0.209102 0.320461 +v -0.230786 0.211199 0.320777 +v -0.240871 0.199620 0.320777 +v -0.239674 0.198628 0.320684 +v -0.238479 0.197638 0.320461 +v -0.205443 0.222538 0.316299 +v -0.203465 0.224530 0.316165 +v -0.207743 0.220364 0.316366 +v -0.207034 0.219514 0.314760 +v -0.204749 0.221684 0.314704 +v -0.202782 0.223690 0.314591 +v -0.227368 0.208071 0.320079 +v -0.226274 0.207069 0.319510 +v -0.237304 0.196664 0.320079 +v -0.236162 0.195717 0.319510 +v -0.210422 0.217923 0.316388 +v -0.209681 0.217098 0.314779 +v -0.215084 0.213249 0.316388 +v -0.214303 0.212461 0.314779 +v -0.225226 0.206111 0.318725 +v -0.224241 0.205209 0.317694 +v -0.235069 0.194811 0.318725 +v -0.234040 0.193959 0.317694 +v -0.201752 0.226428 0.315941 +v -0.200306 0.228231 0.315629 +v -0.201087 0.225609 0.314404 +v -0.199666 0.227443 0.314141 +v -0.199126 0.229940 0.315226 +v -0.198211 0.231555 0.314735 +v -0.198517 0.229191 0.313804 +v -0.197642 0.230854 0.313391 +v -0.204143 0.220939 0.312773 +v -0.202182 0.222952 0.312676 +v -0.206416 0.218772 0.312821 +v -0.205844 0.218085 0.310714 +v -0.203581 0.220247 0.310673 +v -0.201625 0.222266 0.310590 +v -0.209036 0.216379 0.312837 +v -0.208438 0.215713 0.310728 +v -0.213623 0.211774 0.312837 +v -0.212994 0.211139 0.310728 +v -0.200499 0.224885 0.312516 +v -0.199092 0.226737 0.312291 +v -0.199948 0.224207 0.310452 +v -0.198552 0.226072 0.310258 +v -0.221800 0.202976 0.312837 +v -0.221140 0.202371 0.310728 +v -0.222513 0.203628 0.314779 +v -0.232237 0.192464 0.314779 +v -0.231493 0.191848 0.312837 +v -0.230804 0.191277 0.310728 +v -0.197963 0.228509 0.312002 +v -0.197111 0.230201 0.311648 +v -0.197435 0.227860 0.310009 +v -0.196599 0.229572 0.309705 +v -0.197562 0.233075 0.314154 +v -0.197180 0.234501 0.313483 +v -0.197039 0.232431 0.312904 +v -0.196709 0.233923 0.312341 +v -0.196536 0.231812 0.311231 +v -0.196239 0.233343 0.310749 +v -0.196043 0.231206 0.309346 +v -0.195768 0.232764 0.308931 +v -0.196219 0.234794 0.310203 +v -0.196653 0.235328 0.311704 +v -0.195772 0.234245 0.308461 +v -0.197063 0.235833 0.312724 +v -0.197212 0.237070 0.311874 +v -0.197531 0.237463 0.312423 +v -0.197468 0.236332 0.313415 +v -0.197627 0.238213 0.310936 +v -0.197015 0.239853 0.310199 +v -0.197163 0.240036 0.310467 +v -0.197850 0.238488 0.311328 +v -0.240627 0.180258 0.312837 +v -0.239911 0.179721 0.310728 +v -0.241400 0.180837 0.314779 +v -0.249983 0.168775 0.314779 +v -0.249182 0.168234 0.312837 +v -0.248441 0.167733 0.310728 +v -0.223331 0.204377 0.316388 +v -0.233091 0.193172 0.316388 +v -0.242288 0.181502 0.316388 +v -0.243275 0.182241 0.317694 +v -0.251924 0.170085 0.317694 +v -0.250903 0.169395 0.316388 +v -0.244344 0.183042 0.318725 +v -0.245480 0.183894 0.319510 +v -0.254208 0.171627 0.319510 +v -0.253032 0.170833 0.318725 +v -0.257137 0.155804 0.312837 +v -0.256372 0.155341 0.310728 +v -0.257963 0.156305 0.314779 +v -0.265322 0.143459 0.314779 +v -0.264472 0.143000 0.312837 +v -0.263685 0.142574 0.310728 +v -0.258912 0.156880 0.316388 +v -0.259966 0.157519 0.317694 +v -0.267382 0.144573 0.317694 +v -0.266298 0.143987 0.316388 +v -0.271170 0.129850 0.312837 +v -0.270363 0.129464 0.310728 +v -0.272042 0.130268 0.314779 +v -0.278106 0.116762 0.314779 +v -0.277215 0.116388 0.312837 +v -0.276390 0.116042 0.310728 +v -0.273042 0.130747 0.316388 +v -0.274154 0.131279 0.317694 +v -0.280265 0.117669 0.317694 +v -0.279129 0.117192 0.316388 +v -0.261109 0.158211 0.318725 +v -0.262323 0.158947 0.319510 +v -0.269806 0.145884 0.319510 +v -0.268558 0.145209 0.318725 +v -0.275359 0.131856 0.318725 +v -0.276639 0.132469 0.319510 +v -0.282806 0.118736 0.319510 +v -0.281497 0.118186 0.318725 +v -0.282592 0.102646 0.312837 +v -0.281751 0.102340 0.310728 +v -0.283500 0.102976 0.314779 +v -0.288212 0.088941 0.314779 +v -0.287288 0.088656 0.312837 +v -0.286433 0.088392 0.310728 +v -0.284543 0.103354 0.316388 +v -0.285701 0.103775 0.317694 +v -0.290450 0.089632 0.317694 +v -0.289272 0.089268 0.316388 +v -0.291292 0.074453 0.312837 +v -0.290425 0.074231 0.310728 +v -0.292228 0.074692 0.314779 +v -0.295541 0.060263 0.314779 +v -0.294595 0.060070 0.312837 +v -0.293718 0.059891 0.310728 +v -0.293303 0.074967 0.316388 +v -0.294497 0.075272 0.317694 +v -0.297836 0.060731 0.317694 +v -0.296629 0.060485 0.316388 +v -0.286957 0.104231 0.318725 +v -0.288291 0.104716 0.319510 +v -0.293083 0.090444 0.319510 +v -0.291726 0.090026 0.318725 +v -0.295792 0.075603 0.318725 +v -0.297167 0.075954 0.319510 +v -0.300536 0.061281 0.319510 +v -0.299145 0.060998 0.318725 +v -0.297187 0.045542 0.312837 +v -0.296303 0.045407 0.310728 +v -0.298142 0.045689 0.314779 +v -0.299877 0.033755 0.314779 +v -0.298916 0.033656 0.312837 +v -0.298026 0.033564 0.310728 +v -0.299239 0.045857 0.316388 +v -0.300457 0.046044 0.317694 +v -0.302206 0.033996 0.317694 +v -0.300980 0.033869 0.316388 +v -0.299627 0.027195 0.312837 +v -0.298733 0.027147 0.310728 +v -0.300591 0.027247 0.314779 +v -0.300814 0.023671 0.314760 +v -0.299849 0.023654 0.312821 +v -0.298955 0.023639 0.310714 +v -0.300112 0.020525 0.312773 +v -0.300451 0.017735 0.312676 +v -0.299567 0.017731 0.310590 +v -0.299221 0.020521 0.310673 +v -0.301073 0.020530 0.314704 +v -0.301401 0.017740 0.314591 +v -0.301699 0.027307 0.316388 +v -0.302930 0.027374 0.317694 +v -0.303151 0.023711 0.317668 +v -0.301921 0.023690 0.316366 +v -0.302172 0.020535 0.316299 +v -0.302484 0.017745 0.316165 +v -0.303392 0.020541 0.317590 +v -0.303682 0.017750 0.317433 +v -0.300901 0.015211 0.312516 +v -0.301462 0.012954 0.312291 +v -0.300606 0.012950 0.310258 +v -0.300028 0.015207 0.310452 +v -0.301834 0.015216 0.314404 +v -0.302372 0.012959 0.314141 +v -0.304264 0.027445 0.318725 +v -0.305682 0.027522 0.319510 +v -0.305900 0.023758 0.319479 +v -0.304484 0.023733 0.318696 +v -0.303535 0.034133 0.318725 +v -0.304947 0.034279 0.319510 +v -0.302135 0.010963 0.312002 +v -0.302919 0.009239 0.311648 +v -0.302108 0.009235 0.309705 +v -0.301299 0.010959 0.310009 +v -0.303014 0.010968 0.313804 +v -0.303760 0.009243 0.313391 +v -0.302889 0.015221 0.315941 +v -0.303387 0.012963 0.315629 +v -0.304051 0.015227 0.317172 +v -0.304499 0.012969 0.316807 +v -0.304713 0.020547 0.318608 +v -0.304979 0.017757 0.318433 +v -0.306117 0.020554 0.319384 +v -0.306357 0.017763 0.319193 +v -0.303814 0.007781 0.311231 +v -0.304820 0.006590 0.310749 +v -0.304073 0.006586 0.308931 +v -0.303033 0.007777 0.309346 +v -0.304611 0.007785 0.312904 +v -0.305567 0.006593 0.312341 +v -0.303979 0.010972 0.315226 +v -0.304663 0.009248 0.314735 +v -0.305025 0.010977 0.316337 +v -0.305631 0.009252 0.315763 +v -0.305938 0.005664 0.310203 +v -0.305230 0.005661 0.308461 +v -0.306626 0.005668 0.311704 +v -0.305441 0.007789 0.314154 +v -0.306312 0.006597 0.313483 +v -0.306315 0.007793 0.315085 +v -0.307077 0.006600 0.314302 +v -0.307276 0.005671 0.312724 +v -0.308334 0.005011 0.311874 +v -0.307919 0.005674 0.313415 +v -0.308839 0.005014 0.312423 +v -0.309485 0.004618 0.310936 +v -0.310382 0.003316 0.310199 +v -0.309839 0.004620 0.311328 +v -0.310617 0.003317 0.310467 +v -0.307243 0.007798 0.315801 +v -0.307883 0.006604 0.314924 +v -0.306665 0.009257 0.316561 +v -0.307771 0.009262 0.317165 +v -0.308238 0.007802 0.316340 +v -0.308750 0.006608 0.315389 +v -0.306150 0.010983 0.317205 +v -0.305697 0.012975 0.317731 +v -0.306973 0.012981 0.318433 +v -0.307349 0.010989 0.317862 +v -0.309312 0.007808 0.316740 +v -0.309701 0.006613 0.315739 +v -0.308952 0.009268 0.317608 +v -0.310204 0.009274 0.317911 +v -0.310466 0.007813 0.317016 +v -0.310743 0.006618 0.315982 +v -0.308621 0.010995 0.318343 +v -0.308319 0.012987 0.318944 +v -0.309720 0.012994 0.319289 +v -0.309955 0.011001 0.318669 +v -0.310119 0.005684 0.314603 +v -0.310566 0.005022 0.313334 +v -0.309910 0.005019 0.313107 +v -0.309307 0.005681 0.314312 +v -0.311033 0.005689 0.314811 +v -0.311337 0.005026 0.313502 +v -0.312062 0.005694 0.314941 +v -0.312245 0.005030 0.313610 +v -0.311880 0.006623 0.316131 +v -0.313098 0.006629 0.316194 +v -0.313192 0.005699 0.314996 +v -0.313276 0.005035 0.313656 +v -0.311700 0.007819 0.317182 +v -0.311520 0.009280 0.318092 +v -0.312884 0.009287 0.318168 +v -0.312996 0.007825 0.317252 +v -0.314406 0.005705 0.314980 +v -0.314380 0.006636 0.316180 +v -0.315698 0.006642 0.316107 +v -0.315674 0.005711 0.314908 +v -0.314414 0.005040 0.313638 +v -0.315627 0.005046 0.313569 +v -0.311342 0.011008 0.318863 +v -0.311165 0.013001 0.319493 +v -0.312633 0.013008 0.319578 +v -0.312763 0.011014 0.318944 +v -0.314338 0.007832 0.317239 +v -0.314278 0.009294 0.318157 +v -0.315676 0.009300 0.318082 +v -0.315699 0.007838 0.317165 +v -0.314201 0.011021 0.318934 +v -0.314106 0.013015 0.319570 +v -0.315563 0.013022 0.319493 +v -0.315631 0.011028 0.318858 +v -0.310989 0.015260 0.319983 +v -0.310814 0.017785 0.320333 +v -0.312344 0.017792 0.320424 +v -0.312493 0.015267 0.320072 +v -0.309500 0.015253 0.319772 +v -0.309293 0.017777 0.320116 +v -0.313995 0.015274 0.320064 +v -0.313866 0.017799 0.320417 +v -0.315357 0.017807 0.320339 +v -0.315471 0.015281 0.319986 +v -0.317031 0.011035 0.318740 +v -0.317055 0.009307 0.317966 +v -0.316980 0.013029 0.319374 +v -0.326667 0.013075 0.318231 +v -0.326706 0.011081 0.317598 +v -0.326716 0.009353 0.316825 +v -0.308046 0.015246 0.319412 +v -0.307801 0.017770 0.319745 +v -0.306643 0.015239 0.318876 +v -0.317052 0.007845 0.317050 +v -0.317022 0.006648 0.315994 +v -0.326697 0.007891 0.315911 +v -0.326648 0.006694 0.314857 +v -0.316966 0.005717 0.314797 +v -0.316882 0.005052 0.313459 +v -0.326569 0.005763 0.313662 +v -0.326461 0.005098 0.312326 +v -0.316902 0.015288 0.319867 +v -0.316797 0.017813 0.320219 +v -0.326499 0.017860 0.319074 +v -0.326598 0.015335 0.318723 +v -0.352963 0.011207 0.314449 +v -0.352963 0.009479 0.313677 +v -0.352933 0.013201 0.315080 +v -0.386602 0.013363 0.310835 +v -0.386625 0.011369 0.310204 +v -0.386615 0.009641 0.309433 +v -0.352870 0.015461 0.315572 +v -0.352777 0.017986 0.315922 +v -0.386456 0.018148 0.311676 +v -0.386545 0.015622 0.311325 +v -0.352931 0.008017 0.312764 +v -0.352867 0.006820 0.311711 +v -0.386572 0.008178 0.308522 +v -0.386497 0.006982 0.307471 +v -0.316772 0.004653 0.311981 +v -0.316679 0.003339 0.310819 +v -0.315496 0.003335 0.310924 +v -0.315558 0.004647 0.312088 +v -0.326324 0.004699 0.310850 +v -0.326210 0.003373 0.309691 +v -0.314405 0.004642 0.312156 +v -0.314391 0.003331 0.310991 +v -0.313402 0.003328 0.311013 +v -0.313350 0.004637 0.312176 +v -0.352773 0.005889 0.310518 +v -0.352647 0.005224 0.309185 +v -0.386388 0.006051 0.306279 +v -0.386246 0.005385 0.304948 +v -0.418226 0.006203 0.301859 +v -0.418067 0.005538 0.300529 +v -0.418350 0.007135 0.303048 +v -0.448474 0.007279 0.298457 +v -0.448334 0.006348 0.297271 +v -0.448157 0.005682 0.295945 +v -0.418440 0.008331 0.304097 +v -0.418494 0.009794 0.305006 +v -0.448644 0.009939 0.300412 +v -0.448577 0.008476 0.299505 +v -0.418514 0.011522 0.305776 +v -0.418498 0.013516 0.306405 +v -0.448667 0.013661 0.301808 +v -0.448675 0.011667 0.301180 +v -0.477033 0.008613 0.294760 +v -0.476914 0.007416 0.293716 +v -0.477113 0.010075 0.295665 +v -0.503946 0.010204 0.290782 +v -0.503852 0.008741 0.289879 +v -0.503717 0.007544 0.288838 +v -0.418448 0.015776 0.306895 +v -0.418363 0.018301 0.307245 +v -0.448545 0.018446 0.302646 +v -0.448624 0.015920 0.302297 +v -0.477154 0.011804 0.296431 +v -0.477158 0.013798 0.297058 +v -0.504011 0.013926 0.292171 +v -0.503999 0.011932 0.291546 +v -0.477120 0.016057 0.297545 +v -0.477046 0.018583 0.297894 +v -0.503912 0.018712 0.293004 +v -0.503982 0.016186 0.292657 +v -0.418243 0.021092 0.307455 +v -0.418012 0.025670 0.307560 +v -0.448177 0.026185 0.302960 +v -0.448428 0.021237 0.302855 +v -0.386333 0.020939 0.311886 +v -0.386121 0.025126 0.311991 +v -0.476931 0.021374 0.298102 +v -0.476664 0.026671 0.298207 +v -0.503518 0.027129 0.293316 +v -0.503802 0.021503 0.293212 +v -0.529255 0.016307 0.287646 +v -0.529276 0.014048 0.287161 +v -0.529191 0.018833 0.287992 +v -0.552926 0.018947 0.282873 +v -0.552984 0.016421 0.282528 +v -0.552997 0.014162 0.282046 +v -0.352652 0.020777 0.316133 +v -0.352461 0.024552 0.316238 +v -0.326371 0.020651 0.319285 +v -0.326197 0.024104 0.319390 +v -0.529253 0.012054 0.286538 +v -0.529188 0.010325 0.285777 +v -0.552964 0.012167 0.281425 +v -0.552885 0.010439 0.280667 +v -0.316665 0.020604 0.320430 +v -0.316495 0.023939 0.320536 +v -0.315219 0.020597 0.320550 +v -0.315047 0.023914 0.320656 +v -0.417591 0.033558 0.307595 +v -0.447697 0.035182 0.302995 +v -0.385764 0.031841 0.312026 +v -0.384721 0.042523 0.312026 +v -0.416426 0.045799 0.307595 +v -0.446417 0.048898 0.302995 +v -0.313720 0.020590 0.320629 +v -0.313544 0.023888 0.320735 +v -0.312186 0.020583 0.320636 +v -0.312006 0.023862 0.320742 +v -0.352170 0.030029 0.316273 +v -0.325957 0.028616 0.319426 +v -0.325145 0.036366 0.319426 +v -0.351256 0.039065 0.316273 +v -0.316274 0.028093 0.320571 +v -0.314828 0.028015 0.320692 +v -0.314058 0.035221 0.320692 +v -0.315499 0.035369 0.320571 +v -0.310640 0.020575 0.320543 +v -0.310452 0.023835 0.320648 +v -0.309100 0.020568 0.320323 +v -0.308904 0.023809 0.320426 +v -0.313326 0.027934 0.320770 +v -0.311789 0.027851 0.320777 +v -0.311031 0.034908 0.320777 +v -0.312563 0.035066 0.320770 +v -0.313666 0.048068 0.320571 +v -0.323252 0.049537 0.319426 +v -0.312235 0.047848 0.320692 +v -0.309511 0.063111 0.320692 +v -0.310930 0.063401 0.320571 +v -0.320432 0.065338 0.319426 +v -0.310748 0.047621 0.320770 +v -0.309227 0.047387 0.320777 +v -0.306529 0.062503 0.320777 +v -0.308038 0.062811 0.320770 +v -0.310236 0.027768 0.320684 +v -0.308688 0.027684 0.320461 +v -0.307942 0.034589 0.320461 +v -0.309485 0.034748 0.320684 +v -0.349199 0.053513 0.316273 +v -0.382454 0.058609 0.312026 +v -0.346153 0.070583 0.316273 +v -0.379118 0.077305 0.312026 +v -0.307690 0.047152 0.320684 +v -0.306157 0.046917 0.320461 +v -0.303486 0.061883 0.320461 +v -0.305006 0.062193 0.320684 +v -0.304647 0.046686 0.320079 +v -0.303181 0.046461 0.319510 +v -0.301990 0.061578 0.320079 +v -0.306423 0.034432 0.320079 +v -0.307586 0.020561 0.319946 +v -0.307380 0.023783 0.320046 +v -0.305307 0.015233 0.318140 +v -0.307163 0.027602 0.320079 +v -0.301778 0.046246 0.318725 +v -0.298604 0.076322 0.320079 +v -0.300084 0.076700 0.320461 +v -0.294500 0.090882 0.320079 +v -0.295959 0.091332 0.320461 +v -0.301586 0.077084 0.320684 +v -0.303093 0.077469 0.320777 +v -0.297441 0.091789 0.320684 +v -0.298927 0.092248 0.320777 +v -0.289686 0.105222 0.320079 +v -0.291121 0.105744 0.320461 +v -0.284174 0.119310 0.320079 +v -0.285582 0.119901 0.320461 +v -0.304584 0.077850 0.320770 +v -0.306041 0.078222 0.320692 +v -0.300398 0.092702 0.320770 +v -0.301835 0.093145 0.320692 +v -0.292579 0.106273 0.320684 +v -0.294040 0.106804 0.320777 +v -0.287012 0.120501 0.320684 +v -0.288446 0.121103 0.320777 +v -0.277977 0.133110 0.320079 +v -0.279354 0.133769 0.320461 +v -0.271111 0.146589 0.320079 +v -0.272454 0.147316 0.320461 +v -0.307444 0.078581 0.320571 +v -0.316840 0.080982 0.319426 +v -0.303219 0.093572 0.320571 +v -0.312485 0.096431 0.319426 +v -0.295487 0.107330 0.320770 +v -0.296901 0.107843 0.320692 +v -0.289865 0.121699 0.320770 +v -0.291252 0.122281 0.320692 +v -0.280753 0.134439 0.320684 +v -0.282156 0.135111 0.320777 +v -0.273819 0.148053 0.320684 +v -0.275187 0.148793 0.320777 +v -0.263592 0.159715 0.320079 +v -0.264898 0.160507 0.320461 +v -0.255437 0.172457 0.320079 +v -0.256703 0.173311 0.320461 +v -0.246667 0.184783 0.320079 +v -0.247890 0.185698 0.320461 +v -0.266224 0.161310 0.320684 +v -0.267554 0.162116 0.320777 +v -0.257988 0.174179 0.320684 +v -0.259277 0.175049 0.320777 +v -0.283544 0.135776 0.320770 +v -0.284900 0.136425 0.320692 +v -0.276541 0.149525 0.320770 +v -0.277863 0.150240 0.320692 +v -0.249131 0.186628 0.320684 +v -0.250376 0.187561 0.320777 +v -0.268871 0.162914 0.320770 +v -0.270157 0.163693 0.320692 +v -0.260553 0.175911 0.320770 +v -0.261799 0.176752 0.320692 +v -0.251607 0.188483 0.320770 +v -0.252811 0.189385 0.320692 +v -0.242056 0.200602 0.320770 +v -0.243214 0.201562 0.320692 +v -0.231921 0.212238 0.320770 +v -0.233031 0.213253 0.320692 +v -0.271395 0.164444 0.320571 +v -0.279689 0.169469 0.319426 +v -0.287667 0.155541 0.319426 +v -0.279137 0.150929 0.320571 +v -0.263000 0.177562 0.320571 +v -0.271037 0.182989 0.319426 +v -0.234099 0.214230 0.320571 +v -0.241253 0.220777 0.319426 +v -0.251795 0.208674 0.319426 +v -0.244329 0.202486 0.320571 +v -0.253970 0.190253 0.320571 +v -0.261731 0.196067 0.319426 +v -0.260618 0.238499 0.316273 +v -0.285438 0.261212 0.312026 +v -0.297911 0.246892 0.312026 +v -0.272007 0.225424 0.316273 +v -0.250652 0.249160 0.316273 +v -0.274327 0.273063 0.312026 +v -0.282741 0.211806 0.316273 +v -0.309666 0.231976 0.312026 +v -0.320676 0.216502 0.312026 +v -0.292793 0.197677 0.316273 +v -0.302140 0.183072 0.316273 +v -0.330913 0.200507 0.312026 +v -0.340353 0.184028 0.312026 +v -0.310759 0.168027 0.316273 +v -0.286207 0.137051 0.320571 +v -0.294953 0.141239 0.319426 +v -0.301528 0.126596 0.319426 +v -0.292587 0.122842 0.320571 +v -0.318629 0.152576 0.316273 +v -0.348973 0.167106 0.312026 +v -0.356752 0.149782 0.312026 +v -0.325732 0.136758 0.316273 +v -0.298262 0.108337 0.320571 +v -0.307376 0.111648 0.319426 +v -0.332050 0.120610 0.316273 +v -0.363671 0.132096 0.312026 +v -0.369715 0.114093 0.312026 +v -0.337568 0.104172 0.316273 +v -0.342273 0.087483 0.316273 +v -0.374868 0.095814 0.312026 +v -0.393630 0.142978 0.307595 +v -0.421969 0.153272 0.302995 +v -0.428982 0.132382 0.302995 +v -0.400172 0.123491 0.307595 +v -0.386141 0.162121 0.307595 +v -0.413940 0.173792 0.302995 +v -0.413960 0.063437 0.307595 +v -0.443763 0.068004 0.302995 +v -0.410349 0.083673 0.307595 +v -0.439892 0.089697 0.302995 +v -0.405749 0.103707 0.307595 +v -0.434960 0.111173 0.302995 +v -0.476128 0.036716 0.298242 +v -0.502930 0.038161 0.293351 +v -0.474738 0.051825 0.298242 +v -0.501436 0.054584 0.293351 +v -0.471906 0.072317 0.298242 +v -0.498436 0.076383 0.293351 +v -0.467790 0.095386 0.298242 +v -0.494088 0.100748 0.293351 +v -0.462546 0.118224 0.298242 +v -0.488549 0.124871 0.293351 +v -0.456188 0.140778 0.298242 +v -0.481834 0.148692 0.293351 +v -0.377720 0.180872 0.307595 +v -0.404914 0.193894 0.302995 +v -0.368391 0.199188 0.307595 +v -0.394912 0.213528 0.302995 +v -0.448731 0.162992 0.298242 +v -0.473958 0.172156 0.293351 +v -0.440193 0.184814 0.298242 +v -0.464940 0.195204 0.293351 +v -0.358173 0.217024 0.307595 +v -0.383959 0.232648 0.302995 +v -0.347093 0.234338 0.307595 +v -0.372081 0.251208 0.302995 +v -0.430594 0.206191 0.298242 +v -0.454802 0.217783 0.293351 +v -0.419958 0.227071 0.298242 +v -0.443568 0.239837 0.293351 +v -0.335176 0.251086 0.307595 +v -0.359307 0.269163 0.302995 +v -0.322453 0.267230 0.307595 +v -0.345667 0.286469 0.302995 +v -0.408310 0.247403 0.298242 +v -0.431266 0.261312 0.293351 +v -0.395679 0.267140 0.298242 +v -0.417924 0.282159 0.293351 +v -0.497694 0.180777 0.288338 +v -0.519982 0.188873 0.283218 +v -0.528624 0.163131 0.283218 +v -0.505965 0.156139 0.288338 +v -0.488224 0.204980 0.288338 +v -0.510088 0.214160 0.283218 +v -0.477578 0.228689 0.288338 +v -0.498965 0.238931 0.283218 +v -0.465782 0.251848 0.288338 +v -0.486641 0.263126 0.283218 +v -0.513017 0.131124 0.288338 +v -0.535991 0.136996 0.283218 +v -0.542068 0.110532 0.283218 +v -0.518833 0.105794 0.288338 +v -0.382094 0.286233 0.298242 +v -0.403576 0.302325 0.293351 +v -0.367590 0.304637 0.298242 +v -0.388256 0.321764 0.293351 +v -0.523399 0.080208 0.288338 +v -0.546838 0.083800 0.283218 +v -0.550143 0.059618 0.283218 +v -0.526556 0.057180 0.288338 +v -0.308952 0.282730 0.307595 +v -0.331194 0.303085 0.302995 +v -0.296756 0.295709 0.307595 +v -0.317973 0.317131 0.302995 +v -0.244185 0.255536 0.316273 +v -0.266659 0.280572 0.312026 +v -0.287950 0.304292 0.307595 +v -0.308091 0.326729 0.302995 +v -0.352199 0.322307 0.298242 +v -0.371999 0.340427 0.293351 +v -0.338010 0.337361 0.298242 +v -0.356897 0.356430 0.293351 +v -0.315661 0.358161 0.298103 +v -0.319620 0.354632 0.298207 +v -0.332608 0.379014 0.293212 +v -0.336813 0.375265 0.293316 +v -0.327110 0.347917 0.298242 +v -0.345039 0.367890 0.293351 +v -0.348552 0.398634 0.288200 +v -0.352990 0.394679 0.288303 +v -0.361909 0.386683 0.288338 +v -0.374668 0.374373 0.288338 +v -0.390630 0.357476 0.288338 +v -0.408123 0.373485 0.283218 +v -0.425958 0.353009 0.283218 +v -0.407700 0.337878 0.288338 +v -0.424514 0.388484 0.278006 +v -0.443064 0.367187 0.278006 +v -0.423787 0.317466 0.288338 +v -0.442766 0.331683 0.283218 +v -0.458508 0.309558 0.283218 +v -0.438855 0.296290 0.288338 +v -0.460546 0.345004 0.278006 +v -0.477169 0.357455 0.272718 +v -0.494133 0.333611 0.272718 +v -0.476921 0.321991 0.278006 +v -0.492667 0.369065 0.267369 +v -0.507077 0.379861 0.261974 +v -0.525106 0.354522 0.261974 +v -0.510182 0.344447 0.267369 +v -0.452864 0.274399 0.288338 +v -0.473143 0.286688 0.283218 +v -0.492145 0.298201 0.278006 +v -0.509907 0.308963 0.272718 +v -0.524453 0.283572 0.272718 +v -0.506185 0.273694 0.278006 +v -0.519004 0.248526 0.278006 +v -0.537735 0.257496 0.272718 +v -0.549723 0.230801 0.272718 +v -0.530574 0.222761 0.278006 +v -0.526469 0.318998 0.267369 +v -0.541868 0.328329 0.261974 +v -0.557326 0.301346 0.261974 +v -0.541487 0.292782 0.267369 +v -0.555201 0.265859 0.267369 +v -0.571441 0.273636 0.261974 +v -0.584180 0.245267 0.261974 +v -0.567578 0.238297 0.267369 +v -0.540865 0.196458 0.278006 +v -0.560385 0.203549 0.272718 +v -0.569698 0.175807 0.272718 +v -0.549853 0.169683 0.278006 +v -0.578586 0.210160 0.267369 +v -0.595510 0.216307 0.261974 +v -0.605407 0.186826 0.261974 +v -0.588202 0.181517 0.267369 +v -0.557517 0.142498 0.278006 +v -0.577638 0.147641 0.272718 +v -0.584187 0.119120 0.272718 +v -0.563838 0.114971 0.278006 +v -0.596399 0.152436 0.267369 +v -0.613845 0.156895 0.261974 +v -0.620804 0.126586 0.261974 +v -0.603161 0.122989 0.267369 +v -0.568799 0.087166 0.278006 +v -0.589328 0.090312 0.272718 +v -0.592901 0.064036 0.272718 +v -0.572243 0.061901 0.278006 +v -0.608469 0.093245 0.267369 +v -0.626267 0.095972 0.261974 +v -0.630074 0.067878 0.261974 +v -0.612163 0.066027 0.267369 +v -0.630018 0.161029 0.256549 +v -0.645928 0.165096 0.250663 +v -0.653251 0.133203 0.250663 +v -0.637161 0.129922 0.256549 +v -0.621359 0.191749 0.256549 +v -0.637049 0.196591 0.250663 +v -0.642768 0.098501 0.256549 +v -0.659000 0.100988 0.250663 +v -0.663013 0.071282 0.250663 +v -0.646679 0.069594 0.256549 +v -0.614085 0.044157 0.267369 +v -0.594749 0.043114 0.272718 +v -0.632065 0.045127 0.261974 +v -0.632906 0.029337 0.261940 +v -0.614891 0.029029 0.267335 +v -0.595517 0.028699 0.272684 +v -0.611201 0.222007 0.256549 +v -0.626635 0.227613 0.250663 +v -0.599572 0.251730 0.256549 +v -0.614712 0.258086 0.250663 +v -0.574011 0.041995 0.278006 +v -0.551825 0.040799 0.283218 +v -0.574739 0.028344 0.277972 +v -0.552510 0.027965 0.283183 +v -0.586497 0.280846 0.256549 +v -0.601308 0.287938 0.250663 +v -0.572011 0.309286 0.256549 +v -0.586456 0.317096 0.250663 +v -0.528147 0.039522 0.288338 +v -0.528785 0.027560 0.288303 +v -0.529083 0.021624 0.288200 +v -0.552822 0.021738 0.283080 +v -0.575064 0.021845 0.277869 +v -0.575164 0.019054 0.277663 +v -0.595854 0.021944 0.272581 +v -0.595950 0.019153 0.272376 +v -0.615239 0.022037 0.267233 +v -0.615330 0.019246 0.267029 +v -0.633263 0.022124 0.261839 +v -0.575216 0.016528 0.277319 +v -0.575219 0.014268 0.276839 +v -0.595995 0.016628 0.272035 +v -0.615368 0.016721 0.266690 +v -0.575175 0.012274 0.276221 +v -0.575082 0.010545 0.275466 +v -0.574942 0.009083 0.274574 +v -0.552761 0.008976 0.279770 +v -0.529080 0.008862 0.284877 +v -0.528928 0.007665 0.283839 +v -0.528733 0.006734 0.282663 +v -0.503542 0.006613 0.287657 +v -0.476757 0.006484 0.292532 +v -0.476561 0.005819 0.291209 +v -0.417874 0.005138 0.299060 +v -0.417715 0.003697 0.297906 +v -0.385927 0.003585 0.302320 +v -0.386071 0.004986 0.303476 +v -0.447943 0.005283 0.294479 +v -0.447769 0.003804 0.293327 +v -0.352489 0.004824 0.307711 +v -0.352359 0.003466 0.306553 +v -0.649974 0.022204 0.256415 +v -0.649608 0.029622 0.256515 +v -0.666036 0.029902 0.250630 +v -0.666410 0.022283 0.250531 +v -0.648735 0.046026 0.256549 +v -0.665132 0.046910 0.250663 +v -0.683614 0.022366 0.243757 +v -0.683232 0.030195 0.243855 +v -0.682294 0.047836 0.243887 +v -0.698869 0.048730 0.236703 +v -0.680110 0.073048 0.243887 +v -0.696621 0.074755 0.236703 +v -0.713503 0.049520 0.229591 +v -0.711199 0.076261 0.229591 +v -0.675989 0.103592 0.243887 +v -0.692397 0.106106 0.236703 +v -0.670092 0.136637 0.243887 +v -0.686357 0.139953 0.236703 +v -0.706883 0.108326 0.229591 +v -0.719553 0.110268 0.222589 +v -0.700716 0.142881 0.229591 +v -0.713276 0.145442 0.222589 +v -0.662580 0.169352 0.243887 +v -0.678662 0.173462 0.236703 +v -0.653473 0.201659 0.243887 +v -0.669334 0.206554 0.236703 +v -0.730514 0.111948 0.215731 +v -0.739872 0.113382 0.209055 +v -0.724142 0.147658 0.215731 +v -0.733418 0.149549 0.209055 +v -0.692861 0.177091 0.229591 +v -0.705280 0.180266 0.222589 +v -0.683337 0.210875 0.229591 +v -0.695586 0.214655 0.222589 +v -0.642790 0.233481 0.243887 +v -0.658392 0.239148 0.236703 +v -0.630560 0.264740 0.243887 +v -0.645865 0.271166 0.236703 +v -0.747733 0.114586 0.202597 +v -0.754202 0.115578 0.196391 +v -0.741210 0.151138 0.202597 +v -0.747623 0.152446 0.196391 +v -0.716024 0.183012 0.215731 +v -0.725196 0.185356 0.209055 +v -0.706182 0.217925 0.215731 +v -0.715228 0.220717 0.209055 +v -0.672167 0.244151 0.229591 +v -0.684215 0.248527 0.222589 +v -0.659378 0.276839 0.229591 +v -0.671197 0.281801 0.222589 +v -0.759387 0.116372 0.190475 +v -0.752762 0.153493 0.190476 +v -0.732901 0.187325 0.202597 +v -0.739242 0.188946 0.196391 +v -0.722827 0.223062 0.202597 +v -0.744323 0.190245 0.190476 +v -0.711011 0.258260 0.202597 +v -0.703536 0.255545 0.209055 +v -0.694638 0.252313 0.215731 +v -0.681421 0.286094 0.215731 +v -0.666562 0.319185 0.215731 +v -0.656560 0.314395 0.222589 +v -0.611620 0.370593 0.229591 +v -0.599086 0.362999 0.236703 +v -0.629068 0.340136 0.229591 +v -0.616176 0.333166 0.236703 +v -0.644999 0.308859 0.229591 +v -0.631781 0.302530 0.236703 +v -0.584889 0.354397 0.243887 +v -0.570190 0.345490 0.250663 +v -0.601575 0.325271 0.243887 +v -0.520438 0.389870 0.256549 +v -0.538941 0.363863 0.256549 +v -0.616810 0.295361 0.243887 +v -0.556146 0.336980 0.256549 +v -0.308585 0.005677 0.313930 +v -0.309350 0.005016 0.312819 +v -0.310177 0.004621 0.311591 +v -0.310820 0.003318 0.310626 +v -0.310558 0.004623 0.311775 +v -0.311061 0.003319 0.310729 +v -0.311041 0.004625 0.311932 +v -0.311408 0.003320 0.310830 +v -0.311655 0.004628 0.312055 +v -0.311899 0.003322 0.310918 +v -0.312429 0.004632 0.312139 +v -0.312568 0.003325 0.310984 +v -0.198064 0.238750 0.311591 +v -0.197853 0.237859 0.312819 +v -0.197291 0.240194 0.310626 +v -0.197888 0.236848 0.313930 +v -0.768261 0.006820 0.176068 +v -0.767221 0.004937 0.175583 +v -0.769860 0.006828 0.172222 +v -0.768767 0.004942 0.171870 +v -0.771210 0.006834 0.162776 +v -0.770055 0.004947 0.162729 +v -0.769949 0.004947 0.165551 +v -0.771096 0.006834 0.165666 +v -0.772670 0.007240 0.162836 +v -0.772659 0.007240 0.160000 +v -0.771195 0.006834 0.160000 +v -0.770039 0.004947 0.160000 +v -0.773976 0.007911 0.162890 +v -0.775125 0.008847 0.162939 +v -0.775118 0.008847 0.160000 +v -0.773966 0.007911 0.160000 +v -0.776120 0.010048 0.162982 +v -0.776959 0.011514 0.163019 +v -0.776954 0.011514 0.160000 +v -0.776114 0.010048 0.160000 +v -0.777642 0.013246 0.163050 +v -0.778170 0.015242 0.163076 +v -0.778168 0.015242 0.160000 +v -0.777639 0.013246 0.160000 +v -0.778542 0.017504 0.163096 +v -0.778759 0.020031 0.163111 +v -0.778758 0.020031 0.160000 +v -0.778541 0.017504 0.160000 +v -0.778820 0.022823 0.163119 +v -0.778440 0.031820 0.163123 +v -0.778440 0.031820 0.160000 +v -0.778820 0.022823 0.160000 +v -0.777335 0.052963 0.163125 +v -0.777335 0.052963 0.160000 +v -0.774785 0.082832 0.163125 +v -0.774785 0.082832 0.160000 +v -0.770070 0.118009 0.163125 +v -0.770070 0.118009 0.160000 +v -0.763353 0.155653 0.163125 +v -0.763353 0.155653 0.160000 +v -0.754795 0.192921 0.163125 +v -0.754795 0.192921 0.160000 +v -0.744420 0.229725 0.163125 +v -0.744420 0.229725 0.160000 +v -0.732251 0.265975 0.163125 +v -0.732251 0.265975 0.160000 +v -0.718318 0.301585 0.163125 +v -0.718318 0.301585 0.160000 +v -0.702655 0.336468 0.163125 +v -0.702655 0.336468 0.160000 +v -0.685299 0.370540 0.163125 +v -0.685299 0.370540 0.160000 +v -0.666291 0.403720 0.163125 +v -0.666291 0.403720 0.160000 +v -0.645680 0.435927 0.163125 +v -0.645680 0.435927 0.160000 +v -0.623512 0.467084 0.163125 +v -0.623512 0.467084 0.160000 +v -0.599842 0.497116 0.163125 +v -0.599842 0.497116 0.160000 +v -0.574727 0.525950 0.163125 +v -0.574727 0.525950 0.160000 +v -0.550278 0.551677 0.163125 +v -0.550278 0.551677 0.160000 +v -0.528606 0.572390 0.163125 +v -0.528606 0.572390 0.160000 +v -0.512829 0.586506 0.163123 +v -0.512829 0.586506 0.160000 +v -0.506057 0.592442 0.163119 +v -0.503843 0.594145 0.163111 +v -0.503843 0.594145 0.160000 +v -0.506057 0.592442 0.160000 +v -0.501739 0.595560 0.163096 +v -0.499743 0.596688 0.163076 +v -0.499743 0.596687 0.160000 +v -0.501739 0.595559 0.160000 +v -0.497858 0.597529 0.163051 +v -0.496080 0.598082 0.163019 +v -0.496077 0.598079 0.160000 +v -0.497855 0.597526 0.160000 +v -0.494411 0.598348 0.162982 +v -0.492853 0.598326 0.162939 +v -0.492848 0.598320 0.160000 +v -0.494408 0.598343 0.160000 +v -0.491403 0.598017 0.162890 +v -0.490061 0.597421 0.162836 +v -0.490054 0.597412 0.160000 +v -0.491397 0.598010 0.160000 +v -0.491319 0.597914 0.165944 +v -0.489984 0.597325 0.165812 +v -0.488829 0.596537 0.162776 +v -0.486240 0.597132 0.162729 +v -0.486230 0.597120 0.160000 +v -0.488820 0.596526 0.160000 +v -0.488758 0.596449 0.165666 +v -0.486172 0.597050 0.165551 +v -0.488524 0.596162 0.168785 +v -0.489735 0.597019 0.169068 +v -0.485952 0.596777 0.168562 +v -0.491055 0.597591 0.169324 +v -0.476325 0.005419 0.289747 +v -0.476134 0.003905 0.288598 +v -0.770725 0.006832 0.168785 +v -0.769598 0.004945 0.168562 +v -0.499389 0.592670 0.179363 +v -0.490794 -0.597805 0.169324 +v -0.489473 -0.597232 0.169068 +v -0.488900 -0.596527 0.172670 +v -0.490197 -0.597069 0.173076 +v -0.492228 -0.598093 0.169553 +v -0.491608 -0.597329 0.173439 +v -0.492503 -0.598432 0.166062 +v -0.491058 -0.598129 0.165944 +v -0.489723 -0.597539 0.165812 +v -0.196906 -0.237540 0.308918 +v -0.196389 -0.239294 0.308388 +v -0.196025 -0.238845 0.306899 +v -0.196518 -0.237062 0.307355 +v -0.196373 -0.236250 0.309592 +v -0.195954 -0.235734 0.307936 +v -0.196766 -0.236734 0.310991 +v -0.197255 -0.237969 0.310203 +v -0.196701 -0.239681 0.309585 +v -0.775514 -0.010384 0.169756 +v -0.774544 -0.009182 0.169553 +v -0.774981 -0.009185 0.166062 +v -0.775968 -0.010386 0.166166 +v -0.776331 -0.011850 0.169931 +v -0.776800 -0.011853 0.166257 +v -0.775288 -0.011845 0.174037 +v -0.774499 -0.010378 0.173759 +v -0.773561 -0.009177 0.173439 +v -0.312427 -0.004768 0.312139 +v -0.312243 -0.005166 0.313610 +v -0.311335 -0.005162 0.313502 +v -0.311653 -0.004764 0.312055 +v -0.312566 -0.003461 0.310984 +v -0.311898 -0.003458 0.310918 +v -0.313401 -0.003464 0.311013 +v -0.313348 -0.004773 0.312176 +v -0.313273 -0.005172 0.313656 +v -0.308504 -0.004748 0.308918 +v -0.307164 -0.005140 0.309592 +v -0.306500 -0.005136 0.307936 +v -0.307888 -0.004745 0.307355 +v -0.309551 -0.003449 0.308388 +v -0.308973 -0.003446 0.306899 +v -0.310048 -0.003450 0.309585 +v -0.309057 -0.004751 0.310203 +v -0.307788 -0.005143 0.310991 +v -0.493772 -0.598096 0.169756 +v -0.495427 -0.597815 0.169931 +v -0.495722 -0.598179 0.166257 +v -0.494058 -0.598449 0.166166 +v -0.493132 -0.597308 0.173759 +v -0.494770 -0.597006 0.174037 +v -0.497193 -0.597248 0.170079 +v -0.499070 -0.596397 0.170200 +v -0.499380 -0.596780 0.166395 +v -0.497496 -0.597623 0.166333 +v -0.496520 -0.596422 0.174271 +v -0.498387 -0.595556 0.174463 +v -0.491977 -0.595887 0.178186 +v -0.493588 -0.595552 0.178568 +v -0.490484 -0.595946 0.177745 +v -0.488772 -0.593837 0.182484 +v -0.490229 -0.593733 0.183038 +v -0.491809 -0.593359 0.183518 +v -0.489109 -0.595727 0.177245 +v -0.487850 -0.595233 0.176686 +v -0.486227 -0.593234 0.181154 +v -0.487438 -0.593671 0.181856 +v -0.501059 -0.595261 0.170295 +v -0.503159 -0.593841 0.170362 +v -0.503478 -0.594234 0.166479 +v -0.501374 -0.595650 0.166444 +v -0.500365 -0.594409 0.174613 +v -0.502460 -0.592980 0.174720 +v -0.485097 -0.590788 0.186936 +v -0.486386 -0.590899 0.187670 +v -0.483937 -0.590413 0.186116 +v -0.480900 -0.586672 0.191516 +v -0.482009 -0.586984 0.192433 +v -0.483252 -0.587038 0.193254 +v -0.482905 -0.589774 0.185209 +v -0.480484 -0.590550 0.184497 +v -0.477554 -0.586928 0.189706 +v -0.479924 -0.586103 0.190502 +v -0.485140 -0.592527 0.180378 +v -0.482670 -0.593253 0.179769 +v -0.476113 -0.581410 0.196200 +v -0.477034 -0.581911 0.197301 +v -0.473796 -0.582281 0.195335 +v -0.469135 -0.576519 0.201327 +v -0.471400 -0.575605 0.202247 +v -0.472268 -0.576042 0.203419 +v -0.465712 -0.568600 0.208589 +v -0.466531 -0.568976 0.209818 +v -0.463500 -0.569551 0.207623 +v -0.456820 -0.561292 0.214173 +v -0.458981 -0.560309 0.215176 +v -0.459754 -0.560629 0.216452 +v -0.478094 -0.582162 0.198297 +v -0.479291 -0.582161 0.199189 +v -0.473280 -0.576234 0.204479 +v -0.474436 -0.576181 0.205428 +v -0.487803 -0.590747 0.188317 +v -0.489349 -0.590330 0.188878 +v -0.484628 -0.586836 0.193978 +v -0.486138 -0.586376 0.194605 +v -0.495318 -0.594941 0.178892 +v -0.497165 -0.594053 0.179157 +v -0.493511 -0.592714 0.183925 +v -0.495335 -0.591798 0.184257 +v -0.499132 -0.592888 0.179363 +v -0.501215 -0.591447 0.179510 +v -0.497284 -0.590612 0.184516 +v -0.499355 -0.589156 0.184701 +v -0.491021 -0.589649 0.189353 +v -0.492823 -0.588704 0.189742 +v -0.487781 -0.585658 0.195136 +v -0.489558 -0.584684 0.195571 +v -0.480629 -0.581910 0.199975 +v -0.482105 -0.581408 0.200657 +v -0.475736 -0.575884 0.206265 +v -0.477179 -0.575341 0.206991 +v -0.505369 -0.592135 0.170403 +v -0.512136 -0.586206 0.170423 +v -0.512462 -0.586599 0.166510 +v -0.505691 -0.592531 0.166500 +v -0.504667 -0.591269 0.174784 +v -0.511421 -0.585347 0.174816 +v -0.503416 -0.589729 0.179598 +v -0.510149 -0.583818 0.179642 +v -0.501547 -0.587429 0.184811 +v -0.508250 -0.581538 0.184867 +v -0.494752 -0.587495 0.190044 +v -0.496810 -0.586023 0.190260 +v -0.491470 -0.583452 0.195909 +v -0.493513 -0.581962 0.196150 +v -0.527901 -0.572112 0.170430 +v -0.528242 -0.572493 0.166514 +v -0.527155 -0.571280 0.174826 +v -0.548770 -0.550637 0.174826 +v -0.549557 -0.551431 0.170430 +v -0.549917 -0.551795 0.166514 +v -0.483720 -0.580655 0.201233 +v -0.485473 -0.579652 0.201705 +v -0.478765 -0.574555 0.207604 +v -0.480497 -0.573523 0.208107 +v -0.467499 -0.569113 0.210931 +v -0.468615 -0.569011 0.211926 +v -0.460680 -0.560714 0.217606 +v -0.461758 -0.560567 0.218639 +v -0.451137 -0.550649 0.221957 +v -0.449028 -0.551659 0.220925 +v -0.440054 -0.540563 0.227835 +v -0.442112 -0.539534 0.228891 +v -0.451868 -0.550916 0.223272 +v -0.442804 -0.539754 0.230236 +v -0.431837 -0.526879 0.235933 +v -0.432494 -0.527057 0.237302 +v -0.429830 -0.527923 0.234858 +v -0.419208 -0.514790 0.241506 +v -0.421166 -0.513736 0.242597 +v -0.421793 -0.513876 0.243985 +v -0.452755 -0.550955 0.224460 +v -0.453800 -0.550765 0.225524 +v -0.443657 -0.539749 0.231452 +v -0.444670 -0.539522 0.232541 +v -0.469879 -0.568670 0.212804 +v -0.471292 -0.568090 0.213565 +v -0.462990 -0.560185 0.219551 +v -0.464374 -0.559571 0.220341 +v -0.487365 -0.578397 0.202072 +v -0.489397 -0.576891 0.202334 +v -0.482372 -0.572247 0.208497 +v -0.484390 -0.570726 0.208776 +v -0.472853 -0.567272 0.214209 +v -0.474562 -0.566214 0.214736 +v -0.465911 -0.558722 0.221009 +v -0.467602 -0.557641 0.221556 +v -0.455001 -0.550346 0.226463 +v -0.456359 -0.549699 0.227276 +v -0.445844 -0.539069 0.233501 +v -0.447178 -0.538392 0.234334 +v -0.433316 -0.527013 0.238541 +v -0.434301 -0.526751 0.239650 +v -0.422587 -0.513801 0.245241 +v -0.423548 -0.513507 0.246365 +v -0.457874 -0.548824 0.227964 +v -0.459546 -0.547720 0.228528 +v -0.448673 -0.537492 0.235038 +v -0.450329 -0.536367 0.235614 +v -0.435450 -0.526268 0.240628 +v -0.436763 -0.525566 0.241475 +v -0.424675 -0.512998 0.247357 +v -0.425970 -0.512272 0.248217 +v -0.412326 -0.501164 0.251067 +v -0.413266 -0.500844 0.252204 +v -0.411556 -0.501269 0.249797 +v -0.401131 -0.488430 0.255164 +v -0.401881 -0.488299 0.256445 +v -0.402802 -0.487957 0.257591 +v -0.410955 -0.501162 0.248393 +v -0.409042 -0.502219 0.247290 +v -0.398683 -0.489412 0.252636 +v -0.400553 -0.488351 0.253748 +v -0.389309 -0.474503 0.259085 +v -0.389867 -0.474557 0.260511 +v -0.387482 -0.475563 0.257964 +v -0.375415 -0.460643 0.263258 +v -0.377199 -0.459588 0.264385 +v -0.377737 -0.459618 0.265819 +v -0.364196 -0.443573 0.269631 +v -0.364716 -0.443582 0.271073 +v -0.362456 -0.444621 0.268498 +v -0.348578 -0.427462 0.273668 +v -0.350272 -0.426424 0.274806 +v -0.350775 -0.426412 0.276254 +v -0.390598 -0.474403 0.261801 +v -0.391502 -0.474040 0.262955 +v -0.378451 -0.459443 0.267117 +v -0.379340 -0.459061 0.268278 +v -0.414375 -0.500312 0.253206 +v -0.415653 -0.499566 0.254075 +v -0.403894 -0.487404 0.258603 +v -0.405158 -0.486641 0.259479 +v -0.335398 -0.408106 0.279894 +v -0.335886 -0.408075 0.281348 +v -0.333753 -0.409132 0.278752 +v -0.317951 -0.389595 0.283734 +v -0.319548 -0.388585 0.284880 +v -0.320021 -0.388535 0.286338 +v -0.365414 -0.443386 0.272377 +v -0.366288 -0.442987 0.273544 +v -0.351458 -0.426198 0.277564 +v -0.352319 -0.425782 0.278736 +v -0.392580 -0.473469 0.263974 +v -0.393830 -0.472690 0.264856 +v -0.380404 -0.458474 0.269303 +v -0.381643 -0.457680 0.270191 +v -0.438240 -0.524642 0.242192 +v -0.439881 -0.523501 0.242779 +v -0.427430 -0.511330 0.248944 +v -0.429058 -0.510172 0.249539 +v -0.417100 -0.498607 0.254811 +v -0.418716 -0.497435 0.255412 +v -0.406593 -0.485667 0.260221 +v -0.408200 -0.484482 0.260828 +v -0.395255 -0.471703 0.265603 +v -0.396853 -0.470507 0.266214 +v -0.383057 -0.456681 0.270942 +v -0.384647 -0.455475 0.271557 +v -0.441685 -0.522137 0.243235 +v -0.443654 -0.520554 0.243561 +v -0.454121 -0.533446 0.236383 +v -0.452145 -0.535019 0.236063 +v -0.430853 -0.508797 0.250002 +v -0.432814 -0.507205 0.250333 +v -0.420502 -0.496049 0.255880 +v -0.422457 -0.494449 0.256214 +v -0.409977 -0.483087 0.261300 +v -0.411927 -0.481481 0.261637 +v -0.461375 -0.546387 0.228966 +v -0.463361 -0.544827 0.229278 +v -0.471440 -0.554776 0.222285 +v -0.469445 -0.556325 0.221981 +v -0.476421 -0.564917 0.215146 +v -0.478428 -0.563382 0.215439 +v -0.465503 -0.543036 0.229466 +v -0.471657 -0.537583 0.229560 +v -0.479863 -0.547439 0.222558 +v -0.473588 -0.552994 0.222467 +v -0.456258 -0.531650 0.236575 +v -0.462275 -0.526313 0.236671 +v -0.480583 -0.561608 0.215614 +v -0.486962 -0.555966 0.215702 +v -0.493022 -0.563245 0.209027 +v -0.486553 -0.568960 0.208944 +v -0.491566 -0.575135 0.202492 +v -0.498111 -0.569360 0.202570 +v -0.502300 -0.574392 0.196367 +v -0.495691 -0.580216 0.196295 +v -0.498996 -0.584286 0.190389 +v -0.505657 -0.578424 0.190454 +v -0.513268 -0.555797 0.202597 +v -0.517638 -0.560670 0.196391 +v -0.507959 -0.549877 0.209055 +v -0.528548 -0.530201 0.209055 +v -0.534142 -0.535854 0.202597 +v -0.538745 -0.540506 0.196391 +v -0.525828 -0.569799 0.179657 +v -0.523846 -0.567591 0.184885 +v -0.545285 -0.547114 0.184885 +v -0.547372 -0.549223 0.179657 +v -0.521140 -0.564574 0.190475 +v -0.542434 -0.544234 0.190475 +v -0.501638 -0.542830 0.215731 +v -0.494235 -0.534575 0.222589 +v -0.514089 -0.515591 0.222589 +v -0.521889 -0.523472 0.215731 +v -0.573994 -0.525739 0.170430 +v -0.574371 -0.526085 0.166514 +v -0.573170 -0.524984 0.174826 +v -0.598240 -0.496228 0.174826 +v -0.599100 -0.496942 0.170430 +v -0.599494 -0.497268 0.166514 +v -0.622762 -0.466947 0.170430 +v -0.623171 -0.467254 0.166514 +v -0.621867 -0.466276 0.174826 +v -0.643998 -0.435201 0.174826 +v -0.644924 -0.435827 0.170430 +v -0.645348 -0.436114 0.166514 +v -0.571703 -0.523641 0.179657 +v -0.569515 -0.521636 0.184885 +v -0.594425 -0.493065 0.184885 +v -0.596709 -0.494959 0.179657 +v -0.665532 -0.403657 0.170430 +v -0.665969 -0.403922 0.166514 +v -0.664576 -0.403077 0.174826 +v -0.683554 -0.369983 0.174826 +v -0.684537 -0.370515 0.170430 +v -0.684987 -0.370758 0.166514 +v -0.701892 -0.336479 0.170430 +v -0.702354 -0.336701 0.166514 +v -0.700884 -0.335996 0.174826 +v -0.716527 -0.301201 0.174826 +v -0.717558 -0.301634 0.170430 +v -0.718029 -0.301832 0.166514 +v -0.620276 -0.465083 0.179657 +v -0.617902 -0.463303 0.184885 +v -0.639892 -0.432426 0.184885 +v -0.642350 -0.434088 0.179657 +v -0.662875 -0.402046 0.179657 +v -0.660339 -0.400507 0.184885 +v -0.679196 -0.367624 0.184885 +v -0.681805 -0.369036 0.179657 +v -0.699091 -0.335136 0.179657 +v -0.696416 -0.333854 0.184885 +v -0.711959 -0.299281 0.184885 +v -0.714694 -0.300430 0.179657 +v -0.656874 -0.398406 0.190476 +v -0.652390 -0.395686 0.196391 +v -0.671020 -0.363198 0.196391 +v -0.675632 -0.365695 0.190476 +v -0.636534 -0.430158 0.190476 +v -0.632189 -0.427221 0.196391 +v -0.692762 -0.332102 0.190476 +v -0.688032 -0.329835 0.196391 +v -0.703388 -0.295678 0.196391 +v -0.708223 -0.297710 0.190476 +v -0.731493 -0.266062 0.170430 +v -0.731974 -0.266237 0.166514 +v -0.730443 -0.265680 0.174826 +v -0.742599 -0.229519 0.174826 +v -0.743668 -0.229849 0.170430 +v -0.744157 -0.230000 0.166514 +v -0.754049 -0.193082 0.170430 +v -0.754545 -0.193209 0.166514 +v -0.752966 -0.192804 0.174826 +v -0.761520 -0.155626 0.174826 +v -0.762616 -0.155850 0.170430 +v -0.763117 -0.155952 0.166514 +v -0.728574 -0.265000 0.179657 +v -0.725786 -0.263986 0.184885 +v -0.737865 -0.228055 0.184885 +v -0.740699 -0.228931 0.179657 +v -0.769344 -0.118242 0.170430 +v -0.769850 -0.118320 0.166514 +v -0.768239 -0.118072 0.174826 +v -0.772958 -0.082985 0.174826 +v -0.774070 -0.083100 0.170430 +v -0.774579 -0.083153 0.166514 +v -0.751040 -0.192311 0.179657 +v -0.748166 -0.191575 0.184885 +v -0.756665 -0.154634 0.184885 +v -0.759572 -0.155228 0.179657 +v -0.776631 -0.053265 0.170430 +v -0.777142 -0.053293 0.166514 +v -0.775514 -0.053204 0.174826 +v -0.776627 -0.032128 0.174816 +v -0.777744 -0.032148 0.170423 +v -0.778256 -0.032157 0.166510 +v -0.766273 -0.117770 0.179657 +v -0.763341 -0.117319 0.184885 +v -0.768029 -0.082473 0.184885 +v -0.770980 -0.082779 0.179657 +v -0.778130 -0.023159 0.170403 +v -0.778075 -0.020367 0.170362 +v -0.778581 -0.020370 0.166479 +v -0.778640 -0.023162 0.166500 +v -0.777015 -0.023153 0.174784 +v -0.776966 -0.020361 0.174720 +v -0.773529 -0.053096 0.179657 +v -0.770566 -0.052935 0.184885 +v -0.771673 -0.032041 0.184867 +v -0.774639 -0.032093 0.179642 +v -0.775030 -0.023143 0.179598 +v -0.774991 -0.020351 0.179510 +v -0.772068 -0.023127 0.184812 +v -0.772040 -0.020336 0.184701 +v -0.777867 -0.017840 0.170295 +v -0.777507 -0.015579 0.170200 +v -0.778000 -0.015581 0.166396 +v -0.778368 -0.017843 0.166444 +v -0.776769 -0.017835 0.174613 +v -0.776424 -0.015573 0.174464 +v -0.776995 -0.013582 0.170079 +v -0.777477 -0.013584 0.166333 +v -0.775930 -0.013576 0.174271 +v -0.774023 -0.013566 0.178892 +v -0.773416 -0.011835 0.178569 +v -0.774487 -0.015563 0.179157 +v -0.771583 -0.015548 0.184257 +v -0.771154 -0.013551 0.183925 +v -0.770591 -0.011820 0.183519 +v -0.768019 -0.023106 0.190389 +v -0.768004 -0.020314 0.190260 +v -0.767620 -0.031970 0.190454 +v -0.762375 -0.031879 0.196367 +v -0.762776 -0.023079 0.196295 +v -0.762774 -0.020287 0.196150 +v -0.766520 -0.052715 0.190476 +v -0.761283 -0.052430 0.196391 +v -0.763998 -0.082055 0.190476 +v -0.758782 -0.081513 0.196391 +v -0.767864 -0.017788 0.190044 +v -0.767598 -0.015527 0.189742 +v -0.771879 -0.017809 0.184516 +v -0.762655 -0.017761 0.195909 +v -0.762419 -0.015500 0.195571 +v -0.759336 -0.116704 0.190476 +v -0.754152 -0.115907 0.196391 +v -0.752695 -0.153822 0.190476 +v -0.747557 -0.152772 0.196391 +v -0.756232 -0.023044 0.202492 +v -0.756242 -0.020253 0.202334 +v -0.755829 -0.031764 0.202570 +v -0.747874 -0.031625 0.209027 +v -0.748278 -0.023003 0.208944 +v -0.748300 -0.020211 0.208776 +v -0.754748 -0.052075 0.202597 +v -0.746807 -0.051643 0.209055 +v -0.752271 -0.080838 0.202597 +v -0.744362 -0.080017 0.209055 +v -0.744240 -0.190570 0.190476 +v -0.739159 -0.189269 0.196391 +v -0.733993 -0.226859 0.190476 +v -0.728982 -0.225310 0.196391 +v -0.747683 -0.114913 0.202597 +v -0.739823 -0.113705 0.209055 +v -0.741144 -0.151462 0.202597 +v -0.733353 -0.149869 0.209055 +v -0.721977 -0.262601 0.190476 +v -0.717048 -0.260808 0.196391 +v -0.732819 -0.187645 0.202597 +v -0.725115 -0.185673 0.209055 +v -0.722729 -0.223377 0.202597 +v -0.715132 -0.221029 0.209055 +v -0.710898 -0.258571 0.202597 +v -0.703424 -0.255852 0.209055 +v -0.697354 -0.293141 0.202597 +v -0.690023 -0.290060 0.209055 +v -0.682130 -0.327006 0.202597 +v -0.674959 -0.323568 0.209055 +v -0.665264 -0.360083 0.202597 +v -0.658270 -0.356297 0.209055 +v -0.715944 -0.183324 0.215731 +v -0.705201 -0.180574 0.222589 +v -0.713213 -0.145754 0.222589 +v -0.724077 -0.147974 0.215731 +v -0.706087 -0.218233 0.215731 +v -0.695492 -0.214959 0.222589 +v -0.694528 -0.252616 0.215731 +v -0.684106 -0.248826 0.222589 +v -0.681296 -0.286391 0.215731 +v -0.671074 -0.282094 0.222589 +v -0.730465 -0.112267 0.215731 +v -0.719505 -0.110582 0.222589 +v -0.723915 -0.077895 0.222589 +v -0.734945 -0.079040 0.215731 +v -0.737354 -0.051129 0.215731 +v -0.726281 -0.050527 0.222589 +v -0.727311 -0.031265 0.222558 +v -0.738404 -0.031459 0.215702 +v -0.706835 -0.108635 0.229591 +v -0.692350 -0.106409 0.236703 +v -0.696588 -0.075059 0.236703 +v -0.711165 -0.076572 0.229591 +v -0.700654 -0.143187 0.229591 +v -0.686296 -0.140253 0.236703 +v -0.738807 -0.022953 0.215614 +v -0.738841 -0.020162 0.215439 +v -0.727712 -0.022895 0.222467 +v -0.727756 -0.020104 0.222285 +v -0.713482 -0.049831 0.229591 +v -0.698848 -0.049035 0.236703 +v -0.699826 -0.030784 0.236671 +v -0.714487 -0.031041 0.229560 +v -0.714884 -0.022828 0.229466 +v -0.714938 -0.020036 0.229278 +v -0.700218 -0.022751 0.236575 +v -0.700280 -0.019960 0.236383 +v -0.756144 -0.017727 0.202072 +v -0.755937 -0.015466 0.201705 +v -0.748222 -0.017685 0.208497 +v -0.748043 -0.015424 0.208107 +v -0.738781 -0.017636 0.215146 +v -0.738628 -0.015375 0.214736 +v -0.727713 -0.017578 0.221981 +v -0.727585 -0.015317 0.221556 +v -0.767206 -0.013531 0.189353 +v -0.766689 -0.011800 0.188878 +v -0.762066 -0.013504 0.195136 +v -0.761596 -0.011773 0.194605 +v -0.772668 -0.010369 0.178186 +v -0.771778 -0.009168 0.177745 +v -0.769894 -0.010354 0.183038 +v -0.769062 -0.009154 0.182484 +v -0.755622 -0.013470 0.201233 +v -0.755197 -0.011740 0.200657 +v -0.747763 -0.013429 0.207604 +v -0.747383 -0.011699 0.206991 +v -0.766046 -0.010334 0.188317 +v -0.765278 -0.009134 0.187670 +v -0.761009 -0.010308 0.193978 +v -0.760305 -0.009108 0.193254 +v -0.770747 -0.008232 0.177245 +v -0.769573 -0.007561 0.176686 +v -0.771240 -0.007570 0.172671 +v -0.772474 -0.008241 0.173076 +v -0.768098 -0.008218 0.181856 +v -0.766999 -0.007548 0.181154 +v -0.768258 -0.007155 0.176068 +v -0.767219 -0.005272 0.175583 +v -0.768765 -0.005278 0.171870 +v -0.769857 -0.007164 0.172222 +v -0.765766 -0.007142 0.180378 +v -0.764791 -0.005262 0.179769 +v -0.764384 -0.008199 0.186936 +v -0.763365 -0.007529 0.186116 +v -0.759484 -0.008173 0.192433 +v -0.758546 -0.007503 0.191516 +v -0.754664 -0.010275 0.199975 +v -0.754023 -0.009075 0.199189 +v -0.746901 -0.010234 0.206265 +v -0.746319 -0.009034 0.205428 +v -0.762220 -0.007124 0.185209 +v -0.761315 -0.005248 0.184497 +v -0.757491 -0.007099 0.190502 +v -0.756656 -0.005230 0.189706 +v -0.753272 -0.008140 0.198297 +v -0.752413 -0.007471 0.197301 +v -0.745637 -0.008100 0.204479 +v -0.744853 -0.007432 0.203419 +v -0.751446 -0.007067 0.196200 +v -0.750679 -0.005206 0.195335 +v -0.743969 -0.007028 0.202247 +v -0.743269 -0.005176 0.201327 +v -0.737609 -0.010185 0.212804 +v -0.737083 -0.008986 0.211926 +v -0.738042 -0.011650 0.213565 +v -0.727068 -0.011592 0.220341 +v -0.726681 -0.010128 0.219551 +v -0.726206 -0.008929 0.218639 +v -0.734946 -0.006981 0.208589 +v -0.734307 -0.005141 0.207623 +v -0.735751 -0.007384 0.209819 +v -0.724999 -0.007328 0.216452 +v -0.724266 -0.006925 0.215176 +v -0.723684 -0.005098 0.214173 +v -0.736464 -0.008052 0.210931 +v -0.725646 -0.007996 0.217606 +v -0.711823 -0.006860 0.221958 +v -0.711294 -0.005049 0.220925 +v -0.712489 -0.007262 0.223272 +v -0.698110 -0.007187 0.230236 +v -0.697505 -0.006785 0.228891 +v -0.697024 -0.004992 0.227835 +v -0.713075 -0.007930 0.224460 +v -0.713581 -0.008863 0.225524 +v -0.699097 -0.008787 0.232541 +v -0.698641 -0.007854 0.231452 +v -0.681204 -0.006700 0.235933 +v -0.680766 -0.004927 0.234858 +v -0.681754 -0.007101 0.237303 +v -0.664777 -0.007012 0.243985 +v -0.664275 -0.006611 0.242597 +v -0.663875 -0.004860 0.241506 +v -0.648076 -0.006526 0.248394 +v -0.647709 -0.004796 0.247291 +v -0.648537 -0.006927 0.249797 +v -0.631999 -0.006841 0.255164 +v -0.631575 -0.006440 0.253748 +v -0.631236 -0.004730 0.252636 +v -0.682235 -0.007768 0.238541 +v -0.682647 -0.008701 0.239650 +v -0.665588 -0.008612 0.246366 +v -0.665215 -0.007679 0.245241 +v -0.648937 -0.007594 0.251067 +v -0.649276 -0.008526 0.252204 +v -0.632676 -0.008439 0.257591 +v -0.632366 -0.007507 0.256445 +v -0.614466 -0.007414 0.261801 +v -0.614129 -0.006747 0.260511 +v -0.614750 -0.008346 0.262955 +v -0.595455 -0.008245 0.268278 +v -0.595196 -0.007313 0.267117 +v -0.594886 -0.006646 0.265819 +v -0.649556 -0.009724 0.253206 +v -0.649775 -0.011188 0.254075 +v -0.633125 -0.011100 0.259479 +v -0.632929 -0.009637 0.258603 +v -0.665897 -0.009810 0.247357 +v -0.666142 -0.011273 0.248217 +v -0.614979 -0.009543 0.263974 +v -0.615155 -0.011006 0.264856 +v -0.595821 -0.010905 0.270191 +v -0.595663 -0.009442 0.269303 +v -0.682991 -0.009899 0.240628 +v -0.683265 -0.011363 0.241475 +v -0.699480 -0.009986 0.233501 +v -0.699788 -0.011449 0.234334 +v -0.714007 -0.010062 0.226463 +v -0.714353 -0.011526 0.227276 +v -0.649933 -0.012917 0.254811 +v -0.650031 -0.014911 0.255412 +v -0.633347 -0.014824 0.260828 +v -0.633265 -0.012829 0.260221 +v -0.666322 -0.013002 0.248944 +v -0.666438 -0.014997 0.249539 +v -0.683471 -0.013092 0.242192 +v -0.683607 -0.015087 0.242779 +v -0.700022 -0.013179 0.235038 +v -0.700182 -0.015174 0.235614 +v -0.714619 -0.013255 0.227964 +v -0.714805 -0.015250 0.228528 +v -0.727370 -0.013322 0.221009 +v -0.738382 -0.013380 0.214209 +v -0.714912 -0.017511 0.228966 +v -0.700268 -0.017434 0.236063 +v -0.683675 -0.017347 0.243236 +v -0.683674 -0.019873 0.243562 +v -0.666477 -0.019783 0.250333 +v -0.666490 -0.017257 0.250002 +v -0.683604 -0.022664 0.243757 +v -0.683219 -0.030494 0.243855 +v -0.666023 -0.030193 0.250630 +v -0.666400 -0.022574 0.250531 +v -0.682273 -0.048134 0.243888 +v -0.665111 -0.047201 0.250663 +v -0.680078 -0.073345 0.243888 +v -0.662982 -0.071571 0.250663 +v -0.650069 -0.017171 0.255880 +v -0.650047 -0.019697 0.256215 +v -0.633342 -0.019609 0.261637 +v -0.633373 -0.017084 0.261300 +v -0.649964 -0.022488 0.256415 +v -0.649595 -0.029905 0.256515 +v -0.632893 -0.029613 0.261940 +v -0.633254 -0.022400 0.261839 +v -0.648714 -0.046309 0.256549 +v -0.632045 -0.045403 0.261974 +v -0.646649 -0.069876 0.256549 +v -0.630044 -0.068153 0.261974 +v -0.675944 -0.103887 0.243888 +v -0.658955 -0.101276 0.250663 +v -0.670032 -0.136929 0.243888 +v -0.653193 -0.133488 0.250663 +v -0.692784 -0.177394 0.229591 +v -0.678586 -0.173759 0.236703 +v -0.683245 -0.211174 0.229591 +v -0.669244 -0.206846 0.236703 +v -0.642725 -0.098782 0.256549 +v -0.626225 -0.096246 0.261974 +v -0.637105 -0.130200 0.256549 +v -0.620749 -0.126858 0.261974 +v -0.662506 -0.169641 0.243888 +v -0.645856 -0.165378 0.250663 +v -0.653385 -0.201945 0.243887 +v -0.636963 -0.196869 0.250663 +v -0.614066 -0.044425 0.267369 +v -0.594730 -0.043374 0.272718 +v -0.595505 -0.028959 0.272684 +v -0.614878 -0.029298 0.267335 +v -0.612134 -0.066294 0.267369 +v -0.592873 -0.064295 0.272718 +v -0.615229 -0.022306 0.267233 +v -0.615322 -0.019515 0.267029 +v -0.595845 -0.022204 0.272581 +v -0.595942 -0.019413 0.272376 +v -0.615361 -0.016989 0.266690 +v -0.615346 -0.014729 0.266214 +v -0.595988 -0.016888 0.272035 +v -0.595983 -0.014628 0.271557 +v -0.608428 -0.093511 0.267369 +v -0.589288 -0.090569 0.272718 +v -0.603107 -0.123252 0.267369 +v -0.584135 -0.119375 0.272718 +v -0.575054 -0.022096 0.277869 +v -0.575155 -0.019305 0.277663 +v -0.574726 -0.028595 0.277972 +v -0.552497 -0.028206 0.283183 +v -0.552813 -0.021979 0.283080 +v -0.552918 -0.019188 0.282873 +v -0.573992 -0.042246 0.278006 +v -0.551807 -0.041040 0.283218 +v -0.572216 -0.062151 0.278006 +v -0.550117 -0.059858 0.283218 +v -0.615278 -0.012735 0.265603 +v -0.595927 -0.012634 0.270942 +v -0.575208 -0.016779 0.277319 +v -0.575213 -0.014519 0.276839 +v -0.552977 -0.016663 0.282528 +v -0.552990 -0.014403 0.282046 +v -0.575170 -0.012525 0.276221 +v -0.575078 -0.010796 0.275466 +v -0.552958 -0.012409 0.281425 +v -0.552880 -0.010680 0.280667 +v -0.574938 -0.009333 0.274574 +v -0.574750 -0.008136 0.273544 +v -0.552757 -0.009217 0.279770 +v -0.552588 -0.008020 0.278736 +v -0.529248 -0.016538 0.287646 +v -0.529270 -0.014279 0.287161 +v -0.529182 -0.019064 0.287992 +v -0.503904 -0.018931 0.293004 +v -0.503975 -0.016406 0.292657 +v -0.504005 -0.014146 0.292171 +v -0.574513 -0.007204 0.272377 +v -0.574229 -0.006538 0.271073 +v -0.552373 -0.007088 0.277564 +v -0.552113 -0.006422 0.276254 +v -0.529248 -0.012285 0.286539 +v -0.529184 -0.010556 0.285777 +v -0.503994 -0.012152 0.291546 +v -0.503941 -0.010424 0.290782 +v -0.529076 -0.009093 0.284877 +v -0.528925 -0.007896 0.283839 +v -0.503848 -0.008961 0.289879 +v -0.503714 -0.007764 0.288838 +v -0.573896 -0.006138 0.269631 +v -0.573629 -0.004501 0.268498 +v -0.594235 -0.004583 0.263258 +v -0.594525 -0.006246 0.264385 +v -0.551807 -0.006022 0.274806 +v -0.551560 -0.004413 0.273668 +v -0.613737 -0.006346 0.259085 +v -0.613424 -0.004659 0.257964 +v -0.528730 -0.006965 0.282663 +v -0.528492 -0.006299 0.281348 +v -0.503539 -0.006833 0.287657 +v -0.503323 -0.006167 0.286338 +v -0.528211 -0.005898 0.279894 +v -0.527985 -0.004319 0.278752 +v -0.503065 -0.005767 0.284880 +v -0.502857 -0.004219 0.283734 +v -0.476323 -0.005627 0.289747 +v -0.476133 -0.004112 0.288598 +v -0.476558 -0.006027 0.291209 +v -0.448155 -0.005878 0.295945 +v -0.447941 -0.005478 0.294479 +v -0.447767 -0.003999 0.293327 +v -0.476754 -0.006692 0.292532 +v -0.476911 -0.007624 0.293716 +v -0.448471 -0.007475 0.298457 +v -0.448330 -0.006544 0.297271 +v -0.418224 -0.006386 0.301859 +v -0.418065 -0.005720 0.300529 +v -0.418347 -0.007317 0.303048 +v -0.386494 -0.007150 0.307471 +v -0.386385 -0.006219 0.306280 +v -0.386244 -0.005554 0.304948 +v -0.477029 -0.008821 0.294760 +v -0.477109 -0.010283 0.295665 +v -0.448641 -0.010134 0.300412 +v -0.448573 -0.008672 0.299505 +v -0.418436 -0.008514 0.304097 +v -0.418490 -0.009976 0.305006 +v -0.386611 -0.009810 0.309433 +v -0.386569 -0.008347 0.308522 +v -0.477149 -0.012012 0.296431 +v -0.477151 -0.014006 0.297058 +v -0.448662 -0.013857 0.301808 +v -0.448670 -0.011863 0.301180 +v -0.418509 -0.011705 0.305776 +v -0.418492 -0.013699 0.306405 +v -0.386596 -0.013532 0.310835 +v -0.386620 -0.011538 0.310204 +v -0.477113 -0.016265 0.297545 +v -0.477037 -0.018791 0.297894 +v -0.448536 -0.018641 0.302646 +v -0.448618 -0.016116 0.302297 +v -0.418441 -0.015958 0.306895 +v -0.418355 -0.018483 0.307245 +v -0.386448 -0.018316 0.311676 +v -0.386538 -0.015791 0.311325 +v -0.352958 -0.011361 0.314449 +v -0.352959 -0.009633 0.313677 +v -0.352927 -0.013355 0.315080 +v -0.326661 -0.013218 0.318231 +v -0.326701 -0.011224 0.317598 +v -0.326712 -0.009496 0.316825 +v -0.352864 -0.015615 0.315572 +v -0.352769 -0.018140 0.315922 +v -0.326492 -0.018002 0.319074 +v -0.326591 -0.015477 0.318723 +v -0.418234 -0.021274 0.307455 +v -0.418001 -0.025853 0.307560 +v -0.386110 -0.025295 0.311991 +v -0.386324 -0.021107 0.311886 +v -0.448418 -0.021432 0.302855 +v -0.448166 -0.026381 0.302960 +v -0.352927 -0.008171 0.312764 +v -0.352864 -0.006974 0.311711 +v -0.326693 -0.008033 0.315911 +v -0.326645 -0.006837 0.314857 +v -0.352643 -0.020931 0.316133 +v -0.352450 -0.024706 0.316238 +v -0.326186 -0.024246 0.319390 +v -0.326363 -0.020793 0.319285 +v -0.352770 -0.006043 0.310518 +v -0.352644 -0.005378 0.309185 +v -0.326567 -0.005906 0.313662 +v -0.326459 -0.005241 0.312326 +v -0.417871 -0.005321 0.299060 +v -0.386069 -0.005154 0.303476 +v -0.417713 -0.003880 0.297906 +v -0.385926 -0.003753 0.302320 +v -0.352487 -0.004978 0.307711 +v -0.352357 -0.003619 0.306553 +v -0.326322 -0.004841 0.310850 +v -0.326208 -0.003515 0.309691 +v -0.317049 -0.007983 0.317050 +v -0.317020 -0.006786 0.315994 +v -0.317051 -0.009445 0.317966 +v -0.315672 -0.009438 0.318082 +v -0.315695 -0.007976 0.317165 +v -0.315695 -0.006780 0.316107 +v -0.316770 -0.004791 0.311981 +v -0.316677 -0.003477 0.310819 +v -0.316880 -0.005191 0.313459 +v -0.315625 -0.005184 0.313569 +v -0.315556 -0.004785 0.312088 +v -0.315495 -0.003473 0.310924 +v -0.316963 -0.005856 0.314797 +v -0.315672 -0.005849 0.314909 +v -0.314403 -0.004779 0.312156 +v -0.314390 -0.003468 0.310991 +v -0.314412 -0.005178 0.313638 +v -0.314403 -0.005842 0.314980 +v -0.314378 -0.006773 0.316180 +v -0.313096 -0.006766 0.316194 +v -0.313189 -0.005836 0.314996 +v -0.314334 -0.007969 0.317239 +v -0.314274 -0.009431 0.318157 +v -0.312880 -0.009423 0.318168 +v -0.312993 -0.007962 0.317252 +v -0.312060 -0.005830 0.314941 +v -0.311878 -0.006760 0.316131 +v -0.310740 -0.006754 0.315982 +v -0.311030 -0.005825 0.314811 +v -0.311696 -0.007955 0.317182 +v -0.311516 -0.009416 0.318092 +v -0.310200 -0.009409 0.317911 +v -0.310463 -0.007949 0.317016 +v -0.310116 -0.005820 0.314603 +v -0.309698 -0.006748 0.315739 +v -0.308747 -0.006743 0.315389 +v -0.309305 -0.005816 0.314312 +v -0.310563 -0.005157 0.313334 +v -0.309908 -0.005154 0.313107 +v -0.311039 -0.004761 0.311932 +v -0.311407 -0.003456 0.310830 +v -0.310556 -0.004759 0.311775 +v -0.311059 -0.003455 0.310729 +v -0.309309 -0.007942 0.316740 +v -0.308948 -0.009403 0.317608 +v -0.307767 -0.009397 0.317165 +v -0.308234 -0.007937 0.316340 +v -0.307239 -0.007932 0.315801 +v -0.307880 -0.006739 0.314924 +v -0.306661 -0.009391 0.316561 +v -0.305627 -0.009385 0.315763 +v -0.306311 -0.007927 0.315085 +v -0.307075 -0.006734 0.314302 +v -0.306145 -0.011116 0.317205 +v -0.305691 -0.013108 0.317731 +v -0.304493 -0.013102 0.316807 +v -0.305020 -0.011110 0.316337 +v -0.307345 -0.011123 0.317862 +v -0.306968 -0.013115 0.318433 +v -0.308616 -0.011129 0.318343 +v -0.308313 -0.013122 0.318944 +v -0.309950 -0.011136 0.318669 +v -0.309715 -0.013129 0.319289 +v -0.311337 -0.011143 0.318863 +v -0.311159 -0.013137 0.319493 +v -0.312758 -0.011151 0.318944 +v -0.312627 -0.013144 0.319578 +v -0.305300 -0.015366 0.318140 +v -0.304971 -0.017890 0.318433 +v -0.303674 -0.017883 0.317433 +v -0.304044 -0.015359 0.317172 +v -0.306636 -0.015373 0.318876 +v -0.306350 -0.017897 0.319193 +v -0.314196 -0.011158 0.318934 +v -0.314101 -0.013152 0.319570 +v -0.315626 -0.011166 0.318858 +v -0.315557 -0.013160 0.319493 +v -0.308039 -0.015380 0.319412 +v -0.307794 -0.017904 0.319745 +v -0.309493 -0.015388 0.319772 +v -0.309285 -0.017912 0.320116 +v -0.310982 -0.015395 0.319983 +v -0.310806 -0.017920 0.320333 +v -0.312487 -0.015403 0.320072 +v -0.312337 -0.017928 0.320424 +v -0.317026 -0.011173 0.318740 +v -0.316974 -0.013167 0.319374 +v -0.313988 -0.015411 0.320064 +v -0.313858 -0.017936 0.320417 +v -0.315465 -0.015419 0.319986 +v -0.315349 -0.017944 0.320339 +v -0.316895 -0.015426 0.319867 +v -0.316789 -0.017952 0.320219 +v -0.310631 -0.020711 0.320543 +v -0.310442 -0.023971 0.320648 +v -0.308893 -0.023944 0.320426 +v -0.309091 -0.020703 0.320323 +v -0.312177 -0.020719 0.320636 +v -0.311995 -0.023998 0.320742 +v -0.316656 -0.020742 0.320430 +v -0.316484 -0.024077 0.320536 +v -0.315036 -0.024051 0.320656 +v -0.315210 -0.020735 0.320550 +v -0.313711 -0.020727 0.320629 +v -0.313533 -0.024025 0.320735 +v -0.316262 -0.028231 0.320571 +v -0.314816 -0.028153 0.320692 +v -0.325945 -0.028758 0.319426 +v -0.325129 -0.036508 0.319426 +v -0.315483 -0.035507 0.320571 +v -0.314043 -0.035358 0.320692 +v -0.313314 -0.028071 0.320770 +v -0.311777 -0.027987 0.320777 +v -0.312547 -0.035202 0.320770 +v -0.311016 -0.035044 0.320777 +v -0.310224 -0.027903 0.320684 +v -0.308676 -0.027819 0.320461 +v -0.309469 -0.034883 0.320684 +v -0.307927 -0.034723 0.320461 +v -0.307577 -0.020695 0.319946 +v -0.307369 -0.023917 0.320046 +v -0.305889 -0.023891 0.319479 +v -0.306108 -0.020687 0.319384 +v -0.307151 -0.027736 0.320079 +v -0.305670 -0.027655 0.319510 +v -0.306408 -0.034565 0.320079 +v -0.304932 -0.034412 0.319510 +v -0.304704 -0.020680 0.318608 +v -0.304473 -0.023866 0.318696 +v -0.303141 -0.023843 0.317668 +v -0.303383 -0.020673 0.317590 +v -0.304252 -0.027578 0.318725 +v -0.302918 -0.027506 0.317694 +v -0.303521 -0.034266 0.318725 +v -0.302192 -0.034128 0.317694 +v -0.307669 -0.047286 0.320684 +v -0.306136 -0.047051 0.320461 +v -0.309206 -0.047522 0.320777 +v -0.306502 -0.062637 0.320777 +v -0.304979 -0.062326 0.320684 +v -0.303459 -0.062015 0.320461 +v -0.302163 -0.020667 0.316299 +v -0.302476 -0.017877 0.316165 +v -0.301911 -0.023821 0.316366 +v -0.300804 -0.023802 0.314760 +v -0.301064 -0.020661 0.314704 +v -0.301394 -0.017871 0.314591 +v -0.304627 -0.046819 0.320079 +v -0.303161 -0.046593 0.319510 +v -0.301963 -0.061710 0.320079 +v -0.300510 -0.061413 0.319510 +v -0.301687 -0.027439 0.316388 +v -0.300580 -0.027379 0.314779 +v -0.300966 -0.034000 0.316388 +v -0.299862 -0.033886 0.314779 +v -0.301758 -0.046378 0.318725 +v -0.300437 -0.046175 0.317694 +v -0.299119 -0.061128 0.318725 +v -0.297810 -0.060861 0.317694 +v -0.302882 -0.015353 0.315941 +v -0.303382 -0.013096 0.315629 +v -0.301828 -0.015348 0.314404 +v -0.302366 -0.013090 0.314141 +v -0.303974 -0.011105 0.315226 +v -0.304659 -0.009380 0.314735 +v -0.303009 -0.011100 0.313804 +v -0.303756 -0.009376 0.313391 +v -0.300103 -0.020656 0.312773 +v -0.300443 -0.017866 0.312676 +v -0.299839 -0.023785 0.312821 +v -0.298945 -0.023769 0.310714 +v -0.299212 -0.020651 0.310673 +v -0.299559 -0.017861 0.310590 +v -0.299615 -0.027326 0.312837 +v -0.298721 -0.027277 0.310728 +v -0.298901 -0.033786 0.312837 +v -0.298011 -0.033694 0.310728 +v -0.300894 -0.015343 0.312516 +v -0.301457 -0.013086 0.312291 +v -0.300022 -0.015338 0.310452 +v -0.300600 -0.013081 0.310258 +v -0.297167 -0.045672 0.312837 +v -0.296283 -0.045536 0.310728 +v -0.298122 -0.045819 0.314779 +v -0.295515 -0.060392 0.314779 +v -0.294569 -0.060198 0.312837 +v -0.293692 -0.060019 0.310728 +v -0.302130 -0.011095 0.312002 +v -0.302915 -0.009371 0.311648 +v -0.301294 -0.011091 0.310009 +v -0.302104 -0.009367 0.309705 +v -0.305438 -0.007922 0.314154 +v -0.306309 -0.006730 0.313483 +v -0.304608 -0.007918 0.312904 +v -0.305564 -0.006726 0.312341 +v -0.303810 -0.007914 0.311231 +v -0.304817 -0.006723 0.310749 +v -0.303029 -0.007910 0.309346 +v -0.304070 -0.006719 0.308931 +v -0.305935 -0.005798 0.310203 +v -0.306624 -0.005801 0.311704 +v -0.305227 -0.005794 0.308461 +v -0.307274 -0.005805 0.312724 +v -0.308332 -0.005146 0.311874 +v -0.308837 -0.005148 0.312423 +v -0.307917 -0.005808 0.313415 +v -0.309483 -0.004753 0.310936 +v -0.310381 -0.003452 0.310199 +v -0.310616 -0.003453 0.310467 +v -0.309837 -0.004755 0.311328 +v -0.291260 -0.074580 0.312837 +v -0.290393 -0.074358 0.310728 +v -0.292196 -0.074819 0.314779 +v -0.288173 -0.089067 0.314779 +v -0.287250 -0.088781 0.312837 +v -0.286395 -0.088517 0.310728 +v -0.299219 -0.045987 0.316388 +v -0.296602 -0.060614 0.316388 +v -0.293270 -0.075095 0.316388 +v -0.294465 -0.075400 0.317694 +v -0.290410 -0.089758 0.317694 +v -0.289233 -0.089394 0.316388 +v -0.295759 -0.075732 0.318725 +v -0.297134 -0.076084 0.319510 +v -0.293043 -0.090572 0.319510 +v -0.291687 -0.090153 0.318725 +v -0.282547 -0.102769 0.312837 +v -0.281706 -0.102463 0.310728 +v -0.283455 -0.103099 0.314779 +v -0.278055 -0.116884 0.314779 +v -0.277164 -0.116509 0.312837 +v -0.276339 -0.116162 0.310728 +v -0.284498 -0.103478 0.316388 +v -0.285656 -0.103900 0.317694 +v -0.280214 -0.117791 0.317694 +v -0.279078 -0.117314 0.316388 +v -0.271113 -0.129969 0.312837 +v -0.270307 -0.129582 0.310728 +v -0.271985 -0.130386 0.314779 +v -0.265260 -0.143575 0.314779 +v -0.264410 -0.143115 0.312837 +v -0.263623 -0.142689 0.310728 +v -0.272985 -0.130866 0.316388 +v -0.274097 -0.131399 0.317694 +v -0.267319 -0.144690 0.317694 +v -0.266235 -0.144103 0.316388 +v -0.286912 -0.104356 0.318725 +v -0.288246 -0.104842 0.319510 +v -0.282754 -0.118859 0.319510 +v -0.281446 -0.118309 0.318725 +v -0.275301 -0.131976 0.318725 +v -0.276581 -0.132590 0.319510 +v -0.269743 -0.146002 0.319510 +v -0.268494 -0.145326 0.318725 +v -0.257069 -0.155917 0.312837 +v -0.256304 -0.155453 0.310728 +v -0.257895 -0.156418 0.314779 +v -0.249909 -0.168884 0.314779 +v -0.249109 -0.168343 0.312837 +v -0.248368 -0.167842 0.310728 +v -0.258844 -0.156993 0.316388 +v -0.259897 -0.157632 0.317694 +v -0.251850 -0.170195 0.317694 +v -0.250829 -0.169505 0.316388 +v -0.240548 -0.180363 0.312837 +v -0.239833 -0.179826 0.310728 +v -0.241322 -0.180943 0.314779 +v -0.232153 -0.192566 0.314779 +v -0.231409 -0.191949 0.312837 +v -0.230720 -0.191378 0.310728 +v -0.242209 -0.181608 0.316388 +v -0.243195 -0.182347 0.317694 +v -0.233955 -0.194061 0.317694 +v -0.233006 -0.193274 0.316388 +v -0.261040 -0.158325 0.318725 +v -0.262254 -0.159061 0.319510 +v -0.254133 -0.171738 0.319510 +v -0.252957 -0.170943 0.318725 +v -0.244264 -0.183149 0.318725 +v -0.245400 -0.184001 0.319510 +v -0.236076 -0.195820 0.319510 +v -0.234984 -0.194914 0.318725 +v -0.221711 -0.203072 0.312837 +v -0.221052 -0.202468 0.310728 +v -0.222424 -0.203725 0.314779 +v -0.214210 -0.212554 0.314779 +v -0.213531 -0.211868 0.312837 +v -0.212901 -0.211232 0.310728 +v -0.223242 -0.204474 0.316388 +v -0.224151 -0.205307 0.317694 +v -0.215858 -0.214219 0.317694 +v -0.214991 -0.213343 0.316388 +v -0.208941 -0.216470 0.312837 +v -0.208344 -0.215804 0.310728 +v -0.209587 -0.217189 0.314779 +v -0.206939 -0.219604 0.314760 +v -0.206321 -0.218862 0.312821 +v -0.205749 -0.218175 0.310714 +v -0.204047 -0.221028 0.312773 +v -0.202085 -0.223040 0.312676 +v -0.201528 -0.222354 0.310590 +v -0.203485 -0.220336 0.310673 +v -0.204653 -0.221774 0.314704 +v -0.202684 -0.223778 0.314591 +v -0.210327 -0.218015 0.316388 +v -0.211150 -0.218933 0.317694 +v -0.208434 -0.221400 0.317668 +v -0.207647 -0.220455 0.316366 +v -0.205346 -0.222627 0.316299 +v -0.203367 -0.224618 0.316165 +v -0.206115 -0.223574 0.317590 +v -0.204122 -0.225548 0.317433 +v -0.200400 -0.224972 0.312516 +v -0.198993 -0.226824 0.312291 +v -0.198453 -0.226159 0.310258 +v -0.199850 -0.224294 0.310452 +v -0.200989 -0.225697 0.314404 +v -0.199567 -0.227530 0.314141 +v -0.212042 -0.219927 0.318725 +v -0.212990 -0.220984 0.319510 +v -0.210193 -0.223513 0.319479 +v -0.209287 -0.222424 0.318696 +v -0.216798 -0.215169 0.318725 +v -0.217796 -0.216178 0.319510 +v -0.197863 -0.228596 0.312002 +v -0.197010 -0.230287 0.311648 +v -0.196499 -0.229657 0.309705 +v -0.197336 -0.227946 0.310009 +v -0.198417 -0.229278 0.313804 +v -0.197541 -0.230940 0.313391 +v -0.201654 -0.226515 0.315941 +v -0.200206 -0.228318 0.315629 +v -0.202386 -0.227418 0.317172 +v -0.200907 -0.229181 0.316807 +v -0.206947 -0.224600 0.318608 +v -0.204939 -0.226555 0.318433 +v -0.207832 -0.225690 0.319384 +v -0.205808 -0.227625 0.319193 +v -0.196435 -0.231898 0.311231 +v -0.196137 -0.233429 0.310749 +v -0.195666 -0.232849 0.308931 +v -0.195942 -0.231292 0.309346 +v -0.196938 -0.232517 0.312904 +v -0.196607 -0.234008 0.312341 +v -0.199025 -0.230027 0.315226 +v -0.198110 -0.231641 0.314735 +v -0.199685 -0.230839 0.316337 +v -0.198720 -0.232392 0.315763 +v -0.196116 -0.234880 0.310203 +v -0.195670 -0.234330 0.308461 +v -0.196550 -0.235414 0.311704 +v -0.197461 -0.233161 0.314154 +v -0.197077 -0.234587 0.313483 +v -0.198011 -0.233839 0.315085 +v -0.197560 -0.235181 0.314302 +v -0.196960 -0.235919 0.312724 +v -0.197109 -0.237156 0.311874 +v -0.197365 -0.236418 0.313415 +v -0.197427 -0.237549 0.312423 +v -0.197523 -0.238300 0.310936 +v -0.196911 -0.239939 0.310199 +v -0.197746 -0.238574 0.311328 +v -0.197058 -0.240122 0.310467 +v -0.198596 -0.234560 0.315801 +v -0.198067 -0.235806 0.314924 +v -0.199372 -0.233195 0.316561 +v -0.200069 -0.234054 0.317165 +v -0.199223 -0.235332 0.316340 +v -0.198614 -0.236480 0.315389 +v -0.200394 -0.231712 0.317205 +v -0.201662 -0.230112 0.317731 +v -0.202467 -0.231102 0.318433 +v -0.201150 -0.232644 0.317862 +v -0.199901 -0.236166 0.316740 +v -0.199213 -0.237218 0.315739 +v -0.200813 -0.234971 0.317608 +v -0.201602 -0.235942 0.317911 +v -0.200628 -0.237062 0.317016 +v -0.199870 -0.238027 0.315982 +v -0.201952 -0.233631 0.318343 +v -0.203315 -0.232147 0.318944 +v -0.204198 -0.233235 0.319289 +v -0.202792 -0.234666 0.318669 +v -0.198752 -0.238125 0.314603 +v -0.198515 -0.238889 0.313334 +v -0.198102 -0.238380 0.313107 +v -0.198240 -0.237495 0.314312 +v -0.199328 -0.238835 0.314811 +v -0.199002 -0.239488 0.313502 +v -0.199977 -0.239634 0.314941 +v -0.199574 -0.240193 0.313610 +v -0.200587 -0.238910 0.316131 +v -0.201355 -0.239856 0.316194 +v -0.200689 -0.240511 0.314996 +v -0.200224 -0.240993 0.313656 +v -0.201406 -0.238020 0.317182 +v -0.202432 -0.236964 0.318092 +v -0.203292 -0.238023 0.318168 +v -0.202223 -0.239026 0.317252 +v -0.201454 -0.241454 0.314980 +v -0.202163 -0.240851 0.316180 +v -0.202994 -0.241874 0.316107 +v -0.202253 -0.242438 0.314908 +v -0.200941 -0.241877 0.313638 +v -0.201706 -0.242819 0.313569 +v -0.203667 -0.235743 0.318863 +v -0.205109 -0.234356 0.319493 +v -0.206034 -0.235496 0.319578 +v -0.204563 -0.236847 0.318944 +v -0.203069 -0.240068 0.317239 +v -0.204170 -0.239105 0.318157 +v -0.205052 -0.240191 0.318082 +v -0.203927 -0.241125 0.317165 +v -0.205469 -0.237963 0.318934 +v -0.206963 -0.236640 0.319570 +v -0.207881 -0.237770 0.319493 +v -0.206370 -0.239073 0.318858 +v -0.206759 -0.232803 0.319983 +v -0.208617 -0.231085 0.320333 +v -0.209582 -0.232273 0.320424 +v -0.207708 -0.233972 0.320072 +v -0.205820 -0.231647 0.319772 +v -0.207659 -0.229904 0.320116 +v -0.208654 -0.235137 0.320064 +v -0.210541 -0.233454 0.320417 +v -0.211481 -0.234612 0.320339 +v -0.209585 -0.236283 0.319986 +v -0.207253 -0.240160 0.318740 +v -0.205921 -0.241261 0.317966 +v -0.208774 -0.238871 0.319374 +v -0.214880 -0.246391 0.318231 +v -0.213351 -0.247671 0.317598 +v -0.212011 -0.248761 0.316825 +v -0.204904 -0.230519 0.319412 +v -0.206718 -0.228746 0.319745 +v -0.204020 -0.229430 0.318876 +v -0.204780 -0.242175 0.317050 +v -0.203829 -0.242902 0.315994 +v -0.210859 -0.249663 0.315911 +v -0.209896 -0.250374 0.314857 +v -0.203068 -0.243441 0.314797 +v -0.202497 -0.243793 0.313459 +v -0.209121 -0.250896 0.313662 +v -0.208535 -0.251229 0.312326 +v -0.210486 -0.237394 0.319867 +v -0.212389 -0.235730 0.320219 +v -0.218505 -0.243262 0.319074 +v -0.216598 -0.244921 0.318723 +v -0.229902 -0.268055 0.314449 +v -0.228555 -0.269138 0.313677 +v -0.231437 -0.266782 0.315080 +v -0.252660 -0.292920 0.310835 +v -0.251121 -0.294188 0.310204 +v -0.249768 -0.295263 0.309433 +v -0.233159 -0.265317 0.315572 +v -0.235068 -0.263662 0.315922 +v -0.256298 -0.289808 0.311676 +v -0.254386 -0.291460 0.311325 +v -0.227396 -0.270029 0.312764 +v -0.226423 -0.270730 0.311711 +v -0.248601 -0.296146 0.308522 +v -0.247621 -0.296837 0.307471 +v -0.202117 -0.243957 0.311981 +v -0.200871 -0.244835 0.310819 +v -0.200127 -0.243915 0.310924 +v -0.201351 -0.243014 0.312088 +v -0.208138 -0.251372 0.310850 +v -0.206864 -0.252245 0.309691 +v -0.200625 -0.242119 0.312156 +v -0.199432 -0.243056 0.310991 +v -0.198810 -0.242287 0.311013 +v -0.199960 -0.241301 0.312176 +v -0.225638 -0.271239 0.310518 +v -0.225041 -0.271558 0.309185 +v -0.246827 -0.297336 0.306279 +v -0.246220 -0.297642 0.304948 +v -0.266897 -0.322053 0.301859 +v -0.266278 -0.322346 0.300529 +v -0.267700 -0.321566 0.303048 +v -0.286689 -0.344952 0.298457 +v -0.285875 -0.345426 0.297271 +v -0.285245 -0.345705 0.295945 +v -0.268689 -0.320886 0.304097 +v -0.269863 -0.320012 0.305006 +v -0.288868 -0.343419 0.300412 +v -0.287686 -0.344283 0.299505 +v -0.271222 -0.318944 0.305776 +v -0.272766 -0.317683 0.306405 +v -0.291784 -0.341104 0.301808 +v -0.290234 -0.342359 0.301180 +v -0.305623 -0.366374 0.294760 +v -0.304616 -0.367032 0.293716 +v -0.306813 -0.365520 0.295665 +v -0.323727 -0.386351 0.290782 +v -0.322529 -0.387195 0.289879 +v -0.321511 -0.387840 0.288838 +v -0.274496 -0.316228 0.306895 +v -0.276410 -0.314579 0.307245 +v -0.295435 -0.338010 0.302646 +v -0.293517 -0.339655 0.302297 +v -0.308186 -0.364469 0.296431 +v -0.309742 -0.363222 0.297058 +v -0.326669 -0.384069 0.292171 +v -0.325107 -0.385309 0.291546 +v -0.311480 -0.361777 0.297545 +v -0.313401 -0.360136 0.297894 +v -0.330336 -0.380994 0.293004 +v -0.328412 -0.382631 0.292657 +v -0.278511 -0.312737 0.307455 +v -0.281934 -0.309687 0.307560 +v -0.301237 -0.332874 0.302960 +v -0.297537 -0.336170 0.302855 +v -0.258396 -0.287964 0.311886 +v -0.261527 -0.285175 0.311991 +v -0.315505 -0.358299 0.298102 +v -0.319466 -0.354771 0.298207 +v -0.336650 -0.375412 0.293316 +v -0.332442 -0.379159 0.293212 +v -0.344342 -0.402251 0.287646 +v -0.342594 -0.403683 0.287161 +v -0.346270 -0.400618 0.287992 +v -0.361232 -0.419045 0.282873 +v -0.359300 -0.420673 0.282528 +v -0.357547 -0.422098 0.282046 +v -0.237165 -0.261816 0.316133 +v -0.239988 -0.259302 0.316238 +v -0.220600 -0.241414 0.319285 +v -0.223181 -0.239114 0.319390 +v -0.341026 -0.404915 0.286538 +v -0.339639 -0.405947 0.285777 +v -0.355972 -0.423322 0.281425 +v -0.354576 -0.424344 0.280667 +v -0.214481 -0.233879 0.320430 +v -0.216973 -0.231657 0.320536 +v -0.213570 -0.232756 0.320550 +v -0.216046 -0.230544 0.320656 +v -0.287818 -0.304417 0.307595 +v -0.307948 -0.326863 0.302995 +v -0.266536 -0.280689 0.312026 +v -0.274207 -0.273183 0.312026 +v -0.296627 -0.295839 0.307595 +v -0.317835 -0.317270 0.302995 +v -0.212625 -0.231592 0.320629 +v -0.215085 -0.229388 0.320735 +v -0.211658 -0.230401 0.320636 +v -0.214100 -0.228206 0.320742 +v -0.244074 -0.255643 0.316273 +v -0.226547 -0.236100 0.319426 +v -0.232078 -0.230611 0.319426 +v -0.250543 -0.249270 0.316273 +v -0.220072 -0.228881 0.320571 +v -0.219106 -0.227803 0.320692 +v -0.224239 -0.222688 0.320692 +v -0.225257 -0.223718 0.320571 +v -0.210683 -0.229201 0.320543 +v -0.213106 -0.227012 0.320648 +v -0.209712 -0.228005 0.320323 +v -0.212115 -0.225822 0.320426 +v -0.218102 -0.226683 0.320770 +v -0.217074 -0.225537 0.320777 +v -0.222098 -0.220525 0.320777 +v -0.223181 -0.221620 0.320770 +v -0.234005 -0.214333 0.320571 +v -0.241156 -0.220882 0.319426 +v -0.232937 -0.213354 0.320692 +v -0.243126 -0.201668 0.320692 +v -0.244241 -0.202593 0.320571 +v -0.251704 -0.208784 0.319426 +v -0.231829 -0.212339 0.320770 +v -0.230694 -0.211299 0.320777 +v -0.240784 -0.199725 0.320777 +v -0.241969 -0.200708 0.320770 +v -0.216036 -0.224380 0.320684 +v -0.215000 -0.223225 0.320461 +v -0.219914 -0.218318 0.320461 +v -0.221005 -0.219420 0.320684 +v -0.260514 -0.238613 0.316273 +v -0.285324 -0.261337 0.312026 +v -0.271909 -0.225543 0.316273 +v -0.297803 -0.247022 0.312026 +v -0.229547 -0.210249 0.320684 +v -0.228403 -0.209201 0.320461 +v -0.238393 -0.197742 0.320461 +v -0.239587 -0.198732 0.320684 +v -0.227277 -0.208170 0.320079 +v -0.226183 -0.207168 0.319510 +v -0.237218 -0.196767 0.320079 +v -0.218839 -0.217232 0.320079 +v -0.208758 -0.226830 0.319946 +v -0.211140 -0.224650 0.320046 +v -0.203178 -0.228392 0.318140 +v -0.213980 -0.222088 0.320079 +v -0.225136 -0.206209 0.318725 +v -0.246587 -0.184890 0.320079 +v -0.247809 -0.185806 0.320461 +v -0.255362 -0.172568 0.320079 +v -0.256627 -0.173423 0.320461 +v -0.249049 -0.186737 0.320684 +v -0.250294 -0.187670 0.320777 +v -0.257912 -0.174292 0.320684 +v -0.259201 -0.175163 0.320777 +v -0.263522 -0.159830 0.320079 +v -0.264827 -0.160622 0.320461 +v -0.271047 -0.146708 0.320079 +v -0.272390 -0.147434 0.320461 +v -0.251525 -0.188593 0.320770 +v -0.252728 -0.189495 0.320692 +v -0.260476 -0.176024 0.320770 +v -0.261722 -0.176866 0.320692 +v -0.266154 -0.161427 0.320684 +v -0.267483 -0.162233 0.320777 +v -0.273754 -0.148173 0.320684 +v -0.275122 -0.148913 0.320777 +v -0.277919 -0.133231 0.320079 +v -0.279296 -0.133891 0.320461 +v -0.284122 -0.119434 0.320079 +v -0.285529 -0.120026 0.320461 +v -0.253887 -0.190364 0.320571 +v -0.261645 -0.196181 0.319426 +v -0.262922 -0.177677 0.320571 +v -0.270957 -0.183107 0.319426 +v -0.268799 -0.163031 0.320770 +v -0.270085 -0.163811 0.320692 +v -0.276475 -0.149646 0.320770 +v -0.277798 -0.150361 0.320692 +v -0.280695 -0.134562 0.320684 +v -0.282097 -0.135234 0.320777 +v -0.286959 -0.120627 0.320684 +v -0.288393 -0.121229 0.320777 +v -0.289640 -0.105349 0.320079 +v -0.291075 -0.105871 0.320461 +v -0.294460 -0.091010 0.320079 +v -0.295919 -0.091461 0.320461 +v -0.298571 -0.076452 0.320079 +v -0.300050 -0.076831 0.320461 +v -0.292532 -0.106401 0.320684 +v -0.293994 -0.106932 0.320777 +v -0.297401 -0.091919 0.320684 +v -0.298887 -0.092378 0.320777 +v -0.283485 -0.135899 0.320770 +v -0.284841 -0.136549 0.320692 +v -0.289812 -0.121826 0.320770 +v -0.291198 -0.122408 0.320692 +v -0.301553 -0.077215 0.320684 +v -0.303059 -0.077601 0.320777 +v -0.295440 -0.107459 0.320770 +v -0.296853 -0.107973 0.320692 +v -0.300357 -0.092833 0.320770 +v -0.301794 -0.093277 0.320692 +v -0.304550 -0.077983 0.320770 +v -0.306007 -0.078356 0.320692 +v -0.308010 -0.062945 0.320770 +v -0.309484 -0.063247 0.320692 +v -0.310728 -0.047756 0.320770 +v -0.312214 -0.047985 0.320692 +v -0.298214 -0.108468 0.320571 +v -0.307327 -0.111782 0.319426 +v -0.301473 -0.126727 0.319426 +v -0.292533 -0.122970 0.320571 +v -0.303178 -0.093704 0.320571 +v -0.312442 -0.096568 0.319426 +v -0.313645 -0.048205 0.320571 +v -0.323230 -0.049678 0.319426 +v -0.320403 -0.065478 0.319426 +v -0.310902 -0.063536 0.320571 +v -0.307410 -0.078715 0.320571 +v -0.316804 -0.081121 0.319426 +v -0.349176 -0.053665 0.316273 +v -0.382429 -0.058776 0.312026 +v -0.379084 -0.077470 0.312026 +v -0.346123 -0.070734 0.316273 +v -0.351239 -0.039218 0.316273 +v -0.384703 -0.042691 0.312026 +v -0.342235 -0.087632 0.316273 +v -0.374826 -0.095978 0.312026 +v -0.369665 -0.114254 0.312026 +v -0.337523 -0.104319 0.316273 +v -0.331997 -0.120755 0.316273 +v -0.363614 -0.132255 0.312026 +v -0.356687 -0.149937 0.312026 +v -0.325672 -0.136900 0.316273 +v -0.286147 -0.137175 0.320571 +v -0.294891 -0.141367 0.319426 +v -0.287600 -0.155667 0.319426 +v -0.279071 -0.151051 0.320571 +v -0.318562 -0.152715 0.316273 +v -0.348900 -0.167258 0.312026 +v -0.340273 -0.184177 0.312026 +v -0.310686 -0.168162 0.316273 +v -0.271323 -0.164562 0.320571 +v -0.279615 -0.169591 0.319426 +v -0.302060 -0.183204 0.316273 +v -0.330825 -0.200651 0.312026 +v -0.320582 -0.216642 0.312026 +v -0.292707 -0.197805 0.316273 +v -0.282648 -0.211929 0.316273 +v -0.309565 -0.232112 0.312026 +v -0.358078 -0.217181 0.307595 +v -0.383858 -0.232816 0.302995 +v -0.371972 -0.251371 0.302995 +v -0.346991 -0.234489 0.307595 +v -0.368304 -0.199349 0.307595 +v -0.394819 -0.213701 0.302995 +v -0.308828 -0.282865 0.307595 +v -0.331062 -0.303230 0.302995 +v -0.322336 -0.267371 0.307595 +v -0.345542 -0.286620 0.302995 +v -0.335067 -0.251233 0.307595 +v -0.359189 -0.269320 0.302995 +v -0.326958 -0.348060 0.298242 +v -0.344879 -0.368041 0.293351 +v -0.337862 -0.337508 0.298242 +v -0.356742 -0.356586 0.293351 +v -0.352058 -0.322461 0.298242 +v -0.371851 -0.340589 0.293351 +v -0.367457 -0.304798 0.298242 +v -0.388115 -0.321934 0.293351 +v -0.381969 -0.286400 0.298242 +v -0.403444 -0.302502 0.293351 +v -0.395563 -0.267313 0.298242 +v -0.417801 -0.282341 0.293351 +v -0.377641 -0.181037 0.307595 +v -0.404829 -0.194070 0.302995 +v -0.386070 -0.162289 0.307595 +v -0.413864 -0.173973 0.302995 +v -0.408202 -0.247582 0.298242 +v -0.431151 -0.261501 0.293351 +v -0.419859 -0.227254 0.298242 +v -0.443464 -0.240030 0.293351 +v -0.393568 -0.143150 0.307595 +v -0.421902 -0.153456 0.302995 +v -0.400118 -0.123666 0.307595 +v -0.428924 -0.132569 0.302995 +v -0.430504 -0.206379 0.298242 +v -0.454706 -0.217981 0.293351 +v -0.440112 -0.185006 0.298242 +v -0.464855 -0.195407 0.293351 +v -0.405704 -0.103884 0.307595 +v -0.434912 -0.111363 0.302995 +v -0.410313 -0.083852 0.307595 +v -0.439853 -0.089889 0.302995 +v -0.448660 -0.163188 0.298242 +v -0.473882 -0.172362 0.293351 +v -0.456127 -0.140977 0.298242 +v -0.481769 -0.148903 0.293351 +v -0.452744 -0.274597 0.288338 +v -0.473018 -0.286894 0.283218 +v -0.458371 -0.309759 0.283218 +v -0.438725 -0.296481 0.288338 +v -0.465672 -0.252051 0.288338 +v -0.486526 -0.263339 0.283218 +v -0.477478 -0.228898 0.288338 +v -0.498861 -0.239149 0.283218 +v -0.488135 -0.205194 0.288338 +v -0.509995 -0.214383 0.283218 +v -0.423649 -0.317651 0.288338 +v -0.442621 -0.331877 0.283218 +v -0.425804 -0.353195 0.283218 +v -0.407552 -0.338056 0.288338 +v -0.462494 -0.118426 0.298242 +v -0.488495 -0.125084 0.293351 +v -0.467747 -0.095590 0.298242 +v -0.494044 -0.100964 0.293351 +v -0.390473 -0.357647 0.288338 +v -0.407960 -0.373663 0.283218 +v -0.391185 -0.391392 0.283218 +v -0.374505 -0.374537 0.288338 +v -0.413933 -0.063618 0.307595 +v -0.443733 -0.068198 0.302995 +v -0.416406 -0.045981 0.307595 +v -0.446396 -0.049093 0.302995 +v -0.352157 -0.030183 0.316273 +v -0.385750 -0.032010 0.312026 +v -0.417577 -0.033741 0.307595 +v -0.447682 -0.035378 0.302995 +v -0.471874 -0.072523 0.298242 +v -0.498403 -0.076601 0.293351 +v -0.474715 -0.052033 0.298242 +v -0.501412 -0.054803 0.293351 +v -0.476922 -0.021582 0.298103 +v -0.476652 -0.026879 0.298207 +v -0.503792 -0.021722 0.293212 +v -0.503506 -0.027349 0.293316 +v -0.476113 -0.036924 0.298242 +v -0.502913 -0.038381 0.293351 +v -0.529074 -0.021855 0.288200 +v -0.528773 -0.027791 0.288303 +v -0.528129 -0.039752 0.288338 +v -0.526531 -0.057410 0.288338 +v -0.523364 -0.080437 0.288338 +v -0.546801 -0.084039 0.283218 +v -0.542019 -0.110768 0.283218 +v -0.518787 -0.106020 0.288338 +v -0.568761 -0.087414 0.278006 +v -0.563787 -0.115217 0.278006 +v -0.512959 -0.131348 0.288338 +v -0.535931 -0.137230 0.283218 +v -0.528552 -0.163362 0.283218 +v -0.505897 -0.156360 0.288338 +v -0.557454 -0.142742 0.278006 +v -0.577573 -0.147893 0.272718 +v -0.569621 -0.176056 0.272718 +v -0.549779 -0.169923 0.278006 +v -0.596333 -0.152697 0.267369 +v -0.613776 -0.157163 0.261974 +v -0.605326 -0.187091 0.261974 +v -0.588122 -0.181774 0.267369 +v -0.497615 -0.180995 0.288338 +v -0.519899 -0.189100 0.283218 +v -0.540779 -0.196694 0.278006 +v -0.560296 -0.203793 0.272718 +v -0.549622 -0.231040 0.272718 +v -0.530477 -0.222992 0.278006 +v -0.518896 -0.248753 0.278006 +v -0.537623 -0.257731 0.272718 +v -0.524330 -0.283800 0.272718 +v -0.506065 -0.273915 0.278006 +v -0.578494 -0.210412 0.267369 +v -0.595416 -0.216567 0.261974 +v -0.584073 -0.245522 0.261974 +v -0.567473 -0.238544 0.267369 +v -0.555085 -0.266102 0.267369 +v -0.571321 -0.273885 0.261974 +v -0.557195 -0.301589 0.261974 +v -0.541359 -0.293018 0.267369 +v -0.492015 -0.298416 0.278006 +v -0.509772 -0.309186 0.272718 +v -0.493988 -0.333827 0.272718 +v -0.476781 -0.322199 0.278006 +v -0.526329 -0.319228 0.267369 +v -0.541725 -0.328566 0.261974 +v -0.524951 -0.354752 0.261974 +v -0.510032 -0.344670 0.267369 +v -0.460396 -0.345205 0.278006 +v -0.477013 -0.357664 0.272718 +v -0.458889 -0.380639 0.272718 +v -0.442904 -0.367380 0.278006 +v -0.492505 -0.369280 0.267369 +v -0.506911 -0.380082 0.261974 +v -0.487652 -0.404498 0.261974 +v -0.473793 -0.393002 0.267369 +v -0.424344 -0.388669 0.278006 +v -0.439659 -0.402697 0.272718 +v -0.421421 -0.421946 0.272718 +v -0.406812 -0.407184 0.278006 +v -0.453939 -0.415776 0.267369 +v -0.467217 -0.427938 0.261974 +v -0.447707 -0.448509 0.261974 +v -0.435041 -0.435710 0.267369 +v -0.520268 -0.390097 0.256549 +v -0.533406 -0.399948 0.250663 +v -0.513139 -0.425639 0.250663 +v -0.500500 -0.415156 0.256549 +v -0.538782 -0.364099 0.256549 +v -0.552388 -0.373293 0.250663 +v -0.479527 -0.439214 0.256549 +v -0.491636 -0.450305 0.250663 +v -0.471000 -0.472047 0.250663 +v -0.459449 -0.460375 0.256549 +v -0.419202 -0.450912 0.267369 +v -0.406273 -0.436496 0.272718 +v -0.431224 -0.464317 0.261974 +v -0.419445 -0.474866 0.261940 +v -0.407917 -0.461019 0.267335 +v -0.395520 -0.446127 0.272684 +v -0.555999 -0.337223 0.256549 +v -0.570039 -0.345739 0.250663 +v -0.571876 -0.309536 0.256549 +v -0.586317 -0.317352 0.250663 +v -0.392406 -0.421035 0.278006 +v -0.377572 -0.404495 0.283218 +v -0.382224 -0.430156 0.277972 +v -0.367999 -0.413070 0.283183 +v -0.586375 -0.281102 0.256549 +v -0.601182 -0.288200 0.250663 +v -0.599462 -0.251991 0.256549 +v -0.614600 -0.258355 0.250663 +v -0.361740 -0.386841 0.288338 +v -0.352818 -0.394833 0.288303 +v -0.348378 -0.398786 0.288200 +v -0.363342 -0.417215 0.283080 +v -0.377362 -0.434482 0.277869 +v -0.375249 -0.436309 0.277663 +v -0.390467 -0.450622 0.272581 +v -0.388352 -0.452446 0.272376 +v -0.402686 -0.465671 0.267233 +v -0.400568 -0.467491 0.267029 +v -0.414048 -0.479664 0.261839 +v -0.373314 -0.437932 0.277319 +v -0.371555 -0.439351 0.276839 +v -0.386412 -0.454063 0.272035 +v -0.398624 -0.469104 0.266690 +v -0.369973 -0.440566 0.276221 +v -0.368568 -0.441577 0.275466 +v -0.367340 -0.442384 0.274574 +v -0.353358 -0.425164 0.279770 +v -0.338430 -0.406779 0.284877 +v -0.337402 -0.407411 0.283839 +v -0.336554 -0.407843 0.282663 +v -0.320675 -0.388286 0.287657 +v -0.303792 -0.367493 0.292532 +v -0.303150 -0.367757 0.291209 +v -0.265845 -0.322445 0.299060 +v -0.264408 -0.323393 0.297906 +v -0.244418 -0.298677 0.302320 +v -0.245799 -0.297756 0.303476 +v -0.284800 -0.345789 0.294479 +v -0.283307 -0.346760 0.293327 +v -0.224631 -0.271685 0.307711 +v -0.223308 -0.272577 0.306553 +v -0.424581 -0.492637 0.256415 +v -0.430132 -0.487704 0.256515 +v -0.440645 -0.500332 0.250630 +v -0.434941 -0.505396 0.250531 +v -0.442370 -0.476744 0.256549 +v -0.453333 -0.488969 0.250663 +v -0.445786 -0.518753 0.243757 +v -0.451649 -0.513548 0.243855 +v -0.464809 -0.501764 0.243887 +v -0.475892 -0.514122 0.236703 +v -0.483088 -0.484264 0.243887 +v -0.494765 -0.496063 0.236703 +v -0.485676 -0.525032 0.229591 +v -0.505072 -0.506480 0.229591 +v -0.504310 -0.461914 0.243887 +v -0.516551 -0.473125 0.236703 +v -0.526368 -0.436612 0.243887 +v -0.539144 -0.447210 0.236703 +v -0.527358 -0.483024 0.229591 +v -0.536810 -0.491682 0.222589 +v -0.550424 -0.456566 0.229591 +v -0.560290 -0.464750 0.222589 +v -0.547157 -0.410258 0.243887 +v -0.560438 -0.420216 0.236703 +v -0.566629 -0.382917 0.243887 +v -0.580382 -0.392211 0.236703 +v -0.544988 -0.499171 0.215731 +v -0.551969 -0.505566 0.209055 +v -0.568825 -0.471829 0.215731 +v -0.576111 -0.477873 0.209055 +v -0.572163 -0.429008 0.229591 +v -0.582419 -0.436697 0.222589 +v -0.592524 -0.400417 0.229591 +v -0.603145 -0.407594 0.222589 +v -0.584735 -0.354652 0.243887 +v -0.598927 -0.363260 0.236703 +v -0.601433 -0.325533 0.243887 +v -0.616031 -0.333435 0.236703 +v -0.557833 -0.510936 0.202597 +v -0.562659 -0.515357 0.196391 +v -0.582232 -0.482951 0.202597 +v -0.587270 -0.487129 0.196391 +v -0.591291 -0.443350 0.215731 +v -0.598865 -0.449029 0.209055 +v -0.612333 -0.413803 0.215731 +v -0.620177 -0.419104 0.209055 +v -0.611458 -0.370860 0.229591 +v -0.622418 -0.377508 0.222589 +v -0.628919 -0.340411 0.229591 +v -0.640192 -0.346512 0.222589 +v -0.566527 -0.518901 0.190475 +v -0.591306 -0.490478 0.190476 +v -0.605228 -0.453800 0.202597 +v -0.610464 -0.457726 0.196391 +v -0.626766 -0.423556 0.202597 +v -0.614660 -0.460872 0.190476 +v -0.646793 -0.392292 0.202597 +v -0.639994 -0.388168 0.209055 +v -0.631899 -0.383258 0.215731 +v -0.649944 -0.351791 0.215731 +v -0.666422 -0.319476 0.215731 +v -0.656423 -0.314682 0.222589 +v -0.672060 -0.244444 0.229591 +v -0.658288 -0.239435 0.236703 +v -0.659257 -0.277127 0.229591 +v -0.645747 -0.271448 0.236703 +v -0.644864 -0.309141 0.229591 +v -0.631649 -0.302806 0.236703 +v -0.642688 -0.233761 0.243887 +v -0.626536 -0.227886 0.250663 +v -0.630444 -0.265015 0.243887 +v -0.629948 -0.161304 0.256549 +v -0.621275 -0.192020 0.256549 +v -0.616681 -0.295630 0.243887 +v -0.611104 -0.222273 0.256549 +v -0.197785 -0.236935 0.313930 +v -0.197749 -0.237945 0.312819 +v -0.197959 -0.238837 0.311591 +v -0.197186 -0.240280 0.310626 +v -0.198200 -0.239133 0.311775 +v -0.197337 -0.240467 0.310729 +v -0.198504 -0.239508 0.311932 +v -0.197556 -0.240737 0.310830 +v -0.198891 -0.239985 0.312055 +v -0.197865 -0.241118 0.310918 +v -0.199379 -0.240586 0.312139 +v -0.198285 -0.241638 0.310984 +v -0.310175 -0.004757 0.311591 +v -0.309347 -0.005151 0.312819 +v -0.310819 -0.003454 0.310626 +v -0.308582 -0.005812 0.313930 +v -0.486711 -0.594461 0.176068 +v -0.484197 -0.595141 0.175583 +v -0.487718 -0.595703 0.172222 +v -0.485168 -0.596343 0.171870 +v -0.488568 -0.596750 0.162776 +v -0.485979 -0.597345 0.162729 +v -0.485912 -0.597262 0.165551 +v -0.488497 -0.596662 0.165666 +v -0.489800 -0.597635 0.162836 +v -0.489794 -0.597626 0.160000 +v -0.488559 -0.596739 0.160000 +v -0.485969 -0.597332 0.160000 +v -0.491141 -0.598232 0.162890 +v -0.492592 -0.598541 0.162939 +v -0.492587 -0.598535 0.160000 +v -0.491136 -0.598224 0.160000 +v -0.494150 -0.598563 0.162982 +v -0.495819 -0.598298 0.163019 +v -0.495815 -0.598295 0.160000 +v -0.494146 -0.598559 0.160000 +v -0.497597 -0.597746 0.163050 +v -0.499482 -0.596906 0.163076 +v -0.499481 -0.596905 0.160000 +v -0.497594 -0.597744 0.160000 +v -0.501478 -0.595779 0.163096 +v -0.503583 -0.594365 0.163111 +v -0.503583 -0.594364 0.160000 +v -0.501478 -0.595778 0.160000 +v -0.505798 -0.592663 0.163119 +v -0.512573 -0.586730 0.163123 +v -0.512572 -0.586730 0.160000 +v -0.505798 -0.592663 0.160000 +v -0.528356 -0.572620 0.163125 +v -0.528356 -0.572620 0.160000 +v -0.550037 -0.551916 0.163125 +v -0.550037 -0.551916 0.160000 +v -0.574497 -0.526200 0.163125 +v -0.574497 -0.526200 0.160000 +v -0.599625 -0.497378 0.163125 +v -0.599625 -0.497378 0.160000 +v -0.623308 -0.467356 0.163125 +v -0.623308 -0.467356 0.160000 +v -0.645489 -0.436209 0.163125 +v -0.645489 -0.436209 0.160000 +v -0.666115 -0.404011 0.163125 +v -0.666115 -0.404011 0.160000 +v -0.685137 -0.370840 0.163125 +v -0.685137 -0.370840 0.160000 +v -0.702508 -0.336774 0.163125 +v -0.702508 -0.336774 0.160000 +v -0.718187 -0.301898 0.163125 +v -0.718187 -0.301899 0.160000 +v -0.732134 -0.266295 0.163125 +v -0.732134 -0.266295 0.160000 +v -0.744320 -0.230050 0.163125 +v -0.744320 -0.230050 0.160000 +v -0.754711 -0.193251 0.163125 +v -0.754711 -0.193251 0.160000 +v -0.763284 -0.155986 0.163125 +v -0.763284 -0.155986 0.160000 +v -0.770018 -0.118346 0.163125 +v -0.770018 -0.118346 0.160000 +v -0.774749 -0.083170 0.163125 +v -0.774749 -0.083170 0.160000 +v -0.777312 -0.053302 0.163125 +v -0.777312 -0.053302 0.160000 +v -0.778426 -0.032160 0.163123 +v -0.778426 -0.032160 0.160000 +v -0.778810 -0.023163 0.163119 +v -0.778750 -0.020371 0.163111 +v -0.778749 -0.020371 0.160000 +v -0.778810 -0.023163 0.160000 +v -0.778534 -0.017844 0.163096 +v -0.778163 -0.015582 0.163076 +v -0.778161 -0.015582 0.160000 +v -0.778533 -0.017844 0.160000 +v -0.777636 -0.013585 0.163051 +v -0.776953 -0.011854 0.163019 +v -0.776949 -0.011854 0.160000 +v -0.777633 -0.013585 0.160000 +v -0.776115 -0.010387 0.162982 +v -0.775122 -0.009185 0.162939 +v -0.775114 -0.009185 0.160000 +v -0.776110 -0.010387 0.160000 +v -0.773972 -0.008249 0.162890 +v -0.772667 -0.007577 0.162836 +v -0.772655 -0.007577 0.160000 +v -0.773963 -0.008249 0.160000 +v -0.773840 -0.008248 0.165944 +v -0.772543 -0.007577 0.165812 +v -0.771206 -0.007171 0.162776 +v -0.770053 -0.005283 0.162729 +v -0.770037 -0.005283 0.160000 +v -0.771192 -0.007171 0.160000 +v -0.771093 -0.007170 0.165666 +v -0.769947 -0.005283 0.165551 +v -0.770722 -0.007168 0.168785 +v -0.772149 -0.007575 0.169068 +v -0.769596 -0.005281 0.168562 +v -0.773423 -0.008246 0.169324 +v -0.302691 -0.367824 0.289747 +v -0.301146 -0.368816 0.288598 +v -0.488264 -0.596375 0.168785 +v -0.485691 -0.596989 0.168562 +v -0.774810 -0.017824 0.179363 +v 0.162320 -0.756243 0.169324 +v 0.162694 -0.754852 0.169068 +v 0.162499 -0.753964 0.172670 +v 0.162116 -0.755316 0.173076 +v 0.161654 -0.757543 0.169553 +v 0.161442 -0.756582 0.173439 +v 0.161748 -0.757969 0.166062 +v 0.162410 -0.756650 0.165944 +v 0.162779 -0.755237 0.165812 +v 0.063324 -0.301973 0.308918 +v 0.065019 -0.302660 0.308388 +v 0.064893 -0.302095 0.306899 +v 0.063191 -0.301371 0.307355 +v 0.062646 -0.300752 0.309592 +v 0.062503 -0.300103 0.307936 +v 0.062780 -0.301361 0.310991 +v 0.063442 -0.302513 0.310203 +v 0.065126 -0.303145 0.309585 +v -0.474642 -0.613387 0.169756 +v -0.474980 -0.611880 0.169553 +v -0.475250 -0.612224 0.166062 +v -0.474924 -0.613744 0.166166 +v -0.474003 -0.614939 0.169931 +v -0.474294 -0.615308 0.166257 +v -0.473359 -0.614120 0.174037 +v -0.474015 -0.612589 0.173759 +v -0.474371 -0.611107 0.173439 +v -0.190759 -0.247476 0.312139 +v -0.190333 -0.247580 0.313610 +v -0.189771 -0.246866 0.313502 +v -0.190280 -0.246868 0.312055 +v -0.192027 -0.246641 0.310984 +v -0.191612 -0.246117 0.310918 +v -0.192544 -0.247296 0.311013 +v -0.191328 -0.248200 0.312176 +v -0.190970 -0.248390 0.313656 +v -0.188333 -0.244394 0.308918 +v -0.187192 -0.243589 0.309592 +v -0.186781 -0.243066 0.307936 +v -0.187952 -0.243909 0.307355 +v -0.190158 -0.244275 0.308388 +v -0.189799 -0.243821 0.306899 +v -0.190466 -0.244665 0.309585 +v -0.188675 -0.244828 0.310203 +v -0.187578 -0.244079 0.310991 +v 0.160695 -0.758753 0.169756 +v 0.159445 -0.759873 0.169931 +v 0.159546 -0.760331 0.166257 +v 0.160793 -0.759197 0.166166 +v 0.160477 -0.757762 0.173759 +v 0.159221 -0.758855 0.174037 +v 0.157902 -0.760903 0.170079 +v 0.156067 -0.761842 0.170200 +v 0.156173 -0.762323 0.166395 +v 0.158006 -0.761374 0.166333 +v 0.157673 -0.759863 0.174271 +v 0.155834 -0.760784 0.174463 +v 0.160083 -0.755974 0.178186 +v 0.158818 -0.757027 0.178568 +v 0.161059 -0.754842 0.177745 +v 0.160474 -0.752189 0.182484 +v 0.159486 -0.753265 0.183038 +v 0.158210 -0.754268 0.183518 +v 0.161744 -0.753629 0.177245 +v 0.162140 -0.752337 0.176686 +v 0.161586 -0.749822 0.181154 +v 0.161174 -0.751042 0.181856 +v 0.153940 -0.762691 0.170295 +v 0.151521 -0.763450 0.170362 +v 0.151630 -0.763945 0.166479 +v 0.154048 -0.763180 0.166444 +v 0.153704 -0.761619 0.174613 +v 0.151283 -0.762367 0.174720 +v 0.160375 -0.747416 0.186936 +v 0.159660 -0.748494 0.187670 +v 0.160804 -0.746274 0.186116 +v 0.159767 -0.741567 0.191516 +v 0.159321 -0.742630 0.192433 +v 0.158590 -0.743637 0.193254 +v 0.160947 -0.745068 0.185209 +v 0.163062 -0.743657 0.184497 +v 0.162051 -0.739109 0.189706 +v 0.159930 -0.740449 0.190502 +v 0.161710 -0.748530 0.180378 +v 0.163816 -0.747050 0.179769 +v 0.158629 -0.734546 0.196200 +v 0.158448 -0.735579 0.197301 +v 0.160754 -0.733275 0.195335 +v 0.159145 -0.726040 0.201327 +v 0.157020 -0.727244 0.202247 +v 0.156821 -0.728195 0.203419 +v 0.155079 -0.718432 0.208589 +v 0.154863 -0.719307 0.209818 +v 0.157200 -0.717292 0.207623 +v 0.154895 -0.706923 0.214173 +v 0.152781 -0.708003 0.215176 +v 0.152550 -0.708806 0.216452 +v 0.157985 -0.736564 0.198297 +v 0.157238 -0.737502 0.199189 +v 0.156342 -0.729107 0.204479 +v 0.155581 -0.729979 0.205428 +v 0.158658 -0.749507 0.188317 +v 0.157370 -0.750457 0.188878 +v 0.157575 -0.744588 0.193978 +v 0.156274 -0.745483 0.194605 +v 0.157262 -0.758000 0.178892 +v 0.155417 -0.758893 0.179157 +v 0.156645 -0.755198 0.183925 +v 0.154793 -0.756057 0.184257 +v 0.153283 -0.759706 0.179363 +v 0.150858 -0.760439 0.179510 +v 0.152652 -0.756843 0.184516 +v 0.150223 -0.757557 0.184701 +v 0.155796 -0.751343 0.189353 +v 0.153935 -0.752164 0.189742 +v 0.154690 -0.746323 0.195136 +v 0.152821 -0.747107 0.195571 +v 0.156209 -0.738392 0.199975 +v 0.154898 -0.739234 0.200657 +v 0.154539 -0.730810 0.206265 +v 0.153216 -0.731603 0.206991 +v 0.148810 -0.764119 0.170403 +v 0.139957 -0.765723 0.170423 +v 0.140061 -0.766224 0.166510 +v 0.148920 -0.764617 0.166500 +v 0.148570 -0.763030 0.174784 +v 0.139730 -0.764629 0.174816 +v 0.148143 -0.761092 0.179598 +v 0.139326 -0.762682 0.179642 +v 0.147506 -0.758199 0.184811 +v 0.138724 -0.759777 0.184867 +v 0.151788 -0.752922 0.190044 +v 0.149355 -0.753615 0.190260 +v 0.150667 -0.747835 0.195909 +v 0.148229 -0.748508 0.196150 +v 0.119114 -0.769288 0.170430 +v 0.119199 -0.769793 0.166514 +v 0.118927 -0.768186 0.174826 +v 0.089315 -0.772252 0.174826 +v 0.089447 -0.773362 0.170430 +v 0.089508 -0.773870 0.166514 +v 0.153303 -0.740029 0.201233 +v 0.151426 -0.740777 0.201705 +v 0.151612 -0.732355 0.207604 +v 0.149728 -0.733067 0.208107 +v 0.154368 -0.720149 0.210931 +v 0.153594 -0.720959 0.211926 +v 0.152040 -0.709584 0.217606 +v 0.151253 -0.710336 0.218639 +v 0.150103 -0.695850 0.221957 +v 0.152206 -0.694828 0.220925 +v 0.149109 -0.680898 0.227835 +v 0.147023 -0.681868 0.228891 +v 0.149858 -0.696589 0.223272 +v 0.146764 -0.682546 0.230236 +v 0.143515 -0.665948 0.235933 +v 0.143245 -0.666573 0.237302 +v 0.145581 -0.665027 0.234858 +v 0.141915 -0.648539 0.241506 +v 0.139873 -0.649416 0.242597 +v 0.139592 -0.649994 0.243985 +v 0.149335 -0.697307 0.224460 +v 0.148537 -0.698006 0.225524 +v 0.146230 -0.683211 0.231452 +v 0.145420 -0.683862 0.232541 +v 0.152540 -0.721736 0.212804 +v 0.151206 -0.722481 0.213565 +v 0.150188 -0.711063 0.219551 +v 0.148845 -0.711764 0.220341 +v 0.149266 -0.741477 0.202072 +v 0.146824 -0.742129 0.202334 +v 0.147562 -0.733740 0.208497 +v 0.145115 -0.734373 0.208776 +v 0.149594 -0.723193 0.214209 +v 0.147702 -0.723873 0.214736 +v 0.147224 -0.712439 0.221009 +v 0.145326 -0.713088 0.221556 +v 0.147461 -0.698686 0.226463 +v 0.146109 -0.699346 0.227276 +v 0.144336 -0.684499 0.233501 +v 0.142976 -0.685122 0.234334 +v 0.142700 -0.667190 0.238541 +v 0.141881 -0.667797 0.239650 +v 0.139038 -0.650568 0.245241 +v 0.138210 -0.651137 0.246365 +v 0.144481 -0.699987 0.227964 +v 0.142576 -0.700608 0.228528 +v 0.141340 -0.685731 0.235038 +v 0.139430 -0.686327 0.235614 +v 0.140788 -0.668396 0.240628 +v 0.139420 -0.668986 0.241475 +v 0.137110 -0.651702 0.247357 +v 0.135736 -0.652263 0.248217 +v 0.135535 -0.634671 0.251067 +v 0.134701 -0.635207 0.252204 +v 0.136098 -0.634134 0.249797 +v 0.132539 -0.617982 0.255164 +v 0.131970 -0.618487 0.256445 +v 0.131129 -0.618995 0.257591 +v 0.136387 -0.633596 0.248393 +v 0.138407 -0.632758 0.247290 +v 0.134832 -0.616678 0.252636 +v 0.132837 -0.617481 0.253748 +v 0.128999 -0.600061 0.259085 +v 0.128694 -0.600531 0.260511 +v 0.130966 -0.599291 0.257964 +v 0.126802 -0.580559 0.263258 +v 0.124865 -0.581298 0.264385 +v 0.124554 -0.581738 0.265819 +v 0.120427 -0.561152 0.269631 +v 0.120109 -0.561565 0.271073 +v 0.122329 -0.560443 0.268498 +v 0.117540 -0.538902 0.273668 +v 0.115674 -0.539580 0.274806 +v 0.115350 -0.539967 0.276254 +v 0.128118 -0.601007 0.261801 +v 0.127272 -0.601489 0.262955 +v 0.123972 -0.582188 0.267117 +v 0.123120 -0.582646 0.268278 +v 0.133594 -0.635744 0.253206 +v 0.132214 -0.636279 0.254075 +v 0.130016 -0.619506 0.258603 +v 0.128632 -0.620020 0.259479 +v 0.110597 -0.516537 0.279894 +v 0.110268 -0.516899 0.281348 +v 0.112424 -0.515887 0.278752 +v 0.106970 -0.491360 0.283734 +v 0.105186 -0.491980 0.284880 +v 0.104853 -0.492319 0.286338 +v 0.119522 -0.561989 0.272377 +v 0.118665 -0.562425 0.273544 +v 0.114758 -0.540367 0.277564 +v 0.113897 -0.540783 0.278736 +v 0.126154 -0.601977 0.263974 +v 0.124766 -0.602471 0.264856 +v 0.121998 -0.583113 0.269303 +v 0.120606 -0.583589 0.270191 +v 0.137779 -0.669568 0.242192 +v 0.135863 -0.670140 0.242779 +v 0.134089 -0.652820 0.248944 +v 0.132169 -0.653373 0.249539 +v 0.130563 -0.636815 0.254811 +v 0.128639 -0.637350 0.255412 +v 0.126976 -0.620537 0.260221 +v 0.125049 -0.621057 0.260828 +v 0.123106 -0.602971 0.265603 +v 0.121176 -0.603477 0.266214 +v 0.118943 -0.584073 0.270942 +v 0.117010 -0.584567 0.271557 +v 0.133674 -0.670704 0.243235 +v 0.131210 -0.671259 0.243561 +v 0.134783 -0.687477 0.236383 +v 0.137244 -0.686909 0.236063 +v 0.129976 -0.653921 0.250002 +v 0.127510 -0.654465 0.250333 +v 0.126443 -0.637885 0.255880 +v 0.123974 -0.638419 0.256214 +v 0.122850 -0.621580 0.261300 +v 0.120380 -0.622105 0.261637 +v 0.140395 -0.701209 0.228966 +v 0.137937 -0.701791 0.229278 +v 0.140694 -0.714309 0.222285 +v 0.143149 -0.713711 0.221981 +v 0.145530 -0.724520 0.215146 +v 0.143080 -0.725135 0.215439 +v 0.135202 -0.702354 0.229466 +v 0.127103 -0.703775 0.229560 +v 0.129709 -0.716334 0.222558 +v 0.137962 -0.714881 0.222467 +v 0.132046 -0.688031 0.236575 +v 0.124124 -0.689418 0.236671 +v 0.140349 -0.725717 0.215614 +v 0.131963 -0.727197 0.215702 +v 0.133888 -0.736471 0.209027 +v 0.142387 -0.734966 0.208944 +v 0.144099 -0.742734 0.202492 +v 0.135504 -0.744261 0.202570 +v 0.136834 -0.750672 0.196367 +v 0.145507 -0.749125 0.196295 +v 0.146635 -0.754245 0.190389 +v 0.137900 -0.755809 0.190454 +v 0.115454 -0.747680 0.202597 +v 0.116547 -0.754134 0.196391 +v 0.114126 -0.739840 0.209055 +v 0.085911 -0.743704 0.209055 +v 0.086852 -0.751601 0.202597 +v 0.087627 -0.758100 0.196391 +v 0.118595 -0.766225 0.179657 +v 0.118099 -0.763300 0.184885 +v 0.088728 -0.767331 0.184885 +v 0.089079 -0.770277 0.179657 +v 0.117423 -0.759305 0.190475 +v 0.088248 -0.763308 0.190475 +v 0.112545 -0.730506 0.215731 +v 0.110694 -0.719572 0.222589 +v 0.083477 -0.723293 0.222589 +v 0.084790 -0.734304 0.215731 +v 0.054127 -0.776493 0.170430 +v 0.054163 -0.777003 0.166514 +v 0.054050 -0.775378 0.174826 +v 0.015939 -0.777096 0.174826 +v 0.015961 -0.778214 0.170430 +v 0.015972 -0.778726 0.166514 +v -0.022243 -0.778059 0.170430 +v -0.022258 -0.778571 0.166514 +v -0.022211 -0.776942 0.174826 +v -0.060307 -0.774917 0.174826 +v -0.060394 -0.776031 0.170430 +v -0.060434 -0.776542 0.166514 +v 0.053911 -0.773394 0.179657 +v 0.053705 -0.770434 0.184885 +v 0.015837 -0.772142 0.184885 +v 0.015898 -0.775108 0.179657 +v -0.098399 -0.772132 0.170430 +v -0.098464 -0.772640 0.166514 +v -0.098258 -0.771024 0.174826 +v -0.135972 -0.765274 0.174826 +v -0.136167 -0.766375 0.170430 +v -0.136257 -0.766879 0.166514 +v -0.173608 -0.758770 0.170430 +v -0.173722 -0.759269 0.166514 +v -0.173358 -0.757680 0.174826 +v -0.210327 -0.748261 0.174826 +v -0.210630 -0.749338 0.170430 +v -0.210768 -0.749831 0.166514 +v -0.022154 -0.774954 0.179657 +v -0.022069 -0.771988 0.184885 +v -0.059923 -0.769976 0.184885 +v -0.060153 -0.772934 0.179657 +v -0.098006 -0.769051 0.179657 +v -0.097631 -0.766108 0.184885 +v -0.135105 -0.760395 0.184885 +v -0.135624 -0.763316 0.179657 +v -0.172915 -0.755741 0.179657 +v -0.172253 -0.752849 0.184885 +v -0.208986 -0.743491 0.184885 +v -0.209789 -0.746347 0.179657 +v -0.097119 -0.762088 0.190476 +v -0.096456 -0.756885 0.196391 +v -0.133479 -0.751241 0.196391 +v -0.134396 -0.756405 0.190476 +v -0.059608 -0.765936 0.190476 +v -0.059201 -0.760707 0.196391 +v -0.171349 -0.748899 0.190476 +v -0.170179 -0.743786 0.196391 +v -0.206470 -0.734541 0.196391 +v -0.207890 -0.739590 0.190476 +v -0.247144 -0.738099 0.170430 +v -0.247307 -0.738585 0.166514 +v -0.246789 -0.737039 0.174826 +v -0.282657 -0.724043 0.174826 +v -0.283063 -0.725084 0.170430 +v -0.283250 -0.725561 0.166514 +v -0.318300 -0.710321 0.170430 +v -0.318510 -0.710788 0.166514 +v -0.317843 -0.709301 0.174826 +v -0.352265 -0.692851 0.174826 +v -0.352771 -0.693848 0.170430 +v -0.353003 -0.694304 0.166514 +v -0.246158 -0.735154 0.179657 +v -0.245216 -0.732340 0.184885 +v -0.280855 -0.719427 0.184885 +v -0.281934 -0.722190 0.179657 +v -0.386392 -0.675702 0.170430 +v -0.386646 -0.676146 0.166514 +v -0.385837 -0.674731 0.174826 +v -0.416234 -0.656582 0.174826 +v -0.416836 -0.657524 0.170430 +v -0.417112 -0.657955 0.166514 +v -0.317030 -0.707486 0.179657 +v -0.315817 -0.704779 0.184885 +v -0.350019 -0.688434 0.184885 +v -0.351363 -0.691078 0.179657 +v -0.441779 -0.640955 0.170430 +v -0.442076 -0.641373 0.166514 +v -0.441132 -0.640044 0.174826 +v -0.458319 -0.627794 0.174816 +v -0.458999 -0.628681 0.170423 +v -0.459311 -0.629087 0.166510 +v -0.384849 -0.673005 0.179657 +v -0.383377 -0.670429 0.184885 +v -0.413566 -0.652406 0.184885 +v -0.415163 -0.654906 0.179657 +v -0.466274 -0.623387 0.170403 +v -0.468424 -0.621606 0.170362 +v -0.468738 -0.622004 0.166479 +v -0.466589 -0.623788 0.166500 +v -0.465584 -0.622511 0.174784 +v -0.467739 -0.620735 0.174720 +v -0.439980 -0.638423 0.179657 +v -0.438262 -0.636004 0.184885 +v -0.455303 -0.623863 0.184867 +v -0.457108 -0.626217 0.179642 +v -0.464357 -0.620951 0.179598 +v -0.466517 -0.619183 0.179510 +v -0.462525 -0.618623 0.184812 +v -0.464692 -0.616864 0.184701 +v -0.470273 -0.619871 0.170295 +v -0.471819 -0.618181 0.170200 +v -0.472123 -0.618568 0.166396 +v -0.470582 -0.620264 0.166444 +v -0.469593 -0.619007 0.174613 +v -0.471148 -0.617329 0.174464 +v -0.473063 -0.616537 0.170079 +v -0.473361 -0.616916 0.166333 +v -0.472403 -0.615700 0.174271 +v -0.471224 -0.614201 0.178892 +v -0.472202 -0.612649 0.178569 +v -0.469950 -0.615807 0.179157 +v -0.468155 -0.613526 0.184257 +v -0.469450 -0.611947 0.183925 +v -0.470454 -0.610428 0.183519 +v -0.460021 -0.615441 0.190389 +v -0.462197 -0.613692 0.190260 +v -0.452835 -0.620648 0.190454 +v -0.449642 -0.616485 0.196367 +v -0.456779 -0.611321 0.196295 +v -0.458962 -0.609582 0.196150 +v -0.435916 -0.632700 0.190476 +v -0.432878 -0.628424 0.196391 +v -0.411384 -0.648991 0.190476 +v -0.408561 -0.644572 0.196391 +v -0.464086 -0.612009 0.190044 +v -0.465690 -0.610393 0.189742 +v -0.466568 -0.615164 0.184516 +v -0.460865 -0.607916 0.195909 +v -0.462488 -0.606324 0.195571 +v -0.381365 -0.666912 0.190476 +v -0.378762 -0.662359 0.196391 +v -0.348182 -0.684822 0.190476 +v -0.345805 -0.680146 0.196391 +v -0.452732 -0.606178 0.202492 +v -0.454923 -0.604449 0.202334 +v -0.445656 -0.611291 0.202570 +v -0.440814 -0.604979 0.209027 +v -0.447813 -0.599928 0.208944 +v -0.450011 -0.598207 0.208776 +v -0.429088 -0.623089 0.202597 +v -0.424483 -0.616605 0.209055 +v -0.405037 -0.639056 0.202597 +v -0.400755 -0.632355 0.209055 +v -0.314160 -0.701081 0.190476 +v -0.312015 -0.696294 0.196391 +v -0.279381 -0.715652 0.190476 +v -0.277474 -0.710766 0.196391 +v -0.375513 -0.656677 0.202597 +v -0.371565 -0.649774 0.209055 +v -0.342839 -0.674312 0.202597 +v -0.339235 -0.667224 0.209055 +v -0.243929 -0.728498 0.190476 +v -0.242264 -0.723524 0.196391 +v -0.309339 -0.690322 0.202597 +v -0.306087 -0.683065 0.209055 +v -0.275094 -0.704669 0.202597 +v -0.272202 -0.697261 0.209055 +v -0.240186 -0.717318 0.202597 +v -0.237661 -0.709777 0.209055 +v -0.204699 -0.728240 0.202597 +v -0.202548 -0.720584 0.209055 +v -0.168720 -0.737406 0.202597 +v -0.166946 -0.729654 0.209055 +v -0.132334 -0.744797 0.202597 +v -0.130943 -0.736968 0.209055 +v -0.302215 -0.674425 0.215731 +v -0.297681 -0.664306 0.222589 +v -0.329918 -0.648900 0.222589 +v -0.334944 -0.658784 0.215731 +v -0.268759 -0.688442 0.215731 +v -0.264726 -0.678113 0.222589 +v -0.234655 -0.700800 0.215731 +v -0.231134 -0.690285 0.222589 +v -0.199986 -0.711470 0.215731 +v -0.196985 -0.700795 0.222589 +v -0.366866 -0.641555 0.215731 +v -0.361361 -0.631929 0.222589 +v -0.389688 -0.615032 0.222589 +v -0.395658 -0.624377 0.215731 +v -0.419000 -0.608887 0.215731 +v -0.412579 -0.599847 0.222589 +v -0.428294 -0.588662 0.222558 +v -0.435048 -0.597464 0.215702 +v -0.354998 -0.620801 0.229591 +v -0.347723 -0.608080 0.236703 +v -0.374896 -0.591881 0.236703 +v -0.382786 -0.604230 0.229591 +v -0.324109 -0.637473 0.229591 +v -0.317467 -0.624410 0.236703 +v -0.441956 -0.592485 0.215614 +v -0.444161 -0.590773 0.215439 +v -0.435094 -0.583765 0.222467 +v -0.437306 -0.582062 0.222285 +v -0.405155 -0.589397 0.229591 +v -0.396669 -0.577449 0.236703 +v -0.411561 -0.566852 0.236671 +v -0.420487 -0.578486 0.229560 +v -0.427162 -0.573685 0.229466 +v -0.429380 -0.571989 0.229278 +v -0.418092 -0.562159 0.236575 +v -0.420315 -0.560470 0.236383 +v -0.456839 -0.602799 0.202072 +v -0.458479 -0.601230 0.201705 +v -0.451940 -0.596574 0.208497 +v -0.453597 -0.595026 0.208107 +v -0.446101 -0.589154 0.215146 +v -0.447775 -0.587627 0.214736 +v -0.439257 -0.580456 0.221981 +v -0.440946 -0.578948 0.221556 +v -0.467009 -0.608844 0.189353 +v -0.468041 -0.607362 0.188878 +v -0.463830 -0.604805 0.195136 +v -0.464892 -0.603360 0.194605 +v -0.472883 -0.611151 0.178186 +v -0.473269 -0.609707 0.177745 +v -0.471168 -0.608970 0.183038 +v -0.471590 -0.607572 0.182484 +v -0.459845 -0.599740 0.201233 +v -0.460935 -0.598331 0.200657 +v -0.454985 -0.593565 0.207604 +v -0.456102 -0.592190 0.206991 +v -0.468788 -0.605947 0.188317 +v -0.469250 -0.604598 0.187670 +v -0.465673 -0.601988 0.193978 +v -0.466174 -0.600690 0.193254 +v -0.473359 -0.608317 0.177245 +v -0.473154 -0.606981 0.176686 +v -0.474185 -0.608290 0.172671 +v -0.474427 -0.609674 0.173076 +v -0.471721 -0.606235 0.181856 +v -0.471562 -0.604957 0.181154 +v -0.472653 -0.605699 0.176068 +v -0.473869 -0.603396 0.175583 +v -0.474827 -0.604610 0.171870 +v -0.473642 -0.606956 0.172222 +v -0.471112 -0.603740 0.180378 +v -0.472364 -0.601491 0.179769 +v -0.469425 -0.603317 0.186936 +v -0.469315 -0.602102 0.186116 +v -0.466395 -0.599466 0.192433 +v -0.466335 -0.598315 0.191516 +v -0.461749 -0.597002 0.199975 +v -0.462289 -0.595753 0.199189 +v -0.456949 -0.590901 0.206265 +v -0.457525 -0.589699 0.205428 +v -0.468919 -0.600954 0.185209 +v -0.470210 -0.598763 0.184497 +v -0.465994 -0.597237 0.190502 +v -0.467321 -0.595108 0.189706 +v -0.462553 -0.594584 0.198297 +v -0.462542 -0.593495 0.197301 +v -0.457831 -0.588584 0.204479 +v -0.457867 -0.587554 0.203419 +v -0.462256 -0.592487 0.196200 +v -0.463617 -0.590418 0.195335 +v -0.457632 -0.586611 0.202247 +v -0.459023 -0.584603 0.201327 +v -0.451202 -0.583599 0.212804 +v -0.451814 -0.582441 0.211926 +v -0.450326 -0.584850 0.213565 +v -0.443539 -0.576225 0.220341 +v -0.444444 -0.575010 0.219551 +v -0.445087 -0.573893 0.218639 +v -0.452052 -0.579520 0.208589 +v -0.453467 -0.577571 0.207623 +v -0.452238 -0.580401 0.209819 +v -0.445589 -0.571952 0.216452 +v -0.445448 -0.571127 0.215176 +v -0.446882 -0.569236 0.214173 +v -0.452159 -0.581375 0.210931 +v -0.445469 -0.572874 0.217606 +v -0.437753 -0.561348 0.221958 +v -0.439201 -0.559513 0.220925 +v -0.437852 -0.562120 0.223272 +v -0.428960 -0.550820 0.230236 +v -0.428898 -0.550097 0.228891 +v -0.430356 -0.548316 0.227835 +v -0.437694 -0.562994 0.224460 +v -0.437279 -0.563971 0.225524 +v -0.428322 -0.552589 0.232541 +v -0.428768 -0.551651 0.231452 +v -0.418817 -0.537286 0.235933 +v -0.420277 -0.535559 0.234858 +v -0.418845 -0.537966 0.237303 +v -0.408347 -0.524625 0.243985 +v -0.408348 -0.523983 0.242597 +v -0.409806 -0.522305 0.241506 +v -0.398331 -0.511253 0.248394 +v -0.399784 -0.509620 0.247291 +v -0.398303 -0.511863 0.249797 +v -0.388076 -0.498866 0.255164 +v -0.388126 -0.498285 0.253748 +v -0.389573 -0.496694 0.252636 +v -0.418623 -0.538759 0.238541 +v -0.418149 -0.539662 0.239650 +v -0.407600 -0.526255 0.246366 +v -0.408097 -0.525383 0.245241 +v -0.398030 -0.512591 0.251067 +v -0.397512 -0.513436 0.252204 +v -0.387246 -0.500391 0.257591 +v -0.387782 -0.499568 0.256445 +v -0.376713 -0.485502 0.261801 +v -0.377025 -0.484823 0.260511 +v -0.376160 -0.486304 0.262955 +v -0.364228 -0.471141 0.268278 +v -0.364796 -0.470358 0.267117 +v -0.365125 -0.469700 0.265819 +v -0.396749 -0.514401 0.253206 +v -0.395740 -0.515483 0.254075 +v -0.385443 -0.502400 0.259479 +v -0.386466 -0.501334 0.258603 +v -0.406854 -0.527243 0.247357 +v -0.405861 -0.528345 0.248217 +v -0.375366 -0.487229 0.263974 +v -0.374331 -0.488278 0.264856 +v -0.362374 -0.473083 0.270191 +v -0.363421 -0.472049 0.269303 +v -0.417425 -0.540676 0.240628 +v -0.416451 -0.541803 0.241475 +v -0.427622 -0.553634 0.233501 +v -0.426669 -0.554788 0.234334 +v -0.436606 -0.565051 0.226463 +v -0.435676 -0.566233 0.227276 +v -0.394485 -0.516684 0.254811 +v -0.392985 -0.518003 0.255412 +v -0.382668 -0.504891 0.260828 +v -0.384177 -0.503585 0.260221 +v -0.404620 -0.529563 0.248944 +v -0.403132 -0.530895 0.249539 +v -0.415225 -0.543040 0.242192 +v -0.413749 -0.544388 0.242779 +v -0.425461 -0.556047 0.235038 +v -0.424000 -0.557414 0.235614 +v -0.434488 -0.567518 0.227964 +v -0.433043 -0.568906 0.228528 +v -0.442373 -0.577538 0.221009 +v -0.449183 -0.586192 0.214209 +v -0.431340 -0.570396 0.228966 +v -0.422284 -0.558888 0.236063 +v -0.412023 -0.545848 0.243236 +v -0.410045 -0.547421 0.243562 +v -0.399411 -0.533905 0.250333 +v -0.401395 -0.532344 0.250002 +v -0.407817 -0.549102 0.243757 +v -0.401450 -0.553675 0.243855 +v -0.390981 -0.540030 0.250630 +v -0.397178 -0.535582 0.250531 +v -0.387056 -0.563917 0.243888 +v -0.377103 -0.549904 0.250663 +v -0.365959 -0.577893 0.243888 +v -0.356705 -0.563409 0.250663 +v -0.391240 -0.519439 0.255880 +v -0.389250 -0.520993 0.256215 +v -0.378919 -0.507865 0.261637 +v -0.380915 -0.506318 0.261300 +v -0.387014 -0.522667 0.256415 +v -0.380979 -0.526995 0.256515 +v -0.370811 -0.513743 0.261940 +v -0.376680 -0.509534 0.261839 +v -0.367593 -0.536517 0.256549 +v -0.357926 -0.522907 0.261974 +v -0.347864 -0.549571 0.256549 +v -0.338876 -0.535504 0.261974 +v -0.339483 -0.593670 0.243888 +v -0.330951 -0.578750 0.250663 +v -0.309944 -0.609613 0.243888 +v -0.302154 -0.594292 0.250663 +v -0.292439 -0.652608 0.229591 +v -0.286446 -0.639234 0.236703 +v -0.260065 -0.666172 0.229591 +v -0.254735 -0.652520 0.236703 +v -0.322799 -0.564495 0.256549 +v -0.314513 -0.550003 0.261974 +v -0.294712 -0.579654 0.256549 +v -0.287146 -0.564773 0.261974 +v -0.279658 -0.624086 0.243888 +v -0.272630 -0.608401 0.250663 +v -0.248699 -0.637057 0.243887 +v -0.242449 -0.621046 0.250663 +v -0.347498 -0.508228 0.267369 +v -0.336284 -0.492442 0.272718 +v -0.348048 -0.484075 0.272684 +v -0.359843 -0.499448 0.267335 +v -0.329181 -0.520330 0.267369 +v -0.318755 -0.504013 0.272718 +v -0.365533 -0.495370 0.267233 +v -0.367775 -0.493705 0.267029 +v -0.353545 -0.480136 0.272581 +v -0.355790 -0.478475 0.272376 +v -0.369776 -0.492163 0.266690 +v -0.371536 -0.490745 0.266214 +v -0.357795 -0.476939 0.272035 +v -0.359561 -0.475528 0.271557 +v -0.305574 -0.534373 0.267369 +v -0.295962 -0.517563 0.272718 +v -0.278986 -0.548723 0.267369 +v -0.270210 -0.531461 0.272718 +v -0.340688 -0.463798 0.277869 +v -0.342936 -0.462139 0.277663 +v -0.335398 -0.467587 0.277972 +v -0.321864 -0.449948 0.283183 +v -0.326934 -0.446319 0.283080 +v -0.329183 -0.444663 0.282873 +v -0.324257 -0.475510 0.278006 +v -0.311391 -0.457397 0.283218 +v -0.307574 -0.486512 0.278006 +v -0.295612 -0.467789 0.283218 +v -0.373054 -0.489450 0.265603 +v -0.361087 -0.474243 0.270942 +v -0.344945 -0.460609 0.277319 +v -0.346716 -0.459205 0.276839 +v -0.331197 -0.443138 0.282528 +v -0.332974 -0.441741 0.282046 +v -0.348250 -0.457930 0.276221 +v -0.349546 -0.456782 0.275466 +v -0.334514 -0.440475 0.281425 +v -0.335819 -0.439338 0.280667 +v -0.350604 -0.455762 0.274574 +v -0.351424 -0.454869 0.273544 +v -0.336887 -0.438331 0.279770 +v -0.337718 -0.437453 0.278736 +v -0.316522 -0.424489 0.287646 +v -0.318304 -0.423100 0.287161 +v -0.314505 -0.426011 0.287992 +v -0.298873 -0.406145 0.293004 +v -0.300893 -0.404629 0.292657 +v -0.302680 -0.403245 0.292171 +v -0.352006 -0.454104 0.272377 +v -0.352350 -0.453467 0.271073 +v -0.338314 -0.436705 0.277564 +v -0.338673 -0.436087 0.276254 +v -0.319852 -0.421842 0.286539 +v -0.321164 -0.420715 0.285777 +v -0.304234 -0.401995 0.291546 +v -0.305554 -0.400878 0.290782 +v -0.322242 -0.419720 0.284877 +v -0.323085 -0.418857 0.283839 +v -0.306641 -0.399895 0.289879 +v -0.307494 -0.399045 0.288838 +v -0.352456 -0.452957 0.269631 +v -0.353862 -0.451492 0.268498 +v -0.366636 -0.467661 0.263258 +v -0.365213 -0.469168 0.264385 +v -0.338796 -0.435598 0.274806 +v -0.340181 -0.434175 0.273668 +v -0.377095 -0.484267 0.259085 +v -0.378531 -0.482718 0.257964 +v -0.323693 -0.418125 0.282663 +v -0.324066 -0.417524 0.281348 +v -0.308114 -0.398328 0.287657 +v -0.308500 -0.397744 0.286338 +v -0.324204 -0.417055 0.279894 +v -0.325567 -0.415676 0.278752 +v -0.308653 -0.397293 0.284880 +v -0.309990 -0.395959 0.283734 +v -0.292115 -0.376278 0.289747 +v -0.293423 -0.374989 0.288598 +v -0.291949 -0.376711 0.291209 +v -0.274383 -0.354388 0.295945 +v -0.274563 -0.353972 0.294479 +v -0.275839 -0.352730 0.293327 +v -0.291550 -0.377278 0.292532 +v -0.290919 -0.377981 0.293716 +v -0.273330 -0.355630 0.298457 +v -0.273972 -0.354941 0.297271 +v -0.255353 -0.331280 0.301859 +v -0.255775 -0.330742 0.300529 +v -0.254701 -0.331957 0.303048 +v -0.235002 -0.306924 0.307471 +v -0.235663 -0.306260 0.306280 +v -0.236096 -0.305735 0.304948 +v -0.290055 -0.378819 0.294760 +v -0.288960 -0.379791 0.295665 +v -0.271354 -0.357418 0.300412 +v -0.272458 -0.356456 0.299505 +v -0.253820 -0.332771 0.304097 +v -0.252709 -0.333724 0.305006 +v -0.232994 -0.308671 0.309433 +v -0.234113 -0.307728 0.308522 +v -0.287633 -0.380899 0.296431 +v -0.286073 -0.382141 0.297058 +v -0.268455 -0.359753 0.301808 +v -0.270020 -0.358517 0.301180 +v -0.251368 -0.334814 0.305776 +v -0.249797 -0.336043 0.306405 +v -0.230072 -0.310976 0.310835 +v -0.231647 -0.309754 0.310204 +v -0.284281 -0.383519 0.297545 +v -0.282258 -0.385031 0.297894 +v -0.264632 -0.362633 0.302646 +v -0.266659 -0.361125 0.302297 +v -0.247997 -0.337410 0.306895 +v -0.245967 -0.338914 0.307245 +v -0.226235 -0.313839 0.311676 +v -0.228268 -0.312338 0.311325 +v -0.210830 -0.283301 0.314449 +v -0.212183 -0.282225 0.313677 +v -0.209250 -0.284517 0.315080 +v -0.193007 -0.263876 0.318231 +v -0.194593 -0.262666 0.317598 +v -0.195952 -0.261599 0.316825 +v -0.207443 -0.285874 0.315572 +v -0.205407 -0.287372 0.315922 +v -0.189157 -0.266722 0.319074 +v -0.191195 -0.265228 0.318723 +v -0.243708 -0.340557 0.307455 +v -0.239979 -0.343224 0.307560 +v -0.220564 -0.317920 0.311991 +v -0.223974 -0.315480 0.311886 +v -0.262374 -0.364278 0.302855 +v -0.258345 -0.367161 0.302960 +v -0.213308 -0.281290 0.312764 +v -0.214205 -0.280496 0.311711 +v -0.197084 -0.260674 0.315911 +v -0.197991 -0.259891 0.314857 +v -0.203145 -0.289011 0.316133 +v -0.200071 -0.291210 0.316238 +v -0.184080 -0.270370 0.319390 +v -0.186893 -0.268358 0.319285 +v -0.214875 -0.279843 0.310518 +v -0.215318 -0.279330 0.309185 +v -0.198671 -0.259250 0.313662 +v -0.199124 -0.258752 0.312326 +v -0.255967 -0.330342 0.299060 +v -0.236300 -0.305349 0.303476 +v -0.257208 -0.329148 0.297906 +v -0.237503 -0.304205 0.302320 +v -0.215532 -0.278958 0.307711 +v -0.216693 -0.277865 0.306553 +v -0.199352 -0.258396 0.310850 +v -0.200483 -0.257346 0.309691 +v -0.191120 -0.253094 0.317050 +v -0.192038 -0.252327 0.315994 +v -0.189977 -0.254006 0.317966 +v -0.189124 -0.252923 0.318082 +v -0.190283 -0.252031 0.317165 +v -0.191219 -0.251286 0.316107 +v -0.193445 -0.250889 0.311981 +v -0.194575 -0.249867 0.310819 +v -0.193201 -0.251224 0.313459 +v -0.192424 -0.250238 0.313569 +v -0.192694 -0.249935 0.312088 +v -0.193842 -0.248939 0.310924 +v -0.192732 -0.251703 0.314797 +v -0.191933 -0.250688 0.314909 +v -0.191981 -0.249029 0.312156 +v -0.193157 -0.248072 0.310991 +v -0.191674 -0.249284 0.313638 +v -0.191149 -0.249691 0.314980 +v -0.190404 -0.250250 0.316180 +v -0.189612 -0.249243 0.316194 +v -0.190398 -0.248737 0.314996 +v -0.189441 -0.250961 0.317239 +v -0.188260 -0.251824 0.318157 +v -0.187398 -0.250729 0.318168 +v -0.188612 -0.249907 0.317252 +v -0.189699 -0.247850 0.314941 +v -0.188858 -0.248286 0.316131 +v -0.188155 -0.247391 0.315982 +v -0.189063 -0.247041 0.314811 +v -0.187810 -0.248888 0.317182 +v -0.186554 -0.249657 0.318092 +v -0.185740 -0.248622 0.317911 +v -0.187047 -0.247919 0.317016 +v -0.188497 -0.246322 0.314603 +v -0.187511 -0.246573 0.315739 +v -0.186922 -0.245825 0.315389 +v -0.187995 -0.245684 0.314312 +v -0.189294 -0.246260 0.313334 +v -0.188889 -0.245745 0.313107 +v -0.189900 -0.246386 0.311932 +v -0.191308 -0.245732 0.310830 +v -0.189602 -0.246006 0.311775 +v -0.191093 -0.245459 0.310729 +v -0.186333 -0.247012 0.316740 +v -0.184966 -0.247639 0.317608 +v -0.184236 -0.246710 0.317165 +v -0.185669 -0.246167 0.316340 +v -0.185054 -0.245385 0.315801 +v -0.186386 -0.245144 0.314924 +v -0.183552 -0.245841 0.316561 +v -0.182912 -0.245028 0.315763 +v -0.184480 -0.244656 0.315085 +v -0.185888 -0.244511 0.314302 +v -0.181880 -0.246512 0.317205 +v -0.180039 -0.247396 0.317731 +v -0.179298 -0.246455 0.316807 +v -0.181185 -0.245628 0.316337 +v -0.182622 -0.247454 0.317862 +v -0.180828 -0.248399 0.318433 +v -0.183408 -0.248454 0.318343 +v -0.181661 -0.249457 0.318944 +v -0.184233 -0.249502 0.318669 +v -0.182527 -0.250558 0.319289 +v -0.185091 -0.250592 0.318863 +v -0.183420 -0.251693 0.319493 +v -0.185970 -0.251709 0.318944 +v -0.184328 -0.252847 0.319578 +v -0.178029 -0.248496 0.318140 +v -0.175848 -0.249809 0.318433 +v -0.175047 -0.248790 0.317433 +v -0.177252 -0.247509 0.317172 +v -0.178855 -0.249546 0.318876 +v -0.176701 -0.250893 0.319193 +v -0.186859 -0.252839 0.318934 +v -0.185240 -0.254005 0.319570 +v -0.187744 -0.253962 0.318858 +v -0.186140 -0.255149 0.319493 +v -0.179722 -0.250648 0.319412 +v -0.177594 -0.252027 0.319745 +v -0.180621 -0.251791 0.319772 +v -0.178516 -0.253199 0.320116 +v -0.181542 -0.252961 0.319983 +v -0.179457 -0.254395 0.320333 +v -0.182473 -0.254143 0.320072 +v -0.180404 -0.255598 0.320424 +v -0.188609 -0.255062 0.318740 +v -0.187017 -0.256263 0.319374 +v -0.183401 -0.255323 0.320064 +v -0.181344 -0.256793 0.320417 +v -0.184314 -0.256484 0.319986 +v -0.182266 -0.257965 0.320339 +v -0.185199 -0.257608 0.319867 +v -0.183157 -0.259097 0.320219 +v -0.177164 -0.255995 0.320543 +v -0.174495 -0.257876 0.320648 +v -0.173552 -0.256648 0.320426 +v -0.176211 -0.254785 0.320323 +v -0.178120 -0.257210 0.320636 +v -0.175441 -0.259109 0.320742 +v -0.180890 -0.260730 0.320430 +v -0.178174 -0.262671 0.320536 +v -0.177292 -0.261522 0.320656 +v -0.179996 -0.259594 0.320550 +v -0.179068 -0.258415 0.320629 +v -0.176377 -0.260330 0.320735 +v -0.174784 -0.265083 0.320571 +v -0.173945 -0.263903 0.320692 +v -0.180399 -0.272989 0.319426 +v -0.173826 -0.277175 0.319426 +v -0.168605 -0.269004 0.320571 +v -0.167825 -0.267783 0.320692 +v -0.173074 -0.262677 0.320770 +v -0.172183 -0.261422 0.320777 +v -0.167016 -0.266516 0.320770 +v -0.166187 -0.265219 0.320777 +v -0.171282 -0.260154 0.320684 +v -0.170384 -0.258889 0.320461 +v -0.165350 -0.263908 0.320684 +v -0.164515 -0.262601 0.320461 +v -0.175275 -0.253595 0.319946 +v -0.172624 -0.255438 0.320046 +v -0.171723 -0.254264 0.319479 +v -0.174367 -0.252441 0.319384 +v -0.169500 -0.257645 0.320079 +v -0.168641 -0.256435 0.319510 +v -0.163692 -0.261315 0.320079 +v -0.162894 -0.260065 0.319510 +v -0.173499 -0.251337 0.318608 +v -0.170861 -0.253140 0.318696 +v -0.170050 -0.252083 0.317668 +v -0.172682 -0.250299 0.317590 +v -0.167819 -0.255278 0.318725 +v -0.167045 -0.254189 0.317694 +v -0.162130 -0.258868 0.318725 +v -0.161410 -0.257743 0.317694 +v -0.154522 -0.270221 0.320684 +v -0.153752 -0.268874 0.320461 +v -0.155294 -0.271571 0.320777 +v -0.141782 -0.278864 0.320777 +v -0.141077 -0.277477 0.320684 +v -0.140374 -0.276095 0.320461 +v -0.171927 -0.249341 0.316299 +v -0.174306 -0.247849 0.316165 +v -0.169301 -0.251107 0.316366 +v -0.168627 -0.250228 0.314760 +v -0.171247 -0.248477 0.314704 +v -0.173636 -0.246998 0.314591 +v -0.152994 -0.267549 0.320079 +v -0.152258 -0.266261 0.319510 +v -0.139682 -0.274734 0.320079 +v -0.139010 -0.273412 0.319510 +v -0.166331 -0.253184 0.316388 +v -0.165689 -0.252279 0.314779 +v -0.160747 -0.256704 0.316388 +v -0.160149 -0.255769 0.314779 +v -0.151553 -0.265029 0.318725 +v -0.150890 -0.263869 0.317694 +v -0.138366 -0.272146 0.318725 +v -0.137761 -0.270955 0.317694 +v -0.176533 -0.246596 0.315941 +v -0.178611 -0.245581 0.315629 +v -0.175881 -0.245767 0.314404 +v -0.177983 -0.244783 0.314141 +v -0.180538 -0.244805 0.315226 +v -0.182314 -0.244268 0.314735 +v -0.179941 -0.244047 0.313804 +v -0.181755 -0.243559 0.313391 +v -0.170653 -0.247722 0.312773 +v -0.173048 -0.246251 0.312676 +v -0.168040 -0.249463 0.312821 +v -0.167496 -0.248753 0.310714 +v -0.170102 -0.247021 0.310673 +v -0.172501 -0.245556 0.310590 +v -0.165129 -0.251492 0.312837 +v -0.164611 -0.250762 0.310728 +v -0.159629 -0.254955 0.312837 +v -0.159147 -0.254201 0.310728 +v -0.175304 -0.245033 0.312516 +v -0.177420 -0.244068 0.312291 +v -0.174764 -0.244347 0.310452 +v -0.176890 -0.243395 0.310258 +v -0.149248 -0.260997 0.312837 +v -0.148804 -0.260220 0.310728 +v -0.149727 -0.261836 0.314779 +v -0.136699 -0.268867 0.314779 +v -0.136262 -0.268006 0.312837 +v -0.135856 -0.267209 0.310728 +v -0.179397 -0.243356 0.312002 +v -0.181235 -0.242897 0.311648 +v -0.178880 -0.242699 0.310009 +v -0.180733 -0.242260 0.309705 +v -0.183940 -0.243970 0.314154 +v -0.185415 -0.243910 0.313483 +v -0.183426 -0.243318 0.312904 +v -0.184954 -0.243324 0.312341 +v -0.182933 -0.242691 0.311231 +v -0.184492 -0.242737 0.310749 +v -0.182450 -0.242077 0.309346 +v -0.184030 -0.242150 0.308931 +v -0.185912 -0.243037 0.310203 +v -0.186338 -0.243578 0.311704 +v -0.185474 -0.242480 0.308461 +v -0.186740 -0.244089 0.312724 +v -0.187914 -0.244506 0.311874 +v -0.188227 -0.244903 0.312423 +v -0.187137 -0.244594 0.313415 +v -0.188938 -0.245162 0.310936 +v -0.190672 -0.244926 0.310199 +v -0.190818 -0.245111 0.310467 +v -0.189157 -0.245440 0.311328 +v -0.122947 -0.274369 0.312837 +v -0.122581 -0.273553 0.310728 +v -0.123342 -0.275251 0.314779 +v -0.109688 -0.280972 0.314779 +v -0.109336 -0.280071 0.312837 +v -0.109011 -0.279238 0.310728 +v -0.150278 -0.262799 0.316388 +v -0.137202 -0.269856 0.316388 +v -0.123796 -0.276263 0.316388 +v -0.124300 -0.277388 0.317694 +v -0.110539 -0.283153 0.317694 +v -0.110091 -0.282005 0.316388 +v -0.124846 -0.278607 0.318725 +v -0.125427 -0.279903 0.319510 +v -0.111541 -0.285720 0.319510 +v -0.111025 -0.284398 0.318725 +v -0.095462 -0.285099 0.312837 +v -0.095178 -0.284250 0.310728 +v -0.095769 -0.286015 0.314779 +v -0.081619 -0.290370 0.314779 +v -0.081358 -0.289440 0.312837 +v -0.081116 -0.288578 0.310728 +v -0.096121 -0.287067 0.316388 +v -0.096512 -0.288236 0.317694 +v -0.082253 -0.292625 0.317694 +v -0.081920 -0.291438 0.316388 +v -0.067058 -0.293083 0.312837 +v -0.066858 -0.292211 0.310728 +v -0.067273 -0.294025 0.314779 +v -0.052765 -0.296972 0.314779 +v -0.052596 -0.296020 0.312837 +v -0.052440 -0.295140 0.310728 +v -0.067521 -0.295106 0.316388 +v -0.067796 -0.296308 0.317694 +v -0.053175 -0.299278 0.317694 +v -0.052959 -0.298064 0.316388 +v -0.096937 -0.289503 0.318725 +v -0.097387 -0.290849 0.319510 +v -0.082999 -0.295277 0.319510 +v -0.082615 -0.293911 0.318725 +v -0.068094 -0.297610 0.318725 +v -0.068410 -0.298994 0.319510 +v -0.053657 -0.301991 0.319510 +v -0.053409 -0.300593 0.318725 +v -0.038008 -0.298244 0.312837 +v -0.037895 -0.297357 0.310728 +v -0.038130 -0.299203 0.314779 +v -0.023403 -0.300714 0.314779 +v -0.023328 -0.299750 0.312837 +v -0.023258 -0.298858 0.310728 +v -0.038270 -0.300303 0.316388 +v -0.038426 -0.301526 0.317694 +v -0.023585 -0.303049 0.317694 +v -0.023489 -0.301820 0.316388 +v -0.008592 -0.300534 0.312837 +v -0.008566 -0.299639 0.310728 +v -0.008619 -0.301500 0.314779 +v 0.006185 -0.301560 0.314779 +v 0.006165 -0.300593 0.312837 +v 0.006147 -0.299699 0.310728 +v -0.008651 -0.302608 0.316388 +v -0.008686 -0.303841 0.317694 +v 0.006233 -0.303901 0.317694 +v 0.006208 -0.302669 0.316388 +v -0.038595 -0.302852 0.318725 +v -0.038774 -0.304260 0.319510 +v -0.023798 -0.305796 0.319510 +v -0.023688 -0.304381 0.318725 +v -0.008724 -0.305176 0.318725 +v -0.008765 -0.306595 0.319510 +v 0.006290 -0.306656 0.319510 +v 0.006260 -0.305237 0.318725 +v 0.020907 -0.299929 0.312837 +v 0.020845 -0.299036 0.310728 +v 0.020974 -0.300893 0.314779 +v 0.032998 -0.299961 0.314779 +v 0.032883 -0.299002 0.312837 +v 0.032777 -0.298113 0.310728 +v 0.021052 -0.301999 0.316388 +v 0.021137 -0.303229 0.317694 +v 0.033275 -0.302287 0.317694 +v 0.033129 -0.301063 0.316388 +v 0.039342 -0.298275 0.312837 +v 0.039192 -0.297393 0.310728 +v 0.039503 -0.299228 0.314779 +v 0.043041 -0.298658 0.314760 +v 0.042845 -0.297713 0.312821 +v 0.042664 -0.296838 0.310714 +v 0.045956 -0.297282 0.312773 +v 0.048752 -0.296999 0.312676 +v 0.048562 -0.296136 0.310590 +v 0.045764 -0.296412 0.310673 +v 0.046162 -0.298220 0.314704 +v 0.048956 -0.297927 0.314591 +v 0.039688 -0.300321 0.316388 +v 0.039894 -0.301537 0.317694 +v 0.043516 -0.300947 0.317668 +v 0.043266 -0.299743 0.316366 +v 0.046399 -0.299294 0.316299 +v 0.049189 -0.298985 0.316165 +v 0.046661 -0.300485 0.317590 +v 0.049447 -0.300155 0.317433 +v 0.051313 -0.296884 0.312516 +v 0.053638 -0.296935 0.312291 +v 0.053454 -0.296098 0.310258 +v 0.051125 -0.296031 0.310452 +v 0.051514 -0.297795 0.314404 +v 0.053834 -0.297823 0.314141 +v 0.040117 -0.302854 0.318725 +v 0.040354 -0.304254 0.319510 +v 0.044075 -0.303639 0.319479 +v 0.043787 -0.302252 0.318696 +v 0.033433 -0.303613 0.318725 +v 0.033601 -0.305023 0.319510 +v 0.055728 -0.297153 0.312002 +v 0.057582 -0.297539 0.311648 +v 0.057408 -0.296747 0.309705 +v 0.055548 -0.296337 0.310009 +v 0.055917 -0.298012 0.313804 +v 0.057764 -0.298361 0.313391 +v 0.051740 -0.298825 0.315941 +v 0.054052 -0.298815 0.315629 +v 0.051990 -0.299960 0.317172 +v 0.054291 -0.299900 0.316807 +v 0.046946 -0.301775 0.318608 +v 0.049726 -0.301421 0.318433 +v 0.047248 -0.303147 0.319384 +v 0.050023 -0.302767 0.319193 +v 0.059202 -0.298092 0.311231 +v 0.060585 -0.298811 0.310749 +v 0.060424 -0.298082 0.308931 +v 0.059033 -0.297329 0.309346 +v 0.059373 -0.298870 0.312904 +v 0.060746 -0.299540 0.312341 +v 0.056125 -0.298954 0.315226 +v 0.057958 -0.299243 0.314735 +v 0.056350 -0.299976 0.316337 +v 0.058166 -0.300187 0.315763 +v 0.061733 -0.299698 0.310203 +v 0.061581 -0.299007 0.308461 +v 0.061882 -0.300371 0.311704 +v 0.059552 -0.299681 0.314154 +v 0.060906 -0.300268 0.313483 +v 0.059740 -0.300534 0.315085 +v 0.061071 -0.301016 0.314302 +v 0.062021 -0.301006 0.312724 +v 0.062897 -0.301892 0.311874 +v 0.062160 -0.301633 0.313415 +v 0.063006 -0.302386 0.312423 +v 0.063534 -0.302928 0.310936 +v 0.065199 -0.303470 0.310199 +v 0.063610 -0.303274 0.311328 +v 0.065250 -0.303699 0.310467 +v 0.059939 -0.301440 0.315801 +v 0.061244 -0.301802 0.314924 +v 0.058388 -0.301197 0.316561 +v 0.058626 -0.302277 0.317165 +v 0.060153 -0.302412 0.316340 +v 0.061431 -0.302649 0.315389 +v 0.056592 -0.301074 0.317205 +v 0.054549 -0.301070 0.317731 +v 0.054824 -0.302317 0.318433 +v 0.056850 -0.302246 0.317862 +v 0.060385 -0.303461 0.316740 +v 0.061635 -0.303578 0.315739 +v 0.058881 -0.303431 0.317608 +v 0.059150 -0.304653 0.317911 +v 0.060633 -0.304588 0.317016 +v 0.061859 -0.304595 0.315982 +v 0.057123 -0.303488 0.318343 +v 0.055113 -0.303631 0.318944 +v 0.055415 -0.305000 0.319289 +v 0.057411 -0.304790 0.318669 +v 0.062633 -0.303781 0.314603 +v 0.063377 -0.304071 0.313334 +v 0.063236 -0.303431 0.313107 +v 0.062458 -0.302989 0.314312 +v 0.062830 -0.304674 0.314811 +v 0.063544 -0.304825 0.313502 +v 0.063051 -0.305679 0.314941 +v 0.063739 -0.305712 0.313610 +v 0.062104 -0.305706 0.316131 +v 0.062366 -0.306896 0.316194 +v 0.063294 -0.306782 0.314996 +v 0.063961 -0.306718 0.313656 +v 0.060898 -0.305793 0.317182 +v 0.059433 -0.305939 0.318092 +v 0.059727 -0.307271 0.318168 +v 0.061177 -0.307059 0.317252 +v 0.063555 -0.307968 0.314980 +v 0.062642 -0.308148 0.316180 +v 0.062926 -0.309434 0.316107 +v 0.063828 -0.309207 0.314908 +v 0.064206 -0.307830 0.313638 +v 0.064467 -0.309015 0.313569 +v 0.057709 -0.306145 0.318863 +v 0.055726 -0.306410 0.319493 +v 0.056041 -0.307844 0.319578 +v 0.058015 -0.307533 0.318944 +v 0.061466 -0.308369 0.317239 +v 0.060027 -0.308632 0.318157 +v 0.060327 -0.309998 0.318082 +v 0.061759 -0.309698 0.317165 +v 0.058324 -0.308937 0.318934 +v 0.056359 -0.309283 0.319570 +v 0.056672 -0.310705 0.319493 +v 0.058632 -0.310333 0.318858 +v 0.053483 -0.306735 0.319983 +v 0.050982 -0.307119 0.320333 +v 0.051311 -0.308614 0.320424 +v 0.053807 -0.308204 0.320072 +v 0.053163 -0.305281 0.319772 +v 0.050654 -0.305634 0.320116 +v 0.054130 -0.309671 0.320064 +v 0.051638 -0.310100 0.320417 +v 0.051959 -0.311556 0.320339 +v 0.054448 -0.311113 0.319986 +v 0.058933 -0.311700 0.318740 +v 0.060624 -0.311344 0.317966 +v 0.056977 -0.312089 0.319374 +v 0.059061 -0.321549 0.318231 +v 0.061015 -0.321149 0.317598 +v 0.062703 -0.320779 0.316825 +v 0.052850 -0.303861 0.319412 +v 0.050333 -0.304178 0.319745 +v 0.052548 -0.302491 0.318876 +v 0.062050 -0.311020 0.317050 +v 0.063211 -0.310728 0.315994 +v 0.064125 -0.320439 0.315911 +v 0.065282 -0.320128 0.314857 +v 0.064106 -0.310468 0.314797 +v 0.064737 -0.310240 0.313459 +v 0.066173 -0.319847 0.313662 +v 0.066798 -0.319595 0.312326 +v 0.054755 -0.312510 0.319867 +v 0.052269 -0.312963 0.320219 +v 0.054357 -0.322438 0.319074 +v 0.056842 -0.321979 0.318723 +v 0.066664 -0.346792 0.314449 +v 0.068350 -0.346411 0.313677 +v 0.064713 -0.347200 0.315080 +v 0.071957 -0.380081 0.310835 +v 0.073907 -0.379665 0.310204 +v 0.075591 -0.379276 0.309433 +v 0.062495 -0.347636 0.315572 +v 0.060011 -0.348100 0.315922 +v 0.067257 -0.380991 0.311676 +v 0.069740 -0.380523 0.311325 +v 0.069770 -0.346059 0.312764 +v 0.070923 -0.345734 0.311711 +v 0.077008 -0.378913 0.308522 +v 0.078159 -0.378576 0.307471 +v 0.065102 -0.310045 0.311981 +v 0.066564 -0.309616 0.310819 +v 0.066308 -0.308462 0.310924 +v 0.064841 -0.308859 0.312088 +v 0.067157 -0.319373 0.310850 +v 0.068633 -0.318920 0.309691 +v 0.064593 -0.307733 0.312156 +v 0.066068 -0.307383 0.310991 +v 0.065853 -0.306418 0.311013 +v 0.064366 -0.306703 0.312176 +v 0.071811 -0.345437 0.310518 +v 0.072432 -0.345167 0.309185 +v 0.079043 -0.378265 0.306279 +v 0.079661 -0.377980 0.304948 +v 0.085894 -0.409358 0.301859 +v 0.086508 -0.409057 0.300529 +v 0.085013 -0.409684 0.303048 +v 0.091494 -0.439103 0.298457 +v 0.092372 -0.438761 0.297271 +v 0.092982 -0.438442 0.295945 +v 0.083865 -0.410034 0.304097 +v 0.082450 -0.410409 0.305006 +v 0.088937 -0.439854 0.300412 +v 0.090350 -0.439467 0.299505 +v 0.080768 -0.410807 0.305776 +v 0.078820 -0.411231 0.306405 +v 0.085311 -0.440695 0.301808 +v 0.087258 -0.440263 0.301180 +v 0.096472 -0.467257 0.294760 +v 0.097614 -0.466878 0.293716 +v 0.095063 -0.467656 0.295665 +v 0.100836 -0.493861 0.290782 +v 0.102243 -0.493448 0.289879 +v 0.103381 -0.493053 0.288838 +v 0.076605 -0.411679 0.306895 +v 0.074122 -0.412151 0.307245 +v 0.080616 -0.441626 0.302646 +v 0.083098 -0.441149 0.302297 +v 0.093386 -0.468076 0.296431 +v 0.091441 -0.468517 0.297058 +v 0.097219 -0.494743 0.292171 +v 0.099162 -0.494293 0.291546 +v 0.089229 -0.468979 0.297545 +v 0.086749 -0.469460 0.297894 +v 0.092530 -0.495698 0.293004 +v 0.095009 -0.495211 0.292657 +v 0.071373 -0.412648 0.307455 +v 0.066856 -0.413428 0.307560 +v 0.072986 -0.442970 0.302960 +v 0.077868 -0.442126 0.302855 +v 0.064507 -0.381485 0.311886 +v 0.060376 -0.382199 0.311991 +v 0.084001 -0.469963 0.298102 +v 0.078774 -0.470867 0.298207 +v 0.084231 -0.497164 0.293316 +v 0.089783 -0.496204 0.293212 +v 0.100446 -0.519892 0.287646 +v 0.102655 -0.519415 0.287161 +v 0.097969 -0.520385 0.287992 +v 0.103076 -0.543564 0.282873 +v 0.105552 -0.543065 0.282528 +v 0.107759 -0.542581 0.282046 +v 0.057260 -0.348592 0.316133 +v 0.053536 -0.349235 0.316238 +v 0.051606 -0.322927 0.319285 +v 0.048199 -0.323515 0.319390 +v 0.104596 -0.518955 0.286538 +v 0.106268 -0.518512 0.285777 +v 0.109697 -0.542111 0.281425 +v 0.111366 -0.541654 0.280667 +v 0.049517 -0.313448 0.320430 +v 0.046227 -0.314014 0.320536 +v 0.049206 -0.312036 0.320550 +v 0.045933 -0.312596 0.320656 +v 0.059069 -0.414753 0.307595 +v 0.064103 -0.444480 0.302995 +v 0.053746 -0.383326 0.312026 +v 0.043097 -0.384657 0.312026 +v 0.046871 -0.416307 0.307595 +v 0.050441 -0.446245 0.302995 +v 0.048884 -0.310571 0.320629 +v 0.045628 -0.311125 0.320735 +v 0.048554 -0.309074 0.320636 +v 0.045315 -0.309618 0.320742 +v 0.048128 -0.350156 0.316273 +v 0.043745 -0.324273 0.319426 +v 0.036005 -0.325185 0.319426 +v 0.039113 -0.351251 0.316273 +v 0.042126 -0.314712 0.320571 +v 0.041884 -0.313284 0.320692 +v 0.034686 -0.314118 0.320692 +v 0.034857 -0.315556 0.320571 +v 0.048221 -0.307563 0.320543 +v 0.045000 -0.308097 0.320648 +v 0.047890 -0.306059 0.320323 +v 0.044685 -0.306581 0.320426 +v 0.041633 -0.311802 0.320770 +v 0.041376 -0.310284 0.320777 +v 0.034325 -0.311096 0.320777 +v 0.034508 -0.312625 0.320770 +v 0.022067 -0.316560 0.320571 +v 0.022741 -0.326234 0.319426 +v 0.021966 -0.315115 0.320692 +v 0.006477 -0.315814 0.320692 +v 0.006507 -0.317261 0.320571 +v 0.006706 -0.326957 0.319426 +v 0.021861 -0.313615 0.320770 +v 0.021754 -0.312079 0.320777 +v 0.006415 -0.312771 0.320777 +v 0.006447 -0.314310 0.320770 +v 0.041116 -0.308751 0.320684 +v 0.040857 -0.307222 0.320461 +v 0.033958 -0.308012 0.320461 +v 0.034141 -0.309552 0.320684 +v 0.024566 -0.352421 0.316273 +v 0.026906 -0.385982 0.312026 +v 0.007244 -0.353202 0.316273 +v 0.007934 -0.386838 0.312026 +v 0.021646 -0.310528 0.320684 +v 0.021538 -0.308981 0.320461 +v 0.006351 -0.309666 0.320461 +v 0.006383 -0.311216 0.320684 +v 0.021432 -0.307458 0.320079 +v 0.021329 -0.305978 0.319510 +v 0.006320 -0.308139 0.320079 +v 0.033777 -0.306496 0.320079 +v 0.047564 -0.304581 0.319946 +v 0.044375 -0.305088 0.320046 +v 0.052261 -0.301186 0.318140 +v 0.040602 -0.305716 0.320079 +v 0.021230 -0.304562 0.318725 +v -0.008807 -0.308078 0.320079 +v -0.008851 -0.309604 0.320461 +v -0.023913 -0.307275 0.320079 +v -0.024032 -0.308797 0.320461 +v -0.008895 -0.311155 0.320684 +v -0.008940 -0.312709 0.320777 +v -0.024152 -0.310344 0.320684 +v -0.024273 -0.311894 0.320777 +v -0.038962 -0.305731 0.320079 +v -0.039155 -0.307246 0.320461 +v -0.053916 -0.303451 0.320079 +v -0.054184 -0.304955 0.320461 +v -0.008984 -0.314248 0.320770 +v -0.009027 -0.315751 0.320692 +v -0.024392 -0.313429 0.320770 +v -0.024509 -0.314928 0.320692 +v -0.039351 -0.308784 0.320684 +v -0.039548 -0.310327 0.320777 +v -0.054455 -0.306482 0.320684 +v -0.054727 -0.308013 0.320777 +v -0.068741 -0.300440 0.320079 +v -0.069082 -0.301929 0.320461 +v -0.083400 -0.296705 0.320079 +v -0.083813 -0.298175 0.320461 +v -0.009068 -0.317198 0.320571 +v -0.009345 -0.326892 0.319426 +v -0.024621 -0.316372 0.320571 +v -0.025374 -0.326040 0.319426 +v -0.039742 -0.311854 0.320770 +v -0.039932 -0.313346 0.320692 +v -0.054996 -0.309528 0.320770 +v -0.055259 -0.311009 0.320692 +v -0.069428 -0.303440 0.320684 +v -0.069774 -0.304956 0.320777 +v -0.084233 -0.299669 0.320684 +v -0.084654 -0.301166 0.320777 +v -0.097858 -0.292255 0.320079 +v -0.098343 -0.293703 0.320461 +v -0.112081 -0.287102 0.320079 +v -0.112636 -0.288524 0.320461 +v -0.126033 -0.281256 0.320079 +v -0.126658 -0.282650 0.320461 +v -0.098836 -0.295174 0.320684 +v -0.099329 -0.296649 0.320777 +v -0.113200 -0.289969 0.320684 +v -0.113766 -0.291418 0.320777 +v -0.070118 -0.306457 0.320770 +v -0.070453 -0.307923 0.320692 +v -0.085070 -0.302647 0.320770 +v -0.085477 -0.304095 0.320692 +v -0.127292 -0.284065 0.320684 +v -0.127928 -0.285484 0.320777 +v -0.099818 -0.298108 0.320770 +v -0.100296 -0.299534 0.320692 +v -0.114325 -0.292852 0.320770 +v -0.114872 -0.294253 0.320692 +v -0.128557 -0.286889 0.320770 +v -0.129172 -0.288261 0.320692 +v -0.142479 -0.280236 0.320770 +v -0.143161 -0.281576 0.320692 +v -0.156058 -0.272907 0.320770 +v -0.156805 -0.274212 0.320692 +v -0.100755 -0.300908 0.320571 +v -0.103834 -0.310103 0.319426 +v -0.088493 -0.314825 0.319426 +v -0.085869 -0.305489 0.320571 +v -0.115399 -0.295602 0.320571 +v -0.118925 -0.304635 0.319426 +v -0.157524 -0.275469 0.320571 +v -0.162337 -0.283887 0.319426 +v -0.148212 -0.291511 0.319426 +v -0.143817 -0.282867 0.320571 +v -0.129764 -0.289583 0.320571 +v -0.133730 -0.298432 0.319426 +v -0.175368 -0.306676 0.316273 +v -0.192069 -0.335881 0.312026 +v -0.175357 -0.344901 0.312026 +v -0.160109 -0.314911 0.316273 +v -0.187960 -0.299296 0.316273 +v -0.206073 -0.327647 0.312026 +v -0.144464 -0.322388 0.316273 +v -0.158222 -0.353089 0.312026 +v -0.140706 -0.360428 0.312026 +v -0.128472 -0.329088 0.316273 +v -0.112169 -0.334995 0.316273 +v -0.122851 -0.366898 0.312026 +v -0.104701 -0.372484 0.312026 +v -0.095597 -0.340096 0.316273 +v -0.070776 -0.309334 0.320571 +v -0.072939 -0.318787 0.319426 +v -0.057209 -0.321983 0.319426 +v -0.055513 -0.312435 0.320571 +v -0.078794 -0.344377 0.316273 +v -0.086298 -0.377172 0.312026 +v -0.067687 -0.380953 0.312026 +v -0.061801 -0.347829 0.316273 +v -0.040115 -0.314782 0.320571 +v -0.041341 -0.324402 0.319426 +v -0.044660 -0.350442 0.316273 +v -0.048913 -0.383815 0.312026 +v -0.030021 -0.385753 0.312026 +v -0.027411 -0.352211 0.316273 +v -0.010095 -0.353132 0.316273 +v -0.011057 -0.386761 0.312026 +v -0.052942 -0.415433 0.307595 +v -0.056753 -0.445341 0.302995 +v -0.034833 -0.447590 0.302995 +v -0.032494 -0.417531 0.307595 +v -0.073263 -0.412335 0.307595 +v -0.078537 -0.442021 0.302995 +v 0.029122 -0.417779 0.307595 +v 0.031219 -0.447856 0.302995 +v 0.008588 -0.418705 0.307595 +v 0.009206 -0.448849 0.302995 +v -0.011967 -0.418622 0.307595 +v -0.012829 -0.448760 0.302995 +v 0.068858 -0.472552 0.298242 +v 0.073340 -0.499016 0.293351 +v 0.053812 -0.474518 0.298242 +v 0.056990 -0.501169 0.293351 +v 0.033199 -0.476260 0.298242 +v 0.035065 -0.503035 0.293351 +v 0.009790 -0.477316 0.298242 +v 0.010340 -0.504150 0.293351 +v -0.013643 -0.477221 0.298242 +v -0.014410 -0.504049 0.293351 +v -0.037042 -0.475977 0.298242 +v -0.039125 -0.502736 0.293351 +v -0.093407 -0.408243 0.307595 +v -0.100131 -0.437634 0.302995 +v -0.113326 -0.403169 0.307595 +v -0.121484 -0.432194 0.302995 +v -0.060353 -0.473586 0.298242 +v -0.063746 -0.500210 0.293351 +v -0.083518 -0.470054 0.298242 +v -0.088213 -0.496480 0.293351 +v -0.132972 -0.397122 0.307595 +v -0.142545 -0.425712 0.302995 +v -0.152297 -0.390119 0.307595 +v -0.163262 -0.418206 0.302995 +v -0.106482 -0.465389 0.298242 +v -0.112468 -0.491554 0.293351 +v -0.129189 -0.459604 0.298242 +v -0.136452 -0.485443 0.293351 +v -0.171256 -0.382176 0.307595 +v -0.183585 -0.409691 0.302995 +v -0.189802 -0.373313 0.307595 +v -0.203467 -0.400189 0.302995 +v -0.151585 -0.452711 0.298242 +v -0.160107 -0.478163 0.293351 +v -0.173616 -0.444729 0.298242 +v -0.183377 -0.469731 0.293351 +v -0.066938 -0.525262 0.288338 +v -0.069936 -0.548783 0.283218 +v -0.042924 -0.551554 0.283218 +v -0.041084 -0.527914 0.288338 +v -0.092631 -0.521344 0.288338 +v -0.096779 -0.544692 0.283218 +v -0.118101 -0.516171 0.288338 +v -0.123389 -0.539286 0.283218 +v -0.143286 -0.509754 0.288338 +v -0.149703 -0.532583 0.283218 +v -0.015131 -0.529294 0.288338 +v -0.015809 -0.552997 0.283218 +v 0.011344 -0.553106 0.283218 +v 0.010858 -0.529399 0.288338 +v -0.195229 -0.435674 0.298242 +v -0.206204 -0.460167 0.293351 +v -0.216371 -0.425570 0.298242 +v -0.228535 -0.449495 0.293351 +v 0.036821 -0.528228 0.288338 +v 0.038470 -0.551883 0.283218 +v 0.062788 -0.549790 0.283218 +v 0.059980 -0.526245 0.288338 +v -0.207891 -0.363550 0.307595 +v -0.222858 -0.389723 0.302995 +v -0.223234 -0.354507 0.307595 +v -0.239467 -0.379914 0.302995 +v -0.195601 -0.294390 0.316273 +v -0.215084 -0.321818 0.312026 +v -0.233542 -0.347803 0.307595 +v -0.251002 -0.372383 0.302995 +v -0.236992 -0.414440 0.298242 +v -0.250316 -0.437740 0.293351 +v -0.254797 -0.403907 0.298242 +v -0.269248 -0.426526 0.293351 +v -0.280002 -0.386679 0.298103 +v -0.275688 -0.389765 0.298207 +v -0.296619 -0.407795 0.293212 +v -0.292037 -0.411074 0.293316 +v -0.267491 -0.395595 0.298242 +v -0.283034 -0.417477 0.293351 +v -0.312253 -0.427663 0.288200 +v -0.307420 -0.431123 0.288303 +v -0.297659 -0.438065 0.288338 +v -0.282844 -0.447807 0.288338 +v -0.262852 -0.459662 0.288338 +v -0.274623 -0.480247 0.283218 +v -0.250728 -0.493144 0.283218 +v -0.239981 -0.472007 0.288338 +v -0.285652 -0.499534 0.278006 +v -0.260797 -0.512949 0.278006 +v -0.216531 -0.483213 0.288338 +v -0.226228 -0.504852 0.283218 +v -0.201184 -0.515345 0.283218 +v -0.192561 -0.493256 0.288338 +v -0.235314 -0.525127 0.278006 +v -0.243806 -0.544079 0.272718 +v -0.216816 -0.555387 0.272718 +v -0.209264 -0.536041 0.278006 +v -0.251725 -0.561750 0.267369 +v -0.259088 -0.578182 0.261974 +v -0.230406 -0.590199 0.261974 +v -0.223858 -0.573426 0.267369 +v -0.168126 -0.502110 0.288338 +v -0.175655 -0.524595 0.283218 +v -0.182709 -0.545663 0.278006 +v -0.189303 -0.565356 0.272718 +v -0.161335 -0.573964 0.272718 +v -0.155715 -0.553971 0.278006 +v -0.128345 -0.560944 0.278006 +v -0.132977 -0.581189 0.272718 +v -0.104299 -0.587014 0.272718 +v -0.100666 -0.566566 0.278006 +v -0.195452 -0.583719 0.267369 +v -0.201169 -0.600793 0.261974 +v -0.171447 -0.609941 0.261974 +v -0.166575 -0.592606 0.267369 +v -0.137296 -0.600066 0.267369 +v -0.141312 -0.617618 0.261974 +v -0.110837 -0.623809 0.261974 +v -0.107687 -0.606080 0.267369 +v -0.072745 -0.570823 0.278006 +v -0.075370 -0.591424 0.272718 +v -0.046259 -0.594411 0.272718 +v -0.044648 -0.573705 0.278006 +v -0.077818 -0.610633 0.267369 +v -0.080094 -0.628495 0.261974 +v -0.049159 -0.631669 0.261974 +v -0.047762 -0.613717 0.267369 +v -0.016444 -0.575204 0.278006 +v -0.017037 -0.595964 0.272718 +v 0.012226 -0.596083 0.272718 +v 0.011800 -0.575319 0.278006 +v -0.017591 -0.615321 0.267369 +v -0.018105 -0.633319 0.261974 +v 0.012992 -0.633446 0.261974 +v 0.012623 -0.615443 0.267369 +v 0.040015 -0.574046 0.278006 +v 0.041460 -0.594764 0.272718 +v 0.067878 -0.592474 0.272718 +v 0.065419 -0.571852 0.278006 +v 0.042806 -0.614082 0.267369 +v 0.044058 -0.632044 0.261974 +v 0.072302 -0.629582 0.261974 +v 0.070170 -0.611702 0.267369 +v -0.018582 -0.650006 0.256549 +v -0.019051 -0.666421 0.250663 +v 0.013671 -0.666553 0.250663 +v 0.013335 -0.650136 0.256549 +v -0.050454 -0.648312 0.256549 +v -0.051728 -0.664683 0.250663 +v 0.045219 -0.648698 0.256549 +v 0.046361 -0.665079 0.250663 +v 0.076223 -0.662463 0.250663 +v 0.074279 -0.646158 0.256549 +v 0.091928 -0.608769 0.267369 +v 0.088694 -0.589676 0.272718 +v 0.094934 -0.626522 0.261974 +v 0.110523 -0.623871 0.261940 +v 0.106863 -0.606230 0.267335 +v 0.102926 -0.587257 0.272684 +v -0.082205 -0.645055 0.256549 +v -0.084281 -0.661344 0.250663 +v -0.113757 -0.640245 0.256549 +v -0.116630 -0.656412 0.250663 +v 0.085226 -0.569200 0.278006 +v 0.081516 -0.547294 0.283218 +v 0.098703 -0.566909 0.277972 +v 0.094186 -0.545140 0.283183 +v -0.145035 -0.633891 0.256549 +v -0.148698 -0.649899 0.250663 +v -0.175964 -0.626012 0.256549 +v -0.180408 -0.641820 0.250663 +v 0.077557 -0.523914 0.288338 +v 0.089365 -0.521908 0.288303 +v 0.095222 -0.520894 0.288200 +v 0.100330 -0.544077 0.283080 +v 0.105116 -0.565797 0.277869 +v 0.107860 -0.565281 0.277663 +v 0.109589 -0.586101 0.272581 +v 0.112333 -0.585581 0.272376 +v 0.113760 -0.605032 0.267233 +v 0.116503 -0.604507 0.267029 +v 0.117638 -0.622634 0.261839 +v 0.110335 -0.564776 0.277319 +v 0.112541 -0.564283 0.276839 +v 0.114806 -0.585069 0.272035 +v 0.118975 -0.603989 0.266690 +v 0.114476 -0.563801 0.276221 +v 0.116142 -0.563331 0.275466 +v 0.117539 -0.562872 0.274574 +v 0.112766 -0.541211 0.279770 +v 0.107671 -0.518084 0.284877 +v 0.108805 -0.517673 0.283839 +v 0.109671 -0.517278 0.282663 +v 0.104251 -0.492677 0.287657 +v 0.098488 -0.466519 0.292532 +v 0.099094 -0.466181 0.291209 +v 0.086855 -0.408780 0.299060 +v 0.088492 -0.408244 0.297906 +v 0.081593 -0.377214 0.302320 +v 0.080013 -0.377722 0.303476 +v 0.093325 -0.438145 0.294479 +v 0.095014 -0.437582 0.293327 +v 0.072787 -0.344926 0.307711 +v 0.074308 -0.344446 0.306553 +v 0.121233 -0.638953 0.256415 +v 0.113917 -0.640227 0.256515 +v 0.117255 -0.656315 0.250630 +v 0.124770 -0.655005 0.250531 +v 0.097722 -0.642982 0.256549 +v 0.100464 -0.659172 0.250663 +v 0.128472 -0.671806 0.243757 +v 0.120750 -0.673155 0.243855 +v 0.103334 -0.676118 0.243887 +v 0.106106 -0.692484 0.236703 +v 0.078259 -0.679530 0.243887 +v 0.080224 -0.696012 0.236703 +v 0.108553 -0.706934 0.229591 +v 0.081959 -0.710565 0.229591 +v 0.047556 -0.682225 0.243887 +v 0.048711 -0.698784 0.236703 +v 0.014024 -0.683737 0.243887 +v 0.014364 -0.700333 0.236703 +v 0.049730 -0.713404 0.229591 +v 0.050621 -0.726191 0.222589 +v 0.014665 -0.714985 0.229591 +v 0.014928 -0.727801 0.222589 +v -0.019543 -0.683601 0.243887 +v -0.020017 -0.700194 0.236703 +v -0.053062 -0.681819 0.243887 +v -0.054350 -0.698368 0.236703 +v 0.051392 -0.737253 0.215731 +v 0.052050 -0.746697 0.209055 +v 0.015155 -0.738887 0.215731 +v 0.015349 -0.748352 0.209055 +v -0.020436 -0.714843 0.229591 +v -0.020802 -0.727656 0.222589 +v -0.055487 -0.712979 0.229591 +v -0.056481 -0.725759 0.222589 +v -0.086453 -0.678394 0.243887 +v -0.088552 -0.694860 0.236703 +v -0.119636 -0.673335 0.243887 +v -0.122540 -0.689678 0.236703 +v 0.052603 -0.754630 0.202597 +v 0.053059 -0.761160 0.196391 +v 0.015512 -0.756303 0.202597 +v 0.015646 -0.762847 0.196391 +v -0.021119 -0.738740 0.215731 +v -0.021389 -0.748204 0.209055 +v -0.057342 -0.736815 0.215731 +v -0.058076 -0.746253 0.209055 +v -0.090404 -0.709397 0.229591 +v -0.092025 -0.722113 0.222589 +v -0.125104 -0.704108 0.229591 +v -0.127346 -0.716728 0.222589 +v 0.053423 -0.766392 0.190475 +v 0.015754 -0.768091 0.190476 +v -0.021617 -0.756153 0.202597 +v -0.021804 -0.762695 0.196391 +v -0.058693 -0.754182 0.202597 +v -0.021954 -0.767938 0.190476 +v -0.095629 -0.750393 0.202597 +v -0.094623 -0.742504 0.209055 +v -0.093427 -0.733113 0.215731 +v -0.129286 -0.727646 0.215731 +v -0.164834 -0.720426 0.215731 +v -0.162361 -0.709616 0.222589 +v -0.227064 -0.678130 0.229591 +v -0.222411 -0.664233 0.236703 +v -0.193516 -0.688455 0.229591 +v -0.189551 -0.674346 0.236703 +v -0.159502 -0.697120 0.229591 +v -0.156234 -0.682834 0.236703 +v -0.217140 -0.648493 0.243887 +v -0.211683 -0.632194 0.250663 +v -0.185059 -0.658366 0.243887 +v -0.265915 -0.593416 0.256549 +v -0.236477 -0.605750 0.256549 +v -0.152531 -0.666653 0.243887 +v -0.206469 -0.616623 0.256549 +v 0.062303 -0.302283 0.313930 +v 0.063116 -0.302884 0.312819 +v 0.063683 -0.303604 0.311591 +v 0.065293 -0.303897 0.310626 +v 0.063765 -0.303976 0.311775 +v 0.065346 -0.304132 0.310729 +v 0.063869 -0.304448 0.311932 +v 0.065421 -0.304472 0.310830 +v 0.064001 -0.305048 0.312055 +v 0.065527 -0.304950 0.310918 +v 0.064168 -0.305804 0.312139 +v 0.065672 -0.305603 0.310984 +v -0.189366 -0.245706 0.311591 +v -0.188542 -0.245304 0.312819 +v -0.190944 -0.245270 0.310626 +v -0.187549 -0.245117 0.313930 +v 0.162246 -0.750965 0.176068 +v 0.164343 -0.749420 0.175583 +v 0.162590 -0.752526 0.172222 +v 0.164678 -0.750929 0.171870 +v 0.162881 -0.753844 0.162776 +v 0.164958 -0.752187 0.162729 +v 0.164935 -0.752083 0.165551 +v 0.162856 -0.753733 0.165666 +v 0.162806 -0.755358 0.162836 +v 0.162803 -0.755347 0.160000 +v 0.162878 -0.753830 0.160000 +v 0.164955 -0.752171 0.160000 +v 0.162438 -0.756779 0.162890 +v 0.161778 -0.758107 0.162939 +v 0.161776 -0.758099 0.160000 +v 0.162436 -0.756770 0.160000 +v 0.160825 -0.759341 0.162982 +v 0.159579 -0.760481 0.163019 +v 0.159578 -0.760477 0.160000 +v 0.160824 -0.759335 0.160000 +v 0.158040 -0.761529 0.163050 +v 0.156208 -0.762482 0.163076 +v 0.156208 -0.762480 0.160000 +v 0.158039 -0.761526 0.160000 +v 0.154084 -0.763343 0.163096 +v 0.151667 -0.764110 0.163111 +v 0.151666 -0.764109 0.160000 +v 0.154084 -0.763342 0.160000 +v 0.148957 -0.764783 0.163119 +v 0.140096 -0.766391 0.163123 +v 0.140096 -0.766391 0.160000 +v 0.148956 -0.764783 0.160000 +v 0.119228 -0.769961 0.163125 +v 0.119228 -0.769961 0.160000 +v 0.089528 -0.774040 0.163125 +v 0.089528 -0.774040 0.160000 +v 0.054175 -0.777174 0.163125 +v 0.054175 -0.777174 0.160000 +v 0.015976 -0.778896 0.163125 +v 0.015975 -0.778896 0.160000 +v -0.022262 -0.778741 0.163125 +v -0.022262 -0.778741 0.160000 +v -0.060447 -0.776712 0.163125 +v -0.060447 -0.776712 0.160000 +v -0.098485 -0.772810 0.163125 +v -0.098485 -0.772809 0.160000 +v -0.136287 -0.767047 0.163125 +v -0.136287 -0.767047 0.160000 +v -0.173760 -0.759435 0.163125 +v -0.173760 -0.759435 0.160000 +v -0.210814 -0.749995 0.163125 +v -0.210814 -0.749995 0.160000 +v -0.247361 -0.738747 0.163125 +v -0.247361 -0.738747 0.160000 +v -0.283312 -0.725720 0.163125 +v -0.283312 -0.725720 0.160000 +v -0.318580 -0.710944 0.163125 +v -0.318580 -0.710944 0.160000 +v -0.353081 -0.694456 0.163125 +v -0.353081 -0.694456 0.160000 +v -0.386730 -0.676294 0.163125 +v -0.386730 -0.676294 0.160000 +v -0.417204 -0.658099 0.163125 +v -0.417204 -0.658099 0.160000 +v -0.442175 -0.641512 0.163125 +v -0.442175 -0.641512 0.160000 +v -0.459414 -0.629222 0.163123 +v -0.459414 -0.629222 0.160000 +v -0.466694 -0.623922 0.163119 +v -0.468842 -0.622137 0.163111 +v -0.468841 -0.622136 0.160000 +v -0.466694 -0.623921 0.160000 +v -0.470685 -0.620395 0.163096 +v -0.472224 -0.618696 0.163076 +v -0.472223 -0.618695 0.160000 +v -0.470684 -0.620394 0.160000 +v -0.473459 -0.617041 0.163051 +v -0.474389 -0.615429 0.163019 +v -0.474387 -0.615425 0.160000 +v -0.473457 -0.617038 0.160000 +v -0.475015 -0.613860 0.162982 +v -0.475337 -0.612334 0.162939 +v -0.475332 -0.612328 0.160000 +v -0.475012 -0.613855 0.160000 +v -0.475354 -0.610851 0.162890 +v -0.475068 -0.609412 0.162836 +v -0.475060 -0.609403 0.160000 +v -0.475349 -0.610844 0.160000 +v -0.475271 -0.610747 0.165944 +v -0.474991 -0.609315 0.165812 +v -0.474476 -0.608016 0.162776 +v -0.475626 -0.605620 0.162729 +v -0.475616 -0.605608 0.160000 +v -0.474468 -0.608005 0.160000 +v -0.474406 -0.607926 0.165666 +v -0.475560 -0.605537 0.165551 +v -0.474177 -0.607636 0.168785 +v -0.474747 -0.609005 0.169068 +v -0.475343 -0.605262 0.168562 +v -0.475015 -0.610420 0.169324 +v 0.099432 -0.465864 0.289747 +v 0.101170 -0.465272 0.288598 +v 0.162776 -0.753371 0.168785 +v 0.164859 -0.751740 0.168562 +v -0.468382 -0.617468 0.179363 +v 0.692888 -0.343740 0.169324 +v 0.692033 -0.342581 0.169068 +v 0.691216 -0.342182 0.172670 +v 0.692036 -0.343323 0.173076 +v 0.693491 -0.345071 0.169553 +v 0.692607 -0.344638 0.173439 +v 0.693883 -0.345262 0.166062 +v 0.693263 -0.343923 0.165944 +v 0.692387 -0.342755 0.165812 +v 0.275746 -0.138425 0.308918 +v 0.277311 -0.137587 0.308388 +v 0.276791 -0.137334 0.306899 +v 0.275193 -0.138154 0.307355 +v 0.274369 -0.138195 0.309592 +v 0.273772 -0.137903 0.307936 +v 0.274930 -0.138469 0.310991 +v 0.276243 -0.138668 0.310203 +v 0.277757 -0.137805 0.309585 +v 0.184570 -0.753302 0.169756 +v 0.183181 -0.752627 0.169553 +v 0.183282 -0.753052 0.166062 +v 0.184675 -0.753744 0.166166 +v 0.186183 -0.753768 0.169931 +v 0.186291 -0.754224 0.166257 +v 0.185943 -0.752753 0.174037 +v 0.184337 -0.752314 0.173759 +v 0.182955 -0.751670 0.173439 +v 0.074927 -0.303347 0.312139 +v 0.075273 -0.303078 0.313610 +v 0.075064 -0.302194 0.313502 +v 0.074749 -0.302594 0.312055 +v 0.073484 -0.303819 0.310984 +v 0.073331 -0.303168 0.310918 +v 0.073675 -0.304632 0.311013 +v 0.075139 -0.304243 0.312176 +v 0.075510 -0.304081 0.313656 +v 0.074024 -0.299529 0.308918 +v 0.074105 -0.298135 0.309592 +v 0.073952 -0.297489 0.307936 +v 0.073883 -0.298930 0.307355 +v 0.072796 -0.300884 0.308388 +v 0.072663 -0.300321 0.306899 +v 0.072909 -0.301368 0.309585 +v 0.074152 -0.300067 0.310203 +v 0.074248 -0.298743 0.310991 +v 0.693841 -0.346574 0.169756 +v 0.693940 -0.348250 0.169931 +v 0.694361 -0.348456 0.166257 +v 0.694249 -0.346774 0.166166 +v 0.692930 -0.346128 0.173759 +v 0.693003 -0.347792 0.174037 +v 0.693785 -0.350098 0.170079 +v 0.693378 -0.352119 0.170200 +v 0.693820 -0.352335 0.166395 +v 0.694218 -0.350310 0.166333 +v 0.692828 -0.349630 0.174271 +v 0.692404 -0.351642 0.174463 +v 0.691286 -0.345323 0.178186 +v 0.691322 -0.346969 0.178568 +v 0.691006 -0.343855 0.177745 +v 0.688567 -0.342661 0.182484 +v 0.688793 -0.344104 0.183038 +v 0.688784 -0.345727 0.183518 +v 0.690484 -0.342563 0.177245 +v 0.689719 -0.341449 0.176686 +v 0.687407 -0.340317 0.181154 +v 0.688105 -0.341399 0.181856 +v 0.692718 -0.354312 0.170295 +v 0.691806 -0.356678 0.170362 +v 0.692262 -0.356900 0.166479 +v 0.693168 -0.354532 0.166444 +v 0.691732 -0.353829 0.174613 +v 0.690811 -0.356190 0.174720 +v 0.684770 -0.339767 0.186936 +v 0.685168 -0.340997 0.187670 +v 0.684143 -0.338720 0.186116 +v 0.679814 -0.336602 0.191516 +v 0.680368 -0.337613 0.192433 +v 0.680701 -0.338811 0.193254 +v 0.683288 -0.337858 0.185209 +v 0.683430 -0.335475 0.184497 +v 0.679242 -0.333434 0.189706 +v 0.679040 -0.335779 0.190502 +v 0.686473 -0.339416 0.180378 +v 0.686555 -0.336997 0.179769 +v 0.673610 -0.333122 0.196200 +v 0.674306 -0.333906 0.197301 +v 0.673869 -0.330816 0.195335 +v 0.667207 -0.327570 0.201327 +v 0.666894 -0.329835 0.202247 +v 0.667515 -0.330583 0.203419 +v 0.658789 -0.325869 0.208589 +v 0.659340 -0.326582 0.209818 +v 0.659150 -0.323644 0.207623 +v 0.649601 -0.318991 0.214173 +v 0.649197 -0.321175 0.215176 +v 0.649682 -0.321856 0.216452 +v 0.674788 -0.334882 0.198297 +v 0.675058 -0.336050 0.199189 +v 0.667930 -0.331526 0.204479 +v 0.668138 -0.332664 0.205428 +v 0.685338 -0.342413 0.188317 +v 0.685279 -0.344012 0.188878 +v 0.680813 -0.340198 0.193978 +v 0.680704 -0.341773 0.194605 +v 0.691115 -0.348792 0.178892 +v 0.690665 -0.350791 0.179157 +v 0.688538 -0.347531 0.183925 +v 0.688057 -0.349515 0.184257 +v 0.689972 -0.352968 0.179363 +v 0.689037 -0.355322 0.179510 +v 0.687339 -0.351680 0.184516 +v 0.686386 -0.354025 0.184701 +v 0.684992 -0.345795 0.189353 +v 0.684477 -0.347763 0.189742 +v 0.680375 -0.343536 0.195136 +v 0.679825 -0.345487 0.195571 +v 0.675114 -0.337409 0.199975 +v 0.674957 -0.338961 0.200657 +v 0.668141 -0.333997 0.206265 +v 0.667937 -0.335526 0.206991 +v 0.690642 -0.359216 0.170403 +v 0.686387 -0.367143 0.170423 +v 0.686843 -0.367373 0.166510 +v 0.691100 -0.359440 0.166500 +v 0.689641 -0.358726 0.174784 +v 0.685389 -0.366639 0.174816 +v 0.687858 -0.357853 0.179598 +v 0.683614 -0.365743 0.179642 +v 0.685197 -0.356551 0.184811 +v 0.680965 -0.364407 0.184867 +v 0.683733 -0.349915 0.190044 +v 0.682761 -0.352251 0.190260 +v 0.679055 -0.347626 0.195909 +v 0.678063 -0.349952 0.196150 +v 0.676201 -0.385674 0.170430 +v 0.676649 -0.385922 0.166514 +v 0.675222 -0.385134 0.174826 +v 0.659970 -0.410840 0.174826 +v 0.660922 -0.411428 0.170430 +v 0.661357 -0.411697 0.166514 +v 0.674586 -0.340703 0.201233 +v 0.674003 -0.342638 0.201705 +v 0.667528 -0.337249 0.207604 +v 0.666912 -0.339168 0.208107 +v 0.659691 -0.327494 0.210931 +v 0.659842 -0.328604 0.211926 +v 0.649974 -0.322739 0.217606 +v 0.650072 -0.323823 0.218639 +v 0.638020 -0.315705 0.221957 +v 0.638463 -0.313564 0.220925 +v 0.625635 -0.307313 0.227835 +v 0.625159 -0.309412 0.228891 +v 0.638444 -0.316357 0.223272 +v 0.625529 -0.310037 0.230236 +v 0.610518 -0.302247 0.235933 +v 0.610838 -0.302848 0.237302 +v 0.611019 -0.300192 0.234858 +v 0.595836 -0.292793 0.241506 +v 0.595312 -0.294806 0.242597 +v 0.595589 -0.295385 0.243985 +v 0.638682 -0.317213 0.224460 +v 0.638731 -0.318274 0.225524 +v 0.625717 -0.310869 0.231452 +v 0.625722 -0.311907 0.232541 +v 0.659795 -0.329913 0.212804 +v 0.659548 -0.331420 0.213565 +v 0.649978 -0.325109 0.219551 +v 0.649690 -0.326596 0.220341 +v 0.673206 -0.344763 0.202072 +v 0.672196 -0.347081 0.202334 +v 0.666090 -0.341281 0.208497 +v 0.665062 -0.343590 0.208776 +v 0.659101 -0.333125 0.214209 +v 0.658455 -0.335029 0.214736 +v 0.649210 -0.328285 0.221009 +v 0.648536 -0.330175 0.221556 +v 0.638594 -0.319538 0.226463 +v 0.638269 -0.321007 0.227276 +v 0.625545 -0.313153 0.233501 +v 0.625186 -0.314605 0.234334 +v 0.610982 -0.303658 0.238541 +v 0.610946 -0.304677 0.239650 +v 0.595693 -0.296176 0.245241 +v 0.595623 -0.297178 0.246365 +v 0.637757 -0.322680 0.227964 +v 0.637057 -0.324558 0.228528 +v 0.624645 -0.316264 0.235038 +v 0.623922 -0.318130 0.235614 +v 0.610735 -0.305905 0.240628 +v 0.610345 -0.307343 0.241475 +v 0.595380 -0.298392 0.247357 +v 0.594964 -0.299816 0.248217 +v 0.581071 -0.289021 0.251067 +v 0.580971 -0.290009 0.252204 +v 0.581002 -0.288247 0.249797 +v 0.566146 -0.280977 0.255164 +v 0.566186 -0.281737 0.256445 +v 0.566060 -0.282712 0.257591 +v 0.580760 -0.287685 0.248393 +v 0.581302 -0.285712 0.247290 +v 0.566494 -0.278496 0.252636 +v 0.565939 -0.280432 0.253748 +v 0.549917 -0.272592 0.259085 +v 0.550095 -0.273123 0.260511 +v 0.550481 -0.270694 0.257964 +v 0.533232 -0.262288 0.263258 +v 0.532660 -0.264147 0.264385 +v 0.532810 -0.264664 0.265819 +v 0.514130 -0.255079 0.269631 +v 0.514256 -0.255585 0.271073 +v 0.514708 -0.253262 0.268498 +v 0.494869 -0.243596 0.273668 +v 0.494289 -0.245370 0.274806 +v 0.494390 -0.245863 0.276254 +v 0.550108 -0.273870 0.261801 +v 0.549959 -0.274832 0.262955 +v 0.532800 -0.265399 0.267117 +v 0.532628 -0.266351 0.268278 +v 0.580703 -0.291209 0.253206 +v 0.580263 -0.292622 0.254075 +v 0.565768 -0.283900 0.258603 +v 0.565309 -0.285303 0.259479 +v 0.473095 -0.234998 0.279894 +v 0.473174 -0.235481 0.281348 +v 0.473675 -0.233269 0.278752 +v 0.451087 -0.222262 0.283734 +v 0.450508 -0.223945 0.284880 +v 0.450566 -0.224418 0.286338 +v 0.514222 -0.256308 0.272377 +v 0.514030 -0.257250 0.273544 +v 0.494335 -0.246576 0.277564 +v 0.494124 -0.247509 0.278736 +v 0.549645 -0.276011 0.263974 +v 0.549168 -0.277405 0.264856 +v 0.532295 -0.267520 0.269303 +v 0.531801 -0.268906 0.270191 +v 0.609778 -0.308989 0.242192 +v 0.609034 -0.310845 0.242779 +v 0.594375 -0.301451 0.248944 +v 0.593612 -0.303298 0.249539 +v 0.579655 -0.294248 0.254811 +v 0.578875 -0.296086 0.255412 +v 0.564683 -0.286921 0.260221 +v 0.563890 -0.288753 0.260828 +v 0.548526 -0.279015 0.265603 +v 0.547721 -0.280840 0.266214 +v 0.531145 -0.270509 0.270942 +v 0.530328 -0.272329 0.271557 +v 0.608112 -0.312910 0.243235 +v 0.607013 -0.315184 0.243561 +v 0.621929 -0.322483 0.236383 +v 0.623016 -0.320203 0.236063 +v 0.592677 -0.305356 0.250002 +v 0.591567 -0.307625 0.250333 +v 0.577927 -0.298138 0.255880 +v 0.576809 -0.300403 0.256214 +v 0.562930 -0.290799 0.261300 +v 0.561804 -0.293060 0.261637 +v 0.636170 -0.326640 0.228966 +v 0.635095 -0.328926 0.229278 +v 0.646608 -0.334560 0.222285 +v 0.647669 -0.332267 0.221981 +v 0.657610 -0.337132 0.215146 +v 0.656565 -0.339432 0.215439 +v 0.633833 -0.331416 0.229466 +v 0.629904 -0.338639 0.229560 +v 0.641354 -0.344417 0.222558 +v 0.645355 -0.337054 0.222467 +v 0.620659 -0.324969 0.236575 +v 0.616813 -0.332032 0.236671 +v 0.655321 -0.341931 0.215614 +v 0.651259 -0.349416 0.215702 +v 0.659715 -0.353683 0.209027 +v 0.663828 -0.346094 0.208944 +v 0.670973 -0.349590 0.202492 +v 0.666818 -0.357267 0.202570 +v 0.672663 -0.360217 0.196367 +v 0.676851 -0.352467 0.196295 +v 0.681560 -0.354771 0.190389 +v 0.677347 -0.362581 0.190454 +v 0.657013 -0.375087 0.202597 +v 0.662743 -0.378249 0.196391 +v 0.650050 -0.371246 0.209055 +v 0.635510 -0.395733 0.209055 +v 0.642276 -0.399912 0.202597 +v 0.647844 -0.403351 0.196391 +v 0.673481 -0.384174 0.179657 +v 0.670883 -0.382740 0.184885 +v 0.655754 -0.408236 0.184885 +v 0.658278 -0.409795 0.179657 +v 0.667335 -0.380783 0.190475 +v 0.652307 -0.406107 0.190475 +v 0.641761 -0.366672 0.215731 +v 0.632051 -0.361315 0.222589 +v 0.618020 -0.384931 0.222589 +v 0.627455 -0.390758 0.215731 +v 0.641384 -0.441018 0.170430 +v 0.641806 -0.441308 0.166514 +v 0.640463 -0.440385 0.174826 +v 0.618084 -0.471281 0.174826 +v 0.618973 -0.471959 0.170430 +v 0.619380 -0.472269 0.166514 +v 0.595069 -0.501761 0.170430 +v 0.595460 -0.502091 0.166514 +v 0.594214 -0.501041 0.174826 +v 0.568914 -0.529593 0.174826 +v 0.569732 -0.530355 0.170430 +v 0.570107 -0.530704 0.166514 +v 0.638825 -0.439258 0.179657 +v 0.636380 -0.437577 0.184885 +v 0.614143 -0.468276 0.184885 +v 0.616502 -0.470075 0.179657 +v 0.543022 -0.557671 0.170430 +v 0.543379 -0.558038 0.166514 +v 0.542242 -0.556870 0.174826 +v 0.514266 -0.582807 0.174826 +v 0.515005 -0.583645 0.170430 +v 0.515344 -0.584029 0.166514 +v 0.485747 -0.608211 0.170430 +v 0.486066 -0.608611 0.166514 +v 0.485049 -0.607338 0.174826 +v 0.454665 -0.630407 0.174826 +v 0.455319 -0.631314 0.170430 +v 0.455618 -0.631729 0.166514 +v 0.592694 -0.499759 0.179657 +v 0.590427 -0.497846 0.184885 +v 0.565288 -0.526218 0.184885 +v 0.567458 -0.528238 0.179657 +v 0.540856 -0.555447 0.179657 +v 0.538786 -0.553320 0.184885 +v 0.510987 -0.579091 0.184885 +v 0.512949 -0.581315 0.179657 +v 0.483808 -0.605784 0.179657 +v 0.481957 -0.603466 0.184885 +v 0.451766 -0.626388 0.184885 +v 0.453501 -0.628794 0.179657 +v 0.535959 -0.550417 0.190476 +v 0.532300 -0.546659 0.196391 +v 0.504836 -0.572120 0.196391 +v 0.508306 -0.576052 0.190476 +v 0.562322 -0.523457 0.190476 +v 0.558483 -0.519883 0.196391 +v 0.479428 -0.600300 0.190476 +v 0.476155 -0.596201 0.196391 +v 0.446327 -0.618847 0.196391 +v 0.449395 -0.623101 0.190476 +v 0.423793 -0.652894 0.170430 +v 0.424071 -0.653324 0.166514 +v 0.423184 -0.651957 0.174826 +v 0.390685 -0.671936 0.174826 +v 0.391247 -0.672903 0.170430 +v 0.391504 -0.673345 0.166514 +v 0.357757 -0.691289 0.170430 +v 0.357992 -0.691744 0.166514 +v 0.357243 -0.690297 0.174826 +v 0.322942 -0.706995 0.174826 +v 0.323406 -0.708011 0.170430 +v 0.323619 -0.708477 0.166514 +v 0.422101 -0.650288 0.179657 +v 0.420486 -0.647800 0.184885 +v 0.388194 -0.667652 0.184885 +v 0.389685 -0.670217 0.179657 +v 0.288276 -0.723027 0.170430 +v 0.288466 -0.723502 0.166514 +v 0.287862 -0.721989 0.174826 +v 0.254735 -0.734480 0.174826 +v 0.255098 -0.735537 0.170430 +v 0.255264 -0.736021 0.166514 +v 0.356329 -0.688530 0.179657 +v 0.354966 -0.685895 0.184885 +v 0.320883 -0.702487 0.184885 +v 0.322116 -0.705186 0.179657 +v 0.226604 -0.744744 0.170430 +v 0.226746 -0.745236 0.166514 +v 0.226293 -0.743670 0.174826 +v 0.206008 -0.749495 0.174816 +v 0.206278 -0.750579 0.170423 +v 0.206402 -0.751076 0.166510 +v 0.287126 -0.720141 0.179657 +v 0.286027 -0.717385 0.184885 +v 0.253128 -0.729792 0.184885 +v 0.254090 -0.732598 0.179657 +v 0.197607 -0.752977 0.170403 +v 0.194874 -0.753551 0.170362 +v 0.194990 -0.754044 0.166479 +v 0.197724 -0.753473 0.166500 +v 0.197350 -0.751892 0.174784 +v 0.194619 -0.752472 0.174720 +v 0.225741 -0.741759 0.179657 +v 0.224918 -0.738909 0.184885 +v 0.204809 -0.744687 0.184867 +v 0.205527 -0.747566 0.179642 +v 0.196893 -0.749960 0.179598 +v 0.194164 -0.750550 0.179510 +v 0.196212 -0.747077 0.184812 +v 0.193486 -0.747678 0.184701 +v 0.192365 -0.753917 0.170295 +v 0.190080 -0.754076 0.170200 +v 0.190194 -0.754555 0.166396 +v 0.192480 -0.754405 0.166444 +v 0.192112 -0.752848 0.174613 +v 0.189831 -0.753021 0.174464 +v 0.188020 -0.754026 0.170079 +v 0.188131 -0.754495 0.166333 +v 0.187775 -0.752989 0.174271 +v 0.187336 -0.751133 0.178892 +v 0.185512 -0.750931 0.178569 +v 0.189386 -0.751136 0.179157 +v 0.188717 -0.748310 0.184257 +v 0.186676 -0.748341 0.183925 +v 0.184862 -0.748182 0.183519 +v 0.195280 -0.743137 0.190389 +v 0.192557 -0.743751 0.190260 +v 0.203828 -0.740755 0.190454 +v 0.202559 -0.735664 0.196367 +v 0.194074 -0.738035 0.196295 +v 0.191354 -0.738661 0.196150 +v 0.223794 -0.735016 0.190476 +v 0.222338 -0.729977 0.196391 +v 0.251814 -0.725959 0.190476 +v 0.250113 -0.720998 0.196391 +v 0.190064 -0.744182 0.190044 +v 0.187801 -0.744432 0.189742 +v 0.190987 -0.748089 0.184516 +v 0.188866 -0.739113 0.195909 +v 0.186609 -0.739392 0.195571 +v 0.284526 -0.713621 0.190476 +v 0.282584 -0.708749 0.196391 +v 0.319199 -0.698801 0.190476 +v 0.317020 -0.694031 0.196391 +v 0.192569 -0.731666 0.202492 +v 0.189851 -0.732304 0.202334 +v 0.200974 -0.729311 0.202570 +v 0.199049 -0.721592 0.209027 +v 0.190739 -0.723925 0.208944 +v 0.188024 -0.724575 0.208776 +v 0.220522 -0.723689 0.202597 +v 0.218315 -0.716049 0.209055 +v 0.247990 -0.714806 0.202597 +v 0.245411 -0.707284 0.209055 +v 0.353103 -0.682297 0.190476 +v 0.350693 -0.677639 0.196391 +v 0.386157 -0.664149 0.190476 +v 0.383521 -0.659615 0.196391 +v 0.280160 -0.702670 0.202597 +v 0.277214 -0.695283 0.209055 +v 0.314301 -0.688077 0.202597 +v 0.310997 -0.680844 0.209055 +v 0.418280 -0.644401 0.190476 +v 0.415424 -0.640002 0.196391 +v 0.347684 -0.671826 0.202597 +v 0.344029 -0.664763 0.209055 +v 0.380231 -0.653957 0.202597 +v 0.376234 -0.647082 0.209055 +v 0.411861 -0.634512 0.202597 +v 0.407531 -0.627841 0.209055 +v 0.442499 -0.613539 0.202597 +v 0.437847 -0.607089 0.209055 +v 0.472071 -0.591087 0.202597 +v 0.467108 -0.584873 0.209055 +v 0.500506 -0.567212 0.202597 +v 0.495244 -0.561249 0.209055 +v 0.339678 -0.656355 0.215731 +v 0.334581 -0.646507 0.222589 +v 0.302456 -0.662146 0.222589 +v 0.307063 -0.672233 0.215731 +v 0.371475 -0.638898 0.215731 +v 0.365901 -0.629312 0.222589 +v 0.402377 -0.619901 0.215731 +v 0.396339 -0.610599 0.222589 +v 0.432309 -0.599411 0.215731 +v 0.425823 -0.590417 0.222589 +v 0.273708 -0.686489 0.215731 +v 0.269601 -0.676189 0.222589 +v 0.238744 -0.687839 0.222589 +v 0.242340 -0.698329 0.215731 +v 0.215687 -0.706954 0.215731 +v 0.212610 -0.696301 0.222589 +v 0.194073 -0.701637 0.222558 +v 0.196758 -0.712402 0.215702 +v 0.264854 -0.664282 0.229591 +v 0.259426 -0.650669 0.236703 +v 0.229833 -0.661851 0.236703 +v 0.234587 -0.675713 0.229591 +v 0.297130 -0.650486 0.229591 +v 0.291041 -0.637156 0.236703 +v 0.188560 -0.714708 0.215614 +v 0.185848 -0.715369 0.215439 +v 0.186008 -0.703910 0.222467 +v 0.183298 -0.704581 0.222285 +v 0.209052 -0.683986 0.229591 +v 0.204985 -0.669906 0.236703 +v 0.187422 -0.674964 0.236671 +v 0.190970 -0.689192 0.229560 +v 0.183057 -0.691427 0.229466 +v 0.180349 -0.692107 0.229278 +v 0.179683 -0.677153 0.236575 +v 0.176977 -0.677842 0.236383 +v 0.187368 -0.732777 0.202072 +v 0.185118 -0.733084 0.201705 +v 0.185545 -0.725067 0.208497 +v 0.183302 -0.725401 0.208107 +v 0.183373 -0.715879 0.215146 +v 0.181136 -0.716238 0.214736 +v 0.180827 -0.705108 0.221981 +v 0.178596 -0.705491 0.221556 +v 0.185768 -0.744499 0.189353 +v 0.183965 -0.744385 0.188878 +v 0.184585 -0.739497 0.195136 +v 0.182793 -0.739428 0.194605 +v 0.183916 -0.750532 0.178186 +v 0.182545 -0.749935 0.177745 +v 0.183277 -0.747832 0.183038 +v 0.181920 -0.747293 0.182484 +v 0.183103 -0.733225 0.201233 +v 0.181321 -0.733201 0.200657 +v 0.181295 -0.725577 0.207604 +v 0.179523 -0.725596 0.206991 +v 0.182392 -0.744088 0.188317 +v 0.181050 -0.743610 0.187670 +v 0.181233 -0.739186 0.193978 +v 0.179906 -0.738770 0.193254 +v 0.181401 -0.749141 0.177245 +v 0.180484 -0.748148 0.176686 +v 0.180867 -0.749770 0.172671 +v 0.181799 -0.750822 0.173076 +v 0.180792 -0.746563 0.181856 +v 0.179891 -0.745643 0.181154 +v 0.179792 -0.746958 0.176068 +v 0.177233 -0.746477 0.175583 +v 0.177586 -0.747982 0.171870 +v 0.180160 -0.748514 0.172222 +v 0.179219 -0.744533 0.180378 +v 0.176679 -0.744113 0.179769 +v 0.179937 -0.742949 0.186936 +v 0.179055 -0.742107 0.186116 +v 0.178810 -0.738180 0.192433 +v 0.177947 -0.737417 0.191516 +v 0.179774 -0.733011 0.199975 +v 0.178460 -0.732656 0.199189 +v 0.177988 -0.725456 0.206265 +v 0.176688 -0.725159 0.205428 +v 0.178403 -0.741082 0.185209 +v 0.175886 -0.740729 0.184497 +v 0.177315 -0.736479 0.190502 +v 0.174823 -0.736192 0.189706 +v 0.177381 -0.732135 0.198297 +v 0.176536 -0.731448 0.197301 +v 0.175625 -0.724704 0.204479 +v 0.174797 -0.724091 0.203419 +v 0.175925 -0.730596 0.196200 +v 0.173459 -0.730374 0.195335 +v 0.174205 -0.723320 0.202247 +v 0.171768 -0.723158 0.201327 +v 0.175850 -0.716413 0.212804 +v 0.174563 -0.716171 0.211926 +v 0.177375 -0.716506 0.213565 +v 0.174850 -0.705826 0.220341 +v 0.173336 -0.705778 0.219551 +v 0.172061 -0.705585 0.218639 +v 0.172129 -0.714539 0.208589 +v 0.169723 -0.714433 0.207623 +v 0.172703 -0.715233 0.209819 +v 0.170229 -0.704769 0.216452 +v 0.169672 -0.704146 0.215176 +v 0.167299 -0.704091 0.214173 +v 0.173514 -0.715777 0.210931 +v 0.171026 -0.705249 0.217606 +v 0.166809 -0.692036 0.221958 +v 0.164471 -0.692027 0.220925 +v 0.167351 -0.692594 0.223272 +v 0.164043 -0.678601 0.230236 +v 0.163516 -0.678102 0.228891 +v 0.161215 -0.678134 0.227835 +v 0.168134 -0.693015 0.224460 +v 0.169157 -0.693298 0.225524 +v 0.165825 -0.679203 0.232541 +v 0.164813 -0.678968 0.231452 +v 0.159765 -0.662238 0.235933 +v 0.157505 -0.662305 0.234858 +v 0.160280 -0.662683 0.237303 +v 0.156375 -0.646162 0.243985 +v 0.155871 -0.645763 0.242597 +v 0.153650 -0.645859 0.241506 +v 0.152144 -0.629998 0.248394 +v 0.149961 -0.630120 0.247291 +v 0.152639 -0.630357 0.249797 +v 0.148834 -0.614262 0.255164 +v 0.148348 -0.613939 0.253748 +v 0.146202 -0.614081 0.252636 +v 0.161039 -0.663002 0.238541 +v 0.162040 -0.663194 0.239650 +v 0.158116 -0.646592 0.246366 +v 0.157123 -0.646438 0.245241 +v 0.153378 -0.630596 0.251067 +v 0.154363 -0.630718 0.252204 +v 0.150544 -0.614562 0.257591 +v 0.149566 -0.614469 0.256445 +v 0.145448 -0.597050 0.261801 +v 0.144723 -0.596871 0.260511 +v 0.146420 -0.597116 0.262955 +v 0.141981 -0.578339 0.268278 +v 0.141015 -0.578296 0.267117 +v 0.140296 -0.578144 0.265819 +v 0.155593 -0.630720 0.253206 +v 0.157068 -0.630604 0.254075 +v 0.153238 -0.614401 0.259479 +v 0.151768 -0.614539 0.258603 +v 0.159353 -0.646624 0.247357 +v 0.160834 -0.646533 0.248217 +v 0.147639 -0.597071 0.263974 +v 0.149104 -0.596913 0.264856 +v 0.144656 -0.578097 0.270191 +v 0.143195 -0.578273 0.269303 +v 0.163285 -0.663259 0.240628 +v 0.164773 -0.663197 0.241475 +v 0.167078 -0.679306 0.233501 +v 0.168574 -0.679277 0.234334 +v 0.170420 -0.693444 0.226463 +v 0.171925 -0.693451 0.227276 +v 0.158789 -0.630370 0.254811 +v 0.160754 -0.630017 0.255412 +v 0.156916 -0.613780 0.260828 +v 0.154954 -0.614148 0.260221 +v 0.162559 -0.646319 0.248944 +v 0.164529 -0.645984 0.249539 +v 0.166504 -0.663008 0.242192 +v 0.168478 -0.662693 0.242779 +v 0.170312 -0.679116 0.235038 +v 0.172291 -0.678823 0.235614 +v 0.173670 -0.693322 0.227964 +v 0.175656 -0.693054 0.228528 +v 0.176603 -0.705730 0.221009 +v 0.179137 -0.716447 0.214209 +v 0.177882 -0.692650 0.228966 +v 0.174513 -0.678399 0.236063 +v 0.170696 -0.662250 0.243236 +v 0.173157 -0.661681 0.243562 +v 0.169200 -0.644945 0.250333 +v 0.166742 -0.645526 0.250002 +v 0.175861 -0.660985 0.243757 +v 0.183403 -0.658849 0.243855 +v 0.179241 -0.642161 0.250630 +v 0.171903 -0.644243 0.250531 +v 0.200379 -0.653959 0.243888 +v 0.195609 -0.637447 0.250663 +v 0.224450 -0.646149 0.243888 +v 0.218875 -0.629890 0.250663 +v 0.162965 -0.629545 0.255880 +v 0.165421 -0.628955 0.256215 +v 0.161578 -0.612698 0.261637 +v 0.159124 -0.613297 0.261300 +v 0.168122 -0.628247 0.256415 +v 0.175266 -0.626219 0.256515 +v 0.171224 -0.610011 0.261940 +v 0.164277 -0.611984 0.261839 +v 0.191051 -0.621671 0.256549 +v 0.186418 -0.605633 0.261974 +v 0.213550 -0.614357 0.256549 +v 0.208135 -0.598565 0.261974 +v 0.253279 -0.635250 0.243888 +v 0.246913 -0.619284 0.250663 +v 0.284144 -0.622057 0.243888 +v 0.277003 -0.606423 0.250663 +v 0.328690 -0.635123 0.229591 +v 0.321954 -0.622107 0.236703 +v 0.359458 -0.618230 0.229591 +v 0.352092 -0.605561 0.236703 +v 0.240832 -0.604031 0.256549 +v 0.234649 -0.588525 0.261974 +v 0.270180 -0.591487 0.256549 +v 0.263244 -0.576302 0.261974 +v 0.314325 -0.607365 0.243888 +v 0.306425 -0.592101 0.250663 +v 0.343748 -0.591211 0.243887 +v 0.335109 -0.576352 0.250663 +v 0.181421 -0.588334 0.267369 +v 0.176047 -0.569730 0.272718 +v 0.162176 -0.573728 0.272684 +v 0.166864 -0.592529 0.267335 +v 0.202295 -0.581533 0.267369 +v 0.196015 -0.563215 0.272718 +v 0.160131 -0.594443 0.267233 +v 0.157432 -0.595161 0.267029 +v 0.155671 -0.575578 0.272581 +v 0.152974 -0.576301 0.272376 +v 0.154980 -0.595768 0.266690 +v 0.152775 -0.596262 0.266214 +v 0.150523 -0.576914 0.272035 +v 0.148320 -0.577418 0.271557 +v 0.227980 -0.571799 0.267369 +v 0.220809 -0.553811 0.272718 +v 0.255763 -0.559924 0.267369 +v 0.247717 -0.542310 0.272718 +v 0.150888 -0.555345 0.277869 +v 0.148192 -0.556072 0.277663 +v 0.157148 -0.553564 0.277972 +v 0.151768 -0.531992 0.283183 +v 0.145772 -0.533700 0.283080 +v 0.143076 -0.534431 0.282873 +v 0.170284 -0.549778 0.278006 +v 0.164118 -0.528434 0.283218 +v 0.189279 -0.543569 0.278006 +v 0.182073 -0.522554 0.283218 +v 0.150816 -0.596643 0.265603 +v 0.146364 -0.577812 0.270942 +v 0.145743 -0.556691 0.277319 +v 0.143542 -0.557204 0.276839 +v 0.140628 -0.535056 0.282528 +v 0.138430 -0.535577 0.282046 +v 0.141589 -0.557611 0.276221 +v 0.139884 -0.557910 0.275466 +v 0.136479 -0.535995 0.281425 +v 0.134778 -0.536309 0.280667 +v 0.138427 -0.558103 0.274574 +v 0.137218 -0.558189 0.273544 +v 0.133324 -0.536517 0.279770 +v 0.132120 -0.536622 0.278736 +v 0.135169 -0.511963 0.287646 +v 0.132973 -0.512492 0.287161 +v 0.137615 -0.511331 0.287992 +v 0.131800 -0.486731 0.293004 +v 0.129355 -0.487369 0.292657 +v 0.127160 -0.487906 0.292171 +v 0.136257 -0.558168 0.272377 +v 0.135544 -0.558041 0.271073 +v 0.131164 -0.536622 0.277564 +v 0.130456 -0.536517 0.276254 +v 0.131025 -0.512920 0.286539 +v 0.129326 -0.513246 0.285777 +v 0.125215 -0.488344 0.291546 +v 0.123519 -0.488682 0.290782 +v 0.127876 -0.513471 0.284877 +v 0.126676 -0.513592 0.283839 +v 0.122073 -0.488920 0.289879 +v 0.120876 -0.489058 0.288838 +v 0.135079 -0.557806 0.269631 +v 0.133057 -0.557994 0.268498 +v 0.137759 -0.578057 0.263258 +v 0.139824 -0.577882 0.264385 +v 0.129997 -0.536309 0.274806 +v 0.128021 -0.536509 0.273668 +v 0.144244 -0.596580 0.259085 +v 0.142138 -0.596740 0.257964 +v 0.125724 -0.513613 0.282663 +v 0.125022 -0.513530 0.281348 +v 0.119929 -0.489097 0.287657 +v 0.119232 -0.489036 0.286338 +v 0.124569 -0.513347 0.279894 +v 0.122641 -0.513555 0.278752 +v 0.118784 -0.488876 0.284880 +v 0.116907 -0.489091 0.283734 +v 0.112632 -0.462850 0.289747 +v 0.110809 -0.463071 0.288598 +v 0.113075 -0.462989 0.291209 +v 0.106540 -0.435346 0.295945 +v 0.106102 -0.435228 0.294479 +v 0.104336 -0.435453 0.293327 +v 0.113767 -0.463030 0.292532 +v 0.114710 -0.462974 0.293716 +v 0.108167 -0.435296 0.298457 +v 0.107228 -0.435369 0.297271 +v 0.100302 -0.406068 0.301859 +v 0.099618 -0.406063 0.300529 +v 0.101237 -0.405979 0.303048 +v 0.093909 -0.374979 0.307471 +v 0.092977 -0.375083 0.306280 +v 0.092297 -0.375095 0.304948 +v 0.115903 -0.462820 0.294760 +v 0.117346 -0.462568 0.295665 +v 0.110797 -0.434862 0.300412 +v 0.109357 -0.435127 0.299505 +v 0.102423 -0.405796 0.304097 +v 0.103860 -0.405520 0.305006 +v 0.096527 -0.374496 0.309433 +v 0.095092 -0.374784 0.308522 +v 0.119039 -0.462219 0.296431 +v 0.120982 -0.461772 0.297058 +v 0.114428 -0.434046 0.301808 +v 0.112487 -0.434502 0.301180 +v 0.105548 -0.405149 0.305776 +v 0.107488 -0.404685 0.306405 +v 0.100150 -0.373643 0.310835 +v 0.098212 -0.374116 0.310204 +v 0.123176 -0.461227 0.297545 +v 0.125619 -0.460585 0.297894 +v 0.119062 -0.432847 0.302646 +v 0.116620 -0.433495 0.302297 +v 0.109678 -0.404127 0.306895 +v 0.112119 -0.403475 0.307245 +v 0.104779 -0.372423 0.311676 +v 0.102338 -0.373079 0.311325 +v 0.090468 -0.341356 0.314449 +v 0.088785 -0.341745 0.313677 +v 0.092404 -0.340877 0.315080 +v 0.086362 -0.315315 0.318231 +v 0.084428 -0.315803 0.317598 +v 0.082747 -0.316202 0.316825 +v 0.094591 -0.340307 0.315572 +v 0.097031 -0.339647 0.315922 +v 0.090986 -0.314074 0.319074 +v 0.088547 -0.314739 0.318723 +v 0.114811 -0.402729 0.307455 +v 0.119220 -0.401472 0.307560 +v 0.111502 -0.370524 0.311991 +v 0.107470 -0.371675 0.311886 +v 0.121755 -0.432104 0.302855 +v 0.126520 -0.430746 0.302960 +v 0.087353 -0.342044 0.312764 +v 0.086173 -0.342252 0.311711 +v 0.081317 -0.316513 0.315911 +v 0.080141 -0.316735 0.314857 +v 0.099722 -0.338896 0.316133 +v 0.103357 -0.337859 0.316238 +v 0.097001 -0.312372 0.319390 +v 0.093676 -0.313320 0.319285 +v 0.085244 -0.342369 0.310518 +v 0.084568 -0.342396 0.309185 +v 0.079216 -0.316868 0.313662 +v 0.078544 -0.316913 0.312326 +v 0.099185 -0.405965 0.299060 +v 0.091868 -0.375015 0.303476 +v 0.097478 -0.406192 0.297906 +v 0.090224 -0.375243 0.302320 +v 0.084143 -0.342333 0.307711 +v 0.082564 -0.342561 0.306553 +v 0.078123 -0.316869 0.310850 +v 0.076597 -0.317101 0.309691 +v 0.079099 -0.307127 0.317050 +v 0.077926 -0.307368 0.315994 +v 0.080524 -0.306800 0.317966 +v 0.080207 -0.305459 0.318082 +v 0.078787 -0.305810 0.317165 +v 0.077622 -0.306079 0.316107 +v 0.075926 -0.307573 0.311981 +v 0.074422 -0.307822 0.310819 +v 0.076340 -0.307591 0.313459 +v 0.076051 -0.306370 0.313569 +v 0.075647 -0.306392 0.312088 +v 0.074153 -0.306671 0.310924 +v 0.077007 -0.307522 0.314797 +v 0.076710 -0.306265 0.314909 +v 0.075381 -0.305270 0.312156 +v 0.073900 -0.305595 0.310991 +v 0.075772 -0.305189 0.313638 +v 0.076418 -0.305031 0.314980 +v 0.077319 -0.304797 0.316180 +v 0.077024 -0.303549 0.316194 +v 0.076138 -0.303849 0.314996 +v 0.078474 -0.304485 0.317239 +v 0.079885 -0.304098 0.318157 +v 0.079565 -0.302741 0.318168 +v 0.078166 -0.303180 0.317252 +v 0.075879 -0.302750 0.314941 +v 0.076743 -0.302364 0.316131 +v 0.076482 -0.301256 0.315982 +v 0.075642 -0.301749 0.314811 +v 0.077867 -0.301918 0.317182 +v 0.079251 -0.301414 0.318092 +v 0.078948 -0.300133 0.317911 +v 0.077584 -0.300718 0.317016 +v 0.075431 -0.300859 0.314603 +v 0.076242 -0.300243 0.315739 +v 0.076023 -0.299317 0.315389 +v 0.075245 -0.300069 0.314312 +v 0.074887 -0.301443 0.313334 +v 0.074736 -0.300805 0.313107 +v 0.074608 -0.301996 0.311932 +v 0.073219 -0.302691 0.310830 +v 0.074496 -0.301526 0.311775 +v 0.073140 -0.302352 0.310729 +v 0.077318 -0.299594 0.316740 +v 0.078660 -0.298915 0.317608 +v 0.078388 -0.297765 0.317165 +v 0.077071 -0.298549 0.316340 +v 0.076842 -0.297580 0.315801 +v 0.075824 -0.298473 0.314924 +v 0.078134 -0.296689 0.316561 +v 0.077896 -0.295682 0.315763 +v 0.076629 -0.296677 0.315085 +v 0.075638 -0.297689 0.314302 +v 0.079699 -0.295798 0.317205 +v 0.081537 -0.294908 0.317731 +v 0.081262 -0.293742 0.316807 +v 0.079440 -0.294704 0.316337 +v 0.079975 -0.296966 0.317862 +v 0.081831 -0.296150 0.318433 +v 0.080267 -0.298203 0.318343 +v 0.082141 -0.297459 0.318944 +v 0.080574 -0.299501 0.318669 +v 0.082463 -0.298823 0.319289 +v 0.080893 -0.300851 0.318863 +v 0.082795 -0.300229 0.319493 +v 0.081220 -0.302234 0.318944 +v 0.083133 -0.301658 0.319578 +v 0.083649 -0.294019 0.318140 +v 0.086035 -0.293130 0.318433 +v 0.085736 -0.291868 0.317433 +v 0.083360 -0.292797 0.317172 +v 0.083957 -0.295319 0.318876 +v 0.086352 -0.294472 0.319193 +v 0.081551 -0.303633 0.318934 +v 0.083472 -0.303092 0.319570 +v 0.081880 -0.305025 0.318858 +v 0.083807 -0.304509 0.319493 +v 0.084279 -0.296684 0.319412 +v 0.086684 -0.295877 0.319745 +v 0.084614 -0.298099 0.319772 +v 0.087027 -0.297329 0.320116 +v 0.084956 -0.299548 0.319983 +v 0.087377 -0.298809 0.320333 +v 0.085303 -0.301013 0.320072 +v 0.087729 -0.300299 0.320424 +v 0.082202 -0.306387 0.318740 +v 0.084133 -0.305888 0.319374 +v 0.085648 -0.302474 0.320064 +v 0.088079 -0.301779 0.320417 +v 0.085988 -0.303911 0.319986 +v 0.088422 -0.303230 0.320339 +v 0.086317 -0.305303 0.319867 +v 0.088753 -0.304632 0.320219 +v 0.090057 -0.298010 0.320543 +v 0.093191 -0.297093 0.320648 +v 0.092816 -0.295590 0.320426 +v 0.089702 -0.296512 0.320323 +v 0.090413 -0.299516 0.320636 +v 0.093566 -0.298601 0.320742 +v 0.091443 -0.303874 0.320430 +v 0.094653 -0.302957 0.320536 +v 0.094302 -0.301552 0.320656 +v 0.091110 -0.302467 0.320550 +v 0.090765 -0.301008 0.320629 +v 0.093939 -0.300093 0.320735 +v 0.098651 -0.301805 0.320571 +v 0.098249 -0.300414 0.320692 +v 0.101342 -0.311122 0.319426 +v 0.108710 -0.308583 0.319426 +v 0.105565 -0.299410 0.320571 +v 0.105096 -0.298040 0.320692 +v 0.097832 -0.298969 0.320770 +v 0.097405 -0.297491 0.320777 +v 0.104608 -0.296618 0.320770 +v 0.104109 -0.295162 0.320777 +v 0.096973 -0.295996 0.320684 +v 0.096543 -0.294506 0.320461 +v 0.103604 -0.293691 0.320684 +v 0.103101 -0.292224 0.320461 +v 0.089354 -0.295038 0.319946 +v 0.092447 -0.294111 0.320046 +v 0.092089 -0.292675 0.319479 +v 0.089016 -0.293609 0.319384 +v 0.096119 -0.293039 0.320079 +v 0.095707 -0.291614 0.319510 +v 0.102606 -0.290779 0.320079 +v 0.102125 -0.289376 0.319510 +v 0.088693 -0.292243 0.318608 +v 0.091746 -0.291301 0.318696 +v 0.091423 -0.290008 0.317668 +v 0.088389 -0.290957 0.317590 +v 0.095313 -0.290251 0.318725 +v 0.094942 -0.288967 0.317694 +v 0.101665 -0.288033 0.318725 +v 0.101231 -0.286769 0.317694 +v 0.115285 -0.289147 0.320684 +v 0.114710 -0.287706 0.320461 +v 0.115861 -0.290591 0.320777 +v 0.129980 -0.284556 0.320777 +v 0.129334 -0.283142 0.320684 +v 0.128689 -0.281731 0.320461 +v 0.088109 -0.289770 0.316299 +v 0.085461 -0.290702 0.316165 +v 0.091126 -0.288814 0.316366 +v 0.090858 -0.287740 0.314760 +v 0.087856 -0.288700 0.314704 +v 0.085212 -0.289649 0.314591 +v 0.114145 -0.286287 0.320079 +v 0.113595 -0.284910 0.319510 +v 0.128055 -0.280342 0.320079 +v 0.127438 -0.278993 0.319510 +v 0.094600 -0.287783 0.316388 +v 0.094292 -0.286717 0.314779 +v 0.100831 -0.285603 0.316388 +v 0.100472 -0.284554 0.314779 +v 0.113070 -0.283591 0.318725 +v 0.112575 -0.282350 0.317694 +v 0.126849 -0.277702 0.318725 +v 0.126294 -0.276486 0.317694 +v 0.083093 -0.291666 0.315941 +v 0.081006 -0.292660 0.315629 +v 0.082851 -0.290640 0.314404 +v 0.080772 -0.291672 0.314141 +v 0.079199 -0.293685 0.315226 +v 0.077673 -0.294741 0.314735 +v 0.078978 -0.292746 0.313804 +v 0.077466 -0.293862 0.313391 +v 0.087635 -0.287765 0.312773 +v 0.084993 -0.288724 0.312676 +v 0.090624 -0.286803 0.312821 +v 0.090408 -0.285936 0.310714 +v 0.087430 -0.286898 0.310673 +v 0.084790 -0.287863 0.310590 +v 0.094024 -0.285789 0.312837 +v 0.093776 -0.284929 0.310728 +v 0.100158 -0.283640 0.312837 +v 0.099868 -0.282794 0.310728 +v 0.082636 -0.289731 0.312516 +v 0.080563 -0.290787 0.312291 +v 0.082435 -0.288882 0.310452 +v 0.080366 -0.289953 0.310258 +v 0.111350 -0.279277 0.312837 +v 0.111018 -0.278446 0.310728 +v 0.111707 -0.280175 0.314779 +v 0.125320 -0.274356 0.314779 +v 0.124919 -0.273477 0.312837 +v 0.124547 -0.272663 0.310728 +v 0.078775 -0.291891 0.312002 +v 0.077272 -0.293043 0.311648 +v 0.078583 -0.291077 0.310009 +v 0.077085 -0.292254 0.309705 +v 0.076428 -0.295827 0.314154 +v 0.075462 -0.296945 0.313483 +v 0.076237 -0.295020 0.312904 +v 0.075291 -0.296219 0.312341 +v 0.076053 -0.294244 0.311231 +v 0.075119 -0.295493 0.310749 +v 0.075873 -0.293483 0.309346 +v 0.074947 -0.294766 0.308931 +v 0.074470 -0.296790 0.310203 +v 0.074628 -0.297460 0.311704 +v 0.074307 -0.296101 0.308461 +v 0.074778 -0.298093 0.312724 +v 0.074373 -0.299272 0.311874 +v 0.074490 -0.299764 0.312423 +v 0.074925 -0.298718 0.313415 +v 0.074249 -0.300481 0.310936 +v 0.072985 -0.301692 0.310199 +v 0.073039 -0.301921 0.310467 +v 0.074331 -0.300826 0.311328 +v 0.138187 -0.267018 0.312837 +v 0.137776 -0.266223 0.310728 +v 0.138631 -0.267876 0.314779 +v 0.151609 -0.260751 0.314779 +v 0.151123 -0.259916 0.312837 +v 0.150673 -0.259142 0.310728 +v 0.112118 -0.281205 0.316388 +v 0.125781 -0.275365 0.316388 +v 0.139141 -0.268861 0.316388 +v 0.139708 -0.269956 0.317694 +v 0.152786 -0.262776 0.317694 +v 0.152166 -0.261710 0.316388 +v 0.140322 -0.271143 0.318725 +v 0.140974 -0.272403 0.319510 +v 0.154171 -0.265158 0.319510 +v 0.153457 -0.263931 0.318725 +v 0.163694 -0.252187 0.312837 +v 0.163207 -0.251437 0.310728 +v 0.164220 -0.252998 0.314779 +v 0.176437 -0.244636 0.314779 +v 0.175871 -0.243852 0.312837 +v 0.175348 -0.243126 0.310728 +v 0.164824 -0.253929 0.316388 +v 0.165495 -0.254962 0.317694 +v 0.177807 -0.246535 0.317694 +v 0.177086 -0.245535 0.316388 +v 0.187625 -0.234928 0.312837 +v 0.187066 -0.234229 0.310728 +v 0.188228 -0.235683 0.314779 +v 0.199566 -0.226164 0.314779 +v 0.198926 -0.225439 0.312837 +v 0.198334 -0.224768 0.310728 +v 0.188920 -0.236550 0.316388 +v 0.189689 -0.237513 0.317694 +v 0.201115 -0.227920 0.317694 +v 0.200300 -0.226996 0.316388 +v 0.166223 -0.256083 0.318725 +v 0.166996 -0.257274 0.319510 +v 0.179419 -0.248770 0.319510 +v 0.178588 -0.247619 0.318725 +v 0.190523 -0.238557 0.318725 +v 0.191409 -0.239667 0.319510 +v 0.202938 -0.229986 0.319510 +v 0.201999 -0.228922 0.318725 +v 0.209748 -0.215407 0.312837 +v 0.209124 -0.214766 0.310728 +v 0.210422 -0.216099 0.314779 +v 0.220773 -0.205514 0.314779 +v 0.220065 -0.204855 0.312837 +v 0.219410 -0.204246 0.310728 +v 0.211196 -0.216894 0.316388 +v 0.212056 -0.217777 0.317694 +v 0.222487 -0.207110 0.317694 +v 0.221584 -0.206270 0.316388 +v 0.229852 -0.193811 0.312837 +v 0.229168 -0.193234 0.310728 +v 0.230590 -0.194433 0.314779 +v 0.239853 -0.182885 0.314779 +v 0.239085 -0.182299 0.312837 +v 0.238373 -0.181756 0.310728 +v 0.231439 -0.195149 0.316388 +v 0.232381 -0.195943 0.317694 +v 0.241716 -0.184305 0.317694 +v 0.240735 -0.183557 0.316388 +v 0.212988 -0.218734 0.318725 +v 0.213979 -0.219751 0.319510 +v 0.224504 -0.208987 0.319510 +v 0.223465 -0.208020 0.318725 +v 0.233402 -0.196804 0.318725 +v 0.234488 -0.197719 0.319510 +v 0.243907 -0.185976 0.319510 +v 0.242778 -0.185115 0.318725 +v 0.247742 -0.170348 0.312837 +v 0.247004 -0.169841 0.310728 +v 0.248538 -0.170895 0.314779 +v 0.255294 -0.160906 0.314779 +v 0.254471 -0.160398 0.312837 +v 0.253710 -0.159928 0.310728 +v 0.249452 -0.171524 0.316388 +v 0.250468 -0.172222 0.317694 +v 0.257286 -0.162137 0.317694 +v 0.256237 -0.161489 0.316388 +v 0.257923 -0.154891 0.312837 +v 0.257140 -0.154459 0.310728 +v 0.258769 -0.155358 0.314779 +v 0.260526 -0.152235 0.314760 +v 0.259665 -0.151800 0.312821 +v 0.258866 -0.151397 0.310714 +v 0.261263 -0.149097 0.312773 +v 0.262783 -0.146733 0.312676 +v 0.261988 -0.146344 0.310590 +v 0.260463 -0.148705 0.310673 +v 0.262126 -0.149519 0.314704 +v 0.263637 -0.147150 0.314591 +v 0.259741 -0.155894 0.316388 +v 0.260820 -0.156489 0.317694 +v 0.262613 -0.153288 0.317668 +v 0.261515 -0.152734 0.316366 +v 0.263114 -0.150003 0.316299 +v 0.264609 -0.147626 0.316165 +v 0.264209 -0.150539 0.317590 +v 0.265685 -0.148153 0.317433 +v 0.264286 -0.144657 0.312516 +v 0.265774 -0.142869 0.312291 +v 0.265005 -0.142492 0.310258 +v 0.263502 -0.144273 0.310452 +v 0.265125 -0.145067 0.314404 +v 0.266591 -0.143269 0.314141 +v 0.261990 -0.157135 0.318725 +v 0.263233 -0.157821 0.319510 +v 0.265067 -0.154526 0.319479 +v 0.263803 -0.153888 0.318696 +v 0.258423 -0.162839 0.318725 +v 0.259631 -0.163585 0.319510 +v 0.267246 -0.141369 0.312002 +v 0.268702 -0.140158 0.311648 +v 0.267974 -0.139801 0.309705 +v 0.266495 -0.141002 0.310009 +v 0.268036 -0.141756 0.313804 +v 0.269458 -0.140528 0.313391 +v 0.266072 -0.145530 0.315941 +v 0.267503 -0.143715 0.315629 +v 0.267116 -0.146041 0.317172 +v 0.268502 -0.144203 0.316807 +v 0.265396 -0.151119 0.318608 +v 0.266850 -0.148723 0.318433 +v 0.266658 -0.151737 0.319384 +v 0.268088 -0.149329 0.319193 +v 0.270143 -0.139235 0.311231 +v 0.271567 -0.138600 0.310749 +v 0.270896 -0.138272 0.308931 +v 0.269441 -0.138891 0.309346 +v 0.270859 -0.139585 0.312904 +v 0.272238 -0.138928 0.312341 +v 0.268902 -0.142180 0.315226 +v 0.270269 -0.140925 0.314735 +v 0.269842 -0.142640 0.316337 +v 0.271138 -0.141350 0.315763 +v 0.272976 -0.138253 0.310203 +v 0.272340 -0.137942 0.308461 +v 0.273595 -0.138556 0.311704 +v 0.271604 -0.139950 0.314154 +v 0.272908 -0.139256 0.313483 +v 0.272389 -0.140334 0.315085 +v 0.273595 -0.139592 0.314302 +v 0.274179 -0.138842 0.312724 +v 0.275418 -0.138708 0.311874 +v 0.274756 -0.139124 0.313415 +v 0.275872 -0.138930 0.312423 +v 0.276625 -0.138855 0.310936 +v 0.278057 -0.137951 0.310199 +v 0.276943 -0.139011 0.311328 +v 0.278268 -0.138054 0.310467 +v 0.273223 -0.140742 0.315801 +v 0.274318 -0.139946 0.314924 +v 0.272067 -0.141805 0.316561 +v 0.273061 -0.142291 0.317165 +v 0.274116 -0.141179 0.316340 +v 0.275097 -0.140327 0.315389 +v 0.270852 -0.143134 0.317205 +v 0.269578 -0.144730 0.317731 +v 0.270724 -0.145291 0.318433 +v 0.271930 -0.143661 0.317862 +v 0.275081 -0.141652 0.316740 +v 0.275951 -0.140745 0.315739 +v 0.274122 -0.142810 0.317608 +v 0.275246 -0.143360 0.317911 +v 0.276118 -0.142159 0.317016 +v 0.276887 -0.141203 0.315982 +v 0.273072 -0.144220 0.318343 +v 0.271933 -0.145883 0.318944 +v 0.273192 -0.146499 0.319289 +v 0.274270 -0.144806 0.318669 +v 0.276732 -0.140091 0.314603 +v 0.277422 -0.139689 0.313334 +v 0.276833 -0.139401 0.313107 +v 0.276003 -0.139734 0.314312 +v 0.277553 -0.140493 0.314811 +v 0.278115 -0.140028 0.313502 +v 0.278477 -0.140945 0.314941 +v 0.278931 -0.140427 0.313610 +v 0.277909 -0.141703 0.316131 +v 0.279003 -0.142239 0.316194 +v 0.279492 -0.141442 0.314996 +v 0.279856 -0.140880 0.313656 +v 0.277226 -0.142701 0.317182 +v 0.276428 -0.143939 0.318092 +v 0.277654 -0.144538 0.318168 +v 0.278390 -0.143271 0.317252 +v 0.280583 -0.141976 0.314980 +v 0.280155 -0.142802 0.316180 +v 0.281338 -0.143381 0.316107 +v 0.281722 -0.142533 0.314908 +v 0.280879 -0.141381 0.313638 +v 0.281969 -0.141914 0.313569 +v 0.275516 -0.145416 0.318863 +v 0.274489 -0.147133 0.319493 +v 0.275808 -0.147779 0.319578 +v 0.276793 -0.146041 0.318944 +v 0.279596 -0.143861 0.317239 +v 0.278905 -0.145151 0.318157 +v 0.280162 -0.145765 0.318082 +v 0.280818 -0.144459 0.317165 +v 0.278084 -0.146673 0.318934 +v 0.277131 -0.148426 0.319570 +v 0.278439 -0.149067 0.319493 +v 0.279369 -0.147301 0.318858 +v 0.273347 -0.149091 0.319983 +v 0.272091 -0.151288 0.320333 +v 0.273466 -0.151961 0.320424 +v 0.274699 -0.149752 0.320072 +v 0.272010 -0.148436 0.319772 +v 0.270725 -0.150619 0.320116 +v 0.276047 -0.150412 0.320064 +v 0.274832 -0.152629 0.320417 +v 0.276172 -0.153285 0.320339 +v 0.277374 -0.151061 0.319986 +v 0.280626 -0.147917 0.318740 +v 0.281400 -0.146371 0.317966 +v 0.279712 -0.149689 0.319374 +v 0.288413 -0.153947 0.318231 +v 0.289317 -0.152169 0.317598 +v 0.290078 -0.150618 0.316825 +v 0.270704 -0.147797 0.319412 +v 0.269385 -0.149964 0.319745 +v 0.269444 -0.147180 0.318876 +v 0.282034 -0.145054 0.317050 +v 0.282528 -0.143963 0.315994 +v 0.290697 -0.149293 0.315911 +v 0.291173 -0.148194 0.314857 +v 0.282882 -0.143101 0.314797 +v 0.283096 -0.142466 0.313459 +v 0.291508 -0.147322 0.313662 +v 0.291700 -0.146676 0.312326 +v 0.278659 -0.151690 0.319867 +v 0.277465 -0.153918 0.320219 +v 0.286180 -0.158182 0.319074 +v 0.287368 -0.155952 0.318723 +v 0.312902 -0.163711 0.314449 +v 0.313653 -0.162155 0.313677 +v 0.312006 -0.165493 0.315080 +v 0.342249 -0.180292 0.310835 +v 0.343138 -0.178507 0.310204 +v 0.343881 -0.176947 0.309433 +v 0.310967 -0.167500 0.315572 +v 0.309783 -0.169733 0.315922 +v 0.340035 -0.184536 0.311676 +v 0.341215 -0.182302 0.311325 +v 0.314261 -0.160824 0.312764 +v 0.314725 -0.159719 0.311711 +v 0.344479 -0.175612 0.308522 +v 0.344932 -0.174501 0.307471 +v 0.283171 -0.142058 0.311981 +v 0.283717 -0.140710 0.310819 +v 0.282654 -0.140192 0.310924 +v 0.282080 -0.141524 0.312088 +v 0.291751 -0.146257 0.310850 +v 0.292285 -0.144884 0.309691 +v 0.281045 -0.141018 0.312156 +v 0.281660 -0.139708 0.310991 +v 0.280771 -0.139274 0.311013 +v 0.280097 -0.140554 0.312176 +v 0.315045 -0.158840 0.310518 +v 0.315221 -0.158186 0.309185 +v 0.345239 -0.173615 0.306279 +v 0.345401 -0.172955 0.304948 +v 0.373837 -0.187610 0.301859 +v 0.373984 -0.186942 0.300529 +v 0.373544 -0.188502 0.303048 +v 0.400602 -0.201744 0.298457 +v 0.400881 -0.200844 0.297271 +v 0.401011 -0.200168 0.295945 +v 0.373103 -0.189619 0.304097 +v 0.372515 -0.190959 0.305006 +v 0.399598 -0.204212 0.300412 +v 0.400174 -0.202866 0.299505 +v 0.371781 -0.192524 0.305776 +v 0.370899 -0.194312 0.306405 +v 0.397999 -0.207573 0.301808 +v 0.398873 -0.205781 0.301180 +v 0.425734 -0.215374 0.294760 +v 0.426148 -0.214245 0.293716 +v 0.425170 -0.216726 0.295665 +v 0.449272 -0.228520 0.290782 +v 0.449824 -0.227162 0.289879 +v 0.450224 -0.226026 0.288838 +v 0.369871 -0.196325 0.306895 +v 0.368695 -0.198561 0.307245 +v 0.395805 -0.211828 0.302646 +v 0.396976 -0.209589 0.302297 +v 0.424455 -0.218300 0.296431 +v 0.423589 -0.220096 0.297058 +v 0.447710 -0.231900 0.292171 +v 0.448567 -0.230099 0.291546 +v 0.422573 -0.222115 0.297545 +v 0.421406 -0.224356 0.297894 +v 0.445539 -0.236165 0.293004 +v 0.446701 -0.233922 0.292657 +v 0.367373 -0.201022 0.307455 +v 0.365171 -0.205043 0.307560 +v 0.392106 -0.218636 0.302960 +v 0.394485 -0.214290 0.302855 +v 0.338710 -0.186996 0.311886 +v 0.336697 -0.190674 0.311991 +v 0.420089 -0.226819 0.298102 +v 0.417542 -0.231472 0.298207 +v 0.441520 -0.243572 0.293316 +v 0.444224 -0.238630 0.293212 +v 0.469401 -0.245030 0.287646 +v 0.470404 -0.243005 0.287161 +v 0.468244 -0.247276 0.287992 +v 0.489564 -0.257709 0.282873 +v 0.490716 -0.255461 0.282528 +v 0.491711 -0.253432 0.282046 +v 0.308456 -0.172191 0.316133 +v 0.306641 -0.175507 0.316238 +v 0.284850 -0.160639 0.319285 +v 0.283190 -0.163672 0.319390 +v 0.471252 -0.241200 0.286538 +v 0.471945 -0.239615 0.285777 +v 0.492549 -0.251622 0.281425 +v 0.493230 -0.250032 0.280667 +v 0.276132 -0.156373 0.320430 +v 0.274527 -0.159301 0.320536 +v 0.274833 -0.155737 0.320550 +v 0.273235 -0.158648 0.320656 +v 0.361360 -0.211962 0.307595 +v 0.387759 -0.226527 0.302995 +v 0.333452 -0.196564 0.312026 +v 0.327865 -0.205727 0.312026 +v 0.354983 -0.222476 0.307595 +v 0.380635 -0.238319 0.302995 +v 0.273486 -0.155078 0.320629 +v 0.271893 -0.157971 0.320735 +v 0.272109 -0.154404 0.320636 +v 0.270519 -0.157278 0.320742 +v 0.303995 -0.180311 0.316273 +v 0.281011 -0.167630 0.319426 +v 0.276906 -0.174254 0.319426 +v 0.299241 -0.188048 0.316273 +v 0.272520 -0.162945 0.320571 +v 0.271252 -0.162246 0.320692 +v 0.267424 -0.168398 0.320692 +v 0.268656 -0.169159 0.320571 +v 0.270720 -0.153725 0.320543 +v 0.269132 -0.156578 0.320648 +v 0.269336 -0.153048 0.320323 +v 0.267749 -0.155880 0.320426 +v 0.269936 -0.161519 0.320770 +v 0.268588 -0.160775 0.320777 +v 0.264835 -0.166799 0.320777 +v 0.266144 -0.167608 0.320770 +v 0.261479 -0.179794 0.320571 +v 0.269470 -0.185288 0.319426 +v 0.260286 -0.178973 0.320692 +v 0.251191 -0.191529 0.320692 +v 0.252342 -0.192407 0.320571 +v 0.260054 -0.198287 0.319426 +v 0.259047 -0.178121 0.320770 +v 0.257778 -0.177249 0.320777 +v 0.248771 -0.189684 0.320777 +v 0.249995 -0.190618 0.320770 +v 0.267226 -0.160024 0.320684 +v 0.265868 -0.159275 0.320461 +v 0.262192 -0.165167 0.320461 +v 0.263511 -0.165982 0.320684 +v 0.291100 -0.200161 0.316273 +v 0.318822 -0.219223 0.312026 +v 0.280928 -0.214204 0.316273 +v 0.307682 -0.234603 0.312026 +v 0.256497 -0.176368 0.320684 +v 0.255219 -0.175489 0.320461 +v 0.246301 -0.187801 0.320461 +v 0.247534 -0.188741 0.320684 +v 0.253961 -0.174624 0.320079 +v 0.252738 -0.173784 0.319510 +v 0.245086 -0.186875 0.320079 +v 0.260893 -0.164364 0.320079 +v 0.267977 -0.152382 0.319946 +v 0.266389 -0.155193 0.320046 +v 0.268244 -0.146593 0.318140 +v 0.264531 -0.158537 0.320079 +v 0.251569 -0.172979 0.318725 +v 0.235622 -0.198676 0.320079 +v 0.236789 -0.199660 0.320461 +v 0.225589 -0.209998 0.320079 +v 0.226707 -0.211038 0.320461 +v 0.237975 -0.200660 0.320684 +v 0.239164 -0.201662 0.320777 +v 0.227842 -0.212095 0.320684 +v 0.228981 -0.213155 0.320777 +v 0.215013 -0.220814 0.320079 +v 0.216079 -0.221908 0.320461 +v 0.203920 -0.231098 0.320079 +v 0.204930 -0.232243 0.320461 +v 0.240340 -0.202654 0.320770 +v 0.241490 -0.203624 0.320692 +v 0.230107 -0.214203 0.320770 +v 0.231208 -0.215228 0.320692 +v 0.217161 -0.223019 0.320684 +v 0.218246 -0.224133 0.320777 +v 0.205956 -0.233406 0.320684 +v 0.206985 -0.234572 0.320777 +v 0.192334 -0.240826 0.320079 +v 0.193287 -0.242019 0.320461 +v 0.180286 -0.249973 0.320079 +v 0.181179 -0.251212 0.320461 +v 0.242597 -0.204557 0.320571 +v 0.250011 -0.210808 0.319426 +v 0.232268 -0.216215 0.320571 +v 0.239366 -0.222822 0.319426 +v 0.219319 -0.225236 0.320770 +v 0.220368 -0.226313 0.320692 +v 0.208004 -0.235726 0.320770 +v 0.208999 -0.236854 0.320692 +v 0.194255 -0.243231 0.320684 +v 0.195226 -0.244446 0.320777 +v 0.182087 -0.252470 0.320684 +v 0.182996 -0.253731 0.320777 +v 0.167803 -0.258518 0.320079 +v 0.168635 -0.259799 0.320461 +v 0.154916 -0.266441 0.320079 +v 0.155684 -0.267761 0.320461 +v 0.141656 -0.273721 0.320079 +v 0.142358 -0.275077 0.320461 +v 0.169479 -0.261100 0.320684 +v 0.170326 -0.262404 0.320777 +v 0.156464 -0.269101 0.320684 +v 0.157245 -0.270446 0.320777 +v 0.196186 -0.245649 0.320770 +v 0.197125 -0.246824 0.320692 +v 0.183897 -0.254979 0.320770 +v 0.184776 -0.256199 0.320692 +v 0.143071 -0.276454 0.320684 +v 0.143786 -0.277836 0.320777 +v 0.171164 -0.263695 0.320770 +v 0.171983 -0.264957 0.320692 +v 0.158019 -0.271777 0.320770 +v 0.158775 -0.273076 0.320692 +v 0.144493 -0.279203 0.320770 +v 0.145184 -0.280538 0.320692 +v 0.130619 -0.285956 0.320770 +v 0.131244 -0.287324 0.320692 +v 0.116431 -0.292021 0.320770 +v 0.116988 -0.293418 0.320692 +v 0.172771 -0.266171 0.320571 +v 0.178051 -0.274305 0.319426 +v 0.191296 -0.265238 0.319426 +v 0.185623 -0.257373 0.320571 +v 0.159503 -0.274328 0.320571 +v 0.164377 -0.282712 0.319426 +v 0.117524 -0.294763 0.320571 +v 0.121115 -0.303771 0.319426 +v 0.135875 -0.297462 0.319426 +v 0.131846 -0.288641 0.320571 +v 0.145850 -0.281824 0.320571 +v 0.150307 -0.290436 0.319426 +v 0.130837 -0.328155 0.316273 +v 0.143297 -0.359405 0.312026 +v 0.160760 -0.351941 0.312026 +v 0.146782 -0.321340 0.316273 +v 0.117224 -0.333415 0.316273 +v 0.128136 -0.365240 0.312026 +v 0.162372 -0.313750 0.316273 +v 0.177835 -0.343629 0.312026 +v 0.194482 -0.334490 0.312026 +v 0.177572 -0.305405 0.316273 +v 0.192343 -0.296324 0.316273 +v 0.210660 -0.324544 0.312026 +v 0.226331 -0.313816 0.312026 +v 0.206652 -0.286530 0.316273 +v 0.198028 -0.247955 0.320571 +v 0.204080 -0.255532 0.319426 +v 0.216373 -0.245211 0.319426 +v 0.209957 -0.237940 0.320571 +v 0.220462 -0.276044 0.316273 +v 0.241457 -0.302333 0.312026 +v 0.256001 -0.290121 0.312026 +v 0.233741 -0.264895 0.316273 +v 0.221379 -0.227351 0.320571 +v 0.228144 -0.234299 0.319426 +v 0.246457 -0.253106 0.316273 +v 0.269928 -0.277210 0.312026 +v 0.283205 -0.263631 0.312026 +v 0.258580 -0.240708 0.316273 +v 0.270079 -0.227730 0.316273 +v 0.295799 -0.249417 0.312026 +v 0.292164 -0.300046 0.307595 +v 0.313198 -0.321647 0.302995 +v 0.328604 -0.305892 0.302995 +v 0.306535 -0.285349 0.307595 +v 0.277090 -0.314021 0.307595 +v 0.297039 -0.336628 0.302995 +v 0.345086 -0.237282 0.307595 +v 0.369930 -0.254365 0.302995 +v 0.333028 -0.253929 0.307595 +v 0.357004 -0.272210 0.302995 +v 0.320167 -0.269964 0.307595 +v 0.343217 -0.289400 0.302995 +v 0.412688 -0.240282 0.298242 +v 0.436189 -0.253248 0.293351 +v 0.404860 -0.253280 0.298242 +v 0.427696 -0.267384 0.293351 +v 0.393392 -0.270497 0.298242 +v 0.415508 -0.285704 0.293351 +v 0.379646 -0.289474 0.298242 +v 0.400989 -0.305748 0.293351 +v 0.364984 -0.307754 0.298242 +v 0.385504 -0.325056 0.293351 +v 0.349444 -0.325292 0.298242 +v 0.369090 -0.343580 0.293351 +v 0.261348 -0.327238 0.307595 +v 0.280163 -0.350797 0.302995 +v 0.244976 -0.339668 0.307595 +v 0.262613 -0.364122 0.302995 +v 0.333061 -0.342047 0.298242 +v 0.351786 -0.361276 0.293351 +v 0.315877 -0.357977 0.298242 +v 0.333636 -0.378103 0.293351 +v 0.228014 -0.351279 0.307595 +v 0.244430 -0.376569 0.302995 +v 0.210503 -0.362044 0.307595 +v 0.225658 -0.388109 0.302995 +v 0.297931 -0.373045 0.298242 +v 0.314681 -0.394018 0.293351 +v 0.279268 -0.387215 0.298242 +v 0.294969 -0.408984 0.293351 +v 0.192485 -0.371937 0.307595 +v 0.206343 -0.398714 0.302995 +v 0.174003 -0.380934 0.307595 +v 0.186530 -0.408359 0.302995 +v 0.259932 -0.400451 0.298242 +v 0.274545 -0.422965 0.293351 +v 0.239970 -0.412723 0.298242 +v 0.253461 -0.435927 0.293351 +v 0.369404 -0.379370 0.288338 +v 0.385947 -0.396359 0.283218 +v 0.404931 -0.376944 0.283218 +v 0.387574 -0.360787 0.288338 +v 0.350345 -0.397039 0.288338 +v 0.366034 -0.414819 0.283218 +v 0.330441 -0.413751 0.288338 +v 0.345239 -0.432280 0.283218 +v 0.309741 -0.429467 0.288338 +v 0.323612 -0.448699 0.283218 +v 0.404810 -0.341335 0.288338 +v 0.422939 -0.356621 0.283218 +v 0.439928 -0.335439 0.283218 +v 0.421071 -0.321061 0.288338 +v 0.219429 -0.424001 0.298242 +v 0.231765 -0.447838 0.293351 +v 0.198360 -0.434257 0.298242 +v 0.209512 -0.458671 0.293351 +v 0.436317 -0.300013 0.288338 +v 0.455857 -0.313448 0.283218 +v 0.469358 -0.293115 0.283218 +v 0.449182 -0.280654 0.288338 +v 0.155102 -0.389013 0.307595 +v 0.166268 -0.417019 0.302995 +v 0.138473 -0.395390 0.307595 +v 0.148252 -0.423911 0.302995 +v 0.108627 -0.336341 0.316273 +v 0.117964 -0.368663 0.312026 +v 0.126810 -0.399284 0.307595 +v 0.135177 -0.428250 0.302995 +v 0.176813 -0.443467 0.298242 +v 0.186754 -0.468399 0.293351 +v 0.157487 -0.450844 0.298242 +v 0.166192 -0.476234 0.293351 +v 0.128313 -0.459845 0.298103 +v 0.133414 -0.458390 0.298207 +v 0.134494 -0.485995 0.293212 +v 0.139912 -0.484450 0.293316 +v 0.143079 -0.455604 0.298242 +v 0.150528 -0.481390 0.293351 +v 0.140310 -0.510598 0.288200 +v 0.146027 -0.508969 0.288303 +v 0.157537 -0.505652 0.288338 +v 0.174382 -0.500122 0.288338 +v 0.196106 -0.491857 0.288338 +v 0.204889 -0.513883 0.283218 +v 0.229857 -0.503210 0.283218 +v 0.220005 -0.481642 0.288338 +v 0.213117 -0.534521 0.278006 +v 0.239088 -0.523419 0.278006 +v 0.243373 -0.470266 0.288338 +v 0.254271 -0.491326 0.283218 +v 0.278074 -0.478258 0.283218 +v 0.266154 -0.457758 0.288338 +v 0.264483 -0.511057 0.278006 +v 0.274029 -0.529502 0.272718 +v 0.299680 -0.515419 0.272718 +v 0.289241 -0.497465 0.278006 +v 0.282929 -0.546699 0.267369 +v 0.291205 -0.562691 0.261974 +v 0.318464 -0.547725 0.261974 +v 0.309414 -0.532160 0.267369 +v 0.288295 -0.444147 0.288338 +v 0.301205 -0.464037 0.283218 +v 0.313302 -0.482673 0.278006 +v 0.324609 -0.500093 0.272718 +v 0.348757 -0.483564 0.272718 +v 0.336609 -0.466719 0.278006 +v 0.359104 -0.449640 0.278006 +v 0.372064 -0.465868 0.272718 +v 0.394475 -0.447051 0.272718 +v 0.380734 -0.431479 0.278006 +v 0.335152 -0.516335 0.267369 +v 0.344956 -0.531439 0.261974 +v 0.370617 -0.513874 0.261974 +v 0.360084 -0.499269 0.267369 +v 0.384148 -0.480999 0.267369 +v 0.395385 -0.495069 0.261974 +v 0.419201 -0.475072 0.261974 +v 0.407287 -0.461571 0.267369 +v 0.401447 -0.412277 0.278006 +v 0.415936 -0.427156 0.272718 +v 0.436394 -0.406233 0.272718 +v 0.421193 -0.392082 0.278006 +v 0.429445 -0.441030 0.267369 +v 0.442006 -0.453931 0.261974 +v 0.463748 -0.431696 0.261974 +v 0.450568 -0.419427 0.267369 +v 0.439924 -0.370943 0.278006 +v 0.455801 -0.384330 0.272718 +v 0.474111 -0.361503 0.272718 +v 0.457596 -0.348910 0.278006 +v 0.470605 -0.396813 0.267369 +v 0.484371 -0.408421 0.261974 +v 0.503828 -0.384162 0.261974 +v 0.489510 -0.373244 0.267369 +v 0.474164 -0.326036 0.278006 +v 0.491277 -0.337803 0.272718 +v 0.505931 -0.315703 0.272718 +v 0.488261 -0.304790 0.278006 +v 0.507234 -0.348775 0.267369 +v 0.522071 -0.358977 0.261974 +v 0.537726 -0.335340 0.261974 +v 0.522406 -0.325878 0.267369 +v 0.497133 -0.419182 0.256549 +v 0.509687 -0.429767 0.250663 +v 0.530161 -0.404240 0.250663 +v 0.517103 -0.394284 0.256549 +v 0.475967 -0.443070 0.256549 +v 0.487986 -0.454259 0.250663 +v 0.535827 -0.368436 0.256549 +v 0.549357 -0.377739 0.250663 +v 0.565900 -0.352741 0.250663 +v 0.551929 -0.344112 0.256549 +v 0.533655 -0.307025 0.267369 +v 0.516700 -0.297670 0.272718 +v 0.549420 -0.315723 0.261974 +v 0.557050 -0.301873 0.261940 +v 0.540965 -0.293756 0.267335 +v 0.523666 -0.285026 0.272684 +v 0.453653 -0.465891 0.256549 +v 0.465108 -0.477656 0.250663 +v 0.430246 -0.487590 0.256549 +v 0.441111 -0.499902 0.250663 +v 0.498516 -0.287637 0.278006 +v 0.479063 -0.276904 0.283218 +v 0.505113 -0.275663 0.277972 +v 0.485264 -0.265647 0.283183 +v 0.405803 -0.508112 0.256549 +v 0.416050 -0.520943 0.250663 +v 0.380382 -0.527412 0.256549 +v 0.389988 -0.540731 0.250663 +v 0.458300 -0.265448 0.288338 +v 0.464081 -0.254957 0.288303 +v 0.466933 -0.249742 0.288200 +v 0.488256 -0.260177 0.283080 +v 0.508234 -0.269953 0.277869 +v 0.509539 -0.267484 0.277663 +v 0.526909 -0.279092 0.272581 +v 0.528210 -0.276620 0.272376 +v 0.544321 -0.287612 0.267233 +v 0.545618 -0.285139 0.267029 +v 0.560511 -0.295535 0.261839 +v 0.510685 -0.265233 0.277319 +v 0.511672 -0.263200 0.276839 +v 0.529350 -0.274366 0.272035 +v 0.546751 -0.282882 0.266690 +v 0.512500 -0.261385 0.276221 +v 0.513169 -0.259788 0.275466 +v 0.513679 -0.258410 0.274574 +v 0.493755 -0.248660 0.279770 +v 0.472484 -0.238251 0.284877 +v 0.472868 -0.237107 0.283839 +v 0.473098 -0.236184 0.282663 +v 0.450471 -0.225111 0.287657 +v 0.426412 -0.213338 0.292532 +v 0.426525 -0.212653 0.291209 +v 0.373983 -0.186498 0.299060 +v 0.374544 -0.184966 0.297906 +v 0.345968 -0.171042 0.302320 +v 0.345417 -0.172519 0.303476 +v 0.400993 -0.199715 0.294479 +v 0.401562 -0.198131 0.293327 +v 0.315253 -0.157758 0.307711 +v 0.315792 -0.156338 0.306553 +v 0.575520 -0.302880 0.256415 +v 0.571963 -0.309399 0.256515 +v 0.586631 -0.316801 0.250630 +v 0.590284 -0.310105 0.250531 +v 0.564037 -0.323788 0.256549 +v 0.578413 -0.331721 0.250663 +v 0.605736 -0.317667 0.243757 +v 0.601986 -0.324550 0.243855 +v 0.593463 -0.340024 0.243887 +v 0.607997 -0.348043 0.236703 +v 0.580523 -0.361772 0.243887 +v 0.594646 -0.370495 0.236703 +v 0.620828 -0.355123 0.229591 +v 0.607114 -0.378195 0.229591 +v 0.563520 -0.387478 0.243887 +v 0.577197 -0.396882 0.236703 +v 0.543829 -0.414662 0.243887 +v 0.557029 -0.424726 0.236703 +v 0.589274 -0.405186 0.229591 +v 0.599836 -0.412449 0.222589 +v 0.568683 -0.433612 0.229591 +v 0.578875 -0.441385 0.222589 +v 0.522827 -0.440847 0.243887 +v 0.535517 -0.451547 0.236703 +v 0.500566 -0.465970 0.243887 +v 0.512716 -0.477280 0.236703 +v 0.608974 -0.418732 0.215731 +v 0.616773 -0.424095 0.209055 +v 0.587694 -0.448108 0.215731 +v 0.595222 -0.453849 0.209055 +v 0.546721 -0.460994 0.229591 +v 0.556521 -0.469257 0.222589 +v 0.523443 -0.487265 0.229591 +v 0.532825 -0.495999 0.222589 +v 0.477099 -0.489970 0.243887 +v 0.488679 -0.501862 0.236703 +v 0.452483 -0.512789 0.243887 +v 0.463466 -0.525236 0.236703 +v 0.623326 -0.428601 0.202597 +v 0.628719 -0.432309 0.196391 +v 0.601545 -0.458670 0.202597 +v 0.606750 -0.462639 0.196391 +v 0.564998 -0.476405 0.215731 +v 0.572236 -0.482508 0.209055 +v 0.540942 -0.503555 0.215731 +v 0.547872 -0.510005 0.209055 +v 0.498903 -0.512361 0.229591 +v 0.507846 -0.521545 0.222589 +v 0.473162 -0.536224 0.229591 +v 0.481643 -0.545836 0.222589 +v 0.633041 -0.435281 0.190475 +v 0.610922 -0.465819 0.190476 +v 0.578315 -0.487634 0.202597 +v 0.583319 -0.491853 0.196391 +v 0.553692 -0.515424 0.202597 +v 0.587328 -0.495234 0.190476 +v 0.527734 -0.541970 0.202597 +v 0.522186 -0.536272 0.209055 +v 0.515582 -0.529490 0.215731 +v 0.488980 -0.554151 0.215731 +v 0.461200 -0.577476 0.215731 +v 0.454280 -0.568811 0.222589 +v 0.389360 -0.599847 0.229591 +v 0.381381 -0.587555 0.236703 +v 0.418324 -0.580020 0.229591 +v 0.409752 -0.568134 0.236703 +v 0.446280 -0.558795 0.229591 +v 0.437135 -0.547345 0.236703 +v 0.372343 -0.573632 0.243887 +v 0.362985 -0.559215 0.250663 +v 0.400042 -0.554671 0.243887 +v 0.298878 -0.577517 0.256549 +v 0.326855 -0.562157 0.256549 +v 0.426776 -0.534374 0.243887 +v 0.354045 -0.545442 0.256549 +v 0.275354 -0.139417 0.313930 +v 0.276330 -0.139155 0.312819 +v 0.277247 -0.139159 0.311591 +v 0.278450 -0.138143 0.310626 +v 0.277589 -0.139327 0.311775 +v 0.278666 -0.138248 0.310729 +v 0.278023 -0.139539 0.311932 +v 0.278979 -0.138401 0.310830 +v 0.278575 -0.139809 0.312055 +v 0.279420 -0.138616 0.310918 +v 0.279270 -0.140149 0.312139 +v 0.280021 -0.138909 0.310984 +v 0.074409 -0.301155 0.311591 +v 0.074607 -0.300260 0.312819 +v 0.073085 -0.302118 0.310626 +v 0.075079 -0.299366 0.313930 +v 0.688712 -0.340512 0.176068 +v 0.688737 -0.338061 0.175583 +v 0.690148 -0.341215 0.172222 +v 0.690127 -0.338738 0.171870 +v 0.691360 -0.341808 0.162776 +v 0.691285 -0.339302 0.162729 +v 0.691189 -0.339256 0.165551 +v 0.691258 -0.341758 0.165666 +v 0.692498 -0.342809 0.162836 +v 0.692488 -0.342804 0.160000 +v 0.691347 -0.341801 0.160000 +v 0.691271 -0.339295 0.160000 +v 0.693382 -0.343981 0.162890 +v 0.694010 -0.345324 0.162939 +v 0.694003 -0.345321 0.160000 +v 0.693373 -0.343977 0.160000 +v 0.694382 -0.346838 0.162982 +v 0.694499 -0.348524 0.163019 +v 0.694495 -0.348522 0.160000 +v 0.694377 -0.346836 0.160000 +v 0.694361 -0.350380 0.163050 +v 0.693967 -0.352407 0.163076 +v 0.693965 -0.352406 0.160000 +v 0.694358 -0.350378 0.160000 +v 0.693318 -0.354605 0.163096 +v 0.692413 -0.356974 0.163111 +v 0.692412 -0.356974 0.160000 +v 0.693317 -0.354605 0.160000 +v 0.691253 -0.359515 0.163119 +v 0.686996 -0.367450 0.163123 +v 0.686995 -0.367450 0.160000 +v 0.691253 -0.359515 0.160000 +v 0.676798 -0.386004 0.163125 +v 0.676798 -0.386004 0.160000 +v 0.661502 -0.411786 0.163125 +v 0.661502 -0.411786 0.160000 +v 0.641947 -0.441405 0.163125 +v 0.641947 -0.441405 0.160000 +v 0.619515 -0.472372 0.163125 +v 0.619515 -0.472372 0.160000 +v 0.595591 -0.502201 0.163125 +v 0.595591 -0.502201 0.160000 +v 0.570232 -0.530820 0.163125 +v 0.570232 -0.530820 0.160000 +v 0.543498 -0.558160 0.163125 +v 0.543498 -0.558160 0.160000 +v 0.515456 -0.584157 0.163125 +v 0.515456 -0.584157 0.160000 +v 0.486173 -0.608745 0.163125 +v 0.486173 -0.608745 0.160000 +v 0.455718 -0.631867 0.163125 +v 0.455718 -0.631867 0.160000 +v 0.424164 -0.653467 0.163125 +v 0.424164 -0.653467 0.160000 +v 0.391590 -0.673493 0.163125 +v 0.391590 -0.673493 0.160000 +v 0.358071 -0.691895 0.163125 +v 0.358071 -0.691896 0.160000 +v 0.323690 -0.708632 0.163125 +v 0.323690 -0.708632 0.160000 +v 0.288529 -0.723661 0.163125 +v 0.288529 -0.723661 0.160000 +v 0.255319 -0.736183 0.163125 +v 0.255319 -0.736183 0.160000 +v 0.226793 -0.745399 0.163125 +v 0.226793 -0.745399 0.160000 +v 0.206443 -0.751241 0.163123 +v 0.206443 -0.751241 0.160000 +v 0.197763 -0.753639 0.163119 +v 0.195029 -0.754208 0.163111 +v 0.195029 -0.754208 0.160000 +v 0.197763 -0.753638 0.160000 +v 0.192519 -0.754567 0.163096 +v 0.190231 -0.754714 0.163076 +v 0.190231 -0.754712 0.160000 +v 0.192518 -0.754565 0.160000 +v 0.188167 -0.754649 0.163051 +v 0.186326 -0.754374 0.163019 +v 0.186325 -0.754370 0.160000 +v 0.188166 -0.754646 0.160000 +v 0.184709 -0.753887 0.162982 +v 0.183314 -0.753189 0.162939 +v 0.183313 -0.753182 0.160000 +v 0.184707 -0.753881 0.160000 +v 0.182143 -0.752280 0.162890 +v 0.181195 -0.751159 0.162836 +v 0.181193 -0.751148 0.160000 +v 0.182141 -0.752271 0.160000 +v 0.182113 -0.752151 0.165944 +v 0.181167 -0.751039 0.165812 +v 0.180471 -0.749827 0.162776 +v 0.177880 -0.749236 0.162729 +v 0.177876 -0.749220 0.160000 +v 0.180467 -0.749814 0.160000 +v 0.180444 -0.749717 0.165666 +v 0.177856 -0.749133 0.165551 +v 0.180359 -0.749356 0.168785 +v 0.181076 -0.750655 0.169068 +v 0.177776 -0.748791 0.168562 +v 0.182017 -0.751745 0.169324 +v 0.426487 -0.212191 0.289747 +v 0.427062 -0.210556 0.288598 +v 0.690925 -0.341595 0.168785 +v 0.690874 -0.339102 0.168562 +v 0.191662 -0.750942 0.179363 +v 0.279208 0.134449 0.308211 +v 0.279639 0.134656 0.309378 +v 0.278698 0.134203 0.306747 +v 0.279911 0.134787 0.309953 +v 0.280087 0.134872 0.310180 +v 0.280229 0.134940 0.310304 +v 0.280403 0.135024 0.310381 +v 0.280676 0.135156 0.310463 +v 0.281081 0.135350 0.310539 +v 0.281652 0.135625 0.310599 +v 0.282378 0.135975 0.310625 +v 0.283249 0.136395 0.310602 +v 0.284230 0.136867 0.310536 +v 0.285286 0.137376 0.310432 +v 0.293867 0.141507 0.309304 +v 0.317422 0.152850 0.306167 +v 0.347662 0.167412 0.301935 +v 0.376297 0.181201 0.297522 +v 0.403370 0.194237 0.292943 +v 0.428923 0.206542 0.288215 +v 0.452995 0.218134 0.283352 +v 0.475629 0.229033 0.278372 +v 0.496864 0.239258 0.273289 +v 0.516741 0.248829 0.268121 +v 0.535300 0.257766 0.262883 +v 0.552582 0.266088 0.257591 +v 0.568622 0.273812 0.252265 +v 0.583454 0.280955 0.246923 +v 0.598009 0.287964 0.241142 +v 0.613216 0.295286 0.234499 +v 0.627852 0.302334 0.227482 +v 0.640694 0.308518 0.220581 +v 0.651842 0.313886 0.213839 +v 0.661395 0.318486 0.207301 +v 0.669451 0.322365 0.201020 +v 0.676108 0.325571 0.195047 +v 0.681472 0.328154 0.189440 +v 0.685649 0.330165 0.184259 +v 0.688760 0.331663 0.179566 +v 0.690928 0.332707 0.175421 +v 0.692305 0.333370 0.171753 +v 0.693043 0.333726 0.168488 +v 0.693353 0.333875 0.165513 +v 0.693447 0.333920 0.162713 +v 0.693432 0.333913 0.160000 +v 0.068853 0.302142 0.308211 +v 0.068959 0.302608 0.309378 +v 0.068727 0.301591 0.306747 +v 0.069026 0.302903 0.309953 +v 0.069070 0.303093 0.310180 +v 0.069105 0.303247 0.310304 +v 0.069148 0.303436 0.310381 +v 0.069215 0.303731 0.310463 +v 0.069315 0.304169 0.310539 +v 0.069456 0.304787 0.310599 +v 0.069635 0.305573 0.310625 +v 0.069850 0.306516 0.310602 +v 0.070092 0.307577 0.310536 +v 0.070352 0.308720 0.310432 +v 0.072468 0.318005 0.309304 +v 0.078277 0.343495 0.306167 +v 0.085734 0.376220 0.301935 +v 0.092796 0.407208 0.297522 +v 0.099472 0.436505 0.292943 +v 0.105773 0.464156 0.288215 +v 0.111710 0.490207 0.283352 +v 0.117291 0.514699 0.278372 +v 0.122528 0.537678 0.273289 +v 0.127429 0.559188 0.268121 +v 0.132006 0.579271 0.262883 +v 0.136268 0.597973 0.257591 +v 0.140223 0.615331 0.252265 +v 0.143881 0.631382 0.246923 +v 0.147471 0.647134 0.241142 +v 0.151221 0.663590 0.234499 +v 0.154830 0.679428 0.227482 +v 0.157997 0.693325 0.220581 +v 0.160746 0.705388 0.213839 +v 0.163102 0.715726 0.207301 +v 0.165089 0.724444 0.201020 +v 0.166730 0.731648 0.195047 +v 0.168053 0.737453 0.189440 +v 0.169083 0.741972 0.184259 +v 0.169850 0.745339 0.179566 +v 0.170385 0.747685 0.175421 +v 0.170724 0.749175 0.171753 +v 0.170906 0.749974 0.168488 +v 0.170983 0.750310 0.165513 +v 0.171006 0.750411 0.162713 +v 0.171002 0.750395 0.160000 +v -0.193597 0.241973 0.308211 +v -0.193896 0.242346 0.309378 +v -0.193243 0.241531 0.306747 +v -0.194084 0.242582 0.309953 +v -0.194206 0.242735 0.310180 +v -0.194305 0.242858 0.310304 +v -0.194426 0.243009 0.310381 +v -0.194615 0.243245 0.310463 +v -0.194896 0.243596 0.310539 +v -0.195291 0.244091 0.310599 +v -0.195795 0.244720 0.310625 +v -0.196399 0.245475 0.310602 +v -0.197079 0.246326 0.310536 +v -0.197812 0.247241 0.310432 +v -0.203761 0.254677 0.309304 +v -0.220094 0.275091 0.306167 +v -0.241062 0.301298 0.301935 +v -0.260917 0.326115 0.297522 +v -0.279689 0.349578 0.292943 +v -0.297407 0.371723 0.288215 +v -0.314099 0.392586 0.283352 +v -0.329792 0.412201 0.278372 +v -0.344516 0.430604 0.273289 +v -0.358299 0.447830 0.268121 +v -0.371168 0.463915 0.262883 +v -0.383150 0.478892 0.257591 +v -0.394272 0.492793 0.252265 +v -0.404557 0.505648 0.246923 +v -0.414650 0.518263 0.241142 +v -0.425194 0.531442 0.234499 +v -0.435342 0.544125 0.227482 +v -0.444247 0.555254 0.220581 +v -0.451977 0.564915 0.213839 +v -0.458600 0.573194 0.207301 +v -0.464186 0.580176 0.201020 +v -0.468802 0.585946 0.195047 +v -0.472522 0.590594 0.189440 +v -0.475418 0.594214 0.184259 +v -0.477574 0.596910 0.179566 +v -0.479077 0.598789 0.175421 +v -0.480033 0.599983 0.171753 +v -0.480545 0.600622 0.168488 +v -0.480760 0.600891 0.165513 +v -0.480825 0.600972 0.162713 +v -0.480815 0.600959 0.160000 +v -0.309901 -0.000068 0.308211 +v -0.310379 -0.000068 0.309378 +v -0.309335 -0.000067 0.306747 +v -0.310681 -0.000068 0.309953 +v -0.310876 -0.000068 0.310180 +v -0.311034 -0.000068 0.310304 +v -0.311228 -0.000068 0.310381 +v -0.311530 -0.000068 0.310463 +v -0.311980 -0.000068 0.310539 +v -0.312613 -0.000068 0.310599 +v -0.313419 -0.000068 0.310625 +v -0.314386 -0.000069 0.310602 +v -0.315475 -0.000069 0.310536 +v -0.316647 -0.000069 0.310432 +v -0.326171 -0.000071 0.309304 +v -0.352315 -0.000077 0.306167 +v -0.385879 -0.000084 0.301935 +v -0.417661 -0.000091 0.297522 +v -0.447710 -0.000098 0.292943 +v -0.476070 -0.000104 0.288215 +v -0.502789 -0.000110 0.283352 +v -0.527910 -0.000115 0.278372 +v -0.551479 -0.000120 0.273289 +v -0.573540 -0.000125 0.268121 +v -0.594139 -0.000130 0.262883 +v -0.613321 -0.000134 0.257591 +v -0.631124 -0.000138 0.252265 +v -0.647587 -0.000141 0.246923 +v -0.663742 -0.000145 0.241142 +v -0.680621 -0.000149 0.234499 +v -0.696865 -0.000152 0.227482 +v -0.711118 -0.000155 0.220581 +v -0.723492 -0.000158 0.213839 +v -0.734094 -0.000160 0.207301 +v -0.743036 -0.000162 0.201020 +v -0.750425 -0.000164 0.195047 +v -0.756379 -0.000165 0.189440 +v -0.761014 -0.000166 0.184259 +v -0.764467 -0.000167 0.179566 +v -0.766873 -0.000167 0.175421 +v -0.768402 -0.000168 0.171753 +v -0.769221 -0.000168 0.168488 +v -0.769566 -0.000168 0.165513 +v -0.769669 -0.000168 0.162713 +v -0.769653 -0.000168 0.160000 +v -0.193491 -0.242057 0.308211 +v -0.193790 -0.242431 0.309378 +v -0.193138 -0.241615 0.306747 +v -0.193978 -0.242667 0.309953 +v -0.194100 -0.242819 0.310180 +v -0.194199 -0.242942 0.310304 +v -0.194320 -0.243094 0.310381 +v -0.194509 -0.243330 0.310463 +v -0.194789 -0.243681 0.310539 +v -0.195185 -0.244176 0.310599 +v -0.195688 -0.244806 0.310625 +v -0.196292 -0.245561 0.310602 +v -0.196972 -0.246412 0.310536 +v -0.197704 -0.247327 0.310432 +v -0.203650 -0.254766 0.309304 +v -0.219974 -0.275187 0.306167 +v -0.240930 -0.301404 0.301935 +v -0.260775 -0.326229 0.297522 +v -0.279537 -0.349700 0.292943 +v -0.297245 -0.371853 0.288215 +v -0.313927 -0.392723 0.283352 +v -0.329613 -0.412345 0.278372 +v -0.344329 -0.430754 0.273289 +v -0.358103 -0.447987 0.268121 +v -0.370965 -0.464077 0.262883 +v -0.382942 -0.479059 0.257591 +v -0.394057 -0.492965 0.252265 +v -0.404337 -0.505825 0.246923 +v -0.414424 -0.518443 0.241142 +v -0.424962 -0.531627 0.234499 +v -0.435105 -0.544315 0.227482 +v -0.444005 -0.555448 0.220581 +v -0.451730 -0.565112 0.213839 +v -0.458350 -0.573394 0.207301 +v -0.463933 -0.580379 0.201020 +v -0.468547 -0.586150 0.195047 +v -0.472264 -0.590801 0.189440 +v -0.475158 -0.594421 0.184259 +v -0.477314 -0.597119 0.179566 +v -0.478817 -0.598998 0.175421 +v -0.479771 -0.600192 0.171753 +v -0.480283 -0.600832 0.168488 +v -0.480498 -0.601101 0.165513 +v -0.480563 -0.601182 0.162713 +v -0.480552 -0.601169 0.160000 +v 0.068985 -0.302112 0.308211 +v 0.069091 -0.302578 0.309378 +v 0.068859 -0.301561 0.306747 +v 0.069158 -0.302873 0.309953 +v 0.069202 -0.303063 0.310180 +v 0.069237 -0.303217 0.310304 +v 0.069280 -0.303406 0.310381 +v 0.069347 -0.303701 0.310463 +v 0.069448 -0.304139 0.310539 +v 0.069589 -0.304756 0.310599 +v 0.069768 -0.305542 0.310625 +v 0.069983 -0.306485 0.310602 +v 0.070226 -0.307547 0.310536 +v 0.070487 -0.308689 0.310432 +v 0.072607 -0.317974 0.309304 +v 0.078426 -0.343461 0.306167 +v 0.085898 -0.376182 0.301935 +v 0.092973 -0.407167 0.297522 +v 0.099662 -0.436461 0.292943 +v 0.105976 -0.464110 0.288215 +v 0.111923 -0.490158 0.283352 +v 0.117516 -0.514648 0.278372 +v 0.122762 -0.537624 0.273289 +v 0.127673 -0.559132 0.268121 +v 0.132259 -0.579214 0.262883 +v 0.136529 -0.597914 0.257591 +v 0.140492 -0.615269 0.252265 +v 0.144157 -0.631319 0.246923 +v 0.147753 -0.647069 0.241142 +v 0.151510 -0.663524 0.234499 +v 0.155126 -0.679360 0.227482 +v 0.158299 -0.693256 0.220581 +v 0.161054 -0.705318 0.213839 +v 0.163414 -0.715655 0.207301 +v 0.165405 -0.724372 0.201020 +v 0.167049 -0.731575 0.195047 +v 0.168375 -0.737379 0.189440 +v 0.169407 -0.741898 0.184259 +v 0.170175 -0.745265 0.179566 +v 0.170711 -0.747611 0.175421 +v 0.171051 -0.749101 0.171753 +v 0.171234 -0.749900 0.168488 +v 0.171310 -0.750235 0.165513 +v 0.171333 -0.750337 0.162713 +v 0.171330 -0.750320 0.160000 +v 0.693593 -0.333618 0.162713 +v 0.693499 -0.333573 0.165513 +v 0.693577 -0.333610 0.160000 +v 0.693189 -0.333423 0.168488 +v 0.692450 -0.333068 0.171753 +v 0.691073 -0.332406 0.175421 +v 0.688904 -0.331363 0.179566 +v 0.685793 -0.329866 0.184259 +v 0.681615 -0.327857 0.189440 +v 0.676250 -0.325276 0.195047 +v 0.669592 -0.322073 0.201020 +v 0.661534 -0.318197 0.207301 +v 0.651979 -0.313602 0.213839 +v 0.640829 -0.308238 0.220581 +v 0.627984 -0.302060 0.227483 +v 0.613345 -0.295019 0.234499 +v 0.598135 -0.287703 0.241142 +v 0.583577 -0.280700 0.246923 +v 0.568740 -0.273564 0.252265 +v 0.552698 -0.265847 0.257591 +v 0.535412 -0.257533 0.262883 +v 0.516849 -0.248604 0.268121 +v 0.496968 -0.239041 0.273289 +v 0.475729 -0.228825 0.278372 +v 0.453091 -0.217936 0.283352 +v 0.429013 -0.206355 0.288215 +v 0.403455 -0.194061 0.292943 +v 0.376376 -0.181037 0.297522 +v 0.347735 -0.167260 0.301935 +v 0.317488 -0.152712 0.306167 +v 0.293928 -0.141379 0.309304 +v 0.285346 -0.137251 0.310432 +v 0.284290 -0.136743 0.310536 +v 0.283309 -0.136271 0.310602 +v 0.282437 -0.135852 0.310625 +v 0.281711 -0.135503 0.310599 +v 0.281140 -0.135228 0.310539 +v 0.280735 -0.135033 0.310463 +v 0.280462 -0.134902 0.310381 +v 0.280288 -0.134818 0.310304 +v 0.280145 -0.134750 0.310180 +v 0.279969 -0.134665 0.309953 +v 0.279697 -0.134534 0.309378 +v 0.279267 -0.134327 0.308211 +v 0.278757 -0.134082 0.306747 +v -0.054508 -0.894470 2.226001 +v -0.054440 -0.877847 2.225137 +v -0.109453 -0.877847 2.218630 +v -0.109589 -0.894470 2.219485 +v 0.000915 -0.894470 2.228182 +v 0.000915 -0.877847 2.227316 +v -0.054525 -0.860486 2.226229 +v 0.000915 -0.860486 2.228411 +v -0.109624 -0.860486 2.219711 +v -0.163986 -0.894470 2.208661 +v -0.163784 -0.877847 2.207819 +v -0.217102 -0.877847 2.192785 +v -0.217370 -0.894470 2.193609 +v -0.164040 -0.860486 2.208884 +v -0.217441 -0.860486 2.193827 +v -0.269406 -0.894470 2.174408 +v -0.269074 -0.877847 2.173608 +v -0.319384 -0.877847 2.150418 +v -0.319778 -0.894470 2.151190 +v -0.269493 -0.860486 2.174620 +v -0.319881 -0.860486 2.151394 +v -0.368169 -0.894470 2.124086 +v -0.367716 -0.877847 2.123347 +v -0.413780 -0.877847 2.092573 +v -0.414289 -0.894470 2.093273 +v -0.368289 -0.860486 2.124281 +v -0.414423 -0.860486 2.093459 +v -0.457844 -0.894470 2.058933 +v -0.457282 -0.877847 2.058274 +v -0.497963 -0.877847 2.020673 +v -0.498576 -0.894470 2.021285 +v -0.457993 -0.860486 2.059107 +v -0.498738 -0.860486 2.021447 +v -0.536223 -0.894470 1.980554 +v -0.535565 -0.877847 1.979991 +v -0.569863 -0.877847 1.936489 +v -0.570564 -0.894470 1.936998 +v -0.536397 -0.860486 1.980702 +v -0.570749 -0.860486 1.937133 +v -0.601376 -0.894470 1.890878 +v -0.600638 -0.877847 1.890426 +v -0.627709 -0.877847 1.842094 +v -0.628480 -0.894470 1.842487 +v -0.601571 -0.860486 1.890998 +v -0.628684 -0.860486 1.842591 +v -0.651698 -0.894470 1.792115 +v -0.650898 -0.877847 1.791784 +v -0.670075 -0.877847 1.739812 +v -0.670899 -0.894470 1.740080 +v -0.651910 -0.860486 1.792203 +v -0.671117 -0.860486 1.740150 +v -0.685951 -0.894470 1.686697 +v -0.685109 -0.877847 1.686494 +v -0.695920 -0.877847 1.632161 +v -0.696775 -0.894470 1.632298 +v -0.686174 -0.860486 1.686749 +v -0.697001 -0.860486 1.632334 +v -0.703291 -0.894470 1.577217 +v -0.702428 -0.877847 1.577149 +v -0.704606 -0.877847 1.521795 +v -0.705472 -0.894470 1.521794 +v -0.703519 -0.860486 1.577235 +v -0.705701 -0.860486 1.521795 +v -0.703291 -0.894470 1.466372 +v -0.702428 -0.877847 1.466440 +v -0.695920 -0.877847 1.411426 +v -0.696775 -0.894470 1.411291 +v -0.703519 -0.860486 1.466354 +v -0.697001 -0.860486 1.411255 +v -0.685951 -0.894470 1.356892 +v -0.685109 -0.877847 1.357094 +v -0.670075 -0.877847 1.303776 +v -0.670899 -0.894470 1.303509 +v -0.686174 -0.860486 1.356839 +v -0.671117 -0.860486 1.303438 +v -0.651698 -0.894470 1.251473 +v -0.650898 -0.877847 1.251804 +v -0.627708 -0.877847 1.201494 +v -0.628480 -0.894470 1.201101 +v -0.651910 -0.860486 1.251385 +v -0.628684 -0.860486 1.200997 +v -0.601375 -0.894470 1.152710 +v -0.600637 -0.877847 1.153162 +v -0.569863 -0.877847 1.107099 +v -0.570563 -0.894470 1.106590 +v -0.601571 -0.860486 1.152590 +v -0.570749 -0.860486 1.106456 +v -0.536223 -0.894470 1.063035 +v -0.535564 -0.877847 1.063597 +v -0.497963 -0.877847 1.022915 +v -0.498575 -0.894470 1.022303 +v -0.536397 -0.860486 1.062886 +v -0.498737 -0.860486 1.022141 +v -0.457844 -0.894470 0.984656 +v -0.457281 -0.877847 0.985314 +v -0.413779 -0.877847 0.951016 +v -0.414288 -0.894470 0.950315 +v -0.457992 -0.860486 0.984482 +v -0.414423 -0.860486 0.950130 +v -0.368168 -0.894470 0.919503 +v -0.367717 -0.877847 0.920241 +v -0.319385 -0.877847 0.893170 +v -0.319778 -0.894470 0.892399 +v -0.368288 -0.860486 0.919308 +v -0.319882 -0.860486 0.892195 +v -0.269406 -0.894470 0.869181 +v -0.269075 -0.877847 0.869981 +v -0.217103 -0.877847 0.850804 +v -0.217370 -0.894470 0.849980 +v -0.269494 -0.860486 0.868969 +v -0.217441 -0.860486 0.849762 +v -0.163987 -0.894470 0.834928 +v -0.163785 -0.877847 0.835770 +v -0.109453 -0.877847 0.824959 +v -0.109588 -0.894470 0.824104 +v -0.164040 -0.860486 0.834705 +v -0.109624 -0.860486 0.823878 +v -0.054507 -0.894470 0.817588 +v -0.054439 -0.877847 0.818452 +v 0.000915 -0.877847 0.816273 +v 0.000916 -0.894470 0.815407 +v -0.054525 -0.860486 0.817360 +v 0.000915 -0.860486 0.815178 +v 0.056338 -0.894470 0.817588 +v 0.056270 -0.877847 0.818452 +v 0.111283 -0.877847 0.824960 +v 0.111419 -0.894470 0.824104 +v 0.056356 -0.860486 0.817360 +v 0.111455 -0.860486 0.823878 +v 0.165818 -0.894470 0.834928 +v 0.165615 -0.877848 0.835771 +v 0.218934 -0.877848 0.850804 +v 0.219201 -0.894470 0.849981 +v 0.165871 -0.860486 0.834706 +v 0.219272 -0.860486 0.849763 +v 0.271237 -0.894470 0.869181 +v 0.270906 -0.877847 0.869981 +v 0.321216 -0.877847 0.893171 +v 0.321609 -0.894470 0.892399 +v 0.271325 -0.860486 0.868970 +v 0.321713 -0.860486 0.892195 +v 0.370000 -0.894470 0.919504 +v 0.369548 -0.877847 0.920242 +v 0.415611 -0.877847 0.951016 +v 0.416120 -0.894470 0.950316 +v 0.370120 -0.860486 0.919308 +v 0.416254 -0.860486 0.950130 +v 0.459675 -0.894470 0.984657 +v 0.459113 -0.877847 0.985315 +v 0.499795 -0.877847 1.022916 +v 0.500407 -0.894470 1.022304 +v 0.459824 -0.860486 0.984482 +v 0.500569 -0.860486 1.022142 +v 0.538054 -0.894470 1.063036 +v 0.537396 -0.877847 1.063598 +v 0.571694 -0.877848 1.107100 +v 0.572395 -0.894470 1.106591 +v 0.538228 -0.860486 1.062887 +v 0.572580 -0.860486 1.106457 +v 0.603207 -0.894471 1.152711 +v 0.602468 -0.877848 1.153163 +v 0.629540 -0.877848 1.201496 +v 0.630311 -0.894471 1.201103 +v 0.603402 -0.860486 1.152591 +v 0.630515 -0.860487 1.200999 +v 0.653529 -0.894471 1.251474 +v 0.652729 -0.877848 1.251806 +v 0.671906 -0.877848 1.303778 +v 0.672730 -0.894471 1.303510 +v 0.653741 -0.860486 1.251387 +v 0.672947 -0.860487 1.303439 +v 0.687782 -0.894471 1.356894 +v 0.686940 -0.877848 1.357096 +v 0.697750 -0.877848 1.411427 +v 0.698606 -0.894471 1.411292 +v 0.688004 -0.860486 1.356840 +v 0.698832 -0.860487 1.411256 +v 0.705122 -0.894471 1.466373 +v 0.704258 -0.877848 1.466442 +v 0.706436 -0.877848 1.521796 +v 0.707302 -0.894471 1.521796 +v 0.705350 -0.860486 1.466355 +v 0.707532 -0.860487 1.521796 +v 0.705121 -0.894471 1.577217 +v 0.704258 -0.877848 1.577149 +v 0.697750 -0.877848 1.632163 +v 0.698605 -0.894471 1.632298 +v 0.705350 -0.860487 1.577235 +v 0.698832 -0.860487 1.632334 +v 0.687781 -0.894471 1.686697 +v 0.686939 -0.877848 1.686495 +v 0.671905 -0.877848 1.739813 +v 0.672729 -0.894471 1.740081 +v 0.688004 -0.860487 1.686751 +v 0.672947 -0.860487 1.740152 +v 0.653528 -0.894471 1.792117 +v 0.652728 -0.877848 1.791785 +v 0.629538 -0.877848 1.842095 +v 0.630310 -0.894471 1.842488 +v 0.653740 -0.860486 1.792204 +v 0.630514 -0.860487 1.842592 +v 0.603206 -0.894471 1.890880 +v 0.602467 -0.877848 1.890427 +v 0.571693 -0.877847 1.936490 +v 0.572394 -0.894470 1.936999 +v 0.603401 -0.860486 1.890999 +v 0.572579 -0.860486 1.937134 +v 0.538053 -0.894470 1.980555 +v 0.537394 -0.877847 1.979992 +v 0.499793 -0.877847 2.020674 +v 0.500405 -0.894470 2.021286 +v 0.538227 -0.860486 1.980704 +v 0.500567 -0.860486 2.021448 +v 0.459674 -0.894470 2.058934 +v 0.459111 -0.877847 2.058275 +v 0.415609 -0.877847 2.092574 +v 0.416118 -0.894470 2.093274 +v 0.459823 -0.860486 2.059108 +v 0.416253 -0.860486 2.093460 +v 0.369998 -0.894470 2.124086 +v 0.369546 -0.877847 2.123348 +v 0.321214 -0.877847 2.150419 +v 0.321607 -0.894470 2.151191 +v 0.370118 -0.860486 2.124281 +v 0.321711 -0.860486 2.151395 +v 0.271235 -0.894470 2.174408 +v 0.270904 -0.877847 2.173608 +v 0.218932 -0.877847 2.192785 +v 0.219199 -0.894470 2.193609 +v 0.271323 -0.860486 2.174620 +v 0.219270 -0.860486 2.193827 +v 0.165815 -0.894470 2.208661 +v 0.165613 -0.877847 2.207819 +v 0.111281 -0.877847 2.218630 +v 0.111417 -0.894470 2.219485 +v 0.165869 -0.860486 2.208884 +v 0.111453 -0.860486 2.219711 +v 0.056336 -0.894470 2.226001 +v 0.056268 -0.877847 2.225137 +v 0.056354 -0.860486 2.226229 +v 0.000915 -0.806815 2.259275 +v -0.056947 -0.806815 2.256998 +v -0.055700 -0.823152 2.241151 +v 0.000915 -0.823152 2.243379 +v 0.000915 -0.794195 2.279568 +v -0.058539 -0.794195 2.277228 +v -0.114453 -0.806815 2.250196 +v -0.117627 -0.794195 2.270238 +v -0.111966 -0.823152 2.234495 +v -0.171245 -0.806815 2.238895 +v -0.167534 -0.823152 2.223439 +v -0.175982 -0.794195 2.258627 +v -0.226979 -0.806815 2.223181 +v -0.233249 -0.794195 2.242480 +v -0.222066 -0.823152 2.208062 +v -0.281305 -0.806815 2.203135 +v -0.275222 -0.823152 2.188449 +v -0.289070 -0.794195 2.221882 +v -0.333894 -0.806815 2.178894 +v -0.343106 -0.794195 2.196975 +v -0.326677 -0.823152 2.164731 +v -0.384415 -0.806815 2.150597 +v -0.376110 -0.823152 2.137043 +v -0.395018 -0.794195 2.167899 +v -0.432565 -0.806815 2.118429 +v -0.444492 -0.794195 2.134845 +v -0.423221 -0.823152 2.105568 +v -0.478038 -0.806815 2.082576 +v -0.467714 -0.823152 2.070489 +v -0.491217 -0.794195 2.098006 +v -0.520563 -0.806815 2.043272 +v -0.534911 -0.794195 2.057621 +v -0.509322 -0.823152 2.032032 +v -0.559867 -0.806815 2.000747 +v -0.547779 -0.823152 1.990424 +v -0.575297 -0.794195 2.013926 +v -0.595719 -0.806815 1.955274 +v -0.612136 -0.794195 1.967202 +v -0.582859 -0.823152 1.945931 +v -0.627888 -0.806815 1.907125 +v -0.614334 -0.823152 1.898819 +v -0.645190 -0.794195 1.917727 +v -0.656185 -0.806815 1.856603 +v -0.674266 -0.794195 1.865816 +v -0.642021 -0.823152 1.849386 +v -0.680425 -0.806815 1.804014 +v -0.665739 -0.823152 1.797931 +v -0.699173 -0.794195 1.811780 +v -0.700471 -0.806815 1.749688 +v -0.719770 -0.794195 1.755959 +v -0.685353 -0.823152 1.744776 +v -0.716186 -0.806815 1.693954 +v -0.700729 -0.823152 1.690244 +v -0.735917 -0.794195 1.698691 +v -0.727486 -0.806815 1.637161 +v -0.747529 -0.794195 1.640336 +v -0.711786 -0.823152 1.634675 +v -0.734289 -0.806815 1.579656 +v -0.718442 -0.823152 1.578409 +v -0.754518 -0.794195 1.581248 +v -0.736566 -0.806815 1.521795 +v -0.756858 -0.794195 1.521794 +v -0.720670 -0.823152 1.521795 +v -0.734289 -0.806815 1.463933 +v -0.718442 -0.823152 1.465180 +v -0.754518 -0.794195 1.462340 +v -0.727486 -0.806815 1.406427 +v -0.747528 -0.794195 1.403252 +v -0.711785 -0.823152 1.408914 +v -0.716185 -0.806815 1.349634 +v -0.700728 -0.823152 1.353344 +v -0.735917 -0.794195 1.344896 +v -0.700470 -0.806815 1.293900 +v -0.719770 -0.794195 1.287629 +v -0.685352 -0.823152 1.298812 +v -0.680425 -0.806815 1.239574 +v -0.665739 -0.823152 1.245657 +v -0.699172 -0.794195 1.231808 +v -0.656185 -0.806815 1.186985 +v -0.674265 -0.794195 1.177772 +v -0.642021 -0.823152 1.194202 +v -0.627887 -0.806815 1.136463 +v -0.614333 -0.823152 1.144769 +v -0.645189 -0.794195 1.125861 +v -0.595719 -0.806815 1.088314 +v -0.612135 -0.794195 1.076386 +v -0.582858 -0.823152 1.097657 +v -0.559866 -0.806815 1.042841 +v -0.547779 -0.823152 1.053165 +v -0.575297 -0.794195 1.029662 +v -0.520562 -0.806815 1.000316 +v -0.534911 -0.794195 0.985968 +v -0.509322 -0.823152 1.011557 +v -0.478037 -0.806815 0.961012 +v -0.467714 -0.823152 0.973100 +v -0.491216 -0.794195 0.945582 +v -0.432564 -0.806815 0.925160 +v -0.444492 -0.794195 0.908743 +v -0.423221 -0.823152 0.938020 +v -0.384415 -0.806815 0.892991 +v -0.376109 -0.823152 0.906545 +v -0.395017 -0.794195 0.875689 +v -0.333894 -0.806815 0.864694 +v -0.343107 -0.794195 0.846613 +v -0.326678 -0.823152 0.878857 +v -0.281305 -0.806815 0.840454 +v -0.275222 -0.823152 0.855140 +v -0.289071 -0.794195 0.821706 +v -0.226979 -0.806815 0.820408 +v -0.233250 -0.794195 0.801109 +v -0.222067 -0.823152 0.835527 +v -0.171245 -0.806815 0.804694 +v -0.167535 -0.823152 0.820150 +v -0.175982 -0.794195 0.784962 +v -0.114452 -0.806815 0.793393 +v -0.117627 -0.794195 0.773351 +v -0.111965 -0.823152 0.809094 +v -0.056946 -0.806815 0.786590 +v -0.055699 -0.823152 0.802438 +v -0.058538 -0.794195 0.766361 +v 0.000915 -0.806815 0.784314 +v 0.000915 -0.794195 0.764021 +v 0.000915 -0.823152 0.800210 +v 0.058777 -0.806815 0.786590 +v 0.057530 -0.823152 0.802438 +v 0.060369 -0.794195 0.766361 +v 0.116283 -0.806815 0.793393 +v 0.119457 -0.794195 0.773351 +v 0.113796 -0.823152 0.809094 +v 0.173076 -0.806815 0.804694 +v 0.169365 -0.823153 0.820151 +v 0.177813 -0.794195 0.784962 +v 0.228810 -0.806815 0.820409 +v 0.235080 -0.794196 0.801110 +v 0.223898 -0.823153 0.835527 +v 0.283136 -0.806815 0.840454 +v 0.277053 -0.823153 0.855141 +v 0.290902 -0.794195 0.821707 +v 0.335725 -0.806815 0.864695 +v 0.344938 -0.794196 0.846614 +v 0.328508 -0.823153 0.878858 +v 0.386247 -0.806815 0.892992 +v 0.377941 -0.823152 0.906546 +v 0.396849 -0.794195 0.875690 +v 0.434396 -0.806815 0.925160 +v 0.446324 -0.794196 0.908744 +v 0.425053 -0.823152 0.938021 +v 0.479869 -0.806815 0.961013 +v 0.469545 -0.823153 0.973100 +v 0.493048 -0.794195 0.945582 +v 0.522394 -0.806815 1.000317 +v 0.536742 -0.794196 0.985969 +v 0.511153 -0.823152 1.011558 +v 0.561698 -0.806815 1.042842 +v 0.549611 -0.823153 1.053166 +v 0.577128 -0.794195 1.029663 +v 0.597550 -0.806815 1.088315 +v 0.613967 -0.794196 1.076387 +v 0.584690 -0.823153 1.097658 +v 0.629719 -0.806815 1.136464 +v 0.616165 -0.823153 1.144770 +v 0.647020 -0.794196 1.125862 +v 0.658016 -0.806815 1.186986 +v 0.676095 -0.794196 1.177774 +v 0.643852 -0.823153 1.194203 +v 0.682256 -0.806815 1.239575 +v 0.667570 -0.823153 1.245658 +v 0.701003 -0.794196 1.231810 +v 0.702302 -0.806815 1.293902 +v 0.721601 -0.794196 1.287631 +v 0.687183 -0.823153 1.298814 +v 0.718016 -0.806815 1.349635 +v 0.702559 -0.823153 1.353346 +v 0.737748 -0.794196 1.344898 +v 0.729317 -0.806815 1.406428 +v 0.749358 -0.794196 1.403254 +v 0.713616 -0.823153 1.408915 +v 0.736119 -0.806815 1.463933 +v 0.720272 -0.823153 1.465181 +v 0.756349 -0.794196 1.462341 +v 0.738396 -0.806815 1.521796 +v 0.758689 -0.794196 1.521796 +v 0.722500 -0.823153 1.521796 +v 0.736119 -0.806815 1.579657 +v 0.720272 -0.823153 1.578410 +v 0.756349 -0.794196 1.581249 +v 0.729316 -0.806815 1.637163 +v 0.749358 -0.794196 1.640337 +v 0.713616 -0.823153 1.634676 +v 0.718016 -0.806815 1.693956 +v 0.702559 -0.823153 1.690245 +v 0.737747 -0.794196 1.698693 +v 0.702301 -0.806815 1.749689 +v 0.721600 -0.794196 1.755960 +v 0.687183 -0.823153 1.744777 +v 0.682255 -0.806815 1.804015 +v 0.667569 -0.823153 1.797932 +v 0.701002 -0.794196 1.811781 +v 0.658015 -0.806815 1.856604 +v 0.676095 -0.794196 1.865817 +v 0.643851 -0.823153 1.849388 +v 0.629717 -0.806815 1.907126 +v 0.616164 -0.823153 1.898820 +v 0.647019 -0.794196 1.917729 +v 0.597549 -0.806815 1.955276 +v 0.613966 -0.794196 1.967203 +v 0.584689 -0.823153 1.945932 +v 0.561697 -0.806815 2.000749 +v 0.549609 -0.823153 1.990425 +v 0.577127 -0.794195 2.013927 +v 0.522392 -0.806815 2.043273 +v 0.536741 -0.794196 2.057622 +v 0.511152 -0.823153 2.032033 +v 0.479868 -0.806815 2.082577 +v 0.469544 -0.823153 2.070490 +v 0.493046 -0.794195 2.098008 +v 0.434394 -0.806815 2.118430 +v 0.446322 -0.794196 2.134846 +v 0.425051 -0.823153 2.105569 +v 0.386245 -0.806815 2.150598 +v 0.377939 -0.823152 2.137044 +v 0.396847 -0.794195 2.167900 +v 0.335723 -0.806815 2.178895 +v 0.344935 -0.794195 2.196976 +v 0.328506 -0.823152 2.164732 +v 0.283134 -0.806815 2.203135 +v 0.277051 -0.823152 2.188449 +v 0.290899 -0.794195 2.221883 +v 0.228808 -0.806815 2.223181 +v 0.235078 -0.794196 2.242480 +v 0.223895 -0.823152 2.208063 +v 0.173074 -0.806815 2.238896 +v 0.169363 -0.823152 2.223439 +v 0.177811 -0.794195 2.258627 +v 0.116281 -0.806815 2.250196 +v 0.119455 -0.794195 2.270238 +v 0.113794 -0.823152 2.234496 +v 0.058776 -0.806815 2.256999 +v 0.057529 -0.823152 2.241151 +v 0.060368 -0.794195 2.277228 +v 0.000915 -0.786853 2.302706 +v -0.060355 -0.786853 2.300295 +v 0.000915 -0.782149 2.327269 +v -0.062282 -0.782149 2.324782 +v -0.121247 -0.786853 2.293092 +v -0.125088 -0.782149 2.317352 +v -0.181384 -0.786853 2.281126 +v -0.187118 -0.782149 2.305010 +v -0.240399 -0.786853 2.264486 +v -0.247990 -0.782149 2.287846 +v -0.297925 -0.786853 2.243260 +v -0.307325 -0.782149 2.265952 +v -0.353611 -0.786853 2.217592 +v -0.364762 -0.782149 2.239477 +v -0.407108 -0.786853 2.187628 +v -0.419942 -0.782149 2.208571 +v -0.458093 -0.786853 2.153565 +v -0.472531 -0.782149 2.173437 +v -0.506244 -0.786853 2.115601 +v -0.522196 -0.782149 2.134279 +v -0.551273 -0.786853 2.073982 +v -0.568641 -0.782149 2.091350 +v -0.592892 -0.786853 2.028953 +v -0.611569 -0.782149 2.044905 +v -0.630856 -0.786853 1.980803 +v -0.650727 -0.782149 1.995240 +v -0.664919 -0.786853 1.929817 +v -0.685861 -0.782149 1.942651 +v -0.694883 -0.786853 1.876320 +v -0.716768 -0.782149 1.887471 +v -0.720550 -0.786853 1.820634 +v -0.743243 -0.782149 1.830034 +v -0.741777 -0.786853 1.763109 +v -0.765137 -0.782149 1.770699 +v -0.758417 -0.786853 1.704093 +v -0.782300 -0.782149 1.709827 +v -0.770383 -0.786853 1.643956 +v -0.794643 -0.782149 1.647798 +v -0.777586 -0.786853 1.583064 +v -0.802072 -0.782149 1.584991 +v -0.779997 -0.786853 1.521794 +v -0.804559 -0.782149 1.521794 +v -0.777586 -0.786853 1.460525 +v -0.802072 -0.782149 1.458598 +v -0.770382 -0.786853 1.399633 +v -0.794642 -0.782149 1.395790 +v -0.758416 -0.786853 1.339495 +v -0.782300 -0.782149 1.333761 +v -0.741776 -0.786853 1.280479 +v -0.765136 -0.782149 1.272889 +v -0.720550 -0.786853 1.222953 +v -0.743242 -0.782149 1.213554 +v -0.694882 -0.786853 1.167267 +v -0.716767 -0.782149 1.156116 +v -0.664918 -0.786853 1.113771 +v -0.685861 -0.782149 1.100937 +v -0.630855 -0.786853 1.062786 +v -0.650727 -0.782149 1.048348 +v -0.592891 -0.786853 1.014635 +v -0.611569 -0.782149 0.998683 +v -0.551272 -0.786853 0.969606 +v -0.568641 -0.782149 0.952238 +v -0.506243 -0.786853 0.927987 +v -0.522195 -0.782149 0.909309 +v -0.458093 -0.786853 0.890023 +v -0.472530 -0.782149 0.870152 +v -0.407108 -0.786853 0.855960 +v -0.419941 -0.782149 0.835018 +v -0.353611 -0.786853 0.825996 +v -0.364763 -0.782149 0.804111 +v -0.297926 -0.786853 0.800329 +v -0.307325 -0.782149 0.777636 +v -0.240400 -0.786853 0.779103 +v -0.247990 -0.782149 0.755743 +v -0.181384 -0.786853 0.762463 +v -0.187118 -0.782149 0.738579 +v -0.121246 -0.786853 0.750497 +v -0.125089 -0.782149 0.726237 +v -0.060354 -0.786853 0.743293 +v -0.062281 -0.782149 0.718807 +v 0.000915 -0.786853 0.740882 +v 0.000915 -0.782149 0.716320 +v 0.062185 -0.786853 0.743293 +v 0.064112 -0.782149 0.718807 +v 0.123077 -0.786853 0.750497 +v 0.126920 -0.782149 0.726237 +v 0.183215 -0.786853 0.762463 +v 0.188949 -0.782149 0.738579 +v 0.242231 -0.786853 0.779103 +v 0.249821 -0.782149 0.755743 +v 0.299756 -0.786853 0.800330 +v 0.309156 -0.782149 0.777637 +v 0.355442 -0.786853 0.825997 +v 0.366594 -0.782149 0.804112 +v 0.408939 -0.786853 0.855961 +v 0.421773 -0.782149 0.835018 +v 0.459924 -0.786853 0.890024 +v 0.474362 -0.782149 0.870152 +v 0.508075 -0.786853 0.927988 +v 0.524027 -0.782149 0.909310 +v 0.553104 -0.786853 0.969607 +v 0.570472 -0.782149 0.952239 +v 0.594723 -0.786853 1.014636 +v 0.613401 -0.782149 0.998684 +v 0.632687 -0.786853 1.062787 +v 0.652558 -0.782149 1.048349 +v 0.666750 -0.786853 1.113772 +v 0.687692 -0.782149 1.100938 +v 0.696713 -0.786853 1.167269 +v 0.718598 -0.782149 1.156118 +v 0.722380 -0.786853 1.222955 +v 0.745072 -0.782149 1.213555 +v 0.743607 -0.786853 1.280481 +v 0.766966 -0.782149 1.272890 +v 0.760246 -0.786853 1.339496 +v 0.784131 -0.782149 1.333762 +v 0.772213 -0.786853 1.399634 +v 0.796472 -0.782149 1.395792 +v 0.779417 -0.786853 1.460526 +v 0.803902 -0.782149 1.458598 +v 0.781826 -0.786853 1.521796 +v 0.806389 -0.782150 1.521796 +v 0.779415 -0.786853 1.583064 +v 0.803902 -0.782150 1.584992 +v 0.772213 -0.786853 1.643957 +v 0.796473 -0.782149 1.647799 +v 0.760247 -0.786853 1.704095 +v 0.784130 -0.782149 1.709829 +v 0.743606 -0.786853 1.763110 +v 0.766967 -0.782149 1.770701 +v 0.722380 -0.786853 1.820636 +v 0.745073 -0.782150 1.830036 +v 0.696712 -0.786853 1.876322 +v 0.718597 -0.782150 1.887473 +v 0.666748 -0.786853 1.929819 +v 0.687691 -0.782149 1.942652 +v 0.632686 -0.786853 1.980804 +v 0.652557 -0.782149 1.995241 +v 0.594722 -0.786853 2.028955 +v 0.613399 -0.782149 2.044907 +v 0.553103 -0.786853 2.073984 +v 0.570471 -0.782149 2.091352 +v 0.508074 -0.786853 2.115603 +v 0.524025 -0.782149 2.134280 +v 0.459923 -0.786853 2.153566 +v 0.474360 -0.782149 2.173438 +v 0.408937 -0.786853 2.187629 +v 0.421771 -0.782149 2.208572 +v 0.355440 -0.786853 2.217593 +v 0.366591 -0.782149 2.239478 +v 0.299754 -0.786853 2.243260 +v 0.309154 -0.782149 2.265953 +v 0.242228 -0.786853 2.264487 +v 0.249819 -0.782149 2.287847 +v 0.183213 -0.786853 2.281127 +v 0.188947 -0.782149 2.305010 +v 0.123075 -0.786853 2.293092 +v 0.126917 -0.782149 2.317352 +v 0.062183 -0.786853 2.300296 +v 0.064111 -0.782149 2.324782 +v 0.000915 -0.841649 2.233428 +v -0.054919 -0.841649 2.231231 +v -0.110409 -0.841649 2.224667 +v -0.165211 -0.841649 2.213762 +v -0.218991 -0.841649 2.198598 +v -0.271413 -0.841649 2.179255 +v -0.322159 -0.841649 2.155864 +v -0.370910 -0.841649 2.128559 +v -0.417372 -0.841649 2.097518 +v -0.461251 -0.841649 2.062922 +v -0.502286 -0.841648 2.024995 +v -0.540213 -0.841648 1.983961 +v -0.574808 -0.841648 1.940082 +v -0.605849 -0.841648 1.893620 +v -0.633155 -0.841648 1.844869 +v -0.656545 -0.841648 1.794123 +v -0.675889 -0.841648 1.741701 +v -0.691053 -0.841648 1.687922 +v -0.701957 -0.841648 1.633119 +v -0.708521 -0.841648 1.577628 +v -0.710718 -0.841648 1.521795 +v -0.708521 -0.841648 1.465961 +v -0.701957 -0.841648 1.410470 +v -0.691052 -0.841648 1.355667 +v -0.675888 -0.841648 1.301887 +v -0.656545 -0.841648 1.249465 +v -0.633155 -0.841648 1.198719 +v -0.605849 -0.841649 1.149968 +v -0.574808 -0.841649 1.103506 +v -0.540212 -0.841649 1.059627 +v -0.502285 -0.841649 1.018593 +v -0.461251 -0.841649 0.980666 +v -0.417372 -0.841649 0.946071 +v -0.370910 -0.841649 0.915030 +v -0.322160 -0.841649 0.887724 +v -0.271414 -0.841649 0.864334 +v -0.218992 -0.841649 0.844991 +v -0.165212 -0.841649 0.829827 +v -0.110409 -0.841649 0.818922 +v -0.054919 -0.841649 0.812358 +v 0.000915 -0.841649 0.810161 +v 0.056749 -0.841649 0.812358 +v 0.112240 -0.841649 0.818922 +v 0.167042 -0.841649 0.829827 +v 0.220822 -0.841649 0.844991 +v 0.273245 -0.841649 0.864334 +v 0.323991 -0.841649 0.887725 +v 0.372742 -0.841649 0.915030 +v 0.419204 -0.841649 0.946071 +v 0.463083 -0.841649 0.980667 +v 0.504117 -0.841649 1.018594 +v 0.542044 -0.841649 1.059628 +v 0.576639 -0.841649 1.103508 +v 0.607680 -0.841649 1.149970 +v 0.634986 -0.841649 1.198721 +v 0.658376 -0.841649 1.249467 +v 0.677719 -0.841649 1.301889 +v 0.692883 -0.841649 1.355669 +v 0.703788 -0.841649 1.410472 +v 0.710352 -0.841649 1.465961 +v 0.712549 -0.841649 1.521796 +v 0.710352 -0.841649 1.577629 +v 0.703787 -0.841649 1.633119 +v 0.692883 -0.841649 1.687922 +v 0.677719 -0.841649 1.741702 +v 0.658375 -0.841649 1.794124 +v 0.634985 -0.841649 1.844870 +v 0.607679 -0.841649 1.893621 +v 0.576638 -0.841649 1.940083 +v 0.542042 -0.841649 1.983962 +v 0.504115 -0.841649 2.024996 +v 0.463081 -0.841649 2.062923 +v 0.419202 -0.841649 2.097519 +v 0.372740 -0.841649 2.128560 +v 0.323989 -0.841649 2.155865 +v 0.273243 -0.841649 2.179256 +v 0.220820 -0.841649 2.198599 +v 0.167040 -0.841649 2.213763 +v 0.112238 -0.841649 2.224667 +v 0.056748 -0.841649 2.231231 +v -0.054508 0.894470 2.226001 +v -0.109589 0.894470 2.219485 +v -0.109453 0.877847 2.218630 +v -0.054440 0.877847 2.225137 +v 0.000915 0.894470 2.228182 +v 0.000915 0.877847 2.227316 +v -0.054525 0.860486 2.226229 +v 0.000915 0.860486 2.228411 +v -0.109624 0.860486 2.219711 +v -0.163986 0.894470 2.208661 +v -0.217370 0.894470 2.193609 +v -0.217102 0.877847 2.192785 +v -0.163784 0.877847 2.207819 +v -0.164040 0.860486 2.208884 +v -0.217441 0.860486 2.193827 +v -0.269406 0.894470 2.174408 +v -0.319778 0.894470 2.151190 +v -0.319384 0.877847 2.150418 +v -0.269074 0.877847 2.173608 +v -0.269493 0.860486 2.174620 +v -0.319881 0.860486 2.151394 +v -0.368169 0.894470 2.124086 +v -0.414289 0.894470 2.093273 +v -0.413780 0.877847 2.092573 +v -0.367716 0.877847 2.123347 +v -0.368289 0.860486 2.124281 +v -0.414423 0.860486 2.093459 +v -0.457844 0.894470 2.058933 +v -0.498576 0.894470 2.021285 +v -0.497963 0.877847 2.020673 +v -0.457282 0.877847 2.058274 +v -0.457993 0.860486 2.059107 +v -0.498738 0.860486 2.021447 +v -0.536223 0.894470 1.980554 +v -0.570564 0.894470 1.936998 +v -0.569863 0.877847 1.936489 +v -0.535565 0.877847 1.979991 +v -0.536397 0.860486 1.980702 +v -0.570749 0.860486 1.937133 +v -0.601376 0.894470 1.890878 +v -0.628480 0.894470 1.842487 +v -0.627709 0.877847 1.842094 +v -0.600638 0.877847 1.890426 +v -0.601571 0.860486 1.890998 +v -0.628684 0.860486 1.842591 +v -0.651698 0.894470 1.792115 +v -0.670899 0.894470 1.740080 +v -0.670075 0.877847 1.739812 +v -0.650898 0.877847 1.791784 +v -0.651910 0.860486 1.792203 +v -0.671117 0.860486 1.740150 +v -0.685951 0.894470 1.686697 +v -0.696775 0.894470 1.632298 +v -0.695920 0.877847 1.632161 +v -0.685109 0.877847 1.686494 +v -0.686174 0.860486 1.686749 +v -0.697001 0.860486 1.632334 +v -0.703291 0.894470 1.577217 +v -0.705472 0.894470 1.521794 +v -0.704606 0.877847 1.521795 +v -0.702428 0.877847 1.577149 +v -0.703519 0.860486 1.577235 +v -0.705701 0.860486 1.521795 +v -0.703291 0.894470 1.466372 +v -0.696775 0.894470 1.411291 +v -0.695920 0.877847 1.411426 +v -0.702428 0.877847 1.466440 +v -0.703519 0.860486 1.466354 +v -0.697001 0.860486 1.411255 +v -0.685951 0.894470 1.356892 +v -0.670899 0.894470 1.303509 +v -0.670075 0.877847 1.303776 +v -0.685109 0.877847 1.357094 +v -0.686174 0.860486 1.356839 +v -0.671117 0.860486 1.303438 +v -0.651698 0.894470 1.251473 +v -0.628480 0.894470 1.201101 +v -0.627708 0.877847 1.201494 +v -0.650898 0.877847 1.251804 +v -0.651910 0.860486 1.251385 +v -0.628684 0.860486 1.200997 +v -0.601375 0.894470 1.152710 +v -0.570563 0.894470 1.106590 +v -0.569863 0.877847 1.107099 +v -0.600637 0.877847 1.153162 +v -0.601571 0.860486 1.152590 +v -0.570749 0.860486 1.106456 +v -0.536223 0.894470 1.063035 +v -0.498575 0.894470 1.022303 +v -0.497963 0.877847 1.022915 +v -0.535564 0.877847 1.063597 +v -0.536397 0.860486 1.062886 +v -0.498737 0.860486 1.022141 +v -0.457844 0.894470 0.984656 +v -0.414288 0.894470 0.950315 +v -0.413779 0.877847 0.951016 +v -0.457281 0.877847 0.985314 +v -0.457992 0.860486 0.984482 +v -0.414423 0.860486 0.950130 +v -0.368168 0.894470 0.919503 +v -0.319778 0.894470 0.892399 +v -0.319385 0.877847 0.893170 +v -0.367717 0.877847 0.920241 +v -0.368288 0.860486 0.919308 +v -0.319882 0.860486 0.892195 +v -0.269406 0.894470 0.869181 +v -0.217370 0.894470 0.849980 +v -0.217103 0.877847 0.850804 +v -0.269075 0.877847 0.869981 +v -0.269494 0.860486 0.868969 +v -0.217441 0.860486 0.849762 +v -0.163987 0.894470 0.834928 +v -0.109588 0.894470 0.824104 +v -0.109453 0.877847 0.824959 +v -0.163785 0.877847 0.835770 +v -0.164040 0.860486 0.834705 +v -0.109624 0.860486 0.823878 +v -0.054507 0.894470 0.817588 +v 0.000916 0.894470 0.815407 +v 0.000915 0.877847 0.816273 +v -0.054439 0.877847 0.818452 +v -0.054525 0.860486 0.817360 +v 0.000915 0.860486 0.815178 +v 0.056338 0.894470 0.817588 +v 0.111419 0.894470 0.824104 +v 0.111283 0.877847 0.824960 +v 0.056270 0.877847 0.818452 +v 0.056356 0.860486 0.817360 +v 0.111455 0.860486 0.823878 +v 0.165818 0.894470 0.834928 +v 0.219201 0.894470 0.849981 +v 0.218934 0.877848 0.850804 +v 0.165615 0.877848 0.835771 +v 0.165871 0.860486 0.834706 +v 0.219272 0.860486 0.849763 +v 0.271237 0.894470 0.869181 +v 0.321609 0.894470 0.892399 +v 0.321216 0.877847 0.893171 +v 0.270906 0.877847 0.869981 +v 0.271325 0.860486 0.868970 +v 0.321713 0.860486 0.892195 +v 0.370000 0.894470 0.919504 +v 0.416120 0.894470 0.950316 +v 0.415611 0.877847 0.951016 +v 0.369548 0.877847 0.920242 +v 0.370120 0.860486 0.919308 +v 0.416254 0.860486 0.950130 +v 0.459675 0.894470 0.984657 +v 0.500407 0.894470 1.022304 +v 0.499795 0.877847 1.022916 +v 0.459113 0.877847 0.985315 +v 0.459824 0.860486 0.984482 +v 0.500569 0.860486 1.022142 +v 0.538054 0.894470 1.063036 +v 0.572395 0.894470 1.106591 +v 0.571694 0.877848 1.107100 +v 0.537396 0.877847 1.063598 +v 0.538228 0.860486 1.062887 +v 0.572580 0.860486 1.106457 +v 0.603207 0.894471 1.152711 +v 0.630311 0.894471 1.201103 +v 0.629540 0.877848 1.201496 +v 0.602468 0.877848 1.153163 +v 0.603402 0.860486 1.152591 +v 0.630515 0.860487 1.200999 +v 0.653529 0.894471 1.251474 +v 0.672730 0.894471 1.303510 +v 0.671906 0.877848 1.303778 +v 0.652729 0.877848 1.251806 +v 0.653741 0.860486 1.251387 +v 0.672947 0.860487 1.303439 +v 0.687782 0.894471 1.356894 +v 0.698606 0.894471 1.411292 +v 0.697750 0.877848 1.411427 +v 0.686940 0.877848 1.357096 +v 0.688004 0.860486 1.356840 +v 0.698832 0.860487 1.411256 +v 0.705122 0.894471 1.466373 +v 0.707302 0.894471 1.521796 +v 0.706436 0.877848 1.521796 +v 0.704258 0.877848 1.466442 +v 0.705350 0.860486 1.466355 +v 0.707532 0.860487 1.521796 +v 0.705121 0.894471 1.577217 +v 0.698605 0.894471 1.632298 +v 0.697750 0.877848 1.632163 +v 0.704258 0.877848 1.577149 +v 0.705350 0.860487 1.577235 +v 0.698832 0.860487 1.632334 +v 0.687781 0.894471 1.686697 +v 0.672729 0.894471 1.740081 +v 0.671905 0.877848 1.739813 +v 0.686939 0.877848 1.686495 +v 0.688004 0.860487 1.686751 +v 0.672947 0.860487 1.740152 +v 0.653528 0.894471 1.792117 +v 0.630310 0.894471 1.842488 +v 0.629538 0.877848 1.842095 +v 0.652728 0.877848 1.791785 +v 0.653740 0.860486 1.792204 +v 0.630514 0.860487 1.842592 +v 0.603206 0.894471 1.890880 +v 0.572394 0.894470 1.936999 +v 0.571693 0.877847 1.936490 +v 0.602467 0.877848 1.890427 +v 0.603401 0.860486 1.890999 +v 0.572579 0.860486 1.937134 +v 0.538053 0.894470 1.980555 +v 0.500405 0.894470 2.021286 +v 0.499793 0.877847 2.020674 +v 0.537394 0.877847 1.979992 +v 0.538227 0.860486 1.980704 +v 0.500567 0.860486 2.021448 +v 0.459674 0.894470 2.058934 +v 0.416118 0.894470 2.093274 +v 0.415609 0.877847 2.092574 +v 0.459111 0.877847 2.058275 +v 0.459823 0.860486 2.059108 +v 0.416253 0.860486 2.093460 +v 0.369998 0.894470 2.124086 +v 0.321607 0.894470 2.151191 +v 0.321214 0.877847 2.150419 +v 0.369546 0.877847 2.123348 +v 0.370118 0.860486 2.124281 +v 0.321711 0.860486 2.151395 +v 0.271235 0.894470 2.174408 +v 0.219199 0.894470 2.193609 +v 0.218932 0.877847 2.192785 +v 0.270904 0.877847 2.173608 +v 0.271323 0.860486 2.174620 +v 0.219270 0.860486 2.193827 +v 0.165815 0.894470 2.208661 +v 0.111417 0.894470 2.219485 +v 0.111281 0.877847 2.218630 +v 0.165613 0.877847 2.207819 +v 0.165869 0.860486 2.208884 +v 0.111453 0.860486 2.219711 +v 0.056336 0.894470 2.226001 +v 0.056268 0.877847 2.225137 +v 0.056354 0.860486 2.226229 +v 0.000915 0.806815 2.259275 +v 0.000915 0.823152 2.243379 +v -0.055700 0.823152 2.241151 +v -0.056947 0.806815 2.256998 +v 0.000915 0.794195 2.279568 +v -0.058539 0.794195 2.277228 +v -0.114453 0.806815 2.250196 +v -0.117627 0.794195 2.270238 +v -0.111966 0.823152 2.234495 +v -0.167534 0.823152 2.223439 +v -0.171245 0.806815 2.238895 +v -0.175982 0.794195 2.258627 +v -0.226979 0.806815 2.223181 +v -0.233249 0.794195 2.242480 +v -0.222066 0.823152 2.208062 +v -0.275222 0.823152 2.188449 +v -0.281305 0.806815 2.203135 +v -0.289070 0.794195 2.221882 +v -0.333894 0.806815 2.178894 +v -0.343106 0.794195 2.196975 +v -0.326677 0.823152 2.164731 +v -0.376110 0.823152 2.137043 +v -0.384415 0.806815 2.150597 +v -0.395018 0.794195 2.167899 +v -0.432565 0.806815 2.118429 +v -0.444492 0.794195 2.134845 +v -0.423221 0.823152 2.105568 +v -0.467714 0.823152 2.070489 +v -0.478038 0.806815 2.082576 +v -0.491217 0.794195 2.098006 +v -0.520563 0.806815 2.043272 +v -0.534911 0.794195 2.057621 +v -0.509322 0.823152 2.032032 +v -0.547779 0.823152 1.990424 +v -0.559867 0.806815 2.000747 +v -0.575297 0.794195 2.013926 +v -0.595719 0.806815 1.955274 +v -0.612136 0.794195 1.967202 +v -0.582859 0.823152 1.945931 +v -0.614334 0.823152 1.898819 +v -0.627888 0.806815 1.907125 +v -0.645190 0.794195 1.917727 +v -0.656185 0.806815 1.856603 +v -0.674266 0.794195 1.865816 +v -0.642021 0.823152 1.849386 +v -0.665739 0.823152 1.797931 +v -0.680425 0.806815 1.804014 +v -0.699173 0.794195 1.811780 +v -0.700471 0.806815 1.749688 +v -0.719770 0.794195 1.755959 +v -0.685353 0.823152 1.744776 +v -0.700729 0.823152 1.690244 +v -0.716186 0.806815 1.693954 +v -0.735917 0.794195 1.698691 +v -0.727486 0.806815 1.637161 +v -0.747529 0.794195 1.640336 +v -0.711786 0.823152 1.634675 +v -0.718442 0.823152 1.578409 +v -0.734289 0.806815 1.579656 +v -0.754518 0.794195 1.581248 +v -0.736566 0.806815 1.521795 +v -0.756858 0.794195 1.521794 +v -0.720670 0.823152 1.521795 +v -0.718442 0.823152 1.465180 +v -0.734289 0.806815 1.463933 +v -0.754518 0.794195 1.462340 +v -0.727486 0.806815 1.406427 +v -0.747528 0.794195 1.403252 +v -0.711785 0.823152 1.408914 +v -0.700728 0.823152 1.353344 +v -0.716185 0.806815 1.349634 +v -0.735917 0.794195 1.344896 +v -0.700470 0.806815 1.293900 +v -0.719770 0.794195 1.287629 +v -0.685352 0.823152 1.298812 +v -0.665739 0.823152 1.245657 +v -0.680425 0.806815 1.239574 +v -0.699172 0.794195 1.231808 +v -0.656185 0.806815 1.186985 +v -0.674265 0.794195 1.177772 +v -0.642021 0.823152 1.194202 +v -0.614333 0.823152 1.144769 +v -0.627887 0.806815 1.136463 +v -0.645189 0.794195 1.125861 +v -0.595719 0.806815 1.088314 +v -0.612135 0.794195 1.076386 +v -0.582858 0.823152 1.097657 +v -0.547779 0.823152 1.053165 +v -0.559866 0.806815 1.042841 +v -0.575297 0.794195 1.029662 +v -0.520562 0.806815 1.000316 +v -0.534911 0.794195 0.985968 +v -0.509322 0.823152 1.011557 +v -0.467714 0.823152 0.973100 +v -0.478037 0.806815 0.961012 +v -0.491216 0.794195 0.945582 +v -0.432564 0.806815 0.925160 +v -0.444492 0.794195 0.908743 +v -0.423221 0.823152 0.938020 +v -0.376109 0.823152 0.906545 +v -0.384415 0.806815 0.892991 +v -0.395017 0.794195 0.875689 +v -0.333894 0.806815 0.864694 +v -0.343107 0.794195 0.846613 +v -0.326678 0.823152 0.878857 +v -0.275222 0.823152 0.855140 +v -0.281305 0.806815 0.840454 +v -0.289071 0.794195 0.821706 +v -0.226979 0.806815 0.820408 +v -0.233250 0.794195 0.801109 +v -0.222067 0.823152 0.835527 +v -0.167535 0.823152 0.820150 +v -0.171245 0.806815 0.804694 +v -0.175982 0.794195 0.784962 +v -0.114452 0.806815 0.793393 +v -0.117627 0.794195 0.773351 +v -0.111965 0.823152 0.809094 +v -0.055699 0.823152 0.802438 +v -0.056946 0.806815 0.786590 +v -0.058538 0.794195 0.766361 +v 0.000915 0.806815 0.784314 +v 0.000915 0.794195 0.764021 +v 0.000915 0.823152 0.800210 +v 0.057530 0.823152 0.802438 +v 0.058777 0.806815 0.786590 +v 0.060369 0.794195 0.766361 +v 0.116283 0.806815 0.793393 +v 0.119457 0.794195 0.773351 +v 0.113796 0.823152 0.809094 +v 0.169365 0.823153 0.820151 +v 0.173076 0.806815 0.804694 +v 0.177813 0.794195 0.784962 +v 0.228810 0.806815 0.820409 +v 0.235080 0.794196 0.801110 +v 0.223898 0.823153 0.835527 +v 0.277053 0.823153 0.855141 +v 0.283136 0.806815 0.840454 +v 0.290902 0.794195 0.821707 +v 0.335725 0.806815 0.864695 +v 0.344938 0.794196 0.846614 +v 0.328508 0.823153 0.878858 +v 0.377941 0.823152 0.906546 +v 0.386247 0.806815 0.892992 +v 0.396849 0.794195 0.875690 +v 0.434396 0.806815 0.925160 +v 0.446324 0.794196 0.908744 +v 0.425053 0.823152 0.938021 +v 0.469545 0.823153 0.973100 +v 0.479869 0.806815 0.961013 +v 0.493048 0.794195 0.945582 +v 0.522394 0.806815 1.000317 +v 0.536742 0.794196 0.985969 +v 0.511153 0.823152 1.011558 +v 0.549611 0.823153 1.053166 +v 0.561698 0.806815 1.042842 +v 0.577128 0.794195 1.029663 +v 0.597550 0.806815 1.088315 +v 0.613967 0.794196 1.076387 +v 0.584690 0.823153 1.097658 +v 0.616165 0.823153 1.144770 +v 0.629719 0.806815 1.136464 +v 0.647020 0.794196 1.125862 +v 0.658016 0.806815 1.186986 +v 0.676095 0.794196 1.177774 +v 0.643852 0.823153 1.194203 +v 0.667570 0.823153 1.245658 +v 0.682256 0.806815 1.239575 +v 0.701003 0.794196 1.231810 +v 0.702302 0.806815 1.293902 +v 0.721601 0.794196 1.287631 +v 0.687183 0.823153 1.298814 +v 0.702559 0.823153 1.353346 +v 0.718016 0.806815 1.349635 +v 0.737748 0.794196 1.344898 +v 0.729317 0.806815 1.406428 +v 0.749358 0.794196 1.403254 +v 0.713616 0.823153 1.408915 +v 0.720272 0.823153 1.465181 +v 0.736119 0.806815 1.463933 +v 0.756349 0.794196 1.462341 +v 0.738396 0.806815 1.521796 +v 0.758689 0.794196 1.521796 +v 0.722500 0.823153 1.521796 +v 0.720272 0.823153 1.578410 +v 0.736119 0.806815 1.579657 +v 0.756349 0.794196 1.581249 +v 0.729316 0.806815 1.637163 +v 0.749358 0.794196 1.640337 +v 0.713616 0.823153 1.634676 +v 0.702559 0.823153 1.690245 +v 0.718016 0.806815 1.693956 +v 0.737747 0.794196 1.698693 +v 0.702301 0.806815 1.749689 +v 0.721600 0.794196 1.755960 +v 0.687183 0.823153 1.744777 +v 0.667569 0.823153 1.797932 +v 0.682255 0.806815 1.804015 +v 0.701002 0.794196 1.811781 +v 0.658015 0.806815 1.856604 +v 0.676095 0.794196 1.865817 +v 0.643851 0.823153 1.849388 +v 0.616164 0.823153 1.898820 +v 0.629717 0.806815 1.907126 +v 0.647019 0.794196 1.917729 +v 0.597549 0.806815 1.955276 +v 0.613966 0.794196 1.967203 +v 0.584689 0.823153 1.945932 +v 0.549609 0.823153 1.990425 +v 0.561697 0.806815 2.000749 +v 0.577127 0.794195 2.013927 +v 0.522392 0.806815 2.043273 +v 0.536741 0.794196 2.057622 +v 0.511152 0.823153 2.032033 +v 0.469544 0.823153 2.070490 +v 0.479868 0.806815 2.082577 +v 0.493046 0.794195 2.098008 +v 0.434394 0.806815 2.118430 +v 0.446322 0.794196 2.134846 +v 0.425051 0.823153 2.105569 +v 0.377939 0.823152 2.137044 +v 0.386245 0.806815 2.150598 +v 0.396847 0.794195 2.167900 +v 0.335723 0.806815 2.178895 +v 0.344935 0.794195 2.196976 +v 0.328506 0.823152 2.164732 +v 0.277051 0.823152 2.188449 +v 0.283134 0.806815 2.203135 +v 0.290899 0.794195 2.221883 +v 0.228808 0.806815 2.223181 +v 0.235078 0.794196 2.242480 +v 0.223895 0.823152 2.208063 +v 0.169363 0.823152 2.223439 +v 0.173074 0.806815 2.238896 +v 0.177811 0.794195 2.258627 +v 0.116281 0.806815 2.250196 +v 0.119455 0.794195 2.270238 +v 0.113794 0.823152 2.234496 +v 0.057529 0.823152 2.241151 +v 0.058776 0.806815 2.256999 +v 0.060368 0.794195 2.277228 +v 0.000915 0.786853 2.302706 +v -0.060355 0.786853 2.300295 +v 0.000915 0.782149 2.327269 +v -0.062282 0.782149 2.324782 +v -0.121247 0.786853 2.293092 +v -0.125088 0.782149 2.317352 +v -0.181384 0.786853 2.281126 +v -0.187118 0.782149 2.305010 +v -0.240399 0.786853 2.264486 +v -0.247990 0.782149 2.287846 +v -0.297925 0.786853 2.243260 +v -0.307325 0.782149 2.265952 +v -0.353611 0.786853 2.217592 +v -0.364762 0.782149 2.239477 +v -0.407108 0.786853 2.187628 +v -0.419942 0.782149 2.208571 +v -0.458093 0.786853 2.153565 +v -0.472531 0.782149 2.173437 +v -0.506244 0.786853 2.115601 +v -0.522196 0.782149 2.134279 +v -0.551273 0.786853 2.073982 +v -0.568641 0.782149 2.091350 +v -0.592892 0.786853 2.028953 +v -0.611569 0.782149 2.044905 +v -0.630856 0.786853 1.980803 +v -0.650727 0.782149 1.995240 +v -0.664919 0.786853 1.929817 +v -0.685861 0.782149 1.942651 +v -0.694883 0.786853 1.876320 +v -0.716768 0.782149 1.887471 +v -0.720550 0.786853 1.820634 +v -0.743243 0.782149 1.830034 +v -0.741777 0.786853 1.763109 +v -0.765137 0.782149 1.770699 +v -0.758417 0.786853 1.704093 +v -0.782300 0.782149 1.709827 +v -0.770383 0.786853 1.643956 +v -0.794643 0.782149 1.647798 +v -0.777586 0.786853 1.583064 +v -0.802072 0.782149 1.584991 +v -0.779997 0.786853 1.521794 +v -0.804559 0.782149 1.521794 +v -0.777586 0.786853 1.460525 +v -0.802072 0.782149 1.458598 +v -0.770382 0.786853 1.399633 +v -0.794642 0.782149 1.395790 +v -0.758416 0.786853 1.339495 +v -0.782300 0.782149 1.333761 +v -0.741776 0.786853 1.280479 +v -0.765136 0.782149 1.272889 +v -0.720550 0.786853 1.222953 +v -0.743242 0.782149 1.213554 +v -0.694882 0.786853 1.167267 +v -0.716767 0.782149 1.156116 +v -0.664918 0.786853 1.113771 +v -0.685861 0.782149 1.100937 +v -0.630855 0.786853 1.062786 +v -0.650727 0.782149 1.048348 +v -0.592891 0.786853 1.014635 +v -0.611569 0.782149 0.998683 +v -0.551272 0.786853 0.969606 +v -0.568641 0.782149 0.952238 +v -0.506243 0.786853 0.927987 +v -0.522195 0.782149 0.909309 +v -0.458093 0.786853 0.890023 +v -0.472530 0.782149 0.870152 +v -0.407108 0.786853 0.855960 +v -0.419941 0.782149 0.835018 +v -0.353611 0.786853 0.825996 +v -0.364763 0.782149 0.804111 +v -0.297926 0.786853 0.800329 +v -0.307325 0.782149 0.777636 +v -0.240400 0.786853 0.779103 +v -0.247990 0.782149 0.755743 +v -0.181384 0.786853 0.762463 +v -0.187118 0.782149 0.738579 +v -0.121246 0.786853 0.750497 +v -0.125089 0.782149 0.726237 +v -0.060354 0.786853 0.743293 +v -0.062281 0.782149 0.718807 +v 0.000915 0.786853 0.740882 +v 0.000915 0.782149 0.716320 +v 0.062185 0.786853 0.743293 +v 0.064112 0.782149 0.718807 +v 0.123077 0.786853 0.750497 +v 0.126920 0.782149 0.726237 +v 0.183215 0.786853 0.762463 +v 0.188949 0.782149 0.738579 +v 0.242231 0.786853 0.779103 +v 0.249821 0.782149 0.755743 +v 0.299756 0.786853 0.800330 +v 0.309156 0.782149 0.777637 +v 0.355442 0.786853 0.825997 +v 0.366594 0.782149 0.804112 +v 0.408939 0.786853 0.855961 +v 0.421773 0.782149 0.835018 +v 0.459924 0.786853 0.890024 +v 0.474362 0.782149 0.870152 +v 0.508075 0.786853 0.927988 +v 0.524027 0.782149 0.909310 +v 0.553104 0.786853 0.969607 +v 0.570472 0.782149 0.952239 +v 0.594723 0.786853 1.014636 +v 0.613401 0.782149 0.998684 +v 0.632687 0.786853 1.062787 +v 0.652558 0.782149 1.048349 +v 0.666750 0.786853 1.113772 +v 0.687692 0.782149 1.100938 +v 0.696713 0.786853 1.167269 +v 0.718598 0.782149 1.156118 +v 0.722380 0.786853 1.222955 +v 0.745072 0.782149 1.213555 +v 0.743607 0.786853 1.280481 +v 0.766966 0.782149 1.272890 +v 0.760246 0.786853 1.339496 +v 0.784131 0.782149 1.333762 +v 0.772213 0.786853 1.399634 +v 0.796472 0.782149 1.395792 +v 0.779417 0.786853 1.460526 +v 0.803902 0.782149 1.458598 +v 0.781826 0.786853 1.521796 +v 0.806389 0.782150 1.521796 +v 0.779415 0.786853 1.583064 +v 0.803902 0.782150 1.584992 +v 0.772213 0.786853 1.643957 +v 0.796473 0.782149 1.647799 +v 0.760247 0.786853 1.704095 +v 0.784130 0.782149 1.709829 +v 0.743606 0.786853 1.763110 +v 0.766967 0.782149 1.770701 +v 0.722380 0.786853 1.820636 +v 0.745073 0.782150 1.830036 +v 0.696712 0.786853 1.876322 +v 0.718597 0.782150 1.887473 +v 0.666748 0.786853 1.929819 +v 0.687691 0.782149 1.942652 +v 0.632686 0.786853 1.980804 +v 0.652557 0.782149 1.995241 +v 0.594722 0.786853 2.028955 +v 0.613399 0.782149 2.044907 +v 0.553103 0.786853 2.073984 +v 0.570471 0.782149 2.091352 +v 0.508074 0.786853 2.115603 +v 0.524025 0.782149 2.134280 +v 0.459923 0.786853 2.153566 +v 0.474360 0.782149 2.173438 +v 0.408937 0.786853 2.187629 +v 0.421771 0.782149 2.208572 +v 0.355440 0.786853 2.217593 +v 0.366591 0.782149 2.239478 +v 0.299754 0.786853 2.243260 +v 0.309154 0.782149 2.265953 +v 0.242228 0.786853 2.264487 +v 0.249819 0.782149 2.287847 +v 0.183213 0.786853 2.281127 +v 0.188947 0.782149 2.305010 +v 0.123075 0.786853 2.293092 +v 0.126917 0.782149 2.317352 +v 0.062183 0.786853 2.300296 +v 0.064111 0.782149 2.324782 +v 0.000915 0.841649 2.233428 +v -0.054919 0.841649 2.231231 +v -0.110409 0.841649 2.224667 +v -0.165211 0.841649 2.213762 +v -0.218991 0.841649 2.198598 +v -0.271413 0.841649 2.179255 +v -0.322159 0.841649 2.155864 +v -0.370910 0.841649 2.128559 +v -0.417372 0.841649 2.097518 +v -0.461251 0.841649 2.062922 +v -0.502286 0.841648 2.024995 +v -0.540213 0.841648 1.983961 +v -0.574808 0.841648 1.940082 +v -0.605849 0.841648 1.893620 +v -0.633155 0.841648 1.844869 +v -0.656545 0.841648 1.794123 +v -0.675889 0.841648 1.741701 +v -0.691053 0.841648 1.687922 +v -0.701957 0.841648 1.633119 +v -0.708521 0.841648 1.577628 +v -0.710718 0.841648 1.521795 +v -0.708521 0.841648 1.465961 +v -0.701957 0.841648 1.410470 +v -0.691052 0.841648 1.355667 +v -0.675888 0.841648 1.301887 +v -0.656545 0.841648 1.249465 +v -0.633155 0.841648 1.198719 +v -0.605849 0.841649 1.149968 +v -0.574808 0.841649 1.103506 +v -0.540212 0.841649 1.059627 +v -0.502285 0.841649 1.018593 +v -0.461251 0.841649 0.980666 +v -0.417372 0.841649 0.946071 +v -0.370910 0.841649 0.915030 +v -0.322160 0.841649 0.887724 +v -0.271414 0.841649 0.864334 +v -0.218992 0.841649 0.844991 +v -0.165212 0.841649 0.829827 +v -0.110409 0.841649 0.818922 +v -0.054919 0.841649 0.812358 +v 0.000915 0.841649 0.810161 +v 0.056749 0.841649 0.812358 +v 0.112240 0.841649 0.818922 +v 0.167042 0.841649 0.829827 +v 0.220822 0.841649 0.844991 +v 0.273245 0.841649 0.864334 +v 0.323991 0.841649 0.887725 +v 0.372742 0.841649 0.915030 +v 0.419204 0.841649 0.946071 +v 0.463083 0.841649 0.980667 +v 0.504117 0.841649 1.018594 +v 0.542044 0.841649 1.059628 +v 0.576639 0.841649 1.103508 +v 0.607680 0.841649 1.149970 +v 0.634986 0.841649 1.198721 +v 0.658376 0.841649 1.249467 +v 0.677719 0.841649 1.301889 +v 0.692883 0.841649 1.355669 +v 0.703788 0.841649 1.410472 +v 0.710352 0.841649 1.465961 +v 0.712549 0.841649 1.521796 +v 0.710352 0.841649 1.577629 +v 0.703787 0.841649 1.633119 +v 0.692883 0.841649 1.687922 +v 0.677719 0.841649 1.741702 +v 0.658375 0.841649 1.794124 +v 0.634985 0.841649 1.844870 +v 0.607679 0.841649 1.893621 +v 0.576638 0.841649 1.940083 +v 0.542042 0.841649 1.983962 +v 0.504115 0.841649 2.024996 +v 0.463081 0.841649 2.062923 +v 0.419202 0.841649 2.097519 +v 0.372740 0.841649 2.128560 +v 0.323989 0.841649 2.155865 +v 0.273243 0.841649 2.179256 +v 0.220820 0.841649 2.198599 +v 0.167040 0.841649 2.213763 +v 0.112238 0.841649 2.224667 +v 0.056748 0.841649 2.231231 +v 0.549427 0.000000 2.379345 +v 0.550148 -0.036667 2.378095 +v 0.546820 -0.035680 2.361688 +v 0.546118 0.000000 2.362904 +v 0.553219 0.000000 2.401314 +v 0.553966 -0.038012 2.400018 +v 0.552302 -0.073109 2.374360 +v 0.556199 -0.075790 2.396147 +v 0.548916 -0.071140 2.358055 +v 0.555881 -0.109100 2.368157 +v 0.552398 -0.106161 2.352019 +v 0.559909 -0.113100 2.389716 +v 0.560857 -0.144418 2.359531 +v 0.565067 -0.149713 2.380774 +v 0.557240 -0.140529 2.343625 +v 0.567204 -0.178845 2.348528 +v 0.563416 -0.174028 2.332917 +v 0.571648 -0.185403 2.369367 +v 0.574880 -0.212171 2.335222 +v 0.579605 -0.219951 2.355573 +v 0.570885 -0.206457 2.319970 +v 0.583840 -0.244187 2.319689 +v 0.579604 -0.237610 2.304855 +v 0.588894 -0.253140 2.339471 +v 0.594026 -0.274700 2.302030 +v 0.599453 -0.284772 2.321165 +v 0.589516 -0.267301 2.287673 +v 0.605379 -0.303516 2.282350 +v 0.600563 -0.295342 2.268522 +v 0.611222 -0.314645 2.300763 +v 0.617825 -0.330464 2.260775 +v 0.624124 -0.342581 2.278397 +v 0.612674 -0.321564 2.247529 +v 0.631290 -0.355372 2.237432 +v 0.625777 -0.345801 2.224815 +v 0.638083 -0.368402 2.254198 +v 0.645689 -0.378092 2.212471 +v 0.653010 -0.391955 2.228322 +v 0.639788 -0.367909 2.200526 +v 0.660936 -0.398477 2.186041 +v 0.654624 -0.387745 2.174807 +v 0.668816 -0.413088 2.200923 +v 0.676934 -0.416410 2.158308 +v 0.685400 -0.431677 2.172173 +v 0.670191 -0.405194 2.147821 +v 0.693586 -0.431771 2.129441 +v 0.686395 -0.420142 2.119732 +v 0.702663 -0.447602 2.142248 +v 0.710789 -0.444474 2.099620 +v 0.720497 -0.460770 2.111333 +v 0.703134 -0.432503 2.090714 +v 0.728437 -0.454432 2.069027 +v 0.720307 -0.442193 2.060945 +v 0.738792 -0.471094 2.079618 +v 0.746420 -0.461593 2.037851 +v 0.757435 -0.478518 2.047300 +v 0.737806 -0.449161 2.030609 +v 0.764630 -0.465904 2.006285 +v 0.755525 -0.453356 1.999893 +v 0.776312 -0.482987 2.014576 +v 0.782952 -0.467347 1.974523 +v 0.795305 -0.484483 1.981650 +v 0.773353 -0.454760 1.968987 +v 0.801274 -0.465904 1.942762 +v 0.791182 -0.453356 1.938080 +v 0.814299 -0.482987 1.948724 +v 0.819483 -0.461593 1.911196 +v 0.833175 -0.478518 1.916000 +v 0.808901 -0.449161 1.907364 +v 0.837466 -0.454432 1.880020 +v 0.826400 -0.442193 1.877029 +v 0.851819 -0.471094 1.883682 +v 0.855114 -0.444474 1.849427 +v 0.870113 -0.460770 1.851967 +v 0.843572 -0.432502 1.847259 +v 0.872316 -0.431770 1.819606 +v 0.860311 -0.420141 1.818241 +v 0.887947 -0.447601 1.821052 +v 0.888969 -0.416409 1.790739 +v 0.905209 -0.431677 1.791126 +v 0.876516 -0.405194 1.790152 +v 0.904966 -0.398477 1.763006 +v 0.892081 -0.387745 1.763166 +v 0.921794 -0.413087 1.762377 +v 0.920213 -0.378092 1.736576 +v 0.937599 -0.391954 1.734978 +v 0.906917 -0.367908 1.737447 +v 0.934612 -0.355372 1.711615 +v 0.920929 -0.345800 1.713159 +v 0.952526 -0.368402 1.709101 +v 0.948077 -0.330464 1.688272 +v 0.966486 -0.342581 1.684903 +v 0.934032 -0.321564 1.690445 +v 0.960523 -0.303516 1.666697 +v 0.946142 -0.295341 1.669451 +v 0.979388 -0.314645 1.662537 +v 0.971876 -0.274700 1.647017 +v 0.991157 -0.284771 1.642135 +v 0.957189 -0.267301 1.650301 +v 0.982062 -0.244187 1.629359 +v 0.967101 -0.237610 1.633118 +v 1.001716 -0.253140 1.623829 +v 0.991022 -0.212171 1.613826 +v 1.011005 -0.219950 1.607727 +v 0.975820 -0.206456 1.618004 +v 0.998698 -0.178845 1.600520 +v 0.983289 -0.174028 1.605056 +v 1.018962 -0.185402 1.593933 +v 1.005045 -0.144418 1.589516 +v 1.025542 -0.149713 1.582526 +v 0.989465 -0.140528 1.594349 +v 1.010022 -0.109099 1.580890 +v 0.994307 -0.106161 1.585955 +v 1.030701 -0.113099 1.573584 +v 1.013600 -0.073109 1.574687 +v 1.034410 -0.075789 1.567153 +v 0.997789 -0.071140 1.579919 +v 1.015754 -0.036667 1.570953 +v 0.999885 -0.035680 1.576285 +v 1.036644 -0.038012 1.563282 +v 1.016475 0.000000 1.569703 +v 1.037391 0.000000 1.561986 +v 1.000587 0.000000 1.575069 +v 0.555292 0.000000 2.536453 +v 0.556212 -0.047115 2.534839 +v 0.562467 -0.046525 2.529792 +v 0.561551 0.000000 2.531376 +v 0.537411 0.000000 2.545762 +v 0.538300 -0.048444 2.544006 +v 0.558957 -0.093937 2.530012 +v 0.541116 -0.096585 2.539022 +v 0.565212 -0.092763 2.525066 +v 0.563558 -0.140181 2.522045 +v 0.569753 -0.138429 2.517195 +v 0.545900 -0.144145 2.530920 +v 0.569960 -0.185563 2.510973 +v 0.552499 -0.190815 2.519560 +v 0.576065 -0.183242 2.506249 +v 0.578123 -0.229800 2.496842 +v 0.584116 -0.226924 2.492284 +v 0.560866 -0.236296 2.504992 +v 0.587987 -0.272621 2.479747 +v 0.571112 -0.280369 2.487567 +v 0.593853 -0.269209 2.475399 +v 0.599504 -0.313760 2.459793 +v 0.605228 -0.309832 2.455695 +v 0.582966 -0.322682 2.467061 +v 0.612596 -0.352968 2.437108 +v 0.596463 -0.363022 2.443777 +v 0.618154 -0.348548 2.433292 +v 0.627188 -0.389996 2.411825 +v 0.632556 -0.385111 2.408318 +v 0.611521 -0.401133 2.417841 +v 0.643185 -0.424625 2.384108 +v 0.627996 -0.436764 2.389361 +v 0.648356 -0.419305 2.380950 +v 0.660489 -0.456630 2.354116 +v 0.665435 -0.450908 2.351327 +v 0.645817 -0.469697 2.358537 +v 0.678988 -0.485822 2.322040 +v 0.664869 -0.499739 2.325568 +v 0.683697 -0.479733 2.319649 +v 0.698578 -0.512016 2.288078 +v 0.703040 -0.505598 2.286112 +v 0.685044 -0.526698 2.290658 +v 0.719134 -0.535057 2.252444 +v 0.706175 -0.550390 2.253987 +v 0.723337 -0.528350 2.250923 +v 0.740530 -0.554794 2.215350 +v 0.744464 -0.547839 2.214294 +v 0.728179 -0.570689 2.215826 +v 0.762633 -0.571116 2.177031 +v 0.750952 -0.587503 2.176440 +v 0.766290 -0.563957 2.176456 +v 0.785313 -0.583914 2.137723 +v 0.788683 -0.576593 2.137639 +v 0.774390 -0.600738 2.136086 +v 0.808438 -0.593124 2.097677 +v 0.798328 -0.610310 2.094988 +v 0.811509 -0.585682 2.098088 +v 0.831864 -0.598676 2.057133 +v 0.834631 -0.591157 2.058046 +v 0.822538 -0.616093 2.053336 +v 0.855439 -0.600545 2.016339 +v 0.846922 -0.618098 2.011426 +v 0.857895 -0.592992 2.017755 +v 0.879060 -0.598727 1.975565 +v 0.881185 -0.591173 1.977478 +v 0.871335 -0.616299 1.969512 +v 0.902702 -0.593295 1.935120 +v 0.895522 -0.610655 1.927802 +v 0.904452 -0.585747 1.937509 +v 0.925873 -0.584116 1.895075 +v 0.927294 -0.576665 1.897960 +v 0.919436 -0.601253 1.886611 +v 0.948264 -0.571193 1.855628 +v 0.942808 -0.588091 1.846140 +v 0.949479 -0.563974 1.859036 +v 0.970221 -0.554808 1.817247 +v 0.971252 -0.547843 1.821173 +v 0.965024 -0.571004 1.806503 +v 0.991599 -0.535062 1.780147 +v 0.986747 -0.550545 1.768241 +v 0.992377 -0.528351 1.784544 +v 1.012149 -0.512019 1.744510 +v 1.012673 -0.505598 1.749355 +v 1.007865 -0.526820 1.731566 +v 1.031733 -0.485822 1.710547 +v 1.027846 -0.499794 1.696585 +v 1.032015 -0.479732 1.715818 +v 1.050232 -0.456628 1.678473 +v 1.050283 -0.450904 1.684146 +v 1.046768 -0.469716 1.663569 +v 1.067534 -0.424623 1.648479 +v 1.064562 -0.436793 1.632715 +v 1.067369 -0.419301 1.654529 +v 1.083528 -0.389997 1.620757 +v 1.083161 -0.385108 1.627154 +v 1.081064 -0.401191 1.604205 +v 1.098116 -0.352971 1.595469 +v 1.096152 -0.363126 1.578200 +v 1.097566 -0.348545 1.602183 +v 1.111205 -0.313764 1.572780 +v 1.110490 -0.309830 1.579778 +v 1.109684 -0.322808 1.554864 +v 1.122718 -0.272625 1.552821 +v 1.121448 -0.280466 1.534323 +v 1.121859 -0.269207 1.560069 +v 1.132583 -0.229804 1.535724 +v 1.131599 -0.226923 1.543187 +v 1.131616 -0.236417 1.516735 +v 1.140738 -0.185567 1.521585 +v 1.140023 -0.190910 1.502190 +v 1.139652 -0.183241 1.529225 +v 1.147130 -0.140185 1.510501 +v 1.145965 -0.138428 1.518280 +v 1.146561 -0.144216 1.490786 +v 1.151723 -0.093940 1.502530 +v 1.151156 -0.096631 1.482583 +v 1.150504 -0.092762 1.510409 +v 1.154491 -0.047115 1.497732 +v 1.153237 -0.046524 1.505671 +v 1.153946 -0.048463 1.477646 +v 1.155417 0.000000 1.496126 +v 1.154880 0.000000 1.475994 +v 1.154151 0.000000 1.504085 +v 0.372309 0.000000 2.616316 +v 0.373445 -0.059710 2.614167 +v 0.439493 -0.055433 2.589529 +v 0.438454 0.000000 2.591543 +v 0.297197 0.000000 2.639088 +v 0.298435 -0.064203 2.636805 +v 0.376973 -0.119059 2.608145 +v 0.302202 -0.128009 2.630250 +v 0.442808 -0.110539 2.584023 +v 0.382863 -0.177699 2.598220 +v 0.448212 -0.164953 2.574628 +v 0.308501 -0.191047 2.619510 +v 0.390952 -0.235215 2.584126 +v 0.317286 -0.252953 2.604653 +v 0.455821 -0.218393 2.561776 +v 0.401353 -0.291333 2.566368 +v 0.465378 -0.270431 2.545046 +v 0.328377 -0.313227 2.585290 +v 0.413872 -0.345633 2.544732 +v 0.341878 -0.371657 2.562165 +v 0.477098 -0.320898 2.525162 +v 0.428563 -0.397876 2.519648 +v 0.490655 -0.369324 2.501678 +v 0.357650 -0.427832 2.535173 +v 0.445165 -0.447599 2.490887 +v 0.375497 -0.481296 2.504237 +v 0.506099 -0.415505 2.475042 +v 0.463775 -0.494675 2.459047 +v 0.523385 -0.459191 2.445474 +v 0.395470 -0.531898 2.469953 +v 0.484079 -0.538621 2.423922 +v 0.417115 -0.579242 2.432320 +v 0.542260 -0.500004 2.412907 +v 0.506118 -0.579330 2.386039 +v 0.562685 -0.537741 2.377669 +v 0.440217 -0.623237 2.391911 +v 0.468547 -0.660335 2.348677 +v 0.531056 -0.615206 2.345536 +v 0.584891 -0.571877 2.340014 +v 0.560148 -0.644749 2.302724 +v 0.609067 -0.601844 2.300139 +v 0.506251 -0.687505 2.303291 +v 0.549135 -0.705985 2.256584 +v 0.592327 -0.668001 2.258232 +v 0.634805 -0.627493 2.258352 +v 0.626689 -0.685184 2.212907 +v 0.661814 -0.648781 2.215101 +v 0.593296 -0.717395 2.209829 +v 0.636126 -0.724348 2.162760 +v 0.661177 -0.697750 2.166645 +v 0.689448 -0.665968 2.170549 +v 0.694164 -0.707603 2.119825 +v 0.717237 -0.679476 2.125036 +v 0.675119 -0.729621 2.115332 +v 0.710771 -0.733236 2.067426 +v 0.725709 -0.714551 2.072396 +v 0.744991 -0.689123 2.078688 +v 0.756010 -0.718521 2.024394 +v 0.772728 -0.694909 2.031795 +v 0.743645 -0.735240 2.018884 +v 0.773795 -0.736127 1.969199 +v 0.784974 -0.719966 1.975664 +v 0.800290 -0.696912 1.984519 +v 0.812400 -0.719241 1.925980 +v 0.827488 -0.695191 1.937007 +v 0.801195 -0.736323 1.917827 +v 0.838634 -0.715867 1.875474 +v 0.826406 -0.735196 1.864636 +v 0.854302 -0.689658 1.889513 +v 0.863961 -0.709318 1.824240 +v 0.880621 -0.680156 1.842249 +v 0.849932 -0.732058 1.809451 +v 0.888250 -0.699372 1.772335 +v 0.871878 -0.726558 1.752152 +v 0.906207 -0.666634 1.795420 +v 0.911686 -0.686068 1.719952 +v 0.931262 -0.649355 1.749372 +v 0.892312 -0.718332 1.692663 +v 0.934395 -0.668254 1.668094 +v 0.911725 -0.705733 1.632229 +v 0.955507 -0.627988 1.704489 +v 0.956888 -0.645064 1.617852 +v 0.978847 -0.602346 1.661232 +v 0.930882 -0.687324 1.572131 +v 0.979364 -0.615896 1.570891 +v 0.951194 -0.660789 1.516553 +v 1.001454 -0.572552 1.620247 +v 1.002038 -0.580158 1.528871 +v 1.023127 -0.538499 1.582111 +v 0.974329 -0.623988 1.469669 +v 1.024038 -0.539504 1.490762 +v 0.997913 -0.580218 1.428689 +v 1.043518 -0.500751 1.546739 +v 1.044457 -0.495558 1.455534 +v 1.062428 -0.459939 1.514046 +v 1.019796 -0.532920 1.390804 +v 1.062828 -0.448439 1.423418 +v 1.039646 -0.482286 1.356263 +v 1.079550 -0.416240 1.484226 +v 1.079425 -0.398616 1.394595 +v 1.094919 -0.369983 1.457474 +v 1.057530 -0.428715 1.325261 +v 1.093957 -0.346322 1.369251 +v 1.073070 -0.372438 1.298031 +v 1.108502 -0.321476 1.433937 +v 1.106616 -0.291959 1.347511 +v 1.120126 -0.270980 1.413777 +v 1.086616 -0.313960 1.274657 +v 1.116771 -0.235714 1.329584 +v 1.097733 -0.253518 1.255347 +v 1.129716 -0.218812 1.397108 +v 1.124980 -0.178082 1.315490 +v 1.137163 -0.165286 1.384050 +v 1.106415 -0.191508 1.240218 +v 1.130833 -0.119337 1.305362 +v 1.112636 -0.128325 1.229346 +v 1.142760 -0.110777 1.374629 +v 1.134280 -0.059849 1.299281 +v 1.145835 -0.055551 1.368996 +v 1.116398 -0.064360 1.222796 +v 1.135559 0.000000 1.297220 +v 1.117744 0.000000 1.220581 +v 1.147047 0.000000 1.367087 +v 0.212668 0.000000 2.658293 +v 0.214019 -0.068827 2.655933 +v 0.122852 0.000000 2.671421 +v 0.124293 -0.073242 2.668936 +v 0.218059 -0.137228 2.648902 +v 0.128601 -0.146039 2.661522 +v 0.224769 -0.204777 2.637229 +v 0.135765 -0.217958 2.649271 +v 0.234127 -0.271090 2.621125 +v 0.145721 -0.288547 2.632153 +v 0.246083 -0.335770 2.600651 +v 0.158413 -0.357355 2.610233 +v 0.260529 -0.398395 2.575818 +v 0.173777 -0.424012 2.583812 +v 0.277400 -0.458589 2.546818 +v 0.191712 -0.488067 2.552919 +v 0.296561 -0.515950 2.513760 +v 0.211831 -0.548527 2.518103 +v 0.317941 -0.570178 2.476966 +v 0.233811 -0.604565 2.480229 +v 0.256327 -0.656678 2.439645 +v 0.340549 -0.621108 2.436902 +v 0.363302 -0.668403 2.393877 +v 0.277976 -0.705173 2.396592 +v 0.307760 -0.752674 2.345748 +v 0.395831 -0.706490 2.348869 +v 0.915956 -0.706333 1.457419 +v 0.938375 -0.668974 1.404567 +v 0.870362 -0.752778 1.386440 +v 0.898334 -0.706559 1.331697 +v 0.963771 -0.622119 1.360613 +v 0.923595 -0.659060 1.287684 +v 0.987022 -0.571286 1.320035 +v 0.947510 -0.606756 1.246073 +v 1.008350 -0.517027 1.283003 +v 0.969747 -0.550013 1.207428 +v 1.027592 -0.459630 1.249749 +v 0.989967 -0.489207 1.172320 +v 1.044374 -0.399335 1.220536 +v 1.007862 -0.425043 1.141223 +v 1.058662 -0.336560 1.195542 +v 1.023321 -0.358310 1.114534 +v 1.070642 -0.271782 1.174824 +v 1.035870 -0.289290 1.092559 +v 1.079920 -0.205299 1.158619 +v 1.045838 -0.218542 1.075279 +v 1.086627 -0.137570 1.146956 +v 1.053037 -0.146452 1.062840 +v 1.090724 -0.069000 1.139914 +v 1.057287 -0.073448 1.055389 +v 1.092133 0.000000 1.137543 +v 1.058713 0.000000 1.052893 +v 0.032253 0.000000 2.677643 +v 0.033771 -0.077215 2.674995 +v -0.058593 0.000000 2.676569 +v -0.057003 -0.080699 2.673743 +v 0.038307 -0.153953 2.667125 +v -0.052262 -0.160903 2.665536 +v 0.045842 -0.229740 2.654053 +v -0.044393 -0.240144 2.652028 +v 0.056325 -0.304139 2.635980 +v -0.033446 -0.317953 2.633277 +v 0.069708 -0.376725 2.613049 +v -0.019474 -0.393798 2.609185 +v 0.085882 -0.446958 2.585095 +v -0.002573 -0.467264 2.580077 +v 0.104781 -0.514515 2.552591 +v 0.017162 -0.537821 2.545953 +v 0.037628 -0.600521 2.510198 +v 0.125243 -0.576595 2.517132 +v 0.146170 -0.630711 2.480968 +v 0.056748 -0.650971 2.477149 +v 0.074970 -0.693747 2.445245 +v 0.166970 -0.679318 2.443929 +v 0.880790 -0.685743 1.210869 +v 0.903146 -0.635659 1.171750 +v 0.834356 -0.703857 1.132559 +v 0.854150 -0.658408 1.097860 +v 0.925214 -0.578821 1.133297 +v 0.875193 -0.603510 1.061105 +v 0.946183 -0.515776 1.097002 +v 0.896623 -0.539236 1.024200 +v 0.965112 -0.448155 1.064192 +v 0.916311 -0.468491 0.989958 +v 0.981177 -0.377707 1.036160 +v 0.933279 -0.394916 0.960566 +v 0.994630 -0.305015 1.012897 +v 0.947159 -0.318851 0.936353 +v 1.005008 -0.230391 0.994748 +v 0.958110 -0.240864 0.917330 +v 1.012535 -0.154384 0.981664 +v 0.965982 -0.161402 0.903653 +v 1.017121 -0.077433 0.973758 +v 0.970713 -0.080948 0.895425 +v 1.018696 0.000000 0.971091 +v 0.972364 0.000000 0.892627 +v -0.149130 0.000000 2.668546 +v -0.147474 -0.083703 2.665618 +v -0.238765 0.000000 2.653264 +v -0.237048 -0.086176 2.650222 +v -0.142562 -0.166897 2.657137 +v -0.232002 -0.171833 2.641521 +v -0.134407 -0.249083 2.643087 +v -0.223629 -0.256467 2.627129 +v -0.123054 -0.329740 2.623466 +v -0.211952 -0.339527 2.606958 +v -0.108577 -0.408408 2.598503 +v -0.197066 -0.420545 2.581288 +v -0.091065 -0.484599 2.568305 +v -0.179046 -0.498991 2.550166 +v -0.070622 -0.557892 2.533135 +v -0.158013 -0.574430 2.513885 +v -0.137470 -0.637764 2.477712 +v -0.050143 -0.620965 2.497156 +v -0.032684 -0.667662 2.466698 +v -0.121367 -0.681502 2.449715 +v -0.107796 -0.714342 2.426468 +v -0.016979 -0.705097 2.439681 +v 0.783621 -0.715344 1.055044 +v 0.800466 -0.675225 1.025307 +v 0.727475 -0.722534 0.981036 +v 0.741801 -0.687716 0.955765 +v 0.819958 -0.624062 0.991373 +v 0.759465 -0.640606 0.924995 +v 0.841483 -0.559387 0.954404 +v 0.780882 -0.575949 0.888224 +v 0.861820 -0.485950 0.918956 +v 0.802014 -0.500449 0.851592 +v 0.879337 -0.409597 0.888527 +v 0.820006 -0.421792 0.820305 +v 0.893856 -0.330746 0.863340 +v 0.834890 -0.340566 0.794430 +v 0.905193 -0.249843 0.843629 +v 0.846703 -0.257302 0.774019 +v 0.913278 -0.167403 0.829506 +v 0.855024 -0.172398 0.759494 +v 0.918218 -0.083961 0.820950 +v 0.860042 -0.086459 0.750744 +v 0.919960 0.000000 0.818019 +v 0.861822 0.000000 0.747725 +v -0.327000 0.000000 2.631156 +v -0.325238 -0.088133 2.628057 +v -0.413197 0.000000 2.602015 +v -0.411396 -0.089531 2.598856 +v -0.320105 -0.175748 2.619231 +v -0.406192 -0.178535 2.589888 +v -0.311512 -0.262273 2.604352 +v -0.397466 -0.266432 2.574769 +v -0.299569 -0.347202 2.583686 +v -0.385387 -0.352752 2.553901 +v -0.284373 -0.430066 2.557463 +v -0.369948 -0.436920 2.527201 +v -0.265953 -0.510278 2.525610 +v -0.351289 -0.518468 2.494951 +v -0.244483 -0.587458 2.488565 +v -0.329455 -0.596806 2.457168 +v -0.223831 -0.651198 2.452285 +v -0.308656 -0.660834 2.420713 +v -0.208593 -0.692718 2.425557 +v -0.293998 -0.701048 2.394986 +v -0.282946 -0.728913 2.375908 +v -0.196527 -0.722513 2.404879 +v 0.597709 -0.733008 0.851062 +v 0.608921 -0.704834 0.831276 +v 0.677816 -0.697455 0.890921 +v 0.665403 -0.728311 0.912870 +v 0.624345 -0.663092 0.804485 +v 0.694225 -0.653693 0.862473 +v 0.715585 -0.589080 0.825791 +v 0.645692 -0.598474 0.767760 +v 0.737088 -0.511787 0.788436 +v 0.667584 -0.519978 0.729776 +v 0.755582 -0.431399 0.756362 +v 0.686343 -0.438283 0.697231 +v 0.770756 -0.348298 0.729961 +v 0.701907 -0.353924 0.670255 +v 0.782709 -0.263103 0.709207 +v 0.713984 -0.267326 0.649259 +v 0.791337 -0.176309 0.694250 +v 0.722759 -0.179140 0.634052 +v 0.796476 -0.088420 0.685303 +v 0.727943 -0.089835 0.625017 +v 0.798304 0.000000 0.682196 +v 0.729785 0.000000 0.621862 +v -0.496928 0.000000 2.566342 +v -0.495104 -0.090389 2.563163 +v -0.577535 0.000000 2.524046 +v -0.575697 -0.090675 2.520858 +v -0.489878 -0.180253 2.554135 +v -0.570467 -0.180822 2.511793 +v -0.481064 -0.268993 2.538858 +v -0.561614 -0.269836 2.496446 +v -0.468899 -0.356153 2.517811 +v -0.549440 -0.357276 2.475341 +v -0.453273 -0.441081 2.490734 +v -0.533779 -0.442479 2.448193 +v -0.434450 -0.523395 2.458148 +v -0.514945 -0.525083 2.415543 +v -0.412411 -0.602457 2.419971 +v -0.492846 -0.604397 2.377234 +v -0.391492 -0.666658 2.383491 +v -0.471824 -0.668654 2.340793 +v -0.377158 -0.706009 2.358452 +v -0.457543 -0.707692 2.316036 +v -0.447221 -0.733902 2.298141 +v -0.366719 -0.732699 2.340375 +v 0.457827 -0.712207 0.729217 +v 0.535335 -0.710080 0.777464 +v 0.524685 -0.736947 0.796134 +v 0.447248 -0.738703 0.747556 +v 0.472950 -0.671129 0.703001 +v 0.550425 -0.669009 0.751254 +v 0.571784 -0.604174 0.714374 +v 0.494307 -0.606135 0.665977 +v 0.593929 -0.524966 0.675979 +v 0.516545 -0.526689 0.627428 +v 0.612805 -0.442438 0.643224 +v 0.535482 -0.443880 0.594600 +v 0.628520 -0.357283 0.615985 +v 0.551252 -0.358450 0.567262 +v 0.640728 -0.269864 0.594792 +v 0.563498 -0.270739 0.546032 +v 0.649624 -0.180852 0.579385 +v 0.572416 -0.181438 0.530574 +v 0.654865 -0.090693 0.570274 +v 0.577677 -0.090986 0.521454 +v 0.656720 0.000000 0.567078 +v 0.579527 0.000000 0.518245 +v -0.654669 0.000000 2.475681 +v -0.652825 -0.090411 2.472503 +v -0.727670 0.000000 2.421271 +v -0.725840 -0.089576 2.418133 +v -0.647614 -0.180294 2.463441 +v -0.720685 -0.178627 2.409142 +v -0.638782 -0.269046 2.448134 +v -0.711972 -0.266574 2.394023 +v -0.626642 -0.356219 2.427051 +v -0.699962 -0.352946 2.373126 +v -0.611034 -0.441169 2.399978 +v -0.684578 -0.437163 2.346389 +v -0.592258 -0.523511 2.367382 +v -0.665913 -0.518692 2.313980 +v -0.570250 -0.602597 2.329199 +v -0.644153 -0.597080 2.276178 +v -0.549147 -0.666830 2.292829 +v -0.622990 -0.661251 2.239873 +v -0.534642 -0.706222 2.267872 +v -0.607961 -0.701785 2.214115 +v -0.524045 -0.732976 2.249514 +v -0.596733 -0.730046 2.194596 +v 0.293852 -0.705443 0.649318 +v 0.377293 -0.710338 0.686176 +v 0.366516 -0.737037 0.704655 +v 0.282341 -0.733679 0.668906 +v 0.309423 -0.663467 0.622376 +v 0.392473 -0.669188 0.659907 +v 0.413737 -0.604332 0.622895 +v 0.330589 -0.598789 0.585376 +v 0.435912 -0.525128 0.584450 +v 0.352529 -0.520267 0.547368 +v 0.454839 -0.442593 0.551668 +v 0.371285 -0.438487 0.514915 +v 0.470545 -0.357399 0.524441 +v 0.386826 -0.354065 0.487993 +v 0.482768 -0.269944 0.503285 +v 0.398975 -0.267443 0.466978 +v 0.491645 -0.180902 0.487889 +v 0.407763 -0.179225 0.451730 +v 0.496902 -0.090717 0.478802 +v 0.412998 -0.089879 0.442697 +v 0.498738 0.000000 0.475600 +v 0.414810 0.000000 0.439514 +v -0.796276 0.000000 2.361414 +v -0.794459 -0.088197 2.358321 +v -0.859850 0.000000 2.296246 +v -0.858079 -0.086262 2.293239 +v -0.789346 -0.175867 2.349411 +v -0.853086 -0.172009 2.284521 +v -0.780776 -0.262455 2.334527 +v -0.844831 -0.256735 2.270071 +v -0.768884 -0.347455 2.313857 +v -0.833166 -0.339865 2.249810 +v -0.753808 -0.430392 2.287581 +v -0.818349 -0.420945 2.224019 +v -0.735478 -0.510684 2.255702 +v -0.800457 -0.499487 2.192847 +v -0.714077 -0.587864 2.218479 +v -0.779503 -0.574949 2.156395 +v -0.692927 -0.652027 2.182237 +v -0.758303 -0.639019 2.120105 +v -0.677023 -0.694589 2.154942 +v -0.741351 -0.684625 2.090779 +v -0.664721 -0.725152 2.133434 +v -0.727386 -0.718675 2.066306 +v 0.119331 -0.689223 0.596428 +v 0.207619 -0.698583 0.619476 +v 0.194486 -0.730325 0.641782 +v 0.103945 -0.725548 0.622706 +v 0.137390 -0.641416 0.565323 +v 0.224221 -0.654296 0.590732 +v 0.245388 -0.589556 0.553630 +v 0.158616 -0.576546 0.528112 +v 0.266945 -0.512148 0.516401 +v 0.179745 -0.500909 0.491577 +v 0.285460 -0.431700 0.484325 +v 0.197864 -0.422238 0.460169 +v 0.300753 -0.348571 0.457864 +v 0.212816 -0.340909 0.434364 +v 0.312764 -0.263326 0.437043 +v 0.224556 -0.257530 0.414033 +v 0.321391 -0.176454 0.422102 +v 0.232980 -0.172558 0.399496 +v 0.326555 -0.088490 0.413211 +v 0.238055 -0.086542 0.390726 +v 0.328327 0.000000 0.410085 +v 0.239782 0.000000 0.387657 +v -0.918217 0.000000 2.226391 +v -0.916484 -0.083803 2.223469 +v -0.970788 0.000000 2.152096 +v -0.969144 -0.080818 2.149305 +v -0.911565 -0.167090 2.214938 +v -0.964431 -0.161144 2.141097 +v -0.903514 -0.249381 2.200856 +v -0.956707 -0.240513 2.127527 +v -0.892237 -0.330149 2.181210 +v -0.945804 -0.318396 2.108553 +v -0.877890 -0.408926 2.156174 +v -0.931985 -0.394370 2.084398 +v -0.860437 -0.485177 2.125818 +v -0.915189 -0.467921 2.055133 +v -0.840280 -0.558596 2.090524 +v -0.895559 -0.538601 2.020950 +v -0.819031 -0.622565 2.054149 +v -0.874490 -0.602217 1.984685 +v -0.800360 -0.671777 2.021949 +v -0.854383 -0.655210 1.949719 +v -0.784113 -0.710911 1.993338 +v -0.835067 -0.699764 1.916256 +v -0.059945 -0.659754 0.569494 +v 0.029744 -0.676755 0.580058 +v 0.011774 -0.718146 0.610820 +v -0.080535 -0.706063 0.604803 +v -0.038517 -0.604482 0.532665 +v 0.049586 -0.624966 0.545910 +v 0.070905 -0.560050 0.508618 +v -0.017229 -0.539975 0.495623 +v 0.091438 -0.486559 0.473163 +v 0.002583 -0.469192 0.461267 +v 0.109026 -0.410094 0.442776 +v 0.019554 -0.395471 0.431923 +v 0.123574 -0.331134 0.417614 +v 0.033590 -0.319349 0.407582 +v 0.134988 -0.250163 0.397792 +v 0.044586 -0.241206 0.388714 +v 0.143185 -0.167628 0.383633 +v 0.052493 -0.161623 0.375090 +v 0.148116 -0.084068 0.375133 +v 0.057256 -0.081062 0.366811 +v 0.149781 0.000000 0.372176 +v 0.058855 0.000000 0.363957 +v -1.017474 0.000000 2.073990 +v -1.015904 -0.077341 2.071328 +v -1.057747 0.000000 1.992420 +v -1.056324 -0.073381 1.989928 +v -1.011332 -0.154201 2.063436 +v -1.052085 -0.146320 1.982486 +v -1.003827 -0.230121 2.050375 +v -1.045051 -0.218378 1.970125 +v -0.993479 -0.304663 2.032255 +v -1.035102 -0.289076 1.952864 +v -0.980195 -0.377330 2.009095 +v -1.022570 -0.358047 1.930907 +v -0.964169 -0.447719 1.981102 +v -1.007276 -0.424796 1.904296 +v -0.945407 -0.515354 1.948391 +v -0.989538 -0.488994 1.873269 +v -0.924715 -0.578025 1.912505 +v -0.969424 -0.549708 1.838277 +v -0.903276 -0.633747 1.875151 +v -0.947425 -0.606203 1.799928 +v -0.880980 -0.683718 1.837288 +v -0.923162 -0.659070 1.759362 +v -0.171442 -0.687428 0.603113 +v -0.148514 -0.636890 0.563737 +v -0.259594 -0.660270 0.603979 +v -0.235202 -0.607885 0.562354 +v -0.212825 -0.551024 0.523652 +v -0.126198 -0.579875 0.525174 +v -0.105219 -0.516650 0.488828 +v -0.192530 -0.490142 0.488414 +v -0.086252 -0.448866 0.456085 +v -0.174540 -0.425867 0.457272 +v -0.070017 -0.378377 0.427901 +v -0.159121 -0.358949 0.430651 +v -0.056579 -0.305493 0.404800 +v -0.146380 -0.289849 0.408581 +v -0.046052 -0.230779 0.386569 +v -0.136386 -0.218953 0.391325 +v -0.038485 -0.154657 0.373382 +v -0.129195 -0.146713 0.378960 +v -0.033928 -0.077568 0.365471 +v -0.124871 -0.073582 0.371475 +v -0.032404 0.000000 0.362796 +v -0.123425 0.000000 0.368963 +v -1.091612 0.000000 1.908014 +v -1.090204 -0.068968 1.905645 +v -1.118609 0.000000 1.821196 +v -1.117272 -0.064125 1.818990 +v -1.086112 -0.137506 1.898607 +v -1.113544 -0.127859 1.812470 +v -1.079413 -0.205203 1.886951 +v -1.107423 -0.190825 1.801656 +v -1.070218 -0.271675 1.870780 +v -1.098805 -0.252621 1.786589 +v -1.058329 -0.336454 1.850096 +v -1.087776 -0.312863 1.767357 +v -1.044152 -0.399249 1.825140 +v -1.074392 -0.371176 1.744090 +v -1.027419 -0.459550 1.795946 +v -1.059034 -0.427313 1.716975 +v -1.008320 -0.517013 1.762722 +v -1.041271 -0.480748 1.686079 +v -0.987126 -0.571337 1.725698 +v -1.021606 -0.531290 1.651661 +v -0.999852 -0.578654 1.614049 +v -0.963616 -0.622663 1.685680 +v -0.937262 -0.670889 1.643456 +v -0.896064 -0.708709 1.717703 +v -0.976235 -0.622746 1.573646 +v -0.914526 -0.708978 1.591541 +v -0.953511 -0.659172 1.526689 +v -0.866319 -0.756874 1.665364 +v -0.319811 -0.753627 0.699670 +v -0.409467 -0.703346 0.695045 +v -0.371745 -0.668073 0.649317 +v -0.285943 -0.707753 0.648019 +v -0.484258 -0.653364 0.694415 +v -0.451295 -0.619586 0.651070 +v -0.423788 -0.578574 0.610178 +v -0.343675 -0.622797 0.605412 +v -0.319251 -0.572471 0.564898 +v -0.400679 -0.532228 0.572342 +v -0.297810 -0.518112 0.527808 +v -0.380739 -0.481656 0.537911 +v -0.278596 -0.460571 0.494478 +v -0.362917 -0.428198 0.506827 +v -0.261669 -0.400144 0.465296 +v -0.347139 -0.371986 0.479791 +v -0.247182 -0.337278 0.440251 +v -0.333668 -0.313546 0.456507 +v -0.235190 -0.272329 0.419600 +v -0.322572 -0.253215 0.437109 +v -0.225803 -0.205725 0.403355 +v -0.313813 -0.191268 0.422103 +v -0.219070 -0.137868 0.391581 +v -0.307509 -0.128158 0.411340 +v -0.215016 -0.069149 0.384498 +v -0.303739 -0.064278 0.404770 +v -0.213660 0.000000 0.382122 +v -0.302501 0.000000 0.402483 +v -1.138842 0.000000 1.732585 +v -1.137546 -0.058893 1.730552 +v -1.151556 0.000000 1.645955 +v -1.150378 -0.053505 1.644117 +v -1.134111 -0.117426 1.724558 +v -1.147391 -0.106695 1.638685 +v -1.128424 -0.175242 1.714606 +v -1.142211 -0.159225 1.629636 +v -1.120540 -0.231995 1.700768 +v -1.134969 -0.210775 1.617048 +v -1.110472 -0.287332 1.683111 +v -1.125779 -0.261038 1.600994 +v -1.098212 -0.340896 1.661742 +v -1.114640 -0.309698 1.581577 +v -1.083981 -0.392396 1.636803 +v -1.101811 -0.356511 1.558913 +v -1.067630 -0.441447 1.608432 +v -1.086926 -0.401058 1.533134 +v -1.049584 -0.487865 1.576832 +v -1.070432 -0.443171 1.504408 +v -1.029724 -0.531286 1.542183 +v -1.052397 -0.482594 1.472914 +v -1.008134 -0.571410 1.504701 +v -1.032881 -0.519062 1.438835 +v -0.986172 -0.606266 1.462974 +v -1.012206 -0.551866 1.401978 +v -0.964825 -0.633706 1.415569 +v -0.934777 -0.683831 1.469370 +v -0.990747 -0.580326 1.362145 +v -0.943527 -0.655333 1.364934 +v -0.968317 -0.604617 1.320158 +v -0.917081 -0.700126 1.407359 +v -0.859897 -0.748141 1.307996 +v -0.840009 -0.750830 1.246527 +v -0.825967 -0.771420 1.260738 +v -0.843984 -0.771514 1.326396 +v -0.877768 -0.720499 1.287000 +v -0.855474 -0.726835 1.230727 +v -0.817671 -0.752158 1.188879 +v -0.831945 -0.730558 1.176549 +v -0.804451 -0.771399 1.200273 +v -0.793581 -0.751508 1.133558 +v -0.780019 -0.770583 1.143181 +v -0.807561 -0.731077 1.123594 +v -0.766756 -0.750191 1.080546 +v -0.781445 -0.729691 1.072142 +v -0.752015 -0.769977 1.088983 +v -0.736163 -0.749442 1.029900 +v -0.719595 -0.770329 1.037361 +v -0.752716 -0.727680 1.022510 +v -0.720384 -0.725175 0.973472 +v -0.700940 -0.748765 0.979752 +v -0.682081 -0.770737 0.986318 +v -0.659824 -0.747255 0.928457 +v -0.638495 -0.769974 0.933968 +v -0.683213 -0.722098 0.923909 +v -0.643737 -0.716867 0.875560 +v -0.615104 -0.744362 0.878733 +v -0.589954 -0.768550 0.883401 +v -0.565262 -0.695502 0.785244 +v -0.612668 -0.652990 0.784152 +v -0.581411 -0.630440 0.740806 +v -0.523716 -0.677999 0.739560 +v -0.661572 -0.604374 0.785424 +v -0.636944 -0.579855 0.745047 +v -0.613391 -0.551376 0.706414 +v -0.551614 -0.602786 0.698537 +v -0.524502 -0.569624 0.658287 +v -0.591417 -0.519051 0.669819 +v -0.571144 -0.483119 0.635606 +v -0.500427 -0.531476 0.620432 +v -0.479587 -0.488714 0.585633 +v -0.552740 -0.443857 0.604056 +v -0.461273 -0.442255 0.554054 +v -0.536140 -0.401709 0.575288 +v -0.444900 -0.393145 0.525574 +v -0.521278 -0.357109 0.549406 +v -0.430414 -0.341551 0.500712 +v -0.508157 -0.310278 0.526723 +v -0.418111 -0.287941 0.479159 +v -0.496888 -0.261519 0.507356 +v -0.407818 -0.232472 0.461634 +v -0.487648 -0.211196 0.491178 +v -0.399820 -0.175623 0.447719 +v -0.480313 -0.159527 0.478689 +v -0.394071 -0.117691 0.437702 +v -0.475103 -0.106906 0.469569 +v -0.390598 -0.059026 0.431707 +v -0.471912 -0.053613 0.464203 +v -0.389472 0.000000 0.429596 +v -0.470916 0.000000 0.462242 +v -1.157563 0.000000 1.565305 +v -1.156514 -0.048261 1.563656 +v -1.158058 0.000000 1.489264 +v -1.157152 -0.043115 1.487797 +v -1.153752 -0.096231 1.558744 +v -1.154638 -0.085965 1.483405 +v -1.149143 -0.143617 1.550581 +v -1.150366 -0.128277 1.476114 +v -1.142510 -0.190096 1.539224 +v -1.144535 -0.169807 1.465971 +v -1.134262 -0.235434 1.524741 +v -1.137244 -0.210319 1.453021 +v -1.124204 -0.279316 1.507224 +v -1.128259 -0.249518 1.437371 +v -1.112673 -0.321541 1.486767 +v -1.117888 -0.287212 1.419087 +v -1.099257 -0.361718 1.463516 +v -1.105931 -0.323108 1.398315 +v -1.084370 -0.399686 1.437596 +v -1.092700 -0.357042 1.375150 +v -1.068094 -0.435217 1.409173 +v -1.078193 -0.388789 1.349748 +v -1.050488 -0.468076 1.378413 +v -1.062353 -0.418093 1.322285 +v -1.031659 -0.498065 1.345511 +v -1.045468 -0.444845 1.292905 +v -1.011703 -0.524981 1.310665 +v -1.027671 -0.468891 1.261771 +v -0.990681 -0.548633 1.274112 +v -1.009009 -0.490067 1.229088 +v -0.968891 -0.568954 1.236031 +v -0.945257 -0.625241 1.276714 +v -0.989419 -0.508147 1.195111 +v -0.946298 -0.585734 1.196707 +v -0.969279 -0.523151 1.159974 +v -0.921124 -0.641953 1.232331 +v -0.923181 -0.598940 1.156333 +v -0.896475 -0.655126 1.187281 +v -0.948545 -0.534891 1.123948 +v -0.899469 -0.608370 1.115247 +v -0.927479 -0.543375 1.087204 +v -0.871213 -0.664423 1.141788 +v -0.875643 -0.614164 1.073553 +v -0.845595 -0.669741 1.095954 +v -0.906088 -0.548474 1.050021 +v -0.851503 -0.616073 1.031675 +v -0.884567 -0.550201 1.012601 +v -0.819656 -0.671275 1.050057 +v -0.827426 -0.614224 0.989755 +v -0.793420 -0.669209 1.004381 +v -0.863104 -0.548568 0.975140 +v -0.803418 -0.608542 0.948138 +v -0.841648 -0.543484 0.937983 +v -0.766886 -0.663628 0.958987 +v -0.779776 -0.599153 0.906984 +v -0.739998 -0.654579 0.913962 +v -0.820522 -0.535084 0.901239 +v -0.756547 -0.586058 0.866610 +v -0.799844 -0.523427 0.865130 +v -0.713087 -0.641691 0.869906 +v -0.733885 -0.569331 0.827266 +v -0.687039 -0.625048 0.826959 +v -0.779567 -0.508459 0.830026 +v -0.711895 -0.549061 0.789227 +v -0.759991 -0.490396 0.795996 +v -0.690874 -0.525478 0.752573 +v -0.741118 -0.469261 0.763366 +v -0.670768 -0.498604 0.717712 +v -0.723143 -0.445247 0.732259 +v -0.651773 -0.468644 0.684798 +v -0.706213 -0.418510 0.702832 +v -0.634001 -0.435793 0.654031 +v -0.690402 -0.389206 0.675282 +v -0.617569 -0.400246 0.625606 +v -0.675816 -0.357507 0.649778 +v -0.602591 -0.362244 0.599663 +v -0.662386 -0.323538 0.626674 +v -0.589179 -0.322019 0.576346 +v -0.650374 -0.287594 0.605899 +v -0.577330 -0.279783 0.555916 +v -0.639831 -0.249891 0.587588 +v -0.567160 -0.235817 0.538454 +v -0.630732 -0.210621 0.572005 +v -0.558810 -0.190430 0.523911 +v -0.623235 -0.170072 0.559079 +v -0.552319 -0.143877 0.512407 +v -0.617423 -0.128489 0.548847 +v -0.547505 -0.096397 0.504402 +v -0.613165 -0.086096 0.541609 +v -0.544655 -0.048346 0.499498 +v -0.610634 -0.043181 0.537204 +v -0.543759 0.000000 0.497746 +v -0.609825 0.000000 0.535668 +v -1.153821 0.000000 1.416531 +v -1.153074 -0.038008 1.415235 +v -1.145605 0.000000 1.348333 +v -1.144922 -0.033051 1.347212 +v -1.150891 -0.075785 1.411360 +v -1.142991 -0.065899 1.343846 +v -1.147113 -0.113086 1.404938 +v -1.139796 -0.098342 1.338252 +v -1.141936 -0.149692 1.395999 +v -1.135234 -0.130167 1.330492 +v -1.135454 -0.185392 1.384581 +v -1.129526 -0.161197 1.320571 +v -1.127576 -0.219952 1.370777 +v -1.122780 -0.191262 1.308543 +v -1.118355 -0.253158 1.354663 +v -1.114735 -0.220130 1.294532 +v -1.107830 -0.284800 1.336350 +v -1.105628 -0.247654 1.278595 +v -1.096119 -0.314693 1.315935 +v -1.095334 -0.273620 1.260867 +v -1.083199 -0.342629 1.293569 +v -1.084317 -0.297971 1.241365 +v -1.069355 -0.368493 1.269339 +v -1.072202 -0.320439 1.220312 +v -1.054632 -0.392128 1.243401 +v -1.059190 -0.340916 1.197816 +v -1.038829 -0.413272 1.215986 +v -1.045674 -0.359373 1.173907 +v -1.022397 -0.431935 1.187170 +v -1.031261 -0.375548 1.148890 +v -1.005139 -0.447874 1.157219 +v -1.016338 -0.389436 1.122815 +v -0.987463 -0.461127 1.126217 +v -1.000817 -0.400892 1.095918 +v -0.969098 -0.471431 1.094502 +v -0.984909 -0.409879 1.068319 +v -0.950466 -0.478872 1.062148 +v -0.968751 -0.416367 1.040168 +v -0.931635 -0.483375 1.029368 +v -0.952400 -0.420291 1.011655 +v -0.912690 -0.484906 0.996379 +v -0.935928 -0.421620 0.982973 +v -0.893740 -0.483440 0.963386 +v -0.919433 -0.420330 0.954301 +v -0.874906 -0.478999 0.930591 +v -0.903018 -0.416444 0.925815 +v -0.856326 -0.471612 0.898180 +v -0.886813 -0.409989 0.897675 +v -0.838097 -0.461325 0.866361 +v -0.870952 -0.401032 0.870025 +v -0.820161 -0.448098 0.835476 +v -0.855499 -0.389602 0.843062 +v -0.802939 -0.432190 0.805461 +v -0.840451 -0.375734 0.817029 +v -0.786314 -0.413570 0.776696 +v -0.826174 -0.359627 0.791863 +v -0.770612 -0.392477 0.749140 +v -0.812279 -0.341177 0.768134 +v -0.755572 -0.368848 0.723328 +v -0.799335 -0.320694 0.745568 +v -0.741548 -0.342975 0.699153 +v -0.787184 -0.298214 0.724507 +v -0.728658 -0.315018 0.676731 +v -0.775939 -0.273889 0.705054 +v -0.716972 -0.285148 0.656187 +v -0.765718 -0.247891 0.687269 +v -0.706356 -0.253459 0.637910 +v -0.756581 -0.220371 0.671270 +v -0.697110 -0.220245 0.621716 +v -0.748423 -0.191460 0.657329 +v -0.689053 -0.185628 0.608020 +v -0.741464 -0.161382 0.645355 +v -0.682478 -0.149899 0.596580 +v -0.735796 -0.130330 0.635351 +v -0.677370 -0.113249 0.587550 +v -0.731293 -0.098457 0.627587 +v -0.673615 -0.075885 0.581170 +v -0.728057 -0.065977 0.622005 +v -0.671372 -0.038059 0.577304 +v -0.726132 -0.033091 0.618617 +v -0.670633 0.000000 0.575995 +v -0.725510 0.000000 0.617454 +v -1.134439 0.000000 1.285890 +v -1.133790 -0.028372 1.284944 +v -1.121342 0.000000 1.229249 +v -1.120634 -0.025997 1.228206 +v -1.132099 -0.056567 1.282066 +v -1.119291 -0.052012 1.226687 +v -1.129396 -0.084416 1.277262 +v -1.117770 -0.078057 1.226384 +v -1.118432 -0.100812 1.235883 +v -1.125734 -0.111756 1.270557 +v -1.120736 -0.138377 1.262057 +v -1.111886 -0.114188 1.216220 +v -1.105807 -0.135878 1.203053 +v -1.114736 -0.164149 1.251767 +v -1.107975 -0.188949 1.239700 +v -1.099250 -0.158087 1.191018 +v -1.092202 -0.179860 1.178617 +v -1.100094 -0.212564 1.226031 +v -1.091317 -0.234870 1.210799 +v -1.084104 -0.200179 1.164505 +v -1.081804 -0.255758 1.194071 +v -1.075400 -0.220082 1.150035 +v -1.071413 -0.275049 1.176003 +v -1.066339 -0.240561 1.136631 +v -1.059467 -0.263997 1.133139 +v -1.060319 -0.292648 1.156679 +v -1.048551 -0.308424 1.136212 +v -1.051000 -0.262904 1.109992 +v -1.039815 -0.271936 1.088209 +v -1.036349 -0.322351 1.114672 +v -1.023366 -0.334209 1.092357 +v -1.028206 -0.281898 1.067056 +v -1.016141 -0.291138 1.045909 +v -1.010085 -0.344055 1.069252 +v -0.996559 -0.351815 1.045500 +v -1.003527 -0.297986 1.024180 +v -0.982781 -0.357421 1.021287 +v -0.990553 -0.304155 1.002379 +v -0.968655 -0.360761 0.996861 +v -0.977068 -0.311258 0.981183 +v -0.963985 -0.326445 0.966788 +v -0.954470 -0.361887 0.972277 +v -0.940340 -0.360781 0.947660 +v -0.958098 -0.311266 0.948242 +v -0.946644 -0.304211 0.925867 +v -0.926315 -0.357459 0.923171 +v -0.912424 -0.351919 0.899002 +v -0.934287 -0.298048 0.903702 +v -0.921808 -0.291204 0.881886 +v -0.898698 -0.344182 0.875345 +v -0.885373 -0.334345 0.852247 +v -0.909720 -0.282020 0.860716 +v -0.872576 -0.322493 0.829805 +v -0.897225 -0.272058 0.840058 +v -0.860188 -0.308619 0.808318 +v -0.883974 -0.263028 0.819451 +v -0.868308 -0.264165 0.800409 +v -0.848373 -0.292842 0.787856 +v -0.837191 -0.275230 0.768569 +v -0.868641 -0.240692 0.792778 +v -0.861682 -0.220231 0.778123 +v -0.826885 -0.255969 0.750390 +v -0.817135 -0.235054 0.733790 +v -0.853544 -0.200322 0.763303 +v -0.845412 -0.179993 0.749184 +v -0.808455 -0.212761 0.718436 +v -0.800506 -0.189110 0.704813 +v -0.838296 -0.158221 0.736773 +v -0.793527 -0.164307 0.692811 +v -0.831084 -0.135982 0.725125 +v -0.787693 -0.138524 0.682370 +v -0.822817 -0.114291 0.713161 +v -0.809044 -0.100902 0.697658 +v -0.782735 -0.111865 0.673881 +v -0.778812 -0.084506 0.667295 +v -0.817024 -0.078139 0.702904 +v -0.817520 -0.052067 0.701447 +v -0.776043 -0.056631 0.662510 +v -0.774420 -0.028405 0.659580 +v -0.816853 -0.026024 0.699551 +v -0.816287 0.000000 0.698435 +v -0.773933 0.000000 0.658534 +v 0.568201 0.000000 2.523643 +v 0.569101 -0.045738 2.522084 +v 0.574139 -0.044961 2.513591 +v 0.573255 0.000000 2.515123 +v 0.571800 -0.091195 2.517434 +v 0.576785 -0.089645 2.509013 +v 0.576264 -0.136089 2.509696 +v 0.581173 -0.133776 2.501407 +v 0.582466 -0.180145 2.498934 +v 0.587272 -0.177083 2.490829 +v 0.590382 -0.223088 2.485207 +v 0.595054 -0.219297 2.477336 +v 0.599955 -0.264658 2.468609 +v 0.604466 -0.260161 2.461021 +v 0.611136 -0.304594 2.449235 +v 0.615455 -0.299418 2.441975 +v 0.623841 -0.342655 2.427209 +v 0.627944 -0.336832 2.420323 +v 0.638000 -0.378600 2.402659 +v 0.641864 -0.372167 2.396191 +v 0.653535 -0.412215 2.375753 +v 0.657130 -0.405209 2.369738 +v 0.670326 -0.443284 2.346632 +v 0.673641 -0.435750 2.341116 +v 0.688279 -0.471624 2.315491 +v 0.691293 -0.463610 2.310507 +v 0.707297 -0.497052 2.282522 +v 0.709987 -0.488606 2.278098 +v 0.727251 -0.519421 2.247928 +v 0.729601 -0.510595 2.244092 +v 0.748022 -0.538581 2.211919 +v 0.750020 -0.529429 2.208696 +v 0.769480 -0.554426 2.174721 +v 0.771114 -0.545005 2.172130 +v 0.791494 -0.566848 2.136559 +v 0.792754 -0.557216 2.134616 +v 0.813928 -0.575781 2.097673 +v 0.814805 -0.565997 2.096390 +v 0.836646 -0.581159 2.058300 +v 0.837133 -0.571283 2.057685 +v 0.859502 -0.582959 2.018683 +v 0.859600 -0.573052 2.018739 +v 0.882362 -0.581159 1.979067 +v 0.882065 -0.571283 1.979793 +v 0.905112 -0.575784 1.939712 +v 0.904396 -0.565996 1.941089 +v 0.927550 -0.566851 1.900828 +v 0.926448 -0.557215 1.902863 +v 0.949515 -0.554426 1.862639 +v 0.948083 -0.545005 1.865347 +v 0.970968 -0.538580 1.825438 +v 0.969177 -0.529429 1.828781 +v 0.991742 -0.519421 1.789431 +v 0.989598 -0.510593 1.793386 +v 1.011696 -0.497052 1.754837 +v 1.009214 -0.488605 1.759381 +v 1.030713 -0.471624 1.721868 +v 1.027908 -0.463609 1.726972 +v 1.048673 -0.443283 1.690731 +v 1.045563 -0.435751 1.696364 +v 1.065470 -0.412214 1.661614 +v 1.062075 -0.405209 1.667742 +v 1.080995 -0.378600 1.634702 +v 1.077336 -0.372166 1.641287 +v 1.095156 -0.342655 1.610153 +v 1.091256 -0.336832 1.617155 +v 1.107861 -0.304594 1.588127 +v 1.103745 -0.299418 1.595503 +v 1.119038 -0.264658 1.568751 +v 1.114733 -0.260160 1.576456 +v 1.128613 -0.223087 1.552154 +v 1.124144 -0.219297 1.560141 +v 1.136530 -0.180144 1.538428 +v 1.131927 -0.177083 1.546648 +v 1.142737 -0.136088 1.527668 +v 1.138028 -0.133776 1.536071 +v 1.147200 -0.091194 1.519930 +v 1.142416 -0.089645 1.528465 +v 1.149887 -0.045738 1.515272 +v 1.145057 -0.044961 1.523886 +v 1.150787 0.000000 1.513713 +v 1.145942 0.000000 1.522353 +v 0.574722 0.000000 2.507682 +v 0.575595 -0.044398 2.506169 +v 0.573936 -0.043703 2.495015 +v 0.573077 0.000000 2.496505 +v 0.578203 -0.088522 2.501647 +v 0.576503 -0.087136 2.490564 +v 0.582536 -0.132100 2.494137 +v 0.580768 -0.130032 2.483171 +v 0.588561 -0.174865 2.483692 +v 0.586699 -0.172127 2.472890 +v 0.596247 -0.216550 2.470368 +v 0.594265 -0.213159 2.459775 +v 0.605540 -0.256902 2.454257 +v 0.603413 -0.252880 2.443916 +v 0.616390 -0.295668 2.435449 +v 0.614093 -0.291038 2.425403 +v 0.628724 -0.332613 2.414069 +v 0.626233 -0.327405 2.404357 +v 0.642470 -0.367505 2.390239 +v 0.639764 -0.361751 2.380900 +v 0.657539 -0.400134 2.364116 +v 0.654598 -0.393869 2.355186 +v 0.673844 -0.430293 2.335852 +v 0.670647 -0.423556 2.327364 +v 0.691278 -0.457803 2.305628 +v 0.687808 -0.450635 2.297614 +v 0.709739 -0.482486 2.273625 +v 0.705980 -0.474931 2.266113 +v 0.729110 -0.504198 2.240046 +v 0.725047 -0.496304 2.233059 +v 0.749273 -0.522798 2.205093 +v 0.744895 -0.514612 2.198653 +v 0.770102 -0.538179 2.168985 +v 0.765398 -0.529752 2.163110 +v 0.791471 -0.550237 2.131942 +v 0.786432 -0.541622 2.126647 +v 0.813246 -0.558907 2.094194 +v 0.807866 -0.550156 2.089491 +v 0.835294 -0.564127 2.055973 +v 0.829569 -0.555294 2.051868 +v 0.857479 -0.565874 2.017515 +v 0.851407 -0.557014 2.014012 +v 0.879663 -0.564127 1.979057 +v 0.873244 -0.555294 1.976157 +v 0.901711 -0.558907 1.940836 +v 0.894946 -0.550156 1.938534 +v 0.923486 -0.550236 1.903089 +v 0.916380 -0.541622 1.901377 +v 0.944855 -0.538179 1.866045 +v 0.937414 -0.529752 1.864914 +v 0.965684 -0.522798 1.829937 +v 0.957917 -0.514612 1.829371 +v 0.985847 -0.504198 1.794984 +v 0.977765 -0.496304 1.794965 +v 1.005217 -0.482485 1.761405 +v 0.996832 -0.474931 1.761912 +v 1.023678 -0.457802 1.729402 +v 1.015004 -0.450634 1.730411 +v 1.041113 -0.430293 1.699179 +v 1.032165 -0.423555 1.700660 +v 1.057417 -0.400134 1.670915 +v 1.048214 -0.393869 1.672839 +v 1.072487 -0.367505 1.644791 +v 1.063048 -0.361750 1.647124 +v 1.086233 -0.332613 1.620962 +v 1.076579 -0.327405 1.623668 +v 1.098567 -0.295667 1.599581 +v 1.088719 -0.291038 1.602622 +v 1.109416 -0.256902 1.580773 +v 1.099399 -0.252879 1.584109 +v 1.118710 -0.216550 1.564662 +v 1.108547 -0.213159 1.568250 +v 1.126396 -0.174865 1.551339 +v 1.116113 -0.172127 1.555135 +v 1.132421 -0.132100 1.540894 +v 1.122044 -0.130031 1.544854 +v 1.136753 -0.088522 1.533383 +v 1.126308 -0.087136 1.537461 +v 1.139362 -0.044398 1.528862 +v 1.128876 -0.043702 1.533010 +v 1.140235 0.000000 1.527348 +v 1.129735 0.000000 1.531521 +v 0.496009 0.000000 2.566193 +v 0.496955 -0.051454 2.564307 +v 0.499994 -0.102594 2.559100 +v 0.505022 -0.153101 2.550408 +v 0.512045 -0.202679 2.538377 +v 0.521023 -0.251026 2.523063 +v 0.531810 -0.297810 2.504411 +v 0.544406 -0.342759 2.482641 +v 0.558819 -0.385664 2.458039 +v 0.574877 -0.426204 2.430590 +v 0.592392 -0.464074 2.400350 +v 0.611372 -0.499106 2.367664 +v 0.631686 -0.531087 2.332720 +v 0.653174 -0.559780 2.295677 +v 0.675681 -0.584997 2.256754 +v 0.699166 -0.606651 2.216287 +v 0.723441 -0.624582 2.174480 +v 0.748280 -0.638605 2.131520 +v 0.773700 -0.648780 2.087816 +v 0.799348 -0.654878 2.043483 +v 0.825159 -0.656948 1.998872 +v 0.851059 -0.655021 1.954296 +v 0.876638 -0.648948 1.909906 +v 0.901896 -0.638867 1.866067 +v 0.926877 -0.624976 1.823112 +v 0.950947 -0.607047 1.781146 +v 0.974494 -0.585530 1.740590 +v 0.997006 -0.560327 1.701597 +v 1.018381 -0.531631 1.664420 +v 1.038630 -0.499688 1.629322 +v 1.057580 -0.464673 1.596501 +v 1.075101 -0.426789 1.566164 +v 1.090957 -0.386232 1.538488 +v 1.105262 -0.343326 1.513660 +v 1.117864 -0.298312 1.491821 +v 1.128690 -0.251463 1.473112 +v 1.137504 -0.203038 1.457645 +v 1.144592 -0.153395 1.445512 +v 1.149545 -0.102786 1.436795 +v 1.152493 -0.051548 1.431550 +v 1.153638 0.000000 1.429785 +v 0.568794 0.000000 2.476774 +v 0.569630 -0.042530 2.475324 +v 0.564094 -0.041072 2.450749 +v 0.563286 0.000000 2.452149 +v 0.572129 -0.084797 2.470993 +v 0.566507 -0.081891 2.446566 +v 0.576279 -0.126542 2.463798 +v 0.570515 -0.122205 2.439618 +v 0.582051 -0.167507 2.453793 +v 0.576089 -0.161766 2.429955 +v 0.589413 -0.207438 2.441030 +v 0.583199 -0.200328 2.417630 +v 0.598316 -0.246092 2.425597 +v 0.591797 -0.237658 2.402726 +v 0.608709 -0.283226 2.407580 +v 0.601833 -0.273519 2.385327 +v 0.620524 -0.318617 2.387099 +v 0.613243 -0.307697 2.365548 +v 0.633691 -0.352041 2.364273 +v 0.625959 -0.339975 2.343503 +v 0.648127 -0.383297 2.339248 +v 0.639900 -0.370160 2.319337 +v 0.663745 -0.412187 2.312174 +v 0.654983 -0.398060 2.293190 +v 0.680446 -0.438539 2.283222 +v 0.671112 -0.423509 2.265231 +v 0.698130 -0.462183 2.252566 +v 0.688190 -0.446343 2.235625 +v 0.716686 -0.482983 2.220400 +v 0.706109 -0.466429 2.204561 +v 0.736000 -0.500800 2.186917 +v 0.724762 -0.483636 2.172227 +v 0.755953 -0.515534 2.152328 +v 0.744031 -0.497865 2.138823 +v 0.776423 -0.527084 2.116844 +v 0.763799 -0.509019 2.104555 +v 0.797281 -0.535389 2.080685 +v 0.783943 -0.517041 2.069635 +v 0.818402 -0.540389 2.044072 +v 0.804339 -0.521869 2.034277 +v 0.839653 -0.542063 2.007232 +v 0.824861 -0.523485 1.998700 +v 0.860904 -0.540389 1.970393 +v 0.845384 -0.521869 1.963123 +v 0.882024 -0.535389 1.933780 +v 0.865781 -0.517041 1.927765 +v 0.902883 -0.527084 1.897620 +v 0.885925 -0.509019 1.892845 +v 0.923352 -0.515532 1.862136 +v 0.905693 -0.497864 1.858576 +v 0.943305 -0.500799 1.827547 +v 0.924961 -0.483635 1.825173 +v 0.962620 -0.482982 1.794065 +v 0.943614 -0.466429 1.792839 +v 0.981175 -0.462183 1.761899 +v 0.961534 -0.446343 1.761775 +v 0.998859 -0.438539 1.731243 +v 0.978612 -0.423509 1.732169 +v 1.015560 -0.412186 1.702291 +v 0.994740 -0.398060 1.704210 +v 1.031178 -0.383297 1.675216 +v 1.009823 -0.370160 1.678063 +v 1.045614 -0.352040 1.650192 +v 1.023764 -0.339975 1.653897 +v 1.058782 -0.318617 1.627365 +v 1.036480 -0.307697 1.631853 +v 1.070596 -0.283226 1.606884 +v 1.047890 -0.273519 1.612074 +v 1.080989 -0.246092 1.588868 +v 1.057927 -0.237657 1.594675 +v 1.089892 -0.207438 1.573435 +v 1.066525 -0.200328 1.579770 +v 1.097254 -0.167507 1.560672 +v 1.073634 -0.161766 1.567445 +v 1.103026 -0.126541 1.550667 +v 1.079208 -0.122204 1.557782 +v 1.107176 -0.084797 1.543472 +v 1.083216 -0.081891 1.550834 +v 1.109675 -0.042529 1.539141 +v 1.085629 -0.041072 1.546652 +v 1.110511 0.000000 1.537691 +v 1.086437 0.000000 1.545252 +v 0.557967 0.000000 2.426289 +v 0.558744 -0.039523 2.424942 +v 0.561066 -0.078803 2.420917 +v 0.564923 -0.117596 2.414230 +v 0.570286 -0.155665 2.404932 +v 0.577128 -0.192774 2.393072 +v 0.585401 -0.228695 2.378730 +v 0.595060 -0.263204 2.361987 +v 0.606039 -0.296093 2.342954 +v 0.618276 -0.327154 2.321741 +v 0.631691 -0.356201 2.298485 +v 0.646205 -0.383048 2.273325 +v 0.661726 -0.407537 2.246420 +v 0.678160 -0.429510 2.217931 +v 0.695403 -0.448839 2.188038 +v 0.713353 -0.465396 2.156923 +v 0.731895 -0.479089 2.124780 +v 0.750917 -0.489823 2.091804 +v 0.770301 -0.497542 2.058201 +v 0.789929 -0.502187 2.024176 +v 0.809677 -0.503744 1.989941 +v 0.829427 -0.502187 1.955705 +v 0.849054 -0.497542 1.921681 +v 0.868438 -0.489823 1.888078 +v 0.887460 -0.479089 1.855102 +v 0.906002 -0.465396 1.822958 +v 0.923951 -0.448839 1.791843 +v 0.941195 -0.429510 1.761951 +v 0.957629 -0.407537 1.733462 +v 0.973149 -0.383048 1.706557 +v 0.987663 -0.356200 1.681396 +v 1.001078 -0.327154 1.658141 +v 1.013315 -0.296093 1.636928 +v 1.024295 -0.263204 1.617895 +v 1.033953 -0.228695 1.601152 +v 1.042226 -0.192773 1.586810 +v 1.049068 -0.155665 1.574949 +v 1.054432 -0.117596 1.565651 +v 1.058289 -0.078802 1.558965 +v 1.060610 -0.039523 1.554940 +v 1.061388 0.000000 1.553593 +v 0.543511 -0.035239 2.353316 +v 0.542818 0.000000 2.354517 +v 0.545581 -0.070262 2.349727 +v 0.539223 -0.035176 2.349918 +v 0.541290 -0.070136 2.346336 +v 0.538532 0.000000 2.351117 +v 0.549020 -0.104850 2.343766 +v 0.553803 -0.138793 2.335476 +v 0.544723 -0.104663 2.340385 +v 0.549496 -0.138545 2.332110 +v 0.559903 -0.171879 2.324901 +v 0.567279 -0.203907 2.312113 +v 0.555586 -0.171572 2.321553 +v 0.562949 -0.203542 2.308789 +v 0.575891 -0.234676 2.297185 +v 0.585680 -0.264000 2.280215 +v 0.571545 -0.234256 2.293887 +v 0.581317 -0.263528 2.276947 +v 0.596591 -0.291694 2.261301 +v 0.608552 -0.317593 2.240566 +v 0.592208 -0.291173 2.258068 +v 0.604148 -0.317025 2.237370 +v 0.621493 -0.341530 2.218133 +v 0.635331 -0.363365 2.194144 +v 0.617066 -0.340919 2.214977 +v 0.630879 -0.362715 2.191031 +v 0.649984 -0.382956 2.168743 +v 0.665358 -0.400190 2.142091 +v 0.645506 -0.382272 2.165675 +v 0.660853 -0.399475 2.139070 +v 0.681362 -0.414953 2.114348 +v 0.697895 -0.427161 2.085688 +v 0.676828 -0.414211 2.111377 +v 0.693331 -0.426397 2.082769 +v 0.714855 -0.436732 2.056286 +v 0.732139 -0.443614 2.026325 +v 0.710261 -0.435951 2.053420 +v 0.727513 -0.442821 2.023512 +v 0.749639 -0.447757 1.995989 +v 0.767247 -0.449144 1.965464 +v 0.744982 -0.446957 1.993230 +v 0.762559 -0.448341 1.962760 +v 0.784855 -0.447757 1.934939 +v 0.802355 -0.443614 1.904603 +v 0.780136 -0.446956 1.932290 +v 0.797605 -0.442821 1.902007 +v 0.819637 -0.436732 1.874642 +v 0.836598 -0.427161 1.845240 +v 0.814857 -0.435951 1.872100 +v 0.831787 -0.426397 1.842751 +v 0.853132 -0.414953 1.816581 +v 0.869134 -0.400190 1.788838 +v 0.848289 -0.414211 1.814143 +v 0.864264 -0.399474 1.786449 +v 0.884509 -0.382956 1.762185 +v 0.899162 -0.363365 1.736784 +v 0.879611 -0.382271 1.759844 +v 0.894238 -0.362715 1.734489 +v 0.913000 -0.341530 1.712796 +v 0.925941 -0.317592 1.690362 +v 0.908051 -0.340919 1.710543 +v 0.920969 -0.317024 1.688150 +v 0.937902 -0.291694 1.669627 +v 0.948812 -0.264000 1.650714 +v 0.932909 -0.291172 1.667452 +v 0.943800 -0.263528 1.648572 +v 0.958602 -0.234676 1.633744 +v 0.967213 -0.203907 1.618815 +v 0.953572 -0.234256 1.631632 +v 0.962168 -0.203542 1.616731 +v 0.974590 -0.171879 1.606028 +v 0.980690 -0.138793 1.595453 +v 0.969531 -0.171571 1.603966 +v 0.975620 -0.138545 1.593410 +v 0.985472 -0.104850 1.587163 +v 0.988911 -0.070261 1.581201 +v 0.980394 -0.104662 1.585135 +v 0.983827 -0.070136 1.579184 +v 0.990981 -0.035239 1.577612 +v 0.991674 0.000000 1.576411 +v 0.985893 -0.035176 1.575602 +v 0.986585 0.000000 1.574403 +v 0.532957 -0.035322 2.348435 +v 0.532262 0.000000 2.349639 +v 0.535032 -0.070426 2.344838 +v 0.525799 -0.035607 2.348493 +v 0.527890 -0.070995 2.344867 +v 0.525098 0.000000 2.349707 +v 0.538479 -0.105095 2.338863 +v 0.543273 -0.139117 2.330553 +v 0.531365 -0.105944 2.338843 +v 0.536198 -0.140241 2.330466 +v 0.549387 -0.172281 2.319953 +v 0.556781 -0.204383 2.307136 +v 0.542361 -0.173673 2.319781 +v 0.549815 -0.206035 2.306860 +v 0.565412 -0.235224 2.292173 +v 0.575225 -0.264617 2.275163 +v 0.558516 -0.237125 2.291776 +v 0.568408 -0.266755 2.274628 +v 0.586161 -0.292375 2.256205 +v 0.598150 -0.318334 2.235422 +v 0.579432 -0.294738 2.255517 +v 0.591518 -0.320907 2.234566 +v 0.611121 -0.342328 2.212936 +v 0.624991 -0.364214 2.188891 +v 0.604594 -0.345094 2.211899 +v 0.618577 -0.367157 2.187659 +v 0.639678 -0.383851 2.163431 +v 0.655089 -0.401125 2.136716 +v 0.633382 -0.386953 2.161994 +v 0.648918 -0.404366 2.135063 +v 0.671130 -0.415922 2.108909 +v 0.687701 -0.428159 2.080182 +v 0.665088 -0.419283 2.107030 +v 0.681793 -0.431619 2.078072 +v 0.704701 -0.437752 2.050712 +v 0.722025 -0.444650 2.020681 +v 0.698931 -0.441289 2.048363 +v 0.716395 -0.448243 2.018090 +v 0.739566 -0.448803 1.990273 +v 0.757215 -0.450193 1.959677 +v 0.734077 -0.452430 1.987437 +v 0.751869 -0.453831 1.956593 +v 0.774865 -0.448803 1.929081 +v 0.792406 -0.444650 1.898674 +v 0.769661 -0.452430 1.925750 +v 0.787344 -0.448243 1.895097 +v 0.809729 -0.437752 1.868643 +v 0.826728 -0.428159 1.839172 +v 0.804807 -0.441289 1.864823 +v 0.821945 -0.431619 1.835115 +v 0.843301 -0.415922 1.810446 +v 0.859341 -0.401125 1.782638 +v 0.838649 -0.419283 1.806156 +v 0.854820 -0.404366 1.778124 +v 0.874751 -0.383850 1.755924 +v 0.889438 -0.364213 1.730464 +v 0.870355 -0.386952 1.751193 +v 0.885161 -0.367157 1.725527 +v 0.903309 -0.342327 1.706419 +v 0.916280 -0.318334 1.683933 +v 0.899143 -0.345094 1.701288 +v 0.912219 -0.320907 1.678620 +v 0.928269 -0.292375 1.663150 +v 0.939205 -0.264616 1.644192 +v 0.924305 -0.294738 1.657669 +v 0.935330 -0.266755 1.638558 +v 0.949017 -0.235224 1.627182 +v 0.957649 -0.204383 1.612219 +v 0.945221 -0.237125 1.621411 +v 0.953922 -0.206035 1.606327 +v 0.965042 -0.172280 1.599402 +v 0.971157 -0.139117 1.588802 +v 0.961376 -0.173672 1.593406 +v 0.967540 -0.140241 1.582721 +v 0.975950 -0.105095 1.580492 +v 0.979397 -0.070425 1.574517 +v 0.972372 -0.105944 1.574344 +v 0.975847 -0.070994 1.568320 +v 0.981472 -0.035321 1.570920 +v 0.982167 0.000000 1.569716 +v 0.977939 -0.035607 1.564694 +v 0.978639 0.000000 1.563480 +v -0.684568 -0.807398 1.993166 +v -0.692944 -0.792750 2.006595 +v -0.744006 -0.792719 1.923733 +v -0.734789 -0.807638 1.909248 +v -0.703362 -0.772159 2.024493 +v -0.755724 -0.770858 1.943797 +v -0.799479 -0.769205 1.857202 +v -0.785120 -0.792479 1.836692 +v -0.774343 -0.807522 1.823405 +v -0.815251 -0.791526 1.751670 +v -0.800966 -0.807423 1.743279 +v -0.834567 -0.765640 1.769054 +v -0.834864 -0.791190 1.667818 +v -0.817748 -0.807666 1.666610 +v -0.844186 -0.792448 1.584133 +v -0.827472 -0.807959 1.591110 +v -0.868749 -0.766749 1.564006 +v -0.845185 -0.793802 1.501327 +v -0.865449 -0.770564 1.478887 +v -0.830177 -0.808302 1.514554 +v -0.839799 -0.793708 1.420161 +v -0.825744 -0.808367 1.434674 +v -0.857130 -0.771649 1.399386 +v -0.828351 -0.792795 1.343786 +v -0.814841 -0.807906 1.356958 +v -0.811469 -0.792101 1.275231 +v -0.798510 -0.807454 1.286849 +v -0.790059 -0.791719 1.212575 +v -0.777115 -0.807258 1.222828 +v -0.648702 -0.807481 1.000089 +v -0.663670 -0.791836 0.993483 +v -0.619005 -0.791686 0.941438 +v -0.603686 -0.807638 0.948968 +v -0.567790 -0.791323 0.891134 +v -0.550991 -0.808035 0.899343 +v -0.569374 -0.739976 0.832874 +v -0.537695 -0.767316 0.837342 +v -0.604809 -0.708200 0.829967 +v -0.519552 -0.733233 0.788037 +v -0.478481 -0.765591 0.792954 +v -0.462634 -0.723257 0.741470 +v -0.408885 -0.761988 0.748249 +v -0.194222 -0.731111 0.642115 +v -0.210568 -0.766792 0.676736 +v -0.099307 -0.743853 0.636984 +v -0.114573 -0.773865 0.664944 +v -0.003887 -0.751647 0.638070 +v -0.017290 -0.778088 0.661650 +v 0.090712 -0.755329 0.646006 +v 0.079287 -0.779240 0.666431 +v 0.069288 -0.798153 0.684120 +v 0.164233 -0.796173 0.695335 +v 0.157161 -0.809907 0.708717 +v 0.062172 -0.811009 0.697687 +v 0.173534 -0.777153 0.678859 +v 0.255245 -0.794169 0.716543 +v 0.264250 -0.774857 0.700549 +v 0.247882 -0.808907 0.730302 +v 0.561949 -0.808676 0.911746 +v 0.569728 -0.794352 0.898992 +v 0.634936 -0.793860 0.965000 +v 0.626320 -0.808826 0.978896 +v 0.578739 -0.775667 0.883722 +v 0.644798 -0.774091 0.948213 +v 0.704542 -0.772147 1.020333 +v 0.693404 -0.793449 1.039429 +v 0.683733 -0.809194 1.054933 +v 0.715393 -0.749522 1.001781 +v 0.769212 -0.746056 1.079893 +v 0.756696 -0.771201 1.101643 +v 0.816943 -0.739942 1.163139 +v 0.801083 -0.768874 1.189187 +v 0.858912 -0.728481 1.249168 +v 0.837612 -0.763621 1.280023 +v 0.900910 -0.728164 1.524812 +v 0.870689 -0.763545 1.485650 +v 0.888188 -0.739849 1.597785 +v 0.865174 -0.769010 1.567795 +v 0.468436 -0.770322 2.249118 +v 0.506201 -0.740738 2.253557 +v 0.447328 -0.729052 2.301731 +v 0.396895 -0.764670 2.295829 +v 0.186908 -0.724306 2.405155 +v 0.201737 -0.762076 2.369936 +v 0.092710 -0.733250 2.412798 +v 0.107751 -0.766710 2.383290 +v 0.686633 -0.806087 1.992605 +v 0.680166 -0.812165 1.989001 +v 0.714132 -0.812129 1.934731 +v 0.720467 -0.806297 1.938452 +v 0.647673 -0.806045 2.044750 +v 0.640893 -0.812168 2.041158 +v 0.675229 -0.811534 1.985558 +v 0.636195 -0.811540 2.037347 +v 0.708985 -0.811474 1.931686 +v 0.776169 -0.806355 1.822258 +v 0.750432 -0.806247 1.882041 +v 0.744190 -0.812114 1.878146 +v 0.769816 -0.812093 1.818087 +v 0.738859 -0.811448 1.875469 +v 0.764321 -0.811412 1.815779 +v -0.247549 -0.807495 2.314622 +v -0.333174 -0.807840 2.282338 +v -0.329575 -0.812172 2.275675 +v -0.244120 -0.812174 2.307597 +v -0.414232 -0.808115 2.241036 +v -0.410372 -0.812165 2.234588 +v -0.326858 -0.811554 2.270109 +v -0.407123 -0.811554 2.229323 +v -0.241954 -0.811549 2.301794 +v 0.490915 -0.809035 0.854011 +v 0.486083 -0.812164 0.861685 +v 0.409757 -0.812148 0.812866 +v 0.414338 -0.809346 0.804688 +v 0.556830 -0.812160 0.919093 +v 0.482665 -0.811529 0.866739 +v 0.552924 -0.811526 0.923791 +v 0.406875 -0.811503 0.818226 +v -0.490528 -0.808189 2.191498 +v -0.486337 -0.812194 2.185277 +v -0.561450 -0.807986 2.133734 +v -0.556848 -0.812214 2.127599 +v -0.482526 -0.811583 2.180365 +v -0.552514 -0.811617 2.123079 +v 0.333444 -0.809005 0.762867 +v 0.329353 -0.812174 0.771254 +v 0.244276 -0.812184 0.738825 +v 0.327054 -0.811549 0.776934 +v 0.242574 -0.811565 0.744770 +v -0.750958 -0.807453 1.163354 +v -0.742737 -0.812197 1.168193 +v -0.769182 -0.812206 1.227686 +v -0.720731 -0.807674 1.107078 +v -0.712235 -0.812189 1.111945 +v -0.737010 -0.811586 1.170908 +v -0.706741 -0.811550 1.115056 +v -0.763253 -0.811604 1.230013 +v -0.687185 -0.807617 1.052705 +v -0.678816 -0.812253 1.057368 +v -0.640527 -0.812220 1.004692 +v -0.673531 -0.811621 1.060884 +v -0.635481 -0.811608 1.008565 +v -0.626459 -0.807616 2.067807 +v -0.621281 -0.812159 2.061408 +v -0.678767 -0.812087 1.986441 +v -0.616536 -0.811524 2.057316 +v -0.673675 -0.811401 1.982832 +v -0.728437 -0.812053 1.902432 +v -0.767347 -0.812019 1.817397 +v -0.723017 -0.811343 1.899379 +v -0.761641 -0.811284 1.814977 +v -0.792551 -0.811945 1.739350 +v -0.808063 -0.811888 1.665581 +v -0.786632 -0.811159 1.737645 +v -0.801998 -0.811061 1.664628 +v -0.817900 -0.811932 1.593374 +v -0.821161 -0.811948 1.519401 +v -0.814988 -0.811163 1.519887 +v -0.811743 -0.811122 1.593169 +v -0.816978 -0.811983 1.440333 +v -0.806386 -0.812035 1.362442 +v -0.800281 -0.811312 1.363989 +v -0.810824 -0.811223 1.441398 +v -0.790426 -0.812131 1.291997 +v -0.784384 -0.811476 1.293951 +v -0.595447 -0.812132 0.954127 +v -0.542258 -0.812032 0.905092 +v -0.590676 -0.811472 0.958289 +v -0.537814 -0.811306 0.909518 +v -0.489432 -0.808464 0.851298 +v -0.479640 -0.811978 0.857004 +v -0.422834 -0.808478 0.808055 +v -0.412751 -0.811940 0.814022 +v -0.475595 -0.811214 0.861717 +v -0.409200 -0.811150 0.819041 +v -0.355253 -0.808361 0.772563 +v -0.346750 -0.811892 0.780304 +v -0.285310 -0.808557 0.743865 +v -0.279710 -0.811873 0.753516 +v -0.343811 -0.811066 0.785644 +v -0.277458 -0.811032 0.759156 +v -0.211569 -0.809183 0.721152 +v -0.209709 -0.811925 0.731322 +v -0.129910 -0.810333 0.705103 +v -0.131199 -0.811990 0.715204 +v -0.208173 -0.811121 0.737207 +v -0.130382 -0.811232 0.721259 +v -0.036097 -0.811266 0.696783 +v -0.038638 -0.812012 0.706644 +v 0.059298 -0.812032 0.706983 +v -0.038513 -0.811268 0.712778 +v 0.058771 -0.811305 0.713118 +v 0.153931 -0.812113 0.717555 +v 0.152806 -0.811444 0.723640 +v 0.620501 -0.812094 0.986467 +v 0.677073 -0.812020 1.062809 +v 0.616147 -0.811414 0.990700 +v 0.672321 -0.811287 1.066504 +v 0.733719 -0.809232 1.139323 +v 0.726526 -0.811997 1.147124 +v 0.773262 -0.808505 1.224984 +v 0.765507 -0.811976 1.231593 +v 0.721430 -0.811249 1.150237 +v 0.760130 -0.811212 1.234067 +v 0.799915 -0.807796 1.304614 +v 0.790659 -0.811909 1.308397 +v 0.816828 -0.807510 1.380629 +v 0.806356 -0.811854 1.380916 +v 0.785071 -0.811098 1.310165 +v 0.800622 -0.811004 1.381942 +v 0.826833 -0.807448 1.455461 +v 0.816970 -0.811884 1.452524 +v 0.829641 -0.807631 1.531317 +v 0.820976 -0.811931 1.526229 +v 0.815122 -0.811143 1.525833 +v 0.811147 -0.811057 1.452813 +v 0.824839 -0.807829 1.610478 +v 0.816853 -0.811954 1.605034 +v 0.813546 -0.807511 1.687743 +v 0.806167 -0.811986 1.682802 +v 0.800408 -0.811229 1.681333 +v 0.811023 -0.811176 1.604060 +v 0.797245 -0.806861 1.757915 +v 0.790481 -0.812042 1.753396 +v 0.784839 -0.811324 1.751486 +v 0.602265 -0.806517 2.095142 +v 0.594914 -0.812089 2.091409 +v 0.549468 -0.807203 2.144359 +v 0.541473 -0.812001 2.140371 +v 0.590486 -0.811404 2.087313 +v 0.537365 -0.811252 2.136016 +v 0.488281 -0.807490 2.192831 +v 0.479811 -0.811951 2.188659 +v 0.422344 -0.807228 2.236606 +v 0.414297 -0.811922 2.231685 +v 0.476098 -0.811168 2.184020 +v 0.411071 -0.811120 2.226741 +v 0.355431 -0.806953 2.272055 +v 0.349295 -0.811875 2.264858 +v 0.284824 -0.806862 2.301239 +v 0.281417 -0.811865 2.291893 +v 0.346672 -0.811039 2.259600 +v 0.279476 -0.811017 2.286336 +v 0.207803 -0.806629 2.325926 +v 0.207276 -0.811928 2.316501 +v 0.123578 -0.806576 2.343586 +v 0.125323 -0.812008 2.334832 +v 0.124833 -0.811267 2.328841 +v 0.206060 -0.811129 2.310689 +v 0.031205 -0.806988 2.351707 +v 0.034008 -0.812031 2.343036 +v -0.064229 -0.807189 2.349647 +v -0.061036 -0.812048 2.341201 +v -0.060166 -0.811335 2.335156 +v 0.034208 -0.811305 2.336975 +v -0.157537 -0.807371 2.337194 +v -0.154176 -0.812115 2.329413 +v -0.152638 -0.811449 2.323452 +v 0.629921 -0.808635 2.032200 +v 0.668560 -0.808630 1.980929 +v 0.624459 -0.804089 2.027688 +v 0.662720 -0.804086 1.976886 +v 0.701971 -0.808567 1.927597 +v 0.695801 -0.804035 1.924033 +v 0.731544 -0.808539 1.871940 +v 0.725085 -0.804013 1.868900 +v 0.756751 -0.808501 1.812843 +v 0.750051 -0.803982 1.810372 +v -0.402770 -0.808619 2.222228 +v -0.323307 -0.808638 2.262603 +v -0.398968 -0.804075 2.216008 +v -0.320256 -0.804091 2.256024 +v -0.239252 -0.808642 2.293970 +v -0.237000 -0.804094 2.287114 +v 0.547529 -0.808620 0.929995 +v 0.477974 -0.808618 0.873517 +v 0.542737 -0.804077 0.935359 +v 0.473823 -0.804076 0.879428 +v 0.402944 -0.808593 0.825491 +v 0.399483 -0.804056 0.831865 +v -0.546692 -0.808714 2.117060 +v -0.477411 -0.808680 2.173766 +v -0.541600 -0.804152 2.111824 +v -0.472940 -0.804124 2.167996 +v 0.323935 -0.808645 0.784613 +v 0.321196 -0.804097 0.791344 +v 0.238347 -0.804110 0.759771 +v 0.240311 -0.808661 0.752771 +v -0.699346 -0.808634 1.119283 +v -0.729311 -0.808683 1.174570 +v -0.692869 -0.804088 1.123005 +v -0.722575 -0.804127 1.177780 +v -0.755293 -0.808701 1.233083 +v -0.748331 -0.804141 1.235738 +v -0.628802 -0.808697 1.013859 +v -0.666474 -0.808680 1.065653 +v -0.623010 -0.804138 1.018541 +v -0.660312 -0.804125 1.069858 +v -0.666641 -0.808486 1.978203 +v -0.610073 -0.808616 2.051951 +v -0.660392 -0.803967 1.974274 +v -0.604376 -0.804072 2.047328 +v -0.753709 -0.808362 1.812035 +v -0.715483 -0.808425 1.895581 +v -0.746642 -0.803867 1.809631 +v -0.708769 -0.803918 1.892425 +v -0.793628 -0.808124 1.663279 +v -0.778431 -0.808228 1.735515 +v -0.786212 -0.803673 1.662066 +v -0.771144 -0.803758 1.733739 +v -0.806493 -0.808233 1.520082 +v -0.803278 -0.808151 1.592591 +v -0.798973 -0.803762 1.520007 +v -0.795780 -0.803695 1.591922 +v -0.791950 -0.808391 1.365744 +v -0.802380 -0.808297 1.442387 +v -0.784600 -0.803889 1.367107 +v -0.794912 -0.803813 1.443017 +v -0.776213 -0.808565 1.296392 +v -0.769040 -0.804030 1.298430 +v -0.532089 -0.808385 0.915795 +v -0.584435 -0.808560 0.964081 +v -0.527217 -0.803885 0.921454 +v -0.579069 -0.804027 0.969253 +v -0.404753 -0.808219 0.826241 +v -0.470481 -0.808288 0.868476 +v -0.401048 -0.803751 0.832764 +v -0.466187 -0.803807 0.874602 +v -0.274410 -0.808092 0.767013 +v -0.340050 -0.808128 0.793207 +v -0.271742 -0.803648 0.774007 +v -0.336873 -0.803677 0.800005 +v -0.128903 -0.808305 0.729514 +v -0.205871 -0.808187 0.745298 +v -0.127410 -0.803821 0.736777 +v -0.203739 -0.803725 0.752449 +v 0.058338 -0.808382 0.721440 +v -0.037971 -0.808338 0.721111 +v 0.058106 -0.803883 0.728752 +v -0.037300 -0.803848 0.728436 +v 0.151439 -0.808532 0.731853 +v 0.150319 -0.804004 0.739052 +v 0.665712 -0.808365 1.071276 +v 0.610112 -0.808500 0.996233 +v 0.659824 -0.803869 1.075340 +v 0.604741 -0.803979 1.000983 +v 0.752614 -0.808284 1.237150 +v 0.714318 -0.808323 1.154171 +v 0.745908 -0.803805 1.239708 +v 0.707972 -0.803836 1.157471 +v 0.792662 -0.808062 1.383451 +v 0.777285 -0.808160 1.312446 +v 0.785598 -0.803623 1.384835 +v 0.770355 -0.803704 1.314384 +v 0.807024 -0.808186 1.525802 +v 0.803081 -0.808098 1.453555 +v 0.799840 -0.803726 1.526042 +v 0.795926 -0.803653 1.454393 +v 0.792473 -0.808305 1.679736 +v 0.802974 -0.808243 1.603234 +v 0.785450 -0.803821 1.678545 +v 0.795842 -0.803772 1.602771 +v 0.777063 -0.808407 1.749191 +v 0.770179 -0.803905 1.747333 +v 0.532058 -0.808315 2.129894 +v 0.584660 -0.808489 2.081672 +v 0.527538 -0.803829 2.124404 +v 0.579638 -0.803970 2.076672 +v 0.407023 -0.808188 2.219692 +v 0.471394 -0.808237 2.177413 +v 0.403651 -0.803726 2.213334 +v 0.467444 -0.803766 2.171452 +v 0.276829 -0.808072 2.278642 +v 0.343303 -0.808101 2.252197 +v 0.274504 -0.803632 2.271819 +v 0.340453 -0.803655 2.245570 +v 0.123827 -0.808344 2.320714 +v 0.204199 -0.808197 2.302742 +v 0.122764 -0.803853 2.313582 +v 0.202458 -0.803733 2.295742 +v -0.059296 -0.808416 2.326984 +v 0.034127 -0.808385 2.328774 +v -0.058693 -0.803910 2.319816 +v 0.033871 -0.803885 2.321583 +v -0.150835 -0.808535 2.315407 +v -0.149397 -0.804006 2.308352 +v 0.622202 -0.798535 2.025787 +v 0.660268 -0.798533 1.975200 +v 0.621547 -0.792477 2.025190 +v 0.659512 -0.792477 1.974693 +v 0.693186 -0.798506 1.922560 +v 0.692350 -0.792477 1.922132 +v 0.722323 -0.798494 1.867689 +v 0.721409 -0.792477 1.867392 +v 0.746193 -0.792477 1.809323 +v 0.747168 -0.798476 1.809458 +v -0.397382 -0.798527 2.213388 +v -0.319039 -0.798536 2.253244 +v -0.396904 -0.792477 2.212567 +v -0.318741 -0.792477 2.252364 +v -0.236182 -0.798537 2.284214 +v -0.236082 -0.792477 2.283291 +v 0.540642 -0.798528 0.937532 +v 0.472031 -0.798528 0.881881 +v 0.539897 -0.792477 0.938110 +v 0.471417 -0.792477 0.882605 +v 0.398009 -0.798517 0.834552 +v 0.397529 -0.792477 0.835395 +v -0.539456 -0.798569 2.109652 +v -0.471064 -0.798554 2.165575 +v -0.538787 -0.792477 2.109014 +v -0.470486 -0.792477 2.164829 +v 0.320038 -0.798540 0.794181 +v 0.319671 -0.792477 0.795069 +v 0.237541 -0.798546 0.762711 +v 0.237314 -0.792477 0.763622 +v -0.690142 -0.798534 1.124596 +v -0.719740 -0.798555 1.179138 +v -0.689290 -0.792477 1.125122 +v -0.718856 -0.792477 1.179569 +v -0.745400 -0.798563 1.236820 +v -0.744483 -0.792477 1.237118 +v -0.620631 -0.798561 1.020572 +v -0.657739 -0.798554 1.071664 +v -0.619957 -0.792477 1.021278 +v -0.656959 -0.792477 1.072269 +v -0.657655 -0.798467 1.972766 +v -0.601929 -0.798525 2.045467 +v -0.656675 -0.792477 1.972469 +v -0.601105 -0.792477 2.044986 +v -0.743534 -0.798412 1.808824 +v -0.705810 -0.798440 1.891299 +v -0.742407 -0.792477 1.808817 +v -0.704728 -0.792477 1.891187 +v -0.783010 -0.798305 1.661518 +v -0.767970 -0.798352 1.733104 +v -0.781915 -0.792477 1.661306 +v -0.766852 -0.792477 1.733037 +v -0.795729 -0.798354 1.519685 +v -0.792549 -0.798317 1.591451 +v -0.794621 -0.792477 1.519239 +v -0.791451 -0.792477 1.591079 +v -0.781440 -0.798424 1.367476 +v -0.791690 -0.798382 1.443003 +v -0.780376 -0.792477 1.367348 +v -0.790590 -0.792477 1.442666 +v -0.765989 -0.798502 1.299174 +v -0.764998 -0.792477 1.299271 +v -0.525334 -0.798422 0.924027 +v -0.576919 -0.798500 0.971552 +v -0.524945 -0.792477 0.925056 +v -0.576378 -0.792477 0.972415 +v -0.399725 -0.798348 0.835751 +v -0.464605 -0.798378 0.877418 +v -0.399592 -0.792477 0.836969 +v -0.464379 -0.792477 0.878578 +v -0.270633 -0.798290 0.777058 +v -0.335687 -0.798307 0.803051 +v -0.270304 -0.792477 0.778137 +v -0.335495 -0.792477 0.804219 +v -0.126552 -0.798387 0.739857 +v -0.202712 -0.798333 0.755511 +v -0.126011 -0.792477 0.740844 +v -0.202236 -0.792477 0.756529 +v 0.058182 -0.798421 0.731852 +v -0.036785 -0.798401 0.731540 +v 0.058412 -0.792477 0.732848 +v -0.036349 -0.792477 0.732532 +v 0.149939 -0.798488 0.742089 +v 0.149930 -0.792477 0.743046 +v 0.657236 -0.798413 1.076910 +v 0.602384 -0.798474 1.002868 +v 0.656298 -0.792477 1.077231 +v 0.601533 -0.792477 1.003319 +v 0.742963 -0.798378 1.240606 +v 0.705178 -0.798395 1.158679 +v 0.741901 -0.792477 1.240674 +v 0.704161 -0.792477 1.158841 +v 0.782557 -0.798277 1.385484 +v 0.767343 -0.798322 1.315119 +v 0.781528 -0.792477 1.385767 +v 0.766289 -0.792477 1.315253 +v 0.796747 -0.798334 1.526465 +v 0.792852 -0.798294 1.454965 +v 0.795700 -0.792477 1.526979 +v 0.791816 -0.792477 1.455405 +v 0.782425 -0.798387 1.678294 +v 0.792771 -0.798359 1.602889 +v 0.781398 -0.792477 1.678512 +v 0.791728 -0.792477 1.603297 +v 0.767213 -0.798433 1.746738 +v 0.766204 -0.792477 1.746775 +v 0.525796 -0.798391 2.121951 +v 0.577621 -0.798469 2.074500 +v 0.525441 -0.792477 2.121017 +v 0.577107 -0.792477 2.073742 +v 0.402452 -0.798334 2.210464 +v 0.465997 -0.798356 2.168753 +v 0.402340 -0.792477 2.209337 +v 0.465801 -0.792477 2.167686 +v 0.273529 -0.798282 2.268877 +v 0.339388 -0.798295 2.242640 +v 0.273229 -0.792477 2.267876 +v 0.339215 -0.792477 2.241559 +v 0.122105 -0.798404 2.310578 +v 0.201600 -0.798338 2.292771 +v 0.121646 -0.792477 2.309637 +v 0.201184 -0.792477 2.291815 +v -0.058627 -0.798435 2.316785 +v 0.033545 -0.798422 2.318552 +v -0.058830 -0.792477 2.315822 +v 0.033183 -0.792477 2.317601 +v -0.148957 -0.798489 2.305366 +v -0.149015 -0.792477 2.304415 +v -1.105237 -0.056435 1.178482 +v -1.105880 -0.027937 1.176921 +v -1.090322 -0.029753 1.130113 +v -1.088341 -0.066471 1.129006 +v -1.106855 0.000000 1.178603 +v -1.091545 0.000000 1.132247 +v -1.097797 -0.103635 1.165137 +v -1.106892 -0.086025 1.190000 +v -1.071895 -0.124495 1.099133 +v -1.082667 -0.149832 1.136403 +v -1.089993 -0.126071 1.149295 +v -1.079411 -0.098413 1.111864 +v -1.064673 -0.194985 1.107653 +v -1.073698 -0.171301 1.120809 +v -1.062324 -0.147579 1.082611 +v -1.049763 -0.174943 1.062699 +v -1.044780 -0.224189 1.072814 +v -1.056725 -0.225306 1.102268 +v -1.020151 -0.200729 1.009633 +v -1.019138 -0.242481 1.025929 +v -1.032138 -0.232001 1.048424 +v -1.033819 -0.189623 1.033137 +v -0.991313 -0.259140 0.979674 +v -1.005788 -0.249329 1.002265 +v -1.005749 -0.207235 0.984322 +v -0.987065 -0.215280 0.953465 +v -0.966529 -0.259145 0.936669 +v -0.975090 -0.278543 0.960382 +v -0.955023 -0.200920 0.896452 +v -0.940657 -0.242551 0.889262 +v -0.954382 -0.249379 0.912725 +v -0.969776 -0.207398 0.921766 +v -0.912955 -0.224270 0.843535 +v -0.927711 -0.232074 0.866723 +v -0.941343 -0.189599 0.872438 +v -0.923859 -0.174864 0.843729 +v -0.892873 -0.195086 0.808761 +v -0.893495 -0.225406 0.818389 +v -0.903251 -0.124806 0.806119 +v -0.877060 -0.149921 0.778713 +v -0.886115 -0.171413 0.794258 +v -0.912781 -0.147628 0.822535 +v -0.859810 -0.103704 0.751153 +v -0.869669 -0.126162 0.765814 +v -0.896033 -0.098788 0.793055 +v -0.885762 -0.066665 0.776941 +v -0.852086 -0.056484 0.737923 +v -0.843012 -0.086104 0.730640 +v -0.884118 0.000000 0.771951 +v -0.852799 0.000000 0.736460 +v -0.853753 -0.027960 0.738159 +v -0.885398 -0.029903 0.774171 +v -0.918728 -0.081922 0.819729 +v -0.914817 -0.054893 0.811930 +v -0.924178 -0.106935 0.830260 +v -0.938966 -0.072185 0.845755 +v -0.941791 -0.095599 0.852934 +v -0.936761 -0.047540 0.840604 +v -1.038063 -0.088597 1.014219 +v -1.041050 -0.064581 1.016623 +v -1.029068 -0.062090 0.992158 +v -1.027022 -0.087124 0.991767 +v -1.048991 -0.093907 1.038201 +v -1.053408 -0.070168 1.043663 +v -1.056154 -0.045982 1.046983 +v -1.042817 -0.041446 1.017757 +v -1.030244 -0.039128 0.992071 +v -1.043951 -0.020236 1.018963 +v -1.030971 -0.018878 0.992589 +v -1.057982 -0.022749 1.049421 +v -1.044562 0.000000 1.019489 +v -1.058798 0.000000 1.050363 +v -1.031459 0.000000 0.992879 +v -1.001399 -0.086746 0.944796 +v -0.987746 -0.087079 0.921715 +v -0.986370 -0.115331 0.924084 +v -0.999364 -0.115217 0.946121 +v -0.973483 -0.088062 0.898791 +v -0.973248 -0.114724 0.902563 +v -0.971097 -0.141982 0.904776 +v -0.983718 -0.144686 0.925943 +v -0.996575 -0.145017 0.947856 +v -0.988885 -0.061153 0.920384 +v -0.973994 -0.062814 0.896537 +v -1.002773 -0.060677 0.943849 +v -0.989715 -0.038028 0.919658 +v -1.003688 -0.037547 0.943258 +v -0.974402 -0.039618 0.895171 +v -0.989898 -0.018185 0.919269 +v -0.974223 -0.019126 0.894134 +v -1.004037 -0.017896 0.943181 +v -0.990072 0.000000 0.919008 +v -1.004327 0.000000 0.943123 +v -0.974201 0.000000 0.893556 +v -0.964990 -0.169036 0.902250 +v -0.978757 -0.173915 0.925739 +v -0.992927 -0.175064 0.950038 +v -1.020452 -0.140878 0.990516 +v -1.019896 -0.168377 0.997493 +v -1.031444 -0.159754 1.018068 +v -1.030018 -0.136188 1.008227 +v -1.042245 -0.146711 1.036310 +v -1.038088 -0.132715 1.023830 +v -1.006860 -0.173349 0.974383 +v -1.009143 -0.143796 0.969844 +v -1.012037 -0.114582 0.968434 +v -1.023523 -0.113596 0.989896 +v -1.014675 -0.086637 0.968367 +v -1.016249 -0.060890 0.967827 +v -1.017201 -0.037871 0.967312 +v -1.017688 -0.018113 0.967476 +v -1.018069 0.000000 0.967589 +v -1.051993 -0.128300 1.052879 +v -1.060546 -0.105871 1.066419 +v -1.042724 -0.115858 1.029073 +v -0.958198 -0.090106 0.875816 +v -0.957368 -0.066153 0.871513 +v -0.956703 -0.042619 0.868575 +v -0.955763 -0.020860 0.866309 +v -0.934836 -0.023591 0.836813 +v -0.955398 0.000000 0.865222 +v -0.934063 0.000000 0.835169 +v -1.033378 -0.112477 1.009149 +v -0.949068 -0.132258 0.869558 +v -0.959009 -0.136051 0.885165 +v -0.959928 -0.113164 0.881973 +v -0.946205 -0.115926 0.862358 +v -0.952214 -0.159539 0.880347 +v -0.940965 -0.145829 0.860649 +v -1.066679 -0.080611 1.076042 +v -1.071018 -0.053869 1.082597 +v -1.073903 -0.026970 1.087035 +v -1.075050 0.000000 1.088701 +v -0.910723 0.000000 0.804487 +v -0.911868 -0.027523 0.806605 +v -0.931596 -0.128260 0.843933 +v -0.633723 -0.794281 2.079658 +v -0.642819 -0.775251 2.095455 +v -0.567709 -0.795946 2.144199 +v -0.575845 -0.778361 2.158455 +v -0.496421 -0.796565 2.201528 +v -0.504152 -0.779559 2.215061 +v -0.420116 -0.796329 2.251155 +v -0.427843 -0.779304 2.264549 +v -0.339193 -0.795698 2.292746 +v -0.347158 -0.778309 2.306404 +v -0.253944 -0.794662 2.325815 +v -0.262490 -0.776410 2.340419 +v -0.164662 -0.793303 2.349949 +v -0.174253 -0.773454 2.366391 +v -0.071987 -0.792139 2.364044 +v -0.082711 -0.770691 2.382862 +v -0.816461 -0.738059 1.884573 +v -0.857284 -0.728739 1.799748 +v 0.023459 -0.791738 2.367032 +v 0.012061 -0.768989 2.388021 +v 0.117847 -0.790962 2.359732 +v 0.207323 -0.789495 2.343610 +v 0.291184 -0.788820 2.318429 +v 0.368734 -0.790508 2.284047 +v 0.440382 -0.792587 2.242841 +v 0.506603 -0.793107 2.197177 +v 0.531908 -0.772263 2.201640 +v 0.565950 -0.792592 2.148850 +v 0.587747 -0.772447 2.153699 +v 0.617077 -0.791893 2.099904 +v 0.636099 -0.772406 2.105300 +v 0.660998 -0.791444 2.049890 +v 0.677945 -0.772537 2.056038 +v 0.698836 -0.791785 1.998372 +v 0.714259 -0.773231 2.005471 +v 0.731873 -0.792232 1.945046 +v 0.746247 -0.773890 1.953324 +v 0.761384 -0.792142 1.889655 +v 0.775072 -0.773854 1.899297 +v 0.787082 -0.792171 1.831079 +v 0.800540 -0.773695 1.842356 +v 0.808454 -0.792658 1.768061 +v 0.822284 -0.773801 1.781377 +v 0.825534 -0.793247 1.699592 +v 0.840384 -0.773517 1.715673 +v 0.838027 -0.793163 1.624572 +v 0.854776 -0.772033 1.644479 +v 0.844800 -0.792081 1.545398 +v 0.845049 -0.790095 1.464538 +v 0.836343 -0.788858 1.381801 +v 0.816338 -0.790166 1.296950 +v 0.785466 -0.792269 1.210478 +v 0.744035 -0.793219 1.122969 +v 0.498599 -0.794730 0.841078 +v 0.507270 -0.776474 0.826185 +v 0.422114 -0.794774 0.791132 +v 0.430980 -0.776039 0.775759 +v 0.341028 -0.794051 0.749139 +v 0.349894 -0.774916 0.733570 +v -0.028501 -0.798189 0.681694 +v -0.124562 -0.796030 0.688338 +v -0.214078 -0.792705 0.703313 +v -0.297107 -0.789938 0.727468 +v -0.374259 -0.790046 0.760794 +v -0.445240 -0.791020 0.800714 +v -0.509832 -0.791275 0.844228 +v -0.702078 -0.791494 1.045463 +v -0.735398 -0.791168 1.098587 +v -0.764695 -0.791288 1.154016 +v -0.901091 -0.729522 1.522266 +v -0.890365 -0.739032 1.446418 +v -0.876656 -0.744721 1.374808 +v -0.898325 -0.712068 1.346221 +v 0.001118 -1.032958 2.048371 +v -0.040395 -1.032911 2.046924 +v -0.035430 -1.062685 1.984569 +v 0.001727 -1.062944 1.985318 +v -0.081876 -1.032914 2.042173 +v -0.073241 -1.062507 1.980621 +v -0.031327 -1.088128 1.921908 +v -0.065023 -1.087851 1.918669 +v 0.001248 -1.088491 1.922143 +v -0.122858 -1.033022 2.033866 +v -0.110627 -1.062777 1.972479 +v -0.162885 -1.033177 2.022405 +v -0.146519 -1.063097 1.961488 +v -0.098355 -1.088185 1.910905 +v -0.129855 -1.088547 1.900619 +v -0.201480 -1.033208 2.008134 +v -0.179832 -1.063099 1.949010 +v -0.238636 -1.033266 1.991047 +v -0.211223 -1.063093 1.934563 +v -0.158058 -1.088538 1.889885 +v -0.184065 -1.088485 1.877865 +v -0.274318 -1.033330 1.971056 +v -0.241320 -1.063172 1.917577 +v -0.308546 -1.033411 1.948253 +v -0.270855 -1.063240 1.897940 +v -0.208954 -1.088567 1.863672 +v -0.233940 -1.088621 1.847046 +v -0.341308 -1.033392 1.922674 +v -0.300515 -1.063020 1.875472 +v -0.372097 -1.033412 1.894436 +v -0.328808 -1.062867 1.850035 +v -0.285588 -1.088077 1.805232 +v -0.260202 -1.088308 1.827677 +v -0.400386 -1.033541 1.863623 +v -0.354266 -1.063168 1.821491 +v -0.426042 -1.033707 1.830816 +v -0.376835 -1.063517 1.791525 +v -0.307970 -1.088440 1.779389 +v -0.327385 -1.088845 1.752592 +v -0.448894 -1.033751 1.796572 +v -0.396458 -1.063538 1.761843 +v -0.468924 -1.033815 1.760889 +v -0.413377 -1.063548 1.731687 +v -0.343895 -1.088864 1.727333 +v -0.357888 -1.088849 1.702309 +v -0.486051 -1.033884 1.723723 +v -0.427756 -1.063647 1.700240 +v -0.500347 -1.033966 1.685132 +v -0.440118 -1.063727 1.666964 +v -0.369692 -1.088956 1.676183 +v -0.380146 -1.089033 1.648015 +v -0.511823 -1.033944 1.645149 +v -0.450920 -1.063521 1.631297 +v -0.520135 -1.033959 1.604177 +v -0.458864 -1.063374 1.594042 +v -0.397380 -1.088537 1.583702 +v -0.390027 -1.088751 1.616837 +v -0.524903 -1.034076 1.562605 +v -0.462675 -1.063680 1.555992 +v -0.526369 -1.034233 1.520971 +v -0.463309 -1.064032 1.518504 +v -0.400291 -1.088922 1.549661 +v -0.400236 -1.089348 1.516614 +v -0.524715 -1.034257 1.479819 +v -0.461731 -1.064052 1.482955 +v -0.519935 -1.034305 1.439161 +v -0.457687 -1.064059 1.448602 +v -0.398739 -1.089380 1.486483 +v -0.395349 -1.089373 1.458007 +v -0.511927 -1.034344 1.399012 +v -0.450827 -1.064148 1.414702 +v -0.500791 -1.034403 1.359373 +v -0.441256 -1.064220 1.380496 +v -0.381428 -1.089570 1.400974 +v -0.389540 -1.089488 1.429929 +v -0.486549 -1.034351 1.320263 +v -0.429003 -1.063997 1.345248 +v -0.469169 -1.034342 1.282216 +v -0.413506 -1.063836 1.310403 +v -0.357515 -1.089070 1.338707 +v -0.371070 -1.089287 1.369884 +v -0.448564 -1.034415 1.245782 +v -0.394205 -1.064118 1.277387 +v -0.425256 -1.034533 1.211247 +v -0.372669 -1.064445 1.246709 +v -0.339846 -1.089449 1.309467 +v -0.320372 -1.089866 1.282797 +v -0.399709 -1.034519 1.178934 +v -0.350490 -1.064445 1.218889 +v -0.371927 -1.034536 1.148857 +v -0.327018 -1.064427 1.193484 +v -0.301448 -1.089888 1.259317 +v -0.281968 -1.089864 1.238285 +v -0.341832 -1.034530 1.121098 +v -0.301536 -1.064484 1.170106 +v -0.309510 -1.034558 1.095585 +v -0.273676 -1.064531 1.148066 +v -0.237177 -1.090026 1.200348 +v -0.260765 -1.089962 1.219000 +v -0.274980 -1.034458 1.072330 +v -0.243019 -1.064266 1.126752 +v -0.238540 -1.034408 1.051779 +v -0.209973 -1.064065 1.107672 +v -0.181168 -1.089463 1.164007 +v -0.210494 -1.089712 1.181272 +v -0.200443 -1.034441 1.034434 +v -0.174930 -1.064314 1.092321 +v -0.161278 -1.034510 1.020221 +v -0.139463 -1.064598 1.080187 +v -0.149660 -1.089817 1.150749 +v -0.118215 -1.090199 1.140643 +v -0.121618 -1.034463 1.009113 +v -0.105172 -1.064568 1.070734 +v -0.081466 -1.034431 1.001136 +v -0.071263 -1.064501 1.064000 +v -0.089113 -1.090195 1.132787 +v -0.061007 -1.090127 1.127242 +v -0.040810 -1.034394 0.996386 +v -0.036920 -1.064525 1.060082 +v 0.000326 -1.034379 0.994765 +v -0.001442 -1.064540 1.058640 +v -0.002511 -1.090228 1.122901 +v -0.032539 -1.090195 1.124117 +v 0.041918 -1.034242 0.996264 +v 0.035873 -1.064224 1.059429 +v 0.083465 -1.034142 1.001079 +v 0.073818 -1.063975 1.063430 +v 0.064145 -1.089564 1.126436 +v 0.030272 -1.089864 1.123157 +v 0.124472 -1.034148 1.009452 +v 0.111204 -1.064194 1.071628 +v 0.164499 -1.034179 1.020990 +v 0.147038 -1.064432 1.082684 +v 0.097458 -1.089888 1.134251 +v 0.128862 -1.090221 1.144589 +v 0.203095 -1.034103 1.035325 +v 0.180323 -1.064371 1.095199 +v 0.240241 -1.034032 1.052480 +v 0.211687 -1.064260 1.109689 +v 0.157015 -1.090182 1.155345 +v 0.182983 -1.090064 1.167383 +v 0.275902 -1.033969 1.072536 +v 0.241748 -1.064257 1.126704 +v 0.310107 -1.033923 1.095403 +v 0.271269 -1.064241 1.146381 +v 0.232802 -1.090098 1.198237 +v 0.207825 -1.090099 1.181585 +v 0.342847 -1.033760 1.121054 +v 0.300956 -1.063888 1.168929 +v 0.373605 -1.033636 1.149360 +v 0.329274 -1.063604 1.194454 +v 0.284576 -1.089337 1.240225 +v 0.259128 -1.089683 1.217682 +v 0.401845 -1.033629 1.180231 +v 0.354708 -1.063803 1.223076 +v 0.427432 -1.033644 1.213088 +v 0.377208 -1.064012 1.253105 +v 0.306952 -1.089630 1.266158 +v 0.326305 -1.089923 1.293021 +v 0.450219 -1.033559 1.247356 +v 0.396772 -1.063932 1.282790 +v 0.470173 -1.033480 1.283051 +v 0.413613 -1.063797 1.312932 +v 0.342754 -1.089845 1.318275 +v 0.356673 -1.089698 1.343262 +v 0.487225 -1.033415 1.320216 +v 0.427921 -1.063781 1.344351 +v 0.501448 -1.033368 1.358797 +v 0.440225 -1.063749 1.377593 +v 0.368413 -1.089709 1.369341 +v 0.378817 -1.089680 1.397461 +v 0.512853 -1.033208 1.398759 +v 0.450977 -1.063386 1.413226 +v 0.521098 -1.033092 1.439710 +v 0.458878 -1.063095 1.450477 +v 0.395995 -1.088870 1.461736 +v 0.388668 -1.089240 1.428595 +v 0.525804 -1.033093 1.481268 +v 0.462638 -1.063290 1.488587 +v 0.527203 -1.033124 1.522877 +v 0.463201 -1.063496 1.526129 +v 0.398861 -1.089141 1.495890 +v 0.398742 -1.089419 1.529042 +v 0.525504 -1.033052 1.563978 +v 0.461587 -1.063417 1.561641 +v 0.520681 -1.032997 1.604568 +v 0.457502 -1.063290 1.595914 +v 0.397210 -1.089325 1.559150 +v 0.393786 -1.089171 1.587539 +v 0.512644 -1.032950 1.644644 +v 0.450618 -1.063280 1.629735 +v 0.501495 -1.032934 1.684203 +v 0.441048 -1.063261 1.663842 +v 0.387959 -1.089176 1.615534 +v 0.379858 -1.089143 1.644379 +v 0.487252 -1.032796 1.723218 +v 0.428826 -1.062911 1.698947 +v 0.469881 -1.032719 1.761182 +v 0.413351 -1.062643 1.733693 +v 0.369555 -1.088703 1.675298 +v 0.356030 -1.088341 1.706368 +v 0.449280 -1.032745 1.797567 +v 0.394007 -1.062852 1.766740 +v 0.425977 -1.032818 1.832060 +v 0.372411 -1.063084 1.797466 +v 0.338288 -1.088620 1.735696 +v 0.318710 -1.088901 1.762479 +v 0.400462 -1.032776 1.864318 +v 0.350239 -1.063024 1.825260 +v 0.372724 -1.032767 1.894333 +v 0.326799 -1.062931 1.850599 +v 0.299777 -1.088824 1.785954 +v 0.280320 -1.088683 1.806921 +v 0.342680 -1.032752 1.922041 +v 0.301355 -1.062945 1.873926 +v 0.310426 -1.032779 1.947506 +v 0.273576 -1.062953 1.895903 +v 0.259149 -1.088703 1.826158 +v 0.235648 -1.088692 1.844740 +v 0.275988 -1.032683 1.970710 +v 0.243080 -1.062643 1.917118 +v 0.239638 -1.032655 1.991230 +v 0.210166 -1.062420 1.936135 +v 0.209166 -1.088279 1.863684 +v 0.179997 -1.087952 1.880861 +v 0.201597 -1.032719 2.008575 +v 0.175112 -1.062657 1.951515 +v 0.162479 -1.032843 2.022812 +v 0.139592 -1.062931 1.963704 +v 0.148430 -1.088256 1.894172 +v 0.116863 -1.088568 1.904355 +v 0.122876 -1.032835 2.033930 +v 0.105313 -1.062902 1.973176 +v 0.082789 -1.032868 2.041931 +v 0.071445 -1.062858 1.979920 +v 0.087740 -1.088525 1.912238 +v 0.059657 -1.088421 1.917780 +v 0.042190 -1.032897 2.046711 +v 0.037134 -1.062904 1.983854 +v 0.031201 -1.088471 1.920914 +v 0.000915 -0.997481 2.112346 +v -0.045421 -0.997516 2.110543 +v 0.000915 -0.961980 2.168449 +v -0.049817 -0.961906 2.166398 +v -0.091478 -0.997596 2.105142 +v -0.100242 -0.961964 2.160474 +v -0.136968 -0.997640 2.096118 +v -0.150045 -0.962006 2.150595 +v -0.181619 -0.997725 2.083580 +v -0.198935 -0.962093 2.136874 +v -0.225144 -0.997777 2.067553 +v -0.246590 -0.962142 2.119327 +v -0.267293 -0.997866 2.048183 +v -0.292740 -0.962234 2.098127 +v -0.307782 -0.997923 2.025544 +v -0.337072 -0.962288 2.073340 +v -0.346389 -0.998016 1.999817 +v -0.379348 -0.962389 2.045182 +v -0.382845 -0.998076 1.971119 +v -0.419286 -0.962493 2.013787 +v -0.416956 -0.998169 1.939666 +v -0.456662 -0.962628 1.979371 +v -0.448480 -0.998230 1.905614 +v -0.491145 -0.962619 1.942053 +v -0.477256 -0.998323 1.869205 +v -0.522645 -0.962690 1.902183 +v -0.503067 -0.998383 1.830635 +v -0.550908 -0.962747 1.859952 +v -0.525796 -0.998475 1.790166 +v -0.575800 -0.962841 1.815645 +v -0.545257 -0.998531 1.748026 +v -0.597111 -0.962895 1.769505 +v -0.561375 -0.998619 1.704493 +v -0.614773 -0.962996 1.721843 +v -0.574003 -0.998669 1.659820 +v -0.628616 -0.963066 1.672930 +v -0.583112 -0.998753 1.614295 +v -0.638607 -0.963167 1.623085 +v -0.588591 -0.998796 1.568190 +v -0.644614 -0.963216 1.572598 +v -0.590463 -0.998874 1.521794 +v -0.646654 -0.963273 1.521795 +v -0.588656 -0.998907 1.475394 +v -0.644666 -0.963289 1.470986 +v -0.583243 -0.998977 1.429273 +v -0.638733 -0.963346 1.420485 +v -0.574192 -0.998999 1.383723 +v -0.628819 -0.963362 1.370609 +v -0.561625 -0.999062 1.339014 +v -0.615063 -0.963426 1.321651 +v -0.545552 -0.999071 1.295440 +v -0.597462 -0.963432 1.273938 +v -0.526139 -0.999125 1.253246 +v -0.576208 -0.963487 1.227735 +v -0.503439 -0.999121 1.212725 +v -0.551350 -0.963479 1.183365 +v -0.477658 -0.999164 1.174089 +v -0.523124 -0.963526 1.141057 +v -0.448892 -0.999146 1.137621 +v -0.491623 -0.963506 1.101126 +v -0.417380 -0.999180 1.103498 +v -0.457121 -0.963544 1.063758 +v -0.383257 -0.999148 1.071985 +v -0.419754 -0.963510 1.029253 +v -0.346790 -0.999168 1.043218 +v -0.379826 -0.963534 0.997750 +v -0.308156 -0.999126 1.017436 +v -0.337517 -0.963487 0.969524 +v -0.267635 -0.999133 0.994736 +v -0.293147 -0.963497 0.944664 +v -0.225441 -0.999080 0.975322 +v -0.246943 -0.963441 0.923411 +v -0.181867 -0.999073 0.959248 +v -0.199231 -0.963437 0.905809 +v -0.137157 -0.999012 0.946679 +v -0.150273 -0.963374 0.892051 +v -0.091607 -0.998992 0.937628 +v -0.100396 -0.963360 0.882137 +v -0.045486 -0.998923 0.932214 +v -0.049893 -0.963298 0.876207 +v 0.000915 -0.998892 0.930406 +v 0.000915 -0.963265 0.874230 +v 0.047311 -0.998815 0.932278 +v 0.051718 -0.963176 0.876293 +v 0.093418 -0.998774 0.937756 +v 0.102203 -0.963138 0.882292 +v 0.138944 -0.998691 0.946865 +v 0.152050 -0.963053 0.892272 +v 0.183619 -0.998641 0.959492 +v 0.200967 -0.963007 0.906099 +v 0.227152 -0.998554 0.975611 +v 0.248632 -0.962916 0.923755 +v 0.269294 -0.998498 0.995072 +v 0.294774 -0.962864 0.945064 +v 0.309764 -0.998407 1.017801 +v 0.339082 -0.962770 0.969957 +v 0.348336 -0.998348 1.043612 +v 0.381315 -0.962714 0.998221 +v 0.384745 -0.998255 1.072389 +v 0.421175 -0.962618 1.029734 +v 0.418798 -0.998193 1.103913 +v 0.458459 -0.962560 1.064251 +v 0.450252 -0.998100 1.138025 +v 0.492893 -0.962464 1.101606 +v 0.478950 -0.998039 1.174482 +v 0.524306 -0.962393 1.141530 +v 0.504677 -0.997947 1.213089 +v 0.552476 -0.962311 1.183798 +v 0.527317 -0.997889 1.253580 +v 0.577263 -0.962257 1.228132 +v 0.546687 -0.997799 1.295730 +v 0.598463 -0.962164 1.274283 +v 0.562714 -0.997746 1.339256 +v 0.616010 -0.962115 1.321939 +v 0.575252 -0.997660 1.383910 +v 0.629731 -0.962026 1.370830 +v 0.584276 -0.997615 1.429399 +v 0.639610 -0.961984 1.420636 +v 0.589676 -0.997534 1.475459 +v 0.645524 -0.961911 1.471063 +v 0.591478 -0.997497 1.521794 +v 0.647520 -0.961911 1.521794 +v 0.589611 -0.997423 1.568125 +v 0.645516 -0.961899 1.572525 +v 0.584148 -0.997397 1.614169 +v 0.639522 -0.961857 1.622940 +v 0.575062 -0.997331 1.659635 +v 0.629521 -0.961723 1.672710 +v 0.562472 -0.997317 1.704256 +v 0.615769 -0.961757 1.721574 +v 0.546390 -0.997259 1.747738 +v 0.598330 -0.961958 1.769253 +v 0.526983 -0.997258 1.789840 +v 0.577199 -0.962150 1.815428 +v 0.504304 -0.997210 1.830271 +v 0.552417 -0.962208 1.859756 +v 0.478558 -0.997223 1.868822 +v 0.524208 -0.962214 1.901989 +v 0.449838 -0.997184 1.905211 +v 0.492731 -0.962156 1.941845 +v 0.418385 -0.997212 1.939265 +v 0.458237 -0.962111 1.979116 +v 0.384330 -0.997182 1.970717 +v 0.420898 -0.962011 2.013531 +v 0.347941 -0.997220 1.999436 +v 0.381015 -0.961990 2.044957 +v 0.309390 -0.997204 2.025181 +v 0.338761 -0.961900 2.073109 +v 0.268958 -0.997251 2.047859 +v 0.294412 -0.961738 2.097815 +v 0.226856 -0.997250 2.067264 +v 0.248280 -0.961624 2.118988 +v 0.183373 -0.997306 2.083344 +v 0.200683 -0.961715 2.136620 +v 0.138753 -0.997319 2.095933 +v 0.151834 -0.961754 2.150422 +v 0.093288 -0.997384 2.105018 +v 0.102063 -0.961894 2.160428 +v 0.047245 -0.997408 2.110480 +v 0.051648 -0.961956 2.166436 +v 0.000915 -0.933396 2.209041 +v -0.053008 -0.933428 2.206947 +v 0.000915 -0.912944 2.234913 +v -0.055037 -0.912956 2.232727 +v -0.106607 -0.933486 2.200659 +v -0.110652 -0.912997 2.226202 +v -0.159546 -0.933529 2.190164 +v -0.165578 -0.913010 2.215290 +v -0.211506 -0.933581 2.175559 +v -0.219492 -0.913048 2.200141 +v -0.262165 -0.933644 2.156927 +v -0.272036 -0.913051 2.180758 +v -0.311214 -0.933710 2.134383 +v -0.322926 -0.913100 2.157371 +v -0.358319 -0.933722 2.108011 +v -0.371822 -0.913141 2.130047 +v -0.403241 -0.933784 2.078067 +v -0.418452 -0.913210 2.099004 +v -0.445672 -0.933844 2.044681 +v -0.462461 -0.913229 2.064339 +v -0.485368 -0.933915 2.008078 +v -0.503648 -0.913276 2.026358 +v -0.522047 -0.933954 1.968446 +v -0.541698 -0.913296 1.985229 +v -0.555525 -0.934015 1.926071 +v -0.576429 -0.913334 1.941259 +v -0.585561 -0.934060 1.881187 +v -0.607564 -0.913339 1.894671 +v -0.612003 -0.934121 1.834091 +v -0.635004 -0.913386 1.845811 +v -0.634640 -0.934153 1.785049 +v -0.658519 -0.913432 1.794941 +v -0.653394 -0.934217 1.734393 +v -0.678008 -0.913501 1.742390 +v -0.668083 -0.934250 1.682407 +v -0.693265 -0.913535 1.688452 +v -0.678682 -0.934313 1.629433 +v -0.704271 -0.913586 1.633486 +v -0.685052 -0.934339 1.575782 +v -0.710880 -0.913602 1.577815 +v -0.687230 -0.934398 1.521795 +v -0.713142 -0.913645 1.521795 +v -0.685128 -0.934423 1.467801 +v -0.710966 -0.913666 1.465768 +v -0.678835 -0.934485 1.414132 +v -0.704446 -0.913716 1.410076 +v -0.668302 -0.934499 1.361130 +v -0.693515 -0.913726 1.355077 +v -0.653683 -0.934552 1.309103 +v -0.678338 -0.913758 1.301092 +v -0.634980 -0.934559 1.258398 +v -0.658928 -0.913761 1.248478 +v -0.612391 -0.934601 1.209299 +v -0.635491 -0.913793 1.197529 +v -0.585967 -0.934585 1.162152 +v -0.608071 -0.913780 1.148606 +v -0.555967 -0.934617 1.117195 +v -0.576939 -0.913800 1.101958 +v -0.522486 -0.934592 1.074767 +v -0.542188 -0.913772 1.057941 +v -0.485817 -0.934616 1.035062 +v -0.504119 -0.913767 1.016761 +v -0.446146 -0.934651 0.998353 +v -0.462920 -0.913749 0.978713 +v -0.403762 -0.934769 0.964803 +v -0.418970 -0.913863 0.943871 +v -0.358745 -0.934624 0.934882 +v -0.372261 -0.913763 0.912822 +v -0.311588 -0.934621 0.908472 +v -0.323348 -0.913789 0.885388 +v -0.262485 -0.934571 0.885888 +v -0.272403 -0.913764 0.861944 +v -0.211778 -0.934558 0.867191 +v -0.219788 -0.913759 0.842538 +v -0.159749 -0.934497 0.852579 +v -0.165799 -0.913714 0.827379 +v -0.106746 -0.934480 0.842048 +v -0.110800 -0.913699 0.816457 +v -0.053078 -0.934423 0.835751 +v -0.055111 -0.913648 0.809939 +v 0.000915 -0.934397 0.833651 +v 0.000912 -0.913608 0.807788 +v 0.054904 -0.934362 0.835808 +v 0.056929 -0.913581 0.810030 +v 0.108560 -0.934366 0.842151 +v 0.112624 -0.913684 0.816482 +v 0.161540 -0.934311 0.852744 +v 0.167650 -0.913786 0.827295 +v 0.213527 -0.934265 0.867445 +v 0.221584 -0.913681 0.842647 +v 0.264178 -0.934174 0.886223 +v 0.274150 -0.913606 0.862152 +v 0.313216 -0.934129 0.908871 +v 0.325024 -0.913538 0.885701 +v 0.360306 -0.934054 0.935323 +v 0.373828 -0.913391 0.913262 +v 0.405200 -0.934028 0.965345 +v 0.420386 -0.913340 0.944448 +v 0.447558 -0.933939 0.998843 +v 0.464375 -0.913325 0.979156 +v 0.487190 -0.933901 1.035520 +v 0.505497 -0.913297 1.017215 +v 0.523823 -0.933873 1.075190 +v 0.543449 -0.913219 1.058428 +v 0.557242 -0.933857 1.117600 +v 0.578094 -0.913182 1.102451 +v 0.587187 -0.933791 1.162527 +v 0.609158 -0.913134 1.149064 +v 0.613420 -0.933606 1.209709 +v 0.636562 -0.913161 1.197918 +v 0.636004 -0.933591 1.258733 +v 0.659922 -0.913088 1.248827 +v 0.654696 -0.933598 1.309369 +v 0.679266 -0.913052 1.301387 +v 0.669341 -0.933594 1.361320 +v 0.694413 -0.913011 1.355302 +v 0.679836 -0.933550 1.414265 +v 0.705328 -0.913001 1.410228 +v 0.686108 -0.933473 1.467869 +v 0.711857 -0.912962 1.465842 +v 0.688212 -0.933453 1.521794 +v 0.714040 -0.912948 1.521796 +v 0.686047 -0.933404 1.575715 +v 0.711785 -0.912908 1.577742 +v 0.679694 -0.933389 1.629303 +v 0.705195 -0.912898 1.633342 +v 0.669114 -0.933333 1.682216 +v 0.694222 -0.912862 1.688244 +v 0.654454 -0.933314 1.734143 +v 0.679025 -0.912859 1.742127 +v 0.635730 -0.933260 1.784745 +v 0.659605 -0.912827 1.794634 +v 0.613148 -0.933265 1.833745 +v 0.636174 -0.912830 1.845476 +v 0.586756 -0.933231 1.880800 +v 0.608786 -0.912802 1.894299 +v 0.556791 -0.933239 1.925663 +v 0.577699 -0.912811 1.940854 +v 0.523362 -0.933201 1.968007 +v 0.543016 -0.912788 1.984794 +v 0.486761 -0.933226 2.007640 +v 0.505037 -0.912805 2.025918 +v 0.447131 -0.933206 2.044246 +v 0.463912 -0.912787 2.063896 +v 0.404783 -0.933235 2.077670 +v 0.419971 -0.912810 2.098578 +v 0.359909 -0.933204 2.107618 +v 0.373416 -0.912799 2.129663 +v 0.312846 -0.933219 2.133995 +v 0.324593 -0.912827 2.157051 +v 0.263838 -0.933183 2.156550 +v 0.273750 -0.912824 2.180481 +v 0.213245 -0.933253 2.175284 +v 0.221243 -0.912855 2.199900 +v 0.161324 -0.933288 2.189956 +v 0.167360 -0.912857 2.215095 +v 0.108415 -0.933347 2.200537 +v 0.112459 -0.912893 2.226067 +v 0.054831 -0.933350 2.206879 +v 0.056860 -0.912903 2.232658 +v -0.055854 -0.901330 2.243108 +v -0.112281 -0.901348 2.236485 +v 0.000915 -0.901331 2.245346 +v -0.055993 -0.895497 2.244873 +v 0.000915 -0.895494 2.247133 +v -0.112583 -0.895468 2.238391 +v -0.168015 -0.901365 2.225442 +v -0.222715 -0.901379 2.210060 +v -0.168489 -0.895448 2.227415 +v -0.223346 -0.895440 2.212001 +v -0.275984 -0.901340 2.190288 +v -0.327579 -0.901338 2.166501 +v -0.276672 -0.895489 2.191950 +v -0.328391 -0.895491 2.168095 +v -0.377159 -0.901346 2.138755 +v -0.424451 -0.901376 2.107261 +v -0.378115 -0.895482 2.140316 +v -0.425672 -0.895435 2.108942 +v -0.468993 -0.901332 2.071986 +v -0.510708 -0.901328 2.033417 +v -0.470146 -0.895495 2.073336 +v -0.511949 -0.895500 2.034658 +v -0.549276 -0.901331 1.991701 +v -0.584475 -0.901342 1.947105 +v -0.550624 -0.895496 1.992853 +v -0.585959 -0.895482 1.948184 +v -0.616008 -0.901330 1.899845 +v -0.643766 -0.901328 1.850275 +v -0.617509 -0.895498 1.900765 +v -0.645324 -0.895501 1.851069 +v -0.667549 -0.901328 1.798681 +v -0.687217 -0.901329 1.745381 +v -0.669168 -0.895500 1.799352 +v -0.688886 -0.895499 1.745924 +v -0.702631 -0.901327 1.690701 +v -0.713716 -0.901327 1.634981 +v -0.704330 -0.895501 1.691108 +v -0.715437 -0.895502 1.635254 +v -0.720390 -0.901327 1.578563 +v -0.722624 -0.901327 1.521795 +v -0.722127 -0.895502 1.578699 +v -0.724366 -0.895502 1.521795 +v -0.720390 -0.901327 1.465026 +v -0.713716 -0.901327 1.408608 +v -0.722127 -0.895502 1.464889 +v -0.715437 -0.895502 1.408335 +v -0.702631 -0.901327 1.352888 +v -0.687226 -0.901332 1.298203 +v -0.704330 -0.895501 1.352480 +v -0.688914 -0.895495 1.297655 +v -0.667576 -0.901339 1.244896 +v -0.643793 -0.901339 1.193298 +v -0.669238 -0.895488 1.244207 +v -0.645386 -0.895490 1.192487 +v -0.616005 -0.901329 1.143745 +v -0.584441 -0.901327 1.096508 +v -0.617494 -0.895501 1.142832 +v -0.585851 -0.895502 1.095483 +v -0.549266 -0.901327 1.051895 +v -0.510705 -0.901328 1.010173 +v -0.550590 -0.895502 1.050763 +v -0.511937 -0.895502 1.008941 +v -0.469017 -0.901346 0.971573 +v -0.424543 -0.901431 0.936200 +v -0.470163 -0.895491 0.970232 +v -0.425610 -0.895446 0.934732 +v -0.377158 -0.901345 0.904834 +v -0.327578 -0.901337 0.877090 +v -0.378075 -0.895492 0.903338 +v -0.328375 -0.895496 0.875527 +v -0.275978 -0.901334 0.853316 +v -0.222676 -0.901333 0.833651 +v -0.276648 -0.895498 0.851696 +v -0.223219 -0.895498 0.831980 +v -0.167993 -0.901330 0.818240 +v -0.112271 -0.901328 0.807160 +v -0.168404 -0.895498 0.816527 +v -0.112545 -0.895501 0.805433 +v -0.055853 -0.901328 0.800487 +v 0.000916 -0.901333 0.798239 +v -0.055990 -0.895501 0.798744 +v 0.000916 -0.895495 0.796461 +v 0.057705 -0.901422 0.800220 +v 0.114224 -0.901602 0.806397 +v 0.057874 -0.895400 0.798075 +v 0.114600 -0.895286 0.804024 +v 0.170086 -0.901728 0.817149 +v 0.224731 -0.901590 0.832962 +v 0.170639 -0.895240 0.814850 +v 0.225357 -0.895350 0.831037 +v 0.278110 -0.901613 0.852590 +v 0.329843 -0.901677 0.876239 +v 0.278941 -0.895319 0.850584 +v 0.331238 -0.895161 0.873504 +v 0.379100 -0.901421 0.904654 +v 0.426232 -0.901346 0.936397 +v 0.380239 -0.895399 0.902796 +v 0.427308 -0.895482 0.934917 +v 0.470930 -0.901390 0.971479 +v 0.512657 -0.901388 1.010054 +v 0.472297 -0.895424 0.969880 +v 0.514156 -0.895423 1.008556 +v 0.551113 -0.901335 1.051883 +v 0.586273 -0.901328 1.096508 +v 0.552482 -0.895491 1.050713 +v 0.587690 -0.895501 1.095479 +v 0.617843 -0.901332 1.143742 +v 0.645958 -0.901473 1.193130 +v 0.619359 -0.895496 1.142813 +v 0.648335 -0.895314 1.191920 +v 0.669596 -0.901412 1.244819 +v 0.689107 -0.901351 1.298189 +v 0.671753 -0.895386 1.243926 +v 0.690935 -0.895468 1.297595 +v 0.704465 -0.901329 1.352888 +v 0.715549 -0.901328 1.408608 +v 0.706174 -0.895500 1.352478 +v 0.717276 -0.895501 1.408335 +v 0.722221 -0.901327 1.465027 +v 0.724454 -0.901327 1.521796 +v 0.723958 -0.895502 1.464890 +v 0.726196 -0.895503 1.521796 +v 0.722220 -0.901327 1.578563 +v 0.715546 -0.901327 1.634982 +v 0.723957 -0.895503 1.578700 +v 0.717266 -0.895503 1.635254 +v 0.704459 -0.901327 1.690701 +v 0.689041 -0.901327 1.745381 +v 0.706153 -0.895503 1.691108 +v 0.690698 -0.895503 1.745919 +v 0.669374 -0.901327 1.798681 +v 0.645593 -0.901327 1.850275 +v 0.670984 -0.895503 1.799347 +v 0.647144 -0.895503 1.851066 +v 0.617830 -0.901327 1.899842 +v 0.586270 -0.901327 1.947081 +v 0.619315 -0.895503 1.900752 +v 0.587679 -0.895503 1.948105 +v 0.551095 -0.901327 1.991694 +v 0.512534 -0.901327 2.033415 +v 0.552419 -0.895502 1.992825 +v 0.513765 -0.895502 2.034646 +v 0.470813 -0.901327 2.071976 +v 0.426200 -0.901327 2.107151 +v 0.471944 -0.895502 2.073301 +v 0.427224 -0.895502 2.108561 +v 0.378961 -0.901328 2.138713 +v 0.329396 -0.901329 2.166478 +v 0.379875 -0.895501 2.140204 +v 0.330198 -0.895498 2.168052 +v 0.277816 -0.901343 2.190297 +v 0.224513 -0.901343 2.209964 +v 0.278551 -0.895473 2.192070 +v 0.225099 -0.895476 2.211767 +v 0.169826 -0.901337 2.225366 +v 0.114103 -0.901333 2.236443 +v 0.170256 -0.895485 2.227156 +v 0.114385 -0.895492 2.238225 +v 0.057683 -0.901332 2.243115 +v 0.057824 -0.895492 2.244908 +v -0.055853 -0.890985 2.243100 +v -0.112272 -0.890985 2.236426 +v 0.000915 -0.890985 2.245334 +v -0.055514 -0.888087 2.238792 +v 0.000915 -0.888087 2.241012 +v -0.111596 -0.888087 2.232158 +v -0.167990 -0.890985 2.225339 +v -0.222670 -0.890985 2.209921 +v -0.166982 -0.888087 2.221137 +v -0.221335 -0.888087 2.205811 +v -0.275970 -0.890985 2.190254 +v -0.327564 -0.890985 2.166472 +v -0.274316 -0.888087 2.186262 +v -0.325603 -0.888087 2.162622 +v -0.377131 -0.890985 2.138710 +v -0.424370 -0.890985 2.107150 +v -0.374873 -0.888087 2.135025 +v -0.421830 -0.888087 2.103654 +v -0.468983 -0.890985 2.071975 +v -0.510704 -0.890985 2.033414 +v -0.466177 -0.888087 2.068689 +v -0.507649 -0.888087 2.030358 +v -0.549265 -0.890985 1.991693 +v -0.584440 -0.890985 1.947080 +v -0.545980 -0.888087 1.988887 +v -0.580944 -0.888087 1.944540 +v -0.616000 -0.890985 1.899840 +v -0.643763 -0.890985 1.850274 +v -0.612316 -0.888087 1.897583 +v -0.639913 -0.888087 1.848312 +v -0.667545 -0.890985 1.798679 +v -0.687211 -0.890985 1.745379 +v -0.663552 -0.888087 1.797025 +v -0.683102 -0.888087 1.744044 +v -0.702629 -0.890985 1.690701 +v -0.713716 -0.890985 1.634981 +v -0.698427 -0.888087 1.689692 +v -0.709448 -0.888087 1.634305 +v -0.720390 -0.890985 1.578562 +v -0.722624 -0.890985 1.521794 +v -0.716082 -0.888087 1.578223 +v -0.718303 -0.888087 1.521794 +v -0.720390 -0.890985 1.465026 +v -0.713716 -0.890985 1.408608 +v -0.716082 -0.888087 1.465365 +v -0.709448 -0.888087 1.409284 +v -0.702629 -0.890985 1.352888 +v -0.687211 -0.890985 1.298208 +v -0.698427 -0.888087 1.353897 +v -0.683101 -0.888087 1.299544 +v -0.667544 -0.890985 1.244909 +v -0.643762 -0.890985 1.193314 +v -0.663552 -0.888087 1.246563 +v -0.639912 -0.888087 1.195276 +v -0.616000 -0.890985 1.143748 +v -0.584440 -0.890985 1.096509 +v -0.612316 -0.888087 1.146005 +v -0.580944 -0.888087 1.099048 +v -0.549265 -0.890985 1.051895 +v -0.510703 -0.890985 1.010175 +v -0.545979 -0.888087 1.054702 +v -0.507648 -0.888088 1.013230 +v -0.468983 -0.890985 0.971613 +v -0.424370 -0.890985 0.936439 +v -0.466177 -0.888087 0.974899 +v -0.421830 -0.888087 0.939935 +v -0.377131 -0.890985 0.904879 +v -0.327565 -0.890985 0.877116 +v -0.374873 -0.888087 0.908563 +v -0.325603 -0.888088 0.880966 +v -0.275970 -0.890985 0.853335 +v -0.222671 -0.890985 0.833668 +v -0.274316 -0.888087 0.857327 +v -0.221335 -0.888088 0.837777 +v -0.167991 -0.890985 0.818250 +v -0.112271 -0.890985 0.807163 +v -0.166982 -0.888087 0.822452 +v -0.111595 -0.888088 0.811431 +v -0.055853 -0.890985 0.800489 +v 0.000916 -0.890985 0.798255 +v -0.055513 -0.888087 0.804797 +v 0.000916 -0.888088 0.802576 +v 0.057683 -0.890985 0.800489 +v 0.114102 -0.890985 0.807163 +v 0.057344 -0.888087 0.804797 +v 0.113426 -0.888088 0.811431 +v 0.169822 -0.890985 0.818250 +v 0.224502 -0.890985 0.833668 +v 0.168813 -0.888088 0.822452 +v 0.223166 -0.888088 0.837778 +v 0.277801 -0.890985 0.853335 +v 0.329396 -0.890985 0.877117 +v 0.276147 -0.888088 0.857327 +v 0.327434 -0.888088 0.880967 +v 0.378962 -0.890985 0.904879 +v 0.426201 -0.890985 0.936440 +v 0.376704 -0.888088 0.908564 +v 0.423661 -0.888088 0.939935 +v 0.470815 -0.890985 0.971614 +v 0.512535 -0.890985 1.010176 +v 0.468008 -0.888088 0.974900 +v 0.509480 -0.888088 1.013231 +v 0.551096 -0.890985 1.051897 +v 0.586271 -0.890985 1.096510 +v 0.547811 -0.888088 1.054703 +v 0.582775 -0.888088 1.099050 +v 0.617831 -0.890985 1.143749 +v 0.645594 -0.890985 1.193316 +v 0.614147 -0.888088 1.146007 +v 0.641744 -0.888088 1.195277 +v 0.669375 -0.890986 1.244911 +v 0.689042 -0.890986 1.298210 +v 0.665383 -0.888088 1.246564 +v 0.684932 -0.888088 1.299545 +v 0.704460 -0.890986 1.352890 +v 0.715546 -0.890985 1.408608 +v 0.700258 -0.888088 1.353899 +v 0.711279 -0.888088 1.409285 +v 0.722221 -0.890985 1.465027 +v 0.724454 -0.890985 1.521796 +v 0.717913 -0.888088 1.465366 +v 0.720133 -0.888088 1.521796 +v 0.722220 -0.890986 1.578563 +v 0.715546 -0.890986 1.634982 +v 0.717913 -0.888088 1.578224 +v 0.711278 -0.888088 1.634306 +v 0.704459 -0.890986 1.690701 +v 0.689041 -0.890986 1.745381 +v 0.700257 -0.888088 1.689692 +v 0.684932 -0.888088 1.744046 +v 0.669374 -0.890986 1.798680 +v 0.645592 -0.890986 1.850275 +v 0.665382 -0.888088 1.797027 +v 0.641742 -0.888088 1.848313 +v 0.617830 -0.890985 1.899841 +v 0.586270 -0.890985 1.947081 +v 0.614146 -0.888088 1.897584 +v 0.582774 -0.888088 1.944541 +v 0.551095 -0.890985 1.991694 +v 0.512534 -0.890985 2.033414 +v 0.547809 -0.888088 1.988888 +v 0.509478 -0.888088 2.030359 +v 0.470813 -0.890985 2.071976 +v 0.426200 -0.890985 2.107150 +v 0.468007 -0.888088 2.068690 +v 0.423660 -0.888088 2.103655 +v 0.378960 -0.890985 2.138711 +v 0.329394 -0.890985 2.166473 +v 0.376702 -0.888087 2.135026 +v 0.327432 -0.888088 2.162623 +v 0.277799 -0.890985 2.190255 +v 0.224499 -0.890985 2.209921 +v 0.276145 -0.888087 2.186262 +v 0.223164 -0.888088 2.205812 +v 0.169819 -0.890985 2.225339 +v 0.114100 -0.890985 2.236426 +v 0.168811 -0.888087 2.221137 +v 0.113424 -0.888087 2.232158 +v 0.057682 -0.890985 2.243100 +v 0.057343 -0.888087 2.238792 +v -0.055044 -0.887121 2.232814 +v -0.110658 -0.887121 2.226235 +v 0.000915 -0.887121 2.235016 +v -0.054383 -0.888245 2.224424 +v 0.000915 -0.888245 2.226600 +v -0.109341 -0.888245 2.217923 +v -0.165582 -0.887121 2.215306 +v -0.219482 -0.887121 2.200108 +v -0.163617 -0.888245 2.207123 +v -0.216881 -0.888245 2.192105 +v -0.272021 -0.887121 2.180722 +v -0.322880 -0.887121 2.157279 +v -0.268801 -0.888245 2.172947 +v -0.319060 -0.888245 2.149781 +v -0.371740 -0.887121 2.129913 +v -0.418306 -0.887121 2.098802 +v -0.367343 -0.888245 2.122737 +v -0.413359 -0.888245 2.091994 +v -0.462283 -0.887121 2.064129 +v -0.503408 -0.887121 2.026118 +v -0.456817 -0.888245 2.057730 +v -0.497458 -0.888245 2.020167 +v -0.541420 -0.887121 1.984992 +v -0.576093 -0.887121 1.941015 +v -0.535021 -0.888245 1.979527 +v -0.569285 -0.888245 1.936069 +v -0.607203 -0.887121 1.894449 +v -0.634570 -0.887121 1.845590 +v -0.600028 -0.888245 1.890052 +v -0.627071 -0.888245 1.841769 +v -0.658012 -0.887121 1.794731 +v -0.677399 -0.887121 1.742191 +v -0.650237 -0.888245 1.791510 +v -0.669395 -0.888245 1.739591 +v -0.692597 -0.887121 1.688292 +v -0.703525 -0.887121 1.633367 +v -0.684414 -0.888245 1.686328 +v -0.695213 -0.888245 1.632051 +v -0.710104 -0.887121 1.577753 +v -0.712306 -0.887121 1.521794 +v -0.701715 -0.888245 1.577093 +v -0.703891 -0.888245 1.521795 +v -0.710104 -0.887121 1.465836 +v -0.703525 -0.887121 1.410222 +v -0.701715 -0.888245 1.466496 +v -0.695213 -0.888245 1.411538 +v -0.692596 -0.887121 1.355297 +v -0.677398 -0.887121 1.301397 +v -0.684413 -0.888245 1.357261 +v -0.669395 -0.888245 1.303997 +v -0.658012 -0.887121 1.248857 +v -0.634569 -0.887121 1.197998 +v -0.650237 -0.888245 1.252078 +v -0.627071 -0.888245 1.201819 +v -0.607203 -0.887121 1.149139 +v -0.576093 -0.887121 1.102573 +v -0.600027 -0.888245 1.153536 +v -0.569284 -0.888245 1.107520 +v -0.541419 -0.887121 1.058596 +v -0.503408 -0.887121 1.017470 +v -0.535020 -0.888245 1.064062 +v -0.497457 -0.888245 1.023421 +v -0.462282 -0.887121 0.979459 +v -0.418305 -0.887121 0.944786 +v -0.456817 -0.888245 0.985858 +v -0.413359 -0.888245 0.951594 +v -0.371740 -0.887121 0.913676 +v -0.322881 -0.887121 0.886309 +v -0.367343 -0.888245 0.920851 +v -0.319060 -0.888245 0.893808 +v -0.272022 -0.887121 0.862867 +v -0.219482 -0.887121 0.843480 +v -0.268801 -0.888245 0.870642 +v -0.216882 -0.888245 0.851484 +v -0.165582 -0.887121 0.828283 +v -0.110657 -0.887121 0.817354 +v -0.163618 -0.888245 0.836466 +v -0.109341 -0.888245 0.825666 +v -0.055043 -0.887121 0.810775 +v 0.000915 -0.887121 0.808573 +v -0.054383 -0.888245 0.819164 +v 0.000916 -0.888245 0.816989 +v 0.056874 -0.887121 0.810775 +v 0.112488 -0.887121 0.817354 +v 0.056214 -0.888245 0.819165 +v 0.111171 -0.888245 0.825666 +v 0.167413 -0.887122 0.828283 +v 0.221313 -0.887122 0.843481 +v 0.165448 -0.888245 0.836466 +v 0.218713 -0.888245 0.851485 +v 0.273852 -0.887122 0.862867 +v 0.324712 -0.887122 0.886310 +v 0.270632 -0.888245 0.870642 +v 0.320891 -0.888245 0.893808 +v 0.373571 -0.887122 0.913677 +v 0.420137 -0.887122 0.944787 +v 0.369174 -0.888245 0.920852 +v 0.415190 -0.888245 0.951595 +v 0.464114 -0.887122 0.979460 +v 0.505239 -0.887122 1.017472 +v 0.458648 -0.888245 0.985859 +v 0.499289 -0.888245 1.023422 +v 0.543251 -0.887122 1.058597 +v 0.577924 -0.887122 1.102574 +v 0.536852 -0.888245 1.064063 +v 0.571116 -0.888245 1.107521 +v 0.609034 -0.887122 1.149140 +v 0.636401 -0.887122 1.198000 +v 0.601859 -0.888245 1.153537 +v 0.628902 -0.888246 1.201820 +v 0.659843 -0.887122 1.248859 +v 0.679229 -0.887122 1.301398 +v 0.652068 -0.888246 1.252079 +v 0.671226 -0.888246 1.303999 +v 0.694427 -0.887122 1.355298 +v 0.705356 -0.887122 1.410223 +v 0.686244 -0.888246 1.357262 +v 0.697044 -0.888245 1.411540 +v 0.711935 -0.887122 1.465837 +v 0.714137 -0.887122 1.521796 +v 0.703545 -0.888245 1.466498 +v 0.705721 -0.888246 1.521796 +v 0.711935 -0.887122 1.577753 +v 0.705355 -0.887122 1.633367 +v 0.703545 -0.888246 1.577093 +v 0.697043 -0.888246 1.632051 +v 0.694427 -0.887122 1.688293 +v 0.679229 -0.887122 1.742193 +v 0.686244 -0.888246 1.686328 +v 0.671225 -0.888246 1.739592 +v 0.659842 -0.887122 1.794732 +v 0.636399 -0.887122 1.845591 +v 0.652067 -0.888246 1.791511 +v 0.628901 -0.888246 1.841770 +v 0.609033 -0.887122 1.894451 +v 0.577923 -0.887122 1.941016 +v 0.601857 -0.888246 1.890053 +v 0.571114 -0.888245 1.936070 +v 0.543250 -0.887122 1.984993 +v 0.505238 -0.887122 2.026119 +v 0.536850 -0.888245 1.979528 +v 0.499287 -0.888245 2.020168 +v 0.464112 -0.887122 2.064130 +v 0.420135 -0.887121 2.098803 +v 0.458647 -0.888245 2.057731 +v 0.415189 -0.888245 2.091995 +v 0.373569 -0.887121 2.129913 +v 0.324710 -0.887121 2.157280 +v 0.369172 -0.888245 2.122738 +v 0.320889 -0.888245 2.149782 +v 0.273850 -0.887121 2.180722 +v 0.221311 -0.887121 2.200109 +v 0.270630 -0.888245 2.172948 +v 0.218711 -0.888245 2.192105 +v 0.167411 -0.887121 2.215307 +v 0.112486 -0.887121 2.226235 +v 0.165446 -0.888245 2.207124 +v 0.111170 -0.888245 2.217923 +v 0.056872 -0.887121 2.232814 +v 0.056212 -0.888245 2.224424 +v 0.518834 -0.035964 2.349718 +v 0.518127 0.000000 2.350944 +v 0.520947 -0.071707 2.346055 +v 0.486632 -0.038332 2.365878 +v 0.488884 -0.076429 2.361974 +v 0.485879 0.000000 2.367184 +v 0.524457 -0.107008 2.339971 +v 0.529337 -0.141649 2.331510 +v 0.492625 -0.114053 2.355489 +v 0.497827 -0.150976 2.346471 +v 0.535563 -0.175416 2.320717 +v 0.543092 -0.208103 2.307667 +v 0.504463 -0.186966 2.334968 +v 0.512487 -0.221805 2.321058 +v 0.551880 -0.239505 2.292431 +v 0.561871 -0.269432 2.275112 +v 0.521854 -0.255275 2.304819 +v 0.532503 -0.287173 2.286360 +v 0.573006 -0.297696 2.255809 +v 0.585213 -0.324128 2.234648 +v 0.544371 -0.317298 2.265786 +v 0.557382 -0.345469 2.243231 +v 0.598420 -0.348558 2.211753 +v 0.612543 -0.370842 2.187270 +v 0.571459 -0.371508 2.218829 +v 0.586512 -0.395259 2.192734 +v 0.627498 -0.390836 2.161347 +v 0.643189 -0.408425 2.134146 +v 0.602451 -0.416570 2.165103 +v 0.619175 -0.435317 2.136112 +v 0.659522 -0.423491 2.105832 +v 0.676395 -0.435951 2.076583 +v 0.636583 -0.451375 2.105934 +v 0.654567 -0.464655 2.074758 +v 0.693704 -0.445719 2.046576 +v 0.711343 -0.452742 2.015998 +v 0.673016 -0.475066 2.042776 +v 0.691817 -0.482552 2.010185 +v 0.729203 -0.456971 1.985038 +v 0.747174 -0.458386 1.953885 +v 0.710853 -0.487059 1.977186 +v 0.730007 -0.488567 1.943982 +v 0.765145 -0.456971 1.922732 +v 0.783005 -0.452742 1.891771 +v 0.749161 -0.487059 1.910778 +v 0.768197 -0.482552 1.877778 +v 0.800643 -0.445718 1.861194 +v 0.817953 -0.435951 1.831187 +v 0.786997 -0.475066 1.845188 +v 0.805446 -0.464655 1.813205 +v 0.834825 -0.423491 1.801938 +v 0.851158 -0.408425 1.773624 +v 0.823430 -0.451375 1.782030 +v 0.840838 -0.435317 1.751852 +v 0.866849 -0.390836 1.746423 +v 0.881803 -0.370842 1.720499 +v 0.857562 -0.416570 1.722860 +v 0.873501 -0.395259 1.695230 +v 0.895926 -0.348557 1.696017 +v 0.909133 -0.324127 1.673122 +v 0.888553 -0.371508 1.669135 +v 0.902630 -0.345469 1.644732 +v 0.921341 -0.297696 1.651960 +v 0.932476 -0.269432 1.632658 +v 0.915641 -0.317297 1.622178 +v 0.927509 -0.287172 1.601604 +v 0.942466 -0.239505 1.615338 +v 0.951255 -0.208102 1.600103 +v 0.938158 -0.255274 1.583144 +v 0.947525 -0.221805 1.566906 +v 0.958783 -0.175415 1.587052 +v 0.965009 -0.141649 1.576260 +v 0.955549 -0.186965 1.552996 +v 0.962185 -0.150975 1.541492 +v 0.969890 -0.107007 1.567799 +v 0.973399 -0.071707 1.561715 +v 0.967387 -0.114053 1.532475 +v 0.971128 -0.076428 1.525990 +v 0.975512 -0.035964 1.558052 +v 0.976219 0.000000 1.556826 +v 0.973380 -0.038332 1.522087 +v 0.974133 0.000000 1.520780 +v 0.291301 -0.052423 2.459888 +v 0.170328 -0.059158 2.488906 +v 0.169165 0.000000 2.490923 +v 0.290270 0.000000 2.461675 +v 0.294381 -0.104523 2.454550 +v 0.173803 -0.117953 2.482882 +v 0.048966 -0.064766 2.501157 +v 0.052770 -0.129134 2.494561 +v 0.047692 0.000000 2.503364 +v 0.299496 -0.155978 2.445681 +v 0.179577 -0.176018 2.472874 +v 0.306611 -0.206472 2.433349 +v 0.187605 -0.233001 2.458956 +v 0.059091 -0.192704 2.483603 +v 0.067880 -0.255088 2.468368 +v 0.315686 -0.255692 2.417617 +v 0.197846 -0.288544 2.441203 +v 0.326659 -0.303337 2.398594 +v 0.210230 -0.342312 2.419736 +v 0.079092 -0.315896 2.448932 +v 0.092650 -0.374760 2.425429 +v 0.339470 -0.349110 2.376386 +v 0.224686 -0.393965 2.394675 +v 0.354033 -0.392734 2.351141 +v 0.241120 -0.443194 2.366186 +v 0.108476 -0.431310 2.397993 +v 0.126468 -0.485205 2.366804 +v 0.370264 -0.433932 2.323004 +v 0.259436 -0.489686 2.334435 +v 0.388057 -0.472459 2.292159 +v 0.279516 -0.533162 2.299626 +v 0.146521 -0.536103 2.332042 +v 0.168504 -0.583702 2.293934 +v 0.407309 -0.508069 2.258786 +v 0.301241 -0.573347 2.261965 +v 0.427895 -0.540550 2.223100 +v 0.324472 -0.610003 2.221694 +v 0.192288 -0.627697 2.252703 +v 0.217721 -0.667827 2.208614 +v 0.449692 -0.569695 2.185312 +v 0.349071 -0.642892 2.179051 +v 0.472564 -0.595332 2.145664 +v 0.374881 -0.671824 2.134308 +v 0.244652 -0.703834 2.161930 +v 0.272909 -0.735508 2.112946 +v 0.496372 -0.617294 2.104393 +v 0.401748 -0.696607 2.087735 +v 0.520966 -0.635455 2.061758 +v 0.429502 -0.717102 2.039622 +v 0.302322 -0.762640 2.061957 +v 0.332707 -0.785078 2.009284 +v 0.546197 -0.649693 2.018019 +v 0.457975 -0.733169 1.990264 +v 0.571908 -0.659931 1.973448 +v 0.486989 -0.744722 1.939966 +v 0.363879 -0.802668 1.955246 +v 0.395644 -0.815317 1.900181 +v 0.597942 -0.666094 1.928319 +v 0.516367 -0.751677 1.889038 +v 0.624136 -0.668157 1.882910 +v 0.545928 -0.754005 1.837794 +v 0.427807 -0.822931 1.844425 +v 0.460170 -0.825480 1.788324 +v 0.650331 -0.666094 1.837500 +v 0.575488 -0.751677 1.786551 +v 0.676365 -0.659931 1.792371 +v 0.604866 -0.744722 1.735623 +v 0.492532 -0.822931 1.732223 +v 0.524695 -0.815317 1.676467 +v 0.702075 -0.649693 1.747800 +v 0.633881 -0.733169 1.685325 +v 0.727306 -0.635455 1.704061 +v 0.662354 -0.717102 1.635966 +v 0.556460 -0.802668 1.621402 +v 0.587632 -0.785078 1.567364 +v 0.751901 -0.617294 1.661426 +v 0.690108 -0.696607 1.587854 +v 0.775707 -0.595332 1.620155 +v 0.716974 -0.671823 1.541281 +v 0.618017 -0.762640 1.514691 +v 0.647430 -0.735508 1.463703 +v 0.798580 -0.569695 1.580507 +v 0.742785 -0.642892 1.496537 +v 0.820377 -0.540550 1.542720 +v 0.767382 -0.610003 1.453895 +v 0.675687 -0.703833 1.414719 +v 0.702617 -0.667827 1.368035 +v 0.840963 -0.508069 1.507033 +v 0.790613 -0.573347 1.413624 +v 0.860214 -0.472459 1.473660 +v 0.812338 -0.533162 1.375964 +v 0.728051 -0.627696 1.323946 +v 0.751835 -0.583701 1.282715 +v 0.878008 -0.433932 1.442815 +v 0.832418 -0.489685 1.341155 +v 0.894239 -0.392733 1.414679 +v 0.850734 -0.443193 1.309403 +v 0.773817 -0.536103 1.244607 +v 0.793870 -0.485205 1.209845 +v 0.908801 -0.349110 1.389434 +v 0.867168 -0.393965 1.280915 +v 0.921612 -0.303337 1.367226 +v 0.881625 -0.342311 1.255854 +v 0.811861 -0.431310 1.178656 +v 0.827688 -0.374760 1.151220 +v 0.932586 -0.255691 1.348203 +v 0.894008 -0.288544 1.234387 +v 0.941660 -0.206472 1.332472 +v 0.904249 -0.233000 1.216634 +v 0.841245 -0.315896 1.127717 +v 0.852457 -0.255087 1.108281 +v 0.948775 -0.155977 1.320139 +v 0.912277 -0.176018 1.202716 +v 0.953891 -0.104522 1.311271 +v 0.918051 -0.117952 1.192708 +v 0.861246 -0.192703 1.093045 +v 0.867567 -0.129133 1.082088 +v 0.956970 -0.052423 1.305932 +v 0.921526 -0.059158 1.186684 +v 0.958001 0.000000 1.304145 +v 0.922689 0.000000 1.184667 +v 0.871372 -0.064766 1.075493 +v 0.872645 0.000000 1.073285 +v -0.266268 -0.148711 2.453219 +v -0.270649 -0.074585 2.460815 +v -0.171042 -0.072404 2.486278 +v -0.166788 -0.144362 2.478904 +v -0.360117 -0.151276 2.417775 +v -0.364574 -0.075871 2.425502 +v -0.272116 0.000000 2.463357 +v -0.366066 0.000000 2.428088 +v -0.172466 0.000000 2.488746 +v -0.248867 -0.293760 2.423055 +v -0.258989 -0.221919 2.440602 +v -0.159723 -0.215429 2.466656 +v -0.149897 -0.285169 2.449622 +v -0.342416 -0.298826 2.387090 +v -0.352713 -0.225746 2.404940 +v -0.220343 -0.431576 2.373607 +v -0.235956 -0.363788 2.400672 +v -0.137363 -0.353149 2.427894 +v -0.122207 -0.418955 2.401620 +v -0.313400 -0.439019 2.336789 +v -0.329282 -0.370062 2.364322 +v -0.181397 -0.558764 2.306093 +v -0.202116 -0.496700 2.342011 +v -0.104514 -0.482173 2.370948 +v -0.084401 -0.542423 2.336081 +v -0.273783 -0.568401 2.268111 +v -0.294859 -0.505265 2.304649 +v -0.132989 -0.672195 2.222176 +v -0.158304 -0.617380 2.266062 +v -0.061984 -0.599324 2.297220 +v -0.037408 -0.652536 2.254618 +v -0.224539 -0.683787 2.182747 +v -0.250292 -0.628027 2.227390 +v -0.076310 -0.769074 2.123921 +v -0.105599 -0.722859 2.174695 +v -0.010819 -0.701719 2.208525 +v 0.017614 -0.746582 2.159237 +v -0.166883 -0.782337 2.082798 +v -0.196677 -0.735325 2.134447 +v -0.012756 -0.847015 2.013749 +v -0.045297 -0.810539 2.070159 +v 0.047720 -0.786835 2.107047 +v 0.079309 -0.822244 2.052286 +v -0.102234 -0.861623 1.970725 +v -0.135336 -0.824518 2.028109 +v 0.056108 -0.904101 1.894371 +v 0.021116 -0.878261 1.955030 +v 0.112191 -0.852576 1.995285 +v 0.146159 -0.877660 1.936400 +v -0.032182 -0.919692 1.849289 +v -0.067777 -0.893407 1.910994 +v 0.128586 -0.938924 1.768728 +v 0.092006 -0.924357 1.832141 +v 0.181007 -0.897324 1.875990 +v 0.216518 -0.911465 1.814431 +v 0.041546 -0.955116 1.721479 +v 0.004335 -0.940298 1.785986 +v 0.202894 -0.950628 1.639913 +v 0.165626 -0.947693 1.704519 +v 0.252474 -0.919977 1.752100 +v 0.288653 -0.922826 1.689384 +v 0.117136 -0.967022 1.590443 +v 0.079224 -0.964036 1.656163 +v 0.277203 -0.938924 1.511099 +v 0.240163 -0.947693 1.575307 +v 0.324832 -0.919977 1.626666 +v 0.360788 -0.911464 1.564335 +v 0.192726 -0.955116 1.459407 +v 0.155048 -0.964036 1.524722 +v 0.349681 -0.904100 1.385455 +v 0.313783 -0.924357 1.447685 +v 0.396298 -0.897324 1.502777 +v 0.431146 -0.877659 1.442366 +v 0.266454 -0.919692 1.331596 +v 0.229937 -0.940298 1.394900 +v 0.418545 -0.847015 1.266077 +v 0.384672 -0.878261 1.324796 +v 0.465114 -0.852576 1.383483 +v 0.497996 -0.822244 1.326481 +v 0.336506 -0.861622 1.210160 +v 0.302049 -0.893407 1.269892 +v 0.482099 -0.769073 1.155905 +v 0.451086 -0.810539 1.209667 +v 0.529586 -0.786834 1.271720 +v 0.559692 -0.746581 1.219530 +v 0.401156 -0.782336 1.098088 +v 0.369608 -0.824517 1.152777 +v 0.538778 -0.672194 1.057650 +v 0.511388 -0.722858 1.105132 +v 0.588124 -0.701718 1.170242 +v 0.614713 -0.652536 1.124149 +v 0.458812 -0.683786 0.998139 +v 0.430950 -0.735325 1.046439 +v 0.587187 -0.558764 0.973733 +v 0.564094 -0.617379 1.013765 +v 0.639289 -0.599324 1.081547 +v 0.661706 -0.542423 1.042686 +v 0.508055 -0.568400 0.912774 +v 0.484565 -0.628026 0.953496 +v 0.626132 -0.431576 0.906220 +v 0.607906 -0.496699 0.937815 +v 0.681819 -0.482173 1.007819 +v 0.699513 -0.418954 0.977147 +v 0.547673 -0.439018 0.844096 +v 0.529132 -0.505265 0.876237 +v 0.654655 -0.293760 0.856772 +v 0.641744 -0.363787 0.879154 +v 0.714669 -0.353148 0.950873 +v 0.727202 -0.285168 0.929145 +v 0.576689 -0.298826 0.793795 +v 0.563555 -0.370061 0.816564 +v 0.672056 -0.148710 0.826607 +v 0.664777 -0.221918 0.839225 +v 0.737028 -0.215428 0.912112 +v 0.744093 -0.144361 0.899863 +v 0.594389 -0.151275 0.763111 +v 0.586985 -0.225745 0.775946 +v 0.677904 0.000000 0.816470 +v 0.676437 -0.074585 0.819012 +v 0.748347 -0.072403 0.892490 +v 0.749770 0.000000 0.890022 +v 0.600338 0.000000 0.752798 +v 0.598847 -0.075871 0.755385 +v -0.449415 -0.152398 2.374440 +v -0.453905 -0.076434 2.382224 +v -0.536437 -0.152798 2.327161 +v -0.540939 -0.076635 2.334965 +v -0.455408 0.000000 2.384830 +v -0.542446 0.000000 2.337577 +v -0.431583 -0.301043 2.343528 +v -0.441956 -0.227420 2.361510 +v -0.518558 -0.301834 2.296167 +v -0.528959 -0.228018 2.314196 +v -0.402351 -0.442275 2.292854 +v -0.418351 -0.372806 2.320591 +v -0.489250 -0.443438 2.245360 +v -0.505292 -0.373786 2.273170 +v -0.362440 -0.572616 2.223667 +v -0.383673 -0.509013 2.260475 +v -0.449234 -0.574121 2.175991 +v -0.470523 -0.510351 2.212896 +v -0.312832 -0.688858 2.137670 +v -0.338775 -0.632685 2.182643 +v -0.399495 -0.690669 2.089767 +v -0.425507 -0.634348 2.134859 +v -0.254748 -0.788139 2.036979 +v -0.284763 -0.740779 2.089011 +v -0.341258 -0.790211 1.988813 +v -0.371352 -0.742726 2.040981 +v -0.189619 -0.868013 1.924075 +v -0.222966 -0.830633 1.981884 +v -0.275957 -0.870295 1.875612 +v -0.309393 -0.832816 1.933573 +v -0.119048 -0.926513 1.801738 +v -0.154907 -0.900033 1.863901 +v -0.205202 -0.928949 1.752953 +v -0.241154 -0.902399 1.815279 +v -0.044773 -0.962200 1.672980 +v -0.082260 -0.947272 1.737966 +v -0.130731 -0.964729 1.623857 +v -0.168317 -0.949762 1.689013 +v 0.031378 -0.974194 1.540972 +v -0.006815 -0.971186 1.607180 +v -0.054381 -0.976754 1.491502 +v -0.092674 -0.973739 1.557884 +v 0.107528 -0.962199 1.408964 +v 0.069570 -0.971186 1.474764 +v 0.021970 -0.964729 1.359147 +v -0.016088 -0.973739 1.425120 +v 0.181803 -0.926513 1.280206 +v 0.145015 -0.947272 1.343979 +v 0.096440 -0.928948 1.230050 +v 0.059555 -0.949762 1.293991 +v 0.252374 -0.868012 1.157869 +v 0.217662 -0.900033 1.218044 +v 0.167197 -0.870294 1.107392 +v 0.132393 -0.902399 1.167725 +v 0.317504 -0.788138 1.044966 +v 0.285722 -0.830632 1.100060 +v 0.232497 -0.790210 0.994192 +v 0.200632 -0.832815 1.049431 +v 0.375588 -0.688858 0.944275 +v 0.347519 -0.740778 0.992934 +v 0.290734 -0.690669 0.893236 +v 0.262591 -0.742725 0.942023 +v 0.425196 -0.572615 0.858278 +v 0.401531 -0.632684 0.899302 +v 0.340473 -0.574121 0.807013 +v 0.316746 -0.634347 0.848145 +v 0.465107 -0.442274 0.789091 +v 0.446429 -0.509012 0.821470 +v 0.380489 -0.443437 0.737644 +v 0.361762 -0.510350 0.770108 +v 0.494339 -0.301042 0.738417 +v 0.481107 -0.372805 0.761354 +v 0.409797 -0.301833 0.686837 +v 0.396531 -0.373785 0.709834 +v 0.512171 -0.152397 0.707505 +v 0.504711 -0.227419 0.720435 +v 0.427676 -0.152797 0.655843 +v 0.420197 -0.228017 0.668808 +v 0.518164 0.000000 0.697116 +v 0.516661 -0.076434 0.699721 +v 0.433685 0.000000 0.645427 +v 0.432178 -0.076635 0.648039 +v -0.060602 -0.137886 2.492960 +v -0.064665 -0.069156 2.500003 +v -0.066024 0.000000 2.502360 +v -0.044468 -0.272378 2.464991 +v -0.053853 -0.205765 2.481261 +v -0.018020 -0.400162 2.419143 +v -0.032496 -0.337308 2.444238 +v 0.018091 -0.518093 2.356543 +v -0.001120 -0.460545 2.389846 +v 0.062976 -0.623266 2.278734 +v 0.039503 -0.572441 2.319426 +v 0.115530 -0.713093 2.187632 +v 0.088372 -0.670243 2.234709 +v 0.174457 -0.785362 2.085478 +v 0.144285 -0.751541 2.137783 +v 0.238309 -0.838291 1.974790 +v 0.205864 -0.814333 2.031033 +v 0.305512 -0.870580 1.858292 +v 0.271594 -0.857074 1.917090 +v 0.374411 -0.881432 1.738854 +v 0.339855 -0.878710 1.798757 +v 0.443310 -0.870580 1.619415 +v 0.408967 -0.878710 1.678950 +v 0.510513 -0.838291 1.502917 +v 0.477228 -0.857074 1.560617 +v 0.574365 -0.785361 1.392230 +v 0.542957 -0.814333 1.446674 +v 0.633292 -0.713093 1.290077 +v 0.604537 -0.751540 1.339925 +v 0.685846 -0.623265 1.198974 +v 0.660450 -0.670242 1.242999 +v 0.730730 -0.518093 1.121165 +v 0.709319 -0.572440 1.158282 +v 0.766841 -0.400161 1.058566 +v 0.749941 -0.460545 1.087862 +v 0.793288 -0.272377 1.012717 +v 0.781317 -0.337307 1.033470 +v 0.809423 -0.137886 0.984748 +v 0.802674 -0.205765 0.996448 +v 0.814845 0.000000 0.975349 +v 0.813485 -0.069156 0.977706 +v 0.406385 -0.089025 2.406193 +v 0.403762 -0.044650 2.410740 +v 0.402884 0.000000 2.412262 +v 0.416801 -0.175857 2.388135 +v 0.410742 -0.132850 2.398640 +v 0.433877 -0.258359 2.358534 +v 0.424531 -0.217778 2.374736 +v 0.457192 -0.334500 2.318117 +v 0.444788 -0.297345 2.339619 +v 0.486171 -0.402404 2.267881 +v 0.471016 -0.369589 2.294153 +v 0.520102 -0.460400 2.209062 +v 0.502568 -0.432734 2.239457 +v 0.558148 -0.507059 2.143108 +v 0.538667 -0.485223 2.176878 +v 0.599373 -0.541231 2.071644 +v 0.578425 -0.525764 2.107956 +v 0.642761 -0.562078 1.996428 +v 0.620862 -0.553358 2.034390 +v 0.687245 -0.569084 1.919314 +v 0.664934 -0.567327 1.957990 +v 0.731729 -0.562078 1.842200 +v 0.709556 -0.567327 1.880638 +v 0.775117 -0.541231 1.766985 +v 0.753627 -0.553357 1.804238 +v 0.816342 -0.507057 1.695521 +v 0.796065 -0.525762 1.730672 +v 0.854387 -0.460399 1.629567 +v 0.835822 -0.485222 1.661751 +v 0.888318 -0.402404 1.570748 +v 0.871921 -0.432733 1.599172 +v 0.917297 -0.334499 1.520511 +v 0.903473 -0.369589 1.544476 +v 0.940611 -0.258359 1.480096 +v 0.929701 -0.297344 1.499010 +v 0.957687 -0.175856 1.450493 +v 0.949958 -0.217778 1.463893 +v 0.968104 -0.089024 1.432437 +v 0.963746 -0.132849 1.439989 +v 0.971605 0.000000 1.426368 +v 0.970727 -0.044649 1.427889 +v -0.769087 -0.743718 1.967094 +v -0.714695 -0.747597 2.044239 +v -0.653195 -0.752111 2.113454 +v -0.585817 -0.756073 2.175694 +v -0.513708 -0.758062 2.231602 +v -0.437146 -0.758264 2.280675 +v -0.356540 -0.757141 2.322686 +v -0.272344 -0.754447 2.357557 +v -0.184993 -0.749770 2.385013 +v -0.094780 -0.744497 2.403973 +v -0.001738 -0.739542 2.412884 +v 0.561163 -0.746665 2.205873 +v 0.611309 -0.749409 2.158312 +v 0.655617 -0.751457 2.110480 +v 0.694764 -0.752908 2.061984 +v 0.729411 -0.753847 2.012408 +v 0.760517 -0.754582 1.961543 +v 0.788547 -0.754865 1.908811 +v 0.813666 -0.754561 1.853565 +v 0.836024 -0.753529 1.795152 +v 0.855793 -0.751224 1.733205 +v 0.873113 -0.747058 1.667338 +v -0.053475 -0.891617 2.212882 +v -0.107530 -0.891617 2.206488 +v 0.000915 -0.891617 2.215022 +v -0.052443 -0.896112 2.199763 +v 0.000915 -0.896112 2.201863 +v -0.105471 -0.896112 2.193490 +v -0.160914 -0.891617 2.195865 +v -0.213304 -0.891617 2.181093 +v -0.157842 -0.896112 2.183070 +v -0.209237 -0.896112 2.168578 +v -0.264370 -0.891617 2.162250 +v -0.313803 -0.891617 2.139465 +v -0.259334 -0.896112 2.150093 +v -0.307829 -0.896112 2.127740 +v -0.361293 -0.891617 2.112865 +v -0.406554 -0.891617 2.082627 +v -0.354418 -0.896112 2.101645 +v -0.398819 -0.896112 2.071981 +v -0.449298 -0.891617 2.048926 +v -0.489271 -0.891616 2.011980 +v -0.440752 -0.896112 2.038920 +v -0.479966 -0.896112 2.002675 +v -0.526217 -0.891617 1.972007 +v -0.559918 -0.891617 1.929263 +v -0.516210 -0.896112 1.963461 +v -0.549272 -0.896112 1.921528 +v -0.590156 -0.891617 1.884003 +v -0.616755 -0.891617 1.836513 +v -0.578936 -0.896112 1.877127 +v -0.605030 -0.896112 1.830538 +v -0.639541 -0.891617 1.787079 +v -0.658384 -0.891616 1.736014 +v -0.627383 -0.896112 1.782043 +v -0.645868 -0.896112 1.731946 +v -0.673156 -0.891616 1.683625 +v -0.683778 -0.891616 1.630239 +v -0.660360 -0.896112 1.680553 +v -0.670781 -0.896112 1.628181 +v -0.690172 -0.891616 1.576184 +v -0.692313 -0.891616 1.521795 +v -0.677054 -0.896112 1.575152 +v -0.679153 -0.896112 1.521795 +v -0.690172 -0.891616 1.467405 +v -0.683778 -0.891616 1.413350 +v -0.677054 -0.896112 1.468437 +v -0.670780 -0.896112 1.415408 +v -0.673155 -0.891616 1.359964 +v -0.658383 -0.891616 1.307575 +v -0.660360 -0.896112 1.363036 +v -0.645868 -0.896112 1.311641 +v -0.639540 -0.891616 1.256509 +v -0.616755 -0.891616 1.207075 +v -0.627383 -0.896112 1.261544 +v -0.605030 -0.896112 1.213050 +v -0.590155 -0.891617 1.159585 +v -0.559917 -0.891617 1.114325 +v -0.578935 -0.896112 1.166461 +v -0.549271 -0.896112 1.122060 +v -0.526216 -0.891617 1.071581 +v -0.489270 -0.891617 1.031608 +v -0.516210 -0.896112 1.080127 +v -0.479965 -0.896112 1.040913 +v -0.449297 -0.891617 0.994662 +v -0.406553 -0.891617 0.960961 +v -0.440751 -0.896112 1.004668 +v -0.398818 -0.896112 0.971607 +v -0.361293 -0.891617 0.930723 +v -0.313804 -0.891617 0.904124 +v -0.354418 -0.896112 0.941943 +v -0.307830 -0.896112 0.915849 +v -0.264370 -0.891617 0.881338 +v -0.213304 -0.891617 0.862495 +v -0.259335 -0.896112 0.893496 +v -0.209238 -0.896112 0.875011 +v -0.160915 -0.891617 0.847724 +v -0.107529 -0.891617 0.837101 +v -0.157843 -0.896112 0.860519 +v -0.105471 -0.896112 0.850099 +v -0.053474 -0.891617 0.830707 +v 0.000915 -0.891617 0.828567 +v -0.052442 -0.896112 0.843826 +v 0.000915 -0.896112 0.841726 +v 0.055305 -0.891617 0.830707 +v 0.109360 -0.891617 0.837102 +v 0.054273 -0.896112 0.843826 +v 0.107302 -0.896112 0.850099 +v 0.162746 -0.891617 0.847724 +v 0.215135 -0.891617 0.862496 +v 0.159674 -0.896112 0.860520 +v 0.211068 -0.896112 0.875011 +v 0.266201 -0.891617 0.881339 +v 0.315635 -0.891617 0.904124 +v 0.261165 -0.896112 0.893496 +v 0.309660 -0.896112 0.915849 +v 0.363125 -0.891617 0.930724 +v 0.408385 -0.891617 0.960962 +v 0.356249 -0.896112 0.941944 +v 0.400650 -0.896112 0.971608 +v 0.451129 -0.891617 0.994663 +v 0.491102 -0.891617 1.031609 +v 0.442583 -0.896112 1.004669 +v 0.481797 -0.896112 1.040914 +v 0.528048 -0.891617 1.071582 +v 0.561749 -0.891617 1.114326 +v 0.518041 -0.896112 1.080128 +v 0.551103 -0.896112 1.122061 +v 0.591987 -0.891617 1.159587 +v 0.618586 -0.891617 1.207077 +v 0.580767 -0.896112 1.166462 +v 0.606861 -0.896112 1.213051 +v 0.641372 -0.891617 1.256510 +v 0.660214 -0.891617 1.307577 +v 0.629214 -0.896112 1.261546 +v 0.647699 -0.896112 1.311643 +v 0.674986 -0.891617 1.359966 +v 0.685608 -0.891617 1.413351 +v 0.662190 -0.896112 1.363037 +v 0.672611 -0.896112 1.415410 +v 0.692003 -0.891617 1.467406 +v 0.694143 -0.891617 1.521796 +v 0.678884 -0.896112 1.468438 +v 0.680984 -0.896112 1.521796 +v 0.692003 -0.891617 1.576185 +v 0.685608 -0.891617 1.630240 +v 0.678884 -0.896112 1.575152 +v 0.672611 -0.896112 1.628181 +v 0.674986 -0.891617 1.683625 +v 0.660214 -0.891617 1.736014 +v 0.662190 -0.896112 1.680553 +v 0.647698 -0.896112 1.731948 +v 0.641371 -0.891617 1.787081 +v 0.618585 -0.891617 1.836514 +v 0.629213 -0.896112 1.782045 +v 0.606860 -0.896112 1.830540 +v 0.591986 -0.891617 1.884004 +v 0.561748 -0.891617 1.929264 +v 0.580765 -0.896112 1.877128 +v 0.551101 -0.896112 1.921529 +v 0.528046 -0.891617 1.972008 +v 0.491100 -0.891617 2.011981 +v 0.518040 -0.896112 1.963462 +v 0.481795 -0.896112 2.002676 +v 0.451127 -0.891617 2.048927 +v 0.408383 -0.891617 2.082628 +v 0.442581 -0.896112 2.038921 +v 0.400648 -0.896112 2.071982 +v 0.363123 -0.891617 2.112866 +v 0.315633 -0.891617 2.139465 +v 0.356247 -0.896112 2.101646 +v 0.309659 -0.896112 2.127741 +v 0.266199 -0.891617 2.162251 +v 0.215133 -0.891617 2.181094 +v 0.261163 -0.896112 2.150093 +v 0.211066 -0.896112 2.168578 +v 0.162744 -0.891617 2.195865 +v 0.109358 -0.891617 2.206488 +v 0.159672 -0.896112 2.183070 +v 0.107300 -0.896112 2.193490 +v 0.055304 -0.891617 2.212882 +v 0.054271 -0.896112 2.199763 +v 0.654764 -0.752749 0.931198 +v 0.588043 -0.755627 0.867825 +v 0.515822 -0.757856 0.811532 +v 0.438806 -0.758611 0.762192 +v 0.357919 -0.757278 0.719526 +v 0.272906 -0.755801 0.685247 +v 0.183380 -0.755927 0.661237 +v -0.921327 -0.672514 1.313525 +v -0.898227 -0.685980 1.262104 +v -0.873957 -0.696234 1.211581 +v -0.849062 -0.703092 1.161619 +v -0.823737 -0.706141 1.111928 +v -0.797517 -0.706131 1.062862 +v -0.769974 -0.703832 1.014772 +v -0.740569 -0.699469 0.967150 +v -0.708651 -0.693182 0.919527 +v -0.675874 -0.683906 0.872815 +v -0.643898 -0.670547 0.828033 +v 0.078941 -1.137034 1.738787 +v 0.053895 -1.138021 1.741445 +v 0.049363 -1.145978 1.698800 +v 0.081187 -1.145075 1.692483 +v 0.082342 -1.126699 1.785635 +v 0.059744 -1.126942 1.790665 +v 0.029721 -1.137898 1.746644 +v 0.037332 -1.126860 1.795021 +v 0.023690 -1.145847 1.704678 +v 0.118297 -1.137156 1.719464 +v 0.106227 -1.133691 1.744601 +v 0.154496 -1.126896 1.750054 +v 0.137070 -1.125842 1.765919 +v 0.105626 -1.125758 1.781435 +v 0.129280 -1.121582 1.788357 +v 0.127609 -1.145791 1.655457 +v 0.154604 -1.138284 1.685320 +v 0.135710 -1.138280 1.701273 +v 0.106687 -1.145936 1.671638 +v 0.189321 -1.127268 1.720089 +v 0.172216 -1.127236 1.735208 +v 0.189821 -1.137481 1.650042 +v 0.171111 -1.138441 1.666909 +v 0.145359 -1.145834 1.635877 +v 0.166295 -1.145130 1.611892 +v 0.220229 -1.127156 1.686052 +v 0.204895 -1.127371 1.703397 +v 0.210317 -1.137635 1.611279 +v 0.215327 -1.134158 1.638714 +v 0.257723 -1.127412 1.614850 +v 0.252945 -1.126347 1.637933 +v 0.236610 -1.126238 1.668973 +v 0.259926 -1.122109 1.660752 +v 0.181246 -1.145981 1.555614 +v 0.219637 -1.138780 1.562310 +v 0.213718 -1.138769 1.586324 +v 0.174915 -1.145928 1.580732 +v 0.268299 -1.127802 1.570134 +v 0.263340 -1.127763 1.592420 +v 0.227416 -1.137971 1.513059 +v 0.222182 -1.138937 1.537708 +v 0.183279 -1.146202 1.529375 +v 0.185779 -1.145597 1.496870 +v 0.273314 -1.127688 1.524425 +v 0.271096 -1.127905 1.547473 +v 0.221220 -1.138099 1.469638 +v 0.241401 -1.134635 1.488900 +v 0.261807 -1.127910 1.444749 +v 0.271513 -1.126856 1.466251 +v 0.276538 -1.126762 1.500978 +v 0.290682 -1.122672 1.480700 +v 0.165100 -1.146312 1.441541 +v 0.199971 -1.139196 1.424524 +v 0.209302 -1.139215 1.447439 +v 0.174402 -1.146383 1.466323 +v 0.244075 -1.128256 1.402338 +v 0.253165 -1.128241 1.423291 +v 0.177307 -1.138312 1.380091 +v 0.187565 -1.139320 1.403116 +v 0.151735 -1.146407 1.418834 +v 0.134652 -1.145766 1.391324 +v 0.221262 -1.128092 1.362396 +v 0.233016 -1.128340 1.382352 +v 0.146762 -1.138374 1.348594 +v 0.174424 -1.134940 1.352319 +v 0.165098 -1.128193 1.304684 +v 0.185606 -1.127174 1.316383 +v 0.210093 -1.127131 1.341533 +v 0.209726 -1.123056 1.316885 +v 0.085596 -1.146563 1.360078 +v 0.103035 -1.139373 1.324578 +v 0.124062 -1.139448 1.337635 +v 0.107876 -1.146513 1.373846 +v 0.125801 -1.128458 1.280789 +v 0.145482 -1.128489 1.292398 +v 0.058566 -1.138374 1.301954 +v 0.080406 -1.139445 1.314549 +v 0.060998 -1.146757 1.350304 +v 0.030539 -1.146042 1.337643 +v 0.083851 -1.128214 1.261883 +v 0.105096 -1.128497 1.271121 +v 0.015329 -1.138352 1.294433 +v 0.039908 -1.134960 1.281182 +v 0.004473 -1.128148 1.248226 +v 0.027956 -1.127179 1.245629 +v 0.062555 -1.127202 1.251574 +v 0.047874 -1.123114 1.231923 +v -0.028354 -1.146734 1.341469 +v -0.034174 -1.139245 1.300723 +v -0.009484 -1.139368 1.298919 +v -0.001909 -1.146808 1.339981 +v -0.041380 -1.128331 1.252008 +v -0.018628 -1.128404 1.249823 +v 0.050533 -1.151738 1.382596 +v 0.025837 -1.152110 1.378388 +v 0.073860 -1.151332 1.389808 +v 0.046092 -1.155180 1.412398 +v 0.067502 -1.154494 1.416097 +v 0.023877 -1.155667 1.410635 +v 0.084828 -1.156399 1.580867 +v 0.064296 -1.157379 1.586971 +v 0.058714 -1.158870 1.563582 +v 0.080404 -1.157624 1.559276 +v 0.092759 -1.154388 1.603100 +v 0.072896 -1.155202 1.612114 +v 0.052303 -1.155643 1.618821 +v 0.044326 -1.158059 1.591469 +v 0.039012 -1.159622 1.566908 +v 0.026027 -1.158395 1.595526 +v 0.021595 -1.159895 1.570181 +v 0.032415 -1.156014 1.624378 +v 0.008477 -1.158419 1.598704 +v 0.012718 -1.155906 1.628261 +v 0.004767 -1.159932 1.572948 +v 0.073384 -1.158784 1.512678 +v 0.070329 -1.158545 1.489251 +v 0.095170 -1.156653 1.486904 +v 0.098266 -1.156895 1.509228 +v 0.067826 -1.157834 1.465589 +v 0.091492 -1.156079 1.465006 +v 0.115410 -1.153794 1.462321 +v 0.120844 -1.154095 1.483474 +v 0.124313 -1.154350 1.505589 +v 0.047624 -1.160004 1.491991 +v 0.045568 -1.159067 1.467283 +v 0.050629 -1.160260 1.515822 +v 0.028167 -1.160783 1.494336 +v 0.031703 -1.160921 1.518517 +v 0.025264 -1.159917 1.469278 +v 0.010767 -1.161149 1.496330 +v 0.007312 -1.160285 1.470812 +v 0.014275 -1.161358 1.520995 +v -0.002344 -1.161462 1.523367 +v -0.005904 -1.161231 1.498496 +v -0.009588 -1.160340 1.472665 +v 0.138414 -1.150751 1.454327 +v 0.146082 -1.150978 1.477476 +v 0.150592 -1.151124 1.501881 +v 0.126806 -1.153699 1.548735 +v 0.151563 -1.150560 1.550342 +v 0.146998 -1.150407 1.572005 +v 0.125231 -1.153278 1.566859 +v 0.138226 -1.150450 1.592116 +v 0.124391 -1.152572 1.582605 +v 0.152591 -1.150876 1.526572 +v 0.126385 -1.154018 1.527831 +v 0.100910 -1.156637 1.531686 +v 0.103092 -1.155944 1.553019 +v 0.076664 -1.158429 1.536283 +v 0.054231 -1.159877 1.539777 +v 0.035266 -1.160500 1.542681 +v 0.017845 -1.160884 1.545479 +v 0.001188 -1.160971 1.548012 +v 0.124610 -1.150758 1.611241 +v 0.107015 -1.151052 1.628015 +v 0.110509 -1.153497 1.590685 +v 0.066187 -1.156547 1.441284 +v 0.044747 -1.157500 1.440695 +v 0.023842 -1.158206 1.441140 +v 0.004552 -1.158479 1.441735 +v 0.002442 -1.155818 1.409918 +v -0.013781 -1.158546 1.443367 +v -0.018371 -1.155855 1.411287 +v 0.104824 -1.155155 1.571987 +v 0.101749 -1.152830 1.427282 +v 0.107376 -1.153511 1.442951 +v 0.087087 -1.155284 1.443816 +v 0.086525 -1.153658 1.422636 +v 0.126957 -1.150752 1.433376 +v 0.112136 -1.150868 1.415290 +v 0.086388 -1.151455 1.641130 +v 0.064020 -1.151857 1.651318 +v 0.041203 -1.151975 1.659303 +v 0.017908 -1.151878 1.664418 +v -0.023158 -1.152073 1.377820 +v 0.001178 -1.152079 1.376488 +v 0.094414 -1.151027 1.400736 +v -0.002600 -1.145852 1.706245 +v 0.005059 -1.137936 1.748449 +v -0.019722 -1.136849 1.752934 +v -0.034916 -1.144830 1.709123 +v 0.014604 -1.126863 1.797207 +v -0.008462 -1.126554 1.798809 +v -0.044266 -1.133418 1.766184 +v -0.062924 -1.136797 1.745444 +v -0.031888 -1.125533 1.801408 +v -0.066444 -1.125506 1.795492 +v -0.051414 -1.121292 1.814870 +v -0.087749 -1.126493 1.785213 +v -0.089874 -1.145353 1.686629 +v -0.065249 -1.145605 1.696286 +v -0.084752 -1.137847 1.732877 +v -0.107369 -1.137774 1.722875 +v -0.108992 -1.126769 1.776002 +v -0.129694 -1.126735 1.766357 +v -0.112407 -1.145281 1.672817 +v -0.128388 -1.137864 1.709843 +v -0.151084 -1.136828 1.698910 +v -0.139238 -1.144481 1.655676 +v -0.149377 -1.126785 1.754771 +v -0.168991 -1.126511 1.742507 +v -0.178745 -1.133440 1.695209 +v -0.181645 -1.136867 1.667458 +v -0.189488 -1.125539 1.730839 +v -0.213977 -1.125578 1.705744 +v -0.213249 -1.121350 1.730137 +v -0.225169 -1.126607 1.684910 +v -0.169408 -1.145299 1.605865 +v -0.156275 -1.145281 1.628196 +v -0.191923 -1.137969 1.644458 +v -0.204352 -1.137951 1.623071 +v -0.236945 -1.126924 1.664969 +v -0.248033 -1.126937 1.644992 +v -0.178723 -1.145461 1.581246 +v -0.213707 -1.138086 1.600170 +v -0.225654 -1.137100 1.577978 +v -0.190242 -1.144790 1.550747 +v -0.257153 -1.127019 1.624043 +v -0.265822 -1.126788 1.602583 +v -0.245867 -1.133748 1.558715 +v -0.231897 -1.137210 1.534557 +v -0.275556 -1.125856 1.581077 +v -0.280621 -1.125946 1.546370 +v -0.294417 -1.121733 1.566409 +v -0.277425 -1.127000 1.522939 +v -0.185947 -1.145626 1.491831 +v -0.187919 -1.145680 1.518232 +v -0.226690 -1.138347 1.509901 +v -0.224171 -1.138363 1.485284 +v -0.275229 -1.127350 1.499879 +v -0.272455 -1.127391 1.477190 +v -0.179488 -1.145727 1.466284 +v -0.218274 -1.138526 1.461250 +v -0.214891 -1.137556 1.436265 +v -0.170805 -1.145101 1.435084 +v -0.267514 -1.127490 1.454875 +v -0.261910 -1.127280 1.432408 +v -0.219919 -1.134222 1.408789 +v -0.194408 -1.137696 1.397458 +v -0.257139 -1.126364 1.409272 +v -0.240824 -1.126470 1.378206 +v -0.263810 -1.122296 1.386180 +v -0.224456 -1.127530 1.361135 +v -0.132510 -1.146186 1.391307 +v -0.150035 -1.146070 1.410777 +v -0.175696 -1.138840 1.380569 +v -0.159180 -1.138858 1.362130 +v -0.209118 -1.127884 1.343771 +v -0.193531 -1.127923 1.327048 +v -0.111639 -1.146443 1.375024 +v -0.140275 -1.139015 1.346150 +v -0.122844 -1.138039 1.327927 +v -0.085948 -1.145783 1.354331 +v -0.176411 -1.128019 1.311900 +v -0.158664 -1.127799 1.297020 +v -0.110752 -1.134687 1.302749 +v -0.083449 -1.138140 1.308582 +v -0.141194 -1.126870 1.281108 +v -0.109718 -1.126950 1.265571 +v -0.133042 -1.122823 1.258381 +v -0.086436 -1.127995 1.261388 +v -0.054157 -1.146761 1.347453 +v -0.058378 -1.139258 1.305924 +v -0.063819 -1.128322 1.256366 +v -0.070018 -1.151841 1.392129 +v -0.092552 -1.151521 1.403082 +v -0.059105 -1.155535 1.422518 +v -0.079933 -1.154968 1.430446 +v -0.112917 -1.151031 1.416553 +v -0.099424 -1.154034 1.440023 +v -0.049658 -1.158619 1.579095 +v -0.048387 -1.157138 1.603118 +v -0.069808 -1.156146 1.603032 +v -0.071628 -1.157342 1.581064 +v -0.030123 -1.159346 1.576893 +v -0.027961 -1.157943 1.601832 +v -0.027925 -1.155522 1.630324 +v -0.049572 -1.154984 1.629670 +v -0.071166 -1.154088 1.626597 +v -0.012246 -1.159753 1.575058 +v -0.009258 -1.158301 1.600580 +v -0.007277 -1.155943 1.630069 +v -0.077977 -1.158441 1.534366 +v -0.102812 -1.156381 1.538039 +v -0.106123 -1.156269 1.515743 +v -0.081630 -1.158294 1.511021 +v -0.128821 -1.153725 1.541861 +v -0.131735 -1.153719 1.519661 +v -0.132441 -1.153305 1.497830 +v -0.108749 -1.155789 1.493689 +v -0.085868 -1.157560 1.487607 +v -0.064030 -1.158831 1.482986 +v -0.059202 -1.159736 1.507279 +v -0.044009 -1.159750 1.479188 +v -0.040157 -1.160450 1.504009 +v -0.036675 -1.160599 1.528310 +v -0.055963 -1.159782 1.531140 +v -0.026414 -1.160166 1.475538 +v -0.022606 -1.160976 1.501050 +v -0.019031 -1.161184 1.525756 +v -0.157621 -1.150406 1.520988 +v -0.156765 -1.150224 1.496612 +v -0.155072 -1.150396 1.545678 +v -0.119121 -1.153292 1.583983 +v -0.112517 -1.152889 1.600937 +v -0.131950 -1.149895 1.611984 +v -0.142418 -1.150022 1.592474 +v -0.107287 -1.152215 1.615819 +v -0.117881 -1.149983 1.628826 +v -0.150066 -1.150216 1.569939 +v -0.124587 -1.153587 1.563797 +v -0.099056 -1.156260 1.560341 +v -0.074501 -1.158167 1.557945 +v -0.095158 -1.155598 1.581432 +v -0.052589 -1.159439 1.555068 +v -0.033287 -1.160206 1.552531 +v -0.015576 -1.160730 1.550279 +v -0.099428 -1.150245 1.643343 +v -0.091690 -1.153154 1.619669 +v -0.077831 -1.150628 1.654502 +v -0.070708 -1.157353 1.457228 +v -0.091102 -1.156136 1.463825 +v -0.050513 -1.158018 1.451795 +v -0.038732 -1.155740 1.415815 +v -0.031834 -1.158388 1.446949 +v -0.091493 -1.154838 1.600127 +v -0.129154 -1.152306 1.460366 +v -0.115859 -1.153271 1.451626 +v -0.110463 -1.154954 1.472113 +v -0.130150 -1.152918 1.476988 +v -0.142469 -1.150207 1.451778 +v -0.151630 -1.150135 1.473290 +v -0.054358 -1.151207 1.661309 +v -0.030029 -1.151711 1.664804 +v -0.005886 -1.151872 1.666051 +v -0.046893 -1.152068 1.383360 +v -0.129562 -1.150527 1.432826 +v -0.056631 -1.109866 1.854262 +v -0.028867 -1.110042 1.857170 +v -0.001809 -1.110264 1.857654 +v -0.110182 -1.110232 1.839453 +v -0.084073 -1.110048 1.847902 +v -0.156101 -1.110188 1.819959 +v -0.133959 -1.110226 1.830328 +v -0.198334 -1.110278 1.793611 +v -0.177298 -1.110237 1.807771 +v -0.240743 -1.109975 1.758612 +v -0.219971 -1.110099 1.777294 +v -0.275337 -1.110426 1.715203 +v -0.259194 -1.110190 1.737357 +v -0.301044 -1.110463 1.672433 +v -0.289211 -1.110454 1.693845 +v -0.319742 -1.110613 1.626261 +v -0.311038 -1.110543 1.650103 +v -0.333508 -1.110388 1.572932 +v -0.327672 -1.110476 1.600293 +v -0.335966 -1.110896 1.517522 +v -0.335935 -1.110627 1.544906 +v -0.331620 -1.110977 1.467807 +v -0.334632 -1.110944 1.492092 +v -0.319596 -1.111154 1.419442 +v -0.326577 -1.111071 1.443864 +v -0.299354 -1.110946 1.368132 +v -0.310732 -1.111029 1.393731 +v -0.268757 -1.111462 1.321887 +v -0.284833 -1.111191 1.344039 +v -0.236013 -1.111533 1.284239 +v -0.252727 -1.111509 1.302108 +v -0.197849 -1.111693 1.252190 +v -0.217858 -1.111620 1.267841 +v -0.151268 -1.111440 1.222563 +v -0.175546 -1.111547 1.236591 +v -0.099302 -1.111909 1.203160 +v -0.125340 -1.111668 1.211615 +v -0.050696 -1.111920 1.191976 +v -0.074711 -1.111933 1.196593 +v -0.001007 -1.112024 1.188498 +v -0.026382 -1.111980 1.189392 +v 0.054082 -1.111677 1.191922 +v 0.026196 -1.111832 1.188993 +v 0.107565 -1.112065 1.206808 +v 0.081514 -1.111873 1.198321 +v 0.153435 -1.111988 1.226339 +v 0.131313 -1.112052 1.215956 +v 0.195636 -1.112008 1.252725 +v 0.174606 -1.112013 1.238539 +v 0.238141 -1.111568 1.287844 +v 0.217323 -1.111775 1.269093 +v 0.272685 -1.111871 1.331372 +v 0.256582 -1.111718 1.309167 +v 0.298299 -1.111712 1.374126 +v 0.286515 -1.111809 1.352734 +v 0.316908 -1.111658 1.420247 +v 0.308247 -1.111707 1.396430 +v 0.330630 -1.111155 1.473556 +v 0.324820 -1.111398 1.446186 +v 0.333005 -1.111401 1.529116 +v 0.333019 -1.111271 1.501661 +v 0.328601 -1.111198 1.578756 +v 0.331639 -1.111310 1.554531 +v 0.316557 -1.111113 1.626987 +v 0.323543 -1.111178 1.602643 +v 0.296359 -1.110595 1.678103 +v 0.307729 -1.110845 1.652580 +v 0.265639 -1.110834 1.724476 +v 0.281783 -1.110708 1.702252 +v 0.232905 -1.110642 1.762066 +v 0.249600 -1.110748 1.744245 +v 0.194820 -1.110580 1.794018 +v 0.214773 -1.110629 1.778426 +v 0.148477 -1.110103 1.823484 +v 0.172653 -1.110327 1.809525 +v 0.096397 -1.110388 1.842970 +v 0.122511 -1.110242 1.834465 +v 0.047807 -1.110256 1.854166 +v 0.071799 -1.110337 1.849552 +v 0.023509 -1.110270 1.856755 +v 0.546820 0.035680 2.361688 +v 0.550148 0.036667 2.378095 +v 0.553966 0.038012 2.400018 +v 0.552302 0.073109 2.374360 +v 0.556199 0.075790 2.396147 +v 0.548916 0.071140 2.358055 +v 0.552398 0.106161 2.352019 +v 0.555881 0.109100 2.368157 +v 0.559909 0.113100 2.389716 +v 0.560857 0.144418 2.359531 +v 0.565067 0.149713 2.380774 +v 0.557240 0.140529 2.343625 +v 0.563416 0.174028 2.332917 +v 0.567204 0.178845 2.348528 +v 0.571648 0.185403 2.369367 +v 0.574880 0.212171 2.335222 +v 0.579605 0.219951 2.355573 +v 0.570885 0.206457 2.319970 +v 0.579604 0.237610 2.304855 +v 0.583840 0.244187 2.319689 +v 0.588894 0.253140 2.339471 +v 0.594026 0.274700 2.302030 +v 0.599453 0.284772 2.321165 +v 0.589516 0.267301 2.287673 +v 0.600563 0.295342 2.268522 +v 0.605379 0.303516 2.282350 +v 0.611222 0.314645 2.300763 +v 0.617825 0.330464 2.260775 +v 0.624124 0.342581 2.278397 +v 0.612674 0.321564 2.247529 +v 0.625777 0.345801 2.224815 +v 0.631290 0.355372 2.237432 +v 0.638083 0.368402 2.254198 +v 0.645689 0.378092 2.212471 +v 0.653010 0.391955 2.228322 +v 0.639788 0.367909 2.200526 +v 0.654624 0.387745 2.174807 +v 0.660936 0.398477 2.186041 +v 0.668816 0.413088 2.200923 +v 0.676934 0.416410 2.158308 +v 0.685400 0.431677 2.172173 +v 0.670191 0.405194 2.147821 +v 0.686395 0.420142 2.119732 +v 0.693586 0.431771 2.129441 +v 0.702663 0.447602 2.142248 +v 0.710789 0.444474 2.099620 +v 0.720497 0.460770 2.111333 +v 0.703134 0.432503 2.090714 +v 0.720307 0.442193 2.060945 +v 0.728437 0.454432 2.069027 +v 0.738792 0.471094 2.079618 +v 0.746420 0.461593 2.037851 +v 0.757435 0.478518 2.047300 +v 0.737806 0.449161 2.030609 +v 0.755525 0.453356 1.999893 +v 0.764630 0.465904 2.006285 +v 0.776312 0.482987 2.014576 +v 0.782952 0.467347 1.974523 +v 0.795305 0.484483 1.981650 +v 0.773353 0.454760 1.968987 +v 0.791182 0.453356 1.938080 +v 0.801274 0.465904 1.942762 +v 0.814299 0.482987 1.948724 +v 0.819483 0.461593 1.911196 +v 0.833175 0.478518 1.916000 +v 0.808901 0.449161 1.907364 +v 0.826400 0.442193 1.877029 +v 0.837466 0.454432 1.880020 +v 0.851819 0.471094 1.883682 +v 0.855114 0.444474 1.849427 +v 0.870113 0.460770 1.851967 +v 0.843572 0.432502 1.847259 +v 0.860311 0.420141 1.818241 +v 0.872316 0.431770 1.819606 +v 0.887947 0.447601 1.821052 +v 0.888969 0.416409 1.790739 +v 0.905209 0.431677 1.791126 +v 0.876516 0.405194 1.790152 +v 0.892081 0.387745 1.763166 +v 0.904966 0.398477 1.763006 +v 0.921794 0.413087 1.762377 +v 0.920213 0.378092 1.736576 +v 0.937599 0.391954 1.734978 +v 0.906917 0.367908 1.737447 +v 0.920929 0.345800 1.713159 +v 0.934612 0.355372 1.711615 +v 0.952526 0.368402 1.709101 +v 0.948077 0.330464 1.688272 +v 0.966486 0.342581 1.684903 +v 0.934032 0.321564 1.690445 +v 0.946142 0.295341 1.669451 +v 0.960523 0.303516 1.666697 +v 0.979388 0.314645 1.662537 +v 0.971876 0.274700 1.647017 +v 0.991157 0.284771 1.642135 +v 0.957189 0.267301 1.650301 +v 0.967101 0.237610 1.633118 +v 0.982062 0.244187 1.629359 +v 1.001716 0.253140 1.623829 +v 0.991022 0.212171 1.613826 +v 1.011005 0.219950 1.607727 +v 0.975820 0.206456 1.618004 +v 0.983289 0.174028 1.605056 +v 0.998698 0.178845 1.600520 +v 1.018962 0.185402 1.593933 +v 1.005045 0.144418 1.589516 +v 1.025542 0.149713 1.582526 +v 0.989465 0.140528 1.594349 +v 0.994307 0.106161 1.585955 +v 1.010022 0.109099 1.580890 +v 1.030701 0.113099 1.573584 +v 1.013600 0.073109 1.574687 +v 1.034410 0.075789 1.567153 +v 0.997789 0.071140 1.579919 +v 0.999885 0.035680 1.576285 +v 1.015754 0.036667 1.570953 +v 1.036644 0.038012 1.563282 +v 0.562467 0.046525 2.529792 +v 0.556212 0.047115 2.534839 +v 0.538300 0.048444 2.544006 +v 0.558957 0.093937 2.530012 +v 0.541116 0.096585 2.539022 +v 0.565212 0.092763 2.525066 +v 0.569753 0.138429 2.517195 +v 0.563558 0.140181 2.522045 +v 0.545900 0.144145 2.530920 +v 0.569960 0.185563 2.510973 +v 0.552499 0.190815 2.519560 +v 0.576065 0.183242 2.506249 +v 0.584116 0.226924 2.492284 +v 0.578123 0.229800 2.496842 +v 0.560866 0.236296 2.504992 +v 0.587987 0.272621 2.479747 +v 0.571112 0.280369 2.487567 +v 0.593853 0.269209 2.475399 +v 0.605228 0.309832 2.455695 +v 0.599504 0.313760 2.459793 +v 0.582966 0.322682 2.467061 +v 0.612596 0.352968 2.437108 +v 0.596463 0.363022 2.443777 +v 0.618154 0.348548 2.433292 +v 0.632556 0.385111 2.408318 +v 0.627188 0.389996 2.411825 +v 0.611521 0.401133 2.417841 +v 0.643185 0.424625 2.384108 +v 0.627996 0.436764 2.389361 +v 0.648356 0.419305 2.380950 +v 0.665435 0.450908 2.351327 +v 0.660489 0.456630 2.354116 +v 0.645817 0.469697 2.358537 +v 0.678988 0.485822 2.322040 +v 0.664869 0.499739 2.325568 +v 0.683697 0.479733 2.319649 +v 0.703040 0.505598 2.286112 +v 0.698578 0.512016 2.288078 +v 0.685044 0.526698 2.290658 +v 0.719134 0.535057 2.252444 +v 0.706175 0.550390 2.253987 +v 0.723337 0.528350 2.250923 +v 0.744464 0.547839 2.214294 +v 0.740530 0.554794 2.215350 +v 0.728179 0.570689 2.215826 +v 0.762633 0.571116 2.177031 +v 0.750952 0.587503 2.176440 +v 0.766290 0.563957 2.176456 +v 0.788683 0.576593 2.137639 +v 0.785313 0.583914 2.137723 +v 0.774390 0.600738 2.136086 +v 0.808438 0.593124 2.097677 +v 0.798328 0.610310 2.094988 +v 0.811509 0.585682 2.098088 +v 0.834631 0.591157 2.058046 +v 0.831864 0.598676 2.057133 +v 0.822538 0.616093 2.053336 +v 0.855439 0.600545 2.016339 +v 0.846922 0.618098 2.011426 +v 0.857895 0.592992 2.017755 +v 0.881185 0.591173 1.977478 +v 0.879060 0.598727 1.975565 +v 0.871335 0.616299 1.969512 +v 0.902702 0.593295 1.935120 +v 0.895522 0.610655 1.927802 +v 0.904452 0.585747 1.937509 +v 0.927294 0.576665 1.897960 +v 0.925873 0.584116 1.895075 +v 0.919436 0.601253 1.886611 +v 0.948264 0.571193 1.855628 +v 0.942808 0.588091 1.846140 +v 0.949479 0.563974 1.859036 +v 0.971252 0.547843 1.821173 +v 0.970221 0.554808 1.817247 +v 0.965024 0.571004 1.806503 +v 0.991599 0.535062 1.780147 +v 0.986747 0.550545 1.768241 +v 0.992377 0.528351 1.784544 +v 1.012673 0.505598 1.749355 +v 1.012149 0.512019 1.744510 +v 1.007865 0.526820 1.731566 +v 1.031733 0.485822 1.710547 +v 1.027846 0.499794 1.696585 +v 1.032015 0.479732 1.715818 +v 1.050283 0.450904 1.684146 +v 1.050232 0.456628 1.678473 +v 1.046768 0.469716 1.663569 +v 1.067534 0.424623 1.648479 +v 1.064562 0.436793 1.632715 +v 1.067369 0.419301 1.654529 +v 1.083161 0.385108 1.627154 +v 1.083528 0.389997 1.620757 +v 1.081064 0.401191 1.604205 +v 1.098116 0.352971 1.595469 +v 1.096152 0.363126 1.578200 +v 1.097566 0.348545 1.602183 +v 1.110490 0.309830 1.579778 +v 1.111205 0.313764 1.572780 +v 1.109684 0.322808 1.554864 +v 1.122718 0.272625 1.552821 +v 1.121448 0.280466 1.534323 +v 1.121859 0.269207 1.560069 +v 1.131599 0.226923 1.543187 +v 1.132583 0.229804 1.535724 +v 1.131616 0.236417 1.516735 +v 1.140738 0.185567 1.521585 +v 1.140023 0.190910 1.502190 +v 1.139652 0.183241 1.529225 +v 1.145965 0.138428 1.518280 +v 1.147130 0.140185 1.510501 +v 1.146561 0.144216 1.490786 +v 1.151723 0.093940 1.502530 +v 1.151156 0.096631 1.482583 +v 1.150504 0.092762 1.510409 +v 1.153237 0.046524 1.505671 +v 1.154491 0.047115 1.497732 +v 1.153946 0.048463 1.477646 +v 0.439493 0.055433 2.589529 +v 0.373445 0.059710 2.614167 +v 0.298435 0.064203 2.636805 +v 0.376973 0.119059 2.608145 +v 0.302202 0.128009 2.630250 +v 0.442808 0.110539 2.584023 +v 0.448212 0.164953 2.574628 +v 0.382863 0.177699 2.598220 +v 0.308501 0.191047 2.619510 +v 0.390952 0.235215 2.584126 +v 0.317286 0.252953 2.604653 +v 0.455821 0.218393 2.561776 +v 0.465378 0.270431 2.545046 +v 0.401353 0.291333 2.566368 +v 0.328377 0.313227 2.585290 +v 0.413872 0.345633 2.544732 +v 0.341878 0.371657 2.562165 +v 0.477098 0.320898 2.525162 +v 0.490655 0.369324 2.501678 +v 0.428563 0.397876 2.519648 +v 0.357650 0.427832 2.535173 +v 0.445165 0.447599 2.490887 +v 0.375497 0.481296 2.504237 +v 0.506099 0.415505 2.475042 +v 0.523385 0.459191 2.445474 +v 0.463775 0.494675 2.459047 +v 0.395470 0.531898 2.469953 +v 0.484079 0.538621 2.423922 +v 0.417115 0.579242 2.432320 +v 0.542260 0.500004 2.412907 +v 0.562685 0.537741 2.377669 +v 0.506118 0.579330 2.386039 +v 0.440217 0.623237 2.391911 +v 0.468547 0.660335 2.348677 +v 0.531056 0.615206 2.345536 +v 0.584891 0.571877 2.340014 +v 0.609067 0.601844 2.300139 +v 0.560148 0.644749 2.302724 +v 0.506251 0.687505 2.303291 +v 0.549135 0.705985 2.256584 +v 0.592327 0.668001 2.258232 +v 0.634805 0.627493 2.258352 +v 0.661814 0.648781 2.215101 +v 0.626689 0.685184 2.212907 +v 0.593296 0.717395 2.209829 +v 0.636126 0.724348 2.162760 +v 0.661177 0.697750 2.166645 +v 0.689448 0.665968 2.170549 +v 0.717237 0.679476 2.125036 +v 0.694164 0.707603 2.119825 +v 0.675119 0.729621 2.115332 +v 0.710771 0.733236 2.067426 +v 0.725709 0.714551 2.072396 +v 0.744991 0.689123 2.078688 +v 0.772728 0.694909 2.031795 +v 0.756010 0.718521 2.024394 +v 0.743645 0.735240 2.018884 +v 0.773795 0.736127 1.969199 +v 0.784974 0.719966 1.975664 +v 0.800290 0.696912 1.984519 +v 0.827488 0.695191 1.937007 +v 0.812400 0.719241 1.925980 +v 0.801195 0.736323 1.917827 +v 0.838634 0.715867 1.875474 +v 0.826406 0.735196 1.864636 +v 0.854302 0.689658 1.889513 +v 0.880621 0.680156 1.842249 +v 0.863961 0.709318 1.824240 +v 0.849932 0.732058 1.809451 +v 0.888250 0.699372 1.772335 +v 0.871878 0.726558 1.752152 +v 0.906207 0.666634 1.795420 +v 0.931262 0.649355 1.749372 +v 0.911686 0.686068 1.719952 +v 0.892312 0.718332 1.692663 +v 0.934395 0.668254 1.668094 +v 0.911725 0.705733 1.632229 +v 0.955507 0.627988 1.704489 +v 0.978847 0.602346 1.661232 +v 0.956888 0.645064 1.617852 +v 0.930882 0.687324 1.572131 +v 0.979364 0.615896 1.570891 +v 0.951194 0.660789 1.516553 +v 1.001454 0.572552 1.620247 +v 1.023127 0.538499 1.582111 +v 1.002038 0.580158 1.528871 +v 0.974329 0.623988 1.469669 +v 1.024038 0.539504 1.490762 +v 0.997913 0.580218 1.428689 +v 1.043518 0.500751 1.546739 +v 1.062428 0.459939 1.514046 +v 1.044457 0.495558 1.455534 +v 1.019796 0.532920 1.390804 +v 1.062828 0.448439 1.423418 +v 1.039646 0.482286 1.356263 +v 1.079550 0.416240 1.484226 +v 1.094919 0.369983 1.457474 +v 1.079425 0.398616 1.394595 +v 1.057530 0.428715 1.325261 +v 1.093957 0.346322 1.369251 +v 1.073070 0.372438 1.298031 +v 1.108502 0.321476 1.433937 +v 1.120126 0.270980 1.413777 +v 1.106616 0.291959 1.347511 +v 1.086616 0.313960 1.274657 +v 1.116771 0.235714 1.329584 +v 1.097733 0.253518 1.255347 +v 1.129716 0.218812 1.397108 +v 1.137163 0.165286 1.384050 +v 1.124980 0.178082 1.315490 +v 1.106415 0.191508 1.240218 +v 1.130833 0.119337 1.305362 +v 1.112636 0.128325 1.229346 +v 1.142760 0.110777 1.374629 +v 1.145835 0.055551 1.368996 +v 1.134280 0.059849 1.299281 +v 1.116398 0.064360 1.222796 +v 0.214019 0.068827 2.655933 +v 0.124293 0.073242 2.668936 +v 0.218059 0.137228 2.648902 +v 0.128601 0.146039 2.661522 +v 0.224769 0.204777 2.637229 +v 0.135765 0.217958 2.649271 +v 0.234127 0.271090 2.621125 +v 0.145721 0.288547 2.632153 +v 0.246083 0.335770 2.600651 +v 0.158413 0.357355 2.610233 +v 0.260529 0.398395 2.575818 +v 0.173777 0.424012 2.583812 +v 0.277400 0.458589 2.546818 +v 0.191712 0.488067 2.552919 +v 0.296561 0.515950 2.513760 +v 0.211831 0.548527 2.518103 +v 0.317941 0.570178 2.476966 +v 0.233811 0.604565 2.480229 +v 0.256327 0.656678 2.439645 +v 0.340549 0.621108 2.436902 +v 0.363302 0.668403 2.393877 +v 0.277976 0.705173 2.396592 +v 0.307760 0.752674 2.345748 +v 0.395831 0.706490 2.348869 +v 0.915956 0.706333 1.457419 +v 0.938375 0.668974 1.404567 +v 0.870362 0.752778 1.386440 +v 0.898334 0.706559 1.331697 +v 0.963771 0.622119 1.360613 +v 0.923595 0.659060 1.287684 +v 0.987022 0.571286 1.320035 +v 0.947510 0.606756 1.246073 +v 1.008350 0.517027 1.283003 +v 0.969747 0.550013 1.207428 +v 1.027592 0.459630 1.249749 +v 0.989967 0.489207 1.172320 +v 1.044374 0.399335 1.220536 +v 1.007862 0.425043 1.141223 +v 1.058662 0.336560 1.195542 +v 1.023321 0.358310 1.114534 +v 1.070642 0.271782 1.174824 +v 1.035870 0.289290 1.092559 +v 1.079920 0.205299 1.158619 +v 1.045838 0.218542 1.075279 +v 1.086627 0.137570 1.146956 +v 1.053037 0.146452 1.062840 +v 1.090724 0.069000 1.139914 +v 1.057287 0.073448 1.055389 +v 0.033771 0.077215 2.674995 +v -0.057003 0.080699 2.673743 +v 0.038307 0.153953 2.667125 +v -0.052262 0.160903 2.665536 +v 0.045842 0.229740 2.654053 +v -0.044393 0.240144 2.652028 +v 0.056325 0.304139 2.635980 +v -0.033446 0.317953 2.633277 +v 0.069708 0.376725 2.613049 +v -0.019474 0.393798 2.609185 +v 0.085882 0.446958 2.585095 +v -0.002573 0.467264 2.580077 +v 0.104781 0.514515 2.552591 +v 0.017162 0.537821 2.545953 +v 0.037628 0.600521 2.510198 +v 0.125243 0.576595 2.517132 +v 0.146170 0.630711 2.480968 +v 0.056748 0.650971 2.477149 +v 0.074970 0.693747 2.445245 +v 0.166970 0.679318 2.443929 +v 0.880790 0.685743 1.210869 +v 0.903146 0.635659 1.171750 +v 0.834356 0.703857 1.132559 +v 0.854150 0.658408 1.097860 +v 0.925214 0.578821 1.133297 +v 0.875193 0.603510 1.061105 +v 0.946183 0.515776 1.097002 +v 0.896623 0.539236 1.024200 +v 0.965112 0.448155 1.064192 +v 0.916311 0.468491 0.989958 +v 0.981177 0.377707 1.036160 +v 0.933279 0.394916 0.960566 +v 0.994630 0.305015 1.012897 +v 0.947159 0.318851 0.936353 +v 1.005008 0.230391 0.994748 +v 0.958110 0.240864 0.917330 +v 1.012535 0.154384 0.981664 +v 0.965982 0.161402 0.903653 +v 1.017121 0.077433 0.973758 +v 0.970713 0.080948 0.895425 +v -0.147474 0.083703 2.665618 +v -0.237048 0.086176 2.650222 +v -0.142562 0.166897 2.657137 +v -0.232002 0.171833 2.641521 +v -0.134407 0.249083 2.643087 +v -0.223629 0.256467 2.627129 +v -0.123054 0.329740 2.623466 +v -0.211952 0.339527 2.606958 +v -0.108577 0.408408 2.598503 +v -0.197066 0.420545 2.581288 +v -0.091065 0.484599 2.568305 +v -0.179046 0.498991 2.550166 +v -0.070622 0.557892 2.533135 +v -0.158013 0.574430 2.513885 +v -0.137470 0.637764 2.477712 +v -0.050143 0.620965 2.497156 +v -0.032684 0.667662 2.466698 +v -0.121367 0.681502 2.449715 +v -0.107796 0.714342 2.426468 +v -0.016979 0.705097 2.439681 +v 0.783621 0.715344 1.055044 +v 0.800466 0.675225 1.025307 +v 0.727475 0.722534 0.981036 +v 0.741801 0.687716 0.955765 +v 0.819958 0.624062 0.991373 +v 0.759465 0.640606 0.924995 +v 0.841483 0.559387 0.954404 +v 0.780882 0.575949 0.888224 +v 0.861820 0.485950 0.918956 +v 0.802014 0.500449 0.851592 +v 0.879337 0.409597 0.888527 +v 0.820006 0.421792 0.820305 +v 0.893856 0.330746 0.863340 +v 0.834890 0.340566 0.794430 +v 0.905193 0.249843 0.843629 +v 0.846703 0.257302 0.774019 +v 0.913278 0.167403 0.829506 +v 0.855024 0.172398 0.759494 +v 0.918218 0.083961 0.820950 +v 0.860042 0.086459 0.750744 +v -0.325238 0.088133 2.628057 +v -0.411396 0.089531 2.598856 +v -0.320105 0.175748 2.619231 +v -0.406192 0.178535 2.589888 +v -0.311512 0.262273 2.604352 +v -0.397466 0.266432 2.574769 +v -0.299569 0.347202 2.583686 +v -0.385387 0.352752 2.553901 +v -0.284373 0.430066 2.557463 +v -0.369948 0.436920 2.527201 +v -0.265953 0.510278 2.525610 +v -0.351289 0.518468 2.494951 +v -0.244483 0.587458 2.488565 +v -0.329455 0.596806 2.457168 +v -0.223831 0.651198 2.452285 +v -0.308656 0.660834 2.420713 +v -0.208593 0.692718 2.425557 +v -0.293998 0.701048 2.394986 +v -0.282946 0.728913 2.375908 +v -0.196527 0.722513 2.404879 +v 0.597709 0.733008 0.851062 +v 0.665403 0.728311 0.912870 +v 0.677816 0.697455 0.890921 +v 0.608921 0.704834 0.831276 +v 0.694225 0.653693 0.862473 +v 0.624345 0.663092 0.804485 +v 0.715585 0.589080 0.825791 +v 0.645692 0.598474 0.767760 +v 0.737088 0.511787 0.788436 +v 0.667584 0.519978 0.729776 +v 0.755582 0.431399 0.756362 +v 0.686343 0.438283 0.697231 +v 0.770756 0.348298 0.729961 +v 0.701907 0.353924 0.670255 +v 0.782709 0.263103 0.709207 +v 0.713984 0.267326 0.649259 +v 0.791337 0.176309 0.694250 +v 0.722759 0.179140 0.634052 +v 0.796476 0.088420 0.685303 +v 0.727943 0.089835 0.625017 +v -0.495104 0.090389 2.563163 +v -0.575697 0.090675 2.520858 +v -0.489878 0.180253 2.554135 +v -0.570467 0.180822 2.511793 +v -0.481064 0.268993 2.538858 +v -0.561614 0.269836 2.496446 +v -0.468899 0.356153 2.517811 +v -0.549440 0.357276 2.475341 +v -0.453273 0.441081 2.490734 +v -0.533779 0.442479 2.448193 +v -0.434450 0.523395 2.458148 +v -0.514945 0.525083 2.415543 +v -0.412411 0.602457 2.419971 +v -0.492846 0.604397 2.377234 +v -0.391492 0.666658 2.383491 +v -0.471824 0.668654 2.340793 +v -0.377158 0.706009 2.358452 +v -0.457543 0.707692 2.316036 +v -0.447221 0.733902 2.298141 +v -0.366719 0.732699 2.340375 +v 0.457827 0.712207 0.729217 +v 0.447248 0.738703 0.747556 +v 0.524685 0.736947 0.796134 +v 0.535335 0.710080 0.777464 +v 0.472950 0.671129 0.703001 +v 0.550425 0.669009 0.751254 +v 0.571784 0.604174 0.714374 +v 0.494307 0.606135 0.665977 +v 0.593929 0.524966 0.675979 +v 0.516545 0.526689 0.627428 +v 0.612805 0.442438 0.643224 +v 0.535482 0.443880 0.594600 +v 0.628520 0.357283 0.615985 +v 0.551252 0.358450 0.567262 +v 0.640728 0.269864 0.594792 +v 0.563498 0.270739 0.546032 +v 0.649624 0.180852 0.579385 +v 0.572416 0.181438 0.530574 +v 0.654865 0.090693 0.570274 +v 0.577677 0.090986 0.521454 +v -0.652825 0.090411 2.472503 +v -0.725840 0.089576 2.418133 +v -0.647614 0.180294 2.463441 +v -0.720685 0.178627 2.409142 +v -0.638782 0.269046 2.448134 +v -0.711972 0.266574 2.394023 +v -0.626642 0.356219 2.427051 +v -0.699962 0.352946 2.373126 +v -0.611034 0.441169 2.399978 +v -0.684578 0.437163 2.346389 +v -0.592258 0.523511 2.367382 +v -0.665913 0.518692 2.313980 +v -0.570250 0.602597 2.329199 +v -0.644153 0.597080 2.276178 +v -0.549147 0.666830 2.292829 +v -0.622990 0.661251 2.239873 +v -0.534642 0.706222 2.267872 +v -0.607961 0.701785 2.214115 +v -0.524045 0.732976 2.249514 +v -0.596733 0.730046 2.194596 +v 0.293852 0.705443 0.649318 +v 0.282341 0.733679 0.668906 +v 0.366516 0.737037 0.704655 +v 0.377293 0.710338 0.686176 +v 0.309423 0.663467 0.622376 +v 0.392473 0.669188 0.659907 +v 0.413737 0.604332 0.622895 +v 0.330589 0.598789 0.585376 +v 0.435912 0.525128 0.584450 +v 0.352529 0.520267 0.547368 +v 0.454839 0.442593 0.551668 +v 0.371285 0.438487 0.514915 +v 0.470545 0.357399 0.524441 +v 0.386826 0.354065 0.487993 +v 0.482768 0.269944 0.503285 +v 0.398975 0.267443 0.466978 +v 0.491645 0.180902 0.487889 +v 0.407763 0.179225 0.451730 +v 0.496902 0.090717 0.478802 +v 0.412998 0.089879 0.442697 +v -0.794459 0.088197 2.358321 +v -0.858079 0.086262 2.293239 +v -0.789346 0.175867 2.349411 +v -0.853086 0.172009 2.284521 +v -0.780776 0.262455 2.334527 +v -0.844831 0.256735 2.270071 +v -0.768884 0.347455 2.313857 +v -0.833166 0.339865 2.249810 +v -0.753808 0.430392 2.287581 +v -0.818349 0.420945 2.224019 +v -0.735478 0.510684 2.255702 +v -0.800457 0.499487 2.192847 +v -0.714077 0.587864 2.218479 +v -0.779503 0.574949 2.156395 +v -0.692927 0.652027 2.182237 +v -0.758303 0.639019 2.120105 +v -0.677023 0.694589 2.154942 +v -0.741351 0.684625 2.090779 +v -0.664721 0.725152 2.133434 +v -0.727386 0.718675 2.066306 +v 0.119331 0.689223 0.596428 +v 0.103945 0.725548 0.622706 +v 0.194486 0.730325 0.641782 +v 0.207619 0.698583 0.619476 +v 0.137390 0.641416 0.565323 +v 0.224221 0.654296 0.590732 +v 0.245388 0.589556 0.553630 +v 0.158616 0.576546 0.528112 +v 0.266945 0.512148 0.516401 +v 0.179745 0.500909 0.491577 +v 0.285460 0.431700 0.484325 +v 0.197864 0.422238 0.460169 +v 0.300753 0.348571 0.457864 +v 0.212816 0.340909 0.434364 +v 0.312764 0.263326 0.437043 +v 0.224556 0.257530 0.414033 +v 0.321391 0.176454 0.422102 +v 0.232980 0.172558 0.399496 +v 0.326555 0.088490 0.413211 +v 0.238055 0.086542 0.390726 +v -0.916484 0.083803 2.223469 +v -0.969144 0.080818 2.149305 +v -0.911565 0.167090 2.214938 +v -0.964431 0.161144 2.141097 +v -0.903514 0.249381 2.200856 +v -0.956707 0.240513 2.127527 +v -0.892237 0.330149 2.181210 +v -0.945804 0.318396 2.108553 +v -0.877890 0.408926 2.156174 +v -0.931985 0.394370 2.084398 +v -0.860437 0.485177 2.125818 +v -0.915189 0.467921 2.055133 +v -0.840280 0.558596 2.090524 +v -0.895559 0.538601 2.020950 +v -0.819031 0.622565 2.054149 +v -0.874490 0.602217 1.984685 +v -0.800360 0.671777 2.021949 +v -0.854383 0.655210 1.949719 +v -0.784113 0.710911 1.993338 +v -0.835067 0.699764 1.916256 +v -0.059945 0.659754 0.569494 +v -0.080535 0.706063 0.604803 +v 0.011774 0.718146 0.610820 +v 0.029744 0.676755 0.580058 +v -0.038517 0.604482 0.532665 +v 0.049586 0.624966 0.545910 +v 0.070905 0.560050 0.508618 +v -0.017229 0.539975 0.495623 +v 0.091438 0.486559 0.473163 +v 0.002583 0.469192 0.461267 +v 0.109026 0.410094 0.442776 +v 0.019554 0.395471 0.431923 +v 0.123574 0.331134 0.417614 +v 0.033590 0.319349 0.407582 +v 0.134988 0.250163 0.397792 +v 0.044586 0.241206 0.388714 +v 0.143185 0.167628 0.383633 +v 0.052493 0.161623 0.375090 +v 0.148116 0.084068 0.375133 +v 0.057256 0.081062 0.366811 +v -1.015904 0.077341 2.071328 +v -1.056324 0.073381 1.989928 +v -1.011332 0.154201 2.063436 +v -1.052085 0.146320 1.982486 +v -1.003827 0.230121 2.050375 +v -1.045051 0.218378 1.970125 +v -0.993479 0.304663 2.032255 +v -1.035102 0.289076 1.952864 +v -0.980195 0.377330 2.009095 +v -1.022570 0.358047 1.930907 +v -0.964169 0.447719 1.981102 +v -1.007276 0.424796 1.904296 +v -0.945407 0.515354 1.948391 +v -0.989538 0.488994 1.873269 +v -0.924715 0.578025 1.912505 +v -0.969424 0.549708 1.838277 +v -0.903276 0.633747 1.875151 +v -0.947425 0.606203 1.799928 +v -0.880980 0.683718 1.837288 +v -0.923162 0.659070 1.759362 +v -0.148514 0.636890 0.563737 +v -0.171442 0.687428 0.603113 +v -0.235202 0.607885 0.562354 +v -0.259594 0.660270 0.603979 +v -0.212825 0.551024 0.523652 +v -0.126198 0.579875 0.525174 +v -0.105219 0.516650 0.488828 +v -0.192530 0.490142 0.488414 +v -0.086252 0.448866 0.456085 +v -0.174540 0.425867 0.457272 +v -0.070017 0.378377 0.427901 +v -0.159121 0.358949 0.430651 +v -0.056579 0.305493 0.404800 +v -0.146380 0.289849 0.408581 +v -0.046052 0.230779 0.386569 +v -0.136386 0.218953 0.391325 +v -0.038485 0.154657 0.373382 +v -0.129195 0.146713 0.378960 +v -0.033928 0.077568 0.365471 +v -0.124871 0.073582 0.371475 +v -1.090204 0.068968 1.905645 +v -1.117272 0.064125 1.818990 +v -1.086112 0.137506 1.898607 +v -1.113544 0.127859 1.812470 +v -1.079413 0.205203 1.886951 +v -1.107423 0.190825 1.801656 +v -1.070218 0.271675 1.870780 +v -1.098805 0.252621 1.786589 +v -1.058329 0.336454 1.850096 +v -1.087776 0.312863 1.767357 +v -1.044152 0.399249 1.825140 +v -1.074392 0.371176 1.744090 +v -1.027419 0.459550 1.795946 +v -1.059034 0.427313 1.716975 +v -1.008320 0.517013 1.762722 +v -1.041271 0.480748 1.686079 +v -0.987126 0.571337 1.725698 +v -1.021606 0.531290 1.651661 +v -0.999852 0.578654 1.614049 +v -0.963616 0.622663 1.685680 +v -0.896064 0.708709 1.717703 +v -0.937262 0.670889 1.643456 +v -0.976235 0.622746 1.573646 +v -0.914526 0.708978 1.591541 +v -0.953511 0.659172 1.526689 +v -0.866319 0.756874 1.665364 +v -0.319811 0.753627 0.699670 +v -0.285943 0.707753 0.648019 +v -0.371745 0.668073 0.649317 +v -0.409467 0.703346 0.695045 +v -0.451295 0.619586 0.651070 +v -0.484258 0.653364 0.694415 +v -0.423788 0.578574 0.610178 +v -0.343675 0.622797 0.605412 +v -0.319251 0.572471 0.564898 +v -0.400679 0.532228 0.572342 +v -0.297810 0.518112 0.527808 +v -0.380739 0.481656 0.537911 +v -0.278596 0.460571 0.494478 +v -0.362917 0.428198 0.506827 +v -0.261669 0.400144 0.465296 +v -0.347139 0.371986 0.479791 +v -0.247182 0.337278 0.440251 +v -0.333668 0.313546 0.456507 +v -0.235190 0.272329 0.419600 +v -0.322572 0.253215 0.437109 +v -0.225803 0.205725 0.403355 +v -0.313813 0.191268 0.422103 +v -0.219070 0.137868 0.391581 +v -0.307509 0.128158 0.411340 +v -0.215016 0.069149 0.384498 +v -0.303739 0.064278 0.404770 +v -1.137546 0.058893 1.730552 +v -1.150378 0.053505 1.644117 +v -1.134111 0.117426 1.724558 +v -1.147391 0.106695 1.638685 +v -1.128424 0.175242 1.714606 +v -1.142211 0.159225 1.629636 +v -1.120540 0.231995 1.700768 +v -1.134969 0.210775 1.617048 +v -1.110472 0.287332 1.683111 +v -1.125779 0.261038 1.600994 +v -1.098212 0.340896 1.661742 +v -1.114640 0.309698 1.581577 +v -1.083981 0.392396 1.636803 +v -1.101811 0.356511 1.558913 +v -1.067630 0.441447 1.608432 +v -1.086926 0.401058 1.533134 +v -1.049584 0.487865 1.576832 +v -1.070432 0.443171 1.504408 +v -1.029724 0.531286 1.542183 +v -1.052397 0.482594 1.472914 +v -1.008134 0.571410 1.504701 +v -1.032881 0.519062 1.438835 +v -0.986172 0.606266 1.462974 +v -1.012206 0.551866 1.401978 +v -0.934777 0.683831 1.469370 +v -0.964825 0.633706 1.415569 +v -0.990747 0.580326 1.362145 +v -0.943527 0.655333 1.364934 +v -0.968317 0.604617 1.320158 +v -0.917081 0.700126 1.407359 +v -0.859897 0.748141 1.307996 +v -0.843984 0.771514 1.326396 +v -0.825967 0.771420 1.260738 +v -0.840009 0.750830 1.246527 +v -0.877768 0.720499 1.287000 +v -0.855474 0.726835 1.230727 +v -0.817671 0.752158 1.188879 +v -0.831945 0.730558 1.176549 +v -0.804451 0.771399 1.200273 +v -0.780019 0.770583 1.143181 +v -0.793581 0.751508 1.133558 +v -0.807561 0.731077 1.123594 +v -0.766756 0.750191 1.080546 +v -0.781445 0.729691 1.072142 +v -0.752015 0.769977 1.088983 +v -0.719595 0.770329 1.037361 +v -0.736163 0.749442 1.029900 +v -0.752716 0.727680 1.022510 +v -0.720384 0.725175 0.973472 +v -0.700940 0.748765 0.979752 +v -0.682081 0.770737 0.986318 +v -0.638495 0.769974 0.933968 +v -0.659824 0.747255 0.928457 +v -0.683213 0.722098 0.923909 +v -0.643737 0.716867 0.875560 +v -0.615104 0.744362 0.878733 +v -0.589954 0.768550 0.883401 +v -0.565262 0.695502 0.785244 +v -0.523716 0.677999 0.739560 +v -0.581411 0.630440 0.740806 +v -0.612668 0.652990 0.784152 +v -0.636944 0.579855 0.745047 +v -0.661572 0.604374 0.785424 +v -0.613391 0.551376 0.706414 +v -0.551614 0.602786 0.698537 +v -0.524502 0.569624 0.658287 +v -0.591417 0.519051 0.669819 +v -0.571144 0.483119 0.635606 +v -0.500427 0.531476 0.620432 +v -0.479587 0.488714 0.585633 +v -0.552740 0.443857 0.604056 +v -0.461273 0.442255 0.554054 +v -0.536140 0.401709 0.575288 +v -0.444900 0.393145 0.525574 +v -0.521278 0.357109 0.549406 +v -0.430414 0.341551 0.500712 +v -0.508157 0.310278 0.526723 +v -0.418111 0.287941 0.479159 +v -0.496888 0.261519 0.507356 +v -0.407818 0.232472 0.461634 +v -0.487648 0.211196 0.491178 +v -0.399820 0.175623 0.447719 +v -0.480313 0.159527 0.478689 +v -0.394071 0.117691 0.437702 +v -0.475103 0.106906 0.469569 +v -0.390598 0.059026 0.431707 +v -0.471912 0.053613 0.464203 +v -1.156514 0.048261 1.563656 +v -1.157152 0.043115 1.487797 +v -1.153752 0.096231 1.558744 +v -1.154638 0.085965 1.483405 +v -1.149143 0.143617 1.550581 +v -1.150366 0.128277 1.476114 +v -1.142510 0.190096 1.539224 +v -1.144535 0.169807 1.465971 +v -1.134262 0.235434 1.524741 +v -1.137244 0.210319 1.453021 +v -1.124204 0.279316 1.507224 +v -1.128259 0.249518 1.437371 +v -1.112673 0.321541 1.486767 +v -1.117888 0.287212 1.419087 +v -1.099257 0.361718 1.463516 +v -1.105931 0.323108 1.398315 +v -1.084370 0.399686 1.437596 +v -1.092700 0.357042 1.375150 +v -1.068094 0.435217 1.409173 +v -1.078193 0.388789 1.349748 +v -1.050488 0.468076 1.378413 +v -1.062353 0.418093 1.322285 +v -1.031659 0.498065 1.345511 +v -1.045468 0.444845 1.292905 +v -1.011703 0.524981 1.310665 +v -1.027671 0.468891 1.261771 +v -0.990681 0.548633 1.274112 +v -1.009009 0.490067 1.229088 +v -0.945257 0.625241 1.276714 +v -0.968891 0.568954 1.236031 +v -0.989419 0.508147 1.195111 +v -0.946298 0.585734 1.196707 +v -0.969279 0.523151 1.159974 +v -0.921124 0.641953 1.232331 +v -0.896475 0.655126 1.187281 +v -0.923181 0.598940 1.156333 +v -0.948545 0.534891 1.123948 +v -0.899469 0.608370 1.115247 +v -0.927479 0.543375 1.087204 +v -0.871213 0.664423 1.141788 +v -0.845595 0.669741 1.095954 +v -0.875643 0.614164 1.073553 +v -0.906088 0.548474 1.050021 +v -0.851503 0.616073 1.031675 +v -0.884567 0.550201 1.012601 +v -0.819656 0.671275 1.050057 +v -0.793420 0.669209 1.004381 +v -0.827426 0.614224 0.989755 +v -0.863104 0.548568 0.975140 +v -0.803418 0.608542 0.948138 +v -0.841648 0.543484 0.937983 +v -0.766886 0.663628 0.958987 +v -0.739998 0.654579 0.913962 +v -0.779776 0.599153 0.906984 +v -0.820522 0.535084 0.901239 +v -0.756547 0.586058 0.866610 +v -0.799844 0.523427 0.865130 +v -0.713087 0.641691 0.869906 +v -0.687039 0.625048 0.826959 +v -0.733885 0.569331 0.827266 +v -0.779567 0.508459 0.830026 +v -0.711895 0.549061 0.789227 +v -0.759991 0.490396 0.795996 +v -0.690874 0.525478 0.752573 +v -0.741118 0.469261 0.763366 +v -0.670768 0.498604 0.717712 +v -0.723143 0.445247 0.732259 +v -0.651773 0.468644 0.684798 +v -0.706213 0.418510 0.702832 +v -0.634001 0.435793 0.654031 +v -0.690402 0.389206 0.675282 +v -0.617569 0.400246 0.625606 +v -0.675816 0.357507 0.649778 +v -0.602591 0.362244 0.599663 +v -0.662386 0.323538 0.626674 +v -0.589179 0.322019 0.576346 +v -0.650374 0.287594 0.605899 +v -0.577330 0.279783 0.555916 +v -0.639831 0.249891 0.587588 +v -0.567160 0.235817 0.538454 +v -0.630732 0.210621 0.572005 +v -0.558810 0.190430 0.523911 +v -0.623235 0.170072 0.559079 +v -0.552319 0.143877 0.512407 +v -0.617423 0.128489 0.548847 +v -0.547505 0.096397 0.504402 +v -0.613165 0.086096 0.541609 +v -0.544655 0.048346 0.499498 +v -0.610634 0.043181 0.537204 +v -1.153074 0.038008 1.415235 +v -1.144922 0.033051 1.347212 +v -1.150891 0.075785 1.411360 +v -1.142991 0.065899 1.343846 +v -1.147113 0.113086 1.404938 +v -1.139796 0.098342 1.338252 +v -1.141936 0.149692 1.395999 +v -1.135234 0.130167 1.330492 +v -1.135454 0.185392 1.384581 +v -1.129526 0.161197 1.320571 +v -1.127576 0.219952 1.370777 +v -1.122780 0.191262 1.308543 +v -1.118355 0.253158 1.354663 +v -1.114735 0.220130 1.294532 +v -1.107830 0.284800 1.336350 +v -1.105628 0.247654 1.278595 +v -1.096119 0.314693 1.315935 +v -1.095334 0.273620 1.260867 +v -1.083199 0.342629 1.293569 +v -1.084317 0.297971 1.241365 +v -1.069355 0.368493 1.269339 +v -1.072202 0.320439 1.220312 +v -1.054632 0.392128 1.243401 +v -1.059190 0.340916 1.197816 +v -1.038829 0.413272 1.215986 +v -1.045674 0.359373 1.173907 +v -1.022397 0.431935 1.187170 +v -1.031261 0.375548 1.148890 +v -1.005139 0.447874 1.157219 +v -1.016338 0.389436 1.122815 +v -0.987463 0.461127 1.126217 +v -1.000817 0.400892 1.095918 +v -0.969098 0.471431 1.094502 +v -0.984909 0.409879 1.068319 +v -0.950466 0.478872 1.062148 +v -0.968751 0.416367 1.040168 +v -0.931635 0.483375 1.029368 +v -0.952400 0.420291 1.011655 +v -0.912690 0.484906 0.996379 +v -0.935928 0.421620 0.982973 +v -0.893740 0.483440 0.963386 +v -0.919433 0.420330 0.954301 +v -0.874906 0.478999 0.930591 +v -0.903018 0.416444 0.925815 +v -0.856326 0.471612 0.898180 +v -0.886813 0.409989 0.897675 +v -0.838097 0.461325 0.866361 +v -0.870952 0.401032 0.870025 +v -0.820161 0.448098 0.835476 +v -0.855499 0.389602 0.843062 +v -0.802939 0.432190 0.805461 +v -0.840451 0.375734 0.817029 +v -0.786314 0.413570 0.776696 +v -0.826174 0.359627 0.791863 +v -0.770612 0.392477 0.749140 +v -0.812279 0.341177 0.768134 +v -0.755572 0.368848 0.723328 +v -0.799335 0.320694 0.745568 +v -0.741548 0.342975 0.699153 +v -0.787184 0.298214 0.724507 +v -0.728658 0.315018 0.676731 +v -0.775939 0.273889 0.705054 +v -0.716972 0.285148 0.656187 +v -0.765718 0.247891 0.687269 +v -0.706356 0.253459 0.637910 +v -0.756581 0.220371 0.671270 +v -0.697110 0.220245 0.621716 +v -0.748423 0.191460 0.657329 +v -0.689053 0.185628 0.608020 +v -0.741464 0.161382 0.645355 +v -0.682478 0.149899 0.596580 +v -0.735796 0.130330 0.635351 +v -0.677370 0.113249 0.587550 +v -0.731293 0.098457 0.627587 +v -0.673615 0.075885 0.581170 +v -0.728057 0.065977 0.622005 +v -0.671372 0.038059 0.577304 +v -0.726132 0.033091 0.618617 +v -1.133790 0.028372 1.284944 +v -1.120634 0.025997 1.228206 +v -1.132099 0.056567 1.282066 +v -1.119291 0.052012 1.226687 +v -1.129396 0.084416 1.277262 +v -1.117770 0.078057 1.226384 +v -1.118432 0.100812 1.235883 +v -1.125734 0.111756 1.270557 +v -1.120736 0.138377 1.262057 +v -1.111886 0.114188 1.216220 +v -1.105807 0.135878 1.203053 +v -1.114736 0.164149 1.251767 +v -1.107975 0.188949 1.239700 +v -1.099250 0.158087 1.191018 +v -1.092202 0.179860 1.178617 +v -1.100094 0.212564 1.226031 +v -1.091317 0.234870 1.210799 +v -1.084104 0.200179 1.164505 +v -1.081804 0.255758 1.194071 +v -1.075400 0.220082 1.150035 +v -1.071413 0.275049 1.176003 +v -1.066339 0.240561 1.136631 +v -1.059467 0.263997 1.133139 +v -1.060319 0.292648 1.156679 +v -1.048551 0.308424 1.136212 +v -1.051000 0.262904 1.109992 +v -1.039815 0.271936 1.088209 +v -1.036349 0.322351 1.114672 +v -1.023366 0.334209 1.092357 +v -1.028206 0.281898 1.067056 +v -1.016141 0.291138 1.045909 +v -1.010085 0.344055 1.069252 +v -0.996559 0.351815 1.045500 +v -1.003527 0.297986 1.024180 +v -0.982781 0.357421 1.021287 +v -0.990553 0.304155 1.002379 +v -0.968655 0.360761 0.996861 +v -0.977068 0.311258 0.981183 +v -0.963985 0.326445 0.966788 +v -0.954470 0.361887 0.972277 +v -0.940340 0.360781 0.947660 +v -0.958098 0.311266 0.948242 +v -0.946644 0.304211 0.925867 +v -0.926315 0.357459 0.923171 +v -0.912424 0.351919 0.899002 +v -0.934287 0.298048 0.903702 +v -0.921808 0.291204 0.881886 +v -0.898698 0.344182 0.875345 +v -0.885373 0.334345 0.852247 +v -0.909720 0.282020 0.860716 +v -0.872576 0.322493 0.829805 +v -0.897225 0.272058 0.840058 +v -0.860188 0.308619 0.808318 +v -0.883974 0.263028 0.819451 +v -0.868308 0.264165 0.800409 +v -0.848373 0.292842 0.787856 +v -0.837191 0.275230 0.768569 +v -0.868641 0.240692 0.792778 +v -0.861682 0.220231 0.778123 +v -0.826885 0.255969 0.750390 +v -0.817135 0.235054 0.733790 +v -0.853544 0.200322 0.763303 +v -0.845412 0.179993 0.749184 +v -0.808455 0.212761 0.718436 +v -0.800506 0.189110 0.704813 +v -0.838296 0.158221 0.736773 +v -0.793527 0.164307 0.692811 +v -0.831084 0.135982 0.725125 +v -0.787693 0.138524 0.682370 +v -0.822817 0.114291 0.713161 +v -0.809044 0.100902 0.697658 +v -0.782735 0.111865 0.673881 +v -0.778812 0.084506 0.667295 +v -0.817024 0.078139 0.702904 +v -0.817520 0.052067 0.701447 +v -0.776043 0.056631 0.662510 +v -0.774420 0.028405 0.659580 +v -0.816853 0.026024 0.699551 +v 0.574139 0.044961 2.513591 +v 0.569101 0.045738 2.522084 +v 0.571800 0.091195 2.517434 +v 0.576785 0.089645 2.509013 +v 0.581173 0.133776 2.501407 +v 0.576264 0.136089 2.509696 +v 0.582466 0.180145 2.498934 +v 0.587272 0.177083 2.490829 +v 0.595054 0.219297 2.477336 +v 0.590382 0.223088 2.485207 +v 0.599955 0.264658 2.468609 +v 0.604466 0.260161 2.461021 +v 0.615455 0.299418 2.441975 +v 0.611136 0.304594 2.449235 +v 0.623841 0.342655 2.427209 +v 0.627944 0.336832 2.420323 +v 0.641864 0.372167 2.396191 +v 0.638000 0.378600 2.402659 +v 0.653535 0.412215 2.375753 +v 0.657130 0.405209 2.369738 +v 0.673641 0.435750 2.341116 +v 0.670326 0.443284 2.346632 +v 0.688279 0.471624 2.315491 +v 0.691293 0.463610 2.310507 +v 0.709987 0.488606 2.278098 +v 0.707297 0.497052 2.282522 +v 0.727251 0.519421 2.247928 +v 0.729601 0.510595 2.244092 +v 0.750020 0.529429 2.208696 +v 0.748022 0.538581 2.211919 +v 0.769480 0.554426 2.174721 +v 0.771114 0.545005 2.172130 +v 0.792754 0.557216 2.134616 +v 0.791494 0.566848 2.136559 +v 0.813928 0.575781 2.097673 +v 0.814805 0.565997 2.096390 +v 0.837133 0.571283 2.057685 +v 0.836646 0.581159 2.058300 +v 0.859502 0.582959 2.018683 +v 0.859600 0.573052 2.018739 +v 0.882065 0.571283 1.979793 +v 0.882362 0.581159 1.979067 +v 0.905112 0.575784 1.939712 +v 0.904396 0.565996 1.941089 +v 0.926448 0.557215 1.902863 +v 0.927550 0.566851 1.900828 +v 0.949515 0.554426 1.862639 +v 0.948083 0.545005 1.865347 +v 0.969177 0.529429 1.828781 +v 0.970968 0.538580 1.825438 +v 0.991742 0.519421 1.789431 +v 0.989598 0.510593 1.793386 +v 1.009214 0.488605 1.759381 +v 1.011696 0.497052 1.754837 +v 1.030713 0.471624 1.721868 +v 1.027908 0.463609 1.726972 +v 1.045563 0.435751 1.696364 +v 1.048673 0.443283 1.690731 +v 1.065470 0.412214 1.661614 +v 1.062075 0.405209 1.667742 +v 1.077336 0.372166 1.641287 +v 1.080995 0.378600 1.634702 +v 1.095156 0.342655 1.610153 +v 1.091256 0.336832 1.617155 +v 1.103745 0.299418 1.595503 +v 1.107861 0.304594 1.588127 +v 1.119038 0.264658 1.568751 +v 1.114733 0.260160 1.576456 +v 1.124144 0.219297 1.560141 +v 1.128613 0.223087 1.552154 +v 1.136530 0.180144 1.538428 +v 1.131927 0.177083 1.546648 +v 1.138028 0.133776 1.536071 +v 1.142737 0.136088 1.527668 +v 1.147200 0.091194 1.519930 +v 1.142416 0.089645 1.528465 +v 1.145057 0.044961 1.523886 +v 1.149887 0.045738 1.515272 +v 0.573936 0.043703 2.495015 +v 0.575595 0.044398 2.506169 +v 0.578203 0.088522 2.501647 +v 0.576503 0.087136 2.490564 +v 0.580768 0.130032 2.483171 +v 0.582536 0.132100 2.494137 +v 0.588561 0.174865 2.483692 +v 0.586699 0.172127 2.472890 +v 0.594265 0.213159 2.459775 +v 0.596247 0.216550 2.470368 +v 0.605540 0.256902 2.454257 +v 0.603413 0.252880 2.443916 +v 0.614093 0.291038 2.425403 +v 0.616390 0.295668 2.435449 +v 0.628724 0.332613 2.414069 +v 0.626233 0.327405 2.404357 +v 0.639764 0.361751 2.380900 +v 0.642470 0.367505 2.390239 +v 0.657539 0.400134 2.364116 +v 0.654598 0.393869 2.355186 +v 0.670647 0.423556 2.327364 +v 0.673844 0.430293 2.335852 +v 0.691278 0.457803 2.305628 +v 0.687808 0.450635 2.297614 +v 0.705980 0.474931 2.266113 +v 0.709739 0.482486 2.273625 +v 0.729110 0.504198 2.240046 +v 0.725047 0.496304 2.233059 +v 0.744895 0.514612 2.198653 +v 0.749273 0.522798 2.205093 +v 0.770102 0.538179 2.168985 +v 0.765398 0.529752 2.163110 +v 0.786432 0.541622 2.126647 +v 0.791471 0.550237 2.131942 +v 0.813246 0.558907 2.094194 +v 0.807866 0.550156 2.089491 +v 0.829569 0.555294 2.051868 +v 0.835294 0.564127 2.055973 +v 0.857479 0.565874 2.017515 +v 0.851407 0.557014 2.014012 +v 0.873244 0.555294 1.976157 +v 0.879663 0.564127 1.979057 +v 0.901711 0.558907 1.940836 +v 0.894946 0.550156 1.938534 +v 0.916380 0.541622 1.901377 +v 0.923486 0.550236 1.903089 +v 0.944855 0.538179 1.866045 +v 0.937414 0.529752 1.864914 +v 0.957917 0.514612 1.829371 +v 0.965684 0.522798 1.829937 +v 0.985847 0.504198 1.794984 +v 0.977765 0.496304 1.794965 +v 0.996832 0.474931 1.761912 +v 1.005217 0.482485 1.761405 +v 1.023678 0.457802 1.729402 +v 1.015004 0.450634 1.730411 +v 1.032165 0.423555 1.700660 +v 1.041113 0.430293 1.699179 +v 1.057417 0.400134 1.670915 +v 1.048214 0.393869 1.672839 +v 1.063048 0.361750 1.647124 +v 1.072487 0.367505 1.644791 +v 1.086233 0.332613 1.620962 +v 1.076579 0.327405 1.623668 +v 1.088719 0.291038 1.602622 +v 1.098567 0.295667 1.599581 +v 1.109416 0.256902 1.580773 +v 1.099399 0.252879 1.584109 +v 1.108547 0.213159 1.568250 +v 1.118710 0.216550 1.564662 +v 1.126396 0.174865 1.551339 +v 1.116113 0.172127 1.555135 +v 1.122044 0.130031 1.544854 +v 1.132421 0.132100 1.540894 +v 1.136753 0.088522 1.533383 +v 1.126308 0.087136 1.537461 +v 1.128876 0.043702 1.533010 +v 1.139362 0.044398 1.528862 +v 0.496955 0.051454 2.564307 +v 0.499994 0.102594 2.559100 +v 0.505022 0.153101 2.550408 +v 0.512045 0.202679 2.538377 +v 0.521023 0.251026 2.523063 +v 0.531810 0.297810 2.504411 +v 0.544406 0.342759 2.482641 +v 0.558819 0.385664 2.458039 +v 0.574877 0.426204 2.430590 +v 0.592392 0.464074 2.400350 +v 0.611372 0.499106 2.367664 +v 0.631686 0.531087 2.332720 +v 0.653174 0.559780 2.295677 +v 0.675681 0.584997 2.256754 +v 0.699166 0.606651 2.216287 +v 0.723441 0.624582 2.174480 +v 0.748280 0.638605 2.131520 +v 0.773700 0.648780 2.087816 +v 0.799348 0.654878 2.043483 +v 0.825159 0.656948 1.998872 +v 0.851059 0.655021 1.954296 +v 0.876638 0.648948 1.909906 +v 0.901896 0.638867 1.866067 +v 0.926877 0.624976 1.823112 +v 0.950947 0.607047 1.781146 +v 0.974494 0.585530 1.740590 +v 0.997006 0.560327 1.701597 +v 1.018381 0.531631 1.664420 +v 1.038630 0.499688 1.629322 +v 1.057580 0.464673 1.596501 +v 1.075101 0.426789 1.566164 +v 1.090957 0.386232 1.538488 +v 1.105262 0.343326 1.513660 +v 1.117864 0.298312 1.491821 +v 1.128690 0.251463 1.473112 +v 1.137504 0.203038 1.457645 +v 1.144592 0.153395 1.445512 +v 1.149545 0.102786 1.436795 +v 1.152493 0.051548 1.431550 +v 0.564094 0.041072 2.450749 +v 0.569630 0.042530 2.475324 +v 0.572129 0.084797 2.470993 +v 0.566507 0.081891 2.446566 +v 0.570515 0.122205 2.439618 +v 0.576279 0.126542 2.463798 +v 0.582051 0.167507 2.453793 +v 0.576089 0.161766 2.429955 +v 0.583199 0.200328 2.417630 +v 0.589413 0.207438 2.441030 +v 0.598316 0.246092 2.425597 +v 0.591797 0.237658 2.402726 +v 0.601833 0.273519 2.385327 +v 0.608709 0.283226 2.407580 +v 0.620524 0.318617 2.387099 +v 0.613243 0.307697 2.365548 +v 0.625959 0.339975 2.343503 +v 0.633691 0.352041 2.364273 +v 0.648127 0.383297 2.339248 +v 0.639900 0.370160 2.319337 +v 0.654983 0.398060 2.293190 +v 0.663745 0.412187 2.312174 +v 0.680446 0.438539 2.283222 +v 0.671112 0.423509 2.265231 +v 0.688190 0.446343 2.235625 +v 0.698130 0.462183 2.252566 +v 0.716686 0.482983 2.220400 +v 0.706109 0.466429 2.204561 +v 0.724762 0.483636 2.172227 +v 0.736000 0.500800 2.186917 +v 0.755953 0.515534 2.152328 +v 0.744031 0.497865 2.138823 +v 0.763799 0.509019 2.104555 +v 0.776423 0.527084 2.116844 +v 0.797281 0.535389 2.080685 +v 0.783943 0.517041 2.069635 +v 0.804339 0.521869 2.034277 +v 0.818402 0.540389 2.044072 +v 0.839653 0.542063 2.007232 +v 0.824861 0.523485 1.998700 +v 0.845384 0.521869 1.963123 +v 0.860904 0.540389 1.970393 +v 0.882024 0.535389 1.933780 +v 0.865781 0.517041 1.927765 +v 0.885925 0.509019 1.892845 +v 0.902883 0.527084 1.897620 +v 0.923352 0.515532 1.862136 +v 0.905693 0.497864 1.858576 +v 0.924961 0.483635 1.825173 +v 0.943305 0.500799 1.827547 +v 0.962620 0.482982 1.794065 +v 0.943614 0.466429 1.792839 +v 0.961534 0.446343 1.761775 +v 0.981175 0.462183 1.761899 +v 0.998859 0.438539 1.731243 +v 0.978612 0.423509 1.732169 +v 0.994740 0.398060 1.704210 +v 1.015560 0.412186 1.702291 +v 1.031178 0.383297 1.675216 +v 1.009823 0.370160 1.678063 +v 1.023764 0.339975 1.653897 +v 1.045614 0.352040 1.650192 +v 1.058782 0.318617 1.627365 +v 1.036480 0.307697 1.631853 +v 1.047890 0.273519 1.612074 +v 1.070596 0.283226 1.606884 +v 1.080989 0.246092 1.588868 +v 1.057927 0.237657 1.594675 +v 1.066525 0.200328 1.579770 +v 1.089892 0.207438 1.573435 +v 1.097254 0.167507 1.560672 +v 1.073634 0.161766 1.567445 +v 1.079208 0.122204 1.557782 +v 1.103026 0.126541 1.550667 +v 1.107176 0.084797 1.543472 +v 1.083216 0.081891 1.550834 +v 1.085629 0.041072 1.546652 +v 1.109675 0.042529 1.539141 +v 0.558744 0.039523 2.424942 +v 0.561066 0.078803 2.420917 +v 0.564923 0.117596 2.414230 +v 0.570286 0.155665 2.404932 +v 0.577128 0.192774 2.393072 +v 0.585401 0.228695 2.378730 +v 0.595060 0.263204 2.361987 +v 0.606039 0.296093 2.342954 +v 0.618276 0.327154 2.321741 +v 0.631691 0.356201 2.298485 +v 0.646205 0.383048 2.273325 +v 0.661726 0.407537 2.246420 +v 0.678160 0.429510 2.217931 +v 0.695403 0.448839 2.188038 +v 0.713353 0.465396 2.156923 +v 0.731895 0.479089 2.124780 +v 0.750917 0.489823 2.091804 +v 0.770301 0.497542 2.058201 +v 0.789929 0.502187 2.024176 +v 0.809677 0.503744 1.989941 +v 0.829427 0.502187 1.955705 +v 0.849054 0.497542 1.921681 +v 0.868438 0.489823 1.888078 +v 0.887460 0.479089 1.855102 +v 0.906002 0.465396 1.822958 +v 0.923951 0.448839 1.791843 +v 0.941195 0.429510 1.761951 +v 0.957629 0.407537 1.733462 +v 0.973149 0.383048 1.706557 +v 0.987663 0.356200 1.681396 +v 1.001078 0.327154 1.658141 +v 1.013315 0.296093 1.636928 +v 1.024295 0.263204 1.617895 +v 1.033953 0.228695 1.601152 +v 1.042226 0.192773 1.586810 +v 1.049068 0.155665 1.574949 +v 1.054432 0.117596 1.565651 +v 1.058289 0.078802 1.558965 +v 1.060610 0.039523 1.554940 +v 0.543511 0.035239 2.353316 +v 0.545581 0.070262 2.349727 +v 0.539223 0.035176 2.349918 +v 0.541290 0.070136 2.346336 +v 0.549020 0.104850 2.343766 +v 0.553803 0.138793 2.335476 +v 0.544723 0.104663 2.340385 +v 0.549496 0.138545 2.332110 +v 0.559903 0.171879 2.324901 +v 0.567279 0.203907 2.312113 +v 0.555586 0.171572 2.321553 +v 0.562949 0.203542 2.308789 +v 0.575891 0.234676 2.297185 +v 0.585680 0.264000 2.280215 +v 0.571545 0.234256 2.293887 +v 0.581317 0.263528 2.276947 +v 0.596591 0.291694 2.261301 +v 0.608552 0.317593 2.240566 +v 0.592208 0.291173 2.258068 +v 0.604148 0.317025 2.237370 +v 0.621493 0.341530 2.218133 +v 0.635331 0.363365 2.194144 +v 0.617066 0.340919 2.214977 +v 0.630879 0.362715 2.191031 +v 0.649984 0.382956 2.168743 +v 0.665358 0.400190 2.142091 +v 0.645506 0.382272 2.165675 +v 0.660853 0.399475 2.139070 +v 0.681362 0.414953 2.114348 +v 0.697895 0.427161 2.085688 +v 0.676828 0.414211 2.111377 +v 0.693331 0.426397 2.082769 +v 0.714855 0.436732 2.056286 +v 0.732139 0.443614 2.026325 +v 0.710261 0.435951 2.053420 +v 0.727513 0.442821 2.023512 +v 0.749639 0.447757 1.995989 +v 0.767247 0.449144 1.965464 +v 0.744982 0.446957 1.993230 +v 0.762559 0.448341 1.962760 +v 0.784855 0.447757 1.934939 +v 0.802355 0.443614 1.904603 +v 0.780136 0.446956 1.932290 +v 0.797605 0.442821 1.902007 +v 0.819637 0.436732 1.874642 +v 0.836598 0.427161 1.845240 +v 0.814857 0.435951 1.872100 +v 0.831787 0.426397 1.842751 +v 0.853132 0.414953 1.816581 +v 0.869134 0.400190 1.788838 +v 0.848289 0.414211 1.814143 +v 0.864264 0.399474 1.786449 +v 0.884509 0.382956 1.762185 +v 0.899162 0.363365 1.736784 +v 0.879611 0.382271 1.759844 +v 0.894238 0.362715 1.734489 +v 0.913000 0.341530 1.712796 +v 0.925941 0.317592 1.690362 +v 0.908051 0.340919 1.710543 +v 0.920969 0.317024 1.688150 +v 0.937902 0.291694 1.669627 +v 0.948812 0.264000 1.650714 +v 0.932909 0.291172 1.667452 +v 0.943800 0.263528 1.648572 +v 0.958602 0.234676 1.633744 +v 0.967213 0.203907 1.618815 +v 0.953572 0.234256 1.631632 +v 0.962168 0.203542 1.616731 +v 0.974590 0.171879 1.606028 +v 0.980690 0.138793 1.595453 +v 0.969531 0.171571 1.603966 +v 0.975620 0.138545 1.593410 +v 0.985472 0.104850 1.587163 +v 0.988911 0.070261 1.581201 +v 0.980394 0.104662 1.585135 +v 0.983827 0.070136 1.579184 +v 0.990981 0.035239 1.577612 +v 0.985893 0.035176 1.575602 +v 0.532957 0.035322 2.348435 +v 0.535032 0.070426 2.344838 +v 0.525799 0.035607 2.348493 +v 0.527890 0.070995 2.344867 +v 0.538479 0.105095 2.338863 +v 0.543273 0.139117 2.330553 +v 0.531365 0.105944 2.338843 +v 0.536198 0.140241 2.330466 +v 0.549387 0.172281 2.319953 +v 0.556781 0.204383 2.307136 +v 0.542361 0.173673 2.319781 +v 0.549815 0.206035 2.306860 +v 0.565412 0.235224 2.292173 +v 0.575225 0.264617 2.275163 +v 0.558516 0.237125 2.291776 +v 0.568408 0.266755 2.274628 +v 0.586161 0.292375 2.256205 +v 0.598150 0.318334 2.235422 +v 0.579432 0.294738 2.255517 +v 0.591518 0.320907 2.234566 +v 0.611121 0.342328 2.212936 +v 0.624991 0.364214 2.188891 +v 0.604594 0.345094 2.211899 +v 0.618577 0.367157 2.187659 +v 0.639678 0.383851 2.163431 +v 0.655089 0.401125 2.136716 +v 0.633382 0.386953 2.161994 +v 0.648918 0.404366 2.135063 +v 0.671130 0.415922 2.108909 +v 0.687701 0.428159 2.080182 +v 0.665088 0.419283 2.107030 +v 0.681793 0.431619 2.078072 +v 0.704701 0.437752 2.050712 +v 0.722025 0.444650 2.020681 +v 0.698931 0.441289 2.048363 +v 0.716395 0.448243 2.018090 +v 0.739566 0.448803 1.990273 +v 0.757215 0.450193 1.959677 +v 0.734077 0.452430 1.987437 +v 0.751869 0.453831 1.956593 +v 0.774865 0.448803 1.929081 +v 0.792406 0.444650 1.898674 +v 0.769661 0.452430 1.925750 +v 0.787344 0.448243 1.895097 +v 0.809729 0.437752 1.868643 +v 0.826728 0.428159 1.839172 +v 0.804807 0.441289 1.864823 +v 0.821945 0.431619 1.835115 +v 0.843301 0.415922 1.810446 +v 0.859341 0.401125 1.782638 +v 0.838649 0.419283 1.806156 +v 0.854820 0.404366 1.778124 +v 0.874751 0.383850 1.755924 +v 0.889438 0.364213 1.730464 +v 0.870355 0.386952 1.751193 +v 0.885161 0.367157 1.725527 +v 0.903309 0.342327 1.706419 +v 0.916280 0.318334 1.683933 +v 0.899143 0.345094 1.701288 +v 0.912219 0.320907 1.678620 +v 0.928269 0.292375 1.663150 +v 0.939205 0.264616 1.644192 +v 0.924305 0.294738 1.657669 +v 0.935330 0.266755 1.638558 +v 0.949017 0.235224 1.627182 +v 0.957649 0.204383 1.612219 +v 0.945221 0.237125 1.621411 +v 0.953922 0.206035 1.606327 +v 0.965042 0.172280 1.599402 +v 0.971157 0.139117 1.588802 +v 0.961376 0.173672 1.593406 +v 0.967540 0.140241 1.582721 +v 0.975950 0.105095 1.580492 +v 0.979397 0.070425 1.574517 +v 0.972372 0.105944 1.574344 +v 0.975847 0.070994 1.568320 +v 0.981472 0.035321 1.570920 +v 0.977939 0.035607 1.564694 +v -0.684568 0.807398 1.993166 +v -0.734789 0.807638 1.909248 +v -0.744006 0.792719 1.923733 +v -0.692944 0.792750 2.006595 +v -0.755724 0.770858 1.943797 +v -0.703362 0.772159 2.024493 +v -0.799479 0.769205 1.857202 +v -0.785120 0.792479 1.836692 +v -0.774343 0.807522 1.823405 +v -0.800966 0.807423 1.743279 +v -0.815251 0.791526 1.751670 +v -0.834567 0.765640 1.769054 +v -0.834864 0.791190 1.667818 +v -0.817748 0.807666 1.666610 +v -0.827472 0.807959 1.591110 +v -0.844186 0.792448 1.584133 +v -0.868749 0.766749 1.564006 +v -0.845185 0.793802 1.501327 +v -0.865449 0.770564 1.478887 +v -0.830177 0.808302 1.514554 +v -0.825744 0.808367 1.434674 +v -0.839799 0.793708 1.420161 +v -0.857130 0.771649 1.399386 +v -0.828351 0.792795 1.343786 +v -0.814841 0.807906 1.356958 +v -0.798510 0.807454 1.286849 +v -0.811469 0.792101 1.275231 +v -0.790059 0.791719 1.212575 +v -0.777115 0.807258 1.222828 +v -0.648702 0.807481 1.000089 +v -0.603686 0.807638 0.948968 +v -0.619005 0.791686 0.941438 +v -0.663670 0.791836 0.993483 +v -0.567790 0.791323 0.891134 +v -0.550991 0.808035 0.899343 +v -0.537695 0.767316 0.837342 +v -0.569374 0.739976 0.832874 +v -0.604809 0.708200 0.829967 +v -0.519552 0.733233 0.788037 +v -0.478481 0.765591 0.792954 +v -0.408885 0.761988 0.748249 +v -0.462634 0.723257 0.741470 +v -0.210568 0.766792 0.676736 +v -0.194222 0.731111 0.642115 +v -0.099307 0.743853 0.636984 +v -0.114573 0.773865 0.664944 +v -0.017290 0.778088 0.661650 +v -0.003887 0.751647 0.638070 +v 0.090712 0.755329 0.646006 +v 0.079287 0.779240 0.666431 +v 0.069288 0.798153 0.684120 +v 0.062172 0.811009 0.697687 +v 0.157161 0.809907 0.708717 +v 0.164233 0.796173 0.695335 +v 0.173534 0.777153 0.678859 +v 0.255245 0.794169 0.716543 +v 0.264250 0.774857 0.700549 +v 0.247882 0.808907 0.730302 +v 0.561949 0.808676 0.911746 +v 0.626320 0.808826 0.978896 +v 0.634936 0.793860 0.965000 +v 0.569728 0.794352 0.898992 +v 0.644798 0.774091 0.948213 +v 0.578739 0.775667 0.883722 +v 0.704542 0.772147 1.020333 +v 0.693404 0.793449 1.039429 +v 0.683733 0.809194 1.054933 +v 0.756696 0.771201 1.101643 +v 0.769212 0.746056 1.079893 +v 0.715393 0.749522 1.001781 +v 0.816943 0.739942 1.163139 +v 0.801083 0.768874 1.189187 +v 0.837612 0.763621 1.280023 +v 0.858912 0.728481 1.249168 +v 0.870689 0.763545 1.485650 +v 0.900910 0.728164 1.524812 +v 0.888188 0.739849 1.597785 +v 0.865174 0.769010 1.567795 +v 0.468436 0.770322 2.249118 +v 0.396895 0.764670 2.295829 +v 0.447328 0.729052 2.301731 +v 0.506201 0.740738 2.253557 +v 0.201737 0.762076 2.369936 +v 0.186908 0.724306 2.405155 +v 0.092710 0.733250 2.412798 +v 0.107751 0.766710 2.383290 +v 0.686633 0.806087 1.992605 +v 0.720467 0.806297 1.938452 +v 0.714132 0.812129 1.934731 +v 0.680166 0.812165 1.989001 +v 0.647673 0.806045 2.044750 +v 0.640893 0.812168 2.041158 +v 0.675229 0.811534 1.985558 +v 0.636195 0.811540 2.037347 +v 0.708985 0.811474 1.931686 +v 0.776169 0.806355 1.822258 +v 0.769816 0.812093 1.818087 +v 0.744190 0.812114 1.878146 +v 0.750432 0.806247 1.882041 +v 0.738859 0.811448 1.875469 +v 0.764321 0.811412 1.815779 +v -0.247549 0.807495 2.314622 +v -0.244120 0.812174 2.307597 +v -0.329575 0.812172 2.275675 +v -0.333174 0.807840 2.282338 +v -0.410372 0.812165 2.234588 +v -0.414232 0.808115 2.241036 +v -0.326858 0.811554 2.270109 +v -0.407123 0.811554 2.229323 +v -0.241954 0.811549 2.301794 +v 0.490915 0.809035 0.854011 +v 0.414338 0.809346 0.804688 +v 0.409757 0.812148 0.812866 +v 0.486083 0.812164 0.861685 +v 0.556830 0.812160 0.919093 +v 0.482665 0.811529 0.866739 +v 0.552924 0.811526 0.923791 +v 0.406875 0.811503 0.818226 +v -0.490528 0.808189 2.191498 +v -0.486337 0.812194 2.185277 +v -0.561450 0.807986 2.133734 +v -0.556848 0.812214 2.127599 +v -0.482526 0.811583 2.180365 +v -0.552514 0.811617 2.123079 +v 0.244276 0.812184 0.738825 +v 0.329353 0.812174 0.771254 +v 0.333444 0.809005 0.762867 +v 0.327054 0.811549 0.776934 +v 0.242574 0.811565 0.744770 +v -0.769182 0.812206 1.227686 +v -0.742737 0.812197 1.168193 +v -0.750958 0.807453 1.163354 +v -0.712235 0.812189 1.111945 +v -0.720731 0.807674 1.107078 +v -0.737010 0.811586 1.170908 +v -0.706741 0.811550 1.115056 +v -0.763253 0.811604 1.230013 +v -0.687185 0.807617 1.052705 +v -0.678816 0.812253 1.057368 +v -0.640527 0.812220 1.004692 +v -0.673531 0.811621 1.060884 +v -0.635481 0.811608 1.008565 +v -0.626459 0.807616 2.067807 +v -0.621281 0.812159 2.061408 +v -0.678767 0.812087 1.986441 +v -0.616536 0.811524 2.057316 +v -0.673675 0.811401 1.982832 +v -0.728437 0.812053 1.902432 +v -0.767347 0.812019 1.817397 +v -0.723017 0.811343 1.899379 +v -0.761641 0.811284 1.814977 +v -0.792551 0.811945 1.739350 +v -0.808063 0.811888 1.665581 +v -0.786632 0.811159 1.737645 +v -0.801998 0.811061 1.664628 +v -0.817900 0.811932 1.593374 +v -0.821161 0.811948 1.519401 +v -0.814988 0.811163 1.519887 +v -0.811743 0.811122 1.593169 +v -0.816978 0.811983 1.440333 +v -0.806386 0.812035 1.362442 +v -0.800281 0.811312 1.363989 +v -0.810824 0.811223 1.441398 +v -0.790426 0.812131 1.291997 +v -0.784384 0.811476 1.293951 +v -0.595447 0.812132 0.954127 +v -0.542258 0.812032 0.905092 +v -0.590676 0.811472 0.958289 +v -0.537814 0.811306 0.909518 +v -0.489432 0.808464 0.851298 +v -0.479640 0.811978 0.857004 +v -0.422834 0.808478 0.808055 +v -0.412751 0.811940 0.814022 +v -0.475595 0.811214 0.861717 +v -0.409200 0.811150 0.819041 +v -0.355253 0.808361 0.772563 +v -0.346750 0.811892 0.780304 +v -0.285310 0.808557 0.743865 +v -0.279710 0.811873 0.753516 +v -0.343811 0.811066 0.785644 +v -0.277458 0.811032 0.759156 +v -0.211569 0.809183 0.721152 +v -0.209709 0.811925 0.731322 +v -0.131199 0.811990 0.715204 +v -0.129910 0.810333 0.705103 +v -0.208173 0.811121 0.737207 +v -0.130382 0.811232 0.721259 +v -0.038638 0.812012 0.706644 +v -0.036097 0.811266 0.696783 +v 0.059298 0.812032 0.706983 +v -0.038513 0.811268 0.712778 +v 0.058771 0.811305 0.713118 +v 0.153931 0.812113 0.717555 +v 0.152806 0.811444 0.723640 +v 0.620501 0.812094 0.986467 +v 0.677073 0.812020 1.062809 +v 0.616147 0.811414 0.990700 +v 0.672321 0.811287 1.066504 +v 0.733719 0.809232 1.139323 +v 0.726526 0.811997 1.147124 +v 0.773262 0.808505 1.224984 +v 0.765507 0.811976 1.231593 +v 0.721430 0.811249 1.150237 +v 0.760130 0.811212 1.234067 +v 0.799915 0.807796 1.304614 +v 0.790659 0.811909 1.308397 +v 0.816828 0.807510 1.380629 +v 0.806356 0.811854 1.380916 +v 0.785071 0.811098 1.310165 +v 0.800622 0.811004 1.381942 +v 0.816970 0.811884 1.452524 +v 0.826833 0.807448 1.455461 +v 0.820976 0.811931 1.526229 +v 0.829641 0.807631 1.531317 +v 0.815122 0.811143 1.525833 +v 0.811147 0.811057 1.452813 +v 0.816853 0.811954 1.605034 +v 0.824839 0.807829 1.610478 +v 0.806167 0.811986 1.682802 +v 0.813546 0.807511 1.687743 +v 0.800408 0.811229 1.681333 +v 0.811023 0.811176 1.604060 +v 0.790481 0.812042 1.753396 +v 0.797245 0.806861 1.757915 +v 0.784839 0.811324 1.751486 +v 0.602265 0.806517 2.095142 +v 0.594914 0.812089 2.091409 +v 0.549468 0.807203 2.144359 +v 0.541473 0.812001 2.140371 +v 0.590486 0.811404 2.087313 +v 0.537365 0.811252 2.136016 +v 0.488281 0.807490 2.192831 +v 0.479811 0.811951 2.188659 +v 0.422344 0.807228 2.236606 +v 0.414297 0.811922 2.231685 +v 0.476098 0.811168 2.184020 +v 0.411071 0.811120 2.226741 +v 0.355431 0.806953 2.272055 +v 0.349295 0.811875 2.264858 +v 0.284824 0.806862 2.301239 +v 0.281417 0.811865 2.291893 +v 0.346672 0.811039 2.259600 +v 0.279476 0.811017 2.286336 +v 0.207276 0.811928 2.316501 +v 0.207803 0.806629 2.325926 +v 0.125323 0.812008 2.334832 +v 0.123578 0.806576 2.343586 +v 0.124833 0.811267 2.328841 +v 0.206060 0.811129 2.310689 +v 0.034008 0.812031 2.343036 +v 0.031205 0.806988 2.351707 +v -0.061036 0.812048 2.341201 +v -0.064229 0.807189 2.349647 +v -0.060166 0.811335 2.335156 +v 0.034208 0.811305 2.336975 +v -0.154176 0.812115 2.329413 +v -0.157537 0.807371 2.337194 +v -0.152638 0.811449 2.323452 +v 0.629921 0.808635 2.032200 +v 0.668560 0.808630 1.980929 +v 0.624459 0.804089 2.027688 +v 0.662720 0.804086 1.976886 +v 0.701971 0.808567 1.927597 +v 0.695801 0.804035 1.924033 +v 0.731544 0.808539 1.871940 +v 0.725085 0.804013 1.868900 +v 0.756751 0.808501 1.812843 +v 0.750051 0.803982 1.810372 +v -0.402770 0.808619 2.222228 +v -0.323307 0.808638 2.262603 +v -0.398968 0.804075 2.216008 +v -0.320256 0.804091 2.256024 +v -0.239252 0.808642 2.293970 +v -0.237000 0.804094 2.287114 +v 0.547529 0.808620 0.929995 +v 0.477974 0.808618 0.873517 +v 0.542737 0.804077 0.935359 +v 0.473823 0.804076 0.879428 +v 0.402944 0.808593 0.825491 +v 0.399483 0.804056 0.831865 +v -0.546692 0.808714 2.117060 +v -0.477411 0.808680 2.173766 +v -0.541600 0.804152 2.111824 +v -0.472940 0.804124 2.167996 +v 0.323935 0.808645 0.784613 +v 0.321196 0.804097 0.791344 +v 0.238347 0.804110 0.759771 +v 0.240311 0.808661 0.752771 +v -0.699346 0.808634 1.119283 +v -0.729311 0.808683 1.174570 +v -0.692869 0.804088 1.123005 +v -0.722575 0.804127 1.177780 +v -0.755293 0.808701 1.233083 +v -0.748331 0.804141 1.235738 +v -0.628802 0.808697 1.013859 +v -0.666474 0.808680 1.065653 +v -0.623010 0.804138 1.018541 +v -0.660312 0.804125 1.069858 +v -0.666641 0.808486 1.978203 +v -0.610073 0.808616 2.051951 +v -0.660392 0.803967 1.974274 +v -0.604376 0.804072 2.047328 +v -0.753709 0.808362 1.812035 +v -0.715483 0.808425 1.895581 +v -0.746642 0.803867 1.809631 +v -0.708769 0.803918 1.892425 +v -0.793628 0.808124 1.663279 +v -0.778431 0.808228 1.735515 +v -0.786212 0.803673 1.662066 +v -0.771144 0.803758 1.733739 +v -0.806493 0.808233 1.520082 +v -0.803278 0.808151 1.592591 +v -0.798973 0.803762 1.520007 +v -0.795780 0.803695 1.591922 +v -0.791950 0.808391 1.365744 +v -0.802380 0.808297 1.442387 +v -0.784600 0.803889 1.367107 +v -0.794912 0.803813 1.443017 +v -0.776213 0.808565 1.296392 +v -0.769040 0.804030 1.298430 +v -0.584435 0.808560 0.964081 +v -0.532089 0.808385 0.915795 +v -0.527217 0.803885 0.921454 +v -0.579069 0.804027 0.969253 +v -0.470481 0.808288 0.868476 +v -0.404753 0.808219 0.826241 +v -0.401048 0.803751 0.832764 +v -0.466187 0.803807 0.874602 +v -0.340050 0.808128 0.793207 +v -0.274410 0.808092 0.767013 +v -0.271742 0.803648 0.774007 +v -0.336873 0.803677 0.800005 +v -0.205871 0.808187 0.745298 +v -0.128903 0.808305 0.729514 +v -0.203739 0.803725 0.752449 +v -0.127410 0.803821 0.736777 +v 0.058338 0.808382 0.721440 +v -0.037971 0.808338 0.721111 +v 0.058106 0.803883 0.728752 +v -0.037300 0.803848 0.728436 +v 0.151439 0.808532 0.731853 +v 0.150319 0.804004 0.739052 +v 0.610112 0.808500 0.996233 +v 0.665712 0.808365 1.071276 +v 0.659824 0.803869 1.075340 +v 0.604741 0.803979 1.000983 +v 0.752614 0.808284 1.237150 +v 0.714318 0.808323 1.154171 +v 0.745908 0.803805 1.239708 +v 0.707972 0.803836 1.157471 +v 0.777285 0.808160 1.312446 +v 0.792662 0.808062 1.383451 +v 0.785598 0.803623 1.384835 +v 0.770355 0.803704 1.314384 +v 0.807024 0.808186 1.525802 +v 0.803081 0.808098 1.453555 +v 0.799840 0.803726 1.526042 +v 0.795926 0.803653 1.454393 +v 0.792473 0.808305 1.679736 +v 0.802974 0.808243 1.603234 +v 0.785450 0.803821 1.678545 +v 0.795842 0.803772 1.602771 +v 0.777063 0.808407 1.749191 +v 0.770179 0.803905 1.747333 +v 0.532058 0.808315 2.129894 +v 0.584660 0.808489 2.081672 +v 0.527538 0.803829 2.124404 +v 0.579638 0.803970 2.076672 +v 0.407023 0.808188 2.219692 +v 0.471394 0.808237 2.177413 +v 0.403651 0.803726 2.213334 +v 0.467444 0.803766 2.171452 +v 0.276829 0.808072 2.278642 +v 0.343303 0.808101 2.252197 +v 0.274504 0.803632 2.271819 +v 0.340453 0.803655 2.245570 +v 0.123827 0.808344 2.320714 +v 0.204199 0.808197 2.302742 +v 0.122764 0.803853 2.313582 +v 0.202458 0.803733 2.295742 +v -0.059296 0.808416 2.326984 +v 0.034127 0.808385 2.328774 +v -0.058693 0.803910 2.319816 +v 0.033871 0.803885 2.321583 +v -0.150835 0.808535 2.315407 +v -0.149397 0.804006 2.308352 +v 0.622202 0.798535 2.025787 +v 0.660268 0.798533 1.975200 +v 0.621547 0.792477 2.025190 +v 0.659512 0.792477 1.974693 +v 0.693186 0.798506 1.922560 +v 0.692350 0.792477 1.922132 +v 0.722323 0.798494 1.867689 +v 0.721409 0.792477 1.867392 +v 0.746193 0.792477 1.809323 +v 0.747168 0.798476 1.809458 +v -0.397382 0.798527 2.213388 +v -0.319039 0.798536 2.253244 +v -0.396904 0.792477 2.212567 +v -0.318741 0.792477 2.252364 +v -0.236182 0.798537 2.284214 +v -0.236082 0.792477 2.283291 +v 0.540642 0.798528 0.937532 +v 0.472031 0.798528 0.881881 +v 0.539897 0.792477 0.938110 +v 0.471417 0.792477 0.882605 +v 0.398009 0.798517 0.834552 +v 0.397529 0.792477 0.835395 +v -0.539456 0.798569 2.109652 +v -0.471064 0.798554 2.165575 +v -0.538787 0.792477 2.109014 +v -0.470486 0.792477 2.164829 +v 0.320038 0.798540 0.794181 +v 0.319671 0.792477 0.795069 +v 0.237541 0.798546 0.762711 +v 0.237314 0.792477 0.763622 +v -0.690142 0.798534 1.124596 +v -0.719740 0.798555 1.179138 +v -0.689290 0.792477 1.125122 +v -0.718856 0.792477 1.179569 +v -0.745400 0.798563 1.236820 +v -0.744483 0.792477 1.237118 +v -0.620631 0.798561 1.020572 +v -0.657739 0.798554 1.071664 +v -0.619957 0.792477 1.021278 +v -0.656959 0.792477 1.072269 +v -0.657655 0.798467 1.972766 +v -0.601929 0.798525 2.045467 +v -0.656675 0.792477 1.972469 +v -0.601105 0.792477 2.044986 +v -0.743534 0.798412 1.808824 +v -0.705810 0.798440 1.891299 +v -0.742407 0.792477 1.808817 +v -0.704728 0.792477 1.891187 +v -0.783010 0.798305 1.661518 +v -0.767970 0.798352 1.733104 +v -0.781915 0.792477 1.661306 +v -0.766852 0.792477 1.733037 +v -0.792549 0.798317 1.591451 +v -0.795729 0.798354 1.519685 +v -0.791451 0.792477 1.591079 +v -0.794621 0.792477 1.519239 +v -0.791690 0.798382 1.443003 +v -0.781440 0.798424 1.367476 +v -0.790590 0.792477 1.442666 +v -0.780376 0.792477 1.367348 +v -0.765989 0.798502 1.299174 +v -0.764998 0.792477 1.299271 +v -0.525334 0.798422 0.924027 +v -0.576919 0.798500 0.971552 +v -0.524945 0.792477 0.925056 +v -0.576378 0.792477 0.972415 +v -0.399725 0.798348 0.835751 +v -0.464605 0.798378 0.877418 +v -0.399592 0.792477 0.836969 +v -0.464379 0.792477 0.878578 +v -0.270633 0.798290 0.777058 +v -0.335687 0.798307 0.803051 +v -0.270304 0.792477 0.778137 +v -0.335495 0.792477 0.804219 +v -0.202712 0.798333 0.755511 +v -0.126552 0.798387 0.739857 +v -0.202236 0.792477 0.756529 +v -0.126011 0.792477 0.740844 +v -0.036785 0.798401 0.731540 +v 0.058182 0.798421 0.731852 +v -0.036349 0.792477 0.732532 +v 0.058412 0.792477 0.732848 +v 0.149939 0.798488 0.742089 +v 0.149930 0.792477 0.743046 +v 0.657236 0.798413 1.076910 +v 0.602384 0.798474 1.002868 +v 0.656298 0.792477 1.077231 +v 0.601533 0.792477 1.003319 +v 0.742963 0.798378 1.240606 +v 0.705178 0.798395 1.158679 +v 0.741901 0.792477 1.240674 +v 0.704161 0.792477 1.158841 +v 0.782557 0.798277 1.385484 +v 0.767343 0.798322 1.315119 +v 0.781528 0.792477 1.385767 +v 0.766289 0.792477 1.315253 +v 0.792852 0.798294 1.454965 +v 0.796747 0.798334 1.526465 +v 0.791816 0.792477 1.455405 +v 0.795700 0.792477 1.526979 +v 0.792771 0.798359 1.602889 +v 0.782425 0.798387 1.678294 +v 0.791728 0.792477 1.603297 +v 0.781398 0.792477 1.678512 +v 0.767213 0.798433 1.746738 +v 0.766204 0.792477 1.746775 +v 0.525796 0.798391 2.121951 +v 0.577621 0.798469 2.074500 +v 0.525441 0.792477 2.121017 +v 0.577107 0.792477 2.073742 +v 0.402452 0.798334 2.210464 +v 0.465997 0.798356 2.168753 +v 0.402340 0.792477 2.209337 +v 0.465801 0.792477 2.167686 +v 0.273529 0.798282 2.268877 +v 0.339388 0.798295 2.242640 +v 0.273229 0.792477 2.267876 +v 0.339215 0.792477 2.241559 +v 0.122105 0.798404 2.310578 +v 0.201600 0.798338 2.292771 +v 0.201184 0.792477 2.291815 +v 0.121646 0.792477 2.309637 +v -0.058627 0.798435 2.316785 +v 0.033545 0.798422 2.318552 +v 0.033183 0.792477 2.317601 +v -0.058830 0.792477 2.315822 +v -0.148957 0.798489 2.305366 +v -0.149015 0.792477 2.304415 +v -1.105237 0.056435 1.178482 +v -1.088341 0.066471 1.129006 +v -1.090322 0.029753 1.130113 +v -1.105880 0.027937 1.176921 +v -1.097797 0.103635 1.165137 +v -1.106892 0.086025 1.190000 +v -1.071895 0.124495 1.099133 +v -1.079411 0.098413 1.111864 +v -1.089993 0.126071 1.149295 +v -1.082667 0.149832 1.136403 +v -1.064673 0.194985 1.107653 +v -1.049763 0.174943 1.062699 +v -1.062324 0.147579 1.082611 +v -1.073698 0.171301 1.120809 +v -1.044780 0.224189 1.072814 +v -1.056725 0.225306 1.102268 +v -1.020151 0.200729 1.009633 +v -1.033819 0.189623 1.033137 +v -1.032138 0.232001 1.048424 +v -1.019138 0.242481 1.025929 +v -0.991313 0.259140 0.979674 +v -0.987065 0.215280 0.953465 +v -1.005749 0.207235 0.984322 +v -1.005788 0.249329 1.002265 +v -0.966529 0.259145 0.936669 +v -0.975090 0.278543 0.960382 +v -0.955023 0.200920 0.896452 +v -0.969776 0.207398 0.921766 +v -0.954382 0.249379 0.912725 +v -0.940657 0.242551 0.889262 +v -0.912955 0.224270 0.843535 +v -0.923859 0.174864 0.843729 +v -0.941343 0.189599 0.872438 +v -0.927711 0.232074 0.866723 +v -0.892873 0.195086 0.808761 +v -0.893495 0.225406 0.818389 +v -0.903251 0.124806 0.806119 +v -0.912781 0.147628 0.822535 +v -0.886115 0.171413 0.794258 +v -0.877060 0.149921 0.778713 +v -0.859810 0.103704 0.751153 +v -0.885762 0.066665 0.776941 +v -0.896033 0.098788 0.793055 +v -0.869669 0.126162 0.765814 +v -0.852086 0.056484 0.737923 +v -0.843012 0.086104 0.730640 +v -0.885398 0.029903 0.774171 +v -0.853753 0.027960 0.738159 +v -0.914817 0.054893 0.811930 +v -0.918728 0.081922 0.819729 +v -0.924178 0.106935 0.830260 +v -0.938966 0.072185 0.845755 +v -0.941791 0.095599 0.852934 +v -0.936761 0.047540 0.840604 +v -1.038063 0.088597 1.014219 +v -1.027022 0.087124 0.991767 +v -1.029068 0.062090 0.992158 +v -1.041050 0.064581 1.016623 +v -1.048991 0.093907 1.038201 +v -1.053408 0.070168 1.043663 +v -1.056154 0.045982 1.046983 +v -1.042817 0.041446 1.017757 +v -1.030244 0.039128 0.992071 +v -1.030971 0.018878 0.992589 +v -1.043951 0.020236 1.018963 +v -1.057982 0.022749 1.049421 +v -1.001399 0.086746 0.944796 +v -0.999364 0.115217 0.946121 +v -0.986370 0.115331 0.924084 +v -0.987746 0.087079 0.921715 +v -0.973248 0.114724 0.902563 +v -0.973483 0.088062 0.898791 +v -0.971097 0.141982 0.904776 +v -0.983718 0.144686 0.925943 +v -0.996575 0.145017 0.947856 +v -0.973994 0.062814 0.896537 +v -0.988885 0.061153 0.920384 +v -1.002773 0.060677 0.943849 +v -0.989715 0.038028 0.919658 +v -1.003688 0.037547 0.943258 +v -0.974402 0.039618 0.895171 +v -0.974223 0.019126 0.894134 +v -0.989898 0.018185 0.919269 +v -1.004037 0.017896 0.943181 +v -0.964990 0.169036 0.902250 +v -0.978757 0.173915 0.925739 +v -0.992927 0.175064 0.950038 +v -1.020452 0.140878 0.990516 +v -1.030018 0.136188 1.008227 +v -1.031444 0.159754 1.018068 +v -1.019896 0.168377 0.997493 +v -1.042245 0.146711 1.036310 +v -1.038088 0.132715 1.023830 +v -1.006860 0.173349 0.974383 +v -1.009143 0.143796 0.969844 +v -1.012037 0.114582 0.968434 +v -1.023523 0.113596 0.989896 +v -1.014675 0.086637 0.968367 +v -1.016249 0.060890 0.967827 +v -1.017201 0.037871 0.967312 +v -1.017688 0.018113 0.967476 +v -1.051993 0.128300 1.052879 +v -1.060546 0.105871 1.066419 +v -1.042724 0.115858 1.029073 +v -0.957368 0.066153 0.871513 +v -0.958198 0.090106 0.875816 +v -0.956703 0.042619 0.868575 +v -0.934836 0.023591 0.836813 +v -0.955763 0.020860 0.866309 +v -1.033378 0.112477 1.009149 +v -0.949068 0.132258 0.869558 +v -0.946205 0.115926 0.862358 +v -0.959928 0.113164 0.881973 +v -0.959009 0.136051 0.885165 +v -0.940965 0.145829 0.860649 +v -0.952214 0.159539 0.880347 +v -1.066679 0.080611 1.076042 +v -1.071018 0.053869 1.082597 +v -1.073903 0.026970 1.087035 +v -0.911868 0.027523 0.806605 +v -0.931596 0.128260 0.843933 +v -0.642819 0.775251 2.095455 +v -0.633723 0.794281 2.079658 +v -0.567709 0.795946 2.144199 +v -0.575845 0.778361 2.158455 +v -0.504152 0.779559 2.215061 +v -0.496421 0.796565 2.201528 +v -0.420116 0.796329 2.251155 +v -0.427843 0.779304 2.264549 +v -0.347158 0.778309 2.306404 +v -0.339193 0.795698 2.292746 +v -0.253944 0.794662 2.325815 +v -0.262490 0.776410 2.340419 +v -0.174253 0.773454 2.366391 +v -0.164662 0.793303 2.349949 +v -0.071987 0.792139 2.364044 +v -0.082711 0.770691 2.382862 +v -0.857284 0.728739 1.799748 +v -0.816461 0.738059 1.884573 +v 0.012061 0.768989 2.388021 +v 0.023459 0.791738 2.367032 +v 0.117847 0.790962 2.359732 +v 0.207323 0.789495 2.343610 +v 0.291184 0.788820 2.318429 +v 0.368734 0.790508 2.284047 +v 0.440382 0.792587 2.242841 +v 0.531908 0.772263 2.201640 +v 0.506603 0.793107 2.197177 +v 0.565950 0.792592 2.148850 +v 0.587747 0.772447 2.153699 +v 0.636099 0.772406 2.105300 +v 0.617077 0.791893 2.099904 +v 0.660998 0.791444 2.049890 +v 0.677945 0.772537 2.056038 +v 0.714259 0.773231 2.005471 +v 0.698836 0.791785 1.998372 +v 0.731873 0.792232 1.945046 +v 0.746247 0.773890 1.953324 +v 0.775072 0.773854 1.899297 +v 0.761384 0.792142 1.889655 +v 0.787082 0.792171 1.831079 +v 0.800540 0.773695 1.842356 +v 0.822284 0.773801 1.781377 +v 0.808454 0.792658 1.768061 +v 0.825534 0.793247 1.699592 +v 0.840384 0.773517 1.715673 +v 0.854776 0.772033 1.644479 +v 0.838027 0.793163 1.624572 +v 0.844800 0.792081 1.545398 +v 0.845049 0.790095 1.464538 +v 0.836343 0.788858 1.381801 +v 0.816338 0.790166 1.296950 +v 0.785466 0.792269 1.210478 +v 0.744035 0.793219 1.122969 +v 0.507270 0.776474 0.826185 +v 0.498599 0.794730 0.841078 +v 0.422114 0.794774 0.791132 +v 0.430980 0.776039 0.775759 +v 0.349894 0.774916 0.733570 +v 0.341028 0.794051 0.749139 +v -0.028501 0.798189 0.681694 +v -0.124562 0.796030 0.688338 +v -0.214078 0.792705 0.703313 +v -0.297107 0.789938 0.727468 +v -0.374259 0.790046 0.760794 +v -0.445240 0.791020 0.800714 +v -0.509832 0.791275 0.844228 +v -0.702078 0.791494 1.045463 +v -0.735398 0.791168 1.098587 +v -0.764695 0.791288 1.154016 +v -0.901091 0.729522 1.522266 +v -0.890365 0.739032 1.446418 +v -0.876656 0.744721 1.374808 +v -0.898325 0.712068 1.346221 +v 0.001118 1.032958 2.048371 +v 0.001727 1.062944 1.985318 +v -0.035430 1.062685 1.984569 +v -0.040395 1.032911 2.046924 +v -0.081876 1.032914 2.042173 +v -0.073241 1.062507 1.980621 +v -0.031327 1.088128 1.921908 +v -0.065023 1.087851 1.918669 +v 0.001248 1.088491 1.922143 +v -0.122858 1.033022 2.033866 +v -0.110627 1.062777 1.972479 +v -0.162885 1.033177 2.022405 +v -0.146519 1.063097 1.961488 +v -0.098355 1.088185 1.910905 +v -0.129855 1.088547 1.900619 +v -0.201480 1.033208 2.008134 +v -0.179832 1.063099 1.949010 +v -0.238636 1.033266 1.991047 +v -0.211223 1.063093 1.934563 +v -0.158058 1.088538 1.889885 +v -0.184065 1.088485 1.877865 +v -0.274318 1.033330 1.971056 +v -0.241320 1.063172 1.917577 +v -0.270855 1.063240 1.897940 +v -0.308546 1.033411 1.948253 +v -0.208954 1.088567 1.863672 +v -0.233940 1.088621 1.847046 +v -0.300515 1.063020 1.875472 +v -0.341308 1.033392 1.922674 +v -0.372097 1.033412 1.894436 +v -0.328808 1.062867 1.850035 +v -0.285588 1.088077 1.805232 +v -0.260202 1.088308 1.827677 +v -0.400386 1.033541 1.863623 +v -0.354266 1.063168 1.821491 +v -0.426042 1.033707 1.830816 +v -0.376835 1.063517 1.791525 +v -0.307970 1.088440 1.779389 +v -0.327385 1.088845 1.752592 +v -0.448894 1.033751 1.796572 +v -0.396458 1.063538 1.761843 +v -0.468924 1.033815 1.760889 +v -0.413377 1.063548 1.731687 +v -0.343895 1.088864 1.727333 +v -0.357888 1.088849 1.702309 +v -0.486051 1.033884 1.723723 +v -0.427756 1.063647 1.700240 +v -0.440118 1.063727 1.666964 +v -0.500347 1.033966 1.685132 +v -0.369692 1.088956 1.676183 +v -0.380146 1.089033 1.648015 +v -0.450920 1.063521 1.631297 +v -0.511823 1.033944 1.645149 +v -0.458864 1.063374 1.594042 +v -0.520135 1.033959 1.604177 +v -0.397380 1.088537 1.583702 +v -0.390027 1.088751 1.616837 +v -0.524903 1.034076 1.562605 +v -0.462675 1.063680 1.555992 +v -0.526369 1.034233 1.520971 +v -0.463309 1.064032 1.518504 +v -0.400291 1.088922 1.549661 +v -0.400236 1.089348 1.516614 +v -0.524715 1.034257 1.479819 +v -0.461731 1.064052 1.482955 +v -0.519935 1.034305 1.439161 +v -0.457687 1.064059 1.448602 +v -0.398739 1.089380 1.486483 +v -0.395349 1.089373 1.458007 +v -0.511927 1.034344 1.399012 +v -0.450827 1.064148 1.414702 +v -0.441256 1.064220 1.380496 +v -0.500791 1.034403 1.359373 +v -0.381428 1.089570 1.400974 +v -0.389540 1.089488 1.429929 +v -0.429003 1.063997 1.345248 +v -0.486549 1.034351 1.320263 +v -0.413506 1.063836 1.310403 +v -0.469169 1.034342 1.282216 +v -0.357515 1.089070 1.338707 +v -0.371070 1.089287 1.369884 +v -0.448564 1.034415 1.245782 +v -0.394205 1.064118 1.277387 +v -0.425256 1.034533 1.211247 +v -0.372669 1.064445 1.246709 +v -0.339846 1.089449 1.309467 +v -0.320372 1.089866 1.282797 +v -0.399709 1.034519 1.178934 +v -0.350490 1.064445 1.218889 +v -0.371927 1.034536 1.148857 +v -0.327018 1.064427 1.193484 +v -0.301448 1.089888 1.259317 +v -0.281968 1.089864 1.238285 +v -0.341832 1.034530 1.121098 +v -0.301536 1.064484 1.170106 +v -0.273676 1.064531 1.148066 +v -0.309510 1.034558 1.095585 +v -0.237177 1.090026 1.200348 +v -0.260765 1.089962 1.219000 +v -0.243019 1.064266 1.126752 +v -0.274980 1.034458 1.072330 +v -0.209973 1.064065 1.107672 +v -0.238540 1.034408 1.051779 +v -0.181168 1.089463 1.164007 +v -0.210494 1.089712 1.181272 +v -0.200443 1.034441 1.034434 +v -0.174930 1.064314 1.092321 +v -0.161278 1.034510 1.020221 +v -0.139463 1.064598 1.080187 +v -0.149660 1.089817 1.150749 +v -0.118215 1.090199 1.140643 +v -0.121618 1.034463 1.009113 +v -0.105172 1.064568 1.070734 +v -0.081466 1.034431 1.001136 +v -0.071263 1.064501 1.064000 +v -0.089113 1.090195 1.132787 +v -0.061007 1.090127 1.127242 +v -0.040810 1.034394 0.996386 +v -0.036920 1.064525 1.060082 +v -0.001442 1.064540 1.058640 +v 0.000326 1.034379 0.994765 +v -0.002511 1.090228 1.122901 +v -0.032539 1.090195 1.124117 +v 0.035873 1.064224 1.059429 +v 0.041918 1.034242 0.996264 +v 0.073818 1.063975 1.063430 +v 0.083465 1.034142 1.001079 +v 0.064145 1.089564 1.126436 +v 0.030272 1.089864 1.123157 +v 0.124472 1.034148 1.009452 +v 0.111204 1.064194 1.071628 +v 0.164499 1.034179 1.020990 +v 0.147038 1.064432 1.082684 +v 0.097458 1.089888 1.134251 +v 0.128862 1.090221 1.144589 +v 0.203095 1.034103 1.035325 +v 0.180323 1.064371 1.095199 +v 0.240241 1.034032 1.052480 +v 0.211687 1.064260 1.109689 +v 0.157015 1.090182 1.155345 +v 0.182983 1.090064 1.167383 +v 0.275902 1.033969 1.072536 +v 0.241748 1.064257 1.126704 +v 0.271269 1.064241 1.146381 +v 0.310107 1.033923 1.095403 +v 0.232802 1.090098 1.198237 +v 0.207825 1.090099 1.181585 +v 0.300956 1.063888 1.168929 +v 0.342847 1.033760 1.121054 +v 0.329274 1.063604 1.194454 +v 0.373605 1.033636 1.149360 +v 0.284576 1.089337 1.240225 +v 0.259128 1.089683 1.217682 +v 0.401845 1.033629 1.180231 +v 0.354708 1.063803 1.223076 +v 0.427432 1.033644 1.213088 +v 0.377208 1.064012 1.253105 +v 0.306952 1.089630 1.266158 +v 0.326305 1.089923 1.293021 +v 0.450219 1.033559 1.247356 +v 0.396772 1.063932 1.282790 +v 0.470173 1.033480 1.283051 +v 0.413613 1.063797 1.312932 +v 0.342754 1.089845 1.318275 +v 0.356673 1.089698 1.343262 +v 0.487225 1.033415 1.320216 +v 0.427921 1.063781 1.344351 +v 0.440225 1.063749 1.377593 +v 0.501448 1.033368 1.358797 +v 0.368413 1.089709 1.369341 +v 0.378817 1.089680 1.397461 +v 0.450977 1.063386 1.413226 +v 0.512853 1.033208 1.398759 +v 0.521098 1.033092 1.439710 +v 0.458878 1.063095 1.450477 +v 0.395995 1.088870 1.461736 +v 0.388668 1.089240 1.428595 +v 0.525804 1.033093 1.481268 +v 0.462638 1.063290 1.488587 +v 0.527203 1.033124 1.522877 +v 0.463201 1.063496 1.526129 +v 0.398861 1.089141 1.495890 +v 0.398742 1.089419 1.529042 +v 0.525504 1.033052 1.563978 +v 0.461587 1.063417 1.561641 +v 0.520681 1.032997 1.604568 +v 0.457502 1.063290 1.595914 +v 0.397210 1.089325 1.559150 +v 0.393786 1.089171 1.587539 +v 0.512644 1.032950 1.644644 +v 0.450618 1.063280 1.629735 +v 0.501495 1.032934 1.684203 +v 0.441048 1.063261 1.663842 +v 0.387959 1.089176 1.615534 +v 0.379858 1.089143 1.644379 +v 0.428826 1.062911 1.698947 +v 0.487252 1.032796 1.723218 +v 0.469881 1.032719 1.761182 +v 0.413351 1.062643 1.733693 +v 0.369555 1.088703 1.675298 +v 0.356030 1.088341 1.706368 +v 0.449280 1.032745 1.797567 +v 0.394007 1.062852 1.766740 +v 0.425977 1.032818 1.832060 +v 0.372411 1.063084 1.797466 +v 0.338288 1.088620 1.735696 +v 0.318710 1.088901 1.762479 +v 0.400462 1.032776 1.864318 +v 0.350239 1.063024 1.825260 +v 0.372724 1.032767 1.894333 +v 0.326799 1.062931 1.850599 +v 0.299777 1.088824 1.785954 +v 0.280320 1.088683 1.806921 +v 0.342680 1.032752 1.922041 +v 0.301355 1.062945 1.873926 +v 0.310426 1.032779 1.947506 +v 0.273576 1.062953 1.895903 +v 0.259149 1.088703 1.826158 +v 0.235648 1.088692 1.844740 +v 0.243080 1.062643 1.917118 +v 0.275988 1.032683 1.970710 +v 0.239638 1.032655 1.991230 +v 0.210166 1.062420 1.936135 +v 0.209166 1.088279 1.863684 +v 0.179997 1.087952 1.880861 +v 0.201597 1.032719 2.008575 +v 0.175112 1.062657 1.951515 +v 0.162479 1.032843 2.022812 +v 0.139592 1.062931 1.963704 +v 0.148430 1.088256 1.894172 +v 0.116863 1.088568 1.904355 +v 0.122876 1.032835 2.033930 +v 0.105313 1.062902 1.973176 +v 0.082789 1.032868 2.041931 +v 0.071445 1.062858 1.979920 +v 0.087740 1.088525 1.912238 +v 0.059657 1.088421 1.917780 +v 0.042190 1.032897 2.046711 +v 0.037134 1.062904 1.983854 +v 0.031201 1.088471 1.920914 +v 0.000915 0.997481 2.112346 +v -0.045421 0.997516 2.110543 +v 0.000915 0.961980 2.168449 +v -0.049817 0.961906 2.166398 +v -0.091478 0.997596 2.105142 +v -0.100242 0.961964 2.160474 +v -0.136968 0.997640 2.096118 +v -0.150045 0.962006 2.150595 +v -0.181619 0.997725 2.083580 +v -0.198935 0.962093 2.136874 +v -0.225144 0.997777 2.067553 +v -0.246590 0.962142 2.119327 +v -0.267293 0.997866 2.048183 +v -0.292740 0.962234 2.098127 +v -0.307782 0.997923 2.025544 +v -0.337072 0.962288 2.073340 +v -0.346389 0.998016 1.999817 +v -0.379348 0.962389 2.045182 +v -0.382845 0.998076 1.971119 +v -0.419286 0.962493 2.013787 +v -0.416956 0.998169 1.939666 +v -0.456662 0.962628 1.979371 +v -0.448480 0.998230 1.905614 +v -0.491145 0.962619 1.942053 +v -0.477256 0.998323 1.869205 +v -0.522645 0.962690 1.902183 +v -0.503067 0.998383 1.830635 +v -0.550908 0.962747 1.859952 +v -0.525796 0.998475 1.790166 +v -0.575800 0.962841 1.815645 +v -0.545257 0.998531 1.748026 +v -0.597111 0.962895 1.769505 +v -0.561375 0.998619 1.704493 +v -0.614773 0.962996 1.721843 +v -0.574003 0.998669 1.659820 +v -0.628616 0.963066 1.672930 +v -0.583112 0.998753 1.614295 +v -0.638607 0.963167 1.623085 +v -0.588591 0.998796 1.568190 +v -0.644614 0.963216 1.572598 +v -0.590463 0.998874 1.521794 +v -0.646654 0.963273 1.521795 +v -0.588656 0.998907 1.475394 +v -0.644666 0.963289 1.470986 +v -0.583243 0.998977 1.429273 +v -0.638733 0.963346 1.420485 +v -0.574192 0.998999 1.383723 +v -0.628819 0.963362 1.370609 +v -0.561625 0.999062 1.339014 +v -0.615063 0.963426 1.321651 +v -0.545552 0.999071 1.295440 +v -0.597462 0.963432 1.273938 +v -0.526139 0.999125 1.253246 +v -0.576208 0.963487 1.227735 +v -0.503439 0.999121 1.212725 +v -0.551350 0.963479 1.183365 +v -0.477658 0.999164 1.174089 +v -0.523124 0.963526 1.141057 +v -0.448892 0.999146 1.137621 +v -0.491623 0.963506 1.101126 +v -0.417380 0.999180 1.103498 +v -0.457121 0.963544 1.063758 +v -0.383257 0.999148 1.071985 +v -0.419754 0.963510 1.029253 +v -0.346790 0.999168 1.043218 +v -0.379826 0.963534 0.997750 +v -0.308156 0.999126 1.017436 +v -0.337517 0.963487 0.969524 +v -0.267635 0.999133 0.994736 +v -0.293147 0.963497 0.944664 +v -0.225441 0.999080 0.975322 +v -0.246943 0.963441 0.923411 +v -0.181867 0.999073 0.959248 +v -0.199231 0.963437 0.905809 +v -0.137157 0.999012 0.946679 +v -0.150273 0.963374 0.892051 +v -0.091607 0.998992 0.937628 +v -0.100396 0.963360 0.882137 +v -0.045486 0.998923 0.932214 +v -0.049893 0.963298 0.876207 +v 0.000915 0.998892 0.930406 +v 0.000915 0.963265 0.874230 +v 0.047311 0.998815 0.932278 +v 0.051718 0.963176 0.876293 +v 0.093418 0.998774 0.937756 +v 0.102203 0.963138 0.882292 +v 0.138944 0.998691 0.946865 +v 0.152050 0.963053 0.892272 +v 0.183619 0.998641 0.959492 +v 0.200967 0.963007 0.906099 +v 0.227152 0.998554 0.975611 +v 0.248632 0.962916 0.923755 +v 0.269294 0.998498 0.995072 +v 0.294774 0.962864 0.945064 +v 0.309764 0.998407 1.017801 +v 0.339082 0.962770 0.969957 +v 0.348336 0.998348 1.043612 +v 0.381315 0.962714 0.998221 +v 0.384745 0.998255 1.072389 +v 0.421175 0.962618 1.029734 +v 0.418798 0.998193 1.103913 +v 0.458459 0.962560 1.064251 +v 0.450252 0.998100 1.138025 +v 0.492893 0.962464 1.101606 +v 0.478950 0.998039 1.174482 +v 0.524306 0.962393 1.141530 +v 0.504677 0.997947 1.213089 +v 0.552476 0.962311 1.183798 +v 0.527317 0.997889 1.253580 +v 0.577263 0.962257 1.228132 +v 0.546687 0.997799 1.295730 +v 0.598463 0.962164 1.274283 +v 0.562714 0.997746 1.339256 +v 0.616010 0.962115 1.321939 +v 0.575252 0.997660 1.383910 +v 0.629731 0.962026 1.370830 +v 0.584276 0.997615 1.429399 +v 0.639610 0.961984 1.420636 +v 0.589676 0.997534 1.475459 +v 0.645524 0.961911 1.471063 +v 0.591478 0.997497 1.521794 +v 0.647520 0.961911 1.521794 +v 0.589611 0.997423 1.568125 +v 0.645516 0.961899 1.572525 +v 0.584148 0.997397 1.614169 +v 0.639522 0.961857 1.622940 +v 0.575062 0.997331 1.659635 +v 0.629521 0.961723 1.672710 +v 0.562472 0.997317 1.704256 +v 0.615769 0.961757 1.721574 +v 0.546390 0.997259 1.747738 +v 0.598330 0.961958 1.769253 +v 0.526983 0.997258 1.789840 +v 0.577199 0.962150 1.815428 +v 0.504304 0.997210 1.830271 +v 0.552417 0.962208 1.859756 +v 0.478558 0.997223 1.868822 +v 0.524208 0.962214 1.901989 +v 0.449838 0.997184 1.905211 +v 0.492731 0.962156 1.941845 +v 0.418385 0.997212 1.939265 +v 0.458237 0.962111 1.979116 +v 0.384330 0.997182 1.970717 +v 0.420898 0.962011 2.013531 +v 0.347941 0.997220 1.999436 +v 0.381015 0.961990 2.044957 +v 0.309390 0.997204 2.025181 +v 0.338761 0.961900 2.073109 +v 0.268958 0.997251 2.047859 +v 0.294412 0.961738 2.097815 +v 0.226856 0.997250 2.067264 +v 0.248280 0.961624 2.118988 +v 0.183373 0.997306 2.083344 +v 0.200683 0.961715 2.136620 +v 0.138753 0.997319 2.095933 +v 0.151834 0.961754 2.150422 +v 0.093288 0.997384 2.105018 +v 0.102063 0.961894 2.160428 +v 0.047245 0.997408 2.110480 +v 0.051648 0.961956 2.166436 +v 0.000915 0.933396 2.209041 +v -0.053008 0.933428 2.206947 +v 0.000915 0.912944 2.234913 +v -0.055037 0.912956 2.232727 +v -0.106607 0.933486 2.200659 +v -0.110652 0.912997 2.226202 +v -0.159546 0.933529 2.190164 +v -0.165578 0.913010 2.215290 +v -0.211506 0.933581 2.175559 +v -0.219492 0.913048 2.200141 +v -0.262165 0.933644 2.156927 +v -0.272036 0.913051 2.180758 +v -0.311214 0.933710 2.134383 +v -0.322926 0.913100 2.157371 +v -0.358319 0.933722 2.108011 +v -0.371822 0.913141 2.130047 +v -0.403241 0.933784 2.078067 +v -0.418452 0.913210 2.099004 +v -0.445672 0.933844 2.044681 +v -0.462461 0.913229 2.064339 +v -0.485368 0.933915 2.008078 +v -0.503648 0.913276 2.026358 +v -0.522047 0.933954 1.968446 +v -0.541698 0.913296 1.985229 +v -0.555525 0.934015 1.926071 +v -0.576429 0.913334 1.941259 +v -0.585561 0.934060 1.881187 +v -0.607564 0.913339 1.894671 +v -0.612003 0.934121 1.834091 +v -0.635004 0.913386 1.845811 +v -0.634640 0.934153 1.785049 +v -0.658519 0.913432 1.794941 +v -0.653394 0.934217 1.734393 +v -0.678008 0.913501 1.742390 +v -0.668083 0.934250 1.682407 +v -0.693265 0.913535 1.688452 +v -0.678682 0.934313 1.629433 +v -0.704271 0.913586 1.633486 +v -0.685052 0.934339 1.575782 +v -0.710880 0.913602 1.577815 +v -0.687230 0.934398 1.521795 +v -0.713142 0.913645 1.521795 +v -0.685128 0.934423 1.467801 +v -0.710966 0.913666 1.465768 +v -0.678835 0.934485 1.414132 +v -0.704446 0.913716 1.410076 +v -0.668302 0.934499 1.361130 +v -0.693515 0.913726 1.355077 +v -0.653683 0.934552 1.309103 +v -0.678338 0.913758 1.301092 +v -0.634980 0.934559 1.258398 +v -0.658928 0.913761 1.248478 +v -0.612391 0.934601 1.209299 +v -0.635491 0.913793 1.197529 +v -0.585967 0.934585 1.162152 +v -0.608071 0.913780 1.148606 +v -0.555967 0.934617 1.117195 +v -0.576939 0.913800 1.101958 +v -0.522486 0.934592 1.074767 +v -0.542188 0.913772 1.057941 +v -0.485817 0.934616 1.035062 +v -0.504119 0.913767 1.016761 +v -0.446146 0.934651 0.998353 +v -0.462920 0.913749 0.978713 +v -0.403762 0.934769 0.964803 +v -0.418970 0.913863 0.943871 +v -0.358745 0.934624 0.934882 +v -0.372261 0.913763 0.912822 +v -0.311588 0.934621 0.908472 +v -0.323348 0.913789 0.885388 +v -0.262485 0.934571 0.885888 +v -0.272403 0.913764 0.861944 +v -0.211778 0.934558 0.867191 +v -0.219788 0.913759 0.842538 +v -0.159749 0.934497 0.852579 +v -0.165799 0.913714 0.827379 +v -0.106746 0.934480 0.842048 +v -0.110800 0.913699 0.816457 +v -0.053078 0.934423 0.835751 +v -0.055111 0.913648 0.809939 +v 0.000915 0.934397 0.833651 +v 0.000912 0.913608 0.807788 +v 0.054904 0.934362 0.835808 +v 0.056929 0.913581 0.810030 +v 0.108560 0.934366 0.842151 +v 0.112624 0.913684 0.816482 +v 0.161540 0.934311 0.852744 +v 0.167650 0.913786 0.827295 +v 0.213527 0.934265 0.867445 +v 0.221584 0.913681 0.842647 +v 0.264178 0.934174 0.886223 +v 0.274150 0.913606 0.862152 +v 0.313216 0.934129 0.908871 +v 0.325024 0.913538 0.885701 +v 0.360306 0.934054 0.935323 +v 0.373828 0.913391 0.913262 +v 0.405200 0.934028 0.965345 +v 0.420386 0.913340 0.944448 +v 0.447558 0.933939 0.998843 +v 0.464375 0.913325 0.979156 +v 0.487190 0.933901 1.035520 +v 0.505497 0.913297 1.017215 +v 0.523823 0.933873 1.075190 +v 0.543449 0.913219 1.058428 +v 0.557242 0.933857 1.117600 +v 0.578094 0.913182 1.102451 +v 0.587187 0.933791 1.162527 +v 0.609158 0.913134 1.149064 +v 0.613420 0.933606 1.209709 +v 0.636562 0.913161 1.197918 +v 0.636004 0.933591 1.258733 +v 0.659922 0.913088 1.248827 +v 0.654696 0.933598 1.309369 +v 0.679266 0.913052 1.301387 +v 0.669341 0.933594 1.361320 +v 0.694413 0.913011 1.355302 +v 0.679836 0.933550 1.414265 +v 0.705328 0.913001 1.410228 +v 0.686108 0.933473 1.467869 +v 0.711857 0.912962 1.465842 +v 0.688212 0.933453 1.521794 +v 0.714040 0.912948 1.521796 +v 0.686047 0.933404 1.575715 +v 0.711785 0.912908 1.577742 +v 0.679694 0.933389 1.629303 +v 0.705195 0.912898 1.633342 +v 0.669114 0.933333 1.682216 +v 0.694222 0.912862 1.688244 +v 0.654454 0.933314 1.734143 +v 0.679025 0.912859 1.742127 +v 0.635730 0.933260 1.784745 +v 0.659605 0.912827 1.794634 +v 0.613148 0.933265 1.833745 +v 0.636174 0.912830 1.845476 +v 0.586756 0.933231 1.880800 +v 0.608786 0.912802 1.894299 +v 0.556791 0.933239 1.925663 +v 0.577699 0.912811 1.940854 +v 0.523362 0.933201 1.968007 +v 0.543016 0.912788 1.984794 +v 0.486761 0.933226 2.007640 +v 0.505037 0.912805 2.025918 +v 0.447131 0.933206 2.044246 +v 0.463912 0.912787 2.063896 +v 0.404783 0.933235 2.077670 +v 0.419971 0.912810 2.098578 +v 0.359909 0.933204 2.107618 +v 0.373416 0.912799 2.129663 +v 0.312846 0.933219 2.133995 +v 0.324593 0.912827 2.157051 +v 0.263838 0.933183 2.156550 +v 0.273750 0.912824 2.180481 +v 0.213245 0.933253 2.175284 +v 0.221243 0.912855 2.199900 +v 0.161324 0.933288 2.189956 +v 0.167360 0.912857 2.215095 +v 0.108415 0.933347 2.200537 +v 0.112459 0.912893 2.226067 +v 0.054831 0.933350 2.206879 +v 0.056860 0.912903 2.232658 +v -0.112281 0.901348 2.236485 +v -0.055854 0.901330 2.243108 +v 0.000915 0.901331 2.245346 +v -0.055993 0.895497 2.244873 +v 0.000915 0.895494 2.247133 +v -0.112583 0.895468 2.238391 +v -0.222715 0.901379 2.210060 +v -0.168015 0.901365 2.225442 +v -0.168489 0.895448 2.227415 +v -0.223346 0.895440 2.212001 +v -0.327579 0.901338 2.166501 +v -0.275984 0.901340 2.190288 +v -0.276672 0.895489 2.191950 +v -0.328391 0.895491 2.168095 +v -0.424451 0.901376 2.107261 +v -0.377159 0.901346 2.138755 +v -0.378115 0.895482 2.140316 +v -0.425672 0.895435 2.108942 +v -0.510708 0.901328 2.033417 +v -0.468993 0.901332 2.071986 +v -0.470146 0.895495 2.073336 +v -0.511949 0.895500 2.034658 +v -0.584475 0.901342 1.947105 +v -0.549276 0.901331 1.991701 +v -0.550624 0.895496 1.992853 +v -0.585959 0.895482 1.948184 +v -0.643766 0.901328 1.850275 +v -0.616008 0.901330 1.899845 +v -0.617509 0.895498 1.900765 +v -0.645324 0.895501 1.851069 +v -0.687217 0.901329 1.745381 +v -0.667549 0.901328 1.798681 +v -0.669168 0.895500 1.799352 +v -0.688886 0.895499 1.745924 +v -0.713716 0.901327 1.634981 +v -0.702631 0.901327 1.690701 +v -0.704330 0.895501 1.691108 +v -0.715437 0.895502 1.635254 +v -0.722624 0.901327 1.521795 +v -0.720390 0.901327 1.578563 +v -0.722127 0.895502 1.578699 +v -0.724366 0.895502 1.521795 +v -0.713716 0.901327 1.408608 +v -0.720390 0.901327 1.465026 +v -0.722127 0.895502 1.464889 +v -0.715437 0.895502 1.408335 +v -0.687226 0.901332 1.298203 +v -0.702631 0.901327 1.352888 +v -0.704330 0.895501 1.352480 +v -0.688914 0.895495 1.297655 +v -0.643793 0.901339 1.193298 +v -0.667576 0.901339 1.244896 +v -0.669238 0.895488 1.244207 +v -0.645386 0.895490 1.192487 +v -0.584441 0.901327 1.096508 +v -0.616005 0.901329 1.143745 +v -0.617494 0.895501 1.142832 +v -0.585851 0.895502 1.095483 +v -0.510705 0.901328 1.010173 +v -0.549266 0.901327 1.051895 +v -0.550590 0.895502 1.050763 +v -0.511937 0.895502 1.008941 +v -0.424543 0.901431 0.936200 +v -0.469017 0.901346 0.971573 +v -0.470163 0.895491 0.970232 +v -0.425610 0.895446 0.934732 +v -0.327578 0.901337 0.877090 +v -0.377158 0.901345 0.904834 +v -0.378075 0.895492 0.903338 +v -0.328375 0.895496 0.875527 +v -0.222676 0.901333 0.833651 +v -0.275978 0.901334 0.853316 +v -0.276648 0.895498 0.851696 +v -0.223219 0.895498 0.831980 +v -0.112271 0.901328 0.807160 +v -0.167993 0.901330 0.818240 +v -0.168404 0.895498 0.816527 +v -0.112545 0.895501 0.805433 +v 0.000916 0.901333 0.798239 +v -0.055853 0.901328 0.800487 +v -0.055990 0.895501 0.798744 +v 0.000916 0.895495 0.796461 +v 0.114224 0.901602 0.806397 +v 0.057705 0.901422 0.800220 +v 0.057874 0.895400 0.798075 +v 0.114600 0.895286 0.804024 +v 0.224731 0.901590 0.832962 +v 0.170086 0.901728 0.817149 +v 0.170639 0.895240 0.814850 +v 0.225357 0.895350 0.831037 +v 0.329843 0.901677 0.876239 +v 0.278110 0.901613 0.852590 +v 0.278941 0.895319 0.850584 +v 0.331238 0.895161 0.873504 +v 0.426232 0.901346 0.936397 +v 0.379100 0.901421 0.904654 +v 0.380239 0.895399 0.902796 +v 0.427308 0.895482 0.934917 +v 0.512657 0.901388 1.010054 +v 0.470930 0.901390 0.971479 +v 0.472297 0.895424 0.969880 +v 0.514156 0.895423 1.008556 +v 0.586273 0.901328 1.096508 +v 0.551113 0.901335 1.051883 +v 0.552482 0.895491 1.050713 +v 0.587690 0.895501 1.095479 +v 0.645958 0.901473 1.193130 +v 0.617843 0.901332 1.143742 +v 0.619359 0.895496 1.142813 +v 0.648335 0.895314 1.191920 +v 0.689107 0.901351 1.298189 +v 0.669596 0.901412 1.244819 +v 0.671753 0.895386 1.243926 +v 0.690935 0.895468 1.297595 +v 0.715549 0.901328 1.408608 +v 0.704465 0.901329 1.352888 +v 0.706174 0.895500 1.352478 +v 0.717276 0.895501 1.408335 +v 0.724454 0.901327 1.521796 +v 0.722221 0.901327 1.465027 +v 0.723958 0.895502 1.464890 +v 0.726196 0.895503 1.521796 +v 0.715546 0.901327 1.634982 +v 0.722220 0.901327 1.578563 +v 0.723957 0.895503 1.578700 +v 0.717266 0.895503 1.635254 +v 0.689041 0.901327 1.745381 +v 0.704459 0.901327 1.690701 +v 0.706153 0.895503 1.691108 +v 0.690698 0.895503 1.745919 +v 0.645593 0.901327 1.850275 +v 0.669374 0.901327 1.798681 +v 0.670984 0.895503 1.799347 +v 0.647144 0.895503 1.851066 +v 0.586270 0.901327 1.947081 +v 0.617830 0.901327 1.899842 +v 0.619315 0.895503 1.900752 +v 0.587679 0.895503 1.948105 +v 0.512534 0.901327 2.033415 +v 0.551095 0.901327 1.991694 +v 0.552419 0.895502 1.992825 +v 0.513765 0.895502 2.034646 +v 0.426200 0.901327 2.107151 +v 0.470813 0.901327 2.071976 +v 0.471944 0.895502 2.073301 +v 0.427224 0.895502 2.108561 +v 0.329396 0.901329 2.166478 +v 0.378961 0.901328 2.138713 +v 0.379875 0.895501 2.140204 +v 0.330198 0.895498 2.168052 +v 0.224513 0.901343 2.209964 +v 0.277816 0.901343 2.190297 +v 0.278551 0.895473 2.192070 +v 0.225099 0.895476 2.211767 +v 0.114103 0.901333 2.236443 +v 0.169826 0.901337 2.225366 +v 0.170256 0.895485 2.227156 +v 0.114385 0.895492 2.238225 +v 0.057683 0.901332 2.243115 +v 0.057824 0.895492 2.244908 +v -0.112272 0.890985 2.236426 +v -0.055853 0.890985 2.243100 +v 0.000915 0.890985 2.245334 +v -0.055514 0.888087 2.238792 +v 0.000915 0.888087 2.241012 +v -0.111596 0.888087 2.232158 +v -0.222670 0.890985 2.209921 +v -0.167990 0.890985 2.225339 +v -0.166982 0.888087 2.221137 +v -0.221335 0.888087 2.205811 +v -0.327564 0.890985 2.166472 +v -0.275970 0.890985 2.190254 +v -0.274316 0.888087 2.186262 +v -0.325603 0.888087 2.162622 +v -0.424370 0.890985 2.107150 +v -0.377131 0.890985 2.138710 +v -0.374873 0.888087 2.135025 +v -0.421830 0.888087 2.103654 +v -0.510704 0.890985 2.033414 +v -0.468983 0.890985 2.071975 +v -0.466177 0.888087 2.068689 +v -0.507649 0.888087 2.030358 +v -0.584440 0.890985 1.947080 +v -0.549265 0.890985 1.991693 +v -0.545980 0.888087 1.988887 +v -0.580944 0.888087 1.944540 +v -0.643763 0.890985 1.850274 +v -0.616000 0.890985 1.899840 +v -0.612316 0.888087 1.897583 +v -0.639913 0.888087 1.848312 +v -0.687211 0.890985 1.745379 +v -0.667545 0.890985 1.798679 +v -0.663552 0.888087 1.797025 +v -0.683102 0.888087 1.744044 +v -0.713716 0.890985 1.634981 +v -0.702629 0.890985 1.690701 +v -0.698427 0.888087 1.689692 +v -0.709448 0.888087 1.634305 +v -0.722624 0.890985 1.521794 +v -0.720390 0.890985 1.578562 +v -0.716082 0.888087 1.578223 +v -0.718303 0.888087 1.521794 +v -0.713716 0.890985 1.408608 +v -0.720390 0.890985 1.465026 +v -0.716082 0.888087 1.465365 +v -0.709448 0.888087 1.409284 +v -0.687211 0.890985 1.298208 +v -0.702629 0.890985 1.352888 +v -0.698427 0.888087 1.353897 +v -0.683101 0.888087 1.299544 +v -0.643762 0.890985 1.193314 +v -0.667544 0.890985 1.244909 +v -0.663552 0.888087 1.246563 +v -0.639912 0.888087 1.195276 +v -0.584440 0.890985 1.096509 +v -0.616000 0.890985 1.143748 +v -0.612316 0.888087 1.146005 +v -0.580944 0.888087 1.099048 +v -0.510703 0.890985 1.010175 +v -0.549265 0.890985 1.051895 +v -0.545979 0.888087 1.054702 +v -0.507648 0.888088 1.013230 +v -0.424370 0.890985 0.936439 +v -0.468983 0.890985 0.971613 +v -0.466177 0.888087 0.974899 +v -0.421830 0.888087 0.939935 +v -0.327565 0.890985 0.877116 +v -0.377131 0.890985 0.904879 +v -0.374873 0.888087 0.908563 +v -0.325603 0.888088 0.880966 +v -0.222671 0.890985 0.833668 +v -0.275970 0.890985 0.853335 +v -0.274316 0.888087 0.857327 +v -0.221335 0.888088 0.837777 +v -0.112271 0.890985 0.807163 +v -0.167991 0.890985 0.818250 +v -0.166982 0.888087 0.822452 +v -0.111595 0.888088 0.811431 +v 0.000916 0.890985 0.798255 +v -0.055853 0.890985 0.800489 +v -0.055513 0.888087 0.804797 +v 0.000916 0.888088 0.802576 +v 0.114102 0.890985 0.807163 +v 0.057683 0.890985 0.800489 +v 0.057344 0.888087 0.804797 +v 0.113426 0.888088 0.811431 +v 0.224502 0.890985 0.833668 +v 0.169822 0.890985 0.818250 +v 0.168813 0.888088 0.822452 +v 0.223166 0.888088 0.837778 +v 0.329396 0.890985 0.877117 +v 0.277801 0.890985 0.853335 +v 0.276147 0.888088 0.857327 +v 0.327434 0.888088 0.880967 +v 0.426201 0.890985 0.936440 +v 0.378962 0.890985 0.904879 +v 0.376704 0.888088 0.908564 +v 0.423661 0.888088 0.939935 +v 0.512535 0.890985 1.010176 +v 0.470815 0.890985 0.971614 +v 0.468008 0.888088 0.974900 +v 0.509480 0.888088 1.013231 +v 0.586271 0.890985 1.096510 +v 0.551096 0.890985 1.051897 +v 0.547811 0.888088 1.054703 +v 0.582775 0.888088 1.099050 +v 0.645594 0.890985 1.193316 +v 0.617831 0.890985 1.143749 +v 0.614147 0.888088 1.146007 +v 0.641744 0.888088 1.195277 +v 0.689042 0.890986 1.298210 +v 0.669375 0.890986 1.244911 +v 0.665383 0.888088 1.246564 +v 0.684932 0.888088 1.299545 +v 0.715546 0.890985 1.408608 +v 0.704460 0.890986 1.352890 +v 0.700258 0.888088 1.353899 +v 0.711279 0.888088 1.409285 +v 0.724454 0.890985 1.521796 +v 0.722221 0.890985 1.465027 +v 0.717913 0.888088 1.465366 +v 0.720133 0.888088 1.521796 +v 0.715546 0.890986 1.634982 +v 0.722220 0.890986 1.578563 +v 0.717913 0.888088 1.578224 +v 0.711278 0.888088 1.634306 +v 0.689041 0.890986 1.745381 +v 0.704459 0.890986 1.690701 +v 0.700257 0.888088 1.689692 +v 0.684932 0.888088 1.744046 +v 0.645592 0.890986 1.850275 +v 0.669374 0.890986 1.798680 +v 0.665382 0.888088 1.797027 +v 0.641742 0.888088 1.848313 +v 0.586270 0.890985 1.947081 +v 0.617830 0.890985 1.899841 +v 0.614146 0.888088 1.897584 +v 0.582774 0.888088 1.944541 +v 0.512534 0.890985 2.033414 +v 0.551095 0.890985 1.991694 +v 0.547809 0.888088 1.988888 +v 0.509478 0.888088 2.030359 +v 0.426200 0.890985 2.107150 +v 0.470813 0.890985 2.071976 +v 0.468007 0.888088 2.068690 +v 0.423660 0.888088 2.103655 +v 0.329394 0.890985 2.166473 +v 0.378960 0.890985 2.138711 +v 0.376702 0.888087 2.135026 +v 0.327432 0.888088 2.162623 +v 0.224499 0.890985 2.209921 +v 0.277799 0.890985 2.190255 +v 0.276145 0.888087 2.186262 +v 0.223164 0.888088 2.205812 +v 0.114100 0.890985 2.236426 +v 0.169819 0.890985 2.225339 +v 0.168811 0.888087 2.221137 +v 0.113424 0.888087 2.232158 +v 0.057682 0.890985 2.243100 +v 0.057343 0.888087 2.238792 +v -0.110658 0.887121 2.226235 +v -0.055044 0.887121 2.232814 +v 0.000915 0.887121 2.235016 +v -0.054383 0.888245 2.224424 +v 0.000915 0.888245 2.226600 +v -0.109341 0.888245 2.217923 +v -0.219482 0.887121 2.200108 +v -0.165582 0.887121 2.215306 +v -0.163617 0.888245 2.207123 +v -0.216881 0.888245 2.192105 +v -0.322880 0.887121 2.157279 +v -0.272021 0.887121 2.180722 +v -0.268801 0.888245 2.172947 +v -0.319060 0.888245 2.149781 +v -0.418306 0.887121 2.098802 +v -0.371740 0.887121 2.129913 +v -0.367343 0.888245 2.122737 +v -0.413359 0.888245 2.091994 +v -0.503408 0.887121 2.026118 +v -0.462283 0.887121 2.064129 +v -0.456817 0.888245 2.057730 +v -0.497458 0.888245 2.020167 +v -0.576093 0.887121 1.941015 +v -0.541420 0.887121 1.984992 +v -0.535021 0.888245 1.979527 +v -0.569285 0.888245 1.936069 +v -0.634570 0.887121 1.845590 +v -0.607203 0.887121 1.894449 +v -0.600028 0.888245 1.890052 +v -0.627071 0.888245 1.841769 +v -0.677399 0.887121 1.742191 +v -0.658012 0.887121 1.794731 +v -0.650237 0.888245 1.791510 +v -0.669395 0.888245 1.739591 +v -0.703525 0.887121 1.633367 +v -0.692597 0.887121 1.688292 +v -0.684414 0.888245 1.686328 +v -0.695213 0.888245 1.632051 +v -0.712306 0.887121 1.521794 +v -0.710104 0.887121 1.577753 +v -0.701715 0.888245 1.577093 +v -0.703891 0.888245 1.521795 +v -0.703525 0.887121 1.410222 +v -0.710104 0.887121 1.465836 +v -0.701715 0.888245 1.466496 +v -0.695213 0.888245 1.411538 +v -0.677398 0.887121 1.301397 +v -0.692596 0.887121 1.355297 +v -0.684413 0.888245 1.357261 +v -0.669395 0.888245 1.303997 +v -0.634569 0.887121 1.197998 +v -0.658012 0.887121 1.248857 +v -0.650237 0.888245 1.252078 +v -0.627071 0.888245 1.201819 +v -0.576093 0.887121 1.102573 +v -0.607203 0.887121 1.149139 +v -0.600027 0.888245 1.153536 +v -0.569284 0.888245 1.107520 +v -0.503408 0.887121 1.017470 +v -0.541419 0.887121 1.058596 +v -0.535020 0.888245 1.064062 +v -0.497457 0.888245 1.023421 +v -0.418305 0.887121 0.944786 +v -0.462282 0.887121 0.979459 +v -0.456817 0.888245 0.985858 +v -0.413359 0.888245 0.951594 +v -0.322881 0.887121 0.886309 +v -0.371740 0.887121 0.913676 +v -0.367343 0.888245 0.920851 +v -0.319060 0.888245 0.893808 +v -0.219482 0.887121 0.843480 +v -0.272022 0.887121 0.862867 +v -0.268801 0.888245 0.870642 +v -0.216882 0.888245 0.851484 +v -0.110657 0.887121 0.817354 +v -0.165582 0.887121 0.828283 +v -0.163618 0.888245 0.836466 +v -0.109341 0.888245 0.825666 +v 0.000915 0.887121 0.808573 +v -0.055043 0.887121 0.810775 +v -0.054383 0.888245 0.819164 +v 0.000916 0.888245 0.816989 +v 0.112488 0.887121 0.817354 +v 0.056874 0.887121 0.810775 +v 0.056214 0.888245 0.819165 +v 0.111171 0.888245 0.825666 +v 0.221313 0.887122 0.843481 +v 0.167413 0.887122 0.828283 +v 0.165448 0.888245 0.836466 +v 0.218713 0.888245 0.851485 +v 0.324712 0.887122 0.886310 +v 0.273852 0.887122 0.862867 +v 0.270632 0.888245 0.870642 +v 0.320891 0.888245 0.893808 +v 0.420137 0.887122 0.944787 +v 0.373571 0.887122 0.913677 +v 0.369174 0.888245 0.920852 +v 0.415190 0.888245 0.951595 +v 0.505239 0.887122 1.017472 +v 0.464114 0.887122 0.979460 +v 0.458648 0.888245 0.985859 +v 0.499289 0.888245 1.023422 +v 0.577924 0.887122 1.102574 +v 0.543251 0.887122 1.058597 +v 0.536852 0.888245 1.064063 +v 0.571116 0.888245 1.107521 +v 0.636401 0.887122 1.198000 +v 0.609034 0.887122 1.149140 +v 0.601859 0.888245 1.153537 +v 0.628902 0.888246 1.201820 +v 0.679229 0.887122 1.301398 +v 0.659843 0.887122 1.248859 +v 0.652068 0.888246 1.252079 +v 0.671226 0.888246 1.303999 +v 0.705356 0.887122 1.410223 +v 0.694427 0.887122 1.355298 +v 0.686244 0.888246 1.357262 +v 0.697044 0.888245 1.411540 +v 0.714137 0.887122 1.521796 +v 0.711935 0.887122 1.465837 +v 0.703545 0.888245 1.466498 +v 0.705721 0.888246 1.521796 +v 0.705355 0.887122 1.633367 +v 0.711935 0.887122 1.577753 +v 0.703545 0.888246 1.577093 +v 0.697043 0.888246 1.632051 +v 0.679229 0.887122 1.742193 +v 0.694427 0.887122 1.688293 +v 0.686244 0.888246 1.686328 +v 0.671225 0.888246 1.739592 +v 0.636399 0.887122 1.845591 +v 0.659842 0.887122 1.794732 +v 0.652067 0.888246 1.791511 +v 0.628901 0.888246 1.841770 +v 0.577923 0.887122 1.941016 +v 0.609033 0.887122 1.894451 +v 0.601857 0.888246 1.890053 +v 0.571114 0.888245 1.936070 +v 0.505238 0.887122 2.026119 +v 0.543250 0.887122 1.984993 +v 0.536850 0.888245 1.979528 +v 0.499287 0.888245 2.020168 +v 0.420135 0.887121 2.098803 +v 0.464112 0.887122 2.064130 +v 0.458647 0.888245 2.057731 +v 0.415189 0.888245 2.091995 +v 0.324710 0.887121 2.157280 +v 0.373569 0.887121 2.129913 +v 0.369172 0.888245 2.122738 +v 0.320889 0.888245 2.149782 +v 0.221311 0.887121 2.200109 +v 0.273850 0.887121 2.180722 +v 0.270630 0.888245 2.172948 +v 0.218711 0.888245 2.192105 +v 0.112486 0.887121 2.226235 +v 0.167411 0.887121 2.215307 +v 0.165446 0.888245 2.207124 +v 0.111170 0.888245 2.217923 +v 0.056872 0.887121 2.232814 +v 0.056212 0.888245 2.224424 +v 0.518834 0.035964 2.349718 +v 0.520947 0.071707 2.346055 +v 0.486632 0.038332 2.365878 +v 0.488884 0.076429 2.361974 +v 0.524457 0.107008 2.339971 +v 0.529337 0.141649 2.331510 +v 0.492625 0.114053 2.355489 +v 0.497827 0.150976 2.346471 +v 0.535563 0.175416 2.320717 +v 0.543092 0.208103 2.307667 +v 0.504463 0.186966 2.334968 +v 0.512487 0.221805 2.321058 +v 0.551880 0.239505 2.292431 +v 0.561871 0.269432 2.275112 +v 0.521854 0.255275 2.304819 +v 0.532503 0.287173 2.286360 +v 0.573006 0.297696 2.255809 +v 0.585213 0.324128 2.234648 +v 0.544371 0.317298 2.265786 +v 0.557382 0.345469 2.243231 +v 0.598420 0.348558 2.211753 +v 0.612543 0.370842 2.187270 +v 0.571459 0.371508 2.218829 +v 0.586512 0.395259 2.192734 +v 0.627498 0.390836 2.161347 +v 0.643189 0.408425 2.134146 +v 0.602451 0.416570 2.165103 +v 0.619175 0.435317 2.136112 +v 0.659522 0.423491 2.105832 +v 0.676395 0.435951 2.076583 +v 0.636583 0.451375 2.105934 +v 0.654567 0.464655 2.074758 +v 0.693704 0.445719 2.046576 +v 0.711343 0.452742 2.015998 +v 0.673016 0.475066 2.042776 +v 0.691817 0.482552 2.010185 +v 0.729203 0.456971 1.985038 +v 0.747174 0.458386 1.953885 +v 0.710853 0.487059 1.977186 +v 0.730007 0.488567 1.943982 +v 0.765145 0.456971 1.922732 +v 0.783005 0.452742 1.891771 +v 0.749161 0.487059 1.910778 +v 0.768197 0.482552 1.877778 +v 0.800643 0.445718 1.861194 +v 0.817953 0.435951 1.831187 +v 0.786997 0.475066 1.845188 +v 0.805446 0.464655 1.813205 +v 0.834825 0.423491 1.801938 +v 0.851158 0.408425 1.773624 +v 0.823430 0.451375 1.782030 +v 0.840838 0.435317 1.751852 +v 0.866849 0.390836 1.746423 +v 0.881803 0.370842 1.720499 +v 0.857562 0.416570 1.722860 +v 0.873501 0.395259 1.695230 +v 0.895926 0.348557 1.696017 +v 0.909133 0.324127 1.673122 +v 0.888553 0.371508 1.669135 +v 0.902630 0.345469 1.644732 +v 0.921341 0.297696 1.651960 +v 0.932476 0.269432 1.632658 +v 0.915641 0.317297 1.622178 +v 0.927509 0.287172 1.601604 +v 0.942466 0.239505 1.615338 +v 0.951255 0.208102 1.600103 +v 0.938158 0.255274 1.583144 +v 0.947525 0.221805 1.566906 +v 0.958783 0.175415 1.587052 +v 0.965009 0.141649 1.576260 +v 0.955549 0.186965 1.552996 +v 0.962185 0.150975 1.541492 +v 0.969890 0.107007 1.567799 +v 0.973399 0.071707 1.561715 +v 0.967387 0.114053 1.532475 +v 0.971128 0.076428 1.525990 +v 0.975512 0.035964 1.558052 +v 0.973380 0.038332 1.522087 +v 0.291301 0.052423 2.459888 +v 0.170328 0.059158 2.488906 +v 0.294381 0.104523 2.454550 +v 0.173803 0.117953 2.482882 +v 0.048966 0.064766 2.501157 +v 0.052770 0.129134 2.494561 +v 0.299496 0.155978 2.445681 +v 0.179577 0.176018 2.472874 +v 0.306611 0.206472 2.433349 +v 0.187605 0.233001 2.458956 +v 0.059091 0.192704 2.483603 +v 0.067880 0.255088 2.468368 +v 0.315686 0.255692 2.417617 +v 0.197846 0.288544 2.441203 +v 0.326659 0.303337 2.398594 +v 0.210230 0.342312 2.419736 +v 0.079092 0.315896 2.448932 +v 0.092650 0.374760 2.425429 +v 0.339470 0.349110 2.376386 +v 0.224686 0.393965 2.394675 +v 0.354033 0.392734 2.351141 +v 0.241120 0.443194 2.366186 +v 0.108476 0.431310 2.397993 +v 0.126468 0.485205 2.366804 +v 0.370264 0.433932 2.323004 +v 0.259436 0.489686 2.334435 +v 0.388057 0.472459 2.292159 +v 0.279516 0.533162 2.299626 +v 0.146521 0.536103 2.332042 +v 0.168504 0.583702 2.293934 +v 0.407309 0.508069 2.258786 +v 0.301241 0.573347 2.261965 +v 0.427895 0.540550 2.223100 +v 0.324472 0.610003 2.221694 +v 0.192288 0.627697 2.252703 +v 0.217721 0.667827 2.208614 +v 0.449692 0.569695 2.185312 +v 0.349071 0.642892 2.179051 +v 0.472564 0.595332 2.145664 +v 0.374881 0.671824 2.134308 +v 0.244652 0.703834 2.161930 +v 0.272909 0.735508 2.112946 +v 0.496372 0.617294 2.104393 +v 0.401748 0.696607 2.087735 +v 0.520966 0.635455 2.061758 +v 0.429502 0.717102 2.039622 +v 0.302322 0.762640 2.061957 +v 0.332707 0.785078 2.009284 +v 0.546197 0.649693 2.018019 +v 0.457975 0.733169 1.990264 +v 0.571908 0.659931 1.973448 +v 0.486989 0.744722 1.939966 +v 0.363879 0.802668 1.955246 +v 0.395644 0.815317 1.900181 +v 0.597942 0.666094 1.928319 +v 0.516367 0.751677 1.889038 +v 0.624136 0.668157 1.882910 +v 0.545928 0.754005 1.837794 +v 0.427807 0.822931 1.844425 +v 0.460170 0.825480 1.788324 +v 0.650331 0.666094 1.837500 +v 0.575488 0.751677 1.786551 +v 0.676365 0.659931 1.792371 +v 0.604866 0.744722 1.735623 +v 0.492532 0.822931 1.732223 +v 0.524695 0.815317 1.676467 +v 0.702075 0.649693 1.747800 +v 0.633881 0.733169 1.685325 +v 0.727306 0.635455 1.704061 +v 0.662354 0.717102 1.635966 +v 0.556460 0.802668 1.621402 +v 0.587632 0.785078 1.567364 +v 0.751901 0.617294 1.661426 +v 0.690108 0.696607 1.587854 +v 0.775707 0.595332 1.620155 +v 0.716974 0.671823 1.541281 +v 0.618017 0.762640 1.514691 +v 0.647430 0.735508 1.463703 +v 0.798580 0.569695 1.580507 +v 0.742785 0.642892 1.496537 +v 0.820377 0.540550 1.542720 +v 0.767382 0.610003 1.453895 +v 0.675687 0.703833 1.414719 +v 0.702617 0.667827 1.368035 +v 0.840963 0.508069 1.507033 +v 0.790613 0.573347 1.413624 +v 0.860214 0.472459 1.473660 +v 0.812338 0.533162 1.375964 +v 0.728051 0.627696 1.323946 +v 0.751835 0.583701 1.282715 +v 0.878008 0.433932 1.442815 +v 0.832418 0.489685 1.341155 +v 0.894239 0.392733 1.414679 +v 0.850734 0.443193 1.309403 +v 0.773817 0.536103 1.244607 +v 0.793870 0.485205 1.209845 +v 0.908801 0.349110 1.389434 +v 0.867168 0.393965 1.280915 +v 0.921612 0.303337 1.367226 +v 0.881625 0.342311 1.255854 +v 0.811861 0.431310 1.178656 +v 0.827688 0.374760 1.151220 +v 0.932586 0.255691 1.348203 +v 0.894008 0.288544 1.234387 +v 0.941660 0.206472 1.332472 +v 0.904249 0.233000 1.216634 +v 0.841245 0.315896 1.127717 +v 0.852457 0.255087 1.108281 +v 0.948775 0.155977 1.320139 +v 0.912277 0.176018 1.202716 +v 0.953891 0.104522 1.311271 +v 0.918051 0.117952 1.192708 +v 0.861246 0.192703 1.093045 +v 0.867567 0.129133 1.082088 +v 0.956970 0.052423 1.305932 +v 0.921526 0.059158 1.186684 +v 0.871372 0.064766 1.075493 +v -0.266268 0.148711 2.453219 +v -0.166788 0.144362 2.478904 +v -0.171042 0.072404 2.486278 +v -0.270649 0.074585 2.460815 +v -0.360117 0.151276 2.417775 +v -0.364574 0.075871 2.425502 +v -0.248867 0.293760 2.423055 +v -0.149897 0.285169 2.449622 +v -0.159723 0.215429 2.466656 +v -0.258989 0.221919 2.440602 +v -0.342416 0.298826 2.387090 +v -0.352713 0.225746 2.404940 +v -0.220343 0.431576 2.373607 +v -0.122207 0.418955 2.401620 +v -0.137363 0.353149 2.427894 +v -0.235956 0.363788 2.400672 +v -0.313400 0.439019 2.336789 +v -0.329282 0.370062 2.364322 +v -0.181397 0.558764 2.306093 +v -0.084401 0.542423 2.336081 +v -0.104514 0.482173 2.370948 +v -0.202116 0.496700 2.342011 +v -0.273783 0.568401 2.268111 +v -0.294859 0.505265 2.304649 +v -0.132989 0.672195 2.222176 +v -0.037408 0.652536 2.254618 +v -0.061984 0.599324 2.297220 +v -0.158304 0.617380 2.266062 +v -0.224539 0.683787 2.182747 +v -0.250292 0.628027 2.227390 +v -0.076310 0.769074 2.123921 +v 0.017614 0.746582 2.159237 +v -0.010819 0.701719 2.208525 +v -0.105599 0.722859 2.174695 +v -0.166883 0.782337 2.082798 +v -0.196677 0.735325 2.134447 +v -0.012756 0.847015 2.013749 +v 0.079309 0.822244 2.052286 +v 0.047720 0.786835 2.107047 +v -0.045297 0.810539 2.070159 +v -0.102234 0.861623 1.970725 +v -0.135336 0.824518 2.028109 +v 0.056108 0.904101 1.894371 +v 0.146159 0.877660 1.936400 +v 0.112191 0.852576 1.995285 +v 0.021116 0.878261 1.955030 +v -0.032182 0.919692 1.849289 +v -0.067777 0.893407 1.910994 +v 0.128586 0.938924 1.768728 +v 0.216518 0.911465 1.814431 +v 0.181007 0.897324 1.875990 +v 0.092006 0.924357 1.832141 +v 0.041546 0.955116 1.721479 +v 0.004335 0.940298 1.785986 +v 0.202894 0.950628 1.639913 +v 0.288653 0.922826 1.689384 +v 0.252474 0.919977 1.752100 +v 0.165626 0.947693 1.704519 +v 0.117136 0.967022 1.590443 +v 0.079224 0.964036 1.656163 +v 0.277203 0.938924 1.511099 +v 0.360788 0.911464 1.564335 +v 0.324832 0.919977 1.626666 +v 0.240163 0.947693 1.575307 +v 0.192726 0.955116 1.459407 +v 0.155048 0.964036 1.524722 +v 0.349681 0.904100 1.385455 +v 0.431146 0.877659 1.442366 +v 0.396298 0.897324 1.502777 +v 0.313783 0.924357 1.447685 +v 0.266454 0.919692 1.331596 +v 0.229937 0.940298 1.394900 +v 0.418545 0.847015 1.266077 +v 0.497996 0.822244 1.326481 +v 0.465114 0.852576 1.383483 +v 0.384672 0.878261 1.324796 +v 0.336506 0.861622 1.210160 +v 0.302049 0.893407 1.269892 +v 0.482099 0.769073 1.155905 +v 0.559692 0.746581 1.219530 +v 0.529586 0.786834 1.271720 +v 0.451086 0.810539 1.209667 +v 0.401156 0.782336 1.098088 +v 0.369608 0.824517 1.152777 +v 0.538778 0.672194 1.057650 +v 0.614713 0.652536 1.124149 +v 0.588124 0.701718 1.170242 +v 0.511388 0.722858 1.105132 +v 0.458812 0.683786 0.998139 +v 0.430950 0.735325 1.046439 +v 0.587187 0.558764 0.973733 +v 0.661706 0.542423 1.042686 +v 0.639289 0.599324 1.081547 +v 0.564094 0.617379 1.013765 +v 0.508055 0.568400 0.912774 +v 0.484565 0.628026 0.953496 +v 0.626132 0.431576 0.906220 +v 0.699513 0.418954 0.977147 +v 0.681819 0.482173 1.007819 +v 0.607906 0.496699 0.937815 +v 0.547673 0.439018 0.844096 +v 0.529132 0.505265 0.876237 +v 0.654655 0.293760 0.856772 +v 0.727202 0.285168 0.929145 +v 0.714669 0.353148 0.950873 +v 0.641744 0.363787 0.879154 +v 0.576689 0.298826 0.793795 +v 0.563555 0.370061 0.816564 +v 0.672056 0.148710 0.826607 +v 0.744093 0.144361 0.899863 +v 0.737028 0.215428 0.912112 +v 0.664777 0.221918 0.839225 +v 0.594389 0.151275 0.763111 +v 0.586985 0.225745 0.775946 +v 0.748347 0.072403 0.892490 +v 0.676437 0.074585 0.819012 +v 0.598847 0.075871 0.755385 +v -0.449415 0.152398 2.374440 +v -0.453905 0.076434 2.382224 +v -0.536437 0.152798 2.327161 +v -0.540939 0.076635 2.334965 +v -0.431583 0.301043 2.343528 +v -0.441956 0.227420 2.361510 +v -0.518558 0.301834 2.296167 +v -0.528959 0.228018 2.314196 +v -0.402351 0.442275 2.292854 +v -0.418351 0.372806 2.320591 +v -0.489250 0.443438 2.245360 +v -0.505292 0.373786 2.273170 +v -0.362440 0.572616 2.223667 +v -0.383673 0.509013 2.260475 +v -0.449234 0.574121 2.175991 +v -0.470523 0.510351 2.212896 +v -0.312832 0.688858 2.137670 +v -0.338775 0.632685 2.182643 +v -0.399495 0.690669 2.089767 +v -0.425507 0.634348 2.134859 +v -0.254748 0.788139 2.036979 +v -0.284763 0.740779 2.089011 +v -0.341258 0.790211 1.988813 +v -0.371352 0.742726 2.040981 +v -0.189619 0.868013 1.924075 +v -0.222966 0.830633 1.981884 +v -0.275957 0.870295 1.875612 +v -0.309393 0.832816 1.933573 +v -0.119048 0.926513 1.801738 +v -0.154907 0.900033 1.863901 +v -0.205202 0.928949 1.752953 +v -0.241154 0.902399 1.815279 +v -0.044773 0.962200 1.672980 +v -0.082260 0.947272 1.737966 +v -0.130731 0.964729 1.623857 +v -0.168317 0.949762 1.689013 +v 0.031378 0.974194 1.540972 +v -0.006815 0.971186 1.607180 +v -0.054381 0.976754 1.491502 +v -0.092674 0.973739 1.557884 +v 0.107528 0.962199 1.408964 +v 0.069570 0.971186 1.474764 +v 0.021970 0.964729 1.359147 +v -0.016088 0.973739 1.425120 +v 0.181803 0.926513 1.280206 +v 0.145015 0.947272 1.343979 +v 0.096440 0.928948 1.230050 +v 0.059555 0.949762 1.293991 +v 0.252374 0.868012 1.157869 +v 0.217662 0.900033 1.218044 +v 0.167197 0.870294 1.107392 +v 0.132393 0.902399 1.167725 +v 0.317504 0.788138 1.044966 +v 0.285722 0.830632 1.100060 +v 0.232497 0.790210 0.994192 +v 0.200632 0.832815 1.049431 +v 0.375588 0.688858 0.944275 +v 0.347519 0.740778 0.992934 +v 0.290734 0.690669 0.893236 +v 0.262591 0.742725 0.942023 +v 0.425196 0.572615 0.858278 +v 0.401531 0.632684 0.899302 +v 0.340473 0.574121 0.807013 +v 0.316746 0.634347 0.848145 +v 0.465107 0.442274 0.789091 +v 0.446429 0.509012 0.821470 +v 0.380489 0.443437 0.737644 +v 0.361762 0.510350 0.770108 +v 0.494339 0.301042 0.738417 +v 0.481107 0.372805 0.761354 +v 0.409797 0.301833 0.686837 +v 0.396531 0.373785 0.709834 +v 0.512171 0.152397 0.707505 +v 0.504711 0.227419 0.720435 +v 0.427676 0.152797 0.655843 +v 0.420197 0.228017 0.668808 +v 0.516661 0.076434 0.699721 +v 0.432178 0.076635 0.648039 +v -0.060602 0.137886 2.492960 +v -0.064665 0.069156 2.500003 +v -0.044468 0.272378 2.464991 +v -0.053853 0.205765 2.481261 +v -0.018020 0.400162 2.419143 +v -0.032496 0.337308 2.444238 +v 0.018091 0.518093 2.356543 +v -0.001120 0.460545 2.389846 +v 0.062976 0.623266 2.278734 +v 0.039503 0.572441 2.319426 +v 0.115530 0.713093 2.187632 +v 0.088372 0.670243 2.234709 +v 0.174457 0.785362 2.085478 +v 0.144285 0.751541 2.137783 +v 0.238309 0.838291 1.974790 +v 0.205864 0.814333 2.031033 +v 0.305512 0.870580 1.858292 +v 0.271594 0.857074 1.917090 +v 0.374411 0.881432 1.738854 +v 0.339855 0.878710 1.798757 +v 0.443310 0.870580 1.619415 +v 0.408967 0.878710 1.678950 +v 0.510513 0.838291 1.502917 +v 0.477228 0.857074 1.560617 +v 0.574365 0.785361 1.392230 +v 0.542957 0.814333 1.446674 +v 0.633292 0.713093 1.290077 +v 0.604537 0.751540 1.339925 +v 0.685846 0.623265 1.198974 +v 0.660450 0.670242 1.242999 +v 0.730730 0.518093 1.121165 +v 0.709319 0.572440 1.158282 +v 0.766841 0.400161 1.058566 +v 0.749941 0.460545 1.087862 +v 0.793288 0.272377 1.012717 +v 0.781317 0.337307 1.033470 +v 0.809423 0.137886 0.984748 +v 0.802674 0.205765 0.996448 +v 0.813485 0.069156 0.977706 +v 0.406385 0.089025 2.406193 +v 0.403762 0.044650 2.410740 +v 0.416801 0.175857 2.388135 +v 0.410742 0.132850 2.398640 +v 0.433877 0.258359 2.358534 +v 0.424531 0.217778 2.374736 +v 0.457192 0.334500 2.318117 +v 0.444788 0.297345 2.339619 +v 0.486171 0.402404 2.267881 +v 0.471016 0.369589 2.294153 +v 0.520102 0.460400 2.209062 +v 0.502568 0.432734 2.239457 +v 0.558148 0.507059 2.143108 +v 0.538667 0.485223 2.176878 +v 0.599373 0.541231 2.071644 +v 0.578425 0.525764 2.107956 +v 0.642761 0.562078 1.996428 +v 0.620862 0.553358 2.034390 +v 0.687245 0.569084 1.919314 +v 0.664934 0.567327 1.957990 +v 0.731729 0.562078 1.842200 +v 0.709556 0.567327 1.880638 +v 0.775117 0.541231 1.766985 +v 0.753627 0.553357 1.804238 +v 0.816342 0.507057 1.695521 +v 0.796065 0.525762 1.730672 +v 0.854387 0.460399 1.629567 +v 0.835822 0.485222 1.661751 +v 0.888318 0.402404 1.570748 +v 0.871921 0.432733 1.599172 +v 0.917297 0.334499 1.520511 +v 0.903473 0.369589 1.544476 +v 0.940611 0.258359 1.480096 +v 0.929701 0.297344 1.499010 +v 0.957687 0.175856 1.450493 +v 0.949958 0.217778 1.463893 +v 0.968104 0.089024 1.432437 +v 0.963746 0.132849 1.439989 +v 0.970727 0.044649 1.427889 +v -0.769087 0.743718 1.967094 +v -0.714695 0.747597 2.044239 +v -0.653195 0.752111 2.113454 +v -0.585817 0.756073 2.175694 +v -0.513708 0.758062 2.231602 +v -0.437146 0.758264 2.280675 +v -0.356540 0.757141 2.322686 +v -0.272344 0.754447 2.357557 +v -0.184993 0.749770 2.385013 +v -0.094780 0.744497 2.403973 +v -0.001738 0.739542 2.412884 +v 0.561163 0.746665 2.205873 +v 0.611309 0.749409 2.158312 +v 0.655617 0.751457 2.110480 +v 0.694764 0.752908 2.061984 +v 0.729411 0.753847 2.012408 +v 0.760517 0.754582 1.961543 +v 0.788547 0.754865 1.908811 +v 0.813666 0.754561 1.853565 +v 0.836024 0.753529 1.795152 +v 0.855793 0.751224 1.733205 +v 0.873113 0.747058 1.667338 +v -0.107530 0.891617 2.206488 +v -0.053475 0.891617 2.212882 +v 0.000915 0.891617 2.215022 +v -0.052443 0.896112 2.199763 +v 0.000915 0.896112 2.201863 +v -0.105471 0.896112 2.193490 +v -0.213304 0.891617 2.181093 +v -0.160914 0.891617 2.195865 +v -0.157842 0.896112 2.183070 +v -0.209237 0.896112 2.168578 +v -0.313803 0.891617 2.139465 +v -0.264370 0.891617 2.162250 +v -0.259334 0.896112 2.150093 +v -0.307829 0.896112 2.127740 +v -0.406554 0.891617 2.082627 +v -0.361293 0.891617 2.112865 +v -0.354418 0.896112 2.101645 +v -0.398819 0.896112 2.071981 +v -0.489271 0.891616 2.011980 +v -0.449298 0.891617 2.048926 +v -0.440752 0.896112 2.038920 +v -0.479966 0.896112 2.002675 +v -0.559918 0.891617 1.929263 +v -0.526217 0.891617 1.972007 +v -0.516210 0.896112 1.963461 +v -0.549272 0.896112 1.921528 +v -0.616755 0.891617 1.836513 +v -0.590156 0.891617 1.884003 +v -0.578936 0.896112 1.877127 +v -0.605030 0.896112 1.830538 +v -0.658384 0.891616 1.736014 +v -0.639541 0.891617 1.787079 +v -0.627383 0.896112 1.782043 +v -0.645868 0.896112 1.731946 +v -0.683778 0.891616 1.630239 +v -0.673156 0.891616 1.683625 +v -0.660360 0.896112 1.680553 +v -0.670781 0.896112 1.628181 +v -0.692313 0.891616 1.521795 +v -0.690172 0.891616 1.576184 +v -0.677054 0.896112 1.575152 +v -0.679153 0.896112 1.521795 +v -0.683778 0.891616 1.413350 +v -0.690172 0.891616 1.467405 +v -0.677054 0.896112 1.468437 +v -0.670780 0.896112 1.415408 +v -0.658383 0.891616 1.307575 +v -0.673155 0.891616 1.359964 +v -0.660360 0.896112 1.363036 +v -0.645868 0.896112 1.311641 +v -0.616755 0.891616 1.207075 +v -0.639540 0.891616 1.256509 +v -0.627383 0.896112 1.261544 +v -0.605030 0.896112 1.213050 +v -0.559917 0.891617 1.114325 +v -0.590155 0.891617 1.159585 +v -0.578935 0.896112 1.166461 +v -0.549271 0.896112 1.122060 +v -0.489270 0.891617 1.031608 +v -0.526216 0.891617 1.071581 +v -0.516210 0.896112 1.080127 +v -0.479965 0.896112 1.040913 +v -0.406553 0.891617 0.960961 +v -0.449297 0.891617 0.994662 +v -0.440751 0.896112 1.004668 +v -0.398818 0.896112 0.971607 +v -0.313804 0.891617 0.904124 +v -0.361293 0.891617 0.930723 +v -0.354418 0.896112 0.941943 +v -0.307830 0.896112 0.915849 +v -0.213304 0.891617 0.862495 +v -0.264370 0.891617 0.881338 +v -0.259335 0.896112 0.893496 +v -0.209238 0.896112 0.875011 +v -0.107529 0.891617 0.837101 +v -0.160915 0.891617 0.847724 +v -0.157843 0.896112 0.860519 +v -0.105471 0.896112 0.850099 +v 0.000915 0.891617 0.828567 +v -0.053474 0.891617 0.830707 +v -0.052442 0.896112 0.843826 +v 0.000915 0.896112 0.841726 +v 0.109360 0.891617 0.837102 +v 0.055305 0.891617 0.830707 +v 0.054273 0.896112 0.843826 +v 0.107302 0.896112 0.850099 +v 0.215135 0.891617 0.862496 +v 0.162746 0.891617 0.847724 +v 0.159674 0.896112 0.860520 +v 0.211068 0.896112 0.875011 +v 0.315635 0.891617 0.904124 +v 0.266201 0.891617 0.881339 +v 0.261165 0.896112 0.893496 +v 0.309660 0.896112 0.915849 +v 0.408385 0.891617 0.960962 +v 0.363125 0.891617 0.930724 +v 0.356249 0.896112 0.941944 +v 0.400650 0.896112 0.971608 +v 0.491102 0.891617 1.031609 +v 0.451129 0.891617 0.994663 +v 0.442583 0.896112 1.004669 +v 0.481797 0.896112 1.040914 +v 0.561749 0.891617 1.114326 +v 0.528048 0.891617 1.071582 +v 0.518041 0.896112 1.080128 +v 0.551103 0.896112 1.122061 +v 0.618586 0.891617 1.207077 +v 0.591987 0.891617 1.159587 +v 0.580767 0.896112 1.166462 +v 0.606861 0.896112 1.213051 +v 0.660214 0.891617 1.307577 +v 0.641372 0.891617 1.256510 +v 0.629214 0.896112 1.261546 +v 0.647699 0.896112 1.311643 +v 0.685608 0.891617 1.413351 +v 0.674986 0.891617 1.359966 +v 0.662190 0.896112 1.363037 +v 0.672611 0.896112 1.415410 +v 0.694143 0.891617 1.521796 +v 0.692003 0.891617 1.467406 +v 0.678884 0.896112 1.468438 +v 0.680984 0.896112 1.521796 +v 0.685608 0.891617 1.630240 +v 0.692003 0.891617 1.576185 +v 0.678884 0.896112 1.575152 +v 0.672611 0.896112 1.628181 +v 0.660214 0.891617 1.736014 +v 0.674986 0.891617 1.683625 +v 0.662190 0.896112 1.680553 +v 0.647698 0.896112 1.731948 +v 0.618585 0.891617 1.836514 +v 0.641371 0.891617 1.787081 +v 0.629213 0.896112 1.782045 +v 0.606860 0.896112 1.830540 +v 0.561748 0.891617 1.929264 +v 0.591986 0.891617 1.884004 +v 0.580765 0.896112 1.877128 +v 0.551101 0.896112 1.921529 +v 0.491100 0.891617 2.011981 +v 0.528046 0.891617 1.972008 +v 0.518040 0.896112 1.963462 +v 0.481795 0.896112 2.002676 +v 0.408383 0.891617 2.082628 +v 0.451127 0.891617 2.048927 +v 0.442581 0.896112 2.038921 +v 0.400648 0.896112 2.071982 +v 0.315633 0.891617 2.139465 +v 0.363123 0.891617 2.112866 +v 0.356247 0.896112 2.101646 +v 0.309659 0.896112 2.127741 +v 0.215133 0.891617 2.181094 +v 0.266199 0.891617 2.162251 +v 0.261163 0.896112 2.150093 +v 0.211066 0.896112 2.168578 +v 0.109358 0.891617 2.206488 +v 0.162744 0.891617 2.195865 +v 0.159672 0.896112 2.183070 +v 0.107300 0.896112 2.193490 +v 0.055304 0.891617 2.212882 +v 0.054271 0.896112 2.199763 +v 0.654764 0.752749 0.931198 +v 0.588043 0.755627 0.867825 +v 0.515822 0.757856 0.811532 +v 0.438806 0.758611 0.762192 +v 0.357919 0.757278 0.719526 +v 0.272906 0.755801 0.685247 +v 0.183380 0.755927 0.661237 +v -0.921327 0.672514 1.313525 +v -0.898227 0.685980 1.262104 +v -0.873957 0.696234 1.211581 +v -0.849062 0.703092 1.161619 +v -0.823737 0.706141 1.111928 +v -0.797517 0.706131 1.062862 +v -0.769974 0.703832 1.014772 +v -0.740569 0.699469 0.967150 +v -0.708651 0.693182 0.919527 +v -0.675874 0.683906 0.872815 +v -0.643898 0.670547 0.828033 +v 0.078941 1.137034 1.738787 +v 0.081187 1.145075 1.692483 +v 0.049363 1.145978 1.698800 +v 0.053895 1.138021 1.741445 +v 0.082342 1.126699 1.785635 +v 0.059744 1.126942 1.790665 +v 0.029721 1.137898 1.746644 +v 0.037332 1.126860 1.795021 +v 0.023690 1.145847 1.704678 +v 0.118297 1.137156 1.719464 +v 0.106227 1.133691 1.744601 +v 0.154496 1.126896 1.750054 +v 0.137070 1.125842 1.765919 +v 0.105626 1.125758 1.781435 +v 0.129280 1.121582 1.788357 +v 0.127609 1.145791 1.655457 +v 0.106687 1.145936 1.671638 +v 0.135710 1.138280 1.701273 +v 0.154604 1.138284 1.685320 +v 0.172216 1.127236 1.735208 +v 0.189321 1.127268 1.720089 +v 0.189821 1.137481 1.650042 +v 0.166295 1.145130 1.611892 +v 0.145359 1.145834 1.635877 +v 0.171111 1.138441 1.666909 +v 0.220229 1.127156 1.686052 +v 0.204895 1.127371 1.703397 +v 0.210317 1.137635 1.611279 +v 0.215327 1.134158 1.638714 +v 0.257723 1.127412 1.614850 +v 0.252945 1.126347 1.637933 +v 0.236610 1.126238 1.668973 +v 0.259926 1.122109 1.660752 +v 0.181246 1.145981 1.555614 +v 0.174915 1.145928 1.580732 +v 0.213718 1.138769 1.586324 +v 0.219637 1.138780 1.562310 +v 0.263340 1.127763 1.592420 +v 0.268299 1.127802 1.570134 +v 0.227416 1.137971 1.513059 +v 0.185779 1.145597 1.496870 +v 0.183279 1.146202 1.529375 +v 0.222182 1.138937 1.537708 +v 0.273314 1.127688 1.524425 +v 0.271096 1.127905 1.547473 +v 0.221220 1.138099 1.469638 +v 0.241401 1.134635 1.488900 +v 0.261807 1.127910 1.444749 +v 0.271513 1.126856 1.466251 +v 0.276538 1.126762 1.500978 +v 0.290682 1.122672 1.480700 +v 0.165100 1.146312 1.441541 +v 0.174402 1.146383 1.466323 +v 0.209302 1.139215 1.447439 +v 0.199971 1.139196 1.424524 +v 0.253165 1.128241 1.423291 +v 0.244075 1.128256 1.402338 +v 0.177307 1.138312 1.380091 +v 0.134652 1.145766 1.391324 +v 0.151735 1.146407 1.418834 +v 0.187565 1.139320 1.403116 +v 0.221262 1.128092 1.362396 +v 0.233016 1.128340 1.382352 +v 0.146762 1.138374 1.348594 +v 0.174424 1.134940 1.352319 +v 0.165098 1.128193 1.304684 +v 0.185606 1.127174 1.316383 +v 0.210093 1.127131 1.341533 +v 0.209726 1.123056 1.316885 +v 0.085596 1.146563 1.360078 +v 0.107876 1.146513 1.373846 +v 0.124062 1.139448 1.337635 +v 0.103035 1.139373 1.324578 +v 0.145482 1.128489 1.292398 +v 0.125801 1.128458 1.280789 +v 0.058566 1.138374 1.301954 +v 0.030539 1.146042 1.337643 +v 0.060998 1.146757 1.350304 +v 0.080406 1.139445 1.314549 +v 0.083851 1.128214 1.261883 +v 0.105096 1.128497 1.271121 +v 0.015329 1.138352 1.294433 +v 0.039908 1.134960 1.281182 +v 0.004473 1.128148 1.248226 +v 0.027956 1.127179 1.245629 +v 0.062555 1.127202 1.251574 +v 0.047874 1.123114 1.231923 +v -0.028354 1.146734 1.341469 +v -0.001909 1.146808 1.339981 +v -0.009484 1.139368 1.298919 +v -0.034174 1.139245 1.300723 +v -0.018628 1.128404 1.249823 +v -0.041380 1.128331 1.252008 +v 0.025837 1.152110 1.378388 +v 0.050533 1.151738 1.382596 +v 0.073860 1.151332 1.389808 +v 0.046092 1.155180 1.412398 +v 0.067502 1.154494 1.416097 +v 0.023877 1.155667 1.410635 +v 0.084828 1.156399 1.580867 +v 0.080404 1.157624 1.559276 +v 0.058714 1.158870 1.563582 +v 0.064296 1.157379 1.586971 +v 0.092759 1.154388 1.603100 +v 0.072896 1.155202 1.612114 +v 0.052303 1.155643 1.618821 +v 0.044326 1.158059 1.591469 +v 0.039012 1.159622 1.566908 +v 0.021595 1.159895 1.570181 +v 0.026027 1.158395 1.595526 +v 0.032415 1.156014 1.624378 +v 0.008477 1.158419 1.598704 +v 0.012718 1.155906 1.628261 +v 0.004767 1.159932 1.572948 +v 0.073384 1.158784 1.512678 +v 0.098266 1.156895 1.509228 +v 0.095170 1.156653 1.486904 +v 0.070329 1.158545 1.489251 +v 0.091492 1.156079 1.465006 +v 0.067826 1.157834 1.465589 +v 0.115410 1.153794 1.462321 +v 0.120844 1.154095 1.483474 +v 0.124313 1.154350 1.505589 +v 0.045568 1.159067 1.467283 +v 0.047624 1.160004 1.491991 +v 0.050629 1.160260 1.515822 +v 0.028167 1.160783 1.494336 +v 0.031703 1.160921 1.518517 +v 0.025264 1.159917 1.469278 +v 0.007312 1.160285 1.470812 +v 0.010767 1.161149 1.496330 +v 0.014275 1.161358 1.520995 +v -0.002344 1.161462 1.523367 +v -0.005904 1.161231 1.498496 +v -0.009588 1.160340 1.472665 +v 0.138414 1.150751 1.454327 +v 0.146082 1.150978 1.477476 +v 0.150592 1.151124 1.501881 +v 0.126806 1.153699 1.548735 +v 0.125231 1.153278 1.566859 +v 0.146998 1.150407 1.572005 +v 0.151563 1.150560 1.550342 +v 0.138226 1.150450 1.592116 +v 0.124391 1.152572 1.582605 +v 0.152591 1.150876 1.526572 +v 0.126385 1.154018 1.527831 +v 0.100910 1.156637 1.531686 +v 0.103092 1.155944 1.553019 +v 0.076664 1.158429 1.536283 +v 0.054231 1.159877 1.539777 +v 0.035266 1.160500 1.542681 +v 0.017845 1.160884 1.545479 +v 0.001188 1.160971 1.548012 +v 0.124610 1.150758 1.611241 +v 0.107015 1.151052 1.628015 +v 0.110509 1.153497 1.590685 +v 0.044747 1.157500 1.440695 +v 0.066187 1.156547 1.441284 +v 0.023842 1.158206 1.441140 +v 0.002442 1.155818 1.409918 +v 0.004552 1.158479 1.441735 +v -0.013781 1.158546 1.443367 +v -0.018371 1.155855 1.411287 +v 0.104824 1.155155 1.571987 +v 0.101749 1.152830 1.427282 +v 0.086525 1.153658 1.422636 +v 0.087087 1.155284 1.443816 +v 0.107376 1.153511 1.442951 +v 0.112136 1.150868 1.415290 +v 0.126957 1.150752 1.433376 +v 0.086388 1.151455 1.641130 +v 0.064020 1.151857 1.651318 +v 0.041203 1.151975 1.659303 +v 0.017908 1.151878 1.664418 +v 0.001178 1.152079 1.376488 +v -0.023158 1.152073 1.377820 +v 0.094414 1.151027 1.400736 +v -0.002600 1.145852 1.706245 +v -0.034916 1.144830 1.709123 +v -0.019722 1.136849 1.752934 +v 0.005059 1.137936 1.748449 +v 0.014604 1.126863 1.797207 +v -0.008462 1.126554 1.798809 +v -0.062924 1.136797 1.745444 +v -0.044266 1.133418 1.766184 +v -0.031888 1.125533 1.801408 +v -0.066444 1.125506 1.795492 +v -0.051414 1.121292 1.814870 +v -0.087749 1.126493 1.785213 +v -0.089874 1.145353 1.686629 +v -0.107369 1.137774 1.722875 +v -0.084752 1.137847 1.732877 +v -0.065249 1.145605 1.696286 +v -0.108992 1.126769 1.776002 +v -0.129694 1.126735 1.766357 +v -0.112407 1.145281 1.672817 +v -0.139238 1.144481 1.655676 +v -0.151084 1.136828 1.698910 +v -0.128388 1.137864 1.709843 +v -0.149377 1.126785 1.754771 +v -0.168991 1.126511 1.742507 +v -0.181645 1.136867 1.667458 +v -0.178745 1.133440 1.695209 +v -0.189488 1.125539 1.730839 +v -0.213977 1.125578 1.705744 +v -0.213249 1.121350 1.730137 +v -0.225169 1.126607 1.684910 +v -0.169408 1.145299 1.605865 +v -0.204352 1.137951 1.623071 +v -0.191923 1.137969 1.644458 +v -0.156275 1.145281 1.628196 +v -0.236945 1.126924 1.664969 +v -0.248033 1.126937 1.644992 +v -0.178723 1.145461 1.581246 +v -0.190242 1.144790 1.550747 +v -0.225654 1.137100 1.577978 +v -0.213707 1.138086 1.600170 +v -0.257153 1.127019 1.624043 +v -0.265822 1.126788 1.602583 +v -0.231897 1.137210 1.534557 +v -0.245867 1.133748 1.558715 +v -0.275556 1.125856 1.581077 +v -0.280621 1.125946 1.546370 +v -0.294417 1.121733 1.566409 +v -0.277425 1.127000 1.522939 +v -0.185947 1.145626 1.491831 +v -0.224171 1.138363 1.485284 +v -0.226690 1.138347 1.509901 +v -0.187919 1.145680 1.518232 +v -0.275229 1.127350 1.499879 +v -0.272455 1.127391 1.477190 +v -0.179488 1.145727 1.466284 +v -0.170805 1.145101 1.435084 +v -0.214891 1.137556 1.436265 +v -0.218274 1.138526 1.461250 +v -0.267514 1.127490 1.454875 +v -0.261910 1.127280 1.432408 +v -0.194408 1.137696 1.397458 +v -0.219919 1.134222 1.408789 +v -0.257139 1.126364 1.409272 +v -0.240824 1.126470 1.378206 +v -0.263810 1.122296 1.386180 +v -0.224456 1.127530 1.361135 +v -0.132510 1.146186 1.391307 +v -0.159180 1.138858 1.362130 +v -0.175696 1.138840 1.380569 +v -0.150035 1.146070 1.410777 +v -0.209118 1.127884 1.343771 +v -0.193531 1.127923 1.327048 +v -0.111639 1.146443 1.375024 +v -0.085948 1.145783 1.354331 +v -0.122844 1.138039 1.327927 +v -0.140275 1.139015 1.346150 +v -0.176411 1.128019 1.311900 +v -0.158664 1.127799 1.297020 +v -0.083449 1.138140 1.308582 +v -0.110752 1.134687 1.302749 +v -0.141194 1.126870 1.281108 +v -0.109718 1.126950 1.265571 +v -0.133042 1.122823 1.258381 +v -0.086436 1.127995 1.261388 +v -0.058378 1.139258 1.305924 +v -0.054157 1.146761 1.347453 +v -0.063819 1.128322 1.256366 +v -0.070018 1.151841 1.392129 +v -0.092552 1.151521 1.403082 +v -0.059105 1.155535 1.422518 +v -0.079933 1.154968 1.430446 +v -0.112917 1.151031 1.416553 +v -0.099424 1.154034 1.440023 +v -0.049658 1.158619 1.579095 +v -0.071628 1.157342 1.581064 +v -0.069808 1.156146 1.603032 +v -0.048387 1.157138 1.603118 +v -0.027961 1.157943 1.601832 +v -0.030123 1.159346 1.576893 +v -0.027925 1.155522 1.630324 +v -0.049572 1.154984 1.629670 +v -0.071166 1.154088 1.626597 +v -0.012246 1.159753 1.575058 +v -0.009258 1.158301 1.600580 +v -0.007277 1.155943 1.630069 +v -0.077977 1.158441 1.534366 +v -0.081630 1.158294 1.511021 +v -0.106123 1.156269 1.515743 +v -0.102812 1.156381 1.538039 +v -0.131735 1.153719 1.519661 +v -0.128821 1.153725 1.541861 +v -0.132441 1.153305 1.497830 +v -0.108749 1.155789 1.493689 +v -0.085868 1.157560 1.487607 +v -0.064030 1.158831 1.482986 +v -0.059202 1.159736 1.507279 +v -0.044009 1.159750 1.479188 +v -0.040157 1.160450 1.504009 +v -0.036675 1.160599 1.528310 +v -0.055963 1.159782 1.531140 +v -0.022606 1.160976 1.501050 +v -0.026414 1.160166 1.475538 +v -0.019031 1.161184 1.525756 +v -0.156765 1.150224 1.496612 +v -0.157621 1.150406 1.520988 +v -0.155072 1.150396 1.545678 +v -0.119121 1.153292 1.583983 +v -0.142418 1.150022 1.592474 +v -0.131950 1.149895 1.611984 +v -0.112517 1.152889 1.600937 +v -0.107287 1.152215 1.615819 +v -0.117881 1.149983 1.628826 +v -0.150066 1.150216 1.569939 +v -0.124587 1.153587 1.563797 +v -0.099056 1.156260 1.560341 +v -0.074501 1.158167 1.557945 +v -0.095158 1.155598 1.581432 +v -0.052589 1.159439 1.555068 +v -0.033287 1.160206 1.552531 +v -0.015576 1.160730 1.550279 +v -0.099428 1.150245 1.643343 +v -0.091690 1.153154 1.619669 +v -0.077831 1.150628 1.654502 +v -0.091102 1.156136 1.463825 +v -0.070708 1.157353 1.457228 +v -0.050513 1.158018 1.451795 +v -0.031834 1.158388 1.446949 +v -0.038732 1.155740 1.415815 +v -0.091493 1.154838 1.600127 +v -0.129154 1.152306 1.460366 +v -0.130150 1.152918 1.476988 +v -0.110463 1.154954 1.472113 +v -0.115859 1.153271 1.451626 +v -0.142469 1.150207 1.451778 +v -0.151630 1.150135 1.473290 +v -0.054358 1.151207 1.661309 +v -0.030029 1.151711 1.664804 +v -0.005886 1.151872 1.666051 +v -0.046893 1.152068 1.383360 +v -0.129562 1.150527 1.432826 +v -0.028867 1.110042 1.857170 +v -0.056631 1.109866 1.854262 +v -0.001809 1.110264 1.857654 +v -0.084073 1.110048 1.847902 +v -0.110182 1.110232 1.839453 +v -0.133959 1.110226 1.830328 +v -0.156101 1.110188 1.819959 +v -0.177298 1.110237 1.807771 +v -0.198334 1.110278 1.793611 +v -0.240743 1.109975 1.758612 +v -0.219971 1.110099 1.777294 +v -0.259194 1.110190 1.737357 +v -0.275337 1.110426 1.715203 +v -0.289211 1.110454 1.693845 +v -0.301044 1.110463 1.672433 +v -0.311038 1.110543 1.650103 +v -0.319742 1.110613 1.626261 +v -0.333508 1.110388 1.572932 +v -0.327672 1.110476 1.600293 +v -0.335935 1.110627 1.544906 +v -0.335966 1.110896 1.517522 +v -0.331620 1.110977 1.467807 +v -0.334632 1.110944 1.492092 +v -0.326577 1.111071 1.443864 +v -0.319596 1.111154 1.419442 +v -0.299354 1.110946 1.368132 +v -0.310732 1.111029 1.393731 +v -0.284833 1.111191 1.344039 +v -0.268757 1.111462 1.321887 +v -0.236013 1.111533 1.284239 +v -0.252727 1.111509 1.302108 +v -0.217858 1.111620 1.267841 +v -0.197849 1.111693 1.252190 +v -0.151268 1.111440 1.222563 +v -0.175546 1.111547 1.236591 +v -0.125340 1.111668 1.211615 +v -0.099302 1.111909 1.203160 +v -0.050696 1.111920 1.191976 +v -0.074711 1.111933 1.196593 +v -0.026382 1.111980 1.189392 +v -0.001007 1.112024 1.188498 +v 0.054082 1.111677 1.191922 +v 0.026196 1.111832 1.188993 +v 0.081514 1.111873 1.198321 +v 0.107565 1.112065 1.206808 +v 0.153435 1.111988 1.226339 +v 0.131313 1.112052 1.215956 +v 0.174606 1.112013 1.238539 +v 0.195636 1.112008 1.252725 +v 0.238141 1.111568 1.287844 +v 0.217323 1.111775 1.269093 +v 0.256582 1.111718 1.309167 +v 0.272685 1.111871 1.331372 +v 0.286515 1.111809 1.352734 +v 0.298299 1.111712 1.374126 +v 0.308247 1.111707 1.396430 +v 0.316908 1.111658 1.420247 +v 0.330630 1.111155 1.473556 +v 0.324820 1.111398 1.446186 +v 0.333019 1.111271 1.501661 +v 0.333005 1.111401 1.529116 +v 0.331639 1.111310 1.554531 +v 0.328601 1.111198 1.578756 +v 0.323543 1.111178 1.602643 +v 0.316557 1.111113 1.626987 +v 0.307729 1.110845 1.652580 +v 0.296359 1.110595 1.678103 +v 0.281783 1.110708 1.702252 +v 0.265639 1.110834 1.724476 +v 0.249600 1.110748 1.744245 +v 0.232905 1.110642 1.762066 +v 0.214773 1.110629 1.778426 +v 0.194820 1.110580 1.794018 +v 0.172653 1.110327 1.809525 +v 0.148477 1.110103 1.823484 +v 0.122511 1.110242 1.834465 +v 0.096397 1.110388 1.842970 +v 0.071799 1.110337 1.849552 +v 0.047807 1.110256 1.854166 +v 0.023509 1.110270 1.856755 +v -0.082223 0.834827 0.023350 +v 0.000000 0.838877 0.023350 +v 0.000000 0.837627 0.021258 +v -0.082101 0.833583 0.021258 +v -0.163657 0.822758 0.023350 +v -0.163413 0.821532 0.021258 +v -0.163657 0.822758 0.041561 +v -0.082223 0.834827 0.041561 +v 0.000000 0.838877 0.041561 +v -0.243510 0.802745 0.023350 +v -0.243148 0.801549 0.021258 +v -0.321025 0.775021 0.023350 +v -0.320546 0.773866 0.021258 +v -0.321025 0.775021 0.041561 +v -0.243510 0.802745 0.041561 +v -0.395440 0.739814 0.023350 +v -0.394850 0.738712 0.021258 +v -0.466055 0.697500 0.023350 +v -0.465361 0.696461 0.021258 +v -0.466055 0.697500 0.041561 +v -0.395440 0.739814 0.041561 +v -0.532171 0.648453 0.023350 +v -0.531379 0.647486 0.021258 +v -0.593175 0.593175 0.023350 +v -0.592291 0.592291 0.021258 +v -0.593175 0.593175 0.041561 +v -0.532171 0.648453 0.041561 +v -0.648453 0.532171 0.023350 +v -0.647486 0.531379 0.021258 +v -0.697500 0.466055 0.023350 +v -0.696461 0.465361 0.021258 +v -0.697500 0.466055 0.041561 +v -0.648453 0.532171 0.041561 +v -0.739814 0.395440 0.023350 +v -0.738712 0.394850 0.021258 +v -0.775021 0.321025 0.023350 +v -0.773866 0.320546 0.021258 +v -0.775021 0.321025 0.041561 +v -0.739814 0.395440 0.041561 +v -0.802745 0.243510 0.023350 +v -0.801549 0.243148 0.021258 +v -0.822758 0.163657 0.023350 +v -0.821532 0.163413 0.021258 +v -0.822758 0.163657 0.041561 +v -0.802745 0.243510 0.041561 +v -0.834827 0.082223 0.023350 +v -0.833583 0.082101 0.021258 +v -0.838877 0.000000 0.023350 +v -0.837626 0.000000 0.021258 +v -0.838876 0.000000 0.041561 +v -0.834827 0.082223 0.041561 +v -0.834827 -0.082223 0.023350 +v -0.833583 -0.082101 0.021258 +v -0.822758 -0.163657 0.023350 +v -0.821532 -0.163413 0.021258 +v -0.822758 -0.163657 0.041561 +v -0.834827 -0.082223 0.041561 +v -0.802745 -0.243510 0.023350 +v -0.801549 -0.243148 0.021258 +v -0.775021 -0.321024 0.023350 +v -0.773866 -0.320546 0.021258 +v -0.775021 -0.321024 0.041561 +v -0.802745 -0.243510 0.041561 +v -0.739814 -0.395439 0.023350 +v -0.738712 -0.394850 0.021258 +v -0.697500 -0.466055 0.023350 +v -0.696461 -0.465361 0.021258 +v -0.697500 -0.466055 0.041561 +v -0.739814 -0.395439 0.041561 +v -0.648453 -0.532171 0.023350 +v -0.647486 -0.531379 0.021258 +v -0.593175 -0.593175 0.023350 +v -0.592291 -0.592291 0.021258 +v -0.593175 -0.593175 0.041561 +v -0.648453 -0.532171 0.041561 +v -0.532171 -0.648453 0.023350 +v -0.531379 -0.647486 0.021258 +v -0.466055 -0.697500 0.023350 +v -0.465361 -0.696461 0.021258 +v -0.466055 -0.697500 0.041561 +v -0.532171 -0.648453 0.041561 +v -0.395439 -0.739814 0.023350 +v -0.394850 -0.738712 0.021258 +v -0.321024 -0.775021 0.023350 +v -0.320546 -0.773866 0.021258 +v -0.321024 -0.775021 0.041561 +v -0.395439 -0.739814 0.041561 +v -0.243510 -0.802745 0.023350 +v -0.243147 -0.801549 0.021258 +v -0.163657 -0.822758 0.023350 +v -0.163413 -0.821532 0.021258 +v -0.163657 -0.822758 0.041561 +v -0.243510 -0.802745 0.041561 +v -0.082223 -0.834827 0.023350 +v -0.082101 -0.833583 0.021258 +v 0.000000 -0.838877 0.023350 +v 0.000000 -0.837626 0.021258 +v 0.000000 -0.838876 0.041561 +v -0.082223 -0.834827 0.041561 +v 0.082224 -0.834827 0.023350 +v 0.082101 -0.833583 0.021258 +v 0.163657 -0.822758 0.023350 +v 0.163413 -0.821532 0.021258 +v 0.163657 -0.822758 0.041561 +v 0.082224 -0.834827 0.041561 +v 0.243511 -0.802745 0.023350 +v 0.243148 -0.801549 0.021258 +v 0.321025 -0.775021 0.023350 +v 0.320547 -0.773866 0.021258 +v 0.321025 -0.775021 0.041561 +v 0.243511 -0.802745 0.041561 +v 0.395440 -0.739814 0.023350 +v 0.394851 -0.738712 0.021258 +v 0.466056 -0.697500 0.023350 +v 0.465361 -0.696461 0.021258 +v 0.466056 -0.697500 0.041561 +v 0.395440 -0.739814 0.041561 +v 0.532171 -0.648452 0.023350 +v 0.531379 -0.647486 0.021258 +v 0.593175 -0.593175 0.023350 +v 0.592291 -0.592291 0.021258 +v 0.593175 -0.593175 0.041561 +v 0.532171 -0.648452 0.041561 +v 0.648453 -0.532171 0.023350 +v 0.647487 -0.531379 0.021258 +v 0.697501 -0.466055 0.023350 +v 0.696461 -0.465360 0.021258 +v 0.697501 -0.466055 0.041561 +v 0.648453 -0.532171 0.041561 +v 0.739815 -0.395439 0.023350 +v 0.738712 -0.394850 0.021258 +v 0.775021 -0.321024 0.023350 +v 0.773866 -0.320546 0.021258 +v 0.775021 -0.321024 0.041561 +v 0.739815 -0.395439 0.041561 +v 0.802746 -0.243510 0.023350 +v 0.801549 -0.243147 0.021258 +v 0.822758 -0.163656 0.023350 +v 0.821532 -0.163412 0.021258 +v 0.822758 -0.163656 0.041561 +v 0.802746 -0.243510 0.041561 +v 0.834827 -0.082223 0.023350 +v 0.833584 -0.082100 0.021258 +v 0.838877 0.000001 0.023350 +v 0.837627 0.000001 0.021258 +v 0.838876 0.000001 0.041561 +v 0.834827 -0.082223 0.041561 +v 0.834827 0.082224 0.023350 +v 0.833583 0.082102 0.021258 +v 0.822758 0.163658 0.023350 +v 0.821532 0.163414 0.021258 +v 0.822758 0.163658 0.041561 +v 0.834827 0.082224 0.041561 +v 0.802745 0.243511 0.023350 +v 0.801549 0.243148 0.021258 +v 0.775020 0.321025 0.023350 +v 0.773866 0.320547 0.021258 +v 0.775020 0.321025 0.041561 +v 0.802745 0.243511 0.041561 +v 0.739814 0.395440 0.023350 +v 0.738711 0.394851 0.021258 +v 0.697500 0.466056 0.023350 +v 0.696460 0.465362 0.021258 +v 0.697500 0.466056 0.041561 +v 0.739814 0.395440 0.041561 +v 0.648452 0.532173 0.023350 +v 0.647486 0.531380 0.021258 +v 0.593174 0.593176 0.023350 +v 0.592290 0.592292 0.021258 +v 0.593174 0.593176 0.041561 +v 0.648452 0.532173 0.041561 +v 0.532170 0.648453 0.023350 +v 0.531377 0.647487 0.021258 +v 0.466054 0.697501 0.023350 +v 0.465360 0.696462 0.021258 +v 0.466054 0.697501 0.041561 +v 0.532170 0.648453 0.041561 +v 0.395438 0.739815 0.023350 +v 0.394849 0.738713 0.021258 +v 0.321023 0.775021 0.023350 +v 0.320545 0.773866 0.021258 +v 0.321023 0.775021 0.041561 +v 0.395438 0.739815 0.041561 +v 0.243509 0.802746 0.023350 +v 0.243146 0.801550 0.021258 +v 0.163656 0.822758 0.023350 +v 0.163412 0.821532 0.021258 +v 0.163656 0.822758 0.041561 +v 0.243509 0.802746 0.041561 +v 0.082223 0.834827 0.023350 +v 0.082100 0.833584 0.021258 +v 0.082223 0.834827 0.041561 +v -0.079270 0.804841 0.180317 +v -0.157778 0.793204 0.180317 +v -0.154623 0.777339 0.179421 +v -0.077684 0.788743 0.179421 +v 0.000000 0.808744 0.180317 +v 0.000000 0.792568 0.179421 +v 0.000000 0.824549 0.179129 +v -0.080819 0.820569 0.179129 +v -0.160862 0.808706 0.179129 +v -0.234764 0.773911 0.180317 +v -0.309493 0.747182 0.180317 +v -0.303303 0.732238 0.179421 +v -0.230068 0.758432 0.179421 +v -0.239352 0.789035 0.179129 +v -0.315542 0.761784 0.179129 +v -0.381235 0.713240 0.180317 +v -0.449315 0.672446 0.180317 +v -0.440328 0.658996 0.179421 +v -0.373610 0.698975 0.179421 +v -0.388686 0.727179 0.179129 +v -0.458096 0.685588 0.179129 +v -0.513057 0.625160 0.180317 +v -0.571868 0.571868 0.180317 +v -0.560430 0.560430 0.179421 +v -0.502795 0.612656 0.179421 +v -0.523082 0.637378 0.179129 +v -0.583044 0.583044 0.179129 +v -0.625160 0.513057 0.180317 +v -0.672446 0.449315 0.180317 +v -0.658996 0.440328 0.179421 +v -0.612656 0.502795 0.179421 +v -0.637378 0.523082 0.179129 +v -0.685588 0.458096 0.179129 +v -0.713240 0.381235 0.180317 +v -0.747182 0.309493 0.180317 +v -0.732238 0.303303 0.179421 +v -0.698975 0.373610 0.179421 +v -0.727179 0.388686 0.179129 +v -0.761784 0.315542 0.179129 +v -0.773911 0.234764 0.180317 +v -0.793204 0.157778 0.180317 +v -0.777339 0.154623 0.179421 +v -0.758432 0.230068 0.179421 +v -0.789035 0.239352 0.179129 +v -0.808706 0.160862 0.179129 +v -0.804841 0.079270 0.180317 +v -0.808744 0.000000 0.180317 +v -0.792568 0.000000 0.179421 +v -0.788743 0.077685 0.179421 +v -0.820570 0.080819 0.179129 +v -0.824549 0.000000 0.179129 +v -0.804841 -0.079270 0.180317 +v -0.793204 -0.157778 0.180317 +v -0.777339 -0.154622 0.179421 +v -0.788743 -0.077684 0.179421 +v -0.820570 -0.080819 0.179129 +v -0.808706 -0.160862 0.179129 +v -0.773911 -0.234763 0.180317 +v -0.747182 -0.309493 0.180317 +v -0.732238 -0.303303 0.179421 +v -0.758432 -0.230068 0.179421 +v -0.789035 -0.239351 0.179129 +v -0.761784 -0.315542 0.179129 +v -0.713240 -0.381235 0.180317 +v -0.672446 -0.449315 0.180317 +v -0.658996 -0.440328 0.179421 +v -0.698975 -0.373610 0.179421 +v -0.727179 -0.388686 0.179129 +v -0.685588 -0.458096 0.179129 +v -0.625160 -0.513057 0.180317 +v -0.571868 -0.571868 0.180317 +v -0.560430 -0.560430 0.179421 +v -0.612656 -0.502795 0.179421 +v -0.637378 -0.523082 0.179129 +v -0.583044 -0.583044 0.179129 +v -0.513057 -0.625160 0.180317 +v -0.449315 -0.672446 0.180317 +v -0.440328 -0.658996 0.179421 +v -0.502795 -0.612656 0.179421 +v -0.523082 -0.637378 0.179129 +v -0.458096 -0.685588 0.179129 +v -0.381235 -0.713240 0.180317 +v -0.309493 -0.747182 0.180317 +v -0.303303 -0.732238 0.179421 +v -0.373610 -0.698975 0.179421 +v -0.388686 -0.727179 0.179129 +v -0.315542 -0.761784 0.179129 +v -0.234763 -0.773911 0.180317 +v -0.157778 -0.793204 0.180317 +v -0.154622 -0.777339 0.179421 +v -0.230068 -0.758432 0.179421 +v -0.239351 -0.789035 0.179129 +v -0.160862 -0.808706 0.179129 +v -0.079270 -0.804841 0.180317 +v 0.000000 -0.808744 0.180317 +v 0.000000 -0.792568 0.179421 +v -0.077684 -0.788743 0.179421 +v -0.080819 -0.820569 0.179129 +v 0.000000 -0.824549 0.179129 +v 0.079270 -0.804840 0.180317 +v 0.157779 -0.793204 0.180317 +v 0.154623 -0.777339 0.179421 +v 0.077685 -0.788743 0.179421 +v 0.080819 -0.820569 0.179129 +v 0.160862 -0.808706 0.179129 +v 0.234764 -0.773911 0.180317 +v 0.309494 -0.747182 0.180317 +v 0.303304 -0.732238 0.179421 +v 0.230068 -0.758432 0.179421 +v 0.239352 -0.789035 0.179129 +v 0.315542 -0.761784 0.179129 +v 0.381236 -0.713240 0.180317 +v 0.449315 -0.672446 0.180317 +v 0.440328 -0.658996 0.179421 +v 0.373611 -0.698974 0.179421 +v 0.388686 -0.727179 0.179129 +v 0.458096 -0.685587 0.179129 +v 0.513057 -0.625160 0.180317 +v 0.571869 -0.571868 0.180317 +v 0.560431 -0.560430 0.179421 +v 0.502795 -0.612656 0.179421 +v 0.523084 -0.637377 0.179129 +v 0.583045 -0.583044 0.179129 +v 0.625161 -0.513056 0.180317 +v 0.672446 -0.449314 0.180317 +v 0.658997 -0.440327 0.179421 +v 0.612657 -0.502793 0.179421 +v 0.637378 -0.523082 0.179129 +v 0.685588 -0.458095 0.179129 +v 0.713241 -0.381235 0.180317 +v 0.747182 -0.309493 0.180317 +v 0.732238 -0.303303 0.179421 +v 0.698975 -0.373610 0.179421 +v 0.727179 -0.388685 0.179129 +v 0.761785 -0.315541 0.179129 +v 0.773911 -0.234763 0.180317 +v 0.793205 -0.157778 0.180317 +v 0.777340 -0.154622 0.179421 +v 0.758432 -0.230067 0.179421 +v 0.789036 -0.239351 0.179129 +v 0.808706 -0.160861 0.179129 +v 0.804841 -0.079269 0.180317 +v 0.808744 0.000001 0.180317 +v 0.792568 0.000001 0.179421 +v 0.788743 -0.077684 0.179421 +v 0.820570 -0.080818 0.179129 +v 0.824549 0.000001 0.179129 +v 0.804840 0.079271 0.180317 +v 0.793204 0.157779 0.180317 +v 0.777339 0.154623 0.179421 +v 0.788743 0.077685 0.179421 +v 0.820569 0.080820 0.179129 +v 0.808706 0.160863 0.179129 +v 0.773911 0.234764 0.180317 +v 0.747182 0.309494 0.180317 +v 0.732237 0.303304 0.179421 +v 0.758431 0.230069 0.179421 +v 0.789035 0.239352 0.179129 +v 0.761784 0.315543 0.179129 +v 0.713240 0.381236 0.180317 +v 0.672445 0.449316 0.180317 +v 0.658996 0.440329 0.179421 +v 0.698974 0.373611 0.179421 +v 0.727178 0.388687 0.179129 +v 0.685587 0.458097 0.179129 +v 0.625160 0.513057 0.180317 +v 0.571868 0.571869 0.180317 +v 0.560429 0.560431 0.179421 +v 0.612656 0.502796 0.179421 +v 0.637377 0.523084 0.179129 +v 0.583043 0.583045 0.179129 +v 0.513056 0.625161 0.180317 +v 0.449314 0.672447 0.180317 +v 0.440327 0.658997 0.179421 +v 0.502793 0.612657 0.179421 +v 0.523081 0.637378 0.179129 +v 0.458095 0.685588 0.179129 +v 0.381234 0.713241 0.180317 +v 0.309492 0.747183 0.180317 +v 0.303302 0.732238 0.179421 +v 0.373609 0.698975 0.179421 +v 0.388685 0.727180 0.179129 +v 0.315541 0.761785 0.179129 +v 0.234762 0.773911 0.180317 +v 0.157777 0.793205 0.180317 +v 0.154622 0.777340 0.179421 +v 0.230067 0.758432 0.179421 +v 0.239350 0.789036 0.179129 +v 0.160861 0.808706 0.179129 +v 0.079269 0.804841 0.180317 +v 0.077684 0.788743 0.179421 +v 0.080819 0.820570 0.179129 +v -0.076802 0.779782 0.176732 +v -0.152866 0.768508 0.176732 +v -0.076238 0.774054 0.172694 +v -0.151743 0.762863 0.172694 +v 0.000000 0.777808 0.172694 +v 0.000000 0.783564 0.176732 +v -0.081593 0.828424 0.175562 +v 0.000000 0.832442 0.175562 +v -0.081913 0.831672 0.170032 +v 0.000000 0.835706 0.170032 +v -0.163038 0.819648 0.170032 +v -0.162401 0.816446 0.175562 +v -0.227454 0.749816 0.176732 +v -0.299858 0.723919 0.176732 +v -0.225783 0.744307 0.172694 +v -0.297655 0.718601 0.172694 +v -0.241642 0.796588 0.175562 +v -0.242590 0.799711 0.170032 +v -0.319811 0.772091 0.170032 +v -0.318562 0.769076 0.175562 +v -0.369366 0.691034 0.176732 +v -0.435326 0.651510 0.176732 +v -0.366652 0.685957 0.172694 +v -0.432128 0.646724 0.172694 +v -0.392406 0.734139 0.175562 +v -0.393945 0.737018 0.170032 +v -0.464294 0.694864 0.170032 +v -0.462480 0.692150 0.175562 +v -0.497083 0.605696 0.176732 +v -0.554063 0.554063 0.176732 +v -0.493431 0.601246 0.172694 +v -0.549994 0.549994 0.172694 +v -0.528089 0.643478 0.175562 +v -0.530160 0.646001 0.170032 +v -0.590933 0.590933 0.170032 +v -0.588625 0.588625 0.175562 +v -0.605696 0.497083 0.176732 +v -0.651510 0.435326 0.176732 +v -0.601246 0.493431 0.172694 +v -0.646724 0.432128 0.172694 +v -0.643478 0.528089 0.175562 +v -0.646002 0.530160 0.170032 +v -0.694864 0.464294 0.170032 +v -0.692150 0.462480 0.175562 +v -0.691034 0.369366 0.176732 +v -0.723919 0.299857 0.176732 +v -0.685957 0.366652 0.172694 +v -0.718601 0.297655 0.172694 +v -0.734139 0.392406 0.175562 +v -0.737018 0.393945 0.170032 +v -0.772091 0.319811 0.170032 +v -0.769076 0.318562 0.175562 +v -0.749816 0.227454 0.176732 +v -0.768508 0.152866 0.176732 +v -0.744307 0.225783 0.172694 +v -0.762863 0.151743 0.172694 +v -0.796588 0.241642 0.175562 +v -0.799711 0.242590 0.170032 +v -0.819648 0.163038 0.170032 +v -0.816447 0.162402 0.175562 +v -0.779782 0.076802 0.176732 +v -0.783564 0.000000 0.176732 +v -0.774054 0.076238 0.172694 +v -0.777808 0.000000 0.172694 +v -0.828424 0.081593 0.175562 +v -0.831672 0.081913 0.170032 +v -0.835706 0.000000 0.170032 +v -0.832442 0.000000 0.175562 +v -0.779782 -0.076802 0.176732 +v -0.768508 -0.152866 0.176732 +v -0.774054 -0.076238 0.172694 +v -0.762863 -0.151743 0.172694 +v -0.828424 -0.081593 0.175562 +v -0.831672 -0.081913 0.170032 +v -0.819648 -0.163038 0.170032 +v -0.816447 -0.162401 0.175562 +v -0.749816 -0.227454 0.176732 +v -0.723919 -0.299857 0.176732 +v -0.744307 -0.225783 0.172694 +v -0.718601 -0.297654 0.172694 +v -0.796588 -0.241642 0.175562 +v -0.799711 -0.242590 0.170032 +v -0.772091 -0.319811 0.170032 +v -0.769076 -0.318562 0.175562 +v -0.691034 -0.369366 0.176732 +v -0.651510 -0.435326 0.176732 +v -0.685957 -0.366652 0.172694 +v -0.646724 -0.432127 0.172694 +v -0.734139 -0.392406 0.175562 +v -0.737018 -0.393945 0.170032 +v -0.694864 -0.464294 0.170032 +v -0.692150 -0.462480 0.175562 +v -0.605696 -0.497083 0.176732 +v -0.554063 -0.554063 0.176732 +v -0.601247 -0.493431 0.172694 +v -0.549994 -0.549994 0.172694 +v -0.643478 -0.528089 0.175562 +v -0.646002 -0.530160 0.170032 +v -0.590933 -0.590933 0.170032 +v -0.588625 -0.588625 0.175562 +v -0.497083 -0.605696 0.176732 +v -0.435326 -0.651510 0.176732 +v -0.493431 -0.601246 0.172694 +v -0.432127 -0.646724 0.172694 +v -0.528089 -0.643478 0.175562 +v -0.530159 -0.646002 0.170032 +v -0.464294 -0.694864 0.170032 +v -0.462480 -0.692150 0.175562 +v -0.369366 -0.691034 0.176732 +v -0.299857 -0.723919 0.176732 +v -0.366652 -0.685957 0.172694 +v -0.297654 -0.718601 0.172694 +v -0.392406 -0.734139 0.175562 +v -0.393945 -0.737018 0.170032 +v -0.319811 -0.772091 0.170032 +v -0.318562 -0.769076 0.175562 +v -0.227454 -0.749816 0.176732 +v -0.152866 -0.768508 0.176732 +v -0.225783 -0.744307 0.172694 +v -0.151743 -0.762863 0.172694 +v -0.241642 -0.796588 0.175562 +v -0.242590 -0.799711 0.170032 +v -0.163038 -0.819648 0.170032 +v -0.162401 -0.816446 0.175562 +v -0.076802 -0.779782 0.176732 +v 0.000000 -0.783564 0.176732 +v -0.076238 -0.774054 0.172694 +v 0.000000 -0.777808 0.172694 +v -0.081592 -0.828424 0.175562 +v -0.081912 -0.831672 0.170032 +v 0.000000 -0.835706 0.170032 +v 0.000000 -0.832442 0.175562 +v 0.076802 -0.779782 0.176732 +v 0.152866 -0.768508 0.176732 +v 0.076238 -0.774054 0.172694 +v 0.151743 -0.762862 0.172694 +v 0.081593 -0.828424 0.175562 +v 0.081913 -0.831672 0.170032 +v 0.163039 -0.819648 0.170032 +v 0.162402 -0.816446 0.175562 +v 0.227455 -0.749815 0.176732 +v 0.299858 -0.723919 0.176732 +v 0.225784 -0.744307 0.172694 +v 0.297655 -0.718601 0.172694 +v 0.241643 -0.796588 0.175562 +v 0.242590 -0.799711 0.170032 +v 0.319812 -0.772091 0.170032 +v 0.318562 -0.769075 0.175562 +v 0.369366 -0.691034 0.176732 +v 0.435326 -0.651510 0.176732 +v 0.366653 -0.685957 0.172694 +v 0.432128 -0.646723 0.172694 +v 0.392407 -0.734139 0.175562 +v 0.393945 -0.737018 0.170032 +v 0.464294 -0.694863 0.170032 +v 0.462481 -0.692149 0.175562 +v 0.497083 -0.605696 0.176732 +v 0.554065 -0.554063 0.176732 +v 0.493431 -0.601246 0.172694 +v 0.549994 -0.549994 0.172694 +v 0.528089 -0.643478 0.175562 +v 0.530160 -0.646001 0.170032 +v 0.590933 -0.590932 0.170032 +v 0.588625 -0.588624 0.175562 +v 0.605697 -0.497082 0.176732 +v 0.651510 -0.435325 0.176732 +v 0.601247 -0.493431 0.172694 +v 0.646724 -0.432127 0.172694 +v 0.643479 -0.528089 0.175562 +v 0.646002 -0.530159 0.170032 +v 0.694864 -0.464293 0.170032 +v 0.692150 -0.462480 0.175562 +v 0.691034 -0.369365 0.176732 +v 0.723919 -0.299857 0.176732 +v 0.685958 -0.366652 0.172694 +v 0.718601 -0.297654 0.172694 +v 0.734140 -0.392406 0.175562 +v 0.737018 -0.393944 0.170032 +v 0.772092 -0.319810 0.170032 +v 0.769076 -0.318561 0.175562 +v 0.749816 -0.227454 0.176732 +v 0.768509 -0.152865 0.176732 +v 0.744307 -0.225783 0.172694 +v 0.762863 -0.151742 0.172694 +v 0.796588 -0.241642 0.175562 +v 0.799711 -0.242589 0.170032 +v 0.819648 -0.163038 0.170032 +v 0.816447 -0.162401 0.175562 +v 0.779782 -0.076801 0.176732 +v 0.783564 0.000001 0.176732 +v 0.774054 -0.076237 0.172694 +v 0.777808 0.000001 0.172694 +v 0.828424 -0.081592 0.175562 +v 0.831672 -0.081912 0.170032 +v 0.835706 0.000001 0.170032 +v 0.832442 0.000001 0.175562 +v 0.779782 0.076803 0.176732 +v 0.768508 0.152867 0.176732 +v 0.774054 0.076239 0.172694 +v 0.762862 0.151744 0.172694 +v 0.828424 0.081594 0.175562 +v 0.831672 0.081913 0.170032 +v 0.819648 0.163039 0.170032 +v 0.816446 0.162402 0.175562 +v 0.749815 0.227455 0.176732 +v 0.723919 0.299858 0.176732 +v 0.744307 0.225784 0.172694 +v 0.718600 0.297655 0.172694 +v 0.796587 0.241643 0.175562 +v 0.799711 0.242591 0.170032 +v 0.772091 0.319812 0.170032 +v 0.769075 0.318563 0.175562 +v 0.691034 0.369367 0.176732 +v 0.651509 0.435326 0.176732 +v 0.685957 0.366653 0.172694 +v 0.646723 0.432128 0.172694 +v 0.734139 0.392407 0.175562 +v 0.737017 0.393946 0.170032 +v 0.694863 0.464295 0.170032 +v 0.692149 0.462481 0.175562 +v 0.605696 0.497084 0.176732 +v 0.554063 0.554065 0.176732 +v 0.601246 0.493432 0.172694 +v 0.549992 0.549994 0.172694 +v 0.643478 0.528091 0.175562 +v 0.646001 0.530160 0.170032 +v 0.590932 0.590934 0.170032 +v 0.588624 0.588626 0.175562 +v 0.497082 0.605697 0.176732 +v 0.435325 0.651510 0.176732 +v 0.493430 0.601247 0.172694 +v 0.432127 0.646724 0.172694 +v 0.528089 0.643479 0.175562 +v 0.530159 0.646002 0.170032 +v 0.464293 0.694864 0.170032 +v 0.462479 0.692150 0.175562 +v 0.369365 0.691034 0.176732 +v 0.299856 0.723919 0.176732 +v 0.366651 0.685958 0.172694 +v 0.297654 0.718601 0.172694 +v 0.392405 0.734140 0.175562 +v 0.393944 0.737018 0.170032 +v 0.319810 0.772092 0.170032 +v 0.318561 0.769076 0.175562 +v 0.227453 0.749816 0.176732 +v 0.152865 0.768509 0.176732 +v 0.225782 0.744307 0.172694 +v 0.151742 0.762863 0.172694 +v 0.241641 0.796588 0.175562 +v 0.242589 0.799712 0.170032 +v 0.163037 0.819648 0.170032 +v 0.162400 0.816447 0.175562 +v 0.076801 0.779782 0.176732 +v 0.076237 0.774054 0.172694 +v 0.081592 0.828424 0.175562 +v 0.081912 0.831672 0.170032 +v -0.082101 0.833584 0.162951 +v 0.000000 0.837627 0.162951 +v -0.082193 0.834516 0.140939 +v 0.000000 0.838564 0.140939 +v -0.163596 0.822451 0.140939 +v -0.163413 0.821532 0.162951 +v -0.243148 0.801550 0.162951 +v -0.243420 0.802447 0.140939 +v -0.320905 0.774732 0.140939 +v -0.320546 0.773866 0.162951 +v -0.394850 0.738712 0.162951 +v -0.395292 0.739539 0.140939 +v -0.465882 0.697240 0.140939 +v -0.465361 0.696461 0.162951 +v -0.531379 0.647486 0.162951 +v -0.531973 0.648211 0.140939 +v -0.592954 0.592954 0.140939 +v -0.592291 0.592291 0.162951 +v -0.647486 0.531379 0.162951 +v -0.648211 0.531973 0.140939 +v -0.697240 0.465882 0.140939 +v -0.696461 0.465361 0.162951 +v -0.738712 0.394850 0.162951 +v -0.739539 0.395292 0.140939 +v -0.774732 0.320905 0.140939 +v -0.773866 0.320546 0.162951 +v -0.801550 0.243148 0.162951 +v -0.802446 0.243420 0.140939 +v -0.822451 0.163596 0.140939 +v -0.821532 0.163413 0.162951 +v -0.833584 0.082101 0.162951 +v -0.834517 0.082193 0.140939 +v -0.838564 0.000000 0.140939 +v -0.837627 0.000000 0.162951 +v -0.833584 -0.082101 0.162951 +v -0.834517 -0.082193 0.140939 +v -0.822451 -0.163596 0.140939 +v -0.821532 -0.163413 0.162951 +v -0.801550 -0.243148 0.162951 +v -0.802446 -0.243420 0.140939 +v -0.774732 -0.320905 0.140939 +v -0.773866 -0.320546 0.162951 +v -0.738712 -0.394850 0.162951 +v -0.739539 -0.395292 0.140939 +v -0.697240 -0.465882 0.140939 +v -0.696461 -0.465361 0.162951 +v -0.647487 -0.531379 0.162951 +v -0.648211 -0.531973 0.140939 +v -0.592954 -0.592954 0.140939 +v -0.592291 -0.592291 0.162951 +v -0.531379 -0.647487 0.162951 +v -0.531973 -0.648211 0.140939 +v -0.465882 -0.697240 0.140939 +v -0.465361 -0.696461 0.162951 +v -0.394850 -0.738712 0.162951 +v -0.395292 -0.739539 0.140939 +v -0.320905 -0.774732 0.140939 +v -0.320546 -0.773866 0.162951 +v -0.243148 -0.801550 0.162951 +v -0.243420 -0.802447 0.140939 +v -0.163596 -0.822451 0.140939 +v -0.163413 -0.821532 0.162951 +v -0.082101 -0.833584 0.162951 +v -0.082193 -0.834516 0.140939 +v 0.000000 -0.838564 0.140939 +v 0.000000 -0.837627 0.162951 +v 0.082101 -0.833584 0.162951 +v 0.082193 -0.834516 0.140939 +v 0.163596 -0.822451 0.140939 +v 0.163413 -0.821532 0.162951 +v 0.243148 -0.801549 0.162951 +v 0.243420 -0.802446 0.140939 +v 0.320905 -0.774732 0.140939 +v 0.320547 -0.773866 0.162951 +v 0.394851 -0.738712 0.162951 +v 0.395293 -0.739538 0.140939 +v 0.465882 -0.697240 0.140939 +v 0.465361 -0.696461 0.162951 +v 0.531380 -0.647486 0.162951 +v 0.531973 -0.648211 0.140939 +v 0.592955 -0.592954 0.140939 +v 0.592292 -0.592291 0.162951 +v 0.647487 -0.531379 0.162951 +v 0.648211 -0.531972 0.140939 +v 0.697241 -0.465881 0.140939 +v 0.696461 -0.465361 0.162951 +v 0.738713 -0.394850 0.162951 +v 0.739539 -0.395292 0.140939 +v 0.774732 -0.320904 0.140939 +v 0.773866 -0.320546 0.162951 +v 0.801550 -0.243147 0.162951 +v 0.802447 -0.243419 0.140939 +v 0.822451 -0.163595 0.140939 +v 0.821532 -0.163412 0.162951 +v 0.833584 -0.082100 0.162951 +v 0.834517 -0.082192 0.140939 +v 0.838564 0.000001 0.140939 +v 0.837627 0.000001 0.162951 +v 0.833584 0.082102 0.162951 +v 0.834516 0.082194 0.140939 +v 0.822451 0.163597 0.140939 +v 0.821532 0.163414 0.162951 +v 0.801549 0.243149 0.162951 +v 0.802446 0.243421 0.140939 +v 0.774732 0.320906 0.140939 +v 0.773866 0.320547 0.162951 +v 0.738712 0.394851 0.162951 +v 0.739538 0.395293 0.140939 +v 0.697240 0.465883 0.140939 +v 0.696460 0.465362 0.162951 +v 0.647486 0.531380 0.162951 +v 0.648210 0.531974 0.140939 +v 0.592953 0.592955 0.140939 +v 0.592291 0.592292 0.162951 +v 0.531377 0.647487 0.162951 +v 0.531972 0.648212 0.140939 +v 0.465881 0.697241 0.140939 +v 0.465360 0.696462 0.162951 +v 0.394849 0.738713 0.162951 +v 0.395291 0.739539 0.140939 +v 0.320904 0.774733 0.140939 +v 0.320545 0.773867 0.162951 +v 0.243147 0.801550 0.162951 +v 0.243419 0.802447 0.140939 +v 0.163595 0.822452 0.140939 +v 0.163412 0.821532 0.162951 +v 0.082100 0.833584 0.162951 +v 0.082192 0.834517 0.140939 +v -0.082223 0.834827 0.090616 +v -0.163657 0.822758 0.090616 +v 0.000000 0.838877 0.090616 +v -0.243510 0.802745 0.090616 +v -0.321025 0.775021 0.090616 +v -0.395440 0.739814 0.090616 +v -0.466055 0.697500 0.090616 +v -0.532171 0.648453 0.090616 +v -0.593175 0.593175 0.090616 +v -0.648453 0.532171 0.090616 +v -0.697500 0.466055 0.090616 +v -0.739814 0.395439 0.090616 +v -0.775021 0.321025 0.090616 +v -0.802745 0.243510 0.090616 +v -0.822758 0.163657 0.090616 +v -0.834827 0.082223 0.090616 +v -0.838877 0.000000 0.090616 +v -0.834827 -0.082223 0.090616 +v -0.822758 -0.163657 0.090616 +v -0.802745 -0.243510 0.090616 +v -0.775021 -0.321024 0.090616 +v -0.739814 -0.395439 0.090616 +v -0.697500 -0.466055 0.090616 +v -0.648453 -0.532171 0.090616 +v -0.593175 -0.593175 0.090616 +v -0.532171 -0.648453 0.090616 +v -0.466055 -0.697500 0.090616 +v -0.395439 -0.739814 0.090616 +v -0.321024 -0.775021 0.090616 +v -0.243510 -0.802745 0.090616 +v -0.163657 -0.822758 0.090616 +v -0.082223 -0.834827 0.090616 +v 0.000000 -0.838877 0.090616 +v 0.082224 -0.834827 0.090616 +v 0.163657 -0.822758 0.090616 +v 0.243511 -0.802745 0.090616 +v 0.321025 -0.775021 0.090616 +v 0.395440 -0.739814 0.090616 +v 0.466056 -0.697500 0.090616 +v 0.532171 -0.648452 0.090616 +v 0.593175 -0.593175 0.090616 +v 0.648453 -0.532171 0.090616 +v 0.697501 -0.466055 0.090616 +v 0.739815 -0.395439 0.090616 +v 0.775021 -0.321024 0.090616 +v 0.802746 -0.243510 0.090616 +v 0.822758 -0.163656 0.090616 +v 0.834827 -0.082223 0.090616 +v 0.838877 0.000001 0.090616 +v 0.834827 0.082224 0.090616 +v 0.822758 0.163658 0.090616 +v 0.802745 0.243511 0.090616 +v 0.775020 0.321025 0.090616 +v 0.739814 0.395440 0.090616 +v 0.697500 0.466056 0.090616 +v 0.648452 0.532173 0.090616 +v 0.593174 0.593176 0.090616 +v 0.532170 0.648453 0.090616 +v 0.466054 0.697501 0.090616 +v 0.395438 0.739815 0.090616 +v 0.321023 0.775021 0.090616 +v 0.243509 0.802746 0.090616 +v 0.163656 0.822758 0.090616 +v 0.082223 0.834827 0.090616 +v -0.081733 0.829851 0.020561 +v -0.162681 0.817854 0.020561 +v 0.000000 0.833877 0.020561 +v 0.081733 0.829852 0.020561 +v 0.162680 0.817854 0.020561 +v 0.242058 0.797961 0.020561 +v 0.319110 0.770402 0.020561 +v 0.393082 0.735405 0.020561 +v 0.463277 0.693343 0.020561 +v 0.528998 0.644588 0.020561 +v 0.589639 0.589640 0.020561 +v 0.644587 0.529001 0.020561 +v 0.693342 0.463278 0.020561 +v 0.735404 0.393083 0.020561 +v 0.770401 0.319112 0.020561 +v 0.797960 0.242060 0.020561 +v 0.817854 0.162682 0.020561 +v 0.829851 0.081734 0.020561 +v 0.833877 0.000001 0.020561 +v 0.829852 -0.081733 0.020561 +v 0.817854 -0.162681 0.020561 +v 0.797961 -0.242058 0.020561 +v 0.770402 -0.319110 0.020561 +v 0.735405 -0.393082 0.020561 +v 0.693343 -0.463277 0.020561 +v 0.644588 -0.529000 0.020561 +v 0.589640 -0.589639 0.020561 +v 0.529001 -0.644587 0.020561 +v 0.463278 -0.693343 0.020561 +v 0.393083 -0.735405 0.020561 +v 0.319111 -0.770401 0.020561 +v 0.242059 -0.797961 0.020561 +v 0.162682 -0.817854 0.020561 +v 0.081734 -0.829851 0.020561 +v 0.000000 -0.833876 0.020561 +v -0.081733 -0.829852 0.020561 +v -0.162681 -0.817854 0.020561 +v -0.242059 -0.797961 0.020561 +v -0.319111 -0.770401 0.020561 +v -0.393082 -0.735405 0.020561 +v -0.463277 -0.693343 0.020561 +v -0.529000 -0.644588 0.020561 +v -0.589639 -0.589639 0.020561 +v -0.644588 -0.529000 0.020561 +v -0.693343 -0.463277 0.020561 +v -0.735405 -0.393082 0.020561 +v -0.770401 -0.319111 0.020561 +v -0.797961 -0.242059 0.020561 +v -0.817854 -0.162681 0.020561 +v -0.829851 -0.081733 0.020561 +v -0.833876 0.000000 0.020561 +v -0.829852 0.081733 0.020561 +v -0.817854 0.162681 0.020561 +v -0.797961 0.242059 0.020561 +v -0.770401 0.319111 0.020561 +v -0.735405 0.393083 0.020561 +v -0.693343 0.463278 0.020561 +v -0.644588 0.529000 0.020561 +v -0.589639 0.589639 0.020561 +v -0.529000 0.644587 0.020561 +v -0.463278 0.693343 0.020561 +v -0.393083 0.735405 0.020561 +v -0.319111 0.770401 0.020561 +v -0.242059 0.797961 0.020561 +v -0.075607 0.767652 0.167754 +v -0.150488 0.756553 0.167754 +v -0.075191 0.763430 0.163403 +v -0.149660 0.752392 0.163403 +v 0.000000 0.767132 0.163403 +v 0.000000 0.771375 0.167754 +v -0.223916 0.738151 0.167754 +v -0.295193 0.712658 0.167754 +v -0.222684 0.734091 0.163403 +v -0.293569 0.708738 0.163403 +v -0.363620 0.680284 0.167754 +v -0.428554 0.641375 0.167754 +v -0.361620 0.676542 0.163403 +v -0.426197 0.637847 0.163403 +v -0.489350 0.596274 0.167754 +v -0.545444 0.545444 0.167754 +v -0.486659 0.592994 0.163403 +v -0.542444 0.542444 0.163403 +v -0.596274 0.489350 0.167754 +v -0.641375 0.428554 0.167754 +v -0.592994 0.486659 0.163403 +v -0.637847 0.426197 0.163403 +v -0.680284 0.363620 0.167754 +v -0.712658 0.295193 0.167754 +v -0.676542 0.361620 0.163403 +v -0.708738 0.293569 0.163403 +v -0.738151 0.223916 0.167754 +v -0.756553 0.150488 0.167754 +v -0.734091 0.222685 0.163403 +v -0.752392 0.149660 0.163403 +v -0.767652 0.075607 0.167754 +v -0.771375 0.000000 0.167754 +v -0.763430 0.075191 0.163403 +v -0.767132 0.000000 0.163403 +v -0.767652 -0.075607 0.167754 +v -0.756553 -0.150488 0.167754 +v -0.763430 -0.075191 0.163403 +v -0.752392 -0.149660 0.163403 +v -0.738151 -0.223916 0.167754 +v -0.712657 -0.295193 0.167754 +v -0.734091 -0.222684 0.163403 +v -0.708738 -0.293569 0.163403 +v -0.680284 -0.363620 0.167754 +v -0.641375 -0.428553 0.167754 +v -0.676542 -0.361620 0.163403 +v -0.637847 -0.426196 0.163403 +v -0.596274 -0.489350 0.167754 +v -0.545444 -0.545444 0.167754 +v -0.592994 -0.486659 0.163403 +v -0.542444 -0.542444 0.163403 +v -0.489350 -0.596274 0.167754 +v -0.428553 -0.641375 0.167754 +v -0.486659 -0.592994 0.163403 +v -0.426196 -0.637847 0.163403 +v -0.363620 -0.680284 0.167754 +v -0.295193 -0.712658 0.167754 +v -0.361620 -0.676542 0.163403 +v -0.293569 -0.708738 0.163403 +v -0.223916 -0.738151 0.167754 +v -0.150488 -0.756553 0.167754 +v -0.222684 -0.734091 0.163403 +v -0.149660 -0.752392 0.163403 +v -0.075607 -0.767652 0.167754 +v 0.000000 -0.771375 0.167754 +v -0.075191 -0.763429 0.163403 +v 0.000000 -0.767132 0.163403 +v 0.075607 -0.767652 0.167754 +v 0.150488 -0.756553 0.167754 +v 0.075192 -0.763429 0.163403 +v 0.149661 -0.752392 0.163403 +v 0.223916 -0.738151 0.167754 +v 0.295193 -0.712657 0.167754 +v 0.222685 -0.734091 0.163403 +v 0.293570 -0.708738 0.163403 +v 0.363620 -0.680284 0.167754 +v 0.428554 -0.641374 0.167754 +v 0.361620 -0.676542 0.163403 +v 0.426197 -0.637847 0.163403 +v 0.489350 -0.596273 0.167754 +v 0.545446 -0.545444 0.167754 +v 0.486659 -0.592994 0.163403 +v 0.542445 -0.542444 0.163403 +v 0.596274 -0.489350 0.167754 +v 0.641375 -0.428553 0.167754 +v 0.592995 -0.486658 0.163403 +v 0.637847 -0.426196 0.163403 +v 0.680284 -0.363619 0.167754 +v 0.712658 -0.295192 0.167754 +v 0.676543 -0.361619 0.163403 +v 0.708738 -0.293569 0.163403 +v 0.738151 -0.223915 0.167754 +v 0.756553 -0.150487 0.167754 +v 0.734092 -0.222684 0.163403 +v 0.752392 -0.149660 0.163403 +v 0.767652 -0.075606 0.167754 +v 0.771375 0.000001 0.167754 +v 0.763430 -0.075191 0.163403 +v 0.767132 0.000001 0.163403 +v 0.767652 0.075608 0.167754 +v 0.756553 0.150489 0.167754 +v 0.763429 0.075192 0.163403 +v 0.752392 0.149661 0.163403 +v 0.738151 0.223917 0.167754 +v 0.712657 0.295194 0.167754 +v 0.734091 0.222685 0.163403 +v 0.708737 0.293570 0.163403 +v 0.680284 0.363621 0.167754 +v 0.641374 0.428554 0.167754 +v 0.676542 0.361621 0.163403 +v 0.637847 0.426197 0.163403 +v 0.596273 0.489351 0.167754 +v 0.545443 0.545446 0.167754 +v 0.592994 0.486659 0.163403 +v 0.542444 0.542445 0.163403 +v 0.489349 0.596274 0.167754 +v 0.428553 0.641375 0.167754 +v 0.486658 0.592995 0.163403 +v 0.426196 0.637848 0.163403 +v 0.363619 0.680284 0.167754 +v 0.295192 0.712658 0.167754 +v 0.361619 0.676543 0.163403 +v 0.293568 0.708738 0.163403 +v 0.223915 0.738152 0.167754 +v 0.150487 0.756553 0.167754 +v 0.222683 0.734092 0.163403 +v 0.149659 0.752393 0.163403 +v 0.075607 0.767652 0.167754 +v 0.075191 0.763430 0.163403 +v -0.066115 0.671276 0.159905 +v 0.000000 0.674532 0.159905 +v 0.000000 0.771291 0.159905 +v -0.075599 0.767568 0.159905 +v -0.131595 0.661571 0.159905 +v -0.150472 0.756471 0.159905 +v -0.110775 0.556903 0.159905 +v -0.055655 0.565073 0.159905 +v 0.000000 0.567814 0.159905 +v -0.195804 0.645479 0.159905 +v -0.223892 0.738071 0.159905 +v -0.258132 0.623186 0.159905 +v -0.295161 0.712580 0.159905 +v -0.217293 0.524593 0.159905 +v -0.164826 0.543359 0.159905 +v -0.317969 0.594877 0.159905 +v -0.363580 0.680210 0.159905 +v -0.374750 0.560852 0.159905 +v -0.428507 0.641305 0.159905 +v -0.315461 0.472121 0.159905 +v -0.267663 0.500762 0.159905 +v -0.427914 0.521414 0.159905 +v -0.489296 0.596209 0.159905 +v -0.476967 0.476967 0.159905 +v -0.545385 0.545385 0.159905 +v -0.401506 0.401506 0.159905 +v -0.360214 0.438922 0.159905 +v -0.521414 0.427914 0.159905 +v -0.596209 0.489297 0.159905 +v -0.560852 0.374750 0.159905 +v -0.641305 0.428507 0.159905 +v -0.472121 0.315461 0.159905 +v -0.438922 0.360214 0.159905 +v -0.594877 0.317969 0.159905 +v -0.680210 0.363580 0.159905 +v -0.623186 0.258132 0.159905 +v -0.712580 0.295161 0.159905 +v -0.524592 0.217293 0.159905 +v -0.500762 0.267663 0.159905 +v -0.645479 0.195804 0.159905 +v -0.738071 0.223892 0.159905 +v -0.661571 0.131595 0.159905 +v -0.756471 0.150472 0.159905 +v -0.556903 0.110775 0.159905 +v -0.543359 0.164826 0.159905 +v -0.671276 0.066115 0.159905 +v -0.767569 0.075599 0.159905 +v -0.674532 0.000000 0.159905 +v -0.771291 0.000000 0.159905 +v -0.567814 0.000000 0.159905 +v -0.565073 0.055655 0.159905 +v -0.671276 -0.066115 0.159905 +v -0.767569 -0.075599 0.159905 +v -0.661571 -0.131595 0.159905 +v -0.756471 -0.150472 0.159905 +v -0.556903 -0.110775 0.159905 +v -0.565073 -0.055655 0.159905 +v -0.645479 -0.195804 0.159905 +v -0.738071 -0.223892 0.159905 +v -0.623186 -0.258132 0.159905 +v -0.712580 -0.295161 0.159905 +v -0.524592 -0.217293 0.159905 +v -0.543359 -0.164826 0.159905 +v -0.594877 -0.317969 0.159905 +v -0.680210 -0.363580 0.159905 +v -0.560852 -0.374750 0.159905 +v -0.641305 -0.428507 0.159905 +v -0.472121 -0.315461 0.159905 +v -0.500762 -0.267663 0.159905 +v -0.521414 -0.427914 0.159905 +v -0.596209 -0.489297 0.159905 +v -0.476967 -0.476966 0.159905 +v -0.545385 -0.545385 0.159905 +v -0.401506 -0.401506 0.159905 +v -0.438922 -0.360214 0.159905 +v -0.427914 -0.521414 0.159905 +v -0.489296 -0.596209 0.159905 +v -0.374750 -0.560852 0.159905 +v -0.428507 -0.641305 0.159905 +v -0.315461 -0.472121 0.159905 +v -0.360214 -0.438922 0.159905 +v -0.317969 -0.594877 0.159905 +v -0.363580 -0.680210 0.159905 +v -0.258132 -0.623186 0.159905 +v -0.295161 -0.712580 0.159905 +v -0.217293 -0.524592 0.159905 +v -0.267663 -0.500762 0.159905 +v -0.195804 -0.645479 0.159905 +v -0.223892 -0.738071 0.159905 +v -0.131595 -0.661571 0.159905 +v -0.150471 -0.756471 0.159905 +v -0.110775 -0.556903 0.159905 +v -0.164826 -0.543357 0.159905 +v -0.066115 -0.671276 0.159905 +v -0.075599 -0.767568 0.159905 +v 0.000000 -0.674531 0.159905 +v 0.000000 -0.771291 0.159905 +v 0.000000 -0.567814 0.159905 +v -0.055655 -0.565073 0.159905 +v 0.066115 -0.671276 0.159905 +v 0.075599 -0.767568 0.159905 +v 0.131595 -0.661571 0.159905 +v 0.150472 -0.756471 0.159905 +v 0.110775 -0.556903 0.159905 +v 0.055655 -0.565073 0.159905 +v 0.195804 -0.645479 0.159905 +v 0.223892 -0.738071 0.159905 +v 0.258133 -0.623186 0.159905 +v 0.295161 -0.712580 0.159905 +v 0.217294 -0.524592 0.159905 +v 0.164826 -0.543357 0.159905 +v 0.317969 -0.594876 0.159905 +v 0.363581 -0.680210 0.159905 +v 0.374751 -0.560852 0.159905 +v 0.428507 -0.641305 0.159905 +v 0.315461 -0.472120 0.159905 +v 0.267663 -0.500762 0.159905 +v 0.427914 -0.521414 0.159905 +v 0.489297 -0.596209 0.159905 +v 0.476967 -0.476966 0.159905 +v 0.545386 -0.545385 0.159905 +v 0.401506 -0.401505 0.159905 +v 0.360214 -0.438921 0.159905 +v 0.521414 -0.427913 0.159905 +v 0.596209 -0.489296 0.159905 +v 0.560853 -0.374750 0.159905 +v 0.641306 -0.428507 0.159905 +v 0.472121 -0.315460 0.159905 +v 0.438922 -0.360213 0.159905 +v 0.594877 -0.317968 0.159905 +v 0.680211 -0.363580 0.159905 +v 0.623186 -0.258132 0.159905 +v 0.712581 -0.295160 0.159905 +v 0.524593 -0.217293 0.159905 +v 0.500762 -0.267662 0.159905 +v 0.645479 -0.195804 0.159905 +v 0.738072 -0.223891 0.159905 +v 0.661571 -0.131594 0.159905 +v 0.756471 -0.150471 0.159905 +v 0.556903 -0.110775 0.159905 +v 0.543359 -0.164825 0.159905 +v 0.671276 -0.066114 0.159905 +v 0.767569 -0.075598 0.159905 +v 0.674532 0.000001 0.159905 +v 0.771291 0.000001 0.159905 +v 0.567814 0.000001 0.159905 +v 0.565073 -0.055654 0.159905 +v 0.671276 0.066116 0.159905 +v 0.767568 0.075600 0.159905 +v 0.661571 0.131596 0.159905 +v 0.756471 0.150472 0.159905 +v 0.556903 0.110776 0.159905 +v 0.565073 0.055656 0.159905 +v 0.645479 0.195805 0.159905 +v 0.738071 0.223893 0.159905 +v 0.623185 0.258133 0.159905 +v 0.712580 0.295162 0.159905 +v 0.524592 0.217294 0.159905 +v 0.543357 0.164827 0.159905 +v 0.594876 0.317970 0.159905 +v 0.680210 0.363581 0.159905 +v 0.560852 0.374751 0.159905 +v 0.641305 0.428508 0.159905 +v 0.472120 0.315462 0.159905 +v 0.500762 0.267664 0.159905 +v 0.521414 0.427915 0.159905 +v 0.596209 0.489298 0.159905 +v 0.476966 0.476967 0.159905 +v 0.545385 0.545386 0.159905 +v 0.401505 0.401506 0.159905 +v 0.438921 0.360214 0.159905 +v 0.427913 0.521414 0.159905 +v 0.489296 0.596210 0.159905 +v 0.374749 0.560853 0.159905 +v 0.428506 0.641306 0.159905 +v 0.315460 0.472121 0.159905 +v 0.360213 0.438922 0.159905 +v 0.317968 0.594877 0.159905 +v 0.363580 0.680211 0.159905 +v 0.258132 0.623186 0.159905 +v 0.295160 0.712581 0.159905 +v 0.217292 0.524593 0.159905 +v 0.267662 0.500763 0.159905 +v 0.195803 0.645479 0.159905 +v 0.223891 0.738072 0.159905 +v 0.131594 0.661571 0.159905 +v 0.150471 0.756471 0.159905 +v 0.110774 0.556904 0.159905 +v 0.164825 0.543359 0.159905 +v 0.066114 0.671276 0.159905 +v 0.075598 0.767569 0.159905 +v 0.055654 0.565073 0.159905 +v -0.075271 0.764241 0.161134 +v -0.149819 0.753192 0.161134 +v 0.000000 0.767948 0.161134 +v -0.222921 0.734871 0.161134 +v -0.293881 0.709491 0.161134 +v -0.362004 0.677261 0.161134 +v -0.426649 0.638525 0.161134 +v -0.487176 0.593624 0.161134 +v -0.543022 0.543022 0.161134 +v -0.593624 0.487176 0.161134 +v -0.638525 0.426649 0.161134 +v -0.677261 0.362004 0.161134 +v -0.709491 0.293881 0.161134 +v -0.734871 0.222921 0.161134 +v -0.753192 0.149819 0.161134 +v -0.764241 0.075271 0.161134 +v -0.767947 0.000000 0.161134 +v -0.764241 -0.075271 0.161134 +v -0.753192 -0.149819 0.161134 +v -0.734871 -0.222921 0.161134 +v -0.709491 -0.293881 0.161134 +v -0.677261 -0.362004 0.161134 +v -0.638525 -0.426649 0.161134 +v -0.593624 -0.487176 0.161134 +v -0.543022 -0.543022 0.161134 +v -0.487176 -0.593624 0.161134 +v -0.426649 -0.638525 0.161134 +v -0.362004 -0.677261 0.161134 +v -0.293881 -0.709491 0.161134 +v -0.222921 -0.734871 0.161134 +v -0.149819 -0.753192 0.161134 +v -0.075271 -0.764241 0.161134 +v 0.000000 -0.767947 0.161134 +v 0.075272 -0.764241 0.161134 +v 0.149820 -0.753191 0.161134 +v 0.222921 -0.734871 0.161134 +v 0.293882 -0.709491 0.161134 +v 0.362005 -0.677261 0.161134 +v 0.426650 -0.638525 0.161134 +v 0.487176 -0.593624 0.161134 +v 0.543022 -0.543020 0.161134 +v 0.545385 -0.545385 0.159905 +v 0.593625 -0.487175 0.161134 +v 0.638525 -0.426649 0.161134 +v 0.677262 -0.362004 0.161134 +v 0.709491 -0.293881 0.161134 +v 0.734872 -0.222920 0.161134 +v 0.753192 -0.149819 0.161134 +v 0.764241 -0.075271 0.161134 +v 0.767947 0.000001 0.161134 +v 0.764241 0.075272 0.161134 +v 0.753191 0.149820 0.161134 +v 0.734871 0.222922 0.161134 +v 0.709491 0.293882 0.161134 +v 0.677261 0.362005 0.161134 +v 0.638524 0.426650 0.161134 +v 0.593624 0.487177 0.161134 +v 0.543020 0.543022 0.161134 +v 0.487175 0.593625 0.161134 +v 0.426648 0.638525 0.161134 +v 0.362003 0.677262 0.161134 +v 0.293880 0.709491 0.161134 +v 0.222920 0.734872 0.161134 +v 0.149818 0.753192 0.161134 +v 0.075271 0.764241 0.161134 +v -0.043243 0.439052 0.159905 +v 0.000000 0.441181 0.159905 +v -0.086070 0.432704 0.159905 +v -0.065943 0.331520 0.160102 +v -0.033131 0.336383 0.160102 +v 0.000000 0.338015 0.160102 +v -0.128067 0.422179 0.159905 +v -0.168833 0.407598 0.159905 +v -0.129353 0.312285 0.160102 +v -0.098119 0.323456 0.160102 +v -0.207969 0.389082 0.159905 +v -0.245107 0.366829 0.159905 +v -0.187791 0.281049 0.160102 +v -0.159337 0.298099 0.160102 +v -0.279879 0.341034 0.159905 +v -0.311962 0.311962 0.159905 +v -0.239012 0.239012 0.160102 +v -0.214432 0.261286 0.160102 +v -0.341034 0.279879 0.159905 +v -0.366829 0.245107 0.159905 +v -0.281049 0.187791 0.160102 +v -0.261286 0.214432 0.160102 +v -0.389082 0.207969 0.159905 +v -0.407598 0.168833 0.159905 +v -0.312285 0.129353 0.160102 +v -0.298099 0.159337 0.160102 +v -0.422179 0.128067 0.159905 +v -0.432704 0.086070 0.159905 +v -0.331520 0.065944 0.160102 +v -0.323456 0.098119 0.160102 +v -0.439052 0.043243 0.159905 +v -0.441181 0.000000 0.159905 +v -0.338014 0.000000 0.160102 +v -0.336383 0.033131 0.160102 +v -0.439051 -0.043243 0.159905 +v -0.432704 -0.086070 0.159905 +v -0.331520 -0.065943 0.160102 +v -0.336383 -0.033131 0.160102 +v -0.422179 -0.128066 0.159905 +v -0.407598 -0.168832 0.159905 +v -0.312285 -0.129352 0.160102 +v -0.323456 -0.098119 0.160102 +v -0.389082 -0.207969 0.159905 +v -0.366829 -0.245107 0.159905 +v -0.281049 -0.187791 0.160102 +v -0.298099 -0.159337 0.160102 +v -0.341034 -0.279879 0.159905 +v -0.311962 -0.311962 0.159905 +v -0.239012 -0.239012 0.160102 +v -0.261286 -0.214431 0.160102 +v -0.279879 -0.341033 0.159905 +v -0.245107 -0.366828 0.159905 +v -0.187791 -0.281049 0.160102 +v -0.214432 -0.261285 0.160102 +v -0.207969 -0.389082 0.159905 +v -0.168833 -0.407598 0.159905 +v -0.129352 -0.312284 0.160102 +v -0.159337 -0.298098 0.160102 +v -0.128067 -0.422179 0.159905 +v -0.086070 -0.432704 0.159905 +v -0.065943 -0.331519 0.160102 +v -0.098119 -0.323456 0.160102 +v -0.043243 -0.439051 0.159905 +v 0.000000 -0.441181 0.159905 +v 0.000000 -0.338014 0.160102 +v -0.033131 -0.336383 0.160102 +v 0.043243 -0.439051 0.159905 +v 0.086070 -0.432704 0.159905 +v 0.065943 -0.331519 0.160102 +v 0.033131 -0.336383 0.160102 +v 0.128067 -0.422179 0.159905 +v 0.168833 -0.407598 0.159905 +v 0.129353 -0.312284 0.160102 +v 0.098119 -0.323456 0.160102 +v 0.207969 -0.389082 0.159905 +v 0.245107 -0.366828 0.159905 +v 0.187791 -0.281048 0.160102 +v 0.159337 -0.298098 0.160102 +v 0.279879 -0.341033 0.159905 +v 0.311962 -0.311962 0.159905 +v 0.239012 -0.239012 0.160102 +v 0.214432 -0.261285 0.160102 +v 0.341034 -0.279879 0.159905 +v 0.366829 -0.245107 0.159905 +v 0.281049 -0.187790 0.160102 +v 0.261286 -0.214431 0.160102 +v 0.389082 -0.207968 0.159905 +v 0.407598 -0.168832 0.159905 +v 0.312285 -0.129352 0.160102 +v 0.298099 -0.159337 0.160102 +v 0.422179 -0.128066 0.159905 +v 0.432704 -0.086070 0.159905 +v 0.331520 -0.065943 0.160102 +v 0.323456 -0.098119 0.160102 +v 0.439051 -0.043242 0.159905 +v 0.441181 0.000001 0.159905 +v 0.338014 0.000001 0.160102 +v 0.336383 -0.033130 0.160102 +v 0.439051 0.043243 0.159905 +v 0.432704 0.086071 0.159905 +v 0.331519 0.065944 0.160102 +v 0.336383 0.033131 0.160102 +v 0.422179 0.128067 0.159905 +v 0.407598 0.168833 0.159905 +v 0.312284 0.129353 0.160102 +v 0.323456 0.098120 0.160102 +v 0.389082 0.207969 0.159905 +v 0.366828 0.245108 0.159905 +v 0.281048 0.187791 0.160102 +v 0.298098 0.159338 0.160102 +v 0.341033 0.279880 0.159905 +v 0.311962 0.311963 0.159905 +v 0.239012 0.239013 0.160102 +v 0.261285 0.214432 0.160102 +v 0.279878 0.341034 0.159905 +v 0.245106 0.366829 0.159905 +v 0.187790 0.281049 0.160102 +v 0.214431 0.261286 0.160102 +v 0.207968 0.389083 0.159905 +v 0.168832 0.407598 0.159905 +v 0.129352 0.312285 0.160102 +v 0.159337 0.298099 0.160102 +v 0.128066 0.422179 0.159905 +v 0.086070 0.432704 0.159905 +v 0.065943 0.331520 0.160102 +v 0.098119 0.323456 0.160102 +v 0.043242 0.439052 0.159905 +v 0.033131 0.336383 0.160102 +v -0.029571 0.300242 0.160692 +v 0.000000 0.301698 0.160692 +v -0.058858 0.295901 0.160692 +v -0.058435 0.293775 0.163863 +v -0.029359 0.298084 0.163863 +v 0.000000 0.299530 0.163863 +v -0.087577 0.288704 0.160692 +v -0.115455 0.278733 0.160692 +v -0.114625 0.276730 0.163863 +v -0.086948 0.286629 0.163863 +v -0.142218 0.266071 0.160692 +v -0.167615 0.250853 0.160692 +v -0.166410 0.249050 0.163863 +v -0.141196 0.264159 0.163863 +v -0.191393 0.233213 0.160692 +v -0.213333 0.213333 0.160692 +v -0.211800 0.211800 0.163863 +v -0.190018 0.231537 0.163863 +v -0.233213 0.191393 0.160692 +v -0.250853 0.167615 0.160692 +v -0.249050 0.166410 0.163863 +v -0.231537 0.190018 0.163863 +v -0.266071 0.142218 0.160692 +v -0.278733 0.115455 0.160692 +v -0.276730 0.114625 0.163863 +v -0.264159 0.141196 0.163863 +v -0.288704 0.087578 0.160692 +v -0.295901 0.058859 0.160692 +v -0.293775 0.058436 0.163863 +v -0.286629 0.086948 0.163863 +v -0.300242 0.029571 0.160692 +v -0.301698 0.000000 0.160692 +v -0.299530 0.000000 0.163863 +v -0.298084 0.029359 0.163863 +v -0.300242 -0.029571 0.160692 +v -0.295901 -0.058858 0.160692 +v -0.293775 -0.058435 0.163863 +v -0.298084 -0.029359 0.163863 +v -0.288704 -0.087577 0.160692 +v -0.278733 -0.115455 0.160692 +v -0.276730 -0.114625 0.163863 +v -0.286629 -0.086948 0.163863 +v -0.266071 -0.142218 0.160692 +v -0.250853 -0.167614 0.160692 +v -0.249050 -0.166410 0.163863 +v -0.264159 -0.141196 0.163863 +v -0.233213 -0.191393 0.160692 +v -0.213333 -0.213333 0.160692 +v -0.211800 -0.211800 0.163863 +v -0.231537 -0.190017 0.163863 +v -0.191393 -0.233213 0.160692 +v -0.167615 -0.250853 0.160692 +v -0.166410 -0.249050 0.163863 +v -0.190018 -0.231537 0.163863 +v -0.142218 -0.266071 0.160692 +v -0.115455 -0.278733 0.160692 +v -0.114625 -0.276729 0.163863 +v -0.141196 -0.264159 0.163863 +v -0.087577 -0.288704 0.160692 +v -0.058858 -0.295901 0.160692 +v -0.058435 -0.293774 0.163863 +v -0.086948 -0.286629 0.163863 +v -0.029571 -0.300242 0.160692 +v 0.000000 -0.301698 0.160692 +v 0.000000 -0.299530 0.163863 +v -0.029359 -0.298084 0.163863 +v 0.029571 -0.300242 0.160692 +v 0.058858 -0.295901 0.160692 +v 0.058435 -0.293774 0.163863 +v 0.029359 -0.298084 0.163863 +v 0.087577 -0.288704 0.160692 +v 0.115455 -0.278733 0.160692 +v 0.114625 -0.276729 0.163863 +v 0.086948 -0.286629 0.163863 +v 0.142218 -0.266071 0.160692 +v 0.167615 -0.250853 0.160692 +v 0.166410 -0.249050 0.163863 +v 0.141196 -0.264159 0.163863 +v 0.191393 -0.233213 0.160692 +v 0.213333 -0.213333 0.160692 +v 0.211800 -0.211799 0.163863 +v 0.190018 -0.231537 0.163863 +v 0.233213 -0.191393 0.160692 +v 0.250853 -0.167614 0.160692 +v 0.249050 -0.166410 0.163863 +v 0.231537 -0.190017 0.163863 +v 0.266071 -0.142217 0.160692 +v 0.278733 -0.115454 0.160692 +v 0.276730 -0.114625 0.163863 +v 0.264159 -0.141195 0.163863 +v 0.288704 -0.087577 0.160692 +v 0.295901 -0.058858 0.160692 +v 0.293775 -0.058435 0.163863 +v 0.286629 -0.086948 0.163863 +v 0.300242 -0.029571 0.160692 +v 0.301698 0.000000 0.160692 +v 0.299530 0.000000 0.163863 +v 0.298084 -0.029358 0.163863 +v 0.300242 0.029572 0.160692 +v 0.295901 0.058859 0.160692 +v 0.293775 0.058436 0.163863 +v 0.298084 0.029359 0.163863 +v 0.288704 0.087578 0.160692 +v 0.278733 0.115455 0.160692 +v 0.276729 0.114626 0.163863 +v 0.286629 0.086948 0.163863 +v 0.266071 0.142218 0.160692 +v 0.250853 0.167615 0.160692 +v 0.249050 0.166410 0.163863 +v 0.264159 0.141196 0.163863 +v 0.233213 0.191394 0.160692 +v 0.213332 0.213333 0.160692 +v 0.211799 0.211800 0.163863 +v 0.231537 0.190018 0.163863 +v 0.191393 0.233214 0.160692 +v 0.167614 0.250853 0.160692 +v 0.166410 0.249050 0.163863 +v 0.190017 0.231538 0.163863 +v 0.142217 0.266071 0.160692 +v 0.115454 0.278733 0.160692 +v 0.114625 0.276730 0.163863 +v 0.141195 0.264159 0.163863 +v 0.087577 0.288704 0.160692 +v 0.058858 0.295901 0.160692 +v 0.058435 0.293775 0.163863 +v 0.086947 0.286629 0.163863 +v 0.029571 0.300242 0.160692 +v 0.029358 0.298084 0.163863 +v -0.029288 0.297365 0.171805 +v 0.000000 0.298807 0.171805 +v -0.058294 0.293066 0.171805 +v -0.058294 0.293066 0.190138 +v -0.029288 0.297365 0.190138 +v 0.000000 0.298807 0.190138 +v -0.086738 0.285938 0.171805 +v -0.114349 0.276062 0.171805 +v -0.114349 0.276062 0.190138 +v -0.086738 0.285938 0.190138 +v -0.140855 0.263522 0.171805 +v -0.166008 0.248449 0.171805 +v -0.166008 0.248449 0.190138 +v -0.140855 0.263522 0.190138 +v -0.189559 0.230979 0.171805 +v -0.211289 0.211289 0.171805 +v -0.211289 0.211289 0.190138 +v -0.189559 0.230979 0.190138 +v -0.230978 0.189559 0.171805 +v -0.248449 0.166009 0.171805 +v -0.248449 0.166009 0.190138 +v -0.230978 0.189559 0.190138 +v -0.263521 0.140855 0.171805 +v -0.276062 0.114349 0.171805 +v -0.276062 0.114349 0.190138 +v -0.263521 0.140855 0.190138 +v -0.285937 0.086738 0.171805 +v -0.293066 0.058295 0.171805 +v -0.293066 0.058295 0.190138 +v -0.285937 0.086738 0.190138 +v -0.297365 0.029288 0.171805 +v -0.298807 0.000000 0.171805 +v -0.298807 0.000000 0.190138 +v -0.297365 0.029288 0.190138 +v -0.297365 -0.029288 0.171805 +v -0.293066 -0.058294 0.171805 +v -0.293066 -0.058294 0.190138 +v -0.297365 -0.029288 0.190138 +v -0.285937 -0.086738 0.171805 +v -0.276062 -0.114348 0.171805 +v -0.276062 -0.114348 0.190138 +v -0.285937 -0.086738 0.190138 +v -0.263521 -0.140855 0.171805 +v -0.248449 -0.166008 0.171805 +v -0.248449 -0.166008 0.190138 +v -0.263521 -0.140855 0.190138 +v -0.230979 -0.189559 0.171805 +v -0.211289 -0.211288 0.171805 +v -0.211289 -0.211288 0.190138 +v -0.230979 -0.189559 0.190138 +v -0.189559 -0.230978 0.171805 +v -0.166008 -0.248449 0.171805 +v -0.166008 -0.248449 0.190138 +v -0.189559 -0.230978 0.190138 +v -0.140855 -0.263521 0.171805 +v -0.114349 -0.276062 0.171805 +v -0.114349 -0.276062 0.190138 +v -0.140855 -0.263521 0.190138 +v -0.086738 -0.285937 0.171805 +v -0.058294 -0.293066 0.171805 +v -0.058294 -0.293066 0.190138 +v -0.086738 -0.285937 0.190138 +v -0.029288 -0.297365 0.171805 +v 0.000000 -0.298807 0.171805 +v 0.000000 -0.298807 0.190138 +v -0.029288 -0.297365 0.190138 +v 0.029288 -0.297365 0.171805 +v 0.058294 -0.293066 0.171805 +v 0.058294 -0.293066 0.190138 +v 0.029288 -0.297365 0.190138 +v 0.086738 -0.285937 0.171805 +v 0.114349 -0.276062 0.171805 +v 0.114349 -0.276062 0.190138 +v 0.086738 -0.285937 0.190138 +v 0.140855 -0.263521 0.171805 +v 0.166008 -0.248449 0.171805 +v 0.166008 -0.248449 0.190138 +v 0.140855 -0.263521 0.190138 +v 0.189559 -0.230978 0.171805 +v 0.211289 -0.211288 0.171805 +v 0.211289 -0.211288 0.190138 +v 0.189559 -0.230978 0.190138 +v 0.230978 -0.189559 0.171805 +v 0.248449 -0.166008 0.171805 +v 0.248449 -0.166008 0.190138 +v 0.230978 -0.189559 0.190138 +v 0.263521 -0.140855 0.171805 +v 0.276062 -0.114348 0.171805 +v 0.276062 -0.114348 0.190138 +v 0.263521 -0.140855 0.190138 +v 0.285937 -0.086738 0.171805 +v 0.293066 -0.058294 0.171805 +v 0.293066 -0.058294 0.190138 +v 0.285937 -0.086738 0.190138 +v 0.297365 -0.029287 0.171805 +v 0.298807 0.000000 0.171805 +v 0.298807 0.000000 0.190138 +v 0.297365 -0.029287 0.190138 +v 0.297365 0.029288 0.171805 +v 0.293066 0.058295 0.171805 +v 0.293066 0.058295 0.190138 +v 0.297365 0.029288 0.190138 +v 0.285937 0.086739 0.171805 +v 0.276062 0.114349 0.171805 +v 0.276062 0.114349 0.190138 +v 0.285937 0.086739 0.190138 +v 0.263521 0.140856 0.171805 +v 0.248449 0.166009 0.171805 +v 0.248449 0.166009 0.190138 +v 0.263521 0.140856 0.190138 +v 0.230978 0.189560 0.171805 +v 0.211288 0.211289 0.171805 +v 0.211288 0.211289 0.190138 +v 0.230978 0.189560 0.190138 +v 0.189559 0.230979 0.171805 +v 0.166008 0.248450 0.171805 +v 0.166008 0.248450 0.190138 +v 0.189559 0.230979 0.190138 +v 0.140855 0.263522 0.171805 +v 0.114348 0.276062 0.171805 +v 0.114348 0.276062 0.190138 +v 0.140855 0.263522 0.190138 +v 0.086738 0.285938 0.171805 +v 0.058294 0.293066 0.171805 +v 0.058294 0.293066 0.190138 +v 0.086738 0.285938 0.190138 +v 0.029288 0.297365 0.171805 +v 0.029288 0.297365 0.190138 +v -0.029703 0.301575 0.342229 +v 0.000000 0.303037 0.342229 +v 0.000000 0.299865 0.325097 +v -0.029392 0.298418 0.325097 +v -0.059120 0.297215 0.342229 +v -0.058501 0.294103 0.325097 +v -0.060356 0.303430 0.353987 +v -0.030324 0.307881 0.353987 +v 0.000000 0.309375 0.353987 +v -0.087966 0.289985 0.342229 +v -0.087045 0.286950 0.325097 +v -0.115967 0.279970 0.342229 +v -0.114753 0.277039 0.325097 +v -0.118392 0.285825 0.353987 +v -0.089806 0.296050 0.353987 +v -0.142849 0.267252 0.342229 +v -0.141354 0.264454 0.325097 +v -0.168359 0.251966 0.342229 +v -0.166596 0.249329 0.325097 +v -0.171879 0.257236 0.353987 +v -0.145836 0.272841 0.353987 +v -0.192243 0.234248 0.342229 +v -0.190230 0.231796 0.325097 +v -0.214280 0.214280 0.342229 +v -0.212036 0.212037 0.325097 +v -0.218761 0.218761 0.353987 +v -0.196263 0.239147 0.353987 +v -0.234248 0.192243 0.342229 +v -0.231796 0.190230 0.325097 +v -0.251966 0.168359 0.342229 +v -0.249328 0.166596 0.325097 +v -0.257235 0.171879 0.353987 +v -0.239147 0.196263 0.353987 +v -0.267252 0.142849 0.342229 +v -0.264454 0.141354 0.325097 +v -0.279970 0.115968 0.342229 +v -0.277039 0.114753 0.325097 +v -0.285825 0.118393 0.353987 +v -0.272841 0.145837 0.353987 +v -0.289985 0.087966 0.342229 +v -0.286949 0.087045 0.325097 +v -0.297215 0.059120 0.342229 +v -0.294103 0.058501 0.325097 +v -0.303430 0.060356 0.353987 +v -0.296049 0.089806 0.353987 +v -0.301575 0.029703 0.342229 +v -0.298417 0.029392 0.325097 +v -0.303037 0.000000 0.342229 +v -0.299865 0.000000 0.325097 +v -0.309374 0.000000 0.353987 +v -0.307881 0.030324 0.353987 +v -0.301575 -0.029702 0.342229 +v -0.298417 -0.029391 0.325097 +v -0.297215 -0.059119 0.342229 +v -0.294103 -0.058500 0.325097 +v -0.303430 -0.060356 0.353987 +v -0.307881 -0.030323 0.353987 +v -0.289985 -0.087966 0.342229 +v -0.286949 -0.087045 0.325097 +v -0.279970 -0.115967 0.342229 +v -0.277039 -0.114753 0.325097 +v -0.285825 -0.118392 0.353987 +v -0.296049 -0.089805 0.353987 +v -0.267252 -0.142849 0.342229 +v -0.264454 -0.141353 0.325097 +v -0.251966 -0.168358 0.342229 +v -0.249328 -0.166596 0.325097 +v -0.257235 -0.171879 0.353987 +v -0.272841 -0.145836 0.353987 +v -0.234248 -0.192242 0.342229 +v -0.231796 -0.190230 0.325097 +v -0.214280 -0.214280 0.342229 +v -0.212036 -0.212036 0.325097 +v -0.218761 -0.218761 0.353987 +v -0.239147 -0.196263 0.353987 +v -0.192243 -0.234248 0.342229 +v -0.190230 -0.231796 0.325097 +v -0.168359 -0.251966 0.342229 +v -0.166596 -0.249328 0.325097 +v -0.171879 -0.257235 0.353987 +v -0.196263 -0.239147 0.353987 +v -0.142849 -0.267252 0.342229 +v -0.141354 -0.264454 0.325097 +v -0.115967 -0.279970 0.342229 +v -0.114753 -0.277039 0.325097 +v -0.118392 -0.285825 0.353987 +v -0.145836 -0.272841 0.353987 +v -0.087966 -0.289985 0.342229 +v -0.087045 -0.286949 0.325097 +v -0.059120 -0.297214 0.342229 +v -0.058501 -0.294103 0.325097 +v -0.060356 -0.303430 0.353987 +v -0.089806 -0.296049 0.353987 +v -0.029702 -0.301574 0.342229 +v -0.029392 -0.298417 0.325097 +v 0.000000 -0.303037 0.342229 +v 0.000000 -0.299865 0.325097 +v 0.000000 -0.309374 0.353987 +v -0.030324 -0.307881 0.353987 +v 0.029703 -0.301574 0.342229 +v 0.029392 -0.298417 0.325097 +v 0.059120 -0.297214 0.342229 +v 0.058501 -0.294103 0.325097 +v 0.060356 -0.303430 0.353987 +v 0.030324 -0.307881 0.353987 +v 0.087966 -0.289985 0.342229 +v 0.087045 -0.286949 0.325097 +v 0.115967 -0.279970 0.342229 +v 0.114753 -0.277039 0.325097 +v 0.118393 -0.285824 0.353987 +v 0.089806 -0.296049 0.353987 +v 0.142849 -0.267252 0.342229 +v 0.141354 -0.264454 0.325097 +v 0.168359 -0.251966 0.342229 +v 0.166596 -0.249328 0.325097 +v 0.171879 -0.257235 0.353987 +v 0.145836 -0.272840 0.353987 +v 0.192243 -0.234248 0.342229 +v 0.190230 -0.231796 0.325097 +v 0.214280 -0.214279 0.342229 +v 0.212036 -0.212036 0.325097 +v 0.218761 -0.218760 0.353987 +v 0.196263 -0.239146 0.353987 +v 0.234248 -0.192242 0.342229 +v 0.231796 -0.190230 0.325097 +v 0.251966 -0.168358 0.342229 +v 0.249328 -0.166596 0.325097 +v 0.257235 -0.171879 0.353987 +v 0.239147 -0.196262 0.353987 +v 0.267252 -0.142849 0.342229 +v 0.264454 -0.141353 0.325097 +v 0.279970 -0.115967 0.342229 +v 0.277039 -0.114753 0.325097 +v 0.285825 -0.118392 0.353987 +v 0.272841 -0.145836 0.353987 +v 0.289985 -0.087966 0.342229 +v 0.286949 -0.087045 0.325097 +v 0.297215 -0.059119 0.342229 +v 0.294103 -0.058500 0.325097 +v 0.303430 -0.060355 0.353987 +v 0.296049 -0.089805 0.353987 +v 0.301575 -0.029702 0.342229 +v 0.298417 -0.029391 0.325097 +v 0.303037 0.000000 0.342229 +v 0.299865 0.000000 0.325097 +v 0.309374 0.000000 0.353987 +v 0.307881 -0.030323 0.353987 +v 0.301574 0.029703 0.342229 +v 0.298417 0.029392 0.325097 +v 0.297214 0.059120 0.342229 +v 0.294103 0.058501 0.325097 +v 0.303430 0.060356 0.353987 +v 0.307881 0.030324 0.353987 +v 0.289985 0.087967 0.342229 +v 0.286949 0.087046 0.325097 +v 0.279970 0.115968 0.342229 +v 0.277039 0.114754 0.325097 +v 0.285824 0.118393 0.353987 +v 0.296049 0.089806 0.353987 +v 0.267252 0.142850 0.342229 +v 0.264454 0.141354 0.325097 +v 0.251966 0.168359 0.342229 +v 0.249328 0.166596 0.325097 +v 0.257235 0.171880 0.353987 +v 0.272840 0.145837 0.353987 +v 0.234248 0.192243 0.342229 +v 0.231796 0.190230 0.325097 +v 0.214279 0.214280 0.342229 +v 0.212036 0.212037 0.325097 +v 0.218760 0.218761 0.353987 +v 0.239146 0.196263 0.353987 +v 0.192242 0.234249 0.342229 +v 0.190230 0.231796 0.325097 +v 0.168358 0.251967 0.342229 +v 0.166596 0.249329 0.325097 +v 0.171879 0.257236 0.353987 +v 0.196262 0.239147 0.353987 +v 0.142849 0.267252 0.342229 +v 0.141353 0.264454 0.325097 +v 0.115967 0.279970 0.342229 +v 0.114753 0.277039 0.325097 +v 0.118392 0.285825 0.353987 +v 0.145836 0.272841 0.353987 +v 0.087966 0.289986 0.342229 +v 0.087045 0.286950 0.325097 +v 0.059119 0.297215 0.342229 +v 0.058500 0.294103 0.325097 +v 0.060355 0.303430 0.353987 +v 0.089805 0.296050 0.353987 +v 0.029702 0.301575 0.342229 +v 0.029391 0.298418 0.325097 +v 0.030323 0.307881 0.353987 +v -0.038505 0.390944 0.407243 +v 0.000000 0.392840 0.407243 +v 0.000000 0.373951 0.397260 +v -0.036653 0.372146 0.397260 +v -0.076639 0.385292 0.407243 +v -0.072954 0.366765 0.397260 +v -0.079427 0.399306 0.415092 +v -0.039905 0.405164 0.415092 +v 0.000000 0.407129 0.415092 +v -0.114034 0.375920 0.407243 +v -0.108551 0.357844 0.397260 +v -0.150333 0.362937 0.407243 +v -0.143105 0.345486 0.397260 +v -0.155802 0.376138 0.415092 +v -0.118182 0.389594 0.415092 +v -0.185181 0.346450 0.407243 +v -0.176277 0.329791 0.397260 +v -0.218250 0.326635 0.407243 +v -0.207756 0.310929 0.397260 +v -0.226189 0.338515 0.415092 +v -0.191917 0.359052 0.415092 +v -0.249212 0.303666 0.407243 +v -0.237229 0.289065 0.397260 +v -0.277780 0.277780 0.407243 +v -0.264423 0.264423 0.397260 +v -0.287884 0.287884 0.415092 +v -0.258277 0.314711 0.415092 +v -0.303666 0.249212 0.407243 +v -0.289064 0.237229 0.397260 +v -0.326635 0.218250 0.407243 +v -0.310929 0.207756 0.397260 +v -0.338515 0.226189 0.415092 +v -0.314711 0.258277 0.415092 +v -0.346450 0.185182 0.407243 +v -0.329791 0.176277 0.397260 +v -0.362937 0.150334 0.407243 +v -0.345486 0.143105 0.397260 +v -0.376138 0.155802 0.415092 +v -0.359052 0.191917 0.415092 +v -0.375920 0.114034 0.407243 +v -0.357844 0.108551 0.397260 +v -0.385292 0.076639 0.407243 +v -0.366765 0.072954 0.397260 +v -0.399306 0.079427 0.415092 +v -0.389594 0.118182 0.415092 +v -0.390944 0.038505 0.407243 +v -0.372146 0.036653 0.397260 +v -0.392840 0.000000 0.407243 +v -0.373951 0.000000 0.397260 +v -0.407129 0.000000 0.415092 +v -0.405164 0.039905 0.415092 +v -0.390944 -0.038504 0.407243 +v -0.372146 -0.036653 0.397260 +v -0.385292 -0.076639 0.407243 +v -0.366765 -0.072954 0.397260 +v -0.399306 -0.079427 0.415092 +v -0.405164 -0.039905 0.415092 +v -0.375920 -0.114034 0.407243 +v -0.357844 -0.108551 0.397260 +v -0.362937 -0.150333 0.407243 +v -0.345485 -0.143105 0.397260 +v -0.376138 -0.155801 0.415092 +v -0.389594 -0.118182 0.415092 +v -0.346450 -0.185181 0.407243 +v -0.329791 -0.176277 0.397260 +v -0.326635 -0.218250 0.407243 +v -0.310929 -0.207756 0.397260 +v -0.338515 -0.226189 0.415092 +v -0.359052 -0.191917 0.415092 +v -0.303666 -0.249212 0.407243 +v -0.289064 -0.237229 0.397260 +v -0.277780 -0.277780 0.407243 +v -0.264423 -0.264423 0.397260 +v -0.287884 -0.287883 0.415092 +v -0.314711 -0.258277 0.415092 +v -0.249212 -0.303666 0.407243 +v -0.237229 -0.289064 0.397260 +v -0.218250 -0.326634 0.407243 +v -0.207756 -0.310929 0.397260 +v -0.226189 -0.338515 0.415092 +v -0.258277 -0.314711 0.415092 +v -0.185181 -0.346450 0.407243 +v -0.176277 -0.329791 0.397260 +v -0.150333 -0.362937 0.407243 +v -0.143105 -0.345485 0.397260 +v -0.155801 -0.376138 0.415092 +v -0.191917 -0.359051 0.415092 +v -0.114034 -0.375920 0.407243 +v -0.108551 -0.357844 0.397260 +v -0.076639 -0.385292 0.407243 +v -0.072954 -0.366765 0.397260 +v -0.079427 -0.399306 0.415092 +v -0.118182 -0.389593 0.415092 +v -0.038505 -0.390944 0.407243 +v -0.036653 -0.372146 0.397260 +v 0.000000 -0.392840 0.407243 +v 0.000000 -0.373951 0.397260 +v 0.000000 -0.407129 0.415092 +v -0.039905 -0.405164 0.415092 +v 0.038505 -0.390944 0.407243 +v 0.036653 -0.372146 0.397260 +v 0.076639 -0.385292 0.407243 +v 0.072954 -0.366765 0.397260 +v 0.079427 -0.399306 0.415092 +v 0.039905 -0.405164 0.415092 +v 0.114034 -0.375920 0.407243 +v 0.108551 -0.357844 0.397260 +v 0.150333 -0.362937 0.407243 +v 0.143105 -0.345485 0.397260 +v 0.155802 -0.376138 0.415092 +v 0.118182 -0.389593 0.415092 +v 0.185181 -0.346450 0.407243 +v 0.176277 -0.329791 0.397260 +v 0.218250 -0.326634 0.407243 +v 0.207756 -0.310928 0.397260 +v 0.226189 -0.338515 0.415092 +v 0.191917 -0.359051 0.415092 +v 0.249212 -0.303666 0.407243 +v 0.237229 -0.289064 0.397260 +v 0.277780 -0.277780 0.407243 +v 0.264423 -0.264423 0.397260 +v 0.287884 -0.287883 0.415092 +v 0.258277 -0.314711 0.415092 +v 0.303666 -0.249212 0.407243 +v 0.289064 -0.237229 0.397260 +v 0.326635 -0.218250 0.407243 +v 0.310929 -0.207755 0.397260 +v 0.338515 -0.226188 0.415092 +v 0.314711 -0.258276 0.415092 +v 0.346450 -0.185181 0.407243 +v 0.329791 -0.176277 0.397260 +v 0.362937 -0.150333 0.407243 +v 0.345486 -0.143104 0.397260 +v 0.376138 -0.155801 0.415092 +v 0.359052 -0.191917 0.415092 +v 0.375920 -0.114034 0.407243 +v 0.357844 -0.108550 0.397260 +v 0.385292 -0.076639 0.407243 +v 0.366765 -0.072954 0.397260 +v 0.399306 -0.079426 0.415092 +v 0.389594 -0.118181 0.415092 +v 0.390944 -0.038504 0.407243 +v 0.372146 -0.036653 0.397260 +v 0.392840 0.000001 0.407243 +v 0.373951 0.000001 0.397260 +v 0.407129 0.000001 0.415092 +v 0.405164 -0.039905 0.415092 +v 0.390944 0.038505 0.407243 +v 0.372146 0.036654 0.397260 +v 0.385292 0.076640 0.407243 +v 0.366765 0.072955 0.397260 +v 0.399306 0.079427 0.415092 +v 0.405164 0.039906 0.415092 +v 0.375920 0.114035 0.407243 +v 0.357844 0.108551 0.397260 +v 0.362937 0.150334 0.407243 +v 0.345485 0.143105 0.397260 +v 0.376138 0.155802 0.415092 +v 0.389593 0.118182 0.415092 +v 0.346450 0.185182 0.407243 +v 0.329791 0.176278 0.397260 +v 0.326634 0.218251 0.407243 +v 0.310928 0.207756 0.397260 +v 0.338515 0.226189 0.415092 +v 0.359051 0.191918 0.415092 +v 0.303666 0.249213 0.407243 +v 0.289064 0.237230 0.397260 +v 0.277779 0.277780 0.407243 +v 0.264423 0.264424 0.397260 +v 0.287883 0.287884 0.415092 +v 0.314711 0.258277 0.415092 +v 0.249212 0.303666 0.407243 +v 0.237229 0.289065 0.397260 +v 0.218250 0.326635 0.407243 +v 0.207755 0.310929 0.397260 +v 0.226188 0.338516 0.415092 +v 0.258276 0.314712 0.415092 +v 0.185181 0.346450 0.407243 +v 0.176277 0.329792 0.397260 +v 0.150333 0.362937 0.407243 +v 0.143104 0.345486 0.397260 +v 0.155801 0.376138 0.415092 +v 0.191916 0.359052 0.415092 +v 0.114034 0.375920 0.407243 +v 0.108550 0.357845 0.397260 +v 0.076639 0.385292 0.407243 +v 0.072954 0.366766 0.397260 +v 0.079426 0.399306 0.415092 +v 0.118181 0.389594 0.415092 +v 0.038504 0.390944 0.407243 +v 0.036653 0.372146 0.397260 +v 0.039905 0.405164 0.415092 +v -0.040545 0.411656 0.419733 +v 0.000000 0.413652 0.419733 +v -0.080700 0.405704 0.419733 +v -0.081146 0.407951 0.422903 +v -0.040769 0.413935 0.422903 +v 0.000000 0.415943 0.422903 +v -0.120076 0.395836 0.419733 +v -0.158298 0.382165 0.419733 +v -0.159174 0.384281 0.422903 +v -0.120740 0.398028 0.422903 +v -0.194992 0.364805 0.419733 +v -0.229813 0.343939 0.419733 +v -0.231086 0.345844 0.422903 +v -0.196072 0.366825 0.422903 +v -0.262415 0.319754 0.419733 +v -0.292496 0.292496 0.419733 +v -0.294116 0.294116 0.422903 +v -0.263868 0.321525 0.422903 +v -0.319754 0.262415 0.419733 +v -0.343939 0.229813 0.419733 +v -0.345844 0.231086 0.422903 +v -0.321524 0.263868 0.422903 +v -0.364804 0.194992 0.419733 +v -0.382165 0.158298 0.419733 +v -0.384281 0.159175 0.422903 +v -0.366825 0.196072 0.422903 +v -0.395836 0.120076 0.419733 +v -0.405704 0.080700 0.419733 +v -0.407951 0.081147 0.422903 +v -0.398028 0.120741 0.422903 +v -0.411656 0.040545 0.419733 +v -0.413652 0.000000 0.419733 +v -0.415943 0.000000 0.422903 +v -0.413935 0.040769 0.422903 +v -0.411656 -0.040544 0.419733 +v -0.405704 -0.080699 0.419733 +v -0.407951 -0.081146 0.422903 +v -0.413935 -0.040769 0.422903 +v -0.395836 -0.120075 0.419733 +v -0.382165 -0.158298 0.419733 +v -0.384281 -0.159174 0.422903 +v -0.398028 -0.120740 0.422903 +v -0.364804 -0.194992 0.419733 +v -0.343939 -0.229813 0.419733 +v -0.345844 -0.231085 0.422903 +v -0.366825 -0.196072 0.422903 +v -0.319754 -0.262415 0.419733 +v -0.292496 -0.292496 0.419733 +v -0.294116 -0.294116 0.422903 +v -0.321525 -0.263868 0.422903 +v -0.262415 -0.319754 0.419733 +v -0.229813 -0.343939 0.419733 +v -0.231085 -0.345844 0.422903 +v -0.263868 -0.321524 0.422903 +v -0.194992 -0.364804 0.419733 +v -0.158298 -0.382165 0.419733 +v -0.159174 -0.384281 0.422903 +v -0.196072 -0.366825 0.422903 +v -0.120075 -0.395836 0.419733 +v -0.080699 -0.405704 0.419733 +v -0.081146 -0.407951 0.422903 +v -0.120740 -0.398028 0.422903 +v -0.040544 -0.411655 0.419733 +v 0.000000 -0.413652 0.419733 +v 0.000000 -0.415943 0.422903 +v -0.040769 -0.413935 0.422903 +v 0.040545 -0.411655 0.419733 +v 0.080700 -0.405704 0.419733 +v 0.081147 -0.407950 0.422903 +v 0.040769 -0.413935 0.422903 +v 0.120076 -0.395836 0.419733 +v 0.158298 -0.382165 0.419733 +v 0.159175 -0.384281 0.422903 +v 0.120741 -0.398028 0.422903 +v 0.194992 -0.364804 0.419733 +v 0.229813 -0.343939 0.419733 +v 0.231086 -0.345844 0.422903 +v 0.196072 -0.366824 0.422903 +v 0.262415 -0.319753 0.419733 +v 0.292496 -0.292496 0.419733 +v 0.294116 -0.294116 0.422903 +v 0.263868 -0.321524 0.422903 +v 0.319754 -0.262415 0.419733 +v 0.343939 -0.229812 0.419733 +v 0.345844 -0.231085 0.422903 +v 0.321525 -0.263868 0.422903 +v 0.364804 -0.194992 0.419733 +v 0.382165 -0.158297 0.419733 +v 0.384281 -0.159174 0.422903 +v 0.366825 -0.196071 0.422903 +v 0.395836 -0.120075 0.419733 +v 0.405704 -0.080699 0.419733 +v 0.407951 -0.081146 0.422903 +v 0.398028 -0.120740 0.422903 +v 0.411656 -0.040544 0.419733 +v 0.413652 0.000001 0.419733 +v 0.415943 0.000001 0.422903 +v 0.413935 -0.040769 0.422903 +v 0.411655 0.040545 0.419733 +v 0.405704 0.080700 0.419733 +v 0.407951 0.081147 0.422903 +v 0.413935 0.040770 0.422903 +v 0.395836 0.120076 0.419733 +v 0.382164 0.158298 0.419733 +v 0.384281 0.159175 0.422903 +v 0.398028 0.120741 0.422903 +v 0.364804 0.194993 0.419733 +v 0.343939 0.229813 0.419733 +v 0.345843 0.231086 0.422903 +v 0.366824 0.196072 0.422903 +v 0.319753 0.262416 0.419733 +v 0.292496 0.292497 0.419733 +v 0.294116 0.294117 0.422903 +v 0.321524 0.263869 0.422903 +v 0.262415 0.319754 0.419733 +v 0.229812 0.343940 0.419733 +v 0.231085 0.345844 0.422903 +v 0.263868 0.321525 0.422903 +v 0.194991 0.364805 0.419733 +v 0.158297 0.382165 0.419733 +v 0.159174 0.384281 0.422903 +v 0.196071 0.366825 0.422903 +v 0.120075 0.395836 0.419733 +v 0.080699 0.405704 0.419733 +v 0.081146 0.407951 0.422903 +v 0.120740 0.398028 0.422903 +v 0.040544 0.411656 0.419733 +v 0.040769 0.413935 0.422903 +v -0.041047 0.416754 0.441378 +v 0.000000 0.418775 0.441378 +v 0.000000 0.418465 0.433699 +v -0.041016 0.416445 0.433699 +v -0.081699 0.410729 0.441378 +v -0.081638 0.410424 0.433699 +v -0.121563 0.400738 0.441378 +v -0.121473 0.400441 0.433699 +v -0.160258 0.386898 0.441378 +v -0.160140 0.386611 0.433699 +v -0.197407 0.369323 0.441378 +v -0.197261 0.369049 0.433699 +v -0.232659 0.348199 0.441378 +v -0.232487 0.347941 0.433699 +v -0.265665 0.323714 0.441378 +v -0.265468 0.323474 0.433699 +v -0.296119 0.296119 0.441378 +v -0.295899 0.295900 0.433699 +v -0.323714 0.265665 0.441378 +v -0.323474 0.265468 0.433699 +v -0.348199 0.232659 0.441378 +v -0.347941 0.232487 0.433699 +v -0.369323 0.197407 0.441378 +v -0.369049 0.197261 0.433699 +v -0.386898 0.160259 0.441378 +v -0.386611 0.160140 0.433699 +v -0.400738 0.121563 0.441378 +v -0.400441 0.121473 0.433699 +v -0.410729 0.081699 0.441378 +v -0.410424 0.081639 0.433699 +v -0.416754 0.041047 0.441378 +v -0.416445 0.041016 0.433699 +v -0.418775 0.000000 0.441378 +v -0.418465 0.000000 0.433699 +v -0.416754 -0.041047 0.441378 +v -0.416445 -0.041016 0.433699 +v -0.410729 -0.081699 0.441378 +v -0.410424 -0.081638 0.433699 +v -0.400738 -0.121562 0.441378 +v -0.400441 -0.121472 0.433699 +v -0.386898 -0.160258 0.441378 +v -0.386611 -0.160139 0.433699 +v -0.369323 -0.197407 0.441378 +v -0.369049 -0.197261 0.433699 +v -0.348199 -0.232659 0.441378 +v -0.347941 -0.232487 0.433699 +v -0.323714 -0.265665 0.441378 +v -0.323474 -0.265468 0.433699 +v -0.296119 -0.296119 0.441378 +v -0.295899 -0.295899 0.433699 +v -0.265665 -0.323714 0.441378 +v -0.265468 -0.323474 0.433699 +v -0.232659 -0.348199 0.441378 +v -0.232487 -0.347941 0.433699 +v -0.197407 -0.369323 0.441378 +v -0.197261 -0.369049 0.433699 +v -0.160258 -0.386898 0.441378 +v -0.160140 -0.386611 0.433699 +v -0.121563 -0.400738 0.441378 +v -0.121472 -0.400441 0.433699 +v -0.081699 -0.410729 0.441378 +v -0.081638 -0.410424 0.433699 +v -0.041047 -0.416754 0.441378 +v -0.041016 -0.416445 0.433699 +v 0.000000 -0.418775 0.441378 +v 0.000000 -0.418465 0.433699 +v 0.041047 -0.416754 0.441378 +v 0.041016 -0.416445 0.433699 +v 0.081699 -0.410728 0.441378 +v 0.081639 -0.410424 0.433699 +v 0.121563 -0.400738 0.441378 +v 0.121473 -0.400441 0.433699 +v 0.160258 -0.386898 0.441378 +v 0.160140 -0.386611 0.433699 +v 0.197407 -0.369322 0.441378 +v 0.197261 -0.369049 0.433699 +v 0.232659 -0.348199 0.441378 +v 0.232487 -0.347941 0.433699 +v 0.265665 -0.323714 0.441378 +v 0.265468 -0.323474 0.433699 +v 0.296119 -0.296119 0.441377 +v 0.295900 -0.295899 0.433699 +v 0.323714 -0.265665 0.441377 +v 0.323474 -0.265468 0.433699 +v 0.348199 -0.232659 0.441377 +v 0.347941 -0.232486 0.433699 +v 0.369323 -0.197407 0.441377 +v 0.369049 -0.197260 0.433699 +v 0.386898 -0.160258 0.441377 +v 0.386611 -0.160139 0.433699 +v 0.400738 -0.121562 0.441377 +v 0.400441 -0.121472 0.433699 +v 0.410729 -0.081699 0.441377 +v 0.410424 -0.081638 0.433699 +v 0.416754 -0.041046 0.441377 +v 0.416445 -0.041016 0.433699 +v 0.418775 0.000001 0.441377 +v 0.418465 0.000001 0.433699 +v 0.416754 0.041047 0.441377 +v 0.416445 0.041017 0.433699 +v 0.410729 0.081700 0.441377 +v 0.410424 0.081639 0.433699 +v 0.400738 0.121563 0.441377 +v 0.400441 0.121473 0.433699 +v 0.386898 0.160259 0.441377 +v 0.386611 0.160140 0.433699 +v 0.369322 0.197408 0.441377 +v 0.369048 0.197261 0.433699 +v 0.348199 0.232660 0.441377 +v 0.347941 0.232487 0.433699 +v 0.323714 0.265666 0.441377 +v 0.323474 0.265469 0.433699 +v 0.296118 0.296119 0.441377 +v 0.295899 0.295900 0.433699 +v 0.265665 0.323714 0.441378 +v 0.265468 0.323475 0.433699 +v 0.232659 0.348199 0.441378 +v 0.232486 0.347941 0.433699 +v 0.197406 0.369323 0.441378 +v 0.197260 0.369049 0.433699 +v 0.160258 0.386898 0.441378 +v 0.160139 0.386612 0.433699 +v 0.121562 0.400739 0.441378 +v 0.121472 0.400442 0.433699 +v 0.081698 0.410729 0.441378 +v 0.081638 0.410424 0.433699 +v 0.041046 0.416754 0.441378 +v 0.041016 0.416445 0.433699 +v -0.031358 0.318381 0.364599 +v -0.062414 0.313778 0.364599 +v -0.032804 0.333064 0.375022 +v -0.065293 0.328249 0.375022 +v 0.000000 0.334680 0.375022 +v 0.000000 0.319926 0.364599 +v -0.092868 0.306146 0.364599 +v -0.122430 0.295573 0.364599 +v -0.097151 0.320265 0.375022 +v -0.128076 0.309204 0.375022 +v -0.150810 0.282146 0.364599 +v -0.177741 0.266008 0.364599 +v -0.157765 0.295158 0.375022 +v -0.185938 0.278276 0.375022 +v -0.202956 0.247303 0.364599 +v -0.226221 0.226222 0.364599 +v -0.212316 0.258708 0.375022 +v -0.236654 0.236654 0.375022 +v -0.247303 0.202956 0.364599 +v -0.266008 0.177741 0.364599 +v -0.258708 0.212316 0.375022 +v -0.278276 0.185938 0.375022 +v -0.282146 0.150810 0.364599 +v -0.295573 0.122430 0.364599 +v -0.295158 0.157765 0.375022 +v -0.309204 0.128077 0.375022 +v -0.306146 0.092869 0.364599 +v -0.313778 0.062415 0.364599 +v -0.320265 0.097151 0.375022 +v -0.328249 0.065293 0.375022 +v -0.318381 0.031358 0.364599 +v -0.319925 0.000000 0.364599 +v -0.333064 0.032804 0.375022 +v -0.334680 0.000000 0.375022 +v -0.318381 -0.031358 0.364599 +v -0.313778 -0.062414 0.364599 +v -0.333064 -0.032804 0.375022 +v -0.328249 -0.065293 0.375022 +v -0.306146 -0.092868 0.364599 +v -0.295573 -0.122430 0.364599 +v -0.320265 -0.097151 0.375022 +v -0.309204 -0.128076 0.375022 +v -0.282146 -0.150810 0.364599 +v -0.266008 -0.177741 0.364599 +v -0.295158 -0.157765 0.375022 +v -0.278276 -0.185938 0.375022 +v -0.247303 -0.202956 0.364599 +v -0.226221 -0.226221 0.364599 +v -0.258708 -0.212316 0.375022 +v -0.236654 -0.236654 0.375022 +v -0.202956 -0.247303 0.364599 +v -0.177741 -0.266008 0.364599 +v -0.212316 -0.258708 0.375022 +v -0.185938 -0.278276 0.375022 +v -0.150810 -0.282146 0.364599 +v -0.122430 -0.295572 0.364599 +v -0.157765 -0.295158 0.375022 +v -0.128076 -0.309204 0.375022 +v -0.092868 -0.306146 0.364599 +v -0.062414 -0.313778 0.364599 +v -0.097151 -0.320265 0.375022 +v -0.065293 -0.328249 0.375022 +v -0.031358 -0.318381 0.364599 +v 0.000000 -0.319925 0.364599 +v -0.032804 -0.333064 0.375022 +v 0.000000 -0.334679 0.375022 +v 0.031358 -0.318381 0.364599 +v 0.062414 -0.313778 0.364599 +v 0.032804 -0.333064 0.375022 +v 0.065293 -0.328249 0.375022 +v 0.092868 -0.306146 0.364599 +v 0.122430 -0.295572 0.364599 +v 0.097151 -0.320264 0.375022 +v 0.128076 -0.309203 0.375022 +v 0.150810 -0.282145 0.364599 +v 0.177741 -0.266008 0.364599 +v 0.157765 -0.295157 0.375022 +v 0.185938 -0.278276 0.375022 +v 0.202956 -0.247302 0.364599 +v 0.226222 -0.226221 0.364599 +v 0.212316 -0.258708 0.375022 +v 0.236654 -0.236654 0.375022 +v 0.247303 -0.202956 0.364599 +v 0.266008 -0.177741 0.364599 +v 0.258708 -0.212316 0.375022 +v 0.278276 -0.185938 0.375022 +v 0.282146 -0.150810 0.364599 +v 0.295573 -0.122430 0.364599 +v 0.295158 -0.157765 0.375022 +v 0.309204 -0.128076 0.375022 +v 0.306146 -0.092868 0.364599 +v 0.313778 -0.062414 0.364599 +v 0.320265 -0.097151 0.375022 +v 0.328249 -0.065292 0.375022 +v 0.318381 -0.031357 0.364599 +v 0.319925 0.000000 0.364599 +v 0.333064 -0.032803 0.375022 +v 0.334680 0.000001 0.375022 +v 0.318381 0.031358 0.364599 +v 0.313778 0.062415 0.364599 +v 0.333064 0.032804 0.375022 +v 0.328249 0.065293 0.375022 +v 0.306146 0.092869 0.364599 +v 0.295572 0.122431 0.364599 +v 0.320265 0.097152 0.375022 +v 0.309203 0.128077 0.375022 +v 0.282145 0.150811 0.364599 +v 0.266008 0.177742 0.364599 +v 0.295157 0.157766 0.375022 +v 0.278276 0.185939 0.375022 +v 0.247302 0.202957 0.364599 +v 0.226221 0.226222 0.364599 +v 0.258707 0.212317 0.375022 +v 0.236654 0.236655 0.375022 +v 0.202956 0.247303 0.364599 +v 0.177741 0.266009 0.364599 +v 0.212316 0.258708 0.375022 +v 0.185938 0.278276 0.375022 +v 0.150810 0.282146 0.364599 +v 0.122430 0.295573 0.364599 +v 0.157765 0.295158 0.375022 +v 0.128076 0.309204 0.375022 +v 0.092868 0.306146 0.364599 +v 0.062414 0.313778 0.364599 +v 0.097151 0.320265 0.375022 +v 0.065292 0.328249 0.375022 +v 0.031358 0.318381 0.364599 +v 0.032804 0.333064 0.375022 +v -0.034661 0.351919 0.386214 +v -0.068989 0.346831 0.386214 +v 0.000000 0.353626 0.386214 +v -0.102651 0.338395 0.386214 +v -0.135327 0.326708 0.386214 +v -0.166696 0.311867 0.386214 +v -0.196464 0.294029 0.386214 +v -0.224335 0.273354 0.386214 +v -0.250051 0.250051 0.386214 +v -0.273353 0.224335 0.386214 +v -0.294029 0.196464 0.386214 +v -0.311867 0.166696 0.386214 +v -0.326708 0.135327 0.386214 +v -0.338395 0.102651 0.386214 +v -0.346831 0.068989 0.386214 +v -0.351919 0.034661 0.386214 +v -0.353626 0.000000 0.386214 +v -0.351919 -0.034661 0.386214 +v -0.346831 -0.068989 0.386214 +v -0.338395 -0.102651 0.386214 +v -0.326708 -0.135327 0.386214 +v -0.311867 -0.166696 0.386214 +v -0.294029 -0.196464 0.386214 +v -0.273353 -0.224335 0.386214 +v -0.250051 -0.250051 0.386214 +v -0.224335 -0.273353 0.386214 +v -0.196464 -0.294029 0.386214 +v -0.166696 -0.311867 0.386214 +v -0.135327 -0.326708 0.386214 +v -0.102651 -0.338395 0.386214 +v -0.068989 -0.346831 0.386214 +v -0.034661 -0.351919 0.386214 +v 0.000000 -0.353626 0.386214 +v 0.034661 -0.351919 0.386214 +v 0.068989 -0.346831 0.386214 +v 0.102651 -0.338395 0.386214 +v 0.135327 -0.326708 0.386214 +v 0.166696 -0.311866 0.386214 +v 0.196464 -0.294029 0.386214 +v 0.224335 -0.273353 0.386214 +v 0.250051 -0.250051 0.386214 +v 0.273353 -0.224335 0.386214 +v 0.294029 -0.196464 0.386214 +v 0.311867 -0.166696 0.386214 +v 0.326708 -0.135326 0.386214 +v 0.338395 -0.102651 0.386214 +v 0.346831 -0.068989 0.386214 +v 0.351919 -0.034661 0.386214 +v 0.353626 0.000001 0.386214 +v 0.351919 0.034662 0.386214 +v 0.346831 0.068990 0.386214 +v 0.338395 0.102652 0.386214 +v 0.326708 0.135327 0.386214 +v 0.311866 0.166697 0.386214 +v 0.294029 0.196465 0.386214 +v 0.273353 0.224336 0.386214 +v 0.250051 0.250052 0.386214 +v 0.224335 0.273354 0.386214 +v 0.196464 0.294030 0.386214 +v 0.166696 0.311867 0.386214 +v 0.135326 0.326708 0.386214 +v 0.102650 0.338395 0.386214 +v 0.068988 0.346831 0.386214 +v 0.034661 0.351919 0.386214 +v -0.029288 0.297365 0.298366 +v -0.029288 0.297365 0.264129 +v -0.058294 0.293066 0.264129 +v -0.058294 0.293066 0.298366 +v 0.000000 0.298807 0.298366 +v 0.000000 0.298807 0.264129 +v -0.086738 0.285938 0.298366 +v -0.086738 0.285938 0.264129 +v -0.114349 0.276062 0.264129 +v -0.114349 0.276062 0.298366 +v -0.140855 0.263522 0.298366 +v -0.140855 0.263522 0.264129 +v -0.166009 0.248449 0.264129 +v -0.166008 0.248449 0.298366 +v -0.189559 0.230979 0.298366 +v -0.189559 0.230979 0.264129 +v -0.211289 0.211289 0.264129 +v -0.211289 0.211289 0.298366 +v -0.230978 0.189559 0.298366 +v -0.230978 0.189559 0.264129 +v -0.248449 0.166009 0.264129 +v -0.248449 0.166009 0.298366 +v -0.263521 0.140855 0.298366 +v -0.263521 0.140855 0.264129 +v -0.276062 0.114349 0.264129 +v -0.276062 0.114349 0.298366 +v -0.285937 0.086738 0.298366 +v -0.285937 0.086738 0.264129 +v -0.293066 0.058295 0.264129 +v -0.293066 0.058295 0.298366 +v -0.297365 0.029288 0.298366 +v -0.297365 0.029288 0.264129 +v -0.298807 0.000000 0.264129 +v -0.298807 0.000000 0.298366 +v -0.297365 -0.029288 0.298366 +v -0.297365 -0.029288 0.264129 +v -0.293066 -0.058294 0.264129 +v -0.293066 -0.058294 0.298366 +v -0.285937 -0.086738 0.298366 +v -0.285937 -0.086738 0.264129 +v -0.276062 -0.114348 0.264129 +v -0.276062 -0.114348 0.298366 +v -0.263521 -0.140855 0.298366 +v -0.263521 -0.140855 0.264129 +v -0.248449 -0.166008 0.264129 +v -0.248449 -0.166008 0.298366 +v -0.230979 -0.189559 0.298366 +v -0.230979 -0.189559 0.264129 +v -0.211289 -0.211288 0.264129 +v -0.211289 -0.211288 0.298366 +v -0.189559 -0.230978 0.298366 +v -0.189559 -0.230978 0.264129 +v -0.166008 -0.248449 0.264129 +v -0.166008 -0.248449 0.298366 +v -0.140855 -0.263521 0.298366 +v -0.140855 -0.263521 0.264129 +v -0.114349 -0.276062 0.264129 +v -0.114349 -0.276062 0.298366 +v -0.086738 -0.285937 0.298366 +v -0.086738 -0.285937 0.264129 +v -0.058294 -0.293066 0.264129 +v -0.058294 -0.293066 0.298366 +v -0.029288 -0.297365 0.298366 +v -0.029288 -0.297365 0.264129 +v 0.000000 -0.298807 0.264129 +v 0.000000 -0.298807 0.298366 +v 0.029288 -0.297365 0.298366 +v 0.029288 -0.297365 0.264129 +v 0.058294 -0.293066 0.264129 +v 0.058294 -0.293066 0.298366 +v 0.086738 -0.285937 0.298366 +v 0.086738 -0.285937 0.264129 +v 0.114349 -0.276062 0.264129 +v 0.114349 -0.276062 0.298366 +v 0.140855 -0.263521 0.298366 +v 0.140855 -0.263521 0.264129 +v 0.166008 -0.248449 0.264129 +v 0.166008 -0.248449 0.298366 +v 0.189559 -0.230978 0.298366 +v 0.189559 -0.230978 0.264129 +v 0.211289 -0.211288 0.264129 +v 0.211289 -0.211288 0.298366 +v 0.230978 -0.189559 0.298366 +v 0.230978 -0.189559 0.264129 +v 0.248449 -0.166008 0.264129 +v 0.248449 -0.166008 0.298366 +v 0.263521 -0.140855 0.298366 +v 0.263521 -0.140855 0.264129 +v 0.276062 -0.114348 0.264129 +v 0.276062 -0.114348 0.298366 +v 0.285937 -0.086738 0.298366 +v 0.285937 -0.086738 0.264129 +v 0.293066 -0.058294 0.264129 +v 0.293066 -0.058294 0.298366 +v 0.297365 -0.029287 0.298366 +v 0.297365 -0.029287 0.264129 +v 0.298807 0.000000 0.264129 +v 0.298807 0.000000 0.298366 +v 0.297365 0.029288 0.298366 +v 0.297365 0.029288 0.264129 +v 0.293066 0.058295 0.264129 +v 0.293066 0.058295 0.298366 +v 0.285937 0.086739 0.298366 +v 0.285937 0.086739 0.264129 +v 0.276062 0.114349 0.264129 +v 0.276062 0.114349 0.298366 +v 0.263521 0.140856 0.298366 +v 0.263521 0.140856 0.264129 +v 0.248449 0.166009 0.264129 +v 0.248449 0.166009 0.298366 +v 0.230978 0.189560 0.298366 +v 0.230978 0.189560 0.264129 +v 0.211288 0.211289 0.264129 +v 0.211288 0.211289 0.298366 +v 0.189559 0.230979 0.298366 +v 0.189559 0.230979 0.264129 +v 0.166008 0.248450 0.264129 +v 0.166008 0.248450 0.298366 +v 0.140855 0.263522 0.298366 +v 0.140855 0.263522 0.264129 +v 0.114348 0.276062 0.264129 +v 0.114348 0.276062 0.298366 +v 0.086738 0.285938 0.298366 +v 0.086738 0.285938 0.264129 +v 0.058294 0.293066 0.264129 +v 0.058294 0.293066 0.298366 +v 0.029288 0.297365 0.298366 +v 0.029288 0.297365 0.264129 +v -0.029288 0.297365 0.224483 +v -0.058294 0.293066 0.224483 +v 0.000000 0.298807 0.224483 +v -0.086738 0.285938 0.224483 +v -0.114349 0.276062 0.224483 +v -0.140855 0.263522 0.224483 +v -0.166008 0.248449 0.224483 +v -0.189559 0.230979 0.224483 +v -0.211289 0.211289 0.224483 +v -0.230978 0.189559 0.224483 +v -0.248449 0.166009 0.224483 +v -0.263521 0.140855 0.224483 +v -0.276062 0.114349 0.224483 +v -0.285937 0.086738 0.224483 +v -0.293066 0.058295 0.224483 +v -0.297365 0.029288 0.224483 +v -0.298807 0.000000 0.224483 +v -0.297365 -0.029288 0.224483 +v -0.293066 -0.058294 0.224483 +v -0.285937 -0.086738 0.224483 +v -0.276062 -0.114348 0.224483 +v -0.263521 -0.140855 0.224483 +v -0.248449 -0.166008 0.224483 +v -0.230979 -0.189559 0.224483 +v -0.211289 -0.211288 0.224483 +v -0.189559 -0.230978 0.224483 +v -0.166008 -0.248449 0.224483 +v -0.140855 -0.263521 0.224483 +v -0.114349 -0.276062 0.224483 +v -0.086738 -0.285937 0.224483 +v -0.058294 -0.293066 0.224483 +v -0.029288 -0.297365 0.224483 +v 0.000000 -0.298807 0.224483 +v 0.029288 -0.297365 0.224483 +v 0.058294 -0.293066 0.224483 +v 0.086738 -0.285937 0.224483 +v 0.114349 -0.276062 0.224483 +v 0.140855 -0.263521 0.224483 +v 0.166008 -0.248449 0.224483 +v 0.189559 -0.230978 0.224483 +v 0.211289 -0.211288 0.224483 +v 0.230978 -0.189559 0.224483 +v 0.248449 -0.166008 0.224483 +v 0.263521 -0.140855 0.224483 +v 0.276062 -0.114348 0.224483 +v 0.285937 -0.086738 0.224483 +v 0.293066 -0.058294 0.224483 +v 0.297365 -0.029287 0.224483 +v 0.298807 0.000000 0.224483 +v 0.297365 0.029288 0.224483 +v 0.293066 0.058295 0.224483 +v 0.285937 0.086739 0.224483 +v 0.276062 0.114349 0.224483 +v 0.263521 0.140856 0.224483 +v 0.248449 0.166009 0.224483 +v 0.230978 0.189560 0.224483 +v 0.211288 0.211289 0.224483 +v 0.189559 0.230979 0.224483 +v 0.166008 0.248450 0.224483 +v 0.140855 0.263522 0.224483 +v 0.114348 0.276062 0.224483 +v 0.086738 0.285938 0.224483 +v 0.058294 0.293066 0.224483 +v 0.029288 0.297365 0.224483 +v -0.040925 0.415519 0.426339 +v -0.081457 0.409511 0.426339 +v 0.000000 0.417534 0.426339 +v -0.121202 0.399551 0.426339 +v -0.159783 0.385751 0.426339 +v -0.196822 0.368228 0.426339 +v -0.231969 0.347167 0.426339 +v -0.264878 0.322754 0.426339 +v -0.295241 0.295241 0.426339 +v -0.322754 0.264878 0.426339 +v -0.347167 0.231970 0.426339 +v -0.368228 0.196822 0.426339 +v -0.385751 0.159783 0.426339 +v -0.399551 0.121202 0.426339 +v -0.409511 0.081457 0.426339 +v -0.415519 0.040925 0.426339 +v -0.417534 0.000000 0.426339 +v -0.415519 -0.040925 0.426339 +v -0.409511 -0.081457 0.426339 +v -0.399550 -0.121202 0.426339 +v -0.385751 -0.159783 0.426339 +v -0.368228 -0.196822 0.426339 +v -0.347167 -0.231969 0.426339 +v -0.322754 -0.264878 0.426339 +v -0.295241 -0.295241 0.426339 +v -0.264878 -0.322754 0.426339 +v -0.231969 -0.347167 0.426339 +v -0.196822 -0.368228 0.426339 +v -0.159783 -0.385751 0.426339 +v -0.121202 -0.399550 0.426339 +v -0.081457 -0.409511 0.426339 +v -0.040925 -0.415518 0.426339 +v 0.000000 -0.417534 0.426339 +v 0.040925 -0.415518 0.426339 +v 0.081457 -0.409511 0.426339 +v 0.121202 -0.399550 0.426339 +v 0.159783 -0.385751 0.426339 +v 0.196822 -0.368228 0.426339 +v 0.231970 -0.347167 0.426339 +v 0.264878 -0.322754 0.426339 +v 0.295241 -0.295241 0.426339 +v 0.322754 -0.264877 0.426339 +v 0.347167 -0.231969 0.426339 +v 0.368228 -0.196821 0.426339 +v 0.385751 -0.159783 0.426339 +v 0.399551 -0.121202 0.426339 +v 0.409511 -0.081456 0.426339 +v 0.415519 -0.040924 0.426339 +v 0.417534 0.000001 0.426339 +v 0.415519 0.040926 0.426339 +v 0.409511 0.081457 0.426339 +v 0.399550 0.121203 0.426339 +v 0.385751 0.159784 0.426339 +v 0.368227 0.196822 0.426339 +v 0.347166 0.231970 0.426339 +v 0.322754 0.264878 0.426339 +v 0.295241 0.295242 0.426339 +v 0.264877 0.322755 0.426339 +v 0.231969 0.347167 0.426339 +v 0.196821 0.368228 0.426339 +v 0.159783 0.385751 0.426339 +v 0.121202 0.399551 0.426339 +v 0.081456 0.409511 0.426339 +v 0.040925 0.415519 0.426339 +v 0.000000 0.000000 0.771950 +v -0.075862 0.770235 0.020561 +v -0.150994 0.759099 0.020561 +v 0.000000 0.773971 0.020561 +v 0.075861 0.770235 0.020561 +v 0.150993 0.759100 0.020561 +v 0.224669 0.740636 0.020561 +v 0.296185 0.715056 0.020561 +v 0.364843 0.682574 0.020561 +v 0.429995 0.643534 0.020561 +v 0.490996 0.598281 0.020561 +v 0.547279 0.547281 0.020561 +v 0.598280 0.490998 0.020561 +v 0.643533 0.429997 0.020561 +v 0.682573 0.364844 0.020561 +v 0.715056 0.296187 0.020561 +v 0.740635 0.224670 0.020561 +v 0.759099 0.150995 0.020561 +v 0.770235 0.075862 0.020561 +v 0.773971 0.000001 0.020561 +v 0.770235 -0.075861 0.020561 +v 0.759100 -0.150994 0.020561 +v 0.740636 -0.224669 0.020561 +v 0.715056 -0.296186 0.020561 +v 0.682574 -0.364843 0.020561 +v 0.643534 -0.429995 0.020561 +v 0.598281 -0.490997 0.020561 +v 0.547280 -0.547280 0.020561 +v 0.490997 -0.598280 0.020561 +v 0.429996 -0.643533 0.020561 +v 0.364844 -0.682573 0.020561 +v 0.296187 -0.715056 0.020561 +v 0.224670 -0.740635 0.020561 +v 0.150995 -0.759099 0.020561 +v 0.075862 -0.770235 0.020561 +v 0.000000 -0.773971 0.020561 +v -0.075861 -0.770235 0.020561 +v -0.150994 -0.759099 0.020561 +v -0.224669 -0.740635 0.020561 +v -0.296186 -0.715056 0.020561 +v -0.364844 -0.682573 0.020561 +v -0.429996 -0.643533 0.020561 +v -0.490997 -0.598281 0.020561 +v -0.547280 -0.547280 0.020561 +v -0.598281 -0.490997 0.020561 +v -0.643533 -0.429996 0.020561 +v -0.682573 -0.364844 0.020561 +v -0.715056 -0.296186 0.020561 +v -0.740636 -0.224670 0.020561 +v -0.759099 -0.150994 0.020561 +v -0.770235 -0.075862 0.020561 +v -0.773971 0.000000 0.020561 +v -0.770235 0.075862 0.020561 +v -0.759099 0.150995 0.020561 +v -0.740636 0.224670 0.020561 +v -0.715056 0.296186 0.020561 +v -0.682573 0.364844 0.020561 +v -0.643533 0.429996 0.020561 +v -0.598281 0.490997 0.020561 +v -0.547280 0.547280 0.020561 +v -0.490997 0.598281 0.020561 +v -0.429996 0.643533 0.020561 +v -0.364844 0.682574 0.020561 +v -0.296186 0.715056 0.020561 +v -0.224670 0.740636 0.020561 +v -0.040975 0.416029 0.020561 +v -0.081557 0.410014 0.020561 +v 0.000000 0.418047 0.020561 +v 0.040975 0.416029 0.020561 +v 0.081556 0.410015 0.020561 +v 0.121351 0.400042 0.020561 +v 0.159979 0.386225 0.020561 +v 0.197063 0.368681 0.020561 +v 0.232254 0.347594 0.020561 +v 0.265203 0.323151 0.020561 +v 0.295603 0.295604 0.020561 +v 0.323150 0.265204 0.020561 +v 0.347593 0.232255 0.020561 +v 0.368680 0.197064 0.020561 +v 0.386225 0.159980 0.020561 +v 0.400041 0.121352 0.020561 +v 0.410014 0.081557 0.020561 +v 0.416029 0.040976 0.020561 +v 0.418047 0.000001 0.020561 +v 0.416029 -0.040975 0.020561 +v 0.410014 -0.081556 0.020561 +v 0.400041 -0.121351 0.020561 +v 0.386225 -0.159979 0.020561 +v 0.368680 -0.197063 0.020561 +v 0.347593 -0.232254 0.020561 +v 0.323151 -0.265203 0.020561 +v 0.295604 -0.295603 0.020561 +v 0.265203 -0.323151 0.020561 +v 0.232255 -0.347593 0.020561 +v 0.197064 -0.368680 0.020561 +v 0.159980 -0.386225 0.020561 +v 0.121351 -0.400041 0.020561 +v 0.081557 -0.410014 0.020561 +v 0.040975 -0.416029 0.020561 +v 0.000000 -0.418047 0.020561 +v -0.040975 -0.416029 0.020561 +v -0.081557 -0.410014 0.020561 +v -0.121351 -0.400041 0.020561 +v -0.159980 -0.386225 0.020561 +v -0.197064 -0.368680 0.020561 +v -0.232254 -0.347593 0.020561 +v -0.265203 -0.323151 0.020561 +v -0.295604 -0.295604 0.020561 +v -0.323151 -0.265203 0.020561 +v -0.347593 -0.232254 0.020561 +v -0.368680 -0.197064 0.020561 +v -0.386225 -0.159979 0.020561 +v -0.400041 -0.121351 0.020561 +v -0.410014 -0.081557 0.020561 +v -0.416029 -0.040975 0.020561 +v -0.418047 0.000000 0.020561 +v -0.416029 0.040975 0.020561 +v -0.410014 0.081557 0.020561 +v -0.400041 0.121351 0.020561 +v -0.386225 0.159980 0.020561 +v -0.368680 0.197064 0.020561 +v -0.347593 0.232255 0.020561 +v -0.323151 0.265203 0.020561 +v -0.295604 0.295604 0.020561 +v -0.265203 0.323151 0.020561 +v -0.232254 0.347593 0.020561 +v -0.197064 0.368680 0.020561 +v -0.159980 0.386225 0.020561 +v -0.121351 0.400042 0.020561 +v 0.000000 0.000000 0.020561 +vn 0.8672 -0.0169 0.4976 +vn 0.8583 -0.0654 0.5090 +vn 0.8661 -0.0653 0.4956 +vn 0.8675 -0.0330 0.4963 +vn 0.8596 -0.0331 0.5098 +vn 0.8757 -0.0329 0.4817 +vn 0.8763 -0.0005 0.4818 +vn 0.8681 -0.0004 0.4964 +vn 0.8741 -0.0651 0.4814 +vn 0.8560 -0.0975 0.5077 +vn 0.8529 -0.1293 0.5058 +vn 0.8606 -0.1291 0.4927 +vn 0.8638 -0.0974 0.4944 +vn 0.8683 -0.1285 0.4790 +vn 0.8716 -0.0969 0.4805 +vn 0.8835 -0.1256 0.4513 +vn 0.8865 -0.0949 0.4530 +vn 0.8789 -0.0961 0.4672 +vn 0.8756 -0.1272 0.4659 +vn 0.8889 -0.0636 0.4537 +vn 0.8815 -0.0644 0.4677 +vn 0.8906 -0.0319 0.4537 +vn 0.8916 -0.0004 0.4529 +vn 0.8843 -0.0006 0.4670 +vn 0.8833 -0.0325 0.4676 +vn 0.8131 -0.3267 0.4818 +vn 0.8250 -0.3259 0.4616 +vn 0.8374 -0.2760 0.4718 +vn 0.8267 -0.2763 0.4900 +vn 0.7956 -0.3808 0.4711 +vn 0.8087 -0.3796 0.4493 +vn 0.8346 -0.3242 0.4454 +vn 0.8457 -0.2745 0.4576 +vn 0.8207 -0.3771 0.4292 +vn 0.7472 -0.4952 0.4433 +vn 0.7642 -0.4944 0.4141 +vn 0.7879 -0.4368 0.4340 +vn 0.7732 -0.4381 0.4586 +vn 0.7801 -0.4914 0.3874 +vn 0.8022 -0.4343 0.4097 +vn 0.8319 -0.4230 0.3592 +vn 0.8165 -0.4297 0.3855 +vn 0.7964 -0.4859 0.3602 +vn 0.8134 -0.4781 0.3313 +vn 0.8460 -0.3676 0.3863 +vn 0.8327 -0.3733 0.4090 +vn 0.8568 -0.3151 0.4082 +vn 0.8649 -0.2672 0.4250 +vn 0.8565 -0.2706 0.4395 +vn 0.8450 -0.3209 0.4278 +vn 0.8678 -0.3088 0.3892 +vn 0.8735 -0.2631 0.4096 +vn 0.8584 -0.3608 0.3647 +vn 0.8784 -0.3012 0.3712 +vn 0.8829 -0.2569 0.3931 +vn 0.8698 -0.3525 0.3454 +vn 0.8287 -0.4689 0.3057 +vn 0.8459 -0.4146 0.3354 +vn 0.8441 -0.4570 0.2804 +vn 0.8589 -0.4047 0.3138 +vn 0.8854 -0.3789 0.2693 +vn 0.8729 -0.3922 0.2903 +vn 0.8597 -0.4432 0.2541 +vn 0.8742 -0.4279 0.2294 +vn 0.8931 -0.3302 0.3055 +vn 0.8824 -0.3410 0.3241 +vn 0.8975 -0.2835 0.3378 +vn 0.9015 -0.2384 0.3612 +vn 0.8923 -0.2482 0.3770 +vn 0.8878 -0.2934 0.3547 +vn 0.9075 -0.2707 0.3212 +vn 0.9075 -0.2322 0.3502 +vn 0.9033 -0.3178 0.2881 +vn 0.9159 -0.2598 0.3060 +vn 0.9161 -0.2209 0.3347 +vn 0.9144 -0.3020 0.2695 +vn 0.8883 -0.4108 0.2054 +vn 0.8975 -0.3643 0.2484 +vn 0.9014 -0.3924 0.1830 +vn 0.9095 -0.3476 0.2279 +vn 0.9316 -0.3095 0.1903 +vn 0.9208 -0.3294 0.2090 +vn 0.9142 -0.3719 0.1612 +vn 0.9263 -0.3496 0.1405 +vn 0.9330 -0.2701 0.2377 +vn 0.9237 -0.2871 0.2535 +vn 0.9324 -0.2315 0.2777 +vn 0.9301 -0.1979 0.3093 +vn 0.9248 -0.2070 0.3192 +vn 0.9246 -0.2459 0.2911 +vn 0.9402 -0.2155 0.2638 +vn 0.9378 -0.1825 0.2953 +vn 0.9422 -0.2509 0.2221 +vn 0.9467 -0.2013 0.2515 +vn 0.9438 -0.1713 0.2828 +vn 0.9502 -0.2327 0.2073 +vn 0.9377 -0.3255 0.1213 +vn 0.9419 -0.2880 0.1728 +vn 0.9477 -0.3016 0.1047 +vn 0.9507 -0.2669 0.1579 +vn 0.9669 -0.2197 0.1299 +vn 0.9588 -0.2449 0.1442 +vn 0.9572 -0.2754 0.0886 +vn 0.9661 -0.2477 0.0731 +vn 0.9643 -0.1919 0.1825 +vn 0.9571 -0.2152 0.1942 +vn 0.9559 -0.1544 0.2497 +vn 0.9488 -0.1635 0.2702 +vn 0.9536 -0.1891 0.2345 +vn 0.9605 -0.1733 0.2176 +vn 0.9645 -0.1528 0.2155 +vn 0.9572 -0.1355 0.2556 +vn 0.9709 -0.1676 0.1712 +vn 0.9679 -0.1290 0.2159 +vn 0.9589 -0.1194 0.2574 +vn 0.9749 -0.1497 0.1646 +vn 0.9741 -0.2182 0.0599 +vn 0.9743 -0.1916 0.1184 +vn 0.9811 -0.1876 0.0477 +vn 0.9801 -0.1662 0.1085 +vn 0.9891 -0.1135 0.0933 +vn 0.9847 -0.1425 0.1005 +vn 0.9863 -0.1602 0.0387 +vn 0.9913 -0.1281 0.0301 +vn 0.9835 -0.0980 0.1518 +vn 0.9794 -0.1254 0.1583 +vn 0.9643 -0.0838 0.2514 +vn 0.9618 -0.0999 0.2549 +vn 0.9714 -0.1074 0.2117 +vn 0.9745 -0.0885 0.2062 +vn 0.9775 -0.0651 0.2006 +vn 0.9668 -0.0626 0.2476 +vn 0.9865 -0.0726 0.1470 +vn 0.9793 -0.0438 0.1978 +vn 0.9689 -0.0392 0.2442 +vn 0.9883 -0.0500 0.1444 +vn 0.9952 -0.0950 0.0230 +vn 0.9926 -0.0839 0.0875 +vn 0.9977 -0.0646 0.0189 +vn 0.9948 -0.0571 0.0838 +vn 0.9968 -0.0000 0.0802 +vn 0.9963 -0.0297 0.0812 +vn 0.9993 -0.0326 0.0162 +vn 0.9999 0.0000 0.0155 +vn 0.9899 -0.0000 0.1415 +vn 0.9894 -0.0276 0.1425 +vn 0.9702 -0.0000 0.2423 +vn 0.9699 -0.0226 0.2426 +vn 0.9802 -0.0248 0.1964 +vn 0.9806 -0.0000 0.1959 +vn 0.9802 0.0248 0.1964 +vn 0.9699 0.0225 0.2426 +vn 0.9894 0.0271 0.1424 +vn 0.9793 0.0434 0.1976 +vn 0.9690 0.0389 0.2440 +vn 0.9883 0.0500 0.1443 +vn 0.9993 0.0327 0.0165 +vn 0.9963 0.0297 0.0812 +vn 0.9977 0.0646 0.0189 +vn 0.9948 0.0571 0.0838 +vn 0.9892 0.1133 0.0931 +vn 0.9926 0.0844 0.0876 +vn 0.9952 0.0953 0.0233 +vn 0.9913 0.1281 0.0301 +vn 0.9835 0.0981 0.1518 +vn 0.9865 0.0725 0.1470 +vn 0.9745 0.0885 0.2060 +vn 0.9643 0.0837 0.2512 +vn 0.9670 0.0621 0.2472 +vn 0.9775 0.0650 0.2005 +vn 0.9714 0.1073 0.2116 +vn 0.9619 0.0995 0.2547 +vn 0.9794 0.1257 0.1581 +vn 0.9679 0.1290 0.2158 +vn 0.9590 0.1192 0.2572 +vn 0.9751 0.1494 0.1641 +vn 0.9863 0.1602 0.0387 +vn 0.9847 0.1422 0.1008 +vn 0.9811 0.1876 0.0477 +vn 0.9801 0.1658 0.1088 +vn 0.9668 0.2201 0.1301 +vn 0.9744 0.1913 0.1184 +vn 0.9742 0.2179 0.0595 +vn 0.9660 0.2480 0.0730 +vn 0.9643 0.1919 0.1825 +vn 0.9708 0.1678 0.1712 +vn 0.9559 0.1544 0.2497 +vn 0.9573 0.1354 0.2555 +vn 0.9645 0.1528 0.2154 +vn 0.9605 0.1733 0.2176 +vn 0.9536 0.1891 0.2344 +vn 0.9489 0.1634 0.2701 +vn 0.9570 0.2153 0.1944 +vn 0.9468 0.2010 0.2515 +vn 0.9437 0.1713 0.2829 +vn 0.9502 0.2328 0.2070 +vn 0.9573 0.2752 0.0884 +vn 0.9588 0.2449 0.1442 +vn 0.9477 0.3016 0.1047 +vn 0.9507 0.2669 0.1579 +vn 0.9315 0.3098 0.1906 +vn 0.9421 0.2876 0.1727 +vn 0.9377 0.3255 0.1213 +vn 0.9263 0.3496 0.1405 +vn 0.9332 0.2696 0.2375 +vn 0.9423 0.2508 0.2217 +vn 0.9303 0.1977 0.3091 +vn 0.9379 0.1822 0.2951 +vn 0.9402 0.2155 0.2639 +vn 0.9326 0.2310 0.2774 +vn 0.9246 0.2458 0.2909 +vn 0.9250 0.2066 0.3190 +vn 0.9237 0.2871 0.2535 +vn 0.9158 0.2600 0.3060 +vn 0.9163 0.2204 0.3343 +vn 0.9146 0.3016 0.2694 +vn 0.9143 0.3716 0.1611 +vn 0.9208 0.3294 0.2090 +vn 0.9014 0.3924 0.1830 +vn 0.9096 0.3473 0.2278 +vn 0.8856 0.3788 0.2689 +vn 0.8972 0.3649 0.2488 +vn 0.8885 0.4104 0.2053 +vn 0.8742 0.4279 0.2294 +vn 0.8932 0.3301 0.3055 +vn 0.9034 0.3177 0.2880 +vn 0.9016 0.2382 0.3611 +vn 0.9075 0.2321 0.3501 +vn 0.9075 0.2706 0.3211 +vn 0.8976 0.2834 0.3378 +vn 0.8878 0.2933 0.3545 +vn 0.8925 0.2478 0.3769 +vn 0.8823 0.3412 0.3243 +vn 0.8783 0.3012 0.3712 +vn 0.8832 0.2563 0.3927 +vn 0.8698 0.3523 0.3453 +vn 0.8594 0.4437 0.2541 +vn 0.8729 0.3922 0.2903 +vn 0.8442 0.4570 0.2800 +vn 0.8589 0.4047 0.3138 +vn 0.8320 0.4226 0.3594 +vn 0.8460 0.4143 0.3358 +vn 0.8284 0.4692 0.3060 +vn 0.8131 0.4784 0.3316 +vn 0.8459 0.3678 0.3862 +vn 0.8583 0.3608 0.3647 +vn 0.8647 0.2672 0.4253 +vn 0.8736 0.2629 0.4095 +vn 0.8681 0.3085 0.3890 +vn 0.8569 0.3149 0.4081 +vn 0.8450 0.3208 0.4278 +vn 0.8566 0.2704 0.4394 +vn 0.8329 0.3733 0.4086 +vn 0.8346 0.3242 0.4454 +vn 0.8458 0.2744 0.4576 +vn 0.8209 0.3769 0.4289 +vn 0.7964 0.4859 0.3602 +vn 0.8165 0.4297 0.3855 +vn 0.7802 0.4910 0.3875 +vn 0.8019 0.4345 0.4101 +vn 0.7732 0.4381 0.4586 +vn 0.7877 0.4373 0.4339 +vn 0.7641 0.4943 0.4146 +vn 0.7472 0.4952 0.4433 +vn 0.7955 0.3811 0.4711 +vn 0.8087 0.3796 0.4493 +vn 0.8268 0.2763 0.4900 +vn 0.8376 0.2758 0.4716 +vn 0.8251 0.3259 0.4616 +vn 0.8131 0.3266 0.4818 +vn 0.7182 -0.5504 0.4259 +vn 0.7370 -0.5492 0.3941 +vn 0.6861 -0.6033 0.4066 +vn 0.7065 -0.6021 0.3720 +vn 0.7544 -0.5455 0.3651 +vn 0.7260 -0.5985 0.3387 +vn 0.6126 -0.7021 0.3630 +vn 0.6366 -0.7003 0.3230 +vn 0.6731 -0.6525 0.3481 +vn 0.6509 -0.6539 0.3857 +vn 0.6595 -0.6961 0.2839 +vn 0.6944 -0.6484 0.3122 +vn 0.7377 -0.6314 0.2390 +vn 0.7156 -0.6414 0.2764 +vn 0.6824 -0.6887 0.2451 +vn 0.7057 -0.6780 0.2054 +vn 0.7664 -0.5824 0.2710 +vn 0.7459 -0.5922 0.3049 +vn 0.7730 -0.5397 0.3336 +vn 0.7918 -0.5311 0.3018 +vn 0.8082 -0.5212 0.2741 +vn 0.7850 -0.5714 0.2395 +vn 0.8257 -0.5084 0.2445 +vn 0.8038 -0.5578 0.2070 +vn 0.7286 -0.6641 0.1676 +vn 0.7586 -0.6190 0.2034 +vn 0.7503 -0.6481 0.1306 +vn 0.7784 -0.6045 0.1691 +vn 0.8183 -0.5656 0.1025 +vn 0.7984 -0.5865 0.1361 +vn 0.7711 -0.6297 0.0945 +vn 0.7917 -0.6080 0.0593 +vn 0.8404 -0.5220 0.1456 +vn 0.8228 -0.5406 0.1753 +vn 0.8431 -0.4931 0.2146 +vn 0.8589 -0.4765 0.1877 +vn 0.8746 -0.4572 0.1613 +vn 0.8571 -0.5016 0.1175 +vn 0.8894 -0.4362 0.1367 +vn 0.8732 -0.4790 0.0897 +vn 0.8119 -0.5832 0.0258 +vn 0.8369 -0.5428 0.0710 +vn 0.8314 -0.5556 -0.0067 +vn 0.8542 -0.5183 0.0413 +vn 0.8866 -0.4624 -0.0145 +vn 0.8708 -0.4915 0.0124 +vn 0.8494 -0.5264 -0.0369 +vn 0.8662 -0.4954 -0.0659 +vn 0.9038 -0.4263 0.0375 +vn 0.8890 -0.4536 0.0625 +vn 0.9037 -0.4131 0.1127 +vn 0.9172 -0.3881 0.0897 +vn 0.9296 -0.3620 0.0687 +vn 0.9174 -0.3977 0.0149 +vn 0.9407 -0.3354 0.0501 +vn 0.9301 -0.3672 -0.0065 +vn 0.8814 -0.4633 -0.0923 +vn 0.9011 -0.4318 -0.0389 +vn 0.8965 -0.4271 -0.1178 +vn 0.9153 -0.3980 -0.0625 +vn 0.9395 -0.3266 -0.1036 +vn 0.9286 -0.3612 -0.0855 +vn 0.9107 -0.3880 -0.1418 +vn 0.9224 -0.3509 -0.1614 +vn 0.9525 -0.3012 -0.0453 +vn 0.9423 -0.3337 -0.0276 +vn 0.9519 -0.3050 0.0305 +vn 0.9613 -0.2750 0.0136 +vn 0.9701 -0.2428 -0.0013 +vn 0.9619 -0.2664 -0.0609 +vn 0.9778 -0.2090 -0.0147 +vn 0.9703 -0.2299 -0.0747 +vn 0.9334 -0.3100 -0.1807 +vn 0.9497 -0.2895 -0.1199 +vn 0.9431 -0.2675 -0.1976 +vn 0.9588 -0.2492 -0.1362 +vn 0.9726 -0.1685 -0.1603 +vn 0.9662 -0.2099 -0.1494 +vn 0.9513 -0.2256 -0.2102 +vn 0.9581 -0.1803 -0.2226 +vn 0.9831 -0.1552 -0.0970 +vn 0.9770 -0.1952 -0.0858 +vn 0.9838 -0.1776 -0.0246 +vn 0.9893 -0.1419 -0.0335 +vn 0.9935 -0.1058 -0.0412 +vn 0.9877 -0.1159 -0.1046 +vn 0.9963 -0.0719 -0.0461 +vn 0.9908 -0.0784 -0.1100 +vn 0.9632 -0.1364 -0.2316 +vn 0.9775 -0.1266 -0.1685 +vn 0.9671 -0.0917 -0.2373 +vn 0.9811 -0.0847 -0.1739 +vn 0.9839 0.0000 -0.1788 +vn 0.9831 -0.0439 -0.1775 +vn 0.9693 -0.0467 -0.2412 +vn 0.9701 0.0000 -0.2425 +vn 0.9934 0.0000 -0.1145 +vn 0.9927 -0.0409 -0.1134 +vn 0.9981 -0.0371 -0.0489 +vn 0.9988 -0.0000 -0.0497 +vn 0.9981 0.0371 -0.0489 +vn 0.9927 0.0409 -0.1134 +vn 0.9963 0.0722 -0.0462 +vn 0.9908 0.0784 -0.1100 +vn 0.9693 0.0467 -0.2412 +vn 0.9831 0.0439 -0.1775 +vn 0.9671 0.0914 -0.2375 +vn 0.9812 0.0844 -0.1738 +vn 0.9725 0.1690 -0.1605 +vn 0.9775 0.1266 -0.1685 +vn 0.9632 0.1367 -0.2314 +vn 0.9581 0.1803 -0.2226 +vn 0.9831 0.1555 -0.0967 +vn 0.9879 0.1150 -0.1042 +vn 0.9935 0.1062 -0.0413 +vn 0.9893 0.1419 -0.0335 +vn 0.9838 0.1776 -0.0241 +vn 0.9769 0.1952 -0.0865 +vn 0.9778 0.2092 -0.0144 +vn 0.9704 0.2297 -0.0749 +vn 0.9512 0.2253 -0.2107 +vn 0.9665 0.2093 -0.1488 +vn 0.9431 0.2677 -0.1973 +vn 0.9587 0.2497 -0.1363 +vn 0.9395 0.3266 -0.1036 +vn 0.9497 0.2890 -0.1205 +vn 0.9334 0.3100 -0.1806 +vn 0.9224 0.3506 -0.1618 +vn 0.9525 0.3012 -0.0453 +vn 0.9619 0.2664 -0.0609 +vn 0.9701 0.2428 -0.0013 +vn 0.9614 0.2747 0.0136 +vn 0.9519 0.3050 0.0305 +vn 0.9423 0.3337 -0.0276 +vn 0.9409 0.3352 0.0496 +vn 0.9301 0.3672 -0.0065 +vn 0.9107 0.3879 -0.1418 +vn 0.9285 0.3614 -0.0851 +vn 0.8965 0.4271 -0.1178 +vn 0.9153 0.3980 -0.0625 +vn 0.8866 0.4624 -0.0145 +vn 0.9009 0.4322 -0.0389 +vn 0.8812 0.4636 -0.0923 +vn 0.8662 0.4954 -0.0659 +vn 0.9038 0.4263 0.0375 +vn 0.9175 0.3974 0.0149 +vn 0.9296 0.3620 0.0687 +vn 0.9172 0.3881 0.0897 +vn 0.9037 0.4131 0.1127 +vn 0.8890 0.4536 0.0625 +vn 0.8896 0.4359 0.1366 +vn 0.8731 0.4792 0.0892 +vn 0.8494 0.5264 -0.0369 +vn 0.8706 0.4919 0.0124 +vn 0.8317 0.5552 -0.0063 +vn 0.8542 0.5183 0.0413 +vn 0.8182 0.5656 0.1029 +vn 0.8373 0.5421 0.0713 +vn 0.8120 0.5832 0.0258 +vn 0.7915 0.6082 0.0594 +vn 0.8404 0.5220 0.1456 +vn 0.8568 0.5023 0.1170 +vn 0.8749 0.4568 0.1612 +vn 0.8586 0.4770 0.1879 +vn 0.8434 0.4926 0.2146 +vn 0.8233 0.5399 0.1750 +vn 0.8257 0.5084 0.2445 +vn 0.8034 0.5581 0.2076 +vn 0.7709 0.6299 0.0946 +vn 0.7982 0.5868 0.1358 +vn 0.7503 0.6481 0.1306 +vn 0.7779 0.6050 0.1697 +vn 0.7377 0.6314 0.2390 +vn 0.7589 0.6187 0.2032 +vn 0.7290 0.6638 0.1674 +vn 0.7057 0.6780 0.2059 +vn 0.7664 0.5825 0.2710 +vn 0.7851 0.5714 0.2391 +vn 0.8084 0.5212 0.2736 +vn 0.7920 0.5309 0.3016 +vn 0.7730 0.5397 0.3336 +vn 0.7458 0.5921 0.3054 +vn 0.7545 0.5457 0.3646 +vn 0.7258 0.5985 0.3391 +vn 0.6828 0.6884 0.2449 +vn 0.7154 0.6417 0.2762 +vn 0.6595 0.6961 0.2839 +vn 0.6944 0.6484 0.3122 +vn 0.6509 0.6539 0.3857 +vn 0.6731 0.6525 0.3481 +vn 0.6362 0.7007 0.3228 +vn 0.6126 0.7021 0.3630 +vn 0.6861 0.6033 0.4066 +vn 0.7065 0.6021 0.3719 +vn 0.7370 0.5492 0.3941 +vn 0.7182 0.5504 0.4259 +vn 0.5718 -0.7471 0.3388 +vn 0.5974 -0.7456 0.2955 +vn 0.5286 -0.7891 0.3130 +vn 0.5557 -0.7872 0.2674 +vn 0.6215 -0.7409 0.2543 +vn 0.5814 -0.7822 0.2238 +vn 0.4343 -0.8633 0.2570 +vn 0.4636 -0.8613 0.2079 +vn 0.5108 -0.8260 0.2382 +vn 0.4824 -0.8281 0.2856 +vn 0.4925 -0.8556 0.1596 +vn 0.5383 -0.8206 0.1920 +vn 0.5925 -0.7993 0.1002 +vn 0.5656 -0.8117 0.1459 +vn 0.5213 -0.8461 0.1116 +vn 0.5495 -0.8330 0.0640 +vn 0.6327 -0.7624 0.1361 +vn 0.6072 -0.7739 0.1798 +vn 0.6461 -0.7330 0.2129 +vn 0.6704 -0.7218 0.1719 +vn 0.6947 -0.7072 0.1312 +vn 0.6576 -0.7475 0.0940 +vn 0.7187 -0.6893 0.0913 +vn 0.6828 -0.7287 0.0519 +vn 0.5770 -0.8165 0.0178 +vn 0.6186 -0.7837 0.0558 +vn 0.6042 -0.7964 -0.0279 +vn 0.6445 -0.7645 0.0112 +vn 0.6941 -0.7164 -0.0715 +vn 0.6697 -0.7420 -0.0309 +vn 0.6303 -0.7730 -0.0721 +vn 0.6556 -0.7463 -0.1153 +vn 0.7302 -0.6826 -0.0285 +vn 0.7070 -0.7072 0.0110 +vn 0.7412 -0.6692 0.0529 +vn 0.7628 -0.6464 0.0166 +vn 0.7838 -0.6207 -0.0200 +vn 0.7527 -0.6550 -0.0663 +vn 0.8040 -0.5922 -0.0539 +vn 0.7738 -0.6252 -0.1023 +vn 0.6797 -0.7166 -0.1565 +vn 0.7177 -0.6874 -0.1115 +vn 0.7034 -0.6833 -0.1956 +vn 0.7405 -0.6552 -0.1495 +vn 0.7817 -0.5838 -0.2191 +vn 0.7615 -0.6211 -0.1851 +vn 0.7254 -0.6474 -0.2339 +vn 0.7461 -0.6089 -0.2694 +vn 0.8134 -0.5566 -0.1688 +vn 0.7940 -0.5924 -0.1367 +vn 0.8236 -0.5605 -0.0871 +vn 0.8418 -0.5268 -0.1179 +vn 0.8580 -0.4925 -0.1459 +vn 0.8310 -0.5195 -0.1991 +vn 0.8738 -0.4544 -0.1729 +vn 0.8474 -0.4798 -0.2275 +vn 0.7662 -0.5669 -0.3026 +vn 0.8006 -0.5440 -0.2513 +vn 0.7842 -0.5235 -0.3332 +vn 0.8175 -0.5028 -0.2808 +vn 0.8481 -0.4124 -0.3326 +vn 0.8335 -0.4587 -0.3080 +vn 0.8004 -0.4781 -0.3615 +vn 0.8156 -0.4296 -0.3876 +vn 0.8768 -0.3932 -0.2768 +vn 0.8629 -0.4371 -0.2537 +vn 0.8888 -0.4133 -0.1980 +vn 0.9016 -0.3726 -0.2198 +vn 0.9132 -0.3292 -0.2404 +vn 0.8891 -0.3477 -0.2976 +vn 0.9233 -0.2857 -0.2566 +vn 0.8997 -0.3014 -0.3158 +vn 0.8291 -0.3804 -0.4097 +vn 0.8609 -0.3649 -0.3545 +vn 0.8410 -0.3292 -0.4293 +vn 0.8722 -0.3157 -0.3735 +vn 0.8899 -0.2140 -0.4028 +vn 0.8820 -0.2647 -0.3900 +vn 0.8509 -0.2758 -0.4470 +vn 0.8591 -0.2226 -0.4609 +vn 0.9165 -0.2032 -0.3445 +vn 0.9088 -0.2522 -0.3323 +vn 0.9321 -0.2395 -0.2717 +vn 0.9393 -0.1915 -0.2846 +vn 0.9449 -0.1457 -0.2933 +vn 0.9225 -0.1538 -0.3541 +vn 0.9489 -0.0975 -0.3000 +vn 0.9267 -0.1026 -0.3617 +vn 0.8656 -0.1679 -0.4718 +vn 0.8960 -0.1612 -0.4139 +vn 0.8702 -0.1124 -0.4797 +vn 0.9004 -0.1079 -0.4215 +vn 0.9039 -0.0000 -0.4277 +vn 0.9030 -0.0550 -0.4261 +vn 0.8728 -0.0569 -0.4847 +vn 0.8738 -0.0000 -0.4864 +vn 0.9302 -0.0000 -0.3671 +vn 0.9293 -0.0530 -0.3654 +vn 0.9514 -0.0497 -0.3041 +vn 0.9523 -0.0000 -0.3053 +vn 0.9514 0.0492 -0.3039 +vn 0.9292 0.0527 -0.3657 +vn 0.9489 0.0975 -0.3000 +vn 0.9267 0.1028 -0.3614 +vn 0.8728 0.0569 -0.4847 +vn 0.9030 0.0550 -0.4261 +vn 0.8702 0.1124 -0.4797 +vn 0.9004 0.1079 -0.4215 +vn 0.8898 0.2135 -0.4033 +vn 0.8958 0.1615 -0.4140 +vn 0.8658 0.1675 -0.4716 +vn 0.8591 0.2226 -0.4609 +vn 0.9165 0.2032 -0.3445 +vn 0.9225 0.1538 -0.3541 +vn 0.9450 0.1453 -0.2930 +vn 0.9394 0.1918 -0.2843 +vn 0.9321 0.2395 -0.2717 +vn 0.9089 0.2525 -0.3319 +vn 0.9233 0.2854 -0.2570 +vn 0.8997 0.3014 -0.3158 +vn 0.8509 0.2758 -0.4470 +vn 0.8820 0.2647 -0.3900 +vn 0.8407 0.3293 -0.4298 +vn 0.8725 0.3153 -0.3734 +vn 0.8481 0.4124 -0.3327 +vn 0.8607 0.3653 -0.3546 +vn 0.8291 0.3804 -0.4097 +vn 0.8160 0.4294 -0.3871 +vn 0.8768 0.3932 -0.2768 +vn 0.8892 0.3474 -0.2976 +vn 0.9130 0.3299 -0.2401 +vn 0.9019 0.3720 -0.2197 +vn 0.8888 0.4133 -0.1980 +vn 0.8629 0.4371 -0.2537 +vn 0.8738 0.4544 -0.1729 +vn 0.8471 0.4802 -0.2275 +vn 0.8003 0.4784 -0.3615 +vn 0.8335 0.4587 -0.3080 +vn 0.7842 0.5235 -0.3332 +vn 0.8173 0.5031 -0.2809 +vn 0.7818 0.5838 -0.2191 +vn 0.8008 0.5436 -0.2513 +vn 0.7666 0.5664 -0.3025 +vn 0.7461 0.6090 -0.2691 +vn 0.8136 0.5562 -0.1691 +vn 0.8310 0.5195 -0.1991 +vn 0.8580 0.4925 -0.1459 +vn 0.8421 0.5262 -0.1179 +vn 0.8238 0.5602 -0.0871 +vn 0.7937 0.5928 -0.1367 +vn 0.8037 0.5925 -0.0543 +vn 0.7738 0.6252 -0.1023 +vn 0.7254 0.6474 -0.2339 +vn 0.7615 0.6211 -0.1851 +vn 0.7033 0.6832 -0.1963 +vn 0.7408 0.6549 -0.1496 +vn 0.6936 0.7168 -0.0719 +vn 0.7177 0.6874 -0.1115 +vn 0.6797 0.7166 -0.1565 +vn 0.6560 0.7459 -0.1154 +vn 0.7302 0.6826 -0.0280 +vn 0.7530 0.6547 -0.0660 +vn 0.7835 0.6211 -0.0199 +vn 0.7628 0.6464 0.0161 +vn 0.7412 0.6692 0.0532 +vn 0.7070 0.7072 0.0110 +vn 0.7191 0.6889 0.0911 +vn 0.6828 0.7288 0.0514 +vn 0.6303 0.7730 -0.0721 +vn 0.6700 0.7417 -0.0311 +vn 0.6042 0.7964 -0.0279 +vn 0.6445 0.7645 0.0116 +vn 0.5925 0.7993 0.1002 +vn 0.6186 0.7837 0.0558 +vn 0.5770 0.8165 0.0178 +vn 0.5495 0.8330 0.0640 +vn 0.6327 0.7624 0.1361 +vn 0.6576 0.7475 0.0937 +vn 0.6947 0.7072 0.1312 +vn 0.6702 0.7221 0.1717 +vn 0.6461 0.7330 0.2129 +vn 0.6072 0.7739 0.1798 +vn 0.6215 0.7409 0.2543 +vn 0.5814 0.7822 0.2238 +vn 0.5213 0.8461 0.1116 +vn 0.5656 0.8117 0.1459 +vn 0.4925 0.8555 0.1596 +vn 0.5383 0.8206 0.1920 +vn 0.4822 0.8283 0.2854 +vn 0.5108 0.8260 0.2382 +vn 0.4636 0.8613 0.2079 +vn 0.4343 0.8633 0.2570 +vn 0.5286 0.7891 0.3130 +vn 0.5561 0.7870 0.2672 +vn 0.5974 0.7456 0.2955 +vn 0.5718 0.7471 0.3388 +vn 0.3845 -0.8947 0.2274 +vn 0.4147 -0.8926 0.1767 +vn 0.3330 -0.9222 0.1967 +vn 0.3640 -0.9201 0.1446 +vn 0.4446 -0.8867 0.1267 +vn 0.3946 -0.9141 0.0930 +vn 0.2259 -0.9650 0.1330 +vn 0.2583 -0.9629 0.0783 +vn 0.3116 -0.9436 0.1117 +vn 0.2799 -0.9457 0.1651 +vn 0.2903 -0.9566 0.0241 +vn 0.3431 -0.9374 0.0588 +vn 0.4053 -0.9130 -0.0466 +vn 0.3742 -0.9273 0.0057 +vn 0.3223 -0.9462 -0.0296 +vn 0.3539 -0.9316 -0.0828 +vn 0.4555 -0.8902 -0.0098 +vn 0.4252 -0.9041 0.0418 +vn 0.4745 -0.8769 0.0770 +vn 0.5040 -0.8632 0.0274 +vn 0.5323 -0.8463 -0.0207 +vn 0.4850 -0.8725 -0.0599 +vn 0.5602 -0.8255 -0.0680 +vn 0.5137 -0.8512 -0.1078 +vn 0.3847 -0.9132 -0.1344 +vn 0.4359 -0.8947 -0.0972 +vn 0.4153 -0.8906 -0.1853 +vn 0.4656 -0.8728 -0.1465 +vn 0.5221 -0.8174 -0.2433 +vn 0.4943 -0.8468 -0.1965 +vn 0.4448 -0.8640 -0.2359 +vn 0.4730 -0.8342 -0.2836 +vn 0.5692 -0.7970 -0.2021 +vn 0.5420 -0.8259 -0.1554 +vn 0.5875 -0.8012 -0.1140 +vn 0.6138 -0.7733 -0.1589 +vn 0.6388 -0.7426 -0.2012 +vn 0.5949 -0.7655 -0.2449 +vn 0.6632 -0.7080 -0.2427 +vn 0.6202 -0.7299 -0.2872 +vn 0.5001 -0.8008 -0.3295 +vn 0.5485 -0.7851 -0.2879 +vn 0.5260 -0.7639 -0.3739 +vn 0.5741 -0.7487 -0.3314 +vn 0.6218 -0.6663 -0.4116 +vn 0.5988 -0.7089 -0.3728 +vn 0.5508 -0.7236 -0.4159 +vn 0.5745 -0.6806 -0.4546 +vn 0.6662 -0.6501 -0.3654 +vn 0.6443 -0.6912 -0.3273 +vn 0.6863 -0.6706 -0.2817 +vn 0.7074 -0.6312 -0.3179 +vn 0.7280 -0.5880 -0.3525 +vn 0.6868 -0.6063 -0.4009 +vn 0.7471 -0.5424 -0.3842 +vn 0.7064 -0.5596 -0.4334 +vn 0.5964 -0.6342 -0.4920 +vn 0.6433 -0.6215 -0.4471 +vn 0.6167 -0.5853 -0.5264 +vn 0.6632 -0.5736 -0.4808 +vn 0.6982 -0.4709 -0.5392 +vn 0.6815 -0.5232 -0.5117 +vn 0.6353 -0.5340 -0.5579 +vn 0.6520 -0.4802 -0.5867 +vn 0.7403 -0.4592 -0.4910 +vn 0.7243 -0.5099 -0.4641 +vn 0.7643 -0.4950 -0.4133 +vn 0.7797 -0.4456 -0.4399 +vn 0.7937 -0.3945 -0.4629 +vn 0.7544 -0.4058 -0.5159 +vn 0.8056 -0.3401 -0.4852 +vn 0.7671 -0.3507 -0.5372 +vn 0.6674 -0.4249 -0.6116 +vn 0.7129 -0.4158 -0.5647 +vn 0.6805 -0.3677 -0.6338 +vn 0.7262 -0.3605 -0.5854 +vn 0.7458 -0.2434 -0.6201 +vn 0.7372 -0.3031 -0.6039 +vn 0.6914 -0.3085 -0.6532 +vn 0.7003 -0.2479 -0.6694 +vn 0.7872 -0.2381 -0.5690 +vn 0.7782 -0.2955 -0.5541 +vn 0.8159 -0.2858 -0.5026 +vn 0.8247 -0.2309 -0.5163 +vn 0.8315 -0.1739 -0.5276 +vn 0.7938 -0.1789 -0.5813 +vn 0.8362 -0.1162 -0.5360 +vn 0.7987 -0.1197 -0.5897 +vn 0.7078 -0.1871 -0.6812 +vn 0.7527 -0.1832 -0.6324 +vn 0.7131 -0.1253 -0.6898 +vn 0.7577 -0.1227 -0.6410 +vn 0.7616 -0.0000 -0.6480 +vn 0.7607 -0.0617 -0.6462 +vn 0.7163 -0.0629 -0.6950 +vn 0.7173 0.0000 -0.6967 +vn 0.8026 -0.0000 -0.5966 +vn 0.8016 -0.0604 -0.5948 +vn 0.8390 -0.0588 -0.5409 +vn 0.8400 -0.0000 -0.5426 +vn 0.8390 0.0587 -0.5409 +vn 0.8016 0.0604 -0.5948 +vn 0.8362 0.1162 -0.5360 +vn 0.7987 0.1197 -0.5898 +vn 0.7163 0.0629 -0.6950 +vn 0.7607 0.0617 -0.6462 +vn 0.7131 0.1253 -0.6898 +vn 0.7577 0.1227 -0.6410 +vn 0.7458 0.2434 -0.6201 +vn 0.7527 0.1832 -0.6324 +vn 0.7078 0.1871 -0.6812 +vn 0.7005 0.2481 -0.6691 +vn 0.7870 0.2378 -0.5692 +vn 0.7938 0.1789 -0.5813 +vn 0.8315 0.1739 -0.5276 +vn 0.8247 0.2309 -0.5163 +vn 0.8160 0.2860 -0.5023 +vn 0.7781 0.2953 -0.5543 +vn 0.8057 0.3405 -0.4847 +vn 0.7672 0.3509 -0.5369 +vn 0.6914 0.3085 -0.6532 +vn 0.7370 0.3028 -0.6043 +vn 0.6805 0.3677 -0.6338 +vn 0.7260 0.3603 -0.5857 +vn 0.6981 0.4706 -0.5396 +vn 0.7130 0.4160 -0.5644 +vn 0.6674 0.4249 -0.6116 +vn 0.6522 0.4804 -0.5865 +vn 0.7406 0.4588 -0.4909 +vn 0.7545 0.4060 -0.5157 +vn 0.7936 0.3942 -0.4635 +vn 0.7793 0.4462 -0.4400 +vn 0.7643 0.4950 -0.4133 +vn 0.7244 0.5101 -0.4638 +vn 0.7471 0.5424 -0.3842 +vn 0.7063 0.5595 -0.4337 +vn 0.6353 0.5340 -0.5579 +vn 0.6815 0.5232 -0.5117 +vn 0.6167 0.5853 -0.5264 +vn 0.6632 0.5736 -0.4808 +vn 0.6222 0.6662 -0.4111 +vn 0.6433 0.6215 -0.4471 +vn 0.5964 0.6342 -0.4920 +vn 0.5744 0.6804 -0.4551 +vn 0.6662 0.6501 -0.3654 +vn 0.6868 0.6063 -0.4009 +vn 0.7280 0.5880 -0.3525 +vn 0.7074 0.6312 -0.3179 +vn 0.6866 0.6702 -0.2817 +vn 0.6443 0.6910 -0.3277 +vn 0.6632 0.7081 -0.2423 +vn 0.6202 0.7299 -0.2872 +vn 0.5508 0.7236 -0.4159 +vn 0.5988 0.7089 -0.3728 +vn 0.5260 0.7639 -0.3739 +vn 0.5741 0.7487 -0.3314 +vn 0.5221 0.8174 -0.2433 +vn 0.5485 0.7851 -0.2879 +vn 0.5001 0.8008 -0.3295 +vn 0.4730 0.8342 -0.2836 +vn 0.5693 0.7970 -0.2016 +vn 0.5949 0.7655 -0.2449 +vn 0.6388 0.7426 -0.2012 +vn 0.6138 0.7733 -0.1589 +vn 0.5878 0.8009 -0.1141 +vn 0.5420 0.8259 -0.1554 +vn 0.5602 0.8255 -0.0680 +vn 0.5137 0.8512 -0.1078 +vn 0.4448 0.8640 -0.2359 +vn 0.4943 0.8468 -0.1962 +vn 0.4151 0.8906 -0.1857 +vn 0.4659 0.8725 -0.1470 +vn 0.4053 0.9130 -0.0466 +vn 0.4356 0.8949 -0.0972 +vn 0.3847 0.9132 -0.1344 +vn 0.3539 0.9316 -0.0828 +vn 0.4559 0.8900 -0.0101 +vn 0.4855 0.8722 -0.0597 +vn 0.5320 0.8465 -0.0206 +vn 0.5040 0.8632 0.0274 +vn 0.4745 0.8769 0.0770 +vn 0.4246 0.9044 0.0416 +vn 0.4446 0.8867 0.1267 +vn 0.3946 0.9141 0.0930 +vn 0.3223 0.9462 -0.0296 +vn 0.3742 0.9273 0.0057 +vn 0.2904 0.9566 0.0241 +vn 0.3431 0.9375 0.0585 +vn 0.2799 0.9457 0.1651 +vn 0.3116 0.9436 0.1117 +vn 0.2583 0.9629 0.0783 +vn 0.2259 0.9650 0.1330 +vn 0.3329 0.9222 0.1967 +vn 0.3640 0.9201 0.1446 +vn 0.4147 0.8926 0.1767 +vn 0.3845 0.8947 0.2274 +vn 0.1728 -0.9797 0.1014 +vn 0.2053 -0.9777 0.0449 +vn 0.1165 -0.9909 0.0677 +vn 0.1506 -0.9885 0.0106 +vn 0.2372 -0.9714 -0.0096 +vn 0.1828 -0.9821 -0.0458 +vn 0.0395 -0.9990 0.0223 +vn 0.0695 -0.9962 -0.0526 +vn 0.0969 -0.9950 -0.0254 +vn 0.0684 -0.9969 0.0399 +vn 0.0986 -0.9903 -0.0979 +vn 0.1267 -0.9886 -0.0814 +vn 0.1900 -0.9632 -0.1904 +vn 0.1587 -0.9778 -0.1367 +vn 0.1307 -0.9793 -0.1547 +vn 0.1617 -0.9646 -0.2082 +vn 0.2457 -0.9569 -0.1551 +vn 0.2141 -0.9715 -0.1016 +vn 0.2688 -0.9610 -0.0653 +vn 0.3004 -0.9463 -0.1198 +vn 0.3316 -0.9277 -0.1714 +vn 0.2772 -0.9379 -0.2085 +vn 0.3624 -0.9047 -0.2240 +vn 0.3082 -0.9148 -0.2610 +vn 0.1935 -0.9456 -0.2616 +vn 0.2217 -0.9440 -0.2442 +vn 0.2247 -0.9223 -0.3143 +vn 0.2529 -0.9208 -0.2968 +vn 0.3129 -0.8627 -0.3974 +vn 0.2834 -0.8937 -0.3479 +vn 0.2551 -0.8952 -0.3656 +vn 0.2845 -0.8641 -0.4151 +vn 0.3682 -0.8569 -0.3609 +vn 0.3387 -0.8878 -0.3115 +vn 0.3927 -0.8777 -0.2746 +vn 0.4216 -0.8473 -0.3229 +vn 0.4494 -0.8133 -0.3697 +vn 0.3964 -0.8224 -0.4081 +vn 0.4759 -0.7757 -0.4146 +vn 0.4235 -0.7842 -0.4534 +vn 0.3128 -0.8294 -0.4628 +vn 0.3414 -0.8280 -0.4449 +vn 0.3403 -0.7910 -0.5084 +vn 0.3687 -0.7896 -0.4904 +vn 0.4190 -0.7030 -0.5747 +vn 0.3946 -0.7480 -0.5337 +vn 0.3665 -0.7494 -0.5514 +vn 0.3909 -0.7041 -0.5928 +vn 0.4731 -0.6984 -0.5370 +vn 0.4490 -0.7430 -0.4963 +vn 0.5009 -0.7350 -0.4571 +vn 0.5245 -0.6911 -0.4974 +vn 0.5465 -0.6441 -0.5352 +vn 0.4954 -0.6509 -0.5753 +vn 0.5670 -0.5946 -0.5701 +vn 0.5159 -0.6010 -0.6105 +vn 0.4139 -0.6564 -0.6308 +vn 0.4417 -0.6550 -0.6131 +vn 0.4350 -0.6056 -0.6664 +vn 0.4625 -0.6045 -0.6486 +vn 0.4989 -0.4964 -0.7104 +vn 0.4813 -0.5516 -0.6812 +vn 0.4544 -0.5526 -0.6987 +vn 0.4719 -0.4972 -0.7281 +vn 0.5521 -0.4933 -0.6722 +vn 0.5349 -0.5483 -0.6428 +vn 0.5860 -0.5423 -0.6021 +vn 0.6031 -0.4881 -0.6309 +vn 0.6183 -0.4317 -0.6568 +vn 0.5674 -0.4362 -0.6984 +vn 0.6314 -0.3732 -0.6797 +vn 0.5809 -0.3773 -0.7212 +vn 0.4875 -0.4398 -0.7543 +vn 0.5145 -0.4390 -0.7366 +vn 0.5010 -0.3805 -0.7773 +vn 0.5282 -0.3799 -0.7594 +vn 0.5494 -0.2571 -0.7950 +vn 0.5399 -0.3191 -0.7789 +vn 0.5126 -0.3197 -0.7969 +vn 0.5221 -0.2575 -0.8131 +vn 0.6023 -0.2553 -0.7563 +vn 0.5926 -0.3169 -0.7405 +vn 0.6428 -0.3133 -0.6990 +vn 0.6524 -0.2523 -0.7146 +vn 0.6600 -0.1903 -0.7268 +vn 0.6098 -0.1926 -0.7688 +vn 0.6655 -0.1274 -0.7355 +vn 0.6153 -0.1290 -0.7777 +vn 0.5295 -0.1942 -0.8258 +vn 0.5569 -0.1939 -0.8076 +vn 0.5348 -0.1301 -0.8349 +vn 0.5622 -0.1299 -0.8167 +vn 0.5666 0.0000 -0.8240 +vn 0.5655 -0.0653 -0.8222 +vn 0.5380 -0.0655 -0.8404 +vn 0.5391 0.0000 -0.8422 +vn 0.6197 0.0000 -0.7849 +vn 0.6186 -0.0648 -0.7831 +vn 0.6688 -0.0640 -0.7407 +vn 0.6699 0.0000 -0.7424 +vn 0.6688 0.0640 -0.7407 +vn 0.6186 0.0648 -0.7831 +vn 0.6655 0.1274 -0.7355 +vn 0.6153 0.1290 -0.7777 +vn 0.5380 0.0655 -0.8404 +vn 0.5655 0.0653 -0.8222 +vn 0.5348 0.1301 -0.8349 +vn 0.5622 0.1299 -0.8167 +vn 0.5494 0.2571 -0.7950 +vn 0.5569 0.1939 -0.8076 +vn 0.5295 0.1942 -0.8258 +vn 0.5221 0.2575 -0.8131 +vn 0.6023 0.2553 -0.7563 +vn 0.6098 0.1926 -0.7688 +vn 0.6600 0.1903 -0.7268 +vn 0.6524 0.2523 -0.7146 +vn 0.6428 0.3133 -0.6990 +vn 0.5926 0.3169 -0.7405 +vn 0.6314 0.3732 -0.6797 +vn 0.5809 0.3773 -0.7212 +vn 0.5126 0.3197 -0.7969 +vn 0.5399 0.3191 -0.7789 +vn 0.5010 0.3805 -0.7773 +vn 0.5282 0.3799 -0.7594 +vn 0.4989 0.4964 -0.7104 +vn 0.5145 0.4390 -0.7366 +vn 0.4875 0.4398 -0.7543 +vn 0.4719 0.4972 -0.7281 +vn 0.5521 0.4933 -0.6722 +vn 0.5674 0.4362 -0.6984 +vn 0.6183 0.4317 -0.6568 +vn 0.6031 0.4881 -0.6309 +vn 0.5860 0.5423 -0.6021 +vn 0.5349 0.5483 -0.6428 +vn 0.5670 0.5946 -0.5701 +vn 0.5156 0.6012 -0.6105 +vn 0.4544 0.5526 -0.6987 +vn 0.4815 0.5518 -0.6809 +vn 0.4350 0.6056 -0.6664 +vn 0.4625 0.6047 -0.6484 +vn 0.4190 0.7030 -0.5747 +vn 0.4417 0.6550 -0.6131 +vn 0.4138 0.6561 -0.6311 +vn 0.3909 0.7041 -0.5928 +vn 0.4731 0.6984 -0.5370 +vn 0.4954 0.6509 -0.5753 +vn 0.5461 0.6444 -0.5353 +vn 0.5248 0.6908 -0.4974 +vn 0.5009 0.7350 -0.4571 +vn 0.4490 0.7430 -0.4963 +vn 0.4759 0.7757 -0.4146 +vn 0.4235 0.7842 -0.4534 +vn 0.3664 0.7492 -0.5517 +vn 0.3946 0.7480 -0.5337 +vn 0.3403 0.7910 -0.5084 +vn 0.3687 0.7896 -0.4904 +vn 0.3129 0.8627 -0.3974 +vn 0.3414 0.8280 -0.4449 +vn 0.3128 0.8294 -0.4628 +vn 0.2845 0.8641 -0.4151 +vn 0.3682 0.8569 -0.3609 +vn 0.3964 0.8224 -0.4081 +vn 0.4494 0.8133 -0.3697 +vn 0.4216 0.8473 -0.3229 +vn 0.3932 0.8775 -0.2746 +vn 0.3387 0.8877 -0.3119 +vn 0.3624 0.9047 -0.2240 +vn 0.3082 0.9148 -0.2610 +vn 0.2551 0.8952 -0.3656 +vn 0.2834 0.8937 -0.3479 +vn 0.2247 0.9223 -0.3143 +vn 0.2529 0.9208 -0.2968 +vn 0.1900 0.9632 -0.1904 +vn 0.2217 0.9440 -0.2442 +vn 0.1935 0.9456 -0.2616 +vn 0.1617 0.9647 -0.2079 +vn 0.2457 0.9569 -0.1551 +vn 0.2772 0.9379 -0.2085 +vn 0.3315 0.9277 -0.1718 +vn 0.3004 0.9463 -0.1193 +vn 0.2683 0.9611 -0.0652 +vn 0.2141 0.9715 -0.1012 +vn 0.2366 0.9716 -0.0103 +vn 0.1828 0.9821 -0.0459 +vn 0.1312 0.9793 -0.1542 +vn 0.1587 0.9778 -0.1366 +vn 0.0992 0.9901 -0.0991 +vn 0.1275 0.9885 -0.0817 +vn 0.0626 0.9974 0.0367 +vn 0.0929 0.9954 -0.0244 +vn 0.0706 0.9966 -0.0435 +vn 0.0503 0.9983 0.0281 +vn 0.1169 0.9908 0.0681 +vn 0.1511 0.9885 0.0105 +vn 0.2050 0.9777 0.0450 +vn 0.1725 0.9798 0.1011 +vn 0.8793 -0.2221 0.4214 +vn 0.8693 -0.2279 0.4386 +vn 0.8879 -0.2159 0.4063 +vn 0.8847 -0.1857 0.4276 +vn 0.8750 -0.1908 0.4449 +vn 0.8918 -0.1813 0.4145 +vn 0.9022 -0.2035 0.3802 +vn 0.8964 -0.2084 0.3913 +vn 0.9042 -0.1710 0.3914 +vn 0.8988 -0.1763 0.4013 +vn 0.9052 -0.1179 0.4084 +vn 0.9019 -0.1463 0.4064 +vn 0.9073 -0.1411 0.3961 +vn 0.9106 -0.1136 0.3974 +vn 0.8984 -0.1212 0.4221 +vn 0.8952 -0.1506 0.4194 +vn 0.8798 -0.1570 0.4486 +vn 0.8886 -0.1538 0.4322 +vn 0.8916 -0.1237 0.4357 +vn 0.9086 -0.1963 0.3686 +vn 0.9170 -0.1858 0.3529 +vn 0.9105 -0.1642 0.3794 +vn 0.9175 -0.1564 0.3657 +vn 0.9291 -0.1667 0.3301 +vn 0.9240 -0.1765 0.3391 +vn 0.9298 -0.1401 0.3403 +vn 0.9253 -0.1477 0.3492 +vn 0.9270 -0.0987 0.3618 +vn 0.9259 -0.1231 0.3570 +vn 0.9319 -0.1162 0.3435 +vn 0.9336 -0.0933 0.3460 +vn 0.9209 -0.1035 0.3757 +vn 0.9188 -0.1289 0.3732 +vn 0.9131 -0.1352 0.3846 +vn 0.9166 -0.1087 0.3847 +vn 0.9360 -0.1550 0.3161 +vn 0.9426 -0.1457 0.3005 +vn 0.9356 -0.1300 0.3283 +vn 0.9430 -0.1217 0.3098 +vn 0.9495 -0.1384 0.2815 +vn 0.9507 -0.1176 0.2870 +vn 0.9553 -0.0810 0.2843 +vn 0.9528 -0.0978 0.2874 +vn 0.9469 -0.0837 0.3105 +vn 0.9447 -0.1007 0.3122 +vn 0.9375 -0.1084 0.3305 +vn 0.9401 -0.0870 0.3297 +vn 0.9599 0.0225 0.2793 +vn 0.9603 -0.0001 0.2788 +vn 0.9590 0.0390 0.2807 +vn 0.9511 0.0226 0.3082 +vn 0.9514 -0.0000 0.3081 +vn 0.9502 0.0393 0.3091 +vn 0.9555 0.0806 0.2838 +vn 0.9574 0.0612 0.2821 +vn 0.9470 0.0832 0.3102 +vn 0.9488 0.0620 0.3096 +vn 0.9355 0.0683 0.3465 +vn 0.9413 0.0647 0.3313 +vn 0.9403 0.0866 0.3290 +vn 0.9340 0.0927 0.3450 +vn 0.9373 0.0464 0.3454 +vn 0.9430 0.0418 0.3300 +vn 0.9391 -0.0002 0.3436 +vn 0.9446 -0.0001 0.3282 +vn 0.9443 0.0238 0.3282 +vn 0.9389 0.0255 0.3433 +vn 0.9337 0.0266 0.3572 +vn 0.9339 -0.0001 0.3576 +vn 0.9323 0.0498 0.3582 +vn 0.9279 0.0277 0.3719 +vn 0.9281 -0.0002 0.3724 +vn 0.9265 0.0529 0.3725 +vn 0.9276 0.0979 0.3604 +vn 0.9301 0.0725 0.3601 +vn 0.9215 0.1023 0.3747 +vn 0.9242 0.0777 0.3740 +vn 0.9136 0.0851 0.3975 +vn 0.9200 0.0815 0.3834 +vn 0.9170 0.1073 0.3842 +vn 0.9109 0.1123 0.3971 +vn 0.9157 0.0575 0.3976 +vn 0.9221 0.0554 0.3831 +vn 0.9174 -0.0003 0.3980 +vn 0.9234 -0.0002 0.3837 +vn 0.9234 0.0284 0.3828 +vn 0.9172 0.0292 0.3974 +vn 0.9113 0.0295 0.4107 +vn 0.9114 -0.0003 0.4115 +vn 0.9103 0.0588 0.4098 +vn 0.9051 0.0298 0.4242 +vn 0.9052 -0.0002 0.4250 +vn 0.9036 0.0602 0.4241 +vn 0.9055 0.1162 0.4082 +vn 0.9082 0.0878 0.4092 +vn 0.8988 0.1194 0.4218 +vn 0.9015 0.0900 0.4232 +vn 0.8874 0.0933 0.4514 +vn 0.8949 0.0918 0.4368 +vn 0.8921 0.1221 0.4350 +vn 0.8845 0.1243 0.4497 +vn 0.8898 0.0620 0.4521 +vn 0.8968 0.0612 0.4381 +vn 0.8983 -0.0003 0.4394 +vn 0.8980 0.0305 0.4389 +vn 0.8912 0.0307 0.4526 +vn 0.8836 0.0314 0.4672 +vn 0.8820 0.0632 0.4671 +vn 0.8757 0.0320 0.4818 +vn 0.8741 0.0642 0.4815 +vn 0.8763 0.1261 0.4650 +vn 0.8794 0.0947 0.4666 +vn 0.8684 0.1276 0.4791 +vn 0.8717 0.0960 0.4806 +vn 0.8560 0.0970 0.5077 +vn 0.8637 0.0968 0.4946 +vn 0.8605 0.1286 0.4929 +vn 0.8529 0.1290 0.5058 +vn 0.8583 0.0649 0.5090 +vn 0.8660 0.0647 0.4959 +vn 0.8601 -0.0003 0.5101 +vn 0.8675 0.0323 0.4965 +vn 0.8597 0.0325 0.5098 +vn 0.8488 -0.1617 0.5034 +vn 0.8565 -0.1615 0.4903 +vn 0.8434 -0.1960 0.5002 +vn 0.8515 -0.1960 0.4863 +vn 0.8643 -0.1606 0.4766 +vn 0.8592 -0.1952 0.4730 +vn 0.8366 -0.2328 0.4960 +vn 0.8456 -0.2328 0.4804 +vn 0.8533 -0.2319 0.4670 +vn 0.8629 -0.2294 0.4502 +vn 0.8675 -0.1934 0.4584 +vn 0.8717 -0.1593 0.4634 +vn 0.9132 -0.0867 0.3981 +vn 0.9079 -0.0895 0.4094 +vn 0.9155 -0.0588 0.3981 +vn 0.9102 -0.0602 0.4098 +vn 0.9012 -0.0918 0.4236 +vn 0.9034 -0.0617 0.4244 +vn 0.9168 -0.0303 0.3981 +vn 0.9113 -0.0305 0.4106 +vn 0.9047 -0.0310 0.4249 +vn 0.8977 -0.0314 0.4395 +vn 0.8965 -0.0625 0.4387 +vn 0.8942 -0.0935 0.4377 +vn 0.9350 -0.0692 0.3477 +vn 0.9294 -0.0739 0.3615 +vn 0.9372 -0.0471 0.3455 +vn 0.9321 -0.0507 0.3586 +vn 0.9238 -0.0790 0.3747 +vn 0.9263 -0.0539 0.3730 +vn 0.9386 -0.0264 0.3440 +vn 0.9336 -0.0272 0.3574 +vn 0.9277 -0.0285 0.3723 +vn 0.9232 -0.0293 0.3831 +vn 0.9218 -0.0566 0.3835 +vn 0.9196 -0.0830 0.3840 +vn 0.9322 0.1156 0.3429 +vn 0.9266 0.1223 0.3556 +vn 0.9299 0.1397 0.3403 +vn 0.9258 0.1470 0.3483 +vn 0.9194 0.1279 0.3719 +vn 0.9181 0.1557 0.3646 +vn 0.9242 0.1761 0.3388 +vn 0.9293 0.1664 0.3297 +vn 0.9174 0.1851 0.3522 +vn 0.9025 0.2028 0.3799 +vn 0.9090 0.1953 0.3681 +vn 0.9044 0.1702 0.3912 +vn 0.9109 0.1635 0.3788 +vn 0.9136 0.1341 0.3839 +vn 0.9077 0.1399 0.3957 +vn 0.9022 0.1450 0.4062 +vn 0.8991 0.1753 0.4011 +vn 0.8956 0.1491 0.4192 +vn 0.8919 0.1802 0.4147 +vn 0.8965 0.2078 0.3913 +vn 0.8884 0.2147 0.4057 +vn 0.8695 0.2274 0.4385 +vn 0.8798 0.2212 0.4208 +vn 0.8759 0.1892 0.4439 +vn 0.8856 0.1839 0.4266 +vn 0.8888 0.1525 0.4321 +vn 0.8808 0.1555 0.4472 +vn 0.8725 0.1582 0.4624 +vn 0.8679 0.1926 0.4579 +vn 0.8644 0.1600 0.4767 +vn 0.8595 0.1946 0.4726 +vn 0.8628 0.2294 0.4504 +vn 0.8534 0.2317 0.4669 +vn 0.8366 0.2327 0.4960 +vn 0.8457 0.2326 0.4803 +vn 0.8435 0.1959 0.5002 +vn 0.8516 0.1958 0.4863 +vn 0.8565 0.1612 0.4904 +vn 0.8488 0.1615 0.5034 +vn 0.9573 -0.0615 0.2826 +vn 0.9589 -0.0388 0.2809 +vn 0.9487 -0.0624 0.3101 +vn 0.9500 -0.0399 0.3097 +vn 0.9599 -0.0228 0.2795 +vn 0.9510 -0.0230 0.3082 +vn 0.9442 -0.0241 0.3283 +vn 0.9428 -0.0424 0.3307 +vn 0.9409 -0.0653 0.3322 +vn 0.9529 0.0978 0.2871 +vn 0.9508 0.1175 0.2867 +vn 0.9447 0.1006 0.3122 +vn 0.9432 0.1213 0.3092 +vn 0.9495 0.1381 0.2817 +vn 0.9429 0.1452 0.2999 +vn 0.9363 0.1543 0.3155 +vn 0.9360 0.1293 0.3274 +vn 0.9378 0.1076 0.3299 +vn 0.8513 -0.0004 0.5246 +vn 0.8509 -0.0330 0.5242 +vn 0.8430 -0.0005 0.5379 +vn 0.8427 -0.0329 0.5375 +vn 0.8498 -0.0652 0.5231 +vn 0.8416 -0.0649 0.5362 +vn 0.8340 -0.0006 0.5518 +vn 0.8249 -0.0003 0.5652 +vn 0.8252 -0.0320 0.5639 +vn 0.8338 -0.0325 0.5511 +vn 0.8242 -0.0634 0.5628 +vn 0.8330 -0.0643 0.5496 +vn 0.8196 -0.1257 0.5590 +vn 0.8286 -0.1273 0.5452 +vn 0.8312 -0.0960 0.5475 +vn 0.8225 -0.0948 0.5608 +vn 0.8367 -0.1285 0.5323 +vn 0.8396 -0.0969 0.5345 +vn 0.8447 -0.1292 0.5195 +vn 0.8477 -0.0973 0.5215 +vn 0.8156 -0.2759 0.5087 +vn 0.8008 -0.3258 0.5026 +vn 0.8073 -0.2747 0.5224 +vn 0.7907 -0.3239 0.5195 +vn 0.7821 -0.3798 0.4941 +vn 0.7699 -0.3772 0.5147 +vn 0.7967 -0.2708 0.5403 +vn 0.7871 -0.2666 0.5563 +vn 0.7692 -0.3155 0.5558 +vn 0.7809 -0.3213 0.5357 +vn 0.7444 -0.3676 0.5574 +vn 0.7580 -0.3735 0.5348 +vn 0.6981 -0.4860 0.5258 +vn 0.7300 -0.4299 0.5314 +vn 0.7148 -0.4230 0.5569 +vn 0.6810 -0.4784 0.5544 +vn 0.7145 -0.4912 0.4982 +vn 0.7444 -0.4344 0.5071 +vn 0.7585 -0.4371 0.4834 +vn 0.7303 -0.4942 0.4716 +vn 0.7783 -0.2634 0.5700 +vn 0.7573 -0.3083 0.5758 +vn 0.7685 -0.2571 0.5860 +vn 0.7472 -0.3015 0.5923 +vn 0.7317 -0.3610 0.5782 +vn 0.7204 -0.3525 0.5973 +vn 0.7590 -0.2487 0.6017 +vn 0.7491 -0.2386 0.6180 +vn 0.7263 -0.2831 0.6264 +vn 0.7371 -0.2936 0.6087 +vn 0.6960 -0.3299 0.6378 +vn 0.7077 -0.3414 0.6186 +vn 0.6351 -0.4435 0.6324 +vn 0.6733 -0.3923 0.6267 +vn 0.6605 -0.3787 0.6483 +vn 0.6203 -0.4283 0.6572 +vn 0.6508 -0.4573 0.6061 +vn 0.6874 -0.4048 0.6031 +vn 0.7004 -0.4145 0.5811 +vn 0.6657 -0.4692 0.5802 +vn 0.7423 -0.2326 0.6283 +vn 0.7170 -0.2711 0.6422 +vn 0.7329 -0.2207 0.6436 +vn 0.7078 -0.2601 0.6569 +vn 0.6861 -0.3182 0.6543 +vn 0.6751 -0.3024 0.6729 +vn 0.7235 -0.2072 0.6585 +vn 0.7173 -0.1975 0.6682 +vn 0.6906 -0.2317 0.6851 +vn 0.6985 -0.2461 0.6719 +vn 0.6558 -0.2703 0.7049 +vn 0.6652 -0.2865 0.6895 +vn 0.5790 -0.3720 0.7255 +vn 0.6250 -0.3298 0.7076 +vn 0.6133 -0.3092 0.7268 +vn 0.5678 -0.3502 0.7450 +vn 0.5926 -0.3928 0.7033 +vn 0.6364 -0.3483 0.6882 +vn 0.6485 -0.3640 0.6686 +vn 0.6058 -0.4110 0.6813 +vn 0.7087 -0.1830 0.6813 +vn 0.6823 -0.2154 0.6986 +vn 0.7007 -0.1716 0.6925 +vn 0.6744 -0.2014 0.7103 +vn 0.6461 -0.2514 0.7207 +vn 0.6374 -0.2330 0.7345 +vn 0.6783 -0.1553 0.7182 +vn 0.6513 -0.1745 0.7385 +vn 0.6628 -0.1896 0.7244 +vn 0.6917 -0.1639 0.7033 +vn 0.6218 -0.1919 0.7593 +vn 0.6292 -0.2153 0.7468 +vn 0.5366 -0.2758 0.7975 +vn 0.5861 -0.2451 0.7723 +vn 0.5779 -0.2193 0.7861 +vn 0.5271 -0.2477 0.8129 +vn 0.5459 -0.3015 0.7817 +vn 0.5943 -0.2669 0.7586 +vn 0.6034 -0.2884 0.7435 +vn 0.5564 -0.3260 0.7643 +vn 0.6833 -0.1356 0.7174 +vn 0.6512 -0.1528 0.7433 +vn 0.6853 -0.1190 0.7185 +vn 0.6534 -0.1279 0.7461 +vn 0.6153 -0.1690 0.7699 +vn 0.6117 -0.1507 0.7766 +vn 0.6827 -0.0846 0.7258 +vn 0.6477 -0.0888 0.7567 +vn 0.6515 -0.1071 0.7510 +vn 0.6845 -0.1003 0.7221 +vn 0.6043 -0.0972 0.7908 +vn 0.6082 -0.1246 0.7839 +vn 0.5065 -0.1599 0.8473 +vn 0.5600 -0.1421 0.8162 +vn 0.5556 -0.1125 0.8238 +vn 0.5013 -0.1275 0.8558 +vn 0.5122 -0.1887 0.8379 +vn 0.5650 -0.1674 0.8079 +vn 0.5708 -0.1918 0.7984 +vn 0.5193 -0.2182 0.8263 +vn 0.6802 -0.0614 0.7305 +vn 0.6444 -0.0653 0.7619 +vn 0.6781 -0.0380 0.7340 +vn 0.6430 -0.0437 0.7646 +vn 0.6017 -0.0729 0.7954 +vn 0.6002 -0.0505 0.7982 +vn 0.6774 -0.0001 0.7356 +vn 0.6422 -0.0000 0.7665 +vn 0.6424 -0.0250 0.7659 +vn 0.6777 -0.0232 0.7350 +vn 0.5985 -0.0000 0.8011 +vn 0.5990 -0.0274 0.8003 +vn 0.4933 -0.0333 0.8692 +vn 0.5487 -0.0299 0.8355 +vn 0.5481 -0.0000 0.8364 +vn 0.4928 -0.0000 0.8701 +vn 0.4948 -0.0650 0.8666 +vn 0.5503 -0.0575 0.8330 +vn 0.5525 -0.0844 0.8292 +vn 0.4973 -0.0958 0.8622 +vn 0.6775 0.0228 0.7352 +vn 0.6424 0.0249 0.7659 +vn 0.6780 0.0379 0.7341 +vn 0.6430 0.0436 0.7646 +vn 0.5990 0.0273 0.8003 +vn 0.6002 0.0504 0.7983 +vn 0.6802 0.0616 0.7305 +vn 0.6824 0.0841 0.7261 +vn 0.6478 0.0890 0.7566 +vn 0.6444 0.0654 0.7619 +vn 0.6043 0.0972 0.7908 +vn 0.6017 0.0730 0.7954 +vn 0.4973 0.0958 0.8622 +vn 0.5525 0.0843 0.8292 +vn 0.5558 0.1131 0.8236 +vn 0.5013 0.1275 0.8558 +vn 0.4948 0.0650 0.8666 +vn 0.5503 0.0575 0.8330 +vn 0.5487 0.0299 0.8355 +vn 0.4933 0.0333 0.8692 +vn 0.6843 0.1003 0.7223 +vn 0.6514 0.1070 0.7511 +vn 0.6853 0.1189 0.7185 +vn 0.6534 0.1279 0.7462 +vn 0.6079 0.1250 0.7841 +vn 0.6113 0.1505 0.7770 +vn 0.6782 0.1553 0.7183 +vn 0.6513 0.1744 0.7385 +vn 0.6512 0.1529 0.7433 +vn 0.6833 0.1355 0.7175 +vn 0.6218 0.1919 0.7593 +vn 0.6153 0.1690 0.7699 +vn 0.5190 0.2179 0.8266 +vn 0.5709 0.1911 0.7985 +vn 0.5777 0.2199 0.7861 +vn 0.5269 0.2482 0.8128 +vn 0.5122 0.1887 0.8379 +vn 0.5653 0.1669 0.8078 +vn 0.5600 0.1421 0.8162 +vn 0.5065 0.1599 0.8473 +vn 0.6917 0.1639 0.7034 +vn 0.6628 0.1896 0.7244 +vn 0.7007 0.1715 0.6926 +vn 0.6744 0.2017 0.7103 +vn 0.6293 0.2153 0.7468 +vn 0.6375 0.2328 0.7344 +vn 0.7171 0.1973 0.6684 +vn 0.6905 0.2314 0.6854 +vn 0.6822 0.2153 0.6987 +vn 0.7086 0.1828 0.6815 +vn 0.6558 0.2703 0.7049 +vn 0.6463 0.2511 0.7206 +vn 0.5561 0.3258 0.7646 +vn 0.6033 0.2879 0.7437 +vn 0.6137 0.3092 0.7265 +vn 0.5675 0.3500 0.7453 +vn 0.5459 0.3015 0.7817 +vn 0.5943 0.2674 0.7585 +vn 0.5861 0.2451 0.7723 +vn 0.5364 0.2756 0.7977 +vn 0.7233 0.2069 0.6588 +vn 0.6984 0.2461 0.6721 +vn 0.7327 0.2205 0.6439 +vn 0.7077 0.2601 0.6569 +vn 0.6651 0.2865 0.6896 +vn 0.6751 0.3024 0.6729 +vn 0.7491 0.2384 0.6181 +vn 0.7262 0.2829 0.6266 +vn 0.7170 0.2710 0.6423 +vn 0.7423 0.2325 0.6284 +vn 0.6959 0.3299 0.6378 +vn 0.6860 0.3183 0.6543 +vn 0.6059 0.4108 0.6812 +vn 0.6484 0.3643 0.6685 +vn 0.6605 0.3787 0.6483 +vn 0.6203 0.4283 0.6572 +vn 0.5925 0.3928 0.7033 +vn 0.6362 0.3481 0.6885 +vn 0.6248 0.3302 0.7075 +vn 0.5796 0.3719 0.7251 +vn 0.7588 0.2480 0.6022 +vn 0.7371 0.2934 0.6088 +vn 0.7684 0.2566 0.5863 +vn 0.7472 0.3014 0.5923 +vn 0.7077 0.3414 0.6186 +vn 0.7204 0.3526 0.5973 +vn 0.7870 0.2663 0.5564 +vn 0.7692 0.3153 0.5558 +vn 0.7572 0.3083 0.5758 +vn 0.7783 0.2632 0.5701 +vn 0.7445 0.3678 0.5572 +vn 0.7317 0.3608 0.5783 +vn 0.6657 0.4692 0.5802 +vn 0.7006 0.4146 0.5807 +vn 0.7148 0.4230 0.5569 +vn 0.6810 0.4784 0.5544 +vn 0.6505 0.4573 0.6064 +vn 0.6873 0.4045 0.6033 +vn 0.6733 0.3922 0.6267 +vn 0.6349 0.4442 0.6321 +vn 0.7967 0.2706 0.5403 +vn 0.7809 0.3212 0.5358 +vn 0.8071 0.2744 0.5227 +vn 0.7907 0.3238 0.5196 +vn 0.7580 0.3734 0.5348 +vn 0.7698 0.3770 0.5150 +vn 0.8007 0.3258 0.5027 +vn 0.8153 0.2756 0.5092 +vn 0.7821 0.3798 0.4941 +vn 0.7303 0.4942 0.4716 +vn 0.7584 0.4374 0.4832 +vn 0.7145 0.4912 0.4982 +vn 0.7441 0.4345 0.5075 +vn 0.7300 0.4299 0.5314 +vn 0.6981 0.4860 0.5258 +vn 0.6994 -0.5492 0.4575 +vn 0.6821 -0.5456 0.4868 +vn 0.6654 -0.6021 0.4413 +vn 0.6458 -0.5986 0.4741 +vn 0.6444 -0.5315 0.5498 +vn 0.6635 -0.5399 0.5180 +vn 0.6054 -0.5827 0.5421 +vn 0.6255 -0.5923 0.5079 +vn 0.5426 -0.6889 0.4807 +vn 0.5856 -0.6418 0.4952 +vn 0.5637 -0.6317 0.5321 +vn 0.5193 -0.6783 0.5199 +vn 0.5656 -0.6962 0.4420 +vn 0.6070 -0.6485 0.4593 +vn 0.6284 -0.6525 0.4234 +vn 0.5886 -0.7006 0.4034 +vn 0.6278 -0.5216 0.5777 +vn 0.6103 -0.5087 0.6073 +vn 0.5864 -0.5718 0.5738 +vn 0.5667 -0.5581 0.6061 +vn 0.5764 -0.4770 0.6635 +vn 0.5923 -0.4934 0.6369 +vn 0.5308 -0.5224 0.6673 +vn 0.5483 -0.5408 0.6379 +vn 0.4526 -0.6302 0.6309 +vn 0.5024 -0.5868 0.6350 +vn 0.4822 -0.5660 0.6686 +vn 0.4317 -0.6084 0.6659 +vn 0.4744 -0.6485 0.5952 +vn 0.5220 -0.6048 0.6014 +vn 0.5424 -0.6193 0.5677 +vn 0.4965 -0.6645 0.5585 +vn 0.5609 -0.4575 0.6900 +vn 0.5464 -0.4364 0.7149 +vn 0.5141 -0.5021 0.6954 +vn 0.4973 -0.4793 0.7231 +vn 0.5189 -0.3889 0.7612 +vn 0.5328 -0.4137 0.7382 +vn 0.4659 -0.4267 0.7751 +vn 0.4811 -0.4540 0.7500 +vn 0.3747 -0.5271 0.7627 +vn 0.4281 -0.4920 0.7581 +vn 0.4120 -0.4628 0.7849 +vn 0.3572 -0.4959 0.7915 +vn 0.3924 -0.5562 0.7326 +vn 0.4456 -0.5190 0.7295 +vn 0.4635 -0.5434 0.6999 +vn 0.4119 -0.5836 0.6998 +vn 0.5053 -0.3621 0.7833 +vn 0.4945 -0.3355 0.8018 +vn 0.4524 -0.3980 0.7981 +vn 0.4400 -0.3680 0.8191 +vn 0.4723 -0.2747 0.8375 +vn 0.4831 -0.3054 0.8206 +vn 0.4164 -0.3009 0.8580 +vn 0.4275 -0.3343 0.8400 +vn 0.3114 -0.3886 0.8672 +vn 0.3703 -0.3622 0.8554 +vn 0.3589 -0.3263 0.8745 +vn 0.3001 -0.3509 0.8870 +vn 0.3261 -0.4281 0.8428 +vn 0.3838 -0.3990 0.8328 +vn 0.3975 -0.4321 0.8095 +vn 0.3412 -0.4636 0.8177 +vn 0.4636 -0.2430 0.8521 +vn 0.4560 -0.2103 0.8648 +vn 0.4073 -0.2667 0.8735 +vn 0.3996 -0.2312 0.8871 +vn 0.4445 -0.1415 0.8845 +vn 0.4501 -0.1777 0.8751 +vn 0.3860 -0.1552 0.9094 +vn 0.3929 -0.1952 0.8986 +vn 0.2703 -0.2254 0.9360 +vn 0.3317 -0.2100 0.9197 +vn 0.3250 -0.1684 0.9306 +vn 0.2633 -0.1806 0.9477 +vn 0.2785 -0.2686 0.9221 +vn 0.3399 -0.2503 0.9065 +vn 0.3495 -0.2897 0.8910 +vn 0.2886 -0.3105 0.9057 +vn 0.4403 -0.1067 0.8915 +vn 0.4371 -0.0726 0.8965 +vn 0.3815 -0.1165 0.9170 +vn 0.3782 -0.0788 0.9224 +vn 0.4350 -0.0000 0.9004 +vn 0.4354 -0.0373 0.8995 +vn 0.3755 -0.0000 0.9268 +vn 0.3761 -0.0411 0.9257 +vn 0.2525 -0.0469 0.9664 +vn 0.3152 -0.0441 0.9480 +vn 0.3144 -0.0000 0.9493 +vn 0.2518 -0.0000 0.9678 +vn 0.2547 -0.0919 0.9626 +vn 0.3173 -0.0852 0.9445 +vn 0.3204 -0.1272 0.9387 +vn 0.2582 -0.1374 0.9563 +vn 0.4354 0.0373 0.8995 +vn 0.4369 0.0726 0.8966 +vn 0.3759 0.0415 0.9257 +vn 0.3782 0.0788 0.9224 +vn 0.4447 0.1412 0.8845 +vn 0.4400 0.1063 0.8917 +vn 0.3860 0.1552 0.9094 +vn 0.3818 0.1157 0.9170 +vn 0.2582 0.1373 0.9563 +vn 0.3204 0.1272 0.9387 +vn 0.3248 0.1688 0.9306 +vn 0.2633 0.1806 0.9477 +vn 0.2547 0.0919 0.9626 +vn 0.3176 0.0846 0.9444 +vn 0.3152 0.0441 0.9480 +vn 0.2525 0.0469 0.9664 +vn 0.4502 0.1774 0.8751 +vn 0.4560 0.2103 0.8648 +vn 0.3920 0.1953 0.8990 +vn 0.3993 0.2308 0.8873 +vn 0.4726 0.2748 0.8373 +vn 0.4636 0.2430 0.8521 +vn 0.4164 0.3009 0.8580 +vn 0.4073 0.2667 0.8735 +vn 0.2886 0.3105 0.9057 +vn 0.3491 0.2894 0.8913 +vn 0.3589 0.3263 0.8745 +vn 0.2996 0.3505 0.8873 +vn 0.2785 0.2686 0.9221 +vn 0.3399 0.2503 0.9065 +vn 0.3321 0.2096 0.9197 +vn 0.2703 0.2254 0.9360 +vn 0.4831 0.3054 0.8206 +vn 0.4943 0.3354 0.8020 +vn 0.4275 0.3343 0.8400 +vn 0.4400 0.3680 0.8191 +vn 0.5186 0.3887 0.7616 +vn 0.5057 0.3623 0.7830 +vn 0.4659 0.4267 0.7751 +vn 0.4524 0.3980 0.7981 +vn 0.3412 0.4636 0.8177 +vn 0.3975 0.4321 0.8095 +vn 0.4120 0.4628 0.7849 +vn 0.3572 0.4959 0.7915 +vn 0.3261 0.4281 0.8428 +vn 0.3838 0.3990 0.8328 +vn 0.3703 0.3622 0.8554 +vn 0.3118 0.3889 0.8669 +vn 0.5323 0.4135 0.7387 +vn 0.5464 0.4360 0.7151 +vn 0.4811 0.4540 0.7500 +vn 0.4970 0.4796 0.7232 +vn 0.5764 0.4770 0.6635 +vn 0.5609 0.4572 0.6902 +vn 0.5308 0.5224 0.6673 +vn 0.5135 0.5030 0.6952 +vn 0.4119 0.5836 0.6998 +vn 0.4640 0.5427 0.7002 +vn 0.4826 0.5657 0.6687 +vn 0.4316 0.6088 0.6656 +vn 0.3930 0.5559 0.7325 +vn 0.4456 0.5190 0.7295 +vn 0.4280 0.4923 0.7579 +vn 0.3748 0.5268 0.7629 +vn 0.5923 0.4931 0.6372 +vn 0.6103 0.5087 0.6073 +vn 0.5483 0.5403 0.6383 +vn 0.5673 0.5584 0.6053 +vn 0.6446 0.5310 0.5500 +vn 0.6278 0.5216 0.5777 +vn 0.6054 0.5827 0.5421 +vn 0.5864 0.5718 0.5738 +vn 0.4965 0.6642 0.5589 +vn 0.5424 0.6191 0.5679 +vn 0.5637 0.6320 0.5318 +vn 0.5193 0.6785 0.5195 +vn 0.4744 0.6483 0.5955 +vn 0.5220 0.6053 0.6009 +vn 0.5019 0.5868 0.6354 +vn 0.4526 0.6304 0.6307 +vn 0.6635 0.5399 0.5181 +vn 0.6819 0.5461 0.4867 +vn 0.6257 0.5922 0.5077 +vn 0.6458 0.5986 0.4741 +vn 0.6994 0.5492 0.4575 +vn 0.6654 0.6021 0.4413 +vn 0.5886 0.7006 0.4034 +vn 0.6284 0.6526 0.4234 +vn 0.5656 0.6962 0.4420 +vn 0.6070 0.6485 0.4593 +vn 0.5856 0.6418 0.4952 +vn 0.5426 0.6889 0.4807 +vn 0.5461 -0.7456 0.3819 +vn 0.5216 -0.7411 0.4228 +vn 0.5015 -0.7873 0.3586 +vn 0.4755 -0.7824 0.4021 +vn 0.4722 -0.7222 0.5054 +vn 0.4971 -0.7332 0.4640 +vn 0.4231 -0.7627 0.4892 +vn 0.4492 -0.7742 0.4459 +vn 0.3482 -0.8464 0.4029 +vn 0.3995 -0.8120 0.4255 +vn 0.3723 -0.7998 0.4710 +vn 0.3199 -0.8335 0.4505 +vn 0.3767 -0.8558 0.3547 +vn 0.4270 -0.8208 0.3794 +vn 0.4544 -0.8262 0.3331 +vn 0.4053 -0.8614 0.3061 +vn 0.4484 -0.7076 0.5461 +vn 0.4248 -0.6899 0.5862 +vn 0.3978 -0.7479 0.5314 +vn 0.3726 -0.7293 0.5739 +vn 0.3799 -0.6470 0.6611 +vn 0.4017 -0.6698 0.6246 +vn 0.3256 -0.6834 0.6534 +vn 0.3489 -0.7078 0.6142 +vn 0.2389 -0.7737 0.5868 +vn 0.2940 -0.7426 0.6017 +vn 0.2699 -0.7171 0.6426 +vn 0.2130 -0.7471 0.6297 +vn 0.2658 -0.7970 0.5424 +vn 0.3193 -0.7651 0.5592 +vn 0.3457 -0.7843 0.5152 +vn 0.2921 -0.8172 0.4969 +vn 0.3581 -0.6212 0.6970 +vn 0.3375 -0.5927 0.7313 +vn 0.3024 -0.6556 0.6919 +vn 0.2810 -0.6257 0.7277 +vn 0.2999 -0.5274 0.7949 +vn 0.3183 -0.5613 0.7640 +vn 0.2418 -0.5573 0.7943 +vn 0.2606 -0.5933 0.7617 +vn 0.1420 -0.6483 0.7480 +vn 0.2025 -0.6220 0.7564 +vn 0.1820 -0.5847 0.7906 +vn 0.1209 -0.6098 0.7832 +vn 0.1651 -0.6843 0.7103 +vn 0.2236 -0.6560 0.7209 +vn 0.2460 -0.6882 0.6826 +vn 0.1883 -0.7174 0.6707 +vn 0.2830 -0.4929 0.8228 +vn 0.2668 -0.4552 0.8495 +vn 0.2234 -0.5200 0.8245 +vn 0.2062 -0.4803 0.8525 +vn 0.2388 -0.3729 0.8966 +vn 0.2516 -0.4141 0.8748 +vn 0.1769 -0.3939 0.9020 +vn 0.1907 -0.4380 0.8785 +vn 0.0661 -0.4791 0.8753 +vn 0.1287 -0.4595 0.8788 +vn 0.1139 -0.4132 0.9035 +vn 0.0499 -0.4303 0.9013 +vn 0.0828 -0.5245 0.8474 +vn 0.1450 -0.5034 0.8518 +vn 0.1627 -0.5448 0.8226 +vn 0.1010 -0.5679 0.8169 +vn 0.2266 -0.3298 0.9165 +vn 0.2170 -0.2862 0.9333 +vn 0.1643 -0.3481 0.9229 +vn 0.1540 -0.3020 0.9408 +vn 0.2000 -0.1923 0.9607 +vn 0.2076 -0.2397 0.9484 +vn 0.1365 -0.2041 0.9694 +vn 0.1436 -0.2525 0.9569 +vn 0.0147 -0.2767 0.9608 +vn 0.0797 -0.2651 0.9609 +vn 0.0722 -0.2146 0.9740 +vn 0.0063 -0.2232 0.9747 +vn 0.0249 -0.3294 0.9439 +vn 0.0889 -0.3158 0.9447 +vn 0.1007 -0.3655 0.9253 +vn 0.0370 -0.3810 0.9238 +vn 0.1951 -0.1464 0.9698 +vn 0.1910 -0.0978 0.9767 +vn 0.1310 -0.1546 0.9792 +vn 0.1260 -0.1028 0.9867 +vn 0.1876 -0.0000 0.9822 +vn 0.1886 -0.0500 0.9808 +vn 0.1222 0.0000 0.9925 +vn 0.1231 -0.0524 0.9910 +vn -0.0080 -0.0570 0.9983 +vn 0.0576 -0.0548 0.9968 +vn 0.0567 0.0000 0.9984 +vn -0.0089 0.0000 1.0000 +vn -0.0053 -0.1121 0.9937 +vn 0.0604 -0.1075 0.9924 +vn 0.0653 -0.1614 0.9847 +vn -0.0005 -0.1678 0.9858 +vn 0.1883 0.0498 0.9808 +vn 0.1910 0.0978 0.9767 +vn 0.1231 0.0524 0.9910 +vn 0.1260 0.1028 0.9867 +vn 0.2002 0.1926 0.9606 +vn 0.1953 0.1461 0.9698 +vn 0.1365 0.2041 0.9694 +vn 0.1307 0.1544 0.9793 +vn -0.0005 0.1678 0.9858 +vn 0.0653 0.1614 0.9847 +vn 0.0719 0.2144 0.9741 +vn 0.0063 0.2232 0.9747 +vn -0.0053 0.1121 0.9937 +vn 0.0604 0.1075 0.9924 +vn 0.0576 0.0548 0.9968 +vn -0.0080 0.0570 0.9983 +vn 0.2076 0.2397 0.9484 +vn 0.2166 0.2859 0.9335 +vn 0.1438 0.2527 0.9568 +vn 0.1536 0.3017 0.9410 +vn 0.2389 0.3725 0.8968 +vn 0.2266 0.3305 0.9162 +vn 0.1771 0.3936 0.9021 +vn 0.1648 0.3480 0.9229 +vn 0.0373 0.3806 0.9240 +vn 0.1007 0.3655 0.9253 +vn 0.1136 0.4138 0.9032 +vn 0.0505 0.4304 0.9012 +vn 0.0245 0.3300 0.9436 +vn 0.0894 0.3161 0.9445 +vn 0.0797 0.2651 0.9609 +vn 0.0147 0.2767 0.9608 +vn 0.2517 0.4147 0.8745 +vn 0.2668 0.4552 0.8495 +vn 0.1907 0.4380 0.8785 +vn 0.2062 0.4803 0.8525 +vn 0.3000 0.5270 0.7952 +vn 0.2830 0.4929 0.8228 +vn 0.2414 0.5572 0.7945 +vn 0.2234 0.5200 0.8245 +vn 0.1012 0.5675 0.8171 +vn 0.1629 0.5444 0.8228 +vn 0.1820 0.5847 0.7906 +vn 0.1209 0.6098 0.7832 +vn 0.0828 0.5245 0.8474 +vn 0.1450 0.5034 0.8518 +vn 0.1287 0.4595 0.8788 +vn 0.0658 0.4788 0.8755 +vn 0.3183 0.5613 0.7640 +vn 0.3374 0.5932 0.7309 +vn 0.2605 0.5935 0.7615 +vn 0.2811 0.6254 0.7279 +vn 0.3799 0.6467 0.6614 +vn 0.3580 0.6215 0.6968 +vn 0.3256 0.6834 0.6534 +vn 0.3031 0.6553 0.6919 +vn 0.1883 0.7174 0.6707 +vn 0.2459 0.6886 0.6822 +vn 0.2695 0.7173 0.6425 +vn 0.2130 0.7471 0.6297 +vn 0.1645 0.6844 0.7103 +vn 0.2238 0.6554 0.7214 +vn 0.2025 0.6220 0.7564 +vn 0.1420 0.6483 0.7480 +vn 0.4021 0.6694 0.6247 +vn 0.4249 0.6894 0.5866 +vn 0.3487 0.7078 0.6144 +vn 0.3726 0.7296 0.5735 +vn 0.4722 0.7224 0.5052 +vn 0.4484 0.7076 0.5461 +vn 0.4231 0.7627 0.4892 +vn 0.3978 0.7479 0.5314 +vn 0.2925 0.8171 0.4967 +vn 0.3457 0.7843 0.5152 +vn 0.3724 0.7995 0.4714 +vn 0.3199 0.8335 0.4505 +vn 0.2653 0.7970 0.5426 +vn 0.3193 0.7651 0.5592 +vn 0.2940 0.7426 0.6017 +vn 0.2388 0.7739 0.5865 +vn 0.4969 0.7332 0.4642 +vn 0.5216 0.7411 0.4228 +vn 0.4492 0.7742 0.4459 +vn 0.4755 0.7824 0.4021 +vn 0.5461 0.7456 0.3819 +vn 0.5015 0.7871 0.3591 +vn 0.4053 0.8614 0.3061 +vn 0.4544 0.8262 0.3331 +vn 0.3767 0.8558 0.3547 +vn 0.4270 0.8206 0.3799 +vn 0.3995 0.8120 0.4255 +vn 0.3482 0.8464 0.4029 +vn 0.3545 -0.8928 0.2780 +vn 0.3249 -0.8870 0.3282 +vn 0.3020 -0.9203 0.2488 +vn 0.2714 -0.9144 0.3003 +vn 0.2662 -0.8636 0.4281 +vn 0.2956 -0.8772 0.3784 +vn 0.2102 -0.8906 0.4032 +vn 0.2408 -0.9046 0.3518 +vn 0.1290 -0.9466 0.2954 +vn 0.1848 -0.9278 0.3241 +vn 0.1537 -0.9136 0.3765 +vn 0.0975 -0.9322 0.3486 +vn 0.1610 -0.9569 0.2416 +vn 0.2165 -0.9378 0.2715 +vn 0.2482 -0.9438 0.2185 +vn 0.1933 -0.9630 0.1875 +vn 0.2379 -0.8468 0.4757 +vn 0.2089 -0.8262 0.5233 +vn 0.1806 -0.8731 0.4529 +vn 0.1521 -0.8518 0.5012 +vn 0.1549 -0.7741 0.6138 +vn 0.1817 -0.8018 0.5693 +vn 0.0960 -0.7979 0.5951 +vn 0.1235 -0.8267 0.5490 +vn 0.0062 -0.8650 0.5018 +vn 0.0647 -0.8478 0.5264 +vn 0.0370 -0.8185 0.5733 +vn -0.0222 -0.8352 0.5494 +vn 0.0360 -0.8913 0.4519 +vn 0.0947 -0.8736 0.4774 +vn 0.1238 -0.8954 0.4276 +vn 0.0667 -0.9139 0.4005 +vn 0.1295 -0.7434 0.6561 +vn 0.1049 -0.7090 0.6974 +vn 0.0702 -0.7664 0.6385 +vn 0.0451 -0.7307 0.6812 +vn 0.0597 -0.6321 0.7726 +vn 0.0814 -0.6717 0.7364 +vn -0.0018 -0.6512 0.7589 +vn 0.0209 -0.6920 0.7216 +vn -0.1015 -0.7246 0.6816 +vn -0.0405 -0.7098 0.7033 +vn -0.0632 -0.6676 0.7418 +vn -0.1244 -0.6816 0.7210 +vn -0.0764 -0.7650 0.6395 +vn -0.0158 -0.7497 0.6616 +vn 0.0105 -0.7861 0.6180 +vn -0.0497 -0.8020 0.5953 +vn 0.0392 -0.5888 0.8073 +vn 0.0203 -0.5434 0.8392 +vn -0.0235 -0.6071 0.7942 +vn -0.0428 -0.5603 0.8272 +vn -0.0127 -0.4467 0.8946 +vn 0.0027 -0.4959 0.8684 +vn -0.0771 -0.4601 0.8845 +vn -0.0607 -0.5110 0.8574 +vn -0.1862 -0.5350 0.8241 +vn -0.1232 -0.5241 0.8427 +vn -0.1399 -0.4714 0.8707 +vn -0.2031 -0.4813 0.8527 +vn -0.1673 -0.5864 0.7926 +vn -0.1049 -0.5745 0.8117 +vn -0.0848 -0.6226 0.7780 +vn -0.1467 -0.6353 0.7582 +vn -0.0269 -0.3950 0.9183 +vn -0.0407 -0.3407 0.9393 +vn -0.0924 -0.4065 0.9090 +vn -0.1043 -0.3519 0.9302 +vn -0.0591 -0.2311 0.9711 +vn -0.0505 -0.2870 0.9566 +vn -0.1237 -0.2379 0.9634 +vn -0.1141 -0.2963 0.9483 +vn -0.2440 -0.3086 0.9194 +vn -0.1787 -0.3031 0.9361 +vn -0.1887 -0.2433 0.9514 +vn -0.2528 -0.2488 0.9350 +vn -0.2321 -0.3682 0.9003 +vn -0.1668 -0.3615 0.9173 +vn -0.1547 -0.4168 0.8957 +vn -0.2177 -0.4263 0.8780 +vn -0.0662 -0.1735 0.9826 +vn -0.0707 -0.1164 0.9907 +vn -0.1309 -0.1791 0.9751 +vn -0.1358 -0.1201 0.9834 +vn -0.0746 0.0000 0.9972 +vn -0.0736 -0.0590 0.9955 +vn -0.1400 0.0000 0.9901 +vn -0.1389 -0.0606 0.9885 +vn -0.2679 -0.0631 0.9614 +vn -0.2038 -0.0619 0.9771 +vn -0.2049 0.0000 0.9788 +vn -0.2690 -0.0000 0.9631 +vn -0.2649 -0.1257 0.9561 +vn -0.2006 -0.1232 0.9719 +vn -0.1955 -0.1838 0.9633 +vn -0.2598 -0.1877 0.9472 +vn -0.0736 0.0590 0.9955 +vn -0.0707 0.1164 0.9907 +vn -0.1389 0.0606 0.9885 +vn -0.1358 0.1201 0.9834 +vn -0.0591 0.2311 0.9711 +vn -0.0662 0.1740 0.9825 +vn -0.1241 0.2382 0.9633 +vn -0.1309 0.1791 0.9751 +vn -0.2598 0.1877 0.9472 +vn -0.1955 0.1838 0.9633 +vn -0.1884 0.2436 0.9514 +vn -0.2528 0.2488 0.9350 +vn -0.2649 0.1257 0.9561 +vn -0.2006 0.1232 0.9719 +vn -0.2038 0.0619 0.9771 +vn -0.2679 0.0631 0.9614 +vn -0.0505 0.2870 0.9566 +vn -0.0401 0.3411 0.9392 +vn -0.1146 0.2959 0.9483 +vn -0.1043 0.3519 0.9302 +vn -0.0133 0.4469 0.8945 +vn -0.0274 0.3948 0.9184 +vn -0.0769 0.4597 0.8848 +vn -0.0920 0.4067 0.9089 +vn -0.2181 0.4259 0.8781 +vn -0.1545 0.4170 0.8957 +vn -0.1399 0.4714 0.8707 +vn -0.2032 0.4813 0.8527 +vn -0.2318 0.3684 0.9003 +vn -0.1671 0.3612 0.9174 +vn -0.1789 0.3033 0.9359 +vn -0.2436 0.3090 0.9193 +vn 0.0027 0.4959 0.8684 +vn 0.0203 0.5434 0.8392 +vn -0.0607 0.5110 0.8574 +vn -0.0428 0.5603 0.8272 +vn 0.0596 0.6325 0.7723 +vn 0.0392 0.5888 0.8073 +vn -0.0018 0.6512 0.7589 +vn -0.0233 0.6075 0.7940 +vn -0.1467 0.6353 0.7582 +vn -0.0846 0.6222 0.7783 +vn -0.0630 0.6673 0.7421 +vn -0.1248 0.6815 0.7211 +vn -0.1673 0.5864 0.7926 +vn -0.1049 0.5745 0.8117 +vn -0.1232 0.5241 0.8427 +vn -0.1862 0.5350 0.8241 +vn 0.0814 0.6717 0.7364 +vn 0.1049 0.7090 0.6974 +vn 0.0209 0.6920 0.7216 +vn 0.0451 0.7307 0.6812 +vn 0.1547 0.7745 0.6133 +vn 0.1295 0.7435 0.6561 +vn 0.0960 0.7979 0.5951 +vn 0.0702 0.7664 0.6385 +vn -0.0497 0.8020 0.5953 +vn 0.0101 0.7861 0.6180 +vn 0.0366 0.8185 0.5734 +vn -0.0222 0.8352 0.5494 +vn -0.0764 0.7650 0.6395 +vn -0.0158 0.7497 0.6616 +vn -0.0404 0.7098 0.7033 +vn -0.1015 0.7246 0.6816 +vn 0.1818 0.8015 0.5697 +vn 0.2092 0.8262 0.5231 +vn 0.1235 0.8267 0.5490 +vn 0.1518 0.8519 0.5012 +vn 0.2662 0.8635 0.4284 +vn 0.2374 0.8470 0.4756 +vn 0.2102 0.8906 0.4032 +vn 0.1807 0.8728 0.4535 +vn 0.0667 0.9139 0.4005 +vn 0.1238 0.8954 0.4276 +vn 0.1537 0.9136 0.3765 +vn 0.0975 0.9322 0.3486 +vn 0.0360 0.8913 0.4519 +vn 0.0944 0.8734 0.4778 +vn 0.0646 0.8479 0.5261 +vn 0.0062 0.8649 0.5018 +vn 0.2956 0.8772 0.3784 +vn 0.3249 0.8870 0.3282 +vn 0.2407 0.9048 0.3514 +vn 0.2714 0.9144 0.3003 +vn 0.3545 0.8928 0.2780 +vn 0.3020 0.9203 0.2488 +vn 0.1933 0.9630 0.1875 +vn 0.2482 0.9438 0.2185 +vn 0.1610 0.9569 0.2416 +vn 0.2165 0.9378 0.2715 +vn 0.1848 0.9278 0.3241 +vn 0.1290 0.9466 0.2954 +vn 0.1387 -0.9778 0.1570 +vn 0.1055 -0.9717 0.2113 +vn 0.0819 -0.9887 0.1253 +vn 0.0484 -0.9824 0.1806 +vn 0.0400 -0.9469 0.3190 +vn 0.0722 -0.9614 0.2654 +vn -0.0178 -0.9575 0.2879 +vn 0.0144 -0.9719 0.2348 +vn -0.0725 -0.9796 0.1872 +vn -0.0431 -0.9782 0.2032 +vn -0.0754 -0.9637 0.2560 +vn -0.1041 -0.9652 0.2397 +vn -0.0383 -0.9906 0.1315 +vn -0.0090 -0.9889 0.1481 +vn 0.0254 -0.9951 0.0950 +vn -0.0100 -0.9964 0.0840 +vn 0.0090 -0.9283 0.3717 +vn -0.0225 -0.9054 0.4240 +vn -0.0498 -0.9386 0.3413 +vn -0.0811 -0.9156 0.3938 +vn -0.0811 -0.8483 0.5232 +vn -0.0523 -0.8786 0.4747 +vn -0.1404 -0.8579 0.4943 +vn -0.1112 -0.8886 0.4449 +vn -0.1984 -0.8961 0.3971 +vn -0.1696 -0.8946 0.4134 +vn -0.1991 -0.8637 0.4631 +vn -0.2280 -0.8651 0.4467 +vn -0.1677 -0.9231 0.3459 +vn -0.1391 -0.9217 0.3622 +vn -0.1077 -0.9448 0.3096 +vn -0.1363 -0.9463 0.2933 +vn -0.1091 -0.8143 0.5700 +vn -0.1361 -0.7768 0.6149 +vn -0.1685 -0.8234 0.5419 +vn -0.1956 -0.7854 0.5873 +vn -0.1858 -0.6922 0.6974 +vn -0.1617 -0.7360 0.6574 +vn -0.2451 -0.6995 0.6713 +vn -0.2207 -0.7441 0.6306 +vn -0.3095 -0.7506 0.5838 +vn -0.2798 -0.7492 0.6003 +vn -0.3042 -0.7040 0.6417 +vn -0.3333 -0.7055 0.6255 +vn -0.2836 -0.7923 0.5402 +vn -0.2541 -0.7909 0.5566 +vn -0.2273 -0.8290 0.5110 +vn -0.2564 -0.8304 0.4946 +vn -0.2091 -0.6451 0.7349 +vn -0.2295 -0.5957 0.7698 +vn -0.2681 -0.6521 0.7092 +vn -0.2892 -0.6022 0.7441 +vn -0.2659 -0.4890 0.8308 +vn -0.2486 -0.5434 0.8018 +vn -0.3264 -0.4942 0.8058 +vn -0.3087 -0.5493 0.7765 +vn -0.3966 -0.5537 0.7322 +vn -0.3680 -0.5528 0.7477 +vn -0.3855 -0.4974 0.7772 +vn -0.4143 -0.4983 0.7617 +vn -0.3772 -0.6067 0.6997 +vn -0.3488 -0.6056 0.7152 +vn -0.3271 -0.6562 0.6800 +vn -0.3559 -0.6574 0.6642 +vn -0.2816 -0.4325 0.8565 +vn -0.2953 -0.3739 0.8792 +vn -0.3424 -0.4369 0.8318 +vn -0.3555 -0.3782 0.8548 +vn -0.3156 -0.2530 0.9145 +vn -0.3065 -0.3140 0.8986 +vn -0.3762 -0.2560 0.8904 +vn -0.3668 -0.3178 0.8743 +vn -0.4560 -0.3204 0.8303 +vn -0.4265 -0.3199 0.8460 +vn -0.4362 -0.2577 0.8622 +vn -0.4658 -0.2581 0.8464 +vn -0.4440 -0.3814 0.8108 +vn -0.4147 -0.3808 0.8264 +vn -0.4010 -0.4400 0.8035 +vn -0.4301 -0.4408 0.7879 +vn -0.3227 -0.1909 0.9271 +vn -0.3278 -0.1279 0.9361 +vn -0.3836 -0.1931 0.9031 +vn -0.3890 -0.1294 0.9121 +vn -0.3318 0.0000 0.9433 +vn -0.3308 -0.0642 0.9415 +vn -0.3932 0.0000 0.9195 +vn -0.3922 -0.0651 0.9176 +vn -0.4824 -0.0657 0.8735 +vn -0.4526 -0.0655 0.8893 +vn -0.4537 0.0000 0.8912 +vn -0.4836 0.0000 0.8753 +vn -0.4791 -0.1304 0.8680 +vn -0.4493 -0.1303 0.8838 +vn -0.4438 -0.1944 0.8748 +vn -0.4736 -0.1947 0.8590 +vn -0.3308 0.0642 0.9415 +vn -0.3278 0.1279 0.9360 +vn -0.3922 0.0651 0.9176 +vn -0.3890 0.1294 0.9121 +vn -0.3156 0.2530 0.9145 +vn -0.3227 0.1909 0.9271 +vn -0.3762 0.2560 0.8904 +vn -0.3836 0.1931 0.9031 +vn -0.4736 0.1947 0.8590 +vn -0.4438 0.1944 0.8748 +vn -0.4362 0.2577 0.8622 +vn -0.4658 0.2581 0.8464 +vn -0.4791 0.1304 0.8680 +vn -0.4493 0.1302 0.8838 +vn -0.4526 0.0655 0.8893 +vn -0.4824 0.0657 0.8735 +vn -0.3065 0.3140 0.8986 +vn -0.2953 0.3739 0.8792 +vn -0.3668 0.3178 0.8743 +vn -0.3555 0.3782 0.8548 +vn -0.2661 0.4892 0.8306 +vn -0.2814 0.4323 0.8567 +vn -0.3264 0.4942 0.8058 +vn -0.3421 0.4371 0.8318 +vn -0.4301 0.4408 0.7879 +vn -0.4010 0.4400 0.8035 +vn -0.3855 0.4974 0.7772 +vn -0.4143 0.4983 0.7617 +vn -0.4440 0.3814 0.8108 +vn -0.4147 0.3808 0.8264 +vn -0.4265 0.3199 0.8460 +vn -0.4560 0.3204 0.8303 +vn -0.2486 0.5434 0.8018 +vn -0.2293 0.5953 0.7701 +vn -0.3087 0.5493 0.7765 +vn -0.2894 0.6025 0.7438 +vn -0.1859 0.6922 0.6974 +vn -0.2088 0.6456 0.7346 +vn -0.2451 0.6995 0.6713 +vn -0.2681 0.6521 0.7092 +vn -0.3562 0.6572 0.6642 +vn -0.3271 0.6562 0.6800 +vn -0.3042 0.7038 0.6420 +vn -0.3337 0.7052 0.6255 +vn -0.3772 0.6067 0.6997 +vn -0.3484 0.6059 0.7152 +vn -0.3680 0.5528 0.7477 +vn -0.3966 0.5537 0.7322 +vn -0.1617 0.7360 0.6574 +vn -0.1361 0.7768 0.6149 +vn -0.2207 0.7441 0.6306 +vn -0.1952 0.7855 0.5873 +vn -0.0811 0.8483 0.5232 +vn -0.1091 0.8143 0.5700 +vn -0.1404 0.8579 0.4943 +vn -0.1685 0.8234 0.5419 +vn -0.2564 0.8304 0.4946 +vn -0.2273 0.8290 0.5110 +vn -0.1992 0.8638 0.4628 +vn -0.2280 0.8651 0.4467 +vn -0.2836 0.7923 0.5402 +vn -0.2541 0.7909 0.5566 +vn -0.2798 0.7492 0.6003 +vn -0.3095 0.7506 0.5838 +vn -0.0523 0.8786 0.4747 +vn -0.0225 0.9054 0.4240 +vn -0.1112 0.8886 0.4449 +vn -0.0811 0.9156 0.3938 +vn 0.0400 0.9469 0.3190 +vn 0.0086 0.9283 0.3717 +vn -0.0178 0.9575 0.2879 +vn -0.0498 0.9386 0.3413 +vn -0.1363 0.9463 0.2933 +vn -0.1077 0.9448 0.3096 +vn -0.0754 0.9637 0.2560 +vn -0.1041 0.9652 0.2397 +vn -0.1677 0.9231 0.3459 +vn -0.1391 0.9217 0.3622 +vn -0.1696 0.8946 0.4134 +vn -0.1984 0.8961 0.3971 +vn 0.0722 0.9614 0.2654 +vn 0.1051 0.9718 0.2111 +vn 0.0146 0.9721 0.2341 +vn 0.0485 0.9822 0.1813 +vn 0.1388 0.9778 0.1571 +vn 0.0822 0.9887 0.1251 +vn -0.0018 0.9966 0.0821 +vn 0.0243 0.9956 0.0907 +vn -0.0381 0.9906 0.1315 +vn -0.0093 0.9889 0.1485 +vn -0.0432 0.9783 0.2028 +vn -0.0720 0.9797 0.1871 +vn 0.8016 -0.2279 0.5527 +vn 0.7915 -0.2222 0.5693 +vn 0.8101 -0.1906 0.5545 +vn 0.7996 -0.1855 0.5712 +vn 0.7823 -0.2159 0.5843 +vn 0.7914 -0.1811 0.5838 +vn 0.8102 -0.1239 0.5730 +vn 0.8056 -0.1540 0.5721 +vn 0.8155 -0.1571 0.5570 +vn 0.8011 -0.1214 0.5861 +vn 0.7972 -0.1508 0.5846 +vn 0.7824 -0.1417 0.6064 +vn 0.7896 -0.1468 0.5958 +vn 0.7932 -0.1180 0.5974 +vn 0.7853 -0.1139 0.6085 +vn 0.7770 -0.1714 0.6057 +vn 0.7832 -0.1760 0.5963 +vn 0.7735 -0.2085 0.5985 +vn 0.7660 -0.2029 0.6099 +vn 0.7595 -0.1964 0.6202 +vn 0.7700 -0.1649 0.6164 +vn 0.7492 -0.1859 0.6358 +vn 0.7608 -0.1565 0.6299 +vn 0.7770 -0.1091 0.6200 +vn 0.7751 -0.1349 0.6173 +vn 0.7711 -0.1035 0.6283 +vn 0.7679 -0.1288 0.6274 +vn 0.7483 -0.1163 0.6531 +vn 0.7571 -0.1230 0.6416 +vn 0.7618 -0.0988 0.6403 +vn 0.7512 -0.0934 0.6534 +vn 0.7447 -0.1405 0.6525 +vn 0.7497 -0.1475 0.6451 +vn 0.7405 -0.1766 0.6484 +vn 0.7349 -0.1669 0.6573 +vn 0.7259 -0.1548 0.6701 +vn 0.7362 -0.1299 0.6642 +vn 0.7158 -0.1456 0.6829 +vn 0.7244 -0.1221 0.6785 +vn 0.7401 -0.0873 0.6668 +vn 0.7396 -0.1086 0.6642 +vn 0.7271 -0.0840 0.6813 +vn 0.7275 -0.1009 0.6786 +vn 0.7088 -0.0983 0.6985 +vn 0.7073 -0.0816 0.7021 +vn 0.7076 -0.1178 0.6968 +vn 0.7032 -0.1383 0.6975 +vn 0.7053 -0.0001 0.7089 +vn 0.7055 0.0225 0.7083 +vn 0.7269 -0.0001 0.6867 +vn 0.7267 0.0224 0.6866 +vn 0.7065 0.0388 0.7066 +vn 0.7273 0.0384 0.6853 +vn 0.7518 -0.0002 0.6594 +vn 0.7515 0.0256 0.6593 +vn 0.7394 0.0238 0.6728 +vn 0.7393 -0.0001 0.6734 +vn 0.7524 0.0463 0.6571 +vn 0.7412 0.0419 0.6700 +vn 0.7395 0.0867 0.6675 +vn 0.7419 0.0649 0.6674 +vn 0.7527 0.0684 0.6548 +vn 0.7505 0.0928 0.6543 +vn 0.7269 0.0832 0.6817 +vn 0.7273 0.0613 0.6836 +vn 0.7068 0.0609 0.7048 +vn 0.7071 0.0810 0.7025 +vn 0.7616 -0.0002 0.6481 +vn 0.7609 0.0267 0.6483 +vn 0.7716 -0.0002 0.6361 +vn 0.7711 0.0278 0.6362 +vn 0.7612 0.0500 0.6466 +vn 0.7711 0.0531 0.6345 +vn 0.7887 -0.0000 0.6147 +vn 0.7884 0.0290 0.6145 +vn 0.7799 0.0287 0.6252 +vn 0.7805 -0.0002 0.6252 +vn 0.7876 0.0571 0.6135 +vn 0.7786 0.0552 0.6250 +vn 0.7766 0.1073 0.6207 +vn 0.7778 0.0818 0.6231 +vn 0.7867 0.0850 0.6114 +vn 0.7850 0.1122 0.6093 +vn 0.7705 0.1023 0.6292 +vn 0.7711 0.0778 0.6319 +vn 0.7620 0.0729 0.6435 +vn 0.7609 0.0979 0.6415 +vn 0.7986 -0.0002 0.6018 +vn 0.7980 0.0295 0.6020 +vn 0.8069 -0.0002 0.5907 +vn 0.8062 0.0300 0.5908 +vn 0.7971 0.0585 0.6010 +vn 0.8054 0.0601 0.5897 +vn 0.8244 0.0307 0.5652 +vn 0.8155 0.0304 0.5780 +vn 0.8162 -0.0003 0.5777 +vn 0.8235 0.0622 0.5639 +vn 0.8143 0.0609 0.5772 +vn 0.8097 0.1221 0.5741 +vn 0.8126 0.0918 0.5756 +vn 0.8214 0.0930 0.5627 +vn 0.8187 0.1243 0.5606 +vn 0.8010 0.1195 0.5866 +vn 0.8034 0.0897 0.5887 +vn 0.7958 0.0877 0.5992 +vn 0.7935 0.1164 0.5974 +vn 0.8336 0.0314 0.5514 +vn 0.8428 0.0320 0.5374 +vn 0.8327 0.0632 0.5501 +vn 0.8417 0.0641 0.5361 +vn 0.8510 0.0324 0.5242 +vn 0.8498 0.0647 0.5231 +vn 0.8447 0.1286 0.5196 +vn 0.8477 0.0967 0.5216 +vn 0.8369 0.1276 0.5323 +vn 0.8397 0.0959 0.5344 +vn 0.8309 0.0947 0.5483 +vn 0.8280 0.1261 0.5463 +vn 0.8405 -0.1616 0.5172 +vn 0.8327 -0.1607 0.5299 +vn 0.8346 -0.1959 0.5148 +vn 0.8269 -0.1950 0.5274 +vn 0.8245 -0.1593 0.5430 +vn 0.8182 -0.1933 0.5414 +vn 0.8093 -0.2295 0.5408 +vn 0.8191 -0.2318 0.5248 +vn 0.8267 -0.2326 0.5123 +vn 0.7956 -0.0894 0.5992 +vn 0.7870 -0.0867 0.6108 +vn 0.8037 -0.0916 0.5879 +vn 0.7974 -0.0601 0.6005 +vn 0.7878 -0.0584 0.6132 +vn 0.8055 -0.0615 0.5894 +vn 0.8133 -0.0934 0.5743 +vn 0.8152 -0.0625 0.5758 +vn 0.8161 -0.0314 0.5770 +vn 0.8064 -0.0308 0.5906 +vn 0.7888 -0.0299 0.6140 +vn 0.7981 -0.0302 0.6017 +vn 0.7626 -0.0740 0.6426 +vn 0.7532 -0.0691 0.6541 +vn 0.7716 -0.0791 0.6312 +vn 0.7614 -0.0509 0.6463 +vn 0.7528 -0.0474 0.6565 +vn 0.7714 -0.0543 0.6340 +vn 0.7779 -0.0833 0.6229 +vn 0.7784 -0.0563 0.6252 +vn 0.7796 -0.0292 0.6256 +vn 0.7712 -0.0284 0.6360 +vn 0.7517 -0.0262 0.6590 +vn 0.7611 -0.0273 0.6481 +vn 0.7562 0.1224 0.6427 +vn 0.7480 0.1155 0.6536 +vn 0.7673 0.1281 0.6284 +vn 0.7495 0.1474 0.6453 +vn 0.7445 0.1401 0.6527 +vn 0.7602 0.1559 0.6307 +vn 0.7822 0.1405 0.6069 +vn 0.7749 0.1345 0.6175 +vn 0.7770 0.1704 0.6060 +vn 0.7696 0.1637 0.6171 +vn 0.7592 0.1957 0.6207 +vn 0.7661 0.2027 0.6099 +vn 0.7487 0.1850 0.6366 +vn 0.7346 0.1666 0.6577 +vn 0.7406 0.1763 0.6485 +vn 0.7897 0.1453 0.5961 +vn 0.7972 0.1491 0.5850 +vn 0.7834 0.1752 0.5963 +vn 0.7914 0.1798 0.5842 +vn 0.8148 0.1554 0.5585 +vn 0.8054 0.1525 0.5727 +vn 0.8096 0.1890 0.5557 +vn 0.7991 0.1837 0.5724 +vn 0.7913 0.2213 0.5700 +vn 0.8016 0.2274 0.5529 +vn 0.7820 0.2147 0.5851 +vn 0.7736 0.2079 0.5986 +vn 0.8241 0.1582 0.5440 +vn 0.8328 0.1601 0.5299 +vn 0.8181 0.1925 0.5419 +vn 0.8270 0.1945 0.5275 +vn 0.8405 0.1612 0.5173 +vn 0.8346 0.1957 0.5149 +vn 0.8266 0.2325 0.5124 +vn 0.8191 0.2316 0.5247 +vn 0.8092 0.2291 0.5410 +vn 0.7069 -0.0612 0.7046 +vn 0.7276 -0.0618 0.6832 +vn 0.7066 -0.0389 0.7066 +vn 0.7274 -0.0384 0.6851 +vn 0.7427 -0.0654 0.6665 +vn 0.7415 -0.0422 0.6696 +vn 0.7397 -0.0243 0.6725 +vn 0.7269 -0.0228 0.6864 +vn 0.7056 -0.0227 0.7083 +vn 0.7085 0.0981 0.6988 +vn 0.7274 0.1005 0.6789 +vn 0.7074 0.1178 0.6970 +vn 0.7240 0.1224 0.6789 +vn 0.7391 0.1075 0.6650 +vn 0.7357 0.1294 0.6648 +vn 0.7256 0.1546 0.6705 +vn 0.7156 0.1453 0.6832 +vn 0.7031 0.1382 0.6975 +vn 0.0224 -0.5701 -0.8212 +vn 0.0785 -0.9969 -0.0023 +vn 0.0693 -0.8803 -0.4694 +vn -0.0000 -0.8830 -0.4694 +vn -0.0000 -1.0000 -0.0022 +vn 0.1564 -0.9877 -0.0023 +vn 0.1381 -0.8721 -0.4694 +vn 0.0258 -0.3285 -0.9442 +vn 0.0515 -0.3255 -0.9441 +vn 0.0474 -0.6023 0.7968 +vn 0.0668 -0.8486 0.5248 +vn 0.0000 -0.8512 0.5248 +vn -0.0000 -0.6042 0.7968 +vn 0.0271 -0.3445 0.9384 +vn 0.0000 -0.3455 0.9384 +vn 0.0541 -0.3413 0.9384 +vn 0.0945 -0.5968 0.7968 +vn 0.1332 -0.8408 0.5248 +vn 0.0043 -0.0545 0.9985 +vn 0.0173 -0.2197 0.9754 +vn -0.0000 -0.2204 0.9754 +vn -0.0000 -0.0547 0.9985 +vn 0.0000 0.0851 0.9964 +vn -0.0067 0.0848 0.9964 +vn -0.0133 0.0841 0.9964 +vn 0.0086 -0.0540 0.9985 +vn 0.0345 -0.2177 0.9754 +vn -0.0784 0.9963 0.0360 +vn -0.0778 0.9886 0.1292 +vn 0.0000 0.9916 0.1292 +vn 0.0000 0.9994 0.0360 +vn -0.0784 0.9967 0.0185 +vn -0.0000 0.9998 0.0185 +vn -0.1564 0.9875 0.0185 +vn -0.1563 0.9870 0.0360 +vn -0.1551 0.9794 0.1292 +vn -0.0750 0.9536 0.2917 +vn -0.0708 0.8997 0.4308 +vn -0.0000 0.9025 0.4308 +vn -0.0000 0.9565 0.2917 +vn -0.0774 0.9841 0.1601 +vn 0.0000 0.9871 0.1601 +vn -0.1544 0.9749 0.1601 +vn -0.1496 0.9447 0.2917 +vn -0.1412 0.8913 0.4308 +vn 0.2061 -0.8586 -0.4693 +vn 0.0769 -0.3204 -0.9441 +vn 0.2334 -0.9724 -0.0023 +vn 0.3090 -0.9511 -0.0023 +vn 0.2729 -0.8398 -0.4693 +vn 0.1018 -0.3134 -0.9441 +vn 0.1411 -0.5875 0.7968 +vn 0.1987 -0.8277 0.5248 +vn 0.0807 -0.3360 0.9384 +vn 0.1068 -0.3286 0.9384 +vn 0.1867 -0.5746 0.7968 +vn 0.2630 -0.8096 0.5248 +vn 0.0128 -0.0532 0.9985 +vn 0.0515 -0.2143 0.9754 +vn -0.0199 0.0827 0.9964 +vn -0.0263 0.0809 0.9964 +vn 0.0169 -0.0520 0.9985 +vn 0.0681 -0.2096 0.9754 +vn -0.2333 0.9717 0.0360 +vn -0.2315 0.9642 0.1292 +vn -0.2334 0.9722 0.0185 +vn -0.3090 0.9509 0.0185 +vn -0.3088 0.9504 0.0360 +vn -0.3064 0.9431 0.1292 +vn -0.2233 0.9301 0.2917 +vn -0.2107 0.8775 0.4308 +vn -0.2304 0.9598 0.1601 +vn -0.3050 0.9388 0.1601 +vn -0.2956 0.9097 0.2917 +vn -0.2789 0.8583 0.4308 +vn 0.3379 -0.8158 -0.4693 +vn 0.1261 -0.3045 -0.9441 +vn 0.3827 -0.9239 -0.0023 +vn 0.4540 -0.8910 -0.0023 +vn 0.4009 -0.7868 -0.4693 +vn 0.1496 -0.2936 -0.9441 +vn 0.2312 -0.5582 0.7968 +vn 0.3258 -0.7865 0.5247 +vn 0.1322 -0.3192 0.9384 +vn 0.1569 -0.3079 0.9384 +vn 0.2743 -0.5384 0.7968 +vn 0.3865 -0.7585 0.5248 +vn 0.0209 -0.0505 0.9985 +vn 0.0844 -0.2036 0.9754 +vn -0.0326 0.0786 0.9964 +vn -0.0386 0.0758 0.9964 +vn 0.0248 -0.0487 0.9985 +vn 0.1001 -0.1964 0.9754 +vn -0.3824 0.9233 0.0360 +vn -0.3795 0.9161 0.1292 +vn -0.3826 0.9237 0.0185 +vn -0.4539 0.8909 0.0185 +vn -0.4537 0.8904 0.0360 +vn -0.4502 0.8835 0.1292 +vn -0.3660 0.8837 0.2917 +vn -0.3454 0.8338 0.4308 +vn -0.3777 0.9120 0.1601 +vn -0.4481 0.8795 0.1601 +vn -0.4342 0.8523 0.2917 +vn -0.4097 0.8041 0.4307 +vn 0.4614 -0.7529 -0.4693 +vn 0.1722 -0.2810 -0.9441 +vn 0.5225 -0.8526 -0.0023 +vn 0.5878 -0.8090 -0.0023 +vn 0.5190 -0.7144 -0.4694 +vn 0.1937 -0.2666 -0.9442 +vn 0.3157 -0.5152 0.7968 +vn 0.4448 -0.7258 0.5248 +vn 0.1805 -0.2946 0.9384 +vn 0.2031 -0.2795 0.9384 +vn 0.3551 -0.4888 0.7968 +vn 0.5003 -0.6887 0.5248 +vn 0.0286 -0.0466 0.9985 +vn 0.1152 -0.1879 0.9754 +vn -0.0445 0.0726 0.9964 +vn -0.0500 0.0688 0.9964 +vn 0.0321 -0.0442 0.9985 +vn 0.1296 -0.1783 0.9754 +vn -0.5222 0.8521 0.0360 +vn -0.5181 0.8455 0.1292 +vn -0.5224 0.8525 0.0185 +vn -0.5877 0.8089 0.0185 +vn -0.5874 0.8085 0.0360 +vn -0.5829 0.8022 0.1292 +vn -0.4998 0.8156 0.2917 +vn -0.4715 0.7695 0.4307 +vn -0.5158 0.8416 0.1601 +vn -0.5802 0.7986 0.1601 +vn -0.5622 0.7738 0.2917 +vn -0.5305 0.7301 0.4307 +vn 0.5735 -0.6714 -0.4694 +vn 0.2140 -0.2506 -0.9441 +vn 0.6494 -0.7604 -0.0023 +vn 0.7071 -0.7071 -0.0023 +vn 0.6244 -0.6244 -0.4693 +vn 0.2330 -0.2330 -0.9442 +vn 0.3924 -0.4595 0.7968 +vn 0.5528 -0.6473 0.5248 +vn 0.2244 -0.2628 0.9384 +vn 0.2443 -0.2443 0.9384 +vn 0.4272 -0.4272 0.7968 +vn 0.6019 -0.6019 0.5248 +vn 0.0355 -0.0416 0.9985 +vn 0.1432 -0.1676 0.9754 +vn -0.0553 0.0647 0.9964 +vn -0.0602 0.0602 0.9964 +vn 0.0387 -0.0387 0.9985 +vn 0.1559 -0.1559 0.9754 +vn -0.6490 0.7599 0.0360 +vn -0.6440 0.7540 0.1292 +vn -0.6493 0.7603 0.0185 +vn -0.7070 0.7070 0.0185 +vn -0.7066 0.7066 0.0360 +vn -0.7012 0.7012 0.1292 +vn -0.6212 0.7273 0.2917 +vn -0.5861 0.6863 0.4307 +vn -0.6411 0.7506 0.1601 +vn -0.6980 0.6980 0.1601 +vn -0.6764 0.6764 0.2917 +vn -0.6381 0.6381 0.4307 +vn 0.6715 -0.5735 -0.4693 +vn 0.2506 -0.2140 -0.9441 +vn 0.7604 -0.6494 -0.0022 +vn 0.8090 -0.5878 -0.0022 +vn 0.7144 -0.5190 -0.4693 +vn 0.2666 -0.1937 -0.9442 +vn 0.4595 -0.3924 0.7968 +vn 0.6473 -0.5528 0.5247 +vn 0.2628 -0.2244 0.9384 +vn 0.2795 -0.2031 0.9384 +vn 0.4888 -0.3551 0.7968 +vn 0.6887 -0.5004 0.5248 +vn 0.0416 -0.0355 0.9985 +vn 0.1676 -0.1432 0.9754 +vn -0.0647 0.0553 0.9964 +vn -0.0688 0.0500 0.9964 +vn 0.0442 -0.0321 0.9985 +vn 0.1783 -0.1296 0.9754 +vn -0.7599 0.6490 0.0360 +vn -0.7540 0.6440 0.1292 +vn -0.7603 0.6493 0.0185 +vn -0.8089 0.5877 0.0185 +vn -0.8085 0.5874 0.0360 +vn -0.8022 0.5829 0.1292 +vn -0.7273 0.6212 0.2917 +vn -0.6862 0.5861 0.4307 +vn -0.7506 0.6411 0.1601 +vn -0.7986 0.5802 0.1601 +vn -0.7738 0.5622 0.2917 +vn -0.7301 0.5305 0.4307 +vn 0.7529 -0.4614 -0.4693 +vn 0.2810 -0.1722 -0.9441 +vn 0.8526 -0.5225 -0.0023 +vn 0.8910 -0.4540 -0.0022 +vn 0.7868 -0.4009 -0.4694 +vn 0.2936 -0.1496 -0.9442 +vn 0.5152 -0.3157 0.7968 +vn 0.7258 -0.4448 0.5247 +vn 0.2946 -0.1805 0.9384 +vn 0.3079 -0.1569 0.9384 +vn 0.5384 -0.2743 0.7968 +vn 0.7585 -0.3865 0.5248 +vn 0.0466 -0.0286 0.9985 +vn 0.1879 -0.1152 0.9754 +vn -0.0725 0.0444 0.9964 +vn -0.0758 0.0386 0.9964 +vn 0.0487 -0.0248 0.9985 +vn 0.1964 -0.1001 0.9754 +vn -0.8521 0.5222 0.0360 +vn -0.8455 0.5181 0.1292 +vn -0.8525 0.5224 0.0185 +vn -0.8909 0.4539 0.0185 +vn -0.8904 0.4537 0.0360 +vn -0.8835 0.4502 0.1292 +vn -0.8156 0.4998 0.2917 +vn -0.7695 0.4715 0.4307 +vn -0.8416 0.5158 0.1601 +vn -0.8795 0.4481 0.1601 +vn -0.8523 0.4342 0.2917 +vn -0.8041 0.4097 0.4307 +vn 0.8158 -0.3379 -0.4693 +vn 0.3044 -0.1261 -0.9442 +vn 0.9239 -0.3827 -0.0022 +vn 0.9511 -0.3090 -0.0023 +vn 0.8398 -0.2729 -0.4694 +vn 0.3134 -0.1018 -0.9442 +vn 0.5582 -0.2312 0.7968 +vn 0.7865 -0.3258 0.5248 +vn 0.3192 -0.1322 0.9384 +vn 0.3286 -0.1068 0.9384 +vn 0.5746 -0.1867 0.7968 +vn 0.8096 -0.2630 0.5248 +vn 0.0505 -0.0209 0.9985 +vn 0.2036 -0.0844 0.9754 +vn -0.0786 0.0326 0.9964 +vn -0.0809 0.0263 0.9964 +vn 0.0520 -0.0169 0.9985 +vn 0.2096 -0.0681 0.9754 +vn -0.9233 0.3824 0.0360 +vn -0.9161 0.3795 0.1292 +vn -0.9237 0.3826 0.0185 +vn -0.9509 0.3090 0.0185 +vn -0.9504 0.3088 0.0360 +vn -0.9431 0.3064 0.1292 +vn -0.8837 0.3660 0.2917 +vn -0.8338 0.3454 0.4307 +vn -0.9120 0.3777 0.1601 +vn -0.9388 0.3050 0.1601 +vn -0.9097 0.2956 0.2917 +vn -0.8583 0.2789 0.4308 +vn 0.8586 -0.2061 -0.4693 +vn 0.3204 -0.0769 -0.9441 +vn 0.9724 -0.2334 -0.0023 +vn 0.9877 -0.1564 -0.0022 +vn 0.8721 -0.1381 -0.4694 +vn 0.3254 -0.0515 -0.9442 +vn 0.5875 -0.1410 0.7968 +vn 0.8277 -0.1987 0.5248 +vn 0.3360 -0.0807 0.9384 +vn 0.3413 -0.0541 0.9384 +vn 0.5968 -0.0945 0.7968 +vn 0.8408 -0.1332 0.5248 +vn 0.0532 -0.0128 0.9985 +vn 0.2143 -0.0515 0.9754 +vn -0.0827 0.0199 0.9964 +vn -0.0840 0.0133 0.9964 +vn 0.0540 -0.0086 0.9985 +vn 0.2177 -0.0345 0.9754 +vn -0.9717 0.2333 0.0360 +vn -0.9642 0.2315 0.1292 +vn -0.9722 0.2334 0.0185 +vn -0.9875 0.1564 0.0185 +vn -0.9870 0.1563 0.0360 +vn -0.9794 0.1551 0.1292 +vn -0.9301 0.2233 0.2917 +vn -0.8775 0.2107 0.4308 +vn -0.9598 0.2304 0.1601 +vn -0.9749 0.1544 0.1601 +vn -0.9447 0.1496 0.2917 +vn -0.8914 0.1412 0.4308 +vn 0.8803 -0.0693 -0.4694 +vn 0.3285 -0.0259 -0.9442 +vn 0.9969 -0.0785 -0.0023 +vn 1.0000 0.0000 -0.0023 +vn 0.8830 0.0000 -0.4694 +vn 0.3295 0.0000 -0.9442 +vn 0.6023 -0.0474 0.7968 +vn 0.8486 -0.0668 0.5248 +vn 0.3445 -0.0271 0.9384 +vn 0.3455 0.0000 0.9384 +vn 0.6042 0.0000 0.7968 +vn 0.8512 0.0000 0.5248 +vn 0.0545 -0.0043 0.9985 +vn 0.2198 -0.0173 0.9754 +vn -0.0848 0.0067 0.9964 +vn -0.0851 0.0000 0.9964 +vn 0.0547 0.0000 0.9985 +vn 0.2204 0.0000 0.9754 +vn -0.9963 0.0784 0.0360 +vn -0.9886 0.0778 0.1292 +vn -0.9967 0.0784 0.0185 +vn -0.9998 0.0000 0.0185 +vn -0.9994 0.0000 0.0360 +vn -0.9916 0.0000 0.1292 +vn -0.9536 0.0750 0.2917 +vn -0.8997 0.0708 0.4308 +vn -0.9841 0.0774 0.1601 +vn -0.9871 0.0000 0.1601 +vn -0.9565 -0.0000 0.2917 +vn -0.9025 -0.0000 0.4308 +vn -0.4576 -0.7810 -0.4249 +vn -0.1683 -0.3920 -0.9045 +vn -0.0444 -0.5483 -0.8351 +vn -0.1515 -0.9034 -0.4012 +vn -0.4913 -0.8710 -0.0022 +vn -0.1433 -0.9897 -0.0019 +vn -0.6494 -0.7604 -0.0023 +vn -0.5757 -0.6737 -0.4633 +vn -0.2189 -0.2558 -0.9416 +vn -0.1636 -0.6237 0.7644 +vn -0.3335 -0.7853 0.5216 +vn -0.0109 -0.8934 0.4492 +vn 0.0965 -0.8209 0.5629 +vn 0.0050 -0.4625 0.8866 +vn 0.2682 -0.6696 0.6926 +vn -0.1961 -0.2892 0.9370 +vn -0.3678 -0.4736 0.8003 +vn -0.5398 -0.6527 0.5316 +vn 0.1297 -0.2063 0.9699 +vn 0.0282 -0.3311 0.9432 +vn 0.2792 -0.5339 0.7981 +vn 0.3640 -0.4283 0.8271 +vn 0.4387 -0.3375 0.8329 +vn 0.2163 -0.0970 0.9715 +vn 0.0727 0.0454 0.9963 +vn -0.0170 -0.0612 0.9980 +vn -0.1249 -0.1888 0.9740 +vn 0.8063 0.5905 0.0349 +vn 0.8003 0.5862 0.1263 +vn 0.9615 0.2551 0.1018 +vn 0.9671 0.2527 0.0293 +vn 0.8073 0.5899 0.0180 +vn 0.9680 0.2505 0.0154 +vn 0.6679 0.7440 0.0184 +vn 0.6674 0.7438 0.0358 +vn 0.6624 0.7380 0.1287 +vn 0.7350 0.6095 0.2970 +vn 0.6997 0.5565 0.4481 +vn 0.8460 0.2987 0.4416 +vn 0.8864 0.3638 0.2864 +vn 0.7585 0.6328 0.1559 +vn 0.9155 0.3781 0.1374 +vn 0.6540 0.7395 0.1595 +vn 0.6338 0.7157 0.2935 +vn 0.5982 0.6724 0.4359 +vn -0.4606 -0.7533 -0.4695 +vn -0.1720 -0.2812 -0.9441 +vn -0.1932 -0.2669 -0.9441 +vn -0.5178 -0.7153 -0.4694 +vn -0.5218 -0.8531 -0.0023 +vn -0.5864 -0.8100 -0.0023 +vn -0.4540 -0.8910 -0.0023 +vn -0.4009 -0.7868 -0.4693 +vn -0.1496 -0.2936 -0.9441 +vn -0.3153 -0.5155 0.7968 +vn -0.4442 -0.7262 0.5247 +vn -0.4991 -0.6895 0.5248 +vn -0.3543 -0.4894 0.7969 +vn -0.1803 -0.2948 0.9384 +vn -0.2026 -0.2799 0.9384 +vn -0.1569 -0.3079 0.9384 +vn -0.2743 -0.5383 0.7968 +vn -0.3865 -0.7585 0.5248 +vn -0.0285 -0.0467 0.9985 +vn -0.1150 -0.1881 0.9754 +vn -0.1292 -0.1785 0.9754 +vn -0.0320 -0.0443 0.9985 +vn 0.0499 0.0689 0.9964 +vn 0.0444 0.0726 0.9964 +vn 0.0386 0.0758 0.9964 +vn -0.0248 -0.0487 0.9985 +vn -0.1001 -0.1964 0.9754 +vn 0.5214 0.8525 0.0360 +vn 0.5174 0.8459 0.1292 +vn 0.5815 0.8032 0.1292 +vn 0.5860 0.8095 0.0360 +vn 0.5217 0.8529 0.0185 +vn 0.5863 0.8099 0.0185 +vn 0.4539 0.8909 0.0185 +vn 0.4537 0.8904 0.0360 +vn 0.4502 0.8835 0.1292 +vn 0.4991 0.8160 0.2917 +vn 0.4709 0.7699 0.4308 +vn 0.5292 0.7310 0.4308 +vn 0.5609 0.7748 0.2917 +vn 0.5150 0.8421 0.1601 +vn 0.5788 0.7996 0.1601 +vn 0.4481 0.8795 0.1601 +vn 0.4342 0.8523 0.2917 +vn 0.4097 0.8041 0.4308 +vn -0.3379 -0.8158 -0.4693 +vn -0.1261 -0.3045 -0.9441 +vn -0.3827 -0.9239 -0.0023 +vn -0.3090 -0.9511 -0.0023 +vn -0.2729 -0.8398 -0.4693 +vn -0.1017 -0.3131 -0.9443 +vn -0.2312 -0.5582 0.7968 +vn -0.3258 -0.7865 0.5248 +vn -0.1322 -0.3192 0.9384 +vn -0.1068 -0.3286 0.9384 +vn -0.1867 -0.5746 0.7968 +vn -0.2630 -0.8096 0.5248 +vn -0.0209 -0.0505 0.9985 +vn -0.0843 -0.2036 0.9754 +vn 0.0326 0.0786 0.9964 +vn 0.0263 0.0809 0.9964 +vn -0.0169 -0.0520 0.9985 +vn -0.0681 -0.2096 0.9754 +vn 0.3824 0.9233 0.0360 +vn 0.3795 0.9161 0.1292 +vn 0.3826 0.9237 0.0185 +vn 0.3090 0.9509 0.0185 +vn 0.3088 0.9504 0.0360 +vn 0.3064 0.9431 0.1292 +vn 0.3660 0.8837 0.2917 +vn 0.3454 0.8338 0.4308 +vn 0.3777 0.9120 0.1601 +vn 0.3050 0.9388 0.1601 +vn 0.2956 0.9097 0.2917 +vn 0.2789 0.8583 0.4308 +vn -0.2061 -0.8586 -0.4693 +vn -0.0769 -0.3204 -0.9441 +vn -0.2334 -0.9724 -0.0023 +vn -0.1564 -0.9877 -0.0023 +vn -0.1381 -0.8721 -0.4694 +vn -0.0516 -0.3255 -0.9441 +vn -0.1411 -0.5875 0.7968 +vn -0.1987 -0.8277 0.5248 +vn -0.0807 -0.3360 0.9384 +vn -0.0541 -0.3413 0.9384 +vn -0.0945 -0.5968 0.7968 +vn -0.1332 -0.8408 0.5248 +vn -0.0128 -0.0532 0.9985 +vn -0.0515 -0.2143 0.9754 +vn 0.0199 0.0827 0.9964 +vn 0.0133 0.0840 0.9964 +vn -0.0085 -0.0540 0.9985 +vn -0.0345 -0.2177 0.9754 +vn 0.2333 0.9717 0.0360 +vn 0.2315 0.9642 0.1292 +vn 0.2334 0.9722 0.0185 +vn 0.1564 0.9875 0.0185 +vn 0.1563 0.9870 0.0360 +vn 0.1551 0.9794 0.1292 +vn 0.2233 0.9301 0.2917 +vn 0.2107 0.8775 0.4308 +vn 0.2304 0.9598 0.1601 +vn 0.1544 0.9749 0.1601 +vn 0.1496 0.9447 0.2917 +vn 0.1412 0.8913 0.4308 +vn -0.0693 -0.8803 -0.4693 +vn -0.0259 -0.3285 -0.9442 +vn -0.0785 -0.9969 -0.0022 +vn -0.0000 -0.3294 -0.9442 +vn -0.0474 -0.6023 0.7968 +vn -0.0668 -0.8486 0.5248 +vn -0.0271 -0.3445 0.9384 +vn -0.0043 -0.0545 0.9985 +vn -0.0173 -0.2197 0.9754 +vn 0.0067 0.0848 0.9964 +vn 0.0784 0.9963 0.0360 +vn 0.0778 0.9886 0.1292 +vn 0.0784 0.9967 0.0185 +vn 0.0750 0.9536 0.2917 +vn 0.0708 0.8997 0.4308 +vn 0.0774 0.9841 0.1601 +vn 0.0698 -0.8870 0.4564 +vn 0.1392 -0.8788 0.4564 +vn 0.1546 -0.9760 0.1534 +vn 0.0775 -0.9851 0.1534 +vn -0.0000 -0.8898 0.4564 +vn 0.0000 -0.9882 0.1534 +vn -0.0000 -0.6618 0.7497 +vn 0.0519 -0.6598 0.7497 +vn 0.1035 -0.6536 0.7497 +vn -0.0477 0.6056 0.7943 +vn -0.0950 0.6000 0.7943 +vn -0.0524 0.3306 0.9423 +vn -0.0263 0.3337 0.9423 +vn 0.0000 0.6075 0.7943 +vn 0.0000 0.3347 0.9423 +vn 0.0000 0.7929 0.6093 +vn -0.0622 0.7905 0.6093 +vn -0.1240 0.7832 0.6093 +vn 0.2077 -0.8652 0.4564 +vn 0.2750 -0.8462 0.4564 +vn 0.3054 -0.9398 0.1534 +vn 0.2307 -0.9609 0.1534 +vn 0.1545 -0.6435 0.7497 +vn 0.2045 -0.6294 0.7497 +vn -0.1418 0.5907 0.7943 +vn -0.1877 0.5778 0.7943 +vn -0.1034 0.3184 0.9423 +vn -0.0781 0.3255 0.9423 +vn -0.1851 0.7710 0.6093 +vn -0.2450 0.7541 0.6093 +vn 0.3405 -0.8220 0.4564 +vn 0.4039 -0.7928 0.4564 +vn 0.4486 -0.8805 0.1534 +vn 0.3782 -0.9129 0.1534 +vn 0.2533 -0.6114 0.7497 +vn 0.3005 -0.5897 0.7497 +vn -0.2325 0.5613 0.7943 +vn -0.2758 0.5413 0.7943 +vn -0.1520 0.2983 0.9423 +vn -0.1281 0.3093 0.9423 +vn -0.3034 0.7326 0.6093 +vn -0.3600 0.7065 0.6093 +vn 0.4649 -0.7587 0.4564 +vn 0.5230 -0.7198 0.4564 +vn 0.5808 -0.7994 0.1534 +vn 0.5163 -0.8425 0.1534 +vn 0.3458 -0.5643 0.7497 +vn 0.3890 -0.5354 0.7497 +vn -0.3174 0.5180 0.7943 +vn -0.3571 0.4915 0.7943 +vn -0.1968 0.2708 0.9423 +vn -0.1749 0.2854 0.9423 +vn -0.4143 0.6761 0.6093 +vn -0.4661 0.6415 0.6093 +vn 0.5779 -0.6766 0.4564 +vn 0.6292 -0.6292 0.4564 +vn 0.6987 -0.6987 0.1534 +vn 0.6418 -0.7514 0.1534 +vn 0.4298 -0.5032 0.7497 +vn 0.4680 -0.4680 0.7497 +vn -0.3945 0.4619 0.7943 +vn -0.4296 0.4296 0.7943 +vn -0.2367 0.2367 0.9423 +vn -0.2174 0.2545 0.9423 +vn -0.5150 0.6029 0.6093 +vn -0.5607 0.5607 0.6093 +vn 0.6766 -0.5779 0.4564 +vn 0.7198 -0.5230 0.4564 +vn 0.7994 -0.5808 0.1534 +vn 0.7514 -0.6418 0.1534 +vn 0.5032 -0.4298 0.7497 +vn 0.5354 -0.3890 0.7497 +vn -0.4619 0.3945 0.7943 +vn -0.4915 0.3571 0.7943 +vn -0.2708 0.1968 0.9423 +vn -0.2545 0.2174 0.9423 +vn -0.6029 0.5150 0.6093 +vn -0.6415 0.4661 0.6093 +vn 0.7587 -0.4649 0.4564 +vn 0.7928 -0.4039 0.4564 +vn 0.8805 -0.4486 0.1534 +vn 0.8425 -0.5163 0.1534 +vn 0.5643 -0.3458 0.7497 +vn 0.5897 -0.3004 0.7497 +vn -0.5180 0.3174 0.7943 +vn -0.5413 0.2758 0.7943 +vn -0.2983 0.1520 0.9423 +vn -0.2854 0.1749 0.9423 +vn -0.6761 0.4143 0.6093 +vn -0.7065 0.3600 0.6093 +vn 0.8220 -0.3405 0.4564 +vn 0.8462 -0.2750 0.4564 +vn 0.9398 -0.3054 0.1534 +vn 0.9129 -0.3782 0.1534 +vn 0.6114 -0.2533 0.7497 +vn 0.6294 -0.2045 0.7497 +vn -0.5613 0.2325 0.7943 +vn -0.5778 0.1877 0.7943 +vn -0.3184 0.1034 0.9423 +vn -0.3093 0.1281 0.9423 +vn -0.7326 0.3034 0.6093 +vn -0.7541 0.2450 0.6093 +vn 0.8652 -0.2077 0.4564 +vn 0.8788 -0.1392 0.4564 +vn 0.9760 -0.1546 0.1534 +vn 0.9609 -0.2307 0.1534 +vn 0.6435 -0.1545 0.7497 +vn 0.6536 -0.1035 0.7497 +vn -0.5907 0.1418 0.7943 +vn -0.6000 0.0950 0.7943 +vn -0.3306 0.0524 0.9423 +vn -0.3255 0.0781 0.9423 +vn -0.7710 0.1851 0.6093 +vn -0.7832 0.1240 0.6093 +vn 0.8870 -0.0698 0.4564 +vn 0.8898 -0.0000 0.4564 +vn 0.9882 0.0000 0.1534 +vn 0.9851 -0.0775 0.1534 +vn 0.6598 -0.0519 0.7497 +vn 0.6618 -0.0000 0.7497 +vn -0.6056 0.0477 0.7943 +vn -0.6075 -0.0000 0.7943 +vn -0.3347 0.0000 0.9423 +vn -0.3337 0.0263 0.9423 +vn -0.7905 0.0622 0.6093 +vn -0.7929 -0.0000 0.6093 +vn -0.5618 -0.6909 0.4551 +vn -0.5217 -0.7207 0.4564 +vn -0.5794 -0.8004 0.1534 +vn -0.6240 -0.7663 0.1531 +vn -0.5584 -0.6949 0.4531 +vn -0.6230 -0.7672 0.1525 +vn -0.4104 -0.5236 0.7466 +vn -0.4176 -0.5150 0.7486 +vn -0.3880 -0.5360 0.7497 +vn 0.3867 0.4672 0.7951 +vn 0.3562 0.4921 0.7943 +vn 0.1963 0.2711 0.9423 +vn 0.2133 0.2555 0.9430 +vn 0.4125 0.4424 0.7963 +vn 0.2343 0.2335 0.9437 +vn 0.5332 0.5854 0.6107 +vn 0.5046 0.6111 0.6099 +vn 0.4649 0.6423 0.6093 +vn -0.4643 -0.7591 0.4563 +vn -0.4039 -0.7928 0.4564 +vn -0.4486 -0.8805 0.1534 +vn -0.5156 -0.8430 0.1534 +vn -0.3453 -0.5646 0.7496 +vn -0.3004 -0.5897 0.7497 +vn 0.3170 0.5182 0.7944 +vn 0.2758 0.5413 0.7943 +vn 0.1520 0.2983 0.9423 +vn 0.1746 0.2855 0.9423 +vn 0.4137 0.6764 0.6093 +vn 0.3600 0.7065 0.6093 +vn -0.3405 -0.8220 0.4564 +vn -0.2750 -0.8462 0.4564 +vn -0.3054 -0.9398 0.1534 +vn -0.3782 -0.9129 0.1534 +vn -0.2533 -0.6114 0.7497 +vn -0.2045 -0.6294 0.7497 +vn 0.2325 0.5613 0.7943 +vn 0.1877 0.5778 0.7943 +vn 0.1034 0.3184 0.9423 +vn 0.1281 0.3093 0.9423 +vn 0.3034 0.7326 0.6093 +vn 0.2450 0.7541 0.6093 +vn -0.2077 -0.8652 0.4564 +vn -0.1392 -0.8788 0.4564 +vn -0.1546 -0.9760 0.1534 +vn -0.2307 -0.9609 0.1534 +vn -0.1545 -0.6435 0.7497 +vn -0.1035 -0.6536 0.7497 +vn 0.1418 0.5907 0.7943 +vn 0.0950 0.6000 0.7943 +vn 0.0524 0.3306 0.9423 +vn 0.0781 0.3255 0.9423 +vn 0.1851 0.7710 0.6093 +vn 0.1240 0.7832 0.6093 +vn -0.0698 -0.8870 0.4564 +vn -0.0775 -0.9851 0.1534 +vn -0.0519 -0.6598 0.7497 +vn 0.0477 0.6056 0.7943 +vn 0.0263 0.3337 0.9423 +vn 0.0622 0.7905 0.6093 +vn 0.0346 -0.4398 0.8974 +vn 0.0690 -0.4357 0.8975 +vn -0.0000 -0.4411 0.8975 +vn 0.1030 -0.4289 0.8975 +vn 0.1363 -0.4195 0.8975 +vn 0.1688 -0.4075 0.8974 +vn 0.2003 -0.3930 0.8975 +vn 0.2305 -0.3761 0.8974 +vn 0.2593 -0.3569 0.8975 +vn 0.2865 -0.3354 0.8974 +vn 0.3119 -0.3119 0.8975 +vn 0.3354 -0.2865 0.8974 +vn 0.3569 -0.2593 0.8975 +vn 0.3761 -0.2305 0.8974 +vn 0.3930 -0.2003 0.8975 +vn 0.4075 -0.1688 0.8974 +vn 0.4195 -0.1363 0.8975 +vn 0.4289 -0.1030 0.8974 +vn 0.4357 -0.0690 0.8975 +vn 0.4398 -0.0346 0.8975 +vn 0.4411 0.0000 0.8975 +vn -0.2778 -0.3444 0.8968 +vn -0.2586 -0.3573 0.8975 +vn -0.2674 -0.3566 0.8952 +vn -0.1381 -0.1737 0.9751 +vn -0.2302 -0.3764 0.8974 +vn -0.2003 -0.3930 0.8975 +vn -0.1688 -0.4075 0.8974 +vn -0.1363 -0.4195 0.8975 +vn -0.1030 -0.4289 0.8975 +vn -0.0690 -0.4357 0.8975 +vn -0.0346 -0.4398 0.8975 +vn -0.0761 0.9664 0.2454 +vn -0.0779 0.9904 0.1145 +vn 0.0000 0.9934 0.1145 +vn 0.0000 0.9694 0.2454 +vn -0.0710 0.9025 0.4249 +vn 0.0000 0.9052 0.4249 +vn -0.1416 0.8941 0.4249 +vn -0.1516 0.9575 0.2454 +vn -0.1554 0.9812 0.1145 +vn -0.2263 0.9426 0.2454 +vn -0.2319 0.9660 0.1145 +vn -0.2113 0.8802 0.4249 +vn -0.2797 0.8609 0.4249 +vn -0.2996 0.9220 0.2454 +vn -0.3070 0.9448 0.1145 +vn -0.3710 0.8956 0.2454 +vn -0.3802 0.9178 0.1145 +vn -0.3464 0.8363 0.4249 +vn -0.4110 0.8066 0.4249 +vn -0.4401 0.8638 0.2454 +vn -0.4510 0.8851 0.1145 +vn -0.5065 0.8266 0.2454 +vn -0.5191 0.8470 0.1145 +vn -0.4730 0.7719 0.4249 +vn -0.5321 0.7324 0.4249 +vn -0.5698 0.7843 0.2454 +vn -0.5839 0.8037 0.1145 +vn -0.6296 0.7372 0.2454 +vn -0.6452 0.7554 0.1145 +vn -0.5879 0.6884 0.4249 +vn -0.6401 0.6401 0.4249 +vn -0.6855 0.6855 0.2454 +vn -0.7025 0.7025 0.1145 +vn -0.7372 0.6296 0.2454 +vn -0.7554 0.6452 0.1145 +vn -0.6884 0.5879 0.4249 +vn -0.7324 0.5321 0.4249 +vn -0.7843 0.5698 0.2454 +vn -0.8037 0.5839 0.1145 +vn -0.8266 0.5065 0.2454 +vn -0.8470 0.5191 0.1145 +vn -0.7719 0.4730 0.4249 +vn -0.8066 0.4110 0.4249 +vn -0.8638 0.4401 0.2454 +vn -0.8851 0.4510 0.1145 +vn -0.8956 0.3710 0.2454 +vn -0.9178 0.3802 0.1145 +vn -0.8363 0.3464 0.4249 +vn -0.8609 0.2797 0.4249 +vn -0.9220 0.2996 0.2454 +vn -0.9448 0.3070 0.1145 +vn -0.9426 0.2263 0.2454 +vn -0.9660 0.2319 0.1145 +vn -0.8802 0.2113 0.4249 +vn -0.8941 0.1416 0.4249 +vn -0.9575 0.1516 0.2454 +vn -0.9812 0.1554 0.1145 +vn -0.9664 0.0761 0.2454 +vn -0.9904 0.0779 0.1145 +vn -0.9025 0.0710 0.4249 +vn -0.9052 -0.0000 0.4249 +vn -0.9694 0.0000 0.2454 +vn -0.9934 0.0000 0.1145 +vn 0.7786 0.5765 0.2480 +vn 0.8009 0.5870 0.1182 +vn 0.9617 0.2517 0.1088 +vn 0.9400 0.2555 0.2261 +vn 0.7393 0.5275 0.4185 +vn 0.9055 0.2078 0.3701 +vn 0.6056 0.6733 0.4241 +vn 0.6470 0.7215 0.2464 +vn 0.6633 0.7393 0.1159 +vn 0.5058 0.8270 0.2454 +vn 0.5183 0.8475 0.1145 +vn 0.5825 0.8047 0.1145 +vn 0.5684 0.7853 0.2454 +vn 0.4723 0.7723 0.4249 +vn 0.5308 0.7333 0.4249 +vn 0.4110 0.8066 0.4249 +vn 0.4401 0.8638 0.2454 +vn 0.4510 0.8851 0.1145 +vn 0.3710 0.8956 0.2454 +vn 0.3802 0.9178 0.1145 +vn 0.3464 0.8363 0.4249 +vn 0.2797 0.8609 0.4249 +vn 0.2996 0.9220 0.2454 +vn 0.3070 0.9448 0.1145 +vn 0.2263 0.9426 0.2454 +vn 0.2319 0.9660 0.1145 +vn 0.2113 0.8802 0.4249 +vn 0.1416 0.8941 0.4249 +vn 0.1516 0.9575 0.2454 +vn 0.1554 0.9812 0.1145 +vn 0.0761 0.9664 0.2454 +vn 0.0779 0.9904 0.1145 +vn 0.0710 0.9025 0.4249 +vn -0.0579 0.7354 0.6752 +vn -0.0328 0.4166 0.9085 +vn 0.0000 0.4179 0.9085 +vn 0.0000 0.7376 0.6752 +vn -0.1154 0.7286 0.6752 +vn -0.0654 0.4127 0.9085 +vn -0.1722 0.7172 0.6752 +vn -0.0975 0.4063 0.9085 +vn -0.2279 0.7015 0.6752 +vn -0.1291 0.3974 0.9085 +vn -0.2823 0.6815 0.6752 +vn -0.1599 0.3860 0.9085 +vn -0.3349 0.6572 0.6752 +vn -0.1897 0.3723 0.9085 +vn -0.3854 0.6289 0.6752 +vn -0.2183 0.3563 0.9085 +vn -0.4336 0.5968 0.6752 +vn -0.2456 0.3381 0.9085 +vn -0.4790 0.5609 0.6752 +vn -0.2714 0.3177 0.9085 +vn -0.5216 0.5216 0.6752 +vn -0.2955 0.2955 0.9085 +vn -0.5609 0.4790 0.6752 +vn -0.3177 0.2714 0.9085 +vn -0.5968 0.4336 0.6752 +vn -0.3381 0.2456 0.9085 +vn -0.6289 0.3854 0.6752 +vn -0.3563 0.2183 0.9085 +vn -0.6572 0.3349 0.6752 +vn -0.3723 0.1897 0.9085 +vn -0.6815 0.2823 0.6752 +vn -0.3860 0.1599 0.9085 +vn -0.7015 0.2279 0.6752 +vn -0.3974 0.1291 0.9085 +vn -0.7173 0.1722 0.6752 +vn -0.4063 0.0975 0.9085 +vn -0.7286 0.1154 0.6752 +vn -0.4127 0.0654 0.9085 +vn -0.7353 0.0579 0.6752 +vn -0.4166 0.0328 0.9085 +vn -0.7376 0.0000 0.6752 +vn -0.4179 0.0000 0.9085 +vn 0.5945 0.4129 0.6900 +vn 0.3957 0.1724 0.9020 +vn 0.5660 -0.0814 0.8204 +vn 0.7404 0.1429 0.6568 +vn 0.4899 0.5418 0.6830 +vn 0.2824 0.2987 0.9116 +vn 0.3848 0.6292 0.6753 +vn 0.2180 0.3564 0.9085 +vn 0.2450 0.3385 0.9085 +vn 0.4325 0.5975 0.6753 +vn 0.3349 0.6572 0.6752 +vn 0.1897 0.3723 0.9085 +vn 0.2823 0.6815 0.6752 +vn 0.1599 0.3861 0.9085 +vn 0.2279 0.7015 0.6752 +vn 0.1291 0.3974 0.9085 +vn 0.1722 0.7172 0.6752 +vn 0.0975 0.4063 0.9085 +vn 0.1154 0.7286 0.6752 +vn 0.0654 0.4127 0.9085 +vn 0.0579 0.7354 0.6752 +vn 0.0328 0.4166 0.9085 +vn -0.0781 0.9928 0.0913 +vn 0.0000 0.9958 0.0913 +vn -0.0782 0.9941 0.0750 +vn 0.0000 0.9972 0.0750 +vn -0.1560 0.9849 0.0750 +vn -0.1558 0.9836 0.0913 +vn -0.2325 0.9683 0.0913 +vn -0.2328 0.9696 0.0750 +vn -0.3081 0.9484 0.0750 +vn -0.3077 0.9471 0.0913 +vn -0.3811 0.9200 0.0913 +vn -0.3816 0.9213 0.0750 +vn -0.4527 0.8885 0.0750 +vn -0.4521 0.8873 0.0913 +vn -0.5203 0.8491 0.0913 +vn -0.5210 0.8502 0.0750 +vn -0.5861 0.8067 0.0750 +vn -0.5853 0.8056 0.0913 +vn -0.6467 0.7572 0.0913 +vn -0.6476 0.7583 0.0750 +vn -0.7051 0.7051 0.0750 +vn -0.7042 0.7042 0.0913 +vn -0.7572 0.6467 0.0913 +vn -0.7583 0.6476 0.0750 +vn -0.8067 0.5861 0.0750 +vn -0.8056 0.5853 0.0913 +vn -0.8491 0.5203 0.0913 +vn -0.8502 0.5210 0.0750 +vn -0.8885 0.4527 0.0750 +vn -0.8873 0.4521 0.0913 +vn -0.9200 0.3811 0.0913 +vn -0.9213 0.3816 0.0750 +vn -0.9484 0.3081 0.0750 +vn -0.9471 0.3077 0.0913 +vn -0.9683 0.2325 0.0913 +vn -0.9696 0.2328 0.0750 +vn -0.9849 0.1560 0.0750 +vn -0.9836 0.1558 0.0913 +vn -0.9928 0.0781 0.0913 +vn -0.9941 0.0782 0.0750 +vn -0.9972 -0.0000 0.0750 +vn -0.9958 -0.0000 0.0913 +vn 0.7718 0.6306 0.0822 +vn 0.9332 0.3534 0.0643 +vn 0.7801 0.6222 0.0650 +vn 0.9431 0.3289 0.0498 +vn 0.6622 0.7458 0.0728 +vn 0.6605 0.7455 0.0892 +vn 0.5196 0.8495 0.0913 +vn 0.5839 0.8067 0.0913 +vn 0.5203 0.8507 0.0750 +vn 0.5847 0.8078 0.0750 +vn 0.4527 0.8885 0.0750 +vn 0.4521 0.8873 0.0913 +vn 0.3811 0.9200 0.0913 +vn 0.3816 0.9213 0.0750 +vn 0.3081 0.9484 0.0750 +vn 0.3077 0.9471 0.0913 +vn 0.2325 0.9683 0.0913 +vn 0.2328 0.9696 0.0750 +vn 0.1560 0.9849 0.0750 +vn 0.1558 0.9836 0.0913 +vn 0.0781 0.9928 0.0913 +vn 0.0782 0.9941 0.0750 +vn 0.0783 -0.9950 0.0615 +vn 0.0779 -0.9893 0.1230 +vn 0.0000 -0.9924 0.1230 +vn 0.0000 -0.9981 0.0615 +vn 0.1561 -0.9858 0.0615 +vn 0.1552 -0.9802 0.1230 +vn 0.2330 -0.9705 0.0615 +vn 0.2317 -0.9650 0.1231 +vn 0.3084 -0.9493 0.0615 +vn 0.3067 -0.9438 0.1231 +vn 0.3820 -0.9221 0.0615 +vn 0.3798 -0.9169 0.1230 +vn 0.4531 -0.8893 0.0615 +vn 0.4505 -0.8842 0.1230 +vn 0.5215 -0.8510 0.0615 +vn 0.5185 -0.8462 0.1230 +vn 0.5867 -0.8075 0.0615 +vn 0.5833 -0.8029 0.1230 +vn 0.6482 -0.7590 0.0615 +vn 0.6445 -0.7546 0.1230 +vn 0.7058 -0.7058 0.0615 +vn 0.7017 -0.7017 0.1230 +vn 0.7590 -0.6482 0.0615 +vn 0.7546 -0.6445 0.1230 +vn 0.8075 -0.5867 0.0615 +vn 0.8029 -0.5833 0.1230 +vn 0.8510 -0.5215 0.0615 +vn 0.8462 -0.5185 0.1230 +vn 0.8893 -0.4531 0.0615 +vn 0.8842 -0.4505 0.1230 +vn 0.9221 -0.3820 0.0615 +vn 0.9169 -0.3798 0.1230 +vn 0.9493 -0.3084 0.0615 +vn 0.9438 -0.3067 0.1230 +vn 0.9705 -0.2330 0.0615 +vn 0.9650 -0.2317 0.1230 +vn 0.9858 -0.1561 0.0615 +vn 0.9802 -0.1552 0.1230 +vn 0.9950 -0.0783 0.0615 +vn 0.9893 -0.0779 0.1230 +vn 0.9981 0.0000 0.0615 +vn 0.9924 -0.0000 0.1230 +vn -0.4756 -0.8776 0.0597 +vn -0.4722 -0.8735 0.1187 +vn -0.1806 -0.9778 0.1060 +vn -0.1842 -0.9816 0.0508 +vn -0.4677 -0.8714 0.1477 +vn -0.1733 -0.9773 0.1218 +vn -0.6298 -0.7743 0.0614 +vn -0.6262 -0.7698 0.1234 +vn -0.5208 -0.8515 0.0615 +vn -0.5178 -0.8466 0.1231 +vn -0.5819 -0.8039 0.1231 +vn -0.5853 -0.8085 0.0615 +vn -0.4531 -0.8893 0.0615 +vn -0.4505 -0.8842 0.1231 +vn -0.3820 -0.9221 0.0615 +vn -0.3798 -0.9169 0.1230 +vn -0.3084 -0.9493 0.0615 +vn -0.3067 -0.9438 0.1230 +vn -0.2330 -0.9705 0.0615 +vn -0.2317 -0.9650 0.1231 +vn -0.1561 -0.9858 0.0615 +vn -0.1552 -0.9802 0.1230 +vn -0.0783 -0.9950 0.0615 +vn -0.0779 -0.9893 0.1230 +vn 0.0364 -0.4620 0.8861 +vn 0.0106 -0.1349 0.9908 +vn 0.0000 -0.1354 0.9908 +vn 0.0000 -0.4635 0.8861 +vn 0.0602 -0.7655 0.6406 +vn 0.0000 -0.7679 0.6406 +vn 0.1201 -0.7585 0.6406 +vn 0.0725 -0.4577 0.8861 +vn 0.0212 -0.1337 0.9908 +vn 0.1082 -0.4506 0.8861 +vn 0.0316 -0.1316 0.9908 +vn 0.1793 -0.7467 0.6406 +vn 0.2373 -0.7303 0.6406 +vn 0.1432 -0.4408 0.8861 +vn 0.0418 -0.1287 0.9908 +vn 0.1773 -0.4282 0.8861 +vn 0.0518 -0.1250 0.9908 +vn 0.2939 -0.7094 0.6406 +vn 0.3486 -0.6842 0.6406 +vn 0.2104 -0.4129 0.8861 +vn 0.0614 -0.1206 0.9908 +vn 0.2421 -0.3951 0.8861 +vn 0.0707 -0.1154 0.9908 +vn 0.4012 -0.6547 0.6406 +vn 0.4514 -0.6212 0.6406 +vn 0.2724 -0.3749 0.8861 +vn 0.0796 -0.1095 0.9908 +vn 0.3010 -0.3524 0.8861 +vn 0.0879 -0.1029 0.9908 +vn 0.4987 -0.5839 0.6406 +vn 0.5430 -0.5430 0.6406 +vn 0.3277 -0.3277 0.8861 +vn 0.0957 -0.0957 0.9908 +vn 0.3524 -0.3010 0.8861 +vn 0.1029 -0.0879 0.9908 +vn 0.5839 -0.4987 0.6406 +vn 0.6212 -0.4514 0.6406 +vn 0.3749 -0.2724 0.8861 +vn 0.1095 -0.0796 0.9908 +vn 0.3951 -0.2421 0.8861 +vn 0.1154 -0.0707 0.9908 +vn 0.6547 -0.4012 0.6406 +vn 0.6842 -0.3486 0.6406 +vn 0.4129 -0.2104 0.8861 +vn 0.1206 -0.0614 0.9908 +vn 0.4282 -0.1773 0.8861 +vn 0.1250 -0.0518 0.9908 +vn 0.7094 -0.2939 0.6406 +vn 0.7303 -0.2373 0.6406 +vn 0.4408 -0.1432 0.8861 +vn 0.1287 -0.0418 0.9908 +vn 0.4506 -0.1082 0.8861 +vn 0.1316 -0.0316 0.9908 +vn 0.7467 -0.1793 0.6406 +vn 0.7584 -0.1201 0.6406 +vn 0.4577 -0.0725 0.8861 +vn 0.1337 -0.0212 0.9908 +vn 0.4620 -0.0364 0.8861 +vn 0.1349 -0.0106 0.9908 +vn 0.7655 -0.0602 0.6406 +vn 0.7679 0.0000 0.6406 +vn 0.4635 0.0000 0.8861 +vn 0.1354 0.0000 0.9908 +vn -0.1096 -0.5150 0.8502 +vn 0.1033 -0.2851 0.9529 +vn 0.3513 -0.5031 0.7896 +vn 0.1676 -0.6845 0.7095 +vn -0.3092 -0.7245 0.6160 +vn -0.0097 -0.8527 0.5223 +vn -0.4769 -0.6002 0.6421 +vn -0.2763 -0.3687 0.8875 +vn -0.0636 -0.1234 0.9903 +vn -0.2417 -0.3953 0.8862 +vn -0.0706 -0.1154 0.9908 +vn -0.0794 -0.1096 0.9908 +vn -0.2717 -0.3754 0.8861 +vn -0.4006 -0.6551 0.6406 +vn -0.4503 -0.6220 0.6406 +vn -0.3486 -0.6842 0.6406 +vn -0.2104 -0.4129 0.8861 +vn -0.0614 -0.1206 0.9908 +vn -0.1773 -0.4282 0.8861 +vn -0.0518 -0.1250 0.9908 +vn -0.2939 -0.7094 0.6406 +vn -0.2373 -0.7303 0.6406 +vn -0.1432 -0.4408 0.8861 +vn -0.0418 -0.1287 0.9908 +vn -0.1082 -0.4506 0.8861 +vn -0.0316 -0.1316 0.9908 +vn -0.1793 -0.7467 0.6406 +vn -0.1201 -0.7585 0.6406 +vn -0.0725 -0.4577 0.8861 +vn -0.0212 -0.1337 0.9908 +vn -0.0364 -0.4620 0.8861 +vn -0.0106 -0.1349 0.9908 +vn -0.0602 -0.7655 0.6406 +vn 0.0073 -0.0929 0.9957 +vn 0.0000 -0.0931 0.9957 +vn 0.0000 -0.0000 1.0000 +vn 0.0146 -0.0920 0.9957 +vn 0.0217 -0.0906 0.9957 +vn 0.0288 -0.0886 0.9957 +vn 0.0356 -0.0861 0.9957 +vn 0.0423 -0.0830 0.9957 +vn 0.0487 -0.0794 0.9957 +vn 0.0548 -0.0754 0.9957 +vn 0.0605 -0.0708 0.9957 +vn 0.0659 -0.0659 0.9957 +vn 0.0708 -0.0605 0.9957 +vn 0.0754 -0.0547 0.9957 +vn 0.0794 -0.0487 0.9957 +vn 0.0830 -0.0423 0.9957 +vn 0.0861 -0.0357 0.9957 +vn 0.0886 -0.0288 0.9957 +vn 0.0906 -0.0217 0.9957 +vn 0.0920 -0.0146 0.9957 +vn 0.0929 -0.0073 0.9957 +vn 0.0932 0.0000 0.9957 +vn 0.1461 -0.2852 0.9473 +vn 0.3886 -0.5149 0.7641 +vn 0.2056 -0.2039 0.9572 +vn 0.4417 -0.4404 0.7816 +vn 0.0269 -0.0258 0.9993 +vn -0.0344 -0.1015 0.9942 +vn -0.0486 -0.0795 0.9956 +vn -0.0546 -0.0754 0.9957 +vn -0.0423 -0.0830 0.9957 +vn -0.0356 -0.0861 0.9957 +vn -0.0288 -0.0886 0.9957 +vn -0.0217 -0.0906 0.9957 +vn -0.0146 -0.0920 0.9957 +vn -0.0073 -0.0929 0.9957 +vn 0.0775 -0.9852 0.1526 +vn 0.0785 -0.9969 -0.0033 +vn -0.0000 -1.0000 -0.0033 +vn 0.0000 -0.9883 0.1526 +vn 0.1546 -0.9761 0.1526 +vn 0.1564 -0.9877 -0.0033 +vn 0.2307 -0.9610 0.1526 +vn 0.2334 -0.9724 -0.0033 +vn 0.3054 -0.9399 0.1526 +vn 0.3090 -0.9511 -0.0033 +vn 0.3782 -0.9131 0.1526 +vn 0.3827 -0.9239 -0.0033 +vn 0.4487 -0.8806 0.1526 +vn 0.4540 -0.8910 -0.0033 +vn 0.5164 -0.8427 0.1526 +vn 0.5225 -0.8526 -0.0033 +vn 0.5809 -0.7995 0.1526 +vn 0.5878 -0.8090 -0.0033 +vn 0.6418 -0.7515 0.1526 +vn 0.6494 -0.7604 -0.0033 +vn 0.6988 -0.6988 0.1526 +vn 0.7071 -0.7071 -0.0032 +vn 0.7515 -0.6418 0.1526 +vn 0.7604 -0.6494 -0.0032 +vn 0.7995 -0.5809 0.1526 +vn 0.8090 -0.5878 -0.0033 +vn 0.8427 -0.5164 0.1526 +vn 0.8526 -0.5225 -0.0033 +vn 0.8806 -0.4487 0.1526 +vn 0.8910 -0.4540 -0.0033 +vn 0.9131 -0.3782 0.1526 +vn 0.9239 -0.3827 -0.0033 +vn 0.9399 -0.3054 0.1526 +vn 0.9511 -0.3090 -0.0033 +vn 0.9610 -0.2307 0.1526 +vn 0.9724 -0.2334 -0.0033 +vn 0.9761 -0.1546 0.1526 +vn 0.9877 -0.1564 -0.0033 +vn 0.9852 -0.0775 0.1526 +vn 0.9969 -0.0785 -0.0033 +vn 0.9883 0.0000 0.1526 +vn 1.0000 0.0000 -0.0033 +vn -0.4709 -0.8686 0.1543 +vn -0.4864 -0.8737 -0.0016 +vn -0.1186 -0.9926 0.0251 +vn -0.0761 -0.9776 0.1963 +vn -0.6396 -0.7526 0.1565 +vn -0.6494 -0.7604 -0.0033 +vn -0.5157 -0.8431 0.1525 +vn -0.5218 -0.8531 -0.0033 +vn -0.5864 -0.8100 -0.0033 +vn -0.5795 -0.8006 0.1526 +vn -0.4487 -0.8806 0.1526 +vn -0.4540 -0.8910 -0.0033 +vn -0.3782 -0.9131 0.1526 +vn -0.3827 -0.9239 -0.0033 +vn -0.3054 -0.9399 0.1526 +vn -0.3090 -0.9511 -0.0033 +vn -0.2307 -0.9610 0.1526 +vn -0.2334 -0.9724 -0.0033 +vn -0.1546 -0.9761 0.1526 +vn -0.1564 -0.9877 -0.0033 +vn -0.0775 -0.9852 0.1526 +vn -0.0785 -0.9969 -0.0033 +vn 0.0015 -0.0192 0.9998 +vn 0.0000 -0.0193 0.9998 +vn 0.0030 -0.0191 0.9998 +vn 0.0045 -0.0188 0.9998 +vn 0.0060 -0.0183 0.9998 +vn 0.0074 -0.0178 0.9998 +vn 0.0088 -0.0172 0.9998 +vn 0.0101 -0.0164 0.9998 +vn 0.0113 -0.0156 0.9998 +vn 0.0125 -0.0147 0.9998 +vn 0.0136 -0.0136 0.9998 +vn 0.0147 -0.0125 0.9998 +vn 0.0156 -0.0113 0.9998 +vn 0.0164 -0.0101 0.9998 +vn 0.0172 -0.0088 0.9998 +vn 0.0178 -0.0074 0.9998 +vn 0.0183 -0.0060 0.9998 +vn 0.0188 -0.0045 0.9998 +vn 0.0191 -0.0030 0.9998 +vn 0.0192 -0.0015 0.9998 +vn 0.0193 0.0000 0.9998 +vn 0.1862 -0.2102 0.9598 +vn 0.4249 -0.4452 0.7882 +vn 0.0129 -0.0385 0.9992 +vn -0.0101 -0.0164 0.9998 +vn -0.0113 -0.0156 0.9998 +vn -0.0088 -0.0172 0.9998 +vn -0.0074 -0.0178 0.9998 +vn -0.0060 -0.0183 0.9998 +vn -0.0045 -0.0188 0.9998 +vn -0.0030 -0.0191 0.9998 +vn -0.0015 -0.0192 0.9998 +vn 0.0732 -0.9305 0.3589 +vn 0.0000 -0.9334 0.3589 +vn 0.1460 -0.9219 0.3589 +vn 0.2179 -0.9076 0.3590 +vn 0.2884 -0.8877 0.3590 +vn 0.3572 -0.8623 0.3590 +vn 0.4237 -0.8316 0.3590 +vn 0.4877 -0.7958 0.3590 +vn 0.5486 -0.7551 0.3590 +vn 0.6062 -0.7097 0.3590 +vn 0.6600 -0.6600 0.3590 +vn 0.7097 -0.6062 0.3590 +vn 0.7551 -0.5486 0.3590 +vn 0.7958 -0.4877 0.3590 +vn 0.8316 -0.4237 0.3590 +vn 0.8623 -0.3572 0.3590 +vn 0.8877 -0.2884 0.3590 +vn 0.9076 -0.2179 0.3590 +vn 0.9219 -0.1460 0.3590 +vn 0.9305 -0.0732 0.3590 +vn 0.9334 -0.0000 0.3590 +vn -0.4264 -0.8373 0.3423 +vn -0.1295 -0.9467 0.2949 +vn -0.5865 -0.7257 0.3598 +vn -0.4870 -0.7962 0.3590 +vn -0.5473 -0.7560 0.3590 +vn -0.4237 -0.8316 0.3590 +vn -0.3572 -0.8623 0.3590 +vn -0.2884 -0.8877 0.3590 +vn -0.2179 -0.9076 0.3590 +vn -0.1460 -0.9219 0.3589 +vn -0.0732 -0.9305 0.3589 +vn -0.0213 0.2712 0.9623 +vn -0.0348 0.4420 0.8963 +vn 0.0000 0.4434 0.8963 +vn 0.0000 0.2720 0.9623 +vn -0.0426 0.2687 0.9623 +vn -0.0694 0.4379 0.8964 +vn -0.0635 0.2645 0.9623 +vn -0.1035 0.4311 0.8963 +vn -0.0841 0.2587 0.9623 +vn -0.1370 0.4217 0.8963 +vn -0.1041 0.2513 0.9623 +vn -0.1697 0.4096 0.8963 +vn -0.1235 0.2424 0.9623 +vn -0.2013 0.3950 0.8963 +vn -0.1421 0.2320 0.9623 +vn -0.2317 0.3780 0.8963 +vn -0.1599 0.2201 0.9623 +vn -0.2606 0.3587 0.8963 +vn -0.1767 0.2069 0.9623 +vn -0.2879 0.3371 0.8963 +vn -0.1924 0.1924 0.9623 +vn -0.3135 0.3135 0.8963 +vn -0.2069 0.1767 0.9623 +vn -0.3371 0.2879 0.8963 +vn -0.2201 0.1599 0.9623 +vn -0.3587 0.2606 0.8963 +vn -0.2320 0.1421 0.9623 +vn -0.3780 0.2317 0.8963 +vn -0.2424 0.1235 0.9623 +vn -0.3950 0.2013 0.8964 +vn -0.2513 0.1041 0.9623 +vn -0.4096 0.1697 0.8963 +vn -0.2587 0.0841 0.9623 +vn -0.4216 0.1370 0.8964 +vn -0.2645 0.0635 0.9623 +vn -0.4311 0.1035 0.8963 +vn -0.2687 0.0426 0.9623 +vn -0.4379 0.0694 0.8963 +vn -0.2712 0.0213 0.9623 +vn -0.4420 0.0348 0.8963 +vn -0.2720 0.0000 0.9623 +vn -0.4434 0.0000 0.8963 +vn 0.3084 0.0666 0.9489 +vn 0.4334 0.1785 0.8833 +vn 0.6287 -0.0939 0.7720 +vn 0.5019 -0.1709 0.8479 +vn 0.1907 0.1925 0.9626 +vn 0.3062 0.3238 0.8952 +vn 0.1419 0.2321 0.9623 +vn 0.2314 0.3783 0.8963 +vn 0.2600 0.3591 0.8964 +vn 0.1595 0.2203 0.9623 +vn 0.1235 0.2424 0.9623 +vn 0.2013 0.3950 0.8963 +vn 0.1041 0.2513 0.9623 +vn 0.1697 0.4096 0.8963 +vn 0.0841 0.2587 0.9623 +vn 0.1370 0.4217 0.8963 +vn 0.0635 0.2645 0.9623 +vn 0.1035 0.4311 0.8963 +vn 0.0426 0.2687 0.9623 +vn 0.0694 0.4379 0.8964 +vn 0.0213 0.2712 0.9623 +vn 0.0348 0.4420 0.8963 +vn -0.0732 0.9298 0.3608 +vn 0.0000 0.9326 0.3608 +vn -0.1459 0.9212 0.3608 +vn -0.2177 0.9069 0.3608 +vn -0.2882 0.8870 0.3608 +vn -0.3569 0.8616 0.3608 +vn -0.4234 0.8310 0.3608 +vn -0.4873 0.7952 0.3608 +vn -0.5482 0.7545 0.3608 +vn -0.6057 0.7092 0.3608 +vn -0.6595 0.6595 0.3608 +vn -0.7092 0.6057 0.3608 +vn -0.7545 0.5482 0.3608 +vn -0.7952 0.4873 0.3608 +vn -0.8310 0.4234 0.3608 +vn -0.8616 0.3569 0.3608 +vn -0.8870 0.2882 0.3608 +vn -0.9069 0.2177 0.3608 +vn -0.9212 0.1459 0.3608 +vn -0.9298 0.0732 0.3608 +vn -0.9326 0.0000 0.3608 +vn 0.7620 0.5407 0.3564 +vn 0.6732 0.4304 0.6014 +vn 0.8483 0.1170 0.5165 +vn 0.9285 0.2200 0.2993 +vn 0.6239 0.6929 0.3614 +vn 0.4866 0.7956 0.3609 +vn 0.5469 0.7555 0.3609 +vn 0.4234 0.8310 0.3608 +vn 0.3569 0.8616 0.3608 +vn 0.2882 0.8870 0.3608 +vn 0.2177 0.9069 0.3608 +vn 0.1459 0.9212 0.3608 +vn 0.0732 0.9298 0.3608 +vn -0.0577 0.7330 0.6778 +vn 0.0000 0.7353 0.6778 +vn -0.1150 0.7262 0.6778 +vn -0.1717 0.7150 0.6777 +vn -0.2272 0.6993 0.6778 +vn -0.2814 0.6793 0.6777 +vn -0.3338 0.6552 0.6777 +vn -0.3842 0.6270 0.6777 +vn -0.4322 0.5949 0.6777 +vn -0.4775 0.5591 0.6777 +vn -0.5199 0.5199 0.6777 +vn -0.5591 0.4775 0.6777 +vn -0.5949 0.4322 0.6777 +vn -0.6270 0.3842 0.6777 +vn -0.6552 0.3338 0.6777 +vn -0.6793 0.2814 0.6777 +vn -0.6993 0.2272 0.6777 +vn -0.7150 0.1717 0.6777 +vn -0.7262 0.1150 0.6777 +vn -0.7330 0.0577 0.6777 +vn -0.7353 0.0000 0.6778 +vn 0.6362 0.3913 0.6649 +vn 0.8160 0.0730 0.5735 +vn 0.4969 0.5447 0.6756 +vn 0.3837 0.6273 0.6777 +vn 0.4311 0.5956 0.6778 +vn 0.3338 0.6552 0.6777 +vn 0.2814 0.6793 0.6777 +vn 0.2272 0.6993 0.6778 +vn 0.1717 0.7150 0.6777 +vn 0.1150 0.7262 0.6778 +vn 0.0577 0.7330 0.6778 +vn 0.3793 0.0817 0.9217 +vn 0.5855 -0.1915 0.7877 +vn 0.4057 -0.7581 0.5105 +vn 0.5047 -0.6699 0.5445 +vn 0.1648 -0.6691 0.7246 +vn 0.3050 -0.8543 0.4209 +vn 0.0433 -0.8004 0.5980 +vn 0.5180 -0.8229 0.2337 +vn 0.5946 -0.7704 0.2301 +vn 0.6591 -0.7190 0.2207 +vn 0.1955 -0.9522 0.2348 +vn -0.0981 -0.9278 0.3601 +vn 0.1788 -0.9809 0.0761 +vn 0.5255 -0.8503 0.0287 +vn 0.5102 -0.8519 0.1183 +vn 0.8221 -0.3297 0.4642 +vn 0.9092 -0.2144 0.3569 +vn 0.7422 -0.0165 0.6700 +vn 0.7148 -0.4597 0.5270 +vn 0.7394 -0.6403 0.2082 +vn 0.7996 -0.5649 0.2035 +vn 0.8597 -0.4753 0.1872 +vn 0.9713 -0.1403 0.1922 +vn 0.9872 -0.1495 0.0563 +vn 0.8659 -0.4911 0.0955 +vn 0.8562 -0.5163 0.0188 +vn 0.6208 -0.5583 0.5504 +vn 0.5690 -0.6082 0.5536 +vn 0.6849 -0.6967 0.2134 +vn 0.7039 -0.6803 0.2044 +vn 0.1869 -0.9818 0.0337 +vn 0.5365 -0.8438 0.0126 +vn 0.1985 -0.9771 0.0770 +vn 0.5436 -0.8388 0.0287 +vn 0.9859 -0.1665 0.0178 +vn 0.8498 -0.5270 0.0058 +vn 0.8468 -0.5319 0.0032 +vn 0.9850 -0.1725 0.0099 +vn 0.2428 -0.9477 0.2072 +vn 0.3126 -0.8772 0.3644 +vn 0.5704 -0.8086 0.1441 +vn 0.5571 -0.8270 0.0752 +vn 0.5780 -0.5939 0.5596 +vn 0.5452 -0.6354 0.5468 +vn 0.5867 -0.5864 0.5585 +vn 0.6796 -0.6797 0.2760 +vn 0.6752 -0.6848 0.2743 +vn 0.6614 -0.7197 0.2111 +vn 0.5348 -0.6436 0.5476 +vn 0.4101 -0.7802 0.4723 +vn 0.4893 -0.8415 0.2290 +vn 0.6397 -0.7163 0.2786 +vn 0.4162 -0.7574 0.5031 +vn 0.5876 -0.7722 0.2417 +vn 0.2199 -0.9211 0.3212 +vn 0.2208 -0.9681 0.1186 +vn 0.2031 -0.9789 0.0211 +vn -0.1422 -0.9898 0.0013 +vn 0.2003 -0.9797 -0.0017 +vn -0.1438 -0.9896 -0.0026 +vn 0.5229 -0.8524 -0.0006 +vn 0.5194 -0.8531 0.0502 +vn 0.6583 -0.4274 0.6196 +vn 0.6768 -0.3578 0.6434 +vn 0.7585 -0.4067 0.5092 +vn 0.7576 -0.6341 0.1549 +vn 0.7194 -0.6289 0.2949 +vn 0.7265 -0.5956 0.3428 +vn 0.7965 -0.1672 0.5810 +vn 0.9141 -0.0087 0.4053 +vn 0.8090 -0.4677 0.3561 +vn 0.9061 -0.2863 0.3113 +vn 0.9680 0.0504 0.2460 +vn 0.9947 0.0374 0.0961 +vn 0.9246 -0.3425 0.1668 +vn 0.9282 -0.3698 0.0422 +vn 0.8721 -0.3178 0.3722 +vn 0.9424 -0.2298 0.2430 +vn 0.8162 -0.5731 0.0734 +vn 0.7936 -0.5958 0.1232 +vn 0.9699 -0.1889 0.1539 +vn 0.9798 -0.1850 0.0758 +vn 0.8360 -0.5481 0.0258 +vn 0.8289 -0.5571 0.0494 +vn 0.9993 0.0005 0.0361 +vn 0.9199 -0.3920 0.0115 +vn 0.9132 -0.4074 0.0057 +vn 0.9992 -0.0303 0.0258 +vn 0.7044 -0.7074 0.0584 +vn 0.7053 -0.7082 0.0300 +vn 0.7058 -0.7059 0.0598 +vn 0.7071 -0.7072 0.0000 +vn 0.6814 -0.7292 0.0623 +vn 0.6869 -0.7267 -0.0000 +vn 0.7275 -0.6861 0.0052 +vn 0.7251 -0.6886 0.0073 +vn 0.7296 -0.6838 0.0027 +vn 0.7070 -0.7072 0.0000 +vn -0.0784 0.9961 0.0403 +vn 0.0000 0.9992 0.0403 +vn -0.1563 0.9869 0.0403 +vn -0.2333 0.9716 0.0403 +vn -0.3088 0.9503 0.0403 +vn -0.3824 0.9231 0.0403 +vn -0.4536 0.8903 0.0403 +vn -0.5221 0.8519 0.0403 +vn -0.5873 0.8084 0.0403 +vn -0.6489 0.7598 0.0403 +vn -0.7065 0.7065 0.0403 +vn -0.7598 0.6489 0.0403 +vn -0.8084 0.5873 0.0403 +vn -0.8519 0.5221 0.0403 +vn -0.8903 0.4536 0.0403 +vn -0.9231 0.3824 0.0403 +vn -0.9503 0.3088 0.0403 +vn -0.9716 0.2333 0.0403 +vn -0.9869 0.1563 0.0403 +vn -0.9961 0.0784 0.0403 +vn -0.9992 0.0000 0.0403 +vn 0.8079 0.5879 0.0406 +vn 0.9686 0.2461 0.0363 +vn 0.6674 0.7435 0.0407 +vn 0.5213 0.8524 0.0403 +vn 0.5859 0.8094 0.0403 +vn 0.4536 0.8903 0.0403 +vn 0.3824 0.9231 0.0403 +vn 0.3088 0.9503 0.0403 +vn 0.2333 0.9716 0.0403 +vn 0.1563 0.9869 0.0403 +vn 0.0784 0.9961 0.0403 +vn 0.9831 -0.1816 0.0250 +vn 0.8420 -0.5394 0.0082 +vn 0.7320 -0.6813 0.0007 +vn 0.7334 -0.6798 0.0001 +vn 0.7341 -0.6790 0.0006 +vn 0.7365 -0.6765 0.0031 +vn 0.6890 -0.7241 0.0306 +vn 0.6865 -0.7269 0.0198 +vn 0.7015 -0.7126 0.0109 +vn 0.6850 -0.7285 0.0103 +vn 0.6829 -0.7305 0.0041 +vn 0.6813 -0.7320 0.0019 +vn 0.6790 -0.7342 0.0040 +vn 0.6669 -0.7431 0.0553 +vn 0.7028 -0.7103 0.0395 +vn 0.7062 -0.7072 0.0352 +vn 0.7085 -0.7049 0.0332 +vn 0.7130 -0.7002 0.0360 +vn 0.7508 -0.6589 0.0469 +vn 0.0785 -0.9969 -0.0028 +vn 0.0785 -0.9969 -0.0026 +vn -0.0000 -1.0000 -0.0026 +vn -0.0000 -1.0000 -0.0028 +vn 0.0785 -0.9969 -0.0031 +vn 0.0000 -1.0000 -0.0031 +vn 0.1564 -0.9877 -0.0031 +vn 0.1564 -0.9877 -0.0029 +vn 0.1564 -0.9877 -0.0026 +vn 0.2334 -0.9724 -0.0029 +vn 0.2334 -0.9724 -0.0026 +vn 0.2334 -0.9724 -0.0031 +vn 0.3090 -0.9511 -0.0031 +vn 0.3090 -0.9511 -0.0029 +vn 0.3090 -0.9511 -0.0025 +vn 0.3827 -0.9239 -0.0029 +vn 0.3827 -0.9239 -0.0026 +vn 0.3827 -0.9239 -0.0031 +vn 0.4540 -0.8910 -0.0031 +vn 0.4540 -0.8910 -0.0029 +vn 0.4540 -0.8910 -0.0026 +vn 0.5225 -0.8526 -0.0029 +vn 0.5225 -0.8526 -0.0026 +vn 0.5225 -0.8526 -0.0031 +vn 0.5878 -0.8090 -0.0031 +vn 0.5878 -0.8090 -0.0029 +vn 0.5878 -0.8090 -0.0026 +vn 0.6494 -0.7604 -0.0029 +vn 0.6494 -0.7604 -0.0026 +vn 0.6494 -0.7604 -0.0031 +vn 0.7071 -0.7071 -0.0031 +vn 0.7071 -0.7071 -0.0029 +vn 0.7071 -0.7071 -0.0025 +vn 0.7604 -0.6494 -0.0028 +vn 0.7604 -0.6494 -0.0025 +vn 0.7604 -0.6494 -0.0031 +vn 0.8090 -0.5878 -0.0031 +vn 0.8090 -0.5878 -0.0029 +vn 0.8090 -0.5878 -0.0026 +vn 0.8526 -0.5225 -0.0029 +vn 0.8526 -0.5225 -0.0026 +vn 0.8526 -0.5225 -0.0031 +vn 0.8910 -0.4540 -0.0031 +vn 0.8910 -0.4540 -0.0028 +vn 0.8910 -0.4540 -0.0026 +vn 0.9239 -0.3827 -0.0029 +vn 0.9239 -0.3827 -0.0026 +vn 0.9239 -0.3827 -0.0031 +vn 0.9511 -0.3090 -0.0031 +vn 0.9511 -0.3090 -0.0029 +vn 0.9511 -0.3090 -0.0026 +vn 0.9724 -0.2334 -0.0029 +vn 0.9724 -0.2334 -0.0026 +vn 0.9724 -0.2334 -0.0031 +vn 0.9877 -0.1564 -0.0031 +vn 0.9877 -0.1564 -0.0029 +vn 0.9877 -0.1564 -0.0025 +vn 0.9969 -0.0785 -0.0028 +vn 0.9969 -0.0785 -0.0025 +vn 0.9969 -0.0785 -0.0031 +vn 1.0000 0.0000 -0.0031 +vn 1.0000 0.0000 -0.0028 +vn 1.0000 0.0000 -0.0026 +vn -0.4914 -0.8709 -0.0028 +vn -0.4914 -0.8710 -0.0025 +vn -0.1435 -0.9896 -0.0021 +vn -0.1437 -0.9896 -0.0024 +vn -0.4915 -0.8709 -0.0030 +vn -0.6494 -0.7604 -0.0031 +vn -0.6495 -0.7604 -0.0029 +vn -0.6495 -0.7604 -0.0026 +vn -0.5218 -0.8531 -0.0029 +vn -0.5218 -0.8531 -0.0025 +vn -0.5864 -0.8100 -0.0025 +vn -0.5864 -0.8100 -0.0029 +vn -0.5218 -0.8531 -0.0031 +vn -0.5864 -0.8100 -0.0031 +vn -0.4540 -0.8910 -0.0031 +vn -0.4540 -0.8910 -0.0029 +vn -0.4540 -0.8910 -0.0026 +vn -0.3827 -0.9239 -0.0029 +vn -0.3827 -0.9239 -0.0025 +vn -0.3827 -0.9239 -0.0031 +vn -0.3090 -0.9511 -0.0031 +vn -0.3090 -0.9511 -0.0029 +vn -0.3090 -0.9511 -0.0025 +vn -0.2334 -0.9724 -0.0029 +vn -0.2334 -0.9724 -0.0026 +vn -0.2334 -0.9724 -0.0031 +vn -0.1564 -0.9877 -0.0031 +vn -0.1564 -0.9877 -0.0029 +vn -0.1564 -0.9877 -0.0026 +vn -0.0785 -0.9969 -0.0028 +vn -0.0785 -0.9969 -0.0026 +vn -0.0785 -0.9969 -0.0031 +vn 0.1999 -0.9798 -0.0013 +vn 0.2000 -0.9798 -0.0014 +vn -0.1434 -0.9897 -0.0019 +vn 0.1998 -0.9798 -0.0013 +vn 0.5220 -0.8530 -0.0005 +vn 0.5221 -0.8529 -0.0004 +vn 0.5223 -0.8527 -0.0005 +vn 0.6868 -0.7268 -0.0000 +vn 0.6868 -0.7269 -0.0000 +vn 0.5915 -0.5914 -0.5481 +vn 0.5922 -0.5921 -0.5466 +vn 0.1623 -0.1621 -0.9733 +vn 0.1609 -0.1607 -0.9738 +vn 0.5909 -0.5909 -0.5492 +vn 0.1599 -0.1596 -0.9741 +vn 0.6436 -0.5463 -0.5360 +vn 0.1803 -0.1516 -0.9718 +vn 0.7813 -0.3693 -0.5032 +vn 0.2460 -0.1132 -0.9626 +vn 0.7636 -0.6456 0.0003 +vn 0.7866 -0.6092 0.1008 +vn 0.7146 -0.6952 0.0777 +vn 0.7697 -0.6384 0.0077 +vn 0.7104 -0.7010 0.0637 +vn 0.7105 -0.7030 0.0316 +vn 0.5929 -0.5928 -0.5450 +vn 0.5937 -0.5936 -0.5433 +vn 0.1653 -0.1650 -0.9723 +vn 0.1638 -0.1635 -0.9728 +vn 0.1667 -0.1666 -0.9718 +vn 0.5943 -0.5943 -0.5418 +vn 0.5976 -0.5973 -0.5349 +vn 0.1734 -0.1730 -0.9695 +vn 0.5984 -0.5982 -0.5330 +vn 0.1748 -0.1750 -0.9689 +vn 0.7103 -0.7039 0.0041 +vn 0.7157 -0.6984 0.0027 +vn 0.2001 -0.9798 -0.0015 +vn 0.5226 -0.8526 -0.0005 +vn 0.6869 -0.7268 -0.0000 +vn -0.0000 -1.0000 -0.0032 +vn 0.3090 -0.9511 -0.0032 +vn 0.3827 -0.9239 -0.0032 +vn 0.4540 -0.8910 -0.0032 +vn 0.5225 -0.8526 -0.0032 +vn 0.5878 -0.8090 -0.0032 +vn 0.7071 -0.7071 -0.0033 +vn 0.7604 -0.6494 -0.0033 +vn 0.8090 -0.5878 -0.0032 +vn 0.8526 -0.5225 -0.0032 +vn 0.9511 -0.3090 -0.0032 +vn 0.9724 -0.2334 -0.0032 +vn 0.9969 -0.0785 -0.0032 +vn 1.0000 0.0000 -0.0032 +vn -0.4915 -0.8709 -0.0031 +vn -0.5218 -0.8531 -0.0032 +vn -0.5864 -0.8100 -0.0032 +vn -0.4540 -0.8910 -0.0032 +vn -0.3827 -0.9239 -0.0032 +vn -0.3090 -0.9511 -0.0032 +vn -0.0785 -0.9969 -0.0032 +vn 0.7213 -0.6926 0.0104 +vn -0.6337 -0.7735 -0.0023 +vn -0.6495 -0.7604 -0.0023 +vn -0.6337 -0.7735 -0.0025 +vn -0.3804 -0.4704 0.7963 +vn -0.2165 -0.2716 0.9378 +vn -0.5381 -0.6602 0.5240 +vn -0.0328 -0.0449 0.9985 +vn 0.6355 0.7712 0.0359 +vn 0.6359 0.7716 0.0185 +vn 0.6306 0.7653 0.1292 +vn 0.6076 0.7385 0.2922 +vn 0.6271 0.7623 0.1600 +vn 0.5734 0.6967 0.4311 +vn -0.3965 -0.8063 0.4389 +vn -0.2466 -0.6506 0.7183 +vn 0.5551 0.2852 0.7814 +vn -0.1075 -0.4928 0.8635 +vn 0.6164 0.7482 0.2454 +vn 0.5759 0.6987 0.4244 +vn 0.6317 0.7667 0.1148 +vn 0.4683 0.5682 0.6767 +vn 0.2654 0.3206 0.9093 +vn 0.5936 0.7210 -0.3576 +vn 0.6204 0.6979 -0.3578 +vn 0.2799 0.3143 -0.9071 +vn 0.2669 0.3243 -0.9075 +vn 0.5479 0.7569 -0.3563 +vn 0.2479 0.3425 -0.9062 +vn 0.6337 0.7699 0.0748 +vn -0.6303 -0.7739 0.0615 +vn -0.6267 -0.7694 0.1232 +vn -0.2896 -0.3590 0.8873 +vn -0.4837 -0.5957 0.6412 +vn -0.0823 -0.1064 0.9909 +vn -0.0563 -0.0760 0.9955 +vn 0.0032 -0.0029 1.0000 +vn -0.6259 -0.7648 0.1526 +vn -0.6337 -0.7735 -0.0033 +vn -0.0091 -0.0175 0.9998 +vn -0.5890 -0.7237 0.3596 +vn 0.1742 0.2092 0.9622 +vn 0.2840 0.3424 0.8956 +vn 0.5932 0.7194 0.3612 +vn 0.4688 0.5678 0.6766 +vn 0.0556 0.0631 0.9965 +vn 0.6354 0.7711 0.0403 +vn -0.6337 -0.7735 -0.0029 +vn -0.6337 -0.7735 -0.0031 +vn -0.6337 -0.7735 -0.0032 +vn 0.0319 0.0388 -0.9987 +vn 0.0297 0.0410 -0.9987 +vn 0.0336 0.0378 -0.9987 +vn -0.0000 -0.0000 -1.0000 +vn -0.0196 -0.0321 -0.9993 +vn -0.0220 -0.0304 -0.9993 +vn -0.0171 -0.0335 -0.9993 +vn 0.0194 0.0468 -0.9987 +vn 0.0156 0.0482 -0.9987 +vn 0.1306 0.4021 -0.9062 +vn 0.1617 0.3905 -0.9063 +vn 0.0230 0.0451 -0.9987 +vn 0.1919 0.3766 -0.9063 +vn -0.0088 -0.0365 -0.9993 +vn -0.0116 -0.0357 -0.9993 +vn -0.0059 -0.0371 -0.9993 +vn 0.0040 0.0505 -0.9987 +vn -0.0000 0.0506 -0.9987 +vn 0.0000 0.4228 -0.9062 +vn 0.0332 0.4215 -0.9062 +vn 0.0079 0.0500 -0.9987 +vn 0.0661 0.4176 -0.9062 +vn 0.0029 -0.0375 -0.9993 +vn -0.0000 -0.0376 -0.9993 +vn 0.0059 -0.0371 -0.9993 +vn -0.0118 0.0492 -0.9987 +vn -0.0157 0.0482 -0.9987 +vn -0.1306 0.4020 -0.9063 +vn -0.0987 0.4111 -0.9062 +vn -0.0079 0.0500 -0.9987 +vn -0.0661 0.4177 -0.9062 +vn -0.0194 0.0468 -0.9987 +vn -0.0230 0.0451 -0.9987 +vn -0.1919 0.3766 -0.9063 +vn -0.1617 0.3905 -0.9063 +vn 0.0196 -0.0320 -0.9993 +vn 0.0171 -0.0335 -0.9993 +vn 0.0221 -0.0304 -0.9993 +vn -0.0329 0.0385 -0.9987 +vn -0.0358 0.0358 -0.9987 +vn -0.2989 0.2989 -0.9063 +vn -0.2745 0.3214 -0.9063 +vn -0.0298 0.0410 -0.9987 +vn -0.2485 0.3420 -0.9063 +vn 0.0286 -0.0244 -0.9993 +vn 0.0266 -0.0266 -0.9993 +vn 0.0304 -0.0221 -0.9993 +vn -0.0431 0.0264 -0.9987 +vn -0.0450 0.0229 -0.9987 +vn -0.3766 0.1919 -0.9063 +vn -0.3604 0.2208 -0.9063 +vn -0.0409 0.0297 -0.9987 +vn -0.3420 0.2484 -0.9063 +vn 0.0347 -0.0144 -0.9993 +vn 0.0335 -0.0171 -0.9993 +vn 0.0357 -0.0116 -0.9993 +vn -0.0491 0.0118 -0.9987 +vn -0.0499 0.0079 -0.9987 +vn -0.4174 0.0661 -0.9063 +vn -0.4109 0.0986 -0.9063 +vn -0.0481 0.0156 -0.9987 +vn -0.4019 0.1306 -0.9063 +vn 0.0375 -0.0029 -0.9993 +vn 0.0371 -0.0059 -0.9993 +vn 0.0376 0.0000 -0.9993 +vn -0.0242 -0.0294 -0.9993 +vn -0.0253 -0.0294 -0.9992 +vn -0.2109 -0.2573 -0.9430 +vn -0.0144 -0.0347 -0.9993 +vn -0.0029 -0.0375 -0.9993 +vn 0.0088 -0.0365 -0.9993 +vn 0.0116 -0.0357 -0.9993 +vn 0.0144 -0.0347 -0.9993 +vn 0.0244 -0.0286 -0.9993 +vn 0.0320 -0.0196 -0.9993 +vn 0.0365 -0.0088 -0.9993 +vn 0.0264 0.0432 -0.9987 +vn 0.2205 0.3605 -0.9063 +vn 0.0118 0.0492 -0.9987 +vn 0.0987 0.4111 -0.9062 +vn -0.0040 0.0505 -0.9987 +vn -0.0332 0.4215 -0.9062 +vn -0.0265 0.0432 -0.9987 +vn -0.2209 0.3604 -0.9063 +vn -0.0384 0.0328 -0.9987 +vn -0.3214 0.2745 -0.9063 +vn -0.0467 0.0193 -0.9987 +vn -0.3904 0.1617 -0.9063 +vn -0.0504 0.0040 -0.9987 +vn -0.0505 0.0000 -0.9987 +vn -0.4214 0.0332 -0.9063 +vn -0.4227 -0.0000 -0.9063 +vn 0.0827 0.0257 -0.9962 +vn 0.3928 0.2753 -0.8774 +vn 0.4561 0.1564 -0.8761 +vn 0.4168 0.0266 -0.9086 +vn 0.0257 -0.0148 -0.9996 +vn -0.0060 -0.0718 -0.9974 +vn 0.0198 -0.0262 -0.9995 +vn 0.1609 -0.2714 -0.9489 +vn 0.0757 -0.4529 -0.8883 +vn 0.0207 -0.0212 -0.9996 +vn 0.0208 -0.0204 -0.9996 +vn 0.1889 -0.1886 -0.9637 +vn 0.1883 -0.1987 -0.9618 +vn 0.0200 -0.0198 -0.9996 +vn 0.0194 -0.0193 -0.9996 +vn 0.1790 -0.1788 -0.9675 +vn 0.1841 -0.1838 -0.9656 +vn 0.0191 -0.0190 -0.9996 +vn 0.0188 -0.0187 -0.9996 +vn 0.1767 -0.1764 -0.9683 +vn 0.0185 -0.0184 -0.9997 +vn 0.0177 -0.0176 -0.9997 +vn 0.0175 -0.0174 -0.9997 +vn 0.0173 -0.0172 -0.9997 +vn 0.0171 -0.0170 -0.9997 +vn 0.0170 -0.0169 -0.9997 +vn 0.0188 -0.0165 -0.9997 +vn 0.0000 -1.0000 -0.0024 +vn 0.7604 -0.6494 -0.0024 +vn 0.8090 -0.5878 -0.0024 +vn 0.8526 -0.5225 -0.0024 +vn 0.8910 -0.4540 -0.0024 +vn 0.9239 -0.3827 -0.0023 +vn 0.9877 -0.1564 -0.0023 +vn -0.4913 -0.8710 -0.0023 +vn -0.0785 -0.9969 -0.0023 +vn -0.0733 0.9315 -0.3563 +vn 0.0000 0.9344 -0.3563 +vn -0.1462 0.9229 -0.3563 +vn -0.2181 0.9085 -0.3564 +vn -0.2887 0.8886 -0.3565 +vn -0.3575 0.8632 -0.3565 +vn -0.4242 0.8325 -0.3564 +vn -0.4882 0.7967 -0.3564 +vn -0.5492 0.7559 -0.3563 +vn -0.6068 0.7105 -0.3564 +vn -0.6607 0.6607 -0.3564 +vn -0.7105 0.6068 -0.3564 +vn -0.7559 0.5492 -0.3563 +vn -0.7967 0.4882 -0.3563 +vn -0.8325 0.4242 -0.3563 +vn -0.8632 0.3576 -0.3564 +vn -0.8886 0.2887 -0.3564 +vn -0.9085 0.2181 -0.3564 +vn -0.9228 0.1462 -0.3564 +vn -0.9315 0.0733 -0.3563 +vn -0.9344 -0.0000 -0.3563 +vn 0.7319 0.5967 -0.3292 +vn 0.8838 0.2873 -0.3692 +vn 0.4875 0.7971 -0.3564 +vn 0.4242 0.8325 -0.3564 +vn 0.3576 0.8632 -0.3564 +vn 0.2887 0.8886 -0.3564 +vn 0.2181 0.9085 -0.3563 +vn 0.1463 0.9227 -0.3566 +vn 0.0733 0.9315 -0.3563 +vn 0.9017 -0.0570 -0.4286 +vn 0.2086 -0.8956 -0.3929 +vn 0.4644 -0.7446 -0.4795 +vn 0.6025 -0.6025 -0.5235 +vn 0.6049 -0.6048 -0.5180 +vn 0.6003 -0.6002 -0.5287 +vn 0.5904 -0.6243 -0.5115 +vn 0.5990 -0.5989 -0.5315 +vn 0.7643 -0.6448 0.0008 +vn -0.5605 -0.6842 -0.4667 +vn 0.6328 0.7690 0.0908 +vn 0.0693 0.8803 -0.4694 +vn 0.0000 0.8830 -0.4694 +vn 0.0000 0.3295 -0.9442 +vn 0.0259 0.3285 -0.9442 +vn 0.0785 0.9969 -0.0022 +vn 0.0000 1.0000 -0.0023 +vn 0.1381 0.8721 -0.4694 +vn 0.1564 0.9877 -0.0022 +vn 0.0515 0.3254 -0.9442 +vn 0.0474 0.6023 0.7968 +vn -0.0000 0.6042 0.7968 +vn -0.0000 0.8512 0.5248 +vn 0.0668 0.8486 0.5248 +vn 0.0271 0.3445 0.9384 +vn 0.0000 0.3455 0.9384 +vn 0.0945 0.5968 0.7968 +vn 0.0541 0.3413 0.9384 +vn 0.1332 0.8408 0.5248 +vn 0.0043 0.0545 0.9985 +vn -0.0000 0.0547 0.9985 +vn -0.0000 0.2204 0.9754 +vn 0.0173 0.2197 0.9754 +vn 0.0000 -0.0851 0.9964 +vn -0.0067 -0.0848 0.9964 +vn 0.0086 0.0540 0.9985 +vn -0.0133 -0.0841 0.9964 +vn 0.0345 0.2177 0.9754 +vn -0.0784 -0.9963 0.0360 +vn 0.0000 -0.9994 0.0360 +vn 0.0000 -0.9916 0.1292 +vn -0.0778 -0.9886 0.1292 +vn -0.0784 -0.9967 0.0185 +vn -0.0000 -0.9998 0.0185 +vn -0.1563 -0.9870 0.0360 +vn -0.1564 -0.9875 0.0185 +vn -0.1551 -0.9794 0.1292 +vn -0.0750 -0.9536 0.2917 +vn -0.0000 -0.9565 0.2917 +vn -0.0000 -0.9025 0.4308 +vn -0.0708 -0.8997 0.4308 +vn -0.0774 -0.9841 0.1601 +vn 0.0000 -0.9871 0.1601 +vn -0.1496 -0.9447 0.2917 +vn -0.1544 -0.9749 0.1601 +vn -0.1412 -0.8913 0.4308 +vn 0.2061 0.8586 -0.4693 +vn 0.0769 0.3204 -0.9441 +vn 0.2334 0.9724 -0.0022 +vn 0.2729 0.8398 -0.4693 +vn 0.3090 0.9511 -0.0023 +vn 0.1018 0.3134 -0.9442 +vn 0.1411 0.5875 0.7968 +vn 0.1987 0.8277 0.5248 +vn 0.0807 0.3360 0.9384 +vn 0.1867 0.5746 0.7968 +vn 0.1068 0.3286 0.9384 +vn 0.2630 0.8096 0.5248 +vn 0.0128 0.0532 0.9985 +vn 0.0515 0.2143 0.9754 +vn -0.0199 -0.0827 0.9964 +vn 0.0169 0.0520 0.9985 +vn -0.0263 -0.0809 0.9964 +vn 0.0681 0.2096 0.9754 +vn -0.2333 -0.9717 0.0360 +vn -0.2315 -0.9642 0.1292 +vn -0.2334 -0.9722 0.0185 +vn -0.3088 -0.9504 0.0360 +vn -0.3090 -0.9509 0.0185 +vn -0.3064 -0.9431 0.1292 +vn -0.2233 -0.9301 0.2917 +vn -0.2107 -0.8775 0.4308 +vn -0.2304 -0.9598 0.1601 +vn -0.2956 -0.9097 0.2917 +vn -0.3050 -0.9388 0.1601 +vn -0.2789 -0.8583 0.4308 +vn 0.3379 0.8158 -0.4694 +vn 0.1261 0.3044 -0.9442 +vn 0.3827 0.9239 -0.0023 +vn 0.4009 0.7868 -0.4694 +vn 0.4540 0.8910 -0.0023 +vn 0.1496 0.2936 -0.9442 +vn 0.2312 0.5582 0.7968 +vn 0.3258 0.7865 0.5247 +vn 0.1322 0.3192 0.9384 +vn 0.2743 0.5384 0.7968 +vn 0.1569 0.3079 0.9384 +vn 0.3865 0.7585 0.5248 +vn 0.0209 0.0505 0.9985 +vn 0.0844 0.2036 0.9754 +vn -0.0326 -0.0786 0.9964 +vn 0.0248 0.0487 0.9985 +vn -0.0386 -0.0758 0.9964 +vn 0.1001 0.1964 0.9754 +vn -0.3824 -0.9233 0.0360 +vn -0.3795 -0.9161 0.1292 +vn -0.3826 -0.9237 0.0185 +vn -0.4537 -0.8904 0.0360 +vn -0.4539 -0.8909 0.0185 +vn -0.4502 -0.8835 0.1292 +vn -0.3660 -0.8837 0.2917 +vn -0.3454 -0.8338 0.4307 +vn -0.3777 -0.9120 0.1601 +vn -0.4342 -0.8523 0.2917 +vn -0.4481 -0.8795 0.1601 +vn -0.4097 -0.8041 0.4307 +vn 0.4614 0.7529 -0.4694 +vn 0.1722 0.2810 -0.9441 +vn 0.5225 0.8526 -0.0023 +vn 0.5190 0.7144 -0.4693 +vn 0.5878 0.8090 -0.0023 +vn 0.1937 0.2666 -0.9441 +vn 0.3157 0.5152 0.7968 +vn 0.4448 0.7258 0.5248 +vn 0.1805 0.2946 0.9384 +vn 0.3551 0.4888 0.7968 +vn 0.2031 0.2795 0.9384 +vn 0.5003 0.6887 0.5248 +vn 0.0286 0.0466 0.9985 +vn 0.1152 0.1879 0.9754 +vn -0.0445 -0.0726 0.9964 +vn 0.0321 0.0442 0.9985 +vn -0.0500 -0.0688 0.9964 +vn 0.1296 0.1783 0.9754 +vn -0.5222 -0.8521 0.0360 +vn -0.5181 -0.8455 0.1292 +vn -0.5224 -0.8525 0.0185 +vn -0.5874 -0.8085 0.0360 +vn -0.5877 -0.8089 0.0185 +vn -0.5829 -0.8022 0.1292 +vn -0.4998 -0.8156 0.2917 +vn -0.4715 -0.7695 0.4307 +vn -0.5158 -0.8416 0.1601 +vn -0.5622 -0.7738 0.2917 +vn -0.5802 -0.7986 0.1601 +vn -0.5305 -0.7301 0.4307 +vn 0.5735 0.6715 -0.4693 +vn 0.2140 0.2506 -0.9441 +vn 0.6494 0.7604 -0.0023 +vn 0.6244 0.6244 -0.4693 +vn 0.7071 0.7071 -0.0023 +vn 0.2330 0.2330 -0.9441 +vn 0.3924 0.4595 0.7968 +vn 0.5528 0.6473 0.5248 +vn 0.2244 0.2628 0.9384 +vn 0.4272 0.4272 0.7968 +vn 0.2443 0.2443 0.9384 +vn 0.6019 0.6019 0.5248 +vn 0.0355 0.0416 0.9985 +vn 0.1432 0.1676 0.9754 +vn -0.0553 -0.0647 0.9964 +vn 0.0387 0.0387 0.9985 +vn -0.0602 -0.0602 0.9964 +vn 0.1559 0.1559 0.9754 +vn -0.6490 -0.7599 0.0360 +vn -0.6440 -0.7540 0.1292 +vn -0.6493 -0.7603 0.0185 +vn -0.7066 -0.7067 0.0360 +vn -0.7070 -0.7070 0.0185 +vn -0.7012 -0.7012 0.1292 +vn -0.6212 -0.7273 0.2917 +vn -0.5861 -0.6862 0.4307 +vn -0.6411 -0.7506 0.1601 +vn -0.6764 -0.6764 0.2917 +vn -0.6980 -0.6980 0.1601 +vn -0.6381 -0.6381 0.4307 +vn 0.6715 0.5735 -0.4693 +vn 0.2506 0.2140 -0.9442 +vn 0.7604 0.6494 -0.0022 +vn 0.7144 0.5190 -0.4693 +vn 0.8090 0.5878 -0.0022 +vn 0.2666 0.1937 -0.9442 +vn 0.4595 0.3924 0.7968 +vn 0.6473 0.5528 0.5247 +vn 0.2628 0.2244 0.9384 +vn 0.4888 0.3551 0.7968 +vn 0.2795 0.2031 0.9384 +vn 0.6887 0.5004 0.5248 +vn 0.0416 0.0355 0.9985 +vn 0.1676 0.1432 0.9754 +vn -0.0647 -0.0553 0.9964 +vn 0.0442 0.0321 0.9985 +vn -0.0688 -0.0500 0.9964 +vn 0.1783 0.1296 0.9754 +vn -0.7599 -0.6490 0.0360 +vn -0.7540 -0.6440 0.1292 +vn -0.7603 -0.6493 0.0185 +vn -0.8085 -0.5874 0.0360 +vn -0.8089 -0.5877 0.0185 +vn -0.8022 -0.5829 0.1292 +vn -0.7273 -0.6212 0.2917 +vn -0.6863 -0.5861 0.4307 +vn -0.7506 -0.6411 0.1601 +vn -0.7738 -0.5622 0.2917 +vn -0.7986 -0.5802 0.1601 +vn -0.7301 -0.5305 0.4307 +vn 0.7529 0.4614 -0.4693 +vn 0.2810 0.1722 -0.9441 +vn 0.8526 0.5225 -0.0023 +vn 0.7868 0.4009 -0.4694 +vn 0.8910 0.4540 -0.0022 +vn 0.2936 0.1496 -0.9442 +vn 0.5152 0.3157 0.7968 +vn 0.7258 0.4448 0.5247 +vn 0.2946 0.1805 0.9384 +vn 0.5384 0.2743 0.7968 +vn 0.3079 0.1569 0.9384 +vn 0.7585 0.3865 0.5248 +vn 0.0466 0.0286 0.9985 +vn 0.1879 0.1152 0.9754 +vn -0.0725 -0.0444 0.9964 +vn 0.0487 0.0248 0.9985 +vn -0.0758 -0.0386 0.9964 +vn 0.1964 0.1001 0.9754 +vn -0.8521 -0.5222 0.0360 +vn -0.8455 -0.5181 0.1292 +vn -0.8525 -0.5224 0.0185 +vn -0.8904 -0.4537 0.0360 +vn -0.8909 -0.4539 0.0185 +vn -0.8835 -0.4502 0.1292 +vn -0.8156 -0.4998 0.2917 +vn -0.7695 -0.4715 0.4307 +vn -0.8416 -0.5158 0.1601 +vn -0.8523 -0.4342 0.2917 +vn -0.8795 -0.4481 0.1601 +vn -0.8041 -0.4097 0.4307 +vn 0.8158 0.3379 -0.4693 +vn 0.3044 0.1261 -0.9442 +vn 0.9239 0.3827 -0.0022 +vn 0.8398 0.2729 -0.4693 +vn 0.9511 0.3090 -0.0023 +vn 0.3134 0.1018 -0.9442 +vn 0.5582 0.2312 0.7968 +vn 0.7865 0.3258 0.5248 +vn 0.3192 0.1322 0.9384 +vn 0.5746 0.1867 0.7968 +vn 0.3286 0.1068 0.9384 +vn 0.8096 0.2630 0.5248 +vn 0.0505 0.0209 0.9985 +vn 0.2036 0.0844 0.9754 +vn -0.0786 -0.0326 0.9964 +vn 0.0520 0.0169 0.9985 +vn -0.0809 -0.0263 0.9964 +vn 0.2096 0.0681 0.9754 +vn -0.9233 -0.3824 0.0360 +vn -0.9161 -0.3795 0.1292 +vn -0.9237 -0.3826 0.0185 +vn -0.9504 -0.3088 0.0360 +vn -0.9509 -0.3090 0.0185 +vn -0.9431 -0.3064 0.1292 +vn -0.8837 -0.3660 0.2917 +vn -0.8338 -0.3454 0.4307 +vn -0.9120 -0.3777 0.1601 +vn -0.9097 -0.2956 0.2917 +vn -0.9388 -0.3050 0.1601 +vn -0.8583 -0.2789 0.4308 +vn 0.8586 0.2061 -0.4693 +vn 0.3204 0.0769 -0.9441 +vn 0.9724 0.2334 -0.0023 +vn 0.8721 0.1381 -0.4694 +vn 0.9877 0.1564 -0.0022 +vn 0.3254 0.0515 -0.9442 +vn 0.5875 0.1410 0.7968 +vn 0.8277 0.1987 0.5248 +vn 0.3360 0.0807 0.9384 +vn 0.5968 0.0945 0.7968 +vn 0.3413 0.0541 0.9384 +vn 0.8408 0.1332 0.5248 +vn 0.0532 0.0128 0.9985 +vn 0.2143 0.0515 0.9754 +vn -0.0827 -0.0199 0.9964 +vn 0.0540 0.0086 0.9985 +vn -0.0840 -0.0133 0.9964 +vn 0.2177 0.0345 0.9754 +vn -0.9717 -0.2333 0.0360 +vn -0.9642 -0.2315 0.1292 +vn -0.9722 -0.2334 0.0185 +vn -0.9870 -0.1563 0.0360 +vn -0.9875 -0.1564 0.0185 +vn -0.9794 -0.1551 0.1292 +vn -0.9301 -0.2233 0.2917 +vn -0.8775 -0.2107 0.4308 +vn -0.9598 -0.2304 0.1601 +vn -0.9447 -0.1496 0.2917 +vn -0.9749 -0.1544 0.1601 +vn -0.8914 -0.1412 0.4308 +vn 0.8803 0.0693 -0.4694 +vn 0.3285 0.0259 -0.9442 +vn 0.9969 0.0785 -0.0023 +vn 0.6023 0.0474 0.7968 +vn 0.8486 0.0668 0.5248 +vn 0.3445 0.0271 0.9384 +vn 0.0545 0.0043 0.9985 +vn 0.2198 0.0173 0.9754 +vn -0.0848 -0.0067 0.9964 +vn -0.9963 -0.0784 0.0360 +vn -0.9886 -0.0778 0.1292 +vn -0.9967 -0.0784 0.0185 +vn -0.9536 -0.0750 0.2917 +vn -0.8997 -0.0708 0.4308 +vn -0.9841 -0.0774 0.1601 +vn -0.4576 0.7810 -0.4249 +vn -0.1515 0.9034 -0.4012 +vn -0.0444 0.5483 -0.8351 +vn -0.1683 0.3919 -0.9045 +vn -0.4913 0.8710 -0.0023 +vn -0.1433 0.9897 -0.0019 +vn -0.5757 0.6737 -0.4634 +vn -0.6495 0.7604 -0.0023 +vn -0.2189 0.2557 -0.9417 +vn -0.1636 0.6237 0.7644 +vn 0.0965 0.8209 0.5629 +vn -0.0109 0.8934 0.4492 +vn -0.3335 0.7853 0.5216 +vn 0.0050 0.4625 0.8866 +vn 0.2682 0.6696 0.6926 +vn -0.3678 0.4736 0.8003 +vn -0.1961 0.2892 0.9370 +vn -0.5398 0.6527 0.5316 +vn 0.1297 0.2063 0.9699 +vn 0.3640 0.4283 0.8271 +vn 0.2792 0.5339 0.7981 +vn 0.0281 0.3315 0.9430 +vn 0.4387 0.3375 0.8329 +vn 0.2163 0.0970 0.9715 +vn -0.0174 0.0610 0.9980 +vn 0.0727 -0.0454 0.9963 +vn -0.1249 0.1888 0.9740 +vn 0.8063 -0.5905 0.0349 +vn 0.9671 -0.2527 0.0293 +vn 0.9615 -0.2551 0.1019 +vn 0.8003 -0.5862 0.1263 +vn 0.8073 -0.5899 0.0180 +vn 0.9680 -0.2504 0.0154 +vn 0.6674 -0.7438 0.0358 +vn 0.6679 -0.7440 0.0184 +vn 0.6624 -0.7381 0.1287 +vn 0.7350 -0.6095 0.2970 +vn 0.8864 -0.3638 0.2864 +vn 0.8460 -0.2987 0.4416 +vn 0.6997 -0.5565 0.4481 +vn 0.7585 -0.6328 0.1559 +vn 0.9155 -0.3781 0.1374 +vn 0.6338 -0.7157 0.2935 +vn 0.6540 -0.7395 0.1595 +vn 0.5983 -0.6724 0.4359 +vn -0.4606 0.7532 -0.4696 +vn -0.5178 0.7153 -0.4694 +vn -0.1932 0.2669 -0.9441 +vn -0.1720 0.2812 -0.9441 +vn -0.5218 0.8531 -0.0023 +vn -0.5864 0.8100 -0.0023 +vn -0.4009 0.7868 -0.4693 +vn -0.4540 0.8910 -0.0022 +vn -0.1496 0.2936 -0.9441 +vn -0.3153 0.5155 0.7968 +vn -0.3543 0.4894 0.7968 +vn -0.4991 0.6895 0.5248 +vn -0.4442 0.7262 0.5247 +vn -0.1803 0.2948 0.9384 +vn -0.2026 0.2799 0.9384 +vn -0.2743 0.5383 0.7968 +vn -0.1569 0.3079 0.9384 +vn -0.3865 0.7585 0.5248 +vn -0.0285 0.0467 0.9985 +vn -0.0320 0.0443 0.9985 +vn -0.1292 0.1785 0.9754 +vn -0.1150 0.1881 0.9754 +vn 0.0499 -0.0689 0.9964 +vn 0.0444 -0.0726 0.9964 +vn -0.0248 0.0487 0.9985 +vn 0.0386 -0.0758 0.9964 +vn -0.1001 0.1964 0.9754 +vn 0.5214 -0.8525 0.0360 +vn 0.5860 -0.8095 0.0360 +vn 0.5815 -0.8032 0.1292 +vn 0.5174 -0.8459 0.1292 +vn 0.5217 -0.8529 0.0185 +vn 0.5863 -0.8099 0.0185 +vn 0.4537 -0.8904 0.0360 +vn 0.4539 -0.8909 0.0185 +vn 0.4502 -0.8835 0.1292 +vn 0.4991 -0.8160 0.2917 +vn 0.5609 -0.7748 0.2917 +vn 0.5292 -0.7310 0.4308 +vn 0.4709 -0.7699 0.4308 +vn 0.5150 -0.8421 0.1601 +vn 0.5788 -0.7996 0.1601 +vn 0.4342 -0.8523 0.2917 +vn 0.4481 -0.8795 0.1601 +vn 0.4097 -0.8041 0.4308 +vn -0.3379 0.8158 -0.4693 +vn -0.1261 0.3044 -0.9442 +vn -0.3827 0.9239 -0.0022 +vn -0.2729 0.8398 -0.4693 +vn -0.3090 0.9511 -0.0023 +vn -0.1018 0.3134 -0.9442 +vn -0.2312 0.5582 0.7968 +vn -0.3258 0.7865 0.5248 +vn -0.1322 0.3192 0.9384 +vn -0.1867 0.5746 0.7968 +vn -0.1068 0.3286 0.9384 +vn -0.2630 0.8096 0.5248 +vn -0.0209 0.0505 0.9985 +vn -0.0843 0.2036 0.9754 +vn 0.0326 -0.0786 0.9964 +vn -0.0169 0.0520 0.9985 +vn 0.0263 -0.0809 0.9964 +vn -0.0681 0.2096 0.9754 +vn 0.3824 -0.9233 0.0360 +vn 0.3795 -0.9161 0.1292 +vn 0.3826 -0.9237 0.0185 +vn 0.3088 -0.9504 0.0360 +vn 0.3090 -0.9509 0.0185 +vn 0.3064 -0.9431 0.1292 +vn 0.3660 -0.8837 0.2917 +vn 0.3454 -0.8338 0.4308 +vn 0.3777 -0.9120 0.1601 +vn 0.2956 -0.9097 0.2917 +vn 0.3050 -0.9388 0.1601 +vn 0.2789 -0.8583 0.4308 +vn -0.2061 0.8586 -0.4693 +vn -0.0769 0.3204 -0.9441 +vn -0.2334 0.9724 -0.0023 +vn -0.1381 0.8721 -0.4694 +vn -0.1564 0.9877 -0.0022 +vn -0.0515 0.3254 -0.9442 +vn -0.1411 0.5875 0.7968 +vn -0.1987 0.8277 0.5248 +vn -0.0807 0.3360 0.9384 +vn -0.0945 0.5968 0.7968 +vn -0.0541 0.3413 0.9384 +vn -0.1332 0.8408 0.5248 +vn -0.0128 0.0532 0.9985 +vn -0.0515 0.2143 0.9754 +vn 0.0199 -0.0827 0.9964 +vn -0.0085 0.0540 0.9985 +vn 0.0133 -0.0840 0.9964 +vn -0.0345 0.2177 0.9754 +vn 0.2333 -0.9717 0.0360 +vn 0.2315 -0.9642 0.1292 +vn 0.2334 -0.9722 0.0185 +vn 0.1563 -0.9870 0.0360 +vn 0.1564 -0.9875 0.0185 +vn 0.1551 -0.9794 0.1292 +vn 0.2233 -0.9301 0.2917 +vn 0.2107 -0.8775 0.4308 +vn 0.2304 -0.9598 0.1601 +vn 0.1496 -0.9447 0.2917 +vn 0.1544 -0.9749 0.1601 +vn 0.1412 -0.8914 0.4308 +vn -0.0693 0.8803 -0.4694 +vn -0.0259 0.3285 -0.9442 +vn -0.0785 0.9969 -0.0022 +vn -0.0474 0.6023 0.7968 +vn -0.0668 0.8486 0.5248 +vn -0.0271 0.3445 0.9384 +vn -0.0043 0.0545 0.9985 +vn -0.0173 0.2197 0.9754 +vn 0.0067 -0.0848 0.9964 +vn 0.0784 -0.9963 0.0360 +vn 0.0778 -0.9886 0.1292 +vn 0.0784 -0.9967 0.0185 +vn 0.0750 -0.9536 0.2917 +vn 0.0708 -0.8997 0.4308 +vn 0.0774 -0.9841 0.1601 +vn 0.0698 0.8870 0.4564 +vn 0.0775 0.9851 0.1534 +vn 0.1546 0.9760 0.1534 +vn 0.1392 0.8788 0.4564 +vn -0.0000 0.8898 0.4564 +vn 0.0000 0.9882 0.1534 +vn 0.0519 0.6598 0.7497 +vn -0.0000 0.6618 0.7497 +vn 0.1035 0.6536 0.7497 +vn -0.0477 -0.6056 0.7943 +vn -0.0263 -0.3337 0.9423 +vn -0.0524 -0.3306 0.9423 +vn -0.0950 -0.6000 0.7943 +vn 0.0000 -0.6075 0.7943 +vn 0.0000 -0.3347 0.9423 +vn -0.0622 -0.7905 0.6093 +vn 0.0000 -0.7929 0.6093 +vn -0.1240 -0.7832 0.6093 +vn 0.2077 0.8652 0.4564 +vn 0.2307 0.9609 0.1534 +vn 0.3054 0.9398 0.1534 +vn 0.2750 0.8462 0.4564 +vn 0.1545 0.6435 0.7497 +vn 0.2045 0.6294 0.7497 +vn -0.1418 -0.5907 0.7943 +vn -0.0781 -0.3255 0.9423 +vn -0.1034 -0.3184 0.9423 +vn -0.1877 -0.5778 0.7943 +vn -0.1851 -0.7710 0.6093 +vn -0.2450 -0.7541 0.6093 +vn 0.3405 0.8220 0.4564 +vn 0.3782 0.9129 0.1534 +vn 0.4486 0.8805 0.1534 +vn 0.4039 0.7928 0.4564 +vn 0.2533 0.6114 0.7497 +vn 0.3004 0.5897 0.7497 +vn -0.2325 -0.5613 0.7943 +vn -0.1281 -0.3093 0.9423 +vn -0.1520 -0.2983 0.9423 +vn -0.2758 -0.5413 0.7943 +vn -0.3034 -0.7326 0.6093 +vn -0.3600 -0.7065 0.6093 +vn 0.4649 0.7587 0.4564 +vn 0.5163 0.8425 0.1534 +vn 0.5808 0.7994 0.1534 +vn 0.5230 0.7198 0.4564 +vn 0.3458 0.5643 0.7497 +vn 0.3890 0.5354 0.7497 +vn -0.3174 -0.5180 0.7943 +vn -0.1749 -0.2854 0.9423 +vn -0.1968 -0.2708 0.9423 +vn -0.3571 -0.4915 0.7943 +vn -0.4143 -0.6761 0.6093 +vn -0.4661 -0.6415 0.6093 +vn 0.5779 0.6766 0.4564 +vn 0.6418 0.7514 0.1534 +vn 0.6987 0.6987 0.1534 +vn 0.6292 0.6292 0.4564 +vn 0.4298 0.5032 0.7497 +vn 0.4680 0.4680 0.7497 +vn -0.3945 -0.4619 0.7943 +vn -0.2174 -0.2545 0.9423 +vn -0.2367 -0.2367 0.9423 +vn -0.4296 -0.4296 0.7943 +vn -0.5150 -0.6029 0.6093 +vn -0.5607 -0.5607 0.6093 +vn 0.6766 0.5779 0.4564 +vn 0.7514 0.6418 0.1534 +vn 0.7994 0.5808 0.1534 +vn 0.7198 0.5230 0.4564 +vn 0.5032 0.4298 0.7497 +vn 0.5354 0.3890 0.7497 +vn -0.4619 -0.3945 0.7943 +vn -0.2545 -0.2174 0.9423 +vn -0.2708 -0.1968 0.9423 +vn -0.4915 -0.3571 0.7943 +vn -0.6029 -0.5150 0.6093 +vn -0.6415 -0.4661 0.6093 +vn 0.7587 0.4649 0.4564 +vn 0.8425 0.5163 0.1534 +vn 0.8805 0.4486 0.1534 +vn 0.7928 0.4039 0.4564 +vn 0.5643 0.3458 0.7497 +vn 0.5897 0.3004 0.7497 +vn -0.5180 -0.3174 0.7943 +vn -0.2854 -0.1749 0.9423 +vn -0.2983 -0.1520 0.9423 +vn -0.5413 -0.2758 0.7943 +vn -0.6761 -0.4143 0.6093 +vn -0.7065 -0.3600 0.6093 +vn 0.8220 0.3405 0.4564 +vn 0.9129 0.3782 0.1534 +vn 0.9398 0.3054 0.1534 +vn 0.8462 0.2750 0.4564 +vn 0.6114 0.2533 0.7497 +vn 0.6294 0.2045 0.7497 +vn -0.5613 -0.2325 0.7943 +vn -0.3093 -0.1281 0.9423 +vn -0.3184 -0.1034 0.9423 +vn -0.5778 -0.1877 0.7943 +vn -0.7326 -0.3034 0.6093 +vn -0.7541 -0.2450 0.6093 +vn 0.8652 0.2077 0.4564 +vn 0.9609 0.2307 0.1534 +vn 0.9760 0.1546 0.1534 +vn 0.8788 0.1392 0.4564 +vn 0.6435 0.1545 0.7497 +vn 0.6536 0.1035 0.7497 +vn -0.5907 -0.1418 0.7943 +vn -0.3255 -0.0781 0.9423 +vn -0.3306 -0.0524 0.9423 +vn -0.6000 -0.0950 0.7943 +vn -0.7710 -0.1851 0.6093 +vn -0.7832 -0.1240 0.6093 +vn 0.8870 0.0698 0.4564 +vn 0.9851 0.0775 0.1534 +vn 0.6598 0.0519 0.7497 +vn -0.6056 -0.0477 0.7943 +vn -0.3337 -0.0263 0.9423 +vn -0.7905 -0.0622 0.6093 +vn -0.5618 0.6905 0.4555 +vn -0.6240 0.7663 0.1531 +vn -0.5794 0.8004 0.1534 +vn -0.5217 0.7207 0.4564 +vn -0.5585 0.6947 0.4532 +vn -0.6230 0.7672 0.1525 +vn -0.4176 0.5150 0.7486 +vn -0.4104 0.5236 0.7466 +vn -0.3880 0.5360 0.7497 +vn 0.3867 -0.4672 0.7951 +vn 0.2133 -0.2555 0.9430 +vn 0.1963 -0.2711 0.9423 +vn 0.3562 -0.4921 0.7943 +vn 0.4125 -0.4428 0.7961 +vn 0.2343 -0.2335 0.9437 +vn 0.5046 -0.6111 0.6099 +vn 0.5335 -0.5854 0.6105 +vn 0.4649 -0.6423 0.6093 +vn -0.4643 0.7591 0.4563 +vn -0.5156 0.8430 0.1534 +vn -0.4486 0.8805 0.1534 +vn -0.4039 0.7928 0.4564 +vn -0.3453 0.5646 0.7496 +vn -0.3004 0.5897 0.7497 +vn 0.3170 -0.5182 0.7944 +vn 0.1746 -0.2855 0.9423 +vn 0.1520 -0.2983 0.9423 +vn 0.2758 -0.5413 0.7943 +vn 0.4137 -0.6764 0.6093 +vn 0.3600 -0.7065 0.6093 +vn -0.3405 0.8220 0.4564 +vn -0.3782 0.9129 0.1534 +vn -0.3054 0.9398 0.1534 +vn -0.2750 0.8462 0.4564 +vn -0.2533 0.6114 0.7497 +vn -0.2045 0.6294 0.7497 +vn 0.2325 -0.5613 0.7943 +vn 0.1281 -0.3093 0.9423 +vn 0.1034 -0.3184 0.9423 +vn 0.1877 -0.5778 0.7943 +vn 0.3034 -0.7326 0.6093 +vn 0.2450 -0.7541 0.6093 +vn -0.2077 0.8652 0.4564 +vn -0.2307 0.9609 0.1534 +vn -0.1546 0.9760 0.1534 +vn -0.1392 0.8788 0.4564 +vn -0.1545 0.6435 0.7497 +vn -0.1035 0.6536 0.7497 +vn 0.1418 -0.5907 0.7943 +vn 0.0781 -0.3255 0.9423 +vn 0.0524 -0.3306 0.9423 +vn 0.0950 -0.6000 0.7943 +vn 0.1851 -0.7710 0.6093 +vn 0.1240 -0.7832 0.6093 +vn -0.0698 0.8870 0.4564 +vn -0.0775 0.9851 0.1534 +vn -0.0519 0.6598 0.7497 +vn 0.0477 -0.6056 0.7943 +vn 0.0263 -0.3337 0.9423 +vn 0.0622 -0.7905 0.6093 +vn 0.0346 0.4397 0.8975 +vn 0.0690 0.4357 0.8975 +vn 0.0000 0.4411 0.8975 +vn 0.1030 0.4289 0.8975 +vn 0.1363 0.4195 0.8975 +vn 0.1688 0.4075 0.8974 +vn 0.2003 0.3930 0.8975 +vn 0.2305 0.3761 0.8974 +vn 0.2593 0.3569 0.8975 +vn 0.2865 0.3354 0.8974 +vn 0.3119 0.3119 0.8975 +vn 0.3354 0.2865 0.8974 +vn 0.3569 0.2593 0.8975 +vn 0.3761 0.2305 0.8974 +vn 0.3930 0.2003 0.8975 +vn 0.4075 0.1688 0.8974 +vn 0.4195 0.1363 0.8975 +vn 0.4289 0.1030 0.8974 +vn 0.4357 0.0690 0.8975 +vn 0.4398 0.0346 0.8975 +vn -0.2778 0.3444 0.8968 +vn -0.2586 0.3573 0.8975 +vn -0.2674 0.3566 0.8952 +vn -0.1381 0.1737 0.9751 +vn -0.2302 0.3764 0.8974 +vn -0.2003 0.3930 0.8975 +vn -0.1688 0.4075 0.8974 +vn -0.1363 0.4195 0.8975 +vn -0.1030 0.4289 0.8975 +vn -0.0690 0.4357 0.8975 +vn -0.0346 0.4397 0.8975 +vn -0.0761 -0.9664 0.2454 +vn 0.0000 -0.9694 0.2454 +vn 0.0000 -0.9934 0.1145 +vn -0.0779 -0.9904 0.1145 +vn -0.0710 -0.9025 0.4249 +vn 0.0000 -0.9052 0.4249 +vn -0.1516 -0.9575 0.2454 +vn -0.1416 -0.8941 0.4249 +vn -0.1554 -0.9812 0.1145 +vn -0.2263 -0.9426 0.2454 +vn -0.2319 -0.9660 0.1145 +vn -0.2113 -0.8802 0.4249 +vn -0.2996 -0.9220 0.2454 +vn -0.2797 -0.8609 0.4249 +vn -0.3070 -0.9448 0.1145 +vn -0.3710 -0.8956 0.2454 +vn -0.3802 -0.9178 0.1145 +vn -0.3464 -0.8363 0.4249 +vn -0.4401 -0.8638 0.2454 +vn -0.4110 -0.8066 0.4249 +vn -0.4510 -0.8851 0.1145 +vn -0.5065 -0.8266 0.2454 +vn -0.5191 -0.8470 0.1145 +vn -0.4730 -0.7719 0.4249 +vn -0.5698 -0.7843 0.2454 +vn -0.5321 -0.7324 0.4249 +vn -0.5839 -0.8037 0.1145 +vn -0.6296 -0.7372 0.2454 +vn -0.6452 -0.7554 0.1145 +vn -0.5879 -0.6884 0.4249 +vn -0.6855 -0.6855 0.2454 +vn -0.6401 -0.6401 0.4249 +vn -0.7025 -0.7025 0.1145 +vn -0.7372 -0.6296 0.2454 +vn -0.7554 -0.6452 0.1145 +vn -0.6884 -0.5879 0.4249 +vn -0.7843 -0.5698 0.2454 +vn -0.7324 -0.5321 0.4249 +vn -0.8037 -0.5839 0.1145 +vn -0.8266 -0.5065 0.2454 +vn -0.8470 -0.5191 0.1145 +vn -0.7719 -0.4730 0.4249 +vn -0.8638 -0.4401 0.2454 +vn -0.8066 -0.4110 0.4249 +vn -0.8851 -0.4510 0.1145 +vn -0.8956 -0.3710 0.2454 +vn -0.9178 -0.3802 0.1145 +vn -0.8363 -0.3464 0.4249 +vn -0.9220 -0.2996 0.2454 +vn -0.8609 -0.2797 0.4249 +vn -0.9448 -0.3070 0.1145 +vn -0.9426 -0.2263 0.2454 +vn -0.9660 -0.2319 0.1145 +vn -0.8802 -0.2113 0.4249 +vn -0.9575 -0.1516 0.2454 +vn -0.8941 -0.1416 0.4249 +vn -0.9812 -0.1554 0.1145 +vn -0.9664 -0.0761 0.2454 +vn -0.9904 -0.0779 0.1145 +vn -0.9025 -0.0710 0.4249 +vn 0.7786 -0.5765 0.2480 +vn 0.9400 -0.2555 0.2261 +vn 0.9617 -0.2517 0.1088 +vn 0.8009 -0.5870 0.1182 +vn 0.7393 -0.5275 0.4185 +vn 0.9054 -0.2078 0.3701 +vn 0.6469 -0.7216 0.2465 +vn 0.6056 -0.6733 0.4241 +vn 0.6634 -0.7392 0.1158 +vn 0.5058 -0.8270 0.2454 +vn 0.5684 -0.7853 0.2454 +vn 0.5825 -0.8047 0.1146 +vn 0.5183 -0.8475 0.1145 +vn 0.4723 -0.7723 0.4248 +vn 0.5308 -0.7333 0.4249 +vn 0.4401 -0.8638 0.2454 +vn 0.4110 -0.8066 0.4249 +vn 0.4510 -0.8851 0.1145 +vn 0.3710 -0.8956 0.2454 +vn 0.3802 -0.9178 0.1145 +vn 0.3464 -0.8363 0.4249 +vn 0.2996 -0.9220 0.2454 +vn 0.2797 -0.8609 0.4249 +vn 0.3070 -0.9448 0.1145 +vn 0.2263 -0.9426 0.2454 +vn 0.2319 -0.9660 0.1145 +vn 0.2113 -0.8802 0.4249 +vn 0.1516 -0.9575 0.2454 +vn 0.1416 -0.8941 0.4249 +vn 0.1554 -0.9812 0.1145 +vn 0.0761 -0.9664 0.2454 +vn 0.0779 -0.9904 0.1145 +vn 0.0710 -0.9025 0.4249 +vn -0.0579 -0.7353 0.6752 +vn 0.0000 -0.7376 0.6752 +vn 0.0000 -0.4179 0.9085 +vn -0.0328 -0.4166 0.9085 +vn -0.1154 -0.7285 0.6752 +vn -0.0654 -0.4127 0.9085 +vn -0.1722 -0.7172 0.6752 +vn -0.0975 -0.4063 0.9085 +vn -0.2279 -0.7015 0.6752 +vn -0.1291 -0.3974 0.9085 +vn -0.2823 -0.6815 0.6752 +vn -0.1599 -0.3860 0.9085 +vn -0.3349 -0.6572 0.6752 +vn -0.1897 -0.3723 0.9085 +vn -0.3854 -0.6289 0.6752 +vn -0.2183 -0.3563 0.9085 +vn -0.4336 -0.5968 0.6752 +vn -0.2456 -0.3381 0.9085 +vn -0.4790 -0.5609 0.6752 +vn -0.2714 -0.3177 0.9085 +vn -0.5216 -0.5216 0.6752 +vn -0.2955 -0.2955 0.9085 +vn -0.5609 -0.4790 0.6752 +vn -0.3177 -0.2714 0.9085 +vn -0.5968 -0.4336 0.6752 +vn -0.3381 -0.2456 0.9085 +vn -0.6289 -0.3854 0.6752 +vn -0.3563 -0.2183 0.9085 +vn -0.6572 -0.3349 0.6752 +vn -0.3723 -0.1897 0.9085 +vn -0.6815 -0.2823 0.6752 +vn -0.3860 -0.1599 0.9085 +vn -0.7015 -0.2279 0.6752 +vn -0.3974 -0.1291 0.9085 +vn -0.7173 -0.1722 0.6752 +vn -0.4063 -0.0975 0.9085 +vn -0.7286 -0.1154 0.6752 +vn -0.4127 -0.0654 0.9085 +vn -0.7353 -0.0579 0.6752 +vn -0.4166 -0.0328 0.9085 +vn 0.5945 -0.4129 0.6900 +vn 0.7404 -0.1429 0.6568 +vn 0.5660 0.0814 0.8204 +vn 0.3957 -0.1724 0.9020 +vn 0.4899 -0.5418 0.6830 +vn 0.2824 -0.2987 0.9116 +vn 0.3848 -0.6292 0.6753 +vn 0.4325 -0.5975 0.6752 +vn 0.2450 -0.3385 0.9085 +vn 0.2180 -0.3564 0.9085 +vn 0.3349 -0.6572 0.6752 +vn 0.1897 -0.3723 0.9085 +vn 0.2823 -0.6815 0.6752 +vn 0.1599 -0.3861 0.9085 +vn 0.2279 -0.7015 0.6752 +vn 0.1291 -0.3974 0.9085 +vn 0.1722 -0.7172 0.6752 +vn 0.0975 -0.4063 0.9085 +vn 0.1154 -0.7285 0.6752 +vn 0.0654 -0.4127 0.9085 +vn 0.0579 -0.7353 0.6752 +vn 0.0328 -0.4166 0.9085 +vn -0.0781 -0.9928 0.0913 +vn 0.0000 -0.9958 0.0913 +vn -0.0782 -0.9941 0.0750 +vn 0.0000 -0.9972 0.0750 +vn -0.1558 -0.9836 0.0913 +vn -0.1560 -0.9849 0.0750 +vn -0.2325 -0.9683 0.0913 +vn -0.2328 -0.9696 0.0750 +vn -0.3077 -0.9471 0.0913 +vn -0.3081 -0.9484 0.0750 +vn -0.3811 -0.9200 0.0913 +vn -0.3816 -0.9213 0.0750 +vn -0.4521 -0.8873 0.0913 +vn -0.4527 -0.8885 0.0750 +vn -0.5203 -0.8491 0.0913 +vn -0.5210 -0.8502 0.0750 +vn -0.5853 -0.8056 0.0913 +vn -0.5861 -0.8067 0.0750 +vn -0.6467 -0.7572 0.0913 +vn -0.6476 -0.7583 0.0750 +vn -0.7042 -0.7042 0.0913 +vn -0.7051 -0.7051 0.0750 +vn -0.7572 -0.6467 0.0913 +vn -0.7583 -0.6476 0.0750 +vn -0.8056 -0.5853 0.0913 +vn -0.8067 -0.5861 0.0750 +vn -0.8491 -0.5203 0.0913 +vn -0.8502 -0.5210 0.0750 +vn -0.8873 -0.4521 0.0913 +vn -0.8885 -0.4527 0.0750 +vn -0.9200 -0.3811 0.0913 +vn -0.9213 -0.3816 0.0750 +vn -0.9471 -0.3077 0.0913 +vn -0.9484 -0.3081 0.0750 +vn -0.9683 -0.2325 0.0913 +vn -0.9696 -0.2328 0.0750 +vn -0.9836 -0.1558 0.0913 +vn -0.9849 -0.1560 0.0750 +vn -0.9928 -0.0781 0.0913 +vn -0.9941 -0.0782 0.0750 +vn 0.7718 -0.6305 0.0822 +vn 0.9333 -0.3534 0.0643 +vn 0.7802 -0.6222 0.0647 +vn 0.9431 -0.3289 0.0498 +vn 0.6605 -0.7455 0.0893 +vn 0.6622 -0.7457 0.0727 +vn 0.5196 -0.8495 0.0913 +vn 0.5839 -0.8067 0.0913 +vn 0.5203 -0.8507 0.0750 +vn 0.5847 -0.8078 0.0750 +vn 0.4521 -0.8873 0.0913 +vn 0.4527 -0.8885 0.0750 +vn 0.3811 -0.9200 0.0913 +vn 0.3816 -0.9213 0.0750 +vn 0.3077 -0.9471 0.0913 +vn 0.3081 -0.9484 0.0750 +vn 0.2325 -0.9683 0.0913 +vn 0.2328 -0.9696 0.0750 +vn 0.1558 -0.9836 0.0913 +vn 0.1560 -0.9849 0.0750 +vn 0.0781 -0.9928 0.0913 +vn 0.0782 -0.9941 0.0750 +vn 0.0783 0.9950 0.0615 +vn 0.0000 0.9981 0.0615 +vn 0.0000 0.9924 0.1230 +vn 0.0779 0.9893 0.1230 +vn 0.1561 0.9858 0.0615 +vn 0.1552 0.9802 0.1230 +vn 0.2330 0.9705 0.0615 +vn 0.2317 0.9650 0.1231 +vn 0.3084 0.9493 0.0615 +vn 0.3067 0.9438 0.1230 +vn 0.3820 0.9221 0.0615 +vn 0.3798 0.9169 0.1230 +vn 0.4531 0.8893 0.0615 +vn 0.4505 0.8842 0.1230 +vn 0.5215 0.8510 0.0615 +vn 0.5185 0.8462 0.1230 +vn 0.5867 0.8075 0.0615 +vn 0.5833 0.8029 0.1230 +vn 0.6482 0.7590 0.0615 +vn 0.6445 0.7546 0.1230 +vn 0.7058 0.7058 0.0615 +vn 0.7017 0.7017 0.1230 +vn 0.7590 0.6482 0.0615 +vn 0.7546 0.6445 0.1230 +vn 0.8075 0.5867 0.0615 +vn 0.8029 0.5833 0.1230 +vn 0.8510 0.5215 0.0615 +vn 0.8462 0.5185 0.1230 +vn 0.8893 0.4531 0.0615 +vn 0.8842 0.4505 0.1230 +vn 0.9221 0.3820 0.0615 +vn 0.9169 0.3798 0.1230 +vn 0.9493 0.3084 0.0615 +vn 0.9438 0.3067 0.1230 +vn 0.9705 0.2330 0.0615 +vn 0.9650 0.2317 0.1231 +vn 0.9858 0.1561 0.0615 +vn 0.9802 0.1552 0.1230 +vn 0.9950 0.0783 0.0615 +vn 0.9893 0.0779 0.1230 +vn -0.4756 0.8776 0.0597 +vn -0.1842 0.9816 0.0508 +vn -0.1806 0.9778 0.1060 +vn -0.4724 0.8734 0.1184 +vn -0.4677 0.8715 0.1477 +vn -0.1733 0.9773 0.1218 +vn -0.6298 0.7743 0.0614 +vn -0.6262 0.7698 0.1234 +vn -0.5208 0.8515 0.0615 +vn -0.5853 0.8085 0.0615 +vn -0.5819 0.8039 0.1231 +vn -0.5178 0.8466 0.1231 +vn -0.4531 0.8893 0.0615 +vn -0.4505 0.8842 0.1230 +vn -0.3820 0.9221 0.0615 +vn -0.3798 0.9169 0.1230 +vn -0.3084 0.9493 0.0615 +vn -0.3067 0.9438 0.1231 +vn -0.2330 0.9705 0.0615 +vn -0.2317 0.9650 0.1231 +vn -0.1561 0.9858 0.0615 +vn -0.1552 0.9802 0.1230 +vn -0.0783 0.9950 0.0615 +vn -0.0779 0.9893 0.1230 +vn 0.0364 0.4620 0.8861 +vn 0.0000 0.4635 0.8861 +vn 0.0000 0.1354 0.9908 +vn 0.0106 0.1349 0.9908 +vn 0.0602 0.7655 0.6406 +vn 0.0000 0.7679 0.6406 +vn 0.0725 0.4577 0.8861 +vn 0.1201 0.7585 0.6406 +vn 0.0212 0.1337 0.9908 +vn 0.1082 0.4506 0.8861 +vn 0.0316 0.1316 0.9908 +vn 0.1793 0.7467 0.6406 +vn 0.1432 0.4408 0.8861 +vn 0.2373 0.7303 0.6406 +vn 0.0418 0.1287 0.9908 +vn 0.1773 0.4282 0.8861 +vn 0.0518 0.1250 0.9908 +vn 0.2939 0.7094 0.6406 +vn 0.2104 0.4129 0.8861 +vn 0.3486 0.6842 0.6406 +vn 0.0614 0.1206 0.9908 +vn 0.2421 0.3951 0.8861 +vn 0.0707 0.1154 0.9908 +vn 0.4012 0.6547 0.6406 +vn 0.2724 0.3749 0.8861 +vn 0.4514 0.6212 0.6406 +vn 0.0796 0.1095 0.9908 +vn 0.3010 0.3524 0.8861 +vn 0.0879 0.1029 0.9908 +vn 0.4987 0.5839 0.6406 +vn 0.3277 0.3277 0.8861 +vn 0.5430 0.5430 0.6406 +vn 0.0957 0.0957 0.9908 +vn 0.3524 0.3010 0.8861 +vn 0.1029 0.0879 0.9908 +vn 0.5839 0.4987 0.6406 +vn 0.3749 0.2724 0.8861 +vn 0.6212 0.4514 0.6406 +vn 0.1095 0.0796 0.9908 +vn 0.3951 0.2421 0.8861 +vn 0.1154 0.0707 0.9908 +vn 0.6547 0.4012 0.6406 +vn 0.4129 0.2104 0.8861 +vn 0.6842 0.3486 0.6406 +vn 0.1206 0.0614 0.9908 +vn 0.4282 0.1774 0.8861 +vn 0.1250 0.0518 0.9908 +vn 0.7094 0.2939 0.6406 +vn 0.4408 0.1432 0.8861 +vn 0.7303 0.2373 0.6406 +vn 0.1287 0.0418 0.9908 +vn 0.4506 0.1082 0.8861 +vn 0.1316 0.0316 0.9908 +vn 0.7467 0.1793 0.6406 +vn 0.4577 0.0725 0.8861 +vn 0.7584 0.1201 0.6406 +vn 0.1337 0.0212 0.9908 +vn 0.4620 0.0364 0.8861 +vn 0.1349 0.0106 0.9908 +vn 0.7655 0.0602 0.6406 +vn -0.1096 0.5150 0.8502 +vn 0.1676 0.6845 0.7095 +vn 0.3513 0.5031 0.7896 +vn 0.1033 0.2851 0.9529 +vn -0.3092 0.7245 0.6160 +vn -0.0097 0.8527 0.5223 +vn -0.2765 0.3687 0.8875 +vn -0.4772 0.6001 0.6420 +vn -0.0636 0.1234 0.9903 +vn -0.2417 0.3953 0.8862 +vn -0.2717 0.3754 0.8861 +vn -0.0794 0.1096 0.9908 +vn -0.0706 0.1154 0.9908 +vn -0.4007 0.6551 0.6406 +vn -0.4503 0.6220 0.6406 +vn -0.2104 0.4129 0.8861 +vn -0.3486 0.6842 0.6406 +vn -0.0614 0.1206 0.9908 +vn -0.1773 0.4282 0.8861 +vn -0.0518 0.1250 0.9908 +vn -0.2939 0.7095 0.6406 +vn -0.1432 0.4408 0.8861 +vn -0.2373 0.7303 0.6406 +vn -0.0418 0.1287 0.9908 +vn -0.1082 0.4506 0.8861 +vn -0.0316 0.1316 0.9908 +vn -0.1793 0.7467 0.6406 +vn -0.0725 0.4577 0.8861 +vn -0.1201 0.7585 0.6406 +vn -0.0212 0.1337 0.9908 +vn -0.0364 0.4620 0.8861 +vn -0.0106 0.1349 0.9908 +vn -0.0602 0.7655 0.6406 +vn 0.0073 0.0929 0.9957 +vn 0.0000 0.0932 0.9957 +vn 0.0146 0.0920 0.9957 +vn 0.0217 0.0906 0.9957 +vn 0.0288 0.0886 0.9957 +vn 0.0356 0.0861 0.9957 +vn 0.0423 0.0830 0.9957 +vn 0.0487 0.0794 0.9957 +vn 0.0547 0.0754 0.9957 +vn 0.0605 0.0708 0.9957 +vn 0.0659 0.0659 0.9957 +vn 0.0708 0.0605 0.9957 +vn 0.0754 0.0547 0.9957 +vn 0.0794 0.0487 0.9957 +vn 0.0830 0.0423 0.9957 +vn 0.0861 0.0357 0.9957 +vn 0.0886 0.0288 0.9957 +vn 0.0906 0.0217 0.9957 +vn 0.0920 0.0146 0.9957 +vn 0.0929 0.0073 0.9957 +vn 0.1461 0.2852 0.9473 +vn 0.3886 0.5149 0.7641 +vn 0.2056 0.2039 0.9572 +vn 0.4417 0.4404 0.7816 +vn -0.0343 0.1015 0.9942 +vn 0.0269 0.0258 0.9993 +vn -0.0486 0.0795 0.9956 +vn -0.0546 0.0754 0.9957 +vn -0.0423 0.0830 0.9957 +vn -0.0356 0.0861 0.9957 +vn -0.0288 0.0886 0.9957 +vn -0.0217 0.0906 0.9957 +vn -0.0146 0.0920 0.9957 +vn -0.0073 0.0929 0.9957 +vn 0.0775 0.9852 0.1526 +vn 0.0000 0.9883 0.1526 +vn -0.0000 1.0000 -0.0033 +vn 0.0785 0.9969 -0.0033 +vn 0.1546 0.9761 0.1526 +vn 0.1564 0.9877 -0.0033 +vn 0.2307 0.9610 0.1526 +vn 0.2334 0.9724 -0.0033 +vn 0.3054 0.9399 0.1526 +vn 0.3090 0.9511 -0.0033 +vn 0.3782 0.9131 0.1526 +vn 0.3827 0.9239 -0.0033 +vn 0.4487 0.8806 0.1526 +vn 0.4540 0.8910 -0.0033 +vn 0.5164 0.8427 0.1526 +vn 0.5225 0.8526 -0.0033 +vn 0.5809 0.7995 0.1526 +vn 0.5878 0.8090 -0.0033 +vn 0.6418 0.7515 0.1526 +vn 0.6494 0.7604 -0.0033 +vn 0.6988 0.6988 0.1526 +vn 0.7071 0.7071 -0.0032 +vn 0.7515 0.6418 0.1526 +vn 0.7604 0.6494 -0.0032 +vn 0.7995 0.5809 0.1526 +vn 0.8090 0.5878 -0.0033 +vn 0.8427 0.5164 0.1526 +vn 0.8526 0.5225 -0.0033 +vn 0.8806 0.4487 0.1526 +vn 0.8910 0.4540 -0.0033 +vn 0.9131 0.3782 0.1526 +vn 0.9239 0.3827 -0.0033 +vn 0.9399 0.3054 0.1526 +vn 0.9511 0.3090 -0.0033 +vn 0.9610 0.2307 0.1526 +vn 0.9724 0.2334 -0.0033 +vn 0.9761 0.1546 0.1526 +vn 0.9877 0.1564 -0.0033 +vn 0.9852 0.0775 0.1526 +vn 0.9969 0.0785 -0.0033 +vn -0.4709 0.8686 0.1543 +vn -0.0760 0.9776 0.1963 +vn -0.1186 0.9926 0.0251 +vn -0.4864 0.8737 -0.0016 +vn -0.6396 0.7526 0.1565 +vn -0.6494 0.7604 -0.0032 +vn -0.5157 0.8431 0.1526 +vn -0.5795 0.8006 0.1526 +vn -0.5864 0.8100 -0.0033 +vn -0.5218 0.8531 -0.0033 +vn -0.4487 0.8806 0.1526 +vn -0.4540 0.8910 -0.0033 +vn -0.3782 0.9131 0.1526 +vn -0.3827 0.9239 -0.0033 +vn -0.3054 0.9399 0.1526 +vn -0.3090 0.9511 -0.0033 +vn -0.2307 0.9610 0.1526 +vn -0.2334 0.9724 -0.0033 +vn -0.1546 0.9761 0.1526 +vn -0.1564 0.9877 -0.0033 +vn -0.0775 0.9852 0.1526 +vn -0.0785 0.9969 -0.0033 +vn 0.0015 0.0192 0.9998 +vn 0.0000 0.0193 0.9998 +vn 0.0030 0.0191 0.9998 +vn 0.0045 0.0188 0.9998 +vn 0.0060 0.0183 0.9998 +vn 0.0074 0.0178 0.9998 +vn 0.0088 0.0172 0.9998 +vn 0.0101 0.0164 0.9998 +vn 0.0113 0.0156 0.9998 +vn 0.0125 0.0147 0.9998 +vn 0.0136 0.0136 0.9998 +vn 0.0147 0.0125 0.9998 +vn 0.0156 0.0113 0.9998 +vn 0.0164 0.0101 0.9998 +vn 0.0172 0.0088 0.9998 +vn 0.0178 0.0074 0.9998 +vn 0.0183 0.0060 0.9998 +vn 0.0188 0.0045 0.9998 +vn 0.0191 0.0030 0.9998 +vn 0.0192 0.0015 0.9998 +vn 0.1862 0.2103 0.9597 +vn 0.4248 0.4452 0.7882 +vn 0.0129 0.0385 0.9992 +vn -0.0101 0.0164 0.9998 +vn -0.0113 0.0156 0.9998 +vn -0.0088 0.0172 0.9998 +vn -0.0074 0.0178 0.9998 +vn -0.0060 0.0183 0.9998 +vn -0.0045 0.0188 0.9998 +vn -0.0030 0.0191 0.9998 +vn -0.0015 0.0192 0.9998 +vn 0.0732 0.9305 0.3590 +vn 0.0000 0.9334 0.3590 +vn 0.1460 0.9219 0.3590 +vn 0.2179 0.9076 0.3590 +vn 0.2884 0.8877 0.3590 +vn 0.3572 0.8623 0.3590 +vn 0.4237 0.8316 0.3590 +vn 0.4877 0.7958 0.3590 +vn 0.5486 0.7551 0.3590 +vn 0.6062 0.7097 0.3590 +vn 0.6600 0.6600 0.3590 +vn 0.7097 0.6062 0.3590 +vn 0.7551 0.5486 0.3590 +vn 0.7958 0.4877 0.3590 +vn 0.8316 0.4237 0.3590 +vn 0.8623 0.3572 0.3590 +vn 0.8877 0.2884 0.3590 +vn 0.9076 0.2179 0.3590 +vn 0.9219 0.1460 0.3590 +vn 0.9305 0.0732 0.3590 +vn -0.4264 0.8373 0.3423 +vn -0.1295 0.9467 0.2949 +vn -0.5866 0.7256 0.3597 +vn -0.4870 0.7962 0.3590 +vn -0.5473 0.7560 0.3590 +vn -0.4237 0.8316 0.3590 +vn -0.3572 0.8623 0.3590 +vn -0.2884 0.8877 0.3590 +vn -0.2179 0.9076 0.3590 +vn -0.1460 0.9219 0.3590 +vn -0.0732 0.9305 0.3590 +vn -0.0213 -0.2712 0.9623 +vn 0.0000 -0.2720 0.9623 +vn 0.0000 -0.4434 0.8963 +vn -0.0348 -0.4420 0.8963 +vn -0.0426 -0.2687 0.9623 +vn -0.0694 -0.4379 0.8963 +vn -0.0635 -0.2645 0.9623 +vn -0.1035 -0.4311 0.8963 +vn -0.0841 -0.2587 0.9623 +vn -0.1370 -0.4217 0.8963 +vn -0.1041 -0.2513 0.9623 +vn -0.1697 -0.4096 0.8963 +vn -0.1235 -0.2424 0.9623 +vn -0.2013 -0.3950 0.8963 +vn -0.1421 -0.2320 0.9623 +vn -0.2317 -0.3780 0.8963 +vn -0.1599 -0.2201 0.9623 +vn -0.2606 -0.3587 0.8963 +vn -0.1767 -0.2069 0.9623 +vn -0.2879 -0.3371 0.8963 +vn -0.1924 -0.1924 0.9623 +vn -0.3135 -0.3135 0.8963 +vn -0.2069 -0.1767 0.9623 +vn -0.3371 -0.2879 0.8963 +vn -0.2201 -0.1599 0.9623 +vn -0.3587 -0.2606 0.8964 +vn -0.2320 -0.1421 0.9623 +vn -0.3780 -0.2317 0.8963 +vn -0.2424 -0.1235 0.9623 +vn -0.3950 -0.2013 0.8963 +vn -0.2513 -0.1041 0.9623 +vn -0.4096 -0.1697 0.8963 +vn -0.2587 -0.0841 0.9623 +vn -0.4216 -0.1370 0.8963 +vn -0.2645 -0.0635 0.9623 +vn -0.4311 -0.1035 0.8963 +vn -0.2687 -0.0426 0.9623 +vn -0.4379 -0.0694 0.8963 +vn -0.2712 -0.0213 0.9623 +vn -0.4420 -0.0348 0.8963 +vn 0.3084 -0.0666 0.9489 +vn 0.5019 0.1709 0.8479 +vn 0.6290 0.0941 0.7717 +vn 0.4334 -0.1785 0.8833 +vn 0.1910 -0.1925 0.9625 +vn 0.3062 -0.3238 0.8952 +vn 0.1419 -0.2321 0.9623 +vn 0.1595 -0.2203 0.9623 +vn 0.2600 -0.3591 0.8964 +vn 0.2314 -0.3783 0.8963 +vn 0.1235 -0.2424 0.9623 +vn 0.2013 -0.3950 0.8963 +vn 0.1041 -0.2513 0.9623 +vn 0.1697 -0.4096 0.8963 +vn 0.0841 -0.2587 0.9623 +vn 0.1370 -0.4217 0.8963 +vn 0.0635 -0.2645 0.9623 +vn 0.1035 -0.4311 0.8963 +vn 0.0426 -0.2687 0.9623 +vn 0.0694 -0.4379 0.8963 +vn 0.0213 -0.2712 0.9623 +vn 0.0348 -0.4420 0.8963 +vn -0.0732 -0.9298 0.3608 +vn 0.0000 -0.9326 0.3608 +vn -0.1459 -0.9212 0.3608 +vn -0.2177 -0.9069 0.3608 +vn -0.2882 -0.8870 0.3608 +vn -0.3569 -0.8616 0.3608 +vn -0.4234 -0.8310 0.3608 +vn -0.4873 -0.7952 0.3608 +vn -0.5482 -0.7545 0.3608 +vn -0.6057 -0.7092 0.3608 +vn -0.6595 -0.6595 0.3608 +vn -0.7092 -0.6057 0.3608 +vn -0.7545 -0.5482 0.3608 +vn -0.7952 -0.4873 0.3608 +vn -0.8310 -0.4234 0.3608 +vn -0.8616 -0.3569 0.3608 +vn -0.8870 -0.2882 0.3608 +vn -0.9069 -0.2177 0.3608 +vn -0.9212 -0.1459 0.3608 +vn -0.9298 -0.0732 0.3608 +vn 0.7620 -0.5407 0.3564 +vn 0.9285 -0.2200 0.2993 +vn 0.8483 -0.1170 0.5165 +vn 0.6732 -0.4304 0.6014 +vn 0.6240 -0.6929 0.3614 +vn 0.4866 -0.7956 0.3609 +vn 0.5469 -0.7555 0.3608 +vn 0.4234 -0.8310 0.3608 +vn 0.3569 -0.8616 0.3608 +vn 0.2882 -0.8870 0.3608 +vn 0.2177 -0.9069 0.3608 +vn 0.1459 -0.9212 0.3608 +vn 0.0732 -0.9298 0.3608 +vn -0.0577 -0.7330 0.6777 +vn 0.0000 -0.7353 0.6778 +vn -0.1150 -0.7262 0.6778 +vn -0.1717 -0.7150 0.6777 +vn -0.2272 -0.6993 0.6777 +vn -0.2814 -0.6793 0.6777 +vn -0.3338 -0.6552 0.6777 +vn -0.3842 -0.6270 0.6777 +vn -0.4322 -0.5949 0.6777 +vn -0.4775 -0.5591 0.6777 +vn -0.5199 -0.5199 0.6777 +vn -0.5591 -0.4775 0.6777 +vn -0.5949 -0.4322 0.6777 +vn -0.6270 -0.3842 0.6777 +vn -0.6552 -0.3338 0.6777 +vn -0.6793 -0.2814 0.6777 +vn -0.6993 -0.2272 0.6777 +vn -0.7150 -0.1717 0.6777 +vn -0.7262 -0.1150 0.6777 +vn -0.7330 -0.0577 0.6777 +vn 0.6365 -0.3912 0.6647 +vn 0.8160 -0.0730 0.5735 +vn 0.4969 -0.5447 0.6756 +vn 0.3837 -0.6273 0.6777 +vn 0.4311 -0.5956 0.6778 +vn 0.3338 -0.6552 0.6777 +vn 0.2814 -0.6793 0.6777 +vn 0.2272 -0.6993 0.6778 +vn 0.1717 -0.7150 0.6777 +vn 0.1150 -0.7262 0.6778 +vn 0.0577 -0.7330 0.6777 +vn 0.3795 -0.0819 0.9216 +vn 0.5855 0.1915 0.7877 +vn 0.4057 0.7581 0.5105 +vn 0.1645 0.6693 0.7246 +vn 0.5048 0.6699 0.5445 +vn 0.3050 0.8543 0.4209 +vn 0.0433 0.8004 0.5980 +vn 0.5946 0.7704 0.2300 +vn 0.5180 0.8228 0.2337 +vn 0.6591 0.7190 0.2207 +vn 0.1955 0.9522 0.2348 +vn -0.0981 0.9278 0.3600 +vn 0.1788 0.9809 0.0761 +vn 0.5102 0.8519 0.1183 +vn 0.5255 0.8503 0.0287 +vn 0.8221 0.3297 0.4642 +vn 0.7422 0.0165 0.6700 +vn 0.9092 0.2143 0.3569 +vn 0.7148 0.4597 0.5270 +vn 0.7996 0.5650 0.2035 +vn 0.7394 0.6403 0.2082 +vn 0.8597 0.4753 0.1872 +vn 0.9713 0.1403 0.1922 +vn 0.9872 0.1495 0.0563 +vn 0.8659 0.4911 0.0955 +vn 0.8562 0.5163 0.0188 +vn 0.6208 0.5583 0.5504 +vn 0.5690 0.6082 0.5534 +vn 0.7039 0.6803 0.2044 +vn 0.6849 0.6968 0.2133 +vn 0.1869 0.9818 0.0337 +vn 0.5365 0.8438 0.0126 +vn 0.1985 0.9771 0.0770 +vn 0.5439 0.8387 0.0284 +vn 0.9859 0.1665 0.0178 +vn 0.8498 0.5270 0.0058 +vn 0.9850 0.1725 0.0100 +vn 0.8468 0.5319 0.0032 +vn 0.2428 0.9477 0.2072 +vn 0.3126 0.8772 0.3644 +vn 0.5571 0.8270 0.0752 +vn 0.5704 0.8086 0.1441 +vn 0.5780 0.5939 0.5597 +vn 0.5452 0.6354 0.5468 +vn 0.5867 0.5864 0.5586 +vn 0.6752 0.6848 0.2743 +vn 0.6796 0.6797 0.2760 +vn 0.6614 0.7197 0.2111 +vn 0.5348 0.6436 0.5476 +vn 0.4101 0.7802 0.4723 +vn 0.6397 0.7163 0.2786 +vn 0.4893 0.8415 0.2290 +vn 0.4162 0.7574 0.5031 +vn 0.5876 0.7722 0.2417 +vn 0.2199 0.9211 0.3212 +vn 0.2208 0.9681 0.1186 +vn 0.2031 0.9789 0.0211 +vn -0.1422 0.9898 0.0013 +vn 0.2003 0.9797 -0.0017 +vn -0.1437 0.9896 -0.0026 +vn 0.5194 0.8531 0.0502 +vn 0.5229 0.8524 -0.0006 +vn 0.6583 0.4274 0.6196 +vn 0.6768 0.3578 0.6434 +vn 0.7585 0.4067 0.5092 +vn 0.7194 0.6289 0.2949 +vn 0.7576 0.6341 0.1549 +vn 0.7265 0.5956 0.3428 +vn 0.7965 0.1672 0.5810 +vn 0.9141 0.0087 0.4053 +vn 0.8090 0.4677 0.3561 +vn 0.9061 0.2863 0.3113 +vn 0.9680 -0.0504 0.2460 +vn 0.9947 -0.0374 0.0961 +vn 0.9246 0.3425 0.1668 +vn 0.9282 0.3698 0.0422 +vn 0.8721 0.3178 0.3722 +vn 0.9424 0.2298 0.2430 +vn 0.7936 0.5958 0.1232 +vn 0.8162 0.5731 0.0734 +vn 0.9699 0.1889 0.1539 +vn 0.9798 0.1849 0.0759 +vn 0.8290 0.5571 0.0494 +vn 0.8360 0.5481 0.0260 +vn 0.9993 -0.0005 0.0364 +vn 0.9199 0.3921 0.0115 +vn 0.9992 0.0303 0.0258 +vn 0.9132 0.4074 0.0057 +vn 0.7044 0.7074 0.0584 +vn 0.7053 0.7082 0.0300 +vn 0.7058 0.7059 0.0598 +vn 0.7071 0.7072 0.0000 +vn 0.6814 0.7292 0.0623 +vn 0.6869 0.7267 -0.0000 +vn 0.7275 0.6861 0.0052 +vn 0.7251 0.6886 0.0073 +vn 0.7296 0.6838 0.0027 +vn 0.7070 0.7072 -0.0000 +vn -0.0784 -0.9961 0.0403 +vn 0.0000 -0.9992 0.0403 +vn -0.1563 -0.9869 0.0403 +vn -0.2333 -0.9716 0.0403 +vn -0.3088 -0.9503 0.0403 +vn -0.3824 -0.9231 0.0403 +vn -0.4536 -0.8903 0.0403 +vn -0.5221 -0.8519 0.0403 +vn -0.5873 -0.8084 0.0403 +vn -0.6489 -0.7598 0.0403 +vn -0.7065 -0.7065 0.0403 +vn -0.7598 -0.6489 0.0403 +vn -0.8084 -0.5873 0.0403 +vn -0.8519 -0.5221 0.0403 +vn -0.8903 -0.4536 0.0403 +vn -0.9231 -0.3824 0.0403 +vn -0.9503 -0.3088 0.0403 +vn -0.9716 -0.2333 0.0403 +vn -0.9869 -0.1563 0.0403 +vn -0.9961 -0.0784 0.0403 +vn 0.8079 -0.5880 0.0406 +vn 0.9686 -0.2460 0.0363 +vn 0.6674 -0.7435 0.0407 +vn 0.5213 -0.8524 0.0403 +vn 0.5859 -0.8094 0.0403 +vn 0.4536 -0.8903 0.0403 +vn 0.3824 -0.9231 0.0403 +vn 0.3088 -0.9503 0.0403 +vn 0.2333 -0.9716 0.0403 +vn 0.1563 -0.9869 0.0403 +vn 0.0784 -0.9961 0.0403 +vn 0.9830 0.1816 0.0250 +vn 0.8419 0.5396 0.0086 +vn 0.7320 0.6813 0.0007 +vn 0.7334 0.6798 0.0001 +vn 0.7340 0.6791 0.0006 +vn 0.7364 0.6765 0.0031 +vn 0.6890 0.7241 0.0306 +vn 0.6865 0.7269 0.0197 +vn 0.7015 0.7126 0.0109 +vn 0.6853 0.7282 0.0101 +vn 0.6829 0.7305 0.0041 +vn 0.6813 0.7320 0.0019 +vn 0.6790 0.7341 0.0041 +vn 0.6669 0.7431 0.0554 +vn 0.7028 0.7103 0.0395 +vn 0.7065 0.7068 0.0351 +vn 0.7085 0.7049 0.0332 +vn 0.7133 0.7000 0.0356 +vn 0.7508 0.6589 0.0469 +vn 0.0785 0.9969 -0.0028 +vn -0.0000 1.0000 -0.0028 +vn -0.0000 1.0000 -0.0026 +vn 0.0785 0.9969 -0.0026 +vn 0.0785 0.9969 -0.0031 +vn 0.0000 1.0000 -0.0031 +vn 0.1564 0.9877 -0.0029 +vn 0.1564 0.9877 -0.0031 +vn 0.1564 0.9877 -0.0026 +vn 0.2334 0.9724 -0.0029 +vn 0.2334 0.9724 -0.0026 +vn 0.2334 0.9724 -0.0031 +vn 0.3090 0.9511 -0.0029 +vn 0.3090 0.9511 -0.0031 +vn 0.3090 0.9511 -0.0026 +vn 0.3827 0.9239 -0.0029 +vn 0.3827 0.9239 -0.0026 +vn 0.3827 0.9239 -0.0031 +vn 0.4540 0.8910 -0.0028 +vn 0.4540 0.8910 -0.0031 +vn 0.4540 0.8910 -0.0026 +vn 0.5225 0.8526 -0.0029 +vn 0.5225 0.8526 -0.0026 +vn 0.5225 0.8526 -0.0031 +vn 0.5878 0.8090 -0.0029 +vn 0.5878 0.8090 -0.0031 +vn 0.5878 0.8090 -0.0026 +vn 0.6494 0.7604 -0.0029 +vn 0.6494 0.7604 -0.0025 +vn 0.6494 0.7604 -0.0031 +vn 0.7071 0.7071 -0.0029 +vn 0.7071 0.7071 -0.0031 +vn 0.7071 0.7071 -0.0025 +vn 0.7604 0.6494 -0.0028 +vn 0.7604 0.6494 -0.0025 +vn 0.7604 0.6494 -0.0031 +vn 0.8090 0.5878 -0.0029 +vn 0.8090 0.5878 -0.0031 +vn 0.8090 0.5878 -0.0026 +vn 0.8526 0.5225 -0.0029 +vn 0.8526 0.5225 -0.0026 +vn 0.8526 0.5225 -0.0031 +vn 0.8910 0.4540 -0.0028 +vn 0.8910 0.4540 -0.0031 +vn 0.8910 0.4540 -0.0026 +vn 0.9239 0.3827 -0.0029 +vn 0.9239 0.3827 -0.0026 +vn 0.9239 0.3827 -0.0031 +vn 0.9511 0.3090 -0.0029 +vn 0.9511 0.3090 -0.0031 +vn 0.9511 0.3090 -0.0026 +vn 0.9724 0.2334 -0.0029 +vn 0.9724 0.2334 -0.0026 +vn 0.9724 0.2334 -0.0031 +vn 0.9877 0.1564 -0.0029 +vn 0.9877 0.1564 -0.0031 +vn 0.9877 0.1564 -0.0025 +vn 0.9969 0.0785 -0.0028 +vn 0.9969 0.0785 -0.0025 +vn 0.9969 0.0785 -0.0031 +vn -0.4914 0.8709 -0.0028 +vn -0.1437 0.9896 -0.0023 +vn -0.1435 0.9896 -0.0021 +vn -0.4914 0.8709 -0.0025 +vn -0.4915 0.8709 -0.0030 +vn -0.6494 0.7604 -0.0028 +vn -0.6495 0.7604 -0.0031 +vn -0.6495 0.7604 -0.0025 +vn -0.5218 0.8531 -0.0029 +vn -0.5864 0.8100 -0.0029 +vn -0.5864 0.8100 -0.0026 +vn -0.5218 0.8531 -0.0026 +vn -0.5218 0.8531 -0.0031 +vn -0.5864 0.8100 -0.0031 +vn -0.4540 0.8910 -0.0028 +vn -0.4540 0.8910 -0.0031 +vn -0.4540 0.8910 -0.0026 +vn -0.3827 0.9239 -0.0029 +vn -0.3827 0.9239 -0.0026 +vn -0.3827 0.9239 -0.0031 +vn -0.3090 0.9511 -0.0029 +vn -0.3090 0.9511 -0.0031 +vn -0.3090 0.9511 -0.0025 +vn -0.2334 0.9724 -0.0029 +vn -0.2334 0.9724 -0.0026 +vn -0.2334 0.9724 -0.0031 +vn -0.1564 0.9877 -0.0029 +vn -0.1564 0.9877 -0.0031 +vn -0.1564 0.9877 -0.0026 +vn -0.0785 0.9969 -0.0029 +vn -0.0785 0.9969 -0.0026 +vn -0.0785 0.9969 -0.0031 +vn 0.1999 0.9798 -0.0013 +vn -0.1434 0.9897 -0.0019 +vn 0.1998 0.9798 -0.0016 +vn 0.1998 0.9798 -0.0012 +vn 0.5221 0.8529 -0.0004 +vn 0.5220 0.8529 -0.0004 +vn 0.5224 0.8527 -0.0005 +vn 0.6868 0.7268 -0.0000 +vn 0.6868 0.7269 -0.0000 +vn 0.5915 0.5914 -0.5481 +vn 0.1609 0.1607 -0.9738 +vn 0.1623 0.1621 -0.9733 +vn 0.5922 0.5921 -0.5466 +vn 0.5909 0.5909 -0.5492 +vn 0.1599 0.1596 -0.9741 +vn 0.6436 0.5463 -0.5360 +vn 0.1803 0.1516 -0.9718 +vn 0.7813 0.3693 -0.5032 +vn 0.2460 0.1132 -0.9626 +vn 0.7636 0.6457 -0.0002 +vn 0.7866 0.6092 0.1008 +vn 0.7697 0.6384 0.0076 +vn 0.7146 0.6952 0.0777 +vn 0.7104 0.7010 0.0637 +vn 0.7105 0.7030 0.0316 +vn 0.5929 0.5928 -0.5450 +vn 0.1638 0.1635 -0.9728 +vn 0.1653 0.1650 -0.9723 +vn 0.5937 0.5936 -0.5433 +vn 0.1667 0.1666 -0.9718 +vn 0.1734 0.1730 -0.9695 +vn 0.5976 0.5973 -0.5349 +vn 0.5943 0.5943 -0.5418 +vn 0.1749 0.1747 -0.9690 +vn 0.5984 0.5982 -0.5330 +vn 0.7103 0.7039 0.0041 +vn 0.7157 0.6984 0.0027 +vn 0.2002 0.9798 -0.0015 +vn 0.5226 0.8526 -0.0005 +vn 0.6869 0.7268 -0.0000 +vn 0.0785 0.9969 -0.0032 +vn -0.0000 1.0000 -0.0032 +vn 0.3090 0.9511 -0.0032 +vn 0.3827 0.9239 -0.0032 +vn 0.5225 0.8526 -0.0032 +vn 0.5878 0.8090 -0.0032 +vn 0.7071 0.7071 -0.0033 +vn 0.7604 0.6494 -0.0033 +vn 0.8090 0.5878 -0.0032 +vn 0.8526 0.5225 -0.0032 +vn 0.9239 0.3827 -0.0032 +vn 0.9511 0.3090 -0.0032 +vn 0.9724 0.2334 -0.0032 +vn 0.9969 0.0785 -0.0032 +vn -0.4915 0.8709 -0.0031 +vn -0.6495 0.7604 -0.0033 +vn -0.5218 0.8531 -0.0032 +vn -0.5864 0.8100 -0.0032 +vn -0.3827 0.9239 -0.0032 +vn -0.3090 0.9511 -0.0032 +vn -0.0785 0.9969 -0.0032 +vn 0.7213 0.6926 0.0104 +vn -0.6337 0.7735 -0.0024 +vn -0.6337 0.7735 -0.0025 +vn -0.6495 0.7604 -0.0024 +vn -0.6337 0.7735 -0.0023 +vn -0.3804 0.4704 0.7963 +vn -0.2165 0.2716 0.9378 +vn -0.5381 0.6602 0.5240 +vn -0.0328 0.0449 0.9985 +vn 0.6355 -0.7712 0.0359 +vn 0.6359 -0.7716 0.0185 +vn 0.6307 -0.7651 0.1295 +vn 0.6076 -0.7385 0.2922 +vn 0.6271 -0.7623 0.1600 +vn 0.5734 -0.6967 0.4310 +vn -0.3965 0.8063 0.4389 +vn -0.2465 0.6506 0.7183 +vn 0.5551 -0.2852 0.7814 +vn -0.1072 0.4931 0.8634 +vn 0.6164 -0.7482 0.2454 +vn 0.5759 -0.6987 0.4244 +vn 0.6317 -0.7667 0.1148 +vn 0.4683 -0.5683 0.6766 +vn 0.2654 -0.3206 0.9093 +vn 0.5936 -0.7209 -0.3577 +vn 0.2669 -0.3243 -0.9075 +vn 0.2799 -0.3143 -0.9071 +vn 0.6204 -0.6979 -0.3577 +vn 0.5479 -0.7568 -0.3564 +vn 0.2479 -0.3424 -0.9063 +vn 0.6337 -0.7699 0.0750 +vn -0.6303 0.7739 0.0615 +vn -0.6267 0.7694 0.1232 +vn -0.2896 0.3590 0.8873 +vn -0.4837 0.5955 0.6414 +vn -0.0823 0.1064 0.9909 +vn -0.0563 0.0760 0.9955 +vn 0.0032 0.0029 1.0000 +vn -0.6259 0.7648 0.1526 +vn -0.6337 0.7735 -0.0033 +vn -0.0091 0.0175 0.9998 +vn -0.5890 0.7237 0.3596 +vn 0.1742 -0.2092 0.9622 +vn 0.2840 -0.3424 0.8956 +vn 0.5932 -0.7194 0.3612 +vn 0.4688 -0.5678 0.6766 +vn 0.0556 -0.0631 0.9965 +vn 0.6354 -0.7711 0.0403 +vn -0.6337 0.7735 -0.0029 +vn -0.6337 0.7735 -0.0031 +vn -0.6337 0.7735 -0.0032 +vn 0.0319 -0.0388 -0.9987 +vn 0.0297 -0.0410 -0.9987 +vn 0.0336 -0.0378 -0.9987 +vn -0.0196 0.0321 -0.9993 +vn -0.0220 0.0304 -0.9993 +vn -0.0171 0.0335 -0.9993 +vn 0.0194 -0.0468 -0.9987 +vn 0.1617 -0.3905 -0.9063 +vn 0.1306 -0.4020 -0.9063 +vn 0.0157 -0.0482 -0.9987 +vn 0.0230 -0.0451 -0.9987 +vn 0.1919 -0.3766 -0.9063 +vn -0.0088 0.0365 -0.9993 +vn -0.0116 0.0357 -0.9993 +vn -0.0059 0.0371 -0.9993 +vn 0.0040 -0.0505 -0.9987 +vn 0.0332 -0.4212 -0.9064 +vn 0.0000 -0.4228 -0.9062 +vn -0.0000 -0.0507 -0.9987 +vn 0.0079 -0.0500 -0.9987 +vn 0.0661 -0.4176 -0.9062 +vn 0.0029 0.0375 -0.9993 +vn -0.0000 0.0376 -0.9993 +vn 0.0059 0.0371 -0.9993 +vn -0.0118 -0.0492 -0.9987 +vn -0.0987 -0.4111 -0.9062 +vn -0.1306 -0.4020 -0.9063 +vn -0.0157 -0.0482 -0.9987 +vn -0.0079 -0.0500 -0.9987 +vn -0.0661 -0.4176 -0.9062 +vn -0.0194 -0.0468 -0.9987 +vn -0.1617 -0.3905 -0.9063 +vn -0.1919 -0.3766 -0.9063 +vn -0.0230 -0.0451 -0.9987 +vn 0.0196 0.0320 -0.9993 +vn 0.0171 0.0335 -0.9993 +vn 0.0221 0.0304 -0.9993 +vn -0.0329 -0.0385 -0.9987 +vn -0.2745 -0.3214 -0.9063 +vn -0.2989 -0.2989 -0.9063 +vn -0.0358 -0.0358 -0.9987 +vn -0.0298 -0.0410 -0.9987 +vn -0.2482 -0.3419 -0.9063 +vn 0.0286 0.0244 -0.9993 +vn 0.0266 0.0266 -0.9993 +vn 0.0304 0.0221 -0.9993 +vn -0.0431 -0.0264 -0.9987 +vn -0.3604 -0.2208 -0.9063 +vn -0.3766 -0.1919 -0.9063 +vn -0.0450 -0.0229 -0.9987 +vn -0.0409 -0.0297 -0.9987 +vn -0.3420 -0.2484 -0.9063 +vn 0.0347 0.0144 -0.9993 +vn 0.0335 0.0171 -0.9993 +vn 0.0357 0.0116 -0.9993 +vn -0.0491 -0.0118 -0.9987 +vn -0.4109 -0.0987 -0.9063 +vn -0.4175 -0.0661 -0.9063 +vn -0.0499 -0.0079 -0.9987 +vn -0.0481 -0.0156 -0.9987 +vn -0.4019 -0.1306 -0.9063 +vn 0.0375 0.0029 -0.9993 +vn 0.0371 0.0059 -0.9993 +vn -0.0242 0.0294 -0.9993 +vn -0.0253 0.0294 -0.9992 +vn -0.2107 0.2571 -0.9431 +vn -0.0144 0.0347 -0.9993 +vn -0.0029 0.0375 -0.9993 +vn 0.0088 0.0365 -0.9993 +vn 0.0116 0.0357 -0.9993 +vn 0.0144 0.0347 -0.9993 +vn 0.0244 0.0286 -0.9993 +vn 0.0320 0.0196 -0.9993 +vn 0.0365 0.0088 -0.9993 +vn 0.0264 -0.0432 -0.9987 +vn 0.2205 -0.3604 -0.9064 +vn 0.0118 -0.0492 -0.9987 +vn 0.0987 -0.4111 -0.9063 +vn -0.0040 -0.0505 -0.9987 +vn -0.0332 -0.4212 -0.9064 +vn -0.0265 -0.0432 -0.9987 +vn -0.2209 -0.3604 -0.9063 +vn -0.0384 -0.0328 -0.9987 +vn -0.3214 -0.2745 -0.9063 +vn -0.0467 -0.0193 -0.9987 +vn -0.3904 -0.1617 -0.9063 +vn -0.0504 -0.0040 -0.9987 +vn -0.4214 -0.0332 -0.9063 +vn 0.0827 -0.0257 -0.9962 +vn 0.4168 -0.0266 -0.9086 +vn 0.4561 -0.1564 -0.8761 +vn 0.3928 -0.2753 -0.8774 +vn 0.0257 0.0147 -0.9996 +vn -0.0060 0.0718 -0.9974 +vn 0.0757 0.4529 -0.8883 +vn 0.1609 0.2714 -0.9489 +vn 0.0198 0.0262 -0.9995 +vn 0.0208 0.0215 -0.9996 +vn 0.1883 0.1987 -0.9618 +vn 0.1888 0.1885 -0.9637 +vn 0.0208 0.0204 -0.9996 +vn 0.0200 0.0198 -0.9996 +vn 0.1838 0.1836 -0.9657 +vn 0.1790 0.1788 -0.9675 +vn 0.0194 0.0193 -0.9996 +vn 0.0191 0.0190 -0.9996 +vn 0.1767 0.1764 -0.9683 +vn 0.0188 0.0187 -0.9996 +vn 0.0185 0.0184 -0.9997 +vn 0.0180 0.0179 -0.9997 +vn 0.0177 0.0176 -0.9997 +vn 0.0175 0.0174 -0.9997 +vn 0.0173 0.0172 -0.9997 +vn 0.0171 0.0170 -0.9997 +vn 0.0170 0.0169 -0.9997 +vn 0.0188 0.0165 -0.9997 +vn 0.0785 0.9969 -0.0023 +vn 0.1564 0.9877 -0.0023 +vn 0.2334 0.9724 -0.0023 +vn 0.7604 0.6494 -0.0024 +vn 0.8090 0.5878 -0.0024 +vn 0.8526 0.5225 -0.0024 +vn 0.8910 0.4540 -0.0024 +vn 0.9239 0.3827 -0.0023 +vn 0.9877 0.1564 -0.0023 +vn -0.4540 0.8910 -0.0024 +vn -0.3827 0.9239 -0.0023 +vn -0.1564 0.9877 -0.0023 +vn -0.0785 0.9969 -0.0023 +vn -0.0733 -0.9315 -0.3563 +vn 0.0000 -0.9344 -0.3563 +vn -0.1462 -0.9229 -0.3563 +vn -0.2181 -0.9085 -0.3563 +vn -0.2887 -0.8886 -0.3564 +vn -0.3576 -0.8632 -0.3564 +vn -0.4242 -0.8325 -0.3564 +vn -0.4882 -0.7967 -0.3564 +vn -0.5492 -0.7559 -0.3563 +vn -0.6068 -0.7105 -0.3563 +vn -0.6607 -0.6607 -0.3563 +vn -0.7105 -0.6068 -0.3563 +vn -0.7559 -0.5492 -0.3563 +vn -0.7967 -0.4882 -0.3564 +vn -0.8325 -0.4242 -0.3564 +vn -0.8632 -0.3576 -0.3564 +vn -0.8886 -0.2887 -0.3564 +vn -0.9085 -0.2181 -0.3564 +vn -0.9228 -0.1462 -0.3564 +vn -0.9315 -0.0733 -0.3563 +vn 0.7319 -0.5967 -0.3292 +vn 0.8838 -0.2873 -0.3692 +vn 0.4875 -0.7970 -0.3565 +vn 0.4242 -0.8325 -0.3564 +vn 0.3576 -0.8632 -0.3564 +vn 0.2887 -0.8886 -0.3564 +vn 0.2181 -0.9085 -0.3564 +vn 0.1462 -0.9229 -0.3563 +vn 0.0733 -0.9315 -0.3563 +vn 0.9017 0.0570 -0.4286 +vn 0.2086 0.8956 -0.3929 +vn 0.4644 0.7446 -0.4795 +vn 0.6027 0.6026 -0.5232 +vn 0.6049 0.6048 -0.5180 +vn 0.6003 0.6002 -0.5287 +vn 0.5904 0.6243 -0.5115 +vn 0.5990 0.5989 -0.5316 +vn 0.7643 0.6448 0.0008 +vn -0.5605 0.6842 -0.4667 +vn 0.6327 -0.7690 0.0913 +vn -0.3054 0.9469 0.1009 +vn -0.4924 0.8678 0.0668 +vn -0.4996 0.8586 0.1151 +vn -0.3166 0.9327 0.1726 +vn -0.1100 0.9853 0.1305 +vn -0.1248 0.9671 0.2217 +vn -0.1059 0.9926 0.0594 +vn -0.3028 0.9520 0.0452 +vn -0.4911 0.8706 0.0294 +vn -0.9676 0.1447 0.2069 +vn -0.8366 -0.4250 0.3457 +vn -0.8385 -0.4287 0.3362 +vn -0.9698 0.1382 0.2010 +vn -0.9287 0.3447 0.1370 +vn -0.9293 0.3458 0.1299 +vn -0.9217 0.3508 0.1657 +vn -0.9565 0.1631 0.2420 +vn -0.8216 -0.4072 0.3990 +vn 0.8072 -0.5703 0.1525 +vn 0.6919 -0.7102 0.1302 +vn 0.7001 -0.7115 0.0595 +vn 0.8176 -0.5715 0.0706 +vn 0.8846 -0.4351 0.1679 +vn 0.8965 -0.4360 0.0784 +vn 0.8544 -0.4357 0.2831 +vn 0.7796 -0.5705 0.2583 +vn 0.6684 -0.7100 0.2215 +vn -0.0402 -0.8405 0.5403 +vn -0.0291 -0.9345 0.3548 +vn -0.0590 -0.9342 0.3518 +vn -0.0825 -0.8412 0.5344 +vn -0.0619 -0.3808 0.9226 +vn -0.1278 -0.3801 0.9161 +vn -0.0063 -0.3813 0.9244 +vn -0.0056 -0.8402 0.5423 +vn -0.0052 -0.9347 0.3555 +vn -0.5031 -0.8392 0.2065 +vn -0.3227 -0.9366 0.1365 +vn -0.3225 -0.9377 0.1290 +vn -0.5095 -0.8369 0.1999 +vn -0.8587 -0.3790 0.3450 +vn -0.8632 -0.3774 0.3353 +vn -0.8348 -0.3804 0.3981 +vn -0.4822 -0.8419 0.2421 +vn -0.3133 -0.9352 0.1653 +vn 0.0712 0.9857 0.1529 +vn 0.2248 0.9598 0.1682 +vn 0.2318 0.9696 0.0784 +vn 0.0769 0.9945 0.0705 +vn 0.0536 0.9645 0.2585 +vn 0.2052 0.9368 0.2833 +vn 0.3479 0.9205 0.1778 +vn 0.4439 0.8771 0.1835 +vn 0.4524 0.8876 0.0867 +vn 0.3557 0.9309 0.0835 +vn 0.3270 0.8966 0.2986 +vn 0.4224 0.8527 0.3074 +vn 0.0256 0.9322 0.3611 +vn 0.1745 0.9018 0.3954 +vn -0.1488 0.9390 0.3100 +vn -0.1773 0.9071 0.3817 +vn -0.0076 0.8955 0.4450 +vn 0.1383 0.8621 0.4875 +vn -0.3352 0.9106 0.2417 +vn -0.5121 0.8436 0.1614 +vn -0.5269 0.8265 0.1984 +vn -0.3574 0.8854 0.2973 +vn 0.5184 0.8345 0.1866 +vn 0.5765 0.7952 0.1880 +vn 0.5856 0.8057 0.0896 +vn 0.5273 0.8451 0.0886 +vn 0.4965 0.8100 0.3120 +vn 0.5544 0.7707 0.3141 +vn -0.3801 0.8595 0.3419 +vn -0.2066 0.8742 0.4394 +vn -0.5418 0.8090 0.2278 +vn -0.5565 0.7918 0.2518 +vn -0.4024 0.8337 0.3781 +vn -0.2356 0.8414 0.4863 +vn -0.3034 0.8698 0.3890 +vn 0.2609 0.7514 0.6061 +vn 0.2235 0.7069 0.6710 +vn -0.3272 0.8410 0.4310 +vn -0.2799 0.8986 0.3379 +vn 0.2982 0.7959 0.5269 +vn -0.3505 0.8130 0.4650 +vn -0.5707 0.7751 0.2712 +vn 0.1869 0.6639 0.7241 +vn 0.1520 0.6232 0.7671 +vn -0.3727 0.7864 0.4925 +vn -0.5839 0.7594 0.2869 +vn -0.3938 0.7617 0.5146 +vn -0.5963 0.7448 0.2995 +vn 0.1191 0.5853 0.8020 +vn 0.0881 0.5504 0.8302 +vn -0.4136 0.7388 0.5321 +vn -0.6076 0.7313 0.3097 +vn -0.4238 0.8089 0.4074 +vn -0.2634 0.8098 0.5242 +vn -0.4439 0.7856 0.4311 +vn -0.2896 0.7800 0.5548 +vn -0.0419 0.8575 0.5128 +vn 0.1007 0.8208 0.5623 +vn -0.0759 0.8196 0.5679 +vn 0.0634 0.7795 0.6232 +vn 0.2947 0.8600 0.4165 +vn 0.3891 0.8154 0.4285 +vn 0.2568 0.8186 0.5138 +vn 0.3503 0.7730 0.5289 +vn 0.4628 0.7725 0.4349 +vn 0.5205 0.7331 0.4377 +vn 0.4237 0.7296 0.5369 +vn 0.4813 0.6900 0.5405 +vn 0.2172 0.7753 0.5931 +vn 0.3097 0.7285 0.6110 +vn 0.1779 0.7319 0.6577 +vn 0.2693 0.6841 0.6779 +vn -0.1086 0.7830 0.6125 +vn 0.0274 0.7396 0.6725 +vn -0.1393 0.7484 0.6485 +vn -0.0065 0.7019 0.7123 +vn 0.6266 0.7562 0.1885 +vn 0.6546 0.7322 0.1884 +vn 0.6639 0.7424 0.0900 +vn 0.6358 0.7666 0.0899 +vn 0.6045 0.7318 0.3147 +vn 0.6325 0.7079 0.3144 +vn 0.5706 0.6944 0.4385 +vn 0.5987 0.6706 0.4381 +vn 0.5315 0.6513 0.5416 +vn 0.5597 0.6276 0.5412 +vn 0.3826 0.6845 0.6205 +vn 0.4401 0.6448 0.6250 +vn 0.3416 0.6395 0.6887 +vn 0.3989 0.5995 0.6939 +vn 0.6703 0.7179 0.1882 +vn 0.6797 0.7280 0.0900 +vn 0.6479 0.6940 0.3141 +vn 0.6755 0.6671 0.3140 +vn 0.6988 0.6901 0.1882 +vn 0.7086 0.6998 0.0900 +vn 0.1399 0.6901 0.7101 +vn 0.2302 0.6411 0.7321 +vn 0.1041 0.6505 0.7524 +vn 0.1933 0.6004 0.7760 +vn -0.4627 0.7638 0.4501 +vn -0.3139 0.7522 0.5794 +vn -0.4800 0.7436 0.4655 +vn -0.3364 0.7264 0.5993 +vn -0.4322 0.7177 0.5460 +vn 0.0591 0.5185 0.8530 +vn 0.0320 0.4894 0.8715 +vn -0.4496 0.6985 0.5567 +vn -0.6181 0.7189 0.3180 +vn -0.6277 0.7075 0.3247 +vn -0.4644 0.6823 0.5646 +vn -0.6359 0.6978 0.3296 +vn 0.0083 0.4652 0.8852 +vn -0.0125 0.4449 0.8955 +vn -0.4778 0.6687 0.5697 +vn -0.6428 0.6896 0.3335 +vn -0.4958 0.7251 0.4779 +vn -0.3570 0.7027 0.6154 +vn -0.5104 0.7081 0.4880 +vn -0.3759 0.6810 0.6284 +vn -0.1680 0.7161 0.6775 +vn -0.0381 0.6667 0.7444 +vn -0.1944 0.6863 0.7009 +vn -0.0672 0.6341 0.7703 +vn 0.3020 0.5960 0.7441 +vn 0.3591 0.5557 0.7498 +vn 0.2645 0.5547 0.7889 +vn 0.3215 0.5141 0.7952 +vn 0.0707 0.6135 0.7865 +vn 0.1589 0.5624 0.8114 +vn 0.0398 0.5792 0.8142 +vn 0.1270 0.5273 0.8402 +vn -0.2188 0.6588 0.7198 +vn -0.0941 0.6041 0.7913 +vn -0.2410 0.6336 0.7352 +vn -0.1187 0.5766 0.8084 +vn -0.5228 0.6937 0.4955 +vn -0.3921 0.6626 0.6382 +vn -0.5333 0.6814 0.5013 +vn -0.4057 0.6469 0.6457 +vn 0.0114 0.5477 0.8366 +vn 0.0977 0.4948 0.8635 +vn -0.0147 0.5187 0.8548 +vn 0.0707 0.4650 0.8825 +vn -0.2600 0.6122 0.7467 +vn -0.1396 0.5532 0.8212 +vn -0.2762 0.5939 0.7556 +vn -0.1575 0.5333 0.8312 +vn -0.5434 0.6695 0.5065 +vn -0.4189 0.6317 0.6523 +vn -0.6494 0.6817 0.3370 +vn -0.6553 0.6748 0.3396 +vn -0.5523 0.6592 0.5104 +vn -0.4304 0.6185 0.6575 +vn -0.4908 0.6557 0.5738 +vn -0.0327 0.4254 0.9044 +vn -0.0506 0.4086 0.9113 +vn -0.5019 0.6444 0.5769 +vn -0.5121 0.6351 0.5783 +vn -0.6602 0.6689 0.3416 +vn -0.0666 0.3950 0.9163 +vn -0.0821 0.3825 0.9203 +vn -0.5219 0.6265 0.5789 +vn -0.6648 0.6634 0.3434 +vn -0.5314 0.6187 0.5787 +vn -0.6691 0.6582 0.3450 +vn -0.0973 0.3711 0.9235 +vn -0.1121 0.3609 0.9258 +vn -0.5406 0.6115 0.5777 +vn -0.6732 0.6533 0.3464 +vn -0.5597 0.6504 0.5135 +vn -0.4401 0.6073 0.6615 +vn -0.5667 0.6421 0.5162 +vn -0.4492 0.5967 0.6649 +vn -0.2917 0.5763 0.7634 +vn -0.1746 0.5140 0.8398 +vn -0.3052 0.5610 0.7695 +vn -0.1897 0.4972 0.8466 +vn -0.5497 0.6050 0.5760 +vn -0.6771 0.6487 0.3475 +vn -0.1267 0.3518 0.9275 +vn -0.1412 0.3437 0.9284 +vn -0.5585 0.5992 0.5736 +vn -0.6807 0.6444 0.3485 +vn -0.5733 0.6344 0.5185 +vn -0.4578 0.5868 0.6679 +vn -0.5795 0.6271 0.5205 +vn -0.4658 0.5775 0.6705 +vn -0.3167 0.5479 0.7742 +vn -0.2023 0.4830 0.8519 +vn -0.3275 0.5357 0.7783 +vn -0.2143 0.4696 0.8565 +vn -0.0369 0.4942 0.8686 +vn 0.0478 0.4398 0.8968 +vn -0.0558 0.4732 0.8792 +vn 0.0283 0.4181 0.9079 +vn -0.0740 0.4529 0.8885 +vn 0.0095 0.3973 0.9176 +vn -0.0899 0.4352 0.8958 +vn -0.0070 0.3791 0.9253 +vn -0.1034 0.4202 0.9015 +vn -0.0209 0.3636 0.9313 +vn -0.1160 0.4061 0.9064 +vn -0.0340 0.3491 0.9365 +vn 0.1167 0.3917 0.9127 +vn 0.1726 0.3501 0.9207 +vn 0.1961 0.3760 0.9056 +vn 0.1400 0.4174 0.8979 +vn 0.0968 0.3697 0.9241 +vn 0.1525 0.3280 0.9323 +vn 0.0776 0.3486 0.9341 +vn 0.1332 0.3067 0.9424 +vn 0.0609 0.3301 0.9420 +vn 0.1163 0.2880 0.9505 +vn 0.1674 0.4476 0.8784 +vn 0.2237 0.4064 0.8859 +vn 0.2537 0.4395 0.8617 +vn 0.1972 0.4805 0.8545 +vn 0.2295 0.5162 0.8251 +vn 0.2863 0.4754 0.8319 +vn 0.2734 0.3676 0.8889 +vn 0.3020 0.3442 0.8890 +vn 0.3322 0.3773 0.8645 +vn 0.3036 0.4007 0.8645 +vn 0.2456 0.3372 0.9088 +vn 0.2742 0.3139 0.9090 +vn 0.3363 0.4366 0.8344 +vn 0.3649 0.4132 0.8344 +vn 0.4001 0.4519 0.7973 +vn 0.3716 0.4754 0.7975 +vn 0.4093 0.5169 0.7519 +vn 0.4378 0.4934 0.7516 +vn 0.4775 0.5371 0.6953 +vn 0.4491 0.5607 0.6956 +vn 0.4903 0.6060 0.6264 +vn 0.5187 0.5823 0.6260 +vn 0.4502 0.4825 0.7513 +vn 0.4906 0.5257 0.6950 +vn 0.4120 0.4416 0.7970 +vn 0.4299 0.4243 0.7970 +vn 0.4697 0.4637 0.7512 +vn 0.5118 0.5053 0.6948 +vn 0.6136 0.6572 0.4377 +vn 0.5740 0.6149 0.5408 +vn 0.5986 0.5911 0.5407 +vn 0.6398 0.6318 0.4376 +vn 0.5323 0.5703 0.6256 +vn 0.5552 0.5482 0.6255 +vn 0.3763 0.4034 0.8341 +vn 0.3431 0.3679 0.8642 +vn 0.3582 0.3534 0.8642 +vn 0.3927 0.3875 0.8340 +vn 0.7296 0.6575 0.1882 +vn 0.7399 0.6667 0.0900 +vn 0.7053 0.6356 0.3140 +vn 0.7339 0.6023 0.3140 +vn 0.7592 0.6231 0.1882 +vn 0.7699 0.6318 0.0900 +vn 0.7889 0.5851 0.1882 +vn 0.7999 0.5933 0.0900 +vn 0.7626 0.5656 0.3140 +vn 0.7894 0.5275 0.3140 +vn 0.8166 0.5456 0.1882 +vn 0.8281 0.5533 0.0900 +vn 0.6680 0.6019 0.4376 +vn 0.6249 0.5631 0.5407 +vn 0.6503 0.5337 0.5407 +vn 0.6951 0.5704 0.4376 +vn 0.8424 0.5049 0.1882 +vn 0.8543 0.5120 0.0900 +vn 0.8143 0.4881 0.3140 +vn 0.8373 0.4476 0.3140 +vn 0.8662 0.4630 0.1882 +vn 0.8783 0.4695 0.0900 +vn 0.8878 0.4199 0.1882 +vn 0.9003 0.4258 0.0900 +vn 0.8583 0.4059 0.3140 +vn 0.8771 0.3633 0.3140 +vn 0.9074 0.3758 0.1882 +vn 0.9201 0.3811 0.0900 +vn 0.7222 0.5356 0.4376 +vn 0.6757 0.5011 0.5407 +vn 0.6994 0.4674 0.5407 +vn 0.7476 0.4996 0.4376 +vn 0.7712 0.4623 0.4376 +vn 0.7216 0.4325 0.5407 +vn 0.7419 0.3966 0.5407 +vn 0.7930 0.4239 0.4376 +vn 0.8128 0.3844 0.4376 +vn 0.7605 0.3597 0.5406 +vn 0.7772 0.3219 0.5407 +vn 0.8307 0.3441 0.4376 +vn 0.6692 0.4011 0.6255 +vn 0.6168 0.3697 0.6949 +vn 0.6342 0.3390 0.6949 +vn 0.6881 0.3678 0.6255 +vn 0.6487 0.4335 0.6255 +vn 0.5979 0.3995 0.6949 +vn 0.7053 0.3336 0.6255 +vn 0.6501 0.3075 0.6949 +vn 0.6644 0.2752 0.6949 +vn 0.7208 0.2986 0.6255 +vn 0.9247 0.3309 0.1882 +vn 0.9377 0.3355 0.0900 +vn 0.8939 0.3198 0.3140 +vn 0.9085 0.2756 0.3140 +vn 0.9398 0.2851 0.1882 +vn 0.9531 0.2891 0.0900 +vn 0.9527 0.2386 0.1882 +vn 0.9661 0.2420 0.0900 +vn 0.9210 0.2307 0.3140 +vn 0.9312 0.1852 0.3140 +vn 0.9633 0.1916 0.1882 +vn 0.9768 0.1943 0.0900 +vn 0.8466 0.3029 0.4376 +vn 0.7921 0.2834 0.5406 +vn 0.8050 0.2442 0.5406 +vn 0.8605 0.2610 0.4376 +vn 0.9711 0.1469 0.1882 +vn 0.9847 0.1489 0.0900 +vn 0.9387 0.1420 0.3140 +vn 0.9443 0.0990 0.3140 +vn 0.9768 0.1024 0.1882 +vn 0.9905 0.1038 0.0900 +vn 0.8722 0.2185 0.4376 +vn 0.8160 0.2044 0.5406 +vn 0.8251 0.1641 0.5406 +vn 0.8819 0.1754 0.4376 +vn 0.9801 0.0627 0.1882 +vn 0.9939 0.0636 0.0900 +vn 0.9475 0.0606 0.3141 +vn 0.9485 0.0399 0.3144 +vn 0.9812 0.0415 0.1884 +vn 0.9951 0.0422 0.0900 +vn 0.8891 0.1345 0.4376 +vn 0.8318 0.1258 0.5407 +vn 0.8366 0.0877 0.5407 +vn 0.8943 0.0937 0.4376 +vn 0.9821 0.0046 0.1884 +vn 0.9804 -0.0589 0.1879 +vn 0.9946 -0.0586 0.0855 +vn 0.9959 0.0052 0.0900 +vn 0.9492 0.0030 0.3147 +vn 0.9475 -0.0603 0.3141 +vn 0.8973 0.0573 0.4377 +vn 0.8395 0.0536 0.5407 +vn 0.8402 0.0345 0.5412 +vn 0.8982 0.0374 0.4381 +vn 0.8988 0.0006 0.4384 +vn 0.8969 -0.0627 0.4377 +vn 0.8407 -0.0023 0.5415 +vn 0.8388 -0.0657 0.5405 +vn 0.9740 -0.1287 0.1864 +vn 0.9596 -0.2133 0.1833 +vn 0.9729 -0.2133 0.0891 +vn 0.9877 -0.1286 0.0886 +vn 0.9412 -0.1301 0.3119 +vn 0.9271 -0.2144 0.3073 +vn 0.9323 -0.3151 0.1776 +vn 0.9452 -0.3156 0.0835 +vn 0.9006 -0.3160 0.2985 +vn 0.8518 -0.3178 0.4164 +vn 0.8079 -0.4372 0.3953 +vn 0.8772 -0.2165 0.4285 +vn 0.8198 -0.2195 0.5289 +vn 0.7957 -0.3208 0.5138 +vn 0.7541 -0.4400 0.4875 +vn 0.7795 -0.0054 0.6264 +vn 0.7776 -0.0688 0.6250 +vn 0.7792 0.0315 0.6260 +vn 0.7181 0.0284 0.6953 +vn 0.7184 -0.0085 0.6956 +vn 0.7165 -0.0719 0.6939 +vn 0.7785 0.0497 0.6256 +vn 0.7176 0.0457 0.6950 +vn 0.7759 0.0814 0.6255 +vn 0.7152 0.0751 0.6949 +vn 0.7718 -0.1385 0.6206 +vn 0.7597 -0.2227 0.6110 +vn 0.8327 -0.1353 0.5369 +vn 0.7110 -0.1416 0.6888 +vn 0.6996 -0.2258 0.6779 +vn 0.7714 0.1167 0.6256 +vn 0.7110 0.1076 0.6949 +vn 0.7652 0.1522 0.6255 +vn 0.7053 0.1403 0.6949 +vn 0.6592 -0.0115 0.7519 +vn 0.6574 -0.0749 0.7498 +vn 0.6591 0.0255 0.7516 +vn 0.6031 0.0226 0.7973 +vn 0.6032 -0.0144 0.7975 +vn 0.6014 -0.0777 0.7952 +vn 0.6586 0.0419 0.7513 +vn 0.6028 0.0383 0.7970 +vn 0.6564 0.0689 0.7512 +vn 0.6008 0.0631 0.7969 +vn 0.7568 0.1896 0.6255 +vn 0.6976 0.1747 0.6949 +vn 0.7466 0.2265 0.6255 +vn 0.6882 0.2088 0.6949 +vn 0.6526 0.0988 0.7512 +vn 0.5972 0.0904 0.7970 +vn 0.6474 0.1288 0.7512 +vn 0.5925 0.1178 0.7969 +vn 0.7346 0.2628 0.6255 +vn 0.6771 0.2423 0.6949 +vn 0.6403 0.1604 0.7512 +vn 0.5860 0.1468 0.7969 +vn 0.6316 0.1916 0.7512 +vn 0.5781 0.1754 0.7969 +vn 0.6215 0.2224 0.7512 +vn 0.5688 0.2035 0.7969 +vn 0.6098 0.2526 0.7512 +vn 0.5581 0.2312 0.7969 +vn 0.5967 0.2822 0.7512 +vn 0.5461 0.2583 0.7969 +vn 0.5821 0.3111 0.7512 +vn 0.5327 0.2848 0.7969 +vn 0.5352 0.1341 0.8340 +vn 0.4881 0.1223 0.8642 +vn 0.4935 0.0982 0.8642 +vn 0.5411 0.1076 0.8340 +vn 0.5280 0.1602 0.8340 +vn 0.4815 0.1461 0.8642 +vn 0.5195 0.1859 0.8340 +vn 0.4738 0.1695 0.8642 +vn 0.5097 0.2111 0.8340 +vn 0.4649 0.1926 0.8642 +vn 0.5455 0.0826 0.8340 +vn 0.4975 0.0754 0.8642 +vn 0.5004 0.0527 0.8642 +vn 0.5487 0.0577 0.8340 +vn 0.5505 0.0349 0.8341 +vn 0.5021 0.0318 0.8642 +vn 0.5024 0.0175 0.8645 +vn 0.5509 0.0200 0.8344 +vn 0.4532 0.0687 0.8887 +vn 0.4125 0.0626 0.9088 +vn 0.4150 0.0438 0.9088 +vn 0.4559 0.0481 0.8887 +vn 0.4496 0.0894 0.8887 +vn 0.4093 0.0814 0.9088 +vn 0.5508 -0.0171 0.8344 +vn 0.5491 -0.0803 0.8319 +vn 0.5023 -0.0196 0.8645 +vn 0.5007 -0.0827 0.8617 +vn 0.4574 0.0289 0.8888 +vn 0.4164 0.0262 0.9088 +vn 0.4166 0.0129 0.9090 +vn 0.4577 0.0151 0.8890 +vn 0.4576 -0.0219 0.8889 +vn 0.4560 -0.0849 0.8859 +vn 0.4165 -0.0241 0.9088 +vn 0.4150 -0.0870 0.9057 +vn 0.6522 -0.1446 0.7441 +vn 0.6416 -0.2288 0.7321 +vn 0.5966 -0.1474 0.7889 +vn 0.5868 -0.2315 0.7759 +vn 0.5446 -0.1500 0.8251 +vn 0.5356 -0.2340 0.8114 +vn 0.4965 -0.1524 0.8545 +vn 0.4881 -0.2363 0.8402 +vn 0.7370 -0.3239 0.5932 +vn 0.6983 -0.4428 0.5624 +vn 0.6786 -0.3268 0.6578 +vn 0.6427 -0.4455 0.6233 +vn 0.7369 -0.5716 0.3610 +vn 0.6316 -0.7107 0.3099 +vn 0.6874 -0.5739 0.4450 +vn 0.5887 -0.7125 0.3818 +vn 0.6222 -0.3296 0.7101 +vn 0.5891 -0.4480 0.6725 +vn 0.5688 -0.3322 0.7524 +vn 0.5384 -0.4503 0.7123 +vn 0.6362 -0.5764 0.5128 +vn 0.5446 -0.7143 0.4395 +vn 0.5854 -0.5786 0.5680 +vn 0.5010 -0.7159 0.4864 +vn 0.4913 -0.8368 0.2415 +vn 0.3273 -0.9311 0.1613 +vn 0.3468 -0.9309 0.1149 +vn 0.5202 -0.8365 0.1724 +vn 0.4576 -0.8380 0.2974 +vn 0.3046 -0.9316 0.1984 +vn 0.5530 -0.7871 0.2733 +vn 0.8615 -0.2748 0.4271 +vn 0.9125 -0.2752 0.3028 +vn 0.5840 -0.7883 0.1936 +vn 0.5172 -0.7863 0.3380 +vn 0.8042 -0.2749 0.5269 +vn 0.4232 -0.8391 0.3419 +vn 0.2816 -0.9321 0.2279 +vn 0.3892 -0.8399 0.3782 +vn 0.2590 -0.9325 0.2518 +vn 0.5364 -0.5806 0.6125 +vn 0.4589 -0.7174 0.5242 +vn 0.4901 -0.5825 0.6485 +vn 0.4192 -0.7186 0.5548 +vn 0.4800 -0.7862 0.3892 +vn 0.7462 -0.2755 0.6060 +vn 0.4426 -0.7863 0.4311 +vn 0.6881 -0.2761 0.6710 +vn 0.3564 -0.8408 0.4074 +vn 0.2371 -0.9329 0.2712 +vn 0.3256 -0.8415 0.4311 +vn 0.2166 -0.9331 0.2869 +vn 0.4062 -0.7865 0.4652 +vn 0.6317 -0.2770 0.7240 +vn 0.3716 -0.7869 0.4927 +vn 0.5782 -0.2782 0.7670 +vn 0.4470 -0.5842 0.6775 +vn 0.3822 -0.7198 0.5794 +vn 0.4912 -0.4524 0.7444 +vn 0.4475 -0.4543 0.7703 +vn 0.4071 -0.5857 0.7009 +vn 0.3481 -0.7209 0.5993 +vn 0.3390 -0.7875 0.5147 +vn 0.5279 -0.2796 0.8020 +vn 0.1975 -0.9334 0.2995 +vn 0.1798 -0.9336 0.3098 +vn 0.3088 -0.7882 0.5323 +vn 0.4813 -0.2814 0.8302 +vn 0.2968 -0.8422 0.4501 +vn 0.2703 -0.8428 0.4655 +vn 0.2807 -0.7893 0.5461 +vn 0.4383 -0.2836 0.8529 +vn 0.1636 -0.9339 0.3180 +vn 0.1487 -0.9340 0.3247 +vn 0.2548 -0.7905 0.5569 +vn 0.3986 -0.2861 0.8714 +vn 0.2459 -0.8433 0.4779 +vn 0.3167 -0.7218 0.6154 +vn 0.2879 -0.7226 0.6284 +vn 0.2236 -0.8437 0.4880 +vn 0.2329 -0.7917 0.5648 +vn 0.3649 -0.2890 0.8851 +vn 0.1361 -0.9343 0.3296 +vn 0.1253 -0.9344 0.3335 +vn 0.2139 -0.7935 0.5698 +vn 0.3360 -0.2923 0.8954 +vn 0.1956 -0.7952 0.5740 +vn 0.3081 -0.2955 0.9043 +vn 0.1150 -0.9345 0.3369 +vn 0.1059 -0.9346 0.3396 +vn 0.1798 -0.7966 0.5771 +vn 0.2837 -0.2987 0.9112 +vn 0.2045 -0.8442 0.4955 +vn 0.2635 -0.7234 0.6382 +vn 0.2426 -0.7240 0.6457 +vn 0.1884 -0.8445 0.5013 +vn 0.1728 -0.8447 0.5065 +vn 0.2226 -0.7245 0.6523 +vn 0.2050 -0.7251 0.6575 +vn 0.1592 -0.8451 0.5104 +vn 0.1477 -0.8453 0.5135 +vn 0.0982 -0.9347 0.3416 +vn 0.1902 -0.7254 0.6615 +vn 0.1763 -0.7258 0.6649 +vn 0.1369 -0.8455 0.5162 +vn 0.0911 -0.9347 0.3435 +vn 0.2605 -0.5911 0.7634 +vn 0.2865 -0.4611 0.8398 +vn 0.2640 -0.4620 0.8467 +vn 0.2400 -0.5918 0.7695 +vn 0.2839 -0.5903 0.7556 +vn 0.3123 -0.4600 0.8312 +vn 0.2226 -0.5924 0.7743 +vn 0.2450 -0.4628 0.8519 +vn 0.2271 -0.4635 0.8565 +vn 0.2063 -0.5930 0.7783 +vn 0.3083 -0.5894 0.7467 +vn 0.3391 -0.4589 0.8212 +vn 0.3368 -0.5883 0.7352 +vn 0.3704 -0.4575 0.8084 +vn 0.3705 -0.5870 0.7198 +vn 0.4073 -0.4560 0.7913 +vn 0.3031 -0.3445 0.8885 +vn 0.3131 -0.2447 0.9177 +vn 0.2886 -0.2459 0.9253 +vn 0.2794 -0.3456 0.8958 +vn 0.3304 -0.3433 0.8792 +vn 0.3412 -0.2434 0.9079 +vn 0.3586 -0.3420 0.8686 +vn 0.3703 -0.2420 0.8968 +vn 0.3917 -0.3405 0.8548 +vn 0.4044 -0.2403 0.8825 +vn 0.4306 -0.3387 0.8366 +vn 0.4445 -0.2384 0.8635 +vn 0.4730 -0.3367 0.8142 +vn 0.5191 -0.3346 0.7865 +vn 0.4522 -0.1546 0.8784 +vn 0.4114 -0.1566 0.8979 +vn 0.3768 -0.1583 0.9127 +vn 0.3801 -0.0887 0.9207 +vn 0.3503 -0.0901 0.9323 +vn 0.3472 -0.1597 0.9241 +vn 0.3815 -0.0260 0.9240 +vn 0.3817 0.0110 0.9242 +vn 0.3518 0.0093 0.9360 +vn 0.3516 -0.0276 0.9357 +vn 0.3814 0.0239 0.9241 +vn 0.3516 0.0220 0.9359 +vn 0.3801 0.0402 0.9241 +vn 0.3504 0.0372 0.9359 +vn 0.3187 -0.1611 0.9341 +vn 0.3216 -0.0916 0.9424 +vn 0.2964 -0.0928 0.9505 +vn 0.2938 -0.1623 0.9420 +vn 0.3228 -0.0292 0.9460 +vn 0.3230 0.0077 0.9464 +vn 0.2978 0.0062 0.9546 +vn 0.2976 -0.0307 0.9542 +vn 0.3228 0.0201 0.9463 +vn 0.2976 0.0185 0.9545 +vn 0.3217 0.0342 0.9462 +vn 0.2965 0.0316 0.9545 +vn 0.3779 0.0573 0.9241 +vn 0.3483 0.0529 0.9359 +vn 0.3749 0.0746 0.9241 +vn 0.3456 0.0687 0.9359 +vn 0.4447 0.1114 0.8887 +vn 0.4048 0.1014 0.9088 +vn 0.4387 0.1331 0.8887 +vn 0.3993 0.1211 0.9088 +vn 0.3198 0.0486 0.9462 +vn 0.2948 0.0448 0.9545 +vn 0.3173 0.0631 0.9462 +vn 0.2925 0.0582 0.9545 +vn 0.3708 0.0929 0.9241 +vn 0.3418 0.0856 0.9359 +vn 0.3658 0.1110 0.9241 +vn 0.3372 0.1023 0.9359 +vn 0.2762 0.0171 0.9609 +vn 0.2561 0.0157 0.9665 +vn 0.2563 0.0036 0.9666 +vn 0.2764 0.0049 0.9610 +vn 0.2752 0.0294 0.9609 +vn 0.2552 0.0274 0.9665 +vn 0.2762 -0.0320 0.9606 +vn 0.2751 -0.0938 0.9568 +vn 0.2561 -0.0332 0.9661 +vn 0.2551 -0.0948 0.9623 +vn 0.2726 -0.1634 0.9481 +vn 0.2678 -0.2469 0.9313 +vn 0.2528 -0.1643 0.9535 +vn 0.2482 -0.2478 0.9365 +vn 0.2736 0.0416 0.9609 +vn 0.2537 0.0386 0.9665 +vn 0.2715 0.0540 0.9609 +vn 0.2517 0.0501 0.9665 +vn 0.2372 -0.0345 0.9708 +vn 0.2362 -0.0957 0.9670 +vn 0.2374 0.0023 0.9714 +vn 0.2196 0.0009 0.9756 +vn 0.2194 -0.0357 0.9750 +vn 0.2185 -0.0966 0.9710 +vn 0.2372 0.0145 0.9713 +vn 0.2194 0.0133 0.9755 +vn 0.2364 0.0254 0.9713 +vn 0.2186 0.0236 0.9755 +vn 0.2592 -0.3465 0.9015 +vn 0.2403 -0.3473 0.9064 +vn 0.2341 -0.1652 0.9581 +vn 0.2299 -0.2486 0.9409 +vn 0.2164 -0.1661 0.9621 +vn 0.2125 -0.2494 0.9448 +vn 0.2225 -0.3481 0.9107 +vn 0.2102 -0.4642 0.8604 +vn 0.2057 -0.3488 0.9143 +vn 0.1943 -0.4648 0.8638 +vn 0.1910 -0.5935 0.7819 +vn 0.1632 -0.7261 0.6679 +vn 0.1766 -0.5939 0.7849 +vn 0.1509 -0.7264 0.6705 +vn 0.1998 -0.1668 0.9655 +vn 0.1962 -0.2502 0.9481 +vn 0.2017 -0.0974 0.9746 +vn 0.1859 -0.0982 0.9777 +vn 0.1841 -0.1676 0.9685 +vn 0.1808 -0.2509 0.9510 +vn 0.1267 -0.8456 0.5185 +vn 0.0843 -0.9348 0.3450 +vn 0.1171 -0.8458 0.5205 +vn 0.0779 -0.9349 0.3464 +vn 0.1899 -0.3495 0.9175 +vn 0.1794 -0.4654 0.8667 +vn 0.1750 -0.3502 0.9202 +vn 0.1653 -0.4659 0.8692 +vn 0.1630 -0.5944 0.7875 +vn 0.1392 -0.7267 0.6727 +vn 0.1502 -0.5948 0.7897 +vn 0.1283 -0.7270 0.6745 +vn 0.1412 -0.8031 0.5789 +vn 0.2252 -0.3110 0.9234 +vn 0.2435 -0.3065 0.9202 +vn 0.1533 -0.8007 0.5791 +vn 0.1298 -0.8057 0.5779 +vn 0.2078 -0.3160 0.9257 +vn 0.1661 -0.7986 0.5785 +vn 0.2630 -0.3024 0.9162 +vn 0.1081 -0.8459 0.5222 +vn 0.0719 -0.9349 0.3475 +vn 0.0996 -0.8461 0.5237 +vn 0.0663 -0.9350 0.3485 +vn 0.1190 -0.8086 0.5762 +vn 0.1915 -0.3215 0.9273 +vn 0.1089 -0.8117 0.5738 +vn 0.1761 -0.3276 0.9283 +vn 0.0993 -0.8151 0.5707 +vn 0.1615 -0.3343 0.9285 +vn 0.0609 -0.9350 0.3493 +vn 0.0559 -0.9350 0.3501 +vn 0.0902 -0.8189 0.5668 +vn 0.1476 -0.3417 0.9281 +vn 0.0915 -0.8462 0.5249 +vn 0.1179 -0.7272 0.6762 +vn 0.1081 -0.7275 0.6775 +vn 0.0839 -0.8463 0.5260 +vn 0.0767 -0.8464 0.5270 +vn 0.0511 -0.9351 0.3507 +vn 0.0988 -0.7277 0.6787 +vn 0.0901 -0.7279 0.6797 +vn 0.0699 -0.8465 0.5277 +vn 0.0465 -0.9351 0.3512 +vn 0.1380 -0.5952 0.7916 +vn 0.1519 -0.4665 0.8714 +vn 0.1393 -0.4670 0.8732 +vn 0.1266 -0.5956 0.7932 +vn 0.1157 -0.5960 0.7946 +vn 0.1274 -0.4674 0.8748 +vn 0.1161 -0.4679 0.8761 +vn 0.1054 -0.5963 0.7958 +vn 0.1609 -0.3508 0.9225 +vn 0.1662 -0.2516 0.9535 +vn 0.1525 -0.2522 0.9556 +vn 0.1475 -0.3514 0.9245 +vn 0.1349 -0.3519 0.9263 +vn 0.1394 -0.2528 0.9574 +vn 0.1270 -0.2534 0.9590 +vn 0.1229 -0.3524 0.9277 +vn 0.1693 -0.1683 0.9711 +vn 0.1709 -0.0989 0.9803 +vn 0.1568 -0.0996 0.9826 +vn 0.1553 -0.1690 0.9733 +vn 0.1420 -0.1696 0.9752 +vn 0.1434 -0.1003 0.9846 +vn 0.1307 -0.1009 0.9863 +vn 0.1294 -0.1702 0.9769 +vn 0.1142 -0.3529 0.9287 +vn 0.1079 -0.4682 0.8770 +vn 0.1181 -0.2538 0.9600 +vn 0.1143 -0.2540 0.9604 +vn 0.1106 -0.3530 0.9291 +vn 0.1044 -0.4684 0.8773 +vn 0.1203 -0.1707 0.9780 +vn 0.1215 -0.1013 0.9874 +vn 0.1175 -0.1015 0.9879 +vn 0.1164 -0.1708 0.9784 +vn 0.1440 -0.0425 0.9887 +vn 0.1442 -0.0067 0.9895 +vn 0.1315 -0.0088 0.9913 +vn 0.1313 -0.0442 0.9904 +vn 0.1575 -0.0409 0.9867 +vn 0.1577 -0.0049 0.9875 +vn 0.0980 -0.5966 0.7965 +vn 0.0837 -0.7282 0.6802 +vn 0.0948 -0.5967 0.7968 +vn 0.0810 -0.7283 0.6805 +vn 0.1220 -0.0460 0.9915 +vn 0.1223 -0.0112 0.9924 +vn 0.1183 -0.0133 0.9929 +vn 0.1181 -0.0475 0.9919 +vn 0.0650 -0.8467 0.5281 +vn 0.0432 -0.9352 0.3514 +vn 0.0629 -0.8468 0.5282 +vn 0.0419 -0.9353 0.3515 +vn 0.0816 -0.8230 0.5621 +vn 0.0735 -0.8275 0.5566 +vn 0.1345 -0.3499 0.9271 +vn 0.1221 -0.3590 0.9253 +vn 0.0675 -0.8321 0.5505 +vn 0.1130 -0.3689 0.9226 +vn 0.0647 -0.8359 0.5451 +vn 0.1091 -0.3769 0.9198 +vn 0.0811 -0.5967 0.7984 +vn 0.0695 -0.7280 0.6820 +vn 0.0890 -0.4686 0.8789 +vn 0.0609 -0.4696 0.8808 +vn 0.0558 -0.5974 0.8000 +vn 0.0481 -0.7284 0.6834 +vn 0.0556 -0.8386 0.5419 +vn 0.0947 -0.3806 0.9199 +vn 0.0362 -0.9350 0.3529 +vn 0.0256 -0.9350 0.3537 +vn 0.0398 -0.8387 0.5431 +vn 0.0681 -0.3807 0.9222 +vn 0.0541 -0.8464 0.5298 +vn 0.0378 -0.8466 0.5309 +vn 0.0211 -0.8393 0.5432 +vn 0.0375 -0.3810 0.9238 +vn 0.0130 -0.9349 0.3547 +vn 0.0185 -0.8465 0.5320 +vn 0.0227 -0.7286 0.6846 +vn -0.0139 -0.7288 0.6846 +vn -0.0095 -0.8464 0.5325 +vn 0.0255 -0.5979 0.8012 +vn 0.0272 -0.4705 0.8820 +vn -0.0210 -0.4718 0.8815 +vn -0.0179 -0.5986 0.8008 +vn -0.0463 -0.8463 0.5306 +vn -0.0622 -0.7292 0.6815 +vn -0.1223 -0.7297 0.6728 +vn -0.0924 -0.8462 0.5247 +vn -0.0750 -0.5997 0.7967 +vn -0.0845 -0.4736 0.8767 +vn -0.1634 -0.4758 0.8643 +vn -0.1462 -0.6011 0.7857 +vn -0.1492 -0.8463 0.5114 +vn -0.1956 -0.7304 0.6544 +vn -0.2791 -0.7316 0.6220 +vn -0.2147 -0.8466 0.4871 +vn -0.0966 -0.9339 0.3441 +vn -0.1406 -0.9339 0.3288 +vn -0.1362 -0.8422 0.5217 +vn -0.2115 -0.3795 0.9007 +vn -0.2005 -0.8431 0.4989 +vn -0.3128 -0.3788 0.8710 +vn -0.2320 -0.6028 0.7634 +vn -0.2580 -0.4785 0.8393 +vn -0.3646 -0.4818 0.7968 +vn -0.3291 -0.6050 0.7250 +vn -0.4329 -0.6075 0.6660 +vn -0.3695 -0.7330 0.5712 +vn -0.4775 -0.4854 0.7324 +vn -0.5857 -0.4893 0.6462 +vn -0.5323 -0.6104 0.5866 +vn -0.4563 -0.7348 0.5019 +vn -0.5070 -0.3753 0.7759 +vn -0.5257 -0.2802 0.8032 +vn -0.6431 -0.2854 0.7106 +vn -0.6209 -0.3799 0.6857 +vn -0.3882 -0.3708 0.8437 +vn -0.4033 -0.2750 0.8728 +vn -0.2755 -0.3666 0.8887 +vn -0.2866 -0.2702 0.9192 +vn -0.1751 -0.3630 0.9152 +vn -0.1827 -0.2660 0.9465 +vn -0.0911 -0.3601 0.9285 +vn -0.0954 -0.2625 0.9602 +vn -0.0234 -0.3577 0.9335 +vn -0.0251 -0.2596 0.9654 +vn -0.5370 -0.1998 0.8196 +vn -0.5435 -0.1323 0.8289 +vn -0.6643 -0.1381 0.7346 +vn -0.6566 -0.2053 0.7258 +vn -0.4124 -0.1942 0.8901 +vn -0.4177 -0.1264 0.8998 +vn 0.0280 -0.3559 0.9341 +vn 0.0284 -0.2575 0.9659 +vn 0.0641 -0.3547 0.9328 +vn 0.0659 -0.2560 0.9644 +vn -0.2935 -0.1889 0.9371 +vn -0.2975 -0.1208 0.9471 +vn -0.1875 -0.1842 0.9648 +vn -0.1902 -0.1158 0.9749 +vn -0.0982 -0.1803 0.9787 +vn -0.0998 -0.1116 0.9887 +vn -0.0263 -0.1771 0.9838 +vn -0.0271 -0.1083 0.9937 +vn 0.0940 -0.3535 0.9307 +vn 0.0971 -0.2546 0.9622 +vn 0.0285 -0.1748 0.9842 +vn 0.0284 -0.1057 0.9940 +vn 0.0668 -0.1731 0.9826 +vn 0.0673 -0.1039 0.9923 +vn 0.0988 -0.1716 0.9802 +vn 0.0996 -0.1023 0.9898 +vn -0.1006 -0.0589 0.9932 +vn -0.1007 -0.0256 0.9946 +vn -0.1919 -0.0302 0.9810 +vn -0.1915 -0.0633 0.9794 +vn -0.0274 -0.0553 0.9981 +vn -0.0274 -0.0218 0.9994 +vn 0.1000 -0.0489 0.9938 +vn 0.1003 -0.0151 0.9948 +vn 0.0677 -0.0169 0.9976 +vn 0.0675 -0.0505 0.9964 +vn 0.0284 -0.0525 0.9982 +vn 0.0285 -0.0190 0.9994 +vn 0.1004 0.0033 0.9949 +vn 0.0678 0.0008 0.9977 +vn 0.1181 0.0048 0.9930 +vn 0.1175 0.0140 0.9930 +vn 0.0997 0.0120 0.9949 +vn 0.0673 0.0081 0.9977 +vn 0.0288 -0.0022 0.9996 +vn -0.0269 -0.0065 0.9996 +vn 0.0284 0.0034 0.9996 +vn -0.0271 -0.0033 0.9996 +vn -0.1000 -0.0121 0.9949 +vn -0.1910 -0.0191 0.9814 +vn -0.1906 -0.0232 0.9814 +vn -0.2994 -0.0686 0.9517 +vn -0.2999 -0.0356 0.9533 +vn -0.4211 -0.0417 0.9061 +vn -0.4203 -0.0745 0.9043 +vn -0.2988 -0.0274 0.9539 +vn -0.4198 -0.0367 0.9069 +vn -0.2980 -0.0363 0.9539 +vn -0.4185 -0.0510 0.9068 +vn -0.5467 -0.0807 0.8334 +vn -0.5478 -0.0480 0.8352 +vn -0.6696 -0.0541 0.7408 +vn -0.6682 -0.0866 0.7389 +vn -0.5465 -0.0465 0.8362 +vn -0.6682 -0.0560 0.7418 +vn -0.5446 -0.0665 0.8361 +vn -0.6658 -0.0815 0.7417 +vn -0.0995 -0.0156 0.9949 +vn -0.1897 -0.0297 0.9814 +vn -0.0270 -0.0042 0.9996 +vn -0.0267 -0.0053 0.9996 +vn -0.0986 -0.0196 0.9949 +vn -0.1880 -0.0374 0.9815 +vn -0.7740 -0.0919 0.6264 +vn -0.7696 -0.1432 0.6223 +vn -0.7757 -0.0594 0.6283 +vn -0.8595 -0.0637 0.5072 +vn -0.8575 -0.0962 0.5054 +vn -0.8526 -0.1475 0.5014 +vn -0.2966 -0.0465 0.9539 +vn -0.4165 -0.0653 0.9068 +vn -0.2941 -0.0585 0.9540 +vn -0.4131 -0.0822 0.9070 +vn -0.7745 -0.0644 0.6293 +vn -0.8584 -0.0710 0.5081 +vn -0.7715 -0.0945 0.6291 +vn -0.8549 -0.1049 0.5080 +vn -0.5420 -0.0850 0.8361 +vn -0.6626 -0.1039 0.7417 +vn -0.5378 -0.1070 0.8363 +vn -0.6576 -0.1308 0.7420 +vn -0.7607 -0.2103 0.6141 +vn -0.7454 -0.2901 0.6002 +vn -0.8426 -0.2147 0.4939 +vn -0.8255 -0.2945 0.4815 +vn -0.7201 -0.3842 0.5778 +vn -0.6799 -0.4929 0.5429 +vn -0.7974 -0.3884 0.4618 +vn -0.7528 -0.4968 0.4319 +vn -0.9039 -0.0987 0.4162 +vn -0.8984 -0.1502 0.4128 +vn -0.9062 -0.0662 0.4177 +vn -0.9183 -0.0669 0.3901 +vn -0.9160 -0.0993 0.3887 +vn -0.9102 -0.1507 0.3857 +vn -0.9052 -0.0748 0.4183 +vn -0.9175 -0.0759 0.3905 +vn -0.9016 -0.1108 0.4182 +vn -0.9137 -0.1124 0.3906 +vn -0.8874 -0.2175 0.4064 +vn -0.8687 -0.2975 0.3960 +vn -0.8989 -0.2183 0.3799 +vn -0.8796 -0.2984 0.3704 +vn -0.8973 -0.1409 0.4183 +vn -0.9094 -0.1428 0.3906 +vn -0.8509 -0.1336 0.5081 +vn -0.8447 -0.1680 0.5083 +vn -0.8908 -0.1772 0.4184 +vn -0.9029 -0.1796 0.3906 +vn -0.8381 -0.3916 0.3797 +vn -0.7899 -0.5001 0.3550 +vn -0.8481 -0.3928 0.3555 +vn -0.7986 -0.5015 0.3328 +vn -0.6189 -0.6131 0.4909 +vn -0.5319 -0.7365 0.4180 +vn -0.6851 -0.6164 0.3882 +vn -0.5886 -0.7389 0.3280 +vn -0.7171 -0.6197 0.3190 +vn -0.6140 -0.7419 0.2696 +vn -0.7240 -0.6214 0.2995 +vn -0.6186 -0.7437 0.2535 +vn -0.4798 -0.8526 0.2072 +vn -0.4622 -0.8503 0.2518 +vn -0.4818 -0.8542 0.1953 +vn -0.4180 -0.8487 0.3241 +vn -0.2839 -0.9343 0.2156 +vn -0.2411 -0.9342 0.2629 +vn -0.3572 -0.8480 0.3916 +vn -0.4298 -0.8463 0.3147 +vn -0.7574 -0.3851 0.5273 +vn -0.6352 -0.3835 0.6704 +vn -0.3639 -0.8449 0.3921 +vn -0.8810 -0.2207 0.4184 +vn -0.8930 -0.2237 0.3906 +vn -0.8354 -0.2093 0.5083 +vn -0.8241 -0.2500 0.5083 +vn -0.8691 -0.2637 0.4184 +vn -0.8809 -0.2672 0.3906 +vn -0.7678 -0.1205 0.6292 +vn -0.7621 -0.1516 0.6294 +vn -0.7538 -0.1888 0.6294 +vn -0.6503 -0.1629 0.7420 +vn -0.6416 -0.1946 0.7420 +vn -0.7436 -0.2256 0.6294 +vn -0.5319 -0.1332 0.8363 +vn -0.4086 -0.1024 0.9070 +vn -0.4031 -0.1223 0.9070 +vn -0.5247 -0.1592 0.8363 +vn -0.8552 -0.3060 0.4184 +vn -0.8667 -0.3101 0.3906 +vn -0.8109 -0.2901 0.5082 +vn -0.7956 -0.3296 0.5083 +vn -0.8391 -0.3476 0.4184 +vn -0.8505 -0.3523 0.3906 +vn -0.7316 -0.2618 0.6294 +vn -0.6313 -0.2259 0.7419 +vn -0.6194 -0.2566 0.7420 +vn -0.7179 -0.2974 0.6294 +vn -0.8211 -0.3883 0.4184 +vn -0.8322 -0.3936 0.3906 +vn -0.7785 -0.3682 0.5083 +vn -0.7595 -0.4060 0.5083 +vn -0.8010 -0.4281 0.4184 +vn -0.8119 -0.4339 0.3906 +vn -0.7024 -0.3322 0.6294 +vn -0.6061 -0.2867 0.7420 +vn -0.5913 -0.3160 0.7420 +vn -0.6853 -0.3663 0.6294 +vn -0.5162 -0.1847 0.8363 +vn -0.3966 -0.1419 0.9070 +vn -0.3892 -0.1612 0.9070 +vn -0.5066 -0.2098 0.8363 +vn -0.4957 -0.2344 0.8363 +vn -0.3808 -0.1801 0.9070 +vn -0.3715 -0.1986 0.9069 +vn -0.4836 -0.2585 0.8363 +vn -0.7790 -0.4669 0.4185 +vn -0.7896 -0.4733 0.3906 +vn -0.7387 -0.4427 0.5083 +vn -0.7160 -0.4785 0.5083 +vn -0.7552 -0.5046 0.4184 +vn -0.7654 -0.5114 0.3906 +vn -0.6665 -0.3995 0.6294 +vn -0.5751 -0.3447 0.7420 +vn -0.5574 -0.3725 0.7420 +vn -0.6461 -0.4317 0.6294 +vn -0.7295 -0.5411 0.4184 +vn -0.7394 -0.5484 0.3906 +vn -0.6917 -0.5130 0.5083 +vn -0.6657 -0.5463 0.5083 +vn -0.7021 -0.5762 0.4184 +vn -0.7116 -0.5840 0.3906 +vn -0.6241 -0.4629 0.6294 +vn -0.5385 -0.3994 0.7420 +vn -0.5183 -0.4253 0.7420 +vn -0.6007 -0.4930 0.6294 +vn -0.4703 -0.2819 0.8363 +vn -0.3613 -0.2166 0.9070 +vn -0.3502 -0.2340 0.9070 +vn -0.4559 -0.3046 0.8363 +vn -0.4404 -0.3266 0.8363 +vn -0.3383 -0.2509 0.9070 +vn -0.3256 -0.2672 0.9070 +vn -0.4238 -0.3478 0.8363 +vn -0.6781 -0.6043 0.4183 +vn -0.6873 -0.6124 0.3906 +vn -0.6430 -0.5730 0.5081 +vn -0.6234 -0.5944 0.5080 +vn -0.6575 -0.6267 0.4182 +vn -0.6665 -0.6350 0.3905 +vn -0.5802 -0.5171 0.6292 +vn -0.5007 -0.4463 0.7417 +vn -0.4853 -0.4630 0.7417 +vn -0.5625 -0.5365 0.6291 +vn -0.6321 -0.6523 0.4183 +vn -0.6408 -0.6610 0.3904 +vn -0.5994 -0.6185 0.5081 +vn -0.5946 -0.6238 0.5072 +vn -0.6262 -0.6584 0.4177 +vn -0.6343 -0.6674 0.3902 +vn -0.6498 -0.6360 0.4162 +vn -0.6860 -0.5991 0.4129 +vn -0.6940 -0.6079 0.3859 +vn -0.6578 -0.6450 0.3889 +vn -0.6184 -0.6018 0.5054 +vn -0.6550 -0.5653 0.5014 +vn -0.5411 -0.5578 0.6293 +vn -0.4673 -0.4810 0.7418 +vn -0.4667 -0.4832 0.7408 +vn -0.5382 -0.5619 0.6282 +vn -0.5621 -0.5401 0.6264 +vn -0.5990 -0.5041 0.6221 +vn -0.4908 -0.4616 0.7389 +vn -0.5282 -0.4259 0.7346 +vn -0.7311 -0.5478 0.4066 +vn -0.7811 -0.4826 0.3963 +vn -0.7886 -0.4904 0.3710 +vn -0.7407 -0.5570 0.3758 +vn -0.7006 -0.5150 0.4938 +vn -0.7514 -0.4512 0.4814 +vn -0.3827 -0.3929 0.8362 +vn -0.2947 -0.3012 0.9069 +vn -0.2994 -0.2990 0.9061 +vn -0.3847 -0.3930 0.8352 +vn -0.3969 -0.3788 0.8361 +vn -0.3049 -0.2911 0.9068 +vn -0.8344 -0.3992 0.3801 +vn -0.8876 -0.2931 0.3554 +vn -0.8941 -0.2988 0.3337 +vn -0.8415 -0.4061 0.3563 +vn -0.8062 -0.3698 0.4618 +vn -0.8616 -0.2666 0.4319 +vn -0.6453 -0.4547 0.6138 +vn -0.6974 -0.3923 0.5998 +vn -0.5753 -0.3773 0.7258 +vn -0.6286 -0.3161 0.7106 +vn -0.4092 -0.3715 0.8334 +vn -0.4471 -0.3363 0.8289 +vn -0.3241 -0.2777 0.9043 +vn -0.3627 -0.2427 0.8998 +vn -0.9338 -0.1609 0.3195 +vn -0.9628 -0.0037 0.2702 +vn -0.9670 -0.0060 0.2547 +vn -0.9394 -0.1651 0.3006 +vn -0.9111 -0.1384 0.3882 +vn -0.9445 0.0138 0.3281 +vn -0.7541 -0.3131 0.5773 +vn -0.8127 -0.2132 0.5423 +vn -0.6876 -0.2390 0.6856 +vn -0.7498 -0.1424 0.6461 +vn -0.9633 0.1701 0.2078 +vn -0.9657 0.1697 0.1964 +vn -0.9504 0.1820 0.2521 +vn -0.8670 -0.0898 0.4902 +vn -0.9071 0.0555 0.4172 +vn -0.8097 -0.0243 0.5864 +vn -0.8576 0.1133 0.5017 +vn -0.9216 0.2146 0.3233 +vn -0.9028 0.3725 0.2150 +vn -0.8822 0.2617 0.3915 +vn -0.8752 0.4061 0.2628 +vn -0.9273 0.2050 0.3131 +vn -0.7767 -0.3446 0.5273 +vn -0.8842 0.2547 0.3916 +vn -0.6989 -0.2489 0.6705 +vn -0.7445 0.0504 0.6657 +vn -0.8014 0.1789 0.5708 +vn -0.6784 -0.0615 0.7322 +vn -0.6037 0.0237 0.7968 +vn -0.6765 0.1293 0.7250 +vn -0.7426 0.2483 0.6220 +vn -0.6119 -0.1541 0.7758 +vn -0.5502 -0.2288 0.8031 +vn -0.4684 -0.1373 0.8728 +vn -0.5329 -0.0650 0.8437 +vn -0.6131 0.2030 0.7635 +vn -0.6887 0.3122 0.6544 +vn -0.5335 0.1040 0.8394 +vn -0.4714 0.1755 0.8643 +vn -0.5572 0.2684 0.7858 +vn -0.6416 0.3684 0.6728 +vn -0.4581 0.0196 0.8887 +vn -0.3907 -0.0502 0.9192 +vn -0.3215 0.0274 0.9465 +vn -0.3916 0.0949 0.9152 +vn -0.7489 0.4216 0.5113 +vn -0.7832 0.5180 0.3438 +vn -0.8111 0.4839 0.3285 +vn -0.7906 0.3711 0.4870 +vn -0.7127 0.4656 0.5247 +vn -0.7595 0.5472 0.3516 +vn -0.6835 0.5013 0.5306 +vn -0.7408 0.5705 0.3547 +vn -0.6030 0.4147 0.6815 +vn -0.5721 0.4517 0.6846 +vn -0.6602 0.5297 0.5325 +vn -0.7258 0.5890 0.3554 +vn -0.5110 0.3226 0.7967 +vn -0.4196 0.2352 0.8767 +vn -0.3780 0.2831 0.8815 +vn -0.4740 0.3660 0.8008 +vn -0.6426 0.5514 0.5320 +vn -0.5487 0.4799 0.6846 +vn -0.5325 0.4994 0.6834 +vn -0.6304 0.5663 0.5309 +vn -0.7144 0.6032 0.3547 +vn -0.7065 0.6130 0.3537 +vn -0.3360 0.1581 0.9285 +vn -0.2633 0.0928 0.9602 +vn -0.2166 0.1453 0.9654 +vn -0.2913 0.2088 0.9336 +vn -0.4459 0.3991 0.8012 +vn -0.3463 0.3196 0.8820 +vn -0.3243 0.3450 0.8808 +vn -0.4264 0.4221 0.8000 +vn -0.2573 0.2475 0.9341 +vn -0.1810 0.1853 0.9659 +vn -0.1560 0.2133 0.9644 +vn -0.2335 0.2745 0.9328 +vn -0.2016 0.0385 0.9787 +vn -0.1495 -0.0063 0.9887 +vn -0.1008 0.0478 0.9938 +vn -0.1536 0.0920 0.9838 +vn -0.2613 -0.0281 0.9649 +vn -0.2101 -0.0736 0.9749 +vn -0.1170 0.1329 0.9842 +vn -0.0636 0.0890 0.9940 +vn -0.0376 0.1179 0.9923 +vn -0.0913 0.1615 0.9826 +vn -0.2135 0.2970 0.9307 +vn -0.3049 0.3645 0.8799 +vn -0.1352 0.2366 0.9622 +vn -0.1238 0.2495 0.9604 +vn -0.2027 0.3094 0.9291 +vn -0.2958 0.3778 0.8773 +vn -0.3322 -0.1071 0.9371 +vn -0.2820 -0.1534 0.9471 +vn -0.4117 -0.1957 0.8901 +vn -0.4098 0.4413 0.7984 +vn -0.5187 0.5156 0.6820 +vn -0.4011 0.4519 0.7968 +vn -0.5105 0.5228 0.6827 +vn -0.6199 0.5789 0.5298 +vn -0.6997 0.6212 0.3529 +vn -0.6146 0.5858 0.5283 +vn -0.6964 0.6257 0.3515 +vn -0.0700 0.1852 0.9802 +vn -0.0159 0.1420 0.9897 +vn -0.0039 0.1552 0.9879 +vn -0.0582 0.1984 0.9784 +vn -0.2003 0.3122 0.9287 +vn -0.2935 0.3805 0.8770 +vn -0.1213 0.2523 0.9600 +vn -0.1153 0.2590 0.9590 +vn -0.1945 0.3186 0.9277 +vn -0.2880 0.3865 0.8762 +vn -0.0556 0.2013 0.9780 +vn -0.0013 0.1582 0.9874 +vn 0.0049 0.1650 0.9863 +vn -0.0495 0.2080 0.9769 +vn -0.3990 0.4542 0.7965 +vn -0.5082 0.5242 0.6834 +vn -0.3941 0.4598 0.7958 +vn -0.5056 0.5314 0.6797 +vn -0.6130 0.5752 0.5417 +vn -0.2339 0.3146 0.9200 +vn -0.2510 0.2942 0.9222 +vn -0.6231 0.5629 0.5430 +vn -0.6052 0.5804 0.5448 +vn -0.2217 0.3232 0.9200 +vn -0.6353 0.5489 0.5432 +vn -0.2708 0.2709 0.9237 +vn -0.2990 0.2374 0.9242 +vn -0.6529 0.5287 0.5424 +vn -0.6133 0.5874 0.5281 +vn -0.6955 0.6267 0.3514 +vn -0.6100 0.5911 0.5277 +vn -0.6933 0.6292 0.3512 +vn -0.6056 0.5963 0.5269 +vn -0.6904 0.6327 0.3507 +vn -0.4998 0.5381 0.6787 +vn -0.4938 0.5451 0.6775 +vn -0.6010 0.6018 0.5260 +vn -0.6874 0.6363 0.3501 +vn -0.3873 0.4675 0.7946 +vn -0.2805 0.3950 0.8748 +vn -0.2726 0.4039 0.8732 +vn -0.3801 0.4757 0.7932 +vn -0.1865 0.3275 0.9263 +vn -0.1070 0.2682 0.9574 +vn -0.0982 0.2779 0.9556 +vn -0.1780 0.3369 0.9246 +vn -0.3725 0.4843 0.7916 +vn -0.4874 0.5525 0.6762 +vn -0.2642 0.4134 0.8714 +vn -0.2553 0.4234 0.8692 +vn -0.3645 0.4934 0.7897 +vn -0.4806 0.5604 0.6746 +vn -0.0410 0.2174 0.9752 +vn 0.0135 0.1744 0.9846 +vn 0.0225 0.1844 0.9826 +vn -0.0321 0.2272 0.9733 +vn -0.1691 0.3469 0.9225 +vn -0.0890 0.2881 0.9535 +vn -0.0792 0.2989 0.9510 +vn -0.1597 0.3574 0.9202 +vn -0.0227 0.2377 0.9711 +vn 0.0320 0.1949 0.9803 +vn 0.0420 0.2060 0.9777 +vn -0.0127 0.2487 0.9685 +vn 0.0586 0.1382 0.9887 +vn 0.0862 0.1158 0.9895 +vn 0.0962 0.1251 0.9875 +vn 0.0683 0.1476 0.9867 +vn 0.0492 0.1294 0.9904 +vn 0.0765 0.1073 0.9913 +vn 0.0784 0.1577 0.9844 +vn 0.1064 0.1350 0.9851 +vn 0.1171 0.1457 0.9824 +vn 0.0890 0.1685 0.9817 +vn -0.0022 0.2603 0.9655 +vn -0.0689 0.3104 0.9481 +vn 0.0526 0.2177 0.9746 +vn 0.0639 0.2302 0.9710 +vn 0.0089 0.2726 0.9621 +vn -0.0580 0.3225 0.9448 +vn 0.0419 0.1235 0.9915 +vn 0.0688 0.1017 0.9924 +vn 0.0383 0.1213 0.9919 +vn 0.0646 0.1001 0.9929 +vn -0.1497 0.3685 0.9175 +vn -0.2459 0.4339 0.8667 +vn -0.1392 0.3803 0.9143 +vn -0.2360 0.4451 0.8638 +vn 0.0258 0.1083 0.9938 +vn 0.0518 0.0872 0.9948 +vn 0.0038 0.0842 0.9964 +vn 0.0298 0.0631 0.9976 +vn 0.0975 0.1064 0.9895 +vn 0.1068 0.1161 0.9875 +vn 0.0885 0.0973 0.9913 +vn 0.0945 0.0916 0.9913 +vn 0.1035 0.1007 0.9895 +vn 0.1130 0.1102 0.9875 +vn -0.0225 0.0552 0.9982 +vn 0.0034 0.0342 0.9994 +vn -0.0601 0.0138 0.9981 +vn -0.0343 -0.0072 0.9994 +vn 0.0818 0.0908 0.9925 +vn 0.0787 0.0881 0.9930 +vn 0.0854 0.0819 0.9930 +vn 0.0880 0.0849 0.9925 +vn 0.0663 0.0754 0.9949 +vn 0.0437 0.0519 0.9977 +vn 0.0490 0.0468 0.9977 +vn 0.0725 0.0695 0.9949 +vn -0.1093 -0.0404 0.9932 +vn -0.0837 -0.0616 0.9946 +vn -0.1704 -0.1079 0.9794 +vn -0.1451 -0.1291 0.9810 +vn 0.0166 0.0237 0.9996 +vn -0.0220 -0.0167 0.9996 +vn -0.0198 -0.0189 0.9996 +vn 0.0207 0.0198 0.9996 +vn 0.0749 0.0668 0.9950 +vn 0.0882 0.0788 0.9930 +vn 0.0505 0.0451 0.9977 +vn 0.0524 0.0430 0.9977 +vn 0.0777 0.0637 0.9949 +vn 0.0914 0.0750 0.9930 +vn 0.0213 0.0190 0.9996 +vn -0.0204 -0.0182 0.9996 +vn -0.0210 -0.0173 0.9996 +vn 0.0222 0.0182 0.9996 +vn -0.0728 -0.0697 0.9949 +vn -0.1359 -0.1355 0.9814 +vn -0.1388 -0.1327 0.9814 +vn -0.0728 -0.0696 0.9949 +vn 0.0912 0.0815 0.9925 +vn 0.0980 0.0878 0.9913 +vn 0.0945 0.0776 0.9925 +vn 0.1017 0.0835 0.9913 +vn -0.0752 -0.0671 0.9949 +vn -0.1433 -0.1278 0.9814 +vn -0.1482 -0.1216 0.9815 +vn -0.0777 -0.0638 0.9949 +vn -0.2241 -0.1998 0.9539 +vn -0.3147 -0.2805 0.9068 +vn -0.2318 -0.1902 0.9540 +vn -0.2171 -0.2074 0.9539 +vn -0.2429 -0.1880 0.9517 +vn -0.2178 -0.2092 0.9533 +vn -0.4952 -0.2885 0.8195 +vn -0.2107 -0.2136 0.9539 +vn -0.4095 -0.3650 0.8361 +vn -0.2409 -0.1786 0.9540 +vn -0.1540 -0.1142 0.9814 +vn -0.2493 -0.1666 0.9540 +vn -0.1594 -0.1065 0.9814 +vn -0.0807 -0.0599 0.9949 +vn -0.0218 -0.0162 0.9996 +vn -0.0836 -0.0559 0.9949 +vn -0.0226 -0.0151 0.9996 +vn -0.2572 -0.1542 0.9540 +vn -0.1645 -0.0986 0.9814 +vn -0.2645 -0.1414 0.9540 +vn -0.1691 -0.0904 0.9814 +vn 0.0230 0.0171 0.9996 +vn 0.0545 0.0404 0.9977 +vn 0.0238 0.0159 0.9996 +vn 0.0564 0.0377 0.9977 +vn -0.0862 -0.0517 0.9949 +vn -0.0233 -0.0140 0.9996 +vn -0.0887 -0.0474 0.9949 +vn -0.0240 -0.0128 0.9996 +vn -0.2711 -0.1282 0.9540 +vn -0.1733 -0.0820 0.9814 +vn -0.2771 -0.1148 0.9540 +vn -0.1771 -0.0734 0.9814 +vn 0.0807 0.0598 0.9949 +vn 0.0950 0.0705 0.9930 +vn 0.0835 0.0558 0.9949 +vn 0.0983 0.0657 0.9930 +vn 0.0246 0.0147 0.9996 +vn 0.0582 0.0349 0.9977 +vn 0.0253 0.0135 0.9996 +vn 0.0598 0.0320 0.9977 +vn -0.0909 -0.0430 0.9949 +vn -0.0246 -0.0116 0.9996 +vn -0.0929 -0.0385 0.9949 +vn -0.0251 -0.0104 0.9996 +vn -0.2823 -0.1010 0.9540 +vn -0.1805 -0.0646 0.9815 +vn -0.2870 -0.0870 0.9540 +vn -0.1835 -0.0557 0.9814 +vn -0.2909 -0.0729 0.9540 +vn -0.1860 -0.0466 0.9814 +vn -0.0947 -0.0339 0.9949 +vn -0.0256 -0.0092 0.9996 +vn -0.0962 -0.0292 0.9949 +vn -0.0260 -0.0079 0.9996 +vn 0.0259 0.0123 0.9996 +vn 0.0613 0.0290 0.9977 +vn 0.0265 0.0110 0.9996 +vn 0.0626 0.0259 0.9977 +vn -0.0975 -0.0244 0.9949 +vn -0.0264 -0.0066 0.9996 +vn 0.0270 0.0097 0.9996 +vn 0.0638 0.0228 0.9977 +vn 0.0275 0.0083 0.9996 +vn 0.0649 0.0197 0.9977 +vn 0.0278 0.0070 0.9996 +vn 0.0658 0.0165 0.9977 +vn 0.0281 0.0056 0.9996 +vn 0.0665 0.0132 0.9977 +vn 0.0282 0.0044 0.9996 +vn 0.0669 0.0105 0.9977 +vn 0.0946 0.0338 0.9949 +vn 0.1114 0.0398 0.9930 +vn 0.1093 0.0453 0.9930 +vn 0.0928 0.0384 0.9949 +vn 0.0961 0.0292 0.9949 +vn 0.1132 0.0343 0.9930 +vn 0.0992 0.0155 0.9949 +vn 0.1169 0.0183 0.9930 +vn 0.1160 0.0231 0.9930 +vn 0.0985 0.0196 0.9949 +vn 0.0974 0.0244 0.9949 +vn 0.1147 0.0287 0.9930 +vn 0.1208 0.0188 0.9925 +vn 0.1300 0.0201 0.9913 +vn 0.1291 0.0257 0.9913 +vn 0.1199 0.0239 0.9925 +vn 0.1215 0.0142 0.9925 +vn 0.1307 0.0150 0.9913 +vn 0.1186 0.0297 0.9925 +vn 0.1276 0.0320 0.9913 +vn 0.1259 0.0382 0.9913 +vn 0.1170 0.0355 0.9925 +vn 0.1151 0.0412 0.9925 +vn 0.1239 0.0443 0.9913 +vn 0.1216 0.0504 0.9913 +vn 0.1130 0.0468 0.9925 +vn 0.0908 0.0429 0.9949 +vn 0.1069 0.0506 0.9930 +vn 0.1043 0.0558 0.9930 +vn 0.0886 0.0474 0.9949 +vn 0.1105 0.0523 0.9925 +vn 0.1189 0.0563 0.9913 +vn 0.1160 0.0620 0.9913 +vn 0.1078 0.0576 0.9925 +vn 0.0862 0.0516 0.9949 +vn 0.1014 0.0608 0.9930 +vn 0.1049 0.0629 0.9925 +vn 0.1129 0.0676 0.9913 +vn 0.1094 0.0731 0.9913 +vn 0.1017 0.0679 0.9925 +vn 0.0982 0.0728 0.9925 +vn 0.1057 0.0784 0.9913 +vn 0.1238 0.0742 0.9895 +vn 0.1354 0.0811 0.9875 +vn 0.1312 0.0877 0.9875 +vn 0.1200 0.0802 0.9895 +vn 0.1273 0.0681 0.9895 +vn 0.1392 0.0744 0.9875 +vn 0.1075 0.0963 0.9895 +vn 0.1175 0.1054 0.9875 +vn 0.1116 0.0916 0.9895 +vn 0.1220 0.1001 0.9875 +vn 0.1160 0.0860 0.9895 +vn 0.1268 0.0940 0.9875 +vn 0.1167 0.1264 0.9851 +vn 0.1270 0.1373 0.9824 +vn 0.1231 0.1203 0.9851 +vn 0.1337 0.1309 0.9823 +vn 0.1281 0.1149 0.9851 +vn 0.1392 0.1250 0.9823 +vn 0.1330 0.1092 0.9851 +vn 0.1446 0.1187 0.9823 +vn 0.1382 0.1025 0.9851 +vn 0.1503 0.1115 0.9823 +vn 0.1431 0.0956 0.9851 +vn 0.1556 0.1040 0.9823 +vn 0.1305 0.0617 0.9895 +vn 0.1427 0.0675 0.9875 +vn 0.1334 0.0552 0.9895 +vn 0.1458 0.0604 0.9875 +vn 0.1476 0.0885 0.9851 +vn 0.1605 0.0962 0.9823 +vn 0.1518 0.0811 0.9851 +vn 0.1650 0.0882 0.9823 +vn 0.1359 0.0486 0.9895 +vn 0.1486 0.0532 0.9875 +vn 0.1381 0.0419 0.9895 +vn 0.1510 0.0458 0.9875 +vn 0.1556 0.0736 0.9851 +vn 0.1691 0.0800 0.9823 +vn 0.1590 0.0659 0.9851 +vn 0.1729 0.0716 0.9823 +vn 0.1400 0.0351 0.9895 +vn 0.1531 0.0384 0.9875 +vn 0.1416 0.0282 0.9895 +vn 0.1548 0.0308 0.9875 +vn 0.1620 0.0580 0.9851 +vn 0.1762 0.0630 0.9823 +vn 0.1647 0.0500 0.9851 +vn 0.1791 0.0543 0.9823 +vn 0.1741 0.1044 0.9792 +vn 0.1886 0.1130 0.9755 +vn 0.1828 0.1221 0.9755 +vn 0.1688 0.1128 0.9792 +vn 0.1790 0.0957 0.9792 +vn 0.1939 0.1036 0.9755 +vn 0.1835 0.0868 0.9792 +vn 0.1988 0.0940 0.9755 +vn 0.1876 0.0777 0.9792 +vn 0.2031 0.0841 0.9755 +vn 0.1631 0.1209 0.9792 +vn 0.1766 0.1310 0.9755 +vn 0.1700 0.1395 0.9755 +vn 0.1569 0.1288 0.9792 +vn 0.1669 0.0418 0.9851 +vn 0.1815 0.0455 0.9823 +vn 0.1688 0.0336 0.9851 +vn 0.1835 0.0365 0.9823 +vn 0.1510 0.1357 0.9792 +vn 0.1635 0.1470 0.9755 +vn 0.1569 0.1540 0.9755 +vn 0.1450 0.1421 0.9792 +vn 0.1427 0.0220 0.9895 +vn 0.1560 0.0240 0.9875 +vn 0.1435 0.0162 0.9895 +vn 0.1569 0.0175 0.9875 +vn 0.1221 0.0056 0.9925 +vn 0.1313 0.0066 0.9913 +vn 0.1441 0.0078 0.9895 +vn 0.1575 0.0088 0.9875 +vn 0.1701 0.0261 0.9851 +vn 0.1849 0.0283 0.9823 +vn 0.1710 0.0189 0.9851 +vn 0.1860 0.0203 0.9823 +vn 0.1717 -0.0395 0.9844 +vn 0.1719 -0.0033 0.9851 +vn 0.1867 -0.0382 0.9817 +vn 0.1869 -0.0018 0.9824 +vn 0.1717 0.0099 0.9851 +vn 0.1867 0.0110 0.9824 +vn 0.2019 -0.0366 0.9787 +vn 0.2028 -0.0004 0.9792 +vn 0.2026 0.0121 0.9792 +vn 0.2018 0.0219 0.9792 +vn 0.2007 0.0307 0.9792 +vn 0.2173 0.0332 0.9755 +vn 0.2156 0.0429 0.9755 +vn 0.1991 0.0396 0.9792 +vn 0.2350 0.0358 0.9713 +vn 0.2332 0.0464 0.9713 +vn 0.1969 0.0493 0.9792 +vn 0.2133 0.0534 0.9755 +vn 0.2104 0.0638 0.9755 +vn 0.1943 0.0589 0.9792 +vn 0.2306 0.0578 0.9713 +vn 0.2490 0.0624 0.9665 +vn 0.2456 0.0745 0.9665 +vn 0.2275 0.0690 0.9713 +vn 0.2685 0.0673 0.9609 +vn 0.2893 0.0725 0.9545 +vn 0.2854 0.0866 0.9545 +vn 0.2649 0.0804 0.9609 +vn 0.1911 0.0684 0.9792 +vn 0.2070 0.0741 0.9755 +vn 0.2238 0.0801 0.9713 +vn 0.2417 0.0865 0.9665 +vn 0.2371 0.0982 0.9665 +vn 0.2196 0.0910 0.9713 +vn 0.2149 0.1016 0.9713 +vn 0.2320 0.1097 0.9665 +vn 0.2264 0.1210 0.9665 +vn 0.2096 0.1121 0.9713 +vn 0.2606 0.0933 0.9609 +vn 0.2808 0.1005 0.9545 +vn 0.2755 0.1141 0.9545 +vn 0.2557 0.1059 0.9609 +vn 0.2502 0.1183 0.9609 +vn 0.2696 0.1275 0.9545 +vn 0.2630 0.1406 0.9545 +vn 0.2441 0.1305 0.9609 +vn 0.2039 0.1222 0.9713 +vn 0.2202 0.1320 0.9665 +vn 0.2134 0.1426 0.9665 +vn 0.1977 0.1321 0.9713 +vn 0.2374 0.1423 0.9609 +vn 0.2558 0.1533 0.9545 +vn 0.2480 0.1657 0.9545 +vn 0.2302 0.1538 0.9609 +vn 0.1909 0.1416 0.9713 +vn 0.2062 0.1529 0.9665 +vn 0.1984 0.1628 0.9665 +vn 0.1838 0.1508 0.9713 +vn 0.2223 0.1649 0.9609 +vn 0.2395 0.1776 0.9545 +vn 0.2305 0.1892 0.9545 +vn 0.2140 0.1756 0.9609 +vn 0.1768 0.1589 0.9713 +vn 0.1908 0.1716 0.9665 +vn 0.1831 0.1799 0.9665 +vn 0.1696 0.1666 0.9713 +vn 0.2058 0.1851 0.9609 +vn 0.2217 0.1995 0.9545 +vn 0.2126 0.2092 0.9545 +vn 0.1974 0.1941 0.9609 +vn 0.2598 0.1927 0.9462 +vn 0.2830 0.2099 0.9359 +vn 0.2724 0.2235 0.9359 +vn 0.2500 0.2052 0.9462 +vn 0.2690 0.1797 0.9462 +vn 0.2930 0.1957 0.9359 +vn 0.2404 0.2164 0.9462 +vn 0.2618 0.2357 0.9359 +vn 0.2510 0.2473 0.9359 +vn 0.2305 0.2270 0.9462 +vn 0.1885 0.2027 0.9609 +vn 0.1747 0.1880 0.9665 +vn 0.2031 0.2183 0.9545 +vn 0.1937 0.2263 0.9546 +vn 0.1791 0.2106 0.9610 +vn 0.1653 0.1959 0.9666 +vn 0.2775 0.1663 0.9462 +vn 0.3022 0.1811 0.9359 +vn 0.2853 0.1525 0.9462 +vn 0.3107 0.1661 0.9359 +vn 0.1617 0.1742 0.9713 +vn 0.1495 0.1612 0.9755 +vn 0.1523 0.1821 0.9714 +vn 0.1399 0.1692 0.9756 +vn 0.2924 0.1383 0.9462 +vn 0.3185 0.1506 0.9359 +vn 0.2989 0.1238 0.9462 +vn 0.3255 0.1348 0.9359 +vn 0.1379 0.1489 0.9792 +vn 0.1282 0.1570 0.9792 +vn 0.1000 0.1800 0.9786 +vn 0.1116 0.1922 0.9750 +vn 0.1239 0.2052 0.9708 +vn 0.0758 0.2433 0.9670 +vn 0.1369 0.2190 0.9661 +vn 0.0885 0.2573 0.9623 +vn 0.1506 0.2338 0.9606 +vn 0.1020 0.2722 0.9568 +vn 0.1651 0.2495 0.9542 +vn 0.0208 0.2857 0.9581 +vn -0.0464 0.3354 0.9409 +vn 0.0333 0.2996 0.9535 +vn 0.0467 0.3144 0.9481 +vn -0.1280 0.3928 0.9107 +vn -0.2255 0.4570 0.8604 +vn -0.3376 0.5242 0.7818 +vn -0.3471 0.5133 0.7849 +vn -0.3561 0.5031 0.7875 +vn -0.4734 0.5687 0.6727 +vn -0.5853 0.6202 0.5223 +vn -0.5908 0.6137 0.5237 +vn -0.5960 0.6076 0.5249 +vn -0.6841 0.6403 0.3494 +vn -0.5846 0.5853 0.5619 +vn -0.1848 0.3257 0.9272 +vn -0.1997 0.3219 0.9255 +vn -0.5932 0.5818 0.5564 +vn -0.5760 0.5893 0.5666 +vn -0.1701 0.3307 0.9283 +vn -0.6006 0.5801 0.5502 +vn -0.2131 0.3211 0.9228 +vn 0.1822 0.2680 0.9460 +vn 0.2108 0.2448 0.9464 +vn 0.2303 0.2661 0.9360 +vn 0.2018 0.2893 0.9357 +vn 0.2204 0.2367 0.9463 +vn 0.2401 0.2578 0.9359 +vn 0.2220 0.3114 0.9240 +vn 0.2506 0.2881 0.9242 +vn 0.2605 0.2796 0.9241 +vn 0.2844 0.3052 0.9088 +vn 0.2723 0.2683 0.9241 +vn 0.2971 0.2930 0.9088 +vn 0.3125 0.3353 0.8888 +vn 0.3264 0.3219 0.8887 +vn 0.2841 0.2558 0.9241 +vn 0.3100 0.2792 0.9088 +vn 0.2955 0.2425 0.9241 +vn 0.3226 0.2647 0.9088 +vn 0.3406 0.3068 0.8887 +vn 0.3738 0.3368 0.8642 +vn 0.3544 0.2908 0.8887 +vn 0.3890 0.3192 0.8642 +vn 0.3070 0.2277 0.9241 +vn 0.3352 0.2486 0.9088 +vn 0.3178 0.2124 0.9241 +vn 0.3469 0.2318 0.9088 +vn 0.4099 0.3693 0.8341 +vn 0.4488 0.4043 0.7970 +vn 0.4265 0.3500 0.8340 +vn 0.4669 0.3832 0.7969 +vn 0.3682 0.2731 0.8887 +vn 0.4042 0.2997 0.8642 +vn 0.3812 0.2547 0.8887 +vn 0.4184 0.2796 0.8642 +vn 0.3279 0.1965 0.9241 +vn 0.3579 0.2145 0.9088 +vn 0.3371 0.1802 0.9241 +vn 0.3680 0.1967 0.9088 +vn 0.4903 0.4418 0.7513 +vn 0.5342 0.4814 0.6949 +vn 0.5102 0.4187 0.7512 +vn 0.5559 0.4562 0.6949 +vn 0.4431 0.3287 0.8340 +vn 0.4852 0.3598 0.7969 +vn 0.4587 0.3065 0.8340 +vn 0.5023 0.3356 0.7969 +vn 0.3932 0.2357 0.8887 +vn 0.4316 0.2587 0.8642 +vn 0.4043 0.2161 0.8887 +vn 0.4438 0.2372 0.8642 +vn 0.5796 0.5222 0.6256 +vn 0.6031 0.4950 0.6255 +vn 0.5302 0.3932 0.7512 +vn 0.5776 0.4284 0.6949 +vn 0.5488 0.3667 0.7512 +vn 0.6267 0.4648 0.6255 +vn 0.5661 0.3393 0.7513 +vn 0.5181 0.3105 0.7969 +vn 0.4732 0.2836 0.8340 +vn 0.4866 0.2601 0.8340 +vn 0.4987 0.2359 0.8340 +vn 0.4549 0.2151 0.8642 +vn 0.4316 0.1544 0.8887 +vn 0.3929 0.1406 0.9088 +vn 0.4235 0.1754 0.8887 +vn 0.3855 0.1597 0.9088 +vn 0.4144 0.1960 0.8887 +vn 0.3772 0.1784 0.9088 +vn 0.3599 0.1288 0.9241 +vn 0.3317 0.1187 0.9359 +vn 0.3532 0.1463 0.9240 +vn 0.3138 0.0786 0.9462 +vn 0.3095 0.0939 0.9462 +vn 0.3456 0.1634 0.9241 +vn 0.3046 0.1090 0.9462 +vn -0.8374 0.3148 0.4468 +vn -0.8438 0.4438 0.3016 +vn -0.8330 0.3194 0.4517 +vn -0.5983 -0.1185 0.7924 +vn -0.7787 0.3793 0.4998 +vn -0.4935 0.0013 0.8697 +vn -0.7371 0.4287 0.5225 +vn -0.4294 0.0793 0.8996 +vn -0.7022 0.4698 0.5350 +vn -0.3761 0.1437 0.9154 +vn -0.6749 0.5022 0.5406 +vn -0.3342 0.1945 0.9222 +vn -0.2802 -0.8468 0.4521 +vn -0.1918 -0.9338 0.3021 +vn -0.4704 -0.3855 0.7938 +vn -0.2873 -0.8470 0.4472 +vn -0.2579 0.9267 0.2734 +vn 0.3345 0.8400 0.4272 +vn -0.2390 0.9515 0.1938 +vn 0.3662 0.8798 0.3030 +vn -0.2105 0.9775 0.0105 +vn 0.3976 0.9174 0.0153 +vn 0.3957 0.9154 0.0739 +vn -0.2142 0.9756 0.0487 +vn -0.4920 0.8706 0.0067 +vn -0.4936 0.8697 -0.0014 +vn -0.2055 0.9787 -0.0024 +vn 0.3984 0.9172 -0.0046 +vn -0.3035 0.9528 0.0108 +vn -0.1062 0.9942 0.0148 +vn -0.1077 0.9942 -0.0018 +vn -0.3052 0.9523 -0.0017 +vn 0.0772 0.9969 0.0181 +vn 0.2326 0.9724 0.0206 +vn 0.2319 0.9727 -0.0012 +vn 0.0761 0.9971 -0.0016 +vn 0.3571 0.9338 0.0224 +vn 0.4542 0.8906 0.0236 +vn 0.4541 0.8910 -0.0004 +vn 0.3568 0.9342 -0.0008 +vn 0.5294 0.8480 0.0243 +vn 0.5879 0.8086 0.0248 +vn 0.5880 0.8089 -0.0003 +vn 0.5294 0.8484 -0.0004 +vn 0.6383 0.7694 0.0250 +vn 0.6664 0.7452 0.0251 +vn 0.6666 0.7454 0.0000 +vn 0.6384 0.7697 -0.0001 +vn 0.6822 0.7307 0.0251 +vn 0.6825 0.7309 0.0000 +vn 0.7113 0.7025 0.0230 +vn 0.7115 0.7027 0.0000 +vn 0.7426 0.6692 0.0251 +vn 0.7429 0.6694 0.0000 +vn 0.7728 0.6342 0.0229 +vn 0.7730 0.6344 0.0000 +vn 0.8030 0.5955 0.0251 +vn 0.8032 0.5957 0.0000 +vn 0.8313 0.5554 0.0230 +vn 0.8315 0.5556 0.0000 +vn 0.8575 0.5139 0.0251 +vn 0.8577 0.5141 0.0000 +vn 0.8817 0.4713 0.0230 +vn 0.8819 0.4714 0.0000 +vn 0.9037 0.4274 0.0251 +vn 0.9040 0.4276 0.0000 +vn 0.9236 0.3826 0.0230 +vn 0.9239 0.3827 0.0000 +vn 0.9412 0.3368 0.0251 +vn 0.9415 0.3369 -0.0000 +vn 0.9567 0.2902 0.0230 +vn 0.9569 0.2903 0.0000 +vn 0.9697 0.2429 0.0251 +vn 0.9700 0.2430 0.0000 +vn 0.9805 0.1950 0.0230 +vn 0.9808 0.1951 0.0000 +vn 0.9884 0.1495 0.0252 +vn 0.9887 0.1496 0.0000 +vn 0.9943 0.1042 0.0230 +vn 0.9946 0.1042 0.0000 +vn 0.9976 0.0638 0.0251 +vn 0.9980 0.0639 0.0000 +vn 0.9988 0.0423 0.0228 +vn 0.9991 0.0424 -0.0000 +vn 0.9997 0.0053 0.0251 +vn 0.9980 -0.0586 0.0249 +vn 0.9983 -0.0587 -0.0002 +vn 1.0000 0.0052 -0.0001 +vn 0.9914 -0.1288 0.0244 +vn 0.9766 -0.2139 0.0237 +vn 0.9768 -0.2143 -0.0005 +vn 0.9916 -0.1290 -0.0003 +vn 0.9484 -0.3163 0.0225 +vn 0.8992 -0.4370 0.0208 +vn 0.8991 -0.4378 -0.0012 +vn 0.9485 -0.3169 -0.0008 +vn 0.8195 -0.5727 0.0183 +vn 0.7012 -0.7128 0.0150 +vn 0.7002 -0.7139 -0.0016 +vn 0.8190 -0.5738 -0.0015 +vn 0.5440 -0.8390 0.0110 +vn 0.3609 -0.9326 0.0068 +vn 0.3592 -0.9333 -0.0014 +vn 0.5425 -0.8400 -0.0016 +vn 0.5439 -0.8379 0.0453 +vn 0.3615 -0.9319 0.0294 +vn 0.6220 -0.7830 0.0107 +vn 0.9615 -0.2743 0.0154 +vn 0.9618 -0.2737 -0.0044 +vn 0.6261 -0.7798 -0.0023 +vn 0.6180 -0.7847 0.0487 +vn 0.9588 -0.2743 0.0739 +vn 0.6064 -0.7873 0.1116 +vn 0.3586 -0.9311 0.0666 +vn 0.9458 -0.2749 0.1731 +vn 0.5383 -0.8367 0.1006 +vn -0.5673 0.5939 0.5705 +vn -0.1556 0.3367 0.9287 +vn -0.2238 0.9682 0.1119 +vn 0.3872 0.9056 0.1733 +vn 0.8908 -0.1323 0.4348 +vn -0.9305 0.3520 0.1009 +vn -0.9854 0.1566 0.0668 +vn -0.9827 0.1452 0.1151 +vn -0.9265 0.3345 0.1726 +vn -0.8387 0.5287 0.1305 +vn -0.8337 0.5058 0.2217 +vn -0.8418 0.5365 0.0594 +vn -0.9329 0.3573 0.0453 +vn -0.9868 0.1593 0.0294 +vn -0.7088 -0.6732 0.2106 +vn -0.1756 -0.9210 0.3477 +vn -0.1740 -0.9249 0.3381 +vn -0.7049 -0.6792 0.2046 +vn -0.8488 -0.5107 0.1370 +vn -0.8500 -0.5105 0.1299 +vn -0.8491 -0.5015 0.1657 +vn -0.7165 -0.6527 0.2462 +vn -0.1800 -0.8980 0.4014 +vn 0.9493 0.2750 0.1526 +vn 0.9867 0.0977 0.1302 +vn 0.9929 0.1033 0.0595 +vn 0.9567 0.2824 0.0706 +vn 0.8919 0.4199 0.1679 +vn 0.9001 0.4286 0.0784 +vn 0.8735 0.3959 0.2831 +vn 0.9322 0.2534 0.2583 +vn 0.9719 0.0794 0.2215 +vn 0.6318 -0.5558 0.5403 +vn 0.7122 -0.6058 0.3548 +vn 0.6933 -0.6290 0.3518 +vn 0.6059 -0.5893 0.5344 +vn 0.2590 -0.2860 0.9226 +vn 0.2173 -0.3371 0.9161 +vn 0.2941 -0.2428 0.9244 +vn 0.6531 -0.5285 0.5423 +vn 0.7272 -0.5872 0.3555 +vn 0.3420 -0.9167 0.2065 +vn 0.5307 -0.8365 0.1365 +vn 0.5317 -0.8371 0.1290 +vn 0.3362 -0.9203 0.1999 +vn -0.2395 -0.9075 0.3451 +vn -0.2436 -0.9101 0.3353 +vn -0.2235 -0.8897 0.3981 +vn 0.3571 -0.9021 0.2421 +vn 0.5354 -0.8283 0.1653 +vn -0.7259 0.6706 0.1529 +vn -0.6098 0.7745 0.1682 +vn -0.6132 0.7860 0.0784 +vn -0.7293 0.6806 0.0705 +vn -0.7204 0.6436 0.2585 +vn -0.6041 0.7448 0.2833 +vn -0.5024 0.8462 0.1778 +vn -0.4085 0.8941 0.1835 +vn -0.4114 0.9073 0.0867 +vn -0.5055 0.8588 0.0835 +vn -0.4967 0.8149 0.2986 +vn -0.4029 0.8621 0.3074 +vn -0.7125 0.6016 0.3611 +vn -0.5959 0.6990 0.3954 +vn -0.8267 0.4696 0.3100 +vn -0.8195 0.4274 0.3817 +vn -0.7046 0.5528 0.4449 +vn -0.5874 0.6460 0.4875 +vn -0.9208 0.3061 0.2417 +vn -0.9788 0.1261 0.1614 +vn -0.9746 0.1038 0.1984 +vn -0.9149 0.2730 0.2973 +vn -0.3288 0.9258 0.1866 +vn -0.2618 0.9466 0.1880 +vn -0.2643 0.9603 0.0895 +vn -0.3315 0.9393 0.0886 +vn -0.3233 0.8934 0.3120 +vn -0.2564 0.9141 0.3141 +vn -0.9088 0.2392 0.3419 +vn -0.8121 0.3839 0.4394 +vn -0.9703 0.0813 0.2278 +vn -0.9660 0.0590 0.2518 +vn -0.9026 0.2057 0.3781 +vn -0.8046 0.3409 0.4863 +vn -0.8623 0.3157 0.3960 +vn -0.4096 0.6793 0.6089 +vn -0.3981 0.6221 0.6742 +vn -0.8544 0.2785 0.4387 +vn -0.8703 0.3526 0.3438 +vn -0.4212 0.7365 0.5294 +vn -0.8469 0.2423 0.4734 +vn -0.9618 0.0376 0.2712 +vn -0.3872 0.5665 0.7274 +vn -0.3771 0.5136 0.7707 +vn -0.8399 0.2078 0.5014 +vn -0.9578 0.0175 0.2869 +vn -0.8335 0.1753 0.5239 +vn -0.9541 -0.0013 0.2995 +vn -0.3680 0.4640 0.8058 +vn -0.3599 0.4178 0.8342 +vn -0.8279 0.1450 0.5418 +vn -0.9506 -0.0186 0.3098 +vn -0.8966 0.1735 0.4074 +vn -0.7972 0.2994 0.5242 +vn -0.8909 0.1431 0.4311 +vn -0.7902 0.2603 0.5548 +vn -0.6963 0.5022 0.5128 +vn -0.5786 0.5908 0.5623 +vn -0.6879 0.4520 0.5679 +vn -0.5696 0.5358 0.6233 +vn -0.4883 0.7669 0.4165 +vn -0.3945 0.8128 0.4285 +vn -0.4795 0.7114 0.5138 +vn -0.3855 0.7561 0.5289 +vn -0.3150 0.8436 0.4349 +vn -0.2482 0.8642 0.4377 +vn -0.3059 0.7863 0.5368 +vn -0.2390 0.8067 0.5405 +vn -0.4704 0.6534 0.5931 +vn -0.3761 0.6966 0.6110 +vn -0.4610 0.5957 0.6578 +vn -0.3666 0.6372 0.6779 +vn -0.6797 0.4036 0.6125 +vn -0.5609 0.4828 0.6725 +vn -0.6718 0.3580 0.6485 +vn -0.5526 0.4328 0.7123 +vn -0.2001 0.9615 0.1885 +vn -0.1638 0.9683 0.1884 +vn -0.1660 0.9820 0.0900 +vn -0.2024 0.9752 0.0899 +vn -0.1948 0.9290 0.3147 +vn -0.1586 0.9359 0.3144 +vn -0.1867 0.8791 0.4385 +vn -0.1505 0.8862 0.4381 +vn -0.1774 0.8217 0.5416 +vn -0.1413 0.8290 0.5412 +vn -0.2963 0.7260 0.6205 +vn -0.2293 0.7462 0.6250 +vn -0.2867 0.6659 0.6887 +vn -0.2196 0.6858 0.6939 +vn -0.1429 0.9717 0.1882 +vn -0.1449 0.9853 0.0900 +vn -0.1381 0.9393 0.3141 +vn -0.0999 0.9441 0.3140 +vn -0.1034 0.9767 0.1882 +vn -0.1048 0.9904 0.0900 +vn -0.4520 0.5399 0.7101 +vn -0.3574 0.5799 0.7321 +vn -0.4434 0.4872 0.7524 +vn -0.3487 0.5257 0.7760 +vn -0.8856 0.1149 0.4501 +vn -0.7837 0.2239 0.5794 +vn -0.8806 0.0888 0.4655 +vn -0.7775 0.1903 0.5993 +vn -0.8229 0.1169 0.5560 +vn -0.3530 0.3751 0.8572 +vn -0.3472 0.3356 0.8757 +vn -0.8187 0.0909 0.5670 +vn -0.9475 -0.0345 0.3180 +vn -0.9445 -0.0491 0.3247 +vn -0.8152 0.0688 0.5751 +vn -0.9421 -0.0616 0.3296 +vn -0.3430 0.3019 0.8895 +vn -0.3402 0.2728 0.8999 +vn -0.8130 0.0495 0.5802 +vn -0.9400 -0.0721 0.3335 +vn -0.8760 0.0649 0.4779 +vn -0.7719 0.1594 0.6154 +vn -0.8718 0.0429 0.4880 +vn -0.7667 0.1311 0.6284 +vn -0.6645 0.3155 0.6775 +vn -0.5448 0.3862 0.7444 +vn -0.6576 0.2762 0.7009 +vn -0.5375 0.3430 0.7703 +vn -0.2774 0.6078 0.7441 +vn -0.2102 0.6273 0.7498 +vn -0.2685 0.5528 0.7889 +vn -0.2013 0.5720 0.7952 +vn -0.4354 0.4380 0.7865 +vn -0.3405 0.4750 0.8114 +vn -0.4279 0.3925 0.8142 +vn -0.3328 0.4282 0.8402 +vn -0.6513 0.2400 0.7198 +vn -0.5308 0.3034 0.7913 +vn -0.6455 0.2069 0.7352 +vn -0.5247 0.2669 0.8084 +vn -0.8683 0.0242 0.4955 +vn -0.7624 0.1070 0.6382 +vn -0.8652 0.0083 0.5014 +vn -0.7586 0.0865 0.6457 +vn -0.4210 0.3506 0.8366 +vn -0.3258 0.3850 0.8635 +vn -0.4146 0.3121 0.8548 +vn -0.3193 0.3454 0.8825 +vn -0.6407 0.1787 0.7467 +vn -0.5195 0.2360 0.8212 +vn -0.6365 0.1547 0.7556 +vn -0.5150 0.2096 0.8312 +vn -0.8622 -0.0070 0.5065 +vn -0.7550 0.0668 0.6523 +vn -0.9379 -0.0822 0.3370 +vn -0.9362 -0.0911 0.3396 +vn -0.8597 -0.0204 0.5104 +vn -0.7519 0.0495 0.6575 +vn -0.8108 0.0309 0.5845 +vn -0.3375 0.2447 0.9090 +vn -0.3356 0.2201 0.9159 +vn -0.8089 0.0148 0.5877 +vn -0.8080 0.0008 0.5891 +vn -0.9347 -0.0986 0.3416 +vn -0.3349 0.1990 0.9210 +vn -0.3349 0.1790 0.9251 +vn -0.8075 -0.0124 0.5897 +vn -0.9332 -0.1057 0.3434 +vn -0.8074 -0.0250 0.5895 +vn -0.9319 -0.1123 0.3450 +vn -0.3355 0.1600 0.9284 +vn -0.3369 0.1419 0.9308 +vn -0.8076 -0.0369 0.5886 +vn -0.9306 -0.1185 0.3464 +vn -0.8575 -0.0317 0.5135 +vn -0.7492 0.0349 0.6615 +vn -0.8554 -0.0423 0.5162 +vn -0.7466 0.0212 0.6649 +vn -0.6324 0.1316 0.7634 +vn -0.5107 0.1842 0.8398 +vn -0.6289 0.1114 0.7695 +vn -0.5069 0.1620 0.8466 +vn -0.8082 -0.0482 0.5869 +vn -0.9294 -0.1244 0.3475 +vn -0.3390 0.1247 0.9325 +vn -0.3419 0.1082 0.9335 +vn -0.8093 -0.0591 0.5844 +vn -0.9283 -0.1300 0.3485 +vn -0.8535 -0.0523 0.5185 +vn -0.7442 0.0083 0.6679 +vn -0.8516 -0.0617 0.5205 +vn -0.7419 -0.0038 0.6705 +vn -0.6258 0.0943 0.7742 +vn -0.5037 0.1432 0.8519 +vn -0.6229 0.0783 0.7784 +vn -0.5006 0.1255 0.8565 +vn -0.4092 0.2795 0.8686 +vn -0.3138 0.3117 0.8968 +vn -0.4046 0.2516 0.8792 +vn -0.3091 0.2830 0.9079 +vn -0.4001 0.2247 0.8885 +vn -0.3046 0.2552 0.9177 +vn -0.3962 0.2013 0.8958 +vn -0.3006 0.2310 0.9253 +vn -0.3929 0.1814 0.9015 +vn -0.2972 0.2105 0.9313 +vn -0.3898 0.1627 0.9064 +vn -0.2941 0.1912 0.9365 +vn -0.2333 0.3356 0.9127 +vn -0.1659 0.3533 0.9207 +vn -0.1715 0.3878 0.9057 +vn -0.2389 0.3698 0.8979 +vn -0.2286 0.3063 0.9241 +vn -0.1612 0.3238 0.9323 +vn -0.2240 0.2781 0.9341 +vn -0.1566 0.2954 0.9425 +vn -0.2200 0.2535 0.9420 +vn -0.1525 0.2706 0.9505 +vn -0.2454 0.4101 0.8784 +vn -0.1781 0.4283 0.8859 +vn -0.1852 0.4725 0.8617 +vn -0.2525 0.4539 0.8545 +vn -0.2602 0.5014 0.8252 +vn -0.1930 0.5203 0.8319 +vn -0.1167 0.4430 0.8889 +vn -0.0806 0.4508 0.8890 +vn -0.0876 0.4950 0.8645 +vn -0.1238 0.4872 0.8645 +vn -0.1103 0.4023 0.9088 +vn -0.0742 0.4101 0.9090 +vn -0.1314 0.5352 0.8344 +vn -0.0953 0.5429 0.8344 +vn -0.1036 0.5946 0.7973 +vn -0.1397 0.5870 0.7975 +vn -0.1486 0.6424 0.7518 +vn -0.1124 0.6499 0.7516 +vn -0.1218 0.7083 0.6953 +vn -0.1580 0.7008 0.6956 +vn -0.1677 0.7613 0.6264 +vn -0.1316 0.7686 0.6260 +vn -0.0962 0.6529 0.7513 +vn -0.1048 0.7114 0.6949 +vn -0.0881 0.5975 0.7970 +vn -0.0634 0.6007 0.7969 +vn -0.0693 0.6564 0.7512 +vn -0.0756 0.7152 0.6948 +vn -0.1308 0.8896 0.4377 +vn -0.1225 0.8322 0.5408 +vn -0.0885 0.8366 0.5407 +vn -0.0946 0.8942 0.4376 +vn -0.1136 0.7718 0.6256 +vn -0.0821 0.7759 0.6255 +vn -0.0805 0.5457 0.8341 +vn -0.0735 0.4977 0.8642 +vn -0.0527 0.5004 0.8642 +vn -0.0579 0.5487 0.8340 +vn -0.0587 0.9804 0.1882 +vn -0.0595 0.9942 0.0900 +vn -0.0567 0.9477 0.3140 +vn -0.0128 0.9493 0.3140 +vn -0.0133 0.9820 0.1882 +vn -0.0135 0.9959 0.0900 +vn 0.0349 0.9815 0.1882 +vn 0.0354 0.9953 0.0900 +vn 0.0338 0.9488 0.3140 +vn 0.0803 0.9460 0.3140 +vn 0.0830 0.9786 0.1882 +vn 0.0842 0.9924 0.0900 +vn -0.0537 0.8976 0.4376 +vn -0.0502 0.8397 0.5407 +vn -0.0114 0.8412 0.5406 +vn -0.0122 0.8991 0.4376 +vn 0.1310 0.9734 0.1882 +vn 0.1328 0.9870 0.0900 +vn 0.1266 0.9409 0.3140 +vn 0.1726 0.9336 0.3140 +vn 0.1786 0.9658 0.1882 +vn 0.1811 0.9793 0.0900 +vn 0.2257 0.9558 0.1882 +vn 0.2289 0.9693 0.0900 +vn 0.2182 0.9240 0.3140 +vn 0.2633 0.9122 0.3140 +vn 0.2724 0.9436 0.1882 +vn 0.2762 0.9569 0.0900 +vn 0.0320 0.8986 0.4376 +vn 0.0299 0.8407 0.5407 +vn 0.0711 0.8382 0.5407 +vn 0.0760 0.8959 0.4376 +vn 0.1199 0.8912 0.4375 +vn 0.1122 0.8338 0.5406 +vn 0.1529 0.8272 0.5407 +vn 0.1635 0.8842 0.4376 +vn 0.2067 0.8751 0.4376 +vn 0.1934 0.8187 0.5407 +vn 0.2333 0.8083 0.5406 +vn 0.2494 0.8639 0.4376 +vn 0.1040 0.7732 0.6255 +vn 0.0959 0.7127 0.6949 +vn 0.1307 0.7072 0.6949 +vn 0.1418 0.7672 0.6255 +vn 0.0660 0.7774 0.6255 +vn 0.0608 0.7166 0.6949 +vn 0.1793 0.7593 0.6255 +vn 0.1653 0.6999 0.6949 +vn 0.1994 0.6909 0.6949 +vn 0.2164 0.7496 0.6255 +vn 0.3183 0.9291 0.1882 +vn 0.3228 0.9422 0.0900 +vn 0.3077 0.8982 0.3140 +vn 0.3514 0.8820 0.3140 +vn 0.3635 0.9124 0.1882 +vn 0.3687 0.9252 0.0900 +vn 0.4079 0.8934 0.1882 +vn 0.4136 0.9060 0.0900 +vn 0.3943 0.8637 0.3140 +vn 0.4362 0.8433 0.3140 +vn 0.4512 0.8724 0.1882 +vn 0.4576 0.8846 0.0900 +vn 0.2914 0.8506 0.4376 +vn 0.2727 0.7958 0.5407 +vn 0.3114 0.7815 0.5406 +vn 0.3328 0.8353 0.4376 +vn 0.4910 0.8506 0.1882 +vn 0.4980 0.8625 0.0900 +vn 0.4747 0.8222 0.3140 +vn 0.5118 0.7997 0.3140 +vn 0.5294 0.8272 0.1882 +vn 0.5368 0.8389 0.0900 +vn 0.3734 0.8180 0.4376 +vn 0.3494 0.7653 0.5406 +vn 0.3865 0.7472 0.5407 +vn 0.4131 0.7987 0.4376 +vn 0.5625 0.8051 0.1882 +vn 0.5704 0.8164 0.0900 +vn 0.5438 0.7782 0.3141 +vn 0.5605 0.7661 0.3144 +vn 0.5797 0.7927 0.1884 +vn 0.5878 0.8040 0.0900 +vn 0.4496 0.7787 0.4376 +vn 0.4206 0.7285 0.5407 +vn 0.4534 0.7086 0.5407 +vn 0.4847 0.7574 0.4376 +vn 0.6091 0.7704 0.1884 +vn 0.6577 0.7295 0.1880 +vn 0.6664 0.7407 0.0854 +vn 0.6173 0.7816 0.0899 +vn 0.5898 0.7437 0.3147 +vn 0.6383 0.7028 0.3141 +vn 0.5150 0.7370 0.4377 +vn 0.4818 0.6895 0.5408 +vn 0.4972 0.6782 0.5412 +vn 0.5311 0.7253 0.4381 +vn 0.5603 0.7028 0.4384 +vn 0.6086 0.6619 0.4376 +vn 0.5263 0.6555 0.5416 +vn 0.5746 0.6145 0.5405 +vn 0.7082 0.6809 0.1864 +vn 0.7654 0.6169 0.1833 +vn 0.7737 0.6273 0.0892 +vn 0.7167 0.6917 0.0886 +vn 0.6888 0.6544 0.3119 +vn 0.7460 0.5908 0.3073 +vn 0.8279 0.5320 0.1776 +vn 0.8363 0.5418 0.0835 +vn 0.8088 0.5067 0.2985 +vn 0.7798 0.4675 0.4164 +vn 0.8457 0.3586 0.3953 +vn 0.7165 0.5505 0.4284 +vn 0.6830 0.5037 0.5289 +vn 0.7471 0.4217 0.5138 +vn 0.8143 0.3149 0.4875 +vn 0.4906 0.6058 0.6264 +vn 0.5389 0.5648 0.6250 +vn 0.4615 0.6286 0.6260 +vn 0.4258 0.5790 0.6953 +vn 0.4548 0.5561 0.6956 +vn 0.5032 0.5151 0.6939 +vn 0.4469 0.6394 0.6256 +vn 0.4120 0.5893 0.6950 +vn 0.4205 0.6572 0.6255 +vn 0.3875 0.6058 0.6949 +vn 0.5898 0.5168 0.6206 +vn 0.6480 0.4547 0.6110 +vn 0.6253 0.5664 0.5369 +vn 0.5543 0.4673 0.6888 +vn 0.6130 0.4059 0.6779 +vn 0.3900 0.6757 0.6256 +vn 0.3595 0.6228 0.6949 +vn 0.3584 0.6930 0.6255 +vn 0.3304 0.6388 0.6949 +vn 0.4203 0.5080 0.7519 +vn 0.4687 0.4670 0.7498 +vn 0.3913 0.5310 0.7516 +vn 0.3586 0.4855 0.7973 +vn 0.3876 0.4624 0.7975 +vn 0.4359 0.4215 0.7952 +vn 0.3782 0.5409 0.7513 +vn 0.3461 0.4949 0.7970 +vn 0.3557 0.5560 0.7512 +vn 0.3254 0.5089 0.7969 +vn 0.3240 0.7097 0.6255 +vn 0.2987 0.6542 0.6949 +vn 0.2888 0.7248 0.6255 +vn 0.2662 0.6681 0.6949 +vn 0.3299 0.5716 0.7513 +vn 0.3019 0.5232 0.7970 +vn 0.3032 0.5863 0.7512 +vn 0.2775 0.5365 0.7969 +vn 0.2529 0.7381 0.6255 +vn 0.2331 0.6803 0.6949 +vn 0.2741 0.6004 0.7512 +vn 0.2509 0.5495 0.7969 +vn 0.2443 0.6132 0.7512 +vn 0.2236 0.5612 0.7969 +vn 0.2139 0.6244 0.7512 +vn 0.1958 0.5714 0.7969 +vn 0.1830 0.6342 0.7512 +vn 0.1675 0.5804 0.7969 +vn 0.1517 0.6424 0.7512 +vn 0.1388 0.5879 0.7969 +vn 0.1200 0.6491 0.7512 +vn 0.1098 0.5940 0.7969 +vn 0.2291 0.5019 0.8340 +vn 0.2090 0.4577 0.8642 +vn 0.2312 0.4469 0.8642 +vn 0.2535 0.4900 0.8340 +vn 0.2042 0.5125 0.8340 +vn 0.1863 0.4674 0.8642 +vn 0.1788 0.5219 0.8340 +vn 0.1631 0.4760 0.8642 +vn 0.1530 0.5301 0.8340 +vn 0.1395 0.4834 0.8642 +vn 0.2757 0.4778 0.8341 +vn 0.2515 0.4358 0.8642 +vn 0.2710 0.4240 0.8642 +vn 0.2972 0.4648 0.8340 +vn 0.3162 0.4520 0.8341 +vn 0.2884 0.4122 0.8642 +vn 0.2998 0.4035 0.8645 +vn 0.3281 0.4430 0.8344 +vn 0.2291 0.3971 0.8887 +vn 0.2085 0.3614 0.9088 +vn 0.2246 0.3517 0.9088 +vn 0.2468 0.3863 0.8887 +vn 0.2106 0.4072 0.8887 +vn 0.1917 0.3706 0.9088 +vn 0.3570 0.4199 0.8344 +vn 0.4053 0.3790 0.8319 +vn 0.3287 0.3804 0.8645 +vn 0.3770 0.3397 0.8617 +vn 0.2628 0.3755 0.8888 +vn 0.2393 0.3418 0.9088 +vn 0.2498 0.3337 0.9090 +vn 0.2737 0.3671 0.8890 +vn 0.3026 0.3440 0.8889 +vn 0.3509 0.3034 0.8859 +vn 0.2786 0.3105 0.9088 +vn 0.3269 0.2701 0.9056 +vn 0.5200 0.4195 0.7441 +vn 0.5791 0.3587 0.7321 +vn 0.4874 0.3743 0.7889 +vn 0.5470 0.3142 0.7760 +vn 0.4570 0.3321 0.8251 +vn 0.5170 0.2726 0.8114 +vn 0.4289 0.2930 0.8545 +vn 0.4892 0.2341 0.8402 +vn 0.7130 0.3739 0.5932 +vn 0.7817 0.2695 0.5624 +vn 0.6787 0.3265 0.6578 +vn 0.7491 0.2244 0.6233 +vn 0.9064 0.2193 0.3610 +vn 0.9495 0.0502 0.3099 +vn 0.8774 0.1791 0.4450 +vn 0.9241 0.0156 0.3818 +vn 0.6458 0.2806 0.7101 +vn 0.7177 0.1809 0.6725 +vn 0.6145 0.2373 0.7524 +vn 0.6878 0.1399 0.7123 +vn 0.8474 0.1376 0.5128 +vn 0.8980 -0.0201 0.4395 +vn 0.8174 0.0965 0.5679 +vn 0.8720 -0.0551 0.4864 +vn 0.9605 -0.1381 0.2415 +vn 0.9318 -0.3251 0.1613 +vn 0.9438 -0.3098 0.1149 +vn 0.9783 -0.1153 0.1724 +vn 0.9404 -0.1652 0.2973 +vn 0.9181 -0.3432 0.1984 +vn 0.9601 -0.0589 0.2733 +vn 0.7522 0.5018 0.4271 +vn 0.7843 0.5414 0.3028 +vn 0.9804 -0.0354 0.1936 +vn 0.9372 -0.0864 0.3380 +vn 0.7166 0.4570 0.5269 +vn 0.9198 -0.1927 0.3419 +vn 0.9041 -0.3614 0.2279 +vn 0.8992 -0.2199 0.3782 +vn 0.8903 -0.3794 0.2518 +vn 0.7884 0.0569 0.6125 +vn 0.8469 -0.0889 0.5242 +vn 0.7610 0.0196 0.6485 +vn 0.8232 -0.1207 0.5548 +vn 0.9139 -0.1154 0.3892 +vn 0.6808 0.4113 0.6061 +vn 0.8906 -0.1447 0.4311 +vn 0.6451 0.3655 0.6710 +vn 0.8795 -0.2460 0.4074 +vn 0.8770 -0.3967 0.2712 +vn 0.8608 -0.2705 0.4311 +vn 0.8644 -0.4129 0.2869 +vn 0.8681 -0.1732 0.4652 +vn 0.6106 0.3209 0.7240 +vn 0.8468 -0.2005 0.4927 +vn 0.5781 0.2783 0.7670 +vn 0.7354 -0.0151 0.6775 +vn 0.8010 -0.1504 0.5794 +vn 0.6600 0.1016 0.7444 +vn 0.6342 0.0663 0.7703 +vn 0.7117 -0.0472 0.7009 +vn 0.7805 -0.1777 0.5993 +vn 0.8270 -0.2263 0.5147 +vn 0.5479 0.2381 0.8019 +vn 0.8527 -0.4280 0.2995 +vn 0.8419 -0.4419 0.3098 +vn 0.8087 -0.2505 0.5323 +vn 0.5202 0.2006 0.8301 +vn 0.8434 -0.2934 0.4501 +vn 0.8273 -0.3145 0.4655 +vn 0.7920 -0.2730 0.5461 +vn 0.4950 0.1656 0.8530 +vn 0.8319 -0.4547 0.3180 +vn 0.8228 -0.4665 0.3247 +vn 0.7768 -0.2940 0.5569 +vn 0.4723 0.1330 0.8714 +vn 0.8125 -0.3339 0.4779 +vn 0.7617 -0.2028 0.6154 +vn 0.7444 -0.2258 0.6284 +vn 0.7989 -0.3516 0.4880 +vn 0.7640 -0.3119 0.5648 +vn 0.4535 0.1048 0.8851 +vn 0.8150 -0.4765 0.3296 +vn 0.8084 -0.4850 0.3335 +vn 0.7535 -0.3279 0.5698 +vn 0.4380 0.0802 0.8954 +vn 0.7435 -0.3432 0.5740 +vn 0.4231 0.0564 0.9043 +vn 0.8021 -0.4931 0.3370 +vn 0.7965 -0.5003 0.3396 +vn 0.7347 -0.3565 0.5771 +vn 0.4105 0.0354 0.9112 +vn 0.7874 -0.3668 0.4955 +vn 0.7297 -0.2454 0.6382 +vn 0.7172 -0.2620 0.6457 +vn 0.7775 -0.3796 0.5014 +vn 0.7680 -0.3920 0.5065 +vn 0.7051 -0.2781 0.6523 +vn 0.6946 -0.2921 0.6575 +vn 0.7598 -0.4028 0.5104 +vn 0.7527 -0.4119 0.5135 +vn 0.7918 -0.5063 0.3416 +vn 0.6856 -0.3039 0.6615 +vn 0.6772 -0.3150 0.6649 +vn 0.7461 -0.4205 0.5162 +vn 0.7874 -0.5120 0.3434 +vn 0.6244 -0.1652 0.7634 +vn 0.5391 -0.0637 0.8398 +vn 0.5258 -0.0819 0.8466 +vn 0.6123 -0.1817 0.7695 +vn 0.6384 -0.1464 0.7556 +vn 0.5544 -0.0429 0.8312 +vn 0.6019 -0.1956 0.7743 +vn 0.5145 -0.0973 0.8519 +vn 0.5039 -0.1117 0.8565 +vn 0.5921 -0.2087 0.7783 +vn 0.6530 -0.1268 0.7467 +vn 0.5702 -0.0213 0.8212 +vn 0.6699 -0.1038 0.7352 +vn 0.5886 0.0040 0.8084 +vn 0.6899 -0.0767 0.7198 +vn 0.6105 0.0338 0.7913 +vn 0.4584 0.0220 0.8885 +vn 0.3866 0.0920 0.9176 +vn 0.3722 0.0721 0.9253 +vn 0.4444 0.0027 0.8958 +vn 0.4744 0.0440 0.8792 +vn 0.4031 0.1148 0.9079 +vn 0.4910 0.0669 0.8686 +vn 0.4201 0.1384 0.8969 +vn 0.5104 0.0937 0.8548 +vn 0.4401 0.1661 0.8825 +vn 0.5333 0.1252 0.8366 +vn 0.4636 0.1986 0.8635 +vn 0.5582 0.1596 0.8142 +vn 0.5853 0.1969 0.7865 +vn 0.4029 0.2569 0.8784 +vn 0.3790 0.2239 0.8979 +vn 0.3588 0.1958 0.9127 +vn 0.3065 0.2418 0.9207 +vn 0.2890 0.2175 0.9323 +vn 0.3415 0.1717 0.9241 +vn 0.2583 0.2820 0.9240 +vn 0.2295 0.3052 0.9242 +vn 0.2122 0.2808 0.9360 +vn 0.2410 0.2576 0.9357 +vn 0.2193 0.3130 0.9241 +vn 0.2022 0.2885 0.9359 +vn 0.2057 0.3222 0.9241 +vn 0.1895 0.2970 0.9359 +vn 0.3247 0.1486 0.9341 +vn 0.2722 0.1942 0.9424 +vn 0.2575 0.1738 0.9505 +vn 0.3101 0.1283 0.9420 +vn 0.2242 0.2340 0.9460 +vn 0.1955 0.2572 0.9464 +vn 0.1809 0.2366 0.9546 +vn 0.2097 0.2135 0.9542 +vn 0.1857 0.2648 0.9463 +vn 0.1712 0.2441 0.9545 +vn 0.1739 0.2727 0.9462 +vn 0.1603 0.2515 0.9545 +vn 0.1910 0.3311 0.9241 +vn 0.1760 0.3052 0.9359 +vn 0.1756 0.3395 0.9241 +vn 0.1619 0.3129 0.9359 +vn 0.1904 0.4170 0.8887 +vn 0.1733 0.3796 0.9088 +vn 0.1697 0.4259 0.8887 +vn 0.1545 0.3876 0.9088 +vn 0.1615 0.2802 0.9463 +vn 0.1489 0.2584 0.9545 +vn 0.1486 0.2873 0.9462 +vn 0.1370 0.2649 0.9545 +vn 0.1587 0.3477 0.9241 +vn 0.1463 0.3205 0.9359 +vn 0.1415 0.3551 0.9241 +vn 0.1304 0.3273 0.9359 +vn 0.1590 0.2265 0.9609 +vn 0.1475 0.2100 0.9665 +vn 0.1571 0.2025 0.9666 +vn 0.1686 0.2191 0.9610 +vn 0.1487 0.2335 0.9609 +vn 0.1378 0.2165 0.9665 +vn 0.1973 0.1959 0.9606 +vn 0.2450 0.1565 0.9568 +vn 0.1858 0.1794 0.9661 +vn 0.2332 0.1402 0.9623 +vn 0.2978 0.1112 0.9481 +vn 0.3600 0.0553 0.9313 +vn 0.2861 0.0950 0.9535 +vn 0.3485 0.0394 0.9365 +vn 0.1382 0.2398 0.9609 +vn 0.1281 0.2224 0.9665 +vn 0.1272 0.2459 0.9609 +vn 0.1179 0.2280 0.9665 +vn 0.1749 0.1639 0.9708 +vn 0.2222 0.1249 0.9670 +vn 0.1463 0.1869 0.9714 +vn 0.1362 0.1722 0.9756 +vn 0.1648 0.1492 0.9750 +vn 0.2118 0.1105 0.9711 +vn 0.1367 0.1944 0.9713 +vn 0.1265 0.1797 0.9756 +vn 0.1276 0.2006 0.9713 +vn 0.1179 0.1856 0.9755 +vn 0.4325 -0.0136 0.9015 +vn 0.4214 -0.0289 0.9064 +vn 0.2751 0.0798 0.9581 +vn 0.3377 0.0245 0.9409 +vn 0.2648 0.0655 0.9621 +vn 0.3275 0.0105 0.9448 +vn 0.4108 -0.0433 0.9107 +vn 0.4939 -0.1253 0.8604 +vn 0.4010 -0.0569 0.9143 +vn 0.4845 -0.1381 0.8638 +vn 0.5830 -0.2210 0.7819 +vn 0.6693 -0.3255 0.6679 +vn 0.5744 -0.2325 0.7849 +vn 0.6618 -0.3353 0.6705 +vn 0.2551 0.0521 0.9655 +vn 0.3179 -0.0027 0.9481 +vn 0.2020 0.0968 0.9746 +vn 0.1927 0.0840 0.9777 +vn 0.2459 0.0393 0.9685 +vn 0.3089 -0.0152 0.9510 +vn 0.7399 -0.4286 0.5185 +vn 0.7832 -0.5173 0.3450 +vn 0.7341 -0.4361 0.5205 +vn 0.7792 -0.5223 0.3464 +vn 0.3916 -0.0697 0.9175 +vn 0.4756 -0.1502 0.8667 +vn 0.3828 -0.0817 0.9202 +vn 0.4673 -0.1615 0.8692 +vn 0.5662 -0.2435 0.7875 +vn 0.6548 -0.3446 0.6727 +vn 0.5585 -0.2538 0.7897 +vn 0.6482 -0.3533 0.6746 +vn 0.7157 -0.3907 0.5789 +vn 0.3835 -0.0181 0.9234 +vn 0.3915 -0.0009 0.9202 +vn 0.7214 -0.3798 0.5791 +vn 0.7107 -0.4012 0.5779 +vn 0.3766 -0.0347 0.9257 +vn 0.7277 -0.3684 0.5785 +vn 0.4004 0.0169 0.9162 +vn 0.7286 -0.4433 0.5222 +vn 0.7755 -0.5271 0.3475 +vn 0.7233 -0.4500 0.5237 +vn 0.7720 -0.5315 0.3485 +vn 0.7062 -0.4114 0.5762 +vn 0.3707 -0.0509 0.9273 +vn 0.7023 -0.4213 0.5738 +vn 0.3659 -0.0668 0.9283 +vn 0.6990 -0.4310 0.5707 +vn 0.3620 -0.0824 0.9285 +vn 0.7687 -0.5357 0.3494 +vn 0.7656 -0.5397 0.3501 +vn 0.6963 -0.4404 0.5668 +vn 0.3592 -0.0978 0.9281 +vn 0.7184 -0.4564 0.5249 +vn 0.6419 -0.3616 0.6762 +vn 0.6360 -0.3694 0.6775 +vn 0.7138 -0.4624 0.5260 +vn 0.7094 -0.4681 0.5269 +vn 0.7627 -0.5435 0.3507 +vn 0.6304 -0.3768 0.6787 +vn 0.6251 -0.3838 0.6797 +vn 0.7052 -0.4735 0.5277 +vn 0.7599 -0.5470 0.3512 +vn 0.5513 -0.2635 0.7916 +vn 0.4593 -0.1723 0.8714 +vn 0.4519 -0.1824 0.8732 +vn 0.5444 -0.2727 0.7933 +vn 0.5379 -0.2814 0.7946 +vn 0.4448 -0.1921 0.8748 +vn 0.4381 -0.2012 0.8761 +vn 0.5318 -0.2896 0.7958 +vn 0.3745 -0.0931 0.9225 +vn 0.3003 -0.0270 0.9535 +vn 0.2922 -0.0382 0.9556 +vn 0.3666 -0.1039 0.9245 +vn 0.3592 -0.1141 0.9263 +vn 0.2846 -0.0488 0.9574 +vn 0.2773 -0.0588 0.9590 +vn 0.3521 -0.1238 0.9277 +vn 0.2372 0.0273 0.9711 +vn 0.1839 0.0719 0.9803 +vn 0.1757 0.0604 0.9826 +vn 0.2289 0.0159 0.9733 +vn 0.2212 0.0052 0.9752 +vn 0.1678 0.0495 0.9846 +vn 0.1604 0.0392 0.9863 +vn 0.2138 -0.0051 0.9769 +vn 0.3470 -0.1309 0.9287 +vn 0.4332 -0.2078 0.8770 +vn 0.2720 -0.0661 0.9600 +vn 0.2698 -0.0692 0.9604 +vn 0.3448 -0.1338 0.9291 +vn 0.4312 -0.2106 0.8773 +vn 0.2084 -0.0125 0.9780 +vn 0.1550 0.0317 0.9874 +vn 0.1527 0.0285 0.9879 +vn 0.2061 -0.0156 0.9784 +vn 0.1230 0.0861 0.9887 +vn 0.0952 0.1086 0.9895 +vn 0.0889 0.0973 0.9913 +vn 0.1164 0.0750 0.9904 +vn 0.1302 0.0975 0.9867 +vn 0.1022 0.1202 0.9875 +vn 0.5274 -0.2956 0.7965 +vn 0.6213 -0.3889 0.6802 +vn 0.5255 -0.2981 0.7968 +vn 0.6197 -0.3910 0.6805 +vn 0.1121 0.0667 0.9915 +vn 0.0850 0.0886 0.9924 +vn 0.0842 0.0841 0.9929 +vn 0.1108 0.0626 0.9919 +vn 0.7022 -0.4775 0.5281 +vn 0.7579 -0.5497 0.3514 +vn 0.7010 -0.4791 0.5282 +vn 0.7570 -0.5508 0.3515 +vn 0.6941 -0.4497 0.5621 +vn 0.6925 -0.4588 0.5567 +vn 0.3574 -0.1132 0.9271 +vn 0.3567 -0.1285 0.9253 +vn 0.6924 -0.4664 0.5505 +vn 0.3588 -0.1418 0.9226 +vn 0.6936 -0.4709 0.5451 +vn 0.3626 -0.1498 0.9198 +vn 0.5169 -0.3089 0.7984 +vn 0.6123 -0.3999 0.6820 +vn 0.4218 -0.2228 0.8789 +vn 0.4050 -0.2454 0.8808 +vn 0.5017 -0.3291 0.8000 +vn 0.5993 -0.4168 0.6834 +vn 0.6901 -0.4797 0.5419 +vn 0.3565 -0.1635 0.9199 +vn 0.7533 -0.5550 0.3529 +vn 0.7467 -0.5634 0.3537 +vn 0.6803 -0.4922 0.5431 +vn 0.3400 -0.1843 0.9222 +vn 0.6953 -0.4857 0.5298 +vn 0.6852 -0.4986 0.5309 +vn 0.6691 -0.5071 0.5432 +vn 0.3212 -0.2084 0.9238 +vn 0.7387 -0.5731 0.3547 +vn 0.6731 -0.5137 0.5321 +vn 0.5836 -0.4368 0.6846 +vn 0.5609 -0.4655 0.6846 +vn 0.6555 -0.5354 0.5325 +vn 0.4832 -0.3531 0.8012 +vn 0.3847 -0.2723 0.8820 +vn 0.3556 -0.3108 0.8815 +vn 0.4567 -0.3874 0.8008 +vn 0.6325 -0.5643 0.5306 +vn 0.5311 -0.5035 0.6815 +vn 0.4939 -0.5508 0.6728 +vn 0.6037 -0.6002 0.5247 +vn 0.4219 -0.4328 0.7967 +vn 0.3174 -0.3615 0.8767 +vn 0.2699 -0.4245 0.8643 +vn 0.3785 -0.4892 0.7857 +vn 0.5683 -0.6446 0.5114 +vn 0.4488 -0.6086 0.6544 +vn 0.3976 -0.6745 0.6220 +vn 0.5277 -0.6959 0.4871 +vn 0.6697 -0.6581 0.3441 +vn 0.6421 -0.6925 0.3288 +vn 0.5732 -0.6319 0.5217 +vn 0.1647 -0.4020 0.9007 +vn 0.5339 -0.6826 0.4990 +vn 0.1009 -0.4808 0.8710 +vn 0.3264 -0.5574 0.7634 +vn 0.2130 -0.5002 0.8393 +vn 0.1491 -0.5855 0.7968 +vn 0.2675 -0.6346 0.7250 +vn 0.2047 -0.7173 0.6660 +vn 0.3422 -0.7461 0.5712 +vn 0.0814 -0.6760 0.7324 +vn 0.0170 -0.7630 0.6462 +vn 0.1450 -0.7968 0.5866 +vn 0.2895 -0.8150 0.5019 +vn -0.0231 -0.6304 0.7759 +vn -0.1090 -0.5856 0.8032 +vn -0.1782 -0.6806 0.7106 +vn -0.0905 -0.7223 0.6857 +vn 0.0476 -0.5347 0.8437 +vn -0.0366 -0.4867 0.8728 +vn 0.1147 -0.4440 0.8887 +vn 0.0323 -0.3926 0.9191 +vn 0.1744 -0.3634 0.9152 +vn 0.0939 -0.3088 0.9465 +vn 0.2246 -0.2958 0.9285 +vn 0.1456 -0.2383 0.9602 +vn 0.2649 -0.2415 0.9335 +vn 0.1872 -0.1816 0.9654 +vn -0.1789 -0.5443 0.8196 +vn -0.2357 -0.5073 0.8289 +vn -0.3066 -0.6053 0.7346 +vn -0.2491 -0.6412 0.7258 +vn -0.1055 -0.4435 0.8901 +vn -0.1618 -0.4053 0.8998 +vn 0.2957 -0.2001 0.9341 +vn 0.2190 -0.1385 0.9658 +vn 0.3171 -0.1712 0.9328 +vn 0.2411 -0.1082 0.9644 +vn -0.0355 -0.3472 0.9371 +vn -0.0912 -0.3078 0.9471 +vn 0.0270 -0.2614 0.9649 +vn -0.0282 -0.2209 0.9749 +vn 0.0797 -0.1892 0.9787 +vn 0.0250 -0.1476 0.9887 +vn 0.1220 -0.1311 0.9838 +vn 0.0677 -0.0887 0.9938 +vn 0.3349 -0.1470 0.9307 +vn 0.2595 -0.0830 0.9622 +vn 0.1543 -0.0868 0.9842 +vn 0.1003 -0.0437 0.9940 +vn 0.1769 -0.0557 0.9826 +vn 0.1232 -0.0122 0.9923 +vn 0.1957 -0.0299 0.9802 +vn 0.1421 0.0140 0.9898 +vn -0.0167 -0.1154 0.9932 +vn -0.0428 -0.0946 0.9946 +vn -0.0961 -0.1688 0.9810 +vn -0.0700 -0.1892 0.9794 +vn 0.0261 -0.0559 0.9981 +vn -0.0000 -0.0350 0.9994 +vn 0.1006 0.0477 0.9938 +vn 0.0744 0.0689 0.9948 +vn 0.0555 0.0424 0.9976 +vn 0.0816 0.0212 0.9964 +vn 0.0588 -0.0106 0.9982 +vn 0.0326 0.0105 0.9994 +vn 0.0601 0.0805 0.9949 +vn 0.0417 0.0535 0.9977 +vn 0.0699 0.0953 0.9930 +vn 0.0623 0.1006 0.9930 +vn 0.0528 0.0854 0.9949 +vn 0.0356 0.0576 0.9977 +vn 0.0197 0.0212 0.9996 +vn -0.0117 -0.0251 0.9996 +vn 0.0150 0.0243 0.9996 +vn -0.0144 -0.0233 0.9996 +vn -0.0530 -0.0857 0.9949 +vn -0.1042 -0.1611 0.9814 +vn -0.0529 -0.0857 0.9949 +vn -0.1008 -0.1634 0.9814 +vn -0.1332 -0.2768 0.9517 +vn -0.1593 -0.2566 0.9533 +vn -0.2301 -0.3551 0.9061 +vn -0.2040 -0.3749 0.9043 +vn -0.1650 -0.2506 0.9539 +vn -0.2332 -0.3510 0.9069 +vn -0.1576 -0.2555 0.9539 +vn -0.2212 -0.3589 0.9068 +vn -0.2780 -0.4776 0.8334 +vn -0.3043 -0.4581 0.8352 +vn -0.3754 -0.5570 0.7408 +vn -0.3491 -0.5762 0.7390 +vn -0.3046 -0.4561 0.8362 +vn -0.3731 -0.5572 0.7418 +vn -0.2878 -0.4671 0.8361 +vn -0.3517 -0.5711 0.7417 +vn -0.0499 -0.0875 0.9949 +vn -0.0951 -0.1668 0.9814 +vn -0.0136 -0.0238 0.9996 +vn -0.0125 -0.0242 0.9996 +vn -0.0462 -0.0893 0.9949 +vn -0.0881 -0.1703 0.9814 +vn -0.4111 -0.6622 0.6264 +vn -0.3682 -0.6908 0.6223 +vn -0.4375 -0.6433 0.6283 +vn -0.4864 -0.7115 0.5072 +vn -0.4598 -0.7302 0.5054 +vn -0.4166 -0.7583 0.5014 +vn -0.1487 -0.2608 0.9539 +vn -0.2088 -0.3662 0.9068 +vn -0.1378 -0.2664 0.9540 +vn -0.1935 -0.3742 0.9069 +vn -0.4329 -0.6454 0.6293 +vn -0.4800 -0.7151 0.5081 +vn -0.4074 -0.6619 0.6292 +vn -0.4514 -0.7336 0.5080 +vn -0.2717 -0.4766 0.8361 +vn -0.3321 -0.5827 0.7417 +vn -0.2519 -0.4870 0.8363 +vn -0.3080 -0.5955 0.7420 +vn -0.3103 -0.7257 0.6141 +vn -0.2383 -0.7635 0.6002 +vn -0.3579 -0.7924 0.4939 +vn -0.2849 -0.8289 0.4815 +vn -0.1490 -0.8025 0.5778 +vn -0.0390 -0.8389 0.5429 +vn -0.1939 -0.8655 0.4618 +vn -0.0814 -0.8982 0.4319 +vn -0.4868 -0.7680 0.4162 +vn -0.4431 -0.7958 0.4128 +vn -0.5136 -0.7495 0.4177 +vn -0.5207 -0.7594 0.3901 +vn -0.4939 -0.7778 0.3887 +vn -0.4501 -0.8054 0.3857 +vn -0.5063 -0.7541 0.4183 +vn -0.5130 -0.7644 0.3905 +vn -0.4759 -0.7737 0.4182 +vn -0.4822 -0.7842 0.3905 +vn -0.3836 -0.8292 0.4065 +vn -0.3095 -0.8645 0.3960 +vn -0.3902 -0.8387 0.3799 +vn -0.3155 -0.8736 0.3704 +vn -0.4497 -0.7892 0.4183 +vn -0.4558 -0.7998 0.3906 +vn -0.4265 -0.7483 0.5081 +vn -0.3957 -0.7649 0.5083 +vn -0.4173 -0.8067 0.4184 +vn -0.4229 -0.8177 0.3906 +vn -0.2168 -0.8993 0.3797 +vn -0.1020 -0.9293 0.3550 +vn -0.2221 -0.9079 0.3555 +vn -0.1063 -0.9370 0.3328 +vn 0.0931 -0.8662 0.4909 +vn 0.2437 -0.8751 0.4180 +vn 0.0544 -0.9200 0.3882 +vn 0.2103 -0.9210 0.3280 +vn 0.0369 -0.9470 0.3190 +vn 0.1968 -0.9427 0.2696 +vn 0.0339 -0.9535 0.2995 +vn 0.1953 -0.9474 0.2535 +vn 0.3670 -0.9068 0.2072 +vn 0.3761 -0.8917 0.2518 +vn 0.3670 -0.9095 0.1953 +vn 0.4025 -0.8561 0.3241 +vn 0.5530 -0.8048 0.2156 +vn 0.5797 -0.7713 0.2629 +vn 0.4398 -0.8082 0.3916 +vn 0.3933 -0.8639 0.3147 +vn -0.1716 -0.8322 0.5273 +vn -0.0966 -0.7357 0.6704 +vn 0.4333 -0.8115 0.3921 +vn -0.3772 -0.8262 0.4184 +vn -0.3823 -0.8374 0.3906 +vn -0.3576 -0.7834 0.5083 +vn -0.3188 -0.8000 0.5083 +vn -0.3362 -0.8437 0.4184 +vn -0.3407 -0.8552 0.3906 +vn -0.3849 -0.6752 0.6292 +vn -0.3570 -0.6902 0.6294 +vn -0.3227 -0.7069 0.6294 +vn -0.2784 -0.6099 0.7420 +vn -0.2482 -0.6228 0.7420 +vn -0.2876 -0.7219 0.6294 +vn -0.2277 -0.4988 0.8363 +vn -0.1749 -0.3832 0.9069 +vn -0.1559 -0.3913 0.9070 +vn -0.2030 -0.5094 0.8363 +vn -0.2944 -0.8592 0.4184 +vn -0.2984 -0.8709 0.3906 +vn -0.2791 -0.8147 0.5083 +vn -0.2388 -0.8274 0.5083 +vn -0.2519 -0.8726 0.4184 +vn -0.2553 -0.8844 0.3906 +vn -0.2519 -0.7351 0.6294 +vn -0.2173 -0.6342 0.7420 +vn -0.1859 -0.6441 0.7420 +vn -0.2155 -0.7466 0.6294 +vn -0.2088 -0.8839 0.4184 +vn -0.2116 -0.8959 0.3906 +vn -0.1979 -0.8381 0.5083 +vn -0.1566 -0.8468 0.5083 +vn -0.1651 -0.8931 0.4184 +vn -0.1674 -0.9052 0.3906 +vn -0.1786 -0.7562 0.6294 +vn -0.1541 -0.6525 0.7420 +vn -0.1219 -0.6593 0.7420 +vn -0.1413 -0.7641 0.6294 +vn -0.1777 -0.5187 0.8363 +vn -0.1365 -0.3985 0.9070 +vn -0.1168 -0.4047 0.9070 +vn -0.1521 -0.5268 0.8363 +vn -0.1260 -0.5336 0.8363 +vn -0.0968 -0.4100 0.9069 +vn -0.0766 -0.4142 0.9070 +vn -0.0997 -0.5392 0.8363 +vn -0.1211 -0.9001 0.4184 +vn -0.1227 -0.9123 0.3906 +vn -0.1148 -0.8535 0.5083 +vn -0.0728 -0.8581 0.5083 +vn -0.0768 -0.9050 0.4184 +vn -0.0778 -0.9173 0.3906 +vn -0.1036 -0.7701 0.6294 +vn -0.0894 -0.6645 0.7420 +vn -0.0567 -0.6680 0.7420 +vn -0.0657 -0.7743 0.6294 +vn -0.0323 -0.9077 0.4184 +vn -0.0327 -0.9200 0.3906 +vn -0.0306 -0.8607 0.5083 +vn 0.0116 -0.8611 0.5083 +vn 0.0123 -0.9082 0.4184 +vn 0.0125 -0.9205 0.3906 +vn -0.0276 -0.7766 0.6294 +vn -0.0238 -0.6700 0.7420 +vn 0.0091 -0.6704 0.7420 +vn 0.0105 -0.7770 0.6294 +vn -0.0731 -0.5434 0.8363 +vn -0.0562 -0.4175 0.9069 +vn -0.0356 -0.4197 0.9070 +vn -0.0464 -0.5463 0.8363 +vn -0.0195 -0.5479 0.8363 +vn -0.0150 -0.4210 0.9069 +vn 0.0057 -0.4212 0.9070 +vn 0.0074 -0.5482 0.8363 +vn 0.0492 -0.9070 0.4183 +vn 0.0498 -0.9192 0.3906 +vn 0.0467 -0.8601 0.5080 +vn 0.0756 -0.8580 0.5080 +vn 0.0796 -0.9049 0.4182 +vn 0.0805 -0.9171 0.3905 +vn 0.0422 -0.7761 0.6292 +vn 0.0364 -0.6697 0.7417 +vn 0.0591 -0.6681 0.7417 +vn 0.0683 -0.7743 0.6291 +vn 0.1155 -0.9010 0.4182 +vn 0.1168 -0.9132 0.3904 +vn 0.1094 -0.8543 0.5081 +vn 0.1166 -0.8539 0.5072 +vn 0.1239 -0.9001 0.4177 +vn 0.1258 -0.9121 0.3902 +vn 0.0917 -0.9046 0.4162 +vn 0.0402 -0.9099 0.4129 +vn 0.0421 -0.9216 0.3859 +vn 0.0937 -0.9165 0.3889 +vn 0.0845 -0.8587 0.5054 +vn 0.0332 -0.8646 0.5014 +vn 0.0984 -0.7709 0.6293 +vn 0.0844 -0.6653 0.7418 +vn 0.0865 -0.6662 0.7408 +vn 0.1033 -0.7711 0.6282 +vn 0.0714 -0.7762 0.6264 +vn 0.0202 -0.7827 0.6221 +vn 0.0545 -0.6716 0.7389 +vn 0.0034 -0.6785 0.7346 +vn -0.0280 -0.9132 0.4066 +vn -0.1101 -0.9115 0.3963 +vn -0.1088 -0.9222 0.3710 +vn -0.0268 -0.9264 0.3756 +vn -0.0346 -0.8689 0.4938 +vn -0.1162 -0.8688 0.4814 +vn 0.0683 -0.5442 0.8362 +vn 0.0515 -0.4182 0.9069 +vn 0.0469 -0.4205 0.9061 +vn 0.0671 -0.5458 0.8352 +vn 0.0484 -0.5465 0.8361 +vn 0.0373 -0.4199 0.9068 +vn -0.2086 -0.9011 0.3801 +vn -0.3247 -0.8765 0.3554 +vn -0.3243 -0.8851 0.3337 +vn -0.2076 -0.9110 0.3563 +vn -0.2139 -0.8608 0.4618 +vn -0.3292 -0.8397 0.4319 +vn -0.0473 -0.7880 0.6138 +vn -0.1285 -0.7897 0.5998 +vn -0.0640 -0.6850 0.7258 +vn -0.1451 -0.6885 0.7106 +vn 0.0351 -0.5515 0.8334 +vn -0.0161 -0.5592 0.8289 +vn 0.0148 -0.4265 0.9043 +vn -0.0366 -0.4349 0.8997 +vn -0.4568 -0.8302 0.3195 +vn -0.5978 -0.7548 0.2702 +vn -0.5986 -0.7595 0.2547 +vn -0.4570 -0.8371 0.3006 +vn -0.4603 -0.7984 0.3882 +vn -0.6001 -0.7296 0.3281 +vn -0.2258 -0.7847 0.5773 +vn -0.3404 -0.7681 0.5423 +vn -0.2422 -0.6865 0.6856 +vn -0.3565 -0.6749 0.6461 +vn -0.7339 -0.6467 0.2078 +vn -0.7352 -0.6488 0.1964 +vn -0.7352 -0.6293 0.2521 +vn -0.4707 -0.7336 0.4902 +vn -0.6093 -0.6743 0.4172 +vn -0.4861 -0.6479 0.5864 +vn -0.6236 -0.5996 0.5017 +vn -0.7427 -0.5864 0.3233 +vn -0.8543 -0.4732 0.2150 +vn -0.7549 -0.5262 0.3915 +vn -0.8634 -0.4307 0.2628 +vn -0.7314 -0.6030 0.3185 +vn -0.2008 -0.8236 0.5305 +vn -0.7436 -0.5370 0.3984 +vn -0.2274 -0.7024 0.6745 +vn -0.5039 -0.5504 0.6657 +vn -0.6398 -0.5147 0.5708 +vn -0.3752 -0.5685 0.7322 +vn -0.3952 -0.4570 0.7968 +vn -0.5231 -0.4480 0.7250 +vn -0.6573 -0.4254 0.6221 +vn -0.2613 -0.5743 0.7758 +vn -0.1645 -0.5727 0.8031 +vn -0.1849 -0.4517 0.8728 +vn -0.2817 -0.4570 0.8437 +vn -0.5412 -0.3525 0.7635 +vn -0.6737 -0.3435 0.6544 +vn -0.4142 -0.3521 0.8393 +vn -0.4312 -0.2589 0.8643 +vn -0.5574 -0.2681 0.7858 +vn -0.6882 -0.2716 0.6728 +vn -0.3011 -0.3458 0.8887 +vn -0.2045 -0.3367 0.9191 +vn -0.2220 -0.2341 0.9465 +vn -0.3185 -0.2469 0.9152 +vn -0.7967 -0.3222 0.5113 +vn -0.8935 -0.2889 0.3438 +vn -0.8842 -0.3320 0.3285 +vn -0.7833 -0.3864 0.4870 +vn -0.8085 -0.2665 0.5247 +vn -0.9015 -0.2522 0.3516 +vn -0.8182 -0.2214 0.5306 +vn -0.9080 -0.2230 0.3547 +vn -0.7003 -0.2125 0.6815 +vn -0.7099 -0.1654 0.6846 +vn -0.8259 -0.1855 0.5325 +vn -0.9131 -0.1997 0.3554 +vn -0.5709 -0.1981 0.7967 +vn -0.4456 -0.1812 0.8767 +vn -0.4570 -0.1188 0.8815 +vn -0.5818 -0.1421 0.8008 +vn -0.8318 -0.1582 0.5320 +vn -0.7173 -0.1295 0.6846 +vn -0.7225 -0.1046 0.6834 +vn -0.8359 -0.1393 0.5309 +vn -0.9171 -0.1820 0.3547 +vn -0.9198 -0.1698 0.3537 +vn -0.3332 -0.1640 0.9285 +vn -0.2368 -0.1479 0.9602 +vn -0.2486 -0.0786 0.9654 +vn -0.3449 -0.0974 0.9336 +vn -0.5901 -0.0995 0.8012 +vn -0.4658 -0.0713 0.8820 +vn -0.4719 -0.0382 0.8808 +vn -0.5959 -0.0699 0.8000 +vn -0.3539 -0.0466 0.9341 +vn -0.2577 -0.0258 0.9659 +vn -0.2641 0.0111 0.9644 +vn -0.3602 -0.0112 0.9328 +vn -0.1558 -0.1335 0.9787 +vn -0.0883 -0.1208 0.9887 +vn -0.1002 -0.0490 0.9938 +vn -0.1677 -0.0626 0.9838 +vn -0.1410 -0.2217 0.9649 +vn -0.0736 -0.2101 0.9749 +vn -0.1768 -0.0085 0.9842 +vn -0.1093 0.0058 0.9940 +vn -0.1156 0.0442 0.9923 +vn -0.1832 0.0293 0.9826 +vn -0.3653 0.0184 0.9307 +vn -0.4750 -0.0109 0.8799 +vn -0.2692 0.0419 0.9622 +vn -0.2722 0.0589 0.9604 +vn -0.3683 0.0346 0.9291 +vn -0.4798 0.0046 0.8773 +vn -0.1235 -0.3264 0.9371 +vn -0.0561 -0.3161 0.9471 +vn -0.1039 -0.4438 0.8901 +vn -0.6005 -0.0450 0.7984 +vn -0.7265 -0.0837 0.6820 +vn -0.6034 -0.0315 0.7968 +vn -0.7270 -0.0727 0.6827 +vn -0.8392 -0.1233 0.5297 +vn -0.9220 -0.1593 0.3529 +vn -0.8413 -0.1149 0.5282 +vn -0.9235 -0.1539 0.3515 +vn -0.1884 0.0609 0.9802 +vn -0.1208 0.0761 0.9898 +vn -0.1238 0.0938 0.9879 +vn -0.1913 0.0783 0.9784 +vn -0.3689 0.0382 0.9287 +vn -0.4804 0.0080 0.8770 +vn -0.2729 0.0626 0.9600 +vn -0.2743 0.0715 0.9590 +vn -0.3703 0.0468 0.9277 +vn -0.4818 0.0161 0.8761 +vn -0.1920 0.0821 0.9780 +vn -0.1244 0.0977 0.9874 +vn -0.1259 0.1068 0.9863 +vn -0.1934 0.0911 0.9769 +vn -0.6039 -0.0284 0.7965 +vn -0.7267 -0.0702 0.6834 +vn -0.6052 -0.0211 0.7958 +vn -0.7307 -0.0636 0.6797 +vn -0.8261 -0.1180 0.5510 +vn -0.3793 0.0166 0.9251 +vn -0.3740 -0.0097 0.9274 +vn -0.8228 -0.1338 0.5523 +vn -0.8252 -0.1085 0.5543 +vn -0.3783 0.0316 0.9251 +vn -0.8194 -0.1524 0.5525 +vn -0.3681 -0.0398 0.9289 +vn -0.3594 -0.0830 0.9295 +vn -0.8146 -0.1792 0.5517 +vn -0.8417 -0.1128 0.5281 +vn -0.9237 -0.1525 0.3514 +vn -0.8425 -0.1080 0.5277 +vn -0.9243 -0.1493 0.3512 +vn -0.8439 -0.1013 0.5269 +vn -0.9252 -0.1449 0.3507 +vn -0.7324 -0.0549 0.6787 +vn -0.7341 -0.0458 0.6775 +vn -0.8453 -0.0942 0.5260 +vn -0.9262 -0.1402 0.3501 +vn -0.6070 -0.0110 0.7946 +vn -0.4837 0.0272 0.8748 +vn -0.4857 0.0390 0.8732 +vn -0.6089 -0.0003 0.7932 +vn -0.3723 0.0586 0.9263 +vn -0.2763 0.0837 0.9574 +vn -0.2784 0.0966 0.9556 +vn -0.3744 0.0711 0.9245 +vn -0.6109 0.0110 0.7916 +vn -0.7359 -0.0362 0.6762 +vn -0.4879 0.0514 0.8714 +vn -0.4901 0.0646 0.8693 +vn -0.6131 0.0229 0.7897 +vn -0.7377 -0.0260 0.6746 +vn -0.1955 0.1036 0.9752 +vn -0.1279 0.1193 0.9846 +vn -0.1301 0.1326 0.9826 +vn -0.1976 0.1167 0.9733 +vn -0.3766 0.0842 0.9225 +vn -0.2807 0.1102 0.9534 +vn -0.2831 0.1246 0.9510 +vn -0.3789 0.0982 0.9202 +vn -0.1999 0.1305 0.9711 +vn -0.1324 0.1466 0.9803 +vn -0.1348 0.1613 0.9777 +vn -0.2023 0.1452 0.9685 +vn -0.0714 0.1320 0.9887 +vn -0.0367 0.1396 0.9895 +vn -0.0377 0.1532 0.9875 +vn -0.0728 0.1455 0.9867 +vn -0.0704 0.1192 0.9904 +vn -0.0361 0.1267 0.9913 +vn -0.0743 0.1597 0.9844 +vn -0.0391 0.1674 0.9851 +vn -0.0408 0.1824 0.9824 +vn -0.0762 0.1746 0.9817 +vn -0.2048 0.1607 0.9655 +vn -0.2856 0.1398 0.9481 +vn -0.1373 0.1770 0.9746 +vn -0.1400 0.1935 0.9711 +vn -0.2075 0.1771 0.9621 +vn -0.2882 0.1559 0.9448 +vn -0.0703 0.1098 0.9915 +vn -0.0366 0.1172 0.9924 +vn -0.0710 0.1056 0.9919 +vn -0.0379 0.1129 0.9929 +vn -0.3814 0.1129 0.9175 +vn -0.4925 0.0785 0.8667 +vn -0.3840 0.1285 0.9143 +vn -0.4951 0.0932 0.8638 +vn -0.0686 0.0877 0.9938 +vn -0.0358 0.0949 0.9948 +vn -0.0634 0.0555 0.9964 +vn -0.0307 0.0627 0.9976 +vn -0.0223 0.1426 0.9895 +vn -0.0241 0.1559 0.9875 +vn -0.0208 0.1299 0.9913 +vn -0.0126 0.1310 0.9913 +vn -0.0141 0.1437 0.9895 +vn -0.0156 0.1571 0.9875 +vn -0.0572 0.0169 0.9982 +vn -0.0246 0.0240 0.9994 +vn -0.0483 -0.0383 0.9981 +vn -0.0157 -0.0313 0.9994 +vn -0.0199 0.1206 0.9925 +vn -0.0198 0.1165 0.9930 +vn -0.0108 0.1178 0.9930 +vn -0.0114 0.1218 0.9925 +vn -0.0176 0.0989 0.9949 +vn -0.0133 0.0665 0.9977 +vn -0.0061 0.0675 0.9977 +vn -0.0090 0.1000 0.9949 +vn -0.0366 -0.1106 0.9932 +vn -0.0041 -0.1038 0.9946 +vn -0.0219 -0.2005 0.9794 +vn 0.0104 -0.1940 0.9809 +vn -0.0081 0.0277 0.9996 +vn -0.0007 -0.0276 0.9996 +vn 0.0024 -0.0272 0.9996 +vn -0.0026 0.0285 0.9996 +vn -0.0055 0.1002 0.9950 +vn -0.0065 0.1181 0.9930 +vn -0.0037 0.0676 0.9977 +vn -0.0009 0.0678 0.9977 +vn -0.0014 0.1004 0.9949 +vn -0.0016 0.1183 0.9930 +vn -0.0016 0.0285 0.9996 +vn 0.0015 -0.0273 0.9996 +vn 0.0004 -0.0272 0.9996 +vn -0.0004 0.0287 0.9996 +vn 0.0091 -0.1003 0.9949 +vn 0.0212 -0.1907 0.9814 +vn 0.0171 -0.1912 0.9814 +vn 0.0090 -0.1003 0.9949 +vn -0.0068 0.1221 0.9925 +vn -0.0074 0.1314 0.9913 +vn -0.0017 0.1223 0.9925 +vn -0.0018 0.1316 0.9913 +vn 0.0055 -0.1006 0.9949 +vn 0.0105 -0.1917 0.9814 +vn 0.0026 -0.1917 0.9814 +vn 0.0014 -0.1005 0.9949 +vn 0.0163 -0.2997 0.9539 +vn 0.0229 -0.4209 0.9068 +vn 0.0041 -0.2999 0.9540 +vn 0.0266 -0.2990 0.9539 +vn -0.0046 -0.3071 0.9517 +vn 0.0276 -0.3008 0.9533 +vn -0.0835 -0.5670 0.8195 +vn 0.0355 -0.2979 0.9539 +vn 0.0298 -0.5478 0.8361 +vn -0.0107 -0.2997 0.9540 +vn -0.0068 -0.1916 0.9814 +vn -0.0254 -0.2988 0.9540 +vn -0.0162 -0.1911 0.9814 +vn -0.0036 -0.1005 0.9949 +vn -0.0010 -0.0272 0.9996 +vn -0.0085 -0.1002 0.9949 +vn -0.0023 -0.0271 0.9996 +vn -0.0400 -0.2972 0.9540 +vn -0.0256 -0.1900 0.9814 +vn -0.0545 -0.2949 0.9540 +vn -0.0349 -0.1885 0.9815 +vn 0.0010 0.0287 0.9996 +vn 0.0024 0.0678 0.9977 +vn 0.0024 0.0286 0.9996 +vn 0.0057 0.0676 0.9977 +vn -0.0134 -0.0996 0.9949 +vn -0.0036 -0.0270 0.9996 +vn -0.0183 -0.0989 0.9949 +vn -0.0049 -0.0267 0.9996 +vn -0.0689 -0.2918 0.9540 +vn -0.0441 -0.1866 0.9814 +vn -0.0832 -0.2881 0.9540 +vn -0.0532 -0.1842 0.9814 +vn 0.0036 0.1004 0.9949 +vn 0.0042 0.1182 0.9930 +vn 0.0085 0.1001 0.9949 +vn 0.0100 0.1178 0.9930 +vn 0.0038 0.0284 0.9996 +vn 0.0090 0.0672 0.9977 +vn 0.0052 0.0282 0.9996 +vn 0.0123 0.0667 0.9977 +vn -0.0231 -0.0978 0.9949 +vn -0.0063 -0.0265 0.9996 +vn -0.0279 -0.0966 0.9949 +vn -0.0075 -0.0261 0.9996 +vn -0.0972 -0.2837 0.9540 +vn -0.0621 -0.1814 0.9814 +vn -0.1110 -0.2786 0.9540 +vn -0.0710 -0.1781 0.9814 +vn -0.1245 -0.2728 0.9540 +vn -0.0796 -0.1744 0.9814 +vn -0.0326 -0.0951 0.9949 +vn -0.0088 -0.0257 0.9996 +vn -0.0372 -0.0934 0.9949 +vn -0.0101 -0.0253 0.9996 +vn 0.0066 0.0279 0.9996 +vn 0.0156 0.0660 0.9977 +vn 0.0080 0.0276 0.9996 +vn 0.0188 0.0651 0.9977 +vn -0.0417 -0.0915 0.9949 +vn -0.0113 -0.0247 0.9996 +vn 0.0093 0.0271 0.9996 +vn 0.0220 0.0641 0.9977 +vn 0.0106 0.0267 0.9996 +vn 0.0251 0.0630 0.9977 +vn 0.0119 0.0261 0.9996 +vn 0.0282 0.0617 0.9977 +vn 0.0132 0.0255 0.9996 +vn 0.0311 0.0602 0.9977 +vn 0.0141 0.0248 0.9996 +vn 0.0336 0.0588 0.9977 +vn 0.0326 0.0950 0.9949 +vn 0.0383 0.1119 0.9930 +vn 0.0328 0.1136 0.9930 +vn 0.0279 0.0965 0.9949 +vn 0.0372 0.0933 0.9949 +vn 0.0438 0.1099 0.9930 +vn 0.0497 0.0872 0.9950 +vn 0.0586 0.1027 0.9930 +vn 0.0543 0.1050 0.9930 +vn 0.0461 0.0892 0.9949 +vn 0.0417 0.0914 0.9949 +vn 0.0491 0.1076 0.9930 +vn 0.0607 0.1062 0.9925 +vn 0.0654 0.1142 0.9913 +vn 0.0605 0.1169 0.9913 +vn 0.0562 0.1086 0.9925 +vn 0.0647 0.1038 0.9925 +vn 0.0699 0.1115 0.9913 +vn 0.0508 0.1112 0.9925 +vn 0.0546 0.1197 0.9913 +vn 0.0487 0.1222 0.9913 +vn 0.0453 0.1136 0.9925 +vn 0.0396 0.1157 0.9925 +vn 0.0426 0.1245 0.9913 +vn 0.0365 0.1264 0.9913 +vn 0.0339 0.1175 0.9925 +vn 0.0231 0.0978 0.9949 +vn 0.0272 0.1151 0.9930 +vn 0.0215 0.1163 0.9930 +vn 0.0183 0.0988 0.9949 +vn 0.0281 0.1190 0.9925 +vn 0.0302 0.1281 0.9913 +vn 0.0239 0.1294 0.9913 +vn 0.0222 0.1202 0.9925 +vn 0.0134 0.0996 0.9949 +vn 0.0158 0.1172 0.9930 +vn 0.0163 0.1212 0.9925 +vn 0.0175 0.1304 0.9913 +vn 0.0111 0.1311 0.9913 +vn 0.0103 0.1218 0.9925 +vn 0.0043 0.1222 0.9925 +vn 0.0047 0.1315 0.9913 +vn 0.0192 0.1431 0.9895 +vn 0.0210 0.1564 0.9875 +vn 0.0133 0.1573 0.9875 +vn 0.0122 0.1438 0.9895 +vn 0.0262 0.1420 0.9895 +vn 0.0287 0.1552 0.9875 +vn -0.0082 0.1441 0.9895 +vn -0.0091 0.1576 0.9875 +vn -0.0020 0.1444 0.9895 +vn -0.0021 0.1578 0.9875 +vn 0.0051 0.1443 0.9895 +vn 0.0056 0.1577 0.9875 +vn -0.0260 0.1700 0.9851 +vn -0.0281 0.1849 0.9824 +vn -0.0172 0.1712 0.9851 +vn -0.0189 0.1862 0.9823 +vn -0.0099 0.1718 0.9851 +vn -0.0109 0.1868 0.9823 +vn -0.0023 0.1721 0.9851 +vn -0.0025 0.1871 0.9823 +vn 0.0061 0.1720 0.9851 +vn 0.0067 0.1870 0.9823 +vn 0.0145 0.1715 0.9851 +vn 0.0158 0.1864 0.9823 +vn 0.0332 0.1405 0.9895 +vn 0.0363 0.1536 0.9875 +vn 0.0400 0.1387 0.9895 +vn 0.0438 0.1517 0.9875 +vn 0.0229 0.1705 0.9851 +vn 0.0249 0.1854 0.9823 +vn 0.0313 0.1692 0.9851 +vn 0.0340 0.1840 0.9823 +vn 0.0468 0.1366 0.9895 +vn 0.0512 0.1493 0.9875 +vn 0.0534 0.1341 0.9895 +vn 0.0584 0.1466 0.9875 +vn 0.0395 0.1675 0.9851 +vn 0.0430 0.1821 0.9823 +vn 0.0477 0.1653 0.9851 +vn 0.0519 0.1798 0.9823 +vn 0.0600 0.1313 0.9895 +vn 0.0656 0.1436 0.9875 +vn 0.0663 0.1282 0.9895 +vn 0.0725 0.1402 0.9875 +vn 0.0558 0.1628 0.9851 +vn 0.0606 0.1770 0.9823 +vn 0.0637 0.1599 0.9851 +vn 0.0693 0.1738 0.9823 +vn 0.0271 0.2012 0.9792 +vn 0.0293 0.2179 0.9755 +vn 0.0186 0.2191 0.9755 +vn 0.0172 0.2023 0.9792 +vn 0.0369 0.1996 0.9792 +vn 0.0400 0.2162 0.9755 +vn 0.0467 0.1976 0.9792 +vn 0.0505 0.2140 0.9755 +vn 0.0563 0.1951 0.9792 +vn 0.0610 0.2112 0.9755 +vn 0.0072 0.2029 0.9792 +vn 0.0078 0.2197 0.9755 +vn -0.0030 0.2198 0.9755 +vn -0.0027 0.2030 0.9792 +vn 0.0715 0.1565 0.9851 +vn 0.0777 0.1702 0.9823 +vn 0.0791 0.1528 0.9851 +vn 0.0860 0.1662 0.9823 +vn -0.0118 0.2027 0.9792 +vn -0.0129 0.2195 0.9755 +vn -0.0224 0.2187 0.9755 +vn -0.0206 0.2020 0.9792 +vn 0.0718 0.1252 0.9895 +vn 0.0786 0.1369 0.9875 +vn 0.0769 0.1222 0.9895 +vn 0.0842 0.1335 0.9875 +vn 0.0718 0.0989 0.9925 +vn 0.0768 0.1068 0.9913 +vn 0.0838 0.1174 0.9895 +vn 0.0914 0.1286 0.9875 +vn 0.0857 0.1492 0.9851 +vn 0.0933 0.1622 0.9823 +vn 0.0920 0.1454 0.9851 +vn 0.1001 0.1581 0.9823 +vn 0.1380 0.1095 0.9844 +vn 0.1098 0.1323 0.9851 +vn 0.1463 0.1221 0.9817 +vn 0.1180 0.1449 0.9824 +vn 0.0994 0.1404 0.9851 +vn 0.1079 0.1528 0.9824 +vn 0.1546 0.1349 0.9787 +vn 0.1268 0.1582 0.9792 +vn 0.1169 0.1659 0.9792 +vn 0.1088 0.1714 0.9792 +vn 0.1012 0.1760 0.9792 +vn 0.1097 0.1905 0.9755 +vn 0.1010 0.1953 0.9755 +vn 0.0933 0.1803 0.9792 +vn 0.1186 0.2060 0.9713 +vn 0.1092 0.2111 0.9713 +vn 0.0843 0.1847 0.9792 +vn 0.0913 0.2000 0.9755 +vn 0.0814 0.2042 0.9755 +vn 0.0751 0.1886 0.9792 +vn 0.0987 0.2163 0.9713 +vn 0.1066 0.2335 0.9665 +vn 0.0950 0.2384 0.9665 +vn 0.0880 0.2208 0.9713 +vn 0.1150 0.2518 0.9609 +vn 0.1238 0.2713 0.9545 +vn 0.1104 0.2770 0.9545 +vn 0.1025 0.2571 0.9609 +vn 0.0658 0.1921 0.9792 +vn 0.0713 0.2080 0.9755 +vn 0.0770 0.2249 0.9713 +vn 0.0832 0.2428 0.9665 +vn 0.0712 0.2466 0.9665 +vn 0.0659 0.2284 0.9713 +vn 0.0546 0.2314 0.9713 +vn 0.0590 0.2498 0.9665 +vn 0.0467 0.2524 0.9665 +vn 0.0432 0.2338 0.9713 +vn 0.0897 0.2619 0.9609 +vn 0.0967 0.2821 0.9545 +vn 0.0827 0.2865 0.9545 +vn 0.0768 0.2659 0.9609 +vn 0.0636 0.2694 0.9609 +vn 0.0685 0.2902 0.9545 +vn 0.0542 0.2932 0.9545 +vn 0.0503 0.2722 0.9609 +vn 0.0317 0.2356 0.9713 +vn 0.0342 0.2544 0.9665 +vn 0.0217 0.2558 0.9665 +vn 0.0201 0.2369 0.9713 +vn 0.0369 0.2743 0.9609 +vn 0.0398 0.2956 0.9545 +vn 0.0252 0.2972 0.9545 +vn 0.0234 0.2758 0.9609 +vn 0.0085 0.2376 0.9713 +vn 0.0091 0.2565 0.9665 +vn -0.0035 0.2566 0.9665 +vn -0.0032 0.2377 0.9713 +vn 0.0098 0.2766 0.9609 +vn 0.0106 0.2980 0.9545 +vn -0.0040 0.2982 0.9545 +vn -0.0037 0.2768 0.9609 +vn -0.0139 0.2373 0.9713 +vn -0.0151 0.2562 0.9665 +vn -0.0264 0.2553 0.9665 +vn -0.0244 0.2365 0.9713 +vn -0.0163 0.2763 0.9609 +vn -0.0176 0.2977 0.9545 +vn -0.0309 0.2966 0.9545 +vn -0.0286 0.2753 0.9609 +vn 0.0115 0.3233 0.9462 +vn 0.0125 0.3521 0.9359 +vn -0.0048 0.3523 0.9359 +vn -0.0044 0.3234 0.9462 +vn 0.0273 0.3223 0.9462 +vn 0.0298 0.3511 0.9359 +vn -0.0191 0.3229 0.9462 +vn -0.0209 0.3517 0.9359 +vn -0.0366 0.3504 0.9359 +vn -0.0336 0.3217 0.9462 +vn -0.0408 0.2737 0.9609 +vn -0.0379 0.2538 0.9665 +vn -0.0439 0.2949 0.9545 +vn -0.0561 0.2925 0.9546 +vn -0.0529 0.2713 0.9610 +vn -0.0500 0.2514 0.9666 +vn 0.0431 0.3206 0.9462 +vn 0.0470 0.3492 0.9359 +vn 0.0588 0.3181 0.9462 +vn 0.0641 0.3465 0.9359 +vn -0.0352 0.2350 0.9714 +vn -0.0327 0.2174 0.9755 +vn -0.0473 0.2326 0.9714 +vn -0.0449 0.2149 0.9756 +vn 0.0743 0.3148 0.9462 +vn 0.0810 0.3429 0.9359 +vn 0.0897 0.3108 0.9462 +vn 0.0977 0.3385 0.9359 +vn -0.0303 0.2007 0.9792 +vn -0.0427 0.1982 0.9792 +vn -0.0783 0.1904 0.9786 +vn -0.0805 0.2071 0.9750 +vn -0.0831 0.2248 0.9709 +vn -0.1429 0.2111 0.9670 +vn -0.0858 0.2436 0.9661 +vn -0.1459 0.2297 0.9623 +vn -0.0888 0.2635 0.9606 +vn -0.1491 0.2495 0.9568 +vn -0.0920 0.2847 0.9542 +vn -0.2103 0.1945 0.9581 +vn -0.2911 0.1730 0.9409 +vn -0.2134 0.2130 0.9535 +vn -0.2166 0.2326 0.9481 +vn -0.3868 0.1451 0.9107 +vn -0.4978 0.1089 0.8604 +vn -0.6203 0.0632 0.7818 +vn -0.6177 0.0490 0.7849 +vn -0.6153 0.0356 0.7875 +vn -0.7398 -0.0152 0.6727 +vn -0.8499 -0.0705 0.5222 +vn -0.8482 -0.0789 0.5237 +vn -0.8467 -0.0868 0.5249 +vn -0.9272 -0.1352 0.3494 +vn -0.8153 -0.0887 0.5722 +vn -0.3559 0.0625 0.9324 +vn -0.3625 0.0483 0.9307 +vn -0.8182 -0.0979 0.5665 +vn -0.8128 -0.0793 0.5771 +vn -0.3502 0.0772 0.9335 +vn -0.8219 -0.1049 0.5599 +vn -0.3708 0.0372 0.9280 +vn -0.0958 0.3096 0.9460 +vn -0.0598 0.3175 0.9464 +vn -0.0642 0.3460 0.9360 +vn -0.1002 0.3382 0.9357 +vn -0.0475 0.3199 0.9463 +vn -0.0517 0.3485 0.9359 +vn -0.1048 0.3678 0.9240 +vn -0.0688 0.3756 0.9242 +vn -0.0560 0.3781 0.9241 +vn -0.0611 0.4127 0.9088 +vn -0.0398 0.3802 0.9241 +vn -0.0436 0.4150 0.9088 +vn -0.0670 0.4534 0.8888 +vn -0.0480 0.4559 0.8887 +vn -0.0227 0.3816 0.9241 +vn -0.0248 0.4165 0.9088 +vn -0.0052 0.3822 0.9241 +vn -0.0056 0.4172 0.9088 +vn -0.0273 0.4576 0.8887 +vn -0.0300 0.5023 0.8642 +vn -0.0062 0.4584 0.8887 +vn -0.0068 0.5031 0.8642 +vn 0.0136 0.3820 0.9241 +vn 0.0148 0.4170 0.9088 +vn 0.0323 0.3809 0.9241 +vn 0.0353 0.4158 0.9088 +vn -0.0329 0.5507 0.8341 +vn -0.0360 0.6030 0.7969 +vn -0.0075 0.5517 0.8340 +vn -0.0082 0.6040 0.7969 +vn 0.0163 0.4581 0.8887 +vn 0.0179 0.5029 0.8642 +vn 0.0388 0.4568 0.8887 +vn 0.0425 0.5014 0.8642 +vn 0.0510 0.3788 0.9241 +vn 0.0556 0.4135 0.9088 +vn 0.0695 0.3759 0.9241 +vn 0.0759 0.4103 0.9088 +vn -0.0394 0.6588 0.7512 +vn -0.0429 0.7178 0.6949 +vn -0.0089 0.6600 0.7512 +vn -0.0097 0.7191 0.6949 +vn 0.0196 0.5514 0.8340 +vn 0.0215 0.6037 0.7969 +vn 0.0466 0.5497 0.8340 +vn 0.0511 0.6019 0.7969 +vn 0.0611 0.4543 0.8887 +vn 0.0671 0.4987 0.8642 +vn 0.0833 0.4508 0.8887 +vn 0.0915 0.4948 0.8642 +vn -0.0466 0.7788 0.6256 +vn -0.0106 0.7801 0.6255 +vn 0.0235 0.6596 0.7512 +vn 0.0256 0.7187 0.6949 +vn 0.0558 0.6577 0.7512 +vn 0.0277 0.7797 0.6255 +vn 0.0880 0.6542 0.7512 +vn 0.0805 0.5987 0.7969 +vn 0.0736 0.5468 0.8340 +vn 0.1003 0.5425 0.8340 +vn 0.1268 0.5369 0.8340 +vn 0.1156 0.4897 0.8642 +vn 0.1486 0.4337 0.8887 +vn 0.1352 0.3947 0.9088 +vn 0.1271 0.4404 0.8887 +vn 0.1157 0.4009 0.9088 +vn 0.1054 0.4462 0.8887 +vn 0.0959 0.4061 0.9088 +vn 0.1239 0.3616 0.9241 +vn 0.1142 0.3333 0.9359 +vn 0.1060 0.3673 0.9241 +vn 0.1343 0.2943 0.9462 +vn 0.1197 0.3005 0.9462 +vn 0.0879 0.3720 0.9241 +vn 0.1048 0.3060 0.9462 +vn -0.7685 -0.4581 0.4468 +vn -0.8733 -0.3826 0.3016 +vn -0.7627 -0.4552 0.4595 +vn -0.2668 -0.5415 0.7973 +vn -0.7757 -0.3740 0.5084 +vn -0.2956 -0.3840 0.8747 +vn -0.7885 -0.3096 0.5314 +vn -0.3168 -0.2846 0.9048 +vn -0.7991 -0.2558 0.5441 +vn -0.3341 -0.2023 0.9206 +vn -0.8075 -0.2135 0.5499 +vn -0.3478 -0.1375 0.9274 +vn 0.4870 -0.7473 0.4521 +vn 0.6101 -0.7324 0.3021 +vn 0.0077 -0.6082 0.7937 +vn 0.4827 -0.7530 0.4472 +vn -0.8787 0.3879 0.2782 +vn -0.4331 0.7926 0.4292 +vn -0.8864 0.4187 0.1972 +vn -0.4445 0.8425 0.3044 +vn -0.8889 0.4579 0.0107 +vn -0.4545 0.8906 0.0154 +vn -0.4541 0.8879 0.0742 +vn -0.8898 0.4537 0.0495 +vn -0.9873 0.1587 0.0067 +vn -0.9876 0.1568 -0.0012 +vn -0.8865 0.4627 -0.0024 +vn -0.4539 0.8910 -0.0046 +vn -0.9340 0.3572 0.0108 +vn -0.8432 0.5373 0.0148 +vn -0.8442 0.5361 -0.0016 +vn -0.9346 0.3556 -0.0016 +vn -0.7309 0.6822 0.0181 +vn -0.6148 0.7884 0.0206 +vn -0.6155 0.7881 -0.0012 +vn -0.7318 0.6815 -0.0015 +vn -0.5069 0.8617 0.0224 +vn -0.4126 0.9106 0.0236 +vn -0.4130 0.9107 -0.0005 +vn -0.5075 0.8617 -0.0008 +vn -0.3325 0.9428 0.0244 +vn -0.2652 0.9639 0.0248 +vn -0.2653 0.9642 -0.0001 +vn -0.3328 0.9430 -0.0002 +vn -0.2031 0.9788 0.0250 +vn -0.1667 0.9857 0.0251 +vn -0.1667 0.9860 0.0000 +vn -0.2032 0.9791 0.0000 +vn -0.1454 0.9891 0.0251 +vn -0.1455 0.9894 0.0000 +vn -0.1052 0.9942 0.0230 +vn -0.1053 0.9944 0.0000 +vn -0.0597 0.9979 0.0251 +vn -0.0597 0.9982 0.0000 +vn -0.0135 0.9996 0.0230 +vn -0.0135 0.9999 0.0000 +vn 0.0355 0.9991 0.0251 +vn 0.0356 0.9994 0.0000 +vn 0.0845 0.9962 0.0231 +vn 0.0845 0.9964 0.0000 +vn 0.1333 0.9908 0.0251 +vn 0.1333 0.9911 0.0000 +vn 0.1818 0.9831 0.0230 +vn 0.1818 0.9833 0.0000 +vn 0.2298 0.9729 0.0251 +vn 0.2298 0.9732 0.0000 +vn 0.2772 0.9605 0.0229 +vn 0.2773 0.9608 0.0000 +vn 0.3240 0.9457 0.0251 +vn 0.3241 0.9460 0.0000 +vn 0.3700 0.9287 0.0230 +vn 0.3702 0.9290 0.0000 +vn 0.4152 0.9094 0.0251 +vn 0.4153 0.9097 0.0000 +vn 0.4593 0.8880 0.0230 +vn 0.4594 0.8882 0.0000 +vn 0.4998 0.8658 0.0251 +vn 0.5000 0.8660 0.0000 +vn 0.5390 0.8420 0.0230 +vn 0.5390 0.8423 0.0000 +vn 0.5725 0.8195 0.0251 +vn 0.5727 0.8198 0.0000 +vn 0.5901 0.8070 0.0228 +vn 0.5902 0.8072 0.0000 +vn 0.6196 0.7845 0.0251 +vn 0.6684 0.7434 0.0249 +vn 0.6686 0.7436 -0.0002 +vn 0.6198 0.7848 -0.0000 +vn 0.7192 0.6944 0.0244 +vn 0.7764 0.6298 0.0237 +vn 0.7768 0.6297 -0.0007 +vn 0.7195 0.6945 -0.0004 +vn 0.8389 0.5438 0.0225 +vn 0.9026 0.4300 0.0208 +vn 0.9031 0.4295 -0.0012 +vn 0.8394 0.5436 -0.0010 +vn 0.9589 0.2832 0.0183 +vn 0.9945 0.1033 0.0150 +vn 0.9948 0.1018 -0.0018 +vn 0.9594 0.2821 -0.0015 +vn 0.9951 -0.0983 0.0110 +vn 0.9540 -0.2997 0.0068 +vn 0.9535 -0.3015 -0.0015 +vn 0.9950 -0.1001 -0.0017 +vn 0.9942 -0.0977 0.0453 +vn 0.9538 -0.2989 0.0294 +vn 0.9999 -0.0024 0.0107 +vn 0.8143 0.5803 0.0154 +vn 0.8139 0.5809 -0.0046 +vn 1.0000 0.0028 -0.0025 +vn 0.9988 -0.0065 0.0487 +vn 0.8126 0.5782 0.0739 +vn 0.9936 -0.0173 0.1116 +vn 0.9514 -0.3007 0.0665 +vn 0.8049 0.5677 0.1731 +vn 0.9898 -0.1013 0.1006 +vn -0.8109 -0.0694 0.5811 +vn -0.3456 0.0924 0.9338 +vn -0.8901 0.4414 0.1139 +vn -0.4516 0.8751 0.1741 +vn 0.6591 0.6136 0.4348 +vn -0.8548 -0.5091 0.1009 +vn -0.7360 -0.6737 0.0668 +vn -0.7253 -0.6787 0.1151 +vn -0.8385 -0.5169 0.1726 +vn -0.9359 -0.3272 0.1305 +vn -0.9148 -0.3376 0.2217 +vn -0.9439 -0.3248 0.0594 +vn -0.8603 -0.5077 0.0452 +vn -0.7390 -0.6731 0.0294 +vn 0.0856 -0.9738 0.2106 +vn 0.6115 -0.7108 0.3477 +vn 0.6155 -0.7119 0.3381 +vn 0.0927 -0.9744 0.2046 +vn -0.1287 -0.9822 0.1370 +vn -0.1296 -0.9830 0.1299 +vn -0.1362 -0.9767 0.1657 +vn 0.0648 -0.9671 0.2462 +vn 0.5907 -0.7000 0.4014 +vn 0.3757 0.9141 0.1526 +vn 0.5378 0.8330 0.1302 +vn 0.5372 0.8413 0.0595 +vn 0.3745 0.9245 0.0706 +vn 0.2266 0.9594 0.1679 +vn 0.2248 0.9712 0.0784 +vn 0.2340 0.9301 0.2831 +vn 0.3820 0.8873 0.2583 +vn 0.5429 0.8101 0.2215 +vn 0.8225 0.1464 0.5496 +vn 0.9174 0.1802 0.3548 +vn 0.9238 0.1510 0.3518 +vn 0.8328 0.1046 0.5436 +vn 0.3725 0.0214 0.9278 +vn 0.3866 -0.0434 0.9212 +vn 0.3605 0.0760 0.9297 +vn 0.8143 0.1807 0.5516 +vn 0.9122 0.2036 0.3555 +vn 0.9262 -0.3130 0.2102 +vn 0.9850 -0.1054 0.1365 +vn 0.9861 -0.1050 0.1289 +vn 0.9253 -0.3200 0.2034 +vn 0.5492 -0.7603 0.3470 +vn 0.5487 -0.7650 0.3372 +vn 0.5450 -0.7366 0.4004 +vn 0.9243 -0.2916 0.2463 +vn 0.9815 -0.0966 0.1653 +vn -0.9767 -0.1506 0.1529 +vn -0.9857 0.0049 0.1682 +vn -0.9969 0.0094 0.0784 +vn -0.9866 -0.1471 0.0705 +vn -0.9521 -0.1631 0.2585 +vn -0.9590 -0.0092 0.2833 +vn -0.9750 0.1336 0.1778 +vn -0.9540 0.2369 0.1835 +vn -0.9662 0.2429 0.0867 +vn -0.9868 0.1389 0.0835 +vn -0.9470 0.1186 0.2986 +vn -0.9255 0.2214 0.3074 +vn -0.9144 -0.1832 0.3611 +vn -0.9180 -0.0313 0.3954 +vn -0.8821 -0.3547 0.3100 +vn -0.8447 -0.3753 0.3817 +vn -0.8712 -0.2073 0.4450 +vn -0.8712 -0.0577 0.4875 +vn -0.8128 -0.5300 0.2417 +vn -0.7080 -0.6875 0.1614 +vn -0.6880 -0.6981 0.1984 +vn -0.7833 -0.5460 0.2973 +vn -0.9292 0.3190 0.1866 +vn -0.9038 0.3844 0.1880 +vn -0.9161 0.3909 0.0896 +vn -0.9414 0.3253 0.0886 +vn -0.9004 0.3031 0.3120 +vn -0.8750 0.3684 0.3141 +vn -0.7529 -0.5623 0.3419 +vn -0.8060 -0.3966 0.4394 +vn -0.6676 -0.7088 0.2278 +vn -0.6475 -0.7192 0.2518 +vn -0.7229 -0.5783 0.3781 +vn -0.7676 -0.4175 0.4863 +vn -0.7839 -0.4783 0.3960 +vn -0.7866 0.1023 0.6089 +vn -0.7347 0.0757 0.6741 +vn -0.7498 -0.4953 0.4387 +vn -0.8177 -0.4616 0.3438 +vn -0.8385 0.1288 0.5294 +vn -0.7168 -0.5119 0.4734 +vn -0.6282 -0.7293 0.2712 +vn -0.6844 0.0496 0.7274 +vn -0.6367 0.0247 0.7707 +vn -0.6855 -0.5279 0.5014 +vn -0.6099 -0.7387 0.2869 +vn -0.6561 -0.5432 0.5239 +vn -0.5929 -0.7475 0.2995 +vn -0.5922 0.0009 0.8058 +vn -0.5511 -0.0215 0.8342 +vn -0.6289 -0.5576 0.5418 +vn -0.5772 -0.7556 0.3098 +vn -0.6939 -0.5937 0.4074 +vn -0.7306 -0.4376 0.5242 +vn -0.6666 -0.6081 0.4311 +vn -0.6956 -0.4564 0.5548 +vn -0.8265 -0.2323 0.5128 +vn -0.8225 -0.0851 0.5623 +vn -0.7820 -0.2569 0.5679 +vn -0.7739 -0.1122 0.6232 +vn -0.9041 0.0952 0.4165 +vn -0.8817 0.1973 0.4285 +vn -0.8553 0.0676 0.5138 +vn -0.8317 0.1689 0.5289 +vn -0.8563 0.2787 0.4349 +vn -0.8308 0.3437 0.4377 +vn -0.8057 0.2501 0.5369 +vn -0.7801 0.3151 0.5405 +vn -0.8042 0.0386 0.5931 +vn -0.7793 0.1392 0.6110 +vn -0.7532 0.0100 0.6577 +vn -0.7269 0.1098 0.6779 +vn -0.7390 -0.2807 0.6125 +vn -0.7271 -0.1384 0.6725 +vn -0.6984 -0.3029 0.6485 +vn -0.6827 -0.1630 0.7123 +vn -0.8770 0.4420 0.1885 +vn -0.8598 0.4746 0.1884 +vn -0.8719 0.4814 0.0900 +vn -0.8892 0.4487 0.0899 +vn -0.8483 0.4259 0.3147 +vn -0.8312 0.4585 0.3144 +vn -0.8043 0.4012 0.4384 +vn -0.7873 0.4339 0.4381 +vn -0.7535 0.3727 0.5416 +vn -0.7367 0.4055 0.5412 +vn -0.7527 0.2201 0.6205 +vn -0.7267 0.2850 0.6250 +vn -0.6996 0.1902 0.6887 +vn -0.6734 0.2550 0.6939 +vn -0.8494 0.4931 0.1882 +vn -0.8613 0.5000 0.0900 +vn -0.8211 0.4766 0.3141 +vn -0.8011 0.5095 0.3140 +vn -0.8287 0.5271 0.1882 +vn -0.8404 0.5345 0.0900 +vn -0.7039 -0.0177 0.7101 +vn -0.6763 0.0813 0.7321 +vn -0.6573 -0.0438 0.7524 +vn -0.6284 0.0544 0.7760 +vn -0.6412 -0.6215 0.4501 +vn -0.6631 -0.4739 0.5794 +vn -0.6177 -0.6339 0.4655 +vn -0.6330 -0.4901 0.5993 +vn -0.6038 -0.5713 0.5560 +vn -0.5133 -0.0427 0.8572 +vn -0.4788 -0.0628 0.8757 +vn -0.5808 -0.5842 0.5669 +vn -0.5628 -0.7630 0.3180 +vn -0.5495 -0.7698 0.3247 +vn -0.5613 -0.5952 0.5751 +vn -0.5383 -0.7756 0.3296 +vn -0.4497 -0.0805 0.8895 +vn -0.4252 -0.0964 0.8999 +vn -0.5448 -0.6054 0.5802 +vn -0.5287 -0.7805 0.3335 +vn -0.5961 -0.6452 0.4779 +vn -0.6053 -0.5049 0.6154 +vn -0.5763 -0.6556 0.4880 +vn -0.5799 -0.5185 0.6284 +vn -0.6605 -0.3236 0.6775 +vn -0.6414 -0.1860 0.7444 +vn -0.6255 -0.3428 0.7009 +vn -0.6031 -0.2071 0.7703 +vn -0.6483 0.1613 0.7441 +vn -0.6218 0.2260 0.7498 +vn -0.5998 0.1340 0.7889 +vn -0.5730 0.1986 0.7952 +vn -0.6138 -0.0681 0.7865 +vn -0.5837 0.0293 0.8114 +vn -0.5735 -0.0905 0.8142 +vn -0.5423 0.0061 0.8402 +vn -0.5933 -0.3603 0.7198 +vn -0.5679 -0.2266 0.7913 +vn -0.5638 -0.3764 0.7352 +vn -0.5355 -0.2444 0.8084 +vn -0.5595 -0.6645 0.4955 +vn -0.5583 -0.5301 0.6382 +vn -0.5451 -0.6719 0.5014 +vn -0.5400 -0.5399 0.6457 +vn -0.5364 -0.1112 0.8366 +vn -0.5041 -0.0153 0.8635 +vn -0.5024 -0.1301 0.8548 +vn -0.4691 -0.0349 0.8825 +vn -0.5387 -0.3901 0.7467 +vn -0.5081 -0.2596 0.8212 +vn -0.5173 -0.4018 0.7556 +vn -0.4846 -0.2726 0.8312 +vn -0.5313 -0.6791 0.5065 +vn -0.5222 -0.5493 0.6523 +vn -0.5195 -0.7852 0.3370 +vn -0.5114 -0.7894 0.3395 +vn -0.5192 -0.6855 0.5104 +vn -0.5068 -0.5576 0.6575 +vn -0.5289 -0.6153 0.5845 +vn -0.4016 -0.1118 0.9090 +vn -0.3811 -0.1256 0.9159 +vn -0.5152 -0.6239 0.5877 +vn -0.5037 -0.6319 0.5891 +vn -0.5046 -0.7929 0.3417 +vn -0.3642 -0.1382 0.9210 +vn -0.3485 -0.1507 0.9251 +vn -0.4930 -0.6397 0.5897 +vn -0.4982 -0.7961 0.3435 +vn -0.4830 -0.6474 0.5895 +vn -0.4922 -0.7992 0.3450 +vn -0.3341 -0.1630 0.9284 +vn -0.3208 -0.1753 0.9308 +vn -0.4739 -0.6550 0.5886 +vn -0.4865 -0.8021 0.3463 +vn -0.5090 -0.6908 0.5135 +vn -0.4937 -0.5646 0.6615 +vn -0.4994 -0.6958 0.5162 +vn -0.4814 -0.5711 0.6649 +vn -0.4967 -0.4130 0.7634 +vn -0.4621 -0.2850 0.8398 +vn -0.4787 -0.4228 0.7695 +vn -0.4423 -0.2959 0.8466 +vn -0.4654 -0.6626 0.5869 +vn -0.4812 -0.8048 0.3475 +vn -0.3086 -0.1877 0.9325 +vn -0.2975 -0.2002 0.9335 +vn -0.4576 -0.6702 0.5844 +vn -0.4761 -0.8074 0.3485 +vn -0.4904 -0.7005 0.5185 +vn -0.4698 -0.5772 0.6679 +vn -0.4819 -0.7049 0.5205 +vn -0.4589 -0.5830 0.6705 +vn -0.4634 -0.4310 0.7743 +vn -0.4256 -0.3051 0.8519 +vn -0.4491 -0.4388 0.7783 +vn -0.4099 -0.3137 0.8565 +vn -0.4735 -0.1463 0.8686 +vn -0.4393 -0.0516 0.8968 +vn -0.4488 -0.1600 0.8792 +vn -0.4139 -0.0658 0.9079 +vn -0.4249 -0.1732 0.8885 +vn -0.3894 -0.0795 0.9176 +vn -0.4041 -0.1848 0.8958 +vn -0.3679 -0.0914 0.9253 +vn -0.3865 -0.1946 0.9015 +vn -0.3498 -0.1016 0.9313 +vn -0.3699 -0.2038 0.9064 +vn -0.3327 -0.1111 0.9365 +vn -0.4079 0.0263 0.9127 +vn -0.3798 0.0901 0.9207 +vn -0.4102 0.1072 0.9057 +vn -0.4381 0.0433 0.8979 +vn -0.3820 0.0118 0.9241 +vn -0.3538 0.0755 0.9323 +vn -0.3571 -0.0021 0.9341 +vn -0.3287 0.0614 0.9424 +vn -0.3353 -0.0143 0.9420 +vn -0.3067 0.0491 0.9505 +vn -0.4737 0.0632 0.8784 +vn -0.4461 0.1273 0.8859 +vn -0.4850 0.1492 0.8617 +vn -0.5124 0.0849 0.8545 +vn -0.5544 0.1085 0.8251 +vn -0.5273 0.1729 0.8319 +vn -0.4194 0.1844 0.8889 +vn -0.4030 0.2175 0.8890 +vn -0.4419 0.2396 0.8645 +vn -0.4584 0.2065 0.8644 +vn -0.3835 0.1642 0.9088 +vn -0.3672 0.1972 0.9090 +vn -0.5007 0.2303 0.8344 +vn -0.4842 0.2634 0.8344 +vn -0.5298 0.2891 0.7973 +vn -0.5463 0.2561 0.7975 +vn -0.5952 0.2836 0.7519 +vn -0.5786 0.3166 0.7516 +vn -0.6302 0.3456 0.6953 +vn -0.6468 0.3126 0.6956 +vn -0.7002 0.3426 0.6264 +vn -0.6834 0.3755 0.6260 +vn -0.5709 0.3312 0.7513 +vn -0.6220 0.3609 0.6949 +vn -0.5225 0.3030 0.7970 +vn -0.5096 0.3243 0.7969 +vn -0.5569 0.3544 0.7512 +vn -0.6068 0.3860 0.6949 +vn -0.7776 0.4514 0.4377 +vn -0.7275 0.4222 0.5408 +vn -0.7098 0.4515 0.5407 +vn -0.7587 0.4826 0.4376 +vn -0.6747 0.3915 0.6256 +vn -0.6583 0.4188 0.6255 +vn -0.4772 0.2767 0.8341 +vn -0.4352 0.2523 0.8642 +vn -0.4244 0.2703 0.8642 +vn -0.4654 0.2963 0.8340 +vn -0.8038 0.5644 0.1882 +vn -0.8151 0.5723 0.0900 +vn -0.7770 0.5456 0.3140 +vn -0.7509 0.5809 0.3140 +vn -0.7768 0.6009 0.1882 +vn -0.7877 0.6094 0.0900 +vn -0.7464 0.6383 0.1882 +vn -0.7569 0.6473 0.0900 +vn -0.7215 0.6171 0.3140 +vn -0.6904 0.6517 0.3140 +vn -0.7142 0.6742 0.1882 +vn -0.7242 0.6837 0.0900 +vn -0.7359 0.5167 0.4376 +vn -0.6884 0.4834 0.5407 +vn -0.6654 0.5147 0.5407 +vn -0.7112 0.5502 0.4376 +vn -0.6802 0.7084 0.1882 +vn -0.6898 0.7184 0.0900 +vn -0.6576 0.6848 0.3140 +vn -0.6232 0.7163 0.3140 +vn -0.6447 0.7409 0.1882 +vn -0.6537 0.7514 0.0900 +vn -0.6075 0.7717 0.1882 +vn -0.6161 0.7825 0.0900 +vn -0.5873 0.7460 0.3140 +vn -0.5500 0.7739 0.3140 +vn -0.5689 0.8006 0.1882 +vn -0.5769 0.8118 0.0900 +vn -0.6834 0.5844 0.4376 +vn -0.6393 0.5468 0.5407 +vn -0.6117 0.5775 0.5407 +vn -0.6539 0.6172 0.4376 +vn -0.6228 0.6486 0.4376 +vn -0.5827 0.6068 0.5406 +vn -0.5522 0.6346 0.5407 +vn -0.5902 0.6784 0.4376 +vn -0.5562 0.7065 0.4376 +vn -0.5204 0.6610 0.5407 +vn -0.4873 0.6857 0.5407 +vn -0.5209 0.7329 0.4376 +vn -0.5404 0.5628 0.6255 +vn -0.4981 0.5187 0.6949 +vn -0.4720 0.5425 0.6949 +vn -0.5121 0.5886 0.6255 +vn -0.5673 0.5356 0.6255 +vn -0.5229 0.4937 0.6949 +vn -0.4826 0.6130 0.6255 +vn -0.4448 0.5650 0.6949 +vn -0.4166 0.5862 0.6949 +vn -0.4520 0.6360 0.6255 +vn -0.5290 0.8275 0.1882 +vn -0.5364 0.8392 0.0900 +vn -0.5113 0.8000 0.3140 +vn -0.4715 0.8241 0.3140 +vn -0.4877 0.8525 0.1882 +vn -0.4946 0.8645 0.0900 +vn -0.4453 0.8754 0.1882 +vn -0.4516 0.8877 0.0900 +vn -0.4305 0.8462 0.3140 +vn -0.3884 0.8663 0.3140 +vn -0.4018 0.8962 0.1882 +vn -0.4075 0.9088 0.0900 +vn -0.4843 0.7576 0.4376 +vn -0.4531 0.7088 0.5407 +vn -0.4178 0.7302 0.5406 +vn -0.4465 0.7805 0.4376 +vn -0.3600 0.9138 0.1882 +vn -0.3650 0.9266 0.0900 +vn -0.3480 0.8833 0.3140 +vn -0.3073 0.8983 0.3140 +vn -0.3178 0.9293 0.1882 +vn -0.3223 0.9423 0.0900 +vn -0.4077 0.8014 0.4376 +vn -0.3814 0.7498 0.5407 +vn -0.3442 0.7676 0.5406 +vn -0.3679 0.8205 0.4376 +vn -0.2799 0.9414 0.1882 +vn -0.2839 0.9546 0.0900 +vn -0.2706 0.9100 0.3141 +vn -0.2506 0.9156 0.3144 +vn -0.2595 0.9472 0.1884 +vn -0.2632 0.9605 0.0900 +vn -0.3296 0.8366 0.4376 +vn -0.3083 0.7827 0.5407 +vn -0.2723 0.7960 0.5406 +vn -0.2910 0.8508 0.4376 +vn -0.2237 0.9563 0.1884 +vn -0.1615 0.9688 0.1880 +vn -0.1650 0.9826 0.0855 +vn -0.2274 0.9696 0.0899 +vn -0.2149 0.9246 0.3147 +vn -0.1527 0.9370 0.3141 +vn -0.2562 0.8619 0.4377 +vn -0.2397 0.8063 0.5408 +vn -0.2213 0.8113 0.5412 +vn -0.2370 0.8671 0.4381 +vn -0.2012 0.8759 0.4385 +vn -0.1392 0.8883 0.4377 +vn -0.1854 0.8200 0.5416 +vn -0.1233 0.8323 0.5405 +vn -0.0920 0.9781 0.1865 +vn -0.0063 0.9830 0.1833 +vn -0.0093 0.9960 0.0891 +vn -0.0952 0.9915 0.0886 +vn -0.0834 0.9464 0.3120 +vn 0.0020 0.9516 0.3073 +vn 0.0990 0.9791 0.1776 +vn 0.0966 0.9918 0.0835 +vn 0.1070 0.9484 0.2985 +vn 0.1196 0.9013 0.4164 +vn 0.2458 0.8851 0.3953 +vn 0.0152 0.9034 0.4285 +vn 0.0310 0.8481 0.5289 +vn 0.1351 0.8472 0.5138 +vn 0.2605 0.8333 0.4875 +vn -0.1687 0.7610 0.6264 +vn -0.1065 0.7733 0.6250 +vn -0.2047 0.7525 0.6260 +vn -0.1880 0.6937 0.6953 +vn -0.1521 0.7021 0.6956 +vn -0.0899 0.7144 0.6939 +vn -0.2222 0.7478 0.6256 +vn -0.2048 0.6893 0.6950 +vn -0.2526 0.7382 0.6255 +vn -0.2328 0.6804 0.6949 +vn -0.0373 0.7833 0.6206 +vn 0.0475 0.7902 0.6110 +vn -0.0540 0.8419 0.5369 +vn -0.0207 0.7247 0.6888 +vn 0.0639 0.7324 0.6779 +vn -0.2860 0.7259 0.6256 +vn -0.2636 0.6690 0.6949 +vn -0.3192 0.7119 0.6255 +vn -0.2942 0.6562 0.6949 +vn -0.1359 0.6452 0.7518 +vn -0.0738 0.6575 0.7498 +vn -0.1720 0.6368 0.7516 +vn -0.1567 0.5829 0.7973 +vn -0.1206 0.5912 0.7975 +vn -0.0585 0.6036 0.7952 +vn -0.1879 0.6327 0.7513 +vn -0.1719 0.5790 0.7970 +vn -0.2138 0.6245 0.7512 +vn -0.1957 0.5715 0.7969 +vn -0.3537 0.6954 0.6255 +vn -0.3261 0.6410 0.6949 +vn -0.3874 0.6772 0.6255 +vn -0.3571 0.6242 0.6949 +vn -0.2420 0.6141 0.7512 +vn -0.2215 0.5620 0.7970 +vn -0.2700 0.6023 0.7512 +vn -0.2471 0.5512 0.7969 +vn -0.4202 0.6574 0.6255 +vn -0.3873 0.6059 0.6949 +vn -0.2993 0.5883 0.7512 +vn -0.2739 0.5384 0.7969 +vn -0.3278 0.5729 0.7512 +vn -0.3000 0.5243 0.7969 +vn -0.3555 0.5561 0.7512 +vn -0.3253 0.5090 0.7969 +vn -0.3824 0.5380 0.7512 +vn -0.3499 0.4924 0.7969 +vn -0.4083 0.5186 0.7512 +vn -0.3737 0.4746 0.7969 +vn -0.4333 0.4980 0.7512 +vn -0.3965 0.4557 0.7969 +vn -0.2501 0.4917 0.8340 +vn -0.2281 0.4485 0.8642 +vn -0.2059 0.4591 0.8642 +vn -0.2257 0.5034 0.8340 +vn -0.2740 0.4789 0.8340 +vn -0.2499 0.4367 0.8642 +vn -0.2971 0.4649 0.8340 +vn -0.2710 0.4240 0.8642 +vn -0.3196 0.4497 0.8340 +vn -0.2915 0.4102 0.8642 +vn -0.2023 0.5132 0.8341 +vn -0.1845 0.4681 0.8642 +vn -0.1631 0.4760 0.8642 +vn -0.1788 0.5219 0.8340 +vn -0.1569 0.5288 0.8341 +vn -0.1431 0.4823 0.8642 +vn -0.1292 0.4858 0.8645 +vn -0.1424 0.5325 0.8344 +vn -0.1681 0.4264 0.8888 +vn -0.1531 0.3882 0.9088 +vn -0.1354 0.3947 0.9088 +vn -0.1487 0.4337 0.8887 +vn -0.1876 0.4183 0.8887 +vn -0.1707 0.3808 0.9088 +vn -0.1063 0.5408 0.8344 +vn -0.0443 0.5532 0.8319 +vn -0.0931 0.4940 0.8645 +vn -0.0311 0.5065 0.8617 +vn -0.1303 0.4394 0.8888 +vn -0.1185 0.4000 0.9088 +vn -0.1056 0.4032 0.9090 +vn -0.1169 0.4428 0.8890 +vn -0.0808 0.4509 0.8889 +vn -0.0190 0.4635 0.8859 +vn -0.0695 0.4113 0.9088 +vn -0.0079 0.4239 0.9057 +vn -0.0046 0.6681 0.7441 +vn 0.0798 0.6765 0.7321 +vn 0.0105 0.6145 0.7889 +vn 0.0947 0.6236 0.7760 +vn 0.0246 0.5644 0.8251 +vn 0.1085 0.5743 0.8114 +vn 0.0377 0.5180 0.8545 +vn 0.1214 0.5286 0.8402 +vn 0.1512 0.7907 0.5932 +vn 0.2758 0.7795 0.5624 +vn 0.1671 0.7345 0.6578 +vn 0.2907 0.7260 0.6233 +vn 0.3926 0.8459 0.3610 +vn 0.5518 0.7743 0.3099 +vn 0.4060 0.7982 0.4450 +vn 0.5631 0.7329 0.3818 +vn 0.1824 0.6801 0.7101 +vn 0.3052 0.6742 0.6725 +vn 0.1968 0.6287 0.7524 +vn 0.3187 0.6254 0.7123 +vn 0.4198 0.7488 0.5128 +vn 0.5747 0.6904 0.4394 +vn 0.4333 0.6998 0.5680 +vn 0.5860 0.6481 0.4863 +vn 0.7060 0.6657 0.2415 +vn 0.8345 0.5269 0.1613 +vn 0.8300 0.5458 0.1149 +vn 0.6992 0.6938 0.1724 +vn 0.7146 0.6331 0.2974 +vn 0.8401 0.5048 0.1984 +vn 0.6331 0.7223 0.2781 +vn 0.0592 0.9014 0.4290 +vn 0.0477 0.9499 0.3088 +vn 0.6273 0.7534 0.1970 +vn 0.6404 0.6867 0.3440 +vn 0.0722 0.8454 0.5293 +vn 0.7234 0.5998 0.3419 +vn 0.8457 0.4826 0.2279 +vn 0.7319 0.5669 0.3782 +vn 0.8511 0.4606 0.2518 +vn 0.4463 0.6524 0.6125 +vn 0.5968 0.6074 0.5243 +vn 0.4584 0.6078 0.6485 +vn 0.6069 0.5691 0.5548 +vn 0.6487 0.6498 0.3961 +vn 0.0856 0.7887 0.6088 +vn 0.6573 0.6127 0.4388 +vn 0.0993 0.7320 0.6741 +vn 0.7400 0.5352 0.4074 +vn 0.8564 0.4394 0.2712 +vn 0.7476 0.5053 0.4311 +vn 0.8612 0.4195 0.2869 +vn 0.6657 0.5767 0.4736 +vn 0.1127 0.6769 0.7274 +vn 0.6739 0.5424 0.5016 +vn 0.1258 0.6247 0.7706 +vn 0.4696 0.5661 0.6775 +vn 0.6163 0.5333 0.5795 +vn 0.3313 0.5798 0.7444 +vn 0.3429 0.5376 0.7703 +vn 0.4800 0.5276 0.7009 +vn 0.6249 0.5003 0.5993 +vn 0.6819 0.5103 0.5241 +vn 0.1385 0.5759 0.8057 +vn 0.8658 0.4009 0.2995 +vn 0.8700 0.3837 0.3097 +vn 0.6895 0.4804 0.5420 +vn 0.1506 0.5306 0.8341 +vn 0.7547 0.4774 0.4501 +vn 0.7611 0.4517 0.4655 +vn 0.6969 0.4529 0.5561 +vn 0.1624 0.4889 0.8571 +vn 0.8738 0.3680 0.3180 +vn 0.8773 0.3535 0.3247 +vn 0.7040 0.4275 0.5671 +vn 0.1738 0.4507 0.8756 +vn 0.7671 0.4280 0.4779 +vn 0.6328 0.4699 0.6154 +vn 0.6401 0.4420 0.6284 +vn 0.7725 0.4063 0.4880 +vn 0.7101 0.4060 0.5752 +vn 0.1842 0.4183 0.8894 +vn 0.8803 0.3412 0.3296 +vn 0.8828 0.3308 0.3335 +vn 0.7162 0.3875 0.5804 +vn 0.1939 0.3908 0.8998 +vn 0.7221 0.3698 0.5847 +vn 0.2033 0.3642 0.9089 +vn 0.8852 0.3207 0.3370 +vn 0.8874 0.3119 0.3396 +vn 0.7272 0.3544 0.5879 +vn 0.2119 0.3411 0.9158 +vn 0.7772 0.3879 0.4955 +vn 0.6463 0.4183 0.6382 +vn 0.6515 0.3982 0.6457 +vn 0.7811 0.3722 0.5013 +vn 0.7849 0.3570 0.5065 +vn 0.6565 0.3787 0.6523 +vn 0.6610 0.3617 0.6575 +vn 0.7882 0.3438 0.5104 +vn 0.7910 0.3327 0.5135 +vn 0.8892 0.3044 0.3416 +vn 0.6647 0.3474 0.6615 +vn 0.6681 0.3339 0.6649 +vn 0.7936 0.3222 0.5162 +vn 0.8908 0.2974 0.3435 +vn 0.5180 0.3859 0.7634 +vn 0.3855 0.3823 0.8398 +vn 0.3914 0.3605 0.8467 +vn 0.5233 0.3661 0.7695 +vn 0.5120 0.4085 0.7556 +vn 0.3787 0.4071 0.8312 +vn 0.5278 0.3493 0.7743 +vn 0.3964 0.3421 0.8520 +vn 0.4011 0.3248 0.8565 +vn 0.5319 0.3335 0.7783 +vn 0.5057 0.4321 0.7467 +vn 0.3717 0.4330 0.8212 +vn 0.4982 0.4597 0.7352 +vn 0.3633 0.4632 0.8084 +vn 0.4895 0.4922 0.7198 +vn 0.3535 0.4988 0.7913 +vn 0.2682 0.3724 0.8885 +vn 0.1687 0.3598 0.9176 +vn 0.1753 0.3362 0.9253 +vn 0.2745 0.3495 0.8958 +vn 0.2609 0.3987 0.8792 +vn 0.1611 0.3869 0.9079 +vn 0.2533 0.4259 0.8686 +vn 0.1532 0.4150 0.8968 +vn 0.2444 0.4578 0.8548 +vn 0.1440 0.4478 0.8825 +vn 0.2340 0.4953 0.8366 +vn 0.1332 0.4865 0.8635 +vn 0.2226 0.5362 0.8142 +vn 0.2102 0.5807 0.7865 +vn 0.0497 0.4753 0.8784 +vn 0.0608 0.4360 0.8979 +vn 0.0702 0.4027 0.9126 +vn 0.0016 0.3903 0.9207 +vn 0.0097 0.3616 0.9323 +vn 0.0782 0.3741 0.9241 +vn -0.0599 0.3777 0.9240 +vn -0.0959 0.3696 0.9242 +vn -0.0876 0.3408 0.9360 +vn -0.0516 0.3489 0.9357 +vn -0.1085 0.3665 0.9241 +vn -0.0999 0.3378 0.9359 +vn -0.1241 0.3616 0.9240 +vn -0.1145 0.3332 0.9359 +vn 0.0859 0.3466 0.9341 +vn 0.0175 0.3339 0.9425 +vn 0.0243 0.3097 0.9505 +vn 0.0926 0.3226 0.9420 +vn -0.0436 0.3212 0.9460 +vn -0.0796 0.3131 0.9464 +vn -0.0725 0.2889 0.9546 +vn -0.0365 0.2970 0.9542 +vn -0.0917 0.3101 0.9463 +vn -0.0844 0.2860 0.9545 +vn -0.1052 0.3059 0.9462 +vn -0.0970 0.2820 0.9545 +vn -0.1403 0.3556 0.9241 +vn -0.1293 0.3277 0.9359 +vn -0.1564 0.3488 0.9241 +vn -0.1441 0.3215 0.9359 +vn -0.2079 0.4086 0.8887 +vn -0.1892 0.3719 0.9088 +vn -0.2277 0.3979 0.8887 +vn -0.2072 0.3622 0.9088 +vn -0.1187 0.3009 0.9462 +vn -0.1095 0.2774 0.9545 +vn -0.1323 0.2952 0.9462 +vn -0.1220 0.2721 0.9545 +vn -0.1733 0.3407 0.9241 +vn -0.1598 0.3140 0.9359 +vn -0.1898 0.3318 0.9241 +vn -0.1750 0.3058 0.9359 +vn -0.0783 0.2654 0.9609 +vn -0.0725 0.2462 0.9665 +vn -0.0607 0.2491 0.9666 +vn -0.0665 0.2684 0.9610 +vn -0.0901 0.2617 0.9609 +vn -0.0837 0.2427 0.9665 +vn -0.0305 0.2764 0.9606 +vn 0.0301 0.2891 0.9568 +vn -0.0248 0.2571 0.9661 +vn 0.0355 0.2698 0.9623 +vn 0.0984 0.3022 0.9481 +vn 0.1808 0.3161 0.9313 +vn 0.1037 0.2831 0.9535 +vn 0.1861 0.2973 0.9365 +vn -0.1017 0.2574 0.9609 +vn -0.0943 0.2387 0.9665 +vn -0.1132 0.2526 0.9609 +vn -0.1050 0.2342 0.9665 +vn -0.0194 0.2389 0.9708 +vn 0.0406 0.2516 0.9670 +vn -0.0552 0.2309 0.9714 +vn -0.0499 0.2138 0.9756 +vn -0.0142 0.2218 0.9750 +vn 0.0454 0.2345 0.9711 +vn -0.0671 0.2280 0.9713 +vn -0.0619 0.2109 0.9755 +vn -0.0776 0.2247 0.9713 +vn -0.0718 0.2078 0.9755 +vn 0.2799 0.3300 0.9015 +vn 0.2849 0.3118 0.9064 +vn 0.1088 0.2650 0.9581 +vn 0.1910 0.2796 0.9409 +vn 0.1135 0.2480 0.9621 +vn 0.1957 0.2629 0.9448 +vn 0.2897 0.2946 0.9107 +vn 0.4055 0.3085 0.8604 +vn 0.2941 0.2784 0.9143 +vn 0.4097 0.2932 0.8638 +vn 0.5359 0.3187 0.7819 +vn 0.6714 0.3212 0.6679 +vn 0.5395 0.3047 0.7849 +vn 0.6744 0.3092 0.6705 +vn 0.1180 0.2320 0.9655 +vn 0.2001 0.2471 0.9481 +vn 0.0499 0.2184 0.9746 +vn 0.0542 0.2031 0.9777 +vn 0.1223 0.2169 0.9685 +vn 0.2042 0.2323 0.9510 +vn 0.7960 0.3123 0.5185 +vn 0.8924 0.2909 0.3450 +vn 0.7983 0.3030 0.5205 +vn 0.8939 0.2847 0.3464 +vn 0.2983 0.2631 0.9175 +vn 0.4136 0.2788 0.8667 +vn 0.3023 0.2487 0.9202 +vn 0.4173 0.2651 0.8692 +vn 0.5430 0.2916 0.7875 +vn 0.6773 0.2980 0.6727 +vn 0.5463 0.2792 0.7897 +vn 0.6800 0.2873 0.6746 +vn 0.7425 0.3176 0.5898 +vn 0.2373 0.2865 0.9282 +vn 0.2286 0.3035 0.9250 +vn 0.7373 0.3291 0.5900 +vn 0.7477 0.3069 0.5888 +vn 0.2461 0.2707 0.9307 +vn 0.7322 0.3413 0.5894 +vn 0.2202 0.3216 0.9209 +vn 0.8005 0.2942 0.5222 +vn 0.8953 0.2788 0.3475 +vn 0.8025 0.2860 0.5237 +vn 0.8966 0.2733 0.3485 +vn 0.7531 0.2969 0.5871 +vn 0.2553 0.2560 0.9324 +vn 0.7586 0.2875 0.5846 +vn 0.2649 0.2423 0.9333 +vn 0.7644 0.2788 0.5814 +vn 0.2749 0.2295 0.9337 +vn 0.8978 0.2681 0.3494 +vn 0.8990 0.2632 0.3501 +vn 0.7703 0.2707 0.5774 +vn 0.2855 0.2177 0.9333 +vn 0.8044 0.2781 0.5249 +vn 0.6826 0.2773 0.6761 +vn 0.6850 0.2678 0.6775 +vn 0.8062 0.2708 0.5260 +vn 0.8079 0.2638 0.5269 +vn 0.9001 0.2585 0.3507 +vn 0.6873 0.2588 0.6787 +vn 0.6895 0.2503 0.6797 +vn 0.8096 0.2571 0.5277 +vn 0.9011 0.2541 0.3512 +vn 0.5494 0.2674 0.7916 +vn 0.4208 0.2522 0.8714 +vn 0.4241 0.2401 0.8732 +vn 0.5523 0.2563 0.7933 +vn 0.5551 0.2459 0.7946 +vn 0.4272 0.2285 0.8748 +vn 0.4301 0.2176 0.8762 +vn 0.5577 0.2359 0.7958 +vn 0.3060 0.2351 0.9225 +vn 0.2081 0.2182 0.9535 +vn 0.2118 0.2049 0.9556 +vn 0.3096 0.2222 0.9245 +vn 0.3129 0.2100 0.9263 +vn 0.2153 0.1923 0.9574 +vn 0.2186 0.1804 0.9590 +vn 0.3161 0.1985 0.9277 +vn 0.1263 0.2026 0.9711 +vn 0.0583 0.1887 0.9803 +vn 0.0621 0.1751 0.9826 +vn 0.1300 0.1891 0.9733 +vn 0.1336 0.1763 0.9752 +vn 0.0657 0.1621 0.9846 +vn 0.0692 0.1499 0.9863 +vn 0.1370 0.1641 0.9769 +vn 0.3184 0.1901 0.9287 +vn 0.4323 0.2097 0.8770 +vn 0.2211 0.1718 0.9600 +vn 0.2221 0.1681 0.9604 +vn 0.3194 0.1866 0.9291 +vn 0.4332 0.2063 0.8774 +vn 0.1395 0.1554 0.9780 +vn 0.0717 0.1410 0.9874 +vn 0.0727 0.1372 0.9879 +vn 0.1405 0.1516 0.9784 +vn 0.0092 0.1499 0.9887 +vn -0.0257 0.1421 0.9895 +vn -0.0208 0.1301 0.9913 +vn 0.0137 0.1378 0.9904 +vn 0.0047 0.1626 0.9867 +vn -0.0305 0.1548 0.9875 +vn 0.5597 0.2287 0.7965 +vn 0.6911 0.2442 0.6802 +vn 0.5605 0.2257 0.7968 +vn 0.6918 0.2416 0.6805 +vn 0.0176 0.1292 0.9915 +vn -0.0164 0.1217 0.9924 +vn -0.0134 0.1183 0.9929 +vn 0.0200 0.1257 0.9919 +vn 0.8108 0.2524 0.5281 +vn 0.9020 0.2509 0.3514 +vn 0.8114 0.2504 0.5282 +vn 0.9023 0.2496 0.3515 +vn 0.7765 0.2631 0.5725 +vn 0.7831 0.2561 0.5667 +vn 0.2968 0.2068 0.9323 +vn 0.3089 0.1967 0.9305 +vn 0.7893 0.2512 0.5602 +vn 0.3211 0.1901 0.9278 +vn 0.7939 0.2493 0.5546 +vn 0.3302 0.1882 0.9250 +vn 0.5635 0.2122 0.7984 +vn 0.6942 0.2302 0.6820 +vn 0.4369 0.1914 0.8789 +vn 0.4441 0.1642 0.8808 +vn 0.5699 0.1877 0.8000 +vn 0.6993 0.2095 0.6834 +vn 0.7988 0.2410 0.5512 +vn 0.3373 0.1749 0.9250 +vn 0.9033 0.2440 0.3529 +vn 0.9057 0.2337 0.3537 +vn 0.8025 0.2253 0.5524 +vn 0.3433 0.1488 0.9274 +vn 0.8130 0.2417 0.5297 +vn 0.8168 0.2259 0.5309 +vn 0.8074 0.2070 0.5525 +vn 0.3504 0.1189 0.9290 +vn 0.9084 0.2214 0.3547 +vn 0.8210 0.2070 0.5320 +vn 0.7051 0.1848 0.6846 +vn 0.7135 0.1491 0.6846 +vn 0.8271 0.1797 0.5325 +vn 0.5771 0.1584 0.8012 +vn 0.4525 0.1316 0.8820 +vn 0.4646 0.0848 0.8815 +vn 0.5875 0.1162 0.8008 +vn 0.8353 0.1438 0.5306 +vn 0.7247 0.1022 0.6815 +vn 0.7385 0.0437 0.6728 +vn 0.8455 0.0989 0.5247 +vn 0.6013 0.0608 0.7967 +vn 0.4805 0.0234 0.8767 +vn 0.5002 -0.0531 0.8643 +vn 0.6185 -0.0083 0.7857 +vn 0.8582 0.0435 0.5114 +vn 0.7557 -0.0276 0.6544 +vn 0.7754 -0.1087 0.6220 +vn 0.8731 -0.0203 0.4871 +vn 0.9319 0.1144 0.3441 +vn 0.9417 0.0714 0.3288 +vn 0.8460 0.0517 0.5306 +vn 0.4047 -0.1255 0.9058 +vn 0.8616 -0.0118 0.5075 +vn 0.4267 -0.2251 0.8760 +vn 0.6394 -0.0916 0.7634 +vn 0.5240 -0.1447 0.8393 +vn 0.5510 -0.2478 0.7968 +vn 0.6632 -0.1857 0.7250 +vn 0.6888 -0.2863 0.6660 +vn 0.7969 -0.1966 0.5712 +vn 0.5797 -0.3571 0.7324 +vn 0.6077 -0.4617 0.6462 +vn 0.7138 -0.3826 0.5866 +vn 0.8181 -0.2808 0.5019 +vn 0.4790 -0.4105 0.7759 +vn 0.3905 -0.4499 0.8032 +vn 0.4217 -0.5632 0.7106 +vn 0.5089 -0.5204 0.6857 +vn 0.4481 -0.2957 0.8437 +vn 0.3581 -0.3317 0.8728 +vn 0.4189 -0.1867 0.8887 +vn 0.3274 -0.2191 0.9191 +vn 0.3930 -0.0897 0.9152 +vn 0.3001 -0.1188 0.9465 +vn 0.3713 -0.0084 0.9285 +vn 0.2771 -0.0344 0.9602 +vn 0.3539 0.0570 0.9335 +vn 0.2587 0.0335 0.9654 +vn 0.3146 -0.4789 0.8196 +vn 0.2503 -0.5003 0.8289 +vn 0.2829 -0.6167 0.7346 +vn 0.3467 -0.5941 0.7258 +vn 0.2814 -0.3586 0.8901 +vn 0.2165 -0.3789 0.8998 +vn 0.3407 0.1068 0.9341 +vn 0.2447 0.0852 0.9659 +vn 0.3314 0.1416 0.9328 +vn 0.2348 0.1214 0.9644 +vn 0.2496 -0.2439 0.9371 +vn 0.1842 -0.2630 0.9471 +vn 0.2214 -0.1416 0.9648 +vn 0.1554 -0.1596 0.9749 +vn 0.1977 -0.0554 0.9787 +vn 0.1311 -0.0724 0.9887 +vn 0.1785 0.0139 0.9838 +vn 0.1116 -0.0022 0.9938 +vn 0.3235 0.1706 0.9307 +vn 0.2265 0.1515 0.9622 +vn 0.1640 0.0668 0.9842 +vn 0.0967 0.0513 0.9940 +vn 0.1538 0.1038 0.9826 +vn 0.0862 0.0888 0.9923 +vn 0.1452 0.1346 0.9802 +vn 0.0775 0.1200 0.9897 +vn 0.0799 -0.0849 0.9932 +vn 0.0474 -0.0924 0.9946 +vn 0.0722 -0.1803 0.9810 +vn 0.1045 -0.1726 0.9794 +vn 0.0600 -0.0144 0.9981 +vn 0.0274 -0.0218 0.9994 +vn 0.0253 0.1084 0.9938 +vn -0.0077 0.1011 0.9948 +vn 0.0013 0.0698 0.9976 +vn 0.0342 0.0771 0.9964 +vn 0.0449 0.0394 0.9982 +vn 0.0121 0.0321 0.9994 +vn -0.0256 0.0971 0.9949 +vn -0.0159 0.0659 0.9977 +vn -0.0311 0.1140 0.9930 +vn -0.0399 0.1114 0.9930 +vn -0.0340 0.0945 0.9949 +vn -0.0229 0.0638 0.9977 +vn -0.0043 0.0286 0.9996 +vn 0.0123 -0.0248 0.9996 +vn -0.0097 0.0269 0.9996 +vn 0.0093 -0.0257 0.9996 +vn 0.0341 -0.0948 0.9949 +vn 0.0612 -0.1819 0.9814 +vn 0.0651 -0.1806 0.9814 +vn 0.1337 -0.2765 0.9517 +vn 0.1017 -0.2844 0.9533 +vn 0.1346 -0.4011 0.9061 +vn 0.1664 -0.3930 0.9043 +vn 0.0934 -0.2851 0.9539 +vn 0.1295 -0.4010 0.9069 +vn 0.1019 -0.2824 0.9539 +vn 0.1432 -0.3965 0.9068 +vn 0.2007 -0.5149 0.8334 +vn 0.1691 -0.5233 0.8352 +vn 0.2022 -0.6406 0.7408 +vn 0.2336 -0.6319 0.7390 +vn 0.1674 -0.5223 0.8362 +vn 0.2038 -0.6389 0.7418 +vn 0.1864 -0.5160 0.8361 +vn 0.2280 -0.6308 0.7417 +vn 0.0374 -0.0935 0.9949 +vn 0.0713 -0.1783 0.9814 +vn 0.0102 -0.0254 0.9996 +vn 0.0111 -0.0248 0.9996 +vn 0.0411 -0.0917 0.9949 +vn 0.0784 -0.1749 0.9815 +vn 0.2624 -0.7340 0.6264 +vn 0.3114 -0.7182 0.6223 +vn 0.2311 -0.7429 0.6283 +vn 0.2540 -0.8236 0.5072 +vn 0.2852 -0.8144 0.5054 +vn 0.3341 -0.7981 0.5014 +vn 0.1115 -0.2787 0.9539 +vn 0.1566 -0.3914 0.9068 +vn 0.1227 -0.2736 0.9540 +vn 0.1723 -0.3844 0.9069 +vn 0.2356 -0.7406 0.6293 +vn 0.2608 -0.8208 0.5081 +vn 0.2644 -0.7309 0.6292 +vn 0.2931 -0.8099 0.5080 +vn 0.2038 -0.5093 0.8361 +vn 0.2492 -0.6227 0.7417 +vn 0.2243 -0.5003 0.8363 +vn 0.2743 -0.6118 0.7420 +vn 0.3748 -0.6946 0.6141 +vn 0.4492 -0.6618 0.6002 +vn 0.3974 -0.7734 0.4939 +vn 0.4713 -0.7389 0.4815 +vn 0.5353 -0.6162 0.5778 +vn 0.6322 -0.5527 0.5429 +vn 0.5567 -0.6905 0.4618 +vn 0.6523 -0.6229 0.4319 +vn 0.2981 -0.8590 0.4162 +vn 0.3469 -0.8422 0.4128 +vn 0.2668 -0.8685 0.4177 +vn 0.2702 -0.8802 0.3901 +vn 0.3013 -0.8707 0.3887 +vn 0.3501 -0.8536 0.3857 +vn 0.2750 -0.8657 0.4183 +vn 0.2788 -0.8774 0.3905 +vn 0.3092 -0.8541 0.4182 +vn 0.3136 -0.8655 0.3906 +vn 0.4102 -0.8164 0.4064 +vn 0.4839 -0.7804 0.3960 +vn 0.4134 -0.8275 0.3799 +vn 0.4873 -0.7908 0.3705 +vn 0.3376 -0.8432 0.4183 +vn 0.3422 -0.8546 0.3906 +vn 0.3201 -0.7996 0.5081 +vn 0.3523 -0.7858 0.5083 +vn 0.3716 -0.8288 0.4184 +vn 0.3766 -0.8400 0.3906 +vn 0.5689 -0.7295 0.3797 +vn 0.6638 -0.6583 0.3550 +vn 0.5722 -0.7390 0.3555 +vn 0.6672 -0.6665 0.3328 +vn 0.7358 -0.4664 0.4909 +vn 0.8366 -0.3540 0.4180 +vn 0.7538 -0.5302 0.3882 +vn 0.8517 -0.4088 0.3280 +vn 0.7641 -0.5607 0.3190 +vn 0.8602 -0.4328 0.2696 +vn 0.7673 -0.5670 0.2995 +vn 0.8630 -0.4369 0.2535 +vn 0.9382 -0.2773 0.2072 +vn 0.9320 -0.2608 0.2518 +vn 0.9402 -0.2790 0.1953 +vn 0.9206 -0.2180 0.3241 +vn 0.9741 -0.0682 0.2156 +vn 0.9645 -0.0265 0.2629 +vn 0.9063 -0.1589 0.3916 +vn 0.9168 -0.2386 0.3202 +vn 0.5321 -0.6599 0.5305 +vn 0.5032 -0.5403 0.6744 +vn 0.9004 -0.1735 0.3989 +vn 0.4118 -0.8095 0.4184 +vn 0.4174 -0.8205 0.3906 +vn 0.3905 -0.7676 0.5083 +vn 0.4277 -0.7475 0.5083 +vn 0.4510 -0.7884 0.4184 +vn 0.4571 -0.7990 0.3906 +vn 0.2889 -0.7216 0.6292 +vn 0.3179 -0.7091 0.6294 +vn 0.3523 -0.6926 0.6294 +vn 0.3040 -0.5976 0.7419 +vn 0.3329 -0.5819 0.7420 +vn 0.3859 -0.6745 0.6294 +vn 0.2486 -0.4887 0.8363 +vn 0.1910 -0.3755 0.9069 +vn 0.2092 -0.3656 0.9070 +vn 0.2723 -0.4759 0.8363 +vn 0.4892 -0.7653 0.4184 +vn 0.4958 -0.7756 0.3906 +vn 0.4638 -0.7256 0.5083 +vn 0.4989 -0.7020 0.5083 +vn 0.5261 -0.7404 0.4184 +vn 0.5333 -0.7504 0.3906 +vn 0.4185 -0.6547 0.6294 +vn 0.3611 -0.5649 0.7420 +vn 0.3884 -0.5465 0.7420 +vn 0.4501 -0.6334 0.6294 +vn 0.5618 -0.7136 0.4184 +vn 0.5694 -0.7233 0.3906 +vn 0.5327 -0.6767 0.5083 +vn 0.5653 -0.6497 0.5083 +vn 0.5962 -0.6852 0.4184 +vn 0.6042 -0.6945 0.3906 +vn 0.4807 -0.6105 0.6294 +vn 0.4147 -0.5268 0.7420 +vn 0.4401 -0.5058 0.7420 +vn 0.5100 -0.5862 0.6295 +vn 0.2953 -0.4620 0.8363 +vn 0.2269 -0.3549 0.9070 +vn 0.2440 -0.3434 0.9069 +vn 0.3176 -0.4469 0.8363 +vn 0.3392 -0.4308 0.8363 +vn 0.2606 -0.3310 0.9070 +vn 0.2765 -0.3178 0.9070 +vn 0.3599 -0.4136 0.8363 +vn 0.6291 -0.6551 0.4184 +vn 0.6376 -0.6640 0.3906 +vn 0.5965 -0.6212 0.5083 +vn 0.6262 -0.5912 0.5083 +vn 0.6605 -0.6235 0.4184 +vn 0.6694 -0.6319 0.3906 +vn 0.5382 -0.5605 0.6294 +vn 0.4644 -0.4836 0.7420 +vn 0.4875 -0.4602 0.7420 +vn 0.5651 -0.5334 0.6294 +vn 0.6903 -0.5903 0.4184 +vn 0.6996 -0.5983 0.3906 +vn 0.6545 -0.5597 0.5083 +vn 0.6812 -0.5269 0.5083 +vn 0.7184 -0.5557 0.4184 +vn 0.7281 -0.5633 0.3906 +vn 0.5905 -0.5050 0.6295 +vn 0.5095 -0.4357 0.7420 +vn 0.5303 -0.4102 0.7420 +vn 0.6146 -0.4755 0.6294 +vn 0.3798 -0.3955 0.8363 +vn 0.2918 -0.3038 0.9070 +vn 0.3063 -0.2892 0.9070 +vn 0.3987 -0.3764 0.8363 +vn 0.4167 -0.3564 0.8363 +vn 0.3201 -0.2738 0.9070 +vn 0.3332 -0.2577 0.9070 +vn 0.4337 -0.3355 0.8363 +vn 0.7404 -0.5261 0.4183 +vn 0.7504 -0.5332 0.3906 +vn 0.7021 -0.4989 0.5081 +vn 0.7185 -0.4750 0.5080 +vn 0.7577 -0.5010 0.4182 +vn 0.7678 -0.5079 0.3905 +vn 0.6336 -0.4501 0.6292 +vn 0.5468 -0.3884 0.7417 +vn 0.5597 -0.3697 0.7417 +vn 0.6485 -0.4285 0.6291 +vn 0.7770 -0.4705 0.4182 +vn 0.7874 -0.4770 0.3904 +vn 0.7367 -0.4462 0.5081 +vn 0.7409 -0.4404 0.5071 +vn 0.7815 -0.4634 0.4177 +vn 0.7921 -0.4693 0.3902 +vn 0.7651 -0.4914 0.4162 +vn 0.7371 -0.5350 0.4129 +vn 0.7475 -0.5407 0.3859 +vn 0.7756 -0.4972 0.3889 +vn 0.7247 -0.4684 0.5054 +vn 0.6973 -0.5122 0.5014 +vn 0.6646 -0.4029 0.6293 +vn 0.5732 -0.3481 0.7418 +vn 0.5752 -0.3470 0.7408 +vn 0.6678 -0.3992 0.6282 +vn 0.6519 -0.4274 0.6264 +vn 0.6251 -0.4714 0.6221 +vn 0.5595 -0.3754 0.7389 +vn 0.5331 -0.4198 0.7346 +vn 0.6972 -0.5904 0.4066 +vn 0.6448 -0.6536 0.3963 +vn 0.6540 -0.6592 0.3710 +vn 0.7082 -0.5976 0.3759 +vn 0.6584 -0.5679 0.4939 +vn 0.6076 -0.6317 0.4814 +vn 0.4684 -0.2853 0.8362 +vn 0.3594 -0.2200 0.9069 +vn 0.3583 -0.2251 0.9061 +vn 0.4689 -0.2873 0.8352 +vn 0.4578 -0.3023 0.8361 +vn 0.3519 -0.2322 0.9068 +vn 0.5754 -0.7242 0.3800 +vn 0.4838 -0.7998 0.3554 +vn 0.4908 -0.8048 0.3337 +vn 0.5837 -0.7296 0.3563 +vn 0.5405 -0.7033 0.4618 +vn 0.4522 -0.7804 0.4319 +vn 0.5873 -0.5275 0.6138 +vn 0.5381 -0.5922 0.5998 +vn 0.4962 -0.4765 0.7257 +vn 0.4485 -0.5422 0.7106 +vn 0.4535 -0.3159 0.8334 +vn 0.4276 -0.3608 0.8289 +vn 0.3430 -0.2539 0.9044 +vn 0.3176 -0.2993 0.8998 +vn 0.3654 -0.8743 0.3195 +vn 0.2186 -0.9377 0.2701 +vn 0.2218 -0.9412 0.2547 +vn 0.3706 -0.8788 0.3006 +vn 0.3383 -0.8572 0.3882 +vn 0.1974 -0.9238 0.3281 +vn 0.4736 -0.6652 0.5773 +vn 0.3892 -0.7446 0.5423 +vn 0.3865 -0.6169 0.6856 +vn 0.3062 -0.6991 0.6461 +vn 0.0492 -0.9769 0.2078 +vn 0.0502 -0.9792 0.1964 +vn 0.0348 -0.9671 0.2521 +vn 0.2811 -0.8250 0.4902 +vn 0.1484 -0.8966 0.4172 +vn 0.2045 -0.7838 0.5864 +vn 0.0811 -0.8612 0.5017 +vn -0.0035 -0.9463 0.3233 +vn -0.1615 -0.9632 0.2150 +vn -0.0581 -0.9183 0.3915 +vn -0.2004 -0.9438 0.2628 +vn 0.0165 -0.9478 0.3185 +vn 0.5195 -0.6698 0.5305 +vn -0.0427 -0.9162 0.3984 +vn 0.4081 -0.6152 0.6745 +vn 0.1170 -0.7370 0.6657 +vn 0.0045 -0.8211 0.5708 +vn 0.2113 -0.6475 0.7322 +vn 0.1117 -0.5938 0.7968 +vn 0.0250 -0.6883 0.7250 +vn -0.0762 -0.7793 0.6220 +vn 0.2868 -0.5621 0.7758 +vn 0.3458 -0.4852 0.8031 +vn 0.2384 -0.4259 0.8728 +vn 0.1823 -0.5049 0.8437 +vn -0.0610 -0.6429 0.7635 +vn -0.1505 -0.7410 0.6544 +vn 0.0177 -0.5433 0.8393 +vn -0.0658 -0.4986 0.8643 +vn -0.1372 -0.6031 0.7858 +vn -0.2159 -0.7076 0.6728 +vn 0.0832 -0.4509 0.8887 +vn 0.1362 -0.3696 0.9192 +vn 0.0450 -0.3195 0.9465 +vn -0.0051 -0.4030 0.9152 +vn -0.2438 -0.8241 0.5113 +vn -0.3301 -0.8791 0.3438 +vn -0.2906 -0.8986 0.3286 +vn -0.1852 -0.8536 0.4870 +vn -0.2947 -0.7986 0.5247 +vn -0.3639 -0.8625 0.3516 +vn -0.3360 -0.7782 0.5306 +vn -0.3907 -0.8494 0.3547 +vn -0.2696 -0.6803 0.6815 +vn -0.3125 -0.6585 0.6846 +vn -0.3689 -0.7618 0.5325 +vn -0.4121 -0.8389 0.3554 +vn -0.2004 -0.5702 0.7967 +vn -0.1356 -0.4615 0.8767 +vn -0.1915 -0.4316 0.8815 +vn -0.2509 -0.5438 0.8008 +vn -0.3940 -0.7495 0.5320 +vn -0.3452 -0.6420 0.6846 +vn -0.3679 -0.6306 0.6834 +vn -0.4113 -0.7409 0.5309 +vn -0.4285 -0.8310 0.3547 +vn -0.4397 -0.8256 0.3537 +vn -0.0791 -0.3628 0.9285 +vn -0.0316 -0.2774 0.9602 +vn -0.0932 -0.2436 0.9654 +vn -0.1385 -0.3306 0.9336 +vn -0.2895 -0.5238 0.8012 +vn -0.2342 -0.4089 0.8820 +vn -0.2639 -0.3931 0.8808 +vn -0.3163 -0.5098 0.8000 +vn -0.1839 -0.3060 0.9341 +vn -0.1403 -0.2178 0.9659 +vn -0.1731 -0.1997 0.9644 +vn -0.2155 -0.2889 0.9328 +vn 0.0075 -0.2051 0.9787 +vn 0.0396 -0.1444 0.9887 +vn -0.0241 -0.1089 0.9938 +vn -0.0554 -0.1702 0.9839 +vn 0.0857 -0.2484 0.9649 +vn 0.1187 -0.1884 0.9749 +vn -0.1034 -0.1437 0.9842 +vn -0.0726 -0.0819 0.9940 +vn -0.1066 -0.0630 0.9923 +vn -0.1370 -0.1251 0.9826 +vn -0.2418 -0.2744 0.9307 +vn -0.2873 -0.3786 0.8799 +vn -0.2004 -0.1846 0.9622 +vn -0.2155 -0.1764 0.9604 +vn -0.2563 -0.2667 0.9291 +vn -0.3023 -0.3727 0.8773 +vn 0.1785 -0.2999 0.9371 +vn 0.2124 -0.2407 0.9471 +vn 0.2826 -0.3576 0.8901 +vn -0.3386 -0.4979 0.7984 +vn -0.3868 -0.6207 0.6820 +vn -0.3509 -0.4919 0.7968 +vn -0.3956 -0.6142 0.6828 +vn -0.4259 -0.7335 0.5298 +vn -0.4493 -0.8208 0.3529 +vn -0.4338 -0.7299 0.5282 +vn -0.4544 -0.8185 0.3515 +vn -0.1649 -0.1095 0.9802 +vn -0.1348 -0.0472 0.9897 +vn -0.1504 -0.0385 0.9879 +vn -0.1804 -0.1010 0.9784 +vn -0.2596 -0.2649 0.9287 +vn -0.3053 -0.3710 0.8770 +vn -0.2189 -0.1746 0.9600 +vn -0.2267 -0.1702 0.9590 +vn -0.2671 -0.2607 0.9277 +vn -0.3125 -0.3671 0.8761 +vn -0.1838 -0.0991 0.9780 +vn -0.1539 -0.0366 0.9874 +vn -0.1619 -0.0321 0.9863 +vn -0.1917 -0.0947 0.9769 +vn -0.3537 -0.4904 0.7965 +vn -0.3975 -0.6124 0.6833 +vn -0.3602 -0.4868 0.7958 +vn -0.4051 -0.6115 0.6797 +vn -0.4220 -0.7200 0.5509 +vn -0.2491 -0.2865 0.9251 +vn -0.2253 -0.2987 0.9274 +vn -0.4075 -0.7273 0.5523 +vn -0.4288 -0.7134 0.5543 +vn -0.2603 -0.2764 0.9251 +vn -0.3909 -0.7362 0.5525 +vn -0.1980 -0.3128 0.9290 +vn -0.1588 -0.3329 0.9295 +vn -0.3668 -0.7490 0.5517 +vn -0.4356 -0.7289 0.5281 +vn -0.4556 -0.8179 0.3514 +vn -0.4400 -0.7266 0.5277 +vn -0.4585 -0.8163 0.3512 +vn -0.4460 -0.7235 0.5269 +vn -0.4626 -0.8143 0.3507 +vn -0.4129 -0.6073 0.6787 +vn -0.4211 -0.6030 0.6775 +vn -0.4524 -0.7202 0.5260 +vn -0.4669 -0.8121 0.3501 +vn -0.3693 -0.4819 0.7946 +vn -0.3224 -0.3616 0.8748 +vn -0.3329 -0.3559 0.8732 +vn -0.3788 -0.4767 0.7932 +vn -0.2776 -0.2549 0.9263 +vn -0.2375 -0.1642 0.9574 +vn -0.2489 -0.1578 0.9556 +vn -0.2887 -0.2488 0.9245 +vn -0.3889 -0.4713 0.7916 +vn -0.4298 -0.5984 0.6762 +vn -0.3440 -0.3498 0.8714 +vn -0.3557 -0.3434 0.8692 +vn -0.3996 -0.4655 0.7897 +vn -0.4389 -0.5936 0.6745 +vn -0.2027 -0.0885 0.9752 +vn -0.1730 -0.0258 0.9846 +vn -0.1847 -0.0193 0.9826 +vn -0.2143 -0.0820 0.9733 +vn -0.3004 -0.2423 0.9225 +vn -0.2610 -0.1511 0.9534 +vn -0.2737 -0.1440 0.9510 +vn -0.3127 -0.2355 0.9202 +vn -0.2266 -0.0752 0.9711 +vn -0.1971 -0.0124 0.9803 +vn -0.2102 -0.0050 0.9776 +vn -0.2395 -0.0679 0.9685 +vn -0.1478 0.0263 0.9887 +vn -0.1321 0.0582 0.9895 +vn -0.1434 0.0658 0.9875 +vn -0.1592 0.0336 0.9867 +vn -0.1372 0.0191 0.9904 +vn -0.1217 0.0506 0.9913 +vn -0.1713 0.0412 0.9844 +vn -0.1554 0.0736 0.9851 +vn -0.1681 0.0816 0.9824 +vn -0.1841 0.0491 0.9817 +vn -0.2532 -0.0603 0.9655 +vn -0.2872 -0.1365 0.9481 +vn -0.2240 0.0027 0.9746 +vn -0.2386 0.0109 0.9711 +vn -0.2678 -0.0522 0.9621 +vn -0.3015 -0.1285 0.9448 +vn -0.1297 0.0133 0.9915 +vn -0.1145 0.0443 0.9924 +vn -0.1268 0.0102 0.9919 +vn -0.1120 0.0406 0.9929 +vn -0.3258 -0.2282 0.9175 +vn -0.3680 -0.3366 0.8667 +vn -0.3396 -0.2206 0.9143 +vn -0.3812 -0.3294 0.8638 +vn -0.1113 0.0009 0.9938 +vn -0.0966 0.0310 0.9948 +vn -0.0829 -0.0151 0.9964 +vn -0.0682 0.0150 0.9976 +vn -0.1255 0.0713 0.9895 +vn -0.1370 0.0782 0.9875 +vn -0.1146 0.0646 0.9913 +vn -0.1104 0.0717 0.9913 +vn -0.1212 0.0784 0.9895 +vn -0.1327 0.0856 0.9875 +vn -0.0488 -0.0343 0.9982 +vn -0.0341 -0.0043 0.9994 +vn -0.0001 -0.0616 0.9981 +vn 0.0147 -0.0318 0.9994 +vn -0.1067 0.0595 0.9925 +vn -0.1035 0.0571 0.9930 +vn -0.0989 0.0649 0.9930 +vn -0.1024 0.0669 0.9925 +vn -0.0883 0.0478 0.9949 +vn -0.0603 0.0310 0.9977 +vn -0.0566 0.0373 0.9977 +vn -0.0839 0.0552 0.9949 +vn 0.0638 -0.0975 0.9932 +vn 0.0787 -0.0679 0.9946 +vn 0.1433 -0.1420 0.9794 +vn 0.1583 -0.1126 0.9810 +vn -0.0268 0.0109 0.9996 +vn 0.0212 -0.0177 0.9996 +vn 0.0228 -0.0150 0.9996 +vn -0.0239 0.0157 0.9996 +vn -0.0819 0.0581 0.9949 +vn -0.0965 0.0684 0.9930 +vn -0.0552 0.0392 0.9977 +vn -0.0536 0.0415 0.9977 +vn -0.0795 0.0615 0.9949 +vn -0.0935 0.0724 0.9930 +vn -0.0233 0.0165 0.9996 +vn 0.0223 -0.0158 0.9996 +vn 0.0215 -0.0166 0.9996 +vn -0.0227 0.0175 0.9996 +vn 0.0842 -0.0554 0.9949 +vn 0.1624 -0.1022 0.9814 +vn 0.1603 -0.1057 0.9814 +vn 0.0841 -0.0554 0.9949 +vn -0.0998 0.0707 0.9925 +vn -0.1074 0.0760 0.9913 +vn -0.0967 0.0748 0.9925 +vn -0.1041 0.0805 0.9913 +vn 0.0821 -0.0583 0.9949 +vn 0.1566 -0.1112 0.9814 +vn 0.1517 -0.1173 0.9814 +vn 0.0795 -0.0615 0.9949 +vn 0.2447 -0.1738 0.9539 +vn 0.3437 -0.2441 0.9068 +vn 0.2372 -0.1835 0.9540 +vn 0.2506 -0.1653 0.9539 +vn 0.2375 -0.1948 0.9517 +vn 0.2526 -0.1656 0.9533 +vn 0.3917 -0.4183 0.8195 +vn 0.2553 -0.1577 0.9539 +vn 0.4473 -0.3177 0.8361 +vn 0.2279 -0.1949 0.9540 +vn 0.1457 -0.1246 0.9814 +vn 0.2181 -0.2059 0.9540 +vn 0.1394 -0.1316 0.9815 +vn 0.0764 -0.0653 0.9949 +vn 0.0207 -0.0177 0.9996 +vn 0.0731 -0.0690 0.9949 +vn 0.0198 -0.0187 0.9996 +vn 0.2077 -0.2163 0.9540 +vn 0.1328 -0.1383 0.9814 +vn 0.1968 -0.2262 0.9540 +vn 0.1259 -0.1447 0.9814 +vn -0.0218 0.0186 0.9996 +vn -0.0515 0.0441 0.9977 +vn -0.0208 0.0197 0.9996 +vn -0.0493 0.0465 0.9977 +vn 0.0696 -0.0725 0.9949 +vn 0.0188 -0.0196 0.9996 +vn 0.0660 -0.0758 0.9949 +vn 0.0179 -0.0205 0.9996 +vn 0.1855 -0.2356 0.9540 +vn 0.1186 -0.1507 0.9814 +vn 0.1737 -0.2444 0.9540 +vn 0.1111 -0.1563 0.9814 +vn -0.0763 0.0653 0.9949 +vn -0.0899 0.0769 0.9930 +vn -0.0731 0.0690 0.9949 +vn -0.0860 0.0812 0.9930 +vn -0.0199 0.0207 0.9996 +vn -0.0470 0.0489 0.9977 +vn -0.0188 0.0216 0.9996 +vn -0.0445 0.0511 0.9977 +vn 0.0622 -0.0790 0.9949 +vn 0.0168 -0.0214 0.9996 +vn 0.0582 -0.0820 0.9949 +vn 0.0158 -0.0222 0.9996 +vn 0.1615 -0.2527 0.9540 +vn 0.1033 -0.1616 0.9814 +vn 0.1489 -0.2603 0.9540 +vn 0.0952 -0.1664 0.9815 +vn 0.1360 -0.2673 0.9540 +vn 0.0869 -0.1709 0.9814 +vn 0.0541 -0.0847 0.9949 +vn 0.0147 -0.0229 0.9996 +vn 0.0499 -0.0873 0.9949 +vn 0.0135 -0.0236 0.9996 +vn -0.0177 0.0225 0.9996 +vn -0.0419 0.0533 0.9977 +vn -0.0166 0.0234 0.9996 +vn -0.0393 0.0553 0.9977 +vn 0.0456 -0.0896 0.9949 +vn 0.0123 -0.0242 0.9996 +vn -0.0154 0.0242 0.9996 +vn -0.0365 0.0571 0.9977 +vn -0.0142 0.0249 0.9996 +vn -0.0337 0.0588 0.9977 +vn -0.0130 0.0256 0.9996 +vn -0.0307 0.0604 0.9977 +vn -0.0117 0.0262 0.9996 +vn -0.0277 0.0619 0.9977 +vn -0.0106 0.0265 0.9996 +vn -0.0251 0.0629 0.9977 +vn -0.0541 0.0846 0.9949 +vn -0.0637 0.0997 0.9930 +vn -0.0685 0.0964 0.9930 +vn -0.0582 0.0819 0.9949 +vn -0.0499 0.0872 0.9949 +vn -0.0587 0.1027 0.9930 +vn -0.0373 0.0932 0.9949 +vn -0.0439 0.1098 0.9930 +vn -0.0484 0.1079 0.9930 +vn -0.0411 0.0917 0.9949 +vn -0.0455 0.0895 0.9949 +vn -0.0536 0.1054 0.9930 +vn -0.0453 0.1136 0.9925 +vn -0.0486 0.1222 0.9913 +vn -0.0538 0.1201 0.9913 +vn -0.0500 0.1116 0.9925 +vn -0.0410 0.1152 0.9925 +vn -0.0438 0.1241 0.9913 +vn -0.0554 0.1090 0.9925 +vn -0.0597 0.1173 0.9913 +vn -0.0653 0.1142 0.9913 +vn -0.0607 0.1061 0.9925 +vn -0.0659 0.1030 0.9925 +vn -0.0709 0.1109 0.9913 +vn -0.0762 0.1073 0.9913 +vn -0.0708 0.0997 0.9925 +vn -0.0621 0.0789 0.9949 +vn -0.0732 0.0929 0.9930 +vn -0.0776 0.0892 0.9930 +vn -0.0659 0.0758 0.9949 +vn -0.0756 0.0961 0.9925 +vn -0.0814 0.1034 0.9913 +vn -0.0864 0.0993 0.9913 +vn -0.0803 0.0923 0.9925 +vn -0.0696 0.0725 0.9949 +vn -0.0819 0.0853 0.9930 +vn -0.0847 0.0882 0.9925 +vn -0.0911 0.0949 0.9913 +vn -0.0957 0.0903 0.9913 +vn -0.0889 0.0839 0.9925 +vn -0.0929 0.0795 0.9925 +vn -0.1000 0.0855 0.9913 +vn -0.1000 0.1041 0.9895 +vn -0.1093 0.1139 0.9875 +vn -0.1148 0.1084 0.9875 +vn -0.1050 0.0991 0.9895 +vn -0.0948 0.1089 0.9895 +vn -0.1036 0.1191 0.9875 +vn -0.1179 0.0833 0.9895 +vn -0.1290 0.0910 0.9875 +vn -0.1142 0.0883 0.9895 +vn -0.1248 0.0966 0.9875 +vn -0.1097 0.0938 0.9895 +vn -0.1200 0.1026 0.9875 +vn -0.1493 0.0855 0.9851 +vn -0.1622 0.0931 0.9824 +vn -0.1447 0.0931 0.9851 +vn -0.1574 0.1011 0.9823 +vn -0.1406 0.0992 0.9851 +vn -0.1529 0.1078 0.9823 +vn -0.1361 0.1053 0.9851 +vn -0.1480 0.1145 0.9823 +vn -0.1308 0.1118 0.9851 +vn -0.1422 0.1216 0.9823 +vn -0.1251 0.1181 0.9851 +vn -0.1361 0.1284 0.9823 +vn -0.0893 0.1134 0.9895 +vn -0.0976 0.1240 0.9875 +vn -0.0836 0.1177 0.9895 +vn -0.0914 0.1287 0.9875 +vn -0.1192 0.1241 0.9851 +vn -0.1296 0.1350 0.9823 +vn -0.1129 0.1298 0.9851 +vn -0.1228 0.1412 0.9823 +vn -0.0778 0.1216 0.9895 +vn -0.0850 0.1330 0.9875 +vn -0.0717 0.1253 0.9895 +vn -0.0784 0.1370 0.9875 +vn -0.1064 0.1352 0.9851 +vn -0.1157 0.1470 0.9823 +vn -0.0997 0.1403 0.9851 +vn -0.1084 0.1525 0.9823 +vn -0.0655 0.1287 0.9895 +vn -0.0716 0.1407 0.9875 +vn -0.0591 0.1317 0.9895 +vn -0.0646 0.1440 0.9875 +vn -0.0927 0.1450 0.9851 +vn -0.1008 0.1577 0.9823 +vn -0.0855 0.1494 0.9851 +vn -0.0929 0.1624 0.9823 +vn -0.1406 0.1464 0.9792 +vn -0.1523 0.1586 0.9755 +vn -0.1599 0.1509 0.9755 +vn -0.1476 0.1394 0.9792 +vn -0.1333 0.1532 0.9792 +vn -0.1443 0.1659 0.9755 +vn -0.1256 0.1595 0.9792 +vn -0.1360 0.1727 0.9755 +vn -0.1176 0.1655 0.9792 +vn -0.1274 0.1792 0.9755 +vn -0.1543 0.1319 0.9792 +vn -0.1671 0.1429 0.9755 +vn -0.1739 0.1345 0.9755 +vn -0.1606 0.1242 0.9792 +vn -0.0780 0.1534 0.9851 +vn -0.0848 0.1668 0.9823 +vn -0.0704 0.1570 0.9851 +vn -0.0766 0.1707 0.9823 +vn -0.1660 0.1169 0.9792 +vn -0.1798 0.1266 0.9755 +vn -0.1851 0.1186 0.9755 +vn -0.1709 0.1096 0.9792 +vn -0.0533 0.1342 0.9895 +vn -0.0582 0.1467 0.9875 +vn -0.0478 0.1362 0.9895 +vn -0.0520 0.1490 0.9875 +vn -0.0327 0.1178 0.9925 +vn -0.0358 0.1265 0.9913 +vn -0.0397 0.1387 0.9895 +vn -0.0438 0.1516 0.9875 +vn -0.0634 0.1600 0.9851 +vn -0.0689 0.1740 0.9823 +vn -0.0566 0.1625 0.9851 +vn -0.0614 0.1768 0.9823 +vn 0.0002 0.1762 0.9844 +vn -0.0352 0.1683 0.9851 +vn -0.0044 0.1905 0.9817 +vn -0.0400 0.1826 0.9824 +vn -0.0480 0.1652 0.9851 +vn -0.0524 0.1796 0.9823 +vn -0.0093 0.2050 0.9787 +vn -0.0449 0.1977 0.9792 +vn -0.0570 0.1948 0.9792 +vn -0.0664 0.1918 0.9792 +vn -0.0747 0.1888 0.9792 +vn -0.0809 0.2044 0.9755 +vn -0.0900 0.2006 0.9755 +vn -0.0831 0.1852 0.9792 +vn -0.0874 0.2211 0.9713 +vn -0.0973 0.2169 0.9713 +vn -0.0920 0.1809 0.9792 +vn -0.0997 0.1960 0.9755 +vn -0.1092 0.1908 0.9755 +vn -0.1008 0.1762 0.9792 +vn -0.1078 0.2119 0.9713 +vn -0.1164 0.2288 0.9665 +vn -0.1275 0.2228 0.9665 +vn -0.1181 0.2063 0.9713 +vn -0.1255 0.2467 0.9609 +vn -0.1352 0.2658 0.9545 +vn -0.1481 0.2588 0.9545 +vn -0.1375 0.2403 0.9609 +vn -0.1093 0.1711 0.9792 +vn -0.1184 0.1852 0.9755 +vn -0.1280 0.2003 0.9713 +vn -0.1382 0.2163 0.9665 +vn -0.1487 0.2092 0.9665 +vn -0.1377 0.1938 0.9713 +vn -0.1470 0.1868 0.9713 +vn -0.1588 0.2017 0.9665 +vn -0.1685 0.1936 0.9665 +vn -0.1560 0.1793 0.9713 +vn -0.1491 0.2332 0.9609 +vn -0.1606 0.2513 0.9545 +vn -0.1728 0.2431 0.9545 +vn -0.1603 0.2256 0.9609 +vn -0.1712 0.2175 0.9609 +vn -0.1845 0.2343 0.9545 +vn -0.1957 0.2250 0.9545 +vn -0.1817 0.2088 0.9609 +vn -0.1646 0.1715 0.9713 +vn -0.1778 0.1851 0.9665 +vn -0.1866 0.1762 0.9665 +vn -0.1729 0.1632 0.9713 +vn -0.1917 0.1997 0.9609 +vn -0.2066 0.2151 0.9545 +vn -0.2169 0.2047 0.9545 +vn -0.2013 0.1900 0.9609 +vn -0.1807 0.1545 0.9713 +vn -0.1951 0.1668 0.9665 +vn -0.2030 0.1570 0.9665 +vn -0.1880 0.1455 0.9713 +vn -0.2104 0.1799 0.9609 +vn -0.2266 0.1938 0.9545 +vn -0.2359 0.1825 0.9545 +vn -0.2189 0.1694 0.9609 +vn -0.1944 0.1368 0.9713 +vn -0.2099 0.1477 0.9665 +vn -0.2163 0.1383 0.9665 +vn -0.2002 0.1281 0.9713 +vn -0.2264 0.1592 0.9609 +vn -0.2439 0.1715 0.9545 +vn -0.2514 0.1605 0.9545 +vn -0.2333 0.1490 0.9609 +vn -0.2458 0.2102 0.9462 +vn -0.2678 0.2290 0.9359 +vn -0.2787 0.2156 0.9359 +vn -0.2559 0.1979 0.9462 +vn -0.2352 0.2221 0.9462 +vn -0.2562 0.2419 0.9359 +vn -0.2646 0.1860 0.9462 +vn -0.2882 0.2026 0.9359 +vn -0.2971 0.1895 0.9359 +vn -0.2727 0.1740 0.9462 +vn -0.2396 0.1385 0.9609 +vn -0.2222 0.1283 0.9665 +vn -0.2581 0.1492 0.9545 +vn -0.2638 0.1382 0.9546 +vn -0.2453 0.1275 0.9610 +vn -0.2279 0.1174 0.9666 +vn -0.2240 0.2333 0.9463 +vn -0.2440 0.2541 0.9359 +vn -0.2123 0.2440 0.9462 +vn -0.2313 0.2658 0.9359 +vn -0.2059 0.1187 0.9713 +vn -0.1905 0.1097 0.9755 +vn -0.2115 0.1078 0.9714 +vn -0.1962 0.0986 0.9756 +vn -0.2001 0.2542 0.9462 +vn -0.2179 0.2768 0.9359 +vn -0.1874 0.2637 0.9462 +vn -0.2041 0.2872 0.9359 +vn -0.1759 0.1012 0.9792 +vn -0.1817 0.0899 0.9792 +vn -0.1978 0.0573 0.9786 +vn -0.2123 0.0659 0.9750 +vn -0.2277 0.0750 0.9708 +vn -0.2541 0.0196 0.9670 +vn -0.2441 0.0845 0.9661 +vn -0.2706 0.0288 0.9623 +vn -0.2615 0.0946 0.9606 +vn -0.2881 0.0386 0.9568 +vn -0.2801 0.1053 0.9542 +vn -0.2832 -0.0435 0.9581 +vn -0.3166 -0.1201 0.9409 +vn -0.2995 -0.0344 0.9535 +vn -0.3169 -0.0247 0.9481 +vn -0.3543 -0.2124 0.9107 +vn -0.3951 -0.3218 0.8604 +vn -0.4356 -0.4461 0.7819 +vn -0.4229 -0.4529 0.7849 +vn -0.4109 -0.4594 0.7875 +vn -0.4486 -0.5885 0.6727 +vn -0.4739 -0.7090 0.5222 +vn -0.4663 -0.7129 0.5237 +vn -0.4592 -0.7166 0.5249 +vn -0.4714 -0.8098 0.3494 +vn -0.4381 -0.6933 0.5722 +vn -0.2705 -0.2396 0.9324 +vn -0.2635 -0.2536 0.9307 +vn -0.4328 -0.7013 0.5665 +vn -0.4440 -0.6855 0.5770 +vn -0.2784 -0.2260 0.9335 +vn -0.4295 -0.7085 0.5599 +vn -0.2600 -0.2670 0.9280 +vn -0.3020 0.1178 0.9460 +vn -0.2857 0.1508 0.9464 +vn -0.3108 0.1651 0.9360 +vn -0.3271 0.1321 0.9357 +vn -0.2799 0.1619 0.9463 +vn -0.3049 0.1765 0.9359 +vn -0.3531 0.1469 0.9240 +vn -0.3368 0.1800 0.9242 +vn -0.3307 0.1915 0.9241 +vn -0.3610 0.2091 0.9088 +vn -0.3223 0.2055 0.9241 +vn -0.3519 0.2242 0.9088 +vn -0.3966 0.2298 0.8888 +vn -0.3867 0.2463 0.8887 +vn -0.3127 0.2198 0.9241 +vn -0.3414 0.2399 0.9088 +vn -0.3024 0.2339 0.9240 +vn -0.3300 0.2553 0.9088 +vn -0.3751 0.2635 0.8887 +vn -0.4117 0.2892 0.8642 +vn -0.3626 0.2805 0.8887 +vn -0.3980 0.3079 0.8642 +vn -0.2905 0.2484 0.9241 +vn -0.3171 0.2712 0.9088 +vn -0.2780 0.2624 0.9241 +vn -0.3034 0.2864 0.9088 +vn -0.4514 0.3171 0.8341 +vn -0.4943 0.3472 0.7970 +vn -0.4364 0.3376 0.8340 +vn -0.4778 0.3696 0.7969 +vn -0.3484 0.2980 0.8887 +vn -0.3824 0.3270 0.8642 +vn -0.3334 0.3147 0.8887 +vn -0.3659 0.3454 0.8642 +vn -0.2648 0.2757 0.9241 +vn -0.2890 0.3010 0.9088 +vn -0.2509 0.2884 0.9241 +vn -0.2739 0.3148 0.9088 +vn -0.5401 0.3793 0.7513 +vn -0.5885 0.4133 0.6949 +vn -0.5221 0.4039 0.7512 +vn -0.5688 0.4400 0.6949 +vn -0.4193 0.3586 0.8340 +vn -0.4591 0.3926 0.7969 +vn -0.4012 0.3787 0.8340 +vn -0.4393 0.4147 0.7969 +vn -0.3175 0.3307 0.8887 +vn -0.3485 0.3629 0.8642 +vn -0.3009 0.3458 0.8887 +vn -0.3303 0.3796 0.8642 +vn -0.6385 0.4484 0.6256 +vn -0.6171 0.4774 0.6255 +vn -0.5016 0.4290 0.7512 +vn -0.5465 0.4674 0.6949 +vn -0.4800 0.4531 0.7512 +vn -0.5929 0.5071 0.6255 +vn -0.4572 0.4761 0.7512 +vn -0.4184 0.4357 0.7969 +vn -0.3821 0.3979 0.8340 +vn -0.3621 0.4162 0.8340 +vn -0.3413 0.4335 0.8340 +vn -0.3113 0.3954 0.8642 +vn -0.2469 0.3863 0.8887 +vn -0.2247 0.3516 0.9088 +vn -0.2656 0.3737 0.8887 +vn -0.2417 0.3401 0.9088 +vn -0.2836 0.3602 0.8887 +vn -0.2581 0.3279 0.9088 +vn -0.2059 0.3221 0.9241 +vn -0.1898 0.2969 0.9359 +vn -0.2214 0.3116 0.9241 +vn -0.1467 0.2883 0.9462 +vn -0.1606 0.2808 0.9462 +vn -0.2365 0.3003 0.9241 +vn -0.1742 0.2726 0.9462 +vn -0.1199 -0.8866 0.4468 +vn -0.2442 -0.9216 0.3016 +vn -0.1185 -0.8803 0.4595 +vn 0.2577 -0.5459 0.7972 +vn -0.1902 -0.8398 0.5084 +vn 0.1165 -0.4704 0.8747 +vn -0.2485 -0.8099 0.5314 +vn 0.0255 -0.4251 0.9048 +vn -0.2972 -0.7846 0.5441 +vn -0.0496 -0.3874 0.9206 +vn -0.3356 -0.7649 0.5499 +vn -0.1089 -0.3578 0.9274 +vn 0.8834 -0.0901 0.4599 +vn 0.9530 0.0215 0.3021 +vn 0.4682 -0.3784 0.7985 +vn 0.8898 -0.0910 0.4472 +vn -0.8506 -0.4462 0.2782 +vn -0.8899 0.1544 0.4292 +vn -0.8795 -0.4331 0.1972 +vn -0.9360 0.1766 0.3044 +vn -0.9118 -0.4106 0.0107 +vn -0.9799 0.1987 0.0154 +vn -0.9775 0.1973 0.0742 +vn -0.9090 -0.4139 0.0495 +vn -0.7388 -0.6739 0.0067 +vn -0.7375 -0.6753 -0.0013 +vn -0.9140 -0.4058 -0.0023 +vn -0.9799 0.1995 -0.0045 +vn -0.8610 -0.5085 0.0108 +vn -0.9454 -0.3255 0.0148 +vn -0.9451 -0.3269 -0.0018 +vn -0.8601 -0.5101 -0.0017 +vn -0.9889 -0.1473 0.0181 +vn -0.9997 0.0097 0.0206 +vn -1.0000 0.0089 -0.0013 +vn -0.9889 -0.1484 -0.0016 +vn -0.9899 0.1397 0.0224 +vn -0.9695 0.2439 0.0236 +vn -0.9698 0.2437 -0.0005 +vn -0.9903 0.1392 -0.0009 +vn -0.9448 0.3267 0.0243 +vn -0.9194 0.3925 0.0248 +vn -0.9197 0.3925 -0.0001 +vn -0.9452 0.3266 -0.0002 +vn -0.8925 0.4504 0.0250 +vn -0.8752 0.4832 0.0251 +vn -0.8754 0.4833 0.0000 +vn -0.8928 0.4505 0.0000 +vn -0.8646 0.5019 0.0251 +vn -0.8648 0.5021 0.0000 +vn -0.8436 0.5366 0.0230 +vn -0.8438 0.5367 0.0000 +vn -0.8181 0.5745 0.0251 +vn -0.8184 0.5747 0.0000 +vn -0.7907 0.6117 0.0230 +vn -0.7910 0.6119 0.0000 +vn -0.7597 0.6497 0.0251 +vn -0.7600 0.6499 0.0000 +vn -0.7270 0.6863 0.0230 +vn -0.7272 0.6865 0.0000 +vn -0.6924 0.7211 0.0251 +vn -0.6926 0.7213 0.0000 +vn -0.6562 0.7542 0.0230 +vn -0.6564 0.7544 0.0000 +vn -0.6184 0.7855 0.0251 +vn -0.6186 0.7857 0.0000 +vn -0.5791 0.8149 0.0230 +vn -0.5793 0.8151 0.0000 +vn -0.5384 0.8423 0.0251 +vn -0.5386 0.8426 0.0000 +vn -0.4964 0.8678 0.0230 +vn -0.4966 0.8680 0.0000 +vn -0.4533 0.8910 0.0251 +vn -0.4534 0.8913 0.0000 +vn -0.4090 0.9122 0.0230 +vn -0.4091 0.9125 0.0000 +vn -0.3664 0.9301 0.0251 +vn -0.3665 0.9304 0.0000 +vn -0.3235 0.9460 0.0230 +vn -0.3236 0.9462 -0.0000 +vn -0.2849 0.9582 0.0251 +vn -0.2850 0.9585 -0.0000 +vn -0.2643 0.9642 0.0228 +vn -0.2643 0.9644 0.0000 +vn -0.2283 0.9733 0.0251 +vn -0.1657 0.9859 0.0249 +vn -0.1657 0.9862 -0.0002 +vn -0.2284 0.9736 -0.0001 +vn -0.0957 0.9951 0.0244 +vn -0.0095 0.9997 0.0237 +vn -0.0092 1.0000 -0.0006 +vn -0.0956 0.9954 -0.0004 +vn 0.0966 0.9951 0.0225 +vn 0.2253 0.9741 0.0208 +vn 0.2261 0.9741 -0.0013 +vn 0.0971 0.9953 -0.0009 +vn 0.3753 0.9267 0.0183 +vn 0.5382 0.8427 0.0150 +vn 0.5396 0.8419 -0.0016 +vn 0.3764 0.9265 -0.0016 +vn 0.6964 0.7176 0.0110 +vn 0.8285 0.5600 0.0068 +vn 0.8295 0.5585 -0.0013 +vn 0.6977 0.7164 -0.0015 +vn 0.6954 0.7172 0.0453 +vn 0.8277 0.5604 0.0294 +vn 0.6133 0.7898 0.0109 +vn 0.0365 0.9992 0.0155 +vn 0.0359 0.9993 -0.0047 +vn 0.6091 0.7931 -0.0024 +vn 0.6159 0.7863 0.0496 +vn 0.0371 0.9965 0.0743 +vn 0.6212 0.7754 0.1136 +vn 0.8276 0.5574 0.0666 +vn 0.0401 0.9829 0.1796 +vn 0.6955 0.7115 0.1006 +vn -0.4505 -0.6778 0.5811 +vn -0.2874 -0.2130 0.9338 +vn -0.8995 -0.4218 0.1139 +vn -0.9660 0.1913 0.1741 +vn -0.0699 0.8978 0.4348 +vn -0.1337 -0.9859 0.1009 +vn 0.0691 -0.9954 0.0668 +vn 0.0796 -0.9902 0.1151 +vn -0.1175 -0.9780 0.1726 +vn -0.3265 -0.9361 0.1305 +vn -0.3053 -0.9261 0.2217 +vn -0.3335 -0.9409 0.0594 +vn -0.1383 -0.9894 0.0452 +vn 0.0668 -0.9973 0.0294 +vn 0.7981 -0.5687 0.1990 +vn 0.9400 -0.0097 0.3411 +vn 0.9434 -0.0069 0.3317 +vn 0.8027 -0.5642 0.1932 +vn 0.6885 -0.7122 0.1370 +vn 0.6887 -0.7133 0.1299 +vn 0.6796 -0.7146 0.1657 +vn 0.7809 -0.5797 0.2328 +vn 0.9191 -0.0194 0.3936 +vn -0.4815 0.8631 0.1526 +vn -0.3172 0.9394 0.1302 +vn -0.3240 0.9442 0.0595 +vn -0.4904 0.8686 0.0706 +vn -0.6097 0.7746 0.1679 +vn -0.6201 0.7806 0.0784 +vn -0.5823 0.7621 0.2831 +vn -0.4566 0.8513 0.2583 +vn -0.2960 0.9291 0.2215 +vn 0.3974 0.7349 0.5496 +vn 0.4300 0.8302 0.3548 +vn 0.4569 0.8170 0.3518 +vn 0.4366 0.7169 0.5435 +vn 0.2152 0.3048 0.9278 +vn 0.2746 0.2755 0.9212 +vn 0.1649 0.3295 0.9296 +vn 0.3655 0.7497 0.5516 +vn 0.4085 0.8407 0.3555 +vn 0.8215 0.5300 0.2101 +vn 0.6957 0.7053 0.1365 +vn 0.6960 0.7064 0.1290 +vn 0.8264 0.5250 0.2034 +vn 0.9368 -0.0435 0.3470 +vn 0.9403 -0.0468 0.3372 +vn 0.9158 -0.0320 0.4004 +vn 0.8036 0.5418 0.2463 +vn 0.6866 0.7080 0.1653 +vn -0.4901 -0.8581 0.1529 +vn -0.6174 -0.7684 0.1682 +vn -0.6280 -0.7743 0.0784 +vn -0.4991 -0.8637 0.0705 +vn -0.4651 -0.8467 0.2585 +vn -0.5898 -0.7562 0.2833 +vn -0.7115 -0.6798 0.1778 +vn -0.7793 -0.5992 0.1835 +vn -0.7915 -0.6050 0.0867 +vn -0.7230 -0.6858 0.0835 +vn -0.6823 -0.6673 0.2986 +vn -0.7494 -0.5865 0.3074 +vn -0.4259 -0.8296 0.3611 +vn -0.5470 -0.7379 0.3954 +vn -0.2716 -0.9111 0.3100 +vn -0.2321 -0.8947 0.3817 +vn -0.3801 -0.8109 0.4450 +vn -0.4973 -0.7177 0.4875 +vn -0.0912 -0.9661 0.2417 +vn 0.0973 -0.9821 0.1614 +vn 0.1180 -0.9730 0.1984 +vn -0.0602 -0.9529 0.2973 +vn -0.8281 -0.5286 0.1866 +vn -0.8635 -0.4680 0.1880 +vn -0.8762 -0.4735 0.0896 +vn -0.8407 -0.5342 0.0886 +vn -0.7978 -0.5160 0.3120 +vn -0.8330 -0.4555 0.3141 +vn -0.0286 -0.9393 0.3419 +vn -0.1914 -0.8777 0.4394 +vn 0.1391 -0.9637 0.2278 +vn 0.1598 -0.9545 0.2518 +vn 0.0026 -0.9258 0.3781 +vn -0.1511 -0.8606 0.4863 +vn -0.0745 -0.9252 0.3720 +vn -0.5352 -0.5961 0.5985 +vn -0.4828 -0.5725 0.6627 +vn -0.0420 -0.9102 0.4121 +vn -0.1068 -0.9403 0.3231 +vn -0.5875 -0.6197 0.5204 +vn -0.0103 -0.8957 0.4446 +vn 0.1797 -0.9456 0.2712 +vn -0.4319 -0.5498 0.7150 +vn -0.3835 -0.5284 0.7575 +vn 0.0198 -0.8820 0.4708 +vn 0.1984 -0.9372 0.2869 +vn 0.0483 -0.8694 0.4918 +vn 0.2159 -0.9293 0.2995 +vn -0.3379 -0.5087 0.7919 +vn -0.2954 -0.4908 0.8197 +vn 0.0749 -0.8578 0.5086 +vn 0.2320 -0.9221 0.3098 +vn 0.0327 -0.9127 0.4074 +vn -0.1124 -0.8441 0.5243 +vn 0.0609 -0.9003 0.4311 +vn -0.0759 -0.8285 0.5548 +vn -0.3327 -0.7914 0.5128 +vn -0.4454 -0.6967 0.5623 +vn -0.2857 -0.7719 0.5679 +vn -0.3940 -0.6756 0.6232 +vn -0.6374 -0.6483 0.4165 +vn -0.7033 -0.5673 0.4285 +vn -0.5853 -0.6273 0.5138 +vn -0.6499 -0.5458 0.5289 +vn -0.7511 -0.4967 0.4349 +vn -0.7862 -0.4362 0.4377 +vn -0.6973 -0.4749 0.5369 +vn -0.7323 -0.4143 0.5405 +vn -0.5309 -0.6053 0.5931 +vn -0.5941 -0.5232 0.6110 +vn -0.4767 -0.5832 0.6577 +vn -0.5384 -0.5006 0.6779 +vn -0.2404 -0.7530 0.6125 +vn -0.3443 -0.6552 0.6725 +vn -0.1977 -0.7351 0.6485 +vn -0.2974 -0.6358 0.7123 +vn -0.8918 -0.4112 0.1885 +vn -0.9067 -0.3775 0.1884 +vn -0.9195 -0.3827 0.0900 +vn -0.9046 -0.4167 0.0900 +vn -0.8614 -0.3988 0.3147 +vn -0.8763 -0.3651 0.3144 +vn -0.8147 -0.3796 0.4384 +vn -0.8297 -0.3460 0.4381 +vn -0.7607 -0.3577 0.5416 +vn -0.7759 -0.3241 0.5412 +vn -0.6408 -0.4520 0.6205 +vn -0.6755 -0.3913 0.6250 +vn -0.5844 -0.4291 0.6887 +vn -0.6188 -0.3683 0.6939 +vn -0.9146 -0.3578 0.1882 +vn -0.9275 -0.3628 0.0900 +vn -0.8841 -0.3459 0.3141 +vn -0.8975 -0.3098 0.3140 +vn -0.9284 -0.3204 0.1882 +vn -0.9414 -0.3250 0.0900 +vn -0.4243 -0.5619 0.7101 +vn -0.4846 -0.4787 0.7321 +vn -0.3749 -0.5416 0.7524 +vn -0.4338 -0.4580 0.7760 +vn 0.0873 -0.8887 0.4501 +vn -0.0419 -0.8139 0.5794 +vn 0.1115 -0.8780 0.4655 +vn -0.0105 -0.8004 0.5993 +vn 0.0996 -0.8473 0.5217 +vn -0.2560 -0.4747 0.8421 +vn -0.2194 -0.4603 0.8602 +vn 0.1225 -0.8379 0.5320 +vn 0.2468 -0.9154 0.3180 +vn 0.2603 -0.9093 0.3247 +vn 0.1419 -0.8299 0.5395 +vn 0.2719 -0.9041 0.3296 +vn -0.1881 -0.4487 0.8737 +vn -0.1609 -0.4394 0.8838 +vn 0.1591 -0.8237 0.5443 +vn 0.2817 -0.8997 0.3335 +vn 0.1339 -0.8681 0.4779 +vn 0.0183 -0.7880 0.6154 +vn 0.1543 -0.8591 0.4880 +vn 0.0448 -0.7766 0.6284 +vn -0.1579 -0.7184 0.6775 +vn -0.2537 -0.6177 0.7444 +vn -0.1212 -0.7029 0.7009 +vn -0.2133 -0.6009 0.7703 +vn -0.5298 -0.4070 0.7441 +vn -0.5640 -0.3460 0.7498 +vn -0.4782 -0.3860 0.7889 +vn -0.5121 -0.3248 0.7952 +vn -0.3288 -0.5227 0.7865 +vn -0.3863 -0.4386 0.8114 +vn -0.2862 -0.5052 0.8142 +vn -0.3424 -0.4206 0.8402 +vn -0.0874 -0.6886 0.7198 +vn -0.1762 -0.5855 0.7913 +vn -0.0564 -0.6755 0.7352 +vn -0.1421 -0.5713 0.8084 +vn 0.1718 -0.8515 0.4955 +vn 0.0673 -0.7669 0.6382 +vn 0.1865 -0.8449 0.5014 +vn 0.0864 -0.7587 0.6457 +vn -0.2469 -0.4890 0.8366 +vn -0.3019 -0.4041 0.8635 +vn -0.2109 -0.4742 0.8548 +vn -0.2647 -0.3888 0.8825 +vn -0.0300 -0.6645 0.7467 +vn -0.1131 -0.5593 0.8212 +vn -0.0076 -0.6550 0.7556 +vn -0.0884 -0.5490 0.8312 +vn 0.2008 -0.8385 0.5065 +vn 0.1048 -0.7507 0.6523 +vn 0.2911 -0.8954 0.3370 +vn 0.2994 -0.8917 0.3395 +vn 0.2132 -0.8331 0.5104 +vn 0.1209 -0.7437 0.6575 +vn 0.1755 -0.8177 0.5482 +vn -0.1346 -0.4305 0.8925 +vn -0.1116 -0.4230 0.8992 +vn 0.1898 -0.8125 0.5512 +vn 0.2023 -0.8085 0.5526 +vn 0.3064 -0.8885 0.3416 +vn -0.0916 -0.4175 0.9041 +vn -0.0726 -0.4127 0.9080 +vn 0.2142 -0.8051 0.5532 +vn 0.3129 -0.8855 0.3434 +vn 0.2255 -0.8021 0.5530 +vn 0.3191 -0.8827 0.3450 +vn -0.0544 -0.4088 0.9110 +vn -0.0370 -0.4057 0.9133 +vn 0.2363 -0.7995 0.5522 +vn 0.3248 -0.8801 0.3463 +vn 0.2238 -0.8284 0.5135 +vn 0.1345 -0.7378 0.6615 +vn 0.2336 -0.8240 0.5162 +vn 0.1473 -0.7322 0.6649 +vn 0.0140 -0.6458 0.7634 +vn -0.0646 -0.5390 0.8398 +vn 0.0329 -0.6378 0.7695 +vn -0.0438 -0.5304 0.8466 +vn 0.2467 -0.7974 0.5508 +vn 0.3303 -0.8776 0.3475 +vn -0.0202 -0.4034 0.9148 +vn -0.0041 -0.4019 0.9157 +vn 0.2566 -0.7957 0.5486 +vn 0.3355 -0.8752 0.3485 +vn 0.2429 -0.8198 0.5185 +vn 0.1593 -0.7270 0.6679 +vn 0.2517 -0.8159 0.5205 +vn 0.1706 -0.7221 0.6705 +vn 0.0489 -0.6310 0.7742 +vn -0.0262 -0.5230 0.8519 +vn 0.0639 -0.6246 0.7783 +vn -0.0097 -0.5160 0.8565 +vn -0.1803 -0.4616 0.8686 +vn -0.2332 -0.3759 0.8968 +vn -0.1541 -0.4508 0.8792 +vn -0.2062 -0.3649 0.9079 +vn -0.1290 -0.4404 0.8885 +vn -0.1802 -0.3542 0.9176 +vn -0.1070 -0.4313 0.8958 +vn -0.1575 -0.3449 0.9253 +vn -0.0883 -0.4236 0.9015 +vn -0.1382 -0.3370 0.9313 +vn -0.0708 -0.4164 0.9064 +vn -0.1201 -0.3295 0.9365 +vn -0.2745 -0.3028 0.9127 +vn -0.3069 -0.2412 0.9207 +vn -0.3393 -0.2543 0.9057 +vn -0.3066 -0.3159 0.8979 +vn -0.2471 -0.2916 0.9241 +vn -0.2793 -0.2299 0.9323 +vn -0.2206 -0.2808 0.9341 +vn -0.2526 -0.2190 0.9425 +vn -0.1975 -0.2714 0.9420 +vn -0.2294 -0.2095 0.9505 +vn -0.3443 -0.3313 0.8784 +vn -0.3773 -0.2699 0.8859 +vn -0.4187 -0.2867 0.8617 +vn -0.3854 -0.3481 0.8545 +vn -0.4301 -0.3663 0.8251 +vn -0.4636 -0.3051 0.8319 +vn -0.4054 -0.2134 0.8889 +vn -0.4211 -0.1800 0.8890 +vn -0.4626 -0.1967 0.8645 +vn -0.4469 -0.2302 0.8645 +vn -0.3672 -0.1979 0.9088 +vn -0.3829 -0.1646 0.9090 +vn -0.4919 -0.2484 0.8344 +vn -0.5076 -0.2150 0.8344 +vn -0.5561 -0.2347 0.7973 +vn -0.5405 -0.2682 0.7975 +vn -0.5925 -0.2893 0.7519 +vn -0.6080 -0.2558 0.7516 +vn -0.6627 -0.2780 0.6953 +vn -0.6473 -0.3116 0.6956 +vn -0.7040 -0.3347 0.6264 +vn -0.7193 -0.3011 0.6260 +vn -0.6145 -0.2406 0.7513 +vn -0.6696 -0.2621 0.6950 +vn -0.5624 -0.2202 0.7970 +vn -0.5711 -0.1969 0.7969 +vn -0.6240 -0.2152 0.7512 +vn -0.6798 -0.2345 0.6949 +vn -0.8373 -0.3276 0.4377 +vn -0.7833 -0.3065 0.5408 +vn -0.7952 -0.2744 0.5407 +vn -0.8500 -0.2934 0.4376 +vn -0.7265 -0.2843 0.6256 +vn -0.7375 -0.2545 0.6255 +vn -0.5136 -0.2012 0.8341 +vn -0.4684 -0.1836 0.8642 +vn -0.4757 -0.1639 0.8642 +vn -0.5216 -0.1798 0.8340 +vn -0.9421 -0.2777 0.1882 +vn -0.9553 -0.2816 0.0900 +vn -0.9107 -0.2684 0.3140 +vn -0.9221 -0.2261 0.3140 +vn -0.9539 -0.2339 0.1882 +vn -0.9673 -0.2371 0.0900 +vn -0.9642 -0.1868 0.1882 +vn -0.9778 -0.1894 0.0900 +vn -0.9321 -0.1805 0.3140 +vn -0.9398 -0.1346 0.3140 +vn -0.9722 -0.1392 0.1882 +vn -0.9859 -0.1412 0.0900 +vn -0.8625 -0.2542 0.4376 +vn -0.8069 -0.2378 0.5407 +vn -0.8170 -0.2003 0.5407 +vn -0.8733 -0.2141 0.4376 +vn -0.9779 -0.0914 0.1882 +vn -0.9916 -0.0926 0.0900 +vn -0.9453 -0.0883 0.3140 +vn -0.9485 -0.0418 0.3140 +vn -0.9812 -0.0433 0.1882 +vn -0.9950 -0.0439 0.0900 +vn -0.9821 0.0049 0.1882 +vn -0.9959 0.0050 0.0900 +vn -0.9494 0.0048 0.3140 +vn -0.9480 0.0513 0.3140 +vn -0.9807 0.0531 0.1882 +vn -0.9945 0.0539 0.0900 +vn -0.8828 -0.1710 0.4376 +vn -0.8259 -0.1600 0.5407 +vn -0.8327 -0.1193 0.5407 +vn -0.8901 -0.1275 0.4376 +vn -0.8953 -0.0836 0.4376 +vn -0.8376 -0.0783 0.5407 +vn -0.8404 -0.0371 0.5406 +vn -0.8983 -0.0396 0.4376 +vn -0.8992 0.0045 0.4376 +vn -0.8413 0.0042 0.5406 +vn -0.8400 0.0455 0.5406 +vn -0.8979 0.0486 0.4376 +vn -0.7768 -0.0726 0.6255 +vn -0.7160 -0.0669 0.6949 +vn -0.7184 -0.0317 0.6949 +vn -0.7795 -0.0344 0.6255 +vn -0.7723 -0.1106 0.6255 +vn -0.7119 -0.1020 0.6949 +vn -0.7802 0.0039 0.6255 +vn -0.7191 0.0036 0.6949 +vn -0.7181 0.0389 0.6949 +vn -0.7791 0.0422 0.6255 +vn -0.9769 0.1012 0.1882 +vn -0.9906 0.1026 0.0900 +vn -0.9444 0.0978 0.3140 +vn -0.9384 0.1440 0.3140 +vn -0.9708 0.1490 0.1882 +vn -0.9844 0.1511 0.0900 +vn -0.9623 0.1964 0.1882 +vn -0.9758 0.1992 0.0900 +vn -0.9302 0.1899 0.3140 +vn -0.9198 0.2353 0.3140 +vn -0.9515 0.2434 0.1882 +vn -0.9649 0.2468 0.0900 +vn -0.8944 0.0926 0.4376 +vn -0.8368 0.0867 0.5406 +vn -0.8315 0.1276 0.5407 +vn -0.8888 0.1364 0.4376 +vn -0.9392 0.2871 0.1882 +vn -0.9524 0.2912 0.0900 +vn -0.9079 0.2776 0.3140 +vn -0.8943 0.3188 0.3140 +vn -0.9251 0.3297 0.1882 +vn -0.9381 0.3344 0.0900 +vn -0.8810 0.1798 0.4376 +vn -0.8242 0.1683 0.5407 +vn -0.8150 0.2085 0.5406 +vn -0.8711 0.2229 0.4376 +vn -0.9110 0.3670 0.1882 +vn -0.9238 0.3721 0.0900 +vn -0.8806 0.3547 0.3141 +vn -0.8726 0.3738 0.3144 +vn -0.9028 0.3865 0.1884 +vn -0.9156 0.3919 0.0900 +vn -0.8599 0.2629 0.4376 +vn -0.8045 0.2459 0.5407 +vn -0.7924 0.2824 0.5407 +vn -0.8470 0.3019 0.4376 +vn -0.8876 0.4202 0.1884 +vn -0.8587 0.4767 0.1879 +vn -0.8716 0.4827 0.0854 +vn -0.9004 0.4257 0.0900 +vn -0.8573 0.4074 0.3146 +vn -0.8284 0.4638 0.3141 +vn -0.8340 0.3360 0.4377 +vn -0.7802 0.3144 0.5408 +vn -0.7726 0.3319 0.5412 +vn -0.8262 0.3543 0.4381 +vn -0.8108 0.3878 0.4384 +vn -0.7818 0.4441 0.4377 +vn -0.7571 0.3653 0.5416 +vn -0.7281 0.4216 0.5405 +vn -0.8228 0.5369 0.1864 +vn -0.7733 0.6070 0.1833 +vn -0.7853 0.6127 0.0892 +vn -0.8352 0.5427 0.0886 +vn -0.7925 0.5240 0.3120 +vn -0.7435 0.5940 0.3073 +vn -0.7046 0.6870 0.1776 +vn -0.7161 0.6930 0.0835 +vn -0.6757 0.6741 0.2985 +vn -0.6309 0.6547 0.4164 +vn -0.5397 0.7433 0.3953 +vn -0.6976 0.5743 0.4284 +vn -0.6445 0.5522 0.5289 +vn -0.5789 0.6331 0.5138 +vn -0.4900 0.7226 0.4875 +vn -0.7006 0.3417 0.6264 +vn -0.6715 0.3980 0.6250 +vn -0.7163 0.3083 0.6260 +vn -0.6600 0.2846 0.6953 +vn -0.6442 0.3181 0.6956 +vn -0.6151 0.3744 0.6939 +vn -0.7236 0.2916 0.6256 +vn -0.6669 0.2688 0.6950 +vn -0.7349 0.2619 0.6255 +vn -0.6774 0.2413 0.6949 +vn -0.6362 0.4584 0.6206 +vn -0.5888 0.5291 0.6110 +vn -0.6925 0.4818 0.5369 +vn -0.5800 0.4350 0.6888 +vn -0.5334 0.5060 0.6779 +vn -0.7461 0.2280 0.6256 +vn -0.6877 0.2102 0.6949 +vn -0.7559 0.1934 0.6255 +vn -0.6967 0.1782 0.6949 +vn -0.5895 0.2952 0.7519 +vn -0.5605 0.3516 0.7498 +vn -0.6054 0.2618 0.7516 +vn -0.5537 0.2402 0.7973 +vn -0.5378 0.2736 0.7975 +vn -0.5088 0.3299 0.7952 +vn -0.6121 0.2468 0.7513 +vn -0.5601 0.2259 0.7970 +vn -0.6218 0.2215 0.7512 +vn -0.5691 0.2026 0.7969 +vn -0.7644 0.1560 0.6255 +vn -0.7046 0.1438 0.6949 +vn -0.7712 0.1183 0.6255 +vn -0.7108 0.1091 0.6949 +vn -0.6312 0.1929 0.7512 +vn -0.5777 0.1765 0.7970 +vn -0.6395 0.1636 0.7512 +vn -0.5852 0.1497 0.7969 +vn -0.7761 0.0804 0.6255 +vn -0.7153 0.0741 0.6949 +vn -0.6467 0.1320 0.7512 +vn -0.5919 0.1208 0.7969 +vn -0.6524 0.1001 0.7512 +vn -0.5971 0.0916 0.7969 +vn -0.6565 0.0680 0.7512 +vn -0.6008 0.0622 0.7969 +vn -0.6591 0.0357 0.7512 +vn -0.6032 0.0327 0.7969 +vn -0.6600 0.0033 0.7512 +vn -0.6041 0.0030 0.7969 +vn -0.6594 -0.0291 0.7512 +vn -0.6035 -0.0266 0.7969 +vn -0.5406 0.1103 0.8340 +vn -0.4930 0.1006 0.8642 +vn -0.4875 0.1247 0.8642 +vn -0.5345 0.1367 0.8340 +vn -0.5453 0.0837 0.8341 +vn -0.4974 0.0763 0.8642 +vn -0.5488 0.0568 0.8340 +vn -0.5005 0.0518 0.8642 +vn -0.5509 0.0298 0.8340 +vn -0.5024 0.0272 0.8642 +vn -0.5276 0.1612 0.8341 +vn -0.4812 0.1470 0.8642 +vn -0.4741 0.1687 0.8642 +vn -0.5198 0.1850 0.8340 +vn -0.5116 0.2064 0.8341 +vn -0.4665 0.1883 0.8642 +vn -0.4606 0.2013 0.8645 +vn -0.5054 0.2200 0.8344 +vn -0.4384 0.1339 0.8887 +vn -0.3991 0.1218 0.9088 +vn -0.3932 0.1398 0.9088 +vn -0.4319 0.1536 0.8887 +vn -0.4441 0.1136 0.8887 +vn -0.4043 0.1034 0.9088 +vn -0.4894 0.2534 0.8344 +vn -0.4605 0.3097 0.8319 +vn -0.4446 0.2347 0.8645 +vn -0.4158 0.2909 0.8617 +vn -0.4250 0.1716 0.8888 +vn -0.3868 0.1563 0.9088 +vn -0.3813 0.1683 0.9090 +vn -0.4193 0.1841 0.8890 +vn -0.4032 0.2175 0.8889 +vn -0.3746 0.2736 0.8859 +vn -0.3652 0.2017 0.9088 +vn -0.3367 0.2577 0.9057 +vn -0.5257 0.4123 0.7441 +vn -0.4798 0.4836 0.7321 +vn -0.4743 0.3907 0.7889 +vn -0.4291 0.4623 0.7760 +vn -0.4264 0.3706 0.8251 +vn -0.3819 0.4424 0.8114 +vn -0.3819 0.3520 0.8545 +vn -0.3381 0.4240 0.8402 +vn -0.5247 0.6106 0.5932 +vn -0.4384 0.7011 0.5624 +vn -0.4708 0.5880 0.6578 +vn -0.3872 0.6794 0.6233 +vn -0.4176 0.8338 0.3610 +vn -0.2625 0.9138 0.3099 +vn -0.3719 0.8146 0.4450 +vn -0.2231 0.8969 0.3818 +vn -0.4187 0.5661 0.7101 +vn -0.3377 0.6586 0.6725 +vn -0.3695 0.5454 0.7524 +vn -0.2910 0.6387 0.7123 +vn -0.3247 0.7947 0.5128 +vn -0.1825 0.8795 0.4395 +vn -0.2779 0.7747 0.5680 +vn -0.1425 0.8621 0.4863 +vn -0.0815 0.9670 0.2415 +vn 0.1071 0.9811 0.1613 +vn 0.0895 0.9893 0.1149 +vn -0.1077 0.9791 0.1724 +vn -0.0506 0.9534 0.2974 +vn 0.1279 0.9717 0.1984 +vn -0.1712 0.9452 0.2781 +vn -0.6686 0.6074 0.4290 +vn -0.7137 0.6287 0.3087 +vn -0.1991 0.9600 0.1970 +vn -0.1387 0.9287 0.3440 +vn -0.6167 0.5827 0.5293 +vn -0.0191 0.9395 0.3419 +vn 0.1488 0.9622 0.2279 +vn 0.0119 0.9257 0.3781 +vn 0.1694 0.9528 0.2518 +vn -0.2328 0.7554 0.6125 +vn -0.1039 0.8452 0.5242 +vn -0.1903 0.7371 0.6485 +vn -0.0675 0.8292 0.5548 +vn -0.1047 0.9122 0.3962 +vn -0.5639 0.5580 0.6088 +vn -0.0704 0.8958 0.4388 +vn -0.5110 0.5333 0.6741 +vn 0.0419 0.9123 0.4074 +vn 0.1892 0.9438 0.2712 +vn 0.0700 0.8996 0.4311 +vn 0.2079 0.9351 0.2869 +vn -0.0369 0.8800 0.4736 +vn -0.4596 0.5096 0.7274 +vn -0.0050 0.8651 0.5016 +vn -0.4106 0.4874 0.7706 +vn -0.1507 0.7200 0.6775 +vn -0.0337 0.8143 0.5794 +vn -0.2475 0.6202 0.7444 +vn -0.2073 0.6030 0.7703 +vn -0.1141 0.7041 0.7009 +vn -0.0025 0.8005 0.5993 +vn 0.0251 0.8513 0.5241 +vn -0.3645 0.4669 0.8057 +vn 0.2252 0.9271 0.2995 +vn 0.2412 0.9197 0.3098 +vn 0.0532 0.8387 0.5420 +vn -0.3215 0.4482 0.8341 +vn 0.0962 0.8878 0.4501 +vn 0.1203 0.8768 0.4655 +vn 0.0794 0.8273 0.5561 +vn -0.2816 0.4315 0.8571 +vn 0.2560 0.9129 0.3180 +vn 0.2694 0.9066 0.3247 +vn 0.1037 0.8171 0.5671 +vn -0.2445 0.4166 0.8756 +vn 0.1426 0.8667 0.4779 +vn 0.0263 0.7878 0.6154 +vn 0.0526 0.7761 0.6284 +vn 0.1629 0.8575 0.4880 +vn 0.1243 0.8085 0.5752 +vn -0.2127 0.4046 0.8894 +vn 0.2810 0.9013 0.3297 +vn 0.2907 0.8968 0.3335 +vn 0.1426 0.8018 0.5804 +vn -0.1851 0.3950 0.8998 +vn 0.1601 0.7953 0.5847 +vn -0.1585 0.3858 0.9089 +vn 0.3001 0.8924 0.3370 +vn 0.3083 0.8886 0.3395 +vn 0.1753 0.7897 0.5879 +vn -0.1350 0.3782 0.9158 +vn 0.1803 0.8497 0.4955 +vn 0.0750 0.7662 0.6382 +vn 0.0940 0.7578 0.6457 +vn 0.1950 0.8430 0.5013 +vn 0.2092 0.8365 0.5065 +vn 0.1123 0.7496 0.6523 +vn 0.1284 0.7425 0.6574 +vn 0.2216 0.8309 0.5104 +vn 0.2321 0.8261 0.5135 +vn 0.3153 0.8854 0.3416 +vn 0.1419 0.7364 0.6615 +vn 0.1546 0.7307 0.6649 +vn 0.2419 0.8216 0.5162 +vn 0.3218 0.8823 0.3434 +vn 0.0205 0.6456 0.7634 +vn -0.0592 0.5396 0.8398 +vn -0.0385 0.5308 0.8466 +vn 0.0393 0.6374 0.7695 +vn -0.0010 0.6550 0.7556 +vn -0.0829 0.5498 0.8312 +vn 0.0552 0.6305 0.7743 +vn -0.0210 0.5232 0.8519 +vn -0.0045 0.5161 0.8565 +vn 0.0701 0.6239 0.7783 +vn -0.0234 0.6647 0.7467 +vn -0.1075 0.5604 0.8212 +vn -0.0496 0.6761 0.7352 +vn -0.1363 0.5727 0.8084 +vn -0.0804 0.6895 0.7198 +vn -0.1703 0.5872 0.7913 +vn -0.1245 0.4417 0.8885 +vn -0.1766 0.3560 0.9176 +vn -0.1540 0.3464 0.9254 +vn -0.1026 0.4324 0.8958 +vn -0.1496 0.4523 0.8792 +vn -0.2025 0.3669 0.9079 +vn -0.1756 0.4634 0.8686 +vn -0.2294 0.3782 0.8968 +vn -0.2061 0.4763 0.8548 +vn -0.2608 0.3915 0.8825 +vn -0.2420 0.4915 0.8366 +vn -0.2978 0.4071 0.8635 +vn -0.2811 0.5080 0.8142 +vn -0.3235 0.5260 0.7865 +vn -0.3410 0.3348 0.8784 +vn -0.3034 0.3190 0.8979 +vn -0.2714 0.3056 0.9127 +vn -0.3045 0.2442 0.9207 +vn -0.2770 0.2327 0.9323 +vn -0.2441 0.2941 0.9241 +vn -0.3329 0.1883 0.9240 +vn -0.3490 0.1550 0.9242 +vn -0.3213 0.1436 0.9360 +vn -0.3052 0.1768 0.9357 +vn -0.3543 0.1432 0.9241 +vn -0.3266 0.1321 0.9359 +vn -0.3602 0.1280 0.9241 +vn -0.3320 0.1179 0.9359 +vn -0.2178 0.2830 0.9341 +vn -0.2504 0.2215 0.9425 +vn -0.2272 0.2118 0.9505 +vn -0.1948 0.2733 0.9420 +vn -0.2785 0.1658 0.9460 +vn -0.2946 0.1326 0.9464 +vn -0.2712 0.1231 0.9546 +vn -0.2551 0.1563 0.9542 +vn -0.2998 0.1213 0.9463 +vn -0.2764 0.1119 0.9545 +vn -0.3049 0.1081 0.9462 +vn -0.2811 0.0996 0.9545 +vn -0.3656 0.1116 0.9241 +vn -0.3370 0.1028 0.9359 +vn -0.3703 0.0947 0.9241 +vn -0.3413 0.0873 0.9359 +vn -0.4492 0.0917 0.8887 +vn -0.4088 0.0835 0.9088 +vn -0.4531 0.0695 0.8887 +vn -0.4124 0.0633 0.9088 +vn -0.3094 0.0944 0.9462 +vn -0.2852 0.0870 0.9545 +vn -0.3134 0.0802 0.9462 +vn -0.2889 0.0739 0.9545 +vn -0.3745 0.0765 0.9241 +vn -0.3452 0.0705 0.9359 +vn -0.3778 0.0580 0.9241 +vn -0.3483 0.0534 0.9359 +vn -0.2565 0.1040 0.9609 +vn -0.2378 0.0965 0.9665 +vn -0.2327 0.1075 0.9666 +vn -0.2514 0.1150 0.9610 +vn -0.2609 0.0924 0.9609 +vn -0.2420 0.0856 0.9665 +vn -0.2353 0.1482 0.9606 +vn -0.2076 0.2035 0.9568 +vn -0.2166 0.1406 0.9661 +vn -0.1891 0.1957 0.9623 +vn -0.1753 0.2651 0.9481 +vn -0.1348 0.3383 0.9313 +vn -0.1570 0.2574 0.9535 +vn -0.1168 0.3307 0.9365 +vn -0.2648 0.0807 0.9609 +vn -0.2455 0.0748 0.9665 +vn -0.2682 0.0686 0.9609 +vn -0.2487 0.0636 0.9665 +vn -0.1990 0.1336 0.9708 +vn -0.1717 0.1884 0.9670 +vn -0.2151 0.1005 0.9714 +vn -0.1984 0.0940 0.9756 +vn -0.1824 0.1270 0.9750 +vn -0.1553 0.1815 0.9711 +vn -0.2202 0.0895 0.9713 +vn -0.2036 0.0828 0.9755 +vn -0.2242 0.0792 0.9713 +vn -0.2073 0.0731 0.9755 +vn -0.0841 0.4245 0.9015 +vn -0.0666 0.4171 0.9064 +vn -0.1397 0.2501 0.9581 +vn -0.0999 0.3235 0.9409 +vn -0.1234 0.2433 0.9621 +vn -0.0839 0.3168 0.9448 +vn -0.0502 0.4101 0.9107 +vn 0.0110 0.5094 0.8604 +vn -0.0348 0.4035 0.9143 +vn 0.0256 0.5031 0.8638 +vn 0.0842 0.6177 0.7819 +vn 0.1666 0.7254 0.6679 +vn 0.0974 0.6119 0.7849 +vn 0.1778 0.7203 0.6705 +vn -0.1081 0.2368 0.9655 +vn -0.1398 0.1750 0.9746 +vn -0.1252 0.1689 0.9777 +vn -0.0936 0.2307 0.9685 +vn -0.0546 0.3044 0.9510 +vn 0.2511 0.8174 0.5185 +vn 0.3279 0.8795 0.3450 +vn 0.2598 0.8134 0.5205 +vn 0.3337 0.8768 0.3464 +vn -0.0202 0.3973 0.9175 +vn 0.0393 0.4972 0.8667 +vn -0.0065 0.3914 0.9202 +vn 0.0523 0.4916 0.8692 +vn 0.1098 0.6065 0.7875 +vn 0.1884 0.7155 0.6727 +vn 0.1216 0.6013 0.7897 +vn 0.1985 0.7111 0.6745 +vn 0.2137 0.7788 0.5898 +vn -0.0765 0.3640 0.9282 +vn -0.0952 0.3679 0.9250 +vn 0.2015 0.7819 0.5899 +vn 0.2253 0.7762 0.5888 +vn -0.0586 0.3611 0.9307 +vn 0.1887 0.7856 0.5893 +vn -0.1146 0.3726 0.9209 +vn 0.2680 0.8096 0.5222 +vn 0.3391 0.8742 0.3475 +vn 0.2758 0.8060 0.5237 +vn 0.3442 0.8718 0.3485 +vn 0.2365 0.7742 0.5871 +vn -0.0414 0.3592 0.9324 +vn 0.2472 0.7727 0.5846 +vn -0.0247 0.3581 0.9334 +vn 0.2576 0.7718 0.5814 +vn -0.0085 0.3580 0.9337 +vn 0.3491 0.8695 0.3493 +vn 0.3536 0.8674 0.3501 +vn 0.2677 0.7714 0.5774 +vn 0.0074 0.3590 0.9333 +vn 0.2831 0.8027 0.5249 +vn 0.2079 0.7068 0.6762 +vn 0.2168 0.7028 0.6775 +vn 0.2900 0.7995 0.5260 +vn 0.2965 0.7965 0.5269 +vn 0.3580 0.8654 0.3507 +vn 0.2253 0.6990 0.6787 +vn 0.2333 0.6954 0.6797 +vn 0.3027 0.7937 0.5277 +vn 0.3621 0.8634 0.3512 +vn 0.1327 0.5964 0.7916 +vn 0.0645 0.4863 0.8714 +vn 0.0761 0.4813 0.8732 +vn 0.1432 0.5918 0.7932 +vn 0.1531 0.5875 0.7946 +vn 0.0871 0.4766 0.8748 +vn 0.0975 0.4721 0.8761 +vn 0.1626 0.5833 0.7958 +vn 0.0065 0.3859 0.9225 +vn -0.0412 0.2987 0.9535 +vn -0.0285 0.2933 0.9556 +vn 0.0188 0.3806 0.9245 +vn 0.0304 0.3757 0.9262 +vn -0.0165 0.2882 0.9574 +vn -0.0051 0.2834 0.9590 +vn 0.0414 0.3710 0.9277 +vn -0.0800 0.2249 0.9711 +vn -0.1114 0.1631 0.9803 +vn -0.0983 0.1576 0.9826 +vn -0.0670 0.2195 0.9733 +vn -0.0548 0.2143 0.9752 +vn -0.0860 0.1524 0.9846 +vn -0.0742 0.1474 0.9863 +vn -0.0432 0.2094 0.9769 +vn 0.0494 0.3676 0.9287 +vn 0.1050 0.4689 0.8770 +vn 0.0032 0.2799 0.9600 +vn 0.0067 0.2784 0.9604 +vn 0.0528 0.3661 0.9291 +vn 0.1082 0.4675 0.8773 +vn -0.0348 0.2059 0.9780 +vn -0.0658 0.1439 0.9874 +vn -0.0621 0.1423 0.9879 +vn -0.0312 0.2044 0.9784 +vn -0.1115 0.1005 0.9887 +vn -0.1272 0.0683 0.9895 +vn -0.1148 0.0647 0.9913 +vn -0.0993 0.0965 0.9904 +vn -0.1243 0.1050 0.9867 +vn -0.1401 0.0725 0.9875 +vn 0.1694 0.5804 0.7965 +vn 0.2392 0.6929 0.6802 +vn 0.1723 0.5791 0.7968 +vn 0.2416 0.6918 0.6805 +vn -0.0902 0.0942 0.9915 +vn -0.1054 0.0629 0.9924 +vn -0.1009 0.0632 0.9929 +vn -0.0859 0.0939 0.9919 +vn 0.3073 0.7917 0.5280 +vn 0.3651 0.8621 0.3514 +vn 0.3091 0.7908 0.5282 +vn 0.3664 0.8615 0.3515 +vn 0.2775 0.7715 0.5725 +vn 0.2871 0.7723 0.5667 +vn 0.0230 0.3610 0.9323 +vn 0.0383 0.3642 0.9305 +vn 0.2948 0.7741 0.5602 +vn 0.0511 0.3696 0.9278 +vn 0.2991 0.7765 0.5546 +vn 0.0583 0.3756 0.9249 +vn 0.1847 0.5731 0.7984 +vn 0.2519 0.6866 0.6820 +vn 0.1222 0.4611 0.8789 +vn 0.1480 0.4498 0.8808 +vn 0.2078 0.5628 0.8000 +vn 0.2713 0.6777 0.6834 +vn 0.3087 0.7752 0.5512 +vn 0.0731 0.3728 0.9250 +vn 0.3713 0.8588 0.3529 +vn 0.3810 0.8543 0.3536 +vn 0.3232 0.7684 0.5524 +vn 0.0972 0.3614 0.9273 +vn 0.3169 0.7867 0.5298 +vn 0.3317 0.7798 0.5309 +vn 0.3406 0.7607 0.5526 +vn 0.1251 0.3483 0.9290 +vn 0.3923 0.8487 0.3547 +vn 0.3491 0.7714 0.5321 +vn 0.2944 0.6669 0.6845 +vn 0.3274 0.6512 0.6846 +vn 0.3742 0.7592 0.5325 +vn 0.2353 0.5503 0.8012 +vn 0.1788 0.4361 0.8820 +vn 0.2228 0.4164 0.8815 +vn 0.2748 0.5322 0.8008 +vn 0.4075 0.7432 0.5306 +vn 0.3711 0.6308 0.6815 +vn 0.4256 0.6052 0.6728 +vn 0.4490 0.7232 0.5247 +vn 0.3268 0.5085 0.7967 +vn 0.2808 0.3906 0.8767 +vn 0.3530 0.3585 0.8642 +vn 0.3915 0.4789 0.7857 +vn 0.5002 0.6987 0.5114 +vn 0.4920 0.5742 0.6544 +vn 0.5678 0.5392 0.6220 +vn 0.5594 0.6707 0.4871 +vn 0.4906 0.8006 0.3441 +vn 0.5303 0.7814 0.3288 +vn 0.4862 0.6943 0.5306 +vn 0.3502 0.2386 0.9058 +vn 0.5456 0.6669 0.5075 +vn 0.4417 0.1938 0.8760 +vn 0.4697 0.4434 0.7634 +vn 0.4395 0.3201 0.8393 +vn 0.5370 0.2770 0.7968 +vn 0.5582 0.4034 0.7250 +vn 0.6529 0.3608 0.6660 +vn 0.6500 0.5013 0.5712 +vn 0.6404 0.2314 0.7324 +vn 0.7396 0.1882 0.6462 +vn 0.7438 0.3205 0.5866 +vn 0.7290 0.4655 0.5019 +vn 0.6194 0.1193 0.7759 +vn 0.5951 0.0255 0.8032 +vn 0.7033 -0.0205 0.7106 +vn 0.7241 0.0743 0.6857 +vn 0.5103 0.1666 0.8437 +vn 0.4825 0.0738 0.8728 +vn 0.4068 0.2116 0.8887 +vn 0.3753 0.1198 0.9191 +vn 0.3148 0.2517 0.9152 +vn 0.2797 0.1609 0.9465 +vn 0.2377 0.2854 0.9285 +vn 0.1995 0.1955 0.9602 +vn 0.1757 0.3125 0.9335 +vn 0.1348 0.2233 0.9654 +vn 0.5706 -0.0519 0.8196 +vn 0.5473 -0.1155 0.8289 +vn 0.6588 -0.1625 0.7346 +vn 0.6808 -0.0985 0.7258 +vn 0.4558 -0.0031 0.8901 +vn 0.4313 -0.0665 0.8998 +vn 0.1285 0.3331 0.9341 +vn 0.0857 0.2445 0.9659 +vn 0.0955 0.3475 0.9328 +vn 0.0512 0.2593 0.9644 +vn 0.3463 0.0435 0.9371 +vn 0.3205 -0.0196 0.9470 +vn 0.2487 0.0851 0.9648 +vn 0.2216 0.0223 0.9749 +vn 0.1664 0.1202 0.9787 +vn 0.1382 0.0576 0.9887 +vn 0.1003 0.1484 0.9838 +vn 0.0712 0.0859 0.9938 +vn 0.0679 0.3594 0.9307 +vn 0.0225 0.2716 0.9622 +vn 0.0498 0.1699 0.9842 +vn 0.0200 0.1076 0.9940 +vn 0.0145 0.1849 0.9826 +vn -0.0158 0.1228 0.9923 +vn -0.0149 0.1974 0.9802 +vn -0.0456 0.1353 0.9898 +vn 0.1162 0.0096 0.9932 +vn 0.1019 -0.0204 0.9946 +vn 0.1861 -0.0557 0.9810 +vn 0.2001 -0.0256 0.9794 +vn 0.0486 0.0380 0.9981 +vn 0.0341 0.0079 0.9994 +vn -0.0691 0.0873 0.9938 +vn -0.0839 0.0570 0.9948 +vn -0.0538 0.0445 0.9976 +vn -0.0390 0.0748 0.9964 +vn -0.0029 0.0596 0.9982 +vn -0.0176 0.0294 0.9994 +vn -0.0919 0.0404 0.9949 +vn -0.0615 0.0286 0.9977 +vn -0.1086 0.0467 0.9930 +vn -0.1120 0.0381 0.9930 +vn -0.0951 0.0322 0.9949 +vn -0.0642 0.0217 0.9977 +vn -0.0250 0.0144 0.9996 +vn 0.0270 -0.0058 0.9996 +vn -0.0271 0.0092 0.9996 +vn 0.0259 -0.0088 0.9996 +vn 0.0954 -0.0323 0.9949 +vn 0.1804 -0.0653 0.9814 +vn 0.1819 -0.0615 0.9814 +vn 0.2996 -0.0675 0.9517 +vn 0.2859 -0.0975 0.9533 +vn 0.3977 -0.1444 0.9061 +vn 0.4112 -0.1144 0.9043 +vn 0.2813 -0.1044 0.9539 +vn 0.3944 -0.1483 0.9069 +vn 0.2844 -0.0960 0.9539 +vn 0.3995 -0.1348 0.9068 +vn 0.5279 -0.1635 0.8334 +vn 0.5148 -0.1934 0.8352 +vn 0.6272 -0.2405 0.7408 +vn 0.6400 -0.2106 0.7390 +vn 0.5129 -0.1941 0.8362 +vn 0.6268 -0.2382 0.7419 +vn 0.5199 -0.1753 0.8361 +vn 0.6356 -0.2142 0.7417 +vn 0.0965 -0.0289 0.9949 +vn 0.1839 -0.0552 0.9814 +vn 0.0262 -0.0079 0.9996 +vn 0.0264 -0.0067 0.9996 +vn 0.0974 -0.0249 0.9949 +vn 0.1857 -0.0475 0.9815 +vn 0.7377 -0.2516 0.6265 +vn 0.7559 -0.2034 0.6223 +vn 0.7253 -0.2816 0.6282 +vn 0.8026 -0.3139 0.5072 +vn 0.8149 -0.2838 0.5054 +vn 0.8326 -0.2353 0.5014 +vn 0.2875 -0.0862 0.9539 +vn 0.4038 -0.1211 0.9068 +vn 0.2905 -0.0743 0.9540 +vn 0.4081 -0.1044 0.9069 +vn 0.7263 -0.2766 0.6293 +vn 0.8048 -0.3069 0.5081 +vn 0.7366 -0.2481 0.6292 +vn 0.8163 -0.2748 0.5080 +vn 0.5255 -0.1575 0.8361 +vn 0.6425 -0.1926 0.7417 +vn 0.5312 -0.1359 0.8363 +vn 0.6495 -0.1662 0.7420 +vn 0.7769 -0.1391 0.6141 +vn 0.7976 -0.0605 0.6002 +vn 0.8526 -0.1705 0.4939 +vn 0.8717 -0.0911 0.4815 +vn 0.8154 0.0353 0.5778 +vn 0.8262 0.1507 0.5429 +vn 0.8870 0.0058 0.4618 +vn 0.8935 0.1228 0.4319 +vn 0.8578 -0.3015 0.4162 +vn 0.8751 -0.2527 0.4128 +vn 0.8458 -0.3318 0.4177 +vn 0.8571 -0.3365 0.3901 +vn 0.8690 -0.3062 0.3887 +vn 0.8860 -0.2574 0.3857 +vn 0.8487 -0.3237 0.4183 +vn 0.8602 -0.3279 0.3905 +vn 0.8609 -0.2897 0.4182 +vn 0.8726 -0.2934 0.3905 +vn 0.8943 -0.1873 0.4064 +vn 0.9120 -0.1071 0.3960 +vn 0.9050 -0.1916 0.3799 +vn 0.9222 -0.1109 0.3704 +vn 0.8701 -0.2607 0.4183 +vn 0.8818 -0.2642 0.3906 +vn 0.8251 -0.2472 0.5081 +vn 0.8343 -0.2134 0.5083 +vn 0.8799 -0.2251 0.4184 +vn 0.8918 -0.2282 0.3906 +vn 0.9251 -0.0089 0.3797 +vn 0.9284 0.1097 0.3550 +vn 0.9346 -0.0122 0.3555 +vn 0.9369 0.1073 0.3328 +vn 0.8231 0.2855 0.4910 +vn 0.7979 0.4343 0.4180 +vn 0.8842 0.2599 0.3882 +vn 0.8501 0.4121 0.3280 +vn 0.9145 0.2490 0.3190 +vn 0.8742 0.4038 0.2696 +vn 0.9214 0.2475 0.2995 +vn 0.8792 0.4034 0.2535 +vn 0.8011 0.5616 0.2072 +vn 0.7843 0.5670 0.2518 +vn 0.8036 0.5622 0.1953 +vn 0.7436 0.5848 0.3241 +vn 0.6597 0.7199 0.2156 +vn 0.6211 0.7383 0.2629 +vn 0.6885 0.6104 0.3916 +vn 0.7574 0.5690 0.3202 +vn 0.8476 0.0056 0.5305 +vn 0.7361 0.0575 0.6744 +vn 0.6963 0.5967 0.3989 +vn 0.8899 -0.1817 0.4184 +vn 0.9019 -0.1841 0.3906 +vn 0.8438 -0.1722 0.5083 +vn 0.8512 -0.1306 0.5083 +vn 0.8977 -0.1378 0.4184 +vn 0.9099 -0.1396 0.3906 +vn 0.7445 -0.2231 0.6292 +vn 0.7528 -0.1926 0.6294 +vn 0.7613 -0.1554 0.6294 +vn 0.6569 -0.1341 0.7420 +vn 0.6627 -0.1017 0.7420 +vn 0.7681 -0.1179 0.6294 +vn 0.5372 -0.1097 0.8363 +vn 0.4127 -0.0843 0.9070 +vn 0.4164 -0.0639 0.9069 +vn 0.5419 -0.0832 0.8363 +vn 0.9034 -0.0936 0.4184 +vn 0.9157 -0.0948 0.3906 +vn 0.8566 -0.0887 0.5083 +vn 0.8599 -0.0466 0.5083 +vn 0.9069 -0.0491 0.4184 +vn 0.9192 -0.0498 0.3906 +vn 0.7729 -0.0800 0.6294 +vn 0.6669 -0.0691 0.7420 +vn 0.6695 -0.0363 0.7420 +vn 0.7759 -0.0420 0.6294 +vn 0.9082 -0.0046 0.4184 +vn 0.9205 -0.0046 0.3906 +vn 0.8612 -0.0043 0.5083 +vn 0.8604 0.0379 0.5083 +vn 0.9074 0.0400 0.4184 +vn 0.9197 0.0406 0.3906 +vn 0.7770 -0.0039 0.6294 +vn 0.6704 -0.0034 0.7420 +vn 0.6698 0.0295 0.7420 +vn 0.7763 0.0342 0.6294 +vn 0.5454 -0.0565 0.8363 +vn 0.4190 -0.0434 0.9070 +vn 0.4206 -0.0228 0.9070 +vn 0.5475 -0.0297 0.8363 +vn 0.5483 -0.0028 0.8363 +vn 0.4212 -0.0021 0.9070 +vn 0.4208 0.0186 0.9070 +vn 0.5478 0.0242 0.8363 +vn 0.9043 0.0845 0.4184 +vn 0.9166 0.0856 0.3906 +vn 0.8575 0.0801 0.5082 +vn 0.8525 0.1221 0.5083 +vn 0.8991 0.1288 0.4184 +vn 0.9113 0.1305 0.3906 +vn 0.7737 0.0723 0.6294 +vn 0.6675 0.0624 0.7420 +vn 0.6637 0.0950 0.7420 +vn 0.7692 0.1102 0.6294 +vn 0.8917 0.1727 0.4184 +vn 0.9037 0.1751 0.3906 +vn 0.8455 0.1638 0.5083 +vn 0.8364 0.2051 0.5083 +vn 0.8821 0.2163 0.4184 +vn 0.8941 0.2192 0.3906 +vn 0.7629 0.1478 0.6294 +vn 0.6582 0.1275 0.7420 +vn 0.6512 0.1596 0.7420 +vn 0.7547 0.1850 0.6294 +vn 0.5459 0.0510 0.8363 +vn 0.4194 0.0392 0.9070 +vn 0.4170 0.0597 0.9070 +vn 0.5428 0.0777 0.8363 +vn 0.5383 0.1043 0.8363 +vn 0.4135 0.0801 0.9070 +vn 0.4091 0.1003 0.9070 +vn 0.5325 0.1306 0.8363 +vn 0.8727 0.2520 0.4183 +vn 0.8844 0.2553 0.3906 +vn 0.8275 0.2390 0.5081 +vn 0.8191 0.2666 0.5080 +vn 0.8638 0.2811 0.4182 +vn 0.8755 0.2847 0.3905 +vn 0.7467 0.2157 0.6292 +vn 0.6443 0.1861 0.7418 +vn 0.6377 0.2079 0.7417 +vn 0.7391 0.2407 0.6292 +vn 0.8519 0.3152 0.4182 +vn 0.8635 0.3193 0.3904 +vn 0.8078 0.2987 0.5081 +vn 0.8058 0.3057 0.5072 +vn 0.8492 0.3232 0.4176 +vn 0.8604 0.3278 0.3902 +vn 0.8608 0.2928 0.4162 +vn 0.8776 0.2438 0.4129 +vn 0.8885 0.2483 0.3859 +vn 0.8720 0.2974 0.3889 +vn 0.8177 0.2755 0.5054 +vn 0.8349 0.2268 0.5014 +vn 0.7290 0.2693 0.6293 +vn 0.6292 0.2319 0.7418 +vn 0.6296 0.2341 0.7408 +vn 0.7281 0.2742 0.6282 +vn 0.7403 0.2442 0.6264 +vn 0.7581 0.1958 0.6221 +vn 0.6421 0.2042 0.7389 +vn 0.6604 0.1559 0.7346 +vn 0.8961 0.1781 0.4066 +vn 0.9129 0.0977 0.3963 +vn 0.9231 0.1015 0.3710 +vn 0.9086 0.1822 0.3757 +vn 0.8543 0.1617 0.4939 +vn 0.8726 0.0822 0.4814 +vn 0.5148 0.1890 0.8362 +vn 0.3959 0.1443 0.9069 +vn 0.3992 0.1403 0.9061 +vn 0.5167 0.1882 0.8352 +vn 0.5216 0.1701 0.8361 +vn 0.4008 0.1308 0.9068 +vn 0.9250 -0.0005 0.3801 +vn 0.9271 -0.1192 0.3554 +vn 0.9354 -0.1169 0.3337 +vn 0.9344 0.0026 0.3563 +vn 0.8869 -0.0148 0.4618 +vn 0.8922 -0.1319 0.4319 +vn 0.7785 0.1312 0.6138 +vn 0.7984 0.0525 0.5998 +vn 0.6818 0.0917 0.7258 +vn 0.7035 0.0135 0.7106 +vn 0.5295 0.1583 0.8334 +vn 0.5485 0.1101 0.8289 +vn 0.4123 0.1104 0.9043 +vn 0.4319 0.0622 0.8998 +vn 0.9117 -0.2583 0.3195 +vn 0.8699 -0.4126 0.2702 +vn 0.8747 -0.4124 0.2547 +vn 0.9185 -0.2570 0.3006 +vn 0.8815 -0.2689 0.3882 +vn 0.8458 -0.4206 0.3281 +vn 0.8154 -0.0435 0.5773 +vn 0.8250 -0.1589 0.5423 +vn 0.7234 -0.0816 0.6856 +vn 0.7378 -0.1956 0.6461 +vn 0.7952 -0.5696 0.2078 +vn 0.7976 -0.5703 0.1964 +vn 0.7785 -0.5748 0.2521 +vn 0.8207 -0.2936 0.4902 +vn 0.7941 -0.4420 0.4172 +vn 0.7407 -0.3279 0.5864 +vn 0.7245 -0.4727 0.5017 +vn 0.7384 -0.5918 0.3233 +vn 0.6532 -0.7260 0.2150 +vn 0.6826 -0.6172 0.3914 +vn 0.6139 -0.7444 0.2628 +vn 0.7382 -0.6036 0.3011 +vn 0.8523 -0.0565 0.5200 +vn 0.6801 -0.6289 0.3767 +vn 0.7423 -0.1082 0.6613 +vn 0.6496 -0.3672 0.6657 +vn 0.6454 -0.5076 0.5708 +vn 0.6383 -0.2377 0.7322 +vn 0.5342 -0.2822 0.7968 +vn 0.5542 -0.4089 0.7250 +vn 0.5624 -0.5448 0.6220 +vn 0.6184 -0.1254 0.7758 +vn 0.5950 -0.0314 0.8031 +vn 0.4817 -0.0786 0.8728 +vn 0.5086 -0.1717 0.8437 +vn 0.4652 -0.4480 0.7635 +vn 0.4863 -0.5791 0.6544 +vn 0.4362 -0.3244 0.8393 +vn 0.3493 -0.3619 0.8643 +vn 0.3866 -0.4828 0.7858 +vn 0.4194 -0.6095 0.6728 +vn 0.4047 -0.2156 0.8887 +vn 0.3740 -0.1235 0.9192 +vn 0.2780 -0.1636 0.9465 +vn 0.3122 -0.2548 0.9152 +vn 0.4932 -0.7038 0.5113 +vn 0.4825 -0.8056 0.3438 +vn 0.5224 -0.7869 0.3286 +vn 0.5527 -0.6763 0.4870 +vn 0.4416 -0.7278 0.5247 +vn 0.4485 -0.8217 0.3516 +vn 0.3998 -0.7474 0.5306 +vn 0.4215 -0.8346 0.3547 +vn 0.3646 -0.6345 0.6815 +vn 0.3208 -0.6545 0.6846 +vn 0.3665 -0.7630 0.5325 +vn 0.4000 -0.8448 0.3554 +vn 0.3215 -0.5117 0.7967 +vn 0.2768 -0.3934 0.8767 +vn 0.2186 -0.4186 0.8815 +vn 0.2694 -0.5349 0.8008 +vn 0.3412 -0.7749 0.5320 +vn 0.2875 -0.6698 0.6846 +vn 0.2645 -0.6804 0.6834 +vn 0.3238 -0.7832 0.5309 +vn 0.3836 -0.8527 0.3547 +vn 0.3723 -0.8581 0.3537 +vn 0.2347 -0.2877 0.9285 +vn 0.1974 -0.1974 0.9602 +vn 0.1326 -0.2246 0.9654 +vn 0.1725 -0.3142 0.9336 +vn 0.2297 -0.5526 0.8012 +vn 0.1743 -0.4379 0.8820 +vn 0.1434 -0.4513 0.8808 +vn 0.2021 -0.5649 0.8000 +vn 0.1250 -0.3344 0.9341 +vn 0.0831 -0.2453 0.9659 +vn 0.0486 -0.2598 0.9644 +vn 0.0919 -0.3485 0.9328 +vn 0.1651 -0.1218 0.9787 +vn 0.1376 -0.0589 0.9887 +vn 0.0703 -0.0866 0.9938 +vn 0.0987 -0.1494 0.9838 +vn 0.2477 -0.0876 0.9649 +vn 0.2213 -0.0244 0.9749 +vn 0.0481 -0.1704 0.9842 +vn 0.0189 -0.1078 0.9940 +vn -0.0171 -0.1226 0.9923 +vn 0.0126 -0.1851 0.9826 +vn 0.0643 -0.3601 0.9307 +vn 0.1175 -0.4605 0.8798 +vn 0.0197 -0.2718 0.9622 +vn 0.0039 -0.2785 0.9604 +vn 0.0491 -0.3666 0.9291 +vn 0.1035 -0.4686 0.8773 +vn 0.3458 -0.0469 0.9371 +vn 0.3206 0.0164 0.9471 +vn 0.4558 -0.0014 0.8901 +vn 0.1789 -0.5750 0.7984 +vn 0.2450 -0.6891 0.6820 +vn 0.1665 -0.5808 0.7968 +vn 0.2343 -0.6919 0.6829 +vn 0.3089 -0.7899 0.5297 +vn 0.3626 -0.8625 0.3529 +vn 0.3012 -0.7939 0.5282 +vn 0.3577 -0.8652 0.3515 +vn -0.0169 -0.1972 0.9802 +vn -0.0470 -0.1349 0.9897 +vn -0.0635 -0.1417 0.9879 +vn -0.0332 -0.2040 0.9784 +vn 0.0457 -0.3681 0.9287 +vn 0.1003 -0.4699 0.8770 +vn 0.0004 -0.2800 0.9600 +vn -0.0079 -0.2833 0.9590 +vn 0.0377 -0.3713 0.9277 +vn 0.0927 -0.4731 0.8761 +vn -0.0368 -0.2055 0.9780 +vn -0.0672 -0.1432 0.9874 +vn -0.0757 -0.1467 0.9863 +vn -0.0453 -0.2090 0.9769 +vn 0.1636 -0.5821 0.7965 +vn 0.2319 -0.6923 0.6834 +vn 0.1567 -0.5849 0.7958 +vn 0.2263 -0.6977 0.6797 +vn 0.3117 -0.7945 0.5211 +vn 0.0880 -0.4099 0.9079 +vn 0.1119 -0.3990 0.9101 +vn 0.3256 -0.7881 0.5224 +vn 0.3029 -0.7961 0.5239 +vn 0.0737 -0.4127 0.9079 +vn 0.3419 -0.7809 0.5227 +vn 0.1395 -0.3867 0.9116 +vn 0.1789 -0.3690 0.9120 +vn 0.3656 -0.7707 0.5220 +vn 0.2993 -0.7947 0.5281 +vn 0.3564 -0.8657 0.3514 +vn 0.2947 -0.7967 0.5277 +vn 0.3534 -0.8670 0.3512 +vn 0.2885 -0.7994 0.5269 +vn 0.3493 -0.8689 0.3507 +vn 0.2183 -0.7012 0.6787 +vn 0.2098 -0.7049 0.6775 +vn 0.2819 -0.8024 0.5260 +vn 0.3449 -0.8709 0.3501 +vn 0.1472 -0.5890 0.7946 +vn 0.0823 -0.4774 0.8748 +vn 0.0713 -0.4821 0.8732 +vn 0.1373 -0.5932 0.7932 +vn 0.0266 -0.3759 0.9263 +vn -0.0194 -0.2881 0.9574 +vn -0.0315 -0.2930 0.9556 +vn 0.0150 -0.3808 0.9245 +vn 0.1267 -0.5977 0.7916 +vn 0.2008 -0.7089 0.6762 +vn 0.0596 -0.4869 0.8714 +vn 0.0473 -0.4921 0.8692 +vn 0.1156 -0.6025 0.7897 +vn 0.1913 -0.7130 0.6746 +vn -0.0569 -0.2138 0.9752 +vn -0.0875 -0.1515 0.9846 +vn -0.0999 -0.1566 0.9826 +vn -0.0692 -0.2188 0.9733 +vn 0.0026 -0.3859 0.9225 +vn -0.0442 -0.2983 0.9535 +vn -0.0577 -0.3038 0.9510 +vn -0.0104 -0.3913 0.9202 +vn -0.0822 -0.2241 0.9711 +vn -0.1130 -0.1619 0.9803 +vn -0.1269 -0.1676 0.9777 +vn -0.0960 -0.2298 0.9685 +vn -0.1126 -0.0993 0.9887 +vn -0.1278 -0.0672 0.9895 +vn -0.1408 -0.0712 0.9875 +vn -0.1254 -0.1036 0.9867 +vn -0.1003 -0.0955 0.9904 +vn -0.1154 -0.0637 0.9913 +vn -0.1389 -0.1084 0.9844 +vn -0.1543 -0.0758 0.9851 +vn -0.1685 -0.0808 0.9824 +vn -0.1530 -0.1135 0.9817 +vn -0.1105 -0.2357 0.9655 +vn -0.0720 -0.3097 0.9481 +vn -0.1415 -0.1736 0.9746 +vn -0.1571 -0.1799 0.9711 +vn -0.1259 -0.2420 0.9621 +vn -0.0871 -0.3159 0.9448 +vn -0.0912 -0.0932 0.9915 +vn -0.1060 -0.0620 0.9924 +vn -0.0869 -0.0929 0.9919 +vn -0.1015 -0.0623 0.9929 +vn -0.0242 -0.3970 0.9175 +vn 0.0343 -0.4976 0.8667 +vn -0.0388 -0.4031 0.9143 +vn 0.0205 -0.5034 0.8638 +vn -0.0700 -0.0865 0.9938 +vn -0.0844 -0.0563 0.9948 +vn -0.0398 -0.0743 0.9964 +vn -0.0542 -0.0440 0.9976 +vn -0.1339 -0.0538 0.9895 +vn -0.1465 -0.0586 0.9875 +vn -0.1219 -0.0495 0.9913 +vn -0.1248 -0.0418 0.9913 +vn -0.1368 -0.0461 0.9895 +vn -0.1495 -0.0506 0.9875 +vn -0.0036 -0.0595 0.9982 +vn -0.0178 -0.0293 0.9994 +vn 0.0482 -0.0384 0.9981 +vn 0.0341 -0.0083 0.9994 +vn -0.1130 -0.0465 0.9925 +vn -0.1091 -0.0455 0.9930 +vn -0.1124 -0.0370 0.9930 +vn -0.1161 -0.0385 0.9925 +vn -0.0924 -0.0394 0.9949 +vn -0.0618 -0.0279 0.9977 +vn -0.0644 -0.0211 0.9977 +vn -0.0954 -0.0313 0.9949 +vn 0.1160 -0.0107 0.9932 +vn 0.1021 0.0194 0.9946 +vn 0.2003 0.0237 0.9794 +vn 0.1867 0.0538 0.9809 +vn -0.0252 -0.0142 0.9996 +vn 0.0271 0.0055 0.9996 +vn 0.0260 0.0085 0.9996 +vn -0.0272 -0.0089 0.9996 +vn -0.0964 -0.0279 0.9950 +vn -0.1136 -0.0329 0.9930 +vn -0.0651 -0.0188 0.9977 +vn -0.0658 -0.0161 0.9977 +vn -0.0976 -0.0239 0.9949 +vn -0.1149 -0.0282 0.9930 +vn -0.0274 -0.0079 0.9996 +vn 0.0263 0.0076 0.9996 +vn 0.0264 0.0065 0.9996 +vn -0.0279 -0.0068 0.9996 +vn 0.0957 0.0314 0.9949 +vn 0.1811 0.0635 0.9814 +vn 0.1825 0.0597 0.9814 +vn 0.0957 0.0313 0.9949 +vn -0.1174 -0.0341 0.9925 +vn -0.1263 -0.0368 0.9913 +vn -0.1188 -0.0291 0.9925 +vn -0.1278 -0.0313 0.9913 +vn 0.0968 0.0280 0.9949 +vn 0.1845 0.0533 0.9814 +vn 0.1862 0.0457 0.9814 +vn 0.0976 0.0239 0.9949 +vn 0.2884 0.0833 0.9539 +vn 0.4050 0.1170 0.9068 +vn 0.2913 0.0714 0.9540 +vn 0.2854 0.0932 0.9539 +vn 0.3002 0.0646 0.9517 +vn 0.2868 0.0946 0.9533 +vn 0.5712 0.0462 0.8195 +vn 0.2823 0.1016 0.9539 +vn 0.5270 0.1523 0.8361 +vn 0.2944 0.0570 0.9540 +vn 0.1882 0.0365 0.9815 +vn 0.2969 0.0425 0.9540 +vn 0.1898 0.0272 0.9814 +vn 0.0987 0.0191 0.9949 +vn 0.0267 0.0052 0.9996 +vn 0.0995 0.0143 0.9949 +vn 0.0269 0.0039 0.9996 +vn 0.2986 0.0279 0.9540 +vn 0.1909 0.0178 0.9814 +vn 0.2996 0.0132 0.9540 +vn 0.1916 0.0084 0.9814 +vn -0.0282 -0.0055 0.9996 +vn -0.0666 -0.0129 0.9977 +vn -0.0284 -0.0041 0.9996 +vn -0.0671 -0.0096 0.9977 +vn 0.1001 0.0094 0.9949 +vn 0.0271 0.0025 0.9996 +vn 0.1004 0.0044 0.9949 +vn 0.0272 0.0012 0.9996 +vn 0.2999 -0.0015 0.9540 +vn 0.1917 -0.0010 0.9814 +vn 0.2994 -0.0162 0.9540 +vn 0.1915 -0.0104 0.9814 +vn -0.0986 -0.0191 0.9949 +vn -0.1161 -0.0225 0.9930 +vn -0.0995 -0.0142 0.9949 +vn -0.1171 -0.0168 0.9930 +vn -0.0286 -0.0027 0.9996 +vn -0.0675 -0.0063 0.9977 +vn -0.0286 -0.0013 0.9996 +vn -0.0677 -0.0030 0.9977 +vn 0.1005 -0.0005 0.9949 +vn 0.0272 -0.0001 0.9996 +vn 0.1004 -0.0054 0.9949 +vn 0.0272 -0.0015 0.9996 +vn 0.2983 -0.0309 0.9540 +vn 0.1907 -0.0198 0.9814 +vn 0.2964 -0.0455 0.9540 +vn 0.1895 -0.0291 0.9814 +vn 0.2938 -0.0600 0.9540 +vn 0.1879 -0.0383 0.9814 +vn 0.1000 -0.0104 0.9949 +vn 0.0271 -0.0028 0.9996 +vn 0.0994 -0.0153 0.9949 +vn 0.0269 -0.0041 0.9996 +vn -0.0287 0.0001 0.9996 +vn -0.0678 0.0003 0.9977 +vn -0.0286 0.0016 0.9996 +vn -0.0677 0.0037 0.9977 +vn 0.0985 -0.0201 0.9949 +vn 0.0267 -0.0054 0.9996 +vn -0.0285 0.0030 0.9996 +vn -0.0674 0.0070 0.9977 +vn -0.0284 0.0044 0.9996 +vn -0.0670 0.0103 0.9977 +vn -0.0281 0.0057 0.9996 +vn -0.0664 0.0136 0.9977 +vn -0.0278 0.0071 0.9996 +vn -0.0657 0.0168 0.9977 +vn -0.0274 0.0082 0.9996 +vn -0.0649 0.0195 0.9977 +vn -0.0999 0.0103 0.9949 +vn -0.1176 0.0122 0.9930 +vn -0.1181 0.0064 0.9930 +vn -0.1003 0.0054 0.9949 +vn -0.0993 0.0152 0.9949 +vn -0.1169 0.0179 0.9930 +vn -0.0961 0.0289 0.9950 +vn -0.1133 0.0340 0.9930 +vn -0.1146 0.0293 0.9930 +vn -0.0973 0.0249 0.9949 +vn -0.0984 0.0201 0.9949 +vn -0.1159 0.0237 0.9930 +vn -0.1171 0.0353 0.9925 +vn -0.1260 0.0380 0.9913 +vn -0.1275 0.0326 0.9913 +vn -0.1185 0.0303 0.9925 +vn -0.1157 0.0397 0.9925 +vn -0.1244 0.0430 0.9913 +vn -0.1198 0.0245 0.9925 +vn -0.1289 0.0263 0.9913 +vn -0.1301 0.0200 0.9913 +vn -0.1209 0.0185 0.9925 +vn -0.1216 0.0126 0.9925 +vn -0.1309 0.0136 0.9913 +vn -0.1314 0.0071 0.9913 +vn -0.1221 0.0066 0.9925 +vn -0.1005 0.0005 0.9949 +vn -0.1183 0.0006 0.9930 +vn -0.1182 -0.0052 0.9930 +vn -0.1004 -0.0044 0.9949 +vn -0.1223 0.0006 0.9925 +vn -0.1316 0.0007 0.9913 +vn -0.1315 -0.0058 0.9913 +vn -0.1222 -0.0054 0.9925 +vn -0.1000 -0.0093 0.9949 +vn -0.1178 -0.0110 0.9930 +vn -0.1218 -0.0114 0.9925 +vn -0.1310 -0.0122 0.9913 +vn -0.1303 -0.0187 0.9913 +vn -0.1211 -0.0173 0.9925 +vn -0.1201 -0.0233 0.9925 +vn -0.1292 -0.0250 0.9913 +vn -0.1437 -0.0134 0.9895 +vn -0.1572 -0.0147 0.9875 +vn -0.1563 -0.0224 0.9875 +vn -0.1429 -0.0205 0.9895 +vn -0.1442 -0.0064 0.9895 +vn -0.1577 -0.0070 0.9875 +vn -0.1386 -0.0404 0.9895 +vn -0.1515 -0.0443 0.9875 +vn -0.1402 -0.0344 0.9895 +vn -0.1533 -0.0376 0.9875 +vn -0.1417 -0.0275 0.9895 +vn -0.1550 -0.0300 0.9875 +vn -0.1598 -0.0636 0.9851 +vn -0.1739 -0.0690 0.9823 +vn -0.1630 -0.0553 0.9851 +vn -0.1772 -0.0603 0.9823 +vn -0.1651 -0.0483 0.9851 +vn -0.1796 -0.0526 0.9823 +vn -0.1671 -0.0410 0.9851 +vn -0.1817 -0.0446 0.9823 +vn -0.1689 -0.0327 0.9851 +vn -0.1837 -0.0356 0.9823 +vn -0.1703 -0.0244 0.9851 +vn -0.1852 -0.0265 0.9823 +vn -0.1444 0.0007 0.9895 +vn -0.1578 0.0008 0.9875 +vn -0.1442 0.0078 0.9895 +vn -0.1576 0.0085 0.9875 +vn -0.1713 -0.0160 0.9851 +vn -0.1863 -0.0174 0.9823 +vn -0.1719 -0.0076 0.9851 +vn -0.1869 -0.0082 0.9823 +vn -0.1436 0.0149 0.9895 +vn -0.1570 0.0163 0.9875 +vn -0.1427 0.0219 0.9895 +vn -0.1560 0.0239 0.9875 +vn -0.1721 0.0009 0.9851 +vn -0.1871 0.0009 0.9823 +vn -0.1718 0.0093 0.9851 +vn -0.1868 0.0101 0.9823 +vn -0.1414 0.0289 0.9895 +vn -0.1547 0.0316 0.9875 +vn -0.1399 0.0358 0.9895 +vn -0.1529 0.0391 0.9875 +vn -0.1712 0.0177 0.9851 +vn -0.1861 0.0193 0.9823 +vn -0.1701 0.0261 0.9851 +vn -0.1849 0.0284 0.9823 +vn -0.2021 -0.0189 0.9792 +vn -0.2189 -0.0205 0.9755 +vn -0.2176 -0.0312 0.9755 +vn -0.2010 -0.0288 0.9792 +vn -0.2028 -0.0089 0.9792 +vn -0.2196 -0.0097 0.9755 +vn -0.2030 0.0010 0.9792 +vn -0.2199 0.0011 0.9755 +vn -0.2027 0.0110 0.9792 +vn -0.2195 0.0119 0.9755 +vn -0.1993 -0.0386 0.9792 +vn -0.2158 -0.0418 0.9755 +vn -0.2135 -0.0524 0.9755 +vn -0.1972 -0.0483 0.9792 +vn -0.1686 0.0344 0.9851 +vn -0.1833 0.0374 0.9823 +vn -0.1667 0.0426 0.9851 +vn -0.1813 0.0464 0.9823 +vn -0.1948 -0.0571 0.9792 +vn -0.2110 -0.0619 0.9755 +vn -0.2081 -0.0711 0.9755 +vn -0.1922 -0.0655 0.9792 +vn -0.1382 0.0418 0.9895 +vn -0.1511 0.0458 0.9875 +vn -0.1364 0.0474 0.9895 +vn -0.1490 0.0520 0.9875 +vn -0.1125 0.0477 0.9925 +vn -0.1213 0.0508 0.9913 +vn -0.1333 0.0553 0.9895 +vn -0.1459 0.0601 0.9875 +vn -0.1647 0.0500 0.9851 +vn -0.1790 0.0544 0.9823 +vn -0.1624 0.0569 0.9851 +vn -0.1765 0.0620 0.9823 +vn -0.1377 0.1098 0.9844 +vn -0.1536 0.0772 0.9851 +vn -0.1519 0.1151 0.9817 +vn -0.1678 0.0824 0.9824 +vn -0.1591 0.0653 0.9851 +vn -0.1731 0.0708 0.9824 +vn -0.1662 0.1203 0.9787 +vn -0.1827 0.0880 0.9792 +vn -0.1879 0.0766 0.9792 +vn -0.1915 0.0674 0.9792 +vn -0.1942 0.0590 0.9792 +vn -0.2103 0.0640 0.9755 +vn -0.2130 0.0545 0.9755 +vn -0.1967 0.0503 0.9792 +vn -0.2274 0.0692 0.9713 +vn -0.2303 0.0589 0.9713 +vn -0.1989 0.0406 0.9792 +vn -0.2154 0.0440 0.9755 +vn -0.2173 0.0334 0.9755 +vn -0.2007 0.0308 0.9792 +vn -0.2329 0.0475 0.9713 +vn -0.2515 0.0513 0.9665 +vn -0.2537 0.0389 0.9665 +vn -0.2350 0.0361 0.9713 +vn -0.2712 0.0554 0.9609 +vn -0.2922 0.0596 0.9545 +vn -0.2948 0.0452 0.9545 +vn -0.2736 0.0420 0.9609 +vn -0.2019 0.0209 0.9792 +vn -0.2187 0.0226 0.9755 +vn -0.2365 0.0245 0.9713 +vn -0.2553 0.0264 0.9665 +vn -0.2563 0.0139 0.9665 +vn -0.2374 0.0129 0.9713 +vn -0.2377 0.0012 0.9713 +vn -0.2567 0.0013 0.9665 +vn -0.2564 -0.0113 0.9665 +vn -0.2375 -0.0105 0.9713 +vn -0.2753 0.0285 0.9609 +vn -0.2966 0.0307 0.9545 +vn -0.2978 0.0161 0.9545 +vn -0.2764 0.0150 0.9609 +vn -0.2768 0.0014 0.9609 +vn -0.2982 0.0015 0.9545 +vn -0.2979 -0.0131 0.9545 +vn -0.2765 -0.0122 0.9609 +vn -0.2367 -0.0221 0.9713 +vn -0.2556 -0.0239 0.9665 +vn -0.2541 -0.0364 0.9665 +vn -0.2353 -0.0337 0.9713 +vn -0.2756 -0.0257 0.9609 +vn -0.2969 -0.0277 0.9545 +vn -0.2952 -0.0423 0.9545 +vn -0.2740 -0.0392 0.9609 +vn -0.2334 -0.0452 0.9713 +vn -0.2520 -0.0488 0.9665 +vn -0.2493 -0.0611 0.9665 +vn -0.2309 -0.0566 0.9713 +vn -0.2718 -0.0526 0.9609 +vn -0.2928 -0.0567 0.9545 +vn -0.2896 -0.0710 0.9545 +vn -0.2688 -0.0659 0.9609 +vn -0.2281 -0.0670 0.9713 +vn -0.2463 -0.0723 0.9665 +vn -0.2428 -0.0832 0.9665 +vn -0.2249 -0.0769 0.9713 +vn -0.2656 -0.0780 0.9609 +vn -0.2861 -0.0841 0.9545 +vn -0.2821 -0.0968 0.9545 +vn -0.2619 -0.0898 0.9609 +vn -0.3176 -0.0615 0.9462 +vn -0.3459 -0.0670 0.9359 +vn -0.3422 -0.0839 0.9359 +vn -0.3142 -0.0770 0.9462 +vn -0.3202 -0.0459 0.9462 +vn -0.3488 -0.0499 0.9359 +vn -0.3103 -0.0913 0.9462 +vn -0.3380 -0.0994 0.9359 +vn -0.3332 -0.1145 0.9359 +vn -0.3059 -0.1051 0.9462 +vn -0.2575 -0.1013 0.9609 +vn -0.2388 -0.0941 0.9665 +vn -0.2775 -0.1091 0.9545 +vn -0.2724 -0.1204 0.9546 +vn -0.2525 -0.1126 0.9610 +vn -0.2337 -0.1053 0.9666 +vn -0.3221 -0.0301 0.9462 +vn -0.3508 -0.0328 0.9359 +vn -0.3232 -0.0143 0.9462 +vn -0.3520 -0.0155 0.9359 +vn -0.2211 -0.0872 0.9713 +vn -0.2044 -0.0807 0.9756 +vn -0.2160 -0.0985 0.9714 +vn -0.1993 -0.0921 0.9756 +vn -0.3235 0.0016 0.9462 +vn -0.3523 0.0018 0.9359 +vn -0.3230 0.0175 0.9462 +vn -0.3518 0.0191 0.9359 +vn -0.1887 -0.0747 0.9792 +vn -0.1835 -0.0862 0.9792 +vn -0.1680 -0.1191 0.9786 +vn -0.1837 -0.1251 0.9750 +vn -0.2004 -0.1315 0.9708 +vn -0.1735 -0.1867 0.9670 +vn -0.2181 -0.1384 0.9661 +vn -0.1910 -0.1938 0.9623 +vn -0.2368 -0.1458 0.9606 +vn -0.2096 -0.2014 0.9568 +vn -0.2567 -0.1537 0.9542 +vn -0.1422 -0.2487 0.9581 +vn -0.1031 -0.3225 0.9409 +vn -0.1595 -0.2558 0.9535 +vn -0.1779 -0.2633 0.9482 +vn -0.0543 -0.4095 0.9107 +vn 0.0059 -0.5095 0.8604 +vn 0.0780 -0.6186 0.7819 +vn 0.0912 -0.6129 0.7849 +vn 0.1038 -0.6075 0.7875 +vn 0.1813 -0.7174 0.6727 +vn 0.2599 -0.8122 0.5222 +vn 0.2677 -0.8088 0.5237 +vn 0.2750 -0.8055 0.5250 +vn 0.3403 -0.8730 0.3494 +vn 0.2841 -0.7933 0.5384 +vn 0.0413 -0.4024 0.9145 +vn 0.0557 -0.4043 0.9129 +vn 0.2926 -0.7934 0.5337 +vn 0.2752 -0.7937 0.5425 +vn 0.0266 -0.4013 0.9156 +vn 0.2993 -0.7944 0.5285 +vn 0.0673 -0.4081 0.9104 +vn -0.2802 -0.1630 0.9460 +vn -0.2959 -0.1297 0.9464 +vn -0.3227 -0.1404 0.9360 +vn -0.3070 -0.1737 0.9357 +vn -0.3010 -0.1183 0.9463 +vn -0.3279 -0.1287 0.9359 +vn -0.3348 -0.1849 0.9240 +vn -0.3505 -0.1515 0.9242 +vn -0.3558 -0.1396 0.9241 +vn -0.3884 -0.1523 0.9088 +vn -0.3615 -0.1243 0.9241 +vn -0.3946 -0.1358 0.9088 +vn -0.4267 -0.1673 0.8888 +vn -0.4334 -0.1493 0.8887 +vn -0.3667 -0.1079 0.9241 +vn -0.4003 -0.1178 0.9088 +vn -0.3713 -0.0910 0.9240 +vn -0.4053 -0.0994 0.9088 +vn -0.4397 -0.1295 0.8887 +vn -0.4826 -0.1422 0.8642 +vn -0.4452 -0.1092 0.8887 +vn -0.4887 -0.1198 0.8642 +vn -0.3753 -0.0727 0.9241 +vn -0.4097 -0.0794 0.9088 +vn -0.3784 -0.0542 0.9241 +vn -0.4131 -0.0592 0.9088 +vn -0.5292 -0.1559 0.8341 +vn -0.5794 -0.1707 0.7970 +vn -0.5358 -0.1314 0.8340 +vn -0.5867 -0.1438 0.7969 +vn -0.4501 -0.0872 0.8887 +vn -0.4940 -0.0957 0.8642 +vn -0.4538 -0.0650 0.8887 +vn -0.4981 -0.0713 0.8642 +vn -0.3806 -0.0356 0.9241 +vn -0.4155 -0.0388 0.9088 +vn -0.3819 -0.0168 0.9241 +vn -0.4169 -0.0184 0.9088 +vn -0.6331 -0.1866 0.7512 +vn -0.6898 -0.2033 0.6949 +vn -0.6411 -0.1572 0.7512 +vn -0.6985 -0.1712 0.6949 +vn -0.5416 -0.1049 0.8340 +vn -0.5930 -0.1149 0.7970 +vn -0.5461 -0.0782 0.8340 +vn -0.5980 -0.0856 0.7969 +vn -0.4564 -0.0426 0.8887 +vn -0.5010 -0.0468 0.8642 +vn -0.4580 -0.0202 0.8887 +vn -0.5027 -0.0222 0.8642 +vn -0.7483 -0.2206 0.6256 +vn -0.7578 -0.1858 0.6255 +vn -0.6480 -0.1255 0.7512 +vn -0.7060 -0.1368 0.6949 +vn -0.6534 -0.0936 0.7512 +vn -0.7660 -0.1484 0.6255 +vn -0.6572 -0.0614 0.7512 +vn -0.6014 -0.0562 0.7969 +vn -0.5493 -0.0513 0.8340 +vn -0.5512 -0.0243 0.8340 +vn -0.5517 0.0028 0.8340 +vn -0.5032 0.0025 0.8642 +vn -0.4560 0.0472 0.8887 +vn -0.4151 0.0430 0.9088 +vn -0.4578 0.0248 0.8887 +vn -0.4167 0.0226 0.9088 +vn -0.4584 0.0023 0.8887 +vn -0.4173 0.0021 0.9088 +vn -0.3802 0.0394 0.9241 +vn -0.3505 0.0363 0.9359 +vn -0.3817 0.0207 0.9241 +vn -0.3169 0.0647 0.9462 +vn -0.3197 0.0491 0.9462 +vn -0.3823 0.0019 0.9241 +vn -0.3218 0.0333 0.9462 +vn 0.6192 -0.6457 0.4468 +vn 0.5693 -0.7648 0.3016 +vn 0.6088 -0.6637 0.4347 +vn 0.5973 -0.1815 0.7812 +vn 0.5368 -0.6932 0.4810 +vn 0.4529 -0.2425 0.8579 +vn 0.4802 -0.7187 0.5029 +vn 0.3624 -0.2843 0.8876 +vn 0.4328 -0.7400 0.5149 +vn 0.2875 -0.3187 0.9032 +vn 0.3957 -0.7568 0.5203 +vn 0.2285 -0.3460 0.9100 +vn 0.6204 0.6353 0.4599 +vn 0.5764 0.7593 0.3021 +vn 0.5876 0.1308 0.7985 +vn 0.6251 0.6397 0.4472 +vn -0.1375 -0.9554 0.2615 +vn -0.6386 -0.6435 0.4220 +vn -0.1641 -0.9689 0.1854 +vn -0.6839 -0.6654 0.2992 +vn -0.1992 -0.9799 0.0101 +vn -0.7282 -0.6852 0.0151 +vn -0.7255 -0.6843 0.0730 +vn -0.1953 -0.9796 0.0466 +vn 0.0675 -0.9977 0.0067 +vn 0.0694 -0.9976 -0.0014 +vn -0.2040 -0.9790 -0.0024 +vn -0.7291 -0.6844 -0.0044 +vn -0.1380 -0.9904 0.0108 +vn -0.3339 -0.9425 0.0148 +vn -0.3325 -0.9431 -0.0017 +vn -0.1362 -0.9907 -0.0017 +vn -0.5003 -0.8656 0.0181 +vn -0.6299 -0.7764 0.0206 +vn -0.6295 -0.7770 -0.0013 +vn -0.4994 -0.8664 -0.0015 +vn -0.7256 -0.6878 0.0224 +vn -0.7944 -0.6069 0.0236 +vn -0.7945 -0.6073 -0.0006 +vn -0.7254 -0.6883 -0.0009 +vn -0.8438 -0.5361 0.0243 +vn -0.8795 -0.4752 0.0248 +vn -0.8798 -0.4754 -0.0002 +vn -0.8440 -0.5364 -0.0004 +vn -0.9081 -0.4181 0.0250 +vn -0.9229 -0.3841 0.0251 +vn -0.9232 -0.3842 0.0000 +vn -0.9083 -0.4182 -0.0001 +vn -0.9310 -0.3642 0.0251 +vn -0.9313 -0.3643 0.0000 +vn -0.9450 -0.3262 0.0230 +vn -0.9453 -0.3263 0.0000 +vn -0.9589 -0.2827 0.0251 +vn -0.9592 -0.2827 0.0000 +vn -0.9710 -0.2380 0.0230 +vn -0.9712 -0.2381 0.0000 +vn -0.9814 -0.1901 0.0251 +vn -0.9817 -0.1902 0.0000 +vn -0.9896 -0.1417 0.0230 +vn -0.9899 -0.1418 0.0000 +vn -0.9953 -0.0930 0.0251 +vn -0.9957 -0.0930 0.0000 +vn -0.9988 -0.0440 0.0230 +vn -0.9990 -0.0441 0.0000 +vn -0.9997 0.0050 0.0251 +vn -1.0000 0.0050 0.0000 +vn -0.9983 0.0541 0.0230 +vn -0.9985 0.0541 0.0000 +vn -0.9944 0.1030 0.0251 +vn -0.9947 0.1030 0.0000 +vn -0.9882 0.1516 0.0229 +vn -0.9884 0.1517 0.0000 +vn -0.9795 0.1999 0.0252 +vn -0.9798 0.2000 0.0000 +vn -0.9685 0.2478 0.0230 +vn -0.9688 0.2478 0.0000 +vn -0.9560 0.2923 0.0251 +vn -0.9563 0.2924 0.0000 +vn -0.9417 0.3356 0.0230 +vn -0.9420 0.3357 0.0000 +vn -0.9273 0.3735 0.0251 +vn -0.9276 0.3736 0.0000 +vn -0.9191 0.3934 0.0229 +vn -0.9193 0.3935 0.0000 +vn -0.9038 0.4272 0.0251 +vn -0.8747 0.4840 0.0249 +vn -0.8749 0.4842 -0.0001 +vn -0.9041 0.4274 -0.0000 +vn -0.8384 0.5445 0.0244 +vn -0.7883 0.6149 0.0237 +vn -0.7883 0.6153 -0.0005 +vn -0.8385 0.5448 -0.0003 +vn -0.7186 0.6951 0.0225 +vn -0.6221 0.7827 0.0208 +vn -0.6216 0.7833 -0.0012 +vn -0.7184 0.6956 -0.0009 +vn -0.4916 0.8706 0.0183 +vn -0.3244 0.9458 0.0150 +vn -0.3230 0.9464 -0.0017 +vn -0.4907 0.8713 -0.0016 +vn -0.1281 0.9917 0.0110 +vn 0.0775 0.9970 0.0068 +vn 0.0793 0.9969 -0.0013 +vn -0.1263 0.9920 -0.0016 +vn -0.1284 0.9907 0.0453 +vn 0.0767 0.9966 0.0294 +vn -0.2363 0.9716 0.0109 +vn -0.7593 0.6506 0.0155 +vn -0.7598 0.6502 -0.0045 +vn -0.2415 0.9704 -0.0023 +vn -0.2320 0.9714 0.0496 +vn -0.7568 0.6494 0.0743 +vn -0.2201 0.9689 0.1136 +vn 0.0790 0.9947 0.0665 +vn -0.7442 0.6433 0.1796 +vn -0.1239 0.9872 0.1006 +vn 0.2661 -0.7945 0.5459 +vn 0.0114 -0.4012 0.9159 +vn -0.1841 -0.9771 0.1071 +vn -0.7136 -0.6793 0.1712 +vn -0.7462 0.5042 0.4348 +vn 0.6846 -0.7219 0.1009 +vn 0.8190 -0.5699 0.0668 +vn 0.8215 -0.5584 0.1151 +vn 0.6885 -0.7044 0.1726 +vn 0.5250 -0.8411 0.1305 +vn 0.5305 -0.8182 0.2217 +vn 0.5244 -0.8494 0.0594 +vn 0.6844 -0.7277 0.0453 +vn 0.8191 -0.5729 0.0294 +vn 0.9312 0.2976 0.2106 +vn 0.5589 0.7528 0.3477 +vn 0.5592 0.7570 0.3381 +vn 0.9302 0.3047 0.2046 +vn 0.9864 0.0904 0.1370 +vn 0.9875 0.0897 0.1299 +vn 0.9828 0.0819 0.1657 +vn 0.9292 0.2758 0.2462 +vn 0.5530 0.7301 0.4014 +vn -0.9743 0.1655 0.1526 +vn -0.9308 0.3415 0.1302 +vn -0.9389 0.3391 0.0595 +vn -0.9842 0.1621 0.0705 +vn -0.9857 0.0102 0.1679 +vn -0.9969 0.0058 0.0784 +vn -0.9588 0.0238 0.2831 +vn -0.9496 0.1776 0.2583 +vn -0.9096 0.3515 0.2215 +vn -0.3338 0.7863 0.5199 +vn -0.3775 0.8553 0.3548 +vn -0.3504 0.8680 0.3518 +vn -0.2974 0.8044 0.5142 +vn -0.1218 0.3954 0.9104 +vn -0.0629 0.4230 0.9040 +vn -0.1715 0.3720 0.9122 +vn -0.3637 0.7716 0.5218 +vn -0.3992 0.8451 0.3555 +vn 0.0679 0.9777 0.1986 +vn -0.1137 0.9841 0.1365 +vn -0.1144 0.9850 0.1289 +vn 0.0742 0.9786 0.1921 +vn 0.5874 0.7342 0.3404 +vn 0.5924 0.7346 0.3308 +vn 0.5653 0.7254 0.3926 +vn 0.0490 0.9713 0.2329 +vn -0.1215 0.9787 0.1653 +vn 0.3617 -0.9197 0.1529 +vn 0.2120 -0.9627 0.1682 +vn 0.2099 -0.9746 0.0784 +vn 0.3604 -0.9301 0.0705 +vn 0.3684 -0.8930 0.2585 +vn 0.2197 -0.9335 0.2833 +vn 0.0840 -0.9805 0.1778 +vn -0.0214 -0.9828 0.1835 +vn -0.0245 -0.9959 0.0867 +vn 0.0814 -0.9932 0.0835 +vn 0.0925 -0.9499 0.2986 +vn -0.0125 -0.9515 0.3074 +vn 0.3797 -0.8517 0.3611 +vn 0.2323 -0.8887 0.3954 +vn 0.5399 -0.7825 0.3101 +vn 0.5518 -0.7415 0.3817 +vn 0.3938 -0.8043 0.4449 +vn 0.2477 -0.8372 0.4875 +vn 0.6958 -0.6764 0.2417 +vn 0.8264 -0.5395 0.1614 +vn 0.8323 -0.5177 0.1984 +vn 0.7049 -0.6440 0.2973 +vn -0.1069 -0.9766 0.1866 +vn -0.1763 -0.9662 0.1880 +vn -0.1800 -0.9796 0.0896 +vn -0.1104 -0.9899 0.0886 +vn -0.0978 -0.9450 0.3120 +vn -0.1670 -0.9346 0.3141 +vn 0.7141 -0.6109 0.3419 +vn 0.5641 -0.6991 0.4394 +vn 0.8382 -0.4955 0.2278 +vn 0.8440 -0.4736 0.2518 +vn 0.7231 -0.5780 0.3781 +vn 0.5760 -0.6570 0.4863 +vn 0.6389 -0.6595 0.3960 +vn 0.0731 -0.7899 0.6089 +vn 0.0877 -0.7333 0.6742 +vn 0.6480 -0.6226 0.4387 +vn 0.6301 -0.6963 0.3438 +vn 0.0587 -0.8463 0.5294 +vn 0.6570 -0.5867 0.4734 +vn 0.8495 -0.4525 0.2712 +vn 0.1020 -0.6785 0.7275 +vn 0.1159 -0.6265 0.7707 +vn 0.6657 -0.5526 0.5014 +vn 0.8547 -0.4326 0.2869 +vn 0.6742 -0.5206 0.5239 +vn 0.8596 -0.4141 0.2995 +vn 0.1293 -0.5779 0.8058 +vn 0.1422 -0.5328 0.8342 +vn 0.6823 -0.4909 0.5418 +vn 0.8640 -0.3970 0.3098 +vn 0.7318 -0.5464 0.4074 +vn 0.5875 -0.6165 0.5242 +vn 0.7398 -0.5166 0.4311 +vn 0.5981 -0.5783 0.5548 +vn 0.4083 -0.7552 0.5128 +vn 0.2638 -0.7837 0.5623 +vn 0.4225 -0.7064 0.5679 +vn 0.2796 -0.7303 0.6232 +vn 0.1059 -0.9029 0.4165 +vn 0.0014 -0.9035 0.4285 +vn 0.1221 -0.8492 0.5138 +vn 0.0181 -0.8485 0.5289 +vn -0.0836 -0.8966 0.4349 +vn -0.1527 -0.8861 0.4377 +vn -0.0668 -0.8410 0.5369 +vn -0.1359 -0.8303 0.5405 +vn 0.1391 -0.7930 0.5931 +vn 0.0355 -0.7908 0.6110 +vn 0.1558 -0.7369 0.6578 +vn 0.0528 -0.7333 0.6779 +vn 0.4362 -0.6592 0.6125 +vn 0.2949 -0.6788 0.6725 +vn 0.4490 -0.6147 0.6485 +vn 0.3091 -0.6302 0.7123 +vn -0.2383 -0.9527 0.1885 +vn -0.2740 -0.9431 0.1884 +vn -0.2779 -0.9564 0.0900 +vn -0.2422 -0.9661 0.0899 +vn -0.2290 -0.9212 0.3147 +vn -0.2646 -0.9117 0.3144 +vn -0.2146 -0.8727 0.4385 +vn -0.2502 -0.8634 0.4381 +vn -0.1979 -0.8170 0.5416 +vn -0.2336 -0.8078 0.5412 +vn -0.0492 -0.7826 0.6205 +vn -0.1183 -0.7716 0.6250 +vn -0.0317 -0.7243 0.6887 +vn -0.1007 -0.7130 0.6939 +vn -0.2943 -0.9370 0.1882 +vn -0.2984 -0.9502 0.0900 +vn -0.2844 -0.9058 0.3141 +vn -0.3209 -0.8935 0.3140 +vn -0.3320 -0.9243 0.1882 +vn -0.3367 -0.9373 0.0900 +vn 0.1720 -0.6828 0.7101 +vn 0.0694 -0.6777 0.7321 +vn 0.1872 -0.6316 0.7524 +vn 0.0851 -0.6250 0.7760 +vn 0.7473 -0.4889 0.4501 +vn 0.6081 -0.5427 0.5794 +vn 0.7541 -0.4632 0.4655 +vn 0.6172 -0.5097 0.5993 +vn 0.6900 -0.4634 0.5560 +vn 0.1545 -0.4913 0.8572 +vn 0.1665 -0.4532 0.8757 +vn 0.6976 -0.4381 0.5670 +vn 0.8680 -0.3813 0.3180 +vn 0.8718 -0.3669 0.3247 +vn 0.7040 -0.4167 0.5751 +vn 0.8750 -0.3546 0.3296 +vn 0.1774 -0.4210 0.8895 +vn 0.1875 -0.3936 0.8999 +vn 0.7104 -0.3984 0.5802 +vn 0.8777 -0.3442 0.3335 +vn 0.7604 -0.4397 0.4779 +vn 0.6256 -0.4795 0.6154 +vn 0.7662 -0.4180 0.4880 +vn 0.6333 -0.4517 0.6284 +vn 0.4609 -0.5732 0.6775 +vn 0.3224 -0.5848 0.7444 +vn 0.4719 -0.5349 0.7009 +vn 0.3346 -0.5428 0.7703 +vn -0.0148 -0.6679 0.7441 +vn -0.0838 -0.6563 0.7498 +vn 0.0011 -0.6146 0.7889 +vn -0.0677 -0.6026 0.7952 +vn 0.2014 -0.5838 0.7865 +vn 0.0998 -0.5759 0.8114 +vn 0.2144 -0.5396 0.8142 +vn 0.1133 -0.5304 0.8402 +vn 0.4819 -0.4996 0.7198 +vn 0.3459 -0.5042 0.7913 +vn 0.4912 -0.4672 0.7352 +vn 0.3562 -0.4687 0.8084 +vn 0.7712 -0.3997 0.4955 +vn 0.6399 -0.4281 0.6382 +vn 0.7754 -0.3840 0.5013 +vn 0.6454 -0.4081 0.6457 +vn 0.2264 -0.4989 0.8366 +vn 0.1257 -0.4885 0.8635 +vn 0.2374 -0.4615 0.8548 +vn 0.1372 -0.4500 0.8824 +vn 0.4990 -0.4398 0.7467 +vn 0.3650 -0.4386 0.8212 +vn 0.5057 -0.4163 0.7556 +vn 0.3724 -0.4129 0.8312 +vn 0.7793 -0.3690 0.5065 +vn 0.6507 -0.3887 0.6523 +vn 0.8802 -0.3342 0.3370 +vn 0.8825 -0.3254 0.3395 +vn 0.7829 -0.3558 0.5104 +vn 0.6554 -0.3718 0.6575 +vn 0.7166 -0.3807 0.5845 +vn 0.1973 -0.3672 0.9090 +vn 0.2063 -0.3442 0.9159 +vn 0.7219 -0.3654 0.5877 +vn 0.7271 -0.3524 0.5891 +vn 0.8844 -0.3180 0.3416 +vn 0.2149 -0.3249 0.9210 +vn 0.2236 -0.3069 0.9251 +vn 0.7324 -0.3403 0.5897 +vn 0.8862 -0.3110 0.3434 +vn 0.7378 -0.3289 0.5895 +vn 0.8879 -0.3045 0.3450 +vn 0.2325 -0.2900 0.9284 +vn 0.2416 -0.2744 0.9308 +vn 0.7432 -0.3183 0.5885 +vn 0.8894 -0.2983 0.3463 +vn 0.7858 -0.3447 0.5135 +vn 0.6593 -0.3575 0.6615 +vn 0.7886 -0.3342 0.5162 +vn 0.6629 -0.3440 0.6650 +vn 0.5120 -0.3937 0.7634 +vn 0.3796 -0.3881 0.8398 +vn 0.5177 -0.3740 0.7695 +vn 0.3859 -0.3665 0.8466 +vn 0.7487 -0.3083 0.5868 +vn 0.8909 -0.2925 0.3475 +vn 0.2510 -0.2598 0.9325 +vn 0.2607 -0.2462 0.9335 +vn 0.7544 -0.2991 0.5843 +vn 0.8923 -0.2870 0.3485 +vn 0.7911 -0.3244 0.5185 +vn 0.6664 -0.3314 0.6679 +vn 0.7936 -0.3151 0.5205 +vn 0.6696 -0.3195 0.6705 +vn 0.5224 -0.3573 0.7742 +vn 0.3912 -0.3481 0.8519 +vn 0.5268 -0.3416 0.7783 +vn 0.3961 -0.3309 0.8565 +vn 0.2468 -0.4297 0.8686 +vn 0.1469 -0.4173 0.8968 +vn 0.2548 -0.4026 0.8792 +vn 0.1552 -0.3893 0.9079 +vn 0.2624 -0.3765 0.8885 +vn 0.1631 -0.3624 0.9177 +vn 0.2691 -0.3536 0.8958 +vn 0.1701 -0.3388 0.9254 +vn 0.2748 -0.3343 0.9015 +vn 0.1760 -0.3189 0.9313 +vn 0.2801 -0.3161 0.9064 +vn 0.1815 -0.3001 0.9365 +vn 0.0640 -0.4037 0.9127 +vn -0.0044 -0.3903 0.9207 +vn -0.0144 -0.4238 0.9056 +vn 0.0541 -0.4369 0.8979 +vn 0.0725 -0.3753 0.9241 +vn 0.0041 -0.3617 0.9323 +vn 0.0806 -0.3479 0.9341 +vn 0.0124 -0.3341 0.9425 +vn 0.0877 -0.3240 0.9420 +vn 0.0195 -0.3100 0.9505 +vn 0.0425 -0.4760 0.8784 +vn -0.0261 -0.4631 0.8859 +vn -0.0389 -0.5060 0.8617 +vn 0.0298 -0.5185 0.8545 +vn 0.0160 -0.5647 0.8251 +vn -0.0527 -0.5525 0.8319 +vn -0.0877 -0.4496 0.8889 +vn -0.1236 -0.4409 0.8890 +vn -0.1365 -0.4838 0.8645 +vn -0.1006 -0.4925 0.8645 +vn -0.0758 -0.4102 0.9088 +vn -0.1117 -0.4016 0.9090 +vn -0.1146 -0.5391 0.8344 +vn -0.1505 -0.5303 0.8344 +vn -0.1656 -0.5804 0.7973 +vn -0.1297 -0.5893 0.7975 +vn -0.1458 -0.6430 0.7519 +vn -0.1816 -0.6341 0.7516 +vn -0.1986 -0.6907 0.6953 +vn -0.1628 -0.6997 0.6956 +vn -0.1803 -0.7584 0.6264 +vn -0.2161 -0.7493 0.6260 +vn -0.1976 -0.6297 0.7513 +vn -0.2153 -0.6861 0.6950 +vn -0.1807 -0.5763 0.7970 +vn -0.2044 -0.5684 0.7969 +vn -0.2233 -0.6212 0.7512 +vn -0.2432 -0.6768 0.6949 +vn -0.2694 -0.8578 0.4377 +vn -0.2520 -0.8025 0.5408 +vn -0.2844 -0.7917 0.5407 +vn -0.3040 -0.8462 0.4376 +vn -0.2336 -0.7443 0.6256 +vn -0.2638 -0.7342 0.6255 +vn -0.1650 -0.5264 0.8341 +vn -0.1504 -0.4801 0.8642 +vn -0.1703 -0.4735 0.8642 +vn -0.1867 -0.5192 0.8340 +vn -0.3739 -0.9082 0.1882 +vn -0.3791 -0.9210 0.0900 +vn -0.3614 -0.8779 0.3141 +vn -0.4016 -0.8603 0.3140 +vn -0.4155 -0.8899 0.1882 +vn -0.4213 -0.9024 0.0900 +vn -0.4586 -0.8685 0.1882 +vn -0.4651 -0.8807 0.0900 +vn -0.4433 -0.8396 0.3140 +vn -0.4840 -0.8168 0.3140 +vn -0.5007 -0.8449 0.1882 +vn -0.5077 -0.8568 0.0900 +vn -0.3423 -0.8315 0.4376 +vn -0.3203 -0.7779 0.5407 +vn -0.3559 -0.7623 0.5406 +vn -0.3804 -0.8148 0.4376 +vn -0.5415 -0.8193 0.1882 +vn -0.5492 -0.8308 0.0900 +vn -0.5235 -0.7921 0.3140 +vn -0.5617 -0.7654 0.3140 +vn -0.5811 -0.7918 0.1882 +vn -0.5893 -0.8029 0.0900 +vn -0.6192 -0.7623 0.1882 +vn -0.6280 -0.7730 0.0900 +vn -0.5986 -0.7369 0.3140 +vn -0.6341 -0.7067 0.3140 +vn -0.6559 -0.7310 0.1882 +vn -0.6651 -0.7413 0.0900 +vn -0.4199 -0.7951 0.4376 +vn -0.3928 -0.7439 0.5407 +vn -0.4289 -0.7237 0.5407 +vn -0.4584 -0.7736 0.4376 +vn -0.4958 -0.7501 0.4376 +vn -0.4639 -0.7018 0.5407 +vn -0.4977 -0.6782 0.5406 +vn -0.5320 -0.7249 0.4376 +vn -0.5669 -0.6979 0.4376 +vn -0.5304 -0.6530 0.5406 +vn -0.5618 -0.6261 0.5407 +vn -0.6005 -0.6693 0.4376 +vn -0.4302 -0.6509 0.6255 +vn -0.3965 -0.5999 0.6949 +vn -0.4255 -0.5798 0.6949 +vn -0.4616 -0.6290 0.6255 +vn -0.3977 -0.6712 0.6255 +vn -0.3666 -0.6187 0.6949 +vn -0.4919 -0.6056 0.6255 +vn -0.4534 -0.5582 0.6949 +vn -0.4803 -0.5352 0.6949 +vn -0.5210 -0.5807 0.6255 +vn -0.6910 -0.6980 0.1882 +vn -0.7007 -0.7078 0.0900 +vn -0.6680 -0.6747 0.3140 +vn -0.7003 -0.6411 0.3140 +vn -0.7244 -0.6632 0.1882 +vn -0.7346 -0.6725 0.0900 +vn -0.7561 -0.6269 0.1882 +vn -0.7667 -0.6357 0.0900 +vn -0.7309 -0.6060 0.3140 +vn -0.7597 -0.5694 0.3140 +vn -0.7859 -0.5890 0.1882 +vn -0.7970 -0.5973 0.0900 +vn -0.6326 -0.6390 0.4376 +vn -0.5919 -0.5978 0.5407 +vn -0.6205 -0.5680 0.5407 +vn -0.6632 -0.6072 0.4376 +vn -0.8123 -0.5521 0.1882 +vn -0.8237 -0.5598 0.0900 +vn -0.7852 -0.5337 0.3140 +vn -0.8088 -0.4972 0.3140 +vn -0.8367 -0.5144 0.1882 +vn -0.8484 -0.5216 0.0900 +vn -0.6922 -0.5739 0.4376 +vn -0.6476 -0.5369 0.5406 +vn -0.6732 -0.5045 0.5407 +vn -0.7195 -0.5393 0.4376 +vn -0.8568 -0.4800 0.1882 +vn -0.8689 -0.4868 0.0900 +vn -0.8283 -0.4640 0.3141 +vn -0.8381 -0.4458 0.3144 +vn -0.8670 -0.4614 0.1883 +vn -0.8791 -0.4680 0.0900 +vn -0.7437 -0.5054 0.4376 +vn -0.6957 -0.4729 0.5407 +vn -0.7166 -0.4406 0.5407 +vn -0.7660 -0.4709 0.4376 +vn -0.8837 -0.4285 0.1884 +vn -0.9096 -0.3705 0.1879 +vn -0.9223 -0.3769 0.0854 +vn -0.8959 -0.4350 0.0899 +vn -0.8547 -0.4129 0.3146 +vn -0.8805 -0.3550 0.3141 +vn -0.7844 -0.4394 0.4377 +vn -0.7339 -0.4111 0.5408 +vn -0.7428 -0.3942 0.5412 +vn -0.7938 -0.4218 0.4381 +vn -0.8103 -0.3889 0.4384 +vn -0.8359 -0.3311 0.4377 +vn -0.7591 -0.3611 0.5416 +vn -0.7848 -0.3032 0.5405 +vn -0.9340 -0.3048 0.1864 +vn -0.9576 -0.2223 0.1833 +vn -0.9696 -0.2280 0.0892 +vn -0.9463 -0.3108 0.0886 +vn -0.9050 -0.2893 0.3120 +vn -0.9288 -0.2072 0.3073 +vn -0.9769 -0.1187 0.1776 +vn -0.9888 -0.1238 0.0835 +vn -0.9487 -0.1042 0.2985 +vn -0.9055 -0.0815 0.4164 +vn -0.9174 0.0452 0.3953 +vn -0.8847 -0.1838 0.4284 +vn -0.8342 -0.1562 0.5289 +vn -0.8562 -0.0545 0.5138 +vn -0.8702 0.0709 0.4875 +vn -0.7053 -0.3319 0.6264 +vn -0.7310 -0.2739 0.6250 +vn -0.6891 -0.3651 0.6260 +vn -0.6353 -0.3360 0.6953 +vn -0.6515 -0.3027 0.6956 +vn -0.6772 -0.2447 0.6939 +vn -0.6807 -0.3812 0.6256 +vn -0.6274 -0.3513 0.6949 +vn -0.6646 -0.4087 0.6255 +vn -0.6126 -0.3767 0.6949 +vn -0.7559 -0.2086 0.6206 +vn -0.7813 -0.1273 0.6110 +vn -0.8094 -0.2378 0.5369 +vn -0.7024 -0.1795 0.6888 +vn -0.7285 -0.0986 0.6779 +vn -0.6452 -0.4386 0.6256 +vn -0.5947 -0.4043 0.6949 +vn -0.6243 -0.4679 0.6255 +vn -0.5755 -0.4313 0.6948 +vn -0.5995 -0.2744 0.7519 +vn -0.6252 -0.2165 0.7498 +vn -0.5834 -0.3078 0.7516 +vn -0.5342 -0.2810 0.7973 +vn -0.5502 -0.2477 0.7975 +vn -0.5759 -0.1898 0.7952 +vn -0.5759 -0.3224 0.7513 +vn -0.5270 -0.2950 0.7970 +vn -0.5622 -0.3458 0.7512 +vn -0.5145 -0.3165 0.7969 +vn -0.6006 -0.4980 0.6255 +vn -0.5536 -0.4590 0.6949 +vn -0.5755 -0.5268 0.6255 +vn -0.5304 -0.4856 0.6949 +vn -0.5458 -0.3711 0.7512 +vn -0.4995 -0.3396 0.7970 +vn -0.5282 -0.3959 0.7512 +vn -0.4834 -0.3623 0.7969 +vn -0.5489 -0.5544 0.6255 +vn -0.5059 -0.5111 0.6948 +vn -0.5081 -0.4213 0.7512 +vn -0.4650 -0.3856 0.7969 +vn -0.4868 -0.4457 0.7512 +vn -0.4455 -0.4079 0.7969 +vn -0.4644 -0.4691 0.7512 +vn -0.4250 -0.4293 0.7969 +vn -0.4408 -0.4913 0.7512 +vn -0.4034 -0.4496 0.7969 +vn -0.4162 -0.5123 0.7512 +vn -0.3809 -0.4689 0.7969 +vn -0.3905 -0.5321 0.7512 +vn -0.3574 -0.4870 0.7969 +vn -0.4247 -0.3521 0.8340 +vn -0.3874 -0.3212 0.8642 +vn -0.4026 -0.3018 0.8642 +vn -0.4415 -0.3309 0.8340 +vn -0.4069 -0.3726 0.8340 +vn -0.3711 -0.3398 0.8642 +vn -0.3882 -0.3921 0.8340 +vn -0.3540 -0.3576 0.8642 +vn -0.3684 -0.4106 0.8341 +vn -0.3360 -0.3745 0.8642 +vn -0.4562 -0.3102 0.8341 +vn -0.4161 -0.2829 0.8642 +vn -0.4285 -0.2638 0.8642 +vn -0.4699 -0.2891 0.8340 +vn -0.4814 -0.2693 0.8341 +vn -0.4391 -0.2456 0.8642 +vn -0.4455 -0.2328 0.8645 +vn -0.4881 -0.2560 0.8344 +vn -0.3790 -0.2578 0.8888 +vn -0.3450 -0.2347 0.9088 +vn -0.3553 -0.2188 0.9088 +vn -0.3904 -0.2404 0.8887 +vn -0.3668 -0.2749 0.8887 +vn -0.3339 -0.2502 0.9088 +vn -0.5041 -0.2226 0.8344 +vn -0.5299 -0.1648 0.8319 +vn -0.4615 -0.1994 0.8645 +vn -0.4873 -0.1417 0.8617 +vn -0.4000 -0.2237 0.8888 +vn -0.3642 -0.2035 0.9088 +vn -0.3701 -0.1917 0.9090 +vn -0.4062 -0.2114 0.8890 +vn -0.4221 -0.1780 0.8889 +vn -0.4480 -0.1205 0.8859 +vn -0.3860 -0.1583 0.9088 +vn -0.4118 -0.1009 0.9057 +vn -0.6507 -0.1514 0.7441 +vn -0.6775 -0.0709 0.7321 +vn -0.6017 -0.1248 0.7889 +vn -0.6292 -0.0448 0.7760 +vn -0.5560 -0.1000 0.8251 +vn -0.5841 -0.0204 0.8114 +vn -0.5136 -0.0771 0.8546 +vn -0.5423 0.0022 0.8402 +vn -0.8046 -0.0264 0.5932 +vn -0.8211 0.0976 0.5624 +vn -0.7532 0.0015 0.6578 +vn -0.7721 0.1240 0.6233 +vn -0.9115 0.1971 0.3610 +vn -0.8767 0.3680 0.3099 +vn -0.8679 0.2206 0.4450 +vn -0.8388 0.3882 0.3818 +vn -0.7035 0.0284 0.7101 +vn -0.7248 0.1495 0.6725 +vn -0.6565 0.0538 0.7524 +vn -0.6801 0.1734 0.7123 +vn -0.8228 0.2449 0.5128 +vn -0.7998 0.4089 0.4395 +vn -0.7780 0.2688 0.5679 +vn -0.7611 0.4291 0.4864 +vn -0.8047 0.5424 0.2415 +vn -0.6974 0.6983 0.1613 +vn -0.7149 0.6897 0.1149 +vn -0.8306 0.5296 0.1724 +vn -0.7748 0.5579 0.2974 +vn -0.6772 0.7085 0.1984 +vn -0.8259 0.4996 0.2614 +vn -0.9027 -0.0850 0.4218 +vn -0.9483 -0.1064 0.2991 +vn -0.8531 0.4878 0.1852 +vn -0.7947 0.5138 0.3233 +vn -0.8518 -0.0604 0.5204 +vn -0.7442 0.5738 0.3419 +vn -0.6567 0.7189 0.2279 +vn -0.7140 0.5893 0.3781 +vn -0.6364 0.7291 0.2518 +vn -0.7346 0.2919 0.6125 +vn -0.7238 0.4487 0.5242 +vn -0.6937 0.3135 0.6485 +vn -0.6886 0.4670 0.5548 +vn -0.7625 0.5292 0.3722 +vn -0.8004 -0.0352 0.5985 +vn -0.7303 0.5448 0.4122 +vn -0.7489 -0.0097 0.6626 +vn -0.6847 0.6043 0.4074 +vn -0.6169 0.7388 0.2712 +vn -0.6572 0.6182 0.4311 +vn -0.5985 0.7480 0.2869 +vn -0.6989 0.5601 0.4447 +vn -0.6990 0.0152 0.7149 +vn -0.6693 0.5747 0.4709 +vn -0.6518 0.0391 0.7574 +vn -0.6555 0.3337 0.6775 +vn -0.6557 0.4840 0.5794 +vn -0.6384 0.1957 0.7444 +vn -0.5998 0.2163 0.7703 +vn -0.6202 0.3523 0.7009 +vn -0.6254 0.4997 0.5993 +vn -0.6414 0.5887 0.4920 +vn -0.6077 0.0618 0.7918 +vn -0.5814 0.7565 0.2995 +vn -0.5656 0.7643 0.3098 +vn -0.6156 0.6019 0.5087 +vn -0.5669 0.0833 0.8196 +vn -0.6316 0.6312 0.4501 +vn -0.6079 0.6432 0.4655 +vn -0.5918 0.6144 0.5219 +vn -0.5294 0.1036 0.8420 +vn -0.5511 0.7715 0.3180 +vn -0.5377 0.7781 0.3247 +vn -0.5700 0.6261 0.5321 +vn -0.4951 0.1227 0.8601 +vn -0.5862 0.6542 0.4779 +vn -0.5975 0.5141 0.6154 +vn -0.5719 0.5273 0.6284 +vn -0.5662 0.6643 0.4880 +vn -0.5515 0.6361 0.5397 +vn -0.4662 0.1396 0.8736 +vn -0.5264 0.7838 0.3296 +vn -0.5168 0.7885 0.3335 +vn -0.5358 0.6454 0.5444 +vn -0.4418 0.1547 0.8837 +vn -0.5207 0.6543 0.5484 +vn -0.4183 0.1693 0.8924 +vn -0.5075 0.7930 0.3370 +vn -0.4993 0.7971 0.3396 +vn -0.5076 0.6620 0.5514 +vn -0.3979 0.1824 0.8991 +vn -0.5492 0.6729 0.4955 +vn -0.5502 0.5386 0.6382 +vn -0.5316 0.5481 0.6457 +vn -0.5348 0.6802 0.5013 +vn -0.5209 0.6871 0.5065 +vn -0.5138 0.5572 0.6523 +vn -0.4982 0.5653 0.6575 +vn -0.5087 0.6933 0.5104 +vn -0.4984 0.6985 0.5135 +vn -0.4925 0.8005 0.3416 +vn -0.4850 0.5720 0.6615 +vn -0.4726 0.5784 0.6649 +vn -0.4887 0.7033 0.5162 +vn -0.4860 0.8036 0.3435 +vn -0.4903 0.4205 0.7634 +vn -0.4576 0.2920 0.8398 +vn -0.4378 0.3026 0.8466 +vn -0.4722 0.4300 0.7695 +vn -0.5111 0.4096 0.7556 +vn -0.4804 0.2799 0.8312 +vn -0.4568 0.4381 0.7742 +vn -0.4209 0.3115 0.8519 +vn -0.4050 0.3199 0.8565 +vn -0.4423 0.4456 0.7783 +vn -0.5327 0.3983 0.7467 +vn -0.5041 0.2674 0.8212 +vn -0.5580 0.3850 0.7352 +vn -0.5317 0.2526 0.8084 +vn -0.5877 0.3693 0.7198 +vn -0.5643 0.2352 0.7913 +vn -0.4223 0.1797 0.8885 +vn -0.3881 0.0854 0.9176 +vn -0.3665 0.0971 0.9253 +vn -0.4013 0.1910 0.8958 +vn -0.4463 0.1668 0.8792 +vn -0.4128 0.0721 0.9079 +vn -0.4712 0.1535 0.8686 +vn -0.4385 0.0582 0.8968 +vn -0.5003 0.1378 0.8548 +vn -0.4685 0.0420 0.8825 +vn -0.5347 0.1194 0.8366 +vn -0.5039 0.0230 0.8635 +vn -0.5721 0.0993 0.8142 +vn -0.6127 0.0774 0.7865 +vn -0.4746 -0.0560 0.8784 +vn -0.4387 -0.0366 0.8979 +vn -0.4082 -0.0201 0.9127 +vn -0.3811 -0.0843 0.9207 +vn -0.3549 -0.0701 0.9323 +vn -0.3822 -0.0060 0.9241 +vn -0.3553 -0.1414 0.9240 +vn -0.3395 -0.1749 0.9242 +vn -0.3132 -0.1604 0.9360 +vn -0.3291 -0.1270 0.9357 +vn -0.3337 -0.1864 0.9241 +vn -0.3076 -0.1718 0.9359 +vn -0.3254 -0.2005 0.9241 +vn -0.2999 -0.1849 0.9359 +vn -0.3570 0.0076 0.9341 +vn -0.3296 -0.0564 0.9424 +vn -0.3074 -0.0444 0.9505 +vn -0.3351 0.0195 0.9420 +vn -0.3037 -0.1131 0.9460 +vn -0.2880 -0.1465 0.9464 +vn -0.2659 -0.1343 0.9546 +vn -0.2817 -0.1009 0.9542 +vn -0.2824 -0.1576 0.9463 +vn -0.2604 -0.1452 0.9545 +vn -0.2753 -0.1698 0.9462 +vn -0.2538 -0.1566 0.9545 +vn -0.3160 -0.2150 0.9241 +vn -0.2913 -0.1982 0.9359 +vn -0.3059 -0.2292 0.9241 +vn -0.2819 -0.2113 0.9359 +vn -0.3529 -0.2926 0.8887 +vn -0.3212 -0.2663 0.9088 +vn -0.3381 -0.3096 0.8887 +vn -0.3078 -0.2818 0.9088 +vn -0.2674 -0.1820 0.9462 +vn -0.2465 -0.1678 0.9545 +vn -0.2588 -0.1940 0.9462 +vn -0.2386 -0.1788 0.9545 +vn -0.2943 -0.2440 0.9240 +vn -0.2712 -0.2249 0.9359 +vn -0.2819 -0.2581 0.9241 +vn -0.2599 -0.2379 0.9359 +vn -0.2417 -0.1347 0.9609 +vn -0.2242 -0.1249 0.9665 +vn -0.2296 -0.1140 0.9666 +vn -0.2472 -0.1238 0.9610 +vn -0.2355 -0.1455 0.9609 +vn -0.2183 -0.1350 0.9665 +vn -0.2629 -0.0905 0.9606 +vn -0.2887 -0.0342 0.9568 +vn -0.2453 -0.0807 0.9661 +vn -0.2710 -0.0247 0.9623 +vn -0.3165 0.0295 0.9481 +vn -0.3482 0.1069 0.9313 +vn -0.2989 0.0390 0.9535 +vn -0.3309 0.1162 0.9365 +vn -0.2288 -0.1558 0.9609 +vn -0.2121 -0.1445 0.9665 +vn -0.2215 -0.1660 0.9609 +vn -0.2054 -0.1539 0.9665 +vn -0.2288 -0.0714 0.9709 +vn -0.2544 -0.0157 0.9670 +vn -0.2131 -0.1046 0.9714 +vn -0.1976 -0.0957 0.9756 +vn -0.2133 -0.0626 0.9750 +vn -0.2387 -0.0073 0.9711 +vn -0.2077 -0.1155 0.9713 +vn -0.1921 -0.1068 0.9755 +vn -0.2022 -0.1251 0.9713 +vn -0.1869 -0.1158 0.9755 +vn -0.3835 0.2005 0.9015 +vn -0.3668 0.2094 0.9064 +vn -0.2825 0.0479 0.9581 +vn -0.3147 0.1249 0.9409 +vn -0.2669 0.0562 0.9621 +vn -0.2995 0.1331 0.9448 +vn -0.3510 0.2178 0.9107 +vn -0.3901 0.3278 0.8604 +vn -0.3362 0.2257 0.9143 +vn -0.3761 0.3352 0.8638 +vn -0.4287 0.4527 0.7819 +vn -0.4609 0.5843 0.6679 +vn -0.4159 0.4593 0.7849 +vn -0.4499 0.5899 0.6705 +vn -0.2523 0.0641 0.9655 +vn -0.2851 0.1408 0.9481 +vn -0.2240 0.0007 0.9746 +vn -0.2101 0.0082 0.9776 +vn -0.2385 0.0716 0.9685 +vn -0.2715 0.1481 0.9510 +vn -0.4796 0.7079 0.5185 +vn -0.4799 0.8066 0.3450 +vn -0.4711 0.7121 0.5205 +vn -0.4742 0.8094 0.3464 +vn -0.3223 0.2332 0.9175 +vn -0.3629 0.3422 0.8667 +vn -0.3091 0.2402 0.9202 +vn -0.3504 0.3488 0.8692 +vn -0.4038 0.4656 0.7875 +vn -0.4396 0.5952 0.6727 +vn -0.3924 0.4716 0.7897 +vn -0.4298 0.6002 0.6745 +vn -0.4769 0.6830 0.5532 +vn -0.3506 0.2176 0.9109 +vn -0.3652 0.2060 0.9078 +vn -0.4864 0.6762 0.5533 +vn -0.4681 0.6898 0.5524 +vn -0.3372 0.2291 0.9131 +vn -0.4966 0.6693 0.5527 +vn -0.3809 0.1943 0.9040 +vn -0.4630 0.7162 0.5222 +vn -0.4688 0.8121 0.3475 +vn -0.4554 0.7200 0.5237 +vn -0.4637 0.8146 0.3485 +vn -0.4599 0.6964 0.5509 +vn -0.3248 0.2405 0.9147 +vn -0.4523 0.7030 0.5488 +vn -0.3134 0.2520 0.9156 +vn -0.4453 0.7096 0.5461 +vn -0.3030 0.2637 0.9158 +vn -0.4589 0.8169 0.3494 +vn -0.4544 0.8191 0.3501 +vn -0.4389 0.7161 0.5427 +vn -0.2935 0.2755 0.9154 +vn -0.4482 0.7236 0.5249 +vn -0.4206 0.6049 0.6762 +vn -0.4118 0.6094 0.6775 +vn -0.4414 0.7270 0.5260 +vn -0.4349 0.7302 0.5269 +vn -0.4501 0.8212 0.3507 +vn -0.4036 0.6136 0.6787 +vn -0.3958 0.6176 0.6797 +vn -0.4288 0.7332 0.5277 +vn -0.4460 0.8232 0.3512 +vn -0.3817 0.4771 0.7916 +vn -0.3386 0.3550 0.8714 +vn -0.3274 0.3609 0.8732 +vn -0.3715 0.4824 0.7932 +vn -0.3619 0.4875 0.7946 +vn -0.3169 0.3665 0.8748 +vn -0.3068 0.3718 0.8761 +vn -0.3527 0.4922 0.7958 +vn -0.2966 0.2469 0.9225 +vn -0.2586 0.1551 0.9535 +vn -0.2465 0.1616 0.9556 +vn -0.2849 0.2531 0.9245 +vn -0.2737 0.2591 0.9263 +vn -0.2350 0.1678 0.9574 +vn -0.2241 0.1736 0.9590 +vn -0.2631 0.2647 0.9277 +vn -0.2254 0.0786 0.9711 +vn -0.1969 0.0154 0.9803 +vn -0.1844 0.0221 0.9826 +vn -0.2131 0.0853 0.9733 +vn -0.2014 0.0916 0.9752 +vn -0.1726 0.0285 0.9846 +vn -0.1614 0.0345 0.9863 +vn -0.1903 0.0976 0.9769 +vn -0.2555 0.2689 0.9287 +vn -0.2996 0.3757 0.8770 +vn -0.2162 0.1779 0.9600 +vn -0.2128 0.1797 0.9604 +vn -0.2522 0.2706 0.9291 +vn -0.2965 0.3773 0.8773 +vn -0.1822 0.1019 0.9780 +vn -0.1533 0.0389 0.9874 +vn -0.1498 0.0408 0.9879 +vn -0.1788 0.1038 0.9784 +vn -0.1482 -0.0239 0.9887 +vn -0.1329 -0.0563 0.9895 +vn -0.1224 -0.0489 0.9913 +vn -0.1375 -0.0169 0.9904 +vn -0.1597 -0.0311 0.9867 +vn -0.1443 -0.0637 0.9875 +vn -0.3462 0.4957 0.7965 +vn -0.3901 0.6205 0.6803 +vn -0.3434 0.4972 0.7968 +vn -0.3877 0.6218 0.6805 +vn -0.1299 -0.0112 0.9915 +vn -0.1151 -0.0428 0.9924 +vn -0.1125 -0.0391 0.9929 +vn -0.1270 -0.0082 0.9919 +vn -0.4244 0.7355 0.5281 +vn -0.4431 0.8247 0.3514 +vn -0.4226 0.7365 0.5282 +vn -0.4419 0.8254 0.3515 +vn -0.4330 0.7228 0.5386 +vn -0.4277 0.7294 0.5339 +vn -0.2850 0.2875 0.9144 +vn -0.2773 0.2999 0.9128 +vn -0.4242 0.7352 0.5287 +vn -0.2729 0.3113 0.9103 +vn -0.4231 0.7391 0.5242 +vn -0.2724 0.3190 0.9078 +vn -0.3309 0.5031 0.7984 +vn -0.3772 0.6265 0.6820 +vn -0.2827 0.3841 0.8789 +vn -0.2578 0.3972 0.8808 +vn -0.3084 0.5146 0.8000 +vn -0.3582 0.6361 0.6834 +vn -0.4163 0.7449 0.5213 +vn -0.2610 0.3283 0.9078 +vn -0.4366 0.8275 0.3529 +vn -0.4271 0.8322 0.3537 +vn -0.4026 0.7516 0.5225 +vn -0.2374 0.3397 0.9101 +vn -0.4146 0.7399 0.5298 +vn -0.3999 0.7471 0.5309 +vn -0.3866 0.7598 0.5227 +vn -0.2103 0.3530 0.9117 +vn -0.4156 0.8375 0.3547 +vn -0.3824 0.7554 0.5321 +vn -0.3353 0.6473 0.6846 +vn -0.3024 0.6633 0.6846 +vn -0.3572 0.7674 0.5325 +vn -0.2814 0.5282 0.8012 +vn -0.2278 0.4126 0.8820 +vn -0.1849 0.4346 0.8815 +vn -0.2426 0.5476 0.8008 +vn -0.3239 0.7833 0.5306 +vn -0.2590 0.6845 0.6815 +vn -0.2050 0.7109 0.6728 +vn -0.2823 0.8031 0.5247 +vn -0.1915 0.5733 0.7967 +vn -0.1284 0.4636 0.8767 +vn -0.0582 0.4997 0.8643 +vn -0.1279 0.6052 0.7857 +vn -0.2311 0.8277 0.5114 +vn -0.1392 0.7433 0.6544 +vn -0.0644 0.7804 0.6220 +vn -0.1722 0.8562 0.4871 +vn -0.3165 0.8840 0.3441 +vn -0.2767 0.9029 0.3288 +vn -0.2512 0.8276 0.5020 +vn 0.0117 0.4582 0.8888 +vn -0.1958 0.8551 0.4801 +vn 0.1021 0.5010 0.8594 +vn -0.0512 0.6439 0.7634 +vn 0.0259 0.5430 0.8393 +vn 0.1206 0.5920 0.7968 +vn 0.0354 0.6878 0.7250 +vn 0.1279 0.7349 0.6660 +vn 0.0166 0.8207 0.5712 +vn 0.2209 0.6441 0.7324 +vn 0.3168 0.6943 0.6462 +vn 0.2163 0.7805 0.5866 +vn 0.0941 0.8598 0.5019 +vn 0.2951 0.5575 0.7759 +vn 0.3530 0.4798 0.8032 +vn 0.4567 0.5352 0.7106 +vn 0.3958 0.6109 0.6857 +vn 0.1899 0.5021 0.8437 +vn 0.2448 0.4223 0.8728 +vn 0.0900 0.4497 0.8886 +vn 0.1418 0.3675 0.9191 +vn 0.0011 0.4031 0.9152 +vn 0.0499 0.3188 0.9465 +vn -0.0735 0.3641 0.9285 +vn -0.0274 0.2779 0.9602 +vn -0.1334 0.3327 0.9335 +vn -0.0895 0.2450 0.9654 +vn 0.3980 0.4122 0.8196 +vn 0.4330 0.3542 0.8289 +vn 0.5394 0.4116 0.7346 +vn 0.5034 0.4689 0.7258 +vn 0.2880 0.3533 0.8901 +vn 0.3221 0.2945 0.8998 +vn -0.1791 0.3089 0.9341 +vn -0.1369 0.2199 0.9659 +vn -0.2110 0.2922 0.9328 +vn -0.1700 0.2024 0.9644 +vn 0.1831 0.2972 0.9371 +vn 0.2161 0.2375 0.9471 +vn 0.0895 0.2471 0.9648 +vn 0.1215 0.1866 0.9749 +vn 0.0106 0.2050 0.9787 +vn 0.0418 0.1438 0.9887 +vn -0.0528 0.1711 0.9838 +vn -0.0224 0.1093 0.9938 +vn -0.2375 0.2781 0.9307 +vn -0.1975 0.1877 0.9622 +vn -0.1012 0.1453 0.9842 +vn -0.0713 0.0830 0.9940 +vn -0.1351 0.1272 0.9826 +vn -0.1056 0.0646 0.9923 +vn -0.1632 0.1121 0.9802 +vn -0.1341 0.0492 0.9897 +vn 0.0653 0.0966 0.9932 +vn 0.0798 0.0666 0.9946 +vn 0.1600 0.1101 0.9810 +vn 0.1454 0.1399 0.9794 +vn 0.0008 0.0617 0.9981 +vn 0.0153 0.0315 0.9994 +vn -0.0970 -0.0297 0.9948 +vn -0.0684 -0.0140 0.9976 +vn -0.0827 0.0164 0.9964 +vn -0.0483 0.0351 0.9982 +vn -0.0339 0.0048 0.9994 +vn -0.0891 -0.0463 0.9949 +vn -0.0608 -0.0300 0.9977 +vn -0.1044 -0.0554 0.9930 +vn -0.0999 -0.0634 0.9930 +vn -0.0847 -0.0539 0.9949 +vn -0.0572 -0.0364 0.9977 +vn -0.0269 -0.0105 0.9996 +vn 0.0215 0.0175 0.9996 +vn -0.0241 -0.0154 0.9996 +vn 0.0231 0.0147 0.9996 +vn 0.0850 0.0541 0.9949 +vn 0.1640 0.0997 0.9814 +vn 0.0849 0.0541 0.9949 +vn 0.1619 0.1032 0.9814 +vn 0.2403 0.1912 0.9517 +vn 0.2551 0.1617 0.9533 +vn 0.3617 0.2195 0.9061 +vn 0.3468 0.2488 0.9043 +vn 0.2576 0.1538 0.9539 +vn 0.3627 0.2145 0.9069 +vn 0.2531 0.1615 0.9539 +vn 0.3554 0.2268 0.9068 +vn 0.4582 0.3090 0.8334 +vn 0.4733 0.2800 0.8352 +vn 0.5805 0.3381 0.7408 +vn 0.5651 0.3668 0.7390 +vn 0.4727 0.2781 0.8362 +vn 0.5784 0.3393 0.7418 +vn 0.4624 0.2953 0.8361 +vn 0.5652 0.3611 0.7417 +vn 0.0830 0.0571 0.9949 +vn 0.1582 0.1088 0.9814 +vn 0.0226 0.0155 0.9996 +vn 0.0218 0.0163 0.9996 +vn 0.0804 0.0603 0.9949 +vn 0.1534 0.1150 0.9814 +vn 0.6584 0.4173 0.6264 +vn 0.6322 0.4617 0.6223 +vn 0.6739 0.3888 0.6283 +vn 0.7476 0.4288 0.5072 +vn 0.7318 0.4573 0.5054 +vn 0.7051 0.5014 0.5014 +vn 0.2474 0.1701 0.9539 +vn 0.3474 0.2388 0.9068 +vn 0.2400 0.1799 0.9540 +vn 0.3371 0.2526 0.9069 +vn 0.6707 0.3927 0.6293 +vn 0.7434 0.4349 0.5081 +vn 0.6549 0.4186 0.6292 +vn 0.7257 0.4640 0.5080 +vn 0.4520 0.3108 0.8361 +vn 0.5526 0.3800 0.7418 +vn 0.4387 0.3288 0.8363 +vn 0.5365 0.4021 0.7420 +vn 0.5952 0.5183 0.6141 +vn 0.5469 0.5837 0.6002 +vn 0.6671 0.5577 0.4939 +vn 0.6172 0.6223 0.4815 +vn 0.4834 0.6576 0.5778 +vn 0.4002 0.7383 0.5429 +vn 0.5513 0.6949 0.4618 +vn 0.4642 0.7733 0.4319 +vn 0.7725 0.4796 0.4162 +vn 0.7453 0.5236 0.4128 +vn 0.7886 0.4513 0.4177 +vn 0.7993 0.4571 0.3901 +vn 0.7832 0.4853 0.3887 +vn 0.7557 0.5292 0.3857 +vn 0.7841 0.4586 0.4183 +vn 0.7946 0.4649 0.3905 +vn 0.7652 0.4894 0.4182 +vn 0.7754 0.4962 0.3905 +vn 0.7063 0.5796 0.4065 +vn 0.6549 0.6436 0.3960 +vn 0.7163 0.5852 0.3799 +vn 0.6643 0.6492 0.3704 +vn 0.7484 0.5147 0.4183 +vn 0.7584 0.5217 0.3906 +vn 0.7097 0.4881 0.5081 +vn 0.6891 0.5165 0.5083 +vn 0.7268 0.5447 0.4184 +vn 0.7366 0.5521 0.3906 +vn 0.5866 0.7153 0.3797 +vn 0.4962 0.7923 0.3550 +vn 0.5951 0.7207 0.3555 +vn 0.5035 0.7973 0.3328 +vn 0.2932 0.8204 0.4909 +vn 0.1614 0.8940 0.4180 +vn 0.3515 0.8519 0.3882 +vn 0.2115 0.9207 0.3280 +vn 0.3790 0.8687 0.3190 +vn 0.2331 0.9343 0.2696 +vn 0.3845 0.8732 0.2995 +vn 0.2365 0.9380 0.2535 +vn 0.0643 0.9762 0.2072 +vn 0.0495 0.9665 0.2518 +vn 0.0655 0.9786 0.1953 +vn 0.0102 0.9460 0.3241 +vn -0.1477 0.9652 0.2156 +vn -0.1862 0.9467 0.2629 +vn -0.0443 0.9191 0.3916 +vn 0.0019 0.9530 0.3028 +vn 0.4940 0.6969 0.5199 +vn 0.3863 0.6432 0.6611 +vn -0.0547 0.9245 0.3772 +vn 0.6992 0.5797 0.4184 +vn 0.7087 0.5876 0.3906 +vn 0.6630 0.5497 0.5083 +vn 0.6352 0.5815 0.5083 +vn 0.6699 0.6133 0.4184 +vn 0.6790 0.6216 0.3906 +vn 0.6404 0.4404 0.6292 +vn 0.6218 0.4660 0.6294 +vn 0.5982 0.4960 0.6294 +vn 0.5161 0.4279 0.7420 +vn 0.4945 0.4527 0.7420 +vn 0.5731 0.5247 0.6294 +vn 0.4221 0.3500 0.8363 +vn 0.3243 0.2689 0.9069 +vn 0.3107 0.2844 0.9070 +vn 0.4044 0.3702 0.8363 +vn 0.6390 0.6454 0.4184 +vn 0.6477 0.6542 0.3906 +vn 0.6059 0.6120 0.5083 +vn 0.5751 0.6410 0.5083 +vn 0.6066 0.6760 0.4184 +vn 0.6148 0.6852 0.3906 +vn 0.5467 0.5522 0.6294 +vn 0.4717 0.4764 0.7420 +vn 0.4477 0.4990 0.7420 +vn 0.5189 0.5784 0.6294 +vn 0.5727 0.7050 0.4184 +vn 0.5804 0.7145 0.3906 +vn 0.5430 0.6685 0.5083 +vn 0.5095 0.6943 0.5083 +vn 0.5374 0.7322 0.4184 +vn 0.5447 0.7421 0.3906 +vn 0.4899 0.6031 0.6294 +vn 0.4227 0.5204 0.7420 +vn 0.3967 0.5405 0.7420 +vn 0.4598 0.6264 0.6294 +vn 0.3858 0.3896 0.8363 +vn 0.2964 0.2993 0.9070 +vn 0.2813 0.3135 0.9070 +vn 0.3662 0.4081 0.8363 +vn 0.3457 0.4256 0.8363 +vn 0.2656 0.3270 0.9069 +vn 0.2492 0.3396 0.9070 +vn 0.3244 0.4420 0.8363 +vn 0.5008 0.7577 0.4184 +vn 0.5076 0.7680 0.3906 +vn 0.4749 0.7185 0.5082 +vn 0.4390 0.7409 0.5083 +vn 0.4630 0.7814 0.4184 +vn 0.4693 0.7919 0.3906 +vn 0.4285 0.6483 0.6294 +vn 0.3697 0.5593 0.7420 +vn 0.3418 0.5768 0.7420 +vn 0.3961 0.6685 0.6294 +vn 0.4241 0.8032 0.4184 +vn 0.4299 0.8140 0.3906 +vn 0.4022 0.7615 0.5083 +vn 0.3643 0.7804 0.5083 +vn 0.3842 0.8230 0.4184 +vn 0.3894 0.8341 0.3906 +vn 0.3629 0.6871 0.6294 +vn 0.3131 0.5928 0.7420 +vn 0.2836 0.6075 0.7420 +vn 0.3287 0.7041 0.6294 +vn 0.3023 0.4574 0.8363 +vn 0.2323 0.3514 0.9070 +vn 0.2147 0.3624 0.9070 +vn 0.2795 0.4717 0.8363 +vn 0.2560 0.4848 0.8363 +vn 0.1967 0.3725 0.9070 +vn 0.1782 0.3817 0.9070 +vn 0.2319 0.4968 0.8363 +vn 0.3504 0.8380 0.4183 +vn 0.3552 0.8493 0.3906 +vn 0.3323 0.7946 0.5081 +vn 0.3054 0.8054 0.5080 +vn 0.3222 0.8493 0.4182 +vn 0.3267 0.8607 0.3905 +vn 0.2998 0.7171 0.6292 +vn 0.2587 0.6188 0.7417 +vn 0.2376 0.6273 0.7417 +vn 0.2755 0.7268 0.6292 +vn 0.2882 0.8614 0.4182 +vn 0.2923 0.8730 0.3904 +vn 0.2734 0.8168 0.5081 +vn 0.2667 0.8195 0.5072 +vn 0.2802 0.8643 0.4177 +vn 0.2837 0.8759 0.3902 +vn 0.3112 0.8544 0.4162 +vn 0.3598 0.8367 0.4129 +vn 0.3632 0.8480 0.3859 +vn 0.3146 0.8659 0.3889 +vn 0.2977 0.8099 0.5054 +vn 0.3464 0.7928 0.5014 +vn 0.2469 0.7369 0.6293 +vn 0.2136 0.6357 0.7418 +vn 0.2121 0.6374 0.7408 +vn 0.2426 0.7392 0.6283 +vn 0.2736 0.7299 0.6264 +vn 0.3224 0.7135 0.6221 +vn 0.2432 0.6283 0.7389 +vn 0.2923 0.6124 0.7346 +vn 0.4227 0.8099 0.4066 +vn 0.4959 0.7727 0.3963 +vn 0.4993 0.7830 0.3710 +vn 0.4273 0.8223 0.3758 +vn 0.4093 0.7672 0.4939 +vn 0.4827 0.7316 0.4814 +vn 0.1753 0.5196 0.8362 +vn 0.1356 0.3990 0.9069 +vn 0.1408 0.3990 0.9061 +vn 0.1771 0.5206 0.8352 +vn 0.1942 0.5131 0.8361 +vn 0.1492 0.3943 0.9068 +vn 0.5800 0.7205 0.3800 +vn 0.6738 0.6478 0.3554 +vn 0.6772 0.6558 0.3337 +vn 0.5834 0.7298 0.3563 +vn 0.5673 0.6819 0.4618 +vn 0.6618 0.6127 0.4319 +vn 0.3855 0.6889 0.6138 +vn 0.4594 0.6551 0.5998 +vn 0.3558 0.5888 0.7258 +vn 0.4303 0.5567 0.7106 +vn 0.2085 0.5118 0.8334 +vn 0.2579 0.4965 0.8289 +vn 0.1723 0.3905 0.9043 +vn 0.2222 0.3756 0.8998 +vn 0.7726 0.5486 0.3195 +vn 0.8667 0.4194 0.2701 +vn 0.8695 0.4233 0.2547 +vn 0.7758 0.5548 0.3006 +vn 0.7619 0.5185 0.3882 +vn 0.8578 0.3957 0.3281 +vn 0.5448 0.6082 0.5773 +vn 0.6408 0.5434 0.5423 +vn 0.5169 0.5127 0.6856 +vn 0.6147 0.4524 0.6461 +vn 0.9422 0.2628 0.2078 +vn 0.9443 0.2642 0.1964 +vn 0.9358 0.2466 0.2521 +vn 0.7431 0.4556 0.4902 +vn 0.8421 0.3419 0.4172 +vn 0.7197 0.3718 0.5864 +vn 0.8223 0.2684 0.5017 +vn 0.9239 0.2047 0.3233 +vn 0.9751 0.0542 0.2150 +vn 0.9087 0.1452 0.3915 +vn 0.9648 0.0120 0.2628 +vn 0.9210 0.2245 0.3185 +vn 0.5392 0.6541 0.5305 +vn 0.9032 0.1598 0.3984 +vn 0.5105 0.5334 0.6745 +vn 0.6932 0.2762 0.6657 +vn 0.8000 0.1849 0.5708 +vn 0.5852 0.3485 0.7322 +vn 0.5547 0.2395 0.7968 +vn 0.6659 0.1757 0.7250 +vn 0.7770 0.0969 0.6220 +vn 0.4853 0.4034 0.7757 +vn 0.3973 0.4440 0.8031 +vn 0.3631 0.3262 0.8728 +vn 0.4525 0.2888 0.8437 +vn 0.6407 0.0818 0.7635 +vn 0.7560 0.0161 0.6544 +vn 0.5261 0.1367 0.8394 +vn 0.5009 0.0454 0.8643 +vn 0.6185 -0.0012 0.7858 +vn 0.7378 -0.0550 0.6728 +vn 0.4216 0.1803 0.8887 +vn 0.3306 0.2141 0.9192 +vn 0.3018 0.1142 0.9465 +vn 0.3942 0.0837 0.9152 +vn 0.8575 -0.0566 0.5113 +vn 0.9302 -0.1287 0.3438 +vn 0.9406 -0.0859 0.3286 +vn 0.8734 0.0069 0.4870 +vn 0.8439 -0.1119 0.5247 +vn 0.9214 -0.1653 0.3516 +vn 0.8330 -0.1567 0.5306 +vn 0.9146 -0.1944 0.3547 +vn 0.7230 -0.1135 0.6815 +vn 0.7111 -0.1601 0.6846 +vn 0.8243 -0.1924 0.5325 +vn 0.9090 -0.2176 0.3554 +vn 0.6003 -0.0701 0.7967 +vn 0.4800 -0.0308 0.8767 +vn 0.4632 -0.0920 0.8815 +vn 0.5856 -0.1253 0.8008 +vn 0.8178 -0.2196 0.5320 +vn 0.7022 -0.1956 0.6846 +vn 0.6960 -0.2202 0.6834 +vn 0.8132 -0.2384 0.5309 +vn 0.9049 -0.2353 0.3547 +vn 0.9020 -0.2475 0.3537 +vn 0.3713 0.0026 0.9285 +vn 0.2776 0.0301 0.9602 +vn 0.2581 -0.0374 0.9654 +vn 0.3529 -0.0624 0.9336 +vn 0.5746 -0.1673 0.8012 +vn 0.4504 -0.1386 0.8820 +vn 0.4415 -0.1710 0.8808 +vn 0.5669 -0.1965 0.8000 +vn 0.3390 -0.1121 0.9341 +vn 0.2433 -0.0889 0.9659 +vn 0.2329 -0.1250 0.9644 +vn 0.3292 -0.1467 0.9328 +vn 0.1984 0.0524 0.9787 +vn 0.1321 0.0703 0.9887 +vn 0.1115 0.0005 0.9938 +vn 0.1783 -0.0166 0.9838 +vn 0.2235 0.1382 0.9649 +vn 0.1577 0.1572 0.9749 +vn 0.1629 -0.0693 0.9842 +vn 0.0958 -0.0528 0.9940 +vn 0.0848 -0.0901 0.9923 +vn 0.1521 -0.1061 0.9827 +vn 0.3209 -0.1755 0.9307 +vn 0.4325 -0.1970 0.8799 +vn 0.2242 -0.1549 0.9622 +vn 0.2195 -0.1715 0.9604 +vn 0.3165 -0.1914 0.9291 +vn 0.4300 -0.2129 0.8773 +vn 0.2533 0.2401 0.9371 +vn 0.1881 0.2602 0.9471 +vn 0.2867 0.3544 0.8901 +vn 0.5602 -0.2209 0.7984 +vn 0.6905 -0.2409 0.6820 +vn 0.5570 -0.2342 0.7968 +vn 0.6862 -0.2510 0.6828 +vn 0.8092 -0.2542 0.5297 +vn 0.8994 -0.2579 0.3529 +vn 0.8074 -0.2627 0.5282 +vn 0.8984 -0.2634 0.3515 +vn 0.1431 -0.1368 0.9802 +vn 0.0757 -0.1212 0.9897 +vn 0.0706 -0.1383 0.9879 +vn 0.1382 -0.1537 0.9784 +vn 0.3155 -0.1950 0.9287 +vn 0.4291 -0.2163 0.8770 +vn 0.2184 -0.1751 0.9600 +vn 0.2158 -0.1837 0.9590 +vn 0.3130 -0.2033 0.9277 +vn 0.4268 -0.2241 0.8761 +vn 0.1371 -0.1575 0.9780 +vn 0.0695 -0.1421 0.9874 +vn 0.0669 -0.1509 0.9863 +vn 0.1345 -0.1662 0.9769 +vn 0.5561 -0.2372 0.7965 +vn 0.6847 -0.2531 0.6834 +vn 0.5540 -0.2444 0.7958 +vn 0.6856 -0.2608 0.6797 +vn 0.7951 -0.2534 0.5510 +vn 0.3342 -0.1800 0.9251 +vn 0.3409 -0.1541 0.9274 +vn 0.7991 -0.2376 0.5523 +vn 0.7902 -0.2615 0.5543 +vn 0.3269 -0.1931 0.9251 +vn 0.8041 -0.2194 0.5525 +vn 0.3487 -0.1244 0.9290 +vn 0.3597 -0.0817 0.9295 +vn 0.8114 -0.1932 0.5517 +vn 0.8069 -0.2647 0.5281 +vn 0.8980 -0.2647 0.3514 +vn 0.8055 -0.2695 0.5277 +vn 0.8972 -0.2679 0.3512 +vn 0.8038 -0.2761 0.5269 +vn 0.8960 -0.2723 0.3507 +vn 0.6833 -0.2693 0.6787 +vn 0.6809 -0.2782 0.6775 +vn 0.8020 -0.2830 0.5260 +vn 0.8949 -0.2769 0.3501 +vn 0.5513 -0.2543 0.7946 +vn 0.4236 -0.2350 0.8748 +vn 0.4204 -0.2465 0.8732 +vn 0.5483 -0.2648 0.7932 +vn 0.3097 -0.2148 0.9263 +vn 0.2123 -0.1956 0.9574 +vn 0.2087 -0.2081 0.9556 +vn 0.3061 -0.2269 0.9246 +vn 0.5452 -0.2758 0.7916 +vn 0.6782 -0.2877 0.6762 +vn 0.4169 -0.2586 0.8714 +vn 0.4132 -0.2715 0.8692 +vn 0.5420 -0.2875 0.7897 +vn 0.6755 -0.2977 0.6746 +vn 0.1309 -0.1783 0.9752 +vn 0.0632 -0.1631 0.9846 +vn 0.0594 -0.1760 0.9826 +vn 0.1271 -0.1911 0.9733 +vn 0.3024 -0.2398 0.9225 +vn 0.2048 -0.2214 0.9534 +vn 0.2006 -0.2353 0.9510 +vn 0.2984 -0.2533 0.9202 +vn 0.1232 -0.2045 0.9711 +vn 0.0554 -0.1896 0.9803 +vn 0.0511 -0.2039 0.9777 +vn 0.1189 -0.2187 0.9685 +vn 0.0069 -0.1500 0.9887 +vn -0.0277 -0.1417 0.9895 +vn -0.0327 -0.1543 0.9875 +vn 0.0022 -0.1627 0.9867 +vn 0.0115 -0.1380 0.9904 +vn -0.0227 -0.1298 0.9913 +vn -0.0026 -0.1761 0.9844 +vn -0.0376 -0.1677 0.9851 +vn -0.0427 -0.1820 0.9824 +vn -0.0074 -0.1904 0.9817 +vn 0.1145 -0.2338 0.9655 +vn 0.1963 -0.2501 0.9481 +vn 0.0466 -0.2191 0.9746 +vn 0.0418 -0.2352 0.9711 +vn 0.1097 -0.2497 0.9621 +vn 0.1916 -0.2658 0.9448 +vn 0.0155 -0.1295 0.9915 +vn -0.0181 -0.1215 0.9924 +vn 0.0179 -0.1260 0.9919 +vn -0.0150 -0.1181 0.9929 +vn 0.2943 -0.2676 0.9175 +vn 0.4093 -0.2850 0.8667 +vn 0.2898 -0.2828 0.9143 +vn 0.4052 -0.2994 0.8638 +vn 0.0236 -0.1088 0.9938 +vn -0.0091 -0.1010 0.9948 +vn 0.0330 -0.0776 0.9964 +vn 0.0004 -0.0698 0.9976 +vn -0.0419 -0.1381 0.9895 +vn -0.0462 -0.1509 0.9875 +vn -0.0378 -0.1260 0.9913 +vn -0.0456 -0.1234 0.9913 +vn -0.0498 -0.1355 0.9895 +vn -0.0543 -0.1482 0.9875 +vn 0.0442 -0.0401 0.9982 +vn 0.0117 -0.0323 0.9994 +vn 0.0601 0.0135 0.9981 +vn 0.0278 0.0214 0.9994 +vn -0.0346 -0.1172 0.9925 +vn -0.0329 -0.1135 0.9930 +vn -0.0416 -0.1108 0.9930 +vn -0.0427 -0.1146 0.9925 +vn -0.0272 -0.0967 0.9949 +vn -0.0170 -0.0657 0.9977 +vn -0.0239 -0.0634 0.9977 +vn -0.0354 -0.0940 0.9949 +vn 0.0810 0.0837 0.9932 +vn 0.0489 0.0917 0.9946 +vn 0.1070 0.1710 0.9794 +vn 0.0751 0.1792 0.9809 +vn -0.0048 -0.0285 0.9996 +vn 0.0127 0.0246 0.9996 +vn 0.0096 0.0256 0.9996 +vn -0.0101 -0.0268 0.9996 +vn -0.0387 -0.0926 0.9950 +vn -0.0455 -0.1092 0.9930 +vn -0.0261 -0.0625 0.9977 +vn -0.0287 -0.0614 0.9977 +vn -0.0425 -0.0910 0.9949 +vn -0.0500 -0.1072 0.9930 +vn -0.0110 -0.0264 0.9996 +vn 0.0105 0.0253 0.9996 +vn 0.0115 0.0246 0.9996 +vn -0.0121 -0.0260 0.9996 +vn 0.0355 0.0943 0.9949 +vn 0.0640 0.1809 0.9814 +vn 0.0679 0.1796 0.9814 +vn 0.0356 0.0942 0.9949 +vn -0.0470 -0.1129 0.9925 +vn -0.0505 -0.1215 0.9913 +vn -0.0517 -0.1108 0.9925 +vn -0.0557 -0.1192 0.9913 +vn 0.0388 0.0930 0.9949 +vn 0.0740 0.1772 0.9814 +vn 0.0811 0.1737 0.9814 +vn 0.0425 0.0911 0.9949 +vn 0.1157 0.2770 0.9539 +vn 0.1626 0.3889 0.9068 +vn 0.1269 0.2717 0.9540 +vn 0.1062 0.2808 0.9539 +vn 0.1378 0.2745 0.9517 +vn 0.1061 0.2828 0.9533 +vn 0.3219 0.4741 0.8195 +vn 0.0977 0.2837 0.9539 +vn 0.2116 0.5061 0.8361 +vn 0.1400 0.2652 0.9540 +vn 0.0895 0.1696 0.9814 +vn 0.1529 0.2580 0.9540 +vn 0.0977 0.1650 0.9814 +vn 0.0469 0.0889 0.9949 +vn 0.0127 0.0241 0.9996 +vn 0.0512 0.0865 0.9949 +vn 0.0139 0.0234 0.9996 +vn 0.1654 0.2502 0.9540 +vn 0.1057 0.1600 0.9814 +vn 0.1774 0.2418 0.9540 +vn 0.1134 0.1546 0.9814 +vn -0.0134 -0.0254 0.9996 +vn -0.0317 -0.0600 0.9977 +vn -0.0146 -0.0247 0.9996 +vn -0.0346 -0.0583 0.9977 +vn 0.0554 0.0839 0.9949 +vn 0.0150 0.0227 0.9996 +vn 0.0595 0.0810 0.9949 +vn 0.0161 0.0219 0.9996 +vn 0.1891 0.2328 0.9540 +vn 0.1209 0.1488 0.9814 +vn 0.2003 0.2232 0.9540 +vn 0.1281 0.1427 0.9814 +vn -0.0469 -0.0888 0.9949 +vn -0.0552 -0.1046 0.9930 +vn -0.0512 -0.0864 0.9949 +vn -0.0603 -0.1017 0.9930 +vn -0.0158 -0.0239 0.9996 +vn -0.0374 -0.0566 0.9977 +vn -0.0170 -0.0231 0.9996 +vn -0.0401 -0.0547 0.9977 +vn 0.0634 0.0780 0.9949 +vn 0.0172 0.0211 0.9996 +vn 0.0671 0.0748 0.9949 +vn 0.0182 0.0202 0.9996 +vn 0.2110 0.2131 0.9540 +vn 0.1349 0.1363 0.9814 +vn 0.2212 0.2025 0.9540 +vn 0.1414 0.1295 0.9814 +vn 0.2308 0.1914 0.9540 +vn 0.1476 0.1224 0.9814 +vn 0.0707 0.0714 0.9949 +vn 0.0191 0.0193 0.9996 +vn 0.0742 0.0679 0.9949 +vn 0.0201 0.0184 0.9996 +vn -0.0181 -0.0223 0.9996 +vn -0.0427 -0.0526 0.9977 +vn -0.0192 -0.0214 0.9996 +vn -0.0453 -0.0505 0.9977 +vn 0.0774 0.0642 0.9949 +vn 0.0209 0.0174 0.9996 +vn -0.0202 -0.0204 0.9996 +vn -0.0477 -0.0482 0.9977 +vn -0.0212 -0.0194 0.9996 +vn -0.0500 -0.0458 0.9977 +vn -0.0221 -0.0183 0.9996 +vn -0.0522 -0.0433 0.9977 +vn -0.0230 -0.0172 0.9996 +vn -0.0543 -0.0407 0.9977 +vn -0.0235 -0.0162 0.9996 +vn -0.0558 -0.0384 0.9977 +vn -0.0707 -0.0714 0.9949 +vn -0.0832 -0.0840 0.9930 +vn -0.0790 -0.0880 0.9930 +vn -0.0671 -0.0748 0.9949 +vn -0.0741 -0.0678 0.9949 +vn -0.0872 -0.0799 0.9930 +vn -0.0827 -0.0568 0.9950 +vn -0.0975 -0.0670 0.9930 +vn -0.0946 -0.0709 0.9930 +vn -0.0804 -0.0602 0.9949 +vn -0.0773 -0.0641 0.9949 +vn -0.0910 -0.0755 0.9930 +vn -0.1009 -0.0692 0.9925 +vn -0.1086 -0.0743 0.9913 +vn -0.1053 -0.0789 0.9913 +vn -0.0979 -0.0733 0.9925 +vn -0.1034 -0.0653 0.9925 +vn -0.1114 -0.0700 0.9913 +vn -0.0941 -0.0781 0.9925 +vn -0.1013 -0.0840 0.9913 +vn -0.0970 -0.0889 0.9913 +vn -0.0902 -0.0826 0.9925 +vn -0.0860 -0.0869 0.9925 +vn -0.0926 -0.0935 0.9913 +vn -0.0879 -0.0979 0.9913 +vn -0.0817 -0.0910 0.9925 +vn -0.0633 -0.0780 0.9949 +vn -0.0746 -0.0918 0.9930 +vn -0.0700 -0.0953 0.9930 +vn -0.0594 -0.0810 0.9949 +vn -0.0771 -0.0949 0.9925 +vn -0.0830 -0.1021 0.9913 +vn -0.0779 -0.1061 0.9913 +vn -0.0724 -0.0986 0.9925 +vn -0.0554 -0.0838 0.9949 +vn -0.0652 -0.0987 0.9930 +vn -0.0674 -0.1020 0.9925 +vn -0.0726 -0.1098 0.9913 +vn -0.0671 -0.1132 0.9913 +vn -0.0623 -0.1052 0.9925 +vn -0.0571 -0.1081 0.9925 +vn -0.0614 -0.1164 0.9913 +vn -0.0796 -0.1204 0.9895 +vn -0.0870 -0.1317 0.9875 +vn -0.0805 -0.1358 0.9875 +vn -0.0736 -0.1242 0.9895 +vn -0.0854 -0.1164 0.9895 +vn -0.0934 -0.1273 0.9875 +vn -0.0553 -0.1333 0.9895 +vn -0.0604 -0.1458 0.9875 +vn -0.0611 -0.1308 0.9895 +vn -0.0668 -0.1430 0.9875 +vn -0.0674 -0.1277 0.9895 +vn -0.0737 -0.1396 0.9875 +vn -0.0506 -0.1644 0.9851 +vn -0.0552 -0.1787 0.9824 +vn -0.0590 -0.1616 0.9851 +vn -0.0640 -0.1758 0.9823 +vn -0.0658 -0.1590 0.9851 +vn -0.0715 -0.1729 0.9823 +vn -0.0728 -0.1559 0.9851 +vn -0.0792 -0.1695 0.9823 +vn -0.0804 -0.1522 0.9851 +vn -0.0874 -0.1655 0.9823 +vn -0.0877 -0.1480 0.9851 +vn -0.0954 -0.1610 0.9823 +vn -0.0910 -0.1121 0.9895 +vn -0.0995 -0.1225 0.9875 +vn -0.0964 -0.1075 0.9895 +vn -0.1054 -0.1175 0.9875 +vn -0.0949 -0.1436 0.9851 +vn -0.1032 -0.1561 0.9823 +vn -0.1018 -0.1387 0.9851 +vn -0.1107 -0.1508 0.9823 +vn -0.1016 -0.1026 0.9895 +vn -0.1111 -0.1122 0.9875 +vn -0.1065 -0.0975 0.9895 +vn -0.1164 -0.1066 0.9875 +vn -0.1085 -0.1336 0.9851 +vn -0.1180 -0.1452 0.9823 +vn -0.1149 -0.1281 0.9851 +vn -0.1250 -0.1393 0.9823 +vn -0.1111 -0.0921 0.9895 +vn -0.1215 -0.1007 0.9875 +vn -0.1155 -0.0866 0.9895 +vn -0.1263 -0.0947 0.9875 +vn -0.1211 -0.1223 0.9851 +vn -0.1316 -0.1330 0.9823 +vn -0.1269 -0.1162 0.9851 +vn -0.1380 -0.1264 0.9823 +vn -0.1119 -0.1694 0.9792 +vn -0.1212 -0.1834 0.9755 +vn -0.1121 -0.1891 0.9755 +vn -0.1035 -0.1747 0.9792 +vn -0.1201 -0.1637 0.9792 +vn -0.1301 -0.1772 0.9755 +vn -0.1280 -0.1576 0.9792 +vn -0.1386 -0.1707 0.9755 +vn -0.1356 -0.1511 0.9792 +vn -0.1468 -0.1636 0.9755 +vn -0.0948 -0.1795 0.9792 +vn -0.1027 -0.1944 0.9755 +vn -0.0930 -0.1992 0.9755 +vn -0.0859 -0.1840 0.9792 +vn -0.1325 -0.1098 0.9851 +vn -0.1440 -0.1194 0.9823 +vn -0.1377 -0.1032 0.9851 +vn -0.1497 -0.1122 0.9823 +vn -0.0776 -0.1876 0.9792 +vn -0.0839 -0.2032 0.9755 +vn -0.0750 -0.2067 0.9755 +vn -0.0694 -0.1908 0.9792 +vn -0.1192 -0.0815 0.9895 +vn -0.1303 -0.0890 0.9875 +vn -0.1224 -0.0766 0.9895 +vn -0.1339 -0.0835 0.9875 +vn -0.1077 -0.0578 0.9925 +vn -0.1156 -0.0627 0.9913 +vn -0.1266 -0.0693 0.9895 +vn -0.1382 -0.0760 0.9875 +vn -0.1421 -0.0970 0.9851 +vn -0.1546 -0.1055 0.9823 +vn -0.1461 -0.0909 0.9851 +vn -0.1590 -0.0987 0.9823 +vn -0.1719 -0.0385 0.9844 +vn -0.1564 -0.0713 0.9851 +vn -0.1849 -0.0462 0.9817 +vn -0.1693 -0.0791 0.9824 +vn -0.1506 -0.0831 0.9851 +vn -0.1636 -0.0906 0.9824 +vn -0.1979 -0.0541 0.9787 +vn -0.1830 -0.0872 0.9792 +vn -0.1775 -0.0985 0.9792 +vn -0.1725 -0.1070 0.9792 +vn -0.1677 -0.1144 0.9792 +vn -0.1817 -0.1238 0.9755 +vn -0.1759 -0.1319 0.9755 +vn -0.1625 -0.1218 0.9792 +vn -0.1964 -0.1338 0.9713 +vn -0.1902 -0.1426 0.9713 +vn -0.1563 -0.1296 0.9792 +vn -0.1693 -0.1403 0.9755 +vn -0.1622 -0.1485 0.9755 +vn -0.1497 -0.1371 0.9792 +vn -0.1830 -0.1517 0.9713 +vn -0.1976 -0.1638 0.9665 +vn -0.1893 -0.1733 0.9665 +vn -0.1753 -0.1605 0.9713 +vn -0.2131 -0.1767 0.9609 +vn -0.2296 -0.1903 0.9545 +vn -0.2200 -0.2014 0.9545 +vn -0.2042 -0.1869 0.9609 +vn -0.1428 -0.1443 0.9792 +vn -0.1547 -0.1562 0.9755 +vn -0.1672 -0.1689 0.9713 +vn -0.1806 -0.1824 0.9665 +vn -0.1714 -0.1910 0.9665 +vn -0.1588 -0.1769 0.9713 +vn -0.1499 -0.1845 0.9713 +vn -0.1618 -0.1992 0.9665 +vn -0.1519 -0.2069 0.9665 +vn -0.1406 -0.1916 0.9713 +vn -0.1947 -0.1967 0.9609 +vn -0.2098 -0.2119 0.9545 +vn -0.1992 -0.2220 0.9545 +vn -0.1849 -0.2060 0.9609 +vn -0.1745 -0.2149 0.9609 +vn -0.1880 -0.2315 0.9545 +vn -0.1764 -0.2404 0.9545 +vn -0.1638 -0.2232 0.9609 +vn -0.1311 -0.1983 0.9713 +vn -0.1415 -0.2141 0.9665 +vn -0.1308 -0.2208 0.9665 +vn -0.1212 -0.2045 0.9713 +vn -0.1526 -0.2309 0.9609 +vn -0.1644 -0.2488 0.9545 +vn -0.1520 -0.2566 0.9545 +vn -0.1411 -0.2381 0.9609 +vn -0.1110 -0.2102 0.9713 +vn -0.1199 -0.2270 0.9665 +vn -0.1086 -0.2326 0.9665 +vn -0.1006 -0.2154 0.9713 +vn -0.1293 -0.2448 0.9609 +vn -0.1393 -0.2637 0.9545 +vn -0.1261 -0.2702 0.9545 +vn -0.1171 -0.2508 0.9609 +vn -0.0907 -0.2197 0.9713 +vn -0.0979 -0.2372 0.9665 +vn -0.0873 -0.2414 0.9665 +vn -0.0810 -0.2235 0.9713 +vn -0.1056 -0.2559 0.9609 +vn -0.1137 -0.2757 0.9545 +vn -0.1013 -0.2805 0.9545 +vn -0.0941 -0.2603 0.9609 +vn -0.1511 -0.2860 0.9462 +vn -0.1645 -0.3116 0.9359 +vn -0.1490 -0.3193 0.9359 +vn -0.1368 -0.2931 0.9462 +vn -0.1649 -0.2783 0.9462 +vn -0.1796 -0.3031 0.9359 +vn -0.1233 -0.2990 0.9462 +vn -0.1343 -0.3257 0.9359 +vn -0.1195 -0.3314 0.9359 +vn -0.1098 -0.3043 0.9462 +vn -0.0824 -0.2642 0.9609 +vn -0.0763 -0.2450 0.9665 +vn -0.0888 -0.2846 0.9545 +vn -0.0769 -0.2878 0.9546 +vn -0.0705 -0.2673 0.9610 +vn -0.0644 -0.2481 0.9666 +vn -0.1784 -0.2699 0.9462 +vn -0.1943 -0.2939 0.9359 +vn -0.1914 -0.2608 0.9462 +vn -0.2085 -0.2840 0.9359 +vn -0.0706 -0.2269 0.9714 +vn -0.0652 -0.2099 0.9755 +vn -0.0586 -0.2300 0.9714 +vn -0.0531 -0.2130 0.9756 +vn -0.2040 -0.2511 0.9462 +vn -0.2221 -0.2735 0.9359 +vn -0.2160 -0.2408 0.9462 +vn -0.2353 -0.2622 0.9359 +vn -0.0601 -0.1939 0.9792 +vn -0.0478 -0.1970 0.9792 +vn -0.0124 -0.2055 0.9786 +vn -0.0176 -0.2216 0.9750 +vn -0.0231 -0.2386 0.9708 +vn 0.0367 -0.2522 0.9670 +vn -0.0288 -0.2567 0.9661 +vn 0.0314 -0.2703 0.9623 +vn -0.0348 -0.2759 0.9606 +vn 0.0256 -0.2896 0.9568 +vn -0.0411 -0.2964 0.9542 +vn 0.1047 -0.2667 0.9581 +vn 0.1867 -0.2825 0.9409 +vn 0.0994 -0.2846 0.9535 +vn 0.0937 -0.3037 0.9482 +vn 0.2851 -0.2990 0.9107 +vn 0.4008 -0.3147 0.8604 +vn 0.5309 -0.3268 0.7819 +vn 0.5348 -0.3129 0.7849 +vn 0.5385 -0.2998 0.7875 +vn 0.6727 -0.3083 0.6726 +vn 0.7959 -0.3064 0.5222 +vn 0.7980 -0.2982 0.5237 +vn 0.8001 -0.2904 0.5249 +vn 0.8936 -0.2818 0.3494 +vn 0.7727 -0.2749 0.5722 +vn 0.2932 -0.2112 0.9324 +vn 0.3054 -0.2013 0.9307 +vn 0.7793 -0.2680 0.5665 +vn 0.7663 -0.2824 0.5771 +vn 0.2817 -0.2219 0.9335 +vn 0.7856 -0.2632 0.5600 +vn 0.3177 -0.1949 0.9280 +vn -0.0485 -0.3205 0.9460 +vn -0.0843 -0.3119 0.9464 +vn -0.0928 -0.3395 0.9360 +vn -0.0569 -0.3481 0.9357 +vn -0.0964 -0.3087 0.9463 +vn -0.1051 -0.3362 0.9359 +vn -0.0657 -0.3767 0.9240 +vn -0.1015 -0.3681 0.9242 +vn -0.1141 -0.3648 0.9241 +vn -0.1246 -0.3981 0.9088 +vn -0.1296 -0.3596 0.9241 +vn -0.1414 -0.3926 0.9088 +vn -0.1370 -0.4374 0.8888 +vn -0.1553 -0.4313 0.8887 +vn -0.1457 -0.3534 0.9241 +vn -0.1590 -0.3858 0.9088 +vn -0.1617 -0.3464 0.9241 +vn -0.1765 -0.3781 0.9088 +vn -0.1746 -0.4238 0.8888 +vn -0.1916 -0.4652 0.8642 +vn -0.1939 -0.4154 0.8887 +vn -0.2129 -0.4559 0.8642 +vn -0.1785 -0.3380 0.9241 +vn -0.1949 -0.3690 0.9088 +vn -0.1949 -0.3289 0.9240 +vn -0.2127 -0.3590 0.9088 +vn -0.2101 -0.5101 0.8341 +vn -0.2300 -0.5585 0.7970 +vn -0.2334 -0.4999 0.8340 +vn -0.2555 -0.5474 0.7969 +vn -0.2141 -0.4054 0.8887 +vn -0.2350 -0.4449 0.8642 +vn -0.2337 -0.3944 0.8887 +vn -0.2565 -0.4329 0.8642 +vn -0.2108 -0.3189 0.9241 +vn -0.2301 -0.3481 0.9088 +vn -0.2262 -0.3082 0.9240 +vn -0.2469 -0.3364 0.9088 +vn -0.2513 -0.6103 0.7512 +vn -0.2738 -0.6649 0.6949 +vn -0.2792 -0.5981 0.7512 +vn -0.3042 -0.6516 0.6949 +vn -0.2576 -0.4879 0.8340 +vn -0.2821 -0.5342 0.7969 +vn -0.2813 -0.4746 0.8340 +vn -0.3079 -0.5197 0.7969 +vn -0.2528 -0.3824 0.8887 +vn -0.2774 -0.4198 0.8642 +vn -0.2712 -0.3696 0.8887 +vn -0.2977 -0.4057 0.8642 +vn -0.2970 -0.7214 0.6256 +vn -0.3300 -0.7070 0.6255 +vn -0.3082 -0.5837 0.7512 +vn -0.3358 -0.6359 0.6949 +vn -0.3365 -0.5678 0.7512 +vn -0.3643 -0.6899 0.6255 +vn -0.3639 -0.5507 0.7512 +vn -0.3331 -0.5039 0.7969 +vn -0.3042 -0.4603 0.8340 +vn -0.3264 -0.4448 0.8340 +vn -0.3479 -0.4282 0.8340 +vn -0.3173 -0.3906 0.8642 +vn -0.3225 -0.3258 0.8887 +vn -0.2936 -0.2965 0.9088 +vn -0.3061 -0.3412 0.8887 +vn -0.2787 -0.3106 0.9088 +vn -0.2890 -0.3558 0.8887 +vn -0.2631 -0.3239 0.9088 +vn -0.2689 -0.2717 0.9241 +vn -0.2479 -0.2504 0.9359 +vn -0.2553 -0.2845 0.9241 +vn -0.2490 -0.2065 0.9462 +vn -0.2386 -0.2184 0.9462 +vn -0.2410 -0.2967 0.9241 +vn -0.2276 -0.2299 0.9462 +vn 0.8912 0.0779 0.4468 +vn 0.9528 -0.0356 0.3016 +vn 0.8848 0.0779 0.4594 +vn 0.4759 0.3714 0.7972 +vn 0.8611 -0.0009 0.5084 +vn 0.4333 0.2171 0.8747 +vn 0.8447 -0.0644 0.5314 +vn 0.4091 0.1183 0.9048 +vn 0.8307 -0.1175 0.5442 +vn 0.3888 0.0368 0.9206 +vn 0.8199 -0.1592 0.5499 +vn 0.3730 -0.0275 0.9274 +vn -0.1280 0.8913 0.4350 +vn -0.2305 0.9250 0.3021 +vn 0.2388 0.5748 0.7826 +vn -0.1069 0.8880 0.4472 +vn 0.6223 -0.7317 0.2782 +vn 0.0450 -0.9021 0.4292 +vn 0.6159 -0.7628 0.1972 +vn 0.0335 -0.9520 0.3044 +vn 0.6010 -0.7992 0.0107 +vn 0.0216 -0.9996 0.0153 +vn 0.0224 -0.9970 0.0742 +vn 0.6036 -0.7957 0.0495 +vn 0.8198 -0.5726 0.0067 +vn 0.8209 -0.5710 -0.0014 +vn 0.5968 -0.8024 -0.0025 +vn 0.0208 -0.9998 -0.0047 +vn 0.6854 -0.7281 0.0108 +vn 0.5253 -0.8508 0.0148 +vn 0.5267 -0.8501 -0.0017 +vn 0.6867 -0.7269 -0.0018 +vn 0.3611 -0.9323 0.0181 +vn 0.2103 -0.9774 0.0206 +vn 0.2111 -0.9775 -0.0011 +vn 0.3622 -0.9321 -0.0014 +vn 0.0814 -0.9964 0.0224 +vn -0.0248 -0.9994 0.0236 +vn -0.0245 -0.9997 -0.0005 +vn 0.0819 -0.9966 -0.0008 +vn -0.1110 -0.9935 0.0244 +vn -0.1808 -0.9832 0.0248 +vn -0.1807 -0.9835 -0.0002 +vn -0.1108 -0.9938 -0.0003 +vn -0.2432 -0.9697 0.0250 +vn -0.2790 -0.9600 0.0251 +vn -0.2790 -0.9603 -0.0001 +vn -0.2432 -0.9700 -0.0001 +vn -0.2995 -0.9538 0.0251 +vn -0.2996 -0.9541 -0.0001 +vn -0.3379 -0.9409 0.0230 +vn -0.3380 -0.9411 0.0000 +vn -0.3806 -0.9244 0.0251 +vn -0.3807 -0.9247 0.0000 +vn -0.4230 -0.9059 0.0230 +vn -0.4230 -0.9061 -0.0000 +vn -0.4668 -0.8840 0.0251 +vn -0.4670 -0.8843 0.0000 +vn -0.5097 -0.8601 0.0230 +vn -0.5098 -0.8603 0.0000 +vn -0.5512 -0.8340 0.0251 +vn -0.5514 -0.8342 0.0000 +vn -0.5915 -0.8059 0.0230 +vn -0.5917 -0.8062 0.0000 +vn -0.6303 -0.7759 0.0251 +vn -0.6305 -0.7762 0.0000 +vn -0.6676 -0.7441 0.0230 +vn -0.6678 -0.7443 0.0001 +vn -0.7033 -0.7104 0.0251 +vn -0.7036 -0.7106 0.0000 +vn -0.7373 -0.6751 0.0230 +vn -0.7376 -0.6753 0.0000 +vn -0.7696 -0.6381 0.0251 +vn -0.7698 -0.6383 0.0000 +vn -0.8000 -0.5995 0.0230 +vn -0.8002 -0.5997 0.0000 +vn -0.8268 -0.5619 0.0251 +vn -0.8271 -0.5621 0.0000 +vn -0.8517 -0.5236 0.0230 +vn -0.8519 -0.5237 0.0000 +vn -0.8721 -0.4886 0.0251 +vn -0.8724 -0.4888 0.0000 +vn -0.8825 -0.4697 0.0228 +vn -0.8827 -0.4699 -0.0000 +vn -0.8993 -0.4367 0.0251 +vn -0.9253 -0.3784 0.0249 +vn -0.9256 -0.3784 -0.0002 +vn -0.8996 -0.4368 -0.0001 +vn -0.9497 -0.3122 0.0243 +vn -0.9731 -0.2290 0.0237 +vn -0.9735 -0.2288 -0.0006 +vn -0.9500 -0.3121 -0.0004 +vn -0.9920 -0.1245 0.0225 +vn -0.9998 0.0056 0.0208 +vn -1.0000 0.0064 -0.0011 +vn -0.9923 -0.1241 -0.0009 +vn -0.9866 0.1624 0.0183 +vn -0.9404 0.3398 0.0150 +vn -0.9400 0.3413 -0.0017 +vn -0.9865 0.1635 -0.0014 +vn -0.8531 0.5216 0.0110 +vn -0.7284 0.6851 0.0068 +vn -0.7272 0.6865 -0.0014 +vn -0.8522 0.5232 -0.0017 +vn -0.8525 0.5207 0.0453 +vn -0.7286 0.6843 0.0294 +vn -0.8838 0.4678 0.0102 +vn -0.9916 -0.1286 0.0152 +vn -0.9916 -0.1296 -0.0043 +vn -0.8861 0.4635 -0.0023 +vn -0.8810 0.4707 0.0466 +vn -0.9892 -0.1273 0.0730 +vn -0.8720 0.4777 0.1067 +vn -0.7257 0.6848 0.0665 +vn -0.9778 -0.1210 0.1710 +vn -0.8470 0.5220 0.1006 +vn 0.7603 -0.2904 0.5811 +vn 0.2710 -0.2336 0.9338 +vn 0.6092 -0.7848 0.1139 +vn 0.0257 -0.9844 0.1741 +vn -0.8605 -0.2656 0.4348 +vn 0.9911 0.0863 0.1009 +vn 0.9558 0.2862 0.0668 +vn 0.9484 0.2953 0.1151 +vn 0.9799 0.1004 0.1726 +vn 0.9850 -0.1127 0.1305 +vn 0.9706 -0.0942 0.2217 +vn 0.9912 -0.1184 0.0594 +vn 0.9956 0.0826 0.0452 +vn 0.9583 0.2844 0.0294 +vn 0.3468 0.9140 0.2106 +vn -0.2412 0.9061 0.3477 +vn -0.2443 0.9088 0.3381 +vn 0.3406 0.9177 0.2046 +vn 0.5434 0.8282 0.1370 +vn 0.5445 0.8286 0.1299 +vn 0.5477 0.8201 0.1657 +vn 0.3626 0.8988 0.2462 +vn -0.2272 0.8873 0.4014 +vn -0.7361 -0.6595 0.1526 +vn -0.8467 -0.5159 0.1302 +vn -0.8499 -0.5236 0.0595 +vn -0.7396 -0.6694 0.0706 +vn -0.6216 -0.7651 0.1680 +vn -0.6251 -0.7766 0.0784 +vn -0.6154 -0.7356 0.2831 +vn -0.7301 -0.6326 0.2583 +vn -0.8413 -0.4931 0.2215 +vn -0.8043 0.2262 0.5496 +vn -0.9044 0.2370 0.3548 +vn -0.8975 0.2661 0.3518 +vn -0.7954 0.2683 0.5435 +vn -0.3447 0.1429 0.9278 +vn -0.3292 0.2073 0.9212 +vn -0.3577 0.0885 0.9296 +vn -0.8118 0.1918 0.5516 +vn -0.9099 0.2137 0.3555 +vn -0.6977 0.6849 0.2102 +vn -0.8410 0.5236 0.1365 +vn -0.8421 0.5237 0.1290 +vn -0.6938 0.6908 0.2034 +vn -0.1635 0.9235 0.3470 +vn -0.1611 0.9276 0.3372 +vn -0.1701 0.9004 0.4004 +vn -0.7052 0.6648 0.2464 +vn -0.8416 0.5142 0.1653 +vn 0.9449 -0.2895 0.1529 +vn 0.8854 -0.4334 0.1682 +vn 0.8934 -0.4424 0.0784 +vn 0.9523 -0.2970 0.0705 +vn 0.9282 -0.2676 0.2585 +vn 0.8674 -0.4092 0.2833 +vn 0.8196 -0.5446 0.1778 +vn 0.7558 -0.6285 0.1835 +vn 0.7642 -0.6391 0.0867 +vn 0.8279 -0.5546 0.0835 +vn 0.8010 -0.5189 0.2986 +vn 0.7369 -0.6021 0.3074 +vn 0.9029 -0.2330 0.3611 +vn 0.8401 -0.3714 0.3954 +vn 0.9485 -0.0646 0.3100 +vn 0.9238 -0.0297 0.3817 +vn 0.8746 -0.1925 0.4450 +vn 0.8095 -0.3273 0.4875 +vn 0.9625 0.1235 0.2417 +vn 0.9367 0.3108 0.1614 +vn 0.9232 0.3291 0.1984 +vn 0.9428 0.1507 0.2973 +vn 0.6977 -0.6916 0.1866 +vn 0.6464 -0.7394 0.1880 +vn 0.6546 -0.7507 0.0896 +vn 0.7060 -0.7026 0.0886 +vn 0.6787 -0.6648 0.3120 +vn 0.6275 -0.7125 0.3141 +vn 0.9226 0.1786 0.3419 +vn 0.8983 0.0063 0.4394 +vn 0.9096 0.3475 0.2278 +vn 0.8960 0.3657 0.2518 +vn 0.9025 0.2061 0.3781 +vn 0.8728 0.0418 0.4863 +vn 0.9139 0.0895 0.3960 +vn 0.6637 -0.4345 0.6089 +vn 0.6285 -0.3879 0.6742 +vn 0.8907 0.1196 0.4386 +vn 0.9371 0.0597 0.3438 +vn 0.6989 -0.4809 0.5294 +vn 0.8682 0.1489 0.4734 +vn 0.8829 0.3832 0.2712 +vn 0.5946 -0.3425 0.7274 +vn 0.5625 -0.2993 0.7707 +vn 0.8469 0.1770 0.5014 +vn 0.8706 0.3996 0.2869 +vn 0.8271 0.2035 0.5239 +vn 0.8592 0.4149 0.2995 +vn 0.5328 -0.2585 0.8058 +vn 0.5055 -0.2204 0.8342 +vn 0.8089 0.2284 0.5418 +vn 0.8485 0.4290 0.3098 +vn 0.8832 0.2325 0.4074 +vn 0.8482 0.0760 0.5242 +vn 0.8648 0.2574 0.4311 +vn 0.8249 0.1081 0.5548 +vn 0.8452 -0.1506 0.5128 +vn 0.7776 -0.2814 0.5623 +vn 0.8158 -0.1090 0.5679 +vn 0.7456 -0.2358 0.6232 +vn 0.7726 -0.4793 0.4165 +vn 0.7080 -0.5613 0.4285 +vn 0.7406 -0.4331 0.5138 +vn 0.6753 -0.5141 0.5289 +vn 0.6497 -0.6235 0.4349 +vn 0.5984 -0.6711 0.4377 +vn 0.6166 -0.5758 0.5369 +vn 0.5652 -0.6233 0.5405 +vn 0.7072 -0.3848 0.5931 +vn 0.6410 -0.4645 0.6110 +vn 0.6737 -0.3368 0.6578 +vn 0.6067 -0.4152 0.6779 +vn 0.7875 -0.0690 0.6125 +vn 0.7148 -0.1918 0.6725 +vn 0.7606 -0.0313 0.6485 +vn 0.6856 -0.1504 0.7123 +vn 0.5972 -0.7796 0.1885 +vn 0.5675 -0.8015 0.1884 +vn 0.5755 -0.8128 0.0900 +vn 0.6053 -0.7909 0.0899 +vn 0.5784 -0.7526 0.3147 +vn 0.5488 -0.7746 0.3144 +vn 0.5495 -0.7112 0.4385 +vn 0.5200 -0.7333 0.4381 +vn 0.5162 -0.6635 0.5416 +vn 0.4868 -0.6857 0.5412 +vn 0.5819 -0.5257 0.6205 +vn 0.5302 -0.5729 0.6250 +vn 0.5471 -0.4757 0.6887 +vn 0.4953 -0.5227 0.6939 +vn 0.5501 -0.8136 0.1882 +vn 0.5578 -0.8251 0.0900 +vn 0.5318 -0.7865 0.3141 +vn 0.4995 -0.8074 0.3140 +vn 0.5167 -0.8352 0.1882 +vn 0.5240 -0.8470 0.0900 +vn 0.6414 -0.2904 0.7101 +vn 0.5736 -0.3675 0.7321 +vn 0.6108 -0.2467 0.7524 +vn 0.5421 -0.3225 0.7760 +vn 0.8478 0.2805 0.4501 +vn 0.8033 0.1381 0.5794 +vn 0.8320 0.3018 0.4655 +vn 0.7832 0.1657 0.5993 +vn 0.7922 0.2516 0.5560 +vn 0.4807 -0.1849 0.8572 +vn 0.4584 -0.1518 0.8757 +vn 0.7771 0.2732 0.5670 +vn 0.8388 0.4420 0.3180 +vn 0.8298 0.4539 0.3247 +vn 0.7644 0.2915 0.5751 +vn 0.8222 0.4640 0.3296 +vn 0.4400 -0.1233 0.8895 +vn 0.4248 -0.0983 0.8999 +vn 0.7540 0.3080 0.5802 +vn 0.8157 0.4726 0.3335 +vn 0.8175 0.3214 0.4779 +vn 0.7647 0.1911 0.6154 +vn 0.8041 0.3394 0.4880 +vn 0.7477 0.2144 0.6284 +vn 0.7356 0.0039 0.6774 +vn 0.6584 -0.1117 0.7444 +vn 0.7124 0.0363 0.7009 +vn 0.6331 -0.0760 0.7703 +vn 0.5135 -0.4274 0.7441 +vn 0.4615 -0.4741 0.7498 +vn 0.4817 -0.3817 0.7889 +vn 0.4294 -0.4281 0.7952 +vn 0.5822 -0.2059 0.7865 +vn 0.5128 -0.2804 0.8114 +vn 0.5557 -0.1681 0.8142 +vn 0.4856 -0.2415 0.8402 +vn 0.6910 0.0662 0.7198 +vn 0.6099 -0.0431 0.7913 +vn 0.6714 0.0935 0.7352 +vn 0.5885 -0.0130 0.8084 +vn 0.7929 0.3548 0.4955 +vn 0.7334 0.2342 0.6382 +vn 0.7832 0.3677 0.5013 +vn 0.7211 0.2511 0.6457 +vn 0.5314 -0.1334 0.8366 +vn 0.4605 -0.2057 0.8635 +vn 0.5089 -0.1015 0.8548 +vn 0.4375 -0.1728 0.8825 +vn 0.6548 0.1168 0.7467 +vn 0.5705 0.0126 0.8212 +vn 0.6406 0.1366 0.7556 +vn 0.5550 0.0345 0.8312 +vn 0.7739 0.3802 0.5065 +vn 0.7093 0.2673 0.6523 +vn 0.8095 0.4808 0.3370 +vn 0.8040 0.4881 0.3395 +vn 0.7658 0.3912 0.5104 +vn 0.6990 0.2815 0.6574 +vn 0.7440 0.3238 0.5845 +vn 0.4102 -0.0742 0.9090 +vn 0.3978 -0.0528 0.9159 +vn 0.7353 0.3375 0.5877 +vn 0.7285 0.3497 0.5891 +vn 0.7994 0.4942 0.3416 +vn 0.3880 -0.0341 0.9210 +vn 0.3793 -0.0161 0.9251 +vn 0.7222 0.3614 0.5897 +vn 0.7951 0.4999 0.3435 +vn 0.7167 0.3726 0.5895 +vn 0.7910 0.5053 0.3450 +vn 0.3717 0.0014 0.9284 +vn 0.3651 0.0182 0.9308 +vn 0.7117 0.3835 0.5886 +vn 0.7871 0.5104 0.3463 +vn 0.7589 0.4004 0.5135 +vn 0.6902 0.2934 0.6615 +vn 0.7525 0.4091 0.5162 +vn 0.6819 0.3047 0.6649 +vn 0.6269 0.1556 0.7634 +vn 0.5400 0.0555 0.8398 +vn 0.6150 0.1723 0.7695 +vn 0.5270 0.0739 0.8466 +vn 0.7074 0.3940 0.5869 +vn 0.7835 0.5152 0.3475 +vn 0.3595 0.0347 0.9325 +vn 0.3550 0.0508 0.9335 +vn 0.7036 0.4042 0.5844 +vn 0.7801 0.5197 0.3485 +vn 0.7464 0.4172 0.5185 +vn 0.6742 0.3152 0.6679 +vn 0.7406 0.4249 0.5205 +vn 0.6669 0.3252 0.6705 +vn 0.6048 0.1864 0.7743 +vn 0.5160 0.0894 0.8519 +vn 0.5953 0.1996 0.7783 +vn 0.5055 0.1040 0.8565 +vn 0.4899 -0.0744 0.8686 +vn 0.4180 -0.1448 0.8968 +vn 0.4737 -0.0513 0.8792 +vn 0.4013 -0.1209 0.9079 +vn 0.4580 -0.0290 0.8885 +vn 0.3851 -0.0979 0.9177 +vn 0.4443 -0.0095 0.8958 +vn 0.3711 -0.0778 0.9253 +vn 0.4327 0.0070 0.9015 +vn 0.3591 -0.0608 0.9313 +vn 0.4217 0.0225 0.9065 +vn 0.3479 -0.0447 0.9365 +vn 0.3558 -0.2012 0.9127 +vn 0.3027 -0.2464 0.9207 +vn 0.3227 -0.2750 0.9057 +vn 0.3756 -0.2296 0.8979 +vn 0.3388 -0.1769 0.9241 +vn 0.2857 -0.2219 0.9323 +vn 0.3224 -0.1535 0.9341 +vn 0.2692 -0.1983 0.9425 +vn 0.3082 -0.1330 0.9420 +vn 0.2548 -0.1777 0.9505 +vn 0.3989 -0.2631 0.8784 +vn 0.3462 -0.3087 0.8859 +vn 0.3718 -0.3454 0.8617 +vn 0.4243 -0.2995 0.8545 +vn 0.4519 -0.3390 0.8251 +vn 0.3995 -0.3852 0.8319 +vn 0.2973 -0.3486 0.8889 +vn 0.2681 -0.3712 0.8890 +vn 0.2936 -0.4080 0.8645 +vn 0.3228 -0.3854 0.8645 +vn 0.2738 -0.3147 0.9088 +vn 0.2447 -0.3374 0.9090 +vn 0.3505 -0.4253 0.8344 +vn 0.3213 -0.4479 0.8344 +vn 0.3512 -0.4909 0.7973 +vn 0.3804 -0.4683 0.7975 +vn 0.4125 -0.5144 0.7519 +vn 0.3832 -0.5369 0.7516 +vn 0.4169 -0.5854 0.6953 +vn 0.4463 -0.5630 0.6956 +vn 0.4812 -0.6132 0.6264 +vn 0.4519 -0.6355 0.6260 +vn 0.3698 -0.5466 0.7513 +vn 0.4029 -0.5956 0.6950 +vn 0.3385 -0.5002 0.7970 +vn 0.3176 -0.5138 0.7969 +vn 0.3471 -0.5614 0.7512 +vn 0.3783 -0.6116 0.6949 +vn 0.5037 -0.7448 0.4377 +vn 0.4712 -0.6968 0.5408 +vn 0.4425 -0.7154 0.5407 +vn 0.4730 -0.7647 0.4376 +vn 0.4371 -0.6462 0.6256 +vn 0.4104 -0.6635 0.6255 +vn 0.3092 -0.4568 0.8341 +vn 0.2821 -0.4166 0.8642 +vn 0.2645 -0.4281 0.8642 +vn 0.2901 -0.4693 0.8340 +vn 0.4780 -0.8580 0.1882 +vn 0.4847 -0.8700 0.0900 +vn 0.4621 -0.8294 0.3140 +vn 0.4233 -0.8499 0.3139 +vn 0.4378 -0.8791 0.1882 +vn 0.4440 -0.8915 0.0900 +vn 0.3942 -0.8996 0.1882 +vn 0.3997 -0.9122 0.0900 +vn 0.3810 -0.8696 0.3140 +vn 0.3379 -0.8873 0.3140 +vn 0.3496 -0.9178 0.1882 +vn 0.3545 -0.9307 0.0900 +vn 0.4376 -0.7855 0.4376 +vn 0.4094 -0.7349 0.5407 +vn 0.3750 -0.7530 0.5407 +vn 0.4009 -0.8049 0.4376 +vn 0.3041 -0.9339 0.1882 +vn 0.3084 -0.9470 0.0900 +vn 0.2940 -0.9028 0.3140 +vn 0.2493 -0.9161 0.3140 +vn 0.2579 -0.9477 0.1882 +vn 0.2615 -0.9610 0.0900 +vn 0.2111 -0.9592 0.1882 +vn 0.2141 -0.9727 0.0900 +vn 0.2041 -0.9272 0.3140 +vn 0.1583 -0.9361 0.3140 +vn 0.1638 -0.9684 0.1882 +vn 0.1661 -0.9820 0.0900 +vn 0.3609 -0.8236 0.4376 +vn 0.3376 -0.7705 0.5407 +vn 0.2994 -0.7862 0.5406 +vn 0.3200 -0.8403 0.4376 +vn 0.2784 -0.8550 0.4376 +vn 0.2605 -0.7999 0.5407 +vn 0.2209 -0.8117 0.5407 +vn 0.2361 -0.8676 0.4376 +vn 0.1933 -0.8782 0.4376 +vn 0.1808 -0.8216 0.5407 +vn 0.1403 -0.8295 0.5407 +vn 0.1500 -0.8866 0.4376 +vn 0.2416 -0.7419 0.6255 +vn 0.2227 -0.6838 0.6949 +vn 0.1889 -0.6939 0.6949 +vn 0.2049 -0.7528 0.6255 +vn 0.2777 -0.7291 0.6255 +vn 0.2560 -0.6721 0.6948 +vn 0.1677 -0.7620 0.6255 +vn 0.1546 -0.7023 0.6949 +vn 0.1199 -0.7091 0.6949 +vn 0.1301 -0.7693 0.6255 +vn 0.1161 -0.9753 0.1882 +vn 0.1177 -0.9890 0.0900 +vn 0.1122 -0.9428 0.3140 +vn 0.0658 -0.9471 0.3140 +vn 0.0681 -0.9798 0.1882 +vn 0.0690 -0.9936 0.0900 +vn 0.0199 -0.9819 0.1882 +vn 0.0202 -0.9957 0.0900 +vn 0.0193 -0.9492 0.3140 +vn -0.0273 -0.9490 0.3140 +vn -0.0283 -0.9817 0.1882 +vn -0.0287 -0.9955 0.0900 +vn 0.1063 -0.8929 0.4376 +vn 0.0994 -0.8354 0.5406 +vn 0.0583 -0.8392 0.5406 +vn 0.0623 -0.8970 0.4376 +vn -0.0736 -0.9794 0.1882 +vn -0.0747 -0.9931 0.0900 +vn -0.0712 -0.9468 0.3140 +vn -0.1143 -0.9425 0.3140 +vn -0.1183 -0.9750 0.1882 +vn -0.1200 -0.9887 0.0900 +vn 0.0182 -0.8990 0.4376 +vn 0.0171 -0.8411 0.5406 +vn -0.0242 -0.8409 0.5406 +vn -0.0259 -0.8988 0.4376 +vn -0.1577 -0.9694 0.1882 +vn -0.1599 -0.9830 0.0900 +vn -0.1525 -0.9371 0.3141 +vn -0.1728 -0.9334 0.3144 +vn -0.1786 -0.9657 0.1884 +vn -0.1810 -0.9794 0.0900 +vn -0.0674 -0.8966 0.4376 +vn -0.0630 -0.8389 0.5407 +vn -0.1013 -0.8351 0.5407 +vn -0.1083 -0.8926 0.4376 +vn -0.2148 -0.9583 0.1884 +vn -0.2762 -0.9426 0.1879 +vn -0.2792 -0.9564 0.0855 +vn -0.2173 -0.9720 0.0900 +vn -0.2089 -0.9259 0.3146 +vn -0.2703 -0.9101 0.3141 +vn -0.1444 -0.8875 0.4377 +vn -0.1352 -0.8302 0.5408 +vn -0.1539 -0.8267 0.5412 +vn -0.1640 -0.8838 0.4381 +vn -0.2001 -0.8762 0.4384 +vn -0.2613 -0.8603 0.4377 +vn -0.1899 -0.8189 0.5416 +vn -0.2512 -0.8030 0.5405 +vn -0.3429 -0.9207 0.1864 +vn -0.4221 -0.8878 0.1833 +vn -0.4252 -0.9007 0.0891 +vn -0.3459 -0.9341 0.0886 +vn -0.3369 -0.8884 0.3119 +vn -0.4160 -0.8559 0.3073 +vn -0.5153 -0.8384 0.1776 +vn -0.5186 -0.8509 0.0835 +vn -0.5091 -0.8073 0.2985 +vn -0.5000 -0.7594 0.4164 +vn -0.6065 -0.6899 0.3953 +vn -0.4069 -0.8068 0.4284 +vn -0.3970 -0.7501 0.5289 +vn -0.4903 -0.7040 0.5138 +vn -0.5972 -0.6369 0.4875 +vn -0.1793 -0.7586 0.6264 +vn -0.2407 -0.7426 0.6250 +vn -0.1432 -0.7665 0.6261 +vn -0.1326 -0.7064 0.6953 +vn -0.1687 -0.6983 0.6956 +vn -0.2301 -0.6823 0.6939 +vn -0.1254 -0.7700 0.6256 +vn -0.1156 -0.7097 0.6949 +vn -0.0939 -0.7745 0.6255 +vn -0.0865 -0.7139 0.6949 +vn -0.3074 -0.7214 0.6206 +vn -0.3867 -0.6907 0.6110 +vn -0.3178 -0.7815 0.5369 +vn -0.2968 -0.6614 0.6888 +vn -0.3763 -0.6316 0.6779 +vn -0.0584 -0.7780 0.6256 +vn -0.0539 -0.7171 0.6949 +vn -0.0225 -0.7799 0.6255 +vn -0.0207 -0.7188 0.6949 +vn -0.1584 -0.6400 0.7519 +vn -0.2198 -0.6241 0.7498 +vn -0.1223 -0.6481 0.7516 +vn -0.1126 -0.5930 0.7973 +vn -0.1487 -0.5848 0.7975 +vn -0.2100 -0.5689 0.7952 +vn -0.1062 -0.6514 0.7513 +vn -0.0972 -0.5961 0.7970 +vn -0.0793 -0.6553 0.7512 +vn -0.0726 -0.5997 0.7969 +vn 0.0158 -0.7800 0.6255 +vn 0.0146 -0.7190 0.6949 +vn 0.0541 -0.7783 0.6255 +vn 0.0499 -0.7174 0.6949 +vn -0.0494 -0.6582 0.7512 +vn -0.0452 -0.6023 0.7970 +vn -0.0190 -0.6598 0.7512 +vn -0.0174 -0.6038 0.7969 +vn 0.0922 -0.7747 0.6255 +vn 0.0850 -0.7141 0.6949 +vn 0.0134 -0.6599 0.7512 +vn 0.0123 -0.6039 0.7969 +vn 0.0458 -0.6585 0.7512 +vn 0.0419 -0.6026 0.7969 +vn 0.0780 -0.6554 0.7512 +vn 0.0714 -0.5998 0.7969 +vn 0.1101 -0.6508 0.7512 +vn 0.1007 -0.5956 0.7969 +vn 0.1419 -0.6446 0.7512 +vn 0.1298 -0.5899 0.7969 +vn 0.1733 -0.6369 0.7512 +vn 0.1586 -0.5829 0.7969 +vn 0.0112 -0.5516 0.8340 +vn 0.0102 -0.5031 0.8642 +vn -0.0145 -0.5030 0.8642 +vn -0.0159 -0.5515 0.8340 +vn 0.0382 -0.5504 0.8340 +vn 0.0349 -0.5020 0.8642 +vn 0.0652 -0.5478 0.8340 +vn 0.0595 -0.4997 0.8642 +vn 0.0920 -0.5440 0.8340 +vn 0.0839 -0.4961 0.8642 +vn -0.0413 -0.5501 0.8341 +vn -0.0376 -0.5017 0.8642 +vn -0.0603 -0.4996 0.8642 +vn -0.0662 -0.5477 0.8340 +vn -0.0889 -0.5444 0.8341 +vn -0.0811 -0.4965 0.8642 +vn -0.0951 -0.4936 0.8645 +vn -0.1035 -0.5414 0.8344 +vn -0.0342 -0.4571 0.8888 +vn -0.0311 -0.4161 0.9088 +vn -0.0499 -0.4143 0.9088 +vn -0.0549 -0.4551 0.8887 +vn -0.0132 -0.4582 0.8887 +vn -0.0120 -0.4171 0.9088 +vn -0.1396 -0.5331 0.8344 +vn -0.2009 -0.5173 0.8319 +vn -0.1312 -0.4853 0.8645 +vn -0.1924 -0.4696 0.8617 +vn -0.0740 -0.4523 0.8888 +vn -0.0674 -0.4117 0.9088 +vn -0.0804 -0.4090 0.9090 +vn -0.0874 -0.4495 0.8890 +vn -0.1235 -0.4412 0.8889 +vn -0.1846 -0.4256 0.8859 +vn -0.1164 -0.4006 0.9088 +vn -0.1774 -0.3851 0.9057 +vn -0.2866 -0.6035 0.7441 +vn -0.3662 -0.5744 0.7321 +vn -0.2769 -0.5486 0.7889 +vn -0.3566 -0.5203 0.7760 +vn -0.2678 -0.4974 0.8251 +vn -0.3477 -0.4698 0.8114 +vn -0.2594 -0.4500 0.8545 +vn -0.3393 -0.4231 0.8402 +vn -0.4803 -0.6461 0.5932 +vn -0.5875 -0.5818 0.5624 +vn -0.4701 -0.5885 0.6578 +vn -0.5777 -0.5271 0.6233 +vn -0.7216 -0.5907 0.3610 +vn -0.8338 -0.4570 0.3099 +vn -0.7130 -0.5419 0.4450 +vn -0.8259 -0.4148 0.3818 +vn -0.4602 -0.5329 0.7101 +vn -0.5682 -0.4742 0.6725 +vn -0.4508 -0.4803 0.7524 +vn -0.5591 -0.4243 0.7123 +vn -0.7039 -0.4915 0.5128 +vn -0.8179 -0.3714 0.4395 +vn -0.6947 -0.4414 0.5679 +vn -0.8097 -0.3285 0.4863 +vn -0.9254 -0.2921 0.2415 +vn -0.9806 -0.1112 0.1613 +vn -0.9848 -0.1302 0.1149 +vn -0.9315 -0.3203 0.1724 +vn -0.9190 -0.2590 0.2974 +vn -0.9761 -0.0889 0.1984 +vn -0.8844 -0.3748 0.2781 +vn -0.4456 -0.7857 0.4290 +vn -0.4564 -0.8344 0.3088 +vn -0.8927 -0.4053 0.1970 +vn -0.8754 -0.3395 0.3440 +vn -0.4329 -0.7297 0.5293 +vn -0.9124 -0.2252 0.3419 +vn -0.9714 -0.0664 0.2279 +vn -0.9056 -0.1919 0.3782 +vn -0.9668 -0.0442 0.2518 +vn -0.6857 -0.3932 0.6125 +vn -0.8017 -0.2871 0.5242 +vn -0.6772 -0.3477 0.6485 +vn -0.7941 -0.2482 0.5548 +vn -0.8669 -0.3026 0.3962 +vn -0.4203 -0.6728 0.6088 +vn -0.8584 -0.2656 0.4388 +vn -0.4079 -0.6158 0.6741 +vn -0.8992 -0.1597 0.4074 +vn -0.9622 -0.0229 0.2712 +vn -0.8930 -0.1295 0.4311 +vn -0.9580 -0.0028 0.2869 +vn -0.8503 -0.2295 0.4736 +vn -0.3961 -0.5604 0.7274 +vn -0.8428 -0.1951 0.5016 +vn -0.3852 -0.5077 0.7706 +vn -0.6692 -0.3053 0.6775 +vn -0.7870 -0.2119 0.5794 +vn -0.5506 -0.3778 0.7444 +vn -0.5427 -0.3348 0.7703 +vn -0.6618 -0.2661 0.7009 +vn -0.7804 -0.1784 0.5993 +vn -0.8360 -0.1627 0.5241 +vn -0.3753 -0.4582 0.8057 +vn -0.9540 0.0159 0.2995 +vn -0.9502 0.0331 0.3098 +vn -0.8299 -0.1325 0.5420 +vn -0.3666 -0.4122 0.8341 +vn -0.8872 -0.1013 0.4501 +vn -0.8818 -0.0754 0.4655 +vn -0.8245 -0.1044 0.5561 +vn -0.3590 -0.3695 0.8571 +vn -0.9468 0.0490 0.3180 +vn -0.9437 0.0635 0.3247 +vn -0.8199 -0.0785 0.5671 +vn -0.3526 -0.3301 0.8756 +vn -0.8769 -0.0515 0.4779 +vn -0.7743 -0.1476 0.6154 +vn -0.7687 -0.1193 0.6284 +vn -0.8723 -0.0296 0.4881 +vn -0.8160 -0.0564 0.5752 +vn -0.3479 -0.2965 0.8894 +vn -0.9411 0.0759 0.3296 +vn -0.9388 0.0864 0.3335 +vn -0.8135 -0.0371 0.5804 +vn -0.3446 -0.2674 0.8998 +vn -0.8111 -0.0186 0.5846 +vn -0.3415 -0.2394 0.9089 +vn -0.9365 0.0965 0.3370 +vn -0.9346 0.1054 0.3396 +vn -0.8089 -0.0026 0.5879 +vn -0.3392 -0.2148 0.9158 +vn -0.8686 -0.0109 0.4955 +vn -0.7640 -0.0953 0.6382 +vn -0.7599 -0.0749 0.6457 +vn -0.8652 0.0049 0.5013 +vn -0.8620 0.0201 0.5065 +vn -0.7559 -0.0552 0.6523 +vn -0.7525 -0.0380 0.6575 +vn -0.8593 0.0335 0.5104 +vn -0.8569 0.0448 0.5135 +vn -0.9330 0.1129 0.3416 +vn -0.7496 -0.0235 0.6615 +vn -0.7468 -0.0098 0.6649 +vn -0.8547 0.0553 0.5162 +vn -0.9315 0.1199 0.3434 +vn -0.6343 -0.1219 0.7634 +vn -0.5134 -0.1764 0.8398 +vn -0.5093 -0.1542 0.8466 +vn -0.6305 -0.1018 0.7695 +vn -0.6387 -0.1450 0.7556 +vn -0.5181 -0.2017 0.8312 +vn -0.6272 -0.0848 0.7743 +vn -0.5058 -0.1355 0.8519 +vn -0.5025 -0.1178 0.8565 +vn -0.6241 -0.0688 0.7783 +vn -0.6433 -0.1689 0.7467 +vn -0.5230 -0.2281 0.8212 +vn -0.6486 -0.1970 0.7352 +vn -0.5287 -0.2589 0.8084 +vn -0.6549 -0.2301 0.7198 +vn -0.5354 -0.2952 0.7913 +vn -0.4035 -0.2186 0.8885 +vn -0.3085 -0.2506 0.9176 +vn -0.3041 -0.2264 0.9253 +vn -0.3993 -0.1952 0.8958 +vn -0.4084 -0.2454 0.8792 +vn -0.3134 -0.2782 0.9079 +vn -0.4134 -0.2732 0.8686 +vn -0.3186 -0.3069 0.8968 +vn -0.4193 -0.3058 0.8548 +vn -0.3245 -0.3405 0.8825 +vn -0.4263 -0.3441 0.8366 +vn -0.3316 -0.3800 0.8635 +vn -0.4338 -0.3859 0.8142 +vn -0.4420 -0.4313 0.7865 +vn -0.2516 -0.4063 0.8784 +vn -0.2445 -0.3661 0.8979 +vn -0.2384 -0.3320 0.9127 +vn -0.1713 -0.3507 0.9207 +vn -0.1661 -0.3213 0.9323 +vn -0.2332 -0.3028 0.9241 +vn -0.1105 -0.3661 0.9240 +vn -0.0745 -0.3745 0.9242 +vn -0.0695 -0.3450 0.9360 +vn -0.1054 -0.3366 0.9357 +vn -0.0618 -0.3772 0.9241 +vn -0.0570 -0.3476 0.9359 +vn -0.0456 -0.3795 0.9241 +vn -0.0420 -0.3498 0.9359 +vn -0.2282 -0.2747 0.9341 +vn -0.1610 -0.2930 0.9425 +vn -0.1566 -0.2682 0.9505 +vn -0.2238 -0.2501 0.9420 +vn -0.1006 -0.3081 0.9460 +vn -0.0646 -0.3165 0.9464 +vn -0.0604 -0.2917 0.9546 +vn -0.0963 -0.2833 0.9542 +vn -0.0525 -0.3191 0.9463 +vn -0.0484 -0.2942 0.9545 +vn -0.0385 -0.3212 0.9462 +vn -0.0354 -0.2961 0.9545 +vn -0.0285 -0.3812 0.9241 +vn -0.0262 -0.3513 0.9359 +vn -0.0110 -0.3821 0.9241 +vn -0.0101 -0.3522 0.9359 +vn 0.0093 -0.4583 0.8887 +vn 0.0085 -0.4172 0.9088 +vn 0.0318 -0.4573 0.8887 +vn 0.0289 -0.4163 0.9088 +vn -0.0240 -0.3226 0.9462 +vn -0.0221 -0.2974 0.9545 +vn -0.0093 -0.3233 0.9462 +vn -0.0086 -0.2981 0.9545 +vn 0.0078 -0.3822 0.9240 +vn 0.0071 -0.3523 0.9359 +vn 0.0265 -0.3813 0.9241 +vn 0.0244 -0.3515 0.9359 +vn -0.0450 -0.2731 0.9609 +vn -0.0419 -0.2532 0.9665 +vn -0.0538 -0.2506 0.9666 +vn -0.0570 -0.2705 0.9610 +vn -0.0328 -0.2749 0.9609 +vn -0.0303 -0.2549 0.9665 +vn -0.0928 -0.2621 0.9606 +vn -0.1529 -0.2472 0.9568 +vn -0.0896 -0.2422 0.9661 +vn -0.1494 -0.2275 0.9623 +vn -0.2201 -0.2293 0.9481 +vn -0.3004 -0.2059 0.9313 +vn -0.2166 -0.2097 0.9535 +vn -0.2969 -0.1867 0.9365 +vn -0.0205 -0.2760 0.9609 +vn -0.0190 -0.2560 0.9665 +vn -0.0080 -0.2767 0.9609 +vn -0.0074 -0.2566 0.9665 +vn -0.0865 -0.2235 0.9709 +vn -0.1461 -0.2089 0.9670 +vn -0.0508 -0.2319 0.9714 +vn -0.0481 -0.2142 0.9756 +vn -0.0838 -0.2059 0.9750 +vn -0.1429 -0.1914 0.9711 +vn -0.0389 -0.2345 0.9713 +vn -0.0361 -0.2168 0.9755 +vn -0.0280 -0.2361 0.9713 +vn -0.0258 -0.2184 0.9755 +vn -0.3956 -0.1753 0.9015 +vn -0.3922 -0.1567 0.9064 +vn -0.2133 -0.1913 0.9581 +vn -0.2937 -0.1686 0.9409 +vn -0.2102 -0.1739 0.9621 +vn -0.2906 -0.1515 0.9448 +vn -0.3890 -0.1391 0.9107 +vn -0.4994 -0.1013 0.8604 +vn -0.3860 -0.1226 0.9143 +vn -0.4965 -0.0857 0.8638 +vn -0.6211 -0.0537 0.7819 +vn -0.7442 0.0030 0.6679 +vn -0.6184 -0.0395 0.7849 +vn -0.7418 0.0151 0.6705 +vn -0.2072 -0.1575 0.9655 +vn -0.2877 -0.1354 0.9481 +vn -0.1400 -0.1749 0.9746 +vn -0.1372 -0.1593 0.9777 +vn -0.2045 -0.1421 0.9685 +vn -0.2849 -0.1202 0.9510 +vn -0.8526 0.0653 0.5185 +vn -0.9300 0.1265 0.3450 +vn -0.8506 0.0747 0.5205 +vn -0.9286 0.1327 0.3464 +vn -0.3831 -0.1071 0.9175 +vn -0.4937 -0.0710 0.8667 +vn -0.3804 -0.0924 0.9202 +vn -0.4911 -0.0571 0.8692 +vn -0.6158 -0.0262 0.7875 +vn -0.7395 0.0265 0.6727 +vn -0.6133 -0.0136 0.7897 +vn -0.7373 0.0373 0.6745 +vn -0.8067 0.0372 0.5898 +vn -0.3383 -0.1547 0.9282 +vn -0.3379 -0.1737 0.9250 +vn -0.8071 0.0246 0.5899 +vn -0.8068 0.0491 0.5888 +vn -0.3394 -0.1366 0.9307 +vn -0.8078 0.0114 0.5893 +vn -0.3383 -0.1937 0.9209 +vn -0.8487 0.0835 0.5222 +vn -0.9274 0.1386 0.3475 +vn -0.8469 0.0918 0.5237 +vn -0.9262 0.1441 0.3485 +vn -0.8073 0.0605 0.5871 +vn -0.3413 -0.1193 0.9324 +vn -0.8082 0.0713 0.5846 +vn -0.3439 -0.1028 0.9334 +vn -0.8095 0.0817 0.5814 +vn -0.3474 -0.0870 0.9337 +vn -0.9250 0.1494 0.3493 +vn -0.9239 0.1543 0.3501 +vn -0.8113 0.0916 0.5774 +vn -0.3518 -0.0717 0.9333 +vn -0.8453 0.0997 0.5249 +vn -0.7352 0.0474 0.6762 +vn -0.7333 0.0570 0.6775 +vn -0.8437 0.1071 0.5260 +vn -0.8422 0.1142 0.5269 +vn -0.9229 0.1590 0.3507 +vn -0.7314 0.0661 0.6787 +vn -0.7297 0.0747 0.6797 +vn -0.8408 0.1208 0.5277 +vn -0.9219 0.1634 0.3512 +vn -0.6110 -0.0017 0.7916 +vn -0.4886 -0.0440 0.8714 +vn -0.4863 -0.0316 0.8732 +vn -0.6088 0.0096 0.7932 +vn -0.6068 0.0202 0.7946 +vn -0.4841 -0.0198 0.8748 +vn -0.4820 -0.0087 0.8761 +vn -0.6048 0.0303 0.7958 +vn -0.3779 -0.0785 0.9225 +vn -0.2823 -0.1059 0.9535 +vn -0.2799 -0.0923 0.9556 +vn -0.3754 -0.0653 0.9246 +vn -0.3732 -0.0529 0.9262 +vn -0.2776 -0.0795 0.9574 +vn -0.2753 -0.0673 0.9590 +vn -0.3710 -0.0411 0.9277 +vn -0.2019 -0.1275 0.9711 +vn -0.1346 -0.1445 0.9803 +vn -0.1321 -0.1306 0.9826 +vn -0.1994 -0.1136 0.9733 +vn -0.1970 -0.1006 0.9752 +vn -0.1297 -0.1174 0.9846 +vn -0.1275 -0.1048 0.9863 +vn -0.1948 -0.0881 0.9769 +vn -0.3695 -0.0326 0.9287 +vn -0.4805 -0.0006 0.8770 +vn -0.2738 -0.0585 0.9600 +vn -0.2731 -0.0547 0.9604 +vn -0.3688 -0.0290 0.9291 +vn -0.4798 0.0028 0.8774 +vn -0.1932 -0.0792 0.9780 +vn -0.1259 -0.0958 0.9874 +vn -0.1252 -0.0919 0.9879 +vn -0.1925 -0.0753 0.9784 +vn -0.0735 -0.1309 0.9887 +vn -0.0387 -0.1391 0.9895 +vn -0.0379 -0.1262 0.9913 +vn -0.0724 -0.1181 0.9904 +vn -0.0751 -0.1444 0.9867 +vn -0.0399 -0.1526 0.9875 +vn -0.6034 0.0377 0.7965 +vn -0.7285 0.0810 0.6802 +vn -0.6028 0.0408 0.7968 +vn -0.7280 0.0836 0.6805 +vn -0.0721 -0.1087 0.9915 +vn -0.0382 -0.1167 0.9924 +vn -0.0394 -0.1124 0.9929 +vn -0.0727 -0.1045 0.9919 +vn -0.8398 0.1257 0.5281 +vn -0.9213 0.1666 0.3514 +vn -0.8395 0.1277 0.5282 +vn -0.9210 0.1680 0.3515 +vn -0.8137 0.1011 0.5725 +vn -0.8165 0.1103 0.5667 +vn -0.3572 -0.0570 0.9323 +vn -0.3637 -0.0427 0.9305 +vn -0.8200 0.1174 0.5602 +vn -0.3718 -0.0314 0.9278 +vn -0.8233 0.1211 0.5546 +vn -0.3792 -0.0257 0.9250 +vn -0.5997 0.0542 0.7984 +vn -0.7252 0.0948 0.6820 +vn -0.4766 0.0179 0.8789 +vn -0.4713 0.0455 0.8808 +vn -0.5948 0.0790 0.8000 +vn -0.7208 0.1157 0.6834 +vn -0.8241 0.1307 0.5512 +vn -0.3797 -0.0106 0.9250 +vn -0.9195 0.1734 0.3529 +vn -0.9171 0.1838 0.3537 +vn -0.8206 0.1464 0.5524 +vn -0.3739 0.0154 0.9273 +vn -0.8371 0.1362 0.5298 +vn -0.8337 0.1521 0.5309 +vn -0.8170 0.1650 0.5526 +vn -0.3673 0.0454 0.9290 +vn -0.9142 0.1961 0.3547 +vn -0.8293 0.1710 0.5320 +vn -0.7153 0.1406 0.6846 +vn -0.7073 0.1763 0.6846 +vn -0.8229 0.1982 0.5325 +vn -0.5885 0.1086 0.8012 +vn -0.4647 0.0785 0.8820 +vn -0.4552 0.1258 0.8815 +vn -0.5796 0.1511 0.8008 +vn -0.8146 0.2341 0.5306 +vn -0.6969 0.2234 0.6815 +vn -0.6839 0.2821 0.6728 +vn -0.8042 0.2790 0.5247 +vn -0.5679 0.2070 0.7967 +vn -0.4428 0.1881 0.8767 +vn -0.4273 0.2655 0.8643 +vn -0.5533 0.2767 0.7857 +vn -0.7916 0.3344 0.5114 +vn -0.6683 0.3537 0.6544 +vn -0.6508 0.4354 0.6220 +vn -0.7773 0.3983 0.4870 +vn -0.8888 0.3026 0.3441 +vn -0.8789 0.3455 0.3288 +vn -0.7842 0.3217 0.5306 +vn -0.3097 0.2891 0.9058 +vn -0.7705 0.3857 0.5075 +vn -0.2862 0.3883 0.8760 +vn -0.5358 0.3607 0.7634 +vn -0.4088 0.3583 0.8393 +vn -0.3882 0.4630 0.7968 +vn -0.5163 0.4559 0.7250 +vn -0.4955 0.5576 0.6660 +vn -0.6319 0.5238 0.5712 +vn -0.3665 0.5738 0.7324 +vn -0.3462 0.6801 0.6462 +vn -0.4762 0.6551 0.5866 +vn -0.6143 0.6089 0.5019 +vn -0.2526 0.5780 0.7759 +vn -0.1557 0.5750 0.8032 +vn -0.1346 0.6906 0.7106 +vn -0.2317 0.6900 0.6857 +vn -0.2747 0.4612 0.8437 +vn -0.1781 0.4545 0.8728 +vn -0.2959 0.3504 0.8887 +vn -0.1994 0.3397 0.9191 +vn -0.3148 0.2518 0.9152 +vn -0.2185 0.2375 0.9465 +vn -0.3307 0.1692 0.9284 +vn -0.2345 0.1516 0.9602 +vn -0.3434 0.1027 0.9335 +vn -0.2475 0.0825 0.9654 +vn -0.0749 0.5681 0.8196 +vn -0.0076 0.5593 0.8289 +vn 0.0137 0.6784 0.7346 +vn -0.0536 0.6858 0.7258 +vn -0.0972 0.4454 0.8900 +vn -0.0300 0.4354 0.8998 +vn -0.3532 0.0521 0.9341 +vn -0.2573 0.0298 0.9659 +vn -0.3600 0.0167 0.9328 +vn -0.2642 -0.0071 0.9644 +vn -0.1186 0.3283 0.9371 +vn -0.0513 0.3169 0.9471 +vn -0.1377 0.2239 0.9648 +vn -0.0704 0.2113 0.9749 +vn -0.1538 0.1359 0.9787 +vn -0.0865 0.1222 0.9887 +vn -0.1668 0.0652 0.9838 +vn -0.0995 0.0505 0.9938 +vn -0.3655 -0.0128 0.9307 +vn -0.2699 -0.0378 0.9622 +vn -0.1767 0.0113 0.9842 +vn -0.1094 -0.0041 0.9940 +vn -0.1836 -0.0265 0.9826 +vn -0.1163 -0.0424 0.9923 +vn -0.1893 -0.0580 0.9802 +vn -0.1220 -0.0743 0.9897 +vn -0.0350 0.1112 0.9932 +vn -0.0024 0.1039 0.9946 +vn 0.0134 0.1938 0.9810 +vn -0.0190 0.2009 0.9794 +vn -0.0478 0.0391 0.9981 +vn -0.0152 0.0316 0.9994 +vn -0.0700 -0.0866 0.9938 +vn -0.0371 -0.0944 0.9948 +vn -0.0316 -0.0623 0.9976 +vn -0.0643 -0.0545 0.9964 +vn -0.0575 -0.0159 0.9982 +vn -0.0248 -0.0236 0.9994 +vn -0.0192 -0.0986 0.9949 +vn -0.0144 -0.0663 0.9977 +vn -0.0217 -0.1162 0.9930 +vn -0.0125 -0.1176 0.9930 +vn -0.0105 -0.0999 0.9949 +vn -0.0071 -0.0674 0.9977 +vn -0.0086 -0.0276 0.9996 +vn -0.0003 0.0277 0.9996 +vn -0.0030 -0.0284 0.9996 +vn 0.0029 0.0272 0.9996 +vn 0.0106 0.1002 0.9949 +vn 0.0241 0.1904 0.9814 +vn 0.0105 0.1002 0.9949 +vn 0.0200 0.1909 0.9814 +vn -0.0000 0.3071 0.9517 +vn 0.0323 0.3003 0.9533 +vn 0.0534 0.4197 0.9061 +vn 0.0212 0.4263 0.9043 +vn 0.0400 0.2974 0.9539 +vn 0.0579 0.4174 0.9069 +vn 0.0312 0.2986 0.9539 +vn 0.0437 0.4193 0.9068 +vn 0.0434 0.5509 0.8334 +vn 0.0755 0.5447 0.8352 +vn 0.0968 0.6647 0.7408 +vn 0.0647 0.6706 0.7390 +vn 0.0766 0.5431 0.8362 +vn 0.0946 0.6639 0.7418 +vn 0.0567 0.5457 0.8361 +vn 0.0692 0.6672 0.7417 +vn 0.0070 0.1005 0.9949 +vn 0.0134 0.1915 0.9814 +vn 0.0019 0.0273 0.9996 +vn 0.0008 0.0272 0.9996 +vn 0.0029 0.1005 0.9949 +vn 0.0055 0.1917 0.9814 +vn 0.0832 0.7750 0.6264 +vn 0.0323 0.7821 0.6223 +vn 0.1153 0.7694 0.6283 +vn 0.1298 0.8520 0.5072 +vn 0.0977 0.8573 0.5054 +vn 0.0465 0.8639 0.5015 +vn 0.0209 0.2995 0.9539 +vn 0.0293 0.4205 0.9068 +vn 0.0086 0.2998 0.9540 +vn 0.0121 0.4211 0.9069 +vn 0.1102 0.7693 0.6293 +vn 0.1224 0.8525 0.5081 +vn 0.0801 0.7732 0.6291 +vn 0.0886 0.8568 0.5080 +vn 0.0381 0.5473 0.8361 +vn 0.0466 0.6691 0.7417 +vn 0.0158 0.5481 0.8363 +vn 0.0193 0.6702 0.7420 +vn -0.0352 0.7885 0.6141 +vn -0.1163 0.7913 0.6002 +vn -0.0212 0.8693 0.4939 +vn -0.1027 0.8704 0.4815 +vn -0.2137 0.7877 0.5778 +vn -0.3287 0.7728 0.5429 +vn -0.2006 0.8640 0.4618 +vn -0.3162 0.8447 0.4319 +vn 0.1055 0.9031 0.4162 +vn 0.0542 0.9092 0.4128 +vn 0.1378 0.8981 0.4177 +vn 0.1398 0.9101 0.3901 +vn 0.1077 0.9151 0.3887 +vn 0.0563 0.9209 0.3857 +vn 0.1292 0.8991 0.4183 +vn 0.1308 0.9113 0.3905 +vn 0.0933 0.9035 0.4182 +vn 0.0944 0.9157 0.3905 +vn -0.0139 0.9136 0.4064 +vn -0.0961 0.9132 0.3960 +vn -0.0121 0.9249 0.3799 +vn -0.0945 0.9240 0.3705 +vn 0.0630 0.9061 0.4183 +vn 0.0638 0.9183 0.3906 +vn 0.0598 0.8592 0.5081 +vn 0.0248 0.8608 0.5083 +vn 0.0262 0.9079 0.4184 +vn 0.0265 0.9202 0.3906 +vn -0.1947 0.9044 0.3797 +vn -0.3111 0.8816 0.3550 +vn -0.1936 0.9144 0.3555 +vn -0.3106 0.8904 0.3328 +vn -0.4595 0.7402 0.4909 +vn -0.5991 0.6829 0.4180 +vn -0.4479 0.8054 0.3882 +vn -0.5889 0.7387 0.3280 +vn -0.4440 0.8374 0.3190 +vn -0.5861 0.7641 0.2696 +vn -0.4441 0.8445 0.2995 +vn -0.5868 0.7690 0.2535 +vn -0.7240 0.6580 0.2072 +vn -0.7256 0.6404 0.2518 +vn -0.7251 0.6604 0.1953 +vn -0.7339 0.5969 0.3241 +vn -0.8473 0.4853 0.2156 +vn -0.8568 0.4436 0.2629 +vn -0.7468 0.5375 0.3916 +vn -0.7216 0.6138 0.3202 +vn -0.1918 0.8257 0.5305 +vn -0.2179 0.7055 0.6744 +vn -0.7351 0.5481 0.3989 +vn -0.0184 0.9081 0.4184 +vn -0.0187 0.9204 0.3906 +vn -0.0175 0.8610 0.5083 +vn -0.0597 0.8591 0.5083 +vn -0.0630 0.9061 0.4184 +vn -0.0638 0.9183 0.3906 +vn 0.0540 0.7754 0.6292 +vn 0.0224 0.7767 0.6294 +vn -0.0158 0.7769 0.6294 +vn -0.0136 0.6703 0.7420 +vn -0.0465 0.6688 0.7420 +vn -0.0539 0.7752 0.6294 +vn -0.0111 0.5482 0.8363 +vn -0.0085 0.4212 0.9069 +vn -0.0292 0.4202 0.9070 +vn -0.0380 0.5470 0.8363 +vn -0.1073 0.9019 0.4184 +vn -0.1088 0.9141 0.3906 +vn -0.1018 0.8552 0.5083 +vn -0.1436 0.8491 0.5083 +vn -0.1515 0.8955 0.4184 +vn -0.1535 0.9077 0.3906 +vn -0.0918 0.7716 0.6294 +vn -0.0792 0.6657 0.7420 +vn -0.1118 0.6610 0.7420 +vn -0.1296 0.7662 0.6294 +vn -0.1952 0.8870 0.4184 +vn -0.1979 0.8990 0.3906 +vn -0.1851 0.8410 0.5083 +vn -0.2262 0.8310 0.5083 +vn -0.2385 0.8764 0.4184 +vn -0.2417 0.8883 0.3906 +vn -0.1670 0.7589 0.6294 +vn -0.1441 0.6548 0.7420 +vn -0.1761 0.6469 0.7420 +vn -0.2041 0.7498 0.6294 +vn -0.0648 0.5445 0.8363 +vn -0.0498 0.4183 0.9070 +vn -0.0702 0.4153 0.9070 +vn -0.0914 0.5406 0.8363 +vn -0.1179 0.5355 0.8363 +vn -0.0905 0.4114 0.9070 +vn -0.1106 0.4064 0.9070 +vn -0.1440 0.5290 0.8363 +vn -0.2812 0.8636 0.4184 +vn -0.2850 0.8753 0.3906 +vn -0.2667 0.8188 0.5083 +vn -0.3065 0.8048 0.5083 +vn -0.3233 0.8488 0.4184 +vn -0.3276 0.8603 0.3906 +vn -0.2406 0.7389 0.6294 +vn -0.2076 0.6375 0.7420 +vn -0.2386 0.6265 0.7420 +vn -0.2766 0.7262 0.6294 +vn -0.3645 0.8319 0.4184 +vn -0.3695 0.8432 0.3906 +vn -0.3456 0.7888 0.5083 +vn -0.3839 0.7709 0.5083 +vn -0.4049 0.8130 0.4184 +vn -0.4104 0.8240 0.3906 +vn -0.3119 0.7117 0.6294 +vn -0.2691 0.6141 0.7420 +vn -0.2989 0.6001 0.7420 +vn -0.3464 0.6956 0.6294 +vn -0.1698 0.5213 0.8363 +vn -0.1304 0.4005 0.9070 +vn -0.1499 0.3937 0.9070 +vn -0.1951 0.5124 0.8363 +vn -0.2201 0.5022 0.8363 +vn -0.1691 0.3858 0.9070 +vn -0.1878 0.3771 0.9069 +vn -0.2444 0.4908 0.8363 +vn -0.4376 0.7959 0.4183 +vn -0.4435 0.8067 0.3906 +vn -0.4150 0.7547 0.5081 +vn -0.4402 0.7404 0.5080 +vn -0.4641 0.7808 0.4182 +vn -0.4702 0.7915 0.3905 +vn -0.3745 0.6811 0.6292 +vn -0.3232 0.5877 0.7417 +vn -0.3430 0.5764 0.7417 +vn -0.3973 0.6681 0.6291 +vn -0.4947 0.7618 0.4182 +vn -0.5013 0.7722 0.3904 +vn -0.4690 0.7224 0.5081 +vn -0.4753 0.7189 0.5072 +vn -0.5020 0.7573 0.4177 +vn -0.5089 0.7673 0.3902 +vn -0.4749 0.7754 0.4162 +vn -0.4308 0.8024 0.4129 +vn -0.4376 0.8121 0.3859 +vn -0.4819 0.7852 0.3889 +vn -0.4486 0.7372 0.5053 +vn -0.4049 0.7647 0.5014 +vn -0.4230 0.6520 0.6293 +vn -0.3645 0.5628 0.7419 +vn -0.3668 0.5628 0.7408 +vn -0.4275 0.6500 0.6282 +vn -0.4010 0.6685 0.6264 +vn -0.3576 0.6965 0.6221 +vn -0.3403 0.5815 0.7389 +vn -0.2973 0.6099 0.7346 +vn -0.3708 0.8350 0.4066 +vn -0.2960 0.8691 0.3963 +vn -0.3019 0.8782 0.3710 +vn -0.3776 0.8463 0.3759 +vn -0.3456 0.7979 0.4939 +vn -0.2721 0.8332 0.4814 +vn -0.2975 0.4607 0.8362 +vn -0.2278 0.3545 0.9069 +vn -0.2246 0.3586 0.9061 +vn -0.2972 0.4627 0.8352 +vn -0.2806 0.4714 0.8361 +vn -0.2157 0.3622 0.9068 +vn -0.2028 0.9025 0.3801 +vn -0.0875 0.9306 0.3554 +vn -0.0916 0.9382 0.3337 +vn -0.2080 0.9109 0.3563 +vn -0.1805 0.8684 0.4618 +vn -0.0675 0.8994 0.4319 +vn -0.2992 0.7306 0.6138 +vn -0.2267 0.7673 0.5998 +vn -0.2393 0.6450 0.7258 +vn -0.1678 0.6833 0.7106 +vn -0.2708 0.4818 0.8334 +vn -0.2280 0.5109 0.8289 +vn -0.1983 0.3779 0.9044 +vn -0.1556 0.4077 0.8998 +vn 0.0516 0.9462 0.3195 +vn 0.2113 0.9393 0.2702 +vn 0.2100 0.9439 0.2547 +vn 0.0488 0.9525 0.3006 +vn 0.0685 0.9190 0.3882 +vn 0.2243 0.9176 0.3281 +vn -0.1368 0.8050 0.5773 +vn -0.0264 0.8398 0.5423 +vn -0.0794 0.7236 0.6856 +vn 0.0286 0.7627 0.6461 +vn 0.3809 0.9010 0.2078 +vn 0.3810 0.9035 0.1964 +vn 0.3895 0.8858 0.2521 +vn 0.1060 0.8652 0.4902 +vn 0.2567 0.8718 0.4172 +vn 0.1570 0.7946 0.5864 +vn 0.3019 0.8107 0.5017 +vn 0.4150 0.8505 0.3232 +vn 0.5646 0.7968 0.2150 +vn 0.4520 0.8015 0.3915 +vn 0.5912 0.7625 0.2628 +vn 0.3976 0.8605 0.3185 +vn -0.1762 0.8292 0.5305 +vn 0.4372 0.8063 0.3984 +vn -0.0997 0.7315 0.6745 +vn 0.2154 0.7144 0.6657 +vn 0.3533 0.7412 0.5708 +vn 0.0915 0.6750 0.7322 +vn 0.1579 0.5832 0.7968 +vn 0.2771 0.6305 0.7250 +vn 0.4078 0.6684 0.6220 +vn -0.0136 0.6309 0.7758 +vn -0.1002 0.5874 0.8031 +vn -0.0293 0.4872 0.8728 +vn 0.0556 0.5339 0.8437 +vn 0.3348 0.5523 0.7635 +vn 0.4580 0.6017 0.6544 +vn 0.2205 0.4969 0.8393 +vn 0.2763 0.4203 0.8643 +vn 0.3860 0.4833 0.7858 +vn 0.5024 0.5431 0.6728 +vn 0.1213 0.4422 0.8887 +vn 0.0383 0.3920 0.9192 +vn 0.0985 0.3072 0.9465 +vn 0.1799 0.3606 0.9152 +vn 0.5781 0.6359 0.5113 +vn 0.6798 0.6478 0.3438 +vn 0.6527 0.6826 0.3286 +vn 0.5383 0.6878 0.4870 +vn 0.6129 0.5908 0.5247 +vn 0.7030 0.6182 0.3516 +vn 0.6412 0.5543 0.5306 +vn 0.7215 0.5947 0.3547 +vn 0.5389 0.4952 0.6815 +vn 0.5680 0.4569 0.6846 +vn 0.6637 0.5253 0.5325 +vn 0.7362 0.5759 0.3554 +vn 0.4285 0.4261 0.7967 +vn 0.3229 0.3565 0.8767 +vn 0.3603 0.3053 0.8815 +vn 0.4626 0.3804 0.8008 +vn 0.6809 0.5033 0.5320 +vn 0.5902 0.4278 0.6846 +vn 0.6056 0.4076 0.6834 +vn 0.6928 0.4880 0.5309 +vn 0.7475 0.5617 0.3547 +vn 0.7552 0.5519 0.3537 +vn 0.2291 0.2922 0.9285 +vn 0.1492 0.2360 0.9602 +vn 0.1899 0.1787 0.9654 +vn 0.2686 0.2373 0.9336 +vn 0.4886 0.3455 0.8012 +vn 0.3888 0.2663 0.8820 +vn 0.4087 0.2391 0.8808 +vn 0.5067 0.3214 0.8000 +vn 0.2987 0.1955 0.9341 +vn 0.2211 0.1350 0.9659 +vn 0.2428 0.1045 0.9644 +vn 0.3197 0.1663 0.9328 +vn 0.0825 0.1879 0.9787 +vn 0.0272 0.1472 0.9887 +vn 0.0691 0.0876 0.9938 +vn 0.1240 0.1291 0.9838 +vn 0.0310 0.2609 0.9649 +vn -0.0248 0.2213 0.9749 +vn 0.1556 0.0843 0.9842 +vn 0.1010 0.0421 0.9940 +vn 0.1233 0.0103 0.9923 +vn 0.1778 0.0530 0.9826 +vn 0.3371 0.1418 0.9307 +vn 0.4233 0.2158 0.8799 +vn 0.2608 0.0790 0.9622 +vn 0.2708 0.0650 0.9604 +vn 0.3468 0.1285 0.9291 +vn 0.4343 0.2040 0.8773 +vn -0.0302 0.3477 0.9371 +vn -0.0865 0.3092 0.9471 +vn -0.0988 0.4450 0.8901 +vn 0.5216 0.3009 0.7984 +vn 0.6184 0.3905 0.6820 +vn 0.5300 0.2901 0.7968 +vn 0.6235 0.3808 0.6828 +vn 0.7027 0.4750 0.5298 +vn 0.7617 0.5434 0.3529 +vn 0.7083 0.4683 0.5282 +vn 0.7654 0.5391 0.3515 +vn 0.1961 0.0268 0.9802 +vn 0.1419 -0.0162 0.9897 +vn 0.1522 -0.0308 0.9879 +vn 0.2063 0.0125 0.9784 +vn 0.3490 0.1255 0.9287 +vn 0.4364 0.2012 0.8770 +vn 0.2730 0.0619 0.9600 +vn 0.2782 0.0546 0.9590 +vn 0.3540 0.1184 0.9277 +vn 0.4411 0.1945 0.8761 +vn 0.2086 0.0093 0.9780 +vn 0.1545 -0.0341 0.9874 +vn 0.1597 -0.0416 0.9863 +vn 0.2138 0.0018 0.9769 +vn 0.5319 0.2875 0.7965 +vn 0.6243 0.3784 0.6834 +vn 0.5362 0.2815 0.7958 +vn 0.6309 0.3742 0.6797 +vn 0.6933 0.4646 0.5510 +vn 0.3490 0.1495 0.9251 +vn 0.3328 0.1709 0.9274 +vn 0.6834 0.4774 0.5523 +vn 0.6965 0.4556 0.5543 +vn 0.3546 0.1356 0.9251 +vn 0.6723 0.4927 0.5525 +vn 0.3144 0.1955 0.9290 +vn 0.2879 0.2306 0.9295 +vn 0.6563 0.5147 0.5517 +vn 0.7095 0.4667 0.5281 +vn 0.7662 0.5380 0.3514 +vn 0.7124 0.4627 0.5277 +vn 0.7681 0.5354 0.3512 +vn 0.7165 0.4572 0.5269 +vn 0.7709 0.5318 0.3507 +vn 0.6361 0.3671 0.6787 +vn 0.6416 0.3596 0.6775 +vn 0.7208 0.4514 0.5260 +vn 0.7738 0.5279 0.3501 +vn 0.5422 0.2731 0.7946 +vn 0.4477 0.1852 0.8748 +vn 0.4546 0.1755 0.8732 +vn 0.5486 0.2643 0.7932 +vn 0.3609 0.1086 0.9263 +vn 0.2853 0.0444 0.9574 +vn 0.2928 0.0337 0.9556 +vn 0.3682 0.0983 0.9245 +vn 0.5553 0.2550 0.7916 +vn 0.6474 0.3517 0.6762 +vn 0.4619 0.1652 0.8714 +vn 0.4697 0.1544 0.8692 +vn 0.5624 0.2452 0.7897 +vn 0.6535 0.3434 0.6745 +vn 0.2210 -0.0085 0.9752 +vn 0.1670 -0.0521 0.9846 +vn 0.1747 -0.0631 0.9826 +vn 0.2287 -0.0194 0.9733 +vn 0.3759 0.0874 0.9225 +vn 0.3007 0.0224 0.9535 +vn 0.3091 0.0105 0.9510 +vn 0.3840 0.0759 0.9202 +vn 0.2367 -0.0309 0.9711 +vn 0.1828 -0.0747 0.9803 +vn 0.1914 -0.0869 0.9777 +vn 0.2452 -0.0431 0.9685 +vn 0.1216 -0.0880 0.9887 +vn 0.0936 -0.1099 0.9895 +vn 0.1004 -0.1217 0.9875 +vn 0.1287 -0.0996 0.9867 +vn 0.1152 -0.0769 0.9904 +vn 0.0875 -0.0985 0.9913 +vn 0.1362 -0.1117 0.9844 +vn 0.1078 -0.1339 0.9851 +vn 0.1158 -0.1467 0.9824 +vn 0.1444 -0.1243 0.9817 +vn 0.2542 -0.0560 0.9655 +vn 0.3179 -0.0021 0.9481 +vn 0.2005 -0.0999 0.9746 +vn 0.2101 -0.1137 0.9710 +vn 0.2638 -0.0696 0.9621 +vn 0.3273 -0.0155 0.9448 +vn 0.1110 -0.0684 0.9915 +vn 0.0838 -0.0898 0.9924 +vn 0.1097 -0.0644 0.9919 +vn 0.0831 -0.0853 0.9929 +vn 0.3926 0.0637 0.9175 +vn 0.4779 0.1429 0.8667 +vn 0.4018 0.0507 0.9143 +vn 0.4865 0.1307 0.8638 +vn 0.0998 -0.0493 0.9938 +vn 0.0734 -0.0700 0.9948 +vn 0.0812 -0.0225 0.9964 +vn 0.0549 -0.0432 0.9976 +vn 0.0820 -0.1188 0.9895 +vn 0.0893 -0.1301 0.9875 +vn 0.0750 -0.1080 0.9913 +vn 0.0682 -0.1126 0.9913 +vn 0.0750 -0.1234 0.9895 +vn 0.0822 -0.1348 0.9875 +vn 0.0589 0.0096 0.9982 +vn 0.0325 -0.0109 0.9994 +vn 0.0269 0.0555 0.9981 +vn 0.0006 0.0351 0.9994 +vn 0.0702 -0.1000 0.9925 +vn 0.0683 -0.0964 0.9930 +vn 0.0608 -0.1015 0.9930 +vn 0.0631 -0.1048 0.9925 +vn 0.0587 -0.0814 0.9950 +vn 0.0408 -0.0542 0.9977 +vn 0.0347 -0.0582 0.9977 +vn 0.0515 -0.0862 0.9949 +vn -0.0150 0.1155 0.9932 +vn -0.0413 0.0953 0.9946 +vn -0.0672 0.1902 0.9794 +vn -0.0935 0.1703 0.9809 +vn 0.0193 -0.0215 0.9996 +vn -0.0114 0.0252 0.9996 +vn -0.0140 0.0235 0.9996 +vn 0.0147 -0.0246 0.9996 +vn 0.0484 -0.0879 0.9950 +vn 0.0571 -0.1036 0.9930 +vn 0.0327 -0.0593 0.9977 +vn 0.0302 -0.0607 0.9977 +vn 0.0448 -0.0899 0.9949 +vn 0.0527 -0.1059 0.9930 +vn 0.0138 -0.0250 0.9996 +vn -0.0132 0.0240 0.9996 +vn -0.0121 0.0243 0.9996 +vn 0.0128 -0.0257 0.9996 +vn -0.0517 0.0865 0.9949 +vn -0.1018 0.1627 0.9814 +vn -0.0983 0.1649 0.9814 +vn -0.0516 0.0865 0.9949 +vn 0.0591 -0.1071 0.9925 +vn 0.0637 -0.1151 0.9913 +vn 0.0545 -0.1095 0.9925 +vn 0.0587 -0.1178 0.9913 +vn -0.0486 0.0883 0.9949 +vn -0.0926 0.1682 0.9814 +vn -0.0855 0.1716 0.9814 +vn -0.0448 0.0900 0.9949 +vn -0.1447 0.2630 0.9539 +vn -0.2032 0.3693 0.9068 +vn -0.1337 0.2684 0.9540 +vn -0.1537 0.2579 0.9539 +vn -0.1290 0.2787 0.9517 +vn -0.1553 0.2590 0.9533 +vn -0.1707 0.5471 0.8195 +vn -0.1612 0.2531 0.9539 +vn -0.2644 0.4807 0.8361 +vn -0.1204 0.2747 0.9540 +vn -0.0770 0.1756 0.9814 +vn -0.1067 0.2802 0.9540 +vn -0.0682 0.1792 0.9814 +vn -0.0403 0.0921 0.9949 +vn -0.0109 0.0249 0.9996 +vn -0.0358 0.0939 0.9949 +vn -0.0097 0.0254 0.9996 +vn -0.0929 0.2851 0.9540 +vn -0.0594 0.1823 0.9814 +vn -0.0788 0.2894 0.9540 +vn -0.0504 0.1850 0.9814 +vn 0.0115 -0.0263 0.9996 +vn 0.0272 -0.0621 0.9977 +vn 0.0102 -0.0268 0.9996 +vn 0.0241 -0.0634 0.9977 +vn -0.0311 0.0956 0.9949 +vn -0.0084 0.0259 0.9996 +vn -0.0264 0.0970 0.9949 +vn -0.0071 0.0262 0.9996 +vn -0.0645 0.2929 0.9540 +vn -0.0412 0.1873 0.9814 +vn -0.0500 0.2957 0.9540 +vn -0.0320 0.1891 0.9814 +vn 0.0403 -0.0920 0.9949 +vn 0.0475 -0.1083 0.9930 +vn 0.0358 -0.0939 0.9949 +vn 0.0421 -0.1105 0.9930 +vn 0.0089 -0.0273 0.9996 +vn 0.0210 -0.0645 0.9977 +vn 0.0075 -0.0277 0.9996 +vn 0.0178 -0.0654 0.9977 +vn -0.0216 0.0982 0.9949 +vn -0.0058 0.0266 0.9996 +vn -0.0168 0.0991 0.9949 +vn -0.0045 0.0268 0.9996 +vn -0.0354 0.2978 0.9540 +vn -0.0227 0.1904 0.9814 +vn -0.0208 0.2992 0.9540 +vn -0.0133 0.1913 0.9814 +vn -0.0061 0.2998 0.9540 +vn -0.0039 0.1917 0.9814 +vn -0.0119 0.0998 0.9949 +vn -0.0032 0.0270 0.9996 +vn -0.0070 0.1003 0.9949 +vn -0.0019 0.0271 0.9996 +vn 0.0062 -0.0280 0.9996 +vn 0.0146 -0.0662 0.9977 +vn 0.0048 -0.0283 0.9996 +vn 0.0113 -0.0668 0.9977 +vn -0.0020 0.1005 0.9949 +vn -0.0006 0.0272 0.9996 +vn 0.0034 -0.0285 0.9996 +vn 0.0080 -0.0673 0.9977 +vn 0.0020 -0.0286 0.9996 +vn 0.0047 -0.0676 0.9977 +vn 0.0006 -0.0287 0.9996 +vn 0.0014 -0.0678 0.9977 +vn -0.0008 -0.0287 0.9996 +vn -0.0020 -0.0678 0.9977 +vn -0.0020 -0.0285 0.9996 +vn -0.0047 -0.0676 0.9977 +vn 0.0119 -0.0997 0.9949 +vn 0.0140 -0.1174 0.9930 +vn 0.0197 -0.1166 0.9930 +vn 0.0168 -0.0990 0.9949 +vn 0.0070 -0.1002 0.9949 +vn 0.0082 -0.1180 0.9930 +vn -0.0070 -0.1001 0.9950 +vn -0.0083 -0.1180 0.9930 +vn -0.0034 -0.1182 0.9930 +vn -0.0029 -0.1004 0.9949 +vn 0.0020 -0.1004 0.9949 +vn 0.0024 -0.1182 0.9930 +vn -0.0087 -0.1220 0.9925 +vn -0.0094 -0.1312 0.9913 +vn -0.0038 -0.1315 0.9913 +vn -0.0035 -0.1222 0.9925 +vn -0.0133 -0.1216 0.9925 +vn -0.0146 -0.1308 0.9913 +vn 0.0025 -0.1223 0.9925 +vn 0.0027 -0.1316 0.9913 +vn 0.0091 -0.1313 0.9913 +vn 0.0085 -0.1220 0.9925 +vn 0.0145 -0.1214 0.9925 +vn 0.0156 -0.1307 0.9913 +vn 0.0219 -0.1297 0.9913 +vn 0.0204 -0.1206 0.9925 +vn 0.0216 -0.0981 0.9949 +vn 0.0254 -0.1155 0.9930 +vn 0.0311 -0.1141 0.9930 +vn 0.0264 -0.0969 0.9949 +vn 0.0263 -0.1194 0.9925 +vn 0.0283 -0.1285 0.9913 +vn 0.0346 -0.1270 0.9913 +vn 0.0321 -0.1180 0.9925 +vn 0.0311 -0.0955 0.9949 +vn 0.0366 -0.1125 0.9930 +vn 0.0379 -0.1163 0.9925 +vn 0.0407 -0.1251 0.9913 +vn 0.0468 -0.1230 0.9913 +vn 0.0435 -0.1143 0.9925 +vn 0.0491 -0.1120 0.9925 +vn 0.0528 -0.1205 0.9913 +vn 0.0447 -0.1373 0.9895 +vn 0.0489 -0.1501 0.9875 +vn 0.0562 -0.1475 0.9875 +vn 0.0514 -0.1349 0.9895 +vn 0.0379 -0.1393 0.9895 +vn 0.0415 -0.1523 0.9875 +vn 0.0699 -0.1263 0.9895 +vn 0.0765 -0.1381 0.9875 +vn 0.0644 -0.1292 0.9895 +vn 0.0704 -0.1413 0.9875 +vn 0.0579 -0.1322 0.9895 +vn 0.0634 -0.1446 0.9875 +vn 0.0972 -0.1419 0.9851 +vn 0.1055 -0.1545 0.9823 +vn 0.0898 -0.1468 0.9851 +vn 0.0977 -0.1596 0.9823 +vn 0.0834 -0.1505 0.9851 +vn 0.0908 -0.1636 0.9823 +vn 0.0767 -0.1540 0.9851 +vn 0.0834 -0.1675 0.9823 +vn 0.0691 -0.1576 0.9851 +vn 0.0751 -0.1714 0.9823 +vn 0.0612 -0.1608 0.9851 +vn 0.0666 -0.1749 0.9823 +vn 0.0310 -0.1410 0.9895 +vn 0.0339 -0.1542 0.9875 +vn 0.0241 -0.1423 0.9895 +vn 0.0263 -0.1556 0.9875 +vn 0.0533 -0.1636 0.9851 +vn 0.0579 -0.1779 0.9823 +vn 0.0452 -0.1660 0.9851 +vn 0.0491 -0.1805 0.9823 +vn 0.0171 -0.1434 0.9895 +vn 0.0187 -0.1567 0.9875 +vn 0.0100 -0.1440 0.9895 +vn 0.0109 -0.1575 0.9875 +vn 0.0370 -0.1681 0.9851 +vn 0.0402 -0.1827 0.9823 +vn 0.0287 -0.1697 0.9851 +vn 0.0312 -0.1845 0.9823 +vn 0.0029 -0.1443 0.9895 +vn 0.0032 -0.1578 0.9875 +vn -0.0042 -0.1443 0.9895 +vn -0.0045 -0.1578 0.9875 +vn 0.0203 -0.1709 0.9851 +vn 0.0221 -0.1858 0.9823 +vn 0.0119 -0.1717 0.9851 +vn 0.0130 -0.1867 0.9823 +vn 0.0629 -0.1930 0.9792 +vn 0.0681 -0.2091 0.9755 +vn 0.0783 -0.2055 0.9755 +vn 0.0723 -0.1897 0.9792 +vn 0.0533 -0.1959 0.9792 +vn 0.0577 -0.2121 0.9755 +vn 0.0436 -0.1983 0.9792 +vn 0.0473 -0.2147 0.9755 +vn 0.0339 -0.2002 0.9792 +vn 0.0367 -0.2168 0.9755 +vn 0.0815 -0.1859 0.9792 +vn 0.0882 -0.2014 0.9755 +vn 0.0980 -0.1968 0.9755 +vn 0.0905 -0.1817 0.9792 +vn 0.0035 -0.1720 0.9851 +vn 0.0038 -0.1871 0.9823 +vn -0.0050 -0.1720 0.9851 +vn -0.0054 -0.1870 0.9823 +vn 0.0985 -0.1775 0.9792 +vn 0.1068 -0.1922 0.9755 +vn 0.1151 -0.1874 0.9755 +vn 0.1062 -0.1731 0.9792 +vn -0.0104 -0.1440 0.9895 +vn -0.0114 -0.1574 0.9875 +vn -0.0163 -0.1435 0.9895 +vn -0.0180 -0.1568 0.9875 +vn -0.0218 -0.1202 0.9925 +vn -0.0229 -0.1295 0.9913 +vn -0.0246 -0.1422 0.9895 +vn -0.0266 -0.1555 0.9875 +vn -0.0125 -0.1716 0.9851 +vn -0.0137 -0.1866 0.9823 +vn -0.0198 -0.1709 0.9851 +vn -0.0217 -0.1859 0.9823 +vn -0.0769 -0.1585 0.9844 +vn -0.0416 -0.1668 0.9851 +vn -0.0789 -0.1734 0.9817 +vn -0.0435 -0.1818 0.9824 +vn -0.0287 -0.1696 0.9851 +vn -0.0310 -0.1845 0.9823 +vn -0.0808 -0.1886 0.9787 +vn -0.0457 -0.1975 0.9792 +vn -0.0334 -0.2002 0.9792 +vn -0.0237 -0.2016 0.9792 +vn -0.0149 -0.2025 0.9792 +vn -0.0162 -0.2193 0.9755 +vn -0.0063 -0.2198 0.9755 +vn -0.0058 -0.2029 0.9792 +vn -0.0175 -0.2371 0.9713 +vn -0.0068 -0.2376 0.9713 +vn 0.0041 -0.2030 0.9792 +vn 0.0045 -0.2198 0.9755 +vn 0.0152 -0.2193 0.9755 +vn 0.0141 -0.2025 0.9792 +vn 0.0048 -0.2377 0.9713 +vn 0.0052 -0.2566 0.9665 +vn 0.0178 -0.2561 0.9665 +vn 0.0165 -0.2371 0.9713 +vn 0.0056 -0.2767 0.9609 +vn 0.0061 -0.2982 0.9545 +vn 0.0207 -0.2975 0.9545 +vn 0.0192 -0.2761 0.9609 +vn 0.0240 -0.2016 0.9792 +vn 0.0260 -0.2183 0.9755 +vn 0.0281 -0.2361 0.9713 +vn 0.0303 -0.2549 0.9665 +vn 0.0428 -0.2531 0.9665 +vn 0.0396 -0.2344 0.9713 +vn 0.0511 -0.2322 0.9713 +vn 0.0552 -0.2507 0.9665 +vn 0.0674 -0.2477 0.9665 +vn 0.0624 -0.2294 0.9713 +vn 0.0327 -0.2749 0.9609 +vn 0.0352 -0.2961 0.9545 +vn 0.0497 -0.2940 0.9545 +vn 0.0462 -0.2729 0.9609 +vn 0.0595 -0.2703 0.9609 +vn 0.0641 -0.2912 0.9545 +vn 0.0783 -0.2878 0.9545 +vn 0.0727 -0.2671 0.9609 +vn 0.0736 -0.2260 0.9713 +vn 0.0795 -0.2441 0.9665 +vn 0.0914 -0.2399 0.9665 +vn 0.0846 -0.2222 0.9713 +vn 0.0857 -0.2632 0.9609 +vn 0.0923 -0.2836 0.9545 +vn 0.1061 -0.2787 0.9545 +vn 0.0985 -0.2587 0.9609 +vn 0.0954 -0.2177 0.9713 +vn 0.1030 -0.2351 0.9665 +vn 0.1144 -0.2298 0.9665 +vn 0.1060 -0.2128 0.9713 +vn 0.1111 -0.2535 0.9609 +vn 0.1197 -0.2731 0.9545 +vn 0.1329 -0.2669 0.9545 +vn 0.1234 -0.2478 0.9609 +vn 0.1155 -0.2078 0.9713 +vn 0.1247 -0.2243 0.9665 +vn 0.1345 -0.2186 0.9665 +vn 0.1245 -0.2025 0.9713 +vn 0.1345 -0.2419 0.9609 +vn 0.1450 -0.2606 0.9545 +vn 0.1564 -0.2539 0.9545 +vn 0.1451 -0.2357 0.9609 +vn 0.1298 -0.2963 0.9462 +vn 0.1414 -0.3227 0.9359 +vn 0.1571 -0.3154 0.9359 +vn 0.1442 -0.2896 0.9462 +vn 0.1151 -0.3023 0.9462 +vn 0.1254 -0.3293 0.9359 +vn 0.1573 -0.2827 0.9462 +vn 0.1713 -0.3079 0.9359 +vn 0.1850 -0.2999 0.9359 +vn 0.1698 -0.2754 0.9462 +vn 0.1555 -0.2289 0.9609 +vn 0.1442 -0.2122 0.9665 +vn 0.1674 -0.2467 0.9545 +vn 0.1774 -0.2393 0.9546 +vn 0.1653 -0.2216 0.9610 +vn 0.1541 -0.2049 0.9666 +vn 0.1002 -0.3076 0.9462 +vn 0.1091 -0.3350 0.9359 +vn 0.0849 -0.3121 0.9462 +vn 0.0925 -0.3400 0.9359 +vn 0.1337 -0.1965 0.9713 +vn 0.1237 -0.1817 0.9755 +vn 0.1435 -0.1891 0.9714 +vn 0.1337 -0.1742 0.9756 +vn 0.0695 -0.3159 0.9462 +vn 0.0757 -0.3441 0.9359 +vn 0.0539 -0.3189 0.9463 +vn 0.0588 -0.3474 0.9359 +vn 0.1143 -0.1677 0.9792 +vn 0.1245 -0.1601 0.9792 +vn 0.1531 -0.1377 0.9786 +vn 0.1624 -0.1517 0.9750 +vn 0.1723 -0.1666 0.9709 +vn 0.2203 -0.1283 0.9670 +vn 0.1829 -0.1823 0.9661 +vn 0.2311 -0.1437 0.9623 +vn 0.1943 -0.1990 0.9606 +vn 0.2426 -0.1602 0.9568 +vn 0.2063 -0.2167 0.9542 +vn 0.2739 -0.0840 0.9581 +vn 0.3373 -0.0297 0.9409 +vn 0.2846 -0.0994 0.9535 +vn 0.2960 -0.1157 0.9482 +vn 0.4115 0.0370 0.9107 +vn 0.4958 0.1178 0.8604 +vn 0.5863 0.2121 0.7818 +vn 0.5778 0.2237 0.7849 +vn 0.5699 0.2348 0.7875 +vn 0.6600 0.3345 0.6727 +vn 0.7352 0.4321 0.5223 +vn 0.7301 0.4389 0.5237 +vn 0.7253 0.4454 0.5249 +vn 0.7768 0.5239 0.3494 +vn 0.6962 0.4335 0.5722 +vn 0.3478 0.0980 0.9324 +vn 0.3476 0.1137 0.9307 +vn 0.6949 0.4430 0.5665 +vn 0.6980 0.4239 0.5771 +vn 0.3491 0.0823 0.9335 +vn 0.6951 0.4509 0.5599 +vn 0.3503 0.1273 0.9279 +vn 0.2206 -0.2375 0.9460 +vn 0.1916 -0.2601 0.9464 +vn 0.2079 -0.2839 0.9360 +vn 0.2370 -0.2613 0.9357 +vn 0.1816 -0.2676 0.9463 +vn 0.1977 -0.2916 0.9359 +vn 0.2540 -0.2859 0.9240 +vn 0.2249 -0.3086 0.9242 +vn 0.2144 -0.3164 0.9241 +vn 0.2340 -0.3454 0.9088 +vn 0.2008 -0.3253 0.9240 +vn 0.2192 -0.3550 0.9088 +vn 0.2570 -0.3795 0.8888 +vn 0.2409 -0.3900 0.8887 +vn 0.1859 -0.3340 0.9241 +vn 0.2030 -0.3646 0.9088 +vn 0.1704 -0.3422 0.9241 +vn 0.1860 -0.3735 0.9088 +vn 0.2230 -0.4005 0.8887 +vn 0.2448 -0.4396 0.8642 +vn 0.2044 -0.4103 0.8887 +vn 0.2243 -0.4504 0.8642 +vn 0.1534 -0.3501 0.9241 +vn 0.1675 -0.3822 0.9088 +vn 0.1361 -0.3572 0.9241 +vn 0.1485 -0.3899 0.9088 +vn 0.2684 -0.4820 0.8341 +vn 0.2939 -0.5277 0.7970 +vn 0.2460 -0.4939 0.8340 +vn 0.2693 -0.5407 0.7969 +vn 0.1840 -0.4199 0.8887 +vn 0.2019 -0.4609 0.8642 +vn 0.1632 -0.4284 0.8887 +vn 0.1791 -0.4702 0.8642 +vn 0.1184 -0.3635 0.9241 +vn 0.1292 -0.3968 0.9088 +vn 0.1004 -0.3688 0.9241 +vn 0.1096 -0.4026 0.9088 +vn 0.3212 -0.5766 0.7512 +vn 0.3500 -0.6282 0.6949 +vn 0.2943 -0.5908 0.7512 +vn 0.3206 -0.6437 0.6949 +vn 0.2214 -0.5053 0.8340 +vn 0.2424 -0.5533 0.7969 +vn 0.1964 -0.5156 0.8340 +vn 0.2150 -0.5645 0.7969 +vn 0.1419 -0.4359 0.8887 +vn 0.1558 -0.4784 0.8642 +vn 0.1204 -0.4423 0.8887 +vn 0.1321 -0.4855 0.8642 +vn 0.3797 -0.6815 0.6256 +vn 0.3478 -0.6984 0.6255 +vn 0.2649 -0.6046 0.7512 +vn 0.2886 -0.6587 0.6949 +vn 0.2349 -0.6168 0.7512 +vn 0.3131 -0.7146 0.6255 +vn 0.2044 -0.6276 0.7512 +vn 0.1870 -0.5744 0.7969 +vn 0.1708 -0.5246 0.8340 +vn 0.1449 -0.5323 0.8341 +vn 0.1186 -0.5388 0.8340 +vn 0.1082 -0.4914 0.8642 +vn 0.0542 -0.4552 0.8887 +vn 0.0493 -0.4143 0.9088 +vn 0.0765 -0.4520 0.8887 +vn 0.0696 -0.4114 0.9088 +vn 0.0985 -0.4477 0.8887 +vn 0.0897 -0.4075 0.9088 +vn 0.0452 -0.3796 0.9241 +vn 0.0416 -0.3499 0.9359 +vn 0.0637 -0.3769 0.9241 +vn 0.0066 -0.3234 0.9462 +vn 0.0224 -0.3227 0.9462 +vn 0.0822 -0.3733 0.9241 +vn 0.0382 -0.3212 0.9462 +vn 0.4938 0.7460 0.4468 +vn 0.6210 0.7235 0.3016 +vn 0.4898 0.7409 0.4595 +vn 0.0055 0.6037 0.7972 +vn 0.5368 0.6734 0.5084 +vn 0.0999 0.4742 0.8747 +vn 0.5763 0.6209 0.5314 +vn 0.1620 0.3938 0.9048 +vn 0.6091 0.5770 0.5441 +vn 0.2133 0.3272 0.9206 +vn 0.6350 0.5426 0.5499 +vn 0.2537 0.2747 0.9274 +vn -0.7561 0.4656 0.4599 +vn -0.8674 0.3954 0.3021 +vn -0.2568 0.5444 0.7985 +vn -0.7615 0.4692 0.4472 +vn 0.9600 0.0315 0.2782 +vn 0.7340 -0.5264 0.4292 +vn 0.9803 0.0071 0.1972 +vn 0.7659 -0.5664 0.3044 +vn 0.9996 -0.0272 0.0107 +vn 0.7958 -0.6054 0.0154 +vn 0.7942 -0.6031 0.0742 +vn 0.9985 -0.0230 0.0495 +vn 0.9584 0.2852 0.0067 +vn 0.9579 0.2870 -0.0014 +vn 0.9995 -0.0324 -0.0024 +vn 0.7954 -0.6061 -0.0046 +vn 0.9965 0.0831 0.0108 +vn 0.9928 -0.1185 0.0148 +vn 0.9931 -0.1170 -0.0018 +vn 0.9964 0.0849 -0.0017 +vn 0.9545 -0.2978 0.0181 +vn 0.8959 -0.4438 0.0206 +vn 0.8964 -0.4433 -0.0012 +vn 0.9549 -0.2968 -0.0015 +vn 0.8305 -0.5566 0.0224 +vn 0.7667 -0.6416 0.0236 +vn 0.7671 -0.6415 -0.0006 +vn 0.8310 -0.5563 -0.0009 +vn 0.7085 -0.7053 0.0244 +vn 0.6569 -0.7535 0.0248 +vn 0.6572 -0.7537 -0.0003 +vn 0.7088 -0.7054 -0.0004 +vn 0.6075 -0.7939 0.0250 +vn 0.5776 -0.8159 0.0251 +vn 0.5778 -0.8162 -0.0000 +vn 0.6077 -0.7942 -0.0001 +vn 0.5599 -0.8282 0.0251 +vn 0.5601 -0.8284 -0.0000 +vn 0.5260 -0.8502 0.0231 +vn 0.5261 -0.8504 -0.0000 +vn 0.4865 -0.8733 0.0251 +vn 0.4867 -0.8736 0.0000 +vn 0.4457 -0.8949 0.0230 +vn 0.4458 -0.8951 -0.0000 +vn 0.4012 -0.9156 0.0251 +vn 0.4013 -0.9159 -0.0000 +vn 0.3558 -0.9343 0.0230 +vn 0.3559 -0.9345 -0.0001 +vn 0.3095 -0.9506 0.0251 +vn 0.3096 -0.9509 -0.0001 +vn 0.2625 -0.9647 0.0230 +vn 0.2626 -0.9649 -0.0001 +vn 0.2149 -0.9763 0.0252 +vn 0.2149 -0.9766 -0.0000 +vn 0.1667 -0.9857 0.0230 +vn 0.1668 -0.9860 0.0000 +vn 0.1181 -0.9927 0.0251 +vn 0.1182 -0.9930 -0.0000 +vn 0.0693 -0.9973 0.0230 +vn 0.0693 -0.9976 0.0000 +vn 0.0203 -0.9995 0.0251 +vn 0.0203 -0.9998 0.0000 +vn -0.0288 -0.9993 0.0230 +vn -0.0288 -0.9996 -0.0000 +vn -0.0749 -0.9969 0.0251 +vn -0.0750 -0.9972 0.0000 +vn -0.1204 -0.9925 0.0230 +vn -0.1204 -0.9927 -0.0000 +vn -0.1605 -0.9867 0.0251 +vn -0.1606 -0.9870 0.0000 +vn -0.1817 -0.9831 0.0227 +vn -0.1818 -0.9833 -0.0001 +vn -0.2181 -0.9756 0.0251 +vn -0.2799 -0.9597 0.0249 +vn -0.2800 -0.9600 -0.0004 +vn -0.2181 -0.9759 -0.0002 +vn -0.3469 -0.9376 0.0244 +vn -0.4265 -0.9042 0.0237 +vn -0.4269 -0.9043 -0.0006 +vn -0.3472 -0.9378 -0.0004 +vn -0.5201 -0.8538 0.0225 +vn -0.6268 -0.7789 0.0208 +vn -0.6275 -0.7786 -0.0012 +vn -0.5206 -0.8538 -0.0009 +vn -0.7412 -0.6710 0.0183 +vn -0.8513 -0.5244 0.0150 +vn -0.8522 -0.5232 -0.0016 +vn -0.7421 -0.6703 -0.0014 +vn -0.9393 -0.3430 0.0110 +vn -0.9896 -0.1436 0.0068 +vn -0.9899 -0.1418 -0.0014 +vn -0.9400 -0.3413 -0.0016 +vn -0.9382 -0.3431 0.0453 +vn -0.9891 -0.1443 0.0294 +vn -0.8959 -0.4442 0.0109 +vn -0.4678 -0.8837 0.0155 +vn -0.4673 -0.8841 -0.0045 +vn -0.8935 -0.4490 -0.0023 +vn -0.8967 -0.4398 0.0496 +vn -0.4671 -0.8811 0.0743 +vn -0.8968 -0.4277 0.1136 +vn -0.9877 -0.1416 0.0666 +vn -0.4639 -0.8675 0.1796 +vn -0.9358 -0.3379 0.1006 +vn 0.7005 0.4141 0.5812 +vn 0.3515 0.0666 0.9338 +vn 0.9934 -0.0117 0.1139 +vn 0.7864 -0.5927 0.1741 +vn -0.3278 -0.8387 0.4348 +vn 0.5495 0.8294 0.1009 +vn 0.3710 0.9262 0.0668 +vn 0.3593 0.9261 0.1151 +vn 0.5314 0.8294 0.1726 +vn 0.7014 0.7007 0.1305 +vn 0.6779 0.7009 0.2217 +vn 0.7097 0.7020 0.0594 +vn 0.5551 0.8305 0.0453 +vn 0.3740 0.9270 0.0294 +vn -0.4906 0.8465 0.2069 +vn -0.8541 0.3887 0.3457 +vn -0.8582 0.3878 0.3362 +vn -0.4970 0.8441 0.2010 +vn -0.3099 0.9408 0.1370 +vn -0.3095 0.9420 0.1299 +vn -0.3009 0.9392 0.1657 +vn -0.4693 0.8492 0.2420 +vn -0.8308 0.3880 0.3991 +vn 0.0579 -0.9866 0.1526 +vn -0.1233 -0.9838 0.1302 +vn -0.1192 -0.9911 0.0595 +vn 0.0635 -0.9955 0.0706 +vn 0.2118 -0.9628 0.1679 +vn 0.2186 -0.9727 0.0784 +vn 0.1926 -0.9396 0.2831 +vn 0.0406 -0.9652 0.2583 +vn -0.1379 -0.9654 0.2215 +vn -0.6776 -0.4886 0.5496 +vn -0.7485 -0.5603 0.3548 +vn -0.7669 -0.5367 0.3518 +vn -0.7051 -0.4555 0.5435 +vn -0.3264 -0.1808 0.9278 +vn -0.3672 -0.1285 0.9212 +vn -0.2919 -0.2249 0.9296 +vn -0.6554 -0.5159 0.5516 +vn -0.7337 -0.5791 0.3555 +vn -0.9703 -0.1196 0.2102 +vn -0.9333 -0.3322 0.1365 +vn -0.9341 -0.3330 0.1290 +vn -0.9726 -0.1130 0.2034 +vn -0.8245 0.4469 0.3470 +vn -0.8262 0.4514 0.3372 +vn -0.8106 0.4274 0.4004 +vn -0.9593 -0.1381 0.2463 +vn -0.9263 -0.3386 0.1653 +vn 0.8147 0.5593 0.1529 +vn 0.8903 0.4231 0.1682 +vn 0.9023 0.4238 0.0784 +vn 0.8252 0.5604 0.0705 +vn 0.7872 0.5599 0.2585 +vn 0.8602 0.4241 0.2833 +vn 0.9364 0.3024 0.1778 +vn 0.9624 0.2002 0.1835 +vn 0.9759 0.2002 0.0867 +vn 0.9494 0.3027 0.0835 +vn 0.9047 0.3038 0.2986 +vn 0.9299 0.2019 0.3074 +vn 0.7445 0.5616 0.3611 +vn 0.8137 0.4262 0.3954 +vn 0.6410 0.7021 0.3100 +vn 0.5983 0.7045 0.3817 +vn 0.6951 0.5646 0.4449 +vn 0.7601 0.4297 0.4875 +vn 0.5025 0.8301 0.2417 +vn 0.3398 0.9265 0.1614 +vn 0.3172 0.9274 0.1984 +vn 0.4690 0.8317 0.2973 +vn 0.9756 0.1155 0.1866 +vn 0.9811 0.0456 0.1880 +vn 0.9950 0.0450 0.0896 +vn 0.9894 0.1151 0.0886 +vn 0.9428 0.1173 0.3120 +vn 0.9482 0.0475 0.3141 +vn 0.4346 0.8332 0.3419 +vn 0.5543 0.7069 0.4394 +vn 0.2942 0.9282 0.2278 +vn 0.2716 0.9289 0.2518 +vn 0.4006 0.8346 0.3781 +vn 0.5106 0.7090 0.4863 +vn 0.4905 0.7798 0.3890 +vn 0.7500 0.2649 0.6061 +vn 0.6919 0.2664 0.6710 +vn 0.4531 0.7804 0.4310 +vn 0.5276 0.7794 0.3378 +vn 0.8080 0.2635 0.5269 +vn 0.4167 0.7811 0.4651 +vn 0.2497 0.9296 0.2712 +vn 0.6355 0.2681 0.7241 +vn 0.5819 0.2700 0.7671 +vn 0.3821 0.7820 0.4925 +vn 0.2292 0.9301 0.2869 +vn 0.3496 0.7829 0.5146 +vn 0.2101 0.9307 0.2995 +vn 0.5317 0.2721 0.8020 +vn 0.4851 0.2745 0.8302 +vn 0.3193 0.7841 0.5321 +vn 0.1925 0.9311 0.3098 +vn 0.3678 0.8359 0.4074 +vn 0.4686 0.7111 0.5242 +vn 0.3370 0.8370 0.4311 +vn 0.4289 0.7129 0.5548 +vn 0.6440 0.5677 0.5128 +vn 0.7043 0.4334 0.5623 +vn 0.5932 0.5706 0.5679 +vn 0.6487 0.4367 0.6233 +vn 0.8560 0.3063 0.4165 +vn 0.8801 0.2046 0.4285 +vn 0.7999 0.3100 0.5138 +vn 0.8227 0.2085 0.5289 +vn 0.8924 0.1203 0.4349 +vn 0.8977 0.0506 0.4377 +vn 0.8345 0.1241 0.5369 +vn 0.8396 0.0543 0.5405 +vn 0.7414 0.3139 0.5931 +vn 0.7626 0.2125 0.6110 +vn 0.6830 0.3176 0.6578 +vn 0.7026 0.2164 0.6779 +vn 0.5442 0.5733 0.6125 +vn 0.5951 0.4400 0.6725 +vn 0.4980 0.5758 0.6485 +vn 0.5445 0.4430 0.7123 +vn 0.9819 -0.0179 0.1885 +vn 0.9806 -0.0548 0.1884 +vn 0.9944 -0.0556 0.0900 +vn 0.9958 -0.0187 0.0900 +vn 0.9491 -0.0159 0.3147 +vn 0.9478 -0.0527 0.3144 +vn 0.8986 -0.0127 0.4385 +vn 0.8976 -0.0495 0.4381 +vn 0.8406 -0.0090 0.5416 +vn 0.8397 -0.0459 0.5412 +vn 0.7736 0.1281 0.6205 +vn 0.7785 0.0583 0.6250 +vn 0.7129 0.1320 0.6887 +vn 0.7174 0.0622 0.6939 +vn 0.9792 -0.0760 0.1882 +vn 0.9930 -0.0770 0.0900 +vn 0.9465 -0.0734 0.3141 +vn 0.9428 -0.1117 0.3140 +vn 0.9753 -0.1156 0.1882 +vn 0.9890 -0.1172 0.0900 +vn 0.6266 0.3212 0.7101 +vn 0.6447 0.2201 0.7321 +vn 0.5733 0.3245 0.7524 +vn 0.5899 0.2235 0.7760 +vn 0.3082 0.8381 0.4501 +vn 0.3919 0.7146 0.5794 +vn 0.2817 0.8390 0.4655 +vn 0.3578 0.7161 0.5993 +vn 0.2913 0.7855 0.5460 +vn 0.4421 0.2773 0.8530 +vn 0.4025 0.2804 0.8714 +vn 0.2654 0.7872 0.5567 +vn 0.1762 0.9316 0.3180 +vn 0.1614 0.9319 0.3247 +vn 0.2435 0.7886 0.5646 +vn 0.1487 0.9323 0.3296 +vn 0.3688 0.2837 0.8852 +vn 0.3399 0.2874 0.8955 +vn 0.2245 0.7907 0.5696 +vn 0.1380 0.9326 0.3335 +vn 0.2573 0.8399 0.4779 +vn 0.3265 0.7174 0.6154 +vn 0.2350 0.8406 0.4880 +vn 0.2977 0.7186 0.6284 +vn 0.4548 0.5781 0.6775 +vn 0.4973 0.4457 0.7444 +vn 0.4150 0.5801 0.7009 +vn 0.4536 0.4482 0.7703 +vn 0.6541 0.1358 0.7441 +vn 0.6583 0.0660 0.7498 +vn 0.5986 0.1393 0.7889 +vn 0.6024 0.0696 0.7952 +vn 0.5236 0.3275 0.7865 +vn 0.5387 0.2267 0.8114 +vn 0.4775 0.3303 0.8142 +vn 0.4913 0.2297 0.8402 +vn 0.3784 0.5820 0.7198 +vn 0.4134 0.4504 0.7914 +vn 0.3448 0.5836 0.7352 +vn 0.3765 0.4525 0.8084 +vn 0.2160 0.8413 0.4955 +vn 0.2732 0.7198 0.6382 +vn 0.1998 0.8418 0.5014 +vn 0.2524 0.7206 0.6458 +vn 0.4351 0.3328 0.8366 +vn 0.4477 0.2324 0.8635 +vn 0.3962 0.3351 0.8548 +vn 0.4076 0.2348 0.8825 +vn 0.3162 0.5852 0.7467 +vn 0.3452 0.4543 0.8212 +vn 0.2919 0.5864 0.7556 +vn 0.3185 0.4558 0.8312 +vn 0.1842 0.8423 0.5065 +vn 0.2324 0.7214 0.6523 +vn 0.1276 0.9328 0.3370 +vn 0.1185 0.9331 0.3396 +vn 0.1706 0.8428 0.5104 +vn 0.2148 0.7222 0.6575 +vn 0.2063 0.7926 0.5738 +vn 0.3121 0.2910 0.9044 +vn 0.2878 0.2945 0.9113 +vn 0.1905 0.7943 0.5769 +vn 0.1768 0.7964 0.5783 +vn 0.1109 0.9333 0.3416 +vn 0.2671 0.2985 0.9163 +vn 0.2477 0.3028 0.9203 +vn 0.1640 0.7987 0.5789 +vn 0.1037 0.9334 0.3434 +vn 0.1520 0.8013 0.5786 +vn 0.0969 0.9336 0.3450 +vn 0.2294 0.3076 0.9235 +vn 0.2121 0.3128 0.9258 +vn 0.1406 0.8040 0.5777 +vn 0.0906 0.9337 0.3463 +vn 0.1591 0.8432 0.5135 +vn 0.2000 0.7228 0.6615 +vn 0.1483 0.8435 0.5162 +vn 0.1861 0.7233 0.6650 +vn 0.2684 0.5875 0.7634 +vn 0.2928 0.4572 0.8398 +vn 0.2480 0.5885 0.7695 +vn 0.2703 0.4584 0.8466 +vn 0.1299 0.8071 0.5760 +vn 0.0846 0.9338 0.3475 +vn 0.1959 0.3185 0.9275 +vn 0.1805 0.3248 0.9284 +vn 0.1198 0.8103 0.5736 +vn 0.0789 0.9340 0.3485 +vn 0.1381 0.8438 0.5185 +vn 0.1730 0.7239 0.6679 +vn 0.1285 0.8441 0.5205 +vn 0.1607 0.7243 0.6705 +vn 0.2306 0.5894 0.7742 +vn 0.2512 0.4594 0.8520 +vn 0.2143 0.5901 0.7783 +vn 0.2333 0.4604 0.8565 +vn 0.3632 0.3371 0.8686 +vn 0.3735 0.2370 0.8968 +vn 0.3350 0.3388 0.8792 +vn 0.3444 0.2388 0.9079 +vn 0.3078 0.3404 0.8885 +vn 0.3164 0.2405 0.9176 +vn 0.2840 0.3418 0.8958 +vn 0.2919 0.2420 0.9253 +vn 0.2639 0.3430 0.9015 +vn 0.2711 0.2432 0.9313 +vn 0.2450 0.3440 0.9064 +vn 0.2516 0.2444 0.9365 +vn 0.3789 0.1532 0.9127 +vn 0.3813 0.0835 0.9207 +vn 0.4161 0.0813 0.9057 +vn 0.4135 0.1510 0.8979 +vn 0.3494 0.1550 0.9241 +vn 0.3515 0.0854 0.9323 +vn 0.3208 0.1568 0.9341 +vn 0.3228 0.0872 0.9424 +vn 0.2959 0.1583 0.9420 +vn 0.2977 0.0888 0.9505 +vn 0.4542 0.1484 0.8784 +vn 0.4571 0.0788 0.8859 +vn 0.5018 0.0759 0.8617 +vn 0.4985 0.1457 0.8545 +vn 0.5466 0.1426 0.8251 +vn 0.5502 0.0729 0.8318 +vn 0.4579 0.0157 0.8889 +vn 0.4574 -0.0213 0.8890 +vn 0.5021 -0.0242 0.8645 +vn 0.5025 0.0127 0.8645 +vn 0.4168 0.0184 0.9088 +vn 0.4164 -0.0185 0.9090 +vn 0.5510 0.0096 0.8344 +vn 0.5505 -0.0274 0.8344 +vn 0.6028 -0.0307 0.7973 +vn 0.6033 0.0062 0.7975 +vn 0.6593 0.0026 0.7519 +vn 0.6587 -0.0343 0.7516 +vn 0.7177 -0.0381 0.6953 +vn 0.7184 -0.0012 0.6956 +vn 0.7795 -0.0051 0.6264 +vn 0.7787 -0.0420 0.6260 +vn 0.6580 -0.0508 0.7513 +vn 0.7169 -0.0554 0.6950 +vn 0.6022 -0.0465 0.7970 +vn 0.5998 -0.0713 0.7970 +vn 0.6555 -0.0778 0.7512 +vn 0.7141 -0.0847 0.6949 +vn 0.8964 -0.0695 0.4377 +vn 0.8386 -0.0650 0.5408 +vn 0.8354 -0.0990 0.5407 +vn 0.8929 -0.1058 0.4376 +vn 0.7778 -0.0602 0.6256 +vn 0.7748 -0.0919 0.6255 +vn 0.5500 -0.0424 0.8341 +vn 0.5016 -0.0386 0.8642 +vn 0.4997 -0.0595 0.8642 +vn 0.5479 -0.0651 0.8340 +vn 0.9690 -0.1600 0.1882 +vn 0.9826 -0.1623 0.0900 +vn 0.9367 -0.1547 0.3140 +vn 0.9286 -0.1978 0.3140 +vn 0.9606 -0.2046 0.1882 +vn 0.9741 -0.2075 0.0900 +vn 0.9494 -0.2515 0.1882 +vn 0.9627 -0.2550 0.0900 +vn 0.9178 -0.2431 0.3140 +vn 0.9047 -0.2879 0.3140 +vn 0.9359 -0.2978 0.1882 +vn 0.9491 -0.3020 0.0900 +vn 0.8871 -0.1465 0.4376 +vn 0.8300 -0.1371 0.5407 +vn 0.8228 -0.1753 0.5406 +vn 0.8795 -0.1873 0.4376 +vn 0.9202 -0.3433 0.1882 +vn 0.9331 -0.3482 0.0900 +vn 0.8895 -0.3319 0.3140 +vn 0.8722 -0.3752 0.3140 +vn 0.9022 -0.3881 0.1882 +vn 0.9149 -0.3935 0.0900 +vn 0.8821 -0.4319 0.1882 +vn 0.8945 -0.4380 0.0900 +vn 0.8527 -0.4175 0.3140 +vn 0.8312 -0.4588 0.3140 +vn 0.8598 -0.4746 0.1882 +vn 0.8719 -0.4813 0.0900 +vn 0.8692 -0.2303 0.4376 +vn 0.8132 -0.2154 0.5407 +vn 0.8016 -0.2551 0.5407 +vn 0.8569 -0.2726 0.4376 +vn 0.8424 -0.3143 0.4376 +vn 0.7882 -0.2941 0.5407 +vn 0.7728 -0.3324 0.5407 +vn 0.8260 -0.3553 0.4376 +vn 0.8076 -0.3954 0.4376 +vn 0.7555 -0.3699 0.5407 +vn 0.7365 -0.4066 0.5406 +vn 0.7872 -0.4346 0.4376 +vn 0.7310 -0.2728 0.6255 +vn 0.6738 -0.2514 0.6949 +vn 0.6606 -0.2842 0.6949 +vn 0.7167 -0.3083 0.6255 +vn 0.7435 -0.2366 0.6255 +vn 0.6853 -0.2180 0.6949 +vn 0.7007 -0.3431 0.6255 +vn 0.6459 -0.3162 0.6949 +vn 0.6296 -0.3476 0.6949 +vn 0.6830 -0.3771 0.6255 +vn 0.8355 -0.5163 0.1882 +vn 0.8472 -0.5235 0.0900 +vn 0.8077 -0.4991 0.3140 +vn 0.7822 -0.5381 0.3140 +vn 0.8092 -0.5566 0.1882 +vn 0.8205 -0.5645 0.0900 +vn 0.7809 -0.5957 0.1882 +vn 0.7919 -0.6040 0.0900 +vn 0.7549 -0.5758 0.3140 +vn 0.7257 -0.6122 0.3140 +vn 0.7507 -0.6333 0.1882 +vn 0.7613 -0.6422 0.0900 +vn 0.7649 -0.4727 0.4376 +vn 0.7156 -0.4422 0.5407 +vn 0.6931 -0.4768 0.5407 +vn 0.7408 -0.5096 0.4376 +vn 0.7206 -0.6673 0.1882 +vn 0.7308 -0.6767 0.0900 +vn 0.6967 -0.6450 0.3140 +vn 0.6664 -0.6762 0.3140 +vn 0.6894 -0.6995 0.1882 +vn 0.6991 -0.7094 0.0900 +vn 0.7149 -0.5454 0.4376 +vn 0.6689 -0.5102 0.5407 +vn 0.6430 -0.5424 0.5407 +vn 0.6873 -0.5798 0.4376 +vn 0.6605 -0.7269 0.1882 +vn 0.6698 -0.7371 0.0900 +vn 0.6384 -0.7027 0.3141 +vn 0.6229 -0.7163 0.3144 +vn 0.6446 -0.7410 0.1884 +vn 0.6537 -0.7514 0.0900 +vn 0.6598 -0.6109 0.4376 +vn 0.6173 -0.5715 0.5407 +vn 0.5905 -0.5991 0.5407 +vn 0.6312 -0.6404 0.4376 +vn 0.6163 -0.7646 0.1884 +vn 0.5656 -0.8030 0.1879 +vn 0.5747 -0.8139 0.0855 +vn 0.6254 -0.7751 0.0899 +vn 0.5946 -0.7399 0.3147 +vn 0.5440 -0.7781 0.3141 +vn 0.6046 -0.6655 0.4377 +vn 0.5656 -0.6226 0.5408 +vn 0.5512 -0.6351 0.5412 +vn 0.5896 -0.6786 0.4381 +vn 0.5612 -0.7020 0.4384 +vn 0.5106 -0.7401 0.4377 +vn 0.5226 -0.6584 0.5416 +vn 0.4720 -0.6965 0.5405 +vn 0.5071 -0.8415 0.1864 +vn 0.4320 -0.8830 0.1833 +vn 0.4403 -0.8934 0.0892 +vn 0.5157 -0.8522 0.0886 +vn 0.4855 -0.8167 0.3119 +vn 0.4108 -0.8584 0.3073 +vn 0.3354 -0.9252 0.1776 +vn 0.3431 -0.9356 0.0835 +vn 0.3149 -0.9010 0.2985 +vn 0.2831 -0.8640 0.4164 +vn 0.1623 -0.9041 0.3953 +vn 0.3781 -0.8207 0.4284 +vn 0.3399 -0.7777 0.5289 +vn 0.2457 -0.8220 0.5138 +vn 0.1267 -0.8639 0.4875 +vn 0.4821 -0.6126 0.6264 +vn 0.4313 -0.6506 0.6250 +vn 0.5107 -0.5893 0.6260 +vn 0.4703 -0.5435 0.6953 +vn 0.4415 -0.5667 0.6956 +vn 0.3908 -0.6048 0.6939 +vn 0.5245 -0.5775 0.6256 +vn 0.4834 -0.5323 0.6950 +vn 0.5477 -0.5557 0.6255 +vn 0.5049 -0.5121 0.6949 +vn 0.3733 -0.6896 0.6206 +vn 0.2998 -0.7326 0.6110 +vn 0.4138 -0.7352 0.5369 +vn 0.3329 -0.6441 0.6887 +vn 0.2600 -0.6877 0.6779 +vn 0.5725 -0.5300 0.6256 +vn 0.5277 -0.4885 0.6949 +vn 0.5963 -0.5031 0.6255 +vn 0.5497 -0.4637 0.6949 +vn 0.4023 -0.5224 0.7519 +vn 0.3516 -0.5605 0.7498 +vn 0.4311 -0.4992 0.7516 +vn 0.3940 -0.4572 0.7973 +vn 0.3651 -0.4804 0.7975 +vn 0.3145 -0.5185 0.7952 +vn 0.4437 -0.4886 0.7513 +vn 0.4060 -0.4472 0.7970 +vn 0.4634 -0.4700 0.7512 +vn 0.4241 -0.4301 0.7969 +vn 0.6203 -0.4732 0.6255 +vn 0.5718 -0.4362 0.6949 +vn 0.6428 -0.4422 0.6255 +vn 0.5925 -0.4076 0.6949 +vn 0.4843 -0.4484 0.7512 +vn 0.4433 -0.4103 0.7970 +vn 0.5045 -0.4256 0.7512 +vn 0.4617 -0.3895 0.7969 +vn 0.6637 -0.4101 0.6255 +vn 0.6118 -0.3780 0.6949 +vn 0.5248 -0.4003 0.7512 +vn 0.4803 -0.3664 0.7969 +vn 0.5438 -0.3741 0.7512 +vn 0.4977 -0.3424 0.7969 +vn 0.5615 -0.3470 0.7512 +vn 0.5139 -0.3175 0.7969 +vn 0.5779 -0.3190 0.7512 +vn 0.5288 -0.2919 0.7969 +vn 0.5928 -0.2903 0.7512 +vn 0.5425 -0.2656 0.7969 +vn 0.6063 -0.2608 0.7512 +vn 0.5549 -0.2387 0.7969 +vn 0.4386 -0.3346 0.8341 +vn 0.4001 -0.3052 0.8642 +vn 0.3846 -0.3244 0.8642 +vn 0.4217 -0.3557 0.8340 +vn 0.4545 -0.3127 0.8340 +vn 0.4146 -0.2852 0.8642 +vn 0.4693 -0.2900 0.8340 +vn 0.4281 -0.2645 0.8642 +vn 0.4830 -0.2666 0.8340 +vn 0.4405 -0.2432 0.8642 +vn 0.4049 -0.3747 0.8341 +vn 0.3693 -0.3418 0.8642 +vn 0.3534 -0.3582 0.8642 +vn 0.3874 -0.3928 0.8340 +vn 0.3707 -0.4085 0.8341 +vn 0.3381 -0.3726 0.8642 +vn 0.3271 -0.3817 0.8645 +vn 0.3593 -0.4180 0.8344 +vn 0.3364 -0.3113 0.8888 +vn 0.3063 -0.2834 0.9088 +vn 0.2932 -0.2970 0.9088 +vn 0.3220 -0.3263 0.8887 +vn 0.3504 -0.2956 0.8887 +vn 0.3189 -0.2691 0.9088 +vn 0.3303 -0.4411 0.8344 +vn 0.2798 -0.4793 0.8319 +vn 0.2981 -0.4048 0.8645 +vn 0.2477 -0.4429 0.8617 +vn 0.3079 -0.3395 0.8888 +vn 0.2802 -0.3090 0.9088 +vn 0.2700 -0.3175 0.9090 +vn 0.2974 -0.3483 0.8890 +vn 0.2684 -0.3713 0.8889 +vn 0.2181 -0.4094 0.8859 +vn 0.2410 -0.3405 0.9088 +vn 0.1910 -0.3786 0.9056 +vn 0.2939 -0.6000 0.7441 +vn 0.2215 -0.6442 0.7321 +vn 0.2570 -0.5582 0.7889 +vn 0.1852 -0.6030 0.7760 +vn 0.2225 -0.5192 0.8252 +vn 0.1512 -0.5645 0.8115 +vn 0.1907 -0.4831 0.8545 +vn 0.1199 -0.5289 0.8402 +vn 0.2067 -0.7781 0.5932 +vn 0.0896 -0.8220 0.5624 +vn 0.1679 -0.7343 0.6578 +vn 0.0528 -0.7802 0.6233 +vn 0.0130 -0.9325 0.3610 +vn -0.1614 -0.9370 0.3099 +vn -0.0197 -0.8953 0.4450 +vn -0.1896 -0.9046 0.3818 +vn 0.1306 -0.6919 0.7101 +vn 0.0174 -0.7399 0.6725 +vn 0.0953 -0.6518 0.7524 +vn -0.0160 -0.7017 0.7123 +vn -0.0535 -0.8568 0.5128 +vn -0.2185 -0.8713 0.4395 +vn -0.0869 -0.8184 0.5680 +vn -0.2469 -0.8381 0.4863 +vn -0.3475 -0.9060 0.2415 +vn -0.5235 -0.8366 0.1613 +vn -0.5112 -0.8518 0.1149 +vn -0.3291 -0.9284 0.1724 +vn -0.3694 -0.8804 0.2974 +vn -0.5381 -0.8192 0.1984 +vn -0.2573 -0.9254 0.2781 +vn 0.3375 -0.8379 0.4290 +vn 0.3689 -0.8767 0.3088 +vn -0.2386 -0.9509 0.1970 +vn -0.2793 -0.8965 0.3440 +vn 0.3016 -0.7930 0.5293 +vn -0.3917 -0.8542 0.3419 +vn -0.5528 -0.8016 0.2279 +vn -0.4136 -0.8282 0.3782 +vn -0.5672 -0.7841 0.2519 +vn -0.1192 -0.7814 0.6125 +vn -0.2744 -0.8062 0.5242 +vn -0.1494 -0.7464 0.6485 +vn -0.3001 -0.7760 0.5548 +vn -0.3028 -0.8668 0.3962 +vn 0.2649 -0.7478 0.6088 +vn -0.3265 -0.8371 0.4388 +vn 0.2280 -0.7026 0.6741 +vn -0.4347 -0.8032 0.4074 +vn -0.5811 -0.7673 0.2712 +vn -0.4546 -0.7795 0.4310 +vn -0.5941 -0.7515 0.2869 +vn -0.3498 -0.8083 0.4736 +vn 0.1919 -0.6588 0.7274 +vn -0.3720 -0.7810 0.5016 +vn 0.1575 -0.6175 0.7706 +vn -0.1777 -0.7138 0.6775 +vn -0.3241 -0.7478 0.5794 +vn -0.0471 -0.6661 0.7444 +vn -0.0758 -0.6331 0.7703 +vn -0.2037 -0.6836 0.7009 +vn -0.3462 -0.7218 0.5993 +vn -0.3931 -0.7555 0.5241 +vn 0.1249 -0.5790 0.8057 +vn -0.6063 -0.7367 0.2995 +vn -0.6175 -0.7230 0.3098 +vn -0.4129 -0.7319 0.5420 +vn 0.0944 -0.5435 0.8341 +vn -0.4730 -0.7574 0.4501 +vn -0.4900 -0.7370 0.4655 +vn -0.4315 -0.7103 0.5562 +vn 0.0657 -0.5110 0.8571 +vn -0.6278 -0.7105 0.3179 +vn -0.6372 -0.6990 0.3247 +vn -0.4490 -0.6905 0.5671 +vn 0.0389 -0.4815 0.8756 +vn -0.5056 -0.7183 0.4779 +vn -0.3665 -0.6978 0.6154 +vn -0.3851 -0.6758 0.6284 +vn -0.5199 -0.7011 0.4880 +vn -0.4638 -0.6738 0.5752 +vn 0.0154 -0.4568 0.8894 +vn -0.6453 -0.6892 0.3296 +vn -0.6520 -0.6809 0.3335 +vn -0.4773 -0.6598 0.5804 +vn -0.0052 -0.4362 0.8998 +vn -0.4903 -0.6463 0.5847 +vn -0.0252 -0.4163 0.9089 +vn -0.6586 -0.6728 0.3370 +vn -0.6643 -0.6658 0.3396 +vn -0.5016 -0.6347 0.5879 +vn -0.0430 -0.3992 0.9158 +vn -0.5321 -0.6865 0.4955 +vn -0.4010 -0.6572 0.6382 +vn -0.4144 -0.6413 0.6457 +vn -0.5425 -0.6741 0.5013 +vn -0.5524 -0.6621 0.5065 +vn -0.4274 -0.6260 0.6523 +vn -0.4387 -0.6126 0.6575 +vn -0.5611 -0.6516 0.5104 +vn -0.5685 -0.6428 0.5135 +vn -0.6692 -0.6599 0.3416 +vn -0.4483 -0.6012 0.6615 +vn -0.4572 -0.5906 0.6649 +vn -0.5754 -0.6344 0.5162 +vn -0.6737 -0.6543 0.3435 +vn -0.2994 -0.5723 0.7634 +vn -0.1816 -0.5116 0.8398 +vn -0.1964 -0.4946 0.8466 +vn -0.3128 -0.5568 0.7695 +vn -0.2841 -0.5901 0.7557 +vn -0.1647 -0.5311 0.8312 +vn -0.3241 -0.5436 0.7743 +vn -0.2089 -0.4802 0.8519 +vn -0.2206 -0.4666 0.8565 +vn -0.3347 -0.5312 0.7784 +vn -0.2683 -0.6086 0.7467 +vn -0.1471 -0.5513 0.8212 +vn -0.2496 -0.6303 0.7351 +vn -0.1265 -0.5749 0.8084 +vn -0.2277 -0.6558 0.7198 +vn -0.1023 -0.6028 0.7913 +vn -0.0801 -0.4519 0.8885 +vn 0.0041 -0.3974 0.9176 +vn -0.0121 -0.3789 0.9254 +vn -0.0958 -0.4340 0.8958 +vn -0.0622 -0.4724 0.8792 +vn 0.0226 -0.4185 0.9079 +vn -0.0436 -0.4936 0.8686 +vn 0.0419 -0.4404 0.8968 +vn -0.0217 -0.5185 0.8548 +vn 0.0644 -0.4660 0.8825 +vn 0.0040 -0.5478 0.8366 +vn 0.0910 -0.4961 0.8635 +vn 0.0320 -0.5797 0.8142 +vn 0.0624 -0.6144 0.7865 +vn 0.1613 -0.4498 0.8784 +vn 0.1343 -0.4192 0.8979 +vn 0.1114 -0.3932 0.9127 +vn 0.1679 -0.3524 0.9207 +vn 0.1481 -0.3300 0.9323 +vn 0.0918 -0.3710 0.9241 +vn 0.2177 -0.3144 0.9240 +vn 0.2467 -0.2914 0.9242 +vn 0.2268 -0.2691 0.9360 +vn 0.1978 -0.2920 0.9357 +vn 0.2567 -0.2832 0.9241 +vn 0.2365 -0.2610 0.9359 +vn 0.2686 -0.2720 0.9241 +vn 0.2476 -0.2506 0.9359 +vn 0.0729 -0.3496 0.9341 +vn 0.1291 -0.3084 0.9425 +vn 0.1124 -0.2896 0.9505 +vn 0.0564 -0.3309 0.9420 +vn 0.1785 -0.2705 0.9460 +vn 0.2075 -0.2476 0.9464 +vn 0.1906 -0.2289 0.9546 +vn 0.1617 -0.2517 0.9542 +vn 0.2171 -0.2397 0.9463 +vn 0.2001 -0.2211 0.9545 +vn 0.2274 -0.2300 0.9462 +vn 0.2097 -0.2120 0.9545 +vn 0.2806 -0.2596 0.9241 +vn 0.2586 -0.2392 0.9359 +vn 0.2922 -0.2465 0.9241 +vn 0.2693 -0.2272 0.9359 +vn 0.3645 -0.2780 0.8887 +vn 0.3318 -0.2531 0.9088 +vn 0.3777 -0.2598 0.8887 +vn 0.3438 -0.2365 0.9088 +vn 0.2375 -0.2196 0.9462 +vn 0.2190 -0.2024 0.9545 +vn 0.2473 -0.2086 0.9462 +vn 0.2279 -0.1923 0.9545 +vn 0.3039 -0.2318 0.9241 +vn 0.2801 -0.2137 0.9359 +vn 0.3149 -0.2167 0.9241 +vn 0.2903 -0.1997 0.9359 +vn 0.1857 -0.2052 0.9609 +vn 0.1721 -0.1904 0.9665 +vn 0.1627 -0.1981 0.9666 +vn 0.1763 -0.2130 0.9610 +vn 0.1947 -0.1968 0.9609 +vn 0.1806 -0.1824 0.9665 +vn 0.1474 -0.2358 0.9606 +vn 0.0983 -0.2736 0.9568 +vn 0.1338 -0.2209 0.9661 +vn 0.0850 -0.2585 0.9623 +vn 0.0424 -0.3150 0.9481 +vn -0.0259 -0.3633 0.9313 +vn 0.0293 -0.3000 0.9535 +vn -0.0388 -0.3486 0.9365 +vn 0.2033 -0.1879 0.9609 +vn 0.1885 -0.1742 0.9665 +vn 0.2116 -0.1785 0.9609 +vn 0.1962 -0.1655 0.9665 +vn 0.1211 -0.2069 0.9708 +vn 0.0726 -0.2443 0.9670 +vn 0.1499 -0.1841 0.9714 +vn 0.1377 -0.1710 0.9756 +vn 0.1090 -0.1937 0.9750 +vn 0.0608 -0.2310 0.9711 +vn 0.1593 -0.1764 0.9713 +vn 0.1472 -0.1632 0.9755 +vn 0.1673 -0.1688 0.9713 +vn 0.1548 -0.1561 0.9755 +vn -0.1091 -0.4188 0.9015 +vn -0.1215 -0.4045 0.9064 +vn 0.0169 -0.2860 0.9581 +vn -0.0509 -0.3348 0.9409 +vn 0.0053 -0.2727 0.9621 +vn -0.0623 -0.3217 0.9448 +vn -0.1333 -0.3910 0.9107 +vn -0.2316 -0.4539 0.8604 +vn -0.1443 -0.3784 0.9143 +vn -0.2420 -0.4419 0.8638 +vn -0.3446 -0.5195 0.7819 +vn -0.4657 -0.5805 0.6679 +vn -0.3540 -0.5086 0.7849 +vn -0.4736 -0.5711 0.6705 +vn -0.0057 -0.2603 0.9655 +vn -0.0731 -0.3094 0.9481 +vn 0.0497 -0.2184 0.9746 +vn 0.0392 -0.2065 0.9777 +vn -0.0161 -0.2485 0.9685 +vn -0.0833 -0.2978 0.9510 +vn -0.5818 -0.6266 0.5185 +vn -0.6780 -0.6491 0.3450 +vn -0.5879 -0.6192 0.5205 +vn -0.6820 -0.6441 0.3463 +vn -0.1547 -0.3665 0.9175 +vn -0.2518 -0.4305 0.8667 +vn -0.1645 -0.3552 0.9202 +vn -0.2610 -0.4199 0.8692 +vn -0.3629 -0.4982 0.7875 +vn -0.4811 -0.5622 0.6727 +vn -0.3712 -0.4884 0.7897 +vn -0.4881 -0.5538 0.6745 +vn -0.5313 -0.6082 0.5898 +vn -0.0895 -0.3611 0.9282 +vn -0.0744 -0.3726 0.9250 +vn -0.5217 -0.6163 0.5900 +vn -0.5407 -0.6008 0.5888 +vn -0.1044 -0.3507 0.9307 +vn -0.5118 -0.6251 0.5893 +vn -0.0590 -0.3853 0.9209 +vn -0.5937 -0.6122 0.5222 +vn -0.6858 -0.6395 0.3475 +vn -0.5991 -0.6057 0.5237 +vn -0.6894 -0.6351 0.3485 +vn -0.5499 -0.5941 0.5871 +vn -0.1190 -0.3414 0.9324 +vn -0.5589 -0.5881 0.5846 +vn -0.1336 -0.3332 0.9334 +vn -0.5679 -0.5827 0.5814 +vn -0.1482 -0.3260 0.9337 +vn -0.6928 -0.6309 0.3493 +vn -0.6959 -0.6270 0.3501 +vn -0.5767 -0.5779 0.5774 +vn -0.1629 -0.3200 0.9333 +vn -0.6042 -0.5995 0.5249 +vn -0.4948 -0.5459 0.6762 +vn -0.5011 -0.5384 0.6775 +vn -0.6090 -0.5936 0.5260 +vn -0.6136 -0.5881 0.5269 +vn -0.6989 -0.6233 0.3507 +vn -0.5071 -0.5313 0.6787 +vn -0.5127 -0.5245 0.6797 +vn -0.6180 -0.5828 0.5277 +vn -0.7018 -0.6198 0.3512 +vn -0.3791 -0.4792 0.7916 +vn -0.2698 -0.4098 0.8714 +vn -0.2780 -0.4002 0.8732 +vn -0.3865 -0.4705 0.7933 +vn -0.3936 -0.4622 0.7946 +vn -0.2858 -0.3912 0.8748 +vn -0.2932 -0.3826 0.8761 +vn -0.4002 -0.4544 0.7958 +vn -0.1738 -0.3446 0.9225 +vn -0.0929 -0.2869 0.9535 +vn -0.1020 -0.2765 0.9556 +vn -0.1826 -0.3345 0.9245 +vn -0.1909 -0.3250 0.9263 +vn -0.1106 -0.2667 0.9574 +vn -0.1188 -0.2574 0.9590 +vn -0.1988 -0.3159 0.9277 +vn -0.0259 -0.2373 0.9711 +vn 0.0293 -0.1953 0.9803 +vn 0.0200 -0.1847 0.9826 +vn -0.0352 -0.2268 0.9733 +vn -0.0440 -0.2168 0.9752 +vn 0.0111 -0.1746 0.9846 +vn 0.0027 -0.1651 0.9863 +vn -0.0523 -0.2073 0.9769 +vn -0.2045 -0.3094 0.9287 +vn -0.2986 -0.3764 0.8770 +vn -0.1247 -0.2507 0.9600 +vn -0.1272 -0.2478 0.9604 +vn -0.2069 -0.3066 0.9291 +vn -0.3009 -0.3738 0.8773 +vn -0.0583 -0.2005 0.9780 +vn -0.0034 -0.1582 0.9874 +vn -0.0060 -0.1552 0.9879 +vn -0.0609 -0.1975 0.9784 +vn 0.0567 -0.1390 0.9887 +vn 0.0848 -0.1169 0.9895 +vn 0.0752 -0.1082 0.9913 +vn 0.0474 -0.1301 0.9904 +vn 0.0663 -0.1486 0.9867 +vn 0.0946 -0.1263 0.9875 +vn -0.4051 -0.4488 0.7965 +vn -0.5169 -0.5197 0.6802 +vn -0.4072 -0.4464 0.7968 +vn -0.5186 -0.5177 0.6805 +vn 0.0402 -0.1241 0.9915 +vn 0.0676 -0.1025 0.9924 +vn 0.0634 -0.1008 0.9929 +vn 0.0365 -0.1219 0.9919 +vn -0.6212 -0.5790 0.5281 +vn -0.7039 -0.6173 0.3514 +vn -0.6225 -0.5774 0.5282 +vn -0.7048 -0.6162 0.3515 +vn -0.5856 -0.5738 0.5725 +vn -0.5946 -0.5704 0.5667 +vn -0.1778 -0.3150 0.9323 +vn -0.1930 -0.3112 0.9305 +vn -0.6023 -0.5687 0.5602 +vn -0.2069 -0.3105 0.9278 +vn -0.6072 -0.5689 0.5546 +vn -0.2160 -0.3128 0.9249 +vn -0.4158 -0.4356 0.7984 +vn -0.5256 -0.5085 0.6820 +vn -0.3107 -0.3619 0.8789 +vn -0.3290 -0.3406 0.8808 +vn -0.4321 -0.4163 0.8000 +vn -0.5393 -0.4921 0.6834 +vn -0.6153 -0.5635 0.5512 +vn -0.2281 -0.3038 0.9250 +vn -0.7081 -0.6116 0.3529 +vn -0.7148 -0.6033 0.3537 +vn -0.6254 -0.5511 0.5524 +vn -0.2448 -0.2830 0.9273 +vn -0.6277 -0.5704 0.5298 +vn -0.6380 -0.5577 0.5309 +vn -0.6377 -0.5366 0.5526 +vn -0.2642 -0.2591 0.9290 +vn -0.7225 -0.5934 0.3547 +vn -0.6501 -0.5425 0.5321 +vn -0.5553 -0.4723 0.6846 +vn -0.5782 -0.4438 0.6846 +vn -0.6674 -0.5206 0.5325 +vn -0.4514 -0.3930 0.8011 +vn -0.3507 -0.3148 0.8820 +vn -0.3818 -0.2779 0.8815 +vn -0.4790 -0.3595 0.8008 +vn -0.6903 -0.4918 0.5306 +vn -0.6087 -0.4064 0.6814 +vn -0.6466 -0.3596 0.6728 +vn -0.7190 -0.4557 0.5247 +vn -0.5155 -0.3156 0.7967 +vn -0.4228 -0.2294 0.8767 +vn -0.4738 -0.1691 0.8642 +vn -0.5609 -0.2608 0.7857 +vn -0.7545 -0.4114 0.5114 +vn -0.6929 -0.3028 0.6544 +vn -0.7458 -0.2383 0.6221 +vn -0.7955 -0.3604 0.4871 +vn -0.7902 -0.5072 0.3440 +vn -0.8176 -0.4727 0.3288 +vn -0.7400 -0.4134 0.5306 +vn -0.4191 -0.0624 0.9058 +vn -0.7815 -0.3629 0.5075 +vn -0.4821 0.0178 0.8759 +vn -0.6158 -0.1948 0.7634 +vn -0.5349 -0.0969 0.8393 +vn -0.6040 -0.0156 0.7968 +vn -0.6781 -0.1202 0.7250 +vn -0.7448 -0.0407 0.6660 +vn -0.8033 -0.1685 0.5712 +vn -0.6772 0.0704 0.7324 +vn -0.7478 0.1525 0.6462 +vn -0.8091 0.0352 0.5866 +vn -0.8589 -0.1018 0.5019 +vn -0.6096 0.1621 0.7759 +vn -0.5469 0.2360 0.8032 +vn -0.6242 0.3246 0.7106 +vn -0.6843 0.2482 0.6857 +vn -0.5320 0.0721 0.8437 +vn -0.4665 0.1436 0.8728 +vn -0.4584 -0.0134 0.8887 +vn -0.3900 0.0554 0.9191 +vn -0.3930 -0.0896 0.9152 +vn -0.3219 -0.0231 0.9465 +vn -0.3382 -0.1535 0.9285 +vn -0.2646 -0.0892 0.9602 +vn -0.2942 -0.2049 0.9335 +vn -0.2186 -0.1423 0.9654 +vn -0.4912 0.2950 0.8196 +vn -0.4425 0.3422 0.8289 +vn -0.5224 0.4330 0.7346 +vn -0.5701 0.3850 0.7258 +vn -0.4091 0.2012 0.8900 +vn -0.3594 0.2476 0.8997 +vn -0.2607 -0.2440 0.9341 +vn -0.1835 -0.1828 0.9659 +vn -0.2372 -0.2713 0.9328 +vn -0.1590 -0.2112 0.9644 +vn -0.3307 0.1115 0.9371 +vn -0.2800 0.1571 0.9471 +vn -0.2609 0.0316 0.9648 +vn -0.2092 0.0764 0.9749 +vn -0.2021 -0.0358 0.9787 +vn -0.1495 0.0083 0.9887 +vn -0.1549 -0.0900 0.9838 +vn -0.1015 -0.0464 0.9938 +vn -0.2176 -0.2940 0.9307 +vn -0.1384 -0.2347 0.9622 +vn -0.1188 -0.1313 0.9842 +vn -0.0649 -0.0882 0.9940 +vn -0.0935 -0.1602 0.9826 +vn -0.0392 -0.1174 0.9923 +vn -0.0725 -0.1842 0.9802 +vn -0.0178 -0.1417 0.9897 +vn -0.1088 0.0419 0.9932 +vn -0.0828 0.0627 0.9946 +vn -0.1433 0.1311 0.9810 +vn -0.1690 0.1102 0.9794 +vn -0.0603 -0.0131 0.9981 +vn -0.0341 0.0078 0.9994 +vn 0.0242 -0.1087 0.9938 +vn 0.0508 -0.0878 0.9948 +vn 0.0291 -0.0635 0.9976 +vn 0.0026 -0.0843 0.9964 +vn -0.0233 -0.0550 0.9982 +vn 0.0030 -0.0341 0.9994 +vn 0.0652 -0.0764 0.9949 +vn 0.0429 -0.0525 0.9977 +vn 0.0774 -0.0893 0.9930 +vn 0.0842 -0.0830 0.9930 +vn 0.0716 -0.0704 0.9949 +vn 0.0483 -0.0475 0.9977 +vn 0.0163 -0.0239 0.9996 +vn -0.0218 0.0170 0.9996 +vn 0.0204 -0.0200 0.9996 +vn -0.0195 0.0192 0.9996 +vn -0.0718 0.0706 0.9949 +vn -0.1340 0.1373 0.9814 +vn -0.0719 0.0706 0.9949 +vn -0.1370 0.1345 0.9814 +vn -0.2404 0.1912 0.9517 +vn -0.2149 0.2122 0.9533 +vn -0.2953 0.3031 0.9061 +vn -0.3204 0.2820 0.9043 +vn -0.2078 0.2164 0.9539 +vn -0.2906 0.3052 0.9069 +vn -0.2143 0.2103 0.9539 +vn -0.3010 0.2952 0.9068 +vn -0.4041 0.3770 0.8334 +vn -0.3793 0.3982 0.8352 +vn -0.4600 0.4895 0.7408 +vn -0.4846 0.4681 0.7390 +vn -0.3773 0.3980 0.8362 +vn -0.4607 0.4873 0.7418 +vn -0.3918 0.3841 0.8361 +vn -0.4790 0.4695 0.7417 +vn -0.0743 0.0681 0.9949 +vn -0.1416 0.1297 0.9814 +vn -0.0202 0.0185 0.9996 +vn -0.0208 0.0175 0.9996 +vn -0.0768 0.0648 0.9949 +vn -0.1465 0.1236 0.9815 +vn -0.5547 0.5476 0.6264 +vn -0.5920 0.5121 0.6223 +vn -0.5304 0.5692 0.6283 +vn -0.5860 0.6320 0.5072 +vn -0.6102 0.6101 0.5054 +vn -0.6472 0.5742 0.5014 +vn -0.2213 0.2028 0.9539 +vn -0.3109 0.2847 0.9068 +vn -0.2292 0.1934 0.9540 +vn -0.3220 0.2716 0.9070 +vn -0.5335 0.5651 0.6293 +vn -0.5910 0.6265 0.5081 +vn -0.5552 0.5440 0.6292 +vn -0.6154 0.6027 0.5080 +vn -0.4045 0.3705 0.8361 +vn -0.4946 0.4530 0.7417 +vn -0.4191 0.3535 0.8363 +vn -0.5125 0.4323 0.7420 +vn -0.6389 0.4633 0.6141 +vn -0.6917 0.4016 0.6002 +vn -0.6935 0.5246 0.4939 +vn -0.7452 0.4614 0.4815 +vn -0.7495 0.3231 0.5778 +vn -0.8094 0.2239 0.5429 +vn -0.8011 0.3808 0.4618 +vn -0.8579 0.2784 0.4319 +vn -0.6411 0.6448 0.4162 +vn -0.6778 0.6084 0.4128 +vn -0.6171 0.6669 0.4177 +vn -0.6252 0.6760 0.3901 +vn -0.6491 0.6539 0.3887 +vn -0.6857 0.6173 0.3857 +vn -0.6232 0.6608 0.4183 +vn -0.6317 0.6696 0.3905 +vn -0.6490 0.6355 0.4182 +vn -0.6579 0.6439 0.3905 +vn -0.7236 0.5578 0.4065 +vn -0.7745 0.4933 0.3960 +vn -0.7314 0.5663 0.3799 +vn -0.7820 0.5012 0.3704 +vn -0.6699 0.6134 0.4183 +vn -0.6790 0.6216 0.3906 +vn -0.6352 0.5817 0.5081 +vn -0.6583 0.5553 0.5083 +vn -0.6942 0.5856 0.4184 +vn -0.7036 0.5936 0.3906 +vn -0.8290 0.4107 0.3796 +vn -0.8836 0.3053 0.3550 +vn -0.8361 0.4177 0.3555 +vn -0.8902 0.3112 0.3328 +vn -0.8653 0.1012 0.4909 +vn -0.9074 -0.0438 0.4180 +vn -0.9092 0.1508 0.3882 +vn -0.9447 -0.0010 0.3280 +vn -0.9317 0.1738 0.3190 +vn -0.9628 0.0170 0.2696 +vn -0.9373 0.1782 0.2995 +vn -0.9671 0.0195 0.2535 +vn -0.9656 -0.1570 0.2072 +vn -0.9529 -0.1692 0.2518 +vn -0.9682 -0.1564 0.1953 +vn -0.9240 -0.2028 0.3241 +vn -0.9073 -0.3610 0.2156 +vn -0.8805 -0.3944 0.2629 +vn -0.8856 -0.2499 0.3916 +vn -0.9296 -0.1826 0.3202 +vn -0.7656 0.3639 0.5305 +vn -0.6877 0.2687 0.6744 +vn -0.8866 -0.2341 0.3989 +vn -0.7221 0.5509 0.4184 +vn -0.7319 0.5583 0.3906 +vn -0.6847 0.5223 0.5083 +vn -0.7095 0.4881 0.5083 +vn -0.7483 0.5148 0.4184 +vn -0.7584 0.5217 0.3906 +vn -0.5732 0.5249 0.6292 +vn -0.5939 0.5010 0.6295 +vn -0.6178 0.4713 0.6294 +vn -0.5331 0.4066 0.7420 +vn -0.5524 0.3800 0.7420 +vn -0.6402 0.4404 0.6294 +vn -0.4359 0.3325 0.8363 +vn -0.3349 0.2555 0.9070 +vn -0.3470 0.2387 0.9070 +vn -0.4517 0.3108 0.8363 +vn -0.7727 0.4774 0.4184 +vn -0.7831 0.4839 0.3906 +vn -0.7326 0.4527 0.5083 +vn -0.7539 0.4162 0.5083 +vn -0.7951 0.4389 0.4185 +vn -0.8059 0.4449 0.3906 +vn -0.6610 0.4085 0.6294 +vn -0.5703 0.3524 0.7420 +vn -0.5869 0.3240 0.7420 +vn -0.6803 0.3755 0.6294 +vn -0.8157 0.3994 0.4184 +vn -0.8268 0.4048 0.3906 +vn -0.7735 0.3787 0.5083 +vn -0.7911 0.3403 0.5083 +vn -0.8343 0.3589 0.4184 +vn -0.8456 0.3638 0.3906 +vn -0.6979 0.3417 0.6294 +vn -0.6021 0.2948 0.7420 +vn -0.6159 0.2649 0.7420 +vn -0.7138 0.3071 0.6294 +vn -0.4664 0.2882 0.8363 +vn -0.3583 0.2214 0.9070 +vn -0.3688 0.2036 0.9070 +vn -0.4800 0.2650 0.8363 +vn -0.4924 0.2411 0.8363 +vn -0.3783 0.1852 0.9070 +vn -0.3869 0.1664 0.9070 +vn -0.5037 0.2167 0.8363 +vn -0.8510 0.3175 0.4184 +vn -0.8625 0.3218 0.3906 +vn -0.8069 0.3011 0.5082 +vn -0.8207 0.2611 0.5083 +vn -0.8655 0.2754 0.4184 +vn -0.8772 0.2791 0.3906 +vn -0.7280 0.2717 0.6294 +vn -0.6281 0.2344 0.7420 +vn -0.6389 0.2033 0.7420 +vn -0.7405 0.2356 0.6294 +vn -0.8780 0.2326 0.4184 +vn -0.8899 0.2357 0.3906 +vn -0.8325 0.2205 0.5083 +vn -0.8423 0.1794 0.5083 +vn -0.8883 0.1892 0.4184 +vn -0.9004 0.1918 0.3906 +vn -0.7511 0.1990 0.6295 +vn -0.6481 0.1717 0.7420 +vn -0.6557 0.1397 0.7420 +vn -0.7600 0.1619 0.6294 +vn -0.5137 0.1917 0.8363 +vn -0.3947 0.1473 0.9069 +vn -0.4014 0.1277 0.9070 +vn -0.5225 0.1662 0.8363 +vn -0.5300 0.1404 0.8363 +vn -0.4072 0.1079 0.9070 +vn -0.4120 0.0878 0.9070 +vn -0.5363 0.1142 0.8363 +vn -0.8953 0.1530 0.4183 +vn -0.9074 0.1551 0.3906 +vn -0.8490 0.1450 0.5081 +vn -0.8535 0.1164 0.5080 +vn -0.9000 0.1229 0.4182 +vn -0.9121 0.1247 0.3905 +vn -0.7661 0.1308 0.6292 +vn -0.6611 0.1129 0.7417 +vn -0.6646 0.0904 0.7417 +vn -0.7702 0.1049 0.6291 +vn -0.9041 0.0870 0.4183 +vn -0.9164 0.0884 0.3904 +vn -0.8573 0.0826 0.5081 +vn -0.8585 0.0755 0.5072 +vn -0.9052 0.0786 0.4177 +vn -0.9173 0.0794 0.3902 +vn -0.9025 0.1110 0.4162 +vn -0.8962 0.1624 0.4129 +vn -0.9080 0.1631 0.3859 +vn -0.9145 0.1117 0.3889 +vn -0.8561 0.1078 0.5054 +vn -0.8504 0.1592 0.5014 +vn -0.7735 0.0749 0.6293 +vn -0.6674 0.0651 0.7418 +vn -0.6688 0.0632 0.7408 +vn -0.7749 0.0701 0.6282 +vn -0.7728 0.1024 0.6264 +vn -0.7677 0.1537 0.6221 +vn -0.6669 0.0956 0.7389 +vn -0.6624 0.1471 0.7346 +vn -0.8843 0.2296 0.4066 +vn -0.8644 0.3093 0.3963 +vn -0.8752 0.3104 0.3710 +vn -0.8973 0.2314 0.3758 +vn -0.8396 0.2262 0.4939 +vn -0.8214 0.3058 0.4814 +vn -0.5458 0.0539 0.8362 +vn -0.4192 0.0424 0.9069 +vn -0.4205 0.0474 0.9061 +vn -0.5471 0.0555 0.8352 +vn -0.5436 0.0738 0.8361 +vn -0.4178 0.0567 0.9068 +vn -0.8325 0.4031 0.3800 +vn -0.7828 0.5108 0.3554 +vn -0.7913 0.5123 0.3337 +vn -0.8424 0.4043 0.3563 +vn -0.7920 0.3993 0.4618 +vn -0.7459 0.5070 0.4319 +vn -0.7580 0.2207 0.6138 +vn -0.7417 0.3002 0.5998 +vn -0.6538 0.2142 0.7257 +vn -0.6392 0.2941 0.7106 +vn -0.5456 0.0880 0.8334 +vn -0.5418 0.1396 0.8288 +vn -0.4192 0.0801 0.9043 +vn -0.4160 0.1320 0.8998 +vn -0.7084 0.6294 0.3195 +vn -0.6036 0.7501 0.2701 +vn -0.6080 0.7520 0.2547 +vn -0.7151 0.6311 0.3006 +vn -0.6766 0.6257 0.3882 +vn -0.5785 0.7468 0.3281 +vn -0.7152 0.3940 0.5773 +vn -0.6736 0.5021 0.5423 +vn -0.6158 0.3883 0.6856 +vn -0.5791 0.4972 0.6461 +vn -0.4680 0.8589 0.2078 +vn -0.4699 0.8606 0.1964 +vn -0.4508 0.8563 0.2521 +vn -0.6111 0.6215 0.4902 +vn -0.5225 0.7436 0.4172 +vn -0.5241 0.6176 0.5864 +vn -0.4465 0.7409 0.5017 +vn -0.4073 0.8542 0.3233 +vn -0.2721 0.9379 0.2150 +vn -0.3459 0.8527 0.3915 +vn -0.2287 0.9374 0.2628 +vn -0.4184 0.8526 0.3130 +vn -0.7539 0.3920 0.5273 +vn -0.3525 0.8499 0.3916 +vn -0.6305 0.3909 0.6706 +vn -0.4251 0.6133 0.6657 +vn -0.3601 0.7379 0.5708 +vn -0.4712 0.4918 0.7322 +vn -0.3581 0.4866 0.7969 +vn -0.3210 0.6093 0.7250 +vn -0.2692 0.7353 0.6220 +vn -0.5022 0.3821 0.7758 +vn -0.5220 0.2873 0.8031 +vn -0.3995 0.2804 0.8728 +vn -0.3832 0.3759 0.8437 +vn -0.2239 0.6058 0.7635 +vn -0.1857 0.7330 0.6544 +vn -0.2516 0.4819 0.8393 +vn -0.1569 0.4779 0.8643 +vn -0.1379 0.6029 0.7858 +vn -0.1123 0.7313 0.6728 +vn -0.2705 0.3702 0.8887 +vn -0.2830 0.2740 0.9192 +vn -0.1791 0.2683 0.9465 +vn -0.1702 0.3653 0.9152 +vn -0.1377 0.8483 0.5113 +vn -0.0838 0.9353 0.3438 +vn -0.1279 0.9358 0.3286 +vn -0.2032 0.8494 0.4870 +vn -0.0808 0.8474 0.5247 +vn -0.0462 0.9350 0.3516 +vn -0.0347 0.8469 0.5306 +vn -0.0163 0.9348 0.3548 +vn -0.0521 0.7300 0.6815 +vn -0.0040 0.7289 0.6846 +vn 0.0021 0.8464 0.5325 +vn 0.0075 0.9347 0.3554 +vn -0.0667 0.6007 0.7967 +vn -0.0780 0.4746 0.8767 +vn -0.0146 0.4720 0.8815 +vn -0.0097 0.5988 0.8008 +vn 0.0300 0.8462 0.5320 +vn 0.0327 0.7282 0.6846 +vn 0.0580 0.7277 0.6834 +vn 0.0493 0.8460 0.5309 +vn 0.0257 0.9346 0.3547 +vn 0.0382 0.9346 0.3537 +vn -0.0861 0.3612 0.9285 +vn -0.0918 0.2637 0.9602 +vn -0.0216 0.2599 0.9654 +vn -0.0185 0.3579 0.9336 +vn 0.0337 0.5975 0.8012 +vn 0.0337 0.4701 0.8820 +vn 0.0673 0.4687 0.8808 +vn 0.0639 0.5966 0.8000 +vn 0.0330 0.3555 0.9341 +vn 0.0319 0.2570 0.9659 +vn 0.0694 0.2550 0.9644 +vn 0.0689 0.3537 0.9328 +vn -0.0957 0.1816 0.9787 +vn -0.0983 0.1129 0.9887 +vn -0.0256 0.1086 0.9938 +vn -0.0239 0.1774 0.9838 +vn -0.1849 0.1867 0.9649 +vn -0.1886 0.1183 0.9749 +vn 0.0309 0.1743 0.9842 +vn 0.0299 0.1053 0.9940 +vn 0.0687 0.1029 0.9923 +vn 0.0692 0.1721 0.9826 +vn 0.0989 0.3521 0.9307 +vn 0.0947 0.4657 0.8799 +vn 0.1005 0.2533 0.9622 +vn 0.1177 0.2524 0.9604 +vn 0.1153 0.3515 0.9291 +vn 0.1108 0.4669 0.8773 +vn -0.2909 0.1928 0.9371 +vn -0.2958 0.1247 0.9471 +vn -0.4098 0.1997 0.8901 +vn 0.0892 0.5955 0.7984 +vn 0.0794 0.7270 0.6820 +vn 0.1029 0.5954 0.7968 +vn 0.0902 0.7251 0.6828 +vn 0.0657 0.8456 0.5297 +vn 0.0489 0.9344 0.3529 +vn 0.0744 0.8459 0.5282 +vn 0.0545 0.9346 0.3515 +vn 0.1011 0.1702 0.9802 +vn 0.1010 0.1010 0.9897 +vn 0.1189 0.0999 0.9879 +vn 0.1187 0.1692 0.9784 +vn 0.1190 0.3513 0.9287 +vn 0.1142 0.4667 0.8770 +vn 0.1215 0.2522 0.9600 +vn 0.1305 0.2516 0.9590 +vn 0.1277 0.3507 0.9277 +vn 0.1224 0.4663 0.8761 +vn 0.1226 0.1690 0.9780 +vn 0.1228 0.0997 0.9874 +vn 0.1320 0.0991 0.9863 +vn 0.1317 0.1685 0.9769 +vn 0.1061 0.5952 0.7965 +vn 0.0925 0.7242 0.6834 +vn 0.1135 0.5948 0.7958 +vn 0.0999 0.7267 0.6797 +vn 0.0671 0.8379 0.5417 +vn 0.0999 0.3790 0.9200 +vn 0.0733 0.3797 0.9222 +vn 0.0512 0.8382 0.5430 +vn 0.0760 0.8351 0.5448 +vn 0.1143 0.3749 0.9200 +vn 0.0327 0.8390 0.5432 +vn 0.0428 0.3806 0.9238 +vn -0.0010 0.3818 0.9242 +vn 0.0059 0.8401 0.5424 +vn 0.0764 0.8458 0.5281 +vn 0.0559 0.9346 0.3514 +vn 0.0814 0.8455 0.5277 +vn 0.0592 0.9344 0.3512 +vn 0.0882 0.8453 0.5269 +vn 0.0637 0.9343 0.3507 +vn 0.1087 0.7263 0.6787 +vn 0.1179 0.7260 0.6775 +vn 0.0954 0.8451 0.5260 +vn 0.0685 0.9342 0.3501 +vn 0.1238 0.5943 0.7946 +vn 0.1337 0.4657 0.8748 +vn 0.1456 0.4650 0.8732 +vn 0.1346 0.5938 0.7933 +vn 0.1396 0.3501 0.9263 +vn 0.1428 0.2509 0.9574 +vn 0.1559 0.2501 0.9556 +vn 0.1523 0.3493 0.9245 +vn 0.1461 0.5933 0.7916 +vn 0.1277 0.7256 0.6762 +vn 0.1582 0.4644 0.8714 +vn 0.1716 0.4637 0.8692 +vn 0.1582 0.5927 0.7897 +vn 0.1381 0.7252 0.6746 +vn 0.1443 0.1677 0.9752 +vn 0.1447 0.0983 0.9846 +vn 0.1581 0.0975 0.9826 +vn 0.1576 0.1669 0.9733 +vn 0.1656 0.3486 0.9225 +vn 0.1696 0.2493 0.9535 +vn 0.1842 0.2484 0.9510 +vn 0.1797 0.3478 0.9202 +vn 0.1716 0.1660 0.9711 +vn 0.1722 0.0966 0.9803 +vn 0.1872 0.0957 0.9777 +vn 0.1864 0.1651 0.9685 +vn 0.1446 0.0404 0.9887 +vn 0.1443 0.0049 0.9895 +vn 0.1577 0.0029 0.9875 +vn 0.1580 0.0387 0.9867 +vn 0.1319 0.0423 0.9904 +vn 0.1316 0.0071 0.9913 +vn 0.1722 0.0371 0.9844 +vn 0.1719 0.0011 0.9851 +vn 0.1869 -0.0006 0.9824 +vn 0.1872 0.0356 0.9817 +vn 0.2021 0.1641 0.9655 +vn 0.1996 0.2475 0.9481 +vn 0.2030 0.0947 0.9746 +vn 0.2197 0.0936 0.9711 +vn 0.2187 0.1631 0.9621 +vn 0.2159 0.2465 0.9448 +vn 0.1227 0.0442 0.9915 +vn 0.1224 0.0097 0.9924 +vn 0.1187 0.0458 0.9919 +vn 0.1185 0.0120 0.9929 +vn 0.1946 0.3469 0.9175 +vn 0.1857 0.4629 0.8667 +vn 0.2104 0.3460 0.9143 +vn 0.2006 0.4621 0.8638 +vn 0.1007 0.0474 0.9938 +vn 0.1005 0.0139 0.9948 +vn 0.0682 0.0496 0.9964 +vn 0.0679 0.0161 0.9976 +vn 0.1440 -0.0098 0.9895 +vn 0.1574 -0.0110 0.9875 +vn 0.1312 -0.0085 0.9913 +vn 0.1305 -0.0167 0.9913 +vn 0.1432 -0.0181 0.9895 +vn 0.1566 -0.0196 0.9875 +vn 0.0291 0.0520 0.9982 +vn 0.0288 0.0187 0.9994 +vn -0.0267 0.0556 0.9981 +vn -0.0271 0.0223 0.9994 +vn 0.1220 -0.0073 0.9925 +vn 0.1180 -0.0065 0.9930 +vn 0.1173 -0.0156 0.9930 +vn 0.1213 -0.0158 0.9925 +vn 0.1003 -0.0047 0.9949 +vn 0.0678 -0.0018 0.9977 +vn 0.0672 -0.0090 0.9977 +vn 0.0995 -0.0133 0.9949 +vn -0.0998 0.0601 0.9932 +vn -0.1003 0.0270 0.9946 +vn -0.1907 0.0658 0.9794 +vn -0.1914 0.0328 0.9810 +vn 0.0289 0.0018 0.9996 +vn -0.0268 0.0068 0.9996 +vn -0.0271 0.0036 0.9996 +vn 0.0283 -0.0038 0.9996 +vn 0.0990 -0.0168 0.9949 +vn 0.1166 -0.0198 0.9930 +vn 0.0668 -0.0114 0.9977 +vn 0.0663 -0.0141 0.9977 +vn 0.0982 -0.0209 0.9949 +vn 0.1157 -0.0246 0.9930 +vn 0.0282 -0.0048 0.9996 +vn -0.0270 0.0046 0.9996 +vn -0.0266 0.0057 0.9996 +vn 0.0280 -0.0060 0.9996 +vn -0.0998 0.0134 0.9949 +vn -0.1907 0.0216 0.9814 +vn -0.1903 0.0257 0.9814 +vn -0.0998 0.0135 0.9949 +vn 0.1206 -0.0204 0.9925 +vn 0.1297 -0.0219 0.9913 +vn 0.1196 -0.0255 0.9925 +vn 0.1287 -0.0274 0.9913 +vn -0.0993 0.0169 0.9949 +vn -0.1893 0.0323 0.9814 +vn -0.1875 0.0399 0.9815 +vn -0.0983 0.0209 0.9949 +vn -0.2959 0.0505 0.9539 +vn -0.4155 0.0709 0.9068 +vn -0.2933 0.0625 0.9540 +vn -0.2975 0.0403 0.9539 +vn -0.2984 0.0725 0.9517 +vn -0.2994 0.0397 0.9533 +vn -0.5344 0.2070 0.8195 +vn -0.2984 0.0314 0.9539 +vn -0.5408 0.0923 0.8361 +vn -0.2899 0.0768 0.9540 +vn -0.1853 0.0491 0.9814 +vn -0.2858 0.0909 0.9540 +vn -0.1827 0.0581 0.9814 +vn -0.0972 0.0257 0.9949 +vn -0.0263 0.0070 0.9996 +vn -0.0958 0.0305 0.9949 +vn -0.0259 0.0082 0.9996 +vn -0.2810 0.1048 0.9540 +vn -0.1796 0.0670 0.9815 +vn -0.2755 0.1185 0.9540 +vn -0.1761 0.0758 0.9814 +vn 0.0277 -0.0073 0.9996 +vn 0.0655 -0.0174 0.9977 +vn 0.0273 -0.0087 0.9996 +vn 0.0646 -0.0206 0.9977 +vn -0.0942 0.0351 0.9949 +vn -0.0255 0.0095 0.9996 +vn -0.0923 0.0397 0.9949 +vn -0.0250 0.0107 0.9996 +vn -0.2693 0.1319 0.9540 +vn -0.1722 0.0843 0.9814 +vn -0.2625 0.1449 0.9540 +vn -0.1679 0.0927 0.9814 +vn 0.0971 -0.0257 0.9949 +vn 0.1143 -0.0303 0.9930 +vn 0.0957 -0.0305 0.9949 +vn 0.1127 -0.0359 0.9930 +vn 0.0269 -0.0100 0.9996 +vn 0.0635 -0.0237 0.9977 +vn 0.0263 -0.0113 0.9996 +vn 0.0623 -0.0268 0.9977 +vn -0.0903 0.0442 0.9949 +vn -0.0244 0.0120 0.9996 +vn -0.0880 0.0486 0.9949 +vn -0.0238 0.0131 0.9996 +vn -0.2551 0.1576 0.9540 +vn -0.1631 0.1008 0.9814 +vn -0.2471 0.1700 0.9540 +vn -0.1580 0.1087 0.9814 +vn -0.2384 0.1819 0.9540 +vn -0.1524 0.1163 0.9815 +vn -0.0855 0.0528 0.9949 +vn -0.0231 0.0143 0.9996 +vn -0.0828 0.0570 0.9949 +vn -0.0224 0.0154 0.9996 +vn 0.0258 -0.0126 0.9996 +vn 0.0609 -0.0298 0.9977 +vn 0.0251 -0.0139 0.9996 +vn 0.0594 -0.0328 0.9977 +vn -0.0799 0.0610 0.9949 +vn -0.0216 0.0165 0.9996 +vn 0.0244 -0.0151 0.9996 +vn 0.0577 -0.0356 0.9977 +vn 0.0236 -0.0163 0.9996 +vn 0.0559 -0.0384 0.9977 +vn 0.0228 -0.0174 0.9996 +vn 0.0539 -0.0411 0.9977 +vn 0.0219 -0.0185 0.9996 +vn 0.0518 -0.0437 0.9977 +vn 0.0211 -0.0193 0.9996 +vn 0.0499 -0.0458 0.9977 +vn 0.0855 -0.0528 0.9949 +vn 0.1006 -0.0622 0.9930 +vn 0.1035 -0.0572 0.9930 +vn 0.0879 -0.0485 0.9949 +vn 0.0828 -0.0569 0.9949 +vn 0.0974 -0.0670 0.9930 +vn 0.0740 -0.0678 0.9950 +vn 0.0872 -0.0799 0.9930 +vn 0.0904 -0.0763 0.9930 +vn 0.0768 -0.0648 0.9949 +vn 0.0799 -0.0609 0.9949 +vn 0.0940 -0.0717 0.9930 +vn 0.0901 -0.0827 0.9925 +vn 0.0968 -0.0891 0.9913 +vn 0.1006 -0.0848 0.9913 +vn 0.0935 -0.0788 0.9925 +vn 0.0869 -0.0861 0.9925 +vn 0.0933 -0.0928 0.9913 +vn 0.0972 -0.0742 0.9925 +vn 0.1046 -0.0798 0.9913 +vn 0.1084 -0.0746 0.9913 +vn 0.1007 -0.0693 0.9925 +vn 0.1040 -0.0643 0.9925 +vn 0.1119 -0.0692 0.9913 +vn 0.1152 -0.0636 0.9913 +vn 0.1071 -0.0591 0.9925 +vn 0.0902 -0.0442 0.9949 +vn 0.1062 -0.0520 0.9930 +vn 0.1086 -0.0467 0.9930 +vn 0.0923 -0.0397 0.9949 +vn 0.1098 -0.0538 0.9925 +vn 0.1182 -0.0579 0.9913 +vn 0.1209 -0.0520 0.9913 +vn 0.1123 -0.0483 0.9925 +vn 0.0941 -0.0351 0.9949 +vn 0.1108 -0.0413 0.9930 +vn 0.1146 -0.0428 0.9925 +vn 0.1233 -0.0460 0.9913 +vn 0.1254 -0.0399 0.9913 +vn 0.1165 -0.0371 0.9925 +vn 0.1182 -0.0313 0.9925 +vn 0.1272 -0.0337 0.9913 +vn 0.1353 -0.0505 0.9895 +vn 0.1479 -0.0552 0.9875 +vn 0.1504 -0.0479 0.9875 +vn 0.1376 -0.0438 0.9895 +vn 0.1326 -0.0570 0.9895 +vn 0.1450 -0.0624 0.9875 +vn 0.1424 -0.0239 0.9895 +vn 0.1557 -0.0261 0.9875 +vn 0.1412 -0.0301 0.9895 +vn 0.1544 -0.0329 0.9875 +vn 0.1396 -0.0370 0.9895 +vn 0.1526 -0.0404 0.9875 +vn 0.1716 -0.0123 0.9851 +vn 0.1866 -0.0136 0.9823 +vn 0.1708 -0.0212 0.9851 +vn 0.1857 -0.0229 0.9823 +vn 0.1697 -0.0284 0.9851 +vn 0.1846 -0.0308 0.9823 +vn 0.1683 -0.0359 0.9851 +vn 0.1830 -0.0390 0.9823 +vn 0.1663 -0.0441 0.9851 +vn 0.1809 -0.0479 0.9823 +vn 0.1640 -0.0522 0.9851 +vn 0.1783 -0.0567 0.9823 +vn 0.1297 -0.0635 0.9895 +vn 0.1418 -0.0694 0.9875 +vn 0.1264 -0.0698 0.9895 +vn 0.1382 -0.0763 0.9875 +vn 0.1612 -0.0602 0.9851 +vn 0.1753 -0.0654 0.9823 +vn 0.1581 -0.0680 0.9851 +vn 0.1719 -0.0739 0.9823 +vn 0.1228 -0.0759 0.9895 +vn 0.1343 -0.0830 0.9875 +vn 0.1189 -0.0818 0.9895 +vn 0.1300 -0.0895 0.9875 +vn 0.1545 -0.0757 0.9851 +vn 0.1680 -0.0823 0.9823 +vn 0.1506 -0.0832 0.9851 +vn 0.1638 -0.0904 0.9823 +vn 0.1148 -0.0876 0.9895 +vn 0.1255 -0.0957 0.9875 +vn 0.1103 -0.0931 0.9895 +vn 0.1207 -0.1018 0.9875 +vn 0.1464 -0.0905 0.9851 +vn 0.1592 -0.0984 0.9823 +vn 0.1418 -0.0975 0.9851 +vn 0.1542 -0.1060 0.9823 +vn 0.1902 -0.0710 0.9792 +vn 0.2060 -0.0769 0.9755 +vn 0.2095 -0.0667 0.9755 +vn 0.1935 -0.0616 0.9792 +vn 0.1865 -0.0802 0.9792 +vn 0.2020 -0.0869 0.9755 +vn 0.1823 -0.0893 0.9792 +vn 0.1975 -0.0967 0.9755 +vn 0.1777 -0.0981 0.9792 +vn 0.1925 -0.1063 0.9755 +vn 0.1962 -0.0520 0.9792 +vn 0.2125 -0.0563 0.9755 +vn 0.2150 -0.0458 0.9755 +vn 0.1986 -0.0423 0.9792 +vn 0.1368 -0.1044 0.9851 +vn 0.1488 -0.1135 0.9823 +vn 0.1315 -0.1110 0.9851 +vn 0.1430 -0.1206 0.9823 +vn 0.2002 -0.0334 0.9792 +vn 0.2169 -0.0361 0.9755 +vn 0.2183 -0.0266 0.9755 +vn 0.2015 -0.0247 0.9792 +vn 0.1062 -0.0978 0.9895 +vn 0.1161 -0.1070 0.9875 +vn 0.1021 -0.1020 0.9895 +vn 0.1115 -0.1117 0.9875 +vn 0.0805 -0.0919 0.9925 +vn 0.0871 -0.0985 0.9913 +vn 0.0960 -0.1078 0.9895 +vn 0.1052 -0.1176 0.9875 +vn 0.1265 -0.1166 0.9851 +vn 0.1375 -0.1269 0.9823 +vn 0.1214 -0.1219 0.9851 +vn 0.1320 -0.1327 0.9823 +vn 0.0762 -0.1588 0.9844 +vn 0.1047 -0.1364 0.9851 +vn 0.0866 -0.1697 0.9817 +vn 0.1152 -0.1472 0.9824 +vn 0.1149 -0.1280 0.9851 +vn 0.1251 -0.1391 0.9823 +vn 0.0973 -0.1807 0.9787 +vn 0.1262 -0.1587 0.9792 +vn 0.1359 -0.1508 0.9792 +vn 0.1431 -0.1441 0.9792 +vn 0.1492 -0.1377 0.9792 +vn 0.1615 -0.1492 0.9755 +vn 0.1681 -0.1418 0.9755 +vn 0.1552 -0.1309 0.9792 +vn 0.1746 -0.1613 0.9713 +vn 0.1817 -0.1533 0.9713 +vn 0.1614 -0.1231 0.9792 +vn 0.1748 -0.1333 0.9755 +vn 0.1811 -0.1246 0.9755 +vn 0.1673 -0.1151 0.9792 +vn 0.1890 -0.1442 0.9713 +vn 0.2041 -0.1557 0.9665 +vn 0.2115 -0.1455 0.9665 +vn 0.1959 -0.1347 0.9713 +vn 0.2201 -0.1679 0.9609 +vn 0.2371 -0.1809 0.9545 +vn 0.2457 -0.1690 0.9545 +vn 0.2281 -0.1569 0.9609 +vn 0.1727 -0.1067 0.9792 +vn 0.1870 -0.1156 0.9755 +vn 0.2022 -0.1250 0.9713 +vn 0.2183 -0.1349 0.9665 +vn 0.2247 -0.1240 0.9665 +vn 0.2081 -0.1149 0.9713 +vn 0.2135 -0.1045 0.9713 +vn 0.2305 -0.1129 0.9665 +vn 0.2358 -0.1014 0.9665 +vn 0.2184 -0.0939 0.9713 +vn 0.2355 -0.1455 0.9609 +vn 0.2537 -0.1568 0.9545 +vn 0.2611 -0.1441 0.9545 +vn 0.2423 -0.1338 0.9609 +vn 0.2486 -0.1217 0.9609 +vn 0.2678 -0.1311 0.9545 +vn 0.2739 -0.1178 0.9545 +vn 0.2543 -0.1094 0.9609 +vn 0.2227 -0.0831 0.9713 +vn 0.2405 -0.0897 0.9665 +vn 0.2446 -0.0778 0.9665 +vn 0.2265 -0.0721 0.9713 +vn 0.2593 -0.0968 0.9609 +vn 0.2794 -0.1043 0.9545 +vn 0.2842 -0.0904 0.9545 +vn 0.2638 -0.0839 0.9609 +vn 0.2298 -0.0609 0.9713 +vn 0.2481 -0.0657 0.9665 +vn 0.2510 -0.0535 0.9665 +vn 0.2325 -0.0495 0.9713 +vn 0.2676 -0.0709 0.9609 +vn 0.2883 -0.0764 0.9545 +vn 0.2917 -0.0621 0.9545 +vn 0.2707 -0.0577 0.9609 +vn 0.2345 -0.0390 0.9713 +vn 0.2532 -0.0420 0.9665 +vn 0.2548 -0.0308 0.9665 +vn 0.2360 -0.0286 0.9713 +vn 0.2731 -0.0453 0.9609 +vn 0.2942 -0.0488 0.9545 +vn 0.2961 -0.0356 0.9545 +vn 0.2748 -0.0331 0.9609 +vn 0.3127 -0.0828 0.9462 +vn 0.3406 -0.0902 0.9359 +vn 0.3446 -0.0734 0.9359 +vn 0.3164 -0.0674 0.9462 +vn 0.3082 -0.0981 0.9462 +vn 0.3357 -0.1068 0.9359 +vn 0.3191 -0.0529 0.9462 +vn 0.3476 -0.0576 0.9359 +vn 0.3498 -0.0419 0.9359 +vn 0.3212 -0.0385 0.9462 +vn 0.2760 -0.0208 0.9609 +vn 0.2559 -0.0192 0.9665 +vn 0.2973 -0.0225 0.9545 +vn 0.2977 -0.0102 0.9546 +vn 0.2763 -0.0085 0.9610 +vn 0.2562 -0.0069 0.9666 +vn 0.3031 -0.1131 0.9462 +vn 0.3301 -0.1232 0.9359 +vn 0.2971 -0.1278 0.9462 +vn 0.3237 -0.1392 0.9359 +vn 0.2370 -0.0177 0.9713 +vn 0.2192 -0.0163 0.9755 +vn 0.2373 -0.0054 0.9714 +vn 0.2195 -0.0038 0.9756 +vn 0.2905 -0.1422 0.9462 +vn 0.3164 -0.1549 0.9359 +vn 0.2832 -0.1563 0.9462 +vn 0.3085 -0.1703 0.9359 +vn 0.2024 -0.0149 0.9792 +vn 0.2027 -0.0022 0.9792 +vn 0.2030 0.0341 0.9786 +vn 0.2198 0.0327 0.9750 +vn 0.2377 0.0312 0.9708 +vn 0.2375 0.0925 0.9670 +vn 0.2566 0.0297 0.9661 +vn 0.2563 0.0914 0.9623 +vn 0.2766 0.0282 0.9606 +vn 0.2764 0.0901 0.9568 +vn 0.2980 0.0266 0.9542 +vn 0.2363 0.1620 0.9581 +vn 0.2332 0.2455 0.9409 +vn 0.2550 0.1609 0.9535 +vn 0.2748 0.1596 0.9482 +vn 0.2272 0.3451 0.9107 +vn 0.2165 0.4613 0.8604 +vn 0.1990 0.5908 0.7819 +vn 0.1846 0.5915 0.7849 +vn 0.1710 0.5921 0.7875 +vn 0.1490 0.7248 0.6727 +vn 0.1195 0.8444 0.5222 +vn 0.1110 0.8446 0.5237 +vn 0.1030 0.8449 0.5249 +vn 0.0736 0.9341 0.3494 +vn 0.0927 0.8220 0.5619 +vn 0.1393 0.3476 0.9272 +vn 0.1270 0.3569 0.9255 +vn 0.0846 0.8266 0.5564 +vn 0.1012 0.8178 0.5666 +vn 0.1523 0.3393 0.9283 +vn 0.0787 0.8313 0.5502 +vn 0.1180 0.3669 0.9228 +vn 0.3232 0.0248 0.9460 +vn 0.3228 -0.0120 0.9464 +vn 0.3516 -0.0140 0.9360 +vn 0.3520 0.0228 0.9357 +vn 0.3225 -0.0245 0.9463 +vn 0.3512 -0.0268 0.9359 +vn 0.3819 0.0208 0.9240 +vn 0.3815 -0.0161 0.9242 +vn 0.3811 -0.0291 0.9241 +vn 0.4160 -0.0319 0.9088 +vn 0.3796 -0.0454 0.9241 +vn 0.4143 -0.0494 0.9088 +vn 0.4570 -0.0351 0.8888 +vn 0.4552 -0.0542 0.8887 +vn 0.3771 -0.0624 0.9241 +vn 0.4117 -0.0681 0.9088 +vn 0.3739 -0.0796 0.9241 +vn 0.4081 -0.0869 0.9088 +vn 0.4523 -0.0748 0.8887 +vn 0.4964 -0.0821 0.8642 +vn 0.4484 -0.0955 0.8887 +vn 0.4921 -0.1048 0.8642 +vn 0.3695 -0.0979 0.9241 +vn 0.4034 -0.1069 0.9088 +vn 0.3643 -0.1159 0.9241 +vn 0.3976 -0.1265 0.9088 +vn 0.5443 -0.0900 0.8341 +vn 0.5959 -0.0985 0.7970 +vn 0.5396 -0.1149 0.8340 +vn 0.5908 -0.1258 0.7969 +vn 0.4431 -0.1174 0.8887 +vn 0.4864 -0.1289 0.8642 +vn 0.4368 -0.1390 0.8887 +vn 0.4795 -0.1526 0.8642 +vn 0.3581 -0.1336 0.9241 +vn 0.3909 -0.1459 0.9088 +vn 0.3511 -0.1510 0.9241 +vn 0.3833 -0.1649 0.9088 +vn 0.6512 -0.1076 0.7512 +vn 0.7095 -0.1172 0.6949 +vn 0.6456 -0.1375 0.7512 +vn 0.7034 -0.1498 0.6949 +vn 0.5333 -0.1413 0.8340 +vn 0.5839 -0.1547 0.7969 +vn 0.5257 -0.1673 0.8340 +vn 0.5756 -0.1832 0.7969 +vn 0.4295 -0.1603 0.8887 +vn 0.4714 -0.1759 0.8642 +vn 0.4211 -0.1811 0.8887 +vn 0.4622 -0.1988 0.8642 +vn 0.7697 -0.1271 0.6256 +vn 0.7631 -0.1625 0.6255 +vn 0.6380 -0.1690 0.7512 +vn 0.6952 -0.1842 0.6948 +vn 0.6290 -0.2001 0.7512 +vn 0.7542 -0.1998 0.6255 +vn 0.6184 -0.2308 0.7512 +vn 0.5659 -0.2112 0.7969 +vn 0.5169 -0.1929 0.8340 +vn 0.5068 -0.2180 0.8340 +vn 0.4955 -0.2426 0.8340 +vn 0.4519 -0.2213 0.8642 +vn 0.3900 -0.2410 0.8887 +vn 0.3550 -0.2193 0.9088 +vn 0.4013 -0.2215 0.8888 +vn 0.3653 -0.2017 0.9088 +vn 0.4117 -0.2016 0.8887 +vn 0.3748 -0.1835 0.9088 +vn 0.3252 -0.2009 0.9241 +vn 0.2997 -0.1852 0.9359 +vn 0.3347 -0.1847 0.9241 +vn 0.2572 -0.1962 0.9462 +vn 0.2665 -0.1833 0.9462 +vn 0.3433 -0.1681 0.9241 +vn 0.2752 -0.1700 0.9462 +vn -0.2764 0.8509 0.4468 +vn -0.1796 0.9364 0.3016 +vn -0.2700 0.8503 0.4517 +vn -0.4659 0.3937 0.7924 +vn -0.1893 0.8452 0.4998 +vn -0.3070 0.3865 0.8697 +vn -0.1248 0.8435 0.5225 +vn -0.2059 0.3850 0.8996 +vn -0.0709 0.8419 0.5350 +vn -0.1223 0.3836 0.9154 +vn -0.0285 0.8408 0.5406 +vn -0.0565 0.3826 0.9222 +vn -0.8351 -0.3019 0.4599 +vn -0.8494 -0.4327 0.3021 +vn -0.5860 0.1380 0.7985 +vn -0.8412 -0.3039 0.4472 +vn 0.5633 0.7797 0.2734 +vn 0.8651 0.2627 0.4272 +vn 0.5945 0.7804 0.1938 +vn 0.9161 0.2627 0.3030 +vn 0.6326 0.7744 0.0105 +vn 0.9650 0.2617 0.0153 +vn 0.9623 0.2619 0.0739 +vn 0.6288 0.7761 0.0487 +vn 0.3735 0.9276 0.0067 +vn 0.3717 0.9283 -0.0013 +vn 0.6366 0.7712 -0.0023 +vn 0.9654 0.2608 -0.0046 +vn 0.5553 0.8316 0.0108 +vn 0.7108 0.7032 0.0148 +vn 0.7098 0.7044 -0.0018 +vn 0.5538 0.8326 -0.0017 +vn 0.8272 0.5616 0.0181 +vn 0.9050 0.4248 0.0206 +vn 0.9049 0.4256 -0.0013 +vn 0.8267 0.5626 -0.0015 +vn 0.9526 0.3034 0.0224 +vn 0.9794 0.2007 0.0236 +vn 0.9796 0.2010 -0.0007 +vn 0.9527 0.3040 -0.0010 +vn 0.9930 0.1154 0.0244 +vn 0.9987 0.0450 0.0248 +vn 0.9990 0.0451 -0.0002 +vn 0.9933 0.1156 -0.0004 +vn 0.9995 -0.0188 0.0250 +vn 0.9981 -0.0559 0.0251 +vn 0.9984 -0.0559 -0.0001 +vn 0.9998 -0.0188 -0.0001 +vn 0.9967 -0.0773 0.0251 +vn 0.9970 -0.0773 -0.0001 +vn 0.9928 -0.1176 0.0229 +vn 0.9930 -0.1177 0.0000 +vn 0.9863 -0.1629 0.0251 +vn 0.9866 -0.1629 0.0000 +vn 0.9778 -0.2084 0.0230 +vn 0.9781 -0.2083 0.0000 +vn 0.9664 -0.2560 0.0251 +vn 0.9667 -0.2561 0.0000 +vn 0.9527 -0.3031 0.0230 +vn 0.9529 -0.3032 -0.0000 +vn 0.9366 -0.3495 0.0251 +vn 0.9369 -0.3496 0.0000 +vn 0.9184 -0.3950 0.0230 +vn 0.9186 -0.3951 0.0000 +vn 0.8978 -0.4396 0.0251 +vn 0.8981 -0.4397 -0.0000 +vn 0.8753 -0.4831 0.0230 +vn 0.8755 -0.4833 0.0000 +vn 0.8504 -0.5255 0.0251 +vn 0.8507 -0.5257 0.0000 +vn 0.8236 -0.5667 0.0231 +vn 0.8239 -0.5668 0.0001 +vn 0.7948 -0.6063 0.0251 +vn 0.7951 -0.6065 0.0001 +vn 0.7641 -0.6447 0.0230 +vn 0.7644 -0.6448 0.0001 +vn 0.7335 -0.6792 0.0251 +vn 0.7337 -0.6794 -0.0000 +vn 0.7017 -0.7121 0.0230 +vn 0.7019 -0.7123 0.0000 +vn 0.6723 -0.7399 0.0251 +vn 0.6725 -0.7401 -0.0000 +vn 0.6562 -0.7542 0.0227 +vn 0.6564 -0.7544 -0.0001 +vn 0.6278 -0.7780 0.0251 +vn 0.5769 -0.8165 0.0249 +vn 0.5770 -0.8168 -0.0002 +vn 0.6280 -0.7782 -0.0001 +vn 0.5178 -0.8551 0.0243 +vn 0.4421 -0.8967 0.0237 +vn 0.4419 -0.8970 -0.0007 +vn 0.5178 -0.8555 -0.0005 +vn 0.3444 -0.9386 0.0225 +vn 0.2194 -0.9754 0.0208 +vn 0.2187 -0.9758 -0.0012 +vn 0.3441 -0.9389 -0.0009 +vn 0.0637 -0.9978 0.0183 +vn -0.1196 -0.9927 0.0150 +vn -0.1211 -0.9926 -0.0017 +vn 0.0626 -0.9980 -0.0015 +vn -0.3163 -0.9486 0.0110 +vn -0.5036 -0.8639 0.0068 +vn -0.5053 -0.8629 -0.0013 +vn -0.3180 -0.9481 -0.0017 +vn -0.3156 -0.9478 0.0453 +vn -0.5028 -0.8639 0.0294 +vn -0.2101 -0.9776 0.0109 +vn 0.4004 -0.9162 0.0155 +vn 0.4010 -0.9161 -0.0046 +vn -0.2049 -0.9788 -0.0023 +vn -0.2140 -0.9756 0.0496 +vn 0.3988 -0.9140 0.0743 +vn -0.2236 -0.9680 0.1136 +vn -0.5040 -0.8611 0.0666 +vn 0.3901 -0.9031 0.1797 +vn -0.3181 -0.9427 0.1006 +vn 0.1102 0.8139 0.5705 +vn 0.1660 0.3317 0.9287 +vn 0.6170 0.7790 0.1119 +vn 0.9493 0.2624 0.1733 +vn 0.4523 -0.7787 0.4348 +vn -0.5849 -0.7218 0.3701 +vn -0.5708 -0.7038 0.4228 +vn -0.5870 -0.7247 0.3608 +vn -0.5208 -0.6423 0.5623 +vn -0.4355 -0.5377 0.7219 +vn -0.3132 -0.3877 0.8669 +vn -0.1976 -0.2455 0.9491 +vn -0.1349 -0.1677 0.9766 +vn -0.0819 -0.1019 0.9914 +vn -0.0395 -0.0491 0.9980 +vn -0.0028 -0.0036 1.0000 +vn 0.0265 0.0327 0.9991 +vn 0.0470 0.0580 0.9972 +vn 0.0649 0.0803 0.9947 +vn 0.0745 0.0923 0.9929 +vn 0.0769 0.0952 0.9925 +vn 0.0826 0.1023 0.9913 +vn 0.0907 0.1122 0.9895 +vn 0.0991 0.1227 0.9875 +vn 0.1081 0.1337 0.9851 +vn 0.1175 0.1454 0.9824 +vn 0.1275 0.1577 0.9792 +vn 0.1381 0.1708 0.9756 +vn 0.1493 0.1846 0.9714 +vn 0.1612 0.1993 0.9666 +vn 0.1738 0.2149 0.9610 +vn 0.1873 0.2315 0.9546 +vn 0.2031 0.2511 0.9464 +vn 0.2212 0.2735 0.9361 +vn 0.2400 0.2966 0.9243 +vn 0.2619 0.3237 0.9092 +vn 0.2877 0.3556 0.8893 +vn 0.3157 0.3902 0.8649 +vn 0.3461 0.4277 0.8350 +vn 0.3788 0.4681 0.7984 +vn 0.4137 0.5112 0.7533 +vn 0.4505 0.5567 0.6980 +vn 0.4883 0.6035 0.6303 +vn 0.5261 0.6502 0.5481 +vn 0.5636 0.6964 0.4443 +vn 0.5971 0.7377 0.3149 +vn 0.6190 0.7646 0.1796 +vn 0.6274 0.7750 0.0761 +vn 0.6292 0.7771 0.0155 +vn 0.6292 0.7772 -0.0053 +vn 0.2000 -0.9072 0.3701 +vn 0.1948 -0.8850 0.4228 +vn 0.2010 -0.9107 0.3608 +vn 0.1777 -0.8076 0.5623 +vn 0.1491 -0.6757 0.7219 +vn 0.1080 -0.4866 0.8669 +vn 0.0688 -0.3075 0.9491 +vn 0.0470 -0.2100 0.9766 +vn 0.0286 -0.1276 0.9914 +vn 0.0138 -0.0615 0.9980 +vn 0.0011 -0.0044 1.0000 +vn -0.0091 0.0411 0.9991 +vn -0.0161 0.0729 0.9972 +vn -0.0224 0.1008 0.9947 +vn -0.0257 0.1158 0.9929 +vn -0.0266 0.1194 0.9925 +vn -0.0285 0.1284 0.9913 +vn -0.0313 0.1409 0.9895 +vn -0.0342 0.1540 0.9875 +vn -0.0372 0.1679 0.9851 +vn -0.0405 0.1825 0.9824 +vn -0.0439 0.1980 0.9792 +vn -0.0475 0.2144 0.9756 +vn -0.0514 0.2318 0.9714 +vn -0.0554 0.2503 0.9666 +vn -0.0598 0.2699 0.9610 +vn -0.0644 0.2908 0.9546 +vn -0.0698 0.3153 0.9464 +vn -0.0760 0.3434 0.9361 +vn -0.0824 0.3726 0.9243 +vn -0.0900 0.4066 0.9092 +vn -0.0988 0.4466 0.8893 +vn -0.1084 0.4901 0.8649 +vn -0.1188 0.5372 0.8350 +vn -0.1300 0.5880 0.7984 +vn -0.1420 0.6421 0.7533 +vn -0.1546 0.6992 0.6980 +vn -0.1676 0.7580 0.6303 +vn -0.1806 0.8167 0.5481 +vn -0.1934 0.8748 0.4443 +vn -0.2048 0.9268 0.3149 +vn -0.2122 0.9606 0.1796 +vn -0.2151 0.9736 0.0761 +vn -0.2157 0.9763 0.0155 +vn -0.2158 0.9764 -0.0053 +vn 0.8345 -0.4082 0.3701 +vn 0.8139 -0.3985 0.4228 +vn 0.8378 -0.4097 0.3608 +vn 0.7427 -0.3636 0.5624 +vn 0.6216 -0.3040 0.7219 +vn 0.4480 -0.2184 0.8669 +vn 0.2834 -0.1376 0.9491 +vn 0.1936 -0.0939 0.9766 +vn 0.1176 -0.0570 0.9914 +vn 0.0567 -0.0275 0.9980 +vn 0.0041 -0.0019 1.0000 +vn -0.0378 0.0185 0.9991 +vn -0.0671 0.0328 0.9972 +vn -0.0928 0.0452 0.9947 +vn -0.1066 0.0519 0.9929 +vn -0.1100 0.0536 0.9925 +vn -0.1183 0.0576 0.9913 +vn -0.1297 0.0632 0.9895 +vn -0.1418 0.0691 0.9875 +vn -0.1546 0.0754 0.9851 +vn -0.1680 0.0819 0.9824 +vn -0.1823 0.0889 0.9792 +vn -0.1974 0.0963 0.9756 +vn -0.2134 0.1041 0.9714 +vn -0.2304 0.1124 0.9666 +vn -0.2484 0.1213 0.9610 +vn -0.2676 0.1306 0.9546 +vn -0.2902 0.1417 0.9464 +vn -0.3161 0.1543 0.9361 +vn -0.3429 0.1674 0.9243 +vn -0.3742 0.1827 0.9092 +vn -0.4110 0.2007 0.8893 +vn -0.4510 0.2203 0.8649 +vn -0.4944 0.2414 0.8350 +vn -0.5411 0.2643 0.7984 +vn -0.5909 0.2886 0.7534 +vn -0.6435 0.3143 0.6980 +vn -0.6976 0.3407 0.6303 +vn -0.7516 0.3671 0.5481 +vn -0.8050 0.3932 0.4443 +vn -0.8528 0.4166 0.3149 +vn -0.8839 0.4319 0.1796 +vn -0.8958 0.4378 0.0761 +vn -0.8984 0.4390 0.0155 +vn -0.8985 0.4390 -0.0052 +vn 0.8400 0.3967 0.3701 +vn 0.8196 0.3866 0.4228 +vn 0.8432 0.3984 0.3609 +vn 0.7479 0.3528 0.5623 +vn 0.6257 0.2956 0.7219 +vn 0.4502 0.2135 0.8670 +vn 0.2844 0.1356 0.9491 +vn 0.1943 0.0927 0.9766 +vn 0.1180 0.0563 0.9914 +vn 0.0569 0.0272 0.9980 +vn 0.0041 0.0021 1.0000 +vn -0.0381 -0.0179 0.9991 +vn -0.0675 -0.0319 0.9972 +vn -0.0933 -0.0442 0.9947 +vn -0.1071 -0.0508 0.9929 +vn -0.1105 -0.0524 0.9925 +vn -0.1188 -0.0563 0.9913 +vn -0.1304 -0.0618 0.9895 +vn -0.1425 -0.0675 0.9875 +vn -0.1554 -0.0736 0.9851 +vn -0.1689 -0.0800 0.9824 +vn -0.1833 -0.0868 0.9792 +vn -0.1985 -0.0940 0.9756 +vn -0.2146 -0.1016 0.9714 +vn -0.2317 -0.1097 0.9666 +vn -0.2498 -0.1183 0.9610 +vn -0.2691 -0.1274 0.9546 +vn -0.2919 -0.1382 0.9464 +vn -0.3179 -0.1505 0.9361 +vn -0.3449 -0.1632 0.9243 +vn -0.3764 -0.1781 0.9092 +vn -0.4134 -0.1956 0.8893 +vn -0.4537 -0.2147 0.8649 +vn -0.4973 -0.2353 0.8351 +vn -0.5443 -0.2575 0.7984 +vn -0.5945 -0.2813 0.7533 +vn -0.6473 -0.3063 0.6980 +vn -0.7017 -0.3320 0.6304 +vn -0.7561 -0.3577 0.5481 +vn -0.8098 -0.3831 0.4443 +vn -0.8580 -0.4058 0.3149 +vn -0.8893 -0.4205 0.1797 +vn -0.9014 -0.4262 0.0761 +vn -0.9039 -0.4274 0.0155 +vn -0.9040 -0.4275 -0.0051 +vn 0.2148 0.9038 0.3701 +vn 0.2099 0.8816 0.4228 +vn 0.2154 0.9074 0.3608 +vn 0.1914 0.8044 0.5624 +vn 0.1599 0.6732 0.7219 +vn 0.1146 0.4851 0.8669 +vn 0.0719 0.3068 0.9491 +vn 0.0491 0.2096 0.9766 +vn 0.0298 0.1273 0.9914 +vn 0.0143 0.0614 0.9980 +vn 0.0010 0.0045 1.0000 +vn -0.0097 -0.0409 0.9991 +vn -0.0172 -0.0727 0.9972 +vn -0.0237 -0.1005 0.9947 +vn -0.0272 -0.1154 0.9929 +vn -0.0281 -0.1191 0.9925 +vn -0.0302 -0.1280 0.9913 +vn -0.0331 -0.1404 0.9895 +vn -0.0363 -0.1535 0.9875 +vn -0.0395 -0.1673 0.9851 +vn -0.0430 -0.1819 0.9824 +vn -0.0467 -0.1974 0.9792 +vn -0.0505 -0.2137 0.9756 +vn -0.0547 -0.2311 0.9714 +vn -0.0590 -0.2495 0.9666 +vn -0.0637 -0.2690 0.9610 +vn -0.0686 -0.2898 0.9546 +vn -0.0744 -0.3143 0.9464 +vn -0.0810 -0.3423 0.9361 +vn -0.0879 -0.3713 0.9243 +vn -0.0960 -0.4052 0.9092 +vn -0.1054 -0.4451 0.8893 +vn -0.1157 -0.4884 0.8649 +vn -0.1268 -0.5354 0.8350 +vn -0.1388 -0.5860 0.7984 +vn -0.1516 -0.6399 0.7533 +vn -0.1651 -0.6968 0.6980 +vn -0.1790 -0.7554 0.6303 +vn -0.1928 -0.8139 0.5481 +vn -0.2066 -0.8717 0.4443 +vn -0.2189 -0.9235 0.3149 +vn -0.2270 -0.9572 0.1796 +vn -0.2301 -0.9702 0.0761 +vn -0.2307 -0.9729 0.0155 +vn -0.2307 -0.9730 -0.0053 +vn -0.5737 0.7307 0.3701 +vn -0.5593 0.7130 0.4228 +vn -0.5760 0.7335 0.3608 +vn -0.5104 0.6506 0.5624 +vn -0.4273 0.5442 0.7220 +vn -0.3083 0.3916 0.8669 +vn -0.1953 0.2472 0.9491 +vn -0.1334 0.1688 0.9766 +vn -0.0811 0.1025 0.9914 +vn -0.0391 0.0494 0.9980 +vn -0.0029 0.0035 1.0000 +vn 0.0260 -0.0331 0.9991 +vn 0.0462 -0.0587 0.9972 +vn 0.0639 -0.0811 0.9947 +vn 0.0734 -0.0931 0.9929 +vn 0.0757 -0.0961 0.9925 +vn 0.0814 -0.1033 0.9913 +vn 0.0893 -0.1134 0.9895 +vn 0.0976 -0.1240 0.9875 +vn 0.1064 -0.1351 0.9851 +vn 0.1156 -0.1469 0.9824 +vn 0.1254 -0.1594 0.9792 +vn 0.1358 -0.1726 0.9756 +vn 0.1468 -0.1866 0.9714 +vn 0.1585 -0.2015 0.9666 +vn 0.1709 -0.2173 0.9610 +vn 0.1841 -0.2341 0.9546 +vn 0.1996 -0.2539 0.9464 +vn 0.2174 -0.2765 0.9361 +vn 0.2358 -0.2999 0.9244 +vn 0.2574 -0.3273 0.9092 +vn 0.2827 -0.3596 0.8893 +vn 0.3102 -0.3946 0.8649 +vn 0.3400 -0.4325 0.8350 +vn 0.3722 -0.4734 0.7984 +vn 0.4064 -0.5170 0.7533 +vn 0.4426 -0.5630 0.6980 +vn 0.4798 -0.6103 0.6303 +vn 0.5169 -0.6576 0.5481 +vn 0.5536 -0.7043 0.4443 +vn 0.5865 -0.7462 0.3149 +vn 0.6078 -0.7735 0.1796 +vn 0.6160 -0.7840 0.0761 +vn 0.6178 -0.7862 0.0155 +vn 0.6178 -0.7863 -0.0054 +vn 0.9999 -0.0068 0.0155 +vn 0.9971 -0.0069 0.0761 +vn 1.0000 -0.0068 -0.0054 +vn 0.9837 -0.0067 0.1796 +vn 0.9491 -0.0064 0.3149 +vn 0.8958 -0.0060 0.4443 +vn 0.8364 -0.0055 0.5481 +vn 0.7763 -0.0051 0.6303 +vn 0.7161 -0.0047 0.6980 +vn 0.6576 -0.0044 0.7533 +vn 0.6022 -0.0040 0.7984 +vn 0.5502 -0.0036 0.8350 +vn 0.5019 -0.0033 0.8649 +vn 0.4574 -0.0030 0.8893 +vn 0.4164 -0.0027 0.9092 +vn 0.3816 -0.0025 0.9243 +vn 0.3517 -0.0023 0.9361 +vn 0.3229 -0.0021 0.9464 +vn 0.2978 -0.0019 0.9546 +vn 0.2764 -0.0018 0.9610 +vn 0.2564 -0.0016 0.9666 +vn 0.2374 -0.0015 0.9714 +vn 0.2196 -0.0014 0.9756 +vn 0.2028 -0.0013 0.9792 +vn 0.1869 -0.0011 0.9824 +vn 0.1719 -0.0010 0.9851 +vn 0.1577 -0.0009 0.9875 +vn 0.1443 -0.0008 0.9895 +vn 0.1315 -0.0007 0.9913 +vn 0.1223 -0.0007 0.9925 +vn 0.1186 -0.0007 0.9929 +vn 0.1032 -0.0006 0.9947 +vn 0.0747 -0.0005 0.9972 +vn 0.0421 -0.0003 0.9991 +vn -0.0046 -0.0001 1.0000 +vn -0.0630 0.0002 0.9980 +vn -0.1307 0.0005 0.9914 +vn -0.2152 0.0008 0.9766 +vn -0.3151 0.0013 0.9491 +vn -0.4982 0.0029 0.8670 +vn -0.6919 0.0049 0.7220 +vn -0.8269 0.0063 0.5623 +vn -0.9062 0.0070 0.4228 +vn -0.9290 0.0068 0.3701 +vn -0.9326 0.0066 0.3609 +vn -0.1173 0.0520 0.9917 +vn 0.0000 0.0520 0.9986 +vn 0.0000 -0.0055 1.0000 +vn -0.0785 -0.0055 0.9969 +vn -0.0784 0.0520 0.9956 +vn -0.0774 -0.1613 0.9839 +vn 0.0000 -0.1613 0.9869 +vn -0.1544 -0.1613 0.9747 +vn -0.1564 -0.0055 0.9877 +vn -0.2331 0.0520 0.9711 +vn -0.2334 -0.0055 0.9724 +vn -0.3090 -0.0055 0.9510 +vn -0.3086 0.0520 0.9498 +vn -0.1562 0.0520 0.9864 +vn -0.2304 -0.1613 0.9596 +vn -0.3050 -0.1613 0.9386 +vn -0.3822 0.0521 0.9226 +vn -0.3827 -0.0055 0.9239 +vn -0.4540 -0.0055 0.8910 +vn -0.4534 0.0521 0.8898 +vn -0.3777 -0.1613 0.9118 +vn -0.4480 -0.1613 0.8793 +vn -0.5218 0.0520 0.8515 +vn -0.5225 -0.0055 0.8526 +vn -0.5878 -0.0055 0.8090 +vn -0.5870 0.0520 0.8079 +vn -0.5156 -0.1613 0.8415 +vn -0.5801 -0.1613 0.7984 +vn -0.6486 0.0520 0.7594 +vn -0.6494 -0.0055 0.7604 +vn -0.7071 -0.0055 0.7071 +vn -0.7061 0.0520 0.7061 +vn -0.6409 -0.1613 0.7504 +vn -0.6978 -0.1613 0.6978 +vn -0.7594 0.0520 0.6486 +vn -0.7604 -0.0055 0.6494 +vn -0.8090 -0.0055 0.5878 +vn -0.8079 0.0520 0.5870 +vn -0.7504 -0.1613 0.6409 +vn -0.7984 -0.1613 0.5801 +vn -0.8515 0.0520 0.5218 +vn -0.8526 -0.0055 0.5225 +vn -0.8910 -0.0055 0.4540 +vn -0.8898 0.0520 0.4534 +vn -0.8415 -0.1613 0.5157 +vn -0.8793 -0.1613 0.4480 +vn -0.9226 0.0520 0.3822 +vn -0.9239 -0.0055 0.3827 +vn -0.9510 -0.0055 0.3090 +vn -0.9498 0.0520 0.3086 +vn -0.9118 -0.1613 0.3777 +vn -0.9386 -0.1613 0.3050 +vn -0.9711 0.0520 0.2331 +vn -0.9724 -0.0055 0.2334 +vn -0.9877 -0.0055 0.1564 +vn -0.9864 0.0520 0.1562 +vn -0.9596 -0.1613 0.2304 +vn -0.9747 -0.1613 0.1544 +vn -0.9956 0.0520 0.0784 +vn -0.9969 -0.0055 0.0785 +vn -1.0000 -0.0055 0.0000 +vn -0.9986 0.0520 -0.0000 +vn -0.9839 -0.1613 0.0774 +vn -0.9869 -0.1613 0.0000 +vn -0.9956 0.0520 -0.0784 +vn -0.9969 -0.0055 -0.0785 +vn -0.9877 -0.0055 -0.1564 +vn -0.9864 0.0520 -0.1562 +vn -0.9839 -0.1613 -0.0774 +vn -0.9748 -0.1613 -0.1544 +vn -0.9711 0.0520 -0.2331 +vn -0.9724 -0.0055 -0.2334 +vn -0.9510 -0.0055 -0.3090 +vn -0.9498 0.0520 -0.3086 +vn -0.9596 -0.1613 -0.2304 +vn -0.9386 -0.1613 -0.3050 +vn -0.9226 0.0520 -0.3822 +vn -0.9239 -0.0055 -0.3827 +vn -0.8910 -0.0055 -0.4540 +vn -0.8898 0.0520 -0.4534 +vn -0.9118 -0.1613 -0.3777 +vn -0.8793 -0.1613 -0.4480 +vn -0.8515 0.0520 -0.5218 +vn -0.8526 -0.0055 -0.5225 +vn -0.8090 -0.0055 -0.5878 +vn -0.8079 0.0520 -0.5870 +vn -0.8415 -0.1613 -0.5157 +vn -0.7984 -0.1613 -0.5801 +vn -0.7594 0.0520 -0.6486 +vn -0.7604 -0.0055 -0.6494 +vn -0.7071 -0.0055 -0.7071 +vn -0.7061 0.0520 -0.7062 +vn -0.7504 -0.1613 -0.6409 +vn -0.6978 -0.1613 -0.6978 +vn -0.6486 0.0520 -0.7594 +vn -0.6494 -0.0055 -0.7604 +vn -0.5878 -0.0055 -0.8090 +vn -0.5870 0.0520 -0.8079 +vn -0.6409 -0.1613 -0.7504 +vn -0.5801 -0.1613 -0.7984 +vn -0.5218 0.0520 -0.8515 +vn -0.5225 -0.0055 -0.8526 +vn -0.4540 -0.0055 -0.8910 +vn -0.4534 0.0520 -0.8898 +vn -0.5157 -0.1613 -0.8415 +vn -0.4480 -0.1613 -0.8793 +vn -0.3822 0.0520 -0.9226 +vn -0.3827 -0.0055 -0.9239 +vn -0.3090 -0.0055 -0.9510 +vn -0.3086 0.0520 -0.9498 +vn -0.3777 -0.1613 -0.9118 +vn -0.3050 -0.1613 -0.9386 +vn -0.2331 0.0520 -0.9711 +vn -0.2334 -0.0055 -0.9724 +vn -0.1564 -0.0055 -0.9877 +vn -0.1562 0.0520 -0.9864 +vn -0.2304 -0.1613 -0.9596 +vn -0.1544 -0.1613 -0.9747 +vn -0.0784 0.0520 -0.9956 +vn -0.0785 -0.0055 -0.9969 +vn -0.0000 -0.0055 -1.0000 +vn 0.0000 0.0520 -0.9986 +vn -0.0774 -0.1613 -0.9839 +vn -0.0000 -0.1613 -0.9869 +vn 0.0784 0.0521 -0.9956 +vn 0.0785 -0.0055 -0.9969 +vn 0.1564 -0.0055 -0.9877 +vn 0.1562 0.0521 -0.9863 +vn 0.0774 -0.1613 -0.9839 +vn 0.1544 -0.1614 -0.9747 +vn 0.2331 0.0521 -0.9711 +vn 0.2334 -0.0055 -0.9724 +vn 0.3090 -0.0055 -0.9510 +vn 0.3086 0.0520 -0.9498 +vn 0.2304 -0.1613 -0.9596 +vn 0.3050 -0.1613 -0.9386 +vn 0.3822 0.0520 -0.9226 +vn 0.3827 -0.0055 -0.9239 +vn 0.4540 -0.0055 -0.8910 +vn 0.4534 0.0520 -0.8898 +vn 0.3777 -0.1613 -0.9118 +vn 0.4480 -0.1613 -0.8793 +vn 0.5218 0.0520 -0.8515 +vn 0.5225 -0.0055 -0.8526 +vn 0.5878 -0.0055 -0.8090 +vn 0.5870 0.0520 -0.8079 +vn 0.5157 -0.1613 -0.8415 +vn 0.5801 -0.1613 -0.7984 +vn 0.6486 0.0520 -0.7594 +vn 0.6494 -0.0055 -0.7604 +vn 0.7071 -0.0055 -0.7071 +vn 0.7062 0.0520 -0.7062 +vn 0.6409 -0.1613 -0.7504 +vn 0.6978 -0.1613 -0.6978 +vn 0.7594 0.0520 -0.6486 +vn 0.7604 -0.0055 -0.6494 +vn 0.8090 -0.0055 -0.5878 +vn 0.8079 0.0520 -0.5870 +vn 0.7504 -0.1613 -0.6409 +vn 0.7984 -0.1613 -0.5801 +vn 0.8515 0.0520 -0.5218 +vn 0.8526 -0.0055 -0.5225 +vn 0.8910 -0.0055 -0.4540 +vn 0.8898 0.0520 -0.4534 +vn 0.8415 -0.1613 -0.5157 +vn 0.8793 -0.1613 -0.4480 +vn 0.9226 0.0520 -0.3822 +vn 0.9239 -0.0055 -0.3827 +vn 0.9510 -0.0055 -0.3090 +vn 0.9498 0.0520 -0.3086 +vn 0.9118 -0.1613 -0.3777 +vn 0.9386 -0.1613 -0.3050 +vn 0.9711 0.0520 -0.2331 +vn 0.9724 -0.0055 -0.2334 +vn 0.9877 -0.0055 -0.1564 +vn 0.9863 0.0521 -0.1562 +vn 0.9596 -0.1613 -0.2304 +vn 0.9747 -0.1613 -0.1544 +vn 0.9956 0.0521 -0.0783 +vn 0.9969 -0.0055 -0.0785 +vn 1.0000 -0.0055 0.0000 +vn 0.9986 0.0520 0.0000 +vn 0.9839 -0.1614 -0.0774 +vn 0.9869 -0.1614 -0.0000 +vn 0.9956 0.0520 0.0784 +vn 0.9969 -0.0055 0.0785 +vn 0.9877 -0.0055 0.1564 +vn 0.9864 0.0520 0.1562 +vn 0.9839 -0.1613 0.0774 +vn 0.9747 -0.1613 0.1544 +vn 0.9711 0.0520 0.2331 +vn 0.9724 -0.0055 0.2334 +vn 0.9510 -0.0055 0.3090 +vn 0.9498 0.0520 0.3086 +vn 0.9596 -0.1613 0.2304 +vn 0.9386 -0.1613 0.3050 +vn 0.9226 0.0520 0.3822 +vn 0.9239 -0.0055 0.3827 +vn 0.8910 -0.0055 0.4540 +vn 0.8898 0.0520 0.4534 +vn 0.9118 -0.1613 0.3777 +vn 0.8793 -0.1613 0.4480 +vn 0.8515 0.0521 0.5218 +vn 0.8526 -0.0055 0.5225 +vn 0.8090 -0.0055 0.5878 +vn 0.8079 0.0521 0.5870 +vn 0.8415 -0.1613 0.5157 +vn 0.7984 -0.1613 0.5801 +vn 0.7594 0.0520 0.6486 +vn 0.7604 -0.0055 0.6494 +vn 0.7071 -0.0055 0.7071 +vn 0.7061 0.0520 0.7061 +vn 0.7504 -0.1613 0.6409 +vn 0.6978 -0.1613 0.6978 +vn 0.6486 0.0520 0.7594 +vn 0.6494 -0.0055 0.7604 +vn 0.5878 -0.0055 0.8090 +vn 0.5870 0.0520 0.8079 +vn 0.6409 -0.1613 0.7504 +vn 0.5801 -0.1614 0.7984 +vn 0.5218 0.0520 0.8515 +vn 0.5225 -0.0055 0.8526 +vn 0.4540 -0.0055 0.8910 +vn 0.4534 0.0520 0.8898 +vn 0.5156 -0.1613 0.8415 +vn 0.4480 -0.1613 0.8793 +vn 0.3822 0.0520 0.9226 +vn 0.3827 -0.0055 0.9239 +vn 0.3090 -0.0055 0.9510 +vn 0.3086 0.0520 0.9498 +vn 0.3777 -0.1614 0.9118 +vn 0.3050 -0.1614 0.9386 +vn 0.2331 0.0520 0.9711 +vn 0.2334 -0.0055 0.9724 +vn 0.1564 -0.0055 0.9877 +vn 0.1562 0.0520 0.9864 +vn 0.2304 -0.1613 0.9596 +vn 0.1544 -0.1613 0.9747 +vn 0.0784 0.0520 0.9956 +vn 0.0785 -0.0055 0.9969 +vn 0.0774 -0.1613 0.9839 +vn -0.0000 -0.7805 0.6252 +vn -0.0491 -0.7805 0.6233 +vn -0.0632 -0.5929 0.8028 +vn -0.0000 -0.5929 0.8052 +vn -0.0000 -0.9094 0.4159 +vn -0.0326 -0.9094 0.4147 +vn -0.0978 -0.7805 0.6175 +vn -0.0651 -0.9094 0.4108 +vn -0.1260 -0.5929 0.7953 +vn -0.1459 -0.7805 0.6079 +vn -0.1880 -0.5929 0.7830 +vn -0.0971 -0.9094 0.4045 +vn -0.1932 -0.7805 0.5946 +vn -0.1285 -0.9094 0.3956 +vn -0.2488 -0.5929 0.7658 +vn -0.2393 -0.7805 0.5776 +vn -0.3082 -0.5929 0.7439 +vn -0.1592 -0.9094 0.3843 +vn -0.2838 -0.7805 0.5570 +vn -0.1888 -0.9094 0.3706 +vn -0.3656 -0.5929 0.7175 +vn -0.3267 -0.7805 0.5331 +vn -0.4207 -0.5929 0.6866 +vn -0.2173 -0.9094 0.3547 +vn -0.3675 -0.7805 0.5058 +vn -0.2445 -0.9094 0.3365 +vn -0.4733 -0.5929 0.6515 +vn -0.4060 -0.7805 0.4754 +vn -0.5230 -0.5929 0.6123 +vn -0.2701 -0.9094 0.3163 +vn -0.4421 -0.7805 0.4421 +vn -0.2941 -0.9094 0.2941 +vn -0.5694 -0.5929 0.5694 +vn -0.4754 -0.7805 0.4060 +vn -0.6123 -0.5929 0.5230 +vn -0.3163 -0.9094 0.2701 +vn -0.5058 -0.7805 0.3675 +vn -0.3365 -0.9094 0.2445 +vn -0.6515 -0.5929 0.4733 +vn -0.5331 -0.7805 0.3267 +vn -0.6866 -0.5929 0.4207 +vn -0.3547 -0.9094 0.2173 +vn -0.5570 -0.7805 0.2838 +vn -0.3706 -0.9094 0.1888 +vn -0.7175 -0.5930 0.3656 +vn -0.5776 -0.7805 0.2392 +vn -0.7439 -0.5929 0.3082 +vn -0.3843 -0.9094 0.1592 +vn -0.5946 -0.7805 0.1932 +vn -0.3956 -0.9094 0.1285 +vn -0.7658 -0.5929 0.2488 +vn -0.6079 -0.7805 0.1459 +vn -0.7830 -0.5929 0.1880 +vn -0.4045 -0.9094 0.0971 +vn -0.6175 -0.7805 0.0978 +vn -0.4108 -0.9094 0.0651 +vn -0.7953 -0.5930 0.1260 +vn -0.6233 -0.7805 0.0491 +vn -0.8028 -0.5930 0.0632 +vn -0.4147 -0.9094 0.0326 +vn -0.6252 -0.7805 0.0000 +vn -0.4159 -0.9094 -0.0000 +vn -0.8052 -0.5930 0.0000 +vn -0.6233 -0.7805 -0.0491 +vn -0.8028 -0.5930 -0.0632 +vn -0.4147 -0.9094 -0.0326 +vn -0.6175 -0.7805 -0.0978 +vn -0.4108 -0.9094 -0.0651 +vn -0.7953 -0.5929 -0.1260 +vn -0.6079 -0.7805 -0.1459 +vn -0.7830 -0.5929 -0.1880 +vn -0.4045 -0.9094 -0.0971 +vn -0.5946 -0.7805 -0.1932 +vn -0.3956 -0.9094 -0.1285 +vn -0.7658 -0.5929 -0.2488 +vn -0.5776 -0.7805 -0.2392 +vn -0.7439 -0.5929 -0.3082 +vn -0.3843 -0.9094 -0.1592 +vn -0.5570 -0.7805 -0.2838 +vn -0.3706 -0.9094 -0.1888 +vn -0.7175 -0.5929 -0.3656 +vn -0.5331 -0.7805 -0.3267 +vn -0.6866 -0.5929 -0.4207 +vn -0.3547 -0.9094 -0.2173 +vn -0.5058 -0.7805 -0.3675 +vn -0.3365 -0.9094 -0.2445 +vn -0.6515 -0.5929 -0.4733 +vn -0.4754 -0.7805 -0.4060 +vn -0.6123 -0.5929 -0.5230 +vn -0.3163 -0.9094 -0.2701 +vn -0.4421 -0.7805 -0.4421 +vn -0.2941 -0.9094 -0.2941 +vn -0.5694 -0.5929 -0.5694 +vn -0.4060 -0.7805 -0.4754 +vn -0.5230 -0.5929 -0.6123 +vn -0.2701 -0.9094 -0.3163 +vn -0.3675 -0.7805 -0.5058 +vn -0.2445 -0.9094 -0.3365 +vn -0.4733 -0.5929 -0.6515 +vn -0.3267 -0.7805 -0.5331 +vn -0.4207 -0.5929 -0.6866 +vn -0.2173 -0.9094 -0.3547 +vn -0.2838 -0.7805 -0.5570 +vn -0.1888 -0.9094 -0.3706 +vn -0.3656 -0.5929 -0.7175 +vn -0.2392 -0.7805 -0.5776 +vn -0.3081 -0.5929 -0.7440 +vn -0.1592 -0.9094 -0.3843 +vn -0.1932 -0.7805 -0.5946 +vn -0.1285 -0.9094 -0.3956 +vn -0.2488 -0.5929 -0.7658 +vn -0.1459 -0.7805 -0.6079 +vn -0.1880 -0.5929 -0.7830 +vn -0.0971 -0.9094 -0.4045 +vn -0.0978 -0.7805 -0.6175 +vn -0.0651 -0.9094 -0.4108 +vn -0.1260 -0.5929 -0.7953 +vn -0.0491 -0.7805 -0.6233 +vn -0.0632 -0.5929 -0.8028 +vn -0.0326 -0.9094 -0.4147 +vn -0.0000 -0.7805 -0.6252 +vn -0.0000 -0.9094 -0.4159 +vn -0.0000 -0.5929 -0.8052 +vn 0.0490 -0.7805 -0.6233 +vn 0.0632 -0.5929 -0.8028 +vn 0.0326 -0.9094 -0.4147 +vn 0.0978 -0.7805 -0.6175 +vn 0.0651 -0.9094 -0.4108 +vn 0.1260 -0.5929 -0.7953 +vn 0.1459 -0.7805 -0.6079 +vn 0.1880 -0.5929 -0.7830 +vn 0.0971 -0.9094 -0.4045 +vn 0.1932 -0.7805 -0.5946 +vn 0.1285 -0.9094 -0.3956 +vn 0.2488 -0.5929 -0.7658 +vn 0.2392 -0.7805 -0.5776 +vn 0.3082 -0.5929 -0.7440 +vn 0.1592 -0.9094 -0.3843 +vn 0.2838 -0.7805 -0.5570 +vn 0.1888 -0.9094 -0.3706 +vn 0.3656 -0.5929 -0.7175 +vn 0.3267 -0.7805 -0.5331 +vn 0.4207 -0.5929 -0.6866 +vn 0.2173 -0.9094 -0.3547 +vn 0.3675 -0.7805 -0.5058 +vn 0.2445 -0.9094 -0.3365 +vn 0.4733 -0.5929 -0.6515 +vn 0.4060 -0.7805 -0.4754 +vn 0.5230 -0.5929 -0.6123 +vn 0.2701 -0.9094 -0.3163 +vn 0.4421 -0.7805 -0.4421 +vn 0.2941 -0.9094 -0.2941 +vn 0.5694 -0.5929 -0.5694 +vn 0.4754 -0.7805 -0.4060 +vn 0.6123 -0.5929 -0.5230 +vn 0.3163 -0.9094 -0.2701 +vn 0.5058 -0.7805 -0.3675 +vn 0.3365 -0.9094 -0.2445 +vn 0.6515 -0.5929 -0.4733 +vn 0.5331 -0.7805 -0.3267 +vn 0.6866 -0.5929 -0.4207 +vn 0.3547 -0.9094 -0.2173 +vn 0.5570 -0.7805 -0.2838 +vn 0.3706 -0.9094 -0.1888 +vn 0.7175 -0.5929 -0.3656 +vn 0.5776 -0.7805 -0.2392 +vn 0.7440 -0.5929 -0.3082 +vn 0.3843 -0.9094 -0.1592 +vn 0.5946 -0.7805 -0.1932 +vn 0.3956 -0.9094 -0.1285 +vn 0.7658 -0.5929 -0.2488 +vn 0.6079 -0.7805 -0.1459 +vn 0.7830 -0.5929 -0.1880 +vn 0.4045 -0.9094 -0.0971 +vn 0.6175 -0.7805 -0.0978 +vn 0.4108 -0.9094 -0.0651 +vn 0.7953 -0.5929 -0.1260 +vn 0.6233 -0.7805 -0.0490 +vn 0.8028 -0.5929 -0.0632 +vn 0.4147 -0.9094 -0.0326 +vn 0.6252 -0.7805 -0.0000 +vn 0.4159 -0.9094 0.0000 +vn 0.8053 -0.5929 -0.0000 +vn 0.6233 -0.7805 0.0491 +vn 0.8028 -0.5929 0.0632 +vn 0.4147 -0.9094 0.0326 +vn 0.6175 -0.7805 0.0978 +vn 0.4108 -0.9094 0.0651 +vn 0.7953 -0.5929 0.1260 +vn 0.6079 -0.7805 0.1459 +vn 0.7830 -0.5929 0.1880 +vn 0.4045 -0.9094 0.0971 +vn 0.5946 -0.7805 0.1932 +vn 0.3956 -0.9094 0.1285 +vn 0.7658 -0.5929 0.2488 +vn 0.5776 -0.7805 0.2392 +vn 0.7440 -0.5929 0.3082 +vn 0.3843 -0.9094 0.1592 +vn 0.5570 -0.7805 0.2838 +vn 0.3706 -0.9094 0.1888 +vn 0.7175 -0.5929 0.3656 +vn 0.5331 -0.7805 0.3267 +vn 0.6866 -0.5929 0.4207 +vn 0.3547 -0.9094 0.2173 +vn 0.5058 -0.7805 0.3675 +vn 0.3365 -0.9094 0.2445 +vn 0.6515 -0.5929 0.4733 +vn 0.4754 -0.7805 0.4060 +vn 0.6123 -0.5929 0.5230 +vn 0.3163 -0.9094 0.2701 +vn 0.4421 -0.7805 0.4421 +vn 0.2941 -0.9094 0.2941 +vn 0.5694 -0.5929 0.5694 +vn 0.4060 -0.7805 0.4754 +vn 0.5230 -0.5929 0.6123 +vn 0.2701 -0.9094 0.3163 +vn 0.3675 -0.7805 0.5058 +vn 0.2445 -0.9094 0.3365 +vn 0.4733 -0.5929 0.6515 +vn 0.3267 -0.7805 0.5331 +vn 0.4207 -0.5929 0.6866 +vn 0.2173 -0.9094 0.3547 +vn 0.2838 -0.7805 0.5570 +vn 0.1888 -0.9094 0.3706 +vn 0.3656 -0.5929 0.7175 +vn 0.2392 -0.7805 0.5776 +vn 0.3082 -0.5929 0.7440 +vn 0.1592 -0.9094 0.3843 +vn 0.1932 -0.7805 0.5946 +vn 0.1285 -0.9094 0.3956 +vn 0.2488 -0.5929 0.7658 +vn 0.1459 -0.7805 0.6079 +vn 0.1880 -0.5929 0.7830 +vn 0.0971 -0.9094 0.4045 +vn 0.0978 -0.7805 0.6175 +vn 0.0651 -0.9094 0.4108 +vn 0.1260 -0.5929 0.7953 +vn 0.0491 -0.7805 0.6233 +vn 0.0632 -0.5929 0.8028 +vn 0.0326 -0.9094 0.4147 +vn -0.0000 -0.9697 0.2443 +vn -0.0192 -0.9697 0.2436 +vn -0.0000 -0.9822 0.1881 +vn -0.0148 -0.9822 0.1875 +vn -0.0382 -0.9697 0.2413 +vn -0.0294 -0.9822 0.1858 +vn -0.0570 -0.9697 0.2376 +vn -0.0439 -0.9822 0.1829 +vn -0.0755 -0.9697 0.2324 +vn -0.0581 -0.9822 0.1789 +vn -0.0935 -0.9697 0.2257 +vn -0.0720 -0.9822 0.1738 +vn -0.1109 -0.9697 0.2177 +vn -0.0854 -0.9822 0.1676 +vn -0.1277 -0.9697 0.2083 +vn -0.0983 -0.9822 0.1604 +vn -0.1436 -0.9697 0.1976 +vn -0.1106 -0.9822 0.1522 +vn -0.1587 -0.9697 0.1858 +vn -0.1222 -0.9822 0.1430 +vn -0.1728 -0.9697 0.1728 +vn -0.1330 -0.9822 0.1330 +vn -0.1858 -0.9697 0.1587 +vn -0.1430 -0.9821 0.1222 +vn -0.1976 -0.9697 0.1436 +vn -0.1522 -0.9821 0.1106 +vn -0.2083 -0.9697 0.1277 +vn -0.1604 -0.9821 0.0983 +vn -0.2177 -0.9697 0.1109 +vn -0.1676 -0.9822 0.0854 +vn -0.2257 -0.9697 0.0935 +vn -0.1738 -0.9822 0.0720 +vn -0.2323 -0.9697 0.0755 +vn -0.1789 -0.9822 0.0581 +vn -0.2376 -0.9697 0.0570 +vn -0.1829 -0.9821 0.0439 +vn -0.2413 -0.9697 0.0382 +vn -0.1858 -0.9822 0.0294 +vn -0.2436 -0.9697 0.0192 +vn -0.1875 -0.9821 0.0148 +vn -0.2443 -0.9697 -0.0000 +vn -0.1881 -0.9821 0.0000 +vn -0.2436 -0.9697 -0.0192 +vn -0.1875 -0.9821 -0.0148 +vn -0.2413 -0.9697 -0.0382 +vn -0.1858 -0.9822 -0.0294 +vn -0.2376 -0.9697 -0.0570 +vn -0.1829 -0.9822 -0.0439 +vn -0.2324 -0.9697 -0.0755 +vn -0.1789 -0.9822 -0.0581 +vn -0.2257 -0.9697 -0.0935 +vn -0.1738 -0.9821 -0.0720 +vn -0.2177 -0.9697 -0.1109 +vn -0.1676 -0.9822 -0.0854 +vn -0.2083 -0.9697 -0.1277 +vn -0.1604 -0.9822 -0.0983 +vn -0.1976 -0.9697 -0.1436 +vn -0.1522 -0.9822 -0.1106 +vn -0.1858 -0.9697 -0.1587 +vn -0.1430 -0.9822 -0.1222 +vn -0.1728 -0.9697 -0.1728 +vn -0.1330 -0.9822 -0.1330 +vn -0.1587 -0.9697 -0.1858 +vn -0.1222 -0.9822 -0.1430 +vn -0.1436 -0.9697 -0.1976 +vn -0.1106 -0.9821 -0.1522 +vn -0.1277 -0.9697 -0.2083 +vn -0.0983 -0.9821 -0.1604 +vn -0.1109 -0.9697 -0.2177 +vn -0.0854 -0.9821 -0.1676 +vn -0.0935 -0.9697 -0.2257 +vn -0.0720 -0.9822 -0.1738 +vn -0.0755 -0.9697 -0.2324 +vn -0.0581 -0.9822 -0.1789 +vn -0.0570 -0.9697 -0.2376 +vn -0.0439 -0.9822 -0.1829 +vn -0.0382 -0.9697 -0.2413 +vn -0.0294 -0.9822 -0.1858 +vn -0.0192 -0.9697 -0.2436 +vn -0.0148 -0.9822 -0.1875 +vn -0.0000 -0.9697 -0.2443 +vn -0.0000 -0.9821 -0.1881 +vn 0.0192 -0.9697 -0.2436 +vn 0.0148 -0.9822 -0.1875 +vn 0.0382 -0.9697 -0.2413 +vn 0.0294 -0.9822 -0.1858 +vn 0.0570 -0.9697 -0.2376 +vn 0.0439 -0.9822 -0.1829 +vn 0.0755 -0.9697 -0.2324 +vn 0.0581 -0.9822 -0.1789 +vn 0.0935 -0.9697 -0.2257 +vn 0.0720 -0.9822 -0.1738 +vn 0.1109 -0.9697 -0.2177 +vn 0.0854 -0.9822 -0.1676 +vn 0.1277 -0.9697 -0.2083 +vn 0.0983 -0.9822 -0.1604 +vn 0.1436 -0.9697 -0.1977 +vn 0.1106 -0.9822 -0.1522 +vn 0.1587 -0.9697 -0.1858 +vn 0.1222 -0.9822 -0.1430 +vn 0.1728 -0.9697 -0.1728 +vn 0.1330 -0.9822 -0.1330 +vn 0.1858 -0.9697 -0.1587 +vn 0.1430 -0.9822 -0.1222 +vn 0.1977 -0.9697 -0.1436 +vn 0.1522 -0.9822 -0.1106 +vn 0.2083 -0.9697 -0.1277 +vn 0.1604 -0.9822 -0.0983 +vn 0.2177 -0.9697 -0.1109 +vn 0.1676 -0.9822 -0.0854 +vn 0.2257 -0.9697 -0.0935 +vn 0.1738 -0.9822 -0.0720 +vn 0.2324 -0.9697 -0.0755 +vn 0.1789 -0.9822 -0.0581 +vn 0.2376 -0.9697 -0.0570 +vn 0.1829 -0.9822 -0.0439 +vn 0.2413 -0.9697 -0.0382 +vn 0.1858 -0.9822 -0.0294 +vn 0.2436 -0.9697 -0.0192 +vn 0.1875 -0.9822 -0.0148 +vn 0.2443 -0.9697 -0.0000 +vn 0.1881 -0.9822 -0.0000 +vn 0.2436 -0.9697 0.0192 +vn 0.1875 -0.9822 0.0148 +vn 0.2413 -0.9697 0.0382 +vn 0.1858 -0.9822 0.0294 +vn 0.2376 -0.9697 0.0570 +vn 0.1829 -0.9822 0.0439 +vn 0.2324 -0.9697 0.0755 +vn 0.1789 -0.9822 0.0581 +vn 0.2257 -0.9697 0.0935 +vn 0.1737 -0.9822 0.0720 +vn 0.2177 -0.9697 0.1109 +vn 0.1676 -0.9822 0.0854 +vn 0.2083 -0.9697 0.1277 +vn 0.1604 -0.9822 0.0983 +vn 0.1977 -0.9697 0.1436 +vn 0.1522 -0.9821 0.1106 +vn 0.1858 -0.9697 0.1587 +vn 0.1430 -0.9822 0.1222 +vn 0.1728 -0.9697 0.1728 +vn 0.1330 -0.9821 0.1330 +vn 0.1587 -0.9697 0.1858 +vn 0.1222 -0.9821 0.1430 +vn 0.1436 -0.9697 0.1977 +vn 0.1106 -0.9822 0.1522 +vn 0.1277 -0.9697 0.2083 +vn 0.0983 -0.9822 0.1604 +vn 0.1109 -0.9697 0.2177 +vn 0.0854 -0.9822 0.1676 +vn 0.0935 -0.9697 0.2257 +vn 0.0720 -0.9822 0.1738 +vn 0.0755 -0.9697 0.2324 +vn 0.0581 -0.9822 0.1789 +vn 0.0570 -0.9697 0.2376 +vn 0.0439 -0.9822 0.1829 +vn 0.0382 -0.9697 0.2413 +vn 0.0294 -0.9822 0.1858 +vn 0.0192 -0.9697 0.2436 +vn 0.0148 -0.9822 0.1875 +vn 0.0000 -0.3691 0.9294 +vn -0.0729 -0.3691 0.9265 +vn -0.1454 -0.3691 0.9180 +vn -0.2170 -0.3691 0.9037 +vn -0.2872 -0.3691 0.8839 +vn -0.3557 -0.3691 0.8587 +vn -0.4219 -0.3691 0.8281 +vn -0.4856 -0.3691 0.7924 +vn -0.5463 -0.3691 0.7519 +vn -0.6036 -0.3691 0.7067 +vn -0.6572 -0.3691 0.6572 +vn -0.7067 -0.3691 0.6036 +vn -0.7519 -0.3691 0.5463 +vn -0.7924 -0.3691 0.4856 +vn -0.8281 -0.3691 0.4219 +vn -0.8586 -0.3691 0.3557 +vn -0.8839 -0.3691 0.2872 +vn -0.9037 -0.3691 0.2170 +vn -0.9179 -0.3691 0.1454 +vn -0.9265 -0.3691 0.0729 +vn -0.9294 -0.3691 0.0000 +vn -0.9265 -0.3691 -0.0729 +vn -0.9180 -0.3691 -0.1454 +vn -0.9037 -0.3691 -0.2170 +vn -0.8839 -0.3691 -0.2872 +vn -0.8587 -0.3691 -0.3557 +vn -0.8281 -0.3691 -0.4219 +vn -0.7924 -0.3691 -0.4856 +vn -0.7519 -0.3691 -0.5463 +vn -0.7067 -0.3691 -0.6036 +vn -0.6572 -0.3691 -0.6572 +vn -0.6036 -0.3691 -0.7067 +vn -0.5463 -0.3691 -0.7519 +vn -0.4856 -0.3691 -0.7924 +vn -0.4219 -0.3691 -0.8281 +vn -0.3557 -0.3691 -0.8587 +vn -0.2872 -0.3691 -0.8839 +vn -0.2170 -0.3691 -0.9037 +vn -0.1454 -0.3691 -0.9180 +vn -0.0729 -0.3691 -0.9265 +vn -0.0000 -0.3691 -0.9294 +vn 0.0729 -0.3691 -0.9265 +vn 0.1454 -0.3691 -0.9180 +vn 0.2170 -0.3691 -0.9037 +vn 0.2872 -0.3691 -0.8839 +vn 0.3557 -0.3691 -0.8586 +vn 0.4219 -0.3691 -0.8281 +vn 0.4856 -0.3691 -0.7924 +vn 0.5463 -0.3691 -0.7519 +vn 0.6036 -0.3691 -0.7067 +vn 0.6572 -0.3691 -0.6572 +vn 0.7067 -0.3691 -0.6036 +vn 0.7519 -0.3691 -0.5463 +vn 0.7924 -0.3691 -0.4856 +vn 0.8281 -0.3691 -0.4219 +vn 0.8587 -0.3691 -0.3557 +vn 0.8839 -0.3691 -0.2872 +vn 0.9037 -0.3691 -0.2170 +vn 0.9180 -0.3691 -0.1454 +vn 0.9265 -0.3691 -0.0729 +vn 0.9294 -0.3691 -0.0000 +vn 0.9265 -0.3691 0.0729 +vn 0.9180 -0.3691 0.1454 +vn 0.9037 -0.3691 0.2170 +vn 0.8839 -0.3691 0.2872 +vn 0.8586 -0.3691 0.3557 +vn 0.8281 -0.3691 0.4219 +vn 0.7924 -0.3691 0.4856 +vn 0.7519 -0.3691 0.5463 +vn 0.7067 -0.3691 0.6036 +vn 0.6572 -0.3691 0.6572 +vn 0.6036 -0.3691 0.7067 +vn 0.5463 -0.3691 0.7519 +vn 0.4856 -0.3691 0.7924 +vn 0.4219 -0.3691 0.8281 +vn 0.3557 -0.3691 0.8587 +vn 0.2872 -0.3691 0.8839 +vn 0.2170 -0.3691 0.9037 +vn 0.1454 -0.3691 0.9180 +vn 0.0729 -0.3691 0.9265 +vn -0.0784 -0.0520 0.9956 +vn -0.1562 -0.0520 0.9864 +vn -0.1564 0.0055 0.9877 +vn -0.0785 0.0055 0.9969 +vn 0.0000 -0.0520 0.9986 +vn 0.0000 0.0055 1.0000 +vn -0.0774 0.1613 0.9839 +vn 0.0000 0.1613 0.9869 +vn -0.1544 0.1613 0.9747 +vn -0.2331 -0.0520 0.9711 +vn -0.3086 -0.0520 0.9498 +vn -0.3090 0.0055 0.9510 +vn -0.2334 0.0055 0.9724 +vn -0.2304 0.1613 0.9596 +vn -0.3050 0.1613 0.9386 +vn -0.3822 -0.0521 0.9226 +vn -0.4534 -0.0521 0.8898 +vn -0.4540 0.0055 0.8910 +vn -0.3827 0.0055 0.9239 +vn -0.3777 0.1613 0.9118 +vn -0.4480 0.1613 0.8793 +vn -0.5218 -0.0520 0.8515 +vn -0.5870 -0.0520 0.8079 +vn -0.5878 0.0055 0.8090 +vn -0.5225 0.0055 0.8526 +vn -0.5156 0.1613 0.8415 +vn -0.5801 0.1613 0.7984 +vn -0.6486 -0.0520 0.7594 +vn -0.7061 -0.0520 0.7061 +vn -0.7071 0.0055 0.7071 +vn -0.6494 0.0055 0.7604 +vn -0.6409 0.1613 0.7504 +vn -0.6978 0.1613 0.6978 +vn -0.7594 -0.0520 0.6486 +vn -0.8079 -0.0520 0.5870 +vn -0.8090 0.0055 0.5878 +vn -0.7604 0.0055 0.6494 +vn -0.7504 0.1613 0.6409 +vn -0.7984 0.1613 0.5801 +vn -0.8515 -0.0520 0.5218 +vn -0.8898 -0.0520 0.4534 +vn -0.8910 0.0055 0.4540 +vn -0.8526 0.0055 0.5225 +vn -0.8415 0.1613 0.5157 +vn -0.8793 0.1613 0.4480 +vn -0.9226 -0.0520 0.3822 +vn -0.9498 -0.0520 0.3086 +vn -0.9510 0.0055 0.3090 +vn -0.9239 0.0055 0.3827 +vn -0.9118 0.1613 0.3777 +vn -0.9386 0.1613 0.3050 +vn -0.9711 -0.0520 0.2331 +vn -0.9864 -0.0520 0.1562 +vn -0.9877 0.0055 0.1564 +vn -0.9724 0.0055 0.2334 +vn -0.9596 0.1613 0.2304 +vn -0.9747 0.1613 0.1544 +vn -0.9956 -0.0520 0.0784 +vn -0.9986 -0.0520 -0.0000 +vn -1.0000 0.0055 0.0000 +vn -0.9969 0.0055 0.0785 +vn -0.9839 0.1613 0.0774 +vn -0.9869 0.1613 0.0000 +vn -0.9956 -0.0520 -0.0784 +vn -0.9864 -0.0520 -0.1562 +vn -0.9877 0.0055 -0.1564 +vn -0.9969 0.0055 -0.0785 +vn -0.9839 0.1613 -0.0774 +vn -0.9748 0.1613 -0.1544 +vn -0.9711 -0.0520 -0.2331 +vn -0.9498 -0.0520 -0.3086 +vn -0.9510 0.0055 -0.3090 +vn -0.9724 0.0055 -0.2334 +vn -0.9596 0.1613 -0.2304 +vn -0.9386 0.1613 -0.3050 +vn -0.9226 -0.0520 -0.3822 +vn -0.8898 -0.0520 -0.4534 +vn -0.8910 0.0055 -0.4540 +vn -0.9239 0.0055 -0.3827 +vn -0.9118 0.1613 -0.3777 +vn -0.8793 0.1613 -0.4480 +vn -0.8515 -0.0520 -0.5218 +vn -0.8079 -0.0520 -0.5870 +vn -0.8090 0.0055 -0.5878 +vn -0.8526 0.0055 -0.5225 +vn -0.8415 0.1613 -0.5157 +vn -0.7984 0.1613 -0.5801 +vn -0.7594 -0.0520 -0.6486 +vn -0.7061 -0.0520 -0.7061 +vn -0.7071 0.0055 -0.7071 +vn -0.7604 0.0055 -0.6494 +vn -0.7504 0.1613 -0.6409 +vn -0.6978 0.1613 -0.6978 +vn -0.6486 -0.0520 -0.7594 +vn -0.5870 -0.0520 -0.8079 +vn -0.5878 0.0055 -0.8090 +vn -0.6494 0.0055 -0.7604 +vn -0.6409 0.1613 -0.7504 +vn -0.5801 0.1613 -0.7984 +vn -0.5218 -0.0520 -0.8515 +vn -0.4534 -0.0520 -0.8898 +vn -0.4540 0.0055 -0.8910 +vn -0.5225 0.0055 -0.8526 +vn -0.5157 0.1613 -0.8415 +vn -0.4480 0.1613 -0.8793 +vn -0.3822 -0.0520 -0.9226 +vn -0.3086 -0.0520 -0.9498 +vn -0.3090 0.0055 -0.9510 +vn -0.3827 0.0055 -0.9239 +vn -0.3777 0.1613 -0.9118 +vn -0.3050 0.1613 -0.9386 +vn -0.2331 -0.0520 -0.9711 +vn -0.1562 -0.0520 -0.9864 +vn -0.1564 0.0055 -0.9877 +vn -0.2334 0.0055 -0.9724 +vn -0.2304 0.1613 -0.9596 +vn -0.1544 0.1613 -0.9747 +vn -0.0784 -0.0520 -0.9956 +vn 0.0000 -0.0520 -0.9986 +vn -0.0000 0.0055 -1.0000 +vn -0.0785 0.0055 -0.9969 +vn -0.0774 0.1613 -0.9839 +vn -0.0000 0.1613 -0.9869 +vn 0.0784 -0.0521 -0.9956 +vn 0.1562 -0.0521 -0.9863 +vn 0.1564 0.0055 -0.9877 +vn 0.0785 0.0055 -0.9969 +vn 0.0774 0.1613 -0.9839 +vn 0.1544 0.1614 -0.9747 +vn 0.2331 -0.0521 -0.9711 +vn 0.3086 -0.0520 -0.9498 +vn 0.3090 0.0055 -0.9510 +vn 0.2334 0.0055 -0.9724 +vn 0.2304 0.1613 -0.9596 +vn 0.3050 0.1613 -0.9386 +vn 0.3822 -0.0520 -0.9226 +vn 0.4534 -0.0520 -0.8898 +vn 0.4540 0.0055 -0.8910 +vn 0.3827 0.0055 -0.9239 +vn 0.3777 0.1613 -0.9118 +vn 0.4480 0.1613 -0.8793 +vn 0.5218 -0.0520 -0.8515 +vn 0.5870 -0.0520 -0.8079 +vn 0.5878 0.0055 -0.8090 +vn 0.5225 0.0055 -0.8526 +vn 0.5157 0.1613 -0.8415 +vn 0.5801 0.1613 -0.7984 +vn 0.6486 -0.0520 -0.7594 +vn 0.7061 -0.0520 -0.7062 +vn 0.7071 0.0055 -0.7071 +vn 0.6494 0.0055 -0.7604 +vn 0.6409 0.1613 -0.7504 +vn 0.6978 0.1613 -0.6978 +vn 0.7594 -0.0520 -0.6486 +vn 0.8079 -0.0520 -0.5870 +vn 0.8090 0.0055 -0.5878 +vn 0.7604 0.0055 -0.6494 +vn 0.7504 0.1613 -0.6409 +vn 0.7984 0.1613 -0.5801 +vn 0.8515 -0.0520 -0.5218 +vn 0.8898 -0.0520 -0.4534 +vn 0.8910 0.0055 -0.4540 +vn 0.8526 0.0055 -0.5225 +vn 0.8415 0.1613 -0.5157 +vn 0.8793 0.1613 -0.4480 +vn 0.9226 -0.0520 -0.3822 +vn 0.9498 -0.0520 -0.3086 +vn 0.9510 0.0055 -0.3090 +vn 0.9239 0.0055 -0.3827 +vn 0.9118 0.1613 -0.3777 +vn 0.9386 0.1613 -0.3050 +vn 0.9711 -0.0520 -0.2331 +vn 0.9863 -0.0521 -0.1562 +vn 0.9877 0.0055 -0.1564 +vn 0.9724 0.0055 -0.2334 +vn 0.9596 0.1613 -0.2304 +vn 0.9747 0.1613 -0.1544 +vn 0.9956 -0.0521 -0.0783 +vn 0.9986 -0.0520 0.0000 +vn 1.0000 0.0055 0.0000 +vn 0.9969 0.0055 -0.0785 +vn 0.9839 0.1614 -0.0774 +vn 0.9869 0.1614 -0.0000 +vn 0.9956 -0.0520 0.0784 +vn 0.9864 -0.0520 0.1562 +vn 0.9877 0.0055 0.1564 +vn 0.9969 0.0055 0.0785 +vn 0.9839 0.1613 0.0774 +vn 0.9747 0.1613 0.1544 +vn 0.9711 -0.0520 0.2331 +vn 0.9498 -0.0520 0.3086 +vn 0.9510 0.0055 0.3090 +vn 0.9724 0.0055 0.2334 +vn 0.9596 0.1613 0.2304 +vn 0.9386 0.1613 0.3050 +vn 0.9226 -0.0520 0.3822 +vn 0.8898 -0.0520 0.4534 +vn 0.8910 0.0055 0.4540 +vn 0.9239 0.0055 0.3827 +vn 0.9118 0.1613 0.3777 +vn 0.8793 0.1613 0.4480 +vn 0.8515 -0.0521 0.5218 +vn 0.8079 -0.0521 0.5870 +vn 0.8090 0.0055 0.5878 +vn 0.8526 0.0055 0.5225 +vn 0.8415 0.1613 0.5157 +vn 0.7984 0.1613 0.5801 +vn 0.7594 -0.0520 0.6486 +vn 0.7061 -0.0520 0.7061 +vn 0.7071 0.0055 0.7071 +vn 0.7604 0.0055 0.6494 +vn 0.7504 0.1613 0.6409 +vn 0.6978 0.1613 0.6978 +vn 0.6486 -0.0520 0.7594 +vn 0.5870 -0.0520 0.8079 +vn 0.5878 0.0055 0.8090 +vn 0.6494 0.0055 0.7604 +vn 0.6409 0.1613 0.7504 +vn 0.5801 0.1614 0.7984 +vn 0.5218 -0.0520 0.8515 +vn 0.4534 -0.0520 0.8898 +vn 0.4540 0.0055 0.8910 +vn 0.5225 0.0055 0.8526 +vn 0.5156 0.1613 0.8415 +vn 0.4480 0.1613 0.8793 +vn 0.3822 -0.0520 0.9226 +vn 0.3086 -0.0520 0.9498 +vn 0.3090 0.0055 0.9510 +vn 0.3827 0.0055 0.9239 +vn 0.3777 0.1614 0.9118 +vn 0.3050 0.1614 0.9386 +vn 0.2331 -0.0520 0.9711 +vn 0.1562 -0.0520 0.9864 +vn 0.1564 0.0055 0.9877 +vn 0.2334 0.0055 0.9724 +vn 0.2304 0.1613 0.9596 +vn 0.1544 0.1613 0.9747 +vn 0.0784 -0.0520 0.9956 +vn 0.0785 0.0055 0.9969 +vn 0.0774 0.1613 0.9839 +vn -0.0000 0.7805 0.6252 +vn -0.0000 0.5929 0.8052 +vn -0.0632 0.5929 0.8028 +vn -0.0491 0.7805 0.6233 +vn -0.0000 0.9094 0.4159 +vn -0.0326 0.9094 0.4147 +vn -0.0978 0.7805 0.6175 +vn -0.0651 0.9094 0.4108 +vn -0.1260 0.5929 0.7953 +vn -0.1880 0.5929 0.7830 +vn -0.1459 0.7805 0.6079 +vn -0.0971 0.9094 0.4045 +vn -0.1932 0.7805 0.5946 +vn -0.1285 0.9094 0.3956 +vn -0.2488 0.5929 0.7658 +vn -0.3082 0.5929 0.7439 +vn -0.2393 0.7805 0.5776 +vn -0.1592 0.9094 0.3843 +vn -0.2838 0.7805 0.5570 +vn -0.1888 0.9094 0.3706 +vn -0.3656 0.5929 0.7175 +vn -0.4207 0.5929 0.6866 +vn -0.3267 0.7805 0.5331 +vn -0.2173 0.9094 0.3547 +vn -0.3675 0.7805 0.5058 +vn -0.2445 0.9094 0.3365 +vn -0.4733 0.5929 0.6515 +vn -0.5230 0.5929 0.6123 +vn -0.4060 0.7805 0.4754 +vn -0.2701 0.9094 0.3163 +vn -0.4421 0.7805 0.4421 +vn -0.2941 0.9094 0.2941 +vn -0.5694 0.5929 0.5694 +vn -0.6123 0.5929 0.5230 +vn -0.4754 0.7805 0.4060 +vn -0.3163 0.9094 0.2701 +vn -0.5058 0.7805 0.3675 +vn -0.3365 0.9094 0.2445 +vn -0.6515 0.5929 0.4733 +vn -0.6866 0.5929 0.4207 +vn -0.5331 0.7805 0.3267 +vn -0.3547 0.9094 0.2173 +vn -0.5570 0.7805 0.2838 +vn -0.3706 0.9094 0.1888 +vn -0.7175 0.5930 0.3656 +vn -0.7439 0.5929 0.3082 +vn -0.5776 0.7805 0.2392 +vn -0.3843 0.9094 0.1592 +vn -0.5946 0.7805 0.1932 +vn -0.3956 0.9094 0.1285 +vn -0.7658 0.5929 0.2488 +vn -0.7830 0.5929 0.1880 +vn -0.6079 0.7805 0.1459 +vn -0.4045 0.9094 0.0971 +vn -0.6175 0.7805 0.0978 +vn -0.4108 0.9094 0.0651 +vn -0.7953 0.5930 0.1260 +vn -0.8028 0.5930 0.0632 +vn -0.6233 0.7805 0.0491 +vn -0.4147 0.9094 0.0326 +vn -0.6252 0.7805 0.0000 +vn -0.4159 0.9094 -0.0000 +vn -0.8052 0.5930 0.0000 +vn -0.8028 0.5930 -0.0632 +vn -0.6233 0.7805 -0.0491 +vn -0.4147 0.9094 -0.0326 +vn -0.6175 0.7805 -0.0978 +vn -0.4108 0.9094 -0.0651 +vn -0.7953 0.5929 -0.1260 +vn -0.7830 0.5929 -0.1880 +vn -0.6079 0.7805 -0.1459 +vn -0.4045 0.9094 -0.0971 +vn -0.5946 0.7805 -0.1932 +vn -0.3956 0.9094 -0.1285 +vn -0.7658 0.5929 -0.2488 +vn -0.7439 0.5929 -0.3082 +vn -0.5776 0.7805 -0.2392 +vn -0.3843 0.9094 -0.1592 +vn -0.5570 0.7805 -0.2838 +vn -0.3706 0.9094 -0.1888 +vn -0.7175 0.5929 -0.3656 +vn -0.6866 0.5929 -0.4207 +vn -0.5331 0.7805 -0.3267 +vn -0.3547 0.9094 -0.2173 +vn -0.5058 0.7805 -0.3675 +vn -0.3365 0.9094 -0.2445 +vn -0.6515 0.5929 -0.4733 +vn -0.6123 0.5929 -0.5230 +vn -0.4754 0.7805 -0.4060 +vn -0.3163 0.9094 -0.2701 +vn -0.4421 0.7805 -0.4421 +vn -0.2941 0.9094 -0.2941 +vn -0.5694 0.5929 -0.5694 +vn -0.5230 0.5929 -0.6123 +vn -0.4060 0.7805 -0.4754 +vn -0.2701 0.9094 -0.3163 +vn -0.3675 0.7805 -0.5058 +vn -0.2445 0.9094 -0.3365 +vn -0.4733 0.5929 -0.6515 +vn -0.4207 0.5929 -0.6866 +vn -0.3267 0.7805 -0.5331 +vn -0.2173 0.9094 -0.3547 +vn -0.2838 0.7805 -0.5570 +vn -0.1888 0.9094 -0.3706 +vn -0.3656 0.5929 -0.7175 +vn -0.3081 0.5929 -0.7440 +vn -0.2392 0.7805 -0.5776 +vn -0.1592 0.9094 -0.3843 +vn -0.1932 0.7805 -0.5946 +vn -0.1285 0.9094 -0.3956 +vn -0.2488 0.5929 -0.7658 +vn -0.1880 0.5929 -0.7830 +vn -0.1459 0.7805 -0.6079 +vn -0.0971 0.9094 -0.4045 +vn -0.0978 0.7805 -0.6175 +vn -0.0651 0.9094 -0.4108 +vn -0.1260 0.5929 -0.7953 +vn -0.0632 0.5929 -0.8028 +vn -0.0491 0.7805 -0.6233 +vn -0.0326 0.9094 -0.4147 +vn -0.0000 0.7805 -0.6252 +vn -0.0000 0.9094 -0.4159 +vn -0.0000 0.5929 -0.8052 +vn 0.0632 0.5929 -0.8028 +vn 0.0490 0.7805 -0.6233 +vn 0.0326 0.9094 -0.4147 +vn 0.0978 0.7805 -0.6175 +vn 0.0651 0.9094 -0.4108 +vn 0.1260 0.5929 -0.7953 +vn 0.1880 0.5929 -0.7830 +vn 0.1459 0.7805 -0.6079 +vn 0.0971 0.9094 -0.4045 +vn 0.1932 0.7805 -0.5946 +vn 0.1285 0.9094 -0.3956 +vn 0.2488 0.5929 -0.7658 +vn 0.3082 0.5929 -0.7440 +vn 0.2392 0.7805 -0.5776 +vn 0.1592 0.9094 -0.3843 +vn 0.2838 0.7805 -0.5570 +vn 0.1888 0.9094 -0.3706 +vn 0.3656 0.5929 -0.7175 +vn 0.4207 0.5929 -0.6866 +vn 0.3267 0.7805 -0.5331 +vn 0.2173 0.9094 -0.3547 +vn 0.3675 0.7805 -0.5058 +vn 0.2445 0.9094 -0.3365 +vn 0.4733 0.5929 -0.6515 +vn 0.5230 0.5929 -0.6123 +vn 0.4060 0.7805 -0.4754 +vn 0.2701 0.9094 -0.3163 +vn 0.4421 0.7805 -0.4421 +vn 0.2941 0.9094 -0.2941 +vn 0.5694 0.5929 -0.5694 +vn 0.6123 0.5929 -0.5230 +vn 0.4754 0.7805 -0.4060 +vn 0.3163 0.9094 -0.2701 +vn 0.5058 0.7805 -0.3675 +vn 0.3365 0.9094 -0.2445 +vn 0.6515 0.5929 -0.4733 +vn 0.6866 0.5929 -0.4207 +vn 0.5331 0.7805 -0.3267 +vn 0.3547 0.9094 -0.2173 +vn 0.5570 0.7805 -0.2838 +vn 0.3706 0.9094 -0.1888 +vn 0.7175 0.5929 -0.3656 +vn 0.7440 0.5929 -0.3082 +vn 0.5776 0.7805 -0.2392 +vn 0.3843 0.9094 -0.1592 +vn 0.5946 0.7805 -0.1932 +vn 0.3956 0.9094 -0.1285 +vn 0.7658 0.5929 -0.2488 +vn 0.7830 0.5929 -0.1880 +vn 0.6079 0.7805 -0.1459 +vn 0.4045 0.9094 -0.0971 +vn 0.6175 0.7805 -0.0978 +vn 0.4108 0.9094 -0.0651 +vn 0.7953 0.5929 -0.1260 +vn 0.8028 0.5929 -0.0632 +vn 0.6233 0.7805 -0.0491 +vn 0.4147 0.9094 -0.0326 +vn 0.6252 0.7805 0.0000 +vn 0.4159 0.9094 0.0000 +vn 0.8053 0.5929 0.0000 +vn 0.8028 0.5929 0.0632 +vn 0.6233 0.7805 0.0491 +vn 0.4147 0.9094 0.0326 +vn 0.6175 0.7805 0.0978 +vn 0.4108 0.9094 0.0651 +vn 0.7953 0.5929 0.1260 +vn 0.7830 0.5929 0.1880 +vn 0.6079 0.7805 0.1459 +vn 0.4045 0.9094 0.0971 +vn 0.5946 0.7805 0.1932 +vn 0.3956 0.9094 0.1285 +vn 0.7658 0.5929 0.2488 +vn 0.7440 0.5929 0.3082 +vn 0.5776 0.7805 0.2392 +vn 0.3843 0.9094 0.1592 +vn 0.5570 0.7805 0.2838 +vn 0.3706 0.9094 0.1888 +vn 0.7175 0.5929 0.3656 +vn 0.6866 0.5929 0.4207 +vn 0.5331 0.7805 0.3267 +vn 0.3547 0.9094 0.2173 +vn 0.5058 0.7805 0.3675 +vn 0.3365 0.9094 0.2445 +vn 0.6515 0.5929 0.4733 +vn 0.6123 0.5929 0.5230 +vn 0.4754 0.7805 0.4060 +vn 0.3163 0.9094 0.2701 +vn 0.4421 0.7805 0.4421 +vn 0.2941 0.9094 0.2941 +vn 0.5694 0.5929 0.5694 +vn 0.5230 0.5929 0.6123 +vn 0.4060 0.7805 0.4754 +vn 0.2701 0.9094 0.3163 +vn 0.3675 0.7805 0.5058 +vn 0.2445 0.9094 0.3365 +vn 0.4733 0.5929 0.6515 +vn 0.4207 0.5929 0.6866 +vn 0.3267 0.7805 0.5331 +vn 0.2173 0.9094 0.3547 +vn 0.2838 0.7805 0.5570 +vn 0.1888 0.9094 0.3706 +vn 0.3656 0.5929 0.7175 +vn 0.3082 0.5929 0.7440 +vn 0.2392 0.7805 0.5776 +vn 0.1592 0.9094 0.3843 +vn 0.1932 0.7805 0.5946 +vn 0.1285 0.9094 0.3956 +vn 0.2488 0.5929 0.7658 +vn 0.1880 0.5929 0.7830 +vn 0.1459 0.7805 0.6079 +vn 0.0971 0.9094 0.4045 +vn 0.0978 0.7805 0.6175 +vn 0.0651 0.9094 0.4108 +vn 0.1260 0.5929 0.7953 +vn 0.0632 0.5929 0.8028 +vn 0.0491 0.7805 0.6233 +vn 0.0326 0.9094 0.4147 +vn -0.0000 0.9697 0.2443 +vn -0.0192 0.9697 0.2436 +vn -0.0000 0.9822 0.1881 +vn -0.0148 0.9822 0.1875 +vn -0.0382 0.9697 0.2413 +vn -0.0294 0.9822 0.1858 +vn -0.0570 0.9697 0.2376 +vn -0.0439 0.9822 0.1829 +vn -0.0755 0.9697 0.2324 +vn -0.0581 0.9822 0.1789 +vn -0.0935 0.9697 0.2257 +vn -0.0720 0.9822 0.1738 +vn -0.1109 0.9697 0.2177 +vn -0.0854 0.9822 0.1676 +vn -0.1277 0.9697 0.2083 +vn -0.0983 0.9822 0.1604 +vn -0.1436 0.9697 0.1976 +vn -0.1106 0.9822 0.1522 +vn -0.1587 0.9697 0.1858 +vn -0.1222 0.9822 0.1430 +vn -0.1728 0.9697 0.1728 +vn -0.1330 0.9822 0.1330 +vn -0.1858 0.9697 0.1587 +vn -0.1430 0.9821 0.1222 +vn -0.1976 0.9697 0.1436 +vn -0.1522 0.9821 0.1106 +vn -0.2083 0.9697 0.1277 +vn -0.1604 0.9821 0.0983 +vn -0.2177 0.9697 0.1109 +vn -0.1676 0.9822 0.0854 +vn -0.2257 0.9697 0.0935 +vn -0.1738 0.9822 0.0720 +vn -0.2323 0.9697 0.0755 +vn -0.1789 0.9822 0.0581 +vn -0.2376 0.9697 0.0570 +vn -0.1829 0.9822 0.0439 +vn -0.2413 0.9697 0.0382 +vn -0.1858 0.9822 0.0294 +vn -0.2436 0.9697 0.0192 +vn -0.1875 0.9821 0.0148 +vn -0.2443 0.9697 -0.0000 +vn -0.1881 0.9821 -0.0000 +vn -0.2436 0.9697 -0.0192 +vn -0.1875 0.9821 -0.0148 +vn -0.2413 0.9697 -0.0382 +vn -0.1858 0.9822 -0.0294 +vn -0.2376 0.9697 -0.0570 +vn -0.1829 0.9822 -0.0439 +vn -0.2324 0.9697 -0.0755 +vn -0.1789 0.9822 -0.0581 +vn -0.2257 0.9697 -0.0935 +vn -0.1738 0.9821 -0.0720 +vn -0.2177 0.9697 -0.1109 +vn -0.1676 0.9822 -0.0854 +vn -0.2083 0.9697 -0.1277 +vn -0.1604 0.9822 -0.0983 +vn -0.1976 0.9697 -0.1436 +vn -0.1522 0.9822 -0.1106 +vn -0.1858 0.9697 -0.1587 +vn -0.1430 0.9822 -0.1222 +vn -0.1728 0.9697 -0.1728 +vn -0.1330 0.9822 -0.1330 +vn -0.1587 0.9697 -0.1858 +vn -0.1222 0.9822 -0.1430 +vn -0.1436 0.9697 -0.1976 +vn -0.1106 0.9821 -0.1522 +vn -0.1277 0.9697 -0.2083 +vn -0.0983 0.9821 -0.1604 +vn -0.1109 0.9697 -0.2177 +vn -0.0854 0.9822 -0.1676 +vn -0.0935 0.9697 -0.2257 +vn -0.0720 0.9822 -0.1738 +vn -0.0755 0.9697 -0.2324 +vn -0.0581 0.9822 -0.1789 +vn -0.0570 0.9697 -0.2376 +vn -0.0439 0.9822 -0.1829 +vn -0.0382 0.9697 -0.2413 +vn -0.0294 0.9822 -0.1858 +vn -0.0192 0.9697 -0.2436 +vn -0.0148 0.9822 -0.1875 +vn -0.0000 0.9697 -0.2443 +vn -0.0000 0.9821 -0.1881 +vn 0.0192 0.9697 -0.2436 +vn 0.0148 0.9822 -0.1875 +vn 0.0382 0.9697 -0.2413 +vn 0.0294 0.9822 -0.1858 +vn 0.0570 0.9697 -0.2376 +vn 0.0439 0.9822 -0.1829 +vn 0.0755 0.9697 -0.2324 +vn 0.0581 0.9822 -0.1789 +vn 0.0935 0.9697 -0.2257 +vn 0.0720 0.9822 -0.1738 +vn 0.1109 0.9697 -0.2177 +vn 0.0854 0.9822 -0.1676 +vn 0.1277 0.9697 -0.2083 +vn 0.0983 0.9822 -0.1604 +vn 0.1436 0.9697 -0.1977 +vn 0.1106 0.9822 -0.1522 +vn 0.1587 0.9697 -0.1858 +vn 0.1222 0.9822 -0.1430 +vn 0.1728 0.9697 -0.1728 +vn 0.1330 0.9822 -0.1330 +vn 0.1858 0.9697 -0.1587 +vn 0.1430 0.9822 -0.1222 +vn 0.1977 0.9697 -0.1436 +vn 0.1522 0.9822 -0.1106 +vn 0.2083 0.9697 -0.1277 +vn 0.1604 0.9822 -0.0983 +vn 0.2177 0.9697 -0.1109 +vn 0.1676 0.9822 -0.0854 +vn 0.2257 0.9697 -0.0935 +vn 0.1738 0.9822 -0.0720 +vn 0.2324 0.9697 -0.0755 +vn 0.1789 0.9822 -0.0581 +vn 0.2376 0.9697 -0.0570 +vn 0.1829 0.9822 -0.0439 +vn 0.2413 0.9697 -0.0382 +vn 0.1858 0.9822 -0.0294 +vn 0.2436 0.9697 -0.0192 +vn 0.1875 0.9822 -0.0148 +vn 0.2443 0.9697 -0.0000 +vn 0.1881 0.9822 -0.0000 +vn 0.2436 0.9697 0.0192 +vn 0.1875 0.9822 0.0148 +vn 0.2413 0.9697 0.0382 +vn 0.1858 0.9822 0.0294 +vn 0.2376 0.9697 0.0570 +vn 0.1829 0.9822 0.0439 +vn 0.2324 0.9697 0.0755 +vn 0.1789 0.9822 0.0581 +vn 0.2257 0.9697 0.0935 +vn 0.1737 0.9822 0.0720 +vn 0.2177 0.9697 0.1109 +vn 0.1676 0.9822 0.0854 +vn 0.2083 0.9697 0.1277 +vn 0.1604 0.9822 0.0983 +vn 0.1977 0.9697 0.1436 +vn 0.1522 0.9822 0.1106 +vn 0.1858 0.9697 0.1587 +vn 0.1430 0.9822 0.1222 +vn 0.1728 0.9697 0.1728 +vn 0.1330 0.9821 0.1330 +vn 0.1587 0.9697 0.1858 +vn 0.1222 0.9821 0.1430 +vn 0.1436 0.9697 0.1977 +vn 0.1106 0.9822 0.1522 +vn 0.1277 0.9697 0.2083 +vn 0.0983 0.9822 0.1604 +vn 0.1109 0.9697 0.2177 +vn 0.0854 0.9822 0.1676 +vn 0.0935 0.9697 0.2257 +vn 0.0720 0.9822 0.1738 +vn 0.0755 0.9697 0.2324 +vn 0.0581 0.9822 0.1789 +vn 0.0570 0.9697 0.2376 +vn 0.0439 0.9822 0.1829 +vn 0.0382 0.9697 0.2413 +vn 0.0294 0.9822 0.1858 +vn 0.0192 0.9697 0.2436 +vn 0.0148 0.9822 0.1875 +vn 0.0000 0.3691 0.9294 +vn -0.0729 0.3691 0.9265 +vn -0.1454 0.3691 0.9180 +vn -0.2170 0.3691 0.9037 +vn -0.2872 0.3691 0.8839 +vn -0.3557 0.3691 0.8587 +vn -0.4219 0.3691 0.8281 +vn -0.4856 0.3691 0.7924 +vn -0.5463 0.3691 0.7519 +vn -0.6036 0.3691 0.7067 +vn -0.6572 0.3691 0.6572 +vn -0.7067 0.3691 0.6036 +vn -0.7519 0.3691 0.5463 +vn -0.7924 0.3691 0.4856 +vn -0.8281 0.3691 0.4219 +vn -0.8586 0.3691 0.3557 +vn -0.8839 0.3691 0.2872 +vn -0.9037 0.3691 0.2170 +vn -0.9179 0.3691 0.1454 +vn -0.9265 0.3691 0.0729 +vn -0.9294 0.3691 0.0000 +vn -0.9265 0.3691 -0.0729 +vn -0.9180 0.3691 -0.1454 +vn -0.9037 0.3691 -0.2170 +vn -0.8839 0.3691 -0.2872 +vn -0.8587 0.3691 -0.3557 +vn -0.8281 0.3691 -0.4219 +vn -0.7924 0.3691 -0.4856 +vn -0.7519 0.3691 -0.5463 +vn -0.7067 0.3691 -0.6036 +vn -0.6572 0.3691 -0.6572 +vn -0.6036 0.3691 -0.7067 +vn -0.5463 0.3691 -0.7519 +vn -0.4856 0.3691 -0.7924 +vn -0.4219 0.3691 -0.8281 +vn -0.3557 0.3691 -0.8587 +vn -0.2872 0.3691 -0.8839 +vn -0.2170 0.3691 -0.9037 +vn -0.1454 0.3691 -0.9180 +vn -0.0729 0.3691 -0.9265 +vn -0.0000 0.3691 -0.9294 +vn 0.0729 0.3691 -0.9265 +vn 0.1454 0.3691 -0.9180 +vn 0.2170 0.3691 -0.9037 +vn 0.2872 0.3691 -0.8839 +vn 0.3557 0.3691 -0.8586 +vn 0.4219 0.3691 -0.8281 +vn 0.4856 0.3691 -0.7924 +vn 0.5463 0.3691 -0.7519 +vn 0.6036 0.3691 -0.7067 +vn 0.6572 0.3691 -0.6572 +vn 0.7067 0.3691 -0.6036 +vn 0.7519 0.3691 -0.5463 +vn 0.7924 0.3691 -0.4856 +vn 0.8281 0.3691 -0.4219 +vn 0.8587 0.3691 -0.3557 +vn 0.8839 0.3691 -0.2872 +vn 0.9037 0.3691 -0.2170 +vn 0.9180 0.3691 -0.1454 +vn 0.9265 0.3691 -0.0729 +vn 0.9294 0.3691 -0.0000 +vn 0.9265 0.3691 0.0729 +vn 0.9180 0.3691 0.1454 +vn 0.9037 0.3691 0.2170 +vn 0.8839 0.3691 0.2872 +vn 0.8586 0.3691 0.3557 +vn 0.8281 0.3691 0.4219 +vn 0.7924 0.3691 0.4856 +vn 0.7519 0.3691 0.5463 +vn 0.7067 0.3691 0.6036 +vn 0.6572 0.3691 0.6572 +vn 0.6036 0.3691 0.7067 +vn 0.5463 0.3691 0.7519 +vn 0.4856 0.3691 0.7924 +vn 0.4219 0.3691 0.8281 +vn 0.3557 0.3691 0.8587 +vn 0.2872 0.3691 0.8839 +vn 0.2170 0.3691 0.9037 +vn 0.1454 0.3691 0.9180 +vn 0.0729 0.3691 0.9265 +vn 0.9800 0.0260 -0.1972 +vn 0.9839 -0.0000 -0.1786 +vn 0.9829 0.0507 -0.1769 +vn 0.9820 0.0510 -0.1817 +vn 0.9830 0.0000 -0.1834 +vn 0.9790 0.1017 -0.1765 +vn 0.9799 0.1011 -0.1717 +vn 0.9551 0.1131 -0.2737 +vn 0.9585 0.0567 -0.2794 +vn 0.9741 0.1518 -0.1679 +vn 0.9496 0.1688 -0.2641 +vn 0.9750 0.1509 -0.1631 +vn 0.9671 0.2009 -0.1559 +vn 0.9681 0.1997 -0.1512 +vn 0.9419 0.2235 -0.2507 +vn 0.9583 0.2488 -0.1406 +vn 0.9321 0.2768 -0.2337 +vn 0.9593 0.2473 -0.1360 +vn 0.9476 0.2951 -0.1221 +vn 0.9487 0.2934 -0.1176 +vn 0.9202 0.3283 -0.2131 +vn 0.9352 0.3397 -0.1005 +vn 0.9063 0.3779 -0.1891 +vn 0.9363 0.3377 -0.0961 +vn 0.9210 0.3821 -0.0759 +vn 0.9222 0.3799 -0.0717 +vn 0.8906 0.4251 -0.1617 +vn 0.9052 0.4222 -0.0485 +vn 0.8730 0.4697 -0.1313 +vn 0.9065 0.4198 -0.0444 +vn 0.8879 0.4597 -0.0185 +vn 0.8893 0.4570 -0.0146 +vn 0.8538 0.5114 -0.0979 +vn 0.8692 0.4943 0.0140 +vn 0.8329 0.5499 -0.0618 +vn 0.8707 0.4915 0.0177 +vn 0.8491 0.5259 0.0487 +vn 0.8508 0.5229 0.0522 +vn 0.8106 0.5851 -0.0231 +vn 0.8279 0.5543 0.0855 +vn 0.7870 0.6166 0.0178 +vn 0.8297 0.5511 0.0887 +vn 0.8057 0.5792 0.1240 +vn 0.8076 0.5759 0.1271 +vn 0.7623 0.6444 0.0607 +vn 0.7825 0.6006 0.1642 +vn 0.7365 0.6682 0.1054 +vn 0.7845 0.5971 0.1670 +vn 0.7586 0.6183 0.2057 +vn 0.7608 0.6147 0.2083 +vn 0.7099 0.6878 0.1515 +vn 0.7340 0.6321 0.2482 +vn 0.6826 0.7032 0.1988 +vn 0.7364 0.6285 0.2506 +vn 0.7090 0.6421 0.2916 +vn 0.7115 0.6384 0.2937 +vn 0.6548 0.7143 0.2471 +vn 0.6837 0.6481 0.3355 +vn 0.6266 0.7210 0.2959 +vn 0.6863 0.6443 0.3374 +vn 0.6582 0.6501 0.3797 +vn 0.6610 0.6463 0.3813 +vn 0.5982 0.7232 0.3451 +vn 0.6327 0.6481 0.4239 +vn 0.5699 0.7210 0.3942 +vn 0.6356 0.6443 0.4252 +vn 0.6074 0.6421 0.4678 +vn 0.6104 0.6384 0.4689 +vn 0.5417 0.7143 0.4431 +vn 0.5824 0.6321 0.5111 +vn 0.5139 0.7032 0.4913 +vn 0.5856 0.6285 0.5120 +vn 0.5578 0.6183 0.5537 +vn 0.5612 0.6147 0.5543 +vn 0.4866 0.6878 0.5387 +vn 0.5339 0.6006 0.5952 +vn 0.4599 0.6682 0.5848 +vn 0.5374 0.5971 0.5955 +vn 0.5107 0.5792 0.6353 +vn 0.5143 0.5759 0.6355 +vn 0.4342 0.6444 0.6295 +vn 0.4884 0.5543 0.6739 +vn 0.4094 0.6167 0.6724 +vn 0.4922 0.5511 0.6738 +vn 0.4672 0.5259 0.7107 +vn 0.4711 0.5229 0.7104 +vn 0.3858 0.5851 0.7133 +vn 0.4472 0.4943 0.7454 +vn 0.3635 0.5499 0.7519 +vn 0.4512 0.4915 0.7449 +vn 0.4285 0.4597 0.7779 +vn 0.4326 0.4570 0.7772 +vn 0.3427 0.5114 0.7881 +vn 0.4112 0.4222 0.8079 +vn 0.3234 0.4697 0.8215 +vn 0.4154 0.4198 0.8070 +vn 0.3954 0.3821 0.8353 +vn 0.3997 0.3799 0.8342 +vn 0.3059 0.4251 0.8519 +vn 0.3812 0.3397 0.8598 +vn 0.2901 0.3779 0.8792 +vn 0.3856 0.3377 0.8586 +vn 0.3688 0.2951 0.8814 +vn 0.3732 0.2934 0.8801 +vn 0.2762 0.3283 0.9033 +vn 0.3581 0.2488 0.8999 +vn 0.2643 0.2768 0.9239 +vn 0.3626 0.2473 0.8985 +vn 0.3492 0.2009 0.9152 +vn 0.3538 0.1997 0.9137 +vn 0.2545 0.2235 0.9409 +vn 0.3423 0.1518 0.9272 +vn 0.2468 0.1688 0.9542 +vn 0.3469 0.1509 0.9257 +vn 0.3373 0.1017 0.9359 +vn 0.3420 0.1011 0.9343 +vn 0.2413 0.1131 0.9638 +vn 0.3343 0.0510 0.9411 +vn 0.2379 0.0567 0.9696 +vn 0.3390 0.0507 0.9394 +vn 0.3333 -0.0000 0.9428 +vn 0.3380 -0.0000 0.9411 +vn 0.2368 -0.0000 0.9716 +vn 0.5467 0.0000 0.8373 +vn 0.5445 -0.0365 0.8380 +vn 0.6953 -0.0215 0.7184 +vn 0.6951 0.0000 0.7189 +vn 0.4511 -0.0000 0.8925 +vn 0.4502 -0.0449 0.8918 +vn 0.5435 -0.0722 0.8363 +vn 0.4533 -0.0855 0.8872 +vn 0.6943 -0.0437 0.7183 +vn 0.5490 -0.1060 0.8291 +vn 0.6967 -0.0650 0.7145 +vn 0.4587 -0.1266 0.8795 +vn 0.5557 -0.1401 0.8195 +vn 0.4653 -0.1686 0.8690 +vn 0.7002 -0.0858 0.7088 +vn 0.5617 -0.1740 0.8088 +vn 0.7045 -0.1060 0.7017 +vn 0.4739 -0.2076 0.8558 +vn 0.5720 -0.2042 0.7944 +vn 0.4852 -0.2450 0.8394 +vn 0.7093 -0.1255 0.6936 +vn 0.5821 -0.2346 0.7785 +vn 0.7147 -0.1443 0.6844 +vn 0.4961 -0.2829 0.8209 +vn 0.5931 -0.2629 0.7610 +vn 0.5099 -0.3162 0.8001 +vn 0.7210 -0.1622 0.6737 +vn 0.6058 -0.2890 0.7412 +vn 0.7279 -0.1790 0.6620 +vn 0.5257 -0.3478 0.7763 +vn 0.6185 -0.3143 0.7202 +vn 0.5415 -0.3786 0.7506 +vn 0.7353 -0.1948 0.6491 +vn 0.6322 -0.3373 0.6975 +vn 0.7435 -0.2094 0.6351 +vn 0.5582 -0.4060 0.7236 +vn 0.6468 -0.3579 0.6735 +vn 0.5762 -0.4303 0.6949 +vn 0.7521 -0.2225 0.6203 +vn 0.6617 -0.3767 0.6483 +vn 0.7611 -0.2343 0.6048 +vn 0.5949 -0.4527 0.6642 +vn 0.6769 -0.3937 0.6219 +vn 0.6136 -0.4729 0.6323 +vn 0.7706 -0.2448 0.5885 +vn 0.6925 -0.4085 0.5947 +vn 0.7804 -0.2538 0.5715 +vn 0.6332 -0.4890 0.6000 +vn 0.7092 -0.4194 0.5667 +vn 0.6538 -0.5010 0.5671 +vn 0.7905 -0.2613 0.5540 +vn 0.7274 -0.4253 0.5385 +vn 0.8009 -0.2667 0.5361 +vn 0.6750 -0.5091 0.5340 +vn 0.7466 -0.4266 0.5105 +vn 0.6971 -0.5136 0.5002 +vn 0.8117 -0.2699 0.5180 +vn 0.7654 -0.4268 0.4817 +vn 0.8227 -0.2708 0.4998 +vn 0.7190 -0.5165 0.4651 +vn 0.7839 -0.4229 0.4545 +vn 0.7401 -0.5161 0.4311 +vn 0.8338 -0.2696 0.4817 +vn 0.8015 -0.4164 0.4292 +vn 0.8446 -0.2640 0.4657 +vn 0.7608 -0.5133 0.3970 +vn 0.8190 -0.4101 0.4013 +vn 0.7802 -0.5124 0.3588 +vn 0.8566 -0.2495 0.4517 +vn 0.8385 -0.3997 0.3704 +vn 0.8686 -0.2420 0.4324 +vn 0.8016 -0.5033 0.3228 +vn 0.8551 -0.3885 0.3434 +vn 0.8253 -0.4850 0.2892 +vn 0.8780 -0.2490 0.4088 +vn 0.8674 -0.3900 0.3090 +vn 0.8861 -0.2510 0.3896 +vn 0.8438 -0.4745 0.2505 +vn 0.8798 -0.3846 0.2793 +vn 0.8595 -0.4604 0.2219 +vn 0.8953 -0.2438 0.3729 +vn 0.8938 -0.3701 0.2533 +vn 0.9046 -0.2338 0.3563 +vn 0.8769 -0.4404 0.1924 +vn 0.9077 -0.3541 0.2252 +vn 0.8936 -0.4193 0.1602 +vn 0.9136 -0.2221 0.3407 +vn 0.9207 -0.3353 0.1998 +vn 0.9220 -0.2089 0.3259 +vn 0.9088 -0.3956 0.1327 +vn 0.9332 -0.3124 0.1776 +vn 0.9234 -0.3683 0.1081 +vn 0.9299 -0.1943 0.3122 +vn 0.9449 -0.2864 0.1583 +vn 0.9373 -0.1784 0.2996 +vn 0.9372 -0.3382 0.0854 +vn 0.9556 -0.2582 0.1419 +vn 0.9499 -0.3059 0.0636 +vn 0.9439 -0.1614 0.2880 +vn 0.9653 -0.2286 0.1266 +vn 0.9499 -0.1434 0.2777 +vn 0.9615 -0.2715 0.0430 +vn 0.9737 -0.1988 0.1108 +vn 0.9715 -0.2359 0.0248 +vn 0.9551 -0.1246 0.2686 +vn 0.9809 -0.1679 0.0983 +vn 0.9597 -0.1050 0.2608 +vn 0.9799 -0.1991 0.0109 +vn 0.9868 -0.1354 0.0884 +vn 0.9871 -0.1604 -0.0022 +vn 0.9634 -0.0848 0.2544 +vn 0.9916 -0.1022 0.0794 +vn 0.9663 -0.0641 0.2492 +vn 0.9926 -0.1207 -0.0122 +vn 0.9952 -0.0685 0.0704 +vn 0.9966 -0.0803 -0.0207 +vn 0.9685 -0.0430 0.2454 +vn 0.9973 -0.0345 0.0653 +vn 0.9698 -0.0216 0.2431 +vn 0.9988 -0.0403 -0.0265 +vn 0.9980 0.0000 0.0637 +vn 0.9996 0.0000 -0.0274 +vn 0.9702 0.0000 0.2424 +vn 0.3202 0.0000 0.9473 +vn 0.3209 -0.0523 0.9457 +vn 0.3778 -0.0482 0.9246 +vn 0.3767 0.0000 0.9263 +vn 0.2557 -0.0000 0.9667 +vn 0.2568 -0.0563 0.9648 +vn 0.3236 -0.1019 0.9407 +vn 0.2596 -0.1103 0.9594 +vn 0.3809 -0.0947 0.9198 +vn 0.3289 -0.1525 0.9320 +vn 0.3863 -0.1411 0.9115 +vn 0.2646 -0.1635 0.9504 +vn 0.3364 -0.2030 0.9196 +vn 0.2721 -0.2181 0.9372 +vn 0.3922 -0.1886 0.9003 +vn 0.3452 -0.2514 0.9043 +vn 0.4004 -0.2333 0.8862 +vn 0.2817 -0.2707 0.9205 +vn 0.3556 -0.2978 0.8859 +vn 0.2937 -0.3191 0.9011 +vn 0.4108 -0.2765 0.8688 +vn 0.3693 -0.3428 0.8638 +vn 0.4230 -0.3188 0.8482 +vn 0.3074 -0.3690 0.8771 +vn 0.3833 -0.3859 0.8391 +vn 0.3228 -0.4153 0.8504 +vn 0.4353 -0.3583 0.8259 +vn 0.3991 -0.4264 0.8117 +vn 0.4502 -0.3960 0.8003 +vn 0.3400 -0.4583 0.8212 +vn 0.4170 -0.4650 0.7809 +vn 0.3592 -0.4983 0.7891 +vn 0.4669 -0.4325 0.7713 +vn 0.4364 -0.4988 0.7488 +vn 0.4845 -0.4641 0.7416 +vn 0.3791 -0.5366 0.7539 +vn 0.4041 -0.5684 0.7167 +vn 0.4579 -0.5294 0.7142 +vn 0.5038 -0.4929 0.7094 +vn 0.4843 -0.5543 0.6769 +vn 0.5253 -0.5185 0.6747 +vn 0.4371 -0.5905 0.6784 +vn 0.4759 -0.6057 0.6377 +vn 0.5123 -0.5737 0.6390 +vn 0.5486 -0.5396 0.6387 +vn 0.5421 -0.5886 0.5997 +vn 0.5733 -0.5569 0.6010 +vn 0.5132 -0.6165 0.5972 +vn 0.5505 -0.6219 0.5569 +vn 0.5726 -0.5992 0.5595 +vn 0.5974 -0.5713 0.5627 +vn 0.6006 -0.6078 0.5195 +vn 0.6228 -0.5817 0.5233 +vn 0.5856 -0.6246 0.5167 +vn 0.6176 -0.6276 0.4741 +vn 0.6293 -0.6130 0.4777 +vn 0.6471 -0.5897 0.4832 +vn 0.6564 -0.6154 0.4365 +vn 0.6710 -0.5946 0.4430 +vn 0.6444 -0.6313 0.4315 +vn 0.6705 -0.6319 0.3887 +vn 0.6810 -0.6167 0.3949 +vn 0.6940 -0.5965 0.4031 +vn 0.7040 -0.6168 0.3520 +vn 0.7171 -0.5958 0.3617 +vn 0.6946 -0.6314 0.3447 +vn 0.7258 -0.6155 0.3073 +vn 0.7162 -0.6312 0.2979 +vn 0.7405 -0.5905 0.3209 +vn 0.7479 -0.6100 0.2618 +vn 0.7634 -0.5824 0.2792 +vn 0.7362 -0.6292 0.2492 +vn 0.7692 -0.6006 0.2183 +vn 0.7547 -0.6247 0.2005 +vn 0.7851 -0.5719 0.2378 +vn 0.7891 -0.5894 0.1731 +vn 0.8059 -0.5572 0.1999 +vn 0.7720 -0.6180 0.1487 +vn 0.8092 -0.5736 0.1269 +vn 0.7897 -0.6058 0.0966 +vn 0.8269 -0.5397 0.1580 +vn 0.8283 -0.5540 0.0836 +vn 0.8467 -0.5184 0.1200 +vn 0.8062 -0.5901 0.0434 +vn 0.8471 -0.5298 0.0420 +vn 0.8229 -0.5682 -0.0047 +vn 0.8656 -0.4935 0.0853 +vn 0.8661 -0.4999 0.0058 +vn 0.8840 -0.4645 0.0518 +vn 0.8422 -0.5372 -0.0459 +vn 0.8844 -0.4659 -0.0262 +vn 0.8620 -0.5005 -0.0804 +vn 0.9014 -0.4324 0.0217 +vn 0.9023 -0.4272 -0.0577 +vn 0.9181 -0.3964 -0.0066 +vn 0.8808 -0.4594 -0.1143 +vn 0.9186 -0.3857 -0.0862 +vn 0.8980 -0.4158 -0.1440 +vn 0.9332 -0.3579 -0.0333 +vn 0.9328 -0.3432 -0.1104 +vn 0.9461 -0.3188 -0.0562 +vn 0.9137 -0.3689 -0.1704 +vn 0.9450 -0.2990 -0.1326 +vn 0.9271 -0.3209 -0.1937 +vn 0.9576 -0.2777 -0.0764 +vn 0.9559 -0.2518 -0.1514 +vn 0.9678 -0.2335 -0.0940 +vn 0.9384 -0.2709 -0.2144 +vn 0.9649 -0.2026 -0.1669 +vn 0.9481 -0.2186 -0.2308 +vn 0.9761 -0.1881 -0.1087 +vn 0.9717 -0.1545 -0.1785 +vn 0.9824 -0.1434 -0.1197 +vn 0.9555 -0.1646 -0.2448 +vn 0.9767 -0.1023 -0.1886 +vn 0.9609 -0.1105 -0.2540 +vn 0.9873 -0.0954 -0.1271 +vn 0.9798 -0.0522 -0.1931 +vn 0.9901 -0.0478 -0.1323 +vn 0.9641 -0.0561 -0.2594 +vn 0.9808 -0.0000 -0.1949 +vn 0.9653 -0.0000 -0.2612 +vn 0.9910 -0.0000 -0.1339 +vn 0.1829 -0.0000 0.9831 +vn 0.1843 -0.0599 0.9810 +vn 0.1061 0.0000 0.9944 +vn 0.1073 -0.0633 0.9922 +vn 0.1881 -0.1185 0.9750 +vn 0.1114 -0.1255 0.9858 +vn 0.1934 -0.1765 0.9651 +vn 0.1174 -0.1873 0.9753 +vn 0.2016 -0.2332 0.9513 +vn 0.1257 -0.2484 0.9605 +vn 0.2123 -0.2883 0.9337 +vn 0.1368 -0.3074 0.9417 +vn 0.2243 -0.3425 0.9123 +vn 0.1497 -0.3651 0.9188 +vn 0.2389 -0.3952 0.8870 +vn 0.1656 -0.4199 0.8924 +vn 0.2558 -0.4443 0.8586 +vn 0.1838 -0.4717 0.8624 +vn 0.2738 -0.4902 0.8275 +vn 0.2028 -0.5189 0.8304 +vn 0.2225 -0.5640 0.7953 +vn 0.2935 -0.5342 0.7928 +vn 0.3124 -0.5765 0.7550 +vn 0.2426 -0.6071 0.7567 +vn 0.2691 -0.6396 0.7201 +vn 0.3400 -0.6065 0.7187 +vn 0.7920 -0.6078 -0.0577 +vn 0.8110 -0.5762 -0.1015 +vn 0.7529 -0.6479 -0.1161 +vn 0.7767 -0.6087 -0.1618 +vn 0.8332 -0.5352 -0.1394 +vn 0.7994 -0.5661 -0.2010 +vn 0.8532 -0.4913 -0.1752 +vn 0.8199 -0.5212 -0.2370 +vn 0.8712 -0.4458 -0.2057 +vn 0.8384 -0.4730 -0.2708 +vn 0.8878 -0.3957 -0.2350 +vn 0.8555 -0.4209 -0.3017 +vn 0.9025 -0.3433 -0.2601 +vn 0.8710 -0.3661 -0.3276 +vn 0.9148 -0.2897 -0.2814 +vn 0.8842 -0.3081 -0.3510 +vn 0.9250 -0.2338 -0.2995 +vn 0.8951 -0.2483 -0.3702 +vn 0.9330 -0.1763 -0.3137 +vn 0.9037 -0.1884 -0.3845 +vn 0.9390 -0.1187 -0.3229 +vn 0.9096 -0.1259 -0.3960 +vn 0.9423 -0.0598 -0.3293 +vn 0.9133 -0.0630 -0.4023 +vn 0.9434 0.0000 -0.3315 +vn 0.9147 -0.0000 -0.4042 +vn 0.0276 -0.0000 0.9996 +vn 0.0287 -0.0669 0.9973 +vn -0.0507 -0.0000 0.9987 +vn -0.0493 -0.0701 0.9963 +vn 0.0323 -0.1331 0.9906 +vn -0.0451 -0.1386 0.9893 +vn 0.0387 -0.1980 0.9794 +vn -0.0376 -0.2056 0.9779 +vn 0.0484 -0.2613 0.9640 +vn -0.0287 -0.2730 0.9616 +vn 0.0603 -0.3240 0.9441 +vn -0.0167 -0.3386 0.9408 +vn 0.0742 -0.3848 0.9200 +vn -0.0022 -0.4025 0.9154 +vn 0.0902 -0.4417 0.8926 +vn 0.0149 -0.4617 0.8869 +vn 0.0319 -0.5132 0.8577 +vn 0.1088 -0.4944 0.8624 +vn 0.1277 -0.5413 0.8311 +vn 0.0495 -0.5586 0.8280 +vn 0.0666 -0.5963 0.8000 +vn 0.1453 -0.5837 0.7988 +vn 0.7632 -0.5880 -0.2677 +vn 0.7820 -0.5452 -0.3019 +vn 0.7234 -0.6028 -0.3366 +vn 0.7404 -0.5640 -0.3656 +vn 0.8003 -0.4969 -0.3355 +vn 0.7580 -0.5174 -0.3973 +vn 0.8180 -0.4436 -0.3663 +vn 0.7758 -0.4630 -0.4288 +vn 0.8340 -0.3857 -0.3946 +vn 0.7921 -0.4028 -0.4585 +vn 0.8478 -0.3250 -0.4190 +vn 0.8065 -0.3397 -0.4838 +vn 0.8594 -0.2623 -0.4389 +vn 0.8185 -0.2736 -0.5052 +vn 0.8683 -0.1981 -0.4549 +vn 0.8281 -0.2070 -0.5209 +vn 0.8746 -0.1330 -0.4662 +vn 0.8346 -0.1388 -0.5330 +vn 0.8787 -0.0673 -0.4726 +vn 0.8386 -0.0703 -0.5402 +vn 0.8800 -0.0000 -0.4750 +vn 0.8400 -0.0000 -0.5425 +vn -0.1287 0.0000 0.9917 +vn -0.1273 -0.0727 0.9892 +vn -0.2060 0.0000 0.9785 +vn -0.2047 -0.0749 0.9760 +vn -0.1229 -0.1433 0.9820 +vn -0.2000 -0.1474 0.9686 +vn -0.1159 -0.2139 0.9699 +vn -0.1929 -0.2206 0.9561 +vn -0.1066 -0.2839 0.9529 +vn -0.1829 -0.2920 0.9388 +vn -0.0939 -0.3512 0.9316 +vn -0.1700 -0.3616 0.9167 +vn -0.0787 -0.4166 0.9057 +vn -0.1549 -0.4292 0.8899 +vn -0.0608 -0.4778 0.8763 +vn -0.1368 -0.4921 0.8597 +vn -0.1204 -0.5440 0.8304 +vn -0.0436 -0.5309 0.8463 +vn -0.0278 -0.5727 0.8193 +vn -0.1056 -0.5834 0.8053 +vn -0.0932 -0.6108 0.7863 +vn -0.0140 -0.6034 0.7973 +vn 0.6789 -0.6138 -0.4029 +vn 0.6939 -0.5786 -0.4286 +vn 0.6302 -0.6199 -0.4676 +vn 0.6427 -0.5895 -0.4893 +vn 0.7102 -0.5347 -0.4579 +vn 0.6582 -0.5474 -0.5168 +vn 0.7278 -0.4793 -0.4904 +vn 0.6759 -0.4936 -0.5474 +vn 0.7451 -0.4177 -0.5200 +vn 0.6934 -0.4303 -0.5780 +vn 0.7599 -0.3523 -0.5463 +vn 0.7090 -0.3624 -0.6050 +vn 0.7724 -0.2846 -0.5678 +vn 0.7215 -0.2931 -0.6274 +vn 0.7824 -0.2146 -0.5846 +vn 0.7315 -0.2213 -0.6449 +vn 0.7893 -0.1435 -0.5969 +vn 0.7390 -0.1476 -0.6573 +vn 0.7933 -0.0729 -0.6044 +vn 0.7432 -0.0749 -0.6648 +vn 0.7948 0.0000 -0.6069 +vn 0.7447 -0.0000 -0.6674 +vn -0.2821 -0.0000 0.9594 +vn -0.2806 -0.0761 0.9568 +vn -0.3565 -0.0000 0.9343 +vn -0.3550 -0.0771 0.9317 +vn -0.2761 -0.1509 0.9492 +vn -0.3504 -0.1534 0.9239 +vn -0.2693 -0.2263 0.9361 +vn -0.3427 -0.2293 0.9110 +vn -0.2587 -0.2984 0.9187 +vn -0.3319 -0.3027 0.8935 +vn -0.2454 -0.3696 0.8962 +vn -0.3190 -0.3755 0.8702 +vn -0.2295 -0.4386 0.8689 +vn -0.3031 -0.4458 0.8423 +vn -0.2115 -0.5030 0.8380 +vn -0.2853 -0.5112 0.8107 +vn -0.1941 -0.5561 0.8081 +vn -0.2682 -0.5640 0.7810 +vn -0.1808 -0.5935 0.7843 +vn -0.2547 -0.5995 0.7588 +vn -0.2455 -0.6220 0.7436 +vn -0.1708 -0.6171 0.7681 +vn 0.5179 -0.6306 -0.5780 +vn 0.5283 -0.6038 -0.5970 +vn 0.5877 -0.5981 -0.5449 +vn 0.5764 -0.6256 -0.5258 +vn 0.5417 -0.5652 -0.6222 +vn 0.6022 -0.5584 -0.5706 +vn 0.6196 -0.5043 -0.6015 +vn 0.5590 -0.5123 -0.6519 +vn 0.6372 -0.4402 -0.6326 +vn 0.5772 -0.4472 -0.6833 +vn 0.6532 -0.3705 -0.6604 +vn 0.5933 -0.3771 -0.7112 +vn 0.6665 -0.2993 -0.6828 +vn 0.6071 -0.3044 -0.7340 +vn 0.6765 -0.2263 -0.7008 +vn 0.6174 -0.2297 -0.7524 +vn 0.6840 -0.1515 -0.7135 +vn 0.6249 -0.1538 -0.7654 +vn 0.6883 -0.0764 -0.7214 +vn 0.6293 -0.0774 -0.7733 +vn 0.6898 0.0000 -0.7240 +vn 0.6308 -0.0000 -0.7760 +vn -0.4287 0.0000 0.9034 +vn -0.4271 -0.0778 0.9008 +vn -0.4983 0.0000 0.8670 +vn -0.4968 -0.0780 0.8643 +vn -0.4226 -0.1548 0.8930 +vn -0.4924 -0.1554 0.8564 +vn -0.4150 -0.2312 0.8799 +vn -0.4849 -0.2320 0.8432 +vn -0.4046 -0.3061 0.8618 +vn -0.4745 -0.3072 0.8249 +vn -0.3916 -0.3797 0.8382 +vn -0.4610 -0.3806 0.8017 +vn -0.3752 -0.4501 0.8103 +vn -0.4446 -0.4515 0.7736 +vn -0.3568 -0.5162 0.7786 +vn -0.4262 -0.5177 0.7419 +vn -0.3398 -0.5682 0.7494 +vn -0.4093 -0.5696 0.7128 +vn -0.3276 -0.6022 0.7281 +vn -0.3967 -0.6049 0.6905 +vn -0.3877 -0.6284 0.6744 +vn -0.3179 -0.6267 0.7115 +vn 0.3977 -0.6086 -0.6866 +vn 0.4647 -0.6070 -0.6447 +vn 0.4542 -0.6340 -0.6259 +vn 0.3867 -0.6359 -0.6679 +vn 0.4113 -0.5715 -0.7100 +vn 0.4783 -0.5694 -0.6686 +vn 0.4954 -0.5175 -0.6977 +vn 0.4285 -0.5194 -0.7393 +vn 0.5139 -0.4514 -0.7295 +vn 0.4472 -0.4529 -0.7713 +vn 0.5299 -0.3806 -0.7579 +vn 0.4637 -0.3817 -0.7996 +vn 0.5432 -0.3071 -0.7814 +vn 0.4772 -0.3081 -0.8231 +vn 0.5538 -0.2320 -0.7997 +vn 0.4876 -0.2327 -0.8415 +vn 0.5615 -0.1554 -0.8127 +vn 0.4951 -0.1559 -0.8547 +vn 0.5661 -0.0780 -0.8206 +vn 0.4996 -0.0782 -0.8627 +vn 0.5676 -0.0000 -0.8233 +vn 0.5011 -0.0000 -0.8654 +vn -0.5648 -0.0000 0.8252 +vn -0.5633 -0.0779 0.8226 +vn -0.6279 -0.0000 0.7783 +vn -0.6264 -0.0773 0.7756 +vn -0.5588 -0.1550 0.8147 +vn -0.6221 -0.1535 0.7678 +vn -0.5512 -0.2314 0.8017 +vn -0.6146 -0.2293 0.7548 +vn -0.5406 -0.3061 0.7836 +vn -0.6043 -0.3031 0.7369 +vn -0.5271 -0.3795 0.7604 +vn -0.5907 -0.3759 0.7140 +vn -0.5111 -0.4502 0.7322 +vn -0.5748 -0.4465 0.6858 +vn -0.4929 -0.5161 0.7005 +vn -0.5565 -0.5112 0.6549 +vn -0.4761 -0.5682 0.6712 +vn -0.5394 -0.5638 0.6255 +vn -0.4630 -0.6042 0.6485 +vn -0.5260 -0.6009 0.6019 +vn -0.4542 -0.6269 0.6331 +vn -0.5170 -0.6252 0.5846 +vn 0.2556 -0.6036 -0.7552 +vn 0.3276 -0.6077 -0.7234 +vn 0.3170 -0.6344 -0.7050 +vn 0.2452 -0.6299 -0.7370 +vn 0.2701 -0.5660 -0.7789 +vn 0.3418 -0.5700 -0.7472 +vn 0.3589 -0.5183 -0.7763 +vn 0.2875 -0.5134 -0.8086 +vn 0.3773 -0.4516 -0.8085 +vn 0.3049 -0.4468 -0.8411 +vn 0.3936 -0.3808 -0.8367 +vn 0.3210 -0.3769 -0.8688 +vn 0.4067 -0.3068 -0.8605 +vn 0.3345 -0.3043 -0.8919 +vn 0.4175 -0.2320 -0.8786 +vn 0.3456 -0.2304 -0.9097 +vn 0.4251 -0.1554 -0.8917 +vn 0.3529 -0.1539 -0.9229 +vn 0.4297 -0.0780 -0.8996 +vn 0.3575 -0.0774 -0.9307 +vn 0.4313 0.0000 -0.9022 +vn 0.3590 0.0000 -0.9333 +vn -0.6870 0.0000 0.7267 +vn -0.6855 -0.0763 0.7240 +vn -0.7419 0.0000 0.6705 +vn -0.7405 -0.0748 0.6679 +vn -0.6813 -0.1512 0.7163 +vn -0.7363 -0.1474 0.6604 +vn -0.6736 -0.2258 0.7037 +vn -0.7290 -0.2207 0.6480 +vn -0.6637 -0.2985 0.6859 +vn -0.7189 -0.2923 0.6306 +vn -0.6508 -0.3698 0.6631 +vn -0.7064 -0.3618 0.6083 +vn -0.6347 -0.4390 0.6360 +vn -0.6912 -0.4296 0.5811 +vn -0.6172 -0.5034 0.6047 +vn -0.6735 -0.4927 0.5510 +vn -0.6001 -0.5565 0.5747 +vn -0.6563 -0.5454 0.5214 +vn -0.5855 -0.5959 0.5496 +vn -0.6412 -0.5867 0.4946 +vn -0.5753 -0.6221 0.5311 +vn -0.6291 -0.6167 0.4731 +vn 0.1046 -0.5905 -0.8002 +vn 0.1808 -0.5982 -0.7807 +vn 0.1687 -0.6275 -0.7601 +vn 0.0902 -0.6238 -0.7763 +vn 0.1207 -0.5482 -0.8276 +vn 0.1953 -0.5594 -0.8056 +vn 0.2132 -0.5049 -0.8364 +vn 0.1382 -0.4941 -0.8583 +vn 0.2312 -0.4397 -0.8679 +vn 0.1565 -0.4310 -0.8887 +vn 0.2475 -0.3712 -0.8950 +vn 0.1715 -0.3628 -0.9160 +vn 0.2608 -0.2997 -0.9177 +vn 0.1844 -0.2929 -0.9382 +vn 0.2712 -0.2269 -0.9354 +vn 0.1947 -0.2216 -0.9555 +vn 0.2783 -0.1514 -0.9485 +vn 0.2017 -0.1477 -0.9682 +vn 0.2827 -0.0764 -0.9562 +vn 0.2068 -0.0751 -0.9755 +vn 0.2843 0.0000 -0.9587 +vn 0.2080 0.0000 -0.9781 +vn -0.7922 0.0000 0.6103 +vn -0.7908 -0.0729 0.6078 +vn -0.8376 0.0000 0.5462 +vn -0.8362 -0.0703 0.5438 +vn -0.7867 -0.1433 0.6004 +vn -0.8322 -0.1382 0.5370 +vn -0.7798 -0.2141 0.5882 +vn -0.8258 -0.2065 0.5248 +vn -0.7700 -0.2839 0.5714 +vn -0.8165 -0.2736 0.5084 +vn -0.7576 -0.3517 0.5499 +vn -0.8045 -0.3391 0.4876 +vn -0.7428 -0.4170 0.5238 +vn -0.7902 -0.4024 0.4622 +vn -0.7258 -0.4787 0.4940 +vn -0.7740 -0.4622 0.4328 +vn -0.7085 -0.5329 0.4626 +vn -0.7565 -0.5154 0.4027 +vn -0.6926 -0.5755 0.4348 +vn -0.7392 -0.5614 0.3722 +vn -0.6783 -0.6097 0.4100 +vn -0.7222 -0.6009 0.3426 +vn -0.0511 -0.5655 -0.8232 +vn 0.0263 -0.5805 -0.8138 +vn 0.0110 -0.6169 -0.7869 +vn -0.0689 -0.6059 -0.7925 +vn -0.0319 -0.5175 -0.8551 +vn 0.0442 -0.5346 -0.8439 +vn 0.0620 -0.4801 -0.8750 +vn -0.0142 -0.4636 -0.8859 +vn 0.0800 -0.4183 -0.9048 +vn 0.0030 -0.4039 -0.9148 +vn 0.0953 -0.3526 -0.9309 +vn 0.0182 -0.3406 -0.9400 +vn 0.1083 -0.2854 -0.9523 +vn 0.0298 -0.2743 -0.9612 +vn 0.1175 -0.2150 -0.9695 +vn 0.0386 -0.2064 -0.9777 +vn 0.1245 -0.1438 -0.9817 +vn 0.0462 -0.1391 -0.9892 +vn 0.1289 -0.0729 -0.9890 +vn 0.0506 -0.0704 -0.9962 +vn 0.1303 0.0000 -0.9915 +vn 0.0520 0.0000 -0.9986 +vn -0.8780 0.0000 0.4786 +vn -0.8764 -0.0671 0.4768 +vn -0.9128 0.0000 0.4084 +vn -0.9115 -0.0632 0.4065 +vn -0.8725 -0.1328 0.4702 +vn -0.9079 -0.1259 0.3998 +vn -0.8662 -0.1979 0.4589 +vn -0.9018 -0.1878 0.3892 +vn -0.8573 -0.2620 0.4431 +vn -0.8933 -0.2487 0.3743 +vn -0.8460 -0.3246 0.4230 +vn -0.8826 -0.3082 0.3550 +vn -0.8322 -0.3853 0.3987 +vn -0.8693 -0.3654 0.3327 +vn -0.8162 -0.4430 0.3708 +vn -0.8541 -0.4208 0.3058 +vn -0.7990 -0.4957 0.3403 +vn -0.8372 -0.4727 0.2751 +vn -0.7813 -0.5433 0.3072 +vn -0.8191 -0.5204 0.2413 +vn -0.7619 -0.5868 0.2741 +vn -0.7984 -0.5657 0.2063 +vn -0.1482 -0.5897 -0.7939 +vn -0.1283 -0.5465 -0.8276 +vn -0.2239 -0.5665 -0.7930 +vn -0.2027 -0.5221 -0.8285 +vn -0.1833 -0.4741 -0.8612 +vn -0.1083 -0.4979 -0.8605 +vn -0.0895 -0.4441 -0.8915 +vn -0.1652 -0.4217 -0.8916 +vn -0.0732 -0.3864 -0.9194 +vn -0.1495 -0.3663 -0.9184 +vn -0.0593 -0.3255 -0.9437 +vn -0.1364 -0.3086 -0.9414 +vn -0.0478 -0.2621 -0.9639 +vn -0.1251 -0.2495 -0.9602 +vn -0.0380 -0.1989 -0.9793 +vn -0.1170 -0.1881 -0.9752 +vn -0.0313 -0.1338 -0.9905 +vn -0.1108 -0.1261 -0.9858 +vn -0.0279 -0.0672 -0.9973 +vn -0.1067 -0.0636 -0.9923 +vn -0.0272 0.0000 -0.9996 +vn -0.1054 0.0000 -0.9944 +vn -0.9421 -0.0000 0.3353 +vn -0.9411 -0.0602 0.3328 +vn -0.9655 -0.0000 0.2604 +vn -0.9644 -0.0561 0.2585 +vn -0.9377 -0.1187 0.3265 +vn -0.9611 -0.1097 0.2533 +vn -0.9319 -0.1762 0.3170 +vn -0.9559 -0.1637 0.2440 +vn -0.9239 -0.2337 0.3031 +vn -0.9484 -0.2175 0.2307 +vn -0.9138 -0.2893 0.2852 +vn -0.9389 -0.2695 0.2142 +vn -0.9016 -0.3428 0.2639 +vn -0.9277 -0.3187 0.1943 +vn -0.8869 -0.3955 0.2386 +vn -0.9143 -0.3673 0.1709 +vn -0.8704 -0.4453 0.2100 +vn -0.8988 -0.4140 0.1437 +vn -0.8526 -0.4911 0.1786 +vn -0.8821 -0.4569 0.1144 +vn -0.8635 -0.4977 0.0815 +vn -0.8326 -0.5351 0.1434 +vn -0.8091 -0.5778 0.1074 +vn -0.7744 -0.6097 0.1689 +vn -0.8431 -0.5358 0.0468 +vn -0.7904 -0.6092 0.0648 +vn -0.8245 -0.5659 0.0072 +vn -0.7532 -0.6458 0.1253 +vn -0.2758 -0.6534 -0.7050 +vn -0.3499 -0.6052 -0.7150 +vn -0.3200 -0.5758 -0.7524 +vn -0.2481 -0.6094 -0.7530 +vn -0.4166 -0.5614 -0.7150 +vn -0.3875 -0.5330 -0.7522 +vn -0.3645 -0.4980 -0.7868 +vn -0.2959 -0.5354 -0.7911 +vn -0.2743 -0.4922 -0.8261 +vn -0.3444 -0.4578 -0.8196 +vn -0.2563 -0.4464 -0.8573 +vn -0.3279 -0.4151 -0.8487 +vn -0.2397 -0.3964 -0.8862 +vn -0.3125 -0.3683 -0.8756 +vn -0.2252 -0.3435 -0.9117 +vn -0.2988 -0.3187 -0.8995 +vn -0.2132 -0.2895 -0.9331 +vn -0.2866 -0.2708 -0.9190 +vn -0.2023 -0.2341 -0.9509 +vn -0.2772 -0.2177 -0.9358 +vn -0.1941 -0.1773 -0.9648 +vn -0.2701 -0.1635 -0.9488 +vn -0.1884 -0.1194 -0.9748 +vn -0.2647 -0.1101 -0.9580 +vn -0.1850 -0.0600 -0.9809 +vn -0.2614 -0.0562 -0.9636 +vn -0.1836 0.0000 -0.9830 +vn -0.2603 -0.0000 -0.9655 +vn -0.9828 -0.0000 0.1846 +vn -0.9818 -0.0521 0.1827 +vn -0.9939 0.0000 0.1106 +vn -0.9929 -0.0467 0.1092 +vn -0.9788 -0.1007 0.1781 +vn -0.9903 -0.0912 0.1049 +vn -0.9740 -0.1507 0.1693 +vn -0.9857 -0.1376 0.0969 +vn -0.9672 -0.1994 0.1574 +vn -0.9796 -0.1820 0.0856 +vn -0.9584 -0.2477 0.1418 +vn -0.9717 -0.2251 0.0714 +vn -0.9480 -0.2931 0.1238 +vn -0.9623 -0.2662 0.0553 +vn -0.9356 -0.3381 0.1015 +vn -0.9509 -0.3074 0.0356 +vn -0.9216 -0.3806 0.0768 +vn -0.9377 -0.3471 0.0127 +vn -0.9064 -0.4195 0.0500 +vn -0.9240 -0.3822 -0.0119 +vn -0.8889 -0.4577 0.0194 +vn -0.9085 -0.4161 -0.0392 +vn -0.8706 -0.4918 -0.0125 +vn -0.8917 -0.4474 -0.0683 +vn -0.8523 -0.5209 -0.0481 +vn -0.8742 -0.4751 -0.0998 +vn -0.8345 -0.5437 -0.0895 +vn -0.8090 -0.5862 -0.0433 +vn -0.8558 -0.4991 -0.1359 +vn -0.8166 -0.5615 -0.1337 +vn -0.8372 -0.5188 -0.1729 +vn -0.7940 -0.6002 -0.0968 +vn -0.7457 -0.6400 -0.1851 +vn -0.7277 -0.6434 -0.2374 +vn -0.7199 -0.6558 -0.2271 +vn -0.7354 -0.6564 -0.1686 +vn -0.7589 -0.6190 -0.2022 +vn -0.7401 -0.6239 -0.2512 +vn -0.7081 -0.6448 -0.2878 +vn -0.7194 -0.6278 -0.2973 +vn -0.6998 -0.6571 -0.2800 +vn -0.6865 -0.6454 -0.3349 +vn -0.6760 -0.6598 -0.3282 +vn -0.6978 -0.6289 -0.3429 +vn -0.6634 -0.6441 -0.3808 +vn -0.6749 -0.6279 -0.3877 +vn -0.6505 -0.6615 -0.3733 +vn -0.6374 -0.6431 -0.4245 +vn -0.6234 -0.6607 -0.4181 +vn -0.6504 -0.6258 -0.4305 +vn -0.6231 -0.6228 -0.4731 +vn -0.6063 -0.6428 -0.4682 +vn -0.5908 -0.6602 -0.4638 +vn -0.5706 -0.6423 -0.5117 +vn -0.5540 -0.6588 -0.5090 +vn -0.5912 -0.6206 -0.5151 +vn -0.5568 -0.6161 -0.5572 +vn -0.5326 -0.6401 -0.5537 +vn -0.5101 -0.6609 -0.5505 +vn -0.4874 -0.5963 -0.6379 +vn -0.5295 -0.5596 -0.6376 +vn -0.5013 -0.5408 -0.6754 +vn -0.4523 -0.5820 -0.6758 +vn -0.5724 -0.5181 -0.6356 +vn -0.5496 -0.4982 -0.6706 +vn -0.5279 -0.4745 -0.7044 +vn -0.4759 -0.5177 -0.7110 +vn -0.4524 -0.4900 -0.7451 +vn -0.5088 -0.4472 -0.7356 +vn -0.4913 -0.4163 -0.7650 +vn -0.4309 -0.4576 -0.7778 +vn -0.4126 -0.4203 -0.8081 +vn -0.4753 -0.3823 -0.7924 +vn -0.3971 -0.3812 -0.8349 +vn -0.4610 -0.3469 -0.8168 +vn -0.3829 -0.3380 -0.8597 +vn -0.4479 -0.3082 -0.8393 +vn -0.3696 -0.2944 -0.8813 +vn -0.4365 -0.2669 -0.8592 +vn -0.3595 -0.2480 -0.8996 +vn -0.4271 -0.2254 -0.8756 +vn -0.3507 -0.1992 -0.9151 +vn -0.4187 -0.1822 -0.8896 +vn -0.3435 -0.1511 -0.9269 +vn -0.4121 -0.1375 -0.9007 +vn -0.3381 -0.1019 -0.9356 +vn -0.4080 -0.0916 -0.9084 +vn -0.3354 -0.0517 -0.9407 +vn -0.4056 -0.0469 -0.9128 +vn -0.3346 -0.0000 -0.9424 +vn -0.4048 -0.0000 -0.9144 +vn -0.9991 0.0000 0.0413 +vn -0.9983 -0.0421 0.0399 +vn -0.9997 -0.0000 -0.0248 +vn -0.9990 -0.0377 -0.0259 +vn -0.9960 -0.0823 0.0352 +vn -0.9968 -0.0746 -0.0300 +vn -0.9918 -0.1245 0.0274 +vn -0.9930 -0.1119 -0.0369 +vn -0.9862 -0.1646 0.0173 +vn -0.9883 -0.1457 -0.0448 +vn -0.9792 -0.2028 0.0058 +vn -0.9819 -0.1807 -0.0561 +vn -0.9708 -0.2398 -0.0088 +vn -0.9743 -0.2144 -0.0696 +vn -0.9606 -0.2768 -0.0270 +vn -0.9651 -0.2472 -0.0860 +vn -0.9484 -0.3133 -0.0480 +vn -0.9546 -0.2791 -0.1045 +vn -0.9360 -0.3452 -0.0692 +vn -0.9435 -0.3075 -0.1236 +vn -0.9220 -0.3758 -0.0938 +vn -0.9306 -0.3353 -0.1467 +vn -0.9069 -0.4037 -0.1205 +vn -0.9168 -0.3608 -0.1713 +vn -0.8909 -0.4289 -0.1494 +vn -0.9027 -0.3834 -0.1951 +vn -0.8734 -0.4522 -0.1807 +vn -0.8874 -0.4041 -0.2218 +vn -0.8556 -0.4723 -0.2117 +vn -0.8709 -0.4228 -0.2506 +vn -0.8369 -0.4891 -0.2457 +vn -0.8177 -0.5357 -0.2108 +vn -0.8537 -0.4385 -0.2809 +vn -0.8177 -0.5034 -0.2792 +vn -0.8365 -0.4514 -0.3107 +vn -0.7968 -0.5497 -0.2509 +vn -0.7976 -0.5141 -0.3155 +vn -0.7759 -0.5611 -0.2882 +vn -0.8184 -0.4614 -0.3426 +vn -0.7775 -0.5222 -0.3505 +vn -0.8006 -0.4682 -0.3739 +vn -0.7542 -0.5682 -0.3290 +vn -0.7570 -0.5272 -0.3859 +vn -0.7325 -0.5724 -0.3684 +vn -0.7820 -0.4723 -0.4068 +vn -0.7359 -0.5286 -0.4231 +vn -0.7637 -0.4740 -0.4382 +vn -0.7102 -0.5736 -0.4081 +vn -0.7148 -0.5275 -0.4591 +vn -0.6879 -0.5719 -0.4468 +vn -0.7448 -0.4728 -0.4709 +vn -0.6946 -0.5221 -0.4948 +vn -0.7260 -0.4687 -0.5032 +vn -0.6653 -0.5674 -0.4852 +vn -0.6748 -0.5139 -0.5297 +vn -0.6406 -0.5604 -0.5249 +vn -0.7082 -0.4621 -0.5338 +vn -0.6535 -0.5036 -0.5651 +vn -0.6898 -0.4519 -0.5657 +vn -0.6179 -0.5493 -0.5626 +vn -0.6337 -0.4891 -0.5994 +vn -0.5944 -0.5355 -0.5999 +vn -0.6719 -0.4383 -0.5971 +vn -0.6146 -0.4727 -0.6315 +vn -0.6552 -0.4228 -0.6261 +vn -0.5963 -0.4526 -0.6630 +vn -0.6388 -0.4036 -0.6550 +vn -0.5782 -0.4292 -0.6939 +vn -0.6233 -0.3839 -0.6812 +vn -0.5615 -0.4039 -0.7222 +vn -0.6087 -0.3616 -0.7062 +vn -0.5457 -0.3756 -0.7491 +vn -0.5956 -0.3367 -0.7293 +vn -0.5309 -0.3455 -0.7738 +vn -0.5826 -0.3085 -0.7520 +vn -0.5181 -0.3128 -0.7960 +vn -0.5704 -0.2783 -0.7728 +vn -0.5068 -0.2779 -0.8160 +vn -0.5600 -0.2476 -0.7906 +vn -0.4963 -0.2402 -0.8342 +vn -0.5504 -0.2147 -0.8068 +vn -0.4878 -0.2029 -0.8490 +vn -0.5425 -0.1806 -0.8204 +vn -0.4808 -0.1657 -0.8610 +vn -0.5368 -0.1475 -0.8307 +vn -0.4748 -0.1242 -0.8713 +vn -0.5315 -0.1108 -0.8398 +vn -0.4709 -0.0810 -0.8784 +vn -0.5272 -0.0735 -0.8466 +vn -0.4683 -0.0426 -0.8826 +vn -0.5252 -0.0381 -0.8501 +vn -0.4675 -0.0000 -0.8840 +vn -0.5247 0.0000 -0.8513 +vn -0.9961 -0.0000 -0.0882 +vn -0.9955 -0.0326 -0.0890 +vn -0.9890 -0.0000 -0.1476 +vn -0.9884 -0.0292 -0.1489 +vn -0.9935 -0.0661 -0.0925 +vn -0.9868 -0.0568 -0.1519 +vn -0.9902 -0.0993 -0.0980 +vn -0.9839 -0.0860 -0.1566 +vn -0.9859 -0.1293 -0.1058 +vn -0.9802 -0.1136 -0.1623 +vn -0.9805 -0.1589 -0.1159 +vn -0.9757 -0.1384 -0.1702 +vn -0.9737 -0.1889 -0.1276 +vn -0.9697 -0.1639 -0.1814 +vn -0.9654 -0.2185 -0.1423 +vn -0.9626 -0.1896 -0.1937 +vn -0.9564 -0.2459 -0.1578 +vn -0.9542 -0.2147 -0.2082 +vn -0.9459 -0.2718 -0.1770 +vn -0.9458 -0.2364 -0.2227 +vn -0.9352 -0.2955 -0.1951 +vn -0.9368 -0.2566 -0.2379 +vn -0.9239 -0.3173 -0.2140 +vn -0.9251 -0.2775 -0.2591 +vn -0.9107 -0.3378 -0.2377 +vn -0.9148 -0.2938 -0.2771 +vn -0.8971 -0.3562 -0.2615 +vn -0.9034 -0.3092 -0.2970 +vn -0.8825 -0.3726 -0.2869 +vn -0.8902 -0.3242 -0.3201 +vn -0.8678 -0.3866 -0.3122 +vn -0.8770 -0.3360 -0.3435 +vn -0.8520 -0.3980 -0.3401 +vn -0.8631 -0.3455 -0.3683 +vn -0.8355 -0.4067 -0.3694 +vn -0.8500 -0.3542 -0.3899 +vn -0.8202 -0.4129 -0.3960 +vn -0.8361 -0.3608 -0.4132 +vn -0.8041 -0.4170 -0.4237 +vn -0.8217 -0.3641 -0.4385 +vn -0.7878 -0.4184 -0.4520 +vn -0.8074 -0.3647 -0.4638 +vn -0.7713 -0.4173 -0.4806 +vn -0.7930 -0.3634 -0.4890 +vn -0.7552 -0.4136 -0.5086 +vn -0.7787 -0.3598 -0.5139 +vn -0.7396 -0.4072 -0.5359 +vn -0.7651 -0.3542 -0.5377 +vn -0.7229 -0.3970 -0.5655 +vn -0.7516 -0.3462 -0.5614 +vn -0.7071 -0.3859 -0.5926 +vn -0.7381 -0.3364 -0.5849 +vn -0.6924 -0.3727 -0.6178 +vn -0.7253 -0.3255 -0.6066 +vn -0.6778 -0.3586 -0.6419 +vn -0.7123 -0.3105 -0.6294 +vn -0.6638 -0.3390 -0.6667 +vn -0.6998 -0.2925 -0.6517 +vn -0.6507 -0.3162 -0.6904 +vn -0.6889 -0.2766 -0.6700 +vn -0.6394 -0.2953 -0.7099 +vn -0.6779 -0.2576 -0.6885 +vn -0.6289 -0.2727 -0.7281 +vn -0.6687 -0.2364 -0.7049 +vn -0.6183 -0.2465 -0.7463 +vn -0.6604 -0.2149 -0.7195 +vn -0.6086 -0.2190 -0.7627 +vn -0.6521 -0.1893 -0.7341 +vn -0.6005 -0.1891 -0.7770 +vn -0.6452 -0.1626 -0.7465 +vn -0.5935 -0.1585 -0.7891 +vn -0.6385 -0.1404 -0.7567 +vn -0.5877 -0.1312 -0.7984 +vn -0.6337 -0.1136 -0.7652 +vn -0.5833 -0.0978 -0.8063 +vn -0.6304 -0.0841 -0.7717 +vn -0.5801 -0.0644 -0.8120 +vn -0.6277 -0.0568 -0.7764 +vn -0.5782 -0.0329 -0.8153 +vn -0.6257 -0.0297 -0.7795 +vn -0.5774 -0.0000 -0.8165 +vn -0.6249 -0.0000 -0.7807 +vn -0.9797 0.0000 -0.2007 +vn -0.9791 -0.0268 -0.2017 +vn -0.9682 -0.0000 -0.2500 +vn -0.9676 -0.0256 -0.2511 +vn -0.9778 -0.0486 -0.2040 +vn -0.9666 -0.0442 -0.2523 +vn -0.9762 -0.0698 -0.2055 +vn -0.9653 -0.0636 -0.2532 +vn -0.9658 -0.0877 -0.2439 +vn -0.9730 -0.0969 -0.2093 +vn -0.9674 -0.1239 -0.2209 +vn -0.9595 -0.1003 -0.2632 +vn -0.9546 -0.1192 -0.2731 +vn -0.9627 -0.1422 -0.2304 +vn -0.9572 -0.1614 -0.2403 +vn -0.9495 -0.1353 -0.2829 +vn -0.9433 -0.1551 -0.2936 +vn -0.9495 -0.1850 -0.2534 +vn -0.9427 -0.2027 -0.2652 +vn -0.9360 -0.1732 -0.3064 +vn -0.9343 -0.2205 -0.2800 +vn -0.9292 -0.1884 -0.3180 +vn -0.9253 -0.2392 -0.2945 +vn -0.9217 -0.2064 -0.3285 +vn -0.9144 -0.2304 -0.3328 +vn -0.9155 -0.2564 -0.3102 +vn -0.9053 -0.2673 -0.3302 +vn -0.9054 -0.2299 -0.3569 +vn -0.8976 -0.2346 -0.3731 +vn -0.8948 -0.2778 -0.3495 +vn -0.8821 -0.2900 -0.3713 +vn -0.8889 -0.2415 -0.3892 +vn -0.8769 -0.2509 -0.4100 +vn -0.8723 -0.2983 -0.3875 +vn -0.8614 -0.3045 -0.4065 +vn -0.8653 -0.2571 -0.4302 +vn -0.8485 -0.3089 -0.4298 +vn -0.8556 -0.2619 -0.4465 +vn -0.8352 -0.3134 -0.4519 +vn -0.8457 -0.2661 -0.4626 +vn -0.8312 -0.2831 -0.4785 +vn -0.8219 -0.3174 -0.4730 +vn -0.8104 -0.3139 -0.4948 +vn -0.8259 -0.2670 -0.4966 +vn -0.8167 -0.2625 -0.5139 +vn -0.7991 -0.3096 -0.5153 +vn -0.7865 -0.3042 -0.5375 +vn -0.8063 -0.2575 -0.5325 +vn -0.7962 -0.2522 -0.5500 +vn -0.7740 -0.2971 -0.5592 +vn -0.7638 -0.2902 -0.5765 +vn -0.7843 -0.2423 -0.5712 +vn -0.7531 -0.2797 -0.5955 +vn -0.7737 -0.2334 -0.5890 +vn -0.7414 -0.2675 -0.6154 +vn -0.7648 -0.2279 -0.6026 +vn -0.7486 -0.2279 -0.6226 +vn -0.7281 -0.2560 -0.6359 +vn -0.7204 -0.2387 -0.6512 +vn -0.7486 -0.2065 -0.6301 +vn -0.7433 -0.1899 -0.6414 +vn -0.7124 -0.2215 -0.6659 +vn -0.7037 -0.2026 -0.6810 +vn -0.7357 -0.1728 -0.6549 +vn -0.7289 -0.1561 -0.6666 +vn -0.6972 -0.1850 -0.6926 +vn -0.6894 -0.1612 -0.7062 +vn -0.7224 -0.1356 -0.6780 +vn -0.6834 -0.1438 -0.7157 +vn -0.7167 -0.1181 -0.6873 +vn -0.6776 -0.1235 -0.7250 +vn -0.7105 -0.1016 -0.6963 +vn -0.6949 -0.0885 -0.7136 +vn -0.6713 -0.0951 -0.7350 +vn -0.6690 -0.0709 -0.7399 +vn -0.7034 -0.0650 -0.7078 +vn -0.7046 -0.0437 -0.7082 +vn -0.6680 -0.0494 -0.7425 +vn -0.6668 -0.0272 -0.7448 +vn -0.7040 -0.0245 -0.7098 +vn -0.7036 -0.0000 -0.7106 +vn -0.6662 -0.0000 -0.7458 +vn 0.8110 0.0000 0.5851 +vn 0.8113 -0.0078 0.5846 +vn 0.9323 0.0121 0.3614 +vn 0.9326 0.0000 0.3609 +vn 0.8119 -0.0157 0.5836 +vn 0.9319 0.0242 0.3619 +vn 0.8128 -0.0236 0.5821 +vn 0.9308 0.0360 0.3638 +vn 0.8139 -0.0312 0.5802 +vn 0.9291 0.0475 0.3669 +vn 0.8152 -0.0387 0.5779 +vn 0.9269 0.0589 0.3706 +vn 0.8168 -0.0458 0.5751 +vn 0.9244 0.0699 0.3750 +vn 0.8188 -0.0527 0.5717 +vn 0.9215 0.0804 0.3800 +vn 0.8211 -0.0593 0.5678 +vn 0.9181 0.0904 0.3859 +vn 0.8235 -0.0654 0.5636 +vn 0.9144 0.1001 0.3923 +vn 0.8262 -0.0712 0.5589 +vn 0.9104 0.1094 0.3990 +vn 0.8291 -0.0769 0.5538 +vn 0.9059 0.1171 0.4070 +vn 0.8321 -0.0820 0.5486 +vn 0.9011 0.1243 0.4154 +vn 0.8353 -0.0864 0.5430 +vn 0.8960 0.1309 0.4242 +vn 0.8388 -0.0904 0.5370 +vn 0.8908 0.1367 0.4334 +vn 0.8423 -0.0938 0.5307 +vn 0.8853 0.1418 0.4429 +vn 0.8460 -0.0966 0.5243 +vn 0.8796 0.1459 0.4527 +vn 0.8499 -0.0986 0.5177 +vn 0.8738 0.1492 0.4627 +vn 0.8538 -0.0997 0.5109 +vn 0.8679 0.1517 0.4730 +vn 0.8579 -0.0997 0.5041 +vn 0.8619 0.1533 0.4833 +vn 0.8618 -0.0987 0.4975 +vn 0.8559 0.1539 0.4938 +vn 0.8657 -0.0963 0.4913 +vn 0.8498 0.1537 0.5042 +vn 0.8691 -0.0870 0.4869 +vn 0.8433 0.1540 0.5149 +vn 0.8731 -0.0840 0.4802 +vn 0.8372 0.1525 0.5252 +vn 0.8779 -0.0921 0.4700 +vn 0.8321 0.1470 0.5348 +vn 0.8812 -0.0930 0.4635 +vn 0.8265 0.1419 0.5447 +vn 0.8847 -0.0902 0.4573 +vn 0.8211 0.1369 0.5542 +vn 0.8882 -0.0864 0.4512 +vn 0.8158 0.1310 0.5633 +vn 0.8916 -0.0821 0.4454 +vn 0.8108 0.1242 0.5719 +vn 0.8947 -0.0772 0.4400 +vn 0.8061 0.1167 0.5801 +vn 0.8976 -0.0718 0.4349 +vn 0.8017 0.1085 0.5878 +vn 0.9003 -0.0660 0.4302 +vn 0.7976 0.0997 0.5949 +vn 0.9028 -0.0597 0.4259 +vn 0.7939 0.0902 0.6013 +vn 0.9050 -0.0530 0.4221 +vn 0.7906 0.0802 0.6071 +vn 0.9069 -0.0461 0.4188 +vn 0.7876 0.0697 0.6122 +vn 0.9086 -0.0388 0.4159 +vn 0.7851 0.0587 0.6166 +vn 0.9100 -0.0313 0.4135 +vn 0.7830 0.0474 0.6202 +vn 0.9111 -0.0237 0.4116 +vn 0.7814 0.0358 0.6230 +vn 0.9118 -0.0159 0.4102 +vn 0.7803 0.0240 0.6250 +vn 0.9123 -0.0080 0.4094 +vn 0.7795 0.0120 0.6262 +vn 0.9125 -0.0000 0.4091 +vn 0.7793 -0.0000 0.6266 +vn 0.9996 0.0000 0.0280 +vn 0.9989 0.0373 0.0295 +vn 0.9830 0.0507 -0.1766 +vn 0.9840 0.0000 -0.1783 +vn 0.9967 0.0744 0.0328 +vn 0.9800 0.1011 -0.1715 +vn 0.9931 0.1110 0.0391 +vn 0.9750 0.1508 -0.1629 +vn 0.9880 0.1469 0.0480 +vn 0.9682 0.1997 -0.1509 +vn 0.9815 0.1819 0.0592 +vn 0.9594 0.2473 -0.1357 +vn 0.9737 0.2158 0.0727 +vn 0.9488 0.2933 -0.1173 +vn 0.9646 0.2484 0.0885 +vn 0.9364 0.3376 -0.0958 +vn 0.9542 0.2794 0.1065 +vn 0.9223 0.3798 -0.0714 +vn 0.9427 0.3088 0.1264 +vn 0.9066 0.4196 -0.0442 +vn 0.9300 0.3363 0.1483 +vn 0.8894 0.4569 -0.0144 +vn 0.9163 0.3616 0.1720 +vn 0.8708 0.4913 0.0179 +vn 0.9017 0.3847 0.1975 +vn 0.8509 0.5227 0.0524 +vn 0.8862 0.4053 0.2245 +vn 0.8298 0.5509 0.0889 +vn 0.8699 0.4234 0.2528 +vn 0.8077 0.5757 0.1273 +vn 0.8530 0.4391 0.2821 +vn 0.7847 0.5970 0.1672 +vn 0.8355 0.4520 0.3124 +vn 0.7609 0.6145 0.2084 +vn 0.8176 0.4621 0.3435 +vn 0.7365 0.6283 0.2507 +vn 0.7993 0.4694 0.3752 +vn 0.7116 0.6382 0.2938 +vn 0.7807 0.4738 0.4073 +vn 0.6864 0.6442 0.3375 +vn 0.7621 0.4753 0.4396 +vn 0.6611 0.6461 0.3814 +vn 0.7434 0.4739 0.4719 +vn 0.6358 0.6441 0.4253 +vn 0.7249 0.4696 0.5040 +vn 0.6106 0.6382 0.4689 +vn 0.7066 0.4624 0.5357 +vn 0.5857 0.6283 0.5120 +vn 0.6887 0.4521 0.5668 +vn 0.5613 0.6145 0.5543 +vn 0.6712 0.4391 0.5972 +vn 0.5375 0.5970 0.5956 +vn 0.6542 0.4236 0.6266 +vn 0.5145 0.5757 0.6355 +vn 0.6379 0.4054 0.6548 +vn 0.4924 0.5509 0.6738 +vn 0.6225 0.3846 0.6816 +vn 0.4713 0.5227 0.7103 +vn 0.6078 0.3614 0.7070 +vn 0.4514 0.4913 0.7449 +vn 0.5941 0.3361 0.7308 +vn 0.4328 0.4569 0.7771 +vn 0.5815 0.3087 0.7527 +vn 0.4156 0.4196 0.8070 +vn 0.5700 0.2794 0.7727 +vn 0.3999 0.3798 0.8342 +vn 0.5596 0.2483 0.7907 +vn 0.3858 0.3376 0.8586 +vn 0.5505 0.2158 0.8064 +vn 0.3734 0.2933 0.8801 +vn 0.5427 0.1819 0.8200 +vn 0.3628 0.2473 0.8985 +vn 0.5363 0.1469 0.8312 +vn 0.3540 0.1997 0.9137 +vn 0.5312 0.1109 0.8399 +vn 0.3472 0.1508 0.9256 +vn 0.5276 0.0743 0.8462 +vn 0.3422 0.1011 0.9342 +vn 0.5254 0.0373 0.8500 +vn 0.3392 0.0507 0.9393 +vn 0.5247 -0.0000 0.8513 +vn 0.3383 0.0000 0.9411 +vn 0.4225 0.0000 0.9064 +vn 0.4237 -0.0459 0.9046 +vn 0.4271 -0.0887 0.8998 +vn 0.4310 -0.1330 0.8925 +vn 0.4381 -0.1749 0.8818 +vn 0.4457 -0.2175 0.8683 +vn 0.4549 -0.2588 0.8521 +vn 0.4662 -0.2975 0.8332 +vn 0.4789 -0.3327 0.8124 +vn 0.4938 -0.3682 0.7878 +vn 0.5097 -0.4019 0.7607 +vn 0.5265 -0.4314 0.7326 +vn 0.5451 -0.4578 0.7024 +vn 0.5654 -0.4818 0.6695 +vn 0.5858 -0.5023 0.6360 +vn 0.6074 -0.5186 0.6018 +vn 0.6287 -0.5335 0.5658 +vn 0.6501 -0.5455 0.5290 +vn 0.6706 -0.5551 0.4920 +vn 0.6927 -0.5615 0.4527 +vn 0.7139 -0.5639 0.4151 +vn 0.7360 -0.5633 0.3755 +vn 0.7584 -0.5586 0.3358 +vn 0.7796 -0.5504 0.2989 +vn 0.8025 -0.5371 0.2599 +vn 0.8248 -0.5176 0.2277 +vn 0.8451 -0.4972 0.1965 +vn 0.8650 -0.4752 0.1611 +vn 0.8833 -0.4502 0.1308 +vn 0.9004 -0.4229 0.1027 +vn 0.9163 -0.3934 0.0750 +vn 0.9312 -0.3612 0.0483 +vn 0.9447 -0.3272 0.0238 +vn 0.9566 -0.2914 0.0018 +vn 0.9672 -0.2536 -0.0157 +vn 0.9765 -0.2133 -0.0322 +vn 0.9840 -0.1722 -0.0458 +vn 0.9900 -0.1299 -0.0557 +vn 0.9944 -0.0861 -0.0618 +vn 0.9969 -0.0436 -0.0660 +vn 0.9978 -0.0000 -0.0667 +vn 0.9766 0.0000 -0.2151 +vn 0.9755 0.0529 -0.2133 +vn 0.9767 0.0526 -0.2083 +vn 0.9777 0.0000 -0.2100 +vn 0.9724 0.1055 -0.2079 +vn 0.9736 0.1049 -0.2029 +vn 0.9673 0.1574 -0.1990 +vn 0.9684 0.1565 -0.1940 +vn 0.9601 0.2084 -0.1865 +vn 0.9613 0.2072 -0.1816 +vn 0.9509 0.2581 -0.1707 +vn 0.9522 0.2566 -0.1658 +vn 0.9399 0.3061 -0.1515 +vn 0.9412 0.3044 -0.1467 +vn 0.9269 0.3523 -0.1291 +vn 0.9283 0.3503 -0.1245 +vn 0.9122 0.3964 -0.1036 +vn 0.9137 0.3941 -0.0991 +vn 0.8959 0.4379 -0.0752 +vn 0.8974 0.4354 -0.0709 +vn 0.8779 0.4768 -0.0441 +vn 0.8796 0.4741 -0.0399 +vn 0.8585 0.5128 -0.0104 +vn 0.8602 0.5098 -0.0065 +vn 0.8377 0.5455 0.0256 +vn 0.8396 0.5424 0.0294 +vn 0.8157 0.5750 0.0638 +vn 0.8177 0.5717 0.0673 +vn 0.7926 0.6008 0.1038 +vn 0.7948 0.5974 0.1071 +vn 0.7686 0.6230 0.1454 +vn 0.7709 0.6194 0.1485 +vn 0.7438 0.6413 0.1885 +vn 0.7462 0.6377 0.1913 +vn 0.7183 0.6557 0.2326 +vn 0.7209 0.6520 0.2351 +vn 0.6923 0.6660 0.2776 +vn 0.6951 0.6622 0.2799 +vn 0.6661 0.6723 0.3231 +vn 0.6690 0.6684 0.3252 +vn 0.6396 0.6743 0.3690 +vn 0.6427 0.6705 0.3707 +vn 0.6132 0.6723 0.4148 +vn 0.6164 0.6684 0.4163 +vn 0.5869 0.6660 0.4604 +vn 0.5903 0.6622 0.4616 +vn 0.5610 0.6557 0.5053 +vn 0.5645 0.6520 0.5063 +vn 0.5355 0.6413 0.5495 +vn 0.5391 0.6377 0.5502 +vn 0.5107 0.6230 0.5925 +vn 0.5145 0.6194 0.5930 +vn 0.4867 0.6008 0.6342 +vn 0.4906 0.5974 0.6344 +vn 0.4636 0.5750 0.6742 +vn 0.4676 0.5717 0.6742 +vn 0.4416 0.5456 0.7123 +vn 0.4457 0.5424 0.7121 +vn 0.4208 0.5128 0.7483 +vn 0.4251 0.5098 0.7479 +vn 0.4014 0.4768 0.7820 +vn 0.4058 0.4741 0.7814 +vn 0.3834 0.4379 0.8131 +vn 0.3879 0.4354 0.8124 +vn 0.3670 0.3964 0.8415 +vn 0.3716 0.3941 0.8406 +vn 0.3523 0.3523 0.8670 +vn 0.3570 0.3503 0.8659 +vn 0.3394 0.3061 0.8894 +vn 0.3442 0.3044 0.8882 +vn 0.3283 0.2581 0.9086 +vn 0.3331 0.2566 0.9073 +vn 0.3192 0.2084 0.9245 +vn 0.3240 0.2072 0.9231 +vn 0.3120 0.1574 0.9370 +vn 0.3169 0.1565 0.9355 +vn 0.3068 0.1055 0.9459 +vn 0.3118 0.1049 0.9444 +vn 0.3037 0.0529 0.9513 +vn 0.3087 0.0526 0.9497 +vn 0.3027 0.0000 0.9531 +vn 0.3076 0.0000 0.9515 +vn 0.9809 -0.0000 -0.1943 +vn 0.9799 0.0517 -0.1925 +vn 0.9769 0.1030 -0.1873 +vn 0.9719 0.1537 -0.1785 +vn 0.9648 0.2035 -0.1664 +vn 0.9559 0.2520 -0.1509 +vn 0.9451 0.2989 -0.1321 +vn 0.9325 0.3440 -0.1102 +vn 0.9181 0.3870 -0.0853 +vn 0.9021 0.4276 -0.0576 +vn 0.8846 0.4656 -0.0272 +vn 0.8656 0.5007 0.0057 +vn 0.8453 0.5327 0.0408 +vn 0.8238 0.5614 0.0781 +vn 0.8013 0.5867 0.1171 +vn 0.7778 0.6083 0.1578 +vn 0.7536 0.6262 0.1998 +vn 0.7287 0.6402 0.2429 +vn 0.7034 0.6503 0.2869 +vn 0.6778 0.6564 0.3313 +vn 0.6519 0.6584 0.3761 +vn 0.6261 0.6564 0.4208 +vn 0.6005 0.6503 0.4653 +vn 0.5751 0.6403 0.5092 +vn 0.5503 0.6262 0.5523 +vn 0.5260 0.6083 0.5943 +vn 0.5026 0.5867 0.6350 +vn 0.4800 0.5614 0.6741 +vn 0.4586 0.5327 0.7113 +vn 0.4383 0.5007 0.7465 +vn 0.4193 0.4656 0.7794 +vn 0.4018 0.4276 0.8098 +vn 0.3858 0.3870 0.8375 +vn 0.3714 0.3440 0.8624 +vn 0.3588 0.2989 0.8843 +vn 0.3480 0.2520 0.9030 +vn 0.3390 0.2035 0.9185 +vn 0.3320 0.1537 0.9307 +vn 0.3270 0.1030 0.9394 +vn 0.3239 0.0517 0.9447 +vn 0.3229 -0.0000 0.9464 +vn 0.8037 0.0719 -0.5907 +vn 0.8051 0.0000 -0.5931 +vn 0.9596 -0.0000 -0.2814 +vn 0.7995 0.1433 -0.5834 +vn 0.4340 0.0782 -0.8975 +vn 0.4294 0.1560 -0.8895 +vn 0.4356 0.0000 -0.9002 +vn 0.7925 0.2139 -0.5712 +vn 0.7827 0.2831 -0.5543 +vn 0.4218 0.2328 -0.8763 +vn 0.4112 0.3082 -0.8579 +vn 0.7703 0.3506 -0.5327 +vn 0.7552 0.4159 -0.5066 +vn 0.3976 0.3817 -0.8344 +vn 0.3812 0.4528 -0.8060 +vn 0.7377 0.4786 -0.4762 +vn 0.7177 0.5384 -0.4416 +vn 0.3621 0.5211 -0.7729 +vn 0.3404 0.5862 -0.7352 +vn 0.6954 0.5949 -0.4030 +vn 0.6710 0.6478 -0.3607 +vn 0.3162 0.6477 -0.6932 +vn 0.2896 0.7052 -0.6471 +vn 0.6447 0.6966 -0.3149 +vn 0.6164 0.7411 -0.2660 +vn 0.2609 0.7584 -0.5973 +vn 0.2301 0.8069 -0.5440 +vn 0.5865 0.7811 -0.2142 +vn 0.5552 0.8162 -0.1599 +vn 0.1976 0.8504 -0.4876 +vn 0.1634 0.8887 -0.4284 +vn 0.5225 0.8463 -0.1033 +vn 0.4888 0.8712 -0.0448 +vn 0.1279 0.9215 -0.3668 +vn 0.0912 0.9486 -0.3032 +vn 0.4542 0.8908 0.0151 +vn 0.4189 0.9048 0.0762 +vn 0.0535 0.9698 -0.2379 +vn 0.0151 0.9851 -0.1714 +vn 0.3833 0.9133 0.1381 +vn 0.3474 0.9161 0.2004 +vn -0.0237 0.9943 -0.1040 +vn -0.0628 0.9974 -0.0362 +vn 0.3114 0.9132 0.2626 +vn 0.2758 0.9048 0.3245 +vn -0.1019 0.9943 0.0316 +vn -0.1408 0.9851 0.0989 +vn 0.2405 0.8908 0.3856 +vn 0.2059 0.8712 0.4456 +vn -0.1791 0.9698 0.1655 +vn -0.2168 0.9486 0.2307 +vn 0.1722 0.8463 0.5040 +vn 0.1396 0.8162 0.5606 +vn -0.2535 0.9214 0.2944 +vn -0.2891 0.8887 0.3560 +vn 0.1082 0.7811 0.6150 +vn 0.0783 0.7411 0.6668 +vn -0.3232 0.8504 0.4152 +vn -0.3557 0.8069 0.4716 +vn 0.0501 0.6966 0.7157 +vn 0.0237 0.6478 0.7615 +vn -0.3864 0.7584 0.5249 +vn -0.4152 0.7052 0.5747 +vn -0.0007 0.5949 0.8038 +vn -0.0230 0.5385 0.8423 +vn -0.4417 0.6477 0.6207 +vn -0.4660 0.5862 0.6627 +vn -0.0430 0.4787 0.8770 +vn -0.0605 0.4159 0.9074 +vn -0.4877 0.5211 0.7004 +vn -0.5068 0.4528 0.7336 +vn -0.0756 0.3506 0.9335 +vn -0.0880 0.2831 0.9551 +vn -0.5232 0.3817 0.7620 +vn -0.5368 0.3082 0.7854 +vn -0.0978 0.2139 0.9720 +vn -0.1047 0.1433 0.9841 +vn -0.5474 0.2328 0.8038 +vn -0.5550 0.1560 0.8171 +vn -0.1090 0.0719 0.9914 +vn -0.1103 -0.0000 0.9939 +vn -0.5596 0.0783 0.8251 +vn -0.5611 -0.0000 0.8277 +vn 0.1082 0.0719 -0.9915 +vn 0.1096 0.0000 -0.9940 +vn 0.1040 0.1433 -0.9842 +vn -0.0949 0.0640 -0.9934 +vn -0.0986 0.1276 -0.9869 +vn -0.0936 0.0000 -0.9956 +vn 0.0970 0.2138 -0.9721 +vn 0.0873 0.2830 -0.9551 +vn -0.1048 0.1904 -0.9761 +vn -0.1135 0.2521 -0.9610 +vn 0.0748 0.3504 -0.9336 +vn 0.0597 0.4157 -0.9075 +vn -0.1246 0.3121 -0.9418 +vn -0.1380 0.3703 -0.9186 +vn 0.0422 0.4785 -0.8771 +vn 0.0223 0.5383 -0.8425 +vn -0.1536 0.4262 -0.8915 +vn -0.1714 0.4794 -0.8607 +vn 0.0001 0.5948 -0.8039 +vn -0.0243 0.6476 -0.7616 +vn -0.1912 0.5297 -0.8263 +vn -0.2130 0.5767 -0.7887 +vn -0.0508 0.6964 -0.7159 +vn -0.0790 0.7409 -0.6670 +vn -0.2365 0.6202 -0.7479 +vn -0.2616 0.6599 -0.7044 +vn -0.1089 0.7808 -0.6152 +vn -0.1402 0.8160 -0.5608 +vn -0.2882 0.6955 -0.6582 +vn -0.3161 0.7268 -0.6098 +vn -0.1728 0.8461 -0.5043 +vn -0.2065 0.8710 -0.4458 +vn -0.3452 0.7536 -0.5595 +vn -0.3752 0.7757 -0.5074 +vn -0.2411 0.8905 -0.3859 +vn -0.2763 0.9045 -0.3248 +vn -0.4060 0.7931 -0.4540 +vn -0.4374 0.8056 -0.3996 +vn -0.3120 0.9130 -0.2629 +vn -0.3479 0.9158 -0.2007 +vn -0.4692 0.8131 -0.3445 +vn -0.5012 0.8156 -0.2891 +vn -0.3838 0.9130 -0.1385 +vn -0.4195 0.9045 -0.0766 +vn -0.5331 0.8131 -0.2337 +vn -0.5649 0.8056 -0.1786 +vn -0.4548 0.8905 -0.0155 +vn -0.4894 0.8709 0.0444 +vn -0.5963 0.7931 -0.1241 +vn -0.6271 0.7757 -0.0708 +vn -0.5231 0.8461 0.1028 +vn -0.5557 0.8160 0.1594 +vn -0.6571 0.7536 -0.0187 +vn -0.6862 0.7268 0.0317 +vn -0.5870 0.7808 0.2138 +vn -0.6169 0.7409 0.2655 +vn -0.7141 0.6954 0.0801 +vn -0.7407 0.6599 0.1262 +vn -0.6451 0.6964 0.3145 +vn -0.6715 0.6475 0.3602 +vn -0.7658 0.6202 0.1698 +vn -0.7893 0.5768 0.2105 +vn -0.6959 0.5947 0.4025 +vn -0.7182 0.5383 0.4410 +vn -0.8111 0.5297 0.2481 +vn -0.8309 0.4794 0.2825 +vn -0.7381 0.4785 0.4757 +vn -0.7557 0.4158 0.5061 +vn -0.8486 0.4262 0.3133 +vn -0.8643 0.3703 0.3404 +vn -0.7707 0.3505 0.5322 +vn -0.7832 0.2830 0.5537 +vn -0.8777 0.3121 0.3637 +vn -0.8888 0.2520 0.3829 +vn -0.7929 0.2138 0.5706 +vn -0.7999 0.1433 0.5827 +vn -0.8974 0.1904 0.3979 +vn -0.9037 0.1276 0.4087 +vn -0.8042 0.0718 0.5901 +vn -0.8056 -0.0000 0.5925 +vn -0.9075 0.0640 0.4153 +vn -0.9087 0.0000 0.4174 +vn -0.4994 -0.7965 0.3409 +vn -0.5938 -0.6897 0.4144 +vn -0.6363 -0.6905 0.3440 +vn -0.5222 -0.8078 0.2734 +vn -0.6104 -0.6606 0.4370 +vn -0.6544 -0.6620 0.3656 +vn -0.6921 -0.6599 0.2923 +vn -0.6723 -0.6883 0.2726 +vn -0.5539 -0.8038 0.2170 +vn -0.6988 -0.6880 0.1957 +vn -0.5639 -0.8112 0.1549 +vn -0.7240 -0.6559 0.2135 +vn -0.7119 -0.6906 0.1276 +vn -0.5512 -0.8287 0.0975 +vn -0.7187 -0.6930 0.0571 +vn -0.5540 -0.8310 0.0497 +vn -0.7534 -0.6563 0.0406 +vn -0.7164 -0.6975 -0.0156 +vn -0.7500 -0.6606 -0.0349 +vn -0.5471 -0.8370 -0.0020 +vn -0.7111 -0.6982 -0.0825 +vn -0.5377 -0.8415 -0.0518 +vn -0.7442 -0.6600 -0.1031 +vn -0.7040 -0.6948 -0.1470 +vn -0.5502 -0.8284 -0.1054 +vn -0.6942 -0.6883 -0.2105 +vn -0.5624 -0.8107 -0.1626 +vn -0.6758 -0.6873 -0.2662 +vn -0.5554 -0.8031 -0.2159 +vn -0.4593 -0.8087 -0.3676 +vn -0.5674 -0.6894 -0.4503 +vn -0.5270 -0.6906 -0.4953 +vn -0.4147 -0.8183 -0.3980 +vn -0.4778 -0.6960 -0.5360 +vn -0.3583 -0.8366 -0.4145 +vn -0.4915 -0.6356 -0.5954 +vn -0.4593 -0.6652 -0.5886 +vn -0.5235 -0.6072 -0.5977 +vn -0.4479 -0.6288 -0.6356 +vn -0.4066 -0.6669 -0.6244 +vn -0.3993 -0.6203 -0.6751 +vn -0.3449 -0.6640 -0.6634 +vn -0.1674 -0.6269 -0.7609 +vn -0.1839 -0.6677 -0.7214 +vn -0.0846 -0.6395 -0.7641 +vn -0.0971 -0.6769 -0.7297 +vn -0.0020 -0.6483 -0.7614 +vn -0.0134 -0.6823 -0.7309 +vn 0.0793 -0.6531 -0.7531 +vn 0.0685 -0.6834 -0.7268 +vn 0.0567 -0.7188 -0.6929 +vn 0.1376 -0.7069 -0.6938 +vn 0.0904 -0.8749 -0.4758 +vn 0.0282 -0.9069 -0.4203 +vn 0.1484 -0.6794 -0.7186 +vn 0.2162 -0.7014 -0.6792 +vn 0.2267 -0.6763 -0.7009 +vn 0.1602 -0.8470 -0.5069 +vn 0.3709 -0.8368 -0.4027 +vn 0.4828 -0.6984 -0.5283 +vn 0.5359 -0.7026 -0.4682 +vn 0.4019 -0.8487 -0.3438 +vn 0.4965 -0.6746 -0.5463 +vn 0.5535 -0.6717 -0.4924 +vn 0.6052 -0.6705 -0.4293 +vn 0.5820 -0.7073 -0.4012 +vn 0.4173 -0.8652 -0.2780 +vn 0.6189 -0.6444 -0.4492 +vn 0.6659 -0.6411 -0.3815 +vn 0.6475 -0.6732 -0.3573 +vn 0.7077 -0.6354 -0.3089 +vn 0.6855 -0.6712 -0.2821 +vn 0.7447 -0.6248 -0.2346 +vn 0.7207 -0.6627 -0.2033 +vn 0.7807 -0.6249 0.0034 +vn 0.7518 -0.6586 -0.0334 +vn 0.7683 -0.6367 0.0660 +vn 0.7465 -0.6642 0.0397 +vn 0.4081 -0.6574 0.6335 +vn 0.4408 -0.6316 0.6377 +vn 0.3898 -0.6215 0.6795 +vn 0.3427 -0.6507 0.6776 +vn 0.1632 -0.6195 0.7678 +vn 0.1796 -0.6495 0.7389 +vn 0.0815 -0.6252 0.7762 +vn 0.0946 -0.6546 0.7501 +vn 0.5655 -0.7279 0.3878 +vn 0.2454 -0.9547 0.1685 +vn 0.2472 -0.9584 0.1428 +vn 0.5871 -0.7347 0.3399 +vn 0.5303 -0.7298 0.4315 +vn 0.2274 -0.9555 0.1878 +vn -0.1800 -0.9758 -0.1245 +vn -0.1686 -0.9758 -0.1390 +vn -0.1917 -0.9751 -0.1114 +vn 0.6280 -0.7399 0.2411 +vn 0.6131 -0.7327 0.2953 +vn 0.2597 -0.9577 0.1239 +vn 0.2601 -0.9606 0.0975 +vn -0.2007 -0.9749 -0.0964 +vn -0.2095 -0.9746 -0.0787 +vn -0.1845 -0.7822 0.5951 +vn -0.2458 -0.7897 0.5621 +vn -0.0874 -0.9755 0.2019 +vn -0.0669 -0.9729 0.2213 +vn -0.2993 -0.7989 0.5217 +vn -0.1022 -0.9785 0.1792 +vn 0.0855 -0.9771 -0.1947 +vn 0.1067 -0.9770 -0.1845 +vn 0.0630 -0.9770 -0.2039 +vn 0.3108 -0.8507 -0.4239 +vn 0.0729 -0.9925 -0.0985 +vn 0.0505 -0.9951 -0.0848 +vn 0.2527 -0.8640 -0.4354 +vn 0.0981 -0.9896 -0.1054 +vn -0.1264 -0.9765 0.1747 +vn -0.1460 -0.9766 0.1582 +vn -0.1083 -0.9761 0.1883 +vn -0.3539 -0.8003 0.4840 +vn -0.1211 -0.9788 0.1654 +vn -0.4095 -0.7956 0.4465 +vn -0.1454 -0.9768 0.1572 +vn 0.1245 -0.9776 -0.1697 +vn 0.1411 -0.9780 -0.1540 +vn 0.2119 -0.8514 -0.4798 +vn 0.0478 -0.9928 -0.1099 +vn 0.0394 -0.9918 -0.1216 +vn -0.0870 -0.9768 0.1955 +vn -0.0624 -0.9774 0.2021 +vn -0.5243 -0.8127 -0.2541 +vn -0.1707 -0.9819 -0.0824 +vn -0.1935 -0.9783 -0.0741 +vn -0.4932 -0.8226 -0.2830 +vn -0.1480 -0.9854 -0.0845 +vn 0.1871 -0.9781 0.0917 +vn 0.1834 -0.9773 0.1060 +vn 0.1919 -0.9785 0.0750 +vn -0.4797 -0.8156 -0.3235 +vn -0.1509 -0.9833 -0.1022 +vn -0.1517 -0.9808 -0.1227 +vn 0.1753 -0.9775 0.1177 +vn 0.1623 -0.9782 0.1295 +vn -0.4590 -0.7942 0.3983 +vn -0.1631 -0.9768 0.1388 +vn -0.1707 -0.9788 0.1133 +vn 0.1595 -0.9773 -0.1391 +vn 0.1781 -0.9765 -0.1212 +vn -0.1653 -0.9827 0.0831 +vn -0.1773 -0.9819 0.0662 +vn 0.1931 -0.9759 -0.1013 +vn 0.2045 -0.9756 -0.0803 +vn -0.1680 -0.9848 0.0443 +vn -0.1416 -0.9896 0.0247 +vn 0.2167 -0.9745 -0.0587 +vn 0.2260 -0.9733 -0.0395 +vn -0.1426 -0.9897 0.0154 +vn -0.1377 -0.9905 0.0031 +vn 0.2247 -0.9744 0.0015 +vn 0.2280 -0.9735 -0.0198 +vn -0.1322 -0.9912 -0.0095 +vn -0.1550 -0.9876 -0.0269 +vn 0.2140 -0.9760 0.0404 +vn 0.2207 -0.9751 0.0216 +vn -0.1834 -0.9817 -0.0504 +vn 0.2029 -0.9775 0.0581 +vn -0.1246 -0.9846 -0.1225 +vn -0.0880 -0.9906 -0.1051 +vn 0.1524 -0.9773 0.1472 +vn 0.1421 -0.9758 0.1662 +vn -0.3059 -0.8495 -0.4298 +vn -0.0610 -0.9940 -0.0904 +vn -0.2661 -0.8487 -0.4570 +vn -0.0509 -0.9943 -0.0940 +vn 0.1289 -0.9748 0.1819 +vn 0.1133 -0.9741 0.1956 +vn -0.2215 -0.8509 -0.4763 +vn -0.0403 -0.9950 -0.0910 +vn -0.1749 -0.8607 -0.4781 +vn -0.0284 -0.9966 -0.0769 +vn 0.0955 -0.9733 0.2088 +vn 0.0780 -0.9726 0.2188 +vn -0.1253 -0.8735 -0.4705 +vn -0.0190 -0.9975 -0.0681 +vn -0.0735 -0.8957 -0.4385 +vn -0.0093 -0.9995 -0.0291 +vn 0.0565 -0.9737 0.2209 +vn 0.0322 -0.9745 0.2219 +vn -0.0232 -0.9165 -0.3994 +vn -0.0027 -0.9999 0.0168 +vn -0.0002 -1.0000 0.0016 +vn 0.0098 -0.9746 0.2236 +vn -0.0134 -0.9751 0.2214 +vn 0.0133 -0.9978 -0.0656 +vn -0.0380 -0.9764 0.2127 +vn 0.0919 -0.9928 -0.0766 +vn 0.0719 -0.9964 -0.0456 +vn -0.1688 -0.9752 0.1428 +vn -0.1890 -0.9739 0.1259 +vn 0.4461 -0.8654 -0.2280 +vn 0.0738 -0.9967 -0.0339 +vn 0.5005 -0.8444 -0.1911 +vn 0.1124 -0.9929 -0.0394 +vn -0.2036 -0.9732 0.1067 +vn -0.2153 -0.9728 0.0854 +vn 0.5380 -0.8305 -0.1445 +vn 0.1319 -0.9907 -0.0337 +vn 0.5493 -0.8298 -0.0987 +vn 0.1294 -0.9913 -0.0239 +vn -0.2286 -0.9715 0.0633 +vn -0.2383 -0.9702 0.0438 +vn 0.5737 -0.8174 -0.0511 +vn 0.1534 -0.9880 -0.0165 +vn 0.5880 -0.8088 0.0050 +vn 0.1725 -0.9850 -0.0029 +vn -0.2365 -0.9716 -0.0003 +vn -0.2390 -0.9707 0.0234 +vn 0.5816 -0.8114 0.0584 +vn 0.1685 -0.9856 0.0130 +vn 0.5947 -0.7957 0.1148 +vn 0.1906 -0.9811 0.0334 +vn -0.2283 -0.9727 -0.0419 +vn -0.2334 -0.9721 -0.0225 +vn 0.6198 -0.7643 0.1782 +vn 0.2322 -0.9706 0.0635 +vn -0.2196 -0.9737 -0.0604 +vn 0.4704 -0.7554 0.4562 +vn 0.1819 -0.9665 0.1812 +vn 0.4049 -0.7862 0.4668 +vn 0.1331 -0.9782 0.1594 +vn -0.1599 -0.9746 -0.1571 +vn -0.1506 -0.9729 -0.1755 +vn 0.3511 -0.8004 0.4859 +vn 0.1070 -0.9820 0.1555 +vn 0.3083 -0.7940 0.5240 +vn 0.0975 -0.9798 0.1744 +vn -0.1373 -0.9722 -0.1898 +vn -0.1186 -0.9720 -0.2028 +vn 0.2522 -0.8000 0.5444 +vn 0.0755 -0.9828 0.1687 +vn 0.2008 -0.8098 0.5513 +vn 0.0575 -0.9861 0.1561 +vn -0.0990 -0.9711 -0.2171 +vn -0.0819 -0.9706 -0.2265 +vn 0.1568 -0.7905 0.5920 +vn 0.0540 -0.9796 0.1938 +vn 0.0939 -0.7717 0.6290 +vn 0.0384 -0.9716 0.2335 +vn -0.0341 -0.9740 -0.2242 +vn -0.0612 -0.9722 -0.2259 +vn 0.0238 -0.7865 0.6171 +vn 0.0119 -0.9762 0.2167 +vn -0.0442 -0.7936 0.6068 +vn -0.0118 -0.9783 0.2068 +vn 0.0169 -0.9747 -0.2228 +vn -0.0076 -0.9743 -0.2251 +vn -0.1133 -0.7897 0.6029 +vn -0.0370 -0.9764 0.2126 +vn 0.0404 -0.9759 -0.2146 +vn -0.3376 -0.8989 -0.2794 +vn -0.3608 -0.8988 -0.2489 +vn -0.5631 -0.6815 -0.4674 +vn -0.6017 -0.6831 -0.4141 +vn -0.3787 -0.8991 -0.2195 +vn -0.6308 -0.6850 -0.3646 +vn -0.3938 -0.8996 -0.1886 +vn -0.6555 -0.6872 -0.3133 +vn -0.4085 -0.8999 -0.1527 +vn -0.6796 -0.6885 -0.2531 +vn 0.2151 -0.9027 -0.3726 +vn 0.1729 -0.9027 -0.3941 +vn 0.3605 -0.6922 -0.6252 +vn 0.2908 -0.6901 -0.6627 +vn 0.1269 -0.9021 -0.4124 +vn 0.2128 -0.6885 -0.6934 +vn -0.2937 -0.9017 0.3174 +vn -0.2532 -0.9018 0.3501 +vn -0.4929 -0.6891 0.5313 +vn -0.4240 -0.6900 0.5866 +vn -0.2157 -0.9020 0.3741 +vn -0.3610 -0.6914 0.6258 +vn 0.2895 -0.9036 -0.3157 +vn 0.2531 -0.9035 -0.3458 +vn 0.4886 -0.6909 -0.5328 +vn 0.4258 -0.6918 -0.5832 +vn -0.1754 -0.9027 0.3929 +vn -0.2949 -0.6916 0.6594 +vn -0.2122 -0.6917 0.6903 +vn -0.1262 -0.9033 0.4101 +vn 0.3664 -0.9061 0.2114 +vn 0.3788 -0.9067 0.1857 +vn 0.6200 -0.6985 0.3575 +vn 0.6426 -0.6980 0.3161 +vn 0.3932 -0.9067 0.1527 +vn 0.6682 -0.6975 0.2588 +vn 0.3293 -0.9065 0.2643 +vn 0.3521 -0.9057 0.2360 +vn 0.5579 -0.6977 0.4494 +vn 0.5952 -0.6980 0.3981 +vn 0.3509 -0.9057 -0.2379 +vn 0.3216 -0.9047 -0.2795 +vn 0.5922 -0.6994 -0.4002 +vn 0.5441 -0.6942 -0.4712 +vn 0.3915 -0.9074 -0.1531 +vn 0.3745 -0.9063 -0.1961 +vn 0.6592 -0.7070 -0.2562 +vn 0.6309 -0.7024 -0.3295 +vn 0.4124 -0.9081 -0.0719 +vn 0.4046 -0.9080 -0.1088 +vn 0.6908 -0.7131 -0.1199 +vn 0.6790 -0.7114 -0.1811 +vn 0.4187 -0.9081 0.0024 +vn 0.4179 -0.9077 -0.0371 +vn 0.7021 -0.7121 0.0030 +vn 0.6969 -0.7144 -0.0628 +vn 0.4133 -0.9074 0.0763 +vn 0.4176 -0.9077 0.0401 +vn 0.6979 -0.7049 0.1267 +vn 0.7027 -0.7084 0.0662 +vn 0.4051 -0.9071 0.1145 +vn 0.6874 -0.7004 0.1921 +vn 0.2720 -0.9073 0.3206 +vn 0.3018 -0.9069 0.2940 +vn 0.4571 -0.7052 0.5420 +vn 0.5093 -0.7007 0.4996 +vn 0.2095 -0.9079 0.3631 +vn 0.2424 -0.9074 0.3433 +vn 0.3493 -0.7126 0.6084 +vn 0.4061 -0.7084 0.5773 +vn 0.1412 -0.9073 0.3961 +vn 0.1738 -0.9080 0.3812 +vn 0.2359 -0.7130 0.6603 +vn 0.2893 -0.7143 0.6372 +vn 0.0615 -0.9061 0.4186 +vn 0.1049 -0.9071 0.4076 +vn 0.1040 -0.7059 0.7006 +vn 0.1766 -0.7108 0.6808 +vn -0.0252 -0.9042 0.4264 +vn 0.0187 -0.9048 0.4255 +vn -0.0411 -0.6983 0.7146 +vn 0.0319 -0.7011 0.7124 +vn -0.0742 -0.9037 0.4216 +vn -0.1233 -0.6944 0.7090 +vn -0.3622 -0.9006 0.2402 +vn -0.3317 -0.9011 0.2794 +vn -0.6025 -0.6916 0.3983 +vn -0.5545 -0.6901 0.4651 +vn -0.4032 -0.9012 0.1592 +vn -0.3853 -0.9005 0.2015 +vn -0.6680 -0.6964 0.2624 +vn -0.6393 -0.6928 0.3336 +vn -0.4267 -0.9010 0.0782 +vn -0.4177 -0.9013 0.1146 +vn -0.7022 -0.7003 0.1283 +vn -0.6893 -0.6998 0.1874 +vn -0.4349 -0.9005 -0.0001 +vn -0.4318 -0.9010 0.0431 +vn -0.7153 -0.6988 0.0010 +vn -0.7091 -0.7014 0.0718 +vn -0.4295 -0.8997 -0.0778 +vn -0.4340 -0.9000 -0.0415 +vn -0.7115 -0.6910 -0.1278 +vn -0.7168 -0.6940 -0.0676 +vn -0.4209 -0.8998 -0.1148 +vn -0.6990 -0.6896 -0.1893 +vn -0.2839 -0.8993 -0.3328 +vn -0.3113 -0.8989 -0.3083 +vn -0.4691 -0.6889 -0.5526 +vn -0.5167 -0.6841 -0.5149 +vn -0.2179 -0.9015 -0.3739 +vn -0.2545 -0.9002 -0.3534 +vn -0.3594 -0.6986 -0.6187 +vn -0.4203 -0.6932 -0.5855 +vn -0.1479 -0.9012 -0.4073 +vn -0.1788 -0.9017 -0.3936 +vn -0.2446 -0.6994 -0.6715 +vn -0.2944 -0.7011 -0.6495 +vn -0.0657 -0.9023 -0.4262 +vn -0.1140 -0.9018 -0.4168 +vn -0.1106 -0.6967 -0.7088 +vn -0.1903 -0.6989 -0.6895 +vn 0.0319 -0.9016 -0.4314 +vn -0.0150 -0.9017 -0.4321 +vn 0.0522 -0.6918 -0.7202 +vn -0.0257 -0.6932 -0.7203 +vn 0.0791 -0.9017 -0.4250 +vn 0.1312 -0.6895 -0.7123 +vn -0.7305 -0.3132 -0.6068 +vn -0.7819 -0.3163 -0.5372 +vn -0.7613 -0.1447 -0.6321 +vn -0.8151 -0.1488 -0.5599 +vn -0.8202 -0.3214 -0.4733 +vn -0.8558 -0.1537 -0.4939 +vn -0.8538 -0.3236 -0.4079 +vn -0.8910 -0.1563 -0.4263 +vn -0.9250 -0.1578 -0.3456 +vn -0.8861 -0.3257 -0.3298 +vn 0.4721 -0.3258 -0.8191 +vn 0.3807 -0.3220 -0.8668 +vn 0.4935 -0.1550 -0.8558 +vn 0.3984 -0.1511 -0.9047 +vn 0.2779 -0.3196 -0.9059 +vn 0.2914 -0.1488 -0.9450 +vn -0.6439 -0.3219 0.6941 +vn -0.5538 -0.3241 0.7670 +vn -0.6711 -0.1521 0.7256 +vn -0.5776 -0.1548 0.8015 +vn -0.4722 -0.3275 0.8184 +vn -0.4933 -0.1585 0.8553 +vn 0.6400 -0.3214 -0.6979 +vn 0.5576 -0.3243 -0.7641 +vn 0.6680 -0.1498 -0.7289 +vn 0.5824 -0.1535 -0.7983 +vn -0.3865 -0.3259 0.8628 +vn -0.4039 -0.1564 0.9013 +vn -0.2780 -0.3238 0.9044 +vn -0.2905 -0.1526 0.9446 +vn 0.8163 -0.3346 0.4708 +vn 0.8462 -0.3320 0.4169 +vn 0.8548 -0.1629 0.4928 +vn 0.8854 -0.1595 0.4365 +vn 0.8806 -0.3295 0.3406 +vn 0.9211 -0.1563 0.3565 +vn 0.7350 -0.3301 0.5923 +vn 0.7844 -0.3321 0.5239 +vn 0.7694 -0.1573 0.6191 +vn 0.8212 -0.1601 0.5478 +vn 0.7811 -0.3341 -0.5276 +vn 0.7151 -0.3256 -0.6185 +vn 0.8168 -0.1610 -0.5539 +vn 0.7468 -0.1532 -0.6471 +vn 0.8741 -0.3473 -0.3396 +vn 0.8336 -0.3398 -0.4354 +vn 0.9169 -0.1746 -0.3589 +vn 0.8728 -0.1671 -0.4585 +vn 0.9194 -0.3596 -0.1591 +vn 0.9033 -0.3556 -0.2401 +vn 0.9678 -0.1882 -0.1672 +vn 0.9498 -0.1834 -0.2536 +vn 0.9340 -0.3572 0.0037 +vn 0.9287 -0.3612 -0.0838 +vn 0.9828 -0.1846 0.0065 +vn 0.9781 -0.1894 -0.0867 +vn 0.9244 -0.3431 0.1669 +vn 0.9328 -0.3495 0.0876 +vn 0.9696 -0.1695 0.1766 +vn 0.9797 -0.1768 0.0940 +vn 0.9081 -0.3344 0.2522 +vn 0.9509 -0.1605 0.2646 +vn 0.6045 -0.3446 0.7183 +vn 0.6716 -0.3354 0.6607 +vn 0.6356 -0.1717 0.7526 +vn 0.7042 -0.1621 0.6913 +vn 0.4648 -0.3589 0.8094 +vn 0.5383 -0.3513 0.7660 +vn 0.4917 -0.1877 0.8503 +vn 0.5676 -0.1793 0.8036 +vn 0.3140 -0.3613 0.8780 +vn 0.3850 -0.3630 0.8485 +vn 0.3311 -0.1902 0.9242 +vn 0.4072 -0.1924 0.8928 +vn 0.1379 -0.3473 0.9276 +vn 0.2351 -0.3567 0.9042 +vn 0.1426 -0.1757 0.9741 +vn 0.2468 -0.1851 0.9512 +vn -0.0538 -0.3346 0.9408 +vn 0.0419 -0.3400 0.9395 +vn -0.0580 -0.1625 0.9850 +vn 0.0419 -0.1680 0.9849 +vn -0.1612 -0.3272 0.9311 +vn -0.1693 -0.1553 0.9733 +vn -0.7880 -0.3288 0.5205 +vn -0.7250 -0.3249 0.6072 +vn -0.8228 -0.1597 0.5455 +vn -0.7564 -0.1553 0.6354 +vn -0.8761 -0.3381 0.3438 +vn -0.8364 -0.3316 0.4364 +vn -0.9166 -0.1694 0.3620 +vn -0.8738 -0.1628 0.4582 +vn -0.9224 -0.3477 0.1680 +vn -0.9060 -0.3447 0.2456 +vn -0.9678 -0.1803 0.1758 +vn -0.9498 -0.1768 0.2582 +vn -0.9390 -0.3439 0.0013 +vn -0.9324 -0.3488 0.0943 +vn -0.9844 -0.1760 -0.0018 +vn -0.9786 -0.1815 0.0970 +vn -0.9291 -0.3302 -0.1666 +vn -0.9378 -0.3358 -0.0884 +vn -0.9709 -0.1626 -0.1761 +vn -0.9813 -0.1672 -0.0950 +vn -0.9120 -0.3278 -0.2465 +vn -0.9525 -0.1597 -0.2592 +vn -0.6111 -0.3261 -0.7213 +vn -0.6707 -0.3175 -0.6704 +vn -0.6393 -0.1570 -0.7527 +vn -0.6999 -0.1483 -0.6987 +vn -0.4720 -0.3421 -0.8125 +vn -0.5495 -0.3336 -0.7660 +vn -0.4972 -0.1729 -0.8502 +vn -0.5768 -0.1642 -0.8002 +vn -0.3217 -0.3450 -0.8817 +vn -0.3872 -0.3467 -0.8543 +vn -0.3376 -0.1772 -0.9244 +vn -0.4076 -0.1786 -0.8955 +vn -0.1457 -0.3362 -0.9305 +vn -0.2511 -0.3421 -0.9055 +vn -0.1502 -0.1669 -0.9745 +vn -0.2624 -0.1734 -0.9492 +vn 0.0682 -0.3269 -0.9426 +vn -0.0336 -0.3301 -0.9433 +vn 0.0731 -0.1565 -0.9850 +vn -0.0330 -0.1599 -0.9866 +vn 0.1710 -0.3228 -0.9309 +vn 0.1801 -0.1522 -0.9718 +vn -0.9541 -0.0479 -0.2955 +vn -0.9549 -0.0268 -0.2958 +vn -0.9414 -0.0281 -0.3361 +vn -0.9394 -0.0579 -0.3379 +vn -0.9558 -0.0000 -0.2941 +vn -0.9427 0.0000 -0.3336 +vn -0.9473 -0.0895 -0.3076 +vn -0.9561 -0.0724 -0.2841 +vn -0.9265 -0.1066 -0.3609 +vn -0.9351 -0.1287 -0.3302 +vn -0.9410 -0.1089 -0.3204 +vn -0.9322 -0.0840 -0.3521 +vn -0.9194 -0.1662 -0.3565 +vn -0.9266 -0.1490 -0.3452 +vn -0.9172 -0.1292 -0.3768 +vn -0.9073 -0.1520 -0.3921 +vn -0.9013 -0.1937 -0.3874 +vn -0.9122 -0.1929 -0.3615 +vn -0.8805 -0.1751 -0.4406 +vn -0.8807 -0.2094 -0.4248 +vn -0.8903 -0.2020 -0.4081 +vn -0.8918 -0.1655 -0.4210 +vn -0.8551 -0.2232 -0.4679 +vn -0.8689 -0.2150 -0.4459 +vn -0.8676 -0.1799 -0.4636 +vn -0.8518 -0.1863 -0.4896 +vn -0.8354 -0.2228 -0.5025 +vn -0.8413 -0.2410 -0.4838 +vn -0.8237 -0.1754 -0.5392 +vn -0.8106 -0.2087 -0.5471 +vn -0.8237 -0.2149 -0.5248 +vn -0.8373 -0.1797 -0.5163 +vn -0.7884 -0.1931 -0.5841 +vn -0.8005 -0.2000 -0.5650 +vn -0.8117 -0.1661 -0.5600 +vn -0.7958 -0.1536 -0.5857 +vn -0.7716 -0.1680 -0.6136 +vn -0.7716 -0.1933 -0.6060 +vn -0.7775 -0.1069 -0.6197 +vn -0.7563 -0.1288 -0.6414 +vn -0.7646 -0.1486 -0.6272 +vn -0.7862 -0.1289 -0.6044 +vn -0.7430 -0.0892 -0.6634 +vn -0.7506 -0.1081 -0.6519 +vn -0.7722 -0.0854 -0.6297 +vn -0.7631 -0.0582 -0.6436 +vn -0.7367 -0.0477 -0.6745 +vn -0.7288 -0.0732 -0.6808 +vn -0.7620 -0.0000 -0.6476 +vn -0.7353 -0.0000 -0.6777 +vn -0.7369 -0.0266 -0.6755 +vn -0.7629 -0.0281 -0.6459 +vn -0.7910 -0.0714 -0.6077 +vn -0.7879 -0.0481 -0.6139 +vn -0.7961 -0.0915 -0.5982 +vn -0.8097 -0.0638 -0.5834 +vn -0.8132 -0.0835 -0.5759 +vn -0.8076 -0.0398 -0.5883 +vn -0.8968 -0.0742 -0.4361 +vn -0.8993 -0.0571 -0.4336 +vn -0.8884 -0.0565 -0.4555 +vn -0.8868 -0.0743 -0.4561 +vn -0.9058 -0.0799 -0.4161 +vn -0.9098 -0.0594 -0.4109 +vn -0.9129 -0.0384 -0.4065 +vn -0.9018 -0.0356 -0.4308 +vn -0.8899 -0.0336 -0.4550 +vn -0.9024 -0.0199 -0.4304 +vn -0.8905 -0.0181 -0.4547 +vn -0.9140 -0.0229 -0.4051 +vn -0.9027 -0.0000 -0.4303 +vn -0.9145 -0.0000 -0.4045 +vn -0.8906 -0.0000 -0.4548 +vn -0.8639 -0.0739 -0.4982 +vn -0.8538 -0.0739 -0.5154 +vn -0.8531 -0.0971 -0.5127 +vn -0.8622 -0.0969 -0.4972 +vn -0.8408 -0.0738 -0.5363 +vn -0.8405 -0.0967 -0.5332 +vn -0.8378 -0.1238 -0.5318 +vn -0.8498 -0.1254 -0.5119 +vn -0.8598 -0.1250 -0.4950 +vn -0.8542 -0.0552 -0.5171 +vn -0.8415 -0.0559 -0.5374 +vn -0.8650 -0.0552 -0.4987 +vn -0.8546 -0.0323 -0.5184 +vn -0.8658 -0.0321 -0.4993 +vn -0.8414 -0.0329 -0.5394 +vn -0.8547 -0.0168 -0.5189 +vn -0.8410 -0.0175 -0.5407 +vn -0.8662 -0.0165 -0.4994 +vn -0.8548 0.0000 -0.5190 +vn -0.8664 -0.0000 -0.4993 +vn -0.8410 0.0000 -0.5410 +vn -0.8324 -0.1497 -0.5336 +vn -0.8448 -0.1532 -0.5127 +vn -0.8564 -0.1544 -0.4927 +vn -0.8818 -0.1221 -0.4556 +vn -0.8811 -0.1474 -0.4493 +vn -0.8894 -0.1396 -0.4353 +vn -0.8892 -0.1193 -0.4418 +vn -0.9002 -0.1279 -0.4162 +vn -0.8937 -0.1166 -0.4332 +vn -0.8680 -0.1535 -0.4722 +vn -0.8708 -0.1245 -0.4757 +vn -0.8732 -0.0967 -0.4777 +vn -0.8838 -0.0968 -0.4578 +vn -0.8753 -0.0735 -0.4779 +vn -0.8764 -0.0553 -0.4785 +vn -0.8774 -0.0324 -0.4788 +vn -0.8778 -0.0169 -0.4787 +vn -0.8779 -0.0000 -0.4788 +vn -0.9095 -0.1111 -0.4007 +vn -0.9160 -0.0910 -0.3908 +vn -0.9013 -0.0973 -0.4221 +vn -0.8268 -0.0780 -0.5571 +vn -0.8267 -0.0588 -0.5596 +vn -0.8256 -0.0348 -0.5632 +vn -0.8247 -0.0190 -0.5653 +vn -0.8064 -0.0217 -0.5909 +vn -0.8244 0.0000 -0.5659 +vn -0.8058 0.0000 -0.5922 +vn -0.8918 -0.0954 -0.4422 +vn -0.8200 -0.1137 -0.5610 +vn -0.8270 -0.1177 -0.5498 +vn -0.8278 -0.0963 -0.5526 +vn -0.8163 -0.0972 -0.5694 +vn -0.8213 -0.1396 -0.5532 +vn -0.8113 -0.1282 -0.5704 +vn -0.9226 -0.0673 -0.3799 +vn -0.9253 -0.0469 -0.3764 +vn -0.9270 -0.0274 -0.3741 +vn -0.9281 0.0000 -0.3725 +vn -0.7851 -0.0000 -0.6194 +vn -0.7857 -0.0254 -0.6181 +vn -0.8034 -0.1106 -0.5850 +vn -0.5430 -0.6893 0.4795 +vn -0.5581 -0.6612 0.5014 +vn -0.4870 -0.6893 0.5364 +vn -0.4993 -0.6658 0.5545 +vn -0.4259 -0.6896 0.5857 +vn -0.4364 -0.6678 0.6030 +vn -0.3609 -0.6884 0.6291 +vn -0.3704 -0.6676 0.6458 +vn -0.2930 -0.6862 0.6659 +vn -0.3018 -0.6663 0.6819 +vn -0.2189 -0.6858 0.6941 +vn -0.2278 -0.6655 0.7107 +vn -0.1412 -0.6876 0.7122 +vn -0.1521 -0.6627 0.7333 +vn -0.0603 -0.6905 0.7208 +vn -0.0711 -0.6616 0.7465 +vn -0.7067 -0.6333 0.3154 +vn -0.7422 -0.6249 0.2422 +vn 0.0202 -0.6885 0.7250 +vn 0.0117 -0.6589 0.7521 +vn 0.1019 -0.6839 0.7224 +vn 0.1822 -0.6810 0.7093 +vn 0.2485 -0.6822 0.6876 +vn 0.3128 -0.6841 0.6589 +vn 0.3774 -0.6891 0.6187 +vn 0.4349 -0.6900 0.5786 +vn 0.4637 -0.6600 0.5911 +vn 0.4863 -0.6857 0.5416 +vn 0.5109 -0.6597 0.5512 +vn 0.5327 -0.6809 0.5027 +vn 0.5522 -0.6602 0.5092 +vn 0.5747 -0.6764 0.4607 +vn 0.5882 -0.6616 0.4651 +vn 0.6084 -0.6763 0.4153 +vn 0.6230 -0.6591 0.4212 +vn 0.6367 -0.6772 0.3686 +vn 0.6499 -0.6601 0.3766 +vn 0.6623 -0.6768 0.3213 +vn 0.6742 -0.6611 0.3293 +vn 0.6839 -0.6782 0.2688 +vn 0.6970 -0.6603 0.2798 +vn 0.6996 -0.6826 0.2112 +vn 0.7156 -0.6611 0.2254 +vn 0.7101 -0.6880 0.1498 +vn 0.7300 -0.6626 0.1674 +vn 0.7176 -0.6910 0.0869 +vn 0.7396 -0.6647 0.1059 +vn 0.7220 -0.6916 0.0202 +vn 0.7212 -0.6907 -0.0525 +vn 0.7112 -0.6923 -0.1222 +vn 0.6917 -0.6975 -0.1872 +vn 0.6609 -0.7037 -0.2608 +vn 0.6228 -0.7089 -0.3310 +vn 0.4199 -0.7039 -0.5729 +vn 0.4344 -0.6782 -0.5928 +vn 0.3528 -0.7092 -0.6104 +vn 0.3677 -0.6786 -0.6359 +vn 0.2892 -0.7023 -0.6505 +vn 0.2986 -0.6781 -0.6715 +vn -0.0234 -0.7249 -0.6885 +vn -0.1029 -0.7201 -0.6862 +vn -0.1820 -0.7117 -0.6785 +vn -0.2490 -0.7019 -0.6674 +vn -0.3104 -0.7009 -0.6422 +vn -0.3705 -0.7029 -0.6072 +vn -0.4249 -0.7014 -0.5723 +vn -0.5993 -0.6914 -0.4035 +vn -0.6247 -0.6936 -0.3587 +vn -0.6512 -0.6900 -0.3161 +vn -0.7805 -0.6252 0.0021 +vn -0.7705 -0.6343 -0.0630 +vn -0.7592 -0.6387 -0.1250 +vn -0.7768 -0.6115 -0.1503 +vn 0.0015 -0.8889 0.4581 +vn -0.0344 -0.8889 0.4569 +vn -0.0303 -0.9150 0.4022 +vn 0.0016 -0.9152 0.4030 +vn -0.0706 -0.8889 0.4527 +vn -0.0630 -0.9149 0.3988 +vn -0.0272 -0.9372 0.3478 +vn -0.0558 -0.9369 0.3451 +vn 0.0007 -0.9375 0.3481 +vn -0.1058 -0.8889 0.4458 +vn -0.0952 -0.9151 0.3918 +vn -0.1406 -0.8890 0.4358 +vn -0.1260 -0.9154 0.3824 +vn -0.0842 -0.9372 0.3385 +vn -0.1113 -0.9376 0.3294 +vn -0.1744 -0.8891 0.4233 +vn -0.1550 -0.9153 0.3718 +vn -0.2066 -0.8891 0.4085 +vn -0.1825 -0.9153 0.3591 +vn -0.1357 -0.9375 0.3205 +vn -0.1589 -0.9374 0.3097 +vn -0.2376 -0.8892 0.3911 +vn -0.2089 -0.9154 0.3441 +vn -0.2671 -0.8893 0.3713 +vn -0.2345 -0.9155 0.3270 +vn -0.1809 -0.9375 0.2972 +vn -0.2025 -0.9376 0.2826 +vn -0.2954 -0.8893 0.3491 +vn -0.2599 -0.9153 0.3076 +vn -0.3222 -0.8893 0.3245 +vn -0.2843 -0.9151 0.2859 +vn -0.2466 -0.9371 0.2471 +vn -0.2252 -0.9373 0.2659 +vn -0.3467 -0.8893 0.2981 +vn -0.3062 -0.9155 0.2611 +vn -0.3691 -0.8895 0.2693 +vn -0.3256 -0.9157 0.2354 +vn -0.2658 -0.9374 0.2248 +vn -0.2824 -0.9379 0.2016 +vn -0.3890 -0.8895 0.2397 +vn -0.3428 -0.9157 0.2097 +vn -0.4063 -0.8896 0.2088 +vn -0.3577 -0.9157 0.1833 +vn -0.2969 -0.9378 0.1800 +vn -0.3094 -0.9378 0.1577 +vn -0.4212 -0.8896 0.1765 +vn -0.3703 -0.9158 0.1556 +vn -0.4334 -0.8898 0.1431 +vn -0.3805 -0.9160 0.1270 +vn -0.3198 -0.9379 0.1344 +vn -0.3287 -0.9380 0.1102 +vn -0.4436 -0.8897 0.1082 +vn -0.3900 -0.9158 0.0961 +vn -0.4506 -0.8898 0.0728 +vn -0.3968 -0.9157 0.0639 +vn -0.3435 -0.9375 0.0549 +vn -0.3373 -0.9377 0.0832 +vn -0.4547 -0.8899 0.0367 +vn -0.4002 -0.9159 0.0315 +vn -0.4560 -0.8900 0.0006 +vn -0.4007 -0.9162 -0.0010 +vn -0.3460 -0.9379 0.0260 +vn -0.3457 -0.9384 -0.0026 +vn -0.4547 -0.8900 -0.0351 +vn -0.3996 -0.9161 -0.0319 +vn -0.4505 -0.8900 -0.0704 +vn -0.3961 -0.9161 -0.0620 +vn -0.3448 -0.9383 -0.0285 +vn -0.3418 -0.9382 -0.0538 +vn -0.4436 -0.8900 -0.1052 +vn -0.3900 -0.9162 -0.0918 +vn -0.4338 -0.8901 -0.1395 +vn -0.3814 -0.9164 -0.1212 +vn -0.3293 -0.9384 -0.1041 +vn -0.3366 -0.9384 -0.0788 +vn -0.4215 -0.8901 -0.1733 +vn -0.3710 -0.9162 -0.1516 +vn -0.4063 -0.8901 -0.2064 +vn -0.3575 -0.9161 -0.1817 +vn -0.3090 -0.9380 -0.1571 +vn -0.3205 -0.9382 -0.1306 +vn -0.3888 -0.8901 -0.2379 +vn -0.3409 -0.9163 -0.2102 +vn -0.3682 -0.8903 -0.2681 +vn -0.3226 -0.9165 -0.2366 +vn -0.2939 -0.9383 -0.1820 +vn -0.2771 -0.9387 -0.2048 +vn -0.3462 -0.8902 -0.2961 +vn -0.3035 -0.9164 -0.2608 +vn -0.3221 -0.8902 -0.3222 +vn -0.2829 -0.9164 -0.2832 +vn -0.2606 -0.9387 -0.2256 +vn -0.2436 -0.9387 -0.2441 +vn -0.2960 -0.8902 -0.3463 +vn -0.2605 -0.9165 -0.3037 +vn -0.2680 -0.8903 -0.3683 +vn -0.2362 -0.9166 -0.3227 +vn -0.2042 -0.9389 -0.2771 +vn -0.2247 -0.9388 -0.2612 +vn -0.2378 -0.8902 -0.3886 +vn -0.2098 -0.9164 -0.3409 +vn -0.2063 -0.8902 -0.4062 +vn -0.1813 -0.9162 -0.3573 +vn -0.1564 -0.9383 -0.3084 +vn -0.1815 -0.9386 -0.2934 +vn -0.1731 -0.8902 -0.4214 +vn -0.1510 -0.9164 -0.3706 +vn -0.1393 -0.8902 -0.4337 +vn -0.1208 -0.9166 -0.3811 +vn -0.1295 -0.9386 -0.3197 +vn -0.1025 -0.9390 -0.3282 +vn -0.1050 -0.8901 -0.4434 +vn -0.0910 -0.9165 -0.3895 +vn -0.0701 -0.8901 -0.4503 +vn -0.0611 -0.9164 -0.3955 +vn -0.0773 -0.9389 -0.3353 +vn -0.0522 -0.9389 -0.3403 +vn -0.0349 -0.8901 -0.4545 +vn -0.0312 -0.9165 -0.3988 +vn 0.0008 -0.8901 -0.4558 +vn -0.0002 -0.9166 -0.3999 +vn -0.0011 -0.9390 -0.3438 +vn -0.0272 -0.9389 -0.3430 +vn 0.0369 -0.8900 -0.4544 +vn 0.0323 -0.9163 -0.3992 +vn 0.0729 -0.8899 -0.4502 +vn 0.0644 -0.9162 -0.3956 +vn 0.0560 -0.9384 -0.3410 +vn 0.0276 -0.9387 -0.3437 +vn 0.1085 -0.8899 -0.4431 +vn 0.0968 -0.9163 -0.3886 +vn 0.1433 -0.8899 -0.4330 +vn 0.1278 -0.9165 -0.3791 +vn 0.0844 -0.9387 -0.3344 +vn 0.1111 -0.9389 -0.3256 +vn 0.1768 -0.8898 -0.4206 +vn 0.1566 -0.9164 -0.3685 +vn 0.2091 -0.8898 -0.4057 +vn 0.1842 -0.9162 -0.3558 +vn 0.1360 -0.9389 -0.3162 +vn 0.1592 -0.9388 -0.3055 +vn 0.2399 -0.8897 -0.3884 +vn 0.2102 -0.9163 -0.3410 +vn 0.2695 -0.8897 -0.3685 +vn 0.2360 -0.9163 -0.3236 +vn 0.2025 -0.9389 -0.2783 +vn 0.1805 -0.9388 -0.2934 +vn 0.2979 -0.8896 -0.3462 +vn 0.2616 -0.9160 -0.3040 +vn 0.3246 -0.8895 -0.3216 +vn 0.2856 -0.9157 -0.2827 +vn 0.2470 -0.9382 -0.2426 +vn 0.2257 -0.9385 -0.2614 +vn 0.3491 -0.8894 -0.2950 +vn 0.3078 -0.9160 -0.2575 +vn 0.3714 -0.8895 -0.2663 +vn 0.3272 -0.9161 -0.2318 +vn 0.2660 -0.9385 -0.2202 +vn 0.2827 -0.9388 -0.1969 +vn 0.3910 -0.8893 -0.2371 +vn 0.3443 -0.9160 -0.2060 +vn 0.4085 -0.8893 -0.2056 +vn 0.3592 -0.9158 -0.1795 +vn 0.2972 -0.9386 -0.1753 +vn 0.3096 -0.9384 -0.1532 +vn 0.4232 -0.8893 -0.1735 +vn 0.3715 -0.9158 -0.1523 +vn 0.4355 -0.8892 -0.1400 +vn 0.3819 -0.9159 -0.1235 +vn 0.3198 -0.9384 -0.1307 +vn 0.3289 -0.9385 -0.1053 +vn 0.4453 -0.8891 -0.1053 +vn 0.3913 -0.9156 -0.0922 +vn 0.4524 -0.8891 -0.0697 +vn 0.3980 -0.9154 -0.0604 +vn 0.3436 -0.9378 -0.0507 +vn 0.3374 -0.9381 -0.0785 +vn 0.4567 -0.8890 -0.0338 +vn 0.4013 -0.9155 -0.0275 +vn 0.4580 -0.8889 0.0021 +vn 0.4019 -0.9157 0.0047 +vn 0.3459 -0.9380 -0.0217 +vn 0.3457 -0.9383 0.0071 +vn 0.4564 -0.8890 0.0381 +vn 0.4007 -0.9155 0.0356 +vn 0.4522 -0.8889 0.0733 +vn 0.3971 -0.9154 0.0658 +vn 0.3446 -0.9381 0.0332 +vn 0.3417 -0.9380 0.0584 +vn 0.4453 -0.8889 0.1079 +vn 0.3911 -0.9154 0.0951 +vn 0.4355 -0.8889 0.1423 +vn 0.3825 -0.9155 0.1249 +vn 0.3365 -0.9380 0.0829 +vn 0.3292 -0.9380 0.1085 +vn 0.4231 -0.8888 0.1761 +vn 0.3719 -0.9152 0.1552 +vn 0.4082 -0.8887 0.2088 +vn 0.3590 -0.9149 0.1847 +vn 0.3203 -0.9376 0.1351 +vn 0.3090 -0.9373 0.1612 +vn 0.3900 -0.8888 0.2408 +vn 0.3423 -0.9151 0.2133 +vn 0.3699 -0.8888 0.2706 +vn 0.3235 -0.9153 0.2399 +vn 0.2935 -0.9376 0.1863 +vn 0.2772 -0.9378 0.2090 +vn 0.3479 -0.8887 0.2986 +vn 0.3043 -0.9152 0.2642 +vn 0.3238 -0.8887 0.3246 +vn 0.2837 -0.9151 0.2865 +vn 0.2601 -0.9378 0.2300 +vn 0.2429 -0.9377 0.2486 +vn 0.2978 -0.8887 0.3486 +vn 0.2616 -0.9152 0.3067 +vn 0.2697 -0.8887 0.3706 +vn 0.2372 -0.9152 0.3258 +vn 0.2251 -0.9376 0.2651 +vn 0.2039 -0.9376 0.2816 +vn 0.2399 -0.8887 0.3907 +vn 0.2108 -0.9150 0.3440 +vn 0.2083 -0.8887 0.4085 +vn 0.1825 -0.9148 0.3603 +vn 0.1811 -0.9373 0.2979 +vn 0.1568 -0.9370 0.3123 +vn 0.1756 -0.8886 0.4237 +vn 0.1523 -0.9150 0.3736 +vn 0.1413 -0.8888 0.4359 +vn 0.1219 -0.9152 0.3841 +vn 0.1296 -0.9372 0.3237 +vn 0.1023 -0.9376 0.3324 +vn 0.1070 -0.8888 0.4457 +vn 0.0922 -0.9151 0.3925 +vn 0.0723 -0.8888 0.4526 +vn 0.0624 -0.9151 0.3985 +vn 0.0772 -0.9375 0.3394 +vn 0.0518 -0.9374 0.3444 +vn 0.0370 -0.8888 0.4568 +vn 0.0324 -0.9151 0.4019 +vn 0.0271 -0.9374 0.3471 +vn 0.0013 -0.8599 0.5104 +vn -0.0388 -0.8595 0.5096 +vn -0.0001 -0.8312 0.5560 +vn -0.0431 -0.8314 0.5540 +vn -0.0786 -0.8593 0.5054 +vn -0.0856 -0.8315 0.5489 +vn -0.1179 -0.8593 0.4977 +vn -0.1283 -0.8314 0.5406 +vn -0.1563 -0.8593 0.4871 +vn -0.1702 -0.8314 0.5290 +vn -0.1942 -0.8593 0.4731 +vn -0.2111 -0.8314 0.5141 +vn -0.2306 -0.8594 0.4564 +vn -0.2507 -0.8315 0.4958 +vn -0.2655 -0.8594 0.4369 +vn -0.2892 -0.8311 0.4751 +vn -0.2990 -0.8595 0.4146 +vn -0.3254 -0.8309 0.4514 +vn -0.3299 -0.8598 0.3897 +vn -0.3597 -0.8308 0.4247 +vn -0.3597 -0.8599 0.3622 +vn -0.3925 -0.8307 0.3947 +vn -0.3873 -0.8598 0.3328 +vn -0.4226 -0.8307 0.3625 +vn -0.4122 -0.8597 0.3016 +vn -0.4496 -0.8306 0.3286 +vn -0.4345 -0.8597 0.2684 +vn -0.4741 -0.8305 0.2925 +vn -0.4542 -0.8598 0.2334 +vn -0.4957 -0.8304 0.2544 +vn -0.4710 -0.8598 0.1971 +vn -0.5141 -0.8304 0.2149 +vn -0.4848 -0.8600 0.1595 +vn -0.5298 -0.8301 0.1740 +vn -0.4956 -0.8601 0.1209 +vn -0.5420 -0.8300 0.1319 +vn -0.5034 -0.8602 0.0814 +vn -0.5508 -0.8299 0.0888 +vn -0.5082 -0.8603 0.0414 +vn -0.5563 -0.8298 0.0451 +vn -0.5100 -0.8602 0.0016 +vn -0.5581 -0.8297 0.0010 +vn -0.5085 -0.8602 -0.0389 +vn -0.5565 -0.8297 -0.0428 +vn -0.5039 -0.8602 -0.0787 +vn -0.5514 -0.8298 -0.0864 +vn -0.4962 -0.8602 -0.1181 +vn -0.5430 -0.8297 -0.1294 +vn -0.4853 -0.8602 -0.1567 +vn -0.5311 -0.8297 -0.1717 +vn -0.4714 -0.8602 -0.1944 +vn -0.5160 -0.8297 -0.2130 +vn -0.4546 -0.8602 -0.2310 +vn -0.4976 -0.8297 -0.2530 +vn -0.4349 -0.8603 -0.2661 +vn -0.4763 -0.8296 -0.2914 +vn -0.4126 -0.8603 -0.2995 +vn -0.4519 -0.8295 -0.3280 +vn -0.3878 -0.8603 -0.3310 +vn -0.4248 -0.8295 -0.3627 +vn -0.3605 -0.8603 -0.3604 +vn -0.3950 -0.8296 -0.3947 +vn -0.3310 -0.8603 -0.3877 +vn -0.3626 -0.8299 -0.4239 +vn -0.2995 -0.8603 -0.4125 +vn -0.3275 -0.8305 -0.4506 +vn -0.2661 -0.8603 -0.4349 +vn -0.2907 -0.8300 -0.4760 +vn -0.2309 -0.8603 -0.4545 +vn -0.2528 -0.8298 -0.4975 +vn -0.1943 -0.8603 -0.4714 +vn -0.2129 -0.8297 -0.5160 +vn -0.1567 -0.8603 -0.4852 +vn -0.1717 -0.8297 -0.5312 +vn -0.1180 -0.8602 -0.4961 +vn -0.1294 -0.8296 -0.5431 +vn -0.0787 -0.8602 -0.5038 +vn -0.0864 -0.8296 -0.5516 +vn -0.0388 -0.8602 -0.5085 +vn -0.0427 -0.8296 -0.5567 +vn 0.0013 -0.8601 -0.5100 +vn 0.0015 -0.8296 -0.5584 +vn 0.0415 -0.8601 -0.5085 +vn 0.0452 -0.8298 -0.5563 +vn 0.0813 -0.8600 -0.5037 +vn 0.0885 -0.8302 -0.5504 +vn 0.1208 -0.8600 -0.4958 +vn 0.1316 -0.8303 -0.5415 +vn 0.1594 -0.8599 -0.4849 +vn 0.1738 -0.8303 -0.5295 +vn 0.1971 -0.8599 -0.4709 +vn 0.2149 -0.8303 -0.5143 +vn 0.2334 -0.8598 -0.4541 +vn 0.2545 -0.8303 -0.4958 +vn 0.2684 -0.8598 -0.4345 +vn 0.2926 -0.8303 -0.4743 +vn 0.3017 -0.8597 -0.4121 +vn 0.3288 -0.8305 -0.4497 +vn 0.3332 -0.8597 -0.3872 +vn 0.3631 -0.8305 -0.4224 +vn 0.3626 -0.8597 -0.3599 +vn 0.3951 -0.8306 -0.3925 +vn 0.3899 -0.8596 -0.3303 +vn 0.4241 -0.8310 -0.3601 +vn 0.4147 -0.8594 -0.2991 +vn 0.4507 -0.8313 -0.3254 +vn 0.4368 -0.8595 -0.2655 +vn 0.4746 -0.8314 -0.2890 +vn 0.4564 -0.8594 -0.2304 +vn 0.4973 -0.8306 -0.2508 +vn 0.4731 -0.8594 -0.1941 +vn 0.5150 -0.8307 -0.2116 +vn 0.4869 -0.8594 -0.1564 +vn 0.5293 -0.8312 -0.1703 +vn 0.4977 -0.8593 -0.1178 +vn 0.5402 -0.8317 -0.1283 +vn 0.5054 -0.8593 -0.0785 +vn 0.5484 -0.8318 -0.0854 +vn 0.5100 -0.8593 -0.0387 +vn 0.5533 -0.8319 -0.0429 +vn 0.5112 -0.8595 0.0012 +vn 0.5551 -0.8318 0.0006 +vn 0.5093 -0.8596 0.0413 +vn 0.5533 -0.8318 0.0444 +vn 0.5046 -0.8595 0.0814 +vn 0.5478 -0.8319 0.0884 +vn 0.4970 -0.8593 0.1204 +vn 0.5393 -0.8319 0.1306 +vn 0.4861 -0.8594 0.1587 +vn 0.5278 -0.8323 0.1694 +vn 0.4710 -0.8603 0.1951 +vn 0.5138 -0.8321 0.2090 +vn 0.4527 -0.8613 0.2308 +vn 0.4960 -0.8315 0.2503 +vn 0.4322 -0.8619 0.2651 +vn 0.4745 -0.8310 0.2903 +vn 0.4098 -0.8620 0.2984 +vn 0.4499 -0.8309 0.3275 +vn 0.3855 -0.8619 0.3295 +vn 0.4227 -0.8307 0.3622 +vn 0.3586 -0.8616 0.3594 +vn 0.3926 -0.8308 0.3945 +vn 0.3299 -0.8613 0.3864 +vn 0.3605 -0.8310 0.4236 +vn 0.2991 -0.8611 0.4112 +vn 0.3261 -0.8312 0.4504 +vn 0.2662 -0.8607 0.4341 +vn 0.2887 -0.8309 0.4757 +vn 0.2317 -0.8599 0.4549 +vn 0.2503 -0.8311 0.4967 +vn 0.1964 -0.8591 0.4726 +vn 0.2127 -0.8315 0.5132 +vn 0.1590 -0.8592 0.4862 +vn 0.1729 -0.8316 0.5278 +vn 0.1204 -0.8593 0.4971 +vn 0.1312 -0.8316 0.5396 +vn 0.0813 -0.8597 0.5042 +vn 0.0889 -0.8317 0.5480 +vn 0.0412 -0.8599 0.5088 +vn 0.0446 -0.8314 0.5539 +vn 0.0005 -0.8011 0.5985 +vn -0.0462 -0.8014 0.5963 +vn 0.0006 -0.7282 0.6854 +vn -0.0531 -0.7273 0.6843 +vn -0.0923 -0.8018 0.5905 +vn -0.1065 -0.7269 0.6785 +vn -0.1386 -0.8012 0.5821 +vn -0.1596 -0.7267 0.6682 +vn -0.1839 -0.8009 0.5699 +vn -0.2122 -0.7259 0.6542 +vn -0.2281 -0.8004 0.5543 +vn -0.2641 -0.7228 0.6386 +vn -0.2712 -0.8002 0.5349 +vn -0.3138 -0.7209 0.6179 +vn -0.3126 -0.8000 0.5122 +vn -0.3610 -0.7202 0.5924 +vn -0.3512 -0.8001 0.4863 +vn -0.4075 -0.7195 0.5624 +vn -0.3887 -0.7996 0.4578 +vn -0.4530 -0.7158 0.5315 +vn -0.4241 -0.7992 0.4260 +vn -0.4947 -0.7137 0.4960 +vn -0.4566 -0.7990 0.3913 +vn -0.5327 -0.7129 0.4561 +vn -0.4860 -0.7988 0.3545 +vn -0.5679 -0.7118 0.4133 +vn -0.5127 -0.7984 0.3157 +vn -0.6002 -0.7102 0.3680 +vn -0.5361 -0.7982 0.2747 +vn -0.6283 -0.7086 0.3212 +vn -0.5559 -0.7982 0.2319 +vn -0.6532 -0.7068 0.2718 +vn -0.5724 -0.7983 0.1875 +vn -0.6746 -0.7044 0.2205 +vn -0.5855 -0.7981 0.1420 +vn -0.6912 -0.7031 0.1668 +vn -0.5955 -0.7977 0.0952 +vn -0.7040 -0.7013 0.1124 +vn -0.6011 -0.7977 0.0484 +vn -0.7113 -0.7006 0.0564 +vn -0.6031 -0.7977 0.0010 +vn -0.7153 -0.6988 0.0008 +vn -0.6013 -0.7977 -0.0463 +vn -0.7139 -0.6980 -0.0556 +vn -0.5957 -0.7978 -0.0934 +vn -0.7094 -0.6959 -0.1115 +vn -0.5866 -0.7977 -0.1400 +vn -0.6989 -0.6954 -0.1672 +vn -0.5739 -0.7976 -0.1857 +vn -0.6844 -0.6946 -0.2218 +vn -0.5577 -0.7974 -0.2303 +vn -0.6645 -0.6948 -0.2750 +vn -0.5379 -0.7974 -0.2736 +vn -0.6421 -0.6935 -0.3269 +vn -0.5148 -0.7973 -0.3152 +vn -0.6147 -0.6930 -0.3767 +vn -0.4885 -0.7971 -0.3548 +vn -0.5839 -0.6922 -0.4241 +vn -0.4593 -0.7969 -0.3924 +vn -0.5481 -0.6929 -0.4685 +vn -0.4277 -0.7966 -0.4273 +vn -0.5100 -0.6929 -0.5097 +vn -0.3936 -0.7966 -0.4588 +vn -0.4689 -0.6942 -0.5462 +vn -0.3549 -0.7970 -0.4887 +vn -0.4221 -0.6956 -0.5814 +vn -0.3143 -0.7968 -0.5160 +vn -0.3747 -0.6942 -0.6146 +vn -0.2737 -0.7972 -0.5382 +vn -0.3273 -0.6931 -0.6422 +vn -0.2303 -0.7973 -0.5578 +vn -0.2752 -0.6939 -0.6654 +vn -0.1857 -0.7974 -0.5741 +vn -0.2217 -0.6947 -0.6843 +vn -0.1399 -0.7974 -0.5869 +vn -0.1670 -0.6957 -0.6986 +vn -0.0935 -0.7974 -0.5961 +vn -0.1116 -0.6966 -0.7087 +vn -0.0464 -0.7975 -0.6016 +vn -0.0553 -0.6983 -0.7136 +vn 0.0010 -0.7973 -0.6036 +vn -0.0001 -0.7006 -0.7136 +vn 0.0479 -0.7975 -0.6014 +vn 0.0536 -0.7079 -0.7042 +vn 0.0943 -0.7991 -0.5938 +vn 0.1061 -0.7170 -0.6890 +vn 0.1403 -0.8013 -0.5816 +vn 0.1620 -0.7222 -0.6725 +vn 0.1869 -0.8009 -0.5689 +vn 0.2171 -0.7174 -0.6620 +vn 0.2310 -0.8005 -0.5530 +vn 0.2657 -0.7216 -0.6393 +vn 0.2736 -0.8004 -0.5334 +vn 0.3162 -0.7260 -0.6107 +vn 0.3156 -0.7992 -0.5115 +vn 0.3681 -0.7150 -0.5944 +vn 0.3550 -0.7988 -0.4857 +vn 0.4131 -0.7124 -0.5673 +vn 0.3912 -0.7994 -0.4559 +vn 0.4535 -0.7164 -0.5302 +vn 0.4250 -0.7999 -0.4237 +vn 0.4938 -0.7170 -0.4919 +vn 0.4572 -0.7997 -0.3892 +vn 0.5318 -0.7159 -0.4524 +vn 0.4867 -0.7995 -0.3520 +vn 0.5645 -0.7169 -0.4091 +vn 0.5136 -0.7994 -0.3116 +vn 0.5918 -0.7199 -0.3628 +vn 0.5341 -0.8011 -0.2701 +vn 0.6100 -0.7291 -0.3102 +vn 0.5531 -0.8012 -0.2285 +vn 0.6349 -0.7271 -0.2612 +vn 0.5695 -0.8010 -0.1846 +vn 0.6562 -0.7241 -0.2122 +vn 0.5825 -0.8009 -0.1390 +vn 0.6712 -0.7237 -0.1603 +vn 0.5913 -0.8011 -0.0924 +vn 0.6806 -0.7248 -0.1071 +vn 0.5964 -0.8013 -0.0459 +vn 0.6857 -0.7260 -0.0533 +vn 0.5983 -0.8013 0.0007 +vn 0.6866 -0.7271 0.0006 +vn 0.5965 -0.8012 0.0477 +vn 0.6829 -0.7284 0.0544 +vn 0.5906 -0.8014 0.0947 +vn 0.6760 -0.7290 0.1076 +vn 0.5810 -0.8017 0.1404 +vn 0.6641 -0.7303 0.1601 +vn 0.5689 -0.8014 0.1848 +vn 0.6494 -0.7305 0.2112 +vn 0.5547 -0.7997 0.2298 +vn 0.6293 -0.7320 0.2612 +vn 0.5363 -0.7986 0.2733 +vn 0.6068 -0.7321 0.3095 +vn 0.5136 -0.7982 0.3148 +vn 0.5799 -0.7329 0.3558 +vn 0.4872 -0.7981 0.3544 +vn 0.5503 -0.7329 0.4000 +vn 0.4576 -0.7984 0.3914 +vn 0.5167 -0.7335 0.4416 +vn 0.4251 -0.7990 0.4253 +vn 0.4809 -0.7332 0.4808 +vn 0.3901 -0.7993 0.4571 +vn 0.4417 -0.7331 0.5171 +vn 0.3528 -0.7999 0.4855 +vn 0.3999 -0.7330 0.5502 +vn 0.3125 -0.8005 0.5113 +vn 0.3555 -0.7330 0.5800 +vn 0.2706 -0.8017 0.5329 +vn 0.3092 -0.7329 0.6060 +vn 0.2288 -0.8026 0.5509 +vn 0.2603 -0.7338 0.6275 +vn 0.1855 -0.8023 0.5673 +vn 0.2109 -0.7323 0.6475 +vn 0.1407 -0.8018 0.5808 +vn 0.1594 -0.7315 0.6630 +vn 0.0947 -0.8012 0.5908 +vn 0.1075 -0.7298 0.6751 +vn 0.0477 -0.8009 0.5968 +vn 0.0542 -0.7292 0.6822 +vn -0.0673 -0.4885 0.8700 +vn -0.1344 -0.4976 0.8569 +vn 0.0001 -0.4900 0.8717 +vn -0.0776 0.0406 0.9962 +vn -0.0002 0.0409 0.9992 +vn -0.1544 0.0506 0.9867 +vn -0.2009 -0.5039 0.8401 +vn -0.2684 -0.5031 0.8215 +vn -0.2319 0.0578 0.9710 +vn -0.3095 0.0612 0.9489 +vn -0.3350 -0.4864 0.8070 +vn -0.3969 -0.4835 0.7802 +vn -0.3844 0.0433 0.9221 +vn -0.4534 0.0434 0.8903 +vn -0.4552 -0.4851 0.7467 +vn -0.5109 -0.4977 0.7009 +vn -0.5203 0.0476 0.8527 +vn -0.5866 0.0617 0.8075 +vn -0.5716 -0.4764 0.6681 +vn -0.6229 -0.4726 0.6234 +vn -0.6510 0.0400 0.7580 +vn -0.7066 0.0393 0.7065 +vn -0.6696 -0.4730 0.5727 +vn -0.7118 -0.4755 0.5169 +vn -0.7594 0.0410 0.6493 +vn -0.8081 0.0455 0.5873 +vn -0.7528 -0.4699 0.4610 +vn -0.7879 -0.4667 0.4017 +vn -0.8524 0.0396 0.5214 +vn -0.8904 0.0392 0.4536 +vn -0.8177 -0.4651 0.3391 +vn -0.8434 -0.4620 0.2744 +vn -0.9232 0.0392 0.3824 +vn -0.9503 0.0392 0.3087 +vn -0.8636 -0.4595 0.2076 +vn -0.8783 -0.4573 0.1393 +vn -0.9717 0.0389 0.2332 +vn -0.9870 0.0385 0.1563 +vn -0.8872 -0.4560 0.0699 +vn -0.8909 -0.4543 0.0002 +vn -0.9962 0.0384 0.0784 +vn -0.9993 0.0384 0.0000 +vn -0.8888 -0.4530 -0.0698 +vn -0.8816 -0.4509 -0.1393 +vn -0.9962 0.0384 -0.0784 +vn -0.9870 0.0385 -0.1563 +vn -0.8681 -0.4507 -0.2081 +vn -0.8488 -0.4515 -0.2753 +vn -0.9717 0.0388 -0.2331 +vn -0.9504 0.0415 -0.3083 +vn -0.8237 -0.4529 -0.3411 +vn -0.7953 -0.4506 -0.4055 +vn -0.9231 0.0438 -0.3821 +vn -0.8900 0.0432 -0.4539 +vn -0.7621 -0.4480 -0.4674 +vn -0.7238 -0.4469 -0.5258 +vn -0.8517 0.0390 -0.5225 +vn -0.8084 0.0387 -0.5874 +vn -0.6797 -0.4480 -0.5808 +vn -0.6325 -0.4483 -0.6317 +vn -0.7598 0.0386 -0.6490 +vn -0.7068 0.0389 -0.7063 +vn -0.5815 -0.4512 -0.6770 +vn -0.5236 -0.4536 -0.7212 +vn -0.6502 0.0457 -0.7584 +vn -0.5872 0.0723 -0.8062 +vn -0.4646 -0.4506 -0.7623 +vn -0.4054 -0.4491 -0.7962 +vn -0.5197 0.0445 -0.8532 +vn -0.4534 0.0421 -0.8903 +vn -0.3417 -0.4493 -0.8254 +vn -0.2758 -0.4501 -0.8493 +vn -0.3823 0.0407 -0.9231 +vn -0.3087 0.0406 -0.9503 +vn -0.2079 -0.4519 -0.8675 +vn -0.1394 -0.4519 -0.8811 +vn -0.2331 0.0399 -0.9716 +vn -0.1562 0.0392 -0.9869 +vn -0.0698 -0.4540 -0.8883 +vn -0.0034 -0.4591 -0.8884 +vn -0.0786 0.0391 -0.9961 +vn -0.0031 0.0429 -0.9991 +vn 0.0621 -0.4876 -0.8709 +vn 0.1288 -0.5049 -0.8535 +vn 0.0706 0.0811 -0.9942 +vn 0.1476 0.1356 -0.9797 +vn 0.2036 -0.5037 -0.8396 +vn 0.2720 -0.4842 -0.8316 +vn 0.2305 0.1644 -0.9591 +vn 0.3108 0.1239 -0.9424 +vn 0.3274 -0.4981 -0.8029 +vn 0.3871 -0.5485 -0.7411 +vn 0.3733 0.1360 -0.9177 +vn 0.4496 0.1605 -0.8787 +vn 0.4597 -0.4989 -0.7347 +vn 0.5164 -0.4761 -0.7118 +vn 0.5327 0.0749 -0.8430 +vn 0.5887 0.0467 -0.8070 +vn 0.5638 -0.4951 -0.6611 +vn 0.6156 -0.4968 -0.6118 +vn 0.6460 0.0679 -0.7603 +vn 0.7070 0.0659 -0.7041 +vn 0.6689 -0.4783 -0.5691 +vn 0.7114 -0.4764 -0.5167 +vn 0.7619 0.0413 -0.6464 +vn 0.8086 0.0390 -0.5871 +vn 0.7435 -0.4823 -0.4633 +vn 0.7515 -0.5374 -0.3826 +vn 0.8487 0.0442 -0.5271 +vn 0.8836 0.1040 -0.4566 +vn 0.7906 -0.5203 -0.3228 +vn 0.8273 -0.4946 -0.2663 +vn 0.9234 0.0767 -0.3761 +vn 0.9513 0.0489 -0.3043 +vn 0.8507 -0.4847 -0.2036 +vn 0.8638 -0.4849 -0.1366 +vn 0.9720 0.0389 -0.2319 +vn 0.9870 0.0389 -0.1562 +vn 0.8715 -0.4857 -0.0684 +vn 0.8738 -0.4862 0.0001 +vn 0.9962 0.0385 -0.0783 +vn 0.9993 0.0384 0.0000 +vn 0.8702 -0.4879 0.0687 +vn 0.8618 -0.4886 0.1365 +vn 0.9962 0.0384 0.0784 +vn 0.9870 0.0384 0.1563 +vn 0.8474 -0.4903 0.2037 +vn 0.8286 -0.4908 0.2693 +vn 0.9717 0.0384 0.2333 +vn 0.9504 0.0384 0.3088 +vn 0.8045 -0.4915 0.3334 +vn 0.7756 -0.4921 0.3953 +vn 0.9232 0.0384 0.3824 +vn 0.8903 0.0385 0.4537 +vn 0.7418 -0.4929 0.4548 +vn 0.7041 -0.4926 0.5115 +vn 0.8520 0.0384 0.5221 +vn 0.8084 0.0384 0.5874 +vn 0.6615 -0.4932 0.5650 +vn 0.6151 -0.4932 0.6151 +vn 0.7598 0.0384 0.6490 +vn 0.7066 0.0384 0.7066 +vn 0.5647 -0.4936 0.6614 +vn 0.5114 -0.4932 0.7037 +vn 0.6490 0.0385 0.7598 +vn 0.5874 0.0386 0.8084 +vn 0.4543 -0.4938 0.7415 +vn 0.3957 -0.4941 0.7741 +vn 0.5222 0.0390 0.8519 +vn 0.4545 0.0403 0.8898 +vn 0.3306 -0.5042 0.7978 +vn 0.2672 -0.5012 0.8230 +vn 0.3832 0.0483 0.9224 +vn 0.3082 0.0471 0.9501 +vn 0.2022 -0.4975 0.8436 +vn 0.1362 -0.4935 0.8590 +vn 0.2326 0.0438 0.9716 +vn 0.1560 0.0423 0.9869 +vn 0.0683 -0.4926 0.8676 +vn 0.0783 0.0415 0.9961 +vn -0.0614 0.6235 0.7794 +vn -0.1194 0.6395 0.7595 +vn -0.0001 0.6250 0.7807 +vn -0.0291 0.9286 0.3699 +vn 0.0000 0.9286 0.3711 +vn -0.0581 0.9286 0.3665 +vn -0.1767 0.6507 0.7385 +vn -0.2334 0.6547 0.7189 +vn -0.0866 0.9286 0.3608 +vn -0.1147 0.9286 0.3529 +vn -0.2990 0.6287 0.7179 +vn -0.3538 0.6268 0.6942 +vn -0.1420 0.9286 0.3429 +vn -0.1685 0.9286 0.3307 +vn -0.4048 0.6317 0.6611 +vn -0.4424 0.6563 0.6112 +vn -0.1939 0.9286 0.3164 +vn -0.2181 0.9286 0.3002 +vn -0.5082 0.6253 0.5922 +vn -0.5538 0.6220 0.5536 +vn -0.2410 0.9286 0.2822 +vn -0.2624 0.9286 0.2624 +vn -0.5941 0.6241 0.5076 +vn -0.6273 0.6311 0.4562 +vn -0.2822 0.9286 0.2410 +vn -0.3002 0.9286 0.2181 +vn -0.6672 0.6230 0.4083 +vn -0.6982 0.6214 0.3556 +vn -0.3164 0.9286 0.1939 +vn -0.3307 0.9286 0.1685 +vn -0.7236 0.6217 0.2998 +vn -0.7449 0.6217 0.2420 +vn -0.3428 0.9286 0.1420 +vn -0.3530 0.9286 0.1147 +vn -0.7620 0.6212 0.1829 +vn -0.7744 0.6207 0.1226 +vn -0.3609 0.9286 0.0866 +vn -0.3665 0.9286 0.0581 +vn -0.7818 0.6205 0.0615 +vn -0.7842 0.6205 -0.0000 +vn -0.3700 0.9286 0.0291 +vn -0.3711 0.9286 -0.0000 +vn -0.7818 0.6205 -0.0615 +vn -0.7744 0.6207 -0.1226 +vn -0.3700 0.9286 -0.0291 +vn -0.3665 0.9286 -0.0581 +vn -0.7620 0.6211 -0.1829 +vn -0.7429 0.6245 -0.2411 +vn -0.3608 0.9286 -0.0866 +vn -0.3529 0.9286 -0.1147 +vn -0.7192 0.6278 -0.2977 +vn -0.6941 0.6270 -0.3537 +vn -0.3429 0.9286 -0.1420 +vn -0.3307 0.9286 -0.1685 +vn -0.6678 0.6215 -0.4096 +vn -0.6342 0.6208 -0.4608 +vn -0.3164 0.9286 -0.1939 +vn -0.3003 0.9286 -0.2181 +vn -0.5962 0.6207 -0.5092 +vn -0.5544 0.6207 -0.5544 +vn -0.2822 0.9286 -0.2410 +vn -0.2624 0.9286 -0.2624 +vn -0.5065 0.6264 -0.5926 +vn -0.4483 0.6487 -0.6150 +vn -0.2410 0.9286 -0.2822 +vn -0.2181 0.9286 -0.3002 +vn -0.4061 0.6264 -0.6653 +vn -0.3547 0.6239 -0.6964 +vn -0.1939 0.9286 -0.3164 +vn -0.1685 0.9286 -0.3307 +vn -0.2993 0.6229 -0.7228 +vn -0.2417 0.6231 -0.7439 +vn -0.1420 0.9286 -0.3429 +vn -0.1147 0.9286 -0.3530 +vn -0.1826 0.6229 -0.7607 +vn -0.1225 0.6213 -0.7739 +vn -0.0866 0.9286 -0.3608 +vn -0.0581 0.9286 -0.3665 +vn -0.0615 0.6212 -0.7812 +vn -0.0002 0.6247 -0.7809 +vn -0.0291 0.9286 -0.3699 +vn 0.0000 0.9286 -0.3711 +vn 0.0556 0.6708 -0.7396 +vn 0.1057 0.7196 -0.6863 +vn 0.0291 0.9286 -0.3699 +vn 0.0581 0.9286 -0.3665 +vn 0.1563 0.7383 -0.6561 +vn 0.2245 0.6967 -0.6813 +vn 0.0866 0.9286 -0.3608 +vn 0.1147 0.9286 -0.3529 +vn 0.2693 0.7084 -0.6524 +vn 0.2890 0.7650 -0.5756 +vn 0.1420 0.9286 -0.3428 +vn 0.1686 0.9285 -0.3309 +vn 0.3904 0.6766 -0.6244 +vn 0.4571 0.6328 -0.6250 +vn 0.1939 0.9286 -0.3163 +vn 0.2181 0.9286 -0.3002 +vn 0.4860 0.6611 -0.5717 +vn 0.5296 0.6625 -0.5297 +vn 0.2410 0.9286 -0.2821 +vn 0.2624 0.9286 -0.2624 +vn 0.5931 0.6279 -0.5039 +vn 0.6339 0.6216 -0.4602 +vn 0.2822 0.9286 -0.2410 +vn 0.3002 0.9286 -0.2181 +vn 0.6659 0.6244 -0.4083 +vn 0.6232 0.7121 -0.3232 +vn 0.3164 0.9286 -0.1939 +vn 0.3306 0.9286 -0.1685 +vn 0.6754 0.6833 -0.2775 +vn 0.7306 0.6412 -0.2347 +vn 0.3428 0.9286 -0.1420 +vn 0.3529 0.9286 -0.1147 +vn 0.7611 0.6227 -0.1817 +vn 0.7739 0.6214 -0.1225 +vn 0.3608 0.9286 -0.0866 +vn 0.3665 0.9286 -0.0581 +vn 0.7816 0.6208 -0.0615 +vn 0.7842 0.6205 0.0000 +vn 0.3699 0.9286 -0.0291 +vn 0.3711 0.9286 0.0000 +vn 0.7818 0.6205 0.0615 +vn 0.7746 0.6205 0.1227 +vn 0.3700 0.9286 0.0291 +vn 0.3665 0.9286 0.0581 +vn 0.7625 0.6205 0.1831 +vn 0.7458 0.6205 0.2423 +vn 0.3608 0.9286 0.0866 +vn 0.3530 0.9286 0.1147 +vn 0.7245 0.6205 0.3001 +vn 0.6987 0.6205 0.3560 +vn 0.3429 0.9286 0.1420 +vn 0.3307 0.9286 0.1685 +vn 0.6686 0.6205 0.4097 +vn 0.6344 0.6205 0.4609 +vn 0.3164 0.9286 0.1939 +vn 0.3002 0.9286 0.2181 +vn 0.5963 0.6205 0.5093 +vn 0.5545 0.6205 0.5545 +vn 0.2821 0.9286 0.2410 +vn 0.2624 0.9286 0.2624 +vn 0.5093 0.6206 0.5963 +vn 0.4608 0.6208 0.6342 +vn 0.2410 0.9286 0.2821 +vn 0.2181 0.9286 0.3002 +vn 0.4094 0.6215 0.6679 +vn 0.3552 0.6229 0.6970 +vn 0.1939 0.9286 0.3164 +vn 0.1685 0.9286 0.3307 +vn 0.2956 0.6376 0.7114 +vn 0.2383 0.6362 0.7338 +vn 0.1420 0.9286 0.3428 +vn 0.1147 0.9286 0.3530 +vn 0.1809 0.6306 0.7547 +vn 0.1217 0.6269 0.7695 +vn 0.0866 0.9286 0.3609 +vn 0.0581 0.9286 0.3665 +vn 0.0611 0.6264 0.7771 +vn 0.0291 0.9286 0.3699 +vn -0.0013 0.9999 0.0171 +vn -0.0027 0.9999 0.0169 +vn 0.0000 0.9999 0.0171 +vn 0.0161 0.9788 -0.2042 +vn -0.0000 0.9788 -0.2048 +vn 0.0320 0.9788 -0.2023 +vn -0.0040 0.9999 0.0166 +vn -0.0053 0.9999 0.0163 +vn 0.0478 0.9788 -0.1991 +vn 0.0633 0.9788 -0.1948 +vn -0.0065 0.9999 0.0158 +vn -0.0078 0.9999 0.0153 +vn 0.0784 0.9788 -0.1892 +vn 0.0930 0.9788 -0.1825 +vn -0.0089 0.9999 0.0146 +vn -0.0101 0.9999 0.0139 +vn 0.1070 0.9788 -0.1746 +vn 0.1204 0.9788 -0.1657 +vn -0.0111 0.9999 0.0130 +vn -0.0121 0.9999 0.0121 +vn 0.1330 0.9788 -0.1557 +vn 0.1448 0.9788 -0.1448 +vn -0.0130 0.9999 0.0111 +vn -0.0138 0.9999 0.0101 +vn 0.1557 0.9788 -0.1330 +vn 0.1657 0.9788 -0.1204 +vn -0.0146 0.9999 0.0089 +vn -0.0153 0.9999 0.0078 +vn 0.1746 0.9788 -0.1070 +vn 0.1825 0.9788 -0.0930 +vn -0.0158 0.9999 0.0065 +vn -0.0163 0.9999 0.0053 +vn 0.1892 0.9788 -0.0784 +vn 0.1947 0.9788 -0.0633 +vn -0.0166 0.9999 0.0040 +vn -0.0169 0.9999 0.0027 +vn 0.1991 0.9788 -0.0478 +vn 0.2022 0.9788 -0.0320 +vn -0.0170 0.9999 0.0013 +vn -0.0171 0.9999 -0.0000 +vn 0.2041 0.9788 -0.0161 +vn 0.2047 0.9788 -0.0000 +vn -0.0170 0.9999 -0.0013 +vn -0.0169 0.9999 -0.0027 +vn 0.2041 0.9788 0.0161 +vn 0.2022 0.9788 0.0320 +vn -0.0166 0.9999 -0.0040 +vn -0.0163 0.9999 -0.0053 +vn 0.1991 0.9788 0.0478 +vn 0.1947 0.9788 0.0633 +vn -0.0158 0.9999 -0.0065 +vn -0.0153 0.9999 -0.0078 +vn 0.1892 0.9788 0.0784 +vn 0.1824 0.9788 0.0930 +vn -0.0146 0.9999 -0.0089 +vn -0.0139 0.9999 -0.0101 +vn 0.1746 0.9788 0.1070 +vn 0.1657 0.9788 0.1204 +vn -0.0130 0.9999 -0.0111 +vn -0.0121 0.9999 -0.0121 +vn 0.1557 0.9788 0.1330 +vn 0.1448 0.9788 0.1448 +vn -0.0111 0.9999 -0.0130 +vn -0.0101 0.9999 -0.0138 +vn 0.1330 0.9788 0.1557 +vn 0.1204 0.9788 0.1657 +vn -0.0089 0.9999 -0.0146 +vn -0.0078 0.9999 -0.0153 +vn 0.1070 0.9788 0.1746 +vn 0.0930 0.9788 0.1825 +vn -0.0066 0.9999 -0.0158 +vn -0.0053 0.9999 -0.0163 +vn 0.0784 0.9788 0.1892 +vn 0.0633 0.9788 0.1948 +vn -0.0040 0.9999 -0.0167 +vn -0.0027 0.9999 -0.0169 +vn 0.0478 0.9788 0.1991 +vn 0.0320 0.9788 0.2023 +vn -0.0013 0.9999 -0.0171 +vn -0.0000 0.9999 -0.0172 +vn 0.0161 0.9788 0.2042 +vn -0.0000 0.9788 0.2048 +vn 0.0013 0.9999 -0.0171 +vn 0.0027 0.9999 -0.0170 +vn -0.0161 0.9788 0.2042 +vn -0.0320 0.9788 0.2022 +vn 0.0040 0.9999 -0.0167 +vn 0.0053 0.9999 -0.0163 +vn -0.0478 0.9788 0.1991 +vn -0.0633 0.9788 0.1947 +vn 0.0066 0.9999 -0.0159 +vn 0.0078 0.9999 -0.0153 +vn -0.0783 0.9788 0.1891 +vn -0.0929 0.9788 0.1824 +vn 0.0090 0.9999 -0.0146 +vn 0.0101 0.9999 -0.0139 +vn -0.1070 0.9788 0.1746 +vn -0.1203 0.9788 0.1656 +vn 0.0111 0.9999 -0.0130 +vn 0.0121 0.9999 -0.0121 +vn -0.1330 0.9788 0.1557 +vn -0.1448 0.9788 0.1448 +vn 0.0131 0.9999 -0.0111 +vn 0.0139 0.9999 -0.0101 +vn -0.1557 0.9788 0.1330 +vn -0.1656 0.9788 0.1203 +vn 0.0146 0.9999 -0.0090 +vn 0.0153 0.9999 -0.0078 +vn -0.1746 0.9788 0.1070 +vn -0.1824 0.9788 0.0930 +vn 0.0158 0.9999 -0.0065 +vn 0.0163 0.9999 -0.0053 +vn -0.1892 0.9788 0.0784 +vn -0.1947 0.9788 0.0633 +vn 0.0166 0.9999 -0.0040 +vn 0.0169 0.9999 -0.0027 +vn -0.1991 0.9788 0.0478 +vn -0.2022 0.9788 0.0320 +vn 0.0171 0.9999 -0.0013 +vn 0.0171 0.9999 0.0000 +vn -0.2041 0.9788 0.0161 +vn -0.2047 0.9788 0.0000 +vn 0.0171 0.9999 0.0013 +vn 0.0169 0.9999 0.0027 +vn -0.2041 0.9788 -0.0161 +vn -0.2022 0.9788 -0.0320 +vn 0.0166 0.9999 0.0040 +vn 0.0163 0.9999 0.0053 +vn -0.1991 0.9788 -0.0478 +vn -0.1947 0.9788 -0.0633 +vn 0.0158 0.9999 0.0065 +vn 0.0153 0.9999 0.0078 +vn -0.1892 0.9788 -0.0784 +vn -0.1824 0.9788 -0.0930 +vn 0.0146 0.9999 0.0090 +vn 0.0139 0.9999 0.0101 +vn -0.1746 0.9788 -0.1070 +vn -0.1656 0.9788 -0.1203 +vn 0.0131 0.9999 0.0112 +vn 0.0121 0.9999 0.0121 +vn -0.1557 0.9788 -0.1330 +vn -0.1448 0.9788 -0.1448 +vn 0.0112 0.9999 0.0130 +vn 0.0101 0.9999 0.0139 +vn -0.1330 0.9788 -0.1557 +vn -0.1204 0.9788 -0.1657 +vn 0.0090 0.9999 0.0146 +vn 0.0078 0.9999 0.0153 +vn -0.1070 0.9788 -0.1746 +vn -0.0930 0.9788 -0.1825 +vn 0.0066 0.9999 0.0158 +vn 0.0053 0.9999 0.0163 +vn -0.0784 0.9788 -0.1892 +vn -0.0633 0.9788 -0.1948 +vn 0.0040 0.9999 0.0167 +vn 0.0027 0.9999 0.0169 +vn -0.0478 0.9788 -0.1991 +vn -0.0320 0.9788 -0.2023 +vn 0.0013 0.9999 0.0171 +vn -0.0161 0.9788 -0.2042 +vn -0.3192 0.0520 -0.9463 +vn -0.3182 0.0000 -0.9480 +vn -0.3222 0.1036 -0.9410 +vn -0.4647 0.0420 -0.8845 +vn -0.4672 0.0838 -0.8802 +vn -0.4639 0.0000 -0.8859 +vn -0.3273 0.1546 -0.9322 +vn -0.3344 0.2046 -0.9200 +vn -0.4713 0.1250 -0.8731 +vn -0.4770 0.1655 -0.8632 +vn -0.3433 0.2534 -0.9044 +vn -0.3542 0.3006 -0.8855 +vn -0.4843 0.2050 -0.8506 +vn -0.4931 0.2432 -0.8353 +vn -0.3669 0.3460 -0.8635 +vn -0.3814 0.3892 -0.8385 +vn -0.5033 0.2798 -0.8175 +vn -0.5150 0.3148 -0.7973 +vn -0.3975 0.4301 -0.8106 +vn -0.4151 0.4682 -0.7800 +vn -0.5280 0.3478 -0.7747 +vn -0.5423 0.3787 -0.7500 +vn -0.4342 0.5035 -0.7469 +vn -0.4546 0.5357 -0.7116 +vn -0.5577 0.4073 -0.7233 +vn -0.5742 0.4333 -0.6947 +vn -0.4761 0.5646 -0.6741 +vn -0.4989 0.5900 -0.6348 +vn -0.5917 0.4567 -0.6644 +vn -0.6100 0.4772 -0.6326 +vn -0.5224 0.6118 -0.5939 +vn -0.5468 0.6298 -0.5517 +vn -0.6291 0.4948 -0.5995 +vn -0.6488 0.5094 -0.5653 +vn -0.5718 0.6439 -0.5083 +vn -0.5973 0.6541 -0.4642 +vn -0.6690 0.5208 -0.5303 +vn -0.6896 0.5290 -0.4945 +vn -0.6231 0.6602 -0.4194 +vn -0.6491 0.6622 -0.3744 +vn -0.7105 0.5339 -0.4584 +vn -0.7315 0.5356 -0.4220 +vn -0.6750 0.6602 -0.3294 +vn -0.7008 0.6541 -0.2847 +vn -0.7525 0.5339 -0.3856 +vn -0.7734 0.5290 -0.3494 +vn -0.7263 0.6439 -0.2405 +vn -0.7513 0.6298 -0.1972 +vn -0.7940 0.5208 -0.3137 +vn -0.8142 0.5094 -0.2786 +vn -0.7757 0.6118 -0.1549 +vn -0.7993 0.5900 -0.1140 +vn -0.8339 0.4948 -0.2444 +vn -0.8530 0.4772 -0.2114 +vn -0.8220 0.5646 -0.0747 +vn -0.8436 0.5357 -0.0372 +vn -0.8713 0.4567 -0.1796 +vn -0.8888 0.4333 -0.1493 +vn -0.8640 0.5036 -0.0019 +vn -0.8830 0.4683 0.0312 +vn -0.9053 0.4073 -0.1207 +vn -0.9207 0.3787 -0.0939 +vn -0.9007 0.4301 0.0618 +vn -0.9168 0.3892 0.0897 +vn -0.9350 0.3478 -0.0692 +vn -0.9480 0.3148 -0.0466 +vn -0.9312 0.3460 0.1147 +vn -0.9439 0.3006 0.1367 +vn -0.9597 0.2798 -0.0264 +vn -0.9700 0.2431 -0.0086 +vn -0.9548 0.2534 0.1556 +vn -0.9638 0.2046 0.1711 +vn -0.9787 0.2050 0.0066 +vn -0.9860 0.1655 0.0192 +vn -0.9708 0.1546 0.1834 +vn -0.9759 0.1036 0.1922 +vn -0.9917 0.1250 0.0291 +vn -0.9958 0.0838 0.0362 +vn -0.9789 0.0520 0.1975 +vn -0.9800 -0.0000 0.1992 +vn -0.9983 0.0420 0.0405 +vn -0.9991 -0.0000 0.0419 +vn -0.3190 0.0520 -0.9463 +vn -0.1688 0.0604 -0.9838 +vn -0.1676 0.0000 -0.9858 +vn -0.3180 -0.0000 -0.9481 +vn -0.3220 0.1036 -0.9410 +vn -0.1724 0.1205 -0.9776 +vn -0.0472 0.0661 -0.9967 +vn -0.0510 0.1318 -0.9900 +vn -0.0459 0.0000 -0.9989 +vn -0.3271 0.1546 -0.9323 +vn -0.1783 0.1798 -0.9674 +vn -0.3342 0.2047 -0.9200 +vn -0.1865 0.2380 -0.9532 +vn -0.0575 0.1967 -0.9788 +vn -0.0665 0.2603 -0.9632 +vn -0.3432 0.2535 -0.9044 +vn -0.1969 0.2947 -0.9351 +vn -0.3540 0.3007 -0.8856 +vn -0.2096 0.3497 -0.9131 +vn -0.0779 0.3224 -0.9434 +vn -0.0917 0.3824 -0.9194 +vn -0.3667 0.3461 -0.8636 +vn -0.2244 0.4024 -0.8875 +vn -0.3812 0.3893 -0.8385 +vn -0.2411 0.4527 -0.8584 +vn -0.1079 0.4401 -0.8914 +vn -0.1262 0.4951 -0.8596 +vn -0.3973 0.4302 -0.8106 +vn -0.2599 0.5002 -0.8260 +vn -0.4149 0.4684 -0.7801 +vn -0.2804 0.5446 -0.7904 +vn -0.1467 0.5471 -0.8241 +vn -0.1691 0.5957 -0.7852 +vn -0.4340 0.5037 -0.7470 +vn -0.3026 0.5856 -0.7520 +vn -0.4544 0.5359 -0.7116 +vn -0.3263 0.6231 -0.7108 +vn -0.1934 0.6406 -0.7432 +vn -0.2194 0.6815 -0.6982 +vn -0.4760 0.5648 -0.6741 +vn -0.3514 0.6567 -0.6673 +vn -0.4987 0.5902 -0.6348 +vn -0.3778 0.6862 -0.6216 +vn -0.2468 0.7183 -0.6505 +vn -0.2757 0.7506 -0.6005 +vn -0.5223 0.6120 -0.5939 +vn -0.4052 0.7116 -0.5740 +vn -0.5467 0.6300 -0.5516 +vn -0.4336 0.7325 -0.5249 +vn -0.3057 0.7783 -0.5485 +vn -0.3367 0.8012 -0.4947 +vn -0.5717 0.6441 -0.5083 +vn -0.4627 0.7489 -0.4744 +vn -0.5972 0.6542 -0.4641 +vn -0.4923 0.7607 -0.4231 +vn -0.3685 0.8191 -0.4396 +vn -0.4009 0.8320 -0.3834 +vn -0.6230 0.6603 -0.4194 +vn -0.5223 0.7678 -0.3711 +vn -0.6489 0.6624 -0.3743 +vn -0.5525 0.7702 -0.3187 +vn -0.4338 0.8398 -0.3265 +vn -0.4668 0.8424 -0.2693 +vn -0.6749 0.6603 -0.3293 +vn -0.5827 0.7678 -0.2664 +vn -0.7007 0.6542 -0.2846 +vn -0.6127 0.7607 -0.2143 +vn -0.4998 0.8398 -0.2120 +vn -0.5326 0.8320 -0.1551 +vn -0.7262 0.6441 -0.2404 +vn -0.6423 0.7489 -0.1630 +vn -0.7512 0.6300 -0.1970 +vn -0.6714 0.7325 -0.1126 +vn -0.5650 0.8191 -0.0989 +vn -0.5969 0.8012 -0.0438 +vn -0.7756 0.6120 -0.1548 +vn -0.6998 0.7116 -0.0634 +vn -0.7992 0.5902 -0.1139 +vn -0.7272 0.6862 -0.0158 +vn -0.6279 0.7783 0.0100 +vn -0.6579 0.7506 0.0620 +vn -0.8219 0.5648 -0.0746 +vn -0.7536 0.6567 0.0299 +vn -0.8435 0.5359 -0.0371 +vn -0.7787 0.6231 0.0734 +vn -0.6867 0.7183 0.1120 +vn -0.7142 0.6815 0.1596 +vn -0.8639 0.5037 -0.0017 +vn -0.8024 0.5857 0.1146 +vn -0.8830 0.4684 0.0314 +vn -0.8246 0.5446 0.1530 +vn -0.7401 0.6406 0.2046 +vn -0.7644 0.5957 0.2467 +vn -0.9006 0.4302 0.0619 +vn -0.8451 0.5002 0.1886 +vn -0.9167 0.3893 0.0898 +vn -0.8638 0.4527 0.2210 +vn -0.7868 0.5471 0.2856 +vn -0.8073 0.4951 0.3211 +vn -0.9311 0.3461 0.1149 +vn -0.8806 0.4024 0.2501 +vn -0.9438 0.3007 0.1369 +vn -0.8954 0.3497 0.2757 +vn -0.8257 0.4401 0.3529 +vn -0.8418 0.3824 0.3809 +vn -0.9547 0.2535 0.1557 +vn -0.9080 0.2947 0.2976 +vn -0.9637 0.2047 0.1713 +vn -0.9185 0.2380 0.3158 +vn -0.8557 0.3224 0.4049 +vn -0.8671 0.2603 0.4247 +vn -0.9708 0.1546 0.1836 +vn -0.9267 0.1798 0.3300 +vn -0.9758 0.1036 0.1923 +vn -0.9326 0.1205 0.3402 +vn -0.8761 0.1967 0.4403 +vn -0.8825 0.1318 0.4514 +vn -0.9789 0.0520 0.1976 +vn -0.9361 0.0604 0.3464 +vn -0.9799 0.0000 0.1994 +vn -0.9373 0.0000 0.3484 +vn -0.8864 0.0661 0.4582 +vn -0.8877 -0.0000 0.4604 +vn 0.2939 0.1527 -0.9436 +vn 0.2984 0.0766 -0.9514 +vn 0.1863 0.0741 -0.9797 +vn 0.1819 0.1478 -0.9721 +vn 0.3881 0.1553 -0.9085 +vn 0.3926 0.0779 -0.9164 +vn 0.2999 0.0000 -0.9540 +vn 0.3942 0.0000 -0.9190 +vn 0.1877 0.0000 -0.9822 +vn 0.2760 0.3017 -0.9126 +vn 0.2864 0.2279 -0.9306 +vn 0.1747 0.2205 -0.9596 +vn 0.1646 0.2919 -0.9422 +vn 0.3699 0.3069 -0.8769 +vn 0.3805 0.2318 -0.8953 +vn 0.2467 0.4432 -0.8618 +vn 0.2628 0.3736 -0.8896 +vn 0.1518 0.3615 -0.9199 +vn 0.1363 0.4288 -0.8930 +vn 0.3401 0.4508 -0.8253 +vn 0.3564 0.3800 -0.8536 +vn 0.2067 0.5738 -0.7925 +vn 0.2280 0.5101 -0.8294 +vn 0.1182 0.4936 -0.8616 +vn 0.0976 0.5552 -0.8260 +vn 0.2994 0.5837 -0.7548 +vn 0.3210 0.5189 -0.7923 +vn 0.1570 0.6903 -0.7063 +vn 0.1830 0.6340 -0.7514 +vn 0.0746 0.6135 -0.7862 +vn 0.0495 0.6679 -0.7426 +vn 0.2488 0.7022 -0.6671 +vn 0.2753 0.6449 -0.7129 +vn 0.0988 0.7898 -0.6054 +vn 0.1289 0.7423 -0.6575 +vn 0.0223 0.7183 -0.6954 +vn -0.0068 0.7642 -0.6449 +vn 0.1896 0.8034 -0.5645 +vn 0.2202 0.7551 -0.6175 +vn 0.0336 0.8698 -0.4923 +vn 0.0670 0.8323 -0.5502 +vn -0.0377 0.8054 -0.5915 +vn -0.0700 0.8417 -0.5355 +vn 0.1232 0.8848 -0.4494 +vn 0.1572 0.8467 -0.5083 +vn -0.0371 0.9284 -0.3697 +vn -0.0012 0.9019 -0.4320 +vn -0.1037 0.8727 -0.4771 +vn -0.1384 0.8984 -0.4168 +vn 0.0513 0.9444 -0.3247 +vn 0.0878 0.9174 -0.3880 +vn -0.1116 0.9642 -0.2407 +vn -0.0740 0.9492 -0.3058 +vn -0.1741 0.9185 -0.3550 +vn -0.2104 0.9330 -0.2920 +vn -0.0244 0.9808 -0.1934 +vn 0.0138 0.9656 -0.2597 +vn -0.1879 0.9762 -0.1084 +vn -0.1496 0.9732 -0.1747 +vn -0.2473 0.9417 -0.2282 +vn -0.2843 0.9446 -0.1640 +vn -0.1020 0.9930 -0.0589 +vn -0.0631 0.9900 -0.1264 +vn -0.2642 0.9642 0.0239 +vn -0.2261 0.9732 -0.0420 +vn -0.3213 0.9417 -0.0998 +vn -0.3581 0.9330 -0.0360 +vn -0.1797 0.9808 0.0757 +vn -0.1410 0.9900 0.0086 +vn -0.3386 0.9284 0.1529 +vn -0.3018 0.9492 0.0890 +vn -0.3945 0.9185 0.0270 +vn -0.4301 0.8984 0.0889 +vn -0.2554 0.9444 0.2069 +vn -0.2179 0.9656 0.1419 +vn -0.4093 0.8698 0.2755 +vn -0.3745 0.9019 0.2152 +vn -0.4649 0.8727 0.1491 +vn -0.4986 0.8417 0.2075 +vn -0.3273 0.8848 0.3317 +vn -0.2919 0.9174 0.2703 +vn -0.4746 0.7898 0.3886 +vn -0.4427 0.8323 0.3334 +vn -0.5309 0.8054 0.2635 +vn -0.5617 0.7642 0.3170 +vn -0.3937 0.8034 0.4467 +vn -0.3613 0.8467 0.3906 +vn -0.5328 0.6903 0.4895 +vn -0.5047 0.7423 0.4408 +vn -0.5908 0.7183 0.3674 +vn -0.6180 0.6679 0.4146 +vn -0.4529 0.7022 0.5494 +vn -0.4243 0.7551 0.4998 +vn -0.5825 0.5738 0.5757 +vn -0.5588 0.6340 0.5346 +vn -0.6432 0.6135 0.4582 +vn -0.6661 0.5552 0.4980 +vn -0.5035 0.5837 0.6370 +vn -0.4794 0.6449 0.5952 +vn -0.6225 0.4432 0.6450 +vn -0.6038 0.5101 0.6126 +vn -0.6867 0.4936 0.5337 +vn -0.7048 0.4288 0.5651 +vn -0.5442 0.4508 0.7076 +vn -0.5251 0.5189 0.6746 +vn -0.6518 0.3017 0.6958 +vn -0.6385 0.3736 0.6728 +vn -0.7204 0.3615 0.5920 +vn -0.7332 0.2919 0.6142 +vn -0.5740 0.3069 0.7592 +vn -0.5605 0.3800 0.7358 +vn -0.6697 0.1527 0.7268 +vn -0.6622 0.2279 0.7138 +vn -0.7432 0.2205 0.6316 +vn -0.7505 0.1478 0.6442 +vn -0.5921 0.1553 0.7907 +vn -0.5845 0.2318 0.7776 +vn -0.6757 0.0000 0.7372 +vn -0.6742 0.0766 0.7346 +vn -0.7548 0.0741 0.6517 +vn -0.7563 0.0000 0.6542 +vn -0.5982 -0.0000 0.8013 +vn -0.5967 0.0779 0.7987 +vn 0.4505 0.1562 -0.8790 +vn 0.4551 0.0784 -0.8870 +vn 0.4710 0.1564 -0.8682 +vn 0.4756 0.0784 -0.8762 +vn 0.4566 0.0000 -0.8897 +vn 0.4771 0.0000 -0.8788 +vn 0.4322 0.3086 -0.8473 +vn 0.4428 0.2332 -0.8658 +vn 0.4527 0.3089 -0.8365 +vn 0.4633 0.2334 -0.8549 +vn 0.4022 0.4534 -0.7954 +vn 0.4186 0.3822 -0.8238 +vn 0.4227 0.4538 -0.7845 +vn 0.4391 0.3826 -0.8129 +vn 0.3613 0.5871 -0.7244 +vn 0.3831 0.5219 -0.7622 +vn 0.3817 0.5876 -0.7135 +vn 0.4035 0.5223 -0.7512 +vn 0.3104 0.7063 -0.6363 +vn 0.3370 0.6487 -0.6824 +vn 0.3308 0.7069 -0.6252 +vn 0.3574 0.6492 -0.6714 +vn 0.2509 0.8080 -0.5330 +vn 0.2816 0.7595 -0.5864 +vn 0.2712 0.8087 -0.5219 +vn 0.3020 0.7601 -0.5753 +vn 0.1841 0.8899 -0.4173 +vn 0.2183 0.8516 -0.4766 +vn 0.2044 0.8907 -0.4060 +vn 0.2386 0.8524 -0.4654 +vn 0.1117 0.9499 -0.2919 +vn 0.1485 0.9228 -0.3556 +vn 0.1320 0.9507 -0.2805 +vn 0.1688 0.9236 -0.3443 +vn 0.0356 0.9865 -0.1598 +vn 0.0740 0.9712 -0.2265 +vn 0.0557 0.9874 -0.1484 +vn 0.0942 0.9720 -0.2151 +vn -0.0425 0.9988 -0.0245 +vn -0.0033 0.9957 -0.0924 +vn -0.0224 0.9997 -0.0129 +vn 0.0168 0.9966 -0.0809 +vn -0.1206 0.9865 0.1108 +vn -0.0816 0.9957 0.0434 +vn -0.1005 0.9874 0.1225 +vn -0.0616 0.9966 0.0550 +vn -0.1967 0.9499 0.2428 +vn -0.1590 0.9712 0.1775 +vn -0.1768 0.9507 0.2547 +vn -0.1390 0.9720 0.1892 +vn -0.2691 0.8899 0.3683 +vn -0.2335 0.9228 0.3066 +vn -0.2492 0.8907 0.3802 +vn -0.2136 0.9236 0.3185 +vn -0.3358 0.8080 0.4840 +vn -0.3032 0.8516 0.4275 +vn -0.3160 0.8087 0.4961 +vn -0.2834 0.8524 0.4395 +vn -0.3954 0.7063 0.5873 +vn -0.3666 0.7595 0.5374 +vn -0.3756 0.7069 0.5994 +vn -0.3468 0.7602 0.5494 +vn -0.4462 0.5871 0.6754 +vn -0.4220 0.6487 0.6334 +vn -0.4265 0.5876 0.6876 +vn -0.4022 0.6492 0.6455 +vn -0.4872 0.4534 0.7464 +vn -0.4680 0.5219 0.7132 +vn -0.4675 0.4538 0.7586 +vn -0.4483 0.5223 0.7254 +vn -0.5171 0.3086 0.7983 +vn -0.5036 0.3822 0.7748 +vn -0.4975 0.3089 0.8106 +vn -0.4839 0.3826 0.7871 +vn -0.5354 0.1562 0.8300 +vn -0.5278 0.2332 0.8168 +vn -0.5158 0.1564 0.8423 +vn -0.5081 0.2334 0.8291 +vn -0.5416 -0.0000 0.8407 +vn -0.5400 0.0784 0.8380 +vn -0.5219 -0.0000 0.8530 +vn -0.5204 0.0784 0.8503 +vn 0.0631 0.1406 -0.9881 +vn 0.0672 0.0705 -0.9952 +vn 0.0686 0.0000 -0.9976 +vn 0.0466 0.2776 -0.9596 +vn 0.0562 0.2097 -0.9761 +vn 0.0197 0.4079 -0.9128 +vn 0.0344 0.3438 -0.9384 +vn -0.0171 0.5281 -0.8490 +vn 0.0025 0.4694 -0.8830 +vn -0.0629 0.6353 -0.7697 +vn -0.0389 0.5835 -0.8112 +vn -0.1164 0.7269 -0.6768 +vn -0.0888 0.6832 -0.7248 +vn -0.1765 0.8005 -0.5727 +vn -0.1458 0.7661 -0.6260 +vn -0.2416 0.8545 -0.4599 +vn -0.2085 0.8301 -0.5172 +vn -0.3101 0.8874 -0.3411 +vn -0.2755 0.8736 -0.4011 +vn -0.3803 0.8985 -0.2194 +vn -0.3451 0.8957 -0.2805 +vn -0.4506 0.8874 -0.0976 +vn -0.4155 0.8957 -0.1583 +vn -0.5191 0.8545 0.0211 +vn -0.4851 0.8736 -0.0377 +vn -0.5841 0.8005 0.1339 +vn -0.5521 0.8301 0.0784 +vn -0.6442 0.7269 0.2381 +vn -0.6149 0.7661 0.1872 +vn -0.6978 0.6353 0.3309 +vn -0.6719 0.6832 0.2860 +vn -0.7435 0.5281 0.4102 +vn -0.7217 0.5835 0.3724 +vn -0.7803 0.4079 0.4740 +vn -0.7631 0.4694 0.4442 +vn -0.8073 0.2776 0.5208 +vn -0.7951 0.3438 0.4996 +vn -0.8237 0.1405 0.5493 +vn -0.8169 0.2097 0.5374 +vn -0.8293 -0.0000 0.5589 +vn -0.8279 0.0705 0.5565 +vn -0.4426 0.0874 -0.8925 +vn -0.4400 0.0438 -0.8969 +vn -0.4391 -0.0000 -0.8984 +vn -0.4528 0.1727 -0.8747 +vn -0.4469 0.1304 -0.8850 +vn -0.4696 0.2537 -0.8457 +vn -0.4604 0.2138 -0.8616 +vn -0.4925 0.3284 -0.8060 +vn -0.4803 0.2920 -0.8271 +vn -0.5209 0.3951 -0.7567 +vn -0.5060 0.3629 -0.7824 +vn -0.5542 0.4521 -0.6989 +vn -0.5370 0.4249 -0.7287 +vn -0.5916 0.4979 -0.6341 +vn -0.5725 0.4764 -0.6673 +vn -0.6321 0.5314 -0.5640 +vn -0.6115 0.5162 -0.5996 +vn -0.6747 0.5519 -0.4901 +vn -0.6532 0.5433 -0.5274 +vn -0.7184 0.5588 -0.4144 +vn -0.6965 0.5571 -0.4524 +vn -0.7620 0.5519 -0.3387 +vn -0.7403 0.5571 -0.3764 +vn -0.8046 0.5314 -0.2648 +vn -0.7835 0.5433 -0.3014 +vn -0.8451 0.4979 -0.1947 +vn -0.8252 0.5162 -0.2292 +vn -0.8825 0.4521 -0.1299 +vn -0.8642 0.4764 -0.1615 +vn -0.9158 0.3951 -0.0721 +vn -0.8997 0.4249 -0.1000 +vn -0.9442 0.3284 -0.0228 +vn -0.9307 0.3629 -0.0463 +vn -0.9671 0.2537 0.0169 +vn -0.9564 0.2920 -0.0017 +vn -0.9839 0.1727 0.0459 +vn -0.9763 0.2138 0.0328 +vn -0.9941 0.0874 0.0637 +vn -0.9899 0.1304 0.0563 +vn -0.9976 -0.0000 0.0696 +vn -0.9967 0.0438 0.0681 +vn -0.6665 -0.6374 0.3867 +vn -0.6207 -0.6375 0.4565 +vn -0.5674 -0.6414 0.5164 +vn -0.5083 -0.6466 0.5688 +vn -0.4450 -0.6486 0.6175 +vn -0.3785 -0.6502 0.6588 +vn -0.3087 -0.6501 0.6944 +vn -0.2362 -0.6459 0.7260 +vn -0.1613 -0.6399 0.7514 +vn -0.0828 -0.6339 0.7690 +vn 0.0001 -0.6302 0.7764 +vn 0.4885 -0.6378 0.5954 +vn 0.5308 -0.6403 0.5553 +vn 0.5694 -0.6415 0.5141 +vn 0.6054 -0.6418 0.4707 +vn 0.6362 -0.6425 0.4272 +vn 0.6616 -0.6441 0.3838 +vn 0.6861 -0.6443 0.3380 +vn 0.7083 -0.6438 0.2894 +vn 0.7276 -0.6433 0.2383 +vn 0.7433 -0.6431 0.1843 +vn 0.7555 -0.6429 0.1261 +vn 0.0236 0.9536 -0.3001 +vn 0.0471 0.9536 -0.2973 +vn -0.0000 0.9536 -0.3010 +vn 0.0254 0.9463 -0.3222 +vn -0.0000 0.9463 -0.3232 +vn 0.0506 0.9463 -0.3193 +vn 0.0703 0.9536 -0.2927 +vn 0.0930 0.9536 -0.2863 +vn 0.0755 0.9463 -0.3143 +vn 0.0999 0.9463 -0.3074 +vn 0.1152 0.9536 -0.2781 +vn 0.1366 0.9536 -0.2682 +vn 0.1237 0.9463 -0.2986 +vn 0.1468 0.9463 -0.2880 +vn 0.1573 0.9536 -0.2566 +vn 0.1769 0.9536 -0.2435 +vn 0.1689 0.9463 -0.2756 +vn 0.1900 0.9463 -0.2615 +vn 0.1955 0.9536 -0.2289 +vn 0.2128 0.9536 -0.2128 +vn 0.2099 0.9463 -0.2458 +vn 0.2286 0.9463 -0.2286 +vn 0.2289 0.9536 -0.1955 +vn 0.2435 0.9536 -0.1769 +vn 0.2458 0.9463 -0.2099 +vn 0.2615 0.9463 -0.1900 +vn 0.2566 0.9536 -0.1573 +vn 0.2682 0.9536 -0.1366 +vn 0.2756 0.9463 -0.1689 +vn 0.2880 0.9463 -0.1467 +vn 0.2781 0.9536 -0.1152 +vn 0.2863 0.9536 -0.0930 +vn 0.2986 0.9463 -0.1237 +vn 0.3075 0.9463 -0.0999 +vn 0.2927 0.9536 -0.0703 +vn 0.2973 0.9536 -0.0471 +vn 0.3144 0.9463 -0.0755 +vn 0.3193 0.9463 -0.0506 +vn 0.3001 0.9536 -0.0236 +vn 0.3010 0.9536 -0.0000 +vn 0.3223 0.9463 -0.0254 +vn 0.3233 0.9463 -0.0000 +vn 0.3001 0.9536 0.0236 +vn 0.2973 0.9536 0.0471 +vn 0.3223 0.9463 0.0254 +vn 0.3193 0.9463 0.0506 +vn 0.2927 0.9536 0.0703 +vn 0.2863 0.9536 0.0930 +vn 0.3144 0.9463 0.0755 +vn 0.3075 0.9463 0.0999 +vn 0.2781 0.9536 0.1152 +vn 0.2682 0.9536 0.1366 +vn 0.2987 0.9463 0.1237 +vn 0.2881 0.9463 0.1468 +vn 0.2566 0.9536 0.1573 +vn 0.2435 0.9536 0.1769 +vn 0.2756 0.9463 0.1689 +vn 0.2615 0.9463 0.1900 +vn 0.2289 0.9536 0.1955 +vn 0.2128 0.9536 0.2128 +vn 0.2458 0.9463 0.2099 +vn 0.2286 0.9463 0.2286 +vn 0.1955 0.9536 0.2289 +vn 0.1769 0.9536 0.2435 +vn 0.2099 0.9463 0.2458 +vn 0.1900 0.9463 0.2615 +vn 0.1573 0.9536 0.2566 +vn 0.1366 0.9536 0.2682 +vn 0.1689 0.9463 0.2756 +vn 0.1468 0.9463 0.2880 +vn 0.1152 0.9536 0.2781 +vn 0.0930 0.9536 0.2863 +vn 0.1237 0.9463 0.2986 +vn 0.0999 0.9463 0.3074 +vn 0.0703 0.9536 0.2927 +vn 0.0471 0.9536 0.2973 +vn 0.0755 0.9463 0.3143 +vn 0.0506 0.9463 0.3193 +vn 0.0236 0.9536 0.3001 +vn -0.0000 0.9536 0.3010 +vn 0.0254 0.9463 0.3222 +vn 0.0000 0.9463 0.3232 +vn -0.0236 0.9536 0.3001 +vn -0.0471 0.9536 0.2973 +vn -0.0254 0.9463 0.3223 +vn -0.0506 0.9463 0.3193 +vn -0.0703 0.9536 0.2927 +vn -0.0930 0.9536 0.2863 +vn -0.0755 0.9463 0.3143 +vn -0.0999 0.9463 0.3074 +vn -0.1152 0.9536 0.2781 +vn -0.1366 0.9536 0.2682 +vn -0.1237 0.9463 0.2986 +vn -0.1468 0.9463 0.2880 +vn -0.1573 0.9536 0.2566 +vn -0.1769 0.9536 0.2435 +vn -0.1689 0.9463 0.2756 +vn -0.1900 0.9463 0.2615 +vn -0.1955 0.9536 0.2289 +vn -0.2128 0.9536 0.2128 +vn -0.2099 0.9463 0.2458 +vn -0.2286 0.9463 0.2286 +vn -0.2289 0.9536 0.1955 +vn -0.2435 0.9536 0.1769 +vn -0.2458 0.9463 0.2099 +vn -0.2615 0.9463 0.1900 +vn -0.2566 0.9536 0.1573 +vn -0.2682 0.9536 0.1366 +vn -0.2756 0.9463 0.1689 +vn -0.2880 0.9463 0.1468 +vn -0.2780 0.9536 0.1152 +vn -0.2862 0.9536 0.0930 +vn -0.2986 0.9463 0.1237 +vn -0.3074 0.9463 0.0999 +vn -0.2926 0.9536 0.0703 +vn -0.2973 0.9536 0.0471 +vn -0.3143 0.9463 0.0755 +vn -0.3193 0.9463 0.0506 +vn -0.3001 0.9536 0.0236 +vn -0.3010 0.9536 0.0000 +vn -0.3223 0.9463 0.0254 +vn -0.3232 0.9463 -0.0000 +vn -0.3000 0.9536 -0.0236 +vn -0.2973 0.9536 -0.0471 +vn -0.3223 0.9463 -0.0254 +vn -0.3193 0.9463 -0.0506 +vn -0.2926 0.9536 -0.0703 +vn -0.2862 0.9536 -0.0930 +vn -0.3143 0.9463 -0.0755 +vn -0.3074 0.9463 -0.0999 +vn -0.2780 0.9536 -0.1152 +vn -0.2682 0.9536 -0.1366 +vn -0.2986 0.9463 -0.1237 +vn -0.2880 0.9463 -0.1467 +vn -0.2566 0.9536 -0.1573 +vn -0.2435 0.9536 -0.1769 +vn -0.2756 0.9463 -0.1689 +vn -0.2615 0.9463 -0.1900 +vn -0.2289 0.9536 -0.1955 +vn -0.2128 0.9536 -0.2128 +vn -0.2458 0.9463 -0.2099 +vn -0.2286 0.9463 -0.2286 +vn -0.1955 0.9536 -0.2289 +vn -0.1769 0.9536 -0.2435 +vn -0.2099 0.9463 -0.2458 +vn -0.1900 0.9463 -0.2615 +vn -0.1573 0.9536 -0.2566 +vn -0.1366 0.9536 -0.2682 +vn -0.1689 0.9463 -0.2756 +vn -0.1468 0.9463 -0.2880 +vn -0.1152 0.9536 -0.2781 +vn -0.0930 0.9536 -0.2863 +vn -0.1237 0.9463 -0.2986 +vn -0.0999 0.9463 -0.3074 +vn -0.0703 0.9536 -0.2927 +vn -0.0471 0.9536 -0.2973 +vn -0.0755 0.9463 -0.3143 +vn -0.0506 0.9463 -0.3193 +vn -0.0236 0.9536 -0.3001 +vn -0.0254 0.9463 -0.3222 +vn 0.5653 -0.6490 -0.5091 +vn 0.5064 -0.6553 -0.5604 +vn 0.4437 -0.6584 -0.6079 +vn 0.3774 -0.6577 -0.6519 +vn 0.3070 -0.6590 -0.6867 +vn 0.2353 -0.6560 -0.7171 +vn 0.1575 -0.6566 -0.7376 +vn -0.7973 -0.5764 -0.1790 +vn -0.7767 -0.5886 -0.2241 +vn -0.7560 -0.5973 -0.2676 +vn -0.7346 -0.6035 -0.3101 +vn -0.7128 -0.6057 -0.3536 +vn -0.6899 -0.6059 -0.3961 +vn -0.6663 -0.6036 -0.4378 +vn -0.6406 -0.6004 -0.4786 +vn -0.6134 -0.5949 -0.5195 +vn -0.5856 -0.5861 -0.5599 +vn -0.5576 -0.5745 -0.5992 +vn 0.0695 -0.9791 0.1912 +vn 0.0482 -0.9795 0.1954 +vn 0.0452 -0.9862 0.1594 +vn 0.0734 -0.9853 0.1543 +vn 0.0718 -0.9698 0.2332 +vn 0.0529 -0.9700 0.2374 +vn 0.0269 -0.9794 0.2003 +vn 0.0334 -0.9698 0.2415 +vn 0.0213 -0.9862 0.1644 +vn 0.1039 -0.9792 0.1742 +vn 0.0929 -0.9764 0.1949 +vn 0.1374 -0.9700 0.2007 +vn 0.1231 -0.9692 0.2134 +vn 0.0904 -0.9690 0.2300 +vn 0.1152 -0.9646 0.2372 +vn 0.1150 -0.9858 0.1223 +vn 0.1379 -0.9796 0.1464 +vn 0.1203 -0.9797 0.1602 +vn 0.0954 -0.9860 0.1365 +vn 0.1671 -0.9702 0.1757 +vn 0.1518 -0.9702 0.1886 +vn 0.1673 -0.9793 0.1140 +vn 0.1525 -0.9797 0.1299 +vn 0.1324 -0.9857 0.1045 +vn 0.1514 -0.9850 0.0827 +vn 0.1934 -0.9702 0.1463 +vn 0.1807 -0.9703 0.1605 +vn 0.1851 -0.9794 0.0805 +vn 0.1886 -0.9766 0.1034 +vn 0.2273 -0.9704 0.0818 +vn 0.2230 -0.9697 0.0997 +vn 0.2061 -0.9695 0.1327 +vn 0.2302 -0.9652 0.1238 +vn 0.1631 -0.9861 0.0318 +vn 0.1961 -0.9799 0.0374 +vn 0.1902 -0.9800 0.0590 +vn 0.1579 -0.9859 0.0552 +vn 0.2365 -0.9706 0.0437 +vn 0.2319 -0.9707 0.0634 +vn 0.2008 -0.9796 -0.0068 +vn 0.1979 -0.9801 0.0151 +vn 0.1659 -0.9861 0.0081 +vn 0.1694 -0.9853 -0.0211 +vn 0.2406 -0.9706 0.0048 +vn 0.2389 -0.9708 0.0236 +vn 0.1957 -0.9797 -0.0440 +vn 0.2119 -0.9769 -0.0275 +vn 0.2303 -0.9708 -0.0673 +vn 0.2368 -0.9702 -0.0504 +vn 0.2424 -0.9701 -0.0138 +vn 0.2564 -0.9659 -0.0349 +vn 0.1491 -0.9863 -0.0707 +vn 0.1790 -0.9801 -0.0854 +vn 0.1871 -0.9802 -0.0646 +vn 0.1581 -0.9862 -0.0487 +vn 0.2157 -0.9709 -0.1039 +vn 0.2232 -0.9710 -0.0852 +vn 0.1569 -0.9798 -0.1241 +vn 0.1676 -0.9803 -0.1047 +vn 0.1376 -0.9862 -0.0918 +vn 0.1231 -0.9854 -0.1173 +vn 0.1953 -0.9709 -0.1383 +vn 0.2056 -0.9711 -0.1212 +vn 0.1307 -0.9798 -0.1510 +vn 0.1538 -0.9770 -0.1475 +vn 0.1452 -0.9710 -0.1899 +vn 0.1600 -0.9706 -0.1800 +vn 0.1860 -0.9705 -0.1535 +vn 0.1848 -0.9664 -0.1787 +vn 0.0771 -0.9865 -0.1444 +vn 0.0923 -0.9803 -0.1745 +vn 0.1113 -0.9805 -0.1621 +vn 0.0986 -0.9863 -0.1324 +vn 0.1112 -0.9712 -0.2109 +vn 0.1286 -0.9712 -0.2004 +vn 0.0519 -0.9799 -0.1925 +vn 0.0714 -0.9805 -0.1830 +vn 0.0545 -0.9867 -0.1530 +vn 0.0276 -0.9861 -0.1640 +vn 0.0747 -0.9710 -0.2269 +vn 0.0933 -0.9712 -0.2192 +vn 0.0144 -0.9799 -0.1988 +vn 0.0357 -0.9770 -0.2101 +vn 0.0039 -0.9710 -0.2392 +vn 0.0215 -0.9706 -0.2398 +vn 0.0582 -0.9706 -0.2337 +vn 0.0425 -0.9665 -0.2532 +vn -0.0240 -0.9869 -0.1597 +vn -0.0301 -0.9802 -0.1956 +vn -0.0073 -0.9805 -0.1962 +vn 0.0001 -0.9870 -0.1608 +vn -0.0360 -0.9711 -0.2361 +vn -0.0161 -0.9711 -0.2380 +vn 0.0448 -0.9914 -0.1234 +vn 0.0224 -0.9917 -0.1267 +vn 0.0648 -0.9908 -0.1185 +vn 0.0385 -0.9948 -0.0947 +vn 0.0589 -0.9941 -0.0912 +vn 0.0204 -0.9952 -0.0960 +vn 0.0749 -0.9958 0.0535 +vn 0.0557 -0.9967 0.0599 +vn 0.0543 -0.9977 0.0409 +vn 0.0730 -0.9968 0.0326 +vn 0.0830 -0.9940 0.0712 +vn 0.0622 -0.9948 0.0807 +vn 0.0459 -0.9952 0.0859 +vn 0.0401 -0.9971 0.0649 +vn 0.0347 -0.9984 0.0444 +vn 0.0235 -0.9975 0.0666 +vn 0.0179 -0.9987 0.0474 +vn 0.0281 -0.9954 0.0920 +vn 0.0072 -0.9975 0.0697 +vn 0.0121 -0.9952 0.0973 +vn 0.0032 -0.9988 0.0491 +vn 0.0690 -0.9976 -0.0073 +vn 0.0662 -0.9974 -0.0288 +vn 0.0834 -0.9960 -0.0307 +vn 0.0861 -0.9962 -0.0104 +vn 0.0614 -0.9970 -0.0462 +vn 0.0806 -0.9957 -0.0462 +vn 0.1025 -0.9935 -0.0486 +vn 0.1052 -0.9939 -0.0343 +vn 0.1080 -0.9941 -0.0122 +vn 0.0487 -0.9984 -0.0291 +vn 0.0436 -0.9978 -0.0497 +vn 0.0496 -0.9988 -0.0035 +vn 0.0273 -0.9993 -0.0247 +vn 0.0299 -0.9996 0.0010 +vn 0.0259 -0.9984 -0.0500 +vn 0.0108 -0.9997 -0.0226 +vn 0.0066 -0.9988 -0.0486 +vn 0.0151 -0.9999 0.0033 +vn -0.0042 -1.0000 0.0059 +vn -0.0076 -0.9998 -0.0202 +vn -0.0099 -0.9989 -0.0467 +vn 0.1239 -0.9906 -0.0583 +vn 0.1292 -0.9908 -0.0404 +vn 0.1356 -0.9906 -0.0162 +vn 0.1129 -0.9933 0.0231 +vn 0.1358 -0.9904 0.0266 +vn 0.1328 -0.9901 0.0452 +vn 0.1111 -0.9930 0.0402 +vn 0.1251 -0.9901 0.0635 +vn 0.1087 -0.9924 0.0571 +vn 0.1357 -0.9907 0.0089 +vn 0.1116 -0.9937 0.0087 +vn 0.0890 -0.9960 0.0116 +vn 0.0903 -0.9955 0.0273 +vn 0.0717 -0.9973 0.0146 +vn 0.0517 -0.9985 0.0192 +vn 0.0312 -0.9993 0.0224 +vn 0.0172 -0.9995 0.0267 +vn -0.0003 -0.9995 0.0301 +vn 0.1122 -0.9904 0.0804 +vn 0.0952 -0.9905 0.0989 +vn 0.0973 -0.9933 0.0616 +vn 0.0576 -0.9960 -0.0684 +vn 0.0385 -0.9968 -0.0704 +vn 0.0222 -0.9971 -0.0723 +vn 0.0041 -0.9973 -0.0729 +vn 0.0024 -0.9952 -0.0975 +vn -0.0127 -0.9974 -0.0710 +vn -0.0153 -0.9953 -0.0960 +vn 0.0924 -0.9947 0.0451 +vn 0.0877 -0.9928 -0.0812 +vn 0.0958 -0.9933 -0.0651 +vn 0.0760 -0.9950 -0.0652 +vn 0.0759 -0.9935 -0.0846 +vn 0.1161 -0.9904 -0.0754 +vn 0.1017 -0.9903 -0.0945 +vn 0.0780 -0.9909 0.1099 +vn 0.0580 -0.9913 0.1180 +vn 0.0358 -0.9915 0.1248 +vn 0.0162 -0.9916 0.1282 +vn -0.0188 -0.9918 -0.1263 +vn 0.0009 -0.9918 -0.1278 +vn 0.0851 -0.9905 -0.1076 +vn -0.0025 -0.9861 0.1662 +vn 0.0049 -0.9795 0.2014 +vn -0.0165 -0.9790 0.2031 +vn -0.0307 -0.9850 0.1698 +vn 0.0136 -0.9699 0.2429 +vn -0.0052 -0.9697 0.2443 +vn -0.0379 -0.9763 0.2130 +vn -0.0546 -0.9790 0.1966 +vn -0.0242 -0.9688 0.2466 +vn -0.0603 -0.9687 0.2406 +vn -0.0448 -0.9642 0.2612 +vn -0.0776 -0.9696 0.2319 +vn -0.0804 -0.9855 0.1493 +vn -0.0571 -0.9857 0.1584 +vn -0.0741 -0.9794 0.1879 +vn -0.0944 -0.9792 0.1795 +vn -0.0954 -0.9698 0.2243 +vn -0.1134 -0.9697 0.2164 +vn -0.1014 -0.9854 0.1371 +vn -0.1129 -0.9794 0.1674 +vn -0.1313 -0.9790 0.1560 +vn -0.1251 -0.9845 0.1231 +vn -0.1304 -0.9699 0.2058 +vn -0.1464 -0.9696 0.1958 +vn -0.1545 -0.9763 0.1517 +vn -0.1583 -0.9790 0.1287 +vn -0.1630 -0.9688 0.1866 +vn -0.1888 -0.9688 0.1605 +vn -0.1883 -0.9644 0.1859 +vn -0.1979 -0.9697 0.1430 +vn -0.1521 -0.9854 0.0764 +vn -0.1402 -0.9852 0.0985 +vn -0.1695 -0.9793 0.1102 +vn -0.1808 -0.9793 0.0913 +vn -0.2073 -0.9700 0.1270 +vn -0.2171 -0.9700 0.1096 +vn -0.1604 -0.9856 0.0532 +vn -0.1887 -0.9795 0.0707 +vn -0.1968 -0.9791 0.0505 +vn -0.1709 -0.9849 0.0282 +vn -0.2251 -0.9701 0.0910 +vn -0.2322 -0.9699 0.0736 +vn -0.2132 -0.9765 0.0333 +vn -0.2023 -0.9792 0.0131 +vn -0.2398 -0.9692 0.0564 +vn -0.2453 -0.9692 0.0196 +vn -0.2600 -0.9647 0.0408 +vn -0.2428 -0.9701 0.0011 +vn -0.1668 -0.9856 -0.0262 +vn -0.1692 -0.9856 -0.0000 +vn -0.2008 -0.9796 -0.0086 +vn -0.1989 -0.9795 -0.0311 +vn -0.2412 -0.9703 -0.0179 +vn -0.2388 -0.9703 -0.0377 +vn -0.1601 -0.9858 -0.0504 +vn -0.1930 -0.9798 -0.0528 +vn -0.1879 -0.9794 -0.0740 +vn -0.1540 -0.9851 -0.0763 +vn -0.2345 -0.9704 -0.0574 +vn -0.2297 -0.9703 -0.0760 +vn -0.1912 -0.9767 -0.0973 +vn -0.1708 -0.9794 -0.1075 +vn -0.2255 -0.9697 -0.0938 +vn -0.2081 -0.9698 -0.1273 +vn -0.2322 -0.9655 -0.1183 +vn -0.1959 -0.9705 -0.1405 +vn -0.1186 -0.9860 -0.1175 +vn -0.1365 -0.9859 -0.0968 +vn -0.1565 -0.9798 -0.1242 +vn -0.1419 -0.9798 -0.1412 +vn -0.1832 -0.9707 -0.1552 +vn -0.1698 -0.9707 -0.1701 +vn -0.0975 -0.9865 -0.1319 +vn -0.1238 -0.9801 -0.1551 +vn -0.1071 -0.9797 -0.1694 +vn -0.0764 -0.9859 -0.1487 +vn -0.1548 -0.9708 -0.1831 +vn -0.1396 -0.9707 -0.1956 +vn -0.0963 -0.9770 -0.1905 +vn -0.0733 -0.9798 -0.1861 +vn -0.1257 -0.9703 -0.2069 +vn -0.0922 -0.9703 -0.2237 +vn -0.1165 -0.9661 -0.2303 +vn -0.0747 -0.9709 -0.2276 +vn -0.0495 -0.9868 -0.1540 +vn -0.0522 -0.9804 -0.1901 +vn -0.0560 -0.9711 -0.2319 +vn -0.0613 -0.9914 -0.1155 +vn -0.0795 -0.9911 -0.1071 +vn -0.0491 -0.9950 -0.0871 +vn -0.0695 -0.9945 -0.0780 +vn -0.0998 -0.9908 -0.0915 +vn -0.0873 -0.9939 -0.0677 +vn -0.0424 -0.9978 0.0503 +vn -0.0403 -0.9965 0.0729 +vn -0.0587 -0.9956 0.0728 +vn -0.0621 -0.9968 0.0508 +vn -0.0251 -0.9985 0.0491 +vn -0.0238 -0.9971 0.0721 +vn -0.0234 -0.9952 0.0954 +vn -0.0416 -0.9946 0.0951 +vn -0.0631 -0.9935 0.0942 +vn -0.0112 -0.9987 0.0496 +vn -0.0074 -0.9975 0.0700 +vn -0.0042 -0.9953 0.0965 +vn -0.0692 -0.9975 0.0127 +vn -0.0900 -0.9958 0.0152 +vn -0.0918 -0.9958 -0.0020 +vn -0.0728 -0.9973 -0.0062 +vn -0.1112 -0.9936 0.0213 +vn -0.1132 -0.9936 -0.0003 +vn -0.1157 -0.9930 -0.0216 +vn -0.0962 -0.9951 -0.0210 +vn -0.0733 -0.9969 -0.0298 +vn -0.0589 -0.9977 -0.0348 +vn -0.0536 -0.9985 -0.0100 +vn -0.0418 -0.9984 -0.0388 +vn -0.0361 -0.9993 -0.0121 +vn -0.0354 -0.9993 0.0103 +vn -0.0498 -0.9987 0.0124 +vn -0.0253 -0.9988 -0.0431 +vn -0.0245 -0.9996 -0.0163 +vn -0.0229 -0.9997 0.0082 +vn -0.1411 -0.9900 0.0020 +vn -0.1388 -0.9901 -0.0229 +vn -0.1386 -0.9900 0.0250 +vn -0.1059 -0.9929 0.0540 +vn -0.0998 -0.9925 0.0699 +vn -0.1199 -0.9894 0.0820 +vn -0.1285 -0.9897 0.0634 +vn -0.0920 -0.9919 0.0879 +vn -0.1060 -0.9893 0.1004 +vn -0.1337 -0.9901 0.0435 +vn -0.1109 -0.9932 0.0357 +vn -0.0865 -0.9957 0.0331 +vn -0.0643 -0.9974 0.0327 +vn -0.0817 -0.9953 0.0512 +vn -0.0454 -0.9985 0.0305 +vn -0.0309 -0.9991 0.0300 +vn -0.0177 -0.9994 0.0309 +vn -0.0885 -0.9898 0.1119 +vn -0.0787 -0.9928 0.0900 +vn -0.0693 -0.9901 0.1218 +vn -0.0617 -0.9966 -0.0540 +vn -0.0786 -0.9956 -0.0507 +vn -0.0434 -0.9971 -0.0617 +vn -0.0336 -0.9952 -0.0916 +vn -0.0289 -0.9973 -0.0673 +vn -0.0785 -0.9945 0.0697 +vn -0.1157 -0.9919 -0.0532 +vn -0.1003 -0.9930 -0.0622 +vn -0.0963 -0.9944 -0.0431 +vn -0.1165 -0.9925 -0.0365 +vn -0.1294 -0.9897 -0.0617 +vn -0.1344 -0.9900 -0.0430 +vn -0.0493 -0.9906 0.1275 +vn -0.0258 -0.9911 0.1306 +vn -0.0023 -0.9914 0.1307 +vn -0.0424 -0.9917 -0.1210 +vn -0.1166 -0.9903 -0.0752 +vn -0.0493 -0.9541 0.2956 +vn -0.0239 -0.9550 0.2956 +vn -0.0012 -0.9557 0.2943 +vn -0.0952 -0.9557 0.2786 +vn -0.0744 -0.9550 0.2870 +vn -0.1354 -0.9558 0.2610 +vn -0.1159 -0.9558 0.2701 +vn -0.1726 -0.9557 0.2383 +vn -0.1541 -0.9558 0.2503 +vn -0.2122 -0.9542 0.2110 +vn -0.1919 -0.9550 0.2261 +vn -0.2394 -0.9559 0.1703 +vn -0.2275 -0.9551 0.1898 +vn -0.2618 -0.9560 0.1325 +vn -0.2510 -0.9560 0.1517 +vn -0.2783 -0.9561 0.0922 +vn -0.2704 -0.9561 0.1127 +vn -0.2944 -0.9545 0.0467 +vn -0.2866 -0.9554 0.0713 +vn -0.2923 -0.9563 -0.0020 +vn -0.2939 -0.9556 0.0201 +vn -0.2880 -0.9565 -0.0456 +vn -0.2908 -0.9565 -0.0242 +vn -0.2778 -0.9566 -0.0881 +vn -0.2835 -0.9566 -0.0670 +vn -0.2643 -0.9550 -0.1345 +vn -0.2723 -0.9559 -0.1098 +vn -0.2338 -0.9569 -0.1724 +vn -0.2483 -0.9561 -0.1555 +vn -0.2047 -0.9571 -0.2052 +vn -0.2195 -0.9570 -0.1896 +vn -0.1714 -0.9571 -0.2337 +vn -0.1889 -0.9571 -0.2198 +vn -0.1335 -0.9554 -0.2636 +vn -0.1543 -0.9564 -0.2481 +vn -0.0865 -0.9573 -0.2759 +vn -0.1081 -0.9565 -0.2709 +vn -0.0435 -0.9574 -0.2855 +vn -0.0649 -0.9574 -0.2813 +vn 0.0002 -0.9574 -0.2888 +vn -0.0221 -0.9574 -0.2878 +vn 0.0482 -0.9555 -0.2910 +vn 0.0226 -0.9566 -0.2905 +vn 0.0936 -0.9574 -0.2731 +vn 0.0732 -0.9567 -0.2818 +vn 0.1341 -0.9574 -0.2556 +vn 0.1144 -0.9575 -0.2648 +vn 0.1713 -0.9574 -0.2326 +vn 0.1526 -0.9575 -0.2449 +vn 0.2115 -0.9554 -0.2061 +vn 0.1904 -0.9566 -0.2208 +vn 0.2377 -0.9572 -0.1650 +vn 0.2262 -0.9565 -0.1842 +vn 0.2601 -0.9572 -0.1271 +vn 0.2496 -0.9573 -0.1461 +vn 0.2767 -0.9570 -0.0867 +vn 0.2688 -0.9572 -0.1075 +vn 0.2935 -0.9551 -0.0415 +vn 0.2852 -0.9562 -0.0658 +vn 0.2907 -0.9568 0.0072 +vn 0.2926 -0.9561 -0.0151 +vn 0.2866 -0.9567 0.0508 +vn 0.2892 -0.9568 0.0294 +vn 0.2763 -0.9565 0.0933 +vn 0.2821 -0.9567 0.0719 +vn 0.2630 -0.9546 0.1397 +vn 0.2708 -0.9557 0.1151 +vn 0.2322 -0.9563 0.1778 +vn 0.2473 -0.9555 0.1605 +vn 0.2037 -0.9561 0.2105 +vn 0.2179 -0.9563 0.1949 +vn 0.1702 -0.9560 0.2388 +vn 0.1874 -0.9562 0.2249 +vn 0.1321 -0.9543 0.2682 +vn 0.1527 -0.9553 0.2532 +vn 0.0851 -0.9558 0.2813 +vn 0.1068 -0.9552 0.2760 +vn 0.0422 -0.9558 0.2908 +vn 0.0631 -0.9559 0.2867 +vn 0.0209 -0.9558 0.2931 +vn 0.9585 -0.0567 -0.2794 +vn 0.9820 -0.0510 -0.1817 +vn 0.9829 -0.0507 -0.1769 +vn 0.9790 -0.1017 -0.1765 +vn 0.9799 -0.1011 -0.1717 +vn 0.9552 -0.1131 -0.2737 +vn 0.9496 -0.1688 -0.2641 +vn 0.9741 -0.1518 -0.1679 +vn 0.9750 -0.1509 -0.1631 +vn 0.9671 -0.2009 -0.1559 +vn 0.9681 -0.1997 -0.1512 +vn 0.9419 -0.2235 -0.2507 +vn 0.9321 -0.2768 -0.2337 +vn 0.9583 -0.2488 -0.1406 +vn 0.9593 -0.2473 -0.1360 +vn 0.9476 -0.2951 -0.1221 +vn 0.9487 -0.2934 -0.1176 +vn 0.9202 -0.3283 -0.2131 +vn 0.9063 -0.3779 -0.1891 +vn 0.9352 -0.3397 -0.1005 +vn 0.9363 -0.3377 -0.0961 +vn 0.9210 -0.3821 -0.0759 +vn 0.9222 -0.3799 -0.0717 +vn 0.8906 -0.4251 -0.1617 +vn 0.8730 -0.4697 -0.1313 +vn 0.9052 -0.4222 -0.0485 +vn 0.9065 -0.4198 -0.0444 +vn 0.8879 -0.4597 -0.0185 +vn 0.8893 -0.4570 -0.0146 +vn 0.8538 -0.5114 -0.0979 +vn 0.8329 -0.5499 -0.0618 +vn 0.8692 -0.4943 0.0140 +vn 0.8707 -0.4915 0.0177 +vn 0.8491 -0.5259 0.0487 +vn 0.8508 -0.5229 0.0522 +vn 0.8106 -0.5851 -0.0231 +vn 0.7870 -0.6166 0.0178 +vn 0.8279 -0.5543 0.0855 +vn 0.8297 -0.5511 0.0887 +vn 0.8057 -0.5792 0.1240 +vn 0.8076 -0.5759 0.1271 +vn 0.7623 -0.6444 0.0607 +vn 0.7365 -0.6682 0.1054 +vn 0.7825 -0.6006 0.1642 +vn 0.7845 -0.5971 0.1670 +vn 0.7586 -0.6183 0.2057 +vn 0.7608 -0.6147 0.2083 +vn 0.7099 -0.6878 0.1515 +vn 0.6826 -0.7032 0.1988 +vn 0.7340 -0.6321 0.2482 +vn 0.7364 -0.6285 0.2506 +vn 0.7090 -0.6421 0.2916 +vn 0.7115 -0.6384 0.2937 +vn 0.6548 -0.7143 0.2471 +vn 0.6266 -0.7210 0.2959 +vn 0.6837 -0.6481 0.3355 +vn 0.6863 -0.6443 0.3374 +vn 0.6582 -0.6501 0.3797 +vn 0.6610 -0.6463 0.3813 +vn 0.5982 -0.7232 0.3451 +vn 0.5699 -0.7210 0.3942 +vn 0.6327 -0.6481 0.4239 +vn 0.6356 -0.6443 0.4252 +vn 0.6074 -0.6421 0.4678 +vn 0.6104 -0.6384 0.4689 +vn 0.5417 -0.7143 0.4431 +vn 0.5139 -0.7032 0.4913 +vn 0.5824 -0.6321 0.5111 +vn 0.5856 -0.6285 0.5120 +vn 0.5578 -0.6183 0.5537 +vn 0.5612 -0.6147 0.5543 +vn 0.4865 -0.6878 0.5387 +vn 0.4599 -0.6682 0.5848 +vn 0.5339 -0.6006 0.5952 +vn 0.5374 -0.5971 0.5955 +vn 0.5107 -0.5792 0.6353 +vn 0.5143 -0.5759 0.6355 +vn 0.4342 -0.6444 0.6295 +vn 0.4094 -0.6167 0.6724 +vn 0.4884 -0.5543 0.6739 +vn 0.4922 -0.5511 0.6738 +vn 0.4672 -0.5259 0.7107 +vn 0.4711 -0.5229 0.7104 +vn 0.3858 -0.5851 0.7133 +vn 0.3635 -0.5499 0.7519 +vn 0.4472 -0.4943 0.7454 +vn 0.4512 -0.4915 0.7449 +vn 0.4285 -0.4597 0.7779 +vn 0.4326 -0.4570 0.7772 +vn 0.3427 -0.5114 0.7881 +vn 0.3234 -0.4697 0.8215 +vn 0.4112 -0.4222 0.8079 +vn 0.4154 -0.4198 0.8070 +vn 0.3954 -0.3821 0.8353 +vn 0.3997 -0.3799 0.8342 +vn 0.3059 -0.4251 0.8519 +vn 0.2901 -0.3779 0.8792 +vn 0.3812 -0.3397 0.8598 +vn 0.3856 -0.3377 0.8586 +vn 0.3688 -0.2951 0.8814 +vn 0.3732 -0.2934 0.8801 +vn 0.2762 -0.3283 0.9033 +vn 0.2643 -0.2768 0.9239 +vn 0.3581 -0.2488 0.8999 +vn 0.3626 -0.2473 0.8985 +vn 0.3492 -0.2009 0.9152 +vn 0.3538 -0.1997 0.9137 +vn 0.2545 -0.2235 0.9409 +vn 0.2468 -0.1688 0.9542 +vn 0.3423 -0.1518 0.9272 +vn 0.3469 -0.1509 0.9257 +vn 0.3373 -0.1017 0.9359 +vn 0.3420 -0.1011 0.9343 +vn 0.2413 -0.1131 0.9638 +vn 0.2379 -0.0567 0.9696 +vn 0.3343 -0.0510 0.9411 +vn 0.3390 -0.0507 0.9394 +vn 0.6953 0.0215 0.7184 +vn 0.5445 0.0365 0.8380 +vn 0.4502 0.0449 0.8918 +vn 0.5435 0.0722 0.8363 +vn 0.4533 0.0855 0.8872 +vn 0.6943 0.0437 0.7184 +vn 0.6967 0.0650 0.7145 +vn 0.5490 0.1060 0.8291 +vn 0.4587 0.1266 0.8795 +vn 0.5555 0.1402 0.8196 +vn 0.4652 0.1687 0.8690 +vn 0.7002 0.0858 0.7088 +vn 0.7045 0.1060 0.7017 +vn 0.5618 0.1739 0.8088 +vn 0.4739 0.2076 0.8558 +vn 0.5722 0.2040 0.7943 +vn 0.4852 0.2451 0.8394 +vn 0.7093 0.1255 0.6936 +vn 0.7147 0.1443 0.6844 +vn 0.5821 0.2346 0.7785 +vn 0.4961 0.2829 0.8209 +vn 0.5931 0.2629 0.7610 +vn 0.5100 0.3158 0.8001 +vn 0.7210 0.1622 0.6737 +vn 0.7279 0.1790 0.6620 +vn 0.6058 0.2890 0.7412 +vn 0.5259 0.3476 0.7763 +vn 0.6185 0.3143 0.7202 +vn 0.5415 0.3783 0.7508 +vn 0.7352 0.1951 0.6492 +vn 0.7435 0.2094 0.6351 +vn 0.6322 0.3373 0.6975 +vn 0.5582 0.4057 0.7237 +vn 0.6468 0.3579 0.6735 +vn 0.5762 0.4303 0.6949 +vn 0.7521 0.2225 0.6203 +vn 0.7611 0.2343 0.6048 +vn 0.6617 0.3767 0.6483 +vn 0.5949 0.4527 0.6642 +vn 0.6769 0.3937 0.6219 +vn 0.6136 0.4729 0.6323 +vn 0.7706 0.2448 0.5885 +vn 0.7804 0.2538 0.5715 +vn 0.6925 0.4085 0.5947 +vn 0.6332 0.4891 0.5999 +vn 0.7092 0.4193 0.5667 +vn 0.6538 0.5010 0.5671 +vn 0.7905 0.2613 0.5540 +vn 0.8009 0.2667 0.5361 +vn 0.7274 0.4253 0.5385 +vn 0.6750 0.5091 0.5340 +vn 0.7466 0.4266 0.5105 +vn 0.6971 0.5136 0.5002 +vn 0.8117 0.2699 0.5180 +vn 0.8227 0.2708 0.4998 +vn 0.7654 0.4267 0.4818 +vn 0.7190 0.5165 0.4651 +vn 0.7839 0.4231 0.4544 +vn 0.7401 0.5161 0.4311 +vn 0.8338 0.2697 0.4817 +vn 0.8446 0.2640 0.4657 +vn 0.8015 0.4164 0.4292 +vn 0.7608 0.5133 0.3970 +vn 0.8193 0.4100 0.4009 +vn 0.7802 0.5125 0.3588 +vn 0.8566 0.2495 0.4517 +vn 0.8686 0.2420 0.4324 +vn 0.8385 0.3997 0.3704 +vn 0.8016 0.5033 0.3227 +vn 0.8551 0.3885 0.3434 +vn 0.8253 0.4850 0.2892 +vn 0.8780 0.2491 0.4088 +vn 0.8861 0.2510 0.3896 +vn 0.8674 0.3900 0.3090 +vn 0.8438 0.4745 0.2505 +vn 0.8798 0.3846 0.2793 +vn 0.8595 0.4604 0.2219 +vn 0.8953 0.2438 0.3729 +vn 0.9046 0.2338 0.3563 +vn 0.8938 0.3702 0.2532 +vn 0.8769 0.4404 0.1924 +vn 0.9077 0.3541 0.2252 +vn 0.8936 0.4193 0.1601 +vn 0.9136 0.2221 0.3406 +vn 0.9220 0.2089 0.3259 +vn 0.9207 0.3351 0.2001 +vn 0.9088 0.3956 0.1328 +vn 0.9332 0.3123 0.1781 +vn 0.9234 0.3683 0.1081 +vn 0.9299 0.1943 0.3122 +vn 0.9373 0.1784 0.2996 +vn 0.9449 0.2864 0.1583 +vn 0.9372 0.3382 0.0853 +vn 0.9556 0.2582 0.1419 +vn 0.9499 0.3059 0.0636 +vn 0.9439 0.1614 0.2880 +vn 0.9499 0.1434 0.2777 +vn 0.9653 0.2286 0.1266 +vn 0.9615 0.2715 0.0430 +vn 0.9737 0.1988 0.1108 +vn 0.9715 0.2359 0.0249 +vn 0.9552 0.1246 0.2686 +vn 0.9597 0.1050 0.2608 +vn 0.9809 0.1679 0.0983 +vn 0.9799 0.1991 0.0109 +vn 0.9868 0.1354 0.0884 +vn 0.9870 0.1606 -0.0019 +vn 0.9634 0.0848 0.2544 +vn 0.9663 0.0641 0.2492 +vn 0.9916 0.1022 0.0794 +vn 0.9926 0.1207 -0.0122 +vn 0.9952 0.0685 0.0704 +vn 0.9966 0.0803 -0.0207 +vn 0.9685 0.0430 0.2454 +vn 0.9698 0.0216 0.2431 +vn 0.9973 0.0345 0.0653 +vn 0.9988 0.0403 -0.0265 +vn 0.3778 0.0482 0.9246 +vn 0.3209 0.0523 0.9457 +vn 0.2568 0.0563 0.9648 +vn 0.3236 0.1019 0.9407 +vn 0.2596 0.1103 0.9594 +vn 0.3808 0.0951 0.9198 +vn 0.3863 0.1411 0.9115 +vn 0.3289 0.1525 0.9320 +vn 0.2646 0.1635 0.9504 +vn 0.3364 0.2030 0.9196 +vn 0.2721 0.2181 0.9372 +vn 0.3923 0.1883 0.9003 +vn 0.4004 0.2333 0.8862 +vn 0.3452 0.2514 0.9043 +vn 0.2818 0.2706 0.9205 +vn 0.3556 0.2979 0.8859 +vn 0.2936 0.3192 0.9010 +vn 0.4108 0.2765 0.8688 +vn 0.4230 0.3188 0.8482 +vn 0.3694 0.3427 0.8638 +vn 0.3074 0.3690 0.8771 +vn 0.3833 0.3859 0.8391 +vn 0.3228 0.4153 0.8504 +vn 0.4353 0.3582 0.8259 +vn 0.4502 0.3960 0.8003 +vn 0.3991 0.4264 0.8117 +vn 0.3399 0.4586 0.8210 +vn 0.4170 0.4650 0.7809 +vn 0.3592 0.4983 0.7891 +vn 0.4669 0.4322 0.7715 +vn 0.4845 0.4641 0.7416 +vn 0.4363 0.4985 0.7491 +vn 0.3791 0.5366 0.7539 +vn 0.4041 0.5684 0.7167 +vn 0.4579 0.5294 0.7142 +vn 0.5038 0.4929 0.7094 +vn 0.5253 0.5185 0.6747 +vn 0.4842 0.5543 0.6770 +vn 0.4371 0.5905 0.6784 +vn 0.4759 0.6057 0.6377 +vn 0.5124 0.5737 0.6390 +vn 0.5486 0.5396 0.6386 +vn 0.5734 0.5569 0.6010 +vn 0.5419 0.5887 0.5998 +vn 0.5133 0.6164 0.5971 +vn 0.5506 0.6219 0.5569 +vn 0.5725 0.5993 0.5596 +vn 0.5971 0.5715 0.5629 +vn 0.6228 0.5817 0.5233 +vn 0.6009 0.6076 0.5194 +vn 0.5856 0.6246 0.5167 +vn 0.6176 0.6276 0.4741 +vn 0.6294 0.6129 0.4777 +vn 0.6471 0.5897 0.4832 +vn 0.6707 0.5949 0.4430 +vn 0.6564 0.6154 0.4365 +vn 0.6444 0.6313 0.4315 +vn 0.6705 0.6319 0.3887 +vn 0.6809 0.6169 0.3948 +vn 0.6940 0.5965 0.4031 +vn 0.7171 0.5958 0.3617 +vn 0.7041 0.6167 0.3521 +vn 0.6946 0.6314 0.3447 +vn 0.7258 0.6152 0.3076 +vn 0.7162 0.6311 0.2980 +vn 0.7405 0.5904 0.3210 +vn 0.7634 0.5824 0.2792 +vn 0.7479 0.6100 0.2618 +vn 0.7362 0.6293 0.2491 +vn 0.7692 0.6007 0.2182 +vn 0.7547 0.6247 0.2005 +vn 0.7851 0.5719 0.2378 +vn 0.8059 0.5572 0.1999 +vn 0.7891 0.5894 0.1730 +vn 0.7720 0.6180 0.1487 +vn 0.8092 0.5736 0.1269 +vn 0.7897 0.6058 0.0966 +vn 0.8269 0.5397 0.1580 +vn 0.8467 0.5184 0.1201 +vn 0.8283 0.5540 0.0836 +vn 0.8062 0.5901 0.0434 +vn 0.8471 0.5298 0.0420 +vn 0.8229 0.5682 -0.0047 +vn 0.8656 0.4935 0.0853 +vn 0.8840 0.4645 0.0518 +vn 0.8661 0.4999 0.0058 +vn 0.8422 0.5372 -0.0459 +vn 0.8844 0.4659 -0.0262 +vn 0.8620 0.5006 -0.0803 +vn 0.9014 0.4324 0.0217 +vn 0.9181 0.3964 -0.0066 +vn 0.9023 0.4272 -0.0577 +vn 0.8808 0.4594 -0.1143 +vn 0.9186 0.3858 -0.0859 +vn 0.8980 0.4158 -0.1440 +vn 0.9332 0.3579 -0.0333 +vn 0.9461 0.3188 -0.0562 +vn 0.9328 0.3431 -0.1107 +vn 0.9137 0.3688 -0.1707 +vn 0.9450 0.2990 -0.1326 +vn 0.9271 0.3206 -0.1941 +vn 0.9577 0.2775 -0.0767 +vn 0.9678 0.2335 -0.0940 +vn 0.9559 0.2516 -0.1516 +vn 0.9384 0.2709 -0.2144 +vn 0.9649 0.2026 -0.1669 +vn 0.9481 0.2186 -0.2308 +vn 0.9761 0.1880 -0.1090 +vn 0.9824 0.1434 -0.1197 +vn 0.9717 0.1545 -0.1785 +vn 0.9555 0.1646 -0.2448 +vn 0.9767 0.1022 -0.1887 +vn 0.9609 0.1105 -0.2540 +vn 0.9873 0.0951 -0.1275 +vn 0.9901 0.0478 -0.1323 +vn 0.9798 0.0522 -0.1931 +vn 0.9641 0.0561 -0.2594 +vn 0.1843 0.0599 0.9810 +vn 0.1073 0.0633 0.9922 +vn 0.1881 0.1185 0.9750 +vn 0.1114 0.1255 0.9858 +vn 0.1934 0.1765 0.9651 +vn 0.1174 0.1873 0.9753 +vn 0.2016 0.2332 0.9513 +vn 0.1257 0.2484 0.9605 +vn 0.2124 0.2882 0.9337 +vn 0.1368 0.3074 0.9417 +vn 0.2243 0.3425 0.9123 +vn 0.1498 0.3648 0.9190 +vn 0.2389 0.3952 0.8870 +vn 0.1656 0.4199 0.8924 +vn 0.2558 0.4443 0.8586 +vn 0.1838 0.4717 0.8624 +vn 0.2740 0.4904 0.8273 +vn 0.2026 0.5187 0.8306 +vn 0.2225 0.5640 0.7953 +vn 0.2938 0.5342 0.7927 +vn 0.3124 0.5765 0.7550 +vn 0.2426 0.6071 0.7567 +vn 0.2691 0.6396 0.7201 +vn 0.3397 0.6066 0.7188 +vn 0.7922 0.6075 -0.0577 +vn 0.8108 0.5765 -0.1012 +vn 0.7528 0.6479 -0.1161 +vn 0.7767 0.6088 -0.1617 +vn 0.8332 0.5353 -0.1391 +vn 0.7994 0.5662 -0.2009 +vn 0.8532 0.4913 -0.1750 +vn 0.8199 0.5212 -0.2370 +vn 0.8712 0.4458 -0.2057 +vn 0.8384 0.4730 -0.2708 +vn 0.8878 0.3959 -0.2346 +vn 0.8555 0.4207 -0.3019 +vn 0.9025 0.3430 -0.2605 +vn 0.8710 0.3662 -0.3275 +vn 0.9148 0.2897 -0.2814 +vn 0.8842 0.3081 -0.3510 +vn 0.9250 0.2338 -0.2995 +vn 0.8952 0.2485 -0.3700 +vn 0.9330 0.1762 -0.3138 +vn 0.9037 0.1883 -0.3846 +vn 0.9390 0.1187 -0.3229 +vn 0.9097 0.1262 -0.3956 +vn 0.9424 0.0601 -0.3291 +vn 0.9133 0.0630 -0.4023 +vn 0.0287 0.0669 0.9973 +vn -0.0493 0.0701 0.9963 +vn 0.0323 0.1331 0.9906 +vn -0.0451 0.1386 0.9893 +vn 0.0387 0.1981 0.9794 +vn -0.0376 0.2056 0.9779 +vn 0.0486 0.2610 0.9641 +vn -0.0287 0.2730 0.9616 +vn 0.0603 0.3240 0.9441 +vn -0.0167 0.3386 0.9408 +vn 0.0742 0.3848 0.9200 +vn -0.0022 0.4025 0.9154 +vn 0.0901 0.4416 0.8927 +vn 0.0148 0.4617 0.8869 +vn 0.0319 0.5132 0.8577 +vn 0.1088 0.4944 0.8624 +vn 0.1277 0.5413 0.8311 +vn 0.0494 0.5586 0.8280 +vn 0.0663 0.5961 0.8002 +vn 0.1456 0.5836 0.7989 +vn 0.7632 0.5880 -0.2677 +vn 0.7820 0.5452 -0.3019 +vn 0.7234 0.6029 -0.3365 +vn 0.7404 0.5640 -0.3656 +vn 0.8003 0.4969 -0.3354 +vn 0.7580 0.5176 -0.3969 +vn 0.8180 0.4436 -0.3663 +vn 0.7758 0.4630 -0.4288 +vn 0.8340 0.3857 -0.3946 +vn 0.7921 0.4028 -0.4585 +vn 0.8478 0.3250 -0.4190 +vn 0.8065 0.3397 -0.4838 +vn 0.8594 0.2623 -0.4389 +vn 0.8185 0.2737 -0.5051 +vn 0.8682 0.1978 -0.4551 +vn 0.8282 0.2071 -0.5208 +vn 0.8746 0.1330 -0.4662 +vn 0.8346 0.1388 -0.5330 +vn 0.8786 0.0670 -0.4729 +vn 0.8386 0.0703 -0.5402 +vn -0.1273 0.0727 0.9892 +vn -0.2047 0.0749 0.9760 +vn -0.1229 0.1433 0.9820 +vn -0.1998 0.1471 0.9687 +vn -0.1159 0.2139 0.9699 +vn -0.1929 0.2206 0.9561 +vn -0.1066 0.2839 0.9529 +vn -0.1829 0.2920 0.9388 +vn -0.0939 0.3512 0.9316 +vn -0.1700 0.3616 0.9167 +vn -0.0787 0.4166 0.9057 +vn -0.1546 0.4288 0.8901 +vn -0.0608 0.4778 0.8763 +vn -0.1368 0.4921 0.8597 +vn -0.1204 0.5440 0.8304 +vn -0.0436 0.5309 0.8463 +vn -0.0279 0.5725 0.8194 +vn -0.1056 0.5834 0.8053 +vn -0.0932 0.6108 0.7863 +vn -0.0140 0.6034 0.7973 +vn 0.6789 0.6138 -0.4029 +vn 0.6939 0.5783 -0.4290 +vn 0.6302 0.6199 -0.4676 +vn 0.6427 0.5894 -0.4894 +vn 0.7102 0.5347 -0.4579 +vn 0.6582 0.5474 -0.5168 +vn 0.7279 0.4794 -0.4903 +vn 0.6759 0.4936 -0.5474 +vn 0.7451 0.4177 -0.5200 +vn 0.6934 0.4303 -0.5780 +vn 0.7599 0.3523 -0.5463 +vn 0.7090 0.3624 -0.6050 +vn 0.7724 0.2846 -0.5678 +vn 0.7215 0.2931 -0.6274 +vn 0.7824 0.2146 -0.5846 +vn 0.7315 0.2213 -0.6449 +vn 0.7893 0.1435 -0.5969 +vn 0.7390 0.1476 -0.6573 +vn 0.7933 0.0729 -0.6044 +vn 0.7432 0.0746 -0.6650 +vn -0.2806 0.0761 0.9568 +vn -0.3550 0.0771 0.9317 +vn -0.2761 0.1509 0.9492 +vn -0.3504 0.1534 0.9239 +vn -0.2693 0.2263 0.9361 +vn -0.3427 0.2293 0.9110 +vn -0.2587 0.2984 0.9187 +vn -0.3319 0.3027 0.8935 +vn -0.2454 0.3696 0.8962 +vn -0.3190 0.3755 0.8702 +vn -0.2293 0.4384 0.8691 +vn -0.3031 0.4458 0.8423 +vn -0.2115 0.5030 0.8380 +vn -0.2855 0.5115 0.8105 +vn -0.1944 0.5560 0.8081 +vn -0.2682 0.5640 0.7810 +vn -0.1808 0.5935 0.7843 +vn -0.2547 0.5995 0.7588 +vn -0.2455 0.6220 0.7436 +vn -0.1707 0.6173 0.7680 +vn 0.5179 0.6308 -0.5779 +vn 0.5764 0.6256 -0.5258 +vn 0.5875 0.5985 -0.5447 +vn 0.5283 0.6040 -0.5967 +vn 0.6022 0.5584 -0.5706 +vn 0.5417 0.5653 -0.6221 +vn 0.6196 0.5043 -0.6015 +vn 0.5590 0.5123 -0.6519 +vn 0.6372 0.4402 -0.6326 +vn 0.5774 0.4475 -0.6829 +vn 0.6532 0.3705 -0.6604 +vn 0.5933 0.3771 -0.7112 +vn 0.6665 0.2993 -0.6828 +vn 0.6071 0.3044 -0.7340 +vn 0.6762 0.2260 -0.7011 +vn 0.6174 0.2297 -0.7524 +vn 0.6841 0.1516 -0.7135 +vn 0.6249 0.1538 -0.7654 +vn 0.6883 0.0764 -0.7214 +vn 0.6293 0.0774 -0.7733 +vn -0.4271 0.0778 0.9008 +vn -0.4968 0.0780 0.8643 +vn -0.4226 0.1548 0.8930 +vn -0.4924 0.1554 0.8564 +vn -0.4150 0.2312 0.8799 +vn -0.4849 0.2320 0.8432 +vn -0.4046 0.3061 0.8618 +vn -0.4745 0.3072 0.8249 +vn -0.3916 0.3797 0.8382 +vn -0.4610 0.3806 0.8017 +vn -0.3752 0.4501 0.8103 +vn -0.4446 0.4515 0.7736 +vn -0.3568 0.5162 0.7786 +vn -0.4262 0.5177 0.7419 +vn -0.3398 0.5682 0.7494 +vn -0.4093 0.5696 0.7128 +vn -0.3277 0.6021 0.7281 +vn -0.3967 0.6049 0.6905 +vn -0.3879 0.6281 0.6745 +vn -0.3179 0.6267 0.7115 +vn 0.3977 0.6087 -0.6865 +vn 0.3867 0.6359 -0.6679 +vn 0.4542 0.6340 -0.6259 +vn 0.4647 0.6071 -0.6446 +vn 0.4113 0.5715 -0.7100 +vn 0.4783 0.5695 -0.6685 +vn 0.4954 0.5175 -0.6977 +vn 0.4285 0.5194 -0.7393 +vn 0.5140 0.4517 -0.7292 +vn 0.4472 0.4529 -0.7713 +vn 0.5298 0.3804 -0.7581 +vn 0.4637 0.3817 -0.7996 +vn 0.5432 0.3071 -0.7814 +vn 0.4772 0.3081 -0.8231 +vn 0.5538 0.2320 -0.7997 +vn 0.4876 0.2327 -0.8415 +vn 0.5615 0.1554 -0.8127 +vn 0.4951 0.1559 -0.8547 +vn 0.5661 0.0780 -0.8206 +vn 0.4996 0.0782 -0.8627 +vn -0.5633 0.0779 0.8226 +vn -0.6264 0.0773 0.7756 +vn -0.5588 0.1550 0.8147 +vn -0.6221 0.1535 0.7678 +vn -0.5512 0.2314 0.8017 +vn -0.6145 0.2290 0.7549 +vn -0.5408 0.3064 0.7834 +vn -0.6043 0.3031 0.7369 +vn -0.5271 0.3795 0.7604 +vn -0.5907 0.3759 0.7140 +vn -0.5111 0.4502 0.7322 +vn -0.5745 0.4462 0.6861 +vn -0.4929 0.5161 0.7005 +vn -0.5565 0.5112 0.6549 +vn -0.4761 0.5682 0.6712 +vn -0.5394 0.5636 0.6256 +vn -0.4630 0.6045 0.6483 +vn -0.5260 0.6009 0.6019 +vn -0.4542 0.6269 0.6331 +vn -0.5170 0.6252 0.5847 +vn 0.2556 0.6036 -0.7552 +vn 0.2451 0.6300 -0.7369 +vn 0.3170 0.6344 -0.7050 +vn 0.3276 0.6077 -0.7234 +vn 0.2701 0.5660 -0.7789 +vn 0.3418 0.5700 -0.7472 +vn 0.3589 0.5183 -0.7763 +vn 0.2875 0.5134 -0.8086 +vn 0.3773 0.4516 -0.8085 +vn 0.3049 0.4468 -0.8411 +vn 0.3937 0.3809 -0.8366 +vn 0.3210 0.3769 -0.8688 +vn 0.4069 0.3070 -0.8603 +vn 0.3345 0.3043 -0.8919 +vn 0.4175 0.2320 -0.8786 +vn 0.3456 0.2304 -0.9097 +vn 0.4251 0.1554 -0.8917 +vn 0.3529 0.1539 -0.9229 +vn 0.4297 0.0780 -0.8996 +vn 0.3575 0.0774 -0.9307 +vn -0.6855 0.0763 0.7240 +vn -0.7405 0.0748 0.6679 +vn -0.6813 0.1512 0.7163 +vn -0.7363 0.1474 0.6604 +vn -0.6736 0.2258 0.7037 +vn -0.7290 0.2207 0.6480 +vn -0.6637 0.2985 0.6859 +vn -0.7189 0.2923 0.6306 +vn -0.6508 0.3698 0.6631 +vn -0.7064 0.3618 0.6083 +vn -0.6349 0.4392 0.6356 +vn -0.6912 0.4296 0.5811 +vn -0.6172 0.5034 0.6047 +vn -0.6735 0.4927 0.5510 +vn -0.6001 0.5567 0.5744 +vn -0.6563 0.5454 0.5214 +vn -0.5855 0.5959 0.5496 +vn -0.6412 0.5867 0.4946 +vn -0.5753 0.6223 0.5309 +vn -0.6291 0.6167 0.4732 +vn 0.1046 0.5905 -0.8002 +vn 0.0900 0.6241 -0.7762 +vn 0.1687 0.6275 -0.7601 +vn 0.1809 0.5981 -0.7807 +vn 0.1206 0.5482 -0.8276 +vn 0.1953 0.5594 -0.8056 +vn 0.2130 0.5047 -0.8366 +vn 0.1385 0.4941 -0.8583 +vn 0.2313 0.4398 -0.8678 +vn 0.1565 0.4309 -0.8887 +vn 0.2475 0.3712 -0.8950 +vn 0.1715 0.3628 -0.9160 +vn 0.2608 0.2997 -0.9177 +vn 0.1844 0.2929 -0.9382 +vn 0.2710 0.2266 -0.9355 +vn 0.1947 0.2216 -0.9555 +vn 0.2783 0.1514 -0.9485 +vn 0.2017 0.1477 -0.9682 +vn 0.2827 0.0764 -0.9562 +vn 0.2065 0.0749 -0.9756 +vn -0.7908 0.0729 0.6078 +vn -0.8362 0.0703 0.5438 +vn -0.7867 0.1433 0.6004 +vn -0.8322 0.1381 0.5371 +vn -0.7798 0.2141 0.5882 +vn -0.8258 0.2065 0.5248 +vn -0.7700 0.2839 0.5714 +vn -0.8165 0.2736 0.5084 +vn -0.7576 0.3517 0.5499 +vn -0.8045 0.3391 0.4876 +vn -0.7427 0.4169 0.5241 +vn -0.7902 0.4024 0.4622 +vn -0.7258 0.4787 0.4941 +vn -0.7740 0.4622 0.4328 +vn -0.7085 0.5329 0.4626 +vn -0.7565 0.5154 0.4026 +vn -0.6926 0.5754 0.4350 +vn -0.7391 0.5613 0.3723 +vn -0.6783 0.6097 0.4101 +vn -0.7222 0.6008 0.3427 +vn -0.0511 0.5655 -0.8232 +vn -0.0689 0.6059 -0.7925 +vn 0.0110 0.6169 -0.7869 +vn 0.0263 0.5805 -0.8138 +vn -0.0319 0.5175 -0.8551 +vn 0.0441 0.5347 -0.8439 +vn 0.0620 0.4801 -0.8750 +vn -0.0142 0.4636 -0.8859 +vn 0.0800 0.4183 -0.9048 +vn 0.0030 0.4039 -0.9148 +vn 0.0953 0.3526 -0.9309 +vn 0.0182 0.3406 -0.9400 +vn 0.1083 0.2854 -0.9523 +vn 0.0298 0.2743 -0.9612 +vn 0.1175 0.2150 -0.9695 +vn 0.0386 0.2064 -0.9777 +vn 0.1242 0.1437 -0.9818 +vn 0.0462 0.1391 -0.9892 +vn 0.1289 0.0729 -0.9890 +vn 0.0508 0.0706 -0.9962 +vn -0.8764 0.0671 0.4768 +vn -0.9115 0.0632 0.4065 +vn -0.8725 0.1328 0.4702 +vn -0.9078 0.1256 0.4002 +vn -0.8662 0.1979 0.4589 +vn -0.9018 0.1878 0.3892 +vn -0.8573 0.2620 0.4431 +vn -0.8933 0.2487 0.3743 +vn -0.8460 0.3246 0.4230 +vn -0.8825 0.3079 0.3554 +vn -0.8322 0.3853 0.3987 +vn -0.8693 0.3654 0.3327 +vn -0.8162 0.4430 0.3708 +vn -0.8541 0.4208 0.3058 +vn -0.7990 0.4957 0.3403 +vn -0.8372 0.4727 0.2751 +vn -0.7813 0.5433 0.3072 +vn -0.8191 0.5204 0.2414 +vn -0.7616 0.5872 0.2741 +vn -0.7984 0.5656 0.2064 +vn -0.1283 0.5465 -0.8276 +vn -0.1478 0.5897 -0.7939 +vn -0.2027 0.5221 -0.8285 +vn -0.2239 0.5665 -0.7930 +vn -0.1833 0.4741 -0.8612 +vn -0.1083 0.4979 -0.8605 +vn -0.0892 0.4437 -0.8917 +vn -0.1651 0.4220 -0.8914 +vn -0.0732 0.3864 -0.9194 +vn -0.1495 0.3663 -0.9184 +vn -0.0593 0.3255 -0.9437 +vn -0.1364 0.3086 -0.9414 +vn -0.0478 0.2621 -0.9639 +vn -0.1253 0.2491 -0.9603 +vn -0.0380 0.1989 -0.9793 +vn -0.1169 0.1882 -0.9752 +vn -0.0313 0.1338 -0.9905 +vn -0.1107 0.1262 -0.9858 +vn -0.0279 0.0672 -0.9973 +vn -0.1067 0.0636 -0.9923 +vn -0.9411 0.0602 0.3328 +vn -0.9644 0.0561 0.2585 +vn -0.9377 0.1188 0.3264 +vn -0.9611 0.1097 0.2533 +vn -0.9319 0.1762 0.3170 +vn -0.9559 0.1637 0.2440 +vn -0.9238 0.2335 0.3034 +vn -0.9484 0.2175 0.2307 +vn -0.9138 0.2893 0.2852 +vn -0.9389 0.2695 0.2142 +vn -0.9016 0.3428 0.2639 +vn -0.9277 0.3187 0.1943 +vn -0.8869 0.3955 0.2386 +vn -0.9143 0.3673 0.1709 +vn -0.8704 0.4453 0.2100 +vn -0.8988 0.4140 0.1437 +vn -0.8526 0.4911 0.1786 +vn -0.8821 0.4569 0.1144 +vn -0.8635 0.4977 0.0815 +vn -0.8326 0.5351 0.1434 +vn -0.7744 0.6097 0.1689 +vn -0.8091 0.5777 0.1074 +vn -0.8433 0.5353 0.0468 +vn -0.7904 0.6092 0.0649 +vn -0.8244 0.5659 0.0068 +vn -0.7532 0.6458 0.1253 +vn -0.2758 0.6534 -0.7050 +vn -0.2481 0.6096 -0.7529 +vn -0.3200 0.5758 -0.7524 +vn -0.3498 0.6053 -0.7151 +vn -0.3875 0.5330 -0.7522 +vn -0.4167 0.5614 -0.7150 +vn -0.3644 0.4980 -0.7869 +vn -0.2962 0.5355 -0.7909 +vn -0.2743 0.4922 -0.8261 +vn -0.3447 0.4578 -0.8195 +vn -0.2563 0.4464 -0.8573 +vn -0.3279 0.4151 -0.8487 +vn -0.2397 0.3964 -0.8862 +vn -0.3125 0.3683 -0.8756 +vn -0.2252 0.3435 -0.9117 +vn -0.2988 0.3187 -0.8995 +vn -0.2130 0.2897 -0.9331 +vn -0.2866 0.2709 -0.9190 +vn -0.2023 0.2341 -0.9509 +vn -0.2772 0.2177 -0.9358 +vn -0.1941 0.1773 -0.9648 +vn -0.2701 0.1635 -0.9488 +vn -0.1884 0.1194 -0.9748 +vn -0.2645 0.1104 -0.9580 +vn -0.1850 0.0600 -0.9809 +vn -0.2614 0.0562 -0.9636 +vn -0.9818 0.0521 0.1827 +vn -0.9929 0.0467 0.1092 +vn -0.9788 0.1007 0.1781 +vn -0.9903 0.0912 0.1049 +vn -0.9740 0.1507 0.1693 +vn -0.9857 0.1376 0.0969 +vn -0.9672 0.1996 0.1572 +vn -0.9796 0.1822 0.0853 +vn -0.9584 0.2477 0.1418 +vn -0.9717 0.2251 0.0714 +vn -0.9480 0.2933 0.1235 +vn -0.9623 0.2662 0.0553 +vn -0.9356 0.3382 0.1014 +vn -0.9509 0.3074 0.0356 +vn -0.9216 0.3806 0.0768 +vn -0.9377 0.3471 0.0127 +vn -0.9064 0.4195 0.0500 +vn -0.9240 0.3822 -0.0119 +vn -0.8890 0.4575 0.0195 +vn -0.9085 0.4161 -0.0392 +vn -0.8706 0.4918 -0.0125 +vn -0.8918 0.4474 -0.0680 +vn -0.8523 0.5209 -0.0479 +vn -0.8742 0.4751 -0.0998 +vn -0.8090 0.5862 -0.0433 +vn -0.8345 0.5437 -0.0895 +vn -0.8558 0.4991 -0.1359 +vn -0.8166 0.5615 -0.1337 +vn -0.8373 0.5188 -0.1728 +vn -0.7940 0.6002 -0.0968 +vn -0.7457 0.6401 -0.1851 +vn -0.7354 0.6564 -0.1686 +vn -0.7199 0.6558 -0.2271 +vn -0.7277 0.6434 -0.2374 +vn -0.7589 0.6190 -0.2022 +vn -0.7401 0.6239 -0.2512 +vn -0.7081 0.6448 -0.2878 +vn -0.7193 0.6280 -0.2970 +vn -0.6998 0.6571 -0.2800 +vn -0.6760 0.6598 -0.3282 +vn -0.6865 0.6454 -0.3349 +vn -0.6978 0.6289 -0.3429 +vn -0.6634 0.6441 -0.3808 +vn -0.6749 0.6279 -0.3877 +vn -0.6505 0.6615 -0.3733 +vn -0.6234 0.6607 -0.4181 +vn -0.6373 0.6432 -0.4245 +vn -0.6504 0.6259 -0.4305 +vn -0.6231 0.6228 -0.4731 +vn -0.6063 0.6428 -0.4682 +vn -0.5908 0.6602 -0.4638 +vn -0.5540 0.6588 -0.5090 +vn -0.5706 0.6423 -0.5117 +vn -0.5911 0.6207 -0.5151 +vn -0.5568 0.6161 -0.5572 +vn -0.5325 0.6402 -0.5537 +vn -0.5101 0.6609 -0.5505 +vn -0.4874 0.5963 -0.6379 +vn -0.4523 0.5820 -0.6758 +vn -0.5013 0.5408 -0.6754 +vn -0.5295 0.5596 -0.6376 +vn -0.5496 0.4982 -0.6706 +vn -0.5724 0.5181 -0.6356 +vn -0.5279 0.4745 -0.7044 +vn -0.4758 0.5177 -0.7110 +vn -0.4524 0.4900 -0.7451 +vn -0.5090 0.4473 -0.7354 +vn -0.4913 0.4163 -0.7650 +vn -0.4309 0.4576 -0.7778 +vn -0.4126 0.4203 -0.8081 +vn -0.4753 0.3823 -0.7924 +vn -0.3971 0.3812 -0.8349 +vn -0.4610 0.3469 -0.8168 +vn -0.3829 0.3381 -0.8597 +vn -0.4479 0.3085 -0.8392 +vn -0.3696 0.2944 -0.8813 +vn -0.4365 0.2669 -0.8592 +vn -0.3596 0.2478 -0.8996 +vn -0.4272 0.2251 -0.8757 +vn -0.3507 0.1992 -0.9151 +vn -0.4187 0.1822 -0.8896 +vn -0.3435 0.1511 -0.9269 +vn -0.4121 0.1375 -0.9007 +vn -0.3381 0.1018 -0.9356 +vn -0.4080 0.0916 -0.9084 +vn -0.3356 0.0514 -0.9406 +vn -0.4056 0.0469 -0.9128 +vn -0.9983 0.0421 0.0399 +vn -0.9989 0.0380 -0.0261 +vn -0.9960 0.0823 0.0352 +vn -0.9968 0.0746 -0.0300 +vn -0.9918 0.1245 0.0274 +vn -0.9930 0.1119 -0.0369 +vn -0.9862 0.1646 0.0173 +vn -0.9883 0.1457 -0.0448 +vn -0.9792 0.2028 0.0058 +vn -0.9819 0.1807 -0.0561 +vn -0.9708 0.2398 -0.0088 +vn -0.9743 0.2144 -0.0696 +vn -0.9606 0.2768 -0.0270 +vn -0.9651 0.2472 -0.0860 +vn -0.9485 0.3132 -0.0477 +vn -0.9546 0.2791 -0.1045 +vn -0.9360 0.3452 -0.0692 +vn -0.9435 0.3074 -0.1234 +vn -0.9220 0.3758 -0.0938 +vn -0.9306 0.3353 -0.1467 +vn -0.9069 0.4037 -0.1205 +vn -0.9168 0.3608 -0.1714 +vn -0.8909 0.4289 -0.1494 +vn -0.9027 0.3834 -0.1951 +vn -0.8734 0.4522 -0.1808 +vn -0.8874 0.4041 -0.2218 +vn -0.8556 0.4723 -0.2117 +vn -0.8709 0.4228 -0.2506 +vn -0.8177 0.5357 -0.2106 +vn -0.8369 0.4891 -0.2459 +vn -0.8537 0.4385 -0.2808 +vn -0.8176 0.5033 -0.2797 +vn -0.8365 0.4514 -0.3107 +vn -0.7968 0.5497 -0.2509 +vn -0.7759 0.5611 -0.2882 +vn -0.7976 0.5141 -0.3155 +vn -0.8184 0.4614 -0.3426 +vn -0.7775 0.5222 -0.3505 +vn -0.8006 0.4682 -0.3739 +vn -0.7542 0.5682 -0.3290 +vn -0.7325 0.5725 -0.3683 +vn -0.7570 0.5272 -0.3859 +vn -0.7820 0.4723 -0.4067 +vn -0.7359 0.5287 -0.4230 +vn -0.7637 0.4740 -0.4382 +vn -0.7102 0.5735 -0.4083 +vn -0.6878 0.5720 -0.4469 +vn -0.7149 0.5274 -0.4590 +vn -0.7448 0.4728 -0.4709 +vn -0.6946 0.5221 -0.4948 +vn -0.7260 0.4687 -0.5032 +vn -0.6653 0.5674 -0.4852 +vn -0.6406 0.5604 -0.5249 +vn -0.6748 0.5139 -0.5297 +vn -0.7082 0.4621 -0.5338 +vn -0.6535 0.5036 -0.5651 +vn -0.6898 0.4519 -0.5657 +vn -0.6179 0.5493 -0.5626 +vn -0.5941 0.5355 -0.6002 +vn -0.6333 0.4893 -0.5996 +vn -0.6719 0.4383 -0.5971 +vn -0.6146 0.4727 -0.6315 +vn -0.6552 0.4228 -0.6261 +vn -0.5962 0.4526 -0.6631 +vn -0.6388 0.4035 -0.6550 +vn -0.5782 0.4292 -0.6939 +vn -0.6233 0.3842 -0.6811 +vn -0.5615 0.4039 -0.7222 +vn -0.6087 0.3615 -0.7062 +vn -0.5456 0.3761 -0.7489 +vn -0.5956 0.3366 -0.7294 +vn -0.5309 0.3455 -0.7738 +vn -0.5826 0.3085 -0.7520 +vn -0.5181 0.3128 -0.7960 +vn -0.5704 0.2781 -0.7728 +vn -0.5068 0.2779 -0.8160 +vn -0.5600 0.2476 -0.7906 +vn -0.4963 0.2402 -0.8342 +vn -0.5504 0.2147 -0.8068 +vn -0.4878 0.2029 -0.8490 +vn -0.5425 0.1801 -0.8205 +vn -0.4809 0.1656 -0.8610 +vn -0.5368 0.1475 -0.8307 +vn -0.4748 0.1242 -0.8713 +vn -0.5315 0.1108 -0.8398 +vn -0.4709 0.0810 -0.8784 +vn -0.5271 0.0737 -0.8466 +vn -0.4683 0.0426 -0.8826 +vn -0.5252 0.0381 -0.8501 +vn -0.9955 0.0326 -0.0890 +vn -0.9884 0.0292 -0.1489 +vn -0.9935 0.0661 -0.0925 +vn -0.9868 0.0568 -0.1519 +vn -0.9902 0.0993 -0.0980 +vn -0.9839 0.0859 -0.1565 +vn -0.9859 0.1293 -0.1058 +vn -0.9802 0.1137 -0.1624 +vn -0.9804 0.1590 -0.1160 +vn -0.9757 0.1383 -0.1701 +vn -0.9737 0.1889 -0.1276 +vn -0.9697 0.1636 -0.1812 +vn -0.9655 0.2183 -0.1419 +vn -0.9626 0.1896 -0.1937 +vn -0.9564 0.2458 -0.1577 +vn -0.9542 0.2147 -0.2082 +vn -0.9459 0.2718 -0.1771 +vn -0.9458 0.2364 -0.2227 +vn -0.9351 0.2956 -0.1954 +vn -0.9368 0.2566 -0.2379 +vn -0.9239 0.3173 -0.2139 +vn -0.9251 0.2775 -0.2591 +vn -0.9107 0.3378 -0.2377 +vn -0.9148 0.2940 -0.2768 +vn -0.8971 0.3562 -0.2615 +vn -0.9035 0.3092 -0.2969 +vn -0.8825 0.3726 -0.2869 +vn -0.8902 0.3242 -0.3201 +vn -0.8678 0.3866 -0.3122 +vn -0.8770 0.3360 -0.3435 +vn -0.8520 0.3980 -0.3401 +vn -0.8631 0.3455 -0.3683 +vn -0.8356 0.4067 -0.3693 +vn -0.8500 0.3542 -0.3899 +vn -0.8202 0.4129 -0.3960 +vn -0.8361 0.3608 -0.4132 +vn -0.8041 0.4170 -0.4237 +vn -0.8218 0.3641 -0.4383 +vn -0.7878 0.4186 -0.4518 +vn -0.8074 0.3647 -0.4638 +vn -0.7713 0.4169 -0.4809 +vn -0.7929 0.3632 -0.4892 +vn -0.7552 0.4136 -0.5086 +vn -0.7787 0.3598 -0.5139 +vn -0.7396 0.4072 -0.5359 +vn -0.7652 0.3544 -0.5375 +vn -0.7229 0.3969 -0.5656 +vn -0.7516 0.3463 -0.5613 +vn -0.7071 0.3861 -0.5924 +vn -0.7380 0.3363 -0.5850 +vn -0.6924 0.3727 -0.6178 +vn -0.7253 0.3257 -0.6065 +vn -0.6778 0.3586 -0.6419 +vn -0.7123 0.3105 -0.6294 +vn -0.6638 0.3390 -0.6667 +vn -0.6998 0.2924 -0.6517 +vn -0.6507 0.3162 -0.6904 +vn -0.6890 0.2770 -0.6697 +vn -0.6394 0.2954 -0.7098 +vn -0.6779 0.2573 -0.6886 +vn -0.6290 0.2722 -0.7282 +vn -0.6687 0.2363 -0.7050 +vn -0.6183 0.2465 -0.7463 +vn -0.6604 0.2149 -0.7195 +vn -0.6086 0.2190 -0.7627 +vn -0.6521 0.1893 -0.7341 +vn -0.6005 0.1887 -0.7770 +vn -0.6452 0.1626 -0.7465 +vn -0.5935 0.1585 -0.7891 +vn -0.6385 0.1404 -0.7567 +vn -0.5877 0.1310 -0.7984 +vn -0.6337 0.1136 -0.7652 +vn -0.5833 0.0978 -0.8063 +vn -0.6304 0.0841 -0.7717 +vn -0.5799 0.0648 -0.8121 +vn -0.6277 0.0568 -0.7764 +vn -0.5782 0.0329 -0.8153 +vn -0.6257 0.0297 -0.7795 +vn -0.9791 0.0268 -0.2017 +vn -0.9676 0.0256 -0.2511 +vn -0.9778 0.0486 -0.2040 +vn -0.9666 0.0442 -0.2523 +vn -0.9762 0.0698 -0.2055 +vn -0.9653 0.0636 -0.2532 +vn -0.9658 0.0876 -0.2440 +vn -0.9730 0.0969 -0.2093 +vn -0.9674 0.1239 -0.2209 +vn -0.9595 0.1003 -0.2632 +vn -0.9546 0.1193 -0.2731 +vn -0.9627 0.1422 -0.2304 +vn -0.9572 0.1615 -0.2403 +vn -0.9494 0.1358 -0.2830 +vn -0.9432 0.1551 -0.2939 +vn -0.9495 0.1850 -0.2534 +vn -0.9427 0.2027 -0.2652 +vn -0.9360 0.1732 -0.3064 +vn -0.9343 0.2205 -0.2800 +vn -0.9292 0.1884 -0.3180 +vn -0.9253 0.2387 -0.2946 +vn -0.9217 0.2064 -0.3285 +vn -0.9144 0.2307 -0.3326 +vn -0.9155 0.2564 -0.3102 +vn -0.9051 0.2676 -0.3303 +vn -0.9054 0.2299 -0.3569 +vn -0.8977 0.2345 -0.3731 +vn -0.8949 0.2778 -0.3494 +vn -0.8821 0.2900 -0.3713 +vn -0.8889 0.2415 -0.3892 +vn -0.8769 0.2509 -0.4100 +vn -0.8723 0.2983 -0.3875 +vn -0.8614 0.3045 -0.4065 +vn -0.8653 0.2571 -0.4302 +vn -0.8485 0.3089 -0.4298 +vn -0.8556 0.2618 -0.4466 +vn -0.8352 0.3134 -0.4519 +vn -0.8457 0.2661 -0.4626 +vn -0.8313 0.2827 -0.4785 +vn -0.8219 0.3174 -0.4730 +vn -0.8104 0.3138 -0.4948 +vn -0.8259 0.2670 -0.4966 +vn -0.8167 0.2625 -0.5139 +vn -0.7992 0.3096 -0.5152 +vn -0.7864 0.3042 -0.5376 +vn -0.8066 0.2574 -0.5322 +vn -0.7962 0.2522 -0.5500 +vn -0.7740 0.2971 -0.5592 +vn -0.7638 0.2902 -0.5766 +vn -0.7843 0.2423 -0.5711 +vn -0.7531 0.2797 -0.5955 +vn -0.7737 0.2334 -0.5890 +vn -0.7414 0.2675 -0.6155 +vn -0.7647 0.2279 -0.6027 +vn -0.7487 0.2278 -0.6225 +vn -0.7281 0.2559 -0.6359 +vn -0.7204 0.2387 -0.6512 +vn -0.7486 0.2065 -0.6300 +vn -0.7433 0.1898 -0.6415 +vn -0.7124 0.2215 -0.6659 +vn -0.7037 0.2027 -0.6809 +vn -0.7357 0.1728 -0.6549 +vn -0.7288 0.1562 -0.6666 +vn -0.6972 0.1850 -0.6926 +vn -0.6894 0.1613 -0.7062 +vn -0.7224 0.1356 -0.6780 +vn -0.6834 0.1438 -0.7157 +vn -0.7167 0.1181 -0.6873 +vn -0.6776 0.1235 -0.7250 +vn -0.7105 0.1016 -0.6963 +vn -0.6949 0.0885 -0.7136 +vn -0.6713 0.0951 -0.7351 +vn -0.6690 0.0709 -0.7399 +vn -0.7034 0.0650 -0.7078 +vn -0.7045 0.0434 -0.7084 +vn -0.6680 0.0494 -0.7425 +vn -0.6669 0.0269 -0.7447 +vn -0.7040 0.0245 -0.7098 +vn 0.9325 -0.0121 0.3611 +vn 0.8113 0.0078 0.5846 +vn 0.8119 0.0157 0.5836 +vn 0.9319 -0.0242 0.3619 +vn 0.9308 -0.0360 0.3638 +vn 0.8128 0.0236 0.5821 +vn 0.8139 0.0312 0.5802 +vn 0.9291 -0.0475 0.3669 +vn 0.9269 -0.0589 0.3706 +vn 0.8152 0.0387 0.5779 +vn 0.8168 0.0458 0.5751 +vn 0.9244 -0.0699 0.3750 +vn 0.9215 -0.0804 0.3800 +vn 0.8188 0.0527 0.5717 +vn 0.8211 0.0593 0.5678 +vn 0.9181 -0.0904 0.3859 +vn 0.9143 -0.0998 0.3925 +vn 0.8235 0.0654 0.5636 +vn 0.8262 0.0712 0.5589 +vn 0.9104 -0.1095 0.3989 +vn 0.9059 -0.1171 0.4070 +vn 0.8291 0.0769 0.5538 +vn 0.8321 0.0820 0.5486 +vn 0.9011 -0.1243 0.4154 +vn 0.8960 -0.1309 0.4242 +vn 0.8353 0.0864 0.5430 +vn 0.8388 0.0904 0.5370 +vn 0.8908 -0.1367 0.4334 +vn 0.8853 -0.1418 0.4429 +vn 0.8423 0.0938 0.5307 +vn 0.8460 0.0966 0.5243 +vn 0.8796 -0.1459 0.4527 +vn 0.8738 -0.1492 0.4627 +vn 0.8499 0.0986 0.5177 +vn 0.8538 0.0997 0.5109 +vn 0.8679 -0.1517 0.4730 +vn 0.8619 -0.1533 0.4833 +vn 0.8579 0.0997 0.5041 +vn 0.8618 0.0987 0.4975 +vn 0.8559 -0.1539 0.4938 +vn 0.8498 -0.1537 0.5042 +vn 0.8657 0.0963 0.4913 +vn 0.8691 0.0870 0.4869 +vn 0.8433 -0.1540 0.5149 +vn 0.8372 -0.1525 0.5252 +vn 0.8731 0.0840 0.4802 +vn 0.8778 0.0920 0.4700 +vn 0.8321 -0.1470 0.5348 +vn 0.8265 -0.1419 0.5447 +vn 0.8812 0.0928 0.4636 +vn 0.8847 0.0902 0.4573 +vn 0.8211 -0.1369 0.5542 +vn 0.8158 -0.1310 0.5633 +vn 0.8882 0.0864 0.4512 +vn 0.8916 0.0821 0.4454 +vn 0.8108 -0.1242 0.5719 +vn 0.8061 -0.1167 0.5801 +vn 0.8947 0.0772 0.4400 +vn 0.8976 0.0718 0.4349 +vn 0.8017 -0.1085 0.5878 +vn 0.7976 -0.0997 0.5949 +vn 0.9003 0.0660 0.4302 +vn 0.9028 0.0597 0.4259 +vn 0.7939 -0.0902 0.6013 +vn 0.7906 -0.0802 0.6071 +vn 0.9050 0.0530 0.4221 +vn 0.9069 0.0461 0.4188 +vn 0.7876 -0.0697 0.6122 +vn 0.7851 -0.0587 0.6166 +vn 0.9086 0.0388 0.4159 +vn 0.9100 0.0313 0.4135 +vn 0.7830 -0.0474 0.6202 +vn 0.7814 -0.0358 0.6230 +vn 0.9111 0.0237 0.4116 +vn 0.9118 0.0159 0.4102 +vn 0.7802 -0.0240 0.6250 +vn 0.7795 -0.0120 0.6262 +vn 0.9123 0.0080 0.4094 +vn 0.9830 -0.0507 -0.1766 +vn 0.9989 -0.0373 0.0292 +vn 0.9967 -0.0744 0.0328 +vn 0.9800 -0.1011 -0.1715 +vn 0.9750 -0.1508 -0.1629 +vn 0.9931 -0.1110 0.0391 +vn 0.9880 -0.1469 0.0480 +vn 0.9682 -0.1997 -0.1509 +vn 0.9594 -0.2473 -0.1357 +vn 0.9815 -0.1819 0.0592 +vn 0.9737 -0.2158 0.0727 +vn 0.9488 -0.2933 -0.1173 +vn 0.9364 -0.3376 -0.0958 +vn 0.9646 -0.2484 0.0885 +vn 0.9542 -0.2794 0.1065 +vn 0.9223 -0.3798 -0.0714 +vn 0.9066 -0.4196 -0.0442 +vn 0.9427 -0.3088 0.1264 +vn 0.9300 -0.3363 0.1483 +vn 0.8894 -0.4569 -0.0144 +vn 0.8708 -0.4913 0.0179 +vn 0.9163 -0.3617 0.1720 +vn 0.9017 -0.3847 0.1975 +vn 0.8509 -0.5227 0.0524 +vn 0.8298 -0.5509 0.0889 +vn 0.8862 -0.4053 0.2245 +vn 0.8699 -0.4234 0.2528 +vn 0.8077 -0.5757 0.1273 +vn 0.7847 -0.5970 0.1672 +vn 0.8530 -0.4391 0.2821 +vn 0.8355 -0.4520 0.3124 +vn 0.7609 -0.6145 0.2084 +vn 0.7365 -0.6283 0.2507 +vn 0.8176 -0.4621 0.3435 +vn 0.7993 -0.4694 0.3752 +vn 0.7116 -0.6382 0.2938 +vn 0.6864 -0.6442 0.3375 +vn 0.7807 -0.4738 0.4073 +vn 0.7621 -0.4753 0.4396 +vn 0.6611 -0.6461 0.3814 +vn 0.6358 -0.6441 0.4253 +vn 0.7434 -0.4739 0.4719 +vn 0.7249 -0.4696 0.5040 +vn 0.6106 -0.6382 0.4689 +vn 0.5857 -0.6283 0.5120 +vn 0.7066 -0.4624 0.5357 +vn 0.6887 -0.4521 0.5668 +vn 0.5613 -0.6145 0.5543 +vn 0.5375 -0.5970 0.5956 +vn 0.6712 -0.4391 0.5972 +vn 0.6542 -0.4236 0.6266 +vn 0.5145 -0.5757 0.6355 +vn 0.4924 -0.5509 0.6738 +vn 0.6379 -0.4054 0.6548 +vn 0.6225 -0.3846 0.6816 +vn 0.4713 -0.5227 0.7103 +vn 0.4514 -0.4913 0.7449 +vn 0.6078 -0.3614 0.7070 +vn 0.5941 -0.3361 0.7308 +vn 0.4328 -0.4569 0.7771 +vn 0.4156 -0.4196 0.8070 +vn 0.5815 -0.3087 0.7527 +vn 0.5700 -0.2794 0.7727 +vn 0.3999 -0.3798 0.8342 +vn 0.3858 -0.3376 0.8586 +vn 0.5596 -0.2483 0.7907 +vn 0.5505 -0.2158 0.8064 +vn 0.3734 -0.2933 0.8801 +vn 0.3628 -0.2473 0.8985 +vn 0.5427 -0.1819 0.8200 +vn 0.5363 -0.1469 0.8312 +vn 0.3540 -0.1997 0.9137 +vn 0.3472 -0.1508 0.9256 +vn 0.5312 -0.1109 0.8399 +vn 0.5276 -0.0743 0.8462 +vn 0.3422 -0.1011 0.9342 +vn 0.3392 -0.0507 0.9393 +vn 0.5254 -0.0373 0.8500 +vn 0.4234 0.0463 0.9048 +vn 0.4271 0.0887 0.8998 +vn 0.4310 0.1330 0.8925 +vn 0.4380 0.1750 0.8818 +vn 0.4457 0.2175 0.8683 +vn 0.4549 0.2588 0.8521 +vn 0.4662 0.2975 0.8332 +vn 0.4789 0.3328 0.8124 +vn 0.4938 0.3683 0.7878 +vn 0.5097 0.4019 0.7607 +vn 0.5265 0.4314 0.7326 +vn 0.5451 0.4576 0.7024 +vn 0.5654 0.4818 0.6695 +vn 0.5861 0.5021 0.6359 +vn 0.6074 0.5185 0.6018 +vn 0.6287 0.5335 0.5658 +vn 0.6500 0.5455 0.5291 +vn 0.6706 0.5552 0.4921 +vn 0.6927 0.5615 0.4527 +vn 0.7139 0.5639 0.4151 +vn 0.7360 0.5635 0.3753 +vn 0.7584 0.5587 0.3357 +vn 0.7796 0.5504 0.2989 +vn 0.8025 0.5371 0.2599 +vn 0.8248 0.5176 0.2277 +vn 0.8451 0.4972 0.1965 +vn 0.8650 0.4752 0.1611 +vn 0.8833 0.4502 0.1304 +vn 0.9004 0.4229 0.1027 +vn 0.9163 0.3934 0.0750 +vn 0.9312 0.3612 0.0481 +vn 0.9447 0.3272 0.0238 +vn 0.9566 0.2914 0.0018 +vn 0.9672 0.2536 -0.0159 +vn 0.9765 0.2133 -0.0322 +vn 0.9840 0.1722 -0.0458 +vn 0.9900 0.1299 -0.0557 +vn 0.9944 0.0862 -0.0617 +vn 0.9969 0.0436 -0.0660 +vn 0.9767 -0.0526 -0.2083 +vn 0.9755 -0.0529 -0.2133 +vn 0.9724 -0.1055 -0.2079 +vn 0.9736 -0.1049 -0.2029 +vn 0.9684 -0.1565 -0.1940 +vn 0.9673 -0.1574 -0.1990 +vn 0.9601 -0.2084 -0.1865 +vn 0.9613 -0.2072 -0.1816 +vn 0.9522 -0.2566 -0.1658 +vn 0.9509 -0.2581 -0.1707 +vn 0.9399 -0.3061 -0.1515 +vn 0.9412 -0.3044 -0.1467 +vn 0.9283 -0.3503 -0.1245 +vn 0.9269 -0.3523 -0.1291 +vn 0.9122 -0.3964 -0.1036 +vn 0.9137 -0.3941 -0.0991 +vn 0.8974 -0.4354 -0.0709 +vn 0.8959 -0.4379 -0.0752 +vn 0.8779 -0.4768 -0.0441 +vn 0.8796 -0.4741 -0.0399 +vn 0.8602 -0.5098 -0.0065 +vn 0.8585 -0.5128 -0.0104 +vn 0.8377 -0.5455 0.0256 +vn 0.8396 -0.5424 0.0294 +vn 0.8177 -0.5717 0.0673 +vn 0.8157 -0.5750 0.0638 +vn 0.7926 -0.6008 0.1038 +vn 0.7948 -0.5974 0.1071 +vn 0.7709 -0.6194 0.1485 +vn 0.7686 -0.6230 0.1454 +vn 0.7438 -0.6413 0.1885 +vn 0.7462 -0.6377 0.1913 +vn 0.7209 -0.6520 0.2351 +vn 0.7183 -0.6557 0.2326 +vn 0.6923 -0.6660 0.2776 +vn 0.6951 -0.6622 0.2799 +vn 0.6690 -0.6684 0.3252 +vn 0.6661 -0.6723 0.3231 +vn 0.6396 -0.6743 0.3690 +vn 0.6427 -0.6705 0.3707 +vn 0.6164 -0.6684 0.4163 +vn 0.6132 -0.6723 0.4148 +vn 0.5869 -0.6660 0.4604 +vn 0.5903 -0.6622 0.4616 +vn 0.5645 -0.6520 0.5063 +vn 0.5610 -0.6557 0.5053 +vn 0.5355 -0.6413 0.5495 +vn 0.5391 -0.6377 0.5502 +vn 0.5145 -0.6194 0.5930 +vn 0.5107 -0.6230 0.5925 +vn 0.4867 -0.6008 0.6342 +vn 0.4906 -0.5974 0.6344 +vn 0.4676 -0.5717 0.6742 +vn 0.4636 -0.5750 0.6742 +vn 0.4416 -0.5456 0.7123 +vn 0.4457 -0.5424 0.7121 +vn 0.4251 -0.5098 0.7479 +vn 0.4208 -0.5128 0.7483 +vn 0.4014 -0.4768 0.7820 +vn 0.4058 -0.4741 0.7814 +vn 0.3879 -0.4354 0.8124 +vn 0.3834 -0.4379 0.8131 +vn 0.3670 -0.3964 0.8415 +vn 0.3716 -0.3941 0.8406 +vn 0.3570 -0.3503 0.8659 +vn 0.3523 -0.3523 0.8670 +vn 0.3394 -0.3061 0.8894 +vn 0.3442 -0.3044 0.8882 +vn 0.3331 -0.2566 0.9073 +vn 0.3283 -0.2581 0.9086 +vn 0.3192 -0.2084 0.9245 +vn 0.3240 -0.2072 0.9231 +vn 0.3169 -0.1565 0.9355 +vn 0.3120 -0.1574 0.9370 +vn 0.3068 -0.1055 0.9459 +vn 0.3118 -0.1049 0.9444 +vn 0.3087 -0.0526 0.9497 +vn 0.3037 -0.0529 0.9513 +vn 0.9799 -0.0517 -0.1925 +vn 0.9769 -0.1030 -0.1873 +vn 0.9719 -0.1537 -0.1785 +vn 0.9648 -0.2035 -0.1664 +vn 0.9559 -0.2520 -0.1509 +vn 0.9451 -0.2989 -0.1321 +vn 0.9325 -0.3440 -0.1102 +vn 0.9181 -0.3870 -0.0853 +vn 0.9021 -0.4276 -0.0576 +vn 0.8846 -0.4656 -0.0272 +vn 0.8656 -0.5007 0.0057 +vn 0.8453 -0.5327 0.0408 +vn 0.8238 -0.5614 0.0781 +vn 0.8013 -0.5867 0.1171 +vn 0.7778 -0.6083 0.1578 +vn 0.7536 -0.6262 0.1998 +vn 0.7287 -0.6402 0.2429 +vn 0.7034 -0.6503 0.2869 +vn 0.6778 -0.6564 0.3313 +vn 0.6519 -0.6584 0.3761 +vn 0.6261 -0.6564 0.4208 +vn 0.6005 -0.6503 0.4653 +vn 0.5751 -0.6403 0.5092 +vn 0.5503 -0.6262 0.5523 +vn 0.5260 -0.6083 0.5943 +vn 0.5026 -0.5867 0.6350 +vn 0.4800 -0.5614 0.6741 +vn 0.4586 -0.5327 0.7113 +vn 0.4383 -0.5007 0.7465 +vn 0.4193 -0.4656 0.7794 +vn 0.4018 -0.4276 0.8098 +vn 0.3858 -0.3870 0.8375 +vn 0.3714 -0.3440 0.8624 +vn 0.3588 -0.2989 0.8843 +vn 0.3480 -0.2520 0.9030 +vn 0.3390 -0.2035 0.9185 +vn 0.3320 -0.1537 0.9307 +vn 0.3270 -0.1030 0.9394 +vn 0.3239 -0.0517 0.9447 +vn 0.8037 -0.0719 -0.5907 +vn 0.7995 -0.1433 -0.5834 +vn 0.4340 -0.0782 -0.8975 +vn 0.4294 -0.1560 -0.8895 +vn 0.7925 -0.2139 -0.5712 +vn 0.7827 -0.2831 -0.5543 +vn 0.4218 -0.2328 -0.8763 +vn 0.4112 -0.3082 -0.8579 +vn 0.7703 -0.3506 -0.5327 +vn 0.7552 -0.4159 -0.5066 +vn 0.3976 -0.3817 -0.8344 +vn 0.3812 -0.4528 -0.8060 +vn 0.7377 -0.4786 -0.4762 +vn 0.7177 -0.5385 -0.4416 +vn 0.3621 -0.5211 -0.7729 +vn 0.3404 -0.5862 -0.7352 +vn 0.6954 -0.5949 -0.4030 +vn 0.6710 -0.6478 -0.3607 +vn 0.3162 -0.6477 -0.6932 +vn 0.2896 -0.7052 -0.6471 +vn 0.6447 -0.6966 -0.3149 +vn 0.6164 -0.7411 -0.2660 +vn 0.2609 -0.7584 -0.5973 +vn 0.2301 -0.8069 -0.5440 +vn 0.5865 -0.7811 -0.2142 +vn 0.5552 -0.8162 -0.1599 +vn 0.1976 -0.8504 -0.4876 +vn 0.1634 -0.8887 -0.4284 +vn 0.5225 -0.8463 -0.1033 +vn 0.4888 -0.8712 -0.0448 +vn 0.1279 -0.9215 -0.3668 +vn 0.0912 -0.9486 -0.3032 +vn 0.4542 -0.8908 0.0151 +vn 0.4189 -0.9048 0.0762 +vn 0.0535 -0.9698 -0.2379 +vn 0.0151 -0.9851 -0.1714 +vn 0.3832 -0.9133 0.1381 +vn 0.3474 -0.9161 0.2004 +vn -0.0237 -0.9943 -0.1040 +vn -0.0628 -0.9974 -0.0362 +vn 0.3114 -0.9132 0.2626 +vn 0.2758 -0.9048 0.3245 +vn -0.1019 -0.9943 0.0316 +vn -0.1408 -0.9851 0.0989 +vn 0.2405 -0.8908 0.3856 +vn 0.2059 -0.8712 0.4456 +vn -0.1791 -0.9698 0.1655 +vn -0.2168 -0.9486 0.2307 +vn 0.1722 -0.8463 0.5040 +vn 0.1396 -0.8162 0.5606 +vn -0.2535 -0.9214 0.2944 +vn -0.2891 -0.8887 0.3560 +vn 0.1082 -0.7811 0.6150 +vn 0.0783 -0.7411 0.6668 +vn -0.3232 -0.8504 0.4152 +vn -0.3557 -0.8069 0.4716 +vn 0.0501 -0.6966 0.7157 +vn 0.0237 -0.6478 0.7615 +vn -0.3864 -0.7584 0.5249 +vn -0.4152 -0.7052 0.5747 +vn -0.0007 -0.5949 0.8038 +vn -0.0230 -0.5385 0.8423 +vn -0.4417 -0.6477 0.6207 +vn -0.4660 -0.5862 0.6627 +vn -0.0430 -0.4787 0.8770 +vn -0.0605 -0.4159 0.9074 +vn -0.4877 -0.5211 0.7004 +vn -0.5068 -0.4528 0.7336 +vn -0.0756 -0.3506 0.9335 +vn -0.0880 -0.2831 0.9551 +vn -0.5232 -0.3817 0.7620 +vn -0.5368 -0.3082 0.7854 +vn -0.0978 -0.2139 0.9720 +vn -0.1047 -0.1433 0.9841 +vn -0.5474 -0.2328 0.8038 +vn -0.5550 -0.1560 0.8171 +vn -0.1090 -0.0719 0.9914 +vn -0.5596 -0.0783 0.8251 +vn 0.1082 -0.0719 -0.9915 +vn 0.1040 -0.1433 -0.9842 +vn -0.0949 -0.0640 -0.9934 +vn -0.0986 -0.1276 -0.9869 +vn 0.0970 -0.2138 -0.9721 +vn 0.0872 -0.2830 -0.9551 +vn -0.1048 -0.1904 -0.9761 +vn -0.1135 -0.2521 -0.9610 +vn 0.0748 -0.3504 -0.9336 +vn 0.0597 -0.4157 -0.9075 +vn -0.1246 -0.3121 -0.9418 +vn -0.1380 -0.3703 -0.9186 +vn 0.0422 -0.4785 -0.8771 +vn 0.0223 -0.5383 -0.8425 +vn -0.1536 -0.4262 -0.8915 +vn -0.1714 -0.4794 -0.8607 +vn 0.0001 -0.5948 -0.8039 +vn -0.0243 -0.6476 -0.7616 +vn -0.1912 -0.5297 -0.8263 +vn -0.2130 -0.5767 -0.7887 +vn -0.0508 -0.6964 -0.7159 +vn -0.0790 -0.7409 -0.6670 +vn -0.2365 -0.6202 -0.7479 +vn -0.2616 -0.6599 -0.7044 +vn -0.1089 -0.7808 -0.6152 +vn -0.1402 -0.8160 -0.5608 +vn -0.2882 -0.6955 -0.6582 +vn -0.3161 -0.7268 -0.6098 +vn -0.1728 -0.8461 -0.5043 +vn -0.2065 -0.8710 -0.4458 +vn -0.3452 -0.7536 -0.5595 +vn -0.3752 -0.7757 -0.5074 +vn -0.2411 -0.8905 -0.3859 +vn -0.2763 -0.9045 -0.3248 +vn -0.4060 -0.7931 -0.4540 +vn -0.4374 -0.8056 -0.3996 +vn -0.3120 -0.9130 -0.2629 +vn -0.3479 -0.9158 -0.2007 +vn -0.4692 -0.8131 -0.3445 +vn -0.5012 -0.8156 -0.2891 +vn -0.3838 -0.9130 -0.1385 +vn -0.4195 -0.9045 -0.0766 +vn -0.5331 -0.8131 -0.2337 +vn -0.5649 -0.8056 -0.1786 +vn -0.4548 -0.8905 -0.0155 +vn -0.4894 -0.8709 0.0444 +vn -0.5963 -0.7931 -0.1241 +vn -0.6271 -0.7757 -0.0708 +vn -0.5231 -0.8461 0.1028 +vn -0.5557 -0.8160 0.1594 +vn -0.6571 -0.7536 -0.0187 +vn -0.6862 -0.7268 0.0317 +vn -0.5870 -0.7808 0.2138 +vn -0.6169 -0.7409 0.2655 +vn -0.7141 -0.6954 0.0801 +vn -0.7407 -0.6599 0.1262 +vn -0.6451 -0.6964 0.3145 +vn -0.6715 -0.6475 0.3602 +vn -0.7658 -0.6202 0.1698 +vn -0.7893 -0.5768 0.2105 +vn -0.6959 -0.5947 0.4025 +vn -0.7182 -0.5383 0.4410 +vn -0.8111 -0.5297 0.2481 +vn -0.8309 -0.4794 0.2825 +vn -0.7381 -0.4785 0.4757 +vn -0.7557 -0.4157 0.5061 +vn -0.8486 -0.4262 0.3133 +vn -0.8643 -0.3703 0.3404 +vn -0.7707 -0.3505 0.5322 +vn -0.7832 -0.2830 0.5537 +vn -0.8777 -0.3121 0.3637 +vn -0.8888 -0.2520 0.3829 +vn -0.7929 -0.2138 0.5706 +vn -0.7999 -0.1433 0.5827 +vn -0.8974 -0.1904 0.3979 +vn -0.9037 -0.1276 0.4087 +vn -0.8042 -0.0718 0.5901 +vn -0.9075 -0.0640 0.4153 +vn -0.4994 0.7965 0.3409 +vn -0.5222 0.8078 0.2734 +vn -0.6362 0.6906 0.3439 +vn -0.5938 0.6897 0.4144 +vn -0.6544 0.6620 0.3656 +vn -0.6104 0.6606 0.4370 +vn -0.6921 0.6599 0.2923 +vn -0.6723 0.6883 0.2726 +vn -0.5539 0.8038 0.2170 +vn -0.5639 0.8112 0.1549 +vn -0.6988 0.6880 0.1957 +vn -0.7240 0.6559 0.2135 +vn -0.7119 0.6906 0.1276 +vn -0.5512 0.8287 0.0975 +vn -0.5540 0.8310 0.0497 +vn -0.7187 0.6930 0.0571 +vn -0.7534 0.6563 0.0406 +vn -0.7164 0.6975 -0.0156 +vn -0.7500 0.6606 -0.0349 +vn -0.5467 0.8373 -0.0019 +vn -0.5377 0.8415 -0.0518 +vn -0.7111 0.6982 -0.0825 +vn -0.7442 0.6600 -0.1031 +vn -0.7040 0.6948 -0.1470 +vn -0.5501 0.8284 -0.1053 +vn -0.5625 0.8107 -0.1626 +vn -0.6942 0.6883 -0.2105 +vn -0.6758 0.6873 -0.2662 +vn -0.5554 0.8031 -0.2159 +vn -0.4593 0.8087 -0.3676 +vn -0.4147 0.8183 -0.3980 +vn -0.5270 0.6906 -0.4953 +vn -0.5674 0.6894 -0.4503 +vn -0.4778 0.6960 -0.5360 +vn -0.3583 0.8366 -0.4145 +vn -0.4594 0.6652 -0.5886 +vn -0.4917 0.6355 -0.5953 +vn -0.5235 0.6072 -0.5977 +vn -0.4479 0.6288 -0.6356 +vn -0.4063 0.6669 -0.6246 +vn -0.3449 0.6640 -0.6634 +vn -0.3994 0.6203 -0.6751 +vn -0.1839 0.6676 -0.7214 +vn -0.1674 0.6269 -0.7609 +vn -0.0845 0.6394 -0.7642 +vn -0.0971 0.6769 -0.7297 +vn -0.0134 0.6823 -0.7309 +vn -0.0020 0.6483 -0.7614 +vn 0.0793 0.6531 -0.7531 +vn 0.0685 0.6834 -0.7268 +vn 0.0569 0.7187 -0.6930 +vn 0.0282 0.9069 -0.4203 +vn 0.0904 0.8749 -0.4758 +vn 0.1376 0.7069 -0.6938 +vn 0.1484 0.6794 -0.7186 +vn 0.2162 0.7014 -0.6792 +vn 0.2267 0.6762 -0.7009 +vn 0.1602 0.8470 -0.5069 +vn 0.3709 0.8368 -0.4027 +vn 0.4019 0.8487 -0.3438 +vn 0.5359 0.7025 -0.4682 +vn 0.4828 0.6984 -0.5283 +vn 0.5535 0.6717 -0.4924 +vn 0.4965 0.6746 -0.5463 +vn 0.6052 0.6705 -0.4293 +vn 0.5821 0.7072 -0.4012 +vn 0.4173 0.8652 -0.2780 +vn 0.6475 0.6732 -0.3573 +vn 0.6659 0.6412 -0.3815 +vn 0.6189 0.6444 -0.4491 +vn 0.7077 0.6354 -0.3089 +vn 0.6855 0.6712 -0.2821 +vn 0.7207 0.6627 -0.2033 +vn 0.7447 0.6248 -0.2346 +vn 0.7518 0.6586 -0.0334 +vn 0.7807 0.6249 0.0035 +vn 0.7683 0.6367 0.0662 +vn 0.7465 0.6642 0.0397 +vn 0.4081 0.6574 0.6335 +vn 0.3427 0.6507 0.6776 +vn 0.3898 0.6215 0.6795 +vn 0.4409 0.6316 0.6377 +vn 0.1796 0.6494 0.7389 +vn 0.1633 0.6196 0.7678 +vn 0.0815 0.6252 0.7762 +vn 0.0946 0.6546 0.7501 +vn 0.5655 0.7279 0.3878 +vn 0.5871 0.7347 0.3399 +vn 0.2472 0.9584 0.1428 +vn 0.2454 0.9547 0.1685 +vn 0.5303 0.7298 0.4315 +vn 0.2274 0.9555 0.1878 +vn -0.1800 0.9757 -0.1246 +vn -0.1686 0.9758 -0.1391 +vn -0.1917 0.9751 -0.1114 +vn 0.6280 0.7399 0.2411 +vn 0.2601 0.9606 0.0975 +vn 0.2597 0.9577 0.1239 +vn 0.6131 0.7327 0.2953 +vn -0.2007 0.9749 -0.0964 +vn -0.2094 0.9747 -0.0787 +vn -0.1845 0.7822 0.5951 +vn -0.0669 0.9729 0.2213 +vn -0.0873 0.9755 0.2018 +vn -0.2457 0.7898 0.5620 +vn -0.1022 0.9785 0.1792 +vn -0.2993 0.7989 0.5218 +vn 0.0855 0.9771 -0.1947 +vn 0.1066 0.9771 -0.1843 +vn 0.0630 0.9770 -0.2039 +vn 0.3108 0.8507 -0.4239 +vn 0.2527 0.8640 -0.4354 +vn 0.0505 0.9951 -0.0848 +vn 0.0729 0.9925 -0.0985 +vn 0.0981 0.9896 -0.1054 +vn -0.1263 0.9765 0.1746 +vn -0.1460 0.9765 0.1582 +vn -0.1083 0.9761 0.1882 +vn -0.3539 0.8003 0.4840 +vn -0.1211 0.9788 0.1654 +vn -0.4095 0.7956 0.4465 +vn -0.1454 0.9768 0.1572 +vn 0.1247 0.9775 -0.1700 +vn 0.1411 0.9780 -0.1540 +vn 0.0394 0.9918 -0.1216 +vn 0.0478 0.9928 -0.1099 +vn 0.2119 0.8514 -0.4798 +vn -0.0870 0.9768 0.1955 +vn -0.0624 0.9774 0.2020 +vn -0.1935 0.9783 -0.0741 +vn -0.1707 0.9819 -0.0824 +vn -0.5243 0.8127 -0.2541 +vn -0.1480 0.9854 -0.0845 +vn -0.4932 0.8226 -0.2830 +vn 0.1871 0.9781 0.0917 +vn 0.1833 0.9773 0.1059 +vn 0.1918 0.9786 0.0750 +vn -0.4798 0.8156 -0.3235 +vn -0.1509 0.9833 -0.1022 +vn -0.1517 0.9808 -0.1226 +vn 0.1754 0.9774 0.1178 +vn 0.1622 0.9782 0.1296 +vn -0.4590 0.7942 0.3983 +vn -0.1631 0.9768 0.1388 +vn -0.1707 0.9788 0.1133 +vn 0.1592 0.9774 -0.1390 +vn 0.1783 0.9765 -0.1214 +vn -0.1653 0.9827 0.0831 +vn -0.1773 0.9819 0.0662 +vn 0.1931 0.9759 -0.1013 +vn 0.2045 0.9756 -0.0803 +vn -0.1680 0.9848 0.0443 +vn -0.1416 0.9896 0.0247 +vn 0.2167 0.9745 -0.0587 +vn 0.2261 0.9733 -0.0395 +vn -0.1426 0.9897 0.0154 +vn -0.1377 0.9905 0.0031 +vn 0.2247 0.9744 0.0015 +vn 0.2280 0.9734 -0.0198 +vn -0.1322 0.9912 -0.0095 +vn -0.1550 0.9876 -0.0269 +vn 0.2140 0.9760 0.0404 +vn 0.2207 0.9751 0.0216 +vn -0.1834 0.9817 -0.0504 +vn 0.2029 0.9775 0.0581 +vn -0.1246 0.9846 -0.1225 +vn -0.0880 0.9906 -0.1051 +vn 0.1523 0.9773 0.1471 +vn 0.1421 0.9758 0.1662 +vn -0.3059 0.8495 -0.4298 +vn -0.0610 0.9940 -0.0904 +vn -0.2661 0.8487 -0.4570 +vn -0.0510 0.9943 -0.0940 +vn 0.1289 0.9748 0.1819 +vn 0.1133 0.9741 0.1956 +vn -0.2215 0.8509 -0.4763 +vn -0.0403 0.9950 -0.0910 +vn -0.1749 0.8607 -0.4781 +vn -0.0284 0.9966 -0.0769 +vn 0.0957 0.9732 0.2092 +vn 0.0780 0.9726 0.2188 +vn -0.1253 0.8735 -0.4705 +vn -0.0190 0.9975 -0.0681 +vn -0.0093 0.9995 -0.0291 +vn -0.0736 0.8957 -0.4384 +vn 0.0565 0.9737 0.2209 +vn 0.0322 0.9746 0.2218 +vn -0.0027 0.9999 0.0168 +vn -0.0232 0.9165 -0.3994 +vn -0.0002 1.0000 0.0016 +vn 0.0098 0.9746 0.2236 +vn -0.0134 0.9751 0.2214 +vn 0.0133 0.9978 -0.0656 +vn -0.0380 0.9764 0.2127 +vn 0.0919 0.9928 -0.0766 +vn 0.0719 0.9964 -0.0456 +vn -0.1688 0.9752 0.1428 +vn -0.1891 0.9738 0.1260 +vn 0.4461 0.8654 -0.2280 +vn 0.0738 0.9967 -0.0339 +vn 0.5005 0.8444 -0.1911 +vn 0.1124 0.9929 -0.0394 +vn -0.2036 0.9732 0.1067 +vn -0.2151 0.9729 0.0853 +vn 0.5380 0.8305 -0.1445 +vn 0.1319 0.9907 -0.0337 +vn 0.5493 0.8298 -0.0987 +vn 0.1294 0.9913 -0.0239 +vn -0.2286 0.9715 0.0633 +vn -0.2382 0.9702 0.0438 +vn 0.1534 0.9880 -0.0165 +vn 0.5738 0.8174 -0.0511 +vn 0.1725 0.9850 -0.0029 +vn 0.5880 0.8088 0.0050 +vn -0.2365 0.9716 -0.0003 +vn -0.2390 0.9707 0.0234 +vn 0.1685 0.9856 0.0130 +vn 0.5816 0.8114 0.0584 +vn 0.1906 0.9811 0.0334 +vn 0.5947 0.7957 0.1148 +vn -0.2283 0.9727 -0.0419 +vn -0.2334 0.9721 -0.0225 +vn 0.2322 0.9706 0.0635 +vn 0.6198 0.7643 0.1782 +vn -0.2196 0.9737 -0.0604 +vn 0.4704 0.7554 0.4563 +vn 0.1819 0.9665 0.1812 +vn 0.4049 0.7862 0.4668 +vn 0.1331 0.9782 0.1594 +vn -0.1600 0.9745 -0.1574 +vn -0.1506 0.9729 -0.1755 +vn 0.3511 0.8004 0.4859 +vn 0.1070 0.9820 0.1555 +vn 0.3083 0.7940 0.5240 +vn 0.0975 0.9798 0.1744 +vn -0.1373 0.9722 -0.1898 +vn -0.1187 0.9719 -0.2031 +vn 0.2522 0.8000 0.5444 +vn 0.0755 0.9828 0.1683 +vn 0.2008 0.8098 0.5513 +vn 0.0575 0.9861 0.1561 +vn -0.0990 0.9711 -0.2172 +vn -0.0819 0.9705 -0.2266 +vn 0.0539 0.9796 0.1938 +vn 0.1568 0.7905 0.5920 +vn 0.0384 0.9716 0.2335 +vn 0.0939 0.7717 0.6290 +vn -0.0341 0.9740 -0.2241 +vn -0.0612 0.9722 -0.2259 +vn 0.0119 0.9762 0.2167 +vn 0.0238 0.7865 0.6172 +vn -0.0118 0.9783 0.2068 +vn -0.0442 0.7936 0.6068 +vn 0.0169 0.9747 -0.2228 +vn -0.0076 0.9743 -0.2251 +vn -0.0370 0.9764 0.2126 +vn -0.1133 0.7897 0.6029 +vn 0.0404 0.9759 -0.2146 +vn -0.3378 0.8987 -0.2796 +vn -0.3609 0.8987 -0.2491 +vn -0.5631 0.6815 -0.4674 +vn -0.6019 0.6828 -0.4142 +vn -0.3787 0.8991 -0.2195 +vn -0.6308 0.6849 -0.3646 +vn -0.3938 0.8996 -0.1886 +vn -0.6555 0.6872 -0.3133 +vn -0.4085 0.8999 -0.1527 +vn -0.6796 0.6885 -0.2531 +vn 0.2151 0.9027 -0.3726 +vn 0.1731 0.9024 -0.3946 +vn 0.3605 0.6922 -0.6252 +vn 0.2908 0.6901 -0.6627 +vn 0.1271 0.9020 -0.4127 +vn 0.2127 0.6886 -0.6933 +vn -0.2940 0.9015 0.3175 +vn -0.2532 0.9018 0.3501 +vn -0.4929 0.6891 0.5313 +vn -0.4240 0.6900 0.5866 +vn -0.2157 0.9020 0.3741 +vn -0.3610 0.6914 0.6258 +vn 0.2894 0.9036 -0.3157 +vn 0.2532 0.9035 -0.3459 +vn 0.4886 0.6909 -0.5329 +vn 0.4258 0.6918 -0.5832 +vn -0.1754 0.9027 0.3929 +vn -0.2949 0.6918 0.6591 +vn -0.2122 0.6918 0.6902 +vn -0.1262 0.9033 0.4101 +vn 0.3664 0.9061 0.2114 +vn 0.3790 0.9065 0.1860 +vn 0.6200 0.6984 0.3575 +vn 0.6426 0.6980 0.3161 +vn 0.3932 0.9067 0.1527 +vn 0.6682 0.6975 0.2588 +vn 0.3293 0.9065 0.2643 +vn 0.3522 0.9056 0.2361 +vn 0.5579 0.6977 0.4494 +vn 0.5952 0.6980 0.3981 +vn 0.3509 0.9057 -0.2379 +vn 0.3216 0.9047 -0.2795 +vn 0.5922 0.6995 -0.4001 +vn 0.5441 0.6942 -0.4712 +vn 0.3915 0.9074 -0.1531 +vn 0.3745 0.9063 -0.1961 +vn 0.6591 0.7070 -0.2562 +vn 0.6309 0.7024 -0.3295 +vn 0.4124 0.9081 -0.0719 +vn 0.4043 0.9082 -0.1088 +vn 0.6908 0.7131 -0.1199 +vn 0.6790 0.7114 -0.1811 +vn 0.4187 0.9081 0.0024 +vn 0.4180 0.9077 -0.0371 +vn 0.7021 0.7121 0.0030 +vn 0.6969 0.7144 -0.0628 +vn 0.4133 0.9074 0.0763 +vn 0.4176 0.9077 0.0401 +vn 0.6979 0.7049 0.1267 +vn 0.7026 0.7085 0.0662 +vn 0.4051 0.9071 0.1145 +vn 0.6874 0.7004 0.1921 +vn 0.3018 0.9069 0.2940 +vn 0.2722 0.9072 0.3208 +vn 0.4571 0.7053 0.5419 +vn 0.5093 0.7007 0.4996 +vn 0.2424 0.9074 0.3433 +vn 0.2095 0.9079 0.3630 +vn 0.3496 0.7124 0.6085 +vn 0.4061 0.7084 0.5773 +vn 0.1738 0.9080 0.3812 +vn 0.1412 0.9073 0.3961 +vn 0.2359 0.7129 0.6604 +vn 0.2893 0.7142 0.6373 +vn 0.1049 0.9071 0.4076 +vn 0.0615 0.9061 0.4186 +vn 0.1766 0.7108 0.6808 +vn 0.1040 0.7058 0.7007 +vn -0.0252 0.9042 0.4264 +vn 0.0187 0.9048 0.4255 +vn -0.0411 0.6983 0.7146 +vn 0.0319 0.7011 0.7124 +vn -0.0742 0.9037 0.4216 +vn -0.1233 0.6940 0.7093 +vn -0.3317 0.9011 0.2794 +vn -0.3622 0.9006 0.2402 +vn -0.6024 0.6917 0.3983 +vn -0.5545 0.6901 0.4651 +vn -0.4032 0.9012 0.1592 +vn -0.3853 0.9005 0.2015 +vn -0.6681 0.6962 0.2624 +vn -0.6393 0.6928 0.3336 +vn -0.4177 0.9013 0.1146 +vn -0.4266 0.9010 0.0782 +vn -0.7022 0.7003 0.1283 +vn -0.6895 0.6996 0.1876 +vn -0.4347 0.9006 -0.0001 +vn -0.4318 0.9010 0.0431 +vn -0.7153 0.6988 0.0010 +vn -0.7091 0.7014 0.0718 +vn -0.4295 0.8997 -0.0778 +vn -0.4340 0.9000 -0.0415 +vn -0.7115 0.6910 -0.1278 +vn -0.7168 0.6940 -0.0676 +vn -0.4209 0.8998 -0.1148 +vn -0.6990 0.6896 -0.1893 +vn -0.2839 0.8993 -0.3328 +vn -0.3113 0.8989 -0.3083 +vn -0.4691 0.6889 -0.5526 +vn -0.5167 0.6841 -0.5149 +vn -0.2179 0.9015 -0.3739 +vn -0.2545 0.9002 -0.3534 +vn -0.3594 0.6986 -0.6187 +vn -0.4203 0.6932 -0.5855 +vn -0.1479 0.9012 -0.4073 +vn -0.1788 0.9017 -0.3936 +vn -0.2446 0.6993 -0.6716 +vn -0.2944 0.7012 -0.6494 +vn -0.0657 0.9023 -0.4262 +vn -0.1140 0.9018 -0.4168 +vn -0.1106 0.6967 -0.7087 +vn -0.1903 0.6989 -0.6895 +vn 0.0319 0.9016 -0.4314 +vn -0.0150 0.9017 -0.4321 +vn 0.0522 0.6918 -0.7202 +vn -0.0257 0.6932 -0.7203 +vn 0.0791 0.9017 -0.4250 +vn 0.1312 0.6898 -0.7120 +vn -0.7305 0.3133 -0.6068 +vn -0.7818 0.3164 -0.5372 +vn -0.7613 0.1447 -0.6321 +vn -0.8151 0.1488 -0.5599 +vn -0.8202 0.3214 -0.4733 +vn -0.8558 0.1539 -0.4939 +vn -0.8538 0.3236 -0.4079 +vn -0.8910 0.1563 -0.4263 +vn -0.9250 0.1578 -0.3456 +vn -0.8861 0.3257 -0.3298 +vn 0.4721 0.3258 -0.8191 +vn 0.3807 0.3220 -0.8668 +vn 0.4935 0.1550 -0.8558 +vn 0.3984 0.1511 -0.9047 +vn 0.2779 0.3196 -0.9059 +vn 0.2914 0.1487 -0.9450 +vn -0.6439 0.3219 0.6941 +vn -0.5538 0.3241 0.7670 +vn -0.6711 0.1521 0.7256 +vn -0.5775 0.1549 0.8015 +vn -0.4722 0.3276 0.8184 +vn -0.4933 0.1585 0.8553 +vn 0.6400 0.3214 -0.6979 +vn 0.5577 0.3242 -0.7641 +vn 0.6680 0.1498 -0.7289 +vn 0.5824 0.1535 -0.7983 +vn -0.3865 0.3259 0.8628 +vn -0.4039 0.1565 0.9013 +vn -0.2780 0.3237 0.9044 +vn -0.2905 0.1526 0.9446 +vn 0.8163 0.3346 0.4708 +vn 0.8462 0.3320 0.4169 +vn 0.8548 0.1629 0.4928 +vn 0.8854 0.1595 0.4365 +vn 0.8806 0.3295 0.3406 +vn 0.9211 0.1562 0.3565 +vn 0.7350 0.3301 0.5923 +vn 0.7844 0.3321 0.5239 +vn 0.7694 0.1572 0.6191 +vn 0.8212 0.1601 0.5478 +vn 0.7811 0.3340 -0.5276 +vn 0.7151 0.3256 -0.6185 +vn 0.8168 0.1610 -0.5539 +vn 0.7469 0.1531 -0.6471 +vn 0.8741 0.3473 -0.3396 +vn 0.8336 0.3398 -0.4354 +vn 0.9168 0.1749 -0.3589 +vn 0.8728 0.1671 -0.4585 +vn 0.9194 0.3596 -0.1591 +vn 0.9031 0.3559 -0.2401 +vn 0.9679 0.1879 -0.1671 +vn 0.9498 0.1834 -0.2536 +vn 0.9287 0.3612 -0.0838 +vn 0.9341 0.3571 0.0037 +vn 0.9781 0.1894 -0.0867 +vn 0.9829 0.1842 0.0065 +vn 0.9328 0.3495 0.0876 +vn 0.9244 0.3431 0.1669 +vn 0.9797 0.1771 0.0941 +vn 0.9696 0.1695 0.1766 +vn 0.9080 0.3346 0.2522 +vn 0.9509 0.1606 0.2646 +vn 0.6045 0.3446 0.7183 +vn 0.6716 0.3354 0.6607 +vn 0.6356 0.1717 0.7527 +vn 0.7042 0.1621 0.6913 +vn 0.4648 0.3586 0.8095 +vn 0.5382 0.3516 0.7660 +vn 0.4917 0.1877 0.8503 +vn 0.5676 0.1793 0.8036 +vn 0.3140 0.3613 0.8780 +vn 0.3850 0.3631 0.8485 +vn 0.3311 0.1906 0.9242 +vn 0.4072 0.1924 0.8928 +vn 0.2354 0.3564 0.9042 +vn 0.1379 0.3473 0.9276 +vn 0.2468 0.1851 0.9512 +vn 0.1426 0.1757 0.9741 +vn 0.0420 0.3396 0.9396 +vn -0.0538 0.3347 0.9408 +vn 0.0419 0.1680 0.9849 +vn -0.0580 0.1625 0.9850 +vn -0.1612 0.3272 0.9311 +vn -0.1693 0.1552 0.9733 +vn -0.7881 0.3286 0.5205 +vn -0.7250 0.3249 0.6072 +vn -0.8228 0.1597 0.5455 +vn -0.7564 0.1553 0.6354 +vn -0.8761 0.3381 0.3438 +vn -0.8364 0.3316 0.4364 +vn -0.9166 0.1696 0.3620 +vn -0.8738 0.1626 0.4582 +vn -0.9224 0.3477 0.1680 +vn -0.9060 0.3447 0.2456 +vn -0.9678 0.1804 0.1758 +vn -0.9498 0.1768 0.2582 +vn -0.9324 0.3489 0.0943 +vn -0.9390 0.3439 0.0013 +vn -0.9786 0.1815 0.0970 +vn -0.9844 0.1757 -0.0018 +vn -0.9379 0.3354 -0.0884 +vn -0.9289 0.3306 -0.1666 +vn -0.9813 0.1674 -0.0950 +vn -0.9709 0.1626 -0.1761 +vn -0.9120 0.3278 -0.2465 +vn -0.9525 0.1597 -0.2592 +vn -0.6111 0.3259 -0.7213 +vn -0.6707 0.3175 -0.6704 +vn -0.6393 0.1570 -0.7527 +vn -0.6999 0.1484 -0.6987 +vn -0.4720 0.3420 -0.8126 +vn -0.5495 0.3336 -0.7660 +vn -0.4972 0.1725 -0.8503 +vn -0.5768 0.1645 -0.8001 +vn -0.3217 0.3450 -0.8817 +vn -0.3872 0.3466 -0.8544 +vn -0.3376 0.1772 -0.9244 +vn -0.4076 0.1786 -0.8955 +vn -0.1457 0.3362 -0.9305 +vn -0.2511 0.3421 -0.9055 +vn -0.2621 0.1736 -0.9493 +vn -0.1502 0.1669 -0.9745 +vn 0.0682 0.3269 -0.9426 +vn -0.0336 0.3301 -0.9433 +vn -0.0330 0.1599 -0.9866 +vn 0.0731 0.1567 -0.9849 +vn 0.1710 0.3228 -0.9309 +vn 0.1801 0.1522 -0.9718 +vn -0.9541 0.0479 -0.2955 +vn -0.9394 0.0579 -0.3378 +vn -0.9414 0.0281 -0.3361 +vn -0.9549 0.0268 -0.2958 +vn -0.9473 0.0895 -0.3076 +vn -0.9561 0.0724 -0.2841 +vn -0.9265 0.1066 -0.3609 +vn -0.9324 0.0841 -0.3516 +vn -0.9410 0.1089 -0.3204 +vn -0.9351 0.1287 -0.3302 +vn -0.9194 0.1662 -0.3565 +vn -0.9072 0.1520 -0.3922 +vn -0.9172 0.1292 -0.3770 +vn -0.9266 0.1490 -0.3452 +vn -0.9013 0.1936 -0.3874 +vn -0.9122 0.1929 -0.3615 +vn -0.8805 0.1751 -0.4406 +vn -0.8918 0.1655 -0.4210 +vn -0.8903 0.2020 -0.4081 +vn -0.8807 0.2094 -0.4248 +vn -0.8551 0.2233 -0.4679 +vn -0.8518 0.1863 -0.4896 +vn -0.8676 0.1799 -0.4636 +vn -0.8689 0.2150 -0.4459 +vn -0.8354 0.2228 -0.5024 +vn -0.8413 0.2410 -0.4838 +vn -0.8237 0.1753 -0.5392 +vn -0.8374 0.1797 -0.5162 +vn -0.8239 0.2148 -0.5245 +vn -0.8106 0.2087 -0.5471 +vn -0.7884 0.1931 -0.5841 +vn -0.7958 0.1535 -0.5858 +vn -0.8117 0.1661 -0.5600 +vn -0.8005 0.2001 -0.5649 +vn -0.7714 0.1680 -0.6137 +vn -0.7718 0.1931 -0.6059 +vn -0.7776 0.1069 -0.6196 +vn -0.7862 0.1289 -0.6044 +vn -0.7646 0.1486 -0.6272 +vn -0.7563 0.1288 -0.6414 +vn -0.7430 0.0891 -0.6634 +vn -0.7632 0.0577 -0.6436 +vn -0.7725 0.0854 -0.6293 +vn -0.7506 0.1081 -0.6519 +vn -0.7367 0.0477 -0.6745 +vn -0.7288 0.0732 -0.6808 +vn -0.7630 0.0284 -0.6458 +vn -0.7369 0.0266 -0.6755 +vn -0.7879 0.0481 -0.6140 +vn -0.7910 0.0714 -0.6077 +vn -0.7961 0.0915 -0.5981 +vn -0.8097 0.0638 -0.5834 +vn -0.8132 0.0835 -0.5759 +vn -0.8076 0.0398 -0.5883 +vn -0.8968 0.0742 -0.4361 +vn -0.8868 0.0743 -0.4561 +vn -0.8886 0.0560 -0.4553 +vn -0.8993 0.0571 -0.4336 +vn -0.9059 0.0796 -0.4159 +vn -0.9098 0.0595 -0.4108 +vn -0.9129 0.0384 -0.4065 +vn -0.9017 0.0356 -0.4308 +vn -0.8899 0.0336 -0.4550 +vn -0.8905 0.0181 -0.4547 +vn -0.9024 0.0199 -0.4304 +vn -0.9139 0.0230 -0.4052 +vn -0.8639 0.0739 -0.4982 +vn -0.8622 0.0969 -0.4972 +vn -0.8531 0.0971 -0.5127 +vn -0.8536 0.0737 -0.5158 +vn -0.8405 0.0967 -0.5332 +vn -0.8408 0.0738 -0.5363 +vn -0.8377 0.1235 -0.5320 +vn -0.8501 0.1254 -0.5115 +vn -0.8598 0.1250 -0.4950 +vn -0.8415 0.0559 -0.5374 +vn -0.8542 0.0552 -0.5171 +vn -0.8650 0.0552 -0.4987 +vn -0.8546 0.0323 -0.5184 +vn -0.8658 0.0321 -0.4993 +vn -0.8412 0.0332 -0.5397 +vn -0.8410 0.0175 -0.5407 +vn -0.8547 0.0168 -0.5189 +vn -0.8662 0.0165 -0.4994 +vn -0.8324 0.1497 -0.5336 +vn -0.8449 0.1532 -0.5126 +vn -0.8564 0.1544 -0.4927 +vn -0.8818 0.1221 -0.4556 +vn -0.8891 0.1192 -0.4419 +vn -0.8894 0.1396 -0.4353 +vn -0.8812 0.1474 -0.4492 +vn -0.9002 0.1280 -0.4161 +vn -0.8937 0.1166 -0.4332 +vn -0.8680 0.1536 -0.4723 +vn -0.8708 0.1245 -0.4757 +vn -0.8732 0.0967 -0.4777 +vn -0.8837 0.0970 -0.4579 +vn -0.8752 0.0738 -0.4782 +vn -0.8764 0.0553 -0.4785 +vn -0.8774 0.0324 -0.4788 +vn -0.8777 0.0166 -0.4789 +vn -0.9093 0.1114 -0.4008 +vn -0.9159 0.0911 -0.3909 +vn -0.9013 0.0973 -0.4221 +vn -0.8266 0.0588 -0.5597 +vn -0.8267 0.0777 -0.5573 +vn -0.8256 0.0348 -0.5632 +vn -0.8065 0.0218 -0.5908 +vn -0.8247 0.0190 -0.5653 +vn -0.8918 0.0954 -0.4422 +vn -0.8200 0.1137 -0.5610 +vn -0.8163 0.0971 -0.5694 +vn -0.8278 0.0963 -0.5526 +vn -0.8269 0.1178 -0.5498 +vn -0.8113 0.1282 -0.5704 +vn -0.8212 0.1399 -0.5532 +vn -0.9226 0.0673 -0.3799 +vn -0.9253 0.0469 -0.3764 +vn -0.9270 0.0273 -0.3741 +vn -0.7857 0.0254 -0.6181 +vn -0.8034 0.1106 -0.5850 +vn -0.5581 0.6612 0.5014 +vn -0.5430 0.6894 0.4795 +vn -0.4870 0.6892 0.5365 +vn -0.4993 0.6658 0.5545 +vn -0.4364 0.6680 0.6028 +vn -0.4259 0.6896 0.5857 +vn -0.3609 0.6885 0.6291 +vn -0.3704 0.6676 0.6458 +vn -0.3018 0.6663 0.6819 +vn -0.2930 0.6861 0.6659 +vn -0.2189 0.6858 0.6941 +vn -0.2278 0.6655 0.7107 +vn -0.1521 0.6627 0.7333 +vn -0.1412 0.6877 0.7122 +vn -0.0603 0.6905 0.7208 +vn -0.0711 0.6615 0.7465 +vn -0.7422 0.6249 0.2423 +vn -0.7067 0.6333 0.3154 +vn 0.0117 0.6589 0.7521 +vn 0.0202 0.6885 0.7250 +vn 0.1019 0.6839 0.7224 +vn 0.1822 0.6810 0.7093 +vn 0.2485 0.6822 0.6876 +vn 0.3128 0.6841 0.6589 +vn 0.3774 0.6891 0.6187 +vn 0.4637 0.6600 0.5911 +vn 0.4349 0.6900 0.5786 +vn 0.4863 0.6857 0.5416 +vn 0.5109 0.6596 0.5512 +vn 0.5522 0.6601 0.5092 +vn 0.5326 0.6809 0.5027 +vn 0.5747 0.6764 0.4607 +vn 0.5882 0.6616 0.4651 +vn 0.6231 0.6591 0.4212 +vn 0.6084 0.6763 0.4153 +vn 0.6366 0.6774 0.3686 +vn 0.6499 0.6601 0.3766 +vn 0.6742 0.6611 0.3293 +vn 0.6624 0.6768 0.3213 +vn 0.6839 0.6782 0.2688 +vn 0.6970 0.6603 0.2798 +vn 0.7156 0.6612 0.2254 +vn 0.6996 0.6826 0.2112 +vn 0.7101 0.6880 0.1498 +vn 0.7300 0.6626 0.1674 +vn 0.7395 0.6647 0.1058 +vn 0.7175 0.6911 0.0868 +vn 0.7220 0.6916 0.0202 +vn 0.7212 0.6907 -0.0525 +vn 0.7112 0.6923 -0.1222 +vn 0.6917 0.6975 -0.1872 +vn 0.6609 0.7037 -0.2608 +vn 0.6228 0.7089 -0.3310 +vn 0.4344 0.6782 -0.5928 +vn 0.4199 0.7039 -0.5729 +vn 0.3528 0.7092 -0.6104 +vn 0.3677 0.6786 -0.6359 +vn 0.2987 0.6780 -0.6716 +vn 0.2892 0.7023 -0.6505 +vn -0.0234 0.7249 -0.6885 +vn -0.1029 0.7201 -0.6862 +vn -0.1820 0.7117 -0.6785 +vn -0.2490 0.7019 -0.6674 +vn -0.3104 0.7009 -0.6422 +vn -0.3705 0.7029 -0.6072 +vn -0.4247 0.7015 -0.5723 +vn -0.5993 0.6914 -0.4035 +vn -0.6247 0.6936 -0.3587 +vn -0.6512 0.6899 -0.3161 +vn -0.7805 0.6252 0.0021 +vn -0.7705 0.6343 -0.0629 +vn -0.7592 0.6387 -0.1250 +vn -0.7768 0.6115 -0.1503 +vn 0.0015 0.8889 0.4581 +vn 0.0016 0.9152 0.4030 +vn -0.0303 0.9150 0.4022 +vn -0.0344 0.8889 0.4569 +vn -0.0706 0.8889 0.4527 +vn -0.0627 0.9148 0.3990 +vn -0.0272 0.9372 0.3478 +vn -0.0558 0.9369 0.3451 +vn 0.0007 0.9375 0.3481 +vn -0.1058 0.8889 0.4458 +vn -0.0952 0.9151 0.3918 +vn -0.1406 0.8890 0.4358 +vn -0.1260 0.9154 0.3824 +vn -0.0842 0.9372 0.3385 +vn -0.1113 0.9376 0.3294 +vn -0.1744 0.8891 0.4233 +vn -0.1550 0.9153 0.3718 +vn -0.2066 0.8891 0.4085 +vn -0.1825 0.9153 0.3591 +vn -0.1360 0.9375 0.3203 +vn -0.1589 0.9374 0.3097 +vn -0.2376 0.8892 0.3911 +vn -0.2089 0.9154 0.3442 +vn -0.2345 0.9155 0.3270 +vn -0.2671 0.8893 0.3713 +vn -0.1809 0.9375 0.2972 +vn -0.2028 0.9376 0.2825 +vn -0.2603 0.9152 0.3075 +vn -0.2954 0.8893 0.3491 +vn -0.3222 0.8893 0.3245 +vn -0.2843 0.9152 0.2856 +vn -0.2468 0.9371 0.2468 +vn -0.2248 0.9374 0.2660 +vn -0.3467 0.8893 0.2982 +vn -0.3062 0.9155 0.2610 +vn -0.3690 0.8895 0.2697 +vn -0.3256 0.9157 0.2354 +vn -0.2658 0.9374 0.2248 +vn -0.2824 0.9379 0.2015 +vn -0.3890 0.8895 0.2397 +vn -0.3428 0.9157 0.2097 +vn -0.4063 0.8896 0.2088 +vn -0.3577 0.9157 0.1833 +vn -0.2969 0.9378 0.1797 +vn -0.3094 0.9378 0.1577 +vn -0.4212 0.8896 0.1765 +vn -0.3703 0.9158 0.1556 +vn -0.3808 0.9159 0.1267 +vn -0.4334 0.8898 0.1431 +vn -0.3198 0.9379 0.1344 +vn -0.3287 0.9380 0.1102 +vn -0.3900 0.9158 0.0961 +vn -0.4434 0.8898 0.1085 +vn -0.3968 0.9157 0.0639 +vn -0.4506 0.8898 0.0728 +vn -0.3435 0.9375 0.0549 +vn -0.3373 0.9377 0.0832 +vn -0.4547 0.8899 0.0367 +vn -0.4002 0.9159 0.0315 +vn -0.4560 0.8900 0.0006 +vn -0.4007 0.9162 -0.0010 +vn -0.3459 0.9379 0.0257 +vn -0.3459 0.9383 -0.0021 +vn -0.4547 0.8900 -0.0351 +vn -0.3996 0.9161 -0.0319 +vn -0.4505 0.8900 -0.0704 +vn -0.3961 0.9161 -0.0620 +vn -0.3448 0.9383 -0.0285 +vn -0.3418 0.9382 -0.0538 +vn -0.4436 0.8900 -0.1052 +vn -0.3900 0.9162 -0.0918 +vn -0.3816 0.9163 -0.1215 +vn -0.4338 0.8901 -0.1395 +vn -0.3293 0.9385 -0.1041 +vn -0.3366 0.9384 -0.0788 +vn -0.3710 0.9162 -0.1516 +vn -0.4215 0.8901 -0.1733 +vn -0.3575 0.9161 -0.1817 +vn -0.4063 0.8901 -0.2064 +vn -0.3090 0.9380 -0.1571 +vn -0.3205 0.9382 -0.1306 +vn -0.3888 0.8901 -0.2379 +vn -0.3409 0.9163 -0.2102 +vn -0.3682 0.8903 -0.2681 +vn -0.3226 0.9165 -0.2366 +vn -0.2939 0.9383 -0.1820 +vn -0.2771 0.9387 -0.2048 +vn -0.3462 0.8902 -0.2961 +vn -0.3035 0.9164 -0.2608 +vn -0.3221 0.8902 -0.3222 +vn -0.2829 0.9164 -0.2832 +vn -0.2607 0.9387 -0.2255 +vn -0.2436 0.9387 -0.2441 +vn -0.2960 0.8902 -0.3463 +vn -0.2605 0.9165 -0.3037 +vn -0.2362 0.9166 -0.3227 +vn -0.2680 0.8903 -0.3683 +vn -0.2042 0.9389 -0.2771 +vn -0.2251 0.9387 -0.2611 +vn -0.2098 0.9164 -0.3409 +vn -0.2381 0.8902 -0.3884 +vn -0.1813 0.9162 -0.3573 +vn -0.2063 0.8902 -0.4062 +vn -0.1564 0.9383 -0.3084 +vn -0.1815 0.9386 -0.2934 +vn -0.1731 0.8902 -0.4214 +vn -0.1510 0.9164 -0.3706 +vn -0.1393 0.8902 -0.4337 +vn -0.1208 0.9166 -0.3811 +vn -0.1295 0.9386 -0.3197 +vn -0.1029 0.9390 -0.3283 +vn -0.1050 0.8901 -0.4434 +vn -0.0910 0.9165 -0.3895 +vn -0.0701 0.8901 -0.4503 +vn -0.0611 0.9164 -0.3955 +vn -0.0773 0.9389 -0.3353 +vn -0.0522 0.9389 -0.3403 +vn -0.0349 0.8901 -0.4545 +vn -0.0312 0.9165 -0.3988 +vn -0.0002 0.9166 -0.3999 +vn 0.0008 0.8901 -0.4558 +vn -0.0011 0.9390 -0.3438 +vn -0.0272 0.9389 -0.3430 +vn 0.0323 0.9163 -0.3992 +vn 0.0369 0.8900 -0.4544 +vn 0.0644 0.9162 -0.3956 +vn 0.0729 0.8899 -0.4502 +vn 0.0560 0.9384 -0.3410 +vn 0.0272 0.9387 -0.3436 +vn 0.1085 0.8899 -0.4431 +vn 0.0968 0.9163 -0.3886 +vn 0.1431 0.8899 -0.4332 +vn 0.1278 0.9165 -0.3791 +vn 0.0844 0.9387 -0.3344 +vn 0.1111 0.9389 -0.3256 +vn 0.1768 0.8898 -0.4206 +vn 0.1566 0.9164 -0.3685 +vn 0.2091 0.8898 -0.4057 +vn 0.1842 0.9162 -0.3558 +vn 0.1360 0.9389 -0.3162 +vn 0.1592 0.9388 -0.3055 +vn 0.2399 0.8897 -0.3884 +vn 0.2102 0.9163 -0.3410 +vn 0.2360 0.9163 -0.3236 +vn 0.2695 0.8897 -0.3685 +vn 0.2026 0.9389 -0.2783 +vn 0.1808 0.9388 -0.2931 +vn 0.2616 0.9160 -0.3040 +vn 0.2979 0.8896 -0.3462 +vn 0.2857 0.9158 -0.2822 +vn 0.3246 0.8895 -0.3216 +vn 0.2470 0.9382 -0.2426 +vn 0.2257 0.9385 -0.2614 +vn 0.3491 0.8894 -0.2950 +vn 0.3077 0.9159 -0.2578 +vn 0.3714 0.8895 -0.2663 +vn 0.3272 0.9161 -0.2318 +vn 0.2660 0.9385 -0.2202 +vn 0.2827 0.9388 -0.1970 +vn 0.3911 0.8893 -0.2370 +vn 0.3443 0.9160 -0.2060 +vn 0.4085 0.8893 -0.2056 +vn 0.3592 0.9158 -0.1795 +vn 0.2972 0.9386 -0.1753 +vn 0.3096 0.9384 -0.1532 +vn 0.4232 0.8893 -0.1735 +vn 0.3713 0.9159 -0.1525 +vn 0.3822 0.9159 -0.1231 +vn 0.4358 0.8891 -0.1398 +vn 0.3198 0.9384 -0.1307 +vn 0.3289 0.9385 -0.1053 +vn 0.3913 0.9156 -0.0922 +vn 0.4453 0.8891 -0.1053 +vn 0.4526 0.8890 -0.0700 +vn 0.3980 0.9154 -0.0604 +vn 0.3436 0.9378 -0.0507 +vn 0.3374 0.9381 -0.0785 +vn 0.4567 0.8890 -0.0340 +vn 0.4013 0.9155 -0.0275 +vn 0.4580 0.8890 0.0022 +vn 0.4019 0.9157 0.0047 +vn 0.3459 0.9380 -0.0217 +vn 0.3458 0.9383 0.0069 +vn 0.4564 0.8890 0.0381 +vn 0.4007 0.9155 0.0356 +vn 0.4522 0.8889 0.0733 +vn 0.3971 0.9154 0.0658 +vn 0.3445 0.9382 0.0335 +vn 0.3417 0.9380 0.0584 +vn 0.4453 0.8889 0.1079 +vn 0.3911 0.9154 0.0951 +vn 0.4355 0.8889 0.1423 +vn 0.3825 0.9155 0.1249 +vn 0.3365 0.9380 0.0829 +vn 0.3292 0.9380 0.1085 +vn 0.3719 0.9152 0.1552 +vn 0.4231 0.8888 0.1761 +vn 0.4080 0.8887 0.2091 +vn 0.3586 0.9150 0.1849 +vn 0.3203 0.9376 0.1351 +vn 0.3092 0.9373 0.1610 +vn 0.3900 0.8888 0.2408 +vn 0.3419 0.9152 0.2135 +vn 0.3699 0.8888 0.2706 +vn 0.3233 0.9153 0.2401 +vn 0.2938 0.9376 0.1861 +vn 0.2768 0.9379 0.2093 +vn 0.3479 0.8887 0.2986 +vn 0.3043 0.9152 0.2642 +vn 0.3238 0.8887 0.3246 +vn 0.2837 0.9151 0.2865 +vn 0.2602 0.9378 0.2300 +vn 0.2430 0.9376 0.2486 +vn 0.2978 0.8887 0.3486 +vn 0.2616 0.9152 0.3067 +vn 0.2697 0.8887 0.3706 +vn 0.2372 0.9152 0.3258 +vn 0.2248 0.9376 0.2652 +vn 0.2039 0.9376 0.2816 +vn 0.2108 0.9150 0.3440 +vn 0.2399 0.8887 0.3907 +vn 0.2083 0.8887 0.4085 +vn 0.1825 0.9148 0.3603 +vn 0.1811 0.9373 0.2979 +vn 0.1565 0.9370 0.3124 +vn 0.1757 0.8886 0.4237 +vn 0.1526 0.9150 0.3736 +vn 0.1413 0.8888 0.4359 +vn 0.1219 0.9152 0.3841 +vn 0.1296 0.9372 0.3237 +vn 0.1023 0.9376 0.3324 +vn 0.1070 0.8888 0.4457 +vn 0.0922 0.9151 0.3925 +vn 0.0723 0.8888 0.4526 +vn 0.0624 0.9151 0.3985 +vn 0.0772 0.9375 0.3394 +vn 0.0521 0.9374 0.3444 +vn 0.0370 0.8888 0.4568 +vn 0.0324 0.9151 0.4019 +vn 0.0271 0.9374 0.3471 +vn 0.0011 0.8598 0.5106 +vn -0.0391 0.8594 0.5098 +vn -0.0002 0.8312 0.5560 +vn -0.0431 0.8314 0.5540 +vn -0.0783 0.8592 0.5055 +vn -0.0856 0.8315 0.5489 +vn -0.1179 0.8593 0.4977 +vn -0.1283 0.8314 0.5406 +vn -0.1565 0.8593 0.4869 +vn -0.1702 0.8314 0.5290 +vn -0.1942 0.8593 0.4731 +vn -0.2111 0.8314 0.5141 +vn -0.2306 0.8594 0.4564 +vn -0.2509 0.8313 0.4959 +vn -0.2655 0.8594 0.4369 +vn -0.2889 0.8312 0.4750 +vn -0.2990 0.8595 0.4146 +vn -0.3254 0.8309 0.4514 +vn -0.3299 0.8598 0.3897 +vn -0.3597 0.8308 0.4247 +vn -0.3597 0.8599 0.3622 +vn -0.3925 0.8307 0.3947 +vn -0.3873 0.8598 0.3328 +vn -0.4229 0.8306 0.3623 +vn -0.4122 0.8597 0.3016 +vn -0.4496 0.8306 0.3286 +vn -0.4345 0.8597 0.2684 +vn -0.4741 0.8305 0.2925 +vn -0.4542 0.8598 0.2334 +vn -0.4957 0.8304 0.2544 +vn -0.4710 0.8598 0.1971 +vn -0.5139 0.8305 0.2150 +vn -0.4848 0.8600 0.1595 +vn -0.5298 0.8301 0.1740 +vn -0.4956 0.8601 0.1209 +vn -0.5416 0.8302 0.1321 +vn -0.5034 0.8602 0.0814 +vn -0.5508 0.8299 0.0888 +vn -0.5082 0.8603 0.0414 +vn -0.5563 0.8298 0.0451 +vn -0.5100 0.8602 0.0016 +vn -0.5581 0.8297 0.0010 +vn -0.5085 0.8602 -0.0389 +vn -0.5565 0.8297 -0.0428 +vn -0.5039 0.8602 -0.0787 +vn -0.5514 0.8298 -0.0864 +vn -0.4962 0.8602 -0.1181 +vn -0.5430 0.8297 -0.1294 +vn -0.4853 0.8602 -0.1567 +vn -0.5311 0.8297 -0.1717 +vn -0.4714 0.8602 -0.1944 +vn -0.5160 0.8297 -0.2130 +vn -0.4546 0.8602 -0.2310 +vn -0.4976 0.8297 -0.2530 +vn -0.4349 0.8603 -0.2661 +vn -0.4763 0.8296 -0.2914 +vn -0.4126 0.8603 -0.2995 +vn -0.4519 0.8295 -0.3280 +vn -0.3878 0.8603 -0.3310 +vn -0.4248 0.8295 -0.3627 +vn -0.3605 0.8603 -0.3604 +vn -0.3950 0.8294 -0.3950 +vn -0.3310 0.8603 -0.3877 +vn -0.3626 0.8299 -0.4239 +vn -0.2995 0.8603 -0.4125 +vn -0.3275 0.8305 -0.4506 +vn -0.2659 0.8602 -0.4351 +vn -0.2907 0.8300 -0.4760 +vn -0.2309 0.8603 -0.4545 +vn -0.2528 0.8298 -0.4975 +vn -0.1943 0.8603 -0.4714 +vn -0.2129 0.8297 -0.5160 +vn -0.1567 0.8603 -0.4852 +vn -0.1717 0.8297 -0.5312 +vn -0.1180 0.8602 -0.4961 +vn -0.1294 0.8296 -0.5431 +vn -0.0787 0.8602 -0.5038 +vn -0.0864 0.8296 -0.5516 +vn -0.0388 0.8602 -0.5085 +vn -0.0427 0.8296 -0.5567 +vn 0.0013 0.8601 -0.5100 +vn 0.0015 0.8296 -0.5584 +vn 0.0415 0.8601 -0.5085 +vn 0.0453 0.8296 -0.5565 +vn 0.0813 0.8600 -0.5037 +vn 0.0885 0.8302 -0.5504 +vn 0.1208 0.8600 -0.4958 +vn 0.1316 0.8303 -0.5415 +vn 0.1594 0.8599 -0.4849 +vn 0.1738 0.8303 -0.5295 +vn 0.1971 0.8599 -0.4709 +vn 0.2149 0.8303 -0.5143 +vn 0.2334 0.8598 -0.4541 +vn 0.2545 0.8303 -0.4958 +vn 0.2684 0.8598 -0.4345 +vn 0.2926 0.8303 -0.4743 +vn 0.3017 0.8597 -0.4121 +vn 0.3288 0.8305 -0.4497 +vn 0.3332 0.8597 -0.3872 +vn 0.3631 0.8305 -0.4224 +vn 0.3626 0.8597 -0.3599 +vn 0.3951 0.8306 -0.3925 +vn 0.3899 0.8596 -0.3303 +vn 0.4241 0.8310 -0.3601 +vn 0.4148 0.8593 -0.2992 +vn 0.4507 0.8313 -0.3254 +vn 0.4368 0.8595 -0.2655 +vn 0.4745 0.8314 -0.2890 +vn 0.4564 0.8594 -0.2304 +vn 0.4969 0.8308 -0.2509 +vn 0.4731 0.8594 -0.1941 +vn 0.5149 0.8307 -0.2116 +vn 0.4869 0.8594 -0.1564 +vn 0.5289 0.8313 -0.1706 +vn 0.4977 0.8593 -0.1178 +vn 0.5402 0.8317 -0.1283 +vn 0.5054 0.8593 -0.0785 +vn 0.5484 0.8318 -0.0854 +vn 0.5100 0.8593 -0.0387 +vn 0.5533 0.8319 -0.0429 +vn 0.5112 0.8595 0.0012 +vn 0.5549 0.8319 0.0003 +vn 0.5093 0.8596 0.0413 +vn 0.5533 0.8318 0.0444 +vn 0.5046 0.8595 0.0814 +vn 0.5481 0.8317 0.0887 +vn 0.4970 0.8593 0.1204 +vn 0.5393 0.8319 0.1306 +vn 0.4861 0.8594 0.1587 +vn 0.5278 0.8323 0.1693 +vn 0.4710 0.8603 0.1951 +vn 0.5138 0.8321 0.2090 +vn 0.4527 0.8613 0.2307 +vn 0.4960 0.8315 0.2503 +vn 0.4322 0.8619 0.2651 +vn 0.4745 0.8309 0.2906 +vn 0.4100 0.8620 0.2981 +vn 0.4499 0.8309 0.3275 +vn 0.3853 0.8618 0.3298 +vn 0.4227 0.8307 0.3622 +vn 0.3586 0.8616 0.3594 +vn 0.3926 0.8308 0.3946 +vn 0.3299 0.8613 0.3864 +vn 0.3605 0.8310 0.4237 +vn 0.2990 0.8610 0.4113 +vn 0.3261 0.8311 0.4505 +vn 0.2662 0.8607 0.4341 +vn 0.2887 0.8309 0.4757 +vn 0.2317 0.8599 0.4549 +vn 0.2503 0.8311 0.4967 +vn 0.1961 0.8592 0.4725 +vn 0.2127 0.8315 0.5132 +vn 0.1590 0.8592 0.4862 +vn 0.1729 0.8316 0.5278 +vn 0.1204 0.8593 0.4971 +vn 0.1312 0.8316 0.5396 +vn 0.0813 0.8597 0.5042 +vn 0.0889 0.8317 0.5480 +vn 0.0412 0.8599 0.5088 +vn 0.0446 0.8314 0.5539 +vn 0.0005 0.8011 0.5985 +vn -0.0460 0.8016 0.5961 +vn 0.0006 0.7282 0.6854 +vn -0.0531 0.7273 0.6843 +vn -0.0924 0.8017 0.5906 +vn -0.1065 0.7265 0.6788 +vn -0.1386 0.8012 0.5821 +vn -0.1596 0.7267 0.6682 +vn -0.1839 0.8009 0.5699 +vn -0.2122 0.7258 0.6543 +vn -0.2281 0.8004 0.5543 +vn -0.2641 0.7228 0.6386 +vn -0.2712 0.8002 0.5349 +vn -0.3138 0.7209 0.6180 +vn -0.3126 0.8000 0.5122 +vn -0.3611 0.7203 0.5923 +vn -0.3512 0.8001 0.4863 +vn -0.4076 0.7193 0.5625 +vn -0.3887 0.7996 0.4578 +vn -0.4530 0.7158 0.5315 +vn -0.4241 0.7992 0.4260 +vn -0.4947 0.7137 0.4960 +vn -0.4566 0.7990 0.3913 +vn -0.5327 0.7129 0.4561 +vn -0.4860 0.7988 0.3545 +vn -0.5679 0.7118 0.4133 +vn -0.5127 0.7984 0.3157 +vn -0.6002 0.7102 0.3680 +vn -0.5361 0.7982 0.2747 +vn -0.6286 0.7082 0.3215 +vn -0.5562 0.7981 0.2317 +vn -0.6532 0.7068 0.2718 +vn -0.5724 0.7983 0.1875 +vn -0.6745 0.7046 0.2204 +vn -0.5855 0.7981 0.1420 +vn -0.6912 0.7031 0.1668 +vn -0.5952 0.7979 0.0955 +vn -0.7040 0.7012 0.1124 +vn -0.6011 0.7977 0.0484 +vn -0.7113 0.7006 0.0564 +vn -0.6031 0.7977 0.0010 +vn -0.7155 0.6987 0.0008 +vn -0.6013 0.7977 -0.0463 +vn -0.7143 0.6977 -0.0554 +vn -0.5957 0.7978 -0.0934 +vn -0.7094 0.6960 -0.1115 +vn -0.5866 0.7977 -0.1400 +vn -0.6989 0.6954 -0.1672 +vn -0.5739 0.7976 -0.1857 +vn -0.6846 0.6944 -0.2218 +vn -0.5577 0.7974 -0.2303 +vn -0.6647 0.6947 -0.2750 +vn -0.5379 0.7974 -0.2736 +vn -0.6418 0.6937 -0.3269 +vn -0.5148 0.7973 -0.3152 +vn -0.6147 0.6930 -0.3767 +vn -0.4885 0.7971 -0.3548 +vn -0.5839 0.6922 -0.4241 +vn -0.4593 0.7969 -0.3924 +vn -0.5481 0.6929 -0.4685 +vn -0.4277 0.7966 -0.4273 +vn -0.5100 0.6929 -0.5097 +vn -0.3936 0.7966 -0.4588 +vn -0.4689 0.6942 -0.5462 +vn -0.3549 0.7970 -0.4887 +vn -0.4222 0.6955 -0.5814 +vn -0.3144 0.7969 -0.5159 +vn -0.3747 0.6942 -0.6146 +vn -0.2737 0.7972 -0.5382 +vn -0.3272 0.6933 -0.6421 +vn -0.2303 0.7973 -0.5578 +vn -0.2752 0.6939 -0.6654 +vn -0.1857 0.7974 -0.5741 +vn -0.2217 0.6947 -0.6843 +vn -0.1399 0.7974 -0.5869 +vn -0.1669 0.6960 -0.6984 +vn -0.0935 0.7974 -0.5961 +vn -0.1115 0.6969 -0.7085 +vn -0.0464 0.7975 -0.6016 +vn -0.0553 0.6983 -0.7136 +vn 0.0010 0.7973 -0.6036 +vn -0.0001 0.7006 -0.7136 +vn 0.0478 0.7976 -0.6013 +vn 0.0536 0.7079 -0.7042 +vn 0.0943 0.7991 -0.5938 +vn 0.1061 0.7169 -0.6890 +vn 0.1402 0.8013 -0.5816 +vn 0.1620 0.7222 -0.6725 +vn 0.1869 0.8009 -0.5689 +vn 0.2171 0.7173 -0.6620 +vn 0.2310 0.8005 -0.5530 +vn 0.2657 0.7216 -0.6393 +vn 0.2738 0.8002 -0.5335 +vn 0.3162 0.7260 -0.6107 +vn 0.3156 0.7992 -0.5115 +vn 0.3681 0.7150 -0.5944 +vn 0.3550 0.7988 -0.4857 +vn 0.4131 0.7124 -0.5673 +vn 0.3912 0.7994 -0.4559 +vn 0.4535 0.7164 -0.5302 +vn 0.4249 0.7999 -0.4237 +vn 0.4938 0.7170 -0.4919 +vn 0.4575 0.7995 -0.3892 +vn 0.5318 0.7159 -0.4524 +vn 0.4867 0.7995 -0.3520 +vn 0.5645 0.7169 -0.4091 +vn 0.5137 0.7994 -0.3116 +vn 0.5918 0.7199 -0.3628 +vn 0.5342 0.8010 -0.2702 +vn 0.6100 0.7291 -0.3102 +vn 0.5532 0.8011 -0.2284 +vn 0.6349 0.7271 -0.2612 +vn 0.5698 0.8008 -0.1845 +vn 0.6563 0.7241 -0.2122 +vn 0.5825 0.8009 -0.1390 +vn 0.6712 0.7237 -0.1603 +vn 0.5913 0.8011 -0.0924 +vn 0.6806 0.7248 -0.1071 +vn 0.5964 0.8013 -0.0459 +vn 0.6857 0.7260 -0.0533 +vn 0.5983 0.8013 0.0007 +vn 0.6866 0.7271 0.0006 +vn 0.5965 0.8012 0.0477 +vn 0.6830 0.7284 0.0544 +vn 0.5906 0.8014 0.0947 +vn 0.6760 0.7290 0.1076 +vn 0.5810 0.8017 0.1404 +vn 0.6643 0.7302 0.1601 +vn 0.5689 0.8014 0.1848 +vn 0.6493 0.7306 0.2113 +vn 0.5547 0.7997 0.2298 +vn 0.6293 0.7320 0.2612 +vn 0.5363 0.7986 0.2733 +vn 0.6068 0.7321 0.3095 +vn 0.5137 0.7980 0.3152 +vn 0.5799 0.7329 0.3558 +vn 0.4872 0.7981 0.3544 +vn 0.5503 0.7329 0.4000 +vn 0.4576 0.7984 0.3914 +vn 0.5167 0.7335 0.4416 +vn 0.4251 0.7990 0.4253 +vn 0.4809 0.7332 0.4808 +vn 0.3901 0.7993 0.4571 +vn 0.4414 0.7334 0.5170 +vn 0.3528 0.7999 0.4855 +vn 0.4002 0.7327 0.5505 +vn 0.3125 0.8005 0.5113 +vn 0.3555 0.7330 0.5800 +vn 0.2708 0.8019 0.5325 +vn 0.3093 0.7328 0.6061 +vn 0.2288 0.8026 0.5509 +vn 0.2603 0.7339 0.6274 +vn 0.1855 0.8023 0.5673 +vn 0.2109 0.7323 0.6475 +vn 0.1407 0.8018 0.5808 +vn 0.1592 0.7316 0.6629 +vn 0.0945 0.8011 0.5910 +vn 0.1075 0.7298 0.6751 +vn 0.0477 0.8009 0.5968 +vn 0.0542 0.7292 0.6822 +vn -0.1344 0.4977 0.8569 +vn -0.0673 0.4885 0.8700 +vn 0.0001 0.4900 0.8717 +vn -0.0776 -0.0405 0.9962 +vn -0.0002 -0.0409 0.9992 +vn -0.1544 -0.0505 0.9867 +vn -0.2684 0.5031 0.8215 +vn -0.2009 0.5039 0.8400 +vn -0.2319 -0.0578 0.9710 +vn -0.3095 -0.0612 0.9489 +vn -0.3969 0.4835 0.7802 +vn -0.3350 0.4864 0.8070 +vn -0.3844 -0.0433 0.9221 +vn -0.4534 -0.0434 0.8903 +vn -0.5109 0.4977 0.7009 +vn -0.4552 0.4850 0.7467 +vn -0.5203 -0.0476 0.8527 +vn -0.5866 -0.0617 0.8075 +vn -0.6229 0.4728 0.6233 +vn -0.5716 0.4764 0.6681 +vn -0.6510 -0.0400 0.7580 +vn -0.7066 -0.0393 0.7065 +vn -0.7118 0.4755 0.5169 +vn -0.6695 0.4730 0.5727 +vn -0.7594 -0.0411 0.6493 +vn -0.8081 -0.0455 0.5872 +vn -0.7877 0.4670 0.4017 +vn -0.7528 0.4699 0.4610 +vn -0.8524 -0.0396 0.5214 +vn -0.8904 -0.0392 0.4536 +vn -0.8434 0.4620 0.2744 +vn -0.8177 0.4651 0.3391 +vn -0.9232 -0.0392 0.3824 +vn -0.9503 -0.0392 0.3087 +vn -0.8783 0.4573 0.1393 +vn -0.8636 0.4595 0.2076 +vn -0.9717 -0.0389 0.2332 +vn -0.9870 -0.0385 0.1563 +vn -0.8909 0.4543 0.0002 +vn -0.8874 0.4557 0.0700 +vn -0.9962 -0.0384 0.0784 +vn -0.9993 -0.0384 0.0000 +vn -0.8815 0.4512 -0.1394 +vn -0.8888 0.4530 -0.0698 +vn -0.9962 -0.0384 -0.0784 +vn -0.9870 -0.0385 -0.1563 +vn -0.8488 0.4515 -0.2753 +vn -0.8681 0.4507 -0.2081 +vn -0.9717 -0.0389 -0.2331 +vn -0.9504 -0.0415 -0.3083 +vn -0.7953 0.4506 -0.4055 +vn -0.8237 0.4529 -0.3411 +vn -0.9231 -0.0438 -0.3821 +vn -0.8900 -0.0433 -0.4539 +vn -0.7238 0.4468 -0.5258 +vn -0.7622 0.4479 -0.4674 +vn -0.8517 -0.0390 -0.5225 +vn -0.8084 -0.0387 -0.5874 +vn -0.6325 0.4481 -0.6317 +vn -0.6799 0.4477 -0.5808 +vn -0.7598 -0.0386 -0.6490 +vn -0.7068 -0.0389 -0.7063 +vn -0.5236 0.4536 -0.7212 +vn -0.5815 0.4512 -0.6770 +vn -0.6502 -0.0457 -0.7584 +vn -0.5872 -0.0723 -0.8062 +vn -0.4056 0.4488 -0.7963 +vn -0.4646 0.4506 -0.7623 +vn -0.5197 -0.0445 -0.8532 +vn -0.4534 -0.0424 -0.8903 +vn -0.2759 0.4499 -0.8494 +vn -0.3417 0.4493 -0.8254 +vn -0.3823 -0.0407 -0.9231 +vn -0.3087 -0.0406 -0.9503 +vn -0.1394 0.4520 -0.8811 +vn -0.2080 0.4516 -0.8677 +vn -0.2331 -0.0399 -0.9716 +vn -0.1562 -0.0392 -0.9869 +vn -0.0034 0.4591 -0.8884 +vn -0.0698 0.4541 -0.8882 +vn -0.0786 -0.0394 -0.9961 +vn -0.0031 -0.0429 -0.9991 +vn 0.1288 0.5049 -0.8535 +vn 0.0621 0.4876 -0.8709 +vn 0.0706 -0.0812 -0.9942 +vn 0.1476 -0.1355 -0.9797 +vn 0.2720 0.4842 -0.8316 +vn 0.2036 0.5037 -0.8396 +vn 0.2305 -0.1644 -0.9591 +vn 0.3108 -0.1239 -0.9424 +vn 0.3871 0.5485 -0.7411 +vn 0.3274 0.4981 -0.8029 +vn 0.3733 -0.1360 -0.9177 +vn 0.4496 -0.1605 -0.8787 +vn 0.5164 0.4761 -0.7118 +vn 0.4597 0.4989 -0.7347 +vn 0.5327 -0.0749 -0.8430 +vn 0.5887 -0.0467 -0.8070 +vn 0.6156 0.4968 -0.6118 +vn 0.5638 0.4951 -0.6611 +vn 0.6460 -0.0679 -0.7603 +vn 0.7070 -0.0659 -0.7041 +vn 0.7114 0.4764 -0.5167 +vn 0.6689 0.4783 -0.5691 +vn 0.7619 -0.0413 -0.6464 +vn 0.8086 -0.0389 -0.5871 +vn 0.7515 0.5374 -0.3826 +vn 0.7435 0.4823 -0.4633 +vn 0.8487 -0.0442 -0.5271 +vn 0.8836 -0.1040 -0.4566 +vn 0.8273 0.4946 -0.2663 +vn 0.7906 0.5203 -0.3228 +vn 0.9234 -0.0768 -0.3761 +vn 0.9513 -0.0489 -0.3043 +vn 0.8638 0.4849 -0.1366 +vn 0.8507 0.4846 -0.2036 +vn 0.9720 -0.0390 -0.2319 +vn 0.9870 -0.0389 -0.1562 +vn 0.8738 0.4863 0.0001 +vn 0.8715 0.4857 -0.0684 +vn 0.9962 -0.0385 -0.0783 +vn 0.9993 -0.0384 0.0000 +vn 0.8617 0.4887 0.1365 +vn 0.8702 0.4879 0.0687 +vn 0.9962 -0.0384 0.0784 +vn 0.9870 -0.0384 0.1563 +vn 0.8286 0.4908 0.2693 +vn 0.8476 0.4900 0.2036 +vn 0.9717 -0.0384 0.2333 +vn 0.9504 -0.0384 0.3088 +vn 0.7756 0.4921 0.3953 +vn 0.8045 0.4915 0.3334 +vn 0.9232 -0.0384 0.3824 +vn 0.8903 -0.0385 0.4537 +vn 0.7039 0.4930 0.5114 +vn 0.7420 0.4926 0.4548 +vn 0.8520 -0.0384 0.5221 +vn 0.8084 -0.0384 0.5874 +vn 0.6153 0.4929 0.6152 +vn 0.6612 0.4935 0.5649 +vn 0.7598 -0.0384 0.6490 +vn 0.7066 -0.0384 0.7066 +vn 0.5114 0.4932 0.7037 +vn 0.5647 0.4936 0.6614 +vn 0.6490 -0.0385 0.7598 +vn 0.5874 -0.0386 0.8084 +vn 0.3957 0.4941 0.7741 +vn 0.4546 0.4934 0.7415 +vn 0.5222 -0.0390 0.8519 +vn 0.4545 -0.0402 0.8898 +vn 0.2672 0.5015 0.8229 +vn 0.3306 0.5042 0.7978 +vn 0.3832 -0.0483 0.9224 +vn 0.3082 -0.0471 0.9501 +vn 0.1362 0.4936 0.8590 +vn 0.2022 0.4975 0.8436 +vn 0.2326 -0.0437 0.9716 +vn 0.1560 -0.0423 0.9869 +vn 0.0683 0.4923 0.8677 +vn 0.0783 -0.0415 0.9961 +vn -0.1194 -0.6396 0.7594 +vn -0.0614 -0.6235 0.7794 +vn -0.0001 -0.6250 0.7807 +vn -0.0291 -0.9286 0.3699 +vn 0.0000 -0.9286 0.3711 +vn -0.0581 -0.9286 0.3665 +vn -0.2334 -0.6547 0.7189 +vn -0.1767 -0.6506 0.7385 +vn -0.0866 -0.9286 0.3608 +vn -0.1147 -0.9286 0.3529 +vn -0.3538 -0.6268 0.6942 +vn -0.2990 -0.6287 0.7179 +vn -0.1420 -0.9286 0.3429 +vn -0.1685 -0.9286 0.3307 +vn -0.4424 -0.6563 0.6112 +vn -0.4048 -0.6317 0.6611 +vn -0.1939 -0.9286 0.3164 +vn -0.2181 -0.9286 0.3002 +vn -0.5538 -0.6220 0.5536 +vn -0.5082 -0.6253 0.5922 +vn -0.2410 -0.9286 0.2822 +vn -0.2624 -0.9286 0.2624 +vn -0.6273 -0.6311 0.4562 +vn -0.5941 -0.6241 0.5076 +vn -0.2822 -0.9286 0.2410 +vn -0.3002 -0.9286 0.2181 +vn -0.6982 -0.6213 0.3556 +vn -0.6672 -0.6230 0.4083 +vn -0.3164 -0.9286 0.1939 +vn -0.3307 -0.9286 0.1685 +vn -0.7449 -0.6217 0.2420 +vn -0.7236 -0.6217 0.2998 +vn -0.3428 -0.9286 0.1420 +vn -0.3530 -0.9286 0.1147 +vn -0.7744 -0.6207 0.1226 +vn -0.7620 -0.6212 0.1829 +vn -0.3609 -0.9286 0.0866 +vn -0.3665 -0.9286 0.0581 +vn -0.7842 -0.6205 -0.0000 +vn -0.7818 -0.6205 0.0615 +vn -0.3700 -0.9286 0.0291 +vn -0.3711 -0.9286 -0.0000 +vn -0.7744 -0.6207 -0.1226 +vn -0.7818 -0.6205 -0.0615 +vn -0.3700 -0.9286 -0.0291 +vn -0.3665 -0.9286 -0.0581 +vn -0.7429 -0.6245 -0.2411 +vn -0.7620 -0.6213 -0.1829 +vn -0.3608 -0.9286 -0.0866 +vn -0.3529 -0.9286 -0.1147 +vn -0.6941 -0.6269 -0.3537 +vn -0.7192 -0.6278 -0.2977 +vn -0.3429 -0.9286 -0.1420 +vn -0.3307 -0.9286 -0.1685 +vn -0.6342 -0.6208 -0.4608 +vn -0.6678 -0.6216 -0.4096 +vn -0.3164 -0.9286 -0.1939 +vn -0.3003 -0.9286 -0.2181 +vn -0.5544 -0.6208 -0.5544 +vn -0.5962 -0.6207 -0.5092 +vn -0.2822 -0.9286 -0.2410 +vn -0.2624 -0.9286 -0.2624 +vn -0.4483 -0.6487 -0.6150 +vn -0.5065 -0.6264 -0.5926 +vn -0.2410 -0.9286 -0.2822 +vn -0.2181 -0.9286 -0.3002 +vn -0.3546 -0.6241 -0.6962 +vn -0.4061 -0.6264 -0.6653 +vn -0.1939 -0.9286 -0.3164 +vn -0.1685 -0.9286 -0.3307 +vn -0.2417 -0.6231 -0.7439 +vn -0.2993 -0.6229 -0.7228 +vn -0.1420 -0.9286 -0.3429 +vn -0.1147 -0.9286 -0.3530 +vn -0.1225 -0.6214 -0.7739 +vn -0.1826 -0.6229 -0.7607 +vn -0.0866 -0.9286 -0.3608 +vn -0.0581 -0.9286 -0.3665 +vn -0.0002 -0.6247 -0.7809 +vn -0.0615 -0.6212 -0.7812 +vn -0.0291 -0.9286 -0.3699 +vn 0.0000 -0.9286 -0.3711 +vn 0.1057 -0.7196 -0.6863 +vn 0.0556 -0.6708 -0.7396 +vn 0.0291 -0.9286 -0.3699 +vn 0.0581 -0.9286 -0.3665 +vn 0.2245 -0.6967 -0.6813 +vn 0.1563 -0.7383 -0.6561 +vn 0.0866 -0.9286 -0.3608 +vn 0.1147 -0.9286 -0.3529 +vn 0.2890 -0.7650 -0.5756 +vn 0.2693 -0.7084 -0.6524 +vn 0.1420 -0.9286 -0.3428 +vn 0.1684 -0.9286 -0.3306 +vn 0.4571 -0.6328 -0.6250 +vn 0.3904 -0.6766 -0.6244 +vn 0.1939 -0.9286 -0.3163 +vn 0.2181 -0.9286 -0.3002 +vn 0.5296 -0.6625 -0.5297 +vn 0.4860 -0.6611 -0.5717 +vn 0.2410 -0.9286 -0.2821 +vn 0.2624 -0.9286 -0.2624 +vn 0.6339 -0.6216 -0.4602 +vn 0.5931 -0.6279 -0.5039 +vn 0.2821 -0.9286 -0.2410 +vn 0.3002 -0.9286 -0.2181 +vn 0.6232 -0.7121 -0.3232 +vn 0.6659 -0.6244 -0.4083 +vn 0.3164 -0.9286 -0.1939 +vn 0.3306 -0.9286 -0.1685 +vn 0.7306 -0.6412 -0.2347 +vn 0.6754 -0.6833 -0.2775 +vn 0.3428 -0.9286 -0.1420 +vn 0.3529 -0.9286 -0.1147 +vn 0.7739 -0.6214 -0.1225 +vn 0.7611 -0.6227 -0.1817 +vn 0.3608 -0.9286 -0.0866 +vn 0.3665 -0.9286 -0.0581 +vn 0.7842 -0.6205 0.0000 +vn 0.7816 -0.6208 -0.0615 +vn 0.3699 -0.9286 -0.0291 +vn 0.3711 -0.9286 0.0000 +vn 0.7746 -0.6205 0.1227 +vn 0.7818 -0.6205 0.0615 +vn 0.3700 -0.9286 0.0291 +vn 0.3665 -0.9286 0.0581 +vn 0.7458 -0.6205 0.2423 +vn 0.7625 -0.6205 0.1831 +vn 0.3608 -0.9286 0.0866 +vn 0.3530 -0.9286 0.1147 +vn 0.6987 -0.6205 0.3560 +vn 0.7245 -0.6205 0.3001 +vn 0.3429 -0.9286 0.1420 +vn 0.3307 -0.9286 0.1685 +vn 0.6344 -0.6205 0.4609 +vn 0.6686 -0.6205 0.4097 +vn 0.3164 -0.9286 0.1939 +vn 0.3002 -0.9286 0.2181 +vn 0.5545 -0.6205 0.5545 +vn 0.5963 -0.6205 0.5093 +vn 0.2821 -0.9286 0.2410 +vn 0.2624 -0.9286 0.2624 +vn 0.4608 -0.6208 0.6342 +vn 0.5093 -0.6206 0.5963 +vn 0.2410 -0.9286 0.2821 +vn 0.2181 -0.9286 0.3002 +vn 0.3552 -0.6229 0.6970 +vn 0.4094 -0.6215 0.6679 +vn 0.1939 -0.9286 0.3164 +vn 0.1685 -0.9286 0.3307 +vn 0.2383 -0.6363 0.7338 +vn 0.2956 -0.6376 0.7114 +vn 0.1420 -0.9286 0.3428 +vn 0.1147 -0.9286 0.3530 +vn 0.1217 -0.6269 0.7695 +vn 0.1808 -0.6311 0.7544 +vn 0.0866 -0.9286 0.3609 +vn 0.0581 -0.9286 0.3665 +vn 0.0611 -0.6261 0.7773 +vn 0.0291 -0.9286 0.3699 +vn -0.0027 -0.9999 0.0169 +vn -0.0013 -0.9999 0.0171 +vn 0.0000 -0.9999 0.0171 +vn 0.0161 -0.9788 -0.2042 +vn -0.0000 -0.9788 -0.2048 +vn 0.0320 -0.9788 -0.2023 +vn -0.0053 -0.9999 0.0163 +vn -0.0040 -0.9999 0.0166 +vn 0.0478 -0.9788 -0.1991 +vn 0.0633 -0.9788 -0.1948 +vn -0.0078 -0.9999 0.0153 +vn -0.0065 -0.9999 0.0158 +vn 0.0784 -0.9788 -0.1892 +vn 0.0930 -0.9788 -0.1825 +vn -0.0101 -0.9999 0.0139 +vn -0.0089 -0.9999 0.0146 +vn 0.1070 -0.9788 -0.1746 +vn 0.1204 -0.9788 -0.1657 +vn -0.0121 -0.9999 0.0121 +vn -0.0111 -0.9999 0.0130 +vn 0.1330 -0.9788 -0.1557 +vn 0.1448 -0.9788 -0.1448 +vn -0.0138 -0.9999 0.0101 +vn -0.0130 -0.9999 0.0111 +vn 0.1557 -0.9788 -0.1330 +vn 0.1657 -0.9788 -0.1204 +vn -0.0153 -0.9999 0.0078 +vn -0.0146 -0.9999 0.0089 +vn 0.1746 -0.9788 -0.1070 +vn 0.1825 -0.9788 -0.0930 +vn -0.0163 -0.9999 0.0053 +vn -0.0158 -0.9999 0.0065 +vn 0.1892 -0.9788 -0.0784 +vn 0.1947 -0.9788 -0.0633 +vn -0.0169 -0.9999 0.0027 +vn -0.0166 -0.9999 0.0040 +vn 0.1991 -0.9788 -0.0478 +vn 0.2022 -0.9788 -0.0320 +vn -0.0171 -0.9999 -0.0000 +vn -0.0170 -0.9999 0.0013 +vn 0.2041 -0.9788 -0.0161 +vn 0.2047 -0.9788 -0.0000 +vn -0.0169 -0.9999 -0.0027 +vn -0.0170 -0.9999 -0.0013 +vn 0.2041 -0.9788 0.0161 +vn 0.2022 -0.9788 0.0320 +vn -0.0163 -0.9999 -0.0053 +vn -0.0166 -0.9999 -0.0040 +vn 0.1991 -0.9788 0.0478 +vn 0.1947 -0.9788 0.0633 +vn -0.0153 -0.9999 -0.0078 +vn -0.0158 -0.9999 -0.0066 +vn 0.1892 -0.9788 0.0784 +vn 0.1824 -0.9788 0.0930 +vn -0.0139 -0.9999 -0.0101 +vn -0.0146 -0.9999 -0.0089 +vn 0.1746 -0.9788 0.1070 +vn 0.1657 -0.9788 0.1204 +vn -0.0121 -0.9999 -0.0121 +vn -0.0130 -0.9999 -0.0111 +vn 0.1557 -0.9788 0.1330 +vn 0.1448 -0.9788 0.1448 +vn -0.0101 -0.9999 -0.0138 +vn -0.0111 -0.9999 -0.0130 +vn 0.1330 -0.9788 0.1557 +vn 0.1204 -0.9788 0.1657 +vn -0.0078 -0.9999 -0.0153 +vn -0.0089 -0.9999 -0.0146 +vn 0.1070 -0.9788 0.1746 +vn 0.0930 -0.9788 0.1825 +vn -0.0053 -0.9999 -0.0163 +vn -0.0066 -0.9999 -0.0158 +vn 0.0784 -0.9788 0.1892 +vn 0.0633 -0.9788 0.1948 +vn -0.0027 -0.9999 -0.0169 +vn -0.0040 -0.9999 -0.0167 +vn 0.0478 -0.9788 0.1991 +vn 0.0320 -0.9788 0.2023 +vn -0.0000 -0.9999 -0.0172 +vn -0.0013 -0.9999 -0.0171 +vn 0.0161 -0.9788 0.2042 +vn -0.0000 -0.9788 0.2048 +vn 0.0027 -0.9999 -0.0170 +vn 0.0013 -0.9999 -0.0171 +vn -0.0161 -0.9788 0.2042 +vn -0.0320 -0.9788 0.2022 +vn 0.0053 -0.9999 -0.0163 +vn 0.0040 -0.9999 -0.0167 +vn -0.0478 -0.9788 0.1991 +vn -0.0633 -0.9788 0.1947 +vn 0.0078 -0.9999 -0.0153 +vn 0.0066 -0.9999 -0.0159 +vn -0.0783 -0.9788 0.1891 +vn -0.0929 -0.9788 0.1824 +vn 0.0101 -0.9999 -0.0139 +vn 0.0090 -0.9999 -0.0146 +vn -0.1070 -0.9788 0.1746 +vn -0.1203 -0.9788 0.1656 +vn 0.0121 -0.9999 -0.0121 +vn 0.0111 -0.9999 -0.0130 +vn -0.1330 -0.9788 0.1557 +vn -0.1448 -0.9788 0.1448 +vn 0.0139 -0.9999 -0.0101 +vn 0.0131 -0.9999 -0.0111 +vn -0.1557 -0.9788 0.1330 +vn -0.1656 -0.9788 0.1203 +vn 0.0153 -0.9999 -0.0078 +vn 0.0146 -0.9999 -0.0090 +vn -0.1746 -0.9788 0.1070 +vn -0.1824 -0.9788 0.0930 +vn 0.0163 -0.9999 -0.0053 +vn 0.0158 -0.9999 -0.0065 +vn -0.1892 -0.9788 0.0784 +vn -0.1947 -0.9788 0.0633 +vn 0.0170 -0.9999 -0.0027 +vn 0.0166 -0.9999 -0.0040 +vn -0.1991 -0.9788 0.0478 +vn -0.2022 -0.9788 0.0320 +vn 0.0171 -0.9999 0.0000 +vn 0.0171 -0.9999 -0.0013 +vn -0.2041 -0.9788 0.0161 +vn -0.2047 -0.9788 0.0000 +vn 0.0169 -0.9999 0.0027 +vn 0.0171 -0.9999 0.0013 +vn -0.2041 -0.9788 -0.0161 +vn -0.2022 -0.9788 -0.0320 +vn 0.0163 -0.9999 0.0053 +vn 0.0166 -0.9999 0.0040 +vn -0.1991 -0.9788 -0.0478 +vn -0.1947 -0.9788 -0.0633 +vn 0.0153 -0.9999 0.0078 +vn 0.0158 -0.9999 0.0065 +vn -0.1892 -0.9788 -0.0784 +vn -0.1824 -0.9788 -0.0930 +vn 0.0139 -0.9999 0.0101 +vn 0.0146 -0.9999 0.0089 +vn -0.1746 -0.9788 -0.1070 +vn -0.1656 -0.9788 -0.1203 +vn 0.0121 -0.9999 0.0121 +vn 0.0131 -0.9999 0.0112 +vn -0.1557 -0.9788 -0.1330 +vn -0.1448 -0.9788 -0.1448 +vn 0.0101 -0.9999 0.0139 +vn 0.0112 -0.9999 0.0130 +vn -0.1330 -0.9788 -0.1557 +vn -0.1204 -0.9788 -0.1657 +vn 0.0078 -0.9999 0.0153 +vn 0.0090 -0.9999 0.0146 +vn -0.1070 -0.9788 -0.1746 +vn -0.0930 -0.9788 -0.1825 +vn 0.0053 -0.9999 0.0163 +vn 0.0066 -0.9999 0.0158 +vn -0.0784 -0.9788 -0.1892 +vn -0.0633 -0.9788 -0.1948 +vn 0.0027 -0.9999 0.0169 +vn 0.0040 -0.9999 0.0167 +vn -0.0478 -0.9788 -0.1991 +vn -0.0320 -0.9788 -0.2023 +vn 0.0013 -0.9999 0.0171 +vn -0.0161 -0.9788 -0.2042 +vn -0.3192 -0.0520 -0.9463 +vn -0.3222 -0.1036 -0.9410 +vn -0.4647 -0.0420 -0.8845 +vn -0.4672 -0.0838 -0.8802 +vn -0.3273 -0.1546 -0.9322 +vn -0.3344 -0.2046 -0.9200 +vn -0.4713 -0.1250 -0.8731 +vn -0.4770 -0.1655 -0.8632 +vn -0.3433 -0.2534 -0.9044 +vn -0.3542 -0.3006 -0.8855 +vn -0.4843 -0.2050 -0.8506 +vn -0.4931 -0.2432 -0.8353 +vn -0.3669 -0.3460 -0.8635 +vn -0.3814 -0.3892 -0.8385 +vn -0.5033 -0.2798 -0.8175 +vn -0.5150 -0.3148 -0.7973 +vn -0.3975 -0.4301 -0.8106 +vn -0.4151 -0.4682 -0.7800 +vn -0.5280 -0.3478 -0.7747 +vn -0.5423 -0.3787 -0.7500 +vn -0.4342 -0.5035 -0.7469 +vn -0.4546 -0.5357 -0.7116 +vn -0.5577 -0.4073 -0.7233 +vn -0.5742 -0.4333 -0.6947 +vn -0.4762 -0.5646 -0.6741 +vn -0.4989 -0.5900 -0.6348 +vn -0.5917 -0.4567 -0.6644 +vn -0.6100 -0.4772 -0.6326 +vn -0.5224 -0.6118 -0.5939 +vn -0.5468 -0.6298 -0.5517 +vn -0.6291 -0.4948 -0.5995 +vn -0.6488 -0.5094 -0.5653 +vn -0.5718 -0.6439 -0.5083 +vn -0.5973 -0.6541 -0.4642 +vn -0.6690 -0.5208 -0.5303 +vn -0.6896 -0.5290 -0.4945 +vn -0.6231 -0.6602 -0.4194 +vn -0.6491 -0.6622 -0.3744 +vn -0.7105 -0.5339 -0.4584 +vn -0.7315 -0.5356 -0.4220 +vn -0.6750 -0.6602 -0.3294 +vn -0.7008 -0.6541 -0.2847 +vn -0.7525 -0.5339 -0.3856 +vn -0.7734 -0.5290 -0.3494 +vn -0.7263 -0.6439 -0.2405 +vn -0.7513 -0.6298 -0.1972 +vn -0.7940 -0.5208 -0.3137 +vn -0.8142 -0.5094 -0.2786 +vn -0.7757 -0.6118 -0.1549 +vn -0.7993 -0.5900 -0.1140 +vn -0.8339 -0.4948 -0.2444 +vn -0.8530 -0.4772 -0.2114 +vn -0.8220 -0.5646 -0.0747 +vn -0.8436 -0.5357 -0.0372 +vn -0.8713 -0.4567 -0.1796 +vn -0.8888 -0.4333 -0.1493 +vn -0.8640 -0.5036 -0.0019 +vn -0.8830 -0.4683 0.0312 +vn -0.9053 -0.4073 -0.1207 +vn -0.9207 -0.3787 -0.0939 +vn -0.9007 -0.4301 0.0618 +vn -0.9168 -0.3892 0.0897 +vn -0.9350 -0.3478 -0.0692 +vn -0.9480 -0.3148 -0.0466 +vn -0.9312 -0.3460 0.1147 +vn -0.9439 -0.3006 0.1367 +vn -0.9597 -0.2798 -0.0264 +vn -0.9700 -0.2431 -0.0086 +vn -0.9548 -0.2534 0.1556 +vn -0.9638 -0.2046 0.1711 +vn -0.9787 -0.2050 0.0066 +vn -0.9860 -0.1655 0.0192 +vn -0.9708 -0.1546 0.1834 +vn -0.9759 -0.1036 0.1922 +vn -0.9917 -0.1250 0.0291 +vn -0.9958 -0.0838 0.0362 +vn -0.9789 -0.0520 0.1975 +vn -0.9983 -0.0420 0.0405 +vn -0.3190 -0.0520 -0.9463 +vn -0.1688 -0.0604 -0.9838 +vn -0.3220 -0.1036 -0.9410 +vn -0.1724 -0.1205 -0.9776 +vn -0.0472 -0.0661 -0.9967 +vn -0.0510 -0.1318 -0.9900 +vn -0.3271 -0.1546 -0.9323 +vn -0.1783 -0.1798 -0.9674 +vn -0.3342 -0.2047 -0.9200 +vn -0.1865 -0.2380 -0.9532 +vn -0.0575 -0.1967 -0.9788 +vn -0.0665 -0.2603 -0.9632 +vn -0.3432 -0.2535 -0.9044 +vn -0.1969 -0.2947 -0.9351 +vn -0.3540 -0.3007 -0.8856 +vn -0.2096 -0.3497 -0.9131 +vn -0.0779 -0.3224 -0.9434 +vn -0.0917 -0.3824 -0.9194 +vn -0.3667 -0.3461 -0.8636 +vn -0.2244 -0.4024 -0.8875 +vn -0.3812 -0.3893 -0.8385 +vn -0.2411 -0.4527 -0.8584 +vn -0.1079 -0.4401 -0.8914 +vn -0.1262 -0.4951 -0.8596 +vn -0.3973 -0.4302 -0.8106 +vn -0.2599 -0.5002 -0.8260 +vn -0.4149 -0.4684 -0.7801 +vn -0.2804 -0.5446 -0.7904 +vn -0.1467 -0.5471 -0.8241 +vn -0.1691 -0.5957 -0.7852 +vn -0.4340 -0.5037 -0.7470 +vn -0.3026 -0.5856 -0.7520 +vn -0.4544 -0.5359 -0.7116 +vn -0.3263 -0.6231 -0.7108 +vn -0.1934 -0.6406 -0.7432 +vn -0.2194 -0.6815 -0.6982 +vn -0.4760 -0.5648 -0.6741 +vn -0.3514 -0.6567 -0.6673 +vn -0.4987 -0.5902 -0.6348 +vn -0.3778 -0.6862 -0.6216 +vn -0.2468 -0.7183 -0.6505 +vn -0.2757 -0.7506 -0.6005 +vn -0.5223 -0.6120 -0.5939 +vn -0.4052 -0.7116 -0.5740 +vn -0.5467 -0.6300 -0.5516 +vn -0.4336 -0.7325 -0.5249 +vn -0.3057 -0.7783 -0.5485 +vn -0.3367 -0.8012 -0.4947 +vn -0.5717 -0.6441 -0.5083 +vn -0.4627 -0.7489 -0.4744 +vn -0.5972 -0.6542 -0.4641 +vn -0.4923 -0.7607 -0.4231 +vn -0.3685 -0.8191 -0.4396 +vn -0.4009 -0.8320 -0.3834 +vn -0.6230 -0.6603 -0.4194 +vn -0.5223 -0.7678 -0.3711 +vn -0.6489 -0.6624 -0.3743 +vn -0.5525 -0.7702 -0.3187 +vn -0.4338 -0.8398 -0.3265 +vn -0.4668 -0.8424 -0.2693 +vn -0.6749 -0.6603 -0.3293 +vn -0.5827 -0.7678 -0.2664 +vn -0.7007 -0.6542 -0.2846 +vn -0.6127 -0.7607 -0.2143 +vn -0.4998 -0.8398 -0.2120 +vn -0.5326 -0.8320 -0.1551 +vn -0.7262 -0.6441 -0.2404 +vn -0.6423 -0.7489 -0.1630 +vn -0.7512 -0.6300 -0.1970 +vn -0.6714 -0.7325 -0.1126 +vn -0.5650 -0.8191 -0.0989 +vn -0.5969 -0.8012 -0.0438 +vn -0.7756 -0.6120 -0.1548 +vn -0.6998 -0.7116 -0.0634 +vn -0.7992 -0.5902 -0.1139 +vn -0.7272 -0.6862 -0.0158 +vn -0.6279 -0.7783 0.0100 +vn -0.6579 -0.7506 0.0620 +vn -0.8219 -0.5648 -0.0746 +vn -0.7536 -0.6567 0.0299 +vn -0.8435 -0.5359 -0.0371 +vn -0.7787 -0.6231 0.0734 +vn -0.6867 -0.7183 0.1120 +vn -0.7142 -0.6815 0.1596 +vn -0.8639 -0.5037 -0.0017 +vn -0.8024 -0.5857 0.1146 +vn -0.8830 -0.4684 0.0314 +vn -0.8246 -0.5446 0.1530 +vn -0.7401 -0.6406 0.2046 +vn -0.7644 -0.5957 0.2467 +vn -0.9006 -0.4302 0.0619 +vn -0.8451 -0.5002 0.1886 +vn -0.9167 -0.3893 0.0898 +vn -0.8638 -0.4527 0.2210 +vn -0.7868 -0.5471 0.2856 +vn -0.8073 -0.4951 0.3211 +vn -0.9311 -0.3461 0.1149 +vn -0.8806 -0.4024 0.2501 +vn -0.9438 -0.3007 0.1369 +vn -0.8954 -0.3497 0.2757 +vn -0.8257 -0.4401 0.3529 +vn -0.8418 -0.3824 0.3809 +vn -0.9547 -0.2535 0.1557 +vn -0.9080 -0.2947 0.2976 +vn -0.9637 -0.2047 0.1713 +vn -0.9185 -0.2380 0.3158 +vn -0.8557 -0.3224 0.4049 +vn -0.8671 -0.2603 0.4247 +vn -0.9708 -0.1546 0.1836 +vn -0.9267 -0.1798 0.3300 +vn -0.9758 -0.1036 0.1923 +vn -0.9326 -0.1205 0.3402 +vn -0.8761 -0.1967 0.4403 +vn -0.8825 -0.1318 0.4514 +vn -0.9789 -0.0520 0.1976 +vn -0.9361 -0.0604 0.3464 +vn -0.8864 -0.0661 0.4582 +vn 0.2939 -0.1527 -0.9436 +vn 0.1819 -0.1478 -0.9721 +vn 0.1863 -0.0741 -0.9797 +vn 0.2984 -0.0766 -0.9514 +vn 0.3881 -0.1553 -0.9085 +vn 0.3926 -0.0779 -0.9164 +vn 0.2760 -0.3017 -0.9126 +vn 0.1646 -0.2919 -0.9422 +vn 0.1747 -0.2205 -0.9596 +vn 0.2864 -0.2279 -0.9306 +vn 0.3699 -0.3069 -0.8769 +vn 0.3805 -0.2318 -0.8953 +vn 0.2467 -0.4432 -0.8618 +vn 0.1363 -0.4288 -0.8930 +vn 0.1518 -0.3615 -0.9199 +vn 0.2628 -0.3736 -0.8896 +vn 0.3401 -0.4508 -0.8253 +vn 0.3564 -0.3800 -0.8536 +vn 0.2067 -0.5738 -0.7925 +vn 0.0976 -0.5552 -0.8260 +vn 0.1182 -0.4936 -0.8616 +vn 0.2280 -0.5101 -0.8294 +vn 0.2994 -0.5837 -0.7548 +vn 0.3210 -0.5189 -0.7923 +vn 0.1570 -0.6903 -0.7063 +vn 0.0495 -0.6679 -0.7426 +vn 0.0746 -0.6135 -0.7862 +vn 0.1830 -0.6340 -0.7514 +vn 0.2488 -0.7022 -0.6671 +vn 0.2753 -0.6449 -0.7129 +vn 0.0988 -0.7898 -0.6054 +vn -0.0068 -0.7642 -0.6449 +vn 0.0223 -0.7183 -0.6954 +vn 0.1289 -0.7423 -0.6575 +vn 0.1896 -0.8034 -0.5645 +vn 0.2202 -0.7551 -0.6175 +vn 0.0336 -0.8698 -0.4923 +vn -0.0700 -0.8417 -0.5355 +vn -0.0377 -0.8054 -0.5915 +vn 0.0670 -0.8323 -0.5502 +vn 0.1232 -0.8848 -0.4494 +vn 0.1572 -0.8467 -0.5083 +vn -0.0371 -0.9284 -0.3697 +vn -0.1384 -0.8984 -0.4168 +vn -0.1037 -0.8727 -0.4771 +vn -0.0012 -0.9019 -0.4320 +vn 0.0513 -0.9444 -0.3247 +vn 0.0878 -0.9174 -0.3880 +vn -0.1116 -0.9642 -0.2407 +vn -0.2104 -0.9330 -0.2920 +vn -0.1741 -0.9185 -0.3550 +vn -0.0740 -0.9492 -0.3058 +vn -0.0244 -0.9808 -0.1934 +vn 0.0138 -0.9656 -0.2597 +vn -0.1879 -0.9762 -0.1084 +vn -0.2843 -0.9446 -0.1640 +vn -0.2473 -0.9417 -0.2282 +vn -0.1496 -0.9732 -0.1747 +vn -0.1020 -0.9930 -0.0589 +vn -0.0631 -0.9900 -0.1264 +vn -0.2642 -0.9642 0.0239 +vn -0.3581 -0.9330 -0.0360 +vn -0.3213 -0.9417 -0.0998 +vn -0.2261 -0.9732 -0.0420 +vn -0.1797 -0.9808 0.0757 +vn -0.1410 -0.9900 0.0086 +vn -0.3386 -0.9284 0.1529 +vn -0.4301 -0.8984 0.0889 +vn -0.3945 -0.9185 0.0270 +vn -0.3018 -0.9492 0.0890 +vn -0.2554 -0.9444 0.2069 +vn -0.2179 -0.9656 0.1419 +vn -0.4093 -0.8698 0.2755 +vn -0.4986 -0.8417 0.2075 +vn -0.4649 -0.8727 0.1491 +vn -0.3745 -0.9019 0.2152 +vn -0.3273 -0.8848 0.3317 +vn -0.2919 -0.9174 0.2703 +vn -0.4746 -0.7898 0.3886 +vn -0.5617 -0.7642 0.3170 +vn -0.5309 -0.8054 0.2635 +vn -0.4427 -0.8323 0.3334 +vn -0.3937 -0.8034 0.4467 +vn -0.3613 -0.8467 0.3906 +vn -0.5328 -0.6903 0.4895 +vn -0.6180 -0.6679 0.4146 +vn -0.5908 -0.7183 0.3674 +vn -0.5047 -0.7423 0.4408 +vn -0.4529 -0.7022 0.5494 +vn -0.4243 -0.7551 0.4998 +vn -0.5825 -0.5738 0.5757 +vn -0.6661 -0.5552 0.4980 +vn -0.6432 -0.6135 0.4582 +vn -0.5588 -0.6340 0.5346 +vn -0.5035 -0.5837 0.6370 +vn -0.4794 -0.6449 0.5952 +vn -0.6225 -0.4432 0.6450 +vn -0.7048 -0.4288 0.5651 +vn -0.6867 -0.4936 0.5337 +vn -0.6038 -0.5101 0.6126 +vn -0.5442 -0.4508 0.7076 +vn -0.5251 -0.5189 0.6746 +vn -0.6518 -0.3017 0.6958 +vn -0.7332 -0.2919 0.6142 +vn -0.7204 -0.3615 0.5920 +vn -0.6385 -0.3736 0.6728 +vn -0.5740 -0.3069 0.7592 +vn -0.5605 -0.3800 0.7358 +vn -0.6697 -0.1527 0.7268 +vn -0.7505 -0.1478 0.6442 +vn -0.7432 -0.2205 0.6316 +vn -0.6622 -0.2279 0.7138 +vn -0.5921 -0.1553 0.7907 +vn -0.5845 -0.2318 0.7776 +vn -0.7548 -0.0741 0.6517 +vn -0.6742 -0.0766 0.7346 +vn -0.5967 -0.0779 0.7987 +vn 0.4505 -0.1562 -0.8790 +vn 0.4551 -0.0784 -0.8870 +vn 0.4710 -0.1564 -0.8682 +vn 0.4756 -0.0784 -0.8762 +vn 0.4322 -0.3086 -0.8473 +vn 0.4428 -0.2332 -0.8658 +vn 0.4527 -0.3089 -0.8365 +vn 0.4633 -0.2334 -0.8549 +vn 0.4022 -0.4534 -0.7954 +vn 0.4186 -0.3822 -0.8238 +vn 0.4227 -0.4538 -0.7845 +vn 0.4391 -0.3826 -0.8129 +vn 0.3613 -0.5871 -0.7244 +vn 0.3831 -0.5219 -0.7622 +vn 0.3817 -0.5876 -0.7135 +vn 0.4035 -0.5223 -0.7512 +vn 0.3104 -0.7063 -0.6363 +vn 0.3370 -0.6487 -0.6824 +vn 0.3308 -0.7069 -0.6252 +vn 0.3574 -0.6492 -0.6714 +vn 0.2509 -0.8080 -0.5330 +vn 0.2816 -0.7595 -0.5864 +vn 0.2712 -0.8087 -0.5219 +vn 0.3020 -0.7601 -0.5753 +vn 0.1841 -0.8899 -0.4173 +vn 0.2183 -0.8516 -0.4766 +vn 0.2044 -0.8907 -0.4060 +vn 0.2386 -0.8524 -0.4654 +vn 0.1117 -0.9499 -0.2919 +vn 0.1485 -0.9228 -0.3556 +vn 0.1320 -0.9507 -0.2805 +vn 0.1688 -0.9236 -0.3443 +vn 0.0356 -0.9865 -0.1598 +vn 0.0740 -0.9712 -0.2265 +vn 0.0557 -0.9874 -0.1484 +vn 0.0942 -0.9720 -0.2151 +vn -0.0425 -0.9988 -0.0245 +vn -0.0033 -0.9957 -0.0924 +vn -0.0224 -0.9997 -0.0129 +vn 0.0168 -0.9966 -0.0809 +vn -0.1206 -0.9865 0.1108 +vn -0.0816 -0.9957 0.0434 +vn -0.1005 -0.9874 0.1225 +vn -0.0616 -0.9966 0.0550 +vn -0.1967 -0.9499 0.2428 +vn -0.1590 -0.9712 0.1775 +vn -0.1768 -0.9507 0.2547 +vn -0.1390 -0.9720 0.1892 +vn -0.2691 -0.8899 0.3683 +vn -0.2335 -0.9228 0.3066 +vn -0.2492 -0.8907 0.3802 +vn -0.2136 -0.9236 0.3185 +vn -0.3358 -0.8080 0.4840 +vn -0.3032 -0.8516 0.4275 +vn -0.3160 -0.8087 0.4961 +vn -0.2834 -0.8524 0.4395 +vn -0.3954 -0.7063 0.5873 +vn -0.3666 -0.7595 0.5374 +vn -0.3756 -0.7069 0.5994 +vn -0.3468 -0.7602 0.5494 +vn -0.4462 -0.5871 0.6754 +vn -0.4220 -0.6487 0.6334 +vn -0.4265 -0.5876 0.6876 +vn -0.4022 -0.6492 0.6455 +vn -0.4872 -0.4534 0.7464 +vn -0.4680 -0.5219 0.7132 +vn -0.4675 -0.4538 0.7586 +vn -0.4483 -0.5223 0.7254 +vn -0.5171 -0.3086 0.7983 +vn -0.5036 -0.3822 0.7748 +vn -0.4975 -0.3089 0.8106 +vn -0.4839 -0.3826 0.7871 +vn -0.5354 -0.1562 0.8300 +vn -0.5278 -0.2332 0.8168 +vn -0.5158 -0.1564 0.8423 +vn -0.5081 -0.2334 0.8291 +vn -0.5400 -0.0784 0.8380 +vn -0.5204 -0.0784 0.8503 +vn 0.0631 -0.1406 -0.9881 +vn 0.0672 -0.0705 -0.9952 +vn 0.0466 -0.2776 -0.9596 +vn 0.0562 -0.2097 -0.9761 +vn 0.0197 -0.4079 -0.9128 +vn 0.0344 -0.3438 -0.9384 +vn -0.0171 -0.5281 -0.8490 +vn 0.0025 -0.4694 -0.8830 +vn -0.0629 -0.6353 -0.7697 +vn -0.0389 -0.5835 -0.8112 +vn -0.1164 -0.7269 -0.6768 +vn -0.0888 -0.6832 -0.7248 +vn -0.1765 -0.8005 -0.5727 +vn -0.1458 -0.7661 -0.6260 +vn -0.2416 -0.8545 -0.4599 +vn -0.2085 -0.8301 -0.5172 +vn -0.3101 -0.8874 -0.3411 +vn -0.2755 -0.8736 -0.4011 +vn -0.3803 -0.8985 -0.2194 +vn -0.3451 -0.8957 -0.2805 +vn -0.4506 -0.8874 -0.0976 +vn -0.4155 -0.8957 -0.1583 +vn -0.5191 -0.8545 0.0211 +vn -0.4851 -0.8736 -0.0377 +vn -0.5841 -0.8005 0.1339 +vn -0.5521 -0.8301 0.0784 +vn -0.6442 -0.7269 0.2381 +vn -0.6149 -0.7661 0.1872 +vn -0.6978 -0.6353 0.3309 +vn -0.6719 -0.6832 0.2860 +vn -0.7435 -0.5281 0.4102 +vn -0.7217 -0.5835 0.3724 +vn -0.7803 -0.4079 0.4740 +vn -0.7631 -0.4694 0.4442 +vn -0.8073 -0.2776 0.5208 +vn -0.7951 -0.3438 0.4996 +vn -0.8237 -0.1405 0.5493 +vn -0.8169 -0.2097 0.5374 +vn -0.8279 -0.0705 0.5565 +vn -0.4426 -0.0874 -0.8925 +vn -0.4400 -0.0438 -0.8969 +vn -0.4528 -0.1727 -0.8747 +vn -0.4469 -0.1304 -0.8850 +vn -0.4696 -0.2537 -0.8457 +vn -0.4604 -0.2138 -0.8616 +vn -0.4925 -0.3284 -0.8060 +vn -0.4803 -0.2920 -0.8271 +vn -0.5209 -0.3951 -0.7567 +vn -0.5060 -0.3629 -0.7824 +vn -0.5542 -0.4521 -0.6989 +vn -0.5370 -0.4249 -0.7287 +vn -0.5916 -0.4979 -0.6341 +vn -0.5725 -0.4764 -0.6673 +vn -0.6321 -0.5314 -0.5640 +vn -0.6115 -0.5162 -0.5996 +vn -0.6747 -0.5519 -0.4901 +vn -0.6532 -0.5433 -0.5274 +vn -0.7184 -0.5588 -0.4144 +vn -0.6965 -0.5571 -0.4524 +vn -0.7620 -0.5519 -0.3387 +vn -0.7403 -0.5571 -0.3764 +vn -0.8046 -0.5314 -0.2648 +vn -0.7835 -0.5433 -0.3014 +vn -0.8451 -0.4979 -0.1947 +vn -0.8252 -0.5162 -0.2292 +vn -0.8825 -0.4521 -0.1299 +vn -0.8642 -0.4764 -0.1615 +vn -0.9158 -0.3951 -0.0721 +vn -0.8997 -0.4249 -0.1000 +vn -0.9442 -0.3284 -0.0228 +vn -0.9307 -0.3629 -0.0463 +vn -0.9671 -0.2537 0.0169 +vn -0.9564 -0.2920 -0.0017 +vn -0.9839 -0.1727 0.0459 +vn -0.9763 -0.2138 0.0328 +vn -0.9941 -0.0874 0.0637 +vn -0.9899 -0.1304 0.0563 +vn -0.9967 -0.0438 0.0681 +vn -0.6665 0.6374 0.3867 +vn -0.6207 0.6375 0.4565 +vn -0.5674 0.6414 0.5164 +vn -0.5083 0.6469 0.5684 +vn -0.4450 0.6486 0.6175 +vn -0.3785 0.6502 0.6588 +vn -0.3087 0.6501 0.6944 +vn -0.2363 0.6457 0.7261 +vn -0.1613 0.6399 0.7514 +vn -0.0828 0.6339 0.7690 +vn 0.0001 0.6302 0.7764 +vn 0.4884 0.6379 0.5954 +vn 0.5308 0.6403 0.5553 +vn 0.5694 0.6415 0.5141 +vn 0.6054 0.6418 0.4707 +vn 0.6362 0.6425 0.4272 +vn 0.6616 0.6441 0.3838 +vn 0.6861 0.6443 0.3380 +vn 0.7083 0.6438 0.2895 +vn 0.7276 0.6433 0.2382 +vn 0.7433 0.6431 0.1842 +vn 0.7555 0.6429 0.1261 +vn 0.0471 -0.9536 -0.2973 +vn 0.0236 -0.9536 -0.3001 +vn -0.0000 -0.9536 -0.3010 +vn 0.0254 -0.9463 -0.3222 +vn -0.0000 -0.9463 -0.3232 +vn 0.0506 -0.9463 -0.3193 +vn 0.0930 -0.9536 -0.2863 +vn 0.0703 -0.9536 -0.2927 +vn 0.0755 -0.9463 -0.3143 +vn 0.0999 -0.9463 -0.3074 +vn 0.1366 -0.9536 -0.2682 +vn 0.1152 -0.9536 -0.2781 +vn 0.1237 -0.9463 -0.2986 +vn 0.1468 -0.9463 -0.2880 +vn 0.1769 -0.9536 -0.2435 +vn 0.1573 -0.9536 -0.2566 +vn 0.1689 -0.9463 -0.2756 +vn 0.1900 -0.9463 -0.2615 +vn 0.2128 -0.9536 -0.2128 +vn 0.1955 -0.9536 -0.2289 +vn 0.2099 -0.9463 -0.2458 +vn 0.2286 -0.9463 -0.2286 +vn 0.2435 -0.9536 -0.1769 +vn 0.2289 -0.9536 -0.1955 +vn 0.2458 -0.9463 -0.2099 +vn 0.2615 -0.9463 -0.1900 +vn 0.2682 -0.9536 -0.1366 +vn 0.2566 -0.9536 -0.1573 +vn 0.2756 -0.9463 -0.1689 +vn 0.2880 -0.9463 -0.1467 +vn 0.2863 -0.9536 -0.0930 +vn 0.2781 -0.9536 -0.1152 +vn 0.2986 -0.9463 -0.1237 +vn 0.3075 -0.9463 -0.0999 +vn 0.2973 -0.9536 -0.0471 +vn 0.2927 -0.9536 -0.0703 +vn 0.3144 -0.9463 -0.0755 +vn 0.3193 -0.9463 -0.0506 +vn 0.3010 -0.9536 -0.0000 +vn 0.3001 -0.9536 -0.0236 +vn 0.3223 -0.9463 -0.0254 +vn 0.3233 -0.9463 -0.0000 +vn 0.2973 -0.9536 0.0471 +vn 0.3001 -0.9536 0.0236 +vn 0.3223 -0.9463 0.0254 +vn 0.3193 -0.9463 0.0506 +vn 0.2863 -0.9536 0.0930 +vn 0.2927 -0.9536 0.0703 +vn 0.3144 -0.9463 0.0755 +vn 0.3075 -0.9463 0.0999 +vn 0.2682 -0.9536 0.1366 +vn 0.2781 -0.9536 0.1152 +vn 0.2987 -0.9463 0.1237 +vn 0.2881 -0.9463 0.1468 +vn 0.2435 -0.9536 0.1769 +vn 0.2566 -0.9536 0.1573 +vn 0.2756 -0.9463 0.1689 +vn 0.2615 -0.9463 0.1900 +vn 0.2128 -0.9536 0.2128 +vn 0.2289 -0.9536 0.1955 +vn 0.2458 -0.9463 0.2099 +vn 0.2286 -0.9463 0.2286 +vn 0.1769 -0.9536 0.2435 +vn 0.1955 -0.9536 0.2289 +vn 0.2099 -0.9463 0.2458 +vn 0.1900 -0.9463 0.2615 +vn 0.1366 -0.9536 0.2682 +vn 0.1573 -0.9536 0.2566 +vn 0.1689 -0.9463 0.2756 +vn 0.1468 -0.9463 0.2880 +vn 0.0930 -0.9536 0.2863 +vn 0.1152 -0.9536 0.2781 +vn 0.1237 -0.9463 0.2986 +vn 0.0999 -0.9463 0.3074 +vn 0.0471 -0.9536 0.2973 +vn 0.0703 -0.9536 0.2927 +vn 0.0755 -0.9463 0.3143 +vn 0.0506 -0.9463 0.3193 +vn -0.0000 -0.9536 0.3010 +vn 0.0236 -0.9536 0.3001 +vn 0.0254 -0.9463 0.3222 +vn 0.0000 -0.9463 0.3232 +vn -0.0471 -0.9536 0.2973 +vn -0.0236 -0.9536 0.3001 +vn -0.0254 -0.9463 0.3223 +vn -0.0506 -0.9463 0.3193 +vn -0.0930 -0.9536 0.2863 +vn -0.0703 -0.9536 0.2927 +vn -0.0755 -0.9463 0.3143 +vn -0.0999 -0.9463 0.3074 +vn -0.1366 -0.9536 0.2682 +vn -0.1152 -0.9536 0.2781 +vn -0.1237 -0.9463 0.2986 +vn -0.1468 -0.9463 0.2880 +vn -0.1769 -0.9536 0.2435 +vn -0.1573 -0.9536 0.2566 +vn -0.1689 -0.9463 0.2756 +vn -0.1900 -0.9463 0.2615 +vn -0.2128 -0.9536 0.2128 +vn -0.1955 -0.9536 0.2289 +vn -0.2099 -0.9463 0.2458 +vn -0.2286 -0.9463 0.2286 +vn -0.2435 -0.9536 0.1769 +vn -0.2289 -0.9536 0.1955 +vn -0.2458 -0.9463 0.2099 +vn -0.2615 -0.9463 0.1900 +vn -0.2682 -0.9536 0.1366 +vn -0.2566 -0.9536 0.1573 +vn -0.2756 -0.9463 0.1689 +vn -0.2880 -0.9463 0.1468 +vn -0.2862 -0.9536 0.0930 +vn -0.2780 -0.9536 0.1152 +vn -0.2986 -0.9463 0.1237 +vn -0.3074 -0.9463 0.0999 +vn -0.2973 -0.9536 0.0471 +vn -0.2926 -0.9536 0.0703 +vn -0.3143 -0.9463 0.0755 +vn -0.3193 -0.9463 0.0506 +vn -0.3010 -0.9536 0.0000 +vn -0.3001 -0.9536 0.0236 +vn -0.3223 -0.9463 0.0254 +vn -0.3232 -0.9463 -0.0000 +vn -0.2973 -0.9536 -0.0471 +vn -0.3000 -0.9536 -0.0236 +vn -0.3223 -0.9463 -0.0254 +vn -0.3193 -0.9463 -0.0506 +vn -0.2862 -0.9536 -0.0930 +vn -0.2926 -0.9536 -0.0703 +vn -0.3143 -0.9463 -0.0755 +vn -0.3074 -0.9463 -0.0999 +vn -0.2682 -0.9536 -0.1366 +vn -0.2780 -0.9536 -0.1152 +vn -0.2986 -0.9463 -0.1237 +vn -0.2880 -0.9463 -0.1467 +vn -0.2435 -0.9536 -0.1769 +vn -0.2566 -0.9536 -0.1573 +vn -0.2756 -0.9463 -0.1689 +vn -0.2615 -0.9463 -0.1900 +vn -0.2128 -0.9536 -0.2128 +vn -0.2289 -0.9536 -0.1955 +vn -0.2458 -0.9463 -0.2099 +vn -0.2286 -0.9463 -0.2286 +vn -0.1769 -0.9536 -0.2435 +vn -0.1955 -0.9536 -0.2289 +vn -0.2099 -0.9463 -0.2458 +vn -0.1900 -0.9463 -0.2615 +vn -0.1366 -0.9536 -0.2682 +vn -0.1573 -0.9536 -0.2566 +vn -0.1689 -0.9463 -0.2756 +vn -0.1468 -0.9463 -0.2880 +vn -0.0930 -0.9536 -0.2863 +vn -0.1152 -0.9536 -0.2781 +vn -0.1237 -0.9463 -0.2986 +vn -0.0999 -0.9463 -0.3074 +vn -0.0471 -0.9536 -0.2973 +vn -0.0703 -0.9536 -0.2927 +vn -0.0755 -0.9463 -0.3143 +vn -0.0506 -0.9463 -0.3193 +vn -0.0236 -0.9536 -0.3001 +vn -0.0254 -0.9463 -0.3222 +vn 0.5653 0.6490 -0.5091 +vn 0.5064 0.6553 -0.5604 +vn 0.4437 0.6584 -0.6079 +vn 0.3774 0.6577 -0.6519 +vn 0.3067 0.6592 -0.6866 +vn 0.2353 0.6560 -0.7171 +vn 0.1575 0.6566 -0.7376 +vn -0.7973 0.5764 -0.1789 +vn -0.7767 0.5886 -0.2243 +vn -0.7560 0.5973 -0.2676 +vn -0.7346 0.6035 -0.3101 +vn -0.7127 0.6059 -0.3534 +vn -0.6899 0.6059 -0.3961 +vn -0.6664 0.6036 -0.4378 +vn -0.6407 0.6004 -0.4786 +vn -0.6134 0.5948 -0.5195 +vn -0.5856 0.5861 -0.5600 +vn -0.5575 0.5745 -0.5992 +vn 0.0695 0.9791 0.1912 +vn 0.0734 0.9853 0.1543 +vn 0.0454 0.9862 0.1593 +vn 0.0486 0.9796 0.1952 +vn 0.0718 0.9698 0.2332 +vn 0.0528 0.9700 0.2374 +vn 0.0269 0.9794 0.2003 +vn 0.0334 0.9698 0.2415 +vn 0.0214 0.9861 0.1647 +vn 0.1039 0.9792 0.1742 +vn 0.0929 0.9764 0.1949 +vn 0.1374 0.9700 0.2007 +vn 0.1233 0.9692 0.2133 +vn 0.0903 0.9690 0.2300 +vn 0.1151 0.9647 0.2368 +vn 0.1150 0.9858 0.1223 +vn 0.0954 0.9860 0.1365 +vn 0.1203 0.9797 0.1602 +vn 0.1379 0.9796 0.1464 +vn 0.1518 0.9702 0.1886 +vn 0.1670 0.9702 0.1754 +vn 0.1673 0.9793 0.1140 +vn 0.1512 0.9850 0.0831 +vn 0.1325 0.9856 0.1048 +vn 0.1525 0.9797 0.1299 +vn 0.1930 0.9702 0.1467 +vn 0.1807 0.9703 0.1605 +vn 0.1851 0.9794 0.0805 +vn 0.1884 0.9767 0.1032 +vn 0.2273 0.9704 0.0818 +vn 0.2230 0.9697 0.0998 +vn 0.2060 0.9695 0.1328 +vn 0.2302 0.9652 0.1238 +vn 0.1631 0.9861 0.0318 +vn 0.1579 0.9859 0.0552 +vn 0.1902 0.9800 0.0590 +vn 0.1961 0.9799 0.0374 +vn 0.2319 0.9707 0.0634 +vn 0.2365 0.9706 0.0437 +vn 0.2009 0.9796 -0.0065 +vn 0.1694 0.9853 -0.0211 +vn 0.1660 0.9861 0.0085 +vn 0.1979 0.9801 0.0151 +vn 0.2406 0.9706 0.0047 +vn 0.2390 0.9707 0.0239 +vn 0.1957 0.9797 -0.0439 +vn 0.2119 0.9769 -0.0275 +vn 0.2303 0.9708 -0.0673 +vn 0.2368 0.9702 -0.0504 +vn 0.2424 0.9701 -0.0138 +vn 0.2564 0.9659 -0.0349 +vn 0.1491 0.9863 -0.0707 +vn 0.1581 0.9862 -0.0482 +vn 0.1871 0.9802 -0.0646 +vn 0.1790 0.9801 -0.0855 +vn 0.2232 0.9710 -0.0856 +vn 0.2157 0.9709 -0.1039 +vn 0.1569 0.9798 -0.1241 +vn 0.1231 0.9854 -0.1173 +vn 0.1376 0.9862 -0.0918 +vn 0.1676 0.9803 -0.1047 +vn 0.1953 0.9709 -0.1383 +vn 0.2056 0.9711 -0.1212 +vn 0.1307 0.9798 -0.1510 +vn 0.1539 0.9770 -0.1476 +vn 0.1452 0.9710 -0.1899 +vn 0.1600 0.9706 -0.1800 +vn 0.1860 0.9705 -0.1534 +vn 0.1848 0.9664 -0.1787 +vn 0.0769 0.9866 -0.1441 +vn 0.0986 0.9863 -0.1324 +vn 0.1113 0.9805 -0.1621 +vn 0.0923 0.9803 -0.1745 +vn 0.1286 0.9712 -0.2004 +vn 0.1112 0.9712 -0.2109 +vn 0.0514 0.9799 -0.1925 +vn 0.0276 0.9860 -0.1645 +vn 0.0545 0.9867 -0.1530 +vn 0.0714 0.9805 -0.1830 +vn 0.0747 0.9710 -0.2269 +vn 0.0932 0.9712 -0.2192 +vn 0.0147 0.9799 -0.1988 +vn 0.0357 0.9770 -0.2100 +vn 0.0039 0.9710 -0.2392 +vn 0.0215 0.9706 -0.2398 +vn 0.0582 0.9706 -0.2337 +vn 0.0425 0.9665 -0.2533 +vn -0.0240 0.9868 -0.1600 +vn 0.0002 0.9870 -0.1608 +vn -0.0073 0.9805 -0.1962 +vn -0.0302 0.9802 -0.1957 +vn -0.0161 0.9711 -0.2380 +vn -0.0360 0.9711 -0.2361 +vn 0.0225 0.9917 -0.1266 +vn 0.0448 0.9914 -0.1233 +vn 0.0648 0.9908 -0.1185 +vn 0.0384 0.9948 -0.0947 +vn 0.0589 0.9941 -0.0912 +vn 0.0204 0.9952 -0.0960 +vn 0.0749 0.9958 0.0535 +vn 0.0730 0.9968 0.0326 +vn 0.0543 0.9977 0.0409 +vn 0.0557 0.9967 0.0599 +vn 0.0830 0.9940 0.0712 +vn 0.0622 0.9948 0.0807 +vn 0.0459 0.9952 0.0860 +vn 0.0401 0.9971 0.0648 +vn 0.0347 0.9984 0.0444 +vn 0.0179 0.9987 0.0474 +vn 0.0235 0.9975 0.0666 +vn 0.0281 0.9954 0.0920 +vn 0.0072 0.9975 0.0697 +vn 0.0121 0.9952 0.0973 +vn 0.0032 0.9988 0.0491 +vn 0.0690 0.9976 -0.0073 +vn 0.0861 0.9962 -0.0103 +vn 0.0836 0.9960 -0.0305 +vn 0.0662 0.9974 -0.0288 +vn 0.0806 0.9957 -0.0462 +vn 0.0614 0.9970 -0.0462 +vn 0.1025 0.9935 -0.0486 +vn 0.1050 0.9939 -0.0344 +vn 0.1077 0.9941 -0.0121 +vn 0.0439 0.9978 -0.0499 +vn 0.0487 0.9984 -0.0291 +vn 0.0498 0.9987 -0.0037 +vn 0.0273 0.9993 -0.0247 +vn 0.0299 0.9996 0.0010 +vn 0.0260 0.9984 -0.0500 +vn 0.0069 0.9988 -0.0486 +vn 0.0108 0.9997 -0.0226 +vn 0.0151 0.9999 0.0033 +vn -0.0042 1.0000 0.0059 +vn -0.0076 0.9998 -0.0202 +vn -0.0099 0.9989 -0.0467 +vn 0.1239 0.9906 -0.0583 +vn 0.1292 0.9908 -0.0404 +vn 0.1356 0.9906 -0.0162 +vn 0.1129 0.9933 0.0231 +vn 0.1110 0.9930 0.0404 +vn 0.1328 0.9901 0.0451 +vn 0.1358 0.9904 0.0266 +vn 0.1251 0.9901 0.0635 +vn 0.1087 0.9924 0.0571 +vn 0.1357 0.9907 0.0088 +vn 0.1116 0.9937 0.0087 +vn 0.0890 0.9960 0.0116 +vn 0.0900 0.9956 0.0276 +vn 0.0718 0.9973 0.0145 +vn 0.0517 0.9985 0.0192 +vn 0.0313 0.9993 0.0225 +vn 0.0172 0.9995 0.0267 +vn -0.0003 0.9995 0.0301 +vn 0.1122 0.9904 0.0803 +vn 0.0952 0.9905 0.0989 +vn 0.0973 0.9933 0.0616 +vn 0.0387 0.9968 -0.0704 +vn 0.0576 0.9960 -0.0684 +vn 0.0219 0.9971 -0.0722 +vn 0.0024 0.9952 -0.0975 +vn 0.0041 0.9973 -0.0729 +vn -0.0127 0.9974 -0.0710 +vn -0.0153 0.9953 -0.0960 +vn 0.0924 0.9947 0.0451 +vn 0.0877 0.9928 -0.0812 +vn 0.0759 0.9935 -0.0847 +vn 0.0760 0.9950 -0.0652 +vn 0.0958 0.9933 -0.0651 +vn 0.1017 0.9903 -0.0945 +vn 0.1161 0.9904 -0.0755 +vn 0.0781 0.9909 0.1099 +vn 0.0580 0.9913 0.1180 +vn 0.0358 0.9915 0.1248 +vn 0.0162 0.9916 0.1282 +vn 0.0008 0.9918 -0.1277 +vn -0.0186 0.9918 -0.1265 +vn 0.0851 0.9905 -0.1076 +vn -0.0026 0.9861 0.1661 +vn -0.0306 0.9851 0.1694 +vn -0.0165 0.9790 0.2031 +vn 0.0050 0.9795 0.2015 +vn 0.0136 0.9699 0.2429 +vn -0.0052 0.9697 0.2443 +vn -0.0546 0.9790 0.1966 +vn -0.0379 0.9763 0.2130 +vn -0.0242 0.9688 0.2466 +vn -0.0603 0.9687 0.2406 +vn -0.0448 0.9642 0.2613 +vn -0.0779 0.9696 0.2318 +vn -0.0804 0.9855 0.1493 +vn -0.0943 0.9792 0.1797 +vn -0.0738 0.9794 0.1878 +vn -0.0570 0.9857 0.1584 +vn -0.0953 0.9698 0.2243 +vn -0.1133 0.9697 0.2163 +vn -0.1014 0.9854 0.1371 +vn -0.1251 0.9845 0.1231 +vn -0.1313 0.9790 0.1560 +vn -0.1128 0.9794 0.1675 +vn -0.1304 0.9699 0.2058 +vn -0.1468 0.9696 0.1956 +vn -0.1583 0.9790 0.1287 +vn -0.1544 0.9763 0.1515 +vn -0.1631 0.9688 0.1865 +vn -0.1888 0.9688 0.1604 +vn -0.1884 0.9643 0.1860 +vn -0.1979 0.9697 0.1430 +vn -0.1521 0.9854 0.0764 +vn -0.1808 0.9793 0.0913 +vn -0.1694 0.9794 0.1103 +vn -0.1402 0.9852 0.0985 +vn -0.2076 0.9700 0.1268 +vn -0.2171 0.9700 0.1096 +vn -0.1604 0.9856 0.0532 +vn -0.1709 0.9849 0.0282 +vn -0.1968 0.9791 0.0505 +vn -0.1887 0.9795 0.0706 +vn -0.2251 0.9701 0.0910 +vn -0.2322 0.9699 0.0736 +vn -0.2023 0.9792 0.0131 +vn -0.2129 0.9765 0.0333 +vn -0.2398 0.9692 0.0564 +vn -0.2453 0.9692 0.0196 +vn -0.2599 0.9648 0.0408 +vn -0.2428 0.9701 0.0011 +vn -0.1668 0.9856 -0.0262 +vn -0.1992 0.9795 -0.0309 +vn -0.2008 0.9796 -0.0086 +vn -0.1692 0.9856 -0.0000 +vn -0.2411 0.9703 -0.0178 +vn -0.2391 0.9702 -0.0380 +vn -0.1601 0.9858 -0.0504 +vn -0.1540 0.9851 -0.0763 +vn -0.1879 0.9794 -0.0740 +vn -0.1930 0.9798 -0.0528 +vn -0.2345 0.9704 -0.0574 +vn -0.2297 0.9703 -0.0760 +vn -0.1708 0.9794 -0.1075 +vn -0.1912 0.9767 -0.0973 +vn -0.2255 0.9697 -0.0938 +vn -0.2081 0.9698 -0.1273 +vn -0.2322 0.9655 -0.1183 +vn -0.1959 0.9705 -0.1405 +vn -0.1186 0.9860 -0.1174 +vn -0.1416 0.9798 -0.1411 +vn -0.1565 0.9798 -0.1242 +vn -0.1364 0.9859 -0.0971 +vn -0.1832 0.9707 -0.1551 +vn -0.1697 0.9708 -0.1698 +vn -0.0975 0.9865 -0.1319 +vn -0.0764 0.9859 -0.1486 +vn -0.1071 0.9797 -0.1694 +vn -0.1240 0.9801 -0.1551 +vn -0.1547 0.9708 -0.1832 +vn -0.1396 0.9707 -0.1956 +vn -0.0733 0.9798 -0.1861 +vn -0.0961 0.9770 -0.1902 +vn -0.1257 0.9703 -0.2069 +vn -0.0922 0.9703 -0.2237 +vn -0.1165 0.9661 -0.2304 +vn -0.0747 0.9709 -0.2276 +vn -0.0522 0.9804 -0.1901 +vn -0.0494 0.9868 -0.1541 +vn -0.0557 0.9711 -0.2321 +vn -0.0611 0.9914 -0.1158 +vn -0.0795 0.9911 -0.1071 +vn -0.0491 0.9950 -0.0871 +vn -0.0695 0.9945 -0.0780 +vn -0.0998 0.9908 -0.0915 +vn -0.0873 0.9939 -0.0677 +vn -0.0424 0.9978 0.0503 +vn -0.0623 0.9968 0.0506 +vn -0.0587 0.9956 0.0728 +vn -0.0403 0.9965 0.0730 +vn -0.0238 0.9971 0.0722 +vn -0.0252 0.9985 0.0491 +vn -0.0234 0.9952 0.0954 +vn -0.0416 0.9946 0.0950 +vn -0.0631 0.9935 0.0943 +vn -0.0111 0.9987 0.0497 +vn -0.0074 0.9975 0.0700 +vn -0.0042 0.9953 0.0965 +vn -0.0692 0.9975 0.0127 +vn -0.0728 0.9973 -0.0062 +vn -0.0918 0.9958 -0.0020 +vn -0.0900 0.9958 0.0152 +vn -0.1132 0.9936 -0.0003 +vn -0.1113 0.9936 0.0211 +vn -0.1156 0.9931 -0.0217 +vn -0.0962 0.9951 -0.0210 +vn -0.0733 0.9969 -0.0298 +vn -0.0589 0.9977 -0.0348 +vn -0.0537 0.9985 -0.0100 +vn -0.0418 0.9984 -0.0388 +vn -0.0361 0.9993 -0.0121 +vn -0.0354 0.9993 0.0103 +vn -0.0499 0.9987 0.0124 +vn -0.0245 0.9996 -0.0163 +vn -0.0253 0.9987 -0.0431 +vn -0.0229 0.9997 0.0082 +vn -0.1388 0.9901 -0.0229 +vn -0.1411 0.9900 0.0020 +vn -0.1386 0.9900 0.0250 +vn -0.1059 0.9929 0.0540 +vn -0.1285 0.9897 0.0634 +vn -0.1199 0.9894 0.0820 +vn -0.0998 0.9925 0.0698 +vn -0.0920 0.9919 0.0878 +vn -0.1060 0.9893 0.1001 +vn -0.1338 0.9901 0.0435 +vn -0.1109 0.9932 0.0357 +vn -0.0865 0.9957 0.0331 +vn -0.0643 0.9974 0.0327 +vn -0.0816 0.9953 0.0513 +vn -0.0454 0.9985 0.0305 +vn -0.0309 0.9991 0.0300 +vn -0.0177 0.9994 0.0309 +vn -0.0886 0.9898 0.1117 +vn -0.0790 0.9928 0.0903 +vn -0.0693 0.9901 0.1217 +vn -0.0786 0.9956 -0.0507 +vn -0.0617 0.9966 -0.0540 +vn -0.0434 0.9972 -0.0616 +vn -0.0289 0.9973 -0.0673 +vn -0.0336 0.9952 -0.0916 +vn -0.0787 0.9945 0.0692 +vn -0.1157 0.9919 -0.0531 +vn -0.1165 0.9925 -0.0365 +vn -0.0963 0.9944 -0.0431 +vn -0.1003 0.9930 -0.0622 +vn -0.1293 0.9897 -0.0616 +vn -0.1344 0.9900 -0.0430 +vn -0.0493 0.9906 0.1275 +vn -0.0258 0.9911 0.1306 +vn -0.0022 0.9914 0.1307 +vn -0.0425 0.9917 -0.1210 +vn -0.1166 0.9903 -0.0752 +vn -0.0241 0.9550 0.2956 +vn -0.0493 0.9541 0.2956 +vn -0.0012 0.9557 0.2943 +vn -0.0741 0.9550 0.2872 +vn -0.0955 0.9557 0.2784 +vn -0.1159 0.9558 0.2701 +vn -0.1354 0.9558 0.2610 +vn -0.1541 0.9558 0.2503 +vn -0.1729 0.9557 0.2381 +vn -0.2121 0.9542 0.2110 +vn -0.1919 0.9550 0.2261 +vn -0.2275 0.9551 0.1896 +vn -0.2394 0.9559 0.1703 +vn -0.2512 0.9560 0.1514 +vn -0.2615 0.9561 0.1325 +vn -0.2704 0.9561 0.1127 +vn -0.2783 0.9561 0.0922 +vn -0.2945 0.9545 0.0467 +vn -0.2866 0.9554 0.0713 +vn -0.2942 0.9555 0.0205 +vn -0.2923 0.9563 -0.0020 +vn -0.2880 0.9565 -0.0456 +vn -0.2908 0.9565 -0.0239 +vn -0.2835 0.9566 -0.0670 +vn -0.2778 0.9566 -0.0881 +vn -0.2643 0.9550 -0.1346 +vn -0.2723 0.9559 -0.1099 +vn -0.2483 0.9561 -0.1555 +vn -0.2338 0.9569 -0.1724 +vn -0.2047 0.9571 -0.2052 +vn -0.2195 0.9570 -0.1896 +vn -0.1886 0.9571 -0.2199 +vn -0.1714 0.9571 -0.2337 +vn -0.1335 0.9553 -0.2636 +vn -0.1543 0.9564 -0.2481 +vn -0.1079 0.9565 -0.2709 +vn -0.0865 0.9573 -0.2759 +vn -0.0435 0.9574 -0.2855 +vn -0.0649 0.9574 -0.2813 +vn -0.0221 0.9574 -0.2878 +vn 0.0002 0.9574 -0.2888 +vn 0.0482 0.9555 -0.2910 +vn 0.0224 0.9566 -0.2904 +vn 0.0731 0.9567 -0.2819 +vn 0.0936 0.9574 -0.2731 +vn 0.1341 0.9574 -0.2556 +vn 0.1144 0.9575 -0.2648 +vn 0.1526 0.9575 -0.2449 +vn 0.1713 0.9574 -0.2326 +vn 0.2115 0.9554 -0.2061 +vn 0.1901 0.9566 -0.2209 +vn 0.2262 0.9565 -0.1842 +vn 0.2380 0.9572 -0.1645 +vn 0.2499 0.9573 -0.1457 +vn 0.2601 0.9572 -0.1271 +vn 0.2688 0.9572 -0.1075 +vn 0.2767 0.9570 -0.0867 +vn 0.2935 0.9551 -0.0415 +vn 0.2852 0.9562 -0.0658 +vn 0.2924 0.9562 -0.0148 +vn 0.2906 0.9568 0.0075 +vn 0.2892 0.9568 0.0294 +vn 0.2866 0.9567 0.0508 +vn 0.2821 0.9567 0.0719 +vn 0.2761 0.9566 0.0936 +vn 0.2708 0.9557 0.1150 +vn 0.2630 0.9546 0.1397 +vn 0.2474 0.9555 0.1604 +vn 0.2324 0.9563 0.1776 +vn 0.2182 0.9563 0.1947 +vn 0.2034 0.9562 0.2105 +vn 0.1874 0.9562 0.2249 +vn 0.1702 0.9560 0.2388 +vn 0.1527 0.9553 0.2533 +vn 0.1321 0.9543 0.2682 +vn 0.1071 0.9552 0.2761 +vn 0.0851 0.9558 0.2813 +vn 0.0631 0.9559 0.2867 +vn 0.0422 0.9558 0.2908 +vn 0.0209 0.9558 0.2931 +vn -0.0422 0.8576 -0.5125 +vn -0.1910 0.9603 -0.2032 +vn -0.0960 0.9744 -0.2032 +vn -0.0642 0.6520 -0.7555 +vn -0.1278 0.6426 -0.7555 +vn -0.1951 0.9808 -0.0000 +vn -0.0980 0.9952 0.0000 +vn 0.0000 0.9791 -0.2032 +vn 0.0000 1.0000 0.0000 +vn -0.2842 0.9370 -0.2032 +vn -0.1901 0.6269 -0.7555 +vn -0.3747 0.9046 -0.2032 +vn -0.2507 0.6053 -0.7555 +vn -0.3827 0.9239 -0.0000 +vn -0.2903 0.9569 -0.0000 +vn -0.4616 0.8635 -0.2032 +vn -0.3089 0.5778 -0.7555 +vn -0.5440 0.8141 -0.2032 +vn -0.3640 0.5447 -0.7555 +vn -0.5556 0.8315 0.0000 +vn -0.4714 0.8819 0.0000 +vn -0.6212 0.7569 -0.2032 +vn -0.4156 0.5064 -0.7555 +vn -0.6924 0.6923 -0.2032 +vn -0.4633 0.4633 -0.7555 +vn -0.7071 0.7071 0.0000 +vn -0.6344 0.7730 0.0000 +vn -0.7569 0.6212 -0.2032 +vn -0.5064 0.4156 -0.7555 +vn -0.8141 0.5440 -0.2032 +vn -0.5447 0.3640 -0.7555 +vn -0.8315 0.5556 0.0000 +vn -0.7730 0.6344 0.0000 +vn -0.8635 0.4616 -0.2032 +vn -0.5778 0.3089 -0.7555 +vn -0.9046 0.3747 -0.2032 +vn -0.6053 0.2507 -0.7555 +vn -0.9239 0.3827 0.0000 +vn -0.8819 0.4714 0.0000 +vn -0.9370 0.2842 -0.2032 +vn -0.6269 0.1901 -0.7555 +vn -0.9603 0.1910 -0.2032 +vn -0.6426 0.1278 -0.7555 +vn -0.9808 0.1951 0.0000 +vn -0.9569 0.2903 0.0000 +vn -0.9744 0.0960 -0.2032 +vn -0.6520 0.0642 -0.7555 +vn -0.9791 -0.0000 -0.2032 +vn -0.6551 -0.0000 -0.7555 +vn -1.0000 0.0000 0.0000 +vn -0.9952 0.0980 0.0000 +vn -0.9744 -0.0960 -0.2032 +vn -0.6520 -0.0642 -0.7555 +vn -0.9603 -0.1910 -0.2032 +vn -0.6425 -0.1278 -0.7555 +vn -0.9808 -0.1951 0.0000 +vn -0.9952 -0.0980 0.0000 +vn -0.9370 -0.2842 -0.2032 +vn -0.6269 -0.1902 -0.7555 +vn -0.9046 -0.3747 -0.2032 +vn -0.6053 -0.2507 -0.7555 +vn -0.9239 -0.3827 0.0000 +vn -0.9569 -0.2903 0.0000 +vn -0.8635 -0.4616 -0.2032 +vn -0.5778 -0.3088 -0.7555 +vn -0.8141 -0.5440 -0.2032 +vn -0.5447 -0.3640 -0.7555 +vn -0.8315 -0.5556 0.0000 +vn -0.8819 -0.4714 0.0000 +vn -0.7569 -0.6212 -0.2032 +vn -0.5064 -0.4156 -0.7555 +vn -0.6923 -0.6924 -0.2032 +vn -0.4633 -0.4633 -0.7555 +vn -0.7071 -0.7071 0.0000 +vn -0.7730 -0.6344 0.0000 +vn -0.6212 -0.7569 -0.2032 +vn -0.4156 -0.5064 -0.7555 +vn -0.5440 -0.8141 -0.2032 +vn -0.3640 -0.5447 -0.7555 +vn -0.5556 -0.8315 0.0000 +vn -0.6344 -0.7730 0.0000 +vn -0.4616 -0.8635 -0.2032 +vn -0.3088 -0.5778 -0.7555 +vn -0.3747 -0.9046 -0.2032 +vn -0.2507 -0.6053 -0.7555 +vn -0.3827 -0.9239 0.0000 +vn -0.4714 -0.8819 0.0000 +vn -0.2842 -0.9370 -0.2032 +vn -0.1902 -0.6269 -0.7555 +vn -0.1910 -0.9603 -0.2032 +vn -0.1278 -0.6426 -0.7555 +vn -0.1951 -0.9808 -0.0000 +vn -0.2903 -0.9569 -0.0000 +vn -0.0960 -0.9744 -0.2032 +vn -0.0642 -0.6520 -0.7555 +vn 0.0000 -0.9791 -0.2032 +vn 0.0000 -0.6551 -0.7555 +vn -0.0000 -1.0000 0.0000 +vn -0.0980 -0.9952 0.0000 +vn 0.0960 -0.9744 -0.2032 +vn 0.0642 -0.6520 -0.7555 +vn 0.1910 -0.9603 -0.2032 +vn 0.1278 -0.6426 -0.7555 +vn 0.1951 -0.9808 -0.0000 +vn 0.0980 -0.9952 0.0000 +vn 0.2842 -0.9370 -0.2032 +vn 0.1902 -0.6269 -0.7555 +vn 0.3747 -0.9046 -0.2032 +vn 0.2507 -0.6053 -0.7555 +vn 0.3827 -0.9239 0.0000 +vn 0.2903 -0.9569 0.0000 +vn 0.4616 -0.8635 -0.2032 +vn 0.3088 -0.5778 -0.7555 +vn 0.5440 -0.8141 -0.2032 +vn 0.3640 -0.5447 -0.7555 +vn 0.5556 -0.8315 0.0000 +vn 0.4714 -0.8819 0.0000 +vn 0.6212 -0.7569 -0.2032 +vn 0.4156 -0.5064 -0.7555 +vn 0.6924 -0.6924 -0.2032 +vn 0.4633 -0.4633 -0.7555 +vn 0.7071 -0.7071 0.0000 +vn 0.6344 -0.7730 0.0000 +vn 0.7569 -0.6212 -0.2032 +vn 0.5064 -0.4156 -0.7555 +vn 0.8141 -0.5440 -0.2032 +vn 0.5447 -0.3640 -0.7555 +vn 0.8315 -0.5556 0.0000 +vn 0.7730 -0.6344 0.0000 +vn 0.8635 -0.4616 -0.2032 +vn 0.5778 -0.3088 -0.7555 +vn 0.9046 -0.3747 -0.2032 +vn 0.6053 -0.2507 -0.7555 +vn 0.9239 -0.3827 0.0000 +vn 0.8819 -0.4714 0.0000 +vn 0.9370 -0.2842 -0.2032 +vn 0.6269 -0.1902 -0.7555 +vn 0.9603 -0.1910 -0.2032 +vn 0.6426 -0.1278 -0.7555 +vn 0.9808 -0.1951 0.0000 +vn 0.9569 -0.2903 0.0000 +vn 0.9744 -0.0960 -0.2032 +vn 0.6520 -0.0642 -0.7555 +vn 0.9791 -0.0000 -0.2032 +vn 0.6552 0.0000 -0.7555 +vn 1.0000 0.0000 0.0000 +vn 0.9952 -0.0980 0.0000 +vn 0.9744 0.0960 -0.2032 +vn 0.6520 0.0642 -0.7555 +vn 0.9603 0.1910 -0.2032 +vn 0.6426 0.1278 -0.7555 +vn 0.9952 0.0980 0.0000 +vn 0.9370 0.2842 -0.2032 +vn 0.6269 0.1902 -0.7555 +vn 0.9046 0.3747 -0.2032 +vn 0.6053 0.2507 -0.7555 +vn 0.8635 0.4616 -0.2032 +vn 0.5778 0.3088 -0.7555 +vn 0.8141 0.5440 -0.2032 +vn 0.5447 0.3639 -0.7555 +vn 0.7569 0.6212 -0.2032 +vn 0.5064 0.4156 -0.7555 +vn 0.6924 0.6924 -0.2032 +vn 0.4633 0.4633 -0.7555 +vn 0.7071 0.7071 0.0000 +vn 0.6212 0.7569 -0.2032 +vn 0.4156 0.5064 -0.7555 +vn 0.5440 0.8141 -0.2032 +vn 0.3640 0.5447 -0.7555 +vn 0.5556 0.8315 0.0000 +vn 0.6344 0.7730 0.0000 +vn 0.4616 0.8635 -0.2032 +vn 0.3088 0.5778 -0.7555 +vn 0.3747 0.9046 -0.2032 +vn 0.2507 0.6053 -0.7555 +vn 0.3827 0.9239 0.0000 +vn 0.4714 0.8819 0.0000 +vn 0.2842 0.9370 -0.2032 +vn 0.1902 0.6269 -0.7555 +vn 0.1910 0.9603 -0.2032 +vn 0.1278 0.6426 -0.7555 +vn 0.1951 0.9808 0.0000 +vn 0.2903 0.9569 0.0000 +vn 0.0960 0.9744 -0.2032 +vn 0.0642 0.6520 -0.7555 +vn -0.0000 0.6552 -0.7555 +vn 0.0980 0.9952 -0.0000 +vn -0.0016 0.0161 0.9999 +vn -0.0032 0.0159 0.9999 +vn 0.0439 -0.2208 0.9743 +vn 0.0221 -0.2240 0.9743 +vn -0.0000 0.0162 0.9999 +vn -0.0000 -0.2251 0.9743 +vn -0.0000 0.3285 0.9445 +vn -0.0322 0.3269 0.9445 +vn -0.0641 0.3222 0.9445 +vn -0.0047 0.0155 0.9999 +vn -0.0062 0.0150 0.9999 +vn 0.0861 -0.2080 0.9743 +vn 0.0654 -0.2154 0.9743 +vn -0.0954 0.3143 0.9445 +vn -0.1257 0.3035 0.9445 +vn -0.0076 0.0143 0.9999 +vn -0.0090 0.0135 0.9999 +vn 0.1251 -0.1872 0.9743 +vn 0.1061 -0.1986 0.9743 +vn -0.1549 0.2897 0.9445 +vn -0.1825 0.2732 0.9445 +vn -0.0103 0.0125 0.9999 +vn -0.0115 0.0115 0.9999 +vn 0.1592 -0.1592 0.9743 +vn 0.1428 -0.1740 0.9743 +vn -0.2084 0.2539 0.9445 +vn -0.2323 0.2323 0.9445 +vn -0.0125 0.0103 0.9999 +vn -0.0135 0.0090 0.9999 +vn 0.1872 -0.1251 0.9743 +vn 0.1740 -0.1428 0.9743 +vn -0.2539 0.2084 0.9445 +vn -0.2732 0.1825 0.9445 +vn -0.0143 0.0076 0.9999 +vn -0.0150 0.0062 0.9999 +vn 0.2080 -0.0861 0.9743 +vn 0.1986 -0.1061 0.9743 +vn -0.2897 0.1548 0.9445 +vn -0.3035 0.1257 0.9445 +vn -0.0155 0.0047 0.9999 +vn -0.0159 0.0032 0.9999 +vn 0.2208 -0.0439 0.9743 +vn 0.2154 -0.0654 0.9743 +vn -0.3143 0.0954 0.9445 +vn -0.3222 0.0641 0.9445 +vn -0.0161 0.0016 0.9999 +vn -0.0162 -0.0000 0.9999 +vn 0.2251 -0.0000 0.9743 +vn 0.2240 -0.0221 0.9743 +vn -0.3269 0.0322 0.9445 +vn -0.3285 -0.0000 0.9445 +vn -0.0161 -0.0016 0.9999 +vn -0.0159 -0.0032 0.9999 +vn 0.2208 0.0439 0.9743 +vn 0.2240 0.0221 0.9743 +vn -0.3269 -0.0322 0.9445 +vn -0.3222 -0.0641 0.9445 +vn -0.0155 -0.0047 0.9999 +vn -0.0150 -0.0062 0.9999 +vn 0.2080 0.0861 0.9743 +vn 0.2154 0.0654 0.9743 +vn -0.3143 -0.0954 0.9445 +vn -0.3035 -0.1257 0.9445 +vn -0.0143 -0.0076 0.9999 +vn -0.0135 -0.0090 0.9999 +vn 0.1872 0.1251 0.9743 +vn 0.1986 0.1061 0.9743 +vn -0.2897 -0.1548 0.9445 +vn -0.2732 -0.1825 0.9445 +vn -0.0125 -0.0103 0.9999 +vn -0.0115 -0.0115 0.9999 +vn 0.1592 0.1592 0.9743 +vn 0.1740 0.1428 0.9743 +vn -0.2539 -0.2084 0.9445 +vn -0.2323 -0.2323 0.9445 +vn -0.0103 -0.0125 0.9999 +vn -0.0090 -0.0135 0.9999 +vn 0.1251 0.1872 0.9743 +vn 0.1428 0.1740 0.9743 +vn -0.2084 -0.2539 0.9445 +vn -0.1825 -0.2732 0.9445 +vn -0.0076 -0.0143 0.9999 +vn -0.0062 -0.0150 0.9999 +vn 0.0861 0.2080 0.9743 +vn 0.1061 0.1986 0.9743 +vn -0.1548 -0.2897 0.9445 +vn -0.1257 -0.3035 0.9445 +vn -0.0047 -0.0155 0.9999 +vn -0.0032 -0.0159 0.9999 +vn 0.0439 0.2208 0.9743 +vn 0.0654 0.2154 0.9743 +vn -0.0954 -0.3143 0.9445 +vn -0.0641 -0.3222 0.9445 +vn -0.0016 -0.0161 0.9999 +vn -0.0000 -0.0162 0.9999 +vn 0.0000 0.2251 0.9743 +vn 0.0221 0.2240 0.9743 +vn -0.0322 -0.3269 0.9445 +vn 0.0000 -0.3285 0.9445 +vn 0.0016 -0.0161 0.9999 +vn 0.0032 -0.0159 0.9999 +vn -0.0439 0.2208 0.9743 +vn -0.0221 0.2240 0.9743 +vn 0.0322 -0.3269 0.9445 +vn 0.0641 -0.3222 0.9445 +vn 0.0047 -0.0155 0.9999 +vn 0.0062 -0.0150 0.9999 +vn -0.0861 0.2080 0.9743 +vn -0.0654 0.2154 0.9743 +vn 0.0954 -0.3143 0.9445 +vn 0.1257 -0.3035 0.9445 +vn 0.0076 -0.0143 0.9999 +vn 0.0090 -0.0135 0.9999 +vn -0.1251 0.1872 0.9743 +vn -0.1061 0.1986 0.9743 +vn 0.1549 -0.2897 0.9445 +vn 0.1825 -0.2732 0.9445 +vn 0.0103 -0.0125 0.9999 +vn 0.0115 -0.0115 0.9999 +vn -0.1592 0.1592 0.9743 +vn -0.1428 0.1740 0.9743 +vn 0.2084 -0.2539 0.9445 +vn 0.2323 -0.2323 0.9445 +vn 0.0125 -0.0103 0.9999 +vn 0.0135 -0.0090 0.9999 +vn -0.1872 0.1251 0.9743 +vn -0.1740 0.1428 0.9743 +vn 0.2539 -0.2084 0.9445 +vn 0.2732 -0.1825 0.9445 +vn 0.0143 -0.0076 0.9999 +vn 0.0150 -0.0062 0.9999 +vn -0.2080 0.0861 0.9743 +vn -0.1986 0.1061 0.9743 +vn 0.2897 -0.1548 0.9445 +vn 0.3035 -0.1257 0.9445 +vn 0.0155 -0.0047 0.9999 +vn 0.0159 -0.0032 0.9999 +vn -0.2208 0.0439 0.9743 +vn -0.2154 0.0654 0.9743 +vn 0.3143 -0.0954 0.9445 +vn 0.3222 -0.0641 0.9445 +vn 0.0161 -0.0016 0.9999 +vn 0.0162 0.0000 0.9999 +vn -0.2251 0.0000 0.9743 +vn -0.2240 0.0221 0.9743 +vn 0.3269 -0.0322 0.9445 +vn 0.3285 0.0000 0.9445 +vn 0.0161 0.0016 0.9999 +vn 0.0159 0.0032 0.9999 +vn -0.2208 -0.0439 0.9743 +vn -0.2240 -0.0221 0.9743 +vn 0.3269 0.0322 0.9445 +vn 0.3222 0.0641 0.9445 +vn 0.0155 0.0047 0.9999 +vn 0.0150 0.0062 0.9999 +vn -0.2080 -0.0861 0.9743 +vn -0.2154 -0.0654 0.9743 +vn 0.3143 0.0954 0.9445 +vn 0.3035 0.1257 0.9445 +vn 0.0143 0.0076 0.9999 +vn 0.0135 0.0090 0.9999 +vn -0.1872 -0.1251 0.9743 +vn -0.1986 -0.1061 0.9743 +vn 0.2897 0.1548 0.9445 +vn 0.2732 0.1825 0.9445 +vn 0.0125 0.0103 0.9999 +vn 0.0115 0.0115 0.9999 +vn -0.1592 -0.1592 0.9743 +vn -0.1740 -0.1428 0.9743 +vn 0.2539 0.2084 0.9445 +vn 0.2323 0.2323 0.9445 +vn 0.0103 0.0125 0.9999 +vn 0.0090 0.0135 0.9999 +vn -0.1251 -0.1872 0.9743 +vn -0.1428 -0.1740 0.9743 +vn 0.2084 0.2539 0.9445 +vn 0.1825 0.2732 0.9445 +vn 0.0076 0.0143 0.9999 +vn 0.0062 0.0150 0.9999 +vn -0.0861 -0.2080 0.9743 +vn -0.1061 -0.1986 0.9743 +vn 0.1548 0.2897 0.9445 +vn 0.1257 0.3035 0.9445 +vn 0.0047 0.0155 0.9999 +vn 0.0032 0.0159 0.9999 +vn -0.0439 -0.2208 0.9743 +vn -0.0654 -0.2154 0.9743 +vn 0.0954 0.3143 0.9445 +vn 0.0641 0.3222 0.9445 +vn 0.0016 0.0161 0.9999 +vn -0.0221 -0.2240 0.9743 +vn 0.0322 0.3269 0.9445 +vn 0.0530 -0.5382 0.8411 +vn 0.1055 -0.5304 0.8411 +vn 0.0694 -0.7048 0.7060 +vn 0.1382 -0.6946 0.7060 +vn 0.0001 -0.7082 0.7060 +vn -0.0000 -0.5408 0.8411 +vn -0.0746 0.7572 0.6489 +vn 0.0000 0.7609 0.6489 +vn -0.0936 0.9506 0.2960 +vn -0.0000 0.9552 0.2960 +vn -0.1863 0.9368 0.2960 +vn -0.1484 0.7463 0.6489 +vn 0.1570 -0.5176 0.8411 +vn 0.2070 -0.4996 0.8411 +vn 0.2057 -0.6777 0.7060 +vn 0.2710 -0.6543 0.7060 +vn -0.2209 0.7281 0.6489 +vn -0.2773 0.9140 0.2960 +vn -0.3655 0.8825 0.2960 +vn -0.2912 0.7030 0.6489 +vn 0.2549 -0.4770 0.8411 +vn 0.3005 -0.4497 0.8411 +vn 0.3338 -0.6246 0.7060 +vn 0.3934 -0.5888 0.7061 +vn -0.3587 0.6710 0.6489 +vn -0.4503 0.8424 0.2960 +vn -0.5307 0.7942 0.2960 +vn -0.4227 0.6327 0.6489 +vn 0.3431 -0.4181 0.8411 +vn 0.3824 -0.3824 0.8411 +vn 0.4493 -0.5474 0.7060 +vn 0.5008 -0.5008 0.7060 +vn -0.4827 0.5882 0.6489 +vn -0.6059 0.7384 0.2960 +vn -0.6754 0.6754 0.2960 +vn -0.5380 0.5380 0.6489 +vn 0.4181 -0.3431 0.8411 +vn 0.4497 -0.3005 0.8411 +vn 0.5475 -0.4493 0.7060 +vn 0.5888 -0.3934 0.7061 +vn -0.5882 0.4827 0.6489 +vn -0.7384 0.6060 0.2960 +vn -0.7942 0.5307 0.2960 +vn -0.6327 0.4227 0.6489 +vn 0.4770 -0.2550 0.8411 +vn 0.4996 -0.2070 0.8411 +vn 0.6246 -0.3338 0.7060 +vn 0.6543 -0.2710 0.7060 +vn -0.6710 0.3587 0.6489 +vn -0.8424 0.4503 0.2960 +vn -0.8825 0.3655 0.2960 +vn -0.7030 0.2912 0.6489 +vn 0.5176 -0.1570 0.8411 +vn 0.5304 -0.1055 0.8411 +vn 0.6777 -0.2056 0.7060 +vn 0.6946 -0.1382 0.7060 +vn -0.7281 0.2209 0.6489 +vn -0.9141 0.2773 0.2960 +vn -0.9368 0.1863 0.2960 +vn -0.7463 0.1484 0.6489 +vn 0.5382 -0.0530 0.8411 +vn 0.5408 0.0000 0.8411 +vn 0.7048 -0.0694 0.7060 +vn 0.7082 -0.0000 0.7060 +vn -0.7572 0.0746 0.6489 +vn -0.9506 0.0936 0.2960 +vn -0.9552 -0.0000 0.2960 +vn -0.7609 -0.0000 0.6489 +vn 0.5382 0.0530 0.8411 +vn 0.5304 0.1055 0.8411 +vn 0.7048 0.0694 0.7060 +vn 0.6946 0.1382 0.7060 +vn -0.7572 -0.0746 0.6489 +vn -0.9506 -0.0936 0.2960 +vn -0.9368 -0.1863 0.2960 +vn -0.7463 -0.1484 0.6489 +vn 0.5176 0.1570 0.8411 +vn 0.4996 0.2070 0.8411 +vn 0.6777 0.2056 0.7060 +vn 0.6543 0.2710 0.7060 +vn -0.7281 -0.2209 0.6489 +vn -0.9140 -0.2773 0.2960 +vn -0.8825 -0.3655 0.2960 +vn -0.7030 -0.2912 0.6489 +vn 0.4770 0.2549 0.8411 +vn 0.4497 0.3005 0.8411 +vn 0.6246 0.3338 0.7060 +vn 0.5888 0.3934 0.7060 +vn -0.6710 -0.3587 0.6489 +vn -0.8424 -0.4503 0.2960 +vn -0.7942 -0.5307 0.2960 +vn -0.6327 -0.4227 0.6489 +vn 0.4181 0.3431 0.8411 +vn 0.3824 0.3824 0.8411 +vn 0.5474 0.4493 0.7060 +vn 0.5008 0.5008 0.7060 +vn -0.5882 -0.4827 0.6489 +vn -0.7384 -0.6060 0.2960 +vn -0.6754 -0.6754 0.2960 +vn -0.5380 -0.5380 0.6489 +vn 0.3431 0.4181 0.8411 +vn 0.3005 0.4497 0.8411 +vn 0.4493 0.5474 0.7060 +vn 0.3934 0.5888 0.7060 +vn -0.4827 -0.5882 0.6489 +vn -0.6060 -0.7384 0.2960 +vn -0.5307 -0.7942 0.2960 +vn -0.4227 -0.6327 0.6489 +vn 0.2550 0.4770 0.8411 +vn 0.2070 0.4996 0.8411 +vn 0.3338 0.6246 0.7060 +vn 0.2710 0.6543 0.7060 +vn -0.3587 -0.6710 0.6489 +vn -0.4503 -0.8424 0.2960 +vn -0.3655 -0.8825 0.2960 +vn -0.2912 -0.7030 0.6489 +vn 0.1570 0.5175 0.8412 +vn 0.1055 0.5304 0.8411 +vn 0.2056 0.6777 0.7060 +vn 0.1382 0.6946 0.7060 +vn -0.2209 -0.7281 0.6489 +vn -0.2773 -0.9140 0.2960 +vn -0.1863 -0.9368 0.2960 +vn -0.1484 -0.7463 0.6489 +vn 0.0530 0.5382 0.8411 +vn -0.0000 0.5408 0.8411 +vn 0.0693 0.7048 0.7060 +vn 0.0000 0.7082 0.7060 +vn -0.0746 -0.7572 0.6489 +vn -0.0936 -0.9506 0.2960 +vn 0.0000 -0.9552 0.2960 +vn 0.0000 -0.7609 0.6489 +vn -0.0530 0.5382 0.8411 +vn -0.1055 0.5304 0.8411 +vn -0.0694 0.7048 0.7060 +vn -0.1382 0.6946 0.7060 +vn 0.0746 -0.7572 0.6489 +vn 0.0936 -0.9506 0.2960 +vn 0.1864 -0.9368 0.2960 +vn 0.1484 -0.7463 0.6489 +vn -0.1570 0.5176 0.8411 +vn -0.2070 0.4996 0.8411 +vn -0.2057 0.6777 0.7060 +vn -0.2710 0.6543 0.7060 +vn 0.2209 -0.7281 0.6489 +vn 0.2773 -0.9140 0.2960 +vn 0.3655 -0.8825 0.2960 +vn 0.2912 -0.7030 0.6489 +vn -0.2549 0.4770 0.8411 +vn -0.3005 0.4497 0.8411 +vn -0.3338 0.6246 0.7060 +vn -0.3934 0.5888 0.7060 +vn 0.3587 -0.6710 0.6489 +vn 0.4503 -0.8424 0.2960 +vn 0.5307 -0.7942 0.2960 +vn 0.4227 -0.6327 0.6489 +vn -0.3431 0.4181 0.8411 +vn -0.3824 0.3824 0.8411 +vn -0.4493 0.5474 0.7060 +vn -0.5008 0.5008 0.7060 +vn 0.4827 -0.5882 0.6489 +vn 0.6060 -0.7384 0.2960 +vn 0.6754 -0.6755 0.2960 +vn 0.5380 -0.5380 0.6489 +vn -0.4181 0.3431 0.8411 +vn -0.4497 0.3005 0.8411 +vn -0.5474 0.4493 0.7060 +vn -0.5888 0.3934 0.7061 +vn 0.5882 -0.4827 0.6489 +vn 0.7384 -0.6060 0.2960 +vn 0.7942 -0.5307 0.2960 +vn 0.6327 -0.4227 0.6489 +vn -0.4770 0.2549 0.8411 +vn -0.4996 0.2070 0.8411 +vn -0.6246 0.3338 0.7060 +vn -0.6543 0.2710 0.7060 +vn 0.6710 -0.3587 0.6489 +vn 0.8424 -0.4503 0.2960 +vn 0.8825 -0.3655 0.2960 +vn 0.7030 -0.2912 0.6489 +vn -0.5176 0.1569 0.8411 +vn -0.5304 0.1055 0.8411 +vn -0.6777 0.2056 0.7060 +vn -0.6946 0.1382 0.7060 +vn 0.7281 -0.2209 0.6489 +vn 0.9141 -0.2773 0.2960 +vn 0.9368 -0.1863 0.2960 +vn 0.7463 -0.1484 0.6489 +vn -0.5382 0.0530 0.8411 +vn -0.5408 -0.0000 0.8411 +vn -0.7048 0.0693 0.7060 +vn -0.7082 0.0000 0.7060 +vn 0.7572 -0.0746 0.6489 +vn 0.9506 -0.0936 0.2960 +vn 0.9552 -0.0001 0.2960 +vn 0.7609 0.0000 0.6489 +vn -0.5382 -0.0530 0.8411 +vn -0.5304 -0.1055 0.8411 +vn -0.7048 -0.0694 0.7060 +vn -0.6946 -0.1382 0.7060 +vn 0.7572 0.0746 0.6489 +vn 0.9506 0.0936 0.2960 +vn 0.9368 0.1864 0.2960 +vn 0.7463 0.1484 0.6489 +vn -0.5176 -0.1570 0.8411 +vn -0.4996 -0.2070 0.8411 +vn -0.6777 -0.2056 0.7060 +vn -0.6543 -0.2710 0.7060 +vn 0.7281 0.2209 0.6489 +vn 0.9141 0.2773 0.2960 +vn 0.8825 0.3655 0.2960 +vn 0.7030 0.2912 0.6489 +vn -0.4770 -0.2549 0.8411 +vn -0.4497 -0.3005 0.8411 +vn -0.6246 -0.3338 0.7060 +vn -0.5888 -0.3934 0.7060 +vn 0.6710 0.3587 0.6489 +vn 0.8424 0.4503 0.2960 +vn 0.7942 0.5307 0.2960 +vn 0.6327 0.4227 0.6489 +vn -0.4181 -0.3431 0.8411 +vn -0.3824 -0.3824 0.8411 +vn -0.5474 -0.4493 0.7060 +vn -0.5008 -0.5008 0.7060 +vn 0.5882 0.4827 0.6489 +vn 0.7384 0.6060 0.2960 +vn 0.6754 0.6754 0.2960 +vn 0.5380 0.5380 0.6489 +vn -0.3431 -0.4181 0.8411 +vn -0.3005 -0.4497 0.8411 +vn -0.4493 -0.5474 0.7060 +vn -0.3934 -0.5888 0.7061 +vn 0.4827 0.5882 0.6489 +vn 0.6060 0.7384 0.2960 +vn 0.5307 0.7942 0.2960 +vn 0.4227 0.6327 0.6489 +vn -0.2549 -0.4770 0.8411 +vn -0.2070 -0.4996 0.8411 +vn -0.3338 -0.6246 0.7060 +vn -0.2710 -0.6543 0.7060 +vn 0.3587 0.6710 0.6489 +vn 0.4503 0.8424 0.2960 +vn 0.3655 0.8825 0.2960 +vn 0.2912 0.7030 0.6489 +vn -0.1570 -0.5176 0.8411 +vn -0.1055 -0.5304 0.8411 +vn -0.2056 -0.6777 0.7060 +vn -0.1382 -0.6946 0.7060 +vn 0.2209 0.7281 0.6489 +vn 0.2773 0.9140 0.2960 +vn 0.1863 0.9368 0.2960 +vn 0.1484 0.7463 0.6489 +vn -0.0530 -0.5382 0.8411 +vn -0.0693 -0.7048 0.7060 +vn 0.0746 0.7572 0.6489 +vn 0.0936 0.9506 0.2960 +vn -0.0974 0.9888 0.1129 +vn -0.0000 0.9936 0.1129 +vn -0.0980 0.9950 0.0178 +vn -0.0000 0.9998 0.0178 +vn -0.1951 0.9806 0.0178 +vn -0.1938 0.9745 0.1129 +vn -0.2884 0.9508 0.1129 +vn -0.2902 0.9568 0.0178 +vn -0.3826 0.9237 0.0178 +vn -0.3802 0.9180 0.1129 +vn -0.4684 0.8763 0.1129 +vn -0.4713 0.8818 0.0178 +vn -0.5555 0.8313 0.0178 +vn -0.5520 0.8262 0.1129 +vn -0.6303 0.7681 0.1129 +vn -0.6343 0.7729 0.0178 +vn -0.7070 0.7070 0.0178 +vn -0.7026 0.7026 0.1129 +vn -0.7681 0.6303 0.1129 +vn -0.7729 0.6343 0.0178 +vn -0.8313 0.5555 0.0178 +vn -0.8262 0.5520 0.1129 +vn -0.8763 0.4684 0.1129 +vn -0.8818 0.4713 0.0178 +vn -0.9237 0.3826 0.0178 +vn -0.9180 0.3802 0.1129 +vn -0.9508 0.2884 0.1129 +vn -0.9568 0.2902 0.0178 +vn -0.9806 0.1951 0.0178 +vn -0.9745 0.1938 0.1129 +vn -0.9888 0.0974 0.1129 +vn -0.9950 0.0980 0.0178 +vn -0.9998 -0.0000 0.0178 +vn -0.9936 -0.0000 0.1129 +vn -0.9888 -0.0974 0.1129 +vn -0.9950 -0.0980 0.0178 +vn -0.9806 -0.1951 0.0178 +vn -0.9745 -0.1938 0.1129 +vn -0.9508 -0.2884 0.1129 +vn -0.9568 -0.2902 0.0178 +vn -0.9237 -0.3826 0.0178 +vn -0.9180 -0.3802 0.1129 +vn -0.8763 -0.4684 0.1129 +vn -0.8818 -0.4713 0.0178 +vn -0.8313 -0.5555 0.0178 +vn -0.8262 -0.5520 0.1129 +vn -0.7681 -0.6303 0.1129 +vn -0.7729 -0.6343 0.0178 +vn -0.7070 -0.7070 0.0178 +vn -0.7026 -0.7026 0.1129 +vn -0.6303 -0.7681 0.1129 +vn -0.6343 -0.7729 0.0178 +vn -0.5555 -0.8313 0.0178 +vn -0.5520 -0.8262 0.1129 +vn -0.4684 -0.8763 0.1129 +vn -0.4713 -0.8818 0.0178 +vn -0.3826 -0.9237 0.0178 +vn -0.3802 -0.9180 0.1129 +vn -0.2884 -0.9508 0.1129 +vn -0.2902 -0.9568 0.0178 +vn -0.1951 -0.9806 0.0178 +vn -0.1938 -0.9745 0.1129 +vn -0.0974 -0.9888 0.1129 +vn -0.0980 -0.9950 0.0178 +vn 0.0000 -0.9998 0.0178 +vn 0.0000 -0.9936 0.1129 +vn 0.0974 -0.9888 0.1129 +vn 0.0980 -0.9950 0.0178 +vn 0.1951 -0.9806 0.0178 +vn 0.1938 -0.9745 0.1129 +vn 0.2884 -0.9508 0.1129 +vn 0.2902 -0.9568 0.0178 +vn 0.3826 -0.9237 0.0178 +vn 0.3802 -0.9180 0.1129 +vn 0.4684 -0.8763 0.1129 +vn 0.4713 -0.8818 0.0178 +vn 0.5555 -0.8313 0.0178 +vn 0.5520 -0.8262 0.1129 +vn 0.6303 -0.7681 0.1129 +vn 0.6343 -0.7729 0.0178 +vn 0.7070 -0.7070 0.0178 +vn 0.7026 -0.7026 0.1129 +vn 0.7681 -0.6303 0.1129 +vn 0.7729 -0.6343 0.0178 +vn 0.8313 -0.5555 0.0178 +vn 0.8262 -0.5520 0.1129 +vn 0.8763 -0.4684 0.1129 +vn 0.8818 -0.4713 0.0178 +vn 0.9237 -0.3826 0.0178 +vn 0.9180 -0.3802 0.1129 +vn 0.9508 -0.2884 0.1129 +vn 0.9568 -0.2902 0.0178 +vn 0.9806 -0.1951 0.0178 +vn 0.9745 -0.1938 0.1129 +vn 0.9888 -0.0974 0.1129 +vn 0.9950 -0.0980 0.0178 +vn 0.9998 0.0000 0.0178 +vn 0.9936 0.0000 0.1129 +vn 0.9888 0.0974 0.1129 +vn 0.9950 0.0980 0.0178 +vn 0.9806 0.1951 0.0178 +vn 0.9745 0.1938 0.1129 +vn 0.9508 0.2884 0.1129 +vn 0.9568 0.2902 0.0178 +vn 0.9237 0.3826 0.0178 +vn 0.9180 0.3802 0.1129 +vn 0.8763 0.4684 0.1129 +vn 0.8818 0.4713 0.0178 +vn 0.8313 0.5555 0.0178 +vn 0.8262 0.5520 0.1129 +vn 0.7681 0.6303 0.1129 +vn 0.7729 0.6343 0.0178 +vn 0.7070 0.7070 0.0178 +vn 0.7026 0.7026 0.1129 +vn 0.6303 0.7681 0.1129 +vn 0.6343 0.7729 0.0178 +vn 0.5555 0.8313 0.0178 +vn 0.5520 0.8262 0.1129 +vn 0.4684 0.8763 0.1129 +vn 0.4713 0.8818 0.0178 +vn 0.3826 0.9237 0.0178 +vn 0.3802 0.9180 0.1129 +vn 0.2884 0.9508 0.1129 +vn 0.2902 0.9568 0.0178 +vn 0.1951 0.9806 0.0178 +vn 0.1938 0.9745 0.1129 +vn 0.0974 0.9888 0.1129 +vn 0.0980 0.9950 0.0178 +vn -0.0980 0.9952 0.0024 +vn -0.1951 0.9808 0.0025 +vn -0.0000 1.0000 0.0023 +vn -0.2903 0.9569 0.0024 +vn -0.3827 0.9239 0.0024 +vn -0.4714 0.8819 0.0023 +vn -0.5556 0.8315 0.0023 +vn -0.6344 0.7730 0.0024 +vn -0.7071 0.7071 0.0023 +vn -0.7730 0.6344 0.0023 +vn -0.8315 0.5556 0.0023 +vn -0.8819 0.4714 0.0023 +vn -0.9239 0.3827 0.0025 +vn -0.9569 0.2903 0.0023 +vn -0.9808 0.1951 0.0025 +vn -0.9952 0.0980 0.0024 +vn -1.0000 -0.0000 0.0023 +vn -0.9952 -0.0980 0.0023 +vn -0.9808 -0.1951 0.0025 +vn -0.9569 -0.2903 0.0024 +vn -0.9239 -0.3827 0.0024 +vn -0.8819 -0.4714 0.0023 +vn -0.8315 -0.5556 0.0023 +vn -0.7730 -0.6344 0.0024 +vn -0.7071 -0.7071 0.0023 +vn -0.6344 -0.7730 0.0024 +vn -0.5556 -0.8315 0.0023 +vn -0.4714 -0.8819 0.0023 +vn -0.3827 -0.9239 0.0024 +vn -0.2903 -0.9569 0.0024 +vn -0.1951 -0.9808 0.0025 +vn -0.0980 -0.9952 0.0023 +vn -0.0000 -1.0000 0.0024 +vn 0.0980 -0.9952 0.0024 +vn 0.1951 -0.9808 0.0023 +vn 0.2903 -0.9569 0.0023 +vn 0.3827 -0.9239 0.0024 +vn 0.4714 -0.8819 0.0023 +vn 0.5556 -0.8315 0.0023 +vn 0.6344 -0.7730 0.0023 +vn 0.7071 -0.7071 0.0023 +vn 0.7730 -0.6344 0.0023 +vn 0.8315 -0.5556 0.0023 +vn 0.8819 -0.4714 0.0023 +vn 0.9239 -0.3827 0.0024 +vn 0.9569 -0.2903 0.0023 +vn 0.9808 -0.1951 0.0024 +vn 0.9952 -0.0980 0.0024 +vn 1.0000 0.0000 0.0024 +vn 0.9952 0.0980 0.0024 +vn 0.9808 0.1951 0.0025 +vn 0.9569 0.2903 0.0023 +vn 0.9239 0.3827 0.0024 +vn 0.8819 0.4714 0.0022 +vn 0.8315 0.5556 0.0023 +vn 0.7730 0.6344 0.0024 +vn 0.7071 0.7071 0.0023 +vn 0.6344 0.7730 0.0023 +vn 0.5556 0.8315 0.0024 +vn 0.4714 0.8819 0.0022 +vn 0.3827 0.9239 0.0024 +vn 0.2903 0.9569 0.0024 +vn 0.1951 0.9808 0.0024 +vn 0.0980 0.9952 0.0023 +vn -0.0125 0.1274 -0.9918 +vn -0.0250 0.1256 -0.9918 +vn -0.0000 0.1281 -0.9918 +vn 0.0125 0.1274 -0.9918 +vn 0.0250 0.1256 -0.9918 +vn 0.0372 0.1225 -0.9918 +vn 0.0490 0.1183 -0.9918 +vn 0.0604 0.1129 -0.9918 +vn 0.0711 0.1065 -0.9918 +vn 0.0812 0.0990 -0.9918 +vn 0.0905 0.0905 -0.9918 +vn 0.0990 0.0812 -0.9918 +vn 0.1065 0.0711 -0.9918 +vn 0.1129 0.0604 -0.9918 +vn 0.1183 0.0490 -0.9918 +vn 0.1225 0.0372 -0.9918 +vn 0.1256 0.0250 -0.9918 +vn 0.1274 0.0125 -0.9918 +vn 0.1281 0.0000 -0.9918 +vn 0.1274 -0.0125 -0.9918 +vn 0.1256 -0.0250 -0.9918 +vn 0.1225 -0.0372 -0.9918 +vn 0.1183 -0.0490 -0.9918 +vn 0.1129 -0.0604 -0.9918 +vn 0.1065 -0.0711 -0.9918 +vn 0.0990 -0.0812 -0.9918 +vn 0.0905 -0.0905 -0.9918 +vn 0.0812 -0.0990 -0.9918 +vn 0.0711 -0.1065 -0.9918 +vn 0.0604 -0.1129 -0.9918 +vn 0.0490 -0.1183 -0.9918 +vn 0.0372 -0.1225 -0.9918 +vn 0.0250 -0.1256 -0.9918 +vn 0.0125 -0.1274 -0.9918 +vn 0.0000 -0.1281 -0.9918 +vn -0.0125 -0.1274 -0.9918 +vn -0.0250 -0.1256 -0.9918 +vn -0.0372 -0.1225 -0.9918 +vn -0.0490 -0.1183 -0.9918 +vn -0.0604 -0.1129 -0.9918 +vn -0.0711 -0.1065 -0.9918 +vn -0.0812 -0.0990 -0.9918 +vn -0.0905 -0.0905 -0.9918 +vn -0.0990 -0.0812 -0.9918 +vn -0.1065 -0.0711 -0.9918 +vn -0.1129 -0.0604 -0.9918 +vn -0.1183 -0.0490 -0.9918 +vn -0.1225 -0.0372 -0.9918 +vn -0.1256 -0.0250 -0.9918 +vn -0.1274 -0.0125 -0.9918 +vn -0.1281 -0.0000 -0.9918 +vn -0.1274 0.0125 -0.9918 +vn -0.1256 0.0250 -0.9918 +vn -0.1225 0.0372 -0.9918 +vn -0.1183 0.0490 -0.9918 +vn -0.1129 0.0604 -0.9918 +vn -0.1065 0.0711 -0.9918 +vn -0.0990 0.0812 -0.9918 +vn -0.0905 0.0905 -0.9918 +vn -0.0812 0.0990 -0.9918 +vn -0.0711 0.1065 -0.9918 +vn -0.0604 0.1129 -0.9918 +vn -0.0490 0.1183 -0.9918 +vn -0.0372 0.1225 -0.9918 +vn 0.0755 -0.7667 0.6376 +vn 0.1503 -0.7556 0.6376 +vn 0.0964 -0.9784 0.1826 +vn 0.1918 -0.9643 0.1827 +vn 0.0000 -0.9832 0.1826 +vn 0.0000 -0.7704 0.6376 +vn 0.2236 -0.7372 0.6376 +vn 0.2948 -0.7117 0.6376 +vn 0.2854 -0.9409 0.1826 +vn 0.3762 -0.9083 0.1827 +vn 0.3632 -0.6794 0.6376 +vn 0.4280 -0.6405 0.6376 +vn 0.4635 -0.8671 0.1826 +vn 0.5462 -0.8175 0.1827 +vn 0.4887 -0.5955 0.6376 +vn 0.5447 -0.5447 0.6376 +vn 0.6237 -0.7600 0.1826 +vn 0.6952 -0.6952 0.1827 +vn 0.5955 -0.4887 0.6376 +vn 0.6405 -0.4280 0.6376 +vn 0.7600 -0.6237 0.1826 +vn 0.8175 -0.5462 0.1827 +vn 0.6794 -0.3631 0.6376 +vn 0.7117 -0.2948 0.6376 +vn 0.8671 -0.4635 0.1826 +vn 0.9084 -0.3762 0.1826 +vn 0.7372 -0.2236 0.6376 +vn 0.7556 -0.1503 0.6376 +vn 0.9408 -0.2854 0.1826 +vn 0.9643 -0.1918 0.1827 +vn 0.7667 -0.0755 0.6376 +vn 0.7704 -0.0000 0.6376 +vn 0.9784 -0.0964 0.1826 +vn 0.9832 0.0000 0.1827 +vn 0.7667 0.0755 0.6376 +vn 0.7556 0.1503 0.6376 +vn 0.9784 0.0964 0.1826 +vn 0.9643 0.1918 0.1827 +vn 0.7372 0.2236 0.6376 +vn 0.7117 0.2948 0.6376 +vn 0.9409 0.2854 0.1826 +vn 0.9084 0.3762 0.1826 +vn 0.6794 0.3632 0.6376 +vn 0.6405 0.4280 0.6376 +vn 0.8671 0.4635 0.1826 +vn 0.8175 0.5462 0.1827 +vn 0.5955 0.4887 0.6376 +vn 0.5447 0.5447 0.6376 +vn 0.7600 0.6237 0.1826 +vn 0.6952 0.6952 0.1827 +vn 0.4887 0.5955 0.6376 +vn 0.4280 0.6405 0.6376 +vn 0.6237 0.7600 0.1826 +vn 0.5462 0.8175 0.1827 +vn 0.3632 0.6794 0.6376 +vn 0.2948 0.7117 0.6376 +vn 0.4635 0.8671 0.1826 +vn 0.3762 0.9084 0.1826 +vn 0.2236 0.7372 0.6376 +vn 0.1503 0.7556 0.6376 +vn 0.2854 0.9408 0.1826 +vn 0.1918 0.9643 0.1826 +vn 0.0755 0.7667 0.6376 +vn 0.0000 0.7704 0.6376 +vn 0.0964 0.9784 0.1826 +vn -0.0000 0.9832 0.1827 +vn -0.0755 0.7667 0.6376 +vn -0.1503 0.7556 0.6376 +vn -0.0964 0.9785 0.1826 +vn -0.1918 0.9643 0.1827 +vn -0.2236 0.7372 0.6376 +vn -0.2948 0.7117 0.6376 +vn -0.2854 0.9408 0.1826 +vn -0.3762 0.9084 0.1826 +vn -0.3632 0.6794 0.6376 +vn -0.4280 0.6405 0.6376 +vn -0.4635 0.8671 0.1826 +vn -0.5462 0.8175 0.1827 +vn -0.4887 0.5955 0.6376 +vn -0.5447 0.5447 0.6376 +vn -0.6237 0.7600 0.1826 +vn -0.6952 0.6952 0.1827 +vn -0.5955 0.4887 0.6376 +vn -0.6405 0.4280 0.6376 +vn -0.7600 0.6237 0.1826 +vn -0.8175 0.5462 0.1826 +vn -0.6794 0.3632 0.6376 +vn -0.7117 0.2948 0.6376 +vn -0.8671 0.4635 0.1826 +vn -0.9083 0.3762 0.1827 +vn -0.7372 0.2236 0.6376 +vn -0.7556 0.1503 0.6376 +vn -0.9409 0.2854 0.1826 +vn -0.9643 0.1918 0.1827 +vn -0.7667 0.0755 0.6376 +vn -0.7704 0.0000 0.6376 +vn -0.9784 0.0964 0.1826 +vn -0.9832 0.0000 0.1827 +vn -0.7667 -0.0755 0.6376 +vn -0.7556 -0.1503 0.6376 +vn -0.9784 -0.0964 0.1826 +vn -0.9643 -0.1918 0.1827 +vn -0.7372 -0.2236 0.6376 +vn -0.7117 -0.2948 0.6376 +vn -0.9408 -0.2854 0.1826 +vn -0.9084 -0.3762 0.1826 +vn -0.6794 -0.3632 0.6376 +vn -0.6405 -0.4280 0.6376 +vn -0.8671 -0.4635 0.1826 +vn -0.8175 -0.5462 0.1827 +vn -0.5956 -0.4887 0.6376 +vn -0.5447 -0.5447 0.6376 +vn -0.7600 -0.6237 0.1826 +vn -0.6952 -0.6952 0.1827 +vn -0.4887 -0.5955 0.6376 +vn -0.4280 -0.6405 0.6376 +vn -0.6237 -0.7600 0.1826 +vn -0.5462 -0.8175 0.1827 +vn -0.3632 -0.6794 0.6376 +vn -0.2948 -0.7117 0.6376 +vn -0.4635 -0.8671 0.1826 +vn -0.3762 -0.9083 0.1827 +vn -0.2236 -0.7372 0.6376 +vn -0.1503 -0.7556 0.6376 +vn -0.2854 -0.9408 0.1826 +vn -0.1918 -0.9643 0.1827 +vn -0.0755 -0.7667 0.6376 +vn -0.0964 -0.9784 0.1826 +vn 0.0757 -0.7682 -0.6358 +vn 0.1506 -0.7570 -0.6358 +vn 0.0440 -0.4470 -0.8934 +vn 0.0876 -0.4405 -0.8935 +vn -0.0000 -0.4492 -0.8934 +vn -0.0000 -0.7718 -0.6358 +vn 0.2241 -0.7386 -0.6358 +vn 0.2954 -0.7131 -0.6358 +vn 0.1304 -0.4298 -0.8935 +vn 0.1719 -0.4150 -0.8934 +vn 0.3638 -0.6807 -0.6358 +vn 0.4288 -0.6418 -0.6358 +vn 0.2117 -0.3961 -0.8934 +vn 0.2495 -0.3735 -0.8934 +vn 0.4897 -0.5967 -0.6358 +vn 0.5458 -0.5458 -0.6358 +vn 0.2850 -0.3472 -0.8934 +vn 0.3176 -0.3176 -0.8934 +vn 0.5967 -0.4897 -0.6358 +vn 0.6418 -0.4288 -0.6358 +vn 0.3472 -0.2850 -0.8934 +vn 0.3735 -0.2495 -0.8934 +vn 0.6807 -0.3638 -0.6358 +vn 0.7131 -0.2954 -0.6358 +vn 0.3961 -0.2117 -0.8934 +vn 0.4150 -0.1719 -0.8934 +vn 0.7386 -0.2240 -0.6358 +vn 0.7570 -0.1506 -0.6358 +vn 0.4298 -0.1304 -0.8935 +vn 0.4405 -0.0876 -0.8935 +vn 0.7682 -0.0757 -0.6358 +vn 0.7718 0.0000 -0.6358 +vn 0.4470 -0.0440 -0.8934 +vn 0.4492 0.0000 -0.8934 +vn 0.7682 0.0757 -0.6358 +vn 0.7570 0.1506 -0.6358 +vn 0.4470 0.0440 -0.8934 +vn 0.4405 0.0876 -0.8935 +vn 0.7386 0.2241 -0.6358 +vn 0.7131 0.2954 -0.6358 +vn 0.4298 0.1304 -0.8935 +vn 0.4150 0.1719 -0.8934 +vn 0.6807 0.3638 -0.6358 +vn 0.6418 0.4288 -0.6358 +vn 0.3961 0.2117 -0.8934 +vn 0.3735 0.2495 -0.8934 +vn 0.5967 0.4897 -0.6358 +vn 0.5458 0.5458 -0.6358 +vn 0.3472 0.2850 -0.8934 +vn 0.3176 0.3176 -0.8934 +vn 0.4897 0.5967 -0.6358 +vn 0.4288 0.6418 -0.6358 +vn 0.2850 0.3472 -0.8934 +vn 0.2495 0.3735 -0.8934 +vn 0.3638 0.6807 -0.6358 +vn 0.2954 0.7131 -0.6358 +vn 0.2117 0.3961 -0.8934 +vn 0.1719 0.4150 -0.8934 +vn 0.2241 0.7386 -0.6358 +vn 0.1506 0.7570 -0.6358 +vn 0.1304 0.4298 -0.8934 +vn 0.0876 0.4405 -0.8935 +vn 0.0757 0.7681 -0.6358 +vn -0.0000 0.7718 -0.6358 +vn 0.0440 0.4470 -0.8934 +vn -0.0000 0.4492 -0.8934 +vn -0.0757 0.7681 -0.6358 +vn -0.1506 0.7570 -0.6358 +vn -0.0440 0.4470 -0.8934 +vn -0.0876 0.4405 -0.8935 +vn -0.2240 0.7386 -0.6358 +vn -0.2954 0.7131 -0.6358 +vn -0.1304 0.4298 -0.8935 +vn -0.1719 0.4150 -0.8934 +vn -0.3639 0.6807 -0.6358 +vn -0.4288 0.6418 -0.6358 +vn -0.2117 0.3961 -0.8935 +vn -0.2495 0.3735 -0.8934 +vn -0.4897 0.5967 -0.6358 +vn -0.5458 0.5458 -0.6358 +vn -0.2850 0.3472 -0.8934 +vn -0.3176 0.3176 -0.8934 +vn -0.5967 0.4897 -0.6358 +vn -0.6418 0.4288 -0.6358 +vn -0.3472 0.2850 -0.8934 +vn -0.3735 0.2495 -0.8934 +vn -0.6807 0.3639 -0.6358 +vn -0.7131 0.2954 -0.6358 +vn -0.3961 0.2117 -0.8935 +vn -0.4150 0.1719 -0.8934 +vn -0.7386 0.2240 -0.6358 +vn -0.7570 0.1506 -0.6358 +vn -0.4298 0.1304 -0.8935 +vn -0.4405 0.0876 -0.8934 +vn -0.7681 0.0757 -0.6358 +vn -0.7718 -0.0000 -0.6358 +vn -0.4470 0.0440 -0.8934 +vn -0.4492 0.0000 -0.8934 +vn -0.7681 -0.0757 -0.6358 +vn -0.7570 -0.1506 -0.6358 +vn -0.4470 -0.0440 -0.8934 +vn -0.4405 -0.0876 -0.8935 +vn -0.7386 -0.2241 -0.6358 +vn -0.7131 -0.2954 -0.6358 +vn -0.4298 -0.1304 -0.8934 +vn -0.4150 -0.1719 -0.8934 +vn -0.6807 -0.3638 -0.6358 +vn -0.6418 -0.4288 -0.6358 +vn -0.3961 -0.2117 -0.8935 +vn -0.3735 -0.2496 -0.8934 +vn -0.5966 -0.4897 -0.6358 +vn -0.5458 -0.5458 -0.6358 +vn -0.3472 -0.2850 -0.8934 +vn -0.3176 -0.3176 -0.8934 +vn -0.4897 -0.5967 -0.6358 +vn -0.4288 -0.6418 -0.6358 +vn -0.2850 -0.3472 -0.8934 +vn -0.2495 -0.3735 -0.8934 +vn -0.3638 -0.6807 -0.6358 +vn -0.2954 -0.7131 -0.6358 +vn -0.2117 -0.3961 -0.8935 +vn -0.1719 -0.4150 -0.8934 +vn -0.2241 -0.7386 -0.6358 +vn -0.1506 -0.7570 -0.6358 +vn -0.1304 -0.4298 -0.8934 +vn -0.0876 -0.4405 -0.8935 +vn -0.0757 -0.7682 -0.6357 +vn -0.0440 -0.4470 -0.8934 +vn -0.0001 0.0013 1.0000 +vn 0.0000 0.0013 1.0000 +vn -0.0002 0.0009 1.0000 +vn -0.0024 0.0119 0.9999 +vn -0.0012 0.0120 0.9999 +vn 0.0000 0.0121 0.9999 +vn -0.0004 0.0012 1.0000 +vn -0.0005 0.0012 1.0000 +vn -0.0046 0.0112 0.9999 +vn -0.0035 0.0115 0.9999 +vn -0.0004 0.0008 1.0000 +vn -0.0005 0.0008 1.0000 +vn -0.0067 0.0101 0.9999 +vn -0.0057 0.0107 0.9999 +vn -0.0008 0.0010 1.0000 +vn -0.0007 0.0007 1.0000 +vn -0.0086 0.0086 0.9999 +vn -0.0077 0.0094 0.9999 +vn -0.0010 0.0008 1.0000 +vn -0.0008 0.0005 1.0000 +vn -0.0101 0.0067 0.9999 +vn -0.0094 0.0077 0.9999 +vn -0.0008 0.0004 1.0000 +vn -0.0009 0.0004 1.0000 +vn -0.0112 0.0046 0.9999 +vn -0.0107 0.0057 0.9999 +vn -0.0009 0.0003 1.0000 +vn -0.0009 0.0002 1.0000 +vn -0.0119 0.0024 0.9999 +vn -0.0116 0.0035 0.9999 +vn -0.0013 0.0001 1.0000 +vn -0.0013 0.0000 1.0000 +vn -0.0121 0.0000 0.9999 +vn -0.0120 0.0012 0.9999 +vn -0.0013 -0.0001 1.0000 +vn -0.0009 -0.0002 1.0000 +vn -0.0119 -0.0024 0.9999 +vn -0.0120 -0.0012 0.9999 +vn -0.0012 -0.0004 1.0000 +vn -0.0009 -0.0004 1.0000 +vn -0.0112 -0.0046 0.9999 +vn -0.0116 -0.0035 0.9999 +vn -0.0012 -0.0007 1.0000 +vn -0.0008 -0.0005 1.0000 +vn -0.0100 -0.0067 0.9999 +vn -0.0107 -0.0057 0.9999 +vn -0.0010 -0.0008 1.0000 +vn -0.0007 -0.0007 1.0000 +vn -0.0086 -0.0086 0.9999 +vn -0.0094 -0.0077 0.9999 +vn -0.0008 -0.0010 1.0000 +vn -0.0005 -0.0008 1.0000 +vn -0.0067 -0.0100 0.9999 +vn -0.0077 -0.0094 0.9999 +vn -0.0004 -0.0008 1.0000 +vn -0.0005 -0.0012 1.0000 +vn -0.0046 -0.0112 0.9999 +vn -0.0057 -0.0107 0.9999 +vn -0.0004 -0.0012 1.0000 +vn -0.0002 -0.0009 1.0000 +vn -0.0024 -0.0119 0.9999 +vn -0.0035 -0.0116 0.9999 +vn -0.0001 -0.0013 1.0000 +vn 0.0000 -0.0013 1.0000 +vn -0.0000 -0.0121 0.9999 +vn -0.0012 -0.0120 0.9999 +vn 0.0001 -0.0013 1.0000 +vn 0.0002 -0.0009 1.0000 +vn 0.0024 -0.0119 0.9999 +vn 0.0012 -0.0120 0.9999 +vn 0.0004 -0.0012 1.0000 +vn 0.0005 -0.0012 1.0000 +vn 0.0046 -0.0112 0.9999 +vn 0.0035 -0.0116 0.9999 +vn 0.0007 -0.0012 1.0000 +vn 0.0005 -0.0008 1.0000 +vn 0.0067 -0.0101 0.9999 +vn 0.0057 -0.0107 0.9999 +vn 0.0008 -0.0010 1.0000 +vn 0.0007 -0.0007 1.0000 +vn 0.0086 -0.0086 0.9999 +vn 0.0077 -0.0094 0.9999 +vn 0.0010 -0.0008 1.0000 +vn 0.0008 -0.0005 1.0000 +vn 0.0100 -0.0067 0.9999 +vn 0.0094 -0.0077 0.9999 +vn 0.0012 -0.0007 1.0000 +vn 0.0012 -0.0005 1.0000 +vn 0.0112 -0.0046 0.9999 +vn 0.0107 -0.0057 0.9999 +vn 0.0012 -0.0004 1.0000 +vn 0.0009 -0.0002 1.0000 +vn 0.0119 -0.0024 0.9999 +vn 0.0115 -0.0035 0.9999 +vn 0.0013 -0.0001 1.0000 +vn 0.0013 -0.0000 1.0000 +vn 0.0121 -0.0000 0.9999 +vn 0.0120 -0.0012 0.9999 +vn 0.0013 0.0001 1.0000 +vn 0.0009 0.0002 1.0000 +vn 0.0119 0.0024 0.9999 +vn 0.0120 0.0012 0.9999 +vn 0.0012 0.0004 1.0000 +vn 0.0009 0.0004 1.0000 +vn 0.0112 0.0046 0.9999 +vn 0.0115 0.0035 0.9999 +vn 0.0012 0.0007 1.0000 +vn 0.0008 0.0005 1.0000 +vn 0.0100 0.0067 0.9999 +vn 0.0107 0.0057 0.9999 +vn 0.0010 0.0008 1.0000 +vn 0.0007 0.0007 1.0000 +vn 0.0086 0.0086 0.9999 +vn 0.0094 0.0077 0.9999 +vn 0.0008 0.0010 1.0000 +vn 0.0005 0.0008 1.0000 +vn 0.0067 0.0101 0.9999 +vn 0.0077 0.0094 0.9999 +vn 0.0007 0.0012 1.0000 +vn 0.0005 0.0012 1.0000 +vn 0.0046 0.0112 0.9999 +vn 0.0057 0.0107 0.9999 +vn 0.0004 0.0012 1.0000 +vn 0.0002 0.0009 1.0000 +vn 0.0024 0.0119 0.9999 +vn 0.0035 0.0115 0.9999 +vn 0.0001 0.0013 1.0000 +vn 0.0012 0.0120 0.9999 +vn -0.0513 0.5211 0.8520 +vn 0.0000 0.5235 0.8520 +vn -0.1021 0.5134 0.8520 +vn -0.1882 0.9462 0.2634 +vn -0.0945 0.9600 0.2634 +vn 0.0000 0.9647 0.2634 +vn -0.1520 0.5010 0.8520 +vn -0.2003 0.4837 0.8520 +vn -0.3692 0.8913 0.2634 +vn -0.2800 0.9232 0.2634 +vn -0.2468 0.4617 0.8520 +vn -0.2908 0.4353 0.8520 +vn -0.5360 0.8021 0.2634 +vn -0.4548 0.8508 0.2634 +vn -0.3321 0.4047 0.8520 +vn -0.3702 0.3702 0.8520 +vn -0.6821 0.6821 0.2634 +vn -0.6120 0.7457 0.2634 +vn -0.4047 0.3321 0.8520 +vn -0.4353 0.2908 0.8520 +vn -0.8021 0.5360 0.2634 +vn -0.7457 0.6120 0.2634 +vn -0.4617 0.2468 0.8520 +vn -0.4837 0.2003 0.8520 +vn -0.8912 0.3692 0.2634 +vn -0.8508 0.4548 0.2634 +vn -0.5010 0.1520 0.8520 +vn -0.5135 0.1021 0.8520 +vn -0.9462 0.1882 0.2634 +vn -0.9231 0.2800 0.2634 +vn -0.5211 0.0513 0.8520 +vn -0.5235 0.0000 0.8520 +vn -0.9647 0.0000 0.2634 +vn -0.9600 0.0945 0.2634 +vn -0.5211 -0.0513 0.8520 +vn -0.5135 -0.1021 0.8520 +vn -0.9462 -0.1882 0.2634 +vn -0.9600 -0.0945 0.2634 +vn -0.5010 -0.1520 0.8520 +vn -0.4837 -0.2003 0.8520 +vn -0.8912 -0.3692 0.2634 +vn -0.9232 -0.2800 0.2634 +vn -0.4617 -0.2468 0.8520 +vn -0.4353 -0.2908 0.8520 +vn -0.8021 -0.5360 0.2634 +vn -0.8508 -0.4548 0.2634 +vn -0.4047 -0.3322 0.8520 +vn -0.3702 -0.3702 0.8520 +vn -0.6821 -0.6821 0.2634 +vn -0.7457 -0.6120 0.2634 +vn -0.3322 -0.4047 0.8520 +vn -0.2908 -0.4353 0.8520 +vn -0.5360 -0.8021 0.2634 +vn -0.6120 -0.7457 0.2634 +vn -0.2468 -0.4617 0.8520 +vn -0.2003 -0.4837 0.8520 +vn -0.3692 -0.8913 0.2634 +vn -0.4547 -0.8508 0.2634 +vn -0.1520 -0.5010 0.8520 +vn -0.1021 -0.5135 0.8520 +vn -0.1882 -0.9462 0.2634 +vn -0.2800 -0.9232 0.2634 +vn -0.0513 -0.5211 0.8520 +vn -0.0000 -0.5235 0.8520 +vn -0.0000 -0.9647 0.2634 +vn -0.0945 -0.9600 0.2634 +vn 0.0513 -0.5211 0.8520 +vn 0.1021 -0.5135 0.8520 +vn 0.1882 -0.9462 0.2634 +vn 0.0945 -0.9600 0.2634 +vn 0.1520 -0.5010 0.8520 +vn 0.2003 -0.4837 0.8520 +vn 0.3692 -0.8913 0.2634 +vn 0.2800 -0.9232 0.2634 +vn 0.2468 -0.4617 0.8520 +vn 0.2908 -0.4353 0.8520 +vn 0.5360 -0.8021 0.2634 +vn 0.4547 -0.8508 0.2634 +vn 0.3321 -0.4047 0.8520 +vn 0.3702 -0.3702 0.8520 +vn 0.6821 -0.6821 0.2634 +vn 0.6120 -0.7457 0.2634 +vn 0.4047 -0.3321 0.8520 +vn 0.4353 -0.2908 0.8520 +vn 0.8021 -0.5360 0.2634 +vn 0.7457 -0.6120 0.2634 +vn 0.4617 -0.2468 0.8520 +vn 0.4837 -0.2003 0.8520 +vn 0.8913 -0.3692 0.2634 +vn 0.8508 -0.4547 0.2634 +vn 0.5010 -0.1520 0.8520 +vn 0.5135 -0.1021 0.8520 +vn 0.9462 -0.1882 0.2634 +vn 0.9232 -0.2800 0.2634 +vn 0.5211 -0.0513 0.8520 +vn 0.5235 -0.0000 0.8520 +vn 0.9647 -0.0000 0.2634 +vn 0.9600 -0.0946 0.2634 +vn 0.5210 0.0513 0.8520 +vn 0.5135 0.1021 0.8520 +vn 0.9462 0.1882 0.2634 +vn 0.9600 0.0946 0.2634 +vn 0.5010 0.1520 0.8520 +vn 0.4837 0.2003 0.8520 +vn 0.8912 0.3692 0.2634 +vn 0.9231 0.2800 0.2634 +vn 0.4617 0.2468 0.8520 +vn 0.4353 0.2908 0.8520 +vn 0.8021 0.5360 0.2634 +vn 0.8508 0.4548 0.2634 +vn 0.4047 0.3322 0.8520 +vn 0.3702 0.3702 0.8520 +vn 0.6821 0.6821 0.2634 +vn 0.7457 0.6120 0.2634 +vn 0.3321 0.4047 0.8520 +vn 0.2908 0.4353 0.8520 +vn 0.5360 0.8021 0.2634 +vn 0.6120 0.7457 0.2634 +vn 0.2468 0.4618 0.8520 +vn 0.2003 0.4837 0.8520 +vn 0.3692 0.8913 0.2634 +vn 0.4547 0.8508 0.2634 +vn 0.1520 0.5010 0.8520 +vn 0.1021 0.5135 0.8520 +vn 0.1882 0.9462 0.2634 +vn 0.2800 0.9231 0.2634 +vn 0.0513 0.5211 0.8520 +vn 0.0946 0.9600 0.2634 +vn -0.0980 0.9946 0.0332 +vn 0.0000 0.9994 0.0332 +vn -0.1950 0.9802 0.0332 +vn -0.2901 0.9564 0.0332 +vn -0.3825 0.9234 0.0332 +vn -0.4711 0.8814 0.0332 +vn -0.5553 0.8310 0.0332 +vn -0.6340 0.7726 0.0332 +vn -0.7067 0.7067 0.0332 +vn -0.7726 0.6340 0.0332 +vn -0.8310 0.5553 0.0332 +vn -0.8814 0.4711 0.0332 +vn -0.9234 0.3825 0.0332 +vn -0.9564 0.2901 0.0332 +vn -0.9802 0.1950 0.0332 +vn -0.9946 0.0980 0.0332 +vn -0.9994 0.0000 0.0332 +vn -0.9946 -0.0980 0.0332 +vn -0.9802 -0.1950 0.0332 +vn -0.9564 -0.2901 0.0332 +vn -0.9234 -0.3825 0.0332 +vn -0.8814 -0.4711 0.0332 +vn -0.8310 -0.5553 0.0332 +vn -0.7726 -0.6340 0.0332 +vn -0.7067 -0.7067 0.0332 +vn -0.6340 -0.7726 0.0332 +vn -0.5553 -0.8310 0.0332 +vn -0.4711 -0.8814 0.0332 +vn -0.3825 -0.9234 0.0332 +vn -0.2901 -0.9564 0.0332 +vn -0.1950 -0.9802 0.0332 +vn -0.0980 -0.9946 0.0332 +vn -0.0000 -0.9994 0.0332 +vn 0.0980 -0.9946 0.0332 +vn 0.1950 -0.9802 0.0332 +vn 0.2901 -0.9564 0.0332 +vn 0.3825 -0.9234 0.0332 +vn 0.4711 -0.8814 0.0332 +vn 0.5553 -0.8310 0.0332 +vn 0.6340 -0.7726 0.0332 +vn 0.7067 -0.7067 0.0332 +vn 0.7726 -0.6340 0.0332 +vn 0.8310 -0.5553 0.0332 +vn 0.8814 -0.4711 0.0332 +vn 0.9234 -0.3825 0.0332 +vn 0.9564 -0.2901 0.0332 +vn 0.9802 -0.1950 0.0332 +vn 0.9946 -0.0980 0.0332 +vn 0.9994 0.0000 0.0332 +vn 0.9946 0.0980 0.0332 +vn 0.9802 0.1950 0.0332 +vn 0.9564 0.2901 0.0332 +vn 0.9234 0.3825 0.0332 +vn 0.8814 0.4711 0.0332 +vn 0.8310 0.5553 0.0332 +vn 0.7726 0.6340 0.0332 +vn 0.7067 0.7067 0.0332 +vn 0.6340 0.7726 0.0332 +vn 0.5553 0.8310 0.0332 +vn 0.4711 0.8814 0.0332 +vn 0.3825 0.9234 0.0332 +vn 0.2901 0.9564 0.0332 +vn 0.1950 0.9802 0.0332 +vn 0.0980 0.9946 0.0332 +vn -0.0948 0.9628 -0.2531 +vn 0.0000 0.9674 -0.2531 +vn -0.0000 0.9966 -0.0818 +vn -0.0977 0.9919 -0.0818 +vn -0.1887 0.9489 -0.2531 +vn -0.1944 0.9775 -0.0818 +vn -0.1709 0.8589 -0.4827 +vn -0.0858 0.8716 -0.4827 +vn 0.0000 0.8758 -0.4827 +vn -0.2808 0.9258 -0.2531 +vn -0.2893 0.9537 -0.0818 +vn -0.3702 0.8938 -0.2531 +vn -0.3814 0.9208 -0.0818 +vn -0.3351 0.8091 -0.4827 +vn -0.2542 0.8381 -0.4827 +vn -0.4561 0.8532 -0.2531 +vn -0.4698 0.8790 -0.0818 +vn -0.5375 0.8044 -0.2531 +vn -0.5537 0.8287 -0.0818 +vn -0.4866 0.7282 -0.4827 +vn -0.4128 0.7724 -0.4827 +vn -0.6137 0.7478 -0.2531 +vn -0.6323 0.7704 -0.0818 +vn -0.6841 0.6841 -0.2531 +vn -0.7047 0.7047 -0.0818 +vn -0.6193 0.6193 -0.4827 +vn -0.5556 0.6770 -0.4827 +vn -0.7478 0.6137 -0.2531 +vn -0.7704 0.6323 -0.0818 +vn -0.8044 0.5375 -0.2531 +vn -0.8287 0.5537 -0.0818 +vn -0.7282 0.4866 -0.4827 +vn -0.6770 0.5556 -0.4827 +vn -0.8532 0.4561 -0.2531 +vn -0.8790 0.4698 -0.0818 +vn -0.8938 0.3702 -0.2531 +vn -0.9208 0.3814 -0.0818 +vn -0.8091 0.3351 -0.4827 +vn -0.7724 0.4128 -0.4827 +vn -0.9258 0.2808 -0.2531 +vn -0.9537 0.2893 -0.0818 +vn -0.9489 0.1887 -0.2531 +vn -0.9775 0.1944 -0.0818 +vn -0.8589 0.1709 -0.4827 +vn -0.8381 0.2542 -0.4827 +vn -0.9628 0.0948 -0.2531 +vn -0.9919 0.0977 -0.0818 +vn -0.9674 0.0000 -0.2531 +vn -0.9966 -0.0000 -0.0818 +vn -0.8758 0.0000 -0.4827 +vn -0.8716 0.0858 -0.4827 +vn -0.9628 -0.0948 -0.2531 +vn -0.9919 -0.0977 -0.0818 +vn -0.9489 -0.1887 -0.2531 +vn -0.9775 -0.1944 -0.0818 +vn -0.8589 -0.1709 -0.4827 +vn -0.8716 -0.0858 -0.4827 +vn -0.9258 -0.2808 -0.2531 +vn -0.9537 -0.2893 -0.0818 +vn -0.8938 -0.3702 -0.2531 +vn -0.9208 -0.3814 -0.0818 +vn -0.8091 -0.3351 -0.4827 +vn -0.8381 -0.2542 -0.4827 +vn -0.8532 -0.4561 -0.2531 +vn -0.8790 -0.4698 -0.0818 +vn -0.8044 -0.5375 -0.2531 +vn -0.8287 -0.5537 -0.0818 +vn -0.7282 -0.4866 -0.4827 +vn -0.7724 -0.4128 -0.4827 +vn -0.7478 -0.6137 -0.2531 +vn -0.7704 -0.6323 -0.0818 +vn -0.6841 -0.6841 -0.2531 +vn -0.7047 -0.7047 -0.0818 +vn -0.6193 -0.6193 -0.4827 +vn -0.6770 -0.5556 -0.4827 +vn -0.6137 -0.7478 -0.2531 +vn -0.6323 -0.7704 -0.0818 +vn -0.5375 -0.8044 -0.2531 +vn -0.5537 -0.8287 -0.0818 +vn -0.4866 -0.7282 -0.4827 +vn -0.5556 -0.6770 -0.4827 +vn -0.4561 -0.8532 -0.2531 +vn -0.4698 -0.8790 -0.0818 +vn -0.3702 -0.8938 -0.2531 +vn -0.3814 -0.9208 -0.0818 +vn -0.3351 -0.8091 -0.4827 +vn -0.4128 -0.7724 -0.4827 +vn -0.2808 -0.9258 -0.2531 +vn -0.2893 -0.9537 -0.0818 +vn -0.1887 -0.9489 -0.2531 +vn -0.1944 -0.9775 -0.0818 +vn -0.1709 -0.8589 -0.4827 +vn -0.2542 -0.8381 -0.4827 +vn -0.0948 -0.9628 -0.2531 +vn -0.0977 -0.9919 -0.0818 +vn 0.0000 -0.9674 -0.2531 +vn -0.0000 -0.9967 -0.0818 +vn -0.0000 -0.8758 -0.4827 +vn -0.0859 -0.8716 -0.4827 +vn 0.0948 -0.9628 -0.2531 +vn 0.0977 -0.9919 -0.0818 +vn 0.1887 -0.9489 -0.2531 +vn 0.1944 -0.9775 -0.0818 +vn 0.1709 -0.8589 -0.4827 +vn 0.0858 -0.8716 -0.4827 +vn 0.2808 -0.9258 -0.2531 +vn 0.2893 -0.9537 -0.0818 +vn 0.3702 -0.8938 -0.2531 +vn 0.3814 -0.9208 -0.0818 +vn 0.3351 -0.8091 -0.4827 +vn 0.2542 -0.8381 -0.4827 +vn 0.4561 -0.8532 -0.2531 +vn 0.4698 -0.8790 -0.0818 +vn 0.5375 -0.8044 -0.2531 +vn 0.5537 -0.8287 -0.0818 +vn 0.4866 -0.7282 -0.4827 +vn 0.4128 -0.7724 -0.4827 +vn 0.6137 -0.7478 -0.2531 +vn 0.6323 -0.7704 -0.0818 +vn 0.6841 -0.6841 -0.2531 +vn 0.7047 -0.7047 -0.0818 +vn 0.6193 -0.6193 -0.4827 +vn 0.5556 -0.6770 -0.4827 +vn 0.7479 -0.6137 -0.2531 +vn 0.7704 -0.6323 -0.0818 +vn 0.8044 -0.5375 -0.2531 +vn 0.8287 -0.5537 -0.0818 +vn 0.7282 -0.4866 -0.4827 +vn 0.6770 -0.5556 -0.4827 +vn 0.8532 -0.4561 -0.2531 +vn 0.8790 -0.4698 -0.0818 +vn 0.8938 -0.3702 -0.2531 +vn 0.9208 -0.3814 -0.0818 +vn 0.8091 -0.3351 -0.4827 +vn 0.7724 -0.4129 -0.4827 +vn 0.9258 -0.2808 -0.2531 +vn 0.9537 -0.2893 -0.0818 +vn 0.9489 -0.1887 -0.2531 +vn 0.9775 -0.1944 -0.0818 +vn 0.8589 -0.1709 -0.4827 +vn 0.8381 -0.2542 -0.4827 +vn 0.9628 -0.0948 -0.2531 +vn 0.9919 -0.0977 -0.0818 +vn 0.9674 0.0000 -0.2531 +vn 0.9967 0.0000 -0.0818 +vn 0.8758 -0.0000 -0.4827 +vn 0.8716 -0.0858 -0.4827 +vn 0.9628 0.0948 -0.2531 +vn 0.9919 0.0977 -0.0818 +vn 0.9489 0.1887 -0.2531 +vn 0.9775 0.1944 -0.0818 +vn 0.8589 0.1709 -0.4827 +vn 0.8716 0.0858 -0.4827 +vn 0.9258 0.2808 -0.2531 +vn 0.9537 0.2893 -0.0818 +vn 0.8938 0.3702 -0.2531 +vn 0.9208 0.3814 -0.0818 +vn 0.8091 0.3351 -0.4827 +vn 0.8381 0.2542 -0.4827 +vn 0.8532 0.4561 -0.2531 +vn 0.8790 0.4698 -0.0818 +vn 0.8044 0.5375 -0.2531 +vn 0.8287 0.5537 -0.0818 +vn 0.7282 0.4866 -0.4827 +vn 0.7724 0.4128 -0.4827 +vn 0.7478 0.6137 -0.2531 +vn 0.7704 0.6323 -0.0818 +vn 0.6841 0.6841 -0.2531 +vn 0.7047 0.7047 -0.0818 +vn 0.6193 0.6193 -0.4827 +vn 0.6770 0.5556 -0.4827 +vn 0.6137 0.7479 -0.2531 +vn 0.6323 0.7704 -0.0818 +vn 0.5375 0.8044 -0.2531 +vn 0.5537 0.8287 -0.0818 +vn 0.4866 0.7282 -0.4827 +vn 0.5556 0.6770 -0.4827 +vn 0.4561 0.8532 -0.2531 +vn 0.4698 0.8790 -0.0818 +vn 0.3702 0.8938 -0.2531 +vn 0.3814 0.9208 -0.0818 +vn 0.3351 0.8091 -0.4827 +vn 0.4129 0.7724 -0.4827 +vn 0.2808 0.9258 -0.2531 +vn 0.2893 0.9537 -0.0818 +vn 0.1887 0.9489 -0.2531 +vn 0.1944 0.9775 -0.0818 +vn 0.1709 0.8589 -0.4827 +vn 0.2542 0.8381 -0.4827 +vn 0.0948 0.9628 -0.2531 +vn 0.0977 0.9919 -0.0818 +vn 0.0858 0.8716 -0.4827 +vn -0.0582 0.5907 -0.8048 +vn 0.0000 0.5936 -0.8048 +vn 0.0000 0.5912 -0.8065 +vn -0.0580 0.5884 -0.8065 +vn -0.1158 0.5822 -0.8048 +vn -0.1153 0.5798 -0.8066 +vn -0.1271 0.6391 -0.7586 +vn -0.0639 0.6485 -0.7586 +vn -0.0001 0.6516 -0.7586 +vn -0.1723 0.5680 -0.8048 +vn -0.1716 0.5657 -0.8066 +vn -0.2271 0.5484 -0.8048 +vn -0.2262 0.5462 -0.8065 +vn -0.2494 0.6020 -0.7586 +vn -0.1891 0.6235 -0.7586 +vn -0.2798 0.5235 -0.8048 +vn -0.2787 0.5214 -0.8065 +vn -0.3298 0.4935 -0.8048 +vn -0.3285 0.4916 -0.8065 +vn -0.3620 0.5418 -0.7586 +vn -0.3071 0.5747 -0.7586 +vn -0.3766 0.4588 -0.8048 +vn -0.3751 0.4570 -0.8065 +vn -0.4197 0.4197 -0.8048 +vn -0.4180 0.4180 -0.8066 +vn -0.4608 0.4608 -0.7586 +vn -0.4134 0.5037 -0.7586 +vn -0.4588 0.3766 -0.8048 +vn -0.4570 0.3751 -0.8065 +vn -0.4935 0.3298 -0.8048 +vn -0.4916 0.3285 -0.8065 +vn -0.5418 0.3620 -0.7586 +vn -0.5037 0.4134 -0.7586 +vn -0.5235 0.2798 -0.8048 +vn -0.5214 0.2787 -0.8065 +vn -0.5484 0.2271 -0.8048 +vn -0.5462 0.2262 -0.8065 +vn -0.6020 0.2494 -0.7586 +vn -0.5747 0.3072 -0.7586 +vn -0.5680 0.1723 -0.8048 +vn -0.5657 0.1716 -0.8066 +vn -0.5822 0.1158 -0.8048 +vn -0.5798 0.1153 -0.8066 +vn -0.6391 0.1271 -0.7586 +vn -0.6235 0.1892 -0.7586 +vn -0.5907 0.0582 -0.8048 +vn -0.5884 0.0580 -0.8065 +vn -0.5936 -0.0000 -0.8048 +vn -0.5912 -0.0000 -0.8065 +vn -0.6516 -0.0000 -0.7586 +vn -0.6485 0.0639 -0.7586 +vn -0.5907 -0.0582 -0.8048 +vn -0.5884 -0.0580 -0.8065 +vn -0.5822 -0.1158 -0.8048 +vn -0.5798 -0.1153 -0.8066 +vn -0.6391 -0.1271 -0.7586 +vn -0.6485 -0.0639 -0.7586 +vn -0.5680 -0.1723 -0.8048 +vn -0.5657 -0.1716 -0.8066 +vn -0.5484 -0.2271 -0.8048 +vn -0.5462 -0.2262 -0.8065 +vn -0.6020 -0.2494 -0.7586 +vn -0.6235 -0.1892 -0.7586 +vn -0.5235 -0.2798 -0.8048 +vn -0.5214 -0.2787 -0.8065 +vn -0.4935 -0.3298 -0.8048 +vn -0.4916 -0.3285 -0.8065 +vn -0.5418 -0.3620 -0.7586 +vn -0.5746 -0.3072 -0.7586 +vn -0.4588 -0.3766 -0.8048 +vn -0.4570 -0.3751 -0.8065 +vn -0.4197 -0.4197 -0.8048 +vn -0.4180 -0.4180 -0.8066 +vn -0.4608 -0.4608 -0.7586 +vn -0.5037 -0.4134 -0.7586 +vn -0.3766 -0.4588 -0.8048 +vn -0.3751 -0.4570 -0.8065 +vn -0.3298 -0.4935 -0.8048 +vn -0.3285 -0.4916 -0.8065 +vn -0.3620 -0.5418 -0.7586 +vn -0.4134 -0.5037 -0.7586 +vn -0.2798 -0.5235 -0.8048 +vn -0.2787 -0.5214 -0.8065 +vn -0.2271 -0.5484 -0.8048 +vn -0.2262 -0.5462 -0.8065 +vn -0.2494 -0.6020 -0.7586 +vn -0.3072 -0.5746 -0.7586 +vn -0.1723 -0.5680 -0.8048 +vn -0.1716 -0.5657 -0.8066 +vn -0.1158 -0.5822 -0.8048 +vn -0.1153 -0.5798 -0.8066 +vn -0.1271 -0.6391 -0.7586 +vn -0.1891 -0.6235 -0.7586 +vn -0.0582 -0.5907 -0.8048 +vn -0.0580 -0.5884 -0.8065 +vn 0.0000 -0.5936 -0.8048 +vn 0.0000 -0.5912 -0.8065 +vn 0.0000 -0.6516 -0.7586 +vn -0.0639 -0.6485 -0.7586 +vn 0.0582 -0.5907 -0.8048 +vn 0.0580 -0.5884 -0.8065 +vn 0.1158 -0.5822 -0.8048 +vn 0.1153 -0.5798 -0.8066 +vn 0.1271 -0.6391 -0.7586 +vn 0.0640 -0.6485 -0.7586 +vn 0.1723 -0.5680 -0.8048 +vn 0.1716 -0.5657 -0.8066 +vn 0.2271 -0.5484 -0.8048 +vn 0.2262 -0.5462 -0.8065 +vn 0.2494 -0.6020 -0.7586 +vn 0.1891 -0.6235 -0.7586 +vn 0.2798 -0.5235 -0.8048 +vn 0.2787 -0.5214 -0.8065 +vn 0.3298 -0.4935 -0.8048 +vn 0.3285 -0.4916 -0.8065 +vn 0.3620 -0.5418 -0.7586 +vn 0.3073 -0.5746 -0.7586 +vn 0.3766 -0.4588 -0.8048 +vn 0.3751 -0.4570 -0.8065 +vn 0.4197 -0.4197 -0.8048 +vn 0.4180 -0.4180 -0.8066 +vn 0.4608 -0.4608 -0.7586 +vn 0.4134 -0.5037 -0.7586 +vn 0.4588 -0.3766 -0.8048 +vn 0.4570 -0.3751 -0.8065 +vn 0.4935 -0.3298 -0.8048 +vn 0.4916 -0.3285 -0.8065 +vn 0.5418 -0.3620 -0.7586 +vn 0.5036 -0.4134 -0.7586 +vn 0.5235 -0.2798 -0.8048 +vn 0.5214 -0.2787 -0.8065 +vn 0.5484 -0.2271 -0.8048 +vn 0.5462 -0.2262 -0.8065 +vn 0.6020 -0.2494 -0.7586 +vn 0.5747 -0.3072 -0.7586 +vn 0.5680 -0.1723 -0.8048 +vn 0.5657 -0.1716 -0.8066 +vn 0.5822 -0.1158 -0.8048 +vn 0.5798 -0.1153 -0.8066 +vn 0.6391 -0.1271 -0.7586 +vn 0.6235 -0.1891 -0.7586 +vn 0.5907 -0.0582 -0.8048 +vn 0.5884 -0.0580 -0.8065 +vn 0.5936 0.0000 -0.8048 +vn 0.5912 0.0000 -0.8065 +vn 0.6516 0.0000 -0.7586 +vn 0.6485 -0.0639 -0.7586 +vn 0.5907 0.0582 -0.8048 +vn 0.5884 0.0580 -0.8065 +vn 0.5822 0.1158 -0.8048 +vn 0.5798 0.1153 -0.8066 +vn 0.6391 0.1271 -0.7586 +vn 0.6485 0.0639 -0.7586 +vn 0.5680 0.1723 -0.8048 +vn 0.5657 0.1716 -0.8066 +vn 0.5484 0.2271 -0.8048 +vn 0.5462 0.2262 -0.8065 +vn 0.6020 0.2494 -0.7586 +vn 0.6235 0.1892 -0.7586 +vn 0.5235 0.2798 -0.8048 +vn 0.5214 0.2787 -0.8065 +vn 0.4935 0.3298 -0.8048 +vn 0.4916 0.3285 -0.8065 +vn 0.5418 0.3620 -0.7586 +vn 0.5747 0.3072 -0.7586 +vn 0.4588 0.3766 -0.8048 +vn 0.4570 0.3751 -0.8065 +vn 0.4197 0.4197 -0.8048 +vn 0.4180 0.4180 -0.8065 +vn 0.4608 0.4608 -0.7585 +vn 0.5037 0.4134 -0.7586 +vn 0.3766 0.4588 -0.8048 +vn 0.3751 0.4570 -0.8065 +vn 0.3298 0.4935 -0.8048 +vn 0.3285 0.4916 -0.8065 +vn 0.3620 0.5418 -0.7586 +vn 0.4134 0.5036 -0.7586 +vn 0.2798 0.5235 -0.8048 +vn 0.2787 0.5214 -0.8065 +vn 0.2271 0.5484 -0.8048 +vn 0.2262 0.5462 -0.8065 +vn 0.2494 0.6020 -0.7586 +vn 0.3072 0.5746 -0.7586 +vn 0.1723 0.5680 -0.8048 +vn 0.1716 0.5657 -0.8066 +vn 0.1158 0.5822 -0.8048 +vn 0.1153 0.5798 -0.8066 +vn 0.1271 0.6391 -0.7586 +vn 0.1891 0.6235 -0.7586 +vn 0.0582 0.5907 -0.8048 +vn 0.0579 0.5884 -0.8065 +vn 0.0639 0.6485 -0.7586 +vn -0.0786 0.7985 -0.5968 +vn 0.0000 0.8024 -0.5968 +vn -0.1565 0.7870 -0.5968 +vn -0.1793 0.9014 -0.3941 +vn -0.0901 0.9146 -0.3941 +vn -0.0001 0.9191 -0.3941 +vn -0.2329 0.7679 -0.5968 +vn -0.3071 0.7413 -0.5968 +vn -0.3517 0.8491 -0.3941 +vn -0.2668 0.8795 -0.3941 +vn -0.3783 0.7077 -0.5968 +vn -0.4458 0.6672 -0.5968 +vn -0.5106 0.7642 -0.3941 +vn -0.4332 0.8106 -0.3941 +vn -0.5090 0.6203 -0.5968 +vn -0.5674 0.5674 -0.5968 +vn -0.6499 0.6499 -0.3941 +vn -0.5830 0.7105 -0.3941 +vn -0.6203 0.5090 -0.5968 +vn -0.6672 0.4458 -0.5968 +vn -0.7642 0.5106 -0.3941 +vn -0.7105 0.5830 -0.3941 +vn -0.7077 0.3783 -0.5968 +vn -0.7413 0.3071 -0.5968 +vn -0.8491 0.3517 -0.3941 +vn -0.8105 0.4332 -0.3941 +vn -0.7679 0.2329 -0.5968 +vn -0.7870 0.1565 -0.5968 +vn -0.9014 0.1793 -0.3941 +vn -0.8795 0.2668 -0.3941 +vn -0.7985 0.0787 -0.5968 +vn -0.8024 0.0000 -0.5968 +vn -0.9191 0.0000 -0.3941 +vn -0.9146 0.0901 -0.3941 +vn -0.7985 -0.0787 -0.5968 +vn -0.7870 -0.1565 -0.5968 +vn -0.9014 -0.1793 -0.3941 +vn -0.9146 -0.0901 -0.3941 +vn -0.7679 -0.2329 -0.5968 +vn -0.7413 -0.3071 -0.5968 +vn -0.8491 -0.3517 -0.3941 +vn -0.8795 -0.2668 -0.3941 +vn -0.7077 -0.3783 -0.5968 +vn -0.6672 -0.4458 -0.5968 +vn -0.7642 -0.5106 -0.3941 +vn -0.8106 -0.4332 -0.3941 +vn -0.6203 -0.5090 -0.5968 +vn -0.5674 -0.5674 -0.5968 +vn -0.6499 -0.6499 -0.3941 +vn -0.7105 -0.5830 -0.3941 +vn -0.5090 -0.6203 -0.5968 +vn -0.4458 -0.6672 -0.5968 +vn -0.5106 -0.7642 -0.3941 +vn -0.5831 -0.7104 -0.3941 +vn -0.3783 -0.7076 -0.5968 +vn -0.3071 -0.7413 -0.5968 +vn -0.3517 -0.8491 -0.3941 +vn -0.4332 -0.8105 -0.3941 +vn -0.2329 -0.7679 -0.5968 +vn -0.1565 -0.7870 -0.5968 +vn -0.1793 -0.9014 -0.3941 +vn -0.2668 -0.8795 -0.3941 +vn -0.0786 -0.7985 -0.5968 +vn -0.0000 -0.8024 -0.5968 +vn -0.0000 -0.9191 -0.3941 +vn -0.0901 -0.9146 -0.3941 +vn 0.0787 -0.7985 -0.5968 +vn 0.1565 -0.7870 -0.5968 +vn 0.1793 -0.9014 -0.3941 +vn 0.0901 -0.9146 -0.3941 +vn 0.2329 -0.7679 -0.5968 +vn 0.3071 -0.7413 -0.5968 +vn 0.3517 -0.8491 -0.3941 +vn 0.2668 -0.8795 -0.3941 +vn 0.3783 -0.7077 -0.5968 +vn 0.4458 -0.6672 -0.5968 +vn 0.5106 -0.7642 -0.3941 +vn 0.4332 -0.8105 -0.3941 +vn 0.5090 -0.6203 -0.5968 +vn 0.5674 -0.5674 -0.5968 +vn 0.6499 -0.6499 -0.3941 +vn 0.5830 -0.7105 -0.3941 +vn 0.6203 -0.5090 -0.5968 +vn 0.6672 -0.4458 -0.5968 +vn 0.7642 -0.5106 -0.3941 +vn 0.7104 -0.5830 -0.3941 +vn 0.7077 -0.3783 -0.5968 +vn 0.7413 -0.3071 -0.5968 +vn 0.8491 -0.3517 -0.3941 +vn 0.8105 -0.4333 -0.3941 +vn 0.7679 -0.2329 -0.5968 +vn 0.7870 -0.1565 -0.5968 +vn 0.9014 -0.1793 -0.3941 +vn 0.8795 -0.2668 -0.3941 +vn 0.7985 -0.0786 -0.5968 +vn 0.8024 -0.0000 -0.5968 +vn 0.9191 -0.0000 -0.3941 +vn 0.9146 -0.0901 -0.3941 +vn 0.7985 0.0787 -0.5968 +vn 0.7870 0.1565 -0.5968 +vn 0.9014 0.1793 -0.3941 +vn 0.9146 0.0901 -0.3941 +vn 0.7679 0.2329 -0.5968 +vn 0.7413 0.3071 -0.5968 +vn 0.8491 0.3517 -0.3941 +vn 0.8795 0.2668 -0.3941 +vn 0.7077 0.3783 -0.5968 +vn 0.6672 0.4458 -0.5968 +vn 0.7642 0.5106 -0.3941 +vn 0.8106 0.4332 -0.3941 +vn 0.6203 0.5090 -0.5968 +vn 0.5674 0.5674 -0.5968 +vn 0.6499 0.6499 -0.3941 +vn 0.7105 0.5830 -0.3941 +vn 0.5090 0.6203 -0.5968 +vn 0.4458 0.6672 -0.5968 +vn 0.5106 0.7642 -0.3941 +vn 0.5830 0.7104 -0.3941 +vn 0.3783 0.7076 -0.5968 +vn 0.3071 0.7413 -0.5968 +vn 0.3517 0.8491 -0.3941 +vn 0.4333 0.8105 -0.3941 +vn 0.2329 0.7679 -0.5968 +vn 0.1565 0.7870 -0.5968 +vn 0.1793 0.9014 -0.3941 +vn 0.2668 0.8795 -0.3941 +vn 0.0786 0.7985 -0.5968 +vn 0.0901 0.9146 -0.3941 +vn -0.0919 0.9333 0.3472 +vn 0.0000 0.9378 0.3472 +vn 0.0000 0.9982 -0.0608 +vn -0.0978 0.9933 -0.0608 +vn -0.1830 0.9198 0.3472 +vn -0.1947 0.9790 -0.0608 +vn -0.2722 0.8974 0.3472 +vn -0.2897 0.9552 -0.0608 +vn -0.3589 0.8664 0.3472 +vn -0.3820 0.9222 -0.0608 +vn -0.4421 0.8270 0.3472 +vn -0.4705 0.8803 -0.0608 +vn -0.5210 0.7797 0.3472 +vn -0.5545 0.8299 -0.0608 +vn -0.5949 0.7249 0.3472 +vn -0.6332 0.7716 -0.0608 +vn -0.6631 0.6631 0.3472 +vn -0.7058 0.7058 -0.0608 +vn -0.7249 0.5949 0.3472 +vn -0.7716 0.6332 -0.0608 +vn -0.7797 0.5210 0.3472 +vn -0.8299 0.5545 -0.0608 +vn -0.8270 0.4421 0.3472 +vn -0.8803 0.4705 -0.0608 +vn -0.8664 0.3589 0.3472 +vn -0.9222 0.3820 -0.0608 +vn -0.8974 0.2722 0.3472 +vn -0.9552 0.2897 -0.0608 +vn -0.9198 0.1830 0.3472 +vn -0.9790 0.1947 -0.0608 +vn -0.9333 0.0919 0.3472 +vn -0.9933 0.0978 -0.0608 +vn -0.9378 -0.0000 0.3472 +vn -0.9982 -0.0000 -0.0608 +vn -0.9333 -0.0919 0.3472 +vn -0.9933 -0.0978 -0.0608 +vn -0.9198 -0.1830 0.3472 +vn -0.9790 -0.1947 -0.0608 +vn -0.8974 -0.2722 0.3472 +vn -0.9552 -0.2897 -0.0608 +vn -0.8664 -0.3589 0.3472 +vn -0.9222 -0.3820 -0.0608 +vn -0.8270 -0.4421 0.3472 +vn -0.8803 -0.4705 -0.0608 +vn -0.7797 -0.5210 0.3472 +vn -0.8299 -0.5545 -0.0608 +vn -0.7249 -0.5949 0.3472 +vn -0.7716 -0.6332 -0.0608 +vn -0.6631 -0.6631 0.3472 +vn -0.7058 -0.7058 -0.0608 +vn -0.5949 -0.7249 0.3472 +vn -0.6332 -0.7716 -0.0608 +vn -0.5210 -0.7797 0.3472 +vn -0.5545 -0.8299 -0.0608 +vn -0.4421 -0.8270 0.3472 +vn -0.4705 -0.8803 -0.0608 +vn -0.3589 -0.8664 0.3472 +vn -0.3820 -0.9222 -0.0608 +vn -0.2722 -0.8974 0.3472 +vn -0.2897 -0.9552 -0.0608 +vn -0.1830 -0.9198 0.3472 +vn -0.1947 -0.9790 -0.0608 +vn -0.0919 -0.9333 0.3472 +vn -0.0978 -0.9933 -0.0608 +vn 0.0000 -0.9378 0.3472 +vn -0.0000 -0.9981 -0.0608 +vn 0.0919 -0.9333 0.3472 +vn 0.0978 -0.9933 -0.0608 +vn 0.1830 -0.9198 0.3472 +vn 0.1947 -0.9790 -0.0608 +vn 0.2722 -0.8974 0.3472 +vn 0.2897 -0.9552 -0.0608 +vn 0.3589 -0.8664 0.3472 +vn 0.3820 -0.9222 -0.0608 +vn 0.4421 -0.8270 0.3472 +vn 0.4705 -0.8803 -0.0608 +vn 0.5210 -0.7797 0.3472 +vn 0.5545 -0.8299 -0.0608 +vn 0.5949 -0.7249 0.3472 +vn 0.6332 -0.7716 -0.0608 +vn 0.6631 -0.6631 0.3472 +vn 0.7058 -0.7058 -0.0608 +vn 0.7249 -0.5949 0.3472 +vn 0.7716 -0.6332 -0.0608 +vn 0.7797 -0.5210 0.3472 +vn 0.8299 -0.5545 -0.0608 +vn 0.8270 -0.4421 0.3472 +vn 0.8803 -0.4705 -0.0608 +vn 0.8664 -0.3589 0.3472 +vn 0.9222 -0.3820 -0.0608 +vn 0.8974 -0.2722 0.3472 +vn 0.9552 -0.2897 -0.0608 +vn 0.9198 -0.1830 0.3472 +vn 0.9790 -0.1947 -0.0608 +vn 0.9333 -0.0919 0.3472 +vn 0.9933 -0.0978 -0.0608 +vn 0.9378 0.0000 0.3472 +vn 0.9982 0.0000 -0.0608 +vn 0.9333 0.0919 0.3472 +vn 0.9933 0.0978 -0.0608 +vn 0.9198 0.1830 0.3472 +vn 0.9790 0.1947 -0.0608 +vn 0.8974 0.2722 0.3472 +vn 0.9552 0.2897 -0.0608 +vn 0.8664 0.3589 0.3472 +vn 0.9222 0.3820 -0.0608 +vn 0.8270 0.4421 0.3472 +vn 0.8803 0.4705 -0.0608 +vn 0.7797 0.5210 0.3472 +vn 0.8299 0.5545 -0.0608 +vn 0.7249 0.5949 0.3472 +vn 0.7716 0.6332 -0.0608 +vn 0.6631 0.6631 0.3472 +vn 0.7058 0.7058 -0.0608 +vn 0.5949 0.7249 0.3472 +vn 0.6332 0.7716 -0.0608 +vn 0.5210 0.7797 0.3472 +vn 0.5545 0.8299 -0.0608 +vn 0.4421 0.8270 0.3472 +vn 0.4705 0.8803 -0.0608 +vn 0.3589 0.8664 0.3472 +vn 0.3820 0.9222 -0.0608 +vn 0.2722 0.8974 0.3472 +vn 0.2897 0.9552 -0.0608 +vn 0.1830 0.9198 0.3472 +vn 0.1947 0.9790 -0.0608 +vn 0.0919 0.9333 0.3472 +vn 0.0978 0.9933 -0.0608 +vn -0.0739 0.7500 -0.6573 +vn -0.1470 0.7392 -0.6573 +vn -0.0648 0.6585 -0.7498 +vn -0.1291 0.6489 -0.7498 +vn 0.0000 0.6617 -0.7498 +vn -0.0000 0.7536 -0.6573 +vn -0.2187 0.7212 -0.6573 +vn -0.2884 0.6963 -0.6573 +vn -0.1921 0.6332 -0.7498 +vn -0.2532 0.6113 -0.7498 +vn -0.3553 0.6647 -0.6573 +vn -0.4187 0.6266 -0.6573 +vn -0.3120 0.5835 -0.7498 +vn -0.3676 0.5502 -0.7498 +vn -0.4781 0.5826 -0.6573 +vn -0.5329 0.5329 -0.6573 +vn -0.4198 0.5115 -0.7498 +vn -0.4679 0.4679 -0.7498 +vn -0.5826 0.4781 -0.6573 +vn -0.6266 0.4187 -0.6573 +vn -0.5115 0.4198 -0.7498 +vn -0.5501 0.3676 -0.7498 +vn -0.6646 0.3553 -0.6573 +vn -0.6963 0.2884 -0.6573 +vn -0.5835 0.3120 -0.7498 +vn -0.6113 0.2532 -0.7498 +vn -0.7212 0.2188 -0.6573 +vn -0.7392 0.1470 -0.6573 +vn -0.6332 0.1921 -0.7498 +vn -0.6489 0.1291 -0.7498 +vn -0.7500 0.0739 -0.6573 +vn -0.7536 0.0000 -0.6573 +vn -0.6585 0.0649 -0.7498 +vn -0.6617 0.0000 -0.7498 +vn -0.7500 -0.0739 -0.6573 +vn -0.7392 -0.1470 -0.6573 +vn -0.6585 -0.0650 -0.7498 +vn -0.6489 -0.1291 -0.7498 +vn -0.7212 -0.2188 -0.6573 +vn -0.6963 -0.2884 -0.6573 +vn -0.6332 -0.1921 -0.7498 +vn -0.6113 -0.2532 -0.7498 +vn -0.6647 -0.3553 -0.6573 +vn -0.6266 -0.4187 -0.6573 +vn -0.5835 -0.3119 -0.7498 +vn -0.5502 -0.3676 -0.7498 +vn -0.5826 -0.4781 -0.6573 +vn -0.5329 -0.5329 -0.6573 +vn -0.5115 -0.4198 -0.7498 +vn -0.4679 -0.4679 -0.7498 +vn -0.4781 -0.5826 -0.6573 +vn -0.4187 -0.6266 -0.6573 +vn -0.4198 -0.5115 -0.7498 +vn -0.3676 -0.5501 -0.7498 +vn -0.3553 -0.6647 -0.6573 +vn -0.2884 -0.6963 -0.6573 +vn -0.3119 -0.5835 -0.7498 +vn -0.2532 -0.6113 -0.7498 +vn -0.2188 -0.7212 -0.6573 +vn -0.1470 -0.7392 -0.6573 +vn -0.1922 -0.6332 -0.7498 +vn -0.1291 -0.6489 -0.7498 +vn -0.0739 -0.7500 -0.6573 +vn -0.0000 -0.7536 -0.6573 +vn -0.0649 -0.6585 -0.7498 +vn -0.0000 -0.6617 -0.7498 +vn 0.0738 -0.7500 -0.6573 +vn 0.1470 -0.7392 -0.6573 +vn 0.0649 -0.6585 -0.7498 +vn 0.1291 -0.6489 -0.7498 +vn 0.2188 -0.7212 -0.6573 +vn 0.2884 -0.6963 -0.6573 +vn 0.1921 -0.6332 -0.7498 +vn 0.2532 -0.6113 -0.7498 +vn 0.3553 -0.6646 -0.6573 +vn 0.4187 -0.6266 -0.6573 +vn 0.3119 -0.5835 -0.7498 +vn 0.3676 -0.5501 -0.7498 +vn 0.4781 -0.5826 -0.6573 +vn 0.5329 -0.5329 -0.6573 +vn 0.4198 -0.5115 -0.7498 +vn 0.4679 -0.4679 -0.7498 +vn 0.5826 -0.4781 -0.6573 +vn 0.6266 -0.4187 -0.6573 +vn 0.5115 -0.4198 -0.7498 +vn 0.5502 -0.3676 -0.7498 +vn 0.6647 -0.3553 -0.6573 +vn 0.6963 -0.2884 -0.6573 +vn 0.5835 -0.3119 -0.7498 +vn 0.6113 -0.2532 -0.7498 +vn 0.7212 -0.2188 -0.6573 +vn 0.7392 -0.1470 -0.6573 +vn 0.6332 -0.1921 -0.7498 +vn 0.6489 -0.1291 -0.7498 +vn 0.7500 -0.0739 -0.6573 +vn 0.7536 -0.0000 -0.6573 +vn 0.6585 -0.0649 -0.7498 +vn 0.6617 -0.0000 -0.7498 +vn 0.7500 0.0738 -0.6573 +vn 0.7392 0.1470 -0.6573 +vn 0.6585 0.0650 -0.7498 +vn 0.6489 0.1291 -0.7498 +vn 0.7212 0.2188 -0.6573 +vn 0.6963 0.2884 -0.6573 +vn 0.6332 0.1921 -0.7498 +vn 0.6113 0.2532 -0.7498 +vn 0.6647 0.3553 -0.6573 +vn 0.6266 0.4187 -0.6573 +vn 0.5835 0.3119 -0.7498 +vn 0.5501 0.3676 -0.7498 +vn 0.5826 0.4781 -0.6573 +vn 0.5329 0.5329 -0.6573 +vn 0.5115 0.4198 -0.7498 +vn 0.4679 0.4679 -0.7498 +vn 0.4781 0.5826 -0.6573 +vn 0.4187 0.6266 -0.6573 +vn 0.4198 0.5115 -0.7498 +vn 0.3676 0.5502 -0.7498 +vn 0.3553 0.6647 -0.6573 +vn 0.2884 0.6963 -0.6573 +vn 0.3119 0.5835 -0.7498 +vn 0.2532 0.6113 -0.7498 +vn 0.2188 0.7212 -0.6573 +vn 0.1470 0.7392 -0.6573 +vn 0.1921 0.6332 -0.7498 +vn 0.1291 0.6489 -0.7498 +vn 0.0739 0.7500 -0.6573 +vn 0.0650 0.6585 -0.7498 +vn -0.0600 0.6094 -0.7906 +vn -0.1195 0.6006 -0.7906 +vn -0.0000 0.6124 -0.7906 +vn -0.1778 0.5860 -0.7906 +vn -0.2343 0.5658 -0.7906 +vn -0.2887 0.5401 -0.7906 +vn -0.3402 0.5092 -0.7906 +vn -0.3885 0.4734 -0.7906 +vn -0.4330 0.4330 -0.7906 +vn -0.4734 0.3885 -0.7906 +vn -0.5092 0.3402 -0.7906 +vn -0.5401 0.2887 -0.7906 +vn -0.5658 0.2343 -0.7906 +vn -0.5860 0.1778 -0.7906 +vn -0.6006 0.1195 -0.7906 +vn -0.6094 0.0600 -0.7906 +vn -0.6124 0.0000 -0.7906 +vn -0.6094 -0.0600 -0.7906 +vn -0.6006 -0.1195 -0.7906 +vn -0.5860 -0.1777 -0.7906 +vn -0.5658 -0.2343 -0.7906 +vn -0.5401 -0.2887 -0.7906 +vn -0.5092 -0.3402 -0.7906 +vn -0.4734 -0.3885 -0.7906 +vn -0.4330 -0.4330 -0.7906 +vn -0.3885 -0.4734 -0.7906 +vn -0.3402 -0.5092 -0.7906 +vn -0.2887 -0.5401 -0.7906 +vn -0.2343 -0.5658 -0.7906 +vn -0.1778 -0.5860 -0.7906 +vn -0.1195 -0.6006 -0.7906 +vn -0.0600 -0.6094 -0.7906 +vn -0.0000 -0.6124 -0.7906 +vn 0.0600 -0.6094 -0.7906 +vn 0.1195 -0.6006 -0.7906 +vn 0.1777 -0.5860 -0.7906 +vn 0.2343 -0.5658 -0.7906 +vn 0.2887 -0.5401 -0.7906 +vn 0.3402 -0.5092 -0.7906 +vn 0.3885 -0.4734 -0.7906 +vn 0.4330 -0.4330 -0.7906 +vn 0.4734 -0.3885 -0.7906 +vn 0.5092 -0.3402 -0.7906 +vn 0.5401 -0.2887 -0.7906 +vn 0.5658 -0.2343 -0.7906 +vn 0.5860 -0.1778 -0.7906 +vn 0.6006 -0.1195 -0.7906 +vn 0.6094 -0.0600 -0.7906 +vn 0.6124 -0.0000 -0.7906 +vn 0.6094 0.0600 -0.7906 +vn 0.6006 0.1195 -0.7906 +vn 0.5860 0.1777 -0.7906 +vn 0.5658 0.2343 -0.7906 +vn 0.5401 0.2887 -0.7906 +vn 0.5092 0.3402 -0.7906 +vn 0.4734 0.3885 -0.7906 +vn 0.4330 0.4330 -0.7906 +vn 0.3885 0.4734 -0.7906 +vn 0.3402 0.5092 -0.7906 +vn 0.2887 0.5401 -0.7906 +vn 0.2343 0.5658 -0.7906 +vn 0.1778 0.5860 -0.7906 +vn 0.1195 0.6006 -0.7906 +vn 0.0600 0.6094 -0.7906 +vn -0.0980 0.9951 -0.0145 +vn -0.1951 0.9807 -0.0146 +vn 0.0000 0.9999 -0.0145 +vn -0.2903 0.9568 -0.0145 +vn -0.3826 0.9238 -0.0145 +vn -0.4713 0.8818 -0.0145 +vn -0.5555 0.8314 -0.0145 +vn -0.6343 0.7729 -0.0145 +vn -0.7070 0.7070 -0.0145 +vn -0.7729 0.6343 -0.0145 +vn -0.8314 0.5555 -0.0145 +vn -0.8818 0.4713 -0.0145 +vn -0.9238 0.3826 -0.0145 +vn -0.9568 0.2903 -0.0145 +vn -0.9807 0.1951 -0.0145 +vn -0.9951 0.0980 -0.0145 +vn -0.9999 -0.0000 -0.0145 +vn -0.9951 -0.0980 -0.0145 +vn -0.9807 -0.1951 -0.0145 +vn -0.9568 -0.2903 -0.0145 +vn -0.9238 -0.3826 -0.0145 +vn -0.8818 -0.4713 -0.0145 +vn -0.8314 -0.5555 -0.0145 +vn -0.7729 -0.6343 -0.0145 +vn -0.7070 -0.7070 -0.0145 +vn -0.6343 -0.7729 -0.0145 +vn -0.5555 -0.8314 -0.0145 +vn -0.4713 -0.8818 -0.0145 +vn -0.3826 -0.9238 -0.0145 +vn -0.2903 -0.9568 -0.0145 +vn -0.1951 -0.9807 -0.0146 +vn -0.0980 -0.9951 -0.0145 +vn 0.0000 -0.9999 -0.0145 +vn 0.0980 -0.9951 -0.0145 +vn 0.1951 -0.9807 -0.0146 +vn 0.2903 -0.9568 -0.0145 +vn 0.3826 -0.9238 -0.0145 +vn 0.4713 -0.8818 -0.0145 +vn 0.5555 -0.8314 -0.0145 +vn 0.6343 -0.7729 -0.0145 +vn 0.7070 -0.7070 -0.0145 +vn 0.7729 -0.6343 -0.0145 +vn 0.8314 -0.5555 -0.0145 +vn 0.8818 -0.4713 -0.0145 +vn 0.9238 -0.3826 -0.0145 +vn 0.9568 -0.2903 -0.0145 +vn 0.9807 -0.1951 -0.0145 +vn 0.9951 -0.0980 -0.0145 +vn 0.9999 0.0000 -0.0145 +vn 0.9951 0.0980 -0.0145 +vn 0.9807 0.1951 -0.0145 +vn 0.9568 0.2903 -0.0145 +vn 0.9238 0.3826 -0.0145 +vn 0.8818 0.4713 -0.0145 +vn 0.8314 0.5555 -0.0145 +vn 0.7729 0.6343 -0.0145 +vn 0.7070 0.7070 -0.0145 +vn 0.6343 0.7729 -0.0145 +vn 0.5555 0.8314 -0.0145 +vn 0.4713 0.8818 -0.0145 +vn 0.3826 0.9238 -0.0145 +vn 0.2903 0.9568 -0.0145 +vn 0.1951 0.9807 -0.0145 +vn 0.0980 0.9951 -0.0145 +vn -0.0959 0.9736 -0.2070 +vn -0.1909 0.9595 -0.2070 +vn -0.0000 0.9783 -0.2070 +vn -0.2840 0.9362 -0.2070 +vn -0.3744 0.9039 -0.2070 +vn -0.4612 0.8628 -0.2070 +vn -0.5435 0.8135 -0.2070 +vn -0.6207 0.7563 -0.2070 +vn -0.6918 0.6918 -0.2070 +vn -0.7563 0.6206 -0.2070 +vn -0.8135 0.5435 -0.2070 +vn -0.8628 0.4612 -0.2070 +vn -0.9039 0.3744 -0.2070 +vn -0.9362 0.2840 -0.2070 +vn -0.9595 0.1909 -0.2070 +vn -0.9736 0.0959 -0.2070 +vn -0.9783 0.0000 -0.2070 +vn -0.9736 -0.0959 -0.2070 +vn -0.9595 -0.1909 -0.2070 +vn -0.9362 -0.2840 -0.2070 +vn -0.9039 -0.3744 -0.2070 +vn -0.8628 -0.4612 -0.2070 +vn -0.8135 -0.5435 -0.2070 +vn -0.7563 -0.6207 -0.2070 +vn -0.6918 -0.6918 -0.2070 +vn -0.6207 -0.7563 -0.2070 +vn -0.5435 -0.8135 -0.2070 +vn -0.4612 -0.8628 -0.2070 +vn -0.3744 -0.9039 -0.2070 +vn -0.2840 -0.9362 -0.2070 +vn -0.1909 -0.9595 -0.2070 +vn -0.0959 -0.9736 -0.2070 +vn -0.0000 -0.9783 -0.2070 +vn 0.0959 -0.9736 -0.2070 +vn 0.1909 -0.9595 -0.2070 +vn 0.2840 -0.9362 -0.2070 +vn 0.3744 -0.9039 -0.2070 +vn 0.4612 -0.8628 -0.2070 +vn 0.5435 -0.8135 -0.2070 +vn 0.6207 -0.7563 -0.2070 +vn 0.6918 -0.6918 -0.2070 +vn 0.7563 -0.6207 -0.2070 +vn 0.8135 -0.5435 -0.2070 +vn 0.8628 -0.4612 -0.2070 +vn 0.9039 -0.3744 -0.2070 +vn 0.9362 -0.2840 -0.2070 +vn 0.9595 -0.1909 -0.2070 +vn 0.9736 -0.0959 -0.2070 +vn 0.9783 -0.0000 -0.2070 +vn 0.9736 0.0959 -0.2070 +vn 0.9595 0.1909 -0.2070 +vn 0.9362 0.2840 -0.2070 +vn 0.9039 0.3744 -0.2070 +vn 0.8628 0.4612 -0.2070 +vn 0.8135 0.5435 -0.2070 +vn 0.7563 0.6207 -0.2070 +vn 0.6918 0.6918 -0.2070 +vn 0.6206 0.7563 -0.2070 +vn 0.5435 0.8135 -0.2070 +vn 0.4612 0.8628 -0.2070 +vn 0.3744 0.9039 -0.2070 +vn 0.2840 0.9362 -0.2070 +vn 0.1909 0.9595 -0.2070 +vn 0.0959 0.9736 -0.2070 +s 1 +f 1//1 2//1 3//1 4//1 +f 5//2 6//3 2//4 1//5 +f 2//4 7//6 8//7 3//8 +f 2//4 6//3 9//9 7//6 +f 10//10 11//11 12//12 13//13 +f 13//13 12//12 14//14 15//15 +f 5//2 10//10 13//13 6//3 +f 6//3 13//13 15//15 9//9 +f 16//16 17//17 18//18 19//19 +f 17//17 20//20 21//21 18//18 +f 19//19 18//18 15//15 14//14 +f 18//18 21//21 9//9 15//15 +f 22//22 23//23 24//24 25//25 +f 25//25 24//24 8//7 7//6 +f 20//20 22//22 25//25 21//21 +f 21//21 25//25 7//6 9//9 +f 26//26 27//27 28//28 29//29 +f 30//30 31//31 27//27 26//26 +f 28//28 27//27 32//32 33//33 +f 31//31 34//34 32//32 27//27 +f 35//35 36//36 37//37 38//38 +f 36//36 39//39 40//40 37//37 +f 38//38 37//37 31//31 30//30 +f 37//37 40//40 34//34 31//31 +f 41//41 42//42 43//43 44//44 +f 45//45 46//46 42//42 41//41 +f 42//42 40//40 39//39 43//43 +f 46//46 34//34 40//40 42//42 +f 47//47 48//48 49//49 50//50 +f 50//50 49//49 33//33 32//32 +f 45//45 47//47 50//50 46//46 +f 46//46 50//50 32//32 34//34 +f 48//48 47//47 51//51 52//52 +f 47//47 45//45 53//53 51//51 +f 52//52 51//51 54//54 55//55 +f 51//51 53//53 56//56 54//54 +f 44//44 57//57 58//58 41//41 +f 57//57 59//59 60//60 58//58 +f 41//41 58//58 53//53 45//45 +f 53//53 58//58 60//60 56//56 +f 61//61 62//62 63//63 64//64 +f 61//61 65//65 66//66 62//62 +f 62//62 60//60 59//59 63//63 +f 62//62 66//66 56//56 60//60 +f 67//67 68//68 69//69 70//70 +f 70//70 69//69 55//55 54//54 +f 65//65 67//67 70//70 66//66 +f 66//66 70//70 54//54 56//56 +f 68//68 67//67 71//71 72//72 +f 67//67 65//65 73//73 71//71 +f 72//72 71//71 74//74 75//75 +f 71//71 73//73 76//76 74//74 +f 64//64 77//77 78//78 61//61 +f 77//77 79//79 80//80 78//78 +f 65//65 61//61 78//78 73//73 +f 73//73 78//78 80//80 76//76 +f 81//81 82//82 83//83 84//84 +f 81//81 85//85 86//86 82//82 +f 82//82 80//80 79//79 83//83 +f 82//82 86//86 76//76 80//80 +f 87//87 88//88 89//89 90//90 +f 90//90 89//89 75//75 74//74 +f 85//85 87//87 90//90 86//86 +f 86//86 90//90 74//74 76//76 +f 88//88 87//87 91//91 92//92 +f 87//87 85//85 93//93 91//91 +f 91//91 94//94 95//95 92//92 +f 93//93 96//96 94//94 91//91 +f 84//84 97//97 98//98 81//81 +f 97//97 99//99 100//100 98//98 +f 85//85 81//81 98//98 93//93 +f 98//98 100//100 96//96 93//93 +f 101//101 102//102 103//103 104//104 +f 105//105 106//106 102//102 101//101 +f 102//102 100//100 99//99 103//103 +f 106//106 96//96 100//100 102//102 +f 107//107 108//108 109//109 110//110 +f 108//108 95//95 94//94 109//109 +f 110//110 109//109 106//106 105//105 +f 109//109 94//94 96//96 106//106 +f 107//107 110//110 111//111 112//112 +f 110//110 105//105 113//113 111//111 +f 112//112 111//111 114//114 115//115 +f 111//111 113//113 116//116 114//114 +f 104//104 117//117 118//118 101//101 +f 117//117 119//119 120//120 118//118 +f 105//105 101//101 118//118 113//113 +f 113//113 118//118 120//120 116//116 +f 121//121 122//122 123//123 124//124 +f 125//125 126//126 122//122 121//121 +f 122//122 120//120 119//119 123//123 +f 126//126 116//116 120//120 122//122 +f 127//127 128//128 129//129 130//130 +f 129//129 128//128 115//115 114//114 +f 130//130 129//129 126//126 125//125 +f 126//126 129//129 114//114 116//116 +f 130//130 131//131 132//132 127//127 +f 125//125 133//133 131//131 130//130 +f 131//131 134//134 135//135 132//132 +f 133//133 136//136 134//134 131//131 +f 124//124 137//137 138//138 121//121 +f 137//137 139//139 140//140 138//138 +f 121//121 138//138 133//133 125//125 +f 138//138 140//140 136//136 133//133 +f 141//141 142//142 143//143 144//144 +f 145//145 146//146 142//142 141//141 +f 142//142 140//140 139//139 143//143 +f 146//146 136//136 140//140 142//142 +f 147//147 148//148 149//149 150//150 +f 148//148 135//135 134//134 149//149 +f 150//150 149//149 146//146 145//145 +f 149//149 134//134 136//136 146//146 +f 147//147 150//150 151//151 152//152 +f 145//145 153//153 151//151 150//150 +f 152//152 151//151 154//154 155//155 +f 151//151 153//153 156//156 154//154 +f 144//144 157//157 158//158 141//141 +f 157//157 159//159 160//160 158//158 +f 141//141 158//158 153//153 145//145 +f 158//158 160//160 156//156 153//153 +f 161//161 162//162 163//163 164//164 +f 161//161 165//165 166//166 162//162 +f 162//162 160//160 159//159 163//163 +f 166//166 156//156 160//160 162//162 +f 167//167 168//168 169//169 170//170 +f 170//170 169//169 155//155 154//154 +f 165//165 167//167 170//170 166//166 +f 166//166 170//170 154//154 156//156 +f 168//168 167//167 171//171 172//172 +f 167//167 165//165 173//173 171//171 +f 171//171 174//174 175//175 172//172 +f 173//173 176//176 174//174 171//171 +f 164//164 177//177 178//178 161//161 +f 177//177 179//179 180//180 178//178 +f 165//165 161//161 178//178 173//173 +f 178//178 180//180 176//176 173//173 +f 181//181 182//182 183//183 184//184 +f 185//185 186//186 182//182 181//181 +f 182//182 180//180 179//179 183//183 +f 186//186 176//176 180//180 182//182 +f 187//187 188//188 189//189 190//190 +f 188//188 175//175 174//174 189//189 +f 190//190 189//189 186//186 185//185 +f 189//189 174//174 176//176 186//186 +f 187//187 190//190 191//191 192//192 +f 190//190 185//185 193//193 191//191 +f 192//192 191//191 194//194 195//195 +f 191//191 193//193 196//196 194//194 +f 184//184 197//197 198//198 181//181 +f 197//197 199//199 200//200 198//198 +f 185//185 181//181 198//198 193//193 +f 193//193 198//198 200//200 196//196 +f 201//201 202//202 203//203 204//204 +f 205//205 206//206 202//202 201//201 +f 202//202 200//200 199//199 203//203 +f 206//206 196//196 200//200 202//202 +f 207//207 208//208 209//209 210//210 +f 209//209 208//208 195//195 194//194 +f 210//210 209//209 206//206 205//205 +f 209//209 194//194 196//196 206//206 +f 210//210 211//211 212//212 207//207 +f 205//205 213//213 211//211 210//210 +f 211//211 214//214 215//215 212//212 +f 213//213 216//216 214//214 211//211 +f 204//204 217//217 218//218 201//201 +f 217//217 219//219 220//220 218//218 +f 201//201 218//218 213//213 205//205 +f 218//218 220//220 216//216 213//213 +f 221//221 222//222 223//223 224//224 +f 225//225 226//226 222//222 221//221 +f 222//222 220//220 219//219 223//223 +f 226//226 216//216 220//220 222//222 +f 227//227 228//228 229//229 230//230 +f 228//228 215//215 214//214 229//229 +f 230//230 229//229 226//226 225//225 +f 229//229 214//214 216//216 226//226 +f 230//230 231//231 232//232 227//227 +f 225//225 233//233 231//231 230//230 +f 231//231 234//234 235//235 232//232 +f 233//233 236//236 234//234 231//231 +f 224//224 237//237 238//238 221//221 +f 237//237 239//239 240//240 238//238 +f 221//221 238//238 233//233 225//225 +f 238//238 240//240 236//236 233//233 +f 241//241 242//242 243//243 244//244 +f 245//245 246//246 242//242 241//241 +f 242//242 240//240 239//239 243//243 +f 246//246 236//236 240//240 242//242 +f 247//247 248//248 249//249 250//250 +f 248//248 235//235 234//234 249//249 +f 250//250 249//249 246//246 245//245 +f 249//249 234//234 236//236 246//246 +f 250//250 251//251 252//252 247//247 +f 245//245 253//253 251//251 250//250 +f 251//251 254//254 255//255 252//252 +f 253//253 256//256 254//254 251//251 +f 244//244 257//257 258//258 241//241 +f 257//257 259//259 260//260 258//258 +f 241//241 258//258 253//253 245//245 +f 258//258 260//260 256//256 253//253 +f 261//261 262//262 263//263 264//264 +f 265//265 266//266 262//262 261//261 +f 262//262 260//260 259//259 263//263 +f 266//266 256//256 260//260 262//262 +f 267//267 268//268 269//269 270//270 +f 268//268 255//255 254//254 269//269 +f 270//270 269//269 266//266 265//265 +f 269//269 254//254 256//256 266//266 +f 271//271 272//272 36//36 35//35 +f 273//273 274//274 272//272 271//271 +f 272//272 275//275 39//39 36//36 +f 274//274 276//276 275//275 272//272 +f 277//277 278//278 279//279 280//280 +f 278//278 281//281 282//282 279//279 +f 280//280 279//279 274//274 273//273 +f 279//279 282//282 276//276 274//274 +f 283//283 284//284 285//285 286//286 +f 287//287 288//288 284//284 283//283 +f 284//284 282//282 281//281 285//285 +f 288//288 276//276 282//282 284//284 +f 44//44 43//43 289//289 290//290 +f 43//43 39//39 275//275 289//289 +f 290//290 289//289 288//288 287//287 +f 289//289 275//275 276//276 288//288 +f 290//290 291//291 57//57 44//44 +f 287//287 292//292 291//291 290//290 +f 291//291 293//293 59//59 57//57 +f 292//292 294//294 293//293 291//291 +f 286//286 295//295 296//296 283//283 +f 295//295 297//297 298//298 296//296 +f 283//283 296//296 292//292 287//287 +f 296//296 298//298 294//294 292//292 +f 299//299 300//300 301//301 302//302 +f 303//303 304//304 300//300 299//299 +f 300//300 298//298 297//297 301//301 +f 304//304 294//294 298//298 300//300 +f 64//64 63//63 305//305 306//306 +f 63//63 59//59 293//293 305//305 +f 306//306 305//305 304//304 303//303 +f 305//305 293//293 294//294 304//304 +f 306//306 307//307 77//77 64//64 +f 303//303 308//308 307//307 306//306 +f 307//307 309//309 79//79 77//77 +f 308//308 310//310 309//309 307//307 +f 302//302 311//311 312//312 299//299 +f 311//311 313//313 314//314 312//312 +f 299//299 312//312 308//308 303//303 +f 312//312 314//314 310//310 308//308 +f 315//315 316//316 317//317 318//318 +f 319//319 320//320 316//316 315//315 +f 316//316 314//314 313//313 317//317 +f 320//320 310//310 314//314 316//316 +f 84//84 83//83 321//321 322//322 +f 83//83 79//79 309//309 321//321 +f 322//322 321//321 320//320 319//319 +f 321//321 309//309 310//310 320//320 +f 322//322 323//323 97//97 84//84 +f 319//319 324//324 323//323 322//322 +f 323//323 325//325 99//99 97//97 +f 324//324 326//326 325//325 323//323 +f 318//318 327//327 328//328 315//315 +f 327//327 329//329 330//330 328//328 +f 315//315 328//328 324//324 319//319 +f 328//328 330//330 326//326 324//324 +f 331//331 332//332 333//333 334//334 +f 335//335 336//336 332//332 331//331 +f 332//332 330//330 329//329 333//333 +f 336//336 326//326 330//330 332//332 +f 104//104 103//103 337//337 338//338 +f 103//103 99//99 325//325 337//337 +f 338//338 337//337 336//336 335//335 +f 337//337 325//325 326//326 336//336 +f 338//338 339//339 117//117 104//104 +f 335//335 340//340 339//339 338//338 +f 339//339 341//341 119//119 117//117 +f 340//340 342//342 341//341 339//339 +f 334//334 343//343 344//344 331//331 +f 343//343 345//345 346//346 344//344 +f 331//331 344//344 340//340 335//335 +f 344//344 346//346 342//342 340//340 +f 347//347 348//348 349//349 350//350 +f 351//351 352//352 348//348 347//347 +f 348//348 346//346 345//345 349//349 +f 352//352 342//342 346//346 348//348 +f 124//124 123//123 353//353 354//354 +f 123//123 119//119 341//341 353//353 +f 354//354 353//353 352//352 351//351 +f 353//353 341//341 342//342 352//352 +f 354//354 355//355 137//137 124//124 +f 351//351 356//356 355//355 354//354 +f 355//355 357//357 139//139 137//137 +f 356//356 358//358 357//357 355//355 +f 350//350 359//359 360//360 347//347 +f 359//359 361//361 362//362 360//360 +f 347//347 360//360 356//356 351//351 +f 360//360 362//362 358//358 356//356 +f 363//363 364//364 365//365 366//366 +f 367//367 368//368 364//364 363//363 +f 364//364 362//362 361//361 365//365 +f 368//368 358//358 362//362 364//364 +f 144//144 143//143 369//369 370//370 +f 143//143 139//139 357//357 369//369 +f 370//370 369//369 368//368 367//367 +f 369//369 357//357 358//358 368//368 +f 370//370 371//371 157//157 144//144 +f 367//367 372//372 371//371 370//370 +f 371//371 373//373 159//159 157//157 +f 372//372 374//374 373//373 371//371 +f 366//366 375//375 376//376 363//363 +f 375//375 377//377 378//378 376//376 +f 363//363 376//376 372//372 367//367 +f 376//376 378//378 374//374 372//372 +f 379//379 380//380 381//381 382//382 +f 383//383 384//384 380//380 379//379 +f 380//380 378//378 377//377 381//381 +f 384//384 374//374 378//378 380//380 +f 164//164 163//163 385//385 386//386 +f 163//163 159//159 373//373 385//385 +f 386//386 385//385 384//384 383//383 +f 385//385 373//373 374//374 384//384 +f 386//386 387//387 177//177 164//164 +f 383//383 388//388 387//387 386//386 +f 387//387 389//389 179//179 177//177 +f 388//388 390//390 389//389 387//387 +f 382//382 391//391 392//392 379//379 +f 391//391 393//393 394//394 392//392 +f 379//379 392//392 388//388 383//383 +f 392//392 394//394 390//390 388//388 +f 395//395 396//396 397//397 398//398 +f 399//399 400//400 396//396 395//395 +f 396//396 394//394 393//393 397//397 +f 400//400 390//390 394//394 396//396 +f 184//184 183//183 401//401 402//402 +f 183//183 179//179 389//389 401//401 +f 402//402 401//401 400//400 399//399 +f 401//401 389//389 390//390 400//400 +f 402//402 403//403 197//197 184//184 +f 399//399 404//404 403//403 402//402 +f 403//403 405//405 199//199 197//197 +f 404//404 406//406 405//405 403//403 +f 398//398 407//407 408//408 395//395 +f 407//407 409//409 410//410 408//408 +f 395//395 408//408 404//404 399//399 +f 408//408 410//410 406//406 404//404 +f 411//411 412//412 413//413 414//414 +f 415//415 416//416 412//412 411//411 +f 412//412 410//410 409//409 413//413 +f 416//416 406//406 410//410 412//412 +f 204//204 203//203 417//417 418//418 +f 203//203 199//199 405//405 417//417 +f 418//418 417//417 416//416 415//415 +f 417//417 405//405 406//406 416//416 +f 418//418 419//419 217//217 204//204 +f 415//415 420//420 419//419 418//418 +f 419//419 421//421 219//219 217//217 +f 420//420 422//422 421//421 419//419 +f 414//414 423//423 424//424 411//411 +f 423//423 425//425 426//426 424//424 +f 411//411 424//424 420//420 415//415 +f 424//424 426//426 422//422 420//420 +f 427//427 428//428 429//429 430//430 +f 431//431 432//432 428//428 427//427 +f 428//428 426//426 425//425 429//429 +f 432//432 422//422 426//426 428//428 +f 224//224 223//223 433//433 434//434 +f 223//223 219//219 421//421 433//433 +f 434//434 433//433 432//432 431//431 +f 433//433 421//421 422//422 432//432 +f 434//434 435//435 237//237 224//224 +f 431//431 436//436 435//435 434//434 +f 435//435 437//437 239//239 237//237 +f 436//436 438//438 437//437 435//435 +f 430//430 439//439 440//440 427//427 +f 439//439 441//441 442//442 440//440 +f 427//427 440//440 436//436 431//431 +f 440//440 442//442 438//438 436//436 +f 443//443 444//444 445//445 446//446 +f 447//447 448//448 444//444 443//443 +f 444//444 442//442 441//441 445//445 +f 448//448 438//438 442//442 444//444 +f 244//244 243//243 449//449 450//450 +f 243//243 239//239 437//437 449//449 +f 450//450 449//449 448//448 447//447 +f 449//449 437//437 438//438 448//448 +f 450//450 451//451 257//257 244//244 +f 447//447 452//452 451//451 450//450 +f 451//451 453//453 259//259 257//257 +f 452//452 454//454 453//453 451//451 +f 446//446 455//455 456//456 443//443 +f 455//455 457//457 458//458 456//456 +f 443//443 456//456 452//452 447//447 +f 456//456 458//458 454//454 452//452 +f 459//459 460//460 461//461 462//462 +f 463//463 464//464 460//460 459//459 +f 460//460 458//458 457//457 461//461 +f 464//464 454//454 458//458 460//460 +f 264//264 263//263 465//465 466//466 +f 263//263 259//259 453//453 465//465 +f 466//466 465//465 464//464 463//463 +f 465//465 453//453 454//454 464//464 +f 467//467 468//468 278//278 277//277 +f 469//469 470//470 468//468 467//467 +f 468//468 471//471 281//281 278//278 +f 470//470 472//472 471//471 468//468 +f 473//473 474//474 475//475 476//476 +f 474//474 477//477 478//478 475//475 +f 476//476 475//475 470//470 469//469 +f 475//475 478//478 472//472 470//470 +f 479//479 480//480 481//481 482//482 +f 483//483 484//484 480//480 479//479 +f 480//480 478//478 477//477 481//481 +f 484//484 472//472 478//478 480//480 +f 286//286 285//285 485//485 486//486 +f 285//285 281//281 471//471 485//485 +f 486//486 485//485 484//484 483//483 +f 485//485 471//471 472//472 484//484 +f 486//486 487//487 295//295 286//286 +f 483//483 488//488 487//487 486//486 +f 487//487 489//489 297//297 295//295 +f 488//488 490//490 489//489 487//487 +f 482//482 491//491 492//492 479//479 +f 491//491 493//493 494//494 492//492 +f 479//479 492//492 488//488 483//483 +f 492//492 494//494 490//490 488//488 +f 495//495 496//496 497//497 498//498 +f 499//499 500//500 496//496 495//495 +f 496//496 494//494 493//493 497//497 +f 500//500 490//490 494//494 496//496 +f 302//302 301//301 501//501 502//502 +f 301//301 297//297 489//489 501//501 +f 502//502 501//501 500//500 499//499 +f 501//501 489//489 490//490 500//500 +f 502//502 503//503 311//311 302//302 +f 499//499 504//504 503//503 502//502 +f 503//503 505//505 313//313 311//311 +f 504//504 506//506 505//505 503//503 +f 498//498 507//507 508//508 495//495 +f 507//507 509//509 510//510 508//508 +f 495//495 508//508 504//504 499//499 +f 508//508 510//510 506//506 504//504 +f 511//511 512//512 513//513 514//514 +f 515//515 516//516 512//512 511//511 +f 512//512 510//510 509//509 513//513 +f 516//516 506//506 510//510 512//512 +f 318//318 317//317 517//517 518//518 +f 317//317 313//313 505//505 517//517 +f 518//518 517//517 516//516 515//515 +f 517//517 505//505 506//506 516//516 +f 518//518 519//519 327//327 318//318 +f 515//515 520//520 519//519 518//518 +f 519//519 521//521 329//329 327//327 +f 520//520 522//522 521//521 519//519 +f 514//514 523//523 524//524 511//511 +f 523//523 525//525 526//526 524//524 +f 511//511 524//524 520//520 515//515 +f 524//524 526//526 522//522 520//520 +f 527//527 528//528 529//529 530//530 +f 531//531 532//532 528//528 527//527 +f 528//528 526//526 525//525 529//529 +f 532//532 522//522 526//526 528//528 +f 334//334 333//333 533//533 534//534 +f 333//333 329//329 521//521 533//533 +f 534//534 533//533 532//532 531//531 +f 533//533 521//521 522//522 532//532 +f 534//534 535//535 343//343 334//334 +f 531//531 536//536 535//535 534//534 +f 535//535 537//537 345//345 343//343 +f 536//536 538//538 537//537 535//535 +f 530//530 539//539 540//540 527//527 +f 539//539 541//541 542//542 540//540 +f 527//527 540//540 536//536 531//531 +f 540//540 542//542 538//538 536//536 +f 543//543 544//544 545//545 546//546 +f 547//547 548//548 544//544 543//543 +f 544//544 542//542 541//541 545//545 +f 548//548 538//538 542//542 544//544 +f 350//350 349//349 549//549 550//550 +f 349//349 345//345 537//537 549//549 +f 550//550 549//549 548//548 547//547 +f 549//549 537//537 538//538 548//548 +f 550//550 551//551 359//359 350//350 +f 547//547 552//552 551//551 550//550 +f 551//551 553//553 361//361 359//359 +f 552//552 554//554 553//553 551//551 +f 546//546 555//555 556//556 543//543 +f 555//555 557//557 558//558 556//556 +f 543//543 556//556 552//552 547//547 +f 556//556 558//558 554//554 552//552 +f 559//559 560//560 561//561 562//562 +f 563//563 564//564 560//560 559//559 +f 560//560 558//558 557//557 561//561 +f 564//564 554//554 558//558 560//560 +f 366//366 365//365 565//565 566//566 +f 365//365 361//361 553//553 565//565 +f 566//566 565//565 564//564 563//563 +f 565//565 553//553 554//554 564//564 +f 566//566 567//567 375//375 366//366 +f 563//563 568//568 567//567 566//566 +f 567//567 569//569 377//377 375//375 +f 568//568 570//570 569//569 567//567 +f 562//562 571//571 572//572 559//559 +f 571//571 573//573 574//574 572//572 +f 559//559 572//572 568//568 563//563 +f 572//572 574//574 570//570 568//568 +f 575//575 576//576 577//577 578//578 +f 579//579 580//580 576//576 575//575 +f 576//576 574//574 573//573 577//577 +f 580//580 570//570 574//574 576//576 +f 382//382 381//381 581//581 582//582 +f 381//381 377//377 569//569 581//581 +f 582//582 581//581 580//580 579//579 +f 581//581 569//569 570//570 580//580 +f 582//582 583//583 391//391 382//382 +f 579//579 584//584 583//583 582//582 +f 583//583 585//585 393//393 391//391 +f 584//584 586//586 585//585 583//583 +f 578//578 587//587 588//588 575//575 +f 587//587 589//589 590//590 588//588 +f 575//575 588//588 584//584 579//579 +f 588//588 590//590 586//586 584//584 +f 591//591 592//592 593//593 594//594 +f 595//595 596//596 592//592 591//591 +f 592//592 590//590 589//589 593//593 +f 596//596 586//586 590//590 592//592 +f 398//398 397//397 597//597 598//598 +f 397//397 393//393 585//585 597//597 +f 598//598 597//597 596//596 595//595 +f 597//597 585//585 586//586 596//596 +f 598//598 599//599 407//407 398//398 +f 595//595 600//600 599//599 598//598 +f 599//599 601//601 409//409 407//407 +f 600//600 602//602 601//601 599//599 +f 594//594 603//603 604//604 591//591 +f 603//603 605//605 606//606 604//604 +f 591//591 604//604 600//600 595//595 +f 604//604 606//606 602//602 600//600 +f 607//607 608//608 609//609 610//610 +f 611//611 612//612 608//608 607//607 +f 608//608 606//606 605//605 609//609 +f 612//612 602//602 606//606 608//608 +f 414//414 413//413 613//613 614//614 +f 413//413 409//409 601//601 613//613 +f 614//614 613//613 612//612 611//611 +f 613//613 601//601 602//602 612//612 +f 614//614 615//615 423//423 414//414 +f 611//611 616//616 615//615 614//614 +f 615//615 617//617 425//425 423//423 +f 616//616 618//618 617//617 615//615 +f 610//610 619//619 620//620 607//607 +f 619//619 621//621 622//622 620//620 +f 607//607 620//620 616//616 611//611 +f 620//620 622//622 618//618 616//616 +f 623//623 624//624 625//625 626//626 +f 627//627 628//628 624//624 623//623 +f 624//624 622//622 621//621 625//625 +f 628//628 618//618 622//622 624//624 +f 430//430 429//429 629//629 630//630 +f 429//429 425//425 617//617 629//629 +f 630//630 629//629 628//628 627//627 +f 629//629 617//617 618//618 628//628 +f 630//630 631//631 439//439 430//430 +f 627//627 632//632 631//631 630//630 +f 631//631 633//633 441//441 439//439 +f 632//632 634//634 633//633 631//631 +f 626//626 635//635 636//636 623//623 +f 635//635 637//637 638//638 636//636 +f 623//623 636//636 632//632 627//627 +f 636//636 638//638 634//634 632//632 +f 639//639 640//640 641//641 642//642 +f 643//643 644//644 640//640 639//639 +f 640//640 638//638 637//637 641//641 +f 644//644 634//634 638//638 640//640 +f 446//446 445//445 645//645 646//646 +f 445//445 441//441 633//633 645//645 +f 646//646 645//645 644//644 643//643 +f 645//645 633//633 634//634 644//644 +f 646//646 647//647 455//455 446//446 +f 643//643 648//648 647//647 646//646 +f 647//647 649//649 457//457 455//455 +f 648//648 650//650 649//649 647//647 +f 642//642 651//651 652//652 639//639 +f 651//651 653//653 654//654 652//652 +f 639//639 652//652 648//648 643//643 +f 652//652 654//654 650//650 648//648 +f 655//655 656//656 657//657 658//658 +f 659//659 660//660 656//656 655//655 +f 656//656 654//654 653//653 657//657 +f 660//660 650//650 654//654 656//656 +f 462//462 461//461 661//661 662//662 +f 461//461 457//457 649//649 661//661 +f 662//662 661//661 660//660 659//659 +f 661//661 649//649 650//650 660//660 +f 663//663 664//664 474//474 473//473 +f 665//665 666//666 664//664 663//663 +f 664//664 667//667 477//477 474//474 +f 666//666 668//668 667//667 664//664 +f 669//669 670//670 671//671 672//672 +f 670//670 673//673 674//674 671//671 +f 672//672 671//671 666//666 665//665 +f 671//671 674//674 668//668 666//666 +f 675//675 676//676 677//677 678//678 +f 679//679 680//680 676//676 675//675 +f 676//676 674//674 673//673 677//677 +f 680//680 668//668 674//674 676//676 +f 482//482 481//481 681//681 682//682 +f 481//481 477//477 667//667 681//681 +f 682//682 681//681 680//680 679//679 +f 681//681 667//667 668//668 680//680 +f 682//682 683//683 491//491 482//482 +f 679//679 684//684 683//683 682//682 +f 683//683 685//685 493//493 491//491 +f 684//684 686//686 685//685 683//683 +f 678//678 687//687 688//688 675//675 +f 687//687 689//689 690//690 688//688 +f 675//675 688//688 684//684 679//679 +f 688//688 690//690 686//686 684//684 +f 691//691 692//692 693//693 694//694 +f 695//695 696//696 692//692 691//691 +f 692//692 690//690 689//689 693//693 +f 696//696 686//686 690//690 692//692 +f 498//498 497//497 697//697 698//698 +f 497//497 493//493 685//685 697//697 +f 698//698 697//697 696//696 695//695 +f 697//697 685//685 686//686 696//696 +f 698//698 699//699 507//507 498//498 +f 695//695 700//700 699//699 698//698 +f 699//699 701//701 509//509 507//507 +f 700//700 702//702 701//701 699//699 +f 694//694 703//703 704//704 691//691 +f 703//703 705//705 706//706 704//704 +f 691//691 704//704 700//700 695//695 +f 704//704 706//706 702//702 700//700 +f 707//707 708//708 709//709 710//710 +f 711//711 712//712 708//708 707//707 +f 708//708 706//706 705//705 709//709 +f 712//712 702//702 706//706 708//708 +f 514//514 513//513 713//713 714//714 +f 513//513 509//509 701//701 713//713 +f 714//714 713//713 712//712 711//711 +f 713//713 701//701 702//702 712//712 +f 714//714 715//715 523//523 514//514 +f 711//711 716//716 715//715 714//714 +f 715//715 717//717 525//525 523//523 +f 716//716 718//718 717//717 715//715 +f 710//710 719//719 720//720 707//707 +f 719//719 721//721 722//722 720//720 +f 707//707 720//720 716//716 711//711 +f 720//720 722//722 718//718 716//716 +f 723//723 724//724 725//725 726//726 +f 727//727 728//728 724//724 723//723 +f 724//724 722//722 721//721 725//725 +f 728//728 718//718 722//722 724//724 +f 530//530 529//529 729//729 730//730 +f 529//529 525//525 717//717 729//729 +f 730//730 729//729 728//728 727//727 +f 729//729 717//717 718//718 728//728 +f 730//730 731//731 539//539 530//530 +f 727//727 732//732 731//731 730//730 +f 731//731 733//733 541//541 539//539 +f 732//732 734//734 733//733 731//731 +f 726//726 735//735 736//736 723//723 +f 735//735 737//737 738//738 736//736 +f 723//723 736//736 732//732 727//727 +f 736//736 738//738 734//734 732//732 +f 739//739 740//740 741//741 742//742 +f 743//743 744//744 740//740 739//739 +f 740//740 738//738 737//737 741//741 +f 744//744 734//734 738//738 740//740 +f 546//546 545//545 745//745 746//746 +f 545//545 541//541 733//733 745//745 +f 746//746 745//745 744//744 743//743 +f 745//745 733//733 734//734 744//744 +f 746//746 747//747 555//555 546//546 +f 743//743 748//748 747//747 746//746 +f 747//747 749//749 557//557 555//555 +f 748//748 750//750 749//749 747//747 +f 742//742 751//751 752//752 739//739 +f 751//751 753//753 754//754 752//752 +f 739//739 752//752 748//748 743//743 +f 752//752 754//754 750//750 748//748 +f 755//755 756//756 757//757 758//758 +f 759//759 760//760 756//756 755//755 +f 756//756 754//754 753//753 757//757 +f 760//760 750//750 754//754 756//756 +f 562//562 561//561 761//761 762//762 +f 561//561 557//557 749//749 761//761 +f 762//762 761//761 760//760 759//759 +f 761//761 749//749 750//750 760//760 +f 762//762 763//763 571//571 562//562 +f 759//759 764//764 763//763 762//762 +f 763//763 765//765 573//573 571//571 +f 764//764 766//766 765//765 763//763 +f 758//758 767//767 768//768 755//755 +f 767//767 769//769 770//770 768//768 +f 755//755 768//768 764//764 759//759 +f 768//768 770//770 766//766 764//764 +f 771//771 772//772 773//773 774//774 +f 775//775 776//776 772//772 771//771 +f 772//772 770//770 769//769 773//773 +f 776//776 766//766 770//770 772//772 +f 578//578 577//577 777//777 778//778 +f 577//577 573//573 765//765 777//777 +f 778//778 777//777 776//776 775//775 +f 777//777 765//765 766//766 776//776 +f 778//778 779//779 587//587 578//578 +f 775//775 780//780 779//779 778//778 +f 779//779 781//781 589//589 587//587 +f 780//780 782//782 781//781 779//779 +f 774//774 783//783 784//784 771//771 +f 783//783 785//785 786//786 784//784 +f 771//771 784//784 780//780 775//775 +f 784//784 786//786 782//782 780//780 +f 787//787 788//788 789//789 790//790 +f 791//791 792//792 788//788 787//787 +f 788//788 786//786 785//785 789//789 +f 792//792 782//782 786//786 788//788 +f 594//594 593//593 793//793 794//794 +f 593//593 589//589 781//781 793//793 +f 794//794 793//793 792//792 791//791 +f 793//793 781//781 782//782 792//792 +f 794//794 795//795 603//603 594//594 +f 791//791 796//796 795//795 794//794 +f 795//795 797//797 605//605 603//603 +f 796//796 798//798 797//797 795//795 +f 790//790 799//799 800//800 787//787 +f 799//799 801//801 802//802 800//800 +f 787//787 800//800 796//796 791//791 +f 800//800 802//802 798//798 796//796 +f 803//803 804//804 805//805 806//806 +f 807//807 808//808 804//804 803//803 +f 804//804 802//802 801//801 805//805 +f 808//808 798//798 802//802 804//804 +f 610//610 609//609 809//809 810//810 +f 609//609 605//605 797//797 809//809 +f 810//810 809//809 808//808 807//807 +f 809//809 797//797 798//798 808//808 +f 810//810 811//811 619//619 610//610 +f 807//807 812//812 811//811 810//810 +f 811//811 813//813 621//621 619//619 +f 812//812 814//814 813//813 811//811 +f 806//806 815//815 816//816 803//803 +f 815//815 817//817 818//818 816//816 +f 803//803 816//816 812//812 807//807 +f 816//816 818//818 814//814 812//812 +f 819//819 820//820 821//821 822//822 +f 823//823 824//824 820//820 819//819 +f 820//820 818//818 817//817 821//821 +f 824//824 814//814 818//818 820//820 +f 626//626 625//625 825//825 826//826 +f 625//625 621//621 813//813 825//825 +f 826//826 825//825 824//824 823//823 +f 825//825 813//813 814//814 824//824 +f 826//826 827//827 635//635 626//626 +f 823//823 828//828 827//827 826//826 +f 827//827 829//829 637//637 635//635 +f 828//828 830//830 829//829 827//827 +f 822//822 831//831 832//832 819//819 +f 831//831 833//833 834//834 832//832 +f 819//819 832//832 828//828 823//823 +f 832//832 834//834 830//830 828//828 +f 835//835 836//836 837//837 838//838 +f 839//839 840//840 836//836 835//835 +f 836//836 834//834 833//833 837//837 +f 840//840 830//830 834//834 836//836 +f 642//642 641//641 841//841 842//842 +f 641//641 637//637 829//829 841//841 +f 842//842 841//841 840//840 839//839 +f 841//841 829//829 830//830 840//840 +f 842//842 843//843 651//651 642//642 +f 839//839 844//844 843//843 842//842 +f 843//843 845//845 653//653 651//651 +f 844//844 846//846 845//845 843//843 +f 838//838 847//847 848//848 835//835 +f 847//847 849//849 850//850 848//848 +f 835//835 848//848 844//844 839//839 +f 848//848 850//850 846//846 844//844 +f 851//851 852//852 853//853 854//854 +f 855//855 856//856 852//852 851//851 +f 852//852 850//850 849//849 853//853 +f 856//856 846//846 850//850 852//852 +f 658//658 657//657 857//857 858//858 +f 657//657 653//653 845//845 857//857 +f 858//858 857//857 856//856 855//855 +f 857//857 845//845 846//846 856//856 +f 859//859 860//860 670//670 669//669 +f 861//861 862//862 860//860 859//859 +f 860//860 863//863 673//673 670//670 +f 862//862 864//864 863//863 860//860 +f 865//865 866//866 867//867 868//868 +f 866//866 869//869 870//870 867//867 +f 868//868 867//867 862//862 861//861 +f 867//867 870//870 864//864 862//862 +f 871//871 872//872 873//873 874//874 +f 875//875 876//876 872//872 871//871 +f 872//872 870//870 869//869 873//873 +f 876//876 864//864 870//870 872//872 +f 678//678 677//677 877//877 878//878 +f 677//677 673//673 863//863 877//877 +f 878//878 877//877 876//876 875//875 +f 877//877 863//863 864//864 876//876 +f 878//878 879//879 687//687 678//678 +f 875//875 880//880 879//879 878//878 +f 879//879 881//881 689//689 687//687 +f 880//880 882//882 881//881 879//879 +f 874//874 883//883 884//884 871//871 +f 883//883 885//885 886//886 884//884 +f 871//871 884//884 880//880 875//875 +f 884//884 886//886 882//882 880//880 +f 887//887 888//888 889//889 890//890 +f 891//891 892//892 888//888 887//887 +f 888//888 886//886 885//885 889//889 +f 892//892 882//882 886//886 888//888 +f 694//694 693//693 893//893 894//894 +f 693//693 689//689 881//881 893//893 +f 894//894 893//893 892//892 891//891 +f 893//893 881//881 882//882 892//892 +f 894//894 895//895 703//703 694//694 +f 891//891 896//896 895//895 894//894 +f 895//895 897//897 705//705 703//703 +f 896//896 898//898 897//897 895//895 +f 890//890 899//899 900//900 887//887 +f 899//899 901//901 902//902 900//900 +f 887//887 900//900 896//896 891//891 +f 900//900 902//902 898//898 896//896 +f 903//903 904//904 905//905 906//906 +f 907//907 908//908 904//904 903//903 +f 904//904 902//902 901//901 905//905 +f 908//908 898//898 902//902 904//904 +f 710//710 709//709 909//909 910//910 +f 709//709 705//705 897//897 909//909 +f 910//910 909//909 908//908 907//907 +f 909//909 897//897 898//898 908//908 +f 910//910 911//911 719//719 710//710 +f 907//907 912//912 911//911 910//910 +f 911//911 913//913 721//721 719//719 +f 912//912 914//914 913//913 911//911 +f 906//906 915//915 916//916 903//903 +f 915//915 917//917 918//918 916//916 +f 903//903 916//916 912//912 907//907 +f 916//916 918//918 914//914 912//912 +f 919//919 920//920 921//921 922//922 +f 923//923 924//924 920//920 919//919 +f 920//920 918//918 917//917 921//921 +f 924//924 914//914 918//918 920//920 +f 726//726 725//725 925//925 926//926 +f 725//725 721//721 913//913 925//925 +f 926//926 925//925 924//924 923//923 +f 925//925 913//913 914//914 924//924 +f 926//926 927//927 735//735 726//726 +f 923//923 928//928 927//927 926//926 +f 927//927 929//929 737//737 735//735 +f 928//928 930//930 929//929 927//927 +f 922//922 931//931 932//932 919//919 +f 931//931 933//933 934//934 932//932 +f 919//919 932//932 928//928 923//923 +f 932//932 934//934 930//930 928//928 +f 935//935 936//936 937//937 938//938 +f 939//939 940//940 936//936 935//935 +f 936//936 934//934 933//933 937//937 +f 940//940 930//930 934//934 936//936 +f 742//742 741//741 941//941 942//942 +f 741//741 737//737 929//929 941//941 +f 942//942 941//941 940//940 939//939 +f 941//941 929//929 930//930 940//940 +f 942//942 943//943 751//751 742//742 +f 939//939 944//944 943//943 942//942 +f 943//943 945//945 753//753 751//751 +f 944//944 946//946 945//945 943//943 +f 938//938 947//947 948//948 935//935 +f 947//947 949//949 950//950 948//948 +f 935//935 948//948 944//944 939//939 +f 948//948 950//950 946//946 944//944 +f 951//951 952//952 953//953 954//954 +f 955//955 956//956 952//952 951//951 +f 952//952 950//950 949//949 953//953 +f 956//956 946//946 950//950 952//952 +f 758//758 757//757 957//957 958//958 +f 757//757 753//753 945//945 957//957 +f 958//958 957//957 956//956 955//955 +f 957//957 945//945 946//946 956//956 +f 958//958 959//959 767//767 758//758 +f 955//955 960//960 959//959 958//958 +f 959//959 961//961 769//769 767//767 +f 960//960 962//962 961//961 959//959 +f 954//954 963//963 964//964 951//951 +f 963//963 965//965 966//966 964//964 +f 951//951 964//964 960//960 955//955 +f 964//964 966//966 962//962 960//960 +f 967//967 968//968 969//969 970//970 +f 971//971 972//972 968//968 967//967 +f 968//968 966//966 965//965 969//969 +f 972//972 962//962 966//966 968//968 +f 774//774 773//773 973//973 974//974 +f 773//773 769//769 961//961 973//973 +f 974//974 973//973 972//972 971//971 +f 973//973 961//961 962//962 972//972 +f 974//974 975//975 783//783 774//774 +f 971//971 976//976 975//975 974//974 +f 975//975 977//977 785//785 783//783 +f 976//976 978//978 977//977 975//975 +f 970//970 979//979 980//980 967//967 +f 979//979 981//981 982//982 980//980 +f 967//967 980//980 976//976 971//971 +f 980//980 982//982 978//978 976//976 +f 983//983 984//984 985//985 986//986 +f 987//987 988//988 984//984 983//983 +f 984//984 982//982 981//981 985//985 +f 988//988 978//978 982//982 984//984 +f 790//790 789//789 989//989 990//990 +f 789//789 785//785 977//977 989//989 +f 990//990 989//989 988//988 987//987 +f 989//989 977//977 978//978 988//988 +f 990//990 991//991 799//799 790//790 +f 987//987 992//992 991//991 990//990 +f 991//991 993//993 801//801 799//799 +f 992//992 994//994 993//993 991//991 +f 986//986 995//995 996//996 983//983 +f 995//995 997//997 998//998 996//996 +f 983//983 996//996 992//992 987//987 +f 996//996 998//998 994//994 992//992 +f 999//999 1000//1000 1001//1001 1002//1002 +f 1003//1003 1004//1004 1000//1000 999//999 +f 1000//1000 998//998 997//997 1001//1001 +f 1004//1004 994//994 998//998 1000//1000 +f 806//806 805//805 1005//1005 1006//1006 +f 805//805 801//801 993//993 1005//1005 +f 1006//1006 1005//1005 1004//1004 1003//1003 +f 1005//1005 993//993 994//994 1004//1004 +f 1006//1006 1007//1007 815//815 806//806 +f 1003//1003 1008//1008 1007//1007 1006//1006 +f 1007//1007 1009//1009 817//817 815//815 +f 1008//1008 1010//1010 1009//1009 1007//1007 +f 1002//1002 1011//1011 1012//1012 999//999 +f 1011//1011 1013//1013 1014//1014 1012//1012 +f 999//999 1012//1012 1008//1008 1003//1003 +f 1012//1012 1014//1014 1010//1010 1008//1008 +f 1015//1015 1016//1016 1017//1017 1018//1018 +f 1019//1019 1020//1020 1016//1016 1015//1015 +f 1016//1016 1014//1014 1013//1013 1017//1017 +f 1020//1020 1010//1010 1014//1014 1016//1016 +f 822//822 821//821 1021//1021 1022//1022 +f 821//821 817//817 1009//1009 1021//1021 +f 1022//1022 1021//1021 1020//1020 1019//1019 +f 1021//1021 1009//1009 1010//1010 1020//1020 +f 1022//1022 1023//1023 831//831 822//822 +f 1019//1019 1024//1024 1023//1023 1022//1022 +f 1023//1023 1025//1025 833//833 831//831 +f 1024//1024 1026//1026 1025//1025 1023//1023 +f 1018//1018 1027//1027 1028//1028 1015//1015 +f 1027//1027 1029//1029 1030//1030 1028//1028 +f 1015//1015 1028//1028 1024//1024 1019//1019 +f 1028//1028 1030//1030 1026//1026 1024//1024 +f 1031//1031 1032//1032 1033//1033 1034//1034 +f 1035//1035 1036//1036 1032//1032 1031//1031 +f 1032//1032 1030//1030 1029//1029 1033//1033 +f 1036//1036 1026//1026 1030//1030 1032//1032 +f 838//838 837//837 1037//1037 1038//1038 +f 837//837 833//833 1025//1025 1037//1037 +f 1038//1038 1037//1037 1036//1036 1035//1035 +f 1037//1037 1025//1025 1026//1026 1036//1036 +f 1038//1038 1039//1039 847//847 838//838 +f 1035//1035 1040//1040 1039//1039 1038//1038 +f 1039//1039 1041//1041 849//849 847//847 +f 1040//1040 1042//1042 1041//1041 1039//1039 +f 1034//1034 1043//1043 1044//1044 1031//1031 +f 1043//1043 1045//1045 1046//1046 1044//1044 +f 1031//1031 1044//1044 1040//1040 1035//1035 +f 1044//1044 1046//1046 1042//1042 1040//1040 +f 1047//1047 1048//1048 1049//1049 1050//1050 +f 1051//1051 1052//1052 1048//1048 1047//1047 +f 1048//1048 1046//1046 1045//1045 1049//1049 +f 1052//1052 1042//1042 1046//1046 1048//1048 +f 854//854 853//853 1053//1053 1054//1054 +f 853//853 849//849 1041//1041 1053//1053 +f 1054//1054 1053//1053 1052//1052 1051//1051 +f 1053//1053 1041//1041 1042//1042 1052//1052 +f 52//52 1055//1055 1056//1056 48//48 +f 55//55 1057//1057 1055//1055 52//52 +f 1055//1055 1058//1058 1059//1059 1056//1056 +f 1057//1057 1060//1060 1058//1058 1055//1055 +f 68//68 1061//1061 1062//1062 69//69 +f 1061//1061 1063//1063 1064//1064 1062//1062 +f 69//69 1062//1062 1057//1057 55//55 +f 1062//1062 1064//1064 1060//1060 1057//1057 +f 1065//1065 1066//1066 1067//1067 1068//1068 +f 1069//1069 1070//1070 1066//1066 1065//1065 +f 1066//1066 1064//1064 1063//1063 1067//1067 +f 1070//1070 1060//1060 1064//1064 1066//1066 +f 16//16 1071//1071 1072//1072 1073//1073 +f 1071//1071 1059//1059 1058//1058 1072//1072 +f 1073//1073 1072//1072 1070//1070 1069//1069 +f 1072//1072 1058//1058 1060//1060 1070//1070 +f 72//72 1074//1074 1061//1061 68//68 +f 75//75 1075//1075 1074//1074 72//72 +f 1074//1074 1076//1076 1063//1063 1061//1061 +f 1075//1075 1077//1077 1076//1076 1074//1074 +f 88//88 1078//1078 1079//1079 89//89 +f 1078//1078 1080//1080 1081//1081 1079//1079 +f 89//89 1079//1079 1075//1075 75//75 +f 1079//1079 1081//1081 1077//1077 1075//1075 +f 1082//1082 1083//1083 1084//1084 1085//1085 +f 1086//1086 1087//1087 1083//1083 1082//1082 +f 1083//1083 1081//1081 1080//1080 1084//1084 +f 1087//1087 1077//1077 1081//1081 1083//1083 +f 1068//1068 1067//1067 1088//1088 1089//1089 +f 1067//1067 1063//1063 1076//1076 1088//1088 +f 1089//1089 1088//1088 1087//1087 1086//1086 +f 1088//1088 1076//1076 1077//1077 1087//1087 +f 92//92 1090//1090 1078//1078 88//88 +f 95//95 1091//1091 1090//1090 92//92 +f 1090//1090 1092//1092 1080//1080 1078//1078 +f 1091//1091 1093//1093 1092//1092 1090//1090 +f 108//108 107//107 112//112 1094//1094 +f 1094//1094 112//112 115//115 1095//1095 +f 95//95 108//108 1094//1094 1091//1091 +f 1091//1091 1094//1094 1095//1095 1093//1093 +f 1096//1096 1097//1097 128//128 127//127 +f 1098//1098 1099//1099 1097//1097 1096//1096 +f 1097//1097 1095//1095 115//115 128//128 +f 1099//1099 1093//1093 1095//1095 1097//1097 +f 1085//1085 1084//1084 1100//1100 1101//1101 +f 1084//1084 1080//1080 1092//1092 1100//1100 +f 1101//1101 1100//1100 1099//1099 1098//1098 +f 1100//1100 1092//1092 1093//1093 1099//1099 +f 152//152 1102//1102 1103//1103 147//147 +f 155//155 1104//1104 1102//1102 152//152 +f 1102//1102 1105//1105 1106//1106 1103//1103 +f 1104//1104 1107//1107 1105//1105 1102//1102 +f 168//168 1108//1108 1109//1109 169//169 +f 1108//1108 1110//1110 1111//1111 1109//1109 +f 169//169 1109//1109 1104//1104 155//155 +f 1109//1109 1111//1111 1107//1107 1104//1104 +f 1112//1112 1113//1113 1114//1114 1115//1115 +f 1116//1116 1117//1117 1113//1113 1112//1112 +f 1113//1113 1111//1111 1110//1110 1114//1114 +f 1117//1117 1107//1107 1111//1111 1113//1113 +f 1118//1118 1119//1119 1120//1120 1121//1121 +f 1119//1119 1106//1106 1105//1105 1120//1120 +f 1121//1121 1120//1120 1117//1117 1116//1116 +f 1120//1120 1105//1105 1107//1107 1117//1117 +f 1121//1121 1122//1122 1123//1123 1118//1118 +f 1116//1116 1124//1124 1122//1122 1121//1121 +f 1122//1122 1125//1125 1126//1126 1123//1123 +f 1124//1124 1127//1127 1125//1125 1122//1122 +f 1115//1115 1128//1128 1129//1129 1112//1112 +f 1128//1128 1130//1130 1131//1131 1129//1129 +f 1112//1112 1129//1129 1124//1124 1116//1116 +f 1129//1129 1131//1131 1127//1127 1124//1124 +f 1132//1132 1133//1133 1134//1134 1135//1135 +f 1136//1136 1137//1137 1133//1133 1132//1132 +f 1133//1133 1131//1131 1130//1130 1134//1134 +f 1137//1137 1127//1127 1131//1131 1133//1133 +f 1138//1138 1139//1139 1140//1140 1141//1141 +f 1139//1139 1126//1126 1125//1125 1140//1140 +f 1141//1141 1140//1140 1137//1137 1136//1136 +f 1140//1140 1125//1125 1127//1127 1137//1137 +f 1141//1141 1142//1142 1143//1143 1138//1138 +f 1136//1136 1144//1144 1142//1142 1141//1141 +f 1142//1142 1145//1145 1146//1146 1143//1143 +f 1144//1144 1147//1147 1145//1145 1142//1142 +f 1135//1135 1148//1148 1149//1149 1132//1132 +f 1148//1148 1150//1150 1151//1151 1149//1149 +f 1132//1132 1149//1149 1144//1144 1136//1136 +f 1149//1149 1151//1151 1147//1147 1144//1144 +f 1152//1152 1153//1153 1154//1154 1155//1155 +f 1156//1156 1157//1157 1153//1153 1152//1152 +f 1153//1153 1151//1151 1150//1150 1154//1154 +f 1157//1157 1147//1147 1151//1151 1153//1153 +f 23//23 1158//1158 1159//1159 1160//1160 +f 1158//1158 1146//1146 1145//1145 1159//1159 +f 1160//1160 1159//1159 1157//1157 1156//1156 +f 1159//1159 1145//1145 1147//1147 1157//1157 +f 1160//1160 1161//1161 24//24 23//23 +f 1156//1156 1162//1162 1161//1161 1160//1160 +f 1161//1161 1163//1163 8//7 24//24 +f 1162//1162 1164//1164 1163//1163 1161//1161 +f 1155//1155 1165//1165 1166//1166 1152//1152 +f 1165//1165 1167//1167 1168//1168 1166//1166 +f 1152//1152 1166//1166 1162//1162 1156//1156 +f 1166//1166 1168//1168 1164//1164 1162//1162 +f 1169//1169 1170//1170 1171//1171 1172//1172 +f 1173//1173 1174//1174 1170//1170 1169//1169 +f 1170//1170 1168//1168 1167//1167 1171//1171 +f 1174//1174 1164//1164 1168//1168 1170//1170 +f 4//1175 3//8 1175//1176 1176//1177 +f 3//8 8//7 1163//1163 1175//1176 +f 1176//1177 1175//1176 1174//1174 1173//1173 +f 1175//1176 1163//1163 1164//1164 1174//1174 +f 11//11 1177//1178 1178//1179 12//12 +f 1177//1178 1179//1180 1180//1181 1178//1179 +f 12//12 1178//1179 1181//1182 14//14 +f 1178//1179 1180//1181 1182//1183 1181//1182 +f 1183//1184 29//29 28//28 1184//1185 +f 1184//1185 28//28 33//33 1185//1186 +f 1179//1180 1183//1184 1184//1185 1180//1181 +f 1180//1181 1184//1185 1185//1186 1182//1183 +f 48//48 1056//1056 1186//1187 49//49 +f 1056//1056 1059//1059 1187//1188 1186//1187 +f 49//49 1186//1187 1185//1186 33//33 +f 1186//1187 1187//1188 1182//1183 1185//1186 +f 1071//1071 16//16 19//19 1188//1189 +f 1188//1189 19//19 14//14 1181//1182 +f 1059//1059 1071//1071 1188//1189 1187//1188 +f 1187//1188 1188//1189 1181//1182 1182//1183 +f 1068//1068 1189//1190 1190//1191 1065//1065 +f 1189//1190 1191//1192 1192//1193 1190//1191 +f 1065//1065 1190//1191 1193//1194 1069//1069 +f 1190//1191 1192//1193 1194//1195 1193//1194 +f 1195//1196 1138//1138 1143//1143 1196//1197 +f 1196//1197 1143//1143 1146//1146 1197//1198 +f 1191//1192 1195//1196 1196//1197 1192//1193 +f 1192//1193 1196//1197 1197//1198 1194//1195 +f 23//23 22//22 1198//1199 1158//1158 +f 22//22 20//20 1199//1200 1198//1199 +f 1158//1158 1198//1199 1197//1198 1146//1146 +f 1198//1199 1199//1200 1194//1195 1197//1198 +f 17//17 16//16 1073//1073 1200//1201 +f 1200//1201 1073//1073 1069//1069 1193//1194 +f 20//20 17//17 1200//1201 1199//1200 +f 1199//1200 1200//1201 1193//1194 1194//1195 +f 1085//1085 1201//1202 1202//1203 1082//1082 +f 1201//1202 1203//1204 1204//1205 1202//1203 +f 1082//1082 1202//1203 1205//1206 1086//1086 +f 1202//1203 1204//1205 1206//1207 1205//1206 +f 1207//1208 1118//1118 1123//1123 1208//1209 +f 1208//1209 1123//1123 1126//1126 1209//1210 +f 1203//1204 1207//1208 1208//1209 1204//1205 +f 1204//1205 1208//1209 1209//1210 1206//1207 +f 1138//1138 1195//1196 1210//1211 1139//1139 +f 1195//1196 1191//1192 1211//1212 1210//1211 +f 1139//1139 1210//1211 1209//1210 1126//1126 +f 1210//1211 1211//1212 1206//1207 1209//1210 +f 1189//1190 1068//1068 1089//1089 1212//1213 +f 1212//1213 1089//1089 1086//1086 1205//1206 +f 1191//1192 1189//1190 1212//1213 1211//1212 +f 1211//1212 1212//1213 1205//1206 1206//1207 +f 1213//1214 1214//1215 1128//1128 1115//1115 +f 1215//1216 1216//1217 1214//1215 1213//1214 +f 1214//1215 1217//1218 1130//1130 1128//1128 +f 1216//1217 1218//1219 1217//1218 1214//1215 +f 207//207 212//212 1219//1220 1220//1221 +f 212//212 215//215 1221//1222 1219//1220 +f 1220//1221 1219//1220 1216//1217 1215//1216 +f 1219//1220 1221//1222 1218//1219 1216//1217 +f 1222//1223 1223//1224 228//228 227//227 +f 1224//1225 1225//1226 1223//1224 1222//1223 +f 1223//1224 1221//1222 215//215 228//228 +f 1225//1226 1218//1219 1221//1222 1223//1224 +f 1135//1135 1134//1134 1226//1227 1227//1228 +f 1134//1134 1130//1130 1217//1218 1226//1227 +f 1227//1228 1226//1227 1225//1226 1224//1225 +f 1226//1227 1217//1218 1218//1219 1225//1226 +f 1227//1228 1228//1229 1148//1148 1135//1135 +f 1224//1225 1229//1230 1228//1229 1227//1228 +f 1228//1229 1230//1231 1150//1150 1148//1148 +f 1229//1230 1231//1232 1230//1231 1228//1229 +f 227//227 232//232 1232//1233 1222//1223 +f 232//232 235//235 1233//1234 1232//1233 +f 1222//1223 1232//1233 1229//1230 1224//1225 +f 1232//1233 1233//1234 1231//1232 1229//1230 +f 1234//1235 1235//1236 248//248 247//247 +f 1236//1237 1237//1238 1235//1236 1234//1235 +f 1235//1236 1233//1234 235//235 248//248 +f 1237//1238 1231//1232 1233//1234 1235//1236 +f 1155//1155 1154//1154 1238//1239 1239//1240 +f 1154//1154 1150//1150 1230//1231 1238//1239 +f 1239//1240 1238//1239 1237//1238 1236//1237 +f 1238//1239 1230//1231 1231//1232 1237//1238 +f 1239//1240 1240//1241 1165//1165 1155//1155 +f 1236//1237 1241//1242 1240//1241 1239//1240 +f 1240//1241 1242//1243 1167//1167 1165//1165 +f 1241//1242 1243//1244 1242//1243 1240//1241 +f 247//247 252//252 1244//1245 1234//1235 +f 252//252 255//255 1245//1246 1244//1245 +f 1234//1235 1244//1245 1241//1242 1236//1237 +f 1244//1245 1245//1246 1243//1244 1241//1242 +f 1246//1247 1247//1248 268//268 267//267 +f 1248//1249 1249//1250 1247//1248 1246//1247 +f 1247//1248 1245//1246 255//255 268//268 +f 1249//1250 1243//1244 1245//1246 1247//1248 +f 1172//1172 1171//1171 1250//1251 1251//1252 +f 1171//1171 1167//1167 1242//1243 1250//1251 +f 1251//1252 1250//1251 1249//1250 1248//1249 +f 1250//1251 1242//1243 1243//1244 1249//1250 +f 127//127 132//132 1252//1253 1096//1096 +f 132//132 135//135 1253//1254 1252//1253 +f 1096//1096 1252//1253 1254//1255 1098//1098 +f 1252//1253 1253//1254 1255//1256 1254//1255 +f 148//148 147//147 1103//1103 1256//1257 +f 1256//1257 1103//1103 1106//1106 1257//1258 +f 135//135 148//148 1256//1257 1253//1254 +f 1253//1254 1256//1257 1257//1258 1255//1256 +f 1118//1118 1207//1208 1258//1259 1119//1119 +f 1207//1208 1203//1204 1259//1260 1258//1259 +f 1119//1119 1258//1259 1257//1258 1106//1106 +f 1258//1259 1259//1260 1255//1256 1257//1258 +f 1201//1202 1085//1085 1101//1101 1260//1261 +f 1260//1261 1101//1101 1098//1098 1254//1255 +f 1203//1204 1201//1202 1260//1261 1259//1260 +f 1259//1260 1260//1261 1254//1255 1255//1256 +f 172//172 1261//1262 1108//1108 168//168 +f 175//175 1262//1263 1261//1262 172//172 +f 1261//1262 1263//1264 1110//1110 1108//1108 +f 1262//1263 1264//1265 1263//1264 1261//1262 +f 188//188 187//187 192//192 1265//1266 +f 1265//1266 192//192 195//195 1266//1267 +f 175//175 188//188 1265//1266 1262//1263 +f 1262//1263 1265//1266 1266//1267 1264//1265 +f 1220//1221 1267//1268 208//208 207//207 +f 1215//1216 1268//1269 1267//1268 1220//1221 +f 1267//1268 1266//1267 195//195 208//208 +f 1268//1269 1264//1265 1266//1267 1267//1268 +f 1115//1115 1114//1114 1269//1270 1213//1214 +f 1114//1114 1110//1110 1263//1264 1269//1270 +f 1213//1214 1269//1270 1268//1269 1215//1216 +f 1269//1270 1263//1264 1264//1265 1268//1269 +f 1270//1271 1271//1272 1//5 4//1175 +f 1272//1273 1273//1274 1271//1272 1270//1271 +f 1271//1272 1274//1275 5//2 1//5 +f 1271//1272 1273//1274 1275//1276 1274//1275 +f 1276//1277 1277//1278 1278//1279 1279//1280 +f 1279//1280 1278//1279 1280//1281 1281//1282 +f 1272//1273 1276//1277 1279//1280 1273//1274 +f 1273//1274 1279//1280 1281//1282 1275//1276 +f 1282//1283 1283//1284 1284//1285 1285//1286 +f 1283//1284 1286//1287 1287//1288 1284//1285 +f 1285//1286 1284//1285 1281//1282 1280//1281 +f 1284//1285 1287//1288 1275//1276 1281//1282 +f 1288//1289 11//11 10//10 1289//1290 +f 1289//1290 10//10 5//2 1274//1275 +f 1286//1287 1288//1289 1289//1290 1287//1288 +f 1287//1288 1289//1290 1274//1275 1275//1276 +f 1290//1291 1291//1292 26//26 29//29 +f 1290//1291 1292//1293 1293//1294 1291//1292 +f 1291//1292 1294//1295 30//30 26//26 +f 1293//1294 1295//1296 1294//1295 1291//1292 +f 1296//1297 1297//1298 1298//1299 1299//1300 +f 1299//1300 1298//1299 1300//1301 1301//1302 +f 1292//1293 1296//1297 1299//1300 1293//1294 +f 1293//1294 1299//1300 1301//1302 1295//1296 +f 1302//1303 1303//1304 1304//1305 1305//1306 +f 1306//1307 1307//1308 1303//1304 1302//1303 +f 1303//1304 1301//1302 1300//1301 1304//1305 +f 1307//1308 1295//1296 1301//1302 1303//1304 +f 35//35 38//38 1308//1309 1309//1310 +f 38//38 30//30 1294//1295 1308//1309 +f 1309//1310 1308//1309 1307//1308 1306//1307 +f 1308//1309 1294//1295 1295//1296 1307//1308 +f 1297//1298 1310//1311 1311//1312 1298//1299 +f 1310//1311 1312//1313 1313//1314 1311//1312 +f 1298//1299 1311//1312 1314//1315 1300//1301 +f 1311//1312 1313//1314 1315//1316 1314//1315 +f 1316//1317 1317//1318 1318//1319 1319//1320 +f 1319//1320 1318//1319 1320//1321 1321//1322 +f 1312//1313 1316//1317 1319//1320 1313//1314 +f 1313//1314 1319//1320 1321//1322 1315//1316 +f 1322//1323 1323//1324 1324//1325 1325//1326 +f 1326//1327 1327//1328 1323//1324 1322//1323 +f 1324//1325 1323//1324 1321//1322 1320//1321 +f 1323//1324 1327//1328 1315//1316 1321//1322 +f 1305//1306 1304//1305 1328//1329 1329//1330 +f 1304//1305 1300//1301 1314//1315 1328//1329 +f 1329//1330 1328//1329 1327//1328 1326//1327 +f 1327//1328 1328//1329 1314//1315 1315//1316 +f 1317//1318 1330//1331 1331//1332 1318//1319 +f 1330//1331 1332//1333 1333//1334 1331//1332 +f 1318//1319 1331//1332 1334//1335 1320//1321 +f 1331//1332 1333//1334 1335//1336 1334//1335 +f 1336//1337 1337//1338 1338//1339 1339//1340 +f 1339//1340 1338//1339 1340//1341 1341//1342 +f 1332//1333 1336//1337 1339//1340 1333//1334 +f 1333//1334 1339//1340 1341//1342 1335//1336 +f 1342//1343 1343//1344 1344//1345 1345//1346 +f 1346//1347 1347//1348 1343//1344 1342//1343 +f 1344//1345 1343//1344 1341//1342 1340//1341 +f 1343//1344 1347//1348 1335//1336 1341//1342 +f 1325//1326 1324//1325 1348//1349 1349//1350 +f 1348//1349 1324//1325 1320//1321 1334//1335 +f 1349//1350 1348//1349 1347//1348 1346//1347 +f 1347//1348 1348//1349 1334//1335 1335//1336 +f 1337//1338 1350//1351 1351//1352 1338//1339 +f 1352//1353 1353//1354 1351//1352 1350//1351 +f 1338//1339 1351//1352 1354//1355 1340//1341 +f 1353//1354 1355//1356 1354//1355 1351//1352 +f 1356//1357 1357//1358 1358//1359 1359//1360 +f 1357//1358 1360//1361 1361//1362 1358//1359 +f 1359//1360 1358//1359 1353//1354 1352//1353 +f 1358//1359 1361//1362 1355//1356 1353//1354 +f 1362//1363 1363//1364 1364//1365 1365//1366 +f 1366//1367 1367//1368 1363//1364 1362//1363 +f 1363//1364 1361//1362 1360//1361 1364//1365 +f 1367//1368 1355//1356 1361//1362 1363//1364 +f 1345//1346 1344//1345 1368//1369 1369//1370 +f 1368//1369 1344//1345 1340//1341 1354//1355 +f 1369//1370 1368//1369 1367//1368 1366//1367 +f 1368//1369 1354//1355 1355//1356 1367//1368 +f 1356//1357 1370//1371 1371//1372 1357//1358 +f 1370//1371 1372//1373 1373//1374 1371//1372 +f 1357//1358 1371//1372 1374//1375 1360//1361 +f 1371//1372 1373//1374 1375//1376 1374//1375 +f 1376//1377 1377//1378 1378//1379 1379//1380 +f 1377//1378 1380//1381 1381//1382 1378//1379 +f 1372//1373 1379//1380 1378//1379 1373//1374 +f 1373//1374 1378//1379 1381//1382 1375//1376 +f 1382//1383 1383//1384 1384//1385 1385//1386 +f 1386//1387 1387//1388 1383//1384 1382//1383 +f 1383//1384 1381//1382 1380//1381 1384//1385 +f 1387//1388 1375//1376 1381//1382 1383//1384 +f 1365//1366 1364//1365 1388//1389 1389//1390 +f 1388//1389 1364//1365 1360//1361 1374//1375 +f 1389//1390 1388//1389 1387//1388 1386//1387 +f 1387//1388 1388//1389 1374//1375 1375//1376 +f 1390//1391 1391//1392 1377//1378 1376//1377 +f 1392//1393 1393//1394 1391//1392 1390//1391 +f 1391//1392 1394//1395 1380//1381 1377//1378 +f 1393//1394 1395//1396 1394//1395 1391//1392 +f 1396//1397 1397//1398 1398//1399 1399//1400 +f 1397//1398 1400//1401 1401//1402 1398//1399 +f 1399//1400 1398//1399 1393//1394 1392//1393 +f 1398//1399 1401//1402 1395//1396 1393//1394 +f 1402//1403 1403//1404 1404//1405 1405//1406 +f 1406//1407 1407//1408 1403//1404 1402//1403 +f 1403//1404 1401//1402 1400//1401 1404//1405 +f 1407//1408 1395//1396 1401//1402 1403//1404 +f 1385//1386 1384//1385 1408//1409 1409//1410 +f 1384//1385 1380//1381 1394//1395 1408//1409 +f 1409//1410 1408//1409 1407//1408 1406//1407 +f 1408//1409 1394//1395 1395//1396 1407//1408 +f 1396//1397 1410//1411 1411//1412 1397//1398 +f 1410//1411 1412//1413 1413//1414 1411//1412 +f 1411//1412 1414//1415 1400//1401 1397//1398 +f 1411//1412 1413//1414 1415//1416 1414//1415 +f 1416//1417 1417//1418 1418//1419 1419//1420 +f 1419//1420 1418//1419 1420//1421 1421//1422 +f 1412//1413 1416//1417 1419//1420 1413//1414 +f 1413//1414 1419//1420 1421//1422 1415//1416 +f 1422//1423 1423//1424 1424//1425 1425//1426 +f 1426//1427 1427//1428 1423//1424 1422//1423 +f 1424//1425 1423//1424 1421//1422 1420//1421 +f 1427//1428 1415//1416 1421//1422 1423//1424 +f 1405//1406 1404//1405 1428//1429 1429//1430 +f 1404//1405 1400//1401 1414//1415 1428//1429 +f 1429//1430 1428//1429 1427//1428 1426//1427 +f 1428//1429 1414//1415 1415//1416 1427//1428 +f 1417//1418 1430//1431 1431//1432 1418//1419 +f 1432//1433 1433//1434 1431//1432 1430//1431 +f 1418//1419 1431//1432 1434//1435 1420//1421 +f 1433//1434 1435//1436 1434//1435 1431//1432 +f 1436//1437 1437//1438 1438//1439 1439//1440 +f 1437//1438 1440//1441 1441//1442 1438//1439 +f 1439//1440 1438//1439 1433//1434 1432//1433 +f 1438//1439 1441//1442 1435//1436 1433//1434 +f 1442//1443 1443//1444 1444//1445 1445//1446 +f 1446//1447 1447//1448 1443//1444 1442//1443 +f 1443//1444 1441//1442 1440//1441 1444//1445 +f 1447//1448 1435//1436 1441//1442 1443//1444 +f 1425//1426 1424//1425 1448//1449 1449//1450 +f 1448//1449 1424//1425 1420//1421 1434//1435 +f 1449//1450 1448//1449 1447//1448 1446//1447 +f 1448//1449 1434//1435 1435//1436 1447//1448 +f 1436//1437 1450//1451 1451//1452 1437//1438 +f 1450//1451 1452//1453 1453//1454 1451//1452 +f 1437//1438 1451//1452 1454//1455 1440//1441 +f 1451//1452 1453//1454 1455//1456 1454//1455 +f 1456//1457 1457//1458 1458//1459 1459//1460 +f 1457//1458 1460//1461 1461//1462 1458//1459 +f 1452//1453 1459//1460 1458//1459 1453//1454 +f 1458//1459 1461//1462 1455//1456 1453//1454 +f 1462//1463 1463//1464 1464//1465 1465//1466 +f 1466//1467 1467//1468 1463//1464 1462//1463 +f 1463//1464 1461//1462 1460//1461 1464//1465 +f 1467//1468 1455//1456 1461//1462 1463//1464 +f 1445//1446 1444//1445 1468//1469 1469//1470 +f 1468//1469 1444//1445 1440//1441 1454//1455 +f 1469//1470 1468//1469 1467//1468 1466//1467 +f 1467//1468 1468//1469 1454//1455 1455//1456 +f 1470//1471 1471//1472 1457//1458 1456//1457 +f 1472//1473 1473//1474 1471//1472 1470//1471 +f 1471//1472 1474//1475 1460//1461 1457//1458 +f 1473//1474 1475//1476 1474//1475 1471//1472 +f 1476//1477 1477//1478 1478//1479 1479//1480 +f 1477//1478 1480//1481 1481//1482 1478//1479 +f 1479//1480 1478//1479 1473//1474 1472//1473 +f 1478//1479 1481//1482 1475//1476 1473//1474 +f 1482//1483 1483//1484 1484//1485 1485//1486 +f 1486//1487 1487//1488 1483//1484 1482//1483 +f 1483//1484 1481//1482 1480//1481 1484//1485 +f 1487//1488 1475//1476 1481//1482 1483//1484 +f 1465//1466 1464//1465 1488//1489 1489//1490 +f 1464//1465 1460//1461 1474//1475 1488//1489 +f 1489//1490 1488//1489 1487//1488 1486//1487 +f 1488//1489 1474//1475 1475//1476 1487//1488 +f 1490//1491 1491//1492 1477//1478 1476//1477 +f 1492//1493 1493//1494 1491//1492 1490//1491 +f 1491//1492 1494//1495 1480//1481 1477//1478 +f 1493//1494 1495//1496 1494//1495 1491//1492 +f 1496//1497 1497//1498 1498//1499 1499//1500 +f 1497//1498 1500//1501 1501//1502 1498//1499 +f 1499//1500 1498//1499 1493//1494 1492//1493 +f 1498//1499 1501//1502 1495//1496 1493//1494 +f 1502//1503 1503//1504 1504//1505 1505//1506 +f 1506//1507 1507//1508 1503//1504 1502//1503 +f 1503//1504 1501//1502 1500//1501 1504//1505 +f 1507//1508 1495//1496 1501//1502 1503//1504 +f 1485//1486 1484//1485 1508//1509 1509//1510 +f 1484//1485 1480//1481 1494//1495 1508//1509 +f 1509//1510 1508//1509 1507//1508 1506//1507 +f 1508//1509 1494//1495 1495//1496 1507//1508 +f 1510//1511 1511//1512 1497//1498 1496//1497 +f 1512//1513 1513//1514 1511//1512 1510//1511 +f 1511//1512 1514//1515 1500//1501 1497//1498 +f 1513//1514 1515//1516 1514//1515 1511//1512 +f 267//267 270//270 1516//1517 1517//1518 +f 270//270 265//265 1518//1519 1516//1517 +f 1517//1518 1516//1517 1513//1514 1512//1513 +f 1516//1517 1518//1519 1515//1516 1513//1514 +f 1519//1520 1520//1521 261//261 264//264 +f 1521//1522 1522//1523 1520//1521 1519//1520 +f 1520//1521 1518//1519 265//265 261//261 +f 1522//1523 1515//1516 1518//1519 1520//1521 +f 1505//1506 1504//1505 1523//1524 1524//1525 +f 1504//1505 1500//1501 1514//1515 1523//1524 +f 1524//1525 1523//1524 1522//1523 1521//1522 +f 1523//1524 1514//1515 1515//1516 1522//1523 +f 1309//1310 1525//1526 271//271 35//35 +f 1306//1307 1526//1527 1525//1526 1309//1310 +f 1525//1526 1527//1528 273//273 271//271 +f 1526//1527 1528//1529 1527//1528 1525//1526 +f 1305//1306 1529//1530 1530//1531 1302//1303 +f 1529//1530 1531//1532 1532//1533 1530//1531 +f 1302//1303 1530//1531 1526//1527 1306//1307 +f 1530//1531 1532//1533 1528//1529 1526//1527 +f 1533//1534 1534//1535 1535//1536 1536//1537 +f 1537//1538 1538//1539 1534//1535 1533//1534 +f 1534//1535 1532//1533 1531//1532 1535//1536 +f 1538//1539 1528//1529 1532//1533 1534//1535 +f 277//277 280//280 1539//1540 1540//1541 +f 280//280 273//273 1527//1528 1539//1540 +f 1540//1541 1539//1540 1538//1539 1537//1538 +f 1539//1540 1527//1528 1528//1529 1538//1539 +f 1329//1330 1541//1542 1529//1530 1305//1306 +f 1326//1327 1542//1543 1541//1542 1329//1330 +f 1541//1542 1543//1544 1531//1532 1529//1530 +f 1542//1543 1544//1545 1543//1544 1541//1542 +f 1325//1326 1545//1546 1546//1547 1322//1323 +f 1545//1546 1547//1548 1548//1549 1546//1547 +f 1322//1323 1546//1547 1542//1543 1326//1327 +f 1546//1547 1548//1549 1544//1545 1542//1543 +f 1549//1550 1550//1551 1551//1552 1552//1553 +f 1553//1554 1554//1555 1550//1551 1549//1550 +f 1550//1551 1548//1549 1547//1548 1551//1552 +f 1554//1555 1544//1545 1548//1549 1550//1551 +f 1536//1537 1535//1536 1555//1556 1556//1557 +f 1535//1536 1531//1532 1543//1544 1555//1556 +f 1556//1557 1555//1556 1554//1555 1553//1554 +f 1555//1556 1543//1544 1544//1545 1554//1555 +f 1349//1350 1557//1558 1545//1546 1325//1326 +f 1346//1347 1558//1559 1557//1558 1349//1350 +f 1557//1558 1559//1560 1547//1548 1545//1546 +f 1558//1559 1560//1561 1559//1560 1557//1558 +f 1345//1346 1561//1562 1562//1563 1342//1343 +f 1561//1562 1563//1564 1564//1565 1562//1563 +f 1342//1343 1562//1563 1558//1559 1346//1347 +f 1562//1563 1564//1565 1560//1561 1558//1559 +f 1565//1566 1566//1567 1567//1568 1568//1569 +f 1569//1570 1570//1571 1566//1567 1565//1566 +f 1566//1567 1564//1565 1563//1564 1567//1568 +f 1570//1571 1560//1561 1564//1565 1566//1567 +f 1552//1553 1551//1552 1571//1572 1572//1573 +f 1551//1552 1547//1548 1559//1560 1571//1572 +f 1572//1573 1571//1572 1570//1571 1569//1570 +f 1571//1572 1559//1560 1560//1561 1570//1571 +f 1369//1370 1573//1574 1561//1562 1345//1346 +f 1366//1367 1574//1575 1573//1574 1369//1370 +f 1573//1574 1575//1576 1563//1564 1561//1562 +f 1574//1575 1576//1577 1575//1576 1573//1574 +f 1365//1366 1577//1578 1578//1579 1362//1363 +f 1577//1578 1579//1580 1580//1581 1578//1579 +f 1362//1363 1578//1579 1574//1575 1366//1367 +f 1578//1579 1580//1581 1576//1577 1574//1575 +f 1581//1582 1582//1583 1583//1584 1584//1585 +f 1585//1586 1586//1587 1582//1583 1581//1582 +f 1582//1583 1580//1581 1579//1580 1583//1584 +f 1586//1587 1576//1577 1580//1581 1582//1583 +f 1568//1569 1567//1568 1587//1588 1588//1589 +f 1567//1568 1563//1564 1575//1576 1587//1588 +f 1588//1589 1587//1588 1586//1587 1585//1586 +f 1587//1588 1575//1576 1576//1577 1586//1587 +f 1389//1390 1589//1590 1577//1578 1365//1366 +f 1386//1387 1590//1591 1589//1590 1389//1390 +f 1589//1590 1591//1592 1579//1580 1577//1578 +f 1590//1591 1592//1593 1591//1592 1589//1590 +f 1385//1386 1593//1594 1594//1595 1382//1383 +f 1593//1594 1595//1596 1596//1597 1594//1595 +f 1382//1383 1594//1595 1590//1591 1386//1387 +f 1594//1595 1596//1597 1592//1593 1590//1591 +f 1597//1598 1598//1599 1599//1600 1600//1601 +f 1601//1602 1602//1603 1598//1599 1597//1598 +f 1598//1599 1596//1597 1595//1596 1599//1600 +f 1602//1603 1592//1593 1596//1597 1598//1599 +f 1584//1585 1583//1584 1603//1604 1604//1605 +f 1583//1584 1579//1580 1591//1592 1603//1604 +f 1604//1605 1603//1604 1602//1603 1601//1602 +f 1603//1604 1591//1592 1592//1593 1602//1603 +f 1409//1410 1605//1606 1593//1594 1385//1386 +f 1406//1407 1606//1607 1605//1606 1409//1410 +f 1605//1606 1607//1608 1595//1596 1593//1594 +f 1606//1607 1608//1609 1607//1608 1605//1606 +f 1405//1406 1609//1610 1610//1611 1402//1403 +f 1609//1610 1611//1612 1612//1613 1610//1611 +f 1402//1403 1610//1611 1606//1607 1406//1407 +f 1610//1611 1612//1613 1608//1609 1606//1607 +f 1613//1614 1614//1615 1615//1616 1616//1617 +f 1617//1618 1618//1619 1614//1615 1613//1614 +f 1614//1615 1612//1613 1611//1612 1615//1616 +f 1618//1619 1608//1609 1612//1613 1614//1615 +f 1600//1601 1599//1600 1619//1620 1620//1621 +f 1599//1600 1595//1596 1607//1608 1619//1620 +f 1620//1621 1619//1620 1618//1619 1617//1618 +f 1619//1620 1607//1608 1608//1609 1618//1619 +f 1429//1430 1621//1622 1609//1610 1405//1406 +f 1426//1427 1622//1623 1621//1622 1429//1430 +f 1621//1622 1623//1624 1611//1612 1609//1610 +f 1622//1623 1624//1625 1623//1624 1621//1622 +f 1425//1426 1625//1626 1626//1627 1422//1423 +f 1625//1626 1627//1628 1628//1629 1626//1627 +f 1422//1423 1626//1627 1622//1623 1426//1427 +f 1626//1627 1628//1629 1624//1625 1622//1623 +f 1629//1630 1630//1631 1631//1632 1632//1633 +f 1633//1634 1634//1635 1630//1631 1629//1630 +f 1630//1631 1628//1629 1627//1628 1631//1632 +f 1634//1635 1624//1625 1628//1629 1630//1631 +f 1616//1617 1615//1616 1635//1636 1636//1637 +f 1615//1616 1611//1612 1623//1624 1635//1636 +f 1636//1637 1635//1636 1634//1635 1633//1634 +f 1635//1636 1623//1624 1624//1625 1634//1635 +f 1449//1450 1637//1638 1625//1626 1425//1426 +f 1446//1447 1638//1639 1637//1638 1449//1450 +f 1637//1638 1639//1640 1627//1628 1625//1626 +f 1638//1639 1640//1641 1639//1640 1637//1638 +f 1445//1446 1641//1642 1642//1643 1442//1443 +f 1641//1642 1643//1644 1644//1645 1642//1643 +f 1442//1443 1642//1643 1638//1639 1446//1447 +f 1642//1643 1644//1645 1640//1641 1638//1639 +f 1645//1646 1646//1647 1647//1648 1648//1649 +f 1649//1650 1650//1651 1646//1647 1645//1646 +f 1646//1647 1644//1645 1643//1644 1647//1648 +f 1650//1651 1640//1641 1644//1645 1646//1647 +f 1632//1633 1631//1632 1651//1652 1652//1653 +f 1631//1632 1627//1628 1639//1640 1651//1652 +f 1652//1653 1651//1652 1650//1651 1649//1650 +f 1651//1652 1639//1640 1640//1641 1650//1651 +f 1469//1470 1653//1654 1641//1642 1445//1446 +f 1466//1467 1654//1655 1653//1654 1469//1470 +f 1653//1654 1655//1656 1643//1644 1641//1642 +f 1654//1655 1656//1657 1655//1656 1653//1654 +f 1465//1466 1657//1658 1658//1659 1462//1463 +f 1657//1658 1659//1660 1660//1661 1658//1659 +f 1462//1463 1658//1659 1654//1655 1466//1467 +f 1658//1659 1660//1661 1656//1657 1654//1655 +f 1661//1662 1662//1663 1663//1664 1664//1665 +f 1665//1666 1666//1667 1662//1663 1661//1662 +f 1662//1663 1660//1661 1659//1660 1663//1664 +f 1666//1667 1656//1657 1660//1661 1662//1663 +f 1648//1649 1647//1648 1667//1668 1668//1669 +f 1647//1648 1643//1644 1655//1656 1667//1668 +f 1668//1669 1667//1668 1666//1667 1665//1666 +f 1667//1668 1655//1656 1656//1657 1666//1667 +f 1489//1490 1669//1670 1657//1658 1465//1466 +f 1486//1487 1670//1671 1669//1670 1489//1490 +f 1669//1670 1671//1672 1659//1660 1657//1658 +f 1670//1671 1672//1673 1671//1672 1669//1670 +f 1485//1486 1673//1674 1674//1675 1482//1483 +f 1673//1674 1675//1676 1676//1677 1674//1675 +f 1482//1483 1674//1675 1670//1671 1486//1487 +f 1674//1675 1676//1677 1672//1673 1670//1671 +f 1677//1678 1678//1679 1679//1680 1680//1681 +f 1681//1682 1682//1683 1678//1679 1677//1678 +f 1678//1679 1676//1677 1675//1676 1679//1680 +f 1682//1683 1672//1673 1676//1677 1678//1679 +f 1664//1665 1663//1664 1683//1684 1684//1685 +f 1663//1664 1659//1660 1671//1672 1683//1684 +f 1684//1685 1683//1684 1682//1683 1681//1682 +f 1683//1684 1671//1672 1672//1673 1682//1683 +f 1509//1510 1685//1686 1673//1674 1485//1486 +f 1506//1507 1686//1687 1685//1686 1509//1510 +f 1685//1686 1687//1688 1675//1676 1673//1674 +f 1686//1687 1688//1689 1687//1688 1685//1686 +f 1505//1506 1689//1690 1690//1691 1502//1503 +f 1689//1690 1691//1692 1692//1693 1690//1691 +f 1502//1503 1690//1691 1686//1687 1506//1507 +f 1690//1691 1692//1693 1688//1689 1686//1687 +f 1693//1694 1694//1695 1695//1696 1696//1697 +f 1697//1698 1698//1699 1694//1695 1693//1694 +f 1694//1695 1692//1693 1691//1692 1695//1696 +f 1698//1699 1688//1689 1692//1693 1694//1695 +f 1680//1681 1679//1680 1699//1700 1700//1701 +f 1679//1680 1675//1676 1687//1688 1699//1700 +f 1700//1701 1699//1700 1698//1699 1697//1698 +f 1699//1700 1687//1688 1688//1689 1698//1699 +f 1524//1525 1701//1702 1689//1690 1505//1506 +f 1521//1522 1702//1703 1701//1702 1524//1525 +f 1701//1702 1703//1704 1691//1692 1689//1690 +f 1702//1703 1704//1705 1703//1704 1701//1702 +f 264//264 466//466 1705//1706 1519//1520 +f 466//466 463//463 1706//1707 1705//1706 +f 1519//1520 1705//1706 1702//1703 1521//1522 +f 1705//1706 1706//1707 1704//1705 1702//1703 +f 1707//1708 1708//1709 459//459 462//462 +f 1709//1710 1710//1711 1708//1709 1707//1708 +f 1708//1709 1706//1707 463//463 459//459 +f 1710//1711 1704//1705 1706//1707 1708//1709 +f 1696//1697 1695//1696 1711//1712 1712//1713 +f 1695//1696 1691//1692 1703//1704 1711//1712 +f 1712//1713 1711//1712 1710//1711 1709//1710 +f 1711//1712 1703//1704 1704//1705 1710//1711 +f 1540//1541 1713//1714 467//467 277//277 +f 1537//1538 1714//1715 1713//1714 1540//1541 +f 1713//1714 1715//1716 469//469 467//467 +f 1714//1715 1716//1717 1715//1716 1713//1714 +f 1536//1537 1717//1718 1718//1719 1533//1534 +f 1717//1718 1719//1720 1720//1721 1718//1719 +f 1533//1534 1718//1719 1714//1715 1537//1538 +f 1718//1719 1720//1721 1716//1717 1714//1715 +f 1721//1722 1722//1723 1723//1724 1724//1725 +f 1725//1726 1726//1727 1722//1723 1721//1722 +f 1722//1723 1720//1721 1719//1720 1723//1724 +f 1726//1727 1716//1717 1720//1721 1722//1723 +f 473//473 476//476 1727//1728 1728//1729 +f 476//476 469//469 1715//1716 1727//1728 +f 1728//1729 1727//1728 1726//1727 1725//1726 +f 1727//1728 1715//1716 1716//1717 1726//1727 +f 1556//1557 1729//1730 1717//1718 1536//1537 +f 1553//1554 1730//1731 1729//1730 1556//1557 +f 1729//1730 1731//1732 1719//1720 1717//1718 +f 1730//1731 1732//1733 1731//1732 1729//1730 +f 1552//1553 1733//1734 1734//1735 1549//1550 +f 1733//1734 1735//1736 1736//1737 1734//1735 +f 1549//1550 1734//1735 1730//1731 1553//1554 +f 1734//1735 1736//1737 1732//1733 1730//1731 +f 1737//1738 1738//1739 1739//1740 1740//1741 +f 1741//1742 1742//1743 1738//1739 1737//1738 +f 1738//1739 1736//1737 1735//1736 1739//1740 +f 1742//1743 1732//1733 1736//1737 1738//1739 +f 1724//1725 1723//1724 1743//1744 1744//1745 +f 1723//1724 1719//1720 1731//1732 1743//1744 +f 1744//1745 1743//1744 1742//1743 1741//1742 +f 1743//1744 1731//1732 1732//1733 1742//1743 +f 1572//1573 1745//1746 1733//1734 1552//1553 +f 1569//1570 1746//1747 1745//1746 1572//1573 +f 1745//1746 1747//1748 1735//1736 1733//1734 +f 1746//1747 1748//1749 1747//1748 1745//1746 +f 1568//1569 1749//1750 1750//1751 1565//1566 +f 1749//1750 1751//1752 1752//1753 1750//1751 +f 1565//1566 1750//1751 1746//1747 1569//1570 +f 1750//1751 1752//1753 1748//1749 1746//1747 +f 1753//1754 1754//1755 1755//1756 1756//1757 +f 1757//1758 1758//1759 1754//1755 1753//1754 +f 1754//1755 1752//1753 1751//1752 1755//1756 +f 1758//1759 1748//1749 1752//1753 1754//1755 +f 1740//1741 1739//1740 1759//1760 1760//1761 +f 1739//1740 1735//1736 1747//1748 1759//1760 +f 1760//1761 1759//1760 1758//1759 1757//1758 +f 1759//1760 1747//1748 1748//1749 1758//1759 +f 1588//1589 1761//1762 1749//1750 1568//1569 +f 1585//1586 1762//1763 1761//1762 1588//1589 +f 1761//1762 1763//1764 1751//1752 1749//1750 +f 1762//1763 1764//1765 1763//1764 1761//1762 +f 1584//1585 1765//1766 1766//1767 1581//1582 +f 1765//1766 1767//1768 1768//1769 1766//1767 +f 1581//1582 1766//1767 1762//1763 1585//1586 +f 1766//1767 1768//1769 1764//1765 1762//1763 +f 1769//1770 1770//1771 1771//1772 1772//1773 +f 1773//1774 1774//1775 1770//1771 1769//1770 +f 1770//1771 1768//1769 1767//1768 1771//1772 +f 1774//1775 1764//1765 1768//1769 1770//1771 +f 1756//1757 1755//1756 1775//1776 1776//1777 +f 1755//1756 1751//1752 1763//1764 1775//1776 +f 1776//1777 1775//1776 1774//1775 1773//1774 +f 1775//1776 1763//1764 1764//1765 1774//1775 +f 1604//1605 1777//1778 1765//1766 1584//1585 +f 1601//1602 1778//1779 1777//1778 1604//1605 +f 1777//1778 1779//1780 1767//1768 1765//1766 +f 1778//1779 1780//1781 1779//1780 1777//1778 +f 1600//1601 1781//1782 1782//1783 1597//1598 +f 1781//1782 1783//1784 1784//1785 1782//1783 +f 1597//1598 1782//1783 1778//1779 1601//1602 +f 1782//1783 1784//1785 1780//1781 1778//1779 +f 1785//1786 1786//1787 1787//1788 1788//1789 +f 1789//1790 1790//1791 1786//1787 1785//1786 +f 1786//1787 1784//1785 1783//1784 1787//1788 +f 1790//1791 1780//1781 1784//1785 1786//1787 +f 1772//1773 1771//1772 1791//1792 1792//1793 +f 1771//1772 1767//1768 1779//1780 1791//1792 +f 1792//1793 1791//1792 1790//1791 1789//1790 +f 1791//1792 1779//1780 1780//1781 1790//1791 +f 1620//1621 1793//1794 1781//1782 1600//1601 +f 1617//1618 1794//1795 1793//1794 1620//1621 +f 1793//1794 1795//1796 1783//1784 1781//1782 +f 1794//1795 1796//1797 1795//1796 1793//1794 +f 1616//1617 1797//1798 1798//1799 1613//1614 +f 1797//1798 1799//1800 1800//1801 1798//1799 +f 1613//1614 1798//1799 1794//1795 1617//1618 +f 1798//1799 1800//1801 1796//1797 1794//1795 +f 1801//1802 1802//1803 1803//1804 1804//1805 +f 1805//1806 1806//1807 1802//1803 1801//1802 +f 1802//1803 1800//1801 1799//1800 1803//1804 +f 1806//1807 1796//1797 1800//1801 1802//1803 +f 1788//1789 1787//1788 1807//1808 1808//1809 +f 1787//1788 1783//1784 1795//1796 1807//1808 +f 1808//1809 1807//1808 1806//1807 1805//1806 +f 1807//1808 1795//1796 1796//1797 1806//1807 +f 1636//1637 1809//1810 1797//1798 1616//1617 +f 1633//1634 1810//1811 1809//1810 1636//1637 +f 1809//1810 1811//1812 1799//1800 1797//1798 +f 1810//1811 1812//1813 1811//1812 1809//1810 +f 1632//1633 1813//1814 1814//1815 1629//1630 +f 1813//1814 1815//1816 1816//1817 1814//1815 +f 1629//1630 1814//1815 1810//1811 1633//1634 +f 1814//1815 1816//1817 1812//1813 1810//1811 +f 1817//1818 1818//1819 1819//1820 1820//1821 +f 1821//1822 1822//1823 1818//1819 1817//1818 +f 1818//1819 1816//1817 1815//1816 1819//1820 +f 1822//1823 1812//1813 1816//1817 1818//1819 +f 1804//1805 1803//1804 1823//1824 1824//1825 +f 1803//1804 1799//1800 1811//1812 1823//1824 +f 1824//1825 1823//1824 1822//1823 1821//1822 +f 1823//1824 1811//1812 1812//1813 1822//1823 +f 1652//1653 1825//1826 1813//1814 1632//1633 +f 1649//1650 1826//1827 1825//1826 1652//1653 +f 1825//1826 1827//1828 1815//1816 1813//1814 +f 1826//1827 1828//1829 1827//1828 1825//1826 +f 1648//1649 1829//1830 1830//1831 1645//1646 +f 1829//1830 1831//1832 1832//1833 1830//1831 +f 1645//1646 1830//1831 1826//1827 1649//1650 +f 1830//1831 1832//1833 1828//1829 1826//1827 +f 1833//1834 1834//1835 1835//1836 1836//1837 +f 1837//1838 1838//1839 1834//1835 1833//1834 +f 1834//1835 1832//1833 1831//1832 1835//1836 +f 1838//1839 1828//1829 1832//1833 1834//1835 +f 1820//1821 1819//1820 1839//1840 1840//1841 +f 1819//1820 1815//1816 1827//1828 1839//1840 +f 1840//1841 1839//1840 1838//1839 1837//1838 +f 1839//1840 1827//1828 1828//1829 1838//1839 +f 1668//1669 1841//1842 1829//1830 1648//1649 +f 1665//1666 1842//1843 1841//1842 1668//1669 +f 1841//1842 1843//1844 1831//1832 1829//1830 +f 1842//1843 1844//1845 1843//1844 1841//1842 +f 1664//1665 1845//1846 1846//1847 1661//1662 +f 1845//1846 1847//1848 1848//1849 1846//1847 +f 1661//1662 1846//1847 1842//1843 1665//1666 +f 1846//1847 1848//1849 1844//1845 1842//1843 +f 1849//1850 1850//1851 1851//1852 1852//1853 +f 1853//1854 1854//1855 1850//1851 1849//1850 +f 1850//1851 1848//1849 1847//1848 1851//1852 +f 1854//1855 1844//1845 1848//1849 1850//1851 +f 1836//1837 1835//1836 1855//1856 1856//1857 +f 1835//1836 1831//1832 1843//1844 1855//1856 +f 1856//1857 1855//1856 1854//1855 1853//1854 +f 1855//1856 1843//1844 1844//1845 1854//1855 +f 1684//1685 1857//1858 1845//1846 1664//1665 +f 1681//1682 1858//1859 1857//1858 1684//1685 +f 1857//1858 1859//1860 1847//1848 1845//1846 +f 1858//1859 1860//1861 1859//1860 1857//1858 +f 1680//1681 1861//1862 1862//1863 1677//1678 +f 1861//1862 1863//1864 1864//1865 1862//1863 +f 1677//1678 1862//1863 1858//1859 1681//1682 +f 1862//1863 1864//1865 1860//1861 1858//1859 +f 1865//1866 1866//1867 1867//1868 1868//1869 +f 1869//1870 1870//1871 1866//1867 1865//1866 +f 1866//1867 1864//1865 1863//1864 1867//1868 +f 1870//1871 1860//1861 1864//1865 1866//1867 +f 1852//1853 1851//1852 1871//1872 1872//1873 +f 1851//1852 1847//1848 1859//1860 1871//1872 +f 1872//1873 1871//1872 1870//1871 1869//1870 +f 1871//1872 1859//1860 1860//1861 1870//1871 +f 1700//1701 1873//1874 1861//1862 1680//1681 +f 1697//1698 1874//1875 1873//1874 1700//1701 +f 1873//1874 1875//1876 1863//1864 1861//1862 +f 1874//1875 1876//1877 1875//1876 1873//1874 +f 1696//1697 1877//1878 1878//1879 1693//1694 +f 1877//1878 1879//1880 1880//1881 1878//1879 +f 1693//1694 1878//1879 1874//1875 1697//1698 +f 1878//1879 1880//1881 1876//1877 1874//1875 +f 1881//1882 1882//1883 1883//1884 1884//1885 +f 1885//1886 1886//1887 1882//1883 1881//1882 +f 1882//1883 1880//1881 1879//1880 1883//1884 +f 1886//1887 1876//1877 1880//1881 1882//1883 +f 1868//1869 1867//1868 1887//1888 1888//1889 +f 1867//1868 1863//1864 1875//1876 1887//1888 +f 1888//1889 1887//1888 1886//1887 1885//1886 +f 1887//1888 1875//1876 1876//1877 1886//1887 +f 1712//1713 1889//1890 1877//1878 1696//1697 +f 1709//1710 1890//1891 1889//1890 1712//1713 +f 1889//1890 1891//1892 1879//1880 1877//1878 +f 1890//1891 1892//1893 1891//1892 1889//1890 +f 462//462 662//662 1893//1894 1707//1708 +f 662//662 659//659 1894//1895 1893//1894 +f 1707//1708 1893//1894 1890//1891 1709//1710 +f 1893//1894 1894//1895 1892//1893 1890//1891 +f 1895//1896 1896//1897 655//655 658//658 +f 1897//1898 1898//1899 1896//1897 1895//1896 +f 1896//1897 1894//1895 659//659 655//655 +f 1898//1899 1892//1893 1894//1895 1896//1897 +f 1884//1885 1883//1884 1899//1900 1900//1901 +f 1883//1884 1879//1880 1891//1892 1899//1900 +f 1900//1901 1899//1900 1898//1899 1897//1898 +f 1899//1900 1891//1892 1892//1893 1898//1899 +f 1728//1729 1901//1902 663//663 473//473 +f 1725//1726 1902//1903 1901//1902 1728//1729 +f 1901//1902 1903//1904 665//665 663//663 +f 1902//1903 1904//1905 1903//1904 1901//1902 +f 1724//1725 1905//1906 1906//1907 1721//1722 +f 1905//1906 1907//1908 1908//1909 1906//1907 +f 1721//1722 1906//1907 1902//1903 1725//1726 +f 1906//1907 1908//1909 1904//1905 1902//1903 +f 1909//1910 1910//1911 1911//1912 1912//1913 +f 1913//1914 1914//1915 1910//1911 1909//1910 +f 1910//1911 1908//1909 1907//1908 1911//1912 +f 1914//1915 1904//1905 1908//1909 1910//1911 +f 669//669 672//672 1915//1916 1916//1917 +f 672//672 665//665 1903//1904 1915//1916 +f 1916//1917 1915//1916 1914//1915 1913//1914 +f 1915//1916 1903//1904 1904//1905 1914//1915 +f 1744//1745 1917//1918 1905//1906 1724//1725 +f 1741//1742 1918//1919 1917//1918 1744//1745 +f 1917//1918 1919//1920 1907//1908 1905//1906 +f 1918//1919 1920//1921 1919//1920 1917//1918 +f 1740//1741 1921//1922 1922//1923 1737//1738 +f 1921//1922 1923//1924 1924//1925 1922//1923 +f 1737//1738 1922//1923 1918//1919 1741//1742 +f 1922//1923 1924//1925 1920//1921 1918//1919 +f 1925//1926 1926//1927 1927//1928 1928//1929 +f 1929//1930 1930//1931 1926//1927 1925//1926 +f 1926//1927 1924//1925 1923//1924 1927//1928 +f 1930//1931 1920//1921 1924//1925 1926//1927 +f 1912//1913 1911//1912 1931//1932 1932//1933 +f 1911//1912 1907//1908 1919//1920 1931//1932 +f 1932//1933 1931//1932 1930//1931 1929//1930 +f 1931//1932 1919//1920 1920//1921 1930//1931 +f 1760//1761 1933//1934 1921//1922 1740//1741 +f 1757//1758 1934//1935 1933//1934 1760//1761 +f 1933//1934 1935//1936 1923//1924 1921//1922 +f 1934//1935 1936//1937 1935//1936 1933//1934 +f 1756//1757 1937//1938 1938//1939 1753//1754 +f 1937//1938 1939//1940 1940//1941 1938//1939 +f 1753//1754 1938//1939 1934//1935 1757//1758 +f 1938//1939 1940//1941 1936//1937 1934//1935 +f 1941//1942 1942//1943 1943//1944 1944//1945 +f 1945//1946 1946//1947 1942//1943 1941//1942 +f 1942//1943 1940//1941 1939//1940 1943//1944 +f 1946//1947 1936//1937 1940//1941 1942//1943 +f 1928//1929 1927//1928 1947//1948 1948//1949 +f 1927//1928 1923//1924 1935//1936 1947//1948 +f 1948//1949 1947//1948 1946//1947 1945//1946 +f 1947//1948 1935//1936 1936//1937 1946//1947 +f 1776//1777 1949//1950 1937//1938 1756//1757 +f 1773//1774 1950//1951 1949//1950 1776//1777 +f 1949//1950 1951//1952 1939//1940 1937//1938 +f 1950//1951 1952//1953 1951//1952 1949//1950 +f 1772//1773 1953//1954 1954//1955 1769//1770 +f 1953//1954 1955//1956 1956//1957 1954//1955 +f 1769//1770 1954//1955 1950//1951 1773//1774 +f 1954//1955 1956//1957 1952//1953 1950//1951 +f 1957//1958 1958//1959 1959//1960 1960//1961 +f 1961//1962 1962//1963 1958//1959 1957//1958 +f 1958//1959 1956//1957 1955//1956 1959//1960 +f 1962//1963 1952//1953 1956//1957 1958//1959 +f 1944//1945 1943//1944 1963//1964 1964//1965 +f 1943//1944 1939//1940 1951//1952 1963//1964 +f 1964//1965 1963//1964 1962//1963 1961//1962 +f 1963//1964 1951//1952 1952//1953 1962//1963 +f 1792//1793 1965//1966 1953//1954 1772//1773 +f 1789//1790 1966//1967 1965//1966 1792//1793 +f 1965//1966 1967//1968 1955//1956 1953//1954 +f 1966//1967 1968//1969 1967//1968 1965//1966 +f 1788//1789 1969//1970 1970//1971 1785//1786 +f 1969//1970 1971//1972 1972//1973 1970//1971 +f 1785//1786 1970//1971 1966//1967 1789//1790 +f 1970//1971 1972//1973 1968//1969 1966//1967 +f 1973//1974 1974//1975 1975//1976 1976//1977 +f 1977//1978 1978//1979 1974//1975 1973//1974 +f 1974//1975 1972//1973 1971//1972 1975//1976 +f 1978//1979 1968//1969 1972//1973 1974//1975 +f 1960//1961 1959//1960 1979//1980 1980//1981 +f 1959//1960 1955//1956 1967//1968 1979//1980 +f 1980//1981 1979//1980 1978//1979 1977//1978 +f 1979//1980 1967//1968 1968//1969 1978//1979 +f 1808//1809 1981//1982 1969//1970 1788//1789 +f 1805//1806 1982//1983 1981//1982 1808//1809 +f 1981//1982 1983//1984 1971//1972 1969//1970 +f 1982//1983 1984//1985 1983//1984 1981//1982 +f 1804//1805 1985//1986 1986//1987 1801//1802 +f 1985//1986 1987//1988 1988//1989 1986//1987 +f 1801//1802 1986//1987 1982//1983 1805//1806 +f 1986//1987 1988//1989 1984//1985 1982//1983 +f 1989//1990 1990//1991 1991//1992 1992//1993 +f 1993//1994 1994//1995 1990//1991 1989//1990 +f 1990//1991 1988//1989 1987//1988 1991//1992 +f 1994//1995 1984//1985 1988//1989 1990//1991 +f 1976//1977 1975//1976 1995//1996 1996//1997 +f 1975//1976 1971//1972 1983//1984 1995//1996 +f 1996//1997 1995//1996 1994//1995 1993//1994 +f 1995//1996 1983//1984 1984//1985 1994//1995 +f 1824//1825 1997//1998 1985//1986 1804//1805 +f 1821//1822 1998//1999 1997//1998 1824//1825 +f 1997//1998 1999//2000 1987//1988 1985//1986 +f 1998//1999 2000//2001 1999//2000 1997//1998 +f 1820//1821 2001//2002 2002//2003 1817//1818 +f 2001//2002 2003//2004 2004//2005 2002//2003 +f 1817//1818 2002//2003 1998//1999 1821//1822 +f 2002//2003 2004//2005 2000//2001 1998//1999 +f 2005//2006 2006//2007 2007//2008 2008//2009 +f 2009//2010 2010//2011 2006//2007 2005//2006 +f 2006//2007 2004//2005 2003//2004 2007//2008 +f 2010//2011 2000//2001 2004//2005 2006//2007 +f 1992//1993 1991//1992 2011//2012 2012//2013 +f 1991//1992 1987//1988 1999//2000 2011//2012 +f 2012//2013 2011//2012 2010//2011 2009//2010 +f 2011//2012 1999//2000 2000//2001 2010//2011 +f 1840//1841 2013//2014 2001//2002 1820//1821 +f 1837//1838 2014//2015 2013//2014 1840//1841 +f 2013//2014 2015//2016 2003//2004 2001//2002 +f 2014//2015 2016//2017 2015//2016 2013//2014 +f 1836//1837 2017//2018 2018//2019 1833//1834 +f 2017//2018 2019//2020 2020//2021 2018//2019 +f 1833//1834 2018//2019 2014//2015 1837//1838 +f 2018//2019 2020//2021 2016//2017 2014//2015 +f 2021//2022 2022//2023 2023//2024 2024//2025 +f 2025//2026 2026//2027 2022//2023 2021//2022 +f 2022//2023 2020//2021 2019//2020 2023//2024 +f 2026//2027 2016//2017 2020//2021 2022//2023 +f 2008//2009 2007//2008 2027//2028 2028//2029 +f 2007//2008 2003//2004 2015//2016 2027//2028 +f 2028//2029 2027//2028 2026//2027 2025//2026 +f 2027//2028 2015//2016 2016//2017 2026//2027 +f 1856//1857 2029//2030 2017//2018 1836//1837 +f 1853//1854 2030//2031 2029//2030 1856//1857 +f 2029//2030 2031//2032 2019//2020 2017//2018 +f 2030//2031 2032//2033 2031//2032 2029//2030 +f 1852//1853 2033//2034 2034//2035 1849//1850 +f 2033//2034 2035//2036 2036//2037 2034//2035 +f 1849//1850 2034//2035 2030//2031 1853//1854 +f 2034//2035 2036//2037 2032//2033 2030//2031 +f 2037//2038 2038//2039 2039//2040 2040//2041 +f 2041//2042 2042//2043 2038//2039 2037//2038 +f 2038//2039 2036//2037 2035//2036 2039//2040 +f 2042//2043 2032//2033 2036//2037 2038//2039 +f 2024//2025 2023//2024 2043//2044 2044//2045 +f 2023//2024 2019//2020 2031//2032 2043//2044 +f 2044//2045 2043//2044 2042//2043 2041//2042 +f 2043//2044 2031//2032 2032//2033 2042//2043 +f 1872//1873 2045//2046 2033//2034 1852//1853 +f 1869//1870 2046//2047 2045//2046 1872//1873 +f 2045//2046 2047//2048 2035//2036 2033//2034 +f 2046//2047 2048//2049 2047//2048 2045//2046 +f 1868//1869 2049//2050 2050//2051 1865//1866 +f 2049//2050 2051//2052 2052//2053 2050//2051 +f 1865//1866 2050//2051 2046//2047 1869//1870 +f 2050//2051 2052//2053 2048//2049 2046//2047 +f 2053//2054 2054//2055 2055//2056 2056//2057 +f 2057//2058 2058//2059 2054//2055 2053//2054 +f 2054//2055 2052//2053 2051//2052 2055//2056 +f 2058//2059 2048//2049 2052//2053 2054//2055 +f 2040//2041 2039//2040 2059//2060 2060//2061 +f 2039//2040 2035//2036 2047//2048 2059//2060 +f 2060//2061 2059//2060 2058//2059 2057//2058 +f 2059//2060 2047//2048 2048//2049 2058//2059 +f 1888//1889 2061//2062 2049//2050 1868//1869 +f 1885//1886 2062//2063 2061//2062 1888//1889 +f 2061//2062 2063//2064 2051//2052 2049//2050 +f 2062//2063 2064//2065 2063//2064 2061//2062 +f 1884//1885 2065//2066 2066//2067 1881//1882 +f 2065//2066 2067//2068 2068//2069 2066//2067 +f 1881//1882 2066//2067 2062//2063 1885//1886 +f 2066//2067 2068//2069 2064//2065 2062//2063 +f 2069//2070 2070//2071 2071//2072 2072//2073 +f 2073//2074 2074//2075 2070//2071 2069//2070 +f 2070//2071 2068//2069 2067//2068 2071//2072 +f 2074//2075 2064//2065 2068//2069 2070//2071 +f 2056//2057 2055//2056 2075//2076 2076//2077 +f 2055//2056 2051//2052 2063//2064 2075//2076 +f 2076//2077 2075//2076 2074//2075 2073//2074 +f 2075//2076 2063//2064 2064//2065 2074//2075 +f 1900//1901 2077//2078 2065//2066 1884//1885 +f 1897//1898 2078//2079 2077//2078 1900//1901 +f 2077//2078 2079//2080 2067//2068 2065//2066 +f 2078//2079 2080//2081 2079//2080 2077//2078 +f 658//658 858//858 2081//2082 1895//1896 +f 858//858 855//855 2082//2083 2081//2082 +f 1895//1896 2081//2082 2078//2079 1897//1898 +f 2081//2082 2082//2083 2080//2081 2078//2079 +f 2083//2084 2084//2085 851//851 854//854 +f 2085//2086 2086//2087 2084//2085 2083//2084 +f 2084//2085 2082//2083 855//855 851//851 +f 2086//2087 2080//2081 2082//2083 2084//2085 +f 2072//2073 2071//2072 2087//2088 2088//2089 +f 2071//2072 2067//2068 2079//2080 2087//2088 +f 2088//2089 2087//2088 2086//2087 2085//2086 +f 2087//2088 2079//2080 2080//2081 2086//2087 +f 1916//1917 2089//2090 859//859 669//669 +f 1913//1914 2090//2091 2089//2090 1916//1917 +f 2089//2090 2091//2092 861//861 859//859 +f 2090//2091 2092//2093 2091//2092 2089//2090 +f 1912//1913 2093//2094 2094//2095 1909//1910 +f 2093//2094 2095//2096 2096//2097 2094//2095 +f 1909//1910 2094//2095 2090//2091 1913//1914 +f 2094//2095 2096//2097 2092//2093 2090//2091 +f 2097//2098 2098//2099 2099//2100 2100//2101 +f 2101//2102 2102//2103 2098//2099 2097//2098 +f 2098//2099 2096//2097 2095//2096 2099//2100 +f 2102//2103 2092//2093 2096//2097 2098//2099 +f 865//865 868//868 2103//2104 2104//2105 +f 868//868 861//861 2091//2092 2103//2104 +f 2104//2105 2103//2104 2102//2103 2101//2102 +f 2103//2104 2091//2092 2092//2093 2102//2103 +f 1932//1933 2105//2106 2093//2094 1912//1913 +f 1929//1930 2106//2107 2105//2106 1932//1933 +f 2105//2106 2107//2108 2095//2096 2093//2094 +f 2106//2107 2108//2109 2107//2108 2105//2106 +f 1928//1929 2109//2110 2110//2111 1925//1926 +f 2109//2110 2111//2112 2112//2113 2110//2111 +f 1925//1926 2110//2111 2106//2107 1929//1930 +f 2110//2111 2112//2113 2108//2109 2106//2107 +f 2113//2114 2114//2115 2115//2116 2116//2117 +f 2117//2118 2118//2119 2114//2115 2113//2114 +f 2114//2115 2112//2113 2111//2112 2115//2116 +f 2118//2119 2108//2109 2112//2113 2114//2115 +f 2100//2101 2099//2100 2119//2120 2120//2121 +f 2099//2100 2095//2096 2107//2108 2119//2120 +f 2120//2121 2119//2120 2118//2119 2117//2118 +f 2119//2120 2107//2108 2108//2109 2118//2119 +f 1948//1949 2121//2122 2109//2110 1928//1929 +f 1945//1946 2122//2123 2121//2122 1948//1949 +f 2121//2122 2123//2124 2111//2112 2109//2110 +f 2122//2123 2124//2125 2123//2124 2121//2122 +f 1944//1945 2125//2126 2126//2127 1941//1942 +f 2125//2126 2127//2128 2128//2129 2126//2127 +f 1941//1942 2126//2127 2122//2123 1945//1946 +f 2126//2127 2128//2129 2124//2125 2122//2123 +f 2129//2130 2130//2131 2131//2132 2132//2133 +f 2133//2134 2134//2135 2130//2131 2129//2130 +f 2130//2131 2128//2129 2127//2128 2131//2132 +f 2134//2135 2124//2125 2128//2129 2130//2131 +f 2116//2117 2115//2116 2135//2136 2136//2137 +f 2115//2116 2111//2112 2123//2124 2135//2136 +f 2136//2137 2135//2136 2134//2135 2133//2134 +f 2135//2136 2123//2124 2124//2125 2134//2135 +f 1964//1965 2137//2138 2125//2126 1944//1945 +f 1961//1962 2138//2139 2137//2138 1964//1965 +f 2137//2138 2139//2140 2127//2128 2125//2126 +f 2138//2139 2140//2141 2139//2140 2137//2138 +f 1960//1961 2141//2142 2142//2143 1957//1958 +f 2141//2142 2143//2144 2144//2145 2142//2143 +f 1957//1958 2142//2143 2138//2139 1961//1962 +f 2142//2143 2144//2145 2140//2141 2138//2139 +f 2145//2146 2146//2147 2147//2148 2148//2149 +f 2149//2150 2150//2151 2146//2147 2145//2146 +f 2146//2147 2144//2145 2143//2144 2147//2148 +f 2150//2151 2140//2141 2144//2145 2146//2147 +f 2132//2133 2131//2132 2151//2152 2152//2153 +f 2131//2132 2127//2128 2139//2140 2151//2152 +f 2152//2153 2151//2152 2150//2151 2149//2150 +f 2151//2152 2139//2140 2140//2141 2150//2151 +f 1980//1981 2153//2154 2141//2142 1960//1961 +f 1977//1978 2154//2155 2153//2154 1980//1981 +f 2153//2154 2155//2156 2143//2144 2141//2142 +f 2154//2155 2156//2157 2155//2156 2153//2154 +f 1976//1977 2157//2158 2158//2159 1973//1974 +f 2157//2158 2159//2160 2160//2161 2158//2159 +f 1973//1974 2158//2159 2154//2155 1977//1978 +f 2158//2159 2160//2161 2156//2157 2154//2155 +f 2161//2162 2162//2163 2163//2164 2164//2165 +f 2165//2166 2166//2167 2162//2163 2161//2162 +f 2162//2163 2160//2161 2159//2160 2163//2164 +f 2166//2167 2156//2157 2160//2161 2162//2163 +f 2148//2149 2147//2148 2167//2168 2168//2169 +f 2147//2148 2143//2144 2155//2156 2167//2168 +f 2168//2169 2167//2168 2166//2167 2165//2166 +f 2167//2168 2155//2156 2156//2157 2166//2167 +f 1996//1997 2169//2170 2157//2158 1976//1977 +f 1993//1994 2170//2171 2169//2170 1996//1997 +f 2169//2170 2171//2172 2159//2160 2157//2158 +f 2170//2171 2172//2173 2171//2172 2169//2170 +f 1992//1993 2173//2174 2174//2175 1989//1990 +f 2173//2174 2175//2176 2176//2177 2174//2175 +f 1989//1990 2174//2175 2170//2171 1993//1994 +f 2174//2175 2176//2177 2172//2173 2170//2171 +f 2177//2178 2178//2179 2179//2180 2180//2181 +f 2181//2182 2182//2183 2178//2179 2177//2178 +f 2178//2179 2176//2177 2175//2176 2179//2180 +f 2182//2183 2172//2173 2176//2177 2178//2179 +f 2164//2165 2163//2164 2183//2184 2184//2185 +f 2163//2164 2159//2160 2171//2172 2183//2184 +f 2184//2185 2183//2184 2182//2183 2181//2182 +f 2183//2184 2171//2172 2172//2173 2182//2183 +f 2012//2013 2185//2186 2173//2174 1992//1993 +f 2009//2010 2186//2187 2185//2186 2012//2013 +f 2185//2186 2187//2188 2175//2176 2173//2174 +f 2186//2187 2188//2189 2187//2188 2185//2186 +f 2008//2009 2189//2190 2190//2191 2005//2006 +f 2189//2190 2191//2192 2192//2193 2190//2191 +f 2005//2006 2190//2191 2186//2187 2009//2010 +f 2190//2191 2192//2193 2188//2189 2186//2187 +f 2193//2194 2194//2195 2195//2196 2196//2197 +f 2197//2198 2198//2199 2194//2195 2193//2194 +f 2194//2195 2192//2193 2191//2192 2195//2196 +f 2198//2199 2188//2189 2192//2193 2194//2195 +f 2180//2181 2179//2180 2199//2200 2200//2201 +f 2179//2180 2175//2176 2187//2188 2199//2200 +f 2200//2201 2199//2200 2198//2199 2197//2198 +f 2199//2200 2187//2188 2188//2189 2198//2199 +f 2028//2029 2201//2202 2189//2190 2008//2009 +f 2025//2026 2202//2203 2201//2202 2028//2029 +f 2201//2202 2203//2204 2191//2192 2189//2190 +f 2202//2203 2204//2205 2203//2204 2201//2202 +f 2024//2025 2205//2206 2206//2207 2021//2022 +f 2205//2206 2207//2208 2208//2209 2206//2207 +f 2021//2022 2206//2207 2202//2203 2025//2026 +f 2206//2207 2208//2209 2204//2205 2202//2203 +f 2209//2210 2210//2211 2211//2212 2212//2213 +f 2213//2214 2214//2215 2210//2211 2209//2210 +f 2210//2211 2208//2209 2207//2208 2211//2212 +f 2214//2215 2204//2205 2208//2209 2210//2211 +f 2196//2197 2195//2196 2215//2216 2216//2217 +f 2195//2196 2191//2192 2203//2204 2215//2216 +f 2216//2217 2215//2216 2214//2215 2213//2214 +f 2215//2216 2203//2204 2204//2205 2214//2215 +f 2044//2045 2217//2218 2205//2206 2024//2025 +f 2041//2042 2218//2219 2217//2218 2044//2045 +f 2217//2218 2219//2220 2207//2208 2205//2206 +f 2218//2219 2220//2221 2219//2220 2217//2218 +f 2040//2041 2221//2222 2222//2223 2037//2038 +f 2221//2222 2223//2224 2224//2225 2222//2223 +f 2037//2038 2222//2223 2218//2219 2041//2042 +f 2222//2223 2224//2225 2220//2221 2218//2219 +f 2225//2226 2226//2227 2227//2228 2228//2229 +f 2229//2230 2230//2231 2226//2227 2225//2226 +f 2226//2227 2224//2225 2223//2224 2227//2228 +f 2230//2231 2220//2221 2224//2225 2226//2227 +f 2212//2213 2211//2212 2231//2232 2232//2233 +f 2211//2212 2207//2208 2219//2220 2231//2232 +f 2232//2233 2231//2232 2230//2231 2229//2230 +f 2231//2232 2219//2220 2220//2221 2230//2231 +f 2060//2061 2233//2234 2221//2222 2040//2041 +f 2057//2058 2234//2235 2233//2234 2060//2061 +f 2233//2234 2235//2236 2223//2224 2221//2222 +f 2234//2235 2236//2237 2235//2236 2233//2234 +f 2056//2057 2237//2238 2238//2239 2053//2054 +f 2237//2238 2239//2240 2240//2241 2238//2239 +f 2053//2054 2238//2239 2234//2235 2057//2058 +f 2238//2239 2240//2241 2236//2237 2234//2235 +f 2241//2242 2242//2243 2243//2244 2244//2245 +f 2245//2246 2246//2247 2242//2243 2241//2242 +f 2242//2243 2240//2241 2239//2240 2243//2244 +f 2246//2247 2236//2237 2240//2241 2242//2243 +f 2228//2229 2227//2228 2247//2248 2248//2249 +f 2227//2228 2223//2224 2235//2236 2247//2248 +f 2248//2249 2247//2248 2246//2247 2245//2246 +f 2247//2248 2235//2236 2236//2237 2246//2247 +f 2076//2077 2249//2250 2237//2238 2056//2057 +f 2073//2074 2250//2251 2249//2250 2076//2077 +f 2249//2250 2251//2252 2239//2240 2237//2238 +f 2250//2251 2252//2253 2251//2252 2249//2250 +f 2072//2073 2253//2254 2254//2255 2069//2070 +f 2253//2254 2255//2256 2256//2257 2254//2255 +f 2069//2070 2254//2255 2250//2251 2073//2074 +f 2254//2255 2256//2257 2252//2253 2250//2251 +f 2257//2258 2258//2259 2259//2260 2260//2261 +f 2261//2262 2262//2263 2258//2259 2257//2258 +f 2258//2259 2256//2257 2255//2256 2259//2260 +f 2262//2263 2252//2253 2256//2257 2258//2259 +f 2244//2245 2243//2244 2263//2264 2264//2265 +f 2243//2244 2239//2240 2251//2252 2263//2264 +f 2264//2265 2263//2264 2262//2263 2261//2262 +f 2263//2264 2251//2252 2252//2253 2262//2263 +f 2088//2089 2265//2266 2253//2254 2072//2073 +f 2085//2086 2266//2267 2265//2266 2088//2089 +f 2265//2266 2267//2268 2255//2256 2253//2254 +f 2266//2267 2268//2269 2267//2268 2265//2266 +f 854//854 1054//1054 2269//2270 2083//2084 +f 1054//1054 1051//1051 2270//2271 2269//2270 +f 2083//2084 2269//2270 2266//2267 2085//2086 +f 2269//2270 2270//2271 2268//2269 2266//2267 +f 2271//2272 2272//2273 1047//1047 1050//1050 +f 2273//2274 2274//2275 2272//2273 2271//2272 +f 2272//2273 2270//2271 1051//1051 1047//1047 +f 2274//2275 2268//2269 2270//2271 2272//2273 +f 2260//2261 2259//2260 2275//2276 2276//2277 +f 2259//2260 2255//2256 2267//2268 2275//2276 +f 2276//2277 2275//2276 2274//2275 2273//2274 +f 2275//2276 2267//2268 2268//2269 2274//2275 +f 2277//2278 2278//2279 1310//1311 1297//1298 +f 2279//2280 2280//2281 2278//2279 2277//2278 +f 2278//2279 2281//2282 1312//1313 1310//1311 +f 2280//2281 2282//2283 2281//2282 2278//2279 +f 1282//1283 2283//2284 2284//2285 2285//2286 +f 2283//2284 2286//2287 2287//2288 2284//2285 +f 2285//2286 2284//2285 2280//2281 2279//2280 +f 2284//2285 2287//2288 2282//2283 2280//2281 +f 2288//2289 2289//2290 2290//2291 2291//2292 +f 2292//2293 2293//2294 2289//2290 2288//2289 +f 2289//2290 2287//2288 2286//2287 2290//2291 +f 2293//2294 2282//2283 2287//2288 2289//2290 +f 1317//1318 1316//1317 2294//2295 2295//2296 +f 1316//1317 1312//1313 2281//2282 2294//2295 +f 2295//2296 2294//2295 2293//2294 2292//2293 +f 2294//2295 2281//2282 2282//2283 2293//2294 +f 2295//2296 2296//2297 1330//1331 1317//1318 +f 2292//2293 2297//2298 2296//2297 2295//2296 +f 2296//2297 2298//2299 1332//1333 1330//1331 +f 2297//2298 2299//2300 2298//2299 2296//2297 +f 2291//2292 2300//2301 2301//2302 2288//2289 +f 2300//2301 2302//2303 2303//2304 2301//2302 +f 2288//2289 2301//2302 2297//2298 2292//2293 +f 2301//2302 2303//2304 2299//2300 2297//2298 +f 2304//2305 2305//2306 2306//2307 2307//2308 +f 2308//2309 2309//2310 2305//2306 2304//2305 +f 2305//2306 2303//2304 2302//2303 2306//2307 +f 2309//2310 2299//2300 2303//2304 2305//2306 +f 1337//1338 1336//1337 2310//2311 2311//2312 +f 1336//1337 1332//1333 2298//2299 2310//2311 +f 2311//2312 2310//2311 2309//2310 2308//2309 +f 2310//2311 2298//2299 2299//2300 2309//2310 +f 2311//2312 2312//2313 1350//1351 1337//1338 +f 2308//2309 2313//2314 2312//2313 2311//2312 +f 2312//2313 2314//2315 1352//1353 1350//1351 +f 2313//2314 2315//2316 2314//2315 2312//2313 +f 2307//2308 2316//2317 2317//2318 2304//2305 +f 2316//2317 2318//2319 2319//2320 2317//2318 +f 2304//2305 2317//2318 2313//2314 2308//2309 +f 2317//2318 2319//2320 2315//2316 2313//2314 +f 1379//1380 2320//2321 2321//2322 1376//1377 +f 1372//1373 2322//2323 2320//2321 1379//1380 +f 2320//2321 2319//2320 2318//2319 2321//2322 +f 2322//2323 2315//2316 2319//2320 2320//2321 +f 1370//1371 1356//1357 1359//1360 2323//2324 +f 2323//2324 1359//1360 1352//1353 2314//2315 +f 1372//1373 1370//1371 2323//2324 2322//2323 +f 2322//2323 2323//2324 2314//2315 2315//2316 +f 2324//2325 2325//2326 1410//1411 1396//1397 +f 2326//2327 2327//2328 2325//2326 2324//2325 +f 2325//2326 2328//2329 1412//1413 1410//1411 +f 2327//2328 2329//2330 2328//2329 2325//2326 +f 2330//2331 2331//2332 2332//2333 2333//2334 +f 2331//2332 2334//2335 2335//2336 2332//2333 +f 2333//2334 2332//2333 2327//2328 2326//2327 +f 2332//2333 2335//2336 2329//2330 2327//2328 +f 2336//2337 2337//2338 2338//2339 2339//2340 +f 2340//2341 2341//2342 2337//2338 2336//2337 +f 2337//2338 2335//2336 2334//2335 2338//2339 +f 2341//2342 2329//2330 2335//2336 2337//2338 +f 1417//1418 1416//1417 2342//2343 2343//2344 +f 1416//1417 1412//1413 2328//2329 2342//2343 +f 2343//2344 2342//2343 2341//2342 2340//2341 +f 2342//2343 2328//2329 2329//2330 2341//2342 +f 2344//2345 2345//2346 2331//2332 2330//2331 +f 2346//2347 2347//2348 2345//2346 2344//2345 +f 2345//2346 2348//2349 2334//2335 2331//2332 +f 2347//2348 2349//2350 2348//2349 2345//2346 +f 2350//2351 2351//2352 2352//2353 2353//2354 +f 2351//2352 2354//2355 2355//2356 2352//2353 +f 2353//2354 2352//2353 2347//2348 2346//2347 +f 2352//2353 2355//2356 2349//2350 2347//2348 +f 2356//2357 2357//2358 2358//2359 2359//2360 +f 2360//2361 2361//2362 2357//2358 2356//2357 +f 2357//2358 2355//2356 2354//2355 2358//2359 +f 2361//2362 2349//2350 2355//2356 2357//2358 +f 2339//2340 2338//2339 2362//2363 2363//2364 +f 2338//2339 2334//2335 2348//2349 2362//2363 +f 2363//2364 2362//2363 2361//2362 2360//2361 +f 2362//2363 2348//2349 2349//2350 2361//2362 +f 2364//2365 2365//2366 2351//2352 2350//2351 +f 2366//2367 2367//2368 2365//2366 2364//2365 +f 2365//2366 2368//2369 2354//2355 2351//2352 +f 2367//2368 2369//2370 2368//2369 2365//2366 +f 1277//1278 2370//2371 2371//2372 2372//2373 +f 2370//2371 2373//2374 2374//2375 2371//2372 +f 2372//2373 2371//2372 2367//2368 2366//2367 +f 2371//2372 2374//2375 2369//2370 2367//2368 +f 2375//2376 2376//2377 2377//2378 2378//2379 +f 2379//2380 2380//2381 2376//2377 2375//2376 +f 2376//2377 2374//2375 2373//2374 2377//2378 +f 2380//2381 2369//2370 2374//2375 2376//2377 +f 2359//2360 2358//2359 2381//2382 2382//2383 +f 2358//2359 2354//2355 2368//2369 2381//2382 +f 2382//2383 2381//2382 2380//2381 2379//2380 +f 2381//2382 2368//2369 2369//2370 2380//2381 +f 1276//1277 2383//2384 2370//2371 1277//1278 +f 1272//1273 2384//2385 2383//2384 1276//1277 +f 2383//2384 2385//2386 2373//2374 2370//2371 +f 2384//2385 2386//2387 2385//2386 2383//2384 +f 4//1175 1176//1177 2387//2388 1270//1271 +f 1176//1177 1173//1173 2388//2389 2387//2388 +f 1270//1271 2387//2388 2384//2385 1272//1273 +f 2387//2388 2388//2389 2386//2387 2384//2385 +f 2389//2390 2390//2391 1169//1169 1172//1172 +f 2391//2392 2392//2393 2390//2391 2389//2390 +f 2390//2391 2388//2389 1173//1173 1169//1169 +f 2392//2393 2386//2387 2388//2389 2390//2391 +f 2378//2379 2377//2378 2393//2394 2394//2395 +f 2377//2378 2373//2374 2385//2386 2393//2394 +f 2394//2395 2393//2394 2392//2393 2391//2392 +f 2393//2394 2385//2386 2386//2387 2392//2393 +f 11//11 1288//1289 2395//2396 1177//1178 +f 1288//1289 1286//1287 2396//2397 2395//2396 +f 1177//1178 2395//2396 2397//2398 1179//1180 +f 2395//2396 2396//2397 2398//2399 2397//2398 +f 1283//1284 1282//1283 2285//2286 2399//2400 +f 2399//2400 2285//2286 2279//2280 2400//2401 +f 1286//1287 1283//1284 2399//2400 2396//2397 +f 2396//2397 2399//2400 2400//2401 2398//2399 +f 1297//1298 1296//1297 2401//2402 2277//2278 +f 1296//1297 1292//1293 2402//2403 2401//2402 +f 2277//2278 2401//2402 2400//2401 2279//2280 +f 2401//2402 2402//2403 2398//2399 2400//2401 +f 1290//1291 29//29 1183//1184 2403//2404 +f 2403//2404 1183//1184 1179//1180 2397//2398 +f 1292//1293 1290//1291 2403//2404 2402//2403 +f 2402//2403 2403//2404 2397//2398 2398//2399 +f 2291//2292 2290//2291 2404//2405 2405//2406 +f 2290//2291 2286//2287 2406//2407 2404//2405 +f 2405//2406 2404//2405 2407//2408 2408//2409 +f 2404//2405 2406//2407 2409//2410 2407//2408 +f 2283//2284 1282//1283 1285//1286 2410//2411 +f 2410//2411 1285//1286 1280//1281 2411//2412 +f 2286//2287 2283//2284 2410//2411 2406//2407 +f 2406//2407 2410//2411 2411//2412 2409//2410 +f 1277//1278 2372//2373 2412//2413 1278//1279 +f 2372//2373 2366//2367 2413//2414 2412//2413 +f 1278//1279 2412//2413 2411//2412 1280//1281 +f 2412//2413 2413//2414 2409//2410 2411//2412 +f 2364//2365 2350//2351 2414//2415 2415//2416 +f 2415//2416 2414//2415 2408//2409 2407//2408 +f 2366//2367 2364//2365 2415//2416 2413//2414 +f 2413//2414 2415//2416 2407//2408 2409//2410 +f 2307//2308 2306//2307 2416//2417 2417//2418 +f 2306//2307 2302//2303 2418//2419 2416//2417 +f 2417//2418 2416//2417 2419//2420 2420//2421 +f 2416//2417 2418//2419 2421//2422 2419//2420 +f 2300//2301 2291//2292 2405//2406 2422//2423 +f 2422//2423 2405//2406 2408//2409 2423//2424 +f 2302//2303 2300//2301 2422//2423 2418//2419 +f 2418//2419 2422//2423 2423//2424 2421//2422 +f 2350//2351 2353//2354 2424//2425 2414//2415 +f 2353//2354 2346//2347 2425//2426 2424//2425 +f 2414//2415 2424//2425 2423//2424 2408//2409 +f 2424//2425 2425//2426 2421//2422 2423//2424 +f 2344//2345 2330//2331 2426//2427 2427//2428 +f 2427//2428 2426//2427 2420//2421 2419//2420 +f 2346//2347 2344//2345 2427//2428 2425//2426 +f 2425//2426 2427//2428 2419//2420 2421//2422 +f 2363//2364 2428//2429 2429//2430 2339//2340 +f 2360//2361 2430//2431 2428//2429 2363//2364 +f 2428//2429 2431//2432 2432//2433 2429//2430 +f 2430//2431 2433//2434 2431//2432 2428//2429 +f 2359//2360 2434//2435 2435//2436 2356//2357 +f 2434//2435 2436//2437 2437//2438 2435//2436 +f 2356//2357 2435//2436 2430//2431 2360//2361 +f 2435//2436 2437//2438 2433//2434 2430//2431 +f 1479//1480 2438//2439 2439//2440 1476//1477 +f 1472//1473 2440//2441 2438//2439 1479//1480 +f 2438//2439 2437//2438 2436//2437 2439//2440 +f 2440//2441 2433//2434 2437//2438 2438//2439 +f 1456//1457 2441//2442 2442//2443 1470//1471 +f 2441//2442 2432//2433 2431//2432 2442//2443 +f 1470//1471 2442//2443 2440//2441 1472//1473 +f 2442//2443 2431//2432 2433//2434 2440//2441 +f 2382//2383 2443//2444 2434//2435 2359//2360 +f 2379//2380 2444//2445 2443//2444 2382//2383 +f 2443//2444 2445//2446 2436//2437 2434//2435 +f 2444//2445 2446//2447 2445//2446 2443//2444 +f 2378//2379 2447//2448 2448//2449 2375//2376 +f 2447//2448 2449//2450 2450//2451 2448//2449 +f 2375//2376 2448//2449 2444//2445 2379//2380 +f 2448//2449 2450//2451 2446//2447 2444//2445 +f 1499//1500 2451//2452 2452//2453 1496//1497 +f 1492//1493 2453//2454 2451//2452 1499//1500 +f 2451//2452 2450//2451 2449//2450 2452//2453 +f 2453//2454 2446//2447 2450//2451 2451//2452 +f 1476//1477 2439//2440 2454//2455 1490//1491 +f 2439//2440 2436//2437 2445//2446 2454//2455 +f 1490//1491 2454//2455 2453//2454 1492//1493 +f 2454//2455 2445//2446 2446//2447 2453//2454 +f 2394//2395 2455//2456 2447//2448 2378//2379 +f 2391//2392 2456//2457 2455//2456 2394//2395 +f 2455//2456 2457//2458 2449//2450 2447//2448 +f 2456//2457 2458//2459 2457//2458 2455//2456 +f 1172//1172 1251//1252 2459//2460 2389//2390 +f 1251//1252 1248//1249 2460//2461 2459//2460 +f 2389//2390 2459//2460 2456//2457 2391//2392 +f 2459//2460 2460//2461 2458//2459 2456//2457 +f 1517//1518 2461//2462 1246//1247 267//267 +f 1512//1513 2462//2463 2461//2462 1517//1518 +f 2461//2462 2460//2461 1248//1249 1246//1247 +f 2462//2463 2458//2459 2460//2461 2461//2462 +f 1496//1497 2452//2453 2463//2464 1510//1511 +f 2452//2453 2449//2450 2457//2458 2463//2464 +f 1510//1511 2463//2464 2462//2463 1512//1513 +f 2463//2464 2457//2458 2458//2459 2462//2463 +f 1376//1377 2321//2322 2464//2465 1390//1391 +f 2321//2322 2318//2319 2465//2466 2464//2465 +f 1390//1391 2464//2465 2466//2467 1392//1393 +f 2464//2465 2465//2466 2467//2468 2466//2467 +f 2316//2317 2307//2308 2417//2418 2468//2469 +f 2468//2469 2417//2418 2420//2421 2469//2470 +f 2318//2319 2316//2317 2468//2469 2465//2466 +f 2465//2466 2468//2469 2469//2470 2467//2468 +f 2330//2331 2333//2334 2470//2471 2426//2427 +f 2333//2334 2326//2327 2471//2472 2470//2471 +f 2426//2427 2470//2471 2469//2470 2420//2421 +f 2470//2471 2471//2472 2467//2468 2469//2470 +f 2324//2325 1396//1397 1399//1400 2472//2473 +f 2472//2473 1399//1400 1392//1393 2466//2467 +f 2326//2327 2324//2325 2472//2473 2471//2472 +f 2471//2472 2472//2473 2466//2467 2467//2468 +f 2343//2344 2473//2474 1430//1431 1417//1418 +f 2340//2341 2474//2475 2473//2474 2343//2344 +f 2473//2474 2475//2476 1432//1433 1430//1431 +f 2474//2475 2476//2477 2475//2476 2473//2474 +f 2339//2340 2429//2430 2477//2478 2336//2337 +f 2429//2430 2432//2433 2478//2479 2477//2478 +f 2336//2337 2477//2478 2474//2475 2340//2341 +f 2477//2478 2478//2479 2476//2477 2474//2475 +f 1459//1460 2479//2480 2441//2442 1456//1457 +f 1452//1453 2480//2481 2479//2480 1459//1460 +f 2479//2480 2478//2479 2432//2433 2441//2442 +f 2480//2481 2476//2477 2478//2479 2479//2480 +f 1450//1451 1436//1437 1439//1440 2481//2482 +f 2481//2482 1439//1440 1432//1433 2475//2476 +f 1452//1453 1450//1451 2481//2482 2480//2481 +f 2480//2481 2481//2482 2475//2476 2476//2477 +f 2482//2483 2483//2483 2484//2483 2485//2483 +f 2486//2484 2482//2485 2485//2486 2487//2487 +f 2482//2485 2486//2484 2488//2488 2489//2489 +f 2483//2490 2482//2485 2489//2489 2490//2491 +f 2491//2492 2492//2493 2493//2494 2494//2495 +f 2495//2496 2491//2492 2494//2495 2496//2497 +f 2491//2492 2495//2496 2497//2498 2498//2499 +f 2492//2493 2491//2492 2498//2499 2499//2500 +f 2500//2501 2501//2502 2502//2503 2503//2504 +f 2504//2505 2505//2506 2500//2501 2503//2504 +f 2500//2501 2505//2506 2506//2507 2507//2508 +f 2501//2502 2500//2501 2507//2508 2508//2509 +f 2509//2510 2510//2511 2511//2512 2512//2513 +f 2513//2514 2509//2510 2512//2513 2514//2515 +f 2509//2510 2513//2514 2515//2516 2516//2517 +f 2510//2511 2509//2510 2516//2517 2517//2518 +f 2518//2519 2519//2520 2520//2521 2521//2522 +f 2522//2523 2518//2519 2521//2522 2523//2524 +f 2518//2519 2522//2523 2524//2525 2525//2526 +f 2519//2520 2518//2519 2525//2526 2526//2527 +f 2527//2528 2528//2529 2490//2491 2489//2489 +f 2529//2530 2527//2528 2489//2489 2488//2488 +f 2527//2528 2529//2530 2530//2531 2531//2532 +f 2528//2529 2527//2528 2531//2532 2532//2533 +f 2533//2534 2534//2535 2499//2500 2498//2499 +f 2535//2536 2533//2534 2498//2499 2497//2498 +f 2533//2534 2535//2536 2536//2537 2537//2538 +f 2534//2535 2533//2534 2537//2538 2538//2539 +f 2539//2540 2540//2541 2508//2509 2507//2508 +f 2507//2508 2506//2507 2541//2542 2539//2540 +f 2539//2540 2541//2542 2542//2543 2543//2544 +f 2540//2541 2539//2540 2543//2544 2544//2545 +f 2545//2546 2546//2547 2517//2518 2516//2517 +f 2547//2548 2545//2546 2516//2517 2515//2516 +f 2545//2546 2547//2548 2548//2549 2549//2550 +f 2546//2547 2545//2546 2549//2550 2550//2551 +f 2551//2552 2552//2553 2526//2527 2525//2526 +f 2553//2554 2551//2552 2525//2526 2524//2525 +f 2551//2552 2553//2554 2554//2555 2555//2556 +f 2552//2553 2551//2552 2555//2556 2556//2557 +f 2557//2558 2558//2559 2532//2533 2531//2532 +f 2559//2560 2557//2558 2531//2532 2530//2531 +f 2557//2558 2559//2560 2560//2561 2561//2562 +f 2558//2559 2557//2558 2561//2562 2562//2563 +f 2563//2564 2564//2565 2538//2539 2537//2538 +f 2565//2566 2563//2564 2537//2538 2536//2537 +f 2563//2564 2565//2566 2566//2567 2567//2568 +f 2564//2565 2563//2564 2567//2568 2568//2569 +f 2569//2570 2570//2571 2544//2545 2543//2544 +f 2543//2544 2542//2543 2571//2572 2569//2570 +f 2569//2570 2571//2572 2572//2573 2573//2574 +f 2570//2571 2569//2570 2573//2574 2574//2575 +f 2575//2576 2576//2577 2550//2551 2549//2550 +f 2577//2578 2575//2576 2549//2550 2548//2549 +f 2575//2576 2577//2578 2578//2579 2579//2580 +f 2576//2577 2575//2576 2579//2580 2580//2581 +f 2581//2582 2582//2583 2556//2557 2555//2556 +f 2583//2584 2581//2582 2555//2556 2554//2555 +f 2581//2582 2583//2584 2584//2585 2585//2586 +f 2582//2583 2581//2582 2585//2586 2586//2587 +f 2587//2588 2588//2589 2562//2563 2561//2562 +f 2589//2590 2587//2588 2561//2562 2560//2561 +f 2587//2588 2589//2590 2590//2591 2591//2592 +f 2588//2589 2587//2588 2591//2592 2592//2593 +f 2593//2594 2594//2595 2568//2569 2567//2568 +f 2595//2596 2593//2594 2567//2568 2566//2567 +f 2593//2594 2595//2596 2596//2597 2597//2598 +f 2594//2595 2593//2594 2597//2598 2598//2599 +f 2599//2600 2600//2601 2574//2575 2573//2574 +f 2573//2574 2572//2573 2601//2602 2599//2600 +f 2599//2600 2601//2602 2602//2603 2603//2604 +f 2600//2601 2599//2600 2603//2604 2604//2605 +f 2605//2606 2606//2607 2580//2581 2579//2580 +f 2607//2608 2605//2606 2579//2580 2578//2579 +f 2605//2606 2607//2608 2608//2609 2609//2610 +f 2606//2607 2605//2606 2609//2610 2610//2611 +f 2611//2612 2612//2613 2586//2587 2585//2586 +f 2613//2614 2611//2612 2585//2586 2584//2585 +f 2611//2612 2613//2614 2614//2615 2615//2616 +f 2612//2613 2611//2612 2615//2616 2616//2617 +f 2617//2618 2618//2619 2592//2593 2591//2592 +f 2619//2620 2617//2618 2591//2592 2590//2591 +f 2617//2618 2619//2620 2620//2621 2621//2622 +f 2618//2619 2617//2618 2621//2622 2622//2623 +f 2623//2624 2624//2625 2598//2599 2597//2598 +f 2625//2626 2623//2624 2597//2598 2596//2597 +f 2623//2624 2625//2626 2626//2627 2627//2628 +f 2624//2625 2623//2624 2627//2628 2628//2629 +f 2629//2630 2630//2631 2604//2605 2603//2604 +f 2603//2604 2602//2603 2631//2632 2629//2630 +f 2629//2630 2631//2632 2632//2633 2633//2634 +f 2630//2631 2629//2630 2633//2634 2634//2635 +f 2635//2636 2636//2637 2610//2611 2609//2610 +f 2637//2638 2635//2636 2609//2610 2608//2609 +f 2635//2636 2637//2638 2638//2639 2639//2640 +f 2636//2637 2635//2636 2639//2640 2640//2641 +f 2641//2642 2642//2643 2616//2617 2615//2616 +f 2643//2644 2641//2642 2615//2616 2614//2615 +f 2641//2642 2643//2644 2644//2645 2645//2646 +f 2642//2643 2641//2642 2645//2646 2646//2647 +f 2647//2648 2648//2649 2622//2623 2621//2622 +f 2649//2650 2647//2648 2621//2622 2620//2621 +f 2647//2648 2649//2650 2650//2651 2651//2652 +f 2648//2649 2647//2648 2651//2652 2652//2653 +f 2653//2654 2654//2655 2628//2629 2627//2628 +f 2655//2656 2653//2654 2627//2628 2626//2627 +f 2653//2654 2655//2656 2656//2657 2657//2658 +f 2654//2655 2653//2654 2657//2658 2658//2659 +f 2659//2660 2660//2661 2634//2635 2633//2634 +f 2633//2634 2632//2633 2661//2662 2659//2660 +f 2659//2660 2661//2662 2662//2663 2663//2664 +f 2660//2661 2659//2660 2663//2664 2664//2665 +f 2665//2666 2666//2667 2640//2641 2639//2640 +f 2667//2668 2665//2666 2639//2640 2638//2639 +f 2665//2666 2667//2668 2668//2669 2669//2670 +f 2666//2667 2665//2666 2669//2670 2670//2671 +f 2671//2672 2672//2673 2646//2647 2645//2646 +f 2673//2674 2671//2672 2645//2646 2644//2645 +f 2671//2672 2673//2674 2674//2675 2675//2676 +f 2672//2673 2671//2672 2675//2676 2676//2677 +f 2677//2678 2678//2679 2652//2653 2651//2652 +f 2679//2680 2677//2678 2651//2652 2650//2651 +f 2677//2678 2679//2680 2680//2681 2681//2682 +f 2678//2679 2677//2678 2681//2682 2682//2683 +f 2683//2684 2684//2685 2658//2659 2657//2658 +f 2685//2686 2683//2684 2657//2658 2656//2657 +f 2683//2684 2685//2686 2686//2687 2687//2688 +f 2684//2685 2683//2684 2687//2688 2688//2689 +f 2689//2690 2690//2691 2664//2665 2663//2664 +f 2663//2664 2662//2663 2691//2692 2689//2690 +f 2689//2690 2691//2692 2692//2693 2693//2694 +f 2690//2691 2689//2690 2693//2694 2694//2695 +f 2695//2696 2696//2697 2670//2671 2669//2670 +f 2697//2698 2695//2696 2669//2670 2668//2669 +f 2695//2696 2697//2698 2698//2699 2699//2700 +f 2696//2697 2695//2696 2699//2700 2700//2701 +f 2701//2702 2702//2703 2676//2677 2675//2676 +f 2703//2704 2701//2702 2675//2676 2674//2675 +f 2701//2702 2703//2704 2704//2705 2705//2706 +f 2702//2703 2701//2702 2705//2706 2706//2707 +f 2707//2708 2708//2709 2682//2683 2681//2682 +f 2709//2710 2707//2708 2681//2682 2680//2681 +f 2707//2708 2709//2710 2710//2711 2711//2712 +f 2708//2709 2707//2708 2711//2712 2712//2713 +f 2713//2714 2714//2715 2688//2689 2687//2688 +f 2715//2716 2713//2714 2687//2688 2686//2687 +f 2713//2714 2715//2716 2716//2717 2717//2718 +f 2714//2715 2713//2714 2717//2718 2718//2719 +f 2719//2720 2720//2721 2694//2695 2693//2694 +f 2693//2694 2692//2693 2721//2722 2719//2720 +f 2719//2720 2721//2722 2722//2723 2723//2724 +f 2720//2721 2719//2720 2723//2724 2724//2725 +f 2725//2726 2726//2727 2700//2701 2699//2700 +f 2727//2728 2725//2726 2699//2700 2698//2699 +f 2725//2726 2727//2728 2728//2729 2729//2730 +f 2726//2727 2725//2726 2729//2730 2730//2731 +f 2731//2732 2732//2733 2706//2707 2705//2706 +f 2733//2734 2731//2732 2705//2706 2704//2705 +f 2731//2732 2733//2734 2734//2735 2735//2736 +f 2732//2733 2731//2732 2735//2736 2736//2737 +f 2737//2738 2738//2739 2712//2713 2711//2712 +f 2739//2740 2737//2738 2711//2712 2710//2711 +f 2737//2738 2739//2740 2740//2741 2741//2742 +f 2738//2739 2737//2738 2741//2742 2742//2743 +f 2743//2744 2744//2745 2718//2719 2717//2718 +f 2745//2746 2743//2744 2717//2718 2716//2717 +f 2743//2744 2745//2746 2746//2747 2747//2748 +f 2744//2745 2743//2744 2747//2748 2748//2749 +f 2749//2750 2750//2751 2724//2725 2723//2724 +f 2723//2724 2722//2723 2751//2752 2749//2750 +f 2749//2750 2751//2752 2752//2753 2753//2754 +f 2750//2751 2749//2750 2753//2754 2754//2755 +f 2755//2756 2756//2757 2730//2731 2729//2730 +f 2757//2758 2755//2756 2729//2730 2728//2729 +f 2755//2756 2757//2758 2758//2759 2759//2760 +f 2756//2757 2755//2756 2759//2760 2760//2761 +f 2761//2762 2762//2763 2736//2737 2735//2736 +f 2763//2764 2761//2762 2735//2736 2734//2735 +f 2761//2762 2763//2764 2764//2765 2765//2766 +f 2762//2763 2761//2762 2765//2766 2766//2767 +f 2767//2768 2768//2769 2742//2743 2741//2742 +f 2769//2770 2767//2768 2741//2742 2740//2741 +f 2767//2768 2769//2770 2770//2771 2771//2772 +f 2768//2769 2767//2768 2771//2772 2772//2773 +f 2773//2774 2774//2775 2748//2749 2747//2748 +f 2775//2776 2773//2774 2747//2748 2746//2747 +f 2773//2774 2775//2776 2776//2777 2777//2778 +f 2774//2775 2773//2774 2777//2778 2778//2779 +f 2779//2780 2780//2781 2754//2755 2753//2754 +f 2753//2754 2752//2753 2781//2782 2779//2780 +f 2779//2780 2781//2782 2782//2783 2783//2784 +f 2780//2781 2779//2780 2783//2784 2784//2785 +f 2785//2786 2786//2787 2760//2761 2759//2760 +f 2787//2788 2785//2786 2759//2760 2758//2759 +f 2785//2786 2787//2788 2788//2789 2789//2790 +f 2786//2787 2785//2786 2789//2790 2790//2791 +f 2791//2792 2792//2793 2766//2767 2765//2766 +f 2793//2794 2791//2792 2765//2766 2764//2765 +f 2791//2792 2793//2794 2794//2795 2795//2796 +f 2792//2793 2791//2792 2795//2796 2796//2797 +f 2797//2798 2798//2799 2799//2800 2800//2801 +f 2801//2802 2797//2798 2800//2801 2802//2803 +f 2797//2798 2801//2802 2803//2804 2804//2805 +f 2798//2799 2797//2798 2804//2805 2805//2806 +f 2806//2807 2807//2808 2808//2809 2809//2810 +f 2810//2811 2806//2807 2809//2810 2811//2812 +f 2806//2807 2810//2811 2812//2813 2813//2814 +f 2807//2808 2806//2807 2813//2814 2814//2815 +f 2815//2816 2816//2817 2817//2818 2818//2819 +f 2819//2820 2820//2821 2815//2816 2818//2819 +f 2815//2816 2820//2821 2821//2822 2822//2823 +f 2816//2817 2815//2816 2822//2823 2823//2824 +f 2824//2825 2825//2826 2826//2827 2827//2828 +f 2828//2829 2824//2825 2827//2828 2829//2830 +f 2824//2825 2828//2829 2830//2831 2831//2832 +f 2825//2826 2824//2825 2831//2832 2832//2833 +f 2833//2834 2834//2835 2835//2836 2836//2837 +f 2837//2838 2833//2834 2836//2837 2838//2839 +f 2833//2834 2837//2838 2839//2840 2840//2841 +f 2834//2835 2833//2834 2840//2841 2841//2842 +f 2842//2843 2843//2844 2844//2845 2845//2846 +f 2846//2847 2842//2843 2845//2846 2847//2848 +f 2842//2843 2846//2847 2848//2849 2849//2850 +f 2843//2844 2842//2843 2849//2850 2850//2851 +f 2851//2852 2852//2853 2853//2854 2854//2855 +f 2855//2856 2851//2852 2854//2855 2856//2857 +f 2851//2852 2855//2856 2857//2858 2858//2859 +f 2852//2853 2851//2852 2858//2859 2859//2860 +f 2860//2861 2861//2862 2862//2863 2863//2864 +f 2864//2865 2865//2866 2860//2861 2863//2864 +f 2860//2861 2865//2866 2866//2867 2867//2868 +f 2861//2862 2860//2861 2867//2868 2868//2869 +f 2869//2870 2870//2871 2871//2872 2872//2873 +f 2873//2874 2869//2870 2872//2873 2874//2875 +f 2869//2870 2873//2874 2875//2876 2876//2877 +f 2870//2871 2869//2870 2876//2877 2877//2878 +f 2878//2879 2879//2880 2880//2881 2881//2882 +f 2882//2883 2878//2879 2881//2882 2883//2884 +f 2878//2879 2882//2883 2884//2885 2885//2886 +f 2879//2880 2878//2879 2885//2886 2886//2887 +f 2887//2888 2888//2889 2850//2851 2849//2850 +f 2889//2890 2887//2888 2849//2850 2848//2849 +f 2887//2888 2889//2890 2890//2891 2891//2892 +f 2888//2889 2887//2888 2891//2892 2892//2893 +f 2893//2894 2894//2895 2859//2860 2858//2859 +f 2895//2896 2893//2894 2858//2859 2857//2858 +f 2893//2894 2895//2896 2896//2897 2897//2898 +f 2894//2895 2893//2894 2897//2898 2898//2899 +f 2899//2900 2900//2901 2868//2869 2867//2868 +f 2867//2868 2866//2867 2901//2902 2899//2900 +f 2899//2900 2901//2902 2902//2903 2903//2904 +f 2900//2901 2899//2900 2903//2904 2904//2905 +f 2905//2906 2906//2907 2877//2878 2876//2877 +f 2907//2908 2905//2906 2876//2877 2875//2876 +f 2905//2906 2907//2908 2908//2909 2909//2910 +f 2906//2907 2905//2906 2909//2910 2910//2911 +f 2911//2912 2912//2913 2886//2887 2885//2886 +f 2913//2914 2911//2912 2885//2886 2884//2885 +f 2911//2912 2913//2914 2914//2915 2915//2916 +f 2912//2913 2911//2912 2915//2916 2916//2917 +f 2917//2918 2918//2919 2892//2893 2891//2892 +f 2919//2920 2917//2918 2891//2892 2890//2891 +f 2917//2918 2919//2920 2920//2921 2921//2922 +f 2918//2919 2917//2918 2921//2922 2922//2923 +f 2923//2924 2924//2925 2898//2899 2897//2898 +f 2925//2926 2923//2924 2897//2898 2896//2897 +f 2923//2924 2925//2926 2926//2927 2927//2928 +f 2924//2925 2923//2924 2927//2928 2928//2929 +f 2929//2930 2930//2931 2904//2905 2903//2904 +f 2903//2904 2902//2903 2931//2932 2929//2930 +f 2929//2930 2931//2932 2932//2933 2933//2934 +f 2930//2931 2929//2930 2933//2934 2934//2935 +f 2935//2936 2936//2937 2910//2911 2909//2910 +f 2937//2938 2935//2936 2909//2910 2908//2909 +f 2935//2936 2937//2938 2938//2939 2939//2940 +f 2936//2937 2935//2936 2939//2940 2940//2941 +f 2941//2942 2942//2943 2916//2917 2915//2916 +f 2943//2944 2941//2942 2915//2916 2914//2915 +f 2941//2942 2943//2944 2944//2945 2945//2946 +f 2942//2943 2941//2942 2945//2946 2946//2947 +f 2947//2948 2948//2949 2922//2923 2921//2922 +f 2949//2950 2947//2948 2921//2922 2920//2921 +f 2947//2948 2949//2950 2487//2487 2485//2486 +f 2948//2949 2947//2948 2485//2486 2484//2951 +f 2950//2952 2951//2953 2928//2929 2927//2928 +f 2952//2954 2950//2952 2927//2928 2926//2927 +f 2950//2952 2952//2954 2496//2497 2494//2495 +f 2951//2953 2950//2952 2494//2495 2493//2494 +f 2953//2955 2954//2956 2934//2935 2933//2934 +f 2933//2934 2932//2933 2955//2957 2953//2955 +f 2953//2955 2955//2957 2504//2505 2503//2504 +f 2954//2956 2953//2955 2503//2504 2502//2503 +f 2956//2958 2957//2959 2940//2941 2939//2940 +f 2958//2960 2956//2958 2939//2940 2938//2939 +f 2956//2958 2958//2960 2514//2515 2512//2513 +f 2957//2959 2956//2958 2512//2513 2511//2512 +f 2959//2961 2960//2962 2946//2947 2945//2946 +f 2961//2963 2959//2961 2945//2946 2944//2945 +f 2959//2961 2961//2963 2523//2524 2521//2522 +f 2960//2962 2959//2961 2521//2522 2520//2521 +f 2962//2964 2963//2965 2964//2966 2965//2967 +f 2966//2968 2962//2964 2965//2967 2967//2969 +f 2962//2964 2966//2968 2968//2970 2969//2971 +f 2963//2965 2962//2964 2969//2971 2970//2972 +f 2971//2973 2972//2974 2973//2975 2974//2976 +f 2975//2977 2971//2973 2974//2976 2976//2978 +f 2971//2973 2975//2977 2977//2979 2978//2980 +f 2972//2974 2971//2973 2978//2980 2979//2981 +f 2980//2982 2981//2983 2982//2984 2983//2985 +f 2963//2965 2980//2982 2983//2985 2964//2966 +f 2980//2982 2963//2965 2970//2972 2984//2986 +f 2981//2983 2980//2982 2984//2986 2985//2987 +f 2986//2988 2987//2989 2988//2990 2989//2991 +f 2972//2974 2986//2988 2989//2991 2973//2975 +f 2986//2988 2972//2974 2979//2981 2990//2992 +f 2987//2989 2986//2988 2990//2992 2991//2993 +f 2992//2994 2993//2995 2994//2996 2995//2997 +f 2981//2983 2992//2994 2995//2997 2982//2984 +f 2992//2994 2981//2983 2985//2987 2996//2998 +f 2993//2995 2992//2994 2996//2998 2997//2999 +f 2998//3000 2999//3001 3000//3002 3001//3003 +f 2987//2989 2998//3000 3001//3003 2988//2990 +f 2998//3000 2987//2989 2991//2993 3002//3004 +f 2999//3001 2998//3000 3002//3004 3003//3005 +f 3004//3006 3005//3007 3006//3008 3007//3009 +f 2993//2995 3004//3006 3007//3009 2994//2996 +f 3004//3006 2993//2995 2997//2999 3008//3010 +f 3005//3007 3004//3006 3008//3010 3009//3011 +f 3010//3012 3011//3013 3012//3014 3013//3015 +f 2999//3001 3010//3012 3013//3015 3000//3002 +f 3010//3012 2999//3001 3003//3005 3014//3016 +f 3011//3013 3010//3012 3014//3016 3015//3017 +f 3016//3018 3017//3019 3018//3020 3019//3021 +f 3005//3007 3016//3018 3019//3021 3006//3008 +f 3016//3018 3005//3007 3009//3011 3020//3022 +f 3017//3019 3016//3018 3020//3022 3021//3023 +f 3022//3024 3023//3025 3024//3026 3025//3027 +f 3011//3013 3022//3024 3025//3027 3012//3014 +f 3022//3024 3011//3013 3015//3017 3026//3028 +f 3023//3025 3022//3024 3026//3028 3027//3029 +f 3028//3030 3029//3031 3030//3032 3031//3033 +f 3017//3019 3028//3030 3031//3033 3018//3020 +f 3028//3030 3017//3019 3021//3023 3032//3034 +f 3029//3031 3028//3030 3032//3034 3033//3035 +f 3034//3036 3035//3037 3036//3038 3037//3039 +f 3023//3025 3034//3036 3037//3039 3024//3026 +f 3034//3036 3023//3025 3027//3029 3038//3040 +f 3035//3037 3034//3036 3038//3040 3039//3041 +f 3040//3042 3041//3043 3042//3044 3043//3045 +f 3029//3031 3040//3042 3043//3045 3030//3032 +f 3040//3042 3029//3031 3033//3035 3044//3046 +f 3041//3043 3040//3042 3044//3046 3045//3047 +f 3046//3048 3047//3049 3048//3050 3049//3051 +f 3035//3037 3046//3048 3049//3051 3036//3038 +f 3046//3048 3035//3037 3039//3041 3050//3052 +f 3047//3049 3046//3048 3050//3052 3051//3053 +f 3052//3054 3053//3055 3054//3056 3055//3057 +f 3041//3043 3052//3054 3055//3057 3042//3044 +f 3052//3054 3041//3043 3045//3047 3056//3058 +f 3053//3055 3052//3054 3056//3058 3057//3059 +f 3058//3060 3059//3061 3060//3062 3061//3063 +f 3047//3049 3058//3060 3061//3063 3048//3050 +f 3058//3060 3047//3049 3051//3053 3062//3064 +f 3059//3061 3058//3060 3062//3064 3063//3065 +f 3064//3066 3065//3067 3066//3068 3067//3069 +f 3053//3055 3064//3066 3067//3069 3054//3056 +f 3064//3066 3053//3055 3057//3059 3068//3070 +f 3065//3067 3064//3066 3068//3070 3069//3071 +f 3070//3072 3071//3073 3072//3074 3073//3075 +f 3059//3061 3070//3072 3073//3075 3060//3062 +f 3070//3072 3059//3061 3063//3065 3074//3076 +f 3071//3073 3070//3072 3074//3076 3075//3077 +f 3076//3078 3077//3079 3078//3080 3079//3081 +f 3065//3067 3076//3078 3079//3081 3066//3068 +f 3076//3078 3065//3067 3069//3071 3080//3082 +f 3077//3079 3076//3078 3080//3082 3081//3083 +f 3082//3084 3083//3085 3084//3086 3085//3087 +f 3071//3073 3082//3084 3085//3087 3072//3074 +f 3082//3084 3071//3073 3075//3077 3086//3088 +f 3083//3085 3082//3084 3086//3088 3087//3089 +f 3088//3090 3089//3091 3090//3092 3091//3093 +f 3092//3094 3088//3090 3091//3093 3093//3095 +f 3088//3090 3092//3094 3094//3096 3095//3097 +f 3089//3091 3088//3090 3095//3097 3096//3098 +f 3097//3099 3098//3100 3099//3101 3100//3102 +f 3101//3103 3097//3099 3100//3102 3102//3104 +f 3097//3099 3101//3103 3103//3105 3104//3106 +f 3098//3100 3097//3099 3104//3106 3105//3107 +f 3106//3108 3107//3109 3108//3110 3109//3111 +f 3089//3091 3106//3108 3109//3111 3090//3092 +f 3106//3108 3089//3091 3096//3098 3110//3112 +f 3107//3109 3106//3108 3110//3112 3111//3113 +f 3112//3114 3113//3115 3114//3116 3115//3117 +f 3098//3100 3112//3114 3115//3117 3099//3101 +f 3112//3114 3098//3100 3105//3107 3116//3118 +f 3113//3115 3112//3114 3116//3118 3117//3119 +f 3118//3120 3119//3121 3120//3122 3121//3123 +f 3107//3109 3118//3120 3121//3123 3108//3110 +f 3118//3120 3107//3109 3111//3113 3122//3124 +f 3119//3121 3118//3120 3122//3124 3123//3125 +f 3124//3126 3125//3127 3126//3128 3127//3129 +f 3113//3115 3124//3126 3127//3129 3114//3116 +f 3124//3126 3113//3115 3117//3119 3128//3130 +f 3125//3127 3124//3126 3128//3130 3129//3131 +f 3130//3132 3131//3133 3132//3134 3133//3135 +f 3119//3121 3130//3132 3133//3135 3120//3122 +f 3130//3132 3119//3121 3123//3125 3134//3136 +f 3131//3133 3130//3132 3134//3136 3135//3137 +f 3136//3138 3137//3139 3138//3140 3139//3141 +f 3125//3127 3136//3138 3139//3141 3126//3128 +f 3136//3138 3125//3127 3129//3131 3140//3142 +f 3137//3139 3136//3138 3140//3142 3141//3143 +f 3142//3144 2966//2968 2967//2969 3143//3145 +f 3131//3133 3142//3144 3143//3145 3132//3134 +f 3142//3144 3131//3133 3135//3137 3144//3146 +f 2966//2968 3142//3144 3144//3146 2968//2970 +f 3145//3147 2975//2977 2976//2978 3146//3148 +f 3137//3139 3145//3147 3146//3148 3138//3140 +f 3145//3147 3137//3139 3141//3143 3147//3149 +f 2975//2977 3145//3147 3147//3149 2977//2979 +f 3148//3150 3149//3151 2970//2972 2969//2971 +f 3150//3152 3148//3150 2969//2971 2968//2970 +f 3148//3150 3150//3152 2502//2503 2501//2502 +f 3149//3151 3148//3150 2501//2502 2508//2509 +f 3151//3153 3152//3154 2985//2987 2984//2986 +f 3149//3151 3151//3153 2984//2986 2970//2972 +f 3151//3153 3149//3151 2508//2509 2540//2541 +f 3152//3154 3151//3153 2540//2541 2544//2545 +f 3153//3155 3154//3156 2997//2999 2996//2998 +f 3152//3154 3153//3155 2996//2998 2985//2987 +f 3153//3155 3152//3154 2544//2545 2570//2571 +f 3154//3156 3153//3155 2570//2571 2574//2575 +f 3155//3157 3156//3158 3009//3011 3008//3010 +f 3154//3156 3155//3157 3008//3010 2997//2999 +f 3155//3157 3154//3156 2574//2575 2600//2601 +f 3156//3158 3155//3157 2600//2601 2604//2605 +f 3157//3159 3158//3160 3021//3023 3020//3022 +f 3156//3158 3157//3159 3020//3022 3009//3011 +f 3157//3159 3156//3158 2604//2605 2630//2631 +f 3158//3160 3157//3159 2630//2631 2634//2635 +f 3159//3161 3160//3162 3033//3035 3032//3034 +f 3158//3160 3159//3161 3032//3034 3021//3023 +f 3159//3161 3158//3160 2634//2635 2660//2661 +f 3160//3162 3159//3161 2660//2661 2664//2665 +f 3161//3163 3162//3164 3045//3047 3044//3046 +f 3160//3162 3161//3163 3044//3046 3033//3035 +f 3161//3163 3160//3162 2664//2665 2690//2691 +f 3162//3164 3161//3163 2690//2691 2694//2695 +f 3163//3165 3164//3166 3057//3059 3056//3058 +f 3162//3164 3163//3165 3056//3058 3045//3047 +f 3163//3165 3162//3164 2694//2695 2720//2721 +f 3164//3166 3163//3165 2720//2721 2724//2725 +f 3165//3167 3166//3168 3069//3071 3068//3070 +f 3164//3166 3165//3167 3068//3070 3057//3059 +f 3165//3167 3164//3166 2724//2725 2750//2751 +f 3166//3168 3165//3167 2750//2751 2754//2755 +f 3167//3169 3168//3170 3081//3083 3080//3082 +f 3166//3168 3167//3169 3080//3082 3069//3071 +f 3167//3169 3166//3168 2754//2755 2780//2781 +f 3168//3170 3167//3169 2780//2781 2784//2785 +f 3169//3171 3170//3172 3096//3098 3095//3097 +f 3171//3173 3169//3171 3095//3097 3094//3096 +f 3169//3171 3171//3173 2823//2824 3172//3174 +f 3170//3172 3169//3171 3172//3174 2862//2863 +f 3173//3175 3174//3176 3111//3113 3110//3112 +f 3170//3172 3173//3175 3110//3112 3096//3098 +f 3173//3175 3170//3172 2862//2863 2861//2862 +f 3174//3176 3173//3175 2861//2862 2868//2869 +f 3175//3177 3176//3178 3123//3125 3122//3124 +f 3174//3176 3175//3177 3122//3124 3111//3113 +f 3175//3177 3174//3176 2868//2869 2900//2901 +f 3176//3178 3175//3177 2900//2901 2904//2905 +f 3177//3179 3178//3180 3135//3137 3134//3136 +f 3176//3178 3177//3179 3134//3136 3123//3125 +f 3177//3179 3176//3178 2904//2905 2930//2931 +f 3178//3180 3177//3179 2930//2931 2934//2935 +f 3179//3181 3150//3152 2968//2970 3144//3146 +f 3178//3180 3179//3181 3144//3146 3135//3137 +f 3179//3181 3178//3180 2934//2935 2954//2956 +f 3150//3152 3179//3181 2954//2956 2502//2503 +f 3180//3182 3181//3183 3182//3184 3183//3185 +f 3184//3186 3180//3182 3183//3185 3185//3187 +f 3180//3182 3184//3186 3186//3188 3187//3189 +f 3181//3183 3180//3182 3187//3189 3188//3190 +f 3189//3191 3190//3192 3188//3190 3187//3189 +f 3191//3193 3189//3191 3187//3189 3186//3188 +f 3189//3191 3191//3193 3192//3194 3193//3195 +f 3190//3192 3189//3191 3193//3195 3194//3196 +f 3195//3197 3196//3198 3194//3196 3193//3195 +f 3197//3199 3195//3197 3193//3195 3192//3194 +f 3195//3197 3197//3199 3198//3200 3199//3201 +f 3196//3198 3195//3197 3199//3201 3200//3202 +f 3201//3203 3202//3204 3200//3202 3199//3201 +f 3203//3205 3201//3203 3199//3201 3198//3200 +f 3201//3203 3203//3205 3204//3206 3205//3207 +f 3202//3204 3201//3203 3205//3207 3206//3208 +f 3207//3209 3208//3210 3206//3208 3205//3207 +f 3209//3211 3207//3209 3205//3207 3204//3206 +f 3207//3209 3209//3211 3210//3212 3211//3213 +f 3208//3210 3207//3209 3211//3213 3212//3214 +f 3213//3215 3214//3216 3212//3214 3211//3213 +f 3215//3217 3213//3215 3211//3213 3210//3212 +f 3213//3215 3215//3217 3216//3218 3217//3219 +f 3214//3216 3213//3215 3217//3219 3218//3220 +f 3219//3221 3220//3222 3218//3220 3217//3219 +f 3221//3223 3219//3221 3217//3219 3216//3218 +f 3219//3221 3221//3223 3222//3224 3223//3225 +f 3220//3222 3219//3221 3223//3225 3224//3226 +f 3225//3227 3226//3228 3224//3226 3223//3225 +f 3227//3229 3225//3227 3223//3225 3222//3224 +f 3225//3227 3227//3229 3228//3230 3229//3231 +f 3226//3228 3225//3227 3229//3231 3230//3232 +f 3231//3233 3232//3234 3230//3232 3229//3231 +f 3233//3235 3231//3233 3229//3231 3228//3230 +f 3231//3233 3233//3235 3234//3236 3235//3237 +f 3232//3234 3231//3233 3235//3237 3236//3238 +f 3237//3239 3238//3240 3236//3238 3235//3237 +f 3239//3241 3237//3239 3235//3237 3234//3236 +f 3237//3239 3239//3241 3240//3242 3241//3243 +f 3238//3240 3237//3239 3241//3243 3242//3244 +f 3243//3245 3244//3246 3245//3247 3246//3248 +f 3247//3249 3243//3245 3246//3248 3248//3250 +f 3243//3245 3247//3249 3249//3251 3250//3252 +f 3244//3246 3243//3245 3250//3252 3251//3253 +f 3252//3254 3253//3255 3254//3256 3255//3257 +f 3256//3258 3252//3254 3255//3257 3257//3259 +f 3252//3254 3256//3258 3258//3260 3259//3261 +f 3253//3255 3252//3254 3259//3261 3260//3262 +f 3261//3263 3262//3264 3260//3262 3259//3261 +f 3263//3265 3261//3263 3259//3261 3258//3260 +f 3261//3263 3263//3265 3264//3266 3265//3267 +f 3262//3264 3261//3263 3265//3267 3266//3268 +f 3267//3269 3268//3270 3266//3268 3265//3267 +f 3269//3271 3267//3269 3265//3267 3264//3266 +f 3267//3269 3269//3271 3270//3272 3271//3273 +f 3268//3270 3267//3269 3271//3273 3272//3274 +f 3273//3275 3274//3276 3272//3274 3271//3273 +f 3275//3277 3273//3275 3271//3273 3270//3272 +f 3273//3275 3275//3277 3185//3187 3183//3185 +f 3274//3276 3273//3275 3183//3185 3182//3184 +f 3276//3278 3277//3279 3278//3280 3279//3281 +f 2519//2520 3276//3278 3279//3281 2520//2521 +f 3276//3278 2519//2520 2526//2527 3280//3282 +f 3277//3279 3276//3278 3280//3282 3281//3283 +f 3282//3284 3283//3285 3281//3283 3280//3282 +f 2552//2553 3282//3284 3280//3282 2526//2527 +f 3282//3284 2552//2553 2556//2557 3284//3286 +f 3283//3285 3282//3284 3284//3286 3285//3287 +f 3286//3288 3287//3289 3285//3287 3284//3286 +f 2582//2583 3286//3288 3284//3286 2556//2557 +f 3286//3288 2582//2583 2586//2587 3288//3290 +f 3287//3289 3286//3288 3288//3290 3289//3291 +f 3290//3292 3291//3293 3289//3291 3288//3290 +f 2612//2613 3290//3292 3288//3290 2586//2587 +f 3290//3292 2612//2613 2616//2617 3292//3294 +f 3291//3293 3290//3292 3292//3294 3293//3295 +f 3294//3296 3295//3297 3293//3295 3292//3294 +f 2642//2643 3294//3296 3292//3294 2616//2617 +f 3294//3296 2642//2643 2646//2647 3296//3298 +f 3295//3297 3294//3296 3296//3298 3297//3299 +f 3298//3300 3299//3301 3297//3299 3296//3298 +f 2672//2673 3298//3300 3296//3298 2646//2647 +f 3298//3300 2672//2673 2676//2677 3300//3302 +f 3299//3301 3298//3300 3300//3302 3301//3303 +f 3302//3304 3303//3305 3301//3303 3300//3302 +f 2702//2703 3302//3304 3300//3302 2676//2677 +f 3302//3304 2702//2703 2706//2707 3304//3306 +f 3303//3305 3302//3304 3304//3306 3305//3307 +f 3306//3308 3307//3309 3305//3307 3304//3306 +f 2732//2733 3306//3308 3304//3306 2706//2707 +f 3306//3308 2732//2733 2736//2737 3308//3310 +f 3307//3309 3306//3308 3308//3310 3309//3311 +f 3310//3312 3311//3313 3309//3311 3308//3310 +f 2762//2763 3310//3312 3308//3310 2736//2737 +f 3310//3312 2762//2763 2766//2767 3312//3314 +f 3311//3313 3310//3312 3312//3314 3313//3315 +f 3314//3316 3315//3317 3313//3315 3312//3314 +f 2792//2793 3314//3316 3312//3314 2766//2767 +f 3314//3316 2792//2793 2796//2797 3316//3318 +f 3315//3317 3314//3316 3316//3318 3317//3319 +f 3318//3320 3319//3321 3320//3322 3321//3323 +f 2834//2835 3318//3320 3321//3323 2835//2836 +f 3318//3320 2834//2835 2841//2842 3322//3324 +f 3319//3321 3318//3320 3322//3324 3323//3325 +f 3324//3326 3325//3327 3326//3328 3327//3329 +f 2879//2880 3324//3326 3327//3329 2880//2881 +f 3324//3326 2879//2880 2886//2887 3328//3330 +f 3325//3327 3324//3326 3328//3330 3329//3331 +f 3330//3332 3331//3333 3329//3331 3328//3330 +f 2912//2913 3330//3332 3328//3330 2886//2887 +f 3330//3332 2912//2913 2916//2917 3332//3334 +f 3331//3333 3330//3332 3332//3334 3333//3335 +f 3334//3336 3335//3337 3333//3335 3332//3334 +f 2942//2943 3334//3336 3332//3334 2916//2917 +f 3334//3336 2942//2943 2946//2947 3336//3338 +f 3335//3337 3334//3336 3336//3338 3337//3339 +f 3338//3340 3339//3341 3337//3339 3336//3338 +f 2960//2962 3338//3340 3336//3338 2946//2947 +f 3338//3340 2960//2962 2520//2521 3279//3281 +f 3339//3341 3338//3340 3279//3281 3278//3280 +f 3340//3342 2522//2523 2523//2524 3341//3343 +f 3342//3344 3340//3342 3341//3343 3343//3345 +f 3340//3342 3342//3344 3344//3346 3345//3347 +f 2522//2523 3340//3342 3345//3347 2524//2525 +f 3346//3348 2553//2554 2524//2525 3345//3347 +f 3347//3349 3346//3348 3345//3347 3344//3346 +f 3346//3348 3347//3349 3348//3350 3349//3351 +f 2553//2554 3346//3348 3349//3351 2554//2555 +f 3350//3352 2583//2584 2554//2555 3349//3351 +f 3351//3353 3350//3352 3349//3351 3348//3350 +f 3350//3352 3351//3353 3352//3354 3353//3355 +f 2583//2584 3350//3352 3353//3355 2584//2585 +f 3354//3356 2613//2614 2584//2585 3353//3355 +f 3355//3357 3354//3356 3353//3355 3352//3354 +f 3354//3356 3355//3357 3356//3358 3357//3359 +f 2613//2614 3354//3356 3357//3359 2614//2615 +f 3358//3360 2643//2644 2614//2615 3357//3359 +f 3359//3361 3358//3360 3357//3359 3356//3358 +f 3358//3360 3359//3361 3360//3362 3361//3363 +f 2643//2644 3358//3360 3361//3363 2644//2645 +f 3362//3364 2673//2674 2644//2645 3361//3363 +f 3363//3365 3362//3364 3361//3363 3360//3362 +f 3362//3364 3363//3365 3364//3366 3365//3367 +f 2673//2674 3362//3364 3365//3367 2674//2675 +f 3366//3368 2703//2704 2674//2675 3365//3367 +f 3367//3369 3366//3368 3365//3367 3364//3366 +f 3366//3368 3367//3369 3368//3370 3369//3371 +f 2703//2704 3366//3368 3369//3371 2704//2705 +f 3370//3372 2733//2734 2704//2705 3369//3371 +f 3371//3373 3370//3372 3369//3371 3368//3370 +f 3370//3372 3371//3373 3372//3374 3373//3375 +f 2733//2734 3370//3372 3373//3375 2734//2735 +f 3374//3376 2763//2764 2734//2735 3373//3375 +f 3375//3377 3374//3376 3373//3375 3372//3374 +f 3374//3376 3375//3377 3376//3378 3377//3379 +f 2763//2764 3374//3376 3377//3379 2764//2765 +f 3378//3380 2793//2794 2764//2765 3377//3379 +f 3379//3381 3378//3380 3377//3379 3376//3378 +f 3378//3380 3379//3381 3380//3382 3381//3383 +f 2793//2794 3378//3380 3381//3383 2794//2795 +f 3382//3384 2837//2838 2838//2839 3383//3385 +f 3384//3386 3382//3384 3383//3385 3385//3387 +f 3382//3384 3384//3386 3386//3388 3387//3389 +f 2837//2838 3382//3384 3387//3389 2839//2840 +f 3388//3390 2882//2883 2883//2884 3389//3391 +f 3390//3392 3388//3390 3389//3391 3391//3393 +f 3388//3390 3390//3392 3392//3394 3393//3395 +f 2882//2883 3388//3390 3393//3395 2884//2885 +f 3394//3396 2913//2914 2884//2885 3393//3395 +f 3395//3397 3394//3396 3393//3395 3392//3394 +f 3394//3396 3395//3397 3396//3398 3397//3399 +f 2913//2914 3394//3396 3397//3399 2914//2915 +f 3398//3400 2943//2944 2914//2915 3397//3399 +f 3399//3401 3398//3400 3397//3399 3396//3398 +f 3398//3400 3399//3401 3400//3402 3401//3403 +f 2943//2944 3398//3400 3401//3403 2944//2945 +f 3402//3404 2961//2963 2944//2945 3401//3403 +f 3403//3405 3402//3404 3401//3403 3400//3402 +f 3402//3404 3403//3405 3343//3345 3341//3343 +f 2961//2963 3402//3404 3341//3343 2523//2524 +f 3404//3406 3405//3407 3406//3408 3407//3409 +f 2965//2967 3404//3406 3407//3409 2967//2969 +f 3404//3406 2965//2967 2964//2966 3408//3410 +f 3405//3407 3404//3406 3408//3410 3409//3411 +f 3410//3412 3411//3413 3409//3411 3408//3410 +f 2983//2985 3410//3412 3408//3410 2964//2966 +f 3410//3412 2983//2985 2982//2984 3412//3414 +f 3411//3413 3410//3412 3412//3414 3413//3415 +f 3414//3416 3415//3417 3413//3415 3412//3414 +f 2995//2997 3414//3416 3412//3414 2982//2984 +f 3414//3416 2995//2997 2994//2996 3416//3418 +f 3415//3417 3414//3416 3416//3418 3417//3419 +f 3418//3420 3419//3421 3417//3419 3416//3418 +f 3007//3009 3418//3420 3416//3418 2994//2996 +f 3418//3420 3007//3009 3006//3008 3420//3422 +f 3419//3421 3418//3420 3420//3422 3421//3423 +f 3422//3424 3423//3425 3421//3423 3420//3422 +f 3019//3021 3422//3424 3420//3422 3006//3008 +f 3422//3424 3019//3021 3018//3020 3424//3426 +f 3423//3425 3422//3424 3424//3426 3425//3427 +f 3426//3428 3427//3429 3425//3427 3424//3426 +f 3031//3033 3426//3428 3424//3426 3018//3020 +f 3426//3428 3031//3033 3030//3032 3428//3430 +f 3427//3429 3426//3428 3428//3430 3429//3431 +f 3430//3432 3431//3433 3429//3431 3428//3430 +f 3043//3045 3430//3432 3428//3430 3030//3032 +f 3430//3432 3043//3045 3042//3044 3432//3434 +f 3431//3433 3430//3432 3432//3434 3433//3435 +f 3434//3436 3435//3437 3433//3435 3432//3434 +f 3055//3057 3434//3436 3432//3434 3042//3044 +f 3434//3436 3055//3057 3054//3056 3436//3438 +f 3435//3437 3434//3436 3436//3438 3437//3439 +f 3438//3440 3439//3441 3437//3439 3436//3438 +f 3067//3069 3438//3440 3436//3438 3054//3056 +f 3438//3440 3067//3069 3066//3068 3440//3442 +f 3439//3441 3438//3440 3440//3442 3441//3443 +f 3442//3444 3443//3445 3441//3443 3440//3442 +f 3079//3081 3442//3444 3440//3442 3066//3068 +f 3442//3444 3079//3081 3078//3080 3444//3446 +f 3443//3445 3442//3444 3444//3446 3445//3447 +f 3446//3448 3447//3449 3448//3450 3449//3451 +f 3450//3452 3446//3448 3449//3451 3451//3453 +f 3446//3448 3450//3452 3093//3095 3452//3454 +f 3447//3449 3446//3448 3452//3454 3453//3455 +f 3454//3456 3455//3457 3456//3458 3457//3459 +f 3109//3111 3454//3456 3457//3459 3090//3092 +f 3454//3456 3109//3111 3108//3110 3458//3460 +f 3455//3457 3454//3456 3458//3460 3459//3461 +f 3460//3462 3461//3463 3459//3461 3458//3460 +f 3121//3123 3460//3462 3458//3460 3108//3110 +f 3460//3462 3121//3123 3120//3122 3462//3464 +f 3461//3463 3460//3462 3462//3464 3463//3465 +f 3464//3466 3465//3467 3463//3465 3462//3464 +f 3133//3135 3464//3466 3462//3464 3120//3122 +f 3464//3466 3133//3135 3132//3134 3466//3468 +f 3465//3467 3464//3466 3466//3468 3467//3469 +f 3468//3470 3469//3471 3467//3469 3466//3468 +f 3143//3145 3468//3470 3466//3468 3132//3134 +f 3468//3470 3143//3145 2967//2969 3407//3409 +f 3469//3471 3468//3470 3407//3409 3406//3408 +f 3470//3472 3471//3473 3472//3474 3473//3475 +f 3474//3476 3470//3472 3473//3475 3475//3477 +f 3470//3472 3474//3476 3476//3478 3477//3479 +f 3471//3473 3470//3472 3477//3479 3478//3480 +f 3479//3481 3480//3482 3478//3480 3477//3479 +f 3481//3483 3479//3481 3477//3479 3476//3478 +f 3479//3481 3481//3483 3482//3484 3483//3485 +f 3480//3482 3479//3481 3483//3485 3484//3486 +f 3485//3487 3486//3488 3484//3486 3483//3485 +f 3487//3489 3485//3487 3483//3485 3482//3484 +f 3485//3487 3487//3489 3488//3490 3489//3491 +f 3486//3488 3485//3487 3489//3491 3490//3492 +f 3491//3493 3492//3494 3490//3492 3489//3491 +f 3493//3495 3491//3493 3489//3491 3488//3490 +f 3491//3493 3493//3495 3494//3496 3495//3497 +f 3492//3494 3491//3493 3495//3497 3496//3498 +f 3497//3499 3498//3500 3496//3498 3495//3497 +f 3499//3501 3497//3499 3495//3497 3494//3496 +f 3497//3499 3499//3501 3500//3502 3501//3503 +f 3498//3500 3497//3499 3501//3503 3502//3504 +f 3503//3505 3504//3506 3502//3504 3501//3503 +f 3505//3507 3503//3505 3501//3503 3500//3502 +f 3503//3505 3505//3507 3506//3508 3507//3509 +f 3504//3506 3503//3505 3507//3509 3508//3510 +f 3509//3511 3510//3512 3508//3510 3507//3509 +f 3511//3513 3509//3511 3507//3509 3506//3508 +f 3509//3511 3511//3513 3512//3514 3513//3515 +f 3510//3512 3509//3511 3513//3515 3514//3516 +f 3515//3517 3516//3518 3514//3516 3513//3515 +f 3517//3519 3515//3517 3513//3515 3512//3514 +f 3515//3517 3517//3519 3518//3520 3519//3521 +f 3516//3518 3515//3517 3519//3521 3520//3522 +f 3521//3523 3522//3524 3520//3522 3519//3521 +f 3523//3525 3521//3523 3519//3521 3518//3520 +f 3521//3523 3523//3525 3524//3526 3525//3527 +f 3522//3524 3521//3523 3525//3527 3526//3528 +f 3527//3529 3528//3530 3526//3528 3525//3527 +f 3529//3531 3527//3529 3525//3527 3524//3526 +f 3527//3529 3529//3531 3530//3532 3531//3533 +f 3528//3530 3527//3529 3531//3533 3532//3534 +f 3533//3535 3534//3536 3535//3537 3536//3538 +f 3537//3539 3533//3535 3536//3538 3538//3540 +f 3533//3535 3537//3539 3539//3541 3540//3542 +f 3534//3536 3533//3535 3540//3542 3541//3543 +f 3542//3544 3543//3545 3544//3546 3545//3547 +f 3546//3548 3542//3544 3545//3547 3547//3549 +f 3542//3544 3546//3548 3548//3550 3549//3551 +f 3543//3545 3542//3544 3549//3551 3550//3552 +f 3551//3553 3552//3554 3550//3552 3549//3551 +f 3553//3555 3551//3553 3549//3551 3548//3550 +f 3551//3553 3553//3555 3554//3556 3555//3557 +f 3552//3554 3551//3553 3555//3557 3556//3558 +f 3557//3559 3558//3560 3556//3558 3555//3557 +f 3559//3561 3557//3559 3555//3557 3554//3556 +f 3557//3559 3559//3561 3560//3562 3561//3563 +f 3558//3560 3557//3559 3561//3563 3562//3564 +f 3563//3565 3564//3566 3562//3564 3561//3563 +f 3565//3567 3563//3565 3561//3563 3560//3562 +f 3563//3565 3565//3567 3475//3477 3473//3475 +f 3564//3566 3563//3565 3473//3475 3472//3474 +f 3566//3568 2495//2496 2496//2497 3567//3569 +f 3568//3570 3566//3568 3567//3569 3569//3570 +f 3566//3568 3568//3570 3570//3570 3571//3571 +f 2495//2496 3566//3568 3571//3571 2497//2498 +f 3572//3572 2535//2536 2497//2498 3571//3571 +f 3573//3570 3572//3572 3571//3571 3570//3570 +f 3572//3572 3573//3570 3574//3570 3575//3573 +f 2535//2536 3572//3572 3575//3573 2536//2537 +f 3576//3574 2565//2566 2536//2537 3575//3573 +f 3577//3570 3576//3574 3575//3573 3574//3570 +f 3576//3574 3577//3570 3578//3570 3579//3575 +f 2565//2566 3576//3574 3579//3575 2566//2567 +f 3580//3576 2595//2596 2566//2567 3579//3575 +f 3581//3570 3580//3576 3579//3575 3578//3570 +f 3580//3576 3581//3570 3582//3570 3583//3577 +f 2595//2596 3580//3576 3583//3577 2596//2597 +f 3584//3578 2625//2626 2596//2597 3583//3577 +f 3585//3570 3584//3578 3583//3577 3582//3570 +f 3584//3578 3585//3570 3586//3570 3587//3579 +f 2625//2626 3584//3578 3587//3579 2626//2627 +f 3588//3580 2655//2656 2626//2627 3587//3579 +f 3589//3570 3588//3580 3587//3579 3586//3570 +f 3588//3580 3589//3570 3590//3570 3591//3581 +f 2655//2656 3588//3580 3591//3581 2656//2657 +f 3592//3582 2685//2686 2656//2657 3591//3581 +f 3593//3570 3592//3582 3591//3581 3590//3570 +f 3592//3582 3593//3570 3594//3570 3595//3583 +f 2685//2686 3592//3582 3595//3583 2686//2687 +f 3596//3584 2715//2716 2686//2687 3595//3583 +f 3597//3570 3596//3584 3595//3583 3594//3570 +f 3596//3584 3597//3570 3598//3570 3599//3585 +f 2715//2716 3596//3584 3599//3585 2716//2717 +f 3600//3586 2745//2746 2716//2717 3599//3585 +f 3601//3570 3600//3586 3599//3585 3598//3570 +f 3600//3586 3601//3570 3602//3570 3603//3587 +f 2745//2746 3600//3586 3603//3587 2746//2747 +f 3604//3588 2775//2776 2746//2747 3603//3587 +f 3605//3570 3604//3588 3603//3587 3602//3570 +f 3604//3588 3605//3570 3606//3570 3607//3589 +f 2775//2776 3604//3588 3607//3589 2776//2777 +f 3608//3590 2810//2811 2811//2812 3609//3591 +f 3610//3592 3608//3590 3609//3591 3611//3593 +f 3608//3590 3610//3592 3612//3594 3613//3595 +f 2810//2811 3608//3590 3613//3595 2812//2813 +f 3614//3596 2855//2856 2856//2857 3615//3597 +f 3616//3570 3614//3596 3615//3597 3617//3570 +f 3614//3596 3616//3570 3618//3570 3619//3598 +f 2855//2856 3614//3596 3619//3598 2857//2858 +f 3620//3599 2895//2896 2857//2858 3619//3598 +f 3621//3570 3620//3599 3619//3598 3618//3570 +f 3620//3599 3621//3570 3622//3570 3623//3600 +f 2895//2896 3620//3599 3623//3600 2896//2897 +f 3624//3601 2925//2926 2896//2897 3623//3600 +f 3625//3570 3624//3601 3623//3600 3622//3570 +f 3624//3601 3625//3570 3626//3570 3627//3602 +f 2925//2926 3624//3601 3627//3602 2926//2927 +f 3628//3603 2952//2954 2926//2927 3627//3602 +f 3629//3570 3628//3603 3627//3602 3626//3570 +f 3628//3603 3629//3570 3569//3570 3567//3569 +f 2952//2954 3628//3603 3567//3569 2496//2497 +f 3630//3604 3631//3605 3632//3606 3633//3607 +f 2492//2493 3630//3604 3633//3607 2493//2494 +f 3630//3604 2492//2493 2499//2500 3634//3608 +f 3631//3605 3630//3604 3634//3608 3635//3609 +f 3636//3610 3637//3611 3635//3609 3634//3608 +f 2534//2535 3636//3610 3634//3608 2499//2500 +f 3636//3610 2534//2535 2538//2539 3638//3612 +f 3637//3611 3636//3610 3638//3612 3639//3613 +f 3640//3614 3641//3615 3639//3613 3638//3612 +f 2564//2565 3640//3614 3638//3612 2538//2539 +f 3640//3614 2564//2565 2568//2569 3642//3616 +f 3641//3615 3640//3614 3642//3616 3643//3617 +f 3644//3618 3645//3619 3643//3617 3642//3616 +f 2594//2595 3644//3618 3642//3616 2568//2569 +f 3644//3618 2594//2595 2598//2599 3646//3620 +f 3645//3619 3644//3618 3646//3620 3647//3621 +f 3648//3622 3649//3623 3647//3621 3646//3620 +f 2624//2625 3648//3622 3646//3620 2598//2599 +f 3648//3622 2624//2625 2628//2629 3650//3624 +f 3649//3623 3648//3622 3650//3624 3651//3625 +f 3652//3626 3653//3627 3651//3625 3650//3624 +f 2654//2655 3652//3626 3650//3624 2628//2629 +f 3652//3626 2654//2655 2658//2659 3654//3628 +f 3653//3627 3652//3626 3654//3628 3655//3629 +f 3656//3630 3657//3631 3655//3629 3654//3628 +f 2684//2685 3656//3630 3654//3628 2658//2659 +f 3656//3630 2684//2685 2688//2689 3658//3632 +f 3657//3631 3656//3630 3658//3632 3659//3633 +f 3660//3634 3661//3635 3659//3633 3658//3632 +f 2714//2715 3660//3634 3658//3632 2688//2689 +f 3660//3634 2714//2715 2718//2719 3662//3636 +f 3661//3635 3660//3634 3662//3636 3663//3637 +f 3664//3638 3665//3639 3663//3637 3662//3636 +f 2744//2745 3664//3638 3662//3636 2718//2719 +f 3664//3638 2744//2745 2748//2749 3666//3640 +f 3665//3639 3664//3638 3666//3640 3667//3641 +f 3668//3642 3669//3643 3667//3641 3666//3640 +f 2774//2775 3668//3642 3666//3640 2748//2749 +f 3668//3642 2774//2775 2778//2779 3670//3644 +f 3669//3643 3668//3642 3670//3644 3671//3645 +f 3672//3646 3673//3647 3674//3648 3675//3649 +f 2807//2808 3672//3646 3675//3649 2808//2809 +f 3672//3646 2807//2808 2814//2815 3676//3650 +f 3673//3647 3672//3646 3676//3650 3677//3651 +f 3678//3652 3679//3653 3680//3654 3681//3655 +f 2852//2853 3678//3652 3681//3655 2853//2854 +f 3678//3652 2852//2853 2859//2860 3682//3656 +f 3679//3653 3678//3652 3682//3656 3683//3657 +f 3684//3658 3685//3659 3683//3657 3682//3656 +f 2894//2895 3684//3658 3682//3656 2859//2860 +f 3684//3658 2894//2895 2898//2899 3686//3660 +f 3685//3659 3684//3658 3686//3660 3687//3661 +f 3688//3662 3689//3663 3687//3661 3686//3660 +f 2924//2925 3688//3662 3686//3660 2898//2899 +f 3688//3662 2924//2925 2928//2929 3690//3664 +f 3689//3663 3688//3662 3690//3664 3691//3665 +f 3692//3666 3693//3667 3691//3665 3690//3664 +f 2951//2953 3692//3666 3690//3664 2928//2929 +f 3692//3666 2951//2953 2493//2494 3633//3607 +f 3693//3667 3692//3666 3633//3607 3632//3606 +f 3694//3668 3568//3570 3569//3570 3695//3669 +f 3471//3473 3694//3668 3695//3669 3472//3474 +f 3694//3668 3471//3473 3478//3480 3696//3670 +f 3568//3570 3694//3668 3696//3670 3570//3570 +f 3697//3671 3573//3570 3570//3570 3696//3670 +f 3480//3482 3697//3671 3696//3670 3478//3480 +f 3697//3671 3480//3482 3484//3486 3698//3672 +f 3573//3570 3697//3671 3698//3672 3574//3570 +f 3699//3673 3577//3570 3574//3570 3698//3672 +f 3486//3488 3699//3673 3698//3672 3484//3486 +f 3699//3673 3486//3488 3490//3492 3700//3674 +f 3577//3570 3699//3673 3700//3674 3578//3570 +f 3701//3675 3581//3570 3578//3570 3700//3674 +f 3492//3494 3701//3675 3700//3674 3490//3492 +f 3701//3675 3492//3494 3496//3498 3702//3676 +f 3581//3570 3701//3675 3702//3676 3582//3570 +f 3703//3677 3585//3570 3582//3570 3702//3676 +f 3498//3500 3703//3677 3702//3676 3496//3498 +f 3703//3677 3498//3500 3502//3504 3704//3678 +f 3585//3570 3703//3677 3704//3678 3586//3570 +f 3705//3679 3589//3570 3586//3570 3704//3678 +f 3504//3506 3705//3679 3704//3678 3502//3504 +f 3705//3679 3504//3506 3508//3510 3706//3680 +f 3589//3570 3705//3679 3706//3680 3590//3570 +f 3707//3681 3593//3570 3590//3570 3706//3680 +f 3510//3512 3707//3681 3706//3680 3508//3510 +f 3707//3681 3510//3512 3514//3516 3708//3682 +f 3593//3570 3707//3681 3708//3682 3594//3570 +f 3709//3683 3597//3570 3594//3570 3708//3682 +f 3516//3518 3709//3683 3708//3682 3514//3516 +f 3709//3683 3516//3518 3520//3522 3710//3684 +f 3597//3570 3709//3683 3710//3684 3598//3570 +f 3711//3685 3601//3570 3598//3570 3710//3684 +f 3522//3524 3711//3685 3710//3684 3520//3522 +f 3711//3685 3522//3524 3526//3528 3712//3686 +f 3601//3570 3711//3685 3712//3686 3602//3570 +f 3713//3687 3605//3570 3602//3570 3712//3686 +f 3528//3530 3713//3687 3712//3686 3526//3528 +f 3713//3687 3528//3530 3532//3534 3714//3688 +f 3605//3570 3713//3687 3714//3688 3606//3570 +f 3715//3689 3610//3592 3611//3593 3716//3690 +f 3534//3536 3715//3689 3716//3690 3535//3537 +f 3715//3689 3534//3536 3541//3543 3717//3691 +f 3610//3592 3715//3689 3717//3691 3612//3594 +f 3718//3692 3616//3570 3617//3570 3719//3693 +f 3543//3545 3718//3692 3719//3693 3544//3546 +f 3718//3692 3543//3545 3550//3552 3720//3694 +f 3616//3570 3718//3692 3720//3694 3618//3570 +f 3721//3695 3621//3570 3618//3570 3720//3694 +f 3552//3554 3721//3695 3720//3694 3550//3552 +f 3721//3695 3552//3554 3556//3558 3722//3696 +f 3621//3570 3721//3695 3722//3696 3622//3570 +f 3723//3697 3625//3570 3622//3570 3722//3696 +f 3558//3560 3723//3697 3722//3696 3556//3558 +f 3723//3697 3558//3560 3562//3564 3724//3698 +f 3625//3570 3723//3697 3724//3698 3626//3570 +f 3725//3699 3629//3570 3626//3570 3724//3698 +f 3564//3566 3725//3699 3724//3698 3562//3564 +f 3725//3699 3564//3566 3472//3474 3695//3669 +f 3629//3570 3725//3699 3695//3669 3569//3570 +f 3726//3700 3474//3476 3475//3477 3727//3701 +f 3405//3407 3726//3700 3727//3701 3406//3408 +f 3726//3700 3405//3407 3409//3411 3728//3702 +f 3474//3476 3726//3700 3728//3702 3476//3478 +f 3729//3703 3481//3483 3476//3478 3728//3702 +f 3411//3413 3729//3703 3728//3702 3409//3411 +f 3729//3703 3411//3413 3413//3415 3730//3704 +f 3481//3483 3729//3703 3730//3704 3482//3484 +f 3731//3705 3487//3489 3482//3484 3730//3704 +f 3415//3417 3731//3705 3730//3704 3413//3415 +f 3731//3705 3415//3417 3417//3419 3732//3706 +f 3487//3489 3731//3705 3732//3706 3488//3490 +f 3733//3707 3493//3495 3488//3490 3732//3706 +f 3419//3421 3733//3707 3732//3706 3417//3419 +f 3733//3707 3419//3421 3421//3423 3734//3708 +f 3493//3495 3733//3707 3734//3708 3494//3496 +f 3735//3709 3499//3501 3494//3496 3734//3708 +f 3423//3425 3735//3709 3734//3708 3421//3423 +f 3735//3709 3423//3425 3425//3427 3736//3710 +f 3499//3501 3735//3709 3736//3710 3500//3502 +f 3737//3711 3505//3507 3500//3502 3736//3710 +f 3427//3429 3737//3711 3736//3710 3425//3427 +f 3737//3711 3427//3429 3429//3431 3738//3712 +f 3505//3507 3737//3711 3738//3712 3506//3508 +f 3739//3713 3511//3513 3506//3508 3738//3712 +f 3431//3433 3739//3713 3738//3712 3429//3431 +f 3739//3713 3431//3433 3433//3435 3740//3714 +f 3511//3513 3739//3713 3740//3714 3512//3514 +f 3741//3715 3517//3519 3512//3514 3740//3714 +f 3435//3437 3741//3715 3740//3714 3433//3435 +f 3741//3715 3435//3437 3437//3439 3742//3716 +f 3517//3519 3741//3715 3742//3716 3518//3520 +f 3743//3717 3523//3525 3518//3520 3742//3716 +f 3439//3441 3743//3717 3742//3716 3437//3439 +f 3743//3717 3439//3441 3441//3443 3744//3718 +f 3523//3525 3743//3717 3744//3718 3524//3526 +f 3745//3719 3529//3531 3524//3526 3744//3718 +f 3443//3445 3745//3719 3744//3718 3441//3443 +f 3745//3719 3443//3445 3445//3447 3746//3720 +f 3529//3531 3745//3719 3746//3720 3530//3532 +f 3747//3721 3537//3539 3538//3540 3748//3722 +f 3447//3449 3747//3721 3748//3722 3448//3450 +f 3747//3721 3447//3449 3453//3455 3749//3723 +f 3537//3539 3747//3721 3749//3723 3539//3541 +f 3750//3724 3546//3548 3547//3549 3751//3725 +f 3455//3457 3750//3724 3751//3725 3456//3458 +f 3750//3724 3455//3457 3459//3461 3752//3726 +f 3546//3548 3750//3724 3752//3726 3548//3550 +f 3753//3727 3553//3555 3548//3550 3752//3726 +f 3461//3463 3753//3727 3752//3726 3459//3461 +f 3753//3727 3461//3463 3463//3465 3754//3728 +f 3553//3555 3753//3727 3754//3728 3554//3556 +f 3755//3729 3559//3561 3554//3556 3754//3728 +f 3465//3467 3755//3729 3754//3728 3463//3465 +f 3755//3729 3465//3467 3467//3469 3756//3730 +f 3559//3561 3755//3729 3756//3730 3560//3562 +f 3757//3731 3565//3567 3560//3562 3756//3730 +f 3469//3471 3757//3731 3756//3730 3467//3469 +f 3757//3731 3469//3471 3406//3408 3727//3701 +f 3565//3567 3757//3731 3727//3701 3475//3477 +f 3758//3732 3759//3733 3760//3734 3761//3735 +f 3277//3279 3758//3732 3761//3735 3278//3280 +f 3758//3732 3277//3279 3281//3283 3762//3736 +f 3759//3733 3758//3732 3762//3736 3763//3737 +f 3764//3738 3765//3739 3763//3737 3762//3736 +f 3283//3285 3764//3738 3762//3736 3281//3283 +f 3764//3738 3283//3285 3285//3287 3766//3740 +f 3765//3739 3764//3738 3766//3740 3767//3741 +f 3768//3742 3769//3743 3767//3741 3766//3740 +f 3287//3289 3768//3742 3766//3740 3285//3287 +f 3768//3742 3287//3289 3289//3291 3770//3744 +f 3769//3743 3768//3742 3770//3744 3771//3745 +f 3772//3746 3773//3747 3771//3745 3770//3744 +f 3291//3293 3772//3746 3770//3744 3289//3291 +f 3772//3746 3291//3293 3293//3295 3774//3748 +f 3773//3747 3772//3746 3774//3748 3775//3749 +f 3776//3750 3777//3751 3775//3749 3774//3748 +f 3295//3297 3776//3750 3774//3748 3293//3295 +f 3776//3750 3295//3297 3297//3299 3778//3752 +f 3777//3751 3776//3750 3778//3752 3779//3753 +f 3780//3754 3781//3755 3779//3753 3778//3752 +f 3299//3301 3780//3754 3778//3752 3297//3299 +f 3780//3754 3299//3301 3301//3303 3782//3756 +f 3781//3755 3780//3754 3782//3756 3783//3757 +f 3784//3758 3785//3759 3783//3757 3782//3756 +f 3303//3305 3784//3758 3782//3756 3301//3303 +f 3784//3758 3303//3305 3305//3307 3786//3760 +f 3785//3759 3784//3758 3786//3760 3787//3761 +f 3788//3762 3789//3763 3787//3761 3786//3760 +f 3307//3309 3788//3762 3786//3760 3305//3307 +f 3788//3762 3307//3309 3309//3311 3790//3764 +f 3789//3763 3788//3762 3790//3764 3791//3765 +f 3792//3766 3793//3767 3791//3765 3790//3764 +f 3311//3313 3792//3766 3790//3764 3309//3311 +f 3792//3766 3311//3313 3313//3315 3794//3768 +f 3793//3767 3792//3766 3794//3768 3795//3769 +f 3796//3770 3797//3771 3795//3769 3794//3768 +f 3315//3317 3796//3770 3794//3768 3313//3315 +f 3796//3770 3315//3317 3317//3319 3798//3772 +f 3797//3771 3796//3770 3798//3772 3799//3773 +f 3800//3774 3801//3775 3802//3776 3803//3777 +f 3319//3321 3800//3774 3803//3777 3320//3322 +f 3800//3774 3319//3321 3323//3325 3804//3778 +f 3801//3775 3800//3774 3804//3778 3805//3779 +f 3806//3780 3807//3781 3808//3782 3809//3783 +f 3325//3327 3806//3780 3809//3783 3326//3328 +f 3806//3780 3325//3327 3329//3331 3810//3784 +f 3807//3781 3806//3780 3810//3784 3811//3785 +f 3812//3786 3813//3787 3811//3785 3810//3784 +f 3331//3333 3812//3786 3810//3784 3329//3331 +f 3812//3786 3331//3333 3333//3335 3814//3788 +f 3813//3787 3812//3786 3814//3788 3815//3789 +f 3816//3790 3817//3791 3815//3789 3814//3788 +f 3335//3337 3816//3790 3814//3788 3333//3335 +f 3816//3790 3335//3337 3337//3339 3818//3792 +f 3817//3791 3816//3790 3818//3792 3819//3793 +f 3820//3794 3821//3795 3819//3793 3818//3792 +f 3339//3341 3820//3794 3818//3792 3337//3339 +f 3820//3794 3339//3341 3278//3280 3761//3735 +f 3821//3795 3820//3794 3761//3735 3760//3734 +f 3822//3796 2978//2980 2977//2979 3823//3797 +f 2510//2511 3822//3796 3823//3797 2511//2512 +f 3822//3796 2510//2511 2517//2518 3824//3798 +f 2978//2980 3822//3796 3824//3798 2979//2981 +f 3825//3799 2990//2992 2979//2981 3824//3798 +f 2546//2547 3825//3799 3824//3798 2517//2518 +f 3825//3799 2546//2547 2550//2551 3826//3800 +f 2990//2992 3825//3799 3826//3800 2991//2993 +f 3827//3801 3002//3004 2991//2993 3826//3800 +f 2576//2577 3827//3801 3826//3800 2550//2551 +f 3827//3801 2576//2577 2580//2581 3828//3802 +f 3002//3004 3827//3801 3828//3802 3003//3005 +f 3829//3803 3014//3016 3003//3005 3828//3802 +f 2606//2607 3829//3803 3828//3802 2580//2581 +f 3829//3803 2606//2607 2610//2611 3830//3804 +f 3014//3016 3829//3803 3830//3804 3015//3017 +f 3831//3805 3026//3028 3015//3017 3830//3804 +f 2636//2637 3831//3805 3830//3804 2610//2611 +f 3831//3805 2636//2637 2640//2641 3832//3806 +f 3026//3028 3831//3805 3832//3806 3027//3029 +f 3833//3807 3038//3040 3027//3029 3832//3806 +f 2666//2667 3833//3807 3832//3806 2640//2641 +f 3833//3807 2666//2667 2670//2671 3834//3808 +f 3038//3040 3833//3807 3834//3808 3039//3041 +f 3835//3809 3050//3052 3039//3041 3834//3808 +f 2696//2697 3835//3809 3834//3808 2670//2671 +f 3835//3809 2696//2697 2700//2701 3836//3810 +f 3050//3052 3835//3809 3836//3810 3051//3053 +f 3837//3811 3062//3064 3051//3053 3836//3810 +f 2726//2727 3837//3811 3836//3810 2700//2701 +f 3837//3811 2726//2727 2730//2731 3838//3812 +f 3062//3064 3837//3811 3838//3812 3063//3065 +f 3839//3813 3074//3076 3063//3065 3838//3812 +f 2756//2757 3839//3813 3838//3812 2730//2731 +f 3839//3813 2756//2757 2760//2761 3840//3814 +f 3074//3076 3839//3813 3840//3814 3075//3077 +f 3841//3815 3086//3088 3075//3077 3840//3814 +f 2786//2787 3841//3815 3840//3814 2760//2761 +f 3841//3815 2786//2787 2790//2791 3842//3816 +f 3086//3088 3841//3815 3842//3816 3087//3089 +f 3843//3817 3844//3818 3845//3819 3846//3820 +f 2825//2826 3843//3817 3846//3820 2826//2827 +f 3843//3817 2825//2826 2832//2833 3847//3821 +f 3844//3818 3843//3817 3847//3821 3103//3105 +f 3848//3822 3116//3118 3105//3107 3849//3823 +f 2870//2871 3848//3822 3849//3823 2871//2872 +f 3848//3822 2870//2871 2877//2878 3850//3824 +f 3116//3118 3848//3822 3850//3824 3117//3119 +f 3851//3825 3128//3130 3117//3119 3850//3824 +f 2906//2907 3851//3825 3850//3824 2877//2878 +f 3851//3825 2906//2907 2910//2911 3852//3826 +f 3128//3130 3851//3825 3852//3826 3129//3131 +f 3853//3827 3140//3142 3129//3131 3852//3826 +f 2936//2937 3853//3827 3852//3826 2910//2911 +f 3853//3827 2936//2937 2940//2941 3854//3828 +f 3140//3142 3853//3827 3854//3828 3141//3143 +f 3855//3829 3147//3149 3141//3143 3854//3828 +f 2957//2959 3855//3829 3854//3828 2940//2941 +f 3855//3829 2957//2959 2511//2512 3823//3797 +f 3147//3149 3855//3829 3823//3797 2977//2979 +f 3856//3830 3184//3186 3185//3187 3857//3831 +f 3759//3733 3856//3830 3857//3831 3760//3734 +f 3856//3830 3759//3733 3763//3737 3858//3832 +f 3184//3186 3856//3830 3858//3832 3186//3188 +f 3859//3833 3191//3193 3186//3188 3858//3832 +f 3765//3739 3859//3833 3858//3832 3763//3737 +f 3859//3833 3765//3739 3767//3741 3860//3834 +f 3191//3193 3859//3833 3860//3834 3192//3194 +f 3861//3835 3197//3199 3192//3194 3860//3834 +f 3769//3743 3861//3835 3860//3834 3767//3741 +f 3861//3835 3769//3743 3771//3745 3862//3836 +f 3197//3199 3861//3835 3862//3836 3198//3200 +f 3863//3837 3203//3205 3198//3200 3862//3836 +f 3773//3747 3863//3837 3862//3836 3771//3745 +f 3863//3837 3773//3747 3775//3749 3864//3838 +f 3203//3205 3863//3837 3864//3838 3204//3206 +f 3865//3839 3209//3211 3204//3206 3864//3838 +f 3777//3751 3865//3839 3864//3838 3775//3749 +f 3865//3839 3777//3751 3779//3753 3866//3840 +f 3209//3211 3865//3839 3866//3840 3210//3212 +f 3867//3841 3215//3217 3210//3212 3866//3840 +f 3781//3755 3867//3841 3866//3840 3779//3753 +f 3867//3841 3781//3755 3783//3757 3868//3842 +f 3215//3217 3867//3841 3868//3842 3216//3218 +f 3869//3843 3221//3223 3216//3218 3868//3842 +f 3785//3759 3869//3843 3868//3842 3783//3757 +f 3869//3843 3785//3759 3787//3761 3870//3844 +f 3221//3223 3869//3843 3870//3844 3222//3224 +f 3871//3845 3227//3229 3222//3224 3870//3844 +f 3789//3763 3871//3845 3870//3844 3787//3761 +f 3871//3845 3789//3763 3791//3765 3872//3846 +f 3227//3229 3871//3845 3872//3846 3228//3230 +f 3873//3847 3233//3235 3228//3230 3872//3846 +f 3793//3767 3873//3847 3872//3846 3791//3765 +f 3873//3847 3793//3767 3795//3769 3874//3848 +f 3233//3235 3873//3847 3874//3848 3234//3236 +f 3875//3849 3239//3241 3234//3236 3874//3848 +f 3797//3771 3875//3849 3874//3848 3795//3769 +f 3875//3849 3797//3771 3799//3773 3876//3850 +f 3239//3241 3875//3849 3876//3850 3240//3242 +f 3877//3851 3247//3249 3248//3250 3878//3852 +f 3801//3775 3877//3851 3878//3852 3802//3776 +f 3877//3851 3801//3775 3805//3779 3879//3853 +f 3247//3249 3877//3851 3879//3853 3249//3251 +f 3880//3854 3256//3258 3257//3259 3881//3855 +f 3807//3781 3880//3854 3881//3855 3808//3782 +f 3880//3854 3807//3781 3811//3785 3882//3856 +f 3256//3258 3880//3854 3882//3856 3258//3260 +f 3883//3857 3263//3265 3258//3260 3882//3856 +f 3813//3787 3883//3857 3882//3856 3811//3785 +f 3883//3857 3813//3787 3815//3789 3884//3858 +f 3263//3265 3883//3857 3884//3858 3264//3266 +f 3885//3859 3269//3271 3264//3266 3884//3858 +f 3817//3791 3885//3859 3884//3858 3815//3789 +f 3885//3859 3817//3791 3819//3793 3886//3860 +f 3269//3271 3885//3859 3886//3860 3270//3272 +f 3887//3861 3275//3277 3270//3272 3886//3860 +f 3821//3795 3887//3861 3886//3860 3819//3793 +f 3887//3861 3821//3795 3760//3734 3857//3831 +f 3275//3277 3887//3861 3857//3831 3185//3187 +f 2974//2976 2505//2506 2504//2505 2976//2978 +f 2505//2506 2974//2976 2973//2975 2506//2507 +f 2989//2991 2541//2542 2506//2507 2973//2975 +f 2541//2542 2989//2991 2988//2990 2542//2543 +f 3001//3003 2571//2572 2542//2543 2988//2990 +f 2571//2572 3001//3003 3000//3002 2572//2573 +f 3013//3015 2601//2602 2572//2573 3000//3002 +f 2601//2602 3013//3015 3012//3014 2602//2603 +f 3025//3027 2631//2632 2602//2603 3012//3014 +f 2631//2632 3025//3027 3024//3026 2632//2633 +f 3037//3039 2661//2662 2632//2633 3024//3026 +f 2661//2662 3037//3039 3036//3038 2662//2663 +f 3049//3051 2691//2692 2662//2663 3036//3038 +f 2691//2692 3049//3051 3048//3050 2692//2693 +f 3061//3063 2721//2722 2692//2693 3048//3050 +f 2721//2722 3061//3063 3060//3062 2722//2723 +f 3073//3075 2751//2752 2722//2723 3060//3062 +f 2751//2752 3073//3075 3072//3074 2752//2753 +f 3085//3087 2781//2782 2752//2753 3072//3074 +f 2781//2782 3085//3087 3084//3086 2782//2783 +f 3888//3862 2820//2821 2819//2820 3889//3863 +f 2820//2821 3888//3862 3102//3104 2821//2822 +f 3115//3117 2865//2866 2864//2865 3099//3101 +f 2865//2866 3115//3117 3114//3116 2866//2867 +f 3127//3129 2901//2902 2866//2867 3114//3116 +f 2901//2902 3127//3129 3126//3128 2902//2903 +f 3139//3141 2931//2932 2902//2903 3126//3128 +f 2931//2932 3139//3141 3138//3140 2932//2933 +f 3146//3148 2955//2957 2932//2933 3138//3140 +f 2955//2957 3146//3148 2976//2978 2504//2505 +f 3890//3864 3891//3865 2817//2818 3892//3866 +f 3893//3867 3890//3864 3892//3866 3894//3868 +f 3890//3864 3893//3867 3895//3869 3896//3870 +f 3891//3865 3890//3864 3896//3870 3897//3871 +f 3898//3872 3893//3867 3894//3868 3899//3873 +f 3900//3874 3898//3872 3899//3873 3451//3453 +f 3898//3872 3900//3874 3901//3875 3902//3876 +f 3893//3867 3898//3872 3902//3876 3895//3869 +f 3903//3877 3904//3878 3845//3819 3905//3879 +f 3906//3880 3903//3877 3905//3879 3889//3863 +f 3903//3877 3906//3880 3907//3881 3908//3882 +f 3904//3878 3903//3877 3908//3882 3909//3883 +f 3910//3884 3911//3885 2826//2827 3846//3820 +f 3904//3878 3910//3884 3846//3820 3845//3819 +f 3910//3884 3904//3878 3909//3883 3912//3886 +f 3911//3885 3910//3884 3912//3886 3913//3887 +f 3914//3888 3906//3880 3889//3863 2819//2820 +f 2819//2820 2818//2819 3915//3889 3914//3888 +f 3914//3888 3915//3889 3916//3890 3917//3891 +f 3906//3880 3914//3888 3917//3891 3907//3881 +f 3891//3865 3915//3889 2818//2819 2817//2818 +f 3915//3889 3891//3865 3897//3871 3916//3890 +f 3918//3892 3919//3893 3901//3875 3900//3874 +f 3449//3451 3918//3892 3900//3874 3451//3453 +f 3918//3892 3449//3451 3448//3450 3920//3894 +f 3919//3893 3918//3892 3920//3894 3921//3895 +f 3922//3896 2827//2828 2826//2827 3911//3885 +f 3923//3897 3922//3896 3911//3885 3913//3887 +f 3922//3896 3923//3897 3924//3898 3925//3899 +f 2827//2828 3922//3896 3925//3899 2829//2830 +f 3926//3900 3920//3894 3448//3450 3748//3722 +f 3927//3901 3926//3900 3748//3722 3538//3540 +f 3926//3900 3927//3901 3928//3902 3929//3903 +f 3920//3894 3926//3900 3929//3903 3921//3895 +f 3930//3904 3931//3905 3535//3537 3716//3690 +f 3932//3906 3930//3904 3716//3690 3611//3593 +f 3930//3904 3932//3906 3933//3907 3934//3908 +f 3931//3905 3930//3904 3934//3908 3935//3909 +f 3936//3910 3932//3906 3611//3593 3609//3591 +f 3937//3911 3936//3910 3609//3591 2811//2812 +f 3936//3910 3937//3911 3938//3912 3939//3913 +f 3932//3906 3936//3910 3939//3913 3933//3907 +f 3940//3914 3927//3901 3538//3540 3536//3538 +f 3931//3905 3940//3914 3536//3538 3535//3537 +f 3940//3914 3931//3905 3935//3909 3941//3915 +f 3927//3901 3940//3914 3941//3915 3928//3902 +f 3942//3916 2809//2810 2808//2809 3675//3649 +f 3943//3917 3942//3916 3675//3649 3674//3648 +f 3942//3916 3943//3917 3938//3912 3937//3911 +f 2809//2810 3942//3916 3937//3911 2811//2812 +f 3944//3918 3943//3917 3674//3648 3945//3919 +f 3946//3920 3944//3918 3945//3919 3947//3921 +f 3944//3918 3946//3920 3948//3922 3949//3923 +f 3943//3917 3944//3918 3949//3923 3938//3912 +f 3950//3924 3951//3925 3320//3322 3803//3777 +f 3952//3926 3950//3924 3803//3777 3802//3776 +f 3950//3924 3952//3926 3953//3927 3954//3928 +f 3951//3925 3950//3924 3954//3928 3955//3929 +f 3956//3930 3957//3931 2835//2836 3321//3323 +f 3951//3925 3956//3930 3321//3323 3320//3322 +f 3956//3930 3951//3925 3955//3929 3958//3932 +f 3957//3931 3956//3930 3958//3932 3959//3933 +f 3960//3934 3961//3935 2838//2839 2836//2837 +f 3957//3931 3960//3934 2836//2837 2835//2836 +f 3960//3934 3957//3931 3959//3933 3962//3936 +f 3961//3935 3960//3934 3962//3936 3963//3937 +f 3964//3938 3952//3926 3802//3776 3878//3852 +f 3965//3939 3964//3938 3878//3852 3248//3250 +f 3964//3938 3965//3939 3966//3940 3967//3941 +f 3952//3926 3964//3938 3967//3941 3953//3927 +f 3968//3942 3965//3939 3248//3250 3246//3248 +f 3969//3943 3968//3942 3246//3248 3245//3247 +f 3968//3942 3969//3943 3970//3944 3971//3945 +f 3965//3939 3968//3942 3971//3945 3966//3940 +f 3972//3946 3383//3385 2838//2839 3961//3935 +f 3973//3947 3972//3946 3961//3935 3963//3937 +f 3972//3946 3973//3947 3974//3948 3975//3949 +f 3383//3385 3972//3946 3975//3949 3385//3387 +f 3976//3950 3977//3951 3935//3909 3934//3908 +f 3978//3952 3976//3950 3934//3908 3933//3907 +f 3976//3950 3978//3952 3979//3953 3980//3953 +f 3977//3951 3976//3950 3980//3953 3981//3953 +f 3982//3954 3978//3952 3933//3907 3939//3913 +f 3949//3923 3982//3954 3939//3913 3938//3912 +f 3982//3954 3949//3923 3948//3922 3983//3955 +f 3978//3952 3982//3954 3983//3955 3979//3953 +f 3984//3956 3985//3957 3966//3940 3971//3945 +f 3986//3958 3984//3956 3971//3945 3970//3944 +f 3984//3956 3986//3958 3987//3959 3988//3953 +f 3985//3957 3984//3956 3988//3953 3989//3953 +f 3990//3960 2513//2514 2514//2515 3991//3961 +f 3181//3183 3990//3960 3991//3961 3182//3184 +f 3990//3960 3181//3183 3188//3190 3992//3962 +f 2513//2514 3990//3960 3992//3962 2515//2516 +f 3993//3963 2547//2548 2515//2516 3992//3962 +f 3190//3192 3993//3963 3992//3962 3188//3190 +f 3993//3963 3190//3192 3194//3196 3994//3964 +f 2547//2548 3993//3963 3994//3964 2548//2549 +f 3995//3965 2577//2578 2548//2549 3994//3964 +f 3196//3198 3995//3965 3994//3964 3194//3196 +f 3995//3965 3196//3198 3200//3202 3996//3966 +f 2577//2578 3995//3965 3996//3966 2578//2579 +f 3997//3967 2607//2608 2578//2579 3996//3966 +f 3202//3204 3997//3967 3996//3966 3200//3202 +f 3997//3967 3202//3204 3206//3208 3998//3968 +f 2607//2608 3997//3967 3998//3968 2608//2609 +f 3999//3969 2637//2638 2608//2609 3998//3968 +f 3208//3210 3999//3969 3998//3968 3206//3208 +f 3999//3969 3208//3210 3212//3214 4000//3970 +f 2637//2638 3999//3969 4000//3970 2638//2639 +f 4001//3971 2667//2668 2638//2639 4000//3970 +f 3214//3216 4001//3971 4000//3970 3212//3214 +f 4001//3971 3214//3216 3218//3220 4002//3972 +f 2667//2668 4001//3971 4002//3972 2668//2669 +f 4003//3973 2697//2698 2668//2669 4002//3972 +f 3220//3222 4003//3973 4002//3972 3218//3220 +f 4003//3973 3220//3222 3224//3226 4004//3974 +f 2697//2698 4003//3973 4004//3974 2698//2699 +f 4005//3975 2727//2728 2698//2699 4004//3974 +f 3226//3228 4005//3975 4004//3974 3224//3226 +f 4005//3975 3226//3228 3230//3232 4006//3976 +f 2727//2728 4005//3975 4006//3976 2728//2729 +f 4007//3977 2757//2758 2728//2729 4006//3976 +f 3232//3234 4007//3977 4006//3976 3230//3232 +f 4007//3977 3232//3234 3236//3238 4008//3978 +f 2757//2758 4007//3977 4008//3978 2758//2759 +f 4009//3979 2787//2788 2758//2759 4008//3978 +f 3238//3240 4009//3979 4008//3978 3236//3238 +f 4009//3979 3238//3240 3242//3244 4010//3980 +f 2787//2788 4009//3979 4010//3980 2788//2789 +f 4011//3981 2828//2829 2829//2830 4012//3982 +f 3244//3246 4011//3981 4012//3982 3245//3247 +f 4011//3981 3244//3246 3251//3253 4013//3983 +f 2828//2829 4011//3981 4013//3983 2830//2831 +f 4014//3984 2873//2874 2874//2875 4015//3985 +f 3253//3255 4014//3984 4015//3985 3254//3256 +f 4014//3984 3253//3255 3260//3262 4016//3986 +f 2873//2874 4014//3984 4016//3986 2875//2876 +f 4017//3987 2907//2908 2875//2876 4016//3986 +f 3262//3264 4017//3987 4016//3986 3260//3262 +f 4017//3987 3262//3264 3266//3268 4018//3988 +f 2907//2908 4017//3987 4018//3988 2908//2909 +f 4019//3989 2937//2938 2908//2909 4018//3988 +f 3268//3270 4019//3989 4018//3988 3266//3268 +f 4019//3989 3268//3270 3272//3274 4020//3990 +f 2937//2938 4019//3989 4020//3990 2938//2939 +f 4021//3991 2958//2960 2938//2939 4020//3990 +f 3274//3276 4021//3991 4020//3990 3272//3274 +f 4021//3991 3274//3276 3182//3184 3991//3961 +f 2958//2960 4021//3991 3991//3961 2514//2515 +f 4022//3992 3925//3899 3924//3898 4023//3993 +f 3969//3943 4022//3992 4023//3993 3970//3944 +f 4022//3992 3969//3943 3245//3247 4012//3982 +f 3925//3899 4022//3992 4012//3982 2829//2830 +f 4024//3994 3986//3958 3970//3944 4023//3993 +f 4025//3995 4024//3994 4023//3993 3924//3898 +f 4024//3994 4025//3995 4026//3959 4027//3959 +f 3986//3958 4024//3994 4027//3959 3987//3959 +f 4028//3996 4025//3995 3924//3898 3923//3897 +f 4029//3997 4028//3996 3923//3897 3913//3887 +f 4028//3996 4029//3997 4030//3953 4031//3959 +f 4025//3995 4028//3996 4031//3959 4026//3959 +f 4032//3998 4033//3953 4034//3959 4035//3999 +f 3941//3915 4032//3998 4035//3999 3928//3902 +f 4032//3998 3941//3915 3935//3909 4036//4000 +f 4033//3953 4032//3998 4036//4000 4037//3953 +f 4038//4001 4039//3959 4040//3953 4041//4002 +f 3929//3903 4038//4001 4041//4002 3921//3895 +f 4038//4001 3929//3903 3928//3902 4035//3999 +f 4039//3959 4038//4001 4035//3999 4034//3959 +f 4042//4003 4043//3953 4044//3959 4045//4004 +f 3919//3893 4042//4003 4045//4004 3901//3875 +f 4042//4003 3919//3893 3921//3895 4041//4002 +f 4043//3953 4042//4003 4041//4002 4040//3953 +f 4033//3953 4046//3959 4047//3959 4034//3959 +f 4046//3959 4033//3953 4037//3953 4048//3959 +f 4039//3959 4049//3953 4050//3953 4040//3953 +f 4049//3953 4039//3959 4034//3959 4047//3959 +f 4043//3953 4051//3953 4052//3959 4044//3959 +f 4051//3953 4043//3953 4040//3953 4050//3953 +f 4053//3953 3988//3953 3987//3959 4054//3953 +f 4047//3959 4046//3959 4053//3953 4054//3953 +f 4053//3953 4046//3959 4048//3959 4055//3953 +f 3988//3953 4053//3953 4055//3953 3989//3953 +f 4056//3959 4027//3959 4026//3959 4057//3959 +f 4050//3953 4049//3953 4056//3959 4057//3959 +f 4056//3959 4049//3953 4047//3959 4054//3953 +f 4027//3959 4056//3959 4054//3953 3987//3959 +f 4058//3959 4031//3959 4030//3953 4059//3953 +f 4052//3959 4051//3953 4058//3959 4059//3953 +f 4058//3959 4051//3953 4050//3953 4057//3959 +f 4031//3959 4058//3959 4057//3959 4026//3959 +f 4060//4005 3896//3870 3895//3869 3902//3876 +f 4045//4004 4060//4005 3902//3876 3901//3875 +f 4060//4005 4045//4004 4044//3959 4061//4006 +f 3896//3870 4060//4005 4061//4006 3897//3871 +f 4062//4007 4061//4006 4044//3959 4052//3959 +f 4052//3959 4059//3953 4063//4008 4062//4007 +f 4062//4007 4063//4008 3917//3891 3916//3890 +f 4061//4006 4062//4007 3916//3890 3897//3871 +f 4064//4009 4063//4008 4059//3953 4030//3953 +f 4063//4008 4064//4009 3907//3881 3917//3891 +f 4065//4010 4064//4009 4030//3953 4029//3997 +f 3912//3886 4065//4010 4029//3997 3913//3887 +f 4065//4010 3912//3886 3909//3883 3908//3882 +f 4064//4009 4065//4010 3908//3882 3907//3881 +f 4066//4011 4067//4012 4068//4013 4069//4014 +f 4070//4015 4066//4011 4069//4014 4071//4016 +f 4066//4011 4070//4015 4072//4017 4073//4018 +f 4067//4012 4066//4011 4073//4018 4074//4019 +f 4075//4020 4076//4021 4074//4019 4073//4018 +f 4077//4022 4075//4020 4073//4018 4072//4017 +f 4075//4020 4077//4022 4078//4023 4079//4024 +f 4076//4021 4075//4020 4079//4024 4080//4025 +f 4081//4026 4082//4027 4080//4025 4079//4024 +f 4083//4028 4081//4026 4079//4024 4078//4023 +f 4081//4026 4083//4028 4084//4029 4085//4030 +f 4082//4027 4081//4026 4085//4030 4086//4031 +f 4087//4032 4088//4033 4086//4031 4085//4030 +f 4089//4034 4087//4032 4085//4030 4084//4029 +f 4087//4032 4089//4034 4090//4035 4091//4036 +f 4088//4033 4087//4032 4091//4036 4092//4037 +f 4093//4038 4094//4039 4092//4037 4091//4036 +f 4095//4040 4093//4038 4091//4036 4090//4035 +f 4093//4038 4095//4040 4096//4041 4097//4042 +f 4094//4039 4093//4038 4097//4042 4098//4043 +f 4099//4044 4100//4045 4098//4043 4097//4042 +f 4101//4046 4099//4044 4097//4042 4096//4041 +f 4099//4044 4101//4046 4102//4047 4103//4048 +f 4100//4045 4099//4044 4103//4048 4104//4049 +f 4105//4050 4106//4051 4104//4049 4103//4048 +f 4107//4052 4105//4050 4103//4048 4102//4047 +f 4105//4050 4107//4052 4108//4053 4109//4054 +f 4106//4051 4105//4050 4109//4054 4110//4055 +f 4111//4056 4112//4057 4110//4055 4109//4054 +f 4113//4058 4111//4056 4109//4054 4108//4053 +f 4111//4056 4113//4058 4114//4059 4115//4060 +f 4112//4057 4111//4056 4115//4060 4116//4061 +f 4117//4062 4118//4063 4116//4061 4115//4060 +f 4119//4064 4117//4062 4115//4060 4114//4059 +f 4117//4062 4119//4064 4120//4065 4121//4066 +f 4118//4063 4117//4062 4121//4066 4122//4067 +f 4123//4068 4124//4069 4122//4067 4121//4066 +f 4125//4070 4123//4068 4121//4066 4120//4065 +f 4123//4068 4125//4070 4126//4071 4127//4072 +f 4124//4069 4123//4068 4127//4072 4128//4073 +f 4129//4074 4130//4075 4131//4076 4132//4077 +f 4133//4078 4129//4074 4132//4077 3947//3921 +f 4129//4074 4133//4078 4134//4079 4135//4080 +f 4130//4075 4129//4074 4135//4080 4136//4081 +f 4137//4082 4138//4083 4139//4084 4140//4085 +f 4141//4086 4137//4082 4140//4085 4142//4087 +f 4137//4082 4141//4086 4143//4088 4144//4089 +f 4138//4083 4137//4082 4144//4089 4145//4090 +f 4146//4091 4147//4092 4145//4090 4144//4089 +f 4148//4093 4146//4091 4144//4089 4143//4088 +f 4146//4091 4148//4093 4149//4094 4150//4095 +f 4147//4092 4146//4091 4150//4095 4151//4096 +f 4152//4097 4153//4098 4151//4096 4150//4095 +f 4154//4099 4152//4097 4150//4095 4149//4094 +f 4152//4097 4154//4099 4155//4100 4156//4101 +f 4153//4098 4152//4097 4156//4101 4157//4102 +f 4158//4103 4159//4104 4157//4102 4156//4101 +f 4160//4105 4158//4103 4156//4101 4155//4100 +f 4158//4103 4160//4105 4071//4016 4069//4014 +f 4159//4104 4158//4103 4069//4014 4068//4013 +f 4161//4106 4162//4107 4131//4076 4163//4108 +f 4164//4109 4161//4106 4163//4108 2802//2803 +f 4161//4106 4164//4109 4165//4110 4166//4111 +f 4162//4107 4161//4106 4166//4111 4167//4112 +f 4168//3953 4169//3953 4170//3953 4171//3953 +f 4172//3953 4168//3953 4171//3953 4173//3953 +f 4168//3953 4172//3953 4174//3953 4175//3953 +f 4169//3953 4168//3953 4175//3953 4176//3953 +f 4177//4113 4178//4113 4167//4112 4166//4111 +f 4179//4114 4177//4113 4166//4111 4165//4110 +f 4177//4113 4179//4114 4173//3953 4171//3953 +f 4178//4113 4177//4113 4171//3953 4170//3953 +f 4180//3953 4181//3953 4176//3953 4175//3953 +f 4182//3953 4180//3953 4175//3953 4174//3953 +f 4180//3953 4182//3953 4183//3953 4184//3953 +f 4181//3953 4180//3953 4184//3953 4185//3959 +f 4186//4115 4187//4116 4188//4117 4189//4118 +f 4190//4119 4186//4115 4189//4118 4191//4120 +f 4186//4115 4190//4119 4192//3953 4193//3953 +f 4187//4116 4186//4115 4193//3953 4194//3953 +f 4195//4121 4190//4119 4191//4120 4196//4122 +f 4197//4123 4195//4121 4196//4122 4198//4124 +f 4195//4121 4197//4123 3974//3948 4199//4125 +f 4190//4119 4195//4121 4199//4125 4192//3953 +f 4200//4126 4201//4127 4202//3953 4203//4128 +f 3962//3936 4200//4126 4203//4128 3963//3937 +f 4200//4126 3962//3936 3959//3933 3958//3932 +f 4201//4127 4200//4126 3958//3932 3955//3929 +f 4204//4129 4205//4130 4206//3959 4207//3959 +f 4201//4127 4204//4129 4207//3959 4202//3953 +f 4204//4129 4201//4127 3955//3929 3954//3928 +f 4205//4130 4204//4129 3954//3928 3953//3927 +f 4208//4131 4209//4132 4210//4133 4211//4134 +f 4187//4116 4208//4131 4211//4134 4188//4117 +f 4208//4131 4187//4116 4194//3953 4212//3953 +f 4209//4132 4208//4131 4212//3953 4213//3953 +f 4214//4135 4215//4136 4216//4137 4217//4138 +f 4209//4132 4215//4136 4214//4135 4210//4133 +f 4215//4136 4209//4132 4213//3953 4218//3959 +f 4218//3959 4219//3959 4216//4137 4215//4136 +f 4216//4137 4220//4139 4221//4140 4217//4138 +f 4220//4139 4216//4137 4219//3959 4183//3953 +f 4222//3953 4223//3953 4037//3953 4036//4000 +f 3977//3951 4222//3953 4036//4000 3935//3909 +f 4222//3953 3977//3951 3981//3953 4224//3959 +f 4223//3953 4222//3953 4224//3959 4225//3953 +f 4226//3953 4227//3959 4185//3959 4228//3953 +f 4229//3953 4230//3953 4226//3953 4228//3953 +f 4231//3959 4226//3953 4230//3953 4232//3959 +f 4227//3959 4226//3953 4231//3959 4225//3953 +f 4233//3953 4234//3959 3989//3953 4055//3953 +f 4048//3959 4235//3959 4233//3953 4055//3953 +f 4233//3953 4235//3959 4231//3959 4232//3959 +f 4234//3959 4233//3953 4232//3959 4236//3953 +f 4237//4141 4238//3953 4239//3953 4240//3953 +f 4205//4130 4237//4141 4240//3953 4206//3959 +f 4237//4141 4205//4130 3953//3927 4241//4142 +f 4238//3953 4237//4141 4241//4142 4236//3953 +f 4242//4143 3946//3920 3947//3921 4132//4077 +f 4162//4107 4242//4143 4132//4077 4131//4076 +f 4242//4143 4162//4107 4167//4112 4243//4144 +f 3946//3920 4242//4143 4243//4144 3948//3922 +f 4244//3953 3980//3953 3979//3953 4245//3953 +f 4169//3953 4244//3953 4245//3953 4170//3953 +f 4244//3953 4169//3953 4176//3953 4246//3953 +f 3980//3953 4244//3953 4246//3953 3981//3953 +f 4247//4145 3983//3955 3948//3922 4243//4144 +f 4178//4113 4247//4145 4243//4144 4167//4112 +f 4247//4145 4178//4113 4170//3953 4245//3953 +f 3983//3955 4247//4145 4245//3953 3979//3953 +f 4248//3605 4070//4015 4071//4016 4249//4146 +f 3631//3605 4248//3605 4249//4146 3632//3606 +f 4248//3605 3631//3605 3635//3609 4250//3609 +f 4070//4015 4248//3605 4250//3609 4072//4017 +f 4251//3611 4077//4022 4072//4017 4250//3609 +f 3637//3611 4251//3611 4250//3609 3635//3609 +f 4251//3611 3637//3611 3639//3613 4252//4147 +f 4077//4022 4251//3611 4252//4147 4078//4023 +f 4253//4148 4083//4028 4078//4023 4252//4147 +f 3641//3615 4253//4148 4252//4147 3639//3613 +f 4253//4148 3641//3615 3643//3617 4254//4149 +f 4083//4028 4253//4148 4254//4149 4084//4029 +f 4255//4150 4089//4034 4084//4029 4254//4149 +f 3645//3619 4255//4150 4254//4149 3643//3617 +f 4255//4150 3645//3619 3647//3621 4256//4151 +f 4089//4034 4255//4150 4256//4151 4090//4035 +f 4257//3623 4095//4040 4090//4035 4256//4151 +f 3649//3623 4257//3623 4256//4151 3647//3621 +f 4257//3623 3649//3623 3651//3625 4258//4152 +f 4095//4040 4257//3623 4258//4152 4096//4041 +f 4259//4153 4101//4046 4096//4041 4258//4152 +f 3653//3627 4259//4153 4258//4152 3651//3625 +f 4259//4153 3653//3627 3655//3629 4260//4154 +f 4101//4046 4259//4153 4260//4154 4102//4047 +f 4261//4155 4107//4052 4102//4047 4260//4154 +f 3657//3631 4261//4155 4260//4154 3655//3629 +f 4261//4155 3657//3631 3659//3633 4262//3633 +f 4107//4052 4261//4155 4262//3633 4108//4053 +f 4263//3635 4113//4058 4108//4053 4262//3633 +f 3661//3635 4263//3635 4262//3633 3659//3633 +f 4263//3635 3661//3635 3663//3637 4264//4156 +f 4113//4058 4263//3635 4264//4156 4114//4059 +f 4265//4157 4119//4064 4114//4059 4264//4156 +f 3665//3639 4265//4157 4264//4156 3663//3637 +f 4265//4157 3665//3639 3667//3641 4266//3641 +f 4119//4064 4265//4157 4266//3641 4120//4065 +f 4267//4158 4125//4070 4120//4065 4266//3641 +f 3669//3643 4267//4158 4266//3641 3667//3641 +f 4267//4158 3669//3643 3671//3645 4268//4159 +f 4125//4070 4267//4158 4268//4159 4126//4071 +f 4269//4160 4133//4078 3947//3921 3945//3919 +f 3673//3647 4269//4160 3945//3919 3674//3648 +f 4269//4160 3673//3647 3677//3651 4270//3651 +f 4133//4078 4269//4160 4270//3651 4134//4079 +f 4271//4161 4141//4086 4142//4087 4272//4162 +f 3679//3653 4271//4161 4272//4162 3680//3654 +f 4271//4161 3679//3653 3683//3657 4273//4163 +f 4141//4086 4271//4161 4273//4163 4143//4088 +f 4274//4164 4148//4093 4143//4088 4273//4163 +f 3685//3659 4274//4164 4273//4163 3683//3657 +f 4274//4164 3685//3659 3687//3661 4275//4165 +f 4148//4093 4274//4164 4275//4165 4149//4094 +f 4276//3663 4154//4099 4149//4094 4275//4165 +f 3689//3663 4276//3663 4275//4165 3687//3661 +f 4276//3663 3689//3663 3691//3665 4277//3665 +f 4154//4099 4276//3663 4277//3665 4155//4100 +f 4278//4166 4160//4105 4155//4100 4277//3665 +f 3693//3667 4278//4166 4277//3665 3691//3665 +f 4278//4166 3693//3667 3632//3606 4249//4146 +f 4160//4105 4278//4166 4249//4146 4071//4016 +f 4279//3959 4224//3959 3981//3953 4246//3953 +f 4181//3953 4279//3959 4246//3953 4176//3953 +f 4279//3959 4181//3953 4185//3959 4227//3959 +f 4224//3959 4279//3959 4227//3959 4225//3953 +f 4235//3959 4048//3959 4037//3953 4223//3953 +f 4231//3959 4235//3959 4223//3953 4225//3953 +f 4230//3953 4229//3953 4239//3953 4238//3953 +f 4232//3959 4230//3953 4238//3953 4236//3953 +f 4280//4167 4241//4142 3953//3927 3967//3941 +f 3985//3957 4280//4167 3967//3941 3966//3940 +f 4280//4167 3985//3957 3989//3953 4234//3959 +f 4241//4142 4280//4167 4234//3959 4236//3953 +f 4281//4168 4282//4169 4136//4081 4283//4170 +f 4284//2848 4281//4168 4283//4170 4139//4084 +f 4281//4168 4284//2848 2847//2848 4285//4168 +f 4282//4169 4281//4168 4285//4168 2803//2804 +f 4286//4171 2813//2814 2812//2813 4287//4172 +f 2854//2855 4286//4171 4287//4172 2856//2857 +f 4286//4171 2854//2855 2853//2854 4288//4173 +f 2813//2814 4286//4171 4288//4173 2814//2815 +f 4289//4174 2863//2864 2862//2863 3172//3174 +f 2822//2823 4289//4174 3172//3174 2823//2824 +f 4290//4175 2831//2832 2830//2831 4291//4176 +f 2872//2873 4290//4175 4291//4176 2874//2875 +f 4290//4175 2872//2873 2871//2872 4292//4177 +f 2831//2832 4290//4175 4292//4177 2832//2833 +f 4293//4178 2840//2841 2839//2840 4294//4179 +f 2881//2882 4293//4178 4294//4179 2883//2884 +f 4293//4178 2881//2882 2880//2881 4295//4180 +f 2840//2841 4293//4178 4295//4180 2841//2842 +f 4296//4181 3092//3094 3093//3095 3450//3452 +f 3899//3873 4296//4181 3450//3452 3451//3453 +f 4296//4181 3899//3873 3894//3868 4297//4182 +f 3092//3094 4296//4181 4297//4182 3094//3096 +f 4298//4183 3101//3103 3102//3104 3888//3862 +f 3905//3879 4298//4183 3888//3862 3889//3863 +f 4298//4183 3905//3879 3845//3819 3844//3818 +f 3101//3103 4298//4183 3844//3818 3103//3105 +f 4299//4184 3171//3173 3094//3096 4297//4182 +f 3892//3866 4299//4184 4297//4182 3894//3868 +f 4299//4184 3892//3866 2817//2818 2816//2817 +f 3171//3173 4299//4184 2816//2817 2823//2824 +f 4300//4185 3250//3252 3249//3251 4301//4186 +f 3255//3257 4300//4185 4301//4186 3257//3259 +f 4300//4185 3255//3257 3254//3256 4302//4187 +f 3250//3252 4300//4185 4302//4187 3251//3253 +f 4303//4188 3322//3324 2841//2842 4295//4180 +f 3327//3329 4303//4188 4295//4180 2880//2881 +f 4303//4188 3327//3329 3326//3328 4304//4189 +f 3322//3324 4303//4188 4304//4189 3323//3325 +f 4305//4190 4306//4191 4307//4192 4308//4193 +f 4309//4194 4305//4190 4308//4193 4310//4195 +f 4305//4190 4309//4194 3391//3393 4311//4196 +f 4306//4191 4305//4190 4311//4196 3386//3388 +f 4312//4197 3452//3454 3093//3095 3091//3093 +f 3457//3459 4312//4197 3091//3093 3090//3092 +f 4312//4197 3457//3459 3456//3458 4313//4198 +f 3452//3454 4312//4197 4313//4198 3453//3455 +f 4314//4199 3540//3542 3539//3541 4315//4200 +f 3545//3547 4314//4199 4315//4200 3547//3549 +f 4314//4199 3545//3547 3544//3546 4316//4201 +f 3540//3542 4314//4199 4316//4201 3541//3543 +f 4317//4202 3613//3595 3612//3594 4318//4203 +f 3615//3597 4317//4202 4318//4203 3617//3570 +f 4317//4202 3615//3597 2856//2857 4287//4172 +f 3613//3595 4317//4202 4287//4172 2812//2813 +f 4319//4204 3676//3650 2814//2815 4288//4173 +f 3681//3655 4319//4204 4288//4173 2853//2854 +f 4319//4204 3681//3655 3680//3654 4320//4205 +f 3676//3650 4319//4204 4320//4205 3677//3651 +f 4321//4206 3717//3691 3541//3543 4316//4201 +f 3719//3693 4321//4206 4316//4201 3544//3546 +f 4321//4206 3719//3693 3617//3570 4318//4203 +f 3717//3691 4321//4206 4318//4203 3612//3594 +f 4322//4207 3749//3723 3453//3455 4313//4198 +f 3751//3725 4322//4207 4313//4198 3456//3458 +f 4322//4207 3751//3725 3547//3549 4315//4200 +f 3749//3723 4322//4207 4315//4200 3539//3541 +f 4323//4208 3804//3778 3323//3325 4304//4189 +f 3809//3783 4323//4208 4304//4189 3326//3328 +f 4323//4208 3809//3783 3808//3782 4324//4209 +f 3804//3778 4323//4208 4324//4209 3805//3779 +f 4325//4210 3847//3821 2832//2833 4292//4177 +f 3849//3823 4325//4210 4292//4177 2871//2872 +f 4325//4210 3849//3823 3105//3107 3104//3106 +f 3847//3821 4325//4210 3104//3106 3103//3105 +f 4326//4211 3879//3853 3805//3779 4324//4209 +f 3881//3855 4326//4211 4324//4209 3808//3782 +f 4326//4211 3881//3855 3257//3259 4301//4186 +f 3879//3853 4326//4211 4301//4186 3249//3251 +f 4327//4212 2821//2822 3102//3104 3100//3102 +f 2864//2865 4327//4212 3100//3102 3099//3101 +f 2863//2864 4289//4174 4327//4212 2864//2865 +f 2822//2823 2821//2822 4327//4212 4289//4174 +f 4328//4213 4013//3983 3251//3253 4302//4187 +f 4015//3985 4328//4213 4302//4187 3254//3256 +f 4328//4213 4015//3985 2874//2875 4291//4176 +f 4013//3983 4328//4213 4291//4176 2830//2831 +f 4329//4214 4135//4080 4134//4079 4330//4215 +f 4140//4085 4329//4214 4330//4215 4142//4087 +f 4329//4214 4140//4085 4139//4084 4283//4170 +f 4135//4080 4329//4214 4283//4170 4136//4081 +f 4331//4216 4270//3651 3677//3651 4320//4205 +f 4272//4162 4331//4216 4320//4205 3680//3654 +f 4331//4216 4272//4162 4142//4087 4330//4215 +f 4270//3651 4331//4216 4330//4215 4134//4079 +f 4332//4217 4333//4218 4310//4195 4308//4193 +f 4334//4219 4332//4217 4308//4193 4307//4192 +f 4332//4217 4334//4219 4335//4220 4336//4220 +f 4333//4218 4332//4217 4336//4220 4337//4220 +f 4338//4221 4339//4222 2844//2845 2843//2844 +f 4340//4223 4338//4221 2843//2844 2850//2851 +f 4338//4221 4340//4223 4341//4220 4342//4220 +f 4339//4222 4338//4221 4342//4220 4343//4220 +f 4344//4224 4345//4225 4346//4226 4347//4227 +f 4348//4228 4344//4224 4347//4227 4349//4229 +f 4344//4224 4348//4228 4350//4220 4351//4220 +f 4345//4225 4344//4224 4351//4220 4352//4220 +f 4353//4230 4354//4231 2892//2893 2918//2919 +f 4355//4232 4353//4230 2918//2919 2922//2923 +f 4353//4230 4355//4232 4356//4220 4357//4220 +f 4354//4231 4353//4230 4357//4220 4358//4220 +f 4359//4233 4360//4234 4361//4235 4362//4236 +f 4363//4237 4359//4233 4362//4236 4364//4238 +f 4359//4233 4363//4237 4365//4220 4366//4220 +f 4360//4234 4359//4233 4366//4220 4367//4220 +f 4368//4239 4369//4240 2484//2951 2483//2490 +f 4370//4241 4368//4239 2483//2490 2490//2491 +f 4368//4239 4370//4241 4371//4220 4372//4220 +f 4369//4240 4368//4239 4372//4220 4373//4220 +f 4374//4242 4375//4243 4376//4244 4377//4245 +f 4378//4246 4374//4242 4377//4245 4379//4247 +f 4374//4242 4378//4246 4380//4220 4381//4220 +f 4375//4243 4374//4242 4381//4220 4382//4220 +f 4383//4248 4384//4249 4385//4250 4386//4251 +f 4375//4243 4383//4248 4386//4251 4376//4244 +f 4383//4248 4375//4243 4382//4220 4387//4220 +f 4384//4249 4383//4248 4387//4220 4388//4220 +f 4389//4252 4390//4253 2562//2563 2588//2589 +f 4391//4254 4389//4252 2588//2589 2592//2593 +f 4389//4252 4391//4254 4392//4220 4393//4220 +f 4390//4253 4389//4252 4393//4220 4394//4220 +f 4395//4255 4396//4256 4397//4257 4398//4258 +f 4399//4259 4395//4255 4398//4258 4400//4260 +f 4395//4255 4399//4259 4401//4220 4402//4220 +f 4396//4256 4395//4255 4402//4220 4403//4220 +f 4404//4261 4405//4262 2622//2623 2648//2649 +f 4406//4263 4404//4261 2648//2649 2652//2653 +f 4404//4261 4406//4263 4407//4220 4408//4220 +f 4405//4262 4404//4261 4408//4220 4409//4220 +f 4410//4264 4411//4265 4412//4266 4413//4267 +f 4414//4268 4410//4264 4413//4267 4415//4269 +f 4410//4264 4414//4268 4416//4220 4417//4220 +f 4411//4265 4410//4264 4417//4220 4418//4220 +f 4419//4270 4420//4271 2682//2683 2708//2709 +f 4421//4272 4419//4270 2708//2709 2712//2713 +f 4419//4270 4421//4272 4422//4220 4423//4220 +f 4420//4271 4419//4270 4423//4220 4424//4220 +f 4425//4273 4426//4274 4427//4275 4428//4276 +f 4429//4277 4425//4273 4428//4276 4430//4278 +f 4425//4273 4429//4277 4431//4220 4432//4220 +f 4426//4274 4425//4273 4432//4220 4433//4220 +f 4434//4279 4435//4280 2742//2743 2768//2769 +f 4436//4281 4434//4279 2768//2769 2772//2773 +f 4434//4279 4436//4281 4437//4220 4438//4220 +f 4435//4280 4434//4279 4438//4220 4439//4220 +f 4440//4282 4441//4220 4442//4220 4443//4283 +f 4444//4284 4440//4282 4443//4283 2805//2806 +f 4440//4282 4444//4284 2844//2845 4339//4222 +f 4441//4220 4440//4282 4339//4222 4343//4220 +f 4445//4285 4446//4220 4341//4220 4340//4223 +f 2888//2889 4445//4285 4340//4223 2850//2851 +f 4445//4285 2888//2889 2892//2893 4354//4231 +f 4446//4220 4445//4285 4354//4231 4358//4220 +f 4447//4286 4448//4220 4356//4220 4355//4232 +f 2948//2949 4447//4286 4355//4232 2922//2923 +f 4447//4286 2948//2949 2484//2951 4369//4240 +f 4448//4220 4447//4286 4369//4240 4373//4220 +f 4449//4287 4450//4220 4371//4220 4370//4241 +f 2528//2529 4449//4287 4370//4241 2490//2491 +f 4449//4287 2528//2529 2532//2533 4451//4288 +f 4450//4220 4449//4287 4451//4288 4452//4220 +f 4453//4289 4454//4220 4452//4220 4451//4288 +f 2558//2559 4453//4289 4451//4288 2532//2533 +f 4453//4289 2558//2559 2562//2563 4390//4253 +f 4454//4220 4453//4289 4390//4253 4394//4220 +f 4455//4290 4456//4220 4392//4220 4391//4254 +f 2618//2619 4455//4290 4391//4254 2592//2593 +f 4455//4290 2618//2619 2622//2623 4405//4262 +f 4456//4220 4455//4290 4405//4262 4409//4220 +f 4457//4291 4458//4220 4407//4220 4406//4263 +f 2678//2679 4457//4291 4406//4263 2652//2653 +f 4457//4291 2678//2679 2682//2683 4420//4271 +f 4458//4220 4457//4291 4420//4271 4424//4220 +f 4459//4292 4460//4220 4422//4220 4421//4272 +f 2738//2739 4459//4292 4421//4272 2712//2713 +f 4459//4292 2738//2739 2742//2743 4435//4280 +f 4460//4220 4459//4292 4435//4280 4439//4220 +f 4461//4220 4342//4220 4341//4220 4462//4220 +f 4463//4220 4461//4220 4462//4220 4464//4220 +f 4461//4220 4463//4220 4465//4220 4466//4220 +f 4342//4220 4461//4220 4466//4220 4343//4220 +f 4467//4220 4357//4220 4356//4220 4468//4220 +f 4469//4220 4467//4220 4468//4220 4470//4220 +f 4467//4220 4469//4220 4471//4220 4472//4220 +f 4357//4220 4467//4220 4472//4220 4358//4220 +f 4473//4220 4372//4220 4371//4220 4474//4220 +f 4475//4220 4473//4220 4474//4220 4476//4220 +f 4473//4220 4475//4220 4477//4220 4478//4220 +f 4372//4220 4473//4220 4478//4220 4373//4220 +f 4479//4220 4393//4220 4392//4220 4480//4220 +f 4481//4220 4479//4220 4480//4220 4482//4220 +f 4479//4220 4481//4220 4483//4220 4484//4220 +f 4393//4220 4479//4220 4484//4220 4394//4220 +f 4485//4220 4408//4220 4407//4220 4486//4220 +f 4487//4220 4485//4220 4486//4220 4488//4220 +f 4485//4220 4487//4220 4489//4220 4490//4220 +f 4408//4220 4485//4220 4490//4220 4409//4220 +f 4491//4220 4423//4220 4422//4220 4492//4220 +f 4493//4220 4491//4220 4492//4220 4494//4220 +f 4491//4220 4493//4220 4495//4220 4496//4220 +f 4423//4220 4491//4220 4496//4220 4424//4220 +f 4497//4220 4438//4220 4437//4220 4498//4220 +f 4499//4220 4497//4220 4498//4220 4500//4220 +f 4497//4220 4499//4220 4501//4220 4502//4220 +f 4438//4220 4497//4220 4502//4220 4439//4220 +f 4503//4220 4504//4220 4505//4220 4506//4220 +f 4441//4220 4503//4220 4506//4220 4442//4220 +f 4503//4220 4441//4220 4343//4220 4466//4220 +f 4504//4220 4503//4220 4466//4220 4465//4220 +f 4507//4220 4508//4220 4464//4220 4462//4220 +f 4446//4220 4507//4220 4462//4220 4341//4220 +f 4507//4220 4446//4220 4358//4220 4472//4220 +f 4508//4220 4507//4220 4472//4220 4471//4220 +f 4509//4220 4510//4220 4470//4220 4468//4220 +f 4448//4220 4509//4220 4468//4220 4356//4220 +f 4509//4220 4448//4220 4373//4220 4478//4220 +f 4510//4220 4509//4220 4478//4220 4477//4220 +f 4511//4220 4512//4220 4476//4220 4474//4220 +f 4450//4220 4511//4220 4474//4220 4371//4220 +f 4511//4220 4450//4220 4452//4220 4513//4220 +f 4512//4220 4511//4220 4513//4220 4514//4220 +f 4515//4220 4516//4220 4514//4220 4513//4220 +f 4454//4220 4515//4220 4513//4220 4452//4220 +f 4515//4220 4454//4220 4394//4220 4484//4220 +f 4516//4220 4515//4220 4484//4220 4483//4220 +f 4517//4220 4518//4220 4482//4220 4480//4220 +f 4456//4220 4517//4220 4480//4220 4392//4220 +f 4517//4220 4456//4220 4409//4220 4490//4220 +f 4518//4220 4517//4220 4490//4220 4489//4220 +f 4519//4220 4520//4220 4488//4220 4486//4220 +f 4458//4220 4519//4220 4486//4220 4407//4220 +f 4519//4220 4458//4220 4424//4220 4496//4220 +f 4520//4220 4519//4220 4496//4220 4495//4220 +f 4521//4220 4522//4220 4494//4220 4492//4220 +f 4460//4220 4521//4220 4492//4220 4422//4220 +f 4521//4220 4460//4220 4439//4220 4502//4220 +f 4522//4220 4521//4220 4502//4220 4501//4220 +f 4523//4220 4463//4220 4464//4220 4524//4220 +f 4525//4220 4523//4220 4524//4220 4526//4220 +f 4523//4220 4525//4220 4527//4220 4528//4220 +f 4463//4220 4523//4220 4528//4220 4465//4220 +f 4529//4220 4469//4220 4470//4220 4530//4220 +f 4531//4220 4529//4220 4530//4220 4532//4220 +f 4529//4220 4531//4220 4533//4220 4534//4220 +f 4469//4220 4529//4220 4534//4220 4471//4220 +f 4535//4220 4475//4220 4476//4220 4536//4220 +f 4537//4220 4535//4220 4536//4220 4538//4220 +f 4535//4220 4537//4220 4539//4220 4540//4220 +f 4475//4220 4535//4220 4540//4220 4477//4220 +f 4541//4220 4481//4220 4482//4220 4542//4220 +f 4543//4220 4541//4220 4542//4220 4544//4220 +f 4541//4220 4543//4220 4545//4220 4546//4220 +f 4481//4220 4541//4220 4546//4220 4483//4220 +f 4547//4220 4487//4220 4488//4220 4548//4220 +f 4549//4220 4547//4220 4548//4220 4550//4220 +f 4547//4220 4549//4220 4551//4220 4552//4220 +f 4487//4220 4547//4220 4552//4220 4489//4220 +f 4553//4220 4493//4220 4494//4220 4554//4220 +f 4555//4220 4553//4220 4554//4220 4556//4220 +f 4553//4220 4555//4220 4557//4220 4558//4220 +f 4493//4220 4553//4220 4558//4220 4495//4220 +f 4559//4220 4499//4220 4500//4220 4560//4220 +f 4561//4220 4559//4220 4560//4220 4562//4220 +f 4559//4220 4561//4220 4563//4220 4564//4220 +f 4499//4220 4559//4220 4564//4220 4501//4220 +f 4565//4220 4566//4220 4567//4220 4568//4220 +f 4504//4220 4565//4220 4568//4220 4505//4220 +f 4565//4220 4504//4220 4465//4220 4528//4220 +f 4566//4220 4565//4220 4528//4220 4527//4220 +f 4569//4220 4570//4220 4526//4220 4524//4220 +f 4508//4220 4569//4220 4524//4220 4464//4220 +f 4569//4220 4508//4220 4471//4220 4534//4220 +f 4570//4220 4569//4220 4534//4220 4533//4220 +f 4571//4220 4572//4220 4532//4220 4530//4220 +f 4510//4220 4571//4220 4530//4220 4470//4220 +f 4571//4220 4510//4220 4477//4220 4540//4220 +f 4572//4220 4571//4220 4540//4220 4539//4220 +f 4573//4220 4574//4220 4538//4220 4536//4220 +f 4512//4220 4573//4220 4536//4220 4476//4220 +f 4573//4220 4512//4220 4514//4220 4575//4220 +f 4574//4220 4573//4220 4575//4220 4576//4220 +f 4577//4220 4578//4220 4576//4220 4575//4220 +f 4516//4220 4577//4220 4575//4220 4514//4220 +f 4577//4220 4516//4220 4483//4220 4546//4220 +f 4578//4220 4577//4220 4546//4220 4545//4220 +f 4579//4220 4580//4220 4544//4220 4542//4220 +f 4518//4220 4579//4220 4542//4220 4482//4220 +f 4579//4220 4518//4220 4489//4220 4552//4220 +f 4580//4220 4579//4220 4552//4220 4551//4220 +f 4581//4220 4582//4220 4550//4220 4548//4220 +f 4520//4220 4581//4220 4548//4220 4488//4220 +f 4581//4220 4520//4220 4495//4220 4558//4220 +f 4582//4220 4581//4220 4558//4220 4557//4220 +f 4583//4220 4584//4220 4556//4220 4554//4220 +f 4522//4220 4583//4220 4554//4220 4494//4220 +f 4583//4220 4522//4220 4501//4220 4564//4220 +f 4584//4220 4583//4220 4564//4220 4563//4220 +f 4585//4220 4525//4220 4526//4220 4586//4220 +f 4587//4220 4585//4220 4586//4220 4588//4220 +f 4585//4220 4587//4220 4589//4220 4590//4220 +f 4525//4220 4585//4220 4590//4220 4527//4220 +f 4591//4220 4531//4220 4532//4220 4592//4220 +f 4593//4220 4591//4220 4592//4220 4594//4220 +f 4591//4220 4593//4220 4595//4220 4596//4220 +f 4531//4220 4591//4220 4596//4220 4533//4220 +f 4597//4220 4537//4220 4538//4220 4598//4220 +f 4599//4220 4597//4220 4598//4220 4600//4220 +f 4597//4220 4599//4220 4601//4220 4602//4220 +f 4537//4220 4597//4220 4602//4220 4539//4220 +f 4603//4220 4543//4220 4544//4220 4604//4220 +f 4605//4220 4603//4220 4604//4220 4606//4220 +f 4603//4220 4605//4220 4607//4220 4608//4220 +f 4543//4220 4603//4220 4608//4220 4545//4220 +f 4609//4220 4549//4220 4550//4220 4610//4220 +f 4611//4220 4609//4220 4610//4220 4612//4220 +f 4609//4220 4611//4220 4613//4220 4614//4220 +f 4549//4220 4609//4220 4614//4220 4551//4220 +f 4615//4220 4555//4220 4556//4220 4616//4220 +f 4617//4220 4615//4220 4616//4220 4618//4220 +f 4615//4220 4617//4220 4619//4220 4620//4220 +f 4555//4220 4615//4220 4620//4220 4557//4220 +f 4621//4220 4561//4220 4562//4220 4622//4220 +f 4623//4220 4621//4220 4622//4220 4624//4220 +f 4621//4220 4623//4220 4625//4220 4626//4220 +f 4561//4220 4621//4220 4626//4220 4563//4220 +f 4627//4220 4628//4220 4629//4220 4630//4220 +f 4566//4220 4627//4220 4630//4220 4567//4220 +f 4627//4220 4566//4220 4527//4220 4590//4220 +f 4628//4220 4627//4220 4590//4220 4589//4220 +f 4631//4220 4632//4220 4588//4220 4586//4220 +f 4570//4220 4631//4220 4586//4220 4526//4220 +f 4631//4220 4570//4220 4533//4220 4596//4220 +f 4632//4220 4631//4220 4596//4220 4595//4220 +f 4633//4220 4634//4220 4594//4220 4592//4220 +f 4572//4220 4633//4220 4592//4220 4532//4220 +f 4633//4220 4572//4220 4539//4220 4602//4220 +f 4634//4220 4633//4220 4602//4220 4601//4220 +f 4635//4220 4636//4220 4600//4220 4598//4220 +f 4574//4220 4635//4220 4598//4220 4538//4220 +f 4635//4220 4574//4220 4576//4220 4637//4220 +f 4636//4220 4635//4220 4637//4220 4638//4220 +f 4639//4220 4640//4220 4638//4220 4637//4220 +f 4578//4220 4639//4220 4637//4220 4576//4220 +f 4639//4220 4578//4220 4545//4220 4608//4220 +f 4640//4220 4639//4220 4608//4220 4607//4220 +f 4641//4220 4642//4220 4606//4220 4604//4220 +f 4580//4220 4641//4220 4604//4220 4544//4220 +f 4641//4220 4580//4220 4551//4220 4614//4220 +f 4642//4220 4641//4220 4614//4220 4613//4220 +f 4643//4220 4644//4220 4612//4220 4610//4220 +f 4582//4220 4643//4220 4610//4220 4550//4220 +f 4643//4220 4582//4220 4557//4220 4620//4220 +f 4644//4220 4643//4220 4620//4220 4619//4220 +f 4645//4220 4646//4220 4618//4220 4616//4220 +f 4584//4220 4645//4220 4616//4220 4556//4220 +f 4645//4220 4584//4220 4563//4220 4626//4220 +f 4646//4220 4645//4220 4626//4220 4625//4220 +f 4647//4220 4587//4220 4588//4220 4648//4220 +f 4649//4220 4650//4220 4647//4220 4648//4220 +f 4647//4220 4650//4220 4651//4220 4652//4220 +f 4587//4220 4647//4220 4652//4220 4589//4220 +f 4653//4220 4593//4220 4594//4220 4654//4220 +f 4655//4220 4656//4220 4653//4220 4654//4220 +f 4653//4220 4656//4220 4657//4220 4658//4220 +f 4593//4220 4653//4220 4658//4220 4595//4220 +f 4659//4220 4599//4220 4600//4220 4660//4220 +f 4661//4220 4662//4220 4659//4220 4660//4220 +f 4659//4220 4662//4220 4663//4220 4664//4220 +f 4599//4220 4659//4220 4664//4220 4601//4220 +f 4665//4220 4605//4220 4606//4220 4666//4220 +f 4667//4220 4668//4220 4665//4220 4666//4220 +f 4665//4220 4668//4220 4669//4220 4670//4220 +f 4605//4220 4665//4220 4670//4220 4607//4220 +f 4671//4220 4611//4220 4612//4220 4672//4220 +f 4673//4220 4674//4220 4671//4220 4672//4220 +f 4671//4220 4674//4220 4675//4220 4676//4220 +f 4611//4220 4671//4220 4676//4220 4613//4220 +f 4677//4220 4617//4220 4618//4220 4678//4220 +f 4679//4220 4680//4220 4677//4220 4678//4220 +f 4677//4220 4680//4220 4681//4220 4682//4220 +f 4617//4220 4677//4220 4682//4220 4619//4220 +f 4683//4220 4623//4220 4624//4220 4684//4220 +f 4685//4220 4686//4220 4683//4220 4684//4220 +f 4683//4220 4686//4220 4687//4220 4688//4220 +f 4623//4220 4683//4220 4688//4220 4625//4220 +f 4689//4220 4690//4220 4691//4220 4692//4220 +f 4628//4220 4690//4220 4689//4220 4629//4220 +f 4690//4220 4628//4220 4589//4220 4652//4220 +f 4652//4220 4651//4220 4691//4220 4690//4220 +f 4693//4220 4694//4220 4649//4220 4648//4220 +f 4632//4220 4693//4220 4648//4220 4588//4220 +f 4693//4220 4632//4220 4595//4220 4658//4220 +f 4658//4220 4657//4220 4694//4220 4693//4220 +f 4695//4220 4696//4220 4655//4220 4654//4220 +f 4634//4220 4695//4220 4654//4220 4594//4220 +f 4695//4220 4634//4220 4601//4220 4664//4220 +f 4664//4220 4663//4220 4696//4220 4695//4220 +f 4697//4220 4698//4220 4661//4220 4660//4220 +f 4636//4220 4697//4220 4660//4220 4600//4220 +f 4697//4220 4636//4220 4638//4220 4699//4220 +f 4699//4220 4700//4220 4698//4220 4697//4220 +f 4701//4220 4702//4220 4700//4220 4699//4220 +f 4640//4220 4701//4220 4699//4220 4638//4220 +f 4701//4220 4640//4220 4607//4220 4670//4220 +f 4670//4220 4669//4220 4702//4220 4701//4220 +f 4703//4220 4704//4220 4667//4220 4666//4220 +f 4642//4220 4703//4220 4666//4220 4606//4220 +f 4703//4220 4642//4220 4613//4220 4676//4220 +f 4676//4220 4675//4220 4704//4220 4703//4220 +f 4705//4220 4706//4220 4673//4220 4672//4220 +f 4644//4220 4705//4220 4672//4220 4612//4220 +f 4705//4220 4644//4220 4619//4220 4682//4220 +f 4682//4220 4681//4220 4706//4220 4705//4220 +f 4707//4220 4708//4220 4679//4220 4678//4220 +f 4646//4220 4707//4220 4678//4220 4618//4220 +f 4707//4220 4646//4220 4625//4220 4688//4220 +f 4688//4220 4687//4220 4708//4220 4707//4220 +f 4709//4220 4650//4220 4649//4220 4710//4220 +f 4650//4220 4709//4220 4711//4220 4651//4220 +f 4712//4220 4656//4220 4655//4220 4713//4220 +f 4656//4220 4712//4220 4714//4220 4657//4220 +f 4715//4220 4662//4220 4661//4220 4716//4220 +f 4662//4220 4715//4220 4717//4220 4663//4220 +f 4718//4220 4668//4220 4667//4220 4719//4220 +f 4668//4220 4718//4220 4720//4220 4669//4220 +f 4721//4220 4674//4220 4673//4220 4722//4220 +f 4674//4220 4721//4220 4723//4220 4675//4220 +f 4724//4220 4680//4220 4679//4220 4725//4220 +f 4680//4220 4724//4220 4726//4220 4681//4220 +f 4727//4220 4686//4220 4685//4220 4728//4220 +f 4686//4220 4727//4220 4729//4220 4687//4220 +f 4730//4220 4336//4220 4335//4220 4731//4220 +f 4732//4220 4730//4220 4731//4220 4733//4220 +f 4730//4220 4732//4220 4734//4220 4735//4220 +f 4336//4220 4730//4220 4735//4220 4337//4220 +f 4736//4220 4351//4220 4350//4220 4737//4220 +f 4738//4220 4736//4220 4737//4220 4739//4220 +f 4736//4220 4738//4220 4740//4220 4741//4220 +f 4351//4220 4736//4220 4741//4220 4352//4220 +f 4742//4220 4366//4220 4365//4220 4743//4220 +f 4744//4220 4742//4220 4743//4220 4745//4220 +f 4742//4220 4744//4220 4746//4220 4747//4220 +f 4366//4220 4742//4220 4747//4220 4367//4220 +f 4748//4220 4381//4220 4380//4220 4749//4220 +f 4750//4220 4748//4220 4749//4220 4751//4220 +f 4748//4220 4750//4220 4752//4220 4753//4220 +f 4381//4220 4748//4220 4753//4220 4382//4220 +f 4754//4220 4387//4220 4382//4220 4753//4220 +f 4755//4220 4754//4220 4753//4220 4752//4220 +f 4754//4220 4755//4220 4756//4220 4757//4220 +f 4387//4220 4754//4220 4757//4220 4388//4220 +f 4758//4220 4402//4220 4401//4220 4759//4220 +f 4760//4220 4758//4220 4759//4220 4761//4220 +f 4758//4220 4760//4220 4762//4220 4763//4220 +f 4402//4220 4758//4220 4763//4220 4403//4220 +f 4764//4220 4417//4220 4416//4220 4765//4220 +f 4766//4220 4764//4220 4765//4220 4767//4220 +f 4764//4220 4766//4220 4768//4220 4769//4220 +f 4417//4220 4764//4220 4769//4220 4418//4220 +f 4770//4220 4432//4220 4431//4220 4771//4220 +f 4772//4220 4770//4220 4771//4220 4773//4220 +f 4770//4220 4772//4220 4774//4220 4775//4220 +f 4432//4220 4770//4220 4775//4220 4433//4220 +f 4776//4293 4777//4220 4350//4220 4348//4228 +f 4778//4294 4776//4293 4348//4228 4349//4229 +f 4776//4293 4778//4294 4310//4195 4333//4218 +f 4777//4220 4776//4293 4333//4218 4337//4220 +f 4779//4295 4780//4220 4365//4220 4363//4237 +f 4781//4296 4779//4295 4363//4237 4364//4238 +f 4779//4295 4781//4296 4346//4226 4345//4225 +f 4780//4220 4779//4295 4345//4225 4352//4220 +f 4782//4297 4783//4220 4380//4220 4378//4246 +f 4784//4298 4782//4297 4378//4246 4379//4247 +f 4782//4297 4784//4298 4361//4235 4360//4234 +f 4783//4220 4782//4297 4360//4234 4367//4220 +f 4785//4299 4786//4220 4401//4220 4399//4259 +f 4787//4300 4785//4299 4399//4259 4400//4260 +f 4785//4299 4787//4300 4385//4250 4384//4249 +f 4786//4220 4785//4299 4384//4249 4388//4220 +f 4788//4301 4789//4220 4416//4220 4414//4268 +f 4790//4302 4788//4301 4414//4268 4415//4269 +f 4788//4301 4790//4302 4397//4257 4396//4256 +f 4789//4220 4788//4301 4396//4256 4403//4220 +f 4791//4303 4792//4220 4431//4220 4429//4277 +f 4793//4304 4791//4303 4429//4277 4430//4278 +f 4791//4303 4793//4304 4412//4266 4411//4265 +f 4792//4220 4791//4303 4411//4265 4418//4220 +f 4794//4305 4795//4220 4796//4220 4797//4306 +f 4798//4307 4794//4305 4797//4306 4799//4308 +f 4794//4305 4798//4307 4427//4275 4426//4274 +f 4795//4220 4794//4305 4426//4274 4433//4220 +f 4800//4220 4801//4220 4739//4220 4737//4220 +f 4777//4220 4800//4220 4737//4220 4350//4220 +f 4800//4220 4777//4220 4337//4220 4735//4220 +f 4801//4220 4800//4220 4735//4220 4734//4220 +f 4802//4220 4803//4220 4745//4220 4743//4220 +f 4780//4220 4802//4220 4743//4220 4365//4220 +f 4802//4220 4780//4220 4352//4220 4741//4220 +f 4803//4220 4802//4220 4741//4220 4740//4220 +f 4804//4220 4805//4220 4751//4220 4749//4220 +f 4783//4220 4804//4220 4749//4220 4380//4220 +f 4804//4220 4783//4220 4367//4220 4747//4220 +f 4805//4220 4804//4220 4747//4220 4746//4220 +f 4806//4220 4807//4220 4761//4220 4759//4220 +f 4786//4220 4806//4220 4759//4220 4401//4220 +f 4806//4220 4786//4220 4388//4220 4757//4220 +f 4807//4220 4806//4220 4757//4220 4756//4220 +f 4808//4220 4809//4220 4767//4220 4765//4220 +f 4789//4220 4808//4220 4765//4220 4416//4220 +f 4808//4220 4789//4220 4403//4220 4763//4220 +f 4809//4220 4808//4220 4763//4220 4762//4220 +f 4810//4220 4811//4220 4773//4220 4771//4220 +f 4792//4220 4810//4220 4771//4220 4431//4220 +f 4810//4220 4792//4220 4418//4220 4769//4220 +f 4811//4220 4810//4220 4769//4220 4768//4220 +f 4812//4220 4813//4220 4814//4220 4815//4220 +f 4795//4220 4812//4220 4815//4220 4796//4220 +f 4812//4220 4795//4220 4433//4220 4775//4220 +f 4813//4220 4812//4220 4775//4220 4774//4220 +f 4816//4220 4732//4220 4733//4220 4817//4220 +f 4818//4220 4816//4220 4817//4220 4819//4220 +f 4816//4220 4818//4220 4820//4220 4821//4220 +f 4732//4220 4816//4220 4821//4220 4734//4220 +f 4822//4220 4738//4220 4739//4220 4823//4220 +f 4824//4220 4822//4220 4823//4220 4825//4220 +f 4822//4220 4824//4220 4826//4220 4827//4220 +f 4738//4220 4822//4220 4827//4220 4740//4220 +f 4828//4220 4744//4220 4745//4220 4829//4220 +f 4830//4220 4828//4220 4829//4220 4831//4220 +f 4828//4220 4830//4220 4832//4220 4833//4220 +f 4744//4220 4828//4220 4833//4220 4746//4220 +f 4834//4220 4750//4220 4751//4220 4835//4220 +f 4836//4220 4834//4220 4835//4220 4837//4220 +f 4834//4220 4836//4220 4838//4220 4839//4220 +f 4750//4220 4834//4220 4839//4220 4752//4220 +f 4840//4220 4755//4220 4752//4220 4839//4220 +f 4841//4220 4840//4220 4839//4220 4838//4220 +f 4840//4220 4841//4220 4842//4220 4843//4220 +f 4755//4220 4840//4220 4843//4220 4756//4220 +f 4844//4220 4760//4220 4761//4220 4845//4220 +f 4846//4220 4844//4220 4845//4220 4847//4220 +f 4844//4220 4846//4220 4848//4220 4849//4220 +f 4760//4220 4844//4220 4849//4220 4762//4220 +f 4850//4220 4766//4220 4767//4220 4851//4220 +f 4852//4220 4850//4220 4851//4220 4853//4220 +f 4850//4220 4852//4220 4854//4220 4855//4220 +f 4766//4220 4850//4220 4855//4220 4768//4220 +f 4856//4220 4772//4220 4773//4220 4857//4220 +f 4858//4220 4856//4220 4857//4220 4859//4220 +f 4856//4220 4858//4220 4860//4220 4861//4220 +f 4772//4220 4856//4220 4861//4220 4774//4220 +f 4862//4220 4863//4220 4825//4220 4823//4220 +f 4801//4220 4862//4220 4823//4220 4739//4220 +f 4862//4220 4801//4220 4734//4220 4821//4220 +f 4863//4220 4862//4220 4821//4220 4820//4220 +f 4864//4220 4865//4220 4831//4220 4829//4220 +f 4803//4220 4864//4220 4829//4220 4745//4220 +f 4864//4220 4803//4220 4740//4220 4827//4220 +f 4865//4220 4864//4220 4827//4220 4826//4220 +f 4866//4220 4867//4220 4837//4220 4835//4220 +f 4805//4220 4866//4220 4835//4220 4751//4220 +f 4866//4220 4805//4220 4746//4220 4833//4220 +f 4867//4220 4866//4220 4833//4220 4832//4220 +f 4868//4220 4869//4220 4847//4220 4845//4220 +f 4807//4220 4868//4220 4845//4220 4761//4220 +f 4868//4220 4807//4220 4756//4220 4843//4220 +f 4869//4220 4868//4220 4843//4220 4842//4220 +f 4870//4220 4871//4220 4853//4220 4851//4220 +f 4809//4220 4870//4220 4851//4220 4767//4220 +f 4870//4220 4809//4220 4762//4220 4849//4220 +f 4871//4220 4870//4220 4849//4220 4848//4220 +f 4872//4220 4873//4220 4859//4220 4857//4220 +f 4811//4220 4872//4220 4857//4220 4773//4220 +f 4872//4220 4811//4220 4768//4220 4855//4220 +f 4873//4220 4872//4220 4855//4220 4854//4220 +f 4874//4220 4875//4220 4876//4220 4877//4220 +f 4813//4220 4874//4220 4877//4220 4814//4220 +f 4874//4220 4813//4220 4774//4220 4861//4220 +f 4875//4220 4874//4220 4861//4220 4860//4220 +f 4878//4220 4818//4220 4819//4220 4879//4220 +f 4880//4220 4878//4220 4879//4220 4881//4220 +f 4878//4220 4880//4220 4711//4220 4882//4220 +f 4818//4220 4878//4220 4882//4220 4820//4220 +f 4883//4220 4824//4220 4825//4220 4884//4220 +f 4885//4220 4883//4220 4884//4220 4710//4220 +f 4883//4220 4885//4220 4714//4220 4886//4220 +f 4824//4220 4883//4220 4886//4220 4826//4220 +f 4887//4220 4830//4220 4831//4220 4888//4220 +f 4889//4220 4887//4220 4888//4220 4713//4220 +f 4887//4220 4889//4220 4717//4220 4890//4220 +f 4830//4220 4887//4220 4890//4220 4832//4220 +f 4891//4220 4836//4220 4837//4220 4892//4220 +f 4893//4220 4891//4220 4892//4220 4716//4220 +f 4891//4220 4893//4220 4894//4220 4895//4220 +f 4836//4220 4891//4220 4895//4220 4838//4220 +f 4896//4220 4841//4220 4838//4220 4895//4220 +f 4897//4220 4896//4220 4895//4220 4894//4220 +f 4896//4220 4897//4220 4720//4220 4898//4220 +f 4841//4220 4896//4220 4898//4220 4842//4220 +f 4899//4220 4846//4220 4847//4220 4900//4220 +f 4901//4220 4899//4220 4900//4220 4719//4220 +f 4899//4220 4901//4220 4723//4220 4902//4220 +f 4846//4220 4899//4220 4902//4220 4848//4220 +f 4903//4220 4852//4220 4853//4220 4904//4220 +f 4905//4220 4903//4220 4904//4220 4722//4220 +f 4903//4220 4905//4220 4726//4220 4906//4220 +f 4852//4220 4903//4220 4906//4220 4854//4220 +f 4907//4220 4858//4220 4859//4220 4908//4220 +f 4909//4220 4907//4220 4908//4220 4725//4220 +f 4907//4220 4909//4220 4729//4220 4910//4220 +f 4858//4220 4907//4220 4910//4220 4860//4220 +f 4911//4309 4912//4310 4913//4311 4914//4312 +f 4915//4313 4911//4309 4914//4312 4198//4124 +f 4911//4309 4915//4313 4335//4220 4334//4219 +f 4912//4310 4911//4309 4334//4219 4307//4192 +f 4916//4314 4917//4315 4918//4316 4919//4317 +f 2798//2799 4916//4314 4919//4317 2799//2800 +f 4916//4314 2798//2799 2805//2806 4443//4283 +f 4917//4315 4916//4314 4443//4283 4442//4220 +f 4920//4318 4921//4319 4922//4320 4923//4321 +f 4917//4315 4920//4318 4923//4321 4918//4316 +f 4920//4318 4917//4315 4442//4220 4506//4220 +f 4921//4319 4920//4318 4506//4220 4505//4220 +f 4924//4322 4925//4323 4926//4324 4927//4325 +f 4921//4319 4924//4322 4927//4325 4922//4320 +f 4924//4322 4921//4319 4505//4220 4568//4220 +f 4925//4323 4924//4322 4568//4220 4567//4220 +f 4928//4326 4929//4327 4221//4140 4930//4328 +f 4925//4323 4928//4326 4930//4328 4926//4324 +f 4928//4326 4925//4323 4567//4220 4630//4220 +f 4929//4327 4928//4326 4630//4220 4629//4220 +f 4931//4329 4932//4330 4214//4135 4217//4138 +f 4929//4327 4931//4329 4217//4138 4221//4140 +f 4931//4329 4929//4327 4629//4220 4689//4220 +f 4689//4220 4692//4220 4932//4330 4931//4329 +f 4933//4220 4709//4220 4710//4220 4884//4220 +f 4863//4220 4933//4220 4884//4220 4825//4220 +f 4933//4220 4863//4220 4820//4220 4882//4220 +f 4709//4220 4933//4220 4882//4220 4711//4220 +f 4934//4220 4712//4220 4713//4220 4888//4220 +f 4865//4220 4934//4220 4888//4220 4831//4220 +f 4934//4220 4865//4220 4826//4220 4886//4220 +f 4712//4220 4934//4220 4886//4220 4714//4220 +f 4935//4220 4715//4220 4716//4220 4892//4220 +f 4867//4220 4935//4220 4892//4220 4837//4220 +f 4935//4220 4867//4220 4832//4220 4890//4220 +f 4715//4220 4935//4220 4890//4220 4717//4220 +f 4936//4220 4718//4220 4719//4220 4900//4220 +f 4869//4220 4936//4220 4900//4220 4847//4220 +f 4936//4220 4869//4220 4842//4220 4898//4220 +f 4718//4220 4936//4220 4898//4220 4720//4220 +f 4937//4220 4721//4220 4722//4220 4904//4220 +f 4871//4220 4937//4220 4904//4220 4853//4220 +f 4937//4220 4871//4220 4848//4220 4902//4220 +f 4721//4220 4937//4220 4902//4220 4723//4220 +f 4938//4220 4724//4220 4725//4220 4908//4220 +f 4873//4220 4938//4220 4908//4220 4859//4220 +f 4938//4220 4873//4220 4854//4220 4906//4220 +f 4724//4220 4938//4220 4906//4220 4726//4220 +f 4939//4220 4727//4220 4728//4220 4940//4220 +f 4875//4220 4939//4220 4940//4220 4876//4220 +f 4939//4220 4875//4220 4860//4220 4910//4220 +f 4727//4220 4939//4220 4910//4220 4729//4220 +f 4691//4220 4880//4220 4881//4220 4692//4220 +f 4880//4220 4691//4220 4651//4220 4711//4220 +f 4694//4220 4885//4220 4710//4220 4649//4220 +f 4885//4220 4694//4220 4657//4220 4714//4220 +f 4696//4220 4889//4220 4713//4220 4655//4220 +f 4889//4220 4696//4220 4663//4220 4717//4220 +f 4698//4220 4893//4220 4716//4220 4661//4220 +f 4893//4220 4698//4220 4700//4220 4894//4220 +f 4702//4220 4897//4220 4894//4220 4700//4220 +f 4897//4220 4702//4220 4669//4220 4720//4220 +f 4704//4220 4901//4220 4719//4220 4667//4220 +f 4901//4220 4704//4220 4675//4220 4723//4220 +f 4706//4220 4905//4220 4722//4220 4673//4220 +f 4905//4220 4706//4220 4681//4220 4726//4220 +f 4708//4220 4909//4220 4725//4220 4679//4220 +f 4909//4220 4708//4220 4687//4220 4729//4220 +f 4932//4330 4941//4330 4210//4133 4214//4135 +f 4941//4330 4932//4330 4692//4220 4881//4220 +f 4942//4331 4943//4332 4188//4117 4211//4134 +f 4941//4330 4942//4331 4211//4134 4210//4133 +f 4942//4331 4941//4330 4881//4220 4879//4220 +f 4943//4332 4942//4331 4879//4220 4819//4220 +f 4944//4333 4945//4334 4191//4120 4189//4118 +f 4943//4332 4944//4333 4189//4118 4188//4117 +f 4944//4333 4943//4332 4819//4220 4817//4220 +f 4945//4334 4944//4333 4817//4220 4733//4220 +f 4946//4335 4915//4313 4198//4124 4196//4122 +f 4945//4334 4946//4335 4196//4122 4191//4120 +f 4946//4335 4945//4334 4733//4220 4731//4220 +f 4915//4313 4946//4335 4731//4220 4335//4220 +f 4947//2484 2486//2484 2487//2487 4948//4336 +f 4067//4012 4947//2484 4948//4336 4068//4013 +f 4947//2484 4067//4012 4074//4019 4949//2488 +f 2486//2484 4947//2484 4949//2488 2488//2488 +f 4950//2530 2529//2530 2488//2488 4949//2488 +f 4076//4021 4950//2530 4949//2488 4074//4019 +f 4950//2530 4076//4021 4080//4025 4951//2531 +f 2529//2530 4950//2530 4951//2531 2530//2531 +f 4952//2560 2559//2560 2530//2531 4951//2531 +f 4082//4027 4952//2560 4951//2531 4080//4025 +f 4952//2560 4082//4027 4086//4031 4953//2561 +f 2559//2560 4952//2560 4953//2561 2560//2561 +f 4954//2590 2589//2590 2560//2561 4953//2561 +f 4088//4033 4954//2590 4953//2561 4086//4031 +f 4954//2590 4088//4033 4092//4037 4955//2591 +f 2589//2590 4954//2590 4955//2591 2590//2591 +f 4956//2620 2619//2620 2590//2591 4955//2591 +f 4094//4039 4956//2620 4955//2591 4092//4037 +f 4956//2620 4094//4039 4098//4043 4957//2621 +f 2619//2620 4956//2620 4957//2621 2620//2621 +f 4958//4337 2649//2650 2620//2621 4957//2621 +f 4100//4045 4958//4337 4957//2621 4098//4043 +f 4958//4337 4100//4045 4104//4049 4959//4338 +f 2649//2650 4958//4337 4959//4338 2650//2651 +f 4960//4339 2679//2680 2650//2651 4959//4338 +f 4106//4051 4960//4339 4959//4338 4104//4049 +f 4960//4339 4106//4051 4110//4055 4961//4340 +f 2679//2680 4960//4339 4961//4340 2680//2681 +f 4962//4341 2709//2710 2680//2681 4961//4340 +f 4112//4057 4962//4341 4961//4340 4110//4055 +f 4962//4341 4112//4057 4116//4061 4963//2711 +f 2709//2710 4962//4341 4963//2711 2710//2711 +f 4964//2740 2739//2740 2710//2711 4963//2711 +f 4118//4063 4964//2740 4963//2711 4116//4061 +f 4964//2740 4118//4063 4122//4067 4965//4342 +f 2739//2740 4964//2740 4965//4342 2740//2741 +f 4966//2770 2769//2770 2740//2741 4965//4342 +f 4124//4069 4966//2770 4965//4342 4122//4067 +f 4966//2770 4124//4069 4128//4073 4967//2771 +f 2769//2770 4966//2770 4967//2771 2770//2771 +f 4968//4343 2801//2802 2802//2803 4163//4108 +f 4130//4075 4968//4343 4163//4108 4131//4076 +f 4968//4343 4130//4075 4136//4081 4282//4169 +f 2801//2802 4968//4343 4282//4169 2803//2804 +f 4969//2847 2846//2847 2847//2848 4284//2848 +f 4138//4083 4969//2847 4284//2848 4139//4084 +f 4969//2847 4138//4083 4145//4090 4970//2849 +f 2846//2847 4969//2847 4970//2849 2848//2849 +f 4971//2890 2889//2890 2848//2849 4970//2849 +f 4147//4092 4971//2890 4970//2849 4145//4090 +f 4971//2890 4147//4092 4151//4096 4972//2891 +f 2889//2890 4971//2890 4972//2891 2890//2891 +f 4973//2920 2919//2920 2890//2891 4972//2891 +f 4153//4098 4973//2920 4972//2891 4151//4096 +f 4973//2920 4153//4098 4157//4102 4974//2921 +f 2919//2920 4973//2920 4974//2921 2920//2921 +f 4975//4344 2949//2950 2920//2921 4974//2921 +f 4159//4104 4975//4344 4974//2921 4157//4102 +f 4975//4344 4159//4104 4068//4013 4948//4336 +f 2949//2950 4975//4344 4948//4336 2487//2487 +f 4976//4345 3342//3344 3343//3345 4977//4346 +f 4784//4298 4976//4345 4977//4346 4361//4235 +f 4976//4345 4784//4298 4379//4247 4978//4347 +f 3342//3344 4976//4345 4978//4347 3344//3346 +f 4979//4348 3347//3349 3344//3346 4978//4347 +f 4377//4245 4979//4348 4978//4347 4379//4247 +f 4979//4348 4377//4245 4376//4244 4980//4349 +f 3347//3349 4979//4348 4980//4349 3348//3350 +f 4981//4350 3351//3353 3348//3350 4980//4349 +f 4386//4251 4981//4350 4980//4349 4376//4244 +f 4981//4350 4386//4251 4385//4250 4982//4351 +f 3351//3353 4981//4350 4982//4351 3352//3354 +f 4983//4352 3355//3357 3352//3354 4982//4351 +f 4787//4300 4983//4352 4982//4351 4385//4250 +f 4983//4352 4787//4300 4400//4260 4984//4353 +f 3355//3357 4983//4352 4984//4353 3356//3358 +f 4985//4354 3359//3361 3356//3358 4984//4353 +f 4398//4258 4985//4354 4984//4353 4400//4260 +f 4985//4354 4398//4258 4397//4257 4986//4355 +f 3359//3361 4985//4354 4986//4355 3360//3362 +f 4987//4356 3363//3365 3360//3362 4986//4355 +f 4790//4302 4987//4356 4986//4355 4397//4257 +f 4987//4356 4790//4302 4415//4269 4988//4357 +f 3363//3365 4987//4356 4988//4357 3364//3366 +f 4989//4358 3367//3369 3364//3366 4988//4357 +f 4413//4267 4989//4358 4988//4357 4415//4269 +f 4989//4358 4413//4267 4412//4266 4990//4359 +f 3367//3369 4989//4358 4990//4359 3368//3370 +f 4991//4360 3371//3373 3368//3370 4990//4359 +f 4793//4304 4991//4360 4990//4359 4412//4266 +f 4991//4360 4793//4304 4430//4278 4992//4361 +f 3371//3373 4991//4360 4992//4361 3372//3374 +f 4993//4362 3375//3377 3372//3374 4992//4361 +f 4428//4276 4993//4362 4992//4361 4430//4278 +f 4993//4362 4428//4276 4427//4275 4994//4363 +f 3375//3377 4993//4362 4994//4363 3376//3378 +f 4995//4364 3379//3381 3376//3378 4994//4363 +f 4798//4307 4995//4364 4994//4363 4427//4275 +f 4995//4364 4798//4307 4799//4308 4996//4365 +f 3379//3381 4995//4364 4996//4365 3380//3382 +f 4997//4366 3384//3386 3385//3387 4998//4367 +f 4912//4310 4997//4366 4998//4367 4913//4311 +f 4997//4366 4912//4310 4307//4192 4306//4191 +f 3384//3386 4997//4366 4306//4191 3386//3388 +f 4999//4368 3390//3392 3391//3393 4309//4194 +f 4778//4294 4999//4368 4309//4194 4310//4195 +f 4999//4368 4778//4294 4349//4229 5000//4369 +f 3390//3392 4999//4368 5000//4369 3392//3394 +f 5001//4370 3395//3397 3392//3394 5000//4369 +f 4347//4227 5001//4370 5000//4369 4349//4229 +f 5001//4370 4347//4227 4346//4226 5002//4371 +f 3395//3397 5001//4370 5002//4371 3396//3398 +f 5003//4372 3399//3401 3396//3398 5002//4371 +f 4781//4296 5003//4372 5002//4371 4346//4226 +f 5003//4372 4781//4296 4364//4238 5004//4373 +f 3399//3401 5003//4372 5004//4373 3400//3402 +f 5005//4374 3403//3405 3400//3402 5004//4373 +f 4362//4236 5005//4374 5004//4373 4364//4238 +f 5005//4374 4362//4236 4361//4235 4977//4346 +f 3403//3405 5005//4374 4977//4346 3343//3345 +f 5006//4375 3975//3949 3974//3948 4197//4123 +f 4914//4312 5006//4375 4197//4123 4198//4124 +f 5006//4375 4914//4312 4913//4311 4998//4367 +f 3975//3949 5006//4375 4998//4367 3385//3387 +f 5007//4376 4164//4109 2802//2803 2800//2801 +f 4919//4317 5007//4376 2800//2801 2799//2800 +f 5007//4376 4919//4317 4918//4316 5008//4377 +f 4164//4109 5007//4376 5008//4377 4165//4110 +f 5009//4378 4172//3953 4173//3953 5010//4379 +f 4927//4325 5009//4378 5010//4379 4922//4320 +f 5009//4378 4927//4325 4926//4324 5011//4380 +f 4172//3953 5009//4378 5011//4380 4174//3953 +f 5012//4381 4179//4114 4165//4110 5008//4377 +f 4923//4321 5012//4381 5008//4377 4918//4316 +f 5012//4381 4923//4321 4922//4320 5010//4379 +f 4179//4114 5012//4381 5010//4379 4173//3953 +f 5013//4382 4182//3953 4174//3953 5011//4380 +f 4930//4328 5013//4382 5011//4380 4926//4324 +f 5013//4382 4930//4328 4221//4140 4220//4139 +f 4182//3953 5013//4382 4220//4139 4183//3953 +f 5014//3953 4193//3953 4192//3953 5015//3953 +f 4207//3959 5014//3953 5015//3953 4202//3953 +f 5014//3953 4207//3959 4206//3959 5016//3953 +f 4193//3953 5014//3953 5016//3953 4194//3953 +f 5017//4383 4199//4125 3974//3948 3973//3947 +f 4203//4128 5017//4383 3973//3947 3963//3937 +f 5017//4383 4203//4128 4202//3953 5015//3953 +f 4199//4125 5017//4383 5015//3953 4192//3953 +f 5018//3953 4212//3953 4194//3953 5016//3953 +f 4240//3953 5018//3953 5016//3953 4206//3959 +f 5018//3953 4240//3953 4239//3953 5019//3953 +f 4212//3953 5018//3953 5019//3953 4213//3953 +f 5020//3959 4218//3959 4213//3953 5019//3953 +f 4229//3953 5020//3959 5019//3953 4239//3953 +f 4228//3953 5021//3959 5020//3959 4229//3953 +f 4219//3959 4218//3959 5020//3959 5021//3959 +f 5021//3959 4228//3953 4185//3959 4184//3953 +f 4219//3959 5021//3959 4184//3953 4183//3953 +f 5022//4384 4285//4168 2847//2848 2845//2846 +f 4444//4284 5022//4384 2845//2846 2844//2845 +f 5022//4384 4444//4284 2805//2806 2804//2805 +f 4285//4168 5022//4384 2804//2805 2803//2804 +f 5023//4385 4311//4196 3391//3393 3389//3391 +f 4294//4179 5023//4385 3389//3391 2883//2884 +f 5023//4385 4294//4179 2839//2840 3387//3389 +f 4311//4196 5023//4385 3387//3389 3386//3388 +f 5024//4386 5025//4387 5026//4388 5027//4389 +f 5028//4390 5029//4391 5025//4387 5024//4386 +f 5024//4386 5030//4392 5031//4393 5028//4390 +f 5027//4389 5032//4394 5030//4392 5024//4386 +f 5033//4395 5034//4396 5035//4397 5036//4398 +f 5037//4399 5038//4400 5034//4396 5033//4395 +f 5033//4395 5039//4401 5040//4402 5037//4399 +f 5036//4398 5041//4403 5039//4401 5033//4395 +f 5042//4404 5043//4405 5044//4406 5045//4407 +f 5046//4408 5043//4405 5042//4404 5047//4409 +f 5042//4404 5048//4410 5049//4411 5047//4409 +f 5045//4407 5050//4412 5048//4410 5042//4404 +f 5051//4413 5052//4414 5053//4415 5054//4416 +f 5055//4417 5056//4418 5052//4414 5051//4413 +f 5051//4413 5057//4419 5058//4420 5055//4417 +f 5054//4416 5059//4421 5057//4419 5051//4413 +f 5060//4422 5061//4423 5062//4424 5063//4425 +f 5064//4426 5065//4427 5061//4423 5060//4422 +f 5060//4422 5066//4428 5067//4429 5064//4426 +f 5063//4425 5068//4430 5066//4428 5060//4422 +f 5069//4431 5030//4392 5032//4394 5070//4432 +f 5071//4433 5031//4393 5030//4392 5069//4431 +f 5069//4431 5072//4434 5073//4435 5071//4433 +f 5070//4432 5074//4436 5072//4434 5069//4431 +f 5075//4437 5039//4401 5041//4403 5076//4438 +f 5077//4439 5040//4402 5039//4401 5075//4437 +f 5075//4437 5078//4440 5079//4441 5077//4439 +f 5076//4438 5080//4442 5078//4440 5075//4437 +f 5081//4443 5048//4410 5050//4412 5082//4444 +f 5048//4410 5081//4443 5083//4445 5049//4411 +f 5081//4443 5084//4446 5085//4447 5083//4445 +f 5082//4444 5086//4448 5084//4446 5081//4443 +f 5087//4449 5057//4419 5059//4421 5088//4450 +f 5089//4451 5058//4420 5057//4419 5087//4449 +f 5087//4449 5090//4452 5091//4453 5089//4451 +f 5088//4450 5092//4454 5090//4452 5087//4449 +f 5093//4455 5066//4428 5068//4430 5094//4456 +f 5095//4457 5067//4429 5066//4428 5093//4455 +f 5093//4455 5096//4458 5097//4459 5095//4457 +f 5094//4456 5098//4460 5096//4458 5093//4455 +f 5099//4461 5072//4434 5074//4436 5100//4462 +f 5101//4463 5073//4435 5072//4434 5099//4461 +f 5099//4461 5102//4464 5103//4465 5101//4463 +f 5100//4462 5104//4466 5102//4464 5099//4461 +f 5105//4467 5078//4440 5080//4442 5106//4468 +f 5107//4469 5079//4441 5078//4440 5105//4467 +f 5105//4467 5108//4470 5109//4471 5107//4469 +f 5106//4468 5110//4472 5108//4470 5105//4467 +f 5111//4473 5084//4446 5086//4448 5112//4474 +f 5084//4446 5111//4473 5113//4475 5085//4447 +f 5111//4473 5114//4476 5115//4477 5113//4475 +f 5112//4474 5116//4478 5114//4476 5111//4473 +f 5117//4479 5090//4452 5092//4454 5118//4480 +f 5119//4481 5091//4453 5090//4452 5117//4479 +f 5117//4479 5120//4482 5121//4483 5119//4481 +f 5118//4480 5122//4484 5120//4482 5117//4479 +f 5123//4485 5096//4458 5098//4460 5124//4486 +f 5125//4487 5097//4459 5096//4458 5123//4485 +f 5123//4485 5126//4488 5127//4489 5125//4487 +f 5124//4486 5128//4490 5126//4488 5123//4485 +f 5129//4491 5102//4464 5104//4466 5130//4492 +f 5131//4493 5103//4465 5102//4464 5129//4491 +f 5129//4491 5132//4494 5133//4495 5131//4493 +f 5130//4492 5134//4496 5132//4494 5129//4491 +f 5135//4497 5108//4470 5110//4472 5136//4498 +f 5137//4499 5109//4471 5108//4470 5135//4497 +f 5135//4497 5138//4500 5139//4501 5137//4499 +f 5136//4498 5140//4502 5138//4500 5135//4497 +f 5141//4503 5114//4476 5116//4478 5142//4504 +f 5114//4476 5141//4503 5143//4505 5115//4477 +f 5141//4503 5144//4506 5145//4507 5143//4505 +f 5142//4504 5146//4508 5144//4506 5141//4503 +f 5147//4509 5120//4482 5122//4484 5148//4510 +f 5149//4511 5121//4483 5120//4482 5147//4509 +f 5147//4509 5150//4512 5151//4513 5149//4511 +f 5148//4510 5152//4514 5150//4512 5147//4509 +f 5153//4515 5126//4488 5128//4490 5154//4516 +f 5155//4517 5127//4489 5126//4488 5153//4515 +f 5153//4515 5156//4518 5157//4519 5155//4517 +f 5154//4516 5158//4520 5156//4518 5153//4515 +f 5159//4521 5132//4494 5134//4496 5160//4522 +f 5161//4523 5133//4495 5132//4494 5159//4521 +f 5159//4521 5162//4524 5163//4525 5161//4523 +f 5160//4522 5164//4526 5162//4524 5159//4521 +f 5165//4527 5138//4500 5140//4502 5166//4528 +f 5167//4529 5139//4501 5138//4500 5165//4527 +f 5165//4527 5168//4530 5169//4531 5167//4529 +f 5166//4528 5170//4532 5168//4530 5165//4527 +f 5171//4533 5144//4506 5146//4508 5172//4534 +f 5144//4506 5171//4533 5173//4535 5145//4507 +f 5171//4533 5174//4536 5175//4537 5173//4535 +f 5172//4534 5176//4538 5174//4536 5171//4533 +f 5177//4539 5150//4512 5152//4514 5178//4540 +f 5179//4541 5151//4513 5150//4512 5177//4539 +f 5177//4539 5180//4542 5181//4543 5179//4541 +f 5178//4540 5182//4544 5180//4542 5177//4539 +f 5183//4545 5156//4518 5158//4520 5184//4546 +f 5185//4547 5157//4519 5156//4518 5183//4545 +f 5183//4545 5186//4548 5187//4549 5185//4547 +f 5184//4546 5188//4550 5186//4548 5183//4545 +f 5189//4551 5162//4524 5164//4526 5190//4552 +f 5191//4553 5163//4525 5162//4524 5189//4551 +f 5189//4551 5192//4554 5193//4555 5191//4553 +f 5190//4552 5194//4556 5192//4554 5189//4551 +f 5195//4557 5168//4530 5170//4532 5196//4558 +f 5197//4559 5169//4531 5168//4530 5195//4557 +f 5195//4557 5198//4560 5199//4561 5197//4559 +f 5196//4558 5200//4562 5198//4560 5195//4557 +f 5201//4563 5174//4536 5176//4538 5202//4564 +f 5174//4536 5201//4563 5203//4565 5175//4537 +f 5201//4563 5204//4566 5205//4567 5203//4565 +f 5202//4564 5206//4568 5204//4566 5201//4563 +f 5207//4569 5180//4542 5182//4544 5208//4570 +f 5209//4571 5181//4543 5180//4542 5207//4569 +f 5207//4569 5210//4572 5211//4573 5209//4571 +f 5208//4570 5212//4574 5210//4572 5207//4569 +f 5213//4575 5186//4548 5188//4550 5214//4576 +f 5215//4577 5187//4549 5186//4548 5213//4575 +f 5213//4575 5216//4578 5217//4579 5215//4577 +f 5214//4576 5218//4580 5216//4578 5213//4575 +f 5219//4581 5192//4554 5194//4556 5220//4582 +f 5221//4583 5193//4555 5192//4554 5219//4581 +f 5219//4581 5222//4584 5223//4585 5221//4583 +f 5220//4582 5224//4586 5222//4584 5219//4581 +f 5225//4587 5198//4560 5200//4562 5226//4588 +f 5227//4589 5199//4561 5198//4560 5225//4587 +f 5225//4587 5228//4590 5229//4591 5227//4589 +f 5226//4588 5230//4592 5228//4590 5225//4587 +f 5231//4593 5204//4566 5206//4568 5232//4594 +f 5204//4566 5231//4593 5233//4595 5205//4567 +f 5231//4593 5234//4596 5235//4597 5233//4595 +f 5232//4594 5236//4598 5234//4596 5231//4593 +f 5237//4599 5210//4572 5212//4574 5238//4600 +f 5239//4601 5211//4573 5210//4572 5237//4599 +f 5237//4599 5240//4602 5241//4603 5239//4601 +f 5238//4600 5242//4604 5240//4602 5237//4599 +f 5243//4605 5216//4578 5218//4580 5244//4606 +f 5245//4607 5217//4579 5216//4578 5243//4605 +f 5243//4605 5246//4608 5247//4609 5245//4607 +f 5244//4606 5248//4610 5246//4608 5243//4605 +f 5249//4611 5222//4584 5224//4586 5250//4612 +f 5251//4613 5223//4585 5222//4584 5249//4611 +f 5249//4611 5252//4614 5253//4615 5251//4613 +f 5250//4612 5254//4616 5252//4614 5249//4611 +f 5255//4617 5228//4590 5230//4592 5256//4618 +f 5257//4619 5229//4591 5228//4590 5255//4617 +f 5255//4617 5258//4620 5259//4621 5257//4619 +f 5256//4618 5260//4622 5258//4620 5255//4617 +f 5261//4623 5234//4596 5236//4598 5262//4624 +f 5234//4596 5261//4623 5263//4625 5235//4597 +f 5261//4623 5264//4626 5265//4627 5263//4625 +f 5262//4624 5266//4628 5264//4626 5261//4623 +f 5267//4629 5240//4602 5242//4604 5268//4630 +f 5269//4631 5241//4603 5240//4602 5267//4629 +f 5267//4629 5270//4632 5271//4633 5269//4631 +f 5268//4630 5272//4634 5270//4632 5267//4629 +f 5273//4635 5246//4608 5248//4610 5274//4636 +f 5275//4637 5247//4609 5246//4608 5273//4635 +f 5273//4635 5276//4638 5277//4639 5275//4637 +f 5274//4636 5278//4640 5276//4638 5273//4635 +f 5279//4641 5252//4614 5254//4616 5280//4642 +f 5281//4643 5253//4615 5252//4614 5279//4641 +f 5279//4641 5282//4644 5283//4645 5281//4643 +f 5280//4642 5284//4646 5282//4644 5279//4641 +f 5285//4647 5258//4620 5260//4622 5286//4648 +f 5287//4649 5259//4621 5258//4620 5285//4647 +f 5285//4647 5288//4650 5289//4651 5287//4649 +f 5286//4648 5290//4652 5288//4650 5285//4647 +f 5291//4653 5264//4626 5266//4628 5292//4654 +f 5264//4626 5291//4653 5293//4655 5265//4627 +f 5291//4653 5294//4656 5295//4657 5293//4655 +f 5292//4654 5296//4658 5294//4656 5291//4653 +f 5297//4659 5270//4632 5272//4634 5298//4660 +f 5299//4661 5271//4633 5270//4632 5297//4659 +f 5297//4659 5300//4662 5301//4663 5299//4661 +f 5298//4660 5302//4664 5300//4662 5297//4659 +f 5303//4665 5276//4638 5278//4640 5304//4666 +f 5305//4667 5277//4639 5276//4638 5303//4665 +f 5303//4665 5306//4668 5307//4669 5305//4667 +f 5304//4666 5308//4670 5306//4668 5303//4665 +f 5309//4671 5282//4644 5284//4646 5310//4672 +f 5311//4673 5283//4645 5282//4644 5309//4671 +f 5309//4671 2771//2772 2770//2771 5311//4673 +f 5310//4672 2772//2773 2771//2772 5309//4671 +f 5312//4674 5288//4650 5290//4652 5313//4675 +f 5314//4676 5289//4651 5288//4650 5312//4674 +f 5312//4674 2777//2778 2776//2777 5314//4676 +f 5313//4675 2778//2779 2777//2778 5312//4674 +f 5315//4677 5294//4656 5296//4658 5316//4678 +f 5294//4656 5315//4677 5317//4679 5295//4657 +f 5315//4677 2783//2784 2782//2783 5317//4679 +f 5316//4678 2784//2785 2783//2784 5315//4677 +f 5318//4680 5300//4662 5302//4664 5319//4681 +f 5320//4682 5301//4663 5300//4662 5318//4680 +f 5318//4680 2789//2790 2788//2789 5320//4682 +f 5319//4681 2790//2791 2789//2790 5318//4680 +f 5321//4683 5306//4668 5308//4670 5322//4684 +f 5323//4685 5307//4669 5306//4668 5321//4683 +f 5321//4683 2795//2796 2794//2795 5323//4685 +f 5322//4684 2796//2797 2795//2796 5321//4683 +f 5324//4686 5325//4687 5326//4688 5327//4689 +f 5328//4690 5329//4691 5325//4687 5324//4686 +f 5324//4686 5330//4692 5331//4693 5328//4690 +f 5327//4689 5332//4694 5330//4692 5324//4686 +f 5333//4695 5334//4696 5335//4697 5336//4698 +f 5337//4699 5338//4700 5334//4696 5333//4695 +f 5333//4695 5339//4701 5340//4702 5337//4699 +f 5336//4698 5341//4703 5339//4701 5333//4695 +f 5342//4704 5343//4705 5344//4706 5345//4707 +f 5346//4708 5343//4705 5342//4704 5347//4709 +f 5342//4704 5348//4710 5349//4711 5347//4709 +f 5345//4707 5350//4712 5348//4710 5342//4704 +f 5351//4713 5352//4714 5353//4715 5354//4716 +f 5355//4717 5356//4718 5352//4714 5351//4713 +f 5351//4713 5357//4719 5358//4720 5355//4717 +f 5354//4716 5359//4721 5357//4719 5351//4713 +f 5360//4722 5361//4723 5362//4724 5363//4725 +f 5364//4726 5365//4727 5361//4723 5360//4722 +f 5360//4722 5366//4728 5367//4729 5364//4726 +f 5363//4725 5368//4730 5366//4728 5360//4722 +f 5369//4731 5370//4732 5371//4733 5372//4734 +f 5373//4735 5374//4736 5370//4732 5369//4731 +f 5369//4731 5375//4737 5376//4738 5373//4735 +f 5372//4734 5377//4739 5375//4737 5369//4731 +f 5378//4740 5379//4741 5380//4742 5381//4743 +f 5382//4744 5383//4745 5379//4741 5378//4740 +f 5378//4740 5384//4746 5385//4747 5382//4744 +f 5381//4743 5386//4748 5384//4746 5378//4740 +f 5387//4749 5388//4750 5389//4751 5390//4752 +f 5391//4753 5388//4750 5387//4749 5392//4754 +f 5387//4749 5393//4755 5394//4756 5392//4754 +f 5390//4752 5395//4757 5393//4755 5387//4749 +f 5396//4758 5397//4759 5398//4760 5399//4761 +f 5400//4762 5401//4763 5397//4759 5396//4758 +f 5396//4758 5402//4764 5403//4765 5400//4762 +f 5399//4761 5404//4766 5402//4764 5396//4758 +f 5405//4767 5406//4768 5407//4769 5408//4770 +f 5409//4771 5410//4772 5406//4768 5405//4767 +f 5405//4767 5411//4773 5412//4774 5409//4771 +f 5408//4770 5413//4775 5411//4773 5405//4767 +f 5414//4776 5375//4737 5377//4739 5415//4777 +f 5416//4778 5376//4738 5375//4737 5414//4776 +f 5414//4776 5417//4779 5418//4780 5416//4778 +f 5415//4777 5419//4781 5417//4779 5414//4776 +f 5420//4782 5384//4746 5386//4748 5421//4783 +f 5422//4784 5385//4747 5384//4746 5420//4782 +f 5420//4782 5423//4785 5424//4786 5422//4784 +f 5421//4783 5425//4787 5423//4785 5420//4782 +f 5426//4788 5393//4755 5395//4757 5427//4789 +f 5393//4755 5426//4788 5428//4790 5394//4756 +f 5426//4788 5429//4791 5430//4792 5428//4790 +f 5427//4789 5431//4793 5429//4791 5426//4788 +f 5432//4794 5402//4764 5404//4766 5433//4795 +f 5434//4796 5403//4765 5402//4764 5432//4794 +f 5432//4794 5435//4797 5436//4798 5434//4796 +f 5433//4795 5437//4799 5435//4797 5432//4794 +f 5438//4800 5411//4773 5413//4775 5439//4801 +f 5440//4802 5412//4774 5411//4773 5438//4800 +f 5438//4800 5441//4803 5442//4804 5440//4802 +f 5439//4801 5443//4805 5441//4803 5438//4800 +f 5444//4806 5417//4779 5419//4781 5445//4807 +f 5446//4808 5418//4780 5417//4779 5444//4806 +f 5444//4806 5447//4809 5448//4810 5446//4808 +f 5445//4807 5449//4811 5447//4809 5444//4806 +f 5450//4812 5423//4785 5425//4787 5451//4813 +f 5452//4814 5424//4786 5423//4785 5450//4812 +f 5450//4812 5453//4815 5454//4816 5452//4814 +f 5451//4813 5455//4817 5453//4815 5450//4812 +f 5456//4818 5429//4791 5431//4793 5457//4819 +f 5429//4791 5456//4818 5458//4820 5430//4792 +f 5456//4818 5459//4821 5460//4822 5458//4820 +f 5457//4819 5461//4823 5459//4821 5456//4818 +f 5462//4824 5435//4797 5437//4799 5463//4825 +f 5464//4826 5436//4798 5435//4797 5462//4824 +f 5462//4824 5465//4827 5466//4828 5464//4826 +f 5463//4825 5467//4829 5465//4827 5462//4824 +f 5468//4830 5441//4803 5443//4805 5469//4831 +f 5470//4832 5442//4804 5441//4803 5468//4830 +f 5468//4830 5471//4833 5472//4834 5470//4832 +f 5469//4831 5473//4835 5471//4833 5468//4830 +f 5474//4836 5447//4809 5449//4811 5475//4837 +f 5476//4838 5448//4810 5447//4809 5474//4836 +f 5474//4836 5025//4387 5029//4391 5476//4838 +f 5475//4837 5026//4388 5025//4387 5474//4836 +f 5477//4839 5453//4815 5455//4817 5478//4840 +f 5479//4841 5454//4816 5453//4815 5477//4839 +f 5477//4839 5034//4396 5038//4400 5479//4841 +f 5478//4840 5035//4397 5034//4396 5477//4839 +f 5480//4842 5459//4821 5461//4823 5481//4843 +f 5459//4821 5480//4842 5482//4844 5460//4822 +f 5480//4842 5043//4405 5046//4408 5482//4844 +f 5481//4843 5044//4406 5043//4405 5480//4842 +f 5483//4845 5465//4827 5467//4829 5484//4846 +f 5485//4847 5466//4828 5465//4827 5483//4845 +f 5483//4845 5052//4414 5056//4418 5485//4847 +f 5484//4846 5053//4415 5052//4414 5483//4845 +f 5486//4848 5471//4833 5473//4835 5487//4849 +f 5488//4850 5472//4834 5471//4833 5486//4848 +f 5486//4848 5061//4423 5065//4427 5488//4850 +f 5487//4849 5062//4424 5061//4423 5486//4848 +f 5489//4851 5490//4852 5491//4853 5492//4854 +f 5493//4855 5494//4856 5490//4852 5489//4851 +f 5489//4851 5495//4857 5496//4858 5493//4855 +f 5492//4854 5497//4859 5495//4857 5489//4851 +f 5498//4860 5499//4861 5500//4862 5501//4863 +f 5502//4864 5503//4865 5499//4861 5498//4860 +f 5498//4860 5504//4866 5505//4867 5502//4864 +f 5501//4863 5506//4868 5504//4866 5498//4860 +f 5507//4869 5508//4870 5509//4871 5510//4872 +f 5492//4854 5491//4853 5508//4870 5507//4869 +f 5507//4869 5511//4873 5497//4859 5492//4854 +f 5510//4872 5512//4874 5511//4873 5507//4869 +f 5513//4875 5514//4876 5515//4877 5516//4878 +f 5501//4863 5500//4862 5514//4876 5513//4875 +f 5513//4875 5517//4879 5506//4868 5501//4863 +f 5516//4878 5518//4880 5517//4879 5513//4875 +f 5519//4881 5520//4882 5521//4883 5522//4884 +f 5510//4872 5509//4871 5520//4882 5519//4881 +f 5519//4881 5523//4885 5512//4874 5510//4872 +f 5522//4884 5524//4886 5523//4885 5519//4881 +f 5525//4887 5526//4888 5527//4889 5528//4890 +f 5516//4878 5515//4877 5526//4888 5525//4887 +f 5525//4887 5529//4891 5518//4880 5516//4878 +f 5528//4890 5530//4892 5529//4891 5525//4887 +f 5531//4893 5532//4894 5533//4895 5534//4896 +f 5522//4884 5521//4883 5532//4894 5531//4893 +f 5531//4893 5535//4897 5524//4886 5522//4884 +f 5534//4896 5536//4898 5535//4897 5531//4893 +f 5537//4899 5538//4900 5539//4901 5540//4902 +f 5528//4890 5527//4889 5538//4900 5537//4899 +f 5537//4899 5541//4903 5530//4892 5528//4890 +f 5540//4902 5542//4904 5541//4903 5537//4899 +f 5543//4905 5544//4906 5545//4907 5546//4908 +f 5534//4896 5533//4895 5544//4906 5543//4905 +f 5543//4905 5547//4909 5536//4898 5534//4896 +f 5546//4908 5548//4910 5547//4909 5543//4905 +f 5549//4911 5550//4912 5551//4913 5552//4914 +f 5540//4902 5539//4901 5550//4912 5549//4911 +f 5549//4911 5553//4915 5542//4904 5540//4902 +f 5552//4914 5554//4916 5553//4915 5549//4911 +f 5555//4917 5556//4918 5557//4919 5558//4920 +f 5546//4908 5545//4907 5556//4918 5555//4917 +f 5555//4917 5559//4921 5548//4910 5546//4908 +f 5558//4920 5560//4922 5559//4921 5555//4917 +f 5561//4923 5562//4924 5563//4925 5564//4926 +f 5552//4914 5551//4913 5562//4924 5561//4923 +f 5561//4923 5565//4927 5554//4916 5552//4914 +f 5564//4926 5566//4928 5565//4927 5561//4923 +f 5567//4929 5568//4930 5569//4931 5570//4932 +f 5558//4920 5557//4919 5568//4930 5567//4929 +f 5567//4929 5571//4933 5560//4922 5558//4920 +f 5570//4932 5572//4934 5571//4933 5567//4929 +f 5573//4935 5574//4936 5575//4937 5576//4938 +f 5564//4926 5563//4925 5574//4936 5573//4935 +f 5573//4935 5577//4939 5566//4928 5564//4926 +f 5576//4938 5578//4940 5577//4939 5573//4935 +f 5579//4941 5580//4942 5581//4943 5582//4944 +f 5570//4932 5569//4931 5580//4942 5579//4941 +f 5579//4941 5583//4945 5572//4934 5570//4932 +f 5582//4944 5584//4946 5583//4945 5579//4941 +f 5585//4947 5586//4948 5587//4949 5588//4950 +f 5576//4938 5575//4937 5586//4948 5585//4947 +f 5585//4947 5589//4951 5578//4940 5576//4938 +f 5588//4950 5590//4952 5589//4951 5585//4947 +f 5591//4953 5592//4954 5593//4955 5594//4956 +f 5582//4944 5581//4943 5592//4954 5591//4953 +f 5591//4953 5595//4957 5584//4946 5582//4944 +f 5594//4956 5596//4958 5595//4957 5591//4953 +f 5597//4959 5598//4960 5599//4961 5600//4962 +f 5588//4950 5587//4949 5598//4960 5597//4959 +f 5597//4959 5601//4963 5590//4952 5588//4950 +f 5600//4962 5602//4964 5601//4963 5597//4959 +f 5603//4965 5604//4966 3078//3080 3077//3079 +f 5594//4956 5593//4955 5604//4966 5603//4965 +f 5603//4965 5605//4967 5596//4958 5594//4956 +f 3077//3079 3081//3083 5605//4967 5603//4965 +f 5606//4968 5607//4969 3084//3086 3083//3085 +f 5600//4962 5599//4961 5607//4969 5606//4968 +f 5606//4968 5608//4970 5602//4964 5600//4962 +f 3083//3085 3087//3089 5608//4970 5606//4968 +f 5609//4971 5610//4972 5611//4973 5612//4974 +f 5613//4975 5614//4976 5610//4972 5609//4971 +f 5609//4971 5615//4977 5616//4978 5613//4975 +f 5612//4974 5617//4979 5615//4977 5609//4971 +f 5618//4980 5619//4981 5620//4982 5621//4983 +f 5622//4984 5623//4985 5619//4981 5618//4980 +f 5618//4980 5624//4986 5625//4987 5622//4984 +f 5621//4983 5626//4988 5624//4986 5618//4980 +f 5627//4989 5628//4990 5629//4991 5630//4992 +f 5612//4974 5611//4973 5628//4990 5627//4989 +f 5627//4989 5631//4993 5617//4979 5612//4974 +f 5630//4992 5632//4994 5631//4993 5627//4989 +f 5633//4995 5634//4996 5635//4997 5636//4998 +f 5621//4983 5620//4982 5634//4996 5633//4995 +f 5633//4995 5637//4999 5626//4988 5621//4983 +f 5636//4998 5638//5000 5637//4999 5633//4995 +f 5639//5001 5640//5002 5641//5003 5642//5004 +f 5630//4992 5629//4991 5640//5002 5639//5001 +f 5639//5001 5643//5005 5632//4994 5630//4992 +f 5642//5004 5644//5006 5643//5005 5639//5001 +f 5645//5007 5646//5008 5647//5009 5648//5010 +f 5636//4998 5635//4997 5646//5008 5645//5007 +f 5645//5007 5649//5011 5638//5000 5636//4998 +f 5648//5010 5650//5012 5649//5011 5645//5007 +f 5651//5013 5652//5014 5653//5015 5654//5016 +f 5642//5004 5641//5003 5652//5014 5651//5013 +f 5651//5013 5655//5017 5644//5006 5642//5004 +f 5654//5016 5656//5018 5655//5017 5651//5013 +f 5657//5019 5658//5020 5659//5021 5660//5022 +f 5648//5010 5647//5009 5658//5020 5657//5019 +f 5657//5019 5661//5023 5650//5012 5648//5010 +f 5660//5022 5662//5024 5661//5023 5657//5019 +f 5663//5025 5664//5026 5494//4856 5493//4855 +f 5654//5016 5653//5015 5664//5026 5663//5025 +f 5663//5025 5665//5027 5656//5018 5654//5016 +f 5493//4855 5496//4858 5665//5027 5663//5025 +f 5666//5028 5667//5029 5503//4865 5502//4864 +f 5660//5022 5659//5021 5667//5029 5666//5028 +f 5666//5028 5668//5030 5662//5024 5660//5022 +f 5502//4864 5505//4867 5668//5030 5666//5028 +f 5669//5031 5495//4857 5497//4859 5670//5032 +f 5671//5033 5496//4858 5495//4857 5669//5031 +f 5669//5031 5045//4407 5044//4406 5671//5033 +f 5670//5032 5050//4412 5045//4407 5669//5031 +f 5672//5034 5511//4873 5512//4874 5673//5035 +f 5670//5032 5497//4859 5511//4873 5672//5034 +f 5672//5034 5082//4444 5050//4412 5670//5032 +f 5673//5035 5086//4448 5082//4444 5672//5034 +f 5674//5036 5523//4885 5524//4886 5675//5037 +f 5673//5035 5512//4874 5523//4885 5674//5036 +f 5674//5036 5112//4474 5086//4448 5673//5035 +f 5675//5037 5116//4478 5112//4474 5674//5036 +f 5676//5038 5535//4897 5536//4898 5677//5039 +f 5675//5037 5524//4886 5535//4897 5676//5038 +f 5676//5038 5142//4504 5116//4478 5675//5037 +f 5677//5039 5146//4508 5142//4504 5676//5038 +f 5678//5040 5547//4909 5548//4910 5679//5041 +f 5677//5039 5536//4898 5547//4909 5678//5040 +f 5678//5040 5172//4534 5146//4508 5677//5039 +f 5679//5041 5176//4538 5172//4534 5678//5040 +f 5680//5042 5559//4921 5560//4922 5681//5043 +f 5679//5041 5548//4910 5559//4921 5680//5042 +f 5680//5042 5202//4564 5176//4538 5679//5041 +f 5681//5043 5206//4568 5202//4564 5680//5042 +f 5682//5044 5571//4933 5572//4934 5683//5045 +f 5681//5043 5560//4922 5571//4933 5682//5044 +f 5682//5044 5232//4594 5206//4568 5681//5043 +f 5683//5045 5236//4598 5232//4594 5682//5044 +f 5684//5046 5583//4945 5584//4946 5685//5047 +f 5683//5045 5572//4934 5583//4945 5684//5046 +f 5684//5046 5262//4624 5236//4598 5683//5045 +f 5685//5047 5266//4628 5262//4624 5684//5046 +f 5686//5048 5595//4957 5596//4958 5687//5049 +f 5685//5047 5584//4946 5595//4957 5686//5048 +f 5686//5048 5292//4654 5266//4628 5685//5047 +f 5687//5049 5296//4658 5292//4654 5686//5048 +f 5688//5050 5605//4967 3081//3083 3168//3170 +f 5687//5049 5596//4958 5605//4967 5688//5050 +f 5688//5050 5316//4678 5296//4658 5687//5049 +f 3168//3170 2784//2785 5316//4678 5688//5050 +f 5689//5051 5615//4977 5617//4979 5690//5052 +f 5691//5053 5616//4978 5615//4977 5689//5051 +f 5689//5051 5692//5054 5350//4712 5691//5053 +f 5690//5052 5389//4751 5692//5054 5689//5051 +f 5693//5055 5631//4993 5632//4994 5694//5056 +f 5690//5052 5617//4979 5631//4993 5693//5055 +f 5693//5055 5390//4752 5389//4751 5690//5052 +f 5694//5056 5395//4757 5390//4752 5693//5055 +f 5695//5057 5643//5005 5644//5006 5696//5058 +f 5694//5056 5632//4994 5643//5005 5695//5057 +f 5695//5057 5427//4789 5395//4757 5694//5056 +f 5696//5058 5431//4793 5427//4789 5695//5057 +f 5697//5059 5655//5017 5656//5018 5698//5060 +f 5696//5058 5644//5006 5655//5017 5697//5059 +f 5697//5059 5457//4819 5431//4793 5696//5058 +f 5698//5060 5461//4823 5457//4819 5697//5059 +f 5699//5061 5665//5027 5496//4858 5671//5033 +f 5698//5060 5656//5018 5665//5027 5699//5061 +f 5699//5061 5481//4843 5461//4823 5698//5060 +f 5671//5033 5044//4406 5481//4843 5699//5061 +f 5700//5062 5701//5063 5702//5064 5703//5065 +f 5704//5066 5705//5067 5701//5063 5700//5062 +f 5700//5062 5706//5068 5707//5069 5704//5066 +f 5703//5065 5708//5070 5706//5068 5700//5062 +f 5709//5071 5706//5068 5708//5070 5710//5072 +f 5711//5073 5707//5069 5706//5068 5709//5071 +f 5709//5071 5712//5074 5713//5075 5711//5073 +f 5710//5072 5714//5076 5712//5074 5709//5071 +f 5715//5077 5712//5074 5714//5076 5716//5078 +f 5717//5079 5713//5075 5712//5074 5715//5077 +f 5715//5077 5718//5080 5719//5081 5717//5079 +f 5716//5078 5720//5082 5718//5080 5715//5077 +f 5721//5083 5718//5080 5720//5082 5722//5084 +f 5723//5085 5719//5081 5718//5080 5721//5083 +f 5721//5083 5724//5086 5725//5087 5723//5085 +f 5722//5084 5726//5088 5724//5086 5721//5083 +f 5727//5089 5724//5086 5726//5088 5728//5090 +f 5729//5091 5725//5087 5724//5086 5727//5089 +f 5727//5089 5730//5092 5731//5093 5729//5091 +f 5728//5090 5732//5094 5730//5092 5727//5089 +f 5733//5095 5730//5092 5732//5094 5734//5096 +f 5735//5097 5731//5093 5730//5092 5733//5095 +f 5733//5095 5736//5098 5737//5099 5735//5097 +f 5734//5096 5738//5100 5736//5098 5733//5095 +f 5739//5101 5736//5098 5738//5100 5740//5102 +f 5741//5103 5737//5099 5736//5098 5739//5101 +f 5739//5101 5742//5104 5743//5105 5741//5103 +f 5740//5102 5744//5106 5742//5104 5739//5101 +f 5745//5107 5742//5104 5744//5106 5746//5108 +f 5747//5109 5743//5105 5742//5104 5745//5107 +f 5745//5107 5748//5110 5749//5111 5747//5109 +f 5746//5108 5750//5112 5748//5110 5745//5107 +f 5751//5113 5748//5110 5750//5112 5752//5114 +f 5753//5115 5749//5111 5748//5110 5751//5113 +f 5751//5113 5754//5116 5755//5117 5753//5115 +f 5752//5114 5756//5118 5754//5116 5751//5113 +f 5757//5119 5754//5116 5756//5118 5758//5120 +f 5759//5121 5755//5117 5754//5116 5757//5119 +f 5757//5119 3241//3243 3240//3242 5759//5121 +f 5758//5120 3242//3244 3241//3243 5757//5119 +f 5760//5122 5761//5123 5762//5124 5763//5125 +f 5764//5126 5765//5127 5761//5123 5760//5122 +f 5760//5122 5766//5128 5767//5129 5764//5126 +f 5763//5125 5768//5130 5766//5128 5760//5122 +f 5769//5131 5770//5132 5771//5133 5772//5134 +f 5773//5135 5774//5136 5770//5132 5769//5131 +f 5769//5131 5775//5137 5776//5138 5773//5135 +f 5772//5134 5777//5139 5775//5137 5769//5131 +f 5778//5140 5775//5137 5777//5139 5779//5141 +f 5780//5142 5776//5138 5775//5137 5778//5140 +f 5778//5140 5781//5143 5782//5144 5780//5142 +f 5779//5141 5783//5145 5781//5143 5778//5140 +f 5784//5146 5781//5143 5783//5145 5785//5147 +f 5786//5148 5782//5144 5781//5143 5784//5146 +f 5784//5146 5787//5149 5788//5150 5786//5148 +f 5785//5147 5789//5151 5787//5149 5784//5146 +f 5790//5152 5787//5149 5789//5151 5791//5153 +f 5792//5154 5788//5150 5787//5149 5790//5152 +f 5790//5152 5701//5063 5705//5067 5792//5154 +f 5791//5153 5702//5064 5701//5063 5790//5152 +f 5793//5155 5794//5156 5795//5157 5796//5158 +f 5063//4425 5062//4424 5794//5156 5793//5155 +f 5793//5155 5797//5159 5068//4430 5063//4425 +f 5796//5158 5798//5160 5797//5159 5793//5155 +f 5799//5161 5797//5159 5798//5160 5800//5162 +f 5094//4456 5068//4430 5797//5159 5799//5161 +f 5799//5161 5801//5163 5098//4460 5094//4456 +f 5800//5162 5802//5164 5801//5163 5799//5161 +f 5803//5165 5801//5163 5802//5164 5804//5166 +f 5124//4486 5098//4460 5801//5163 5803//5165 +f 5803//5165 5805//5167 5128//4490 5124//4486 +f 5804//5166 5806//5168 5805//5167 5803//5165 +f 5807//5169 5805//5167 5806//5168 5808//5170 +f 5154//4516 5128//4490 5805//5167 5807//5169 +f 5807//5169 5809//5171 5158//4520 5154//4516 +f 5808//5170 5810//5172 5809//5171 5807//5169 +f 5811//5173 5809//5171 5810//5172 5812//5174 +f 5184//4546 5158//4520 5809//5171 5811//5173 +f 5811//5173 5813//5175 5188//4550 5184//4546 +f 5812//5174 5814//5176 5813//5175 5811//5173 +f 5815//5177 5813//5175 5814//5176 5816//5178 +f 5214//4576 5188//4550 5813//5175 5815//5177 +f 5815//5177 5817//5179 5218//4580 5214//4576 +f 5816//5178 5818//5180 5817//5179 5815//5177 +f 5819//5181 5817//5179 5818//5180 5820//5182 +f 5244//4606 5218//4580 5817//5179 5819//5181 +f 5819//5181 5821//5183 5248//4610 5244//4606 +f 5820//5182 5822//5184 5821//5183 5819//5181 +f 5823//5185 5821//5183 5822//5184 5824//5186 +f 5274//4636 5248//4610 5821//5183 5823//5185 +f 5823//5185 5825//5187 5278//4640 5274//4636 +f 5824//5186 5826//5188 5825//5187 5823//5185 +f 5827//5189 5825//5187 5826//5188 5828//5190 +f 5304//4666 5278//4640 5825//5187 5827//5189 +f 5827//5189 5829//5191 5308//4670 5304//4666 +f 5828//5190 5830//5192 5829//5191 5827//5189 +f 5831//5193 5829//5191 5830//5192 5832//5194 +f 5322//4684 5308//4670 5829//5191 5831//5193 +f 5831//5193 3316//3318 2796//2797 5322//4684 +f 5832//5194 3317//3319 3316//3318 5831//5193 +f 5833//5195 5834//5196 5835//5197 5836//5198 +f 5363//4725 5362//4724 5834//5196 5833//5195 +f 5833//5195 5837//5199 5368//4730 5363//4725 +f 5836//5198 5838//5200 5837//5199 5833//5195 +f 5839//5201 5840//5202 5841//5203 5842//5204 +f 5408//4770 5407//4769 5840//5202 5839//5201 +f 5839//5201 5843//5205 5413//4775 5408//4770 +f 5842//5204 5844//5206 5843//5205 5839//5201 +f 5845//5207 5843//5205 5844//5206 5846//5208 +f 5439//4801 5413//4775 5843//5205 5845//5207 +f 5845//5207 5847//5209 5443//4805 5439//4801 +f 5846//5208 5848//5210 5847//5209 5845//5207 +f 5849//5211 5847//5209 5848//5210 5850//5212 +f 5469//4831 5443//4805 5847//5209 5849//5211 +f 5849//5211 5851//5213 5473//4835 5469//4831 +f 5850//5212 5852//5214 5851//5213 5849//5211 +f 5853//5215 5851//5213 5852//5214 5854//5216 +f 5487//4849 5473//4835 5851//5213 5853//5215 +f 5853//5215 5794//5156 5062//4424 5487//4849 +f 5854//5216 5795//5157 5794//5156 5853//5215 +f 5855//5217 5856//5218 5065//4427 5064//4426 +f 5857//5219 5858//5220 5856//5218 5855//5217 +f 5855//5217 5859//5221 5860//5222 5857//5219 +f 5064//4426 5067//4429 5859//5221 5855//5217 +f 5861//5223 5859//5221 5067//4429 5095//4457 +f 5862//5224 5860//5222 5859//5221 5861//5223 +f 5861//5223 5863//5225 5864//5226 5862//5224 +f 5095//4457 5097//4459 5863//5225 5861//5223 +f 5865//5227 5863//5225 5097//4459 5125//4487 +f 5866//5228 5864//5226 5863//5225 5865//5227 +f 5865//5227 5867//5229 5868//5230 5866//5228 +f 5125//4487 5127//4489 5867//5229 5865//5227 +f 5869//5231 5867//5229 5127//4489 5155//4517 +f 5870//5232 5868//5230 5867//5229 5869//5231 +f 5869//5231 5871//5233 5872//5234 5870//5232 +f 5155//4517 5157//4519 5871//5233 5869//5231 +f 5873//5235 5871//5233 5157//4519 5185//4547 +f 5874//5236 5872//5234 5871//5233 5873//5235 +f 5873//5235 5875//5237 5876//5238 5874//5236 +f 5185//4547 5187//4549 5875//5237 5873//5235 +f 5877//5239 5875//5237 5187//4549 5215//4577 +f 5878//5240 5876//5238 5875//5237 5877//5239 +f 5877//5239 5879//5241 5880//5242 5878//5240 +f 5215//4577 5217//4579 5879//5241 5877//5239 +f 5881//5243 5879//5241 5217//4579 5245//4607 +f 5882//5244 5880//5242 5879//5241 5881//5243 +f 5881//5243 5883//5245 5884//5246 5882//5244 +f 5245//4607 5247//4609 5883//5245 5881//5243 +f 5885//5247 5883//5245 5247//4609 5275//4637 +f 5886//5248 5884//5246 5883//5245 5885//5247 +f 5885//5247 5887//5249 5888//5250 5886//5248 +f 5275//4637 5277//4639 5887//5249 5885//5247 +f 5889//5251 5887//5249 5277//4639 5305//4667 +f 5890//5252 5888//5250 5887//5249 5889//5251 +f 5889//5251 5891//5253 5892//5254 5890//5252 +f 5305//4667 5307//4669 5891//5253 5889//5251 +f 5893//5255 5891//5253 5307//4669 5323//4685 +f 5894//5256 5892//5254 5891//5253 5893//5255 +f 5893//5255 3381//3383 3380//3382 5894//5256 +f 5323//4685 2794//2795 3381//3383 5893//5255 +f 5895//5257 5896//5258 5365//4727 5364//4726 +f 5897//5259 5898//5260 5896//5258 5895//5257 +f 5895//5257 5899//5261 5900//5262 5897//5259 +f 5364//4726 5367//4729 5899//5261 5895//5257 +f 5901//5263 5902//5264 5410//4772 5409//4771 +f 5903//5265 5904//5266 5902//5264 5901//5263 +f 5901//5263 5905//5267 5906//5268 5903//5265 +f 5409//4771 5412//4774 5905//5267 5901//5263 +f 5907//5269 5905//5267 5412//4774 5440//4802 +f 5908//5270 5906//5268 5905//5267 5907//5269 +f 5907//5269 5909//5271 5910//5272 5908//5270 +f 5440//4802 5442//4804 5909//5271 5907//5269 +f 5911//5273 5909//5271 5442//4804 5470//4832 +f 5912//5274 5910//5272 5909//5271 5911//5273 +f 5911//5273 5913//5275 5914//5276 5912//5274 +f 5470//4832 5472//4834 5913//5275 5911//5273 +f 5915//5277 5913//5275 5472//4834 5488//4850 +f 5916//5278 5914//5276 5913//5275 5915//5277 +f 5915//5277 5856//5218 5858//5220 5916//5278 +f 5488//4850 5065//4427 5856//5218 5915//5277 +f 5917//5279 5918//5280 5919//5281 5920//5282 +f 5490//4852 5494//4856 5918//5280 5917//5279 +f 5917//5279 5921//5283 5491//4853 5490//4852 +f 5920//5282 5922//5284 5921//5283 5917//5279 +f 5923//5285 5921//5283 5922//5284 5924//5286 +f 5508//4870 5491//4853 5921//5283 5923//5285 +f 5923//5285 5925//5287 5509//4871 5508//4870 +f 5924//5286 5926//5288 5925//5287 5923//5285 +f 5927//5289 5925//5287 5926//5288 5928//5290 +f 5520//4882 5509//4871 5925//5287 5927//5289 +f 5927//5289 5929//5291 5521//4883 5520//4882 +f 5928//5290 5930//5292 5929//5291 5927//5289 +f 5931//5293 5929//5291 5930//5292 5932//5294 +f 5532//4894 5521//4883 5929//5291 5931//5293 +f 5931//5293 5933//5295 5533//4895 5532//4894 +f 5932//5294 5934//5296 5933//5295 5931//5293 +f 5935//5297 5933//5295 5934//5296 5936//5298 +f 5544//4906 5533//4895 5933//5295 5935//5297 +f 5935//5297 5937//5299 5545//4907 5544//4906 +f 5936//5298 5938//5300 5937//5299 5935//5297 +f 5939//5301 5937//5299 5938//5300 5940//5302 +f 5556//4918 5545//4907 5937//5299 5939//5301 +f 5939//5301 5941//5303 5557//4919 5556//4918 +f 5940//5302 5942//5304 5941//5303 5939//5301 +f 5943//5305 5941//5303 5942//5304 5944//5306 +f 5568//4930 5557//4919 5941//5303 5943//5305 +f 5943//5305 5945//5307 5569//4931 5568//4930 +f 5944//5306 5946//5308 5945//5307 5943//5305 +f 5947//5309 5945//5307 5946//5308 5948//5310 +f 5580//4942 5569//4931 5945//5307 5947//5309 +f 5947//5309 5949//5311 5581//4943 5580//4942 +f 5948//5310 5950//5312 5949//5311 5947//5309 +f 5951//5313 5949//5311 5950//5312 5952//5314 +f 5592//4954 5581//4943 5949//5311 5951//5313 +f 5951//5313 5953//5315 5593//4955 5592//4954 +f 5952//5314 5954//5316 5953//5315 5951//5313 +f 5955//5317 5953//5315 5954//5316 5956//5318 +f 5604//4966 5593//4955 5953//5315 5955//5317 +f 5955//5317 3444//3446 3078//3080 5604//4966 +f 5956//5318 3445//3447 3444//3446 5955//5317 +f 5957//5319 5958//5320 5959//5321 5960//5322 +f 5961//5323 5962//5324 5958//5320 5957//5319 +f 5957//5319 5963//5325 5614//4976 5961//5323 +f 5960//5322 5964//5326 5963//5325 5957//5319 +f 5965//5327 5966//5328 5967//5329 5968//5330 +f 5628//4990 5611//4973 5966//5328 5965//5327 +f 5965//5327 5969//5331 5629//4991 5628//4990 +f 5968//5330 5970//5332 5969//5331 5965//5327 +f 5971//5333 5969//5331 5970//5332 5972//5334 +f 5640//5002 5629//4991 5969//5331 5971//5333 +f 5971//5333 5973//5335 5641//5003 5640//5002 +f 5972//5334 5974//5336 5973//5335 5971//5333 +f 5975//5337 5973//5335 5974//5336 5976//5338 +f 5652//5014 5641//5003 5973//5335 5975//5337 +f 5975//5337 5977//5339 5653//5015 5652//5014 +f 5976//5338 5978//5340 5977//5339 5975//5337 +f 5979//5341 5977//5339 5978//5340 5980//5342 +f 5664//5026 5653//5015 5977//5339 5979//5341 +f 5979//5341 5918//5280 5494//4856 5664//5026 +f 5980//5342 5919//5281 5918//5280 5979//5341 +f 5981//5343 5982//5344 5983//5345 5984//5346 +f 5985//5347 5986//5348 5982//5344 5981//5343 +f 5981//5343 5987//5349 5988//5350 5985//5347 +f 5984//5346 5989//5351 5987//5349 5981//5343 +f 5990//5352 5987//5349 5989//5351 5991//5353 +f 5992//5354 5988//5350 5987//5349 5990//5352 +f 5990//5352 5993//5355 5994//5356 5992//5354 +f 5991//5353 5995//5357 5993//5355 5990//5352 +f 5996//5358 5993//5355 5995//5357 5997//5359 +f 5998//5360 5994//5356 5993//5355 5996//5358 +f 5996//5358 5999//5361 6000//5362 5998//5360 +f 5997//5359 6001//5363 5999//5361 5996//5358 +f 6002//5364 5999//5361 6001//5363 6003//5365 +f 6004//5366 6000//5362 5999//5361 6002//5364 +f 6002//5364 6005//5367 6006//5368 6004//5366 +f 6003//5365 6007//5369 6005//5367 6002//5364 +f 6008//5370 6005//5367 6007//5369 6009//5371 +f 6010//5372 6006//5368 6005//5367 6008//5370 +f 6008//5370 6011//5373 6012//5374 6010//5372 +f 6009//5371 6013//5375 6011//5373 6008//5370 +f 6014//5376 6011//5373 6013//5375 6015//5377 +f 6016//5378 6012//5374 6011//5373 6014//5376 +f 6014//5376 6017//5379 6018//5380 6016//5378 +f 6015//5377 6019//5381 6017//5379 6014//5376 +f 6020//5382 6017//5379 6019//5381 6021//5383 +f 6022//5384 6018//5380 6017//5379 6020//5382 +f 6020//5382 6023//5385 6024//5386 6022//5384 +f 6021//5383 6025//5387 6023//5385 6020//5382 +f 6026//5388 6023//5385 6025//5387 6027//5389 +f 6028//5390 6024//5386 6023//5385 6026//5388 +f 6026//5388 6029//5391 6030//5392 6028//5390 +f 6027//5389 6031//5393 6029//5391 6026//5388 +f 6032//5394 6029//5391 6031//5393 6033//5395 +f 6034//5396 6030//5392 6029//5391 6032//5394 +f 6032//5394 6035//5397 6036//5398 6034//5396 +f 6033//5395 6037//5399 6035//5397 6032//5394 +f 6038//5400 6035//5397 6037//5399 6039//5401 +f 6040//5402 6036//5398 6035//5397 6038//5400 +f 6038//5400 3531//3533 3530//3532 6040//5402 +f 6039//5401 3532//3534 3531//3533 6038//5400 +f 6041//5403 6042//5404 6043//5405 6044//5406 +f 6045//5407 6046//5408 6042//5404 6041//5403 +f 6041//5403 6047//5409 6048//5410 6045//5407 +f 6044//5406 6049//5411 6047//5409 6041//5403 +f 6050//5412 6051//5413 6052//5414 6053//5415 +f 6054//5416 6055//5417 6051//5413 6050//5412 +f 6050//5412 6056//5418 6057//5419 6054//5416 +f 6053//5415 6058//5420 6056//5418 6050//5412 +f 6059//5421 6056//5418 6058//5420 6060//5422 +f 6061//5423 6057//5419 6056//5418 6059//5421 +f 6059//5421 6062//5424 6063//5425 6061//5423 +f 6060//5422 6064//5426 6062//5424 6059//5421 +f 6065//5427 6062//5424 6064//5426 6066//5428 +f 6067//5429 6063//5425 6062//5424 6065//5427 +f 6065//5427 6068//5430 6069//5431 6067//5429 +f 6066//5428 6070//5432 6068//5430 6065//5427 +f 6071//5433 6068//5430 6070//5432 6072//5434 +f 6073//5435 6069//5431 6068//5430 6071//5433 +f 6071//5433 5982//5344 5986//5348 6073//5435 +f 6072//5434 5983//5345 5982//5344 6071//5433 +f 6074//5436 6075//5437 5038//4400 5037//4399 +f 6076//3570 6077//3570 6075//5437 6074//5436 +f 6074//5436 6078//5438 6079//3570 6076//3570 +f 5037//4399 5040//4402 6078//5438 6074//5436 +f 6080//5439 6078//5438 5040//4402 5077//4439 +f 6081//3570 6079//3570 6078//5438 6080//5439 +f 6080//5439 6082//5440 6083//3570 6081//3570 +f 5077//4439 5079//4441 6082//5440 6080//5439 +f 6084//5441 6082//5440 5079//4441 5107//4469 +f 6085//3570 6083//3570 6082//5440 6084//5441 +f 6084//5441 6086//5442 6087//3570 6085//3570 +f 5107//4469 5109//4471 6086//5442 6084//5441 +f 6088//5443 6086//5442 5109//4471 5137//4499 +f 6089//3570 6087//3570 6086//5442 6088//5443 +f 6088//5443 6090//5444 6091//3570 6089//3570 +f 5137//4499 5139//4501 6090//5444 6088//5443 +f 6092//5445 6090//5444 5139//4501 5167//4529 +f 6093//3570 6091//3570 6090//5444 6092//5445 +f 6092//5445 6094//5446 6095//3570 6093//3570 +f 5167//4529 5169//4531 6094//5446 6092//5445 +f 6096//5447 6094//5446 5169//4531 5197//4559 +f 6097//3570 6095//3570 6094//5446 6096//5447 +f 6096//5447 6098//5448 6099//3570 6097//3570 +f 5197//4559 5199//4561 6098//5448 6096//5447 +f 6100//5449 6098//5448 5199//4561 5227//4589 +f 6101//3570 6099//3570 6098//5448 6100//5449 +f 6100//5449 6102//5450 6103//3570 6101//3570 +f 5227//4589 5229//4591 6102//5450 6100//5449 +f 6104//5451 6102//5450 5229//4591 5257//4619 +f 6105//3570 6103//3570 6102//5450 6104//5451 +f 6104//5451 6106//5452 6107//3570 6105//3570 +f 5257//4619 5259//4621 6106//5452 6104//5451 +f 6108//5453 6106//5452 5259//4621 5287//4649 +f 6109//3570 6107//3570 6106//5452 6108//5453 +f 6108//5453 6110//5454 6111//3570 6109//3570 +f 5287//4649 5289//4651 6110//5454 6108//5453 +f 6112//5455 6110//5454 5289//4651 5314//4676 +f 6113//3570 6111//3570 6110//5454 6112//5455 +f 6112//5455 3607//3589 3606//3570 6113//3570 +f 5314//4676 2776//2777 3607//3589 6112//5455 +f 6114//5456 6115//5457 5338//4700 5337//4699 +f 6116//5458 6117//5459 6115//5457 6114//5456 +f 6114//5456 6118//5460 6119//5461 6116//5458 +f 5337//4699 5340//4702 6118//5460 6114//5456 +f 6120//5462 6121//5463 5383//4745 5382//4744 +f 6122//3570 6123//3570 6121//5463 6120//5462 +f 6120//5462 6124//5464 6125//3570 6122//3570 +f 5382//4744 5385//4747 6124//5464 6120//5462 +f 6126//5465 6124//5464 5385//4747 5422//4784 +f 6127//3570 6125//3570 6124//5464 6126//5465 +f 6126//5465 6128//5466 6129//3570 6127//3570 +f 5422//4784 5424//4786 6128//5466 6126//5465 +f 6130//5467 6128//5466 5424//4786 5452//4814 +f 6131//3570 6129//3570 6128//5466 6130//5467 +f 6130//5467 6132//5468 6133//3570 6131//3570 +f 5452//4814 5454//4816 6132//5468 6130//5467 +f 6134//5469 6132//5468 5454//4816 5479//4841 +f 6135//3570 6133//3570 6132//5468 6134//5469 +f 6134//5469 6075//5437 6077//3570 6135//3570 +f 5479//4841 5038//4400 6075//5437 6134//5469 +f 6136//5470 6137//5471 6138//5472 6139//5473 +f 5036//4398 5035//4397 6137//5471 6136//5470 +f 6136//5470 6140//5474 5041//4403 5036//4398 +f 6139//5473 6141//5475 6140//5474 6136//5470 +f 6142//5476 6140//5474 6141//5475 6143//5477 +f 5076//4438 5041//4403 6140//5474 6142//5476 +f 6142//5476 6144//5478 5080//4442 5076//4438 +f 6143//5477 6145//5479 6144//5478 6142//5476 +f 6146//5480 6144//5478 6145//5479 6147//5481 +f 5106//4468 5080//4442 6144//5478 6146//5480 +f 6146//5480 6148//5482 5110//4472 5106//4468 +f 6147//5481 6149//5483 6148//5482 6146//5480 +f 6150//5484 6148//5482 6149//5483 6151//5485 +f 5136//4498 5110//4472 6148//5482 6150//5484 +f 6150//5484 6152//5486 5140//4502 5136//4498 +f 6151//5485 6153//5487 6152//5486 6150//5484 +f 6154//5488 6152//5486 6153//5487 6155//5489 +f 5166//4528 5140//4502 6152//5486 6154//5488 +f 6154//5488 6156//5490 5170//4532 5166//4528 +f 6155//5489 6157//5491 6156//5490 6154//5488 +f 6158//5492 6156//5490 6157//5491 6159//5493 +f 5196//4558 5170//4532 6156//5490 6158//5492 +f 6158//5492 6160//5494 5200//4562 5196//4558 +f 6159//5493 6161//5495 6160//5494 6158//5492 +f 6162//5496 6160//5494 6161//5495 6163//5497 +f 5226//4588 5200//4562 6160//5494 6162//5496 +f 6162//5496 6164//5498 5230//4592 5226//4588 +f 6163//5497 6165//5499 6164//5498 6162//5496 +f 6166//5500 6164//5498 6165//5499 6167//5501 +f 5256//4618 5230//4592 6164//5498 6166//5500 +f 6166//5500 6168//5502 5260//4622 5256//4618 +f 6167//5501 6169//5503 6168//5502 6166//5500 +f 6170//5504 6168//5502 6169//5503 6171//5505 +f 5286//4648 5260//4622 6168//5502 6170//5504 +f 6170//5504 6172//5506 5290//4652 5286//4648 +f 6171//5505 6173//5507 6172//5506 6170//5504 +f 6174//5508 6172//5506 6173//5507 6175//5509 +f 5313//4675 5290//4652 6172//5506 6174//5508 +f 6174//5508 3670//3644 2778//2779 5313//4675 +f 6175//5509 3671//3645 3670//3644 6174//5508 +f 6176//5510 6177//5511 6178//5512 6179//5513 +f 5336//4698 5335//4697 6177//5511 6176//5510 +f 6176//5510 6180//5514 5341//4703 5336//4698 +f 6179//5513 6181//5515 6180//5514 6176//5510 +f 6182//5516 6183//5517 6184//5518 6185//5519 +f 5381//4743 5380//4742 6183//5517 6182//5516 +f 6182//5516 6186//5520 5386//4748 5381//4743 +f 6185//5519 6187//5521 6186//5520 6182//5516 +f 6188//5522 6186//5520 6187//5521 6189//5523 +f 5421//4783 5386//4748 6186//5520 6188//5522 +f 6188//5522 6190//5524 5425//4787 5421//4783 +f 6189//5523 6191//5525 6190//5524 6188//5522 +f 6192//5526 6190//5524 6191//5525 6193//5527 +f 5451//4813 5425//4787 6190//5524 6192//5526 +f 6192//5526 6194//5528 5455//4817 5451//4813 +f 6193//5527 6195//5529 6194//5528 6192//5526 +f 6196//5530 6194//5528 6195//5529 6197//5531 +f 5478//4840 5455//4817 6194//5528 6196//5530 +f 6196//5530 6137//5471 5035//4397 5478//4840 +f 6197//5531 6138//5472 6137//5471 6196//5530 +f 6198//5532 6199//5533 6077//3570 6076//3570 +f 5984//5346 5983//5345 6199//5533 6198//5532 +f 6198//5532 6200//5534 5989//5351 5984//5346 +f 6076//3570 6079//3570 6200//5534 6198//5532 +f 6201//5535 6200//5534 6079//3570 6081//3570 +f 5991//5353 5989//5351 6200//5534 6201//5535 +f 6201//5535 6202//5536 5995//5357 5991//5353 +f 6081//3570 6083//3570 6202//5536 6201//5535 +f 6203//5537 6202//5536 6083//3570 6085//3570 +f 5997//5359 5995//5357 6202//5536 6203//5537 +f 6203//5537 6204//5538 6001//5363 5997//5359 +f 6085//3570 6087//3570 6204//5538 6203//5537 +f 6205//5539 6204//5538 6087//3570 6089//3570 +f 6003//5365 6001//5363 6204//5538 6205//5539 +f 6205//5539 6206//5540 6007//5369 6003//5365 +f 6089//3570 6091//3570 6206//5540 6205//5539 +f 6207//5541 6206//5540 6091//3570 6093//3570 +f 6009//5371 6007//5369 6206//5540 6207//5541 +f 6207//5541 6208//5542 6013//5375 6009//5371 +f 6093//3570 6095//3570 6208//5542 6207//5541 +f 6209//5543 6208//5542 6095//3570 6097//3570 +f 6015//5377 6013//5375 6208//5542 6209//5543 +f 6209//5543 6210//5544 6019//5381 6015//5377 +f 6097//3570 6099//3570 6210//5544 6209//5543 +f 6211//5545 6210//5544 6099//3570 6101//3570 +f 6021//5383 6019//5381 6210//5544 6211//5545 +f 6211//5545 6212//5546 6025//5387 6021//5383 +f 6101//3570 6103//3570 6212//5546 6211//5545 +f 6213//5547 6212//5546 6103//3570 6105//3570 +f 6027//5389 6025//5387 6212//5546 6213//5547 +f 6213//5547 6214//5548 6031//5393 6027//5389 +f 6105//3570 6107//3570 6214//5548 6213//5547 +f 6215//5549 6214//5548 6107//3570 6109//3570 +f 6033//5395 6031//5393 6214//5548 6215//5549 +f 6215//5549 6216//5550 6037//5399 6033//5395 +f 6109//3570 6111//3570 6216//5550 6215//5549 +f 6217//5551 6216//5550 6111//3570 6113//3570 +f 6039//5401 6037//5399 6216//5550 6217//5551 +f 6217//5551 3714//3688 3532//3534 6039//5401 +f 6113//3570 3606//3570 3714//3688 6217//5551 +f 6218//5552 6219//5553 6117//5459 6116//5458 +f 6044//5406 6043//5405 6219//5553 6218//5552 +f 6218//5552 6220//5554 6049//5411 6044//5406 +f 6116//5458 6119//5461 6220//5554 6218//5552 +f 6221//5555 6222//5556 6123//3570 6122//3570 +f 6053//5415 6052//5414 6222//5556 6221//5555 +f 6221//5555 6223//5557 6058//5420 6053//5415 +f 6122//3570 6125//3570 6223//5557 6221//5555 +f 6224//5558 6223//5557 6125//3570 6127//3570 +f 6060//5422 6058//5420 6223//5557 6224//5558 +f 6224//5558 6225//5559 6064//5426 6060//5422 +f 6127//3570 6129//3570 6225//5559 6224//5558 +f 6226//5560 6225//5559 6129//3570 6131//3570 +f 6066//5428 6064//5426 6225//5559 6226//5560 +f 6226//5560 6227//5561 6070//5432 6066//5428 +f 6131//3570 6133//3570 6227//5561 6226//5560 +f 6228//5562 6227//5561 6133//3570 6135//3570 +f 6072//5434 6070//5432 6227//5561 6228//5562 +f 6228//5562 6199//5533 5983//5345 6072//5434 +f 6135//3570 6077//3570 6199//5533 6228//5562 +f 6229//5563 6230//5564 5986//5348 5985//5347 +f 5920//5282 5919//5281 6230//5564 6229//5563 +f 6229//5563 6231//5565 5922//5284 5920//5282 +f 5985//5347 5988//5350 6231//5565 6229//5563 +f 6232//5566 6231//5565 5988//5350 5992//5354 +f 5924//5286 5922//5284 6231//5565 6232//5566 +f 6232//5566 6233//5567 5926//5288 5924//5286 +f 5992//5354 5994//5356 6233//5567 6232//5566 +f 6234//5568 6233//5567 5994//5356 5998//5360 +f 5928//5290 5926//5288 6233//5567 6234//5568 +f 6234//5568 6235//5569 5930//5292 5928//5290 +f 5998//5360 6000//5362 6235//5569 6234//5568 +f 6236//5570 6235//5569 6000//5362 6004//5366 +f 5932//5294 5930//5292 6235//5569 6236//5570 +f 6236//5570 6237//5571 5934//5296 5932//5294 +f 6004//5366 6006//5368 6237//5571 6236//5570 +f 6238//5572 6237//5571 6006//5368 6010//5372 +f 5936//5298 5934//5296 6237//5571 6238//5572 +f 6238//5572 6239//5573 5938//5300 5936//5298 +f 6010//5372 6012//5374 6239//5573 6238//5572 +f 6240//5574 6239//5573 6012//5374 6016//5378 +f 5940//5302 5938//5300 6239//5573 6240//5574 +f 6240//5574 6241//5575 5942//5304 5940//5302 +f 6016//5378 6018//5380 6241//5575 6240//5574 +f 6242//5576 6241//5575 6018//5380 6022//5384 +f 5944//5306 5942//5304 6241//5575 6242//5576 +f 6242//5576 6243//5577 5946//5308 5944//5306 +f 6022//5384 6024//5386 6243//5577 6242//5576 +f 6244//5578 6243//5577 6024//5386 6028//5390 +f 5948//5310 5946//5308 6243//5577 6244//5578 +f 6244//5578 6245//5579 5950//5312 5948//5310 +f 6028//5390 6030//5392 6245//5579 6244//5578 +f 6246//5580 6245//5579 6030//5392 6034//5396 +f 5952//5314 5950//5312 6245//5579 6246//5580 +f 6246//5580 6247//5581 5954//5316 5952//5314 +f 6034//5396 6036//5398 6247//5581 6246//5580 +f 6248//5582 6247//5581 6036//5398 6040//5402 +f 5956//5318 5954//5316 6247//5581 6248//5582 +f 6248//5582 3746//3720 3445//3447 5956//5318 +f 6040//5402 3530//3532 3746//3720 6248//5582 +f 6249//5583 6250//5584 6046//5408 6045//5407 +f 5960//5322 5959//5321 6250//5584 6249//5583 +f 6249//5583 6251//5585 5964//5326 5960//5322 +f 6045//5407 6048//5410 6251//5585 6249//5583 +f 6252//5586 6253//5587 6055//5417 6054//5416 +f 5968//5330 5967//5329 6253//5587 6252//5586 +f 6252//5586 6254//5588 5970//5332 5968//5330 +f 6054//5416 6057//5419 6254//5588 6252//5586 +f 6255//5589 6254//5588 6057//5419 6061//5423 +f 5972//5334 5970//5332 6254//5588 6255//5589 +f 6255//5589 6256//5590 5974//5336 5972//5334 +f 6061//5423 6063//5425 6256//5590 6255//5589 +f 6257//5591 6256//5590 6063//5425 6067//5429 +f 5976//5338 5974//5336 6256//5590 6257//5591 +f 6257//5591 6258//5592 5978//5340 5976//5338 +f 6067//5429 6069//5431 6258//5592 6257//5591 +f 6259//5593 6258//5592 6069//5431 6073//5435 +f 5980//5342 5978//5340 6258//5592 6259//5593 +f 6259//5593 6230//5564 5919//5281 5980//5342 +f 6073//5435 5986//5348 6230//5564 6259//5593 +f 6260//5594 6261//5595 6262//5596 6263//5597 +f 5796//5158 5795//5157 6261//5595 6260//5594 +f 6260//5594 6264//5598 5798//5160 5796//5158 +f 6263//5597 6265//5599 6264//5598 6260//5594 +f 6266//5600 6264//5598 6265//5599 6267//5601 +f 5800//5162 5798//5160 6264//5598 6266//5600 +f 6266//5600 6268//5602 5802//5164 5800//5162 +f 6267//5601 6269//5603 6268//5602 6266//5600 +f 6270//5604 6268//5602 6269//5603 6271//5605 +f 5804//5166 5802//5164 6268//5602 6270//5604 +f 6270//5604 6272//5606 5806//5168 5804//5166 +f 6271//5605 6273//5607 6272//5606 6270//5604 +f 6274//5608 6272//5606 6273//5607 6275//5609 +f 5808//5170 5806//5168 6272//5606 6274//5608 +f 6274//5608 6276//5610 5810//5172 5808//5170 +f 6275//5609 6277//5611 6276//5610 6274//5608 +f 6278//5612 6276//5610 6277//5611 6279//5613 +f 5812//5174 5810//5172 6276//5610 6278//5612 +f 6278//5612 6280//5614 5814//5176 5812//5174 +f 6279//5613 6281//5615 6280//5614 6278//5612 +f 6282//5616 6280//5614 6281//5615 6283//5617 +f 5816//5178 5814//5176 6280//5614 6282//5616 +f 6282//5616 6284//5618 5818//5180 5816//5178 +f 6283//5617 6285//5619 6284//5618 6282//5616 +f 6286//5620 6284//5618 6285//5619 6287//5621 +f 5820//5182 5818//5180 6284//5618 6286//5620 +f 6286//5620 6288//5622 5822//5184 5820//5182 +f 6287//5621 6289//5623 6288//5622 6286//5620 +f 6290//5624 6288//5622 6289//5623 6291//5625 +f 5824//5186 5822//5184 6288//5622 6290//5624 +f 6290//5624 6292//5626 5826//5188 5824//5186 +f 6291//5625 6293//5627 6292//5626 6290//5624 +f 6294//5628 6292//5626 6293//5627 6295//5629 +f 5828//5190 5826//5188 6292//5626 6294//5628 +f 6294//5628 6296//5630 5830//5192 5828//5190 +f 6295//5629 6297//5631 6296//5630 6294//5628 +f 6298//5632 6296//5630 6297//5631 6299//5633 +f 5832//5194 5830//5192 6296//5630 6298//5632 +f 6298//5632 3798//3772 3317//3319 5832//5194 +f 6299//5633 3799//3773 3798//3772 6298//5632 +f 6300//5634 6301//5635 6302//5636 6303//5637 +f 5836//5198 5835//5197 6301//5635 6300//5634 +f 6300//5634 6304//5638 5838//5200 5836//5198 +f 6303//5637 6305//5639 6304//5638 6300//5634 +f 6306//5640 6307//5641 6308//5642 6309//5643 +f 5842//5204 5841//5203 6307//5641 6306//5640 +f 6306//5640 6310//5644 5844//5206 5842//5204 +f 6309//5643 6311//5645 6310//5644 6306//5640 +f 6312//5646 6310//5644 6311//5645 6313//5647 +f 5846//5208 5844//5206 6310//5644 6312//5646 +f 6312//5646 6314//5648 5848//5210 5846//5208 +f 6313//5647 6315//5649 6314//5648 6312//5646 +f 6316//5650 6314//5648 6315//5649 6317//5651 +f 5850//5212 5848//5210 6314//5648 6316//5650 +f 6316//5650 6318//5652 5852//5214 5850//5212 +f 6317//5651 6319//5653 6318//5652 6316//5650 +f 6320//5654 6318//5652 6319//5653 6321//5655 +f 5854//5216 5852//5214 6318//5652 6320//5654 +f 6320//5654 6261//5595 5795//5157 5854//5216 +f 6321//5655 6262//5596 6261//5595 6320//5654 +f 6322//5656 6323//5657 5505//4867 5504//4866 +f 5054//4416 5053//4415 6323//5657 6322//5656 +f 6322//5656 6324//5658 5059//4421 5054//4416 +f 5504//4866 5506//4868 6324//5658 6322//5656 +f 6325//5659 6324//5658 5506//4868 5517//4879 +f 5088//4450 5059//4421 6324//5658 6325//5659 +f 6325//5659 6326//5660 5092//4454 5088//4450 +f 5517//4879 5518//4880 6326//5660 6325//5659 +f 6327//5661 6326//5660 5518//4880 5529//4891 +f 5118//4480 5092//4454 6326//5660 6327//5661 +f 6327//5661 6328//5662 5122//4484 5118//4480 +f 5529//4891 5530//4892 6328//5662 6327//5661 +f 6329//5663 6328//5662 5530//4892 5541//4903 +f 5148//4510 5122//4484 6328//5662 6329//5663 +f 6329//5663 6330//5664 5152//4514 5148//4510 +f 5541//4903 5542//4904 6330//5664 6329//5663 +f 6331//5665 6330//5664 5542//4904 5553//4915 +f 5178//4540 5152//4514 6330//5664 6331//5665 +f 6331//5665 6332//5666 5182//4544 5178//4540 +f 5553//4915 5554//4916 6332//5666 6331//5665 +f 6333//5667 6332//5666 5554//4916 5565//4927 +f 5208//4570 5182//4544 6332//5666 6333//5667 +f 6333//5667 6334//5668 5212//4574 5208//4570 +f 5565//4927 5566//4928 6334//5668 6333//5667 +f 6335//5669 6334//5668 5566//4928 5577//4939 +f 5238//4600 5212//4574 6334//5668 6335//5669 +f 6335//5669 6336//5670 5242//4604 5238//4600 +f 5577//4939 5578//4940 6336//5670 6335//5669 +f 6337//5671 6336//5670 5578//4940 5589//4951 +f 5268//4630 5242//4604 6336//5670 6337//5671 +f 6337//5671 6338//5672 5272//4634 5268//4630 +f 5589//4951 5590//4952 6338//5672 6337//5671 +f 6339//5673 6338//5672 5590//4952 5601//4963 +f 5298//4660 5272//4634 6338//5672 6339//5673 +f 6339//5673 6340//5674 5302//4664 5298//4660 +f 5601//4963 5602//4964 6340//5674 6339//5673 +f 6341//5675 6340//5674 5602//4964 5608//4970 +f 5319//4681 5302//4664 6340//5674 6341//5675 +f 6341//5675 3842//3816 2790//2791 5319//4681 +f 5608//4970 3087//3089 3842//3816 6341//5675 +f 6342//5676 6343//5677 6344//5678 6345//5679 +f 5354//4716 5353//4715 6343//5677 6342//5676 +f 6342//5676 6346//5680 5359//4721 5354//4716 +f 6345//5679 5625//4987 6346//5680 6342//5676 +f 6347//5681 6348//5682 5626//4988 5637//4999 +f 5399//4761 5398//4760 6348//5682 6347//5681 +f 6347//5681 6349//5683 5404//4766 5399//4761 +f 5637//4999 5638//5000 6349//5683 6347//5681 +f 6350//5684 6349//5683 5638//5000 5649//5011 +f 5433//4795 5404//4766 6349//5683 6350//5684 +f 6350//5684 6351//5685 5437//4799 5433//4795 +f 5649//5011 5650//5012 6351//5685 6350//5684 +f 6352//5686 6351//5685 5650//5012 5661//5023 +f 5463//4825 5437//4799 6351//5685 6352//5686 +f 6352//5686 6353//5687 5467//4829 5463//4825 +f 5661//5023 5662//5024 6353//5687 6352//5686 +f 6354//5688 6353//5687 5662//5024 5668//5030 +f 5484//4846 5467//4829 6353//5687 6354//5688 +f 6354//5688 6323//5657 5053//4415 5484//4846 +f 5668//5030 5505//4867 6323//5657 6354//5688 +f 6355//5689 6356//5690 5705//5067 5704//5066 +f 6263//5597 6262//5596 6356//5690 6355//5689 +f 6355//5689 6357//5691 6265//5599 6263//5597 +f 5704//5066 5707//5069 6357//5691 6355//5689 +f 6358//5692 6357//5691 5707//5069 5711//5073 +f 6267//5601 6265//5599 6357//5691 6358//5692 +f 6358//5692 6359//5693 6269//5603 6267//5601 +f 5711//5073 5713//5075 6359//5693 6358//5692 +f 6360//5694 6359//5693 5713//5075 5717//5079 +f 6271//5605 6269//5603 6359//5693 6360//5694 +f 6360//5694 6361//5695 6273//5607 6271//5605 +f 5717//5079 5719//5081 6361//5695 6360//5694 +f 6362//5696 6361//5695 5719//5081 5723//5085 +f 6275//5609 6273//5607 6361//5695 6362//5696 +f 6362//5696 6363//5697 6277//5611 6275//5609 +f 5723//5085 5725//5087 6363//5697 6362//5696 +f 6364//5698 6363//5697 5725//5087 5729//5091 +f 6279//5613 6277//5611 6363//5697 6364//5698 +f 6364//5698 6365//5699 6281//5615 6279//5613 +f 5729//5091 5731//5093 6365//5699 6364//5698 +f 6366//5700 6365//5699 5731//5093 5735//5097 +f 6283//5617 6281//5615 6365//5699 6366//5700 +f 6366//5700 6367//5701 6285//5619 6283//5617 +f 5735//5097 5737//5099 6367//5701 6366//5700 +f 6368//5702 6367//5701 5737//5099 5741//5103 +f 6287//5621 6285//5619 6367//5701 6368//5702 +f 6368//5702 6369//5703 6289//5623 6287//5621 +f 5741//5103 5743//5105 6369//5703 6368//5702 +f 6370//5704 6369//5703 5743//5105 5747//5109 +f 6291//5625 6289//5623 6369//5703 6370//5704 +f 6370//5704 6371//5705 6293//5627 6291//5625 +f 5747//5109 5749//5111 6371//5705 6370//5704 +f 6372//5706 6371//5705 5749//5111 5753//5115 +f 6295//5629 6293//5627 6371//5705 6372//5706 +f 6372//5706 6373//5707 6297//5631 6295//5629 +f 5753//5115 5755//5117 6373//5707 6372//5706 +f 6374//5708 6373//5707 5755//5117 5759//5121 +f 6299//5633 6297//5631 6373//5707 6374//5708 +f 6374//5708 3876//3850 3799//3773 6299//5633 +f 5759//5121 3240//3242 3876//3850 6374//5708 +f 6375//5709 6376//5710 5765//5127 5764//5126 +f 6303//5637 6302//5636 6376//5710 6375//5709 +f 6375//5709 6377//5711 6305//5639 6303//5637 +f 5764//5126 5767//5129 6377//5711 6375//5709 +f 6378//5712 6379//5713 5774//5136 5773//5135 +f 6309//5643 6308//5642 6379//5713 6378//5712 +f 6378//5712 6380//5714 6311//5645 6309//5643 +f 5773//5135 5776//5138 6380//5714 6378//5712 +f 6381//5715 6380//5714 5776//5138 5780//5142 +f 6313//5647 6311//5645 6380//5714 6381//5715 +f 6381//5715 6382//5716 6315//5649 6313//5647 +f 5780//5142 5782//5144 6382//5716 6381//5715 +f 6383//5717 6382//5716 5782//5144 5786//5148 +f 6317//5651 6315//5649 6382//5716 6383//5717 +f 6383//5717 6384//5718 6319//5653 6317//5651 +f 5786//5148 5788//5150 6384//5718 6383//5717 +f 6385//5719 6384//5718 5788//5150 5792//5154 +f 6321//5655 6319//5653 6384//5718 6385//5719 +f 6385//5719 6356//5690 6262//5596 6321//5655 +f 5792//5154 5705//5067 6356//5690 6385//5719 +f 5499//4861 5503//4865 5046//4408 5047//4409 +f 5047//4409 5049//4411 5500//4862 5499//4861 +f 5514//4876 5500//4862 5049//4411 5083//4445 +f 5083//4445 5085//4447 5515//4877 5514//4876 +f 5526//4888 5515//4877 5085//4447 5113//4475 +f 5113//4475 5115//4477 5527//4889 5526//4888 +f 5538//4900 5527//4889 5115//4477 5143//4505 +f 5143//4505 5145//4507 5539//4901 5538//4900 +f 5550//4912 5539//4901 5145//4507 5173//4535 +f 5173//4535 5175//4537 5551//4913 5550//4912 +f 5562//4924 5551//4913 5175//4537 5203//4565 +f 5203//4565 5205//4567 5563//4925 5562//4924 +f 5574//4936 5563//4925 5205//4567 5233//4595 +f 5233//4595 5235//4597 5575//4937 5574//4936 +f 5586//4948 5575//4937 5235//4597 5263//4625 +f 5263//4625 5265//4627 5587//4949 5586//4948 +f 5598//4960 5587//4949 5265//4627 5293//4655 +f 5293//4655 5295//4657 5599//4961 5598//4960 +f 5607//4969 5599//4961 5295//4657 5317//4679 +f 5317//4679 2782//2783 3084//3086 5607//4969 +f 6386//5720 6387//5721 5346//4708 5347//4709 +f 5347//4709 5349//4711 5623//4985 6386//5720 +f 5634//4996 5620//4982 5391//4753 5392//4754 +f 5392//4754 5394//4756 5635//4997 5634//4996 +f 5646//5008 5635//4997 5394//4756 5428//4790 +f 5428//4790 5430//4792 5647//5009 5646//5008 +f 5658//5020 5647//5009 5430//4792 5458//4820 +f 5458//4820 5460//4822 5659//5021 5658//5020 +f 5667//5029 5659//5021 5460//4822 5482//4844 +f 5482//4844 5046//4408 5503//4865 5667//5029 +f 6388//5722 6389//5723 5344//4706 6390//5724 +f 6391//5725 6392//5726 6389//5723 6388//5722 +f 6388//5722 6393//5727 6394//5728 6391//5725 +f 6390//5724 6395//5729 6393//5727 6388//5722 +f 6396//5730 6397//5731 6392//5726 6391//5725 +f 6398//5732 5962//5324 6397//5731 6396//5730 +f 6396//5730 6399//5733 6400//5734 6398//5732 +f 6391//5725 6394//5728 6399//5733 6396//5730 +f 6401//5735 6402//5736 6344//5678 6403//5737 +f 6404//5738 6387//5721 6402//5736 6401//5735 +f 6401//5735 6405//5739 6406//5740 6404//5738 +f 6403//5737 6407//5741 6405//5739 6401//5735 +f 6408//5742 6343//5677 5353//4715 6409//5743 +f 6403//5737 6344//5678 6343//5677 6408//5742 +f 6408//5742 6410//5744 6407//5741 6403//5737 +f 6409//5743 6411//5745 6410//5744 6408//5742 +f 6412//5746 5346//4708 6387//5721 6404//5738 +f 5346//4708 6412//5746 6413//5747 5343//4705 +f 6412//5746 6414//5748 6415//5749 6413//5747 +f 6404//5738 6406//5740 6414//5748 6412//5746 +f 6390//5724 5344//4706 5343//4705 6413//5747 +f 6413//5747 6415//5749 6395//5729 6390//5724 +f 6416//5750 6398//5732 6400//5734 6417//5751 +f 5958//5320 5962//5324 6398//5732 6416//5750 +f 6416//5750 6418//5752 5959//5321 5958//5320 +f 6417//5751 6419//5753 6418//5752 6416//5750 +f 6420//5754 6409//5743 5353//4715 5352//4714 +f 6421//5755 6411//5745 6409//5743 6420//5754 +f 6420//5754 6422//5756 6423//5757 6421//5755 +f 5352//4714 5356//4718 6422//5756 6420//5754 +f 6424//5758 6250//5584 5959//5321 6418//5752 +f 6425//5759 6046//5408 6250//5584 6424//5758 +f 6424//5758 6426//5760 6427//5761 6425//5759 +f 6418//5752 6419//5753 6426//5760 6424//5758 +f 6428//5762 6219//5553 6043//5405 6429//5763 +f 6430//5764 6117//5459 6219//5553 6428//5762 +f 6428//5762 6431//5765 6432//5766 6430//5764 +f 6429//5763 6433//5767 6431//5765 6428//5762 +f 6434//5768 6115//5457 6117//5459 6430//5764 +f 6435//5769 5338//4700 6115//5457 6434//5768 +f 6434//5768 6436//5770 6437//5771 6435//5769 +f 6430//5764 6432//5766 6436//5770 6434//5768 +f 6438//5772 6042//5404 6046//5408 6425//5759 +f 6429//5763 6043//5405 6042//5404 6438//5772 +f 6438//5772 6439//5773 6433//5767 6429//5763 +f 6425//5759 6427//5761 6439//5773 6438//5772 +f 6440//5774 6177//5511 5335//4697 5334//4696 +f 6441//5775 6178//5512 6177//5511 6440//5774 +f 6440//5774 6435//5769 6437//5771 6441//5775 +f 5334//4696 5338//4700 6435//5769 6440//5774 +f 6442//5776 6443//5777 6178//5512 6441//5775 +f 6444//5778 6445//5779 6443//5777 6442//5776 +f 6442//5776 6446//5780 6447//5781 6444//5778 +f 6441//5775 6437//5771 6446//5780 6442//5776 +f 6448//5782 6301//5635 5835//5197 6449//5783 +f 6450//5784 6302//5636 6301//5635 6448//5782 +f 6448//5782 6451//5785 6452//5786 6450//5784 +f 6449//5783 6453//5787 6451//5785 6448//5782 +f 6454//5788 5834//5196 5362//4724 6455//5789 +f 6449//5783 5835//5197 5834//5196 6454//5788 +f 6454//5788 6456//5790 6453//5787 6449//5783 +f 6455//5789 6457//5791 6456//5790 6454//5788 +f 6458//5792 5361//4723 5365//4727 6459//5793 +f 6455//5789 5362//4724 5361//4723 6458//5792 +f 6458//5792 6460//5794 6457//5791 6455//5789 +f 6459//5793 6461//5795 6460//5794 6458//5792 +f 6462//5796 6376//5710 6302//5636 6450//5784 +f 6463//5797 5765//5127 6376//5710 6462//5796 +f 6462//5796 6464//5798 6465//5799 6463//5797 +f 6450//5784 6452//5786 6464//5798 6462//5796 +f 6466//5800 5761//5123 5765//5127 6463//5797 +f 6467//5801 5762//5124 5761//5123 6466//5800 +f 6466//5800 6468//5802 6469//5803 6467//5801 +f 6463//5797 6465//5799 6468//5802 6466//5800 +f 6470//5804 6459//5793 5365//4727 5896//5258 +f 6471//5805 6461//5795 6459//5793 6470//5804 +f 6470//5804 6472//5806 6473//5807 6471//5805 +f 5896//5258 5898//5260 6472//5806 6470//5804 +f 6474//5808 6431//5765 6433//5767 6475//5809 +f 6476//5810 6432//5766 6431//5765 6474//5808 +f 6474//5808 6477//5811 6478//5811 6476//5810 +f 6475//5809 6479//5811 6477//5811 6474//5808 +f 6480//5812 6436//5770 6432//5766 6476//5810 +f 6446//5780 6437//5771 6436//5770 6480//5812 +f 6480//5812 6481//5813 6447//5781 6446//5780 +f 6476//5810 6478//5811 6481//5813 6480//5812 +f 6482//5814 6468//5802 6465//5799 6483//5815 +f 6484//5816 6469//5803 6468//5802 6482//5814 +f 6482//5814 6485//5811 6486//5817 6484//5816 +f 6483//5815 6487//5811 6485//5811 6482//5814 +f 6488//5818 6489//5819 5056//4418 5055//4417 +f 5703//5065 5702//5064 6489//5819 6488//5818 +f 6488//5818 6490//5820 5708//5070 5703//5065 +f 5055//4417 5058//4420 6490//5820 6488//5818 +f 6491//5821 6490//5820 5058//4420 5089//4451 +f 5710//5072 5708//5070 6490//5820 6491//5821 +f 6491//5821 6492//5822 5714//5076 5710//5072 +f 5089//4451 5091//4453 6492//5822 6491//5821 +f 6493//5823 6492//5822 5091//4453 5119//4481 +f 5716//5078 5714//5076 6492//5822 6493//5823 +f 6493//5823 6494//5824 5720//5082 5716//5078 +f 5119//4481 5121//4483 6494//5824 6493//5823 +f 6495//5825 6494//5824 5121//4483 5149//4511 +f 5722//5084 5720//5082 6494//5824 6495//5825 +f 6495//5825 6496//5826 5726//5088 5722//5084 +f 5149//4511 5151//4513 6496//5826 6495//5825 +f 6497//5827 6496//5826 5151//4513 5179//4541 +f 5728//5090 5726//5088 6496//5826 6497//5827 +f 6497//5827 6498//5828 5732//5094 5728//5090 +f 5179//4541 5181//4543 6498//5828 6497//5827 +f 6499//5829 6498//5828 5181//4543 5209//4571 +f 5734//5096 5732//5094 6498//5828 6499//5829 +f 6499//5829 6500//5830 5738//5100 5734//5096 +f 5209//4571 5211//4573 6500//5830 6499//5829 +f 6501//5831 6500//5830 5211//4573 5239//4601 +f 5740//5102 5738//5100 6500//5830 6501//5831 +f 6501//5831 6502//5832 5744//5106 5740//5102 +f 5239//4601 5241//4603 6502//5832 6501//5831 +f 6503//5833 6502//5832 5241//4603 5269//4631 +f 5746//5108 5744//5106 6502//5832 6503//5833 +f 6503//5833 6504//5834 5750//5112 5746//5108 +f 5269//4631 5271//4633 6504//5834 6503//5833 +f 6505//5835 6504//5834 5271//4633 5299//4661 +f 5752//5114 5750//5112 6504//5834 6505//5835 +f 6505//5835 6506//5836 5756//5118 5752//5114 +f 5299//4661 5301//4663 6506//5836 6505//5835 +f 6507//5837 6506//5836 5301//4663 5320//4682 +f 5758//5120 5756//5118 6506//5836 6507//5837 +f 6507//5837 4010//3980 3242//3244 5758//5120 +f 5320//4682 2788//2789 4010//3980 6507//5837 +f 6508//5838 6509//5839 5356//4718 5355//4717 +f 5763//5125 5762//5124 6509//5839 6508//5838 +f 6508//5838 6510//5840 5768//5130 5763//5125 +f 5355//4717 5358//4720 6510//5840 6508//5838 +f 6511//5841 6512//5842 5401//4763 5400//4762 +f 5772//5134 5771//5133 6512//5842 6511//5841 +f 6511//5841 6513//5843 5777//5139 5772//5134 +f 5400//4762 5403//4765 6513//5843 6511//5841 +f 6514//5844 6513//5843 5403//4765 5434//4796 +f 5779//5141 5777//5139 6513//5843 6514//5844 +f 6514//5844 6515//5845 5783//5145 5779//5141 +f 5434//4796 5436//4798 6515//5845 6514//5844 +f 6516//5846 6515//5845 5436//4798 5464//4826 +f 5785//5147 5783//5145 6515//5845 6516//5846 +f 6516//5846 6517//5847 5789//5151 5785//5147 +f 5464//4826 5466//4828 6517//5847 6516//5846 +f 6518//5848 6517//5847 5466//4828 5485//4847 +f 5791//5153 5789//5151 6517//5847 6518//5848 +f 6518//5848 6489//5819 5702//5064 5791//5153 +f 5485//4847 5056//4418 6489//5819 6518//5848 +f 6519//5849 6520//5850 6423//5757 6422//5756 +f 6467//5801 6469//5803 6520//5850 6519//5849 +f 6519//5849 6509//5839 5762//5124 6467//5801 +f 6422//5756 5356//4718 6509//5839 6519//5849 +f 6521//5851 6520//5850 6469//5803 6484//5816 +f 6522//5852 6423//5757 6520//5850 6521//5851 +f 6521//5851 6523//5817 6524//5817 6522//5852 +f 6484//5816 6486//5817 6523//5817 6521//5851 +f 6525//5853 6421//5755 6423//5757 6522//5852 +f 6526//5854 6411//5745 6421//5755 6525//5853 +f 6525//5853 6527//5811 6528//5811 6526//5854 +f 6522//5852 6524//5817 6527//5811 6525//5853 +f 6529//5855 6530//5856 6531//5817 6532//5811 +f 6439//5773 6427//5761 6530//5856 6529//5855 +f 6529//5855 6533//5857 6433//5767 6439//5773 +f 6532//5811 6534//5811 6533//5857 6529//5855 +f 6535//5858 6536//5859 6537//5811 6538//5817 +f 6426//5760 6419//5753 6536//5859 6535//5858 +f 6535//5858 6530//5856 6427//5761 6426//5760 +f 6538//5817 6531//5817 6530//5856 6535//5858 +f 6539//5860 6540//5861 6541//5817 6542//5811 +f 6417//5751 6400//5734 6540//5861 6539//5860 +f 6539//5860 6536//5859 6419//5753 6417//5751 +f 6542//5811 6537//5811 6536//5859 6539//5860 +f 6532//5811 6531//5817 6543//5817 6544//5817 +f 6544//5817 6545//5817 6534//5811 6532//5811 +f 6538//5817 6537//5811 6546//5811 6547//5811 +f 6547//5811 6543//5817 6531//5817 6538//5817 +f 6542//5811 6541//5817 6548//5817 6549//5811 +f 6549//5811 6546//5811 6537//5811 6542//5811 +f 6550//5811 6551//5811 6486//5817 6485//5811 +f 6543//5817 6551//5811 6550//5811 6544//5817 +f 6550//5811 6552//5811 6545//5817 6544//5817 +f 6485//5811 6487//5811 6552//5811 6550//5811 +f 6553//5817 6554//5817 6524//5817 6523//5817 +f 6546//5811 6554//5817 6553//5817 6547//5811 +f 6553//5817 6551//5811 6543//5817 6547//5811 +f 6523//5817 6486//5817 6551//5811 6553//5817 +f 6555//5811 6556//5811 6528//5811 6527//5811 +f 6548//5817 6556//5811 6555//5811 6549//5811 +f 6555//5811 6554//5817 6546//5811 6549//5811 +f 6527//5811 6524//5817 6554//5817 6555//5811 +f 6557//5862 6399//5733 6394//5728 6393//5727 +f 6540//5861 6400//5734 6399//5733 6557//5862 +f 6557//5862 6558//5863 6541//5817 6540//5861 +f 6393//5727 6395//5729 6558//5863 6557//5862 +f 6559//5864 6548//5817 6541//5817 6558//5863 +f 6548//5817 6559//5864 6560//5865 6556//5811 +f 6559//5864 6415//5749 6414//5748 6560//5865 +f 6558//5863 6395//5729 6415//5749 6559//5864 +f 6561//5866 6528//5811 6556//5811 6560//5865 +f 6560//5865 6414//5748 6406//5740 6561//5866 +f 6562//5867 6526//5854 6528//5811 6561//5866 +f 6410//5744 6411//5745 6526//5854 6562//5867 +f 6562//5867 6405//5739 6407//5741 6410//5744 +f 6561//5866 6406//5740 6405//5739 6562//5867 +f 6563//5868 6564//5869 6565//5870 6566//5871 +f 6567//5872 6568//5873 6564//5869 6563//5868 +f 6563//5868 6569//5874 6570//5875 6567//5872 +f 6566//5871 6571//5876 6569//5874 6563//5868 +f 6572//5877 6569//5874 6571//5876 6573//5878 +f 6574//5879 6570//5875 6569//5874 6572//5877 +f 6572//5877 6575//5880 6576//5881 6574//5879 +f 6573//5878 6577//5882 6575//5880 6572//5877 +f 6578//5883 6575//5880 6577//5882 6579//5884 +f 6580//5885 6576//5881 6575//5880 6578//5883 +f 6578//5883 6581//5886 6582//5887 6580//5885 +f 6579//5884 6583//5888 6581//5886 6578//5883 +f 6584//5889 6581//5886 6583//5888 6585//5890 +f 6586//5891 6582//5887 6581//5886 6584//5889 +f 6584//5889 6587//5892 6588//5893 6586//5891 +f 6585//5890 6589//5894 6587//5892 6584//5889 +f 6590//5895 6587//5892 6589//5894 6591//5896 +f 6592//5897 6588//5893 6587//5892 6590//5895 +f 6590//5895 6593//5898 6594//5899 6592//5897 +f 6591//5896 6595//5900 6593//5898 6590//5895 +f 6596//5901 6593//5898 6595//5900 6597//5902 +f 6598//5903 6594//5899 6593//5898 6596//5901 +f 6596//5901 6599//5904 6600//5905 6598//5903 +f 6597//5902 6601//5906 6599//5904 6596//5901 +f 6602//5907 6599//5904 6601//5906 6603//5908 +f 6604//5909 6600//5905 6599//5904 6602//5907 +f 6602//5907 6605//5910 6606//5911 6604//5909 +f 6603//5908 6607//5912 6605//5910 6602//5907 +f 6608//5913 6605//5910 6607//5912 6609//5914 +f 6610//5915 6606//5911 6605//5910 6608//5913 +f 6608//5913 6611//5916 6612//5917 6610//5915 +f 6609//5914 6613//5918 6611//5916 6608//5913 +f 6614//5919 6611//5916 6613//5918 6615//5920 +f 6616//5921 6612//5917 6611//5916 6614//5919 +f 6614//5919 6617//5922 6618//5923 6616//5921 +f 6615//5920 6619//5924 6617//5922 6614//5919 +f 6620//5925 6617//5922 6619//5924 6621//5926 +f 6622//5927 6618//5923 6617//5922 6620//5925 +f 6620//5925 4127//4072 4126//4071 6622//5927 +f 6621//5926 4128//4073 4127//4072 6620//5925 +f 6623//5928 6624//5929 6625//5930 6626//5931 +f 6627//5932 6445//5779 6624//5929 6623//5928 +f 6623//5928 6628//5933 6629//5934 6627//5932 +f 6626//5931 6630//5935 6628//5933 6623//5928 +f 6631//5936 6632//5937 6633//5938 6634//5939 +f 6635//5940 6636//5941 6632//5937 6631//5936 +f 6631//5936 6637//5942 6638//5943 6635//5940 +f 6634//5939 6639//5944 6637//5942 6631//5936 +f 6640//5945 6637//5942 6639//5944 6641//5946 +f 6642//5947 6638//5943 6637//5942 6640//5945 +f 6640//5945 6643//5948 6644//5949 6642//5947 +f 6641//5946 6645//5950 6643//5948 6640//5945 +f 6646//5951 6643//5948 6645//5950 6647//5952 +f 6648//5953 6644//5949 6643//5948 6646//5951 +f 6646//5951 6649//5954 6650//5955 6648//5953 +f 6647//5952 6651//5956 6649//5954 6646//5951 +f 6652//5957 6649//5954 6651//5956 6653//5958 +f 6654//5959 6650//5955 6649//5954 6652//5957 +f 6652//5957 6564//5869 6568//5873 6654//5959 +f 6653//5958 6565//5870 6564//5869 6652//5957 +f 6655//5960 6656//5961 6625//5930 6657//5962 +f 6658//5963 5329//4691 6656//5961 6655//5960 +f 6655//5960 6659//5964 6660//5965 6658//5963 +f 6657//5962 6661//5966 6659//5964 6655//5960 +f 6662//5811 6663//5811 6664//5811 6665//5811 +f 6666//5811 6667//5811 6663//5811 6662//5811 +f 6662//5811 6668//5811 6669//5811 6666//5811 +f 6665//5811 6670//5811 6668//5811 6662//5811 +f 6671//5967 6659//5964 6661//5966 6672//5967 +f 6673//5968 6660//5965 6659//5964 6671//5967 +f 6671//5967 6663//5811 6667//5811 6673//5968 +f 6672//5967 6664//5811 6663//5811 6671//5967 +f 6674//5811 6668//5811 6670//5811 6675//5811 +f 6676//5811 6669//5811 6668//5811 6674//5811 +f 6674//5811 6677//5811 6678//5811 6676//5811 +f 6675//5811 6679//5817 6677//5811 6674//5811 +f 6680//5969 6681//5970 6682//5971 6683//5972 +f 6684//5973 6685//5974 6681//5970 6680//5969 +f 6680//5969 6686//5811 6687//5811 6684//5973 +f 6683//5972 6688//5811 6686//5811 6680//5969 +f 6689//5975 6690//5976 6685//5974 6684//5973 +f 6691//5977 6692//5978 6690//5976 6689//5975 +f 6689//5975 6693//5979 6473//5807 6691//5977 +f 6684//5973 6687//5811 6693//5979 6689//5975 +f 6694//5980 6695//5981 6696//5811 6697//5982 +f 6460//5794 6461//5795 6695//5981 6694//5980 +f 6694//5980 6456//5790 6457//5791 6460//5794 +f 6697//5982 6453//5787 6456//5790 6694//5980 +f 6698//5983 6699//5811 6700//5817 6701//5984 +f 6697//5982 6696//5811 6699//5811 6698//5983 +f 6698//5983 6451//5785 6453//5787 6697//5982 +f 6701//5984 6452//5786 6451//5785 6698//5983 +f 6702//5985 6703//5986 6704//5987 6705//5988 +f 6683//5972 6682//5971 6703//5986 6702//5985 +f 6702//5985 6706//5811 6688//5811 6683//5972 +f 6705//5988 6707//5811 6706//5811 6702//5985 +f 6708//5989 6709//5990 6710//5991 6711//5992 +f 6705//5988 6704//5987 6708//5989 6711//5992 +f 6711//5992 6712//5817 6707//5811 6705//5988 +f 6712//5817 6711//5992 6710//5991 6713//5817 +f 6710//5991 6709//5990 6714//5993 6715//5994 +f 6715//5994 6678//5811 6713//5817 6710//5991 +f 6716//5811 6533//5857 6534//5811 6717//5811 +f 6475//5809 6433//5767 6533//5857 6716//5811 +f 6716//5811 6718//5817 6479//5811 6475//5809 +f 6717//5811 6719//5811 6718//5817 6716//5811 +f 6720//5811 6721//5811 6679//5817 6722//5817 +f 6723//5811 6721//5811 6720//5811 6724//5811 +f 6725//5811 6726//5817 6724//5811 6720//5811 +f 6722//5817 6719//5811 6725//5811 6720//5811 +f 6727//5811 6552//5811 6487//5811 6728//5811 +f 6545//5817 6552//5811 6727//5811 6729//5811 +f 6727//5811 6726//5817 6725//5811 6729//5811 +f 6728//5811 6730//5811 6726//5817 6727//5811 +f 6731//5995 6732//5811 6733//5811 6734//5811 +f 6701//5984 6700//5817 6732//5811 6731//5995 +f 6731//5995 6735//5996 6452//5786 6701//5984 +f 6734//5811 6730//5811 6735//5996 6731//5995 +f 6736//5997 6624//5929 6445//5779 6444//5778 +f 6657//5962 6625//5930 6624//5929 6736//5997 +f 6736//5997 6737//5998 6661//5966 6657//5962 +f 6444//5778 6447//5781 6737//5998 6736//5997 +f 6738//5811 6739//5811 6478//5811 6477//5811 +f 6665//5811 6664//5811 6739//5811 6738//5811 +f 6738//5811 6740//5811 6670//5811 6665//5811 +f 6477//5811 6479//5811 6740//5811 6738//5811 +f 6741//5999 6737//5998 6447//5781 6481//5813 +f 6672//5967 6661//5966 6737//5998 6741//5999 +f 6741//5999 6739//5811 6664//5811 6672//5967 +f 6481//5813 6478//5811 6739//5811 6741//5999 +f 6742//6000 6743//6001 6568//5873 6567//5872 +f 6139//5473 6138//5472 6743//6001 6742//6000 +f 6742//6000 6744//5475 6141//5475 6139//5473 +f 6567//5872 6570//5875 6744//5475 6742//6000 +f 6745//5477 6744//5475 6570//5875 6574//5879 +f 6143//5477 6141//5475 6744//5475 6745//5477 +f 6745//5477 6746//6002 6145//5479 6143//5477 +f 6574//5879 6576//5881 6746//6002 6745//5477 +f 6747//6003 6746//6002 6576//5881 6580//5885 +f 6147//5481 6145//5479 6746//6002 6747//6003 +f 6747//6003 6748//5483 6149//5483 6147//5481 +f 6580//5885 6582//5887 6748//5483 6747//6003 +f 6749//6004 6748//5483 6582//5887 6586//5891 +f 6151//5485 6149//5483 6748//5483 6749//6004 +f 6749//6004 6750//6005 6153//5487 6151//5485 +f 6586//5891 6588//5893 6750//6005 6749//6004 +f 6751//5489 6750//6005 6588//5893 6592//5897 +f 6155//5489 6153//5487 6750//6005 6751//5489 +f 6751//5489 6752//6006 6157//5491 6155//5489 +f 6592//5897 6594//5899 6752//6006 6751//5489 +f 6753//6007 6752//6006 6594//5899 6598//5903 +f 6159//5493 6157//5491 6752//6006 6753//6007 +f 6753//6007 6754//6008 6161//5495 6159//5493 +f 6598//5903 6600//5905 6754//6008 6753//6007 +f 6755//6009 6754//6008 6600//5905 6604//5909 +f 6163//5497 6161//5495 6754//6008 6755//6009 +f 6755//6009 6756//5499 6165//5499 6163//5497 +f 6604//5909 6606//5911 6756//5499 6755//6009 +f 6757//6010 6756//5499 6606//5911 6610//5915 +f 6167//5501 6165//5499 6756//5499 6757//6010 +f 6757//6010 6758//6011 6169//5503 6167//5501 +f 6610//5915 6612//5917 6758//6011 6757//6010 +f 6759//6012 6758//6011 6612//5917 6616//5921 +f 6171//5505 6169//5503 6758//6011 6759//6012 +f 6759//6012 6760//5507 6173//5507 6171//5505 +f 6616//5921 6618//5923 6760//5507 6759//6012 +f 6761//6013 6760//5507 6618//5923 6622//5927 +f 6175//5509 6173//5507 6760//5507 6761//6013 +f 6761//6013 4268//4159 3671//3645 6175//5509 +f 6622//5927 4126//4071 4268//4159 6761//6013 +f 6762//6014 6443//5777 6445//5779 6627//5932 +f 6179//5513 6178//5512 6443//5777 6762//6014 +f 6762//6014 6763//6015 6181//5515 6179//5513 +f 6627//5932 6629//5934 6763//6015 6762//6014 +f 6764//6016 6765//6017 6636//5941 6635//5940 +f 6185//5519 6184//5518 6765//6017 6764//6016 +f 6764//6016 6766//5521 6187//5521 6185//5519 +f 6635//5940 6638//5943 6766//5521 6764//6016 +f 6767//6018 6766//5521 6638//5943 6642//5947 +f 6189//5523 6187//5521 6766//5521 6767//6018 +f 6767//6018 6768//6019 6191//5525 6189//5523 +f 6642//5947 6644//5949 6768//6019 6767//6018 +f 6769//5527 6768//6019 6644//5949 6648//5953 +f 6193//5527 6191//5525 6768//6019 6769//5527 +f 6769//5527 6770//5529 6195//5529 6193//5527 +f 6648//5953 6650//5955 6770//5529 6769//5527 +f 6771//6020 6770//5529 6650//5955 6654//5959 +f 6197//5531 6195//5529 6770//5529 6771//6020 +f 6771//6020 6743//6001 6138//5472 6197//5531 +f 6654//5959 6568//5873 6743//6001 6771//6020 +f 6772//5817 6740//5811 6479//5811 6718//5817 +f 6675//5811 6670//5811 6740//5811 6772//5817 +f 6772//5817 6722//5817 6679//5817 6675//5811 +f 6718//5817 6719//5811 6722//5817 6772//5817 +f 6729//5811 6717//5811 6534//5811 6545//5817 +f 6725//5811 6719//5811 6717//5811 6729//5811 +f 6724//5811 6734//5811 6733//5811 6723//5811 +f 6726//5817 6730//5811 6734//5811 6724//5811 +f 6773//6021 6464//5798 6452//5786 6735//5996 +f 6483//5815 6465//5799 6464//5798 6773//6021 +f 6773//6021 6728//5811 6487//5811 6483//5815 +f 6735//5996 6730//5811 6728//5811 6773//6021 +f 6774//6022 6775//6023 6630//5935 6776//6024 +f 6777//4736 6633//5938 6775//6023 6774//6022 +f 6774//6022 6778//6025 5374//4736 6777//4736 +f 6776//6024 5331//4693 6778//6025 6774//6022 +f 6779//6026 6780//6027 5340//4702 5339//4701 +f 5379//4741 5383//4745 6780//6027 6779//6026 +f 6779//6026 6781//6028 5380//4742 5379//4741 +f 5339//4701 5341//4703 6781//6028 6779//6026 +f 6782//6029 5692//5054 5389//4751 5388//4750 +f 5348//4710 5350//4712 5692//5054 6782//6029 +f 6783//6030 6784//6031 5358//4720 5357//4719 +f 5397//4759 5401//4763 6784//6031 6783//6030 +f 6783//6030 6785//6032 5398//4760 5397//4759 +f 5357//4719 5359//4721 6785//6032 6783//6030 +f 6786//6033 6787//6034 5367//4729 5366//4728 +f 5406//4768 5410//4772 6787//6034 6786//6033 +f 6786//6033 6788//6035 5407//4769 5406//4768 +f 5366//4728 5368//4730 6788//6035 6786//6033 +f 6789//6036 5961//5323 5614//4976 5613//4975 +f 6397//5731 5962//5324 5961//5323 6789//6036 +f 6789//6036 6790//6037 6392//5726 6397//5731 +f 5613//4975 5616//4978 6790//6037 6789//6036 +f 6791//6038 6386//5720 5623//4985 5622//4984 +f 6402//5736 6387//5721 6386//5720 6791//6038 +f 6791//6038 6345//5679 6344//5678 6402//5736 +f 5622//4984 5625//4987 6345//5679 6791//6038 +f 6792//6039 6790//6037 5616//4978 5691//5053 +f 6389//5723 6392//5726 6790//6037 6792//6039 +f 6792//6039 5345//4707 5344//4706 6389//5723 +f 5691//5053 5350//4712 5345//4707 6792//6039 +f 6793//6040 6794//6041 5767//5129 5766//5128 +f 5770//5132 5774//5136 6794//6041 6793//6040 +f 6793//6040 6795//6042 5771//5133 5770//5132 +f 5766//5128 5768//5130 6795//6042 6793//6040 +f 6796//6043 6788//6035 5368//4730 5837//5199 +f 5840//5202 5407//4769 6788//6035 6796//6043 +f 6796//6043 6797//6044 5841//5203 5840//5202 +f 5837//5199 5838//5200 6797//6044 6796//6043 +f 6798//6045 6799//6046 6800//6047 6801//6048 +f 6802//6049 6803//6050 6799//6046 6798//6045 +f 6798//6045 6804//6051 5904//5266 6802//6049 +f 6801//6048 5900//5262 6804//6051 6798//6045 +f 6805//6052 5610//4972 5614//4976 5963//5325 +f 5966//5328 5611//4973 5610//4972 6805//6052 +f 6805//6052 6806//6053 5967//5329 5966//5328 +f 5963//5325 5964//5326 6806//6053 6805//6052 +f 6807//6054 6808//6055 6048//5410 6047//5409 +f 6051//5413 6055//5417 6808//6055 6807//6054 +f 6807//6054 6809//6056 6052//5414 6051//5413 +f 6047//5409 6049//5411 6809//6056 6807//6054 +f 6810//6057 6811//6058 6119//5461 6118//5460 +f 6121//5463 6123//3570 6811//6058 6810//6057 +f 6810//6057 6780//6027 5383//4745 6121//5463 +f 6118//5460 5340//4702 6780//6027 6810//6057 +f 6812//6059 6781//6028 5341//4703 6180//5514 +f 6183//5517 5380//4742 6781//6028 6812//6059 +f 6812//6059 6813//6060 6184//5518 6183//5517 +f 6180//5514 6181//5515 6813//6060 6812//6059 +f 6814//6061 6809//6056 6049//5411 6220//5554 +f 6222//5556 6052//5414 6809//6056 6814//6061 +f 6814//6061 6811//6058 6123//3570 6222//5556 +f 6220//5554 6119//5461 6811//6058 6814//6061 +f 6815//6062 6806//6053 5964//5326 6251//5585 +f 6253//5587 5967//5329 6806//6053 6815//6062 +f 6815//6062 6808//6055 6055//5417 6253//5587 +f 6251//5585 6048//5410 6808//6055 6815//6062 +f 6816//6063 6797//6044 5838//5200 6304//5638 +f 6307//5641 5841//5203 6797//6044 6816//6063 +f 6816//6063 6817//6064 6308//5642 6307//5641 +f 6304//5638 6305//5639 6817//6064 6816//6063 +f 6818//6065 6785//6032 5359//4721 6346//5680 +f 6348//5682 5398//4760 6785//6032 6818//6065 +f 6818//6065 5624//4986 5626//4988 6348//5682 +f 6346//5680 5625//4987 5624//4986 6818//6065 +f 6819//6066 6817//6064 6305//5639 6377//5711 +f 6379//5713 6308//5642 6817//6064 6819//6066 +f 6819//6066 6794//6041 5774//5136 6379//5713 +f 6377//5711 5767//5129 6794//6041 6819//6066 +f 6820//6067 5619//4981 5623//4985 5349//4711 +f 5391//4753 5620//4982 5619//4981 6820//6067 +f 5388//4750 5391//4753 6820//6067 6782//6029 +f 5348//4710 6782//6029 6820//6067 5349//4711 +f 6821//6068 6795//6042 5768//5130 6510//5840 +f 6512//5842 5771//5133 6795//6042 6821//6068 +f 6821//6068 6784//6031 5401//4763 6512//5842 +f 6510//5840 5358//4720 6784//6031 6821//6068 +f 6822//6069 6823//6070 6629//5934 6628//5933 +f 6632//5937 6636//5941 6823//6070 6822//6069 +f 6822//6069 6775//6023 6633//5938 6632//5937 +f 6628//5933 6630//5935 6775//6023 6822//6069 +f 6824//6071 6813//6060 6181//5515 6763//6015 +f 6765//6017 6184//5518 6813//6060 6824//6071 +f 6824//6071 6823//6070 6636//5941 6765//6017 +f 6763//6015 6629//5934 6823//6070 6824//6071 +f 6825//6072 6799//6046 6803//6050 6826//6073 +f 6827//6074 6800//6047 6799//6046 6825//6072 +f 6825//6072 6828//4220 6829//4220 6827//6074 +f 6826//6073 6830//4220 6828//4220 6825//6072 +f 6831//6075 5372//4734 5371//4733 6832//6076 +f 6833//6077 5377//4739 5372//4734 6831//6075 +f 6831//6075 6834//4220 6835//4220 6833//6077 +f 6832//6076 6836//4220 6834//4220 6831//6075 +f 6837//6078 6838//6079 6839//6080 6840//6081 +f 6841//6082 6842//6083 6838//6079 6837//6078 +f 6837//6078 6843//4220 6844//4220 6841//6082 +f 6840//6081 6845//4220 6843//4220 6837//6078 +f 6846//6084 5445//4807 5419//4781 6847//6085 +f 6848//6086 5449//4811 5445//4807 6846//6084 +f 6846//6084 6849//4220 6850//4220 6848//6086 +f 6847//6085 6851//4220 6849//4220 6846//6084 +f 6852//6087 6853//6088 6854//6089 6855//6090 +f 6856//6091 6857//6092 6853//6088 6852//6087 +f 6852//6087 6858//4220 6859//4220 6856//6091 +f 6855//6090 6860//4220 6858//4220 6852//6087 +f 6861//6093 5027//4389 5026//4388 6862//6094 +f 6863//6095 5032//4394 5027//4389 6861//6093 +f 6861//6093 6864//4220 6865//4220 6863//6095 +f 6862//6094 6866//4220 6864//4220 6861//6093 +f 6867//6096 6868//6097 6869//6098 6870//6099 +f 6871//6100 6872//6101 6868//6097 6867//6096 +f 6867//6096 6873//4220 6874//4220 6871//6100 +f 6870//6099 6875//4220 6873//4220 6867//6096 +f 6876//6102 6877//6103 6878//6104 6879//6105 +f 6870//6099 6869//6098 6877//6103 6876//6102 +f 6876//6102 6880//4220 6875//4220 6870//6099 +f 6879//6105 6881//4220 6880//4220 6876//6102 +f 6882//6106 5130//4492 5104//4466 6883//6107 +f 6884//6108 5134//4496 5130//4492 6882//6106 +f 6882//6106 6885//4220 6886//4220 6884//6108 +f 6883//6107 6887//4220 6885//4220 6882//6106 +f 6888//6109 6889//6110 6890//6111 6891//6112 +f 6892//6113 6893//6114 6889//6110 6888//6109 +f 6888//6109 6894//4220 6895//4220 6892//6113 +f 6891//6112 6896//4220 6894//4220 6888//6109 +f 6897//6115 5190//4552 5164//4526 6898//6116 +f 6899//6117 5194//4556 5190//4552 6897//6115 +f 6897//6115 6900//4220 6901//4220 6899//6117 +f 6898//6116 6902//4220 6900//4220 6897//6115 +f 6903//6118 6904//6119 6905//6120 6906//6121 +f 6907//6122 6908//6123 6904//6119 6903//6118 +f 6903//6118 6909//4220 6910//4220 6907//6122 +f 6906//6121 6911//4220 6909//4220 6903//6118 +f 6912//6124 5250//4612 5224//4586 6913//6125 +f 6914//6126 5254//4616 5250//4612 6912//6124 +f 6912//6124 6915//4220 6916//4220 6914//6126 +f 6913//6125 6917//4220 6915//4220 6912//6124 +f 6918//6127 6919//6128 6920//6129 6921//6130 +f 6922//6131 6923//6132 6919//6128 6918//6127 +f 6918//6127 6924//4220 6925//4220 6922//6131 +f 6921//6130 6926//4220 6924//4220 6918//6127 +f 6927//6133 5310//4672 5284//4646 6928//6134 +f 4436//4281 2772//2773 5310//4672 6927//6133 +f 6927//6133 6929//4220 4437//4220 4436//4281 +f 6928//6134 6930//4220 6929//4220 6927//6133 +f 6931//6135 6932//6136 6933//4220 6934//4220 +f 6935//6137 5332//4694 6932//6136 6931//6135 +f 6931//6135 6832//6076 5371//4733 6935//6137 +f 6934//4220 6836//4220 6832//6076 6931//6135 +f 6936//6138 6833//6077 6835//4220 6937//4220 +f 5415//4777 5377//4739 6833//6077 6936//6138 +f 6936//6138 6847//6085 5419//4781 5415//4777 +f 6937//4220 6851//4220 6847//6085 6936//6138 +f 6938//6139 6848//6086 6850//4220 6939//4220 +f 5475//4837 5449//4811 6848//6086 6938//6139 +f 6938//6139 6862//6094 5026//4388 5475//4837 +f 6939//4220 6866//4220 6862//6094 6938//6139 +f 6940//6140 6863//6095 6865//4220 6941//4220 +f 5070//4432 5032//4394 6863//6095 6940//6140 +f 6940//6140 6942//6141 5074//4436 5070//4432 +f 6941//4220 6943//4220 6942//6141 6940//6140 +f 6944//6142 6942//6141 6943//4220 6945//4220 +f 5100//4462 5074//4436 6942//6141 6944//6142 +f 6944//6142 6883//6107 5104//4466 5100//4462 +f 6945//4220 6887//4220 6883//6107 6944//6142 +f 6946//6143 6884//6108 6886//4220 6947//4220 +f 5160//4522 5134//4496 6884//6108 6946//6143 +f 6946//6143 6898//6116 5164//4526 5160//4522 +f 6947//4220 6902//4220 6898//6116 6946//6143 +f 6948//6144 6899//6117 6901//4220 6949//4220 +f 5220//4582 5194//4556 6899//6117 6948//6144 +f 6948//6144 6913//6125 5224//4586 5220//4582 +f 6949//4220 6917//4220 6913//6125 6948//6144 +f 6950//6145 6914//6126 6916//4220 6951//4220 +f 5280//4642 5254//4616 6914//6126 6950//6145 +f 6950//6145 6928//6134 5284//4646 5280//4642 +f 6951//4220 6930//4220 6928//6134 6950//6145 +f 6952//4220 6953//4220 6835//4220 6834//4220 +f 6954//4220 6955//4220 6953//4220 6952//4220 +f 6952//4220 6956//4220 6957//4220 6954//4220 +f 6834//4220 6836//4220 6956//4220 6952//4220 +f 6958//4220 6959//4220 6850//4220 6849//4220 +f 6960//4220 6961//4220 6959//4220 6958//4220 +f 6958//4220 6962//4220 6963//4220 6960//4220 +f 6849//4220 6851//4220 6962//4220 6958//4220 +f 6964//4220 6965//4220 6865//4220 6864//4220 +f 6966//4220 6967//4220 6965//4220 6964//4220 +f 6964//4220 6968//4220 6969//4220 6966//4220 +f 6864//4220 6866//4220 6968//4220 6964//4220 +f 6970//4220 6971//4220 6886//4220 6885//4220 +f 6972//4220 6973//4220 6971//4220 6970//4220 +f 6970//4220 6974//4220 6975//4220 6972//4220 +f 6885//4220 6887//4220 6974//4220 6970//4220 +f 6976//4220 6977//4220 6901//4220 6900//4220 +f 6978//4220 6979//4220 6977//4220 6976//4220 +f 6976//4220 6980//4220 6981//4220 6978//4220 +f 6900//4220 6902//4220 6980//4220 6976//4220 +f 6982//4220 6983//4220 6916//4220 6915//4220 +f 6984//4220 6985//4220 6983//4220 6982//4220 +f 6982//4220 6986//4220 6987//4220 6984//4220 +f 6915//4220 6917//4220 6986//4220 6982//4220 +f 6988//4220 4498//4220 4437//4220 6929//4220 +f 6989//4220 4500//4220 4498//4220 6988//4220 +f 6988//4220 6990//4220 6991//4220 6989//4220 +f 6929//4220 6930//4220 6990//4220 6988//4220 +f 6992//4220 6993//4220 6994//4220 6995//4220 +f 6934//4220 6933//4220 6993//4220 6992//4220 +f 6992//4220 6956//4220 6836//4220 6934//4220 +f 6995//4220 6957//4220 6956//4220 6992//4220 +f 6996//4220 6953//4220 6955//4220 6997//4220 +f 6937//4220 6835//4220 6953//4220 6996//4220 +f 6996//4220 6962//4220 6851//4220 6937//4220 +f 6997//4220 6963//4220 6962//4220 6996//4220 +f 6998//4220 6959//4220 6961//4220 6999//4220 +f 6939//4220 6850//4220 6959//4220 6998//4220 +f 6998//4220 6968//4220 6866//4220 6939//4220 +f 6999//4220 6969//4220 6968//4220 6998//4220 +f 7000//4220 6965//4220 6967//4220 7001//4220 +f 6941//4220 6865//4220 6965//4220 7000//4220 +f 7000//4220 7002//4220 6943//4220 6941//4220 +f 7001//4220 7003//4220 7002//4220 7000//4220 +f 7004//4220 7002//4220 7003//4220 7005//4220 +f 6945//4220 6943//4220 7002//4220 7004//4220 +f 7004//4220 6974//4220 6887//4220 6945//4220 +f 7005//4220 6975//4220 6974//4220 7004//4220 +f 7006//4220 6971//4220 6973//4220 7007//4220 +f 6947//4220 6886//4220 6971//4220 7006//4220 +f 7006//4220 6980//4220 6902//4220 6947//4220 +f 7007//4220 6981//4220 6980//4220 7006//4220 +f 7008//4220 6977//4220 6979//4220 7009//4220 +f 6949//4220 6901//4220 6977//4220 7008//4220 +f 7008//4220 6986//4220 6917//4220 6949//4220 +f 7009//4220 6987//4220 6986//4220 7008//4220 +f 7010//4220 6983//4220 6985//4220 7011//4220 +f 6951//4220 6916//4220 6983//4220 7010//4220 +f 7010//4220 6990//4220 6930//4220 6951//4220 +f 7011//4220 6991//4220 6990//4220 7010//4220 +f 7012//4220 7013//4220 6955//4220 6954//4220 +f 7014//4220 7015//4220 7013//4220 7012//4220 +f 7012//4220 7016//4220 7017//4220 7014//4220 +f 6954//4220 6957//4220 7016//4220 7012//4220 +f 7018//4220 7019//4220 6961//4220 6960//4220 +f 7020//4220 7021//4220 7019//4220 7018//4220 +f 7018//4220 7022//4220 7023//4220 7020//4220 +f 6960//4220 6963//4220 7022//4220 7018//4220 +f 7024//4220 7025//4220 6967//4220 6966//4220 +f 7026//4220 7027//4220 7025//4220 7024//4220 +f 7024//4220 7028//4220 7029//4220 7026//4220 +f 6966//4220 6969//4220 7028//4220 7024//4220 +f 7030//4220 7031//4220 6973//4220 6972//4220 +f 7032//4220 7033//4220 7031//4220 7030//4220 +f 7030//4220 7034//4220 7035//4220 7032//4220 +f 6972//4220 6975//4220 7034//4220 7030//4220 +f 7036//4220 7037//4220 6979//4220 6978//4220 +f 7038//4220 7039//4220 7037//4220 7036//4220 +f 7036//4220 7040//4220 7041//4220 7038//4220 +f 6978//4220 6981//4220 7040//4220 7036//4220 +f 7042//4220 7043//4220 6985//4220 6984//4220 +f 7044//4220 7045//4220 7043//4220 7042//4220 +f 7042//4220 7046//4220 7047//4220 7044//4220 +f 6984//4220 6987//4220 7046//4220 7042//4220 +f 7048//4220 4560//4220 4500//4220 6989//4220 +f 7049//4220 4562//4220 4560//4220 7048//4220 +f 7048//4220 7050//4220 7051//4220 7049//4220 +f 6989//4220 6991//4220 7050//4220 7048//4220 +f 7052//4220 7053//4220 7054//4220 7055//4220 +f 6995//4220 6994//4220 7053//4220 7052//4220 +f 7052//4220 7016//4220 6957//4220 6995//4220 +f 7055//4220 7017//4220 7016//4220 7052//4220 +f 7056//4220 7013//4220 7015//4220 7057//4220 +f 6997//4220 6955//4220 7013//4220 7056//4220 +f 7056//4220 7022//4220 6963//4220 6997//4220 +f 7057//4220 7023//4220 7022//4220 7056//4220 +f 7058//4220 7019//4220 7021//4220 7059//4220 +f 6999//4220 6961//4220 7019//4220 7058//4220 +f 7058//4220 7028//4220 6969//4220 6999//4220 +f 7059//4220 7029//4220 7028//4220 7058//4220 +f 7060//4220 7025//4220 7027//4220 7061//4220 +f 7001//4220 6967//4220 7025//4220 7060//4220 +f 7060//4220 7062//4220 7003//4220 7001//4220 +f 7061//4220 7063//4220 7062//4220 7060//4220 +f 7064//4220 7062//4220 7063//4220 7065//4220 +f 7005//4220 7003//4220 7062//4220 7064//4220 +f 7064//4220 7034//4220 6975//4220 7005//4220 +f 7065//4220 7035//4220 7034//4220 7064//4220 +f 7066//4220 7031//4220 7033//4220 7067//4220 +f 7007//4220 6973//4220 7031//4220 7066//4220 +f 7066//4220 7040//4220 6981//4220 7007//4220 +f 7067//4220 7041//4220 7040//4220 7066//4220 +f 7068//4220 7037//4220 7039//4220 7069//4220 +f 7009//4220 6979//4220 7037//4220 7068//4220 +f 7068//4220 7046//4220 6987//4220 7009//4220 +f 7069//4220 7047//4220 7046//4220 7068//4220 +f 7070//4220 7043//4220 7045//4220 7071//4220 +f 7011//4220 6985//4220 7043//4220 7070//4220 +f 7070//4220 7050//4220 6991//4220 7011//4220 +f 7071//4220 7051//4220 7050//4220 7070//4220 +f 7072//4220 7073//4220 7015//4220 7014//4220 +f 7074//4220 7075//4220 7073//4220 7072//4220 +f 7072//4220 7076//4220 7077//4220 7074//4220 +f 7014//4220 7017//4220 7076//4220 7072//4220 +f 7078//4220 7079//4220 7021//4220 7020//4220 +f 7080//4220 7081//4220 7079//4220 7078//4220 +f 7078//4220 7082//4220 7083//4220 7080//4220 +f 7020//4220 7023//4220 7082//4220 7078//4220 +f 7084//4220 7085//4220 7027//4220 7026//4220 +f 7086//4220 7087//4220 7085//4220 7084//4220 +f 7084//4220 7088//4220 7089//4220 7086//4220 +f 7026//4220 7029//4220 7088//4220 7084//4220 +f 7090//4220 7091//4220 7033//4220 7032//4220 +f 7092//4220 7093//4220 7091//4220 7090//4220 +f 7090//4220 7094//4220 7095//4220 7092//4220 +f 7032//4220 7035//4220 7094//4220 7090//4220 +f 7096//4220 7097//4220 7039//4220 7038//4220 +f 7098//4220 7099//4220 7097//4220 7096//4220 +f 7096//4220 7100//4220 7101//4220 7098//4220 +f 7038//4220 7041//4220 7100//4220 7096//4220 +f 7102//4220 7103//4220 7045//4220 7044//4220 +f 7104//4220 7105//4220 7103//4220 7102//4220 +f 7102//4220 7106//4220 7107//4220 7104//4220 +f 7044//4220 7047//4220 7106//4220 7102//4220 +f 7108//4220 4622//4220 4562//4220 7049//4220 +f 7109//4220 4624//4220 4622//4220 7108//4220 +f 7108//4220 7110//4220 7111//4220 7109//4220 +f 7049//4220 7051//4220 7110//4220 7108//4220 +f 7112//4220 7113//4220 7114//4220 7115//4220 +f 7055//4220 7054//4220 7113//4220 7112//4220 +f 7112//4220 7076//4220 7017//4220 7055//4220 +f 7115//4220 7077//4220 7076//4220 7112//4220 +f 7116//4220 7073//4220 7075//4220 7117//4220 +f 7057//4220 7015//4220 7073//4220 7116//4220 +f 7116//4220 7082//4220 7023//4220 7057//4220 +f 7117//4220 7083//4220 7082//4220 7116//4220 +f 7118//4220 7079//4220 7081//4220 7119//4220 +f 7059//4220 7021//4220 7079//4220 7118//4220 +f 7118//4220 7088//4220 7029//4220 7059//4220 +f 7119//4220 7089//4220 7088//4220 7118//4220 +f 7120//4220 7085//4220 7087//4220 7121//4220 +f 7061//4220 7027//4220 7085//4220 7120//4220 +f 7120//4220 7122//4220 7063//4220 7061//4220 +f 7121//4220 7123//4220 7122//4220 7120//4220 +f 7124//4220 7122//4220 7123//4220 7125//4220 +f 7065//4220 7063//4220 7122//4220 7124//4220 +f 7124//4220 7094//4220 7035//4220 7065//4220 +f 7125//4220 7095//4220 7094//4220 7124//4220 +f 7126//4220 7091//4220 7093//4220 7127//4220 +f 7067//4220 7033//4220 7091//4220 7126//4220 +f 7126//4220 7100//4220 7041//4220 7067//4220 +f 7127//4220 7101//4220 7100//4220 7126//4220 +f 7128//4220 7097//4220 7099//4220 7129//4220 +f 7069//4220 7039//4220 7097//4220 7128//4220 +f 7128//4220 7106//4220 7047//4220 7069//4220 +f 7129//4220 7107//4220 7106//4220 7128//4220 +f 7130//4220 7103//4220 7105//4220 7131//4220 +f 7071//4220 7045//4220 7103//4220 7130//4220 +f 7130//4220 7110//4220 7051//4220 7071//4220 +f 7131//4220 7111//4220 7110//4220 7130//4220 +f 7132//4220 7133//4220 7075//4220 7074//4220 +f 7134//4220 7133//4220 7132//4220 7135//4220 +f 7132//4220 7136//4220 7137//4220 7135//4220 +f 7074//4220 7077//4220 7136//4220 7132//4220 +f 7138//4220 7139//4220 7081//4220 7080//4220 +f 7140//4220 7139//4220 7138//4220 7141//4220 +f 7138//4220 7142//4220 7143//4220 7141//4220 +f 7080//4220 7083//4220 7142//4220 7138//4220 +f 7144//4220 7145//4220 7087//4220 7086//4220 +f 7146//4220 7145//4220 7144//4220 7147//4220 +f 7144//4220 7148//4220 7149//4220 7147//4220 +f 7086//4220 7089//4220 7148//4220 7144//4220 +f 7150//4220 7151//4220 7093//4220 7092//4220 +f 7152//4220 7151//4220 7150//4220 7153//4220 +f 7150//4220 7154//4220 7155//4220 7153//4220 +f 7092//4220 7095//4220 7154//4220 7150//4220 +f 7156//4220 7157//4220 7099//4220 7098//4220 +f 7158//4220 7157//4220 7156//4220 7159//4220 +f 7156//4220 7160//4220 7161//4220 7159//4220 +f 7098//4220 7101//4220 7160//4220 7156//4220 +f 7162//4220 7163//4220 7105//4220 7104//4220 +f 7164//4220 7163//4220 7162//4220 7165//4220 +f 7162//4220 7166//4220 7167//4220 7165//4220 +f 7104//4220 7107//4220 7166//4220 7162//4220 +f 7168//4220 4684//4220 4624//4220 7109//4220 +f 4685//4220 4684//4220 7168//4220 7169//4220 +f 7168//4220 7170//4220 7171//4220 7169//4220 +f 7109//4220 7111//4220 7170//4220 7168//4220 +f 7172//4220 7173//4220 7174//4220 7175//4220 +f 7115//4220 7114//4220 7172//4220 7175//4220 +f 7175//4220 7136//4220 7077//4220 7115//4220 +f 7136//4220 7175//4220 7174//4220 7137//4220 +f 7176//4220 7133//4220 7134//4220 7177//4220 +f 7117//4220 7075//4220 7133//4220 7176//4220 +f 7176//4220 7142//4220 7083//4220 7117//4220 +f 7142//4220 7176//4220 7177//4220 7143//4220 +f 7178//4220 7139//4220 7140//4220 7179//4220 +f 7119//4220 7081//4220 7139//4220 7178//4220 +f 7178//4220 7148//4220 7089//4220 7119//4220 +f 7148//4220 7178//4220 7179//4220 7149//4220 +f 7180//4220 7145//4220 7146//4220 7181//4220 +f 7121//4220 7087//4220 7145//4220 7180//4220 +f 7180//4220 7182//4220 7123//4220 7121//4220 +f 7182//4220 7180//4220 7181//4220 7183//4220 +f 7184//4220 7182//4220 7183//4220 7185//4220 +f 7125//4220 7123//4220 7182//4220 7184//4220 +f 7184//4220 7154//4220 7095//4220 7125//4220 +f 7154//4220 7184//4220 7185//4220 7155//4220 +f 7186//4220 7151//4220 7152//4220 7187//4220 +f 7127//4220 7093//4220 7151//4220 7186//4220 +f 7186//4220 7160//4220 7101//4220 7127//4220 +f 7160//4220 7186//4220 7187//4220 7161//4220 +f 7188//4220 7157//4220 7158//4220 7189//4220 +f 7129//4220 7099//4220 7157//4220 7188//4220 +f 7188//4220 7166//4220 7107//4220 7129//4220 +f 7166//4220 7188//4220 7189//4220 7167//4220 +f 7190//4220 7163//4220 7164//4220 7191//4220 +f 7131//4220 7105//4220 7163//4220 7190//4220 +f 7190//4220 7170//4220 7111//4220 7131//4220 +f 7170//4220 7190//4220 7191//4220 7171//4220 +f 7192//4220 7193//4220 7134//4220 7135//4220 +f 7135//4220 7137//4220 7194//4220 7192//4220 +f 7195//4220 7196//4220 7140//4220 7141//4220 +f 7141//4220 7143//4220 7197//4220 7195//4220 +f 7198//4220 7199//4220 7146//4220 7147//4220 +f 7147//4220 7149//4220 7200//4220 7198//4220 +f 7201//4220 7202//4220 7152//4220 7153//4220 +f 7153//4220 7155//4220 7203//4220 7201//4220 +f 7204//4220 7205//4220 7158//4220 7159//4220 +f 7159//4220 7161//4220 7206//4220 7204//4220 +f 7207//4220 7208//4220 7164//4220 7165//4220 +f 7165//4220 7167//4220 7209//4220 7207//4220 +f 7210//4220 4728//4220 4685//4220 7169//4220 +f 7169//4220 7171//4220 7211//4220 7210//4220 +f 7212//4220 7213//4220 6829//4220 6828//4220 +f 7214//4220 7215//4220 7213//4220 7212//4220 +f 7212//4220 7216//4220 7217//4220 7214//4220 +f 6828//4220 6830//4220 7216//4220 7212//4220 +f 7218//4220 7219//4220 6844//4220 6843//4220 +f 7220//4220 7221//4220 7219//4220 7218//4220 +f 7218//4220 7222//4220 7223//4220 7220//4220 +f 6843//4220 6845//4220 7222//4220 7218//4220 +f 7224//4220 7225//4220 6859//4220 6858//4220 +f 7226//4220 7227//4220 7225//4220 7224//4220 +f 7224//4220 7228//4220 7229//4220 7226//4220 +f 6858//4220 6860//4220 7228//4220 7224//4220 +f 7230//4220 7231//4220 6874//4220 6873//4220 +f 7232//4220 7233//4220 7231//4220 7230//4220 +f 7230//4220 7234//4220 7235//4220 7232//4220 +f 6873//4220 6875//4220 7234//4220 7230//4220 +f 7236//4220 7234//4220 6875//4220 6880//4220 +f 7237//4220 7235//4220 7234//4220 7236//4220 +f 7236//4220 7238//4220 7239//4220 7237//4220 +f 6880//4220 6881//4220 7238//4220 7236//4220 +f 7240//4220 7241//4220 6895//4220 6894//4220 +f 7242//4220 7243//4220 7241//4220 7240//4220 +f 7240//4220 7244//4220 7245//4220 7242//4220 +f 6894//4220 6896//4220 7244//4220 7240//4220 +f 7246//4220 7247//4220 6910//4220 6909//4220 +f 7248//4220 7249//4220 7247//4220 7246//4220 +f 7246//4220 7250//4220 7251//4220 7248//4220 +f 6909//4220 6911//4220 7250//4220 7246//4220 +f 7252//4220 7253//4220 6925//4220 6924//4220 +f 7254//4220 7255//4220 7253//4220 7252//4220 +f 7252//4220 7256//4220 7257//4220 7254//4220 +f 6924//4220 6926//4220 7256//4220 7252//4220 +f 7258//6146 6841//6082 6844//4220 7259//4220 +f 7260//6147 6842//6083 6841//6082 7258//6146 +f 7258//6146 6826//6073 6803//6050 7260//6147 +f 7259//4220 6830//4220 6826//6073 7258//6146 +f 7261//6148 6856//6091 6859//4220 7262//4220 +f 7263//6149 6857//6092 6856//6091 7261//6148 +f 7261//6148 6840//6081 6839//6080 7263//6149 +f 7262//4220 6845//4220 6840//6081 7261//6148 +f 7264//6150 6871//6100 6874//4220 7265//4220 +f 7266//6151 6872//6101 6871//6100 7264//6150 +f 7264//6150 6855//6090 6854//6089 7266//6151 +f 7265//4220 6860//4220 6855//6090 7264//6150 +f 7267//6152 6892//6113 6895//4220 7268//4220 +f 7269//6153 6893//6114 6892//6113 7267//6152 +f 7267//6152 6879//6105 6878//6104 7269//6153 +f 7268//4220 6881//4220 6879//6105 7267//6152 +f 7270//6154 6907//6122 6910//4220 7271//4220 +f 7272//6155 6908//6123 6907//6122 7270//6154 +f 7270//6154 6891//6112 6890//6111 7272//6155 +f 7271//4220 6896//4220 6891//6112 7270//6154 +f 7273//6156 6922//6131 6925//4220 7274//4220 +f 7275//6157 6923//6132 6922//6131 7273//6156 +f 7273//6156 6906//6121 6905//6120 7275//6157 +f 7274//4220 6911//4220 6906//6121 7273//6156 +f 7276//6158 4797//4306 4796//4220 7277//4220 +f 7278//6159 4799//4308 4797//4306 7276//6158 +f 7276//6158 6921//6130 6920//6129 7278//6159 +f 7277//4220 6926//4220 6921//6130 7276//6158 +f 7279//4220 7219//4220 7221//4220 7280//4220 +f 7259//4220 6844//4220 7219//4220 7279//4220 +f 7279//4220 7216//4220 6830//4220 7259//4220 +f 7280//4220 7217//4220 7216//4220 7279//4220 +f 7281//4220 7225//4220 7227//4220 7282//4220 +f 7262//4220 6859//4220 7225//4220 7281//4220 +f 7281//4220 7222//4220 6845//4220 7262//4220 +f 7282//4220 7223//4220 7222//4220 7281//4220 +f 7283//4220 7231//4220 7233//4220 7284//4220 +f 7265//4220 6874//4220 7231//4220 7283//4220 +f 7283//4220 7228//4220 6860//4220 7265//4220 +f 7284//4220 7229//4220 7228//4220 7283//4220 +f 7285//4220 7241//4220 7243//4220 7286//4220 +f 7268//4220 6895//4220 7241//4220 7285//4220 +f 7285//4220 7238//4220 6881//4220 7268//4220 +f 7286//4220 7239//4220 7238//4220 7285//4220 +f 7287//4220 7247//4220 7249//4220 7288//4220 +f 7271//4220 6910//4220 7247//4220 7287//4220 +f 7287//4220 7244//4220 6896//4220 7271//4220 +f 7288//4220 7245//4220 7244//4220 7287//4220 +f 7289//4220 7253//4220 7255//4220 7290//4220 +f 7274//4220 6925//4220 7253//4220 7289//4220 +f 7289//4220 7250//4220 6911//4220 7274//4220 +f 7290//4220 7251//4220 7250//4220 7289//4220 +f 7291//4220 4815//4220 4814//4220 7292//4220 +f 7277//4220 4796//4220 4815//4220 7291//4220 +f 7291//4220 7256//4220 6926//4220 7277//4220 +f 7292//4220 7257//4220 7256//4220 7291//4220 +f 7293//4220 7294//4220 7215//4220 7214//4220 +f 7295//4220 7296//4220 7294//4220 7293//4220 +f 7293//4220 7297//4220 7298//4220 7295//4220 +f 7214//4220 7217//4220 7297//4220 7293//4220 +f 7299//4220 7300//4220 7221//4220 7220//4220 +f 7301//4220 7302//4220 7300//4220 7299//4220 +f 7299//4220 7303//4220 7304//4220 7301//4220 +f 7220//4220 7223//4220 7303//4220 7299//4220 +f 7305//4220 7306//4220 7227//4220 7226//4220 +f 7307//4220 7308//4220 7306//4220 7305//4220 +f 7305//4220 7309//4220 7310//4220 7307//4220 +f 7226//4220 7229//4220 7309//4220 7305//4220 +f 7311//4220 7312//4220 7233//4220 7232//4220 +f 7313//4220 7314//4220 7312//4220 7311//4220 +f 7311//4220 7315//4220 7316//4220 7313//4220 +f 7232//4220 7235//4220 7315//4220 7311//4220 +f 7317//4220 7315//4220 7235//4220 7237//4220 +f 7318//4220 7316//4220 7315//4220 7317//4220 +f 7317//4220 7319//4220 7320//4220 7318//4220 +f 7237//4220 7239//4220 7319//4220 7317//4220 +f 7321//4220 7322//4220 7243//4220 7242//4220 +f 7323//4220 7324//4220 7322//4220 7321//4220 +f 7321//4220 7325//4220 7326//4220 7323//4220 +f 7242//4220 7245//4220 7325//4220 7321//4220 +f 7327//4220 7328//4220 7249//4220 7248//4220 +f 7329//4220 7330//4220 7328//4220 7327//4220 +f 7327//4220 7331//4220 7332//4220 7329//4220 +f 7248//4220 7251//4220 7331//4220 7327//4220 +f 7333//4220 7334//4220 7255//4220 7254//4220 +f 7335//4220 7336//4220 7334//4220 7333//4220 +f 7333//4220 7337//4220 7338//4220 7335//4220 +f 7254//4220 7257//4220 7337//4220 7333//4220 +f 7339//4220 7300//4220 7302//4220 7340//4220 +f 7280//4220 7221//4220 7300//4220 7339//4220 +f 7339//4220 7297//4220 7217//4220 7280//4220 +f 7340//4220 7298//4220 7297//4220 7339//4220 +f 7341//4220 7306//4220 7308//4220 7342//4220 +f 7282//4220 7227//4220 7306//4220 7341//4220 +f 7341//4220 7303//4220 7223//4220 7282//4220 +f 7342//4220 7304//4220 7303//4220 7341//4220 +f 7343//4220 7312//4220 7314//4220 7344//4220 +f 7284//4220 7233//4220 7312//4220 7343//4220 +f 7343//4220 7309//4220 7229//4220 7284//4220 +f 7344//4220 7310//4220 7309//4220 7343//4220 +f 7345//4220 7322//4220 7324//4220 7346//4220 +f 7286//4220 7243//4220 7322//4220 7345//4220 +f 7345//4220 7319//4220 7239//4220 7286//4220 +f 7346//4220 7320//4220 7319//4220 7345//4220 +f 7347//4220 7328//4220 7330//4220 7348//4220 +f 7288//4220 7249//4220 7328//4220 7347//4220 +f 7347//4220 7325//4220 7245//4220 7288//4220 +f 7348//4220 7326//4220 7325//4220 7347//4220 +f 7349//4220 7334//4220 7336//4220 7350//4220 +f 7290//4220 7255//4220 7334//4220 7349//4220 +f 7349//4220 7331//4220 7251//4220 7290//4220 +f 7350//4220 7332//4220 7331//4220 7349//4220 +f 7351//4220 4877//4220 4876//4220 7352//4220 +f 7292//4220 4814//4220 4877//4220 7351//4220 +f 7351//4220 7337//4220 7257//4220 7292//4220 +f 7352//4220 7338//4220 7337//4220 7351//4220 +f 7353//4220 7354//4220 7296//4220 7295//4220 +f 7355//4220 7356//4220 7354//4220 7353//4220 +f 7353//4220 7357//4220 7194//4220 7355//4220 +f 7295//4220 7298//4220 7357//4220 7353//4220 +f 7358//4220 7359//4220 7302//4220 7301//4220 +f 7360//4220 7193//4220 7359//4220 7358//4220 +f 7358//4220 7361//4220 7197//4220 7360//4220 +f 7301//4220 7304//4220 7361//4220 7358//4220 +f 7362//4220 7363//4220 7308//4220 7307//4220 +f 7364//4220 7196//4220 7363//4220 7362//4220 +f 7362//4220 7365//4220 7200//4220 7364//4220 +f 7307//4220 7310//4220 7365//4220 7362//4220 +f 7366//4220 7367//4220 7314//4220 7313//4220 +f 7368//4220 7199//4220 7367//4220 7366//4220 +f 7366//4220 7369//4220 7370//4220 7368//4220 +f 7313//4220 7316//4220 7369//4220 7366//4220 +f 7371//4220 7369//4220 7316//4220 7318//4220 +f 7372//4220 7370//4220 7369//4220 7371//4220 +f 7371//4220 7373//4220 7203//4220 7372//4220 +f 7318//4220 7320//4220 7373//4220 7371//4220 +f 7374//4220 7375//4220 7324//4220 7323//4220 +f 7376//4220 7202//4220 7375//4220 7374//4220 +f 7374//4220 7377//4220 7206//4220 7376//4220 +f 7323//4220 7326//4220 7377//4220 7374//4220 +f 7378//4220 7379//4220 7330//4220 7329//4220 +f 7380//4220 7205//4220 7379//4220 7378//4220 +f 7378//4220 7381//4220 7209//4220 7380//4220 +f 7329//4220 7332//4220 7381//4220 7378//4220 +f 7382//4220 7383//4220 7336//4220 7335//4220 +f 7384//4220 7208//4220 7383//4220 7382//4220 +f 7382//4220 7385//4220 7211//4220 7384//4220 +f 7335//4220 7338//4220 7385//4220 7382//4220 +f 7386//6160 7387//6161 7388//6162 7389//6163 +f 7390//6164 6692//5978 7387//6161 7386//6160 +f 7386//6160 6827//6074 6829//4220 7390//6164 +f 7389//6163 6800//6047 6827//6074 7386//6160 +f 7391//6165 7392//6166 7393//6167 7394//6168 +f 5327//4689 5326//4688 7392//6166 7391//6165 +f 7391//6165 6932//6136 5332//4694 5327//4689 +f 7394//6168 6933//4220 6932//6136 7391//6165 +f 7395//6169 7396//6170 7397//6171 7398//6172 +f 7394//6168 7393//6167 7396//6170 7395//6169 +f 7395//6169 6993//4220 6933//4220 7394//6168 +f 7398//6172 6994//4220 6993//4220 7395//6169 +f 7399//6173 7400//6174 7401//6175 7402//6176 +f 7398//6172 7397//6171 7400//6174 7399//6173 +f 7399//6173 7053//4220 6994//4220 7398//6172 +f 7402//6176 7054//4220 7053//4220 7399//6173 +f 7403//6177 7404//6178 6714//5993 7405//6179 +f 7402//6176 7401//6175 7404//6178 7403//6177 +f 7403//6177 7113//4220 7054//4220 7402//6176 +f 7405//6179 7114//4220 7113//4220 7403//6177 +f 7406//6180 6709//5990 6708//5989 7407//6181 +f 7405//6179 6714//5993 6709//5990 7406//6180 +f 7406//6180 7172//4220 7114//4220 7405//6179 +f 7172//4220 7406//6180 7407//6181 7173//4220 +f 7408//4220 7359//4220 7193//4220 7192//4220 +f 7340//4220 7302//4220 7359//4220 7408//4220 +f 7408//4220 7357//4220 7298//4220 7340//4220 +f 7192//4220 7194//4220 7357//4220 7408//4220 +f 7409//4220 7363//4220 7196//4220 7195//4220 +f 7342//4220 7308//4220 7363//4220 7409//4220 +f 7409//4220 7361//4220 7304//4220 7342//4220 +f 7195//4220 7197//4220 7361//4220 7409//4220 +f 7410//4220 7367//4220 7199//4220 7198//4220 +f 7344//4220 7314//4220 7367//4220 7410//4220 +f 7410//4220 7365//4220 7310//4220 7344//4220 +f 7198//4220 7200//4220 7365//4220 7410//4220 +f 7411//4220 7375//4220 7202//4220 7201//4220 +f 7346//4220 7324//4220 7375//4220 7411//4220 +f 7411//4220 7373//4220 7320//4220 7346//4220 +f 7201//4220 7203//4220 7373//4220 7411//4220 +f 7412//4220 7379//4220 7205//4220 7204//4220 +f 7348//4220 7330//4220 7379//4220 7412//4220 +f 7412//4220 7377//4220 7326//4220 7348//4220 +f 7204//4220 7206//4220 7377//4220 7412//4220 +f 7413//4220 7383//4220 7208//4220 7207//4220 +f 7350//4220 7336//4220 7383//4220 7413//4220 +f 7413//4220 7381//4220 7332//4220 7350//4220 +f 7207//4220 7209//4220 7381//4220 7413//4220 +f 7414//4220 4940//4220 4728//4220 7210//4220 +f 7352//4220 4876//4220 4940//4220 7414//4220 +f 7414//4220 7385//4220 7338//4220 7352//4220 +f 7210//4220 7211//4220 7385//4220 7414//4220 +f 7174//4220 7173//4220 7356//4220 7355//4220 +f 7355//4220 7194//4220 7137//4220 7174//4220 +f 7177//4220 7134//4220 7193//4220 7360//4220 +f 7360//4220 7197//4220 7143//4220 7177//4220 +f 7179//4220 7140//4220 7196//4220 7364//4220 +f 7364//4220 7200//4220 7149//4220 7179//4220 +f 7181//4220 7146//4220 7199//4220 7368//4220 +f 7368//4220 7370//4220 7183//4220 7181//4220 +f 7185//4220 7183//4220 7370//4220 7372//4220 +f 7372//4220 7203//4220 7155//4220 7185//4220 +f 7187//4220 7152//4220 7202//4220 7376//4220 +f 7376//4220 7206//4220 7161//4220 7187//4220 +f 7189//4220 7158//4220 7205//4220 7380//4220 +f 7380//4220 7209//4220 7167//4220 7189//4220 +f 7191//4220 7164//4220 7208//4220 7384//4220 +f 7384//4220 7211//4220 7171//4220 7191//4220 +f 7407//6181 6708//5989 6704//5987 7415//6182 +f 7415//6182 7356//4220 7173//4220 7407//6181 +f 7416//6183 6703//5986 6682//5971 7417//6184 +f 7415//6182 6704//5987 6703//5986 7416//6183 +f 7416//6183 7354//4220 7356//4220 7415//6182 +f 7417//6184 7296//4220 7354//4220 7416//6183 +f 7418//6185 6681//5970 6685//5974 7419//6186 +f 7417//6184 6682//5971 6681//5970 7418//6185 +f 7418//6185 7294//4220 7296//4220 7417//6184 +f 7419//6186 7215//4220 7294//4220 7418//6185 +f 7420//6187 6690//5976 6692//5978 7390//6164 +f 7419//6186 6685//5974 6690//5976 7420//6187 +f 7420//6187 7213//4220 7215//4220 7419//6186 +f 7390//6164 6829//4220 7213//4220 7420//6187 +f 7421//6188 7422//4391 5029//4391 5028//4390 +f 6566//5871 6565//5870 7422//4391 7421//6188 +f 7421//6188 7423//6189 6571//5876 6566//5871 +f 5028//4390 5031//4393 7423//6189 7421//6188 +f 7424//6190 7423//6189 5031//4393 5071//4433 +f 6573//5878 6571//5876 7423//6189 7424//6190 +f 7424//6190 7425//4435 6577//5882 6573//5878 +f 5071//4433 5073//4435 7425//4435 7424//6190 +f 7426//4463 7425//4435 5073//4435 5101//4463 +f 6579//5884 6577//5882 7425//4435 7426//4463 +f 7426//4463 7427//4465 6583//5888 6579//5884 +f 5101//4463 5103//4465 7427//4465 7426//4463 +f 7428//4493 7427//4465 5103//4465 5131//4493 +f 6585//5890 6583//5888 7427//4465 7428//4493 +f 7428//4493 7429//4495 6589//5894 6585//5890 +f 5131//4493 5133//4495 7429//4495 7428//4493 +f 7430//4523 7429//4495 5133//4495 5161//4523 +f 6591//5896 6589//5894 7429//4495 7430//4523 +f 7430//4523 7431//4525 6595//5900 6591//5896 +f 5161//4523 5163//4525 7431//4525 7430//4523 +f 7432//6191 7431//4525 5163//4525 5191//4553 +f 6597//5902 6595//5900 7431//4525 7432//6191 +f 7432//6191 7433//6192 6601//5906 6597//5902 +f 5191//4553 5193//4555 7433//6192 7432//6191 +f 7434//6193 7433//6192 5193//4555 5221//4583 +f 6603//5908 6601//5906 7433//6192 7434//6193 +f 7434//6193 7435//6194 6607//5912 6603//5908 +f 5221//4583 5223//4585 7435//6194 7434//6193 +f 7436//6195 7435//6194 5223//4585 5251//4613 +f 6609//5914 6607//5912 7435//6194 7436//6195 +f 7436//6195 7437//4615 6613//5918 6609//5914 +f 5251//4613 5253//4615 7437//4615 7436//6195 +f 7438//4643 7437//4615 5253//4615 5281//4643 +f 6615//5920 6613//5918 7437//4615 7438//4643 +f 7438//4643 7439//6196 6619//5924 6615//5920 +f 5281//4643 5283//4645 7439//6196 7438//4643 +f 7440//4673 7439//6196 5283//4645 5311//4673 +f 6621//5926 6619//5924 7439//6196 7440//4673 +f 7440//4673 4967//2771 4128//4073 6621//5926 +f 5311//4673 2770//2771 4967//2771 7440//4673 +f 7441//4690 6656//5961 5329//4691 5328//4690 +f 6626//5931 6625//5930 6656//5961 7441//4690 +f 7441//4690 6776//6024 6630//5935 6626//5931 +f 5328//4690 5331//4693 6776//6024 7441//4690 +f 7442//4735 6777//4736 5374//4736 5373//4735 +f 6634//5939 6633//5938 6777//4736 7442//4735 +f 7442//4735 7443//6197 6639//5944 6634//5939 +f 5373//4735 5376//4738 7443//6197 7442//4735 +f 7444//6198 7443//6197 5376//4738 5416//4778 +f 6641//5946 6639//5944 7443//6197 7444//6198 +f 7444//6198 7445//4780 6645//5950 6641//5946 +f 5416//4778 5418//4780 7445//4780 7444//6198 +f 7446//4808 7445//4780 5418//4780 5446//4808 +f 6647//5952 6645//5950 7445//4780 7446//4808 +f 7446//4808 7447//6199 6651//5956 6647//5952 +f 5446//4808 5448//4810 7447//6199 7446//4808 +f 7448//6200 7447//6199 5448//4810 5476//4838 +f 6653//5958 6651//5956 7447//6199 7448//6200 +f 7448//6200 7422//4391 6565//5870 6653//5958 +f 5476//4838 5029//4391 7422//4391 7448//6200 +f 7449//6201 7450//6202 5858//5220 5857//5219 +f 7266//6151 6854//6089 7450//6202 7449//6201 +f 7449//6201 7451//6203 6872//6101 7266//6151 +f 5857//5219 5860//5222 7451//6203 7449//6201 +f 7452//6204 7451//6203 5860//5222 5862//5224 +f 6868//6097 6872//6101 7451//6203 7452//6204 +f 7452//6204 7453//6205 6869//6098 6868//6097 +f 5862//5224 5864//5226 7453//6205 7452//6204 +f 7454//6206 7453//6205 5864//5226 5866//5228 +f 6877//6103 6869//6098 7453//6205 7454//6206 +f 7454//6206 7455//6207 6878//6104 6877//6103 +f 5866//5228 5868//5230 7455//6207 7454//6206 +f 7456//6208 7455//6207 5868//5230 5870//5232 +f 7269//6153 6878//6104 7455//6207 7456//6208 +f 7456//6208 7457//6209 6893//6114 7269//6153 +f 5870//5232 5872//5234 7457//6209 7456//6208 +f 7458//6210 7457//6209 5872//5234 5874//5236 +f 6889//6110 6893//6114 7457//6209 7458//6210 +f 7458//6210 7459//6211 6890//6111 6889//6110 +f 5874//5236 5876//5238 7459//6211 7458//6210 +f 7460//6212 7459//6211 5876//5238 5878//5240 +f 7272//6155 6890//6111 7459//6211 7460//6212 +f 7460//6212 7461//6213 6908//6123 7272//6155 +f 5878//5240 5880//5242 7461//6213 7460//6212 +f 7462//6214 7461//6213 5880//5242 5882//5244 +f 6904//6119 6908//6123 7461//6213 7462//6214 +f 7462//6214 7463//6215 6905//6120 6904//6119 +f 5882//5244 5884//5246 7463//6215 7462//6214 +f 7464//6216 7463//6215 5884//5246 5886//5248 +f 7275//6157 6905//6120 7463//6215 7464//6216 +f 7464//6216 7465//6217 6923//6132 7275//6157 +f 5886//5248 5888//5250 7465//6217 7464//6216 +f 7466//6218 7465//6217 5888//5250 5890//5252 +f 6919//6128 6923//6132 7465//6217 7466//6218 +f 7466//6218 7467//6219 6920//6129 6919//6128 +f 5890//5252 5892//5254 7467//6219 7466//6218 +f 7468//6220 7467//6219 5892//5254 5894//5256 +f 7278//6159 6920//6129 7467//6219 7468//6220 +f 7468//6220 4996//4365 4799//4308 7278//6159 +f 5894//5256 3380//3382 4996//4365 7468//6220 +f 7469//6221 7470//6222 5898//5260 5897//5259 +f 7389//6163 7388//6162 7470//6222 7469//6221 +f 7469//6221 6801//6048 6800//6047 7389//6163 +f 5897//5259 5900//5262 6801//6048 7469//6221 +f 7471//6223 6802//6049 5904//5266 5903//5265 +f 7260//6147 6803//6050 6802//6049 7471//6223 +f 7471//6223 7472//6224 6842//6083 7260//6147 +f 5903//5265 5906//5268 7472//6224 7471//6223 +f 7473//6225 7472//6224 5906//5268 5908//5270 +f 6838//6079 6842//6083 7472//6224 7473//6225 +f 7473//6225 7474//6226 6839//6080 6838//6079 +f 5908//5270 5910//5272 7474//6226 7473//6225 +f 7475//6227 7474//6226 5910//5272 5912//5274 +f 7263//6149 6839//6080 7474//6226 7475//6227 +f 7475//6227 7476//6228 6857//6092 7263//6149 +f 5912//5274 5914//5276 7476//6228 7475//6227 +f 7477//6229 7476//6228 5914//5276 5916//5278 +f 6853//6088 6857//6092 7476//6228 7477//6229 +f 7477//6229 7450//6202 6854//6089 6853//6088 +f 5916//5278 5858//5220 7450//6202 7477//6229 +f 7478//6230 6691//5977 6473//5807 6472//5806 +f 7387//6161 6692//5978 6691//5977 7478//6230 +f 7478//6230 7470//6222 7388//6162 7387//6161 +f 6472//5806 5898//5260 7470//6222 7478//6230 +f 7479//6231 5325//4687 5329//4691 6658//5963 +f 7392//6166 5326//4688 5325//4687 7479//6231 +f 7479//6231 7480//6232 7393//6167 7392//6166 +f 6658//5963 6660//5965 7480//6232 7479//6231 +f 7481//6233 7482//6234 6667//5811 6666//5811 +f 7400//6174 7397//6171 7482//6234 7481//6233 +f 7481//6233 7483//6235 7401//6175 7400//6174 +f 6666//5811 6669//5811 7483//6235 7481//6233 +f 7484//6236 7480//6232 6660//5965 6673//5968 +f 7396//6170 7393//6167 7480//6232 7484//6236 +f 7484//6236 7482//6234 7397//6171 7396//6170 +f 6673//5968 6667//5811 7482//6234 7484//6236 +f 7485//6237 7483//6235 6669//5811 6676//5811 +f 7404//6178 7401//6175 7483//6235 7485//6237 +f 7485//6237 6715//5994 6714//5993 7404//6178 +f 6676//5811 6678//5811 6715//5994 7485//6237 +f 7486//5811 7487//5811 6687//5811 6686//5811 +f 6699//5811 6696//5811 7487//5811 7486//5811 +f 7486//5811 7488//5811 6700//5817 6699//5811 +f 6686//5811 6688//5811 7488//5811 7486//5811 +f 7489//6238 6471//5805 6473//5807 6693//5979 +f 6695//5981 6461//5795 6471//5805 7489//6238 +f 7489//6238 7487//5811 6696//5811 6695//5981 +f 6693//5979 6687//5811 7487//5811 7489//6238 +f 7490//5811 7488//5811 6688//5811 6706//5811 +f 6732//5811 6700//5817 7488//5811 7490//5811 +f 7490//5811 7491//5811 6733//5811 6732//5811 +f 6706//5811 6707//5811 7491//5811 7490//5811 +f 7492//5811 7491//5811 6707//5811 6712//5817 +f 6723//5811 6733//5811 7491//5811 7492//5811 +f 6721//5811 6723//5811 7492//5811 7493//5817 +f 6713//5817 7493//5817 7492//5811 6712//5817 +f 7493//5817 6677//5811 6679//5817 6721//5811 +f 6713//5817 6678//5811 6677//5811 7493//5817 +f 7494//6239 5370//4732 5374//4736 6778//6025 +f 6935//6137 5371//4733 5370//4732 7494//6239 +f 7494//6239 5330//4692 5332//4694 6935//6137 +f 6778//6025 5331//4693 5330//4692 7494//6239 +f 7495//6240 5902//5264 5904//5266 6804//6051 +f 6787//6034 5410//4772 5902//5264 7495//6240 +f 7495//6240 5899//5261 5367//4729 6787//6034 +f 6804//6051 5900//5262 5899//5261 7495//6240 +f 7496//6241 7497//6242 7498//6243 7499//6244 +f 7500//6245 7496//6241 7499//6244 7501//6246 +f 7496//6241 7500//6245 7502//6247 7503//6248 +f 7497//6242 7496//6241 7503//6248 7504//6249 +f 7505//6250 7506//6251 7507//6252 7508//6253 +f 7509//6254 7505//6250 7508//6253 7510//6255 +f 7505//6250 7509//6254 7511//6256 7512//6257 +f 7506//6251 7505//6250 7512//6257 7513//6258 +f 7514//6259 7515//6260 7516//6261 7517//6262 +f 7518//6263 7514//6259 7517//6262 7519//6264 +f 7514//6259 7518//6263 7520//6265 7521//6266 +f 7515//6260 7514//6259 7521//6266 7522//6267 +f 7523//6268 7524//6269 7525//6270 7526//6271 +f 7527//6272 7523//6268 7526//6271 7528//6273 +f 7523//6268 7527//6272 7529//6274 7530//6275 +f 7524//6269 7523//6268 7530//6275 7531//6276 +f 7532//6277 7533//6278 7534//6279 7535//6280 +f 7536//6281 7532//6277 7535//6280 7537//6282 +f 7532//6277 7536//6281 7538//6283 7539//6284 +f 7533//6278 7532//6277 7539//6284 7540//6285 +f 7541//6286 7542//6287 7543//6288 7544//6289 +f 7500//6245 7541//6286 7544//6289 7502//6247 +f 7541//6286 7500//6245 7501//6246 7545//6290 +f 7542//6287 7541//6286 7545//6290 7546//6291 +f 7547//6292 7548//6293 7549//6294 7550//6295 +f 7542//6287 7547//6292 7550//6295 7543//6288 +f 7547//6292 7542//6287 7546//6291 7551//6296 +f 7548//6293 7547//6292 7551//6296 7552//6297 +f 7553//6298 7554//6299 7546//6291 7545//6290 +f 7555//6300 7553//6298 7545//6290 7501//6246 +f 7553//6298 7555//6300 7556//6301 7557//6302 +f 7554//6299 7553//6298 7557//6302 7558//6303 +f 7559//6304 7560//6305 7561//6306 7562//6307 +f 7555//6300 7559//6304 7562//6307 7556//6301 +f 7559//6304 7555//6300 7501//6246 7499//6244 +f 7560//6305 7559//6304 7499//6244 7498//6243 +f 7563//6308 7564//6309 7565//6310 7566//6311 +f 7548//6293 7563//6308 7566//6311 7549//6294 +f 7563//6308 7548//6293 7552//6297 7567//6312 +f 7564//6309 7563//6308 7567//6312 7568//6313 +f 7569//6314 7570//6315 7556//6301 7562//6307 +f 7571//6316 7569//6314 7562//6307 7561//6306 +f 7569//6314 7571//6316 7572//6317 7573//6318 +f 7570//6315 7569//6314 7573//6318 7574//6319 +f 7575//6320 7576//6321 7577//6322 7578//6323 +f 7571//6316 7575//6320 7578//6323 7572//6317 +f 7575//6320 7571//6316 7561//6306 7579//6324 +f 7576//6321 7575//6320 7579//6324 7580//6325 +f 7581//6326 7582//6327 7572//6317 7578//6323 +f 7583//6328 7581//6326 7578//6323 7577//6322 +f 7581//6326 7583//6328 7584//6329 7585//6330 +f 7582//6327 7581//6326 7585//6330 7586//6331 +f 7587//6332 7588//6333 7586//6331 7585//6330 +f 7589//6334 7587//6332 7585//6330 7584//6329 +f 7587//6332 7589//6334 7590//6335 7591//6336 +f 7588//6333 7587//6332 7591//6336 7592//6337 +f 7593//6338 7594//6339 7574//6319 7573//6318 +f 7582//6327 7593//6338 7573//6318 7572//6317 +f 7593//6338 7582//6327 7586//6331 7595//6340 +f 7594//6339 7593//6338 7595//6340 7596//6341 +f 7597//6342 7598//6343 7558//6303 7557//6302 +f 7570//6315 7597//6342 7557//6302 7556//6301 +f 7597//6342 7570//6315 7574//6319 7599//6344 +f 7598//6343 7597//6342 7599//6344 7600//6345 +f 7601//6346 7602//6347 7552//6297 7551//6296 +f 7554//6299 7601//6346 7551//6296 7546//6291 +f 7601//6346 7554//6299 7558//6303 7603//6348 +f 7602//6347 7601//6346 7603//6348 7604//6349 +f 7605//6350 7606//6351 7568//6313 7567//6312 +f 7602//6347 7605//6350 7567//6312 7552//6297 +f 7605//6350 7602//6347 7604//6349 7607//6352 +f 7606//6351 7605//6350 7607//6352 7608//6353 +f 7609//6354 7610//6355 7604//6349 7603//6348 +f 7598//6343 7609//6354 7603//6348 7558//6303 +f 7609//6354 7598//6343 7600//6345 7611//6356 +f 7610//6355 7609//6354 7611//6356 7612//6357 +f 7613//6358 7614//6359 7600//6345 7599//6344 +f 7594//6339 7613//6358 7599//6344 7574//6319 +f 7613//6358 7594//6339 7596//6341 7615//6360 +f 7614//6359 7613//6358 7615//6360 7616//6361 +f 7617//6362 7618//6363 7619//6364 7620//6365 +f 7564//6309 7617//6362 7620//6365 7565//6310 +f 7617//6362 7564//6309 7568//6313 7621//6366 +f 7618//6363 7617//6362 7621//6366 7622//6367 +f 7623//6368 7624//6369 7622//6367 7621//6366 +f 7606//6351 7623//6368 7621//6366 7568//6313 +f 7623//6368 7606//6351 7608//6353 7625//6370 +f 7624//6369 7623//6368 7625//6370 7626//6371 +f 7627//6372 7628//6373 7608//6353 7607//6352 +f 7610//6355 7627//6372 7607//6352 7604//6349 +f 7627//6372 7610//6355 7612//6357 7629//6374 +f 7628//6373 7627//6372 7629//6374 7630//6375 +f 7631//6376 7632//6377 7619//6364 7618//6363 +f 7633//6378 7631//6376 7618//6363 7622//6367 +f 7631//6376 7633//6378 7634//6379 7635//6380 +f 7632//6377 7631//6376 7635//6380 7636//6381 +f 7637//6382 7638//6383 7612//6357 7611//6356 +f 7614//6359 7637//6382 7611//6356 7600//6345 +f 7637//6382 7614//6359 7616//6361 7639//6384 +f 7638//6383 7637//6382 7639//6384 7640//6385 +f 7641//6386 7642//6387 7596//6341 7595//6340 +f 7588//6333 7641//6386 7595//6340 7586//6331 +f 7641//6386 7588//6333 7592//6337 7643//6388 +f 7642//6387 7641//6386 7643//6388 7644//6389 +f 7645//6390 7646//6391 7647//6392 7648//6393 +f 7649//6394 7645//6390 7648//6393 7650//6395 +f 7645//6390 7649//6394 7592//6337 7591//6336 +f 7646//6391 7645//6390 7591//6336 7590//6335 +f 7651//6396 7652//6397 7650//6395 7648//6393 +f 7653//6398 7651//6396 7648//6393 7647//6392 +f 7651//6396 7653//6398 7654//6399 7655//6400 +f 7652//6397 7651//6396 7655//6400 7656//6401 +f 7657//6402 7658//6403 7644//6389 7643//6388 +f 7649//6394 7657//6402 7643//6388 7592//6337 +f 7657//6402 7649//6394 7650//6395 7659//6404 +f 7658//6403 7657//6402 7659//6404 7660//6405 +f 7661//6406 7662//6407 7616//6361 7615//6360 +f 7642//6387 7661//6406 7615//6360 7596//6341 +f 7661//6406 7642//6387 7644//6389 7663//6408 +f 7662//6407 7661//6406 7663//6408 7664//6409 +f 7665//6410 7666//6411 7630//6375 7629//6374 +f 7638//6383 7665//6410 7629//6374 7612//6357 +f 7665//6410 7638//6383 7640//6385 7667//6412 +f 7666//6411 7665//6410 7667//6412 7668//6413 +f 7669//6414 7670//6415 7640//6385 7639//6384 +f 7662//6407 7669//6414 7639//6384 7616//6361 +f 7669//6414 7662//6407 7664//6409 7671//6416 +f 7670//6415 7669//6414 7671//6416 7672//6417 +f 7673//6418 7674//6419 7664//6409 7663//6408 +f 7658//6403 7673//6418 7663//6408 7644//6389 +f 7673//6418 7658//6403 7660//6405 7675//6420 +f 7674//6419 7673//6418 7675//6420 7676//6421 +f 7677//6422 7678//6423 7660//6405 7659//6404 +f 7652//6397 7677//6422 7659//6404 7650//6395 +f 7677//6422 7652//6397 7656//6401 7679//6424 +f 7678//6423 7677//6422 7679//6424 7680//6425 +f 7681//6426 7682//6427 7672//6417 7671//6416 +f 7674//6419 7681//6426 7671//6416 7664//6409 +f 7681//6426 7674//6419 7676//6421 7683//6428 +f 7682//6427 7681//6426 7683//6428 7684//6429 +f 7685//6430 7686//6431 7676//6421 7675//6420 +f 7678//6423 7685//6430 7675//6420 7660//6405 +f 7685//6430 7678//6423 7680//6425 7687//6432 +f 7686//6431 7685//6430 7687//6432 7688//6433 +f 7689//6434 7690//6435 7680//6425 7679//6424 +f 7691//6436 7689//6434 7679//6424 7656//6401 +f 7689//6434 7691//6436 7692//6437 7693//6438 +f 7690//6435 7689//6434 7693//6438 7694//6439 +f 7695//6440 7696//6441 7697//6442 7698//6443 +f 7691//6436 7695//6440 7698//6443 7692//6437 +f 7695//6440 7691//6436 7656//6401 7655//6400 +f 7696//6441 7695//6440 7655//6400 7654//6399 +f 7699//6444 7700//6445 7692//6437 7698//6443 +f 7701//6446 7699//6444 7698//6443 7697//6442 +f 7699//6444 7701//6446 7702//6447 7703//6448 +f 7700//6445 7699//6444 7703//6448 7704//6449 +f 7705//6450 7706//6451 7704//6449 7703//6448 +f 7707//6452 7705//6450 7703//6448 7702//6447 +f 7705//6450 7707//6452 7708//6453 7709//6454 +f 7706//6451 7705//6450 7709//6454 7710//6455 +f 7711//6456 7712//6457 7694//6439 7693//6438 +f 7700//6445 7711//6456 7693//6438 7692//6437 +f 7711//6456 7700//6445 7704//6449 7713//6458 +f 7712//6457 7711//6456 7713//6458 7714//6459 +f 7715//6460 7716//6461 7688//6433 7687//6432 +f 7690//6435 7715//6460 7687//6432 7680//6425 +f 7715//6460 7690//6435 7694//6439 7717//6462 +f 7716//6461 7715//6460 7717//6462 7718//6463 +f 7719//6464 7720//6465 7710//6455 7709//6454 +f 7721//6466 7719//6464 7709//6454 7708//6453 +f 7719//6464 7721//6466 7722//6467 7723//6468 +f 7720//6465 7719//6464 7723//6468 7724//6469 +f 7725//6470 7726//6471 7714//6459 7713//6458 +f 7706//6451 7725//6470 7713//6458 7704//6449 +f 7725//6470 7706//6451 7710//6455 7727//6472 +f 7726//6471 7725//6470 7727//6472 7728//6473 +f 7729//6474 7730//6475 7718//6463 7717//6462 +f 7712//6457 7729//6474 7717//6462 7694//6439 +f 7729//6474 7712//6457 7714//6459 7731//6476 +f 7730//6475 7729//6474 7731//6476 7732//6477 +f 7733//6478 7734//6479 7684//6429 7683//6428 +f 7686//6431 7733//6478 7683//6428 7676//6421 +f 7733//6478 7686//6431 7688//6433 7735//6480 +f 7734//6479 7733//6478 7735//6480 7736//6481 +f 7737//6482 7738//6483 7736//6481 7735//6480 +f 7716//6461 7737//6482 7735//6480 7688//6433 +f 7737//6482 7716//6461 7718//6463 7739//6484 +f 7738//6483 7737//6482 7739//6484 7740//6485 +f 7741//6486 7742//6487 7740//6485 7739//6484 +f 7730//6475 7741//6486 7739//6484 7718//6463 +f 7741//6486 7730//6475 7732//6477 7743//6488 +f 7742//6487 7741//6486 7743//6488 7744//6489 +f 7745//6490 7746//6491 7747//6492 7748//6493 +f 7734//6479 7745//6490 7748//6493 7684//6429 +f 7745//6490 7734//6479 7736//6481 7749//6494 +f 7746//6491 7745//6490 7749//6494 7750//6495 +f 7751//6496 7752//6497 7750//6495 7749//6494 +f 7738//6483 7751//6496 7749//6494 7736//6481 +f 7751//6496 7738//6483 7740//6485 7753//6498 +f 7752//6497 7751//6496 7753//6498 7754//6499 +f 7755//6500 7756//6501 7757//6502 7758//6503 +f 7682//6427 7755//6500 7758//6503 7672//6417 +f 7755//6500 7682//6427 7684//6429 7748//6493 +f 7756//6501 7755//6500 7748//6493 7747//6492 +f 7759//6504 7670//6415 7672//6417 7758//6503 +f 7760//6505 7759//6504 7758//6503 7757//6502 +f 7759//6504 7760//6505 7668//6413 7667//6412 +f 7670//6415 7759//6504 7667//6412 7640//6385 +f 7761//6506 7762//6507 7763//6508 7764//6509 +f 7756//6501 7761//6506 7764//6509 7757//6502 +f 7761//6506 7756//6501 7747//6492 7765//6510 +f 7762//6507 7761//6506 7765//6510 7766//6511 +f 7767//6512 7768//6513 7769//6514 7770//6515 +f 7760//6505 7767//6512 7770//6515 7668//6413 +f 7767//6512 7760//6505 7757//6502 7764//6509 +f 7768//6513 7767//6512 7764//6509 7763//6508 +f 7771//6516 7772//6517 7773//6518 7774//6519 +f 7666//6411 7771//6516 7774//6519 7630//6375 +f 7771//6516 7666//6411 7668//6413 7770//6515 +f 7772//6517 7771//6516 7770//6515 7769//6514 +f 7775//6520 7628//6373 7630//6375 7774//6519 +f 7776//6521 7775//6520 7774//6519 7773//6518 +f 7775//6520 7776//6521 7626//6371 7625//6370 +f 7628//6373 7775//6520 7625//6370 7608//6353 +f 7777//6522 7778//6523 7773//6518 7772//6517 +f 7779//6524 7777//6522 7772//6517 7769//6514 +f 7777//6522 7779//6524 7780//6525 7781//6526 +f 7778//6523 7777//6522 7781//6526 7782//6527 +f 7783//6528 7633//6378 7622//6367 7624//6369 +f 7784//6529 7783//6528 7624//6369 7626//6371 +f 7783//6528 7784//6529 7785//6530 7786//6531 +f 7633//6378 7783//6528 7786//6531 7634//6379 +f 7787//6532 7784//6529 7626//6371 7776//6521 +f 7778//6523 7787//6532 7776//6521 7773//6518 +f 7787//6532 7778//6523 7782//6527 7788//6533 +f 7784//6529 7787//6532 7788//6533 7785//6530 +f 7789//6534 7790//6535 7791//6536 7792//6537 +f 7779//6524 7789//6534 7792//6537 7780//6525 +f 7789//6534 7779//6524 7769//6514 7768//6513 +f 7790//6535 7789//6534 7768//6513 7763//6508 +f 7793//6538 7794//6539 7636//6381 7635//6380 +f 7795//6540 7793//6538 7635//6380 7634//6379 +f 7793//6538 7795//6540 7796//6541 7797//6542 +f 7794//6539 7793//6538 7797//6542 7798//6543 +f 7799//6544 7800//6545 7798//6543 7797//6542 +f 7801//6546 7799//6544 7797//6542 7796//6541 +f 7799//6544 7801//6546 7802//6547 7803//6548 +f 7800//6545 7799//6544 7803//6548 7804//6549 +f 7805//6550 7806//6551 7807//6552 7808//6553 +f 7795//6540 7805//6550 7808//6553 7796//6541 +f 7805//6550 7795//6540 7634//6379 7786//6531 +f 7806//6551 7805//6550 7786//6531 7785//6530 +f 7809//6554 7810//6555 7804//6549 7803//6548 +f 7811//6556 7809//6554 7803//6548 7802//6547 +f 7809//6554 7811//6556 7812//6557 7813//6558 +f 7810//6555 7809//6554 7813//6558 7814//6559 +f 7815//6560 7816//6561 7814//6559 7813//6558 +f 7817//6562 7815//6560 7813//6558 7812//6557 +f 7815//6560 7817//6562 7818//6563 7819//6564 +f 7816//6561 7815//6560 7819//6564 7820//6565 +f 7821//6566 7822//6567 7823//6568 7824//6569 +f 7801//6546 7821//6566 7824//6569 7802//6547 +f 7821//6566 7801//6546 7796//6541 7808//6553 +f 7822//6567 7821//6566 7808//6553 7807//6552 +f 7825//6570 7826//6571 7827//6572 7828//6573 +f 7811//6556 7825//6570 7828//6573 7812//6557 +f 7825//6570 7811//6556 7802//6547 7824//6569 +f 7826//6571 7825//6570 7824//6569 7823//6568 +f 7829//6574 7817//6562 7812//6557 7828//6573 +f 7830//6575 7829//6574 7828//6573 7827//6572 +f 7829//6574 7830//6575 7831//6576 7832//6577 +f 7817//6562 7829//6574 7832//6577 7818//6563 +f 7833//6578 7834//6579 7835//6580 7836//6581 +f 7826//6571 7833//6578 7836//6581 7827//6572 +f 7833//6578 7826//6571 7823//6568 7837//6582 +f 7834//6579 7833//6578 7837//6582 7838//6583 +f 7839//6584 7830//6575 7827//6572 7836//6581 +f 7840//6585 7839//6584 7836//6581 7835//6580 +f 7839//6584 7840//6585 7841//6586 7842//6587 +f 7830//6575 7839//6584 7842//6587 7831//6576 +f 7843//6588 7844//6589 7820//6565 7819//6564 +f 7845//6590 7843//6588 7819//6564 7818//6563 +f 7843//6588 7845//6590 7846//6591 7847//6592 +f 7844//6589 7843//6588 7847//6592 7848//6593 +f 7849//6594 7850//6595 7848//6593 7847//6592 +f 7851//6596 7849//6594 7847//6592 7846//6591 +f 7849//6594 7851//6596 7852//6597 7853//6598 +f 7850//6595 7849//6594 7853//6598 7854//6599 +f 7855//6600 7845//6590 7818//6563 7832//6577 +f 7856//6601 7855//6600 7832//6577 7831//6576 +f 7855//6600 7856//6601 7857//6602 7858//6603 +f 7845//6590 7855//6600 7858//6603 7846//6591 +f 7859//6604 7860//6605 7854//6599 7853//6598 +f 7861//6606 7859//6604 7853//6598 7852//6597 +f 7859//6604 7861//6606 7862//6607 7863//6608 +f 7860//6605 7859//6604 7863//6608 7864//6609 +f 7865//6610 7851//6596 7846//6591 7858//6603 +f 7866//6611 7865//6610 7858//6603 7857//6602 +f 7865//6610 7866//6611 7867//6612 7868//6613 +f 7851//6596 7865//6610 7868//6613 7852//6597 +f 7869//6614 7870//6615 7864//6609 7863//6608 +f 7871//6616 7869//6614 7863//6608 7862//6607 +f 7869//6614 7871//6616 7872//6617 7873//6618 +f 7870//6615 7869//6614 7873//6618 7874//6619 +f 7875//6620 7861//6606 7852//6597 7868//6613 +f 7876//6621 7875//6620 7868//6613 7867//6612 +f 7875//6620 7876//6621 7877//6622 7878//6623 +f 7861//6606 7875//6620 7878//6623 7862//6607 +f 7879//6624 7880//6625 7881//6626 7882//6627 +f 7873//6618 7879//6624 7882//6627 7874//6619 +f 7879//6624 7873//6618 7872//6617 7883//6628 +f 7880//6625 7879//6624 7883//6628 7884//6629 +f 7885//6630 7886//6631 7887//6632 7888//6633 +f 7871//6616 7885//6630 7888//6633 7872//6617 +f 7885//6630 7871//6616 7862//6607 7878//6623 +f 7886//6631 7885//6630 7878//6623 7877//6622 +f 7889//6634 7890//6635 7884//6629 7883//6628 +f 7888//6633 7889//6634 7883//6628 7872//6617 +f 7889//6634 7888//6633 7887//6632 7891//6636 +f 7890//6635 7889//6634 7891//6636 7892//6637 +f 7893//6638 7894//6639 7895//6640 7896//6641 +f 7880//6625 7893//6638 7896//6641 7881//6626 +f 7893//6638 7880//6625 7884//6629 7897//6642 +f 7894//6639 7893//6638 7897//6642 7898//6643 +f 7899//6644 7518//6263 7519//6264 7900//6645 +f 7894//6639 7899//6644 7900//6645 7895//6640 +f 7899//6644 7894//6639 7898//6643 7901//6646 +f 7518//6263 7899//6644 7901//6646 7520//6265 +f 7902//6647 7903//6648 7520//6265 7901//6646 +f 7904//6649 7902//6647 7901//6646 7898//6643 +f 7902//6647 7904//6649 7905//6650 7906//6651 +f 7903//6648 7902//6647 7906//6651 7907//6652 +f 7908//6653 7909//6654 7892//6637 7891//6636 +f 7910//6655 7908//6653 7891//6636 7887//6632 +f 7908//6653 7910//6655 7911//6656 7912//6657 +f 7909//6654 7908//6653 7912//6657 7913//6658 +f 7914//6659 7915//6660 7911//6656 7910//6655 +f 7886//6631 7914//6659 7910//6655 7887//6632 +f 7914//6659 7886//6631 7877//6622 7916//6661 +f 7915//6660 7914//6659 7916//6661 7917//6662 +f 7918//6663 7919//6664 7905//6650 7920//6665 +f 7909//6654 7918//6663 7920//6665 7892//6637 +f 7918//6663 7909//6654 7913//6658 7921//6666 +f 7919//6664 7918//6663 7921//6666 7922//6667 +f 7923//6668 7924//6669 7917//6662 7916//6661 +f 7876//6621 7923//6668 7916//6661 7877//6622 +f 7923//6668 7876//6621 7867//6612 7925//6670 +f 7924//6669 7923//6668 7925//6670 7926//6671 +f 7927//6672 7928//6673 7913//6658 7912//6657 +f 7929//6674 7927//6672 7912//6657 7911//6656 +f 7927//6672 7929//6674 7930//6675 7931//6676 +f 7928//6673 7927//6672 7931//6676 7932//6677 +f 7933//6678 7934//6679 7930//6675 7929//6674 +f 7915//6660 7933//6678 7929//6674 7911//6656 +f 7933//6678 7915//6660 7917//6662 7935//6680 +f 7934//6679 7933//6678 7935//6680 7936//6681 +f 7937//6682 7938//6683 7926//6671 7925//6670 +f 7866//6611 7937//6682 7925//6670 7867//6612 +f 7937//6682 7866//6611 7857//6602 7939//6684 +f 7938//6683 7937//6682 7939//6684 7940//6685 +f 7941//6686 7942//6687 7936//6681 7935//6680 +f 7924//6669 7941//6686 7935//6680 7917//6662 +f 7941//6686 7924//6669 7926//6671 7943//6688 +f 7942//6687 7941//6686 7943//6688 7944//6689 +f 7945//6690 7946//6691 7940//6685 7939//6684 +f 7856//6601 7945//6690 7939//6684 7857//6602 +f 7945//6690 7856//6601 7831//6576 7842//6587 +f 7946//6691 7945//6690 7842//6587 7841//6586 +f 7947//6692 7948//6693 7944//6689 7943//6688 +f 7938//6683 7947//6692 7943//6688 7926//6671 +f 7947//6692 7938//6683 7940//6685 7949//6694 +f 7948//6693 7947//6692 7949//6694 7950//6695 +f 7951//6696 7952//6697 7950//6695 7949//6694 +f 7946//6691 7951//6696 7949//6694 7940//6685 +f 7951//6696 7946//6691 7841//6586 7953//6698 +f 7952//6697 7951//6696 7953//6698 7954//6699 +f 7955//6700 7956//6701 7954//6699 7953//6698 +f 7840//6585 7955//6700 7953//6698 7841//6586 +f 7955//6700 7840//6585 7835//6580 7957//6702 +f 7956//6701 7955//6700 7957//6702 7958//6703 +f 7959//6704 7960//6705 7961//6706 7962//6707 +f 7948//6693 7959//6704 7962//6707 7944//6689 +f 7959//6704 7948//6693 7950//6695 7963//6708 +f 7960//6705 7959//6704 7963//6708 7964//6709 +f 7965//6710 7966//6711 7964//6709 7963//6708 +f 7952//6697 7965//6710 7963//6708 7950//6695 +f 7965//6710 7952//6697 7954//6699 7967//6712 +f 7966//6711 7965//6710 7967//6712 7968//6713 +f 7969//6714 7970//6715 7971//6716 7972//6717 +f 7942//6687 7969//6714 7972//6717 7936//6681 +f 7969//6714 7942//6687 7944//6689 7962//6707 +f 7970//6715 7969//6714 7962//6707 7961//6706 +f 7973//6718 7934//6679 7936//6681 7972//6717 +f 7974//6719 7973//6718 7972//6717 7971//6716 +f 7973//6718 7974//6719 7975//6720 7976//6721 +f 7934//6679 7973//6718 7976//6721 7930//6675 +f 7977//6722 7978//6723 7979//6724 7980//6725 +f 7970//6715 7977//6722 7980//6725 7971//6716 +f 7977//6722 7970//6715 7961//6706 7981//6726 +f 7978//6723 7977//6722 7981//6726 7982//6727 +f 7983//6728 7984//6729 7932//6677 7931//6676 +f 7976//6721 7983//6728 7931//6676 7930//6675 +f 7983//6728 7976//6721 7975//6720 7985//6730 +f 7984//6729 7983//6728 7985//6730 7986//6731 +f 7987//6732 7988//6733 7989//6734 7990//6735 +f 7974//6719 7987//6732 7990//6735 7975//6720 +f 7987//6732 7974//6719 7971//6716 7980//6725 +f 7988//6733 7987//6732 7980//6725 7979//6724 +f 7991//6736 7992//6737 7986//6731 7985//6730 +f 7990//6735 7991//6736 7985//6730 7975//6720 +f 7991//6736 7990//6735 7989//6734 7993//6738 +f 7992//6737 7991//6736 7993//6738 7994//6739 +f 7995//6740 7996//6741 7922//6667 7921//6666 +f 7928//6673 7995//6740 7921//6666 7913//6658 +f 7995//6740 7928//6673 7932//6677 7997//6742 +f 7996//6741 7995//6740 7997//6742 7998//6743 +f 7999//6744 8000//6745 7998//6743 7997//6742 +f 7984//6729 7999//6744 7997//6742 7932//6677 +f 7999//6744 7984//6729 7986//6731 8001//6746 +f 8000//6745 7999//6744 8001//6746 8002//6747 +f 8003//6748 8004//6749 7907//6652 7906//6651 +f 7919//6664 8003//6748 7906//6651 7905//6650 +f 8003//6748 7919//6664 7922//6667 8005//6750 +f 8004//6749 8003//6748 8005//6750 8006//6751 +f 8007//6752 8008//6753 7522//6267 7521//6266 +f 7903//6648 8007//6752 7521//6266 7520//6265 +f 8007//6752 7903//6648 7907//6652 8009//6754 +f 8008//6753 8007//6752 8009//6754 8010//6755 +f 8011//6756 8012//6757 8006//6751 8005//6750 +f 7996//6741 8011//6756 8005//6750 7922//6667 +f 8011//6756 7996//6741 7998//6743 8013//6758 +f 8012//6757 8011//6756 8013//6758 8014//6759 +f 8015//6760 8016//6761 8010//6755 8009//6754 +f 8004//6749 8015//6760 8009//6754 7907//6652 +f 8015//6760 8004//6749 8006//6751 8017//6762 +f 8016//6761 8015//6760 8017//6762 8018//6763 +f 8019//6764 8020//6765 8021//6766 8022//6767 +f 8008//6753 8019//6764 8022//6767 7522//6267 +f 8019//6764 8008//6753 8010//6755 8023//6768 +f 8020//6765 8019//6764 8023//6768 8024//6769 +f 8025//6770 8026//6771 8027//6772 8028//6773 +f 8020//6765 8025//6770 8028//6773 8021//6766 +f 8025//6770 8020//6765 8024//6769 8029//6774 +f 8026//6771 8025//6770 8029//6774 8030//6775 +f 8031//6776 8032//6777 8024//6769 8023//6768 +f 8016//6761 8031//6776 8023//6768 8010//6755 +f 8031//6776 8016//6761 8018//6763 8033//6778 +f 8032//6777 8031//6776 8033//6778 8034//6779 +f 8035//6780 8036//6781 8018//6763 8017//6762 +f 8012//6757 8035//6780 8017//6762 8006//6751 +f 8035//6780 8012//6757 8014//6759 8037//6782 +f 8036//6781 8035//6780 8037//6782 8038//6783 +f 8039//6784 8040//6785 8030//6775 8029//6774 +f 8032//6777 8039//6784 8029//6774 8024//6769 +f 8039//6784 8032//6777 8034//6779 8041//6786 +f 8040//6785 8039//6784 8041//6786 8042//6787 +f 8043//6788 8044//6789 8034//6779 8033//6778 +f 8036//6781 8043//6788 8033//6778 8018//6763 +f 8043//6788 8036//6781 8038//6783 8045//6790 +f 8044//6789 8043//6788 8045//6790 8046//6791 +f 8047//6792 8048//6793 8042//6787 8041//6786 +f 8044//6789 8047//6792 8041//6786 8034//6779 +f 8047//6792 8044//6789 8046//6791 8049//6794 +f 8048//6793 8047//6792 8049//6794 8050//6795 +f 8051//6796 8052//6797 8038//6783 8037//6782 +f 8053//6798 8051//6796 8037//6782 8014//6759 +f 8051//6796 8053//6798 8054//6799 8055//6800 +f 8052//6797 8051//6796 8055//6800 8056//6801 +f 8057//6802 8058//6803 8050//6795 8049//6794 +f 8059//6804 8057//6802 8049//6794 8046//6791 +f 8057//6802 8059//6804 8060//6805 8061//6806 +f 8058//6803 8057//6802 8061//6806 8062//6807 +f 8063//6808 8059//6804 8046//6791 8045//6790 +f 8052//6797 8063//6808 8045//6790 8038//6783 +f 8063//6808 8052//6797 8056//6801 8064//6809 +f 8059//6804 8063//6808 8064//6809 8060//6805 +f 8065//6810 8066//6811 8062//6807 8061//6806 +f 8067//6812 8065//6810 8061//6806 8060//6805 +f 8065//6810 8067//6812 8068//6813 8069//6814 +f 8066//6811 8065//6810 8069//6814 8070//6815 +f 8071//6816 8067//6812 8060//6805 8064//6809 +f 8072//6817 8071//6816 8064//6809 8056//6801 +f 8071//6816 8072//6817 8073//6818 8074//6819 +f 8067//6812 8071//6816 8074//6819 8068//6813 +f 8075//6820 8076//6821 8070//6815 8069//6814 +f 8077//6822 8075//6820 8069//6814 8068//6813 +f 8075//6820 8077//6822 8078//6823 8079//6824 +f 8076//6821 8075//6820 8079//6824 8080//6825 +f 8081//6826 8082//6827 8080//6825 8079//6824 +f 8083//6828 8081//6826 8079//6824 8078//6823 +f 8081//6826 8083//6828 8084//6829 8085//6830 +f 8082//6827 8081//6826 8085//6830 8086//6831 +f 8087//6832 8088//6833 8089//6834 8090//6835 +f 8077//6822 8087//6832 8090//6835 8078//6823 +f 8087//6832 8077//6822 8068//6813 8074//6819 +f 8088//6833 8087//6832 8074//6819 8073//6818 +f 8091//6836 8083//6828 8078//6823 8090//6835 +f 8092//6837 8091//6836 8090//6835 8089//6834 +f 8091//6836 8092//6837 8093//6838 8094//6839 +f 8083//6828 8091//6836 8094//6839 8084//6829 +f 8095//6840 8096//6841 8084//6829 8094//6839 +f 8097//6842 8095//6840 8094//6839 8093//6838 +f 8095//6840 8097//6842 8098//6843 8099//6844 +f 8096//6841 8095//6840 8099//6844 8100//6845 +f 8101//6846 8102//6847 8103//6848 8104//6849 +f 8092//6837 8101//6846 8104//6849 8093//6838 +f 8101//6846 8092//6837 8089//6834 8105//6850 +f 8102//6847 8101//6846 8105//6850 8106//6851 +f 8107//6852 8108//6853 8109//6854 8110//6855 +f 8097//6842 8107//6852 8110//6855 8098//6843 +f 8107//6852 8097//6842 8093//6838 8104//6849 +f 8108//6853 8107//6852 8104//6849 8103//6848 +f 8111//6856 8112//6857 8106//6851 8105//6850 +f 8088//6833 8111//6856 8105//6850 8089//6834 +f 8111//6856 8088//6833 8073//6818 8113//6858 +f 8112//6857 8111//6856 8113//6858 8114//6859 +f 8115//6860 8116//6861 8114//6859 8113//6858 +f 8072//6817 8115//6860 8113//6858 8073//6818 +f 8115//6860 8072//6817 8056//6801 8055//6800 +f 8116//6861 8115//6860 8055//6800 8054//6799 +f 8117//6862 8118//6863 8119//6864 8120//6865 +f 8102//6847 8117//6862 8120//6865 8103//6848 +f 8117//6862 8102//6847 8106//6851 8121//6866 +f 8118//6863 8117//6862 8121//6866 8122//6867 +f 8123//6868 8124//6869 8122//6867 8121//6866 +f 8112//6857 8123//6868 8121//6866 8106//6851 +f 8123//6868 8112//6857 8114//6859 8125//6870 +f 8124//6869 8123//6868 8125//6870 8126//6871 +f 8127//6872 8128//6873 8126//6871 8125//6870 +f 8116//6861 8127//6872 8125//6870 8114//6859 +f 8127//6872 8116//6861 8054//6799 8129//6874 +f 8128//6873 8127//6872 8129//6874 8002//6747 +f 8130//6875 8000//6745 8002//6747 8129//6874 +f 8053//6798 8130//6875 8129//6874 8054//6799 +f 8130//6875 8053//6798 8014//6759 8013//6758 +f 8000//6745 8130//6875 8013//6758 7998//6743 +f 8131//6876 8128//6873 8002//6747 8001//6746 +f 7992//6737 8131//6876 8001//6746 7986//6731 +f 8131//6876 7992//6737 7994//6739 8132//6877 +f 8128//6873 8131//6876 8132//6877 8126//6871 +f 8133//6878 8124//6869 8126//6871 8132//6877 +f 8134//6879 8133//6878 8132//6877 7994//6739 +f 8133//6878 8134//6879 8135//6880 8136//6881 +f 8124//6869 8133//6878 8136//6881 8122//6867 +f 8137//6882 8134//6879 7994//6739 7993//6738 +f 8138//6883 8137//6882 7993//6738 7989//6734 +f 8137//6882 8138//6883 8139//6884 8140//6885 +f 8134//6879 8137//6882 8140//6885 8135//6880 +f 8141//6886 8142//6887 8139//6884 8138//6883 +f 7988//6733 8141//6886 8138//6883 7989//6734 +f 8141//6886 7988//6733 7979//6724 8143//6888 +f 8142//6887 8141//6886 8143//6888 8144//6889 +f 8145//6890 8118//6863 8122//6867 8136//6881 +f 8146//6891 8145//6890 8136//6881 8135//6880 +f 8145//6890 8146//6891 8147//6892 8148//6893 +f 8118//6863 8145//6890 8148//6893 8119//6864 +f 8149//6894 8146//6891 8135//6880 8140//6885 +f 8150//6895 8149//6894 8140//6885 8139//6884 +f 8149//6894 8150//6895 8151//6896 8152//6897 +f 8146//6891 8149//6894 8152//6897 8147//6892 +f 8153//6898 8154//6899 8151//6896 8150//6895 +f 8142//6887 8153//6898 8150//6895 8139//6884 +f 8153//6898 8142//6887 8144//6889 8155//6900 +f 8154//6899 8153//6898 8155//6900 8156//6901 +f 8157//6902 8158//6903 8144//6889 8143//6888 +f 7978//6723 8157//6902 8143//6888 7979//6724 +f 8157//6902 7978//6723 7982//6727 8159//6904 +f 8158//6903 8157//6902 8159//6904 8160//6905 +f 8161//6906 8162//6907 7982//6727 7981//6726 +f 7960//6705 8161//6906 7981//6726 7961//6706 +f 8161//6906 7960//6705 7964//6709 8163//6908 +f 8162//6907 8161//6906 8163//6908 8164//6909 +f 8165//6910 8166//6911 8156//6901 8155//6900 +f 8158//6903 8165//6910 8155//6900 8144//6889 +f 8165//6910 8158//6903 8160//6905 8167//6912 +f 8166//6911 8165//6910 8167//6912 8168//6913 +f 8169//6914 8170//6915 8160//6905 8159//6904 +f 8162//6907 8169//6914 8159//6904 7982//6727 +f 8169//6914 8162//6907 8164//6909 8171//6916 +f 8170//6915 8169//6914 8171//6916 8172//6917 +f 8173//6918 8174//6919 8175//6920 8176//6921 +f 8154//6899 8173//6918 8176//6921 8151//6896 +f 8173//6918 8154//6899 8156//6901 8177//6922 +f 8174//6919 8173//6918 8177//6922 8178//6923 +f 8179//6924 8180//6925 8147//6892 8152//6897 +f 8176//6921 8179//6924 8152//6897 8151//6896 +f 8179//6924 8176//6921 8175//6920 8181//6926 +f 8180//6925 8179//6924 8181//6926 8182//6927 +f 8183//6928 8184//6929 8119//6864 8148//6893 +f 8180//6925 8183//6928 8148//6893 8147//6892 +f 8183//6928 8180//6925 8182//6927 8185//6930 +f 8184//6929 8183//6928 8185//6930 8186//6931 +f 8187//6932 8188//6933 8178//6923 8177//6922 +f 8166//6911 8187//6932 8177//6922 8156//6901 +f 8187//6932 8166//6911 8168//6913 8189//6934 +f 8188//6933 8187//6932 8189//6934 8190//6935 +f 8191//6936 8192//6937 8182//6927 8181//6926 +f 8193//6938 8191//6936 8181//6926 8175//6920 +f 8191//6936 8193//6938 8194//6939 8195//6940 +f 8192//6937 8191//6936 8195//6940 8196//6941 +f 8197//6942 8198//6943 8194//6939 8193//6938 +f 8174//6919 8197//6942 8193//6938 8175//6920 +f 8197//6942 8174//6919 8178//6923 8199//6944 +f 8198//6943 8197//6942 8199//6944 8200//6945 +f 8201//6946 8108//6853 8103//6848 8120//6865 +f 8184//6929 8201//6946 8120//6865 8119//6864 +f 8201//6946 8184//6929 8186//6931 8202//6947 +f 8108//6853 8201//6946 8202//6947 8109//6854 +f 8203//6948 8204//6949 8186//6931 8185//6930 +f 8192//6937 8203//6948 8185//6930 8182//6927 +f 8203//6948 8192//6937 8196//6941 8205//6950 +f 8204//6949 8203//6948 8205//6950 8206//6951 +f 8207//6952 8208//6953 8109//6854 8202//6947 +f 8204//6949 8207//6952 8202//6947 8186//6931 +f 8207//6952 8204//6949 8206//6951 8209//6954 +f 8208//6953 8207//6952 8209//6954 8210//6955 +f 8211//6956 8212//6957 8098//6843 8110//6855 +f 8208//6953 8211//6956 8110//6855 8109//6854 +f 8211//6956 8208//6953 8210//6955 8213//6958 +f 8212//6957 8211//6956 8213//6958 8214//6959 +f 8215//6960 8216//6961 8206//6951 8205//6950 +f 8217//6962 8215//6960 8205//6950 8196//6941 +f 8215//6960 8217//6962 8218//6963 8219//6964 +f 8216//6961 8215//6960 8219//6964 8220//6965 +f 8221//6966 8222//6967 8100//6845 8099//6844 +f 8212//6957 8221//6966 8099//6844 8098//6843 +f 8221//6966 8212//6957 8214//6959 8223//6968 +f 8222//6967 8221//6966 8223//6968 8224//6969 +f 8225//6970 8226//6971 8210//6955 8209//6954 +f 8216//6961 8225//6970 8209//6954 8206//6951 +f 8225//6970 8216//6961 8220//6965 8227//6972 +f 8226//6971 8225//6970 8227//6972 8228//6973 +f 8229//6974 8230//6975 8214//6959 8213//6958 +f 8226//6971 8229//6974 8213//6958 8210//6955 +f 8229//6974 8226//6971 8228//6973 8231//6976 +f 8230//6975 8229//6974 8231//6976 8232//6977 +f 8233//6978 8234//6979 8235//6980 8236//6981 +f 8222//6967 8233//6978 8236//6981 8100//6845 +f 8233//6978 8222//6967 8224//6969 8237//6982 +f 8234//6979 8233//6978 8237//6982 8238//6983 +f 8239//6984 8096//6841 8100//6845 8236//6981 +f 8240//6985 8239//6984 8236//6981 8235//6980 +f 8239//6984 8240//6985 8086//6831 8085//6830 +f 8096//6841 8239//6984 8085//6830 8084//6829 +f 8241//6986 8242//6987 8224//6969 8223//6968 +f 8230//6975 8241//6986 8223//6968 8214//6959 +f 8241//6986 8230//6975 8232//6977 8243//6988 +f 8242//6987 8241//6986 8243//6988 8244//6989 +f 8245//6990 8246//6991 8238//6983 8237//6982 +f 8242//6987 8245//6990 8237//6982 8224//6969 +f 8245//6990 8242//6987 8244//6989 8247//6992 +f 8246//6991 8245//6990 8247//6992 8248//6993 +f 8249//6994 8250//6995 8248//6993 8247//6992 +f 8251//6996 8249//6994 8247//6992 8244//6989 +f 8249//6994 8251//6996 8252//6997 8253//6998 +f 8250//6995 8249//6994 8253//6998 8254//6999 +f 8255//7000 8251//6996 8244//6989 8243//6988 +f 8256//7001 8255//7000 8243//6988 8232//6977 +f 8255//7000 8256//7001 8257//7002 8258//7003 +f 8251//6996 8255//7000 8258//7003 8252//6997 +f 8259//7004 8260//7005 8252//6997 8258//7003 +f 8261//7006 8259//7004 8258//7003 8257//7002 +f 8259//7004 8261//7006 8262//7007 8263//7008 +f 8260//7005 8259//7004 8263//7008 8264//7009 +f 8265//7010 8266//7011 8267//7012 8268//7013 +f 8256//7001 8265//7010 8268//7013 8257//7002 +f 8265//7010 8256//7001 8232//6977 8231//6976 +f 8266//7011 8265//7010 8231//6976 8228//6973 +f 8269//7014 8270//7015 8271//7016 8272//7017 +f 8261//7006 8269//7014 8272//7017 8262//7007 +f 8269//7014 8261//7006 8257//7002 8268//7013 +f 8270//7015 8269//7014 8268//7013 8267//7012 +f 8273//7018 8274//7019 8275//7020 8276//7021 +f 8266//7011 8273//7018 8276//7021 8267//7012 +f 8273//7018 8266//7011 8228//6973 8227//6972 +f 8274//7019 8273//7018 8227//6972 8220//6965 +f 8277//7022 8278//7023 8279//7024 8280//7025 +f 8270//7015 8277//7022 8280//7025 8271//7016 +f 8277//7022 8270//7015 8267//7012 8276//7021 +f 8278//7023 8277//7022 8276//7021 8275//7020 +f 8281//7026 8282//7027 8283//7028 8284//7029 +f 8274//7019 8281//7026 8284//7029 8275//7020 +f 8281//7026 8274//7019 8220//6965 8219//6964 +f 8282//7027 8281//7026 8219//6964 8218//6963 +f 8285//7030 8286//7031 8287//7032 8288//7033 +f 8278//7023 8285//7030 8288//7033 8279//7024 +f 8285//7030 8278//7023 8275//7020 8284//7029 +f 8286//7031 8285//7030 8284//7029 8283//7028 +f 8289//7034 8290//7035 8271//7016 8280//7025 +f 8291//7036 8289//7034 8280//7025 8279//7024 +f 8289//7034 8291//7036 8292//7037 8293//7038 +f 8290//7035 8289//7034 8293//7038 8294//7039 +f 8295//7040 8291//7036 8279//7024 8288//7033 +f 8296//7041 8295//7040 8288//7033 8287//7032 +f 8295//7040 8296//7041 8297//7042 8298//7043 +f 8291//7036 8295//7040 8298//7043 8292//7037 +f 8299//7044 8300//7045 8301//7046 8302//7047 +f 8286//7031 8299//7044 8302//7047 8287//7032 +f 8299//7044 8286//7031 8283//7028 8303//7048 +f 8300//7045 8299//7044 8303//7048 8304//7049 +f 8305//7050 8306//7051 8262//7007 8272//7017 +f 8290//7035 8305//7050 8272//7017 8271//7016 +f 8305//7050 8290//7035 8294//7039 8307//7052 +f 8306//7051 8305//7050 8307//7052 8308//7053 +f 8309//7054 8296//7041 8287//7032 8302//7047 +f 8310//7055 8309//7054 8302//7047 8301//7046 +f 8309//7054 8310//7055 8311//7056 8312//7057 +f 8296//7041 8309//7054 8312//7057 8297//7042 +f 8313//7058 8314//7059 8264//7009 8263//7008 +f 8306//7051 8313//7058 8263//7008 8262//7007 +f 8313//7058 8306//7051 8308//7053 8315//7060 +f 8314//7059 8313//7058 8315//7060 8316//7061 +f 8317//7062 8260//7005 8264//7009 8318//7063 +f 8319//7064 8317//7062 8318//7063 8320//7065 +f 8317//7062 8319//7064 8254//6999 8253//6998 +f 8260//7005 8317//7062 8253//6998 8252//6997 +f 8321//7066 8322//7067 8320//7065 8318//7063 +f 8314//7059 8321//7066 8318//7063 8264//7009 +f 8321//7066 8314//7059 8316//7061 8323//7068 +f 8322//7067 8321//7066 8323//7068 8324//7069 +f 8325//7070 8326//7071 8308//7053 8307//7052 +f 8327//7072 8325//7070 8307//7052 8294//7039 +f 8325//7070 8327//7072 8328//7073 8329//7074 +f 8326//7071 8325//7070 8329//7074 8330//7075 +f 8331//7076 8332//7077 8324//7069 8323//7068 +f 8333//7078 8331//7076 8323//7068 8316//7061 +f 8331//7076 8333//7078 8334//7079 8335//7080 +f 8332//7077 8331//7076 8335//7080 8336//7081 +f 8337//7082 8333//7078 8316//7061 8315//7060 +f 8326//7071 8337//7082 8315//7060 8308//7053 +f 8337//7082 8326//7071 8330//7075 8338//7083 +f 8333//7078 8337//7082 8338//7083 8334//7079 +f 8339//7084 8340//7085 8336//7081 8335//7080 +f 8341//7086 8339//7084 8335//7080 8334//7079 +f 8339//7084 8341//7086 7531//6276 7530//6275 +f 8340//7085 8339//7084 7530//6275 7529//6274 +f 8342//7087 8341//7086 8334//7079 8338//7083 +f 8343//7088 8342//7087 8338//7083 8330//7075 +f 8342//7087 8343//7088 8344//7089 8345//7090 +f 8341//7086 8342//7087 8345//7090 7531//6276 +f 8346//7091 8343//7088 8330//7075 8329//7074 +f 8347//7092 8346//7091 8329//7074 8328//7073 +f 8346//7091 8347//7092 8348//7093 8349//7094 +f 8343//7088 8346//7091 8349//7094 8344//7089 +f 8350//7095 7524//6269 7531//6276 8345//7090 +f 8351//7096 8350//7095 8345//7090 8344//7089 +f 8350//7095 8351//7096 8352//7097 8353//7098 +f 7524//6269 8350//7095 8353//7098 7525//6270 +f 8354//7099 8351//7096 8344//7089 8349//7094 +f 8355//7100 8354//7099 8349//7094 8348//7093 +f 8354//7099 8355//7100 8356//7101 8357//7102 +f 8351//7096 8354//7099 8357//7102 8352//7097 +f 8358//7103 8359//7104 8360//7105 8361//7106 +f 8362//7107 8358//7103 8361//7106 8363//7108 +f 8358//7103 8362//7107 7525//6270 8353//7098 +f 8359//7104 8358//7103 8353//7098 8352//7097 +f 8364//7109 8365//7110 7528//6273 7526//6271 +f 8362//7107 8364//7109 7526//6271 7525//6270 +f 8364//7109 8362//7107 8363//7108 8366//7111 +f 8365//7110 8364//7109 8366//7111 8367//7112 +f 8368//7113 8369//7114 8370//7115 8371//7116 +f 8359//7104 8368//7113 8371//7116 8360//7105 +f 8368//7113 8359//7104 8352//7097 8357//7102 +f 8369//7114 8368//7113 8357//7102 8356//7101 +f 8372//7117 8373//7118 8360//7105 8371//7116 +f 8374//7119 8372//7117 8371//7116 8370//7115 +f 8372//7117 8374//7119 8375//7120 8376//7121 +f 8373//7118 8372//7117 8376//7121 8377//7122 +f 8378//7123 8379//7124 8380//7125 8381//7126 +f 8374//7119 8378//7123 8381//7126 8375//7120 +f 8378//7123 8374//7119 8370//7115 8382//7127 +f 8379//7124 8378//7123 8382//7127 8383//7128 +f 8384//7129 8385//7130 8383//7128 8382//7127 +f 8369//7114 8384//7129 8382//7127 8370//7115 +f 8384//7129 8369//7114 8356//7101 8386//7131 +f 8385//7130 8384//7129 8386//7131 8387//7132 +f 8388//7133 8389//7134 8387//7132 8386//7131 +f 8355//7100 8388//7133 8386//7131 8356//7101 +f 8388//7133 8355//7100 8348//7093 8390//7135 +f 8389//7134 8388//7133 8390//7135 8391//7136 +f 8392//7137 8393//7138 8394//7139 8395//7140 +f 8379//7124 8392//7137 8395//7140 8380//7125 +f 8392//7137 8379//7124 8383//7128 8396//7141 +f 8393//7138 8392//7137 8396//7141 8397//7142 +f 8398//7143 8399//7144 8391//7136 8390//7135 +f 8347//7092 8398//7143 8390//7135 8348//7093 +f 8398//7143 8347//7092 8328//7073 8400//7145 +f 8399//7144 8398//7143 8400//7145 8401//7146 +f 8402//7147 8403//7148 8397//7142 8396//7141 +f 8385//7130 8402//7147 8396//7141 8383//7128 +f 8402//7147 8385//7130 8387//7132 8404//7149 +f 8403//7148 8402//7147 8404//7149 8405//7150 +f 8406//7151 8407//7152 8405//7150 8404//7149 +f 8389//7134 8406//7151 8404//7149 8387//7132 +f 8406//7151 8389//7134 8391//7136 8408//7153 +f 8407//7152 8406//7151 8408//7153 8409//7154 +f 8410//7155 8411//7156 8401//7146 8400//7145 +f 8327//7072 8410//7155 8400//7145 8328//7073 +f 8410//7155 8327//7072 8294//7039 8293//7038 +f 8411//7156 8410//7155 8293//7038 8292//7037 +f 8412//7157 8413//7158 8409//7154 8408//7153 +f 8399//7144 8412//7157 8408//7153 8391//7136 +f 8412//7157 8399//7144 8401//7146 8414//7159 +f 8413//7158 8412//7157 8414//7159 8415//7160 +f 8416//7161 8417//7162 8415//7160 8414//7159 +f 8411//7156 8416//7161 8414//7159 8401//7146 +f 8416//7161 8411//7156 8292//7037 8298//7043 +f 8417//7162 8416//7161 8298//7043 8297//7042 +f 8418//7163 8419//7164 8420//7165 8421//7166 +f 8407//7152 8418//7163 8421//7166 8405//7150 +f 8418//7163 8407//7152 8409//7154 8422//7167 +f 8419//7164 8418//7163 8422//7167 8423//7168 +f 8424//7169 8425//7170 8426//7171 8427//7172 +f 8417//7162 8424//7169 8427//7172 8415//7160 +f 8424//7169 8417//7162 8297//7042 8312//7057 +f 8425//7170 8424//7169 8312//7057 8311//7056 +f 8428//7173 8429//7174 8423//7168 8422//7167 +f 8413//7158 8428//7173 8422//7167 8409//7154 +f 8428//7173 8413//7158 8415//7160 8427//7172 +f 8429//7174 8428//7173 8427//7172 8426//7171 +f 8430//7175 8431//7176 8426//7171 8425//7170 +f 8432//7177 8430//7175 8425//7170 8311//7056 +f 8430//7175 8432//7177 8433//7178 8434//7179 +f 8431//7176 8430//7175 8434//7179 8435//7180 +f 8436//7181 8437//7182 8423//7168 8429//7174 +f 8431//7176 8436//7181 8429//7174 8426//7171 +f 8436//7181 8431//7176 8435//7180 8438//7183 +f 8437//7182 8436//7181 8438//7183 8439//7184 +f 8440//7185 8441//7186 8420//7165 8419//7164 +f 8437//7182 8440//7185 8419//7164 8423//7168 +f 8440//7185 8437//7182 8439//7184 8442//7185 +f 8441//7186 8440//7185 8442//7185 8443//7187 +f 8444//7188 8403//7148 8405//7150 8421//7166 +f 8445//7189 8444//7188 8421//7166 8420//7165 +f 8444//7188 8445//7189 8446//7190 8447//7191 +f 8403//7148 8444//7188 8447//7191 8397//7142 +f 8448//7192 8449//7193 8446//7190 8445//7189 +f 8441//7186 8448//7192 8445//7189 8420//7165 +f 8448//7192 8441//7186 8443//7187 8450//7194 +f 8449//7193 8448//7192 8450//7194 8451//7195 +f 8452//7196 8393//7138 8397//7142 8447//7191 +f 8453//7197 8452//7196 8447//7191 8446//7190 +f 8452//7196 8453//7197 8454//7198 8455//7199 +f 8393//7138 8452//7196 8455//7199 8394//7139 +f 8456//7200 8457//7201 8454//7198 8453//7197 +f 8449//7193 8456//7200 8453//7197 8446//7190 +f 8456//7200 8449//7193 8451//7195 8458//7202 +f 8457//7201 8456//7200 8458//7202 8459//7203 +f 8460//7204 8461//7205 8443//7187 8442//7185 +f 8462//7206 8460//7204 8442//7185 8439//7184 +f 8460//7204 8462//7206 8463//7207 8464//7208 +f 8461//7205 8460//7204 8464//7208 8465//7209 +f 8466//7210 8467//7211 8394//7139 8455//7199 +f 8468//7212 8466//7210 8455//7199 8454//7198 +f 8466//7210 8468//7212 8469//7213 8470//7214 +f 8467//7211 8466//7210 8470//7214 8471//7215 +f 8472//7216 8473//7217 8451//7195 8450//7194 +f 8461//7205 8472//7216 8450//7194 8443//7187 +f 8472//7216 8461//7205 8465//7209 8474//7218 +f 8473//7217 8472//7216 8474//7218 8475//7219 +f 8476//7220 8477//7221 8469//7213 8468//7212 +f 8457//7201 8476//7220 8468//7212 8454//7198 +f 8476//7220 8457//7201 8459//7203 8478//7222 +f 8477//7221 8476//7220 8478//7222 8479//7223 +f 8480//7224 8481//7225 8459//7203 8458//7202 +f 8473//7217 8480//7224 8458//7202 8451//7195 +f 8480//7224 8473//7217 8475//7219 8482//7226 +f 8481//7225 8480//7224 8482//7226 8483//7227 +f 8484//7228 8485//7229 8380//7125 8395//7140 +f 8467//7211 8484//7228 8395//7140 8394//7139 +f 8484//7228 8467//7211 8471//7215 8486//7230 +f 8485//7229 8484//7228 8486//7230 8487//7231 +f 8488//7232 8489//7233 8375//7120 8381//7126 +f 8485//7229 8488//7232 8381//7126 8380//7125 +f 8488//7232 8485//7229 8487//7231 8490//7234 +f 8489//7233 8488//7232 8490//7234 8491//7235 +f 8492//7236 8493//7237 8471//7215 8470//7214 +f 8494//7238 8492//7236 8470//7214 8469//7213 +f 8492//7236 8494//7238 8495//7239 8496//7240 +f 8493//7237 8492//7236 8496//7240 8497//7241 +f 8498//7242 8499//7243 8495//7239 8494//7238 +f 8477//7221 8498//7242 8494//7238 8469//7213 +f 8498//7242 8477//7221 8479//7223 8500//7244 +f 8499//7243 8498//7242 8500//7244 8501//7245 +f 8502//7246 8503//7247 8487//7231 8486//7230 +f 8493//7237 8502//7246 8486//7230 8471//7215 +f 8502//7246 8493//7237 8497//7241 8504//7248 +f 8503//7247 8502//7246 8504//7248 8505//7249 +f 8506//7250 8507//7251 8501//7245 8500//7244 +f 8508//7252 8506//7250 8500//7244 8479//7223 +f 8506//7250 8508//7252 8509//7253 8510//7254 +f 8507//7251 8506//7250 8510//7254 8511//7255 +f 8512//7256 8513//7257 8491//7235 8490//7234 +f 8503//7247 8512//7256 8490//7234 8487//7231 +f 8512//7256 8503//7247 8505//7249 8514//7258 +f 8513//7257 8512//7256 8514//7258 8515//7259 +f 8516//7260 8517//7261 8377//7122 8376//7121 +f 8489//7233 8516//7260 8376//7121 8375//7120 +f 8516//7260 8489//7233 8491//7235 8518//7262 +f 8517//7261 8516//7260 8518//7262 8519//7263 +f 8520//7264 8521//7265 8519//7263 8518//7262 +f 8513//7257 8520//7264 8518//7262 8491//7235 +f 8520//7264 8513//7257 8515//7259 8522//7266 +f 8521//7265 8520//7264 8522//7266 8523//7267 +f 8524//7268 7533//6278 7540//6285 8525//7269 +f 8521//7265 8524//7268 8525//7269 8519//7263 +f 8524//7268 8521//7265 8523//7267 8526//7270 +f 7533//6278 8524//7268 8526//7270 7534//6279 +f 8527//7271 8528//7272 8529//7273 8530//7274 +f 8517//7261 8527//7271 8530//7274 8377//7122 +f 8527//7271 8517//7261 8519//7263 8525//7269 +f 8528//7272 8527//7271 8525//7269 7540//6285 +f 8531//7275 8532//7276 8533//7277 8534//7278 +f 8528//7272 8531//7275 8534//7278 8529//7273 +f 8531//7275 8528//7272 7540//6285 7539//6284 +f 8532//7276 8531//7275 7539//6284 7538//6283 +f 8535//7279 8536//7280 8511//7255 8510//7254 +f 8537//7281 8535//7279 8510//7254 8509//7253 +f 8535//7279 8537//7281 8538//7282 8539//7283 +f 8536//7280 8535//7279 8539//7283 8540//7284 +f 8541//7285 8481//7225 8483//7227 8542//7286 +f 8508//7252 8541//7285 8542//7286 8509//7253 +f 8541//7285 8508//7252 8479//7223 8478//7222 +f 8481//7225 8541//7285 8478//7222 8459//7203 +f 8543//7287 8537//7281 8509//7253 8542//7286 +f 8544//7288 8543//7287 8542//7286 8483//7227 +f 8543//7287 8544//7288 8545//7289 8546//7290 +f 8537//7281 8543//7287 8546//7290 8538//7282 +f 8547//7291 8544//7288 8483//7227 8482//7226 +f 8548//7292 8547//7291 8482//7226 8475//7219 +f 8547//7291 8548//7292 8549//7293 8550//7294 +f 8544//7288 8547//7291 8550//7294 8545//7289 +f 8551//7295 8552//7296 8540//7284 8539//7283 +f 8553//7297 8551//7295 8539//7283 8538//7282 +f 8551//7295 8553//7297 8554//7298 8555//7299 +f 8552//7296 8551//7295 8555//7299 8556//7300 +f 8557//7301 8553//7297 8538//7282 8546//7290 +f 8558//7302 8557//7301 8546//7290 8545//7289 +f 8557//7301 8558//7302 8559//7303 8560//7304 +f 8553//7297 8557//7301 8560//7304 8554//7298 +f 8561//7305 8562//7306 8556//7300 8555//7299 +f 8563//7307 8561//7305 8555//7299 8554//7298 +f 8561//7305 8563//7307 8564//7308 8565//7309 +f 8562//7306 8561//7305 8565//7309 8566//7310 +f 8567//7311 8563//7307 8554//7298 8560//7304 +f 8568//7312 8567//7311 8560//7304 8559//7303 +f 8567//7311 8568//7312 8569//7313 8570//7314 +f 8563//7307 8567//7311 8570//7314 8564//7308 +f 8571//7315 8572//7316 8573//7317 8574//7318 +f 8558//7302 8571//7315 8574//7318 8559//7303 +f 8571//7315 8558//7302 8545//7289 8550//7294 +f 8572//7316 8571//7315 8550//7294 8549//7293 +f 8575//7319 8576//7320 8577//7321 8578//7322 +f 8568//7312 8575//7319 8578//7322 8569//7313 +f 8575//7319 8568//7312 8559//7303 8574//7318 +f 8576//7320 8575//7319 8574//7318 8573//7317 +f 8579//7323 8580//7324 8566//7310 8565//7309 +f 8581//7325 8579//7323 8565//7309 8564//7308 +f 8579//7323 8581//7325 8582//7326 8583//7327 +f 8580//7324 8579//7323 8583//7327 8584//7328 +f 8585//7329 8581//7325 8564//7308 8570//7314 +f 8586//7330 8585//7329 8570//7314 8569//7313 +f 8585//7329 8586//7330 8587//7331 8588//7332 +f 8581//7325 8585//7329 8588//7332 8582//7326 +f 8589//7333 8590//7334 8584//7328 8583//7327 +f 8591//7335 8589//7333 8583//7327 8582//7326 +f 8589//7333 8591//7335 8592//7336 8593//7337 +f 8590//7334 8589//7333 8593//7337 8594//7338 +f 8595//7339 8591//7335 8582//7326 8588//7332 +f 8596//7340 8595//7339 8588//7332 8587//7331 +f 8595//7339 8596//7340 8597//7341 8598//7342 +f 8591//7335 8595//7339 8598//7342 8592//7336 +f 8599//7343 8600//7344 8601//7345 8602//7346 +f 8586//7330 8599//7343 8602//7346 8587//7331 +f 8599//7343 8586//7330 8569//7313 8578//7322 +f 8600//7344 8599//7343 8578//7322 8577//7321 +f 8603//7347 8604//7348 8605//7349 8606//7350 +f 8596//7340 8603//7347 8606//7350 8597//7341 +f 8603//7347 8596//7340 8587//7331 8602//7346 +f 8604//7348 8603//7347 8602//7346 8601//7345 +f 8607//7351 8608//7352 8594//7338 8593//7337 +f 8609//7353 8607//7351 8593//7337 8592//7336 +f 8607//7351 8609//7353 8610//7354 8611//7355 +f 8608//7352 8607//7351 8611//7355 8612//7356 +f 8613//7357 8609//7353 8592//7336 8598//7342 +f 8614//7358 8613//7357 8598//7342 8597//7341 +f 8613//7357 8614//7358 8615//7359 8616//7360 +f 8609//7353 8613//7357 8616//7360 8610//7354 +f 8617//7361 8618//7362 8612//7356 8611//7355 +f 8619//7363 8617//7361 8611//7355 8610//7354 +f 8617//7361 8619//7363 8620//7364 8621//7365 +f 8618//7362 8617//7361 8621//7365 8622//7366 +f 8623//7367 8624//7368 8625//7369 8626//7370 +f 8621//7365 8623//7367 8626//7370 8622//7366 +f 8623//7367 8621//7365 8620//7364 8627//7371 +f 8624//7368 8623//7367 8627//7371 8628//7372 +f 8629//7373 8630//7374 8631//7375 8632//7376 +f 8619//7363 8629//7373 8632//7376 8620//7364 +f 8629//7373 8619//7363 8610//7354 8616//7360 +f 8630//7374 8629//7373 8616//7360 8615//7359 +f 8633//7377 8634//7378 8628//7372 8627//7371 +f 8632//7376 8633//7377 8627//7371 8620//7364 +f 8633//7377 8632//7376 8631//7375 8635//7379 +f 8634//7378 8633//7377 8635//7379 8636//7380 +f 8637//7381 8638//7382 8639//7383 8640//7384 +f 8624//7368 8637//7381 8640//7384 8625//7369 +f 8637//7381 8624//7368 8628//7372 8641//7385 +f 8638//7382 8637//7381 8641//7385 8642//7386 +f 8643//7387 8644//7388 8645//7389 8646//7390 +f 8630//7374 8643//7387 8646//7390 8631//7375 +f 8643//7387 8630//7374 8615//7359 8647//7391 +f 8644//7388 8643//7387 8647//7391 8648//7392 +f 8649//7393 8650//7394 8651//7395 8652//7396 +f 8638//7382 8649//7393 8652//7396 8639//7383 +f 8649//7393 8638//7382 8642//7386 8653//7397 +f 8650//7394 8649//7393 8653//7397 8654//7398 +f 8655//7399 8656//7400 8642//7386 8641//7385 +f 8634//7378 8655//7399 8641//7385 8628//7372 +f 8655//7399 8634//7378 8636//7380 8657//7401 +f 8656//7400 8655//7399 8657//7401 8658//7402 +f 8659//7403 8660//7404 8636//7380 8635//7379 +f 8646//7390 8659//7403 8635//7379 8631//7375 +f 8659//7403 8646//7390 8645//7389 8661//7405 +f 8660//7404 8659//7403 8661//7405 8662//7406 +f 8663//7407 8664//7408 8665//7409 8666//7410 +f 8650//7394 8663//7407 8666//7410 8651//7395 +f 8663//7407 8650//7394 8654//7398 8667//7411 +f 8664//7408 8663//7407 8667//7411 8668//7412 +f 8669//7413 8670//7414 8654//7398 8653//7397 +f 8656//7400 8669//7413 8653//7397 8642//7386 +f 8669//7413 8656//7400 8658//7402 8671//7415 +f 8670//7414 8669//7413 8671//7415 8672//7416 +f 8673//7417 7509//6254 7510//6255 8674//7418 +f 8664//7408 8673//7417 8674//7418 8665//7409 +f 8673//7417 8664//7408 8668//7412 8675//7419 +f 7509//6254 8673//7417 8675//7419 7511//6256 +f 8676//7420 8677//7421 8668//7412 8667//7411 +f 8670//7414 8676//7420 8667//7411 8654//7398 +f 8676//7420 8670//7414 8672//7416 8678//7422 +f 8677//7421 8676//7420 8678//7422 8679//7423 +f 8680//7424 8681//7425 7511//6256 8675//7419 +f 8677//7421 8680//7424 8675//7419 8668//7412 +f 8680//7424 8677//7421 8679//7423 8682//7426 +f 8681//7425 8680//7424 8682//7426 8683//7427 +f 8684//7428 8685//7429 7513//6258 7512//6257 +f 8681//7425 8684//7428 7512//6257 7511//6256 +f 8684//7428 8681//7425 8683//7427 8686//7430 +f 8685//7429 8684//7428 8686//7430 8687//7431 +f 8688//7432 8689//7433 8679//7423 8678//7422 +f 8690//7434 8688//7432 8678//7422 8672//7416 +f 8688//7432 8690//7434 8691//7435 8692//7436 +f 8689//7433 8688//7432 8692//7436 8693//7437 +f 8694//7438 8695//7439 8696//7440 8697//7441 +f 8690//7434 8694//7438 8697//7441 8691//7435 +f 8694//7438 8690//7434 8672//7416 8671//7415 +f 8695//7439 8694//7438 8671//7415 8658//7402 +f 8698//7442 8699//7443 8693//7437 8692//7436 +f 8700//7444 8698//7442 8692//7436 8691//7435 +f 8698//7442 8700//7444 8701//7445 8702//7446 +f 8699//7443 8698//7442 8702//7446 8703//7447 +f 8704//7448 8700//7444 8691//7435 8697//7441 +f 8705//7449 8704//7448 8697//7441 8696//7440 +f 8704//7448 8705//7449 8706//7450 8707//7451 +f 8700//7444 8704//7448 8707//7451 8701//7445 +f 8708//7452 8709//7453 8710//7454 8711//7455 +f 8699//7443 8708//7452 8711//7455 8693//7437 +f 8708//7452 8699//7443 8703//7447 8712//7456 +f 8709//7453 8708//7452 8712//7456 8713//7457 +f 8714//7458 8715//7459 8713//7457 8712//7456 +f 8716//7460 8714//7458 8712//7456 8703//7447 +f 8714//7458 8716//7460 8717//7461 8718//7462 +f 8715//7459 8714//7458 8718//7462 8719//7463 +f 8720//7464 8716//7460 8703//7447 8702//7446 +f 8721//7465 8720//7464 8702//7446 8701//7445 +f 8720//7464 8721//7465 8722//7466 8723//7467 +f 8716//7460 8720//7464 8723//7467 8717//7461 +f 8724//7468 8725//7469 8726//7470 8727//7471 +f 8728//7472 8724//7468 8727//7471 8729//7473 +f 8724//7468 8728//7472 8719//7463 8718//7462 +f 8725//7469 8724//7468 8718//7462 8717//7461 +f 8730//7474 8731//7475 8732//7476 8733//7477 +f 8721//7465 8730//7474 8733//7477 8722//7466 +f 8730//7474 8721//7465 8701//7445 8707//7451 +f 8731//7475 8730//7474 8707//7451 8706//7450 +f 8734//7478 8725//7469 8717//7461 8723//7467 +f 8735//7479 8734//7478 8723//7467 8722//7466 +f 8734//7478 8735//7479 8736//7480 8737//7481 +f 8725//7469 8734//7478 8737//7481 8726//7470 +f 8738//7482 8735//7479 8722//7466 8733//7477 +f 8739//7483 8738//7482 8733//7477 8732//7476 +f 8738//7482 8739//7483 8740//7484 8741//7485 +f 8735//7479 8738//7482 8741//7485 8736//7480 +f 8742//7486 8743//7487 8744//7488 8745//7489 +f 8731//7475 8742//7486 8745//7489 8732//7476 +f 8742//7486 8731//7475 8706//7450 8746//7490 +f 8743//7487 8742//7486 8746//7490 8747//7491 +f 8748//7492 8749//7493 8750//7494 8751//7495 +f 8739//7483 8748//7492 8751//7495 8740//7484 +f 8748//7492 8739//7483 8732//7476 8745//7489 +f 8749//7493 8748//7492 8745//7489 8744//7488 +f 8752//7496 8753//7497 8736//7480 8741//7485 +f 8754//7498 8752//7496 8741//7485 8740//7484 +f 8752//7496 8754//7498 8755//7499 8756//7500 +f 8753//7497 8752//7496 8756//7500 8757//7501 +f 8758//7502 8759//7503 8747//7491 8746//7490 +f 8705//7449 8758//7502 8746//7490 8706//7450 +f 8758//7502 8705//7449 8696//7440 8760//7504 +f 8759//7503 8758//7502 8760//7504 8662//7406 +f 8761//7505 8762//7506 8726//7470 8737//7481 +f 8753//7497 8761//7505 8737//7481 8736//7480 +f 8761//7505 8753//7497 8757//7501 8763//7507 +f 8762//7506 8761//7505 8763//7507 8764//7508 +f 8765//7509 8766//7510 8729//7473 8727//7471 +f 8762//7506 8765//7509 8727//7471 8726//7470 +f 8765//7509 8762//7506 8764//7508 8767//7511 +f 8766//7510 8765//7509 8767//7511 8768//7512 +f 8769//7513 8770//7514 8771//7515 8772//7516 +f 8754//7498 8769//7513 8772//7516 8755//7499 +f 8769//7513 8754//7498 8740//7484 8751//7495 +f 8770//7514 8769//7513 8751//7495 8750//7494 +f 8773//7517 8774//7518 8757//7501 8756//7500 +f 8775//7519 8773//7517 8756//7500 8755//7499 +f 8773//7517 8775//7519 8776//7520 8777//7521 +f 8774//7518 8773//7517 8777//7521 8778//7522 +f 8779//7523 8775//7519 8755//7499 8772//7516 +f 8780//7524 8779//7523 8772//7516 8771//7515 +f 8779//7523 8780//7524 8781//7525 8782//7526 +f 8775//7519 8779//7523 8782//7526 8776//7520 +f 8783//7527 8784//7528 8764//7508 8763//7507 +f 8774//7518 8783//7527 8763//7507 8757//7501 +f 8783//7527 8774//7518 8778//7522 8785//7529 +f 8784//7528 8783//7527 8785//7529 8786//7530 +f 8787//7531 8788//7532 8789//7533 8790//7534 +f 8766//7510 8787//7531 8790//7534 8729//7473 +f 8787//7531 8766//7510 8768//7512 8791//7535 +f 8788//7532 8787//7531 8791//7535 8792//7536 +f 8793//7537 8728//7472 8729//7473 8790//7534 +f 8794//7538 8793//7537 8790//7534 8789//7533 +f 8793//7537 8794//7538 8795//7539 8796//7540 +f 8728//7472 8793//7537 8796//7540 8719//7463 +f 8797//7541 8798//7542 8768//7512 8767//7511 +f 8784//7528 8797//7541 8767//7511 8764//7508 +f 8797//7541 8784//7528 8786//7530 8799//7543 +f 8798//7542 8797//7541 8799//7543 8800//7544 +f 8801//7545 8802//7546 8800//7544 8799//7543 +f 8803//7547 8801//7545 8799//7543 8786//7530 +f 8801//7545 8803//7547 8804//7548 8805//7549 +f 8802//7546 8801//7545 8805//7549 8806//7550 +f 8807//7551 8803//7547 8786//7530 8785//7529 +f 8808//7552 8807//7551 8785//7529 8778//7522 +f 8807//7551 8808//7552 8809//7553 8810//7554 +f 8803//7547 8807//7551 8810//7554 8804//7548 +f 8811//7555 8812//7556 8813//7557 8814//7558 +f 8808//7552 8811//7555 8814//7558 8809//7553 +f 8811//7555 8808//7552 8778//7522 8777//7521 +f 8812//7556 8811//7555 8777//7521 8776//7520 +f 8815//7559 8816//7560 8804//7548 8810//7554 +f 8817//7561 8815//7559 8810//7554 8809//7553 +f 8815//7559 8817//7561 8818//7562 8819//7563 +f 8816//7560 8815//7559 8819//7563 8820//7564 +f 8821//7565 8822//7566 8823//7567 8824//7568 +f 8812//7556 8821//7565 8824//7568 8813//7557 +f 8821//7565 8812//7556 8776//7520 8782//7526 +f 8822//7566 8821//7565 8782//7526 8781//7525 +f 8825//7569 8817//7561 8809//7553 8814//7558 +f 8826//7570 8825//7569 8814//7558 8813//7557 +f 8825//7569 8826//7570 8827//7571 8828//7572 +f 8817//7561 8825//7569 8828//7572 8818//7562 +f 8829//7573 8826//7570 8813//7557 8824//7568 +f 8830//7574 8829//7573 8824//7568 8823//7567 +f 8829//7573 8830//7574 8831//7575 8832//7576 +f 8826//7570 8829//7573 8832//7576 8827//7571 +f 8833//7577 8834//7578 8835//7579 8836//7580 +f 8822//7566 8833//7577 8836//7580 8823//7567 +f 8833//7577 8822//7566 8781//7525 8837//7581 +f 8834//7578 8833//7577 8837//7581 8838//7582 +f 8839//7583 8840//7584 8841//7585 8842//7586 +f 8830//7574 8839//7583 8842//7586 8831//7575 +f 8839//7583 8830//7574 8823//7567 8836//7580 +f 8840//7584 8839//7583 8836//7580 8835//7579 +f 8843//7587 8844//7588 8827//7571 8832//7576 +f 8845//7589 8843//7587 8832//7576 8831//7575 +f 8843//7587 8845//7589 8846//7590 8847//7591 +f 8844//7588 8843//7587 8847//7591 8848//7592 +f 8849//7593 8850//7594 8838//7582 8837//7581 +f 8780//7524 8849//7593 8837//7581 8781//7525 +f 8849//7593 8780//7524 8771//7515 8851//7595 +f 8850//7594 8849//7593 8851//7595 8852//7596 +f 8853//7597 8854//7598 8818//7562 8828//7572 +f 8844//7588 8853//7597 8828//7572 8827//7571 +f 8853//7597 8844//7588 8848//7592 8855//7599 +f 8854//7598 8853//7597 8855//7599 8856//7600 +f 8857//7601 8858//7602 8852//7596 8851//7595 +f 8770//7514 8857//7601 8851//7595 8771//7515 +f 8857//7601 8770//7514 8750//7494 8859//7603 +f 8858//7602 8857//7601 8859//7603 8860//7604 +f 8861//7605 8862//7606 8835//7579 8834//7578 +f 8863//7607 8861//7605 8834//7578 8838//7582 +f 8861//7605 8863//7607 8864//7608 8865//7609 +f 8862//7606 8861//7605 8865//7609 8866//7610 +f 8867//7611 8868//7612 8860//7604 8859//7603 +f 8749//7493 8867//7611 8859//7603 8750//7494 +f 8867//7611 8749//7493 8744//7488 8869//7613 +f 8868//7612 8867//7611 8869//7613 8870//7614 +f 8871//7615 8863//7607 8838//7582 8850//7594 +f 8872//7616 8871//7615 8850//7594 8852//7596 +f 8871//7615 8872//7616 8873//7617 8874//7618 +f 8863//7607 8871//7615 8874//7618 8864//7608 +f 8875//7619 8872//7616 8852//7596 8858//7602 +f 8876//7620 8875//7619 8858//7602 8860//7604 +f 8875//7619 8876//7620 8877//7621 8878//7622 +f 8872//7616 8875//7619 8878//7622 8873//7617 +f 8879//7623 8880//7624 8870//7614 8869//7613 +f 8743//7487 8879//7623 8869//7613 8744//7488 +f 8879//7623 8743//7487 8747//7491 8881//7625 +f 8880//7624 8879//7623 8881//7625 8882//7626 +f 8883//7627 8884//7628 8885//7629 8886//7630 +f 8876//7620 8883//7627 8886//7630 8877//7621 +f 8883//7627 8876//7620 8860//7604 8868//7612 +f 8884//7628 8883//7627 8868//7612 8870//7614 +f 8887//7631 8888//7632 8873//7617 8878//7622 +f 8889//7633 8887//7631 8878//7622 8877//7621 +f 8887//7631 8889//7633 8890//7634 8891//7635 +f 8888//7632 8887//7631 8891//7635 8892//7636 +f 8893//7637 8889//7633 8877//7621 8886//7630 +f 8894//7638 8893//7637 8886//7630 8885//7629 +f 8893//7637 8894//7638 8895//7639 8896//7640 +f 8889//7633 8893//7637 8896//7640 8890//7634 +f 8897//7641 8898//7642 8899//7643 8900//7644 +f 8884//7628 8897//7641 8900//7644 8885//7629 +f 8897//7641 8884//7628 8870//7614 8880//7624 +f 8898//7642 8897//7641 8880//7624 8882//7626 +f 8901//7645 8902//7646 8864//7608 8874//7618 +f 8888//7632 8901//7645 8874//7618 8873//7617 +f 8901//7645 8888//7632 8892//7636 8903//7647 +f 8902//7646 8901//7645 8903//7647 8904//7648 +f 8905//7649 8894//7638 8885//7629 8900//7644 +f 8906//7650 8905//7649 8900//7644 8899//7643 +f 8905//7649 8906//7650 8907//7651 8908//7652 +f 8894//7638 8905//7649 8908//7652 8895//7639 +f 8909//7653 8910//7654 8605//7349 8911//7655 +f 8906//7650 8909//7653 8911//7655 8907//7651 +f 8909//7653 8906//7650 8899//7643 8912//7656 +f 8910//7654 8909//7653 8912//7656 8648//7392 +f 8913//7657 8914//7658 8882//7626 8881//7625 +f 8759//7503 8913//7657 8881//7625 8747//7491 +f 8913//7657 8759//7503 8662//7406 8661//7405 +f 8914//7658 8913//7657 8661//7405 8645//7389 +f 8915//7659 8660//7404 8662//7406 8760//7504 +f 8695//7439 8915//7659 8760//7504 8696//7440 +f 8915//7659 8695//7439 8658//7402 8657//7401 +f 8660//7404 8915//7659 8657//7401 8636//7380 +f 8916//7660 8898//7642 8882//7626 8914//7658 +f 8644//7388 8916//7660 8914//7658 8645//7389 +f 8916//7660 8644//7388 8648//7392 8912//7656 +f 8898//7642 8916//7660 8912//7656 8899//7643 +f 8917//7661 8910//7654 8648//7392 8647//7391 +f 8614//7358 8917//7661 8647//7391 8615//7359 +f 8917//7661 8614//7358 8597//7341 8606//7350 +f 8910//7654 8917//7661 8606//7350 8605//7349 +f 8918//7662 8919//7663 8907//7651 8911//7655 +f 8604//7348 8918//7662 8911//7655 8605//7349 +f 8918//7662 8604//7348 8601//7345 8920//7664 +f 8919//7663 8918//7662 8920//7664 8921//7665 +f 8922//7666 8923//7667 8895//7639 8908//7652 +f 8919//7663 8922//7666 8908//7652 8907//7651 +f 8922//7666 8919//7663 8921//7665 8924//7668 +f 8923//7667 8922//7666 8924//7668 8925//7669 +f 8926//7670 8927//7671 8921//7665 8920//7664 +f 8600//7344 8926//7670 8920//7664 8601//7345 +f 8926//7670 8600//7344 8577//7321 8928//7672 +f 8927//7671 8926//7670 8928//7672 8929//7673 +f 8930//7674 8931//7675 8890//7634 8896//7640 +f 8923//7667 8930//7674 8896//7640 8895//7639 +f 8930//7674 8923//7667 8925//7669 8932//7676 +f 8931//7675 8930//7674 8932//7676 8933//7677 +f 8934//7678 8935//7679 8925//7669 8924//7668 +f 8927//7671 8934//7678 8924//7668 8921//7665 +f 8934//7678 8927//7671 8929//7673 8936//7680 +f 8935//7679 8934//7678 8936//7680 8937//7681 +f 8938//7682 8939//7683 8929//7673 8928//7672 +f 8576//7320 8938//7682 8928//7672 8577//7321 +f 8938//7682 8576//7320 8573//7317 8940//7684 +f 8939//7683 8938//7682 8940//7684 8941//7685 +f 8942//7686 8943//7687 8892//7636 8891//7635 +f 8931//7675 8942//7686 8891//7635 8890//7634 +f 8942//7686 8931//7675 8933//7677 8944//7688 +f 8943//7687 8942//7686 8944//7688 8945//7689 +f 8946//7690 8947//7691 8933//7677 8932//7676 +f 8935//7679 8946//7690 8932//7676 8925//7669 +f 8946//7690 8935//7679 8937//7681 8948//7692 +f 8947//7691 8946//7690 8948//7692 8949//7693 +f 8950//7694 8951//7695 8937//7681 8936//7680 +f 8939//7683 8950//7694 8936//7680 8929//7673 +f 8950//7694 8939//7683 8941//7685 8952//7696 +f 8951//7695 8950//7694 8952//7696 8953//7697 +f 8954//7698 8955//7699 8941//7685 8940//7684 +f 8572//7316 8954//7698 8940//7684 8573//7317 +f 8954//7698 8572//7316 8549//7293 8956//7700 +f 8955//7699 8954//7698 8956//7700 8957//7701 +f 8958//7702 8959//7703 8957//7701 8956//7700 +f 8548//7292 8958//7702 8956//7700 8549//7293 +f 8958//7702 8548//7292 8475//7219 8474//7218 +f 8959//7703 8958//7702 8474//7218 8465//7209 +f 8960//7704 8961//7705 8953//7697 8952//7696 +f 8955//7699 8960//7704 8952//7696 8941//7685 +f 8960//7704 8955//7699 8957//7701 8962//7706 +f 8961//7705 8960//7704 8962//7706 8963//7707 +f 8964//7708 8965//7709 8949//7693 8948//7692 +f 8951//7695 8964//7708 8948//7692 8937//7681 +f 8964//7708 8951//7695 8953//7697 8966//7710 +f 8965//7709 8964//7708 8966//7710 8967//7711 +f 8968//7712 8969//7713 8963//7707 8962//7706 +f 8959//7703 8968//7712 8962//7706 8957//7701 +f 8968//7712 8959//7703 8465//7209 8464//7208 +f 8969//7713 8968//7712 8464//7208 8463//7207 +f 8970//7714 8971//7715 8967//7711 8966//7710 +f 8961//7705 8970//7714 8966//7710 8953//7697 +f 8970//7714 8961//7705 8963//7707 8972//7716 +f 8971//7715 8970//7714 8972//7716 8973//7717 +f 8974//7718 8975//7719 8973//7717 8972//7716 +f 8969//7713 8974//7718 8972//7716 8963//7707 +f 8974//7718 8969//7713 8463//7207 8976//7720 +f 8975//7719 8974//7718 8976//7720 8977//7721 +f 8978//7722 8979//7723 8977//7721 8976//7720 +f 8462//7206 8978//7722 8976//7720 8463//7207 +f 8978//7722 8462//7206 8439//7184 8438//7183 +f 8979//7723 8978//7722 8438//7183 8435//7180 +f 8980//7724 8981//7725 8982//7726 8983//7727 +f 8971//7715 8980//7724 8983//7727 8967//7711 +f 8980//7724 8971//7715 8973//7717 8984//7728 +f 8981//7725 8980//7724 8984//7728 8985//7729 +f 8986//7730 8987//7731 8988//7732 8989//7733 +f 8979//7723 8986//7730 8989//7733 8977//7721 +f 8986//7730 8979//7723 8435//7180 8434//7179 +f 8987//7731 8986//7730 8434//7179 8433//7178 +f 8990//7734 8991//7735 8985//7729 8984//7728 +f 8975//7719 8990//7734 8984//7728 8973//7717 +f 8990//7734 8975//7719 8977//7721 8989//7733 +f 8991//7735 8990//7734 8989//7733 8988//7732 +f 8992//7736 8993//7737 8994//7738 8995//7739 +f 8987//7731 8992//7736 8995//7739 8988//7732 +f 8992//7736 8987//7731 8433//7178 8996//7740 +f 8993//7737 8992//7736 8996//7740 8997//7741 +f 8998//7742 8999//7743 9000//7744 9001//7745 +f 8991//7735 8998//7742 9001//7745 8985//7729 +f 8998//7742 8991//7735 8988//7732 8995//7739 +f 8999//7743 8998//7742 8995//7739 8994//7738 +f 9002//7746 9003//7747 9004//7748 9005//7749 +f 8981//7725 9002//7746 9005//7749 8982//7726 +f 9002//7746 8981//7725 8985//7729 9001//7745 +f 9003//7747 9002//7746 9001//7745 9000//7744 +f 9006//7750 8965//7709 8967//7711 8983//7727 +f 9007//7751 9006//7750 8983//7727 8982//7726 +f 9006//7750 9007//7751 9008//7752 9009//7753 +f 8965//7709 9006//7750 9009//7753 8949//7693 +f 9010//7754 9007//7751 8982//7726 9005//7749 +f 9011//7755 9010//7754 9005//7749 9004//7748 +f 9010//7754 9011//7755 9012//7756 9013//7757 +f 9007//7751 9010//7754 9013//7757 9008//7752 +f 9014//7758 8947//7691 8949//7693 9009//7753 +f 9015//7759 9014//7758 9009//7753 9008//7752 +f 9014//7758 9015//7759 8945//7689 8944//7688 +f 8947//7691 9014//7758 8944//7688 8933//7677 +f 9016//7760 9017//7761 9018//7762 9019//7763 +f 9015//7759 9016//7760 9019//7763 8945//7689 +f 9016//7760 9015//7759 9008//7752 9013//7757 +f 9017//7761 9016//7760 9013//7757 9012//7756 +f 9020//7764 9021//7765 8904//7648 8903//7647 +f 8943//7687 9020//7764 8903//7647 8892//7636 +f 9020//7764 8943//7687 8945//7689 9019//7763 +f 9021//7765 9020//7764 9019//7763 9018//7762 +f 9022//7766 9023//7767 9024//7768 9025//7769 +f 9017//7761 9022//7766 9025//7769 9018//7762 +f 9022//7766 9017//7761 9012//7756 9026//7770 +f 9023//7767 9022//7766 9026//7770 9027//7771 +f 9028//7772 9029//7773 8866//7610 8865//7609 +f 8902//7646 9028//7772 8865//7609 8864//7608 +f 9028//7772 8902//7646 8904//7648 9030//7774 +f 9029//7773 9028//7772 9030//7774 9031//7775 +f 9032//7776 9033//7777 9031//7775 9030//7774 +f 9021//7765 9032//7776 9030//7774 8904//7648 +f 9032//7776 9021//7765 9018//7762 9025//7769 +f 9033//7777 9032//7776 9025//7769 9024//7768 +f 9034//7778 9035//7779 8841//7585 8840//7584 +f 8862//7606 9034//7778 8840//7584 8835//7579 +f 9034//7778 8862//7606 8866//7610 9036//7780 +f 9035//7779 9034//7778 9036//7780 9037//7781 +f 9038//7782 9039//7783 9037//7781 9036//7780 +f 9029//7773 9038//7782 9036//7780 8866//7610 +f 9038//7782 9029//7773 9031//7775 9040//7784 +f 9039//7783 9038//7782 9040//7784 9041//7785 +f 9042//7786 9043//7787 9041//7785 9040//7784 +f 9033//7777 9042//7786 9040//7784 9031//7775 +f 9042//7786 9033//7777 9024//7768 9044//7788 +f 9043//7787 9042//7786 9044//7788 9045//7789 +f 9046//7790 9047//7791 9027//7771 9026//7770 +f 9011//7755 9046//7790 9026//7770 9012//7756 +f 9046//7790 9011//7755 9004//7748 9048//7792 +f 9047//7791 9046//7790 9048//7792 9049//7793 +f 9050//7794 9051//7795 9045//7789 9044//7788 +f 9023//7767 9050//7794 9044//7788 9024//7768 +f 9050//7794 9023//7767 9027//7771 9052//7796 +f 9051//7795 9050//7794 9052//7796 9053//7797 +f 9054//7798 9055//7799 9049//7793 9048//7792 +f 9003//7747 9054//7798 9048//7792 9004//7748 +f 9054//7798 9003//7747 9000//7744 9056//7800 +f 9055//7799 9054//7798 9056//7800 9057//7801 +f 9058//7802 9059//7803 9053//7797 9052//7796 +f 9047//7791 9058//7802 9052//7796 9027//7771 +f 9058//7802 9047//7791 9049//7793 9060//7804 +f 9059//7803 9058//7802 9060//7804 9061//7805 +f 9062//7806 9063//7807 9057//7801 9056//7800 +f 8999//7743 9062//7806 9056//7800 9000//7744 +f 9062//7806 8999//7743 8994//7738 9064//7808 +f 9063//7807 9062//7806 9064//7808 9065//7809 +f 9066//7810 9067//7811 9061//7805 9060//7804 +f 9055//7799 9066//7810 9060//7804 9049//7793 +f 9066//7810 9055//7799 9057//7801 9068//7812 +f 9067//7811 9066//7810 9068//7812 9069//7813 +f 9070//7814 9071//7815 9072//7816 9073//7817 +f 9051//7795 9070//7814 9073//7817 9045//7789 +f 9070//7814 9051//7795 9053//7797 9074//7818 +f 9071//7815 9070//7814 9074//7818 9075//7819 +f 9076//7820 9077//7821 9075//7819 9074//7818 +f 9059//7803 9076//7820 9074//7818 9053//7797 +f 9076//7820 9059//7803 9061//7805 9078//7822 +f 9077//7821 9076//7820 9078//7822 9079//7823 +f 9080//7824 9043//7787 9045//7789 9073//7817 +f 9081//7825 9080//7824 9073//7817 9072//7816 +f 9080//7824 9081//7825 9082//7826 9083//7827 +f 9043//7787 9080//7824 9083//7827 9041//7785 +f 9084//7828 9085//7829 9069//7813 9068//7812 +f 9063//7807 9084//7828 9068//7812 9057//7801 +f 9084//7828 9063//7807 9065//7809 9086//7830 +f 9085//7829 9084//7828 9086//7830 9087//7831 +f 9088//7832 9039//7783 9041//7785 9083//7827 +f 9089//7833 9088//7832 9083//7827 9082//7826 +f 9088//7832 9089//7833 9090//7834 9091//7835 +f 9039//7783 9088//7832 9091//7835 9037//7781 +f 9092//7836 9093//7837 9065//7809 9064//7808 +f 8993//7737 9092//7836 9064//7808 8994//7738 +f 9092//7836 8993//7737 8997//7741 9094//7838 +f 9093//7837 9092//7836 9094//7838 9095//7839 +f 9096//7840 9097//7841 8997//7741 8996//7740 +f 8432//7177 9096//7840 8996//7740 8433//7178 +f 9096//7840 8432//7177 8311//7056 8310//7055 +f 9097//7841 9096//7840 8310//7055 8301//7046 +f 9098//7842 9099//7843 9095//7839 9094//7838 +f 9097//7841 9098//7842 9094//7838 8997//7741 +f 9098//7842 9097//7841 8301//7046 8300//7045 +f 9099//7843 9098//7842 8300//7045 8304//7049 +f 9100//7844 9101//7845 9087//7831 9086//7830 +f 9093//7837 9100//7844 9086//7830 9065//7809 +f 9100//7844 9093//7837 9095//7839 9102//7846 +f 9101//7845 9100//7844 9102//7846 9103//7847 +f 9104//7848 9105//7849 8304//7049 8303//7048 +f 8282//7027 9104//7848 8303//7048 8283//7028 +f 9104//7848 8282//7027 8218//6963 9106//7850 +f 9105//7849 9104//7848 9106//7850 9107//7851 +f 9108//7852 9109//7853 9103//7847 9102//7846 +f 9099//7843 9108//7852 9102//7846 9095//7839 +f 9108//7852 9099//7843 8304//7049 9105//7849 +f 9109//7853 9108//7852 9105//7849 9107//7851 +f 9110//7854 9111//7855 9107//7851 9106//7850 +f 8217//6962 9110//7854 9106//7850 8218//6963 +f 9110//7854 8217//6962 8196//6941 8195//6940 +f 9111//7855 9110//7854 8195//6940 8194//6939 +f 9112//7856 9109//7853 9107//7851 9111//7855 +f 8198//6943 9112//7856 9111//7855 8194//6939 +f 9112//7856 8198//6943 8200//6945 9113//7857 +f 9109//7853 9112//7856 9113//7857 9103//7847 +f 9114//7858 9101//7845 9103//7847 9113//7857 +f 9115//7859 9114//7858 9113//7857 8200//6945 +f 9114//7858 9115//7859 9116//7860 9117//7861 +f 9101//7845 9114//7858 9117//7861 9087//7831 +f 9118//7862 9115//7859 8200//6945 8199//6944 +f 8188//6933 9118//7862 8199//6944 8178//6923 +f 9118//7862 8188//6933 8190//6935 9119//7863 +f 9115//7859 9118//7862 9119//7863 9116//7860 +f 9120//7864 9085//7829 9087//7831 9117//7861 +f 9121//7865 9120//7864 9117//7861 9116//7860 +f 9120//7864 9121//7865 9122//7866 9123//7867 +f 9085//7829 9120//7864 9123//7867 9069//7813 +f 9124//7868 9121//7865 9116//7860 9119//7863 +f 9125//7869 9124//7868 9119//7863 8190//6935 +f 9124//7868 9125//7869 9126//7870 9127//7871 +f 9121//7865 9124//7868 9127//7871 9122//7866 +f 9128//7872 9125//7869 8190//6935 8189//6934 +f 9129//7873 9128//7872 8189//6934 8168//6913 +f 9128//7872 9129//7873 9130//7874 9131//7875 +f 9125//7869 9128//7872 9131//7875 9126//7870 +f 9132//7876 9067//7811 9069//7813 9123//7867 +f 9133//7877 9132//7876 9123//7867 9122//7866 +f 9132//7876 9133//7877 9079//7823 9078//7822 +f 9067//7811 9132//7876 9078//7822 9061//7805 +f 9134//7878 9133//7877 9122//7866 9127//7871 +f 9135//7879 9134//7878 9127//7871 9126//7870 +f 9134//7878 9135//7879 9136//7880 9137//7881 +f 9133//7877 9134//7878 9137//7881 9079//7823 +f 9138//7882 9139//7883 9140//7884 9141//7885 +f 9077//7821 9138//7882 9141//7885 9075//7819 +f 9138//7882 9077//7821 9079//7823 9137//7881 +f 9139//7883 9138//7882 9137//7881 9136//7880 +f 9142//7886 9143//7887 9144//7888 9145//7889 +f 9135//7879 9142//7886 9145//7889 9136//7880 +f 9142//7886 9135//7879 9126//7870 9131//7875 +f 9143//7887 9142//7886 9131//7875 9130//7874 +f 9146//7890 9147//7891 9148//7892 9149//7893 +f 9139//7883 9146//7890 9149//7893 9140//7884 +f 9146//7890 9139//7883 9136//7880 9145//7889 +f 9147//7891 9146//7890 9145//7889 9144//7888 +f 9150//7894 9071//7815 9075//7819 9141//7885 +f 9151//7895 9150//7894 9141//7885 9140//7884 +f 9150//7894 9151//7895 9152//7896 9153//7897 +f 9071//7815 9150//7894 9153//7897 9072//7816 +f 9154//7898 9151//7895 9140//7884 9149//7893 +f 9155//7899 9154//7898 9149//7893 9148//7892 +f 9154//7898 9155//7899 9156//7900 9157//7901 +f 9151//7895 9154//7898 9157//7901 9152//7896 +f 9158//7902 9081//7825 9072//7816 9153//7897 +f 9159//7903 9158//7902 9153//7897 9152//7896 +f 9158//7902 9159//7903 9160//7904 9161//7905 +f 9081//7825 9158//7902 9161//7905 9082//7826 +f 9162//7906 9159//7903 9152//7896 9157//7901 +f 9163//7907 9162//7906 9157//7901 9156//7900 +f 9162//7906 9163//7907 9164//7908 9165//7909 +f 9159//7903 9162//7906 9165//7909 9160//7904 +f 9166//7910 9089//7833 9082//7826 9161//7905 +f 9167//7911 9166//7910 9161//7905 9160//7904 +f 9166//7910 9167//7911 9168//7912 9169//7913 +f 9089//7833 9166//7910 9169//7913 9090//7834 +f 9170//7914 9167//7911 9160//7904 9165//7909 +f 9171//7915 9170//7914 9165//7909 9164//7908 +f 9170//7914 9171//7915 9172//7916 9173//7917 +f 9167//7911 9170//7914 9173//7917 9168//7912 +f 9174//7918 9175//7919 9176//7920 9177//7921 +f 9163//7907 9174//7918 9177//7921 9164//7908 +f 9174//7918 9163//7907 9156//7900 9178//7922 +f 9175//7919 9174//7918 9178//7922 9179//7923 +f 9180//7924 9181//7925 9182//7926 9183//7927 +f 9171//7915 9180//7924 9183//7927 9172//7916 +f 9180//7924 9171//7915 9164//7908 9177//7921 +f 9181//7925 9180//7924 9177//7921 9176//7920 +f 9184//7928 9185//7929 9168//7912 9173//7917 +f 9186//7930 9184//7928 9173//7917 9172//7916 +f 9184//7928 9186//7930 9187//7931 9188//7932 +f 9185//7929 9184//7928 9188//7932 9189//7933 +f 9190//7934 9191//7935 9179//7923 9178//7922 +f 9155//7899 9190//7934 9178//7922 9156//7900 +f 9190//7934 9155//7899 9148//7892 9192//7936 +f 9191//7935 9190//7934 9192//7936 9193//7937 +f 9194//7938 9195//7939 9090//7834 9169//7913 +f 9185//7929 9194//7938 9169//7913 9168//7912 +f 9194//7938 9185//7929 9189//7933 9196//7940 +f 9195//7939 9194//7938 9196//7940 9197//7941 +f 9198//7942 9199//7943 9193//7937 9192//7936 +f 9147//7891 9198//7942 9192//7936 9148//7892 +f 9198//7942 9147//7891 9144//7888 9200//7944 +f 9199//7943 9198//7942 9200//7944 9201//7945 +f 9202//7946 9035//7779 9037//7781 9091//7835 +f 9195//7939 9202//7946 9091//7835 9090//7834 +f 9202//7946 9195//7939 9197//7941 9203//7947 +f 9035//7779 9202//7946 9203//7947 8841//7585 +f 9204//7948 8845//7589 8831//7575 8842//7586 +f 9203//7947 9204//7948 8842//7586 8841//7585 +f 9204//7948 9203//7947 9197//7941 9205//7949 +f 8845//7589 9204//7948 9205//7949 8846//7590 +f 9206//7950 9207//7951 8846//7590 9205//7949 +f 9196//7940 9206//7950 9205//7949 9197//7941 +f 9206//7950 9196//7940 9189//7933 9208//7952 +f 9207//7951 9206//7950 9208//7952 9209//7953 +f 9210//7954 9211//7955 9209//7953 9208//7952 +f 9188//7932 9210//7954 9208//7952 9189//7933 +f 9210//7954 9188//7932 9187//7931 9212//7956 +f 9211//7955 9210//7954 9212//7956 7754//6499 +f 9213//7957 9214//7958 8848//7592 8847//7591 +f 9207//7951 9213//7957 8847//7591 8846//7590 +f 9213//7957 9207//7951 9209//7953 9215//7959 +f 9214//7958 9213//7957 9215//7959 7744//6489 +f 9216//7960 7742//6487 7744//6489 9215//7959 +f 9211//7955 9216//7960 9215//7959 9209//7953 +f 9216//7960 9211//7955 7754//6499 7753//6498 +f 7742//6487 9216//7960 7753//6498 7740//6485 +f 9217//7961 9218//7962 8856//7600 8855//7599 +f 9214//7958 9217//7961 8855//7599 8848//7592 +f 9217//7961 9214//7958 7744//6489 7743//6488 +f 9218//7962 9217//7961 7743//6488 7732//6477 +f 9219//7963 7726//6471 7728//6473 9220//7964 +f 9218//7962 9219//7963 9220//7964 8856//7600 +f 9219//7963 9218//7962 7732//6477 7731//6476 +f 7726//6471 9219//7963 7731//6476 7714//6459 +f 9221//7965 8854//7598 8856//7600 9220//7964 +f 9222//7966 9221//7965 9220//7964 7728//6473 +f 9221//7965 9222//7966 8820//7564 8819//7563 +f 8854//7598 9221//7965 8819//7563 8818//7562 +f 9223//7967 7720//6465 7724//6469 9224//7968 +f 9222//7966 9223//7967 9224//7968 8820//7564 +f 9223//7967 9222//7966 7728//6473 7727//6472 +f 7720//6465 9223//7967 7727//6472 7710//6455 +f 9225//7969 8816//7560 8820//7564 9224//7968 +f 9226//7970 9225//7969 9224//7968 7724//6469 +f 9225//7969 9226//7970 8806//7550 8805//7549 +f 8816//7560 9225//7969 8805//7549 8804//7548 +f 9227//7971 9228//7972 9229//7973 9230//7974 +f 8802//7546 9227//7971 9230//7974 8800//7544 +f 9227//7971 8802//7546 8806//7550 9231//7975 +f 9228//7972 9227//7971 9231//7975 9232//7976 +f 9233//7977 8798//7542 8800//7544 9230//7974 +f 9234//7978 9233//7977 9230//7974 9229//7973 +f 9233//7977 9234//7978 8792//7536 8791//7535 +f 8798//7542 9233//7977 8791//7535 8768//7512 +f 9235//7979 7752//6497 7754//6499 9212//7956 +f 9236//7980 9235//7979 9212//7956 9187//7931 +f 9235//7979 9236//7980 9237//7981 9238//7982 +f 7752//6497 9235//7979 9238//7982 7750//6495 +f 9239//7983 9240//7984 9237//7981 9236//7980 +f 9186//7930 9239//7983 9236//7980 9187//7931 +f 9239//7983 9186//7930 9172//7916 9183//7927 +f 9240//7984 9239//7983 9183//7927 9182//7926 +f 9241//7985 7746//6491 7750//6495 9238//7982 +f 9242//7986 9241//7985 9238//7982 9237//7981 +f 9241//7985 9242//7986 7766//6511 7765//6510 +f 7746//6491 9241//7985 7765//6510 7747//6492 +f 9243//7987 9244//7988 7766//6511 9242//7986 +f 9240//7984 9243//7987 9242//7986 9237//7981 +f 9243//7987 9240//7984 9182//7926 9245//7989 +f 9244//7988 9243//7987 9245//7989 9246//7990 +f 9247//7991 7790//6535 7763//6508 7762//6507 +f 9244//7988 9247//7991 7762//6507 7766//6511 +f 9247//7991 9244//7988 9246//7990 9248//7992 +f 7790//6535 9247//7991 9248//7992 7791//6536 +f 9249//7993 9250//7994 9246//7990 9245//7989 +f 9181//7925 9249//7993 9245//7989 9182//7926 +f 9249//7993 9181//7925 9176//7920 9251//7995 +f 9250//7994 9249//7993 9251//7995 9252//7996 +f 9253//7997 9254//7998 7791//6536 9248//7992 +f 9250//7994 9253//7997 9248//7992 9246//7990 +f 9253//7997 9250//7994 9252//7996 9255//7999 +f 9254//7998 9253//7997 9255//7999 9256//8000 +f 9257//8001 9258//8002 9252//7996 9251//7995 +f 9175//7919 9257//8001 9251//7995 9176//7920 +f 9257//8001 9175//7919 9179//7923 9259//8003 +f 9258//8002 9257//8001 9259//8003 9260//8004 +f 9261//8005 9262//8006 7780//6525 7792//6537 +f 9254//7998 9261//8005 7792//6537 7791//6536 +f 9261//8005 9254//7998 9256//8000 9263//8007 +f 9262//8006 9261//8005 9263//8007 9264//8008 +f 9265//8009 9266//8010 9256//8000 9255//7999 +f 9258//8002 9265//8009 9255//7999 9252//7996 +f 9265//8009 9258//8002 9260//8004 9267//8011 +f 9266//8010 9265//8009 9267//8011 9268//8012 +f 9269//8013 9270//8014 9260//8004 9259//8003 +f 9191//7935 9269//8013 9259//8003 9179//7923 +f 9269//8013 9191//7935 9193//7937 9271//8015 +f 9270//8014 9269//8013 9271//8015 9272//8016 +f 9273//8017 9274//8018 7782//6527 7781//6526 +f 9262//8006 9273//8017 7781//6526 7780//6525 +f 9273//8017 9262//8006 9264//8008 9275//8019 +f 9274//8018 9273//8017 9275//8019 9276//8020 +f 9277//8021 9278//8022 9264//8008 9263//8007 +f 9266//8010 9277//8021 9263//8007 9256//8000 +f 9277//8021 9266//8010 9268//8012 9279//8023 +f 9278//8022 9277//8021 9279//8023 9280//8024 +f 9281//8025 9282//8026 9268//8012 9267//8011 +f 9270//8014 9281//8025 9267//8011 9260//8004 +f 9281//8025 9270//8014 9272//8016 9283//8027 +f 9282//8026 9281//8025 9283//8027 9284//8028 +f 9285//8029 7806//6551 7785//6530 7788//6533 +f 9274//8018 9285//8029 7788//6533 7782//6527 +f 9285//8029 9274//8018 9276//8020 9286//8030 +f 7806//6551 9285//8029 9286//8030 7807//6552 +f 9287//8031 9288//8032 9276//8020 9275//8019 +f 9278//8022 9287//8031 9275//8019 9264//8008 +f 9287//8031 9278//8022 9280//8024 9289//8033 +f 9288//8032 9287//8031 9289//8033 7838//6583 +f 9290//8034 7822//6567 7807//6552 9286//8030 +f 9288//8032 9290//8034 9286//8030 9276//8020 +f 9290//8034 9288//8032 7838//6583 7837//6582 +f 7822//6567 9290//8034 7837//6582 7823//6568 +f 9291//8035 9292//8036 7958//6703 7957//6702 +f 7834//6579 9291//8035 7957//6702 7835//6580 +f 9291//8035 7834//6579 7838//6583 9289//8033 +f 9292//8036 9291//8035 9289//8033 9280//8024 +f 9293//8037 9292//8036 9280//8024 9279//8023 +f 9282//8026 9293//8037 9279//8023 9268//8012 +f 9293//8037 9282//8026 9284//8028 9294//8038 +f 9292//8036 9293//8037 9294//8038 7958//6703 +f 9295//8039 9296//8040 7968//6713 7967//6712 +f 7956//6701 9295//8039 7967//6712 7954//6699 +f 9295//8039 7956//6701 7958//6703 9294//8038 +f 9296//8040 9295//8039 9294//8038 9284//8028 +f 9297//8041 9298//8042 8164//6909 8163//6908 +f 7966//6711 9297//8041 8163//6908 7964//6709 +f 9297//8041 7966//6711 7968//6713 9299//8043 +f 9298//8042 9297//8041 9299//8043 9300//8044 +f 9301//8045 9302//8046 9300//8044 9299//8043 +f 9296//8040 9301//8045 9299//8043 7968//6713 +f 9301//8045 9296//8040 9284//8028 9283//8027 +f 9302//8046 9301//8045 9283//8027 9272//8016 +f 9303//8047 9304//8048 8172//6917 8171//6916 +f 9298//8042 9303//8047 8171//6916 8164//6909 +f 9303//8047 9298//8042 9300//8044 9305//8049 +f 9304//8048 9303//8047 9305//8049 9201//7945 +f 9306//8050 9129//7873 8168//6913 8167//6912 +f 8170//6915 9306//8050 8167//6912 8160//6905 +f 9306//8050 8170//6915 8172//6917 9307//8051 +f 9129//7873 9306//8050 9307//8051 9130//7874 +f 9308//8052 9199//7943 9201//7945 9305//8049 +f 9302//8046 9308//8052 9305//8049 9300//8044 +f 9308//8052 9302//8046 9272//8016 9271//8015 +f 9199//7943 9308//8052 9271//8015 9193//7937 +f 9309//8053 9143//7887 9130//7874 9307//8051 +f 9304//8048 9309//8053 9307//8051 8172//6917 +f 9309//8053 9304//8048 9201//7945 9200//7944 +f 9143//7887 9309//8053 9200//7944 9144//7888 +f 9310//8054 9311//8055 8683//7427 8682//7426 +f 8689//7433 9310//8054 8682//7426 8679//7423 +f 9310//8054 8689//7433 8693//7437 8711//7455 +f 9311//8055 9310//8054 8711//7455 8710//7454 +f 9312//8056 9313//8057 8687//7431 8686//7430 +f 9311//8055 9312//8056 8686//7430 8683//7427 +f 9312//8056 9311//8055 8710//7454 9314//8058 +f 9313//8057 9312//8056 9314//8058 9315//8059 +f 9316//8060 9317//8061 9315//8059 9314//8058 +f 8709//7453 9316//8060 9314//8058 8710//7454 +f 9316//8060 8709//7453 8713//7457 9318//8062 +f 9317//8061 9316//8060 9318//8062 9319//8063 +f 9320//8064 9321//8065 9319//8063 9318//8062 +f 8715//7459 9320//8064 9318//8062 8713//7457 +f 9320//8064 8715//7459 8719//7463 8796//7540 +f 9321//8065 9320//8064 8796//7540 8795//7539 +f 9322//8066 9323//8067 8529//7273 8534//7278 +f 9324//8068 9322//8066 8534//7278 8533//7277 +f 9322//8066 9324//8068 8367//7112 8366//7111 +f 9323//8067 9322//8066 8366//7111 8363//7108 +f 9325//8069 8373//7118 8377//7122 8530//7274 +f 9323//8067 9325//8069 8530//7274 8529//7273 +f 9325//8069 9323//8067 8363//7108 8361//7106 +f 8373//7118 9325//8069 8361//7106 8360//7105 +f 9326//8070 9327//8071 7580//6325 7579//6324 +f 7560//6305 9326//8070 7579//6324 7561//6306 +f 9326//8070 7560//6305 7498//6243 9328//8072 +f 9327//8071 9326//8070 9328//8072 9329//8073 +f 9330//8074 9331//8075 9332//8076 9333//8077 +f 9334//8078 9330//8074 9333//8077 7504//6249 +f 9330//8074 9334//8078 9335//8079 9336//8080 +f 9331//8075 9330//8074 9336//8080 9337//8081 +f 9338//8082 9339//8083 9340//8084 9341//8085 +f 9334//8078 9338//8082 9341//8085 9335//8079 +f 9338//8082 9334//8078 7504//6249 7503//6248 +f 9339//8083 9338//8082 7503//6248 7502//6247 +f 9342//8086 9343//8087 9344//8088 9345//8089 +f 9339//8083 9342//8086 9345//8089 9340//8084 +f 9342//8086 9339//8083 7502//6247 7544//6289 +f 9343//8087 9342//8086 7544//6289 7543//6288 +f 9346//8090 9347//8091 9348//8092 9349//8093 +f 9343//8087 9346//8090 9349//8093 9344//8088 +f 9346//8090 9343//8087 7543//6288 7550//6295 +f 9347//8091 9346//8090 7550//6295 7549//6294 +f 9350//8094 9351//8095 9352//8096 9353//8097 +f 9347//8091 9350//8094 9353//8097 9348//8092 +f 9350//8094 9347//8091 7549//6294 7566//6311 +f 9351//8095 9350//8094 7566//6311 7565//6310 +f 9354//8098 9355//8099 9356//8100 9357//8101 +f 9351//8095 9354//8098 9357//8101 9352//8096 +f 9354//8098 9351//8095 7565//6310 7620//6365 +f 9355//8099 9354//8098 7620//6365 7619//6364 +f 9358//8102 9359//8103 9356//8100 9355//8099 +f 7632//6377 9358//8102 9355//8099 7619//6364 +f 9358//8102 7632//6377 7636//6381 9360//8104 +f 9359//8103 9358//8102 9360//8104 9361//8105 +f 9362//8106 9363//8107 9361//8105 9360//8104 +f 7794//6539 9362//8106 9360//8104 7636//6381 +f 9362//8106 7794//6539 7798//6543 9364//8108 +f 9363//8107 9362//8106 9364//8108 9365//8109 +f 9366//8110 9367//8111 9365//8109 9364//8108 +f 7800//6545 9366//8110 9364//8108 7798//6543 +f 9366//8110 7800//6545 7804//6549 9368//8112 +f 9367//8111 9366//8110 9368//8112 9369//8113 +f 9370//8114 9371//8115 9369//8113 9368//8112 +f 7810//6555 9370//8114 9368//8112 7804//6549 +f 9370//8114 7810//6555 7814//6559 9372//8116 +f 9371//8115 9370//8114 9372//8116 9373//8117 +f 9374//8118 9375//8119 9373//8117 9372//8116 +f 7816//6561 9374//8118 9372//8116 7814//6559 +f 9374//8118 7816//6561 7820//6565 9376//8120 +f 9375//8119 9374//8118 9376//8120 9377//8121 +f 9378//8122 9379//8123 9377//8121 9376//8120 +f 7844//6589 9378//8122 9376//8120 7820//6565 +f 9378//8122 7844//6589 7848//6593 9380//8124 +f 9379//8123 9378//8122 9380//8124 9381//8125 +f 9382//8126 9383//8127 9381//8125 9380//8124 +f 7850//6595 9382//8126 9380//8124 7848//6593 +f 9382//8126 7850//6595 7854//6599 9384//8128 +f 9383//8127 9382//8126 9384//8128 9385//8129 +f 9386//8130 9387//8131 9385//8129 9384//8128 +f 7860//6605 9386//8130 9384//8128 7854//6599 +f 9386//8130 7860//6605 7864//6609 9388//8132 +f 9387//8131 9386//8130 9388//8132 9389//8133 +f 9390//8134 9391//8135 9389//8133 9388//8132 +f 7870//6615 9390//8134 9388//8132 7864//6609 +f 9390//8134 7870//6615 7874//6619 9392//8136 +f 9391//8135 9390//8134 9392//8136 9393//8137 +f 9394//8138 9395//8139 9396//8140 9397//8141 +f 9392//8136 9394//8138 9397//8141 9393//8137 +f 9394//8138 9392//8136 7874//6619 7882//6627 +f 9395//8139 9394//8138 7882//6627 7881//6626 +f 9398//8142 9399//8143 9400//8144 9401//8145 +f 9395//8139 9398//8142 9401//8145 9396//8140 +f 9398//8142 9395//8139 7881//6626 7896//6641 +f 9399//8143 9398//8142 7896//6641 7895//6640 +f 9402//8146 9403//8147 9404//8148 9405//8149 +f 9399//8143 9402//8146 9405//8149 9400//8144 +f 9402//8146 9399//8143 7895//6640 7900//6645 +f 9403//8147 9402//8146 7900//6645 7519//6264 +f 9406//8150 9407//8151 9408//8152 9409//8153 +f 9403//8147 9406//8150 9409//8153 9404//8148 +f 9406//8150 9403//8147 7519//6264 7517//6262 +f 9407//8151 9406//8150 7517//6262 7516//6261 +f 9410//8154 9411//8155 9412//8156 9413//8157 +f 9407//8151 9410//8154 9413//8157 9408//8152 +f 9410//8154 9407//8151 7516//6261 9414//8158 +f 9411//8155 9410//8154 9414//8158 9415//8159 +f 9416//8160 9417//8161 9418//8162 9419//8163 +f 9411//8155 9416//8160 9419//8163 9412//8156 +f 9416//8160 9411//8155 9415//8159 9420//8164 +f 9417//8161 9416//8160 9420//8164 9421//8165 +f 9422//8166 9423//8167 8021//6766 8028//6773 +f 9424//8168 9422//8166 8028//6773 8027//6772 +f 9422//8166 9424//8168 9421//8165 9420//8164 +f 9423//8167 9422//8166 9420//8164 9415//8159 +f 9425//8169 7515//6260 7522//6267 8022//6767 +f 9423//8167 9425//8169 8022//6767 8021//6766 +f 9425//8169 9423//8167 9415//8159 9414//8158 +f 7515//6260 9425//8169 9414//8158 7516//6261 +f 9426//8170 9226//7970 7724//6469 7723//6468 +f 9427//8171 9426//8170 7723//6468 7722//6467 +f 9426//8170 9427//8171 9232//7976 9231//7975 +f 9226//7970 9426//8170 9231//7975 8806//7550 +f 9428//8172 7497//6242 7504//6249 9333//8077 +f 9429//8173 9428//8172 9333//8077 9332//8076 +f 9428//8172 9429//8173 9329//8073 9328//8072 +f 7497//6242 9428//8172 9328//8072 7498//6243 +f 9430//8174 7904//6649 7898//6643 7897//6642 +f 7890//6635 9430//8174 7897//6642 7884//6629 +f 9430//8174 7890//6635 7892//6637 7920//6665 +f 7904//6649 9430//8174 7920//6665 7905//6650 +f 9431//8175 9432//8176 9433//8177 9434//8178 +f 9435//8179 9431//8175 9434//8178 9436//8180 +f 9431//8175 9435//8179 9437//8181 9438//8182 +f 9432//8176 9431//8175 9438//8182 9439//8183 +f 9440//8184 9441//8185 9442//8186 9443//8187 +f 9444//8188 9440//8184 9443//8187 9445//8189 +f 9440//8184 9444//8188 9446//8190 9447//8191 +f 9441//8185 9440//8184 9447//8191 9448//8192 +f 9449//8193 9450//8194 9451//8195 9452//8196 +f 9453//8197 9449//8193 9452//8196 9454//8198 +f 9449//8193 9453//8197 9455//8199 9456//8200 +f 9450//8194 9449//8193 9456//8200 9457//8201 +f 9458//8202 9459//8203 9460//8204 9461//8205 +f 9462//8206 9458//8202 9461//8205 9463//8207 +f 9458//8202 9462//8206 9464//8208 9465//8209 +f 9459//8203 9458//8202 9465//8209 9466//8210 +f 9467//8211 9468//8212 9469//8213 9470//8214 +f 9471//8215 9467//8211 9470//8214 9472//8216 +f 9467//8211 9471//8215 9473//8217 9474//8218 +f 9468//8212 9467//8211 9474//8218 9475//8219 +f 9476//8220 9477//8221 9478//8222 9479//8223 +f 9435//8179 9476//8220 9479//8223 9437//8181 +f 9476//8220 9435//8179 9436//8180 9480//8224 +f 9477//8221 9476//8220 9480//8224 9481//8225 +f 9482//8226 9483//8227 9484//8228 9485//8229 +f 9477//8221 9482//8226 9485//8229 9478//8222 +f 9482//8226 9477//8221 9481//8225 9486//8230 +f 9483//8227 9482//8226 9486//8230 9487//8231 +f 9488//8232 9489//8233 9481//8225 9480//8224 +f 9490//8234 9488//8232 9480//8224 9436//8180 +f 9488//8232 9490//8234 9491//8235 9492//8236 +f 9489//8233 9488//8232 9492//8236 9493//8237 +f 9494//8238 9495//8239 9496//8240 9497//8241 +f 9490//8234 9494//8238 9497//8241 9491//8235 +f 9494//8238 9490//8234 9436//8180 9434//8178 +f 9495//8239 9494//8238 9434//8178 9433//8177 +f 9498//8242 9499//8243 9500//8244 9501//8245 +f 9483//8227 9498//8242 9501//8245 9484//8228 +f 9498//8242 9483//8227 9487//8231 9502//8246 +f 9499//8243 9498//8242 9502//8246 9503//8247 +f 9504//8248 9505//8249 9491//8235 9497//8241 +f 9506//8250 9504//8248 9497//8241 9496//8240 +f 9504//8248 9506//8250 9507//8251 9508//8252 +f 9505//8249 9504//8248 9508//8252 9509//8253 +f 9510//8254 9511//8255 9512//8256 9513//8257 +f 9506//8250 9510//8254 9513//8257 9507//8251 +f 9510//8254 9506//8250 9496//8240 9514//8258 +f 9511//8255 9510//8254 9514//8258 9515//8259 +f 9516//8260 9517//8261 9507//8251 9513//8257 +f 9518//8262 9516//8260 9513//8257 9512//8256 +f 9516//8260 9518//8262 9519//8263 9520//8264 +f 9517//8261 9516//8260 9520//8264 9521//8265 +f 9522//8266 9523//8267 9521//8265 9520//8264 +f 9524//8268 9522//8266 9520//8264 9519//8263 +f 9522//8266 9524//8268 9525//8269 9526//8270 +f 9523//8267 9522//8266 9526//8270 9527//8271 +f 9528//8272 9529//8273 9509//8253 9508//8252 +f 9517//8261 9528//8272 9508//8252 9507//8251 +f 9528//8272 9517//8261 9521//8265 9530//8274 +f 9529//8273 9528//8272 9530//8274 9531//8275 +f 9532//8276 9533//8277 9493//8237 9492//8236 +f 9505//8249 9532//8276 9492//8236 9491//8235 +f 9532//8276 9505//8249 9509//8253 9534//8278 +f 9533//8277 9532//8276 9534//8278 9535//8279 +f 9536//8280 9537//8281 9487//8231 9486//8230 +f 9489//8233 9536//8280 9486//8230 9481//8225 +f 9536//8280 9489//8233 9493//8237 9538//8282 +f 9537//8281 9536//8280 9538//8282 9539//8283 +f 9540//8284 9541//8285 9503//8247 9502//8246 +f 9537//8281 9540//8284 9502//8246 9487//8231 +f 9540//8284 9537//8281 9539//8283 9542//8286 +f 9541//8285 9540//8284 9542//8286 9543//8287 +f 9544//8288 9545//8289 9539//8283 9538//8282 +f 9533//8277 9544//8288 9538//8282 9493//8237 +f 9544//8288 9533//8277 9535//8279 9546//8290 +f 9545//8289 9544//8288 9546//8290 9547//8291 +f 9548//8292 9549//8293 9535//8279 9534//8278 +f 9529//8273 9548//8292 9534//8278 9509//8253 +f 9548//8292 9529//8273 9531//8275 9550//8294 +f 9549//8293 9548//8292 9550//8294 9551//8295 +f 9552//8296 9553//8297 9554//8298 9555//8299 +f 9499//8243 9552//8296 9555//8299 9500//8244 +f 9552//8296 9499//8243 9503//8247 9556//8300 +f 9553//8297 9552//8296 9556//8300 9557//8301 +f 9558//8302 9559//8303 9557//8301 9556//8300 +f 9541//8285 9558//8302 9556//8300 9503//8247 +f 9558//8302 9541//8285 9543//8287 9560//8304 +f 9559//8303 9558//8302 9560//8304 9561//8305 +f 9562//8306 9563//8307 9543//8287 9542//8286 +f 9545//8289 9562//8306 9542//8286 9539//8283 +f 9562//8306 9545//8289 9547//8291 9564//8308 +f 9563//8307 9562//8306 9564//8308 9565//8309 +f 9566//8310 9567//8311 9554//8298 9553//8297 +f 9568//8312 9566//8310 9553//8297 9557//8301 +f 9566//8310 9568//8312 9569//8313 9570//8314 +f 9567//8311 9566//8310 9570//8314 9571//8315 +f 9572//8316 9573//8317 9547//8291 9546//8290 +f 9549//8293 9572//8316 9546//8290 9535//8279 +f 9572//8316 9549//8293 9551//8295 9574//8318 +f 9573//8317 9572//8316 9574//8318 9575//8319 +f 9576//8320 9577//8321 9531//8275 9530//8274 +f 9523//8267 9576//8320 9530//8274 9521//8265 +f 9576//8320 9523//8267 9527//8271 9578//8322 +f 9577//8321 9576//8320 9578//8322 9579//8323 +f 9580//8324 9581//8325 9582//8326 9583//8327 +f 9584//8328 9580//8324 9583//8327 9585//8329 +f 9580//8324 9584//8328 9527//8271 9526//8270 +f 9581//8325 9580//8324 9526//8270 9525//8269 +f 9586//8330 9587//8331 9585//8329 9583//8327 +f 9588//8332 9586//8330 9583//8327 9582//8326 +f 9586//8330 9588//8332 9589//8333 9590//8334 +f 9587//8331 9586//8330 9590//8334 9591//8335 +f 9592//8336 9593//8337 9579//8323 9578//8322 +f 9584//8328 9592//8336 9578//8322 9527//8271 +f 9592//8336 9584//8328 9585//8329 9594//8338 +f 9593//8337 9592//8336 9594//8338 9595//8339 +f 9596//8340 9597//8341 9551//8295 9550//8294 +f 9577//8321 9596//8340 9550//8294 9531//8275 +f 9596//8340 9577//8321 9579//8323 9598//8342 +f 9597//8341 9596//8340 9598//8342 9599//8343 +f 9600//8344 9601//8345 9565//8309 9564//8308 +f 9573//8317 9600//8344 9564//8308 9547//8291 +f 9600//8344 9573//8317 9575//8319 9602//8346 +f 9601//8345 9600//8344 9602//8346 9603//8347 +f 9604//8348 9605//8349 9575//8319 9574//8318 +f 9597//8341 9604//8348 9574//8318 9551//8295 +f 9604//8348 9597//8341 9599//8343 9606//8350 +f 9605//8349 9604//8348 9606//8350 9607//8351 +f 9608//8352 9609//8353 9599//8343 9598//8342 +f 9593//8337 9608//8352 9598//8342 9579//8323 +f 9608//8352 9593//8337 9595//8339 9610//8354 +f 9609//8353 9608//8352 9610//8354 9611//8355 +f 9612//8356 9613//8357 9595//8339 9594//8338 +f 9587//8331 9612//8356 9594//8338 9585//8329 +f 9612//8356 9587//8331 9591//8335 9614//8358 +f 9613//8357 9612//8356 9614//8358 9615//8359 +f 9616//8360 9617//8361 9607//8351 9606//8350 +f 9609//8353 9616//8360 9606//8350 9599//8343 +f 9616//8360 9609//8353 9611//8355 9618//8362 +f 9617//8361 9616//8360 9618//8362 9619//8363 +f 9620//8364 9621//8365 9611//8355 9610//8354 +f 9613//8357 9620//8364 9610//8354 9595//8339 +f 9620//8364 9613//8357 9615//8359 9622//8366 +f 9621//8365 9620//8364 9622//8366 9623//8367 +f 9624//8368 9625//8369 9615//8359 9614//8358 +f 9626//8370 9624//8368 9614//8358 9591//8335 +f 9624//8368 9626//8370 9627//8371 9628//8372 +f 9625//8369 9624//8368 9628//8372 9629//8373 +f 9630//8374 9631//8375 9632//8376 9633//8377 +f 9626//8370 9630//8374 9633//8377 9627//8371 +f 9630//8374 9626//8370 9591//8335 9590//8334 +f 9631//8375 9630//8374 9590//8334 9589//8333 +f 9634//8378 9635//8379 9627//8371 9633//8377 +f 9636//8380 9634//8378 9633//8377 9632//8376 +f 9634//8378 9636//8380 9637//8381 9638//8382 +f 9635//8379 9634//8378 9638//8382 9639//8383 +f 9640//8384 9641//8385 9639//8383 9638//8382 +f 9642//8386 9640//8384 9638//8382 9637//8381 +f 9640//8384 9642//8386 9643//8387 9644//8388 +f 9641//8385 9640//8384 9644//8388 9645//8389 +f 9646//8390 9647//8391 9629//8373 9628//8372 +f 9635//8379 9646//8390 9628//8372 9627//8371 +f 9646//8390 9635//8379 9639//8383 9648//8392 +f 9647//8391 9646//8390 9648//8392 9649//8393 +f 9650//8394 9651//8395 9623//8367 9622//8366 +f 9625//8369 9650//8394 9622//8366 9615//8359 +f 9650//8394 9625//8369 9629//8373 9652//8396 +f 9651//8395 9650//8394 9652//8396 9653//8397 +f 9654//8398 9655//8399 9645//8389 9644//8388 +f 9656//8400 9654//8398 9644//8388 9643//8387 +f 9654//8398 9656//8400 9657//8401 9658//8402 +f 9655//8399 9654//8398 9658//8402 9659//8403 +f 9660//8404 9661//8405 9649//8393 9648//8392 +f 9641//8385 9660//8404 9648//8392 9639//8383 +f 9660//8404 9641//8385 9645//8389 9662//8406 +f 9661//8405 9660//8404 9662//8406 9663//8407 +f 9664//8408 9665//8409 9653//8397 9652//8396 +f 9647//8391 9664//8408 9652//8396 9629//8373 +f 9664//8408 9647//8391 9649//8393 9666//8410 +f 9665//8409 9664//8408 9666//8410 9667//8411 +f 9668//8412 9669//8413 9619//8363 9618//8362 +f 9621//8365 9668//8412 9618//8362 9611//8355 +f 9668//8412 9621//8365 9623//8367 9670//8414 +f 9669//8413 9668//8412 9670//8414 9671//8415 +f 9672//8416 9673//8417 9671//8415 9670//8414 +f 9651//8395 9672//8416 9670//8414 9623//8367 +f 9672//8416 9651//8395 9653//8397 9674//8418 +f 9673//8417 9672//8416 9674//8418 9675//8419 +f 9676//8420 9677//8421 9675//8419 9674//8418 +f 9665//8409 9676//8420 9674//8418 9653//8397 +f 9676//8420 9665//8409 9667//8411 9678//8422 +f 9677//8421 9676//8420 9678//8422 9679//8423 +f 9680//8424 9681//8425 9682//8426 9683//8427 +f 9669//8413 9680//8424 9683//8427 9619//8363 +f 9680//8424 9669//8413 9671//8415 9684//8428 +f 9681//8425 9680//8424 9684//8428 9685//8429 +f 9686//8430 9687//8431 9685//8429 9684//8428 +f 9673//8417 9686//8430 9684//8428 9671//8415 +f 9686//8430 9673//8417 9675//8419 9688//8432 +f 9687//8431 9686//8430 9688//8432 9689//8433 +f 9690//8434 9691//8435 9692//8436 9693//8437 +f 9617//8361 9690//8434 9693//8437 9607//8351 +f 9690//8434 9617//8361 9619//8363 9683//8427 +f 9691//8435 9690//8434 9683//8427 9682//8426 +f 9694//8438 9605//8349 9607//8351 9693//8437 +f 9695//8439 9694//8438 9693//8437 9692//8436 +f 9694//8438 9695//8439 9603//8347 9602//8346 +f 9605//8349 9694//8438 9602//8346 9575//8319 +f 9696//8440 9697//8441 9698//8442 9699//8443 +f 9691//8435 9696//8440 9699//8443 9692//8436 +f 9696//8440 9691//8435 9682//8426 9700//8444 +f 9697//8441 9696//8440 9700//8444 9701//8445 +f 9702//8446 9703//8447 9704//8448 9705//8449 +f 9695//8439 9702//8446 9705//8449 9603//8347 +f 9702//8446 9695//8439 9692//8436 9699//8443 +f 9703//8447 9702//8446 9699//8443 9698//8442 +f 9706//8450 9707//8451 9708//8452 9709//8453 +f 9601//8345 9706//8450 9709//8453 9565//8309 +f 9706//8450 9601//8345 9603//8347 9705//8449 +f 9707//8451 9706//8450 9705//8449 9704//8448 +f 9710//8454 9563//8307 9565//8309 9709//8453 +f 9711//8455 9710//8454 9709//8453 9708//8452 +f 9710//8454 9711//8455 9561//8305 9560//8304 +f 9563//8307 9710//8454 9560//8304 9543//8287 +f 9712//8456 9713//8457 9708//8452 9707//8451 +f 9714//8458 9712//8456 9707//8451 9704//8448 +f 9712//8456 9714//8458 9715//8459 9716//8460 +f 9713//8457 9712//8456 9716//8460 9717//8461 +f 9718//8462 9568//8312 9557//8301 9559//8303 +f 9719//8463 9718//8462 9559//8303 9561//8305 +f 9718//8462 9719//8463 9720//8464 9721//8465 +f 9568//8312 9718//8462 9721//8465 9569//8313 +f 9722//8466 9719//8463 9561//8305 9711//8455 +f 9713//8457 9722//8466 9711//8455 9708//8452 +f 9722//8466 9713//8457 9717//8461 9723//8467 +f 9719//8463 9722//8466 9723//8467 9720//8464 +f 9724//8468 9725//8469 9726//8470 9727//8471 +f 9714//8458 9724//8468 9727//8471 9715//8459 +f 9724//8468 9714//8458 9704//8448 9703//8447 +f 9725//8469 9724//8468 9703//8447 9698//8442 +f 9728//8472 9729//8473 9571//8315 9570//8314 +f 9730//8474 9728//8472 9570//8314 9569//8313 +f 9728//8472 9730//8474 9731//8475 9732//8476 +f 9729//8473 9728//8472 9732//8476 9733//8477 +f 9734//8478 9735//8479 9733//8477 9732//8476 +f 9736//8480 9734//8478 9732//8476 9731//8475 +f 9734//8478 9736//8480 9737//8481 9738//8482 +f 9735//8479 9734//8478 9738//8482 9739//8483 +f 9740//8484 9741//8485 9742//8486 9743//8487 +f 9730//8474 9740//8484 9743//8487 9731//8475 +f 9740//8484 9730//8474 9569//8313 9721//8465 +f 9741//8485 9740//8484 9721//8465 9720//8464 +f 9744//8488 9745//8489 9739//8483 9738//8482 +f 9746//8490 9744//8488 9738//8482 9737//8481 +f 9744//8488 9746//8490 9747//8491 9748//8492 +f 9745//8489 9744//8488 9748//8492 9749//8493 +f 9750//8494 9751//8495 9749//8493 9748//8492 +f 9752//8496 9750//8494 9748//8492 9747//8491 +f 9750//8494 9752//8496 9753//8497 9754//8498 +f 9751//8495 9750//8494 9754//8498 9755//8499 +f 9756//8500 9757//8501 9758//8502 9759//8503 +f 9736//8480 9756//8500 9759//8503 9737//8481 +f 9756//8500 9736//8480 9731//8475 9743//8487 +f 9757//8501 9756//8500 9743//8487 9742//8486 +f 9760//8504 9761//8505 9762//8506 9763//8507 +f 9746//8490 9760//8504 9763//8507 9747//8491 +f 9760//8504 9746//8490 9737//8481 9759//8503 +f 9761//8505 9760//8504 9759//8503 9758//8502 +f 9764//8508 9752//8496 9747//8491 9763//8507 +f 9765//8509 9764//8508 9763//8507 9762//8506 +f 9764//8508 9765//8509 9766//8510 9767//8511 +f 9752//8496 9764//8508 9767//8511 9753//8497 +f 9768//8512 9769//8513 9770//8514 9771//8515 +f 9761//8505 9768//8512 9771//8515 9762//8506 +f 9768//8512 9761//8505 9758//8502 9772//8516 +f 9769//8513 9768//8512 9772//8516 9773//8517 +f 9774//8518 9765//8509 9762//8506 9771//8515 +f 9775//8519 9774//8518 9771//8515 9770//8514 +f 9774//8518 9775//8519 9776//8520 9777//8521 +f 9765//8509 9774//8518 9777//8521 9766//8510 +f 9778//8522 9779//8523 9755//8499 9754//8498 +f 9780//8524 9778//8522 9754//8498 9753//8497 +f 9778//8522 9780//8524 9781//8525 9782//8526 +f 9779//8523 9778//8522 9782//8526 9783//8527 +f 9784//8528 9785//8529 9783//8527 9782//8526 +f 9786//8530 9784//8528 9782//8526 9781//8525 +f 9784//8528 9786//8530 9787//8531 9788//8532 +f 9785//8529 9784//8528 9788//8532 9789//8533 +f 9790//8534 9780//8524 9753//8497 9767//8511 +f 9791//8535 9790//8534 9767//8511 9766//8510 +f 9790//8534 9791//8535 9792//8536 9793//8537 +f 9780//8524 9790//8534 9793//8537 9781//8525 +f 9794//8538 9795//8539 9789//8533 9788//8532 +f 9796//8540 9794//8538 9788//8532 9787//8531 +f 9794//8538 9796//8540 9797//8541 9798//8542 +f 9795//8539 9794//8538 9798//8542 9799//8543 +f 9800//8544 9786//8530 9781//8525 9793//8537 +f 9801//8545 9800//8544 9793//8537 9792//8536 +f 9800//8544 9801//8545 9802//8546 9803//8547 +f 9786//8530 9800//8544 9803//8547 9787//8531 +f 9804//8548 9805//8549 9799//8543 9798//8542 +f 9806//8550 9804//8548 9798//8542 9797//8541 +f 9804//8548 9806//8550 9807//8551 9808//8552 +f 9805//8549 9804//8548 9808//8552 9809//8553 +f 9810//8554 9796//8540 9787//8531 9803//8547 +f 9811//8555 9810//8554 9803//8547 9802//8546 +f 9810//8554 9811//8555 9812//8556 9813//8557 +f 9796//8540 9810//8554 9813//8557 9797//8541 +f 9814//8558 9815//8559 9816//8560 9817//8561 +f 9808//8552 9814//8558 9817//8561 9809//8553 +f 9814//8558 9808//8552 9807//8551 9818//8562 +f 9815//8559 9814//8558 9818//8562 9819//8563 +f 9820//8564 9821//8565 9822//8566 9823//8567 +f 9806//8550 9820//8564 9823//8567 9807//8551 +f 9820//8564 9806//8550 9797//8541 9813//8557 +f 9821//8565 9820//8564 9813//8557 9812//8556 +f 9824//8568 9825//8569 9819//8563 9818//8562 +f 9823//8567 9824//8568 9818//8562 9807//8551 +f 9824//8568 9823//8567 9822//8566 9826//8570 +f 9825//8569 9824//8568 9826//8570 9827//8571 +f 9828//8572 9829//8573 9830//8574 9831//8575 +f 9815//8559 9828//8572 9831//8575 9816//8560 +f 9828//8572 9815//8559 9819//8563 9832//8576 +f 9829//8573 9828//8572 9832//8576 9833//8577 +f 9834//8578 9453//8197 9454//8198 9835//8579 +f 9829//8573 9834//8578 9835//8579 9830//8574 +f 9834//8578 9829//8573 9833//8577 9836//8580 +f 9453//8197 9834//8578 9836//8580 9455//8199 +f 9837//8581 9838//8582 9455//8199 9836//8580 +f 9839//8583 9837//8581 9836//8580 9833//8577 +f 9837//8581 9839//8583 9840//8584 9841//8585 +f 9838//8582 9837//8581 9841//8585 9842//8586 +f 9843//8587 9844//8588 9827//8571 9826//8570 +f 9845//8589 9843//8587 9826//8570 9822//8566 +f 9843//8587 9845//8589 9846//8590 9847//8591 +f 9844//8588 9843//8587 9847//8591 9848//8592 +f 9849//8593 9850//8594 9846//8590 9845//8589 +f 9821//8565 9849//8593 9845//8589 9822//8566 +f 9849//8593 9821//8565 9812//8556 9851//8595 +f 9850//8594 9849//8593 9851//8595 9852//8596 +f 9853//8597 9854//8598 9840//8584 9855//8599 +f 9844//8588 9853//8597 9855//8599 9827//8571 +f 9853//8597 9844//8588 9848//8592 9856//8600 +f 9854//8598 9853//8597 9856//8600 9857//8601 +f 9858//8602 9859//8603 9852//8596 9851//8595 +f 9811//8555 9858//8602 9851//8595 9812//8556 +f 9858//8602 9811//8555 9802//8546 9860//8604 +f 9859//8603 9858//8602 9860//8604 9861//8605 +f 9862//8606 9863//8607 9848//8592 9847//8591 +f 9864//8608 9862//8606 9847//8591 9846//8590 +f 9862//8606 9864//8608 9865//8609 9866//8610 +f 9863//8607 9862//8606 9866//8610 9867//8611 +f 9868//8612 9869//8613 9865//8609 9864//8608 +f 9850//8594 9868//8612 9864//8608 9846//8590 +f 9868//8612 9850//8594 9852//8596 9870//8614 +f 9869//8613 9868//8612 9870//8614 9871//8615 +f 9872//8616 9873//8617 9861//8605 9860//8604 +f 9801//8545 9872//8616 9860//8604 9802//8546 +f 9872//8616 9801//8545 9792//8536 9874//8618 +f 9873//8617 9872//8616 9874//8618 9875//8619 +f 9876//8620 9877//8621 9871//8615 9870//8614 +f 9859//8603 9876//8620 9870//8614 9852//8596 +f 9876//8620 9859//8603 9861//8605 9878//8622 +f 9877//8621 9876//8620 9878//8622 9879//8623 +f 9880//8624 9881//8625 9875//8619 9874//8618 +f 9791//8535 9880//8624 9874//8618 9792//8536 +f 9880//8624 9791//8535 9766//8510 9777//8521 +f 9881//8625 9880//8624 9777//8521 9776//8520 +f 9882//8626 9883//8627 9879//8623 9878//8622 +f 9873//8617 9882//8626 9878//8622 9861//8605 +f 9882//8626 9873//8617 9875//8619 9884//8628 +f 9883//8627 9882//8626 9884//8628 9885//8629 +f 9886//8630 9887//8631 9885//8629 9884//8628 +f 9881//8625 9886//8630 9884//8628 9875//8619 +f 9886//8630 9881//8625 9776//8520 9888//8632 +f 9887//8631 9886//8630 9888//8632 9889//8633 +f 9890//8634 9891//8635 9889//8633 9888//8632 +f 9775//8519 9890//8634 9888//8632 9776//8520 +f 9890//8634 9775//8519 9770//8514 9892//8636 +f 9891//8635 9890//8634 9892//8636 9893//8637 +f 9894//8638 9895//8639 9896//8640 9897//8641 +f 9883//8627 9894//8638 9897//8641 9879//8623 +f 9894//8638 9883//8627 9885//8629 9898//8642 +f 9895//8639 9894//8638 9898//8642 9899//8643 +f 9900//8644 9901//8645 9899//8643 9898//8642 +f 9887//8631 9900//8644 9898//8642 9885//8629 +f 9900//8644 9887//8631 9889//8633 9902//8646 +f 9901//8645 9900//8644 9902//8646 9903//8647 +f 9904//8648 9905//8649 9906//8650 9907//8651 +f 9877//8621 9904//8648 9907//8651 9871//8615 +f 9904//8648 9877//8621 9879//8623 9897//8641 +f 9905//8649 9904//8648 9897//8641 9896//8640 +f 9908//8652 9869//8613 9871//8615 9907//8651 +f 9909//8653 9908//8652 9907//8651 9906//8650 +f 9908//8652 9909//8653 9910//8654 9911//8655 +f 9869//8613 9908//8652 9911//8655 9865//8609 +f 9912//8656 9913//8657 9914//8658 9915//8659 +f 9905//8649 9912//8656 9915//8659 9906//8650 +f 9912//8656 9905//8649 9896//8640 9916//8660 +f 9913//8657 9912//8656 9916//8660 9917//8661 +f 9918//8662 9919//8663 9867//8611 9866//8610 +f 9911//8655 9918//8662 9866//8610 9865//8609 +f 9918//8662 9911//8655 9910//8654 9920//8664 +f 9919//8663 9918//8662 9920//8664 9921//8665 +f 9922//8666 9923//8667 9924//8668 9925//8669 +f 9909//8653 9922//8666 9925//8669 9910//8654 +f 9922//8666 9909//8653 9906//8650 9915//8659 +f 9923//8667 9922//8666 9915//8659 9914//8658 +f 9926//8670 9927//8671 9921//8665 9920//8664 +f 9925//8669 9926//8670 9920//8664 9910//8654 +f 9926//8670 9925//8669 9924//8668 9928//8672 +f 9927//8671 9926//8670 9928//8672 9929//8673 +f 9930//8674 9931//8675 9857//8601 9856//8600 +f 9863//8607 9930//8674 9856//8600 9848//8592 +f 9930//8674 9863//8607 9867//8611 9932//8676 +f 9931//8675 9930//8674 9932//8676 9933//8677 +f 9934//8678 9935//8679 9933//8677 9932//8676 +f 9919//8663 9934//8678 9932//8676 9867//8611 +f 9934//8678 9919//8663 9921//8665 9936//8680 +f 9935//8679 9934//8678 9936//8680 9937//8681 +f 9938//8682 9939//8683 9842//8586 9841//8585 +f 9854//8598 9938//8682 9841//8585 9840//8584 +f 9938//8682 9854//8598 9857//8601 9940//8684 +f 9939//8683 9938//8682 9940//8684 9941//8685 +f 9942//8686 9943//8687 9457//8201 9456//8200 +f 9838//8582 9942//8686 9456//8200 9455//8199 +f 9942//8686 9838//8582 9842//8586 9944//8688 +f 9943//8687 9942//8686 9944//8688 9945//8689 +f 9946//8690 9947//8691 9941//8685 9940//8684 +f 9931//8675 9946//8690 9940//8684 9857//8601 +f 9946//8690 9931//8675 9933//8677 9948//8692 +f 9947//8691 9946//8690 9948//8692 9949//8693 +f 9950//8694 9951//8695 9945//8689 9944//8688 +f 9939//8683 9950//8694 9944//8688 9842//8586 +f 9950//8694 9939//8683 9941//8685 9952//8696 +f 9951//8695 9950//8694 9952//8696 9953//8697 +f 9954//8698 9955//8699 9956//8700 9957//8701 +f 9943//8687 9954//8698 9957//8701 9457//8201 +f 9954//8698 9943//8687 9945//8689 9958//8702 +f 9955//8699 9954//8698 9958//8702 9959//8703 +f 9960//8704 9961//8705 9962//8706 9963//8707 +f 9955//8699 9960//8704 9963//8707 9956//8700 +f 9960//8704 9955//8699 9959//8703 9964//8708 +f 9961//8705 9960//8704 9964//8708 9965//8709 +f 9966//8710 9967//8711 9959//8703 9958//8702 +f 9951//8695 9966//8710 9958//8702 9945//8689 +f 9966//8710 9951//8695 9953//8697 9968//8712 +f 9967//8711 9966//8710 9968//8712 9969//8713 +f 9970//8714 9971//8715 9953//8697 9952//8696 +f 9947//8691 9970//8714 9952//8696 9941//8685 +f 9970//8714 9947//8691 9949//8693 9972//8716 +f 9971//8715 9970//8714 9972//8716 9973//8717 +f 9974//8718 9975//8719 9965//8709 9964//8708 +f 9967//8711 9974//8718 9964//8708 9959//8703 +f 9974//8718 9967//8711 9969//8713 9976//8720 +f 9975//8719 9974//8718 9976//8720 9977//8721 +f 9978//8722 9979//8723 9969//8713 9968//8712 +f 9971//8715 9978//8722 9968//8712 9953//8697 +f 9978//8722 9971//8715 9973//8717 9980//8724 +f 9979//8723 9978//8722 9980//8724 9981//8725 +f 9982//8726 9983//8727 9977//8721 9976//8720 +f 9979//8723 9982//8726 9976//8720 9969//8713 +f 9982//8726 9979//8723 9981//8725 9984//8728 +f 9983//8727 9982//8726 9984//8728 9985//8729 +f 9986//8730 9987//8731 9973//8717 9972//8716 +f 9988//8732 9986//8730 9972//8716 9949//8693 +f 9986//8730 9988//8732 9989//8733 9990//8734 +f 9987//8731 9986//8730 9990//8734 9991//8735 +f 9992//8736 9993//8737 9985//8729 9984//8728 +f 9994//8738 9992//8736 9984//8728 9981//8725 +f 9992//8736 9994//8738 9995//8739 9996//8740 +f 9993//8737 9992//8736 9996//8740 9997//8741 +f 9998//8742 9994//8738 9981//8725 9980//8724 +f 9987//8731 9998//8742 9980//8724 9973//8717 +f 9998//8742 9987//8731 9991//8735 9999//8743 +f 9994//8738 9998//8742 9999//8743 9995//8739 +f 10000//8744 10001//8745 9997//8741 9996//8740 +f 10002//8746 10000//8744 9996//8740 9995//8739 +f 10000//8744 10002//8746 10003//8747 10004//8748 +f 10001//8745 10000//8744 10004//8748 10005//8749 +f 10006//8750 10002//8746 9995//8739 9999//8743 +f 10007//8751 10006//8750 9999//8743 9991//8735 +f 10006//8750 10007//8751 10008//8752 10009//8753 +f 10002//8746 10006//8750 10009//8753 10003//8747 +f 10010//8754 10011//8755 10005//8749 10004//8748 +f 10012//8756 10010//8754 10004//8748 10003//8747 +f 10010//8754 10012//8756 10013//8757 10014//8758 +f 10011//8755 10010//8754 10014//8758 10015//8759 +f 10016//8760 10017//8761 10015//8759 10014//8758 +f 10018//8762 10016//8760 10014//8758 10013//8757 +f 10016//8760 10018//8762 10019//8763 10020//8764 +f 10017//8761 10016//8760 10020//8764 10021//8765 +f 10022//8766 10023//8767 10024//8768 10025//8769 +f 10012//8756 10022//8766 10025//8769 10013//8757 +f 10022//8766 10012//8756 10003//8747 10009//8753 +f 10023//8767 10022//8766 10009//8753 10008//8752 +f 10026//8770 10018//8762 10013//8757 10025//8769 +f 10027//8771 10026//8770 10025//8769 10024//8768 +f 10026//8770 10027//8771 10028//8772 10029//8773 +f 10018//8762 10026//8770 10029//8773 10019//8763 +f 10030//8774 10031//8775 10019//8763 10029//8773 +f 10032//8776 10030//8774 10029//8773 10028//8772 +f 10030//8774 10032//8776 10033//8777 10034//8778 +f 10031//8775 10030//8774 10034//8778 10035//8779 +f 10036//8780 10037//8781 10038//8782 10039//8783 +f 10027//8771 10036//8780 10039//8783 10028//8772 +f 10036//8780 10027//8771 10024//8768 10040//8784 +f 10037//8781 10036//8780 10040//8784 10041//8785 +f 10042//8786 10043//8787 10044//8788 10045//8789 +f 10032//8776 10042//8786 10045//8789 10033//8777 +f 10042//8786 10032//8776 10028//8772 10039//8783 +f 10043//8787 10042//8786 10039//8783 10038//8782 +f 10046//8790 10047//8791 10041//8785 10040//8784 +f 10023//8767 10046//8790 10040//8784 10024//8768 +f 10046//8790 10023//8767 10008//8752 10048//8792 +f 10047//8791 10046//8790 10048//8792 10049//8793 +f 10050//8794 10051//8795 10049//8793 10048//8792 +f 10007//8751 10050//8794 10048//8792 10008//8752 +f 10050//8794 10007//8751 9991//8735 9990//8734 +f 10051//8795 10050//8794 9990//8734 9989//8733 +f 10052//8796 10053//8797 10054//8798 10055//8799 +f 10037//8781 10052//8796 10055//8799 10038//8782 +f 10052//8796 10037//8781 10041//8785 10056//8800 +f 10053//8797 10052//8796 10056//8800 10057//8801 +f 10058//8802 10059//8803 10057//8801 10056//8800 +f 10047//8791 10058//8802 10056//8800 10041//8785 +f 10058//8802 10047//8791 10049//8793 10060//8804 +f 10059//8803 10058//8802 10060//8804 10061//8805 +f 10062//8806 10063//8807 10061//8805 10060//8804 +f 10051//8795 10062//8806 10060//8804 10049//8793 +f 10062//8806 10051//8795 9989//8733 10064//8808 +f 10063//8807 10062//8806 10064//8808 9937//8681 +f 10065//8809 9935//8679 9937//8681 10064//8808 +f 9988//8732 10065//8809 10064//8808 9989//8733 +f 10065//8809 9988//8732 9949//8693 9948//8692 +f 9935//8679 10065//8809 9948//8692 9933//8677 +f 10066//8810 10063//8807 9937//8681 9936//8680 +f 9927//8671 10066//8810 9936//8680 9921//8665 +f 10066//8810 9927//8671 9929//8673 10067//8811 +f 10063//8807 10066//8810 10067//8811 10061//8805 +f 10068//8812 10059//8803 10061//8805 10067//8811 +f 10069//8813 10068//8812 10067//8811 9929//8673 +f 10068//8812 10069//8813 10070//8814 10071//8815 +f 10059//8803 10068//8812 10071//8815 10057//8801 +f 10072//8816 10069//8813 9929//8673 9928//8672 +f 10073//8817 10072//8816 9928//8672 9924//8668 +f 10072//8816 10073//8817 10074//8818 10075//8819 +f 10069//8813 10072//8816 10075//8819 10070//8814 +f 10076//8820 10077//8821 10074//8818 10073//8817 +f 9923//8667 10076//8820 10073//8817 9924//8668 +f 10076//8820 9923//8667 9914//8658 10078//8822 +f 10077//8821 10076//8820 10078//8822 10079//8823 +f 10080//8824 10053//8797 10057//8801 10071//8815 +f 10081//8825 10080//8824 10071//8815 10070//8814 +f 10080//8824 10081//8825 10082//8826 10083//8827 +f 10053//8797 10080//8824 10083//8827 10054//8798 +f 10084//8828 10081//8825 10070//8814 10075//8819 +f 10085//8829 10084//8828 10075//8819 10074//8818 +f 10084//8828 10085//8829 10086//8830 10087//8831 +f 10081//8825 10084//8828 10087//8831 10082//8826 +f 10088//8832 10089//8833 10086//8830 10085//8829 +f 10077//8821 10088//8832 10085//8829 10074//8818 +f 10088//8832 10077//8821 10079//8823 10090//8834 +f 10089//8833 10088//8832 10090//8834 10091//8835 +f 10092//8836 10093//8837 10079//8823 10078//8822 +f 9913//8657 10092//8836 10078//8822 9914//8658 +f 10092//8836 9913//8657 9917//8661 10094//8838 +f 10093//8837 10092//8836 10094//8838 10095//8839 +f 10096//8840 10097//8841 9917//8661 9916//8660 +f 9895//8639 10096//8840 9916//8660 9896//8640 +f 10096//8840 9895//8639 9899//8643 10098//8842 +f 10097//8841 10096//8840 10098//8842 10099//8843 +f 10100//8844 10101//8845 10091//8835 10090//8834 +f 10093//8837 10100//8844 10090//8834 10079//8823 +f 10100//8844 10093//8837 10095//8839 10102//8846 +f 10101//8845 10100//8844 10102//8846 10103//8847 +f 10104//8848 10105//8849 10095//8839 10094//8838 +f 10097//8841 10104//8848 10094//8838 9917//8661 +f 10104//8848 10097//8841 10099//8843 10106//8850 +f 10105//8849 10104//8848 10106//8850 10107//8851 +f 10108//8852 10109//8853 10110//8854 10111//8855 +f 10089//8833 10108//8852 10111//8855 10086//8830 +f 10108//8852 10089//8833 10091//8835 10112//8856 +f 10109//8853 10108//8852 10112//8856 10113//8857 +f 10114//8858 10115//8859 10082//8826 10087//8831 +f 10111//8855 10114//8858 10087//8831 10086//8830 +f 10114//8858 10111//8855 10110//8854 10116//8860 +f 10115//8859 10114//8858 10116//8860 10117//8861 +f 10118//8862 10119//8863 10054//8798 10083//8827 +f 10115//8859 10118//8862 10083//8827 10082//8826 +f 10118//8862 10115//8859 10117//8861 10120//8864 +f 10119//8863 10118//8862 10120//8864 10121//8865 +f 10122//8866 10123//8867 10113//8857 10112//8856 +f 10101//8845 10122//8866 10112//8856 10091//8835 +f 10122//8866 10101//8845 10103//8847 10124//8868 +f 10123//8867 10122//8866 10124//8868 10125//8869 +f 10126//8870 10127//8871 10117//8861 10116//8860 +f 10128//8872 10126//8870 10116//8860 10110//8854 +f 10126//8870 10128//8872 10129//8873 10130//8874 +f 10127//8871 10126//8870 10130//8874 10131//8875 +f 10132//8876 10133//8877 10129//8873 10128//8872 +f 10109//8853 10132//8876 10128//8872 10110//8854 +f 10132//8876 10109//8853 10113//8857 10134//8878 +f 10133//8877 10132//8876 10134//8878 10135//8879 +f 10136//8880 10043//8787 10038//8782 10055//8799 +f 10119//8863 10136//8880 10055//8799 10054//8798 +f 10136//8880 10119//8863 10121//8865 10137//8881 +f 10043//8787 10136//8880 10137//8881 10044//8788 +f 10138//8882 10139//8883 10121//8865 10120//8864 +f 10127//8871 10138//8882 10120//8864 10117//8861 +f 10138//8882 10127//8871 10131//8875 10140//8884 +f 10139//8883 10138//8882 10140//8884 10141//8885 +f 10142//8886 10143//8887 10044//8788 10137//8881 +f 10139//8883 10142//8886 10137//8881 10121//8865 +f 10142//8886 10139//8883 10141//8885 10144//8888 +f 10143//8887 10142//8886 10144//8888 10145//8889 +f 10146//8890 10147//8891 10033//8777 10045//8789 +f 10143//8887 10146//8890 10045//8789 10044//8788 +f 10146//8890 10143//8887 10145//8889 10148//8892 +f 10147//8891 10146//8890 10148//8892 10149//8893 +f 10150//8894 10151//8895 10141//8885 10140//8884 +f 10152//8896 10150//8894 10140//8884 10131//8875 +f 10150//8894 10152//8896 10153//8897 10154//8898 +f 10151//8895 10150//8894 10154//8898 10155//8899 +f 10156//8900 10157//8901 10035//8779 10034//8778 +f 10147//8891 10156//8900 10034//8778 10033//8777 +f 10156//8900 10147//8891 10149//8893 10158//8902 +f 10157//8901 10156//8900 10158//8902 10159//8903 +f 10160//8904 10161//8905 10145//8889 10144//8888 +f 10151//8895 10160//8904 10144//8888 10141//8885 +f 10160//8904 10151//8895 10155//8899 10162//8906 +f 10161//8905 10160//8904 10162//8906 10163//8907 +f 10164//8908 10165//8909 10149//8893 10148//8892 +f 10161//8905 10164//8908 10148//8892 10145//8889 +f 10164//8908 10161//8905 10163//8907 10166//8910 +f 10165//8909 10164//8908 10166//8910 10167//8911 +f 10168//8912 10169//8913 10170//8914 10171//8915 +f 10157//8901 10168//8912 10171//8915 10035//8779 +f 10168//8912 10157//8901 10159//8903 10172//8916 +f 10169//8913 10168//8912 10172//8916 10173//8917 +f 10174//8918 10031//8775 10035//8779 10171//8915 +f 10175//8919 10174//8918 10171//8915 10170//8914 +f 10174//8918 10175//8919 10021//8765 10020//8764 +f 10031//8775 10174//8918 10020//8764 10019//8763 +f 10176//8920 10177//8921 10159//8903 10158//8902 +f 10165//8909 10176//8920 10158//8902 10149//8893 +f 10176//8920 10165//8909 10167//8911 10178//8922 +f 10177//8921 10176//8920 10178//8922 10179//8923 +f 10180//8924 10181//8925 10173//8917 10172//8916 +f 10177//8921 10180//8924 10172//8916 10159//8903 +f 10180//8924 10177//8921 10179//8923 10182//8926 +f 10181//8925 10180//8924 10182//8926 10183//8927 +f 10184//8928 10185//8929 10183//8927 10182//8926 +f 10186//8930 10184//8928 10182//8926 10179//8923 +f 10184//8928 10186//8930 10187//8931 10188//8932 +f 10185//8929 10184//8928 10188//8932 10189//8933 +f 10190//8934 10186//8930 10179//8923 10178//8922 +f 10191//8935 10190//8934 10178//8922 10167//8911 +f 10190//8934 10191//8935 10192//8936 10193//8937 +f 10186//8930 10190//8934 10193//8937 10187//8931 +f 10194//8938 10195//8939 10187//8931 10193//8937 +f 10196//8940 10194//8938 10193//8937 10192//8936 +f 10194//8938 10196//8940 10197//8941 10198//8942 +f 10195//8939 10194//8938 10198//8942 10199//8943 +f 10200//8944 10201//8945 10202//8946 10203//8947 +f 10191//8935 10200//8944 10203//8947 10192//8936 +f 10200//8944 10191//8935 10167//8911 10166//8910 +f 10201//8945 10200//8944 10166//8910 10163//8907 +f 10204//8948 10205//8949 10206//8950 10207//8951 +f 10196//8940 10204//8948 10207//8951 10197//8941 +f 10204//8948 10196//8940 10192//8936 10203//8947 +f 10205//8949 10204//8948 10203//8947 10202//8946 +f 10208//8952 10209//8953 10210//8954 10211//8955 +f 10201//8945 10208//8952 10211//8955 10202//8946 +f 10208//8952 10201//8945 10163//8907 10162//8906 +f 10209//8953 10208//8952 10162//8906 10155//8899 +f 10212//8956 10213//8957 10214//8958 10215//8959 +f 10205//8949 10212//8956 10215//8959 10206//8950 +f 10212//8956 10205//8949 10202//8946 10211//8955 +f 10213//8957 10212//8956 10211//8955 10210//8954 +f 10216//8960 10217//8961 10218//8962 10219//8963 +f 10209//8953 10216//8960 10219//8963 10210//8954 +f 10216//8960 10209//8953 10155//8899 10154//8898 +f 10217//8961 10216//8960 10154//8898 10153//8897 +f 10220//8964 10221//8965 10222//8966 10223//8967 +f 10213//8957 10220//8964 10223//8967 10214//8958 +f 10220//8964 10213//8957 10210//8954 10219//8963 +f 10221//8965 10220//8964 10219//8963 10218//8962 +f 10224//8968 10225//8969 10206//8950 10215//8959 +f 10226//8970 10224//8968 10215//8959 10214//8958 +f 10224//8968 10226//8970 10227//8971 10228//8972 +f 10225//8969 10224//8968 10228//8972 10229//8973 +f 10230//8974 10226//8970 10214//8958 10223//8967 +f 10231//8975 10230//8974 10223//8967 10222//8966 +f 10230//8974 10231//8975 10232//8976 10233//8977 +f 10226//8970 10230//8974 10233//8977 10227//8971 +f 10234//8978 10235//8979 10236//8980 10237//8981 +f 10221//8965 10234//8978 10237//8981 10222//8966 +f 10234//8978 10221//8965 10218//8962 10238//8982 +f 10235//8979 10234//8978 10238//8982 10239//8983 +f 10240//8984 10241//8985 10197//8941 10207//8951 +f 10225//8969 10240//8984 10207//8951 10206//8950 +f 10240//8984 10225//8969 10229//8973 10242//8986 +f 10241//8985 10240//8984 10242//8986 10243//8987 +f 10244//8988 10231//8975 10222//8966 10237//8981 +f 10245//8989 10244//8988 10237//8981 10236//8980 +f 10244//8988 10245//8989 10246//8990 10247//8991 +f 10231//8975 10244//8988 10247//8991 10232//8976 +f 10248//8992 10249//8993 10199//8943 10198//8942 +f 10241//8985 10248//8992 10198//8942 10197//8941 +f 10248//8992 10241//8985 10243//8987 10250//8994 +f 10249//8993 10248//8992 10250//8994 10251//8995 +f 10252//8996 10195//8939 10199//8943 10253//8997 +f 10254//8998 10252//8996 10253//8997 10255//8999 +f 10252//8996 10254//8998 10189//8933 10188//8932 +f 10195//8939 10252//8996 10188//8932 10187//8931 +f 10256//9000 10257//9001 10255//8999 10253//8997 +f 10249//8993 10256//9000 10253//8997 10199//8943 +f 10256//9000 10249//8993 10251//8995 10258//9002 +f 10257//9001 10256//9000 10258//9002 10259//9003 +f 10260//9004 10261//9005 10243//8987 10242//8986 +f 10262//9006 10260//9004 10242//8986 10229//8973 +f 10260//9004 10262//9006 10263//9007 10264//9008 +f 10261//9005 10260//9004 10264//9008 10265//9009 +f 10266//9010 10267//9011 10259//9003 10258//9002 +f 10268//9012 10266//9010 10258//9002 10251//8995 +f 10266//9010 10268//9012 10269//9013 10270//9014 +f 10267//9011 10266//9010 10270//9014 10271//9015 +f 10272//9016 10268//9012 10251//8995 10250//8994 +f 10261//9005 10272//9016 10250//8994 10243//8987 +f 10272//9016 10261//9005 10265//9009 10273//9017 +f 10268//9012 10272//9016 10273//9017 10269//9013 +f 10274//9018 10275//9019 10271//9015 10270//9014 +f 10276//9020 10274//9018 10270//9014 10269//9013 +f 10274//9018 10276//9020 9466//8210 9465//8209 +f 10275//9019 10274//9018 9465//8209 9464//8208 +f 10277//9021 10276//9020 10269//9013 10273//9017 +f 10278//9022 10277//9021 10273//9017 10265//9009 +f 10277//9021 10278//9022 10279//9023 10280//9024 +f 10276//9020 10277//9021 10280//9024 9466//8210 +f 10281//9025 10278//9022 10265//9009 10264//9008 +f 10282//9026 10281//9025 10264//9008 10263//9007 +f 10281//9025 10282//9026 10283//9027 10284//9028 +f 10278//9022 10281//9025 10284//9028 10279//9023 +f 10285//9029 9459//8203 9466//8210 10280//9024 +f 10286//9030 10285//9029 10280//9024 10279//9023 +f 10285//9029 10286//9030 10287//9031 10288//9032 +f 9459//8203 10285//9029 10288//9032 9460//8204 +f 10289//9033 10286//9030 10279//9023 10284//9028 +f 10290//9034 10289//9033 10284//9028 10283//9027 +f 10289//9033 10290//9034 10291//9035 10292//9036 +f 10286//9030 10289//9033 10292//9036 10287//9031 +f 10293//9037 10294//9038 10295//9039 10296//9040 +f 10297//9041 10293//9037 10296//9040 10298//9042 +f 10293//9037 10297//9041 9460//8204 10288//9032 +f 10294//9038 10293//9037 10288//9032 10287//9031 +f 10299//9043 10300//9044 9463//8207 9461//8205 +f 10297//9041 10299//9043 9461//8205 9460//8204 +f 10299//9043 10297//9041 10298//9042 10301//9045 +f 10300//9044 10299//9043 10301//9045 10302//9046 +f 10303//9047 10304//9048 10305//9049 10306//9050 +f 10294//9038 10303//9047 10306//9050 10295//9039 +f 10303//9047 10294//9038 10287//9031 10292//9036 +f 10304//9048 10303//9047 10292//9036 10291//9035 +f 10307//9051 10308//9052 10295//9039 10306//9050 +f 10309//9053 10307//9051 10306//9050 10305//9049 +f 10307//9051 10309//9053 10310//9054 10311//9055 +f 10308//9052 10307//9051 10311//9055 10312//9056 +f 10313//9057 10314//9058 10315//9059 10316//9060 +f 10309//9053 10313//9057 10316//9060 10310//9054 +f 10313//9057 10309//9053 10305//9049 10317//9061 +f 10314//9058 10313//9057 10317//9061 10318//9062 +f 10319//9063 10320//9064 10318//9062 10317//9061 +f 10304//9048 10319//9063 10317//9061 10305//9049 +f 10319//9063 10304//9048 10291//9035 10321//9065 +f 10320//9064 10319//9063 10321//9065 10322//9066 +f 10323//9067 10324//9068 10322//9066 10321//9065 +f 10290//9034 10323//9067 10321//9065 10291//9035 +f 10323//9067 10290//9034 10283//9027 10325//9069 +f 10324//9068 10323//9067 10325//9069 10326//9070 +f 10327//9071 10328//9072 10329//9073 10330//9074 +f 10314//9058 10327//9071 10330//9074 10315//9059 +f 10327//9071 10314//9058 10318//9062 10331//9075 +f 10328//9072 10327//9071 10331//9075 10332//9076 +f 10333//9077 10334//9078 10326//9070 10325//9069 +f 10282//9026 10333//9077 10325//9069 10283//9027 +f 10333//9077 10282//9026 10263//9007 10335//9079 +f 10334//9078 10333//9077 10335//9079 10336//9080 +f 10337//9081 10338//9082 10332//9076 10331//9075 +f 10320//9064 10337//9081 10331//9075 10318//9062 +f 10337//9081 10320//9064 10322//9066 10339//9083 +f 10338//9082 10337//9081 10339//9083 10340//9084 +f 10341//9085 10342//9086 10340//9084 10339//9083 +f 10324//9068 10341//9085 10339//9083 10322//9066 +f 10341//9085 10324//9068 10326//9070 10343//9087 +f 10342//9086 10341//9085 10343//9087 10344//9088 +f 10345//9089 10346//9090 10336//9080 10335//9079 +f 10262//9006 10345//9089 10335//9079 10263//9007 +f 10345//9089 10262//9006 10229//8973 10228//8972 +f 10346//9090 10345//9089 10228//8972 10227//8971 +f 10347//9091 10348//9092 10344//9088 10343//9087 +f 10334//9078 10347//9091 10343//9087 10326//9070 +f 10347//9091 10334//9078 10336//9080 10349//9093 +f 10348//9092 10347//9091 10349//9093 10350//9094 +f 10351//9095 10352//9096 10350//9094 10349//9093 +f 10346//9090 10351//9095 10349//9093 10336//9080 +f 10351//9095 10346//9090 10227//8971 10233//8977 +f 10352//9096 10351//9095 10233//8977 10232//8976 +f 10353//9097 10354//9098 10355//9099 10356//9100 +f 10342//9086 10353//9097 10356//9100 10340//9084 +f 10353//9097 10342//9086 10344//9088 10357//9101 +f 10354//9098 10353//9097 10357//9101 10358//9102 +f 10359//9103 10360//9104 10361//9105 10362//9106 +f 10352//9096 10359//9103 10362//9106 10350//9094 +f 10359//9103 10352//9096 10232//8976 10247//8991 +f 10360//9104 10359//9103 10247//8991 10246//8990 +f 10363//9107 10364//9108 10358//9102 10357//9101 +f 10348//9092 10363//9107 10357//9101 10344//9088 +f 10363//9107 10348//9092 10350//9094 10362//9106 +f 10364//9108 10363//9107 10362//9106 10361//9105 +f 10365//9109 10366//9110 10361//9105 10360//9104 +f 10367//9111 10365//9109 10360//9104 10246//8990 +f 10365//9109 10367//9111 10368//9112 10369//9113 +f 10366//9110 10365//9109 10369//9113 10370//9114 +f 10371//9115 10372//9116 10358//9102 10364//9108 +f 10366//9110 10371//9115 10364//9108 10361//9105 +f 10371//9115 10366//9110 10370//9114 10373//9117 +f 10372//9116 10371//9115 10373//9117 10374//9118 +f 10375//9119 10376//9120 10355//9099 10354//9098 +f 10372//9116 10375//9119 10354//9098 10358//9102 +f 10375//9119 10372//9116 10374//9118 10377//9121 +f 10376//9120 10375//9119 10377//9121 10378//9122 +f 10379//9123 10338//9082 10340//9084 10356//9100 +f 10380//9124 10379//9123 10356//9100 10355//9099 +f 10379//9123 10380//9124 10381//9125 10382//9126 +f 10338//9082 10379//9123 10382//9126 10332//9076 +f 10383//9127 10384//9128 10381//9125 10380//9124 +f 10376//9120 10383//9127 10380//9124 10355//9099 +f 10383//9127 10376//9120 10378//9122 10385//9129 +f 10384//9128 10383//9127 10385//9129 10386//9130 +f 10387//9131 10328//9072 10332//9076 10382//9126 +f 10388//9132 10387//9131 10382//9126 10381//9125 +f 10387//9131 10388//9132 10389//9133 10390//9134 +f 10328//9072 10387//9131 10390//9134 10329//9073 +f 10391//9135 10392//9136 10389//9133 10388//9132 +f 10384//9128 10391//9135 10388//9132 10381//9125 +f 10391//9135 10384//9128 10386//9130 10393//9137 +f 10392//9136 10391//9135 10393//9137 10394//9138 +f 10395//9139 10396//9140 10378//9122 10377//9121 +f 10397//9141 10395//9139 10377//9121 10374//9118 +f 10395//9139 10397//9141 10398//9142 10399//9143 +f 10396//9140 10395//9139 10399//9143 10400//9144 +f 10401//9145 10402//9146 10329//9073 10390//9134 +f 10403//9147 10401//9145 10390//9134 10389//9133 +f 10401//9145 10403//9147 10404//9148 10405//9149 +f 10402//9146 10401//9145 10405//9149 10406//9150 +f 10407//9151 10408//9152 10386//9130 10385//9129 +f 10396//9140 10407//9151 10385//9129 10378//9122 +f 10407//9151 10396//9140 10400//9144 10409//9153 +f 10408//9152 10407//9151 10409//9153 10410//9154 +f 10411//9155 10412//9156 10404//9148 10403//9147 +f 10392//9136 10411//9155 10403//9147 10389//9133 +f 10411//9155 10392//9136 10394//9138 10413//9157 +f 10412//9156 10411//9155 10413//9157 10414//9158 +f 10415//9159 10416//9160 10394//9138 10393//9137 +f 10408//9152 10415//9159 10393//9137 10386//9130 +f 10415//9159 10408//9152 10410//9154 10417//9161 +f 10416//9160 10415//9159 10417//9161 10418//9162 +f 10419//9163 10420//9164 10315//9059 10330//9074 +f 10402//9146 10419//9163 10330//9074 10329//9073 +f 10419//9163 10402//9146 10406//9150 10421//9165 +f 10420//9164 10419//9163 10421//9165 10422//9166 +f 10423//9167 10424//9168 10310//9054 10316//9060 +f 10420//9164 10423//9167 10316//9060 10315//9059 +f 10423//9167 10420//9164 10422//9166 10425//9169 +f 10424//9168 10423//9167 10425//9169 10426//9170 +f 10427//9171 10428//9172 10406//9150 10405//9149 +f 10429//9173 10427//9171 10405//9149 10404//9148 +f 10427//9171 10429//9173 10430//9174 10431//9175 +f 10428//9172 10427//9171 10431//9175 10432//9176 +f 10433//9177 10434//9178 10430//9174 10429//9173 +f 10412//9156 10433//9177 10429//9173 10404//9148 +f 10433//9177 10412//9156 10414//9158 10435//9179 +f 10434//9178 10433//9177 10435//9179 10436//9180 +f 10437//9181 10438//9182 10422//9166 10421//9165 +f 10428//9172 10437//9181 10421//9165 10406//9150 +f 10437//9181 10428//9172 10432//9176 10439//9183 +f 10438//9182 10437//9181 10439//9183 10440//9184 +f 10441//9185 10442//9186 10436//9180 10435//9179 +f 10443//9187 10441//9185 10435//9179 10414//9158 +f 10441//9185 10443//9187 10444//9188 10445//9189 +f 10442//9186 10441//9185 10445//9189 10446//9190 +f 10447//9191 10448//9192 10426//9170 10425//9169 +f 10438//9182 10447//9191 10425//9169 10422//9166 +f 10447//9191 10438//9182 10440//9184 10449//9193 +f 10448//9192 10447//9191 10449//9193 10450//9194 +f 10451//9195 10452//9196 10312//9056 10311//9055 +f 10424//9168 10451//9195 10311//9055 10310//9054 +f 10451//9195 10424//9168 10426//9170 10453//9197 +f 10452//9196 10451//9195 10453//9197 10454//9198 +f 10455//9199 10456//9200 10454//9198 10453//9197 +f 10448//9192 10455//9199 10453//9197 10426//9170 +f 10455//9199 10448//9192 10450//9194 10457//9201 +f 10456//9200 10455//9199 10457//9201 10458//9202 +f 10459//9203 9468//8212 9475//8219 10460//9204 +f 10456//9200 10459//9203 10460//9204 10454//9198 +f 10459//9203 10456//9200 10458//9202 10461//9205 +f 9468//8212 10459//9203 10461//9205 9469//8213 +f 10462//9206 10463//9207 10464//9208 10465//9209 +f 10452//9196 10462//9206 10465//9209 10312//9056 +f 10462//9206 10452//9196 10454//9198 10460//9204 +f 10463//9207 10462//9206 10460//9204 9475//8219 +f 10466//9210 10467//9211 10468//9212 10469//9213 +f 10463//9207 10466//9210 10469//9213 10464//9208 +f 10466//9210 10463//9207 9475//8219 9474//8218 +f 10467//9211 10466//9210 9474//8218 9473//8217 +f 10470//9214 10471//9215 10446//9190 10445//9189 +f 10472//9216 10470//9214 10445//9189 10444//9188 +f 10470//9214 10472//9216 10473//9217 10474//9218 +f 10471//9215 10470//9214 10474//9218 10475//9219 +f 10476//9220 10416//9160 10418//9162 10477//9221 +f 10443//9187 10476//9220 10477//9221 10444//9188 +f 10476//9220 10443//9187 10414//9158 10413//9157 +f 10416//9160 10476//9220 10413//9157 10394//9138 +f 10478//9222 10472//9216 10444//9188 10477//9221 +f 10479//9223 10478//9222 10477//9221 10418//9162 +f 10478//9222 10479//9223 10480//9224 10481//9225 +f 10472//9216 10478//9222 10481//9225 10473//9217 +f 10482//9226 10479//9223 10418//9162 10417//9161 +f 10483//9227 10482//9226 10417//9161 10410//9154 +f 10482//9226 10483//9227 10484//9228 10485//9229 +f 10479//9223 10482//9226 10485//9229 10480//9224 +f 10486//9230 10487//9231 10475//9219 10474//9218 +f 10488//9232 10486//9230 10474//9218 10473//9217 +f 10486//9230 10488//9232 10489//9233 10490//9234 +f 10487//9231 10486//9230 10490//9234 10491//9235 +f 10492//9236 10488//9232 10473//9217 10481//9225 +f 10493//9237 10492//9236 10481//9225 10480//9224 +f 10492//9236 10493//9237 10494//9238 10495//9239 +f 10488//9232 10492//9236 10495//9239 10489//9233 +f 10496//9240 10497//9241 10491//9235 10490//9234 +f 10498//9242 10496//9240 10490//9234 10489//9233 +f 10496//9240 10498//9242 10499//9243 10500//9244 +f 10497//9241 10496//9240 10500//9244 10501//9245 +f 10502//9246 10498//9242 10489//9233 10495//9239 +f 10503//9247 10502//9246 10495//9239 10494//9238 +f 10502//9246 10503//9247 10504//9248 10505//9249 +f 10498//9242 10502//9246 10505//9249 10499//9243 +f 10506//9250 10507//9251 10508//9252 10509//9253 +f 10493//9237 10506//9250 10509//9253 10494//9238 +f 10506//9250 10493//9237 10480//9224 10485//9229 +f 10507//9251 10506//9250 10485//9229 10484//9228 +f 10510//9254 10511//9255 10512//9256 10513//9257 +f 10503//9247 10510//9254 10513//9257 10504//9248 +f 10510//9254 10503//9247 10494//9238 10509//9253 +f 10511//9255 10510//9254 10509//9253 10508//9252 +f 10514//9258 10515//9259 10501//9245 10500//9244 +f 10516//9260 10514//9258 10500//9244 10499//9243 +f 10514//9258 10516//9260 10517//9261 10518//9262 +f 10515//9259 10514//9258 10518//9262 10519//9263 +f 10520//9264 10516//9260 10499//9243 10505//9249 +f 10521//9265 10520//9264 10505//9249 10504//9248 +f 10520//9264 10521//9265 10522//9266 10523//9267 +f 10516//9260 10520//9264 10523//9267 10517//9261 +f 10524//9268 10525//9269 10519//9263 10518//9262 +f 10526//9270 10524//9268 10518//9262 10517//9261 +f 10524//9268 10526//9270 10527//9271 10528//9272 +f 10525//9269 10524//9268 10528//9272 10529//9273 +f 10530//9274 10526//9270 10517//9261 10523//9267 +f 10531//9275 10530//9274 10523//9267 10522//9266 +f 10530//9274 10531//9275 10532//9276 10533//9277 +f 10526//9270 10530//9274 10533//9277 10527//9271 +f 10534//9278 10535//9279 10536//9280 10537//9281 +f 10521//9265 10534//9278 10537//9281 10522//9266 +f 10534//9278 10521//9265 10504//9248 10513//9257 +f 10535//9279 10534//9278 10513//9257 10512//9256 +f 10538//9282 10539//9283 10540//9284 10541//9285 +f 10531//9275 10538//9282 10541//9285 10532//9276 +f 10538//9282 10531//9275 10522//9266 10537//9281 +f 10539//9283 10538//9282 10537//9281 10536//9280 +f 10542//9286 10543//9287 10529//9273 10528//9272 +f 10544//9288 10542//9286 10528//9272 10527//9271 +f 10542//9286 10544//9288 10545//9289 10546//9290 +f 10543//9287 10542//9286 10546//9290 10547//9291 +f 10548//9292 10544//9288 10527//9271 10533//9277 +f 10549//9293 10548//9292 10533//9277 10532//9276 +f 10548//9292 10549//9293 10550//9294 10551//9295 +f 10544//9288 10548//9292 10551//9295 10545//9289 +f 10552//9296 10553//9297 10547//9291 10546//9290 +f 10554//9298 10552//9296 10546//9290 10545//9289 +f 10552//9296 10554//9298 10555//9299 10556//9300 +f 10553//9297 10552//9296 10556//9300 10557//9301 +f 10558//9302 10559//9303 10560//9304 10561//9305 +f 10556//9300 10558//9302 10561//9305 10557//9301 +f 10558//9302 10556//9300 10555//9299 10562//9306 +f 10559//9303 10558//9302 10562//9306 10563//9307 +f 10564//9308 10565//9309 10566//9310 10567//9311 +f 10554//9298 10564//9308 10567//9311 10555//9299 +f 10564//9308 10554//9298 10545//9289 10551//9295 +f 10565//9309 10564//9308 10551//9295 10550//9294 +f 10568//9312 10569//9313 10563//9307 10562//9306 +f 10567//9311 10568//9312 10562//9306 10555//9299 +f 10568//9312 10567//9311 10566//9310 10570//9314 +f 10569//9313 10568//9312 10570//9314 10571//9315 +f 10572//9316 10573//9317 10574//9318 10575//9319 +f 10559//9303 10572//9316 10575//9319 10560//9304 +f 10572//9316 10559//9303 10563//9307 10576//9320 +f 10573//9317 10572//9316 10576//9320 10577//9321 +f 10578//9322 10579//9323 10580//9324 10581//9325 +f 10565//9309 10578//9322 10581//9325 10566//9310 +f 10578//9322 10565//9309 10550//9294 10582//9326 +f 10579//9323 10578//9322 10582//9326 10583//9327 +f 10584//9328 10585//9329 10586//9330 10587//9331 +f 10573//9317 10584//9328 10587//9331 10574//9318 +f 10584//9328 10573//9317 10577//9321 10588//9332 +f 10585//9329 10584//9328 10588//9332 10589//9333 +f 10590//9334 10591//9335 10577//9321 10576//9320 +f 10569//9313 10590//9334 10576//9320 10563//9307 +f 10590//9334 10569//9313 10571//9315 10592//9336 +f 10591//9335 10590//9334 10592//9336 10593//9337 +f 10594//9338 10595//9339 10571//9315 10570//9314 +f 10581//9325 10594//9338 10570//9314 10566//9310 +f 10594//9338 10581//9325 10580//9324 10596//9340 +f 10595//9339 10594//9338 10596//9340 10597//9341 +f 10598//9342 10599//9343 10600//9344 10601//9345 +f 10585//9329 10598//9342 10601//9345 10586//9330 +f 10598//9342 10585//9329 10589//9333 10602//9346 +f 10599//9343 10598//9342 10602//9346 10603//9347 +f 10604//9348 10605//9349 10589//9333 10588//9332 +f 10591//9335 10604//9348 10588//9332 10577//9321 +f 10604//9348 10591//9335 10593//9337 10606//9350 +f 10605//9349 10604//9348 10606//9350 10607//9351 +f 10608//9352 9444//8188 9445//8189 10609//9353 +f 10599//9343 10608//9352 10609//9353 10600//9344 +f 10608//9352 10599//9343 10603//9347 10610//9354 +f 9444//8188 10608//9352 10610//9354 9446//8190 +f 10611//9355 10612//9356 10603//9347 10602//9346 +f 10605//9349 10611//9355 10602//9346 10589//9333 +f 10611//9355 10605//9349 10607//9351 10613//9357 +f 10612//9356 10611//9355 10613//9357 10614//9358 +f 10615//9359 10616//9360 9446//8190 10610//9354 +f 10612//9356 10615//9359 10610//9354 10603//9347 +f 10615//9359 10612//9356 10614//9358 10617//9361 +f 10616//9360 10615//9359 10617//9361 10618//9362 +f 10619//9363 10620//9364 9448//8192 9447//8191 +f 10616//9360 10619//9363 9447//8191 9446//8190 +f 10619//9363 10616//9360 10618//9362 10621//9365 +f 10620//9364 10619//9363 10621//9365 10622//9366 +f 10623//9367 10624//9368 10614//9358 10613//9357 +f 10625//9369 10623//9367 10613//9357 10607//9351 +f 10623//9367 10625//9369 10626//9370 10627//9371 +f 10624//9368 10623//9367 10627//9371 10628//9372 +f 10629//9373 10630//9374 10631//9375 10632//9376 +f 10625//9369 10629//9373 10632//9376 10626//9370 +f 10629//9373 10625//9369 10607//9351 10606//9350 +f 10630//9374 10629//9373 10606//9350 10593//9337 +f 10633//9377 10634//9378 10628//9372 10627//9371 +f 10635//9379 10633//9377 10627//9371 10626//9370 +f 10633//9377 10635//9379 10636//9380 10637//9381 +f 10634//9378 10633//9377 10637//9381 10638//9382 +f 10639//9383 10635//9379 10626//9370 10632//9376 +f 10640//9384 10639//9383 10632//9376 10631//9375 +f 10639//9383 10640//9384 10641//9385 10642//9386 +f 10635//9379 10639//9383 10642//9386 10636//9380 +f 10643//9387 10644//9388 10645//9389 10646//9390 +f 10634//9378 10643//9387 10646//9390 10628//9372 +f 10643//9387 10634//9378 10638//9382 10647//9391 +f 10644//9388 10643//9387 10647//9391 10648//9392 +f 10649//9393 10650//9394 10648//9392 10647//9391 +f 10651//9395 10649//9393 10647//9391 10638//9382 +f 10649//9393 10651//9395 10652//9396 10653//9397 +f 10650//9394 10649//9393 10653//9397 10654//9398 +f 10655//9399 10651//9395 10638//9382 10637//9381 +f 10656//9400 10655//9399 10637//9381 10636//9380 +f 10655//9399 10656//9400 10657//9401 10658//9402 +f 10651//9395 10655//9399 10658//9402 10652//9396 +f 10659//9403 10660//9404 10661//9405 10662//9406 +f 10663//9407 10659//9403 10662//9406 10664//9408 +f 10659//9403 10663//9407 10654//9398 10653//9397 +f 10660//9404 10659//9403 10653//9397 10652//9396 +f 10665//9409 10666//9410 10667//9411 10668//9412 +f 10656//9400 10665//9409 10668//9412 10657//9401 +f 10665//9409 10656//9400 10636//9380 10642//9386 +f 10666//9410 10665//9409 10642//9386 10641//9385 +f 10669//9413 10660//9404 10652//9396 10658//9402 +f 10670//9414 10669//9413 10658//9402 10657//9401 +f 10669//9413 10670//9414 10671//9415 10672//9416 +f 10660//9404 10669//9413 10672//9416 10661//9405 +f 10673//9417 10670//9414 10657//9401 10668//9412 +f 10674//9418 10673//9417 10668//9412 10667//9411 +f 10673//9417 10674//9418 10675//9419 10676//9420 +f 10670//9414 10673//9417 10676//9420 10671//9415 +f 10677//9421 10678//9422 10679//9423 10680//9424 +f 10666//9410 10677//9421 10680//9424 10667//9411 +f 10677//9421 10666//9410 10641//9385 10681//9425 +f 10678//9422 10677//9421 10681//9425 10682//9426 +f 10683//9427 10684//9428 10685//9429 10686//9430 +f 10674//9418 10683//9427 10686//9430 10675//9419 +f 10683//9427 10674//9418 10667//9411 10680//9424 +f 10684//9428 10683//9427 10680//9424 10679//9423 +f 10687//9431 10688//9432 10671//9415 10676//9420 +f 10689//9433 10687//9431 10676//9420 10675//9419 +f 10687//9431 10689//9433 10690//9434 10691//9435 +f 10688//9432 10687//9431 10691//9435 10692//9436 +f 10693//9437 10694//9438 10682//9426 10681//9425 +f 10640//9384 10693//9437 10681//9425 10641//9385 +f 10693//9437 10640//9384 10631//9375 10695//9439 +f 10694//9438 10693//9437 10695//9439 10597//9341 +f 10696//9440 10697//9441 10661//9405 10672//9416 +f 10688//9432 10696//9440 10672//9416 10671//9415 +f 10696//9440 10688//9432 10692//9436 10698//9442 +f 10697//9441 10696//9440 10698//9442 10699//9443 +f 10700//9444 10701//9445 10664//9408 10662//9406 +f 10697//9441 10700//9444 10662//9406 10661//9405 +f 10700//9444 10697//9441 10699//9443 10702//9446 +f 10701//9445 10700//9444 10702//9446 10703//9447 +f 10704//9448 10705//9449 10706//9450 10707//9451 +f 10689//9433 10704//9448 10707//9451 10690//9434 +f 10704//9448 10689//9433 10675//9419 10686//9430 +f 10705//9449 10704//9448 10686//9430 10685//9429 +f 10708//9452 10709//9453 10692//9436 10691//9435 +f 10710//9454 10708//9452 10691//9435 10690//9434 +f 10708//9452 10710//9454 10711//9455 10712//9456 +f 10709//9453 10708//9452 10712//9456 10713//9457 +f 10714//9458 10710//9454 10690//9434 10707//9451 +f 10715//9459 10714//9458 10707//9451 10706//9450 +f 10714//9458 10715//9459 10716//9460 10717//9461 +f 10710//9454 10714//9458 10717//9461 10711//9455 +f 10718//9462 10719//9463 10699//9443 10698//9442 +f 10709//9453 10718//9462 10698//9442 10692//9436 +f 10718//9462 10709//9453 10713//9457 10720//9464 +f 10719//9463 10718//9462 10720//9464 10721//9465 +f 10722//9466 10723//9467 10724//9468 10725//9469 +f 10701//9445 10722//9466 10725//9469 10664//9408 +f 10722//9466 10701//9445 10703//9447 10726//9470 +f 10723//9467 10722//9466 10726//9470 10727//9471 +f 10728//9472 10663//9407 10664//9408 10725//9469 +f 10729//9473 10728//9472 10725//9469 10724//9468 +f 10728//9472 10729//9473 10730//9474 10731//9475 +f 10663//9407 10728//9472 10731//9475 10654//9398 +f 10732//9476 10733//9477 10703//9447 10702//9446 +f 10719//9463 10732//9476 10702//9446 10699//9443 +f 10732//9476 10719//9463 10721//9465 10734//9478 +f 10733//9477 10732//9476 10734//9478 10735//9479 +f 10736//9480 10737//9481 10735//9479 10734//9478 +f 10738//9482 10736//9480 10734//9478 10721//9465 +f 10736//9480 10738//9482 10739//9483 10740//9484 +f 10737//9481 10736//9480 10740//9484 10741//9485 +f 10742//9486 10738//9482 10721//9465 10720//9464 +f 10743//9487 10742//9486 10720//9464 10713//9457 +f 10742//9486 10743//9487 10744//9488 10745//9489 +f 10738//9482 10742//9486 10745//9489 10739//9483 +f 10746//9490 10747//9491 10748//9492 10749//9493 +f 10743//9487 10746//9490 10749//9493 10744//9488 +f 10746//9490 10743//9487 10713//9457 10712//9456 +f 10747//9491 10746//9490 10712//9456 10711//9455 +f 10750//9494 10751//9495 10739//9483 10745//9489 +f 10752//9496 10750//9494 10745//9489 10744//9488 +f 10750//9494 10752//9496 10753//9497 10754//9498 +f 10751//9495 10750//9494 10754//9498 10755//9499 +f 10756//9500 10757//9501 10758//9502 10759//9503 +f 10747//9491 10756//9500 10759//9503 10748//9492 +f 10756//9500 10747//9491 10711//9455 10717//9461 +f 10757//9501 10756//9500 10717//9461 10716//9460 +f 10760//9504 10752//9496 10744//9488 10749//9493 +f 10761//9505 10760//9504 10749//9493 10748//9492 +f 10760//9504 10761//9505 10762//9506 10763//9507 +f 10752//9496 10760//9504 10763//9507 10753//9497 +f 10764//9508 10761//9505 10748//9492 10759//9503 +f 10765//9509 10764//9508 10759//9503 10758//9502 +f 10764//9508 10765//9509 10766//9510 10767//9511 +f 10761//9505 10764//9508 10767//9511 10762//9506 +f 10768//9512 10769//9513 10770//9514 10771//9515 +f 10757//9501 10768//9512 10771//9515 10758//9502 +f 10768//9512 10757//9501 10716//9460 10772//9516 +f 10769//9513 10768//9512 10772//9516 10773//9517 +f 10774//9518 10775//9519 10776//9520 10777//9521 +f 10765//9509 10774//9518 10777//9521 10766//9510 +f 10774//9518 10765//9509 10758//9502 10771//9515 +f 10775//9519 10774//9518 10771//9515 10770//9514 +f 10778//9522 10779//9523 10762//9506 10767//9511 +f 10780//9524 10778//9522 10767//9511 10766//9510 +f 10778//9522 10780//9524 10781//9525 10782//9526 +f 10779//9523 10778//9522 10782//9526 10783//9527 +f 10784//9528 10785//9529 10773//9517 10772//9516 +f 10715//9459 10784//9528 10772//9516 10716//9460 +f 10784//9528 10715//9459 10706//9450 10786//9530 +f 10785//9529 10784//9528 10786//9530 10787//9531 +f 10788//9532 10789//9533 10753//9497 10763//9507 +f 10779//9523 10788//9532 10763//9507 10762//9506 +f 10788//9532 10779//9523 10783//9527 10790//9534 +f 10789//9533 10788//9532 10790//9534 10791//9535 +f 10792//9536 10793//9537 10787//9531 10786//9530 +f 10705//9449 10792//9536 10786//9530 10706//9450 +f 10792//9536 10705//9449 10685//9429 10794//9538 +f 10793//9537 10792//9536 10794//9538 10795//9539 +f 10796//9540 10797//9541 10770//9514 10769//9513 +f 10798//9542 10796//9540 10769//9513 10773//9517 +f 10796//9540 10798//9542 10799//9543 10800//9544 +f 10797//9541 10796//9540 10800//9544 10801//9545 +f 10802//9546 10803//9547 10795//9539 10794//9538 +f 10684//9428 10802//9546 10794//9538 10685//9429 +f 10802//9546 10684//9428 10679//9423 10804//9548 +f 10803//9547 10802//9546 10804//9548 10805//9549 +f 10806//9550 10798//9542 10773//9517 10785//9529 +f 10807//9551 10806//9550 10785//9529 10787//9531 +f 10806//9550 10807//9551 10808//9552 10809//9553 +f 10798//9542 10806//9550 10809//9553 10799//9543 +f 10810//9554 10807//9551 10787//9531 10793//9537 +f 10811//9555 10810//9554 10793//9537 10795//9539 +f 10810//9554 10811//9555 10812//9556 10813//9557 +f 10807//9551 10810//9554 10813//9557 10808//9552 +f 10814//9558 10815//9559 10805//9549 10804//9548 +f 10678//9422 10814//9558 10804//9548 10679//9423 +f 10814//9558 10678//9422 10682//9426 10816//9560 +f 10815//9559 10814//9558 10816//9560 10817//9561 +f 10818//9562 10819//9563 10820//9564 10821//9565 +f 10811//9555 10818//9562 10821//9565 10812//9556 +f 10818//9562 10811//9555 10795//9539 10803//9547 +f 10819//9563 10818//9562 10803//9547 10805//9549 +f 10822//9566 10823//9567 10808//9552 10813//9557 +f 10824//9568 10822//9566 10813//9557 10812//9556 +f 10822//9566 10824//9568 10825//9569 10826//9570 +f 10823//9567 10822//9566 10826//9570 10827//9571 +f 10828//9572 10824//9568 10812//9556 10821//9565 +f 10829//9573 10828//9572 10821//9565 10820//9564 +f 10828//9572 10829//9573 10830//9574 10831//9575 +f 10824//9568 10828//9572 10831//9575 10825//9569 +f 10832//9576 10833//9577 10834//9578 10835//9579 +f 10819//9563 10832//9576 10835//9579 10820//9564 +f 10832//9576 10819//9563 10805//9549 10815//9559 +f 10833//9577 10832//9576 10815//9559 10817//9561 +f 10836//9580 10837//9581 10799//9543 10809//9553 +f 10823//9567 10836//9580 10809//9553 10808//9552 +f 10836//9580 10823//9567 10827//9571 10838//9582 +f 10837//9581 10836//9580 10838//9582 10839//9583 +f 10840//9584 10829//9573 10820//9564 10835//9579 +f 10841//9585 10840//9584 10835//9579 10834//9578 +f 10840//9584 10841//9585 10842//9586 10843//9587 +f 10829//9573 10840//9584 10843//9587 10830//9574 +f 10844//9588 10845//9589 10540//9284 10846//9590 +f 10841//9585 10844//9588 10846//9590 10842//9586 +f 10844//9588 10841//9585 10834//9578 10847//9591 +f 10845//9589 10844//9588 10847//9591 10583//9327 +f 10848//9592 10849//9593 10817//9561 10816//9560 +f 10694//9438 10848//9592 10816//9560 10682//9426 +f 10848//9592 10694//9438 10597//9341 10596//9340 +f 10849//9593 10848//9592 10596//9340 10580//9324 +f 10850//9594 10595//9339 10597//9341 10695//9439 +f 10630//9374 10850//9594 10695//9439 10631//9375 +f 10850//9594 10630//9374 10593//9337 10592//9336 +f 10595//9339 10850//9594 10592//9336 10571//9315 +f 10851//9595 10833//9577 10817//9561 10849//9593 +f 10579//9323 10851//9595 10849//9593 10580//9324 +f 10851//9595 10579//9323 10583//9327 10847//9591 +f 10833//9577 10851//9595 10847//9591 10834//9578 +f 10852//9596 10845//9589 10583//9327 10582//9326 +f 10549//9293 10852//9596 10582//9326 10550//9294 +f 10852//9596 10549//9293 10532//9276 10541//9285 +f 10845//9589 10852//9596 10541//9285 10540//9284 +f 10853//9597 10854//9598 10842//9586 10846//9590 +f 10539//9283 10853//9597 10846//9590 10540//9284 +f 10853//9597 10539//9283 10536//9280 10855//9599 +f 10854//9598 10853//9597 10855//9599 10856//9600 +f 10857//9601 10858//9602 10830//9574 10843//9587 +f 10854//9598 10857//9601 10843//9587 10842//9586 +f 10857//9601 10854//9598 10856//9600 10859//9603 +f 10858//9602 10857//9601 10859//9603 10860//9604 +f 10861//9605 10862//9606 10856//9600 10855//9599 +f 10535//9279 10861//9605 10855//9599 10536//9280 +f 10861//9605 10535//9279 10512//9256 10863//9607 +f 10862//9606 10861//9605 10863//9607 10864//9608 +f 10865//9609 10866//9610 10825//9569 10831//9575 +f 10858//9602 10865//9609 10831//9575 10830//9574 +f 10865//9609 10858//9602 10860//9604 10867//9611 +f 10866//9610 10865//9609 10867//9611 10868//9612 +f 10869//9613 10870//9614 10860//9604 10859//9603 +f 10862//9606 10869//9613 10859//9603 10856//9600 +f 10869//9613 10862//9606 10864//9608 10871//9615 +f 10870//9614 10869//9613 10871//9615 10872//9616 +f 10873//9617 10874//9618 10864//9608 10863//9607 +f 10511//9255 10873//9617 10863//9607 10512//9256 +f 10873//9617 10511//9255 10508//9252 10875//9619 +f 10874//9618 10873//9617 10875//9619 10876//9620 +f 10877//9621 10878//9622 10827//9571 10826//9570 +f 10866//9610 10877//9621 10826//9570 10825//9569 +f 10877//9621 10866//9610 10868//9612 10879//9623 +f 10878//9622 10877//9621 10879//9623 10880//9624 +f 10881//9625 10882//9626 10868//9612 10867//9611 +f 10870//9614 10881//9625 10867//9611 10860//9604 +f 10881//9625 10870//9614 10872//9616 10883//9627 +f 10882//9626 10881//9625 10883//9627 10884//9628 +f 10885//9629 10886//9630 10872//9616 10871//9615 +f 10874//9618 10885//9629 10871//9615 10864//9608 +f 10885//9629 10874//9618 10876//9620 10887//9631 +f 10886//9630 10885//9629 10887//9631 10888//9632 +f 10889//9633 10890//9634 10876//9620 10875//9619 +f 10507//9251 10889//9633 10875//9619 10508//9252 +f 10889//9633 10507//9251 10484//9228 10891//9635 +f 10890//9634 10889//9633 10891//9635 10892//9636 +f 10893//9637 10894//9638 10892//9636 10891//9635 +f 10483//9227 10893//9637 10891//9635 10484//9228 +f 10893//9637 10483//9227 10410//9154 10409//9153 +f 10894//9638 10893//9637 10409//9153 10400//9144 +f 10895//9639 10896//9640 10888//9632 10887//9631 +f 10890//9634 10895//9639 10887//9631 10876//9620 +f 10895//9639 10890//9634 10892//9636 10897//9641 +f 10896//9640 10895//9639 10897//9641 10898//9642 +f 10899//9643 10900//9644 10884//9628 10883//9627 +f 10886//9630 10899//9643 10883//9627 10872//9616 +f 10899//9643 10886//9630 10888//9632 10901//9645 +f 10900//9644 10899//9643 10901//9645 10902//9646 +f 10903//9647 10904//9648 10898//9642 10897//9641 +f 10894//9638 10903//9647 10897//9641 10892//9636 +f 10903//9647 10894//9638 10400//9144 10399//9143 +f 10904//9648 10903//9647 10399//9143 10398//9142 +f 10905//9649 10906//9650 10902//9646 10901//9645 +f 10896//9640 10905//9649 10901//9645 10888//9632 +f 10905//9649 10896//9640 10898//9642 10907//9651 +f 10906//9650 10905//9649 10907//9651 10908//9652 +f 10909//9653 10910//9654 10908//9652 10907//9651 +f 10904//9648 10909//9653 10907//9651 10898//9642 +f 10909//9653 10904//9648 10398//9142 10911//9655 +f 10910//9654 10909//9653 10911//9655 10912//9656 +f 10913//9657 10914//9658 10912//9656 10911//9655 +f 10397//9141 10913//9657 10911//9655 10398//9142 +f 10913//9657 10397//9141 10374//9118 10373//9117 +f 10914//9658 10913//9657 10373//9117 10370//9114 +f 10915//9659 10916//9660 10917//9661 10918//9662 +f 10906//9650 10915//9659 10918//9662 10902//9646 +f 10915//9659 10906//9650 10908//9652 10919//9663 +f 10916//9660 10915//9659 10919//9663 10920//9664 +f 10921//9665 10922//9666 10923//9667 10924//9668 +f 10914//9658 10921//9665 10924//9668 10912//9656 +f 10921//9665 10914//9658 10370//9114 10369//9113 +f 10922//9666 10921//9665 10369//9113 10368//9112 +f 10925//9669 10926//9670 10920//9664 10919//9663 +f 10910//9654 10925//9669 10919//9663 10908//9652 +f 10925//9669 10910//9654 10912//9656 10924//9668 +f 10926//9670 10925//9669 10924//9668 10923//9667 +f 10927//9671 10928//9672 10929//9673 10930//9674 +f 10922//9666 10927//9671 10930//9674 10923//9667 +f 10927//9671 10922//9666 10368//9112 10931//9675 +f 10928//9672 10927//9671 10931//9675 10932//9676 +f 10933//9677 10934//9678 10935//9679 10936//9680 +f 10926//9670 10933//9677 10936//9680 10920//9664 +f 10933//9677 10926//9670 10923//9667 10930//9674 +f 10934//9678 10933//9677 10930//9674 10929//9673 +f 10937//9681 10938//9682 10939//9683 10940//9684 +f 10916//9660 10937//9681 10940//9684 10917//9661 +f 10937//9681 10916//9660 10920//9664 10936//9680 +f 10938//9682 10937//9681 10936//9680 10935//9679 +f 10941//9685 10900//9644 10902//9646 10918//9662 +f 10942//9686 10941//9685 10918//9662 10917//9661 +f 10941//9685 10942//9686 10943//9687 10944//9688 +f 10900//9644 10941//9685 10944//9688 10884//9628 +f 10945//9689 10942//9686 10917//9661 10940//9684 +f 10946//9690 10945//9689 10940//9684 10939//9683 +f 10945//9689 10946//9690 10947//9691 10948//9692 +f 10942//9686 10945//9689 10948//9692 10943//9687 +f 10949//9693 10882//9626 10884//9628 10944//9688 +f 10950//9694 10949//9693 10944//9688 10943//9687 +f 10949//9693 10950//9694 10880//9624 10879//9623 +f 10882//9626 10949//9693 10879//9623 10868//9612 +f 10951//9695 10952//9696 10953//9697 10954//9698 +f 10950//9694 10951//9695 10954//9698 10880//9624 +f 10951//9695 10950//9694 10943//9687 10948//9692 +f 10952//9696 10951//9695 10948//9692 10947//9691 +f 10955//9699 10956//9700 10839//9583 10838//9582 +f 10878//9622 10955//9699 10838//9582 10827//9571 +f 10955//9699 10878//9622 10880//9624 10954//9698 +f 10956//9700 10955//9699 10954//9698 10953//9697 +f 10957//9701 10958//9702 10959//9703 10960//9704 +f 10952//9696 10957//9701 10960//9704 10953//9697 +f 10957//9701 10952//9696 10947//9691 10961//9705 +f 10958//9702 10957//9701 10961//9705 10962//9706 +f 10963//9707 10964//9708 10801//9545 10800//9544 +f 10837//9581 10963//9707 10800//9544 10799//9543 +f 10963//9707 10837//9581 10839//9583 10965//9709 +f 10964//9708 10963//9707 10965//9709 10966//9710 +f 10967//9711 10968//9712 10966//9710 10965//9709 +f 10956//9700 10967//9711 10965//9709 10839//9583 +f 10967//9711 10956//9700 10953//9697 10960//9704 +f 10968//9712 10967//9711 10960//9704 10959//9703 +f 10969//9713 10970//9714 10776//9520 10775//9519 +f 10797//9541 10969//9713 10775//9519 10770//9514 +f 10969//9713 10797//9541 10801//9545 10971//9715 +f 10970//9714 10969//9713 10971//9715 10972//9716 +f 10973//9717 10974//9718 10972//9716 10971//9715 +f 10964//9708 10973//9717 10971//9715 10801//9545 +f 10973//9717 10964//9708 10966//9710 10975//9719 +f 10974//9718 10973//9717 10975//9719 10976//9720 +f 10977//9721 10978//9722 10976//9720 10975//9719 +f 10968//9712 10977//9721 10975//9719 10966//9710 +f 10977//9721 10968//9712 10959//9703 10979//9723 +f 10978//9722 10977//9721 10979//9723 10980//9724 +f 10981//9725 10982//9726 10962//9706 10961//9705 +f 10946//9690 10981//9725 10961//9705 10947//9691 +f 10981//9725 10946//9690 10939//9683 10983//9727 +f 10982//9726 10981//9725 10983//9727 10984//9728 +f 10985//9729 10986//9730 10980//9724 10979//9723 +f 10958//9702 10985//9729 10979//9723 10959//9703 +f 10985//9729 10958//9702 10962//9706 10987//9731 +f 10986//9730 10985//9729 10987//9731 10988//9732 +f 10989//9733 10990//9734 10984//9728 10983//9727 +f 10938//9682 10989//9733 10983//9727 10939//9683 +f 10989//9733 10938//9682 10935//9679 10991//9735 +f 10990//9734 10989//9733 10991//9735 10992//9736 +f 10993//9737 10994//9738 10988//9732 10987//9731 +f 10982//9726 10993//9737 10987//9731 10962//9706 +f 10993//9737 10982//9726 10984//9728 10995//9739 +f 10994//9738 10993//9737 10995//9739 10996//9740 +f 10997//9741 10998//9742 10992//9736 10991//9735 +f 10934//9678 10997//9741 10991//9735 10935//9679 +f 10997//9741 10934//9678 10929//9673 10999//9743 +f 10998//9742 10997//9741 10999//9743 11000//9744 +f 11001//9745 11002//9746 10996//9740 10995//9739 +f 10990//9734 11001//9745 10995//9739 10984//9728 +f 11001//9745 10990//9734 10992//9736 11003//9747 +f 11002//9746 11001//9745 11003//9747 11004//9748 +f 11005//9749 11006//9750 11007//9751 11008//9752 +f 10986//9730 11005//9749 11008//9752 10980//9724 +f 11005//9749 10986//9730 10988//9732 11009//9753 +f 11006//9750 11005//9749 11009//9753 11010//9754 +f 11011//9755 11012//9756 11010//9754 11009//9753 +f 10994//9738 11011//9755 11009//9753 10988//9732 +f 11011//9755 10994//9738 10996//9740 11013//9757 +f 11012//9756 11011//9755 11013//9757 11014//9758 +f 11015//9759 10978//9722 10980//9724 11008//9752 +f 11016//9760 11015//9759 11008//9752 11007//9751 +f 11015//9759 11016//9760 11017//9761 11018//9762 +f 10978//9722 11015//9759 11018//9762 10976//9720 +f 11019//9763 11020//9764 11004//9748 11003//9747 +f 10998//9742 11019//9763 11003//9747 10992//9736 +f 11019//9763 10998//9742 11000//9744 11021//9765 +f 11020//9764 11019//9763 11021//9765 11022//9766 +f 11023//9767 10974//9718 10976//9720 11018//9762 +f 11024//9768 11023//9767 11018//9762 11017//9761 +f 11023//9767 11024//9768 11025//9769 11026//9770 +f 10974//9718 11023//9767 11026//9770 10972//9716 +f 11027//9771 11028//9772 11000//9744 10999//9743 +f 10928//9672 11027//9771 10999//9743 10929//9673 +f 11027//9771 10928//9672 10932//9676 11029//9773 +f 11028//9772 11027//9771 11029//9773 11030//9774 +f 11031//9775 11032//9776 10932//9676 10931//9675 +f 10367//9111 11031//9775 10931//9675 10368//9112 +f 11031//9775 10367//9111 10246//8990 10245//8989 +f 11032//9776 11031//9775 10245//8989 10236//8980 +f 11033//9777 11034//9778 11030//9774 11029//9773 +f 11032//9776 11033//9777 11029//9773 10932//9676 +f 11033//9777 11032//9776 10236//8980 10235//8979 +f 11034//9778 11033//9777 10235//8979 10239//8983 +f 11035//9779 11036//9780 11022//9766 11021//9765 +f 11028//9772 11035//9779 11021//9765 11000//9744 +f 11035//9779 11028//9772 11030//9774 11037//9781 +f 11036//9780 11035//9779 11037//9781 11038//9782 +f 11039//9783 11040//9784 10239//8983 10238//8982 +f 10217//8961 11039//9783 10238//8982 10218//8962 +f 11039//9783 10217//8961 10153//8897 11041//9785 +f 11040//9784 11039//9783 11041//9785 11042//9786 +f 11043//9787 11044//9788 11038//9782 11037//9781 +f 11034//9778 11043//9787 11037//9781 11030//9774 +f 11043//9787 11034//9778 10239//8983 11040//9784 +f 11044//9788 11043//9787 11040//9784 11042//9786 +f 11045//9789 11046//9790 11042//9786 11041//9785 +f 10152//8896 11045//9789 11041//9785 10153//8897 +f 11045//9789 10152//8896 10131//8875 10130//8874 +f 11046//9790 11045//9789 10130//8874 10129//8873 +f 11047//9791 11044//9788 11042//9786 11046//9790 +f 10133//8877 11047//9791 11046//9790 10129//8873 +f 11047//9791 10133//8877 10135//8879 11048//9792 +f 11044//9788 11047//9791 11048//9792 11038//9782 +f 11049//9793 11036//9780 11038//9782 11048//9792 +f 11050//9794 11049//9793 11048//9792 10135//8879 +f 11049//9793 11050//9794 11051//9795 11052//9796 +f 11036//9780 11049//9793 11052//9796 11022//9766 +f 11053//9797 11050//9794 10135//8879 10134//8878 +f 10123//8867 11053//9797 10134//8878 10113//8857 +f 11053//9797 10123//8867 10125//8869 11054//9798 +f 11050//9794 11053//9797 11054//9798 11051//9795 +f 11055//9799 11020//9764 11022//9766 11052//9796 +f 11056//9800 11055//9799 11052//9796 11051//9795 +f 11055//9799 11056//9800 11057//9801 11058//9802 +f 11020//9764 11055//9799 11058//9802 11004//9748 +f 11059//9803 11056//9800 11051//9795 11054//9798 +f 11060//9804 11059//9803 11054//9798 10125//8869 +f 11059//9803 11060//9804 11061//9805 11062//9806 +f 11056//9800 11059//9803 11062//9806 11057//9801 +f 11063//9807 11060//9804 10125//8869 10124//8868 +f 11064//9808 11063//9807 10124//8868 10103//8847 +f 11063//9807 11064//9808 11065//9809 11066//9810 +f 11060//9804 11063//9807 11066//9810 11061//9805 +f 11067//9811 11002//9746 11004//9748 11058//9802 +f 11068//9812 11067//9811 11058//9802 11057//9801 +f 11067//9811 11068//9812 11014//9758 11013//9757 +f 11002//9746 11067//9811 11013//9757 10996//9740 +f 11069//9813 11068//9812 11057//9801 11062//9806 +f 11070//9814 11069//9813 11062//9806 11061//9805 +f 11069//9813 11070//9814 11071//9815 11072//9816 +f 11068//9812 11069//9813 11072//9816 11014//9758 +f 11073//9817 11074//9818 11075//9819 11076//9820 +f 11012//9756 11073//9817 11076//9820 11010//9754 +f 11073//9817 11012//9756 11014//9758 11072//9816 +f 11074//9818 11073//9817 11072//9816 11071//9815 +f 11077//9821 11078//9822 11079//9823 11080//9824 +f 11070//9814 11077//9821 11080//9824 11071//9815 +f 11077//9821 11070//9814 11061//9805 11066//9810 +f 11078//9822 11077//9821 11066//9810 11065//9809 +f 11081//9825 11082//9826 11083//9827 11084//9828 +f 11074//9818 11081//9825 11084//9828 11075//9819 +f 11081//9825 11074//9818 11071//9815 11080//9824 +f 11082//9826 11081//9825 11080//9824 11079//9823 +f 11085//9829 11006//9750 11010//9754 11076//9820 +f 11086//9830 11085//9829 11076//9820 11075//9819 +f 11085//9829 11086//9830 11087//9831 11088//9832 +f 11006//9750 11085//9829 11088//9832 11007//9751 +f 11089//9833 11086//9830 11075//9819 11084//9828 +f 11090//9834 11089//9833 11084//9828 11083//9827 +f 11089//9833 11090//9834 11091//9835 11092//9836 +f 11086//9830 11089//9833 11092//9836 11087//9831 +f 11093//9837 11016//9760 11007//9751 11088//9832 +f 11094//9838 11093//9837 11088//9832 11087//9831 +f 11093//9837 11094//9838 11095//9839 11096//9840 +f 11016//9760 11093//9837 11096//9840 11017//9761 +f 11097//9841 11094//9838 11087//9831 11092//9836 +f 11098//9842 11097//9841 11092//9836 11091//9835 +f 11097//9841 11098//9842 11099//9843 11100//9844 +f 11094//9838 11097//9841 11100//9844 11095//9839 +f 11101//9845 11024//9768 11017//9761 11096//9840 +f 11102//9846 11101//9845 11096//9840 11095//9839 +f 11101//9845 11102//9846 11103//9847 11104//9848 +f 11024//9768 11101//9845 11104//9848 11025//9769 +f 11105//9849 11102//9846 11095//9839 11100//9844 +f 11106//9850 11105//9849 11100//9844 11099//9843 +f 11105//9849 11106//9850 11107//9851 11108//9852 +f 11102//9846 11105//9849 11108//9852 11103//9847 +f 11109//9853 11110//9854 11111//9855 11112//9856 +f 11098//9842 11109//9853 11112//9856 11099//9843 +f 11109//9853 11098//9842 11091//9835 11113//9857 +f 11110//9854 11109//9853 11113//9857 11114//9858 +f 11115//9859 11116//9860 11117//9861 11118//9862 +f 11106//9850 11115//9859 11118//9862 11107//9851 +f 11115//9859 11106//9850 11099//9843 11112//9856 +f 11116//9860 11115//9859 11112//9856 11111//9855 +f 11119//9863 11120//9864 11103//9847 11108//9852 +f 11121//9865 11119//9863 11108//9852 11107//9851 +f 11119//9863 11121//9865 11122//9866 11123//9867 +f 11120//9864 11119//9863 11123//9867 11124//9868 +f 11125//9869 11126//9870 11114//9858 11113//9857 +f 11090//9834 11125//9869 11113//9857 11091//9835 +f 11125//9869 11090//9834 11083//9827 11127//9871 +f 11126//9870 11125//9869 11127//9871 11128//9872 +f 11129//9873 11130//9874 11025//9769 11104//9848 +f 11120//9864 11129//9873 11104//9848 11103//9847 +f 11129//9873 11120//9864 11124//9868 11131//9875 +f 11130//9874 11129//9873 11131//9875 11132//9876 +f 11133//9877 11134//9878 11128//9872 11127//9871 +f 11082//9826 11133//9877 11127//9871 11083//9827 +f 11133//9877 11082//9826 11079//9823 11135//9879 +f 11134//9878 11133//9877 11135//9879 11136//9880 +f 11137//9881 10970//9714 10972//9716 11026//9770 +f 11130//9874 11137//9881 11026//9770 11025//9769 +f 11137//9881 11130//9874 11132//9876 11138//9882 +f 10970//9714 11137//9881 11138//9882 10776//9520 +f 11139//9883 10780//9524 10766//9510 10777//9521 +f 11138//9882 11139//9883 10777//9521 10776//9520 +f 11139//9883 11138//9882 11132//9876 11140//9884 +f 10780//9524 11139//9883 11140//9884 10781//9525 +f 11141//9885 11142//9886 10781//9525 11140//9884 +f 11131//9875 11141//9885 11140//9884 11132//9876 +f 11141//9885 11131//9875 11124//9868 11143//9887 +f 11142//9886 11141//9885 11143//9887 11144//9888 +f 11145//9889 11146//9890 11144//9888 11143//9887 +f 11123//9867 11145//9889 11143//9887 11124//9868 +f 11145//9889 11123//9867 11122//9866 11147//9891 +f 11146//9890 11145//9889 11147//9891 9689//8433 +f 11148//9892 11149//9893 10783//9527 10782//9526 +f 11142//9886 11148//9892 10782//9526 10781//9525 +f 11148//9892 11142//9886 11144//9888 11150//9894 +f 11149//9893 11148//9892 11150//9894 9679//8423 +f 11151//9895 9677//8421 9679//8423 11150//9894 +f 11146//9890 11151//9895 11150//9894 11144//9888 +f 11151//9895 11146//9890 9689//8433 9688//8432 +f 9677//8421 11151//9895 9688//8432 9675//8419 +f 11152//9896 11153//9897 10791//9535 10790//9534 +f 11149//9893 11152//9896 10790//9534 10783//9527 +f 11152//9896 11149//9893 9679//8423 9678//8422 +f 11153//9897 11152//9896 9678//8422 9667//8411 +f 11154//9898 9661//8405 9663//8407 11155//9899 +f 11153//9897 11154//9898 11155//9899 10791//9535 +f 11154//9898 11153//9897 9667//8411 9666//8410 +f 9661//8405 11154//9898 9666//8410 9649//8393 +f 11156//9900 10789//9533 10791//9535 11155//9899 +f 11157//9901 11156//9900 11155//9899 9663//8407 +f 11156//9900 11157//9901 10755//9499 10754//9498 +f 10789//9533 11156//9900 10754//9498 10753//9497 +f 11158//9902 9655//8399 9659//8403 11159//9903 +f 11157//9901 11158//9902 11159//9903 10755//9499 +f 11158//9902 11157//9901 9663//8407 9662//8406 +f 9655//8399 11158//9902 9662//8406 9645//8389 +f 11160//9904 10751//9495 10755//9499 11159//9903 +f 11161//9905 11160//9904 11159//9903 9659//8403 +f 11160//9904 11161//9905 10741//9485 10740//9484 +f 10751//9495 11160//9904 10740//9484 10739//9483 +f 11162//9906 11163//9907 11164//9908 11165//9909 +f 10737//9481 11162//9906 11165//9909 10735//9479 +f 11162//9906 10737//9481 10741//9485 11166//9910 +f 11163//9907 11162//9906 11166//9910 11167//9911 +f 11168//9912 10733//9477 10735//9479 11165//9909 +f 11169//9913 11168//9912 11165//9909 11164//9908 +f 11168//9912 11169//9913 10727//9471 10726//9470 +f 10733//9477 11168//9912 10726//9470 10703//9447 +f 11170//9914 9687//8431 9689//8433 11147//9891 +f 11171//9915 11170//9914 11147//9891 11122//9866 +f 11170//9914 11171//9915 11172//9916 11173//9917 +f 9687//8431 11170//9914 11173//9917 9685//8429 +f 11174//9918 11175//9919 11172//9916 11171//9915 +f 11121//9865 11174//9918 11171//9915 11122//9866 +f 11174//9918 11121//9865 11107//9851 11118//9862 +f 11175//9919 11174//9918 11118//9862 11117//9861 +f 11176//9920 9681//8425 9685//8429 11173//9917 +f 11177//9921 11176//9920 11173//9917 11172//9916 +f 11176//9920 11177//9921 9701//8445 9700//8444 +f 9681//8425 11176//9920 9700//8444 9682//8426 +f 11178//9922 11179//9923 9701//8445 11177//9921 +f 11175//9919 11178//9922 11177//9921 11172//9916 +f 11178//9922 11175//9919 11117//9861 11180//9924 +f 11179//9923 11178//9922 11180//9924 11181//9925 +f 11182//9926 9725//8469 9698//8442 9697//8441 +f 11179//9923 11182//9926 9697//8441 9701//8445 +f 11182//9926 11179//9923 11181//9925 11183//9927 +f 9725//8469 11182//9926 11183//9927 9726//8470 +f 11184//9928 11185//9929 11181//9925 11180//9924 +f 11116//9860 11184//9928 11180//9924 11117//9861 +f 11184//9928 11116//9860 11111//9855 11186//9930 +f 11185//9929 11184//9928 11186//9930 11187//9931 +f 11188//9932 11189//9933 9726//8470 11183//9927 +f 11185//9929 11188//9932 11183//9927 11181//9925 +f 11188//9932 11185//9929 11187//9931 11190//9934 +f 11189//9933 11188//9932 11190//9934 11191//9935 +f 11192//9936 11193//9937 11187//9931 11186//9930 +f 11110//9854 11192//9936 11186//9930 11111//9855 +f 11192//9936 11110//9854 11114//9858 11194//9938 +f 11193//9937 11192//9936 11194//9938 11195//9939 +f 11196//9940 11197//9941 9715//8459 9727//8471 +f 11189//9933 11196//9940 9727//8471 9726//8470 +f 11196//9940 11189//9933 11191//9935 11198//9942 +f 11197//9941 11196//9940 11198//9942 11199//9943 +f 11200//9944 11201//9945 11191//9935 11190//9934 +f 11193//9937 11200//9944 11190//9934 11187//9931 +f 11200//9944 11193//9937 11195//9939 11202//9946 +f 11201//9945 11200//9944 11202//9946 11203//9947 +f 11204//9948 11205//9949 11195//9939 11194//9938 +f 11126//9870 11204//9948 11194//9938 11114//9858 +f 11204//9948 11126//9870 11128//9872 11206//9950 +f 11205//9949 11204//9948 11206//9950 11207//9951 +f 11208//9952 11209//9953 9717//8461 9716//8460 +f 11197//9941 11208//9952 9716//8460 9715//8459 +f 11208//9952 11197//9941 11199//9943 11210//9954 +f 11209//9953 11208//9952 11210//9954 11211//9955 +f 11212//9956 11213//9957 11199//9943 11198//9942 +f 11201//9945 11212//9956 11198//9942 11191//9935 +f 11212//9956 11201//9945 11203//9947 11214//9958 +f 11213//9957 11212//9956 11214//9958 11215//9959 +f 11216//9960 11217//9961 11203//9947 11202//9946 +f 11205//9949 11216//9960 11202//9946 11195//9939 +f 11216//9960 11205//9949 11207//9951 11218//9962 +f 11217//9961 11216//9960 11218//9962 11219//9963 +f 11220//9964 9741//8485 9720//8464 9723//8467 +f 11209//9953 11220//9964 9723//8467 9717//8461 +f 11220//9964 11209//9953 11211//9955 11221//9965 +f 9741//8485 11220//9964 11221//9965 9742//8486 +f 11222//9966 11223//9967 11211//9955 11210//9954 +f 11213//9957 11222//9966 11210//9954 11199//9943 +f 11222//9966 11213//9957 11215//9959 11224//9968 +f 11223//9967 11222//9966 11224//9968 9773//8517 +f 11225//9969 9757//8501 9742//8486 11221//9965 +f 11223//9967 11225//9969 11221//9965 11211//9955 +f 11225//9969 11223//9967 9773//8517 9772//8516 +f 9757//8501 11225//9969 9772//8516 9758//8502 +f 11226//9970 11227//9971 9893//8637 9892//8636 +f 9769//8513 11226//9970 9892//8636 9770//8514 +f 11226//9970 9769//8513 9773//8517 11224//9968 +f 11227//9971 11226//9970 11224//9968 11215//9959 +f 11228//9972 11227//9971 11215//9959 11214//9958 +f 11217//9961 11228//9972 11214//9958 11203//9947 +f 11228//9972 11217//9961 11219//9963 11229//9973 +f 11227//9971 11228//9972 11229//9973 9893//8637 +f 11230//9974 11231//9975 9903//8647 9902//8646 +f 9891//8635 11230//9974 9902//8646 9889//8633 +f 11230//9974 9891//8635 9893//8637 11229//9973 +f 11231//9975 11230//9974 11229//9973 11219//9963 +f 11232//9976 11233//9977 10099//8843 10098//8842 +f 9901//8645 11232//9976 10098//8842 9899//8643 +f 11232//9976 9901//8645 9903//8647 11234//9978 +f 11233//9977 11232//9976 11234//9978 11235//9979 +f 11236//9980 11237//9981 11235//9979 11234//9978 +f 11231//9975 11236//9980 11234//9978 9903//8647 +f 11236//9980 11231//9975 11219//9963 11218//9962 +f 11237//9981 11236//9980 11218//9962 11207//9951 +f 11238//9982 11239//9983 10107//8851 10106//8850 +f 11233//9977 11238//9982 10106//8850 10099//8843 +f 11238//9982 11233//9977 11235//9979 11240//9984 +f 11239//9983 11238//9982 11240//9984 11136//9880 +f 11241//9985 11064//9808 10103//8847 10102//8846 +f 10105//8849 11241//9985 10102//8846 10095//8839 +f 11241//9985 10105//8849 10107//8851 11242//9986 +f 11064//9808 11241//9985 11242//9986 11065//9809 +f 11243//9987 11134//9878 11136//9880 11240//9984 +f 11237//9981 11243//9987 11240//9984 11235//9979 +f 11243//9987 11237//9981 11207//9951 11206//9950 +f 11134//9878 11243//9987 11206//9950 11128//9872 +f 11244//9988 11078//9822 11065//9809 11242//9986 +f 11239//9983 11244//9988 11242//9986 10107//8851 +f 11244//9988 11239//9983 11136//9880 11135//9879 +f 11078//9822 11244//9988 11135//9879 11079//9823 +f 11245//9989 11246//9990 10618//9362 10617//9361 +f 10624//9368 11245//9989 10617//9361 10614//9358 +f 11245//9989 10624//9368 10628//9372 10646//9390 +f 11246//9990 11245//9989 10646//9390 10645//9389 +f 11247//9991 11248//9992 10622//9366 10621//9365 +f 11246//9990 11247//9991 10621//9365 10618//9362 +f 11247//9991 11246//9990 10645//9389 11249//9993 +f 11248//9992 11247//9991 11249//9993 11250//9994 +f 11251//9995 11252//9996 11250//9994 11249//9993 +f 10644//9388 11251//9995 11249//9993 10645//9389 +f 11251//9995 10644//9388 10648//9392 11253//9997 +f 11252//9996 11251//9995 11253//9997 11254//9998 +f 11255//9999 11256//10000 11254//9998 11253//9997 +f 10650//9394 11255//9999 11253//9997 10648//9392 +f 11255//9999 10650//9394 10654//9398 10731//9475 +f 11256//10000 11255//9999 10731//9475 10730//9474 +f 11257//10001 11258//10002 10464//9208 10469//9213 +f 11259//10003 11257//10001 10469//9213 10468//9212 +f 11257//10001 11259//10003 10302//9046 10301//9045 +f 11258//10002 11257//10001 10301//9045 10298//9042 +f 11260//10004 10308//9052 10312//9056 10465//9209 +f 11258//10002 11260//10004 10465//9209 10464//9208 +f 11260//10004 11258//10002 10298//9042 10296//9040 +f 10308//9052 11260//10004 10296//9040 10295//9039 +f 11261//10005 11262//10006 9515//8259 9514//8258 +f 9495//8239 11261//10005 9514//8258 9496//8240 +f 11261//10005 9495//8239 9433//8177 11263//10007 +f 11262//10006 11261//10005 11263//10007 11264//10008 +f 11265//10009 11266//10010 11267//10011 11268//10012 +f 11269//10013 11265//10009 11268//10012 9439//8183 +f 11265//10009 11269//10013 11270//10014 11271//10015 +f 11266//10010 11265//10009 11271//10015 11272//10016 +f 11273//10017 11274//10018 11275//10019 11276//10020 +f 11269//10013 11273//10017 11276//10020 11270//10014 +f 11273//10017 11269//10013 9439//8183 9438//8182 +f 11274//10018 11273//10017 9438//8182 9437//8181 +f 11277//10021 11278//10022 11279//10023 11280//10024 +f 11274//10018 11277//10021 11280//10024 11275//10019 +f 11277//10021 11274//10018 9437//8181 9479//8223 +f 11278//10022 11277//10021 9479//8223 9478//8222 +f 11281//10025 11282//10026 11283//10027 11284//10028 +f 11278//10022 11281//10025 11284//10028 11279//10023 +f 11281//10025 11278//10022 9478//8222 9485//8229 +f 11282//10026 11281//10025 9485//8229 9484//8228 +f 11285//10029 11286//10030 11287//10031 11288//10032 +f 11282//10026 11285//10029 11288//10032 11283//10027 +f 11285//10029 11282//10026 9484//8228 9501//8245 +f 11286//10030 11285//10029 9501//8245 9500//8244 +f 11289//10033 11290//10034 11291//10035 11292//10036 +f 11286//10030 11289//10033 11292//10036 11287//10031 +f 11289//10033 11286//10030 9500//8244 9555//8299 +f 11290//10034 11289//10033 9555//8299 9554//8298 +f 11293//10037 11294//10038 11291//10035 11290//10034 +f 9567//8311 11293//10037 11290//10034 9554//8298 +f 11293//10037 9567//8311 9571//8315 11295//10039 +f 11294//10038 11293//10037 11295//10039 11296//10040 +f 11297//10041 11298//10042 11296//10040 11295//10039 +f 9729//8473 11297//10041 11295//10039 9571//8315 +f 11297//10041 9729//8473 9733//8477 11299//10043 +f 11298//10042 11297//10041 11299//10043 11300//10044 +f 11301//10045 11302//10046 11300//10044 11299//10043 +f 9735//8479 11301//10045 11299//10043 9733//8477 +f 11301//10045 9735//8479 9739//8483 11303//10047 +f 11302//10046 11301//10045 11303//10047 11304//10048 +f 11305//10049 11306//10050 11304//10048 11303//10047 +f 9745//8489 11305//10049 11303//10047 9739//8483 +f 11305//10049 9745//8489 9749//8493 11307//10051 +f 11306//10050 11305//10049 11307//10051 11308//10052 +f 11309//10053 11310//10054 11308//10052 11307//10051 +f 9751//8495 11309//10053 11307//10051 9749//8493 +f 11309//10053 9751//8495 9755//8499 11311//10055 +f 11310//10054 11309//10053 11311//10055 11312//10056 +f 11313//10057 11314//10058 11312//10056 11311//10055 +f 9779//8523 11313//10057 11311//10055 9755//8499 +f 11313//10057 9779//8523 9783//8527 11315//10059 +f 11314//10058 11313//10057 11315//10059 11316//10060 +f 11317//10061 11318//10062 11316//10060 11315//10059 +f 9785//8529 11317//10061 11315//10059 9783//8527 +f 11317//10061 9785//8529 9789//8533 11319//10063 +f 11318//10062 11317//10061 11319//10063 11320//10064 +f 11321//10065 11322//10066 11320//10064 11319//10063 +f 9795//8539 11321//10065 11319//10063 9789//8533 +f 11321//10065 9795//8539 9799//8543 11323//10067 +f 11322//10066 11321//10065 11323//10067 11324//10068 +f 11325//10069 11326//10070 11324//10068 11323//10067 +f 9805//8549 11325//10069 11323//10067 9799//8543 +f 11325//10069 9805//8549 9809//8553 11327//10071 +f 11326//10070 11325//10069 11327//10071 11328//10072 +f 11329//10073 11330//10074 11331//10075 11332//10076 +f 11327//10071 11329//10073 11332//10076 11328//10072 +f 11329//10073 11327//10071 9809//8553 9817//8561 +f 11330//10074 11329//10073 9817//8561 9816//8560 +f 11333//10077 11334//10078 11335//10079 11336//10080 +f 11330//10074 11333//10077 11336//10080 11331//10075 +f 11333//10077 11330//10074 9816//8560 9831//8575 +f 11334//10078 11333//10077 9831//8575 9830//8574 +f 11337//10081 11338//10082 11339//10083 11340//10084 +f 11334//10078 11337//10081 11340//10084 11335//10079 +f 11337//10081 11334//10078 9830//8574 9835//8579 +f 11338//10082 11337//10081 9835//8579 9454//8198 +f 11341//10085 11342//10086 11343//10087 11344//10088 +f 11338//10082 11341//10085 11344//10088 11339//10083 +f 11341//10085 11338//10082 9454//8198 9452//8196 +f 11342//10086 11341//10085 9452//8196 9451//8195 +f 11345//10089 11346//10090 11347//10091 11348//10092 +f 11342//10086 11345//10089 11348//10092 11343//10087 +f 11345//10089 11342//10086 9451//8195 11349//10093 +f 11346//10090 11345//10089 11349//10093 11350//10094 +f 11351//10095 11352//10096 11353//10097 11354//10098 +f 11346//10090 11351//10095 11354//10098 11347//10091 +f 11351//10095 11346//10090 11350//10094 11355//10099 +f 11352//10096 11351//10095 11355//10099 11356//10100 +f 11357//10101 11358//10102 9956//8700 9963//8707 +f 11359//10103 11357//10101 9963//8707 9962//8706 +f 11357//10101 11359//10103 11356//10100 11355//10099 +f 11358//10102 11357//10101 11355//10099 11350//10094 +f 11360//10104 9450//8194 9457//8201 9957//8701 +f 11358//10102 11360//10104 9957//8701 9956//8700 +f 11360//10104 11358//10102 11350//10094 11349//10093 +f 9450//8194 11360//10104 11349//10093 9451//8195 +f 11361//10105 11161//9905 9659//8403 9658//8402 +f 11362//10106 11361//10105 9658//8402 9657//8401 +f 11361//10105 11362//10106 11167//9911 11166//9910 +f 11161//9905 11361//10105 11166//9910 10741//9485 +f 11363//10107 9432//8176 9439//8183 11268//10012 +f 11364//10108 11363//10107 11268//10012 11267//10011 +f 11363//10107 11364//10108 11264//10008 11263//10007 +f 9432//8176 11363//10107 11263//10007 9433//8177 +f 11365//10109 9839//8583 9833//8577 9832//8576 +f 9825//8569 11365//10109 9832//8576 9819//8563 +f 11365//10109 9825//8569 9827//8571 9855//8599 +f 9839//8583 11365//10109 9855//8599 9840//8584 +f 11366//10110 11367//10111 11368//10112 11369//10113 +f 11370//10114 11366//10110 11369//10113 11371//10115 +f 11366//10110 11370//10114 11372//10116 11373//10117 +f 11367//10111 11366//10110 11373//10117 11374//10118 +f 11375//10119 11376//10120 11377//10121 11378//10122 +f 11379//10123 11375//10119 11378//10122 11380//10124 +f 11375//10119 11379//10123 11381//10125 11382//10126 +f 11376//10120 11375//10119 11382//10126 11383//10127 +f 11384//10128 11385//10129 11386//10130 11387//10131 +f 11388//10132 11384//10128 11387//10131 11389//10133 +f 11384//10128 11388//10132 11390//10134 11391//10135 +f 11385//10129 11384//10128 11391//10135 11392//10136 +f 11393//10137 11394//10138 11395//10139 11396//10140 +f 11397//10141 11393//10137 11396//10140 11398//10142 +f 11393//10137 11397//10141 11399//10143 11400//10144 +f 11394//10138 11393//10137 11400//10144 11401//10145 +f 11402//10146 11403//10147 11404//10148 11405//10149 +f 11406//10150 11402//10146 11405//10149 11407//10151 +f 11402//10146 11406//10150 11408//10152 11409//10153 +f 11403//10147 11402//10146 11409//10153 11410//10154 +f 11411//10155 11412//10156 11413//10157 11414//10158 +f 11370//10114 11411//10155 11414//10158 11372//10116 +f 11411//10155 11370//10114 11371//10115 11415//10159 +f 11412//10156 11411//10155 11415//10159 11416//10160 +f 11417//10161 11418//10162 11419//10163 11420//10164 +f 11412//10156 11417//10161 11420//10164 11413//10157 +f 11417//10161 11412//10156 11416//10160 11421//10165 +f 11418//10162 11417//10161 11421//10165 11422//10166 +f 11423//10167 11424//10168 11416//10160 11415//10159 +f 11425//10169 11423//10167 11415//10159 11371//10115 +f 11423//10167 11425//10169 11426//10170 11427//10171 +f 11424//10168 11423//10167 11427//10171 11428//10172 +f 11429//10173 11430//10174 11431//10175 11432//10176 +f 11425//10169 11429//10173 11432//10176 11426//10170 +f 11429//10173 11425//10169 11371//10115 11369//10113 +f 11430//10174 11429//10173 11369//10113 11368//10112 +f 11433//10177 11434//10178 11435//10179 11436//10180 +f 11418//10162 11433//10177 11436//10180 11419//10163 +f 11433//10177 11418//10162 11422//10166 11437//10181 +f 11434//10178 11433//10177 11437//10181 11438//10182 +f 11439//10183 11440//10184 11426//10170 11432//10176 +f 11441//10185 11439//10183 11432//10176 11431//10175 +f 11439//10183 11441//10185 11442//10186 11443//10187 +f 11440//10184 11439//10183 11443//10187 11444//10188 +f 11445//10189 11446//10190 11447//10191 11448//10192 +f 11441//10185 11445//10189 11448//10192 11442//10186 +f 11445//10189 11441//10185 11431//10175 11449//10193 +f 11446//10190 11445//10189 11449//10193 11450//10194 +f 11451//10195 11452//10196 11442//10186 11448//10192 +f 11453//10197 11451//10195 11448//10192 11447//10191 +f 11451//10195 11453//10197 11454//10198 11455//10199 +f 11452//10196 11451//10195 11455//10199 11456//10200 +f 11457//10201 11458//10202 11456//10200 11455//10199 +f 11459//10203 11457//10201 11455//10199 11454//10198 +f 11457//10201 11459//10203 11460//10204 11461//10205 +f 11458//10202 11457//10201 11461//10205 11462//10206 +f 11463//10207 11464//10208 11444//10188 11443//10187 +f 11452//10196 11463//10207 11443//10187 11442//10186 +f 11463//10207 11452//10196 11456//10200 11465//10209 +f 11464//10208 11463//10207 11465//10209 11466//10210 +f 11467//10211 11468//10212 11428//10172 11427//10171 +f 11440//10184 11467//10211 11427//10171 11426//10170 +f 11467//10211 11440//10184 11444//10188 11469//10213 +f 11468//10212 11467//10211 11469//10213 11470//10214 +f 11471//10215 11472//10216 11422//10166 11421//10165 +f 11424//10168 11471//10215 11421//10165 11416//10160 +f 11471//10215 11424//10168 11428//10172 11473//10217 +f 11472//10216 11471//10215 11473//10217 11474//10218 +f 11475//10219 11476//10220 11438//10182 11437//10181 +f 11472//10216 11475//10219 11437//10181 11422//10166 +f 11475//10219 11472//10216 11474//10218 11477//10221 +f 11476//10220 11475//10219 11477//10221 11478//10222 +f 11479//10223 11480//10224 11474//10218 11473//10217 +f 11468//10212 11479//10223 11473//10217 11428//10172 +f 11479//10223 11468//10212 11470//10214 11481//10225 +f 11480//10224 11479//10223 11481//10225 11482//10226 +f 11483//10227 11484//10228 11470//10214 11469//10213 +f 11464//10208 11483//10227 11469//10213 11444//10188 +f 11483//10227 11464//10208 11466//10210 11485//10229 +f 11484//10228 11483//10227 11485//10229 11486//10230 +f 11487//10231 11488//10232 11489//10233 11490//10234 +f 11434//10178 11487//10231 11490//10234 11435//10179 +f 11487//10231 11434//10178 11438//10182 11491//10235 +f 11488//10232 11487//10231 11491//10235 11492//10236 +f 11493//10237 11494//10238 11492//10236 11491//10235 +f 11476//10220 11493//10237 11491//10235 11438//10182 +f 11493//10237 11476//10220 11478//10222 11495//10239 +f 11494//10238 11493//10237 11495//10239 11496//10240 +f 11497//10241 11498//10242 11478//10222 11477//10221 +f 11480//10224 11497//10241 11477//10221 11474//10218 +f 11497//10241 11480//10224 11482//10226 11499//10243 +f 11498//10242 11497//10241 11499//10243 11500//10244 +f 11501//10245 11502//10246 11489//10233 11488//10232 +f 11503//10247 11501//10245 11488//10232 11492//10236 +f 11501//10245 11503//10247 11504//10248 11505//10249 +f 11502//10246 11501//10245 11505//10249 11506//10250 +f 11507//10251 11508//10252 11482//10226 11481//10225 +f 11484//10228 11507//10251 11481//10225 11470//10214 +f 11507//10251 11484//10228 11486//10230 11509//10253 +f 11508//10252 11507//10251 11509//10253 11510//10254 +f 11511//10255 11512//10256 11466//10210 11465//10209 +f 11458//10202 11511//10255 11465//10209 11456//10200 +f 11511//10255 11458//10202 11462//10206 11513//10257 +f 11512//10256 11511//10255 11513//10257 11514//10258 +f 11515//10259 11516//10260 11517//10261 11518//10262 +f 11519//10263 11515//10259 11518//10262 11520//10264 +f 11515//10259 11519//10263 11462//10206 11461//10205 +f 11516//10260 11515//10259 11461//10205 11460//10204 +f 11521//10265 11522//10266 11520//10264 11518//10262 +f 11523//10267 11521//10265 11518//10262 11517//10261 +f 11521//10265 11523//10267 11524//10268 11525//10269 +f 11522//10266 11521//10265 11525//10269 11526//10270 +f 11527//10271 11528//10272 11514//10258 11513//10257 +f 11519//10263 11527//10271 11513//10257 11462//10206 +f 11527//10271 11519//10263 11520//10264 11529//10273 +f 11528//10272 11527//10271 11529//10273 11530//10274 +f 11531//10275 11532//10276 11486//10230 11485//10229 +f 11512//10256 11531//10275 11485//10229 11466//10210 +f 11531//10275 11512//10256 11514//10258 11533//10277 +f 11532//10276 11531//10275 11533//10277 11534//10278 +f 11535//10279 11536//10280 11500//10244 11499//10243 +f 11508//10252 11535//10279 11499//10243 11482//10226 +f 11535//10279 11508//10252 11510//10254 11537//10281 +f 11536//10280 11535//10279 11537//10281 11538//10282 +f 11539//10283 11540//10284 11510//10254 11509//10253 +f 11532//10276 11539//10283 11509//10253 11486//10230 +f 11539//10283 11532//10276 11534//10278 11541//10285 +f 11540//10284 11539//10283 11541//10285 11542//10286 +f 11543//10287 11544//10288 11534//10278 11533//10277 +f 11528//10272 11543//10287 11533//10277 11514//10258 +f 11543//10287 11528//10272 11530//10274 11545//10289 +f 11544//10288 11543//10287 11545//10289 11546//10290 +f 11547//10291 11548//10292 11530//10274 11529//10273 +f 11522//10266 11547//10291 11529//10273 11520//10264 +f 11547//10291 11522//10266 11526//10270 11549//10293 +f 11548//10292 11547//10291 11549//10293 11550//10294 +f 11551//10295 11552//10296 11542//10286 11541//10285 +f 11544//10288 11551//10295 11541//10285 11534//10278 +f 11551//10295 11544//10288 11546//10290 11553//10297 +f 11552//10296 11551//10295 11553//10297 11554//10298 +f 11555//10299 11556//10300 11546//10290 11545//10289 +f 11548//10292 11555//10299 11545//10289 11530//10274 +f 11555//10299 11548//10292 11550//10294 11557//10301 +f 11556//10300 11555//10299 11557//10301 11558//10302 +f 11559//10303 11560//10304 11550//10294 11549//10293 +f 11561//10305 11559//10303 11549//10293 11526//10270 +f 11559//10303 11561//10305 11562//10306 11563//10307 +f 11560//10304 11559//10303 11563//10307 11564//10308 +f 11565//10309 11566//10310 11567//10311 11568//10312 +f 11561//10305 11565//10309 11568//10312 11562//10306 +f 11565//10309 11561//10305 11526//10270 11525//10269 +f 11566//10310 11565//10309 11525//10269 11524//10268 +f 11569//10313 11570//10314 11562//10306 11568//10312 +f 11571//10315 11569//10313 11568//10312 11567//10311 +f 11569//10313 11571//10315 11572//10316 11573//10317 +f 11570//10314 11569//10313 11573//10317 11574//10318 +f 11575//10319 11576//10320 11574//10318 11573//10317 +f 11577//10321 11575//10319 11573//10317 11572//10316 +f 11575//10319 11577//10321 11578//10322 11579//10323 +f 11576//10320 11575//10319 11579//10323 11580//10324 +f 11581//10325 11582//10326 11564//10308 11563//10307 +f 11570//10314 11581//10325 11563//10307 11562//10306 +f 11581//10325 11570//10314 11574//10318 11583//10327 +f 11582//10326 11581//10325 11583//10327 11584//10328 +f 11585//10329 11586//10330 11558//10302 11557//10301 +f 11560//10304 11585//10329 11557//10301 11550//10294 +f 11585//10329 11560//10304 11564//10308 11587//10331 +f 11586//10330 11585//10329 11587//10331 11588//10332 +f 11589//10333 11590//10334 11580//10324 11579//10323 +f 11591//10335 11589//10333 11579//10323 11578//10322 +f 11589//10333 11591//10335 11592//10336 11593//10337 +f 11590//10334 11589//10333 11593//10337 11594//10338 +f 11595//10339 11596//10340 11584//10328 11583//10327 +f 11576//10320 11595//10339 11583//10327 11574//10318 +f 11595//10339 11576//10320 11580//10324 11597//10341 +f 11596//10340 11595//10339 11597//10341 11598//10342 +f 11599//10343 11600//10344 11588//10332 11587//10331 +f 11582//10326 11599//10343 11587//10331 11564//10308 +f 11599//10343 11582//10326 11584//10328 11601//10345 +f 11600//10344 11599//10343 11601//10345 11602//10346 +f 11603//10347 11604//10348 11554//10298 11553//10297 +f 11556//10300 11603//10347 11553//10297 11546//10290 +f 11603//10347 11556//10300 11558//10302 11605//10349 +f 11604//10348 11603//10347 11605//10349 11606//10350 +f 11607//10351 11608//10352 11606//10350 11605//10349 +f 11586//10330 11607//10351 11605//10349 11558//10302 +f 11607//10351 11586//10330 11588//10332 11609//10353 +f 11608//10352 11607//10351 11609//10353 11610//10354 +f 11611//10355 11612//10356 11610//10354 11609//10353 +f 11600//10344 11611//10355 11609//10353 11588//10332 +f 11611//10355 11600//10344 11602//10346 11613//10357 +f 11612//10356 11611//10355 11613//10357 11614//10358 +f 11615//10359 11616//10360 11617//10361 11618//10362 +f 11604//10348 11615//10359 11618//10362 11554//10298 +f 11615//10359 11604//10348 11606//10350 11619//10363 +f 11616//10360 11615//10359 11619//10363 11620//10364 +f 11621//10365 11622//10366 11620//10364 11619//10363 +f 11608//10352 11621//10365 11619//10363 11606//10350 +f 11621//10365 11608//10352 11610//10354 11623//10367 +f 11622//10366 11621//10365 11623//10367 11624//10368 +f 11625//10369 11626//10370 11627//10371 11628//10372 +f 11552//10296 11625//10369 11628//10372 11542//10286 +f 11625//10369 11552//10296 11554//10298 11618//10362 +f 11626//10370 11625//10369 11618//10362 11617//10361 +f 11629//10373 11540//10284 11542//10286 11628//10372 +f 11630//10374 11629//10373 11628//10372 11627//10371 +f 11629//10373 11630//10374 11538//10282 11537//10281 +f 11540//10284 11629//10373 11537//10281 11510//10254 +f 11631//10375 11632//10376 11633//10377 11634//10378 +f 11626//10370 11631//10375 11634//10378 11627//10371 +f 11631//10375 11626//10370 11617//10361 11635//10379 +f 11632//10376 11631//10375 11635//10379 11636//10380 +f 11637//10381 11638//10382 11639//10383 11640//10384 +f 11630//10374 11637//10381 11640//10384 11538//10282 +f 11637//10381 11630//10374 11627//10371 11634//10378 +f 11638//10382 11637//10381 11634//10378 11633//10377 +f 11641//10385 11642//10386 11643//10387 11644//10388 +f 11536//10280 11641//10385 11644//10388 11500//10244 +f 11641//10385 11536//10280 11538//10282 11640//10384 +f 11642//10386 11641//10385 11640//10384 11639//10383 +f 11645//10389 11498//10242 11500//10244 11644//10388 +f 11646//10390 11645//10389 11644//10388 11643//10387 +f 11645//10389 11646//10390 11496//10240 11495//10239 +f 11498//10242 11645//10389 11495//10239 11478//10222 +f 11647//10391 11648//10392 11643//10387 11642//10386 +f 11649//10393 11647//10391 11642//10386 11639//10383 +f 11647//10391 11649//10393 11650//10394 11651//10395 +f 11648//10392 11647//10391 11651//10395 11652//10396 +f 11653//10397 11503//10247 11492//10236 11494//10238 +f 11654//10398 11653//10397 11494//10238 11496//10240 +f 11653//10397 11654//10398 11655//10399 11656//10400 +f 11503//10247 11653//10397 11656//10400 11504//10248 +f 11657//10401 11654//10398 11496//10240 11646//10390 +f 11648//10392 11657//10401 11646//10390 11643//10387 +f 11657//10401 11648//10392 11652//10396 11658//10402 +f 11654//10398 11657//10401 11658//10402 11655//10399 +f 11659//10403 11660//10404 11661//10405 11662//10406 +f 11649//10393 11659//10403 11662//10406 11650//10394 +f 11659//10403 11649//10393 11639//10383 11638//10382 +f 11660//10404 11659//10403 11638//10382 11633//10377 +f 11663//10407 11664//10408 11506//10250 11505//10249 +f 11665//10409 11663//10407 11505//10249 11504//10248 +f 11663//10407 11665//10409 11666//10410 11667//10411 +f 11664//10408 11663//10407 11667//10411 11668//10412 +f 11669//10413 11670//10414 11668//10412 11667//10411 +f 11671//10415 11669//10413 11667//10411 11666//10410 +f 11669//10413 11671//10415 11672//10416 11673//10417 +f 11670//10414 11669//10413 11673//10417 11674//10418 +f 11675//10419 11676//10420 11677//10421 11678//10422 +f 11665//10409 11675//10419 11678//10422 11666//10410 +f 11675//10419 11665//10409 11504//10248 11656//10400 +f 11676//10420 11675//10419 11656//10400 11655//10399 +f 11679//10423 11680//10424 11674//10418 11673//10417 +f 11681//10425 11679//10423 11673//10417 11672//10416 +f 11679//10423 11681//10425 11682//10426 11683//10427 +f 11680//10424 11679//10423 11683//10427 11684//10428 +f 11685//10429 11686//10430 11684//10428 11683//10427 +f 11687//10431 11685//10429 11683//10427 11682//10426 +f 11685//10429 11687//10431 11688//10432 11689//10433 +f 11686//10430 11685//10429 11689//10433 11690//10434 +f 11691//10435 11692//10436 11693//10437 11694//10438 +f 11671//10415 11691//10435 11694//10438 11672//10416 +f 11691//10435 11671//10415 11666//10410 11678//10422 +f 11692//10436 11691//10435 11678//10422 11677//10421 +f 11695//10439 11696//10440 11697//10441 11698//10442 +f 11681//10425 11695//10439 11698//10442 11682//10426 +f 11695//10439 11681//10425 11672//10416 11694//10438 +f 11696//10440 11695//10439 11694//10438 11693//10437 +f 11699//10443 11687//10431 11682//10426 11698//10442 +f 11700//10444 11699//10443 11698//10442 11697//10441 +f 11699//10443 11700//10444 11701//10445 11702//10446 +f 11687//10431 11699//10443 11702//10446 11688//10432 +f 11703//10447 11704//10448 11705//10449 11706//10450 +f 11696//10440 11703//10447 11706//10450 11697//10441 +f 11703//10447 11696//10440 11693//10437 11707//10451 +f 11704//10448 11703//10447 11707//10451 11708//10452 +f 11709//10453 11700//10444 11697//10441 11706//10450 +f 11710//10454 11709//10453 11706//10450 11705//10449 +f 11709//10453 11710//10454 11711//10455 11712//10456 +f 11700//10444 11709//10453 11712//10456 11701//10445 +f 11713//10457 11714//10458 11690//10434 11689//10433 +f 11715//10459 11713//10457 11689//10433 11688//10432 +f 11713//10457 11715//10459 11716//10460 11717//10461 +f 11714//10458 11713//10457 11717//10461 11718//10462 +f 11719//10463 11720//10464 11718//10462 11717//10461 +f 11721//10465 11719//10463 11717//10461 11716//10460 +f 11719//10463 11721//10465 11722//10466 11723//10467 +f 11720//10464 11719//10463 11723//10467 11724//10468 +f 11725//10469 11715//10459 11688//10432 11702//10446 +f 11726//10470 11725//10469 11702//10446 11701//10445 +f 11725//10469 11726//10470 11727//10471 11728//10472 +f 11715//10459 11725//10469 11728//10472 11716//10460 +f 11729//10473 11730//10474 11724//10468 11723//10467 +f 11731//10475 11729//10473 11723//10467 11722//10466 +f 11729//10473 11731//10475 11732//10476 11733//10477 +f 11730//10474 11729//10473 11733//10477 11734//10478 +f 11735//10479 11721//10465 11716//10460 11728//10472 +f 11736//10480 11735//10479 11728//10472 11727//10471 +f 11735//10479 11736//10480 11737//10481 11738//10482 +f 11721//10465 11735//10479 11738//10482 11722//10466 +f 11739//10483 11740//10484 11734//10478 11733//10477 +f 11741//10485 11739//10483 11733//10477 11732//10476 +f 11739//10483 11741//10485 11742//10486 11743//10487 +f 11740//10484 11739//10483 11743//10487 11744//10488 +f 11745//10489 11731//10475 11722//10466 11738//10482 +f 11746//10490 11745//10489 11738//10482 11737//10481 +f 11745//10489 11746//10490 11747//10491 11748//10492 +f 11731//10475 11745//10489 11748//10492 11732//10476 +f 11749//10493 11750//10494 11751//10495 11752//10496 +f 11743//10487 11749//10493 11752//10496 11744//10488 +f 11749//10493 11743//10487 11742//10486 11753//10497 +f 11750//10494 11749//10493 11753//10497 11754//10498 +f 11755//10499 11756//10500 11757//10501 11758//10502 +f 11741//10485 11755//10499 11758//10502 11742//10486 +f 11755//10499 11741//10485 11732//10476 11748//10492 +f 11756//10500 11755//10499 11748//10492 11747//10491 +f 11759//10503 11760//10504 11754//10498 11753//10497 +f 11758//10502 11759//10503 11753//10497 11742//10486 +f 11759//10503 11758//10502 11757//10501 11761//10505 +f 11760//10504 11759//10503 11761//10505 11762//10506 +f 11763//10507 11764//10508 11765//10509 11766//10510 +f 11750//10494 11763//10507 11766//10510 11751//10495 +f 11763//10507 11750//10494 11754//10498 11767//10511 +f 11764//10508 11763//10507 11767//10511 11768//10512 +f 11769//10513 11388//10132 11389//10133 11770//10514 +f 11764//10508 11769//10513 11770//10514 11765//10509 +f 11769//10513 11764//10508 11768//10512 11771//10515 +f 11388//10132 11769//10513 11771//10515 11390//10134 +f 11772//10516 11773//10517 11390//10134 11771//10515 +f 11774//10518 11772//10516 11771//10515 11768//10512 +f 11772//10516 11774//10518 11775//10519 11776//10520 +f 11773//10517 11772//10516 11776//10520 11777//10521 +f 11778//10522 11779//10523 11762//10506 11761//10505 +f 11780//10524 11778//10522 11761//10505 11757//10501 +f 11778//10522 11780//10524 11781//10525 11782//10526 +f 11779//10523 11778//10522 11782//10526 11783//10527 +f 11784//10528 11785//10529 11781//10525 11780//10524 +f 11756//10500 11784//10528 11780//10524 11757//10501 +f 11784//10528 11756//10500 11747//10491 11786//10530 +f 11785//10529 11784//10528 11786//10530 11787//10531 +f 11788//10532 11789//10533 11775//10519 11790//10534 +f 11779//10523 11788//10532 11790//10534 11762//10506 +f 11788//10532 11779//10523 11783//10527 11791//10535 +f 11789//10533 11788//10532 11791//10535 11792//10536 +f 11793//10537 11794//10538 11787//10531 11786//10530 +f 11746//10490 11793//10537 11786//10530 11747//10491 +f 11793//10537 11746//10490 11737//10481 11795//10539 +f 11794//10538 11793//10537 11795//10539 11796//10540 +f 11797//10541 11798//10542 11783//10527 11782//10526 +f 11799//10543 11797//10541 11782//10526 11781//10525 +f 11797//10541 11799//10543 11800//10544 11801//10545 +f 11798//10542 11797//10541 11801//10545 11802//10546 +f 11803//10547 11804//10548 11800//10544 11799//10543 +f 11785//10529 11803//10547 11799//10543 11781//10525 +f 11803//10547 11785//10529 11787//10531 11805//10549 +f 11804//10548 11803//10547 11805//10549 11806//10550 +f 11807//10551 11808//10552 11796//10540 11795//10539 +f 11736//10480 11807//10551 11795//10539 11737//10481 +f 11807//10551 11736//10480 11727//10471 11809//10553 +f 11808//10552 11807//10551 11809//10553 11810//10554 +f 11811//10555 11812//10556 11806//10550 11805//10549 +f 11794//10538 11811//10555 11805//10549 11787//10531 +f 11811//10555 11794//10538 11796//10540 11813//10557 +f 11812//10556 11811//10555 11813//10557 11814//10558 +f 11815//10559 11816//10560 11810//10554 11809//10553 +f 11726//10470 11815//10559 11809//10553 11727//10471 +f 11815//10559 11726//10470 11701//10445 11712//10456 +f 11816//10560 11815//10559 11712//10456 11711//10455 +f 11817//10561 11818//10562 11814//10558 11813//10557 +f 11808//10552 11817//10561 11813//10557 11796//10540 +f 11817//10561 11808//10552 11810//10554 11819//10563 +f 11818//10562 11817//10561 11819//10563 11820//10564 +f 11821//10565 11822//10566 11820//10564 11819//10563 +f 11816//10560 11821//10565 11819//10563 11810//10554 +f 11821//10565 11816//10560 11711//10455 11823//10567 +f 11822//10566 11821//10565 11823//10567 11824//10568 +f 11825//10569 11826//10570 11824//10568 11823//10567 +f 11710//10454 11825//10569 11823//10567 11711//10455 +f 11825//10569 11710//10454 11705//10449 11827//10571 +f 11826//10570 11825//10569 11827//10571 11828//10572 +f 11829//10573 11830//10574 11831//10575 11832//10576 +f 11818//10562 11829//10573 11832//10576 11814//10558 +f 11829//10573 11818//10562 11820//10564 11833//10577 +f 11830//10574 11829//10573 11833//10577 11834//10578 +f 11835//10579 11836//10580 11834//10578 11833//10577 +f 11822//10566 11835//10579 11833//10577 11820//10564 +f 11835//10579 11822//10566 11824//10568 11837//10581 +f 11836//10580 11835//10579 11837//10581 11838//10582 +f 11839//10583 11840//10584 11841//10585 11842//10586 +f 11812//10556 11839//10583 11842//10586 11806//10550 +f 11839//10583 11812//10556 11814//10558 11832//10576 +f 11840//10584 11839//10583 11832//10576 11831//10575 +f 11843//10587 11804//10548 11806//10550 11842//10586 +f 11844//10588 11843//10587 11842//10586 11841//10585 +f 11843//10587 11844//10588 11845//10589 11846//10590 +f 11804//10548 11843//10587 11846//10590 11800//10544 +f 11847//10591 11848//10592 11849//10593 11850//10594 +f 11840//10584 11847//10591 11850//10594 11841//10585 +f 11847//10591 11840//10584 11831//10575 11851//10595 +f 11848//10592 11847//10591 11851//10595 11852//10596 +f 11853//10597 11854//10598 11802//10546 11801//10545 +f 11846//10590 11853//10597 11801//10545 11800//10544 +f 11853//10597 11846//10590 11845//10589 11855//10599 +f 11854//10598 11853//10597 11855//10599 11856//10600 +f 11857//10601 11858//10602 11859//10603 11860//10604 +f 11844//10588 11857//10601 11860//10604 11845//10589 +f 11857//10601 11844//10588 11841//10585 11850//10594 +f 11858//10602 11857//10601 11850//10594 11849//10593 +f 11861//10605 11862//10606 11856//10600 11855//10599 +f 11860//10604 11861//10605 11855//10599 11845//10589 +f 11861//10605 11860//10604 11859//10603 11863//10607 +f 11862//10606 11861//10605 11863//10607 11864//10608 +f 11865//10609 11866//10610 11792//10536 11791//10535 +f 11798//10542 11865//10609 11791//10535 11783//10527 +f 11865//10609 11798//10542 11802//10546 11867//10611 +f 11866//10610 11865//10609 11867//10611 11868//10612 +f 11869//10613 11870//10614 11868//10612 11867//10611 +f 11854//10598 11869//10613 11867//10611 11802//10546 +f 11869//10613 11854//10598 11856//10600 11871//10615 +f 11870//10614 11869//10613 11871//10615 11872//10616 +f 11873//10617 11874//10618 11777//10521 11776//10520 +f 11789//10533 11873//10617 11776//10520 11775//10519 +f 11873//10617 11789//10533 11792//10536 11875//10619 +f 11874//10618 11873//10617 11875//10619 11876//10620 +f 11877//10621 11878//10622 11392//10136 11391//10135 +f 11773//10517 11877//10621 11391//10135 11390//10134 +f 11877//10621 11773//10517 11777//10521 11879//10623 +f 11878//10622 11877//10621 11879//10623 11880//10624 +f 11881//10625 11882//10626 11876//10620 11875//10619 +f 11866//10610 11881//10625 11875//10619 11792//10536 +f 11881//10625 11866//10610 11868//10612 11883//10627 +f 11882//10626 11881//10625 11883//10627 11884//10628 +f 11885//10629 11886//10630 11880//10624 11879//10623 +f 11874//10618 11885//10629 11879//10623 11777//10521 +f 11885//10629 11874//10618 11876//10620 11887//10631 +f 11886//10630 11885//10629 11887//10631 11888//10632 +f 11889//10633 11890//10634 11891//10635 11892//10636 +f 11878//10622 11889//10633 11892//10636 11392//10136 +f 11889//10633 11878//10622 11880//10624 11893//10637 +f 11890//10634 11889//10633 11893//10637 11894//10638 +f 11895//10639 11896//10640 11897//10641 11898//10642 +f 11890//10634 11895//10639 11898//10642 11891//10635 +f 11895//10639 11890//10634 11894//10638 11899//10643 +f 11896//10640 11895//10639 11899//10643 11900//10644 +f 11901//10645 11902//10646 11894//10638 11893//10637 +f 11886//10630 11901//10645 11893//10637 11880//10624 +f 11901//10645 11886//10630 11888//10632 11903//10647 +f 11902//10646 11901//10645 11903//10647 11904//10648 +f 11905//10649 11906//10650 11888//10632 11887//10631 +f 11882//10626 11905//10649 11887//10631 11876//10620 +f 11905//10649 11882//10626 11884//10628 11907//10651 +f 11906//10650 11905//10649 11907//10651 11908//10652 +f 11909//10653 11910//10654 11900//10644 11899//10643 +f 11902//10646 11909//10653 11899//10643 11894//10638 +f 11909//10653 11902//10646 11904//10648 11911//10655 +f 11910//10654 11909//10653 11911//10655 11912//10656 +f 11913//10657 11914//10658 11904//10648 11903//10647 +f 11906//10650 11913//10657 11903//10647 11888//10632 +f 11913//10657 11906//10650 11908//10652 11915//10659 +f 11914//10658 11913//10657 11915//10659 11916//10660 +f 11917//10661 11918//10662 11912//10656 11911//10655 +f 11914//10658 11917//10661 11911//10655 11904//10648 +f 11917//10661 11914//10658 11916//10660 11919//10663 +f 11918//10662 11917//10661 11919//10663 11920//10664 +f 11921//10665 11922//10666 11908//10652 11907//10651 +f 11923//10667 11921//10665 11907//10651 11884//10628 +f 11921//10665 11923//10667 11924//10668 11925//10669 +f 11922//10666 11921//10665 11925//10669 11926//10670 +f 11927//10671 11928//10672 11920//10664 11919//10663 +f 11929//10673 11927//10671 11919//10663 11916//10660 +f 11927//10671 11929//10673 11930//10674 11931//10675 +f 11928//10672 11927//10671 11931//10675 11932//10676 +f 11933//10677 11929//10673 11916//10660 11915//10659 +f 11922//10666 11933//10677 11915//10659 11908//10652 +f 11933//10677 11922//10666 11926//10670 11934//10678 +f 11929//10673 11933//10677 11934//10678 11930//10674 +f 11935//10679 11936//10680 11932//10676 11931//10675 +f 11937//10681 11935//10679 11931//10675 11930//10674 +f 11935//10679 11937//10681 11938//10682 11939//10683 +f 11936//10680 11935//10679 11939//10683 11940//10684 +f 11941//10685 11937//10681 11930//10674 11934//10678 +f 11942//10686 11941//10685 11934//10678 11926//10670 +f 11941//10685 11942//10686 11943//10687 11944//10688 +f 11937//10681 11941//10685 11944//10688 11938//10682 +f 11945//10689 11946//10690 11940//10684 11939//10683 +f 11947//10691 11945//10689 11939//10683 11938//10682 +f 11945//10689 11947//10691 11948//10692 11949//10693 +f 11946//10690 11945//10689 11949//10693 11950//10694 +f 11951//10695 11952//10696 11950//10694 11949//10693 +f 11953//10697 11951//10695 11949//10693 11948//10692 +f 11951//10695 11953//10697 11954//10698 11955//10699 +f 11952//10696 11951//10695 11955//10699 11956//10700 +f 11957//10701 11958//10702 11959//10703 11960//10704 +f 11947//10691 11957//10701 11960//10704 11948//10692 +f 11957//10701 11947//10691 11938//10682 11944//10688 +f 11958//10702 11957//10701 11944//10688 11943//10687 +f 11961//10705 11953//10697 11948//10692 11960//10704 +f 11962//10706 11961//10705 11960//10704 11959//10703 +f 11961//10705 11962//10706 11963//10707 11964//10708 +f 11953//10697 11961//10705 11964//10708 11954//10698 +f 11965//10709 11966//10710 11954//10698 11964//10708 +f 11967//10711 11965//10709 11964//10708 11963//10707 +f 11965//10709 11967//10711 11968//10712 11969//10713 +f 11966//10710 11965//10709 11969//10713 11970//10714 +f 11971//10715 11972//10716 11973//10717 11974//10718 +f 11962//10706 11971//10715 11974//10718 11963//10707 +f 11971//10715 11962//10706 11959//10703 11975//10719 +f 11972//10716 11971//10715 11975//10719 11976//10720 +f 11977//10721 11978//10722 11979//10723 11980//10724 +f 11967//10711 11977//10721 11980//10724 11968//10712 +f 11977//10721 11967//10711 11963//10707 11974//10718 +f 11978//10722 11977//10721 11974//10718 11973//10717 +f 11981//10725 11982//10726 11976//10720 11975//10719 +f 11958//10702 11981//10725 11975//10719 11959//10703 +f 11981//10725 11958//10702 11943//10687 11983//10727 +f 11982//10726 11981//10725 11983//10727 11984//10728 +f 11985//10729 11986//10730 11984//10728 11983//10727 +f 11942//10686 11985//10729 11983//10727 11943//10687 +f 11985//10729 11942//10686 11926//10670 11925//10669 +f 11986//10730 11985//10729 11925//10669 11924//10668 +f 11987//10731 11988//10732 11989//10733 11990//10734 +f 11972//10716 11987//10731 11990//10734 11973//10717 +f 11987//10731 11972//10716 11976//10720 11991//10735 +f 11988//10732 11987//10731 11991//10735 11992//10736 +f 11993//10737 11994//10738 11992//10736 11991//10735 +f 11982//10726 11993//10737 11991//10735 11976//10720 +f 11993//10737 11982//10726 11984//10728 11995//10739 +f 11994//10738 11993//10737 11995//10739 11996//10740 +f 11997//10741 11998//10742 11996//10740 11995//10739 +f 11986//10730 11997//10741 11995//10739 11984//10728 +f 11997//10741 11986//10730 11924//10668 11999//10743 +f 11998//10742 11997//10741 11999//10743 11872//10616 +f 12000//10744 11870//10614 11872//10616 11999//10743 +f 11923//10667 12000//10744 11999//10743 11924//10668 +f 12000//10744 11923//10667 11884//10628 11883//10627 +f 11870//10614 12000//10744 11883//10627 11868//10612 +f 12001//10745 11998//10742 11872//10616 11871//10615 +f 11862//10606 12001//10745 11871//10615 11856//10600 +f 12001//10745 11862//10606 11864//10608 12002//10746 +f 11998//10742 12001//10745 12002//10746 11996//10740 +f 12003//10747 11994//10738 11996//10740 12002//10746 +f 12004//10748 12003//10747 12002//10746 11864//10608 +f 12003//10747 12004//10748 12005//10749 12006//10750 +f 11994//10738 12003//10747 12006//10750 11992//10736 +f 12007//10751 12004//10748 11864//10608 11863//10607 +f 12008//10752 12007//10751 11863//10607 11859//10603 +f 12007//10751 12008//10752 12009//10753 12010//10754 +f 12004//10748 12007//10751 12010//10754 12005//10749 +f 12011//10755 12012//10756 12009//10753 12008//10752 +f 11858//10602 12011//10755 12008//10752 11859//10603 +f 12011//10755 11858//10602 11849//10593 12013//10757 +f 12012//10756 12011//10755 12013//10757 12014//10758 +f 12015//10759 11988//10732 11992//10736 12006//10750 +f 12016//10760 12015//10759 12006//10750 12005//10749 +f 12015//10759 12016//10760 12017//10761 12018//10762 +f 11988//10732 12015//10759 12018//10762 11989//10733 +f 12019//10763 12016//10760 12005//10749 12010//10754 +f 12020//10764 12019//10763 12010//10754 12009//10753 +f 12019//10763 12020//10764 12021//10765 12022//10766 +f 12016//10760 12019//10763 12022//10766 12017//10761 +f 12023//10767 12024//10768 12021//10765 12020//10764 +f 12012//10756 12023//10767 12020//10764 12009//10753 +f 12023//10767 12012//10756 12014//10758 12025//10769 +f 12024//10768 12023//10767 12025//10769 12026//10770 +f 12027//10771 12028//10772 12014//10758 12013//10757 +f 11848//10592 12027//10771 12013//10757 11849//10593 +f 12027//10771 11848//10592 11852//10596 12029//10773 +f 12028//10772 12027//10771 12029//10773 12030//10774 +f 12031//10775 12032//10776 11852//10596 11851//10595 +f 11830//10574 12031//10775 11851//10595 11831//10575 +f 12031//10775 11830//10574 11834//10578 12033//10777 +f 12032//10776 12031//10775 12033//10777 12034//10778 +f 12035//10779 12036//10780 12026//10770 12025//10769 +f 12028//10772 12035//10779 12025//10769 12014//10758 +f 12035//10779 12028//10772 12030//10774 12037//10781 +f 12036//10780 12035//10779 12037//10781 12038//10782 +f 12039//10783 12040//10784 12030//10774 12029//10773 +f 12032//10776 12039//10783 12029//10773 11852//10596 +f 12039//10783 12032//10776 12034//10778 12041//10785 +f 12040//10784 12039//10783 12041//10785 12042//10786 +f 12043//10787 12044//10788 12045//10789 12046//10790 +f 12024//10768 12043//10787 12046//10790 12021//10765 +f 12043//10787 12024//10768 12026//10770 12047//10791 +f 12044//10788 12043//10787 12047//10791 12048//10792 +f 12049//10793 12050//10794 12017//10761 12022//10766 +f 12046//10790 12049//10793 12022//10766 12021//10765 +f 12049//10793 12046//10790 12045//10789 12051//10795 +f 12050//10794 12049//10793 12051//10795 12052//10796 +f 12053//10797 12054//10798 11989//10733 12018//10762 +f 12050//10794 12053//10797 12018//10762 12017//10761 +f 12053//10797 12050//10794 12052//10796 12055//10799 +f 12054//10798 12053//10797 12055//10799 12056//10800 +f 12057//10801 12058//10802 12048//10792 12047//10791 +f 12036//10780 12057//10801 12047//10791 12026//10770 +f 12057//10801 12036//10780 12038//10782 12059//10803 +f 12058//10802 12057//10801 12059//10803 12060//10804 +f 12061//10805 12062//10806 12052//10796 12051//10795 +f 12063//10807 12061//10805 12051//10795 12045//10789 +f 12061//10805 12063//10807 12064//10808 12065//10809 +f 12062//10806 12061//10805 12065//10809 12066//10810 +f 12067//10811 12068//10812 12064//10808 12063//10807 +f 12044//10788 12067//10811 12063//10807 12045//10789 +f 12067//10811 12044//10788 12048//10792 12069//10813 +f 12068//10812 12067//10811 12069//10813 12070//10814 +f 12071//10815 11978//10722 11973//10717 11990//10734 +f 12054//10798 12071//10815 11990//10734 11989//10733 +f 12071//10815 12054//10798 12056//10800 12072//10816 +f 11978//10722 12071//10815 12072//10816 11979//10723 +f 12073//10817 12074//10818 12056//10800 12055//10799 +f 12062//10806 12073//10817 12055//10799 12052//10796 +f 12073//10817 12062//10806 12066//10810 12075//10819 +f 12074//10818 12073//10817 12075//10819 12076//10820 +f 12077//10821 12078//10822 11979//10723 12072//10816 +f 12074//10818 12077//10821 12072//10816 12056//10800 +f 12077//10821 12074//10818 12076//10820 12079//10823 +f 12078//10822 12077//10821 12079//10823 12080//10824 +f 12081//10825 12082//10826 11968//10712 11980//10724 +f 12078//10822 12081//10825 11980//10724 11979//10723 +f 12081//10825 12078//10822 12080//10824 12083//10827 +f 12082//10826 12081//10825 12083//10827 12084//10828 +f 12085//10829 12086//10830 12076//10820 12075//10819 +f 12087//10831 12085//10829 12075//10819 12066//10810 +f 12085//10829 12087//10831 12088//10832 12089//10833 +f 12086//10830 12085//10829 12089//10833 12090//10834 +f 12091//10835 12092//10836 11970//10714 11969//10713 +f 12082//10826 12091//10835 11969//10713 11968//10712 +f 12091//10835 12082//10826 12084//10828 12093//10837 +f 12092//10836 12091//10835 12093//10837 12094//10838 +f 12095//10839 12096//10840 12080//10824 12079//10823 +f 12086//10830 12095//10839 12079//10823 12076//10820 +f 12095//10839 12086//10830 12090//10834 12097//10841 +f 12096//10840 12095//10839 12097//10841 12098//10842 +f 12099//10843 12100//10844 12084//10828 12083//10827 +f 12096//10840 12099//10843 12083//10827 12080//10824 +f 12099//10843 12096//10840 12098//10842 12101//10845 +f 12100//10844 12099//10843 12101//10845 12102//10846 +f 12103//10847 12104//10848 12105//10849 12106//10850 +f 12092//10836 12103//10847 12106//10850 11970//10714 +f 12103//10847 12092//10836 12094//10838 12107//10851 +f 12104//10848 12103//10847 12107//10851 12108//10852 +f 12109//10853 11966//10710 11970//10714 12106//10850 +f 12110//10854 12109//10853 12106//10850 12105//10849 +f 12109//10853 12110//10854 11956//10700 11955//10699 +f 11966//10710 12109//10853 11955//10699 11954//10698 +f 12111//10855 12112//10856 12094//10838 12093//10837 +f 12100//10844 12111//10855 12093//10837 12084//10828 +f 12111//10855 12100//10844 12102//10846 12113//10857 +f 12112//10856 12111//10855 12113//10857 12114//10858 +f 12115//10859 12116//10860 12108//10852 12107//10851 +f 12112//10856 12115//10859 12107//10851 12094//10838 +f 12115//10859 12112//10856 12114//10858 12117//10861 +f 12116//10860 12115//10859 12117//10861 12118//10862 +f 12119//10863 12120//10864 12118//10862 12117//10861 +f 12121//10865 12119//10863 12117//10861 12114//10858 +f 12119//10863 12121//10865 12122//10866 12123//10867 +f 12120//10864 12119//10863 12123//10867 12124//10868 +f 12125//10869 12121//10865 12114//10858 12113//10857 +f 12126//10870 12125//10869 12113//10857 12102//10846 +f 12125//10869 12126//10870 12127//10871 12128//10872 +f 12121//10865 12125//10869 12128//10872 12122//10866 +f 12129//10873 12130//10874 12122//10866 12128//10872 +f 12131//10875 12129//10873 12128//10872 12127//10871 +f 12129//10873 12131//10875 12132//10876 12133//10877 +f 12130//10874 12129//10873 12133//10877 12134//10878 +f 12135//10879 12136//10880 12137//10881 12138//10882 +f 12126//10870 12135//10879 12138//10882 12127//10871 +f 12135//10879 12126//10870 12102//10846 12101//10845 +f 12136//10880 12135//10879 12101//10845 12098//10842 +f 12139//10883 12140//10884 12141//10885 12142//10886 +f 12131//10875 12139//10883 12142//10886 12132//10876 +f 12139//10883 12131//10875 12127//10871 12138//10882 +f 12140//10884 12139//10883 12138//10882 12137//10881 +f 12143//10887 12144//10888 12145//10889 12146//10890 +f 12136//10880 12143//10887 12146//10890 12137//10881 +f 12143//10887 12136//10880 12098//10842 12097//10841 +f 12144//10888 12143//10887 12097//10841 12090//10834 +f 12147//10891 12148//10892 12149//10893 12150//10894 +f 12140//10884 12147//10891 12150//10894 12141//10885 +f 12147//10891 12140//10884 12137//10881 12146//10890 +f 12148//10892 12147//10891 12146//10890 12145//10889 +f 12151//10895 12152//10896 12153//10897 12154//10898 +f 12144//10888 12151//10895 12154//10898 12145//10889 +f 12151//10895 12144//10888 12090//10834 12089//10833 +f 12152//10896 12151//10895 12089//10833 12088//10832 +f 12155//10899 12156//10900 12157//10901 12158//10902 +f 12148//10892 12155//10899 12158//10902 12149//10893 +f 12155//10899 12148//10892 12145//10889 12154//10898 +f 12156//10900 12155//10899 12154//10898 12153//10897 +f 12159//10903 12160//10904 12141//10885 12150//10894 +f 12161//10905 12159//10903 12150//10894 12149//10893 +f 12159//10903 12161//10905 12162//10906 12163//10907 +f 12160//10904 12159//10903 12163//10907 12164//10908 +f 12165//10909 12161//10905 12149//10893 12158//10902 +f 12166//10910 12165//10909 12158//10902 12157//10901 +f 12165//10909 12166//10910 12167//10911 12168//10912 +f 12161//10905 12165//10909 12168//10912 12162//10906 +f 12169//10913 12170//10914 12171//10915 12172//10916 +f 12156//10900 12169//10913 12172//10916 12157//10901 +f 12169//10913 12156//10900 12153//10897 12173//10917 +f 12170//10914 12169//10913 12173//10917 12174//10918 +f 12175//10919 12176//10920 12132//10876 12142//10886 +f 12160//10904 12175//10919 12142//10886 12141//10885 +f 12175//10919 12160//10904 12164//10908 12177//10921 +f 12176//10920 12175//10919 12177//10921 12178//10922 +f 12179//10923 12166//10910 12157//10901 12172//10916 +f 12180//10924 12179//10923 12172//10916 12171//10915 +f 12179//10923 12180//10924 12181//10925 12182//10926 +f 12166//10910 12179//10923 12182//10926 12167//10911 +f 12183//10927 12184//10928 12134//10878 12133//10877 +f 12176//10920 12183//10927 12133//10877 12132//10876 +f 12183//10927 12176//10920 12178//10922 12185//10929 +f 12184//10928 12183//10927 12185//10929 12186//10930 +f 12187//10931 12130//10874 12134//10878 12188//10932 +f 12189//10933 12187//10931 12188//10932 12190//10934 +f 12187//10931 12189//10933 12124//10868 12123//10867 +f 12130//10874 12187//10931 12123//10867 12122//10866 +f 12191//10935 12192//10936 12190//10934 12188//10932 +f 12184//10928 12191//10935 12188//10932 12134//10878 +f 12191//10935 12184//10928 12186//10930 12193//10937 +f 12192//10936 12191//10935 12193//10937 12194//10938 +f 12195//10939 12196//10940 12178//10922 12177//10921 +f 12197//10941 12195//10939 12177//10921 12164//10908 +f 12195//10939 12197//10941 12198//10942 12199//10943 +f 12196//10940 12195//10939 12199//10943 12200//10944 +f 12201//10945 12202//10946 12194//10938 12193//10937 +f 12203//10947 12201//10945 12193//10937 12186//10930 +f 12201//10945 12203//10947 12204//10948 12205//10949 +f 12202//10946 12201//10945 12205//10949 12206//10950 +f 12207//10951 12203//10947 12186//10930 12185//10929 +f 12196//10940 12207//10951 12185//10929 12178//10922 +f 12207//10951 12196//10940 12200//10944 12208//10952 +f 12203//10947 12207//10951 12208//10952 12204//10948 +f 12209//10953 12210//10954 12206//10950 12205//10949 +f 12211//10955 12209//10953 12205//10949 12204//10948 +f 12209//10953 12211//10955 11401//10145 11400//10144 +f 12210//10954 12209//10953 11400//10144 11399//10143 +f 12212//10956 12211//10955 12204//10948 12208//10952 +f 12213//10957 12212//10956 12208//10952 12200//10944 +f 12212//10956 12213//10957 12214//10958 12215//10959 +f 12211//10955 12212//10956 12215//10959 11401//10145 +f 12216//10960 12213//10957 12200//10944 12199//10943 +f 12217//10961 12216//10960 12199//10943 12198//10942 +f 12216//10960 12217//10961 12218//10962 12219//10963 +f 12213//10957 12216//10960 12219//10963 12214//10958 +f 12220//10964 11394//10138 11401//10145 12215//10959 +f 12221//10965 12220//10964 12215//10959 12214//10958 +f 12220//10964 12221//10965 12222//10966 12223//10967 +f 11394//10138 12220//10964 12223//10967 11395//10139 +f 12224//10968 12221//10965 12214//10958 12219//10963 +f 12225//10969 12224//10968 12219//10963 12218//10962 +f 12224//10968 12225//10969 12226//10970 12227//10971 +f 12221//10965 12224//10968 12227//10971 12222//10966 +f 12228//10972 12229//10973 12230//10974 12231//10975 +f 12232//10976 12228//10972 12231//10975 12233//10977 +f 12228//10972 12232//10976 11395//10139 12223//10967 +f 12229//10973 12228//10972 12223//10967 12222//10966 +f 12234//10978 12235//10979 11398//10142 11396//10140 +f 12232//10976 12234//10978 11396//10140 11395//10139 +f 12234//10978 12232//10976 12233//10977 12236//10980 +f 12235//10979 12234//10978 12236//10980 12237//10981 +f 12238//10982 12239//10983 12240//10984 12241//10985 +f 12229//10973 12238//10982 12241//10985 12230//10974 +f 12238//10982 12229//10973 12222//10966 12227//10971 +f 12239//10983 12238//10982 12227//10971 12226//10970 +f 12242//10986 12243//10987 12230//10974 12241//10985 +f 12244//10988 12242//10986 12241//10985 12240//10984 +f 12242//10986 12244//10988 12245//10989 12246//10990 +f 12243//10987 12242//10986 12246//10990 12247//10991 +f 12248//10992 12249//10993 12250//10994 12251//10995 +f 12244//10988 12248//10992 12251//10995 12245//10989 +f 12248//10992 12244//10988 12240//10984 12252//10996 +f 12249//10993 12248//10992 12252//10996 12253//10997 +f 12254//10998 12255//10999 12253//10997 12252//10996 +f 12239//10983 12254//10998 12252//10996 12240//10984 +f 12254//10998 12239//10983 12226//10970 12256//11000 +f 12255//10999 12254//10998 12256//11000 12257//11001 +f 12258//11002 12259//11003 12257//11001 12256//11000 +f 12225//10969 12258//11002 12256//11000 12226//10970 +f 12258//11002 12225//10969 12218//10962 12260//11004 +f 12259//11003 12258//11002 12260//11004 12261//11005 +f 12262//11006 12263//11007 12264//11008 12265//11009 +f 12249//10993 12262//11006 12265//11009 12250//10994 +f 12262//11006 12249//10993 12253//10997 12266//11010 +f 12263//11007 12262//11006 12266//11010 12267//11011 +f 12268//11012 12269//11013 12261//11005 12260//11004 +f 12217//10961 12268//11012 12260//11004 12218//10962 +f 12268//11012 12217//10961 12198//10942 12270//11014 +f 12269//11013 12268//11012 12270//11014 12271//11015 +f 12272//11016 12273//11017 12267//11011 12266//11010 +f 12255//10999 12272//11016 12266//11010 12253//10997 +f 12272//11016 12255//10999 12257//11001 12274//11018 +f 12273//11017 12272//11016 12274//11018 12275//11019 +f 12276//11020 12277//11021 12275//11019 12274//11018 +f 12259//11003 12276//11020 12274//11018 12257//11001 +f 12276//11020 12259//11003 12261//11005 12278//11022 +f 12277//11021 12276//11020 12278//11022 12279//11023 +f 12280//11024 12281//11025 12271//11015 12270//11014 +f 12197//10941 12280//11024 12270//11014 12198//10942 +f 12280//11024 12197//10941 12164//10908 12163//10907 +f 12281//11025 12280//11024 12163//10907 12162//10906 +f 12282//11026 12283//11027 12279//11023 12278//11022 +f 12269//11013 12282//11026 12278//11022 12261//11005 +f 12282//11026 12269//11013 12271//11015 12284//11028 +f 12283//11027 12282//11026 12284//11028 12285//11029 +f 12286//11030 12287//11031 12285//11029 12284//11028 +f 12281//11025 12286//11030 12284//11028 12271//11015 +f 12286//11030 12281//11025 12162//10906 12168//10912 +f 12287//11031 12286//11030 12168//10912 12167//10911 +f 12288//11032 12289//11033 12290//11034 12291//11035 +f 12277//11021 12288//11032 12291//11035 12275//11019 +f 12288//11032 12277//11021 12279//11023 12292//11036 +f 12289//11033 12288//11032 12292//11036 12293//11037 +f 12294//11038 12295//11039 12296//11040 12297//11041 +f 12287//11031 12294//11038 12297//11041 12285//11029 +f 12294//11038 12287//11031 12167//10911 12182//10926 +f 12295//11039 12294//11038 12182//10926 12181//10925 +f 12298//11042 12299//11043 12293//11037 12292//11036 +f 12283//11027 12298//11042 12292//11036 12279//11023 +f 12298//11042 12283//11027 12285//11029 12297//11041 +f 12299//11043 12298//11042 12297//11041 12296//11040 +f 12300//11044 12301//11045 12296//11040 12295//11039 +f 12302//11046 12300//11044 12295//11039 12181//10925 +f 12300//11044 12302//11046 12303//11047 12304//11048 +f 12301//11045 12300//11044 12304//11048 12305//11049 +f 12306//11050 12307//11051 12293//11037 12299//11043 +f 12301//11045 12306//11050 12299//11043 12296//11040 +f 12306//11050 12301//11045 12305//11049 12308//11052 +f 12307//11051 12306//11050 12308//11052 12309//11053 +f 12310//11054 12311//11055 12290//11034 12289//11033 +f 12307//11051 12310//11054 12289//11033 12293//11037 +f 12310//11054 12307//11051 12309//11053 12312//11054 +f 12311//11055 12310//11054 12312//11054 12313//11056 +f 12314//11057 12273//11017 12275//11019 12291//11035 +f 12315//11058 12314//11057 12291//11035 12290//11034 +f 12314//11057 12315//11058 12316//11059 12317//11060 +f 12273//11017 12314//11057 12317//11060 12267//11011 +f 12318//11061 12319//11062 12316//11059 12315//11058 +f 12311//11055 12318//11061 12315//11058 12290//11034 +f 12318//11061 12311//11055 12313//11056 12320//11063 +f 12319//11062 12318//11061 12320//11063 12321//11064 +f 12322//11065 12263//11007 12267//11011 12317//11060 +f 12323//11066 12322//11065 12317//11060 12316//11059 +f 12322//11065 12323//11066 12324//11067 12325//11068 +f 12263//11007 12322//11065 12325//11068 12264//11008 +f 12326//11069 12327//11070 12324//11067 12323//11066 +f 12319//11062 12326//11069 12323//11066 12316//11059 +f 12326//11069 12319//11062 12321//11064 12328//11071 +f 12327//11070 12326//11069 12328//11071 12329//11072 +f 12330//11073 12331//11074 12313//11056 12312//11054 +f 12332//11075 12330//11073 12312//11054 12309//11053 +f 12330//11073 12332//11075 12333//11076 12334//11077 +f 12331//11074 12330//11073 12334//11077 12335//11078 +f 12336//11079 12337//11080 12264//11008 12325//11068 +f 12338//11081 12336//11079 12325//11068 12324//11067 +f 12336//11079 12338//11081 12339//11082 12340//11083 +f 12337//11080 12336//11079 12340//11083 12341//11084 +f 12342//11085 12343//11086 12321//11064 12320//11063 +f 12331//11074 12342//11085 12320//11063 12313//11056 +f 12342//11085 12331//11074 12335//11078 12344//11087 +f 12343//11086 12342//11085 12344//11087 12345//11088 +f 12346//11089 12347//11090 12339//11082 12338//11081 +f 12327//11070 12346//11089 12338//11081 12324//11067 +f 12346//11089 12327//11070 12329//11072 12348//11091 +f 12347//11090 12346//11089 12348//11091 12349//11092 +f 12350//11093 12351//11094 12329//11072 12328//11071 +f 12343//11086 12350//11093 12328//11071 12321//11064 +f 12350//11093 12343//11086 12345//11088 12352//11095 +f 12351//11094 12350//11093 12352//11095 12353//11096 +f 12354//11097 12355//11098 12250//10994 12265//11009 +f 12337//11080 12354//11097 12265//11009 12264//11008 +f 12354//11097 12337//11080 12341//11084 12356//11099 +f 12355//11098 12354//11097 12356//11099 12357//11100 +f 12358//11101 12359//11102 12245//10989 12251//10995 +f 12355//11098 12358//11101 12251//10995 12250//10994 +f 12358//11101 12355//11098 12357//11100 12360//11103 +f 12359//11102 12358//11101 12360//11103 12361//11104 +f 12362//11105 12363//11106 12341//11084 12340//11083 +f 12364//11107 12362//11105 12340//11083 12339//11082 +f 12362//11105 12364//11107 12365//11108 12366//11109 +f 12363//11106 12362//11105 12366//11109 12367//11110 +f 12368//11111 12369//11112 12365//11108 12364//11107 +f 12347//11090 12368//11111 12364//11107 12339//11082 +f 12368//11111 12347//11090 12349//11092 12370//11113 +f 12369//11112 12368//11111 12370//11113 12371//11114 +f 12372//11115 12373//11116 12357//11100 12356//11099 +f 12363//11106 12372//11115 12356//11099 12341//11084 +f 12372//11115 12363//11106 12367//11110 12374//11117 +f 12373//11116 12372//11115 12374//11117 12375//11118 +f 12376//11119 12377//11120 12371//11114 12370//11113 +f 12378//11121 12376//11119 12370//11113 12349//11092 +f 12376//11119 12378//11121 12379//11122 12380//11123 +f 12377//11120 12376//11119 12380//11123 12381//11124 +f 12382//11125 12383//11126 12361//11104 12360//11103 +f 12373//11116 12382//11125 12360//11103 12357//11100 +f 12382//11125 12373//11116 12375//11118 12384//11127 +f 12383//11126 12382//11125 12384//11127 12385//11128 +f 12386//11129 12387//11130 12247//10991 12246//10990 +f 12359//11102 12386//11129 12246//10990 12245//10989 +f 12386//11129 12359//11102 12361//11104 12388//11131 +f 12387//11130 12386//11129 12388//11131 12389//11132 +f 12390//11133 12391//11134 12389//11132 12388//11131 +f 12383//11126 12390//11133 12388//11131 12361//11104 +f 12390//11133 12383//11126 12385//11128 12392//11135 +f 12391//11134 12390//11133 12392//11135 12393//11136 +f 12394//11137 11403//10147 11410//10154 12395//11138 +f 12391//11134 12394//11137 12395//11138 12389//11132 +f 12394//11137 12391//11134 12393//11136 12396//11139 +f 11403//10147 12394//11137 12396//11139 11404//10148 +f 12397//11140 12398//11141 12399//11142 12400//11143 +f 12387//11130 12397//11140 12400//11143 12247//10991 +f 12397//11140 12387//11130 12389//11132 12395//11138 +f 12398//11141 12397//11140 12395//11138 11410//10154 +f 12401//11144 12402//11145 12403//11146 12404//11147 +f 12398//11141 12401//11144 12404//11147 12399//11142 +f 12401//11144 12398//11141 11410//10154 11409//10153 +f 12402//11145 12401//11144 11409//10153 11408//10152 +f 12405//11148 12406//11149 12381//11124 12380//11123 +f 12407//11150 12405//11148 12380//11123 12379//11122 +f 12405//11148 12407//11150 12408//11151 12409//11152 +f 12406//11149 12405//11148 12409//11152 12410//11153 +f 12411//11154 12351//11094 12353//11096 12412//11155 +f 12378//11121 12411//11154 12412//11155 12379//11122 +f 12411//11154 12378//11121 12349//11092 12348//11091 +f 12351//11094 12411//11154 12348//11091 12329//11072 +f 12413//11156 12407//11150 12379//11122 12412//11155 +f 12414//11157 12413//11156 12412//11155 12353//11096 +f 12413//11156 12414//11157 12415//11158 12416//11159 +f 12407//11150 12413//11156 12416//11159 12408//11151 +f 12417//11160 12414//11157 12353//11096 12352//11095 +f 12418//11161 12417//11160 12352//11095 12345//11088 +f 12417//11160 12418//11161 12419//11162 12420//11163 +f 12414//11157 12417//11160 12420//11163 12415//11158 +f 12421//11164 12422//11165 12410//11153 12409//11152 +f 12423//11166 12421//11164 12409//11152 12408//11151 +f 12421//11164 12423//11166 12424//11167 12425//11168 +f 12422//11165 12421//11164 12425//11168 12426//11169 +f 12427//11170 12423//11166 12408//11151 12416//11159 +f 12428//11171 12427//11170 12416//11159 12415//11158 +f 12427//11170 12428//11171 12429//11172 12430//11173 +f 12423//11166 12427//11170 12430//11173 12424//11167 +f 12431//11174 12432//11175 12426//11169 12425//11168 +f 12433//11176 12431//11174 12425//11168 12424//11167 +f 12431//11174 12433//11176 12434//11177 12435//11178 +f 12432//11175 12431//11174 12435//11178 12436//11179 +f 12437//11180 12433//11176 12424//11167 12430//11173 +f 12438//11181 12437//11180 12430//11173 12429//11172 +f 12437//11180 12438//11181 12439//11182 12440//11183 +f 12433//11176 12437//11180 12440//11183 12434//11177 +f 12441//11184 12442//11185 12443//11186 12444//11187 +f 12428//11171 12441//11184 12444//11187 12429//11172 +f 12441//11184 12428//11171 12415//11158 12420//11163 +f 12442//11185 12441//11184 12420//11163 12419//11162 +f 12445//11188 12446//11189 12447//11190 12448//11191 +f 12438//11181 12445//11188 12448//11191 12439//11182 +f 12445//11188 12438//11181 12429//11172 12444//11187 +f 12446//11189 12445//11188 12444//11187 12443//11186 +f 12449//11192 12450//11193 12436//11179 12435//11178 +f 12451//11194 12449//11192 12435//11178 12434//11177 +f 12449//11192 12451//11194 12452//11195 12453//11196 +f 12450//11193 12449//11192 12453//11196 12454//11197 +f 12455//11198 12451//11194 12434//11177 12440//11183 +f 12456//11199 12455//11198 12440//11183 12439//11182 +f 12455//11198 12456//11199 12457//11200 12458//11201 +f 12451//11194 12455//11198 12458//11201 12452//11195 +f 12459//11202 12460//11203 12454//11197 12453//11196 +f 12461//11204 12459//11202 12453//11196 12452//11195 +f 12459//11202 12461//11204 12462//11205 12463//11206 +f 12460//11203 12459//11202 12463//11206 12464//11207 +f 12465//11208 12461//11204 12452//11195 12458//11201 +f 12466//11209 12465//11208 12458//11201 12457//11200 +f 12465//11208 12466//11209 12467//11210 12468//11211 +f 12461//11204 12465//11208 12468//11211 12462//11205 +f 12469//11212 12470//11213 12471//11214 12472//11215 +f 12456//11199 12469//11212 12472//11215 12457//11200 +f 12469//11212 12456//11199 12439//11182 12448//11191 +f 12470//11213 12469//11212 12448//11191 12447//11190 +f 12473//11216 12474//11217 12475//11218 12476//11219 +f 12466//11209 12473//11216 12476//11219 12467//11210 +f 12473//11216 12466//11209 12457//11200 12472//11215 +f 12474//11217 12473//11216 12472//11215 12471//11214 +f 12477//11220 12478//11221 12464//11207 12463//11206 +f 12479//11222 12477//11220 12463//11206 12462//11205 +f 12477//11220 12479//11222 12480//11223 12481//11224 +f 12478//11221 12477//11220 12481//11224 12482//11225 +f 12483//11226 12479//11222 12462//11205 12468//11211 +f 12484//11227 12483//11226 12468//11211 12467//11210 +f 12483//11226 12484//11227 12485//11228 12486//11229 +f 12479//11222 12483//11226 12486//11229 12480//11223 +f 12487//11230 12488//11231 12482//11225 12481//11224 +f 12489//11232 12487//11230 12481//11224 12480//11223 +f 12487//11230 12489//11232 12490//11233 12491//11234 +f 12488//11231 12487//11230 12491//11234 12492//11235 +f 12493//11236 12494//11237 12495//11238 12496//11239 +f 12491//11234 12493//11236 12496//11239 12492//11235 +f 12493//11236 12491//11234 12490//11233 12497//11240 +f 12494//11237 12493//11236 12497//11240 12498//11241 +f 12499//11242 12500//11243 12501//11244 12502//11245 +f 12489//11232 12499//11242 12502//11245 12490//11233 +f 12499//11242 12489//11232 12480//11223 12486//11229 +f 12500//11243 12499//11242 12486//11229 12485//11228 +f 12503//11246 12504//11247 12498//11241 12497//11240 +f 12502//11245 12503//11246 12497//11240 12490//11233 +f 12503//11246 12502//11245 12501//11244 12505//11248 +f 12504//11247 12503//11246 12505//11248 12506//11249 +f 12507//11250 12508//11251 12509//11252 12510//11253 +f 12494//11237 12507//11250 12510//11253 12495//11238 +f 12507//11250 12494//11237 12498//11241 12511//11254 +f 12508//11251 12507//11250 12511//11254 12512//11255 +f 12513//11256 12514//11257 12515//11258 12516//11259 +f 12500//11243 12513//11256 12516//11259 12501//11244 +f 12513//11256 12500//11243 12485//11228 12517//11260 +f 12514//11257 12513//11256 12517//11260 12518//11261 +f 12519//11262 12520//11263 12521//11264 12522//11265 +f 12508//11251 12519//11262 12522//11265 12509//11252 +f 12519//11262 12508//11251 12512//11255 12523//11266 +f 12520//11263 12519//11262 12523//11266 12524//11267 +f 12525//11268 12526//11269 12512//11255 12511//11254 +f 12504//11247 12525//11268 12511//11254 12498//11241 +f 12525//11268 12504//11247 12506//11249 12527//11270 +f 12526//11269 12525//11268 12527//11270 12528//11271 +f 12529//11272 12530//11273 12506//11249 12505//11248 +f 12516//11259 12529//11272 12505//11248 12501//11244 +f 12529//11272 12516//11259 12515//11258 12531//11274 +f 12530//11273 12529//11272 12531//11274 12532//11275 +f 12533//11276 12534//11277 12535//11278 12536//11279 +f 12520//11263 12533//11276 12536//11279 12521//11264 +f 12533//11276 12520//11263 12524//11267 12537//11280 +f 12534//11277 12533//11276 12537//11280 12538//11281 +f 12539//11282 12540//11283 12524//11267 12523//11266 +f 12526//11269 12539//11282 12523//11266 12512//11255 +f 12539//11282 12526//11269 12528//11271 12541//11284 +f 12540//11283 12539//11282 12541//11284 12542//11285 +f 12543//11286 11379//10123 11380//10124 12544//11287 +f 12534//11277 12543//11286 12544//11287 12535//11278 +f 12543//11286 12534//11277 12538//11281 12545//11288 +f 11379//10123 12543//11286 12545//11288 11381//10125 +f 12546//11289 12547//11290 12538//11281 12537//11280 +f 12540//11283 12546//11289 12537//11280 12524//11267 +f 12546//11289 12540//11283 12542//11285 12548//11291 +f 12547//11290 12546//11289 12548//11291 12549//11292 +f 12550//11293 12551//11294 11381//10125 12545//11288 +f 12547//11290 12550//11293 12545//11288 12538//11281 +f 12550//11293 12547//11290 12549//11292 12552//11295 +f 12551//11294 12550//11293 12552//11295 12553//11296 +f 12554//11297 12555//11298 11383//10127 11382//10126 +f 12551//11294 12554//11297 11382//10126 11381//10125 +f 12554//11297 12551//11294 12553//11296 12556//11299 +f 12555//11298 12554//11297 12556//11299 12557//11300 +f 12558//11301 12559//11302 12549//11292 12548//11291 +f 12560//11303 12558//11301 12548//11291 12542//11285 +f 12558//11301 12560//11303 12561//11304 12562//11305 +f 12559//11302 12558//11301 12562//11305 12563//11306 +f 12564//11307 12565//11308 12566//11309 12567//11310 +f 12560//11303 12564//11307 12567//11310 12561//11304 +f 12564//11307 12560//11303 12542//11285 12541//11284 +f 12565//11308 12564//11307 12541//11284 12528//11271 +f 12568//11311 12569//11312 12563//11306 12562//11305 +f 12570//11313 12568//11311 12562//11305 12561//11304 +f 12568//11311 12570//11313 12571//11314 12572//11315 +f 12569//11312 12568//11311 12572//11315 12573//11316 +f 12574//11317 12570//11313 12561//11304 12567//11310 +f 12575//11318 12574//11317 12567//11310 12566//11309 +f 12574//11317 12575//11318 12576//11319 12577//11320 +f 12570//11313 12574//11317 12577//11320 12571//11314 +f 12578//11321 12579//11322 12580//11323 12581//11324 +f 12569//11312 12578//11321 12581//11324 12563//11306 +f 12578//11321 12569//11312 12573//11316 12582//11325 +f 12579//11322 12578//11321 12582//11325 12583//11326 +f 12584//11327 12585//11328 12583//11326 12582//11325 +f 12586//11329 12584//11327 12582//11325 12573//11316 +f 12584//11327 12586//11329 12587//11330 12588//11331 +f 12585//11328 12584//11327 12588//11331 12589//11332 +f 12590//11333 12586//11329 12573//11316 12572//11315 +f 12591//11334 12590//11333 12572//11315 12571//11314 +f 12590//11333 12591//11334 12592//11335 12593//11336 +f 12586//11329 12590//11333 12593//11336 12587//11330 +f 12594//11337 12595//11338 12596//11339 12597//11340 +f 12598//11341 12594//11337 12597//11340 12599//11342 +f 12594//11337 12598//11341 12589//11332 12588//11331 +f 12595//11338 12594//11337 12588//11331 12587//11330 +f 12600//11343 12601//11344 12602//11345 12603//11346 +f 12591//11334 12600//11343 12603//11346 12592//11335 +f 12600//11343 12591//11334 12571//11314 12577//11320 +f 12601//11344 12600//11343 12577//11320 12576//11319 +f 12604//11347 12595//11338 12587//11330 12593//11336 +f 12605//11348 12604//11347 12593//11336 12592//11335 +f 12604//11347 12605//11348 12606//11349 12607//11350 +f 12595//11338 12604//11347 12607//11350 12596//11339 +f 12608//11351 12605//11348 12592//11335 12603//11346 +f 12609//11352 12608//11351 12603//11346 12602//11345 +f 12608//11351 12609//11352 12610//11353 12611//11354 +f 12605//11348 12608//11351 12611//11354 12606//11349 +f 12612//11355 12613//11356 12614//11357 12615//11358 +f 12601//11344 12612//11355 12615//11358 12602//11345 +f 12612//11355 12601//11344 12576//11319 12616//11359 +f 12613//11356 12612//11355 12616//11359 12617//11360 +f 12618//11361 12619//11362 12620//11363 12621//11364 +f 12609//11352 12618//11361 12621//11364 12610//11353 +f 12618//11361 12609//11352 12602//11345 12615//11358 +f 12619//11362 12618//11361 12615//11358 12614//11357 +f 12622//11365 12623//11366 12606//11349 12611//11354 +f 12624//11367 12622//11365 12611//11354 12610//11353 +f 12622//11365 12624//11367 12625//11368 12626//11369 +f 12623//11366 12622//11365 12626//11369 12627//11370 +f 12628//11371 12629//11372 12617//11360 12616//11359 +f 12575//11318 12628//11371 12616//11359 12576//11319 +f 12628//11371 12575//11318 12566//11309 12630//11373 +f 12629//11372 12628//11371 12630//11373 12532//11275 +f 12631//11374 12632//11375 12596//11339 12607//11350 +f 12623//11366 12631//11374 12607//11350 12606//11349 +f 12631//11374 12623//11366 12627//11370 12633//11376 +f 12632//11375 12631//11374 12633//11376 12634//11377 +f 12635//11378 12636//11379 12599//11342 12597//11340 +f 12632//11375 12635//11378 12597//11340 12596//11339 +f 12635//11378 12632//11375 12634//11377 12637//11380 +f 12636//11379 12635//11378 12637//11380 12638//11381 +f 12639//11382 12640//11383 12641//11384 12642//11385 +f 12624//11367 12639//11382 12642//11385 12625//11368 +f 12639//11382 12624//11367 12610//11353 12621//11364 +f 12640//11383 12639//11382 12621//11364 12620//11363 +f 12643//11386 12644//11387 12627//11370 12626//11369 +f 12645//11388 12643//11386 12626//11369 12625//11368 +f 12643//11386 12645//11388 12646//11389 12647//11390 +f 12644//11387 12643//11386 12647//11390 12648//11391 +f 12649//11392 12645//11388 12625//11368 12642//11385 +f 12650//11393 12649//11392 12642//11385 12641//11384 +f 12649//11392 12650//11393 12651//11394 12652//11395 +f 12645//11388 12649//11392 12652//11395 12646//11389 +f 12653//11396 12654//11397 12634//11377 12633//11376 +f 12644//11387 12653//11396 12633//11376 12627//11370 +f 12653//11396 12644//11387 12648//11391 12655//11398 +f 12654//11397 12653//11396 12655//11398 12656//11399 +f 12657//11400 12658//11401 12659//11402 12660//11403 +f 12636//11379 12657//11400 12660//11403 12599//11342 +f 12657//11400 12636//11379 12638//11381 12661//11404 +f 12658//11401 12657//11400 12661//11404 12662//11405 +f 12663//11406 12598//11341 12599//11342 12660//11403 +f 12664//11407 12663//11406 12660//11403 12659//11402 +f 12663//11406 12664//11407 12665//11408 12666//11409 +f 12598//11341 12663//11406 12666//11409 12589//11332 +f 12667//11410 12668//11411 12638//11381 12637//11380 +f 12654//11397 12667//11410 12637//11380 12634//11377 +f 12667//11410 12654//11397 12656//11399 12669//11412 +f 12668//11411 12667//11410 12669//11412 12670//11413 +f 12671//11414 12672//11415 12670//11413 12669//11412 +f 12673//11416 12671//11414 12669//11412 12656//11399 +f 12671//11414 12673//11416 12674//11417 12675//11418 +f 12672//11415 12671//11414 12675//11418 12676//11419 +f 12677//11420 12673//11416 12656//11399 12655//11398 +f 12678//11421 12677//11420 12655//11398 12648//11391 +f 12677//11420 12678//11421 12679//11422 12680//11423 +f 12673//11416 12677//11420 12680//11423 12674//11417 +f 12681//11424 12682//11425 12683//11426 12684//11427 +f 12678//11421 12681//11424 12684//11427 12679//11422 +f 12681//11424 12678//11421 12648//11391 12647//11390 +f 12682//11425 12681//11424 12647//11390 12646//11389 +f 12685//11428 12686//11429 12674//11417 12680//11423 +f 12687//11430 12685//11428 12680//11423 12679//11422 +f 12685//11428 12687//11430 12688//11431 12689//11432 +f 12686//11429 12685//11428 12689//11432 12690//11433 +f 12691//11434 12692//11435 12693//11436 12694//11437 +f 12682//11425 12691//11434 12694//11437 12683//11426 +f 12691//11434 12682//11425 12646//11389 12652//11395 +f 12692//11435 12691//11434 12652//11395 12651//11394 +f 12695//11438 12687//11430 12679//11422 12684//11427 +f 12696//11439 12695//11438 12684//11427 12683//11426 +f 12695//11438 12696//11439 12697//11440 12698//11441 +f 12687//11430 12695//11438 12698//11441 12688//11431 +f 12699//11442 12696//11439 12683//11426 12694//11437 +f 12700//11443 12699//11442 12694//11437 12693//11436 +f 12699//11442 12700//11443 12701//11444 12702//11445 +f 12696//11439 12699//11442 12702//11445 12697//11440 +f 12703//11446 12704//11447 12705//11448 12706//11449 +f 12692//11435 12703//11446 12706//11449 12693//11436 +f 12703//11446 12692//11435 12651//11394 12707//11450 +f 12704//11447 12703//11446 12707//11450 12708//11451 +f 12709//11452 12710//11453 12711//11454 12712//11455 +f 12700//11443 12709//11452 12712//11455 12701//11444 +f 12709//11452 12700//11443 12693//11436 12706//11449 +f 12710//11453 12709//11452 12706//11449 12705//11448 +f 12713//11456 12714//11457 12697//11440 12702//11445 +f 12715//11458 12713//11456 12702//11445 12701//11444 +f 12713//11456 12715//11458 12716//11459 12717//11460 +f 12714//11457 12713//11456 12717//11460 12718//11461 +f 12719//11462 12720//11463 12708//11451 12707//11450 +f 12650//11393 12719//11462 12707//11450 12651//11394 +f 12719//11462 12650//11393 12641//11384 12721//11464 +f 12720//11463 12719//11462 12721//11464 12722//11465 +f 12723//11466 12724//11467 12688//11431 12698//11441 +f 12714//11457 12723//11466 12698//11441 12697//11440 +f 12723//11466 12714//11457 12718//11461 12725//11468 +f 12724//11467 12723//11466 12725//11468 12726//11469 +f 12727//11470 12728//11471 12722//11465 12721//11464 +f 12640//11383 12727//11470 12721//11464 12641//11384 +f 12727//11470 12640//11383 12620//11363 12729//11472 +f 12728//11471 12727//11470 12729//11472 12730//11473 +f 12731//11474 12732//11475 12705//11448 12704//11447 +f 12733//11476 12731//11474 12704//11447 12708//11451 +f 12731//11474 12733//11476 12734//11477 12735//11478 +f 12732//11475 12731//11474 12735//11478 12736//11479 +f 12737//11480 12738//11481 12730//11473 12729//11472 +f 12619//11362 12737//11480 12729//11472 12620//11363 +f 12737//11480 12619//11362 12614//11357 12739//11482 +f 12738//11481 12737//11480 12739//11482 12740//11483 +f 12741//11484 12733//11476 12708//11451 12720//11463 +f 12742//11485 12741//11484 12720//11463 12722//11465 +f 12741//11484 12742//11485 12743//11486 12744//11487 +f 12733//11476 12741//11484 12744//11487 12734//11477 +f 12745//11488 12742//11485 12722//11465 12728//11471 +f 12746//11489 12745//11488 12728//11471 12730//11473 +f 12745//11488 12746//11489 12747//11490 12748//11491 +f 12742//11485 12745//11488 12748//11491 12743//11486 +f 12749//11492 12750//11493 12740//11483 12739//11482 +f 12613//11356 12749//11492 12739//11482 12614//11357 +f 12749//11492 12613//11356 12617//11360 12751//11494 +f 12750//11493 12749//11492 12751//11494 12752//11495 +f 12753//11496 12754//11497 12755//11498 12756//11499 +f 12746//11489 12753//11496 12756//11499 12747//11490 +f 12753//11496 12746//11489 12730//11473 12738//11481 +f 12754//11497 12753//11496 12738//11481 12740//11483 +f 12757//11500 12758//11501 12743//11486 12748//11491 +f 12759//11502 12757//11500 12748//11491 12747//11490 +f 12757//11500 12759//11502 12760//11503 12761//11504 +f 12758//11501 12757//11500 12761//11504 12762//11505 +f 12763//11506 12759//11502 12747//11490 12756//11499 +f 12764//11507 12763//11506 12756//11499 12755//11498 +f 12763//11506 12764//11507 12765//11508 12766//11509 +f 12759//11502 12763//11506 12766//11509 12760//11503 +f 12767//11510 12768//11511 12769//11512 12770//11513 +f 12754//11497 12767//11510 12770//11513 12755//11498 +f 12767//11510 12754//11497 12740//11483 12750//11493 +f 12768//11511 12767//11510 12750//11493 12752//11495 +f 12771//11514 12772//11515 12734//11477 12744//11487 +f 12758//11501 12771//11514 12744//11487 12743//11486 +f 12771//11514 12758//11501 12762//11505 12773//11516 +f 12772//11515 12771//11514 12773//11516 12774//11517 +f 12775//11518 12764//11507 12755//11498 12770//11513 +f 12776//11519 12775//11518 12770//11513 12769//11512 +f 12775//11518 12776//11519 12777//11520 12778//11521 +f 12764//11507 12775//11518 12778//11521 12765//11508 +f 12779//11522 12780//11523 12475//11218 12781//11524 +f 12776//11519 12779//11522 12781//11524 12777//11520 +f 12779//11522 12776//11519 12769//11512 12782//11525 +f 12780//11523 12779//11522 12782//11525 12518//11261 +f 12783//11526 12784//11527 12752//11495 12751//11494 +f 12629//11372 12783//11526 12751//11494 12617//11360 +f 12783//11526 12629//11372 12532//11275 12531//11274 +f 12784//11527 12783//11526 12531//11274 12515//11258 +f 12785//11528 12530//11273 12532//11275 12630//11373 +f 12565//11308 12785//11528 12630//11373 12566//11309 +f 12785//11528 12565//11308 12528//11271 12527//11270 +f 12530//11273 12785//11528 12527//11270 12506//11249 +f 12786//11529 12768//11511 12752//11495 12784//11527 +f 12514//11257 12786//11529 12784//11527 12515//11258 +f 12786//11529 12514//11257 12518//11261 12782//11525 +f 12768//11511 12786//11529 12782//11525 12769//11512 +f 12787//11530 12780//11523 12518//11261 12517//11260 +f 12484//11227 12787//11530 12517//11260 12485//11228 +f 12787//11530 12484//11227 12467//11210 12476//11219 +f 12780//11523 12787//11530 12476//11219 12475//11218 +f 12788//11531 12789//11532 12777//11520 12781//11524 +f 12474//11217 12788//11531 12781//11524 12475//11218 +f 12788//11531 12474//11217 12471//11214 12790//11533 +f 12789//11532 12788//11531 12790//11533 12791//11534 +f 12792//11535 12793//11536 12765//11508 12778//11521 +f 12789//11532 12792//11535 12778//11521 12777//11520 +f 12792//11535 12789//11532 12791//11534 12794//11537 +f 12793//11536 12792//11535 12794//11537 12795//11538 +f 12796//11539 12797//11540 12791//11534 12790//11533 +f 12470//11213 12796//11539 12790//11533 12471//11214 +f 12796//11539 12470//11213 12447//11190 12798//11541 +f 12797//11540 12796//11539 12798//11541 12799//11542 +f 12800//11543 12801//11544 12760//11503 12766//11509 +f 12793//11536 12800//11543 12766//11509 12765//11508 +f 12800//11543 12793//11536 12795//11538 12802//11545 +f 12801//11544 12800//11543 12802//11545 12803//11546 +f 12804//11547 12805//11548 12795//11538 12794//11537 +f 12797//11540 12804//11547 12794//11537 12791//11534 +f 12804//11547 12797//11540 12799//11542 12806//11549 +f 12805//11548 12804//11547 12806//11549 12807//11550 +f 12808//11551 12809//11552 12799//11542 12798//11541 +f 12446//11189 12808//11551 12798//11541 12447//11190 +f 12808//11551 12446//11189 12443//11186 12810//11553 +f 12809//11552 12808//11551 12810//11553 12811//11554 +f 12812//11555 12813//11556 12762//11505 12761//11504 +f 12801//11544 12812//11555 12761//11504 12760//11503 +f 12812//11555 12801//11544 12803//11546 12814//11557 +f 12813//11556 12812//11555 12814//11557 12815//11558 +f 12816//11559 12817//11560 12803//11546 12802//11545 +f 12805//11548 12816//11559 12802//11545 12795//11538 +f 12816//11559 12805//11548 12807//11550 12818//11561 +f 12817//11560 12816//11559 12818//11561 12819//11562 +f 12820//11563 12821//11564 12807//11550 12806//11549 +f 12809//11552 12820//11563 12806//11549 12799//11542 +f 12820//11563 12809//11552 12811//11554 12822//11565 +f 12821//11564 12820//11563 12822//11565 12823//11566 +f 12824//11567 12825//11568 12811//11554 12810//11553 +f 12442//11185 12824//11567 12810//11553 12443//11186 +f 12824//11567 12442//11185 12419//11162 12826//11569 +f 12825//11568 12824//11567 12826//11569 12827//11570 +f 12828//11571 12829//11572 12827//11570 12826//11569 +f 12418//11161 12828//11571 12826//11569 12419//11162 +f 12828//11571 12418//11161 12345//11088 12344//11087 +f 12829//11572 12828//11571 12344//11087 12335//11078 +f 12830//11573 12831//11574 12823//11566 12822//11565 +f 12825//11568 12830//11573 12822//11565 12811//11554 +f 12830//11573 12825//11568 12827//11570 12832//11575 +f 12831//11574 12830//11573 12832//11575 12833//11576 +f 12834//11577 12835//11578 12819//11562 12818//11561 +f 12821//11564 12834//11577 12818//11561 12807//11550 +f 12834//11577 12821//11564 12823//11566 12836//11579 +f 12835//11578 12834//11577 12836//11579 12837//11580 +f 12838//11581 12839//11582 12833//11576 12832//11575 +f 12829//11572 12838//11581 12832//11575 12827//11570 +f 12838//11581 12829//11572 12335//11078 12334//11077 +f 12839//11582 12838//11581 12334//11077 12333//11076 +f 12840//11583 12841//11584 12837//11580 12836//11579 +f 12831//11574 12840//11583 12836//11579 12823//11566 +f 12840//11583 12831//11574 12833//11576 12842//11585 +f 12841//11584 12840//11583 12842//11585 12843//11586 +f 12844//11587 12845//11588 12843//11586 12842//11585 +f 12839//11582 12844//11587 12842//11585 12833//11576 +f 12844//11587 12839//11582 12333//11076 12846//11589 +f 12845//11588 12844//11587 12846//11589 12847//11590 +f 12848//11591 12849//11592 12847//11590 12846//11589 +f 12332//11075 12848//11591 12846//11589 12333//11076 +f 12848//11591 12332//11075 12309//11053 12308//11052 +f 12849//11592 12848//11591 12308//11052 12305//11049 +f 12850//11593 12851//11594 12852//11595 12853//11596 +f 12841//11584 12850//11593 12853//11596 12837//11580 +f 12850//11593 12841//11584 12843//11586 12854//11597 +f 12851//11594 12850//11593 12854//11597 12855//11598 +f 12856//11599 12857//11600 12858//11601 12859//11602 +f 12849//11592 12856//11599 12859//11602 12847//11590 +f 12856//11599 12849//11592 12305//11049 12304//11048 +f 12857//11600 12856//11599 12304//11048 12303//11047 +f 12860//11603 12861//11604 12855//11598 12854//11597 +f 12845//11588 12860//11603 12854//11597 12843//11586 +f 12860//11603 12845//11588 12847//11590 12859//11602 +f 12861//11604 12860//11603 12859//11602 12858//11601 +f 12862//11605 12863//11606 12864//11607 12865//11608 +f 12857//11600 12862//11605 12865//11608 12858//11601 +f 12862//11605 12857//11600 12303//11047 12866//11609 +f 12863//11606 12862//11605 12866//11609 12867//11610 +f 12868//11611 12869//11612 12870//11613 12871//11614 +f 12861//11604 12868//11611 12871//11614 12855//11598 +f 12868//11611 12861//11604 12858//11601 12865//11608 +f 12869//11612 12868//11611 12865//11608 12864//11607 +f 12872//11615 12873//11616 12874//11617 12875//11618 +f 12851//11594 12872//11615 12875//11618 12852//11595 +f 12872//11615 12851//11594 12855//11598 12871//11614 +f 12873//11616 12872//11615 12871//11614 12870//11613 +f 12876//11619 12835//11578 12837//11580 12853//11596 +f 12877//11620 12876//11619 12853//11596 12852//11595 +f 12876//11619 12877//11620 12878//11621 12879//11622 +f 12835//11578 12876//11619 12879//11622 12819//11562 +f 12880//11623 12877//11620 12852//11595 12875//11618 +f 12881//11624 12880//11623 12875//11618 12874//11617 +f 12880//11623 12881//11624 12882//11625 12883//11626 +f 12877//11620 12880//11623 12883//11626 12878//11621 +f 12884//11627 12817//11560 12819//11562 12879//11622 +f 12885//11628 12884//11627 12879//11622 12878//11621 +f 12884//11627 12885//11628 12815//11558 12814//11557 +f 12817//11560 12884//11627 12814//11557 12803//11546 +f 12886//11629 12887//11630 12888//11631 12889//11632 +f 12885//11628 12886//11629 12889//11632 12815//11558 +f 12886//11629 12885//11628 12878//11621 12883//11626 +f 12887//11630 12886//11629 12883//11626 12882//11625 +f 12890//11633 12891//11634 12774//11517 12773//11516 +f 12813//11556 12890//11633 12773//11516 12762//11505 +f 12890//11633 12813//11556 12815//11558 12889//11632 +f 12891//11634 12890//11633 12889//11632 12888//11631 +f 12892//11635 12893//11636 12894//11637 12895//11638 +f 12887//11630 12892//11635 12895//11638 12888//11631 +f 12892//11635 12887//11630 12882//11625 12896//11639 +f 12893//11636 12892//11635 12896//11639 12897//11640 +f 12898//11641 12899//11642 12736//11479 12735//11478 +f 12772//11515 12898//11641 12735//11478 12734//11477 +f 12898//11641 12772//11515 12774//11517 12900//11643 +f 12899//11642 12898//11641 12900//11643 12901//11644 +f 12902//11645 12903//11646 12901//11644 12900//11643 +f 12891//11634 12902//11645 12900//11643 12774//11517 +f 12902//11645 12891//11634 12888//11631 12895//11638 +f 12903//11646 12902//11645 12895//11638 12894//11637 +f 12904//11647 12905//11648 12711//11454 12710//11453 +f 12732//11475 12904//11647 12710//11453 12705//11448 +f 12904//11647 12732//11475 12736//11479 12906//11649 +f 12905//11648 12904//11647 12906//11649 12907//11650 +f 12908//11651 12909//11652 12907//11650 12906//11649 +f 12899//11642 12908//11651 12906//11649 12736//11479 +f 12908//11651 12899//11642 12901//11644 12910//11653 +f 12909//11652 12908//11651 12910//11653 12911//11654 +f 12912//11655 12913//11656 12911//11654 12910//11653 +f 12903//11646 12912//11655 12910//11653 12901//11644 +f 12912//11655 12903//11646 12894//11637 12914//11657 +f 12913//11656 12912//11655 12914//11657 12915//11658 +f 12916//11659 12917//11660 12897//11640 12896//11639 +f 12881//11624 12916//11659 12896//11639 12882//11625 +f 12916//11659 12881//11624 12874//11617 12918//11661 +f 12917//11660 12916//11659 12918//11661 12919//11662 +f 12920//11663 12921//11664 12915//11658 12914//11657 +f 12893//11636 12920//11663 12914//11657 12894//11637 +f 12920//11663 12893//11636 12897//11640 12922//11665 +f 12921//11664 12920//11663 12922//11665 12923//11666 +f 12924//11667 12925//11668 12919//11662 12918//11661 +f 12873//11616 12924//11667 12918//11661 12874//11617 +f 12924//11667 12873//11616 12870//11613 12926//11669 +f 12925//11668 12924//11667 12926//11669 12927//11670 +f 12928//11671 12929//11672 12923//11666 12922//11665 +f 12917//11660 12928//11671 12922//11665 12897//11640 +f 12928//11671 12917//11660 12919//11662 12930//11673 +f 12929//11672 12928//11671 12930//11673 12931//11674 +f 12932//11675 12933//11676 12927//11670 12926//11669 +f 12869//11612 12932//11675 12926//11669 12870//11613 +f 12932//11675 12869//11612 12864//11607 12934//11677 +f 12933//11676 12932//11675 12934//11677 12935//11678 +f 12936//11679 12937//11680 12931//11674 12930//11673 +f 12925//11668 12936//11679 12930//11673 12919//11662 +f 12936//11679 12925//11668 12927//11670 12938//11681 +f 12937//11680 12936//11679 12938//11681 12939//11682 +f 12940//11683 12941//11684 12942//11685 12943//11686 +f 12921//11664 12940//11683 12943//11686 12915//11658 +f 12940//11683 12921//11664 12923//11666 12944//11687 +f 12941//11684 12940//11683 12944//11687 12945//11688 +f 12946//11689 12947//11690 12945//11688 12944//11687 +f 12929//11672 12946//11689 12944//11687 12923//11666 +f 12946//11689 12929//11672 12931//11674 12948//11691 +f 12947//11690 12946//11689 12948//11691 12949//11692 +f 12950//11693 12913//11656 12915//11658 12943//11686 +f 12951//11694 12950//11693 12943//11686 12942//11685 +f 12950//11693 12951//11694 12952//11695 12953//11696 +f 12913//11656 12950//11693 12953//11696 12911//11654 +f 12954//11697 12955//11698 12939//11682 12938//11681 +f 12933//11676 12954//11697 12938//11681 12927//11670 +f 12954//11697 12933//11676 12935//11678 12956//11699 +f 12955//11698 12954//11697 12956//11699 12957//11700 +f 12958//11701 12909//11652 12911//11654 12953//11696 +f 12959//11702 12958//11701 12953//11696 12952//11695 +f 12958//11701 12959//11702 12960//11703 12961//11704 +f 12909//11652 12958//11701 12961//11704 12907//11650 +f 12962//11705 12963//11706 12935//11678 12934//11677 +f 12863//11606 12962//11705 12934//11677 12864//11607 +f 12962//11705 12863//11606 12867//11610 12964//11707 +f 12963//11706 12962//11705 12964//11707 12965//11708 +f 12966//11709 12967//11710 12867//11610 12866//11609 +f 12302//11046 12966//11709 12866//11609 12303//11047 +f 12966//11709 12302//11046 12181//10925 12180//10924 +f 12967//11710 12966//11709 12180//10924 12171//10915 +f 12968//11711 12969//11712 12965//11708 12964//11707 +f 12967//11710 12968//11711 12964//11707 12867//11610 +f 12968//11711 12967//11710 12171//10915 12170//10914 +f 12969//11712 12968//11711 12170//10914 12174//10918 +f 12970//11713 12971//11714 12957//11700 12956//11699 +f 12963//11706 12970//11713 12956//11699 12935//11678 +f 12970//11713 12963//11706 12965//11708 12972//11715 +f 12971//11714 12970//11713 12972//11715 12973//11716 +f 12974//11717 12975//11718 12174//10918 12173//10917 +f 12152//10896 12974//11717 12173//10917 12153//10897 +f 12974//11717 12152//10896 12088//10832 12976//11719 +f 12975//11718 12974//11717 12976//11719 12977//11720 +f 12978//11721 12979//11722 12973//11716 12972//11715 +f 12969//11712 12978//11721 12972//11715 12965//11708 +f 12978//11721 12969//11712 12174//10918 12975//11718 +f 12979//11722 12978//11721 12975//11718 12977//11720 +f 12980//11723 12981//11724 12977//11720 12976//11719 +f 12087//10831 12980//11723 12976//11719 12088//10832 +f 12980//11723 12087//10831 12066//10810 12065//10809 +f 12981//11724 12980//11723 12065//10809 12064//10808 +f 12982//11725 12979//11722 12977//11720 12981//11724 +f 12068//10812 12982//11725 12981//11724 12064//10808 +f 12982//11725 12068//10812 12070//10814 12983//11726 +f 12979//11722 12982//11725 12983//11726 12973//11716 +f 12984//11727 12971//11714 12973//11716 12983//11726 +f 12985//11728 12984//11727 12983//11726 12070//10814 +f 12984//11727 12985//11728 12986//11729 12987//11730 +f 12971//11714 12984//11727 12987//11730 12957//11700 +f 12988//11731 12985//11728 12070//10814 12069//10813 +f 12058//10802 12988//11731 12069//10813 12048//10792 +f 12988//11731 12058//10802 12060//10804 12989//11732 +f 12985//11728 12988//11731 12989//11732 12986//11729 +f 12990//11733 12955//11698 12957//11700 12987//11730 +f 12991//11734 12990//11733 12987//11730 12986//11729 +f 12990//11733 12991//11734 12992//11735 12993//11736 +f 12955//11698 12990//11733 12993//11736 12939//11682 +f 12994//11737 12991//11734 12986//11729 12989//11732 +f 12995//11738 12994//11737 12989//11732 12060//10804 +f 12994//11737 12995//11738 12996//11739 12997//11740 +f 12991//11734 12994//11737 12997//11740 12992//11735 +f 12998//11741 12995//11738 12060//10804 12059//10803 +f 12999//11742 12998//11741 12059//10803 12038//10782 +f 12998//11741 12999//11742 13000//11743 13001//11744 +f 12995//11738 12998//11741 13001//11744 12996//11739 +f 13002//11745 12937//11680 12939//11682 12993//11736 +f 13003//11746 13002//11745 12993//11736 12992//11735 +f 13002//11745 13003//11746 12949//11692 12948//11691 +f 12937//11680 13002//11745 12948//11691 12931//11674 +f 13004//11747 13003//11746 12992//11735 12997//11740 +f 13005//11748 13004//11747 12997//11740 12996//11739 +f 13004//11747 13005//11748 13006//11749 13007//11750 +f 13003//11746 13004//11747 13007//11750 12949//11692 +f 13008//11751 13009//11752 13010//11753 13011//11754 +f 12947//11690 13008//11751 13011//11754 12945//11688 +f 13008//11751 12947//11690 12949//11692 13007//11750 +f 13009//11752 13008//11751 13007//11750 13006//11749 +f 13012//11755 13013//11756 13014//11757 13015//11758 +f 13005//11748 13012//11755 13015//11758 13006//11749 +f 13012//11755 13005//11748 12996//11739 13001//11744 +f 13013//11756 13012//11755 13001//11744 13000//11743 +f 13016//11759 13017//11760 13018//11761 13019//11762 +f 13009//11752 13016//11759 13019//11762 13010//11753 +f 13016//11759 13009//11752 13006//11749 13015//11758 +f 13017//11760 13016//11759 13015//11758 13014//11757 +f 13020//11763 12941//11684 12945//11688 13011//11754 +f 13021//11764 13020//11763 13011//11754 13010//11753 +f 13020//11763 13021//11764 13022//11765 13023//11766 +f 12941//11684 13020//11763 13023//11766 12942//11685 +f 13024//11767 13021//11764 13010//11753 13019//11762 +f 13025//11768 13024//11767 13019//11762 13018//11761 +f 13024//11767 13025//11768 13026//11769 13027//11770 +f 13021//11764 13024//11767 13027//11770 13022//11765 +f 13028//11771 12951//11694 12942//11685 13023//11766 +f 13029//11772 13028//11771 13023//11766 13022//11765 +f 13028//11771 13029//11772 13030//11773 13031//11774 +f 12951//11694 13028//11771 13031//11774 12952//11695 +f 13032//11775 13029//11772 13022//11765 13027//11770 +f 13033//11776 13032//11775 13027//11770 13026//11769 +f 13032//11775 13033//11776 13034//11777 13035//11778 +f 13029//11772 13032//11775 13035//11778 13030//11773 +f 13036//11779 12959//11702 12952//11695 13031//11774 +f 13037//11780 13036//11779 13031//11774 13030//11773 +f 13036//11779 13037//11780 13038//11781 13039//11782 +f 12959//11702 13036//11779 13039//11782 12960//11703 +f 13040//11783 13037//11780 13030//11773 13035//11778 +f 13041//11784 13040//11783 13035//11778 13034//11777 +f 13040//11783 13041//11784 13042//11785 13043//11786 +f 13037//11780 13040//11783 13043//11786 13038//11781 +f 13044//11787 13045//11788 13046//11789 13047//11790 +f 13033//11776 13044//11787 13047//11790 13034//11777 +f 13044//11787 13033//11776 13026//11769 13048//11791 +f 13045//11788 13044//11787 13048//11791 13049//11792 +f 13050//11793 13051//11794 13052//11795 13053//11796 +f 13041//11784 13050//11793 13053//11796 13042//11785 +f 13050//11793 13041//11784 13034//11777 13047//11790 +f 13051//11794 13050//11793 13047//11790 13046//11789 +f 13054//11797 13055//11798 13038//11781 13043//11786 +f 13056//11799 13054//11797 13043//11786 13042//11785 +f 13054//11797 13056//11799 13057//11800 13058//11801 +f 13055//11798 13054//11797 13058//11801 13059//11802 +f 13060//11803 13061//11804 13049//11792 13048//11791 +f 13025//11768 13060//11803 13048//11791 13026//11769 +f 13060//11803 13025//11768 13018//11761 13062//11805 +f 13061//11804 13060//11803 13062//11805 13063//11806 +f 13064//11807 13065//11808 12960//11703 13039//11782 +f 13055//11798 13064//11807 13039//11782 13038//11781 +f 13064//11807 13055//11798 13059//11802 13066//11809 +f 13065//11808 13064//11807 13066//11809 13067//11810 +f 13068//11811 13069//11812 13063//11806 13062//11805 +f 13017//11760 13068//11811 13062//11805 13018//11761 +f 13068//11811 13017//11760 13014//11757 13070//11813 +f 13069//11812 13068//11811 13070//11813 13071//11814 +f 13072//11815 12905//11648 12907//11650 12961//11704 +f 13065//11808 13072//11815 12961//11704 12960//11703 +f 13072//11815 13065//11808 13067//11810 13073//11816 +f 12905//11648 13072//11815 13073//11816 12711//11454 +f 13074//11817 12715//11458 12701//11444 12712//11455 +f 13073//11816 13074//11817 12712//11455 12711//11454 +f 13074//11817 13073//11816 13067//11810 13075//11818 +f 12715//11458 13074//11817 13075//11818 12716//11459 +f 13076//11819 13077//11820 12716//11459 13075//11818 +f 13066//11809 13076//11819 13075//11818 13067//11810 +f 13076//11819 13066//11809 13059//11802 13078//11821 +f 13077//11820 13076//11819 13078//11821 13079//11822 +f 13080//11823 13081//11824 13079//11822 13078//11821 +f 13058//11801 13080//11823 13078//11821 13059//11802 +f 13080//11823 13058//11801 13057//11800 13082//11825 +f 13081//11824 13080//11823 13082//11825 11624//10368 +f 13083//11826 13084//11827 12718//11461 12717//11460 +f 13077//11820 13083//11826 12717//11460 12716//11459 +f 13083//11826 13077//11820 13079//11822 13085//11828 +f 13084//11827 13083//11826 13085//11828 11614//10358 +f 13086//11829 11612//10356 11614//10358 13085//11828 +f 13081//11824 13086//11829 13085//11828 13079//11822 +f 13086//11829 13081//11824 11624//10368 11623//10367 +f 11612//10356 13086//11829 11623//10367 11610//10354 +f 13087//11830 13088//11831 12726//11469 12725//11468 +f 13084//11827 13087//11830 12725//11468 12718//11461 +f 13087//11830 13084//11827 11614//10358 11613//10357 +f 13088//11831 13087//11830 11613//10357 11602//10346 +f 13089//11832 11596//10340 11598//10342 13090//11833 +f 13088//11831 13089//11832 13090//11833 12726//11469 +f 13089//11832 13088//11831 11602//10346 11601//10345 +f 11596//10340 13089//11832 11601//10345 11584//10328 +f 13091//11834 12724//11467 12726//11469 13090//11833 +f 13092//11835 13091//11834 13090//11833 11598//10342 +f 13091//11834 13092//11835 12690//11433 12689//11432 +f 12724//11467 13091//11834 12689//11432 12688//11431 +f 13093//11836 11590//10334 11594//10338 13094//11837 +f 13092//11835 13093//11836 13094//11837 12690//11433 +f 13093//11836 13092//11835 11598//10342 11597//10341 +f 11590//10334 13093//11836 11597//10341 11580//10324 +f 13095//11838 12686//11429 12690//11433 13094//11837 +f 13096//11839 13095//11838 13094//11837 11594//10338 +f 13095//11838 13096//11839 12676//11419 12675//11418 +f 12686//11429 13095//11838 12675//11418 12674//11417 +f 13097//11840 13098//11841 13099//11842 13100//11843 +f 12672//11415 13097//11840 13100//11843 12670//11413 +f 13097//11840 12672//11415 12676//11419 13101//11844 +f 13098//11841 13097//11840 13101//11844 13102//11845 +f 13103//11846 12668//11411 12670//11413 13100//11843 +f 13104//11847 13103//11846 13100//11843 13099//11842 +f 13103//11846 13104//11847 12662//11405 12661//11404 +f 12668//11411 13103//11846 12661//11404 12638//11381 +f 13105//11848 11622//10366 11624//10368 13082//11825 +f 13106//11849 13105//11848 13082//11825 13057//11800 +f 13105//11848 13106//11849 13107//11850 13108//11851 +f 11622//10366 13105//11848 13108//11851 11620//10364 +f 13109//11852 13110//11853 13107//11850 13106//11849 +f 13056//11799 13109//11852 13106//11849 13057//11800 +f 13109//11852 13056//11799 13042//11785 13053//11796 +f 13110//11853 13109//11852 13053//11796 13052//11795 +f 13111//11854 11616//10360 11620//10364 13108//11851 +f 13112//11855 13111//11854 13108//11851 13107//11850 +f 13111//11854 13112//11855 11636//10380 11635//10379 +f 11616//10360 13111//11854 11635//10379 11617//10361 +f 13113//11856 13114//11857 11636//10380 13112//11855 +f 13110//11853 13113//11856 13112//11855 13107//11850 +f 13113//11856 13110//11853 13052//11795 13115//11858 +f 13114//11857 13113//11856 13115//11858 13116//11859 +f 13117//11860 11660//10404 11633//10377 11632//10376 +f 13114//11857 13117//11860 11632//10376 11636//10380 +f 13117//11860 13114//11857 13116//11859 13118//11861 +f 11660//10404 13117//11860 13118//11861 11661//10405 +f 13119//11862 13120//11863 13116//11859 13115//11858 +f 13051//11794 13119//11862 13115//11858 13052//11795 +f 13119//11862 13051//11794 13046//11789 13121//11864 +f 13120//11863 13119//11862 13121//11864 13122//11865 +f 13123//11866 13124//11867 11661//10405 13118//11861 +f 13120//11863 13123//11866 13118//11861 13116//11859 +f 13123//11866 13120//11863 13122//11865 13125//11868 +f 13124//11867 13123//11866 13125//11868 13126//11869 +f 13127//11870 13128//11871 13122//11865 13121//11864 +f 13045//11788 13127//11870 13121//11864 13046//11789 +f 13127//11870 13045//11788 13049//11792 13129//11872 +f 13128//11871 13127//11870 13129//11872 13130//11873 +f 13131//11874 13132//11875 11650//10394 11662//10406 +f 13124//11867 13131//11874 11662//10406 11661//10405 +f 13131//11874 13124//11867 13126//11869 13133//11876 +f 13132//11875 13131//11874 13133//11876 13134//11877 +f 13135//11878 13136//11879 13126//11869 13125//11868 +f 13128//11871 13135//11878 13125//11868 13122//11865 +f 13135//11878 13128//11871 13130//11873 13137//11880 +f 13136//11879 13135//11878 13137//11880 13138//11881 +f 13139//11882 13140//11883 13130//11873 13129//11872 +f 13061//11804 13139//11882 13129//11872 13049//11792 +f 13139//11882 13061//11804 13063//11806 13141//11884 +f 13140//11883 13139//11882 13141//11884 13142//11885 +f 13143//11886 13144//11887 11652//10396 11651//10395 +f 13132//11875 13143//11886 11651//10395 11650//10394 +f 13143//11886 13132//11875 13134//11877 13145//11888 +f 13144//11887 13143//11886 13145//11888 13146//11889 +f 13147//11890 13148//11891 13134//11877 13133//11876 +f 13136//11879 13147//11890 13133//11876 13126//11869 +f 13147//11890 13136//11879 13138//11881 13149//11892 +f 13148//11891 13147//11890 13149//11892 13150//11893 +f 13151//11894 13152//11895 13138//11881 13137//11880 +f 13140//11883 13151//11894 13137//11880 13130//11873 +f 13151//11894 13140//11883 13142//11885 13153//11896 +f 13152//11895 13151//11894 13153//11896 13154//11897 +f 13155//11898 11676//10420 11655//10399 11658//10402 +f 13144//11887 13155//11898 11658//10402 11652//10396 +f 13155//11898 13144//11887 13146//11889 13156//11899 +f 11676//10420 13155//11898 13156//11899 11677//10421 +f 13157//11900 13158//11901 13146//11889 13145//11888 +f 13148//11891 13157//11900 13145//11888 13134//11877 +f 13157//11900 13148//11891 13150//11893 13159//11902 +f 13158//11901 13157//11900 13159//11902 11708//10452 +f 13160//11903 11692//10436 11677//10421 13156//11899 +f 13158//11901 13160//11903 13156//11899 13146//11889 +f 13160//11903 13158//11901 11708//10452 11707//10451 +f 11692//10436 13160//11903 11707//10451 11693//10437 +f 13161//11904 13162//11905 11828//10572 11827//10571 +f 11704//10448 13161//11904 11827//10571 11705//10449 +f 13161//11904 11704//10448 11708//10452 13159//11902 +f 13162//11905 13161//11904 13159//11902 13150//11893 +f 13163//11906 13162//11905 13150//11893 13149//11892 +f 13152//11895 13163//11906 13149//11892 13138//11881 +f 13163//11906 13152//11895 13154//11897 13164//11907 +f 13162//11905 13163//11906 13164//11907 11828//10572 +f 13165//11908 13166//11909 11838//10582 11837//10581 +f 11826//10570 13165//11908 11837//10581 11824//10568 +f 13165//11908 11826//10570 11828//10572 13164//11907 +f 13166//11909 13165//11908 13164//11907 13154//11897 +f 13167//11910 13168//11911 12034//10778 12033//10777 +f 11836//10580 13167//11910 12033//10777 11834//10578 +f 13167//11910 11836//10580 11838//10582 13169//11912 +f 13168//11911 13167//11910 13169//11912 13170//11913 +f 13171//11914 13172//11915 13170//11913 13169//11912 +f 13166//11909 13171//11914 13169//11912 11838//10582 +f 13171//11914 13166//11909 13154//11897 13153//11896 +f 13172//11915 13171//11914 13153//11896 13142//11885 +f 13173//11916 13174//11917 12042//10786 12041//10785 +f 13168//11911 13173//11916 12041//10785 12034//10778 +f 13173//11916 13168//11911 13170//11913 13175//11918 +f 13174//11917 13173//11916 13175//11918 13071//11814 +f 13176//11919 12999//11742 12038//10782 12037//10781 +f 12040//10784 13176//11919 12037//10781 12030//10774 +f 13176//11919 12040//10784 12042//10786 13177//11920 +f 12999//11742 13176//11919 13177//11920 13000//11743 +f 13178//11921 13069//11812 13071//11814 13175//11918 +f 13172//11915 13178//11921 13175//11918 13170//11913 +f 13178//11921 13172//11915 13142//11885 13141//11884 +f 13069//11812 13178//11921 13141//11884 13063//11806 +f 13179//11922 13013//11756 13000//11743 13177//11920 +f 13174//11917 13179//11922 13177//11920 12042//10786 +f 13179//11922 13174//11917 13071//11814 13070//11813 +f 13013//11756 13179//11922 13070//11813 13014//11757 +f 13180//11923 13181//11924 12553//11296 12552//11295 +f 12559//11302 13180//11923 12552//11295 12549//11292 +f 13180//11923 12559//11302 12563//11306 12581//11324 +f 13181//11924 13180//11923 12581//11324 12580//11323 +f 13182//11925 13183//11926 12557//11300 12556//11299 +f 13181//11924 13182//11925 12556//11299 12553//11296 +f 13182//11925 13181//11924 12580//11323 13184//11927 +f 13183//11926 13182//11925 13184//11927 13185//11928 +f 13186//11929 13187//11930 13185//11928 13184//11927 +f 12579//11322 13186//11929 13184//11927 12580//11323 +f 13186//11929 12579//11322 12583//11326 13188//11931 +f 13187//11930 13186//11929 13188//11931 13189//11932 +f 13190//11933 13191//11934 13189//11932 13188//11931 +f 12585//11328 13190//11933 13188//11931 12583//11326 +f 13190//11933 12585//11328 12589//11332 12666//11409 +f 13191//11934 13190//11933 12666//11409 12665//11408 +f 13192//11935 13193//11936 12399//11142 12404//11147 +f 13194//11937 13192//11935 12404//11147 12403//11146 +f 13192//11935 13194//11937 12237//10981 12236//10980 +f 13193//11936 13192//11935 12236//10980 12233//10977 +f 13195//11938 12243//10987 12247//10991 12400//11143 +f 13193//11936 13195//11938 12400//11143 12399//11142 +f 13195//11938 13193//11936 12233//10977 12231//10975 +f 12243//10987 13195//11938 12231//10975 12230//10974 +f 13196//11939 13197//11940 11450//10194 11449//10193 +f 11430//10174 13196//11939 11449//10193 11431//10175 +f 13196//11939 11430//10174 11368//10112 13198//11941 +f 13197//11940 13196//11939 13198//11941 13199//11942 +f 13200//11943 13201//11944 13202//11945 13203//11946 +f 13204//11947 13200//11943 13203//11946 11374//10118 +f 13200//11943 13204//11947 13205//11948 13206//11949 +f 13201//11944 13200//11943 13206//11949 13207//11950 +f 13208//11951 13209//11952 13210//11953 13211//11954 +f 13204//11947 13208//11951 13211//11954 13205//11948 +f 13208//11951 13204//11947 11374//10118 11373//10117 +f 13209//11952 13208//11951 11373//10117 11372//10116 +f 13212//11955 13213//11956 13214//11957 13215//11958 +f 13209//11952 13212//11955 13215//11958 13210//11953 +f 13212//11955 13209//11952 11372//10116 11414//10158 +f 13213//11956 13212//11955 11414//10158 11413//10157 +f 13216//11959 13217//11960 13218//11961 13219//11962 +f 13213//11956 13216//11959 13219//11962 13214//11957 +f 13216//11959 13213//11956 11413//10157 11420//10164 +f 13217//11960 13216//11959 11420//10164 11419//10163 +f 13220//11963 13221//11964 13222//11965 13223//11966 +f 13217//11960 13220//11963 13223//11966 13218//11961 +f 13220//11963 13217//11960 11419//10163 11436//10180 +f 13221//11964 13220//11963 11436//10180 11435//10179 +f 13224//11967 13225//11968 13226//11969 13227//11970 +f 13221//11964 13224//11967 13227//11970 13222//11965 +f 13224//11967 13221//11964 11435//10179 11490//10234 +f 13225//11968 13224//11967 11490//10234 11489//10233 +f 13228//11971 13229//11972 13226//11969 13225//11968 +f 11502//10246 13228//11971 13225//11968 11489//10233 +f 13228//11971 11502//10246 11506//10250 13230//11973 +f 13229//11972 13228//11971 13230//11973 13231//11974 +f 13232//11975 13233//11976 13231//11974 13230//11973 +f 11664//10408 13232//11975 13230//11973 11506//10250 +f 13232//11975 11664//10408 11668//10412 13234//11977 +f 13233//11976 13232//11975 13234//11977 13235//11978 +f 13236//11979 13237//11980 13235//11978 13234//11977 +f 11670//10414 13236//11979 13234//11977 11668//10412 +f 13236//11979 11670//10414 11674//10418 13238//11981 +f 13237//11980 13236//11979 13238//11981 13239//11982 +f 13240//11983 13241//11984 13239//11982 13238//11981 +f 11680//10424 13240//11983 13238//11981 11674//10418 +f 13240//11983 11680//10424 11684//10428 13242//11985 +f 13241//11984 13240//11983 13242//11985 13243//11986 +f 13244//11987 13245//11988 13243//11986 13242//11985 +f 11686//10430 13244//11987 13242//11985 11684//10428 +f 13244//11987 11686//10430 11690//10434 13246//11989 +f 13245//11988 13244//11987 13246//11989 13247//11990 +f 13248//11991 13249//11992 13247//11990 13246//11989 +f 11714//10458 13248//11991 13246//11989 11690//10434 +f 13248//11991 11714//10458 11718//10462 13250//11993 +f 13249//11992 13248//11991 13250//11993 13251//11994 +f 13252//11995 13253//11996 13251//11994 13250//11993 +f 11720//10464 13252//11995 13250//11993 11718//10462 +f 13252//11995 11720//10464 11724//10468 13254//11997 +f 13253//11996 13252//11995 13254//11997 13255//11998 +f 13256//11999 13257//12000 13255//11998 13254//11997 +f 11730//10474 13256//11999 13254//11997 11724//10468 +f 13256//11999 11730//10474 11734//10478 13258//12001 +f 13257//12000 13256//11999 13258//12001 13259//12002 +f 13260//12003 13261//12004 13259//12002 13258//12001 +f 11740//10484 13260//12003 13258//12001 11734//10478 +f 13260//12003 11740//10484 11744//10488 13262//12005 +f 13261//12004 13260//12003 13262//12005 13263//12006 +f 13264//12007 13265//12008 13266//12009 13267//12010 +f 13262//12005 13264//12007 13267//12010 13263//12006 +f 13264//12007 13262//12005 11744//10488 11752//10496 +f 13265//12008 13264//12007 11752//10496 11751//10495 +f 13268//12011 13269//12012 13270//12013 13271//12014 +f 13265//12008 13268//12011 13271//12014 13266//12009 +f 13268//12011 13265//12008 11751//10495 11766//10510 +f 13269//12012 13268//12011 11766//10510 11765//10509 +f 13272//12015 13273//12016 13274//12017 13275//12018 +f 13269//12012 13272//12015 13275//12018 13270//12013 +f 13272//12015 13269//12012 11765//10509 11770//10514 +f 13273//12016 13272//12015 11770//10514 11389//10133 +f 13276//12019 13277//12020 13278//12021 13279//12022 +f 13273//12016 13276//12019 13279//12022 13274//12017 +f 13276//12019 13273//12016 11389//10133 11387//10131 +f 13277//12020 13276//12019 11387//10131 11386//10130 +f 13280//12023 13281//12024 13282//12025 13283//12026 +f 13277//12020 13280//12023 13283//12026 13278//12021 +f 13280//12023 13277//12020 11386//10130 13284//12027 +f 13281//12024 13280//12023 13284//12027 13285//12028 +f 13286//12029 13287//12030 13288//12031 13289//12032 +f 13281//12024 13286//12029 13289//12032 13282//12025 +f 13286//12029 13281//12024 13285//12028 13290//12033 +f 13287//12030 13286//12029 13290//12033 13291//12034 +f 13292//12035 13293//12036 11891//10635 11898//10642 +f 13294//12037 13292//12035 11898//10642 11897//10641 +f 13292//12035 13294//12037 13291//12034 13290//12033 +f 13293//12036 13292//12035 13290//12033 13285//12028 +f 13295//12038 11385//10129 11392//10136 11892//10636 +f 13293//12036 13295//12038 11892//10636 11891//10635 +f 13295//12038 13293//12036 13285//12028 13284//12027 +f 11385//10129 13295//12038 13284//12027 11386//10130 +f 13296//12039 13096//11839 11594//10338 11593//10337 +f 13297//12040 13296//12039 11593//10337 11592//10336 +f 13296//12039 13297//12040 13102//11845 13101//11844 +f 13096//11839 13296//12039 13101//11844 12676//11419 +f 13298//12041 11367//10111 11374//10118 13203//11946 +f 13299//12042 13298//12041 13203//11946 13202//11945 +f 13298//12041 13299//12042 13199//11942 13198//11941 +f 11367//10111 13298//12041 13198//11941 11368//10112 +f 13300//12043 11774//10518 11768//10512 11767//10511 +f 11760//10504 13300//12043 11767//10511 11754//10498 +f 13300//12043 11760//10504 11762//10506 11790//10534 +f 11774//10518 13300//12043 11790//10534 11775//10519 +f 13301//12044 13302//12045 13303//12046 13304//12047 +f 13305//12048 13301//12044 13304//12047 13306//12049 +f 13301//12044 13305//12048 13307//12050 13308//12051 +f 13302//12045 13301//12044 13308//12051 13309//12052 +f 13310//12053 13311//12054 13312//12055 13313//12056 +f 13314//12057 13310//12053 13313//12056 13315//12058 +f 13310//12053 13314//12057 13316//12059 13317//12060 +f 13311//12054 13310//12053 13317//12060 13318//12061 +f 13319//12062 13320//12063 13321//12064 13322//12065 +f 13323//12066 13319//12062 13322//12065 13324//12067 +f 13319//12062 13323//12066 13325//12068 13326//12069 +f 13320//12063 13319//12062 13326//12069 13327//12070 +f 13328//12071 13329//12072 13330//12073 13331//12074 +f 13332//12075 13328//12071 13331//12074 13333//12076 +f 13328//12071 13332//12075 13334//12077 13335//12078 +f 13329//12072 13328//12071 13335//12078 13336//12079 +f 13337//12080 13338//12081 13339//12082 13340//12083 +f 13341//12084 13337//12080 13340//12083 13342//12085 +f 13337//12080 13341//12084 13343//12086 13344//12087 +f 13338//12081 13337//12080 13344//12087 13345//12088 +f 13346//12089 13347//12090 13348//12091 13349//12092 +f 13305//12048 13346//12089 13349//12092 13307//12050 +f 13346//12089 13305//12048 13306//12049 13350//12093 +f 13347//12090 13346//12089 13350//12093 13351//12094 +f 13352//12095 13353//12096 13354//12097 13355//12098 +f 13347//12090 13352//12095 13355//12098 13348//12091 +f 13352//12095 13347//12090 13351//12094 13356//12099 +f 13353//12096 13352//12095 13356//12099 13357//12100 +f 13358//12101 13359//12102 13351//12094 13350//12093 +f 13360//12103 13358//12101 13350//12093 13306//12049 +f 13358//12101 13360//12103 13361//12104 13362//12105 +f 13359//12102 13358//12101 13362//12105 13363//12106 +f 13364//12107 13365//12108 13366//12109 13367//12110 +f 13360//12103 13364//12107 13367//12110 13361//12104 +f 13364//12107 13360//12103 13306//12049 13304//12047 +f 13365//12108 13364//12107 13304//12047 13303//12046 +f 13368//12111 13369//12112 13370//12113 13371//12114 +f 13353//12096 13368//12111 13371//12114 13354//12097 +f 13368//12111 13353//12096 13357//12100 13372//12115 +f 13369//12112 13368//12111 13372//12115 13373//12116 +f 13374//12117 13375//12118 13361//12104 13367//12110 +f 13376//12119 13374//12117 13367//12110 13366//12109 +f 13374//12117 13376//12119 13377//12120 13378//12121 +f 13375//12118 13374//12117 13378//12121 13379//12122 +f 13380//12123 13381//12124 13382//12125 13383//12126 +f 13376//12119 13380//12123 13383//12126 13377//12120 +f 13380//12123 13376//12119 13366//12109 13384//12127 +f 13381//12124 13380//12123 13384//12127 13385//12128 +f 13386//12129 13387//12130 13377//12120 13383//12126 +f 13388//12131 13386//12129 13383//12126 13382//12125 +f 13386//12129 13388//12131 13389//12132 13390//12133 +f 13387//12130 13386//12129 13390//12133 13391//12134 +f 13392//12135 13393//12136 13391//12134 13390//12133 +f 13394//12137 13392//12135 13390//12133 13389//12132 +f 13392//12135 13394//12137 13395//12138 13396//12139 +f 13393//12136 13392//12135 13396//12139 13397//12140 +f 13398//12141 13399//12142 13379//12122 13378//12121 +f 13387//12130 13398//12141 13378//12121 13377//12120 +f 13398//12141 13387//12130 13391//12134 13400//12143 +f 13399//12142 13398//12141 13400//12143 13401//12144 +f 13402//12145 13403//12146 13363//12106 13362//12105 +f 13375//12118 13402//12145 13362//12105 13361//12104 +f 13402//12145 13375//12118 13379//12122 13404//12147 +f 13403//12146 13402//12145 13404//12147 13405//12148 +f 13406//12149 13407//12150 13357//12100 13356//12099 +f 13359//12102 13406//12149 13356//12099 13351//12094 +f 13406//12149 13359//12102 13363//12106 13408//12151 +f 13407//12150 13406//12149 13408//12151 13409//12152 +f 13410//12153 13411//12154 13373//12116 13372//12115 +f 13407//12150 13410//12153 13372//12115 13357//12100 +f 13410//12153 13407//12150 13409//12152 13412//12155 +f 13411//12154 13410//12153 13412//12155 13413//12156 +f 13414//12157 13415//12158 13409//12152 13408//12151 +f 13403//12146 13414//12157 13408//12151 13363//12106 +f 13414//12157 13403//12146 13405//12148 13416//12159 +f 13415//12158 13414//12157 13416//12159 13417//12160 +f 13418//12161 13419//12162 13405//12148 13404//12147 +f 13399//12142 13418//12161 13404//12147 13379//12122 +f 13418//12161 13399//12142 13401//12144 13420//12163 +f 13419//12162 13418//12161 13420//12163 13421//12164 +f 13422//12165 13423//12166 13424//12167 13425//12168 +f 13369//12112 13422//12165 13425//12168 13370//12113 +f 13422//12165 13369//12112 13373//12116 13426//12169 +f 13423//12166 13422//12165 13426//12169 13427//12170 +f 13428//12171 13429//12172 13427//12170 13426//12169 +f 13411//12154 13428//12171 13426//12169 13373//12116 +f 13428//12171 13411//12154 13413//12156 13430//12173 +f 13429//12172 13428//12171 13430//12173 13431//12174 +f 13432//12175 13433//12176 13413//12156 13412//12155 +f 13415//12158 13432//12175 13412//12155 13409//12152 +f 13432//12175 13415//12158 13417//12160 13434//12177 +f 13433//12176 13432//12175 13434//12177 13435//12178 +f 13436//12179 13437//12180 13424//12167 13423//12166 +f 13438//12181 13436//12179 13423//12166 13427//12170 +f 13436//12179 13438//12181 13439//12182 13440//12183 +f 13437//12180 13436//12179 13440//12183 13441//12184 +f 13442//12185 13443//12186 13417//12160 13416//12159 +f 13419//12162 13442//12185 13416//12159 13405//12148 +f 13442//12185 13419//12162 13421//12164 13444//12187 +f 13443//12186 13442//12185 13444//12187 13445//12188 +f 13446//12189 13447//12190 13401//12144 13400//12143 +f 13393//12136 13446//12189 13400//12143 13391//12134 +f 13446//12189 13393//12136 13397//12140 13448//12191 +f 13447//12190 13446//12189 13448//12191 13449//12192 +f 13450//12193 13451//12194 13452//12195 13453//12196 +f 13454//12197 13450//12193 13453//12196 13455//12198 +f 13450//12193 13454//12197 13397//12140 13396//12139 +f 13451//12194 13450//12193 13396//12139 13395//12138 +f 13456//12199 13457//12200 13455//12198 13453//12196 +f 13458//12201 13456//12199 13453//12196 13452//12195 +f 13456//12199 13458//12201 13459//12202 13460//12203 +f 13457//12200 13456//12199 13460//12203 13461//12204 +f 13462//12205 13463//12206 13449//12192 13448//12191 +f 13454//12197 13462//12205 13448//12191 13397//12140 +f 13462//12205 13454//12197 13455//12198 13464//12207 +f 13463//12206 13462//12205 13464//12207 13465//12208 +f 13466//12209 13467//12210 13421//12164 13420//12163 +f 13447//12190 13466//12209 13420//12163 13401//12144 +f 13466//12209 13447//12190 13449//12192 13468//12211 +f 13467//12210 13466//12209 13468//12211 13469//12212 +f 13470//12213 13471//12214 13435//12178 13434//12177 +f 13443//12186 13470//12213 13434//12177 13417//12160 +f 13470//12213 13443//12186 13445//12188 13472//12215 +f 13471//12214 13470//12213 13472//12215 13473//12216 +f 13474//12217 13475//12218 13445//12188 13444//12187 +f 13467//12210 13474//12217 13444//12187 13421//12164 +f 13474//12217 13467//12210 13469//12212 13476//12219 +f 13475//12218 13474//12217 13476//12219 13477//12220 +f 13478//12221 13479//12222 13469//12212 13468//12211 +f 13463//12206 13478//12221 13468//12211 13449//12192 +f 13478//12221 13463//12206 13465//12208 13480//12223 +f 13479//12222 13478//12221 13480//12223 13481//12224 +f 13482//12225 13483//12226 13465//12208 13464//12207 +f 13457//12200 13482//12225 13464//12207 13455//12198 +f 13482//12225 13457//12200 13461//12204 13484//12227 +f 13483//12226 13482//12225 13484//12227 13485//12228 +f 13486//12229 13487//12230 13477//12220 13476//12219 +f 13479//12222 13486//12229 13476//12219 13469//12212 +f 13486//12229 13479//12222 13481//12224 13488//12231 +f 13487//12230 13486//12229 13488//12231 13489//12232 +f 13490//12233 13491//12234 13481//12224 13480//12223 +f 13483//12226 13490//12233 13480//12223 13465//12208 +f 13490//12233 13483//12226 13485//12228 13492//12235 +f 13491//12234 13490//12233 13492//12235 13493//12236 +f 13494//12237 13495//12238 13485//12228 13484//12227 +f 13496//12239 13494//12237 13484//12227 13461//12204 +f 13494//12237 13496//12239 13497//12240 13498//12241 +f 13495//12238 13494//12237 13498//12241 13499//12242 +f 13500//12243 13501//12244 13502//12245 13503//12246 +f 13496//12239 13500//12243 13503//12246 13497//12240 +f 13500//12243 13496//12239 13461//12204 13460//12203 +f 13501//12244 13500//12243 13460//12203 13459//12202 +f 13504//12247 13505//12248 13497//12240 13503//12246 +f 13506//12249 13504//12247 13503//12246 13502//12245 +f 13504//12247 13506//12249 13507//12250 13508//12251 +f 13505//12248 13504//12247 13508//12251 13509//12252 +f 13510//12253 13511//12254 13509//12252 13508//12251 +f 13512//12255 13510//12253 13508//12251 13507//12250 +f 13510//12253 13512//12255 13513//12256 13514//12257 +f 13511//12254 13510//12253 13514//12257 13515//12258 +f 13516//12259 13517//12260 13499//12242 13498//12241 +f 13505//12248 13516//12259 13498//12241 13497//12240 +f 13516//12259 13505//12248 13509//12252 13518//12261 +f 13517//12260 13516//12259 13518//12261 13519//12262 +f 13520//12263 13521//12264 13493//12236 13492//12235 +f 13495//12238 13520//12263 13492//12235 13485//12228 +f 13520//12263 13495//12238 13499//12242 13522//12265 +f 13521//12264 13520//12263 13522//12265 13523//12266 +f 13524//12267 13525//12268 13515//12258 13514//12257 +f 13526//12269 13524//12267 13514//12257 13513//12256 +f 13524//12267 13526//12269 13527//12270 13528//12271 +f 13525//12268 13524//12267 13528//12271 13529//12272 +f 13530//12273 13531//12274 13519//12262 13518//12261 +f 13511//12254 13530//12273 13518//12261 13509//12252 +f 13530//12273 13511//12254 13515//12258 13532//12275 +f 13531//12274 13530//12273 13532//12275 13533//12276 +f 13534//12277 13535//12278 13523//12266 13522//12265 +f 13517//12260 13534//12277 13522//12265 13499//12242 +f 13534//12277 13517//12260 13519//12262 13536//12279 +f 13535//12278 13534//12277 13536//12279 13537//12280 +f 13538//12281 13539//12282 13489//12232 13488//12231 +f 13491//12234 13538//12281 13488//12231 13481//12224 +f 13538//12281 13491//12234 13493//12236 13540//12283 +f 13539//12282 13538//12281 13540//12283 13541//12284 +f 13542//12285 13543//12286 13541//12284 13540//12283 +f 13521//12264 13542//12285 13540//12283 13493//12236 +f 13542//12285 13521//12264 13523//12266 13544//12287 +f 13543//12286 13542//12285 13544//12287 13545//12288 +f 13546//12289 13547//12290 13545//12288 13544//12287 +f 13535//12278 13546//12289 13544//12287 13523//12266 +f 13546//12289 13535//12278 13537//12280 13548//12291 +f 13547//12290 13546//12289 13548//12291 13549//12292 +f 13550//12293 13551//12294 13552//12295 13553//12296 +f 13539//12282 13550//12293 13553//12296 13489//12232 +f 13550//12293 13539//12282 13541//12284 13554//12297 +f 13551//12294 13550//12293 13554//12297 13555//12298 +f 13556//12299 13557//12300 13555//12298 13554//12297 +f 13543//12286 13556//12299 13554//12297 13541//12284 +f 13556//12299 13543//12286 13545//12288 13558//12301 +f 13557//12300 13556//12299 13558//12301 13559//12302 +f 13560//12303 13561//12304 13562//12305 13563//12306 +f 13487//12230 13560//12303 13563//12306 13477//12220 +f 13560//12303 13487//12230 13489//12232 13553//12296 +f 13561//12304 13560//12303 13553//12296 13552//12295 +f 13564//12307 13475//12218 13477//12220 13563//12306 +f 13565//12308 13564//12307 13563//12306 13562//12305 +f 13564//12307 13565//12308 13473//12216 13472//12215 +f 13475//12218 13564//12307 13472//12215 13445//12188 +f 13566//12309 13567//12310 13568//12311 13569//12312 +f 13561//12304 13566//12309 13569//12312 13562//12305 +f 13566//12309 13561//12304 13552//12295 13570//12313 +f 13567//12310 13566//12309 13570//12313 13571//12314 +f 13572//12315 13573//12316 13574//12317 13575//12318 +f 13565//12308 13572//12315 13575//12318 13473//12216 +f 13572//12315 13565//12308 13562//12305 13569//12312 +f 13573//12316 13572//12315 13569//12312 13568//12311 +f 13576//12319 13577//12320 13578//12321 13579//12322 +f 13471//12214 13576//12319 13579//12322 13435//12178 +f 13576//12319 13471//12214 13473//12216 13575//12318 +f 13577//12320 13576//12319 13575//12318 13574//12317 +f 13580//12323 13433//12176 13435//12178 13579//12322 +f 13581//12324 13580//12323 13579//12322 13578//12321 +f 13580//12323 13581//12324 13431//12174 13430//12173 +f 13433//12176 13580//12323 13430//12173 13413//12156 +f 13582//12325 13583//12326 13578//12321 13577//12320 +f 13584//12327 13582//12325 13577//12320 13574//12317 +f 13582//12325 13584//12327 13585//12328 13586//12329 +f 13583//12326 13582//12325 13586//12329 13587//12330 +f 13588//12331 13438//12181 13427//12170 13429//12172 +f 13589//12332 13588//12331 13429//12172 13431//12174 +f 13588//12331 13589//12332 13590//12333 13591//12334 +f 13438//12181 13588//12331 13591//12334 13439//12182 +f 13592//12335 13589//12332 13431//12174 13581//12324 +f 13583//12326 13592//12335 13581//12324 13578//12321 +f 13592//12335 13583//12326 13587//12330 13593//12336 +f 13589//12332 13592//12335 13593//12336 13590//12333 +f 13594//12337 13595//12338 13596//12339 13597//12340 +f 13584//12327 13594//12337 13597//12340 13585//12328 +f 13594//12337 13584//12327 13574//12317 13573//12316 +f 13595//12338 13594//12337 13573//12316 13568//12311 +f 13598//12341 13599//12342 13441//12184 13440//12183 +f 13600//12343 13598//12341 13440//12183 13439//12182 +f 13598//12341 13600//12343 13601//12344 13602//12345 +f 13599//12342 13598//12341 13602//12345 13603//12346 +f 13604//12347 13605//12348 13603//12346 13602//12345 +f 13606//12349 13604//12347 13602//12345 13601//12344 +f 13604//12347 13606//12349 13607//12350 13608//12351 +f 13605//12348 13604//12347 13608//12351 13609//12352 +f 13610//12353 13611//12354 13612//12355 13613//12356 +f 13600//12343 13610//12353 13613//12356 13601//12344 +f 13610//12353 13600//12343 13439//12182 13591//12334 +f 13611//12354 13610//12353 13591//12334 13590//12333 +f 13614//12357 13615//12358 13609//12352 13608//12351 +f 13616//12359 13614//12357 13608//12351 13607//12350 +f 13614//12357 13616//12359 13617//12360 13618//12361 +f 13615//12358 13614//12357 13618//12361 13619//12362 +f 13620//12363 13621//12364 13619//12362 13618//12361 +f 13622//12365 13620//12363 13618//12361 13617//12360 +f 13620//12363 13622//12365 13623//12366 13624//12367 +f 13621//12364 13620//12363 13624//12367 13625//12368 +f 13626//12369 13627//12370 13628//12371 13629//12372 +f 13606//12349 13626//12369 13629//12372 13607//12350 +f 13626//12369 13606//12349 13601//12344 13613//12356 +f 13627//12370 13626//12369 13613//12356 13612//12355 +f 13630//12373 13631//12374 13632//12375 13633//12376 +f 13616//12359 13630//12373 13633//12376 13617//12360 +f 13630//12373 13616//12359 13607//12350 13629//12372 +f 13631//12374 13630//12373 13629//12372 13628//12371 +f 13634//12377 13622//12365 13617//12360 13633//12376 +f 13635//12378 13634//12377 13633//12376 13632//12375 +f 13634//12377 13635//12378 13636//12379 13637//12380 +f 13622//12365 13634//12377 13637//12380 13623//12366 +f 13638//12381 13639//12382 13640//12383 13641//12384 +f 13631//12374 13638//12381 13641//12384 13632//12375 +f 13638//12381 13631//12374 13628//12371 13642//12385 +f 13639//12382 13638//12381 13642//12385 13643//12386 +f 13644//12387 13635//12378 13632//12375 13641//12384 +f 13645//12388 13644//12387 13641//12384 13640//12383 +f 13644//12387 13645//12388 13646//12389 13647//12390 +f 13635//12378 13644//12387 13647//12390 13636//12379 +f 13648//12391 13649//12392 13625//12368 13624//12367 +f 13650//12393 13648//12391 13624//12367 13623//12366 +f 13648//12391 13650//12393 13651//12394 13652//12395 +f 13649//12392 13648//12391 13652//12395 13653//12396 +f 13654//12397 13655//12398 13653//12396 13652//12395 +f 13656//12399 13654//12397 13652//12395 13651//12394 +f 13654//12397 13656//12399 13657//12400 13658//12401 +f 13655//12398 13654//12397 13658//12401 13659//12402 +f 13660//12403 13650//12393 13623//12366 13637//12380 +f 13661//12404 13660//12403 13637//12380 13636//12379 +f 13660//12403 13661//12404 13662//12405 13663//12406 +f 13650//12393 13660//12403 13663//12406 13651//12394 +f 13664//12407 13665//12408 13659//12402 13658//12401 +f 13666//12409 13664//12407 13658//12401 13657//12400 +f 13664//12407 13666//12409 13667//12410 13668//12411 +f 13665//12408 13664//12407 13668//12411 13669//12412 +f 13670//12413 13656//12399 13651//12394 13663//12406 +f 13671//12414 13670//12413 13663//12406 13662//12405 +f 13670//12413 13671//12414 13672//12415 13673//12416 +f 13656//12399 13670//12413 13673//12416 13657//12400 +f 13674//12417 13675//12418 13669//12412 13668//12411 +f 13676//12419 13674//12417 13668//12411 13667//12410 +f 13674//12417 13676//12419 13677//12420 13678//12421 +f 13675//12418 13674//12417 13678//12421 13679//12422 +f 13680//12423 13666//12409 13657//12400 13673//12416 +f 13681//12424 13680//12423 13673//12416 13672//12415 +f 13680//12423 13681//12424 13682//12425 13683//12426 +f 13666//12409 13680//12423 13683//12426 13667//12410 +f 13684//12427 13685//12428 13686//12429 13687//12430 +f 13678//12421 13684//12427 13687//12430 13679//12422 +f 13684//12427 13678//12421 13677//12420 13688//12431 +f 13685//12428 13684//12427 13688//12431 13689//12432 +f 13690//12433 13691//12434 13692//12435 13693//12436 +f 13676//12419 13690//12433 13693//12436 13677//12420 +f 13690//12433 13676//12419 13667//12410 13683//12426 +f 13691//12434 13690//12433 13683//12426 13682//12425 +f 13694//12437 13695//12438 13689//12432 13688//12431 +f 13693//12436 13694//12437 13688//12431 13677//12420 +f 13694//12437 13693//12436 13692//12435 13696//12439 +f 13695//12438 13694//12437 13696//12439 13697//12440 +f 13698//12441 13699//12442 13700//12443 13701//12444 +f 13685//12428 13698//12441 13701//12444 13686//12429 +f 13698//12441 13685//12428 13689//12432 13702//12445 +f 13699//12442 13698//12441 13702//12445 13703//12446 +f 13704//12447 13323//12066 13324//12067 13705//12448 +f 13699//12442 13704//12447 13705//12448 13700//12443 +f 13704//12447 13699//12442 13703//12446 13706//12449 +f 13323//12066 13704//12447 13706//12449 13325//12068 +f 13707//12450 13708//12451 13325//12068 13706//12449 +f 13709//12452 13707//12450 13706//12449 13703//12446 +f 13707//12450 13709//12452 13710//12453 13711//12454 +f 13708//12451 13707//12450 13711//12454 13712//12455 +f 13713//12456 13714//12457 13697//12440 13696//12439 +f 13715//12458 13713//12456 13696//12439 13692//12435 +f 13713//12456 13715//12458 13716//12459 13717//12460 +f 13714//12457 13713//12456 13717//12460 13718//12461 +f 13719//12462 13720//12463 13716//12459 13715//12458 +f 13691//12434 13719//12462 13715//12458 13692//12435 +f 13719//12462 13691//12434 13682//12425 13721//12464 +f 13720//12463 13719//12462 13721//12464 13722//12465 +f 13723//12466 13724//12467 13710//12453 13725//12468 +f 13714//12457 13723//12466 13725//12468 13697//12440 +f 13723//12466 13714//12457 13718//12461 13726//12469 +f 13724//12467 13723//12466 13726//12469 13727//12470 +f 13728//12471 13729//12472 13722//12465 13721//12464 +f 13681//12424 13728//12471 13721//12464 13682//12425 +f 13728//12471 13681//12424 13672//12415 13730//12473 +f 13729//12472 13728//12471 13730//12473 13731//12474 +f 13732//12475 13733//12476 13718//12461 13717//12460 +f 13734//12477 13732//12475 13717//12460 13716//12459 +f 13732//12475 13734//12477 13735//12478 13736//12479 +f 13733//12476 13732//12475 13736//12479 13737//12480 +f 13738//12481 13739//12482 13735//12478 13734//12477 +f 13720//12463 13738//12481 13734//12477 13716//12459 +f 13738//12481 13720//12463 13722//12465 13740//12483 +f 13739//12482 13738//12481 13740//12483 13741//12484 +f 13742//12485 13743//12486 13731//12474 13730//12473 +f 13671//12414 13742//12485 13730//12473 13672//12415 +f 13742//12485 13671//12414 13662//12405 13744//12487 +f 13743//12486 13742//12485 13744//12487 13745//12488 +f 13746//12489 13747//12490 13741//12484 13740//12483 +f 13729//12472 13746//12489 13740//12483 13722//12465 +f 13746//12489 13729//12472 13731//12474 13748//12491 +f 13747//12490 13746//12489 13748//12491 13749//12492 +f 13750//12493 13751//12494 13745//12488 13744//12487 +f 13661//12404 13750//12493 13744//12487 13662//12405 +f 13750//12493 13661//12404 13636//12379 13647//12390 +f 13751//12494 13750//12493 13647//12390 13646//12389 +f 13752//12495 13753//12496 13749//12492 13748//12491 +f 13743//12486 13752//12495 13748//12491 13731//12474 +f 13752//12495 13743//12486 13745//12488 13754//12497 +f 13753//12496 13752//12495 13754//12497 13755//12498 +f 13756//12499 13757//12500 13755//12498 13754//12497 +f 13751//12494 13756//12499 13754//12497 13745//12488 +f 13756//12499 13751//12494 13646//12389 13758//12501 +f 13757//12500 13756//12499 13758//12501 13759//12502 +f 13760//12503 13761//12504 13759//12502 13758//12501 +f 13645//12388 13760//12503 13758//12501 13646//12389 +f 13760//12503 13645//12388 13640//12383 13762//12505 +f 13761//12504 13760//12503 13762//12505 13763//12506 +f 13764//12507 13765//12508 13766//12509 13767//12510 +f 13753//12496 13764//12507 13767//12510 13749//12492 +f 13764//12507 13753//12496 13755//12498 13768//12511 +f 13765//12508 13764//12507 13768//12511 13769//12512 +f 13770//12513 13771//12514 13769//12512 13768//12511 +f 13757//12500 13770//12513 13768//12511 13755//12498 +f 13770//12513 13757//12500 13759//12502 13772//12515 +f 13771//12514 13770//12513 13772//12515 13773//12516 +f 13774//12517 13775//12518 13776//12519 13777//12520 +f 13747//12490 13774//12517 13777//12520 13741//12484 +f 13774//12517 13747//12490 13749//12492 13767//12510 +f 13775//12518 13774//12517 13767//12510 13766//12509 +f 13778//12521 13739//12482 13741//12484 13777//12520 +f 13779//12522 13778//12521 13777//12520 13776//12519 +f 13778//12521 13779//12522 13780//12523 13781//12524 +f 13739//12482 13778//12521 13781//12524 13735//12478 +f 13782//12525 13783//12526 13784//12527 13785//12528 +f 13775//12518 13782//12525 13785//12528 13776//12519 +f 13782//12525 13775//12518 13766//12509 13786//12529 +f 13783//12526 13782//12525 13786//12529 13787//12530 +f 13788//12531 13789//12532 13737//12480 13736//12479 +f 13781//12524 13788//12531 13736//12479 13735//12478 +f 13788//12531 13781//12524 13780//12523 13790//12533 +f 13789//12532 13788//12531 13790//12533 13791//12534 +f 13792//12535 13793//12536 13794//12537 13795//12538 +f 13779//12522 13792//12535 13795//12538 13780//12523 +f 13792//12535 13779//12522 13776//12519 13785//12528 +f 13793//12536 13792//12535 13785//12528 13784//12527 +f 13796//12539 13797//12540 13791//12534 13790//12533 +f 13795//12538 13796//12539 13790//12533 13780//12523 +f 13796//12539 13795//12538 13794//12537 13798//12541 +f 13797//12540 13796//12539 13798//12541 13799//12542 +f 13800//12543 13801//12544 13727//12470 13726//12469 +f 13733//12476 13800//12543 13726//12469 13718//12461 +f 13800//12543 13733//12476 13737//12480 13802//12545 +f 13801//12544 13800//12543 13802//12545 13803//12546 +f 13804//12547 13805//12548 13803//12546 13802//12545 +f 13789//12532 13804//12547 13802//12545 13737//12480 +f 13804//12547 13789//12532 13791//12534 13806//12549 +f 13805//12548 13804//12547 13806//12549 13807//12550 +f 13808//12551 13809//12552 13712//12455 13711//12454 +f 13724//12467 13808//12551 13711//12454 13710//12453 +f 13808//12551 13724//12467 13727//12470 13810//12553 +f 13809//12552 13808//12551 13810//12553 13811//12554 +f 13812//12555 13813//12556 13327//12070 13326//12069 +f 13708//12451 13812//12555 13326//12069 13325//12068 +f 13812//12555 13708//12451 13712//12455 13814//12557 +f 13813//12556 13812//12555 13814//12557 13815//12558 +f 13816//12559 13817//12560 13811//12554 13810//12553 +f 13801//12544 13816//12559 13810//12553 13727//12470 +f 13816//12559 13801//12544 13803//12546 13818//12561 +f 13817//12560 13816//12559 13818//12561 13819//12562 +f 13820//12563 13821//12564 13815//12558 13814//12557 +f 13809//12552 13820//12563 13814//12557 13712//12455 +f 13820//12563 13809//12552 13811//12554 13822//12565 +f 13821//12564 13820//12563 13822//12565 13823//12566 +f 13824//12567 13825//12568 13826//12569 13827//12570 +f 13813//12556 13824//12567 13827//12570 13327//12070 +f 13824//12567 13813//12556 13815//12558 13828//12571 +f 13825//12568 13824//12567 13828//12571 13829//12572 +f 13830//12573 13831//12574 13832//12575 13833//12576 +f 13825//12568 13830//12573 13833//12576 13826//12569 +f 13830//12573 13825//12568 13829//12572 13834//12577 +f 13831//12574 13830//12573 13834//12577 13835//12578 +f 13836//12579 13837//12580 13829//12572 13828//12571 +f 13821//12564 13836//12579 13828//12571 13815//12558 +f 13836//12579 13821//12564 13823//12566 13838//12581 +f 13837//12580 13836//12579 13838//12581 13839//12582 +f 13840//12583 13841//12584 13823//12566 13822//12565 +f 13817//12560 13840//12583 13822//12565 13811//12554 +f 13840//12583 13817//12560 13819//12562 13842//12585 +f 13841//12584 13840//12583 13842//12585 13843//12586 +f 13844//12587 13845//12588 13835//12578 13834//12577 +f 13837//12580 13844//12587 13834//12577 13829//12572 +f 13844//12587 13837//12580 13839//12582 13846//12589 +f 13845//12588 13844//12587 13846//12589 13847//12590 +f 13848//12591 13849//12592 13839//12582 13838//12581 +f 13841//12584 13848//12591 13838//12581 13823//12566 +f 13848//12591 13841//12584 13843//12586 13850//12593 +f 13849//12592 13848//12591 13850//12593 13851//12594 +f 13852//12595 13853//12596 13847//12590 13846//12589 +f 13849//12592 13852//12595 13846//12589 13839//12582 +f 13852//12595 13849//12592 13851//12594 13854//12597 +f 13853//12596 13852//12595 13854//12597 13855//12598 +f 13856//12599 13857//12600 13843//12586 13842//12585 +f 13858//12601 13856//12599 13842//12585 13819//12562 +f 13856//12599 13858//12601 13859//12602 13860//12603 +f 13857//12600 13856//12599 13860//12603 13861//12604 +f 13862//12605 13863//12606 13855//12598 13854//12597 +f 13864//12607 13862//12605 13854//12597 13851//12594 +f 13862//12605 13864//12607 13865//12608 13866//12609 +f 13863//12606 13862//12605 13866//12609 13867//12610 +f 13868//12611 13864//12607 13851//12594 13850//12593 +f 13857//12600 13868//12611 13850//12593 13843//12586 +f 13868//12611 13857//12600 13861//12604 13869//12612 +f 13864//12607 13868//12611 13869//12612 13865//12608 +f 13870//12613 13871//12614 13867//12610 13866//12609 +f 13872//12615 13870//12613 13866//12609 13865//12608 +f 13870//12613 13872//12615 13873//12616 13874//12617 +f 13871//12614 13870//12613 13874//12617 13875//12618 +f 13876//12619 13872//12615 13865//12608 13869//12612 +f 13877//12620 13876//12619 13869//12612 13861//12604 +f 13876//12619 13877//12620 13878//12621 13879//12622 +f 13872//12615 13876//12619 13879//12622 13873//12616 +f 13880//12623 13881//12624 13875//12618 13874//12617 +f 13882//12625 13880//12623 13874//12617 13873//12616 +f 13880//12623 13882//12625 13883//12626 13884//12627 +f 13881//12624 13880//12623 13884//12627 13885//12628 +f 13886//12629 13887//12630 13885//12628 13884//12627 +f 13888//12631 13886//12629 13884//12627 13883//12626 +f 13886//12629 13888//12631 13889//12632 13890//12633 +f 13887//12630 13886//12629 13890//12633 13891//12634 +f 13892//12635 13893//12636 13894//12637 13895//12638 +f 13882//12625 13892//12635 13895//12638 13883//12626 +f 13892//12635 13882//12625 13873//12616 13879//12622 +f 13893//12636 13892//12635 13879//12622 13878//12621 +f 13896//12639 13888//12631 13883//12626 13895//12638 +f 13897//12640 13896//12639 13895//12638 13894//12637 +f 13896//12639 13897//12640 13898//12641 13899//12642 +f 13888//12631 13896//12639 13899//12642 13889//12632 +f 13900//12643 13901//12644 13889//12632 13899//12642 +f 13902//12645 13900//12643 13899//12642 13898//12641 +f 13900//12643 13902//12645 13903//12646 13904//12647 +f 13901//12644 13900//12643 13904//12647 13905//12648 +f 13906//12649 13907//12650 13908//12651 13909//12652 +f 13897//12640 13906//12649 13909//12652 13898//12641 +f 13906//12649 13897//12640 13894//12637 13910//12653 +f 13907//12650 13906//12649 13910//12653 13911//12654 +f 13912//12655 13913//12656 13914//12657 13915//12658 +f 13902//12645 13912//12655 13915//12658 13903//12646 +f 13912//12655 13902//12645 13898//12641 13909//12652 +f 13913//12656 13912//12655 13909//12652 13908//12651 +f 13916//12659 13917//12660 13911//12654 13910//12653 +f 13893//12636 13916//12659 13910//12653 13894//12637 +f 13916//12659 13893//12636 13878//12621 13918//12661 +f 13917//12660 13916//12659 13918//12661 13919//12662 +f 13920//12663 13921//12664 13919//12662 13918//12661 +f 13877//12620 13920//12663 13918//12661 13878//12621 +f 13920//12663 13877//12620 13861//12604 13860//12603 +f 13921//12664 13920//12663 13860//12603 13859//12602 +f 13922//12665 13923//12666 13924//12667 13925//12668 +f 13907//12650 13922//12665 13925//12668 13908//12651 +f 13922//12665 13907//12650 13911//12654 13926//12669 +f 13923//12666 13922//12665 13926//12669 13927//12670 +f 13928//12671 13929//12672 13927//12670 13926//12669 +f 13917//12660 13928//12671 13926//12669 13911//12654 +f 13928//12671 13917//12660 13919//12662 13930//12673 +f 13929//12672 13928//12671 13930//12673 13931//12674 +f 13932//12675 13933//12676 13931//12674 13930//12673 +f 13921//12664 13932//12675 13930//12673 13919//12662 +f 13932//12675 13921//12664 13859//12602 13934//12677 +f 13933//12676 13932//12675 13934//12677 13807//12550 +f 13935//12678 13805//12548 13807//12550 13934//12677 +f 13858//12601 13935//12678 13934//12677 13859//12602 +f 13935//12678 13858//12601 13819//12562 13818//12561 +f 13805//12548 13935//12678 13818//12561 13803//12546 +f 13936//12679 13933//12676 13807//12550 13806//12549 +f 13797//12540 13936//12679 13806//12549 13791//12534 +f 13936//12679 13797//12540 13799//12542 13937//12680 +f 13933//12676 13936//12679 13937//12680 13931//12674 +f 13938//12681 13929//12672 13931//12674 13937//12680 +f 13939//12682 13938//12681 13937//12680 13799//12542 +f 13938//12681 13939//12682 13940//12683 13941//12684 +f 13929//12672 13938//12681 13941//12684 13927//12670 +f 13942//12685 13939//12682 13799//12542 13798//12541 +f 13943//12686 13942//12685 13798//12541 13794//12537 +f 13942//12685 13943//12686 13944//12687 13945//12688 +f 13939//12682 13942//12685 13945//12688 13940//12683 +f 13946//12689 13947//12690 13944//12687 13943//12686 +f 13793//12536 13946//12689 13943//12686 13794//12537 +f 13946//12689 13793//12536 13784//12527 13948//12691 +f 13947//12690 13946//12689 13948//12691 13949//12692 +f 13950//12693 13923//12666 13927//12670 13941//12684 +f 13951//12694 13950//12693 13941//12684 13940//12683 +f 13950//12693 13951//12694 13952//12695 13953//12696 +f 13923//12666 13950//12693 13953//12696 13924//12667 +f 13954//12697 13951//12694 13940//12683 13945//12688 +f 13955//12698 13954//12697 13945//12688 13944//12687 +f 13954//12697 13955//12698 13956//12699 13957//12700 +f 13951//12694 13954//12697 13957//12700 13952//12695 +f 13958//12701 13959//12702 13956//12699 13955//12698 +f 13947//12690 13958//12701 13955//12698 13944//12687 +f 13958//12701 13947//12690 13949//12692 13960//12703 +f 13959//12702 13958//12701 13960//12703 13961//12704 +f 13962//12705 13963//12706 13949//12692 13948//12691 +f 13783//12526 13962//12705 13948//12691 13784//12527 +f 13962//12705 13783//12526 13787//12530 13964//12707 +f 13963//12706 13962//12705 13964//12707 13965//12708 +f 13966//12709 13967//12710 13787//12530 13786//12529 +f 13765//12508 13966//12709 13786//12529 13766//12509 +f 13966//12709 13765//12508 13769//12512 13968//12711 +f 13967//12710 13966//12709 13968//12711 13969//12712 +f 13970//12713 13971//12714 13961//12704 13960//12703 +f 13963//12706 13970//12713 13960//12703 13949//12692 +f 13970//12713 13963//12706 13965//12708 13972//12715 +f 13971//12714 13970//12713 13972//12715 13973//12716 +f 13974//12717 13975//12718 13965//12708 13964//12707 +f 13967//12710 13974//12717 13964//12707 13787//12530 +f 13974//12717 13967//12710 13969//12712 13976//12719 +f 13975//12718 13974//12717 13976//12719 13977//12720 +f 13978//12721 13979//12722 13980//12723 13981//12724 +f 13959//12702 13978//12721 13981//12724 13956//12699 +f 13978//12721 13959//12702 13961//12704 13982//12725 +f 13979//12722 13978//12721 13982//12725 13983//12726 +f 13984//12727 13985//12728 13952//12695 13957//12700 +f 13981//12724 13984//12727 13957//12700 13956//12699 +f 13984//12727 13981//12724 13980//12723 13986//12729 +f 13985//12728 13984//12727 13986//12729 13987//12730 +f 13988//12731 13989//12732 13924//12667 13953//12696 +f 13985//12728 13988//12731 13953//12696 13952//12695 +f 13988//12731 13985//12728 13987//12730 13990//12733 +f 13989//12732 13988//12731 13990//12733 13991//12734 +f 13992//12735 13993//12736 13983//12726 13982//12725 +f 13971//12714 13992//12735 13982//12725 13961//12704 +f 13992//12735 13971//12714 13973//12716 13994//12737 +f 13993//12736 13992//12735 13994//12737 13995//12738 +f 13996//12739 13997//12740 13987//12730 13986//12729 +f 13998//12741 13996//12739 13986//12729 13980//12723 +f 13996//12739 13998//12741 13999//12742 14000//12743 +f 13997//12740 13996//12739 14000//12743 14001//12744 +f 14002//12745 14003//12746 13999//12742 13998//12741 +f 13979//12722 14002//12745 13998//12741 13980//12723 +f 14002//12745 13979//12722 13983//12726 14004//12747 +f 14003//12746 14002//12745 14004//12747 14005//12748 +f 14006//12749 13913//12656 13908//12651 13925//12668 +f 13989//12732 14006//12749 13925//12668 13924//12667 +f 14006//12749 13989//12732 13991//12734 14007//12750 +f 13913//12656 14006//12749 14007//12750 13914//12657 +f 14008//12751 14009//12752 13991//12734 13990//12733 +f 13997//12740 14008//12751 13990//12733 13987//12730 +f 14008//12751 13997//12740 14001//12744 14010//12753 +f 14009//12752 14008//12751 14010//12753 14011//12754 +f 14012//12755 14013//12756 13914//12657 14007//12750 +f 14009//12752 14012//12755 14007//12750 13991//12734 +f 14012//12755 14009//12752 14011//12754 14014//12757 +f 14013//12756 14012//12755 14014//12757 14015//12758 +f 14016//12759 14017//12760 13903//12646 13915//12658 +f 14013//12756 14016//12759 13915//12658 13914//12657 +f 14016//12759 14013//12756 14015//12758 14018//12761 +f 14017//12760 14016//12759 14018//12761 14019//12762 +f 14020//12763 14021//7588 14011//12754 14010//12753 +f 14022//12764 14020//12763 14010//12753 14001//12744 +f 14020//12763 14022//12764 14023//12765 14024//12766 +f 14021//7588 14020//12763 14024//12766 14025//12767 +f 14026//12768 14027//12769 13905//12648 13904//12647 +f 14017//12760 14026//12768 13904//12647 13903//12646 +f 14026//12768 14017//12760 14019//12762 14028//12770 +f 14027//12769 14026//12768 14028//12770 14029//12771 +f 14030//12772 14031//12773 14015//12758 14014//12757 +f 14021//7588 14030//12772 14014//12757 14011//12754 +f 14030//12772 14021//7588 14025//12767 14032//12774 +f 14031//12773 14030//12772 14032//12774 14033//12775 +f 14034//12776 14035//12777 14019//12762 14018//12761 +f 14031//12773 14034//12776 14018//12761 14015//12758 +f 14034//12776 14031//12773 14033//12775 14036//12778 +f 14035//12777 14034//12776 14036//12778 14037//12779 +f 14038//12780 14039//12781 14040//12782 14041//12783 +f 14027//12769 14038//12780 14041//12783 13905//12648 +f 14038//12780 14027//12769 14029//12771 14042//12784 +f 14039//12781 14038//12780 14042//12784 14043//12785 +f 14044//12786 13901//12644 13905//12648 14041//12783 +f 14045//12787 14044//12786 14041//12783 14040//12782 +f 14044//12786 14045//12787 13891//12634 13890//12633 +f 13901//12644 14044//12786 13890//12633 13889//12632 +f 14046//12788 14047//12789 14029//12771 14028//12770 +f 14035//12777 14046//12788 14028//12770 14019//12762 +f 14046//12788 14035//12777 14037//12779 14048//12790 +f 14047//12789 14046//12788 14048//12790 14049//12791 +f 14050//12792 14051//12793 14043//12785 14042//12784 +f 14047//12789 14050//12792 14042//12784 14029//12771 +f 14050//12792 14047//12789 14049//12791 14052//12794 +f 14051//12793 14050//12792 14052//12794 14053//12795 +f 14054//12796 14055//12797 14053//12795 14052//12794 +f 14056//12798 14054//12796 14052//12794 14049//12791 +f 14054//12796 14056//12798 14057//12799 14058//12800 +f 14055//12797 14054//12796 14058//12800 14059//12801 +f 14060//12802 14056//12798 14049//12791 14048//12790 +f 14061//12803 14060//12802 14048//12790 14037//12779 +f 14060//12802 14061//12803 14062//12804 14063//12805 +f 14056//12798 14060//12802 14063//12805 14057//12799 +f 14064//12806 14065//12807 14057//12799 14063//12805 +f 14066//12808 14064//12806 14063//12805 14062//12804 +f 14064//12806 14066//12808 14067//12809 14068//12810 +f 14065//12807 14064//12806 14068//12810 14069//12811 +f 14070//12812 14071//12813 14072//12814 14073//12815 +f 14061//12803 14070//12812 14073//12815 14062//12804 +f 14070//12812 14061//12803 14037//12779 14036//12778 +f 14071//12813 14070//12812 14036//12778 14033//12775 +f 14074//12816 14075//12817 14076//12818 14077//12819 +f 14066//12808 14074//12816 14077//12819 14067//12809 +f 14074//12816 14066//12808 14062//12804 14073//12815 +f 14075//12817 14074//12816 14073//12815 14072//12814 +f 14078//12820 14079//12821 14080//12822 14081//12823 +f 14071//12813 14078//12820 14081//12823 14072//12814 +f 14078//12820 14071//12813 14033//12775 14032//12774 +f 14079//12821 14078//12820 14032//12774 14025//12767 +f 14082//12824 14083//12825 14084//12826 14085//12827 +f 14075//12817 14082//12824 14085//12827 14076//12818 +f 14082//12824 14075//12817 14072//12814 14081//12823 +f 14083//12825 14082//12824 14081//12823 14080//12822 +f 14086//12828 14087//12829 14088//12830 14089//12831 +f 14079//12821 14086//12828 14089//12831 14080//12822 +f 14086//12828 14079//12821 14025//12767 14024//12766 +f 14087//12829 14086//12828 14024//12766 14023//12765 +f 14090//12832 14091//12833 14092//12834 14093//12835 +f 14083//12825 14090//12832 14093//12835 14084//12826 +f 14090//12832 14083//12825 14080//12822 14089//12831 +f 14091//12833 14090//12832 14089//12831 14088//12830 +f 14094//12836 14095//12837 14076//12818 14085//12827 +f 14096//12838 14094//12836 14085//12827 14084//12826 +f 14094//12836 14096//12838 14097//12839 14098//12840 +f 14095//12837 14094//12836 14098//12840 14099//12841 +f 14100//12842 14096//12838 14084//12826 14093//12835 +f 14101//12843 14100//12842 14093//12835 14092//12834 +f 14100//12842 14101//12843 14102//12844 14103//12845 +f 14096//12838 14100//12842 14103//12845 14097//12839 +f 14104//12846 14105//12847 14106//12848 14107//12849 +f 14091//12833 14104//12846 14107//12849 14092//12834 +f 14104//12846 14091//12833 14088//12830 14108//12850 +f 14105//12847 14104//12846 14108//12850 14109//12851 +f 14110//12852 14111//12853 14067//12809 14077//12819 +f 14095//12837 14110//12852 14077//12819 14076//12818 +f 14110//12852 14095//12837 14099//12841 14112//12854 +f 14111//12853 14110//12852 14112//12854 14113//12855 +f 14114//12856 14101//12843 14092//12834 14107//12849 +f 14115//12857 14114//12856 14107//12849 14106//12848 +f 14114//12856 14115//12857 14116//12858 14117//12859 +f 14101//12843 14114//12856 14117//12859 14102//12844 +f 14118//12860 14119//12861 14069//12811 14068//12810 +f 14111//12853 14118//12860 14068//12810 14067//12809 +f 14118//12860 14111//12853 14113//12855 14120//12862 +f 14119//12861 14118//12860 14120//12862 14121//12863 +f 14122//12864 14065//12807 14069//12811 14123//12865 +f 14124//12866 14122//12864 14123//12865 14125//12867 +f 14122//12864 14124//12866 14059//12801 14058//12800 +f 14065//12807 14122//12864 14058//12800 14057//12799 +f 14126//12868 14127//12869 14125//12867 14123//12865 +f 14119//12861 14126//12868 14123//12865 14069//12811 +f 14126//12868 14119//12861 14121//12863 14128//12870 +f 14127//12869 14126//12868 14128//12870 14129//12871 +f 14130//12872 14131//12873 14113//12855 14112//12854 +f 14132//12874 14130//12872 14112//12854 14099//12841 +f 14130//12872 14132//12874 14133//12875 14134//12876 +f 14131//12873 14130//12872 14134//12876 14135//12877 +f 14136//12878 14137//12879 14129//12871 14128//12870 +f 14138//12880 14136//12878 14128//12870 14121//12863 +f 14136//12878 14138//12880 14139//12881 14140//12882 +f 14137//12879 14136//12878 14140//12882 14141//12883 +f 14142//12884 14138//12880 14121//12863 14120//12862 +f 14131//12873 14142//12884 14120//12862 14113//12855 +f 14142//12884 14131//12873 14135//12877 14143//12885 +f 14138//12880 14142//12884 14143//12885 14139//12881 +f 14144//12886 14145//12887 14141//12883 14140//12882 +f 14146//12888 14144//12886 14140//12882 14139//12881 +f 14144//12886 14146//12888 13336//12079 13335//12078 +f 14145//12887 14144//12886 13335//12078 13334//12077 +f 14147//12889 14146//12888 14139//12881 14143//12885 +f 14148//12890 14147//12889 14143//12885 14135//12877 +f 14147//12889 14148//12890 14149//12891 14150//12892 +f 14146//12888 14147//12889 14150//12892 13336//12079 +f 14151//12893 14148//12890 14135//12877 14134//12876 +f 14152//12894 14151//12893 14134//12876 14133//12875 +f 14151//12893 14152//12894 14153//12895 14154//12896 +f 14148//12890 14151//12893 14154//12896 14149//12891 +f 14155//12897 13329//12072 13336//12079 14150//12892 +f 14156//12898 14155//12897 14150//12892 14149//12891 +f 14155//12897 14156//12898 14157//12899 14158//12900 +f 13329//12072 14155//12897 14158//12900 13330//12073 +f 14159//12901 14156//12898 14149//12891 14154//12896 +f 14160//12902 14159//12901 14154//12896 14153//12895 +f 14159//12901 14160//12902 14161//12903 14162//12904 +f 14156//12898 14159//12901 14162//12904 14157//12899 +f 14163//12905 14164//12906 14165//12907 14166//12908 +f 14167//12909 14163//12905 14166//12908 14168//12910 +f 14163//12905 14167//12909 13330//12073 14158//12900 +f 14164//12906 14163//12905 14158//12900 14157//12899 +f 14169//12911 14170//12912 13333//12076 13331//12074 +f 14167//12909 14169//12911 13331//12074 13330//12073 +f 14169//12911 14167//12909 14168//12910 14171//12913 +f 14170//12912 14169//12911 14171//12913 14172//12914 +f 14173//12915 14174//12916 14175//12917 14176//12918 +f 14164//12906 14173//12915 14176//12918 14165//12907 +f 14173//12915 14164//12906 14157//12899 14162//12904 +f 14174//12916 14173//12915 14162//12904 14161//12903 +f 14177//12919 14178//12920 14165//12907 14176//12918 +f 14179//12921 14177//12919 14176//12918 14175//12917 +f 14177//12919 14179//12921 14180//12922 14181//12923 +f 14178//12920 14177//12919 14181//12923 14182//12924 +f 14183//12925 14184//12926 14185//12927 14186//12928 +f 14179//12921 14183//12925 14186//12928 14180//12922 +f 14183//12925 14179//12921 14175//12917 14187//12929 +f 14184//12926 14183//12925 14187//12929 14188//12930 +f 14189//12931 14190//12932 14188//12930 14187//12929 +f 14174//12916 14189//12931 14187//12929 14175//12917 +f 14189//12931 14174//12916 14161//12903 14191//12933 +f 14190//12932 14189//12931 14191//12933 14192//12934 +f 14193//12935 14194//12936 14192//12934 14191//12933 +f 14160//12902 14193//12935 14191//12933 14161//12903 +f 14193//12935 14160//12902 14153//12895 14195//12937 +f 14194//12936 14193//12935 14195//12937 14196//12938 +f 14197//12939 14198//12940 14199//12941 14200//12942 +f 14184//12926 14197//12939 14200//12942 14185//12927 +f 14197//12939 14184//12926 14188//12930 14201//12943 +f 14198//12940 14197//12939 14201//12943 14202//12944 +f 14203//12945 14204//12946 14196//12938 14195//12937 +f 14152//12894 14203//12945 14195//12937 14153//12895 +f 14203//12945 14152//12894 14133//12875 14205//12947 +f 14204//12946 14203//12945 14205//12947 14206//12948 +f 14207//12949 14208//12950 14202//12944 14201//12943 +f 14190//12932 14207//12949 14201//12943 14188//12930 +f 14207//12949 14190//12932 14192//12934 14209//12951 +f 14208//12950 14207//12949 14209//12951 14210//12952 +f 14211//12953 14212//12954 14210//12952 14209//12951 +f 14194//12936 14211//12953 14209//12951 14192//12934 +f 14211//12953 14194//12936 14196//12938 14213//12955 +f 14212//12954 14211//12953 14213//12955 14214//12956 +f 14215//12957 14216//12958 14206//12948 14205//12947 +f 14132//12874 14215//12957 14205//12947 14133//12875 +f 14215//12957 14132//12874 14099//12841 14098//12840 +f 14216//12958 14215//12957 14098//12840 14097//12839 +f 14217//12959 14218//12960 14214//12956 14213//12955 +f 14204//12946 14217//12959 14213//12955 14196//12938 +f 14217//12959 14204//12946 14206//12948 14219//12961 +f 14218//12960 14217//12959 14219//12961 14220//12962 +f 14221//12963 14222//12964 14220//12962 14219//12961 +f 14216//12958 14221//12963 14219//12961 14206//12948 +f 14221//12963 14216//12958 14097//12839 14103//12845 +f 14222//12964 14221//12963 14103//12845 14102//12844 +f 14223//12965 14224//12966 14225//12967 14226//12968 +f 14212//12954 14223//12965 14226//12968 14210//12952 +f 14223//12965 14212//12954 14214//12956 14227//12969 +f 14224//12966 14223//12965 14227//12969 14228//12970 +f 14229//12971 14230//12972 14231//12973 14232//12974 +f 14222//12964 14229//12971 14232//12974 14220//12962 +f 14229//12971 14222//12964 14102//12844 14117//12859 +f 14230//12972 14229//12971 14117//12859 14116//12858 +f 14233//12975 14234//12976 14228//12970 14227//12969 +f 14218//12960 14233//12975 14227//12969 14214//12956 +f 14233//12975 14218//12960 14220//12962 14232//12974 +f 14234//12976 14233//12975 14232//12974 14231//12973 +f 14235//12977 14236//12978 14231//12973 14230//12972 +f 14237//12979 14235//12977 14230//12972 14116//12858 +f 14235//12977 14237//12979 14238//12980 14239//12981 +f 14236//12978 14235//12977 14239//12981 14240//12982 +f 14241//12983 14242//12984 14228//12970 14234//12976 +f 14236//12978 14241//12983 14234//12976 14231//12973 +f 14241//12983 14236//12978 14240//12982 14243//12985 +f 14242//12984 14241//12983 14243//12985 14244//12986 +f 14245//12987 14246//12988 14225//12967 14224//12966 +f 14242//12984 14245//12987 14224//12966 14228//12970 +f 14245//12987 14242//12984 14244//12986 14247//12987 +f 14246//12988 14245//12987 14247//12987 14248//12989 +f 14249//12990 14208//12950 14210//12952 14226//12968 +f 14250//12991 14249//12990 14226//12968 14225//12967 +f 14249//12990 14250//12991 14251//12992 14252//12993 +f 14208//12950 14249//12990 14252//12993 14202//12944 +f 14253//12994 14254//12995 14251//12992 14250//12991 +f 14246//12988 14253//12994 14250//12991 14225//12967 +f 14253//12994 14246//12988 14248//12989 14255//12996 +f 14254//12995 14253//12994 14255//12996 14256//12997 +f 14257//12998 14198//12940 14202//12944 14252//12993 +f 14258//12999 14257//12998 14252//12993 14251//12992 +f 14257//12998 14258//12999 14259//13000 14260//13001 +f 14198//12940 14257//12998 14260//13001 14199//12941 +f 14261//13002 14262//13003 14259//13000 14258//12999 +f 14254//12995 14261//13002 14258//12999 14251//12992 +f 14261//13002 14254//12995 14256//12997 14263//13004 +f 14262//13003 14261//13002 14263//13004 14264//13005 +f 14265//13006 14266//13007 14248//12989 14247//12987 +f 14267//13008 14265//13006 14247//12987 14244//12986 +f 14265//13006 14267//13008 14268//13009 14269//13010 +f 14266//13007 14265//13006 14269//13010 14270//13011 +f 14271//13012 14272//13013 14199//12941 14260//13001 +f 14273//13014 14271//13012 14260//13001 14259//13000 +f 14271//13012 14273//13014 14274//13015 14275//13016 +f 14272//13013 14271//13012 14275//13016 14276//13017 +f 14277//13018 14278//13019 14256//12997 14255//12996 +f 14266//13007 14277//13018 14255//12996 14248//12989 +f 14277//13018 14266//13007 14270//13011 14279//13020 +f 14278//13019 14277//13018 14279//13020 14280//13021 +f 14281//13022 14282//13023 14274//13015 14273//13014 +f 14262//13003 14281//13022 14273//13014 14259//13000 +f 14281//13022 14262//13003 14264//13005 14283//13024 +f 14282//13023 14281//13022 14283//13024 14284//13025 +f 14285//13026 14286//13027 14264//13005 14263//13004 +f 14278//13019 14285//13026 14263//13004 14256//12997 +f 14285//13026 14278//13019 14280//13021 14287//13028 +f 14286//13027 14285//13026 14287//13028 14288//13029 +f 14289//13030 14290//13031 14185//12927 14200//12942 +f 14272//13013 14289//13030 14200//12942 14199//12941 +f 14289//13030 14272//13013 14276//13017 14291//13032 +f 14290//13031 14289//13030 14291//13032 14292//13033 +f 14293//13034 14294//13035 14180//12922 14186//12928 +f 14290//13031 14293//13034 14186//12928 14185//12927 +f 14293//13034 14290//13031 14292//13033 14295//13036 +f 14294//13035 14293//13034 14295//13036 14296//13037 +f 14297//13038 14298//13039 14276//13017 14275//13016 +f 14299//13040 14297//13038 14275//13016 14274//13015 +f 14297//13038 14299//13040 14300//13041 14301//13042 +f 14298//13039 14297//13038 14301//13042 14302//13043 +f 14303//13044 14304//13045 14300//13041 14299//13040 +f 14282//13023 14303//13044 14299//13040 14274//13015 +f 14303//13044 14282//13023 14284//13025 14305//13046 +f 14304//13045 14303//13044 14305//13046 14306//13047 +f 14307//13048 14308//13049 14292//13033 14291//13032 +f 14298//13039 14307//13048 14291//13032 14276//13017 +f 14307//13048 14298//13039 14302//13043 14309//13050 +f 14308//13049 14307//13048 14309//13050 14310//13051 +f 14311//13052 14312//13053 14306//13047 14305//13046 +f 14313//13054 14311//13052 14305//13046 14284//13025 +f 14311//13052 14313//13054 14314//13055 14315//13056 +f 14312//13053 14311//13052 14315//13056 14316//13057 +f 14317//13058 14318//13059 14296//13037 14295//13036 +f 14308//13049 14317//13058 14295//13036 14292//13033 +f 14317//13058 14308//13049 14310//13051 14319//13060 +f 14318//13059 14317//13058 14319//13060 14320//13061 +f 14321//13062 14322//13063 14182//12924 14181//12923 +f 14294//13035 14321//13062 14181//12923 14180//12922 +f 14321//13062 14294//13035 14296//13037 14323//13064 +f 14322//13063 14321//13062 14323//13064 14324//13065 +f 14325//13066 14326//13067 14324//13065 14323//13064 +f 14318//13059 14325//13066 14323//13064 14296//13037 +f 14325//13066 14318//13059 14320//13061 14327//13068 +f 14326//13067 14325//13066 14327//13068 14328//13069 +f 14329//13070 13338//12081 13345//12088 14330//13071 +f 14326//13067 14329//13070 14330//13071 14324//13065 +f 14329//13070 14326//13067 14328//13069 14331//13072 +f 13338//12081 14329//13070 14331//13072 13339//12082 +f 14332//13073 14333//13074 14334//13075 14335//13076 +f 14322//13063 14332//13073 14335//13076 14182//12924 +f 14332//13073 14322//13063 14324//13065 14330//13071 +f 14333//13074 14332//13073 14330//13071 13345//12088 +f 14336//13077 14337//13078 14338//13079 14339//13080 +f 14333//13074 14336//13077 14339//13080 14334//13075 +f 14336//13077 14333//13074 13345//12088 13344//12087 +f 14337//13078 14336//13077 13344//12087 13343//12086 +f 14340//13081 14341//13082 14316//13057 14315//13056 +f 14342//13083 14340//13081 14315//13056 14314//13055 +f 14340//13081 14342//13083 14343//13084 14344//13085 +f 14341//13082 14340//13081 14344//13085 14345//13086 +f 14346//13087 14286//13027 14288//13029 14347//13088 +f 14313//13054 14346//13087 14347//13088 14314//13055 +f 14346//13087 14313//13054 14284//13025 14283//13024 +f 14286//13027 14346//13087 14283//13024 14264//13005 +f 14348//13089 14342//13083 14314//13055 14347//13088 +f 14349//13090 14348//13089 14347//13088 14288//13029 +f 14348//13089 14349//13090 14350//13091 14351//13092 +f 14342//13083 14348//13089 14351//13092 14343//13084 +f 14352//13093 14349//13090 14288//13029 14287//13028 +f 14353//13094 14352//13093 14287//13028 14280//13021 +f 14352//13093 14353//13094 14354//13095 14355//13096 +f 14349//13090 14352//13093 14355//13096 14350//13091 +f 14356//13097 14357//13098 14345//13086 14344//13085 +f 14358//13099 14356//13097 14344//13085 14343//13084 +f 14356//13097 14358//13099 14359//13100 14360//13101 +f 14357//13098 14356//13097 14360//13101 14361//13102 +f 14362//13103 14358//13099 14343//13084 14351//13092 +f 14363//13104 14362//13103 14351//13092 14350//13091 +f 14362//13103 14363//13104 14364//13105 14365//13106 +f 14358//13099 14362//13103 14365//13106 14359//13100 +f 14366//13107 14367//13108 14361//13102 14360//13101 +f 14368//13109 14366//13107 14360//13101 14359//13100 +f 14366//13107 14368//13109 14369//13110 14370//13111 +f 14367//13108 14366//13107 14370//13111 14371//13112 +f 14372//13113 14368//13109 14359//13100 14365//13106 +f 14373//13114 14372//13113 14365//13106 14364//13105 +f 14372//13113 14373//13114 14374//13115 14375//13116 +f 14368//13109 14372//13113 14375//13116 14369//13110 +f 14376//13117 14377//13118 14378//13119 14379//13120 +f 14363//13104 14376//13117 14379//13120 14364//13105 +f 14376//13117 14363//13104 14350//13091 14355//13096 +f 14377//13118 14376//13117 14355//13096 14354//13095 +f 14380//13121 14381//13122 14382//13123 14383//13124 +f 14373//13114 14380//13121 14383//13124 14374//13115 +f 14380//13121 14373//13114 14364//13105 14379//13120 +f 14381//13122 14380//13121 14379//13120 14378//13119 +f 14384//13125 14385//13126 14371//13112 14370//13111 +f 14386//13127 14384//13125 14370//13111 14369//13110 +f 14384//13125 14386//13127 14387//13128 14388//13129 +f 14385//13126 14384//13125 14388//13129 14389//13130 +f 14390//13131 14386//13127 14369//13110 14375//13116 +f 14391//13132 14390//13131 14375//13116 14374//13115 +f 14390//13131 14391//13132 14392//13133 14393//13134 +f 14386//13127 14390//13131 14393//13134 14387//13128 +f 14394//13135 14395//13136 14389//13130 14388//13129 +f 14396//13137 14394//13135 14388//13129 14387//13128 +f 14394//13135 14396//13137 14397//13138 14398//13139 +f 14395//13136 14394//13135 14398//13139 14399//13140 +f 14400//13141 14396//13137 14387//13128 14393//13134 +f 14401//13142 14400//13141 14393//13134 14392//13133 +f 14400//13141 14401//13142 14402//13143 14403//13144 +f 14396//13137 14400//13141 14403//13144 14397//13138 +f 14404//13145 14405//13146 14406//13147 14407//13148 +f 14391//13132 14404//13145 14407//13148 14392//13133 +f 14404//13145 14391//13132 14374//13115 14383//13124 +f 14405//13146 14404//13145 14383//13124 14382//13123 +f 14408//13149 14409//13150 14410//13151 14411//13152 +f 14401//13142 14408//13149 14411//13152 14402//13143 +f 14408//13149 14401//13142 14392//13133 14407//13148 +f 14409//13150 14408//13149 14407//13148 14406//13147 +f 14412//13153 14413//13154 14399//13140 14398//13139 +f 14414//13155 14412//13153 14398//13139 14397//13138 +f 14412//13153 14414//13155 14415//13156 14416//13157 +f 14413//13154 14412//13153 14416//13157 14417//13158 +f 14418//13159 14414//13155 14397//13138 14403//13144 +f 14419//13160 14418//13159 14403//13144 14402//13143 +f 14418//13159 14419//13160 14420//13161 14421//13162 +f 14414//13155 14418//13159 14421//13162 14415//13156 +f 14422//13163 14423//13164 14417//13158 14416//13157 +f 14424//13165 14422//13163 14416//13157 14415//13156 +f 14422//13163 14424//13165 14425//13166 14426//13167 +f 14423//13164 14422//13163 14426//13167 14427//13168 +f 14428//13169 14429//13170 14430//13171 14431//13172 +f 14426//13167 14428//13169 14431//13172 14427//13168 +f 14428//13169 14426//13167 14425//13166 14432//13173 +f 14429//13170 14428//13169 14432//13173 14433//13174 +f 14434//13175 14435//13176 14436//13177 14437//13178 +f 14424//13165 14434//13175 14437//13178 14425//13166 +f 14434//13175 14424//13165 14415//13156 14421//13162 +f 14435//13176 14434//13175 14421//13162 14420//13161 +f 14438//13179 14439//13180 14433//13174 14432//13173 +f 14437//13178 14438//13179 14432//13173 14425//13166 +f 14438//13179 14437//13178 14436//13177 14440//13181 +f 14439//13180 14438//13179 14440//13181 14441//13182 +f 14442//13183 14443//13184 14444//13185 14445//13186 +f 14429//13170 14442//13183 14445//13186 14430//13171 +f 14442//13183 14429//13170 14433//13174 14446//13187 +f 14443//13184 14442//13183 14446//13187 14447//13188 +f 14448//13189 14449//13190 14450//13191 14451//13192 +f 14435//13176 14448//13189 14451//13192 14436//13177 +f 14448//13189 14435//13176 14420//13161 14452//13193 +f 14449//13190 14448//13189 14452//13193 14453//13194 +f 14454//13195 14455//13196 14456//13197 14457//13198 +f 14443//13184 14454//13195 14457//13198 14444//13185 +f 14454//13195 14443//13184 14447//13188 14458//13199 +f 14455//13196 14454//13195 14458//13199 14459//13200 +f 14460//13201 14461//13202 14447//13188 14446//13187 +f 14439//13180 14460//13201 14446//13187 14433//13174 +f 14460//13201 14439//13180 14441//13182 14462//13203 +f 14461//13202 14460//13201 14462//13203 14463//13204 +f 14464//13205 14465//13206 14441//13182 14440//13181 +f 14451//13192 14464//13205 14440//13181 14436//13177 +f 14464//13205 14451//13192 14450//13191 14466//13207 +f 14465//13206 14464//13205 14466//13207 14467//13208 +f 14468//13209 14469//13210 14470//13211 14471//13212 +f 14455//13196 14468//13209 14471//13212 14456//13197 +f 14468//13209 14455//13196 14459//13200 14472//13213 +f 14469//13210 14468//13209 14472//13213 14473//13214 +f 14474//13215 14475//13216 14459//13200 14458//13199 +f 14461//13202 14474//13215 14458//13199 14447//13188 +f 14474//13215 14461//13202 14463//13204 14476//13217 +f 14475//13216 14474//13215 14476//13217 14477//13218 +f 14478//13219 13314//12057 13315//12058 14479//13220 +f 14469//13210 14478//13219 14479//13220 14470//13211 +f 14478//13219 14469//13210 14473//13214 14480//13221 +f 13314//12057 14478//13219 14480//13221 13316//12059 +f 14481//13222 14482//13223 14473//13214 14472//13213 +f 14475//13216 14481//13222 14472//13213 14459//13200 +f 14481//13222 14475//13216 14477//13218 14483//13224 +f 14482//13223 14481//13222 14483//13224 14484//13225 +f 14485//13226 14486//13227 13316//12059 14480//13221 +f 14482//13223 14485//13226 14480//13221 14473//13214 +f 14485//13226 14482//13223 14484//13225 14487//13228 +f 14486//13227 14485//13226 14487//13228 14488//13229 +f 14489//13230 14490//13231 13318//12061 13317//12060 +f 14486//13227 14489//13230 13317//12060 13316//12059 +f 14489//13230 14486//13227 14488//13229 14491//13232 +f 14490//13231 14489//13230 14491//13232 14492//13233 +f 14493//13234 14494//13235 14484//13225 14483//13224 +f 14495//13236 14493//13234 14483//13224 14477//13218 +f 14493//13234 14495//13236 14496//13237 14497//13238 +f 14494//13235 14493//13234 14497//13238 14498//13239 +f 14499//13240 14500//13241 14501//13242 14502//13243 +f 14495//13236 14499//13240 14502//13243 14496//13237 +f 14499//13240 14495//13236 14477//13218 14476//13217 +f 14500//13241 14499//13240 14476//13217 14463//13204 +f 14503//13244 14504//13245 14498//13239 14497//13238 +f 14505//13246 14503//13244 14497//13238 14496//13237 +f 14503//13244 14505//13246 14506//13247 14507//13248 +f 14504//13245 14503//13244 14507//13248 14508//13249 +f 14509//13250 14505//13246 14496//13237 14502//13243 +f 14510//13251 14509//13250 14502//13243 14501//13242 +f 14509//13250 14510//13251 14511//13252 14512//13253 +f 14505//13246 14509//13250 14512//13253 14506//13247 +f 14513//13254 14514//13255 14515//13256 14516//13257 +f 14504//13245 14513//13254 14516//13257 14498//13239 +f 14513//13254 14504//13245 14508//13249 14517//13258 +f 14514//13255 14513//13254 14517//13258 14518//13259 +f 14519//13260 14520//13261 14518//13259 14517//13258 +f 14521//13262 14519//13260 14517//13258 14508//13249 +f 14519//13260 14521//13262 14522//13263 14523//13264 +f 14520//13261 14519//13260 14523//13264 14524//13265 +f 14525//13266 14521//13262 14508//13249 14507//13248 +f 14526//13267 14525//13266 14507//13248 14506//13247 +f 14525//13266 14526//13267 14527//13268 14528//13269 +f 14521//13262 14525//13266 14528//13269 14522//13263 +f 14529//13270 14530//13271 14531//13272 14532//13273 +f 14533//13274 14529//13270 14532//13273 14534//13275 +f 14529//13270 14533//13274 14524//13265 14523//13264 +f 14530//13271 14529//13270 14523//13264 14522//13263 +f 14535//13276 14536//13277 14537//13278 14538//13279 +f 14526//13267 14535//13276 14538//13279 14527//13268 +f 14535//13276 14526//13267 14506//13247 14512//13253 +f 14536//13277 14535//13276 14512//13253 14511//13252 +f 14539//13280 14530//13271 14522//13263 14528//13269 +f 14540//13281 14539//13280 14528//13269 14527//13268 +f 14539//13280 14540//13281 14541//13282 14542//13283 +f 14530//13271 14539//13280 14542//13283 14531//13272 +f 14543//13284 14540//13281 14527//13268 14538//13279 +f 14544//13285 14543//13284 14538//13279 14537//13278 +f 14543//13284 14544//13285 14545//13286 14546//13287 +f 14540//13281 14543//13284 14546//13287 14541//13282 +f 14547//13288 14548//13289 14549//13290 14550//13291 +f 14536//13277 14547//13288 14550//13291 14537//13278 +f 14547//13288 14536//13277 14511//13252 14551//13292 +f 14548//13289 14547//13288 14551//13292 14552//13293 +f 14553//13294 14554//13295 14555//13296 14556//13297 +f 14544//13285 14553//13294 14556//13297 14545//13286 +f 14553//13294 14544//13285 14537//13278 14550//13291 +f 14554//13295 14553//13294 14550//13291 14549//13290 +f 14557//13298 14558//13299 14541//13282 14546//13287 +f 14559//13300 14557//13298 14546//13287 14545//13286 +f 14557//13298 14559//13300 14560//13301 14561//13302 +f 14558//13299 14557//13298 14561//13302 14562//13303 +f 14563//13304 14564//13305 14552//13293 14551//13292 +f 14510//13251 14563//13304 14551//13292 14511//13252 +f 14563//13304 14510//13251 14501//13242 14565//13306 +f 14564//13305 14563//13304 14565//13306 14467//13208 +f 14566//13307 14567//13308 14531//13272 14542//13283 +f 14558//13299 14566//13307 14542//13283 14541//13282 +f 14566//13307 14558//13299 14562//13303 14568//13309 +f 14567//13308 14566//13307 14568//13309 14569//13310 +f 14570//13311 14571//13312 14534//13275 14532//13273 +f 14567//13308 14570//13311 14532//13273 14531//13272 +f 14570//13311 14567//13308 14569//13310 14572//13313 +f 14571//13312 14570//13311 14572//13313 14573//13314 +f 14574//13315 14575//13316 14576//13317 14577//13318 +f 14559//13300 14574//13315 14577//13318 14560//13301 +f 14574//13315 14559//13300 14545//13286 14556//13297 +f 14575//13316 14574//13315 14556//13297 14555//13296 +f 14578//13319 14579//13320 14562//13303 14561//13302 +f 14580//13321 14578//13319 14561//13302 14560//13301 +f 14578//13319 14580//13321 14581//13322 14582//13323 +f 14579//13320 14578//13319 14582//13323 14583//13324 +f 14584//13325 14580//13321 14560//13301 14577//13318 +f 14585//13326 14584//13325 14577//13318 14576//13317 +f 14584//13325 14585//13326 14586//13327 14587//13328 +f 14580//13321 14584//13325 14587//13328 14581//13322 +f 14588//13329 14589//13330 14569//13310 14568//13309 +f 14579//13320 14588//13329 14568//13309 14562//13303 +f 14588//13329 14579//13320 14583//13324 14590//13331 +f 14589//13330 14588//13329 14590//13331 14591//13332 +f 14592//13333 14593//13334 14594//13335 14595//13336 +f 14571//13312 14592//13333 14595//13336 14534//13275 +f 14592//13333 14571//13312 14573//13314 14596//13337 +f 14593//13334 14592//13333 14596//13337 14597//13338 +f 14598//13339 14533//13274 14534//13275 14595//13336 +f 14599//13340 14598//13339 14595//13336 14594//13335 +f 14598//13339 14599//13340 14600//13341 14601//13342 +f 14533//13274 14598//13339 14601//13342 14524//13265 +f 14602//13343 14603//13344 14573//13314 14572//13313 +f 14589//13330 14602//13343 14572//13313 14569//13310 +f 14602//13343 14589//13330 14591//13332 14604//13345 +f 14603//13344 14602//13343 14604//13345 14605//13346 +f 14606//13347 14607//13348 14605//13346 14604//13345 +f 14608//13349 14606//13347 14604//13345 14591//13332 +f 14606//13347 14608//13349 14609//13350 14610//13351 +f 14607//13348 14606//13347 14610//13351 14611//13352 +f 14612//13353 14608//13349 14591//13332 14590//13331 +f 14613//13354 14612//13353 14590//13331 14583//13324 +f 14612//13353 14613//13354 14614//13355 14615//13356 +f 14608//13349 14612//13353 14615//13356 14609//13350 +f 14616//13357 14617//13358 14618//13359 14619//13360 +f 14613//13354 14616//13357 14619//13360 14614//13355 +f 14616//13357 14613//13354 14583//13324 14582//13323 +f 14617//13358 14616//13357 14582//13323 14581//13322 +f 14620//13361 14621//13362 14609//13350 14615//13356 +f 14622//13363 14620//13361 14615//13356 14614//13355 +f 14620//13361 14622//13363 14623//13364 14624//13365 +f 14621//13362 14620//13361 14624//13365 14625//13366 +f 14626//13367 14627//13368 14628//13369 14629//13370 +f 14617//13358 14626//13367 14629//13370 14618//13359 +f 14626//13367 14617//13358 14581//13322 14587//13328 +f 14627//13368 14626//13367 14587//13328 14586//13327 +f 14630//13371 14622//13363 14614//13355 14619//13360 +f 14631//13372 14630//13371 14619//13360 14618//13359 +f 14630//13371 14631//13372 14632//13373 14633//13374 +f 14622//13363 14630//13371 14633//13374 14623//13364 +f 14634//13375 14631//13372 14618//13359 14629//13370 +f 14635//13376 14634//13375 14629//13370 14628//13369 +f 14634//13375 14635//13376 14636//13377 14637//13378 +f 14631//13372 14634//13375 14637//13378 14632//13373 +f 14638//13379 14639//13380 14640//13381 14641//13382 +f 14627//13368 14638//13379 14641//13382 14628//13369 +f 14638//13379 14627//13368 14586//13327 14642//13383 +f 14639//13380 14638//13379 14642//13383 14643//13384 +f 14644//13385 14645//13386 14646//13387 14647//13388 +f 14635//13376 14644//13385 14647//13388 14636//13377 +f 14644//13385 14635//13376 14628//13369 14641//13382 +f 14645//13386 14644//13385 14641//13382 14640//13381 +f 14648//13389 14649//13390 14632//13373 14637//13378 +f 14650//13391 14648//13389 14637//13378 14636//13377 +f 14648//13389 14650//13391 14651//13392 14652//13393 +f 14649//13390 14648//13389 14652//13393 14653//13394 +f 14654//13395 14655//13396 14643//13384 14642//13383 +f 14585//13326 14654//13395 14642//13383 14586//13327 +f 14654//13395 14585//13326 14576//13317 14656//13397 +f 14655//13396 14654//13395 14656//13397 14657//13398 +f 14658//13399 14659//13400 14623//13364 14633//13374 +f 14649//13390 14658//13399 14633//13374 14632//13373 +f 14658//13399 14649//13390 14653//13394 14660//13401 +f 14659//13400 14658//13399 14660//13401 14661//13402 +f 14662//13403 14663//13404 14657//13398 14656//13397 +f 14575//13316 14662//13403 14656//13397 14576//13317 +f 14662//13403 14575//13316 14555//13296 14664//13405 +f 14663//13404 14662//13403 14664//13405 14665//13406 +f 14666//13407 14667//13408 14640//13381 14639//13380 +f 14668//13409 14666//13407 14639//13380 14643//13384 +f 14666//13407 14668//13409 14669//13410 14670//13411 +f 14667//13408 14666//13407 14670//13411 14671//13412 +f 14672//13413 14673//13414 14665//13406 14664//13405 +f 14554//13295 14672//13413 14664//13405 14555//13296 +f 14672//13413 14554//13295 14549//13290 14674//13415 +f 14673//13414 14672//13413 14674//13415 14675//13416 +f 14676//13417 14668//13409 14643//13384 14655//13396 +f 14677//13418 14676//13417 14655//13396 14657//13398 +f 14676//13417 14677//13418 14678//13419 14679//13420 +f 14668//13409 14676//13417 14679//13420 14669//13410 +f 14680//13421 14677//13418 14657//13398 14663//13404 +f 14681//13422 14680//13421 14663//13404 14665//13406 +f 14680//13421 14681//13422 14682//13423 14683//13424 +f 14677//13418 14680//13421 14683//13424 14678//13419 +f 14684//13425 14685//13426 14675//13416 14674//13415 +f 14548//13289 14684//13425 14674//13415 14549//13290 +f 14684//13425 14548//13289 14552//13293 14686//13427 +f 14685//13426 14684//13425 14686//13427 14687//13428 +f 14688//13429 14689//13430 14690//13431 14691//13432 +f 14681//13422 14688//13429 14691//13432 14682//13423 +f 14688//13429 14681//13422 14665//13406 14673//13414 +f 14689//13430 14688//13429 14673//13414 14675//13416 +f 14692//13433 14693//13434 14678//13419 14683//13424 +f 14694//13435 14692//13433 14683//13424 14682//13423 +f 14692//13433 14694//13435 14695//13436 14696//13437 +f 14693//13434 14692//13433 14696//13437 14697//13438 +f 14698//13439 14694//13435 14682//13423 14691//13432 +f 14699//13440 14698//13439 14691//13432 14690//13431 +f 14698//13439 14699//13440 14700//13441 14701//13442 +f 14694//13435 14698//13439 14701//13442 14695//13436 +f 14702//13443 14703//13444 14704//13445 14705//13446 +f 14689//13430 14702//13443 14705//13446 14690//13431 +f 14702//13443 14689//13430 14675//13416 14685//13426 +f 14703//13444 14702//13443 14685//13426 14687//13428 +f 14706//13447 14707//13448 14669//13410 14679//13420 +f 14693//13434 14706//13447 14679//13420 14678//13419 +f 14706//13447 14693//13434 14697//13438 14708//13449 +f 14707//13448 14706//13447 14708//13449 14709//13450 +f 14710//13451 14699//13440 14690//13431 14705//13446 +f 14711//13452 14710//13451 14705//13446 14704//13445 +f 14710//13451 14711//13452 14712//13453 14713//13454 +f 14699//13440 14710//13451 14713//13454 14700//13441 +f 14714//13455 14715//13456 14410//13151 14716//13457 +f 14711//13452 14714//13455 14716//13457 14712//13453 +f 14714//13455 14711//13452 14704//13445 14717//13458 +f 14715//13456 14714//13455 14717//13458 14453//13194 +f 14718//13459 14719//13460 14687//13428 14686//13427 +f 14564//13305 14718//13459 14686//13427 14552//13293 +f 14718//13459 14564//13305 14467//13208 14466//13207 +f 14719//13460 14718//13459 14466//13207 14450//13191 +f 14720//13461 14465//13206 14467//13208 14565//13306 +f 14500//13241 14720//13461 14565//13306 14501//13242 +f 14720//13461 14500//13241 14463//13204 14462//13203 +f 14465//13206 14720//13461 14462//13203 14441//13182 +f 14721//13462 14703//13444 14687//13428 14719//13460 +f 14449//13190 14721//13462 14719//13460 14450//13191 +f 14721//13462 14449//13190 14453//13194 14717//13458 +f 14703//13444 14721//13462 14717//13458 14704//13445 +f 14722//13463 14715//13456 14453//13194 14452//13193 +f 14419//13160 14722//13463 14452//13193 14420//13161 +f 14722//13463 14419//13160 14402//13143 14411//13152 +f 14715//13456 14722//13463 14411//13152 14410//13151 +f 14723//13464 14724//13465 14712//13453 14716//13457 +f 14409//13150 14723//13464 14716//13457 14410//13151 +f 14723//13464 14409//13150 14406//13147 14725//13466 +f 14724//13465 14723//13464 14725//13466 14726//13467 +f 14727//13468 14728//13469 14700//13441 14713//13454 +f 14724//13465 14727//13468 14713//13454 14712//13453 +f 14727//13468 14724//13465 14726//13467 14729//13470 +f 14728//13469 14727//13468 14729//13470 14730//13471 +f 14731//13472 14732//13473 14726//13467 14725//13466 +f 14405//13146 14731//13472 14725//13466 14406//13147 +f 14731//13472 14405//13146 14382//13123 14733//13474 +f 14732//13473 14731//13472 14733//13474 14734//13475 +f 14735//13476 14736//13477 14695//13436 14701//13442 +f 14728//13469 14735//13476 14701//13442 14700//13441 +f 14735//13476 14728//13469 14730//13471 14737//13478 +f 14736//13477 14735//13476 14737//13478 14738//13479 +f 14739//13480 14740//13481 14730//13471 14729//13470 +f 14732//13473 14739//13480 14729//13470 14726//13467 +f 14739//13480 14732//13473 14734//13475 14741//13482 +f 14740//13481 14739//13480 14741//13482 14742//13483 +f 14743//13484 14744//13485 14734//13475 14733//13474 +f 14381//13122 14743//13484 14733//13474 14382//13123 +f 14743//13484 14381//13122 14378//13119 14745//13486 +f 14744//13485 14743//13484 14745//13486 14746//13487 +f 14747//13488 14748//13489 14697//13438 14696//13437 +f 14736//13477 14747//13488 14696//13437 14695//13436 +f 14747//13488 14736//13477 14738//13479 14749//13490 +f 14748//13489 14747//13488 14749//13490 14750//13491 +f 14751//13492 14752//13493 14738//13479 14737//13478 +f 14740//13481 14751//13492 14737//13478 14730//13471 +f 14751//13492 14740//13481 14742//13483 14753//13494 +f 14752//13493 14751//13492 14753//13494 14754//13495 +f 14755//13496 14756//13497 14742//13483 14741//13482 +f 14744//13485 14755//13496 14741//13482 14734//13475 +f 14755//13496 14744//13485 14746//13487 14757//13498 +f 14756//13497 14755//13496 14757//13498 14758//13499 +f 14759//13500 14760//13501 14746//13487 14745//13486 +f 14377//13118 14759//13500 14745//13486 14378//13119 +f 14759//13500 14377//13118 14354//13095 14761//13502 +f 14760//13501 14759//13500 14761//13502 14762//13503 +f 14763//13504 14764//13505 14762//13503 14761//13502 +f 14353//13094 14763//13504 14761//13502 14354//13095 +f 14763//13504 14353//13094 14280//13021 14279//13020 +f 14764//13505 14763//13504 14279//13020 14270//13011 +f 14765//13506 14766//13507 14758//13499 14757//13498 +f 14760//13501 14765//13506 14757//13498 14746//13487 +f 14765//13506 14760//13501 14762//13503 14767//13508 +f 14766//13507 14765//13506 14767//13508 14768//13509 +f 14769//13510 14770//13511 14754//13495 14753//13494 +f 14756//13497 14769//13510 14753//13494 14742//13483 +f 14769//13510 14756//13497 14758//13499 14771//13512 +f 14770//13511 14769//13510 14771//13512 14772//13513 +f 14773//13514 14774//13515 14768//13509 14767//13508 +f 14764//13505 14773//13514 14767//13508 14762//13503 +f 14773//13514 14764//13505 14270//13011 14269//13010 +f 14774//13515 14773//13514 14269//13010 14268//13009 +f 14775//13516 14776//13517 14772//13513 14771//13512 +f 14766//13507 14775//13516 14771//13512 14758//13499 +f 14775//13516 14766//13507 14768//13509 14777//13518 +f 14776//13517 14775//13516 14777//13518 14778//13519 +f 14779//13520 14780//13521 14778//13519 14777//13518 +f 14774//13515 14779//13520 14777//13518 14768//13509 +f 14779//13520 14774//13515 14268//13009 14781//13522 +f 14780//13521 14779//13520 14781//13522 14782//13523 +f 14783//13524 14784//13525 14782//13523 14781//13522 +f 14267//13008 14783//13524 14781//13522 14268//13009 +f 14783//13524 14267//13008 14244//12986 14243//12985 +f 14784//13525 14783//13524 14243//12985 14240//12982 +f 14785//13526 14786//13527 14787//13528 14788//13529 +f 14776//13517 14785//13526 14788//13529 14772//13513 +f 14785//13526 14776//13517 14778//13519 14789//13530 +f 14786//13527 14785//13526 14789//13530 14790//13531 +f 14791//13532 14792//13533 14793//13534 14794//13535 +f 14784//13525 14791//13532 14794//13535 14782//13523 +f 14791//13532 14784//13525 14240//12982 14239//12981 +f 14792//13533 14791//13532 14239//12981 14238//12980 +f 14795//13536 14796//13537 14790//13531 14789//13530 +f 14780//13521 14795//13536 14789//13530 14778//13519 +f 14795//13536 14780//13521 14782//13523 14794//13535 +f 14796//13537 14795//13536 14794//13535 14793//13534 +f 14797//13538 14798//13539 14799//13540 14800//13541 +f 14792//13533 14797//13538 14800//13541 14793//13534 +f 14797//13538 14792//13533 14238//12980 14801//13542 +f 14798//13539 14797//13538 14801//13542 14802//13543 +f 14803//13544 14804//13545 14805//13546 14806//13547 +f 14796//13537 14803//13544 14806//13547 14790//13531 +f 14803//13544 14796//13537 14793//13534 14800//13541 +f 14804//13545 14803//13544 14800//13541 14799//13540 +f 14807//13548 14808//13549 14809//13550 14810//13551 +f 14786//13527 14807//13548 14810//13551 14787//13528 +f 14807//13548 14786//13527 14790//13531 14806//13547 +f 14808//13549 14807//13548 14806//13547 14805//13546 +f 14811//13552 14770//13511 14772//13513 14788//13529 +f 14812//13553 14811//13552 14788//13529 14787//13528 +f 14811//13552 14812//13553 14813//13554 14814//13555 +f 14770//13511 14811//13552 14814//13555 14754//13495 +f 14815//13556 14812//13553 14787//13528 14810//13551 +f 14816//13557 14815//13556 14810//13551 14809//13550 +f 14815//13556 14816//13557 14817//13558 14818//13559 +f 14812//13553 14815//13556 14818//13559 14813//13554 +f 14819//13560 14752//13493 14754//13495 14814//13555 +f 14820//13561 14819//13560 14814//13555 14813//13554 +f 14819//13560 14820//13561 14750//13491 14749//13490 +f 14752//13493 14819//13560 14749//13490 14738//13479 +f 14821//13562 14822//13563 14823//13564 14824//13565 +f 14820//13561 14821//13562 14824//13565 14750//13491 +f 14821//13562 14820//13561 14813//13554 14818//13559 +f 14822//13563 14821//13562 14818//13559 14817//13558 +f 14825//13566 14826//13567 14709//13450 14708//13449 +f 14748//13489 14825//13566 14708//13449 14697//13438 +f 14825//13566 14748//13489 14750//13491 14824//13565 +f 14826//13567 14825//13566 14824//13565 14823//13564 +f 14827//13568 14828//13569 14829//13570 14830//13571 +f 14822//13563 14827//13568 14830//13571 14823//13564 +f 14827//13568 14822//13563 14817//13558 14831//13572 +f 14828//13569 14827//13568 14831//13572 14832//13573 +f 14833//13574 14834//13575 14671//13412 14670//13411 +f 14707//13448 14833//13574 14670//13411 14669//13410 +f 14833//13574 14707//13448 14709//13450 14835//13576 +f 14834//13575 14833//13574 14835//13576 14836//13577 +f 14837//13578 14838//13579 14836//13577 14835//13576 +f 14826//13567 14837//13578 14835//13576 14709//13450 +f 14837//13578 14826//13567 14823//13564 14830//13571 +f 14838//13579 14837//13578 14830//13571 14829//13570 +f 14839//13580 14840//13581 14646//13387 14645//13386 +f 14667//13408 14839//13580 14645//13386 14640//13381 +f 14839//13580 14667//13408 14671//13412 14841//13582 +f 14840//13581 14839//13580 14841//13582 14842//13583 +f 14843//13584 14844//13585 14842//13583 14841//13582 +f 14834//13575 14843//13584 14841//13582 14671//13412 +f 14843//13584 14834//13575 14836//13577 14845//13586 +f 14844//13585 14843//13584 14845//13586 14846//13587 +f 14847//13588 14848//13589 14846//13587 14845//13586 +f 14838//13579 14847//13588 14845//13586 14836//13577 +f 14847//13588 14838//13579 14829//13570 14849//13590 +f 14848//13589 14847//13588 14849//13590 14850//13591 +f 14851//13592 14852//13593 14832//13573 14831//13572 +f 14816//13557 14851//13592 14831//13572 14817//13558 +f 14851//13592 14816//13557 14809//13550 14853//13594 +f 14852//13593 14851//13592 14853//13594 14854//13595 +f 14855//13596 14856//13597 14850//13591 14849//13590 +f 14828//13569 14855//13596 14849//13590 14829//13570 +f 14855//13596 14828//13569 14832//13573 14857//13598 +f 14856//13597 14855//13596 14857//13598 14858//13599 +f 14859//13600 14860//13601 14854//13595 14853//13594 +f 14808//13549 14859//13600 14853//13594 14809//13550 +f 14859//13600 14808//13549 14805//13546 14861//13602 +f 14860//13601 14859//13600 14861//13602 14862//13603 +f 14863//13604 14864//13605 14858//13599 14857//13598 +f 14852//13593 14863//13604 14857//13598 14832//13573 +f 14863//13604 14852//13593 14854//13595 14865//13606 +f 14864//13605 14863//13604 14865//13606 14866//13607 +f 14867//13608 14868//13609 14862//13603 14861//13602 +f 14804//13545 14867//13608 14861//13602 14805//13546 +f 14867//13608 14804//13545 14799//13540 14869//13610 +f 14868//13609 14867//13608 14869//13610 14870//13611 +f 14871//13612 14872//13613 14866//13607 14865//13606 +f 14860//13601 14871//13612 14865//13606 14854//13595 +f 14871//13612 14860//13601 14862//13603 14873//13614 +f 14872//13613 14871//13612 14873//13614 14874//13615 +f 14875//13616 14876//13617 14877//13618 14878//13619 +f 14856//13597 14875//13616 14878//13619 14850//13591 +f 14875//13616 14856//13597 14858//13599 14879//13620 +f 14876//13617 14875//13616 14879//13620 14880//13621 +f 14881//13622 14882//13623 14880//13621 14879//13620 +f 14864//13605 14881//13622 14879//13620 14858//13599 +f 14881//13622 14864//13605 14866//13607 14883//13624 +f 14882//13623 14881//13622 14883//13624 14884//13625 +f 14885//13626 14848//13589 14850//13591 14878//13619 +f 14886//13627 14885//13626 14878//13619 14877//13618 +f 14885//13626 14886//13627 14887//13628 14888//13629 +f 14848//13589 14885//13626 14888//13629 14846//13587 +f 14889//13630 14890//13631 14874//13615 14873//13614 +f 14868//13609 14889//13630 14873//13614 14862//13603 +f 14889//13630 14868//13609 14870//13611 14891//13632 +f 14890//13631 14889//13630 14891//13632 14892//13633 +f 14893//13634 14844//13585 14846//13587 14888//13629 +f 14894//13635 14893//13634 14888//13629 14887//13628 +f 14893//13634 14894//13635 14895//13636 14896//13637 +f 14844//13585 14893//13634 14896//13637 14842//13583 +f 14897//13638 14898//13639 14870//13611 14869//13610 +f 14798//13539 14897//13638 14869//13610 14799//13540 +f 14897//13638 14798//13539 14802//13543 14899//13640 +f 14898//13639 14897//13638 14899//13640 14900//13641 +f 14901//13642 14902//13643 14802//13543 14801//13542 +f 14237//12979 14901//13642 14801//13542 14238//12980 +f 14901//13642 14237//12979 14116//12858 14115//12857 +f 14902//13643 14901//13642 14115//12857 14106//12848 +f 14903//13644 14904//13645 14900//13641 14899//13640 +f 14902//13643 14903//13644 14899//13640 14802//13543 +f 14903//13644 14902//13643 14106//12848 14105//12847 +f 14904//13645 14903//13644 14105//12847 14109//12851 +f 14905//13646 14906//13647 14892//13633 14891//13632 +f 14898//13639 14905//13646 14891//13632 14870//13611 +f 14905//13646 14898//13639 14900//13641 14907//13648 +f 14906//13647 14905//13646 14907//13648 14908//13649 +f 14909//13650 14910//13651 14109//12851 14108//12850 +f 14087//12829 14909//13650 14108//12850 14088//12830 +f 14909//13650 14087//12829 14023//12765 14911//13652 +f 14910//13651 14909//13650 14911//13652 14912//13653 +f 14913//13654 14914//13655 14908//13649 14907//13648 +f 14904//13645 14913//13654 14907//13648 14900//13641 +f 14913//13654 14904//13645 14109//12851 14910//13651 +f 14914//13655 14913//13654 14910//13651 14912//13653 +f 14915//13656 14916//13657 14912//13653 14911//13652 +f 14022//12764 14915//13656 14911//13652 14023//12765 +f 14915//13656 14022//12764 14001//12744 14000//12743 +f 14916//13657 14915//13656 14000//12743 13999//12742 +f 14917//13658 14914//13655 14912//13653 14916//13657 +f 14003//12746 14917//13658 14916//13657 13999//12742 +f 14917//13658 14003//12746 14005//12748 14918//13659 +f 14914//13655 14917//13658 14918//13659 14908//13649 +f 14919//13660 14906//13647 14908//13649 14918//13659 +f 14920//13661 14919//13660 14918//13659 14005//12748 +f 14919//13660 14920//13661 14921//13662 14922//13663 +f 14906//13647 14919//13660 14922//13663 14892//13633 +f 14923//13664 14920//13661 14005//12748 14004//12747 +f 13993//12736 14923//13664 14004//12747 13983//12726 +f 14923//13664 13993//12736 13995//12738 14924//13665 +f 14920//13661 14923//13664 14924//13665 14921//13662 +f 14925//13666 14890//13631 14892//13633 14922//13663 +f 14926//13667 14925//13666 14922//13663 14921//13662 +f 14925//13666 14926//13667 14927//13668 14928//13669 +f 14890//13631 14925//13666 14928//13669 14874//13615 +f 14929//13670 14926//13667 14921//13662 14924//13665 +f 14930//13671 14929//13670 14924//13665 13995//12738 +f 14929//13670 14930//13671 14931//13672 14932//13673 +f 14926//13667 14929//13670 14932//13673 14927//13668 +f 14933//13674 14930//13671 13995//12738 13994//12737 +f 14934//13675 14933//13674 13994//12737 13973//12716 +f 14933//13674 14934//13675 14935//13676 14936//13677 +f 14930//13671 14933//13674 14936//13677 14931//13672 +f 14937//13678 14872//13613 14874//13615 14928//13669 +f 14938//13679 14937//13678 14928//13669 14927//13668 +f 14937//13678 14938//13679 14884//13625 14883//13624 +f 14872//13613 14937//13678 14883//13624 14866//13607 +f 14939//13680 14938//13679 14927//13668 14932//13673 +f 14940//13681 14939//13680 14932//13673 14931//13672 +f 14939//13680 14940//13681 14941//13682 14942//13683 +f 14938//13679 14939//13680 14942//13683 14884//13625 +f 14943//13684 14944//13685 14945//13686 14946//13687 +f 14882//13623 14943//13684 14946//13687 14880//13621 +f 14943//13684 14882//13623 14884//13625 14942//13683 +f 14944//13685 14943//13684 14942//13683 14941//13682 +f 14947//13688 14948//13689 14949//13690 14950//13691 +f 14940//13681 14947//13688 14950//13691 14941//13682 +f 14947//13688 14940//13681 14931//13672 14936//13677 +f 14948//13689 14947//13688 14936//13677 14935//13676 +f 14951//13692 14952//13693 14953//13694 14954//13695 +f 14944//13685 14951//13692 14954//13695 14945//13686 +f 14951//13692 14944//13685 14941//13682 14950//13691 +f 14952//13693 14951//13692 14950//13691 14949//13690 +f 14955//13696 14876//13617 14880//13621 14946//13687 +f 14956//13697 14955//13696 14946//13687 14945//13686 +f 14955//13696 14956//13697 14957//13698 14958//13699 +f 14876//13617 14955//13696 14958//13699 14877//13618 +f 14959//13700 14956//13697 14945//13686 14954//13695 +f 14960//13701 14959//13700 14954//13695 14953//13694 +f 14959//13700 14960//13701 14961//13702 14962//13703 +f 14956//13697 14959//13700 14962//13703 14957//13698 +f 14963//13704 14886//13627 14877//13618 14958//13699 +f 14964//13705 14963//13704 14958//13699 14957//13698 +f 14963//13704 14964//13705 14965//13706 14966//13707 +f 14886//13627 14963//13704 14966//13707 14887//13628 +f 14967//13708 14964//13705 14957//13698 14962//13703 +f 14968//13709 14967//13708 14962//13703 14961//13702 +f 14967//13708 14968//13709 14969//13710 14970//13711 +f 14964//13705 14967//13708 14970//13711 14965//13706 +f 14971//13712 14894//13635 14887//13628 14966//13707 +f 14972//13713 14971//13712 14966//13707 14965//13706 +f 14971//13712 14972//13713 14973//13714 14974//13715 +f 14894//13635 14971//13712 14974//13715 14895//13636 +f 14975//13716 14972//13713 14965//13706 14970//13711 +f 14976//13717 14975//13716 14970//13711 14969//13710 +f 14975//13716 14976//13717 14977//13718 14978//13719 +f 14972//13713 14975//13716 14978//13719 14973//13714 +f 14979//13720 14980//13721 14981//13722 14982//13723 +f 14968//13709 14979//13720 14982//13723 14969//13710 +f 14979//13720 14968//13709 14961//13702 14983//13724 +f 14980//13721 14979//13720 14983//13724 14984//13725 +f 14985//13726 14986//13727 14987//13728 14988//13729 +f 14976//13717 14985//13726 14988//13729 14977//13718 +f 14985//13726 14976//13717 14969//13710 14982//13723 +f 14986//13727 14985//13726 14982//13723 14981//13722 +f 14989//13730 14990//13731 14973//13714 14978//13719 +f 14991//13732 14989//13730 14978//13719 14977//13718 +f 14989//13730 14991//13732 14992//13733 14993//13734 +f 14990//13731 14989//13730 14993//13734 14994//13735 +f 14995//13736 14996//13737 14984//13725 14983//13724 +f 14960//13701 14995//13736 14983//13724 14961//13702 +f 14995//13736 14960//13701 14953//13694 14997//13738 +f 14996//13737 14995//13736 14997//13738 14998//13739 +f 14999//13740 15000//13741 14895//13636 14974//13715 +f 14990//13731 14999//13740 14974//13715 14973//13714 +f 14999//13740 14990//13731 14994//13735 15001//13742 +f 15000//13741 14999//13740 15001//13742 15002//13743 +f 15003//13744 15004//13745 14998//13739 14997//13738 +f 14952//13693 15003//13744 14997//13738 14953//13694 +f 15003//13744 14952//13693 14949//13690 15005//13746 +f 15004//13745 15003//13744 15005//13746 15006//13747 +f 15007//13748 14840//13581 14842//13583 14896//13637 +f 15000//13741 15007//13748 14896//13637 14895//13636 +f 15007//13748 15000//13741 15002//13743 15008//13749 +f 14840//13581 15007//13748 15008//13749 14646//13387 +f 15009//13750 14650//13391 14636//13377 14647//13388 +f 15008//13749 15009//13750 14647//13388 14646//13387 +f 15009//13750 15008//13749 15002//13743 15010//13751 +f 14650//13391 15009//13750 15010//13751 14651//13392 +f 15011//13752 15012//13753 14651//13392 15010//13751 +f 15001//13742 15011//13752 15010//13751 15002//13743 +f 15011//13752 15001//13742 14994//13735 15013//13754 +f 15012//13753 15011//13752 15013//13754 15014//13755 +f 15015//13756 15016//13757 15014//13755 15013//13754 +f 14993//13734 15015//13756 15013//13754 14994//13735 +f 15015//13756 14993//13734 14992//13733 15017//13758 +f 15016//13757 15015//13756 15017//13758 13559//12302 +f 15018//13759 15019//13760 14653//13394 14652//13393 +f 15012//13753 15018//13759 14652//13393 14651//13392 +f 15018//13759 15012//13753 15014//13755 15020//13761 +f 15019//13760 15018//13759 15020//13761 13549//12292 +f 15021//13762 13547//12290 13549//12292 15020//13761 +f 15016//13757 15021//13762 15020//13761 15014//13755 +f 15021//13762 15016//13757 13559//12302 13558//12301 +f 13547//12290 15021//13762 13558//12301 13545//12288 +f 15022//13763 15023//13764 14661//13402 14660//13401 +f 15019//13760 15022//13763 14660//13401 14653//13394 +f 15022//13763 15019//13760 13549//12292 13548//12291 +f 15023//13764 15022//13763 13548//12291 13537//12280 +f 15024//13765 13531//12274 13533//12276 15025//13766 +f 15023//13764 15024//13765 15025//13766 14661//13402 +f 15024//13765 15023//13764 13537//12280 13536//12279 +f 13531//12274 15024//13765 13536//12279 13519//12262 +f 15026//13767 14659//13400 14661//13402 15025//13766 +f 15027//13768 15026//13767 15025//13766 13533//12276 +f 15026//13767 15027//13768 14625//13366 14624//13365 +f 14659//13400 15026//13767 14624//13365 14623//13364 +f 15028//13769 13525//12268 13529//12272 15029//13770 +f 15027//13768 15028//13769 15029//13770 14625//13366 +f 15028//13769 15027//13768 13533//12276 13532//12275 +f 13525//12268 15028//13769 13532//12275 13515//12258 +f 15030//13771 14621//13362 14625//13366 15029//13770 +f 15031//13772 15030//13771 15029//13770 13529//12272 +f 15030//13771 15031//13772 14611//13352 14610//13351 +f 14621//13362 15030//13771 14610//13351 14609//13350 +f 15032//13773 15033//13774 15034//13775 15035//13776 +f 14607//13348 15032//13773 15035//13776 14605//13346 +f 15032//13773 14607//13348 14611//13352 15036//13777 +f 15033//13774 15032//13773 15036//13777 15037//13778 +f 15038//13779 14603//13344 14605//13346 15035//13776 +f 15039//13780 15038//13779 15035//13776 15034//13775 +f 15038//13779 15039//13780 14597//13338 14596//13337 +f 14603//13344 15038//13779 14596//13337 14573//13314 +f 15040//13781 13557//12300 13559//12302 15017//13758 +f 15041//13782 15040//13781 15017//13758 14992//13733 +f 15040//13781 15041//13782 15042//13783 15043//13784 +f 13557//12300 15040//13781 15043//13784 13555//12298 +f 15044//13785 15045//13786 15042//13783 15041//13782 +f 14991//13732 15044//13785 15041//13782 14992//13733 +f 15044//13785 14991//13732 14977//13718 14988//13729 +f 15045//13786 15044//13785 14988//13729 14987//13728 +f 15046//13787 13551//12294 13555//12298 15043//13784 +f 15047//13788 15046//13787 15043//13784 15042//13783 +f 15046//13787 15047//13788 13571//12314 13570//12313 +f 13551//12294 15046//13787 13570//12313 13552//12295 +f 15048//13789 15049//13790 13571//12314 15047//13788 +f 15045//13786 15048//13789 15047//13788 15042//13783 +f 15048//13789 15045//13786 14987//13728 15050//13791 +f 15049//13790 15048//13789 15050//13791 15051//13792 +f 15052//13793 13595//12338 13568//12311 13567//12310 +f 15049//13790 15052//13793 13567//12310 13571//12314 +f 15052//13793 15049//13790 15051//13792 15053//13794 +f 13595//12338 15052//13793 15053//13794 13596//12339 +f 15054//13795 15055//13796 15051//13792 15050//13791 +f 14986//13727 15054//13795 15050//13791 14987//13728 +f 15054//13795 14986//13727 14981//13722 15056//13797 +f 15055//13796 15054//13795 15056//13797 15057//13798 +f 15058//13799 15059//13800 13596//12339 15053//13794 +f 15055//13796 15058//13799 15053//13794 15051//13792 +f 15058//13799 15055//13796 15057//13798 15060//13801 +f 15059//13800 15058//13799 15060//13801 15061//13802 +f 15062//13803 15063//13804 15057//13798 15056//13797 +f 14980//13721 15062//13803 15056//13797 14981//13722 +f 15062//13803 14980//13721 14984//13725 15064//13805 +f 15063//13804 15062//13803 15064//13805 15065//13806 +f 15066//13807 15067//13808 13585//12328 13597//12340 +f 15059//13800 15066//13807 13597//12340 13596//12339 +f 15066//13807 15059//13800 15061//13802 15068//13809 +f 15067//13808 15066//13807 15068//13809 15069//13810 +f 15070//13811 15071//13812 15061//13802 15060//13801 +f 15063//13804 15070//13811 15060//13801 15057//13798 +f 15070//13811 15063//13804 15065//13806 15072//13813 +f 15071//13812 15070//13811 15072//13813 15073//13814 +f 15074//13815 15075//13816 15065//13806 15064//13805 +f 14996//13737 15074//13815 15064//13805 14984//13725 +f 15074//13815 14996//13737 14998//13739 15076//13817 +f 15075//13816 15074//13815 15076//13817 15077//13818 +f 15078//13819 15079//13820 13587//12330 13586//12329 +f 15067//13808 15078//13819 13586//12329 13585//12328 +f 15078//13819 15067//13808 15069//13810 15080//13821 +f 15079//13820 15078//13819 15080//13821 15081//13822 +f 15082//13823 15083//13824 15069//13810 15068//13809 +f 15071//13812 15082//13823 15068//13809 15061//13802 +f 15082//13823 15071//13812 15073//13814 15084//13825 +f 15083//13824 15082//13823 15084//13825 15085//13826 +f 15086//13827 15087//13828 15073//13814 15072//13813 +f 15075//13816 15086//13827 15072//13813 15065//13806 +f 15086//13827 15075//13816 15077//13818 15088//13829 +f 15087//13828 15086//13827 15088//13829 15089//13830 +f 15090//13831 13611//12354 13590//12333 13593//12336 +f 15079//13820 15090//13831 13593//12336 13587//12330 +f 15090//13831 15079//13820 15081//13822 15091//13832 +f 13611//12354 15090//13831 15091//13832 13612//12355 +f 15092//13833 15093//13834 15081//13822 15080//13821 +f 15083//13824 15092//13833 15080//13821 15069//13810 +f 15092//13833 15083//13824 15085//13826 15094//13835 +f 15093//13834 15092//13833 15094//13835 13643//12386 +f 15095//13836 13627//12370 13612//12355 15091//13832 +f 15093//13834 15095//13836 15091//13832 15081//13822 +f 15095//13836 15093//13834 13643//12386 13642//12385 +f 13627//12370 15095//13836 13642//12385 13628//12371 +f 15096//13837 15097//13838 13763//12506 13762//12505 +f 13639//12382 15096//13837 13762//12505 13640//12383 +f 15096//13837 13639//12382 13643//12386 15094//13835 +f 15097//13838 15096//13837 15094//13835 15085//13826 +f 15098//13839 15097//13838 15085//13826 15084//13825 +f 15087//13828 15098//13839 15084//13825 15073//13814 +f 15098//13839 15087//13828 15089//13830 15099//13840 +f 15097//13838 15098//13839 15099//13840 13763//12506 +f 15100//13841 15101//13842 13773//12516 13772//12515 +f 13761//12504 15100//13841 13772//12515 13759//12502 +f 15100//13841 13761//12504 13763//12506 15099//13840 +f 15101//13842 15100//13841 15099//13840 15089//13830 +f 15102//13843 15103//13844 13969//12712 13968//12711 +f 13771//12514 15102//13843 13968//12711 13769//12512 +f 15102//13843 13771//12514 13773//12516 15104//13845 +f 15103//13844 15102//13843 15104//13845 15105//13846 +f 15106//13847 15107//13848 15105//13846 15104//13845 +f 15101//13842 15106//13847 15104//13845 13773//12516 +f 15106//13847 15101//13842 15089//13830 15088//13829 +f 15107//13848 15106//13847 15088//13829 15077//13818 +f 15108//13849 15109//13850 13977//12720 13976//12719 +f 15103//13844 15108//13849 13976//12719 13969//12712 +f 15108//13849 15103//13844 15105//13846 15110//13851 +f 15109//13850 15108//13849 15110//13851 15006//13747 +f 15111//13852 14934//13675 13973//12716 13972//12715 +f 13975//12718 15111//13852 13972//12715 13965//12708 +f 15111//13852 13975//12718 13977//12720 15112//13853 +f 14934//13675 15111//13852 15112//13853 14935//13676 +f 15113//13854 15004//13745 15006//13747 15110//13851 +f 15107//13848 15113//13854 15110//13851 15105//13846 +f 15113//13854 15107//13848 15077//13818 15076//13817 +f 15004//13745 15113//13854 15076//13817 14998//13739 +f 15114//13855 14948//13689 14935//13676 15112//13853 +f 15109//13850 15114//13855 15112//13853 13977//12720 +f 15114//13855 15109//13850 15006//13747 15005//13746 +f 14948//13689 15114//13855 15005//13746 14949//13690 +f 15115//13856 15116//13857 14488//13229 14487//13228 +f 14494//13235 15115//13856 14487//13228 14484//13225 +f 15115//13856 14494//13235 14498//13239 14516//13257 +f 15116//13857 15115//13856 14516//13257 14515//13256 +f 15117//13858 15118//13859 14492//13233 14491//13232 +f 15116//13857 15117//13858 14491//13232 14488//13229 +f 15117//13858 15116//13857 14515//13256 15119//13860 +f 15118//13859 15117//13858 15119//13860 15120//13861 +f 15121//13862 15122//13863 15120//13861 15119//13860 +f 14514//13255 15121//13862 15119//13860 14515//13256 +f 15121//13862 14514//13255 14518//13259 15123//13864 +f 15122//13863 15121//13862 15123//13864 15124//13865 +f 15125//13866 15126//13867 15124//13865 15123//13864 +f 14520//13261 15125//13866 15123//13864 14518//13259 +f 15125//13866 14520//13261 14524//13265 14601//13342 +f 15126//13867 15125//13866 14601//13342 14600//13341 +f 15127//13868 15128//13869 14334//13075 14339//13080 +f 15129//13870 15127//13868 14339//13080 14338//13079 +f 15127//13868 15129//13870 14172//12914 14171//12913 +f 15128//13869 15127//13868 14171//12913 14168//12910 +f 15130//13871 14178//12920 14182//12924 14335//13076 +f 15128//13869 15130//13871 14335//13076 14334//13075 +f 15130//13871 15128//13869 14168//12910 14166//12908 +f 14178//12920 15130//13871 14166//12908 14165//12907 +f 15131//13872 15132//13873 13385//12128 13384//12127 +f 13365//12108 15131//13872 13384//12127 13366//12109 +f 15131//13872 13365//12108 13303//12046 15133//13874 +f 15132//13873 15131//13872 15133//13874 15134//13875 +f 15135//13876 15136//13877 15137//13878 15138//13879 +f 15139//13880 15135//13876 15138//13879 13309//12052 +f 15135//13876 15139//13880 15140//13881 15141//13882 +f 15136//13877 15135//13876 15141//13882 15142//13883 +f 15143//13884 15144//13885 15145//13886 15146//13887 +f 15139//13880 15143//13884 15146//13887 15140//13881 +f 15143//13884 15139//13880 13309//12052 13308//12051 +f 15144//13885 15143//13884 13308//12051 13307//12050 +f 15147//13888 15148//13889 15149//13890 15150//13891 +f 15144//13885 15147//13888 15150//13891 15145//13886 +f 15147//13888 15144//13885 13307//12050 13349//12092 +f 15148//13889 15147//13888 13349//12092 13348//12091 +f 15151//13892 15152//13893 15153//13894 15154//13895 +f 15148//13889 15151//13892 15154//13895 15149//13890 +f 15151//13892 15148//13889 13348//12091 13355//12098 +f 15152//13893 15151//13892 13355//12098 13354//12097 +f 15155//13896 15156//13897 15157//13898 15158//13899 +f 15152//13893 15155//13896 15158//13899 15153//13894 +f 15155//13896 15152//13893 13354//12097 13371//12114 +f 15156//13897 15155//13896 13371//12114 13370//12113 +f 15159//13900 15160//13901 15161//13902 15162//13903 +f 15156//13897 15159//13900 15162//13903 15157//13898 +f 15159//13900 15156//13897 13370//12113 13425//12168 +f 15160//13901 15159//13900 13425//12168 13424//12167 +f 15163//13904 15164//13905 15161//13902 15160//13901 +f 13437//12180 15163//13904 15160//13901 13424//12167 +f 15163//13904 13437//12180 13441//12184 15165//13906 +f 15164//13905 15163//13904 15165//13906 15166//13907 +f 15167//13908 15168//13909 15166//13907 15165//13906 +f 13599//12342 15167//13908 15165//13906 13441//12184 +f 15167//13908 13599//12342 13603//12346 15169//13910 +f 15168//13909 15167//13908 15169//13910 15170//13911 +f 15171//13912 15172//13913 15170//13911 15169//13910 +f 13605//12348 15171//13912 15169//13910 13603//12346 +f 15171//13912 13605//12348 13609//12352 15173//13914 +f 15172//13913 15171//13912 15173//13914 15174//13915 +f 15175//13916 15176//13917 15174//13915 15173//13914 +f 13615//12358 15175//13916 15173//13914 13609//12352 +f 15175//13916 13615//12358 13619//12362 15177//13918 +f 15176//13917 15175//13916 15177//13918 15178//13919 +f 15179//13920 15180//13921 15178//13919 15177//13918 +f 13621//12364 15179//13920 15177//13918 13619//12362 +f 15179//13920 13621//12364 13625//12368 15181//13922 +f 15180//13921 15179//13920 15181//13922 15182//13923 +f 15183//13924 15184//13925 15182//13923 15181//13922 +f 13649//12392 15183//13924 15181//13922 13625//12368 +f 15183//13924 13649//12392 13653//12396 15185//13926 +f 15184//13925 15183//13924 15185//13926 15186//13927 +f 15187//13928 15188//13929 15186//13927 15185//13926 +f 13655//12398 15187//13928 15185//13926 13653//12396 +f 15187//13928 13655//12398 13659//12402 15189//13930 +f 15188//13929 15187//13928 15189//13930 15190//13931 +f 15191//13932 15192//13933 15190//13931 15189//13930 +f 13665//12408 15191//13932 15189//13930 13659//12402 +f 15191//13932 13665//12408 13669//12412 15193//13934 +f 15192//13933 15191//13932 15193//13934 15194//13935 +f 15195//13936 15196//13937 15194//13935 15193//13934 +f 13675//12418 15195//13936 15193//13934 13669//12412 +f 15195//13936 13675//12418 13679//12422 15197//13938 +f 15196//13937 15195//13936 15197//13938 15198//13939 +f 15199//13940 15200//13941 15201//13942 15202//13943 +f 15197//13938 15199//13940 15202//13943 15198//13939 +f 15199//13940 15197//13938 13679//12422 13687//12430 +f 15200//13941 15199//13940 13687//12430 13686//12429 +f 15203//13944 15204//13945 15205//13946 15206//13947 +f 15200//13941 15203//13944 15206//13947 15201//13942 +f 15203//13944 15200//13941 13686//12429 13701//12444 +f 15204//13945 15203//13944 13701//12444 13700//12443 +f 15207//13948 15208//13949 15209//13950 15210//13951 +f 15204//13945 15207//13948 15210//13951 15205//13946 +f 15207//13948 15204//13945 13700//12443 13705//12448 +f 15208//13949 15207//13948 13705//12448 13324//12067 +f 15211//13952 15212//13953 15213//13954 15214//13955 +f 15208//13949 15211//13952 15214//13955 15209//13950 +f 15211//13952 15208//13949 13324//12067 13322//12065 +f 15212//13953 15211//13952 13322//12065 13321//12064 +f 15215//13956 15216//13957 15217//13958 15218//13959 +f 15212//13953 15215//13956 15218//13959 15213//13954 +f 15215//13956 15212//13953 13321//12064 15219//13960 +f 15216//13957 15215//13956 15219//13960 15220//13961 +f 15221//13962 15222//13963 15223//13964 15224//13965 +f 15216//13957 15221//13962 15224//13965 15217//13958 +f 15221//13962 15216//13957 15220//13961 15225//13966 +f 15222//13963 15221//13962 15225//13966 15226//13967 +f 15227//13968 15228//13969 13826//12569 13833//12576 +f 15229//13970 15227//13968 13833//12576 13832//12575 +f 15227//13968 15229//13970 15226//13967 15225//13966 +f 15228//13969 15227//13968 15225//13966 15220//13961 +f 15230//13971 13320//12063 13327//12070 13827//12570 +f 15228//13969 15230//13971 13827//12570 13826//12569 +f 15230//13971 15228//13969 15220//13961 15219//13960 +f 13320//12063 15230//13971 15219//13960 13321//12064 +f 15231//13972 15031//13772 13529//12272 13528//12271 +f 15232//13973 15231//13972 13528//12271 13527//12270 +f 15231//13972 15232//13973 15037//13778 15036//13777 +f 15031//13772 15231//13972 15036//13777 14611//13352 +f 15233//13974 13302//12045 13309//12052 15138//13879 +f 15234//13975 15233//13974 15138//13879 15137//13878 +f 15233//13974 15234//13975 15134//13875 15133//13874 +f 13302//12045 15233//13974 15133//13874 13303//12046 +f 15235//13976 13709//12452 13703//12446 13702//12445 +f 13695//12438 15235//13976 13702//12445 13689//12432 +f 15235//13976 13695//12438 13697//12440 13725//12468 +f 13709//12452 15235//13976 13725//12468 13710//12453 +f 15236//13977 15237//13978 15238//13979 15239//13980 +f 15240//13981 15236//13977 15239//13980 15241//13982 +f 15236//13977 15240//13981 15242//13983 15243//13984 +f 15237//13978 15236//13977 15243//13984 15244//13985 +f 15245//13986 15246//13987 15247//13988 15248//13989 +f 15249//13990 15245//13986 15248//13989 15250//13991 +f 15245//13986 15249//13990 15251//13992 15252//13993 +f 15246//13987 15245//13986 15252//13993 15253//13994 +f 15254//13995 15255//13996 15256//13997 15257//13998 +f 15258//13999 15254//13995 15257//13998 15259//14000 +f 15254//13995 15258//13999 15260//14001 15261//14002 +f 15255//13996 15254//13995 15261//14002 15262//14003 +f 15263//14004 15264//14005 15265//14006 15266//14007 +f 15267//14008 15263//14004 15266//14007 15268//14009 +f 15263//14004 15267//14008 15269//14010 15270//14011 +f 15264//14005 15263//14004 15270//14011 15271//14012 +f 15272//14013 15273//14014 15274//14015 15275//14016 +f 15276//14017 15272//14013 15275//14016 15277//14018 +f 15272//14013 15276//14017 15278//14019 15279//14020 +f 15273//14014 15272//14013 15279//14020 15280//14021 +f 15281//14022 15282//14023 15283//14024 15284//14025 +f 15240//13981 15281//14022 15284//14025 15242//13983 +f 15281//14022 15240//13981 15241//13982 15285//14026 +f 15282//14023 15281//14022 15285//14026 15286//14027 +f 15287//14028 15288//14029 15289//14030 15290//14031 +f 15282//14023 15287//14028 15290//14031 15283//14024 +f 15287//14028 15282//14023 15286//14027 15291//14032 +f 15288//14029 15287//14028 15291//14032 15292//14033 +f 15293//14034 15294//14035 15286//14027 15285//14026 +f 15295//14036 15293//14034 15285//14026 15241//13982 +f 15293//14034 15295//14036 15296//14037 15297//14038 +f 15294//14035 15293//14034 15297//14038 15298//14039 +f 15299//14040 15300//14041 15301//14042 15302//14043 +f 15295//14036 15299//14040 15302//14043 15296//14037 +f 15299//14040 15295//14036 15241//13982 15239//13980 +f 15300//14041 15299//14040 15239//13980 15238//13979 +f 15303//14044 15304//14045 15305//14046 15306//14047 +f 15288//14029 15303//14044 15306//14047 15289//14030 +f 15303//14044 15288//14029 15292//14033 15307//14048 +f 15304//14045 15303//14044 15307//14048 15308//14049 +f 15309//14050 15310//14051 15296//14037 15302//14043 +f 15311//14052 15309//14050 15302//14043 15301//14042 +f 15309//14050 15311//14052 15312//14053 15313//14054 +f 15310//14051 15309//14050 15313//14054 15314//14055 +f 15315//14056 15316//14057 15317//14058 15318//14059 +f 15311//14052 15315//14056 15318//14059 15312//14053 +f 15315//14056 15311//14052 15301//14042 15319//14060 +f 15316//14057 15315//14056 15319//14060 15320//14061 +f 15321//14062 15322//14063 15312//14053 15318//14059 +f 15323//14064 15321//14062 15318//14059 15317//14058 +f 15321//14062 15323//14064 15324//14065 15325//14066 +f 15322//14063 15321//14062 15325//14066 15326//14067 +f 15327//14068 15328//14069 15326//14067 15325//14066 +f 15329//14070 15327//14068 15325//14066 15324//14065 +f 15327//14068 15329//14070 15330//14071 15331//14072 +f 15328//14069 15327//14068 15331//14072 15332//14073 +f 15333//14074 15334//14075 15314//14055 15313//14054 +f 15322//14063 15333//14074 15313//14054 15312//14053 +f 15333//14074 15322//14063 15326//14067 15335//14076 +f 15334//14075 15333//14074 15335//14076 15336//14077 +f 15337//14078 15338//14079 15298//14039 15297//14038 +f 15310//14051 15337//14078 15297//14038 15296//14037 +f 15337//14078 15310//14051 15314//14055 15339//14080 +f 15338//14079 15337//14078 15339//14080 15340//14081 +f 15341//14082 15342//14083 15292//14033 15291//14032 +f 15294//14035 15341//14082 15291//14032 15286//14027 +f 15341//14082 15294//14035 15298//14039 15343//14084 +f 15342//14083 15341//14082 15343//14084 15344//14085 +f 15345//14086 15346//14087 15308//14049 15307//14048 +f 15342//14083 15345//14086 15307//14048 15292//14033 +f 15345//14086 15342//14083 15344//14085 15347//14088 +f 15346//14087 15345//14086 15347//14088 15348//14089 +f 15349//14090 15350//14091 15344//14085 15343//14084 +f 15338//14079 15349//14090 15343//14084 15298//14039 +f 15349//14090 15338//14079 15340//14081 15351//14092 +f 15350//14091 15349//14090 15351//14092 15352//14093 +f 15353//14094 15354//14095 15340//14081 15339//14080 +f 15334//14075 15353//14094 15339//14080 15314//14055 +f 15353//14094 15334//14075 15336//14077 15355//14096 +f 15354//14095 15353//14094 15355//14096 15356//14097 +f 15357//14098 15358//14099 15359//14100 15360//14101 +f 15304//14045 15357//14098 15360//14101 15305//14046 +f 15357//14098 15304//14045 15308//14049 15361//14102 +f 15358//14099 15357//14098 15361//14102 15362//14103 +f 15363//14104 15364//14105 15362//14103 15361//14102 +f 15346//14087 15363//14104 15361//14102 15308//14049 +f 15363//14104 15346//14087 15348//14089 15365//14106 +f 15364//14105 15363//14104 15365//14106 15366//14107 +f 15367//14108 15368//14109 15348//14089 15347//14088 +f 15350//14091 15367//14108 15347//14088 15344//14085 +f 15367//14108 15350//14091 15352//14093 15369//14110 +f 15368//14109 15367//14108 15369//14110 15370//14111 +f 15371//14112 15372//14113 15359//14100 15358//14099 +f 15373//14114 15371//14112 15358//14099 15362//14103 +f 15371//14112 15373//14114 15374//14115 15375//14116 +f 15372//14113 15371//14112 15375//14116 15376//14117 +f 15377//14118 15378//14119 15352//14093 15351//14092 +f 15354//14095 15377//14118 15351//14092 15340//14081 +f 15377//14118 15354//14095 15356//14097 15379//14120 +f 15378//14119 15377//14118 15379//14120 15380//14121 +f 15381//14122 15382//14123 15336//14077 15335//14076 +f 15328//14069 15381//14122 15335//14076 15326//14067 +f 15381//14122 15328//14069 15332//14073 15383//14124 +f 15382//14123 15381//14122 15383//14124 15384//14125 +f 15385//14126 15386//14127 15387//14128 15388//14129 +f 15389//14130 15385//14126 15388//14129 15390//14131 +f 15385//14126 15389//14130 15332//14073 15331//14072 +f 15386//14127 15385//14126 15331//14072 15330//14071 +f 15391//14132 15392//14133 15390//14131 15388//14129 +f 15393//14134 15391//14132 15388//14129 15387//14128 +f 15391//14132 15393//14134 15394//14135 15395//14136 +f 15392//14133 15391//14132 15395//14136 15396//14137 +f 15397//14138 15398//14139 15384//14125 15383//14124 +f 15389//14130 15397//14138 15383//14124 15332//14073 +f 15397//14138 15389//14130 15390//14131 15399//14140 +f 15398//14139 15397//14138 15399//14140 15400//14141 +f 15401//14142 15402//14143 15356//14097 15355//14096 +f 15382//14123 15401//14142 15355//14096 15336//14077 +f 15401//14142 15382//14123 15384//14125 15403//14144 +f 15402//14143 15401//14142 15403//14144 15404//14145 +f 15405//14146 15406//14147 15370//14111 15369//14110 +f 15378//14119 15405//14146 15369//14110 15352//14093 +f 15405//14146 15378//14119 15380//14121 15407//14148 +f 15406//14147 15405//14146 15407//14148 15408//14149 +f 15409//14150 15410//14151 15380//14121 15379//14120 +f 15402//14143 15409//14150 15379//14120 15356//14097 +f 15409//14150 15402//14143 15404//14145 15411//14152 +f 15410//14151 15409//14150 15411//14152 15412//14153 +f 15413//14154 15414//14155 15404//14145 15403//14144 +f 15398//14139 15413//14154 15403//14144 15384//14125 +f 15413//14154 15398//14139 15400//14141 15415//14156 +f 15414//14155 15413//14154 15415//14156 15416//14157 +f 15417//14158 15418//14159 15400//14141 15399//14140 +f 15392//14133 15417//14158 15399//14140 15390//14131 +f 15417//14158 15392//14133 15396//14137 15419//14160 +f 15418//14159 15417//14158 15419//14160 15420//14161 +f 15421//14162 15422//14163 15412//14153 15411//14152 +f 15414//14155 15421//14162 15411//14152 15404//14145 +f 15421//14162 15414//14155 15416//14157 15423//14164 +f 15422//14163 15421//14162 15423//14164 15424//14165 +f 15425//14166 15426//14167 15416//14157 15415//14156 +f 15418//14159 15425//14166 15415//14156 15400//14141 +f 15425//14166 15418//14159 15420//14161 15427//14168 +f 15426//14167 15425//14166 15427//14168 15428//14169 +f 15429//14170 15430//14171 15420//14161 15419//14160 +f 15431//14172 15429//14170 15419//14160 15396//14137 +f 15429//14170 15431//14172 15432//14173 15433//14174 +f 15430//14171 15429//14170 15433//14174 15434//14175 +f 15435//14176 15436//14177 15437//14178 15438//14179 +f 15431//14172 15435//14176 15438//14179 15432//14173 +f 15435//14176 15431//14172 15396//14137 15395//14136 +f 15436//14177 15435//14176 15395//14136 15394//14135 +f 15439//14180 15440//14181 15432//14173 15438//14179 +f 15441//14182 15439//14180 15438//14179 15437//14178 +f 15439//14180 15441//14182 15442//14183 15443//14184 +f 15440//14181 15439//14180 15443//14184 15444//14185 +f 15445//14186 15446//14187 15444//14185 15443//14184 +f 15447//14188 15445//14186 15443//14184 15442//14183 +f 15445//14186 15447//14188 15448//14189 15449//14190 +f 15446//14187 15445//14186 15449//14190 15450//14191 +f 15451//14192 15452//14193 15434//14175 15433//14174 +f 15440//14181 15451//14192 15433//14174 15432//14173 +f 15451//14192 15440//14181 15444//14185 15453//14194 +f 15452//14193 15451//14192 15453//14194 15454//14195 +f 15455//14196 15456//14197 15428//14169 15427//14168 +f 15430//14171 15455//14196 15427//14168 15420//14161 +f 15455//14196 15430//14171 15434//14175 15457//14198 +f 15456//14197 15455//14196 15457//14198 15458//14199 +f 15459//14200 15460//14201 15450//14191 15449//14190 +f 15461//14202 15459//14200 15449//14190 15448//14189 +f 15459//14200 15461//14202 15462//14203 15463//14204 +f 15460//14201 15459//14200 15463//14204 15464//14205 +f 15465//14206 15466//14207 15454//14195 15453//14194 +f 15446//14187 15465//14206 15453//14194 15444//14185 +f 15465//14206 15446//14187 15450//14191 15467//14208 +f 15466//14207 15465//14206 15467//14208 15468//14209 +f 15469//14210 15470//14211 15458//14199 15457//14198 +f 15452//14193 15469//14210 15457//14198 15434//14175 +f 15469//14210 15452//14193 15454//14195 15471//14212 +f 15470//14211 15469//14210 15471//14212 15472//14213 +f 15473//14214 15474//14215 15424//14165 15423//14164 +f 15426//14167 15473//14214 15423//14164 15416//14157 +f 15473//14214 15426//14167 15428//14169 15475//14216 +f 15474//14215 15473//14214 15475//14216 15476//14217 +f 15477//14218 15478//14219 15476//14217 15475//14216 +f 15456//14197 15477//14218 15475//14216 15428//14169 +f 15477//14218 15456//14197 15458//14199 15479//14220 +f 15478//14219 15477//14218 15479//14220 15480//14221 +f 15481//14222 15482//14223 15480//14221 15479//14220 +f 15470//14211 15481//14222 15479//14220 15458//14199 +f 15481//14222 15470//14211 15472//14213 15483//14224 +f 15482//14223 15481//14222 15483//14224 15484//14225 +f 15485//14226 15486//14227 15487//14228 15488//14229 +f 15474//14215 15485//14226 15488//14229 15424//14165 +f 15485//14226 15474//14215 15476//14217 15489//14230 +f 15486//14227 15485//14226 15489//14230 15490//14231 +f 15491//14232 15492//14233 15490//14231 15489//14230 +f 15478//14219 15491//14232 15489//14230 15476//14217 +f 15491//14232 15478//14219 15480//14221 15493//14234 +f 15492//14233 15491//14232 15493//14234 15494//14235 +f 15495//14236 15496//14237 15497//14238 15498//14239 +f 15422//14163 15495//14236 15498//14239 15412//14153 +f 15495//14236 15422//14163 15424//14165 15488//14229 +f 15496//14237 15495//14236 15488//14229 15487//14228 +f 15499//14240 15410//14151 15412//14153 15498//14239 +f 15500//14241 15499//14240 15498//14239 15497//14238 +f 15499//14240 15500//14241 15408//14149 15407//14148 +f 15410//14151 15499//14240 15407//14148 15380//14121 +f 15501//14242 15502//14243 15503//14244 15504//14245 +f 15496//14237 15501//14242 15504//14245 15497//14238 +f 15501//14242 15496//14237 15487//14228 15505//14246 +f 15502//14243 15501//14242 15505//14246 15506//14247 +f 15507//14248 15508//14249 15509//14250 15510//14251 +f 15500//14241 15507//14248 15510//14251 15408//14149 +f 15507//14248 15500//14241 15497//14238 15504//14245 +f 15508//14249 15507//14248 15504//14245 15503//14244 +f 15511//14252 15512//14253 15513//14254 15514//14255 +f 15406//14147 15511//14252 15514//14255 15370//14111 +f 15511//14252 15406//14147 15408//14149 15510//14251 +f 15512//14253 15511//14252 15510//14251 15509//14250 +f 15515//14256 15368//14109 15370//14111 15514//14255 +f 15516//14257 15515//14256 15514//14255 15513//14254 +f 15515//14256 15516//14257 15366//14107 15365//14106 +f 15368//14109 15515//14256 15365//14106 15348//14089 +f 15517//14258 15518//14259 15513//14254 15512//14253 +f 15519//14260 15517//14258 15512//14253 15509//14250 +f 15517//14258 15519//14260 15520//14261 15521//14262 +f 15518//14259 15517//14258 15521//14262 15522//14263 +f 15523//14264 15373//14114 15362//14103 15364//14105 +f 15524//14265 15523//14264 15364//14105 15366//14107 +f 15523//14264 15524//14265 15525//14266 15526//14267 +f 15373//14114 15523//14264 15526//14267 15374//14115 +f 15527//14268 15524//14265 15366//14107 15516//14257 +f 15518//14259 15527//14268 15516//14257 15513//14254 +f 15527//14268 15518//14259 15522//14263 15528//14269 +f 15524//14265 15527//14268 15528//14269 15525//14266 +f 15529//14270 15530//14271 15531//14272 15532//14273 +f 15519//14260 15529//14270 15532//14273 15520//14261 +f 15529//14270 15519//14260 15509//14250 15508//14249 +f 15530//14271 15529//14270 15508//14249 15503//14244 +f 15533//14274 15534//14275 15376//14117 15375//14116 +f 15535//14276 15533//14274 15375//14116 15374//14115 +f 15533//14274 15535//14276 15536//14277 15537//14278 +f 15534//14275 15533//14274 15537//14278 15538//14279 +f 15539//14280 15540//14281 15538//14279 15537//14278 +f 15541//14282 15539//14280 15537//14278 15536//14277 +f 15539//14280 15541//14282 15542//14283 15543//14284 +f 15540//14281 15539//14280 15543//14284 15544//14285 +f 15545//14286 15546//14287 15547//14288 15548//14289 +f 15535//14276 15545//14286 15548//14289 15536//14277 +f 15545//14286 15535//14276 15374//14115 15526//14267 +f 15546//14287 15545//14286 15526//14267 15525//14266 +f 15549//14290 15550//14291 15544//14285 15543//14284 +f 15551//14292 15549//14290 15543//14284 15542//14283 +f 15549//14290 15551//14292 15552//14293 15553//14294 +f 15550//14291 15549//14290 15553//14294 15554//14295 +f 15555//14296 15556//14297 15554//14295 15553//14294 +f 15557//14298 15555//14296 15553//14294 15552//14293 +f 15555//14296 15557//14298 15558//14299 15559//14300 +f 15556//14297 15555//14296 15559//14300 15560//14301 +f 15561//14302 15562//14303 15563//14304 15564//14305 +f 15541//14282 15561//14302 15564//14305 15542//14283 +f 15561//14302 15541//14282 15536//14277 15548//14289 +f 15562//14303 15561//14302 15548//14289 15547//14288 +f 15565//14306 15566//14307 15567//14308 15568//14309 +f 15551//14292 15565//14306 15568//14309 15552//14293 +f 15565//14306 15551//14292 15542//14283 15564//14305 +f 15566//14307 15565//14306 15564//14305 15563//14304 +f 15569//14310 15557//14298 15552//14293 15568//14309 +f 15570//14311 15569//14310 15568//14309 15567//14308 +f 15569//14310 15570//14311 15571//14312 15572//14313 +f 15557//14298 15569//14310 15572//14313 15558//14299 +f 15573//14314 15574//14315 15575//14316 15576//14317 +f 15566//14307 15573//14314 15576//14317 15567//14308 +f 15573//14314 15566//14307 15563//14304 15577//14318 +f 15574//14315 15573//14314 15577//14318 15578//14319 +f 15579//14320 15570//14311 15567//14308 15576//14317 +f 15580//14321 15579//14320 15576//14317 15575//14316 +f 15579//14320 15580//14321 15581//14322 15582//14323 +f 15570//14311 15579//14320 15582//14323 15571//14312 +f 15583//14324 15584//14325 15560//14301 15559//14300 +f 15585//14326 15583//14324 15559//14300 15558//14299 +f 15583//14324 15585//14326 15586//14327 15587//14328 +f 15584//14325 15583//14324 15587//14328 15588//14329 +f 15589//14330 15590//14331 15588//14329 15587//14328 +f 15591//14332 15589//14330 15587//14328 15586//14327 +f 15589//14330 15591//14332 15592//14333 15593//14334 +f 15590//14331 15589//14330 15593//14334 15594//14335 +f 15595//14336 15585//14326 15558//14299 15572//14313 +f 15596//14337 15595//14336 15572//14313 15571//14312 +f 15595//14336 15596//14337 15597//14338 15598//14339 +f 15585//14326 15595//14336 15598//14339 15586//14327 +f 15599//14340 15600//14341 15594//14335 15593//14334 +f 15601//14342 15599//14340 15593//14334 15592//14333 +f 15599//14340 15601//14342 15602//14343 15603//14344 +f 15600//14341 15599//14340 15603//14344 15604//14345 +f 15605//14346 15591//14332 15586//14327 15598//14339 +f 15606//14347 15605//14346 15598//14339 15597//14338 +f 15605//14346 15606//14347 15607//14348 15608//14349 +f 15591//14332 15605//14346 15608//14349 15592//14333 +f 15609//14350 15610//14351 15604//14345 15603//14344 +f 15611//14352 15609//14350 15603//14344 15602//14343 +f 15609//14350 15611//14352 15612//14353 15613//14354 +f 15610//14351 15609//14350 15613//14354 15614//14355 +f 15615//14356 15601//14342 15592//14333 15608//14349 +f 15616//14357 15615//14356 15608//14349 15607//14348 +f 15615//14356 15616//14357 15617//14358 15618//14359 +f 15601//14342 15615//14356 15618//14359 15602//14343 +f 15619//14360 15620//14361 15621//14362 15622//14363 +f 15613//14354 15619//14360 15622//14363 15614//14355 +f 15619//14360 15613//14354 15612//14353 15623//14364 +f 15620//14361 15619//14360 15623//14364 15624//14365 +f 15625//14366 15626//14367 15627//14368 15628//14369 +f 15611//14352 15625//14366 15628//14369 15612//14353 +f 15625//14366 15611//14352 15602//14343 15618//14359 +f 15626//14367 15625//14366 15618//14359 15617//14358 +f 15629//14370 15630//14371 15624//14365 15623//14364 +f 15628//14369 15629//14370 15623//14364 15612//14353 +f 15629//14370 15628//14369 15627//14368 15631//14372 +f 15630//14371 15629//14370 15631//14372 15632//14373 +f 15633//14374 15634//14375 15635//14376 15636//14377 +f 15620//14361 15633//14374 15636//14377 15621//14362 +f 15633//14374 15620//14361 15624//14365 15637//14378 +f 15634//14375 15633//14374 15637//14378 15638//14379 +f 15639//14380 15258//13999 15259//14000 15640//14381 +f 15634//14375 15639//14380 15640//14381 15635//14376 +f 15639//14380 15634//14375 15638//14379 15641//14382 +f 15258//13999 15639//14380 15641//14382 15260//14001 +f 15642//14383 15643//14384 15260//14001 15641//14382 +f 15644//14385 15642//14383 15641//14382 15638//14379 +f 15642//14383 15644//14385 15645//14386 15646//14387 +f 15643//14384 15642//14383 15646//14387 15647//14388 +f 15648//14389 15649//14390 15632//14373 15631//14372 +f 15650//14391 15648//14389 15631//14372 15627//14368 +f 15648//14389 15650//14391 15651//14392 15652//14393 +f 15649//14390 15648//14389 15652//14393 15653//14394 +f 15654//14395 15655//14396 15651//14392 15650//14391 +f 15626//14367 15654//14395 15650//14391 15627//14368 +f 15654//14395 15626//14367 15617//14358 15656//14397 +f 15655//14396 15654//14395 15656//14397 15657//14398 +f 15658//14399 15659//14400 15645//14386 15660//14401 +f 15649//14390 15658//14399 15660//14401 15632//14373 +f 15658//14399 15649//14390 15653//14394 15661//14402 +f 15659//14400 15658//14399 15661//14402 15662//14403 +f 15663//14404 15664//14405 15657//14398 15656//14397 +f 15616//14357 15663//14404 15656//14397 15617//14358 +f 15663//14404 15616//14357 15607//14348 15665//14406 +f 15664//14405 15663//14404 15665//14406 15666//14407 +f 15667//14408 15668//14409 15653//14394 15652//14393 +f 15669//14410 15667//14408 15652//14393 15651//14392 +f 15667//14408 15669//14410 15670//14411 15671//14412 +f 15668//14409 15667//14408 15671//14412 15672//14413 +f 15673//14414 15674//14415 15670//14411 15669//14410 +f 15655//14396 15673//14414 15669//14410 15651//14392 +f 15673//14414 15655//14396 15657//14398 15675//14416 +f 15674//14415 15673//14414 15675//14416 15676//14417 +f 15677//14418 15678//14419 15666//14407 15665//14406 +f 15606//14347 15677//14418 15665//14406 15607//14348 +f 15677//14418 15606//14347 15597//14338 15679//14420 +f 15678//14419 15677//14418 15679//14420 15680//14421 +f 15681//14422 15682//14423 15676//14417 15675//14416 +f 15664//14405 15681//14422 15675//14416 15657//14398 +f 15681//14422 15664//14405 15666//14407 15683//14424 +f 15682//14423 15681//14422 15683//14424 15684//14425 +f 15685//14426 15686//14427 15680//14421 15679//14420 +f 15596//14337 15685//14426 15679//14420 15597//14338 +f 15685//14426 15596//14337 15571//14312 15582//14323 +f 15686//14427 15685//14426 15582//14323 15581//14322 +f 15687//14428 15688//14429 15684//14425 15683//14424 +f 15678//14419 15687//14428 15683//14424 15666//14407 +f 15687//14428 15678//14419 15680//14421 15689//14430 +f 15688//14429 15687//14428 15689//14430 15690//14431 +f 15691//14432 15692//14433 15690//14431 15689//14430 +f 15686//14427 15691//14432 15689//14430 15680//14421 +f 15691//14432 15686//14427 15581//14322 15693//14434 +f 15692//14433 15691//14432 15693//14434 15694//14435 +f 15695//14436 15696//14437 15694//14435 15693//14434 +f 15580//14321 15695//14436 15693//14434 15581//14322 +f 15695//14436 15580//14321 15575//14316 15697//14438 +f 15696//14437 15695//14436 15697//14438 15698//14439 +f 15699//14440 15700//14441 15701//14442 15702//14443 +f 15688//14429 15699//14440 15702//14443 15684//14425 +f 15699//14440 15688//14429 15690//14431 15703//14444 +f 15700//14441 15699//14440 15703//14444 15704//14445 +f 15705//14446 15706//14447 15704//14445 15703//14444 +f 15692//14433 15705//14446 15703//14444 15690//14431 +f 15705//14446 15692//14433 15694//14435 15707//14448 +f 15706//14447 15705//14446 15707//14448 15708//14449 +f 15709//14450 15710//14451 15711//14452 15712//14453 +f 15682//14423 15709//14450 15712//14453 15676//14417 +f 15709//14450 15682//14423 15684//14425 15702//14443 +f 15710//14451 15709//14450 15702//14443 15701//14442 +f 15713//14454 15674//14415 15676//14417 15712//14453 +f 15714//14455 15713//14454 15712//14453 15711//14452 +f 15713//14454 15714//14455 15715//14456 15716//14457 +f 15674//14415 15713//14454 15716//14457 15670//14411 +f 15717//14458 15718//14459 15719//14460 15720//14461 +f 15710//14451 15717//14458 15720//14461 15711//14452 +f 15717//14458 15710//14451 15701//14442 15721//14462 +f 15718//14459 15717//14458 15721//14462 15722//14463 +f 15723//14464 15724//14465 15672//14413 15671//14412 +f 15716//14457 15723//14464 15671//14412 15670//14411 +f 15723//14464 15716//14457 15715//14456 15725//14466 +f 15724//14465 15723//14464 15725//14466 15726//14467 +f 15727//14468 15728//14469 15729//14470 15730//14471 +f 15714//14455 15727//14468 15730//14471 15715//14456 +f 15727//14468 15714//14455 15711//14452 15720//14461 +f 15728//14469 15727//14468 15720//14461 15719//14460 +f 15731//14472 15732//14473 15726//14467 15725//14466 +f 15730//14471 15731//14472 15725//14466 15715//14456 +f 15731//14472 15730//14471 15729//14470 15733//14474 +f 15732//14473 15731//14472 15733//14474 15734//14475 +f 15735//14476 15736//14477 15662//14403 15661//14402 +f 15668//14409 15735//14476 15661//14402 15653//14394 +f 15735//14476 15668//14409 15672//14413 15737//14478 +f 15736//14477 15735//14476 15737//14478 15738//14479 +f 15739//14480 15740//14481 15738//14479 15737//14478 +f 15724//14465 15739//14480 15737//14478 15672//14413 +f 15739//14480 15724//14465 15726//14467 15741//14482 +f 15740//14481 15739//14480 15741//14482 15742//14483 +f 15743//14484 15744//14485 15647//14388 15646//14387 +f 15659//14400 15743//14484 15646//14387 15645//14386 +f 15743//14484 15659//14400 15662//14403 15745//14486 +f 15744//14485 15743//14484 15745//14486 15746//14487 +f 15747//14488 15748//14489 15262//14003 15261//14002 +f 15643//14384 15747//14488 15261//14002 15260//14001 +f 15747//14488 15643//14384 15647//14388 15749//14490 +f 15748//14489 15747//14488 15749//14490 15750//14491 +f 15751//14492 15752//14493 15746//14487 15745//14486 +f 15736//14477 15751//14492 15745//14486 15662//14403 +f 15751//14492 15736//14477 15738//14479 15753//14494 +f 15752//14493 15751//14492 15753//14494 15754//14495 +f 15755//14496 15756//14497 15750//14491 15749//14490 +f 15744//14485 15755//14496 15749//14490 15647//14388 +f 15755//14496 15744//14485 15746//14487 15757//14498 +f 15756//14497 15755//14496 15757//14498 15758//14499 +f 15759//14500 15760//14501 15761//14502 15762//14503 +f 15748//14489 15759//14500 15762//14503 15262//14003 +f 15759//14500 15748//14489 15750//14491 15763//14504 +f 15760//14501 15759//14500 15763//14504 15764//14505 +f 15765//14506 15766//14507 15767//14508 15768//14509 +f 15760//14501 15765//14506 15768//14509 15761//14502 +f 15765//14506 15760//14501 15764//14505 15769//14510 +f 15766//14507 15765//14506 15769//14510 15770//14511 +f 15771//14512 15772//14513 15764//14505 15763//14504 +f 15756//14497 15771//14512 15763//14504 15750//14491 +f 15771//14512 15756//14497 15758//14499 15773//14514 +f 15772//14513 15771//14512 15773//14514 15774//14515 +f 15775//14516 15776//14517 15758//14499 15757//14498 +f 15752//14493 15775//14516 15757//14498 15746//14487 +f 15775//14516 15752//14493 15754//14495 15777//14518 +f 15776//14517 15775//14516 15777//14518 15778//14519 +f 15779//14520 15780//14521 15770//14511 15769//14510 +f 15772//14513 15779//14520 15769//14510 15764//14505 +f 15779//14520 15772//14513 15774//14515 15781//14522 +f 15780//14521 15779//14520 15781//14522 15782//14523 +f 15783//14524 15784//14525 15774//14515 15773//14514 +f 15776//14517 15783//14524 15773//14514 15758//14499 +f 15783//14524 15776//14517 15778//14519 15785//14526 +f 15784//14525 15783//14524 15785//14526 15786//14527 +f 15787//14528 15788//14529 15782//14523 15781//14522 +f 15784//14525 15787//14528 15781//14522 15774//14515 +f 15787//14528 15784//14525 15786//14527 15789//14530 +f 15788//14529 15787//14528 15789//14530 15790//14531 +f 15791//14532 15792//14533 15778//14519 15777//14518 +f 15793//14534 15791//14532 15777//14518 15754//14495 +f 15791//14532 15793//14534 15794//14535 15795//14536 +f 15792//14533 15791//14532 15795//14536 15796//14537 +f 15797//14538 15798//14539 15790//14531 15789//14530 +f 15799//14540 15797//14538 15789//14530 15786//14527 +f 15797//14538 15799//14540 15800//14541 15801//14542 +f 15798//14539 15797//14538 15801//14542 15802//14543 +f 15803//14544 15799//14540 15786//14527 15785//14526 +f 15792//14533 15803//14544 15785//14526 15778//14519 +f 15803//14544 15792//14533 15796//14537 15804//14545 +f 15799//14540 15803//14544 15804//14545 15800//14541 +f 15805//14546 15806//14547 15802//14543 15801//14542 +f 15807//14548 15805//14546 15801//14542 15800//14541 +f 15805//14546 15807//14548 15808//14549 15809//14550 +f 15806//14547 15805//14546 15809//14550 15810//14551 +f 15811//14552 15807//14548 15800//14541 15804//14545 +f 15812//14553 15811//14552 15804//14545 15796//14537 +f 15811//14552 15812//14553 15813//14554 15814//14555 +f 15807//14548 15811//14552 15814//14555 15808//14549 +f 15815//14556 15816//14557 15810//14551 15809//14550 +f 15817//14558 15815//14556 15809//14550 15808//14549 +f 15815//14556 15817//14558 15818//14559 15819//14560 +f 15816//14557 15815//14556 15819//14560 15820//14561 +f 15821//14562 15822//14563 15820//14561 15819//14560 +f 15823//14564 15821//14562 15819//14560 15818//14559 +f 15821//14562 15823//14564 15824//14565 15825//14566 +f 15822//14563 15821//14562 15825//14566 15826//14567 +f 15827//14568 15828//14569 15829//14570 15830//14571 +f 15817//14558 15827//14568 15830//14571 15818//14559 +f 15827//14568 15817//14558 15808//14549 15814//14555 +f 15828//14569 15827//14568 15814//14555 15813//14554 +f 15831//14572 15823//14564 15818//14559 15830//14571 +f 15832//14573 15831//14572 15830//14571 15829//14570 +f 15831//14572 15832//14573 15833//14574 15834//14575 +f 15823//14564 15831//14572 15834//14575 15824//14565 +f 15835//14576 15836//14577 15824//14565 15834//14575 +f 15837//14578 15835//14576 15834//14575 15833//14574 +f 15835//14576 15837//14578 15838//14579 15839//14580 +f 15836//14577 15835//14576 15839//14580 15840//14581 +f 15841//14582 15842//14583 15843//14584 15844//14585 +f 15832//14573 15841//14582 15844//14585 15833//14574 +f 15841//14582 15832//14573 15829//14570 15845//14586 +f 15842//14583 15841//14582 15845//14586 15846//14587 +f 15847//14588 15848//14589 15849//14590 15850//14591 +f 15837//14578 15847//14588 15850//14591 15838//14579 +f 15847//14588 15837//14578 15833//14574 15844//14585 +f 15848//14589 15847//14588 15844//14585 15843//14584 +f 15851//14592 15852//14593 15846//14587 15845//14586 +f 15828//14569 15851//14592 15845//14586 15829//14570 +f 15851//14592 15828//14569 15813//14554 15853//14594 +f 15852//14593 15851//14592 15853//14594 15854//14595 +f 15855//14596 15856//14597 15854//14595 15853//14594 +f 15812//14553 15855//14596 15853//14594 15813//14554 +f 15855//14596 15812//14553 15796//14537 15795//14536 +f 15856//14597 15855//14596 15795//14536 15794//14535 +f 15857//14598 15858//14599 15859//14600 15860//14601 +f 15842//14583 15857//14598 15860//14601 15843//14584 +f 15857//14598 15842//14583 15846//14587 15861//14602 +f 15858//14599 15857//14598 15861//14602 15862//14603 +f 15863//14604 15864//14605 15862//14603 15861//14602 +f 15852//14593 15863//14604 15861//14602 15846//14587 +f 15863//14604 15852//14593 15854//14595 15865//14606 +f 15864//14605 15863//14604 15865//14606 15866//14607 +f 15867//14608 15868//14609 15866//14607 15865//14606 +f 15856//14597 15867//14608 15865//14606 15854//14595 +f 15867//14608 15856//14597 15794//14535 15869//14610 +f 15868//14609 15867//14608 15869//14610 15742//14483 +f 15870//14611 15740//14481 15742//14483 15869//14610 +f 15793//14534 15870//14611 15869//14610 15794//14535 +f 15870//14611 15793//14534 15754//14495 15753//14494 +f 15740//14481 15870//14611 15753//14494 15738//14479 +f 15871//14612 15868//14609 15742//14483 15741//14482 +f 15732//14473 15871//14612 15741//14482 15726//14467 +f 15871//14612 15732//14473 15734//14475 15872//14613 +f 15868//14609 15871//14612 15872//14613 15866//14607 +f 15873//14614 15864//14605 15866//14607 15872//14613 +f 15874//14615 15873//14614 15872//14613 15734//14475 +f 15873//14614 15874//14615 15875//14616 15876//14617 +f 15864//14605 15873//14614 15876//14617 15862//14603 +f 15877//14618 15874//14615 15734//14475 15733//14474 +f 15878//14619 15877//14618 15733//14474 15729//14470 +f 15877//14618 15878//14619 15879//14620 15880//14621 +f 15874//14615 15877//14618 15880//14621 15875//14616 +f 15881//14622 15882//14623 15879//14620 15878//14619 +f 15728//14469 15881//14622 15878//14619 15729//14470 +f 15881//14622 15728//14469 15719//14460 15883//14624 +f 15882//14623 15881//14622 15883//14624 15884//14625 +f 15885//14626 15858//14599 15862//14603 15876//14617 +f 15886//14627 15885//14626 15876//14617 15875//14616 +f 15885//14626 15886//14627 15887//14628 15888//14629 +f 15858//14599 15885//14626 15888//14629 15859//14600 +f 15889//14630 15886//14627 15875//14616 15880//14621 +f 15890//14631 15889//14630 15880//14621 15879//14620 +f 15889//14630 15890//14631 15891//14632 15892//14633 +f 15886//14627 15889//14630 15892//14633 15887//14628 +f 15893//14634 15894//14635 15891//14632 15890//14631 +f 15882//14623 15893//14634 15890//14631 15879//14620 +f 15893//14634 15882//14623 15884//14625 15895//14636 +f 15894//14635 15893//14634 15895//14636 15896//14637 +f 15897//14638 15898//14639 15884//14625 15883//14624 +f 15718//14459 15897//14638 15883//14624 15719//14460 +f 15897//14638 15718//14459 15722//14463 15899//14640 +f 15898//14639 15897//14638 15899//14640 15900//14641 +f 15901//14642 15902//14643 15722//14463 15721//14462 +f 15700//14441 15901//14642 15721//14462 15701//14442 +f 15901//14642 15700//14441 15704//14445 15903//14644 +f 15902//14643 15901//14642 15903//14644 15904//14645 +f 15905//14646 15906//14647 15896//14637 15895//14636 +f 15898//14639 15905//14646 15895//14636 15884//14625 +f 15905//14646 15898//14639 15900//14641 15907//14648 +f 15906//14647 15905//14646 15907//14648 15908//14649 +f 15909//14650 15910//14651 15900//14641 15899//14640 +f 15902//14643 15909//14650 15899//14640 15722//14463 +f 15909//14650 15902//14643 15904//14645 15911//14652 +f 15910//14651 15909//14650 15911//14652 15912//14653 +f 15913//14654 15914//14655 15915//14656 15916//14657 +f 15894//14635 15913//14654 15916//14657 15891//14632 +f 15913//14654 15894//14635 15896//14637 15917//14658 +f 15914//14655 15913//14654 15917//14658 15918//14659 +f 15919//14660 15920//14661 15887//14628 15892//14633 +f 15916//14657 15919//14660 15892//14633 15891//14632 +f 15919//14660 15916//14657 15915//14656 15921//14662 +f 15920//14661 15919//14660 15921//14662 15922//14663 +f 15923//14664 15924//14665 15859//14600 15888//14629 +f 15920//14661 15923//14664 15888//14629 15887//14628 +f 15923//14664 15920//14661 15922//14663 15925//14666 +f 15924//14665 15923//14664 15925//14666 15926//14667 +f 15927//14668 15928//14669 15918//14659 15917//14658 +f 15906//14647 15927//14668 15917//14658 15896//14637 +f 15927//14668 15906//14647 15908//14649 15929//14670 +f 15928//14669 15927//14668 15929//14670 15930//14671 +f 15931//14672 15932//14673 15922//14663 15921//14662 +f 15933//14674 15931//14672 15921//14662 15915//14656 +f 15931//14672 15933//14674 15934//14675 15935//14676 +f 15932//14673 15931//14672 15935//14676 15936//14677 +f 15937//14678 15938//14679 15934//14675 15933//14674 +f 15914//14655 15937//14678 15933//14674 15915//14656 +f 15937//14678 15914//14655 15918//14659 15939//14680 +f 15938//14679 15937//14678 15939//14680 15940//14681 +f 15941//14682 15848//14589 15843//14584 15860//14601 +f 15924//14665 15941//14682 15860//14601 15859//14600 +f 15941//14682 15924//14665 15926//14667 15942//14683 +f 15848//14589 15941//14682 15942//14683 15849//14590 +f 15943//14684 15944//14685 15926//14667 15925//14666 +f 15932//14673 15943//14684 15925//14666 15922//14663 +f 15943//14684 15932//14673 15936//14677 15945//14686 +f 15944//14685 15943//14684 15945//14686 15946//14687 +f 15947//14688 15948//14689 15849//14590 15942//14683 +f 15944//14685 15947//14688 15942//14683 15926//14667 +f 15947//14688 15944//14685 15946//14687 15949//14690 +f 15948//14689 15947//14688 15949//14690 15950//14691 +f 15951//14692 15952//14693 15838//14579 15850//14591 +f 15948//14689 15951//14692 15850//14591 15849//14590 +f 15951//14692 15948//14689 15950//14691 15953//14694 +f 15952//14693 15951//14692 15953//14694 15954//14695 +f 15955//14696 15956//14697 15946//14687 15945//14686 +f 15957//14698 15955//14696 15945//14686 15936//14677 +f 15955//14696 15957//14698 15958//14699 15959//14700 +f 15956//14697 15955//14696 15959//14700 15960//14701 +f 15961//14702 15962//14703 15840//14581 15839//14580 +f 15952//14693 15961//14702 15839//14580 15838//14579 +f 15961//14702 15952//14693 15954//14695 15963//14704 +f 15962//14703 15961//14702 15963//14704 15964//14705 +f 15965//14706 15966//14707 15950//14691 15949//14690 +f 15956//14697 15965//14706 15949//14690 15946//14687 +f 15965//14706 15956//14697 15960//14701 15967//14708 +f 15966//14707 15965//14706 15967//14708 15968//14709 +f 15969//14710 15970//14711 15954//14695 15953//14694 +f 15966//14707 15969//14710 15953//14694 15950//14691 +f 15969//14710 15966//14707 15968//14709 15971//14712 +f 15970//14711 15969//14710 15971//14712 15972//14713 +f 15973//14714 15974//14715 15975//14716 15976//14717 +f 15962//14703 15973//14714 15976//14717 15840//14581 +f 15973//14714 15962//14703 15964//14705 15977//14718 +f 15974//14715 15973//14714 15977//14718 15978//14719 +f 15979//14720 15836//14577 15840//14581 15976//14717 +f 15980//14721 15979//14720 15976//14717 15975//14716 +f 15979//14720 15980//14721 15826//14567 15825//14566 +f 15836//14577 15979//14720 15825//14566 15824//14565 +f 15981//14722 15982//14723 15964//14705 15963//14704 +f 15970//14711 15981//14722 15963//14704 15954//14695 +f 15981//14722 15970//14711 15972//14713 15983//14724 +f 15982//14723 15981//14722 15983//14724 15984//14725 +f 15985//14726 15986//14727 15978//14719 15977//14718 +f 15982//14723 15985//14726 15977//14718 15964//14705 +f 15985//14726 15982//14723 15984//14725 15987//14728 +f 15986//14727 15985//14726 15987//14728 15988//14729 +f 15989//14730 15990//14731 15988//14729 15987//14728 +f 15991//14732 15989//14730 15987//14728 15984//14725 +f 15989//14730 15991//14732 15992//14733 15993//14734 +f 15990//14731 15989//14730 15993//14734 15994//14735 +f 15995//14736 15991//14732 15984//14725 15983//14724 +f 15996//14737 15995//14736 15983//14724 15972//14713 +f 15995//14736 15996//14737 15997//14738 15998//14739 +f 15991//14732 15995//14736 15998//14739 15992//14733 +f 15999//14740 16000//14741 15992//14733 15998//14739 +f 16001//14742 15999//14740 15998//14739 15997//14738 +f 15999//14740 16001//14742 16002//14743 16003//14744 +f 16000//14741 15999//14740 16003//14744 16004//14745 +f 16005//14746 16006//14747 16007//14748 16008//14749 +f 15996//14737 16005//14746 16008//14749 15997//14738 +f 16005//14746 15996//14737 15972//14713 15971//14712 +f 16006//14747 16005//14746 15971//14712 15968//14709 +f 16009//14750 16010//14751 16011//14752 16012//14753 +f 16001//14742 16009//14750 16012//14753 16002//14743 +f 16009//14750 16001//14742 15997//14738 16008//14749 +f 16010//14751 16009//14750 16008//14749 16007//14748 +f 16013//14754 16014//14755 16015//14756 16016//14757 +f 16006//14747 16013//14754 16016//14757 16007//14748 +f 16013//14754 16006//14747 15968//14709 15967//14708 +f 16014//14755 16013//14754 15967//14708 15960//14701 +f 16017//14758 16018//14759 16019//14760 16020//14761 +f 16010//14751 16017//14758 16020//14761 16011//14752 +f 16017//14758 16010//14751 16007//14748 16016//14757 +f 16018//14759 16017//14758 16016//14757 16015//14756 +f 16021//14762 16022//14763 16023//14764 16024//14765 +f 16014//14755 16021//14762 16024//14765 16015//14756 +f 16021//14762 16014//14755 15960//14701 15959//14700 +f 16022//14763 16021//14762 15959//14700 15958//14699 +f 16025//14766 16026//14767 16027//14768 16028//14769 +f 16018//14759 16025//14766 16028//14769 16019//14760 +f 16025//14766 16018//14759 16015//14756 16024//14765 +f 16026//14767 16025//14766 16024//14765 16023//14764 +f 16029//14770 16030//14771 16011//14752 16020//14761 +f 16031//14772 16029//14770 16020//14761 16019//14760 +f 16029//14770 16031//14772 16032//14773 16033//14774 +f 16030//14771 16029//14770 16033//14774 16034//14775 +f 16035//14776 16031//14772 16019//14760 16028//14769 +f 16036//14777 16035//14776 16028//14769 16027//14768 +f 16035//14776 16036//14777 16037//14778 16038//14779 +f 16031//14772 16035//14776 16038//14779 16032//14773 +f 16039//14780 16040//14781 16041//14782 16042//14783 +f 16026//14767 16039//14780 16042//14783 16027//14768 +f 16039//14780 16026//14767 16023//14764 16043//14784 +f 16040//14781 16039//14780 16043//14784 16044//14785 +f 16045//14786 16046//14787 16002//14743 16012//14753 +f 16030//14771 16045//14786 16012//14753 16011//14752 +f 16045//14786 16030//14771 16034//14775 16047//14788 +f 16046//14787 16045//14786 16047//14788 16048//14789 +f 16049//14790 16036//14777 16027//14768 16042//14783 +f 16050//14791 16049//14790 16042//14783 16041//14782 +f 16049//14790 16050//14791 16051//14792 16052//14793 +f 16036//14777 16049//14790 16052//14793 16037//14778 +f 16053//14794 16054//14795 16004//14745 16003//14744 +f 16046//14787 16053//14794 16003//14744 16002//14743 +f 16053//14794 16046//14787 16048//14789 16055//14796 +f 16054//14795 16053//14794 16055//14796 16056//14797 +f 16057//14798 16000//14741 16004//14745 16058//14799 +f 16059//14800 16057//14798 16058//14799 16060//14801 +f 16057//14798 16059//14800 15994//14735 15993//14734 +f 16000//14741 16057//14798 15993//14734 15992//14733 +f 16061//14802 16062//14803 16060//14801 16058//14799 +f 16054//14795 16061//14802 16058//14799 16004//14745 +f 16061//14802 16054//14795 16056//14797 16063//14804 +f 16062//14803 16061//14802 16063//14804 16064//14805 +f 16065//14806 16066//14807 16048//14789 16047//14788 +f 16067//14808 16065//14806 16047//14788 16034//14775 +f 16065//14806 16067//14808 16068//14809 16069//14810 +f 16066//14807 16065//14806 16069//14810 16070//14811 +f 16071//14812 16072//14813 16064//14805 16063//14804 +f 16073//14814 16071//14812 16063//14804 16056//14797 +f 16071//14812 16073//14814 16074//14815 16075//14816 +f 16072//14813 16071//14812 16075//14816 16076//14817 +f 16077//14818 16073//14814 16056//14797 16055//14796 +f 16066//14807 16077//14818 16055//14796 16048//14789 +f 16077//14818 16066//14807 16070//14811 16078//14819 +f 16073//14814 16077//14818 16078//14819 16074//14815 +f 16079//14820 16080//14821 16076//14817 16075//14816 +f 16081//14822 16079//14820 16075//14816 16074//14815 +f 16079//14820 16081//14822 15271//14012 15270//14011 +f 16080//14821 16079//14820 15270//14011 15269//14010 +f 16082//14823 16081//14822 16074//14815 16078//14819 +f 16083//14824 16082//14823 16078//14819 16070//14811 +f 16082//14823 16083//14824 16084//14825 16085//14826 +f 16081//14822 16082//14823 16085//14826 15271//14012 +f 16086//14827 16083//14824 16070//14811 16069//14810 +f 16087//14828 16086//14827 16069//14810 16068//14809 +f 16086//14827 16087//14828 16088//14829 16089//14830 +f 16083//14824 16086//14827 16089//14830 16084//14825 +f 16090//14831 15264//14005 15271//14012 16085//14826 +f 16091//14832 16090//14831 16085//14826 16084//14825 +f 16090//14831 16091//14832 16092//14833 16093//14834 +f 15264//14005 16090//14831 16093//14834 15265//14006 +f 16094//14835 16091//14832 16084//14825 16089//14830 +f 16095//14836 16094//14835 16089//14830 16088//14829 +f 16094//14835 16095//14836 16096//14837 16097//14838 +f 16091//14832 16094//14835 16097//14838 16092//14833 +f 16098//14839 16099//14840 16100//14841 16101//14842 +f 16102//14843 16098//14839 16101//14842 16103//14844 +f 16098//14839 16102//14843 15265//14006 16093//14834 +f 16099//14840 16098//14839 16093//14834 16092//14833 +f 16104//14845 16105//14846 15268//14009 15266//14007 +f 16102//14843 16104//14845 15266//14007 15265//14006 +f 16104//14845 16102//14843 16103//14844 16106//14847 +f 16105//14846 16104//14845 16106//14847 16107//14848 +f 16108//14849 16109//14850 16110//14851 16111//14852 +f 16099//14840 16108//14849 16111//14852 16100//14841 +f 16108//14849 16099//14840 16092//14833 16097//14838 +f 16109//14850 16108//14849 16097//14838 16096//14837 +f 16112//14853 16113//14854 16100//14841 16111//14852 +f 16114//14855 16112//14853 16111//14852 16110//14851 +f 16112//14853 16114//14855 16115//14856 16116//14857 +f 16113//14854 16112//14853 16116//14857 16117//14858 +f 16118//14859 16119//14860 16120//14861 16121//14862 +f 16114//14855 16118//14859 16121//14862 16115//14856 +f 16118//14859 16114//14855 16110//14851 16122//14863 +f 16119//14860 16118//14859 16122//14863 16123//14864 +f 16124//14865 16125//14866 16123//14864 16122//14863 +f 16109//14850 16124//14865 16122//14863 16110//14851 +f 16124//14865 16109//14850 16096//14837 16126//14867 +f 16125//14866 16124//14865 16126//14867 16127//14868 +f 16128//14869 16129//14870 16127//14868 16126//14867 +f 16095//14836 16128//14869 16126//14867 16096//14837 +f 16128//14869 16095//14836 16088//14829 16130//14871 +f 16129//14870 16128//14869 16130//14871 16131//14872 +f 16132//14873 16133//14874 16134//14875 16135//14876 +f 16119//14860 16132//14873 16135//14876 16120//14861 +f 16132//14873 16119//14860 16123//14864 16136//14877 +f 16133//14874 16132//14873 16136//14877 16137//14878 +f 16138//14879 16139//14880 16131//14872 16130//14871 +f 16087//14828 16138//14879 16130//14871 16088//14829 +f 16138//14879 16087//14828 16068//14809 16140//14881 +f 16139//14880 16138//14879 16140//14881 16141//14882 +f 16142//14883 16143//14884 16137//14878 16136//14877 +f 16125//14866 16142//14883 16136//14877 16123//14864 +f 16142//14883 16125//14866 16127//14868 16144//14885 +f 16143//14884 16142//14883 16144//14885 16145//14886 +f 16146//14887 16147//14888 16145//14886 16144//14885 +f 16129//14870 16146//14887 16144//14885 16127//14868 +f 16146//14887 16129//14870 16131//14872 16148//14889 +f 16147//14888 16146//14887 16148//14889 16149//14890 +f 16150//14891 16151//14892 16141//14882 16140//14881 +f 16067//14808 16150//14891 16140//14881 16068//14809 +f 16150//14891 16067//14808 16034//14775 16033//14774 +f 16151//14892 16150//14891 16033//14774 16032//14773 +f 16152//14893 16153//14894 16149//14890 16148//14889 +f 16139//14880 16152//14893 16148//14889 16131//14872 +f 16152//14893 16139//14880 16141//14882 16154//14895 +f 16153//14894 16152//14893 16154//14895 16155//14896 +f 16156//14897 16157//14898 16155//14896 16154//14895 +f 16151//14892 16156//14897 16154//14895 16141//14882 +f 16156//14897 16151//14892 16032//14773 16038//14779 +f 16157//14898 16156//14897 16038//14779 16037//14778 +f 16158//14899 16159//14900 16160//14901 16161//14902 +f 16147//14888 16158//14899 16161//14902 16145//14886 +f 16158//14899 16147//14888 16149//14890 16162//14903 +f 16159//14900 16158//14899 16162//14903 16163//14904 +f 16164//11470 16165//14905 16166//14906 16167//14907 +f 16157//14898 16164//11470 16167//14907 16155//14896 +f 16164//11470 16157//14898 16037//14778 16052//14793 +f 16165//14905 16164//11470 16052//14793 16051//14792 +f 16168//14908 16169//14909 16163//14904 16162//14903 +f 16153//14894 16168//14908 16162//14903 16149//14890 +f 16168//14908 16153//14894 16155//14896 16167//14907 +f 16169//14909 16168//14908 16167//14907 16166//14906 +f 16170//14910 16171//14911 16166//14906 16165//14905 +f 16172//14912 16170//14910 16165//14905 16051//14792 +f 16170//14910 16172//14912 16173//14913 16174//14914 +f 16171//14911 16170//14910 16174//14914 16175//14915 +f 16176//14916 16177//14917 16163//14904 16169//14909 +f 16171//14911 16176//14916 16169//14909 16166//14906 +f 16176//14916 16171//14911 16175//14915 16178//14918 +f 16177//14917 16176//14916 16178//14918 16179//14919 +f 16180//14920 16181//14921 16160//14901 16159//14900 +f 16177//14917 16180//14920 16159//14900 16163//14904 +f 16180//14920 16177//14917 16179//14919 16182//14922 +f 16181//14921 16180//14920 16182//14922 16183//14923 +f 16184//14924 16143//14884 16145//14886 16161//14902 +f 16185//14925 16184//14924 16161//14902 16160//14901 +f 16184//14924 16185//14925 16186//14926 16187//14927 +f 16143//14884 16184//14924 16187//14927 16137//14878 +f 16188//14928 16189//14929 16186//14926 16185//14925 +f 16181//14921 16188//14928 16185//14925 16160//14901 +f 16188//14928 16181//14921 16183//14923 16190//14930 +f 16189//14929 16188//14928 16190//14930 16191//14931 +f 16192//14932 16133//14874 16137//14878 16187//14927 +f 16193//14933 16192//14932 16187//14927 16186//14926 +f 16192//14932 16193//14933 16194//14934 16195//14935 +f 16133//14874 16192//14932 16195//14935 16134//14875 +f 16196//14936 16197//14937 16194//14934 16193//14933 +f 16189//14929 16196//14936 16193//14933 16186//14926 +f 16196//14936 16189//14929 16191//14931 16198//14938 +f 16197//14937 16196//14936 16198//14938 16199//14939 +f 16200//14940 16201//14941 16183//14923 16182//14922 +f 16202//14942 16200//14940 16182//14922 16179//14919 +f 16200//14940 16202//14942 16203//14943 16204//14944 +f 16201//14941 16200//14940 16204//14944 16205//14945 +f 16206//14946 16207//14947 16134//14875 16195//14935 +f 16208//14948 16206//14946 16195//14935 16194//14934 +f 16206//14946 16208//14948 16209//14949 16210//14950 +f 16207//14947 16206//14946 16210//14950 16211//14951 +f 16212//14952 16213//14953 16191//14931 16190//14930 +f 16201//14941 16212//14952 16190//14930 16183//14923 +f 16212//14952 16201//14941 16205//14945 16214//14954 +f 16213//14953 16212//14952 16214//14954 16215//14955 +f 16216//14956 16217//14957 16209//14949 16208//14948 +f 16197//14937 16216//14956 16208//14948 16194//14934 +f 16216//14956 16197//14937 16199//14939 16218//14958 +f 16217//14957 16216//14956 16218//14958 16219//14959 +f 16220//14960 16221//14961 16199//14939 16198//14938 +f 16213//14953 16220//14960 16198//14938 16191//14931 +f 16220//14960 16213//14953 16215//14955 16222//14962 +f 16221//14961 16220//14960 16222//14962 16223//14963 +f 16224//14964 16225//14965 16120//14861 16135//14876 +f 16207//14947 16224//14964 16135//14876 16134//14875 +f 16224//14964 16207//14947 16211//14951 16226//14966 +f 16225//14965 16224//14964 16226//14966 16227//14967 +f 16228//14968 16229//14969 16115//14856 16121//14862 +f 16225//14965 16228//14968 16121//14862 16120//14861 +f 16228//14968 16225//14965 16227//14967 16230//14970 +f 16229//14969 16228//14968 16230//14970 16231//14971 +f 16232//14972 16233//14973 16211//14951 16210//14950 +f 16234//14974 16232//14972 16210//14950 16209//14949 +f 16232//14972 16234//14974 16235//14975 16236//14976 +f 16233//14973 16232//14972 16236//14976 16237//14977 +f 16238//14978 16239//14979 16235//14975 16234//14974 +f 16217//14957 16238//14978 16234//14974 16209//14949 +f 16238//14978 16217//14957 16219//14959 16240//14980 +f 16239//14979 16238//14978 16240//14980 16241//14981 +f 16242//14982 16243//14983 16227//14967 16226//14966 +f 16233//14973 16242//14982 16226//14966 16211//14951 +f 16242//14982 16233//14973 16237//14977 16244//14984 +f 16243//14983 16242//14982 16244//14984 16245//14985 +f 16246//14986 16247//14987 16241//14981 16240//14980 +f 16248//14988 16246//14986 16240//14980 16219//14959 +f 16246//14986 16248//14988 16249//14989 16250//14990 +f 16247//14987 16246//14986 16250//14990 16251//14991 +f 16252//14992 16253//14993 16231//14971 16230//14970 +f 16243//14983 16252//14992 16230//14970 16227//14967 +f 16252//14992 16243//14983 16245//14985 16254//14994 +f 16253//14993 16252//14992 16254//14994 16255//14995 +f 16256//14996 16257//14997 16117//14858 16116//14857 +f 16229//14969 16256//14996 16116//14857 16115//14856 +f 16256//14996 16229//14969 16231//14971 16258//14998 +f 16257//14997 16256//14996 16258//14998 16259//14999 +f 16260//15000 16261//15001 16259//14999 16258//14998 +f 16253//14993 16260//15000 16258//14998 16231//14971 +f 16260//15000 16253//14993 16255//14995 16262//15002 +f 16261//15001 16260//15000 16262//15002 16263//15003 +f 16264//15004 15273//14014 15280//14021 16265//15005 +f 16261//15001 16264//15004 16265//15005 16259//14999 +f 16264//15004 16261//15001 16263//15003 16266//15006 +f 15273//14014 16264//15004 16266//15006 15274//14015 +f 16267//15007 16268//15008 16269//15009 16270//15010 +f 16257//14997 16267//15007 16270//15010 16117//14858 +f 16267//15007 16257//14997 16259//14999 16265//15005 +f 16268//15008 16267//15007 16265//15005 15280//14021 +f 16271//15011 16272//15012 16273//15013 16274//15014 +f 16268//15008 16271//15011 16274//15014 16269//15009 +f 16271//15011 16268//15008 15280//14021 15279//14020 +f 16272//15012 16271//15011 15279//14020 15278//14019 +f 16275//15015 16276//15016 16251//14991 16250//14990 +f 16277//15017 16275//15015 16250//14990 16249//14989 +f 16275//15015 16277//15017 16278//15018 16279//15019 +f 16276//15016 16275//15015 16279//15019 16280//15020 +f 16281//15021 16221//14961 16223//14963 16282//15022 +f 16248//14988 16281//15021 16282//15022 16249//14989 +f 16281//15021 16248//14988 16219//14959 16218//14958 +f 16221//14961 16281//15021 16218//14958 16199//14939 +f 16283//15023 16277//15017 16249//14989 16282//15022 +f 16284//15024 16283//15023 16282//15022 16223//14963 +f 16283//15023 16284//15024 16285//15025 16286//15026 +f 16277//15017 16283//15023 16286//15026 16278//15018 +f 16287//15027 16284//15024 16223//14963 16222//14962 +f 16288//15028 16287//15027 16222//14962 16215//14955 +f 16287//15027 16288//15028 16289//15029 16290//15030 +f 16284//15024 16287//15027 16290//15030 16285//15025 +f 16291//15031 16292//15032 16280//15020 16279//15019 +f 16293//15033 16291//15031 16279//15019 16278//15018 +f 16291//15031 16293//15033 16294//15034 16295//15035 +f 16292//15032 16291//15031 16295//15035 16296//15036 +f 16297//15037 16293//15033 16278//15018 16286//15026 +f 16298//15038 16297//15037 16286//15026 16285//15025 +f 16297//15037 16298//15038 16299//15039 16300//15040 +f 16293//15033 16297//15037 16300//15040 16294//15034 +f 16301//15041 16302//15042 16296//15036 16295//15035 +f 16303//15043 16301//15041 16295//15035 16294//15034 +f 16301//15041 16303//15043 16304//15044 16305//15045 +f 16302//15042 16301//15041 16305//15045 16306//15046 +f 16307//15047 16303//15043 16294//15034 16300//15040 +f 16308//15048 16307//15047 16300//15040 16299//15039 +f 16307//15047 16308//15048 16309//15049 16310//15050 +f 16303//15043 16307//15047 16310//15050 16304//15044 +f 16311//15051 16312//15052 16313//15053 16314//15054 +f 16298//15038 16311//15051 16314//15054 16299//15039 +f 16311//15051 16298//15038 16285//15025 16290//15030 +f 16312//15052 16311//15051 16290//15030 16289//15029 +f 16315//15055 16316//15056 16317//15057 16318//15058 +f 16308//15048 16315//15055 16318//15058 16309//15049 +f 16315//15055 16308//15048 16299//15039 16314//15054 +f 16316//15056 16315//15055 16314//15054 16313//15053 +f 16319//15059 16320//15060 16306//15046 16305//15045 +f 16321//15061 16319//15059 16305//15045 16304//15044 +f 16319//15059 16321//15061 16322//15062 16323//15063 +f 16320//15060 16319//15059 16323//15063 16324//15064 +f 16325//15065 16321//15061 16304//15044 16310//15050 +f 16326//15066 16325//15065 16310//15050 16309//15049 +f 16325//15065 16326//15066 16327//15067 16328//15068 +f 16321//15061 16325//15065 16328//15068 16322//15062 +f 16329//15069 16330//15070 16324//15064 16323//15063 +f 16331//15071 16329//15069 16323//15063 16322//15062 +f 16329//15069 16331//15071 16332//15072 16333//15073 +f 16330//15070 16329//15069 16333//15073 16334//15074 +f 16335//15075 16331//15071 16322//15062 16328//15068 +f 16336//15076 16335//15075 16328//15068 16327//15067 +f 16335//15075 16336//15076 16337//15077 16338//15078 +f 16331//15071 16335//15075 16338//15078 16332//15072 +f 16339//15079 16340//15080 16341//15081 16342//15082 +f 16326//15066 16339//15079 16342//15082 16327//15067 +f 16339//15079 16326//15066 16309//15049 16318//15058 +f 16340//15080 16339//15079 16318//15058 16317//15057 +f 16343//15083 16344//15084 16345//15085 16346//15086 +f 16336//15076 16343//15083 16346//15086 16337//15077 +f 16343//15083 16336//15076 16327//15067 16342//15082 +f 16344//15084 16343//15083 16342//15082 16341//15081 +f 16347//15087 16348//15088 16334//15074 16333//15073 +f 16349//15089 16347//15087 16333//15073 16332//15072 +f 16347//15087 16349//15089 16350//15090 16351//15091 +f 16348//15088 16347//15087 16351//15091 16352//15092 +f 16353//15093 16349//15089 16332//15072 16338//15078 +f 16354//15094 16353//15093 16338//15078 16337//15077 +f 16353//15093 16354//15094 16355//15095 16356//15096 +f 16349//15089 16353//15093 16356//15096 16350//15090 +f 16357//15097 16358//15098 16352//15092 16351//15091 +f 16359//15099 16357//15097 16351//15091 16350//15090 +f 16357//15097 16359//15099 16360//15100 16361//15101 +f 16358//15098 16357//15097 16361//15101 16362//15102 +f 16363//15103 16364//15104 16365//15105 16366//15106 +f 16361//15101 16363//15103 16366//15106 16362//15102 +f 16363//15103 16361//15101 16360//15100 16367//15107 +f 16364//15104 16363//15103 16367//15107 16368//15108 +f 16369//15109 16370//15110 16371//15111 16372//15112 +f 16359//15099 16369//15109 16372//15112 16360//15100 +f 16369//15109 16359//15099 16350//15090 16356//15096 +f 16370//15110 16369//15109 16356//15096 16355//15095 +f 16373//15113 16374//15114 16368//15108 16367//15107 +f 16372//15112 16373//15113 16367//15107 16360//15100 +f 16373//15113 16372//15112 16371//15111 16375//15115 +f 16374//15114 16373//15113 16375//15115 16376//15116 +f 16377//15117 16378//15118 16379//15119 16380//15120 +f 16364//15104 16377//15117 16380//15120 16365//15105 +f 16377//15117 16364//15104 16368//15108 16381//15121 +f 16378//15118 16377//15117 16381//15121 16382//15122 +f 16383//15123 16384//15124 16385//15125 16386//15126 +f 16370//15110 16383//15123 16386//15126 16371//15111 +f 16383//15123 16370//15110 16355//15095 16387//15127 +f 16384//15124 16383//15123 16387//15127 16388//15128 +f 16389//15129 16390//15130 16391//15131 16392//15132 +f 16378//15118 16389//15129 16392//15132 16379//15119 +f 16389//15129 16378//15118 16382//15122 16393//15133 +f 16390//15130 16389//15129 16393//15133 16394//15134 +f 16395//15135 16396//15136 16382//15122 16381//15121 +f 16374//15114 16395//15135 16381//15121 16368//15108 +f 16395//15135 16374//15114 16376//15116 16397//15137 +f 16396//15136 16395//15135 16397//15137 16398//15138 +f 16399//15139 16400//15140 16376//15116 16375//15115 +f 16386//15126 16399//15139 16375//15115 16371//15111 +f 16399//15139 16386//15126 16385//15125 16401//15141 +f 16400//15140 16399//15139 16401//15141 16402//15142 +f 16403//15143 16404//15144 16405//15145 16406//15146 +f 16390//15130 16403//15143 16406//15146 16391//15131 +f 16403//15143 16390//15130 16394//15134 16407//15147 +f 16404//15144 16403//15143 16407//15147 16408//15148 +f 16409//15149 16410//15150 16394//15134 16393//15133 +f 16396//15136 16409//15149 16393//15133 16382//15122 +f 16409//15149 16396//15136 16398//15138 16411//15151 +f 16410//15150 16409//15149 16411//15151 16412//15152 +f 16413//15153 15249//13990 15250//13991 16414//15154 +f 16404//15144 16413//15153 16414//15154 16405//15145 +f 16413//15153 16404//15144 16408//15148 16415//15155 +f 15249//13990 16413//15153 16415//15155 15251//13992 +f 16416//15156 16417//15157 16408//15148 16407//15147 +f 16410//15150 16416//15156 16407//15147 16394//15134 +f 16416//15156 16410//15150 16412//15152 16418//15158 +f 16417//15157 16416//15156 16418//15158 16419//15159 +f 16420//15160 16421//15161 15251//13992 16415//15155 +f 16417//15157 16420//15160 16415//15155 16408//15148 +f 16420//15160 16417//15157 16419//15159 16422//15162 +f 16421//15161 16420//15160 16422//15162 16423//15163 +f 16424//15164 16425//15165 15253//13994 15252//13993 +f 16421//15161 16424//15164 15252//13993 15251//13992 +f 16424//15164 16421//15161 16423//15163 16426//15166 +f 16425//15165 16424//15164 16426//15166 16427//15167 +f 16428//15168 16429//15169 16419//15159 16418//15158 +f 16430//15170 16428//15168 16418//15158 16412//15152 +f 16428//15168 16430//15170 16431//15171 16432//15172 +f 16429//15169 16428//15168 16432//15172 16433//15173 +f 16434//15174 16435//15175 16436//15176 16437//15177 +f 16430//15170 16434//15174 16437//15177 16431//15171 +f 16434//15174 16430//15170 16412//15152 16411//15151 +f 16435//15175 16434//15174 16411//15151 16398//15138 +f 16438//15178 16439//15179 16433//15173 16432//15172 +f 16440//15180 16438//15178 16432//15172 16431//15171 +f 16438//15178 16440//15180 16441//15181 16442//15182 +f 16439//15179 16438//15178 16442//15182 16443//15183 +f 16444//15184 16440//15180 16431//15171 16437//15177 +f 16445//15185 16444//15184 16437//15177 16436//15176 +f 16444//15184 16445//15185 16446//15186 16447//15187 +f 16440//15180 16444//15184 16447//15187 16441//15181 +f 16448//15188 16449//15189 16450//15190 16451//15191 +f 16439//15179 16448//15188 16451//15191 16433//15173 +f 16448//15188 16439//15179 16443//15183 16452//15192 +f 16449//15189 16448//15188 16452//15192 16453//15193 +f 16454//15194 16455//15195 16453//15193 16452//15192 +f 16456//15196 16454//15194 16452//15192 16443//15183 +f 16454//15194 16456//15196 16457//15197 16458//15198 +f 16455//15195 16454//15194 16458//15198 16459//15199 +f 16460//15200 16456//15196 16443//15183 16442//15182 +f 16461//15201 16460//15200 16442//15182 16441//15181 +f 16460//15200 16461//15201 16462//15202 16463//15203 +f 16456//15196 16460//15200 16463//15203 16457//15197 +f 16464//15204 16465//15205 16466//15206 16467//15207 +f 16468//15208 16464//15204 16467//15207 16469//15209 +f 16464//15204 16468//15208 16459//15199 16458//15198 +f 16465//15205 16464//15204 16458//15198 16457//15197 +f 16470//15210 16471//15211 16472//15212 16473//15213 +f 16461//15201 16470//15210 16473//15213 16462//15202 +f 16470//15210 16461//15201 16441//15181 16447//15187 +f 16471//15211 16470//15210 16447//15187 16446//15186 +f 16474//15214 16465//15205 16457//15197 16463//15203 +f 16475//15215 16474//15214 16463//15203 16462//15202 +f 16474//15214 16475//15215 16476//15216 16477//15217 +f 16465//15205 16474//15214 16477//15217 16466//15206 +f 16478//15218 16475//15215 16462//15202 16473//15213 +f 16479//15219 16478//15218 16473//15213 16472//15212 +f 16478//15218 16479//15219 16480//15220 16481//15221 +f 16475//15215 16478//15218 16481//15221 16476//15216 +f 16482//15222 16483//15223 16484//15224 16485//15225 +f 16471//15211 16482//15222 16485//15225 16472//15212 +f 16482//15222 16471//15211 16446//15186 16486//15226 +f 16483//15223 16482//15222 16486//15226 16487//15227 +f 16488//15228 16489//15229 16490//15230 16491//15231 +f 16479//15219 16488//15228 16491//15231 16480//15220 +f 16488//15228 16479//15219 16472//15212 16485//15225 +f 16489//15229 16488//15228 16485//15225 16484//15224 +f 16492//15232 16493//15233 16476//15216 16481//15221 +f 16494//15234 16492//15232 16481//15221 16480//15220 +f 16492//15232 16494//15234 16495//15235 16496//15236 +f 16493//15233 16492//15232 16496//15236 16497//15237 +f 16498//15238 16499//15239 16487//15227 16486//15226 +f 16445//15185 16498//15238 16486//15226 16446//15186 +f 16498//15238 16445//15185 16436//15176 16500//15240 +f 16499//15239 16498//15238 16500//15240 16402//15142 +f 16501//15241 16502//15242 16466//15206 16477//15217 +f 16493//15233 16501//15241 16477//15217 16476//15216 +f 16501//15241 16493//15233 16497//15237 16503//15243 +f 16502//15242 16501//15241 16503//15243 16504//15244 +f 16505//15245 16506//15246 16469//15209 16467//15207 +f 16502//15242 16505//15245 16467//15207 16466//15206 +f 16505//15245 16502//15242 16504//15244 16507//15247 +f 16506//15246 16505//15245 16507//15247 16508//15248 +f 16509//15249 16510//15250 16511//15251 16512//15252 +f 16494//15234 16509//15249 16512//15252 16495//15235 +f 16509//15249 16494//15234 16480//15220 16491//15231 +f 16510//15250 16509//15249 16491//15231 16490//15230 +f 16513//15253 16514//15254 16497//15237 16496//15236 +f 16515//15255 16513//15253 16496//15236 16495//15235 +f 16513//15253 16515//15255 16516//15256 16517//15257 +f 16514//15254 16513//15253 16517//15257 16518//15258 +f 16519//15259 16515//15255 16495//15235 16512//15252 +f 16520//15260 16519//15259 16512//15252 16511//15251 +f 16519//15259 16520//15260 16521//15261 16522//15262 +f 16515//15255 16519//15259 16522//15262 16516//15256 +f 16523//15263 16524//15264 16504//15244 16503//15243 +f 16514//15254 16523//15263 16503//15243 16497//15237 +f 16523//15263 16514//15254 16518//15258 16525//15265 +f 16524//15264 16523//15263 16525//15265 16526//15266 +f 16527//15267 16528//15268 16529//15269 16530//15270 +f 16506//15246 16527//15267 16530//15270 16469//15209 +f 16527//15267 16506//15246 16508//15248 16531//15271 +f 16528//15268 16527//15267 16531//15271 16532//15272 +f 16533//15273 16468//15208 16469//15209 16530//15270 +f 16534//15274 16533//15273 16530//15270 16529//15269 +f 16533//15273 16534//15274 16535//15275 16536//15276 +f 16468//15208 16533//15273 16536//15276 16459//15199 +f 16537//15277 16538//15278 16508//15248 16507//15247 +f 16524//15264 16537//15277 16507//15247 16504//15244 +f 16537//15277 16524//15264 16526//15266 16539//15279 +f 16538//15278 16537//15277 16539//15279 16540//15280 +f 16541//15281 16542//15282 16540//15280 16539//15279 +f 16543//15283 16541//15281 16539//15279 16526//15266 +f 16541//15281 16543//15283 16544//15284 16545//15285 +f 16542//15282 16541//15281 16545//15285 16546//15286 +f 16547//15287 16543//15283 16526//15266 16525//15265 +f 16548//15288 16547//15287 16525//15265 16518//15258 +f 16547//15287 16548//15288 16549//15289 16550//15290 +f 16543//15283 16547//15287 16550//15290 16544//15284 +f 16551//15291 16552//15292 16553//15293 16554//15294 +f 16548//15288 16551//15291 16554//15294 16549//15289 +f 16551//15291 16548//15288 16518//15258 16517//15257 +f 16552//15292 16551//15291 16517//15257 16516//15256 +f 16555//15295 16556//15296 16544//15284 16550//15290 +f 16557//15297 16555//15295 16550//15290 16549//15289 +f 16555//15295 16557//15297 16558//15298 16559//15299 +f 16556//15296 16555//15295 16559//15299 16560//15300 +f 16561//15301 16562//15302 16563//15303 16564//15304 +f 16552//15292 16561//15301 16564//15304 16553//15293 +f 16561//15301 16552//15292 16516//15256 16522//15262 +f 16562//15302 16561//15301 16522//15262 16521//15261 +f 16565//15305 16557//15297 16549//15289 16554//15294 +f 16566//15306 16565//15305 16554//15294 16553//15293 +f 16565//15305 16566//15306 16567//15307 16568//15308 +f 16557//15297 16565//15305 16568//15308 16558//15298 +f 16569//15309 16566//15306 16553//15293 16564//15304 +f 16570//15310 16569//15309 16564//15304 16563//15303 +f 16569//15309 16570//15310 16571//15311 16572//15312 +f 16566//15306 16569//15309 16572//15312 16567//15307 +f 16573//15313 16574//15314 16575//15315 16576//15316 +f 16562//15302 16573//15313 16576//15316 16563//15303 +f 16573//15313 16562//15302 16521//15261 16577//15317 +f 16574//15314 16573//15313 16577//15317 16578//15318 +f 16579//15319 16580//15320 16581//15321 16582//15322 +f 16570//15310 16579//15319 16582//15322 16571//15311 +f 16579//15319 16570//15310 16563//15303 16576//15316 +f 16580//15320 16579//15319 16576//15316 16575//15315 +f 16583//15323 16584//15324 16567//15307 16572//15312 +f 16585//15325 16583//15323 16572//15312 16571//15311 +f 16583//15323 16585//15325 16586//15326 16587//15327 +f 16584//15324 16583//15323 16587//15327 16588//15328 +f 16589//15329 16590//15330 16578//15318 16577//15317 +f 16520//15260 16589//15329 16577//15317 16521//15261 +f 16589//15329 16520//15260 16511//15251 16591//15331 +f 16590//15330 16589//15329 16591//15331 16592//15332 +f 16593//15333 16594//15334 16558//15298 16568//15308 +f 16584//15324 16593//15333 16568//15308 16567//15307 +f 16593//15333 16584//15324 16588//15328 16595//15335 +f 16594//15334 16593//15333 16595//15335 16596//15336 +f 16597//15337 16598//15338 16592//15332 16591//15331 +f 16510//15250 16597//15337 16591//15331 16511//15251 +f 16597//15337 16510//15250 16490//15230 16599//15339 +f 16598//15338 16597//15337 16599//15339 16600//15340 +f 16601//15341 16602//15342 16575//15315 16574//15314 +f 16603//15343 16601//15341 16574//15314 16578//15318 +f 16601//15341 16603//15343 16604//15344 16605//15345 +f 16602//15342 16601//15341 16605//15345 16606//15346 +f 16607//15347 16608//15348 16600//15340 16599//15339 +f 16489//15229 16607//15347 16599//15339 16490//15230 +f 16607//15347 16489//15229 16484//15224 16609//15349 +f 16608//15348 16607//15347 16609//15349 16610//15350 +f 16611//15351 16603//15343 16578//15318 16590//15330 +f 16612//15352 16611//15351 16590//15330 16592//15332 +f 16611//15351 16612//15352 16613//15353 16614//15354 +f 16603//15343 16611//15351 16614//15354 16604//15344 +f 16615//15355 16612//15352 16592//15332 16598//15338 +f 16616//15356 16615//15355 16598//15338 16600//15340 +f 16615//15355 16616//15356 16617//15357 16618//15358 +f 16612//15352 16615//15355 16618//15358 16613//15353 +f 16619//15359 16620//15360 16610//15350 16609//15349 +f 16483//15223 16619//15359 16609//15349 16484//15224 +f 16619//15359 16483//15223 16487//15227 16621//15361 +f 16620//15360 16619//15359 16621//15361 16622//15362 +f 16623//15363 16624//15364 16625//15365 16626//15366 +f 16616//15356 16623//15363 16626//15366 16617//15357 +f 16623//15363 16616//15356 16600//15340 16608//15348 +f 16624//15364 16623//15363 16608//15348 16610//15350 +f 16627//15367 16628//15368 16613//15353 16618//15358 +f 16629//15369 16627//15367 16618//15358 16617//15357 +f 16627//15367 16629//15369 16630//15370 16631//15371 +f 16628//15368 16627//15367 16631//15371 16632//15372 +f 16633//15373 16629//15369 16617//15357 16626//15366 +f 16634//15374 16633//15373 16626//15366 16625//15365 +f 16633//15373 16634//15374 16635//15375 16636//15376 +f 16629//15369 16633//15373 16636//15376 16630//15370 +f 16637//15377 16638//15378 16639//15379 16640//15380 +f 16624//15364 16637//15377 16640//15380 16625//15365 +f 16637//15377 16624//15364 16610//15350 16620//15360 +f 16638//15378 16637//15377 16620//15360 16622//15362 +f 16641//15381 16642//15382 16604//15344 16614//15354 +f 16628//15368 16641//15381 16614//15354 16613//15353 +f 16641//15381 16628//15368 16632//15372 16643//15383 +f 16642//15382 16641//15381 16643//15383 16644//15384 +f 16645//15385 16634//15374 16625//15365 16640//15380 +f 16646//15386 16645//15385 16640//15380 16639//15379 +f 16645//15385 16646//15386 16647//15387 16648//15388 +f 16634//15374 16645//15385 16648//15388 16635//15375 +f 16649//15389 16650//15390 16345//15085 16651//15391 +f 16646//15386 16649//15389 16651//15391 16647//15387 +f 16649//15389 16646//15386 16639//15379 16652//15392 +f 16650//15390 16649//15389 16652//15392 16388//15128 +f 16653//15393 16654//15394 16622//15362 16621//15361 +f 16499//15239 16653//15393 16621//15361 16487//15227 +f 16653//15393 16499//15239 16402//15142 16401//15141 +f 16654//15394 16653//15393 16401//15141 16385//15125 +f 16655//15395 16400//15140 16402//15142 16500//15240 +f 16435//15175 16655//15395 16500//15240 16436//15176 +f 16655//15395 16435//15175 16398//15138 16397//15137 +f 16400//15140 16655//15395 16397//15137 16376//15116 +f 16656//15396 16638//15378 16622//15362 16654//15394 +f 16384//15124 16656//15396 16654//15394 16385//15125 +f 16656//15396 16384//15124 16388//15128 16652//15392 +f 16638//15378 16656//15396 16652//15392 16639//15379 +f 16657//15397 16650//15390 16388//15128 16387//15127 +f 16354//15094 16657//15397 16387//15127 16355//15095 +f 16657//15397 16354//15094 16337//15077 16346//15086 +f 16650//15390 16657//15397 16346//15086 16345//15085 +f 16658//15398 16659//15399 16647//15387 16651//15391 +f 16344//15084 16658//15398 16651//15391 16345//15085 +f 16658//15398 16344//15084 16341//15081 16660//15400 +f 16659//15399 16658//15398 16660//15400 16661//15401 +f 16662//15402 16663//15403 16635//15375 16648//15388 +f 16659//15399 16662//15402 16648//15388 16647//15387 +f 16662//15402 16659//15399 16661//15401 16664//15404 +f 16663//15403 16662//15402 16664//15404 16665//15405 +f 16666//15406 16667//15407 16661//15401 16660//15400 +f 16340//15080 16666//15406 16660//15400 16341//15081 +f 16666//15406 16340//15080 16317//15057 16668//15408 +f 16667//15407 16666//15406 16668//15408 16669//15409 +f 16670//15410 16671//15411 16630//15370 16636//15376 +f 16663//15403 16670//15410 16636//15376 16635//15375 +f 16670//15410 16663//15403 16665//15405 16672//15412 +f 16671//15411 16670//15410 16672//15412 16673//15413 +f 16674//15414 16675//15415 16665//15405 16664//15404 +f 16667//15407 16674//15414 16664//15404 16661//15401 +f 16674//15414 16667//15407 16669//15409 16676//15416 +f 16675//15415 16674//15414 16676//15416 16677//15417 +f 16678//15418 16679//15419 16669//15409 16668//15408 +f 16316//15056 16678//15418 16668//15408 16317//15057 +f 16678//15418 16316//15056 16313//15053 16680//15420 +f 16679//15419 16678//15418 16680//15420 16681//15421 +f 16682//15422 16683//15423 16632//15372 16631//15371 +f 16671//15411 16682//15422 16631//15371 16630//15370 +f 16682//15422 16671//15411 16673//15413 16684//15424 +f 16683//15423 16682//15422 16684//15424 16685//15425 +f 16686//15426 16687//15427 16673//15413 16672//15412 +f 16675//15415 16686//15426 16672//15412 16665//15405 +f 16686//15426 16675//15415 16677//15417 16688//15428 +f 16687//15427 16686//15426 16688//15428 16689//15429 +f 16690//15430 16691//15431 16677//15417 16676//15416 +f 16679//15419 16690//15430 16676//15416 16669//15409 +f 16690//15430 16679//15419 16681//15421 16692//15432 +f 16691//15431 16690//15430 16692//15432 16693//15433 +f 16694//15434 16695//15435 16681//15421 16680//15420 +f 16312//15052 16694//15434 16680//15420 16313//15053 +f 16694//15434 16312//15052 16289//15029 16696//15436 +f 16695//15435 16694//15434 16696//15436 16697//15437 +f 16698//15438 16699//15439 16697//15437 16696//15436 +f 16288//15028 16698//15438 16696//15436 16289//15029 +f 16698//15438 16288//15028 16215//14955 16214//14954 +f 16699//15439 16698//15438 16214//14954 16205//14945 +f 16700//15440 16701//15441 16693//15433 16692//15432 +f 16695//15435 16700//15440 16692//15432 16681//15421 +f 16700//15440 16695//15435 16697//15437 16702//15442 +f 16701//15441 16700//15440 16702//15442 16703//15443 +f 16704//15444 16705//15445 16689//15429 16688//15428 +f 16691//15431 16704//15444 16688//15428 16677//15417 +f 16704//15444 16691//15431 16693//15433 16706//15446 +f 16705//15445 16704//15444 16706//15446 16707//15447 +f 16708//15448 16709//15449 16703//15443 16702//15442 +f 16699//15439 16708//15448 16702//15442 16697//15437 +f 16708//15448 16699//15439 16205//14945 16204//14944 +f 16709//15449 16708//15448 16204//14944 16203//14943 +f 16710//15450 16711//15451 16707//15447 16706//15446 +f 16701//15441 16710//15450 16706//15446 16693//15433 +f 16710//15450 16701//15441 16703//15443 16712//15452 +f 16711//15451 16710//15450 16712//15452 16713//15453 +f 16714//15454 16715//15455 16713//15453 16712//15452 +f 16709//15449 16714//15454 16712//15452 16703//15443 +f 16714//15454 16709//15449 16203//14943 16716//15456 +f 16715//15455 16714//15454 16716//15456 16717//15457 +f 16718//15458 16719//15459 16717//15457 16716//15456 +f 16202//14942 16718//15458 16716//15456 16203//14943 +f 16718//15458 16202//14942 16179//14919 16178//14918 +f 16719//15459 16718//15458 16178//14918 16175//14915 +f 16720//15460 16721//15461 16722//15462 16723//15463 +f 16711//15451 16720//15460 16723//15463 16707//15447 +f 16720//15460 16711//15451 16713//15453 16724//15464 +f 16721//15461 16720//15460 16724//15464 16725//15465 +f 16726//15466 16727//15467 16728//15468 16729//15469 +f 16719//15459 16726//15466 16729//15469 16717//15457 +f 16726//15466 16719//15459 16175//14915 16174//14914 +f 16727//15467 16726//15466 16174//14914 16173//14913 +f 16730//15470 16731//15471 16725//15465 16724//15464 +f 16715//15455 16730//15470 16724//15464 16713//15453 +f 16730//15470 16715//15455 16717//15457 16729//15469 +f 16731//15471 16730//15470 16729//15469 16728//15468 +f 16732//15472 16733//15473 16734//15474 16735//15475 +f 16727//15467 16732//15472 16735//15475 16728//15468 +f 16732//15472 16727//15467 16173//14913 16736//15476 +f 16733//15473 16732//15472 16736//15476 16737//15477 +f 16738//15478 16739//15479 16740//15480 16741//15481 +f 16731//15471 16738//15478 16741//15481 16725//15465 +f 16738//15478 16731//15471 16728//15468 16735//15475 +f 16739//15479 16738//15478 16735//15475 16734//15474 +f 16742//15482 16743//15483 16744//15484 16745//15485 +f 16721//15461 16742//15482 16745//15485 16722//15462 +f 16742//15482 16721//15461 16725//15465 16741//15481 +f 16743//15483 16742//15482 16741//15481 16740//15480 +f 16746//15486 16705//15445 16707//15447 16723//15463 +f 16747//15487 16746//15486 16723//15463 16722//15462 +f 16746//15486 16747//15487 16748//15488 16749//15489 +f 16705//15445 16746//15486 16749//15489 16689//15429 +f 16750//15490 16747//15487 16722//15462 16745//15485 +f 16751//15491 16750//15490 16745//15485 16744//15484 +f 16750//15490 16751//15491 16752//15492 16753//15493 +f 16747//15487 16750//15490 16753//15493 16748//15488 +f 16754//15494 16687//15427 16689//15429 16749//15489 +f 16755//15495 16754//15494 16749//15489 16748//15488 +f 16754//15494 16755//15495 16685//15425 16684//15424 +f 16687//15427 16754//15494 16684//15424 16673//15413 +f 16756//15496 16757//15497 16758//15498 16759//15499 +f 16755//15495 16756//15496 16759//15499 16685//15425 +f 16756//15496 16755//15495 16748//15488 16753//15493 +f 16757//15497 16756//15496 16753//15493 16752//15492 +f 16760//15500 16761//15501 16644//15384 16643//15383 +f 16683//15423 16760//15500 16643//15383 16632//15372 +f 16760//15500 16683//15423 16685//15425 16759//15499 +f 16761//15501 16760//15500 16759//15499 16758//15498 +f 16762//15502 16763//15503 16764//15504 16765//15505 +f 16757//15497 16762//15502 16765//15505 16758//15498 +f 16762//15502 16757//15497 16752//15492 16766//15506 +f 16763//15503 16762//15502 16766//15506 16767//15507 +f 16768//15508 16769//15509 16606//15346 16605//15345 +f 16642//15382 16768//15508 16605//15345 16604//15344 +f 16768//15508 16642//15382 16644//15384 16770//15510 +f 16769//15509 16768//15508 16770//15510 16771//15511 +f 16772//15512 16773//15513 16771//15511 16770//15510 +f 16761//15501 16772//15512 16770//15510 16644//15384 +f 16772//15512 16761//15501 16758//15498 16765//15505 +f 16773//15513 16772//15512 16765//15505 16764//15504 +f 16774//15514 16775//15515 16581//15321 16580//15320 +f 16602//15342 16774//15514 16580//15320 16575//15315 +f 16774//15514 16602//15342 16606//15346 16776//15516 +f 16775//15515 16774//15514 16776//15516 16777//15517 +f 16778//15518 16779//15519 16777//15517 16776//15516 +f 16769//15509 16778//15518 16776//15516 16606//15346 +f 16778//15518 16769//15509 16771//15511 16780//15520 +f 16779//15519 16778//15518 16780//15520 16781//15521 +f 16782//15522 16783//15523 16781//15521 16780//15520 +f 16773//15513 16782//15522 16780//15520 16771//15511 +f 16782//15522 16773//15513 16764//15504 16784//15524 +f 16783//15523 16782//15522 16784//15524 16785//15525 +f 16786//15526 16787//15527 16767//15507 16766//15506 +f 16751//15491 16786//15526 16766//15506 16752//15492 +f 16786//15526 16751//15491 16744//15484 16788//15528 +f 16787//15527 16786//15526 16788//15528 16789//15529 +f 16790//15530 16791//15531 16785//15525 16784//15524 +f 16763//15503 16790//15530 16784//15524 16764//15504 +f 16790//15530 16763//15503 16767//15507 16792//15532 +f 16791//15531 16790//15530 16792//15532 16793//15533 +f 16794//15534 16795//15535 16789//15529 16788//15528 +f 16743//15483 16794//15534 16788//15528 16744//15484 +f 16794//15534 16743//15483 16740//15480 16796//15536 +f 16795//15535 16794//15534 16796//15536 16797//15537 +f 16798//15538 16799//15539 16793//15533 16792//15532 +f 16787//15527 16798//15538 16792//15532 16767//15507 +f 16798//15538 16787//15527 16789//15529 16800//15540 +f 16799//15539 16798//15538 16800//15540 16801//15541 +f 16802//15542 16803//15543 16797//15537 16796//15536 +f 16739//15479 16802//15542 16796//15536 16740//15480 +f 16802//15542 16739//15479 16734//15474 16804//15544 +f 16803//15543 16802//15542 16804//15544 16805//15545 +f 16806//15546 16807//15547 16801//15541 16800//15540 +f 16795//15535 16806//15546 16800//15540 16789//15529 +f 16806//15546 16795//15535 16797//15537 16808//15548 +f 16807//15547 16806//15546 16808//15548 16809//15549 +f 16810//15550 16811//15551 16812//15552 16813//15553 +f 16791//15531 16810//15550 16813//15553 16785//15525 +f 16810//15550 16791//15531 16793//15533 16814//15554 +f 16811//15551 16810//15550 16814//15554 16815//15555 +f 16816//15556 16817//15557 16815//15555 16814//15554 +f 16799//15539 16816//15556 16814//15554 16793//15533 +f 16816//15556 16799//15539 16801//15541 16818//15558 +f 16817//15557 16816//15556 16818//15558 16819//15559 +f 16820//15560 16783//15523 16785//15525 16813//15553 +f 16821//15561 16820//15560 16813//15553 16812//15552 +f 16820//15560 16821//15561 16822//15562 16823//15563 +f 16783//15523 16820//15560 16823//15563 16781//15521 +f 16824//15564 16825//15565 16809//15549 16808//15548 +f 16803//15543 16824//15564 16808//15548 16797//15537 +f 16824//15564 16803//15543 16805//15545 16826//15566 +f 16825//15565 16824//15564 16826//15566 16827//15567 +f 16828//15568 16779//15519 16781//15521 16823//15563 +f 16829//15569 16828//15568 16823//15563 16822//15562 +f 16828//15568 16829//15569 16830//15570 16831//15571 +f 16779//15519 16828//15568 16831//15571 16777//15517 +f 16832//15572 16833//15573 16805//15545 16804//15544 +f 16733//15473 16832//15572 16804//15544 16734//15474 +f 16832//15572 16733//15473 16737//15477 16834//15574 +f 16833//15573 16832//15572 16834//15574 16835//15575 +f 16836//15576 16837//15577 16737//15477 16736//15476 +f 16172//14912 16836//15576 16736//15476 16173//14913 +f 16836//15576 16172//14912 16051//14792 16050//14791 +f 16837//15577 16836//15576 16050//14791 16041//14782 +f 16838//15578 16839//15579 16835//15575 16834//15574 +f 16837//15577 16838//15578 16834//15574 16737//15477 +f 16838//15578 16837//15577 16041//14782 16040//14781 +f 16839//15579 16838//15578 16040//14781 16044//14785 +f 16840//15580 16841//15581 16827//15567 16826//15566 +f 16833//15573 16840//15580 16826//15566 16805//15545 +f 16840//15580 16833//15573 16835//15575 16842//15582 +f 16841//15581 16840//15580 16842//15582 16843//15583 +f 16844//15584 16845//15585 16044//14785 16043//14784 +f 16022//14763 16844//15584 16043//14784 16023//14764 +f 16844//15584 16022//14763 15958//14699 16846//15586 +f 16845//15585 16844//15584 16846//15586 16847//15587 +f 16848//15588 16849//15589 16843//15583 16842//15582 +f 16839//15579 16848//15588 16842//15582 16835//15575 +f 16848//15588 16839//15579 16044//14785 16845//15585 +f 16849//15589 16848//15588 16845//15585 16847//15587 +f 16850//15590 16851//15591 16847//15587 16846//15586 +f 15957//14698 16850//15590 16846//15586 15958//14699 +f 16850//15590 15957//14698 15936//14677 15935//14676 +f 16851//15591 16850//15590 15935//14676 15934//14675 +f 16852//15592 16849//15589 16847//15587 16851//15591 +f 15938//14679 16852//15592 16851//15591 15934//14675 +f 16852//15592 15938//14679 15940//14681 16853//15593 +f 16849//15589 16852//15592 16853//15593 16843//15583 +f 16854//15594 16841//15581 16843//15583 16853//15593 +f 16855//15595 16854//15594 16853//15593 15940//14681 +f 16854//15594 16855//15595 16856//15596 16857//15597 +f 16841//15581 16854//15594 16857//15597 16827//15567 +f 16858//15598 16855//15595 15940//14681 15939//14680 +f 15928//14669 16858//15598 15939//14680 15918//14659 +f 16858//15598 15928//14669 15930//14671 16859//15599 +f 16855//15595 16858//15598 16859//15599 16856//15596 +f 16860//15600 16825//15565 16827//15567 16857//15597 +f 16861//15601 16860//15600 16857//15597 16856//15596 +f 16860//15600 16861//15601 16862//15602 16863//15603 +f 16825//15565 16860//15600 16863//15603 16809//15549 +f 16864//15604 16861//15601 16856//15596 16859//15599 +f 16865//15605 16864//15604 16859//15599 15930//14671 +f 16864//15604 16865//15605 16866//15606 16867//15607 +f 16861//15601 16864//15604 16867//15607 16862//15602 +f 16868//15608 16865//15605 15930//14671 15929//14670 +f 16869//15609 16868//15608 15929//14670 15908//14649 +f 16868//15608 16869//15609 16870//15610 16871//15611 +f 16865//15605 16868//15608 16871//15611 16866//15606 +f 16872//15612 16807//15547 16809//15549 16863//15603 +f 16873//15613 16872//15612 16863//15603 16862//15602 +f 16872//15612 16873//15613 16819//15559 16818//15558 +f 16807//15547 16872//15612 16818//15558 16801//15541 +f 16874//15614 16873//15613 16862//15602 16867//15607 +f 16875//15615 16874//15614 16867//15607 16866//15606 +f 16874//15614 16875//15615 16876//15616 16877//15617 +f 16873//15613 16874//15614 16877//15617 16819//15559 +f 16878//15618 16879//15619 16880//15620 16881//15621 +f 16817//15557 16878//15618 16881//15621 16815//15555 +f 16878//15618 16817//15557 16819//15559 16877//15617 +f 16879//15619 16878//15618 16877//15617 16876//15616 +f 16882//15622 16883//15623 16884//15624 16885//15625 +f 16875//15615 16882//15622 16885//15625 16876//15616 +f 16882//15622 16875//15615 16866//15606 16871//15611 +f 16883//15623 16882//15622 16871//15611 16870//15610 +f 16886//15626 16887//15627 16888//15628 16889//15629 +f 16879//15619 16886//15626 16889//15629 16880//15620 +f 16886//15626 16879//15619 16876//15616 16885//15625 +f 16887//15627 16886//15626 16885//15625 16884//15624 +f 16890//15630 16811//15551 16815//15555 16881//15621 +f 16891//15631 16890//15630 16881//15621 16880//15620 +f 16890//15630 16891//15631 16892//15632 16893//15633 +f 16811//15551 16890//15630 16893//15633 16812//15552 +f 16894//15634 16891//15631 16880//15620 16889//15629 +f 16895//15635 16894//15634 16889//15629 16888//15628 +f 16894//15634 16895//15635 16896//15636 16897//15637 +f 16891//15631 16894//15634 16897//15637 16892//15632 +f 16898//15638 16821//15561 16812//15552 16893//15633 +f 16899//15639 16898//15638 16893//15633 16892//15632 +f 16898//15638 16899//15639 16900//15640 16901//15641 +f 16821//15561 16898//15638 16901//15641 16822//15562 +f 16902//15642 16899//15639 16892//15632 16897//15637 +f 16903//15643 16902//15642 16897//15637 16896//15636 +f 16902//15642 16903//15643 16904//15644 16905//15645 +f 16899//15639 16902//15642 16905//15645 16900//15640 +f 16906//15646 16829//15569 16822//15562 16901//15641 +f 16907//15647 16906//15646 16901//15641 16900//15640 +f 16906//15646 16907//15647 16908//15648 16909//15649 +f 16829//15569 16906//15646 16909//15649 16830//15570 +f 16910//15650 16907//15647 16900//15640 16905//15645 +f 16911//15651 16910//15650 16905//15645 16904//15644 +f 16910//15650 16911//15651 16912//15652 16913//15653 +f 16907//15647 16910//15650 16913//15653 16908//15648 +f 16914//15654 16915//15655 16916//15656 16917//15657 +f 16903//15643 16914//15654 16917//15657 16904//15644 +f 16914//15654 16903//15643 16896//15636 16918//15658 +f 16915//15655 16914//15654 16918//15658 16919//15659 +f 16920//15660 16921//15661 16922//15662 16923//15663 +f 16911//15651 16920//15660 16923//15663 16912//15652 +f 16920//15660 16911//15651 16904//15644 16917//15657 +f 16921//15661 16920//15660 16917//15657 16916//15656 +f 16924//15664 16925//15665 16908//15648 16913//15653 +f 16926//15666 16924//15664 16913//15653 16912//15652 +f 16924//15664 16926//15666 16927//15667 16928//15668 +f 16925//15665 16924//15664 16928//15668 16929//15669 +f 16930//15670 16931//15671 16919//15659 16918//15658 +f 16895//15635 16930//15670 16918//15658 16896//15636 +f 16930//15670 16895//15635 16888//15628 16932//15672 +f 16931//15671 16930//15670 16932//15672 16933//15673 +f 16934//15674 16935//15675 16830//15570 16909//15649 +f 16925//15665 16934//15674 16909//15649 16908//15648 +f 16934//15674 16925//15665 16929//15669 16936//15676 +f 16935//15675 16934//15674 16936//15676 16937//15677 +f 16938//15678 16939//15679 16933//15673 16932//15672 +f 16887//15627 16938//15678 16932//15672 16888//15628 +f 16938//15678 16887//15627 16884//15624 16940//15680 +f 16939//15679 16938//15678 16940//15680 16941//15681 +f 16942//15682 16775//15515 16777//15517 16831//15571 +f 16935//15675 16942//15682 16831//15571 16830//15570 +f 16942//15682 16935//15675 16937//15677 16943//15683 +f 16775//15515 16942//15682 16943//15683 16581//15321 +f 16944//15684 16585//15325 16571//15311 16582//15322 +f 16943//15683 16944//15684 16582//15322 16581//15321 +f 16944//15684 16943//15683 16937//15677 16945//15685 +f 16585//15325 16944//15684 16945//15685 16586//15326 +f 16946//15686 16947//15687 16586//15326 16945//15685 +f 16936//15676 16946//15686 16945//15685 16937//15677 +f 16946//15686 16936//15676 16929//15669 16948//15688 +f 16947//15687 16946//15686 16948//15688 16949//15689 +f 16950//15690 16951//15691 16949//15689 16948//15688 +f 16928//15668 16950//15690 16948//15688 16929//15669 +f 16950//15690 16928//15668 16927//15667 16952//15692 +f 16951//15691 16950//15690 16952//15692 15494//14235 +f 16953//15693 16954//15694 16588//15328 16587//15327 +f 16947//15687 16953//15693 16587//15327 16586//15326 +f 16953//15693 16947//15687 16949//15689 16955//15695 +f 16954//15694 16953//15693 16955//15695 15484//14225 +f 16956//15696 15482//14223 15484//14225 16955//15695 +f 16951//15691 16956//15696 16955//15695 16949//15689 +f 16956//15696 16951//15691 15494//14235 15493//14234 +f 15482//14223 16956//15696 15493//14234 15480//14221 +f 16957//15697 16958//15698 16596//15336 16595//15335 +f 16954//15694 16957//15697 16595//15335 16588//15328 +f 16957//15697 16954//15694 15484//14225 15483//14224 +f 16958//15698 16957//15697 15483//14224 15472//14213 +f 16959//15699 15466//14207 15468//14209 16960//15700 +f 16958//15698 16959//15699 16960//15700 16596//15336 +f 16959//15699 16958//15698 15472//14213 15471//14212 +f 15466//14207 16959//15699 15471//14212 15454//14195 +f 16961//15701 16594//15334 16596//15336 16960//15700 +f 16962//15702 16961//15701 16960//15700 15468//14209 +f 16961//15701 16962//15702 16560//15300 16559//15299 +f 16594//15334 16961//15701 16559//15299 16558//15298 +f 16963//15703 15460//14201 15464//14205 16964//15704 +f 16962//15702 16963//15703 16964//15704 16560//15300 +f 16963//15703 16962//15702 15468//14209 15467//14208 +f 15460//14201 16963//15703 15467//14208 15450//14191 +f 16965//15705 16556//15296 16560//15300 16964//15704 +f 16966//15706 16965//15705 16964//15704 15464//14205 +f 16965//15705 16966//15706 16546//15286 16545//15285 +f 16556//15296 16965//15705 16545//15285 16544//15284 +f 16967//15707 16968//15708 16969//15709 16970//15710 +f 16542//15282 16967//15707 16970//15710 16540//15280 +f 16967//15707 16542//15282 16546//15286 16971//15711 +f 16968//15708 16967//15707 16971//15711 16972//15712 +f 16973//15713 16538//15278 16540//15280 16970//15710 +f 16974//15714 16973//15713 16970//15710 16969//15709 +f 16973//15713 16974//15714 16532//15272 16531//15271 +f 16538//15278 16973//15713 16531//15271 16508//15248 +f 16975//15715 15492//14233 15494//14235 16952//15692 +f 16976//15716 16975//15715 16952//15692 16927//15667 +f 16975//15715 16976//15716 16977//15717 16978//15718 +f 15492//14233 16975//15715 16978//15718 15490//14231 +f 16979//15719 16980//15720 16977//15717 16976//15716 +f 16926//15666 16979//15719 16976//15716 16927//15667 +f 16979//15719 16926//15666 16912//15652 16923//15663 +f 16980//15720 16979//15719 16923//15663 16922//15662 +f 16981//15721 15486//14227 15490//14231 16978//15718 +f 16982//15722 16981//15721 16978//15718 16977//15717 +f 16981//15721 16982//15722 15506//14247 15505//14246 +f 15486//14227 16981//15721 15505//14246 15487//14228 +f 16983//15723 16984//15724 15506//14247 16982//15722 +f 16980//15720 16983//15723 16982//15722 16977//15717 +f 16983//15723 16980//15720 16922//15662 16985//15725 +f 16984//15724 16983//15723 16985//15725 16986//15726 +f 16987//15727 15530//14271 15503//14244 15502//14243 +f 16984//15724 16987//15727 15502//14243 15506//14247 +f 16987//15727 16984//15724 16986//15726 16988//15728 +f 15530//14271 16987//15727 16988//15728 15531//14272 +f 16989//15729 16990//15730 16986//15726 16985//15725 +f 16921//15661 16989//15729 16985//15725 16922//15662 +f 16989//15729 16921//15661 16916//15656 16991//15731 +f 16990//15730 16989//15729 16991//15731 16992//15732 +f 16993//15733 16994//15734 15531//14272 16988//15728 +f 16990//15730 16993//15733 16988//15728 16986//15726 +f 16993//15733 16990//15730 16992//15732 16995//15735 +f 16994//15734 16993//15733 16995//15735 16996//15736 +f 16997//15737 16998//15738 16992//15732 16991//15731 +f 16915//15655 16997//15737 16991//15731 16916//15656 +f 16997//15737 16915//15655 16919//15659 16999//15739 +f 16998//15738 16997//15737 16999//15739 17000//15740 +f 17001//15741 17002//15742 15520//14261 15532//14273 +f 16994//15734 17001//15741 15532//14273 15531//14272 +f 17001//15741 16994//15734 16996//15736 17003//15743 +f 17002//15742 17001//15741 17003//15743 17004//15744 +f 17005//15745 17006//15746 16996//15736 16995//15735 +f 16998//15738 17005//15745 16995//15735 16992//15732 +f 17005//15745 16998//15738 17000//15740 17007//15747 +f 17006//15746 17005//15745 17007//15747 17008//15748 +f 17009//15749 17010//15750 17000//15740 16999//15739 +f 16931//15671 17009//15749 16999//15739 16919//15659 +f 17009//15749 16931//15671 16933//15673 17011//15751 +f 17010//15750 17009//15749 17011//15751 17012//15752 +f 17013//15753 17014//15754 15522//14263 15521//14262 +f 17002//15742 17013//15753 15521//14262 15520//14261 +f 17013//15753 17002//15742 17004//15744 17015//15755 +f 17014//15754 17013//15753 17015//15755 17016//15756 +f 17017//15757 17018//15758 17004//15744 17003//15743 +f 17006//15746 17017//15757 17003//15743 16996//15736 +f 17017//15757 17006//15746 17008//15748 17019//15759 +f 17018//15758 17017//15757 17019//15759 17020//15760 +f 17021//15761 17022//15762 17008//15748 17007//15747 +f 17010//15750 17021//15761 17007//15747 17000//15740 +f 17021//15761 17010//15750 17012//15752 17023//15763 +f 17022//15762 17021//15761 17023//15763 17024//15764 +f 17025//15765 15546//14287 15525//14266 15528//14269 +f 17014//15754 17025//15765 15528//14269 15522//14263 +f 17025//15765 17014//15754 17016//15756 17026//15766 +f 15546//14287 17025//15765 17026//15766 15547//14288 +f 17027//15767 17028//15768 17016//15756 17015//15755 +f 17018//15758 17027//15767 17015//15755 17004//15744 +f 17027//15767 17018//15758 17020//15760 17029//15769 +f 17028//15768 17027//15767 17029//15769 15578//14319 +f 17030//15770 15562//14303 15547//14288 17026//15766 +f 17028//15768 17030//15770 17026//15766 17016//15756 +f 17030//15770 17028//15768 15578//14319 15577//14318 +f 15562//14303 17030//15770 15577//14318 15563//14304 +f 17031//15771 17032//15772 15698//14439 15697//14438 +f 15574//14315 17031//15771 15697//14438 15575//14316 +f 17031//15771 15574//14315 15578//14319 17029//15769 +f 17032//15772 17031//15771 17029//15769 17020//15760 +f 17033//15773 17032//15772 17020//15760 17019//15759 +f 17022//15762 17033//15773 17019//15759 17008//15748 +f 17033//15773 17022//15762 17024//15764 17034//15774 +f 17032//15772 17033//15773 17034//15774 15698//14439 +f 17035//15775 17036//15776 15708//14449 15707//14448 +f 15696//14437 17035//15775 15707//14448 15694//14435 +f 17035//15775 15696//14437 15698//14439 17034//15774 +f 17036//15776 17035//15775 17034//15774 17024//15764 +f 17037//15777 17038//15778 15904//14645 15903//14644 +f 15706//14447 17037//15777 15903//14644 15704//14445 +f 17037//15777 15706//14447 15708//14449 17039//15779 +f 17038//15778 17037//15777 17039//15779 17040//15780 +f 17041//15781 17042//15782 17040//15780 17039//15779 +f 17036//15776 17041//15781 17039//15779 15708//14449 +f 17041//15781 17036//15776 17024//15764 17023//15763 +f 17042//15782 17041//15781 17023//15763 17012//15752 +f 17043//15783 17044//15784 15912//14653 15911//14652 +f 17038//15778 17043//15783 15911//14652 15904//14645 +f 17043//15783 17038//15778 17040//15780 17045//15785 +f 17044//15784 17043//15783 17045//15785 16941//15681 +f 17046//15786 16869//15609 15908//14649 15907//14648 +f 15910//14651 17046//15786 15907//14648 15900//14641 +f 17046//15786 15910//14651 15912//14653 17047//15787 +f 16869//15609 17046//15786 17047//15787 16870//15610 +f 17048//15788 16939//15679 16941//15681 17045//15785 +f 17042//15782 17048//15788 17045//15785 17040//15780 +f 17048//15788 17042//15782 17012//15752 17011//15751 +f 16939//15679 17048//15788 17011//15751 16933//15673 +f 17049//15789 16883//15623 16870//15610 17047//15787 +f 17044//15784 17049//15789 17047//15787 15912//14653 +f 17049//15789 17044//15784 16941//15681 16940//15680 +f 16883//15623 17049//15789 16940//15680 16884//15624 +f 17050//15790 17051//15791 16423//15163 16422//15162 +f 16429//15169 17050//15790 16422//15162 16419//15159 +f 17050//15790 16429//15169 16433//15173 16451//15191 +f 17051//15791 17050//15790 16451//15191 16450//15190 +f 17052//15792 17053//15793 16427//15167 16426//15166 +f 17051//15791 17052//15792 16426//15166 16423//15163 +f 17052//15792 17051//15791 16450//15190 17054//15794 +f 17053//15793 17052//15792 17054//15794 17055//15795 +f 17056//15796 17057//15797 17055//15795 17054//15794 +f 16449//15189 17056//15796 17054//15794 16450//15190 +f 17056//15796 16449//15189 16453//15193 17058//15798 +f 17057//15797 17056//15796 17058//15798 17059//15799 +f 17060//15800 17061//15801 17059//15799 17058//15798 +f 16455//15195 17060//15800 17058//15798 16453//15193 +f 17060//15800 16455//15195 16459//15199 16536//15276 +f 17061//15801 17060//15800 16536//15276 16535//15275 +f 17062//15802 17063//15803 16269//15009 16274//15014 +f 17064//15804 17062//15802 16274//15014 16273//15013 +f 17062//15802 17064//15804 16107//14848 16106//14847 +f 17063//15803 17062//15802 16106//14847 16103//14844 +f 17065//15805 16113//14854 16117//14858 16270//15010 +f 17063//15803 17065//15805 16270//15010 16269//15009 +f 17065//15805 17063//15803 16103//14844 16101//14842 +f 16113//14854 17065//15805 16101//14842 16100//14841 +f 17066//15806 17067//15807 15320//14061 15319//14060 +f 15300//14041 17066//15806 15319//14060 15301//14042 +f 17066//15806 15300//14041 15238//13979 17068//15808 +f 17067//15807 17066//15806 17068//15808 17069//15809 +f 17070//15810 17071//15811 17072//15812 17073//15813 +f 17074//15814 17070//15810 17073//15813 15244//13985 +f 17070//15810 17074//15814 17075//15815 17076//15816 +f 17071//15811 17070//15810 17076//15816 17077//15817 +f 17078//15818 17079//15819 17080//15820 17081//15821 +f 17074//15814 17078//15818 17081//15821 17075//15815 +f 17078//15818 17074//15814 15244//13985 15243//13984 +f 17079//15819 17078//15818 15243//13984 15242//13983 +f 17082//15822 17083//15823 17084//15824 17085//15825 +f 17079//15819 17082//15822 17085//15825 17080//15820 +f 17082//15822 17079//15819 15242//13983 15284//14025 +f 17083//15823 17082//15822 15284//14025 15283//14024 +f 17086//15826 17087//15827 17088//15828 17089//15829 +f 17083//15823 17086//15826 17089//15829 17084//15824 +f 17086//15826 17083//15823 15283//14024 15290//14031 +f 17087//15827 17086//15826 15290//14031 15289//14030 +f 17090//15830 17091//15831 17092//15832 17093//15833 +f 17087//15827 17090//15830 17093//15833 17088//15828 +f 17090//15830 17087//15827 15289//14030 15306//14047 +f 17091//15831 17090//15830 15306//14047 15305//14046 +f 17094//15834 17095//15835 17096//15836 17097//15837 +f 17091//15831 17094//15834 17097//15837 17092//15832 +f 17094//15834 17091//15831 15305//14046 15360//14101 +f 17095//15835 17094//15834 15360//14101 15359//14100 +f 17098//15838 17099//15839 17096//15836 17095//15835 +f 15372//14113 17098//15838 17095//15835 15359//14100 +f 17098//15838 15372//14113 15376//14117 17100//15840 +f 17099//15839 17098//15838 17100//15840 17101//15841 +f 17102//15842 17103//15843 17101//15841 17100//15840 +f 15534//14275 17102//15842 17100//15840 15376//14117 +f 17102//15842 15534//14275 15538//14279 17104//15844 +f 17103//15843 17102//15842 17104//15844 17105//15845 +f 17106//15846 17107//15847 17105//15845 17104//15844 +f 15540//14281 17106//15846 17104//15844 15538//14279 +f 17106//15846 15540//14281 15544//14285 17108//15848 +f 17107//15847 17106//15846 17108//15848 17109//15849 +f 17110//15850 17111//15851 17109//15849 17108//15848 +f 15550//14291 17110//15850 17108//15848 15544//14285 +f 17110//15850 15550//14291 15554//14295 17112//15852 +f 17111//15851 17110//15850 17112//15852 17113//15853 +f 17114//15854 17115//15855 17113//15853 17112//15852 +f 15556//14297 17114//15854 17112//15852 15554//14295 +f 17114//15854 15556//14297 15560//14301 17116//15856 +f 17115//15855 17114//15854 17116//15856 17117//15857 +f 17118//15858 17119//15859 17117//15857 17116//15856 +f 15584//14325 17118//15858 17116//15856 15560//14301 +f 17118//15858 15584//14325 15588//14329 17120//15860 +f 17119//15859 17118//15858 17120//15860 17121//15861 +f 17122//15862 17123//15863 17121//15861 17120//15860 +f 15590//14331 17122//15862 17120//15860 15588//14329 +f 17122//15862 15590//14331 15594//14335 17124//15864 +f 17123//15863 17122//15862 17124//15864 17125//15865 +f 17126//15866 17127//15867 17125//15865 17124//15864 +f 15600//14341 17126//15866 17124//15864 15594//14335 +f 17126//15866 15600//14341 15604//14345 17128//15868 +f 17127//15867 17126//15866 17128//15868 17129//15869 +f 17130//15870 17131//15871 17129//15869 17128//15868 +f 15610//14351 17130//15870 17128//15868 15604//14345 +f 17130//15870 15610//14351 15614//14355 17132//15872 +f 17131//15871 17130//15870 17132//15872 17133//15873 +f 17134//15874 17135//15875 17136//15876 17137//15877 +f 17132//15872 17134//15874 17137//15877 17133//15873 +f 17134//15874 17132//15872 15614//14355 15622//14363 +f 17135//15875 17134//15874 15622//14363 15621//14362 +f 17138//15878 17139//15879 17140//15880 17141//15881 +f 17135//15875 17138//15878 17141//15881 17136//15876 +f 17138//15878 17135//15875 15621//14362 15636//14377 +f 17139//15879 17138//15878 15636//14377 15635//14376 +f 17142//15882 17143//15883 17144//15884 17145//15885 +f 17139//15879 17142//15882 17145//15885 17140//15880 +f 17142//15882 17139//15879 15635//14376 15640//14381 +f 17143//15883 17142//15882 15640//14381 15259//14000 +f 17146//15886 17147//15887 17148//15888 17149//15889 +f 17143//15883 17146//15886 17149//15889 17144//15884 +f 17146//15886 17143//15883 15259//14000 15257//13998 +f 17147//15887 17146//15886 15257//13998 15256//13997 +f 17150//15890 17151//15891 17152//15892 17153//15893 +f 17147//15887 17150//15890 17153//15893 17148//15888 +f 17150//15890 17147//15887 15256//13997 17154//15894 +f 17151//15891 17150//15890 17154//15894 17155//15895 +f 17156//15896 17157//15897 17158//15898 17159//15899 +f 17151//15891 17156//15896 17159//15899 17152//15892 +f 17156//15896 17151//15891 17155//15895 17160//15900 +f 17157//15897 17156//15896 17160//15900 17161//15901 +f 17162//15902 17163//15903 15761//14502 15768//14509 +f 17164//15904 17162//15902 15768//14509 15767//14508 +f 17162//15902 17164//15904 17161//15901 17160//15900 +f 17163//15903 17162//15902 17160//15900 17155//15895 +f 17165//15905 15255//13996 15262//14003 15762//14503 +f 17163//15903 17165//15905 15762//14503 15761//14502 +f 17165//15905 17163//15903 17155//15895 17154//15894 +f 15255//13996 17165//15905 17154//15894 15256//13997 +f 17166//15906 16966//15706 15464//14205 15463//14204 +f 17167//15907 17166//15906 15463//14204 15462//14203 +f 17166//15906 17167//15907 16972//15712 16971//15711 +f 16966//15706 17166//15906 16971//15711 16546//15286 +f 17168//15908 15237//13978 15244//13985 17073//15813 +f 17169//15909 17168//15908 17073//15813 17072//15812 +f 17168//15908 17169//15909 17069//15809 17068//15808 +f 15237//13978 17168//15908 17068//15808 15238//13979 +f 17170//15910 15644//14385 15638//14379 15637//14378 +f 15630//14371 17170//15910 15637//14378 15624//14365 +f 17170//15910 15630//14371 15632//14373 15660//14401 +f 15644//14385 17170//15910 15660//14401 15645//14386 +f 17171//15911 17172//15912 17173//15913 17174//15914 +f 17175//15915 17171//15911 17174//15914 17176//15916 +f 17171//15911 17175//15915 17177//15917 17178//15918 +f 17172//15912 17171//15911 17178//15918 17179//15919 +f 17180//15920 17181//15921 17182//15922 17183//15923 +f 17184//15924 17180//15920 17183//15923 17185//15925 +f 17180//15920 17184//15924 17186//15926 17187//15927 +f 17181//15921 17180//15920 17187//15927 17188//15928 +f 17189//15929 17190//15930 17191//15931 17192//15932 +f 17193//15933 17189//15929 17192//15932 17194//15934 +f 17189//15929 17193//15933 17195//15935 17196//15936 +f 17190//15930 17189//15929 17196//15936 17197//15937 +f 17198//15938 17199//15939 17200//15940 17201//15941 +f 17202//15942 17198//15938 17201//15941 17203//15943 +f 17198//15938 17202//15942 17204//15944 17205//15945 +f 17199//15939 17198//15938 17205//15945 17206//15946 +f 17207//15947 17208//15948 17209//15949 17210//15950 +f 17211//15951 17207//15947 17210//15950 17212//15952 +f 17207//15947 17211//15951 17213//15953 17214//15954 +f 17208//15948 17207//15947 17214//15954 17215//15955 +f 17216//15956 17217//15957 17218//15958 17219//15959 +f 17175//15915 17216//15956 17219//15959 17177//15917 +f 17216//15956 17175//15915 17176//15916 17220//15960 +f 17217//15957 17216//15956 17220//15960 17221//15961 +f 17222//15962 17223//15963 17224//15964 17225//15965 +f 17217//15957 17222//15962 17225//15965 17218//15958 +f 17222//15962 17217//15957 17221//15961 17226//15966 +f 17223//15963 17222//15962 17226//15966 17227//15967 +f 17228//15968 17229//15969 17221//15961 17220//15960 +f 17230//15970 17228//15968 17220//15960 17176//15916 +f 17228//15968 17230//15970 17231//15971 17232//15972 +f 17229//15969 17228//15968 17232//15972 17233//15973 +f 17234//15974 17235//15975 17236//15976 17237//15977 +f 17230//15970 17234//15974 17237//15977 17231//15971 +f 17234//15974 17230//15970 17176//15916 17174//15914 +f 17235//15975 17234//15974 17174//15914 17173//15913 +f 17238//15978 17239//15979 17240//15980 17241//15981 +f 17223//15963 17238//15978 17241//15981 17224//15964 +f 17238//15978 17223//15963 17227//15967 17242//15982 +f 17239//15979 17238//15978 17242//15982 17243//15983 +f 17244//15984 17245//15985 17231//15971 17237//15977 +f 17246//15986 17244//15984 17237//15977 17236//15976 +f 17244//15984 17246//15986 17247//15987 17248//15988 +f 17245//15985 17244//15984 17248//15988 17249//15989 +f 17250//15990 17251//15991 17252//15992 17253//15993 +f 17246//15986 17250//15990 17253//15993 17247//15987 +f 17250//15990 17246//15986 17236//15976 17254//15994 +f 17251//15991 17250//15990 17254//15994 17255//15995 +f 17256//15996 17257//15997 17247//15987 17253//15993 +f 17258//15998 17256//15996 17253//15993 17252//15992 +f 17256//15996 17258//15998 17259//15999 17260//16000 +f 17257//15997 17256//15996 17260//16000 17261//16001 +f 17262//16002 17263//16003 17261//16001 17260//16000 +f 17264//16004 17262//16002 17260//16000 17259//15999 +f 17262//16002 17264//16004 17265//16005 17266//16006 +f 17263//16003 17262//16002 17266//16006 17267//16007 +f 17268//16008 17269//16009 17249//15989 17248//15988 +f 17257//15997 17268//16008 17248//15988 17247//15987 +f 17268//16008 17257//15997 17261//16001 17270//16010 +f 17269//16009 17268//16008 17270//16010 17271//16011 +f 17272//16012 17273//16013 17233//15973 17232//15972 +f 17245//15985 17272//16012 17232//15972 17231//15971 +f 17272//16012 17245//15985 17249//15989 17274//16014 +f 17273//16013 17272//16012 17274//16014 17275//16015 +f 17276//16016 17277//16017 17227//15967 17226//15966 +f 17229//15969 17276//16016 17226//15966 17221//15961 +f 17276//16016 17229//15969 17233//15973 17278//16018 +f 17277//16017 17276//16016 17278//16018 17279//16019 +f 17280//16020 17281//16021 17243//15983 17242//15982 +f 17277//16017 17280//16020 17242//15982 17227//15967 +f 17280//16020 17277//16017 17279//16019 17282//16022 +f 17281//16021 17280//16020 17282//16022 17283//16023 +f 17284//16024 17285//16025 17279//16019 17278//16018 +f 17273//16013 17284//16024 17278//16018 17233//15973 +f 17284//16024 17273//16013 17275//16015 17286//16026 +f 17285//16025 17284//16024 17286//16026 17287//16027 +f 17288//16028 17289//16029 17275//16015 17274//16014 +f 17269//16009 17288//16028 17274//16014 17249//15989 +f 17288//16028 17269//16009 17271//16011 17290//16030 +f 17289//16029 17288//16028 17290//16030 17291//16031 +f 17292//16032 17293//16033 17294//16034 17295//16035 +f 17239//15979 17292//16032 17295//16035 17240//15980 +f 17292//16032 17239//15979 17243//15983 17296//16036 +f 17293//16033 17292//16032 17296//16036 17297//16037 +f 17298//16038 17299//16039 17297//16037 17296//16036 +f 17281//16021 17298//16038 17296//16036 17243//15983 +f 17298//16038 17281//16021 17283//16023 17300//16040 +f 17299//16039 17298//16038 17300//16040 17301//16041 +f 17302//16042 17303//16043 17283//16023 17282//16022 +f 17285//16025 17302//16042 17282//16022 17279//16019 +f 17302//16042 17285//16025 17287//16027 17304//16044 +f 17303//16043 17302//16042 17304//16044 17305//16045 +f 17306//16046 17307//16047 17294//16034 17293//16033 +f 17308//16048 17306//16046 17293//16033 17297//16037 +f 17306//16046 17308//16048 17309//16049 17310//16050 +f 17307//16047 17306//16046 17310//16050 17311//16051 +f 17312//16052 17313//16053 17287//16027 17286//16026 +f 17289//16029 17312//16052 17286//16026 17275//16015 +f 17312//16052 17289//16029 17291//16031 17314//16054 +f 17313//16053 17312//16052 17314//16054 17315//16055 +f 17316//16056 17317//16057 17271//16011 17270//16010 +f 17263//16003 17316//16056 17270//16010 17261//16001 +f 17316//16056 17263//16003 17267//16007 17318//16058 +f 17317//16057 17316//16056 17318//16058 17319//16059 +f 17320//16060 17321//16061 17322//16062 17323//16063 +f 17324//16064 17320//16060 17323//16063 17325//16065 +f 17320//16060 17324//16064 17267//16007 17266//16006 +f 17321//16061 17320//16060 17266//16006 17265//16005 +f 17326//16066 17327//16067 17325//16065 17323//16063 +f 17328//16068 17326//16066 17323//16063 17322//16062 +f 17326//16066 17328//16068 17329//16069 17330//16070 +f 17327//16067 17326//16066 17330//16070 17331//16071 +f 17332//16072 17333//16073 17319//16059 17318//16058 +f 17324//16064 17332//16072 17318//16058 17267//16007 +f 17332//16072 17324//16064 17325//16065 17334//16074 +f 17333//16073 17332//16072 17334//16074 17335//16075 +f 17336//16076 17337//16077 17291//16031 17290//16030 +f 17317//16057 17336//16076 17290//16030 17271//16011 +f 17336//16076 17317//16057 17319//16059 17338//16078 +f 17337//16077 17336//16076 17338//16078 17339//16079 +f 17340//16080 17341//16081 17305//16045 17304//16044 +f 17313//16053 17340//16080 17304//16044 17287//16027 +f 17340//16080 17313//16053 17315//16055 17342//16082 +f 17341//16081 17340//16080 17342//16082 17343//16083 +f 17344//16084 17345//16085 17315//16055 17314//16054 +f 17337//16077 17344//16084 17314//16054 17291//16031 +f 17344//16084 17337//16077 17339//16079 17346//16086 +f 17345//16085 17344//16084 17346//16086 17347//16087 +f 17348//16088 17349//16089 17339//16079 17338//16078 +f 17333//16073 17348//16088 17338//16078 17319//16059 +f 17348//16088 17333//16073 17335//16075 17350//16090 +f 17349//16089 17348//16088 17350//16090 17351//16091 +f 17352//16092 17353//16093 17335//16075 17334//16074 +f 17327//16067 17352//16092 17334//16074 17325//16065 +f 17352//16092 17327//16067 17331//16071 17354//16094 +f 17353//16093 17352//16092 17354//16094 17355//16095 +f 17356//16096 17357//16097 17347//16087 17346//16086 +f 17349//16089 17356//16096 17346//16086 17339//16079 +f 17356//16096 17349//16089 17351//16091 17358//16098 +f 17357//16097 17356//16096 17358//16098 17359//16099 +f 17360//16100 17361//16101 17351//16091 17350//16090 +f 17353//16093 17360//16100 17350//16090 17335//16075 +f 17360//16100 17353//16093 17355//16095 17362//16102 +f 17361//16101 17360//16100 17362//16102 17363//16103 +f 17364//16104 17365//16105 17355//16095 17354//16094 +f 17366//16106 17364//16104 17354//16094 17331//16071 +f 17364//16104 17366//16106 17367//16107 17368//16108 +f 17365//16105 17364//16104 17368//16108 17369//16109 +f 17370//16110 17371//16111 17372//16112 17373//16113 +f 17366//16106 17370//16110 17373//16113 17367//16107 +f 17370//16110 17366//16106 17331//16071 17330//16070 +f 17371//16111 17370//16110 17330//16070 17329//16069 +f 17374//16114 17375//16115 17367//16107 17373//16113 +f 17376//16116 17374//16114 17373//16113 17372//16112 +f 17374//16114 17376//16116 17377//16117 17378//16118 +f 17375//16115 17374//16114 17378//16118 17379//16119 +f 17380//16120 17381//16121 17379//16119 17378//16118 +f 17382//16122 17380//16120 17378//16118 17377//16117 +f 17380//16120 17382//16122 17383//16123 17384//16124 +f 17381//16121 17380//16120 17384//16124 17385//16125 +f 17386//16126 17387//16127 17369//16109 17368//16108 +f 17375//16115 17386//16126 17368//16108 17367//16107 +f 17386//16126 17375//16115 17379//16119 17388//16128 +f 17387//16127 17386//16126 17388//16128 17389//16129 +f 17390//16130 17391//16131 17363//16103 17362//16102 +f 17365//16105 17390//16130 17362//16102 17355//16095 +f 17390//16130 17365//16105 17369//16109 17392//16132 +f 17391//16131 17390//16130 17392//16132 17393//16133 +f 17394//16134 17395//16135 17385//16125 17384//16124 +f 17396//16136 17394//16134 17384//16124 17383//16123 +f 17394//16134 17396//16136 17397//16137 17398//16138 +f 17395//16135 17394//16134 17398//16138 17399//16139 +f 17400//16140 17401//16141 17389//16129 17388//16128 +f 17381//16121 17400//16140 17388//16128 17379//16119 +f 17400//16140 17381//16121 17385//16125 17402//16142 +f 17401//16141 17400//16140 17402//16142 17403//16143 +f 17404//16144 17405//16145 17393//16133 17392//16132 +f 17387//16127 17404//16144 17392//16132 17369//16109 +f 17404//16144 17387//16127 17389//16129 17406//16146 +f 17405//16145 17404//16144 17406//16146 17407//16147 +f 17408//16148 17409//16149 17359//16099 17358//16098 +f 17361//16101 17408//16148 17358//16098 17351//16091 +f 17408//16148 17361//16101 17363//16103 17410//16150 +f 17409//16149 17408//16148 17410//16150 17411//16151 +f 17412//16152 17413//16153 17411//16151 17410//16150 +f 17391//16131 17412//16152 17410//16150 17363//16103 +f 17412//16152 17391//16131 17393//16133 17414//16154 +f 17413//16153 17412//16152 17414//16154 17415//16155 +f 17416//16156 17417//16157 17415//16155 17414//16154 +f 17405//16145 17416//16156 17414//16154 17393//16133 +f 17416//16156 17405//16145 17407//16147 17418//16158 +f 17417//16157 17416//16156 17418//16158 17419//16159 +f 17420//16160 17421//16161 17422//16162 17423//16163 +f 17409//16149 17420//16160 17423//16163 17359//16099 +f 17420//16160 17409//16149 17411//16151 17424//16164 +f 17421//16161 17420//16160 17424//16164 17425//16165 +f 17426//16166 17427//16167 17425//16165 17424//16164 +f 17413//16153 17426//16166 17424//16164 17411//16151 +f 17426//16166 17413//16153 17415//16155 17428//16168 +f 17427//16167 17426//16166 17428//16168 17429//16169 +f 17430//16170 17431//16171 17432//16172 17433//16173 +f 17357//16097 17430//16170 17433//16173 17347//16087 +f 17430//16170 17357//16097 17359//16099 17423//16163 +f 17431//16171 17430//16170 17423//16163 17422//16162 +f 17434//16174 17345//16085 17347//16087 17433//16173 +f 17435//16175 17434//16174 17433//16173 17432//16172 +f 17434//16174 17435//16175 17343//16083 17342//16082 +f 17345//16085 17434//16174 17342//16082 17315//16055 +f 17436//16176 17437//16177 17438//16178 17439//16179 +f 17431//16171 17436//16176 17439//16179 17432//16172 +f 17436//16176 17431//16171 17422//16162 17440//16180 +f 17437//16177 17436//16176 17440//16180 17441//16181 +f 17442//16182 17443//16183 17444//16184 17445//16185 +f 17435//16175 17442//16182 17445//16185 17343//16083 +f 17442//16182 17435//16175 17432//16172 17439//16179 +f 17443//16183 17442//16182 17439//16179 17438//16178 +f 17446//16186 17447//16187 17448//16188 17449//16189 +f 17341//16081 17446//16186 17449//16189 17305//16045 +f 17446//16186 17341//16081 17343//16083 17445//16185 +f 17447//16187 17446//16186 17445//16185 17444//16184 +f 17450//16190 17303//16043 17305//16045 17449//16189 +f 17451//16191 17450//16190 17449//16189 17448//16188 +f 17450//16190 17451//16191 17301//16041 17300//16040 +f 17303//16043 17450//16190 17300//16040 17283//16023 +f 17452//16192 17453//16193 17448//16188 17447//16187 +f 17454//16194 17452//16192 17447//16187 17444//16184 +f 17452//16192 17454//16194 17455//16195 17456//16196 +f 17453//16193 17452//16192 17456//16196 17457//16197 +f 17458//16198 17308//16048 17297//16037 17299//16039 +f 17459//16199 17458//16198 17299//16039 17301//16041 +f 17458//16198 17459//16199 17460//16200 17461//16201 +f 17308//16048 17458//16198 17461//16201 17309//16049 +f 17462//16202 17459//16199 17301//16041 17451//16191 +f 17453//16193 17462//16202 17451//16191 17448//16188 +f 17462//16202 17453//16193 17457//16197 17463//16203 +f 17459//16199 17462//16202 17463//16203 17460//16200 +f 17464//16204 17465//16205 17466//16206 17467//16207 +f 17454//16194 17464//16204 17467//16207 17455//16195 +f 17464//16204 17454//16194 17444//16184 17443//16183 +f 17465//16205 17464//16204 17443//16183 17438//16178 +f 17468//16208 17469//16209 17311//16051 17310//16050 +f 17470//16210 17468//16208 17310//16050 17309//16049 +f 17468//16208 17470//16210 17471//16211 17472//16212 +f 17469//16209 17468//16208 17472//16212 17473//16213 +f 17474//16214 17475//16215 17473//16213 17472//16212 +f 17476//16216 17474//16214 17472//16212 17471//16211 +f 17474//16214 17476//16216 17477//16217 17478//16218 +f 17475//16215 17474//16214 17478//16218 17479//16219 +f 17480//16220 17481//16221 17482//16222 17483//16223 +f 17470//16210 17480//16220 17483//16223 17471//16211 +f 17480//16220 17470//16210 17309//16049 17461//16201 +f 17481//16221 17480//16220 17461//16201 17460//16200 +f 17484//16224 17485//16225 17479//16219 17478//16218 +f 17486//16226 17484//16224 17478//16218 17477//16217 +f 17484//16224 17486//16226 17487//16227 17488//16228 +f 17485//16225 17484//16224 17488//16228 17489//16229 +f 17490//16230 17491//16231 17489//16229 17488//16228 +f 17492//16232 17490//16230 17488//16228 17487//16227 +f 17490//16230 17492//16232 17493//16233 17494//16234 +f 17491//16231 17490//16230 17494//16234 17495//16235 +f 17496//16236 17497//16237 17498//16238 17499//16239 +f 17476//16216 17496//16236 17499//16239 17477//16217 +f 17496//16236 17476//16216 17471//16211 17483//16223 +f 17497//16237 17496//16236 17483//16223 17482//16222 +f 17500//16240 17501//16241 17502//16242 17503//16243 +f 17486//16226 17500//16240 17503//16243 17487//16227 +f 17500//16240 17486//16226 17477//16217 17499//16239 +f 17501//16241 17500//16240 17499//16239 17498//16238 +f 17504//16244 17492//16232 17487//16227 17503//16243 +f 17505//16245 17504//16244 17503//16243 17502//16242 +f 17504//16244 17505//16245 17506//16246 17507//16247 +f 17492//16232 17504//16244 17507//16247 17493//16233 +f 17508//16248 17509//16249 17510//16250 17511//16251 +f 17501//16241 17508//16248 17511//16251 17502//16242 +f 17508//16248 17501//16241 17498//16238 17512//16252 +f 17509//16249 17508//16248 17512//16252 17513//16253 +f 17514//16254 17505//16245 17502//16242 17511//16251 +f 17515//16255 17514//16254 17511//16251 17510//16250 +f 17514//16254 17515//16255 17516//16256 17517//16257 +f 17505//16245 17514//16254 17517//16257 17506//16246 +f 17518//16258 17519//16259 17495//16235 17494//16234 +f 17520//16260 17518//16258 17494//16234 17493//16233 +f 17518//16258 17520//16260 17521//16261 17522//16262 +f 17519//16259 17518//16258 17522//16262 17523//16263 +f 17524//16264 17525//16265 17523//16263 17522//16262 +f 17526//16266 17524//16264 17522//16262 17521//16261 +f 17524//16264 17526//16266 17527//16267 17528//16268 +f 17525//16265 17524//16264 17528//16268 17529//16269 +f 17530//16270 17520//16260 17493//16233 17507//16247 +f 17531//16271 17530//16270 17507//16247 17506//16246 +f 17530//16270 17531//16271 17532//16272 17533//16273 +f 17520//16260 17530//16270 17533//16273 17521//16261 +f 17534//16274 17535//16275 17529//16269 17528//16268 +f 17536//16276 17534//16274 17528//16268 17527//16267 +f 17534//16274 17536//16276 17537//16277 17538//16278 +f 17535//16275 17534//16274 17538//16278 17539//16279 +f 17540//16280 17526//16266 17521//16261 17533//16273 +f 17541//16281 17540//16280 17533//16273 17532//16272 +f 17540//16280 17541//16281 17542//16282 17543//16283 +f 17526//16266 17540//16280 17543//16283 17527//16267 +f 17544//16284 17545//16285 17539//16279 17538//16278 +f 17546//16286 17544//16284 17538//16278 17537//16277 +f 17544//16284 17546//16286 17547//16287 17548//16288 +f 17545//16285 17544//16284 17548//16288 17549//16289 +f 17550//16290 17536//16276 17527//16267 17543//16283 +f 17551//16291 17550//16290 17543//16283 17542//16282 +f 17550//16290 17551//16291 17552//16292 17553//16293 +f 17536//16276 17550//16290 17553//16293 17537//16277 +f 17554//16294 17555//16295 17556//16296 17557//16297 +f 17548//16288 17554//16294 17557//16297 17549//16289 +f 17554//16294 17548//16288 17547//16287 17558//16298 +f 17555//16295 17554//16294 17558//16298 17559//16299 +f 17560//16300 17561//16301 17562//16302 17563//16303 +f 17546//16286 17560//16300 17563//16303 17547//16287 +f 17560//16300 17546//16286 17537//16277 17553//16293 +f 17561//16301 17560//16300 17553//16293 17552//16292 +f 17564//16304 17565//16305 17559//16299 17558//16298 +f 17563//16303 17564//16304 17558//16298 17547//16287 +f 17564//16304 17563//16303 17562//16302 17566//16306 +f 17565//16305 17564//16304 17566//16306 17567//16307 +f 17568//16308 17569//16309 17570//16310 17571//16311 +f 17555//16295 17568//16308 17571//16311 17556//16296 +f 17568//16308 17555//16295 17559//16299 17572//16312 +f 17569//16309 17568//16308 17572//16312 17573//16313 +f 17574//16314 17193//15933 17194//15934 17575//16315 +f 17569//16309 17574//16314 17575//16315 17570//16310 +f 17574//16314 17569//16309 17573//16313 17576//16316 +f 17193//15933 17574//16314 17576//16316 17195//15935 +f 17577//16317 17578//16318 17195//15935 17576//16316 +f 17579//16319 17577//16317 17576//16316 17573//16313 +f 17577//16317 17579//16319 17580//16320 17581//16321 +f 17578//16318 17577//16317 17581//16321 17582//16322 +f 17583//16323 17584//16324 17567//16307 17566//16306 +f 17585//16325 17583//16323 17566//16306 17562//16302 +f 17583//16323 17585//16325 17586//16326 17587//16327 +f 17584//16324 17583//16323 17587//16327 17588//16328 +f 17589//16329 17590//16330 17586//16326 17585//16325 +f 17561//16301 17589//16329 17585//16325 17562//16302 +f 17589//16329 17561//16301 17552//16292 17591//16331 +f 17590//16330 17589//16329 17591//16331 17592//16332 +f 17593//16333 17594//16334 17580//16320 17595//16335 +f 17584//16324 17593//16333 17595//16335 17567//16307 +f 17593//16333 17584//16324 17588//16328 17596//16336 +f 17594//16334 17593//16333 17596//16336 17597//16337 +f 17598//16338 17599//16339 17592//16332 17591//16331 +f 17551//16291 17598//16338 17591//16331 17552//16292 +f 17598//16338 17551//16291 17542//16282 17600//16340 +f 17599//16339 17598//16338 17600//16340 17601//16341 +f 17602//16342 17603//16343 17588//16328 17587//16327 +f 17604//16344 17602//16342 17587//16327 17586//16326 +f 17602//16342 17604//16344 17605//16345 17606//16346 +f 17603//16343 17602//16342 17606//16346 17607//16347 +f 17608//16348 17609//16349 17605//16345 17604//16344 +f 17590//16330 17608//16348 17604//16344 17586//16326 +f 17608//16348 17590//16330 17592//16332 17610//16350 +f 17609//16349 17608//16348 17610//16350 17611//16351 +f 17612//16352 17613//16353 17601//16341 17600//16340 +f 17541//16281 17612//16352 17600//16340 17542//16282 +f 17612//16352 17541//16281 17532//16272 17614//16354 +f 17613//16353 17612//16352 17614//16354 17615//16355 +f 17616//16356 17617//16357 17611//16351 17610//16350 +f 17599//16339 17616//16356 17610//16350 17592//16332 +f 17616//16356 17599//16339 17601//16341 17618//16358 +f 17617//16357 17616//16356 17618//16358 17619//16359 +f 17620//16360 17621//16361 17615//16355 17614//16354 +f 17531//16271 17620//16360 17614//16354 17532//16272 +f 17620//16360 17531//16271 17506//16246 17517//16257 +f 17621//16361 17620//16360 17517//16257 17516//16256 +f 17622//16362 17623//16363 17619//16359 17618//16358 +f 17613//16353 17622//16362 17618//16358 17601//16341 +f 17622//16362 17613//16353 17615//16355 17624//16364 +f 17623//16363 17622//16362 17624//16364 17625//16365 +f 17626//16366 17627//16367 17625//16365 17624//16364 +f 17621//16361 17626//16366 17624//16364 17615//16355 +f 17626//16366 17621//16361 17516//16256 17628//16368 +f 17627//16367 17626//16366 17628//16368 17629//16369 +f 17630//16370 17631//16371 17629//16369 17628//16368 +f 17515//16255 17630//16370 17628//16368 17516//16256 +f 17630//16370 17515//16255 17510//16250 17632//16372 +f 17631//16371 17630//16370 17632//16372 17633//16373 +f 17634//16374 17635//16375 17636//16376 17637//16377 +f 17623//16363 17634//16374 17637//16377 17619//16359 +f 17634//16374 17623//16363 17625//16365 17638//16378 +f 17635//16375 17634//16374 17638//16378 17639//16379 +f 17640//16380 17641//16381 17639//16379 17638//16378 +f 17627//16367 17640//16380 17638//16378 17625//16365 +f 17640//16380 17627//16367 17629//16369 17642//16382 +f 17641//16381 17640//16380 17642//16382 17643//16383 +f 17644//16384 17645//16385 17646//16386 17647//16387 +f 17617//16357 17644//16384 17647//16387 17611//16351 +f 17644//16384 17617//16357 17619//16359 17637//16377 +f 17645//16385 17644//16384 17637//16377 17636//16376 +f 17648//16388 17609//16349 17611//16351 17647//16387 +f 17649//16389 17648//16388 17647//16387 17646//16386 +f 17648//16388 17649//16389 17650//16390 17651//16391 +f 17609//16349 17648//16388 17651//16391 17605//16345 +f 17652//16392 17653//16393 17654//16394 17655//16395 +f 17645//16385 17652//16392 17655//16395 17646//16386 +f 17652//16392 17645//16385 17636//16376 17656//16396 +f 17653//16393 17652//16392 17656//16396 17657//16397 +f 17658//16398 17659//16399 17607//16347 17606//16346 +f 17651//16391 17658//16398 17606//16346 17605//16345 +f 17658//16398 17651//16391 17650//16390 17660//16400 +f 17659//16399 17658//16398 17660//16400 17661//16401 +f 17662//16402 17663//16403 17664//16404 17665//16405 +f 17649//16389 17662//16402 17665//16405 17650//16390 +f 17662//16402 17649//16389 17646//16386 17655//16395 +f 17663//16403 17662//16402 17655//16395 17654//16394 +f 17666//16406 17667//16407 17661//16401 17660//16400 +f 17665//16405 17666//16406 17660//16400 17650//16390 +f 17666//16406 17665//16405 17664//16404 17668//16408 +f 17667//16407 17666//16406 17668//16408 17669//16409 +f 17670//16410 17671//16411 17597//16337 17596//16336 +f 17603//16343 17670//16410 17596//16336 17588//16328 +f 17670//16410 17603//16343 17607//16347 17672//16412 +f 17671//16411 17670//16410 17672//16412 17673//16413 +f 17674//16414 17675//16415 17673//16413 17672//16412 +f 17659//16399 17674//16414 17672//16412 17607//16347 +f 17674//16414 17659//16399 17661//16401 17676//16416 +f 17675//16415 17674//16414 17676//16416 17677//16417 +f 17678//16418 17679//16419 17582//16322 17581//16321 +f 17594//16334 17678//16418 17581//16321 17580//16320 +f 17678//16418 17594//16334 17597//16337 17680//16420 +f 17679//16419 17678//16418 17680//16420 17681//16421 +f 17682//16422 17683//16423 17197//15937 17196//15936 +f 17578//16318 17682//16422 17196//15936 17195//15935 +f 17682//16422 17578//16318 17582//16322 17684//16424 +f 17683//16423 17682//16422 17684//16424 17685//16425 +f 17686//16426 17687//16427 17681//16421 17680//16420 +f 17671//16411 17686//16426 17680//16420 17597//16337 +f 17686//16426 17671//16411 17673//16413 17688//16428 +f 17687//16427 17686//16426 17688//16428 17689//16429 +f 17690//16430 17691//16431 17685//16425 17684//16424 +f 17679//16419 17690//16430 17684//16424 17582//16322 +f 17690//16430 17679//16419 17681//16421 17692//16432 +f 17691//16431 17690//16430 17692//16432 17693//16433 +f 17694//16434 17695//16435 17696//16436 17697//16437 +f 17683//16423 17694//16434 17697//16437 17197//15937 +f 17694//16434 17683//16423 17685//16425 17698//16438 +f 17695//16435 17694//16434 17698//16438 17699//16439 +f 17700//16440 17701//16441 17702//16442 17703//16443 +f 17695//16435 17700//16440 17703//16443 17696//16436 +f 17700//16440 17695//16435 17699//16439 17704//16444 +f 17701//16441 17700//16440 17704//16444 17705//16445 +f 17706//16446 17707//16447 17699//16439 17698//16438 +f 17691//16431 17706//16446 17698//16438 17685//16425 +f 17706//16446 17691//16431 17693//16433 17708//16448 +f 17707//16447 17706//16446 17708//16448 17709//16449 +f 17710//16450 17711//16451 17693//16433 17692//16432 +f 17687//16427 17710//16450 17692//16432 17681//16421 +f 17710//16450 17687//16427 17689//16429 17712//16452 +f 17711//16451 17710//16450 17712//16452 17713//16453 +f 17714//16454 17715//16455 17705//16445 17704//16444 +f 17707//16447 17714//16454 17704//16444 17699//16439 +f 17714//16454 17707//16447 17709//16449 17716//16456 +f 17715//16455 17714//16454 17716//16456 17717//16457 +f 17718//16458 17719//16459 17709//16449 17708//16448 +f 17711//16451 17718//16458 17708//16448 17693//16433 +f 17718//16458 17711//16451 17713//16453 17720//16460 +f 17719//16459 17718//16458 17720//16460 17721//16461 +f 17722//16462 17723//16463 17717//16457 17716//16456 +f 17719//16459 17722//16462 17716//16456 17709//16449 +f 17722//16462 17719//16459 17721//16461 17724//16464 +f 17723//16463 17722//16462 17724//16464 17725//16465 +f 17726//16466 17727//16467 17713//16453 17712//16452 +f 17728//16468 17726//16466 17712//16452 17689//16429 +f 17726//16466 17728//16468 17729//16469 17730//16470 +f 17727//16467 17726//16466 17730//16470 17731//16471 +f 17732//16472 17733//16473 17725//16465 17724//16464 +f 17734//16474 17732//16472 17724//16464 17721//16461 +f 17732//16472 17734//16474 17735//16475 17736//16476 +f 17733//16473 17732//16472 17736//16476 17737//16477 +f 17738//16478 17734//16474 17721//16461 17720//16460 +f 17727//16467 17738//16478 17720//16460 17713//16453 +f 17738//16478 17727//16467 17731//16471 17739//16479 +f 17734//16474 17738//16478 17739//16479 17735//16475 +f 17740//16480 17741//16481 17737//16477 17736//16476 +f 17742//16482 17740//16480 17736//16476 17735//16475 +f 17740//16480 17742//16482 17743//16483 17744//16484 +f 17741//16481 17740//16480 17744//16484 17745//16485 +f 17746//16486 17742//16482 17735//16475 17739//16479 +f 17747//16487 17746//16486 17739//16479 17731//16471 +f 17746//16486 17747//16487 17748//16488 17749//16489 +f 17742//16482 17746//16486 17749//16489 17743//16483 +f 17750//16490 17751//16491 17745//16485 17744//16484 +f 17752//16492 17750//16490 17744//16484 17743//16483 +f 17750//16490 17752//16492 17753//16493 17754//16494 +f 17751//16491 17750//16490 17754//16494 17755//16495 +f 17756//16496 17757//16497 17755//16495 17754//16494 +f 17758//16498 17756//16496 17754//16494 17753//16493 +f 17756//16496 17758//16498 17759//16499 17760//16500 +f 17757//16497 17756//16496 17760//16500 17761//16501 +f 17762//16502 17763//16503 17764//16504 17765//16505 +f 17752//16492 17762//16502 17765//16505 17753//16493 +f 17762//16502 17752//16492 17743//16483 17749//16489 +f 17763//16503 17762//16502 17749//16489 17748//16488 +f 17766//16506 17758//16498 17753//16493 17765//16505 +f 17767//16507 17766//16506 17765//16505 17764//16504 +f 17766//16506 17767//16507 17768//16508 17769//16509 +f 17758//16498 17766//16506 17769//16509 17759//16499 +f 17770//16510 17771//16511 17759//16499 17769//16509 +f 17772//16512 17770//16510 17769//16509 17768//16508 +f 17770//16510 17772//16512 17773//16513 17774//16514 +f 17771//16511 17770//16510 17774//16514 17775//16515 +f 17776//16516 17777//16517 17778//16518 17779//16519 +f 17767//16507 17776//16516 17779//16519 17768//16508 +f 17776//16516 17767//16507 17764//16504 17780//16520 +f 17777//16517 17776//16516 17780//16520 17781//16521 +f 17782//16522 17783//16523 17784//16524 17785//16525 +f 17772//16512 17782//16522 17785//16525 17773//16513 +f 17782//16522 17772//16512 17768//16508 17779//16519 +f 17783//16523 17782//16522 17779//16519 17778//16518 +f 17786//16526 17787//16527 17781//16521 17780//16520 +f 17763//16503 17786//16526 17780//16520 17764//16504 +f 17786//16526 17763//16503 17748//16488 17788//16528 +f 17787//16527 17786//16526 17788//16528 17789//16529 +f 17790//16530 17791//16531 17789//16529 17788//16528 +f 17747//16487 17790//16530 17788//16528 17748//16488 +f 17790//16530 17747//16487 17731//16471 17730//16470 +f 17791//16531 17790//16530 17730//16470 17729//16469 +f 17792//16532 17793//16533 17794//16534 17795//16535 +f 17777//16517 17792//16532 17795//16535 17778//16518 +f 17792//16532 17777//16517 17781//16521 17796//16536 +f 17793//16533 17792//16532 17796//16536 17797//16537 +f 17798//16538 17799//16539 17797//16537 17796//16536 +f 17787//16527 17798//16538 17796//16536 17781//16521 +f 17798//16538 17787//16527 17789//16529 17800//16540 +f 17799//16539 17798//16538 17800//16540 17801//16541 +f 17802//16542 17803//16543 17801//16541 17800//16540 +f 17791//16531 17802//16542 17800//16540 17789//16529 +f 17802//16542 17791//16531 17729//16469 17804//16544 +f 17803//16543 17802//16542 17804//16544 17677//16417 +f 17805//16545 17675//16415 17677//16417 17804//16544 +f 17728//16468 17805//16545 17804//16544 17729//16469 +f 17805//16545 17728//16468 17689//16429 17688//16428 +f 17675//16415 17805//16545 17688//16428 17673//16413 +f 17806//16546 17803//16543 17677//16417 17676//16416 +f 17667//16407 17806//16546 17676//16416 17661//16401 +f 17806//16546 17667//16407 17669//16409 17807//16547 +f 17803//16543 17806//16546 17807//16547 17801//16541 +f 17808//16548 17799//16539 17801//16541 17807//16547 +f 17809//16549 17808//16548 17807//16547 17669//16409 +f 17808//16548 17809//16549 17810//16550 17811//16551 +f 17799//16539 17808//16548 17811//16551 17797//16537 +f 17812//16552 17809//16549 17669//16409 17668//16408 +f 17813//16553 17812//16552 17668//16408 17664//16404 +f 17812//16552 17813//16553 17814//16554 17815//16555 +f 17809//16549 17812//16552 17815//16555 17810//16550 +f 17816//16556 17817//16557 17814//16554 17813//16553 +f 17663//16403 17816//16556 17813//16553 17664//16404 +f 17816//16556 17663//16403 17654//16394 17818//16558 +f 17817//16557 17816//16556 17818//16558 17819//16559 +f 17820//16560 17793//16533 17797//16537 17811//16551 +f 17821//16561 17820//16560 17811//16551 17810//16550 +f 17820//16560 17821//16561 17822//16562 17823//16563 +f 17793//16533 17820//16560 17823//16563 17794//16534 +f 17824//16564 17821//16561 17810//16550 17815//16555 +f 17825//16565 17824//16564 17815//16555 17814//16554 +f 17824//16564 17825//16565 17826//16566 17827//16567 +f 17821//16561 17824//16564 17827//16567 17822//16562 +f 17828//16568 17829//16569 17826//16566 17825//16565 +f 17817//16557 17828//16568 17825//16565 17814//16554 +f 17828//16568 17817//16557 17819//16559 17830//16570 +f 17829//16569 17828//16568 17830//16570 17831//16571 +f 17832//16572 17833//16573 17819//16559 17818//16558 +f 17653//16393 17832//16572 17818//16558 17654//16394 +f 17832//16572 17653//16393 17657//16397 17834//16574 +f 17833//16573 17832//16572 17834//16574 17835//16575 +f 17836//16576 17837//16577 17657//16397 17656//16396 +f 17635//16375 17836//16576 17656//16396 17636//16376 +f 17836//16576 17635//16375 17639//16379 17838//16578 +f 17837//16577 17836//16576 17838//16578 17839//16579 +f 17840//16580 17841//16581 17831//16571 17830//16570 +f 17833//16573 17840//16580 17830//16570 17819//16559 +f 17840//16580 17833//16573 17835//16575 17842//16582 +f 17841//16581 17840//16580 17842//16582 17843//16583 +f 17844//16584 17845//16585 17835//16575 17834//16574 +f 17837//16577 17844//16584 17834//16574 17657//16397 +f 17844//16584 17837//16577 17839//16579 17846//16586 +f 17845//16585 17844//16584 17846//16586 17847//16587 +f 17848//16588 17849//16589 17850//16590 17851//16591 +f 17829//16569 17848//16588 17851//16591 17826//16566 +f 17848//16588 17829//16569 17831//16571 17852//16592 +f 17849//16589 17848//16588 17852//16592 17853//16593 +f 17854//16594 17855//16595 17822//16562 17827//16567 +f 17851//16591 17854//16594 17827//16567 17826//16566 +f 17854//16594 17851//16591 17850//16590 17856//16596 +f 17855//16595 17854//16594 17856//16596 17857//16597 +f 17858//16598 17859//16599 17794//16534 17823//16563 +f 17855//16595 17858//16598 17823//16563 17822//16562 +f 17858//16598 17855//16595 17857//16597 17860//16600 +f 17859//16599 17858//16598 17860//16600 17861//16601 +f 17862//16602 17863//16603 17853//16593 17852//16592 +f 17841//16581 17862//16602 17852//16592 17831//16571 +f 17862//16602 17841//16581 17843//16583 17864//16604 +f 17863//16603 17862//16602 17864//16604 17865//16605 +f 17866//16606 17867//16607 17857//16597 17856//16596 +f 17868//16608 17866//16606 17856//16596 17850//16590 +f 17866//16606 17868//16608 17869//16609 17870//16610 +f 17867//16607 17866//16606 17870//16610 17871//16611 +f 17872//16612 17873//16613 17869//16609 17868//16608 +f 17849//16589 17872//16612 17868//16608 17850//16590 +f 17872//16612 17849//16589 17853//16593 17874//16614 +f 17873//16613 17872//16612 17874//16614 17875//16615 +f 17876//16616 17783//16523 17778//16518 17795//16535 +f 17859//16599 17876//16616 17795//16535 17794//16534 +f 17876//16616 17859//16599 17861//16601 17877//16617 +f 17783//16523 17876//16616 17877//16617 17784//16524 +f 17878//16618 17879//16619 17861//16601 17860//16600 +f 17867//16607 17878//16618 17860//16600 17857//16597 +f 17878//16618 17867//16607 17871//16611 17880//16620 +f 17879//16619 17878//16618 17880//16620 17881//16621 +f 17882//16622 17883//16623 17784//16524 17877//16617 +f 17879//16619 17882//16622 17877//16617 17861//16601 +f 17882//16622 17879//16619 17881//16621 17884//16624 +f 17883//16623 17882//16622 17884//16624 17885//16625 +f 17886//16626 17887//16627 17773//16513 17785//16525 +f 17883//16623 17886//16626 17785//16525 17784//16524 +f 17886//16626 17883//16623 17885//16625 17888//16628 +f 17887//16627 17886//16626 17888//16628 17889//16629 +f 17890//16630 17891//16631 17881//16621 17880//16620 +f 17892//16632 17890//16630 17880//16620 17871//16611 +f 17890//16630 17892//16632 17893//16633 17894//16634 +f 17891//16631 17890//16630 17894//16634 17895//16635 +f 17896//16636 17897//16637 17775//16515 17774//16514 +f 17887//16627 17896//16636 17774//16514 17773//16513 +f 17896//16636 17887//16627 17889//16629 17898//16638 +f 17897//16637 17896//16636 17898//16638 17899//16639 +f 17900//16640 17901//16641 17885//16625 17884//16624 +f 17891//16631 17900//16640 17884//16624 17881//16621 +f 17900//16640 17891//16631 17895//16635 17902//16642 +f 17901//16641 17900//16640 17902//16642 17903//16643 +f 17904//16644 17905//16645 17889//16629 17888//16628 +f 17901//16641 17904//16644 17888//16628 17885//16625 +f 17904//16644 17901//16641 17903//16643 17906//16646 +f 17905//16645 17904//16644 17906//16646 17907//16647 +f 17908//16648 17909//16649 17910//16650 17911//16651 +f 17897//16637 17908//16648 17911//16651 17775//16515 +f 17908//16648 17897//16637 17899//16639 17912//16652 +f 17909//16649 17908//16648 17912//16652 17913//16653 +f 17914//16654 17771//16511 17775//16515 17911//16651 +f 17915//16655 17914//16654 17911//16651 17910//16650 +f 17914//16654 17915//16655 17761//16501 17760//16500 +f 17771//16511 17914//16654 17760//16500 17759//16499 +f 17916//16656 17917//16657 17899//16639 17898//16638 +f 17905//16645 17916//16656 17898//16638 17889//16629 +f 17916//16656 17905//16645 17907//16647 17918//16658 +f 17917//16657 17916//16656 17918//16658 17919//16659 +f 17920//16660 17921//16661 17913//16653 17912//16652 +f 17917//16657 17920//16660 17912//16652 17899//16639 +f 17920//16660 17917//16657 17919//16659 17922//16662 +f 17921//16661 17920//16660 17922//16662 17923//16663 +f 17924//16664 17925//16665 17923//16663 17922//16662 +f 17926//16666 17924//16664 17922//16662 17919//16659 +f 17924//16664 17926//16666 17927//16667 17928//16668 +f 17925//16665 17924//16664 17928//16668 17929//16669 +f 17930//16670 17926//16666 17919//16659 17918//16658 +f 17931//16671 17930//16670 17918//16658 17907//16647 +f 17930//16670 17931//16671 17932//16672 17933//16673 +f 17926//16666 17930//16670 17933//16673 17927//16667 +f 17934//16674 17935//16675 17927//16667 17933//16673 +f 17936//16676 17934//16674 17933//16673 17932//16672 +f 17934//16674 17936//16676 17937//16677 17938//16678 +f 17935//16675 17934//16674 17938//16678 17939//16679 +f 17940//16680 17941//16681 17942//16682 17943//16683 +f 17931//16671 17940//16680 17943//16683 17932//16672 +f 17940//16680 17931//16671 17907//16647 17906//16646 +f 17941//16681 17940//16680 17906//16646 17903//16643 +f 17944//16684 17945//16685 17946//16686 17947//16687 +f 17936//16676 17944//16684 17947//16687 17937//16677 +f 17944//16684 17936//16676 17932//16672 17943//16683 +f 17945//16685 17944//16684 17943//16683 17942//16682 +f 17948//16688 17949//16689 17950//16690 17951//16691 +f 17941//16681 17948//16688 17951//16691 17942//16682 +f 17948//16688 17941//16681 17903//16643 17902//16642 +f 17949//16689 17948//16688 17902//16642 17895//16635 +f 17952//16692 17953//16693 17954//16694 17955//16695 +f 17945//16685 17952//16692 17955//16695 17946//16686 +f 17952//16692 17945//16685 17942//16682 17951//16691 +f 17953//16693 17952//16692 17951//16691 17950//16690 +f 17956//16696 17957//16697 17958//16698 17959//16699 +f 17949//16689 17956//16696 17959//16699 17950//16690 +f 17956//16696 17949//16689 17895//16635 17894//16634 +f 17957//16697 17956//16696 17894//16634 17893//16633 +f 17960//16700 17961//16701 17962//16702 17963//16703 +f 17953//16693 17960//16700 17963//16703 17954//16694 +f 17960//16700 17953//16693 17950//16690 17959//16699 +f 17961//16701 17960//16700 17959//16699 17958//16698 +f 17964//16704 17965//16705 17946//16686 17955//16695 +f 17966//16706 17964//16704 17955//16695 17954//16694 +f 17964//16704 17966//16706 17967//16707 17968//16708 +f 17965//16705 17964//16704 17968//16708 17969//16709 +f 17970//16710 17966//16706 17954//16694 17963//16703 +f 17971//16711 17970//16710 17963//16703 17962//16702 +f 17970//16710 17971//16711 17972//16712 17973//16713 +f 17966//16706 17970//16710 17973//16713 17967//16707 +f 17974//16714 17975//16715 17976//16716 17977//16717 +f 17961//16701 17974//16714 17977//16717 17962//16702 +f 17974//16714 17961//16701 17958//16698 17978//16718 +f 17975//16715 17974//16714 17978//16718 17979//16719 +f 17980//16720 17981//16721 17937//16677 17947//16687 +f 17965//16705 17980//16720 17947//16687 17946//16686 +f 17980//16720 17965//16705 17969//16709 17982//16722 +f 17981//16721 17980//16720 17982//16722 17983//16723 +f 17984//16724 17971//16711 17962//16702 17977//16717 +f 17985//16725 17984//16724 17977//16717 17976//16716 +f 17984//16724 17985//16725 17986//16726 17987//16727 +f 17971//16711 17984//16724 17987//16727 17972//16712 +f 17988//16728 17989//16729 17939//16679 17938//16678 +f 17981//16721 17988//16728 17938//16678 17937//16677 +f 17988//16728 17981//16721 17983//16723 17990//16730 +f 17989//16729 17988//16728 17990//16730 17991//16731 +f 17992//16732 17935//16675 17939//16679 17993//16733 +f 17994//16734 17992//16732 17993//16733 17995//16735 +f 17992//16732 17994//16734 17929//16669 17928//16668 +f 17935//16675 17992//16732 17928//16668 17927//16667 +f 17996//16736 17997//16737 17995//16735 17993//16733 +f 17989//16729 17996//16736 17993//16733 17939//16679 +f 17996//16736 17989//16729 17991//16731 17998//16738 +f 17997//16737 17996//16736 17998//16738 17999//16739 +f 18000//16740 18001//16741 17983//16723 17982//16722 +f 18002//16742 18000//16740 17982//16722 17969//16709 +f 18000//16740 18002//16742 18003//16743 18004//16744 +f 18001//16741 18000//16740 18004//16744 18005//16745 +f 18006//16746 18007//16747 17999//16739 17998//16738 +f 18008//16748 18006//16746 17998//16738 17991//16731 +f 18006//16746 18008//16748 18009//16749 18010//16750 +f 18007//16747 18006//16746 18010//16750 18011//16751 +f 18012//16752 18008//16748 17991//16731 17990//16730 +f 18001//16741 18012//16752 17990//16730 17983//16723 +f 18012//16752 18001//16741 18005//16745 18013//16753 +f 18008//16748 18012//16752 18013//16753 18009//16749 +f 18014//16754 18015//16755 18011//16751 18010//16750 +f 18016//16756 18014//16754 18010//16750 18009//16749 +f 18014//16754 18016//16756 17206//15946 17205//15945 +f 18015//16755 18014//16754 17205//15945 17204//15944 +f 18017//16757 18016//16756 18009//16749 18013//16753 +f 18018//16758 18017//16757 18013//16753 18005//16745 +f 18017//16757 18018//16758 18019//16759 18020//16760 +f 18016//16756 18017//16757 18020//16760 17206//15946 +f 18021//16761 18018//16758 18005//16745 18004//16744 +f 18022//16762 18021//16761 18004//16744 18003//16743 +f 18021//16761 18022//16762 18023//16763 18024//16764 +f 18018//16758 18021//16761 18024//16764 18019//16759 +f 18025//16765 17199//15939 17206//15946 18020//16760 +f 18026//16766 18025//16765 18020//16760 18019//16759 +f 18025//16765 18026//16766 18027//16767 18028//16768 +f 17199//15939 18025//16765 18028//16768 17200//15940 +f 18029//16769 18026//16766 18019//16759 18024//16764 +f 18030//16770 18029//16769 18024//16764 18023//16763 +f 18029//16769 18030//16770 18031//16771 18032//16772 +f 18026//16766 18029//16769 18032//16772 18027//16767 +f 18033//16773 18034//16774 18035//16775 18036//16776 +f 18037//16777 18033//16773 18036//16776 18038//16778 +f 18033//16773 18037//16777 17200//15940 18028//16768 +f 18034//16774 18033//16773 18028//16768 18027//16767 +f 18039//16779 18040//16780 17203//15943 17201//15941 +f 18037//16777 18039//16779 17201//15941 17200//15940 +f 18039//16779 18037//16777 18038//16778 18041//16781 +f 18040//16780 18039//16779 18041//16781 18042//16782 +f 18043//16783 18044//16784 18045//16785 18046//16786 +f 18034//16774 18043//16783 18046//16786 18035//16775 +f 18043//16783 18034//16774 18027//16767 18032//16772 +f 18044//16784 18043//16783 18032//16772 18031//16771 +f 18047//16787 18048//16788 18035//16775 18046//16786 +f 18049//16789 18047//16787 18046//16786 18045//16785 +f 18047//16787 18049//16789 18050//16790 18051//16791 +f 18048//16788 18047//16787 18051//16791 18052//16792 +f 18053//16793 18054//16794 18055//16795 18056//16796 +f 18049//16789 18053//16793 18056//16796 18050//16790 +f 18053//16793 18049//16789 18045//16785 18057//16797 +f 18054//16794 18053//16793 18057//16797 18058//16798 +f 18059//16799 18060//16800 18058//16798 18057//16797 +f 18044//16784 18059//16799 18057//16797 18045//16785 +f 18059//16799 18044//16784 18031//16771 18061//16801 +f 18060//16800 18059//16799 18061//16801 18062//16802 +f 18063//16803 18064//16804 18062//16802 18061//16801 +f 18030//16770 18063//16803 18061//16801 18031//16771 +f 18063//16803 18030//16770 18023//16763 18065//16805 +f 18064//16804 18063//16803 18065//16805 18066//16806 +f 18067//16807 18068//16808 18069//16809 18070//16810 +f 18054//16794 18067//16807 18070//16810 18055//16795 +f 18067//16807 18054//16794 18058//16798 18071//16811 +f 18068//16808 18067//16807 18071//16811 18072//16812 +f 18073//16813 18074//16814 18066//16806 18065//16805 +f 18022//16762 18073//16813 18065//16805 18023//16763 +f 18073//16813 18022//16762 18003//16743 18075//16815 +f 18074//16814 18073//16813 18075//16815 18076//16816 +f 18077//16817 18078//16818 18072//16812 18071//16811 +f 18060//16800 18077//16817 18071//16811 18058//16798 +f 18077//16817 18060//16800 18062//16802 18079//16819 +f 18078//16818 18077//16817 18079//16819 18080//16820 +f 18081//16821 18082//16822 18080//16820 18079//16819 +f 18064//16804 18081//16821 18079//16819 18062//16802 +f 18081//16821 18064//16804 18066//16806 18083//16823 +f 18082//16822 18081//16821 18083//16823 18084//16824 +f 18085//16825 18086//16826 18076//16816 18075//16815 +f 18002//16742 18085//16825 18075//16815 18003//16743 +f 18085//16825 18002//16742 17969//16709 17968//16708 +f 18086//16826 18085//16825 17968//16708 17967//16707 +f 18087//16827 18088//16828 18084//16824 18083//16823 +f 18074//16814 18087//16827 18083//16823 18066//16806 +f 18087//16827 18074//16814 18076//16816 18089//16829 +f 18088//16828 18087//16827 18089//16829 18090//16830 +f 18091//16831 18092//16832 18090//16830 18089//16829 +f 18086//16826 18091//16831 18089//16829 18076//16816 +f 18091//16831 18086//16826 17967//16707 17973//16713 +f 18092//16832 18091//16831 17973//16713 17972//16712 +f 18093//16833 18094//16834 18095//16835 18096//16836 +f 18082//16822 18093//16833 18096//16836 18080//16820 +f 18093//16833 18082//16822 18084//16824 18097//16837 +f 18094//16834 18093//16833 18097//16837 18098//16838 +f 18099//16839 18100//16840 18101//16841 18102//16842 +f 18092//16832 18099//16839 18102//16842 18090//16830 +f 18099//16839 18092//16832 17972//16712 17987//16727 +f 18100//16840 18099//16839 17987//16727 17986//16726 +f 18103//16843 18104//16844 18098//16838 18097//16837 +f 18088//16828 18103//16843 18097//16837 18084//16824 +f 18103//16843 18088//16828 18090//16830 18102//16842 +f 18104//16844 18103//16843 18102//16842 18101//16841 +f 18105//16845 18106//16846 18101//16841 18100//16840 +f 18107//16847 18105//16845 18100//16840 17986//16726 +f 18105//16845 18107//16847 18108//16848 18109//16849 +f 18106//16846 18105//16845 18109//16849 18110//16850 +f 18111//16851 18112//16852 18098//16838 18104//16844 +f 18106//16846 18111//16851 18104//16844 18101//16841 +f 18111//16851 18106//16846 18110//16850 18113//16853 +f 18112//16852 18111//16851 18113//16853 18114//16854 +f 18115//16855 18116//16856 18095//16835 18094//16834 +f 18112//16852 18115//16855 18094//16834 18098//16838 +f 18115//16855 18112//16852 18114//16854 18117//16857 +f 18116//16856 18115//16855 18117//16857 18118//16858 +f 18119//16859 18078//16818 18080//16820 18096//16836 +f 18120//16860 18119//16859 18096//16836 18095//16835 +f 18119//16859 18120//16860 18121//16861 18122//16862 +f 18078//16818 18119//16859 18122//16862 18072//16812 +f 18123//16863 18124//16864 18121//16861 18120//16860 +f 18116//16856 18123//16863 18120//16860 18095//16835 +f 18123//16863 18116//16856 18118//16858 18125//16865 +f 18124//16864 18123//16863 18125//16865 18126//16866 +f 18127//16867 18068//16808 18072//16812 18122//16862 +f 18128//16868 18127//16867 18122//16862 18121//16861 +f 18127//16867 18128//16868 18129//16869 18130//16870 +f 18068//16808 18127//16867 18130//16870 18069//16809 +f 18131//16871 18132//16872 18129//16869 18128//16868 +f 18124//16864 18131//16871 18128//16868 18121//16861 +f 18131//16871 18124//16864 18126//16866 18133//16873 +f 18132//16872 18131//16871 18133//16873 18134//16874 +f 18135//16875 18136//16876 18118//16858 18117//16857 +f 18137//16877 18135//16875 18117//16857 18114//16854 +f 18135//16875 18137//16877 18138//16878 18139//16879 +f 18136//16876 18135//16875 18139//16879 18140//16880 +f 18141//16881 18142//16882 18069//16809 18130//16870 +f 18143//16883 18141//16881 18130//16870 18129//16869 +f 18141//16881 18143//16883 18144//16884 18145//16885 +f 18142//16882 18141//16881 18145//16885 18146//16886 +f 18147//16887 18148//16888 18126//16866 18125//16865 +f 18136//16876 18147//16887 18125//16865 18118//16858 +f 18147//16887 18136//16876 18140//16880 18149//16889 +f 18148//16888 18147//16887 18149//16889 18150//16890 +f 18151//16891 18152//16892 18144//16884 18143//16883 +f 18132//16872 18151//16891 18143//16883 18129//16869 +f 18151//16891 18132//16872 18134//16874 18153//16893 +f 18152//16892 18151//16891 18153//16893 18154//16894 +f 18155//16895 18156//16896 18134//16874 18133//16873 +f 18148//16888 18155//16895 18133//16873 18126//16866 +f 18155//16895 18148//16888 18150//16890 18157//16897 +f 18156//16896 18155//16895 18157//16897 18158//16898 +f 18159//16899 18160//16900 18055//16795 18070//16810 +f 18142//16882 18159//16899 18070//16810 18069//16809 +f 18159//16899 18142//16882 18146//16886 18161//16901 +f 18160//16900 18159//16899 18161//16901 18162//16902 +f 18163//16903 18164//16904 18050//16790 18056//16796 +f 18160//16900 18163//16903 18056//16796 18055//16795 +f 18163//16903 18160//16900 18162//16902 18165//16905 +f 18164//16904 18163//16903 18165//16905 18166//16906 +f 18167//16907 18168//16908 18146//16886 18145//16885 +f 18169//16909 18167//16907 18145//16885 18144//16884 +f 18167//16907 18169//16909 18170//16910 18171//16911 +f 18168//16908 18167//16907 18171//16911 18172//16912 +f 18173//16913 18174//16914 18170//16910 18169//16909 +f 18152//16892 18173//16913 18169//16909 18144//16884 +f 18173//16913 18152//16892 18154//16894 18175//16915 +f 18174//16914 18173//16913 18175//16915 18176//16916 +f 18177//16917 18178//16918 18162//16902 18161//16901 +f 18168//16908 18177//16917 18161//16901 18146//16886 +f 18177//16917 18168//16908 18172//16912 18179//16919 +f 18178//16918 18177//16917 18179//16919 18180//16920 +f 18181//16921 18182//16922 18176//16916 18175//16915 +f 18183//16923 18181//16921 18175//16915 18154//16894 +f 18181//16921 18183//16923 18184//16924 18185//16925 +f 18182//16922 18181//16921 18185//16925 18186//16926 +f 18187//16927 18188//16928 18166//16906 18165//16905 +f 18178//16918 18187//16927 18165//16905 18162//16902 +f 18187//16927 18178//16918 18180//16920 18189//16929 +f 18188//16928 18187//16927 18189//16929 18190//16930 +f 18191//16931 18192//16932 18052//16792 18051//16791 +f 18164//16904 18191//16931 18051//16791 18050//16790 +f 18191//16931 18164//16904 18166//16906 18193//16933 +f 18192//16932 18191//16931 18193//16933 18194//16934 +f 18195//16935 18196//16936 18194//16934 18193//16933 +f 18188//16928 18195//16935 18193//16933 18166//16906 +f 18195//16935 18188//16928 18190//16930 18197//16937 +f 18196//16936 18195//16935 18197//16937 18198//16938 +f 18199//16939 17208//15948 17215//15955 18200//16940 +f 18196//16936 18199//16939 18200//16940 18194//16934 +f 18199//16939 18196//16936 18198//16938 18201//16941 +f 17208//15948 18199//16939 18201//16941 17209//15949 +f 18202//16942 18203//16943 18204//16944 18205//16945 +f 18192//16932 18202//16942 18205//16945 18052//16792 +f 18202//16942 18192//16932 18194//16934 18200//16940 +f 18203//16943 18202//16942 18200//16940 17215//15955 +f 18206//16946 18207//16947 18208//16948 18209//16949 +f 18203//16943 18206//16946 18209//16949 18204//16944 +f 18206//16946 18203//16943 17215//15955 17214//15954 +f 18207//16947 18206//16946 17214//15954 17213//15953 +f 18210//16950 18211//16951 18186//16926 18185//16925 +f 18212//16952 18210//16950 18185//16925 18184//16924 +f 18210//16950 18212//16952 18213//16953 18214//16954 +f 18211//16951 18210//16950 18214//16954 18215//16955 +f 18216//16956 18156//16896 18158//16898 18217//16957 +f 18183//16923 18216//16956 18217//16957 18184//16924 +f 18216//16956 18183//16923 18154//16894 18153//16893 +f 18156//16896 18216//16956 18153//16893 18134//16874 +f 18218//16958 18212//16952 18184//16924 18217//16957 +f 18219//16959 18218//16958 18217//16957 18158//16898 +f 18218//16958 18219//16959 18220//16960 18221//16961 +f 18212//16952 18218//16958 18221//16961 18213//16953 +f 18222//16962 18219//16959 18158//16898 18157//16897 +f 18223//16963 18222//16962 18157//16897 18150//16890 +f 18222//16962 18223//16963 18224//16964 18225//16965 +f 18219//16959 18222//16962 18225//16965 18220//16960 +f 18226//16966 18227//16967 18215//16955 18214//16954 +f 18228//16968 18226//16966 18214//16954 18213//16953 +f 18226//16966 18228//16968 18229//16969 18230//16970 +f 18227//16967 18226//16966 18230//16970 18231//16971 +f 18232//16972 18228//16968 18213//16953 18221//16961 +f 18233//16973 18232//16972 18221//16961 18220//16960 +f 18232//16972 18233//16973 18234//16974 18235//16975 +f 18228//16968 18232//16972 18235//16975 18229//16969 +f 18236//16976 18237//16977 18231//16971 18230//16970 +f 18238//16978 18236//16976 18230//16970 18229//16969 +f 18236//16976 18238//16978 18239//16979 18240//16980 +f 18237//16977 18236//16976 18240//16980 18241//16981 +f 18242//16982 18238//16978 18229//16969 18235//16975 +f 18243//16983 18242//16982 18235//16975 18234//16974 +f 18242//16982 18243//16983 18244//16984 18245//16985 +f 18238//16978 18242//16982 18245//16985 18239//16979 +f 18246//16986 18247//16987 18248//16988 18249//16989 +f 18233//16973 18246//16986 18249//16989 18234//16974 +f 18246//16986 18233//16973 18220//16960 18225//16965 +f 18247//16987 18246//16986 18225//16965 18224//16964 +f 18250//16990 18251//16991 18252//16992 18253//16993 +f 18243//16983 18250//16990 18253//16993 18244//16984 +f 18250//16990 18243//16983 18234//16974 18249//16989 +f 18251//16991 18250//16990 18249//16989 18248//16988 +f 18254//16994 18255//16995 18241//16981 18240//16980 +f 18256//16996 18254//16994 18240//16980 18239//16979 +f 18254//16994 18256//16996 18257//16997 18258//16998 +f 18255//16995 18254//16994 18258//16998 18259//16999 +f 18260//17000 18256//16996 18239//16979 18245//16985 +f 18261//17001 18260//17000 18245//16985 18244//16984 +f 18260//17000 18261//17001 18262//17002 18263//17003 +f 18256//16996 18260//17000 18263//17003 18257//16997 +f 18264//17004 18265//17005 18259//16999 18258//16998 +f 18266//17006 18264//17004 18258//16998 18257//16997 +f 18264//17004 18266//17006 18267//17007 18268//17008 +f 18265//17005 18264//17004 18268//17008 18269//17009 +f 18270//17010 18266//17006 18257//16997 18263//17003 +f 18271//17011 18270//17010 18263//17003 18262//17002 +f 18270//17010 18271//17011 18272//17012 18273//17013 +f 18266//17006 18270//17010 18273//17013 18267//17007 +f 18274//17014 18275//17015 18276//17016 18277//17017 +f 18261//17001 18274//17014 18277//17017 18262//17002 +f 18274//17014 18261//17001 18244//16984 18253//16993 +f 18275//17015 18274//17014 18253//16993 18252//16992 +f 18278//17018 18279//17019 18280//17020 18281//17021 +f 18271//17011 18278//17018 18281//17021 18272//17012 +f 18278//17018 18271//17011 18262//17002 18277//17017 +f 18279//17019 18278//17018 18277//17017 18276//17016 +f 18282//17022 18283//17023 18269//17009 18268//17008 +f 18284//17024 18282//17022 18268//17008 18267//17007 +f 18282//17022 18284//17024 18285//17025 18286//17026 +f 18283//17023 18282//17022 18286//17026 18287//17027 +f 18288//17028 18284//17024 18267//17007 18273//17013 +f 18289//17029 18288//17028 18273//17013 18272//17012 +f 18288//17028 18289//17029 18290//17030 18291//17031 +f 18284//17024 18288//17028 18291//17031 18285//17025 +f 18292//17032 18293//17033 18287//17027 18286//17026 +f 18294//17034 18292//17032 18286//17026 18285//17025 +f 18292//17032 18294//17034 18295//17035 18296//17036 +f 18293//17033 18292//17032 18296//17036 18297//17037 +f 18298//17038 18299//17039 18300//17040 18301//17041 +f 18296//17036 18298//17038 18301//17041 18297//17037 +f 18298//17038 18296//17036 18295//17035 18302//17042 +f 18299//17039 18298//17038 18302//17042 18303//17043 +f 18304//17044 18305//17045 18306//17046 18307//17047 +f 18294//17034 18304//17044 18307//17047 18295//17035 +f 18304//17044 18294//17034 18285//17025 18291//17031 +f 18305//17045 18304//17044 18291//17031 18290//17030 +f 18308//17048 18309//17049 18303//17043 18302//17042 +f 18307//17047 18308//17048 18302//17042 18295//17035 +f 18308//17048 18307//17047 18306//17046 18310//17050 +f 18309//17049 18308//17048 18310//17050 18311//17051 +f 18312//17052 18313//17053 18314//17054 18315//17055 +f 18299//17039 18312//17052 18315//17055 18300//17040 +f 18312//17052 18299//17039 18303//17043 18316//17056 +f 18313//17053 18312//17052 18316//17056 18317//17057 +f 18318//17058 18319//17059 18320//17060 18321//17061 +f 18305//17045 18318//17058 18321//17061 18306//17046 +f 18318//17058 18305//17045 18290//17030 18322//17062 +f 18319//17059 18318//17058 18322//17062 18323//17063 +f 18324//17064 18325//17065 18326//17066 18327//17067 +f 18313//17053 18324//17064 18327//17067 18314//17054 +f 18324//17064 18313//17053 18317//17057 18328//17068 +f 18325//17065 18324//17064 18328//17068 18329//17069 +f 18330//17070 18331//17071 18317//17057 18316//17056 +f 18309//17049 18330//17070 18316//17056 18303//17043 +f 18330//17070 18309//17049 18311//17051 18332//17072 +f 18331//17071 18330//17070 18332//17072 18333//17073 +f 18334//17074 18335//17075 18311//17051 18310//17050 +f 18321//17061 18334//17074 18310//17050 18306//17046 +f 18334//17074 18321//17061 18320//17060 18336//17076 +f 18335//17075 18334//17074 18336//17076 18337//17077 +f 18338//17078 18339//17079 18340//17080 18341//17081 +f 18325//17065 18338//17078 18341//17081 18326//17066 +f 18338//17078 18325//17065 18329//17069 18342//17082 +f 18339//17079 18338//17078 18342//17082 18343//17083 +f 18344//17084 18345//17085 18329//17069 18328//17068 +f 18331//17071 18344//17084 18328//17068 18317//17057 +f 18344//17084 18331//17071 18333//17073 18346//17086 +f 18345//17085 18344//17084 18346//17086 18347//17087 +f 18348//17088 17184//15924 17185//15925 18349//17089 +f 18339//17079 18348//17088 18349//17089 18340//17080 +f 18348//17088 18339//17079 18343//17083 18350//17090 +f 17184//15924 18348//17088 18350//17090 17186//15926 +f 18351//17091 18352//17092 18343//17083 18342//17082 +f 18345//17085 18351//17091 18342//17082 18329//17069 +f 18351//17091 18345//17085 18347//17087 18353//17093 +f 18352//17092 18351//17091 18353//17093 18354//17094 +f 18355//17095 18356//17096 17186//15926 18350//17090 +f 18352//17092 18355//17095 18350//17090 18343//17083 +f 18355//17095 18352//17092 18354//17094 18357//17097 +f 18356//17096 18355//17095 18357//17097 18358//17098 +f 18359//17099 18360//17100 17188//15928 17187//15927 +f 18356//17096 18359//17099 17187//15927 17186//15926 +f 18359//17099 18356//17096 18358//17098 18361//17101 +f 18360//17100 18359//17099 18361//17101 18362//17102 +f 18363//17103 18364//17104 18354//17094 18353//17093 +f 18365//17105 18363//17103 18353//17093 18347//17087 +f 18363//17103 18365//17105 18366//17106 18367//17107 +f 18364//17104 18363//17103 18367//17107 18368//17108 +f 18369//17109 18370//17110 18371//17111 18372//17112 +f 18365//17105 18369//17109 18372//17112 18366//17106 +f 18369//17109 18365//17105 18347//17087 18346//17086 +f 18370//17110 18369//17109 18346//17086 18333//17073 +f 18373//17113 18374//17114 18368//17108 18367//17107 +f 18375//17115 18373//17113 18367//17107 18366//17106 +f 18373//17113 18375//17115 18376//17116 18377//17117 +f 18374//17114 18373//17113 18377//17117 18378//17118 +f 18379//17119 18375//17115 18366//17106 18372//17112 +f 18380//17120 18379//17119 18372//17112 18371//17111 +f 18379//17119 18380//17120 18381//17121 18382//17122 +f 18375//17115 18379//17119 18382//17122 18376//17116 +f 18383//17123 18384//17124 18385//17125 18386//17126 +f 18374//17114 18383//17123 18386//17126 18368//17108 +f 18383//17123 18374//17114 18378//17118 18387//17127 +f 18384//17124 18383//17123 18387//17127 18388//17128 +f 18389//17129 18390//17130 18388//17128 18387//17127 +f 18391//17131 18389//17129 18387//17127 18378//17118 +f 18389//17129 18391//17131 18392//17132 18393//17133 +f 18390//17130 18389//17129 18393//17133 18394//17134 +f 18395//17135 18391//17131 18378//17118 18377//17117 +f 18396//17136 18395//17135 18377//17117 18376//17116 +f 18395//17135 18396//17136 18397//17137 18398//17138 +f 18391//17131 18395//17135 18398//17138 18392//17132 +f 18399//17139 18400//17140 18401//17141 18402//17142 +f 18403//17143 18399//17139 18402//17142 18404//17144 +f 18399//17139 18403//17143 18394//17134 18393//17133 +f 18400//17140 18399//17139 18393//17133 18392//17132 +f 18405//17145 18406//17146 18407//17147 18408//17148 +f 18396//17136 18405//17145 18408//17148 18397//17137 +f 18405//17145 18396//17136 18376//17116 18382//17122 +f 18406//17146 18405//17145 18382//17122 18381//17121 +f 18409//17149 18400//17140 18392//17132 18398//17138 +f 18410//17150 18409//17149 18398//17138 18397//17137 +f 18409//17149 18410//17150 18411//17151 18412//17152 +f 18400//17140 18409//17149 18412//17152 18401//17141 +f 18413//17153 18410//17150 18397//17137 18408//17148 +f 18414//17154 18413//17153 18408//17148 18407//17147 +f 18413//17153 18414//17154 18415//17155 18416//17156 +f 18410//17150 18413//17153 18416//17156 18411//17151 +f 18417//17157 18418//17158 18419//17159 18420//17160 +f 18406//17146 18417//17157 18420//17160 18407//17147 +f 18417//17157 18406//17146 18381//17121 18421//17161 +f 18418//17158 18417//17157 18421//17161 18422//17162 +f 18423//17163 18424//17164 18425//17165 18426//17166 +f 18414//17154 18423//17163 18426//17166 18415//17155 +f 18423//17163 18414//17154 18407//17147 18420//17160 +f 18424//17164 18423//17163 18420//17160 18419//17159 +f 18427//17167 18428//17168 18411//17151 18416//17156 +f 18429//17169 18427//17167 18416//17156 18415//17155 +f 18427//17167 18429//17169 18430//17170 18431//17171 +f 18428//17168 18427//17167 18431//17171 18432//17172 +f 18433//17173 18434//17174 18422//17162 18421//17161 +f 18380//17120 18433//17173 18421//17161 18381//17121 +f 18433//17173 18380//17120 18371//17111 18435//17175 +f 18434//17174 18433//17173 18435//17175 18337//17077 +f 18436//17176 18437//17177 18401//17141 18412//17152 +f 18428//17168 18436//17176 18412//17152 18411//17151 +f 18436//17176 18428//17168 18432//17172 18438//17178 +f 18437//17177 18436//17176 18438//17178 18439//17179 +f 18440//17180 18441//17181 18404//17144 18402//17142 +f 18437//17177 18440//17180 18402//17142 18401//17141 +f 18440//17180 18437//17177 18439//17179 18442//17182 +f 18441//17181 18440//17180 18442//17182 18443//17183 +f 18444//17184 18445//17185 18446//17186 18447//17187 +f 18429//17169 18444//17184 18447//17187 18430//17170 +f 18444//17184 18429//17169 18415//17155 18426//17166 +f 18445//17185 18444//17184 18426//17166 18425//17165 +f 18448//17188 18449//17189 18432//17172 18431//17171 +f 18450//17190 18448//17188 18431//17171 18430//17170 +f 18448//17188 18450//17190 18451//17191 18452//17192 +f 18449//17189 18448//17188 18452//17192 18453//17193 +f 18454//17194 18450//17190 18430//17170 18447//17187 +f 18455//17195 18454//17194 18447//17187 18446//17186 +f 18454//17194 18455//17195 18456//17196 18457//17197 +f 18450//17190 18454//17194 18457//17197 18451//17191 +f 18458//17198 18459//17199 18439//17179 18438//17178 +f 18449//17189 18458//17198 18438//17178 18432//17172 +f 18458//17198 18449//17189 18453//17193 18460//17200 +f 18459//17199 18458//17198 18460//17200 18461//17201 +f 18462//17202 18463//17203 18464//17204 18465//17205 +f 18441//17181 18462//17202 18465//17205 18404//17144 +f 18462//17202 18441//17181 18443//17183 18466//17206 +f 18463//17203 18462//17202 18466//17206 18467//17207 +f 18468//17208 18403//17143 18404//17144 18465//17205 +f 18469//17209 18468//17208 18465//17205 18464//17204 +f 18468//17208 18469//17209 18470//17210 18471//17211 +f 18403//17143 18468//17208 18471//17211 18394//17134 +f 18472//17212 18473//17213 18443//17183 18442//17182 +f 18459//17199 18472//17212 18442//17182 18439//17179 +f 18472//17212 18459//17199 18461//17201 18474//17214 +f 18473//17213 18472//17212 18474//17214 18475//17215 +f 18476//17216 18477//17217 18475//17215 18474//17214 +f 18478//17218 18476//17216 18474//17214 18461//17201 +f 18476//17216 18478//17218 18479//17219 18480//17220 +f 18477//17217 18476//17216 18480//17220 18481//17221 +f 18482//17222 18478//17218 18461//17201 18460//17200 +f 18483//17223 18482//17222 18460//17200 18453//17193 +f 18482//17222 18483//17223 18484//17224 18485//17225 +f 18478//17218 18482//17222 18485//17225 18479//17219 +f 18486//17226 18487//17227 18488//17228 18489//17229 +f 18483//17223 18486//17226 18489//17229 18484//17224 +f 18486//17226 18483//17223 18453//17193 18452//17192 +f 18487//17227 18486//17226 18452//17192 18451//17191 +f 18490//17230 18491//17231 18479//17219 18485//17225 +f 18492//17232 18490//17230 18485//17225 18484//17224 +f 18490//17230 18492//17232 18493//17233 18494//17234 +f 18491//17231 18490//17230 18494//17234 18495//17235 +f 18496//17236 18497//17237 18498//17238 18499//17239 +f 18487//17227 18496//17236 18499//17239 18488//17228 +f 18496//17236 18487//17227 18451//17191 18457//17197 +f 18497//17237 18496//17236 18457//17197 18456//17196 +f 18500//17240 18492//17232 18484//17224 18489//17229 +f 18501//17241 18500//17240 18489//17229 18488//17228 +f 18500//17240 18501//17241 18502//17242 18503//17243 +f 18492//17232 18500//17240 18503//17243 18493//17233 +f 18504//17244 18501//17241 18488//17228 18499//17239 +f 18505//17245 18504//17244 18499//17239 18498//17238 +f 18504//17244 18505//17245 18506//17246 18507//17247 +f 18501//17241 18504//17244 18507//17247 18502//17242 +f 18508//17248 18509//17249 18510//17250 18511//17251 +f 18497//17237 18508//17248 18511//17251 18498//17238 +f 18508//17248 18497//17237 18456//17196 18512//17252 +f 18509//17249 18508//17248 18512//17252 18513//17253 +f 18514//17254 18515//17255 18516//17256 18517//17257 +f 18505//17245 18514//17254 18517//17257 18506//17246 +f 18514//17254 18505//17245 18498//17238 18511//17251 +f 18515//17255 18514//17254 18511//17251 18510//17250 +f 18518//17258 18519//17259 18502//17242 18507//17247 +f 18520//17260 18518//17258 18507//17247 18506//17246 +f 18518//17258 18520//17260 18521//17261 18522//17262 +f 18519//17259 18518//17258 18522//17262 18523//17263 +f 18524//17264 18525//17265 18513//17253 18512//17252 +f 18455//17195 18524//17264 18512//17252 18456//17196 +f 18524//17264 18455//17195 18446//17186 18526//17266 +f 18525//17265 18524//17264 18526//17266 18527//17267 +f 18528//17268 18529//17269 18493//17233 18503//17243 +f 18519//17259 18528//17268 18503//17243 18502//17242 +f 18528//17268 18519//17259 18523//17263 18530//17270 +f 18529//17269 18528//17268 18530//17270 18531//17271 +f 18532//17272 18533//17273 18527//17267 18526//17266 +f 18445//17185 18532//17272 18526//17266 18446//17186 +f 18532//17272 18445//17185 18425//17165 18534//17274 +f 18533//17273 18532//17272 18534//17274 18535//17275 +f 18536//17276 18537//17277 18510//17250 18509//17249 +f 18538//17278 18536//17276 18509//17249 18513//17253 +f 18536//17276 18538//17278 18539//17279 18540//17280 +f 18537//17277 18536//17276 18540//17280 18541//17281 +f 18542//17282 18543//17283 18535//17275 18534//17274 +f 18424//17164 18542//17282 18534//17274 18425//17165 +f 18542//17282 18424//17164 18419//17159 18544//17284 +f 18543//17283 18542//17282 18544//17284 18545//17285 +f 18546//17286 18538//17278 18513//17253 18525//17265 +f 18547//17287 18546//17286 18525//17265 18527//17267 +f 18546//17286 18547//17287 18548//17288 18549//17289 +f 18538//17278 18546//17286 18549//17289 18539//17279 +f 18550//17290 18547//17287 18527//17267 18533//17273 +f 18551//17291 18550//17290 18533//17273 18535//17275 +f 18550//17290 18551//17291 18552//17292 18553//17293 +f 18547//17287 18550//17290 18553//17293 18548//17288 +f 18554//17294 18555//17295 18545//17285 18544//17284 +f 18418//17158 18554//17294 18544//17284 18419//17159 +f 18554//17294 18418//17158 18422//17162 18556//17296 +f 18555//17295 18554//17294 18556//17296 18557//17297 +f 18558//17298 18559//17299 18560//17300 18561//17301 +f 18551//17291 18558//17298 18561//17301 18552//17292 +f 18558//17298 18551//17291 18535//17275 18543//17283 +f 18559//17299 18558//17298 18543//17283 18545//17285 +f 18562//17302 18563//17303 18548//17288 18553//17293 +f 18564//17304 18562//17302 18553//17293 18552//17292 +f 18562//17302 18564//17304 18565//17305 18566//17306 +f 18563//17303 18562//17302 18566//17306 18567//17307 +f 18568//17308 18564//17304 18552//17292 18561//17301 +f 18569//17309 18568//17308 18561//17301 18560//17300 +f 18568//17308 18569//17309 18570//17310 18571//17311 +f 18564//17304 18568//17308 18571//17311 18565//17305 +f 18572//17312 18573//17313 18574//17314 18575//17315 +f 18559//17299 18572//17312 18575//17315 18560//17300 +f 18572//17312 18559//17299 18545//17285 18555//17295 +f 18573//17313 18572//17312 18555//17295 18557//17297 +f 18576//17316 18577//17317 18539//17279 18549//17289 +f 18563//17303 18576//17316 18549//17289 18548//17288 +f 18576//17316 18563//17303 18567//17307 18578//17318 +f 18577//17317 18576//17316 18578//17318 18579//17319 +f 18580//17320 18569//17309 18560//17300 18575//17315 +f 18581//17321 18580//17320 18575//17315 18574//17314 +f 18580//17320 18581//17321 18582//17322 18583//17323 +f 18569//17309 18580//17320 18583//17323 18570//17310 +f 18584//17324 18585//17325 18280//17020 18586//17326 +f 18581//17321 18584//17324 18586//17326 18582//17322 +f 18584//17324 18581//17321 18574//17314 18587//17327 +f 18585//17325 18584//17324 18587//17327 18323//17063 +f 18588//17328 18589//17329 18557//17297 18556//17296 +f 18434//17174 18588//17328 18556//17296 18422//17162 +f 18588//17328 18434//17174 18337//17077 18336//17076 +f 18589//17329 18588//17328 18336//17076 18320//17060 +f 18590//17330 18335//17075 18337//17077 18435//17175 +f 18370//17110 18590//17330 18435//17175 18371//17111 +f 18590//17330 18370//17110 18333//17073 18332//17072 +f 18335//17075 18590//17330 18332//17072 18311//17051 +f 18591//17331 18573//17313 18557//17297 18589//17329 +f 18319//17059 18591//17331 18589//17329 18320//17060 +f 18591//17331 18319//17059 18323//17063 18587//17327 +f 18573//17313 18591//17331 18587//17327 18574//17314 +f 18592//17332 18585//17325 18323//17063 18322//17062 +f 18289//17029 18592//17332 18322//17062 18290//17030 +f 18592//17332 18289//17029 18272//17012 18281//17021 +f 18585//17325 18592//17332 18281//17021 18280//17020 +f 18593//17333 18594//17334 18582//17322 18586//17326 +f 18279//17019 18593//17333 18586//17326 18280//17020 +f 18593//17333 18279//17019 18276//17016 18595//17335 +f 18594//17334 18593//17333 18595//17335 18596//17336 +f 18597//17337 18598//17338 18570//17310 18583//17323 +f 18594//17334 18597//17337 18583//17323 18582//17322 +f 18597//17337 18594//17334 18596//17336 18599//17339 +f 18598//17338 18597//17337 18599//17339 18600//17340 +f 18601//17341 18602//17342 18596//17336 18595//17335 +f 18275//17015 18601//17341 18595//17335 18276//17016 +f 18601//17341 18275//17015 18252//16992 18603//17343 +f 18602//17342 18601//17341 18603//17343 18604//17344 +f 18605//17345 18606//17346 18565//17305 18571//17311 +f 18598//17338 18605//17345 18571//17311 18570//17310 +f 18605//17345 18598//17338 18600//17340 18607//17347 +f 18606//17346 18605//17345 18607//17347 18608//17348 +f 18609//17349 18610//17350 18600//17340 18599//17339 +f 18602//17342 18609//17349 18599//17339 18596//17336 +f 18609//17349 18602//17342 18604//17344 18611//17351 +f 18610//17350 18609//17349 18611//17351 18612//17352 +f 18613//17353 18614//17354 18604//17344 18603//17343 +f 18251//16991 18613//17353 18603//17343 18252//16992 +f 18613//17353 18251//16991 18248//16988 18615//17355 +f 18614//17354 18613//17353 18615//17355 18616//17356 +f 18617//17357 18618//17358 18567//17307 18566//17306 +f 18606//17346 18617//17357 18566//17306 18565//17305 +f 18617//17357 18606//17346 18608//17348 18619//17359 +f 18618//17358 18617//17357 18619//17359 18620//17360 +f 18621//17361 18622//17362 18608//17348 18607//17347 +f 18610//17350 18621//17361 18607//17347 18600//17340 +f 18621//17361 18610//17350 18612//17352 18623//17363 +f 18622//17362 18621//17361 18623//17363 18624//17364 +f 18625//17365 18626//17366 18612//17352 18611//17351 +f 18614//17354 18625//17365 18611//17351 18604//17344 +f 18625//17365 18614//17354 18616//17356 18627//17367 +f 18626//17366 18625//17365 18627//17367 18628//17368 +f 18629//17369 18630//17370 18616//17356 18615//17355 +f 18247//16987 18629//17369 18615//17355 18248//16988 +f 18629//17369 18247//16987 18224//16964 18631//17371 +f 18630//17370 18629//17369 18631//17371 18632//17372 +f 18633//17373 18634//17374 18632//17372 18631//17371 +f 18223//16963 18633//17373 18631//17371 18224//16964 +f 18633//17373 18223//16963 18150//16890 18149//16889 +f 18634//17374 18633//17373 18149//16889 18140//16880 +f 18635//17375 18636//17376 18628//17368 18627//17367 +f 18630//17370 18635//17375 18627//17367 18616//17356 +f 18635//17375 18630//17370 18632//17372 18637//17377 +f 18636//17376 18635//17375 18637//17377 18638//17378 +f 18639//17379 18640//17380 18624//17364 18623//17363 +f 18626//17366 18639//17379 18623//17363 18612//17352 +f 18639//17379 18626//17366 18628//17368 18641//17381 +f 18640//17380 18639//17379 18641//17381 18642//17382 +f 18643//17383 18644//17384 18638//17378 18637//17377 +f 18634//17374 18643//17383 18637//17377 18632//17372 +f 18643//17383 18634//17374 18140//16880 18139//16879 +f 18644//17384 18643//17383 18139//16879 18138//16878 +f 18645//17385 18646//17386 18642//17382 18641//17381 +f 18636//17376 18645//17385 18641//17381 18628//17368 +f 18645//17385 18636//17376 18638//17378 18647//17387 +f 18646//17386 18645//17385 18647//17387 18648//17388 +f 18649//17389 18650//17390 18648//17388 18647//17387 +f 18644//17384 18649//17389 18647//17387 18638//17378 +f 18649//17389 18644//17384 18138//16878 18651//17391 +f 18650//17390 18649//17389 18651//17391 18652//17392 +f 18653//17393 18654//17394 18652//17392 18651//17391 +f 18137//16877 18653//17393 18651//17391 18138//16878 +f 18653//17393 18137//16877 18114//16854 18113//16853 +f 18654//17394 18653//17393 18113//16853 18110//16850 +f 18655//17395 18656//17396 18657//17397 18658//17398 +f 18646//17386 18655//17395 18658//17398 18642//17382 +f 18655//17395 18646//17386 18648//17388 18659//17399 +f 18656//17396 18655//17395 18659//17399 18660//17400 +f 18661//17401 18662//17402 18663//17403 18664//17404 +f 18654//17394 18661//17401 18664//17404 18652//17392 +f 18661//17401 18654//17394 18110//16850 18109//16849 +f 18662//17402 18661//17401 18109//16849 18108//16848 +f 18665//17405 18666//17406 18660//17400 18659//17399 +f 18650//17390 18665//17405 18659//17399 18648//17388 +f 18665//17405 18650//17390 18652//17392 18664//17404 +f 18666//17406 18665//17405 18664//17404 18663//17403 +f 18667//17407 18668//17408 18669//17409 18670//17410 +f 18662//17402 18667//17407 18670//17410 18663//17403 +f 18667//17407 18662//17402 18108//16848 18671//17411 +f 18668//17408 18667//17407 18671//17411 18672//17412 +f 18673//17413 18674//17414 18675//17415 18676//17416 +f 18666//17406 18673//17413 18676//17416 18660//17400 +f 18673//17413 18666//17406 18663//17403 18670//17410 +f 18674//17414 18673//17413 18670//17410 18669//17409 +f 18677//17417 18678//17418 18679//17419 18680//17420 +f 18656//17396 18677//17417 18680//17420 18657//17397 +f 18677//17417 18656//17396 18660//17400 18676//17416 +f 18678//17418 18677//17417 18676//17416 18675//17415 +f 18681//17421 18640//17380 18642//17382 18658//17398 +f 18682//17422 18681//17421 18658//17398 18657//17397 +f 18681//17421 18682//17422 18683//17423 18684//17424 +f 18640//17380 18681//17421 18684//17424 18624//17364 +f 18685//17425 18682//17422 18657//17397 18680//17420 +f 18686//17426 18685//17425 18680//17420 18679//17419 +f 18685//17425 18686//17426 18687//17427 18688//17428 +f 18682//17422 18685//17425 18688//17428 18683//17423 +f 18689//17429 18622//17362 18624//17364 18684//17424 +f 18690//17430 18689//17429 18684//17424 18683//17423 +f 18689//17429 18690//17430 18620//17360 18619//17359 +f 18622//17362 18689//17429 18619//17359 18608//17348 +f 18691//17431 18692//17432 18693//17433 18694//17434 +f 18690//17430 18691//17431 18694//17434 18620//17360 +f 18691//17431 18690//17430 18683//17423 18688//17428 +f 18692//17432 18691//17431 18688//17428 18687//17427 +f 18695//17435 18696//17436 18579//17319 18578//17318 +f 18618//17358 18695//17435 18578//17318 18567//17307 +f 18695//17435 18618//17358 18620//17360 18694//17434 +f 18696//17436 18695//17435 18694//17434 18693//17433 +f 18697//17437 18698//17438 18699//17439 18700//17440 +f 18692//17432 18697//17437 18700//17440 18693//17433 +f 18697//17437 18692//17432 18687//17427 18701//17441 +f 18698//17438 18697//17437 18701//17441 18702//17442 +f 18703//17443 18704//17444 18541//17281 18540//17280 +f 18577//17317 18703//17443 18540//17280 18539//17279 +f 18703//17443 18577//17317 18579//17319 18705//17445 +f 18704//17444 18703//17443 18705//17445 18706//17446 +f 18707//17447 18708//17448 18706//17446 18705//17445 +f 18696//17436 18707//17447 18705//17445 18579//17319 +f 18707//17447 18696//17436 18693//17433 18700//17440 +f 18708//17448 18707//17447 18700//17440 18699//17439 +f 18709//17449 18710//17450 18516//17256 18515//17255 +f 18537//17277 18709//17449 18515//17255 18510//17250 +f 18709//17449 18537//17277 18541//17281 18711//17451 +f 18710//17450 18709//17449 18711//17451 18712//17452 +f 18713//17453 18714//17454 18712//17452 18711//17451 +f 18704//17444 18713//17453 18711//17451 18541//17281 +f 18713//17453 18704//17444 18706//17446 18715//17455 +f 18714//17454 18713//17453 18715//17455 18716//17456 +f 18717//17457 18718//17458 18716//17456 18715//17455 +f 18708//17448 18717//17457 18715//17455 18706//17446 +f 18717//17457 18708//17448 18699//17439 18719//17459 +f 18718//17458 18717//17457 18719//17459 18720//17460 +f 18721//17461 18722//17462 18702//17442 18701//17441 +f 18686//17426 18721//17461 18701//17441 18687//17427 +f 18721//17461 18686//17426 18679//17419 18723//17463 +f 18722//17462 18721//17461 18723//17463 18724//17464 +f 18725//17465 18726//17466 18720//17460 18719//17459 +f 18698//17438 18725//17465 18719//17459 18699//17439 +f 18725//17465 18698//17438 18702//17442 18727//17467 +f 18726//17466 18725//17465 18727//17467 18728//17468 +f 18729//17469 18730//17470 18724//17464 18723//17463 +f 18678//17418 18729//17469 18723//17463 18679//17419 +f 18729//17469 18678//17418 18675//17415 18731//17471 +f 18730//17470 18729//17469 18731//17471 18732//17472 +f 18733//17473 18734//17474 18728//17468 18727//17467 +f 18722//17462 18733//17473 18727//17467 18702//17442 +f 18733//17473 18722//17462 18724//17464 18735//17475 +f 18734//17474 18733//17473 18735//17475 18736//17476 +f 18737//17477 18738//17478 18732//17472 18731//17471 +f 18674//17414 18737//17477 18731//17471 18675//17415 +f 18737//17477 18674//17414 18669//17409 18739//17479 +f 18738//17478 18737//17477 18739//17479 18740//17480 +f 18741//17481 18742//17482 18736//17476 18735//17475 +f 18730//17470 18741//17481 18735//17475 18724//17464 +f 18741//17481 18730//17470 18732//17472 18743//17483 +f 18742//17482 18741//17481 18743//17483 18744//17484 +f 18745//17485 18746//17486 18747//17487 18748//17488 +f 18726//17466 18745//17485 18748//17488 18720//17460 +f 18745//17485 18726//17466 18728//17468 18749//17489 +f 18746//17486 18745//17485 18749//17489 18750//17490 +f 18751//17491 18752//17492 18750//17490 18749//17489 +f 18734//17474 18751//17491 18749//17489 18728//17468 +f 18751//17491 18734//17474 18736//17476 18753//17493 +f 18752//17492 18751//17491 18753//17493 18754//17494 +f 18755//17495 18718//17458 18720//17460 18748//17488 +f 18756//17496 18755//17495 18748//17488 18747//17487 +f 18755//17495 18756//17496 18757//17497 18758//17498 +f 18718//17458 18755//17495 18758//17498 18716//17456 +f 18759//17499 18760//17500 18744//17484 18743//17483 +f 18738//17478 18759//17499 18743//17483 18732//17472 +f 18759//17499 18738//17478 18740//17480 18761//17501 +f 18760//17500 18759//17499 18761//17501 18762//17502 +f 18763//17503 18714//17454 18716//17456 18758//17498 +f 18764//17504 18763//17503 18758//17498 18757//17497 +f 18763//17503 18764//17504 18765//17505 18766//17506 +f 18714//17454 18763//17503 18766//17506 18712//17452 +f 18767//17507 18768//17508 18740//17480 18739//17479 +f 18668//17408 18767//17507 18739//17479 18669//17409 +f 18767//17507 18668//17408 18672//17412 18769//17509 +f 18768//17508 18767//17507 18769//17509 18770//17510 +f 18771//17511 18772//17512 18672//17412 18671//17411 +f 18107//16847 18771//17511 18671//17411 18108//16848 +f 18771//17511 18107//16847 17986//16726 17985//16725 +f 18772//17512 18771//17511 17985//16725 17976//16716 +f 18773//17513 18774//17514 18770//17510 18769//17509 +f 18772//17512 18773//17513 18769//17509 18672//17412 +f 18773//17513 18772//17512 17976//16716 17975//16715 +f 18774//17514 18773//17513 17975//16715 17979//16719 +f 18775//17515 18776//17516 18762//17502 18761//17501 +f 18768//17508 18775//17515 18761//17501 18740//17480 +f 18775//17515 18768//17508 18770//17510 18777//17517 +f 18776//17516 18775//17515 18777//17517 18778//17518 +f 18779//17519 18780//17520 17979//16719 17978//16718 +f 17957//16697 18779//17519 17978//16718 17958//16698 +f 18779//17519 17957//16697 17893//16633 18781//17521 +f 18780//17520 18779//17519 18781//17521 18782//17522 +f 18783//17523 18784//17524 18778//17518 18777//17517 +f 18774//17514 18783//17523 18777//17517 18770//17510 +f 18783//17523 18774//17514 17979//16719 18780//17520 +f 18784//17524 18783//17523 18780//17520 18782//17522 +f 18785//17525 18786//17526 18782//17522 18781//17521 +f 17892//16632 18785//17525 18781//17521 17893//16633 +f 18785//17525 17892//16632 17871//16611 17870//16610 +f 18786//17526 18785//17525 17870//16610 17869//16609 +f 18787//17527 18784//17524 18782//17522 18786//17526 +f 17873//16613 18787//17527 18786//17526 17869//16609 +f 18787//17527 17873//16613 17875//16615 18788//17528 +f 18784//17524 18787//17527 18788//17528 18778//17518 +f 18789//17529 18776//17516 18778//17518 18788//17528 +f 18790//17530 18789//17529 18788//17528 17875//16615 +f 18789//17529 18790//17530 18791//17531 18792//17532 +f 18776//17516 18789//17529 18792//17532 18762//17502 +f 18793//17533 18790//17530 17875//16615 17874//16614 +f 17863//16603 18793//17533 17874//16614 17853//16593 +f 18793//17533 17863//16603 17865//16605 18794//17534 +f 18790//17530 18793//17533 18794//17534 18791//17531 +f 18795//17535 18760//17500 18762//17502 18792//17532 +f 18796//17536 18795//17535 18792//17532 18791//17531 +f 18795//17535 18796//17536 18797//17537 18798//17538 +f 18760//17500 18795//17535 18798//17538 18744//17484 +f 18799//17539 18796//17536 18791//17531 18794//17534 +f 18800//17540 18799//17539 18794//17534 17865//16605 +f 18799//17539 18800//17540 18801//17541 18802//17542 +f 18796//17536 18799//17539 18802//17542 18797//17537 +f 18803//17543 18800//17540 17865//16605 17864//16604 +f 18804//17544 18803//17543 17864//16604 17843//16583 +f 18803//17543 18804//17544 18805//17545 18806//17546 +f 18800//17540 18803//17543 18806//17546 18801//17541 +f 18807//17547 18742//17482 18744//17484 18798//17538 +f 18808//17548 18807//17547 18798//17538 18797//17537 +f 18807//17547 18808//17548 18754//17494 18753//17493 +f 18742//17482 18807//17547 18753//17493 18736//17476 +f 18809//17549 18808//17548 18797//17537 18802//17542 +f 18810//17550 18809//17549 18802//17542 18801//17541 +f 18809//17549 18810//17550 18811//17551 18812//17552 +f 18808//17548 18809//17549 18812//17552 18754//17494 +f 18813//17553 18814//17554 18815//17555 18816//17556 +f 18752//17492 18813//17553 18816//17556 18750//17490 +f 18813//17553 18752//17492 18754//17494 18812//17552 +f 18814//17554 18813//17553 18812//17552 18811//17551 +f 18817//17557 18818//17558 18819//17559 18820//17560 +f 18810//17550 18817//17557 18820//17560 18811//17551 +f 18817//17557 18810//17550 18801//17541 18806//17546 +f 18818//17558 18817//17557 18806//17546 18805//17545 +f 18821//17561 18822//17562 18823//17563 18824//17564 +f 18814//17554 18821//17561 18824//17564 18815//17555 +f 18821//17561 18814//17554 18811//17551 18820//17560 +f 18822//17562 18821//17561 18820//17560 18819//17559 +f 18825//17565 18746//17486 18750//17490 18816//17556 +f 18826//17566 18825//17565 18816//17556 18815//17555 +f 18825//17565 18826//17566 18827//17567 18828//17568 +f 18746//17486 18825//17565 18828//17568 18747//17487 +f 18829//17569 18826//17566 18815//17555 18824//17564 +f 18830//17570 18829//17569 18824//17564 18823//17563 +f 18829//17569 18830//17570 18831//17571 18832//17572 +f 18826//17566 18829//17569 18832//17572 18827//17567 +f 18833//17573 18756//17496 18747//17487 18828//17568 +f 18834//17574 18833//17573 18828//17568 18827//17567 +f 18833//17573 18834//17574 18835//17575 18836//17576 +f 18756//17496 18833//17573 18836//17576 18757//17497 +f 18837//17577 18834//17574 18827//17567 18832//17572 +f 18838//17578 18837//17577 18832//17572 18831//17571 +f 18837//17577 18838//17578 18839//17579 18840//17580 +f 18834//17574 18837//17577 18840//17580 18835//17575 +f 18841//17581 18764//17504 18757//17497 18836//17576 +f 18842//17582 18841//17581 18836//17576 18835//17575 +f 18841//17581 18842//17582 18843//17583 18844//17584 +f 18764//17504 18841//17581 18844//17584 18765//17505 +f 18845//17585 18842//17582 18835//17575 18840//17580 +f 18846//17586 18845//17585 18840//17580 18839//17579 +f 18845//17585 18846//17586 18847//17587 18848//17588 +f 18842//17582 18845//17585 18848//17588 18843//17583 +f 18849//17589 18850//17590 18851//17591 18852//17592 +f 18838//17578 18849//17589 18852//17592 18839//17579 +f 18849//17589 18838//17578 18831//17571 18853//17593 +f 18850//17590 18849//17589 18853//17593 18854//17594 +f 18855//17595 18856//17596 18857//17597 18858//17598 +f 18846//17586 18855//17595 18858//17598 18847//17587 +f 18855//17595 18846//17586 18839//17579 18852//17592 +f 18856//17596 18855//17595 18852//17592 18851//17591 +f 18859//17599 18860//17600 18843//17583 18848//17588 +f 18861//17601 18859//17599 18848//17588 18847//17587 +f 18859//17599 18861//17601 18862//17602 18863//17603 +f 18860//17600 18859//17599 18863//17603 18864//17604 +f 18865//17605 18866//17606 18854//17594 18853//17593 +f 18830//17570 18865//17605 18853//17593 18831//17571 +f 18865//17605 18830//17570 18823//17563 18867//17607 +f 18866//17606 18865//17605 18867//17607 18868//17608 +f 18869//17609 18870//17610 18765//17505 18844//17584 +f 18860//17600 18869//17609 18844//17584 18843//17583 +f 18869//17609 18860//17600 18864//17604 18871//17611 +f 18870//17610 18869//17609 18871//17611 18872//17612 +f 18873//17613 18874//17614 18868//17608 18867//17607 +f 18822//17562 18873//17613 18867//17607 18823//17563 +f 18873//17613 18822//17562 18819//17559 18875//17615 +f 18874//17614 18873//17613 18875//17615 18876//17616 +f 18877//17617 18710//17450 18712//17452 18766//17506 +f 18870//17610 18877//17617 18766//17506 18765//17505 +f 18877//17617 18870//17610 18872//17612 18878//17618 +f 18710//17450 18877//17617 18878//17618 18516//17256 +f 18879//17619 18520//17260 18506//17246 18517//17257 +f 18878//17618 18879//17619 18517//17257 18516//17256 +f 18879//17619 18878//17618 18872//17612 18880//17620 +f 18520//17260 18879//17619 18880//17620 18521//17261 +f 18881//17621 18882//17622 18521//17261 18880//17620 +f 18871//17611 18881//17621 18880//17620 18872//17612 +f 18881//17621 18871//17611 18864//17604 18883//17623 +f 18882//17622 18881//17621 18883//17623 18884//17624 +f 18885//17625 18886//17626 18884//17624 18883//17623 +f 18863//17603 18885//17625 18883//17623 18864//17604 +f 18885//17625 18863//17603 18862//17602 18887//17627 +f 18886//17626 18885//17625 18887//17627 17429//16169 +f 18888//17628 18889//17629 18523//17263 18522//17262 +f 18882//17622 18888//17628 18522//17262 18521//17261 +f 18888//17628 18882//17622 18884//17624 18890//17630 +f 18889//17629 18888//17628 18890//17630 17419//16159 +f 18891//17631 17417//16157 17419//16159 18890//17630 +f 18886//17626 18891//17631 18890//17630 18884//17624 +f 18891//17631 18886//17626 17429//16169 17428//16168 +f 17417//16157 18891//17631 17428//16168 17415//16155 +f 18892//17632 18893//17633 18531//17271 18530//17270 +f 18889//17629 18892//17632 18530//17270 18523//17263 +f 18892//17632 18889//17629 17419//16159 17418//16158 +f 18893//17633 18892//17632 17418//16158 17407//16147 +f 18894//17634 17401//16141 17403//16143 18895//17635 +f 18893//17633 18894//17634 18895//17635 18531//17271 +f 18894//17634 18893//17633 17407//16147 17406//16146 +f 17401//16141 18894//17634 17406//16146 17389//16129 +f 18896//17636 18529//17269 18531//17271 18895//17635 +f 18897//17637 18896//17636 18895//17635 17403//16143 +f 18896//17636 18897//17637 18495//17235 18494//17234 +f 18529//17269 18896//17636 18494//17234 18493//17233 +f 18898//17638 17395//16135 17399//16139 18899//17639 +f 18897//17637 18898//17638 18899//17639 18495//17235 +f 18898//17638 18897//17637 17403//16143 17402//16142 +f 17395//16135 18898//17638 17402//16142 17385//16125 +f 18900//17640 18491//17231 18495//17235 18899//17639 +f 18901//17641 18900//17640 18899//17639 17399//16139 +f 18900//17640 18901//17641 18481//17221 18480//17220 +f 18491//17231 18900//17640 18480//17220 18479//17219 +f 18902//17642 18903//17643 18904//17644 18905//17645 +f 18477//17217 18902//17642 18905//17645 18475//17215 +f 18902//17642 18477//17217 18481//17221 18906//17646 +f 18903//17643 18902//17642 18906//17646 18907//17647 +f 18908//17648 18473//17213 18475//17215 18905//17645 +f 18909//17649 18908//17648 18905//17645 18904//17644 +f 18908//17648 18909//17649 18467//17207 18466//17206 +f 18473//17213 18908//17648 18466//17206 18443//17183 +f 18910//17650 17427//16167 17429//16169 18887//17627 +f 18911//17651 18910//17650 18887//17627 18862//17602 +f 18910//17650 18911//17651 18912//17652 18913//17653 +f 17427//16167 18910//17650 18913//17653 17425//16165 +f 18914//17654 18915//17655 18912//17652 18911//17651 +f 18861//17601 18914//17654 18911//17651 18862//17602 +f 18914//17654 18861//17601 18847//17587 18858//17598 +f 18915//17655 18914//17654 18858//17598 18857//17597 +f 18916//17656 17421//16161 17425//16165 18913//17653 +f 18917//17657 18916//17656 18913//17653 18912//17652 +f 18916//17656 18917//17657 17441//16181 17440//16180 +f 17421//16161 18916//17656 17440//16180 17422//16162 +f 18918//17658 18919//17659 17441//16181 18917//17657 +f 18915//17655 18918//17658 18917//17657 18912//17652 +f 18918//17658 18915//17655 18857//17597 18920//17660 +f 18919//17659 18918//17658 18920//17660 18921//17661 +f 18922//17662 17465//16205 17438//16178 17437//16177 +f 18919//17659 18922//17662 17437//16177 17441//16181 +f 18922//17662 18919//17659 18921//17661 18923//17663 +f 17465//16205 18922//17662 18923//17663 17466//16206 +f 18924//17664 18925//17665 18921//17661 18920//17660 +f 18856//17596 18924//17664 18920//17660 18857//17597 +f 18924//17664 18856//17596 18851//17591 18926//17666 +f 18925//17665 18924//17664 18926//17666 18927//17667 +f 18928//17668 18929//17669 17466//16206 18923//17663 +f 18925//17665 18928//17668 18923//17663 18921//17661 +f 18928//17668 18925//17665 18927//17667 18930//17670 +f 18929//17669 18928//17668 18930//17670 18931//17671 +f 18932//17672 18933//17673 18927//17667 18926//17666 +f 18850//17590 18932//17672 18926//17666 18851//17591 +f 18932//17672 18850//17590 18854//17594 18934//17674 +f 18933//17673 18932//17672 18934//17674 18935//17675 +f 18936//17676 18937//17677 17455//16195 17467//16207 +f 18929//17669 18936//17676 17467//16207 17466//16206 +f 18936//17676 18929//17669 18931//17671 18938//17678 +f 18937//17677 18936//17676 18938//17678 18939//17679 +f 18940//17680 18941//17681 18931//17671 18930//17670 +f 18933//17673 18940//17680 18930//17670 18927//17667 +f 18940//17680 18933//17673 18935//17675 18942//17682 +f 18941//17681 18940//17680 18942//17682 18943//17683 +f 18944//17684 18945//17685 18935//17675 18934//17674 +f 18866//17606 18944//17684 18934//17674 18854//17594 +f 18944//17684 18866//17606 18868//17608 18946//17686 +f 18945//17685 18944//17684 18946//17686 18947//17687 +f 18948//17688 18949//17689 17457//16197 17456//16196 +f 18937//17677 18948//17688 17456//16196 17455//16195 +f 18948//17688 18937//17677 18939//17679 18950//17690 +f 18949//17689 18948//17688 18950//17690 18951//17691 +f 18952//17692 18953//17693 18939//17679 18938//17678 +f 18941//17681 18952//17692 18938//17678 18931//17671 +f 18952//17692 18941//17681 18943//17683 18954//17694 +f 18953//17693 18952//17692 18954//17694 18955//17695 +f 18956//17696 18957//17697 18943//17683 18942//17682 +f 18945//17685 18956//17696 18942//17682 18935//17675 +f 18956//17696 18945//17685 18947//17687 18958//17698 +f 18957//17697 18956//17696 18958//17698 18959//17699 +f 18960//17700 17481//16221 17460//16200 17463//16203 +f 18949//17689 18960//17700 17463//16203 17457//16197 +f 18960//17700 18949//17689 18951//17691 18961//17701 +f 17481//16221 18960//17700 18961//17701 17482//16222 +f 18962//17702 18963//17703 18951//17691 18950//17690 +f 18953//17693 18962//17702 18950//17690 18939//17679 +f 18962//17702 18953//17693 18955//17695 18964//17704 +f 18963//17703 18962//17702 18964//17704 17513//16253 +f 18965//17705 17497//16237 17482//16222 18961//17701 +f 18963//17703 18965//17705 18961//17701 18951//17691 +f 18965//17705 18963//17703 17513//16253 17512//16252 +f 17497//16237 18965//17705 17512//16252 17498//16238 +f 18966//17706 18967//17707 17633//16373 17632//16372 +f 17509//16249 18966//17706 17632//16372 17510//16250 +f 18966//17706 17509//16249 17513//16253 18964//17704 +f 18967//17707 18966//17706 18964//17704 18955//17695 +f 18968//17708 18967//17707 18955//17695 18954//17694 +f 18957//17697 18968//17708 18954//17694 18943//17683 +f 18968//17708 18957//17697 18959//17699 18969//17709 +f 18967//17707 18968//17708 18969//17709 17633//16373 +f 18970//17710 18971//17711 17643//16383 17642//16382 +f 17631//16371 18970//17710 17642//16382 17629//16369 +f 18970//17710 17631//16371 17633//16373 18969//17709 +f 18971//17711 18970//17710 18969//17709 18959//17699 +f 18972//17712 18973//17713 17839//16579 17838//16578 +f 17641//16381 18972//17712 17838//16578 17639//16379 +f 18972//17712 17641//16381 17643//16383 18974//17714 +f 18973//17713 18972//17712 18974//17714 18975//17715 +f 18976//17716 18977//17717 18975//17715 18974//17714 +f 18971//17711 18976//17716 18974//17714 17643//16383 +f 18976//17716 18971//17711 18959//17699 18958//17698 +f 18977//17717 18976//17716 18958//17698 18947//17687 +f 18978//17718 18979//17719 17847//16587 17846//16586 +f 18973//17713 18978//17718 17846//16586 17839//16579 +f 18978//17718 18973//17713 18975//17715 18980//17720 +f 18979//17719 18978//17718 18980//17720 18876//17616 +f 18981//17721 18804//17544 17843//16583 17842//16582 +f 17845//16585 18981//17721 17842//16582 17835//16575 +f 18981//17721 17845//16585 17847//16587 18982//17722 +f 18804//17544 18981//17721 18982//17722 18805//17545 +f 18983//17723 18874//17614 18876//17616 18980//17720 +f 18977//17717 18983//17723 18980//17720 18975//17715 +f 18983//17723 18977//17717 18947//17687 18946//17686 +f 18874//17614 18983//17723 18946//17686 18868//17608 +f 18984//17724 18818//17558 18805//17545 18982//17722 +f 18979//17719 18984//17724 18982//17722 17847//16587 +f 18984//17724 18979//17719 18876//17616 18875//17615 +f 18818//17558 18984//17724 18875//17615 18819//17559 +f 18985//17725 18986//17726 18358//17098 18357//17097 +f 18364//17104 18985//17725 18357//17097 18354//17094 +f 18985//17725 18364//17104 18368//17108 18386//17126 +f 18986//17726 18985//17725 18386//17126 18385//17125 +f 18987//17727 18988//17728 18362//17102 18361//17101 +f 18986//17726 18987//17727 18361//17101 18358//17098 +f 18987//17727 18986//17726 18385//17125 18989//17729 +f 18988//17728 18987//17727 18989//17729 18990//17730 +f 18991//17731 18992//17732 18990//17730 18989//17729 +f 18384//17124 18991//17731 18989//17729 18385//17125 +f 18991//17731 18384//17124 18388//17128 18993//17733 +f 18992//17732 18991//17731 18993//17733 18994//17734 +f 18995//17735 18996//17736 18994//17734 18993//17733 +f 18390//17130 18995//17735 18993//17733 18388//17128 +f 18995//17735 18390//17130 18394//17134 18471//17211 +f 18996//17736 18995//17735 18471//17211 18470//17210 +f 18997//17737 18998//17738 18204//16944 18209//16949 +f 18999//17739 18997//17737 18209//16949 18208//16948 +f 18997//17737 18999//17739 18042//16782 18041//16781 +f 18998//17738 18997//17737 18041//16781 18038//16778 +f 19000//17740 18048//16788 18052//16792 18205//16945 +f 18998//17738 19000//17740 18205//16945 18204//16944 +f 19000//17740 18998//17738 18038//16778 18036//16776 +f 18048//16788 19000//17740 18036//16776 18035//16775 +f 19001//17741 19002//17742 17255//15995 17254//15994 +f 17235//15975 19001//17741 17254//15994 17236//15976 +f 19001//17741 17235//15975 17173//15913 19003//17743 +f 19002//17742 19001//17741 19003//17743 19004//17744 +f 19005//17745 19006//17746 19007//17747 19008//17748 +f 19009//17749 19005//17745 19008//17748 17179//15919 +f 19005//17745 19009//17749 19010//17750 19011//17751 +f 19006//17746 19005//17745 19011//17751 19012//17752 +f 19013//17753 19014//17754 19015//17755 19016//17756 +f 19009//17749 19013//17753 19016//17756 19010//17750 +f 19013//17753 19009//17749 17179//15919 17178//15918 +f 19014//17754 19013//17753 17178//15918 17177//15917 +f 19017//17757 19018//17758 19019//17759 19020//17760 +f 19014//17754 19017//17757 19020//17760 19015//17755 +f 19017//17757 19014//17754 17177//15917 17219//15959 +f 19018//17758 19017//17757 17219//15959 17218//15958 +f 19021//17761 19022//17762 19023//17763 19024//17764 +f 19018//17758 19021//17761 19024//17764 19019//17759 +f 19021//17761 19018//17758 17218//15958 17225//15965 +f 19022//17762 19021//17761 17225//15965 17224//15964 +f 19025//17765 19026//17766 19027//17767 19028//17768 +f 19022//17762 19025//17765 19028//17768 19023//17763 +f 19025//17765 19022//17762 17224//15964 17241//15981 +f 19026//17766 19025//17765 17241//15981 17240//15980 +f 19029//17769 19030//17770 19031//17771 19032//17772 +f 19026//17766 19029//17769 19032//17772 19027//17767 +f 19029//17769 19026//17766 17240//15980 17295//16035 +f 19030//17770 19029//17769 17295//16035 17294//16034 +f 19033//17773 19034//17774 19031//17771 19030//17770 +f 17307//16047 19033//17773 19030//17770 17294//16034 +f 19033//17773 17307//16047 17311//16051 19035//17775 +f 19034//17774 19033//17773 19035//17775 19036//17776 +f 19037//17777 19038//17778 19036//17776 19035//17775 +f 17469//16209 19037//17777 19035//17775 17311//16051 +f 19037//17777 17469//16209 17473//16213 19039//17779 +f 19038//17778 19037//17777 19039//17779 19040//17780 +f 19041//17781 19042//17782 19040//17780 19039//17779 +f 17475//16215 19041//17781 19039//17779 17473//16213 +f 19041//17781 17475//16215 17479//16219 19043//17783 +f 19042//17782 19041//17781 19043//17783 19044//17784 +f 19045//17785 19046//17786 19044//17784 19043//17783 +f 17485//16225 19045//17785 19043//17783 17479//16219 +f 19045//17785 17485//16225 17489//16229 19047//17787 +f 19046//17786 19045//17785 19047//17787 19048//17788 +f 19049//17789 19050//17790 19048//17788 19047//17787 +f 17491//16231 19049//17789 19047//17787 17489//16229 +f 19049//17789 17491//16231 17495//16235 19051//17791 +f 19050//17790 19049//17789 19051//17791 19052//17792 +f 19053//17793 19054//17794 19052//17792 19051//17791 +f 17519//16259 19053//17793 19051//17791 17495//16235 +f 19053//17793 17519//16259 17523//16263 19055//17795 +f 19054//17794 19053//17793 19055//17795 19056//17796 +f 19057//17797 19058//17798 19056//17796 19055//17795 +f 17525//16265 19057//17797 19055//17795 17523//16263 +f 19057//17797 17525//16265 17529//16269 19059//17799 +f 19058//17798 19057//17797 19059//17799 19060//17800 +f 19061//17801 19062//17802 19060//17800 19059//17799 +f 17535//16275 19061//17801 19059//17799 17529//16269 +f 19061//17801 17535//16275 17539//16279 19063//17803 +f 19062//17802 19061//17801 19063//17803 19064//17804 +f 19065//17805 19066//17806 19064//17804 19063//17803 +f 17545//16285 19065//17805 19063//17803 17539//16279 +f 19065//17805 17545//16285 17549//16289 19067//17807 +f 19066//17806 19065//17805 19067//17807 19068//17808 +f 19069//17809 19070//17810 19071//17811 19072//17812 +f 19067//17807 19069//17809 19072//17812 19068//17808 +f 19069//17809 19067//17807 17549//16289 17557//16297 +f 19070//17810 19069//17809 17557//16297 17556//16296 +f 19073//17813 19074//17814 19075//17815 19076//17816 +f 19070//17810 19073//17813 19076//17816 19071//17811 +f 19073//17813 19070//17810 17556//16296 17571//16311 +f 19074//17814 19073//17813 17571//16311 17570//16310 +f 19077//17817 19078//17818 19079//17819 19080//17820 +f 19074//17814 19077//17817 19080//17820 19075//17815 +f 19077//17817 19074//17814 17570//16310 17575//16315 +f 19078//17818 19077//17817 17575//16315 17194//15934 +f 19081//17821 19082//17822 19083//17823 19084//17824 +f 19078//17818 19081//17821 19084//17824 19079//17819 +f 19081//17821 19078//17818 17194//15934 17192//15932 +f 19082//17822 19081//17821 17192//15932 17191//15931 +f 19085//17825 19086//17826 19087//17827 19088//17828 +f 19082//17822 19085//17825 19088//17828 19083//17823 +f 19085//17825 19082//17822 17191//15931 19089//17829 +f 19086//17826 19085//17825 19089//17829 19090//17830 +f 19091//17831 19092//17832 19093//17833 19094//17834 +f 19086//17826 19091//17831 19094//17834 19087//17827 +f 19091//17831 19086//17826 19090//17830 19095//17835 +f 19092//17832 19091//17831 19095//17835 19096//17836 +f 19097//17837 19098//17838 17696//16436 17703//16443 +f 19099//17839 19097//17837 17703//16443 17702//16442 +f 19097//17837 19099//17839 19096//17836 19095//17835 +f 19098//17838 19097//17837 19095//17835 19090//17830 +f 19100//17840 17190//15930 17197//15937 17697//16437 +f 19098//17838 19100//17840 17697//16437 17696//16436 +f 19100//17840 19098//17838 19090//17830 19089//17829 +f 17190//15930 19100//17840 19089//17829 17191//15931 +f 19101//17841 18901//17641 17399//16139 17398//16138 +f 19102//17842 19101//17841 17398//16138 17397//16137 +f 19101//17841 19102//17842 18907//17647 18906//17646 +f 18901//17641 19101//17841 18906//17646 18481//17221 +f 19103//17843 17172//15912 17179//15919 19008//17748 +f 19104//17844 19103//17843 19008//17748 19007//17747 +f 19103//17843 19104//17844 19004//17744 19003//17743 +f 17172//15912 19103//17843 19003//17743 17173//15913 +f 19105//17845 17579//16319 17573//16313 17572//16312 +f 17565//16305 19105//17845 17572//16312 17559//16299 +f 19105//17845 17565//16305 17567//16307 17595//16335 +f 17579//16319 19105//17845 17595//16335 17580//16320 +f 19106//17846 19107//17847 19108//17848 19109//17849 +f 19110//17850 19106//17846 19109//17849 19111//17851 +f 19106//17846 19110//17850 19112//17852 19113//17853 +f 19107//17847 19106//17846 19113//17853 19114//17854 +f 19115//17855 19116//17856 19117//17857 19118//17858 +f 19119//17859 19115//17855 19118//17858 19120//17860 +f 19115//17855 19119//17859 19121//17861 19122//17862 +f 19116//17856 19115//17855 19122//17862 19123//17863 +f 19124//17864 19125//17865 19126//17866 19127//17867 +f 19128//17868 19124//17864 19127//17867 19129//17869 +f 19124//17864 19128//17868 19130//17870 19131//17871 +f 19125//17865 19124//17864 19131//17871 19132//17872 +f 19133//17873 19134//17874 19135//17875 19136//17876 +f 19137//17877 19133//17873 19136//17876 19138//17878 +f 19133//17873 19137//17877 19139//17879 19140//17880 +f 19134//17874 19133//17873 19140//17880 19141//17881 +f 19142//17882 19143//17883 19144//17884 19145//17885 +f 19146//17886 19142//17882 19145//17885 19147//17887 +f 19142//17882 19146//17886 19148//17888 19149//17889 +f 19143//17883 19142//17882 19149//17889 19150//17890 +f 19151//17891 19152//17892 19153//17893 19154//17894 +f 19110//17850 19151//17891 19154//17894 19112//17852 +f 19151//17891 19110//17850 19111//17851 19155//17895 +f 19152//17892 19151//17891 19155//17895 19156//17896 +f 19157//17897 19158//17898 19159//17899 19160//17900 +f 19152//17892 19157//17897 19160//17900 19153//17893 +f 19157//17897 19152//17892 19156//17896 19161//17901 +f 19158//17898 19157//17897 19161//17901 19162//17902 +f 19163//17903 19164//17904 19156//17896 19155//17895 +f 19165//17905 19163//17903 19155//17895 19111//17851 +f 19163//17903 19165//17905 19166//17906 19167//17907 +f 19164//17904 19163//17903 19167//17907 19168//17908 +f 19169//17909 19170//17910 19171//17911 19172//17912 +f 19165//17905 19169//17909 19172//17912 19166//17906 +f 19169//17909 19165//17905 19111//17851 19109//17849 +f 19170//17910 19169//17909 19109//17849 19108//17848 +f 19173//17913 19174//17914 19175//17915 19176//17916 +f 19158//17898 19173//17913 19176//17916 19159//17899 +f 19173//17913 19158//17898 19162//17902 19177//17917 +f 19174//17914 19173//17913 19177//17917 19178//17918 +f 19179//17919 19180//17920 19166//17906 19172//17912 +f 19181//17921 19179//17919 19172//17912 19171//17911 +f 19179//17919 19181//17921 19182//17922 19183//17923 +f 19180//17920 19179//17919 19183//17923 19184//17924 +f 19185//17925 19186//17926 19187//17927 19188//17928 +f 19181//17921 19185//17925 19188//17928 19182//17922 +f 19185//17925 19181//17921 19171//17911 19189//17929 +f 19186//17926 19185//17925 19189//17929 19190//17930 +f 19191//17931 19192//17932 19182//17922 19188//17928 +f 19193//17933 19191//17931 19188//17928 19187//17927 +f 19191//17931 19193//17933 19194//17934 19195//17935 +f 19192//17932 19191//17931 19195//17935 19196//17936 +f 19197//17937 19198//17938 19196//17936 19195//17935 +f 19199//17939 19197//17937 19195//17935 19194//17934 +f 19197//17937 19199//17939 19200//17940 19201//17941 +f 19198//17938 19197//17937 19201//17941 19202//17942 +f 19203//17943 19204//17944 19184//17924 19183//17923 +f 19192//17932 19203//17943 19183//17923 19182//17922 +f 19203//17943 19192//17932 19196//17936 19205//17945 +f 19204//17944 19203//17943 19205//17945 19206//17946 +f 19207//17947 19208//17948 19168//17908 19167//17907 +f 19180//17920 19207//17947 19167//17907 19166//17906 +f 19207//17947 19180//17920 19184//17924 19209//17949 +f 19208//17948 19207//17947 19209//17949 19210//17950 +f 19211//17951 19212//17952 19162//17902 19161//17901 +f 19164//17904 19211//17951 19161//17901 19156//17896 +f 19211//17951 19164//17904 19168//17908 19213//17953 +f 19212//17952 19211//17951 19213//17953 19214//17954 +f 19215//17955 19216//17956 19178//17918 19177//17917 +f 19212//17952 19215//17955 19177//17917 19162//17902 +f 19215//17955 19212//17952 19214//17954 19217//17957 +f 19216//17956 19215//17955 19217//17957 19218//17958 +f 19219//17959 19220//17960 19214//17954 19213//17953 +f 19208//17948 19219//17959 19213//17953 19168//17908 +f 19219//17959 19208//17948 19210//17950 19221//17961 +f 19220//17960 19219//17959 19221//17961 19222//17962 +f 19223//17963 19224//17964 19210//17950 19209//17949 +f 19204//17944 19223//17963 19209//17949 19184//17924 +f 19223//17963 19204//17944 19206//17946 19225//17965 +f 19224//17964 19223//17963 19225//17965 19226//17966 +f 19227//17967 19228//17968 19229//17969 19230//17970 +f 19174//17914 19227//17967 19230//17970 19175//17915 +f 19227//17967 19174//17914 19178//17918 19231//17971 +f 19228//17968 19227//17967 19231//17971 19232//17972 +f 19233//17973 19234//17974 19232//17972 19231//17971 +f 19216//17956 19233//17973 19231//17971 19178//17918 +f 19233//17973 19216//17956 19218//17958 19235//17975 +f 19234//17974 19233//17973 19235//17975 19236//17976 +f 19237//17977 19238//17978 19218//17958 19217//17957 +f 19220//17960 19237//17977 19217//17957 19214//17954 +f 19237//17977 19220//17960 19222//17962 19239//17979 +f 19238//17978 19237//17977 19239//17979 19240//17980 +f 19241//17981 19242//17982 19229//17969 19228//17968 +f 19243//17983 19241//17981 19228//17968 19232//17972 +f 19241//17981 19243//17983 19244//17984 19245//17985 +f 19242//17982 19241//17981 19245//17985 19246//17986 +f 19247//17987 19248//17988 19222//17962 19221//17961 +f 19224//17964 19247//17987 19221//17961 19210//17950 +f 19247//17987 19224//17964 19226//17966 19249//17989 +f 19248//17988 19247//17987 19249//17989 19250//17990 +f 19251//17991 19252//17992 19206//17946 19205//17945 +f 19198//17938 19251//17991 19205//17945 19196//17936 +f 19251//17991 19198//17938 19202//17942 19253//17993 +f 19252//17992 19251//17991 19253//17993 19254//17994 +f 19255//17995 19256//17996 19257//17997 19258//17998 +f 19259//17999 19255//17995 19258//17998 19260//18000 +f 19255//17995 19259//17999 19202//17942 19201//17941 +f 19256//17996 19255//17995 19201//17941 19200//17940 +f 19261//18001 19262//18002 19260//18000 19258//17998 +f 19263//18003 19261//18001 19258//17998 19257//17997 +f 19261//18001 19263//18003 19264//18004 19265//18005 +f 19262//18002 19261//18001 19265//18005 19266//18006 +f 19267//18007 19268//18008 19254//17994 19253//17993 +f 19259//17999 19267//18007 19253//17993 19202//17942 +f 19267//18007 19259//17999 19260//18000 19269//18009 +f 19268//18008 19267//18007 19269//18009 19270//18010 +f 19271//18011 19272//18012 19226//17966 19225//17965 +f 19252//17992 19271//18011 19225//17965 19206//17946 +f 19271//18011 19252//17992 19254//17994 19273//18013 +f 19272//18012 19271//18011 19273//18013 19274//18014 +f 19275//18015 19276//18016 19240//17980 19239//17979 +f 19248//17988 19275//18015 19239//17979 19222//17962 +f 19275//18015 19248//17988 19250//17990 19277//18017 +f 19276//18016 19275//18015 19277//18017 19278//18018 +f 19279//18019 19280//18020 19250//17990 19249//17989 +f 19272//18012 19279//18019 19249//17989 19226//17966 +f 19279//18019 19272//18012 19274//18014 19281//18021 +f 19280//18020 19279//18019 19281//18021 19282//18022 +f 19283//18023 19284//18024 19274//18014 19273//18013 +f 19268//18008 19283//18023 19273//18013 19254//17994 +f 19283//18023 19268//18008 19270//18010 19285//18025 +f 19284//18024 19283//18023 19285//18025 19286//18026 +f 19287//18027 19288//18028 19270//18010 19269//18009 +f 19262//18002 19287//18027 19269//18009 19260//18000 +f 19287//18027 19262//18002 19266//18006 19289//18029 +f 19288//18028 19287//18027 19289//18029 19290//18030 +f 19291//18031 19292//18032 19282//18022 19281//18021 +f 19284//18024 19291//18031 19281//18021 19274//18014 +f 19291//18031 19284//18024 19286//18026 19293//18033 +f 19292//18032 19291//18031 19293//18033 19294//18034 +f 19295//18035 19296//18036 19286//18026 19285//18025 +f 19288//18028 19295//18035 19285//18025 19270//18010 +f 19295//18035 19288//18028 19290//18030 19297//18037 +f 19296//18036 19295//18035 19297//18037 19298//18038 +f 19299//18039 19300//18040 19290//18030 19289//18029 +f 19301//18041 19299//18039 19289//18029 19266//18006 +f 19299//18039 19301//18041 19302//18042 19303//18043 +f 19300//18040 19299//18039 19303//18043 19304//18044 +f 19305//18045 19306//18046 19307//18047 19308//18048 +f 19301//18041 19305//18045 19308//18048 19302//18042 +f 19305//18045 19301//18041 19266//18006 19265//18005 +f 19306//18046 19305//18045 19265//18005 19264//18004 +f 19309//18049 19310//18050 19302//18042 19308//18048 +f 19311//18051 19309//18049 19308//18048 19307//18047 +f 19309//18049 19311//18051 19312//18052 19313//18053 +f 19310//18050 19309//18049 19313//18053 19314//18054 +f 19315//18055 19316//18056 19314//18054 19313//18053 +f 19317//18057 19315//18055 19313//18053 19312//18052 +f 19315//18055 19317//18057 19318//18058 19319//18059 +f 19316//18056 19315//18055 19319//18059 19320//18060 +f 19321//18061 19322//18062 19304//18044 19303//18043 +f 19310//18050 19321//18061 19303//18043 19302//18042 +f 19321//18061 19310//18050 19314//18054 19323//18063 +f 19322//18062 19321//18061 19323//18063 19324//18064 +f 19325//18065 19326//18066 19298//18038 19297//18037 +f 19300//18040 19325//18065 19297//18037 19290//18030 +f 19325//18065 19300//18040 19304//18044 19327//18067 +f 19326//18066 19325//18065 19327//18067 19328//18068 +f 19329//18069 19330//18070 19320//18060 19319//18059 +f 19331//18071 19329//18069 19319//18059 19318//18058 +f 19329//18069 19331//18071 19332//18072 19333//18073 +f 19330//18070 19329//18069 19333//18073 19334//18074 +f 19335//18075 19336//18076 19324//18064 19323//18063 +f 19316//18056 19335//18075 19323//18063 19314//18054 +f 19335//18075 19316//18056 19320//18060 19337//18077 +f 19336//18076 19335//18075 19337//18077 19338//18078 +f 19339//18079 19340//18080 19328//18068 19327//18067 +f 19322//18062 19339//18079 19327//18067 19304//18044 +f 19339//18079 19322//18062 19324//18064 19341//18081 +f 19340//18080 19339//18079 19341//18081 19342//18082 +f 19343//18083 19344//18084 19294//18034 19293//18033 +f 19296//18036 19343//18083 19293//18033 19286//18026 +f 19343//18083 19296//18036 19298//18038 19345//18085 +f 19344//18084 19343//18083 19345//18085 19346//18086 +f 19347//18087 19348//18088 19346//18086 19345//18085 +f 19326//18066 19347//18087 19345//18085 19298//18038 +f 19347//18087 19326//18066 19328//18068 19349//18089 +f 19348//18088 19347//18087 19349//18089 19350//18090 +f 19351//18091 19352//18092 19350//18090 19349//18089 +f 19340//18080 19351//18091 19349//18089 19328//18068 +f 19351//18091 19340//18080 19342//18082 19353//18093 +f 19352//18092 19351//18091 19353//18093 19354//18094 +f 19355//18095 19356//18096 19357//18097 19358//18098 +f 19344//18084 19355//18095 19358//18098 19294//18034 +f 19355//18095 19344//18084 19346//18086 19359//18099 +f 19356//18096 19355//18095 19359//18099 19360//18100 +f 19361//18101 19362//18102 19360//18100 19359//18099 +f 19348//18088 19361//18101 19359//18099 19346//18086 +f 19361//18101 19348//18088 19350//18090 19363//18103 +f 19362//18102 19361//18101 19363//18103 19364//18104 +f 19365//18105 19366//18106 19367//18107 19368//18108 +f 19292//18032 19365//18105 19368//18108 19282//18022 +f 19365//18105 19292//18032 19294//18034 19358//18098 +f 19366//18106 19365//18105 19358//18098 19357//18097 +f 19369//18109 19280//18020 19282//18022 19368//18108 +f 19370//18110 19369//18109 19368//18108 19367//18107 +f 19369//18109 19370//18110 19278//18018 19277//18017 +f 19280//18020 19369//18109 19277//18017 19250//17990 +f 19371//18111 19372//18112 19373//18113 19374//18114 +f 19366//18106 19371//18111 19374//18114 19367//18107 +f 19371//18111 19366//18106 19357//18097 19375//18115 +f 19372//18112 19371//18111 19375//18115 19376//18116 +f 19377//18117 19378//18118 19379//18119 19380//18120 +f 19370//18110 19377//18117 19380//18120 19278//18018 +f 19377//18117 19370//18110 19367//18107 19374//18114 +f 19378//18118 19377//18117 19374//18114 19373//18113 +f 19381//18121 19382//18122 19383//18123 19384//18124 +f 19276//18016 19381//18121 19384//18124 19240//17980 +f 19381//18121 19276//18016 19278//18018 19380//18120 +f 19382//18122 19381//18121 19380//18120 19379//18119 +f 19385//18125 19238//17978 19240//17980 19384//18124 +f 19386//18126 19385//18125 19384//18124 19383//18123 +f 19385//18125 19386//18126 19236//17976 19235//17975 +f 19238//17978 19385//18125 19235//17975 19218//17958 +f 19387//18127 19388//18128 19383//18123 19382//18122 +f 19389//18129 19387//18127 19382//18122 19379//18119 +f 19387//18127 19389//18129 19390//18130 19391//18131 +f 19388//18128 19387//18127 19391//18131 19392//18132 +f 19393//18133 19243//17983 19232//17972 19234//17974 +f 19394//18134 19393//18133 19234//17974 19236//17976 +f 19393//18133 19394//18134 19395//18135 19396//18136 +f 19243//17983 19393//18133 19396//18136 19244//17984 +f 19397//18137 19394//18134 19236//17976 19386//18126 +f 19388//18128 19397//18137 19386//18126 19383//18123 +f 19397//18137 19388//18128 19392//18132 19398//18138 +f 19394//18134 19397//18137 19398//18138 19395//18135 +f 19399//18139 19400//18140 19401//18141 19402//18142 +f 19389//18129 19399//18139 19402//18142 19390//18130 +f 19399//18139 19389//18129 19379//18119 19378//18118 +f 19400//18140 19399//18139 19378//18118 19373//18113 +f 19403//18143 19404//18144 19246//17986 19245//17985 +f 19405//18145 19403//18143 19245//17985 19244//17984 +f 19403//18143 19405//18145 19406//18146 19407//18147 +f 19404//18144 19403//18143 19407//18147 19408//18148 +f 19409//18149 19410//18150 19408//18148 19407//18147 +f 19411//18151 19409//18149 19407//18147 19406//18146 +f 19409//18149 19411//18151 19412//18152 19413//18153 +f 19410//18150 19409//18149 19413//18153 19414//18154 +f 19415//18155 19416//18156 19417//18157 19418//18158 +f 19405//18145 19415//18155 19418//18158 19406//18146 +f 19415//18155 19405//18145 19244//17984 19396//18136 +f 19416//18156 19415//18155 19396//18136 19395//18135 +f 19419//18159 19420//18160 19414//18154 19413//18153 +f 19421//18161 19419//18159 19413//18153 19412//18152 +f 19419//18159 19421//18161 19422//18162 19423//18163 +f 19420//18160 19419//18159 19423//18163 19424//18164 +f 19425//18165 19426//18166 19424//18164 19423//18163 +f 19427//18167 19425//18165 19423//18163 19422//18162 +f 19425//18165 19427//18167 19428//18168 19429//18169 +f 19426//18166 19425//18165 19429//18169 19430//18170 +f 19431//18171 19432//18172 19433//18173 19434//18174 +f 19411//18151 19431//18171 19434//18174 19412//18152 +f 19431//18171 19411//18151 19406//18146 19418//18158 +f 19432//18172 19431//18171 19418//18158 19417//18157 +f 19435//18175 19436//18176 19437//18177 19438//18178 +f 19421//18161 19435//18175 19438//18178 19422//18162 +f 19435//18175 19421//18161 19412//18152 19434//18174 +f 19436//18176 19435//18175 19434//18174 19433//18173 +f 19439//18179 19427//18167 19422//18162 19438//18178 +f 19440//18180 19439//18179 19438//18178 19437//18177 +f 19439//18179 19440//18180 19441//18181 19442//18182 +f 19427//18167 19439//18179 19442//18182 19428//18168 +f 19443//18183 19444//18184 19445//18185 19446//18186 +f 19436//18176 19443//18183 19446//18186 19437//18177 +f 19443//18183 19436//18176 19433//18173 19447//18187 +f 19444//18184 19443//18183 19447//18187 19448//18188 +f 19449//18189 19440//18180 19437//18177 19446//18186 +f 19450//18190 19449//18189 19446//18186 19445//18185 +f 19449//18189 19450//18190 19451//18191 19452//18192 +f 19440//18180 19449//18189 19452//18192 19441//18181 +f 19453//18193 19454//18194 19430//18170 19429//18169 +f 19455//18195 19453//18193 19429//18169 19428//18168 +f 19453//18193 19455//18195 19456//18196 19457//18197 +f 19454//18194 19453//18193 19457//18197 19458//18198 +f 19459//18199 19460//18200 19458//18198 19457//18197 +f 19461//18201 19459//18199 19457//18197 19456//18196 +f 19459//18199 19461//18201 19462//18202 19463//18203 +f 19460//18200 19459//18199 19463//18203 19464//18204 +f 19465//18205 19455//18195 19428//18168 19442//18182 +f 19466//18206 19465//18205 19442//18182 19441//18181 +f 19465//18205 19466//18206 19467//18207 19468//18208 +f 19455//18195 19465//18205 19468//18208 19456//18196 +f 19469//18209 19470//18210 19464//18204 19463//18203 +f 19471//18211 19469//18209 19463//18203 19462//18202 +f 19469//18209 19471//18211 19472//18212 19473//18213 +f 19470//18210 19469//18209 19473//18213 19474//18214 +f 19475//18215 19461//18201 19456//18196 19468//18208 +f 19476//18216 19475//18215 19468//18208 19467//18207 +f 19475//18215 19476//18216 19477//18217 19478//18218 +f 19461//18201 19475//18215 19478//18218 19462//18202 +f 19479//18219 19480//18220 19474//18214 19473//18213 +f 19481//18221 19479//18219 19473//18213 19472//18212 +f 19479//18219 19481//18221 19482//18222 19483//18223 +f 19480//18220 19479//18219 19483//18223 19484//18224 +f 19485//18225 19471//18211 19462//18202 19478//18218 +f 19486//18226 19485//18225 19478//18218 19477//18217 +f 19485//18225 19486//18226 19487//18227 19488//18228 +f 19471//18211 19485//18225 19488//18228 19472//18212 +f 19489//18229 19490//18230 19491//18231 19492//18232 +f 19483//18223 19489//18229 19492//18232 19484//18224 +f 19489//18229 19483//18223 19482//18222 19493//18233 +f 19490//18230 19489//18229 19493//18233 19494//18234 +f 19495//18235 19496//18236 19497//18237 19498//18238 +f 19481//18221 19495//18235 19498//18238 19482//18222 +f 19495//18235 19481//18221 19472//18212 19488//18228 +f 19496//18236 19495//18235 19488//18228 19487//18227 +f 19499//18239 19500//18240 19494//18234 19493//18233 +f 19498//18238 19499//18239 19493//18233 19482//18222 +f 19499//18239 19498//18238 19497//18237 19501//18241 +f 19500//18240 19499//18239 19501//18241 19502//18242 +f 19503//18243 19504//18244 19505//18245 19506//18246 +f 19490//18230 19503//18243 19506//18246 19491//18231 +f 19503//18243 19490//18230 19494//18234 19507//18247 +f 19504//18244 19503//18243 19507//18247 19508//18248 +f 19509//18249 19128//17868 19129//17869 19510//18250 +f 19504//18244 19509//18249 19510//18250 19505//18245 +f 19509//18249 19504//18244 19508//18248 19511//18251 +f 19128//17868 19509//18249 19511//18251 19130//17870 +f 19512//18252 19513//18253 19130//17870 19511//18251 +f 19514//18254 19512//18252 19511//18251 19508//18248 +f 19512//18252 19514//18254 19515//18255 19516//18256 +f 19513//18253 19512//18252 19516//18256 19517//18257 +f 19518//18258 19519//18259 19502//18242 19501//18241 +f 19520//18260 19518//18258 19501//18241 19497//18237 +f 19518//18258 19520//18260 19521//18261 19522//18262 +f 19519//18259 19518//18258 19522//18262 19523//18263 +f 19524//18264 19525//18265 19521//18261 19520//18260 +f 19496//18236 19524//18264 19520//18260 19497//18237 +f 19524//18264 19496//18236 19487//18227 19526//18266 +f 19525//18265 19524//18264 19526//18266 19527//18267 +f 19528//18268 19529//18269 19515//18255 19530//18270 +f 19519//18259 19528//18268 19530//18270 19502//18242 +f 19528//18268 19519//18259 19523//18263 19531//18271 +f 19529//18269 19528//18268 19531//18271 19532//18272 +f 19533//18273 19534//18274 19527//18267 19526//18266 +f 19486//18226 19533//18273 19526//18266 19487//18227 +f 19533//18273 19486//18226 19477//18217 19535//18275 +f 19534//18274 19533//18273 19535//18275 19536//18276 +f 19537//18277 19538//18278 19523//18263 19522//18262 +f 19539//18279 19537//18277 19522//18262 19521//18261 +f 19537//18277 19539//18279 19540//18280 19541//18281 +f 19538//18278 19537//18277 19541//18281 19542//18282 +f 19543//18283 19544//18284 19540//18280 19539//18279 +f 19525//18265 19543//18283 19539//18279 19521//18261 +f 19543//18283 19525//18265 19527//18267 19545//18285 +f 19544//18284 19543//18283 19545//18285 19546//18286 +f 19547//18287 19548//18288 19536//18276 19535//18275 +f 19476//18216 19547//18287 19535//18275 19477//18217 +f 19547//18287 19476//18216 19467//18207 19549//18289 +f 19548//18288 19547//18287 19549//18289 19550//18290 +f 19551//18291 19552//18292 19546//18286 19545//18285 +f 19534//18274 19551//18291 19545//18285 19527//18267 +f 19551//18291 19534//18274 19536//18276 19553//18293 +f 19552//18292 19551//18291 19553//18293 19554//18294 +f 19555//18295 19556//18296 19550//18290 19549//18289 +f 19466//18206 19555//18295 19549//18289 19467//18207 +f 19555//18295 19466//18206 19441//18181 19452//18192 +f 19556//18296 19555//18295 19452//18192 19451//18191 +f 19557//18297 19558//18298 19554//18294 19553//18293 +f 19548//18288 19557//18297 19553//18293 19536//18276 +f 19557//18297 19548//18288 19550//18290 19559//18299 +f 19558//18298 19557//18297 19559//18299 19560//18300 +f 19561//18301 19562//18302 19560//18300 19559//18299 +f 19556//18296 19561//18301 19559//18299 19550//18290 +f 19561//18301 19556//18296 19451//18191 19563//18303 +f 19562//18302 19561//18301 19563//18303 19564//18304 +f 19565//18305 19566//18306 19564//18304 19563//18303 +f 19450//18190 19565//18305 19563//18303 19451//18191 +f 19565//18305 19450//18190 19445//18185 19567//18307 +f 19566//18306 19565//18305 19567//18307 19568//18308 +f 19569//18309 19570//18310 19571//18311 19572//18312 +f 19558//18298 19569//18309 19572//18312 19554//18294 +f 19569//18309 19558//18298 19560//18300 19573//18313 +f 19570//18310 19569//18309 19573//18313 19574//18314 +f 19575//18315 19576//18316 19574//18314 19573//18313 +f 19562//18302 19575//18315 19573//18313 19560//18300 +f 19575//18315 19562//18302 19564//18304 19577//18317 +f 19576//18316 19575//18315 19577//18317 19578//18318 +f 19579//18319 19580//18320 19581//18321 19582//18322 +f 19552//18292 19579//18319 19582//18322 19546//18286 +f 19579//18319 19552//18292 19554//18294 19572//18312 +f 19580//18320 19579//18319 19572//18312 19571//18311 +f 19583//18323 19544//18284 19546//18286 19582//18322 +f 19584//18324 19583//18323 19582//18322 19581//18321 +f 19583//18323 19584//18324 19585//18325 19586//18326 +f 19544//18284 19583//18323 19586//18326 19540//18280 +f 19587//18327 19588//18328 19589//18329 19590//18330 +f 19580//18320 19587//18327 19590//18330 19581//18321 +f 19587//18327 19580//18320 19571//18311 19591//18331 +f 19588//18328 19587//18327 19591//18331 19592//18332 +f 19593//18333 19594//18334 19542//18282 19541//18281 +f 19586//18326 19593//18333 19541//18281 19540//18280 +f 19593//18333 19586//18326 19585//18325 19595//18335 +f 19594//18334 19593//18333 19595//18335 19596//18336 +f 19597//18337 19598//18338 19599//18339 19600//18340 +f 19584//18324 19597//18337 19600//18340 19585//18325 +f 19597//18337 19584//18324 19581//18321 19590//18330 +f 19598//18338 19597//18337 19590//18330 19589//18329 +f 19601//18341 19602//18342 19596//18336 19595//18335 +f 19600//18340 19601//18341 19595//18335 19585//18325 +f 19601//18341 19600//18340 19599//18339 19603//18343 +f 19602//18342 19601//18341 19603//18343 19604//18344 +f 19605//18345 19606//18346 19532//18272 19531//18271 +f 19538//18278 19605//18345 19531//18271 19523//18263 +f 19605//18345 19538//18278 19542//18282 19607//18347 +f 19606//18346 19605//18345 19607//18347 19608//18348 +f 19609//18349 19610//18350 19608//18348 19607//18347 +f 19594//18334 19609//18349 19607//18347 19542//18282 +f 19609//18349 19594//18334 19596//18336 19611//18351 +f 19610//18350 19609//18349 19611//18351 19612//18352 +f 19613//18353 19614//18354 19517//18257 19516//18256 +f 19529//18269 19613//18353 19516//18256 19515//18255 +f 19613//18353 19529//18269 19532//18272 19615//18355 +f 19614//18354 19613//18353 19615//18355 19616//18356 +f 19617//18357 19618//18358 19132//17872 19131//17871 +f 19513//18253 19617//18357 19131//17871 19130//17870 +f 19617//18357 19513//18253 19517//18257 19619//18359 +f 19618//18358 19617//18357 19619//18359 19620//18360 +f 19621//18361 19622//18362 19616//18356 19615//18355 +f 19606//18346 19621//18361 19615//18355 19532//18272 +f 19621//18361 19606//18346 19608//18348 19623//18363 +f 19622//18362 19621//18361 19623//18363 19624//18364 +f 19625//18365 19626//18366 19620//18360 19619//18359 +f 19614//18354 19625//18365 19619//18359 19517//18257 +f 19625//18365 19614//18354 19616//18356 19627//18367 +f 19626//18366 19625//18365 19627//18367 19628//18368 +f 19629//18369 19630//18370 19631//18371 19632//18372 +f 19618//18358 19629//18369 19632//18372 19132//17872 +f 19629//18369 19618//18358 19620//18360 19633//18373 +f 19630//18370 19629//18369 19633//18373 19634//18374 +f 19635//18375 19636//18376 19637//18377 19638//18378 +f 19630//18370 19635//18375 19638//18378 19631//18371 +f 19635//18375 19630//18370 19634//18374 19639//18379 +f 19636//18376 19635//18375 19639//18379 19640//18380 +f 19641//18381 19642//18382 19634//18374 19633//18373 +f 19626//18366 19641//18381 19633//18373 19620//18360 +f 19641//18381 19626//18366 19628//18368 19643//18383 +f 19642//18382 19641//18381 19643//18383 19644//18384 +f 19645//18385 19646//18386 19628//18368 19627//18367 +f 19622//18362 19645//18385 19627//18367 19616//18356 +f 19645//18385 19622//18362 19624//18364 19647//18387 +f 19646//18386 19645//18385 19647//18387 19648//18388 +f 19649//18389 19650//18390 19640//18380 19639//18379 +f 19642//18382 19649//18389 19639//18379 19634//18374 +f 19649//18389 19642//18382 19644//18384 19651//18391 +f 19650//18390 19649//18389 19651//18391 19652//18392 +f 19653//18393 19654//18394 19644//18384 19643//18383 +f 19646//18386 19653//18393 19643//18383 19628//18368 +f 19653//18393 19646//18386 19648//18388 19655//18395 +f 19654//18394 19653//18393 19655//18395 19656//18396 +f 19657//18397 19658//18398 19652//18392 19651//18391 +f 19654//18394 19657//18397 19651//18391 19644//18384 +f 19657//18397 19654//18394 19656//18396 19659//18399 +f 19658//18398 19657//18397 19659//18399 19660//18400 +f 19661//18401 19662//18402 19648//18388 19647//18387 +f 19663//18403 19661//18401 19647//18387 19624//18364 +f 19661//18401 19663//18403 19664//18404 19665//18405 +f 19662//18402 19661//18401 19665//18405 19666//18406 +f 19667//18407 19668//18408 19660//18400 19659//18399 +f 19669//18409 19667//18407 19659//18399 19656//18396 +f 19667//18407 19669//18409 19670//18410 19671//18411 +f 19668//18408 19667//18407 19671//18411 19672//18412 +f 19673//18413 19669//18409 19656//18396 19655//18395 +f 19662//18402 19673//18413 19655//18395 19648//18388 +f 19673//18413 19662//18402 19666//18406 19674//18414 +f 19669//18409 19673//18413 19674//18414 19670//18410 +f 19675//18415 19676//18416 19672//18412 19671//18411 +f 19677//18417 19675//18415 19671//18411 19670//18410 +f 19675//18415 19677//18417 19678//18418 19679//18419 +f 19676//18416 19675//18415 19679//18419 19680//18420 +f 19681//18421 19677//18417 19670//18410 19674//18414 +f 19682//18422 19681//18421 19674//18414 19666//18406 +f 19681//18421 19682//18422 19683//18423 19684//18424 +f 19677//18417 19681//18421 19684//18424 19678//18418 +f 19685//18425 19686//18426 19680//18420 19679//18419 +f 19687//18427 19685//18425 19679//18419 19678//18418 +f 19685//18425 19687//18427 19688//18428 19689//18429 +f 19686//18426 19685//18425 19689//18429 19690//18430 +f 19691//18431 19692//18432 19690//18430 19689//18429 +f 19693//18433 19691//18431 19689//18429 19688//18428 +f 19691//18431 19693//18433 19694//18434 19695//18435 +f 19692//18432 19691//18431 19695//18435 19696//18436 +f 19697//18437 19698//18438 19699//18439 19700//18440 +f 19687//18427 19697//18437 19700//18440 19688//18428 +f 19697//18437 19687//18427 19678//18418 19684//18424 +f 19698//18438 19697//18437 19684//18424 19683//18423 +f 19701//18441 19693//18433 19688//18428 19700//18440 +f 19702//18442 19701//18441 19700//18440 19699//18439 +f 19701//18441 19702//18442 19703//18443 19704//18444 +f 19693//18433 19701//18441 19704//18444 19694//18434 +f 19705//18445 19706//18446 19694//18434 19704//18444 +f 19707//18447 19705//18445 19704//18444 19703//18443 +f 19705//18445 19707//18447 19708//18448 19709//18449 +f 19706//18446 19705//18445 19709//18449 19710//18450 +f 19711//18451 19712//18452 19713//18453 19714//18454 +f 19702//18442 19711//18451 19714//18454 19703//18443 +f 19711//18451 19702//18442 19699//18439 19715//18455 +f 19712//18452 19711//18451 19715//18455 19716//18456 +f 19717//18457 19718//18458 19719//18459 19720//18460 +f 19707//18447 19717//18457 19720//18460 19708//18448 +f 19717//18457 19707//18447 19703//18443 19714//18454 +f 19718//18458 19717//18457 19714//18454 19713//18453 +f 19721//18461 19722//18462 19716//18456 19715//18455 +f 19698//18438 19721//18461 19715//18455 19699//18439 +f 19721//18461 19698//18438 19683//18423 19723//18463 +f 19722//18462 19721//18461 19723//18463 19724//18464 +f 19725//18465 19726//18466 19724//18464 19723//18463 +f 19682//18422 19725//18465 19723//18463 19683//18423 +f 19725//18465 19682//18422 19666//18406 19665//18405 +f 19726//18466 19725//18465 19665//18405 19664//18404 +f 19727//18467 19728//18468 19729//18469 19730//18470 +f 19712//18452 19727//18467 19730//18470 19713//18453 +f 19727//18467 19712//18452 19716//18456 19731//18471 +f 19728//18468 19727//18467 19731//18471 19732//18472 +f 19733//18473 19734//18474 19732//18472 19731//18471 +f 19722//18462 19733//18473 19731//18471 19716//18456 +f 19733//18473 19722//18462 19724//18464 19735//18475 +f 19734//18474 19733//18473 19735//18475 19736//18476 +f 19737//18477 19738//18478 19736//18476 19735//18475 +f 19726//18466 19737//18477 19735//18475 19724//18464 +f 19737//18477 19726//18466 19664//18404 19739//18479 +f 19738//18478 19737//18477 19739//18479 19612//18352 +f 19740//18480 19610//18350 19612//18352 19739//18479 +f 19663//18403 19740//18480 19739//18479 19664//18404 +f 19740//18480 19663//18403 19624//18364 19623//18363 +f 19610//18350 19740//18480 19623//18363 19608//18348 +f 19741//18481 19738//18478 19612//18352 19611//18351 +f 19602//18342 19741//18481 19611//18351 19596//18336 +f 19741//18481 19602//18342 19604//18344 19742//18482 +f 19738//18478 19741//18481 19742//18482 19736//18476 +f 19743//18483 19734//18474 19736//18476 19742//18482 +f 19744//18484 19743//18483 19742//18482 19604//18344 +f 19743//18483 19744//18484 19745//18485 19746//18486 +f 19734//18474 19743//18483 19746//18486 19732//18472 +f 19747//18487 19744//18484 19604//18344 19603//18343 +f 19748//18488 19747//18487 19603//18343 19599//18339 +f 19747//18487 19748//18488 19749//18489 19750//18490 +f 19744//18484 19747//18487 19750//18490 19745//18485 +f 19751//18491 19752//18492 19749//18489 19748//18488 +f 19598//18338 19751//18491 19748//18488 19599//18339 +f 19751//18491 19598//18338 19589//18329 19753//18493 +f 19752//18492 19751//18491 19753//18493 19754//18494 +f 19755//18495 19728//18468 19732//18472 19746//18486 +f 19756//18496 19755//18495 19746//18486 19745//18485 +f 19755//18495 19756//18496 19757//18497 19758//18498 +f 19728//18468 19755//18495 19758//18498 19729//18469 +f 19759//18499 19756//18496 19745//18485 19750//18490 +f 19760//18500 19759//18499 19750//18490 19749//18489 +f 19759//18499 19760//18500 19761//18501 19762//18502 +f 19756//18496 19759//18499 19762//18502 19757//18497 +f 19763//18503 19764//18504 19761//18501 19760//18500 +f 19752//18492 19763//18503 19760//18500 19749//18489 +f 19763//18503 19752//18492 19754//18494 19765//18505 +f 19764//18504 19763//18503 19765//18505 19766//18506 +f 19767//18507 19768//18508 19754//18494 19753//18493 +f 19588//18328 19767//18507 19753//18493 19589//18329 +f 19767//18507 19588//18328 19592//18332 19769//18509 +f 19768//18508 19767//18507 19769//18509 19770//18510 +f 19771//18511 19772//18512 19592//18332 19591//18331 +f 19570//18310 19771//18511 19591//18331 19571//18311 +f 19771//18511 19570//18310 19574//18314 19773//18513 +f 19772//18512 19771//18511 19773//18513 19774//18514 +f 19775//18515 19776//18516 19766//18506 19765//18505 +f 19768//18508 19775//18515 19765//18505 19754//18494 +f 19775//18515 19768//18508 19770//18510 19777//18517 +f 19776//18516 19775//18515 19777//18517 19778//18518 +f 19779//18519 19780//18520 19770//18510 19769//18509 +f 19772//18512 19779//18519 19769//18509 19592//18332 +f 19779//18519 19772//18512 19774//18514 19781//18521 +f 19780//18520 19779//18519 19781//18521 19782//18522 +f 19783//18523 19784//18524 19785//18525 19786//18526 +f 19764//18504 19783//18523 19786//18526 19761//18501 +f 19783//18523 19764//18504 19766//18506 19787//18527 +f 19784//18524 19783//18523 19787//18527 19788//18528 +f 19789//18529 19790//18530 19757//18497 19762//18502 +f 19786//18526 19789//18529 19762//18502 19761//18501 +f 19789//18529 19786//18526 19785//18525 19791//18531 +f 19790//18530 19789//18529 19791//18531 19792//18532 +f 19793//18533 19794//18534 19729//18469 19758//18498 +f 19790//18530 19793//18533 19758//18498 19757//18497 +f 19793//18533 19790//18530 19792//18532 19795//18535 +f 19794//18534 19793//18533 19795//18535 19796//18536 +f 19797//18537 19798//18538 19788//18528 19787//18527 +f 19776//18516 19797//18537 19787//18527 19766//18506 +f 19797//18537 19776//18516 19778//18518 19799//18539 +f 19798//18538 19797//18537 19799//18539 19800//18540 +f 19801//18541 19802//18542 19792//18532 19791//18531 +f 19803//18543 19801//18541 19791//18531 19785//18525 +f 19801//18541 19803//18543 19804//18544 19805//18545 +f 19802//18542 19801//18541 19805//18545 19806//18546 +f 19807//18547 19808//18548 19804//18544 19803//18543 +f 19784//18524 19807//18547 19803//18543 19785//18525 +f 19807//18547 19784//18524 19788//18528 19809//18549 +f 19808//18548 19807//18547 19809//18549 19810//18550 +f 19811//18551 19718//18458 19713//18453 19730//18470 +f 19794//18534 19811//18551 19730//18470 19729//18469 +f 19811//18551 19794//18534 19796//18536 19812//18552 +f 19718//18458 19811//18551 19812//18552 19719//18459 +f 19813//18553 19814//18554 19796//18536 19795//18535 +f 19802//18542 19813//18553 19795//18535 19792//18532 +f 19813//18553 19802//18542 19806//18546 19815//18555 +f 19814//18554 19813//18553 19815//18555 19816//18556 +f 19817//18557 19818//18558 19719//18459 19812//18552 +f 19814//18554 19817//18557 19812//18552 19796//18536 +f 19817//18557 19814//18554 19816//18556 19819//18559 +f 19818//18558 19817//18557 19819//18559 19820//18560 +f 19821//18561 19822//18562 19708//18448 19720//18460 +f 19818//18558 19821//18561 19720//18460 19719//18459 +f 19821//18561 19818//18558 19820//18560 19823//18563 +f 19822//18562 19821//18561 19823//18563 19824//18564 +f 19825//18565 19826//18566 19816//18556 19815//18555 +f 19827//18567 19825//18565 19815//18555 19806//18546 +f 19825//18565 19827//18567 19828//18568 19829//18569 +f 19826//18566 19825//18565 19829//18569 19830//18570 +f 19831//18571 19832//18572 19710//18450 19709//18449 +f 19822//18562 19831//18571 19709//18449 19708//18448 +f 19831//18571 19822//18562 19824//18564 19833//18573 +f 19832//18572 19831//18571 19833//18573 19834//18574 +f 19835//18575 19836//18576 19820//18560 19819//18559 +f 19826//18566 19835//18575 19819//18559 19816//18556 +f 19835//18575 19826//18566 19830//18570 19837//18577 +f 19836//18576 19835//18575 19837//18577 19838//18578 +f 19839//18579 19840//18580 19824//18564 19823//18563 +f 19836//18576 19839//18579 19823//18563 19820//18560 +f 19839//18579 19836//18576 19838//18578 19841//18581 +f 19840//18580 19839//18579 19841//18581 19842//18582 +f 19843//18583 19844//18584 19845//18585 19846//18586 +f 19832//18572 19843//18583 19846//18586 19710//18450 +f 19843//18583 19832//18572 19834//18574 19847//18587 +f 19844//18584 19843//18583 19847//18587 19848//18588 +f 19849//18589 19706//18446 19710//18450 19846//18586 +f 19850//18590 19849//18589 19846//18586 19845//18585 +f 19849//18589 19850//18590 19696//18436 19695//18435 +f 19706//18446 19849//18589 19695//18435 19694//18434 +f 19851//18591 19852//18592 19834//18574 19833//18573 +f 19840//18580 19851//18591 19833//18573 19824//18564 +f 19851//18591 19840//18580 19842//18582 19853//18593 +f 19852//18592 19851//18591 19853//18593 19854//18594 +f 19855//18595 19856//18596 19848//18588 19847//18587 +f 19852//18592 19855//18595 19847//18587 19834//18574 +f 19855//18595 19852//18592 19854//18594 19857//18597 +f 19856//18596 19855//18595 19857//18597 19858//18598 +f 19859//18599 19860//18600 19858//18598 19857//18597 +f 19861//18601 19859//18599 19857//18597 19854//18594 +f 19859//18599 19861//18601 19862//18602 19863//18603 +f 19860//18600 19859//18599 19863//18603 19864//18604 +f 19865//18605 19861//18601 19854//18594 19853//18593 +f 19866//18606 19865//18605 19853//18593 19842//18582 +f 19865//18605 19866//18606 19867//18607 19868//18608 +f 19861//18601 19865//18605 19868//18608 19862//18602 +f 19869//18609 19870//18610 19862//18602 19868//18608 +f 19871//18611 19869//18609 19868//18608 19867//18607 +f 19869//18609 19871//18611 19872//18612 19873//18613 +f 19870//18610 19869//18609 19873//18613 19874//18614 +f 19875//18615 19876//18616 19877//18617 19878//18618 +f 19866//18606 19875//18615 19878//18618 19867//18607 +f 19875//18615 19866//18606 19842//18582 19841//18581 +f 19876//18616 19875//18615 19841//18581 19838//18578 +f 19879//18619 19880//18620 19881//18621 19882//18622 +f 19871//18611 19879//18619 19882//18622 19872//18612 +f 19879//18619 19871//18611 19867//18607 19878//18618 +f 19880//18620 19879//18619 19878//18618 19877//18617 +f 19883//18623 19884//18624 19885//18625 19886//18626 +f 19876//18616 19883//18623 19886//18626 19877//18617 +f 19883//18623 19876//18616 19838//18578 19837//18577 +f 19884//18624 19883//18623 19837//18577 19830//18570 +f 19887//18627 19888//18628 19889//18629 19890//18630 +f 19880//18620 19887//18627 19890//18630 19881//18621 +f 19887//18627 19880//18620 19877//18617 19886//18626 +f 19888//18628 19887//18627 19886//18626 19885//18625 +f 19891//18631 19892//18632 19893//18633 19894//18634 +f 19884//18624 19891//18631 19894//18634 19885//18625 +f 19891//18631 19884//18624 19830//18570 19829//18569 +f 19892//18632 19891//18631 19829//18569 19828//18568 +f 19895//18635 19896//18636 19897//18637 19898//18638 +f 19888//18628 19895//18635 19898//18638 19889//18629 +f 19895//18635 19888//18628 19885//18625 19894//18634 +f 19896//18636 19895//18635 19894//18634 19893//18633 +f 19899//18639 19900//18640 19881//18621 19890//18630 +f 19901//18641 19899//18639 19890//18630 19889//18629 +f 19899//18639 19901//18641 19902//18642 19903//18643 +f 19900//18640 19899//18639 19903//18643 19904//18644 +f 19905//18645 19901//18641 19889//18629 19898//18638 +f 19906//18646 19905//18645 19898//18638 19897//18637 +f 19905//18645 19906//18646 19907//18647 19908//18648 +f 19901//18641 19905//18645 19908//18648 19902//18642 +f 19909//18649 19910//18650 19911//18651 19912//18652 +f 19896//18636 19909//18649 19912//18652 19897//18637 +f 19909//18649 19896//18636 19893//18633 19913//18653 +f 19910//18650 19909//18649 19913//18653 19914//18654 +f 19915//18655 19916//18656 19872//18612 19882//18622 +f 19900//18640 19915//18655 19882//18622 19881//18621 +f 19915//18655 19900//18640 19904//18644 19917//18657 +f 19916//18656 19915//18655 19917//18657 19918//18658 +f 19919//18659 19906//18646 19897//18637 19912//18652 +f 19920//18660 19919//18659 19912//18652 19911//18651 +f 19919//18659 19920//18660 19921//18661 19922//18662 +f 19906//18646 19919//18659 19922//18662 19907//18647 +f 19923//18663 19924//18664 19874//18614 19873//18613 +f 19916//18656 19923//18663 19873//18613 19872//18612 +f 19923//18663 19916//18656 19918//18658 19925//18665 +f 19924//18664 19923//18663 19925//18665 19926//18666 +f 19927//18667 19870//18610 19874//18614 19928//18668 +f 19929//18669 19927//18667 19928//18668 19930//18670 +f 19927//18667 19929//18669 19864//18604 19863//18603 +f 19870//18610 19927//18667 19863//18603 19862//18602 +f 19931//18671 19932//18672 19930//18670 19928//18668 +f 19924//18664 19931//18671 19928//18668 19874//18614 +f 19931//18671 19924//18664 19926//18666 19933//18673 +f 19932//18672 19931//18671 19933//18673 19934//18674 +f 19935//18675 19936//18676 19918//18658 19917//18657 +f 19937//18677 19935//18675 19917//18657 19904//18644 +f 19935//18675 19937//18677 19938//18678 19939//18679 +f 19936//18676 19935//18675 19939//18679 19940//18680 +f 19941//18681 19942//18682 19934//18674 19933//18673 +f 19943//18683 19941//18681 19933//18673 19926//18666 +f 19941//18681 19943//18683 19944//18684 19945//18685 +f 19942//18682 19941//18681 19945//18685 19946//18686 +f 19947//18687 19943//18683 19926//18666 19925//18665 +f 19936//18676 19947//18687 19925//18665 19918//18658 +f 19947//18687 19936//18676 19940//18680 19948//18688 +f 19943//18683 19947//18687 19948//18688 19944//18684 +f 19949//18689 19950//18690 19946//18686 19945//18685 +f 19951//18691 19949//18689 19945//18685 19944//18684 +f 19949//18689 19951//18691 19141//17881 19140//17880 +f 19950//18690 19949//18689 19140//17880 19139//17879 +f 19952//18692 19951//18691 19944//18684 19948//18688 +f 19953//18693 19952//18692 19948//18688 19940//18680 +f 19952//18692 19953//18693 19954//18694 19955//18695 +f 19951//18691 19952//18692 19955//18695 19141//17881 +f 19956//18696 19953//18693 19940//18680 19939//18679 +f 19957//18697 19956//18696 19939//18679 19938//18678 +f 19956//18696 19957//18697 19958//18698 19959//18699 +f 19953//18693 19956//18696 19959//18699 19954//18694 +f 19960//18700 19134//17874 19141//17881 19955//18695 +f 19961//18701 19960//18700 19955//18695 19954//18694 +f 19960//18700 19961//18701 19962//18702 19963//18703 +f 19134//17874 19960//18700 19963//18703 19135//17875 +f 19964//18704 19961//18701 19954//18694 19959//18699 +f 19965//18705 19964//18704 19959//18699 19958//18698 +f 19964//18704 19965//18705 19966//18706 19967//18707 +f 19961//18701 19964//18704 19967//18707 19962//18702 +f 19968//18708 19969//18709 19970//18710 19971//18711 +f 19972//18712 19968//18708 19971//18711 19973//18713 +f 19968//18708 19972//18712 19135//17875 19963//18703 +f 19969//18709 19968//18708 19963//18703 19962//18702 +f 19974//18714 19975//18715 19138//17878 19136//17876 +f 19972//18712 19974//18714 19136//17876 19135//17875 +f 19974//18714 19972//18712 19973//18713 19976//18716 +f 19975//18715 19974//18714 19976//18716 19977//18717 +f 19978//18718 19979//18719 19980//18720 19981//18721 +f 19969//18709 19978//18718 19981//18721 19970//18710 +f 19978//18718 19969//18709 19962//18702 19967//18707 +f 19979//18719 19978//18718 19967//18707 19966//18706 +f 19982//18722 19983//18723 19970//18710 19981//18721 +f 19984//18724 19982//18722 19981//18721 19980//18720 +f 19982//18722 19984//18724 19985//18725 19986//18726 +f 19983//18723 19982//18722 19986//18726 19987//18727 +f 19988//18728 19989//18729 19990//18730 19991//18731 +f 19984//18724 19988//18728 19991//18731 19985//18725 +f 19988//18728 19984//18724 19980//18720 19992//18732 +f 19989//18729 19988//18728 19992//18732 19993//18733 +f 19994//18734 19995//18735 19993//18733 19992//18732 +f 19979//18719 19994//18734 19992//18732 19980//18720 +f 19994//18734 19979//18719 19966//18706 19996//18736 +f 19995//18735 19994//18734 19996//18736 19997//18737 +f 19998//18738 19999//18739 19997//18737 19996//18736 +f 19965//18705 19998//18738 19996//18736 19966//18706 +f 19998//18738 19965//18705 19958//18698 20000//18740 +f 19999//18739 19998//18738 20000//18740 20001//18741 +f 20002//18742 20003//18743 20004//18744 20005//18745 +f 19989//18729 20002//18742 20005//18745 19990//18730 +f 20002//18742 19989//18729 19993//18733 20006//18746 +f 20003//18743 20002//18742 20006//18746 20007//18747 +f 20008//18748 20009//18749 20001//18741 20000//18740 +f 19957//18697 20008//18748 20000//18740 19958//18698 +f 20008//18748 19957//18697 19938//18678 20010//18750 +f 20009//18749 20008//18748 20010//18750 20011//18751 +f 20012//18752 20013//18753 20007//18747 20006//18746 +f 19995//18735 20012//18752 20006//18746 19993//18733 +f 20012//18752 19995//18735 19997//18737 20014//18754 +f 20013//18753 20012//18752 20014//18754 20015//18755 +f 20016//18756 20017//18757 20015//18755 20014//18754 +f 19999//18739 20016//18756 20014//18754 19997//18737 +f 20016//18756 19999//18739 20001//18741 20018//18758 +f 20017//18757 20016//18756 20018//18758 20019//18759 +f 20020//18760 20021//18761 20011//18751 20010//18750 +f 19937//18677 20020//18760 20010//18750 19938//18678 +f 20020//18760 19937//18677 19904//18644 19903//18643 +f 20021//18761 20020//18760 19903//18643 19902//18642 +f 20022//18762 20023//18763 20019//18759 20018//18758 +f 20009//18749 20022//18762 20018//18758 20001//18741 +f 20022//18762 20009//18749 20011//18751 20024//18764 +f 20023//18763 20022//18762 20024//18764 20025//18765 +f 20026//18766 20027//18767 20025//18765 20024//18764 +f 20021//18761 20026//18766 20024//18764 20011//18751 +f 20026//18766 20021//18761 19902//18642 19908//18648 +f 20027//18767 20026//18766 19908//18648 19907//18647 +f 20028//18768 20029//18769 20030//18770 20031//18771 +f 20017//18757 20028//18768 20031//18771 20015//18755 +f 20028//18768 20017//18757 20019//18759 20032//18772 +f 20029//18769 20028//18768 20032//18772 20033//18773 +f 20034//18774 20035//18775 20036//18776 20037//18777 +f 20027//18767 20034//18774 20037//18777 20025//18765 +f 20034//18774 20027//18767 19907//18647 19922//18662 +f 20035//18775 20034//18774 19922//18662 19921//18661 +f 20038//18778 20039//18779 20033//18773 20032//18772 +f 20023//18763 20038//18778 20032//18772 20019//18759 +f 20038//18778 20023//18763 20025//18765 20037//18777 +f 20039//18779 20038//18778 20037//18777 20036//18776 +f 20040//18780 20041//18781 20036//18776 20035//18775 +f 20042//18782 20040//18780 20035//18775 19921//18661 +f 20040//18780 20042//18782 20043//18783 20044//18784 +f 20041//18781 20040//18780 20044//18784 20045//18785 +f 20046//18786 20047//18787 20033//18773 20039//18779 +f 20041//18781 20046//18786 20039//18779 20036//18776 +f 20046//18786 20041//18781 20045//18785 20048//18788 +f 20047//18787 20046//18786 20048//18788 20049//18789 +f 20050//18790 20051//18791 20030//18770 20029//18769 +f 20047//18787 20050//18790 20029//18769 20033//18773 +f 20050//18790 20047//18787 20049//18789 20052//18792 +f 20051//18791 20050//18790 20052//18792 20053//18793 +f 20054//18794 20013//18753 20015//18755 20031//18771 +f 20055//18795 20054//18794 20031//18771 20030//18770 +f 20054//18794 20055//18795 20056//18796 20057//18797 +f 20013//18753 20054//18794 20057//18797 20007//18747 +f 20058//18798 20059//18799 20056//18796 20055//18795 +f 20051//18791 20058//18798 20055//18795 20030//18770 +f 20058//18798 20051//18791 20053//18793 20060//18800 +f 20059//18799 20058//18798 20060//18800 20061//18801 +f 20062//18802 20003//18743 20007//18747 20057//18797 +f 20063//18803 20062//18802 20057//18797 20056//18796 +f 20062//18802 20063//18803 20064//18804 20065//18805 +f 20003//18743 20062//18802 20065//18805 20004//18744 +f 20066//18806 20067//18807 20064//18804 20063//18803 +f 20059//18799 20066//18806 20063//18803 20056//18796 +f 20066//18806 20059//18799 20061//18801 20068//18808 +f 20067//18807 20066//18806 20068//18808 20069//18809 +f 20070//18810 20071//18811 20053//18793 20052//18792 +f 20072//18812 20070//18810 20052//18792 20049//18789 +f 20070//18810 20072//18812 20073//18813 20074//18814 +f 20071//18811 20070//18810 20074//18814 20075//18815 +f 20076//18816 20077//18817 20004//18744 20065//18805 +f 20078//18818 20076//18816 20065//18805 20064//18804 +f 20076//18816 20078//18818 20079//18819 20080//18820 +f 20077//18817 20076//18816 20080//18820 20081//18821 +f 20082//18822 20083//18823 20061//18801 20060//18800 +f 20071//18811 20082//18822 20060//18800 20053//18793 +f 20082//18822 20071//18811 20075//18815 20084//18824 +f 20083//18823 20082//18822 20084//18824 20085//18825 +f 20086//18826 20087//18827 20079//18819 20078//18818 +f 20067//18807 20086//18826 20078//18818 20064//18804 +f 20086//18826 20067//18807 20069//18809 20088//18828 +f 20087//18827 20086//18826 20088//18828 20089//18829 +f 20090//18830 20091//18831 20069//18809 20068//18808 +f 20083//18823 20090//18830 20068//18808 20061//18801 +f 20090//18830 20083//18823 20085//18825 20092//18832 +f 20091//18831 20090//18830 20092//18832 20093//18833 +f 20094//18834 20095//18835 19990//18730 20005//18745 +f 20077//18817 20094//18834 20005//18745 20004//18744 +f 20094//18834 20077//18817 20081//18821 20096//18836 +f 20095//18835 20094//18834 20096//18836 20097//18837 +f 20098//18838 20099//18839 19985//18725 19991//18731 +f 20095//18835 20098//18838 19991//18731 19990//18730 +f 20098//18838 20095//18835 20097//18837 20100//18840 +f 20099//18839 20098//18838 20100//18840 20101//18841 +f 20102//18842 20103//18843 20081//18821 20080//18820 +f 20104//18844 20102//18842 20080//18820 20079//18819 +f 20102//18842 20104//18844 20105//18845 20106//18846 +f 20103//18843 20102//18842 20106//18846 20107//18847 +f 20108//18848 20109//18849 20105//18845 20104//18844 +f 20087//18827 20108//18848 20104//18844 20079//18819 +f 20108//18848 20087//18827 20089//18829 20110//18850 +f 20109//18849 20108//18848 20110//18850 20111//18851 +f 20112//18852 20113//18853 20097//18837 20096//18836 +f 20103//18843 20112//18852 20096//18836 20081//18821 +f 20112//18852 20103//18843 20107//18847 20114//18854 +f 20113//18853 20112//18852 20114//18854 20115//18855 +f 20116//18856 20117//18857 20111//18851 20110//18850 +f 20118//18858 20116//18856 20110//18850 20089//18829 +f 20116//18856 20118//18858 20119//18859 20120//18860 +f 20117//18857 20116//18856 20120//18860 20121//18861 +f 20122//18862 20123//18863 20101//18841 20100//18840 +f 20113//18853 20122//18862 20100//18840 20097//18837 +f 20122//18862 20113//18853 20115//18855 20124//18864 +f 20123//18863 20122//18862 20124//18864 20125//18865 +f 20126//18866 20127//18867 19987//18727 19986//18726 +f 20099//18839 20126//18866 19986//18726 19985//18725 +f 20126//18866 20099//18839 20101//18841 20128//18868 +f 20127//18867 20126//18866 20128//18868 20129//18869 +f 20130//18870 20131//18871 20129//18869 20128//18868 +f 20123//18863 20130//18870 20128//18868 20101//18841 +f 20130//18870 20123//18863 20125//18865 20132//18872 +f 20131//18871 20130//18870 20132//18872 20133//18873 +f 20134//18874 19143//17883 19150//17890 20135//18875 +f 20131//18871 20134//18874 20135//18875 20129//18869 +f 20134//18874 20131//18871 20133//18873 20136//18876 +f 19143//17883 20134//18874 20136//18876 19144//17884 +f 20137//18877 20138//18878 20139//18879 20140//18880 +f 20127//18867 20137//18877 20140//18880 19987//18727 +f 20137//18877 20127//18867 20129//18869 20135//18875 +f 20138//18878 20137//18877 20135//18875 19150//17890 +f 20141//18881 20142//18882 20143//18883 20144//18884 +f 20138//18878 20141//18881 20144//18884 20139//18879 +f 20141//18881 20138//18878 19150//17890 19149//17889 +f 20142//18882 20141//18881 19149//17889 19148//17888 +f 20145//18885 20146//18886 20121//18861 20120//18860 +f 20147//18887 20145//18885 20120//18860 20119//18859 +f 20145//18885 20147//18887 20148//18888 20149//18889 +f 20146//18886 20145//18885 20149//18889 20150//18890 +f 20151//18891 20091//18831 20093//18833 20152//18892 +f 20118//18858 20151//18891 20152//18892 20119//18859 +f 20151//18891 20118//18858 20089//18829 20088//18828 +f 20091//18831 20151//18891 20088//18828 20069//18809 +f 20153//18893 20147//18887 20119//18859 20152//18892 +f 20154//18894 20153//18893 20152//18892 20093//18833 +f 20153//18893 20154//18894 20155//18895 20156//18896 +f 20147//18887 20153//18893 20156//18896 20148//18888 +f 20157//18897 20154//18894 20093//18833 20092//18832 +f 20158//18898 20157//18897 20092//18832 20085//18825 +f 20157//18897 20158//18898 20159//18899 20160//18900 +f 20154//18894 20157//18897 20160//18900 20155//18895 +f 20161//18901 20162//18902 20150//18890 20149//18889 +f 20163//18903 20161//18901 20149//18889 20148//18888 +f 20161//18901 20163//18903 20164//18904 20165//18905 +f 20162//18902 20161//18901 20165//18905 20166//18906 +f 20167//18907 20163//18903 20148//18888 20156//18896 +f 20168//18908 20167//18907 20156//18896 20155//18895 +f 20167//18907 20168//18908 20169//18909 20170//18910 +f 20163//18903 20167//18907 20170//18910 20164//18904 +f 20171//18911 20172//18912 20166//18906 20165//18905 +f 20173//18913 20171//18911 20165//18905 20164//18904 +f 20171//18911 20173//18913 20174//18914 20175//18915 +f 20172//18912 20171//18911 20175//18915 20176//18916 +f 20177//18917 20173//18913 20164//18904 20170//18910 +f 20178//18918 20177//18917 20170//18910 20169//18909 +f 20177//18917 20178//18918 20179//18919 20180//18920 +f 20173//18913 20177//18917 20180//18920 20174//18914 +f 20181//18921 20182//18922 20183//18923 20184//18924 +f 20168//18908 20181//18921 20184//18924 20169//18909 +f 20181//18921 20168//18908 20155//18895 20160//18900 +f 20182//18922 20181//18921 20160//18900 20159//18899 +f 20185//18925 20186//18926 20187//18927 20188//18928 +f 20178//18918 20185//18925 20188//18928 20179//18919 +f 20185//18925 20178//18918 20169//18909 20184//18924 +f 20186//18926 20185//18925 20184//18924 20183//18923 +f 20189//18929 20190//18930 20176//18916 20175//18915 +f 20191//18931 20189//18929 20175//18915 20174//18914 +f 20189//18929 20191//18931 20192//18932 20193//18933 +f 20190//18930 20189//18929 20193//18933 20194//18934 +f 20195//18935 20191//18931 20174//18914 20180//18920 +f 20196//18936 20195//18935 20180//18920 20179//18919 +f 20195//18935 20196//18936 20197//18937 20198//18938 +f 20191//18931 20195//18935 20198//18938 20192//18932 +f 20199//18939 20200//18940 20194//18934 20193//18933 +f 20201//18941 20199//18939 20193//18933 20192//18932 +f 20199//18939 20201//18941 20202//18942 20203//18943 +f 20200//18940 20199//18939 20203//18943 20204//18944 +f 20205//18945 20201//18941 20192//18932 20198//18938 +f 20206//18946 20205//18945 20198//18938 20197//18937 +f 20205//18945 20206//18946 20207//18947 20208//18948 +f 20201//18941 20205//18945 20208//18948 20202//18942 +f 20209//18949 20210//18950 20211//18951 20212//18952 +f 20196//18936 20209//18949 20212//18952 20197//18937 +f 20209//18949 20196//18936 20179//18919 20188//18928 +f 20210//18950 20209//18949 20188//18928 20187//18927 +f 20213//18953 20214//18954 20215//18955 20216//18956 +f 20206//18946 20213//18953 20216//18956 20207//18947 +f 20213//18953 20206//18946 20197//18937 20212//18952 +f 20214//18954 20213//18953 20212//18952 20211//18951 +f 20217//18957 20218//18958 20204//18944 20203//18943 +f 20219//18959 20217//18957 20203//18943 20202//18942 +f 20217//18957 20219//18959 20220//18960 20221//18961 +f 20218//18958 20217//18957 20221//18961 20222//18962 +f 20223//18963 20219//18959 20202//18942 20208//18948 +f 20224//18964 20223//18963 20208//18948 20207//18947 +f 20223//18963 20224//18964 20225//18965 20226//18966 +f 20219//18959 20223//18963 20226//18966 20220//18960 +f 20227//18967 20228//18968 20222//18962 20221//18961 +f 20229//18969 20227//18967 20221//18961 20220//18960 +f 20227//18967 20229//18969 20230//18970 20231//18971 +f 20228//18968 20227//18967 20231//18971 20232//18972 +f 20233//18973 20234//18974 20235//18975 20236//18976 +f 20231//18971 20233//18973 20236//18976 20232//18972 +f 20233//18973 20231//18971 20230//18970 20237//18977 +f 20234//18974 20233//18973 20237//18977 20238//18978 +f 20239//18979 20240//18980 20241//18981 20242//18982 +f 20229//18969 20239//18979 20242//18982 20230//18970 +f 20239//18979 20229//18969 20220//18960 20226//18966 +f 20240//18980 20239//18979 20226//18966 20225//18965 +f 20243//18983 20244//18984 20238//18978 20237//18977 +f 20242//18982 20243//18983 20237//18977 20230//18970 +f 20243//18983 20242//18982 20241//18981 20245//18985 +f 20244//18984 20243//18983 20245//18985 20246//18986 +f 20247//18987 20248//18988 20249//18989 20250//18990 +f 20234//18974 20247//18987 20250//18990 20235//18975 +f 20247//18987 20234//18974 20238//18978 20251//18991 +f 20248//18988 20247//18987 20251//18991 20252//18992 +f 20253//18993 20254//18994 20255//18995 20256//18996 +f 20240//18980 20253//18993 20256//18996 20241//18981 +f 20253//18993 20240//18980 20225//18965 20257//18997 +f 20254//18994 20253//18993 20257//18997 20258//18998 +f 20259//18999 20260//19000 20261//19001 20262//19002 +f 20248//18988 20259//18999 20262//19002 20249//18989 +f 20259//18999 20248//18988 20252//18992 20263//19003 +f 20260//19000 20259//18999 20263//19003 20264//19004 +f 20265//19005 20266//19006 20252//18992 20251//18991 +f 20244//18984 20265//19005 20251//18991 20238//18978 +f 20265//19005 20244//18984 20246//18986 20267//19007 +f 20266//19006 20265//19005 20267//19007 20268//19008 +f 20269//19009 20270//19010 20246//18986 20245//18985 +f 20256//18996 20269//19009 20245//18985 20241//18981 +f 20269//19009 20256//18996 20255//18995 20271//19011 +f 20270//19010 20269//19009 20271//19011 20272//19012 +f 20273//19013 20274//19014 20275//19015 20276//19016 +f 20260//19000 20273//19013 20276//19016 20261//19001 +f 20273//19013 20260//19000 20264//19004 20277//19017 +f 20274//19014 20273//19013 20277//19017 20278//19018 +f 20279//19019 20280//19020 20264//19004 20263//19003 +f 20266//19006 20279//19019 20263//19003 20252//18992 +f 20279//19019 20266//19006 20268//19008 20281//19021 +f 20280//19020 20279//19019 20281//19021 20282//19022 +f 20283//19023 19119//17859 19120//17860 20284//19024 +f 20274//19014 20283//19023 20284//19024 20275//19015 +f 20283//19023 20274//19014 20278//19018 20285//19025 +f 19119//17859 20283//19023 20285//19025 19121//17861 +f 20286//19026 20287//19027 20278//19018 20277//19017 +f 20280//19020 20286//19026 20277//19017 20264//19004 +f 20286//19026 20280//19020 20282//19022 20288//19028 +f 20287//19027 20286//19026 20288//19028 20289//19029 +f 20290//19030 20291//19031 19121//17861 20285//19025 +f 20287//19027 20290//19030 20285//19025 20278//19018 +f 20290//19030 20287//19027 20289//19029 20292//19032 +f 20291//19031 20290//19030 20292//19032 20293//19033 +f 20294//19034 20295//19035 19123//17863 19122//17862 +f 20291//19031 20294//19034 19122//17862 19121//17861 +f 20294//19034 20291//19031 20293//19033 20296//19036 +f 20295//19035 20294//19034 20296//19036 20297//19037 +f 20298//19038 20299//19039 20289//19029 20288//19028 +f 20300//19040 20298//19038 20288//19028 20282//19022 +f 20298//19038 20300//19040 20301//19041 20302//19042 +f 20299//19039 20298//19038 20302//19042 20303//19043 +f 20304//19044 20305//19045 20306//19046 20307//19047 +f 20300//19040 20304//19044 20307//19047 20301//19041 +f 20304//19044 20300//19040 20282//19022 20281//19021 +f 20305//19045 20304//19044 20281//19021 20268//19008 +f 20308//19048 20309//19049 20303//19043 20302//19042 +f 20310//19050 20308//19048 20302//19042 20301//19041 +f 20308//19048 20310//19050 20311//19051 20312//19052 +f 20309//19049 20308//19048 20312//19052 20313//19053 +f 20314//19054 20310//19050 20301//19041 20307//19047 +f 20315//19055 20314//19054 20307//19047 20306//19046 +f 20314//19054 20315//19055 20316//19056 20317//19057 +f 20310//19050 20314//19054 20317//19057 20311//19051 +f 20318//19058 20319//19059 20320//19060 20321//19061 +f 20309//19049 20318//19058 20321//19061 20303//19043 +f 20318//19058 20309//19049 20313//19053 20322//19062 +f 20319//19059 20318//19058 20322//19062 20323//19063 +f 20324//19064 20325//19065 20323//19063 20322//19062 +f 20326//19066 20324//19064 20322//19062 20313//19053 +f 20324//19064 20326//19066 20327//19067 20328//19068 +f 20325//19065 20324//19064 20328//19068 20329//19069 +f 20330//19070 20326//19066 20313//19053 20312//19052 +f 20331//19071 20330//19070 20312//19052 20311//19051 +f 20330//19070 20331//19071 20332//19072 20333//19073 +f 20326//19066 20330//19070 20333//19073 20327//19067 +f 20334//19074 20335//19075 20336//19076 20337//19077 +f 20338//19078 20334//19074 20337//19077 20339//19079 +f 20334//19074 20338//19078 20329//19069 20328//19068 +f 20335//19075 20334//19074 20328//19068 20327//19067 +f 20340//19080 20341//19081 20342//19082 20343//19083 +f 20331//19071 20340//19080 20343//19083 20332//19072 +f 20340//19080 20331//19071 20311//19051 20317//19057 +f 20341//19081 20340//19080 20317//19057 20316//19056 +f 20344//19084 20335//19075 20327//19067 20333//19073 +f 20345//19085 20344//19084 20333//19073 20332//19072 +f 20344//19084 20345//19085 20346//19086 20347//19087 +f 20335//19075 20344//19084 20347//19087 20336//19076 +f 20348//19088 20345//19085 20332//19072 20343//19083 +f 20349//19089 20348//19088 20343//19083 20342//19082 +f 20348//19088 20349//19089 20350//19090 20351//19091 +f 20345//19085 20348//19088 20351//19091 20346//19086 +f 20352//19092 20353//19093 20354//19094 20355//19095 +f 20341//19081 20352//19092 20355//19095 20342//19082 +f 20352//19092 20341//19081 20316//19056 20356//19096 +f 20353//19093 20352//19092 20356//19096 20357//19097 +f 20358//19098 20359//19099 20360//19100 20361//19101 +f 20349//19089 20358//19098 20361//19101 20350//19090 +f 20358//19098 20349//19089 20342//19082 20355//19095 +f 20359//19099 20358//19098 20355//19095 20354//19094 +f 20362//19102 20363//19103 20346//19086 20351//19091 +f 20364//19104 20362//19102 20351//19091 20350//19090 +f 20362//19102 20364//19104 20365//19105 20366//19106 +f 20363//19103 20362//19102 20366//19106 20367//19107 +f 20368//19108 20369//19109 20357//19097 20356//19096 +f 20315//19055 20368//19108 20356//19096 20316//19056 +f 20368//19108 20315//19055 20306//19046 20370//19110 +f 20369//19109 20368//19108 20370//19110 20272//19012 +f 20371//19111 20372//19112 20336//19076 20347//19087 +f 20363//19103 20371//19111 20347//19087 20346//19086 +f 20371//19111 20363//19103 20367//19107 20373//19113 +f 20372//19112 20371//19111 20373//19113 20374//19114 +f 20375//19115 20376//19116 20339//19079 20337//19077 +f 20372//19112 20375//19115 20337//19077 20336//19076 +f 20375//19115 20372//19112 20374//19114 20377//19117 +f 20376//19116 20375//19115 20377//19117 20378//19118 +f 20379//19119 20380//19120 20381//19121 20382//19122 +f 20364//19104 20379//19119 20382//19122 20365//19105 +f 20379//19119 20364//19104 20350//19090 20361//19101 +f 20380//19120 20379//19119 20361//19101 20360//19100 +f 20383//19123 20384//19124 20367//19107 20366//19106 +f 20385//19125 20383//19123 20366//19106 20365//19105 +f 20383//19123 20385//19125 20386//19126 20387//19127 +f 20384//19124 20383//19123 20387//19127 20388//19128 +f 20389//19129 20385//19125 20365//19105 20382//19122 +f 20390//19130 20389//19129 20382//19122 20381//19121 +f 20389//19129 20390//19130 20391//19131 20392//19132 +f 20385//19125 20389//19129 20392//19132 20386//19126 +f 20393//19133 20394//19134 20374//19114 20373//19113 +f 20384//19124 20393//19133 20373//19113 20367//19107 +f 20393//19133 20384//19124 20388//19128 20395//19135 +f 20394//19134 20393//19133 20395//19135 20396//19136 +f 20397//19137 20398//19138 20399//19139 20400//19140 +f 20376//19116 20397//19137 20400//19140 20339//19079 +f 20397//19137 20376//19116 20378//19118 20401//19141 +f 20398//19138 20397//19137 20401//19141 20402//19142 +f 20403//19143 20338//19078 20339//19079 20400//19140 +f 20404//19144 20403//19143 20400//19140 20399//19139 +f 20403//19143 20404//19144 20405//19145 20406//19146 +f 20338//19078 20403//19143 20406//19146 20329//19069 +f 20407//19147 20408//19148 20378//19118 20377//19117 +f 20394//19134 20407//19147 20377//19117 20374//19114 +f 20407//19147 20394//19134 20396//19136 20409//19149 +f 20408//19148 20407//19147 20409//19149 20410//19150 +f 20411//19151 20412//19152 20410//19150 20409//19149 +f 20413//19153 20411//19151 20409//19149 20396//19136 +f 20411//19151 20413//19153 20414//19154 20415//19155 +f 20412//19152 20411//19151 20415//19155 20416//19156 +f 20417//19157 20413//19153 20396//19136 20395//19135 +f 20418//19158 20417//19157 20395//19135 20388//19128 +f 20417//19157 20418//19158 20419//19159 20420//19160 +f 20413//19153 20417//19157 20420//19160 20414//19154 +f 20421//19161 20422//19162 20423//19163 20424//19164 +f 20418//19158 20421//19161 20424//19164 20419//19159 +f 20421//19161 20418//19158 20388//19128 20387//19127 +f 20422//19162 20421//19161 20387//19127 20386//19126 +f 20425//19165 20426//19166 20414//19154 20420//19160 +f 20427//19167 20425//19165 20420//19160 20419//19159 +f 20425//19165 20427//19167 20428//19168 20429//19169 +f 20426//19166 20425//19165 20429//19169 20430//19170 +f 20431//19171 20432//19172 20433//19173 20434//19174 +f 20422//19162 20431//19171 20434//19174 20423//19163 +f 20431//19171 20422//19162 20386//19126 20392//19132 +f 20432//19172 20431//19171 20392//19132 20391//19131 +f 20435//19175 20427//19167 20419//19159 20424//19164 +f 20436//19176 20435//19175 20424//19164 20423//19163 +f 20435//19175 20436//19176 20437//19177 20438//19178 +f 20427//19167 20435//19175 20438//19178 20428//19168 +f 20439//19179 20436//19176 20423//19163 20434//19174 +f 20440//19180 20439//19179 20434//19174 20433//19173 +f 20439//19179 20440//19180 20441//19181 20442//19182 +f 20436//19176 20439//19179 20442//19182 20437//19177 +f 20443//19183 20444//19184 20445//19185 20446//19186 +f 20432//19172 20443//19183 20446//19186 20433//19173 +f 20443//19183 20432//19172 20391//19131 20447//19187 +f 20444//19184 20443//19183 20447//19187 20448//19188 +f 20449//19189 20450//19190 20451//19191 20452//19192 +f 20440//19180 20449//19189 20452//19192 20441//19181 +f 20449//19189 20440//19180 20433//19173 20446//19186 +f 20450//19190 20449//19189 20446//19186 20445//19185 +f 20453//19193 20454//19194 20437//19177 20442//19182 +f 20455//19195 20453//19193 20442//19182 20441//19181 +f 20453//19193 20455//19195 20456//19196 20457//19197 +f 20454//19194 20453//19193 20457//19197 20458//19198 +f 20459//19199 20460//19200 20448//19188 20447//19187 +f 20390//19130 20459//19199 20447//19187 20391//19131 +f 20459//19199 20390//19130 20381//19121 20461//19201 +f 20460//19200 20459//19199 20461//19201 20462//19202 +f 20463//19203 20464//19204 20428//19168 20438//19178 +f 20454//19194 20463//19203 20438//19178 20437//19177 +f 20463//19203 20454//19194 20458//19198 20465//19205 +f 20464//19204 20463//19203 20465//19205 20466//19206 +f 20467//19207 20468//19208 20462//19202 20461//19201 +f 20380//19120 20467//19207 20461//19201 20381//19121 +f 20467//19207 20380//19120 20360//19100 20469//19209 +f 20468//19208 20467//19207 20469//19209 20470//19210 +f 20471//19211 20472//19212 20445//19185 20444//19184 +f 20473//19213 20471//19211 20444//19184 20448//19188 +f 20471//19211 20473//19213 20474//19214 20475//19215 +f 20472//19212 20471//19211 20475//19215 20476//19216 +f 20477//19217 20478//19218 20470//19210 20469//19209 +f 20359//19099 20477//19217 20469//19209 20360//19100 +f 20477//19217 20359//19099 20354//19094 20479//19219 +f 20478//19218 20477//19217 20479//19219 20480//19220 +f 20481//19221 20473//19213 20448//19188 20460//19200 +f 20482//19222 20481//19221 20460//19200 20462//19202 +f 20481//19221 20482//19222 20483//19223 20484//19224 +f 20473//19213 20481//19221 20484//19224 20474//19214 +f 20485//19225 20482//19222 20462//19202 20468//19208 +f 20486//19226 20485//19225 20468//19208 20470//19210 +f 20485//19225 20486//19226 20487//19227 20488//19228 +f 20482//19222 20485//19225 20488//19228 20483//19223 +f 20489//19229 20490//19230 20480//19220 20479//19219 +f 20353//19093 20489//19229 20479//19219 20354//19094 +f 20489//19229 20353//19093 20357//19097 20491//19231 +f 20490//19230 20489//19229 20491//19231 20492//19232 +f 20493//19233 20494//19234 20495//19235 20496//19236 +f 20486//19226 20493//19233 20496//19236 20487//19227 +f 20493//19233 20486//19226 20470//19210 20478//19218 +f 20494//19234 20493//19233 20478//19218 20480//19220 +f 20497//19237 20498//19238 20483//19223 20488//19228 +f 20499//19239 20497//19237 20488//19228 20487//19227 +f 20497//19237 20499//19239 20500//19240 20501//19241 +f 20498//19238 20497//19237 20501//19241 20502//19242 +f 20503//19243 20499//19239 20487//19227 20496//19236 +f 20504//19244 20503//19243 20496//19236 20495//19235 +f 20503//19243 20504//19244 20505//19245 20506//19246 +f 20499//19239 20503//19243 20506//19246 20500//19240 +f 20507//19247 20508//19248 20509//19249 20510//19250 +f 20494//19234 20507//19247 20510//19250 20495//19235 +f 20507//19247 20494//19234 20480//19220 20490//19230 +f 20508//19248 20507//19247 20490//19230 20492//19232 +f 20511//19251 20512//19252 20474//19214 20484//19224 +f 20498//19238 20511//19251 20484//19224 20483//19223 +f 20511//19251 20498//19238 20502//19242 20513//19253 +f 20512//19252 20511//19251 20513//19253 20514//19254 +f 20515//19255 20504//19244 20495//19235 20510//19250 +f 20516//19256 20515//19255 20510//19250 20509//19249 +f 20515//19255 20516//19256 20517//19257 20518//19258 +f 20504//19244 20515//19255 20518//19258 20505//19245 +f 20519//19259 20520//19260 20215//18955 20521//19261 +f 20516//19256 20519//19259 20521//19261 20517//19257 +f 20519//19259 20516//19256 20509//19249 20522//19262 +f 20520//19260 20519//19259 20522//19262 20258//18998 +f 20523//19263 20524//19264 20492//19232 20491//19231 +f 20369//19109 20523//19263 20491//19231 20357//19097 +f 20523//19263 20369//19109 20272//19012 20271//19011 +f 20524//19264 20523//19263 20271//19011 20255//18995 +f 20525//19265 20270//19010 20272//19012 20370//19110 +f 20305//19045 20525//19265 20370//19110 20306//19046 +f 20525//19265 20305//19045 20268//19008 20267//19007 +f 20270//19010 20525//19265 20267//19007 20246//18986 +f 20526//19266 20508//19248 20492//19232 20524//19264 +f 20254//18994 20526//19266 20524//19264 20255//18995 +f 20526//19266 20254//18994 20258//18998 20522//19262 +f 20508//19248 20526//19266 20522//19262 20509//19249 +f 20527//19267 20520//19260 20258//18998 20257//18997 +f 20224//18964 20527//19267 20257//18997 20225//18965 +f 20527//19267 20224//18964 20207//18947 20216//18956 +f 20520//19260 20527//19267 20216//18956 20215//18955 +f 20528//19268 20529//19269 20517//19257 20521//19261 +f 20214//18954 20528//19268 20521//19261 20215//18955 +f 20528//19268 20214//18954 20211//18951 20530//19270 +f 20529//19269 20528//19268 20530//19270 20531//19271 +f 20532//19272 20533//19273 20505//19245 20518//19258 +f 20529//19269 20532//19272 20518//19258 20517//19257 +f 20532//19272 20529//19269 20531//19271 20534//19274 +f 20533//19273 20532//19272 20534//19274 20535//19275 +f 20536//19276 20537//19277 20531//19271 20530//19270 +f 20210//18950 20536//19276 20530//19270 20211//18951 +f 20536//19276 20210//18950 20187//18927 20538//19278 +f 20537//19277 20536//19276 20538//19278 20539//19279 +f 20540//19280 20541//19281 20500//19240 20506//19246 +f 20533//19273 20540//19280 20506//19246 20505//19245 +f 20540//19280 20533//19273 20535//19275 20542//19282 +f 20541//19281 20540//19280 20542//19282 20543//19283 +f 20544//19284 20545//19285 20535//19275 20534//19274 +f 20537//19277 20544//19284 20534//19274 20531//19271 +f 20544//19284 20537//19277 20539//19279 20546//19286 +f 20545//19285 20544//19284 20546//19286 20547//19287 +f 20548//19288 20549//19289 20539//19279 20538//19278 +f 20186//18926 20548//19288 20538//19278 20187//18927 +f 20548//19288 20186//18926 20183//18923 20550//19290 +f 20549//19289 20548//19288 20550//19290 20551//19291 +f 20552//19292 20553//19293 20502//19242 20501//19241 +f 20541//19281 20552//19292 20501//19241 20500//19240 +f 20552//19292 20541//19281 20543//19283 20554//19294 +f 20553//19293 20552//19292 20554//19294 20555//19295 +f 20556//19296 20557//19297 20543//19283 20542//19282 +f 20545//19285 20556//19296 20542//19282 20535//19275 +f 20556//19296 20545//19285 20547//19287 20558//19298 +f 20557//19297 20556//19296 20558//19298 20559//19299 +f 20560//19300 20561//19301 20547//19287 20546//19286 +f 20549//19289 20560//19300 20546//19286 20539//19279 +f 20560//19300 20549//19289 20551//19291 20562//19302 +f 20561//19301 20560//19300 20562//19302 20563//19303 +f 20564//19304 20565//19305 20551//19291 20550//19290 +f 20182//18922 20564//19304 20550//19290 20183//18923 +f 20564//19304 20182//18922 20159//18899 20566//19306 +f 20565//19305 20564//19304 20566//19306 20567//19307 +f 20568//19308 20569//19309 20567//19307 20566//19306 +f 20158//18898 20568//19308 20566//19306 20159//18899 +f 20568//19308 20158//18898 20085//18825 20084//18824 +f 20569//19309 20568//19308 20084//18824 20075//18815 +f 20570//19310 20571//19311 20563//19303 20562//19302 +f 20565//19305 20570//19310 20562//19302 20551//19291 +f 20570//19310 20565//19305 20567//19307 20572//19312 +f 20571//19311 20570//19310 20572//19312 20573//19313 +f 20574//19314 20575//19315 20559//19299 20558//19298 +f 20561//19301 20574//19314 20558//19298 20547//19287 +f 20574//19314 20561//19301 20563//19303 20576//19316 +f 20575//19315 20574//19314 20576//19316 20577//19317 +f 20578//19318 20579//19319 20573//19313 20572//19312 +f 20569//19309 20578//19318 20572//19312 20567//19307 +f 20578//19318 20569//19309 20075//18815 20074//18814 +f 20579//19319 20578//19318 20074//18814 20073//18813 +f 20580//19320 20581//19321 20577//19317 20576//19316 +f 20571//19311 20580//19320 20576//19316 20563//19303 +f 20580//19320 20571//19311 20573//19313 20582//19322 +f 20581//19321 20580//19320 20582//19322 20583//19323 +f 20584//19324 20585//19325 20583//19323 20582//19322 +f 20579//19319 20584//19324 20582//19322 20573//19313 +f 20584//19324 20579//19319 20073//18813 20586//19326 +f 20585//19325 20584//19324 20586//19326 20587//19327 +f 20588//19328 20589//19329 20587//19327 20586//19326 +f 20072//18812 20588//19328 20586//19326 20073//18813 +f 20588//19328 20072//18812 20049//18789 20048//18788 +f 20589//19329 20588//19328 20048//18788 20045//18785 +f 20590//19330 20591//19331 20592//19332 20593//19333 +f 20581//19321 20590//19330 20593//19333 20577//19317 +f 20590//19330 20581//19321 20583//19323 20594//19334 +f 20591//19331 20590//19330 20594//19334 20595//19335 +f 20596//19336 20597//19337 20598//19338 20599//19339 +f 20589//19329 20596//19336 20599//19339 20587//19327 +f 20596//19336 20589//19329 20045//18785 20044//18784 +f 20597//19337 20596//19336 20044//18784 20043//18783 +f 20600//19340 20601//19341 20595//19335 20594//19334 +f 20585//19325 20600//19340 20594//19334 20583//19323 +f 20600//19340 20585//19325 20587//19327 20599//19339 +f 20601//19341 20600//19340 20599//19339 20598//19338 +f 20602//19342 20603//19343 20604//19344 20605//19345 +f 20597//19337 20602//19342 20605//19345 20598//19338 +f 20602//19342 20597//19337 20043//18783 20606//19346 +f 20603//19343 20602//19342 20606//19346 20607//19347 +f 20608//19348 20609//19349 20610//19350 20611//19351 +f 20601//19341 20608//19348 20611//19351 20595//19335 +f 20608//19348 20601//19341 20598//19338 20605//19345 +f 20609//19349 20608//19348 20605//19345 20604//19344 +f 20612//19352 20613//19353 20614//19354 20615//19355 +f 20591//19331 20612//19352 20615//19355 20592//19332 +f 20612//19352 20591//19331 20595//19335 20611//19351 +f 20613//19353 20612//19352 20611//19351 20610//19350 +f 20616//19356 20575//19315 20577//19317 20593//19333 +f 20617//19357 20616//19356 20593//19333 20592//19332 +f 20616//19356 20617//19357 20618//19358 20619//19359 +f 20575//19315 20616//19356 20619//19359 20559//19299 +f 20620//19360 20617//19357 20592//19332 20615//19355 +f 20621//19361 20620//19360 20615//19355 20614//19354 +f 20620//19360 20621//19361 20622//19362 20623//19363 +f 20617//19357 20620//19360 20623//19363 20618//19358 +f 20624//19364 20557//19297 20559//19299 20619//19359 +f 20625//19365 20624//19364 20619//19359 20618//19358 +f 20624//19364 20625//19365 20555//19295 20554//19294 +f 20557//19297 20624//19364 20554//19294 20543//19283 +f 20626//19366 20627//19367 20628//19368 20629//19369 +f 20625//19365 20626//19366 20629//19369 20555//19295 +f 20626//19366 20625//19365 20618//19358 20623//19363 +f 20627//19367 20626//19366 20623//19363 20622//19362 +f 20630//19370 20631//19371 20514//19254 20513//19253 +f 20553//19293 20630//19370 20513//19253 20502//19242 +f 20630//19370 20553//19293 20555//19295 20629//19369 +f 20631//19371 20630//19370 20629//19369 20628//19368 +f 20632//19372 20633//19373 20634//19374 20635//19375 +f 20627//19367 20632//19372 20635//19375 20628//19368 +f 20632//19372 20627//19367 20622//19362 20636//19376 +f 20633//19373 20632//19372 20636//19376 20637//19377 +f 20638//19378 20639//19379 20476//19216 20475//19215 +f 20512//19252 20638//19378 20475//19215 20474//19214 +f 20638//19378 20512//19252 20514//19254 20640//19380 +f 20639//19379 20638//19378 20640//19380 20641//19381 +f 20642//19382 20643//19383 20641//19381 20640//19380 +f 20631//19371 20642//19382 20640//19380 20514//19254 +f 20642//19382 20631//19371 20628//19368 20635//19375 +f 20643//19383 20642//19382 20635//19375 20634//19374 +f 20644//19384 20645//19385 20451//19191 20450//19190 +f 20472//19212 20644//19384 20450//19190 20445//19185 +f 20644//19384 20472//19212 20476//19216 20646//19386 +f 20645//19385 20644//19384 20646//19386 20647//19387 +f 20648//19388 20649//19389 20647//19387 20646//19386 +f 20639//19379 20648//19388 20646//19386 20476//19216 +f 20648//19388 20639//19379 20641//19381 20650//19390 +f 20649//19389 20648//19388 20650//19390 20651//19391 +f 20652//19392 20653//19393 20651//19391 20650//19390 +f 20643//19383 20652//19392 20650//19390 20641//19381 +f 20652//19392 20643//19383 20634//19374 20654//19394 +f 20653//19393 20652//19392 20654//19394 20655//19395 +f 20656//19396 20657//19397 20637//19377 20636//19376 +f 20621//19361 20656//19396 20636//19376 20622//19362 +f 20656//19396 20621//19361 20614//19354 20658//19398 +f 20657//19397 20656//19396 20658//19398 20659//19399 +f 20660//19400 20661//19401 20655//19395 20654//19394 +f 20633//19373 20660//19400 20654//19394 20634//19374 +f 20660//19400 20633//19373 20637//19377 20662//19402 +f 20661//19401 20660//19400 20662//19402 20663//19403 +f 20664//19404 20665//19405 20659//19399 20658//19398 +f 20613//19353 20664//19404 20658//19398 20614//19354 +f 20664//19404 20613//19353 20610//19350 20666//19406 +f 20665//19405 20664//19404 20666//19406 20667//19407 +f 20668//19408 20669//19409 20663//19403 20662//19402 +f 20657//19397 20668//19408 20662//19402 20637//19377 +f 20668//19408 20657//19397 20659//19399 20670//19410 +f 20669//19409 20668//19408 20670//19410 20671//19411 +f 20672//19412 20673//19413 20667//19407 20666//19406 +f 20609//19349 20672//19412 20666//19406 20610//19350 +f 20672//19412 20609//19349 20604//19344 20674//19414 +f 20673//19413 20672//19412 20674//19414 20675//19415 +f 20676//19416 20677//19417 20671//19411 20670//19410 +f 20665//19405 20676//19416 20670//19410 20659//19399 +f 20676//19416 20665//19405 20667//19407 20678//19418 +f 20677//19417 20676//19416 20678//19418 20679//19419 +f 20680//19420 20681//19421 20682//19422 20683//19423 +f 20661//19401 20680//19420 20683//19423 20655//19395 +f 20680//19420 20661//19401 20663//19403 20684//19424 +f 20681//19421 20680//19420 20684//19424 20685//19425 +f 20686//19426 20687//19427 20685//19425 20684//19424 +f 20669//19409 20686//19426 20684//19424 20663//19403 +f 20686//19426 20669//19409 20671//19411 20688//19428 +f 20687//19427 20686//19426 20688//19428 20689//19429 +f 20690//19430 20653//19393 20655//19395 20683//19423 +f 20691//19431 20690//19430 20683//19423 20682//19422 +f 20690//19430 20691//19431 20692//19432 20693//19433 +f 20653//19393 20690//19430 20693//19433 20651//19391 +f 20694//19434 20695//19435 20679//19419 20678//19418 +f 20673//19413 20694//19434 20678//19418 20667//19407 +f 20694//19434 20673//19413 20675//19415 20696//19436 +f 20695//19435 20694//19434 20696//19436 20697//19437 +f 20698//19438 20649//19389 20651//19391 20693//19433 +f 20699//19439 20698//19438 20693//19433 20692//19432 +f 20698//19438 20699//19439 20700//19440 20701//19441 +f 20649//19389 20698//19438 20701//19441 20647//19387 +f 20702//19442 20703//19443 20675//19415 20674//19414 +f 20603//19343 20702//19442 20674//19414 20604//19344 +f 20702//19442 20603//19343 20607//19347 20704//19444 +f 20703//19443 20702//19442 20704//19444 20705//19445 +f 20706//19446 20707//19447 20607//19347 20606//19346 +f 20042//18782 20706//19446 20606//19346 20043//18783 +f 20706//19446 20042//18782 19921//18661 19920//18660 +f 20707//19447 20706//19446 19920//18660 19911//18651 +f 20708//19448 20709//19449 20705//19445 20704//19444 +f 20707//19447 20708//19448 20704//19444 20607//19347 +f 20708//19448 20707//19447 19911//18651 19910//18650 +f 20709//19449 20708//19448 19910//18650 19914//18654 +f 20710//19450 20711//19451 20697//19437 20696//19436 +f 20703//19443 20710//19450 20696//19436 20675//19415 +f 20710//19450 20703//19443 20705//19445 20712//19452 +f 20711//19451 20710//19450 20712//19452 20713//19453 +f 20714//19454 20715//19455 19914//18654 19913//18653 +f 19892//18632 20714//19454 19913//18653 19893//18633 +f 20714//19454 19892//18632 19828//18568 20716//19456 +f 20715//19455 20714//19454 20716//19456 20717//19457 +f 20718//19458 20719//19459 20713//19453 20712//19452 +f 20709//19449 20718//19458 20712//19452 20705//19445 +f 20718//19458 20709//19449 19914//18654 20715//19455 +f 20719//19459 20718//19458 20715//19455 20717//19457 +f 20720//19460 20721//19461 20717//19457 20716//19456 +f 19827//18567 20720//19460 20716//19456 19828//18568 +f 20720//19460 19827//18567 19806//18546 19805//18545 +f 20721//19461 20720//19460 19805//18545 19804//18544 +f 20722//19462 20719//19459 20717//19457 20721//19461 +f 19808//18548 20722//19462 20721//19461 19804//18544 +f 20722//19462 19808//18548 19810//18550 20723//19463 +f 20719//19459 20722//19462 20723//19463 20713//19453 +f 20724//19464 20711//19451 20713//19453 20723//19463 +f 20725//19465 20724//19464 20723//19463 19810//18550 +f 20724//19464 20725//19465 20726//19466 20727//19467 +f 20711//19451 20724//19464 20727//19467 20697//19437 +f 20728//19468 20725//19465 19810//18550 19809//18549 +f 19798//18538 20728//19468 19809//18549 19788//18528 +f 20728//19468 19798//18538 19800//18540 20729//19469 +f 20725//19465 20728//19468 20729//19469 20726//19466 +f 20730//19470 20695//19435 20697//19437 20727//19467 +f 20731//19471 20730//19470 20727//19467 20726//19466 +f 20730//19470 20731//19471 20732//19472 20733//19473 +f 20695//19435 20730//19470 20733//19473 20679//19419 +f 20734//19474 20731//19471 20726//19466 20729//19469 +f 20735//19475 20734//19474 20729//19469 19800//18540 +f 20734//19474 20735//19475 20736//19476 20737//19477 +f 20731//19471 20734//19474 20737//19477 20732//19472 +f 20738//19478 20735//19475 19800//18540 19799//18539 +f 20739//19479 20738//19478 19799//18539 19778//18518 +f 20738//19478 20739//19479 20740//19480 20741//19481 +f 20735//19475 20738//19478 20741//19481 20736//19476 +f 20742//19482 20677//19417 20679//19419 20733//19473 +f 20743//19483 20742//19482 20733//19473 20732//19472 +f 20742//19482 20743//19483 20689//19429 20688//19428 +f 20677//19417 20742//19482 20688//19428 20671//19411 +f 20744//19484 20743//19483 20732//19472 20737//19477 +f 20745//19485 20744//19484 20737//19477 20736//19476 +f 20744//19484 20745//19485 20746//19486 20747//19487 +f 20743//19483 20744//19484 20747//19487 20689//19429 +f 20748//19488 20749//19489 20750//19490 20751//19491 +f 20687//19427 20748//19488 20751//19491 20685//19425 +f 20748//19488 20687//19427 20689//19429 20747//19487 +f 20749//19489 20748//19488 20747//19487 20746//19486 +f 20752//19492 20753//19493 20754//19494 20755//19495 +f 20745//19485 20752//19492 20755//19495 20746//19486 +f 20752//19492 20745//19485 20736//19476 20741//19481 +f 20753//19493 20752//19492 20741//19481 20740//19480 +f 20756//19496 20757//19497 20758//19498 20759//19499 +f 20749//19489 20756//19496 20759//19499 20750//19490 +f 20756//19496 20749//19489 20746//19486 20755//19495 +f 20757//19497 20756//19496 20755//19495 20754//19494 +f 20760//19500 20681//19421 20685//19425 20751//19491 +f 20761//19501 20760//19500 20751//19491 20750//19490 +f 20760//19500 20761//19501 20762//19502 20763//19503 +f 20681//19421 20760//19500 20763//19503 20682//19422 +f 20764//19504 20761//19501 20750//19490 20759//19499 +f 20765//19505 20764//19504 20759//19499 20758//19498 +f 20764//19504 20765//19505 20766//19506 20767//19507 +f 20761//19501 20764//19504 20767//19507 20762//19502 +f 20768//19508 20691//19431 20682//19422 20763//19503 +f 20769//19509 20768//19508 20763//19503 20762//19502 +f 20768//19508 20769//19509 20770//19510 20771//19511 +f 20691//19431 20768//19508 20771//19511 20692//19432 +f 20772//19512 20769//19509 20762//19502 20767//19507 +f 20773//19513 20772//19512 20767//19507 20766//19506 +f 20772//19512 20773//19513 20774//19514 20775//19515 +f 20769//19509 20772//19512 20775//19515 20770//19510 +f 20776//19516 20699//19439 20692//19432 20771//19511 +f 20777//19517 20776//19516 20771//19511 20770//19510 +f 20776//19516 20777//19517 20778//19518 20779//19519 +f 20699//19439 20776//19516 20779//19519 20700//19440 +f 20780//19520 20777//19517 20770//19510 20775//19515 +f 20781//19521 20780//19520 20775//19515 20774//19514 +f 20780//19520 20781//19521 20782//19522 20783//19523 +f 20777//19517 20780//19520 20783//19523 20778//19518 +f 20784//19524 20785//19525 20786//19526 20787//19527 +f 20773//19513 20784//19524 20787//19527 20774//19514 +f 20784//19524 20773//19513 20766//19506 20788//19528 +f 20785//19525 20784//19524 20788//19528 20789//19529 +f 20790//19530 20791//19531 20792//19532 20793//19533 +f 20781//19521 20790//19530 20793//19533 20782//19522 +f 20790//19530 20781//19521 20774//19514 20787//19527 +f 20791//19531 20790//19530 20787//19527 20786//19526 +f 20794//19534 20795//19535 20778//19518 20783//19523 +f 20796//19536 20794//19534 20783//19523 20782//19522 +f 20794//19534 20796//19536 20797//19537 20798//19538 +f 20795//19535 20794//19534 20798//19538 20799//19539 +f 20800//19540 20801//19541 20789//19529 20788//19528 +f 20765//19505 20800//19540 20788//19528 20766//19506 +f 20800//19540 20765//19505 20758//19498 20802//19542 +f 20801//19541 20800//19540 20802//19542 20803//19543 +f 20804//19544 20805//19545 20700//19440 20779//19519 +f 20795//19535 20804//19544 20779//19519 20778//19518 +f 20804//19544 20795//19535 20799//19539 20806//19546 +f 20805//19545 20804//19544 20806//19546 20807//19547 +f 20808//19548 20809//19549 20803//19543 20802//19542 +f 20757//19497 20808//19548 20802//19542 20758//19498 +f 20808//19548 20757//19497 20754//19494 20810//19550 +f 20809//19549 20808//19548 20810//19550 20811//19551 +f 20812//19552 20645//19385 20647//19387 20701//19441 +f 20805//19545 20812//19552 20701//19441 20700//19440 +f 20812//19552 20805//19545 20807//19547 20813//19553 +f 20645//19385 20812//19552 20813//19553 20451//19191 +f 20814//19554 20455//19195 20441//19181 20452//19192 +f 20813//19553 20814//19554 20452//19192 20451//19191 +f 20814//19554 20813//19553 20807//19547 20815//19555 +f 20455//19195 20814//19554 20815//19555 20456//19196 +f 20816//19556 20817//19557 20456//19196 20815//19555 +f 20806//19546 20816//19556 20815//19555 20807//19547 +f 20816//19556 20806//19546 20799//19539 20818//19558 +f 20817//19557 20816//19556 20818//19558 20819//19559 +f 20820//19560 20821//19561 20819//19559 20818//19558 +f 20798//19538 20820//19560 20818//19558 20799//19539 +f 20820//19560 20798//19538 20797//19537 20822//19562 +f 20821//19561 20820//19560 20822//19562 19364//18104 +f 20823//19563 20824//19564 20458//19198 20457//19197 +f 20817//19557 20823//19563 20457//19197 20456//19196 +f 20823//19563 20817//19557 20819//19559 20825//19565 +f 20824//19564 20823//19563 20825//19565 19354//18094 +f 20826//19566 19352//18092 19354//18094 20825//19565 +f 20821//19561 20826//19566 20825//19565 20819//19559 +f 20826//19566 20821//19561 19364//18104 19363//18103 +f 19352//18092 20826//19566 19363//18103 19350//18090 +f 20827//19567 20828//19568 20466//19206 20465//19205 +f 20824//19564 20827//19567 20465//19205 20458//19198 +f 20827//19567 20824//19564 19354//18094 19353//18093 +f 20828//19568 20827//19567 19353//18093 19342//18082 +f 20829//19569 19336//18076 19338//18078 20830//19570 +f 20828//19568 20829//19569 20830//19570 20466//19206 +f 20829//19569 20828//19568 19342//18082 19341//18081 +f 19336//18076 20829//19569 19341//18081 19324//18064 +f 20831//19571 20464//19204 20466//19206 20830//19570 +f 20832//19572 20831//19571 20830//19570 19338//18078 +f 20831//19571 20832//19572 20430//19170 20429//19169 +f 20464//19204 20831//19571 20429//19169 20428//19168 +f 20833//19573 19330//18070 19334//18074 20834//19574 +f 20832//19572 20833//19573 20834//19574 20430//19170 +f 20833//19573 20832//19572 19338//18078 19337//18077 +f 19330//18070 20833//19573 19337//18077 19320//18060 +f 20835//19575 20426//19166 20430//19170 20834//19574 +f 20836//19576 20835//19575 20834//19574 19334//18074 +f 20835//19575 20836//19576 20416//19156 20415//19155 +f 20426//19166 20835//19575 20415//19155 20414//19154 +f 20837//19577 20838//19578 20839//19579 20840//19580 +f 20412//19152 20837//19577 20840//19580 20410//19150 +f 20837//19577 20412//19152 20416//19156 20841//19581 +f 20838//19578 20837//19577 20841//19581 20842//19582 +f 20843//19583 20408//19148 20410//19150 20840//19580 +f 20844//19584 20843//19583 20840//19580 20839//19579 +f 20843//19583 20844//19584 20402//19142 20401//19141 +f 20408//19148 20843//19583 20401//19141 20378//19118 +f 20845//19585 19362//18102 19364//18104 20822//19562 +f 20846//19586 20845//19585 20822//19562 20797//19537 +f 20845//19585 20846//19586 20847//19587 20848//19588 +f 19362//18102 20845//19585 20848//19588 19360//18100 +f 20849//19589 20850//19590 20847//19587 20846//19586 +f 20796//19536 20849//19589 20846//19586 20797//19537 +f 20849//19589 20796//19536 20782//19522 20793//19533 +f 20850//19590 20849//19589 20793//19533 20792//19532 +f 20851//19591 19356//18096 19360//18100 20848//19588 +f 20852//19592 20851//19591 20848//19588 20847//19587 +f 20851//19591 20852//19592 19376//18116 19375//18115 +f 19356//18096 20851//19591 19375//18115 19357//18097 +f 20853//19593 20854//19594 19376//18116 20852//19592 +f 20850//19590 20853//19593 20852//19592 20847//19587 +f 20853//19593 20850//19590 20792//19532 20855//19595 +f 20854//19594 20853//19593 20855//19595 20856//19596 +f 20857//19597 19400//18140 19373//18113 19372//18112 +f 20854//19594 20857//19597 19372//18112 19376//18116 +f 20857//19597 20854//19594 20856//19596 20858//19598 +f 19400//18140 20857//19597 20858//19598 19401//18141 +f 20859//19599 20860//19600 20856//19596 20855//19595 +f 20791//19531 20859//19599 20855//19595 20792//19532 +f 20859//19599 20791//19531 20786//19526 20861//19601 +f 20860//19600 20859//19599 20861//19601 20862//19602 +f 20863//19603 20864//19604 19401//18141 20858//19598 +f 20860//19600 20863//19603 20858//19598 20856//19596 +f 20863//19603 20860//19600 20862//19602 20865//19605 +f 20864//19604 20863//19603 20865//19605 20866//19606 +f 20867//19607 20868//19608 20862//19602 20861//19601 +f 20785//19525 20867//19607 20861//19601 20786//19526 +f 20867//19607 20785//19525 20789//19529 20869//19609 +f 20868//19608 20867//19607 20869//19609 20870//19610 +f 20871//19611 20872//19612 19390//18130 19402//18142 +f 20864//19604 20871//19611 19402//18142 19401//18141 +f 20871//19611 20864//19604 20866//19606 20873//19613 +f 20872//19612 20871//19611 20873//19613 20874//19614 +f 20875//19615 20876//19616 20866//19606 20865//19605 +f 20868//19608 20875//19615 20865//19605 20862//19602 +f 20875//19615 20868//19608 20870//19610 20877//19617 +f 20876//19616 20875//19615 20877//19617 20878//19618 +f 20879//19619 20880//19620 20870//19610 20869//19609 +f 20801//19541 20879//19619 20869//19609 20789//19529 +f 20879//19619 20801//19541 20803//19543 20881//19621 +f 20880//19620 20879//19619 20881//19621 20882//19622 +f 20883//19623 20884//19624 19392//18132 19391//18131 +f 20872//19612 20883//19623 19391//18131 19390//18130 +f 20883//19623 20872//19612 20874//19614 20885//19625 +f 20884//19624 20883//19623 20885//19625 20886//19626 +f 20887//19627 20888//19628 20874//19614 20873//19613 +f 20876//19616 20887//19627 20873//19613 20866//19606 +f 20887//19627 20876//19616 20878//19618 20889//19629 +f 20888//19628 20887//19627 20889//19629 20890//19630 +f 20891//19631 20892//19632 20878//19618 20877//19617 +f 20880//19620 20891//19631 20877//19617 20870//19610 +f 20891//19631 20880//19620 20882//19622 20893//19633 +f 20892//19632 20891//19631 20893//19633 20894//19634 +f 20895//19635 19416//18156 19395//18135 19398//18138 +f 20884//19624 20895//19635 19398//18138 19392//18132 +f 20895//19635 20884//19624 20886//19626 20896//19636 +f 19416//18156 20895//19635 20896//19636 19417//18157 +f 20897//19637 20898//19638 20886//19626 20885//19625 +f 20888//19628 20897//19637 20885//19625 20874//19614 +f 20897//19637 20888//19628 20890//19630 20899//19639 +f 20898//19638 20897//19637 20899//19639 19448//18188 +f 20900//19640 19432//18172 19417//18157 20896//19636 +f 20898//19638 20900//19640 20896//19636 20886//19626 +f 20900//19640 20898//19638 19448//18188 19447//18187 +f 19432//18172 20900//19640 19447//18187 19433//18173 +f 20901//19641 20902//19642 19568//18308 19567//18307 +f 19444//18184 20901//19641 19567//18307 19445//18185 +f 20901//19641 19444//18184 19448//18188 20899//19639 +f 20902//19642 20901//19641 20899//19639 20890//19630 +f 20903//19643 20902//19642 20890//19630 20889//19629 +f 20892//19632 20903//19643 20889//19629 20878//19618 +f 20903//19643 20892//19632 20894//19634 20904//19644 +f 20902//19642 20903//19643 20904//19644 19568//18308 +f 20905//19645 20906//19646 19578//18318 19577//18317 +f 19566//18306 20905//19645 19577//18317 19564//18304 +f 20905//19645 19566//18306 19568//18308 20904//19644 +f 20906//19646 20905//19645 20904//19644 20894//19634 +f 20907//19647 20908//19648 19774//18514 19773//18513 +f 19576//18316 20907//19647 19773//18513 19574//18314 +f 20907//19647 19576//18316 19578//18318 20909//19649 +f 20908//19648 20907//19647 20909//19649 20910//19650 +f 20911//19651 20912//19652 20910//19650 20909//19649 +f 20906//19646 20911//19651 20909//19649 19578//18318 +f 20911//19651 20906//19646 20894//19634 20893//19633 +f 20912//19652 20911//19651 20893//19633 20882//19622 +f 20913//19653 20914//19654 19782//18522 19781//18521 +f 20908//19648 20913//19653 19781//18521 19774//18514 +f 20913//19653 20908//19648 20910//19650 20915//19655 +f 20914//19654 20913//19653 20915//19655 20811//19551 +f 20916//19656 20739//19479 19778//18518 19777//18517 +f 19780//18520 20916//19656 19777//18517 19770//18510 +f 20916//19656 19780//18520 19782//18522 20917//19657 +f 20739//19479 20916//19656 20917//19657 20740//19480 +f 20918//19658 20809//19549 20811//19551 20915//19655 +f 20912//19652 20918//19658 20915//19655 20910//19650 +f 20918//19658 20912//19652 20882//19622 20881//19621 +f 20809//19549 20918//19658 20881//19621 20803//19543 +f 20919//19659 20753//19493 20740//19480 20917//19657 +f 20914//19654 20919//19659 20917//19657 19782//18522 +f 20919//19659 20914//19654 20811//19551 20810//19550 +f 20753//19493 20919//19659 20810//19550 20754//19494 +f 20920//19660 20921//19661 20293//19033 20292//19032 +f 20299//19039 20920//19660 20292//19032 20289//19029 +f 20920//19660 20299//19039 20303//19043 20321//19061 +f 20921//19661 20920//19660 20321//19061 20320//19060 +f 20922//19662 20923//19663 20297//19037 20296//19036 +f 20921//19661 20922//19662 20296//19036 20293//19033 +f 20922//19662 20921//19661 20320//19060 20924//19664 +f 20923//19663 20922//19662 20924//19664 20925//19665 +f 20926//19666 20927//19667 20925//19665 20924//19664 +f 20319//19059 20926//19666 20924//19664 20320//19060 +f 20926//19666 20319//19059 20323//19063 20928//19668 +f 20927//19667 20926//19666 20928//19668 20929//19669 +f 20930//19670 20931//19671 20929//19669 20928//19668 +f 20325//19065 20930//19670 20928//19668 20323//19063 +f 20930//19670 20325//19065 20329//19069 20406//19146 +f 20931//19671 20930//19670 20406//19146 20405//19145 +f 20932//19672 20933//19673 20139//18879 20144//18884 +f 20934//19674 20932//19672 20144//18884 20143//18883 +f 20932//19672 20934//19674 19977//18717 19976//18716 +f 20933//19673 20932//19672 19976//18716 19973//18713 +f 20935//19675 19983//18723 19987//18727 20140//18880 +f 20933//19673 20935//19675 20140//18880 20139//18879 +f 20935//19675 20933//19673 19973//18713 19971//18711 +f 19983//18723 20935//19675 19971//18711 19970//18710 +f 20936//19676 20937//19677 19190//17930 19189//17929 +f 19170//17910 20936//19676 19189//17929 19171//17911 +f 20936//19676 19170//17910 19108//17848 20938//19678 +f 20937//19677 20936//19676 20938//19678 20939//19679 +f 20940//19680 20941//19681 20942//19682 20943//19683 +f 20944//19684 20940//19680 20943//19683 19114//17854 +f 20940//19680 20944//19684 20945//19685 20946//19686 +f 20941//19681 20940//19680 20946//19686 20947//19687 +f 20948//19688 20949//19689 20950//19690 20951//19691 +f 20944//19684 20948//19688 20951//19691 20945//19685 +f 20948//19688 20944//19684 19114//17854 19113//17853 +f 20949//19689 20948//19688 19113//17853 19112//17852 +f 20952//19692 20953//19693 20954//19694 20955//19695 +f 20949//19689 20952//19692 20955//19695 20950//19690 +f 20952//19692 20949//19689 19112//17852 19154//17894 +f 20953//19693 20952//19692 19154//17894 19153//17893 +f 20956//19696 20957//19697 20958//19698 20959//19699 +f 20953//19693 20956//19696 20959//19699 20954//19694 +f 20956//19696 20953//19693 19153//17893 19160//17900 +f 20957//19697 20956//19696 19160//17900 19159//17899 +f 20960//19700 20961//19701 20962//19702 20963//19703 +f 20957//19697 20960//19700 20963//19703 20958//19698 +f 20960//19700 20957//19697 19159//17899 19176//17916 +f 20961//19701 20960//19700 19176//17916 19175//17915 +f 20964//19704 20965//19705 20966//19706 20967//19707 +f 20961//19701 20964//19704 20967//19707 20962//19702 +f 20964//19704 20961//19701 19175//17915 19230//17970 +f 20965//19705 20964//19704 19230//17970 19229//17969 +f 20968//19708 20969//19709 20966//19706 20965//19705 +f 19242//17982 20968//19708 20965//19705 19229//17969 +f 20968//19708 19242//17982 19246//17986 20970//19710 +f 20969//19709 20968//19708 20970//19710 20971//19711 +f 20972//19712 20973//19713 20971//19711 20970//19710 +f 19404//18144 20972//19712 20970//19710 19246//17986 +f 20972//19712 19404//18144 19408//18148 20974//19714 +f 20973//19713 20972//19712 20974//19714 20975//19715 +f 20976//19716 20977//19717 20975//19715 20974//19714 +f 19410//18150 20976//19716 20974//19714 19408//18148 +f 20976//19716 19410//18150 19414//18154 20978//19718 +f 20977//19717 20976//19716 20978//19718 20979//19719 +f 20980//19720 20981//19721 20979//19719 20978//19718 +f 19420//18160 20980//19720 20978//19718 19414//18154 +f 20980//19720 19420//18160 19424//18164 20982//19722 +f 20981//19721 20980//19720 20982//19722 20983//19723 +f 20984//19724 20985//19725 20983//19723 20982//19722 +f 19426//18166 20984//19724 20982//19722 19424//18164 +f 20984//19724 19426//18166 19430//18170 20986//19726 +f 20985//19725 20984//19724 20986//19726 20987//19727 +f 20988//19728 20989//19729 20987//19727 20986//19726 +f 19454//18194 20988//19728 20986//19726 19430//18170 +f 20988//19728 19454//18194 19458//18198 20990//19730 +f 20989//19729 20988//19728 20990//19730 20991//19731 +f 20992//19732 20993//19733 20991//19731 20990//19730 +f 19460//18200 20992//19732 20990//19730 19458//18198 +f 20992//19732 19460//18200 19464//18204 20994//19734 +f 20993//19733 20992//19732 20994//19734 20995//19735 +f 20996//19736 20997//19737 20995//19735 20994//19734 +f 19470//18210 20996//19736 20994//19734 19464//18204 +f 20996//19736 19470//18210 19474//18214 20998//19738 +f 20997//19737 20996//19736 20998//19738 20999//19739 +f 21000//19740 21001//19741 20999//19739 20998//19738 +f 19480//18220 21000//19740 20998//19738 19474//18214 +f 21000//19740 19480//18220 19484//18224 21002//19742 +f 21001//19741 21000//19740 21002//19742 21003//19743 +f 21004//19744 21005//19745 21006//19746 21007//19747 +f 21002//19742 21004//19744 21007//19747 21003//19743 +f 21004//19744 21002//19742 19484//18224 19492//18232 +f 21005//19745 21004//19744 19492//18232 19491//18231 +f 21008//19748 21009//19749 21010//19750 21011//19751 +f 21005//19745 21008//19748 21011//19751 21006//19746 +f 21008//19748 21005//19745 19491//18231 19506//18246 +f 21009//19749 21008//19748 19506//18246 19505//18245 +f 21012//19752 21013//19753 21014//19754 21015//19755 +f 21009//19749 21012//19752 21015//19755 21010//19750 +f 21012//19752 21009//19749 19505//18245 19510//18250 +f 21013//19753 21012//19752 19510//18250 19129//17869 +f 21016//19756 21017//19757 21018//19758 21019//19759 +f 21013//19753 21016//19756 21019//19759 21014//19754 +f 21016//19756 21013//19753 19129//17869 19127//17867 +f 21017//19757 21016//19756 19127//17867 19126//17866 +f 21020//19760 21021//19761 21022//19762 21023//19763 +f 21017//19757 21020//19760 21023//19763 21018//19758 +f 21020//19760 21017//19757 19126//17866 21024//19764 +f 21021//19761 21020//19760 21024//19764 21025//19765 +f 21026//19766 21027//19767 21028//19768 21029//19769 +f 21021//19761 21026//19766 21029//19769 21022//19762 +f 21026//19766 21021//19761 21025//19765 21030//19770 +f 21027//19767 21026//19766 21030//19770 21031//19771 +f 21032//19772 21033//19773 19631//18371 19638//18378 +f 21034//19774 21032//19772 19638//18378 19637//18377 +f 21032//19772 21034//19774 21031//19771 21030//19770 +f 21033//19773 21032//19772 21030//19770 21025//19765 +f 21035//19775 19125//17865 19132//17872 19632//18372 +f 21033//19773 21035//19775 19632//18372 19631//18371 +f 21035//19775 21033//19773 21025//19765 21024//19764 +f 19125//17865 21035//19775 21024//19764 19126//17866 +f 21036//19776 20836//19576 19334//18074 19333//18073 +f 21037//19777 21036//19776 19333//18073 19332//18072 +f 21036//19776 21037//19777 20842//19582 20841//19581 +f 20836//19576 21036//19776 20841//19581 20416//19156 +f 21038//19778 19107//17847 19114//17854 20943//19683 +f 21039//19779 21038//19778 20943//19683 20942//19682 +f 21038//19778 21039//19779 20939//19679 20938//19678 +f 19107//17847 21038//19778 20938//19678 19108//17848 +f 21040//19780 19514//18254 19508//18248 19507//18247 +f 19500//18240 21040//19780 19507//18247 19494//18234 +f 21040//19780 19500//18240 19502//18242 19530//18270 +f 19514//18254 21040//19780 19530//18270 19515//18255 +f 21041//19781 21042//19782 9473//8217 9471//8215 +f 21043//19783 21041//19781 9471//8215 9472//8216 +f 21041//19781 21043//19783 7507//6252 7506//6251 +f 21042//19782 21041//19781 7506//6251 7513//6258 +f 21044//19784 21045//19785 10468//9212 10467//9211 +f 21042//19782 21044//19784 10467//9211 9473//8217 +f 21044//19784 21042//19782 7513//6258 8685//7429 +f 21045//19785 21044//19784 8685//7429 8687//7431 +f 21046//19786 21047//19787 10302//9046 11259//10003 +f 21045//19785 21046//19786 11259//10003 10468//9212 +f 21046//19786 21045//19785 8687//7431 9313//8057 +f 21047//19787 21046//19786 9313//8057 9315//8059 +f 21048//19788 21049//19789 9463//8207 10300//9044 +f 21047//19787 21048//19788 10300//9044 10302//9046 +f 21048//19788 21047//19787 9315//8059 9317//8061 +f 21049//19789 21048//19788 9317//8061 9319//8063 +f 21050//19790 21051//19791 9464//8208 9462//8206 +f 21049//19789 21050//19790 9462//8206 9463//8207 +f 21050//19790 21049//19789 9319//8063 9321//8065 +f 21051//19791 21050//19790 9321//8065 8795//7539 +f 21052//19792 21053//19793 10271//9015 10275//9019 +f 21051//19791 21052//19792 10275//9019 9464//8208 +f 21052//19792 21051//19791 8795//7539 8794//7538 +f 21053//19793 21052//19792 8794//7538 8789//7533 +f 21054//19794 21055//19795 10259//9003 10267//9011 +f 21053//19793 21054//19794 10267//9011 10271//9015 +f 21054//19794 21053//19793 8789//7533 8788//7532 +f 21055//19795 21054//19794 8788//7532 8792//7536 +f 21056//19796 21057//19797 10255//8999 10257//9001 +f 21055//19795 21056//19796 10257//9001 10259//9003 +f 21056//19796 21055//19795 8792//7536 9234//7978 +f 21057//19797 21056//19796 9234//7978 9229//7973 +f 21058//19798 21059//19799 10189//8933 10254//8998 +f 21057//19797 21058//19798 10254//8998 10255//8999 +f 21058//19798 21057//19797 9229//7973 9228//7972 +f 21059//19799 21058//19798 9228//7972 9232//7976 +f 21060//19800 21061//19801 10183//8927 10185//8929 +f 21059//19799 21060//19800 10185//8929 10189//8933 +f 21060//19800 21059//19799 9232//7976 9427//8171 +f 21061//19801 21060//19800 9427//8171 7722//6467 +f 21062//19802 21063//19803 10173//8917 10181//8925 +f 21061//19801 21062//19802 10181//8925 10183//8927 +f 21062//19802 21061//19801 7722//6467 7721//6466 +f 21063//19803 21062//19802 7721//6466 7708//6453 +f 21064//19804 21065//19805 10170//8914 10169//8913 +f 21063//19803 21064//19804 10169//8913 10173//8917 +f 21064//19804 21063//19803 7708//6453 7707//6452 +f 21065//19805 21064//19804 7707//6452 7702//6447 +f 21066//19806 21067//19807 10021//8765 10175//8919 +f 21065//19805 21066//19806 10175//8919 10170//8914 +f 21066//19806 21065//19805 7702//6447 7701//6446 +f 21067//19807 21066//19806 7701//6446 7697//6442 +f 21068//19808 21069//19809 10015//8759 10017//8761 +f 21067//19807 21068//19808 10017//8761 10021//8765 +f 21068//19808 21067//19807 7697//6442 7696//6441 +f 21069//19809 21068//19808 7696//6441 7654//6399 +f 21070//19810 21071//19811 10005//8749 10011//8755 +f 21069//19809 21070//19810 10011//8755 10015//8759 +f 21070//19810 21069//19809 7654//6399 7653//6398 +f 21071//19811 21070//19810 7653//6398 7647//6392 +f 21072//19812 21073//19813 9997//8741 10001//8745 +f 21071//19811 21072//19812 10001//8745 10005//8749 +f 21072//19812 21071//19811 7647//6392 7646//6391 +f 21073//19813 21072//19812 7646//6391 7590//6335 +f 21074//19814 21075//19815 9985//8729 9993//8737 +f 21073//19813 21074//19814 9993//8737 9997//8741 +f 21074//19814 21073//19813 7590//6335 7589//6334 +f 21075//19815 21074//19814 7589//6334 7584//6329 +f 21076//19816 21077//19817 9977//8721 9983//8727 +f 21075//19815 21076//19816 9983//8727 9985//8729 +f 21076//19816 21075//19815 7584//6329 7583//6328 +f 21077//19817 21076//19816 7583//6328 7577//6322 +f 21078//19818 21079//19819 9965//8709 9975//8719 +f 21077//19817 21078//19818 9975//8719 9977//8721 +f 21078//19818 21077//19817 7577//6322 7576//6321 +f 21079//19819 21078//19818 7576//6321 7580//6325 +f 21080//19820 21081//19821 9962//8706 9961//8705 +f 21079//19819 21080//19820 9961//8705 9965//8709 +f 21080//19820 21079//19819 7580//6325 9327//8071 +f 21081//19821 21080//19820 9327//8071 9329//8073 +f 21082//19822 21083//19823 11356//10100 11359//10103 +f 21081//19821 21082//19822 11359//10103 9962//8706 +f 21082//19822 21081//19821 9329//8073 9429//8173 +f 21083//19823 21082//19822 9429//8173 9332//8076 +f 21084//19824 21085//19825 11353//10097 11352//10096 +f 21083//19823 21084//19824 11352//10096 11356//10100 +f 21084//19824 21083//19823 9332//8076 9331//8075 +f 21085//19825 21084//19824 9331//8075 9337//8081 +f 21086//19826 21087//19827 11408//10152 11406//10150 +f 21088//19828 21086//19826 11406//10150 11407//10151 +f 21086//19826 21088//19828 9442//8186 9441//8185 +f 21087//19827 21086//19826 9441//8185 9448//8192 +f 21089//19829 21090//19830 12403//11146 12402//11145 +f 21087//19827 21089//19829 12402//11145 11408//10152 +f 21089//19829 21087//19827 9448//8192 10620//9364 +f 21090//19830 21089//19829 10620//9364 10622//9366 +f 21091//19831 21092//19832 12237//10981 13194//11937 +f 21090//19830 21091//19831 13194//11937 12403//11146 +f 21091//19831 21090//19830 10622//9366 11248//9992 +f 21092//19832 21091//19831 11248//9992 11250//9994 +f 21093//19833 21094//19834 11398//10142 12235//10979 +f 21092//19832 21093//19833 12235//10979 12237//10981 +f 21093//19833 21092//19832 11250//9994 11252//9996 +f 21094//19834 21093//19833 11252//9996 11254//9998 +f 21095//19835 21096//19836 11399//10143 11397//10141 +f 21094//19834 21095//19835 11397//10141 11398//10142 +f 21095//19835 21094//19834 11254//9998 11256//10000 +f 21096//19836 21095//19835 11256//10000 10730//9474 +f 21097//19837 21098//19838 12206//10950 12210//10954 +f 21096//19836 21097//19837 12210//10954 11399//10143 +f 21097//19837 21096//19836 10730//9474 10729//9473 +f 21098//19838 21097//19837 10729//9473 10724//9468 +f 21099//19839 21100//19840 12194//10938 12202//10946 +f 21098//19838 21099//19839 12202//10946 12206//10950 +f 21099//19839 21098//19838 10724//9468 10723//9467 +f 21100//19840 21099//19839 10723//9467 10727//9471 +f 21101//19841 21102//19842 12190//10934 12192//10936 +f 21100//19840 21101//19841 12192//10936 12194//10938 +f 21101//19841 21100//19840 10727//9471 11169//9913 +f 21102//19842 21101//19841 11169//9913 11164//9908 +f 21103//19843 21104//19844 12124//10868 12189//10933 +f 21102//19842 21103//19843 12189//10933 12190//10934 +f 21103//19843 21102//19842 11164//9908 11163//9907 +f 21104//19844 21103//19843 11163//9907 11167//9911 +f 21105//19845 21106//19846 12118//10862 12120//10864 +f 21104//19844 21105//19845 12120//10864 12124//10868 +f 21105//19845 21104//19844 11167//9911 11362//10106 +f 21106//19846 21105//19845 11362//10106 9657//8401 +f 21107//19847 21108//19848 12108//10852 12116//10860 +f 21106//19846 21107//19847 12116//10860 12118//10862 +f 21107//19847 21106//19846 9657//8401 9656//8400 +f 21108//19848 21107//19847 9656//8400 9643//8387 +f 21109//19849 21110//19850 12105//10849 12104//10848 +f 21108//19848 21109//19849 12104//10848 12108//10852 +f 21109//19849 21108//19848 9643//8387 9642//8386 +f 21110//19850 21109//19849 9642//8386 9637//8381 +f 21111//19851 21112//19852 11956//10700 12110//10854 +f 21110//19850 21111//19851 12110//10854 12105//10849 +f 21111//19851 21110//19850 9637//8381 9636//8380 +f 21112//19852 21111//19851 9636//8380 9632//8376 +f 21113//19853 21114//19854 11950//10694 11952//10696 +f 21112//19852 21113//19853 11952//10696 11956//10700 +f 21113//19853 21112//19852 9632//8376 9631//8375 +f 21114//19854 21113//19853 9631//8375 9589//8333 +f 21115//19855 21116//19856 11940//10684 11946//10690 +f 21114//19854 21115//19855 11946//10690 11950//10694 +f 21115//19855 21114//19854 9589//8333 9588//8332 +f 21116//19856 21115//19855 9588//8332 9582//8326 +f 21117//19857 21118//19858 11932//10676 11936//10680 +f 21116//19856 21117//19857 11936//10680 11940//10684 +f 21117//19857 21116//19856 9582//8326 9581//8325 +f 21118//19858 21117//19857 9581//8325 9525//8269 +f 21119//19859 21120//19860 11920//10664 11928//10672 +f 21118//19858 21119//19859 11928//10672 11932//10676 +f 21119//19859 21118//19858 9525//8269 9524//8268 +f 21120//19860 21119//19859 9524//8268 9519//8263 +f 21121//19861 21122//19862 11912//10656 11918//10662 +f 21120//19860 21121//19861 11918//10662 11920//10664 +f 21121//19861 21120//19860 9519//8263 9518//8262 +f 21122//19862 21121//19861 9518//8262 9512//8256 +f 21123//19863 21124//19864 11900//10644 11910//10654 +f 21122//19862 21123//19863 11910//10654 11912//10656 +f 21123//19863 21122//19862 9512//8256 9511//8255 +f 21124//19864 21123//19863 9511//8255 9515//8259 +f 21125//19865 21126//19866 11897//10641 11896//10640 +f 21124//19864 21125//19865 11896//10640 11900//10644 +f 21125//19865 21124//19864 9515//8259 11262//10006 +f 21126//19866 21125//19865 11262//10006 11264//10008 +f 21127//19867 21128//19868 13291//12034 13294//12037 +f 21126//19866 21127//19867 13294//12037 11897//10641 +f 21127//19867 21126//19866 11264//10008 11364//10108 +f 21128//19868 21127//19867 11364//10108 11267//10011 +f 21129//19869 21130//19870 13288//12031 13287//12030 +f 21128//19868 21129//19869 13287//12030 13291//12034 +f 21129//19869 21128//19868 11267//10011 11266//10010 +f 21130//19870 21129//19869 11266//10010 11272//10016 +f 21131//19871 21132//19872 13343//12086 13341//12084 +f 21133//19873 21131//19871 13341//12084 13342//12085 +f 21131//19871 21133//19873 11377//10121 11376//10120 +f 21132//19872 21131//19871 11376//10120 11383//10127 +f 21134//19874 21135//19875 14338//13079 14337//13078 +f 21132//19872 21134//19874 14337//13078 13343//12086 +f 21134//19874 21132//19872 11383//10127 12555//11298 +f 21135//19875 21134//19874 12555//11298 12557//11300 +f 21136//19876 21137//19877 14172//12914 15129//13870 +f 21135//19875 21136//19876 15129//13870 14338//13079 +f 21136//19876 21135//19875 12557//11300 13183//11926 +f 21137//19877 21136//19876 13183//11926 13185//11928 +f 21138//19878 21139//19879 13333//12076 14170//12912 +f 21137//19877 21138//19878 14170//12912 14172//12914 +f 21138//19878 21137//19877 13185//11928 13187//11930 +f 21139//19879 21138//19878 13187//11930 13189//11932 +f 21140//19880 21141//19881 13334//12077 13332//12075 +f 21139//19879 21140//19880 13332//12075 13333//12076 +f 21140//19880 21139//19879 13189//11932 13191//11934 +f 21141//19881 21140//19880 13191//11934 12665//11408 +f 21142//19882 21143//19883 14141//12883 14145//12887 +f 21141//19881 21142//19882 14145//12887 13334//12077 +f 21142//19882 21141//19881 12665//11408 12664//11407 +f 21143//19883 21142//19882 12664//11407 12659//11402 +f 21144//19884 21145//19885 14129//12871 14137//12879 +f 21143//19883 21144//19884 14137//12879 14141//12883 +f 21144//19884 21143//19883 12659//11402 12658//11401 +f 21145//19885 21144//19884 12658//11401 12662//11405 +f 21146//19886 21147//19887 14125//12867 14127//12869 +f 21145//19885 21146//19886 14127//12869 14129//12871 +f 21146//19886 21145//19885 12662//11405 13104//11847 +f 21147//19887 21146//19886 13104//11847 13099//11842 +f 21148//19888 21149//19889 14059//12801 14124//12866 +f 21147//19887 21148//19888 14124//12866 14125//12867 +f 21148//19888 21147//19887 13099//11842 13098//11841 +f 21149//19889 21148//19888 13098//11841 13102//11845 +f 21150//19890 21151//19891 14053//12795 14055//12797 +f 21149//19889 21150//19890 14055//12797 14059//12801 +f 21150//19890 21149//19889 13102//11845 13297//12040 +f 21151//19891 21150//19890 13297//12040 11592//10336 +f 21152//19892 21153//19893 14043//12785 14051//12793 +f 21151//19891 21152//19892 14051//12793 14053//12795 +f 21152//19892 21151//19891 11592//10336 11591//10335 +f 21153//19893 21152//19892 11591//10335 11578//10322 +f 21154//19894 21155//19895 14040//12782 14039//12781 +f 21153//19893 21154//19894 14039//12781 14043//12785 +f 21154//19894 21153//19893 11578//10322 11577//10321 +f 21155//19895 21154//19894 11577//10321 11572//10316 +f 21156//19896 21157//19897 13891//12634 14045//12787 +f 21155//19895 21156//19896 14045//12787 14040//12782 +f 21156//19896 21155//19895 11572//10316 11571//10315 +f 21157//19897 21156//19896 11571//10315 11567//10311 +f 21158//19898 21159//19899 13885//12628 13887//12630 +f 21157//19897 21158//19898 13887//12630 13891//12634 +f 21158//19898 21157//19897 11567//10311 11566//10310 +f 21159//19899 21158//19898 11566//10310 11524//10268 +f 21160//19900 21161//19901 13875//12618 13881//12624 +f 21159//19899 21160//19900 13881//12624 13885//12628 +f 21160//19900 21159//19899 11524//10268 11523//10267 +f 21161//19901 21160//19900 11523//10267 11517//10261 +f 21162//19902 21163//19903 13867//12610 13871//12614 +f 21161//19901 21162//19902 13871//12614 13875//12618 +f 21162//19902 21161//19901 11517//10261 11516//10260 +f 21163//19903 21162//19902 11516//10260 11460//10204 +f 21164//19904 21165//19905 13855//12598 13863//12606 +f 21163//19903 21164//19904 13863//12606 13867//12610 +f 21164//19904 21163//19903 11460//10204 11459//10203 +f 21165//19905 21164//19904 11459//10203 11454//10198 +f 21166//19906 21167//19907 13847//12590 13853//12596 +f 21165//19905 21166//19906 13853//12596 13855//12598 +f 21166//19906 21165//19905 11454//10198 11453//10197 +f 21167//19907 21166//19906 11453//10197 11447//10191 +f 21168//19908 21169//19909 13835//12578 13845//12588 +f 21167//19907 21168//19908 13845//12588 13847//12590 +f 21168//19908 21167//19907 11447//10191 11446//10190 +f 21169//19909 21168//19908 11446//10190 11450//10194 +f 21170//19910 21171//19911 13832//12575 13831//12574 +f 21169//19909 21170//19910 13831//12574 13835//12578 +f 21170//19910 21169//19909 11450//10194 13197//11940 +f 21171//19911 21170//19910 13197//11940 13199//11942 +f 21172//19912 21173//19913 15226//13967 15229//13970 +f 21171//19911 21172//19912 15229//13970 13832//12575 +f 21172//19912 21171//19911 13199//11942 13299//12042 +f 21173//19913 21172//19912 13299//12042 13202//11945 +f 21174//19914 21175//19915 15223//13964 15222//13963 +f 21173//19913 21174//19914 15222//13963 15226//13967 +f 21174//19914 21173//19913 13202//11945 13201//11944 +f 21175//19915 21174//19914 13201//11944 13207//11950 +f 21176//19916 21177//19917 15278//14019 15276//14017 +f 21178//19918 21176//19916 15276//14017 15277//14018 +f 21176//19916 21178//19918 13312//12055 13311//12054 +f 21177//19917 21176//19916 13311//12054 13318//12061 +f 21179//19919 21180//19920 16273//15013 16272//15012 +f 21177//19917 21179//19919 16272//15012 15278//14019 +f 21179//19919 21177//19917 13318//12061 14490//13231 +f 21180//19920 21179//19919 14490//13231 14492//13233 +f 21181//19921 21182//19922 16107//14848 17064//15804 +f 21180//19920 21181//19921 17064//15804 16273//15013 +f 21181//19921 21180//19920 14492//13233 15118//13859 +f 21182//19922 21181//19921 15118//13859 15120//13861 +f 21183//19923 21184//19924 15268//14009 16105//14846 +f 21182//19922 21183//19923 16105//14846 16107//14848 +f 21183//19923 21182//19922 15120//13861 15122//13863 +f 21184//19924 21183//19923 15122//13863 15124//13865 +f 21185//19925 21186//19926 15269//14010 15267//14008 +f 21184//19924 21185//19925 15267//14008 15268//14009 +f 21185//19925 21184//19924 15124//13865 15126//13867 +f 21186//19926 21185//19925 15126//13867 14600//13341 +f 21187//19927 21188//19928 16076//14817 16080//14821 +f 21186//19926 21187//19927 16080//14821 15269//14010 +f 21187//19927 21186//19926 14600//13341 14599//13340 +f 21188//19928 21187//19927 14599//13340 14594//13335 +f 21189//19929 21190//19930 16064//14805 16072//14813 +f 21188//19928 21189//19929 16072//14813 16076//14817 +f 21189//19929 21188//19928 14594//13335 14593//13334 +f 21190//19930 21189//19929 14593//13334 14597//13338 +f 21191//19931 21192//19932 16060//14801 16062//14803 +f 21190//19930 21191//19931 16062//14803 16064//14805 +f 21191//19931 21190//19930 14597//13338 15039//13780 +f 21192//19932 21191//19931 15039//13780 15034//13775 +f 21193//19933 21194//19934 15994//14735 16059//14800 +f 21192//19932 21193//19933 16059//14800 16060//14801 +f 21193//19933 21192//19932 15034//13775 15033//13774 +f 21194//19934 21193//19933 15033//13774 15037//13778 +f 21195//19935 21196//19936 15988//14729 15990//14731 +f 21194//19934 21195//19935 15990//14731 15994//14735 +f 21195//19935 21194//19934 15037//13778 15232//13973 +f 21196//19936 21195//19935 15232//13973 13527//12270 +f 21197//19937 21198//19938 15978//14719 15986//14727 +f 21196//19936 21197//19937 15986//14727 15988//14729 +f 21197//19937 21196//19936 13527//12270 13526//12269 +f 21198//19938 21197//19937 13526//12269 13513//12256 +f 21199//19939 21200//19940 15975//14716 15974//14715 +f 21198//19938 21199//19939 15974//14715 15978//14719 +f 21199//19939 21198//19938 13513//12256 13512//12255 +f 21200//19940 21199//19939 13512//12255 13507//12250 +f 21201//19941 21202//19942 15826//14567 15980//14721 +f 21200//19940 21201//19941 15980//14721 15975//14716 +f 21201//19941 21200//19940 13507//12250 13506//12249 +f 21202//19942 21201//19941 13506//12249 13502//12245 +f 21203//19943 21204//19944 15820//14561 15822//14563 +f 21202//19942 21203//19943 15822//14563 15826//14567 +f 21203//19943 21202//19942 13502//12245 13501//12244 +f 21204//19944 21203//19943 13501//12244 13459//12202 +f 21205//19945 21206//19946 15810//14551 15816//14557 +f 21204//19944 21205//19945 15816//14557 15820//14561 +f 21205//19945 21204//19944 13459//12202 13458//12201 +f 21206//19946 21205//19945 13458//12201 13452//12195 +f 21207//19947 21208//19948 15802//14543 15806//14547 +f 21206//19946 21207//19947 15806//14547 15810//14551 +f 21207//19947 21206//19946 13452//12195 13451//12194 +f 21208//19948 21207//19947 13451//12194 13395//12138 +f 21209//19949 21210//19950 15790//14531 15798//14539 +f 21208//19948 21209//19949 15798//14539 15802//14543 +f 21209//19949 21208//19948 13395//12138 13394//12137 +f 21210//19950 21209//19949 13394//12137 13389//12132 +f 21211//19951 21212//19952 15782//14523 15788//14529 +f 21210//19950 21211//19951 15788//14529 15790//14531 +f 21211//19951 21210//19950 13389//12132 13388//12131 +f 21212//19952 21211//19951 13388//12131 13382//12125 +f 21213//19953 21214//19954 15770//14511 15780//14521 +f 21212//19952 21213//19953 15780//14521 15782//14523 +f 21213//19953 21212//19952 13382//12125 13381//12124 +f 21214//19954 21213//19953 13381//12124 13385//12128 +f 21215//19955 21216//19956 15767//14508 15766//14507 +f 21214//19954 21215//19955 15766//14507 15770//14511 +f 21215//19955 21214//19954 13385//12128 15132//13873 +f 21216//19956 21215//19955 15132//13873 15134//13875 +f 21217//19957 21218//19958 17161//15901 17164//15904 +f 21216//19956 21217//19957 17164//15904 15767//14508 +f 21217//19957 21216//19956 15134//13875 15234//13975 +f 21218//19958 21217//19957 15234//13975 15137//13878 +f 21219//19959 21220//19960 17158//15898 17157//15897 +f 21218//19958 21219//19959 17157//15897 17161//15901 +f 21219//19959 21218//19958 15137//13878 15136//13877 +f 21220//19960 21219//19959 15136//13877 15142//13883 +f 21221//19961 21222//19962 17213//15953 17211//15951 +f 21223//19963 21221//19961 17211//15951 17212//15952 +f 21221//19961 21223//19963 15247//13988 15246//13987 +f 21222//19962 21221//19961 15246//13987 15253//13994 +f 21224//19964 21225//19965 18208//16948 18207//16947 +f 21222//19962 21224//19964 18207//16947 17213//15953 +f 21224//19964 21222//19962 15253//13994 16425//15165 +f 21225//19965 21224//19964 16425//15165 16427//15167 +f 21226//19966 21227//19967 18042//16782 18999//17739 +f 21225//19965 21226//19966 18999//17739 18208//16948 +f 21226//19966 21225//19965 16427//15167 17053//15793 +f 21227//19967 21226//19966 17053//15793 17055//15795 +f 21228//19968 21229//19969 17203//15943 18040//16780 +f 21227//19967 21228//19968 18040//16780 18042//16782 +f 21228//19968 21227//19967 17055//15795 17057//15797 +f 21229//19969 21228//19968 17057//15797 17059//15799 +f 21230//19970 21231//19971 17204//15944 17202//15942 +f 21229//19969 21230//19970 17202//15942 17203//15943 +f 21230//19970 21229//19969 17059//15799 17061//15801 +f 21231//19971 21230//19970 17061//15801 16535//15275 +f 21232//19972 21233//19973 18011//16751 18015//16755 +f 21231//19971 21232//19972 18015//16755 17204//15944 +f 21232//19972 21231//19971 16535//15275 16534//15274 +f 21233//19973 21232//19972 16534//15274 16529//15269 +f 21234//19974 21235//19975 17999//16739 18007//16747 +f 21233//19973 21234//19974 18007//16747 18011//16751 +f 21234//19974 21233//19973 16529//15269 16528//15268 +f 21235//19975 21234//19974 16528//15268 16532//15272 +f 21236//19976 21237//19977 17995//16735 17997//16737 +f 21235//19975 21236//19976 17997//16737 17999//16739 +f 21236//19976 21235//19975 16532//15272 16974//15714 +f 21237//19977 21236//19976 16974//15714 16969//15709 +f 21238//19978 21239//19979 17929//16669 17994//16734 +f 21237//19977 21238//19978 17994//16734 17995//16735 +f 21238//19978 21237//19977 16969//15709 16968//15708 +f 21239//19979 21238//19978 16968//15708 16972//15712 +f 21240//19980 21241//19981 17923//16663 17925//16665 +f 21239//19979 21240//19980 17925//16665 17929//16669 +f 21240//19980 21239//19979 16972//15712 17167//15907 +f 21241//19981 21240//19980 17167//15907 15462//14203 +f 21242//19982 21243//19983 17913//16653 17921//16661 +f 21241//19981 21242//19982 17921//16661 17923//16663 +f 21242//19982 21241//19981 15462//14203 15461//14202 +f 21243//19983 21242//19982 15461//14202 15448//14189 +f 21244//19984 21245//19985 17910//16650 17909//16649 +f 21243//19983 21244//19984 17909//16649 17913//16653 +f 21244//19984 21243//19983 15448//14189 15447//14188 +f 21245//19985 21244//19984 15447//14188 15442//14183 +f 21246//19986 21247//19987 17761//16501 17915//16655 +f 21245//19985 21246//19986 17915//16655 17910//16650 +f 21246//19986 21245//19985 15442//14183 15441//14182 +f 21247//19987 21246//19986 15441//14182 15437//14178 +f 21248//19988 21249//19989 17755//16495 17757//16497 +f 21247//19987 21248//19988 17757//16497 17761//16501 +f 21248//19988 21247//19987 15437//14178 15436//14177 +f 21249//19989 21248//19988 15436//14177 15394//14135 +f 21250//19990 21251//19991 17745//16485 17751//16491 +f 21249//19989 21250//19990 17751//16491 17755//16495 +f 21250//19990 21249//19989 15394//14135 15393//14134 +f 21251//19991 21250//19990 15393//14134 15387//14128 +f 21252//19992 21253//19993 17737//16477 17741//16481 +f 21251//19991 21252//19992 17741//16481 17745//16485 +f 21252//19992 21251//19991 15387//14128 15386//14127 +f 21253//19993 21252//19992 15386//14127 15330//14071 +f 21254//19994 21255//19995 17725//16465 17733//16473 +f 21253//19993 21254//19994 17733//16473 17737//16477 +f 21254//19994 21253//19993 15330//14071 15329//14070 +f 21255//19995 21254//19994 15329//14070 15324//14065 +f 21256//19996 21257//19997 17717//16457 17723//16463 +f 21255//19995 21256//19996 17723//16463 17725//16465 +f 21256//19996 21255//19995 15324//14065 15323//14064 +f 21257//19997 21256//19996 15323//14064 15317//14058 +f 21258//19998 21259//19999 17705//16445 17715//16455 +f 21257//19997 21258//19998 17715//16455 17717//16457 +f 21258//19998 21257//19997 15317//14058 15316//14057 +f 21259//19999 21258//19998 15316//14057 15320//14061 +f 21260//20000 21261//20001 17702//16442 17701//16441 +f 21259//19999 21260//20000 17701//16441 17705//16445 +f 21260//20000 21259//19999 15320//14061 17067//15807 +f 21261//20001 21260//20000 17067//15807 17069//15809 +f 21262//20002 21263//20003 19096//17836 19099//17839 +f 21261//20001 21262//20002 19099//17839 17702//16442 +f 21262//20002 21261//20001 17069//15809 17169//15909 +f 21263//20003 21262//20002 17169//15909 17072//15812 +f 21264//20004 21265//20005 19093//17833 19092//17832 +f 21263//20003 21264//20004 19092//17832 19096//17836 +f 21264//20004 21263//20003 17072//15812 17071//15811 +f 21265//20005 21264//20004 17071//15811 17077//15817 +f 21266//20006 21267//20007 19148//17888 19146//17886 +f 21268//20008 21266//20006 19146//17886 19147//17887 +f 21266//20006 21268//20008 17182//15922 17181//15921 +f 21267//20007 21266//20006 17181//15921 17188//15928 +f 21269//20009 21270//20010 20143//18883 20142//18882 +f 21267//20007 21269//20009 20142//18882 19148//17888 +f 21269//20009 21267//20007 17188//15928 18360//17100 +f 21270//20010 21269//20009 18360//17100 18362//17102 +f 21271//20011 21272//20012 19977//18717 20934//19674 +f 21270//20010 21271//20011 20934//19674 20143//18883 +f 21271//20011 21270//20010 18362//17102 18988//17728 +f 21272//20012 21271//20011 18988//17728 18990//17730 +f 21273//20013 21274//20014 19138//17878 19975//18715 +f 21272//20012 21273//20013 19975//18715 19977//18717 +f 21273//20013 21272//20012 18990//17730 18992//17732 +f 21274//20014 21273//20013 18992//17732 18994//17734 +f 21275//20015 21276//20016 19139//17879 19137//17877 +f 21274//20014 21275//20015 19137//17877 19138//17878 +f 21275//20015 21274//20014 18994//17734 18996//17736 +f 21276//20016 21275//20015 18996//17736 18470//17210 +f 21277//20017 21278//20018 19946//18686 19950//18690 +f 21276//20016 21277//20017 19950//18690 19139//17879 +f 21277//20017 21276//20016 18470//17210 18469//17209 +f 21278//20018 21277//20017 18469//17209 18464//17204 +f 21279//20019 21280//20020 19934//18674 19942//18682 +f 21278//20018 21279//20019 19942//18682 19946//18686 +f 21279//20019 21278//20018 18464//17204 18463//17203 +f 21280//20020 21279//20019 18463//17203 18467//17207 +f 21281//20021 21282//20022 19930//18670 19932//18672 +f 21280//20020 21281//20021 19932//18672 19934//18674 +f 21281//20021 21280//20020 18467//17207 18909//17649 +f 21282//20022 21281//20021 18909//17649 18904//17644 +f 21283//20023 21284//20024 19864//18604 19929//18669 +f 21282//20022 21283//20023 19929//18669 19930//18670 +f 21283//20023 21282//20022 18904//17644 18903//17643 +f 21284//20024 21283//20023 18903//17643 18907//17647 +f 21285//20025 21286//20026 19858//18598 19860//18600 +f 21284//20024 21285//20025 19860//18600 19864//18604 +f 21285//20025 21284//20024 18907//17647 19102//17842 +f 21286//20026 21285//20025 19102//17842 17397//16137 +f 21287//20027 21288//20028 19848//18588 19856//18596 +f 21286//20026 21287//20027 19856//18596 19858//18598 +f 21287//20027 21286//20026 17397//16137 17396//16136 +f 21288//20028 21287//20027 17396//16136 17383//16123 +f 21289//20029 21290//20030 19845//18585 19844//18584 +f 21288//20028 21289//20029 19844//18584 19848//18588 +f 21289//20029 21288//20028 17383//16123 17382//16122 +f 21290//20030 21289//20029 17382//16122 17377//16117 +f 21291//20031 21292//20032 19696//18436 19850//18590 +f 21290//20030 21291//20031 19850//18590 19845//18585 +f 21291//20031 21290//20030 17377//16117 17376//16116 +f 21292//20032 21291//20031 17376//16116 17372//16112 +f 21293//20033 21294//20034 19690//18430 19692//18432 +f 21292//20032 21293//20033 19692//18432 19696//18436 +f 21293//20033 21292//20032 17372//16112 17371//16111 +f 21294//20034 21293//20033 17371//16111 17329//16069 +f 21295//20035 21296//20036 19680//18420 19686//18426 +f 21294//20034 21295//20035 19686//18426 19690//18430 +f 21295//20035 21294//20034 17329//16069 17328//16068 +f 21296//20036 21295//20035 17328//16068 17322//16062 +f 21297//20037 21298//20038 19672//18412 19676//18416 +f 21296//20036 21297//20037 19676//18416 19680//18420 +f 21297//20037 21296//20036 17322//16062 17321//16061 +f 21298//20038 21297//20037 17321//16061 17265//16005 +f 21299//20039 21300//20040 19660//18400 19668//18408 +f 21298//20038 21299//20039 19668//18408 19672//18412 +f 21299//20039 21298//20038 17265//16005 17264//16004 +f 21300//20040 21299//20039 17264//16004 17259//15999 +f 21301//20041 21302//20042 19652//18392 19658//18398 +f 21300//20040 21301//20041 19658//18398 19660//18400 +f 21301//20041 21300//20040 17259//15999 17258//15998 +f 21302//20042 21301//20041 17258//15998 17252//15992 +f 21303//20043 21304//20044 19640//18380 19650//18390 +f 21302//20042 21303//20043 19650//18390 19652//18392 +f 21303//20043 21302//20042 17252//15992 17251//15991 +f 21304//20044 21303//20043 17251//15991 17255//15995 +f 21305//20045 21306//20046 19637//18377 19636//18376 +f 21304//20044 21305//20045 19636//18376 19640//18380 +f 21305//20045 21304//20044 17255//15995 19002//17742 +f 21306//20046 21305//20045 19002//17742 19004//17744 +f 21307//20047 21308//20048 21031//19771 21034//19774 +f 21306//20046 21307//20047 21034//19774 19637//18377 +f 21307//20047 21306//20046 19004//17744 19104//17844 +f 21308//20048 21307//20047 19104//17844 19007//17747 +f 21309//20049 21310//20050 21028//19768 21027//19767 +f 21308//20048 21309//20049 21027//19767 21031//19771 +f 21309//20049 21308//20048 19007//17747 19006//17746 +f 21310//20050 21309//20049 19006//17746 19012//17752 +f 21311//20051 21312//20052 20942//19682 20941//19681 +f 21313//20053 21311//20051 20941//19681 20947//19687 +f 21311//20051 21313//20053 9418//8162 9417//8161 +f 21312//20052 21311//20051 9417//8161 9421//8165 +f 21314//20054 21315//20055 20939//19679 21039//19779 +f 21312//20052 21314//20054 21039//19779 20942//19682 +f 21314//20054 21312//20052 9421//8165 9424//8168 +f 21315//20055 21314//20054 9424//8168 8027//6772 +f 21316//20056 21317//20057 19190//17930 20937//19677 +f 21315//20055 21316//20056 20937//19677 20939//19679 +f 21316//20056 21315//20055 8027//6772 8026//6771 +f 21317//20057 21316//20056 8026//6771 8030//6775 +f 21318//20058 21319//20059 19187//17927 19186//17926 +f 21317//20057 21318//20058 19186//17926 19190//17930 +f 21318//20058 21317//20057 8030//6775 8040//6785 +f 21319//20059 21318//20058 8040//6785 8042//6787 +f 21320//20060 21321//20061 19194//17934 19193//17933 +f 21319//20059 21320//20060 19193//17933 19187//17927 +f 21320//20060 21319//20059 8042//6787 8048//6793 +f 21321//20061 21320//20060 8048//6793 8050//6795 +f 21322//20062 21323//20063 19200//17940 19199//17939 +f 21321//20061 21322//20062 19199//17939 19194//17934 +f 21322//20062 21321//20061 8050//6795 8058//6803 +f 21323//20063 21322//20062 8058//6803 8062//6807 +f 21324//20064 21325//20065 19257//17997 19256//17996 +f 21323//20063 21324//20064 19256//17996 19200//17940 +f 21324//20064 21323//20063 8062//6807 8066//6811 +f 21325//20065 21324//20064 8066//6811 8070//6815 +f 21326//20066 21327//20067 19264//18004 19263//18003 +f 21325//20065 21326//20066 19263//18003 19257//17997 +f 21326//20066 21325//20065 8070//6815 8076//6821 +f 21327//20067 21326//20066 8076//6821 8080//6825 +f 21328//20068 21329//20069 19307//18047 19306//18046 +f 21327//20067 21328//20068 19306//18046 19264//18004 +f 21328//20068 21327//20067 8080//6825 8082//6827 +f 21329//20069 21328//20068 8082//6827 8086//6831 +f 21330//20070 21331//20071 19312//18052 19311//18051 +f 21329//20069 21330//20070 19311//18051 19307//18047 +f 21330//20070 21329//20069 8086//6831 8240//6985 +f 21331//20071 21330//20070 8240//6985 8235//6980 +f 21332//20072 21333//20073 19318//18058 19317//18057 +f 21331//20071 21332//20072 19317//18057 19312//18052 +f 21332//20072 21331//20071 8235//6980 8234//6979 +f 21333//20073 21332//20072 8234//6979 8238//6983 +f 21334//20074 21335//20075 19332//18072 19331//18071 +f 21333//20073 21334//20074 19331//18071 19318//18058 +f 21334//20074 21333//20073 8238//6983 8246//6991 +f 21335//20075 21334//20074 8246//6991 8248//6993 +f 21336//20076 21337//20077 20842//19582 21037//19777 +f 21335//20075 21336//20076 21037//19777 19332//18072 +f 21336//20076 21335//20075 8248//6993 8250//6995 +f 21337//20077 21336//20076 8250//6995 8254//6999 +f 21338//20078 21339//20079 20839//19579 20838//19578 +f 21337//20077 21338//20078 20838//19578 20842//19582 +f 21338//20078 21337//20077 8254//6999 8319//7064 +f 21339//20079 21338//20078 8319//7064 8320//7065 +f 21340//20080 21341//20081 20402//19142 20844//19584 +f 21339//20079 21340//20080 20844//19584 20839//19579 +f 21340//20080 21339//20079 8320//7065 8322//7067 +f 21341//20081 21340//20080 8322//7067 8324//7069 +f 21342//20082 21343//20083 20399//19139 20398//19138 +f 21341//20081 21342//20082 20398//19138 20402//19142 +f 21342//20082 21341//20081 8324//7069 8332//7077 +f 21343//20083 21342//20082 8332//7077 8336//7081 +f 21344//20084 21345//20085 20405//19145 20404//19144 +f 21343//20083 21344//20084 20404//19144 20399//19139 +f 21344//20084 21343//20083 8336//7081 8340//7085 +f 21345//20085 21344//20084 8340//7085 7529//6274 +f 21346//20086 21347//20087 20929//19669 20931//19671 +f 21345//20085 21346//20086 20931//19671 20405//19145 +f 21346//20086 21345//20085 7529//6274 7527//6272 +f 21347//20087 21346//20086 7527//6272 7528//6273 +f 21348//20088 21349//20089 20925//19665 20927//19667 +f 21347//20087 21348//20088 20927//19667 20929//19669 +f 21348//20088 21347//20087 7528//6273 8365//7110 +f 21349//20089 21348//20088 8365//7110 8367//7112 +f 21350//20090 21351//20091 20297//19037 20923//19663 +f 21349//20089 21350//20090 20923//19663 20925//19665 +f 21350//20090 21349//20089 8367//7112 9324//8068 +f 21351//20091 21350//20090 9324//8068 8533//7277 +f 21352//20092 21353//20093 19123//17863 20295//19035 +f 21351//20091 21352//20092 20295//19035 20297//19037 +f 21352//20092 21351//20091 8533//7277 8532//7276 +f 21353//20093 21352//20092 8532//7276 7538//6283 +f 21354//20094 21355//20095 19117//17857 19116//17856 +f 21353//20093 21354//20094 19116//17856 19123//17863 +f 21354//20094 21353//20093 7538//6283 7536//6281 +f 21355//20095 21354//20094 7536//6281 7537//6282 +f 21356//20096 21357//20096 21358//20096 21359//20096 +f 21360//20097 21361//20098 21357//20099 21356//20100 +f 21362//20101 21357//20099 21361//20098 21363//20102 +f 21364//20103 21358//20104 21357//20099 21362//20101 +f 21365//20105 21366//20106 21367//20107 21368//20108 +f 21359//20109 21358//20104 21366//20106 21365//20105 +f 21369//20110 21366//20106 21358//20104 21364//20103 +f 21370//20111 21367//20107 21366//20106 21369//20110 +f 21371//20112 21372//20113 21373//20114 21374//20115 +f 21368//20108 21367//20107 21372//20113 21371//20112 +f 21375//20116 21372//20113 21367//20107 21370//20111 +f 21376//20117 21373//20114 21372//20113 21375//20116 +f 21377//20118 21378//20119 21379//20120 21380//20121 +f 21374//20115 21373//20114 21378//20119 21377//20118 +f 21381//20122 21378//20119 21373//20114 21376//20117 +f 21382//20123 21379//20120 21378//20119 21381//20122 +f 21383//20124 21384//20125 21385//20126 21386//20127 +f 21380//20121 21379//20120 21384//20125 21383//20124 +f 21387//20128 21384//20125 21379//20120 21382//20123 +f 21388//20129 21385//20126 21384//20125 21387//20128 +f 21389//20130 21390//20131 21391//20132 21392//20133 +f 21386//20127 21385//20126 21390//20131 21389//20130 +f 21393//20134 21390//20131 21385//20126 21388//20129 +f 21394//20135 21391//20132 21390//20131 21393//20134 +f 21395//20136 21396//20137 21397//20138 21398//20139 +f 21392//20133 21391//20132 21396//20137 21395//20136 +f 21399//20140 21396//20137 21391//20132 21394//20135 +f 21400//20141 21397//20138 21396//20137 21399//20140 +f 21401//20142 21402//20143 21403//20144 21404//20145 +f 21398//20139 21397//20138 21402//20143 21401//20142 +f 21405//20146 21402//20143 21397//20138 21400//20141 +f 21406//20147 21403//20144 21402//20143 21405//20146 +f 21407//20148 21408//20149 21409//20150 21410//20151 +f 21404//20145 21403//20144 21408//20149 21407//20148 +f 21411//20152 21408//20149 21403//20144 21406//20147 +f 21412//20153 21409//20150 21408//20149 21411//20152 +f 21413//20154 21414//20155 21415//20156 21416//20157 +f 21410//20151 21409//20150 21414//20155 21413//20154 +f 21417//20158 21414//20155 21409//20150 21412//20153 +f 21418//20159 21415//20156 21414//20155 21417//20158 +f 21419//20160 21420//20161 21421//20162 21422//20163 +f 21416//20157 21415//20156 21420//20161 21419//20160 +f 21423//20164 21420//20161 21415//20156 21418//20159 +f 21424//20165 21421//20162 21420//20161 21423//20164 +f 21425//20166 21426//20167 21427//20168 21428//20169 +f 21422//20163 21421//20162 21426//20167 21425//20166 +f 21429//20170 21426//20167 21421//20162 21424//20165 +f 21430//20171 21427//20168 21426//20167 21429//20170 +f 21431//20172 21432//20173 21433//20174 21434//20175 +f 21428//20169 21427//20168 21432//20173 21431//20172 +f 21435//20176 21432//20173 21427//20168 21430//20171 +f 21436//20177 21433//20174 21432//20173 21435//20176 +f 21437//20178 21438//20179 21439//20180 21440//20181 +f 21434//20175 21433//20174 21438//20179 21437//20178 +f 21441//20182 21438//20179 21433//20174 21436//20177 +f 21442//20183 21439//20180 21438//20179 21441//20182 +f 21443//20184 21444//20185 21445//20186 21446//20187 +f 21440//20181 21439//20180 21444//20185 21443//20184 +f 21447//20188 21444//20185 21439//20180 21442//20183 +f 21448//20189 21445//20186 21444//20185 21447//20188 +f 21449//20190 21450//20191 21451//20192 21452//20193 +f 21446//20187 21445//20186 21450//20191 21449//20190 +f 21453//20194 21450//20191 21445//20186 21448//20189 +f 21454//20195 21451//20192 21450//20191 21453//20194 +f 21455//20196 21456//20197 21457//20198 21458//20199 +f 21452//20193 21451//20192 21456//20197 21455//20196 +f 21459//20200 21456//20197 21451//20192 21454//20195 +f 21460//20201 21457//20198 21456//20197 21459//20200 +f 21461//20202 21462//20203 21463//20204 21464//20205 +f 21458//20199 21457//20198 21462//20203 21461//20202 +f 21465//20206 21462//20203 21457//20198 21460//20201 +f 21466//20207 21463//20204 21462//20203 21465//20206 +f 21467//20208 21468//20209 21469//20210 21470//20211 +f 21464//20205 21463//20204 21468//20209 21467//20208 +f 21471//20212 21468//20209 21463//20204 21466//20207 +f 21472//20213 21469//20210 21468//20209 21471//20212 +f 21473//20214 21474//20215 21475//20216 21476//20217 +f 21470//20211 21469//20210 21474//20215 21473//20214 +f 21477//20218 21474//20215 21469//20210 21472//20213 +f 21478//20219 21475//20216 21474//20215 21477//20218 +f 21479//20220 21480//20221 21481//20222 21482//20223 +f 21476//20217 21475//20216 21480//20221 21479//20220 +f 21483//20224 21480//20221 21475//20216 21478//20219 +f 21484//20225 21481//20222 21480//20221 21483//20224 +f 21485//20226 21486//20227 21487//20228 21488//20229 +f 21482//20223 21481//20222 21486//20227 21485//20226 +f 21489//20230 21486//20227 21481//20222 21484//20225 +f 21490//20231 21487//20228 21486//20227 21489//20230 +f 21491//20232 21492//20233 21493//20234 21494//20235 +f 21488//20229 21487//20228 21492//20233 21491//20232 +f 21495//20236 21492//20233 21487//20228 21490//20231 +f 21496//20237 21493//20234 21492//20233 21495//20236 +f 21497//20238 21498//20239 21499//20240 21500//20241 +f 21494//20235 21493//20234 21498//20239 21497//20238 +f 21501//20242 21498//20239 21493//20234 21496//20237 +f 21502//20243 21499//20240 21498//20239 21501//20242 +f 21503//20244 21504//20245 21505//20246 21506//20247 +f 21500//20241 21499//20240 21504//20245 21503//20244 +f 21507//20248 21504//20245 21499//20240 21502//20243 +f 21508//20249 21505//20246 21504//20245 21507//20248 +f 21509//20250 21510//20251 21511//20252 21512//20253 +f 21506//20247 21505//20246 21510//20251 21509//20250 +f 21513//20254 21510//20251 21505//20246 21508//20249 +f 21514//20255 21511//20252 21510//20251 21513//20254 +f 21515//20256 21516//20257 21517//20258 21518//20259 +f 21512//20253 21511//20252 21516//20257 21515//20256 +f 21519//20260 21516//20257 21511//20252 21514//20255 +f 21520//20261 21517//20258 21516//20257 21519//20260 +f 21521//20262 21522//20263 21523//20264 21524//20265 +f 21518//20259 21517//20258 21522//20263 21521//20262 +f 21525//20266 21522//20263 21517//20258 21520//20261 +f 21526//20267 21523//20264 21522//20263 21525//20266 +f 21527//20268 21528//20269 21529//20270 21530//20271 +f 21524//20265 21523//20264 21528//20269 21527//20268 +f 21531//20272 21528//20269 21523//20264 21526//20267 +f 21532//20273 21529//20270 21528//20269 21531//20272 +f 21533//20274 21534//20275 21535//20276 21536//20277 +f 21530//20271 21529//20270 21534//20275 21533//20274 +f 21537//20278 21534//20275 21529//20270 21532//20273 +f 21538//20279 21535//20276 21534//20275 21537//20278 +f 21539//20280 21540//20281 21541//20282 21542//20283 +f 21536//20277 21535//20276 21540//20281 21539//20280 +f 21543//20284 21540//20281 21535//20276 21538//20279 +f 21544//20285 21541//20282 21540//20281 21543//20284 +f 21545//20286 21546//20287 21547//20288 21548//20289 +f 21542//20283 21541//20282 21546//20287 21545//20286 +f 21549//20290 21546//20287 21541//20282 21544//20285 +f 21550//20291 21547//20288 21546//20287 21549//20290 +f 21551//20292 21552//20293 21553//20294 21554//20295 +f 21548//20289 21547//20288 21552//20293 21551//20292 +f 21555//20296 21552//20293 21547//20288 21550//20291 +f 21556//20297 21553//20294 21552//20293 21555//20296 +f 21557//20298 21558//20299 21559//20300 21560//20301 +f 21554//20295 21553//20294 21558//20299 21557//20298 +f 21561//20302 21558//20299 21553//20294 21556//20297 +f 21562//20303 21559//20300 21558//20299 21561//20302 +f 21563//20304 21564//20305 21565//20306 21566//20307 +f 21560//20301 21559//20300 21564//20305 21563//20304 +f 21567//20308 21564//20305 21559//20300 21562//20303 +f 21568//20309 21565//20306 21564//20305 21567//20308 +f 21569//20310 21570//20311 21571//20312 21572//20313 +f 21566//20307 21565//20306 21570//20311 21569//20310 +f 21573//20314 21570//20311 21565//20306 21568//20309 +f 21574//20315 21571//20312 21570//20311 21573//20314 +f 21575//20316 21576//20317 21577//20318 21578//20319 +f 21572//20313 21571//20312 21576//20317 21575//20316 +f 21579//20320 21576//20317 21571//20312 21574//20315 +f 21580//20321 21577//20318 21576//20317 21579//20320 +f 21581//20322 21582//20323 21583//20324 21584//20325 +f 21578//20319 21577//20318 21582//20323 21581//20322 +f 21585//20326 21582//20323 21577//20318 21580//20321 +f 21586//20327 21583//20324 21582//20323 21585//20326 +f 21587//20328 21588//20329 21589//20330 21590//20331 +f 21584//20325 21583//20324 21588//20329 21587//20328 +f 21591//20332 21588//20329 21583//20324 21586//20327 +f 21592//20333 21589//20330 21588//20329 21591//20332 +f 21593//20334 21594//20335 21361//20098 21360//20097 +f 21590//20331 21589//20330 21594//20335 21593//20334 +f 21595//20336 21594//20335 21589//20330 21592//20333 +f 21363//20102 21361//20098 21594//20335 21595//20336 +f 21596//20337 21597//20338 21598//20339 21599//20340 +f 21600//20341 21601//20342 21597//20338 21596//20337 +f 21602//20343 21597//20338 21601//20342 21603//20344 +f 21604//20345 21598//20339 21597//20338 21602//20343 +f 21602//20343 21605//20346 21606//20347 21604//20345 +f 21603//20344 21607//20348 21605//20346 21602//20343 +f 21608//20349 21605//20346 21607//20348 21609//20350 +f 21610//20351 21606//20347 21605//20346 21608//20349 +f 21608//20349 21611//20352 21612//20353 21610//20351 +f 21609//20350 21613//20354 21611//20352 21608//20349 +f 21614//20355 21611//20352 21613//20354 21615//20356 +f 21616//20357 21612//20353 21611//20352 21614//20355 +f 21614//20355 21617//20358 21618//20359 21616//20357 +f 21615//20356 21619//20360 21617//20358 21614//20355 +f 21620//20361 21617//20358 21619//20360 21621//20362 +f 21622//20363 21618//20359 21617//20358 21620//20361 +f 21620//20361 21623//20364 21624//20365 21622//20363 +f 21621//20362 21625//20366 21623//20364 21620//20361 +f 21626//20367 21623//20364 21625//20366 21627//20368 +f 21628//20369 21624//20365 21623//20364 21626//20367 +f 21626//20367 21629//20370 21630//20371 21628//20369 +f 21627//20368 21631//20372 21629//20370 21626//20367 +f 21632//20373 21629//20370 21631//20372 21633//20374 +f 21634//20375 21630//20371 21629//20370 21632//20373 +f 21632//20373 21635//20376 21636//20377 21634//20375 +f 21633//20374 21637//20378 21635//20376 21632//20373 +f 21638//20379 21635//20376 21637//20378 21639//20380 +f 21640//20381 21636//20377 21635//20376 21638//20379 +f 21638//20379 21641//20382 21642//20383 21640//20381 +f 21639//20380 21643//20384 21641//20382 21638//20379 +f 21644//20385 21641//20382 21643//20384 21645//20386 +f 21646//20387 21642//20383 21641//20382 21644//20385 +f 21644//20385 21647//20388 21648//20389 21646//20387 +f 21645//20386 21649//20390 21647//20388 21644//20385 +f 21650//20391 21647//20388 21649//20390 21651//20392 +f 21652//20393 21648//20389 21647//20388 21650//20391 +f 21650//20391 21653//20394 21654//20395 21652//20393 +f 21651//20392 21655//20396 21653//20394 21650//20391 +f 21656//20397 21653//20394 21655//20396 21657//20398 +f 21658//20399 21654//20395 21653//20394 21656//20397 +f 21656//20397 21659//20400 21660//20401 21658//20399 +f 21657//20398 21661//20402 21659//20400 21656//20397 +f 21662//20403 21659//20400 21661//20402 21663//20404 +f 21664//20405 21660//20401 21659//20400 21662//20403 +f 21662//20403 21665//20406 21666//20407 21664//20405 +f 21663//20404 21667//20408 21665//20406 21662//20403 +f 21668//20409 21665//20406 21667//20408 21669//20410 +f 21670//20411 21666//20407 21665//20406 21668//20409 +f 21668//20409 21671//20412 21672//20413 21670//20411 +f 21669//20410 21673//20414 21671//20412 21668//20409 +f 21674//20415 21671//20412 21673//20414 21675//20416 +f 21676//20417 21672//20413 21671//20412 21674//20415 +f 21674//20415 21677//20418 21678//20419 21676//20417 +f 21675//20416 21679//20420 21677//20418 21674//20415 +f 21680//20421 21677//20418 21679//20420 21681//20422 +f 21682//20423 21678//20419 21677//20418 21680//20421 +f 21680//20421 21683//20424 21684//20425 21682//20423 +f 21681//20422 21685//20426 21683//20424 21680//20421 +f 21686//20427 21683//20424 21685//20426 21687//20428 +f 21688//20429 21684//20425 21683//20424 21686//20427 +f 21686//20427 21689//20430 21690//20431 21688//20429 +f 21687//20428 21691//20432 21689//20430 21686//20427 +f 21692//20433 21689//20430 21691//20432 21693//20434 +f 21694//20435 21690//20431 21689//20430 21692//20433 +f 21692//20433 21695//20436 21696//20437 21694//20435 +f 21693//20434 21697//20438 21695//20436 21692//20433 +f 21698//20439 21695//20436 21697//20438 21699//20440 +f 21700//20441 21696//20437 21695//20436 21698//20439 +f 21698//20439 21701//20442 21702//20443 21700//20441 +f 21699//20440 21703//20444 21701//20442 21698//20439 +f 21704//20445 21701//20442 21703//20444 21705//20446 +f 21706//20447 21702//20443 21701//20442 21704//20445 +f 21704//20445 21707//20448 21708//20449 21706//20447 +f 21705//20446 21709//20450 21707//20448 21704//20445 +f 21710//20451 21707//20448 21709//20450 21711//20452 +f 21712//20453 21708//20449 21707//20448 21710//20451 +f 21710//20451 21713//20454 21714//20455 21712//20453 +f 21711//20452 21715//20456 21713//20454 21710//20451 +f 21716//20457 21713//20454 21715//20456 21717//20458 +f 21718//20459 21714//20455 21713//20454 21716//20457 +f 21716//20457 21719//20460 21720//20461 21718//20459 +f 21717//20458 21721//20462 21719//20460 21716//20457 +f 21722//20463 21719//20460 21721//20462 21723//20464 +f 21724//20465 21720//20461 21719//20460 21722//20463 +f 21722//20463 21725//20466 21726//20467 21724//20465 +f 21723//20464 21727//20468 21725//20466 21722//20463 +f 21728//20469 21725//20466 21727//20468 21729//20470 +f 21730//20471 21726//20467 21725//20466 21728//20469 +f 21728//20469 21731//20472 21732//20473 21730//20471 +f 21729//20470 21733//20474 21731//20472 21728//20469 +f 21734//20475 21731//20472 21733//20474 21735//20476 +f 21736//20477 21732//20473 21731//20472 21734//20475 +f 21734//20475 21737//20478 21738//20479 21736//20477 +f 21735//20476 21739//20480 21737//20478 21734//20475 +f 21740//20481 21737//20478 21739//20480 21741//20482 +f 21742//20483 21738//20479 21737//20478 21740//20481 +f 21740//20481 21743//20484 21744//20485 21742//20483 +f 21741//20482 21745//20486 21743//20484 21740//20481 +f 21746//20487 21743//20484 21745//20486 21747//20488 +f 21748//20489 21744//20485 21743//20484 21746//20487 +f 21746//20487 21749//20490 21750//20491 21748//20489 +f 21747//20488 21751//20492 21749//20490 21746//20487 +f 21752//20493 21749//20490 21751//20492 21753//20494 +f 21754//20495 21750//20491 21749//20490 21752//20493 +f 21752//20493 21755//20496 21756//20497 21754//20495 +f 21753//20494 21757//20498 21755//20496 21752//20493 +f 21758//20499 21755//20496 21757//20498 21759//20500 +f 21760//20501 21756//20497 21755//20496 21758//20499 +f 21758//20499 21761//20502 21762//20503 21760//20501 +f 21759//20500 21763//20504 21761//20502 21758//20499 +f 21764//20505 21761//20502 21763//20504 21765//20506 +f 21766//20507 21762//20503 21761//20502 21764//20505 +f 21764//20505 21767//20508 21768//20509 21766//20507 +f 21765//20506 21769//20510 21767//20508 21764//20505 +f 21770//20511 21767//20508 21769//20510 21771//20512 +f 21772//20513 21768//20509 21767//20508 21770//20511 +f 21770//20511 21773//20514 21774//20515 21772//20513 +f 21771//20512 21775//20516 21773//20514 21770//20511 +f 21776//20517 21773//20514 21775//20516 21777//20518 +f 21778//20519 21774//20515 21773//20514 21776//20517 +f 21776//20517 21779//20520 21780//20521 21778//20519 +f 21777//20518 21781//20522 21779//20520 21776//20517 +f 21782//20523 21779//20520 21781//20522 21783//20524 +f 21784//20525 21780//20521 21779//20520 21782//20523 +f 21782//20523 21785//20526 21786//20527 21784//20525 +f 21783//20524 21787//20528 21785//20526 21782//20523 +f 21788//20529 21785//20526 21787//20528 21789//20530 +f 21790//20531 21786//20527 21785//20526 21788//20529 +f 21788//20529 21791//20532 21792//20533 21790//20531 +f 21789//20530 21793//20534 21791//20532 21788//20529 +f 21794//20535 21791//20532 21793//20534 21795//20536 +f 21796//20537 21792//20533 21791//20532 21794//20535 +f 21794//20535 21797//20538 21798//20539 21796//20537 +f 21795//20536 21799//20540 21797//20538 21794//20535 +f 21800//20541 21797//20538 21799//20540 21801//20542 +f 21802//20543 21798//20539 21797//20538 21800//20541 +f 21800//20541 21803//20544 21804//20545 21802//20543 +f 21801//20542 21805//20546 21803//20544 21800//20541 +f 21806//20547 21803//20544 21805//20546 21807//20548 +f 21808//20549 21804//20545 21803//20544 21806//20547 +f 21806//20547 21809//20550 21810//20551 21808//20549 +f 21807//20548 21811//20552 21809//20550 21806//20547 +f 21812//20553 21809//20550 21811//20552 21813//20554 +f 21814//20555 21810//20551 21809//20550 21812//20553 +f 21812//20553 21815//20556 21816//20557 21814//20555 +f 21813//20554 21817//20558 21815//20556 21812//20553 +f 21818//20559 21815//20556 21817//20558 21819//20560 +f 21820//20561 21816//20557 21815//20556 21818//20559 +f 21818//20559 21821//20562 21822//20563 21820//20561 +f 21819//20560 21823//20564 21821//20562 21818//20559 +f 21824//20565 21821//20562 21823//20564 21825//20566 +f 21826//20567 21822//20563 21821//20562 21824//20565 +f 21824//20565 21827//20568 21828//20569 21826//20567 +f 21825//20566 21829//20570 21827//20568 21824//20565 +f 21830//20571 21827//20568 21829//20570 21831//20572 +f 21832//20573 21828//20569 21827//20568 21830//20571 +f 21830//20571 21833//20574 21834//20575 21832//20573 +f 21831//20572 21835//20576 21833//20574 21830//20571 +f 21596//20337 21833//20574 21835//20576 21600//20341 +f 21599//20340 21834//20575 21833//20574 21596//20337 +f 21836//20577 21837//20578 21601//20342 21600//20341 +f 21838//20579 21839//20580 21837//20578 21836//20577 +f 21840//20581 21837//20578 21839//20580 21841//20582 +f 21603//20344 21601//20342 21837//20578 21840//20581 +f 21840//20581 21842//20583 21607//20348 21603//20344 +f 21841//20582 21843//20584 21842//20583 21840//20581 +f 21844//20585 21842//20583 21843//20584 21845//20586 +f 21609//20350 21607//20348 21842//20583 21844//20585 +f 21844//20585 21846//20587 21613//20354 21609//20350 +f 21845//20586 21847//20588 21846//20587 21844//20585 +f 21848//20589 21846//20587 21847//20588 21849//20590 +f 21615//20356 21613//20354 21846//20587 21848//20589 +f 21848//20589 21850//20591 21619//20360 21615//20356 +f 21849//20590 21851//20592 21850//20591 21848//20589 +f 21852//20593 21850//20591 21851//20592 21853//20594 +f 21621//20362 21619//20360 21850//20591 21852//20593 +f 21852//20593 21854//20595 21625//20366 21621//20362 +f 21853//20594 21855//20596 21854//20595 21852//20593 +f 21856//20597 21854//20595 21855//20596 21857//20598 +f 21627//20368 21625//20366 21854//20595 21856//20597 +f 21856//20597 21858//20599 21631//20372 21627//20368 +f 21857//20598 21859//20600 21858//20599 21856//20597 +f 21860//20601 21858//20599 21859//20600 21861//20602 +f 21633//20374 21631//20372 21858//20599 21860//20601 +f 21860//20601 21862//20603 21637//20378 21633//20374 +f 21861//20602 21863//20604 21862//20603 21860//20601 +f 21864//20605 21862//20603 21863//20604 21865//20606 +f 21639//20380 21637//20378 21862//20603 21864//20605 +f 21864//20605 21866//20607 21643//20384 21639//20380 +f 21865//20606 21867//20608 21866//20607 21864//20605 +f 21868//20609 21866//20607 21867//20608 21869//20610 +f 21645//20386 21643//20384 21866//20607 21868//20609 +f 21868//20609 21870//20611 21649//20390 21645//20386 +f 21869//20610 21871//20612 21870//20611 21868//20609 +f 21872//20613 21870//20611 21871//20612 21873//20614 +f 21651//20392 21649//20390 21870//20611 21872//20613 +f 21872//20613 21874//20615 21655//20396 21651//20392 +f 21873//20614 21875//20616 21874//20615 21872//20613 +f 21876//20617 21874//20615 21875//20616 21877//20618 +f 21657//20398 21655//20396 21874//20615 21876//20617 +f 21876//20617 21878//20619 21661//20402 21657//20398 +f 21877//20618 21879//20620 21878//20619 21876//20617 +f 21880//20621 21878//20619 21879//20620 21881//20622 +f 21663//20404 21661//20402 21878//20619 21880//20621 +f 21880//20621 21882//20623 21667//20408 21663//20404 +f 21881//20622 21883//20624 21882//20623 21880//20621 +f 21884//20625 21882//20623 21883//20624 21885//20626 +f 21669//20410 21667//20408 21882//20623 21884//20625 +f 21884//20625 21886//20627 21673//20414 21669//20410 +f 21885//20626 21887//20628 21886//20627 21884//20625 +f 21888//20629 21886//20627 21887//20628 21889//20630 +f 21675//20416 21673//20414 21886//20627 21888//20629 +f 21888//20629 21890//20631 21679//20420 21675//20416 +f 21889//20630 21891//20632 21890//20631 21888//20629 +f 21892//20633 21890//20631 21891//20632 21893//20634 +f 21681//20422 21679//20420 21890//20631 21892//20633 +f 21892//20633 21894//20635 21685//20426 21681//20422 +f 21893//20634 21895//20636 21894//20635 21892//20633 +f 21896//20637 21894//20635 21895//20636 21897//20638 +f 21687//20428 21685//20426 21894//20635 21896//20637 +f 21896//20637 21898//20639 21691//20432 21687//20428 +f 21897//20638 21899//20640 21898//20639 21896//20637 +f 21900//20641 21898//20639 21899//20640 21901//20642 +f 21693//20434 21691//20432 21898//20639 21900//20641 +f 21900//20641 21902//20643 21697//20438 21693//20434 +f 21901//20642 21903//20644 21902//20643 21900//20641 +f 21904//20645 21902//20643 21903//20644 21905//20646 +f 21699//20440 21697//20438 21902//20643 21904//20645 +f 21904//20645 21906//20647 21703//20444 21699//20440 +f 21905//20646 21907//20648 21906//20647 21904//20645 +f 21908//20649 21906//20647 21907//20648 21909//20650 +f 21705//20446 21703//20444 21906//20647 21908//20649 +f 21908//20649 21910//20651 21709//20450 21705//20446 +f 21909//20650 21911//20652 21910//20651 21908//20649 +f 21912//20653 21910//20651 21911//20652 21913//20654 +f 21711//20452 21709//20450 21910//20651 21912//20653 +f 21912//20653 21914//20655 21715//20456 21711//20452 +f 21913//20654 21915//20656 21914//20655 21912//20653 +f 21916//20657 21914//20655 21915//20656 21917//20658 +f 21717//20458 21715//20456 21914//20655 21916//20657 +f 21916//20657 21918//20659 21721//20462 21717//20458 +f 21917//20658 21919//20660 21918//20659 21916//20657 +f 21920//20661 21918//20659 21919//20660 21921//20662 +f 21723//20464 21721//20462 21918//20659 21920//20661 +f 21920//20661 21922//20663 21727//20468 21723//20464 +f 21921//20662 21923//20664 21922//20663 21920//20661 +f 21924//20665 21922//20663 21923//20664 21925//20666 +f 21729//20470 21727//20468 21922//20663 21924//20665 +f 21924//20665 21926//20667 21733//20474 21729//20470 +f 21925//20666 21927//20668 21926//20667 21924//20665 +f 21928//20669 21926//20667 21927//20668 21929//20670 +f 21735//20476 21733//20474 21926//20667 21928//20669 +f 21928//20669 21930//20671 21739//20480 21735//20476 +f 21929//20670 21931//20672 21930//20671 21928//20669 +f 21932//20673 21930//20671 21931//20672 21933//20674 +f 21741//20482 21739//20480 21930//20671 21932//20673 +f 21932//20673 21934//20675 21745//20486 21741//20482 +f 21933//20674 21935//20676 21934//20675 21932//20673 +f 21936//20677 21934//20675 21935//20676 21937//20678 +f 21747//20488 21745//20486 21934//20675 21936//20677 +f 21936//20677 21938//20679 21751//20492 21747//20488 +f 21937//20678 21939//20680 21938//20679 21936//20677 +f 21940//20681 21938//20679 21939//20680 21941//20682 +f 21753//20494 21751//20492 21938//20679 21940//20681 +f 21940//20681 21942//20683 21757//20498 21753//20494 +f 21941//20682 21943//20684 21942//20683 21940//20681 +f 21944//20685 21942//20683 21943//20684 21945//20686 +f 21759//20500 21757//20498 21942//20683 21944//20685 +f 21944//20685 21946//20687 21763//20504 21759//20500 +f 21945//20686 21947//20688 21946//20687 21944//20685 +f 21948//20689 21946//20687 21947//20688 21949//20690 +f 21765//20506 21763//20504 21946//20687 21948//20689 +f 21948//20689 21950//20691 21769//20510 21765//20506 +f 21949//20690 21951//20692 21950//20691 21948//20689 +f 21952//20693 21950//20691 21951//20692 21953//20694 +f 21771//20512 21769//20510 21950//20691 21952//20693 +f 21952//20693 21954//20695 21775//20516 21771//20512 +f 21953//20694 21955//20696 21954//20695 21952//20693 +f 21956//20697 21954//20695 21955//20696 21957//20698 +f 21777//20518 21775//20516 21954//20695 21956//20697 +f 21956//20697 21958//20699 21781//20522 21777//20518 +f 21957//20698 21959//20700 21958//20699 21956//20697 +f 21960//20701 21958//20699 21959//20700 21961//20702 +f 21783//20524 21781//20522 21958//20699 21960//20701 +f 21960//20701 21962//20703 21787//20528 21783//20524 +f 21961//20702 21963//20704 21962//20703 21960//20701 +f 21964//20705 21962//20703 21963//20704 21965//20706 +f 21789//20530 21787//20528 21962//20703 21964//20705 +f 21964//20705 21966//20707 21793//20534 21789//20530 +f 21965//20706 21967//20708 21966//20707 21964//20705 +f 21968//20709 21966//20707 21967//20708 21969//20710 +f 21795//20536 21793//20534 21966//20707 21968//20709 +f 21968//20709 21970//20711 21799//20540 21795//20536 +f 21969//20710 21971//20712 21970//20711 21968//20709 +f 21972//20713 21970//20711 21971//20712 21973//20714 +f 21801//20542 21799//20540 21970//20711 21972//20713 +f 21972//20713 21974//20715 21805//20546 21801//20542 +f 21973//20714 21975//20716 21974//20715 21972//20713 +f 21976//20717 21974//20715 21975//20716 21977//20718 +f 21807//20548 21805//20546 21974//20715 21976//20717 +f 21976//20717 21978//20719 21811//20552 21807//20548 +f 21977//20718 21979//20720 21978//20719 21976//20717 +f 21980//20721 21978//20719 21979//20720 21981//20722 +f 21813//20554 21811//20552 21978//20719 21980//20721 +f 21980//20721 21982//20723 21817//20558 21813//20554 +f 21981//20722 21983//20724 21982//20723 21980//20721 +f 21984//20725 21982//20723 21983//20724 21985//20726 +f 21819//20560 21817//20558 21982//20723 21984//20725 +f 21984//20725 21986//20727 21823//20564 21819//20560 +f 21985//20726 21987//20728 21986//20727 21984//20725 +f 21988//20729 21986//20727 21987//20728 21989//20730 +f 21825//20566 21823//20564 21986//20727 21988//20729 +f 21988//20729 21990//20731 21829//20570 21825//20566 +f 21989//20730 21991//20732 21990//20731 21988//20729 +f 21992//20733 21990//20731 21991//20732 21993//20734 +f 21831//20572 21829//20570 21990//20731 21992//20733 +f 21992//20733 21994//20735 21835//20576 21831//20572 +f 21993//20734 21995//20736 21994//20735 21992//20733 +f 21836//20577 21994//20735 21995//20736 21838//20579 +f 21600//20341 21835//20576 21994//20735 21836//20577 +f 21996//20737 21997//20738 21362//20101 21363//20102 +f 21599//20340 21598//20339 21997//20738 21996//20737 +f 21998//20739 21997//20738 21598//20339 21604//20345 +f 21364//20103 21362//20101 21997//20738 21998//20739 +f 21998//20739 21999//20740 21369//20110 21364//20103 +f 21604//20345 21606//20347 21999//20740 21998//20739 +f 22000//20741 21999//20740 21606//20347 21610//20351 +f 21370//20111 21369//20110 21999//20740 22000//20741 +f 22000//20741 22001//20742 21375//20116 21370//20111 +f 21610//20351 21612//20353 22001//20742 22000//20741 +f 22002//20743 22001//20742 21612//20353 21616//20357 +f 21376//20117 21375//20116 22001//20742 22002//20743 +f 22002//20743 22003//20744 21381//20122 21376//20117 +f 21616//20357 21618//20359 22003//20744 22002//20743 +f 22004//20745 22003//20744 21618//20359 21622//20363 +f 21382//20123 21381//20122 22003//20744 22004//20745 +f 22004//20745 22005//20746 21387//20128 21382//20123 +f 21622//20363 21624//20365 22005//20746 22004//20745 +f 22006//20747 22005//20746 21624//20365 21628//20369 +f 21388//20129 21387//20128 22005//20746 22006//20747 +f 22006//20747 22007//20748 21393//20134 21388//20129 +f 21628//20369 21630//20371 22007//20748 22006//20747 +f 22008//20749 22007//20748 21630//20371 21634//20375 +f 21394//20135 21393//20134 22007//20748 22008//20749 +f 22008//20749 22009//20750 21399//20140 21394//20135 +f 21634//20375 21636//20377 22009//20750 22008//20749 +f 22010//20751 22009//20750 21636//20377 21640//20381 +f 21400//20141 21399//20140 22009//20750 22010//20751 +f 22010//20751 22011//20752 21405//20146 21400//20141 +f 21640//20381 21642//20383 22011//20752 22010//20751 +f 22012//20753 22011//20752 21642//20383 21646//20387 +f 21406//20147 21405//20146 22011//20752 22012//20753 +f 22012//20753 22013//20754 21411//20152 21406//20147 +f 21646//20387 21648//20389 22013//20754 22012//20753 +f 22014//20755 22013//20754 21648//20389 21652//20393 +f 21412//20153 21411//20152 22013//20754 22014//20755 +f 22014//20755 22015//20756 21417//20158 21412//20153 +f 21652//20393 21654//20395 22015//20756 22014//20755 +f 22016//20757 22015//20756 21654//20395 21658//20399 +f 21418//20159 21417//20158 22015//20756 22016//20757 +f 22016//20757 22017//20758 21423//20164 21418//20159 +f 21658//20399 21660//20401 22017//20758 22016//20757 +f 22018//20759 22017//20758 21660//20401 21664//20405 +f 21424//20165 21423//20164 22017//20758 22018//20759 +f 22018//20759 22019//20760 21429//20170 21424//20165 +f 21664//20405 21666//20407 22019//20760 22018//20759 +f 22020//20761 22019//20760 21666//20407 21670//20411 +f 21430//20171 21429//20170 22019//20760 22020//20761 +f 22020//20761 22021//20762 21435//20176 21430//20171 +f 21670//20411 21672//20413 22021//20762 22020//20761 +f 22022//20763 22021//20762 21672//20413 21676//20417 +f 21436//20177 21435//20176 22021//20762 22022//20763 +f 22022//20763 22023//20764 21441//20182 21436//20177 +f 21676//20417 21678//20419 22023//20764 22022//20763 +f 22024//20765 22023//20764 21678//20419 21682//20423 +f 21442//20183 21441//20182 22023//20764 22024//20765 +f 22024//20765 22025//20766 21447//20188 21442//20183 +f 21682//20423 21684//20425 22025//20766 22024//20765 +f 22026//20767 22025//20766 21684//20425 21688//20429 +f 21448//20189 21447//20188 22025//20766 22026//20767 +f 22026//20767 22027//20768 21453//20194 21448//20189 +f 21688//20429 21690//20431 22027//20768 22026//20767 +f 22028//20769 22027//20768 21690//20431 21694//20435 +f 21454//20195 21453//20194 22027//20768 22028//20769 +f 22028//20769 22029//20770 21459//20200 21454//20195 +f 21694//20435 21696//20437 22029//20770 22028//20769 +f 22030//20771 22029//20770 21696//20437 21700//20441 +f 21460//20201 21459//20200 22029//20770 22030//20771 +f 22030//20771 22031//20772 21465//20206 21460//20201 +f 21700//20441 21702//20443 22031//20772 22030//20771 +f 22032//20773 22031//20772 21702//20443 21706//20447 +f 21466//20207 21465//20206 22031//20772 22032//20773 +f 22032//20773 22033//20774 21471//20212 21466//20207 +f 21706//20447 21708//20449 22033//20774 22032//20773 +f 22034//20775 22033//20774 21708//20449 21712//20453 +f 21472//20213 21471//20212 22033//20774 22034//20775 +f 22034//20775 22035//20776 21477//20218 21472//20213 +f 21712//20453 21714//20455 22035//20776 22034//20775 +f 22036//20777 22035//20776 21714//20455 21718//20459 +f 21478//20219 21477//20218 22035//20776 22036//20777 +f 22036//20777 22037//20778 21483//20224 21478//20219 +f 21718//20459 21720//20461 22037//20778 22036//20777 +f 22038//20779 22037//20778 21720//20461 21724//20465 +f 21484//20225 21483//20224 22037//20778 22038//20779 +f 22038//20779 22039//20780 21489//20230 21484//20225 +f 21724//20465 21726//20467 22039//20780 22038//20779 +f 22040//20781 22039//20780 21726//20467 21730//20471 +f 21490//20231 21489//20230 22039//20780 22040//20781 +f 22040//20781 22041//20782 21495//20236 21490//20231 +f 21730//20471 21732//20473 22041//20782 22040//20781 +f 22042//20783 22041//20782 21732//20473 21736//20477 +f 21496//20237 21495//20236 22041//20782 22042//20783 +f 22042//20783 22043//20784 21501//20242 21496//20237 +f 21736//20477 21738//20479 22043//20784 22042//20783 +f 22044//20785 22043//20784 21738//20479 21742//20483 +f 21502//20243 21501//20242 22043//20784 22044//20785 +f 22044//20785 22045//20786 21507//20248 21502//20243 +f 21742//20483 21744//20485 22045//20786 22044//20785 +f 22046//20787 22045//20786 21744//20485 21748//20489 +f 21508//20249 21507//20248 22045//20786 22046//20787 +f 22046//20787 22047//20788 21513//20254 21508//20249 +f 21748//20489 21750//20491 22047//20788 22046//20787 +f 22048//20789 22047//20788 21750//20491 21754//20495 +f 21514//20255 21513//20254 22047//20788 22048//20789 +f 22048//20789 22049//20790 21519//20260 21514//20255 +f 21754//20495 21756//20497 22049//20790 22048//20789 +f 22050//20791 22049//20790 21756//20497 21760//20501 +f 21520//20261 21519//20260 22049//20790 22050//20791 +f 22050//20791 22051//20792 21525//20266 21520//20261 +f 21760//20501 21762//20503 22051//20792 22050//20791 +f 22052//20793 22051//20792 21762//20503 21766//20507 +f 21526//20267 21525//20266 22051//20792 22052//20793 +f 22052//20793 22053//20794 21531//20272 21526//20267 +f 21766//20507 21768//20509 22053//20794 22052//20793 +f 22054//20795 22053//20794 21768//20509 21772//20513 +f 21532//20273 21531//20272 22053//20794 22054//20795 +f 22054//20795 22055//20796 21537//20278 21532//20273 +f 21772//20513 21774//20515 22055//20796 22054//20795 +f 22056//20797 22055//20796 21774//20515 21778//20519 +f 21538//20279 21537//20278 22055//20796 22056//20797 +f 22056//20797 22057//20798 21543//20284 21538//20279 +f 21778//20519 21780//20521 22057//20798 22056//20797 +f 22058//20799 22057//20798 21780//20521 21784//20525 +f 21544//20285 21543//20284 22057//20798 22058//20799 +f 22058//20799 22059//20800 21549//20290 21544//20285 +f 21784//20525 21786//20527 22059//20800 22058//20799 +f 22060//20801 22059//20800 21786//20527 21790//20531 +f 21550//20291 21549//20290 22059//20800 22060//20801 +f 22060//20801 22061//20802 21555//20296 21550//20291 +f 21790//20531 21792//20533 22061//20802 22060//20801 +f 22062//20803 22061//20802 21792//20533 21796//20537 +f 21556//20297 21555//20296 22061//20802 22062//20803 +f 22062//20803 22063//20804 21561//20302 21556//20297 +f 21796//20537 21798//20539 22063//20804 22062//20803 +f 22064//20805 22063//20804 21798//20539 21802//20543 +f 21562//20303 21561//20302 22063//20804 22064//20805 +f 22064//20805 22065//20806 21567//20308 21562//20303 +f 21802//20543 21804//20545 22065//20806 22064//20805 +f 22066//20807 22065//20806 21804//20545 21808//20549 +f 21568//20309 21567//20308 22065//20806 22066//20807 +f 22066//20807 22067//20808 21573//20314 21568//20309 +f 21808//20549 21810//20551 22067//20808 22066//20807 +f 22068//20809 22067//20808 21810//20551 21814//20555 +f 21574//20315 21573//20314 22067//20808 22068//20809 +f 22068//20809 22069//20810 21579//20320 21574//20315 +f 21814//20555 21816//20557 22069//20810 22068//20809 +f 22070//20811 22069//20810 21816//20557 21820//20561 +f 21580//20321 21579//20320 22069//20810 22070//20811 +f 22070//20811 22071//20812 21585//20326 21580//20321 +f 21820//20561 21822//20563 22071//20812 22070//20811 +f 22072//20813 22071//20812 21822//20563 21826//20567 +f 21586//20327 21585//20326 22071//20812 22072//20813 +f 22072//20813 22073//20814 21591//20332 21586//20327 +f 21826//20567 21828//20569 22073//20814 22072//20813 +f 22074//20815 22073//20814 21828//20569 21832//20573 +f 21592//20333 21591//20332 22073//20814 22074//20815 +f 22074//20815 22075//20816 21595//20336 21592//20333 +f 21832//20573 21834//20575 22075//20816 22074//20815 +f 21996//20737 22075//20816 21834//20575 21599//20340 +f 21363//20102 21595//20336 22075//20816 21996//20737 +f 22076//20817 22077//20818 22078//20819 22079//20820 +f 22080//20821 22076//20817 22079//20820 22081//20822 +f 22082//20823 22083//20824 22081//20822 22079//20820 +f 22084//20825 22082//20823 22079//20820 22078//20819 +f 22085//20826 22086//20827 22087//20828 22088//20829 +f 22077//20818 22085//20826 22088//20829 22078//20819 +f 22089//20830 22084//20825 22078//20819 22088//20829 +f 22090//20831 22089//20830 22088//20829 22087//20828 +f 22091//20832 22092//20833 22093//20834 22094//20835 +f 22086//20827 22091//20832 22094//20835 22087//20828 +f 22095//20836 22090//20831 22087//20828 22094//20835 +f 22096//20837 22095//20836 22094//20835 22093//20834 +f 22097//20838 22098//20839 22099//20840 22100//20841 +f 22092//20833 22097//20838 22100//20841 22093//20834 +f 22101//20842 22096//20837 22093//20834 22100//20841 +f 22102//20843 22101//20842 22100//20841 22099//20840 +f 22103//20844 22104//20845 22105//20846 22106//20847 +f 22098//20839 22103//20844 22106//20847 22099//20840 +f 22107//20848 22102//20843 22099//20840 22106//20847 +f 22108//20849 22107//20848 22106//20847 22105//20846 +f 22109//20850 22110//20851 22111//20852 22112//20853 +f 22104//20845 22109//20850 22112//20853 22105//20846 +f 22113//20854 22108//20849 22105//20846 22112//20853 +f 22114//20855 22113//20854 22112//20853 22111//20852 +f 22115//20856 22116//20857 22117//20858 22118//20859 +f 22110//20851 22115//20856 22118//20859 22111//20852 +f 22119//20860 22114//20855 22111//20852 22118//20859 +f 22120//20861 22119//20860 22118//20859 22117//20858 +f 22121//20862 22122//20863 22123//20864 22124//20865 +f 22116//20857 22121//20862 22124//20865 22117//20858 +f 22125//20866 22120//20861 22117//20858 22124//20865 +f 22126//20867 22125//20866 22124//20865 22123//20864 +f 22127//20868 22128//20869 22129//20870 22130//20871 +f 22122//20863 22127//20868 22130//20871 22123//20864 +f 22131//20872 22126//20867 22123//20864 22130//20871 +f 22132//20873 22131//20872 22130//20871 22129//20870 +f 22133//20874 22134//20875 22135//20876 22136//20877 +f 22128//20869 22133//20874 22136//20877 22129//20870 +f 22137//20878 22132//20873 22129//20870 22136//20877 +f 22138//20879 22137//20878 22136//20877 22135//20876 +f 22139//20880 22140//20881 22141//20882 22142//20883 +f 22134//20875 22139//20880 22142//20883 22135//20876 +f 22143//20884 22138//20879 22135//20876 22142//20883 +f 22144//20885 22143//20884 22142//20883 22141//20882 +f 22145//20886 22146//20887 22147//20888 22148//20889 +f 22140//20881 22145//20886 22148//20889 22141//20882 +f 22149//20890 22144//20885 22141//20882 22148//20889 +f 22150//20891 22149//20890 22148//20889 22147//20888 +f 22151//20892 22152//20893 22153//20894 22154//20895 +f 22146//20887 22151//20892 22154//20895 22147//20888 +f 22155//20896 22150//20891 22147//20888 22154//20895 +f 22156//20897 22155//20896 22154//20895 22153//20894 +f 22157//20898 22158//20899 22159//20900 22160//20901 +f 22152//20893 22157//20898 22160//20901 22153//20894 +f 22161//20902 22156//20897 22153//20894 22160//20901 +f 22162//20903 22161//20902 22160//20901 22159//20900 +f 22163//20904 22164//20905 22165//20906 22166//20907 +f 22158//20899 22163//20904 22166//20907 22159//20900 +f 22167//20908 22162//20903 22159//20900 22166//20907 +f 22168//20909 22167//20908 22166//20907 22165//20906 +f 22169//20910 22170//20911 22171//20912 22172//20913 +f 22164//20905 22169//20910 22172//20913 22165//20906 +f 22173//20914 22168//20909 22165//20906 22172//20913 +f 22174//20915 22173//20914 22172//20913 22171//20912 +f 22175//20916 22176//20917 22177//20918 22178//20919 +f 22170//20911 22175//20916 22178//20919 22171//20912 +f 22179//20920 22174//20915 22171//20912 22178//20919 +f 22180//20921 22179//20920 22178//20919 22177//20918 +f 22181//20922 22182//20923 22183//20924 22184//20925 +f 22176//20917 22181//20922 22184//20925 22177//20918 +f 22185//20926 22180//20921 22177//20918 22184//20925 +f 22186//20927 22185//20926 22184//20925 22183//20924 +f 22187//20928 22188//20929 22189//20930 22190//20931 +f 22182//20923 22187//20928 22190//20931 22183//20924 +f 22191//20932 22186//20927 22183//20924 22190//20931 +f 22192//20933 22191//20932 22190//20931 22189//20930 +f 22193//20934 22194//20935 22195//20936 22196//20937 +f 22188//20929 22193//20934 22196//20937 22189//20930 +f 22197//20938 22192//20933 22189//20930 22196//20937 +f 22198//20939 22197//20938 22196//20937 22195//20936 +f 22199//20940 22200//20941 22201//20942 22202//20943 +f 22194//20935 22199//20940 22202//20943 22195//20936 +f 22203//20944 22198//20939 22195//20936 22202//20943 +f 22204//20945 22203//20944 22202//20943 22201//20942 +f 22205//20946 22206//20947 22207//20948 22208//20949 +f 22200//20941 22205//20946 22208//20949 22201//20942 +f 22209//20950 22204//20945 22201//20942 22208//20949 +f 22210//20951 22209//20950 22208//20949 22207//20948 +f 22211//20952 22212//20953 22213//20954 22214//20955 +f 22206//20947 22211//20952 22214//20955 22207//20948 +f 22215//20956 22210//20951 22207//20948 22214//20955 +f 22216//20957 22215//20956 22214//20955 22213//20954 +f 22217//20958 22218//20959 22219//20960 22220//20961 +f 22212//20953 22217//20958 22220//20961 22213//20954 +f 22221//20962 22216//20957 22213//20954 22220//20961 +f 22222//20963 22221//20962 22220//20961 22219//20960 +f 22223//20964 22224//20965 22225//20966 22226//20967 +f 22218//20959 22223//20964 22226//20967 22219//20960 +f 22227//20968 22222//20963 22219//20960 22226//20967 +f 22228//20969 22227//20968 22226//20967 22225//20966 +f 22229//20970 22230//20971 22231//20972 22232//20973 +f 22224//20965 22229//20970 22232//20973 22225//20966 +f 22233//20974 22228//20969 22225//20966 22232//20973 +f 22234//20975 22233//20974 22232//20973 22231//20972 +f 22235//20976 22236//20977 22237//20978 22238//20979 +f 22230//20971 22235//20976 22238//20979 22231//20972 +f 22239//20980 22234//20975 22231//20972 22238//20979 +f 22240//20981 22239//20980 22238//20979 22237//20978 +f 22241//20982 22242//20983 22243//20984 22244//20985 +f 22236//20977 22241//20982 22244//20985 22237//20978 +f 22245//20986 22240//20981 22237//20978 22244//20985 +f 22246//20987 22245//20986 22244//20985 22243//20984 +f 22247//20988 22248//20989 22249//20990 22250//20991 +f 22242//20983 22247//20988 22250//20991 22243//20984 +f 22251//20992 22246//20987 22243//20984 22250//20991 +f 22252//20993 22251//20992 22250//20991 22249//20990 +f 22253//20994 22254//20995 22255//20996 22256//20997 +f 22248//20989 22253//20994 22256//20997 22249//20990 +f 22257//20998 22252//20993 22249//20990 22256//20997 +f 22258//20999 22257//20998 22256//20997 22255//20996 +f 22259//21000 22260//21001 22261//21002 22262//21003 +f 22254//20995 22259//21000 22262//21003 22255//20996 +f 22263//21004 22258//20999 22255//20996 22262//21003 +f 22264//21005 22263//21004 22262//21003 22261//21002 +f 22265//21006 22266//21007 22267//21008 22268//21009 +f 22260//21001 22265//21006 22268//21009 22261//21002 +f 22269//21010 22264//21005 22261//21002 22268//21009 +f 22270//21011 22269//21010 22268//21009 22267//21008 +f 22271//21012 22272//21013 22273//21014 22274//21015 +f 22266//21007 22271//21012 22274//21015 22267//21008 +f 22275//21016 22270//21011 22267//21008 22274//21015 +f 22276//21017 22275//21016 22274//21015 22273//21014 +f 22277//21018 22278//21019 22279//21020 22280//21021 +f 22272//21013 22277//21018 22280//21021 22273//21014 +f 22281//21022 22276//21017 22273//21014 22280//21021 +f 22282//21023 22281//21022 22280//21021 22279//21020 +f 22283//21024 22284//21025 22285//21026 22286//21027 +f 22278//21019 22283//21024 22286//21027 22279//21020 +f 22287//21028 22282//21023 22279//21020 22286//21027 +f 22288//21029 22287//21028 22286//21027 22285//21026 +f 22289//21030 22290//21031 22291//21032 22292//21033 +f 22284//21025 22289//21030 22292//21033 22285//21026 +f 22293//21034 22288//21029 22285//21026 22292//21033 +f 22294//21035 22293//21034 22292//21033 22291//21032 +f 22295//21036 22296//21037 22297//21038 22298//21039 +f 22290//21031 22295//21036 22298//21039 22291//21032 +f 22299//21040 22294//21035 22291//21032 22298//21039 +f 22300//21041 22299//21040 22298//21039 22297//21038 +f 22301//21042 22302//21043 22303//21044 22304//21045 +f 22296//21037 22301//21042 22304//21045 22297//21038 +f 22305//21046 22300//21041 22297//21038 22304//21045 +f 22306//21047 22305//21046 22304//21045 22303//21044 +f 22307//21048 22308//21049 22309//21050 22310//21051 +f 22302//21043 22307//21048 22310//21051 22303//21044 +f 22311//21052 22306//21047 22303//21044 22310//21051 +f 22312//21053 22311//21052 22310//21051 22309//21050 +f 22313//21054 22080//20821 22081//20822 22314//21055 +f 22308//21049 22313//21054 22314//21055 22309//21050 +f 22315//21056 22312//21053 22309//21050 22314//21055 +f 22083//20824 22315//21056 22314//21055 22081//20822 +f 22316//21057 22317//21058 22318//21059 22319//21060 +f 22320//21061 22316//21057 22319//21060 22321//21062 +f 22322//21063 22323//21064 22321//21062 22319//21060 +f 22324//21065 22322//21063 22319//21060 22318//21059 +f 22322//21063 22324//21065 22325//21066 22326//21067 +f 22323//21064 22322//21063 22326//21067 22327//21068 +f 22328//21069 22329//21070 22327//21068 22326//21067 +f 22330//21071 22328//21069 22326//21067 22325//21066 +f 22328//21069 22330//21071 22331//21072 22332//21073 +f 22329//21070 22328//21069 22332//21073 22333//21074 +f 22334//21075 22335//21076 22333//21074 22332//21073 +f 22336//21077 22334//21075 22332//21073 22331//21072 +f 22334//21075 22336//21077 22337//21078 22338//21079 +f 22335//21076 22334//21075 22338//21079 22339//21080 +f 22340//21081 22341//21082 22339//21080 22338//21079 +f 22342//21083 22340//21081 22338//21079 22337//21078 +f 22340//21081 22342//21083 22343//21084 22344//21085 +f 22341//21082 22340//21081 22344//21085 22345//21086 +f 22346//21087 22347//21088 22345//21086 22344//21085 +f 22348//21089 22346//21087 22344//21085 22343//21084 +f 22346//21087 22348//21089 22349//21090 22350//21091 +f 22347//21088 22346//21087 22350//21091 22351//21092 +f 22352//21093 22353//21094 22351//21092 22350//21091 +f 22354//21095 22352//21093 22350//21091 22349//21090 +f 22352//21093 22354//21095 22355//21096 22356//21097 +f 22353//21094 22352//21093 22356//21097 22357//21098 +f 22358//21099 22359//21100 22357//21098 22356//21097 +f 22360//21101 22358//21099 22356//21097 22355//21096 +f 22358//21099 22360//21101 22361//21102 22362//21103 +f 22359//21100 22358//21099 22362//21103 22363//21104 +f 22364//21105 22365//21106 22363//21104 22362//21103 +f 22366//21107 22364//21105 22362//21103 22361//21102 +f 22364//21105 22366//21107 22367//21108 22368//21109 +f 22365//21106 22364//21105 22368//21109 22369//21110 +f 22370//21111 22371//21112 22369//21110 22368//21109 +f 22372//21113 22370//21111 22368//21109 22367//21108 +f 22370//21111 22372//21113 22373//21114 22374//21115 +f 22371//21112 22370//21111 22374//21115 22375//21116 +f 22376//21117 22377//21118 22375//21116 22374//21115 +f 22378//21119 22376//21117 22374//21115 22373//21114 +f 22376//21117 22378//21119 22379//21120 22380//21121 +f 22377//21118 22376//21117 22380//21121 22381//21122 +f 22382//21123 22383//21124 22381//21122 22380//21121 +f 22384//21125 22382//21123 22380//21121 22379//21120 +f 22382//21123 22384//21125 22385//21126 22386//21127 +f 22383//21124 22382//21123 22386//21127 22387//21128 +f 22388//21129 22389//21130 22387//21128 22386//21127 +f 22390//21131 22388//21129 22386//21127 22385//21126 +f 22388//21129 22390//21131 22391//21132 22392//21133 +f 22389//21130 22388//21129 22392//21133 22393//21134 +f 22394//21135 22395//21136 22393//21134 22392//21133 +f 22396//21137 22394//21135 22392//21133 22391//21132 +f 22394//21135 22396//21137 22397//21138 22398//21139 +f 22395//21136 22394//21135 22398//21139 22399//21140 +f 22400//21141 22401//21142 22399//21140 22398//21139 +f 22402//21143 22400//21141 22398//21139 22397//21138 +f 22400//21141 22402//21143 22403//21144 22404//21145 +f 22401//21142 22400//21141 22404//21145 22405//21146 +f 22406//21147 22407//21148 22405//21146 22404//21145 +f 22408//21149 22406//21147 22404//21145 22403//21144 +f 22406//21147 22408//21149 22409//21150 22410//21151 +f 22407//21148 22406//21147 22410//21151 22411//21152 +f 22412//21153 22413//21154 22411//21152 22410//21151 +f 22414//21155 22412//21153 22410//21151 22409//21150 +f 22412//21153 22414//21155 22415//21156 22416//21157 +f 22413//21154 22412//21153 22416//21157 22417//21158 +f 22418//21159 22419//21160 22417//21158 22416//21157 +f 22420//21161 22418//21159 22416//21157 22415//21156 +f 22418//21159 22420//21161 22421//21162 22422//21163 +f 22419//21160 22418//21159 22422//21163 22423//21164 +f 22424//21165 22425//21166 22423//21164 22422//21163 +f 22426//21167 22424//21165 22422//21163 22421//21162 +f 22424//21165 22426//21167 22427//21168 22428//21169 +f 22425//21166 22424//21165 22428//21169 22429//21170 +f 22430//21171 22431//21172 22429//21170 22428//21169 +f 22432//21173 22430//21171 22428//21169 22427//21168 +f 22430//21171 22432//21173 22433//21174 22434//21175 +f 22431//21172 22430//21171 22434//21175 22435//21176 +f 22436//21177 22437//21178 22435//21176 22434//21175 +f 22438//21179 22436//21177 22434//21175 22433//21174 +f 22436//21177 22438//21179 22439//21180 22440//21181 +f 22437//21178 22436//21177 22440//21181 22441//21182 +f 22442//21183 22443//21184 22441//21182 22440//21181 +f 22444//21185 22442//21183 22440//21181 22439//21180 +f 22442//21183 22444//21185 22445//21186 22446//21187 +f 22443//21184 22442//21183 22446//21187 22447//21188 +f 22448//21189 22449//21190 22447//21188 22446//21187 +f 22450//21191 22448//21189 22446//21187 22445//21186 +f 22448//21189 22450//21191 22451//21192 22452//21193 +f 22449//21190 22448//21189 22452//21193 22453//21194 +f 22454//21195 22455//21196 22453//21194 22452//21193 +f 22456//21197 22454//21195 22452//21193 22451//21192 +f 22454//21195 22456//21197 22457//21198 22458//21199 +f 22455//21196 22454//21195 22458//21199 22459//21200 +f 22460//21201 22461//21202 22459//21200 22458//21199 +f 22462//21203 22460//21201 22458//21199 22457//21198 +f 22460//21201 22462//21203 22463//21204 22464//21205 +f 22461//21202 22460//21201 22464//21205 22465//21206 +f 22466//21207 22467//21208 22465//21206 22464//21205 +f 22468//21209 22466//21207 22464//21205 22463//21204 +f 22466//21207 22468//21209 22469//21210 22470//21211 +f 22467//21208 22466//21207 22470//21211 22471//21212 +f 22472//21213 22473//21214 22471//21212 22470//21211 +f 22474//21215 22472//21213 22470//21211 22469//21210 +f 22472//21213 22474//21215 22475//21216 22476//21217 +f 22473//21214 22472//21213 22476//21217 22477//21218 +f 22478//21219 22479//21220 22477//21218 22476//21217 +f 22480//21221 22478//21219 22476//21217 22475//21216 +f 22478//21219 22480//21221 22481//21222 22482//21223 +f 22479//21220 22478//21219 22482//21223 22483//21224 +f 22484//21225 22485//21226 22483//21224 22482//21223 +f 22486//21227 22484//21225 22482//21223 22481//21222 +f 22484//21225 22486//21227 22487//21228 22488//21229 +f 22485//21226 22484//21225 22488//21229 22489//21230 +f 22490//21231 22491//21232 22489//21230 22488//21229 +f 22492//21233 22490//21231 22488//21229 22487//21228 +f 22490//21231 22492//21233 22493//21234 22494//21235 +f 22491//21232 22490//21231 22494//21235 22495//21236 +f 22496//21237 22497//21238 22495//21236 22494//21235 +f 22498//21239 22496//21237 22494//21235 22493//21234 +f 22496//21237 22498//21239 22499//21240 22500//21241 +f 22497//21238 22496//21237 22500//21241 22501//21242 +f 22502//21243 22503//21244 22501//21242 22500//21241 +f 22504//21245 22502//21243 22500//21241 22499//21240 +f 22502//21243 22504//21245 22505//21246 22506//21247 +f 22503//21244 22502//21243 22506//21247 22507//21248 +f 22508//21249 22509//21250 22507//21248 22506//21247 +f 22510//21251 22508//21249 22506//21247 22505//21246 +f 22508//21249 22510//21251 22511//21252 22512//21253 +f 22509//21250 22508//21249 22512//21253 22513//21254 +f 22514//21255 22515//21256 22513//21254 22512//21253 +f 22516//21257 22514//21255 22512//21253 22511//21252 +f 22514//21255 22516//21257 22517//21258 22518//21259 +f 22515//21256 22514//21255 22518//21259 22519//21260 +f 22520//21261 22521//21262 22519//21260 22518//21259 +f 22522//21263 22520//21261 22518//21259 22517//21258 +f 22520//21261 22522//21263 22523//21264 22524//21265 +f 22521//21262 22520//21261 22524//21265 22525//21266 +f 22526//21267 22527//21268 22525//21266 22524//21265 +f 22528//21269 22526//21267 22524//21265 22523//21264 +f 22526//21267 22528//21269 22529//21270 22530//21271 +f 22527//21268 22526//21267 22530//21271 22531//21272 +f 22532//21273 22533//21274 22531//21272 22530//21271 +f 22534//21275 22532//21273 22530//21271 22529//21270 +f 22532//21273 22534//21275 22535//21276 22536//21277 +f 22533//21274 22532//21273 22536//21277 22537//21278 +f 22538//21279 22539//21280 22537//21278 22536//21277 +f 22540//21281 22538//21279 22536//21277 22535//21276 +f 22538//21279 22540//21281 22541//21282 22542//21283 +f 22539//21280 22538//21279 22542//21283 22543//21284 +f 22544//21285 22545//21286 22543//21284 22542//21283 +f 22546//21287 22544//21285 22542//21283 22541//21282 +f 22544//21285 22546//21287 22547//21288 22548//21289 +f 22545//21286 22544//21285 22548//21289 22549//21290 +f 22550//21291 22551//21292 22549//21290 22548//21289 +f 22552//21293 22550//21291 22548//21289 22547//21288 +f 22550//21291 22552//21293 22553//21294 22554//21295 +f 22551//21292 22550//21291 22554//21295 22555//21296 +f 22316//21057 22320//21061 22555//21296 22554//21295 +f 22317//21058 22316//21057 22554//21295 22553//21294 +f 22556//21297 22320//21061 22321//21062 22557//21298 +f 22558//21299 22556//21297 22557//21298 22559//21300 +f 22560//21301 22561//21302 22559//21300 22557//21298 +f 22323//21064 22560//21301 22557//21298 22321//21062 +f 22560//21301 22323//21064 22327//21068 22562//21303 +f 22561//21302 22560//21301 22562//21303 22563//21304 +f 22564//21305 22565//21306 22563//21304 22562//21303 +f 22329//21070 22564//21305 22562//21303 22327//21068 +f 22564//21305 22329//21070 22333//21074 22566//21307 +f 22565//21306 22564//21305 22566//21307 22567//21308 +f 22568//21309 22569//21310 22567//21308 22566//21307 +f 22335//21076 22568//21309 22566//21307 22333//21074 +f 22568//21309 22335//21076 22339//21080 22570//21311 +f 22569//21310 22568//21309 22570//21311 22571//21312 +f 22572//21313 22573//21314 22571//21312 22570//21311 +f 22341//21082 22572//21313 22570//21311 22339//21080 +f 22572//21313 22341//21082 22345//21086 22574//21315 +f 22573//21314 22572//21313 22574//21315 22575//21316 +f 22576//21317 22577//21318 22575//21316 22574//21315 +f 22347//21088 22576//21317 22574//21315 22345//21086 +f 22576//21317 22347//21088 22351//21092 22578//21319 +f 22577//21318 22576//21317 22578//21319 22579//21320 +f 22580//21321 22581//21322 22579//21320 22578//21319 +f 22353//21094 22580//21321 22578//21319 22351//21092 +f 22580//21321 22353//21094 22357//21098 22582//21323 +f 22581//21322 22580//21321 22582//21323 22583//21324 +f 22584//21325 22585//21326 22583//21324 22582//21323 +f 22359//21100 22584//21325 22582//21323 22357//21098 +f 22584//21325 22359//21100 22363//21104 22586//21327 +f 22585//21326 22584//21325 22586//21327 22587//21328 +f 22588//21329 22589//21330 22587//21328 22586//21327 +f 22365//21106 22588//21329 22586//21327 22363//21104 +f 22588//21329 22365//21106 22369//21110 22590//21331 +f 22589//21330 22588//21329 22590//21331 22591//21332 +f 22592//21333 22593//21334 22591//21332 22590//21331 +f 22371//21112 22592//21333 22590//21331 22369//21110 +f 22592//21333 22371//21112 22375//21116 22594//21335 +f 22593//21334 22592//21333 22594//21335 22595//21336 +f 22596//21337 22597//21338 22595//21336 22594//21335 +f 22377//21118 22596//21337 22594//21335 22375//21116 +f 22596//21337 22377//21118 22381//21122 22598//21339 +f 22597//21338 22596//21337 22598//21339 22599//21340 +f 22600//21341 22601//21342 22599//21340 22598//21339 +f 22383//21124 22600//21341 22598//21339 22381//21122 +f 22600//21341 22383//21124 22387//21128 22602//21343 +f 22601//21342 22600//21341 22602//21343 22603//21344 +f 22604//21345 22605//21346 22603//21344 22602//21343 +f 22389//21130 22604//21345 22602//21343 22387//21128 +f 22604//21345 22389//21130 22393//21134 22606//21347 +f 22605//21346 22604//21345 22606//21347 22607//21348 +f 22608//21349 22609//21350 22607//21348 22606//21347 +f 22395//21136 22608//21349 22606//21347 22393//21134 +f 22608//21349 22395//21136 22399//21140 22610//21351 +f 22609//21350 22608//21349 22610//21351 22611//21352 +f 22612//21353 22613//21354 22611//21352 22610//21351 +f 22401//21142 22612//21353 22610//21351 22399//21140 +f 22612//21353 22401//21142 22405//21146 22614//21355 +f 22613//21354 22612//21353 22614//21355 22615//21356 +f 22616//21357 22617//21358 22615//21356 22614//21355 +f 22407//21148 22616//21357 22614//21355 22405//21146 +f 22616//21357 22407//21148 22411//21152 22618//21359 +f 22617//21358 22616//21357 22618//21359 22619//21360 +f 22620//21361 22621//21362 22619//21360 22618//21359 +f 22413//21154 22620//21361 22618//21359 22411//21152 +f 22620//21361 22413//21154 22417//21158 22622//21363 +f 22621//21362 22620//21361 22622//21363 22623//21364 +f 22624//21365 22625//21366 22623//21364 22622//21363 +f 22419//21160 22624//21365 22622//21363 22417//21158 +f 22624//21365 22419//21160 22423//21164 22626//21367 +f 22625//21366 22624//21365 22626//21367 22627//21368 +f 22628//21369 22629//21370 22627//21368 22626//21367 +f 22425//21166 22628//21369 22626//21367 22423//21164 +f 22628//21369 22425//21166 22429//21170 22630//21371 +f 22629//21370 22628//21369 22630//21371 22631//21372 +f 22632//21373 22633//21374 22631//21372 22630//21371 +f 22431//21172 22632//21373 22630//21371 22429//21170 +f 22632//21373 22431//21172 22435//21176 22634//21375 +f 22633//21374 22632//21373 22634//21375 22635//21376 +f 22636//21377 22637//21378 22635//21376 22634//21375 +f 22437//21178 22636//21377 22634//21375 22435//21176 +f 22636//21377 22437//21178 22441//21182 22638//21379 +f 22637//21378 22636//21377 22638//21379 22639//21380 +f 22640//21381 22641//21382 22639//21380 22638//21379 +f 22443//21184 22640//21381 22638//21379 22441//21182 +f 22640//21381 22443//21184 22447//21188 22642//21383 +f 22641//21382 22640//21381 22642//21383 22643//21384 +f 22644//21385 22645//21386 22643//21384 22642//21383 +f 22449//21190 22644//21385 22642//21383 22447//21188 +f 22644//21385 22449//21190 22453//21194 22646//21387 +f 22645//21386 22644//21385 22646//21387 22647//21388 +f 22648//21389 22649//21390 22647//21388 22646//21387 +f 22455//21196 22648//21389 22646//21387 22453//21194 +f 22648//21389 22455//21196 22459//21200 22650//21391 +f 22649//21390 22648//21389 22650//21391 22651//21392 +f 22652//21393 22653//21394 22651//21392 22650//21391 +f 22461//21202 22652//21393 22650//21391 22459//21200 +f 22652//21393 22461//21202 22465//21206 22654//21395 +f 22653//21394 22652//21393 22654//21395 22655//21396 +f 22656//21397 22657//21398 22655//21396 22654//21395 +f 22467//21208 22656//21397 22654//21395 22465//21206 +f 22656//21397 22467//21208 22471//21212 22658//21399 +f 22657//21398 22656//21397 22658//21399 22659//21400 +f 22660//21401 22661//21402 22659//21400 22658//21399 +f 22473//21214 22660//21401 22658//21399 22471//21212 +f 22660//21401 22473//21214 22477//21218 22662//21403 +f 22661//21402 22660//21401 22662//21403 22663//21404 +f 22664//21405 22665//21406 22663//21404 22662//21403 +f 22479//21220 22664//21405 22662//21403 22477//21218 +f 22664//21405 22479//21220 22483//21224 22666//21407 +f 22665//21406 22664//21405 22666//21407 22667//21408 +f 22668//21409 22669//21410 22667//21408 22666//21407 +f 22485//21226 22668//21409 22666//21407 22483//21224 +f 22668//21409 22485//21226 22489//21230 22670//21411 +f 22669//21410 22668//21409 22670//21411 22671//21412 +f 22672//21413 22673//21414 22671//21412 22670//21411 +f 22491//21232 22672//21413 22670//21411 22489//21230 +f 22672//21413 22491//21232 22495//21236 22674//21415 +f 22673//21414 22672//21413 22674//21415 22675//21416 +f 22676//21417 22677//21418 22675//21416 22674//21415 +f 22497//21238 22676//21417 22674//21415 22495//21236 +f 22676//21417 22497//21238 22501//21242 22678//21419 +f 22677//21418 22676//21417 22678//21419 22679//21420 +f 22680//21421 22681//21422 22679//21420 22678//21419 +f 22503//21244 22680//21421 22678//21419 22501//21242 +f 22680//21421 22503//21244 22507//21248 22682//21423 +f 22681//21422 22680//21421 22682//21423 22683//21424 +f 22684//21425 22685//21426 22683//21424 22682//21423 +f 22509//21250 22684//21425 22682//21423 22507//21248 +f 22684//21425 22509//21250 22513//21254 22686//21427 +f 22685//21426 22684//21425 22686//21427 22687//21428 +f 22688//21429 22689//21430 22687//21428 22686//21427 +f 22515//21256 22688//21429 22686//21427 22513//21254 +f 22688//21429 22515//21256 22519//21260 22690//21431 +f 22689//21430 22688//21429 22690//21431 22691//21432 +f 22692//21433 22693//21434 22691//21432 22690//21431 +f 22521//21262 22692//21433 22690//21431 22519//21260 +f 22692//21433 22521//21262 22525//21266 22694//21435 +f 22693//21434 22692//21433 22694//21435 22695//21436 +f 22696//21437 22697//21438 22695//21436 22694//21435 +f 22527//21268 22696//21437 22694//21435 22525//21266 +f 22696//21437 22527//21268 22531//21272 22698//21439 +f 22697//21438 22696//21437 22698//21439 22699//21440 +f 22700//21441 22701//21442 22699//21440 22698//21439 +f 22533//21274 22700//21441 22698//21439 22531//21272 +f 22700//21441 22533//21274 22537//21278 22702//21443 +f 22701//21442 22700//21441 22702//21443 22703//21444 +f 22704//21445 22705//21446 22703//21444 22702//21443 +f 22539//21280 22704//21445 22702//21443 22537//21278 +f 22704//21445 22539//21280 22543//21284 22706//21447 +f 22705//21446 22704//21445 22706//21447 22707//21448 +f 22708//21449 22709//21450 22707//21448 22706//21447 +f 22545//21286 22708//21449 22706//21447 22543//21284 +f 22708//21449 22545//21286 22549//21290 22710//21451 +f 22709//21450 22708//21449 22710//21451 22711//21452 +f 22712//21453 22713//21454 22711//21452 22710//21451 +f 22551//21292 22712//21453 22710//21451 22549//21290 +f 22712//21453 22551//21292 22555//21296 22714//21455 +f 22713//21454 22712//21453 22714//21455 22715//21456 +f 22556//21297 22558//21299 22715//21456 22714//21455 +f 22320//21061 22556//21297 22714//21455 22555//21296 +f 22716//21457 22083//20824 22082//20823 22717//21458 +f 22317//21058 22716//21457 22717//21458 22318//21059 +f 22718//21459 22324//21065 22318//21059 22717//21458 +f 22084//20825 22718//21459 22717//21458 22082//20823 +f 22718//21459 22084//20825 22089//20830 22719//21460 +f 22324//21065 22718//21459 22719//21460 22325//21066 +f 22720//21461 22330//21071 22325//21066 22719//21460 +f 22090//20831 22720//21461 22719//21460 22089//20830 +f 22720//21461 22090//20831 22095//20836 22721//21462 +f 22330//21071 22720//21461 22721//21462 22331//21072 +f 22722//21463 22336//21077 22331//21072 22721//21462 +f 22096//20837 22722//21463 22721//21462 22095//20836 +f 22722//21463 22096//20837 22101//20842 22723//21464 +f 22336//21077 22722//21463 22723//21464 22337//21078 +f 22724//21465 22342//21083 22337//21078 22723//21464 +f 22102//20843 22724//21465 22723//21464 22101//20842 +f 22724//21465 22102//20843 22107//20848 22725//21466 +f 22342//21083 22724//21465 22725//21466 22343//21084 +f 22726//21467 22348//21089 22343//21084 22725//21466 +f 22108//20849 22726//21467 22725//21466 22107//20848 +f 22726//21467 22108//20849 22113//20854 22727//21468 +f 22348//21089 22726//21467 22727//21468 22349//21090 +f 22728//21469 22354//21095 22349//21090 22727//21468 +f 22114//20855 22728//21469 22727//21468 22113//20854 +f 22728//21469 22114//20855 22119//20860 22729//21470 +f 22354//21095 22728//21469 22729//21470 22355//21096 +f 22730//21471 22360//21101 22355//21096 22729//21470 +f 22120//20861 22730//21471 22729//21470 22119//20860 +f 22730//21471 22120//20861 22125//20866 22731//21472 +f 22360//21101 22730//21471 22731//21472 22361//21102 +f 22732//21473 22366//21107 22361//21102 22731//21472 +f 22126//20867 22732//21473 22731//21472 22125//20866 +f 22732//21473 22126//20867 22131//20872 22733//21474 +f 22366//21107 22732//21473 22733//21474 22367//21108 +f 22734//21475 22372//21113 22367//21108 22733//21474 +f 22132//20873 22734//21475 22733//21474 22131//20872 +f 22734//21475 22132//20873 22137//20878 22735//21476 +f 22372//21113 22734//21475 22735//21476 22373//21114 +f 22736//21477 22378//21119 22373//21114 22735//21476 +f 22138//20879 22736//21477 22735//21476 22137//20878 +f 22736//21477 22138//20879 22143//20884 22737//21478 +f 22378//21119 22736//21477 22737//21478 22379//21120 +f 22738//21479 22384//21125 22379//21120 22737//21478 +f 22144//20885 22738//21479 22737//21478 22143//20884 +f 22738//21479 22144//20885 22149//20890 22739//21480 +f 22384//21125 22738//21479 22739//21480 22385//21126 +f 22740//21481 22390//21131 22385//21126 22739//21480 +f 22150//20891 22740//21481 22739//21480 22149//20890 +f 22740//21481 22150//20891 22155//20896 22741//21482 +f 22390//21131 22740//21481 22741//21482 22391//21132 +f 22742//21483 22396//21137 22391//21132 22741//21482 +f 22156//20897 22742//21483 22741//21482 22155//20896 +f 22742//21483 22156//20897 22161//20902 22743//21484 +f 22396//21137 22742//21483 22743//21484 22397//21138 +f 22744//21485 22402//21143 22397//21138 22743//21484 +f 22162//20903 22744//21485 22743//21484 22161//20902 +f 22744//21485 22162//20903 22167//20908 22745//21486 +f 22402//21143 22744//21485 22745//21486 22403//21144 +f 22746//21487 22408//21149 22403//21144 22745//21486 +f 22168//20909 22746//21487 22745//21486 22167//20908 +f 22746//21487 22168//20909 22173//20914 22747//21488 +f 22408//21149 22746//21487 22747//21488 22409//21150 +f 22748//21489 22414//21155 22409//21150 22747//21488 +f 22174//20915 22748//21489 22747//21488 22173//20914 +f 22748//21489 22174//20915 22179//20920 22749//21490 +f 22414//21155 22748//21489 22749//21490 22415//21156 +f 22750//21491 22420//21161 22415//21156 22749//21490 +f 22180//20921 22750//21491 22749//21490 22179//20920 +f 22750//21491 22180//20921 22185//20926 22751//21492 +f 22420//21161 22750//21491 22751//21492 22421//21162 +f 22752//21493 22426//21167 22421//21162 22751//21492 +f 22186//20927 22752//21493 22751//21492 22185//20926 +f 22752//21493 22186//20927 22191//20932 22753//21494 +f 22426//21167 22752//21493 22753//21494 22427//21168 +f 22754//21495 22432//21173 22427//21168 22753//21494 +f 22192//20933 22754//21495 22753//21494 22191//20932 +f 22754//21495 22192//20933 22197//20938 22755//21496 +f 22432//21173 22754//21495 22755//21496 22433//21174 +f 22756//21497 22438//21179 22433//21174 22755//21496 +f 22198//20939 22756//21497 22755//21496 22197//20938 +f 22756//21497 22198//20939 22203//20944 22757//21498 +f 22438//21179 22756//21497 22757//21498 22439//21180 +f 22758//21499 22444//21185 22439//21180 22757//21498 +f 22204//20945 22758//21499 22757//21498 22203//20944 +f 22758//21499 22204//20945 22209//20950 22759//21500 +f 22444//21185 22758//21499 22759//21500 22445//21186 +f 22760//21501 22450//21191 22445//21186 22759//21500 +f 22210//20951 22760//21501 22759//21500 22209//20950 +f 22760//21501 22210//20951 22215//20956 22761//21502 +f 22450//21191 22760//21501 22761//21502 22451//21192 +f 22762//21503 22456//21197 22451//21192 22761//21502 +f 22216//20957 22762//21503 22761//21502 22215//20956 +f 22762//21503 22216//20957 22221//20962 22763//21504 +f 22456//21197 22762//21503 22763//21504 22457//21198 +f 22764//21505 22462//21203 22457//21198 22763//21504 +f 22222//20963 22764//21505 22763//21504 22221//20962 +f 22764//21505 22222//20963 22227//20968 22765//21506 +f 22462//21203 22764//21505 22765//21506 22463//21204 +f 22766//21507 22468//21209 22463//21204 22765//21506 +f 22228//20969 22766//21507 22765//21506 22227//20968 +f 22766//21507 22228//20969 22233//20974 22767//21508 +f 22468//21209 22766//21507 22767//21508 22469//21210 +f 22768//21509 22474//21215 22469//21210 22767//21508 +f 22234//20975 22768//21509 22767//21508 22233//20974 +f 22768//21509 22234//20975 22239//20980 22769//21510 +f 22474//21215 22768//21509 22769//21510 22475//21216 +f 22770//21511 22480//21221 22475//21216 22769//21510 +f 22240//20981 22770//21511 22769//21510 22239//20980 +f 22770//21511 22240//20981 22245//20986 22771//21512 +f 22480//21221 22770//21511 22771//21512 22481//21222 +f 22772//21513 22486//21227 22481//21222 22771//21512 +f 22246//20987 22772//21513 22771//21512 22245//20986 +f 22772//21513 22246//20987 22251//20992 22773//21514 +f 22486//21227 22772//21513 22773//21514 22487//21228 +f 22774//21515 22492//21233 22487//21228 22773//21514 +f 22252//20993 22774//21515 22773//21514 22251//20992 +f 22774//21515 22252//20993 22257//20998 22775//21516 +f 22492//21233 22774//21515 22775//21516 22493//21234 +f 22776//21517 22498//21239 22493//21234 22775//21516 +f 22258//20999 22776//21517 22775//21516 22257//20998 +f 22776//21517 22258//20999 22263//21004 22777//21518 +f 22498//21239 22776//21517 22777//21518 22499//21240 +f 22778//21519 22504//21245 22499//21240 22777//21518 +f 22264//21005 22778//21519 22777//21518 22263//21004 +f 22778//21519 22264//21005 22269//21010 22779//21520 +f 22504//21245 22778//21519 22779//21520 22505//21246 +f 22780//21521 22510//21251 22505//21246 22779//21520 +f 22270//21011 22780//21521 22779//21520 22269//21010 +f 22780//21521 22270//21011 22275//21016 22781//21522 +f 22510//21251 22780//21521 22781//21522 22511//21252 +f 22782//21523 22516//21257 22511//21252 22781//21522 +f 22276//21017 22782//21523 22781//21522 22275//21016 +f 22782//21523 22276//21017 22281//21022 22783//21524 +f 22516//21257 22782//21523 22783//21524 22517//21258 +f 22784//21525 22522//21263 22517//21258 22783//21524 +f 22282//21023 22784//21525 22783//21524 22281//21022 +f 22784//21525 22282//21023 22287//21028 22785//21526 +f 22522//21263 22784//21525 22785//21526 22523//21264 +f 22786//21527 22528//21269 22523//21264 22785//21526 +f 22288//21029 22786//21527 22785//21526 22287//21028 +f 22786//21527 22288//21029 22293//21034 22787//21528 +f 22528//21269 22786//21527 22787//21528 22529//21270 +f 22788//21529 22534//21275 22529//21270 22787//21528 +f 22294//21035 22788//21529 22787//21528 22293//21034 +f 22788//21529 22294//21035 22299//21040 22789//21530 +f 22534//21275 22788//21529 22789//21530 22535//21276 +f 22790//21531 22540//21281 22535//21276 22789//21530 +f 22300//21041 22790//21531 22789//21530 22299//21040 +f 22790//21531 22300//21041 22305//21046 22791//21532 +f 22540//21281 22790//21531 22791//21532 22541//21282 +f 22792//21533 22546//21287 22541//21282 22791//21532 +f 22306//21047 22792//21533 22791//21532 22305//21046 +f 22792//21533 22306//21047 22311//21052 22793//21534 +f 22546//21287 22792//21533 22793//21534 22547//21288 +f 22794//21535 22552//21293 22547//21288 22793//21534 +f 22312//21053 22794//21535 22793//21534 22311//21052 +f 22794//21535 22312//21053 22315//21056 22795//21536 +f 22552//21293 22794//21535 22795//21536 22553//21294 +f 22716//21457 22317//21058 22553//21294 22795//21536 +f 22083//20824 22716//21457 22795//21536 22315//21056 +f 22796//21537 22797//21537 22798//21537 22799//21537 +f 22800//21538 22801//21539 22797//21540 22796//21541 +f 22802//21542 22797//21540 22801//21539 22803//21543 +f 22804//21544 22798//21545 22797//21540 22802//21542 +f 22802//21542 22805//21546 22806//21547 22804//21544 +f 22803//21543 22807//21548 22805//21546 22802//21542 +f 22808//21549 22805//21546 22807//21548 22809//21550 +f 22810//21551 22806//21547 22805//21546 22808//21549 +f 22808//21549 22811//21552 22812//21553 22810//21551 +f 22809//21550 22813//21554 22811//21552 22808//21549 +f 22814//21555 22811//21552 22813//21554 22815//21556 +f 22816//21557 22812//21553 22811//21552 22814//21555 +f 22814//21555 22817//21558 22818//21559 22816//21557 +f 22815//21556 22819//21560 22817//21558 22814//21555 +f 22820//21561 22817//21558 22819//21560 22821//21562 +f 22822//21563 22818//21559 22817//21558 22820//21561 +f 22820//21561 22823//21564 22824//21565 22822//21563 +f 22821//21562 22825//21566 22823//21564 22820//21561 +f 22826//21567 22823//21564 22825//21566 22827//21568 +f 22828//21569 22824//21565 22823//21564 22826//21567 +f 22826//21567 22829//21570 22830//21571 22828//21569 +f 22827//21568 22831//21572 22829//21570 22826//21567 +f 22832//21573 22829//21570 22831//21572 22833//21574 +f 22834//21575 22830//21571 22829//21570 22832//21573 +f 22832//21573 22835//21576 22836//21577 22834//21575 +f 22833//21574 22837//21578 22835//21576 22832//21573 +f 22838//21579 22835//21576 22837//21578 22839//21580 +f 22840//21581 22836//21577 22835//21576 22838//21579 +f 22838//21579 22841//21582 22842//21583 22840//21581 +f 22839//21580 22843//21584 22841//21582 22838//21579 +f 22844//21585 22841//21582 22843//21584 22845//21586 +f 22846//21587 22842//21583 22841//21582 22844//21585 +f 22844//21585 22847//21588 22848//21589 22846//21587 +f 22845//21586 22849//21590 22847//21588 22844//21585 +f 22850//21591 22847//21588 22849//21590 22851//21592 +f 22852//21593 22848//21589 22847//21588 22850//21591 +f 22850//21591 22853//21594 22854//21595 22852//21593 +f 22851//21592 22855//21596 22853//21594 22850//21591 +f 22856//21597 22853//21594 22855//21596 22857//21598 +f 22858//21599 22854//21595 22853//21594 22856//21597 +f 22856//21597 22859//21600 22860//21601 22858//21599 +f 22857//21598 22861//21602 22859//21600 22856//21597 +f 22862//21603 22859//21600 22861//21602 22863//21604 +f 22864//21605 22860//21601 22859//21600 22862//21603 +f 22862//21603 22865//21606 22866//21607 22864//21605 +f 22863//21604 22867//21608 22865//21606 22862//21603 +f 22868//21609 22865//21606 22867//21608 22869//21610 +f 22870//21611 22866//21607 22865//21606 22868//21609 +f 22868//21609 22871//21612 22872//21613 22870//21611 +f 22869//21610 22873//21614 22871//21612 22868//21609 +f 22874//21615 22871//21612 22873//21614 22875//21616 +f 22876//21617 22872//21613 22871//21612 22874//21615 +f 22874//21615 22877//21618 22878//21619 22876//21617 +f 22875//21616 22879//21620 22877//21618 22874//21615 +f 22880//21621 22877//21618 22879//21620 22881//21622 +f 22882//21623 22878//21619 22877//21618 22880//21621 +f 22880//21621 22883//21624 22884//21625 22882//21623 +f 22881//21622 22885//21626 22883//21624 22880//21621 +f 22886//21627 22883//21624 22885//21626 22887//21628 +f 22888//21629 22884//21625 22883//21624 22886//21627 +f 22886//21627 22889//21630 22890//21631 22888//21629 +f 22887//21628 22891//21632 22889//21630 22886//21627 +f 22892//21633 22889//21630 22891//21632 22893//21634 +f 22894//21635 22890//21631 22889//21630 22892//21633 +f 22892//21633 22895//21636 22896//21637 22894//21635 +f 22893//21634 22897//21638 22895//21636 22892//21633 +f 22898//21639 22895//21636 22897//21638 22899//21640 +f 22900//21641 22896//21637 22895//21636 22898//21639 +f 22898//21639 22901//21642 22902//21643 22900//21641 +f 22899//21640 22903//21644 22901//21642 22898//21639 +f 22904//21645 22901//21642 22903//21644 22905//21646 +f 22906//21647 22902//21643 22901//21642 22904//21645 +f 22904//21645 22907//21648 22908//21649 22906//21647 +f 22905//21646 22909//21650 22907//21648 22904//21645 +f 22910//21651 22907//21648 22909//21650 22911//21652 +f 22912//21653 22908//21649 22907//21648 22910//21651 +f 22910//21651 22913//21654 22914//21655 22912//21653 +f 22911//21652 22915//21656 22913//21654 22910//21651 +f 22916//21657 22913//21654 22915//21656 22917//21658 +f 22918//21659 22914//21655 22913//21654 22916//21657 +f 22919//21660 22920//21661 22921//21662 22922//21663 +f 22923//21664 22924//21665 22920//21661 22919//21660 +f 22925//21666 22920//21661 22924//21665 22926//21667 +f 22927//21668 22921//21662 22920//21661 22925//21666 +f 22925//21666 22928//21669 22929//21670 22927//21668 +f 22926//21667 22930//21671 22928//21669 22925//21666 +f 22931//21672 22928//21669 22930//21671 22932//21673 +f 22933//21674 22929//21670 22928//21669 22931//21672 +f 22931//21672 22934//21675 22935//21676 22933//21674 +f 22932//21673 22936//21677 22934//21675 22931//21672 +f 22937//21678 22934//21675 22936//21677 22938//21679 +f 22939//21680 22935//21676 22934//21675 22937//21678 +f 22937//21678 22940//21681 22941//21682 22939//21680 +f 22938//21679 22942//21683 22940//21681 22937//21678 +f 22943//21684 22940//21681 22942//21683 22944//21685 +f 22945//21686 22941//21682 22940//21681 22943//21684 +f 22943//21684 22946//21687 22947//21688 22945//21686 +f 22944//21685 22948//21689 22946//21687 22943//21684 +f 22949//21690 22946//21687 22948//21689 22950//21691 +f 22951//21692 22947//21688 22946//21687 22949//21690 +f 22949//21690 22952//21693 22953//21694 22951//21692 +f 22950//21691 22954//21695 22952//21693 22949//21690 +f 22955//21696 22952//21693 22954//21695 22956//21697 +f 22957//21698 22953//21694 22952//21693 22955//21696 +f 22955//21696 22958//21699 22959//21700 22957//21698 +f 22956//21697 22960//21701 22958//21699 22955//21696 +f 22961//21702 22958//21699 22960//21701 22962//21703 +f 22963//21704 22959//21700 22958//21699 22961//21702 +f 22961//21702 22964//21705 22965//21706 22963//21704 +f 22962//21703 22966//21707 22964//21705 22961//21702 +f 22967//21708 22964//21705 22966//21707 22968//21709 +f 22969//21710 22965//21706 22964//21705 22967//21708 +f 22967//21708 22970//21711 22971//21712 22969//21710 +f 22968//21709 22972//21713 22970//21711 22967//21708 +f 22973//21714 22970//21711 22972//21713 22974//21715 +f 22975//21716 22971//21712 22970//21711 22973//21714 +f 22973//21714 22976//21717 22977//21718 22975//21716 +f 22974//21715 22978//21719 22976//21717 22973//21714 +f 22979//21720 22976//21717 22978//21719 22980//21721 +f 22981//21722 22977//21718 22976//21717 22979//21720 +f 22979//21720 22982//21723 22983//21724 22981//21722 +f 22980//21721 22984//21725 22982//21723 22979//21720 +f 22985//21726 22982//21723 22984//21725 22986//21727 +f 22987//21728 22983//21724 22982//21723 22985//21726 +f 22985//21726 22988//21729 22989//21730 22987//21728 +f 22986//21727 22990//21731 22988//21729 22985//21726 +f 22991//21732 22988//21729 22990//21731 22992//21733 +f 22993//21734 22989//21730 22988//21729 22991//21732 +f 22991//21732 22994//21735 22995//21736 22993//21734 +f 22992//21733 22996//21737 22994//21735 22991//21732 +f 22997//21738 22994//21735 22996//21737 22998//21739 +f 22999//21740 22995//21736 22994//21735 22997//21738 +f 22997//21738 23000//21741 23001//21742 22999//21740 +f 22998//21739 23002//21743 23000//21741 22997//21738 +f 23003//21744 23000//21741 23002//21743 23004//21745 +f 23005//21746 23001//21742 23000//21741 23003//21744 +f 23003//21744 23006//21747 23007//21748 23005//21746 +f 23004//21745 23008//21749 23006//21747 23003//21744 +f 23009//21750 23006//21747 23008//21749 23010//21751 +f 23011//21752 23007//21748 23006//21747 23009//21750 +f 23009//21750 23012//21753 23013//21754 23011//21752 +f 23010//21751 23014//21755 23012//21753 23009//21750 +f 23015//21756 23012//21753 23014//21755 23016//21757 +f 23017//21758 23013//21754 23012//21753 23015//21756 +f 23015//21756 23018//21759 23019//21760 23017//21758 +f 23016//21757 23020//21761 23018//21759 23015//21756 +f 23021//21762 23018//21759 23020//21761 23022//21763 +f 23023//21764 23019//21760 23018//21759 23021//21762 +f 23021//21762 23024//21765 23025//21766 23023//21764 +f 23022//21763 23026//21767 23024//21765 23021//21762 +f 23027//21768 23024//21765 23026//21767 23028//21769 +f 23029//21770 23025//21766 23024//21765 23027//21768 +f 23027//21768 23030//21771 23031//21772 23029//21770 +f 23028//21769 23032//21773 23030//21771 23027//21768 +f 23033//21774 23030//21771 23032//21773 23034//21775 +f 23035//21776 23031//21772 23030//21771 23033//21774 +f 23033//21774 23036//21777 23037//21778 23035//21776 +f 23034//21775 23038//21779 23036//21777 23033//21774 +f 23039//21780 23036//21777 23038//21779 23040//21781 +f 23041//21782 23037//21778 23036//21777 23039//21780 +f 23042//21783 23043//21784 23044//21785 23045//21786 +f 23046//21787 23047//21788 23043//21784 23042//21783 +f 23048//21789 23043//21784 23047//21788 23049//21790 +f 23050//21791 23044//21785 23043//21784 23048//21789 +f 23048//21789 23051//21792 23052//21793 23050//21791 +f 23049//21790 23053//21794 23051//21792 23048//21789 +f 23054//21795 23051//21792 23053//21794 23055//21796 +f 23056//21797 23052//21793 23051//21792 23054//21795 +f 23054//21795 23057//21798 23058//21799 23056//21797 +f 23055//21796 23059//21800 23057//21798 23054//21795 +f 23060//21801 23057//21798 23059//21800 23061//21802 +f 23062//21803 23058//21799 23057//21798 23060//21801 +f 23060//21801 23063//21804 23064//21805 23062//21803 +f 23061//21802 23065//21806 23063//21804 23060//21801 +f 23066//21807 23063//21804 23065//21806 23067//21808 +f 23068//21809 23064//21805 23063//21804 23066//21807 +f 23066//21807 23069//21810 23070//21811 23068//21809 +f 23067//21808 23071//21812 23069//21810 23066//21807 +f 23072//21813 23069//21810 23071//21812 23073//21814 +f 23074//21815 23070//21811 23069//21810 23072//21813 +f 23072//21813 23075//21816 23076//21817 23074//21815 +f 23073//21814 23077//21818 23075//21816 23072//21813 +f 23078//21819 23079//21820 23075//21816 23077//21818 +f 23079//21820 23080//21821 23076//21817 23075//21816 +f 23080//21821 23079//21820 23081//21822 23082//21823 +f 23079//21820 23078//21819 23083//21824 23081//21822 +f 23084//21825 23085//21826 23081//21822 23083//21824 +f 23085//21826 23086//21827 23082//21823 23081//21822 +f 23086//21827 23085//21826 23087//21828 23088//21829 +f 23085//21826 23084//21825 23089//21830 23087//21828 +f 23090//21831 23091//21832 23087//21828 23089//21830 +f 23091//21832 23092//21833 23088//21829 23087//21828 +f 23092//21833 23091//21832 23093//21834 23094//21835 +f 23091//21832 23090//21831 23095//21836 23093//21834 +f 23096//21837 23097//21838 23093//21834 23095//21836 +f 23097//21838 23098//21839 23094//21835 23093//21834 +f 23098//21839 23097//21838 23099//21840 23100//21841 +f 23097//21838 23096//21837 23101//21842 23099//21840 +f 23102//21843 23103//21844 23099//21840 23101//21842 +f 23103//21844 23104//21845 23100//21841 23099//21840 +f 23103//21844 23105//21846 23106//21847 23104//21845 +f 23102//21843 23107//21848 23105//21846 23103//21844 +f 23108//21849 23105//21846 23107//21848 23109//21850 +f 23110//21851 23106//21847 23105//21846 23108//21849 +f 23108//21849 23111//21852 23112//21853 23110//21851 +f 23109//21850 23113//21854 23111//21852 23108//21849 +f 23114//21855 23111//21852 23113//21854 23115//21856 +f 23116//21857 23112//21853 23111//21852 23114//21855 +f 23114//21855 23117//21858 23118//21859 23116//21857 +f 23115//21856 23119//21860 23117//21858 23114//21855 +f 23120//21861 23117//21858 23119//21860 23121//21862 +f 23122//21863 23118//21859 23117//21858 23120//21861 +f 23120//21861 23123//21864 23124//21865 23122//21863 +f 23121//21862 23125//21866 23123//21864 23120//21861 +f 23126//21867 23123//21864 23125//21866 23127//21868 +f 23128//21869 23124//21865 23123//21864 23126//21867 +f 23126//21867 23129//21870 23130//21871 23128//21869 +f 23127//21868 23131//21872 23129//21870 23126//21867 +f 23132//21873 23129//21870 23131//21872 23133//21874 +f 23134//21875 23130//21871 23129//21870 23132//21873 +f 23132//21873 23135//21876 23136//21877 23134//21875 +f 23133//21874 23137//21878 23135//21876 23132//21873 +f 23138//21879 23135//21876 23137//21878 23139//21880 +f 23140//21881 23136//21877 23135//21876 23138//21879 +f 23138//21879 23141//21882 23142//21883 23140//21881 +f 23139//21880 23143//21884 23141//21882 23138//21879 +f 23144//21885 23141//21882 23143//21884 23145//21886 +f 23146//21887 23142//21883 23141//21882 23144//21885 +f 23144//21885 23147//21888 23148//21889 23146//21887 +f 23145//21886 23149//21890 23147//21888 23144//21885 +f 23150//21891 23147//21888 23149//21890 23151//21892 +f 23152//21893 23148//21889 23147//21888 23150//21891 +f 23150//21891 23153//21894 23154//21895 23152//21893 +f 23151//21892 23155//21896 23153//21894 23150//21891 +f 23156//21897 23153//21894 23155//21896 23157//21898 +f 23158//21899 23154//21895 23153//21894 23156//21897 +f 23156//21897 23159//21900 23160//21901 23158//21899 +f 23157//21898 23161//21902 23159//21900 23156//21897 +f 23162//21903 23159//21900 23161//21902 23163//21904 +f 23164//21905 23160//21901 23159//21900 23162//21903 +f 23165//21906 23166//21907 23047//21788 23046//21787 +f 23167//21908 23168//21909 23166//21907 23165//21906 +f 23169//21910 23166//21907 23168//21909 23170//21911 +f 23049//21790 23047//21788 23166//21907 23169//21910 +f 23169//21910 23171//21912 23053//21794 23049//21790 +f 23170//21911 23172//21913 23171//21912 23169//21910 +f 23173//21914 23171//21912 23172//21913 23174//21915 +f 23055//21796 23053//21794 23171//21912 23173//21914 +f 23173//21914 23175//21916 23059//21800 23055//21796 +f 23174//21915 23176//21917 23175//21916 23173//21914 +f 23177//21918 23175//21916 23176//21917 23178//21919 +f 23061//21802 23059//21800 23175//21916 23177//21918 +f 23177//21918 23179//21920 23065//21806 23061//21802 +f 23178//21919 23180//21921 23179//21920 23177//21918 +f 23181//21922 23179//21920 23180//21921 23182//21923 +f 23067//21808 23065//21806 23179//21920 23181//21922 +f 23181//21922 23183//21924 23071//21812 23067//21808 +f 23181//21922 23182//21923 23184//21925 23183//21924 +f 23185//21926 23186//21927 23183//21924 23184//21925 +f 23073//21814 23071//21812 23183//21924 23186//21927 +f 23186//21927 23187//21928 23077//21818 23073//21814 +f 23186//21927 23185//21926 23188//21929 23187//21928 +f 23189//21930 23190//21931 23187//21928 23188//21929 +f 23190//21931 23078//21819 23077//21818 23187//21928 +f 23191//21932 23192//21933 23131//21872 23127//21868 +f 23193//21934 23194//21935 23192//21933 23191//21932 +f 23195//21936 23192//21933 23194//21935 23196//21937 +f 23133//21874 23131//21872 23192//21933 23195//21936 +f 23195//21936 23197//21938 23137//21878 23133//21874 +f 23196//21937 23198//21939 23197//21938 23195//21936 +f 23199//21940 23197//21938 23198//21939 23200//21941 +f 23139//21880 23137//21878 23197//21938 23199//21940 +f 23199//21940 23201//21942 23143//21884 23139//21880 +f 23200//21941 23202//21943 23201//21942 23199//21940 +f 23203//21944 23201//21942 23202//21943 23204//21945 +f 23145//21886 23143//21884 23201//21942 23203//21944 +f 23203//21944 23205//21946 23149//21890 23145//21886 +f 23204//21945 23206//21947 23205//21946 23203//21944 +f 23207//21948 23205//21946 23206//21947 23208//21949 +f 23151//21892 23149//21890 23205//21946 23207//21948 +f 23207//21948 23209//21950 23155//21896 23151//21892 +f 23208//21949 23210//21951 23209//21950 23207//21948 +f 23211//21952 23209//21950 23210//21951 23212//21953 +f 23157//21898 23155//21896 23209//21950 23211//21952 +f 23211//21952 23213//21954 23161//21902 23157//21898 +f 23212//21953 23214//21955 23213//21954 23211//21952 +f 23215//21956 23213//21954 23214//21955 23216//21957 +f 23163//21904 23161//21902 23213//21954 23215//21956 +f 23217//21958 23218//21959 23168//21909 23167//21908 +f 23219//21960 23220//21961 23218//21959 23217//21958 +f 23221//21962 23218//21959 23220//21961 23222//21963 +f 23170//21911 23168//21909 23218//21959 23221//21962 +f 23221//21962 23223//21964 23172//21913 23170//21911 +f 23222//21963 23224//21965 23223//21964 23221//21962 +f 23225//21966 23223//21964 23224//21965 23226//21967 +f 23174//21915 23172//21913 23223//21964 23225//21966 +f 23225//21966 23227//21968 23176//21917 23174//21915 +f 23226//21967 23228//21969 23227//21968 23225//21966 +f 23229//21970 23227//21968 23228//21969 23230//21971 +f 23178//21919 23176//21917 23227//21968 23229//21970 +f 23229//21970 23231//21972 23180//21921 23178//21919 +f 23230//21971 23232//21973 23231//21972 23229//21970 +f 23233//21974 23234//21975 23231//21972 23232//21973 +f 23234//21975 23182//21923 23180//21921 23231//21972 +f 23182//21923 23234//21975 23235//21976 23184//21925 +f 23234//21975 23233//21974 23236//21977 23235//21976 +f 23237//21978 23238//21979 23235//21976 23236//21977 +f 23238//21979 23185//21926 23184//21925 23235//21976 +f 23239//21980 23240//21981 23198//21939 23196//21937 +f 23241//21982 23242//21983 23240//21981 23239//21980 +f 23243//21984 23240//21981 23242//21983 23244//21985 +f 23200//21941 23198//21939 23240//21981 23243//21984 +f 23243//21984 23245//21986 23202//21943 23200//21941 +f 23244//21985 23246//21987 23245//21986 23243//21984 +f 23247//21988 23245//21986 23246//21987 23248//21989 +f 23204//21945 23202//21943 23245//21986 23247//21988 +f 23247//21988 23249//21990 23206//21947 23204//21945 +f 23248//21989 23250//21991 23249//21990 23247//21988 +f 23251//21992 23249//21990 23250//21991 23252//21993 +f 23208//21949 23206//21947 23249//21990 23251//21992 +f 23251//21992 23253//21994 23210//21951 23208//21949 +f 23252//21993 23254//21995 23253//21994 23251//21992 +f 23255//21996 23253//21994 23254//21995 23256//21997 +f 23212//21953 23210//21951 23253//21994 23255//21996 +f 23255//21996 23257//21998 23214//21955 23212//21953 +f 23256//21997 23258//21999 23257//21998 23255//21996 +f 23259//22000 23257//21998 23258//21999 23260//22001 +f 23216//21957 23214//21955 23257//21998 23259//22000 +f 23261//22002 23262//22003 23220//21961 23219//21960 +f 23263//22004 23264//22005 23262//22003 23261//22002 +f 23265//22006 23262//22003 23264//22005 23266//22007 +f 23222//21963 23220//21961 23262//22003 23265//22006 +f 23265//22006 23267//22008 23224//21965 23222//21963 +f 23266//22007 23268//22009 23267//22008 23265//22006 +f 23269//22010 23267//22008 23268//22009 23270//22011 +f 23226//21967 23224//21965 23267//22008 23269//22010 +f 23269//22010 23271//22012 23228//21969 23226//21967 +f 23270//22011 23272//22013 23271//22012 23269//22010 +f 23273//22014 23271//22012 23272//22013 23274//22015 +f 23230//21971 23228//21969 23271//22012 23273//22014 +f 23273//22014 23275//22016 23232//21973 23230//21971 +f 23274//22015 23276//22017 23275//22016 23273//22014 +f 23277//22018 23278//22019 23275//22016 23276//22017 +f 23278//22019 23233//21974 23232//21973 23275//22016 +f 23233//21974 23278//22019 23279//22020 23236//21977 +f 23278//22019 23277//22018 23280//22021 23279//22020 +f 23281//22022 23282//22023 23279//22020 23280//22021 +f 23282//22023 23237//21978 23236//21977 23279//22020 +f 23283//22024 23284//22025 23242//21983 23241//21982 +f 23285//22026 23286//22027 23284//22025 23283//22024 +f 23287//22028 23284//22025 23286//22027 23288//22029 +f 23244//21985 23242//21983 23284//22025 23287//22028 +f 23287//22028 23289//22030 23246//21987 23244//21985 +f 23288//22029 23290//22031 23289//22030 23287//22028 +f 23291//22032 23289//22030 23290//22031 23292//22033 +f 23248//21989 23246//21987 23289//22030 23291//22032 +f 23291//22032 23293//22034 23250//21991 23248//21989 +f 23292//22033 23294//22035 23293//22034 23291//22032 +f 23295//22036 23293//22034 23294//22035 23296//22037 +f 23252//21993 23250//21991 23293//22034 23295//22036 +f 23295//22036 23297//22038 23254//21995 23252//21993 +f 23296//22037 23298//22039 23297//22038 23295//22036 +f 23299//22040 23297//22038 23298//22039 23300//22041 +f 23256//21997 23254//21995 23297//22038 23299//22040 +f 23299//22040 23301//22042 23258//21999 23256//21997 +f 23300//22041 23302//22043 23301//22042 23299//22040 +f 23303//22044 23301//22042 23302//22043 23304//22045 +f 23260//22001 23258//21999 23301//22042 23303//22044 +f 23305//22046 23306//22047 23264//22005 23263//22004 +f 23307//22048 23308//22049 23306//22047 23305//22046 +f 23309//22050 23306//22047 23308//22049 23310//22051 +f 23266//22007 23264//22005 23306//22047 23309//22050 +f 23309//22050 23311//22052 23268//22009 23266//22007 +f 23310//22051 23312//22053 23311//22052 23309//22050 +f 23313//22054 23311//22052 23312//22053 23314//22055 +f 23270//22011 23268//22009 23311//22052 23313//22054 +f 23313//22054 23315//22056 23272//22013 23270//22011 +f 23314//22055 23316//22057 23315//22056 23313//22054 +f 23317//22058 23315//22056 23316//22057 23318//22059 +f 23274//22015 23272//22013 23315//22056 23317//22058 +f 23317//22058 23319//22060 23276//22017 23274//22015 +f 23318//22059 23320//22061 23319//22060 23317//22058 +f 23321//22062 23319//22060 23320//22061 23322//22063 +f 23277//22018 23276//22017 23319//22060 23321//22062 +f 23277//22018 23321//22062 23323//22064 23280//22021 +f 23321//22062 23322//22063 23324//22065 23323//22064 +f 23325//22066 23326//22067 23323//22064 23324//22065 +f 23326//22067 23281//22022 23280//22021 23323//22064 +f 23327//22068 23328//22069 23329//22070 23330//22071 +f 23328//22069 23331//22072 23332//22073 23329//22070 +f 23288//22029 23286//22027 23329//22070 23332//22073 +f 23286//22027 23285//22026 23330//22071 23329//22070 +f 23332//22073 23333//22074 23290//22031 23288//22029 +f 23331//22072 23334//22075 23333//22074 23332//22073 +f 23335//22076 23333//22074 23334//22075 23336//22077 +f 23292//22033 23290//22031 23333//22074 23335//22076 +f 23335//22076 23337//22078 23294//22035 23292//22033 +f 23336//22077 23338//22079 23337//22078 23335//22076 +f 23339//22080 23337//22078 23338//22079 23340//22081 +f 23296//22037 23294//22035 23337//22078 23339//22080 +f 23339//22080 23341//22082 23298//22039 23296//22037 +f 23340//22081 23342//22083 23341//22082 23339//22080 +f 23343//22084 23341//22082 23342//22083 23344//22085 +f 23300//22041 23298//22039 23341//22082 23343//22084 +f 23343//22084 23345//22086 23302//22043 23300//22041 +f 23344//22085 23346//22087 23345//22086 23343//22084 +f 23347//22088 23345//22086 23346//22087 23348//22089 +f 23304//22045 23302//22043 23345//22086 23347//22088 +f 23349//22090 23350//22091 23308//22049 23307//22048 +f 23351//22092 23352//22093 23350//22091 23349//22090 +f 23353//22094 23350//22091 23352//22093 23354//22095 +f 23310//22051 23308//22049 23350//22091 23353//22094 +f 23353//22094 23355//22096 23312//22053 23310//22051 +f 23354//22095 23356//22097 23355//22096 23353//22094 +f 23357//22098 23355//22096 23356//22097 23358//22099 +f 23314//22055 23312//22053 23355//22096 23357//22098 +f 23357//22098 23359//22100 23316//22057 23314//22055 +f 23358//22099 23360//22101 23359//22100 23357//22098 +f 23361//22102 23359//22100 23360//22101 23362//22103 +f 23318//22059 23316//22057 23359//22100 23361//22102 +f 23361//22102 23363//22104 23320//22061 23318//22059 +f 23362//22103 23364//22105 23363//22104 23361//22102 +f 23365//22106 23363//22104 23364//22105 23366//22107 +f 23322//22063 23320//22061 23363//22104 23365//22106 +f 23322//22063 23365//22106 23367//22108 23324//22065 +f 23366//22107 23368//22109 23367//22108 23365//22106 +f 23369//22110 23370//22111 23367//22108 23368//22109 +f 23370//22111 23325//22066 23324//22065 23367//22108 +f 23371//22112 23372//22113 23373//22114 23374//22115 +f 23375//22116 23376//22117 23372//22113 23371//22112 +f 23331//22072 23328//22069 23372//22113 23376//22117 +f 23328//22069 23327//22068 23373//22114 23372//22113 +f 23376//22117 23377//22118 23334//22075 23331//22072 +f 23375//22116 23378//22119 23377//22118 23376//22117 +f 23379//22120 23377//22118 23378//22119 23380//22121 +f 23336//22077 23334//22075 23377//22118 23379//22120 +f 23379//22120 23381//22122 23338//22079 23336//22077 +f 23380//22121 23382//22123 23381//22122 23379//22120 +f 23383//22124 23381//22122 23382//22123 23384//22125 +f 23340//22081 23338//22079 23381//22122 23383//22124 +f 23383//22124 23385//22126 23342//22083 23340//22081 +f 23384//22125 23386//22127 23385//22126 23383//22124 +f 23387//22128 23385//22126 23386//22127 23388//22129 +f 23344//22085 23342//22083 23385//22126 23387//22128 +f 23387//22128 23389//22130 23346//22087 23344//22085 +f 23388//22129 23390//22131 23389//22130 23387//22128 +f 23391//22132 23389//22130 23390//22131 23392//22133 +f 23348//22089 23346//22087 23389//22130 23391//22132 +f 23393//22134 23394//22135 23352//22093 23351//22092 +f 23395//22136 23396//22137 23394//22135 23393//22134 +f 23397//22138 23394//22135 23396//22137 23398//22139 +f 23354//22095 23352//22093 23394//22135 23397//22138 +f 23397//22138 23399//22140 23356//22097 23354//22095 +f 23398//22139 23400//22141 23399//22140 23397//22138 +f 23401//22142 23399//22140 23400//22141 23402//22143 +f 23358//22099 23356//22097 23399//22140 23401//22142 +f 23401//22142 23403//22144 23360//22101 23358//22099 +f 23402//22143 23404//22145 23403//22144 23401//22142 +f 23405//22146 23403//22144 23404//22145 23406//22147 +f 23362//22103 23360//22101 23403//22144 23405//22146 +f 23405//22146 23407//22148 23364//22105 23362//22103 +f 23406//22147 23408//22149 23407//22148 23405//22146 +f 23409//22150 23407//22148 23408//22149 23410//22151 +f 23366//22107 23364//22105 23407//22148 23409//22150 +f 23409//22150 23411//22152 23368//22109 23366//22107 +f 23410//22151 23412//22153 23411//22152 23409//22150 +f 23413//22154 23411//22152 23412//22153 23414//22155 +f 23369//22110 23368//22109 23411//22152 23413//22154 +f 23415//22156 23416//22157 23417//22158 23418//22159 +f 23419//22160 23420//22161 23416//22157 23415//22156 +f 23371//22112 23416//22157 23420//22161 23375//22116 +f 23374//22115 23417//22158 23416//22157 23371//22112 +f 23420//22161 23421//22162 23378//22119 23375//22116 +f 23419//22160 23422//22163 23421//22162 23420//22161 +f 23423//22164 23421//22162 23422//22163 23424//22165 +f 23380//22121 23378//22119 23421//22162 23423//22164 +f 23423//22164 23425//22166 23382//22123 23380//22121 +f 23424//22165 23426//22167 23425//22166 23423//22164 +f 23427//22168 23425//22166 23426//22167 23428//22169 +f 23384//22125 23382//22123 23425//22166 23427//22168 +f 23427//22168 23429//22170 23386//22127 23384//22125 +f 23428//22169 23430//22171 23429//22170 23427//22168 +f 23431//22172 23429//22170 23430//22171 23432//22173 +f 23388//22129 23386//22127 23429//22170 23431//22172 +f 23431//22172 23433//22174 23390//22131 23388//22129 +f 23432//22173 23434//22175 23433//22174 23431//22172 +f 23435//22176 23433//22174 23434//22175 23436//22177 +f 23392//22133 23390//22131 23433//22174 23435//22176 +f 23437//22178 23438//22179 23396//22137 23395//22136 +f 23439//22180 23440//22181 23438//22179 23437//22178 +f 23441//22182 23438//22179 23440//22181 23442//22183 +f 23398//22139 23396//22137 23438//22179 23441//22182 +f 23441//22182 23443//22184 23400//22141 23398//22139 +f 23442//22183 23444//22185 23443//22184 23441//22182 +f 23445//22186 23443//22184 23444//22185 23446//22187 +f 23402//22143 23400//22141 23443//22184 23445//22186 +f 23445//22186 23447//22188 23404//22145 23402//22143 +f 23446//22187 23448//22189 23447//22188 23445//22186 +f 23449//22190 23447//22188 23448//22189 23450//22191 +f 23406//22147 23404//22145 23447//22188 23449//22190 +f 23449//22190 23451//22192 23408//22149 23406//22147 +f 23450//22191 23452//22193 23451//22192 23449//22190 +f 23453//22194 23451//22192 23452//22193 23454//22195 +f 23410//22151 23408//22149 23451//22192 23453//22194 +f 23453//22194 23455//22196 23412//22153 23410//22151 +f 23454//22195 23456//22197 23455//22196 23453//22194 +f 23457//22198 23455//22196 23456//22197 23458//22199 +f 23414//22155 23412//22153 23455//22196 23457//22198 +f 23459//22200 23460//22201 23461//22202 23462//22203 +f 23463//22204 23464//22205 23460//22201 23459//22200 +f 23415//22156 23460//22201 23464//22205 23419//22160 +f 23418//22159 23461//22202 23460//22201 23415//22156 +f 23464//22205 23465//22206 23422//22163 23419//22160 +f 23464//22205 23463//22204 23466//22207 23465//22206 +f 23467//22208 23465//22206 23466//22207 23468//22209 +f 23424//22165 23422//22163 23465//22206 23467//22208 +f 23467//22208 23469//22210 23426//22167 23424//22165 +f 23468//22209 23470//22211 23469//22210 23467//22208 +f 23471//22212 23469//22210 23470//22211 23472//22213 +f 23428//22169 23426//22167 23469//22210 23471//22212 +f 23471//22212 23473//22214 23430//22171 23428//22169 +f 23472//22213 23474//22215 23473//22214 23471//22212 +f 23475//22216 23473//22214 23474//22215 23476//22217 +f 23432//22173 23430//22171 23473//22214 23475//22216 +f 23475//22216 23477//22218 23434//22175 23432//22173 +f 23476//22217 23478//22219 23477//22218 23475//22216 +f 23479//22220 23477//22218 23478//22219 23480//22221 +f 23436//22177 23434//22175 23477//22218 23479//22220 +f 23481//22222 23482//22223 23440//22181 23439//22180 +f 23483//22224 23484//22225 23482//22223 23481//22222 +f 23485//22226 23482//22223 23484//22225 23486//22227 +f 23442//22183 23440//22181 23482//22223 23485//22226 +f 23485//22226 23487//22228 23444//22185 23442//22183 +f 23486//22227 23488//22229 23487//22228 23485//22226 +f 23489//22230 23487//22228 23488//22229 23490//22231 +f 23446//22187 23444//22185 23487//22228 23489//22230 +f 23489//22230 23491//22232 23448//22189 23446//22187 +f 23490//22231 23492//22233 23491//22232 23489//22230 +f 23493//22234 23491//22232 23492//22233 23494//22235 +f 23450//22191 23448//22189 23491//22232 23493//22234 +f 23493//22234 23495//22236 23452//22193 23450//22191 +f 23494//22235 23496//22237 23495//22236 23493//22234 +f 23497//22238 23495//22236 23496//22237 23498//22239 +f 23454//22195 23452//22193 23495//22236 23497//22238 +f 23497//22238 23499//22240 23456//22197 23454//22195 +f 23498//22239 23500//22241 23499//22240 23497//22238 +f 23501//22242 23499//22240 23500//22241 23502//22243 +f 23458//22199 23456//22197 23499//22240 23501//22242 +f 23503//22244 23504//22245 23505//22246 23506//22247 +f 23507//22248 23508//22249 23504//22245 23503//22244 +f 23459//22200 23504//22245 23508//22249 23463//22204 +f 23462//22203 23505//22246 23504//22245 23459//22200 +f 23463//22204 23508//22249 23509//22250 23466//22207 +f 23508//22249 23507//22248 23510//22251 23509//22250 +f 23511//22252 23509//22250 23510//22251 23512//22253 +f 23468//22209 23466//22207 23509//22250 23511//22252 +f 23511//22252 23513//22254 23470//22211 23468//22209 +f 23512//22253 23514//22255 23513//22254 23511//22252 +f 23515//22256 23513//22254 23514//22255 23516//22257 +f 23472//22213 23470//22211 23513//22254 23515//22256 +f 23515//22256 23517//22258 23474//22215 23472//22213 +f 23516//22257 23518//22259 23517//22258 23515//22256 +f 23519//22260 23517//22258 23518//22259 23520//22261 +f 23476//22217 23474//22215 23517//22258 23519//22260 +f 23519//22260 23521//22262 23478//22219 23476//22217 +f 23520//22261 23522//22263 23521//22262 23519//22260 +f 23523//22264 23521//22262 23522//22263 23524//22265 +f 23480//22221 23478//22219 23521//22262 23523//22264 +f 23525//22266 23526//22267 23484//22225 23483//22224 +f 23527//22268 23528//22269 23526//22267 23525//22266 +f 23529//22270 23526//22267 23528//22269 23530//22271 +f 23486//22227 23484//22225 23526//22267 23529//22270 +f 23529//22270 23531//22272 23488//22229 23486//22227 +f 23530//22271 23532//22273 23531//22272 23529//22270 +f 23533//22274 23531//22272 23532//22273 23534//22275 +f 23490//22231 23488//22229 23531//22272 23533//22274 +f 23533//22274 23535//22276 23492//22233 23490//22231 +f 23534//22275 23536//22277 23535//22276 23533//22274 +f 23537//22278 23535//22276 23536//22277 23538//22279 +f 23494//22235 23492//22233 23535//22276 23537//22278 +f 23537//22278 23539//22280 23496//22237 23494//22235 +f 23538//22279 23540//22281 23539//22280 23537//22278 +f 23541//22282 23539//22280 23540//22281 23542//22283 +f 23498//22239 23496//22237 23539//22280 23541//22282 +f 23541//22282 23543//22284 23500//22241 23498//22239 +f 23542//22283 23544//22285 23543//22284 23541//22282 +f 23545//22286 23543//22284 23544//22285 23546//22287 +f 23502//22243 23500//22241 23543//22284 23545//22286 +f 23506//22247 23547//22288 23548//22289 23503//22244 +f 23547//22288 23549//22290 23550//22291 23548//22289 +f 23551//22292 23552//22293 23548//22289 23550//22291 +f 23552//22293 23507//22248 23503//22244 23548//22289 +f 23507//22248 23552//22293 23553//22294 23510//22251 +f 23552//22293 23551//22292 23554//22295 23553//22294 +f 23555//22296 23553//22294 23554//22295 23556//22297 +f 23512//22253 23510//22251 23553//22294 23555//22296 +f 23555//22296 23557//22298 23514//22255 23512//22253 +f 23556//22297 23558//22299 23557//22298 23555//22296 +f 23559//22300 23557//22298 23558//22299 23560//22301 +f 23516//22257 23514//22255 23557//22298 23559//22300 +f 23559//22300 23561//22302 23518//22259 23516//22257 +f 23560//22301 23562//22303 23561//22302 23559//22300 +f 23563//22304 23561//22302 23562//22303 23564//22305 +f 23520//22261 23518//22259 23561//22302 23563//22304 +f 23563//22304 23565//22306 23522//22263 23520//22261 +f 23564//22305 23566//22307 23565//22306 23563//22304 +f 23567//22308 23565//22306 23566//22307 23568//22309 +f 23524//22265 23522//22263 23565//22306 23567//22308 +f 23569//22310 23570//22311 23528//22269 23527//22268 +f 23571//22312 23572//22313 23570//22311 23569//22310 +f 23573//22314 23570//22311 23572//22313 23574//22315 +f 23530//22271 23528//22269 23570//22311 23573//22314 +f 23573//22314 23575//22316 23532//22273 23530//22271 +f 23574//22315 23576//22317 23575//22316 23573//22314 +f 23577//22318 23575//22316 23576//22317 23578//22319 +f 23534//22275 23532//22273 23575//22316 23577//22318 +f 23577//22318 23579//22320 23536//22277 23534//22275 +f 23578//22319 23580//22321 23579//22320 23577//22318 +f 23581//22322 23579//22320 23580//22321 23582//22323 +f 23538//22279 23536//22277 23579//22320 23581//22322 +f 23581//22322 23583//22324 23540//22281 23538//22279 +f 23582//22323 23584//22325 23583//22324 23581//22322 +f 23585//22326 23583//22324 23584//22325 23586//22327 +f 23542//22283 23540//22281 23583//22324 23585//22326 +f 23585//22326 23587//22328 23544//22285 23542//22283 +f 23586//22327 23588//22329 23587//22328 23585//22326 +f 23589//22330 23590//22331 23587//22328 23588//22329 +f 23546//22287 23544//22285 23587//22328 23590//22331 +f 23590//22331 23591//22332 23592//22333 23546//22287 +f 23590//22331 23589//22330 23593//22334 23591//22332 +f 23594//22335 23591//22332 23593//22334 23595//22336 +f 23596//22337 23592//22333 23591//22332 23594//22335 +f 23597//22338 23598//22339 23599//22340 23600//22341 +f 23598//22339 23601//22342 23602//22343 23599//22340 +f 23603//22344 23604//22345 23599//22340 23602//22343 +f 23604//22345 23549//22290 23600//22341 23599//22340 +f 23549//22290 23604//22345 23605//22346 23550//22291 +f 23604//22345 23603//22344 23606//22347 23605//22346 +f 23607//22348 23605//22346 23606//22347 23608//22349 +f 23607//22348 23551//22292 23550//22291 23605//22346 +f 23607//22348 23609//22350 23554//22295 23551//22292 +f 23608//22349 23610//22351 23609//22350 23607//22348 +f 23611//22352 23609//22350 23610//22351 23612//22353 +f 23556//22297 23554//22295 23609//22350 23611//22352 +f 23611//22352 23613//22354 23558//22299 23556//22297 +f 23612//22353 23614//22355 23613//22354 23611//22352 +f 23615//22356 23613//22354 23614//22355 23616//22357 +f 23560//22301 23558//22299 23613//22354 23615//22356 +f 23615//22356 23617//22358 23562//22303 23560//22301 +f 23616//22357 23618//22359 23617//22358 23615//22356 +f 23619//22360 23617//22358 23618//22359 23620//22361 +f 23564//22305 23562//22303 23617//22358 23619//22360 +f 23619//22360 23621//22362 23566//22307 23564//22305 +f 23620//22361 23622//22363 23621//22362 23619//22360 +f 23623//22364 23621//22362 23622//22363 23624//22365 +f 23568//22309 23566//22307 23621//22362 23623//22364 +f 23625//22366 23626//22367 23572//22313 23571//22312 +f 23627//22368 23628//22369 23626//22367 23625//22366 +f 23629//22370 23626//22367 23628//22369 23630//22371 +f 23574//22315 23572//22313 23626//22367 23629//22370 +f 23629//22370 23631//22372 23576//22317 23574//22315 +f 23630//22371 23632//22373 23631//22372 23629//22370 +f 23633//22374 23631//22372 23632//22373 23634//22375 +f 23578//22319 23576//22317 23631//22372 23633//22374 +f 23633//22374 23635//22376 23580//22321 23578//22319 +f 23634//22375 23636//22377 23635//22376 23633//22374 +f 23637//22378 23635//22376 23636//22377 23638//22379 +f 23582//22323 23580//22321 23635//22376 23637//22378 +f 23637//22378 23639//22380 23584//22325 23582//22323 +f 23638//22379 23640//22381 23639//22380 23637//22378 +f 23641//22382 23639//22380 23640//22381 23642//22383 +f 23586//22327 23584//22325 23639//22380 23641//22382 +f 23641//22382 23643//22384 23588//22329 23586//22327 +f 23642//22383 23644//22385 23643//22384 23641//22382 +f 23645//22386 23643//22384 23644//22385 23646//22387 +f 23589//22330 23588//22329 23643//22384 23645//22386 +f 23589//22330 23645//22386 23647//22388 23593//22334 +f 23646//22387 23648//22389 23647//22388 23645//22386 +f 23649//22390 23647//22388 23648//22389 23650//22391 +f 23595//22336 23593//22334 23647//22388 23649//22390 +f 23649//22390 23651//22392 23652//22393 23595//22336 +f 23650//22391 23653//22394 23651//22392 23649//22390 +f 23654//22395 23651//22392 23653//22394 23655//22396 +f 23656//22397 23652//22393 23651//22392 23654//22395 +f 23657//22398 23658//22399 23659//22400 23660//22401 +f 23661//22402 23662//22403 23658//22399 23657//22398 +f 23663//22404 23658//22399 23662//22403 23664//22405 +f 23665//22406 23659//22400 23658//22399 23663//22404 +f 23663//22404 23666//22407 23667//22408 23665//22406 +f 23664//22405 23668//22409 23666//22407 23663//22404 +f 23669//22410 23666//22407 23668//22409 23670//22411 +f 23671//22412 23667//22408 23666//22407 23669//22410 +f 23671//22412 23669//22410 23672//22413 23673//22414 +f 23669//22410 23670//22411 23674//22415 23672//22413 +f 23675//22416 23676//22417 23672//22413 23674//22415 +f 23676//22417 23677//22418 23673//22414 23672//22413 +f 23677//22418 23676//22417 23678//22419 23679//22420 +f 23676//22417 23675//22416 23680//22421 23678//22419 +f 23681//22422 23682//22423 23678//22419 23680//22421 +f 23682//22423 23683//22424 23679//22420 23678//22419 +f 23684//22425 23685//22426 23686//22427 23687//22428 +f 23685//22426 23688//22429 23689//22430 23686//22427 +f 23690//22431 23691//22432 23686//22427 23689//22430 +f 23691//22432 23601//22342 23687//22428 23686//22427 +f 23601//22342 23691//22432 23692//22433 23602//22343 +f 23691//22432 23690//22431 23693//22434 23692//22433 +f 23694//22435 23695//22436 23692//22433 23693//22434 +f 23695//22436 23603//22344 23602//22343 23692//22433 +f 23603//22344 23695//22436 23696//22437 23606//22347 +f 23695//22436 23694//22435 23697//22438 23696//22437 +f 23698//22439 23696//22437 23697//22438 23699//22440 +f 23608//22349 23606//22347 23696//22437 23698//22439 +f 23698//22439 23700//22441 23610//22351 23608//22349 +f 23699//22440 23701//22442 23700//22441 23698//22439 +f 23702//22443 23700//22441 23701//22442 23703//22444 +f 23612//22353 23610//22351 23700//22441 23702//22443 +f 23702//22443 23704//22445 23614//22355 23612//22353 +f 23703//22444 23705//22446 23704//22445 23702//22443 +f 23706//22447 23704//22445 23705//22446 23707//22448 +f 23616//22357 23614//22355 23704//22445 23706//22447 +f 23706//22447 23708//22449 23618//22359 23616//22357 +f 23707//22448 23709//22450 23708//22449 23706//22447 +f 23710//22451 23708//22449 23709//22450 23711//22452 +f 23620//22361 23618//22359 23708//22449 23710//22451 +f 23710//22451 23712//22453 23622//22363 23620//22361 +f 23711//22452 23713//22454 23712//22453 23710//22451 +f 23714//22455 23712//22453 23713//22454 23715//22456 +f 23624//22365 23622//22363 23712//22453 23714//22455 +f 23716//22457 23717//22458 23628//22369 23627//22368 +f 23718//22459 23719//22460 23717//22458 23716//22457 +f 23720//22461 23717//22458 23719//22460 23721//22462 +f 23630//22371 23628//22369 23717//22458 23720//22461 +f 23720//22461 23722//22463 23632//22373 23630//22371 +f 23721//22462 23723//22464 23722//22463 23720//22461 +f 23724//22465 23722//22463 23723//22464 23725//22466 +f 23634//22375 23632//22373 23722//22463 23724//22465 +f 23724//22465 23726//22467 23636//22377 23634//22375 +f 23725//22466 23727//22468 23726//22467 23724//22465 +f 23728//22469 23726//22467 23727//22468 23729//22470 +f 23638//22379 23636//22377 23726//22467 23728//22469 +f 23728//22469 23730//22471 23640//22381 23638//22379 +f 23729//22470 23731//22472 23730//22471 23728//22469 +f 23732//22473 23730//22471 23731//22472 23733//22474 +f 23642//22383 23640//22381 23730//22471 23732//22473 +f 23732//22473 23734//22475 23644//22385 23642//22383 +f 23733//22474 23735//22476 23734//22475 23732//22473 +f 23736//22477 23734//22475 23735//22476 23737//22478 +f 23646//22387 23644//22385 23734//22475 23736//22477 +f 23736//22477 23738//22479 23648//22389 23646//22387 +f 23737//22478 23739//22480 23738//22479 23736//22477 +f 23740//22481 23738//22479 23739//22480 23741//22482 +f 23650//22391 23648//22389 23738//22479 23740//22481 +f 23740//22481 23742//22483 23653//22394 23650//22391 +f 23741//22482 23743//22484 23742//22483 23740//22481 +f 23744//22485 23742//22483 23743//22484 23745//22486 +f 23655//22396 23653//22394 23742//22483 23744//22485 +f 23744//22485 23746//22487 23747//22488 23655//22396 +f 23745//22486 23748//22489 23746//22487 23744//22485 +f 23749//22490 23746//22487 23748//22489 23750//22491 +f 23751//22492 23747//22488 23746//22487 23749//22490 +f 23749//22490 23752//22493 23753//22494 23751//22492 +f 23750//22491 23754//22495 23752//22493 23749//22490 +f 23755//22496 23752//22493 23754//22495 23756//22497 +f 23757//22498 23753//22494 23752//22493 23755//22496 +f 23755//22496 23758//22499 23759//22500 23757//22498 +f 23756//22497 23760//22501 23758//22499 23755//22496 +f 23761//22502 23758//22499 23760//22501 23762//22503 +f 23763//22504 23759//22500 23758//22499 23761//22502 +f 23761//22502 23764//22505 23765//22506 23763//22504 +f 23762//22503 23766//22507 23764//22505 23761//22502 +f 23767//22508 23764//22505 23766//22507 23768//22509 +f 23767//22508 23769//22510 23765//22506 23764//22505 +f 23769//22510 23767//22508 23770//22511 23771//22512 +f 23768//22509 23772//22513 23770//22511 23767//22508 +f 23773//22514 23770//22511 23772//22513 23774//22515 +f 23773//22514 23775//22516 23771//22512 23770//22511 +f 23775//22516 23773//22514 23776//22517 23777//22518 +f 23774//22515 23778//22519 23776//22517 23773//22514 +f 23779//22520 23776//22517 23778//22519 23780//22521 +f 23779//22520 23688//22429 23777//22518 23776//22517 +f 23688//22429 23779//22520 23781//22522 23689//22430 +f 23780//22521 23782//22523 23781//22522 23779//22520 +f 23783//22524 23781//22522 23782//22523 23784//22525 +f 23783//22524 23690//22431 23689//22430 23781//22522 +f 23690//22431 23783//22524 23785//22526 23693//22434 +f 23784//22525 23786//22527 23785//22526 23783//22524 +f 23787//22528 23785//22526 23786//22527 23788//22529 +f 23787//22528 23694//22435 23693//22434 23785//22526 +f 23787//22528 23789//22530 23697//22438 23694//22435 +f 23788//22529 23790//22531 23789//22530 23787//22528 +f 23791//22532 23789//22530 23790//22531 23792//22533 +f 23699//22440 23697//22438 23789//22530 23791//22532 +f 23791//22532 23793//22534 23701//22442 23699//22440 +f 23792//22533 23794//22535 23793//22534 23791//22532 +f 23795//22536 23793//22534 23794//22535 23796//22537 +f 23703//22444 23701//22442 23793//22534 23795//22536 +f 23795//22536 23797//22538 23705//22446 23703//22444 +f 23796//22537 23798//22539 23797//22538 23795//22536 +f 23799//22540 23797//22538 23798//22539 23800//22541 +f 23707//22448 23705//22446 23797//22538 23799//22540 +f 23799//22540 23801//22542 23709//22450 23707//22448 +f 23800//22541 23802//22543 23801//22542 23799//22540 +f 23803//22544 23801//22542 23802//22543 23804//22545 +f 23711//22452 23709//22450 23801//22542 23803//22544 +f 23803//22544 23805//22546 23713//22454 23711//22452 +f 23804//22545 23806//22547 23805//22546 23803//22544 +f 23807//22548 23805//22546 23806//22547 23808//22549 +f 23715//22456 23713//22454 23805//22546 23807//22548 +f 23809//22550 23810//22551 23719//22460 23718//22459 +f 23811//22552 23812//22553 23810//22551 23809//22550 +f 23813//22554 23810//22551 23812//22553 23814//22555 +f 23721//22462 23719//22460 23810//22551 23813//22554 +f 23813//22554 23815//22556 23723//22464 23721//22462 +f 23814//22555 23816//22557 23815//22556 23813//22554 +f 23817//22558 23815//22556 23816//22557 23818//22559 +f 23725//22466 23723//22464 23815//22556 23817//22558 +f 23817//22558 23819//22560 23727//22468 23725//22466 +f 23818//22559 23820//22561 23819//22560 23817//22558 +f 23821//22562 23819//22560 23820//22561 23822//22563 +f 23729//22470 23727//22468 23819//22560 23821//22562 +f 23821//22562 23823//22564 23731//22472 23729//22470 +f 23822//22563 23824//22565 23823//22564 23821//22562 +f 23825//22566 23823//22564 23824//22565 23826//22567 +f 23733//22474 23731//22472 23823//22564 23825//22566 +f 23825//22566 23827//22568 23735//22476 23733//22474 +f 23826//22567 23828//22569 23827//22568 23825//22566 +f 23829//22570 23827//22568 23828//22569 23830//22571 +f 23737//22478 23735//22476 23827//22568 23829//22570 +f 23829//22570 23831//22572 23739//22480 23737//22478 +f 23830//22571 23832//22573 23831//22572 23829//22570 +f 23833//22574 23831//22572 23832//22573 23834//22575 +f 23741//22482 23739//22480 23831//22572 23833//22574 +f 23833//22574 23835//22576 23743//22484 23741//22482 +f 23834//22575 23836//22577 23835//22576 23833//22574 +f 23837//22578 23835//22576 23836//22577 23838//22579 +f 23745//22486 23743//22484 23835//22576 23837//22578 +f 23837//22578 23839//22580 23748//22489 23745//22486 +f 23838//22579 23840//22581 23839//22580 23837//22578 +f 23841//22582 23839//22580 23840//22581 23842//22583 +f 23750//22491 23748//22489 23839//22580 23841//22582 +f 23841//22582 23843//22584 23754//22495 23750//22491 +f 23842//22583 23844//22585 23843//22584 23841//22582 +f 23845//22586 23843//22584 23844//22585 23846//22587 +f 23756//22497 23754//22495 23843//22584 23845//22586 +f 23845//22586 23847//22588 23760//22501 23756//22497 +f 23846//22587 23848//22589 23847//22588 23845//22586 +f 23849//22590 23847//22588 23848//22589 23850//22591 +f 23762//22503 23760//22501 23847//22588 23849//22590 +f 23849//22590 23851//22592 23766//22507 23762//22503 +f 23850//22591 23852//22593 23851//22592 23849//22590 +f 23853//22594 23851//22592 23852//22593 23854//22595 +f 23768//22509 23766//22507 23851//22592 23853//22594 +f 23853//22594 23855//22596 23772//22513 23768//22509 +f 23854//22595 23856//22597 23855//22596 23853//22594 +f 23857//22598 23855//22596 23856//22597 23858//22599 +f 23774//22515 23772//22513 23855//22596 23857//22598 +f 23857//22598 23859//22600 23778//22519 23774//22515 +f 23858//22599 23860//22601 23859//22600 23857//22598 +f 23861//22602 23859//22600 23860//22601 23862//22603 +f 23780//22521 23778//22519 23859//22600 23861//22602 +f 23861//22602 23863//22604 23782//22523 23780//22521 +f 23862//22603 23864//22605 23863//22604 23861//22602 +f 23865//22606 23863//22604 23864//22605 23866//22607 +f 23784//22525 23782//22523 23863//22604 23865//22606 +f 23865//22606 23867//22608 23786//22527 23784//22525 +f 23866//22607 23868//22609 23867//22608 23865//22606 +f 23869//22610 23867//22608 23868//22609 23870//22611 +f 23788//22529 23786//22527 23867//22608 23869//22610 +f 23869//22610 23871//22612 23790//22531 23788//22529 +f 23870//22611 23872//22613 23871//22612 23869//22610 +f 23873//22614 23871//22612 23872//22613 23874//22615 +f 23792//22533 23790//22531 23871//22612 23873//22614 +f 23873//22614 23875//22616 23794//22535 23792//22533 +f 23874//22615 23876//22617 23875//22616 23873//22614 +f 23877//22618 23875//22616 23876//22617 23878//22619 +f 23796//22537 23794//22535 23875//22616 23877//22618 +f 23877//22618 23879//22620 23798//22539 23796//22537 +f 23878//22619 23880//22621 23879//22620 23877//22618 +f 23881//22622 23879//22620 23880//22621 23882//22623 +f 23800//22541 23798//22539 23879//22620 23881//22622 +f 23881//22622 23883//22624 23802//22543 23800//22541 +f 23882//22623 23884//22625 23883//22624 23881//22622 +f 23885//22626 23883//22624 23884//22625 23886//22627 +f 23804//22545 23802//22543 23883//22624 23885//22626 +f 23885//22626 23887//22628 23806//22547 23804//22545 +f 23886//22627 23888//22629 23887//22628 23885//22626 +f 23889//22630 23887//22628 23888//22629 23890//22631 +f 23808//22549 23806//22547 23887//22628 23889//22630 +f 23891//22632 23892//22633 23812//22553 23811//22552 +f 23893//22634 23894//22635 23892//22633 23891//22632 +f 23895//22636 23892//22633 23894//22635 23896//22637 +f 23814//22555 23812//22553 23892//22633 23895//22636 +f 23895//22636 23897//22638 23816//22557 23814//22555 +f 23896//22637 23898//22639 23897//22638 23895//22636 +f 23899//22640 23900//22641 23897//22638 23898//22639 +f 23818//22559 23816//22557 23897//22638 23900//22641 +f 23900//22641 23901//22642 23820//22561 23818//22559 +f 23899//22640 23902//22643 23901//22642 23900//22641 +f 23903//22644 23904//22645 23901//22642 23902//22643 +f 23822//22563 23820//22561 23901//22642 23904//22645 +f 23904//22645 23905//22646 23824//22565 23822//22563 +f 23904//22645 23903//22644 23906//22647 23905//22646 +f 23907//22648 23908//22649 23905//22646 23906//22647 +f 23826//22567 23824//22565 23905//22646 23908//22649 +f 23908//22649 23909//22650 23828//22569 23826//22567 +f 23907//22648 23910//22651 23909//22650 23908//22649 +f 23911//22652 23909//22650 23910//22651 23912//22653 +f 23830//22571 23828//22569 23909//22650 23911//22652 +f 23911//22652 23913//22654 23832//22573 23830//22571 +f 23912//22653 23914//22655 23913//22654 23911//22652 +f 23915//22656 23916//22657 23913//22654 23914//22655 +f 23834//22575 23832//22573 23913//22654 23916//22657 +f 23916//22657 23917//22658 23836//22577 23834//22575 +f 23915//22656 23918//22659 23917//22658 23916//22657 +f 23919//22660 23920//22661 23917//22658 23918//22659 +f 23838//22579 23836//22577 23917//22658 23920//22661 +f 23920//22661 23921//22662 23840//22581 23838//22579 +f 23920//22661 23919//22660 23922//22663 23921//22662 +f 23923//22664 23924//22665 23921//22662 23922//22663 +f 23842//22583 23840//22581 23921//22662 23924//22665 +f 23924//22665 23925//22666 23844//22585 23842//22583 +f 23923//22664 23926//22667 23925//22666 23924//22665 +f 23927//22668 23925//22666 23926//22667 23928//22669 +f 23846//22587 23844//22585 23925//22666 23927//22668 +f 23927//22668 23929//22670 23848//22589 23846//22587 +f 23928//22669 23930//22671 23929//22670 23927//22668 +f 23931//22672 23932//22673 23929//22670 23930//22671 +f 23850//22591 23848//22589 23929//22670 23932//22673 +f 23932//22673 23933//22674 23852//22593 23850//22591 +f 23931//22672 23934//22675 23933//22674 23932//22673 +f 23935//22676 23936//22677 23933//22674 23934//22675 +f 23854//22595 23852//22593 23933//22674 23936//22677 +f 23936//22677 23937//22678 23856//22597 23854//22595 +f 23936//22677 23935//22676 23938//22679 23937//22678 +f 23939//22680 23940//22681 23937//22678 23938//22679 +f 23858//22599 23856//22597 23937//22678 23940//22681 +f 23940//22681 23941//22682 23860//22601 23858//22599 +f 23939//22680 23942//22683 23941//22682 23940//22681 +f 23943//22684 23941//22682 23942//22683 23944//22685 +f 23862//22603 23860//22601 23941//22682 23943//22684 +f 23943//22684 23945//22686 23864//22605 23862//22603 +f 23944//22685 23946//22687 23945//22686 23943//22684 +f 23947//22688 23948//22689 23945//22686 23946//22687 +f 23866//22607 23864//22605 23945//22686 23948//22689 +f 23948//22689 23949//22690 23868//22609 23866//22607 +f 23947//22688 23950//22691 23949//22690 23948//22689 +f 23951//22692 23952//22693 23949//22690 23950//22691 +f 23870//22611 23868//22609 23949//22690 23952//22693 +f 23952//22693 23953//22694 23872//22613 23870//22611 +f 23952//22693 23951//22692 23954//22695 23953//22694 +f 23955//22696 23956//22697 23953//22694 23954//22695 +f 23874//22615 23872//22613 23953//22694 23956//22697 +f 23956//22697 23957//22698 23876//22617 23874//22615 +f 23955//22696 23958//22699 23957//22698 23956//22697 +f 23959//22700 23957//22698 23958//22699 23960//22701 +f 23878//22619 23876//22617 23957//22698 23959//22700 +f 23959//22700 23961//22702 23880//22621 23878//22619 +f 23960//22701 23962//22703 23961//22702 23959//22700 +f 23963//22704 23964//22705 23961//22702 23962//22703 +f 23882//22623 23880//22621 23961//22702 23964//22705 +f 23964//22705 23965//22706 23884//22625 23882//22623 +f 23963//22704 23966//22707 23965//22706 23964//22705 +f 23967//22708 23968//22709 23965//22706 23966//22707 +f 23886//22627 23884//22625 23965//22706 23968//22709 +f 23968//22709 23969//22710 23888//22629 23886//22627 +f 23968//22709 23967//22708 23970//22711 23969//22710 +f 23971//22712 23972//22713 23969//22710 23970//22711 +f 23890//22631 23888//22629 23969//22710 23972//22713 +f 23973//22714 23974//22715 23975//22716 23976//22717 +f 22922//21663 22921//21662 23974//22715 23973//22714 +f 23977//22718 23974//22715 22921//21662 22927//21668 +f 23978//22719 23975//22716 23974//22715 23977//22718 +f 23977//22718 23979//22720 23980//22721 23978//22719 +f 22927//21668 22929//21670 23979//22720 23977//22718 +f 23981//22722 23979//22720 22929//21670 22933//21674 +f 23982//22723 23980//22721 23979//22720 23981//22722 +f 23981//22722 23983//22724 23984//22725 23982//22723 +f 22933//21674 22935//21676 23983//22724 23981//22722 +f 23985//22726 23983//22724 22935//21676 22939//21680 +f 23986//22727 23984//22725 23983//22724 23985//22726 +f 23985//22726 23987//22728 23988//22729 23986//22727 +f 22939//21680 22941//21682 23987//22728 23985//22726 +f 23989//22730 23987//22728 22941//21682 22945//21686 +f 23990//22731 23988//22729 23987//22728 23989//22730 +f 23989//22730 23991//22732 23992//22733 23990//22731 +f 22945//21686 22947//21688 23991//22732 23989//22730 +f 23993//22734 23991//22732 22947//21688 22951//21692 +f 23994//22735 23992//22733 23991//22732 23993//22734 +f 23993//22734 23995//22736 23996//22737 23994//22735 +f 22951//21692 22953//21694 23995//22736 23993//22734 +f 23997//22738 23995//22736 22953//21694 22957//21698 +f 23998//22739 23996//22737 23995//22736 23997//22738 +f 23997//22738 23999//22740 24000//22741 23998//22739 +f 22957//21698 22959//21700 23999//22740 23997//22738 +f 24001//22742 23999//22740 22959//21700 22963//21704 +f 24002//22743 24000//22741 23999//22740 24001//22742 +f 24001//22742 24003//22744 24004//22745 24002//22743 +f 22963//21704 22965//21706 24003//22744 24001//22742 +f 24005//22746 24003//22744 22965//21706 22969//21710 +f 24006//22747 24004//22745 24003//22744 24005//22746 +f 24005//22746 24007//22748 24008//22749 24006//22747 +f 22969//21710 22971//21712 24007//22748 24005//22746 +f 24009//22750 24007//22748 22971//21712 22975//21716 +f 24010//22751 24008//22749 24007//22748 24009//22750 +f 24009//22750 24011//22752 24012//22753 24010//22751 +f 22975//21716 22977//21718 24011//22752 24009//22750 +f 24013//22754 24011//22752 22977//21718 22981//21722 +f 24014//22755 24012//22753 24011//22752 24013//22754 +f 24013//22754 24015//22756 24016//22757 24014//22755 +f 22981//21722 22983//21724 24015//22756 24013//22754 +f 24017//22758 24015//22756 22983//21724 22987//21728 +f 24018//22759 24016//22757 24015//22756 24017//22758 +f 24017//22758 24019//22760 24020//22761 24018//22759 +f 22987//21728 22989//21730 24019//22760 24017//22758 +f 24021//22762 24019//22760 22989//21730 22993//21734 +f 24022//22763 24020//22761 24019//22760 24021//22762 +f 24021//22762 24023//22764 24024//22765 24022//22763 +f 22993//21734 22995//21736 24023//22764 24021//22762 +f 24025//22766 24023//22764 22995//21736 22999//21740 +f 24026//22767 24024//22765 24023//22764 24025//22766 +f 24025//22766 24027//22768 24028//22769 24026//22767 +f 22999//21740 23001//21742 24027//22768 24025//22766 +f 24029//22770 24027//22768 23001//21742 23005//21746 +f 24030//22771 24028//22769 24027//22768 24029//22770 +f 24029//22770 24031//22772 24032//22773 24030//22771 +f 23005//21746 23007//21748 24031//22772 24029//22770 +f 24033//22774 24031//22772 23007//21748 23011//21752 +f 24034//22775 24032//22773 24031//22772 24033//22774 +f 24033//22774 24035//22776 24036//22777 24034//22775 +f 23011//21752 23013//21754 24035//22776 24033//22774 +f 24037//22778 24035//22776 23013//21754 23017//21758 +f 24038//22779 24036//22777 24035//22776 24037//22778 +f 24037//22778 24039//22780 24040//22781 24038//22779 +f 23017//21758 23019//21760 24039//22780 24037//22778 +f 24041//22782 24039//22780 23019//21760 23023//21764 +f 24042//22783 24040//22781 24039//22780 24041//22782 +f 24041//22782 24043//22784 24044//22785 24042//22783 +f 23023//21764 23025//21766 24043//22784 24041//22782 +f 24045//22786 24043//22784 23025//21766 23029//21770 +f 24046//22787 24044//22785 24043//22784 24045//22786 +f 24045//22786 24047//22788 24048//22789 24046//22787 +f 23029//21770 23031//21772 24047//22788 24045//22786 +f 24049//22790 24047//22788 23031//21772 23035//21776 +f 24050//22791 24048//22789 24047//22788 24049//22790 +f 24049//22790 24051//22792 24052//22793 24050//22791 +f 23035//21776 23037//21778 24051//22792 24049//22790 +f 24053//22794 24051//22792 23037//21778 23041//21782 +f 24054//22795 24052//22793 24051//22792 24053//22794 +f 24055//22796 24056//22797 24057//22798 24058//22799 +f 23976//22717 23975//22716 24056//22797 24055//22796 +f 24059//22800 24056//22797 23975//22716 23978//22719 +f 24060//22801 24057//22798 24056//22797 24059//22800 +f 24059//22800 24061//22802 24062//22803 24060//22801 +f 23978//22719 23980//22721 24061//22802 24059//22800 +f 24063//22804 24061//22802 23980//22721 23982//22723 +f 24064//22805 24062//22803 24061//22802 24063//22804 +f 24063//22804 24065//22806 24066//22807 24064//22805 +f 23982//22723 23984//22725 24065//22806 24063//22804 +f 24067//22808 24065//22806 23984//22725 23986//22727 +f 24068//22809 24066//22807 24065//22806 24067//22808 +f 24067//22808 24069//22810 24070//22811 24068//22809 +f 23986//22727 23988//22729 24069//22810 24067//22808 +f 24071//22812 24069//22810 23988//22729 23990//22731 +f 24072//22813 24070//22811 24069//22810 24071//22812 +f 24071//22812 24073//22814 24074//22815 24072//22813 +f 23990//22731 23992//22733 24073//22814 24071//22812 +f 24075//22816 24073//22814 23992//22733 23994//22735 +f 24076//22817 24074//22815 24073//22814 24075//22816 +f 24075//22816 24077//22818 24078//22819 24076//22817 +f 23994//22735 23996//22737 24077//22818 24075//22816 +f 24079//22820 24077//22818 23996//22737 23998//22739 +f 24080//22821 24078//22819 24077//22818 24079//22820 +f 24079//22820 24081//22822 24082//22823 24080//22821 +f 23998//22739 24000//22741 24081//22822 24079//22820 +f 24083//22824 24081//22822 24000//22741 24002//22743 +f 24084//22825 24082//22823 24081//22822 24083//22824 +f 24083//22824 24085//22826 24086//22827 24084//22825 +f 24002//22743 24004//22745 24085//22826 24083//22824 +f 24087//22828 24085//22826 24004//22745 24006//22747 +f 24088//22829 24086//22827 24085//22826 24087//22828 +f 24087//22828 24089//22830 24090//22831 24088//22829 +f 24006//22747 24008//22749 24089//22830 24087//22828 +f 24091//22832 24089//22830 24008//22749 24010//22751 +f 24092//22833 24090//22831 24089//22830 24091//22832 +f 24091//22832 24093//22834 24094//22835 24092//22833 +f 24010//22751 24012//22753 24093//22834 24091//22832 +f 24095//22836 24093//22834 24012//22753 24014//22755 +f 24096//22837 24094//22835 24093//22834 24095//22836 +f 24095//22836 24097//22838 24098//22839 24096//22837 +f 24014//22755 24016//22757 24097//22838 24095//22836 +f 24099//22840 24097//22838 24016//22757 24018//22759 +f 24100//22841 24098//22839 24097//22838 24099//22840 +f 24099//22840 24101//22842 24102//22843 24100//22841 +f 24018//22759 24020//22761 24101//22842 24099//22840 +f 24103//22844 24101//22842 24020//22761 24022//22763 +f 24104//22845 24102//22843 24101//22842 24103//22844 +f 24103//22844 24105//22846 24106//22847 24104//22845 +f 24022//22763 24024//22765 24105//22846 24103//22844 +f 24107//22848 24105//22846 24024//22765 24026//22767 +f 24108//22849 24106//22847 24105//22846 24107//22848 +f 24107//22848 24109//22850 24110//22851 24108//22849 +f 24026//22767 24028//22769 24109//22850 24107//22848 +f 24111//22852 24109//22850 24028//22769 24030//22771 +f 24112//22853 24110//22851 24109//22850 24111//22852 +f 24111//22852 24113//22854 24114//22855 24112//22853 +f 24030//22771 24032//22773 24113//22854 24111//22852 +f 24115//22856 24113//22854 24032//22773 24034//22775 +f 24116//22857 24114//22855 24113//22854 24115//22856 +f 24115//22856 24117//22858 24118//22859 24116//22857 +f 24034//22775 24036//22777 24117//22858 24115//22856 +f 24119//22860 24117//22858 24036//22777 24038//22779 +f 24120//22861 24118//22859 24117//22858 24119//22860 +f 24119//22860 24121//22862 24122//22863 24120//22861 +f 24038//22779 24040//22781 24121//22862 24119//22860 +f 24123//22864 24121//22862 24040//22781 24042//22783 +f 24124//22865 24122//22863 24121//22862 24123//22864 +f 24123//22864 24125//22866 24126//22867 24124//22865 +f 24042//22783 24044//22785 24125//22866 24123//22864 +f 24127//22868 24125//22866 24044//22785 24046//22787 +f 24128//22869 24126//22867 24125//22866 24127//22868 +f 24127//22868 24129//22870 24130//22871 24128//22869 +f 24046//22787 24048//22789 24129//22870 24127//22868 +f 24131//22872 24129//22870 24048//22789 24050//22791 +f 24132//22873 24130//22871 24129//22870 24131//22872 +f 24131//22872 24133//22874 24134//22875 24132//22873 +f 24050//22791 24052//22793 24133//22874 24131//22872 +f 24135//22876 24133//22874 24052//22793 24054//22795 +f 24136//22877 24134//22875 24133//22874 24135//22876 +f 24137//22878 24138//22879 22924//21665 22923//21664 +f 23045//21786 23044//21785 24138//22879 24137//22878 +f 24139//22880 24138//22879 23044//21785 23050//21791 +f 22926//21667 22924//21665 24138//22879 24139//22880 +f 24139//22880 24140//22881 22930//21671 22926//21667 +f 23050//21791 23052//21793 24140//22881 24139//22880 +f 24141//22882 24140//22881 23052//21793 23056//21797 +f 22932//21673 22930//21671 24140//22881 24141//22882 +f 24141//22882 24142//22883 22936//21677 22932//21673 +f 23056//21797 23058//21799 24142//22883 24141//22882 +f 24143//22884 24142//22883 23058//21799 23062//21803 +f 22938//21679 22936//21677 24142//22883 24143//22884 +f 24143//22884 24144//22885 22942//21683 22938//21679 +f 23062//21803 23064//21805 24144//22885 24143//22884 +f 24145//22886 24144//22885 23064//21805 23068//21809 +f 22944//21685 22942//21683 24144//22885 24145//22886 +f 24145//22886 24146//22887 22948//21689 22944//21685 +f 23068//21809 23070//21811 24146//22887 24145//22886 +f 24147//22888 24146//22887 23070//21811 23074//21815 +f 22950//21691 22948//21689 24146//22887 24147//22888 +f 24147//22888 24148//22889 22954//21695 22950//21691 +f 23074//21815 23076//21817 24148//22889 24147//22888 +f 24149//22890 24148//22889 23076//21817 23080//21821 +f 22956//21697 22954//21695 24148//22889 24149//22890 +f 24149//22890 24150//22891 22960//21701 22956//21697 +f 24149//22890 23080//21821 23082//21823 24150//22891 +f 23086//21827 24151//22892 24150//22891 23082//21823 +f 22962//21703 22960//21701 24150//22891 24151//22892 +f 24151//22892 24152//22893 22966//21707 22962//21703 +f 24151//22892 23086//21827 23088//21829 24152//22893 +f 23092//21833 24153//22894 24152//22893 23088//21829 +f 22968//21709 22966//21707 24152//22893 24153//22894 +f 24153//22894 24154//22895 22972//21713 22968//21709 +f 24153//22894 23092//21833 23094//21835 24154//22895 +f 23098//21839 24155//22896 24154//22895 23094//21835 +f 22974//21715 22972//21713 24154//22895 24155//22896 +f 24155//22896 24156//22897 22978//21719 22974//21715 +f 24155//22896 23098//21839 23100//21841 24156//22897 +f 24157//22898 24156//22897 23100//21841 23104//21845 +f 22980//21721 22978//21719 24156//22897 24157//22898 +f 24157//22898 24158//22899 22984//21725 22980//21721 +f 23104//21845 23106//21847 24158//22899 24157//22898 +f 24159//22900 24158//22899 23106//21847 23110//21851 +f 22986//21727 22984//21725 24158//22899 24159//22900 +f 24159//22900 24160//22901 22990//21731 22986//21727 +f 23110//21851 23112//21853 24160//22901 24159//22900 +f 24161//22902 24160//22901 23112//21853 23116//21857 +f 22992//21733 22990//21731 24160//22901 24161//22902 +f 24161//22902 24162//22903 22996//21737 22992//21733 +f 23116//21857 23118//21859 24162//22903 24161//22902 +f 24163//22904 24162//22903 23118//21859 23122//21863 +f 22998//21739 22996//21737 24162//22903 24163//22904 +f 24163//22904 24164//22905 23002//21743 22998//21739 +f 23122//21863 23124//21865 24164//22905 24163//22904 +f 24165//22906 24164//22905 23124//21865 23128//21869 +f 23004//21745 23002//21743 24164//22905 24165//22906 +f 24165//22906 24166//22907 23008//21749 23004//21745 +f 23128//21869 23130//21871 24166//22907 24165//22906 +f 24167//22908 24166//22907 23130//21871 23134//21875 +f 23010//21751 23008//21749 24166//22907 24167//22908 +f 24167//22908 24168//22909 23014//21755 23010//21751 +f 23134//21875 23136//21877 24168//22909 24167//22908 +f 24169//22910 24168//22909 23136//21877 23140//21881 +f 23016//21757 23014//21755 24168//22909 24169//22910 +f 24169//22910 24170//22911 23020//21761 23016//21757 +f 23140//21881 23142//21883 24170//22911 24169//22910 +f 24171//22912 24170//22911 23142//21883 23146//21887 +f 23022//21763 23020//21761 24170//22911 24171//22912 +f 24171//22912 24172//22913 23026//21767 23022//21763 +f 23146//21887 23148//21889 24172//22913 24171//22912 +f 24173//22914 24172//22913 23148//21889 23152//21893 +f 23028//21769 23026//21767 24172//22913 24173//22914 +f 24173//22914 24174//22915 23032//21773 23028//21769 +f 23152//21893 23154//21895 24174//22915 24173//22914 +f 24175//22916 24174//22915 23154//21895 23158//21899 +f 23034//21775 23032//21773 24174//22915 24175//22916 +f 24175//22916 24176//22917 23038//21779 23034//21775 +f 23158//21899 23160//21901 24176//22917 24175//22916 +f 24177//22918 24176//22917 23160//21901 23164//21905 +f 23040//21781 23038//21779 24176//22917 24177//22918 +f 24178//22919 24179//22920 24180//22921 24181//22922 +f 24058//22799 24057//22798 24179//22920 24178//22919 +f 24182//22923 24179//22920 24057//22798 24060//22801 +f 24183//22924 24180//22921 24179//22920 24182//22923 +f 24182//22923 24184//22925 24185//22926 24183//22924 +f 24060//22801 24062//22803 24184//22925 24182//22923 +f 24186//22927 24184//22925 24062//22803 24064//22805 +f 24187//22928 24185//22926 24184//22925 24186//22927 +f 24186//22927 24188//22929 24189//22930 24187//22928 +f 24064//22805 24066//22807 24188//22929 24186//22927 +f 24190//22931 24188//22929 24066//22807 24068//22809 +f 24191//22932 24189//22930 24188//22929 24190//22931 +f 24190//22931 24192//22933 24193//22934 24191//22932 +f 24068//22809 24070//22811 24192//22933 24190//22931 +f 24194//22935 24192//22933 24070//22811 24072//22813 +f 24195//22936 24193//22934 24192//22933 24194//22935 +f 24194//22935 24196//22937 24197//22938 24195//22936 +f 24072//22813 24074//22815 24196//22937 24194//22935 +f 24198//22939 24196//22937 24074//22815 24076//22817 +f 24199//22940 24197//22938 24196//22937 24198//22939 +f 24198//22939 24200//22941 24201//22942 24199//22940 +f 24076//22817 24078//22819 24200//22941 24198//22939 +f 24202//22943 24200//22941 24078//22819 24080//22821 +f 24203//22944 24201//22942 24200//22941 24202//22943 +f 24202//22943 24204//22945 24205//22946 24203//22944 +f 24080//22821 24082//22823 24204//22945 24202//22943 +f 24206//22947 24204//22945 24082//22823 24084//22825 +f 24207//22948 24205//22946 24204//22945 24206//22947 +f 24206//22947 24208//22949 24209//22950 24207//22948 +f 24084//22825 24086//22827 24208//22949 24206//22947 +f 24210//22951 24208//22949 24086//22827 24088//22829 +f 24211//22952 24209//22950 24208//22949 24210//22951 +f 24210//22951 24212//22953 24213//22954 24211//22952 +f 24088//22829 24090//22831 24212//22953 24210//22951 +f 24214//22955 24212//22953 24090//22831 24092//22833 +f 24215//22956 24213//22954 24212//22953 24214//22955 +f 24214//22955 24216//22957 24217//22958 24215//22956 +f 24092//22833 24094//22835 24216//22957 24214//22955 +f 24218//22959 24216//22957 24094//22835 24096//22837 +f 24219//22960 24217//22958 24216//22957 24218//22959 +f 24218//22959 24220//22961 24221//22962 24219//22960 +f 24096//22837 24098//22839 24220//22961 24218//22959 +f 24222//22963 24220//22961 24098//22839 24100//22841 +f 24223//22964 24221//22962 24220//22961 24222//22963 +f 24222//22963 24224//22965 24225//22966 24223//22964 +f 24100//22841 24102//22843 24224//22965 24222//22963 +f 24226//22967 24224//22965 24102//22843 24104//22845 +f 24227//22968 24225//22966 24224//22965 24226//22967 +f 24226//22967 24228//22969 24229//22970 24227//22968 +f 24104//22845 24106//22847 24228//22969 24226//22967 +f 24230//22971 24228//22969 24106//22847 24108//22849 +f 24231//22972 24229//22970 24228//22969 24230//22971 +f 24230//22971 24232//22973 24233//22974 24231//22972 +f 24108//22849 24110//22851 24232//22973 24230//22971 +f 24234//22975 24232//22973 24110//22851 24112//22853 +f 24235//22976 24233//22974 24232//22973 24234//22975 +f 24234//22975 24236//22977 24237//22978 24235//22976 +f 24112//22853 24114//22855 24236//22977 24234//22975 +f 24238//22979 24236//22977 24114//22855 24116//22857 +f 24239//22980 24237//22978 24236//22977 24238//22979 +f 24238//22979 24240//22981 24241//22982 24239//22980 +f 24116//22857 24118//22859 24240//22981 24238//22979 +f 24242//22983 24240//22981 24118//22859 24120//22861 +f 24243//22984 24241//22982 24240//22981 24242//22983 +f 24242//22983 24244//22985 24245//22986 24243//22984 +f 24120//22861 24122//22863 24244//22985 24242//22983 +f 24246//22987 24244//22985 24122//22863 24124//22865 +f 24247//22988 24245//22986 24244//22985 24246//22987 +f 24246//22987 24248//22989 24249//22990 24247//22988 +f 24124//22865 24126//22867 24248//22989 24246//22987 +f 24250//22991 24248//22989 24126//22867 24128//22869 +f 24251//22992 24249//22990 24248//22989 24250//22991 +f 24250//22991 24252//22993 24253//22994 24251//22992 +f 24128//22869 24130//22871 24252//22993 24250//22991 +f 24254//22995 24252//22993 24130//22871 24132//22873 +f 24255//22996 24253//22994 24252//22993 24254//22995 +f 24254//22995 24256//22997 24257//22998 24255//22996 +f 24132//22873 24134//22875 24256//22997 24254//22995 +f 24258//22999 24256//22997 24134//22875 24136//22877 +f 24259//23000 24257//22998 24256//22997 24258//22999 +f 24260//23001 24261//23002 22801//21539 22800//21538 +f 24181//22922 24180//22921 24261//23002 24260//23001 +f 24262//23003 24261//23002 24180//22921 24183//22924 +f 22803//21543 22801//21539 24261//23002 24262//23003 +f 24262//23003 24263//23004 22807//21548 22803//21543 +f 24183//22924 24185//22926 24263//23004 24262//23003 +f 24264//23005 24263//23004 24185//22926 24187//22928 +f 22809//21550 22807//21548 24263//23004 24264//23005 +f 24264//23005 24265//23006 22813//21554 22809//21550 +f 24187//22928 24189//22930 24265//23006 24264//23005 +f 24266//23007 24265//23006 24189//22930 24191//22932 +f 22815//21556 22813//21554 24265//23006 24266//23007 +f 24266//23007 24267//23008 22819//21560 22815//21556 +f 24191//22932 24193//22934 24267//23008 24266//23007 +f 24268//23009 24267//23008 24193//22934 24195//22936 +f 22821//21562 22819//21560 24267//23008 24268//23009 +f 24268//23009 24269//23010 22825//21566 22821//21562 +f 24195//22936 24197//22938 24269//23010 24268//23009 +f 24270//23011 24269//23010 24197//22938 24199//22940 +f 22827//21568 22825//21566 24269//23010 24270//23011 +f 24270//23011 24271//23012 22831//21572 22827//21568 +f 24199//22940 24201//22942 24271//23012 24270//23011 +f 24272//23013 24271//23012 24201//22942 24203//22944 +f 22833//21574 22831//21572 24271//23012 24272//23013 +f 24272//23013 24273//23014 22837//21578 22833//21574 +f 24203//22944 24205//22946 24273//23014 24272//23013 +f 24274//23015 24273//23014 24205//22946 24207//22948 +f 22839//21580 22837//21578 24273//23014 24274//23015 +f 24274//23015 24275//23016 22843//21584 22839//21580 +f 24207//22948 24209//22950 24275//23016 24274//23015 +f 24276//23017 24275//23016 24209//22950 24211//22952 +f 22845//21586 22843//21584 24275//23016 24276//23017 +f 24276//23017 24277//23018 22849//21590 22845//21586 +f 24211//22952 24213//22954 24277//23018 24276//23017 +f 24278//23019 24277//23018 24213//22954 24215//22956 +f 22851//21592 22849//21590 24277//23018 24278//23019 +f 24278//23019 24279//23020 22855//21596 22851//21592 +f 24215//22956 24217//22958 24279//23020 24278//23019 +f 24280//23021 24279//23020 24217//22958 24219//22960 +f 22857//21598 22855//21596 24279//23020 24280//23021 +f 24280//23021 24281//23022 22861//21602 22857//21598 +f 24219//22960 24221//22962 24281//23022 24280//23021 +f 24282//23023 24281//23022 24221//22962 24223//22964 +f 22863//21604 22861//21602 24281//23022 24282//23023 +f 24282//23023 24283//23024 22867//21608 22863//21604 +f 24223//22964 24225//22966 24283//23024 24282//23023 +f 24284//23025 24283//23024 24225//22966 24227//22968 +f 22869//21610 22867//21608 24283//23024 24284//23025 +f 24284//23025 24285//23026 22873//21614 22869//21610 +f 24227//22968 24229//22970 24285//23026 24284//23025 +f 24286//23027 24285//23026 24229//22970 24231//22972 +f 22875//21616 22873//21614 24285//23026 24286//23027 +f 24286//23027 24287//23028 22879//21620 22875//21616 +f 24231//22972 24233//22974 24287//23028 24286//23027 +f 24288//23029 24287//23028 24233//22974 24235//22976 +f 22881//21622 22879//21620 24287//23028 24288//23029 +f 24288//23029 24289//23030 22885//21626 22881//21622 +f 24235//22976 24237//22978 24289//23030 24288//23029 +f 24290//23031 24289//23030 24237//22978 24239//22980 +f 22887//21628 22885//21626 24289//23030 24290//23031 +f 24290//23031 24291//23032 22891//21632 22887//21628 +f 24239//22980 24241//22982 24291//23032 24290//23031 +f 24292//23033 24291//23032 24241//22982 24243//22984 +f 22893//21634 22891//21632 24291//23032 24292//23033 +f 24292//23033 24293//23034 22897//21638 22893//21634 +f 24243//22984 24245//22986 24293//23034 24292//23033 +f 24294//23035 24293//23034 24245//22986 24247//22988 +f 22899//21640 22897//21638 24293//23034 24294//23035 +f 24294//23035 24295//23036 22903//21644 22899//21640 +f 24247//22988 24249//22990 24295//23036 24294//23035 +f 24296//23037 24295//23036 24249//22990 24251//22992 +f 22905//21646 22903//21644 24295//23036 24296//23037 +f 24296//23037 24297//23038 22909//21650 22905//21646 +f 24251//22992 24253//22994 24297//23038 24296//23037 +f 24298//23039 24297//23038 24253//22994 24255//22996 +f 22911//21652 22909//21650 24297//23038 24298//23039 +f 24298//23039 24299//23040 22915//21656 22911//21652 +f 24255//22996 24257//22998 24299//23040 24298//23039 +f 24300//23041 24299//23040 24257//22998 24259//23000 +f 22917//21658 22915//21656 24299//23040 24300//23041 +f 22798//21545 24301//23042 24302//23043 22799//23044 +f 22804//21544 24303//23045 24301//23042 22798//21545 +f 24304//23046 24301//23042 24303//23045 24305//23047 +f 24306//23048 24302//23043 24301//23042 24304//23046 +f 22806//21547 24307//23049 24303//23045 22804//21544 +f 22810//21551 24308//23050 24307//23049 22806//21547 +f 24309//23051 24307//23049 24308//23050 24310//23052 +f 24305//23047 24303//23045 24307//23049 24309//23051 +f 22812//21553 24311//23053 24308//23050 22810//21551 +f 22816//21557 24312//23054 24311//23053 22812//21553 +f 24313//23055 24311//23053 24312//23054 24314//23056 +f 24310//23052 24308//23050 24311//23053 24313//23055 +f 22818//21559 24315//23057 24312//23054 22816//21557 +f 22822//21563 24316//23058 24315//23057 22818//21559 +f 24317//23059 24315//23057 24316//23058 24318//23060 +f 24314//23056 24312//23054 24315//23057 24317//23059 +f 22824//21565 24319//23061 24316//23058 22822//21563 +f 22828//21569 24320//23062 24319//23061 22824//21565 +f 24321//23063 24319//23061 24320//23062 24322//23064 +f 24318//23060 24316//23058 24319//23061 24321//23063 +f 22830//21571 24323//23065 24320//23062 22828//21569 +f 22834//21575 24324//23066 24323//23065 22830//21571 +f 24325//23067 24323//23065 24324//23066 24326//23068 +f 24322//23064 24320//23062 24323//23065 24325//23067 +f 22836//21577 24327//23069 24324//23066 22834//21575 +f 22840//21581 24328//23070 24327//23069 22836//21577 +f 24329//23071 24327//23069 24328//23070 24330//23072 +f 24326//23068 24324//23066 24327//23069 24329//23071 +f 22842//21583 24331//23073 24328//23070 22840//21581 +f 22846//21587 24332//23074 24331//23073 22842//21583 +f 24333//23075 24331//23073 24332//23074 24334//23076 +f 24330//23072 24328//23070 24331//23073 24333//23075 +f 22848//21589 24335//23077 24332//23074 22846//21587 +f 22852//21593 24336//23078 24335//23077 22848//21589 +f 24337//23079 24335//23077 24336//23078 24338//23080 +f 24334//23076 24332//23074 24335//23077 24337//23079 +f 22854//21595 24339//23081 24336//23078 22852//21593 +f 22858//21599 24340//23082 24339//23081 22854//21595 +f 24341//23083 24339//23081 24340//23082 24342//23084 +f 24338//23080 24336//23078 24339//23081 24341//23083 +f 22860//21601 24343//23085 24340//23082 22858//21599 +f 22864//21605 24344//23086 24343//23085 22860//21601 +f 24345//23087 24343//23085 24344//23086 24346//23088 +f 24342//23084 24340//23082 24343//23085 24345//23087 +f 22866//21607 24347//23089 24344//23086 22864//21605 +f 22870//21611 24348//23090 24347//23089 22866//21607 +f 24349//23091 24347//23089 24348//23090 24350//23092 +f 24346//23088 24344//23086 24347//23089 24349//23091 +f 22872//21613 24351//23093 24348//23090 22870//21611 +f 22876//21617 24352//23094 24351//23093 22872//21613 +f 24353//23095 24351//23093 24352//23094 24354//23096 +f 24350//23092 24348//23090 24351//23093 24353//23095 +f 22878//21619 24355//23097 24352//23094 22876//21617 +f 22882//21623 24356//23098 24355//23097 22878//21619 +f 24357//23099 24355//23097 24356//23098 24358//23100 +f 24354//23096 24352//23094 24355//23097 24357//23099 +f 22884//21625 24359//23101 24356//23098 22882//21623 +f 22888//21629 24360//23102 24359//23101 22884//21625 +f 24361//23103 24359//23101 24360//23102 24362//23104 +f 24358//23100 24356//23098 24359//23101 24361//23103 +f 22890//21631 24363//23105 24360//23102 22888//21629 +f 22894//21635 24364//23106 24363//23105 22890//21631 +f 24365//23107 24363//23105 24364//23106 24366//23108 +f 24362//23104 24360//23102 24363//23105 24365//23107 +f 22896//21637 24367//23109 24364//23106 22894//21635 +f 22900//21641 24368//23110 24367//23109 22896//21637 +f 24369//23111 24367//23109 24368//23110 24370//23112 +f 24366//23108 24364//23106 24367//23109 24369//23111 +f 22902//21643 24371//23113 24368//23110 22900//21641 +f 22906//21647 24372//23114 24371//23113 22902//21643 +f 24373//23115 24371//23113 24372//23114 24374//23116 +f 24370//23112 24368//23110 24371//23113 24373//23115 +f 22908//21649 24375//23117 24372//23114 22906//21647 +f 22912//21653 24376//23118 24375//23117 22908//21649 +f 24377//23119 24375//23117 24376//23118 24378//23120 +f 24374//23116 24372//23114 24375//23117 24377//23119 +f 22914//21655 24379//23121 24376//23118 22912//21653 +f 22918//21659 24380//23122 24379//23121 22914//21655 +f 24381//23123 24379//23121 24380//23122 24382//23124 +f 24378//23120 24376//23118 24379//23121 24381//23123 +f 24304//23046 24383//23125 24384//23126 24306//23048 +f 24305//23047 24385//23127 24383//23125 24304//23046 +f 24386//23128 24383//23125 24385//23127 24387//23129 +f 24388//23130 24384//23126 24383//23125 24386//23128 +f 24309//23051 24389//23131 24385//23127 24305//23047 +f 24310//23052 24390//23132 24389//23131 24309//23051 +f 24391//23133 24389//23131 24390//23132 24392//23134 +f 24387//23129 24385//23127 24389//23131 24391//23133 +f 24313//23055 24393//23135 24390//23132 24310//23052 +f 24314//23056 24394//23136 24393//23135 24313//23055 +f 24395//23137 24393//23135 24394//23136 24396//23138 +f 24392//23134 24390//23132 24393//23135 24395//23137 +f 24317//23059 24397//23139 24394//23136 24314//23056 +f 24318//23060 24398//23140 24397//23139 24317//23059 +f 24399//23141 24397//23139 24398//23140 24400//23142 +f 24396//23138 24394//23136 24397//23139 24399//23141 +f 24321//23063 24401//23143 24398//23140 24318//23060 +f 24322//23064 24402//23144 24401//23143 24321//23063 +f 24403//23145 24401//23143 24402//23144 24404//23146 +f 24400//23142 24398//23140 24401//23143 24403//23145 +f 24325//23067 24405//23147 24402//23144 24322//23064 +f 24326//23068 24406//23148 24405//23147 24325//23067 +f 24407//23149 24405//23147 24406//23148 24408//23150 +f 24404//23146 24402//23144 24405//23147 24407//23149 +f 24329//23071 24409//23151 24406//23148 24326//23068 +f 24330//23072 24410//23152 24409//23151 24329//23071 +f 24411//23153 24409//23151 24410//23152 24412//23154 +f 24408//23150 24406//23148 24409//23151 24411//23153 +f 24333//23075 24413//23155 24410//23152 24330//23072 +f 24334//23076 24414//23156 24413//23155 24333//23075 +f 24415//23157 24413//23155 24414//23156 24416//23158 +f 24412//23154 24410//23152 24413//23155 24415//23157 +f 24337//23079 24417//23159 24414//23156 24334//23076 +f 24338//23080 24418//23160 24417//23159 24337//23079 +f 24419//23161 24417//23159 24418//23160 24420//23162 +f 24416//23158 24414//23156 24417//23159 24419//23161 +f 24341//23083 24421//23163 24418//23160 24338//23080 +f 24342//23084 24422//23164 24421//23163 24341//23083 +f 24423//23165 24421//23163 24422//23164 24424//23166 +f 24420//23162 24418//23160 24421//23163 24423//23165 +f 24345//23087 24425//23167 24422//23164 24342//23084 +f 24346//23088 24426//23168 24425//23167 24345//23087 +f 24427//23169 24425//23167 24426//23168 24428//23170 +f 24424//23166 24422//23164 24425//23167 24427//23169 +f 24349//23091 24429//23171 24426//23168 24346//23088 +f 24350//23092 24430//23172 24429//23171 24349//23091 +f 24431//23173 24429//23171 24430//23172 24432//23174 +f 24428//23170 24426//23168 24429//23171 24431//23173 +f 24353//23095 24433//23175 24430//23172 24350//23092 +f 24354//23096 24434//23176 24433//23175 24353//23095 +f 24435//23177 24433//23175 24434//23176 24436//23178 +f 24432//23174 24430//23172 24433//23175 24435//23177 +f 24357//23099 24437//23179 24434//23176 24354//23096 +f 24358//23100 24438//23180 24437//23179 24357//23099 +f 24439//23181 24437//23179 24438//23180 24440//23182 +f 24436//23178 24434//23176 24437//23179 24439//23181 +f 24361//23103 24441//23183 24438//23180 24358//23100 +f 24362//23104 24442//23184 24441//23183 24361//23103 +f 24443//23185 24441//23183 24442//23184 24444//23186 +f 24440//23182 24438//23180 24441//23183 24443//23185 +f 24365//23107 24445//23187 24442//23184 24362//23104 +f 24366//23108 24446//23188 24445//23187 24365//23107 +f 24447//23189 24445//23187 24446//23188 24448//23190 +f 24444//23186 24442//23184 24445//23187 24447//23189 +f 24369//23111 24449//23191 24446//23188 24366//23108 +f 24370//23112 24450//23192 24449//23191 24369//23111 +f 24451//23193 24449//23191 24450//23192 24452//23194 +f 24448//23190 24446//23188 24449//23191 24451//23193 +f 24373//23115 24453//23195 24450//23192 24370//23112 +f 24374//23116 24454//23196 24453//23195 24373//23115 +f 24455//23197 24453//23195 24454//23196 24456//23198 +f 24452//23194 24450//23192 24453//23195 24455//23197 +f 24377//23119 24457//23199 24454//23196 24374//23116 +f 24378//23120 24458//23200 24457//23199 24377//23119 +f 24459//23201 24457//23199 24458//23200 24460//23202 +f 24456//23198 24454//23196 24457//23199 24459//23201 +f 24381//23123 24461//23203 24458//23200 24378//23120 +f 24382//23124 24462//23204 24461//23203 24381//23123 +f 24463//23205 24461//23203 24462//23204 24464//23206 +f 24460//23202 24458//23200 24461//23203 24463//23205 +f 24465//23207 24466//23208 24467//23209 24468//23210 +f 24466//23208 24469//23211 24470//23212 24467//23209 +f 24471//23213 24472//23214 24467//23209 24470//23212 +f 24472//23214 24473//23215 24468//23210 24467//23209 +f 24473//23215 24472//23214 24474//23216 24475//23217 +f 24472//23214 24471//23213 24476//23218 24474//23216 +f 24477//23219 24474//23216 24476//23218 23596//22337 +f 24477//23219 24478//23220 24475//23217 24474//23216 +f 24477//23219 24479//23221 24480//23222 24478//23220 +f 23596//22337 24481//23223 24479//23221 24477//23219 +f 24482//23224 24479//23221 24481//23223 24483//23225 +f 24484//23226 24480//23222 24479//23221 24482//23224 +f 24482//23224 24485//23227 24486//23228 24484//23226 +f 24483//23225 24487//23229 24485//23227 24482//23224 +f 24488//23230 24485//23227 24487//23229 23660//22401 +f 24489//23231 24486//23228 24485//23227 24488//23230 +f 24488//23230 24490//23232 24491//23233 24489//23231 +f 23660//22401 23659//22400 24490//23232 24488//23230 +f 24492//23234 24490//23232 23659//22400 23665//22406 +f 24493//23235 24491//23233 24490//23232 24492//23234 +f 24494//23236 24495//23237 24496//23238 24497//23239 +f 24495//23237 23677//22418 23679//22420 24496//23238 +f 23683//22424 24498//23240 24496//23238 23679//22420 +f 24498//23240 24499//23241 24497//23239 24496//23238 +f 23683//22424 23682//22423 24500//23242 24501//23243 +f 23682//22423 23681//22422 24502//23244 24500//23242 +f 23684//22425 24503//23245 24500//23242 24502//23244 +f 24503//23245 24504//23246 24501//23243 24500//23242 +f 24504//23246 24503//23245 24505//23247 24506//23248 +f 24503//23245 23684//22425 23687//22428 24505//23247 +f 23601//22342 23598//22339 24505//23247 23687//22428 +f 23598//22339 23597//22338 24506//23248 24505//23247 +f 23600//22341 24507//23249 24508//23250 23597//22338 +f 23549//22290 23547//22288 24507//23249 23600//22341 +f 24509//23251 24507//23249 23547//22288 23506//22247 +f 24510//23252 24508//23250 24507//23249 24509//23251 +f 24509//23251 24511//23253 24512//23254 24510//23252 +f 23506//22247 23505//22246 24511//23253 24509//23251 +f 24513//23255 24511//23253 23505//22246 23462//22203 +f 24514//23256 24512//23254 24511//23253 24513//23255 +f 24515//23257 24516//23258 24517//23259 24518//23260 +f 24514//23256 24519//23261 24516//23258 24515//23257 +f 24520//23262 24516//23258 24519//23261 24521//23263 +f 24522//23264 24517//23259 24516//23258 24520//23262 +f 24523//23265 24524//23266 24525//23267 24526//23268 +f 24524//23266 24527//23269 24528//23270 24525//23267 +f 24529//23271 24530//23272 24525//23267 24528//23270 +f 24530//23272 24531//23273 24526//23268 24525//23267 +f 24529//23271 24532//23274 24533//23275 24534//23276 +f 24532//23274 23285//22026 23283//22024 24533//23275 +f 23241//21982 24535//23277 24533//23275 23283//22024 +f 24535//23277 24536//23278 24534//23276 24533//23275 +f 24536//23278 24535//23277 24537//23279 24538//23280 +f 24535//23277 23241//21982 23239//21980 24537//23279 +f 23196//21937 23194//21935 24537//23279 23239//21980 +f 23194//21935 23193//21934 24538//23280 24537//23279 +f 23191//21932 24539//23281 24540//23282 23193//21934 +f 23127//21868 23125//21866 24539//23281 23191//21932 +f 24541//23283 24539//23281 23125//21866 23121//21862 +f 24542//23284 24540//23282 24539//23281 24541//23283 +f 24543//23285 24544//23286 24545//23287 24546//23288 +f 24544//23286 23084//21825 23083//21824 24545//23287 +f 23078//21819 23190//21931 24545//23287 23083//21824 +f 23190//21931 23189//21930 24546//23288 24545//23287 +f 23188//21929 24547//23289 24548//23290 23189//21930 +f 23185//21926 23238//21979 24547//23289 23188//21929 +f 24549//23291 24547//23289 23238//21979 23237//21978 +f 24550//23292 24548//23290 24547//23289 24549//23291 +f 24551//23293 24552//23294 24553//23295 24554//23296 +f 24555//23297 24556//23298 24552//23294 24551//23293 +f 24557//23299 24552//23294 24556//23298 24558//23300 +f 24559//23301 24553//23295 24552//23294 24557//23299 +f 24560//23302 24561//23303 24562//23304 24563//23305 +f 24561//23303 24554//23296 24553//23295 24562//23304 +f 24564//23306 24562//23304 24553//23295 24559//23301 +f 24564//23306 24565//23307 24563//23305 24562//23304 +f 24566//23308 24567//23309 24568//23310 24569//23311 +f 24567//23309 24570//23312 24571//23313 24568//23310 +f 24572//23314 24568//23310 24571//23313 24573//23315 +f 24572//23314 24574//23316 24569//23311 24568//23310 +f 24575//23317 24576//23318 24577//23319 24578//23320 +f 24523//23265 24579//23321 24576//23318 24575//23317 +f 24580//23322 24576//23318 24579//23321 24581//23323 +f 24582//23324 24577//23319 24576//23318 24580//23322 +f 24583//23325 24584//23326 24571//23313 24570//23312 +f 24585//23327 24586//23328 24584//23326 24583//23325 +f 24587//23329 24584//23326 24586//23328 24588//23330 +f 24573//23315 24571//23313 24584//23326 24587//23329 +f 24522//23264 24589//23331 24590//23332 24591//23333 +f 24578//23320 24577//23319 24590//23332 24589//23331 +f 24592//23334 24590//23332 24577//23319 24582//23324 +f 24593//23335 24591//23333 24590//23332 24592//23334 +f 24493//23235 24594//23336 24595//23337 24596//23338 +f 24594//23336 24597//23339 24598//23340 24595//23337 +f 24599//23341 24595//23337 24598//23340 24600//23342 +f 24601//23343 24596//23338 24595//23337 24599//23341 +f 24602//23344 24603//23345 24598//23340 24597//23339 +f 24494//23236 24604//23346 24603//23345 24602//23344 +f 24605//23347 24603//23345 24604//23346 24606//23348 +f 24600//23342 24598//23340 24603//23345 24605//23347 +f 24607//23349 24608//23350 24586//23328 24585//23327 +f 24465//23207 24609//23351 24608//23350 24607//23349 +f 24610//23352 24608//23350 24609//23351 24611//23353 +f 24588//23330 24586//23328 24608//23350 24610//23352 +f 24468//23210 24612//23354 24609//23351 24465//23207 +f 24473//23215 24613//23355 24612//23354 24468//23210 +f 24614//23356 24612//23354 24613//23355 24615//23357 +f 24611//23353 24609//23351 24612//23354 24614//23356 +f 24475//23217 24616//23358 24613//23355 24473//23215 +f 24478//23220 24617//23359 24616//23358 24475//23217 +f 24618//23360 24616//23358 24617//23359 24619//23361 +f 24615//23357 24613//23355 24616//23358 24618//23360 +f 24478//23220 24480//23222 24620//23362 24617//23359 +f 24480//23222 24484//23226 24621//23363 24620//23362 +f 24622//23364 24623//23365 24620//23362 24621//23363 +f 24623//23365 24619//23361 24617//23359 24620//23362 +f 24484//23226 24486//23228 24624//23366 24621//23363 +f 24486//23228 24489//23231 24625//23367 24624//23366 +f 24626//23368 24627//23369 24624//23366 24625//23367 +f 24627//23369 24622//23364 24621//23363 24624//23366 +f 24489//23231 24491//23233 24628//23370 24625//23367 +f 24491//23233 24493//23235 24596//23338 24628//23370 +f 24629//23371 24628//23370 24596//23338 24601//23343 +f 24629//23371 24626//23368 24625//23367 24628//23370 +f 24497//23239 24630//23372 24604//23346 24494//23236 +f 24499//23241 24631//23373 24630//23372 24497//23239 +f 24632//23374 24630//23372 24631//23373 24633//23375 +f 24606//23348 24604//23346 24630//23372 24632//23374 +f 24634//23376 24635//23377 24631//23373 24499//23241 +f 24636//23378 24637//23379 24635//23377 24634//23376 +f 24638//23380 24635//23377 24637//23379 24639//23381 +f 24633//23375 24631//23373 24635//23377 24638//23380 +f 24640//23382 24641//23383 24637//23379 24636//23378 +f 24642//23384 24643//23385 24641//23383 24640//23382 +f 24644//23386 24641//23383 24643//23385 24645//23387 +f 24639//23381 24637//23379 24641//23383 24644//23386 +f 24646//23388 24647//23389 24643//23385 24642//23384 +f 24646//23388 24648//23390 24649//23391 24647//23389 +f 24650//23392 24647//23389 24649//23391 24651//23393 +f 24645//23387 24643//23385 24647//23389 24650//23392 +f 24648//23390 24652//23394 24653//23395 24649//23391 +f 24652//23394 24518//23260 24654//23396 24653//23395 +f 24655//23397 24653//23395 24654//23396 24656//23398 +f 24651//23393 24649//23391 24653//23395 24655//23397 +f 24518//23260 24517//23259 24657//23399 24654//23396 +f 24517//23259 24522//23264 24591//23333 24657//23399 +f 24658//23400 24657//23399 24591//23333 24593//23335 +f 24656//23398 24654//23396 24657//23399 24658//23400 +f 24526//23268 24659//23401 24579//23321 24523//23265 +f 24531//23273 24660//23402 24659//23401 24526//23268 +f 24661//23403 24659//23401 24660//23402 24662//23404 +f 24581//23323 24579//23321 24659//23401 24661//23403 +f 24663//23405 24664//23406 24660//23402 24531//23273 +f 24665//23407 24666//23408 24664//23406 24663//23405 +f 24667//23409 24664//23406 24666//23408 24668//23410 +f 24662//23404 24660//23402 24664//23406 24667//23409 +f 24669//23411 24670//23412 24666//23408 24665//23407 +f 24671//23413 24672//23414 24670//23412 24669//23411 +f 24673//23415 24670//23412 24672//23414 24674//23416 +f 24668//23410 24666//23408 24670//23412 24673//23415 +f 24671//23413 24675//23417 24676//23418 24672//23414 +f 24675//23417 24677//23419 24678//23420 24676//23418 +f 24679//23421 24680//23422 24676//23418 24678//23420 +f 24680//23422 24674//23416 24672//23414 24676//23418 +f 24677//23419 24681//23423 24682//23424 24678//23420 +f 24681//23423 24683//23425 24684//23426 24682//23424 +f 24685//23427 24686//23428 24682//23424 24684//23426 +f 24686//23428 24679//23421 24678//23420 24682//23424 +f 24683//23425 24687//23429 24688//23430 24684//23426 +f 24687//23429 24560//23302 24563//23305 24688//23430 +f 24565//23307 24689//23431 24688//23430 24563//23305 +f 24689//23431 24685//23427 24684//23426 24688//23430 +f 24690//23432 24691//23433 24556//23298 24555//23297 +f 24692//23434 24693//23435 24691//23433 24690//23432 +f 24694//23436 24691//23433 24693//23435 24695//23437 +f 24558//23300 24556//23298 24691//23433 24694//23436 +f 24696//23438 24697//23439 24693//23435 24692//23434 +f 24698//23440 24699//23441 24697//23439 24696//23438 +f 24700//23442 24697//23439 24699//23441 24701//23443 +f 24695//23437 24693//23435 24697//23439 24700//23442 +f 24702//23444 24703//23445 24699//23441 24698//23440 +f 24704//23446 24705//23447 24703//23445 24702//23444 +f 24706//23448 24703//23445 24705//23447 24707//23449 +f 24701//23443 24699//23441 24703//23445 24706//23448 +f 24704//23446 24708//23450 24709//23451 24705//23447 +f 24708//23450 24710//23452 24711//23453 24709//23451 +f 24712//23454 24713//23455 24709//23451 24711//23453 +f 24713//23455 24707//23449 24705//23447 24709//23451 +f 24710//23452 24714//23456 24715//23457 24711//23453 +f 24714//23456 24716//23458 24717//23459 24715//23457 +f 24718//23460 24719//23461 24715//23457 24717//23459 +f 24719//23461 24712//23454 24711//23453 24715//23457 +f 24716//23458 24720//23462 24721//23463 24717//23459 +f 24720//23462 24566//23308 24569//23311 24721//23463 +f 24574//23316 24722//23464 24721//23463 24569//23311 +f 24722//23464 24718//23460 24717//23459 24721//23463 +f 24723//23465 24724//23466 24557//23299 24558//23300 +f 24725//23467 24726//23468 24724//23466 24723//23465 +f 24727//23469 24724//23466 24726//23468 24728//23470 +f 24559//23301 24557//23299 24724//23466 24727//23469 +f 24727//23469 24729//23471 24564//23306 24559//23301 +f 24728//23470 24730//23472 24729//23471 24727//23469 +f 24731//23473 24729//23471 24730//23472 24732//23474 +f 24565//23307 24564//23306 24729//23471 24731//23473 +f 24733//23475 24734//23476 24572//23314 24573//23315 +f 24735//23477 24736//23478 24734//23476 24733//23475 +f 24737//23479 24734//23476 24736//23478 24738//23480 +f 24574//23316 24572//23314 24734//23476 24737//23479 +f 24739//23481 24740//23482 24580//23322 24581//23323 +f 24741//23483 24742//23484 24740//23482 24739//23481 +f 24743//23485 24740//23482 24742//23484 24744//23486 +f 24582//23324 24580//23322 24740//23482 24743//23485 +f 24745//23487 24746//23488 24587//23329 24588//23330 +f 24747//23489 24748//23490 24746//23488 24745//23487 +f 24733//23475 24746//23488 24748//23490 24735//23477 +f 24573//23315 24587//23329 24746//23488 24733//23475 +f 24582//23324 24743//23485 24749//23491 24592//23334 +f 24743//23485 24744//23486 24750//23492 24749//23491 +f 24751//23493 24752//23494 24749//23491 24750//23492 +f 24752//23494 24593//23335 24592//23334 24749//23491 +f 24753//23495 24754//23496 24599//23341 24600//23342 +f 24755//23497 24756//23498 24754//23496 24753//23495 +f 24757//23499 24754//23496 24756//23498 24758//23500 +f 24601//23343 24599//23341 24754//23496 24757//23499 +f 24759//23501 24760//23502 24605//23347 24606//23348 +f 24761//23503 24762//23504 24760//23502 24759//23501 +f 24753//23495 24760//23502 24762//23504 24755//23497 +f 24600//23342 24605//23347 24760//23502 24753//23495 +f 24763//23505 24764//23506 24610//23352 24611//23353 +f 24765//23507 24766//23508 24764//23506 24763//23505 +f 24745//23487 24764//23506 24766//23508 24747//23489 +f 24588//23330 24610//23352 24764//23506 24745//23487 +f 24767//23509 24768//23510 24614//23356 24615//23357 +f 24769//23511 24770//23512 24768//23510 24767//23509 +f 24763//23505 24768//23510 24770//23512 24765//23507 +f 24611//23353 24614//23356 24768//23510 24763//23505 +f 24771//23513 24772//23514 24618//23360 24619//23361 +f 24773//23515 24774//23516 24772//23514 24771//23513 +f 24767//23509 24772//23514 24774//23516 24769//23511 +f 24615//23357 24618//23360 24772//23514 24767//23509 +f 24775//23517 24776//23518 24623//23365 24622//23364 +f 24777//23519 24778//23520 24776//23518 24775//23517 +f 24771//23513 24776//23518 24778//23520 24773//23515 +f 24619//23361 24623//23365 24776//23518 24771//23513 +f 24779//23521 24780//23522 24627//23369 24626//23368 +f 24781//23523 24782//23524 24780//23522 24779//23521 +f 24775//23517 24780//23522 24782//23524 24777//23519 +f 24622//23364 24627//23369 24780//23522 24775//23517 +f 24757//23499 24783//23525 24629//23371 24601//23343 +f 24758//23500 24784//23526 24783//23525 24757//23499 +f 24779//23521 24783//23525 24784//23526 24781//23523 +f 24626//23368 24629//23371 24783//23525 24779//23521 +f 24633//23375 24785//23527 24786//23528 24632//23374 +f 24787//23529 24788//23530 24786//23528 24785//23527 +f 24759//23501 24786//23528 24788//23530 24761//23503 +f 24606//23348 24632//23374 24786//23528 24759//23501 +f 24639//23381 24789//23531 24790//23532 24638//23380 +f 24791//23533 24792//23534 24790//23532 24789//23531 +f 24785//23527 24790//23532 24792//23534 24787//23529 +f 24785//23527 24633//23375 24638//23380 24790//23532 +f 24645//23387 24793//23535 24794//23536 24644//23386 +f 24795//23537 24796//23538 24794//23536 24793//23535 +f 24789//23531 24794//23536 24796//23538 24791//23533 +f 24789//23531 24639//23381 24644//23386 24794//23536 +f 24651//23393 24797//23539 24798//23540 24650//23392 +f 24797//23539 24799//23541 24800//23542 24798//23540 +f 24793//23535 24798//23540 24800//23542 24795//23537 +f 24645//23387 24650//23392 24798//23540 24793//23535 +f 24801//23543 24802//23544 24655//23397 24656//23398 +f 24803//23545 24804//23546 24802//23544 24801//23543 +f 24799//23541 24797//23539 24802//23544 24804//23546 +f 24797//23539 24651//23393 24655//23397 24802//23544 +f 24752//23494 24805//23547 24658//23400 24593//23335 +f 24751//23493 24806//23548 24805//23547 24752//23494 +f 24801//23543 24805//23547 24806//23548 24803//23545 +f 24656//23398 24658//23400 24805//23547 24801//23543 +f 24662//23404 24807//23549 24808//23550 24661//23403 +f 24809//23551 24810//23552 24808//23550 24807//23549 +f 24739//23481 24808//23550 24810//23552 24741//23483 +f 24739//23481 24581//23323 24661//23403 24808//23550 +f 24811//23553 24812//23554 24667//23409 24668//23410 +f 24813//23555 24814//23556 24812//23554 24811//23553 +f 24807//23549 24812//23554 24814//23556 24809//23551 +f 24807//23549 24662//23404 24667//23409 24812//23554 +f 24674//23416 24815//23557 24816//23558 24673//23415 +f 24817//23559 24818//23560 24816//23558 24815//23557 +f 24811//23553 24816//23558 24818//23560 24813//23555 +f 24668//23410 24673//23415 24816//23558 24811//23553 +f 24819//23561 24820//23562 24680//23422 24679//23421 +f 24821//23563 24822//23564 24820//23562 24819//23561 +f 24815//23557 24820//23562 24822//23564 24817//23559 +f 24674//23416 24680//23422 24820//23562 24815//23557 +f 24823//23565 24824//23566 24686//23428 24685//23427 +f 24825//23567 24826//23568 24824//23566 24823//23565 +f 24821//23563 24819//23561 24824//23566 24826//23568 +f 24679//23421 24686//23428 24824//23566 24819//23561 +f 24731//23473 24827//23569 24689//23431 24565//23307 +f 24732//23474 24828//23570 24827//23569 24731//23473 +f 24823//23565 24827//23569 24828//23570 24825//23567 +f 24685//23427 24689//23431 24827//23569 24823//23565 +f 24829//23571 24830//23572 24694//23436 24695//23437 +f 24831//23573 24832//23574 24830//23572 24829//23571 +f 24723//23465 24830//23572 24832//23574 24725//23467 +f 24558//23300 24694//23436 24830//23572 24723//23465 +f 24833//23575 24834//23576 24700//23442 24701//23443 +f 24835//23577 24836//23578 24834//23576 24833//23575 +f 24829//23571 24834//23576 24836//23578 24831//23573 +f 24695//23437 24700//23442 24834//23576 24829//23571 +f 24837//23579 24838//23580 24706//23448 24707//23449 +f 24839//23581 24840//23582 24838//23580 24837//23579 +f 24833//23575 24838//23580 24840//23582 24835//23577 +f 24701//23443 24706//23448 24838//23580 24833//23575 +f 24841//23583 24842//23584 24713//23455 24712//23454 +f 24843//23585 24844//23586 24842//23584 24841//23583 +f 24837//23579 24842//23584 24844//23586 24839//23581 +f 24707//23449 24713//23455 24842//23584 24837//23579 +f 24845//23587 24846//23588 24719//23461 24718//23460 +f 24847//23589 24848//23590 24846//23588 24845//23587 +f 24841//23583 24846//23588 24848//23590 24843//23585 +f 24712//23454 24719//23461 24846//23588 24841//23583 +f 24737//23479 24849//23591 24722//23464 24574//23316 +f 24738//23480 24850//23592 24849//23591 24737//23479 +f 24845//23587 24849//23591 24850//23592 24847//23589 +f 24718//23460 24722//23464 24849//23591 24845//23587 +f 24851//23593 24852//23594 24726//23468 24725//23467 +f 24853//23595 24854//23596 24852//23594 24851//23593 +f 24855//23597 24852//23594 24854//23596 24856//23598 +f 24728//23470 24726//23468 24852//23594 24855//23597 +f 24855//23597 24857//23599 24730//23472 24728//23470 +f 24856//23598 24858//23600 24857//23599 24855//23597 +f 24859//23601 24860//23602 24857//23599 24858//23600 +f 24732//23474 24730//23472 24857//23599 24860//23602 +f 24861//23603 24862//23604 24736//23478 24735//23477 +f 24863//23605 24864//23606 24862//23604 24861//23603 +f 24865//23607 24862//23604 24864//23606 24866//23608 +f 24738//23480 24736//23478 24862//23604 24865//23607 +f 24867//23609 24868//23610 24742//23484 24741//23483 +f 24869//23611 24870//23612 24868//23610 24867//23609 +f 24871//23613 24868//23610 24870//23612 24872//23614 +f 24744//23486 24742//23484 24868//23610 24871//23613 +f 24873//23615 24874//23616 24748//23490 24747//23489 +f 24875//23617 24876//23618 24874//23616 24873//23615 +f 24861//23603 24874//23616 24876//23618 24863//23605 +f 24735//23477 24748//23490 24874//23616 24861//23603 +f 24871//23613 24877//23619 24750//23492 24744//23486 +f 24872//23614 24878//23620 24877//23619 24871//23613 +f 24879//23621 24877//23619 24878//23620 24880//23622 +f 24751//23493 24750//23492 24877//23619 24879//23621 +f 24881//23623 24882//23624 24756//23498 24755//23497 +f 24883//23625 24884//23626 24882//23624 24881//23623 +f 24885//23627 24882//23624 24884//23626 24886//23628 +f 24758//23500 24756//23498 24882//23624 24885//23627 +f 24887//23629 24888//23630 24762//23504 24761//23503 +f 24889//23631 24890//23632 24888//23630 24887//23629 +f 24881//23623 24888//23630 24890//23632 24883//23625 +f 24755//23497 24762//23504 24888//23630 24881//23623 +f 24891//23633 24892//23634 24766//23508 24765//23507 +f 24893//23635 24894//23636 24892//23634 24891//23633 +f 24873//23615 24892//23634 24894//23636 24875//23617 +f 24747//23489 24766//23508 24892//23634 24873//23615 +f 24895//23637 24896//23638 24770//23512 24769//23511 +f 24897//23639 24898//23640 24896//23638 24895//23637 +f 24891//23633 24896//23638 24898//23640 24893//23635 +f 24765//23507 24770//23512 24896//23638 24891//23633 +f 24899//23641 24900//23642 24774//23516 24773//23515 +f 24901//23643 24902//23644 24900//23642 24899//23641 +f 24895//23637 24900//23642 24902//23644 24897//23639 +f 24769//23511 24774//23516 24900//23642 24895//23637 +f 24777//23519 24903//23645 24904//23646 24778//23520 +f 24903//23645 24905//23647 24906//23648 24904//23646 +f 24899//23641 24904//23646 24906//23648 24901//23643 +f 24773//23515 24778//23520 24904//23646 24899//23641 +f 24781//23523 24907//23649 24908//23650 24782//23524 +f 24907//23649 24909//23651 24910//23652 24908//23650 +f 24905//23647 24903//23645 24908//23650 24910//23652 +f 24903//23645 24777//23519 24782//23524 24908//23650 +f 24885//23627 24911//23653 24784//23526 24758//23500 +f 24886//23628 24912//23654 24911//23653 24885//23627 +f 24909//23651 24907//23649 24911//23653 24912//23654 +f 24781//23523 24784//23526 24911//23653 24907//23649 +f 24913//23655 24914//23656 24788//23530 24787//23529 +f 24915//23657 24916//23658 24914//23656 24913//23655 +f 24887//23629 24914//23656 24916//23658 24889//23631 +f 24761//23503 24788//23530 24914//23656 24887//23629 +f 24917//23659 24918//23660 24792//23534 24791//23533 +f 24919//23661 24920//23662 24918//23660 24917//23659 +f 24913//23655 24918//23660 24920//23662 24915//23657 +f 24787//23529 24792//23534 24918//23660 24913//23655 +f 24921//23663 24922//23664 24796//23538 24795//23537 +f 24923//23665 24924//23666 24922//23664 24921//23663 +f 24917//23659 24922//23664 24924//23666 24919//23661 +f 24791//23533 24796//23538 24922//23664 24917//23659 +f 24799//23541 24925//23667 24926//23668 24800//23542 +f 24925//23667 24927//23669 24928//23670 24926//23668 +f 24921//23663 24926//23668 24928//23670 24923//23665 +f 24795//23537 24800//23542 24926//23668 24921//23663 +f 24803//23545 24929//23671 24930//23672 24804//23546 +f 24929//23671 24931//23673 24932//23674 24930//23672 +f 24927//23669 24925//23667 24930//23672 24932//23674 +f 24925//23667 24799//23541 24804//23546 24930//23672 +f 24879//23621 24933//23675 24806//23548 24751//23493 +f 24880//23622 24934//23676 24933//23675 24879//23621 +f 24929//23671 24933//23675 24934//23676 24931//23673 +f 24803//23545 24806//23548 24933//23675 24929//23671 +f 24935//23677 24936//23678 24810//23552 24809//23551 +f 24937//23679 24938//23680 24936//23678 24935//23677 +f 24867//23609 24936//23678 24938//23680 24869//23611 +f 24741//23483 24810//23552 24936//23678 24867//23609 +f 24939//23681 24940//23682 24814//23556 24813//23555 +f 24941//23683 24942//23684 24940//23682 24939//23681 +f 24935//23677 24940//23682 24942//23684 24937//23679 +f 24809//23551 24814//23556 24940//23682 24935//23677 +f 24943//23685 24944//23686 24818//23560 24817//23559 +f 24945//23687 24946//23688 24944//23686 24943//23685 +f 24939//23681 24944//23686 24946//23688 24941//23683 +f 24813//23555 24818//23560 24944//23686 24939//23681 +f 24821//23563 24947//23689 24948//23690 24822//23564 +f 24947//23689 24949//23691 24950//23692 24948//23690 +f 24945//23687 24943//23685 24948//23690 24950//23692 +f 24817//23559 24822//23564 24948//23690 24943//23685 +f 24825//23567 24951//23693 24952//23694 24826//23568 +f 24951//23693 24953//23695 24954//23696 24952//23694 +f 24949//23691 24947//23689 24952//23694 24954//23696 +f 24947//23689 24821//23563 24826//23568 24952//23694 +f 24860//23602 24955//23697 24828//23570 24732//23474 +f 24860//23602 24859//23601 24956//23698 24955//23697 +f 24953//23695 24951//23693 24955//23697 24956//23698 +f 24951//23693 24825//23567 24828//23570 24955//23697 +f 24957//23699 24958//23700 24832//23574 24831//23573 +f 24959//23701 24960//23702 24958//23700 24957//23699 +f 24851//23593 24958//23700 24960//23702 24853//23595 +f 24725//23467 24832//23574 24958//23700 24851//23593 +f 24961//23703 24962//23704 24836//23578 24835//23577 +f 24963//23705 24964//23706 24962//23704 24961//23703 +f 24957//23699 24962//23704 24964//23706 24959//23701 +f 24831//23573 24836//23578 24962//23704 24957//23699 +f 24965//23707 24966//23708 24840//23582 24839//23581 +f 24967//23709 24968//23710 24966//23708 24965//23707 +f 24961//23703 24966//23708 24968//23710 24963//23705 +f 24835//23577 24840//23582 24966//23708 24961//23703 +f 24969//23711 24970//23712 24844//23586 24843//23585 +f 24969//23711 24971//23713 24972//23714 24970//23712 +f 24965//23707 24970//23712 24972//23714 24967//23709 +f 24839//23581 24844//23586 24970//23712 24965//23707 +f 24973//23715 24974//23716 24848//23590 24847//23589 +f 24973//23715 24975//23717 24976//23718 24974//23716 +f 24971//23713 24969//23711 24974//23716 24976//23718 +f 24843//23585 24848//23590 24974//23716 24969//23711 +f 24865//23607 24977//23719 24850//23592 24738//23480 +f 24866//23608 24978//23720 24977//23719 24865//23607 +f 24975//23717 24973//23715 24977//23719 24978//23720 +f 24847//23589 24850//23592 24977//23719 24973//23715 +f 24979//23721 24980//23722 24981//23723 24982//23724 +f 23896//22637 23894//22635 24980//23722 24979//23721 +f 24983//23725 24980//23722 23894//22635 23893//22634 +f 24984//23726 24981//23723 24980//23722 24983//23725 +f 24985//23727 24986//23728 24979//23721 24982//23724 +f 23903//22644 23902//22643 24986//23728 24985//23727 +f 23898//22639 24986//23728 23902//22643 23899//22640 +f 23896//22637 24979//23721 24986//23728 23898//22639 +f 24987//23729 24988//23730 24989//23731 24990//23732 +f 24988//23730 23907//22648 23906//22647 24989//23731 +f 23903//22644 24985//23727 24989//23731 23906//22647 +f 24985//23727 24982//23724 24990//23732 24989//23731 +f 24991//23733 24992//23734 24993//23735 24994//23736 +f 23912//22653 23910//22651 24992//23734 24991//23733 +f 24988//23730 24992//23734 23910//22651 23907//22648 +f 24987//23729 24993//23735 24992//23734 24988//23730 +f 24995//23737 24996//23738 24991//23733 24994//23736 +f 23919//22660 23918//22659 24996//23738 24995//23737 +f 23914//22655 24996//23738 23918//22659 23915//22656 +f 23912//22653 24991//23733 24996//23738 23914//22655 +f 24997//23739 24998//23740 24999//23741 25000//23742 +f 24998//23740 23923//22664 23922//22663 24999//23741 +f 23919//22660 24995//23737 24999//23741 23922//22663 +f 24995//23737 24994//23736 25000//23742 24999//23741 +f 25001//23743 25002//23744 25003//23745 25004//23746 +f 23928//22669 23926//22667 25002//23744 25001//23743 +f 24998//23740 25002//23744 23926//22667 23923//22664 +f 24997//23739 25003//23745 25002//23744 24998//23740 +f 25005//23747 25006//23748 25001//23743 25004//23746 +f 23935//22676 23934//22675 25006//23748 25005//23747 +f 23930//22671 25006//23748 23934//22675 23931//22672 +f 23928//22669 25001//23743 25006//23748 23930//22671 +f 25007//23749 25008//23750 25009//23751 25010//23752 +f 25008//23750 23939//22680 23938//22679 25009//23751 +f 23935//22676 25005//23747 25009//23751 23938//22679 +f 25005//23747 25004//23746 25010//23752 25009//23751 +f 25011//23753 25012//23754 25013//23755 25014//23756 +f 23944//22685 23942//22683 25012//23754 25011//23753 +f 25008//23750 25012//23754 23942//22683 23939//22680 +f 25007//23749 25013//23755 25012//23754 25008//23750 +f 25015//23757 25016//23758 25011//23753 25014//23756 +f 23951//22692 23950//22691 25016//23758 25015//23757 +f 23946//22687 25016//23758 23950//22691 23947//22688 +f 23944//22685 25011//23753 25016//23758 23946//22687 +f 25017//23759 25018//23760 25019//23761 25020//23762 +f 25018//23760 23955//22696 23954//22695 25019//23761 +f 23951//22692 25015//23757 25019//23761 23954//22695 +f 25015//23757 25014//23756 25020//23762 25019//23761 +f 25021//23763 25022//23764 25023//23765 25024//23766 +f 23960//22701 23958//22699 25022//23764 25021//23763 +f 25018//23760 25022//23764 23958//22699 23955//22696 +f 25017//23759 25023//23765 25022//23764 25018//23760 +f 25025//23767 25026//23768 25021//23763 25024//23766 +f 23967//22708 23966//22707 25026//23768 25025//23767 +f 23962//22703 25026//23768 23966//22707 23963//22704 +f 23960//22701 25021//23763 25026//23768 23962//22703 +f 25027//23769 25028//23770 25029//23771 25030//23772 +f 25028//23770 23971//22712 23970//22711 25029//23771 +f 23967//22708 25025//23767 25029//23771 23970//22711 +f 25025//23767 25024//23766 25030//23772 25029//23771 +f 25023//23765 25031//23773 25032//23774 25024//23766 +f 25017//23759 25033//23775 25031//23773 25023//23765 +f 25034//23776 25031//23773 25033//23775 25035//23777 +f 25036//23778 25032//23774 25031//23773 25034//23776 +f 25037//23779 25038//23780 25039//23781 25040//23782 +f 25041//23783 25042//23784 25038//23780 25037//23779 +f 25043//23785 25044//23786 25038//23780 25042//23784 +f 25044//23786 25045//23787 25039//23781 25038//23780 +f 25045//23787 25044//23786 25046//23788 25047//23789 +f 25043//23785 25048//23790 25046//23788 25044//23786 +f 25049//23791 25046//23788 25048//23790 25050//23792 +f 25051//23793 25047//23789 25046//23788 25049//23791 +f 25052//23794 25053//23795 25054//23796 25055//23797 +f 25053//23795 25056//23798 25057//23799 25054//23796 +f 25058//23800 25059//23801 25054//23796 25057//23799 +f 25059//23801 25060//23802 25055//23797 25054//23796 +f 25053//23795 25061//23803 25062//23804 25056//23798 +f 25052//23794 25063//23805 25061//23803 25053//23795 +f 25064//23806 25061//23803 25063//23805 25065//23807 +f 25066//23808 25062//23804 25061//23803 25064//23806 +f 25064//23806 25067//23809 25068//23810 25066//23808 +f 25065//23807 25069//23811 25067//23809 25064//23806 +f 25070//23812 25067//23809 25069//23811 25071//23813 +f 25072//23814 25068//23810 25067//23809 25070//23812 +f 25073//23815 25074//23816 25059//23801 25058//23800 +f 25073//23815 25007//23749 25010//23752 25074//23816 +f 25075//23817 25074//23816 25010//23752 25004//23746 +f 25075//23817 25060//23802 25059//23801 25074//23816 +f 25076//23818 25077//23819 25078//23820 25079//23821 +f 24997//23739 25000//23742 25078//23820 25077//23819 +f 25080//23822 25078//23820 25000//23742 24994//23736 +f 25081//23823 25079//23821 25078//23820 25080//23822 +f 25003//23745 25082//23824 25075//23817 25004//23746 +f 25003//23745 24997//23739 25077//23819 25082//23824 +f 25083//23825 25082//23824 25077//23819 25076//23818 +f 25060//23802 25075//23817 25082//23824 25083//23825 +f 25083//23825 25084//23826 25055//23797 25060//23802 +f 25076//23818 25085//23827 25084//23826 25083//23825 +f 25086//23828 25084//23826 25085//23827 25040//23782 +f 25052//23794 25055//23797 25084//23826 25086//23828 +f 25086//23828 25087//23829 25063//23805 25052//23794 +f 25040//23782 25039//23781 25087//23829 25086//23828 +f 25045//23787 25088//23830 25087//23829 25039//23781 +f 25088//23830 25065//23807 25063//23805 25087//23829 +f 25088//23830 25089//23831 25069//23811 25065//23807 +f 25088//23830 25045//23787 25047//23789 25089//23831 +f 25090//23832 25089//23831 25047//23789 25051//23793 +f 25071//23813 25069//23811 25089//23831 25090//23832 +f 24994//23736 24993//23735 25091//23833 25080//23822 +f 24993//23735 24987//23729 25092//23834 25091//23833 +f 25041//23783 25093//23835 25091//23833 25092//23834 +f 25093//23835 25081//23823 25080//23822 25091//23833 +f 25035//23777 25094//23836 25095//23837 25034//23776 +f 25094//23836 25056//23798 25062//23804 25095//23837 +f 25096//23838 25095//23837 25062//23804 25066//23808 +f 25036//23778 25034//23776 25095//23837 25096//23838 +f 25036//23778 25096//23838 25097//23839 25098//23840 +f 25096//23838 25066//23808 25068//23810 25097//23839 +f 25072//23814 25099//23841 25097//23839 25068//23810 +f 25099//23841 25100//23842 25098//23840 25097//23839 +f 25037//23779 25101//23843 25093//23835 25041//23783 +f 25040//23782 25085//23827 25101//23843 25037//23779 +f 25079//23821 25101//23843 25085//23827 25076//23818 +f 25081//23823 25093//23835 25101//23843 25079//23821 +f 25102//23844 25103//23845 25104//23846 25105//23847 +f 25103//23845 25058//23800 25057//23799 25104//23846 +f 25056//23798 25094//23836 25104//23846 25057//23799 +f 25094//23836 25035//23777 25105//23847 25104//23846 +f 25013//23755 25106//23848 25107//23849 25014//23756 +f 25013//23755 25007//23749 25073//23815 25106//23848 +f 25058//23800 25103//23845 25106//23848 25073//23815 +f 25102//23844 25107//23849 25106//23848 25103//23845 +f 25092//23834 25108//23850 25042//23784 25041//23783 +f 24987//23729 24990//23732 25108//23850 25092//23834 +f 25109//23851 25108//23850 24990//23732 24982//23724 +f 25109//23851 25043//23785 25042//23784 25108//23850 +f 25109//23851 25110//23852 25048//23790 25043//23785 +f 25109//23851 24982//23724 24981//23723 25110//23852 +f 25111//23853 25110//23852 24981//23723 24984//23726 +f 25050//23792 25048//23790 25110//23852 25111//23853 +f 25100//23842 25112//23854 25113//23855 25098//23840 +f 25112//23854 25027//23769 25030//23772 25113//23855 +f 25032//23774 25113//23855 25030//23772 25024//23766 +f 25032//23774 25036//23778 25098//23840 25113//23855 +f 25035//23777 25033//23775 25114//23856 25105//23847 +f 25033//23775 25017//23759 25020//23762 25114//23856 +f 25107//23849 25114//23856 25020//23762 25014//23756 +f 25107//23849 25102//23844 25105//23847 25114//23856 +f 24469//23211 24466//23208 25115//23857 25116//23858 +f 24466//23208 24465//23207 24607//23349 25115//23857 +f 24585//23327 25117//23859 25115//23857 24607//23349 +f 25117//23859 25118//23860 25116//23858 25115//23857 +f 25118//23860 25117//23859 25119//23861 25120//23862 +f 25117//23859 24585//23327 24583//23325 25119//23861 +f 24570//23312 25121//23863 25119//23861 24583//23325 +f 25121//23863 25122//23864 25120//23862 25119//23861 +f 25121//23863 25123//23865 25124//23866 25122//23864 +f 24570//23312 24567//23309 25123//23865 25121//23863 +f 25125//23867 25123//23865 24567//23309 24566//23308 +f 25126//23868 25124//23866 25123//23865 25125//23867 +f 25125//23867 25127//23869 25128//23870 25126//23868 +f 24566//23308 24720//23462 25127//23869 25125//23867 +f 25129//23871 25127//23869 24720//23462 24716//23458 +f 25130//23872 25128//23870 25127//23869 25129//23871 +f 24471//23213 25131//23873 25132//23874 24476//23218 +f 25131//23873 23502//22243 23545//22286 25132//23874 +f 23546//22287 23592//22333 25132//23874 23545//22286 +f 23592//22333 23596//22337 24476//23218 25132//23874 +f 25129//23871 25133//23875 25134//23876 25130//23872 +f 24716//23458 24714//23456 25133//23875 25129//23871 +f 25135//23877 25133//23875 24714//23456 24710//23452 +f 24550//23292 25134//23876 25133//23875 25135//23877 +f 25135//23877 25136//23878 24548//23290 24550//23292 +f 24710//23452 24708//23450 25136//23878 25135//23877 +f 25137//23879 25136//23878 24708//23450 24704//23446 +f 23189//21930 24548//23290 25136//23878 25137//23879 +f 23189//21930 25137//23879 25138//23880 24546//23288 +f 25137//23879 24704//23446 24702//23444 25138//23880 +f 24698//23440 25139//23881 25138//23880 24702//23444 +f 25139//23881 24543//23285 24546//23288 25138//23880 +f 24543//23285 25139//23881 25140//23882 25141//23883 +f 25139//23881 24698//23440 24696//23438 25140//23882 +f 24692//23434 25142//23884 25140//23882 24696//23438 +f 25142//23884 25143//23885 25141//23883 25140//23882 +f 25143//23885 25142//23884 25144//23886 25145//23887 +f 25142//23884 24692//23434 24690//23432 25144//23886 +f 24555//23297 25146//23888 25144//23886 24690//23432 +f 25146//23888 25147//23889 25145//23887 25144//23886 +f 25147//23889 25146//23888 25148//23890 25149//23891 +f 25146//23888 24555//23297 24551//23293 25148//23890 +f 24554//23296 25150//23892 25148//23890 24551//23293 +f 25150//23892 25151//23893 25149//23891 25148//23890 +f 25150//23892 25152//23894 25153//23895 25151//23893 +f 24554//23296 24561//23303 25152//23894 25150//23892 +f 25154//23896 25152//23894 24561//23303 24560//23302 +f 25155//23897 25153//23895 25152//23894 25154//23896 +f 25154//23896 25156//23898 25157//23899 25155//23897 +f 24560//23302 24687//23429 25156//23898 25154//23896 +f 25158//23900 25156//23898 24687//23429 24683//23425 +f 25159//23901 25157//23899 25156//23898 25158//23900 +f 25158//23900 25160//23902 25161//23903 25159//23901 +f 24683//23425 24681//23423 25160//23902 25158//23900 +f 25162//23904 25160//23902 24681//23423 24677//23419 +f 24542//23284 25161//23903 25160//23902 25162//23904 +f 25162//23904 25163//23905 24540//23282 24542//23284 +f 24677//23419 24675//23417 25163//23905 25162//23904 +f 25164//23906 25163//23905 24675//23417 24671//23413 +f 23193//21934 24540//23282 25163//23905 25164//23906 +f 25164//23906 25165//23907 24538//23280 23193//21934 +f 24671//23413 24669//23411 25165//23907 25164//23906 +f 24665//23407 25166//23908 25165//23907 24669//23411 +f 25166//23908 24536//23278 24538//23280 25165//23907 +f 24536//23278 25166//23908 25167//23909 24534//23276 +f 25166//23908 24665//23407 24663//23405 25167//23909 +f 24531//23273 24530//23272 25167//23909 24663//23405 +f 24530//23272 24529//23271 24534//23276 25167//23909 +f 24527//23269 24524//23266 25168//23910 25169//23911 +f 24524//23266 24523//23265 24575//23317 25168//23910 +f 24578//23320 25170//23912 25168//23910 24575//23317 +f 25170//23912 25171//23913 25169//23911 25168//23910 +f 25170//23912 25172//23914 25173//23915 25171//23913 +f 24578//23320 24589//23331 25172//23914 25170//23912 +f 24520//23262 25172//23914 24589//23331 24522//23264 +f 24521//23263 25173//23915 25172//23914 24520//23262 +f 24515//23257 25174//23916 24512//23254 24514//23256 +f 24518//23260 24652//23394 25174//23916 24515//23257 +f 25175//23917 25174//23916 24652//23394 24648//23390 +f 24510//23252 24512//23254 25174//23916 25175//23917 +f 25175//23917 25176//23918 24508//23250 24510//23252 +f 24648//23390 24646//23388 25176//23918 25175//23917 +f 24642//23384 25177//23919 25176//23918 24646//23388 +f 25177//23919 23597//22338 24508//23250 25176//23918 +f 23597//22338 25177//23919 25178//23920 24506//23248 +f 25177//23919 24642//23384 24640//23382 25178//23920 +f 24636//23378 25179//23921 25178//23920 24640//23382 +f 25179//23921 24504//23246 24506//23248 25178//23920 +f 24504//23246 25179//23921 25180//23922 24501//23243 +f 25179//23921 24636//23378 24634//23376 25180//23922 +f 24499//23241 24498//23240 25180//23922 24634//23376 +f 24498//23240 23683//22424 24501//23243 25180//23922 +f 23677//22418 24495//23237 25181//23923 23673//22414 +f 24495//23237 24494//23236 24602//23344 25181//23923 +f 24597//23339 25182//23924 25181//23923 24602//23344 +f 25182//23924 23671//22412 23673//22414 25181//23923 +f 25182//23924 25183//23925 23667//22408 23671//22412 +f 24597//23339 24594//23336 25183//23925 25182//23924 +f 24492//23234 25183//23925 24594//23336 24493//23235 +f 23665//22406 23667//22408 25183//23925 24492//23234 +f 23594//22335 25184//23926 24481//23223 23596//22337 +f 23595//22336 23652//22393 25184//23926 23594//22335 +f 25185//23927 25184//23926 23652//22393 23656//22397 +f 24483//23225 24481//23223 25184//23926 25185//23927 +f 25185//23927 25186//23928 24487//23229 24483//23225 +f 23656//22397 25187//23929 25186//23928 25185//23927 +f 23657//22398 25186//23928 25187//23929 23661//22402 +f 23660//22401 24487//23229 25186//23928 23657//22398 +f 25188//23930 25189//23931 25190//23932 25191//23933 +f 25192//23934 25193//23935 25190//23932 25189//23931 +f 25194//23936 25190//23932 25193//23935 25195//23937 +f 25194//23936 25196//23938 25191//23933 25190//23932 +f 25197//23939 25198//23940 25193//23935 25192//23934 +f 25199//23941 25200//23942 25198//23940 25197//23939 +f 25201//23943 25198//23940 25200//23942 25202//23944 +f 25195//23937 25193//23935 25198//23940 25201//23943 +f 25203//23945 25204//23946 25200//23942 25199//23941 +f 25205//23947 25206//23948 25204//23946 25203//23945 +f 25207//23949 25204//23946 25206//23948 25208//23950 +f 25202//23944 25200//23942 25204//23946 25207//23949 +f 25209//23951 25210//23952 25206//23948 25205//23947 +f 25209//23951 25211//23953 25212//23954 25210//23952 +f 25213//23955 25210//23952 25212//23954 25214//23956 +f 25208//23950 25206//23948 25210//23952 25213//23955 +f 25211//23953 25215//23957 25216//23958 25212//23954 +f 25217//23959 25218//23960 25216//23958 25215//23957 +f 25219//23961 25220//23962 25216//23958 25218//23960 +f 25220//23962 25214//23956 25212//23954 25216//23958 +f 25221//23963 25222//23964 25218//23960 25217//23959 +f 25223//23965 25224//23966 25222//23964 25221//23963 +f 25225//23967 25222//23964 25224//23966 25226//23968 +f 25219//23961 25218//23960 25222//23964 25225//23967 +f 25227//23969 25228//23970 25224//23966 25223//23965 +f 25229//23971 25230//23972 25228//23970 25227//23969 +f 25231//23973 25228//23970 25230//23972 25232//23974 +f 25226//23968 25224//23966 25228//23970 25231//23973 +f 25233//23975 25234//23976 25230//23972 25229//23971 +f 25233//23975 25235//23977 25236//23978 25234//23976 +f 25237//23979 25234//23976 25236//23978 25238//23980 +f 25232//23974 25230//23972 25234//23976 25237//23979 +f 25235//23977 25239//23981 25240//23982 25236//23978 +f 25239//23981 25241//23983 25242//23984 25240//23982 +f 25243//23985 25244//23986 25240//23982 25242//23984 +f 25244//23986 25238//23980 25236//23978 25240//23982 +f 25245//23987 25246//23988 25242//23984 25241//23983 +f 25247//23989 25248//23990 25246//23988 25245//23987 +f 25249//23991 25246//23988 25248//23990 25250//23992 +f 25243//23985 25242//23984 25246//23988 25249//23991 +f 25251//23993 25252//23994 25248//23990 25247//23989 +f 25253//23995 25254//23996 25252//23994 25251//23993 +f 25255//23997 25252//23994 25254//23996 25256//23998 +f 25250//23992 25248//23990 25252//23994 25255//23997 +f 25257//23999 25258//24000 25254//23996 25253//23995 +f 25257//23999 25259//24001 25260//24002 25258//24000 +f 25261//24003 25262//24004 25258//24000 25260//24002 +f 25256//23998 25254//23996 25258//24000 25262//24004 +f 25259//24001 25263//24005 25264//24006 25260//24002 +f 25263//24005 25265//24007 25266//24008 25264//24006 +f 25267//24009 25268//24010 25264//24006 25266//24008 +f 25268//24010 25261//24003 25260//24002 25264//24006 +f 25269//24011 25270//24012 25266//24008 25265//24007 +f 25271//24013 25272//24014 25270//24012 25269//24011 +f 25273//24015 25270//24012 25272//24014 25274//24016 +f 25267//24009 25266//24008 25270//24012 25273//24015 +f 25275//24017 25276//24018 25272//24014 25271//24013 +f 25277//24019 25278//24020 25276//24018 25275//24017 +f 25279//24021 25276//24018 25278//24020 25280//24022 +f 25274//24016 25272//24014 25276//24018 25279//24021 +f 25281//24023 25282//24024 25278//24020 25277//24019 +f 25281//24023 25283//24025 25284//24026 25282//24024 +f 25285//24027 25286//24028 25282//24024 25284//24026 +f 25280//24022 25278//24020 25282//24024 25286//24028 +f 25283//24025 25287//24029 25288//24030 25284//24026 +f 25287//24029 25289//24031 25290//24032 25288//24030 +f 25291//24033 25292//24034 25288//24030 25290//24032 +f 25292//24034 25285//24027 25284//24026 25288//24030 +f 25293//24035 25294//24036 25290//24032 25289//24031 +f 25295//24037 25296//24038 25294//24036 25293//24035 +f 25297//24039 25294//24036 25296//24038 25298//24040 +f 25291//24033 25290//24032 25294//24036 25297//24039 +f 25299//24041 25300//24042 25296//24038 25295//24037 +f 25301//24043 25302//24044 25300//24042 25299//24041 +f 25303//24045 25300//24042 25302//24044 25304//24046 +f 25298//24040 25296//24038 25300//24042 25303//24045 +f 25305//24047 25306//24048 25302//24044 25301//24043 +f 25305//24047 25307//24049 25308//24050 25306//24048 +f 25309//24051 25310//24052 25306//24048 25308//24050 +f 25304//24046 25302//24044 25306//24048 25310//24052 +f 25307//24049 25311//24053 25312//24054 25308//24050 +f 25311//24053 25313//24055 25314//24056 25312//24054 +f 25315//24057 25316//24058 25312//24054 25314//24056 +f 25316//24058 25309//24051 25308//24050 25312//24054 +f 25317//24059 25318//24060 25314//24056 25313//24055 +f 25319//24061 25320//24062 25318//24060 25317//24059 +f 25321//24063 25318//24060 25320//24062 25322//24064 +f 25315//24057 25314//24056 25318//24060 25321//24063 +f 25323//24065 25324//24066 25320//24062 25319//24061 +f 25325//24067 25326//24068 25324//24066 25323//24065 +f 25327//24069 25324//24066 25326//24068 25328//24070 +f 25322//24064 25320//24062 25324//24066 25327//24069 +f 25329//24071 25330//24072 25326//24068 25325//24067 +f 25329//24071 25331//24073 25332//24074 25330//24072 +f 25333//24075 25334//24076 25330//24072 25332//24074 +f 25328//24070 25326//24068 25330//24072 25334//24076 +f 25331//24073 25335//24077 25336//24078 25332//24074 +f 25335//24077 25337//24079 25338//24080 25336//24078 +f 25339//24081 25340//24082 25336//24078 25338//24080 +f 25340//24082 25333//24075 25332//24074 25336//24078 +f 25341//24083 25342//24084 25338//24080 25337//24079 +f 25343//24085 25344//24086 25342//24084 25341//24083 +f 25345//24087 25342//24084 25344//24086 25346//24088 +f 25339//24081 25338//24080 25342//24084 25345//24087 +f 25347//24089 25348//24090 25344//24086 25343//24085 +f 25349//24091 25350//24092 25348//24090 25347//24089 +f 25351//24093 25348//24090 25350//24092 25352//24094 +f 25346//24088 25344//24086 25348//24090 25351//24093 +f 25353//24095 25354//24096 25350//24092 25349//24091 +f 25353//24095 25355//24097 25356//24098 25354//24096 +f 25357//24099 25354//24096 25356//24098 25358//24100 +f 25352//24094 25350//24092 25354//24096 25357//24099 +f 25355//24097 25359//24101 25360//24102 25356//24098 +f 25361//24103 25362//24104 25360//24102 25359//24101 +f 25363//24105 25364//24106 25360//24102 25362//24104 +f 25364//24106 25358//24100 25356//24098 25360//24102 +f 25365//24107 25366//24108 25362//24104 25361//24103 +f 25367//24109 25368//24110 25366//24108 25365//24107 +f 25369//24111 25366//24108 25368//24110 25370//24112 +f 25363//24105 25362//24104 25366//24108 25369//24111 +f 25371//24113 25372//24114 25368//24110 25367//24109 +f 25373//24115 25374//24116 25372//24114 25371//24113 +f 25375//24117 25372//24114 25374//24116 25376//24118 +f 25370//24112 25368//24110 25372//24114 25375//24117 +f 25377//24119 25378//24120 25374//24116 25373//24115 +f 25379//24121 25380//24122 25378//24120 25377//24119 +f 25381//24123 25378//24120 25380//24122 25382//24124 +f 25376//24118 25374//24116 25378//24120 25381//24123 +f 25379//24121 25383//24125 25384//24126 25380//24122 +f 25385//24127 25386//24128 25384//24126 25383//24125 +f 25387//24129 25384//24126 25386//24128 25388//24130 +f 25387//24129 25382//24124 25380//24122 25384//24126 +f 25389//24131 25390//24132 25386//24128 25385//24127 +f 25391//24133 25392//24134 25390//24132 25389//24131 +f 25393//24135 25390//24132 25392//24134 25394//24136 +f 25388//24130 25386//24128 25390//24132 25393//24135 +f 25395//24137 25396//24138 25392//24134 25391//24133 +f 25397//24139 25398//24140 25396//24138 25395//24137 +f 25399//24141 25396//24138 25398//24140 25400//24142 +f 25394//24136 25392//24134 25396//24138 25399//24141 +f 25401//24143 25402//24144 25398//24140 25397//24139 +f 25403//24145 25404//24146 25402//24144 25401//24143 +f 25405//24147 25402//24144 25404//24146 25406//24148 +f 25400//24142 25398//24140 25402//24144 25405//24147 +f 25403//24145 25407//24149 25408//24150 25404//24146 +f 25409//24151 25410//24152 25408//24150 25407//24149 +f 25411//24153 25408//24150 25410//24152 25412//24154 +f 25411//24153 25406//24148 25404//24146 25408//24150 +f 25413//24155 25414//24156 25410//24152 25409//24151 +f 25415//24157 25416//24158 25414//24156 25413//24155 +f 25417//24159 25414//24156 25416//24158 25418//24160 +f 25412//24154 25410//24152 25414//24156 25417//24159 +f 25419//24161 25420//24162 25416//24158 25415//24157 +f 25421//24163 25422//24164 25420//24162 25419//24161 +f 25423//24165 25420//24162 25422//24164 25424//24166 +f 25418//24160 25416//24158 25420//24162 25423//24165 +f 25425//24167 25426//24168 25422//24164 25421//24163 +f 25188//23930 25191//23933 25426//24168 25425//24167 +f 25427//24169 25426//24168 25191//23933 25196//23938 +f 25424//24166 25422//24164 25426//24168 25427//24169 +f 25428//24170 25429//24171 25189//23931 25188//23930 +f 25430//24172 25431//24173 25429//24171 25428//24170 +f 25432//24174 25429//24171 25431//24173 25433//24175 +f 25192//23934 25189//23931 25429//24171 25432//24174 +f 25192//23934 25432//24174 25434//24176 25197//23939 +f 25433//24175 25435//24177 25434//24176 25432//24174 +f 25436//24178 25434//24176 25435//24177 25437//24179 +f 25436//24178 25199//23941 25197//23939 25434//24176 +f 25199//23941 25436//24178 25438//24180 25203//23945 +f 25437//24179 25439//24181 25438//24180 25436//24178 +f 25440//24182 25438//24180 25439//24181 25441//24183 +f 25440//24182 25205//23947 25203//23945 25438//24180 +f 25440//24182 25442//24184 25209//23951 25205//23947 +f 25441//24183 25443//24185 25442//24184 25440//24182 +f 25444//24186 25442//24184 25443//24185 25445//24187 +f 25211//23953 25209//23951 25442//24184 25444//24186 +f 25444//24186 25446//24188 25215//23957 25211//23953 +f 25445//24187 25447//24189 25446//24188 25444//24186 +f 25448//24190 25446//24188 25447//24189 25449//24191 +f 25217//23959 25215//23957 25446//24188 25448//24190 +f 25217//23959 25448//24190 25450//24192 25221//23963 +f 25449//24191 25451//24193 25450//24192 25448//24190 +f 25452//24194 25450//24192 25451//24193 25453//24195 +f 25452//24194 25223//23965 25221//23963 25450//24192 +f 25223//23965 25452//24194 25454//24196 25227//23969 +f 25453//24195 25455//24197 25454//24196 25452//24194 +f 25456//24198 25454//24196 25455//24197 25457//24199 +f 25456//24198 25229//23971 25227//23969 25454//24196 +f 25456//24198 25458//24200 25233//23975 25229//23971 +f 25457//24199 25459//24201 25458//24200 25456//24198 +f 25460//24202 25458//24200 25459//24201 25461//24203 +f 25235//23977 25233//23975 25458//24200 25460//24202 +f 25460//24202 25462//24204 25239//23981 25235//23977 +f 25461//24203 25463//24205 25462//24204 25460//24202 +f 25464//24206 25462//24204 25463//24205 25465//24207 +f 25241//23983 25239//23981 25462//24204 25464//24206 +f 25241//23983 25464//24206 25466//24208 25245//23987 +f 25465//24207 25467//24209 25466//24208 25464//24206 +f 25468//24210 25466//24208 25467//24209 25469//24211 +f 25468//24210 25247//23989 25245//23987 25466//24208 +f 25247//23989 25468//24210 25470//24212 25251//23993 +f 25469//24211 25471//24213 25470//24212 25468//24210 +f 25472//24214 25470//24212 25471//24213 25473//24215 +f 25253//23995 25251//23993 25470//24212 25472//24214 +f 25472//24214 25474//24216 25257//23999 25253//23995 +f 25473//24215 25475//24217 25474//24216 25472//24214 +f 25476//24218 25474//24216 25475//24217 25477//24219 +f 25259//24001 25257//23999 25474//24216 25476//24218 +f 25476//24218 25478//24220 25263//24005 25259//24001 +f 25477//24219 25479//24221 25478//24220 25476//24218 +f 25480//24222 25478//24220 25479//24221 25481//24223 +f 25265//24007 25263//24005 25478//24220 25480//24222 +f 25265//24007 25480//24222 25482//24224 25269//24011 +f 25481//24223 25483//24225 25482//24224 25480//24222 +f 25484//24226 25482//24224 25483//24225 25485//24227 +f 25484//24226 25271//24013 25269//24011 25482//24224 +f 25271//24013 25484//24226 25486//24228 25275//24017 +f 25485//24227 25487//24229 25486//24228 25484//24226 +f 25488//24230 25486//24228 25487//24229 25489//24231 +f 25277//24019 25275//24017 25486//24228 25488//24230 +f 25488//24230 25490//24232 25281//24023 25277//24019 +f 25489//24231 25491//24233 25490//24232 25488//24230 +f 25492//24234 25490//24232 25491//24233 25493//24235 +f 25283//24025 25281//24023 25490//24232 25492//24234 +f 25492//24234 25494//24236 25287//24029 25283//24025 +f 25493//24235 25495//24237 25494//24236 25492//24234 +f 25496//24238 25494//24236 25495//24237 25497//24239 +f 25289//24031 25287//24029 25494//24236 25496//24238 +f 25496//24238 25498//24240 25293//24035 25289//24031 +f 25497//24239 25499//24241 25498//24240 25496//24238 +f 25500//24242 25498//24240 25499//24241 25501//24243 +f 25500//24242 25295//24037 25293//24035 25498//24240 +f 25295//24037 25500//24242 25502//24244 25299//24041 +f 25501//24243 25503//24245 25502//24244 25500//24242 +f 25504//24246 25502//24244 25503//24245 25505//24247 +f 25301//24043 25299//24041 25502//24244 25504//24246 +f 25504//24246 25506//24248 25305//24047 25301//24043 +f 25505//24247 25507//24249 25506//24248 25504//24246 +f 25508//24250 25506//24248 25507//24249 25509//24251 +f 25307//24049 25305//24047 25506//24248 25508//24250 +f 25508//24250 25510//24252 25311//24053 25307//24049 +f 25509//24251 25511//24253 25510//24252 25508//24250 +f 25512//24254 25510//24252 25511//24253 25513//24255 +f 25313//24055 25311//24053 25510//24252 25512//24254 +f 25313//24055 25512//24254 25514//24256 25317//24059 +f 25513//24255 25515//24257 25514//24256 25512//24254 +f 25516//24258 25514//24256 25515//24257 25517//24259 +f 25516//24258 25319//24061 25317//24059 25514//24256 +f 25319//24061 25516//24258 25518//24260 25323//24065 +f 25517//24259 25519//24261 25518//24260 25516//24258 +f 25520//24262 25518//24260 25519//24261 25521//24263 +f 25325//24067 25323//24065 25518//24260 25520//24262 +f 25520//24262 25522//24264 25329//24071 25325//24067 +f 25521//24263 25523//24265 25522//24264 25520//24262 +f 25524//24266 25522//24264 25523//24265 25525//24267 +f 25331//24073 25329//24071 25522//24264 25524//24266 +f 25524//24266 25526//24268 25335//24077 25331//24073 +f 25525//24267 25527//24269 25526//24268 25524//24266 +f 25528//24270 25526//24268 25527//24269 25529//24271 +f 25337//24079 25335//24077 25526//24268 25528//24270 +f 25337//24079 25528//24270 25530//24272 25341//24083 +f 25529//24271 25531//24273 25530//24272 25528//24270 +f 25532//24274 25530//24272 25531//24273 25533//24275 +f 25532//24274 25343//24085 25341//24083 25530//24272 +f 25343//24085 25532//24274 25534//24276 25347//24089 +f 25533//24275 25535//24277 25534//24276 25532//24274 +f 25536//24278 25534//24276 25535//24277 25537//24279 +f 25536//24278 25349//24091 25347//24089 25534//24276 +f 25536//24278 25538//24280 25353//24095 25349//24091 +f 25537//24279 25539//24281 25538//24280 25536//24278 +f 25540//24282 25538//24280 25539//24281 25541//24283 +f 25355//24097 25353//24095 25538//24280 25540//24282 +f 25540//24282 25542//24284 25359//24101 25355//24097 +f 25541//24283 25543//24285 25542//24284 25540//24282 +f 25544//24286 25542//24284 25543//24285 25545//24287 +f 25361//24103 25359//24101 25542//24284 25544//24286 +f 25361//24103 25544//24286 25546//24288 25365//24107 +f 25545//24287 25547//24289 25546//24288 25544//24286 +f 25548//24290 25546//24288 25547//24289 25549//24291 +f 25548//24290 25367//24109 25365//24107 25546//24288 +f 25367//24109 25548//24290 25550//24292 25371//24113 +f 25549//24291 25551//24293 25550//24292 25548//24290 +f 25552//24294 25550//24292 25551//24293 25553//24295 +f 25552//24294 25373//24115 25371//24113 25550//24292 +f 25552//24294 25554//24296 25377//24119 25373//24115 +f 25553//24295 25555//24297 25554//24296 25552//24294 +f 25556//24298 25554//24296 25555//24297 25557//24299 +f 25379//24121 25377//24119 25554//24296 25556//24298 +f 25556//24298 25558//24300 25383//24125 25379//24121 +f 25557//24299 25559//24301 25558//24300 25556//24298 +f 25560//24302 25558//24300 25559//24301 25561//24303 +f 25385//24127 25383//24125 25558//24300 25560//24302 +f 25385//24127 25560//24302 25562//24304 25389//24131 +f 25561//24303 25563//24305 25562//24304 25560//24302 +f 25564//24306 25562//24304 25563//24305 25565//24307 +f 25564//24306 25391//24133 25389//24131 25562//24304 +f 25391//24133 25564//24306 25566//24308 25395//24137 +f 25565//24307 25567//24309 25566//24308 25564//24306 +f 25568//24310 25566//24308 25567//24309 25569//24311 +f 25568//24310 25397//24139 25395//24137 25566//24308 +f 25568//24310 25570//24312 25401//24143 25397//24139 +f 25569//24311 25571//24313 25570//24312 25568//24310 +f 25572//24314 25570//24312 25571//24313 25573//24315 +f 25403//24145 25401//24143 25570//24312 25572//24314 +f 25572//24314 25574//24316 25407//24149 25403//24145 +f 25573//24315 25575//24317 25574//24316 25572//24314 +f 25576//24318 25574//24316 25575//24317 25577//24319 +f 25409//24151 25407//24149 25574//24316 25576//24318 +f 25409//24151 25576//24318 25578//24320 25413//24155 +f 25577//24319 25579//24321 25578//24320 25576//24318 +f 25580//24322 25578//24320 25579//24321 25581//24323 +f 25580//24322 25415//24157 25413//24155 25578//24320 +f 25415//24157 25580//24322 25582//24324 25419//24161 +f 25581//24323 25583//24325 25582//24324 25580//24322 +f 25584//24326 25582//24324 25583//24325 25585//24327 +f 25584//24326 25421//24163 25419//24161 25582//24324 +f 25584//24326 25586//24328 25425//24167 25421//24163 +f 25585//24327 25587//24329 25586//24328 25584//24326 +f 25428//24170 25586//24328 25587//24329 25430//24172 +f 25188//23930 25425//24167 25586//24328 25428//24170 +f 25588//24330 25589//24331 25431//24173 25430//24172 +f 25590//24332 25591//24333 25589//24331 25588//24330 +f 25592//24334 25589//24331 25591//24333 25593//24335 +f 25433//24175 25431//24173 25589//24331 25592//24334 +f 25592//24334 25594//24336 25435//24177 25433//24175 +f 25593//24335 25595//24337 25594//24336 25592//24334 +f 25596//24338 25594//24336 25595//24337 25597//24339 +f 25437//24179 25435//24177 25594//24336 25596//24338 +f 25596//24338 25598//24340 25439//24181 25437//24179 +f 25597//24339 25599//24341 25598//24340 25596//24338 +f 25600//24342 25598//24340 25599//24341 25601//24343 +f 25441//24183 25439//24181 25598//24340 25600//24342 +f 25600//24342 25602//24344 25443//24185 25441//24183 +f 25601//24343 25603//24345 25602//24344 25600//24342 +f 25604//24346 25602//24344 25603//24345 25605//24347 +f 25445//24187 25443//24185 25602//24344 25604//24346 +f 25604//24346 25606//24348 25447//24189 25445//24187 +f 25605//24347 25607//24349 25606//24348 25604//24346 +f 25608//24350 25606//24348 25607//24349 25609//24351 +f 25449//24191 25447//24189 25606//24348 25608//24350 +f 25608//24350 25610//24352 25451//24193 25449//24191 +f 25609//24351 25611//24353 25610//24352 25608//24350 +f 25612//24354 25610//24352 25611//24353 25613//24355 +f 25453//24195 25451//24193 25610//24352 25612//24354 +f 25612//24354 25614//24356 25455//24197 25453//24195 +f 25613//24355 25615//24357 25614//24356 25612//24354 +f 25616//24358 25614//24356 25615//24357 25617//24359 +f 25457//24199 25455//24197 25614//24356 25616//24358 +f 25616//24358 25618//24360 25459//24201 25457//24199 +f 25617//24359 25619//24361 25618//24360 25616//24358 +f 25620//24362 25618//24360 25619//24361 25621//24363 +f 25461//24203 25459//24201 25618//24360 25620//24362 +f 25620//24362 25622//24364 25463//24205 25461//24203 +f 25621//24363 25623//24365 25622//24364 25620//24362 +f 25624//24366 25622//24364 25623//24365 25625//24367 +f 25465//24207 25463//24205 25622//24364 25624//24366 +f 25624//24366 25626//24368 25467//24209 25465//24207 +f 25625//24367 25627//24369 25626//24368 25624//24366 +f 25628//24370 25626//24368 25627//24369 25629//24371 +f 25469//24211 25467//24209 25626//24368 25628//24370 +f 25628//24370 25630//24372 25471//24213 25469//24211 +f 25629//24371 25631//24373 25630//24372 25628//24370 +f 25632//24374 25630//24372 25631//24373 25633//24375 +f 25473//24215 25471//24213 25630//24372 25632//24374 +f 25632//24374 25634//24376 25475//24217 25473//24215 +f 25633//24375 25635//24377 25634//24376 25632//24374 +f 25636//24378 25634//24376 25635//24377 25637//24379 +f 25477//24219 25475//24217 25634//24376 25636//24378 +f 25636//24378 25638//24380 25479//24221 25477//24219 +f 25637//24379 25639//24381 25638//24380 25636//24378 +f 25640//24382 25638//24380 25639//24381 25641//24383 +f 25481//24223 25479//24221 25638//24380 25640//24382 +f 25640//24382 25642//24384 25483//24225 25481//24223 +f 25641//24383 25643//24385 25642//24384 25640//24382 +f 25644//24386 25642//24384 25643//24385 25645//24387 +f 25485//24227 25483//24225 25642//24384 25644//24386 +f 25644//24386 25646//24388 25487//24229 25485//24227 +f 25645//24387 25647//24389 25646//24388 25644//24386 +f 25648//24390 25646//24388 25647//24389 25649//24391 +f 25489//24231 25487//24229 25646//24388 25648//24390 +f 25648//24390 25650//24392 25491//24233 25489//24231 +f 25649//24391 25651//24393 25650//24392 25648//24390 +f 25652//24394 25650//24392 25651//24393 25653//24395 +f 25493//24235 25491//24233 25650//24392 25652//24394 +f 25652//24394 25654//24396 25495//24237 25493//24235 +f 25653//24395 25655//24397 25654//24396 25652//24394 +f 25656//24398 25654//24396 25655//24397 25657//24399 +f 25497//24239 25495//24237 25654//24396 25656//24398 +f 25656//24398 25658//24400 25499//24241 25497//24239 +f 25657//24399 25659//24401 25658//24400 25656//24398 +f 25660//24402 25658//24400 25659//24401 25661//24403 +f 25501//24243 25499//24241 25658//24400 25660//24402 +f 25660//24402 25662//24404 25503//24245 25501//24243 +f 25661//24403 25663//24405 25662//24404 25660//24402 +f 25664//24406 25662//24404 25663//24405 25665//24407 +f 25505//24247 25503//24245 25662//24404 25664//24406 +f 25664//24406 25666//24408 25507//24249 25505//24247 +f 25665//24407 25667//24409 25666//24408 25664//24406 +f 25668//24410 25666//24408 25667//24409 25669//24411 +f 25509//24251 25507//24249 25666//24408 25668//24410 +f 25668//24410 25670//24412 25511//24253 25509//24251 +f 25669//24411 25671//24413 25670//24412 25668//24410 +f 25672//24414 25670//24412 25671//24413 25673//24415 +f 25513//24255 25511//24253 25670//24412 25672//24414 +f 25672//24414 25674//24416 25515//24257 25513//24255 +f 25673//24415 25675//24417 25674//24416 25672//24414 +f 25676//24418 25674//24416 25675//24417 25677//24419 +f 25517//24259 25515//24257 25674//24416 25676//24418 +f 25676//24418 25678//24420 25519//24261 25517//24259 +f 25677//24419 25679//24421 25678//24420 25676//24418 +f 25680//24422 25678//24420 25679//24421 25681//24423 +f 25521//24263 25519//24261 25678//24420 25680//24422 +f 25680//24422 25682//24424 25523//24265 25521//24263 +f 25681//24423 25683//24425 25682//24424 25680//24422 +f 25684//24426 25682//24424 25683//24425 25685//24427 +f 25525//24267 25523//24265 25682//24424 25684//24426 +f 25684//24426 25686//24428 25527//24269 25525//24267 +f 25685//24427 25687//24429 25686//24428 25684//24426 +f 25688//24430 25686//24428 25687//24429 25689//24431 +f 25529//24271 25527//24269 25686//24428 25688//24430 +f 25688//24430 25690//24432 25531//24273 25529//24271 +f 25689//24431 25691//24433 25690//24432 25688//24430 +f 25692//24434 25690//24432 25691//24433 25693//24435 +f 25533//24275 25531//24273 25690//24432 25692//24434 +f 25692//24434 25694//24436 25535//24277 25533//24275 +f 25693//24435 25695//24437 25694//24436 25692//24434 +f 25696//24438 25694//24436 25695//24437 25697//24439 +f 25537//24279 25535//24277 25694//24436 25696//24438 +f 25696//24438 25698//24440 25539//24281 25537//24279 +f 25697//24439 25699//24441 25698//24440 25696//24438 +f 25700//24442 25698//24440 25699//24441 25701//24443 +f 25541//24283 25539//24281 25698//24440 25700//24442 +f 25700//24442 25702//24444 25543//24285 25541//24283 +f 25701//24443 25703//24445 25702//24444 25700//24442 +f 25704//24446 25702//24444 25703//24445 25705//24447 +f 25545//24287 25543//24285 25702//24444 25704//24446 +f 25704//24446 25706//24448 25547//24289 25545//24287 +f 25705//24447 25707//24449 25706//24448 25704//24446 +f 25708//24450 25706//24448 25707//24449 25709//24451 +f 25549//24291 25547//24289 25706//24448 25708//24450 +f 25708//24450 25710//24452 25551//24293 25549//24291 +f 25709//24451 25711//24453 25710//24452 25708//24450 +f 25712//24454 25710//24452 25711//24453 25713//24455 +f 25553//24295 25551//24293 25710//24452 25712//24454 +f 25712//24454 25714//24456 25555//24297 25553//24295 +f 25713//24455 25715//24457 25714//24456 25712//24454 +f 25716//24458 25714//24456 25715//24457 25717//24459 +f 25557//24299 25555//24297 25714//24456 25716//24458 +f 25716//24458 25718//24460 25559//24301 25557//24299 +f 25717//24459 25719//24461 25718//24460 25716//24458 +f 25720//24462 25718//24460 25719//24461 25721//24463 +f 25561//24303 25559//24301 25718//24460 25720//24462 +f 25720//24462 25722//24464 25563//24305 25561//24303 +f 25721//24463 25723//24465 25722//24464 25720//24462 +f 25724//24466 25722//24464 25723//24465 25725//24467 +f 25565//24307 25563//24305 25722//24464 25724//24466 +f 25724//24466 25726//24468 25567//24309 25565//24307 +f 25725//24467 25727//24469 25726//24468 25724//24466 +f 25728//24470 25726//24468 25727//24469 25729//24471 +f 25569//24311 25567//24309 25726//24468 25728//24470 +f 25728//24470 25730//24472 25571//24313 25569//24311 +f 25729//24471 25731//24473 25730//24472 25728//24470 +f 25732//24474 25730//24472 25731//24473 25733//24475 +f 25573//24315 25571//24313 25730//24472 25732//24474 +f 25732//24474 25734//24476 25575//24317 25573//24315 +f 25733//24475 25735//24477 25734//24476 25732//24474 +f 25736//24478 25734//24476 25735//24477 25737//24479 +f 25577//24319 25575//24317 25734//24476 25736//24478 +f 25736//24478 25738//24480 25579//24321 25577//24319 +f 25737//24479 25739//24481 25738//24480 25736//24478 +f 25740//24482 25738//24480 25739//24481 25741//24483 +f 25581//24323 25579//24321 25738//24480 25740//24482 +f 25740//24482 25742//24484 25583//24325 25581//24323 +f 25741//24483 25743//24485 25742//24484 25740//24482 +f 25744//24486 25742//24484 25743//24485 25745//24487 +f 25585//24327 25583//24325 25742//24484 25744//24486 +f 25744//24486 25746//24488 25587//24329 25585//24327 +f 25745//24487 25747//24489 25746//24488 25744//24486 +f 25588//24330 25746//24488 25747//24489 25590//24332 +f 25430//24172 25587//24329 25746//24488 25588//24330 +f 25591//24333 25748//24490 25749//24491 25593//24335 +f 25590//24332 25750//24492 25748//24490 25591//24333 +f 25751//24493 25748//24490 25750//24492 25752//24494 +f 25753//24495 25749//24491 25748//24490 25751//24493 +f 25595//24337 25754//24496 25755//24497 25597//24339 +f 25593//24335 25749//24491 25754//24496 25595//24337 +f 25756//24498 25754//24496 25749//24491 25753//24495 +f 25757//24499 25755//24497 25754//24496 25756//24498 +f 25599//24341 25758//24500 25759//24501 25601//24343 +f 25597//24339 25755//24497 25758//24500 25599//24341 +f 25760//24502 25758//24500 25755//24497 25757//24499 +f 25761//24503 25759//24501 25758//24500 25760//24502 +f 25603//24345 25762//24504 25763//24505 25605//24347 +f 25601//24343 25759//24501 25762//24504 25603//24345 +f 25764//24506 25762//24504 25759//24501 25761//24503 +f 25765//24507 25763//24505 25762//24504 25764//24506 +f 25607//24349 25766//24508 25767//24509 25609//24351 +f 25605//24347 25763//24505 25766//24508 25607//24349 +f 25768//24510 25766//24508 25763//24505 25765//24507 +f 25769//24511 25767//24509 25766//24508 25768//24510 +f 25611//24353 25770//24512 25771//24513 25613//24355 +f 25609//24351 25767//24509 25770//24512 25611//24353 +f 25772//24514 25770//24512 25767//24509 25769//24511 +f 25773//24515 25771//24513 25770//24512 25772//24514 +f 25615//24357 25774//24516 25775//24517 25617//24359 +f 25613//24355 25771//24513 25774//24516 25615//24357 +f 25776//24518 25774//24516 25771//24513 25773//24515 +f 25777//24519 25775//24517 25774//24516 25776//24518 +f 25619//24361 25778//24520 25779//24521 25621//24363 +f 25617//24359 25775//24517 25778//24520 25619//24361 +f 25780//24522 25778//24520 25775//24517 25777//24519 +f 25781//24523 25779//24521 25778//24520 25780//24522 +f 25623//24365 25782//24524 25783//24525 25625//24367 +f 25621//24363 25779//24521 25782//24524 25623//24365 +f 25784//24526 25782//24524 25779//24521 25781//24523 +f 25785//24527 25783//24525 25782//24524 25784//24526 +f 25627//24369 25786//24528 25787//24529 25629//24371 +f 25625//24367 25783//24525 25786//24528 25627//24369 +f 25788//24530 25786//24528 25783//24525 25785//24527 +f 25789//24531 25787//24529 25786//24528 25788//24530 +f 25631//24373 25790//24532 25791//24533 25633//24375 +f 25629//24371 25787//24529 25790//24532 25631//24373 +f 25792//24534 25790//24532 25787//24529 25789//24531 +f 25793//24535 25791//24533 25790//24532 25792//24534 +f 25635//24377 25794//24536 25795//24537 25637//24379 +f 25633//24375 25791//24533 25794//24536 25635//24377 +f 25796//24538 25794//24536 25791//24533 25793//24535 +f 25797//24539 25795//24537 25794//24536 25796//24538 +f 25639//24381 25798//24540 25799//24541 25641//24383 +f 25637//24379 25795//24537 25798//24540 25639//24381 +f 25800//24542 25798//24540 25795//24537 25797//24539 +f 25801//24543 25799//24541 25798//24540 25800//24542 +f 25643//24385 25802//24544 25803//24545 25645//24387 +f 25641//24383 25799//24541 25802//24544 25643//24385 +f 25804//24546 25802//24544 25799//24541 25801//24543 +f 25805//24547 25803//24545 25802//24544 25804//24546 +f 25647//24389 25806//24548 25807//24549 25649//24391 +f 25645//24387 25803//24545 25806//24548 25647//24389 +f 25808//24550 25806//24548 25803//24545 25805//24547 +f 25809//24551 25807//24549 25806//24548 25808//24550 +f 25651//24393 25810//24552 25811//24553 25653//24395 +f 25649//24391 25807//24549 25810//24552 25651//24393 +f 25812//24554 25810//24552 25807//24549 25809//24551 +f 25813//24555 25811//24553 25810//24552 25812//24554 +f 25655//24397 25814//24556 25815//24557 25657//24399 +f 25653//24395 25811//24553 25814//24556 25655//24397 +f 25816//24558 25814//24556 25811//24553 25813//24555 +f 25817//24559 25815//24557 25814//24556 25816//24558 +f 25659//24401 25818//24560 25819//24561 25661//24403 +f 25657//24399 25815//24557 25818//24560 25659//24401 +f 25820//24562 25818//24560 25815//24557 25817//24559 +f 25821//24563 25819//24561 25818//24560 25820//24562 +f 25663//24405 25822//24564 25823//24565 25665//24407 +f 25661//24403 25819//24561 25822//24564 25663//24405 +f 25824//24566 25822//24564 25819//24561 25821//24563 +f 25825//24567 25823//24565 25822//24564 25824//24566 +f 25667//24409 25826//24568 25827//24569 25669//24411 +f 25665//24407 25823//24565 25826//24568 25667//24409 +f 25828//24570 25826//24568 25823//24565 25825//24567 +f 25829//24571 25827//24569 25826//24568 25828//24570 +f 25671//24413 25830//24572 25831//24573 25673//24415 +f 25669//24411 25827//24569 25830//24572 25671//24413 +f 25832//24574 25830//24572 25827//24569 25829//24571 +f 25833//24575 25831//24573 25830//24572 25832//24574 +f 25675//24417 25834//24576 25835//24577 25677//24419 +f 25673//24415 25831//24573 25834//24576 25675//24417 +f 25836//24578 25834//24576 25831//24573 25833//24575 +f 25837//24579 25835//24577 25834//24576 25836//24578 +f 25679//24421 25838//24580 25839//24581 25681//24423 +f 25677//24419 25835//24577 25838//24580 25679//24421 +f 25840//24582 25838//24580 25835//24577 25837//24579 +f 25841//24583 25839//24581 25838//24580 25840//24582 +f 25683//24425 25842//24584 25843//24585 25685//24427 +f 25681//24423 25839//24581 25842//24584 25683//24425 +f 25844//24586 25842//24584 25839//24581 25841//24583 +f 25845//24587 25843//24585 25842//24584 25844//24586 +f 25687//24429 25846//24588 25847//24589 25689//24431 +f 25685//24427 25843//24585 25846//24588 25687//24429 +f 25848//24590 25846//24588 25843//24585 25845//24587 +f 25849//24591 25847//24589 25846//24588 25848//24590 +f 25691//24433 25850//24592 25851//24593 25693//24435 +f 25689//24431 25847//24589 25850//24592 25691//24433 +f 25852//24594 25850//24592 25847//24589 25849//24591 +f 25853//24595 25851//24593 25850//24592 25852//24594 +f 25695//24437 25854//24596 25855//24597 25697//24439 +f 25693//24435 25851//24593 25854//24596 25695//24437 +f 25856//24598 25854//24596 25851//24593 25853//24595 +f 25857//24599 25855//24597 25854//24596 25856//24598 +f 25699//24441 25858//24600 25859//24601 25701//24443 +f 25697//24439 25855//24597 25858//24600 25699//24441 +f 25860//24602 25858//24600 25855//24597 25857//24599 +f 25861//24603 25859//24601 25858//24600 25860//24602 +f 25703//24445 25862//24604 25863//24605 25705//24447 +f 25701//24443 25859//24601 25862//24604 25703//24445 +f 25864//24606 25862//24604 25859//24601 25861//24603 +f 25865//24607 25863//24605 25862//24604 25864//24606 +f 25707//24449 25866//24608 25867//24609 25709//24451 +f 25705//24447 25863//24605 25866//24608 25707//24449 +f 25868//24610 25866//24608 25863//24605 25865//24607 +f 25869//24611 25867//24609 25866//24608 25868//24610 +f 25711//24453 25870//24612 25871//24613 25713//24455 +f 25709//24451 25867//24609 25870//24612 25711//24453 +f 25872//24614 25870//24612 25867//24609 25869//24611 +f 25873//24615 25871//24613 25870//24612 25872//24614 +f 25715//24457 25874//24616 25875//24617 25717//24459 +f 25713//24455 25871//24613 25874//24616 25715//24457 +f 25876//24618 25874//24616 25871//24613 25873//24615 +f 25877//24619 25875//24617 25874//24616 25876//24618 +f 25719//24461 25878//24620 25879//24621 25721//24463 +f 25717//24459 25875//24617 25878//24620 25719//24461 +f 25880//24622 25878//24620 25875//24617 25877//24619 +f 25881//24623 25879//24621 25878//24620 25880//24622 +f 25723//24465 25882//24624 25883//24625 25725//24467 +f 25721//24463 25879//24621 25882//24624 25723//24465 +f 25884//24626 25882//24624 25879//24621 25881//24623 +f 25885//24627 25883//24625 25882//24624 25884//24626 +f 25727//24469 25886//24628 25887//24629 25729//24471 +f 25725//24467 25883//24625 25886//24628 25727//24469 +f 25888//24630 25886//24628 25883//24625 25885//24627 +f 25889//24631 25887//24629 25886//24628 25888//24630 +f 25731//24473 25890//24632 25891//24633 25733//24475 +f 25729//24471 25887//24629 25890//24632 25731//24473 +f 25892//24634 25890//24632 25887//24629 25889//24631 +f 25893//24635 25891//24633 25890//24632 25892//24634 +f 25735//24477 25894//24636 25895//24637 25737//24479 +f 25733//24475 25891//24633 25894//24636 25735//24477 +f 25896//24638 25894//24636 25891//24633 25893//24635 +f 25897//24639 25895//24637 25894//24636 25896//24638 +f 25739//24481 25898//24640 25899//24641 25741//24483 +f 25737//24479 25895//24637 25898//24640 25739//24481 +f 25900//24642 25898//24640 25895//24637 25897//24639 +f 25901//24643 25899//24641 25898//24640 25900//24642 +f 25743//24485 25902//24644 25903//24645 25745//24487 +f 25741//24483 25899//24641 25902//24644 25743//24485 +f 25904//24646 25902//24644 25899//24641 25901//24643 +f 25905//24647 25903//24645 25902//24644 25904//24646 +f 25747//24489 25906//24648 25750//24492 25590//24332 +f 25745//24487 25903//24645 25906//24648 25747//24489 +f 25907//24649 25906//24648 25903//24645 25905//24647 +f 25752//24494 25750//24492 25906//24648 25907//24649 +f 25751//24493 25908//24650 25909//24651 25753//24495 +f 25752//24494 25910//24652 25908//24650 25751//24493 +f 25911//24653 25908//24650 25910//24652 25912//24654 +f 25913//24655 25909//24651 25908//24650 25911//24653 +f 25756//24498 25914//24656 25915//24657 25757//24499 +f 25753//24495 25909//24651 25914//24656 25756//24498 +f 25916//24658 25914//24656 25909//24651 25913//24655 +f 25917//24659 25915//24657 25914//24656 25916//24658 +f 25760//24502 25918//24660 25919//24661 25761//24503 +f 25757//24499 25915//24657 25918//24660 25760//24502 +f 25920//24662 25918//24660 25915//24657 25917//24659 +f 25921//24663 25919//24661 25918//24660 25920//24662 +f 25764//24506 25922//24664 25923//24665 25765//24507 +f 25761//24503 25919//24661 25922//24664 25764//24506 +f 25924//24666 25922//24664 25919//24661 25921//24663 +f 25925//24667 25923//24665 25922//24664 25924//24666 +f 25768//24510 25926//24668 25927//24669 25769//24511 +f 25765//24507 25923//24665 25926//24668 25768//24510 +f 25928//24670 25926//24668 25923//24665 25925//24667 +f 25929//24671 25927//24669 25926//24668 25928//24670 +f 25772//24514 25930//24672 25931//24673 25773//24515 +f 25769//24511 25927//24669 25930//24672 25772//24514 +f 25932//24674 25930//24672 25927//24669 25929//24671 +f 25933//24675 25931//24673 25930//24672 25932//24674 +f 25776//24518 25934//24676 25935//24677 25777//24519 +f 25773//24515 25931//24673 25934//24676 25776//24518 +f 25936//24678 25934//24676 25931//24673 25933//24675 +f 25937//24679 25935//24677 25934//24676 25936//24678 +f 25780//24522 25938//24680 25939//24681 25781//24523 +f 25777//24519 25935//24677 25938//24680 25780//24522 +f 25940//24682 25938//24680 25935//24677 25937//24679 +f 25941//24683 25939//24681 25938//24680 25940//24682 +f 25784//24526 25942//24684 25943//24685 25785//24527 +f 25781//24523 25939//24681 25942//24684 25784//24526 +f 25944//24686 25942//24684 25939//24681 25941//24683 +f 25945//24687 25943//24685 25942//24684 25944//24686 +f 25788//24530 25946//24688 25947//24689 25789//24531 +f 25785//24527 25943//24685 25946//24688 25788//24530 +f 25948//24690 25946//24688 25943//24685 25945//24687 +f 25949//24691 25947//24689 25946//24688 25948//24690 +f 25792//24534 25950//24692 25951//24693 25793//24535 +f 25789//24531 25947//24689 25950//24692 25792//24534 +f 25952//24694 25950//24692 25947//24689 25949//24691 +f 25953//24695 25951//24693 25950//24692 25952//24694 +f 25796//24538 25954//24696 25955//24697 25797//24539 +f 25793//24535 25951//24693 25954//24696 25796//24538 +f 25956//24698 25954//24696 25951//24693 25953//24695 +f 25957//24699 25955//24697 25954//24696 25956//24698 +f 25800//24542 25958//24700 25959//24701 25801//24543 +f 25797//24539 25955//24697 25958//24700 25800//24542 +f 25960//24702 25958//24700 25955//24697 25957//24699 +f 25961//24703 25959//24701 25958//24700 25960//24702 +f 25804//24546 25962//24704 25963//24705 25805//24547 +f 25801//24543 25959//24701 25962//24704 25804//24546 +f 25964//24706 25962//24704 25959//24701 25961//24703 +f 25965//24707 25963//24705 25962//24704 25964//24706 +f 25808//24550 25966//24708 25967//24709 25809//24551 +f 25805//24547 25963//24705 25966//24708 25808//24550 +f 25968//24710 25966//24708 25963//24705 25965//24707 +f 25969//24711 25967//24709 25966//24708 25968//24710 +f 25812//24554 25970//24712 25971//24713 25813//24555 +f 25809//24551 25967//24709 25970//24712 25812//24554 +f 25972//24714 25970//24712 25967//24709 25969//24711 +f 25973//24715 25971//24713 25970//24712 25972//24714 +f 25816//24558 25974//24716 25975//24717 25817//24559 +f 25813//24555 25971//24713 25974//24716 25816//24558 +f 25976//24718 25974//24716 25971//24713 25973//24715 +f 25977//24719 25975//24717 25974//24716 25976//24718 +f 25820//24562 25978//24720 25979//24721 25821//24563 +f 25817//24559 25975//24717 25978//24720 25820//24562 +f 25980//24722 25978//24720 25975//24717 25977//24719 +f 25981//24723 25979//24721 25978//24720 25980//24722 +f 25824//24566 25982//24724 25983//24725 25825//24567 +f 25821//24563 25979//24721 25982//24724 25824//24566 +f 25984//24726 25982//24724 25979//24721 25981//24723 +f 25985//24727 25983//24725 25982//24724 25984//24726 +f 25828//24570 25986//24728 25987//24729 25829//24571 +f 25825//24567 25983//24725 25986//24728 25828//24570 +f 25988//24730 25986//24728 25983//24725 25985//24727 +f 25989//24731 25987//24729 25986//24728 25988//24730 +f 25832//24574 25990//24732 25991//24733 25833//24575 +f 25829//24571 25987//24729 25990//24732 25832//24574 +f 25992//24734 25990//24732 25987//24729 25989//24731 +f 25993//24735 25991//24733 25990//24732 25992//24734 +f 25836//24578 25994//24736 25995//24737 25837//24579 +f 25833//24575 25991//24733 25994//24736 25836//24578 +f 25996//24738 25994//24736 25991//24733 25993//24735 +f 25997//24739 25995//24737 25994//24736 25996//24738 +f 25840//24582 25998//24740 25999//24741 25841//24583 +f 25837//24579 25995//24737 25998//24740 25840//24582 +f 26000//24742 25998//24740 25995//24737 25997//24739 +f 26001//24743 25999//24741 25998//24740 26000//24742 +f 25844//24586 26002//24744 26003//24745 25845//24587 +f 25841//24583 25999//24741 26002//24744 25844//24586 +f 26004//24746 26002//24744 25999//24741 26001//24743 +f 26005//24747 26003//24745 26002//24744 26004//24746 +f 25848//24590 26006//24748 26007//24749 25849//24591 +f 25845//24587 26003//24745 26006//24748 25848//24590 +f 26008//24750 26006//24748 26003//24745 26005//24747 +f 26009//24751 26007//24749 26006//24748 26008//24750 +f 25852//24594 26010//24752 26011//24753 25853//24595 +f 25849//24591 26007//24749 26010//24752 25852//24594 +f 26012//24754 26010//24752 26007//24749 26009//24751 +f 26013//24755 26011//24753 26010//24752 26012//24754 +f 25856//24598 26014//24756 26015//24757 25857//24599 +f 25853//24595 26011//24753 26014//24756 25856//24598 +f 26016//24758 26014//24756 26011//24753 26013//24755 +f 26017//24759 26015//24757 26014//24756 26016//24758 +f 25860//24602 26018//24760 26019//24761 25861//24603 +f 25857//24599 26015//24757 26018//24760 25860//24602 +f 26020//24762 26018//24760 26015//24757 26017//24759 +f 26021//24763 26019//24761 26018//24760 26020//24762 +f 25864//24606 26022//24764 26023//24765 25865//24607 +f 25861//24603 26019//24761 26022//24764 25864//24606 +f 26024//24766 26022//24764 26019//24761 26021//24763 +f 26025//24767 26023//24765 26022//24764 26024//24766 +f 25868//24610 26026//24768 26027//24769 25869//24611 +f 25865//24607 26023//24765 26026//24768 25868//24610 +f 26028//24770 26026//24768 26023//24765 26025//24767 +f 26029//24771 26027//24769 26026//24768 26028//24770 +f 25872//24614 26030//24772 26031//24773 25873//24615 +f 25869//24611 26027//24769 26030//24772 25872//24614 +f 26032//24774 26030//24772 26027//24769 26029//24771 +f 26033//24775 26031//24773 26030//24772 26032//24774 +f 25876//24618 26034//24776 26035//24777 25877//24619 +f 25873//24615 26031//24773 26034//24776 25876//24618 +f 26036//24778 26034//24776 26031//24773 26033//24775 +f 26037//24779 26035//24777 26034//24776 26036//24778 +f 25880//24622 26038//24780 26039//24781 25881//24623 +f 25877//24619 26035//24777 26038//24780 25880//24622 +f 26040//24782 26038//24780 26035//24777 26037//24779 +f 26041//24783 26039//24781 26038//24780 26040//24782 +f 25884//24626 26042//24784 26043//24785 25885//24627 +f 25881//24623 26039//24781 26042//24784 25884//24626 +f 26044//24786 26042//24784 26039//24781 26041//24783 +f 26045//24787 26043//24785 26042//24784 26044//24786 +f 25888//24630 26046//24788 26047//24789 25889//24631 +f 25885//24627 26043//24785 26046//24788 25888//24630 +f 26048//24790 26046//24788 26043//24785 26045//24787 +f 26049//24791 26047//24789 26046//24788 26048//24790 +f 25892//24634 26050//24792 26051//24793 25893//24635 +f 25889//24631 26047//24789 26050//24792 25892//24634 +f 26052//24794 26050//24792 26047//24789 26049//24791 +f 26053//24795 26051//24793 26050//24792 26052//24794 +f 25896//24638 26054//24796 26055//24797 25897//24639 +f 25893//24635 26051//24793 26054//24796 25896//24638 +f 26056//24798 26054//24796 26051//24793 26053//24795 +f 26057//24799 26055//24797 26054//24796 26056//24798 +f 25900//24642 26058//24800 26059//24801 25901//24643 +f 25897//24639 26055//24797 26058//24800 25900//24642 +f 26060//24802 26058//24800 26055//24797 26057//24799 +f 26061//24803 26059//24801 26058//24800 26060//24802 +f 25904//24646 26062//24804 26063//24805 25905//24647 +f 25901//24643 26059//24801 26062//24804 25904//24646 +f 26064//24806 26062//24804 26059//24801 26061//24803 +f 26065//24807 26063//24805 26062//24804 26064//24806 +f 25907//24649 26066//24808 25910//24652 25752//24494 +f 25905//24647 26063//24805 26066//24808 25907//24649 +f 26067//24809 26066//24808 26063//24805 26065//24807 +f 25912//24654 25910//24652 26066//24808 26067//24809 +f 25911//24653 26068//24810 26069//24811 25913//24655 +f 25912//24654 26070//24812 26068//24810 25911//24653 +f 26071//24813 26068//24810 26070//24812 26072//24814 +f 26073//24815 26069//24811 26068//24810 26071//24813 +f 25916//24658 26074//24816 26075//24817 25917//24659 +f 25913//24655 26069//24811 26074//24816 25916//24658 +f 26076//24818 26074//24816 26069//24811 26073//24815 +f 26077//24819 26075//24817 26074//24816 26076//24818 +f 25920//24662 26078//24820 26079//24821 25921//24663 +f 25917//24659 26075//24817 26078//24820 25920//24662 +f 26080//24822 26078//24820 26075//24817 26077//24819 +f 26081//24823 26079//24821 26078//24820 26080//24822 +f 25924//24666 26082//24824 26083//24825 25925//24667 +f 25921//24663 26079//24821 26082//24824 25924//24666 +f 26084//24826 26082//24824 26079//24821 26081//24823 +f 26085//24827 26083//24825 26082//24824 26084//24826 +f 25928//24670 26086//24828 26087//24829 25929//24671 +f 25925//24667 26083//24825 26086//24828 25928//24670 +f 26088//24830 26086//24828 26083//24825 26085//24827 +f 26089//24831 26087//24829 26086//24828 26088//24830 +f 25932//24674 26090//24832 26091//24833 25933//24675 +f 25929//24671 26087//24829 26090//24832 25932//24674 +f 26092//24834 26090//24832 26087//24829 26089//24831 +f 26093//24835 26091//24833 26090//24832 26092//24834 +f 25936//24678 26094//24836 26095//24837 25937//24679 +f 25933//24675 26091//24833 26094//24836 25936//24678 +f 26096//24838 26094//24836 26091//24833 26093//24835 +f 26097//24839 26095//24837 26094//24836 26096//24838 +f 25940//24682 26098//24840 26099//24841 25941//24683 +f 25937//24679 26095//24837 26098//24840 25940//24682 +f 26100//24842 26098//24840 26095//24837 26097//24839 +f 26101//24843 26099//24841 26098//24840 26100//24842 +f 25944//24686 26102//24844 26103//24845 25945//24687 +f 25941//24683 26099//24841 26102//24844 25944//24686 +f 26104//24846 26102//24844 26099//24841 26101//24843 +f 26105//24847 26103//24845 26102//24844 26104//24846 +f 25948//24690 26106//24848 26107//24849 25949//24691 +f 25945//24687 26103//24845 26106//24848 25948//24690 +f 26108//24850 26106//24848 26103//24845 26105//24847 +f 26109//24851 26107//24849 26106//24848 26108//24850 +f 25952//24694 26110//24852 26111//24853 25953//24695 +f 25949//24691 26107//24849 26110//24852 25952//24694 +f 26112//24854 26110//24852 26107//24849 26109//24851 +f 26113//24855 26111//24853 26110//24852 26112//24854 +f 25956//24698 26114//24856 26115//24857 25957//24699 +f 25953//24695 26111//24853 26114//24856 25956//24698 +f 26116//24858 26114//24856 26111//24853 26113//24855 +f 26117//24859 26115//24857 26114//24856 26116//24858 +f 25960//24702 26118//24860 26119//24861 25961//24703 +f 25957//24699 26115//24857 26118//24860 25960//24702 +f 26120//24862 26118//24860 26115//24857 26117//24859 +f 26121//24863 26119//24861 26118//24860 26120//24862 +f 25964//24706 26122//24864 26123//24865 25965//24707 +f 25961//24703 26119//24861 26122//24864 25964//24706 +f 26124//24866 26122//24864 26119//24861 26121//24863 +f 26125//24867 26123//24865 26122//24864 26124//24866 +f 25968//24710 26126//24868 26127//24869 25969//24711 +f 25965//24707 26123//24865 26126//24868 25968//24710 +f 26128//24870 26126//24868 26123//24865 26125//24867 +f 26129//24871 26127//24869 26126//24868 26128//24870 +f 25972//24714 26130//24872 26131//24873 25973//24715 +f 25969//24711 26127//24869 26130//24872 25972//24714 +f 26132//24874 26130//24872 26127//24869 26129//24871 +f 26133//24875 26131//24873 26130//24872 26132//24874 +f 25976//24718 26134//24876 26135//24877 25977//24719 +f 25973//24715 26131//24873 26134//24876 25976//24718 +f 26136//24878 26134//24876 26131//24873 26133//24875 +f 26137//24879 26135//24877 26134//24876 26136//24878 +f 25980//24722 26138//24880 26139//24881 25981//24723 +f 25977//24719 26135//24877 26138//24880 25980//24722 +f 26140//24882 26138//24880 26135//24877 26137//24879 +f 26141//24883 26139//24881 26138//24880 26140//24882 +f 25984//24726 26142//24884 26143//24885 25985//24727 +f 25981//24723 26139//24881 26142//24884 25984//24726 +f 26144//24886 26142//24884 26139//24881 26141//24883 +f 26145//24887 26143//24885 26142//24884 26144//24886 +f 25988//24730 26146//24888 26147//24889 25989//24731 +f 25985//24727 26143//24885 26146//24888 25988//24730 +f 26148//24890 26146//24888 26143//24885 26145//24887 +f 26149//24891 26147//24889 26146//24888 26148//24890 +f 25992//24734 26150//24892 26151//24893 25993//24735 +f 25989//24731 26147//24889 26150//24892 25992//24734 +f 26152//24894 26150//24892 26147//24889 26149//24891 +f 26153//24895 26151//24893 26150//24892 26152//24894 +f 25996//24738 26154//24896 26155//24897 25997//24739 +f 25993//24735 26151//24893 26154//24896 25996//24738 +f 26156//24898 26154//24896 26151//24893 26153//24895 +f 26157//24899 26155//24897 26154//24896 26156//24898 +f 26000//24742 26158//24900 26159//24901 26001//24743 +f 25997//24739 26155//24897 26158//24900 26000//24742 +f 26160//24902 26158//24900 26155//24897 26157//24899 +f 26161//24903 26159//24901 26158//24900 26160//24902 +f 26004//24746 26162//24904 26163//24905 26005//24747 +f 26001//24743 26159//24901 26162//24904 26004//24746 +f 26164//24906 26162//24904 26159//24901 26161//24903 +f 26165//24907 26163//24905 26162//24904 26164//24906 +f 26008//24750 26166//24908 26167//24909 26009//24751 +f 26005//24747 26163//24905 26166//24908 26008//24750 +f 26168//24910 26166//24908 26163//24905 26165//24907 +f 26169//24911 26167//24909 26166//24908 26168//24910 +f 26012//24754 26170//24912 26171//24913 26013//24755 +f 26009//24751 26167//24909 26170//24912 26012//24754 +f 26172//24914 26170//24912 26167//24909 26169//24911 +f 26173//24915 26171//24913 26170//24912 26172//24914 +f 26016//24758 26174//24916 26175//24917 26017//24759 +f 26013//24755 26171//24913 26174//24916 26016//24758 +f 26176//24918 26174//24916 26171//24913 26173//24915 +f 26177//24919 26175//24917 26174//24916 26176//24918 +f 26020//24762 26178//24920 26179//24921 26021//24763 +f 26017//24759 26175//24917 26178//24920 26020//24762 +f 26180//24922 26178//24920 26175//24917 26177//24919 +f 26181//24923 26179//24921 26178//24920 26180//24922 +f 26024//24766 26182//24924 26183//24925 26025//24767 +f 26021//24763 26179//24921 26182//24924 26024//24766 +f 26184//24926 26182//24924 26179//24921 26181//24923 +f 26185//24927 26183//24925 26182//24924 26184//24926 +f 26028//24770 26186//24928 26187//24929 26029//24771 +f 26025//24767 26183//24925 26186//24928 26028//24770 +f 26188//24930 26186//24928 26183//24925 26185//24927 +f 26189//24931 26187//24929 26186//24928 26188//24930 +f 26032//24774 26190//24932 26191//24933 26033//24775 +f 26029//24771 26187//24929 26190//24932 26032//24774 +f 26192//24934 26190//24932 26187//24929 26189//24931 +f 26193//24935 26191//24933 26190//24932 26192//24934 +f 26036//24778 26194//24936 26195//24937 26037//24779 +f 26033//24775 26191//24933 26194//24936 26036//24778 +f 26196//24938 26194//24936 26191//24933 26193//24935 +f 26197//24939 26195//24937 26194//24936 26196//24938 +f 26040//24782 26198//24940 26199//24941 26041//24783 +f 26037//24779 26195//24937 26198//24940 26040//24782 +f 26200//24942 26198//24940 26195//24937 26197//24939 +f 26201//24943 26199//24941 26198//24940 26200//24942 +f 26044//24786 26202//24944 26203//24945 26045//24787 +f 26041//24783 26199//24941 26202//24944 26044//24786 +f 26204//24946 26202//24944 26199//24941 26201//24943 +f 26205//24947 26203//24945 26202//24944 26204//24946 +f 26048//24790 26206//24948 26207//24949 26049//24791 +f 26045//24787 26203//24945 26206//24948 26048//24790 +f 26208//24950 26206//24948 26203//24945 26205//24947 +f 26209//24951 26207//24949 26206//24948 26208//24950 +f 26052//24794 26210//24952 26211//24953 26053//24795 +f 26049//24791 26207//24949 26210//24952 26052//24794 +f 26212//24954 26210//24952 26207//24949 26209//24951 +f 26213//24955 26211//24953 26210//24952 26212//24954 +f 26056//24798 26214//24956 26215//24957 26057//24799 +f 26053//24795 26211//24953 26214//24956 26056//24798 +f 26216//24958 26214//24956 26211//24953 26213//24955 +f 26217//24959 26215//24957 26214//24956 26216//24958 +f 26060//24802 26218//24960 26219//24961 26061//24803 +f 26057//24799 26215//24957 26218//24960 26060//24802 +f 26220//24962 26218//24960 26215//24957 26217//24959 +f 26221//24963 26219//24961 26218//24960 26220//24962 +f 26064//24806 26222//24964 26223//24965 26065//24807 +f 26061//24803 26219//24961 26222//24964 26064//24806 +f 26224//24966 26222//24964 26219//24961 26221//24963 +f 26225//24967 26223//24965 26222//24964 26224//24966 +f 26067//24809 26226//24968 26070//24812 25912//24654 +f 26065//24807 26223//24965 26226//24968 26067//24809 +f 26227//24969 26226//24968 26223//24965 26225//24967 +f 26072//24814 26070//24812 26226//24968 26227//24969 +f 24386//23128 26228//24970 26229//24971 24388//23130 +f 24387//23129 26230//24972 26228//24970 24386//23128 +f 26231//24973 26228//24970 26230//24972 26232//24974 +f 26233//24975 26229//24971 26228//24970 26231//24973 +f 24391//23133 26234//24976 26230//24972 24387//23129 +f 24392//23134 26235//24977 26234//24976 24391//23133 +f 26236//24978 26234//24976 26235//24977 26237//24979 +f 26232//24974 26230//24972 26234//24976 26236//24978 +f 24395//23137 26238//24980 26235//24977 24392//23134 +f 24396//23138 26239//24981 26238//24980 24395//23137 +f 26240//24982 26238//24980 26239//24981 26241//24983 +f 26237//24979 26235//24977 26238//24980 26240//24982 +f 24399//23141 26242//24984 26239//24981 24396//23138 +f 24400//23142 26243//24985 26242//24984 24399//23141 +f 26244//24986 26242//24984 26243//24985 26245//24987 +f 26241//24983 26239//24981 26242//24984 26244//24986 +f 24403//23145 26246//24988 26243//24985 24400//23142 +f 24404//23146 26247//24989 26246//24988 24403//23145 +f 26248//24990 26246//24988 26247//24989 26249//24991 +f 26245//24987 26243//24985 26246//24988 26248//24990 +f 24407//23149 26250//24992 26247//24989 24404//23146 +f 24408//23150 26251//24993 26250//24992 24407//23149 +f 26252//24994 26250//24992 26251//24993 26253//24995 +f 26249//24991 26247//24989 26250//24992 26252//24994 +f 24411//23153 26254//24996 26251//24993 24408//23150 +f 24412//23154 26255//24997 26254//24996 24411//23153 +f 26256//24998 26254//24996 26255//24997 26257//24999 +f 26253//24995 26251//24993 26254//24996 26256//24998 +f 24415//23157 26258//25000 26255//24997 24412//23154 +f 24416//23158 26259//25001 26258//25000 24415//23157 +f 26260//25002 26258//25000 26259//25001 26261//25003 +f 26257//24999 26255//24997 26258//25000 26260//25002 +f 24419//23161 26262//25004 26259//25001 24416//23158 +f 24420//23162 26263//25005 26262//25004 24419//23161 +f 26264//25006 26262//25004 26263//25005 26265//25007 +f 26261//25003 26259//25001 26262//25004 26264//25006 +f 24423//23165 26266//25008 26263//25005 24420//23162 +f 24424//23166 26267//25009 26266//25008 24423//23165 +f 26268//25010 26266//25008 26267//25009 26269//25011 +f 26265//25007 26263//25005 26266//25008 26268//25010 +f 24427//23169 26270//25012 26267//25009 24424//23166 +f 24428//23170 26271//25013 26270//25012 24427//23169 +f 26272//25014 26270//25012 26271//25013 26273//25015 +f 26269//25011 26267//25009 26270//25012 26272//25014 +f 24431//23173 26274//25016 26271//25013 24428//23170 +f 24432//23174 26275//25017 26274//25016 24431//23173 +f 26276//25018 26274//25016 26275//25017 26277//25019 +f 26273//25015 26271//25013 26274//25016 26276//25018 +f 24435//23177 26278//25020 26275//25017 24432//23174 +f 24436//23178 26279//25021 26278//25020 24435//23177 +f 26280//25022 26278//25020 26279//25021 26281//25023 +f 26277//25019 26275//25017 26278//25020 26280//25022 +f 24439//23181 26282//25024 26279//25021 24436//23178 +f 24440//23182 26283//25025 26282//25024 24439//23181 +f 26284//25026 26282//25024 26283//25025 26285//25027 +f 26281//25023 26279//25021 26282//25024 26284//25026 +f 24443//23185 26286//25028 26283//25025 24440//23182 +f 24444//23186 26287//25029 26286//25028 24443//23185 +f 26288//25030 26286//25028 26287//25029 26289//25031 +f 26285//25027 26283//25025 26286//25028 26288//25030 +f 24447//23189 26290//25032 26287//25029 24444//23186 +f 24448//23190 26291//25033 26290//25032 24447//23189 +f 26292//25034 26290//25032 26291//25033 26293//25035 +f 26289//25031 26287//25029 26290//25032 26292//25034 +f 24451//23193 26294//25036 26291//25033 24448//23190 +f 24452//23194 26295//25037 26294//25036 24451//23193 +f 26296//25038 26294//25036 26295//25037 26297//25039 +f 26293//25035 26291//25033 26294//25036 26296//25038 +f 24455//23197 26298//25040 26295//25037 24452//23194 +f 24456//23198 26299//25041 26298//25040 24455//23197 +f 26300//25042 26298//25040 26299//25041 26301//25043 +f 26297//25039 26295//25037 26298//25040 26300//25042 +f 24459//23201 26302//25044 26299//25041 24456//23198 +f 24460//23202 26303//25045 26302//25044 24459//23201 +f 26304//25046 26302//25044 26303//25045 26305//25047 +f 26301//25043 26299//25041 26302//25044 26304//25046 +f 24463//23205 26306//25048 26303//25045 24460//23202 +f 24464//23206 26307//25049 26306//25048 24463//23205 +f 26308//25050 26306//25048 26307//25049 26309//25051 +f 26305//25047 26303//25045 26306//25048 26308//25050 +f 26310//25052 26311//25053 26312//25054 26313//25055 +f 26314//25056 26315//25057 26311//25053 26310//25052 +f 26316//25058 26311//25053 26315//25057 26317//25059 +f 26318//25060 26312//25054 26311//25053 26316//25058 +f 26319//25061 26320//25062 26315//25057 26314//25056 +f 26321//25063 26322//25064 26320//25062 26319//25061 +f 26323//25065 26320//25062 26322//25064 26324//25066 +f 26317//25059 26315//25057 26320//25062 26323//25065 +f 26325//25067 26326//25068 26322//25064 26321//25063 +f 26327//25069 26328//25070 26326//25068 26325//25067 +f 26329//25071 26326//25068 26328//25070 26330//25072 +f 26324//25066 26322//25064 26326//25068 26329//25071 +f 26331//25073 26332//25074 26328//25070 26327//25069 +f 26333//25075 26334//25076 26332//25074 26331//25073 +f 26335//25077 26332//25074 26334//25076 26336//25078 +f 26330//25072 26328//25070 26332//25074 26335//25077 +f 26337//25079 26338//25080 26334//25076 26333//25075 +f 26339//25081 26340//25082 26338//25080 26337//25079 +f 26341//25083 26338//25080 26340//25082 26342//25084 +f 26336//25078 26334//25076 26338//25080 26341//25083 +f 26343//25085 26344//25086 26340//25082 26339//25081 +f 26345//25087 26346//25088 26344//25086 26343//25085 +f 26347//25089 26344//25086 26346//25088 26348//25090 +f 26342//25084 26340//25082 26344//25086 26347//25089 +f 26349//25091 26350//25092 26346//25088 26345//25087 +f 26351//25093 26352//25094 26350//25092 26349//25091 +f 26353//25095 26350//25092 26352//25094 26354//25096 +f 26348//25090 26346//25088 26350//25092 26353//25095 +f 26355//25097 26356//25098 26352//25094 26351//25093 +f 26357//25099 26358//25100 26356//25098 26355//25097 +f 26359//25101 26356//25098 26358//25100 26360//25102 +f 26354//25096 26352//25094 26356//25098 26359//25101 +f 26361//25103 26362//25104 26358//25100 26357//25099 +f 26363//25105 26364//25106 26362//25104 26361//25103 +f 26365//25107 26362//25104 26364//25106 26366//25108 +f 26360//25102 26358//25100 26362//25104 26365//25107 +f 26367//25109 26368//25110 26364//25106 26363//25105 +f 26369//25111 26370//25112 26368//25110 26367//25109 +f 26371//25113 26368//25110 26370//25112 26372//25114 +f 26366//25108 26364//25106 26368//25110 26371//25113 +f 26373//25115 26374//25116 26370//25112 26369//25111 +f 26375//25117 26376//25118 26374//25116 26373//25115 +f 26377//25119 26374//25116 26376//25118 26378//25120 +f 26372//25114 26370//25112 26374//25116 26377//25119 +f 26379//25121 26380//25122 26376//25118 26375//25117 +f 26381//25123 26382//25124 26380//25122 26379//25121 +f 26383//25125 26380//25122 26382//25124 26384//25126 +f 26378//25120 26376//25118 26380//25122 26383//25125 +f 26385//25127 26386//25128 26382//25124 26381//25123 +f 26387//25129 26388//25130 26386//25128 26385//25127 +f 26389//25131 26386//25128 26388//25130 26390//25132 +f 26384//25126 26382//25124 26386//25128 26389//25131 +f 26391//25133 26392//25134 26388//25130 26387//25129 +f 26393//25135 26394//25136 26392//25134 26391//25133 +f 26395//25137 26392//25134 26394//25136 26396//25138 +f 26390//25132 26388//25130 26392//25134 26395//25137 +f 26397//25139 26398//25140 26394//25136 26393//25135 +f 26399//25141 26400//25142 26398//25140 26397//25139 +f 26401//25143 26398//25140 26400//25142 26402//25144 +f 26396//25138 26394//25136 26398//25140 26401//25143 +f 26403//25145 26404//25146 26400//25142 26399//25141 +f 26405//25147 26406//25148 26404//25146 26403//25145 +f 26407//25149 26404//25146 26406//25148 26408//25150 +f 26402//25144 26400//25142 26404//25146 26407//25149 +f 26409//25151 26410//25152 26406//25148 26405//25147 +f 26411//25153 26412//25154 26410//25152 26409//25151 +f 26413//25155 26410//25152 26412//25154 26414//25156 +f 26408//25150 26406//25148 26410//25152 26413//25155 +f 26415//25157 26416//25158 26412//25154 26411//25153 +f 26417//25159 26418//25160 26416//25158 26415//25157 +f 26419//25161 26416//25158 26418//25160 26420//25162 +f 26414//25156 26412//25154 26416//25158 26419//25161 +f 26421//25163 26422//25164 26418//25160 26417//25159 +f 26423//25165 26424//25166 26422//25164 26421//25163 +f 26425//25167 26422//25164 26424//25166 26426//25168 +f 26420//25162 26418//25160 26422//25164 26425//25167 +f 26427//25169 26428//25170 26424//25166 26423//25165 +f 26429//25171 26430//25172 26428//25170 26427//25169 +f 26431//25173 26428//25170 26430//25172 26432//25174 +f 26426//25168 26424//25166 26428//25170 26431//25173 +f 26433//25175 26434//25176 26435//25177 26436//25178 +f 26437//25179 26438//25180 26434//25176 26433//25175 +f 26439//25181 26434//25176 26438//25180 26440//25182 +f 26441//25183 26435//25177 26434//25176 26439//25181 +f 26442//25184 26443//25185 26444//25186 26445//25187 +f 26446//25188 26447//25189 26443//25185 26442//25184 +f 26433//25175 26443//25185 26447//25189 26437//25179 +f 26436//25178 26444//25186 26443//25185 26433//25175 +f 26448//25190 26449//25191 26450//25192 26451//25193 +f 26452//25194 26453//25195 26449//25191 26448//25190 +f 26442//25184 26449//25191 26453//25195 26446//25188 +f 26445//25187 26450//25192 26449//25191 26442//25184 +f 26454//25196 26455//25197 26456//25198 26457//25199 +f 26458//25200 26459//25201 26455//25197 26454//25196 +f 26448//25190 26455//25197 26459//25201 26452//25194 +f 26451//25193 26456//25198 26455//25197 26448//25190 +f 26460//25202 26461//25203 26462//25204 26463//25205 +f 26464//25206 26465//25207 26461//25203 26460//25202 +f 26454//25196 26461//25203 26465//25207 26458//25200 +f 26457//25199 26462//25204 26461//25203 26454//25196 +f 26466//25208 26467//25209 26468//25210 26469//25211 +f 26470//25212 26471//25213 26467//25209 26466//25208 +f 26460//25202 26467//25209 26471//25213 26464//25206 +f 26463//25205 26468//25210 26467//25209 26460//25202 +f 26472//25214 26473//25215 26474//25216 26475//25217 +f 26476//25218 26477//25219 26473//25215 26472//25214 +f 26466//25208 26473//25215 26477//25219 26470//25212 +f 26469//25211 26474//25216 26473//25215 26466//25208 +f 26478//25220 26479//25221 26480//25222 26481//25223 +f 26482//25224 26483//25225 26479//25221 26478//25220 +f 26472//25214 26479//25221 26483//25225 26476//25218 +f 26475//25217 26480//25222 26479//25221 26472//25214 +f 26484//25226 26485//25227 26486//25228 26487//25229 +f 26488//25230 26489//25231 26485//25227 26484//25226 +f 26478//25220 26485//25227 26489//25231 26482//25224 +f 26481//25223 26486//25228 26485//25227 26478//25220 +f 26490//25232 26491//25233 26492//25234 26493//25235 +f 26494//25236 26495//25237 26491//25233 26490//25232 +f 26484//25226 26491//25233 26495//25237 26488//25230 +f 26487//25229 26492//25234 26491//25233 26484//25226 +f 26496//25238 26497//25239 26498//25240 26499//25241 +f 26500//25242 26501//25243 26497//25239 26496//25238 +f 26490//25232 26497//25239 26501//25243 26494//25236 +f 26493//25235 26498//25240 26497//25239 26490//25232 +f 26502//25244 26503//25245 26504//25246 26505//25247 +f 26506//25248 26507//25249 26503//25245 26502//25244 +f 26496//25238 26503//25245 26507//25249 26500//25242 +f 26499//25241 26504//25246 26503//25245 26496//25238 +f 26508//25250 26509//25251 26510//25252 26511//25253 +f 26512//25254 26513//25255 26509//25251 26508//25250 +f 26502//25244 26509//25251 26513//25255 26506//25248 +f 26505//25247 26510//25252 26509//25251 26502//25244 +f 26514//25256 26515//25257 26516//25258 26517//25259 +f 26518//25260 26519//25261 26515//25257 26514//25256 +f 26508//25250 26515//25257 26519//25261 26512//25254 +f 26511//25253 26516//25258 26515//25257 26508//25250 +f 26520//25262 26521//25263 26522//25264 26523//25265 +f 26524//25266 26525//25267 26521//25263 26520//25262 +f 26514//25256 26521//25263 26525//25267 26518//25260 +f 26517//25259 26522//25264 26521//25263 26514//25256 +f 26526//25268 26527//25269 26528//25270 26529//25271 +f 26530//25272 26531//25273 26527//25269 26526//25268 +f 26520//25262 26527//25269 26531//25273 26524//25266 +f 26523//25265 26528//25270 26527//25269 26520//25262 +f 26532//25274 26533//25275 26534//25276 26535//25277 +f 26536//25278 26537//25279 26533//25275 26532//25274 +f 26526//25268 26533//25275 26537//25279 26530//25272 +f 26529//25271 26534//25276 26533//25275 26526//25268 +f 26538//25280 26539//25281 26540//25282 26541//25283 +f 26542//25284 26543//25285 26539//25281 26538//25280 +f 26532//25274 26539//25281 26543//25285 26536//25278 +f 26535//25277 26540//25282 26539//25281 26532//25274 +f 26544//25286 26545//25287 26546//25288 26547//25289 +f 26548//25290 26549//25291 26545//25287 26544//25286 +f 26538//25280 26545//25287 26549//25291 26542//25284 +f 26541//25283 26546//25288 26545//25287 26538//25280 +f 26550//25292 26551//25293 26552//25294 26553//25295 +f 26554//25296 26555//25297 26551//25293 26550//25292 +f 26544//25286 26551//25293 26555//25297 26548//25290 +f 26547//25289 26552//25294 26551//25293 26544//25286 +f 26556//25298 26557//25299 26438//25180 26437//25179 +f 26558//25300 26559//25301 26557//25299 26556//25298 +f 26560//25302 26557//25299 26559//25301 26561//25303 +f 26440//25182 26438//25180 26557//25299 26560//25302 +f 26562//25304 26563//25305 26447//25189 26446//25188 +f 26564//25306 26565//25307 26563//25305 26562//25304 +f 26556//25298 26563//25305 26565//25307 26558//25300 +f 26437//25179 26447//25189 26563//25305 26556//25298 +f 26566//25308 26567//25309 26453//25195 26452//25194 +f 26568//25310 26569//25311 26567//25309 26566//25308 +f 26562//25304 26567//25309 26569//25311 26564//25306 +f 26446//25188 26453//25195 26567//25309 26562//25304 +f 26570//25312 26571//25313 26459//25201 26458//25200 +f 26572//25314 26573//25315 26571//25313 26570//25312 +f 26566//25308 26571//25313 26573//25315 26568//25310 +f 26452//25194 26459//25201 26571//25313 26566//25308 +f 26574//25316 26575//25317 26465//25207 26464//25206 +f 26576//25318 26577//25319 26575//25317 26574//25316 +f 26570//25312 26575//25317 26577//25319 26572//25314 +f 26458//25200 26465//25207 26575//25317 26570//25312 +f 26578//25320 26579//25321 26471//25213 26470//25212 +f 26580//25322 26581//25323 26579//25321 26578//25320 +f 26574//25316 26579//25321 26581//25323 26576//25318 +f 26464//25206 26471//25213 26579//25321 26574//25316 +f 26582//25324 26583//25325 26477//25219 26476//25218 +f 26584//25326 26585//25327 26583//25325 26582//25324 +f 26578//25320 26583//25325 26585//25327 26580//25322 +f 26470//25212 26477//25219 26583//25325 26578//25320 +f 26586//25328 26587//25329 26483//25225 26482//25224 +f 26588//25330 26589//25331 26587//25329 26586//25328 +f 26582//25324 26587//25329 26589//25331 26584//25326 +f 26476//25218 26483//25225 26587//25329 26582//25324 +f 26590//25332 26591//25333 26489//25231 26488//25230 +f 26592//25334 26593//25335 26591//25333 26590//25332 +f 26586//25328 26591//25333 26593//25335 26588//25330 +f 26482//25224 26489//25231 26591//25333 26586//25328 +f 26594//25336 26595//25337 26495//25237 26494//25236 +f 26596//25338 26597//25339 26595//25337 26594//25336 +f 26590//25332 26595//25337 26597//25339 26592//25334 +f 26488//25230 26495//25237 26595//25337 26590//25332 +f 26598//25340 26599//25341 26501//25243 26500//25242 +f 26600//25342 26601//25343 26599//25341 26598//25340 +f 26594//25336 26599//25341 26601//25343 26596//25338 +f 26494//25236 26501//25243 26599//25341 26594//25336 +f 26602//25344 26603//25345 26507//25249 26506//25248 +f 26604//25346 26605//25347 26603//25345 26602//25344 +f 26598//25340 26603//25345 26605//25347 26600//25342 +f 26500//25242 26507//25249 26603//25345 26598//25340 +f 26606//25348 26607//25349 26513//25255 26512//25254 +f 26608//25350 26609//25351 26607//25349 26606//25348 +f 26602//25344 26607//25349 26609//25351 26604//25346 +f 26506//25248 26513//25255 26607//25349 26602//25344 +f 26610//25352 26611//25353 26519//25261 26518//25260 +f 26612//25354 26613//25355 26611//25353 26610//25352 +f 26606//25348 26611//25353 26613//25355 26608//25350 +f 26512//25254 26519//25261 26611//25353 26606//25348 +f 26614//25356 26615//25357 26525//25267 26524//25266 +f 26616//25358 26617//25359 26615//25357 26614//25356 +f 26610//25352 26615//25357 26617//25359 26612//25354 +f 26518//25260 26525//25267 26615//25357 26610//25352 +f 26618//25360 26619//25361 26531//25273 26530//25272 +f 26620//25362 26621//25363 26619//25361 26618//25360 +f 26614//25356 26619//25361 26621//25363 26616//25358 +f 26524//25266 26531//25273 26619//25361 26614//25356 +f 26622//25364 26623//25365 26537//25279 26536//25278 +f 26624//25366 26625//25367 26623//25365 26622//25364 +f 26618//25360 26623//25365 26625//25367 26620//25362 +f 26530//25272 26537//25279 26623//25365 26618//25360 +f 26626//25368 26627//25369 26543//25285 26542//25284 +f 26628//25370 26629//25371 26627//25369 26626//25368 +f 26622//25364 26627//25369 26629//25371 26624//25366 +f 26536//25278 26543//25285 26627//25369 26622//25364 +f 26630//25372 26631//25373 26549//25291 26548//25290 +f 26632//25374 26633//25375 26631//25373 26630//25372 +f 26626//25368 26631//25373 26633//25375 26628//25370 +f 26542//25284 26549//25291 26631//25373 26626//25368 +f 26634//25376 26635//25377 26555//25297 26554//25296 +f 26636//25378 26637//25379 26635//25377 26634//25376 +f 26630//25372 26635//25377 26637//25379 26632//25374 +f 26548//25290 26555//25297 26635//25377 26630//25372 +f 26638//25380 26639//25381 26316//25058 26317//25059 +f 26436//25178 26435//25177 26639//25381 26638//25380 +f 26640//25382 26639//25381 26435//25177 26441//25183 +f 26318//25060 26316//25058 26639//25381 26640//25382 +f 26641//25383 26642//25384 26323//25065 26324//25066 +f 26445//25187 26444//25186 26642//25384 26641//25383 +f 26638//25380 26642//25384 26444//25186 26436//25178 +f 26317//25059 26323//25065 26642//25384 26638//25380 +f 26643//25385 26644//25386 26329//25071 26330//25072 +f 26451//25193 26450//25192 26644//25386 26643//25385 +f 26641//25383 26644//25386 26450//25192 26445//25187 +f 26324//25066 26329//25071 26644//25386 26641//25383 +f 26645//25387 26646//25388 26335//25077 26336//25078 +f 26457//25199 26456//25198 26646//25388 26645//25387 +f 26643//25385 26646//25388 26456//25198 26451//25193 +f 26330//25072 26335//25077 26646//25388 26643//25385 +f 26647//25389 26648//25390 26341//25083 26342//25084 +f 26463//25205 26462//25204 26648//25390 26647//25389 +f 26645//25387 26648//25390 26462//25204 26457//25199 +f 26336//25078 26341//25083 26648//25390 26645//25387 +f 26649//25391 26650//25392 26347//25089 26348//25090 +f 26469//25211 26468//25210 26650//25392 26649//25391 +f 26647//25389 26650//25392 26468//25210 26463//25205 +f 26342//25084 26347//25089 26650//25392 26647//25389 +f 26651//25393 26652//25394 26353//25095 26354//25096 +f 26475//25217 26474//25216 26652//25394 26651//25393 +f 26649//25391 26652//25394 26474//25216 26469//25211 +f 26348//25090 26353//25095 26652//25394 26649//25391 +f 26653//25395 26654//25396 26359//25101 26360//25102 +f 26481//25223 26480//25222 26654//25396 26653//25395 +f 26651//25393 26654//25396 26480//25222 26475//25217 +f 26354//25096 26359//25101 26654//25396 26651//25393 +f 26655//25397 26656//25398 26365//25107 26366//25108 +f 26487//25229 26486//25228 26656//25398 26655//25397 +f 26653//25395 26656//25398 26486//25228 26481//25223 +f 26360//25102 26365//25107 26656//25398 26653//25395 +f 26657//25399 26658//25400 26371//25113 26372//25114 +f 26493//25235 26492//25234 26658//25400 26657//25399 +f 26655//25397 26658//25400 26492//25234 26487//25229 +f 26366//25108 26371//25113 26658//25400 26655//25397 +f 26659//25401 26660//25402 26377//25119 26378//25120 +f 26499//25241 26498//25240 26660//25402 26659//25401 +f 26657//25399 26660//25402 26498//25240 26493//25235 +f 26372//25114 26377//25119 26660//25402 26657//25399 +f 26661//25403 26662//25404 26383//25125 26384//25126 +f 26505//25247 26504//25246 26662//25404 26661//25403 +f 26659//25401 26662//25404 26504//25246 26499//25241 +f 26378//25120 26383//25125 26662//25404 26659//25401 +f 26663//25405 26664//25406 26389//25131 26390//25132 +f 26511//25253 26510//25252 26664//25406 26663//25405 +f 26661//25403 26664//25406 26510//25252 26505//25247 +f 26384//25126 26389//25131 26664//25406 26661//25403 +f 26665//25407 26666//25408 26395//25137 26396//25138 +f 26517//25259 26516//25258 26666//25408 26665//25407 +f 26663//25405 26666//25408 26516//25258 26511//25253 +f 26390//25132 26395//25137 26666//25408 26663//25405 +f 26667//25409 26668//25410 26401//25143 26402//25144 +f 26523//25265 26522//25264 26668//25410 26667//25409 +f 26665//25407 26668//25410 26522//25264 26517//25259 +f 26396//25138 26401//25143 26668//25410 26665//25407 +f 26669//25411 26670//25412 26407//25149 26408//25150 +f 26529//25271 26528//25270 26670//25412 26669//25411 +f 26667//25409 26670//25412 26528//25270 26523//25265 +f 26402//25144 26407//25149 26670//25412 26667//25409 +f 26671//25413 26672//25414 26413//25155 26414//25156 +f 26535//25277 26534//25276 26672//25414 26671//25413 +f 26669//25411 26672//25414 26534//25276 26529//25271 +f 26408//25150 26413//25155 26672//25414 26669//25411 +f 26673//25415 26674//25416 26419//25161 26420//25162 +f 26541//25283 26540//25282 26674//25416 26673//25415 +f 26671//25413 26674//25416 26540//25282 26535//25277 +f 26414//25156 26419//25161 26674//25416 26671//25413 +f 26675//25417 26676//25418 26425//25167 26426//25168 +f 26547//25289 26546//25288 26676//25418 26675//25417 +f 26673//25415 26676//25418 26546//25288 26541//25283 +f 26420//25162 26425//25167 26676//25418 26673//25415 +f 26677//25419 26678//25420 26431//25173 26432//25174 +f 26553//25295 26552//25294 26678//25420 26677//25419 +f 26675//25417 26678//25420 26552//25294 26547//25289 +f 26426//25168 26431//25173 26678//25420 26675//25417 +f 26679//25421 26680//25422 26231//24973 26232//24974 +f 26314//25056 26310//25052 26680//25422 26679//25421 +f 26681//25423 26680//25422 26310//25052 26313//25055 +f 26233//24975 26231//24973 26680//25422 26681//25423 +f 26682//25424 26683//25425 26236//24978 26237//24979 +f 26321//25063 26319//25061 26683//25425 26682//25424 +f 26679//25421 26683//25425 26319//25061 26314//25056 +f 26232//24974 26236//24978 26683//25425 26679//25421 +f 26684//25426 26685//25427 26240//24982 26241//24983 +f 26327//25069 26325//25067 26685//25427 26684//25426 +f 26682//25424 26685//25427 26325//25067 26321//25063 +f 26237//24979 26240//24982 26685//25427 26682//25424 +f 26686//25428 26687//25429 26244//24986 26245//24987 +f 26333//25075 26331//25073 26687//25429 26686//25428 +f 26684//25426 26687//25429 26331//25073 26327//25069 +f 26241//24983 26244//24986 26687//25429 26684//25426 +f 26688//25430 26689//25431 26248//24990 26249//24991 +f 26339//25081 26337//25079 26689//25431 26688//25430 +f 26686//25428 26689//25431 26337//25079 26333//25075 +f 26245//24987 26248//24990 26689//25431 26686//25428 +f 26690//25432 26691//25433 26252//24994 26253//24995 +f 26345//25087 26343//25085 26691//25433 26690//25432 +f 26688//25430 26691//25433 26343//25085 26339//25081 +f 26249//24991 26252//24994 26691//25433 26688//25430 +f 26692//25434 26693//25435 26256//24998 26257//24999 +f 26351//25093 26349//25091 26693//25435 26692//25434 +f 26690//25432 26693//25435 26349//25091 26345//25087 +f 26253//24995 26256//24998 26693//25435 26690//25432 +f 26694//25436 26695//25437 26260//25002 26261//25003 +f 26357//25099 26355//25097 26695//25437 26694//25436 +f 26692//25434 26695//25437 26355//25097 26351//25093 +f 26257//24999 26260//25002 26695//25437 26692//25434 +f 26696//25438 26697//25439 26264//25006 26265//25007 +f 26363//25105 26361//25103 26697//25439 26696//25438 +f 26694//25436 26697//25439 26361//25103 26357//25099 +f 26261//25003 26264//25006 26697//25439 26694//25436 +f 26698//25440 26699//25441 26268//25010 26269//25011 +f 26369//25111 26367//25109 26699//25441 26698//25440 +f 26696//25438 26699//25441 26367//25109 26363//25105 +f 26265//25007 26268//25010 26699//25441 26696//25438 +f 26700//25442 26701//25443 26272//25014 26273//25015 +f 26375//25117 26373//25115 26701//25443 26700//25442 +f 26698//25440 26701//25443 26373//25115 26369//25111 +f 26269//25011 26272//25014 26701//25443 26698//25440 +f 26702//25444 26703//25445 26276//25018 26277//25019 +f 26381//25123 26379//25121 26703//25445 26702//25444 +f 26700//25442 26703//25445 26379//25121 26375//25117 +f 26273//25015 26276//25018 26703//25445 26700//25442 +f 26704//25446 26705//25447 26280//25022 26281//25023 +f 26387//25129 26385//25127 26705//25447 26704//25446 +f 26702//25444 26705//25447 26385//25127 26381//25123 +f 26277//25019 26280//25022 26705//25447 26702//25444 +f 26706//25448 26707//25449 26284//25026 26285//25027 +f 26393//25135 26391//25133 26707//25449 26706//25448 +f 26704//25446 26707//25449 26391//25133 26387//25129 +f 26281//25023 26284//25026 26707//25449 26704//25446 +f 26708//25450 26709//25451 26288//25030 26289//25031 +f 26399//25141 26397//25139 26709//25451 26708//25450 +f 26706//25448 26709//25451 26397//25139 26393//25135 +f 26285//25027 26288//25030 26709//25451 26706//25448 +f 26710//25452 26711//25453 26292//25034 26293//25035 +f 26405//25147 26403//25145 26711//25453 26710//25452 +f 26708//25450 26711//25453 26403//25145 26399//25141 +f 26289//25031 26292//25034 26711//25453 26708//25450 +f 26712//25454 26713//25455 26296//25038 26297//25039 +f 26411//25153 26409//25151 26713//25455 26712//25454 +f 26710//25452 26713//25455 26409//25151 26405//25147 +f 26293//25035 26296//25038 26713//25455 26710//25452 +f 26714//25456 26715//25457 26300//25042 26301//25043 +f 26417//25159 26415//25157 26715//25457 26714//25456 +f 26712//25454 26715//25457 26415//25157 26411//25153 +f 26297//25039 26300//25042 26715//25457 26712//25454 +f 26716//25458 26717//25459 26304//25046 26305//25047 +f 26423//25165 26421//25163 26717//25459 26716//25458 +f 26714//25456 26717//25459 26421//25163 26417//25159 +f 26301//25043 26304//25046 26717//25459 26714//25456 +f 26718//25460 26719//25461 26308//25050 26309//25051 +f 26429//25171 26427//25169 26719//25461 26718//25460 +f 26716//25458 26719//25461 26427//25169 26423//25165 +f 26305//25047 26308//25050 26719//25461 26716//25458 +f 23502//22243 25131//23873 26720//25462 23501//22242 +f 25131//23873 24471//23213 24470//23212 26720//25462 +f 24469//23211 26721//25463 26720//25462 24470//23212 +f 26721//25463 23458//22199 23501//22242 26720//25462 +f 23458//22199 26721//25463 26722//25464 23457//22198 +f 26721//25463 24469//23211 25116//23858 26722//25464 +f 25118//23860 26723//25465 26722//25464 25116//23858 +f 26723//25465 23414//22155 23457//22198 26722//25464 +f 23414//22155 26723//25465 26724//25466 23413//22154 +f 26723//25465 25118//23860 25120//23862 26724//25466 +f 25122//23864 26725//25467 26724//25466 25120//23862 +f 26725//25467 23369//22110 23413//22154 26724//25466 +f 26725//25467 26726//25468 23370//22111 23369//22110 +f 25122//23864 25124//23866 26726//25468 26725//25467 +f 26727//25469 26726//25468 25124//23866 25126//23868 +f 23325//22066 23370//22111 26726//25468 26727//25469 +f 26727//25469 26728//25470 23326//22067 23325//22066 +f 25126//23868 25128//23870 26728//25470 26727//25469 +f 26729//25471 26728//25470 25128//23870 25130//23872 +f 23281//22022 23326//22067 26728//25470 26729//25471 +f 26729//25471 26730//25472 23282//22023 23281//22022 +f 25130//23872 25134//23876 26730//25472 26729//25471 +f 24549//23291 26730//25472 25134//23876 24550//23292 +f 23237//21978 23282//22023 26730//25472 24549//23291 +f 23084//21825 24544//23286 26731//25473 23089//21830 +f 24544//23286 24543//23285 25141//23883 26731//25473 +f 25143//23885 26732//25474 26731//25473 25141//23883 +f 26732//25474 23090//21831 23089//21830 26731//25473 +f 23090//21831 26732//25474 26733//25475 23095//21836 +f 26732//25474 25143//23885 25145//23887 26733//25475 +f 25147//23889 26734//25476 26733//25475 25145//23887 +f 26734//25476 23096//21837 23095//21836 26733//25475 +f 23096//21837 26734//25476 26735//25477 23101//21842 +f 26734//25476 25147//23889 25149//23891 26735//25477 +f 25151//23893 26736//25478 26735//25477 25149//23891 +f 26736//25478 23102//21843 23101//21842 26735//25477 +f 26736//25478 26737//25479 23107//21848 23102//21843 +f 25151//23893 25153//23895 26737//25479 26736//25478 +f 26738//25480 26737//25479 25153//23895 25155//23897 +f 23109//21850 23107//21848 26737//25479 26738//25480 +f 26738//25480 26739//25481 23113//21854 23109//21850 +f 25155//23897 25157//23899 26739//25481 26738//25480 +f 26740//25482 26739//25481 25157//23899 25159//23901 +f 23115//21856 23113//21854 26739//25481 26740//25482 +f 26740//25482 26741//25483 23119//21860 23115//21856 +f 25159//23901 25161//23903 26741//25483 26740//25482 +f 24541//23283 26741//25483 25161//23903 24542//23284 +f 23121//21862 23119//21860 26741//25483 24541//23283 +f 26071//24813 26742//25484 26743//25485 26073//24815 +f 26072//24814 26744//25486 26742//25484 26071//24813 +f 26745//25487 26742//25484 26744//25486 26746//25488 +f 26747//25489 26743//25485 26742//25484 26745//25487 +f 26076//24818 26748//25490 26749//25491 26077//24819 +f 26073//24815 26743//25485 26748//25490 26076//24818 +f 26750//25492 26748//25490 26743//25485 26747//25489 +f 26751//25493 26749//25491 26748//25490 26750//25492 +f 26080//24822 26752//25494 26753//25495 26081//24823 +f 26077//24819 26749//25491 26752//25494 26080//24822 +f 26754//25496 26752//25494 26749//25491 26751//25493 +f 26755//25497 26753//25495 26752//25494 26754//25496 +f 26084//24826 26756//25498 26757//25499 26085//24827 +f 26081//24823 26753//25495 26756//25498 26084//24826 +f 26758//25500 26756//25498 26753//25495 26755//25497 +f 26759//25501 26757//25499 26756//25498 26758//25500 +f 26088//24830 26760//25502 26761//25503 26089//24831 +f 26085//24827 26757//25499 26760//25502 26088//24830 +f 26762//25504 26760//25502 26757//25499 26759//25501 +f 26763//25505 26761//25503 26760//25502 26762//25504 +f 26092//24834 26764//25506 26765//25507 26093//24835 +f 26089//24831 26761//25503 26764//25506 26092//24834 +f 26766//25508 26764//25506 26761//25503 26763//25505 +f 26767//25509 26765//25507 26764//25506 26766//25508 +f 26096//24838 26768//25510 26769//25511 26097//24839 +f 26093//24835 26765//25507 26768//25510 26096//24838 +f 26770//25512 26768//25510 26765//25507 26767//25509 +f 26771//25513 26769//25511 26768//25510 26770//25512 +f 26100//24842 26772//25514 26773//25515 26101//24843 +f 26097//24839 26769//25511 26772//25514 26100//24842 +f 26774//25516 26772//25514 26769//25511 26771//25513 +f 26775//25517 26773//25515 26772//25514 26774//25516 +f 26104//24846 26776//25518 26777//25519 26105//24847 +f 26101//24843 26773//25515 26776//25518 26104//24846 +f 26778//25520 26776//25518 26773//25515 26775//25517 +f 26779//25521 26777//25519 26776//25518 26778//25520 +f 26108//24850 26780//25522 26781//25523 26109//24851 +f 26105//24847 26777//25519 26780//25522 26108//24850 +f 26782//25524 26780//25522 26777//25519 26779//25521 +f 26783//25525 26781//25523 26780//25522 26782//25524 +f 26112//24854 26784//25526 26785//25527 26113//24855 +f 26109//24851 26781//25523 26784//25526 26112//24854 +f 26786//25528 26784//25526 26781//25523 26783//25525 +f 26787//25529 26785//25527 26784//25526 26786//25528 +f 26116//24858 26788//25530 26789//25531 26117//24859 +f 26113//24855 26785//25527 26788//25530 26116//24858 +f 26790//25532 26788//25530 26785//25527 26787//25529 +f 26791//25533 26789//25531 26788//25530 26790//25532 +f 26120//24862 26792//25534 26793//25535 26121//24863 +f 26117//24859 26789//25531 26792//25534 26120//24862 +f 26794//25536 26792//25534 26789//25531 26791//25533 +f 26795//25537 26793//25535 26792//25534 26794//25536 +f 26124//24866 26796//25538 26797//25539 26125//24867 +f 26121//24863 26793//25535 26796//25538 26124//24866 +f 26798//25540 26796//25538 26793//25535 26795//25537 +f 26799//25541 26797//25539 26796//25538 26798//25540 +f 26128//24870 26800//25542 26801//25543 26129//24871 +f 26125//24867 26797//25539 26800//25542 26128//24870 +f 26802//25544 26800//25542 26797//25539 26799//25541 +f 26803//25545 26801//25543 26800//25542 26802//25544 +f 26132//24874 26804//25546 26805//25547 26133//24875 +f 26129//24871 26801//25543 26804//25546 26132//24874 +f 26806//25548 26804//25546 26801//25543 26803//25545 +f 26807//25549 26805//25547 26804//25546 26806//25548 +f 26136//24878 26808//25550 26809//25551 26137//24879 +f 26133//24875 26805//25547 26808//25550 26136//24878 +f 26810//25552 26808//25550 26805//25547 26807//25549 +f 26811//25553 26809//25551 26808//25550 26810//25552 +f 26140//24882 26812//25554 26813//25555 26141//24883 +f 26137//24879 26809//25551 26812//25554 26140//24882 +f 26814//25556 26812//25554 26809//25551 26811//25553 +f 26815//25557 26813//25555 26812//25554 26814//25556 +f 26144//24886 26816//25558 26817//25559 26145//24887 +f 26141//24883 26813//25555 26816//25558 26144//24886 +f 26818//25560 26816//25558 26813//25555 26815//25557 +f 26819//25561 26817//25559 26816//25558 26818//25560 +f 26148//24890 26820//25562 26821//25563 26149//24891 +f 26145//24887 26817//25559 26820//25562 26148//24890 +f 26822//25564 26820//25562 26817//25559 26819//25561 +f 26823//25565 26821//25563 26820//25562 26822//25564 +f 26152//24894 26824//25566 26825//25567 26153//24895 +f 26149//24891 26821//25563 26824//25566 26152//24894 +f 26826//25568 26824//25566 26821//25563 26823//25565 +f 26827//25569 26825//25567 26824//25566 26826//25568 +f 26156//24898 26828//25570 26829//25571 26157//24899 +f 26153//24895 26825//25567 26828//25570 26156//24898 +f 26830//25572 26828//25570 26825//25567 26827//25569 +f 26831//25573 26829//25571 26828//25570 26830//25572 +f 26160//24902 26832//25574 26833//25575 26161//24903 +f 26157//24899 26829//25571 26832//25574 26160//24902 +f 26834//25576 26832//25574 26829//25571 26831//25573 +f 26835//25577 26833//25575 26832//25574 26834//25576 +f 26164//24906 26836//25578 26837//25579 26165//24907 +f 26161//24903 26833//25575 26836//25578 26164//24906 +f 26838//25580 26836//25578 26833//25575 26835//25577 +f 26839//25581 26837//25579 26836//25578 26838//25580 +f 26168//24910 26840//25582 26841//25583 26169//24911 +f 26165//24907 26837//25579 26840//25582 26168//24910 +f 26842//25584 26840//25582 26837//25579 26839//25581 +f 26843//25585 26841//25583 26840//25582 26842//25584 +f 26172//24914 26844//25586 26845//25587 26173//24915 +f 26169//24911 26841//25583 26844//25586 26172//24914 +f 26846//25588 26844//25586 26841//25583 26843//25585 +f 26847//25589 26845//25587 26844//25586 26846//25588 +f 26176//24918 26848//25590 26849//25591 26177//24919 +f 26173//24915 26845//25587 26848//25590 26176//24918 +f 26850//25592 26848//25590 26845//25587 26847//25589 +f 26851//25593 26849//25591 26848//25590 26850//25592 +f 26180//24922 26852//25594 26853//25595 26181//24923 +f 26177//24919 26849//25591 26852//25594 26180//24922 +f 26854//25596 26852//25594 26849//25591 26851//25593 +f 26855//25597 26853//25595 26852//25594 26854//25596 +f 26184//24926 26856//25598 26857//25599 26185//24927 +f 26181//24923 26853//25595 26856//25598 26184//24926 +f 26858//25600 26856//25598 26853//25595 26855//25597 +f 26859//25601 26857//25599 26856//25598 26858//25600 +f 26188//24930 26860//25602 26861//25603 26189//24931 +f 26185//24927 26857//25599 26860//25602 26188//24930 +f 26862//25604 26860//25602 26857//25599 26859//25601 +f 26863//25605 26861//25603 26860//25602 26862//25604 +f 26192//24934 26864//25606 26865//25607 26193//24935 +f 26189//24931 26861//25603 26864//25606 26192//24934 +f 26866//25608 26864//25606 26861//25603 26863//25605 +f 26867//25609 26865//25607 26864//25606 26866//25608 +f 26196//24938 26868//25610 26869//25611 26197//24939 +f 26193//24935 26865//25607 26868//25610 26196//24938 +f 26870//25612 26868//25610 26865//25607 26867//25609 +f 26871//25613 26869//25611 26868//25610 26870//25612 +f 26200//24942 26872//25614 26873//25615 26201//24943 +f 26197//24939 26869//25611 26872//25614 26200//24942 +f 26874//25616 26872//25614 26869//25611 26871//25613 +f 26875//25617 26873//25615 26872//25614 26874//25616 +f 26204//24946 26876//25618 26877//25619 26205//24947 +f 26201//24943 26873//25615 26876//25618 26204//24946 +f 26878//25620 26876//25618 26873//25615 26875//25617 +f 26879//25621 26877//25619 26876//25618 26878//25620 +f 26208//24950 26880//25622 26881//25623 26209//24951 +f 26205//24947 26877//25619 26880//25622 26208//24950 +f 26882//25624 26880//25622 26877//25619 26879//25621 +f 26883//25625 26881//25623 26880//25622 26882//25624 +f 26212//24954 26884//25626 26885//25627 26213//24955 +f 26209//24951 26881//25623 26884//25626 26212//24954 +f 26886//25628 26884//25626 26881//25623 26883//25625 +f 26887//25629 26885//25627 26884//25626 26886//25628 +f 26216//24958 26888//25630 26889//25631 26217//24959 +f 26213//24955 26885//25627 26888//25630 26216//24958 +f 26890//25632 26888//25630 26885//25627 26887//25629 +f 26891//25633 26889//25631 26888//25630 26890//25632 +f 26220//24962 26892//25634 26893//25635 26221//24963 +f 26217//24959 26889//25631 26892//25634 26220//24962 +f 26894//25636 26892//25634 26889//25631 26891//25633 +f 26895//25637 26893//25635 26892//25634 26894//25636 +f 26224//24966 26896//25638 26897//25639 26225//24967 +f 26221//24963 26893//25635 26896//25638 26224//24966 +f 26898//25640 26896//25638 26893//25635 26895//25637 +f 26899//25641 26897//25639 26896//25638 26898//25640 +f 26227//24969 26900//25642 26744//25486 26072//24814 +f 26225//24967 26897//25639 26900//25642 26227//24969 +f 26901//25643 26900//25642 26897//25639 26899//25641 +f 26746//25488 26744//25486 26900//25642 26901//25643 +f 23285//22026 24532//23274 26902//25644 23330//22071 +f 24532//23274 24529//23271 24528//23270 26902//25644 +f 24527//23269 26903//25645 26902//25644 24528//23270 +f 26903//25645 23327//22068 23330//22071 26902//25644 +f 23327//22068 26903//25645 26904//25646 23373//22114 +f 26903//25645 24527//23269 25169//23911 26904//25646 +f 25171//23913 26905//25647 26904//25646 25169//23911 +f 26905//25647 23374//22115 23373//22114 26904//25646 +f 26905//25647 26906//25648 23417//22158 23374//22115 +f 25171//23913 25173//23915 26906//25648 26905//25647 +f 26907//25649 26906//25648 25173//23915 24521//23263 +f 23418//22159 23417//22158 26906//25648 26907//25649 +f 26907//25649 26908//25650 23461//22202 23418//22159 +f 24521//23263 24519//23261 26908//25650 26907//25649 +f 24513//23255 26908//25650 24519//23261 24514//23256 +f 23462//22203 23461//22202 26908//25650 24513//23255 +f 23654//22395 26909//25651 25187//23929 23656//22397 +f 23655//22396 23747//22488 26909//25651 23654//22395 +f 26910//25652 26909//25651 23747//22488 23751//22492 +f 23661//22402 25187//23929 26909//25651 26910//25652 +f 26910//25652 26911//25653 23662//22403 23661//22402 +f 23751//22492 23753//22494 26911//25653 26910//25652 +f 26912//25654 26911//25653 23753//22494 23757//22498 +f 23664//22405 23662//22403 26911//25653 26912//25654 +f 26912//25654 26913//25655 23668//22409 23664//22405 +f 23757//22498 23759//22500 26913//25655 26912//25654 +f 26914//25656 26913//25655 23759//22500 23763//22504 +f 23670//22411 23668//22409 26913//25655 26914//25656 +f 26914//25656 26915//25657 23674//22415 23670//22411 +f 23763//22504 23765//22506 26915//25657 26914//25656 +f 23769//22510 26916//25658 26915//25657 23765//22506 +f 26916//25658 23675//22416 23674//22415 26915//25657 +f 23675//22416 26916//25658 26917//25659 23680//22421 +f 26916//25658 23769//22510 23771//22512 26917//25659 +f 23775//22516 26918//25660 26917//25659 23771//22512 +f 26918//25660 23681//22422 23680//22421 26917//25659 +f 23681//22422 26918//25660 26919//25661 24502//23244 +f 26918//25660 23775//22516 23777//22518 26919//25661 +f 23688//22429 23685//22426 26919//25661 23777//22518 +f 23685//22426 23684//22425 24502//23244 26919//25661 +f 26920//25662 26921//25663 26922//25664 26923//25665 +f 26924//25666 26925//25667 26921//25663 26920//25662 +f 26926//25668 26921//25663 26925//25667 26927//25669 +f 26928//25670 26922//25664 26921//25663 26926//25668 +f 26929//25671 26930//25672 26920//25662 26923//25665 +f 26931//25673 26932//25674 26930//25672 26929//25671 +f 26933//25675 26930//25672 26932//25674 26934//25676 +f 26924//25666 26920//25662 26930//25672 26933//25675 +f 26935//25677 26936//25678 26937//25679 26938//25680 +f 26936//25678 26939//25681 26940//25682 26937//25679 +f 26931//25673 26929//25671 26937//25679 26940//25682 +f 26929//25671 26923//25665 26938//25680 26937//25679 +f 26941//25683 26942//25684 26943//25685 26944//25686 +f 26945//25687 26946//25688 26942//25684 26941//25683 +f 26936//25678 26942//25684 26946//25688 26939//25681 +f 26935//25677 26943//25685 26942//25684 26936//25678 +f 26947//25689 26948//25690 26941//25683 26944//25686 +f 26949//25691 26950//25692 26948//25690 26947//25689 +f 26951//25693 26948//25690 26950//25692 26952//25694 +f 26945//25687 26941//25683 26948//25690 26951//25693 +f 26953//25695 26954//25696 26955//25697 26956//25698 +f 26954//25696 26957//25699 26958//25700 26955//25697 +f 26949//25691 26947//25689 26955//25697 26958//25700 +f 26947//25689 26944//25686 26956//25698 26955//25697 +f 26959//25701 26960//25702 26961//25703 26962//25704 +f 26963//25705 26964//25706 26960//25702 26959//25701 +f 26954//25696 26960//25702 26964//25706 26957//25699 +f 26953//25695 26961//25703 26960//25702 26954//25696 +f 26965//25707 26966//25708 26959//25701 26962//25704 +f 26967//25709 26968//25710 26966//25708 26965//25707 +f 26969//25711 26966//25708 26968//25710 26970//25712 +f 26963//25705 26959//25701 26966//25708 26969//25711 +f 26971//25713 26972//25714 26973//25715 26974//25716 +f 26972//25714 26975//25717 26976//25718 26973//25715 +f 26967//25709 26965//25707 26973//25715 26976//25718 +f 26965//25707 26962//25704 26974//25716 26973//25715 +f 26977//25719 26978//25720 26979//25721 26980//25722 +f 26981//25723 26982//25724 26978//25720 26977//25719 +f 26972//25714 26978//25720 26982//25724 26975//25717 +f 26971//25713 26979//25721 26978//25720 26972//25714 +f 26983//25725 26984//25726 26977//25719 26980//25722 +f 26985//25727 26986//25728 26984//25726 26983//25725 +f 26987//25729 26984//25726 26986//25728 26988//25730 +f 26981//25723 26977//25719 26984//25726 26987//25729 +f 26989//25731 26990//25732 26991//25733 26992//25734 +f 26990//25732 26993//25735 26994//25736 26991//25733 +f 26985//25727 26983//25725 26991//25733 26994//25736 +f 26983//25725 26980//25722 26992//25734 26991//25733 +f 26995//25737 26996//25738 26997//25739 26998//25740 +f 26999//25741 27000//25742 26996//25738 26995//25737 +f 26990//25732 26996//25738 27000//25742 26993//25735 +f 26989//25731 26997//25739 26996//25738 26990//25732 +f 27001//25743 27002//25744 26995//25737 26998//25740 +f 27003//25745 27004//25746 27002//25744 27001//25743 +f 27005//25747 27002//25744 27004//25746 27006//25748 +f 26999//25741 26995//25737 27002//25744 27005//25747 +f 27007//25749 27008//25750 27009//25751 27010//25752 +f 27008//25750 27011//25753 27012//25754 27009//25751 +f 27003//25745 27001//25743 27009//25751 27012//25754 +f 27001//25743 26998//25740 27010//25752 27009//25751 +f 26997//25739 27013//25755 27014//25756 26998//25740 +f 26989//25731 27015//25757 27013//25755 26997//25739 +f 27016//25758 27013//25755 27015//25757 27017//25759 +f 27018//25760 27014//25756 27013//25755 27016//25758 +f 27019//25761 27020//25762 27021//25763 27022//25764 +f 27023//25765 27024//25766 27020//25762 27019//25761 +f 27025//25767 27026//25768 27020//25762 27024//25766 +f 27026//25768 27027//25769 27021//25763 27020//25762 +f 27026//25768 27028//25770 27029//25771 27027//25769 +f 27025//25767 27030//25772 27028//25770 27026//25768 +f 27031//25773 27028//25770 27030//25772 27032//25774 +f 27033//25775 27029//25771 27028//25770 27031//25773 +f 27034//25776 27035//25777 27036//25778 27037//25779 +f 27035//25777 27038//25780 27039//25781 27036//25778 +f 27040//25782 27041//25783 27036//25778 27039//25781 +f 27041//25783 27042//25784 27037//25779 27036//25778 +f 27035//25777 27043//25785 27044//25786 27038//25780 +f 27034//25776 27045//25787 27043//25785 27035//25777 +f 27046//25788 27043//25785 27045//25787 27047//25789 +f 27048//25790 27044//25786 27043//25785 27046//25788 +f 27048//25790 27046//25788 27049//25791 27050//25792 +f 27046//25788 27047//25789 27051//25793 27049//25791 +f 27052//25794 27053//25795 27049//25791 27051//25793 +f 27053//25795 27054//25796 27050//25792 27049//25791 +f 27055//25797 27056//25798 27041//25783 27040//25782 +f 27055//25797 26971//25713 26974//25716 27056//25798 +f 27057//25799 27056//25798 26974//25716 26962//25704 +f 27057//25799 27042//25784 27041//25783 27056//25798 +f 27058//25800 27059//25801 27060//25802 27061//25803 +f 26953//25695 26956//25698 27060//25802 27059//25801 +f 27062//25804 27060//25802 26956//25698 26944//25686 +f 27063//25805 27061//25803 27060//25802 27062//25804 +f 26961//25703 27064//25806 27057//25799 26962//25704 +f 26961//25703 26953//25695 27059//25801 27064//25806 +f 27065//25807 27064//25806 27059//25801 27058//25800 +f 27042//25784 27057//25799 27064//25806 27065//25807 +f 27065//25807 27066//25808 27037//25779 27042//25784 +f 27058//25800 27067//25809 27066//25808 27065//25807 +f 27068//25810 27066//25808 27067//25809 27022//25764 +f 27034//25776 27037//25779 27066//25808 27068//25810 +f 27068//25810 27069//25811 27045//25787 27034//25776 +f 27022//25764 27021//25763 27069//25811 27068//25810 +f 27027//25769 27070//25812 27069//25811 27021//25763 +f 27047//25789 27045//25787 27069//25811 27070//25812 +f 27070//25812 27071//25813 27051//25793 27047//25789 +f 27027//25769 27029//25771 27071//25813 27070//25812 +f 27072//25814 27071//25813 27029//25771 27033//25775 +f 27052//25794 27051//25793 27071//25813 27072//25814 +f 26944//25686 26943//25685 27073//25815 27062//25804 +f 26943//25685 26935//25677 27074//25816 27073//25815 +f 27023//25765 27075//25817 27073//25815 27074//25816 +f 27075//25817 27063//25805 27062//25804 27073//25815 +f 27017//25759 27076//25818 27077//25819 27016//25758 +f 27076//25818 27038//25780 27044//25786 27077//25819 +f 27078//25820 27077//25819 27044//25786 27048//25790 +f 27018//25760 27016//25758 27077//25819 27078//25820 +f 27018//25760 27078//25820 27079//25821 27080//25822 +f 27078//25820 27048//25790 27050//25792 27079//25821 +f 27054//25796 27081//25823 27079//25821 27050//25792 +f 27081//25823 27082//25824 27080//25822 27079//25821 +f 27019//25761 27083//25825 27075//25817 27023//25765 +f 27022//25764 27067//25809 27083//25825 27019//25761 +f 27061//25803 27083//25825 27067//25809 27058//25800 +f 27063//25805 27075//25817 27083//25825 27061//25803 +f 27084//25826 27085//25827 27086//25828 27087//25829 +f 27085//25827 27040//25782 27039//25781 27086//25828 +f 27038//25780 27076//25818 27086//25828 27039//25781 +f 27076//25818 27017//25759 27087//25829 27086//25828 +f 26979//25721 27088//25830 27089//25831 26980//25722 +f 26979//25721 26971//25713 27055//25797 27088//25830 +f 27040//25782 27085//25827 27088//25830 27055//25797 +f 27084//25826 27089//25831 27088//25830 27085//25827 +f 27074//25816 27090//25832 27024//25766 27023//25765 +f 26935//25677 26938//25680 27090//25832 27074//25816 +f 27091//25833 27090//25832 26938//25680 26923//25665 +f 27091//25833 27025//25767 27024//25766 27090//25832 +f 27091//25833 27092//25834 27030//25772 27025//25767 +f 27091//25833 26923//25665 26922//25664 27092//25834 +f 27093//25835 27092//25834 26922//25664 26928//25670 +f 27032//25774 27030//25772 27092//25834 27093//25835 +f 27082//25824 27094//25836 27095//25837 27080//25822 +f 27094//25836 27007//25749 27010//25752 27095//25837 +f 27014//25756 27095//25837 27010//25752 26998//25740 +f 27014//25756 27018//25760 27080//25822 27095//25837 +f 27017//25759 27015//25757 27096//25838 27087//25829 +f 27015//25757 26989//25731 26992//25734 27096//25838 +f 26980//25722 27089//25831 27096//25838 26992//25734 +f 27089//25831 27084//25826 27087//25829 27096//25838 +f 27097//25839 27098//25840 27099//25841 27100//25842 +f 26928//25670 26926//25668 27098//25840 27097//25839 +f 27101//25843 27098//25840 26926//25668 26927//25669 +f 27102//25844 27099//25841 27098//25840 27101//25843 +f 27099//25841 27103//25845 27104//25846 27100//25842 +f 27102//25844 27105//25847 27103//25845 27099//25841 +f 27106//25848 27103//25845 27105//25847 27107//25849 +f 27108//25850 27104//25846 27103//25845 27106//25848 +f 27109//25851 27110//25852 27111//25853 27112//25854 +f 27110//25852 27100//25842 27104//25846 27111//25853 +f 27108//25850 27113//25855 27111//25853 27104//25846 +f 27113//25855 27114//25856 27112//25854 27111//25853 +f 27115//25857 27116//25858 27117//25859 27118//25860 +f 27109//25851 27112//25854 27116//25858 27115//25857 +f 27119//25861 27116//25858 27112//25854 27114//25856 +f 27120//25862 27117//25859 27116//25858 27119//25861 +f 27117//25859 27121//25863 27122//25864 27118//25860 +f 27120//25862 27123//25865 27121//25863 27117//25859 +f 27124//25866 27121//25863 27123//25865 27125//25867 +f 27126//25868 27122//25864 27121//25863 27124//25866 +f 27127//25869 27128//25870 27129//25871 27130//25872 +f 27128//25870 27118//25860 27122//25864 27129//25871 +f 27126//25868 27131//25873 27129//25871 27122//25864 +f 27131//25873 27132//25874 27130//25872 27129//25871 +f 27133//25875 27134//25876 27135//25877 27136//25878 +f 27127//25869 27130//25872 27134//25876 27133//25875 +f 27137//25879 27134//25876 27130//25872 27132//25874 +f 27138//25880 27135//25877 27134//25876 27137//25879 +f 27135//25877 27139//25881 27140//25882 27136//25878 +f 27138//25880 27141//25883 27139//25881 27135//25877 +f 27142//25884 27139//25881 27141//25883 27143//25885 +f 27144//25886 27140//25882 27139//25881 27142//25884 +f 27145//25887 27146//25888 27147//25889 27148//25890 +f 27146//25888 27136//25878 27140//25882 27147//25889 +f 27144//25886 27149//25891 27147//25889 27140//25882 +f 27149//25891 27150//25892 27148//25890 27147//25889 +f 27151//25893 27152//25894 27153//25895 27154//25896 +f 27145//25887 27148//25890 27152//25894 27151//25893 +f 27155//25897 27152//25894 27148//25890 27150//25892 +f 27156//25898 27153//25895 27152//25894 27155//25897 +f 27153//25895 27157//25899 27158//25900 27154//25896 +f 27156//25898 27159//25901 27157//25899 27153//25895 +f 27160//25902 27157//25899 27159//25901 27161//25903 +f 27162//25904 27158//25900 27157//25899 27160//25902 +f 27163//25905 27164//25906 27165//25907 27166//25908 +f 27164//25906 27154//25896 27158//25900 27165//25907 +f 27162//25904 27167//25909 27165//25907 27158//25900 +f 27167//25909 27168//25910 27166//25908 27165//25907 +f 27169//25911 27170//25912 27171//25913 27172//25914 +f 27163//25905 27166//25908 27170//25912 27169//25911 +f 27173//25915 27170//25912 27166//25908 27168//25910 +f 27174//25916 27171//25913 27170//25912 27173//25915 +f 27171//25913 27175//25917 27176//25918 27172//25914 +f 27174//25916 27177//25919 27175//25917 27171//25913 +f 27178//25920 27175//25917 27177//25919 27179//25921 +f 27180//25922 27176//25918 27175//25917 27178//25920 +f 27007//25749 27181//25923 27182//25924 27008//25750 +f 27181//25923 27172//25914 27176//25918 27182//25924 +f 27180//25922 27183//25925 27182//25924 27176//25918 +f 27183//25925 27011//25753 27008//25750 27182//25924 +f 27184//25926 27185//25927 27169//25911 27172//25914 +f 27186//25928 27187//25929 27185//25927 27184//25926 +f 27188//25930 27185//25927 27187//25929 27189//25931 +f 27163//25905 27169//25911 27185//25927 27188//25930 +f 27190//25932 27191//25933 27192//25934 27193//25935 +f 27190//25932 27194//25936 27195//25937 27191//25933 +f 27196//25938 27197//25939 27191//25933 27195//25937 +f 27198//25940 27192//25934 27191//25933 27197//25939 +f 27199//25941 27200//25942 27195//25937 27194//25936 +f 27033//25775 27031//25773 27200//25942 27199//25941 +f 27201//25943 27200//25942 27031//25773 27032//25774 +f 27196//25938 27195//25937 27200//25942 27201//25943 +f 27202//25944 27203//25945 27204//25946 27205//25947 +f 27203//25945 27206//25948 27207//25949 27204//25946 +f 27208//25950 27209//25951 27204//25946 27207//25949 +f 27209//25951 27210//25952 27205//25947 27204//25946 +f 27211//25953 27212//25954 27205//25947 27210//25952 +f 27213//25955 27214//25956 27212//25954 27211//25953 +f 27215//25957 27216//25958 27212//25954 27214//25956 +f 27216//25958 27202//25944 27205//25947 27212//25954 +f 27213//25955 27217//25959 27218//25960 27214//25956 +f 27217//25959 27054//25796 27053//25795 27218//25960 +f 27219//25961 27218//25960 27053//25795 27052//25794 +f 27219//25961 27215//25957 27214//25956 27218//25960 +f 27207//25949 27220//25962 27221//25963 27208//25950 +f 27207//25949 27206//25948 27222//25964 27220//25962 +f 27146//25888 27220//25962 27222//25964 27136//25878 +f 27146//25888 27145//25887 27221//25963 27220//25962 +f 27223//25965 27224//25966 27225//25967 27226//25968 +f 27227//25969 27228//25970 27225//25967 27224//25966 +f 27128//25870 27225//25967 27228//25970 27118//25860 +f 27127//25869 27226//25968 27225//25967 27128//25870 +f 27222//25964 27229//25971 27133//25875 27136//25878 +f 27206//25948 27230//25972 27229//25971 27222//25964 +f 27226//25968 27229//25971 27230//25972 27223//25965 +f 27226//25968 27127//25869 27133//25875 27229//25971 +f 27203//25945 27231//25973 27230//25972 27206//25948 +f 27202//25944 27232//25974 27231//25973 27203//25945 +f 27233//25975 27231//25973 27232//25974 27193//25935 +f 27223//25965 27230//25972 27231//25973 27233//25975 +f 27216//25958 27234//25976 27232//25974 27202//25944 +f 27215//25957 27235//25977 27234//25976 27216//25958 +f 27190//25932 27234//25976 27235//25977 27194//25936 +f 27193//25935 27232//25974 27234//25976 27190//25932 +f 27219//25961 27236//25978 27235//25977 27215//25957 +f 27052//25794 27072//25814 27236//25978 27219//25961 +f 27199//25941 27236//25978 27072//25814 27033//25775 +f 27194//25936 27235//25977 27236//25978 27199//25941 +f 27118//25860 27228//25970 27237//25979 27115//25857 +f 27228//25970 27227//25969 27238//25980 27237//25979 +f 27198//25940 27239//25981 27237//25979 27238//25980 +f 27239//25981 27109//25851 27115//25857 27237//25979 +f 27189//25931 27187//25929 27240//25982 27241//25983 +f 27186//25928 27242//25984 27240//25982 27187//25929 +f 27211//25953 27240//25982 27242//25984 27213//25955 +f 27211//25953 27210//25952 27241//25983 27240//25982 +f 27186//25928 27243//25985 27244//25986 27242//25984 +f 27243//25985 27082//25824 27081//25823 27244//25986 +f 27054//25796 27217//25959 27244//25986 27081//25823 +f 27217//25959 27213//25955 27242//25984 27244//25986 +f 27238//25980 27245//25987 27192//25934 27198//25940 +f 27227//25969 27224//25966 27245//25987 27238//25980 +f 27233//25975 27245//25987 27224//25966 27223//25965 +f 27193//25935 27192//25934 27245//25987 27233//25975 +f 27246//25988 27247//25989 27248//25990 27249//25991 +f 27247//25989 27189//25931 27241//25983 27248//25990 +f 27210//25952 27209//25951 27248//25990 27241//25983 +f 27209//25951 27208//25950 27249//25991 27248//25990 +f 27250//25992 27251//25993 27151//25893 27154//25896 +f 27246//25988 27249//25991 27251//25993 27250//25992 +f 27208//25950 27221//25963 27251//25993 27249//25991 +f 27221//25963 27145//25887 27151//25893 27251//25993 +f 27197//25939 27252//25994 27239//25981 27198//25940 +f 27197//25939 27196//25938 27253//25995 27252//25994 +f 27110//25852 27252//25994 27253//25995 27100//25842 +f 27109//25851 27239//25981 27252//25994 27110//25852 +f 27201//25943 27254//25996 27253//25995 27196//25938 +f 27032//25774 27093//25835 27254//25996 27201//25943 +f 27097//25839 27254//25996 27093//25835 26928//25670 +f 27097//25839 27100//25842 27253//25995 27254//25996 +f 27082//25824 27243//25985 27255//25997 27094//25836 +f 27243//25985 27186//25928 27184//25926 27255//25997 +f 27181//25923 27255//25997 27184//25926 27172//25914 +f 27181//25923 27007//25749 27094//25836 27255//25997 +f 27189//25931 27247//25989 27256//25998 27188//25930 +f 27247//25989 27246//25988 27250//25992 27256//25998 +f 27154//25896 27164//25906 27256//25998 27250//25992 +f 27164//25906 27163//25905 27188//25930 27256//25998 +f 25195//23937 27257//25999 27258//26000 25194//23936 +f 27107//25849 27105//25847 27258//26000 27257//25999 +f 27102//25844 27259//26001 27258//26000 27105//25847 +f 27259//26001 25196//23938 25194//23936 27258//26000 +f 25202//23944 27260//26002 27261//26003 25201//23943 +f 27260//26002 27108//25850 27106//25848 27261//26003 +f 27107//25849 27257//25999 27261//26003 27106//25848 +f 27257//25999 25195//23937 25201//23943 27261//26003 +f 25208//23950 27262//26004 27263//26005 25207//23949 +f 27114//25856 27113//25855 27263//26005 27262//26004 +f 27260//26002 27263//26005 27113//25855 27108//25850 +f 27260//26002 25202//23944 25207//23949 27263//26005 +f 25214//23956 27264//26006 27265//26007 25213//23955 +f 27264//26006 27120//25862 27119//25861 27265//26007 +f 27114//25856 27262//26004 27265//26007 27119//25861 +f 27262//26004 25208//23950 25213//23955 27265//26007 +f 27266//26008 27267//26009 25220//23962 25219//23961 +f 27125//25867 27123//25865 27267//26009 27266//26008 +f 27120//25862 27264//26006 27267//26009 27123//25865 +f 25214//23956 25220//23962 27267//26009 27264//26006 +f 25226//23968 27268//26010 27269//26011 25225//23967 +f 27268//26010 27126//25868 27124//25866 27269//26011 +f 27125//25867 27266//26008 27269//26011 27124//25866 +f 27266//26008 25219//23961 25225//23967 27269//26011 +f 25232//23974 27270//26012 27271//26013 25231//23973 +f 27132//25874 27131//25873 27271//26013 27270//26012 +f 27268//26010 27271//26013 27131//25873 27126//25868 +f 27268//26010 25226//23968 25231//23973 27271//26013 +f 25238//23980 27272//26014 27273//26015 25237//23979 +f 27272//26014 27138//25880 27137//25879 27273//26015 +f 27132//25874 27270//26012 27273//26015 27137//25879 +f 27270//26012 25232//23974 25237//23979 27273//26015 +f 27274//26016 27275//26017 25244//23986 25243//23985 +f 27143//25885 27141//25883 27275//26017 27274//26016 +f 27138//25880 27272//26014 27275//26017 27141//25883 +f 25238//23980 25244//23986 27275//26017 27272//26014 +f 25250//23992 27276//26018 27277//26019 25249//23991 +f 27276//26018 27144//25886 27142//25884 27277//26019 +f 27143//25885 27274//26016 27277//26019 27142//25884 +f 27274//26016 25243//23985 25249//23991 27277//26019 +f 27278//26020 27279//26021 25255//23997 25256//23998 +f 27150//25892 27149//25891 27279//26021 27278//26020 +f 27276//26018 27279//26021 27149//25891 27144//25886 +f 25250//23992 25255//23997 27279//26021 27276//26018 +f 25261//24003 27280//26022 27281//26023 25262//24004 +f 27280//26022 27156//25898 27155//25897 27281//26023 +f 27150//25892 27278//26020 27281//26023 27155//25897 +f 27278//26020 25256//23998 25262//24004 27281//26023 +f 27282//26024 27283//26025 25268//24010 25267//24009 +f 27161//25903 27159//25901 27283//26025 27282//26024 +f 27156//25898 27280//26022 27283//26025 27159//25901 +f 25261//24003 25268//24010 27283//26025 27280//26022 +f 25274//24016 27284//26026 27285//26027 25273//24015 +f 27162//25904 27160//25902 27285//26027 27284//26026 +f 27161//25903 27282//26024 27285//26027 27160//25902 +f 27282//26024 25267//24009 25273//24015 27285//26027 +f 27286//26028 27287//26029 25279//24021 25280//24022 +f 27168//25910 27167//25909 27287//26029 27286//26028 +f 27284//26026 27287//26029 27167//25909 27162//25904 +f 25274//24016 25279//24021 27287//26029 27284//26026 +f 25285//24027 27288//26030 27289//26031 25286//24028 +f 27288//26030 27174//25916 27173//25915 27289//26031 +f 27168//25910 27286//26028 27289//26031 27173//25915 +f 27286//26028 25280//24022 25286//24028 27289//26031 +f 27290//26032 27291//26033 25292//24034 25291//24033 +f 27179//25921 27177//25919 27291//26033 27290//26032 +f 27174//25916 27288//26030 27291//26033 27177//25919 +f 25285//24027 25292//24034 27291//26033 27288//26030 +f 25298//24040 27292//26034 27293//26035 25297//24039 +f 27180//25922 27178//25920 27293//26035 27292//26034 +f 27179//25921 27290//26032 27293//26035 27178//25920 +f 27290//26032 25291//24033 25297//24039 27293//26035 +f 27294//26036 27295//26037 25303//24045 25304//24046 +f 27011//25753 27183//25925 27295//26037 27294//26036 +f 27292//26034 27295//26037 27183//25925 27180//25922 +f 25298//24040 25303//24045 27295//26037 27292//26034 +f 25309//24051 27296//26038 27297//26039 25310//24052 +f 27296//26038 27003//25745 27012//25754 27297//26039 +f 27011//25753 27294//26036 27297//26039 27012//25754 +f 27294//26036 25304//24046 25310//24052 27297//26039 +f 27298//26040 27299//26041 25316//24058 25315//24057 +f 27006//25748 27004//25746 27299//26041 27298//26040 +f 27003//25745 27296//26038 27299//26041 27004//25746 +f 25309//24051 25316//24058 27299//26041 27296//26038 +f 25322//24064 27300//26042 27301//26043 25321//24063 +f 27300//26042 26999//25741 27005//25747 27301//26043 +f 27006//25748 27298//26040 27301//26043 27005//25747 +f 27298//26040 25315//24057 25321//24063 27301//26043 +f 27302//26044 27303//26045 25327//24069 25328//24070 +f 26993//25735 27000//25742 27303//26045 27302//26044 +f 27300//26042 27303//26045 27000//25742 26999//25741 +f 25322//24064 25327//24069 27303//26045 27300//26042 +f 25333//24075 27304//26046 27305//26047 25334//24076 +f 27304//26046 26985//25727 26994//25736 27305//26047 +f 26993//25735 27302//26044 27305//26047 26994//25736 +f 27302//26044 25328//24070 25334//24076 27305//26047 +f 27306//26048 27307//26049 25340//24082 25339//24081 +f 26988//25730 26986//25728 27307//26049 27306//26048 +f 26985//25727 27304//26046 27307//26049 26986//25728 +f 25333//24075 25340//24082 27307//26049 27304//26046 +f 25346//24088 27308//26050 27309//26051 25345//24087 +f 27308//26050 26981//25723 26987//25729 27309//26051 +f 26988//25730 27306//26048 27309//26051 26987//25729 +f 27306//26048 25339//24081 25345//24087 27309//26051 +f 25352//24094 27310//26052 27311//26053 25351//24093 +f 26975//25717 26982//25724 27311//26053 27310//26052 +f 27308//26050 27311//26053 26982//25724 26981//25723 +f 27308//26050 25346//24088 25351//24093 27311//26053 +f 25358//24100 27312//26054 27313//26055 25357//24099 +f 27312//26054 26967//25709 26976//25718 27313//26055 +f 26975//25717 27310//26052 27313//26055 26976//25718 +f 27310//26052 25352//24094 25357//24099 27313//26055 +f 27314//26056 27315//26057 25364//24106 25363//24105 +f 26970//25712 26968//25710 27315//26057 27314//26056 +f 26967//25709 27312//26054 27315//26057 26968//25710 +f 25358//24100 25364//24106 27315//26057 27312//26054 +f 25370//24112 27316//26058 27317//26059 25369//24111 +f 27316//26058 26963//25705 26969//25711 27317//26059 +f 26970//25712 27314//26056 27317//26059 26969//25711 +f 27314//26056 25363//24105 25369//24111 27317//26059 +f 25376//24118 27318//26060 27319//26061 25375//24117 +f 26957//25699 26964//25706 27319//26061 27318//26060 +f 27316//26058 27319//26061 26964//25706 26963//25705 +f 27316//26058 25370//24112 25375//24117 27319//26061 +f 25382//24124 27320//26062 27321//26063 25381//24123 +f 27320//26062 26949//25691 26958//25700 27321//26063 +f 26957//25699 27318//26060 27321//26063 26958//25700 +f 27318//26060 25376//24118 25381//24123 27321//26063 +f 25388//24130 27322//26064 27323//26065 25387//24129 +f 26952//25694 26950//25692 27323//26065 27322//26064 +f 26949//25691 27320//26062 27323//26065 26950//25692 +f 27320//26062 25382//24124 25387//24129 27323//26065 +f 25394//24136 27324//26066 27325//26067 25393//24135 +f 27324//26066 26945//25687 26951//25693 27325//26067 +f 26952//25694 27322//26064 27325//26067 26951//25693 +f 27322//26064 25388//24130 25393//24135 27325//26067 +f 25400//24142 27326//26068 27327//26069 25399//24141 +f 26939//25681 26946//25688 27327//26069 27326//26068 +f 27324//26066 27327//26069 26946//25688 26945//25687 +f 27324//26066 25394//24136 25399//24141 27327//26069 +f 25406//24148 27328//26070 27329//26071 25405//24147 +f 27328//26070 26931//25673 26940//25682 27329//26071 +f 26939//25681 27326//26068 27329//26071 26940//25682 +f 27326//26068 25400//24142 25405//24147 27329//26071 +f 25412//24154 27330//26072 27331//26073 25411//24153 +f 26934//25676 26932//25674 27331//26073 27330//26072 +f 26931//25673 27328//26070 27331//26073 26932//25674 +f 27328//26070 25406//24148 25411//24153 27331//26073 +f 25418//24160 27332//26074 27333//26075 25417//24159 +f 27332//26074 26924//25666 26933//25675 27333//26075 +f 26934//25676 27330//26072 27333//26075 26933//25675 +f 27330//26072 25412//24154 25417//24159 27333//26075 +f 25424//24166 27334//26076 27335//26077 25423//24165 +f 26927//25669 26925//25667 27335//26077 27334//26076 +f 27332//26074 27335//26077 26925//25667 26924//25666 +f 27332//26074 25418//24160 25423//24165 27335//26077 +f 25196//23938 27259//26001 27336//26078 25427//24169 +f 27259//26001 27102//25844 27101//25843 27336//26078 +f 26927//25669 27334//26076 27336//26078 27101//25843 +f 27334//26076 25424//24166 25427//24169 27336//26078 +f 22796//21541 22799//23044 27337//26079 27338//26080 +f 22800//21538 22796//21541 27338//26080 27339//26081 +f 27340//26082 27341//26083 27339//26081 27338//26080 +f 27342//26084 27340//26082 27338//26080 27337//26079 +f 27340//26082 27342//26084 27343//26085 27344//26086 +f 27341//26083 27340//26082 27344//26086 27345//26087 +f 27346//26088 27347//26089 27345//26087 27344//26086 +f 27348//26090 27346//26088 27344//26086 27343//26085 +f 27346//26088 27348//26090 27349//26091 27350//26092 +f 27347//26089 27346//26088 27350//26092 27351//26093 +f 27352//26094 27353//26095 27351//26093 27350//26092 +f 27354//26096 27352//26094 27350//26092 27349//26091 +f 27352//26094 27354//26096 27355//26097 27356//26098 +f 27353//26095 27352//26094 27356//26098 27357//26099 +f 27358//26100 27359//26101 27357//26099 27356//26098 +f 27360//26102 27358//26100 27356//26098 27355//26097 +f 27358//26100 27360//26102 27361//26103 27362//26104 +f 27359//26101 27358//26100 27362//26104 27363//26105 +f 27364//26106 27365//26107 27363//26105 27362//26104 +f 27366//26108 27364//26106 27362//26104 27361//26103 +f 27364//26106 27366//26108 27367//26109 27368//26110 +f 27365//26107 27364//26106 27368//26110 27369//26111 +f 27370//26112 27371//26113 27369//26111 27368//26110 +f 27372//26114 27370//26112 27368//26110 27367//26109 +f 27370//26112 27372//26114 27373//26115 27374//26116 +f 27371//26113 27370//26112 27374//26116 27375//26117 +f 27376//26118 27377//26119 27375//26117 27374//26116 +f 27378//26120 27376//26118 27374//26116 27373//26115 +f 27376//26118 27378//26120 27379//26121 27380//26122 +f 27377//26119 27376//26118 27380//26122 27381//26123 +f 27382//26124 27383//26125 27381//26123 27380//26122 +f 27384//26126 27382//26124 27380//26122 27379//26121 +f 27382//26124 27384//26126 27385//26127 27386//26128 +f 27383//26125 27382//26124 27386//26128 27387//26129 +f 27388//26130 27389//26131 27387//26129 27386//26128 +f 27390//26132 27388//26130 27386//26128 27385//26127 +f 27388//26130 27390//26132 27391//26133 27392//26134 +f 27389//26131 27388//26130 27392//26134 27393//26135 +f 27394//26136 27395//26137 27393//26135 27392//26134 +f 27396//26138 27394//26136 27392//26134 27391//26133 +f 27394//26136 27396//26138 27397//26139 27398//26140 +f 27395//26137 27394//26136 27398//26140 27399//26141 +f 27400//26142 27401//26143 27399//26141 27398//26140 +f 27402//26144 27400//26142 27398//26140 27397//26139 +f 27400//26142 27402//26144 27403//26145 27404//26146 +f 27401//26143 27400//26142 27404//26146 27405//26147 +f 27406//26148 27407//26149 27405//26147 27404//26146 +f 27408//26150 27406//26148 27404//26146 27403//26145 +f 27406//26148 27408//26150 27409//26151 27410//26152 +f 27407//26149 27406//26148 27410//26152 27411//26153 +f 27412//26154 27413//26155 27411//26153 27410//26152 +f 27414//26156 27412//26154 27410//26152 27409//26151 +f 27412//26154 27414//26156 27415//26157 27416//26158 +f 27413//26155 27412//26154 27416//26158 27417//26159 +f 27418//26160 27419//26161 27417//26159 27416//26158 +f 27420//26162 27418//26160 27416//26158 27415//26157 +f 27418//26160 27420//26162 27421//26163 27422//26164 +f 27419//26161 27418//26160 27422//26164 27423//26165 +f 27424//26166 27425//26167 27423//26165 27422//26164 +f 27426//26168 27424//26166 27422//26164 27421//26163 +f 27424//26166 27426//26168 27427//26169 27428//26170 +f 27425//26167 27424//26166 27428//26170 27429//26171 +f 27430//26172 27431//26173 27429//26171 27428//26170 +f 27432//26174 27430//26172 27428//26170 27427//26169 +f 27430//26172 27432//26174 27433//26175 27434//26176 +f 27431//26173 27430//26172 27434//26176 27435//26177 +f 27436//26178 27437//26179 27435//26177 27434//26176 +f 27438//26180 27436//26178 27434//26176 27433//26175 +f 27436//26178 27438//26180 27439//26181 27440//26182 +f 27437//26179 27436//26178 27440//26182 27441//26183 +f 27442//26184 27443//26185 27441//26183 27440//26182 +f 27444//26186 27442//26184 27440//26182 27439//26181 +f 27442//26184 27444//26186 27445//26187 27446//26188 +f 27443//26185 27442//26184 27446//26188 27447//26189 +f 27448//26190 27449//26191 27447//26189 27446//26188 +f 27450//26192 27448//26190 27446//26188 27445//26187 +f 27448//26190 27450//26192 27451//26193 27452//26194 +f 27449//26191 27448//26190 27452//26194 27453//26195 +f 22916//21657 22917//21658 27453//26195 27452//26194 +f 22918//21659 22916//21657 27452//26194 27451//26193 +f 22919//21660 22922//21663 27454//26196 27455//26197 +f 22923//21664 22919//21660 27455//26197 27456//26198 +f 27457//26199 27458//26200 27456//26198 27455//26197 +f 27459//26201 27457//26199 27455//26197 27454//26196 +f 27457//26199 27459//26201 27460//26202 27461//26203 +f 27458//26200 27457//26199 27461//26203 27462//26204 +f 27463//26205 27464//26206 27462//26204 27461//26203 +f 27465//26207 27463//26205 27461//26203 27460//26202 +f 27463//26205 27465//26207 27466//26208 27467//26209 +f 27464//26206 27463//26205 27467//26209 27468//26210 +f 27469//26211 27470//26212 27468//26210 27467//26209 +f 27471//26213 27469//26211 27467//26209 27466//26208 +f 27469//26211 27471//26213 27472//26214 27473//26215 +f 27470//26212 27469//26211 27473//26215 27474//26216 +f 27475//26217 27476//26218 27474//26216 27473//26215 +f 27477//26219 27475//26217 27473//26215 27472//26214 +f 27475//26217 27477//26219 27478//26220 27479//26221 +f 27476//26218 27475//26217 27479//26221 27480//26222 +f 27481//26223 27482//26224 27480//26222 27479//26221 +f 27483//26225 27481//26223 27479//26221 27478//26220 +f 27481//26223 27483//26225 27484//26226 27485//26227 +f 27482//26224 27481//26223 27485//26227 27486//26228 +f 27487//26229 27488//26230 27486//26228 27485//26227 +f 27489//26231 27487//26229 27485//26227 27484//26226 +f 27487//26229 27489//26231 27490//26232 27491//26233 +f 27488//26230 27487//26229 27491//26233 27492//26234 +f 27493//26235 27494//26236 27492//26234 27491//26233 +f 27495//26237 27493//26235 27491//26233 27490//26232 +f 27493//26235 27495//26237 27496//26238 27497//26239 +f 27494//26236 27493//26235 27497//26239 27498//26240 +f 27499//26241 27500//26242 27498//26240 27497//26239 +f 27501//26243 27499//26241 27497//26239 27496//26238 +f 27499//26241 27501//26243 27502//26244 27503//26245 +f 27500//26242 27499//26241 27503//26245 27504//26246 +f 27505//26247 27506//26248 27504//26246 27503//26245 +f 27507//26249 27505//26247 27503//26245 27502//26244 +f 27505//26247 27507//26249 27508//26250 27509//26251 +f 27506//26248 27505//26247 27509//26251 27510//26252 +f 27511//26253 27512//26254 27510//26252 27509//26251 +f 27513//26255 27511//26253 27509//26251 27508//26250 +f 27511//26253 27513//26255 27514//26256 27515//26257 +f 27512//26254 27511//26253 27515//26257 27516//26258 +f 27517//26259 27518//26260 27516//26258 27515//26257 +f 27519//26261 27517//26259 27515//26257 27514//26256 +f 27517//26259 27519//26261 27520//26262 27521//26263 +f 27518//26260 27517//26259 27521//26263 27522//26264 +f 27523//26265 27524//26266 27522//26264 27521//26263 +f 27525//26267 27523//26265 27521//26263 27520//26262 +f 27523//26265 27525//26267 27526//26268 27527//26269 +f 27524//26266 27523//26265 27527//26269 27528//26270 +f 27529//26271 27530//26272 27528//26270 27527//26269 +f 27531//26273 27529//26271 27527//26269 27526//26268 +f 27529//26271 27531//26273 27532//26274 27533//26275 +f 27530//26272 27529//26271 27533//26275 27534//26276 +f 27535//26277 27536//26278 27534//26276 27533//26275 +f 27537//26279 27535//26277 27533//26275 27532//26274 +f 27535//26277 27537//26279 27538//26280 27539//26281 +f 27536//26278 27535//26277 27539//26281 27540//26282 +f 27541//26283 27542//26284 27540//26282 27539//26281 +f 27543//26285 27541//26283 27539//26281 27538//26280 +f 27541//26283 27543//26285 27544//26286 27545//26287 +f 27542//26284 27541//26283 27545//26287 27546//26288 +f 27547//26289 27548//26290 27546//26288 27545//26287 +f 27549//26291 27547//26289 27545//26287 27544//26286 +f 27547//26289 27549//26291 27550//26292 27551//26293 +f 27548//26290 27547//26289 27551//26293 27552//26294 +f 27553//26295 27554//26296 27552//26294 27551//26293 +f 27555//26297 27553//26295 27551//26293 27550//26292 +f 27553//26295 27555//26297 27556//26298 27557//26299 +f 27554//26296 27553//26295 27557//26299 27558//26300 +f 27559//26301 27560//26302 27558//26300 27557//26299 +f 27561//26303 27559//26301 27557//26299 27556//26298 +f 27559//26301 27561//26303 27562//26304 27563//26305 +f 27560//26302 27559//26301 27563//26305 27564//26306 +f 27565//26307 27566//26308 27564//26306 27563//26305 +f 27567//26309 27565//26307 27563//26305 27562//26304 +f 27565//26307 27567//26309 27568//26310 27569//26311 +f 27566//26308 27565//26307 27569//26311 27570//26312 +f 23039//21780 23040//21781 27570//26312 27569//26311 +f 23041//21782 23039//21780 27569//26311 27568//26310 +f 23042//21783 23045//21786 27571//26313 27572//26314 +f 23046//21787 23042//21783 27572//26314 27573//26315 +f 27574//26316 27575//26317 27573//26315 27572//26314 +f 27576//26318 27574//26316 27572//26314 27571//26313 +f 27574//26316 27576//26318 27577//26319 27578//26320 +f 27575//26317 27574//26316 27578//26320 27579//26321 +f 27580//26322 27581//26323 27579//26321 27578//26320 +f 27582//26324 27580//26322 27578//26320 27577//26319 +f 27580//26322 27582//26324 27583//26325 27584//26326 +f 27581//26323 27580//26322 27584//26326 27585//26327 +f 27586//26328 27587//26329 27585//26327 27584//26326 +f 27588//26330 27586//26328 27584//26326 27583//26325 +f 27586//26328 27588//26330 27589//26331 27590//26332 +f 27587//26329 27586//26328 27590//26332 27591//26333 +f 27592//26334 27593//26335 27591//26333 27590//26332 +f 27594//26336 27592//26334 27590//26332 27589//26331 +f 27592//26334 27594//26336 27595//26337 27596//26338 +f 27593//26335 27592//26334 27596//26338 27597//26339 +f 27598//26340 27599//26341 27597//26339 27596//26338 +f 27600//26342 27598//26340 27596//26338 27595//26337 +f 27598//26340 27600//26342 27601//26343 27602//26344 +f 27599//26341 27598//26340 27602//26344 27603//26345 +f 27604//26346 27603//26345 27602//26344 27605//26347 +f 27605//26347 27602//26344 27601//26343 27606//26348 +f 27606//26348 27607//26349 27608//26350 27605//26347 +f 27605//26347 27608//26350 27609//26351 27604//26346 +f 27610//26352 27609//26351 27608//26350 27611//26353 +f 27611//26353 27608//26350 27607//26349 27612//26354 +f 27612//26354 27613//26355 27614//26356 27611//26353 +f 27611//26353 27614//26356 27615//26357 27610//26352 +f 27616//26358 27615//26357 27614//26356 27617//26359 +f 27617//26359 27614//26356 27613//26355 27618//26360 +f 27618//26360 27619//26361 27620//26362 27617//26359 +f 27617//26359 27620//26362 27621//26363 27616//26358 +f 27622//26364 27621//26363 27620//26362 27623//26365 +f 27623//26365 27620//26362 27619//26361 27624//26366 +f 27624//26366 27625//26367 27626//26368 27623//26365 +f 27623//26365 27626//26368 27627//26369 27622//26364 +f 27628//26370 27627//26369 27626//26368 27629//26371 +f 27629//26371 27626//26368 27625//26367 27630//26372 +f 27629//26371 27630//26372 27631//26373 27632//26374 +f 27628//26370 27629//26371 27632//26374 27633//26375 +f 27634//26376 27635//26377 27633//26375 27632//26374 +f 27636//26378 27634//26376 27632//26374 27631//26373 +f 27634//26376 27636//26378 27637//26379 27638//26380 +f 27635//26377 27634//26376 27638//26380 27639//26381 +f 27640//26382 27641//26383 27639//26381 27638//26380 +f 27642//26384 27640//26382 27638//26380 27637//26379 +f 27640//26382 27642//26384 27643//26385 27644//26386 +f 27641//26383 27640//26382 27644//26386 27645//26387 +f 27646//26388 27647//26389 27645//26387 27644//26386 +f 27648//26390 27646//26388 27644//26386 27643//26385 +f 27646//26388 27648//26390 27649//26391 27650//26392 +f 27647//26389 27646//26388 27650//26392 27651//26393 +f 27652//26394 27653//26395 27651//26393 27650//26392 +f 27654//26396 27652//26394 27650//26392 27649//26391 +f 27652//26394 27654//26396 27655//26397 27656//26398 +f 27653//26395 27652//26394 27656//26398 27657//26399 +f 27658//26400 27659//26401 27657//26399 27656//26398 +f 27660//26402 27658//26400 27656//26398 27655//26397 +f 27658//26400 27660//26402 27661//26403 27662//26404 +f 27659//26401 27658//26400 27662//26404 27663//26405 +f 27664//26406 27665//26407 27663//26405 27662//26404 +f 27666//26408 27664//26406 27662//26404 27661//26403 +f 27664//26406 27666//26408 27667//26409 27668//26410 +f 27665//26407 27664//26406 27668//26410 27669//26411 +f 27670//26412 27671//26413 27669//26411 27668//26410 +f 27672//26414 27670//26412 27668//26410 27667//26409 +f 27670//26412 27672//26414 27673//26415 27674//26416 +f 27671//26413 27670//26412 27674//26416 27675//26417 +f 27676//26418 27677//26419 27675//26417 27674//26416 +f 27678//26420 27676//26418 27674//26416 27673//26415 +f 27676//26418 27678//26420 27679//26421 27680//26422 +f 27677//26419 27676//26418 27680//26422 27681//26423 +f 27682//26424 27683//26425 27681//26423 27680//26422 +f 27684//26426 27682//26424 27680//26422 27679//26421 +f 27682//26424 27684//26426 27685//26427 27686//26428 +f 27683//26425 27682//26424 27686//26428 27687//26429 +f 23162//21903 23163//21904 27687//26429 27686//26428 +f 23164//21905 23162//21903 27686//26428 27685//26427 +f 23165//21906 23046//21787 27573//26315 27688//26430 +f 23167//21908 23165//21906 27688//26430 27689//26431 +f 27690//26432 27691//26433 27689//26431 27688//26430 +f 27575//26317 27690//26432 27688//26430 27573//26315 +f 27690//26432 27575//26317 27579//26321 27692//26434 +f 27691//26433 27690//26432 27692//26434 27693//26435 +f 27694//26436 27695//26437 27693//26435 27692//26434 +f 27581//26323 27694//26436 27692//26434 27579//26321 +f 27694//26436 27581//26323 27585//26327 27696//26438 +f 27695//26437 27694//26436 27696//26438 27697//26439 +f 27698//26440 27699//26441 27697//26439 27696//26438 +f 27587//26329 27698//26440 27696//26438 27585//26327 +f 27698//26440 27587//26329 27591//26333 27700//26442 +f 27699//26441 27698//26440 27700//26442 27701//26443 +f 27702//26444 27703//26445 27701//26443 27700//26442 +f 27593//26335 27702//26444 27700//26442 27591//26333 +f 27702//26444 27593//26335 27597//26339 27704//26446 +f 27702//26444 27704//26446 27705//26447 27703//26445 +f 27706//26448 27705//26447 27704//26446 27707//26449 +f 27599//26341 27707//26449 27704//26446 27597//26339 +f 27707//26449 27599//26341 27603//26345 27708//26450 +f 27707//26449 27708//26450 27709//26451 27706//26448 +f 27710//26452 27709//26451 27708//26450 27711//26453 +f 27711//26453 27708//26450 27603//26345 27604//26346 +f 27712//26454 27653//26395 27657//26399 27713//26455 +f 27714//26456 27712//26454 27713//26455 27715//26457 +f 27716//26458 27717//26459 27715//26457 27713//26455 +f 27659//26401 27716//26458 27713//26455 27657//26399 +f 27716//26458 27659//26401 27663//26405 27718//26460 +f 27717//26459 27716//26458 27718//26460 27719//26461 +f 27720//26462 27721//26463 27719//26461 27718//26460 +f 27665//26407 27720//26462 27718//26460 27663//26405 +f 27720//26462 27665//26407 27669//26411 27722//26464 +f 27721//26463 27720//26462 27722//26464 27723//26465 +f 27724//26466 27725//26467 27723//26465 27722//26464 +f 27671//26413 27724//26466 27722//26464 27669//26411 +f 27724//26466 27671//26413 27675//26417 27726//26468 +f 27725//26467 27724//26466 27726//26468 27727//26469 +f 27728//26470 27729//26471 27727//26469 27726//26468 +f 27677//26419 27728//26470 27726//26468 27675//26417 +f 27728//26470 27677//26419 27681//26423 27730//26472 +f 27729//26471 27728//26470 27730//26472 27731//26473 +f 27732//26474 27733//26475 27731//26473 27730//26472 +f 27683//26425 27732//26474 27730//26472 27681//26423 +f 27732//26474 27683//26425 27687//26429 27734//26476 +f 27733//26475 27732//26474 27734//26476 27735//26477 +f 23215//21956 23216//21957 27735//26477 27734//26476 +f 23163//21904 23215//21956 27734//26476 27687//26429 +f 23217//21958 23167//21908 27689//26431 27736//26478 +f 23219//21960 23217//21958 27736//26478 27737//26479 +f 27738//26480 27739//26481 27737//26479 27736//26478 +f 27691//26433 27738//26480 27736//26478 27689//26431 +f 27738//26480 27691//26433 27693//26435 27740//26482 +f 27739//26481 27738//26480 27740//26482 27741//26483 +f 27742//26484 27743//26485 27741//26483 27740//26482 +f 27695//26437 27742//26484 27740//26482 27693//26435 +f 27742//26484 27695//26437 27697//26439 27744//26486 +f 27743//26485 27742//26484 27744//26486 27745//26487 +f 27746//26488 27747//26489 27745//26487 27744//26486 +f 27699//26441 27746//26488 27744//26486 27697//26439 +f 27746//26488 27699//26441 27701//26443 27748//26490 +f 27747//26489 27746//26488 27748//26490 27749//26491 +f 27750//26492 27749//26491 27748//26490 27751//26493 +f 27751//26493 27748//26490 27701//26443 27703//26445 +f 27703//26445 27705//26447 27752//26494 27751//26493 +f 27751//26493 27752//26494 27753//26495 27750//26492 +f 27754//26496 27753//26495 27752//26494 27755//26497 +f 27755//26497 27752//26494 27705//26447 27706//26448 +f 27756//26498 27717//26459 27719//26461 27757//26499 +f 27758//26500 27756//26498 27757//26499 27759//26501 +f 27760//26502 27761//26503 27759//26501 27757//26499 +f 27721//26463 27760//26502 27757//26499 27719//26461 +f 27760//26502 27721//26463 27723//26465 27762//26504 +f 27761//26503 27760//26502 27762//26504 27763//26505 +f 27764//26506 27765//26507 27763//26505 27762//26504 +f 27725//26467 27764//26506 27762//26504 27723//26465 +f 27764//26506 27725//26467 27727//26469 27766//26508 +f 27765//26507 27764//26506 27766//26508 27767//26509 +f 27768//26510 27769//26511 27767//26509 27766//26508 +f 27729//26471 27768//26510 27766//26508 27727//26469 +f 27768//26510 27729//26471 27731//26473 27770//26512 +f 27769//26511 27768//26510 27770//26512 27771//26513 +f 27772//26514 27773//26515 27771//26513 27770//26512 +f 27733//26475 27772//26514 27770//26512 27731//26473 +f 27772//26514 27733//26475 27735//26477 27774//26516 +f 27773//26515 27772//26514 27774//26516 27775//26517 +f 23259//22000 23260//22001 27775//26517 27774//26516 +f 23216//21957 23259//22000 27774//26516 27735//26477 +f 23261//22002 23219//21960 27737//26479 27776//26518 +f 23263//22004 23261//22002 27776//26518 27777//26519 +f 27778//26520 27779//26521 27777//26519 27776//26518 +f 27739//26481 27778//26520 27776//26518 27737//26479 +f 27778//26520 27739//26481 27741//26483 27780//26522 +f 27779//26521 27778//26520 27780//26522 27781//26523 +f 27782//26524 27783//26525 27781//26523 27780//26522 +f 27743//26485 27782//26524 27780//26522 27741//26483 +f 27782//26524 27743//26485 27745//26487 27784//26526 +f 27783//26525 27782//26524 27784//26526 27785//26527 +f 27786//26528 27787//26529 27785//26527 27784//26526 +f 27747//26489 27786//26528 27784//26526 27745//26487 +f 27786//26528 27747//26489 27749//26491 27788//26530 +f 27787//26529 27786//26528 27788//26530 27789//26531 +f 27790//26532 27789//26531 27788//26530 27791//26533 +f 27791//26533 27788//26530 27749//26491 27750//26492 +f 27750//26492 27753//26495 27792//26534 27791//26533 +f 27791//26533 27792//26534 27793//26535 27790//26532 +f 27794//26536 27793//26535 27792//26534 27795//26537 +f 27795//26537 27792//26534 27753//26495 27754//26496 +f 27796//26538 27758//26500 27759//26501 27797//26539 +f 27798//26540 27796//26538 27797//26539 27799//26541 +f 27800//26542 27801//26543 27799//26541 27797//26539 +f 27761//26503 27800//26542 27797//26539 27759//26501 +f 27800//26542 27761//26503 27763//26505 27802//26544 +f 27801//26543 27800//26542 27802//26544 27803//26545 +f 27804//26546 27805//26547 27803//26545 27802//26544 +f 27765//26507 27804//26546 27802//26544 27763//26505 +f 27804//26546 27765//26507 27767//26509 27806//26548 +f 27805//26547 27804//26546 27806//26548 27807//26549 +f 27808//26550 27809//26551 27807//26549 27806//26548 +f 27769//26511 27808//26550 27806//26548 27767//26509 +f 27808//26550 27769//26511 27771//26513 27810//26552 +f 27809//26551 27808//26550 27810//26552 27811//26553 +f 27812//26554 27813//26555 27811//26553 27810//26552 +f 27773//26515 27812//26554 27810//26552 27771//26513 +f 27812//26554 27773//26515 27775//26517 27814//26556 +f 27813//26555 27812//26554 27814//26556 27815//26557 +f 23303//22044 23304//22045 27815//26557 27814//26556 +f 23260//22001 23303//22044 27814//26556 27775//26517 +f 23305//22046 23263//22004 27777//26519 27816//26558 +f 23307//22048 23305//22046 27816//26558 27817//26559 +f 27818//26560 27819//26561 27817//26559 27816//26558 +f 27779//26521 27818//26560 27816//26558 27777//26519 +f 27818//26560 27779//26521 27781//26523 27820//26562 +f 27819//26561 27818//26560 27820//26562 27821//26563 +f 27822//26564 27823//26565 27821//26563 27820//26562 +f 27783//26525 27822//26564 27820//26562 27781//26523 +f 27822//26564 27783//26525 27785//26527 27824//26566 +f 27823//26565 27822//26564 27824//26566 27825//26567 +f 27826//26568 27827//26569 27825//26567 27824//26566 +f 27787//26529 27826//26568 27824//26566 27785//26527 +f 27826//26568 27787//26529 27789//26531 27828//26570 +f 27827//26569 27826//26568 27828//26570 27829//26571 +f 27830//26572 27831//26573 27829//26571 27828//26570 +f 27790//26532 27830//26572 27828//26570 27789//26531 +f 27790//26532 27793//26535 27832//26574 27830//26572 +f 27830//26572 27832//26574 27833//26575 27831//26573 +f 27834//26576 27833//26575 27832//26574 27835//26577 +f 27835//26577 27832//26574 27793//26535 27794//26536 +f 27836//26578 27837//26579 27838//26580 27839//26581 +f 27839//26581 27838//26580 27840//26582 27841//26583 +f 27801//26543 27840//26582 27838//26580 27799//26541 +f 27799//26541 27838//26580 27837//26579 27798//26540 +f 27840//26582 27801//26543 27803//26545 27842//26584 +f 27841//26583 27840//26582 27842//26584 27843//26585 +f 27844//26586 27845//26587 27843//26585 27842//26584 +f 27805//26547 27844//26586 27842//26584 27803//26545 +f 27844//26586 27805//26547 27807//26549 27846//26588 +f 27845//26587 27844//26586 27846//26588 27847//26589 +f 27848//26590 27849//26591 27847//26589 27846//26588 +f 27809//26551 27848//26590 27846//26588 27807//26549 +f 27848//26590 27809//26551 27811//26553 27850//26592 +f 27849//26591 27848//26590 27850//26592 27851//26593 +f 27852//26594 27853//26595 27851//26593 27850//26592 +f 27813//26555 27852//26594 27850//26592 27811//26553 +f 27852//26594 27813//26555 27815//26557 27854//26596 +f 27853//26595 27852//26594 27854//26596 27855//26597 +f 23347//22088 23348//22089 27855//26597 27854//26596 +f 23304//22045 23347//22088 27854//26596 27815//26557 +f 23349//22090 23307//22048 27817//26559 27856//26598 +f 23351//22092 23349//22090 27856//26598 27857//26599 +f 27858//26600 27859//26601 27857//26599 27856//26598 +f 27819//26561 27858//26600 27856//26598 27817//26559 +f 27858//26600 27819//26561 27821//26563 27860//26602 +f 27859//26601 27858//26600 27860//26602 27861//26603 +f 27862//26604 27863//26605 27861//26603 27860//26602 +f 27823//26565 27862//26604 27860//26602 27821//26563 +f 27862//26604 27823//26565 27825//26567 27864//26606 +f 27863//26605 27862//26604 27864//26606 27865//26607 +f 27866//26608 27867//26609 27865//26607 27864//26606 +f 27827//26569 27866//26608 27864//26606 27825//26567 +f 27866//26608 27827//26569 27829//26571 27868//26610 +f 27867//26609 27866//26608 27868//26610 27869//26611 +f 27870//26612 27871//26613 27869//26611 27868//26610 +f 27831//26573 27870//26612 27868//26610 27829//26571 +f 27831//26573 27833//26575 27872//26614 27870//26612 +f 27871//26613 27870//26612 27872//26614 27873//26615 +f 27874//26616 27873//26615 27872//26614 27875//26617 +f 27875//26617 27872//26614 27833//26575 27834//26576 +f 27876//26618 27877//26619 27878//26620 27879//26621 +f 27880//26622 27876//26618 27879//26621 27881//26623 +f 27841//26583 27881//26623 27879//26621 27839//26581 +f 27839//26581 27879//26621 27878//26620 27836//26578 +f 27881//26623 27841//26583 27843//26585 27882//26624 +f 27880//26622 27881//26623 27882//26624 27883//26625 +f 27884//26626 27885//26627 27883//26625 27882//26624 +f 27845//26587 27884//26626 27882//26624 27843//26585 +f 27884//26626 27845//26587 27847//26589 27886//26628 +f 27885//26627 27884//26626 27886//26628 27887//26629 +f 27888//26630 27889//26631 27887//26629 27886//26628 +f 27849//26591 27888//26630 27886//26628 27847//26589 +f 27888//26630 27849//26591 27851//26593 27890//26632 +f 27889//26631 27888//26630 27890//26632 27891//26633 +f 27892//26634 27893//26635 27891//26633 27890//26632 +f 27853//26595 27892//26634 27890//26632 27851//26593 +f 27892//26634 27853//26595 27855//26597 27894//26636 +f 27893//26635 27892//26634 27894//26636 27895//26637 +f 23391//22132 23392//22133 27895//26637 27894//26636 +f 23348//22089 23391//22132 27894//26636 27855//26597 +f 23393//22134 23351//22092 27857//26599 27896//26638 +f 23395//22136 23393//22134 27896//26638 27897//26639 +f 27898//26640 27899//26641 27897//26639 27896//26638 +f 27859//26601 27898//26640 27896//26638 27857//26599 +f 27898//26640 27859//26601 27861//26603 27900//26642 +f 27899//26641 27898//26640 27900//26642 27901//26643 +f 27902//26644 27903//26645 27901//26643 27900//26642 +f 27863//26605 27902//26644 27900//26642 27861//26603 +f 27902//26644 27863//26605 27865//26607 27904//26646 +f 27903//26645 27902//26644 27904//26646 27905//26647 +f 27906//26648 27907//26649 27905//26647 27904//26646 +f 27867//26609 27906//26648 27904//26646 27865//26607 +f 27906//26648 27867//26609 27869//26611 27908//26650 +f 27907//26649 27906//26648 27908//26650 27909//26651 +f 27910//26652 27911//26653 27909//26651 27908//26650 +f 27871//26613 27910//26652 27908//26650 27869//26611 +f 27910//26652 27871//26613 27873//26615 27912//26654 +f 27911//26653 27910//26652 27912//26654 27913//26655 +f 27914//26656 27915//26657 27913//26655 27912//26654 +f 27874//26616 27914//26656 27912//26654 27873//26615 +f 27916//26658 27917//26659 27918//26660 27919//26661 +f 27920//26662 27916//26658 27919//26661 27921//26663 +f 27876//26618 27880//26622 27921//26663 27919//26661 +f 27877//26619 27876//26618 27919//26661 27918//26660 +f 27921//26663 27880//26622 27883//26625 27922//26664 +f 27920//26662 27921//26663 27922//26664 27923//26665 +f 27924//26666 27925//26667 27923//26665 27922//26664 +f 27885//26627 27924//26666 27922//26664 27883//26625 +f 27924//26666 27885//26627 27887//26629 27926//26668 +f 27925//26667 27924//26666 27926//26668 27927//26669 +f 27928//26670 27929//26671 27927//26669 27926//26668 +f 27889//26631 27928//26670 27926//26668 27887//26629 +f 27928//26670 27889//26631 27891//26633 27930//26672 +f 27929//26671 27928//26670 27930//26672 27931//26673 +f 27932//26674 27933//26675 27931//26673 27930//26672 +f 27893//26635 27932//26674 27930//26672 27891//26633 +f 27932//26674 27893//26635 27895//26637 27934//26676 +f 27933//26675 27932//26674 27934//26676 27935//26677 +f 23435//22176 23436//22177 27935//26677 27934//26676 +f 23392//22133 23435//22176 27934//26676 27895//26637 +f 23437//22178 23395//22136 27897//26639 27936//26678 +f 23439//22180 23437//22178 27936//26678 27937//26679 +f 27938//26680 27939//26681 27937//26679 27936//26678 +f 27899//26641 27938//26680 27936//26678 27897//26639 +f 27938//26680 27899//26641 27901//26643 27940//26682 +f 27939//26681 27938//26680 27940//26682 27941//26683 +f 27942//26684 27943//26685 27941//26683 27940//26682 +f 27903//26645 27942//26684 27940//26682 27901//26643 +f 27942//26684 27903//26645 27905//26647 27944//26686 +f 27943//26685 27942//26684 27944//26686 27945//26687 +f 27946//26688 27947//26689 27945//26687 27944//26686 +f 27907//26649 27946//26688 27944//26686 27905//26647 +f 27946//26688 27907//26649 27909//26651 27948//26690 +f 27947//26689 27946//26688 27948//26690 27949//26691 +f 27950//26692 27951//26693 27949//26691 27948//26690 +f 27911//26653 27950//26692 27948//26690 27909//26651 +f 27950//26692 27911//26653 27913//26655 27952//26694 +f 27951//26693 27950//26692 27952//26694 27953//26695 +f 27954//26696 27955//26697 27953//26695 27952//26694 +f 27915//26657 27954//26696 27952//26694 27913//26655 +f 27956//26698 27957//26699 27958//26700 27959//26701 +f 27960//26702 27956//26698 27959//26701 27961//26703 +f 27916//26658 27920//26662 27961//26703 27959//26701 +f 27917//26659 27916//26658 27959//26701 27958//26700 +f 27961//26703 27920//26662 27923//26665 27962//26704 +f 27961//26703 27962//26704 27963//26705 27960//26702 +f 27964//26706 27965//26707 27963//26705 27962//26704 +f 27925//26667 27964//26706 27962//26704 27923//26665 +f 27964//26706 27925//26667 27927//26669 27966//26708 +f 27965//26707 27964//26706 27966//26708 27967//26709 +f 27968//26710 27969//26711 27967//26709 27966//26708 +f 27929//26671 27968//26710 27966//26708 27927//26669 +f 27968//26710 27929//26671 27931//26673 27970//26712 +f 27969//26711 27968//26710 27970//26712 27971//26713 +f 27972//26714 27973//26715 27971//26713 27970//26712 +f 27933//26675 27972//26714 27970//26712 27931//26673 +f 27972//26714 27933//26675 27935//26677 27974//26716 +f 27973//26715 27972//26714 27974//26716 27975//26717 +f 23479//22220 23480//22221 27975//26717 27974//26716 +f 23436//22177 23479//22220 27974//26716 27935//26677 +f 23481//22222 23439//22180 27937//26679 27976//26718 +f 23483//22224 23481//22222 27976//26718 27977//26719 +f 27978//26720 27979//26721 27977//26719 27976//26718 +f 27939//26681 27978//26720 27976//26718 27937//26679 +f 27978//26720 27939//26681 27941//26683 27980//26722 +f 27979//26721 27978//26720 27980//26722 27981//26723 +f 27982//26724 27983//26725 27981//26723 27980//26722 +f 27943//26685 27982//26724 27980//26722 27941//26683 +f 27982//26724 27943//26685 27945//26687 27984//26726 +f 27983//26725 27982//26724 27984//26726 27985//26727 +f 27986//26728 27987//26729 27985//26727 27984//26726 +f 27947//26689 27986//26728 27984//26726 27945//26687 +f 27986//26728 27947//26689 27949//26691 27988//26730 +f 27987//26729 27986//26728 27988//26730 27989//26731 +f 27990//26732 27991//26733 27989//26731 27988//26730 +f 27951//26693 27990//26732 27988//26730 27949//26691 +f 27990//26732 27951//26693 27953//26695 27992//26734 +f 27991//26733 27990//26732 27992//26734 27993//26735 +f 27994//26736 27995//26737 27993//26735 27992//26734 +f 27955//26697 27994//26736 27992//26734 27953//26695 +f 27996//26738 27997//26739 27998//26740 27999//26741 +f 28000//26742 27996//26738 27999//26741 28001//26743 +f 27956//26698 27960//26702 28001//26743 27999//26741 +f 27957//26699 27956//26698 27999//26741 27998//26740 +f 27960//26702 27963//26705 28002//26744 28001//26743 +f 28001//26743 28002//26744 28003//26745 28000//26742 +f 28004//26746 28005//26747 28003//26745 28002//26744 +f 27965//26707 28004//26746 28002//26744 27963//26705 +f 28004//26746 27965//26707 27967//26709 28006//26748 +f 28005//26747 28004//26746 28006//26748 28007//26749 +f 28008//26750 28009//26751 28007//26749 28006//26748 +f 27969//26711 28008//26750 28006//26748 27967//26709 +f 28008//26750 27969//26711 27971//26713 28010//26752 +f 28009//26751 28008//26750 28010//26752 28011//26753 +f 28012//26754 28013//26755 28011//26753 28010//26752 +f 27973//26715 28012//26754 28010//26752 27971//26713 +f 28012//26754 27973//26715 27975//26717 28014//26756 +f 28013//26755 28012//26754 28014//26756 28015//26757 +f 23523//22264 23524//22265 28015//26757 28014//26756 +f 23480//22221 23523//22264 28014//26756 27975//26717 +f 23525//22266 23483//22224 27977//26719 28016//26758 +f 23527//22268 23525//22266 28016//26758 28017//26759 +f 28018//26760 28019//26761 28017//26759 28016//26758 +f 27979//26721 28018//26760 28016//26758 27977//26719 +f 28018//26760 27979//26721 27981//26723 28020//26762 +f 28019//26761 28018//26760 28020//26762 28021//26763 +f 28022//26764 28023//26765 28021//26763 28020//26762 +f 27983//26725 28022//26764 28020//26762 27981//26723 +f 28022//26764 27983//26725 27985//26727 28024//26766 +f 28023//26765 28022//26764 28024//26766 28025//26767 +f 28026//26768 28027//26769 28025//26767 28024//26766 +f 27987//26729 28026//26768 28024//26766 27985//26727 +f 28026//26768 27987//26729 27989//26731 28028//26770 +f 28027//26769 28026//26768 28028//26770 28029//26771 +f 28030//26772 28031//26773 28029//26771 28028//26770 +f 27991//26733 28030//26772 28028//26770 27989//26731 +f 28030//26772 27991//26733 27993//26735 28032//26774 +f 28031//26773 28030//26772 28032//26774 28033//26775 +f 28034//26776 28035//26777 28033//26775 28032//26774 +f 27995//26737 28034//26776 28032//26774 27993//26735 +f 27997//26739 27996//26738 28036//26778 28037//26779 +f 28037//26779 28036//26778 28038//26780 28039//26781 +f 28040//26782 28038//26780 28036//26778 28041//26783 +f 28041//26783 28036//26778 27996//26738 28000//26742 +f 28000//26742 28003//26745 28042//26784 28041//26783 +f 28041//26783 28042//26784 28043//26785 28040//26782 +f 28044//26786 28045//26787 28043//26785 28042//26784 +f 28005//26747 28044//26786 28042//26784 28003//26745 +f 28044//26786 28005//26747 28007//26749 28046//26788 +f 28045//26787 28044//26786 28046//26788 28047//26789 +f 28048//26790 28049//26791 28047//26789 28046//26788 +f 28009//26751 28048//26790 28046//26788 28007//26749 +f 28048//26790 28009//26751 28011//26753 28050//26792 +f 28049//26791 28048//26790 28050//26792 28051//26793 +f 28052//26794 28053//26795 28051//26793 28050//26792 +f 28013//26755 28052//26794 28050//26792 28011//26753 +f 28052//26794 28013//26755 28015//26757 28054//26796 +f 28053//26795 28052//26794 28054//26796 28055//26797 +f 23567//22308 23568//22309 28055//26797 28054//26796 +f 23524//22265 23567//22308 28054//26796 28015//26757 +f 23569//22310 23527//22268 28017//26759 28056//26798 +f 23571//22312 23569//22310 28056//26798 28057//26799 +f 28058//26800 28059//26801 28057//26799 28056//26798 +f 28019//26761 28058//26800 28056//26798 28017//26759 +f 28058//26800 28019//26761 28021//26763 28060//26802 +f 28059//26801 28058//26800 28060//26802 28061//26803 +f 28062//26804 28063//26805 28061//26803 28060//26802 +f 28023//26765 28062//26804 28060//26802 28021//26763 +f 28062//26804 28023//26765 28025//26767 28064//26806 +f 28063//26805 28062//26804 28064//26806 28065//26807 +f 28066//26808 28067//26809 28065//26807 28064//26806 +f 28027//26769 28066//26808 28064//26806 28025//26767 +f 28066//26808 28027//26769 28029//26771 28068//26810 +f 28067//26809 28066//26808 28068//26810 28069//26811 +f 28070//26812 28071//26813 28069//26811 28068//26810 +f 28031//26773 28070//26812 28068//26810 28029//26771 +f 28070//26812 28031//26773 28033//26775 28072//26814 +f 28071//26813 28070//26812 28072//26814 28073//26815 +f 28074//26816 28073//26815 28072//26814 28075//26817 +f 28035//26777 28075//26817 28072//26814 28033//26775 +f 28075//26817 28035//26777 28076//26818 28077//26819 +f 28075//26817 28077//26819 28078//26820 28074//26816 +f 28079//26821 28080//26822 28078//26820 28077//26819 +f 28081//26823 28079//26821 28077//26819 28076//26818 +f 28082//26824 28083//26825 28084//26826 28085//26827 +f 28085//26827 28084//26826 28086//26828 28087//26829 +f 28088//26830 28086//26828 28084//26826 28089//26831 +f 28089//26831 28084//26826 28083//26825 28039//26781 +f 28039//26781 28038//26780 28090//26832 28089//26831 +f 28089//26831 28090//26832 28091//26833 28088//26830 +f 28092//26834 28093//26835 28091//26833 28090//26832 +f 28092//26834 28090//26832 28038//26780 28040//26782 +f 28092//26834 28040//26782 28043//26785 28094//26836 +f 28093//26835 28092//26834 28094//26836 28095//26837 +f 28096//26838 28097//26839 28095//26837 28094//26836 +f 28045//26787 28096//26838 28094//26836 28043//26785 +f 28096//26838 28045//26787 28047//26789 28098//26840 +f 28097//26839 28096//26838 28098//26840 28099//26841 +f 28100//26842 28101//26843 28099//26841 28098//26840 +f 28049//26791 28100//26842 28098//26840 28047//26789 +f 28100//26842 28049//26791 28051//26793 28102//26844 +f 28101//26843 28100//26842 28102//26844 28103//26845 +f 28104//26846 28105//26847 28103//26845 28102//26844 +f 28053//26795 28104//26846 28102//26844 28051//26793 +f 28104//26846 28053//26795 28055//26797 28106//26848 +f 28105//26847 28104//26846 28106//26848 28107//26849 +f 23623//22364 23624//22365 28107//26849 28106//26848 +f 23568//22309 23623//22364 28106//26848 28055//26797 +f 23625//22366 23571//22312 28057//26799 28108//26850 +f 23627//22368 23625//22366 28108//26850 28109//26851 +f 28110//26852 28111//26853 28109//26851 28108//26850 +f 28059//26801 28110//26852 28108//26850 28057//26799 +f 28110//26852 28059//26801 28061//26803 28112//26854 +f 28111//26853 28110//26852 28112//26854 28113//26855 +f 28114//26856 28115//26857 28113//26855 28112//26854 +f 28063//26805 28114//26856 28112//26854 28061//26803 +f 28114//26856 28063//26805 28065//26807 28116//26858 +f 28115//26857 28114//26856 28116//26858 28117//26859 +f 28118//26860 28119//26861 28117//26859 28116//26858 +f 28067//26809 28118//26860 28116//26858 28065//26807 +f 28118//26860 28067//26809 28069//26811 28120//26862 +f 28119//26861 28118//26860 28120//26862 28121//26863 +f 28122//26864 28123//26865 28121//26863 28120//26862 +f 28071//26813 28122//26864 28120//26862 28069//26811 +f 28122//26864 28071//26813 28073//26815 28124//26866 +f 28123//26865 28122//26864 28124//26866 28125//26867 +f 28126//26868 28127//26869 28125//26867 28124//26866 +f 28074//26816 28126//26868 28124//26866 28073//26815 +f 28074//26816 28078//26820 28128//26870 28126//26868 +f 28127//26869 28126//26868 28128//26870 28129//26871 +f 28130//26872 28131//26873 28129//26871 28128//26870 +f 28080//26822 28130//26872 28128//26870 28078//26820 +f 28130//26872 28080//26822 28132//26874 28133//26875 +f 28131//26873 28130//26872 28133//26875 28134//26876 +f 28135//26877 28136//26878 28134//26876 28133//26875 +f 28137//26879 28135//26877 28133//26875 28132//26874 +f 28138//26880 28139//26881 28140//26882 28141//26883 +f 28142//26884 28138//26880 28141//26883 28143//26885 +f 28144//26886 28145//26887 28143//26885 28141//26883 +f 28146//26888 28144//26886 28141//26883 28140//26882 +f 28144//26886 28146//26888 28147//26889 28148//26890 +f 28145//26887 28144//26886 28148//26890 28149//26891 +f 28150//26892 28151//26893 28149//26891 28148//26890 +f 28152//26894 28150//26892 28148//26890 28147//26889 +f 28152//26894 28153//26895 28154//26896 28150//26892 +f 28150//26892 28154//26896 28155//26897 28151//26893 +f 28156//26898 28155//26897 28154//26896 28157//26899 +f 28157//26899 28154//26896 28153//26895 28158//26900 +f 28158//26900 28159//26901 28160//26902 28157//26899 +f 28157//26899 28160//26902 28161//26903 28156//26898 +f 28162//26904 28161//26903 28160//26902 28163//26905 +f 28163//26905 28160//26902 28159//26901 28164//26906 +f 28165//26907 28166//26908 28167//26909 28168//26910 +f 28168//26910 28167//26909 28169//26911 28170//26912 +f 28171//26913 28169//26911 28167//26909 28172//26914 +f 28172//26914 28167//26909 28166//26908 28087//26829 +f 28087//26829 28086//26828 28173//26915 28172//26914 +f 28172//26914 28173//26915 28174//26916 28171//26913 +f 28175//26917 28174//26916 28173//26915 28176//26918 +f 28176//26918 28173//26915 28086//26828 28088//26830 +f 28088//26830 28091//26833 28177//26919 28176//26918 +f 28176//26918 28177//26919 28178//26920 28175//26917 +f 28179//26921 28180//26922 28178//26920 28177//26919 +f 28093//26835 28179//26921 28177//26919 28091//26833 +f 28179//26921 28093//26835 28095//26837 28181//26923 +f 28180//26922 28179//26921 28181//26923 28182//26924 +f 28183//26925 28184//26926 28182//26924 28181//26923 +f 28097//26839 28183//26925 28181//26923 28095//26837 +f 28183//26925 28097//26839 28099//26841 28185//26927 +f 28184//26926 28183//26925 28185//26927 28186//26928 +f 28187//26929 28188//26930 28186//26928 28185//26927 +f 28101//26843 28187//26929 28185//26927 28099//26841 +f 28187//26929 28101//26843 28103//26845 28189//26931 +f 28188//26930 28187//26929 28189//26931 28190//26932 +f 28191//26933 28192//26934 28190//26932 28189//26931 +f 28105//26847 28191//26933 28189//26931 28103//26845 +f 28191//26933 28105//26847 28107//26849 28193//26935 +f 28192//26934 28191//26933 28193//26935 28194//26936 +f 23714//22455 23715//22456 28194//26936 28193//26935 +f 23624//22365 23714//22455 28193//26935 28107//26849 +f 23716//22457 23627//22368 28109//26851 28195//26937 +f 23718//22459 23716//22457 28195//26937 28196//26938 +f 28197//26939 28198//26940 28196//26938 28195//26937 +f 28111//26853 28197//26939 28195//26937 28109//26851 +f 28197//26939 28111//26853 28113//26855 28199//26941 +f 28198//26940 28197//26939 28199//26941 28200//26942 +f 28201//26943 28202//26944 28200//26942 28199//26941 +f 28115//26857 28201//26943 28199//26941 28113//26855 +f 28201//26943 28115//26857 28117//26859 28203//26945 +f 28202//26944 28201//26943 28203//26945 28204//26946 +f 28205//26947 28206//26948 28204//26946 28203//26945 +f 28119//26861 28205//26947 28203//26945 28117//26859 +f 28205//26947 28119//26861 28121//26863 28207//26949 +f 28206//26948 28205//26947 28207//26949 28208//26950 +f 28209//26951 28210//26952 28208//26950 28207//26949 +f 28123//26865 28209//26951 28207//26949 28121//26863 +f 28209//26951 28123//26865 28125//26867 28211//26953 +f 28210//26952 28209//26951 28211//26953 28212//26954 +f 28213//26955 28214//26956 28212//26954 28211//26953 +f 28127//26869 28213//26955 28211//26953 28125//26867 +f 28213//26955 28127//26869 28129//26871 28215//26957 +f 28214//26956 28213//26955 28215//26957 28216//26958 +f 28217//26959 28218//26960 28216//26958 28215//26957 +f 28131//26873 28217//26959 28215//26957 28129//26871 +f 28217//26959 28131//26873 28134//26876 28219//26961 +f 28218//26960 28217//26959 28219//26961 28220//26962 +f 28221//26963 28222//26964 28220//26962 28219//26961 +f 28136//26878 28221//26963 28219//26961 28134//26876 +f 28221//26963 28136//26878 28223//26965 28224//26966 +f 28222//26964 28221//26963 28224//26966 28225//26967 +f 28226//26968 28227//26969 28225//26967 28224//26966 +f 28228//26970 28226//26968 28224//26966 28223//26965 +f 28226//26968 28228//26970 28229//26971 28230//26972 +f 28227//26969 28226//26968 28230//26972 28231//26973 +f 28232//26974 28233//26975 28231//26973 28230//26972 +f 28234//26976 28232//26974 28230//26972 28229//26971 +f 28232//26974 28234//26976 28235//26977 28236//26978 +f 28233//26975 28232//26974 28236//26978 28237//26979 +f 28238//26980 28239//26981 28237//26979 28236//26978 +f 28240//26982 28238//26980 28236//26978 28235//26977 +f 28238//26980 28240//26982 28241//26983 28242//26984 +f 28239//26981 28238//26980 28242//26984 28243//26985 +f 28244//26986 28245//26987 28243//26985 28242//26984 +f 28244//26986 28242//26984 28241//26983 28246//26988 +f 28246//26988 28247//26989 28248//26990 28244//26986 +f 28245//26987 28244//26986 28248//26990 28249//26991 +f 28250//26992 28251//26993 28249//26991 28248//26990 +f 28250//26992 28248//26990 28247//26989 28252//26994 +f 28252//26994 28253//26995 28254//26996 28250//26992 +f 28251//26993 28250//26992 28254//26996 28255//26997 +f 28256//26998 28257//26999 28255//26997 28254//26996 +f 28256//26998 28254//26996 28253//26995 28170//26912 +f 28170//26912 28169//26911 28258//27000 28256//26998 +f 28257//26999 28256//26998 28258//27000 28259//27001 +f 28260//27002 28261//27003 28259//27001 28258//27000 +f 28260//27002 28258//27000 28169//26911 28171//26913 +f 28171//26913 28174//26916 28262//27004 28260//27002 +f 28261//27003 28260//27002 28262//27004 28263//27005 +f 28264//27006 28265//27007 28263//27005 28262//27004 +f 28264//27006 28262//27004 28174//26916 28175//26917 +f 28264//27006 28175//26917 28178//26920 28266//27008 +f 28265//27007 28264//27006 28266//27008 28267//27009 +f 28268//27010 28269//27011 28267//27009 28266//27008 +f 28180//26922 28268//27010 28266//27008 28178//26920 +f 28268//27010 28180//26922 28182//26924 28270//27012 +f 28269//27011 28268//27010 28270//27012 28271//27013 +f 28272//27014 28273//27015 28271//27013 28270//27012 +f 28184//26926 28272//27014 28270//27012 28182//26924 +f 28272//27014 28184//26926 28186//26928 28274//27016 +f 28273//27015 28272//27014 28274//27016 28275//27017 +f 28276//27018 28277//27019 28275//27017 28274//27016 +f 28188//26930 28276//27018 28274//27016 28186//26928 +f 28276//27018 28188//26930 28190//26932 28278//27020 +f 28277//27019 28276//27018 28278//27020 28279//27021 +f 28280//27022 28281//27023 28279//27021 28278//27020 +f 28192//26934 28280//27022 28278//27020 28190//26932 +f 28280//27022 28192//26934 28194//26936 28282//27024 +f 28281//27023 28280//27022 28282//27024 28283//27025 +f 23807//22548 23808//22549 28283//27025 28282//27024 +f 23715//22456 23807//22548 28282//27024 28194//26936 +f 23809//22550 23718//22459 28196//26938 28284//27026 +f 23811//22552 23809//22550 28284//27026 28285//27027 +f 28286//27028 28287//27029 28285//27027 28284//27026 +f 28198//26940 28286//27028 28284//27026 28196//26938 +f 28286//27028 28198//26940 28200//26942 28288//27030 +f 28287//27029 28286//27028 28288//27030 28289//27031 +f 28290//27032 28291//27033 28289//27031 28288//27030 +f 28202//26944 28290//27032 28288//27030 28200//26942 +f 28290//27032 28202//26944 28204//26946 28292//27034 +f 28291//27033 28290//27032 28292//27034 28293//27035 +f 28294//27036 28295//27037 28293//27035 28292//27034 +f 28206//26948 28294//27036 28292//27034 28204//26946 +f 28294//27036 28206//26948 28208//26950 28296//27038 +f 28295//27037 28294//27036 28296//27038 28297//27039 +f 28298//27040 28299//27041 28297//27039 28296//27038 +f 28210//26952 28298//27040 28296//27038 28208//26950 +f 28298//27040 28210//26952 28212//26954 28300//27042 +f 28299//27041 28298//27040 28300//27042 28301//27043 +f 28302//27044 28303//27045 28301//27043 28300//27042 +f 28214//26956 28302//27044 28300//27042 28212//26954 +f 28302//27044 28214//26956 28216//26958 28304//27046 +f 28303//27045 28302//27044 28304//27046 28305//27047 +f 28306//27048 28307//27049 28305//27047 28304//27046 +f 28218//26960 28306//27048 28304//27046 28216//26958 +f 28306//27048 28218//26960 28220//26962 28308//27050 +f 28307//27049 28306//27048 28308//27050 28309//27051 +f 28310//27052 28311//27053 28309//27051 28308//27050 +f 28222//26964 28310//27052 28308//27050 28220//26962 +f 28310//27052 28222//26964 28225//26967 28312//27054 +f 28311//27053 28310//27052 28312//27054 28313//27055 +f 28314//27056 28315//27057 28313//27055 28312//27054 +f 28227//26969 28314//27056 28312//27054 28225//26967 +f 28314//27056 28227//26969 28231//26973 28316//27058 +f 28315//27057 28314//27056 28316//27058 28317//27059 +f 28318//27060 28319//27061 28317//27059 28316//27058 +f 28233//26975 28318//27060 28316//27058 28231//26973 +f 28318//27060 28233//26975 28237//26979 28320//27062 +f 28319//27061 28318//27060 28320//27062 28321//27063 +f 28322//27064 28323//27065 28321//27063 28320//27062 +f 28239//26981 28322//27064 28320//27062 28237//26979 +f 28322//27064 28239//26981 28243//26985 28324//27066 +f 28323//27065 28322//27064 28324//27066 28325//27067 +f 28326//27068 28327//27069 28325//27067 28324//27066 +f 28245//26987 28326//27068 28324//27066 28243//26985 +f 28326//27068 28245//26987 28249//26991 28328//27070 +f 28327//27069 28326//27068 28328//27070 28329//27071 +f 28330//27072 28331//27073 28329//27071 28328//27070 +f 28251//26993 28330//27072 28328//27070 28249//26991 +f 28330//27072 28251//26993 28255//26997 28332//27074 +f 28331//27073 28330//27072 28332//27074 28333//27075 +f 28334//27076 28335//27077 28333//27075 28332//27074 +f 28257//26999 28334//27076 28332//27074 28255//26997 +f 28334//27076 28257//26999 28259//27001 28336//27078 +f 28335//27077 28334//27076 28336//27078 28337//27079 +f 28338//27080 28339//27081 28337//27079 28336//27078 +f 28261//27003 28338//27080 28336//27078 28259//27001 +f 28338//27080 28261//27003 28263//27005 28340//27082 +f 28339//27081 28338//27080 28340//27082 28341//27083 +f 28342//27084 28343//27085 28341//27083 28340//27082 +f 28265//27007 28342//27084 28340//27082 28263//27005 +f 28342//27084 28265//27007 28267//27009 28344//27086 +f 28343//27085 28342//27084 28344//27086 28345//27087 +f 28346//27088 28347//27089 28345//27087 28344//27086 +f 28269//27011 28346//27088 28344//27086 28267//27009 +f 28346//27088 28269//27011 28271//27013 28348//27090 +f 28347//27089 28346//27088 28348//27090 28349//27091 +f 28350//27092 28351//27093 28349//27091 28348//27090 +f 28273//27015 28350//27092 28348//27090 28271//27013 +f 28350//27092 28273//27015 28275//27017 28352//27094 +f 28351//27093 28350//27092 28352//27094 28353//27095 +f 28354//27096 28355//27097 28353//27095 28352//27094 +f 28277//27019 28354//27096 28352//27094 28275//27017 +f 28354//27096 28277//27019 28279//27021 28356//27098 +f 28355//27097 28354//27096 28356//27098 28357//27099 +f 28358//27100 28359//27101 28357//27099 28356//27098 +f 28281//27023 28358//27100 28356//27098 28279//27021 +f 28358//27100 28281//27023 28283//27025 28360//27102 +f 28359//27101 28358//27100 28360//27102 28361//27103 +f 23889//22630 23890//22631 28361//27103 28360//27102 +f 23808//22549 23889//22630 28360//27102 28283//27025 +f 23891//22632 23811//22552 28285//27027 28362//27104 +f 23893//22634 23891//22632 28362//27104 28363//27105 +f 28364//27106 28365//27107 28363//27105 28362//27104 +f 28287//27029 28364//27106 28362//27104 28285//27027 +f 28364//27106 28287//27029 28289//27031 28366//27108 +f 28365//27107 28364//27106 28366//27108 28367//27109 +f 28368//27110 28367//27109 28366//27108 28369//27111 +f 28291//27033 28369//27111 28366//27108 28289//27031 +f 28369//27111 28291//27033 28293//27035 28370//27112 +f 28368//27110 28369//27111 28370//27112 28371//27113 +f 28372//27114 28371//27113 28370//27112 28373//27115 +f 28295//27037 28373//27115 28370//27112 28293//27035 +f 28373//27115 28295//27037 28297//27039 28374//27116 +f 28373//27115 28374//27116 28375//27117 28372//27114 +f 28376//27118 28375//27117 28374//27116 28377//27119 +f 28299//27041 28377//27119 28374//27116 28297//27039 +f 28377//27119 28299//27041 28301//27043 28378//27120 +f 28376//27118 28377//27119 28378//27120 28379//27121 +f 28380//27122 28381//27123 28379//27121 28378//27120 +f 28303//27045 28380//27122 28378//27120 28301//27043 +f 28380//27122 28303//27045 28305//27047 28382//27124 +f 28381//27123 28380//27122 28382//27124 28383//27125 +f 28384//27126 28383//27125 28382//27124 28385//27127 +f 28307//27049 28385//27127 28382//27124 28305//27047 +f 28385//27127 28307//27049 28309//27051 28386//27128 +f 28384//27126 28385//27127 28386//27128 28387//27129 +f 28388//27130 28387//27129 28386//27128 28389//27131 +f 28311//27053 28389//27131 28386//27128 28309//27051 +f 28389//27131 28311//27053 28313//27055 28390//27132 +f 28389//27131 28390//27132 28391//27133 28388//27130 +f 28392//27134 28391//27133 28390//27132 28393//27135 +f 28315//27057 28393//27135 28390//27132 28313//27055 +f 28393//27135 28315//27057 28317//27059 28394//27136 +f 28392//27134 28393//27135 28394//27136 28395//27137 +f 28396//27138 28397//27139 28395//27137 28394//27136 +f 28319//27061 28396//27138 28394//27136 28317//27059 +f 28396//27138 28319//27061 28321//27063 28398//27140 +f 28397//27139 28396//27138 28398//27140 28399//27141 +f 28400//27142 28399//27141 28398//27140 28401//27143 +f 28323//27065 28401//27143 28398//27140 28321//27063 +f 28401//27143 28323//27065 28325//27067 28402//27144 +f 28400//27142 28401//27143 28402//27144 28403//27145 +f 28404//27146 28403//27145 28402//27144 28405//27147 +f 28327//27069 28405//27147 28402//27144 28325//27067 +f 28405//27147 28327//27069 28329//27071 28406//27148 +f 28405//27147 28406//27148 28407//27149 28404//27146 +f 28408//27150 28407//27149 28406//27148 28409//27151 +f 28331//27073 28409//27151 28406//27148 28329//27071 +f 28409//27151 28331//27073 28333//27075 28410//27152 +f 28408//27150 28409//27151 28410//27152 28411//27153 +f 28412//27154 28413//27155 28411//27153 28410//27152 +f 28335//27077 28412//27154 28410//27152 28333//27075 +f 28412//27154 28335//27077 28337//27079 28414//27156 +f 28413//27155 28412//27154 28414//27156 28415//27157 +f 28416//27158 28415//27157 28414//27156 28417//27159 +f 28339//27081 28417//27159 28414//27156 28337//27079 +f 28417//27159 28339//27081 28341//27083 28418//27160 +f 28416//27158 28417//27159 28418//27160 28419//27161 +f 28420//27162 28419//27161 28418//27160 28421//27163 +f 28343//27085 28421//27163 28418//27160 28341//27083 +f 28421//27163 28343//27085 28345//27087 28422//27164 +f 28421//27163 28422//27164 28423//27165 28420//27162 +f 28424//27166 28423//27165 28422//27164 28425//27167 +f 28347//27089 28425//27167 28422//27164 28345//27087 +f 28425//27167 28347//27089 28349//27091 28426//27168 +f 28424//27166 28425//27167 28426//27168 28427//27169 +f 28428//27170 28429//27171 28427//27169 28426//27168 +f 28351//27093 28428//27170 28426//27168 28349//27091 +f 28428//27170 28351//27093 28353//27095 28430//27172 +f 28429//27171 28428//27170 28430//27172 28431//27173 +f 28432//27174 28431//27173 28430//27172 28433//27175 +f 28355//27097 28433//27175 28430//27172 28353//27095 +f 28433//27175 28355//27097 28357//27099 28434//27176 +f 28432//27174 28433//27175 28434//27176 28435//27177 +f 28436//27178 28435//27177 28434//27176 28437//27179 +f 28359//27101 28437//27179 28434//27176 28357//27099 +f 28437//27179 28359//27101 28361//27103 28438//27180 +f 28437//27179 28438//27180 28439//27181 28436//27178 +f 23971//22712 28439//27181 28438//27180 23972//22713 +f 23890//22631 23972//22713 28438//27180 28361//27103 +f 23973//22714 23976//22717 28440//27182 28441//27183 +f 22922//21663 23973//22714 28441//27183 27454//26196 +f 28442//27184 27459//26201 27454//26196 28441//27183 +f 28443//27185 28442//27184 28441//27183 28440//27182 +f 28442//27184 28443//27185 28444//27186 28445//27187 +f 27459//26201 28442//27184 28445//27187 27460//26202 +f 28446//27188 27465//26207 27460//26202 28445//27187 +f 28447//27189 28446//27188 28445//27187 28444//27186 +f 28446//27188 28447//27189 28448//27190 28449//27191 +f 27465//26207 28446//27188 28449//27191 27466//26208 +f 28450//27192 27471//26213 27466//26208 28449//27191 +f 28451//27193 28450//27192 28449//27191 28448//27190 +f 28450//27192 28451//27193 28452//27194 28453//27195 +f 27471//26213 28450//27192 28453//27195 27472//26214 +f 28454//27196 27477//26219 27472//26214 28453//27195 +f 28455//27197 28454//27196 28453//27195 28452//27194 +f 28454//27196 28455//27197 28456//27198 28457//27199 +f 27477//26219 28454//27196 28457//27199 27478//26220 +f 28458//27200 27483//26225 27478//26220 28457//27199 +f 28459//27201 28458//27200 28457//27199 28456//27198 +f 28458//27200 28459//27201 28460//27202 28461//27203 +f 27483//26225 28458//27200 28461//27203 27484//26226 +f 28462//27204 27489//26231 27484//26226 28461//27203 +f 28463//27205 28462//27204 28461//27203 28460//27202 +f 28462//27204 28463//27205 28464//27206 28465//27207 +f 27489//26231 28462//27204 28465//27207 27490//26232 +f 28466//27208 27495//26237 27490//26232 28465//27207 +f 28467//27209 28466//27208 28465//27207 28464//27206 +f 28466//27208 28467//27209 28468//27210 28469//27211 +f 27495//26237 28466//27208 28469//27211 27496//26238 +f 28470//27212 27501//26243 27496//26238 28469//27211 +f 28471//27213 28470//27212 28469//27211 28468//27210 +f 28470//27212 28471//27213 28472//27214 28473//27215 +f 27501//26243 28470//27212 28473//27215 27502//26244 +f 28474//27216 27507//26249 27502//26244 28473//27215 +f 28475//27217 28474//27216 28473//27215 28472//27214 +f 28474//27216 28475//27217 28476//27218 28477//27219 +f 27507//26249 28474//27216 28477//27219 27508//26250 +f 28478//27220 27513//26255 27508//26250 28477//27219 +f 28479//27221 28478//27220 28477//27219 28476//27218 +f 28478//27220 28479//27221 28480//27222 28481//27223 +f 27513//26255 28478//27220 28481//27223 27514//26256 +f 28482//27224 27519//26261 27514//26256 28481//27223 +f 28483//27225 28482//27224 28481//27223 28480//27222 +f 28482//27224 28483//27225 28484//27226 28485//27227 +f 27519//26261 28482//27224 28485//27227 27520//26262 +f 28486//27228 27525//26267 27520//26262 28485//27227 +f 28487//27229 28486//27228 28485//27227 28484//27226 +f 28486//27228 28487//27229 28488//27230 28489//27231 +f 27525//26267 28486//27228 28489//27231 27526//26268 +f 28490//27232 27531//26273 27526//26268 28489//27231 +f 28491//27233 28490//27232 28489//27231 28488//27230 +f 28490//27232 28491//27233 28492//27234 28493//27235 +f 27531//26273 28490//27232 28493//27235 27532//26274 +f 28494//27236 27537//26279 27532//26274 28493//27235 +f 28495//27237 28494//27236 28493//27235 28492//27234 +f 28494//27236 28495//27237 28496//27238 28497//27239 +f 27537//26279 28494//27236 28497//27239 27538//26280 +f 28498//27240 27543//26285 27538//26280 28497//27239 +f 28499//27241 28498//27240 28497//27239 28496//27238 +f 28498//27240 28499//27241 28500//27242 28501//27243 +f 27543//26285 28498//27240 28501//27243 27544//26286 +f 28502//27244 27549//26291 27544//26286 28501//27243 +f 28503//27245 28502//27244 28501//27243 28500//27242 +f 28502//27244 28503//27245 28504//27246 28505//27247 +f 27549//26291 28502//27244 28505//27247 27550//26292 +f 28506//27248 27555//26297 27550//26292 28505//27247 +f 28507//27249 28506//27248 28505//27247 28504//27246 +f 28506//27248 28507//27249 28508//27250 28509//27251 +f 27555//26297 28506//27248 28509//27251 27556//26298 +f 28510//27252 27561//26303 27556//26298 28509//27251 +f 28511//27253 28510//27252 28509//27251 28508//27250 +f 28510//27252 28511//27253 28512//27254 28513//27255 +f 27561//26303 28510//27252 28513//27255 27562//26304 +f 28514//27256 27567//26309 27562//26304 28513//27255 +f 28515//27257 28514//27256 28513//27255 28512//27254 +f 28514//27256 28515//27257 28516//27258 28517//27259 +f 27567//26309 28514//27256 28517//27259 27568//26310 +f 24053//22794 23041//21782 27568//26310 28517//27259 +f 24054//22795 24053//22794 28517//27259 28516//27258 +f 24055//22796 24058//22799 28518//27260 28519//27261 +f 23976//22717 24055//22796 28519//27261 28440//27182 +f 28520//27262 28443//27185 28440//27182 28519//27261 +f 28521//27263 28520//27262 28519//27261 28518//27260 +f 28520//27262 28521//27263 28522//27264 28523//27265 +f 28443//27185 28520//27262 28523//27265 28444//27186 +f 28524//27266 28447//27189 28444//27186 28523//27265 +f 28525//27267 28524//27266 28523//27265 28522//27264 +f 28524//27266 28525//27267 28526//27268 28527//27269 +f 28447//27189 28524//27266 28527//27269 28448//27190 +f 28528//27270 28451//27193 28448//27190 28527//27269 +f 28529//27271 28528//27270 28527//27269 28526//27268 +f 28528//27270 28529//27271 28530//27272 28531//27273 +f 28451//27193 28528//27270 28531//27273 28452//27194 +f 28532//27274 28455//27197 28452//27194 28531//27273 +f 28533//27275 28532//27274 28531//27273 28530//27272 +f 28532//27274 28533//27275 28534//27276 28535//27277 +f 28455//27197 28532//27274 28535//27277 28456//27198 +f 28536//27278 28459//27201 28456//27198 28535//27277 +f 28537//27279 28536//27278 28535//27277 28534//27276 +f 28536//27278 28537//27279 28538//27280 28539//27281 +f 28459//27201 28536//27278 28539//27281 28460//27202 +f 28540//27282 28463//27205 28460//27202 28539//27281 +f 28541//27283 28540//27282 28539//27281 28538//27280 +f 28540//27282 28541//27283 28542//27284 28543//27285 +f 28463//27205 28540//27282 28543//27285 28464//27206 +f 28544//27286 28467//27209 28464//27206 28543//27285 +f 28545//27287 28544//27286 28543//27285 28542//27284 +f 28544//27286 28545//27287 28546//27288 28547//27289 +f 28467//27209 28544//27286 28547//27289 28468//27210 +f 28548//27290 28471//27213 28468//27210 28547//27289 +f 28549//27291 28548//27290 28547//27289 28546//27288 +f 28548//27290 28549//27291 28550//27292 28551//27293 +f 28471//27213 28548//27290 28551//27293 28472//27214 +f 28552//27294 28475//27217 28472//27214 28551//27293 +f 28553//27295 28552//27294 28551//27293 28550//27292 +f 28552//27294 28553//27295 28554//27296 28555//27297 +f 28475//27217 28552//27294 28555//27297 28476//27218 +f 28556//27298 28479//27221 28476//27218 28555//27297 +f 28557//27299 28556//27298 28555//27297 28554//27296 +f 28556//27298 28557//27299 28558//27300 28559//27301 +f 28479//27221 28556//27298 28559//27301 28480//27222 +f 28560//27302 28483//27225 28480//27222 28559//27301 +f 28561//27303 28560//27302 28559//27301 28558//27300 +f 28560//27302 28561//27303 28562//27304 28563//27305 +f 28483//27225 28560//27302 28563//27305 28484//27226 +f 28564//27306 28487//27229 28484//27226 28563//27305 +f 28565//27307 28564//27306 28563//27305 28562//27304 +f 28564//27306 28565//27307 28566//27308 28567//27309 +f 28487//27229 28564//27306 28567//27309 28488//27230 +f 28568//27310 28491//27233 28488//27230 28567//27309 +f 28569//27311 28568//27310 28567//27309 28566//27308 +f 28568//27310 28569//27311 28570//27312 28571//27313 +f 28491//27233 28568//27310 28571//27313 28492//27234 +f 28572//27314 28495//27237 28492//27234 28571//27313 +f 28573//27315 28572//27314 28571//27313 28570//27312 +f 28572//27314 28573//27315 28574//27316 28575//27317 +f 28495//27237 28572//27314 28575//27317 28496//27238 +f 28576//27318 28499//27241 28496//27238 28575//27317 +f 28577//27319 28576//27318 28575//27317 28574//27316 +f 28576//27318 28577//27319 28578//27320 28579//27321 +f 28499//27241 28576//27318 28579//27321 28500//27242 +f 28580//27322 28503//27245 28500//27242 28579//27321 +f 28581//27323 28580//27322 28579//27321 28578//27320 +f 28580//27322 28581//27323 28582//27324 28583//27325 +f 28503//27245 28580//27322 28583//27325 28504//27246 +f 28584//27326 28507//27249 28504//27246 28583//27325 +f 28585//27327 28584//27326 28583//27325 28582//27324 +f 28584//27326 28585//27327 28586//27328 28587//27329 +f 28507//27249 28584//27326 28587//27329 28508//27250 +f 28588//27330 28511//27253 28508//27250 28587//27329 +f 28589//27331 28588//27330 28587//27329 28586//27328 +f 28588//27330 28589//27331 28590//27332 28591//27333 +f 28511//27253 28588//27330 28591//27333 28512//27254 +f 28592//27334 28515//27257 28512//27254 28591//27333 +f 28593//27335 28592//27334 28591//27333 28590//27332 +f 28592//27334 28593//27335 28594//27336 28595//27337 +f 28515//27257 28592//27334 28595//27337 28516//27258 +f 24135//22876 24054//22795 28516//27258 28595//27337 +f 24136//22877 24135//22876 28595//27337 28594//27336 +f 24137//22878 22923//21664 27456//26198 28596//27338 +f 23045//21786 24137//22878 28596//27338 27571//26313 +f 28597//27339 27576//26318 27571//26313 28596//27338 +f 27458//26200 28597//27339 28596//27338 27456//26198 +f 28597//27339 27458//26200 27462//26204 28598//27340 +f 27576//26318 28597//27339 28598//27340 27577//26319 +f 28599//27341 27582//26324 27577//26319 28598//27340 +f 27464//26206 28599//27341 28598//27340 27462//26204 +f 28599//27341 27464//26206 27468//26210 28600//27342 +f 27582//26324 28599//27341 28600//27342 27583//26325 +f 28601//27343 27588//26330 27583//26325 28600//27342 +f 27470//26212 28601//27343 28600//27342 27468//26210 +f 28601//27343 27470//26212 27474//26216 28602//27344 +f 27588//26330 28601//27343 28602//27344 27589//26331 +f 28603//27345 27594//26336 27589//26331 28602//27344 +f 27476//26218 28603//27345 28602//27344 27474//26216 +f 28603//27345 27476//26218 27480//26222 28604//27346 +f 27594//26336 28603//27345 28604//27346 27595//26337 +f 28605//27347 27600//26342 27595//26337 28604//27346 +f 27482//26224 28605//27347 28604//27346 27480//26222 +f 28605//27347 27482//26224 27486//26228 28606//27348 +f 27600//26342 28605//27347 28606//27348 27601//26343 +f 28607//27349 27606//26348 27601//26343 28606//27348 +f 27488//26230 28607//27349 28606//27348 27486//26228 +f 28607//27349 27488//26230 27492//26234 28608//27350 +f 28607//27349 28608//27350 27607//26349 27606//26348 +f 27612//26354 27607//26349 28608//27350 28609//27351 +f 27494//26236 28609//27351 28608//27350 27492//26234 +f 28609//27351 27494//26236 27498//26240 28610//27352 +f 28609//27351 28610//27352 27613//26355 27612//26354 +f 27618//26360 27613//26355 28610//27352 28611//27353 +f 27500//26242 28611//27353 28610//27352 27498//26240 +f 28611//27353 27500//26242 27504//26246 28612//27354 +f 28611//27353 28612//27354 27619//26361 27618//26360 +f 27624//26366 27619//26361 28612//27354 28613//27355 +f 27506//26248 28613//27355 28612//27354 27504//26246 +f 28613//27355 27506//26248 27510//26252 28614//27356 +f 28613//27355 28614//27356 27625//26367 27624//26366 +f 28615//27357 27630//26372 27625//26367 28614//27356 +f 27512//26254 28615//27357 28614//27356 27510//26252 +f 28615//27357 27512//26254 27516//26258 28616//27358 +f 27630//26372 28615//27357 28616//27358 27631//26373 +f 28617//27359 27636//26378 27631//26373 28616//27358 +f 27518//26260 28617//27359 28616//27358 27516//26258 +f 28617//27359 27518//26260 27522//26264 28618//27360 +f 27636//26378 28617//27359 28618//27360 27637//26379 +f 28619//27361 27642//26384 27637//26379 28618//27360 +f 27524//26266 28619//27361 28618//27360 27522//26264 +f 28619//27361 27524//26266 27528//26270 28620//27362 +f 27642//26384 28619//27361 28620//27362 27643//26385 +f 28621//27363 27648//26390 27643//26385 28620//27362 +f 27530//26272 28621//27363 28620//27362 27528//26270 +f 28621//27363 27530//26272 27534//26276 28622//27364 +f 27648//26390 28621//27363 28622//27364 27649//26391 +f 28623//27365 27654//26396 27649//26391 28622//27364 +f 27536//26278 28623//27365 28622//27364 27534//26276 +f 28623//27365 27536//26278 27540//26282 28624//27366 +f 27654//26396 28623//27365 28624//27366 27655//26397 +f 28625//27367 27660//26402 27655//26397 28624//27366 +f 27542//26284 28625//27367 28624//27366 27540//26282 +f 28625//27367 27542//26284 27546//26288 28626//27368 +f 27660//26402 28625//27367 28626//27368 27661//26403 +f 28627//27369 27666//26408 27661//26403 28626//27368 +f 27548//26290 28627//27369 28626//27368 27546//26288 +f 28627//27369 27548//26290 27552//26294 28628//27370 +f 27666//26408 28627//27369 28628//27370 27667//26409 +f 28629//27371 27672//26414 27667//26409 28628//27370 +f 27554//26296 28629//27371 28628//27370 27552//26294 +f 28629//27371 27554//26296 27558//26300 28630//27372 +f 27672//26414 28629//27371 28630//27372 27673//26415 +f 28631//27373 27678//26420 27673//26415 28630//27372 +f 27560//26302 28631//27373 28630//27372 27558//26300 +f 28631//27373 27560//26302 27564//26306 28632//27374 +f 27678//26420 28631//27373 28632//27374 27679//26421 +f 28633//27375 27684//26426 27679//26421 28632//27374 +f 27566//26308 28633//27375 28632//27374 27564//26306 +f 28633//27375 27566//26308 27570//26312 28634//27376 +f 27684//26426 28633//27375 28634//27376 27685//26427 +f 24177//22918 23164//21905 27685//26427 28634//27376 +f 23040//21781 24177//22918 28634//27376 27570//26312 +f 24178//22919 24181//22922 28635//27377 28636//27378 +f 24058//22799 24178//22919 28636//27378 28518//27260 +f 28637//27379 28521//27263 28518//27260 28636//27378 +f 28638//27380 28637//27379 28636//27378 28635//27377 +f 28637//27379 28638//27380 28639//27381 28640//27382 +f 28521//27263 28637//27379 28640//27382 28522//27264 +f 28641//27383 28525//27267 28522//27264 28640//27382 +f 28642//27384 28641//27383 28640//27382 28639//27381 +f 28641//27383 28642//27384 28643//27385 28644//27386 +f 28525//27267 28641//27383 28644//27386 28526//27268 +f 28645//27387 28529//27271 28526//27268 28644//27386 +f 28646//27388 28645//27387 28644//27386 28643//27385 +f 28645//27387 28646//27388 28647//27389 28648//27390 +f 28529//27271 28645//27387 28648//27390 28530//27272 +f 28649//27391 28533//27275 28530//27272 28648//27390 +f 28650//27392 28649//27391 28648//27390 28647//27389 +f 28649//27391 28650//27392 28651//27393 28652//27394 +f 28533//27275 28649//27391 28652//27394 28534//27276 +f 28653//27395 28537//27279 28534//27276 28652//27394 +f 28654//27396 28653//27395 28652//27394 28651//27393 +f 28653//27395 28654//27396 28655//27397 28656//27398 +f 28537//27279 28653//27395 28656//27398 28538//27280 +f 28657//27399 28541//27283 28538//27280 28656//27398 +f 28658//27400 28657//27399 28656//27398 28655//27397 +f 28657//27399 28658//27400 28659//27401 28660//27402 +f 28541//27283 28657//27399 28660//27402 28542//27284 +f 28661//27403 28545//27287 28542//27284 28660//27402 +f 28662//27404 28661//27403 28660//27402 28659//27401 +f 28661//27403 28662//27404 28663//27405 28664//27406 +f 28545//27287 28661//27403 28664//27406 28546//27288 +f 28665//27407 28549//27291 28546//27288 28664//27406 +f 28666//27408 28665//27407 28664//27406 28663//27405 +f 28665//27407 28666//27408 28667//27409 28668//27410 +f 28549//27291 28665//27407 28668//27410 28550//27292 +f 28669//27411 28553//27295 28550//27292 28668//27410 +f 28670//27412 28669//27411 28668//27410 28667//27409 +f 28669//27411 28670//27412 28671//27413 28672//27414 +f 28553//27295 28669//27411 28672//27414 28554//27296 +f 28673//27415 28557//27299 28554//27296 28672//27414 +f 28674//27416 28673//27415 28672//27414 28671//27413 +f 28673//27415 28674//27416 28675//27417 28676//27418 +f 28557//27299 28673//27415 28676//27418 28558//27300 +f 28677//27419 28561//27303 28558//27300 28676//27418 +f 28678//27420 28677//27419 28676//27418 28675//27417 +f 28677//27419 28678//27420 28679//27421 28680//27422 +f 28561//27303 28677//27419 28680//27422 28562//27304 +f 28681//27423 28565//27307 28562//27304 28680//27422 +f 28682//27424 28681//27423 28680//27422 28679//27421 +f 28681//27423 28682//27424 28683//27425 28684//27426 +f 28565//27307 28681//27423 28684//27426 28566//27308 +f 28685//27427 28569//27311 28566//27308 28684//27426 +f 28686//27428 28685//27427 28684//27426 28683//27425 +f 28685//27427 28686//27428 28687//27429 28688//27430 +f 28569//27311 28685//27427 28688//27430 28570//27312 +f 28689//27431 28573//27315 28570//27312 28688//27430 +f 28690//27432 28689//27431 28688//27430 28687//27429 +f 28689//27431 28690//27432 28691//27433 28692//27434 +f 28573//27315 28689//27431 28692//27434 28574//27316 +f 28693//27435 28577//27319 28574//27316 28692//27434 +f 28694//27436 28693//27435 28692//27434 28691//27433 +f 28693//27435 28694//27436 28695//27437 28696//27438 +f 28577//27319 28693//27435 28696//27438 28578//27320 +f 28697//27439 28581//27323 28578//27320 28696//27438 +f 28698//27440 28697//27439 28696//27438 28695//27437 +f 28697//27439 28698//27440 28699//27441 28700//27442 +f 28581//27323 28697//27439 28700//27442 28582//27324 +f 28701//27443 28585//27327 28582//27324 28700//27442 +f 28702//27444 28701//27443 28700//27442 28699//27441 +f 28701//27443 28702//27444 28703//27445 28704//27446 +f 28585//27327 28701//27443 28704//27446 28586//27328 +f 28705//27447 28589//27331 28586//27328 28704//27446 +f 28706//27448 28705//27447 28704//27446 28703//27445 +f 28705//27447 28706//27448 28707//27449 28708//27450 +f 28589//27331 28705//27447 28708//27450 28590//27332 +f 28709//27451 28593//27335 28590//27332 28708//27450 +f 28710//27452 28709//27451 28708//27450 28707//27449 +f 28709//27451 28710//27452 28711//27453 28712//27454 +f 28593//27335 28709//27451 28712//27454 28594//27336 +f 24258//22999 24136//22877 28594//27336 28712//27454 +f 24259//23000 24258//22999 28712//27454 28711//27453 +f 24260//23001 22800//21538 27339//26081 28713//27455 +f 24181//22922 24260//23001 28713//27455 28635//27377 +f 28714//27456 28638//27380 28635//27377 28713//27455 +f 27341//26083 28714//27456 28713//27455 27339//26081 +f 28714//27456 27341//26083 27345//26087 28715//27457 +f 28638//27380 28714//27456 28715//27457 28639//27381 +f 28716//27458 28642//27384 28639//27381 28715//27457 +f 27347//26089 28716//27458 28715//27457 27345//26087 +f 28716//27458 27347//26089 27351//26093 28717//27459 +f 28642//27384 28716//27458 28717//27459 28643//27385 +f 28718//27460 28646//27388 28643//27385 28717//27459 +f 27353//26095 28718//27460 28717//27459 27351//26093 +f 28718//27460 27353//26095 27357//26099 28719//27461 +f 28646//27388 28718//27460 28719//27461 28647//27389 +f 28720//27462 28650//27392 28647//27389 28719//27461 +f 27359//26101 28720//27462 28719//27461 27357//26099 +f 28720//27462 27359//26101 27363//26105 28721//27463 +f 28650//27392 28720//27462 28721//27463 28651//27393 +f 28722//27464 28654//27396 28651//27393 28721//27463 +f 27365//26107 28722//27464 28721//27463 27363//26105 +f 28722//27464 27365//26107 27369//26111 28723//27465 +f 28654//27396 28722//27464 28723//27465 28655//27397 +f 28724//27466 28658//27400 28655//27397 28723//27465 +f 27371//26113 28724//27466 28723//27465 27369//26111 +f 28724//27466 27371//26113 27375//26117 28725//27467 +f 28658//27400 28724//27466 28725//27467 28659//27401 +f 28726//27468 28662//27404 28659//27401 28725//27467 +f 27377//26119 28726//27468 28725//27467 27375//26117 +f 28726//27468 27377//26119 27381//26123 28727//27469 +f 28662//27404 28726//27468 28727//27469 28663//27405 +f 28728//27470 28666//27408 28663//27405 28727//27469 +f 27383//26125 28728//27470 28727//27469 27381//26123 +f 28728//27470 27383//26125 27387//26129 28729//27471 +f 28666//27408 28728//27470 28729//27471 28667//27409 +f 28730//27472 28670//27412 28667//27409 28729//27471 +f 27389//26131 28730//27472 28729//27471 27387//26129 +f 28730//27472 27389//26131 27393//26135 28731//27473 +f 28670//27412 28730//27472 28731//27473 28671//27413 +f 28732//27474 28674//27416 28671//27413 28731//27473 +f 27395//26137 28732//27474 28731//27473 27393//26135 +f 28732//27474 27395//26137 27399//26141 28733//27475 +f 28674//27416 28732//27474 28733//27475 28675//27417 +f 28734//27476 28678//27420 28675//27417 28733//27475 +f 27401//26143 28734//27476 28733//27475 27399//26141 +f 28734//27476 27401//26143 27405//26147 28735//27477 +f 28678//27420 28734//27476 28735//27477 28679//27421 +f 28736//27478 28682//27424 28679//27421 28735//27477 +f 27407//26149 28736//27478 28735//27477 27405//26147 +f 28736//27478 27407//26149 27411//26153 28737//27479 +f 28682//27424 28736//27478 28737//27479 28683//27425 +f 28738//27480 28686//27428 28683//27425 28737//27479 +f 27413//26155 28738//27480 28737//27479 27411//26153 +f 28738//27480 27413//26155 27417//26159 28739//27481 +f 28686//27428 28738//27480 28739//27481 28687//27429 +f 28740//27482 28690//27432 28687//27429 28739//27481 +f 27419//26161 28740//27482 28739//27481 27417//26159 +f 28740//27482 27419//26161 27423//26165 28741//27483 +f 28690//27432 28740//27482 28741//27483 28691//27433 +f 28742//27484 28694//27436 28691//27433 28741//27483 +f 27425//26167 28742//27484 28741//27483 27423//26165 +f 28742//27484 27425//26167 27429//26171 28743//27485 +f 28694//27436 28742//27484 28743//27485 28695//27437 +f 28744//27486 28698//27440 28695//27437 28743//27485 +f 27431//26173 28744//27486 28743//27485 27429//26171 +f 28744//27486 27431//26173 27435//26177 28745//27487 +f 28698//27440 28744//27486 28745//27487 28699//27441 +f 28746//27488 28702//27444 28699//27441 28745//27487 +f 27437//26179 28746//27488 28745//27487 27435//26177 +f 28746//27488 27437//26179 27441//26183 28747//27489 +f 28702//27444 28746//27488 28747//27489 28703//27445 +f 28748//27490 28706//27448 28703//27445 28747//27489 +f 27443//26185 28748//27490 28747//27489 27441//26183 +f 28748//27490 27443//26185 27447//26189 28749//27491 +f 28706//27448 28748//27490 28749//27491 28707//27449 +f 28750//27492 28710//27452 28707//27449 28749//27491 +f 27449//26191 28750//27492 28749//27491 27447//26189 +f 28750//27492 27449//26191 27453//26195 28751//27493 +f 28710//27452 28750//27492 28751//27493 28711//27453 +f 24300//23041 24259//23000 28711//27453 28751//27493 +f 22917//21658 24300//23041 28751//27493 27453//26195 +f 27337//26079 22799//23044 24302//23043 28752//27494 +f 27342//26084 27337//26079 28752//27494 28753//27495 +f 28754//27496 28755//27497 28753//27495 28752//27494 +f 24306//23048 28754//27496 28752//27494 24302//23043 +f 27343//26085 27342//26084 28753//27495 28756//27498 +f 27348//26090 27343//26085 28756//27498 28757//27499 +f 28758//27500 28759//27501 28757//27499 28756//27498 +f 28755//27497 28758//27500 28756//27498 28753//27495 +f 27349//26091 27348//26090 28757//27499 28760//27502 +f 27354//26096 27349//26091 28760//27502 28761//27503 +f 28762//27504 28763//27505 28761//27503 28760//27502 +f 28759//27501 28762//27504 28760//27502 28757//27499 +f 27355//26097 27354//26096 28761//27503 28764//27506 +f 27360//26102 27355//26097 28764//27506 28765//27507 +f 28766//27508 28767//27509 28765//27507 28764//27506 +f 28763//27505 28766//27508 28764//27506 28761//27503 +f 27361//26103 27360//26102 28765//27507 28768//27510 +f 27366//26108 27361//26103 28768//27510 28769//27511 +f 28770//27512 28771//27513 28769//27511 28768//27510 +f 28767//27509 28770//27512 28768//27510 28765//27507 +f 27367//26109 27366//26108 28769//27511 28772//27514 +f 27372//26114 27367//26109 28772//27514 28773//27515 +f 28774//27516 28775//27517 28773//27515 28772//27514 +f 28771//27513 28774//27516 28772//27514 28769//27511 +f 27373//26115 27372//26114 28773//27515 28776//27518 +f 27378//26120 27373//26115 28776//27518 28777//27519 +f 28778//27520 28779//27521 28777//27519 28776//27518 +f 28775//27517 28778//27520 28776//27518 28773//27515 +f 27379//26121 27378//26120 28777//27519 28780//27522 +f 27384//26126 27379//26121 28780//27522 28781//27523 +f 28782//27524 28783//27525 28781//27523 28780//27522 +f 28779//27521 28782//27524 28780//27522 28777//27519 +f 27385//26127 27384//26126 28781//27523 28784//27526 +f 27390//26132 27385//26127 28784//27526 28785//27527 +f 28786//27528 28787//27529 28785//27527 28784//27526 +f 28783//27525 28786//27528 28784//27526 28781//27523 +f 27391//26133 27390//26132 28785//27527 28788//27530 +f 27396//26138 27391//26133 28788//27530 28789//27531 +f 28790//27532 28791//27533 28789//27531 28788//27530 +f 28787//27529 28790//27532 28788//27530 28785//27527 +f 27397//26139 27396//26138 28789//27531 28792//27534 +f 27402//26144 27397//26139 28792//27534 28793//27535 +f 28794//27536 28795//27537 28793//27535 28792//27534 +f 28791//27533 28794//27536 28792//27534 28789//27531 +f 27403//26145 27402//26144 28793//27535 28796//27538 +f 27408//26150 27403//26145 28796//27538 28797//27539 +f 28798//27540 28799//27541 28797//27539 28796//27538 +f 28795//27537 28798//27540 28796//27538 28793//27535 +f 27409//26151 27408//26150 28797//27539 28800//27542 +f 27414//26156 27409//26151 28800//27542 28801//27543 +f 28802//27544 28803//27545 28801//27543 28800//27542 +f 28799//27541 28802//27544 28800//27542 28797//27539 +f 27415//26157 27414//26156 28801//27543 28804//27546 +f 27420//26162 27415//26157 28804//27546 28805//27547 +f 28806//27548 28807//27549 28805//27547 28804//27546 +f 28803//27545 28806//27548 28804//27546 28801//27543 +f 27421//26163 27420//26162 28805//27547 28808//27550 +f 27426//26168 27421//26163 28808//27550 28809//27551 +f 28810//27552 28811//27553 28809//27551 28808//27550 +f 28807//27549 28810//27552 28808//27550 28805//27547 +f 27427//26169 27426//26168 28809//27551 28812//27554 +f 27432//26174 27427//26169 28812//27554 28813//27555 +f 28814//27556 28815//27557 28813//27555 28812//27554 +f 28811//27553 28814//27556 28812//27554 28809//27551 +f 27433//26175 27432//26174 28813//27555 28816//27558 +f 27438//26180 27433//26175 28816//27558 28817//27559 +f 28818//27560 28819//27561 28817//27559 28816//27558 +f 28815//27557 28818//27560 28816//27558 28813//27555 +f 27439//26181 27438//26180 28817//27559 28820//27562 +f 27444//26186 27439//26181 28820//27562 28821//27563 +f 28822//27564 28823//27565 28821//27563 28820//27562 +f 28819//27561 28822//27564 28820//27562 28817//27559 +f 27445//26187 27444//26186 28821//27563 28824//27566 +f 27450//26192 27445//26187 28824//27566 28825//27567 +f 28826//27568 28827//27569 28825//27567 28824//27566 +f 28823//27565 28826//27568 28824//27566 28821//27563 +f 27451//26193 27450//26192 28825//27567 28828//27570 +f 22918//21659 27451//26193 28828//27570 24380//23122 +f 28829//27571 24382//23124 24380//23122 28828//27570 +f 28827//27569 28829//27571 28828//27570 28825//27567 +f 28754//27496 24306//23048 24384//23126 28830//27572 +f 28755//27497 28754//27496 28830//27572 28831//27573 +f 28832//27574 28833//27575 28831//27573 28830//27572 +f 24388//23130 28832//27574 28830//27572 24384//23126 +f 28758//27500 28755//27497 28831//27573 28834//27576 +f 28759//27501 28758//27500 28834//27576 28835//27577 +f 28836//27578 28837//27579 28835//27577 28834//27576 +f 28833//27575 28836//27578 28834//27576 28831//27573 +f 28762//27504 28759//27501 28835//27577 28838//27580 +f 28763//27505 28762//27504 28838//27580 28839//27581 +f 28840//27582 28841//27583 28839//27581 28838//27580 +f 28837//27579 28840//27582 28838//27580 28835//27577 +f 28766//27508 28763//27505 28839//27581 28842//27584 +f 28767//27509 28766//27508 28842//27584 28843//27585 +f 28844//27586 28845//27587 28843//27585 28842//27584 +f 28841//27583 28844//27586 28842//27584 28839//27581 +f 28770//27512 28767//27509 28843//27585 28846//27588 +f 28771//27513 28770//27512 28846//27588 28847//27589 +f 28848//27590 28849//27591 28847//27589 28846//27588 +f 28845//27587 28848//27590 28846//27588 28843//27585 +f 28774//27516 28771//27513 28847//27589 28850//27592 +f 28775//27517 28774//27516 28850//27592 28851//27593 +f 28852//27594 28853//27595 28851//27593 28850//27592 +f 28849//27591 28852//27594 28850//27592 28847//27589 +f 28778//27520 28775//27517 28851//27593 28854//27596 +f 28779//27521 28778//27520 28854//27596 28855//27597 +f 28856//27598 28857//27599 28855//27597 28854//27596 +f 28853//27595 28856//27598 28854//27596 28851//27593 +f 28782//27524 28779//27521 28855//27597 28858//27600 +f 28783//27525 28782//27524 28858//27600 28859//27601 +f 28860//27602 28861//27603 28859//27601 28858//27600 +f 28857//27599 28860//27602 28858//27600 28855//27597 +f 28786//27528 28783//27525 28859//27601 28862//27604 +f 28787//27529 28786//27528 28862//27604 28863//27605 +f 28864//27606 28865//27607 28863//27605 28862//27604 +f 28861//27603 28864//27606 28862//27604 28859//27601 +f 28790//27532 28787//27529 28863//27605 28866//27608 +f 28791//27533 28790//27532 28866//27608 28867//27609 +f 28868//27610 28869//27611 28867//27609 28866//27608 +f 28865//27607 28868//27610 28866//27608 28863//27605 +f 28794//27536 28791//27533 28867//27609 28870//27612 +f 28795//27537 28794//27536 28870//27612 28871//27613 +f 28872//27614 28873//27615 28871//27613 28870//27612 +f 28869//27611 28872//27614 28870//27612 28867//27609 +f 28798//27540 28795//27537 28871//27613 28874//27616 +f 28799//27541 28798//27540 28874//27616 28875//27617 +f 28876//27618 28877//27619 28875//27617 28874//27616 +f 28873//27615 28876//27618 28874//27616 28871//27613 +f 28802//27544 28799//27541 28875//27617 28878//27620 +f 28803//27545 28802//27544 28878//27620 28879//27621 +f 28880//27622 28881//27623 28879//27621 28878//27620 +f 28877//27619 28880//27622 28878//27620 28875//27617 +f 28806//27548 28803//27545 28879//27621 28882//27624 +f 28807//27549 28806//27548 28882//27624 28883//27625 +f 28884//27626 28885//27627 28883//27625 28882//27624 +f 28881//27623 28884//27626 28882//27624 28879//27621 +f 28810//27552 28807//27549 28883//27625 28886//27628 +f 28811//27553 28810//27552 28886//27628 28887//27629 +f 28888//27630 28889//27631 28887//27629 28886//27628 +f 28885//27627 28888//27630 28886//27628 28883//27625 +f 28814//27556 28811//27553 28887//27629 28890//27632 +f 28815//27557 28814//27556 28890//27632 28891//27633 +f 28892//27634 28893//27635 28891//27633 28890//27632 +f 28889//27631 28892//27634 28890//27632 28887//27629 +f 28818//27560 28815//27557 28891//27633 28894//27636 +f 28819//27561 28818//27560 28894//27636 28895//27637 +f 28896//27638 28897//27639 28895//27637 28894//27636 +f 28893//27635 28896//27638 28894//27636 28891//27633 +f 28822//27564 28819//27561 28895//27637 28898//27640 +f 28823//27565 28822//27564 28898//27640 28899//27641 +f 28900//27642 28901//27643 28899//27641 28898//27640 +f 28897//27639 28900//27642 28898//27640 28895//27637 +f 28826//27568 28823//27565 28899//27641 28902//27644 +f 28827//27569 28826//27568 28902//27644 28903//27645 +f 28904//27646 28905//27647 28903//27645 28902//27644 +f 28901//27643 28904//27646 28902//27644 28899//27641 +f 28829//27571 28827//27569 28903//27645 28906//27648 +f 24382//23124 28829//27571 28906//27648 24462//23204 +f 28907//27649 24464//23206 24462//23204 28906//27648 +f 28905//27647 28907//27649 28906//27648 28903//27645 +f 28908//27650 28909//27651 28910//27652 28911//27653 +f 28911//27653 28910//27652 28912//27654 28913//27655 +f 28914//27656 28912//27654 28910//27652 28915//27657 +f 28915//27657 28910//27652 28909//27651 28916//27658 +f 28916//27658 28917//27659 28918//27660 28915//27657 +f 28915//27657 28918//27660 28919//27661 28914//27656 +f 28920//27662 28081//26823 28919//27661 28918//27660 +f 28920//27662 28918//27660 28917//27659 28921//27663 +f 28920//27662 28921//27663 28922//27664 28923//27665 +f 28081//26823 28920//27662 28923//27665 28924//27666 +f 28925//27667 28926//27668 28924//27666 28923//27665 +f 28927//27669 28925//27667 28923//27665 28922//27664 +f 28925//27667 28927//27669 28928//27670 28929//27671 +f 28926//27668 28925//27667 28929//27671 28930//27672 +f 28931//27673 28139//26881 28930//27672 28929//27671 +f 28932//27674 28931//27673 28929//27671 28928//27670 +f 28931//27673 28932//27674 28933//27675 28934//27676 +f 28139//26881 28931//27673 28934//27676 28140//26882 +f 28935//27677 28146//26888 28140//26882 28934//27676 +f 28936//27678 28935//27677 28934//27676 28933//27675 +f 28937//27679 28938//27680 28939//27681 28940//27682 +f 28940//27682 28939//27681 28159//26901 28158//26900 +f 28164//26906 28159//26901 28939//27681 28941//27683 +f 28941//27683 28939//27681 28938//27680 28942//27684 +f 28164//26906 28943//27685 28944//27686 28163//26905 +f 28163//26905 28944//27686 28945//27687 28162//26904 +f 28165//26907 28945//27687 28944//27686 28946//27688 +f 28946//27688 28944//27686 28943//27685 28947//27689 +f 28947//27689 28948//27690 28949//27691 28946//27688 +f 28946//27688 28949//27691 28166//26908 28165//26907 +f 28087//26829 28166//26908 28949//27691 28085//26827 +f 28085//26827 28949//27691 28948//27690 28082//26824 +f 28083//26825 28082//26824 28950//27692 28951//27693 +f 28039//26781 28083//26825 28951//27693 28037//26779 +f 28952//27694 27997//26739 28037//26779 28951//27693 +f 28953//27695 28952//27694 28951//27693 28950//27692 +f 28952//27694 28953//27695 28954//27696 28955//27697 +f 27997//26739 28952//27694 28955//27697 27998//26740 +f 28956//27698 27957//26699 27998//26740 28955//27697 +f 28957//27699 28956//27698 28955//27697 28954//27696 +f 28958//27700 28959//27701 28960//27702 28961//27703 +f 28957//27699 28958//27700 28961//27703 28962//27704 +f 28963//27705 28964//27706 28962//27704 28961//27703 +f 28965//27707 28963//27705 28961//27703 28960//27702 +f 28966//27708 28967//27709 28968//27710 28969//27711 +f 28969//27711 28968//27710 28970//27712 28971//27713 +f 28972//27714 28970//27712 28968//27710 28973//27715 +f 28973//27715 28968//27710 28967//27709 28974//27716 +f 28972//27714 28975//27717 28976//27718 28977//27719 +f 28977//27719 28976//27718 27796//26538 27798//26540 +f 27758//26500 27796//26538 28976//27718 28978//27720 +f 28978//27720 28976//27718 28975//27717 28979//27721 +f 28979//27721 28980//27722 28981//27723 28978//27720 +f 28978//27720 28981//27723 27756//26498 27758//26500 +f 27717//26459 27756//26498 28981//27723 27715//26457 +f 27715//26457 28981//27723 28980//27722 27714//26456 +f 27712//26454 27714//26456 28982//27724 28983//27725 +f 27653//26395 27712//26454 28983//27725 27651//26393 +f 28984//27726 27647//26389 27651//26393 28983//27725 +f 28985//27727 28984//27726 28983//27725 28982//27724 +f 28986//27728 28987//27729 28988//27730 28989//27731 +f 28989//27731 28988//27730 27609//26351 27610//26352 +f 27604//26346 27609//26351 28988//27730 27711//26453 +f 27711//26453 28988//27730 28987//27729 27710//26452 +f 27709//26451 27710//26452 28990//27732 28991//27733 +f 27706//26448 27709//26451 28991//27733 27755//26497 +f 28992//27734 27754//26496 27755//26497 28991//27733 +f 28993//27735 28992//27734 28991//27733 28990//27732 +f 28994//27736 28995//27737 28996//27738 28997//27739 +f 28998//27740 28994//27736 28997//27739 28999//27741 +f 29000//27742 29001//27743 28999//27741 28997//27739 +f 29002//27744 29000//27742 28997//27739 28996//27738 +f 29003//27745 29004//27746 29005//27747 29006//27748 +f 29006//27748 29005//27747 28996//27738 28995//27737 +f 29007//27749 29002//27744 28996//27738 29005//27747 +f 29007//27749 29005//27747 29004//27746 29008//27750 +f 29009//27751 29010//27752 29011//27753 29012//27754 +f 29012//27754 29011//27753 29013//27755 29014//27756 +f 29015//27757 29016//27758 29013//27755 29011//27753 +f 29015//27757 29011//27753 29010//27752 29017//27759 +f 29018//27760 29019//27761 29020//27762 29021//27763 +f 28966//27708 29018//27760 29021//27763 29022//27764 +f 29023//27765 29024//27766 29022//27764 29021//27763 +f 29025//27767 29023//27765 29021//27763 29020//27762 +f 29026//27768 29014//27756 29013//27755 29027//27769 +f 29028//27770 29026//27768 29027//27769 29029//27771 +f 29030//27772 29031//27773 29029//27771 29027//27769 +f 29016//27758 29030//27772 29027//27769 29013//27755 +f 28965//27707 29032//27774 29033//27775 29034//27776 +f 29019//27761 29034//27776 29033//27775 29020//27762 +f 29035//27777 29025//27767 29020//27762 29033//27775 +f 29036//27778 29035//27777 29033//27775 29032//27774 +f 28936//27678 29037//27779 29038//27780 29039//27781 +f 29039//27781 29038//27780 29040//27782 29041//27783 +f 29042//27784 29043//27785 29040//27782 29038//27780 +f 29044//27786 29042//27784 29038//27780 29037//27779 +f 29045//27787 29041//27783 29040//27782 29046//27788 +f 28937//27679 29045//27787 29046//27788 29047//27789 +f 29048//27790 29049//27791 29047//27789 29046//27788 +f 29043//27785 29048//27790 29046//27788 29040//27782 +f 29050//27792 29028//27770 29029//27771 29051//27793 +f 28908//27650 29050//27792 29051//27793 29052//27794 +f 29053//27795 29054//27796 29052//27794 29051//27793 +f 29031//27773 29053//27795 29051//27793 29029//27771 +f 28909//27651 28908//27650 29052//27794 29055//27797 +f 28916//27658 28909//27651 29055//27797 29056//27798 +f 29057//27799 29058//27800 29056//27798 29055//27797 +f 29054//27796 29057//27799 29055//27797 29052//27794 +f 28917//27659 28916//27658 29056//27798 29059//27801 +f 28921//27663 28917//27659 29059//27801 29060//27802 +f 29061//27803 29062//27804 29060//27802 29059//27801 +f 29058//27800 29061//27803 29059//27801 29056//27798 +f 28921//27663 29060//27802 29063//27805 28922//27664 +f 28922//27664 29063//27805 29064//27806 28927//27669 +f 29065//27807 29064//27806 29063//27805 29066//27808 +f 29066//27808 29063//27805 29060//27802 29062//27804 +f 28927//27669 29064//27806 29067//27809 28928//27670 +f 28928//27670 29067//27809 29068//27810 28932//27674 +f 29069//27811 29068//27810 29067//27809 29070//27812 +f 29070//27812 29067//27809 29064//27806 29065//27807 +f 28932//27674 29068//27810 29071//27813 28933//27675 +f 28933//27675 29071//27813 29037//27779 28936//27678 +f 29072//27814 29044//27786 29037//27779 29071//27813 +f 29072//27814 29071//27813 29068//27810 29069//27811 +f 28938//27680 28937//27679 29047//27789 29073//27815 +f 28942//27684 28938//27680 29073//27815 29074//27816 +f 29075//27817 29076//27818 29074//27816 29073//27815 +f 29049//27791 29075//27817 29073//27815 29047//27789 +f 29077//27819 28942//27684 29074//27816 29078//27820 +f 29079//27821 29077//27819 29078//27820 29080//27822 +f 29081//27823 29082//27824 29080//27822 29078//27820 +f 29076//27818 29081//27823 29078//27820 29074//27816 +f 29083//27825 29079//27821 29080//27822 29084//27826 +f 29085//27827 29083//27825 29084//27826 29086//27828 +f 29087//27829 29088//27830 29086//27828 29084//27826 +f 29082//27824 29087//27829 29084//27826 29080//27822 +f 29089//27831 29085//27827 29086//27828 29090//27832 +f 29089//27831 29090//27832 29091//27833 29092//27834 +f 29093//27835 29094//27836 29091//27833 29090//27832 +f 29088//27830 29093//27835 29090//27832 29086//27828 +f 29092//27834 29091//27833 29095//27837 29096//27838 +f 29096//27838 29095//27837 29097//27839 28959//27701 +f 29098//27840 29099//27841 29097//27839 29095//27837 +f 29094//27836 29098//27840 29095//27837 29091//27833 +f 28959//27701 29097//27839 29100//27842 28960//27702 +f 28960//27702 29100//27842 29032//27774 28965//27707 +f 29101//27843 29036//27778 29032//27774 29100//27842 +f 29099//27841 29101//27843 29100//27842 29097//27839 +f 28967//27709 28966//27708 29022//27764 29102//27844 +f 28974//27716 28967//27709 29102//27844 29103//27845 +f 29104//27846 29105//27847 29103//27845 29102//27844 +f 29024//27766 29104//27846 29102//27844 29022//27764 +f 29106//27848 28974//27716 29103//27845 29107//27849 +f 29108//27850 29106//27848 29107//27849 29109//27851 +f 29110//27852 29111//27853 29109//27851 29107//27849 +f 29105//27847 29110//27852 29107//27849 29103//27845 +f 29112//27854 29108//27850 29109//27851 29113//27855 +f 29114//27856 29112//27854 29113//27855 29115//27857 +f 29116//27858 29117//27859 29115//27857 29113//27855 +f 29111//27853 29116//27858 29113//27855 29109//27851 +f 29114//27856 29115//27857 29118//27860 29119//27861 +f 29119//27861 29118//27860 29120//27862 29121//27863 +f 29122//27864 29120//27862 29118//27860 29123//27865 +f 29123//27865 29118//27860 29115//27857 29117//27859 +f 29121//27863 29120//27862 29124//27866 29125//27867 +f 29125//27867 29124//27866 29126//27868 29127//27869 +f 29128//27870 29126//27868 29124//27866 29129//27871 +f 29129//27871 29124//27866 29120//27862 29122//27864 +f 29127//27869 29126//27868 29130//27872 29131//27873 +f 29131//27873 29130//27872 29004//27746 29003//27745 +f 29008//27750 29004//27746 29130//27872 29132//27874 +f 29132//27874 29130//27872 29126//27868 29128//27870 +f 29133//27875 28998//27740 28999//27741 29134//27876 +f 29135//27877 29133//27875 29134//27876 29136//27878 +f 29137//27879 29138//27880 29136//27878 29134//27876 +f 29001//27743 29137//27879 29134//27876 28999//27741 +f 29139//27881 29135//27877 29136//27878 29140//27882 +f 29141//27883 29139//27881 29140//27882 29142//27884 +f 29143//27885 29144//27886 29142//27884 29140//27882 +f 29138//27880 29143//27885 29140//27882 29136//27878 +f 29145//27887 29141//27883 29142//27884 29146//27888 +f 29147//27889 29145//27887 29146//27888 29148//27890 +f 29149//27891 29150//27892 29148//27890 29146//27888 +f 29144//27886 29149//27891 29146//27888 29142//27884 +f 29147//27889 29148//27890 29151//27893 29152//27894 +f 29152//27894 29151//27893 29153//27895 29154//27896 +f 29155//27897 29153//27895 29151//27893 29156//27898 +f 29156//27898 29151//27893 29148//27890 29150//27892 +f 29154//27896 29153//27895 29157//27899 29158//27900 +f 29158//27900 29157//27899 29159//27901 29160//27902 +f 29161//27903 29159//27901 29157//27899 29162//27904 +f 29162//27904 29157//27899 29153//27895 29155//27897 +f 29160//27902 29159//27901 29163//27905 29164//27906 +f 29164//27906 29163//27905 29010//27752 29009//27751 +f 29017//27759 29010//27752 29163//27905 29165//27907 +f 29165//27907 29163//27905 29159//27901 29161//27903 +f 29166//27908 29001//27743 29000//27742 29167//27909 +f 29168//27910 29166//27908 29167//27909 29169//27911 +f 29170//27912 29171//27913 29169//27911 29167//27909 +f 29002//27744 29170//27912 29167//27909 29000//27742 +f 29170//27912 29002//27744 29007//27749 29172//27914 +f 29171//27913 29170//27912 29172//27914 29173//27915 +f 29174//27916 29175//27917 29173//27915 29172//27914 +f 29008//27750 29174//27916 29172//27914 29007//27749 +f 29176//27918 29016//27758 29015//27757 29177//27919 +f 29178//27920 29176//27918 29177//27919 29179//27921 +f 29180//27922 29181//27923 29179//27921 29177//27919 +f 29017//27759 29180//27922 29177//27919 29015//27757 +f 29182//27924 29024//27766 29023//27765 29183//27925 +f 29184//27926 29182//27924 29183//27925 29185//27927 +f 29186//27928 29187//27929 29185//27927 29183//27925 +f 29025//27767 29186//27928 29183//27925 29023//27765 +f 29188//27930 29031//27773 29030//27772 29189//27931 +f 29190//27932 29188//27930 29189//27931 29191//27933 +f 29176//27918 29178//27920 29191//27933 29189//27931 +f 29016//27758 29176//27918 29189//27931 29030//27772 +f 29025//27767 29035//27777 29192//27934 29186//27928 +f 29186//27928 29192//27934 29193//27935 29187//27929 +f 29194//27936 29193//27935 29192//27934 29195//27937 +f 29195//27937 29192//27934 29035//27777 29036//27778 +f 29196//27938 29043//27785 29042//27784 29197//27939 +f 29198//27940 29196//27938 29197//27939 29199//27941 +f 29200//27942 29201//27943 29199//27941 29197//27939 +f 29044//27786 29200//27942 29197//27939 29042//27784 +f 29202//27944 29049//27791 29048//27790 29203//27945 +f 29204//27946 29202//27944 29203//27945 29205//27947 +f 29196//27938 29198//27940 29205//27947 29203//27945 +f 29043//27785 29196//27938 29203//27945 29048//27790 +f 29206//27948 29054//27796 29053//27795 29207//27949 +f 29208//27950 29206//27948 29207//27949 29209//27951 +f 29188//27930 29190//27932 29209//27951 29207//27949 +f 29031//27773 29188//27930 29207//27949 29053//27795 +f 29210//27952 29058//27800 29057//27799 29211//27953 +f 29212//27954 29210//27952 29211//27953 29213//27955 +f 29206//27948 29208//27950 29213//27955 29211//27953 +f 29054//27796 29206//27948 29211//27953 29057//27799 +f 29214//27956 29062//27804 29061//27803 29215//27957 +f 29216//27958 29214//27956 29215//27957 29217//27959 +f 29210//27952 29212//27954 29217//27959 29215//27957 +f 29058//27800 29210//27952 29215//27957 29061//27803 +f 29218//27960 29065//27807 29066//27808 29219//27961 +f 29220//27962 29218//27960 29219//27961 29221//27963 +f 29214//27956 29216//27958 29221//27963 29219//27961 +f 29062//27804 29214//27956 29219//27961 29066//27808 +f 29222//27964 29069//27811 29070//27812 29223//27965 +f 29224//27966 29222//27964 29223//27965 29225//27967 +f 29218//27960 29220//27962 29225//27967 29223//27965 +f 29065//27807 29218//27960 29223//27965 29070//27812 +f 29200//27942 29044//27786 29072//27814 29226//27968 +f 29201//27943 29200//27942 29226//27968 29227//27969 +f 29222//27964 29224//27966 29227//27969 29226//27968 +f 29069//27811 29222//27964 29226//27968 29072//27814 +f 29076//27818 29075//27817 29228//27970 29229//27971 +f 29230//27972 29229//27971 29228//27970 29231//27973 +f 29202//27944 29204//27946 29231//27973 29228//27970 +f 29049//27791 29202//27944 29228//27970 29075//27817 +f 29082//27824 29081//27823 29232//27974 29233//27975 +f 29234//27976 29233//27975 29232//27974 29235//27977 +f 29229//27971 29230//27972 29235//27977 29232//27974 +f 29229//27971 29232//27974 29081//27823 29076//27818 +f 29088//27830 29087//27829 29236//27978 29237//27979 +f 29238//27980 29237//27979 29236//27978 29239//27981 +f 29233//27975 29234//27976 29239//27981 29236//27978 +f 29233//27975 29236//27978 29087//27829 29082//27824 +f 29094//27836 29093//27835 29240//27982 29241//27983 +f 29241//27983 29240//27982 29242//27984 29243//27985 +f 29237//27979 29238//27980 29242//27984 29240//27982 +f 29088//27830 29237//27979 29240//27982 29093//27835 +f 29244//27986 29099//27841 29098//27840 29245//27987 +f 29246//27988 29244//27986 29245//27987 29247//27989 +f 29243//27985 29247//27989 29245//27987 29241//27983 +f 29241//27983 29245//27987 29098//27840 29094//27836 +f 29195//27937 29036//27778 29101//27843 29248//27990 +f 29194//27936 29195//27937 29248//27990 29249//27991 +f 29244//27986 29246//27988 29249//27991 29248//27990 +f 29099//27841 29244//27986 29248//27990 29101//27843 +f 29105//27847 29104//27846 29250//27992 29251//27993 +f 29252//27994 29251//27993 29250//27992 29253//27995 +f 29182//27924 29184//27926 29253//27995 29250//27992 +f 29182//27924 29250//27992 29104//27846 29024//27766 +f 29254//27996 29111//27853 29110//27852 29255//27997 +f 29256//27998 29254//27996 29255//27997 29257//27999 +f 29251//27993 29252//27994 29257//27999 29255//27997 +f 29251//27993 29255//27997 29110//27852 29105//27847 +f 29117//27859 29116//27858 29258//28000 29259//28001 +f 29260//28002 29259//28001 29258//28000 29261//28003 +f 29254//27996 29256//27998 29261//28003 29258//28000 +f 29111//27853 29254//27996 29258//28000 29116//27858 +f 29262//28004 29122//27864 29123//27865 29263//28005 +f 29264//28006 29262//28004 29263//28005 29265//28007 +f 29259//28001 29260//28002 29265//28007 29263//28005 +f 29117//27859 29259//28001 29263//28005 29123//27865 +f 29266//28008 29128//27870 29129//27871 29267//28009 +f 29268//28010 29266//28008 29267//28009 29269//28011 +f 29264//28006 29269//28011 29267//28009 29262//28004 +f 29122//27864 29262//28004 29267//28009 29129//27871 +f 29174//27916 29008//27750 29132//27874 29270//28012 +f 29175//27917 29174//27916 29270//28012 29271//28013 +f 29266//28008 29268//28010 29271//28013 29270//28012 +f 29128//27870 29266//28008 29270//28012 29132//27874 +f 29272//28014 29138//27880 29137//27879 29273//28015 +f 29274//28016 29272//28014 29273//28015 29275//28017 +f 29166//27908 29168//27910 29275//28017 29273//28015 +f 29001//27743 29166//27908 29273//28015 29137//27879 +f 29276//28018 29144//27886 29143//27885 29277//28019 +f 29278//28020 29276//28018 29277//28019 29279//28021 +f 29272//28014 29274//28016 29279//28021 29277//28019 +f 29138//27880 29272//28014 29277//28019 29143//27885 +f 29280//28022 29150//27892 29149//27891 29281//28023 +f 29282//28024 29280//28022 29281//28023 29283//28025 +f 29276//28018 29278//28020 29283//28025 29281//28023 +f 29144//27886 29276//28018 29281//28023 29149//27891 +f 29284//28026 29155//27897 29156//27898 29285//28027 +f 29286//28028 29284//28026 29285//28027 29287//28029 +f 29280//28022 29282//28024 29287//28029 29285//28027 +f 29150//27892 29280//28022 29285//28027 29156//27898 +f 29288//28030 29161//27903 29162//27904 29289//28031 +f 29290//28032 29288//28030 29289//28031 29291//28033 +f 29284//28026 29286//28028 29291//28033 29289//28031 +f 29155//27897 29284//28026 29289//28031 29162//27904 +f 29180//27922 29017//27759 29165//27907 29292//28034 +f 29181//27923 29180//27922 29292//28034 29293//28035 +f 29288//28030 29290//28032 29293//28035 29292//28034 +f 29161//27903 29288//28030 29292//28034 29165//27907 +f 29294//28036 29168//27910 29169//27911 29295//28037 +f 29296//28038 29294//28036 29295//28037 29297//28039 +f 29298//28040 29299//28041 29297//28039 29295//28037 +f 29171//27913 29298//28040 29295//28037 29169//27911 +f 29298//28040 29171//27913 29173//27915 29300//28042 +f 29299//28041 29298//28040 29300//28042 29301//28043 +f 29302//28044 29301//28043 29300//28042 29303//28045 +f 29175//27917 29303//28045 29300//28042 29173//27915 +f 29304//28046 29178//27920 29179//27921 29305//28047 +f 29306//28048 29304//28046 29305//28047 29307//28049 +f 29308//28050 29309//28051 29307//28049 29305//28047 +f 29181//27923 29308//28050 29305//28047 29179//27921 +f 29310//28052 29184//27926 29185//27927 29311//28053 +f 29312//28054 29310//28052 29311//28053 29313//28055 +f 29314//28056 29315//28057 29313//28055 29311//28053 +f 29187//27929 29314//28056 29311//28053 29185//27927 +f 29316//28058 29190//27932 29191//27933 29317//28059 +f 29318//28060 29316//28058 29317//28059 29319//28061 +f 29304//28046 29306//28048 29319//28061 29317//28059 +f 29178//27920 29304//28046 29317//28059 29191//27933 +f 29314//28056 29187//27929 29193//27935 29320//28062 +f 29315//28057 29314//28056 29320//28062 29321//28063 +f 29322//28064 29323//28065 29321//28063 29320//28062 +f 29194//27936 29322//28064 29320//28062 29193//27935 +f 29324//28066 29198//27940 29199//27941 29325//28067 +f 29326//28068 29324//28066 29325//28067 29327//28069 +f 29328//28070 29329//28071 29327//28069 29325//28067 +f 29201//27943 29328//28070 29325//28067 29199//27941 +f 29330//28072 29204//27946 29205//27947 29331//28073 +f 29332//28074 29330//28072 29331//28073 29333//28075 +f 29324//28066 29326//28068 29333//28075 29331//28073 +f 29198//27940 29324//28066 29331//28073 29205//27947 +f 29334//28076 29208//27950 29209//27951 29335//28077 +f 29336//28078 29334//28076 29335//28077 29337//28079 +f 29316//28058 29318//28060 29337//28079 29335//28077 +f 29190//27932 29316//28058 29335//28077 29209//27951 +f 29338//28080 29212//27954 29213//27955 29339//28081 +f 29340//28082 29338//28080 29339//28081 29341//28083 +f 29334//28076 29336//28078 29341//28083 29339//28081 +f 29208//27950 29334//28076 29339//28081 29213//27955 +f 29342//28084 29216//27958 29217//27959 29343//28085 +f 29344//28086 29342//28084 29343//28085 29345//28087 +f 29338//28080 29340//28082 29345//28087 29343//28085 +f 29212//27954 29338//28080 29343//28085 29217//27959 +f 29220//27962 29221//27963 29346//28088 29347//28089 +f 29347//28089 29346//28088 29348//28090 29349//28091 +f 29342//28084 29344//28086 29348//28090 29346//28088 +f 29216//27958 29342//28084 29346//28088 29221//27963 +f 29224//27966 29225//27967 29350//28092 29351//28093 +f 29351//28093 29350//28092 29352//28094 29353//28095 +f 29349//28091 29352//28094 29350//28092 29347//28089 +f 29347//28089 29350//28092 29225//27967 29220//27962 +f 29328//28070 29201//27943 29227//27969 29354//28096 +f 29329//28071 29328//28070 29354//28096 29355//28097 +f 29353//28095 29355//28097 29354//28096 29351//28093 +f 29224//27966 29351//28093 29354//28096 29227//27969 +f 29356//28098 29230//27972 29231//27973 29357//28099 +f 29358//28100 29356//28098 29357//28099 29359//28101 +f 29330//28072 29332//28074 29359//28101 29357//28099 +f 29204//27946 29330//28072 29357//28099 29231//27973 +f 29360//28102 29234//27976 29235//27977 29361//28103 +f 29362//28104 29360//28102 29361//28103 29363//28105 +f 29356//28098 29358//28100 29363//28105 29361//28103 +f 29230//27972 29356//28098 29361//28103 29235//27977 +f 29364//28106 29238//27980 29239//27981 29365//28107 +f 29366//28108 29364//28106 29365//28107 29367//28109 +f 29360//28102 29362//28104 29367//28109 29365//28107 +f 29234//27976 29360//28102 29365//28107 29239//27981 +f 29243//27985 29242//27984 29368//28110 29369//28111 +f 29369//28111 29368//28110 29370//28112 29371//28113 +f 29364//28106 29366//28108 29370//28112 29368//28110 +f 29238//27980 29364//28106 29368//28110 29242//27984 +f 29246//27988 29247//27989 29372//28114 29373//28115 +f 29373//28115 29372//28114 29374//28116 29375//28117 +f 29371//28113 29374//28116 29372//28114 29369//28111 +f 29369//28111 29372//28114 29247//27989 29243//27985 +f 29322//28064 29194//27936 29249//27991 29376//28118 +f 29323//28065 29322//28064 29376//28118 29377//28119 +f 29373//28115 29375//28117 29377//28119 29376//28118 +f 29246//27988 29373//28115 29376//28118 29249//27991 +f 29378//28120 29252//27994 29253//27995 29379//28121 +f 29380//28122 29378//28120 29379//28121 29381//28123 +f 29310//28052 29312//28054 29381//28123 29379//28121 +f 29184//27926 29310//28052 29379//28121 29253//27995 +f 29382//28124 29256//27998 29257//27999 29383//28125 +f 29384//28126 29382//28124 29383//28125 29385//28127 +f 29378//28120 29380//28122 29385//28127 29383//28125 +f 29252//27994 29378//28120 29383//28125 29257//27999 +f 29386//28128 29260//28002 29261//28003 29387//28129 +f 29388//28130 29386//28128 29387//28129 29389//28131 +f 29382//28124 29384//28126 29389//28131 29387//28129 +f 29256//27998 29382//28124 29387//28129 29261//28003 +f 29264//28006 29265//28007 29390//28132 29391//28133 +f 29391//28133 29390//28132 29392//28134 29393//28135 +f 29388//28130 29392//28134 29390//28132 29386//28128 +f 29260//28002 29386//28128 29390//28132 29265//28007 +f 29268//28010 29269//28011 29394//28136 29395//28137 +f 29395//28137 29394//28136 29396//28138 29397//28139 +f 29393//28135 29396//28138 29394//28136 29391//28133 +f 29391//28133 29394//28136 29269//28011 29264//28006 +f 29303//28045 29175//27917 29271//28013 29398//28140 +f 29303//28045 29398//28140 29399//28141 29302//28044 +f 29397//28139 29399//28141 29398//28140 29395//28137 +f 29395//28137 29398//28140 29271//28013 29268//28010 +f 29400//28142 29274//28016 29275//28017 29401//28143 +f 29402//28144 29400//28142 29401//28143 29403//28145 +f 29294//28036 29296//28038 29403//28145 29401//28143 +f 29168//27910 29294//28036 29401//28143 29275//28017 +f 29404//28146 29278//28020 29279//28021 29405//28147 +f 29406//28148 29404//28146 29405//28147 29407//28149 +f 29400//28142 29402//28144 29407//28149 29405//28147 +f 29274//28016 29400//28142 29405//28147 29279//28021 +f 29408//28150 29282//28024 29283//28025 29409//28151 +f 29410//28152 29408//28150 29409//28151 29411//28153 +f 29404//28146 29406//28148 29411//28153 29409//28151 +f 29278//28020 29404//28146 29409//28151 29283//28025 +f 29412//28154 29286//28028 29287//28029 29413//28155 +f 29412//28154 29413//28155 29414//28156 29415//28157 +f 29408//28150 29410//28152 29414//28156 29413//28155 +f 29282//28024 29408//28150 29413//28155 29287//28029 +f 29416//28158 29290//28032 29291//28033 29417//28159 +f 29416//28158 29417//28159 29418//28160 29419//28161 +f 29415//28157 29418//28160 29417//28159 29412//28154 +f 29286//28028 29412//28154 29417//28159 29291//28033 +f 29308//28050 29181//27923 29293//28035 29420//28162 +f 29309//28051 29308//28050 29420//28162 29421//28163 +f 29419//28161 29421//28163 29420//28162 29416//28158 +f 29290//28032 29416//28158 29420//28162 29293//28035 +f 29422//28164 29423//28165 29424//28166 29425//28167 +f 28365//27107 29422//28164 29425//28167 28363//27105 +f 24983//23725 23893//22634 28363//27105 29425//28167 +f 24984//23726 24983//23725 29425//28167 29424//28166 +f 29426//28168 29423//28165 29422//28164 29427//28169 +f 28372//27114 29426//28168 29427//28169 28371//27113 +f 28367//27109 28368//27110 28371//27113 29427//28169 +f 28365//27107 28367//27109 29427//28169 29422//28164 +f 29428//28170 29429//28171 29430//28172 29431//28173 +f 29431//28173 29430//28172 28375//27117 28376//27118 +f 28372//27114 28375//27117 29430//28172 29426//28168 +f 29426//28168 29430//28172 29429//28171 29423//28165 +f 29432//28174 29433//28175 29434//28176 29435//28177 +f 28381//27123 29432//28174 29435//28177 28379//27121 +f 29431//28173 28376//27118 28379//27121 29435//28177 +f 29428//28170 29431//28173 29435//28177 29434//28176 +f 29436//28178 29433//28175 29432//28174 29437//28179 +f 28388//27130 29436//28178 29437//28179 28387//27129 +f 28383//27125 28384//27126 28387//27129 29437//28179 +f 28381//27123 28383//27125 29437//28179 29432//28174 +f 29438//28180 29439//28181 29440//28182 29441//28183 +f 29441//28183 29440//28182 28391//27133 28392//27134 +f 28388//27130 28391//27133 29440//28182 29436//28178 +f 29436//28178 29440//28182 29439//28181 29433//28175 +f 29442//28184 29443//28185 29444//28186 29445//28187 +f 28397//27139 29442//28184 29445//28187 28395//27137 +f 29441//28183 28392//27134 28395//27137 29445//28187 +f 29438//28180 29441//28183 29445//28187 29444//28186 +f 29446//28188 29443//28185 29442//28184 29447//28189 +f 28404//27146 29446//28188 29447//28189 28403//27145 +f 28399//27141 28400//27142 28403//27145 29447//28189 +f 28397//27139 28399//27141 29447//28189 29442//28184 +f 29448//28190 29449//28191 29450//28192 29451//28193 +f 29451//28193 29450//28192 28407//27149 28408//27150 +f 28404//27146 28407//27149 29450//28192 29446//28188 +f 29446//28188 29450//28192 29449//28191 29443//28185 +f 29452//28194 29453//28195 29454//28196 29455//28197 +f 28413//27155 29452//28194 29455//28197 28411//27153 +f 29451//28193 28408//27150 28411//27153 29455//28197 +f 29448//28190 29451//28193 29455//28197 29454//28196 +f 29456//28198 29453//28195 29452//28194 29457//28199 +f 28420//27162 29456//28198 29457//28199 28419//27161 +f 28415//27157 28416//27158 28419//27161 29457//28199 +f 28413//27155 28415//27157 29457//28199 29452//28194 +f 29458//28200 29459//28201 29460//28202 29461//28203 +f 29461//28203 29460//28202 28423//27165 28424//27166 +f 28420//27162 28423//27165 29460//28202 29456//28198 +f 29456//28198 29460//28202 29459//28201 29453//28195 +f 29462//28204 29463//28205 29464//28206 29465//28207 +f 28429//27171 29462//28204 29465//28207 28427//27169 +f 29461//28203 28424//27166 28427//27169 29465//28207 +f 29458//28200 29461//28203 29465//28207 29464//28206 +f 29466//28208 29463//28205 29462//28204 29467//28209 +f 28436//27178 29466//28208 29467//28209 28435//27177 +f 28431//27173 28432//27174 28435//27177 29467//28209 +f 28429//27171 28431//27173 29467//28209 29462//28204 +f 25027//23769 29468//28210 29469//28211 25028//23770 +f 25028//23770 29469//28211 28439//27181 23971//22712 +f 28436//27178 28439//27181 29469//28211 29466//28208 +f 29466//28208 29469//28211 29468//28210 29463//28205 +f 29464//28206 29463//28205 29470//28212 29471//28213 +f 29458//28200 29464//28206 29471//28213 29472//28214 +f 29473//28215 29474//28216 29472//28214 29471//28213 +f 29475//28217 29473//28215 29471//28213 29470//28212 +f 29476//28218 29477//28219 29478//28220 29479//28221 +f 29480//28222 29476//28218 29479//28221 29481//28223 +f 29482//28224 29481//28223 29479//28221 29483//28225 +f 29483//28225 29479//28221 29478//28220 29484//28226 +f 29484//28226 29485//28227 29486//28228 29483//28225 +f 29482//28224 29483//28225 29486//28228 29487//28229 +f 25049//23791 25050//23792 29487//28229 29486//28228 +f 25051//23793 25049//23791 29486//28228 29485//28227 +f 29488//28230 29489//28231 29490//28232 29491//28233 +f 29491//28233 29490//28232 29492//28234 29493//28235 +f 29494//28236 29492//28234 29490//28232 29495//28237 +f 29495//28237 29490//28232 29489//28231 29496//28238 +f 29491//28233 29493//28235 29497//28239 29498//28240 +f 29488//28230 29491//28233 29498//28240 29499//28241 +f 29500//28242 29501//28243 29499//28241 29498//28240 +f 29502//28244 29500//28242 29498//28240 29497//28239 +f 29500//28242 29502//28244 29503//28245 29504//28246 +f 29501//28243 29500//28242 29504//28246 29505//28247 +f 25070//23812 25071//23813 29505//28247 29504//28246 +f 25072//23814 25070//23812 29504//28246 29503//28245 +f 29506//28248 29494//28236 29495//28237 29507//28249 +f 29506//28248 29507//28249 29449//28191 29448//28190 +f 29508//28250 29443//28185 29449//28191 29507//28249 +f 29508//28250 29507//28249 29495//28237 29496//28238 +f 29509//28251 29510//28252 29511//28253 29512//28254 +f 29438//28180 29512//28254 29511//28253 29439//28181 +f 29513//28255 29433//28175 29439//28181 29511//28253 +f 29514//28256 29513//28255 29511//28253 29510//28252 +f 29444//28186 29443//28185 29508//28250 29515//28257 +f 29444//28186 29515//28257 29512//28254 29438//28180 +f 29516//28258 29509//28251 29512//28254 29515//28257 +f 29496//28238 29516//28258 29515//28257 29508//28250 +f 29516//28258 29496//28238 29489//28231 29517//28259 +f 29509//28251 29516//28258 29517//28259 29518//28260 +f 29519//28261 29477//28219 29518//28260 29517//28259 +f 29488//28230 29519//28261 29517//28259 29489//28231 +f 29519//28261 29488//28230 29499//28241 29520//28262 +f 29477//28219 29519//28261 29520//28262 29478//28220 +f 29484//28226 29478//28220 29520//28262 29521//28263 +f 29521//28263 29520//28262 29499//28241 29501//28243 +f 29521//28263 29501//28243 29505//28247 29522//28264 +f 29521//28263 29522//28264 29485//28227 29484//28226 +f 25090//23832 25051//23793 29485//28227 29522//28264 +f 25071//23813 25090//23832 29522//28264 29505//28247 +f 29433//28175 29513//28255 29523//28265 29434//28176 +f 29434//28176 29523//28265 29524//28266 29428//28170 +f 29480//28222 29524//28266 29523//28265 29525//28267 +f 29525//28267 29523//28265 29513//28255 29514//28256 +f 29474//28216 29473//28215 29526//28268 29527//28269 +f 29527//28269 29526//28268 29497//28239 29493//28235 +f 29528//28270 29502//28244 29497//28239 29526//28268 +f 29475//28217 29528//28270 29526//28268 29473//28215 +f 29475//28217 29529//28271 29530//28272 29528//28270 +f 29528//28270 29530//28272 29503//28245 29502//28244 +f 25072//23814 29503//28245 29530//28272 25099//23841 +f 25099//23841 29530//28272 29529//28271 25100//23842 +f 29476//28218 29480//28222 29525//28267 29531//28273 +f 29477//28219 29476//28218 29531//28273 29518//28260 +f 29510//28252 29509//28251 29518//28260 29531//28273 +f 29514//28256 29510//28252 29531//28273 29525//28267 +f 29532//28274 29533//28275 29534//28276 29535//28277 +f 29535//28277 29534//28276 29492//28234 29494//28236 +f 29493//28235 29492//28234 29534//28276 29527//28269 +f 29527//28269 29534//28276 29533//28275 29474//28216 +f 29454//28196 29453//28195 29536//28278 29537//28279 +f 29454//28196 29537//28279 29506//28248 29448//28190 +f 29494//28236 29506//28248 29537//28279 29535//28277 +f 29532//28274 29535//28277 29537//28279 29536//28278 +f 29524//28266 29480//28222 29481//28223 29538//28280 +f 29428//28170 29524//28266 29538//28280 29429//28171 +f 29539//28281 29423//28165 29429//28171 29538//28280 +f 29539//28281 29538//28280 29481//28223 29482//28224 +f 29539//28281 29482//28224 29487//28229 29540//28282 +f 29539//28281 29540//28282 29424//28166 29423//28165 +f 25111//23853 24984//23726 29424//28166 29540//28282 +f 25050//23792 25111//23853 29540//28282 29487//28229 +f 25100//23842 29529//28271 29541//28283 25112//23854 +f 25112//23854 29541//28283 29468//28210 25027//23769 +f 29470//28212 29463//28205 29468//28210 29541//28283 +f 29470//28212 29541//28283 29529//28271 29475//28217 +f 29474//28216 29533//28275 29542//28284 29472//28214 +f 29472//28214 29542//28284 29459//28201 29458//28200 +f 29536//28278 29453//28195 29459//28201 29542//28284 +f 29536//28278 29542//28284 29533//28275 29532//28274 +f 28913//27655 29543//28285 29544//28286 28911//27653 +f 28911//27653 29544//28286 29050//27792 28908//27650 +f 29028//27770 29050//27792 29544//28286 29545//28287 +f 29545//28287 29544//28286 29543//28285 29546//28288 +f 29546//28288 29547//28289 29548//28290 29545//28287 +f 29545//28287 29548//28290 29026//27768 29028//27770 +f 29014//27756 29026//27768 29548//28290 29549//28291 +f 29549//28291 29548//28290 29547//28289 29550//28292 +f 29549//28291 29550//28292 29551//28293 29552//28294 +f 29014//27756 29549//28291 29552//28294 29012//27754 +f 29553//28295 29009//27751 29012//27754 29552//28294 +f 29554//28296 29553//28295 29552//28294 29551//28293 +f 29553//28295 29554//28296 29555//28297 29556//28298 +f 29009//27751 29553//28295 29556//28298 29164//27906 +f 29557//28299 29160//27902 29164//27906 29556//28298 +f 29558//28300 29557//28299 29556//28298 29555//28297 +f 28914//27656 28919//27661 29559//28301 29560//28302 +f 29560//28302 29559//28301 28034//26776 27995//26737 +f 28035//26777 28034//26776 29559//28301 28076//26818 +f 28076//26818 29559//28301 28919//27661 28081//26823 +f 29557//28299 29558//28300 29561//28303 29562//28304 +f 29160//27902 29557//28299 29562//28304 29158//27900 +f 29563//28305 29154//27896 29158//27900 29562//28304 +f 28993//27735 29563//28305 29562//28304 29561//28303 +f 29563//28305 28993//27735 28990//27732 29564//28306 +f 29154//27896 29563//28305 29564//28306 29152//27894 +f 29565//28307 29147//27889 29152//27894 29564//28306 +f 27710//26452 29565//28307 29564//28306 28990//27732 +f 27710//26452 28987//27729 29566//28308 29565//28307 +f 29565//28307 29566//28308 29145//27887 29147//27889 +f 29141//27883 29145//27887 29566//28308 29567//28309 +f 29567//28309 29566//28308 28987//27729 28986//27728 +f 28986//27728 29568//28310 29569//28311 29567//28309 +f 29567//28309 29569//28311 29139//27881 29141//27883 +f 29135//27877 29139//27881 29569//28311 29570//28312 +f 29570//28312 29569//28311 29568//28310 29571//28313 +f 29571//28313 29572//28314 29573//28315 29570//28312 +f 29570//28312 29573//28315 29133//27875 29135//27877 +f 28998//27740 29133//27875 29573//28315 29574//28316 +f 29574//28316 29573//28315 29572//28314 29575//28317 +f 29575//28317 29576//28318 29577//28319 29574//28316 +f 29574//28316 29577//28319 28994//27736 28998//27740 +f 28995//27737 28994//27736 29577//28319 29578//28320 +f 29578//28320 29577//28319 29576//28318 29579//28321 +f 29578//28320 29579//28321 29580//28322 29581//28323 +f 28995//27737 29578//28320 29581//28323 29006//27748 +f 29582//28324 29003//27745 29006//27748 29581//28323 +f 29583//28325 29582//28324 29581//28323 29580//28322 +f 29582//28324 29583//28325 29584//28326 29585//28327 +f 29003//27745 29582//28324 29585//28327 29131//27873 +f 29586//28328 29127//27869 29131//27873 29585//28327 +f 29587//28329 29586//28328 29585//28327 29584//28326 +f 29586//28328 29587//28329 29588//28330 29589//28331 +f 29127//27869 29586//28328 29589//28331 29125//27867 +f 29590//28332 29121//27863 29125//27867 29589//28331 +f 28985//27727 29590//28332 29589//28331 29588//28330 +f 29590//28332 28985//27727 28982//27724 29591//28333 +f 29121//27863 29590//28332 29591//28333 29119//27861 +f 29592//28334 29114//27856 29119//27861 29591//28333 +f 27714//26456 29592//28334 29591//28333 28982//27724 +f 29592//28334 27714//26456 28980//27722 29593//28335 +f 29114//27856 29592//28334 29593//28335 29112//27854 +f 29108//27850 29112//27854 29593//28335 29594//28336 +f 29594//28336 29593//28335 28980//27722 28979//27721 +f 28979//27721 28975//27717 29595//28337 29594//28336 +f 29594//28336 29595//28337 29106//27848 29108//27850 +f 28974//27716 29106//27848 29595//28337 28973//27715 +f 28973//27715 29595//28337 28975//27717 28972//27714 +f 28971//27713 29596//28338 29597//28339 28969//27711 +f 28969//27711 29597//28339 29018//27760 28966//27708 +f 29019//27761 29018//27760 29597//28339 29598//28340 +f 29598//28340 29597//28339 29596//28338 29599//28341 +f 29598//28340 29599//28341 29600//28342 29601//28343 +f 29019//27761 29598//28340 29601//28343 29034//27776 +f 28963//27705 28965//27707 29034//27776 29601//28343 +f 28964//27706 28963//27705 29601//28343 29600//28342 +f 28958//27700 28957//27699 28954//27696 29602//28344 +f 28959//27701 28958//27700 29602//28344 29096//27838 +f 29603//28345 29092//27834 29096//27838 29602//28344 +f 28953//27695 29603//28345 29602//28344 28954//27696 +f 29603//28345 28953//27695 28950//27692 29604//28346 +f 29092//27834 29603//28345 29604//28346 29089//27831 +f 29085//27827 29089//27831 29604//28346 29605//28347 +f 29605//28347 29604//28346 28950//27692 28082//26824 +f 28082//26824 28948//27690 29606//28348 29605//28347 +f 29605//28347 29606//28348 29083//27825 29085//27827 +f 29079//27821 29083//27825 29606//28348 29607//28349 +f 29607//28349 29606//28348 28948//27690 28947//27689 +f 28947//27689 28943//27685 29608//28350 29607//28349 +f 29607//28349 29608//28350 29077//27819 29079//27821 +f 28942//27684 29077//27819 29608//28350 28941//27683 +f 28941//27683 29608//28350 28943//27685 28164//26906 +f 28158//26900 28153//26895 29609//28351 28940//27682 +f 28940//27682 29609//28351 29045//27787 28937//27679 +f 29041//27783 29045//27787 29609//28351 29610//28352 +f 29610//28352 29609//28351 28153//26895 28152//26894 +f 29610//28352 28152//26894 28147//26889 29611//28353 +f 29041//27783 29610//28352 29611//28353 29039//27781 +f 28935//27677 28936//27678 29039//27781 29611//28353 +f 28146//26888 28935//27677 29611//28353 28147//26889 +f 28079//26821 28081//26823 28924//27666 29612//28354 +f 28080//26822 28079//26821 29612//28354 28132//26874 +f 29613//28355 28137//26879 28132//26874 29612//28354 +f 28926//27668 29613//28355 29612//28354 28924//27666 +f 29613//28355 28926//27668 28930//27672 29614//28356 +f 28137//26879 29613//28355 29614//28356 29615//28357 +f 28138//26880 28142//26884 29615//28357 29614//28356 +f 28139//26881 28138//26880 29614//28356 28930//27672 +f 29616//28358 29617//28359 29618//28360 29619//28361 +f 29620//28362 29619//28361 29618//28360 29621//28363 +f 29622//28364 29623//28365 29621//28363 29618//28360 +f 29622//28364 29618//28360 29617//28359 29624//28366 +f 29625//28367 29620//28362 29621//28363 29626//28368 +f 29627//28369 29625//28367 29626//28368 29628//28370 +f 29629//28371 29630//28372 29628//28370 29626//28368 +f 29623//28365 29629//28371 29626//28368 29621//28363 +f 29631//28373 29627//28369 29628//28370 29632//28374 +f 29633//28375 29631//28373 29632//28374 29634//28376 +f 29635//28377 29636//28378 29634//28376 29632//28374 +f 29630//28372 29635//28377 29632//28374 29628//28370 +f 29637//28379 29633//28375 29634//28376 29638//28380 +f 29637//28379 29638//28380 29639//28381 29640//28382 +f 29641//28383 29642//28384 29639//28381 29638//28380 +f 29636//28378 29641//28383 29638//28380 29634//28376 +f 29640//28382 29639//28381 29643//28385 29644//28386 +f 29645//28387 29644//28386 29643//28385 29646//28388 +f 29647//28389 29646//28388 29643//28385 29648//28390 +f 29648//28390 29643//28385 29639//28381 29642//28384 +f 29649//28391 29645//28387 29646//28388 29650//28392 +f 29651//28393 29649//28391 29650//28392 29652//28394 +f 29653//28395 29654//28396 29652//28394 29650//28392 +f 29647//28389 29653//28395 29650//28392 29646//28388 +f 29655//28397 29651//28393 29652//28394 29656//28398 +f 29657//28399 29655//28397 29656//28398 29658//28400 +f 29659//28401 29660//28402 29658//28400 29656//28398 +f 29654//28396 29659//28401 29656//28398 29652//28394 +f 29661//28403 29657//28399 29658//28400 29662//28404 +f 29661//28403 29662//28404 29663//28405 29664//28406 +f 29665//28407 29666//28408 29663//28405 29662//28404 +f 29660//28402 29665//28407 29662//28404 29658//28400 +f 29664//28406 29663//28405 29667//28409 29668//28410 +f 29668//28410 29667//28409 29669//28411 29670//28412 +f 29671//28413 29669//28411 29667//28409 29672//28414 +f 29672//28414 29667//28409 29663//28405 29666//28408 +f 29673//28415 29670//28412 29669//28411 29674//28416 +f 29675//28417 29673//28415 29674//28416 29676//28418 +f 29677//28419 29678//28420 29676//28418 29674//28416 +f 29671//28413 29677//28419 29674//28416 29669//28411 +f 29679//28421 29675//28417 29676//28418 29680//28422 +f 29681//28423 29679//28421 29680//28422 29682//28424 +f 29683//28425 29684//28426 29682//28424 29680//28422 +f 29678//28420 29683//28425 29680//28422 29676//28418 +f 29685//28427 29681//28423 29682//28424 29686//28428 +f 29685//28427 29686//28428 29687//28429 29688//28430 +f 29689//28431 29687//28429 29686//28428 29690//28432 +f 29684//28426 29690//28432 29686//28428 29682//28424 +f 29688//28430 29687//28429 29691//28433 29692//28434 +f 29692//28434 29691//28433 29693//28435 29694//28436 +f 29695//28437 29693//28435 29691//28433 29696//28438 +f 29696//28438 29691//28433 29687//28429 29689//28431 +f 29697//28439 29694//28436 29693//28435 29698//28440 +f 29699//28441 29697//28439 29698//28440 29700//28442 +f 29701//28443 29702//28444 29700//28442 29698//28440 +f 29695//28437 29701//28443 29698//28440 29693//28435 +f 29703//28445 29699//28441 29700//28442 29704//28446 +f 29705//28447 29703//28445 29704//28446 29706//28448 +f 29707//28449 29708//28450 29706//28448 29704//28446 +f 29702//28444 29707//28449 29704//28446 29700//28442 +f 29709//28451 29705//28447 29706//28448 29710//28452 +f 29709//28451 29710//28452 29711//28453 29712//28454 +f 29713//28455 29711//28453 29710//28452 29714//28456 +f 29708//28450 29714//28456 29710//28452 29706//28448 +f 29712//28454 29711//28453 29715//28457 29716//28458 +f 29716//28458 29715//28457 29717//28459 29718//28460 +f 29719//28461 29717//28459 29715//28457 29720//28462 +f 29720//28462 29715//28457 29711//28453 29713//28455 +f 29721//28463 29718//28460 29717//28459 29722//28464 +f 29723//28465 29721//28463 29722//28464 29724//28466 +f 29725//28467 29726//28468 29724//28466 29722//28464 +f 29719//28461 29725//28467 29722//28464 29717//28459 +f 29727//28469 29723//28465 29724//28466 29728//28470 +f 29729//28471 29727//28469 29728//28470 29730//28472 +f 29731//28473 29732//28474 29730//28472 29728//28470 +f 29726//28468 29731//28473 29728//28470 29724//28466 +f 29733//28475 29729//28471 29730//28472 29734//28476 +f 29733//28475 29734//28476 29735//28477 29736//28478 +f 29737//28479 29735//28477 29734//28476 29738//28480 +f 29732//28474 29738//28480 29734//28476 29730//28472 +f 29736//28478 29735//28477 29739//28481 29740//28482 +f 29740//28482 29739//28481 29741//28483 29742//28484 +f 29743//28485 29741//28483 29739//28481 29744//28486 +f 29744//28486 29739//28481 29735//28477 29737//28479 +f 29745//28487 29742//28484 29741//28483 29746//28488 +f 29747//28489 29745//28487 29746//28488 29748//28490 +f 29749//28491 29750//28492 29748//28490 29746//28488 +f 29743//28485 29749//28491 29746//28488 29741//28483 +f 29751//28493 29747//28489 29748//28490 29752//28494 +f 29753//28495 29751//28493 29752//28494 29754//28496 +f 29755//28497 29756//28498 29754//28496 29752//28494 +f 29750//28492 29755//28497 29752//28494 29748//28490 +f 29757//28499 29753//28495 29754//28496 29758//28500 +f 29757//28499 29758//28500 29759//28501 29760//28502 +f 29761//28503 29759//28501 29758//28500 29762//28504 +f 29756//28498 29762//28504 29758//28500 29754//28496 +f 29760//28502 29759//28501 29763//28505 29764//28506 +f 29764//28506 29763//28505 29765//28507 29766//28508 +f 29767//28509 29765//28507 29763//28505 29768//28510 +f 29768//28510 29763//28505 29759//28501 29761//28503 +f 29769//28511 29766//28508 29765//28507 29770//28512 +f 29771//28513 29769//28511 29770//28512 29772//28514 +f 29773//28515 29774//28516 29772//28514 29770//28512 +f 29767//28509 29773//28515 29770//28512 29765//28507 +f 29775//28517 29771//28513 29772//28514 29776//28518 +f 29777//28519 29775//28517 29776//28518 29778//28520 +f 29779//28521 29780//28522 29778//28520 29776//28518 +f 29774//28516 29779//28521 29776//28518 29772//28514 +f 29781//28523 29777//28519 29778//28520 29782//28524 +f 29781//28523 29782//28524 29783//28525 29784//28526 +f 29785//28527 29786//28528 29783//28525 29782//28524 +f 29780//28522 29785//28527 29782//28524 29778//28520 +f 29784//28526 29783//28525 29787//28529 29788//28530 +f 29789//28531 29788//28530 29787//28529 29790//28532 +f 29791//28533 29790//28532 29787//28529 29792//28534 +f 29792//28534 29787//28529 29783//28525 29786//28528 +f 29793//28535 29789//28531 29790//28532 29794//28536 +f 29795//28537 29793//28535 29794//28536 29796//28538 +f 29797//28539 29798//28540 29796//28538 29794//28536 +f 29791//28533 29797//28539 29794//28536 29790//28532 +f 29799//28541 29795//28537 29796//28538 29800//28542 +f 29801//28543 29799//28541 29800//28542 29802//28544 +f 29803//28545 29804//28546 29802//28544 29800//28542 +f 29798//28540 29803//28545 29800//28542 29796//28538 +f 29805//28547 29801//28543 29802//28544 29806//28548 +f 29807//28549 29805//28547 29806//28548 29808//28550 +f 29809//28551 29810//28552 29808//28550 29806//28548 +f 29804//28546 29809//28551 29806//28548 29802//28544 +f 29807//28549 29808//28550 29811//28553 29812//28554 +f 29813//28555 29812//28554 29811//28553 29814//28556 +f 29815//28557 29816//28558 29814//28556 29811//28553 +f 29815//28557 29811//28553 29808//28550 29810//28552 +f 29817//28559 29813//28555 29814//28556 29818//28560 +f 29819//28561 29817//28559 29818//28560 29820//28562 +f 29821//28563 29822//28564 29820//28562 29818//28560 +f 29816//28558 29821//28563 29818//28560 29814//28556 +f 29823//28565 29819//28561 29820//28562 29824//28566 +f 29825//28567 29823//28565 29824//28566 29826//28568 +f 29827//28569 29828//28570 29826//28568 29824//28566 +f 29822//28564 29827//28569 29824//28566 29820//28562 +f 29829//28571 29825//28567 29826//28568 29830//28572 +f 29831//28573 29829//28571 29830//28572 29832//28574 +f 29833//28575 29834//28576 29832//28574 29830//28572 +f 29828//28570 29833//28575 29830//28572 29826//28568 +f 29831//28573 29832//28574 29835//28577 29836//28578 +f 29837//28579 29836//28578 29835//28577 29838//28580 +f 29839//28581 29840//28582 29838//28580 29835//28577 +f 29839//28581 29835//28577 29832//28574 29834//28576 +f 29841//28583 29837//28579 29838//28580 29842//28584 +f 29843//28585 29841//28583 29842//28584 29844//28586 +f 29845//28587 29846//28588 29844//28586 29842//28584 +f 29840//28582 29845//28587 29842//28584 29838//28580 +f 29847//28589 29843//28585 29844//28586 29848//28590 +f 29849//28591 29847//28589 29848//28590 29850//28592 +f 29851//28593 29852//28594 29850//28592 29848//28590 +f 29846//28588 29851//28593 29848//28590 29844//28586 +f 29853//28595 29849//28591 29850//28592 29854//28596 +f 29616//28358 29853//28595 29854//28596 29617//28359 +f 29855//28597 29624//28366 29617//28359 29854//28596 +f 29852//28594 29855//28597 29854//28596 29850//28592 +f 29856//28598 29616//28358 29619//28361 29857//28599 +f 29858//28600 29856//28598 29857//28599 29859//28601 +f 29860//28602 29861//28603 29859//28601 29857//28599 +f 29620//28362 29860//28602 29857//28599 29619//28361 +f 29620//28362 29625//28367 29862//28604 29860//28602 +f 29861//28603 29860//28602 29862//28604 29863//28605 +f 29864//28606 29865//28607 29863//28605 29862//28604 +f 29864//28606 29862//28604 29625//28367 29627//28369 +f 29627//28369 29631//28373 29866//28608 29864//28606 +f 29865//28607 29864//28606 29866//28608 29867//28609 +f 29868//28610 29869//28611 29867//28609 29866//28608 +f 29868//28610 29866//28608 29631//28373 29633//28375 +f 29868//28610 29633//28375 29637//28379 29870//28612 +f 29869//28611 29868//28610 29870//28612 29871//28613 +f 29872//28614 29873//28615 29871//28613 29870//28612 +f 29640//28382 29872//28614 29870//28612 29637//28379 +f 29872//28614 29640//28382 29644//28386 29874//28616 +f 29873//28615 29872//28614 29874//28616 29875//28617 +f 29876//28618 29877//28619 29875//28617 29874//28616 +f 29645//28387 29876//28618 29874//28616 29644//28386 +f 29645//28387 29649//28391 29878//28620 29876//28618 +f 29877//28619 29876//28618 29878//28620 29879//28621 +f 29880//28622 29881//28623 29879//28621 29878//28620 +f 29880//28622 29878//28620 29649//28391 29651//28393 +f 29651//28393 29655//28397 29882//28624 29880//28622 +f 29881//28623 29880//28622 29882//28624 29883//28625 +f 29884//28626 29885//28627 29883//28625 29882//28624 +f 29884//28626 29882//28624 29655//28397 29657//28399 +f 29884//28626 29657//28399 29661//28403 29886//28628 +f 29885//28627 29884//28626 29886//28628 29887//28629 +f 29888//28630 29889//28631 29887//28629 29886//28628 +f 29664//28406 29888//28630 29886//28628 29661//28403 +f 29888//28630 29664//28406 29668//28410 29890//28632 +f 29889//28631 29888//28630 29890//28632 29891//28633 +f 29892//28634 29893//28635 29891//28633 29890//28632 +f 29670//28412 29892//28634 29890//28632 29668//28410 +f 29670//28412 29673//28415 29894//28636 29892//28634 +f 29893//28635 29892//28634 29894//28636 29895//28637 +f 29896//28638 29897//28639 29895//28637 29894//28636 +f 29896//28638 29894//28636 29673//28415 29675//28417 +f 29675//28417 29679//28421 29898//28640 29896//28638 +f 29897//28639 29896//28638 29898//28640 29899//28641 +f 29900//28642 29901//28643 29899//28641 29898//28640 +f 29681//28423 29900//28642 29898//28640 29679//28421 +f 29900//28642 29681//28423 29685//28427 29902//28644 +f 29901//28643 29900//28642 29902//28644 29903//28645 +f 29904//28646 29905//28647 29903//28645 29902//28644 +f 29688//28430 29904//28646 29902//28644 29685//28427 +f 29904//28646 29688//28430 29692//28434 29906//28648 +f 29905//28647 29904//28646 29906//28648 29907//28649 +f 29908//28650 29909//28651 29907//28649 29906//28648 +f 29694//28436 29908//28650 29906//28648 29692//28434 +f 29694//28436 29697//28439 29910//28652 29908//28650 +f 29909//28651 29908//28650 29910//28652 29911//28653 +f 29912//28654 29913//28655 29911//28653 29910//28652 +f 29912//28654 29910//28652 29697//28439 29699//28441 +f 29699//28441 29703//28445 29914//28656 29912//28654 +f 29913//28655 29912//28654 29914//28656 29915//28657 +f 29916//28658 29917//28659 29915//28657 29914//28656 +f 29705//28447 29916//28658 29914//28656 29703//28445 +f 29916//28658 29705//28447 29709//28451 29918//28660 +f 29917//28659 29916//28658 29918//28660 29919//28661 +f 29920//28662 29921//28663 29919//28661 29918//28660 +f 29712//28454 29920//28662 29918//28660 29709//28451 +f 29920//28662 29712//28454 29716//28458 29922//28664 +f 29921//28663 29920//28662 29922//28664 29923//28665 +f 29924//28666 29925//28667 29923//28665 29922//28664 +f 29718//28460 29924//28666 29922//28664 29716//28458 +f 29924//28666 29718//28460 29721//28463 29926//28668 +f 29925//28667 29924//28666 29926//28668 29927//28669 +f 29928//28670 29929//28671 29927//28669 29926//28668 +f 29928//28670 29926//28668 29721//28463 29723//28465 +f 29723//28465 29727//28469 29930//28672 29928//28670 +f 29929//28671 29928//28670 29930//28672 29931//28673 +f 29932//28674 29933//28675 29931//28673 29930//28672 +f 29729//28471 29932//28674 29930//28672 29727//28469 +f 29932//28674 29729//28471 29733//28475 29934//28676 +f 29933//28675 29932//28674 29934//28676 29935//28677 +f 29936//28678 29937//28679 29935//28677 29934//28676 +f 29736//28478 29936//28678 29934//28676 29733//28475 +f 29936//28678 29736//28478 29740//28482 29938//28680 +f 29937//28679 29936//28678 29938//28680 29939//28681 +f 29940//28682 29941//28683 29939//28681 29938//28680 +f 29742//28484 29940//28682 29938//28680 29740//28482 +f 29742//28484 29745//28487 29942//28684 29940//28682 +f 29941//28683 29940//28682 29942//28684 29943//28685 +f 29944//28686 29945//28687 29943//28685 29942//28684 +f 29944//28686 29942//28684 29745//28487 29747//28489 +f 29747//28489 29751//28493 29946//28688 29944//28686 +f 29945//28687 29944//28686 29946//28688 29947//28689 +f 29948//28690 29949//28691 29947//28689 29946//28688 +f 29753//28495 29948//28690 29946//28688 29751//28493 +f 29948//28690 29753//28495 29757//28499 29950//28692 +f 29949//28691 29948//28690 29950//28692 29951//28693 +f 29952//28694 29953//28695 29951//28693 29950//28692 +f 29760//28502 29952//28694 29950//28692 29757//28499 +f 29952//28694 29760//28502 29764//28506 29954//28696 +f 29953//28695 29952//28694 29954//28696 29955//28697 +f 29956//28698 29957//28699 29955//28697 29954//28696 +f 29766//28508 29956//28698 29954//28696 29764//28506 +f 29766//28508 29769//28511 29958//28700 29956//28698 +f 29957//28699 29956//28698 29958//28700 29959//28701 +f 29960//28702 29961//28703 29959//28701 29958//28700 +f 29960//28702 29958//28700 29769//28511 29771//28513 +f 29771//28513 29775//28517 29962//28704 29960//28702 +f 29961//28703 29960//28702 29962//28704 29963//28705 +f 29964//28706 29965//28707 29963//28705 29962//28704 +f 29964//28706 29962//28704 29775//28517 29777//28519 +f 29964//28706 29777//28519 29781//28523 29966//28708 +f 29965//28707 29964//28706 29966//28708 29967//28709 +f 29968//28710 29969//28711 29967//28709 29966//28708 +f 29784//28526 29968//28710 29966//28708 29781//28523 +f 29968//28710 29784//28526 29788//28530 29970//28712 +f 29969//28711 29968//28710 29970//28712 29971//28713 +f 29972//28714 29973//28715 29971//28713 29970//28712 +f 29789//28531 29972//28714 29970//28712 29788//28530 +f 29789//28531 29793//28535 29974//28716 29972//28714 +f 29973//28715 29972//28714 29974//28716 29975//28717 +f 29976//28718 29977//28719 29975//28717 29974//28716 +f 29976//28718 29974//28716 29793//28535 29795//28537 +f 29795//28537 29799//28541 29978//28720 29976//28718 +f 29977//28719 29976//28718 29978//28720 29979//28721 +f 29980//28722 29981//28723 29979//28721 29978//28720 +f 29980//28722 29978//28720 29799//28541 29801//28543 +f 29980//28722 29801//28543 29805//28547 29982//28724 +f 29981//28723 29980//28722 29982//28724 29983//28725 +f 29984//28726 29985//28727 29983//28725 29982//28724 +f 29807//28549 29984//28726 29982//28724 29805//28547 +f 29984//28726 29807//28549 29812//28554 29986//28728 +f 29985//28727 29984//28726 29986//28728 29987//28729 +f 29988//28730 29989//28731 29987//28729 29986//28728 +f 29813//28555 29988//28730 29986//28728 29812//28554 +f 29813//28555 29817//28559 29990//28732 29988//28730 +f 29989//28731 29988//28730 29990//28732 29991//28733 +f 29992//28734 29993//28735 29991//28733 29990//28732 +f 29992//28734 29990//28732 29817//28559 29819//28561 +f 29819//28561 29823//28565 29994//28736 29992//28734 +f 29993//28735 29992//28734 29994//28736 29995//28737 +f 29996//28738 29997//28739 29995//28737 29994//28736 +f 29996//28738 29994//28736 29823//28565 29825//28567 +f 29996//28738 29825//28567 29829//28571 29998//28740 +f 29997//28739 29996//28738 29998//28740 29999//28741 +f 30000//28742 30001//28743 29999//28741 29998//28740 +f 29831//28573 30000//28742 29998//28740 29829//28571 +f 30000//28742 29831//28573 29836//28578 30002//28744 +f 30001//28743 30000//28742 30002//28744 30003//28745 +f 30004//28746 30005//28747 30003//28745 30002//28744 +f 29837//28579 30004//28746 30002//28744 29836//28578 +f 29837//28579 29841//28583 30006//28748 30004//28746 +f 30005//28747 30004//28746 30006//28748 30007//28749 +f 30008//28750 30009//28751 30007//28749 30006//28748 +f 30008//28750 30006//28748 29841//28583 29843//28585 +f 29843//28585 29847//28589 30010//28752 30008//28750 +f 30009//28751 30008//28750 30010//28752 30011//28753 +f 30012//28754 30013//28755 30011//28753 30010//28752 +f 30012//28754 30010//28752 29847//28589 29849//28591 +f 30012//28754 29849//28591 29853//28595 30014//28756 +f 30013//28755 30012//28754 30014//28756 30015//28757 +f 29856//28598 29858//28600 30015//28757 30014//28756 +f 29616//28358 29856//28598 30014//28756 29853//28595 +f 30016//28758 29858//28600 29859//28601 30017//28759 +f 30018//28760 30016//28758 30017//28759 30019//28761 +f 30020//28762 30021//28763 30019//28761 30017//28759 +f 29861//28603 30020//28762 30017//28759 29859//28601 +f 30020//28762 29861//28603 29863//28605 30022//28764 +f 30021//28763 30020//28762 30022//28764 30023//28765 +f 30024//28766 30025//28767 30023//28765 30022//28764 +f 29865//28607 30024//28766 30022//28764 29863//28605 +f 30024//28766 29865//28607 29867//28609 30026//28768 +f 30025//28767 30024//28766 30026//28768 30027//28769 +f 30028//28770 30029//28771 30027//28769 30026//28768 +f 29869//28611 30028//28770 30026//28768 29867//28609 +f 30028//28770 29869//28611 29871//28613 30030//28772 +f 30029//28771 30028//28770 30030//28772 30031//28773 +f 30032//28774 30033//28775 30031//28773 30030//28772 +f 29873//28615 30032//28774 30030//28772 29871//28613 +f 30032//28774 29873//28615 29875//28617 30034//28776 +f 30033//28775 30032//28774 30034//28776 30035//28777 +f 30036//28778 30037//28779 30035//28777 30034//28776 +f 29877//28619 30036//28778 30034//28776 29875//28617 +f 30036//28778 29877//28619 29879//28621 30038//28780 +f 30037//28779 30036//28778 30038//28780 30039//28781 +f 30040//28782 30041//28783 30039//28781 30038//28780 +f 29881//28623 30040//28782 30038//28780 29879//28621 +f 30040//28782 29881//28623 29883//28625 30042//28784 +f 30041//28783 30040//28782 30042//28784 30043//28785 +f 30044//28786 30045//28787 30043//28785 30042//28784 +f 29885//28627 30044//28786 30042//28784 29883//28625 +f 30044//28786 29885//28627 29887//28629 30046//28788 +f 30045//28787 30044//28786 30046//28788 30047//28789 +f 30048//28790 30049//28791 30047//28789 30046//28788 +f 29889//28631 30048//28790 30046//28788 29887//28629 +f 30048//28790 29889//28631 29891//28633 30050//28792 +f 30049//28791 30048//28790 30050//28792 30051//28793 +f 30052//28794 30053//28795 30051//28793 30050//28792 +f 29893//28635 30052//28794 30050//28792 29891//28633 +f 30052//28794 29893//28635 29895//28637 30054//28796 +f 30053//28795 30052//28794 30054//28796 30055//28797 +f 30056//28798 30057//28799 30055//28797 30054//28796 +f 29897//28639 30056//28798 30054//28796 29895//28637 +f 30056//28798 29897//28639 29899//28641 30058//28800 +f 30057//28799 30056//28798 30058//28800 30059//28801 +f 30060//28802 30061//28803 30059//28801 30058//28800 +f 29901//28643 30060//28802 30058//28800 29899//28641 +f 30060//28802 29901//28643 29903//28645 30062//28804 +f 30061//28803 30060//28802 30062//28804 30063//28805 +f 30064//28806 30065//28807 30063//28805 30062//28804 +f 29905//28647 30064//28806 30062//28804 29903//28645 +f 30064//28806 29905//28647 29907//28649 30066//28808 +f 30065//28807 30064//28806 30066//28808 30067//28809 +f 30068//28810 30069//28811 30067//28809 30066//28808 +f 29909//28651 30068//28810 30066//28808 29907//28649 +f 30068//28810 29909//28651 29911//28653 30070//28812 +f 30069//28811 30068//28810 30070//28812 30071//28813 +f 30072//28814 30073//28815 30071//28813 30070//28812 +f 29913//28655 30072//28814 30070//28812 29911//28653 +f 30072//28814 29913//28655 29915//28657 30074//28816 +f 30073//28815 30072//28814 30074//28816 30075//28817 +f 30076//28818 30077//28819 30075//28817 30074//28816 +f 29917//28659 30076//28818 30074//28816 29915//28657 +f 30076//28818 29917//28659 29919//28661 30078//28820 +f 30077//28819 30076//28818 30078//28820 30079//28821 +f 30080//28822 30081//28823 30079//28821 30078//28820 +f 29921//28663 30080//28822 30078//28820 29919//28661 +f 30080//28822 29921//28663 29923//28665 30082//28824 +f 30081//28823 30080//28822 30082//28824 30083//28825 +f 30084//28826 30085//28827 30083//28825 30082//28824 +f 29925//28667 30084//28826 30082//28824 29923//28665 +f 30084//28826 29925//28667 29927//28669 30086//28828 +f 30085//28827 30084//28826 30086//28828 30087//28829 +f 30088//28830 30089//28831 30087//28829 30086//28828 +f 29929//28671 30088//28830 30086//28828 29927//28669 +f 30088//28830 29929//28671 29931//28673 30090//28832 +f 30089//28831 30088//28830 30090//28832 30091//28833 +f 30092//28834 30093//28835 30091//28833 30090//28832 +f 29933//28675 30092//28834 30090//28832 29931//28673 +f 30092//28834 29933//28675 29935//28677 30094//28836 +f 30093//28835 30092//28834 30094//28836 30095//28837 +f 30096//28838 30097//28839 30095//28837 30094//28836 +f 29937//28679 30096//28838 30094//28836 29935//28677 +f 30096//28838 29937//28679 29939//28681 30098//28840 +f 30097//28839 30096//28838 30098//28840 30099//28841 +f 30100//28842 30101//28843 30099//28841 30098//28840 +f 29941//28683 30100//28842 30098//28840 29939//28681 +f 30100//28842 29941//28683 29943//28685 30102//28844 +f 30101//28843 30100//28842 30102//28844 30103//28845 +f 30104//28846 30105//28847 30103//28845 30102//28844 +f 29945//28687 30104//28846 30102//28844 29943//28685 +f 30104//28846 29945//28687 29947//28689 30106//28848 +f 30105//28847 30104//28846 30106//28848 30107//28849 +f 30108//28850 30109//28851 30107//28849 30106//28848 +f 29949//28691 30108//28850 30106//28848 29947//28689 +f 30108//28850 29949//28691 29951//28693 30110//28852 +f 30109//28851 30108//28850 30110//28852 30111//28853 +f 30112//28854 30113//28855 30111//28853 30110//28852 +f 29953//28695 30112//28854 30110//28852 29951//28693 +f 30112//28854 29953//28695 29955//28697 30114//28856 +f 30113//28855 30112//28854 30114//28856 30115//28857 +f 30116//28858 30117//28859 30115//28857 30114//28856 +f 29957//28699 30116//28858 30114//28856 29955//28697 +f 30116//28858 29957//28699 29959//28701 30118//28860 +f 30117//28859 30116//28858 30118//28860 30119//28861 +f 30120//28862 30121//28863 30119//28861 30118//28860 +f 29961//28703 30120//28862 30118//28860 29959//28701 +f 30120//28862 29961//28703 29963//28705 30122//28864 +f 30121//28863 30120//28862 30122//28864 30123//28865 +f 30124//28866 30125//28867 30123//28865 30122//28864 +f 29965//28707 30124//28866 30122//28864 29963//28705 +f 30124//28866 29965//28707 29967//28709 30126//28868 +f 30125//28867 30124//28866 30126//28868 30127//28869 +f 30128//28870 30129//28871 30127//28869 30126//28868 +f 29969//28711 30128//28870 30126//28868 29967//28709 +f 30128//28870 29969//28711 29971//28713 30130//28872 +f 30129//28871 30128//28870 30130//28872 30131//28873 +f 30132//28874 30133//28875 30131//28873 30130//28872 +f 29973//28715 30132//28874 30130//28872 29971//28713 +f 30132//28874 29973//28715 29975//28717 30134//28876 +f 30133//28875 30132//28874 30134//28876 30135//28877 +f 30136//28878 30137//28879 30135//28877 30134//28876 +f 29977//28719 30136//28878 30134//28876 29975//28717 +f 30136//28878 29977//28719 29979//28721 30138//28880 +f 30137//28879 30136//28878 30138//28880 30139//28881 +f 30140//28882 30141//28883 30139//28881 30138//28880 +f 29981//28723 30140//28882 30138//28880 29979//28721 +f 30140//28882 29981//28723 29983//28725 30142//28884 +f 30141//28883 30140//28882 30142//28884 30143//28885 +f 30144//28886 30145//28887 30143//28885 30142//28884 +f 29985//28727 30144//28886 30142//28884 29983//28725 +f 30144//28886 29985//28727 29987//28729 30146//28888 +f 30145//28887 30144//28886 30146//28888 30147//28889 +f 30148//28890 30149//28891 30147//28889 30146//28888 +f 29989//28731 30148//28890 30146//28888 29987//28729 +f 30148//28890 29989//28731 29991//28733 30150//28892 +f 30149//28891 30148//28890 30150//28892 30151//28893 +f 30152//28894 30153//28895 30151//28893 30150//28892 +f 29993//28735 30152//28894 30150//28892 29991//28733 +f 30152//28894 29993//28735 29995//28737 30154//28896 +f 30153//28895 30152//28894 30154//28896 30155//28897 +f 30156//28898 30157//28899 30155//28897 30154//28896 +f 29997//28739 30156//28898 30154//28896 29995//28737 +f 30156//28898 29997//28739 29999//28741 30158//28900 +f 30157//28899 30156//28898 30158//28900 30159//28901 +f 30160//28902 30161//28903 30159//28901 30158//28900 +f 30001//28743 30160//28902 30158//28900 29999//28741 +f 30160//28902 30001//28743 30003//28745 30162//28904 +f 30161//28903 30160//28902 30162//28904 30163//28905 +f 30164//28906 30165//28907 30163//28905 30162//28904 +f 30005//28747 30164//28906 30162//28904 30003//28745 +f 30164//28906 30005//28747 30007//28749 30166//28908 +f 30165//28907 30164//28906 30166//28908 30167//28909 +f 30168//28910 30169//28911 30167//28909 30166//28908 +f 30009//28751 30168//28910 30166//28908 30007//28749 +f 30168//28910 30009//28751 30011//28753 30170//28912 +f 30169//28911 30168//28910 30170//28912 30171//28913 +f 30172//28914 30173//28915 30171//28913 30170//28912 +f 30013//28755 30172//28914 30170//28912 30011//28753 +f 30172//28914 30013//28755 30015//28757 30174//28916 +f 30173//28915 30172//28914 30174//28916 30175//28917 +f 30016//28758 30018//28760 30175//28917 30174//28916 +f 29858//28600 30016//28758 30174//28916 30015//28757 +f 30019//28761 30021//28763 30176//28918 30177//28919 +f 30018//28760 30019//28761 30177//28919 30178//28920 +f 30179//28921 30180//28922 30178//28920 30177//28919 +f 30181//28923 30179//28921 30177//28919 30176//28918 +f 30023//28765 30025//28767 30182//28924 30183//28925 +f 30021//28763 30023//28765 30183//28925 30176//28918 +f 30184//28926 30181//28923 30176//28918 30183//28925 +f 30185//28927 30184//28926 30183//28925 30182//28924 +f 30027//28769 30029//28771 30186//28928 30187//28929 +f 30025//28767 30027//28769 30187//28929 30182//28924 +f 30188//28930 30185//28927 30182//28924 30187//28929 +f 30189//28931 30188//28930 30187//28929 30186//28928 +f 30031//28773 30033//28775 30190//28932 30191//28933 +f 30029//28771 30031//28773 30191//28933 30186//28928 +f 30192//28934 30189//28931 30186//28928 30191//28933 +f 30193//28935 30192//28934 30191//28933 30190//28932 +f 30035//28777 30037//28779 30194//28936 30195//28937 +f 30033//28775 30035//28777 30195//28937 30190//28932 +f 30196//28938 30193//28935 30190//28932 30195//28937 +f 30197//28939 30196//28938 30195//28937 30194//28936 +f 30039//28781 30041//28783 30198//28940 30199//28941 +f 30037//28779 30039//28781 30199//28941 30194//28936 +f 30200//28942 30197//28939 30194//28936 30199//28941 +f 30201//28943 30200//28942 30199//28941 30198//28940 +f 30043//28785 30045//28787 30202//28944 30203//28945 +f 30041//28783 30043//28785 30203//28945 30198//28940 +f 30204//28946 30201//28943 30198//28940 30203//28945 +f 30205//28947 30204//28946 30203//28945 30202//28944 +f 30047//28789 30049//28791 30206//28948 30207//28949 +f 30045//28787 30047//28789 30207//28949 30202//28944 +f 30208//28950 30205//28947 30202//28944 30207//28949 +f 30209//28951 30208//28950 30207//28949 30206//28948 +f 30051//28793 30053//28795 30210//28952 30211//28953 +f 30049//28791 30051//28793 30211//28953 30206//28948 +f 30212//28954 30209//28951 30206//28948 30211//28953 +f 30213//28955 30212//28954 30211//28953 30210//28952 +f 30055//28797 30057//28799 30214//28956 30215//28957 +f 30053//28795 30055//28797 30215//28957 30210//28952 +f 30216//28958 30213//28955 30210//28952 30215//28957 +f 30217//28959 30216//28958 30215//28957 30214//28956 +f 30059//28801 30061//28803 30218//28960 30219//28961 +f 30057//28799 30059//28801 30219//28961 30214//28956 +f 30220//28962 30217//28959 30214//28956 30219//28961 +f 30221//28963 30220//28962 30219//28961 30218//28960 +f 30063//28805 30065//28807 30222//28964 30223//28965 +f 30061//28803 30063//28805 30223//28965 30218//28960 +f 30224//28966 30221//28963 30218//28960 30223//28965 +f 30225//28967 30224//28966 30223//28965 30222//28964 +f 30067//28809 30069//28811 30226//28968 30227//28969 +f 30065//28807 30067//28809 30227//28969 30222//28964 +f 30228//28970 30225//28967 30222//28964 30227//28969 +f 30229//28971 30228//28970 30227//28969 30226//28968 +f 30071//28813 30073//28815 30230//28972 30231//28973 +f 30069//28811 30071//28813 30231//28973 30226//28968 +f 30232//28974 30229//28971 30226//28968 30231//28973 +f 30233//28975 30232//28974 30231//28973 30230//28972 +f 30075//28817 30077//28819 30234//28976 30235//28977 +f 30073//28815 30075//28817 30235//28977 30230//28972 +f 30236//28978 30233//28975 30230//28972 30235//28977 +f 30237//28979 30236//28978 30235//28977 30234//28976 +f 30079//28821 30081//28823 30238//28980 30239//28981 +f 30077//28819 30079//28821 30239//28981 30234//28976 +f 30240//28982 30237//28979 30234//28976 30239//28981 +f 30241//28983 30240//28982 30239//28981 30238//28980 +f 30083//28825 30085//28827 30242//28984 30243//28985 +f 30081//28823 30083//28825 30243//28985 30238//28980 +f 30244//28986 30241//28983 30238//28980 30243//28985 +f 30245//28987 30244//28986 30243//28985 30242//28984 +f 30087//28829 30089//28831 30246//28988 30247//28989 +f 30085//28827 30087//28829 30247//28989 30242//28984 +f 30248//28990 30245//28987 30242//28984 30247//28989 +f 30249//28991 30248//28990 30247//28989 30246//28988 +f 30091//28833 30093//28835 30250//28992 30251//28993 +f 30089//28831 30091//28833 30251//28993 30246//28988 +f 30252//28994 30249//28991 30246//28988 30251//28993 +f 30253//28995 30252//28994 30251//28993 30250//28992 +f 30095//28837 30097//28839 30254//28996 30255//28997 +f 30093//28835 30095//28837 30255//28997 30250//28992 +f 30256//28998 30253//28995 30250//28992 30255//28997 +f 30257//28999 30256//28998 30255//28997 30254//28996 +f 30099//28841 30101//28843 30258//29000 30259//29001 +f 30097//28839 30099//28841 30259//29001 30254//28996 +f 30260//29002 30257//28999 30254//28996 30259//29001 +f 30261//29003 30260//29002 30259//29001 30258//29000 +f 30103//28845 30105//28847 30262//29004 30263//29005 +f 30101//28843 30103//28845 30263//29005 30258//29000 +f 30264//29006 30261//29003 30258//29000 30263//29005 +f 30265//29007 30264//29006 30263//29005 30262//29004 +f 30107//28849 30109//28851 30266//29008 30267//29009 +f 30105//28847 30107//28849 30267//29009 30262//29004 +f 30268//29010 30265//29007 30262//29004 30267//29009 +f 30269//29011 30268//29010 30267//29009 30266//29008 +f 30111//28853 30113//28855 30270//29012 30271//29013 +f 30109//28851 30111//28853 30271//29013 30266//29008 +f 30272//29014 30269//29011 30266//29008 30271//29013 +f 30273//29015 30272//29014 30271//29013 30270//29012 +f 30115//28857 30117//28859 30274//29016 30275//29017 +f 30113//28855 30115//28857 30275//29017 30270//29012 +f 30276//29018 30273//29015 30270//29012 30275//29017 +f 30277//29019 30276//29018 30275//29017 30274//29016 +f 30119//28861 30121//28863 30278//29020 30279//29021 +f 30117//28859 30119//28861 30279//29021 30274//29016 +f 30280//29022 30277//29019 30274//29016 30279//29021 +f 30281//29023 30280//29022 30279//29021 30278//29020 +f 30123//28865 30125//28867 30282//29024 30283//29025 +f 30121//28863 30123//28865 30283//29025 30278//29020 +f 30284//29026 30281//29023 30278//29020 30283//29025 +f 30285//29027 30284//29026 30283//29025 30282//29024 +f 30127//28869 30129//28871 30286//29028 30287//29029 +f 30125//28867 30127//28869 30287//29029 30282//29024 +f 30288//29030 30285//29027 30282//29024 30287//29029 +f 30289//29031 30288//29030 30287//29029 30286//29028 +f 30131//28873 30133//28875 30290//29032 30291//29033 +f 30129//28871 30131//28873 30291//29033 30286//29028 +f 30292//29034 30289//29031 30286//29028 30291//29033 +f 30293//29035 30292//29034 30291//29033 30290//29032 +f 30135//28877 30137//28879 30294//29036 30295//29037 +f 30133//28875 30135//28877 30295//29037 30290//29032 +f 30296//29038 30293//29035 30290//29032 30295//29037 +f 30297//29039 30296//29038 30295//29037 30294//29036 +f 30139//28881 30141//28883 30298//29040 30299//29041 +f 30137//28879 30139//28881 30299//29041 30294//29036 +f 30300//29042 30297//29039 30294//29036 30299//29041 +f 30301//29043 30300//29042 30299//29041 30298//29040 +f 30143//28885 30145//28887 30302//29044 30303//29045 +f 30141//28883 30143//28885 30303//29045 30298//29040 +f 30304//29046 30301//29043 30298//29040 30303//29045 +f 30305//29047 30304//29046 30303//29045 30302//29044 +f 30147//28889 30149//28891 30306//29048 30307//29049 +f 30145//28887 30147//28889 30307//29049 30302//29044 +f 30308//29050 30305//29047 30302//29044 30307//29049 +f 30309//29051 30308//29050 30307//29049 30306//29048 +f 30151//28893 30153//28895 30310//29052 30311//29053 +f 30149//28891 30151//28893 30311//29053 30306//29048 +f 30312//29054 30309//29051 30306//29048 30311//29053 +f 30313//29055 30312//29054 30311//29053 30310//29052 +f 30155//28897 30157//28899 30314//29056 30315//29057 +f 30153//28895 30155//28897 30315//29057 30310//29052 +f 30316//29058 30313//29055 30310//29052 30315//29057 +f 30317//29059 30316//29058 30315//29057 30314//29056 +f 30159//28901 30161//28903 30318//29060 30319//29061 +f 30157//28899 30159//28901 30319//29061 30314//29056 +f 30320//29062 30317//29059 30314//29056 30319//29061 +f 30321//29063 30320//29062 30319//29061 30318//29060 +f 30163//28905 30165//28907 30322//29064 30323//29065 +f 30161//28903 30163//28905 30323//29065 30318//29060 +f 30324//29066 30321//29063 30318//29060 30323//29065 +f 30325//29067 30324//29066 30323//29065 30322//29064 +f 30167//28909 30169//28911 30326//29068 30327//29069 +f 30165//28907 30167//28909 30327//29069 30322//29064 +f 30328//29070 30325//29067 30322//29064 30327//29069 +f 30329//29071 30328//29070 30327//29069 30326//29068 +f 30171//28913 30173//28915 30330//29072 30331//29073 +f 30169//28911 30171//28913 30331//29073 30326//29068 +f 30332//29074 30329//29071 30326//29068 30331//29073 +f 30333//29075 30332//29074 30331//29073 30330//29072 +f 30175//28917 30018//28760 30178//28920 30334//29076 +f 30173//28915 30175//28917 30334//29076 30330//29072 +f 30335//29077 30333//29075 30330//29072 30334//29076 +f 30180//28922 30335//29077 30334//29076 30178//28920 +f 30179//28921 30181//28923 30336//29078 30337//29079 +f 30180//28922 30179//28921 30337//29079 30338//29080 +f 30339//29081 30340//29082 30338//29080 30337//29079 +f 30341//29083 30339//29081 30337//29079 30336//29078 +f 30184//28926 30185//28927 30342//29084 30343//29085 +f 30181//28923 30184//28926 30343//29085 30336//29078 +f 30344//29086 30341//29083 30336//29078 30343//29085 +f 30345//29087 30344//29086 30343//29085 30342//29084 +f 30188//28930 30189//28931 30346//29088 30347//29089 +f 30185//28927 30188//28930 30347//29089 30342//29084 +f 30348//29090 30345//29087 30342//29084 30347//29089 +f 30349//29091 30348//29090 30347//29089 30346//29088 +f 30192//28934 30193//28935 30350//29092 30351//29093 +f 30189//28931 30192//28934 30351//29093 30346//29088 +f 30352//29094 30349//29091 30346//29088 30351//29093 +f 30353//29095 30352//29094 30351//29093 30350//29092 +f 30196//28938 30197//28939 30354//29096 30355//29097 +f 30193//28935 30196//28938 30355//29097 30350//29092 +f 30356//29098 30353//29095 30350//29092 30355//29097 +f 30357//29099 30356//29098 30355//29097 30354//29096 +f 30200//28942 30201//28943 30358//29100 30359//29101 +f 30197//28939 30200//28942 30359//29101 30354//29096 +f 30360//29102 30357//29099 30354//29096 30359//29101 +f 30361//29103 30360//29102 30359//29101 30358//29100 +f 30204//28946 30205//28947 30362//29104 30363//29105 +f 30201//28943 30204//28946 30363//29105 30358//29100 +f 30364//29106 30361//29103 30358//29100 30363//29105 +f 30365//29107 30364//29106 30363//29105 30362//29104 +f 30208//28950 30209//28951 30366//29108 30367//29109 +f 30205//28947 30208//28950 30367//29109 30362//29104 +f 30368//29110 30365//29107 30362//29104 30367//29109 +f 30369//29111 30368//29110 30367//29109 30366//29108 +f 30212//28954 30213//28955 30370//29112 30371//29113 +f 30209//28951 30212//28954 30371//29113 30366//29108 +f 30372//29114 30369//29111 30366//29108 30371//29113 +f 30373//29115 30372//29114 30371//29113 30370//29112 +f 30216//28958 30217//28959 30374//29116 30375//29117 +f 30213//28955 30216//28958 30375//29117 30370//29112 +f 30376//29118 30373//29115 30370//29112 30375//29117 +f 30377//29119 30376//29118 30375//29117 30374//29116 +f 30220//28962 30221//28963 30378//29120 30379//29121 +f 30217//28959 30220//28962 30379//29121 30374//29116 +f 30380//29122 30377//29119 30374//29116 30379//29121 +f 30381//29123 30380//29122 30379//29121 30378//29120 +f 30224//28966 30225//28967 30382//29124 30383//29125 +f 30221//28963 30224//28966 30383//29125 30378//29120 +f 30384//29126 30381//29123 30378//29120 30383//29125 +f 30385//29127 30384//29126 30383//29125 30382//29124 +f 30228//28970 30229//28971 30386//29128 30387//29129 +f 30225//28967 30228//28970 30387//29129 30382//29124 +f 30388//29130 30385//29127 30382//29124 30387//29129 +f 30389//29131 30388//29130 30387//29129 30386//29128 +f 30232//28974 30233//28975 30390//29132 30391//29133 +f 30229//28971 30232//28974 30391//29133 30386//29128 +f 30392//29134 30389//29131 30386//29128 30391//29133 +f 30393//29135 30392//29134 30391//29133 30390//29132 +f 30236//28978 30237//28979 30394//29136 30395//29137 +f 30233//28975 30236//28978 30395//29137 30390//29132 +f 30396//29138 30393//29135 30390//29132 30395//29137 +f 30397//29139 30396//29138 30395//29137 30394//29136 +f 30240//28982 30241//28983 30398//29140 30399//29141 +f 30237//28979 30240//28982 30399//29141 30394//29136 +f 30400//29142 30397//29139 30394//29136 30399//29141 +f 30401//29143 30400//29142 30399//29141 30398//29140 +f 30244//28986 30245//28987 30402//29144 30403//29145 +f 30241//28983 30244//28986 30403//29145 30398//29140 +f 30404//29146 30401//29143 30398//29140 30403//29145 +f 30405//29147 30404//29146 30403//29145 30402//29144 +f 30248//28990 30249//28991 30406//29148 30407//29149 +f 30245//28987 30248//28990 30407//29149 30402//29144 +f 30408//29150 30405//29147 30402//29144 30407//29149 +f 30409//29151 30408//29150 30407//29149 30406//29148 +f 30252//28994 30253//28995 30410//29152 30411//29153 +f 30249//28991 30252//28994 30411//29153 30406//29148 +f 30412//29154 30409//29151 30406//29148 30411//29153 +f 30413//29155 30412//29154 30411//29153 30410//29152 +f 30256//28998 30257//28999 30414//29156 30415//29157 +f 30253//28995 30256//28998 30415//29157 30410//29152 +f 30416//29158 30413//29155 30410//29152 30415//29157 +f 30417//29159 30416//29158 30415//29157 30414//29156 +f 30260//29002 30261//29003 30418//29160 30419//29161 +f 30257//28999 30260//29002 30419//29161 30414//29156 +f 30420//29162 30417//29159 30414//29156 30419//29161 +f 30421//29163 30420//29162 30419//29161 30418//29160 +f 30264//29006 30265//29007 30422//29164 30423//29165 +f 30261//29003 30264//29006 30423//29165 30418//29160 +f 30424//29166 30421//29163 30418//29160 30423//29165 +f 30425//29167 30424//29166 30423//29165 30422//29164 +f 30268//29010 30269//29011 30426//29168 30427//29169 +f 30265//29007 30268//29010 30427//29169 30422//29164 +f 30428//29170 30425//29167 30422//29164 30427//29169 +f 30429//29171 30428//29170 30427//29169 30426//29168 +f 30272//29014 30273//29015 30430//29172 30431//29173 +f 30269//29011 30272//29014 30431//29173 30426//29168 +f 30432//29174 30429//29171 30426//29168 30431//29173 +f 30433//29175 30432//29174 30431//29173 30430//29172 +f 30276//29018 30277//29019 30434//29176 30435//29177 +f 30273//29015 30276//29018 30435//29177 30430//29172 +f 30436//29178 30433//29175 30430//29172 30435//29177 +f 30437//29179 30436//29178 30435//29177 30434//29176 +f 30280//29022 30281//29023 30438//29180 30439//29181 +f 30277//29019 30280//29022 30439//29181 30434//29176 +f 30440//29182 30437//29179 30434//29176 30439//29181 +f 30441//29183 30440//29182 30439//29181 30438//29180 +f 30284//29026 30285//29027 30442//29184 30443//29185 +f 30281//29023 30284//29026 30443//29185 30438//29180 +f 30444//29186 30441//29183 30438//29180 30443//29185 +f 30445//29187 30444//29186 30443//29185 30442//29184 +f 30288//29030 30289//29031 30446//29188 30447//29189 +f 30285//29027 30288//29030 30447//29189 30442//29184 +f 30448//29190 30445//29187 30442//29184 30447//29189 +f 30449//29191 30448//29190 30447//29189 30446//29188 +f 30292//29034 30293//29035 30450//29192 30451//29193 +f 30289//29031 30292//29034 30451//29193 30446//29188 +f 30452//29194 30449//29191 30446//29188 30451//29193 +f 30453//29195 30452//29194 30451//29193 30450//29192 +f 30296//29038 30297//29039 30454//29196 30455//29197 +f 30293//29035 30296//29038 30455//29197 30450//29192 +f 30456//29198 30453//29195 30450//29192 30455//29197 +f 30457//29199 30456//29198 30455//29197 30454//29196 +f 30300//29042 30301//29043 30458//29200 30459//29201 +f 30297//29039 30300//29042 30459//29201 30454//29196 +f 30460//29202 30457//29199 30454//29196 30459//29201 +f 30461//29203 30460//29202 30459//29201 30458//29200 +f 30304//29046 30305//29047 30462//29204 30463//29205 +f 30301//29043 30304//29046 30463//29205 30458//29200 +f 30464//29206 30461//29203 30458//29200 30463//29205 +f 30465//29207 30464//29206 30463//29205 30462//29204 +f 30308//29050 30309//29051 30466//29208 30467//29209 +f 30305//29047 30308//29050 30467//29209 30462//29204 +f 30468//29210 30465//29207 30462//29204 30467//29209 +f 30469//29211 30468//29210 30467//29209 30466//29208 +f 30312//29054 30313//29055 30470//29212 30471//29213 +f 30309//29051 30312//29054 30471//29213 30466//29208 +f 30472//29214 30469//29211 30466//29208 30471//29213 +f 30473//29215 30472//29214 30471//29213 30470//29212 +f 30316//29058 30317//29059 30474//29216 30475//29217 +f 30313//29055 30316//29058 30475//29217 30470//29212 +f 30476//29218 30473//29215 30470//29212 30475//29217 +f 30477//29219 30476//29218 30475//29217 30474//29216 +f 30320//29062 30321//29063 30478//29220 30479//29221 +f 30317//29059 30320//29062 30479//29221 30474//29216 +f 30480//29222 30477//29219 30474//29216 30479//29221 +f 30481//29223 30480//29222 30479//29221 30478//29220 +f 30324//29066 30325//29067 30482//29224 30483//29225 +f 30321//29063 30324//29066 30483//29225 30478//29220 +f 30484//29226 30481//29223 30478//29220 30483//29225 +f 30485//29227 30484//29226 30483//29225 30482//29224 +f 30328//29070 30329//29071 30486//29228 30487//29229 +f 30325//29067 30328//29070 30487//29229 30482//29224 +f 30488//29230 30485//29227 30482//29224 30487//29229 +f 30489//29231 30488//29230 30487//29229 30486//29228 +f 30332//29074 30333//29075 30490//29232 30491//29233 +f 30329//29071 30332//29074 30491//29233 30486//29228 +f 30492//29234 30489//29231 30486//29228 30491//29233 +f 30493//29235 30492//29234 30491//29233 30490//29232 +f 30335//29077 30180//28922 30338//29080 30494//29236 +f 30333//29075 30335//29077 30494//29236 30490//29232 +f 30495//29237 30493//29235 30490//29232 30494//29236 +f 30340//29082 30495//29237 30494//29236 30338//29080 +f 30339//29081 30341//29083 30496//29238 30497//29239 +f 30340//29082 30339//29081 30497//29239 30498//29240 +f 30499//29241 30500//29242 30498//29240 30497//29239 +f 30501//29243 30499//29241 30497//29239 30496//29238 +f 30344//29086 30345//29087 30502//29244 30503//29245 +f 30341//29083 30344//29086 30503//29245 30496//29238 +f 30504//29246 30501//29243 30496//29238 30503//29245 +f 30505//29247 30504//29246 30503//29245 30502//29244 +f 30348//29090 30349//29091 30506//29248 30507//29249 +f 30345//29087 30348//29090 30507//29249 30502//29244 +f 30508//29250 30505//29247 30502//29244 30507//29249 +f 30509//29251 30508//29250 30507//29249 30506//29248 +f 30352//29094 30353//29095 30510//29252 30511//29253 +f 30349//29091 30352//29094 30511//29253 30506//29248 +f 30512//29254 30509//29251 30506//29248 30511//29253 +f 30513//29255 30512//29254 30511//29253 30510//29252 +f 30356//29098 30357//29099 30514//29256 30515//29257 +f 30353//29095 30356//29098 30515//29257 30510//29252 +f 30516//29258 30513//29255 30510//29252 30515//29257 +f 30517//29259 30516//29258 30515//29257 30514//29256 +f 30360//29102 30361//29103 30518//29260 30519//29261 +f 30357//29099 30360//29102 30519//29261 30514//29256 +f 30520//29262 30517//29259 30514//29256 30519//29261 +f 30521//29263 30520//29262 30519//29261 30518//29260 +f 30364//29106 30365//29107 30522//29264 30523//29265 +f 30361//29103 30364//29106 30523//29265 30518//29260 +f 30524//29266 30521//29263 30518//29260 30523//29265 +f 30525//29267 30524//29266 30523//29265 30522//29264 +f 30368//29110 30369//29111 30526//29268 30527//29269 +f 30365//29107 30368//29110 30527//29269 30522//29264 +f 30528//29270 30525//29267 30522//29264 30527//29269 +f 30529//29271 30528//29270 30527//29269 30526//29268 +f 30372//29114 30373//29115 30530//29272 30531//29273 +f 30369//29111 30372//29114 30531//29273 30526//29268 +f 30532//29274 30529//29271 30526//29268 30531//29273 +f 30533//29275 30532//29274 30531//29273 30530//29272 +f 30376//29118 30377//29119 30534//29276 30535//29277 +f 30373//29115 30376//29118 30535//29277 30530//29272 +f 30536//29278 30533//29275 30530//29272 30535//29277 +f 30537//29279 30536//29278 30535//29277 30534//29276 +f 30380//29122 30381//29123 30538//29280 30539//29281 +f 30377//29119 30380//29122 30539//29281 30534//29276 +f 30540//29282 30537//29279 30534//29276 30539//29281 +f 30541//29283 30540//29282 30539//29281 30538//29280 +f 30384//29126 30385//29127 30542//29284 30543//29285 +f 30381//29123 30384//29126 30543//29285 30538//29280 +f 30544//29286 30541//29283 30538//29280 30543//29285 +f 30545//29287 30544//29286 30543//29285 30542//29284 +f 30388//29130 30389//29131 30546//29288 30547//29289 +f 30385//29127 30388//29130 30547//29289 30542//29284 +f 30548//29290 30545//29287 30542//29284 30547//29289 +f 30549//29291 30548//29290 30547//29289 30546//29288 +f 30392//29134 30393//29135 30550//29292 30551//29293 +f 30389//29131 30392//29134 30551//29293 30546//29288 +f 30552//29294 30549//29291 30546//29288 30551//29293 +f 30553//29295 30552//29294 30551//29293 30550//29292 +f 30396//29138 30397//29139 30554//29296 30555//29297 +f 30393//29135 30396//29138 30555//29297 30550//29292 +f 30556//29298 30553//29295 30550//29292 30555//29297 +f 30557//29299 30556//29298 30555//29297 30554//29296 +f 30400//29142 30401//29143 30558//29300 30559//29301 +f 30397//29139 30400//29142 30559//29301 30554//29296 +f 30560//29302 30557//29299 30554//29296 30559//29301 +f 30561//29303 30560//29302 30559//29301 30558//29300 +f 30404//29146 30405//29147 30562//29304 30563//29305 +f 30401//29143 30404//29146 30563//29305 30558//29300 +f 30564//29306 30561//29303 30558//29300 30563//29305 +f 30565//29307 30564//29306 30563//29305 30562//29304 +f 30408//29150 30409//29151 30566//29308 30567//29309 +f 30405//29147 30408//29150 30567//29309 30562//29304 +f 30568//29310 30565//29307 30562//29304 30567//29309 +f 30569//29311 30568//29310 30567//29309 30566//29308 +f 30412//29154 30413//29155 30570//29312 30571//29313 +f 30409//29151 30412//29154 30571//29313 30566//29308 +f 30572//29314 30569//29311 30566//29308 30571//29313 +f 30573//29315 30572//29314 30571//29313 30570//29312 +f 30416//29158 30417//29159 30574//29316 30575//29317 +f 30413//29155 30416//29158 30575//29317 30570//29312 +f 30576//29318 30573//29315 30570//29312 30575//29317 +f 30577//29319 30576//29318 30575//29317 30574//29316 +f 30420//29162 30421//29163 30578//29320 30579//29321 +f 30417//29159 30420//29162 30579//29321 30574//29316 +f 30580//29322 30577//29319 30574//29316 30579//29321 +f 30581//29323 30580//29322 30579//29321 30578//29320 +f 30424//29166 30425//29167 30582//29324 30583//29325 +f 30421//29163 30424//29166 30583//29325 30578//29320 +f 30584//29326 30581//29323 30578//29320 30583//29325 +f 30585//29327 30584//29326 30583//29325 30582//29324 +f 30428//29170 30429//29171 30586//29328 30587//29329 +f 30425//29167 30428//29170 30587//29329 30582//29324 +f 30588//29330 30585//29327 30582//29324 30587//29329 +f 30589//29331 30588//29330 30587//29329 30586//29328 +f 30432//29174 30433//29175 30590//29332 30591//29333 +f 30429//29171 30432//29174 30591//29333 30586//29328 +f 30592//29334 30589//29331 30586//29328 30591//29333 +f 30593//29335 30592//29334 30591//29333 30590//29332 +f 30436//29178 30437//29179 30594//29336 30595//29337 +f 30433//29175 30436//29178 30595//29337 30590//29332 +f 30596//29338 30593//29335 30590//29332 30595//29337 +f 30597//29339 30596//29338 30595//29337 30594//29336 +f 30440//29182 30441//29183 30598//29340 30599//29341 +f 30437//29179 30440//29182 30599//29341 30594//29336 +f 30600//29342 30597//29339 30594//29336 30599//29341 +f 30601//29343 30600//29342 30599//29341 30598//29340 +f 30444//29186 30445//29187 30602//29344 30603//29345 +f 30441//29183 30444//29186 30603//29345 30598//29340 +f 30604//29346 30601//29343 30598//29340 30603//29345 +f 30605//29347 30604//29346 30603//29345 30602//29344 +f 30448//29190 30449//29191 30606//29348 30607//29349 +f 30445//29187 30448//29190 30607//29349 30602//29344 +f 30608//29350 30605//29347 30602//29344 30607//29349 +f 30609//29351 30608//29350 30607//29349 30606//29348 +f 30452//29194 30453//29195 30610//29352 30611//29353 +f 30449//29191 30452//29194 30611//29353 30606//29348 +f 30612//29354 30609//29351 30606//29348 30611//29353 +f 30613//29355 30612//29354 30611//29353 30610//29352 +f 30456//29198 30457//29199 30614//29356 30615//29357 +f 30453//29195 30456//29198 30615//29357 30610//29352 +f 30616//29358 30613//29355 30610//29352 30615//29357 +f 30617//29359 30616//29358 30615//29357 30614//29356 +f 30460//29202 30461//29203 30618//29360 30619//29361 +f 30457//29199 30460//29202 30619//29361 30614//29356 +f 30620//29362 30617//29359 30614//29356 30619//29361 +f 30621//29363 30620//29362 30619//29361 30618//29360 +f 30464//29206 30465//29207 30622//29364 30623//29365 +f 30461//29203 30464//29206 30623//29365 30618//29360 +f 30624//29366 30621//29363 30618//29360 30623//29365 +f 30625//29367 30624//29366 30623//29365 30622//29364 +f 30468//29210 30469//29211 30626//29368 30627//29369 +f 30465//29207 30468//29210 30627//29369 30622//29364 +f 30628//29370 30625//29367 30622//29364 30627//29369 +f 30629//29371 30628//29370 30627//29369 30626//29368 +f 30472//29214 30473//29215 30630//29372 30631//29373 +f 30469//29211 30472//29214 30631//29373 30626//29368 +f 30632//29374 30629//29371 30626//29368 30631//29373 +f 30633//29375 30632//29374 30631//29373 30630//29372 +f 30476//29218 30477//29219 30634//29376 30635//29377 +f 30473//29215 30476//29218 30635//29377 30630//29372 +f 30636//29378 30633//29375 30630//29372 30635//29377 +f 30637//29379 30636//29378 30635//29377 30634//29376 +f 30480//29222 30481//29223 30638//29380 30639//29381 +f 30477//29219 30480//29222 30639//29381 30634//29376 +f 30640//29382 30637//29379 30634//29376 30639//29381 +f 30641//29383 30640//29382 30639//29381 30638//29380 +f 30484//29226 30485//29227 30642//29384 30643//29385 +f 30481//29223 30484//29226 30643//29385 30638//29380 +f 30644//29386 30641//29383 30638//29380 30643//29385 +f 30645//29387 30644//29386 30643//29385 30642//29384 +f 30488//29230 30489//29231 30646//29388 30647//29389 +f 30485//29227 30488//29230 30647//29389 30642//29384 +f 30648//29390 30645//29387 30642//29384 30647//29389 +f 30649//29391 30648//29390 30647//29389 30646//29388 +f 30492//29234 30493//29235 30650//29392 30651//29393 +f 30489//29231 30492//29234 30651//29393 30646//29388 +f 30652//29394 30649//29391 30646//29388 30651//29393 +f 30653//29395 30652//29394 30651//29393 30650//29392 +f 30495//29237 30340//29082 30498//29240 30654//29396 +f 30493//29235 30495//29237 30654//29396 30650//29392 +f 30655//29397 30653//29395 30650//29392 30654//29396 +f 30500//29242 30655//29397 30654//29396 30498//29240 +f 28832//27574 24388//23130 26229//24971 30656//29398 +f 28833//27575 28832//27574 30656//29398 30657//29399 +f 30658//29400 30659//29401 30657//29399 30656//29398 +f 26233//24975 30658//29400 30656//29398 26229//24971 +f 28836//27578 28833//27575 30657//29399 30660//29402 +f 28837//27579 28836//27578 30660//29402 30661//29403 +f 30662//29404 30663//29405 30661//29403 30660//29402 +f 30659//29401 30662//29404 30660//29402 30657//29399 +f 28840//27582 28837//27579 30661//29403 30664//29406 +f 28841//27583 28840//27582 30664//29406 30665//29407 +f 30666//29408 30667//29409 30665//29407 30664//29406 +f 30663//29405 30666//29408 30664//29406 30661//29403 +f 28844//27586 28841//27583 30665//29407 30668//29410 +f 28845//27587 28844//27586 30668//29410 30669//29411 +f 30670//29412 30671//29413 30669//29411 30668//29410 +f 30667//29409 30670//29412 30668//29410 30665//29407 +f 28848//27590 28845//27587 30669//29411 30672//29414 +f 28849//27591 28848//27590 30672//29414 30673//29415 +f 30674//29416 30675//29417 30673//29415 30672//29414 +f 30671//29413 30674//29416 30672//29414 30669//29411 +f 28852//27594 28849//27591 30673//29415 30676//29418 +f 28853//27595 28852//27594 30676//29418 30677//29419 +f 30678//29420 30679//29421 30677//29419 30676//29418 +f 30675//29417 30678//29420 30676//29418 30673//29415 +f 28856//27598 28853//27595 30677//29419 30680//29422 +f 28857//27599 28856//27598 30680//29422 30681//29423 +f 30682//29424 30683//29425 30681//29423 30680//29422 +f 30679//29421 30682//29424 30680//29422 30677//29419 +f 28860//27602 28857//27599 30681//29423 30684//29426 +f 28861//27603 28860//27602 30684//29426 30685//29427 +f 30686//29428 30687//29429 30685//29427 30684//29426 +f 30683//29425 30686//29428 30684//29426 30681//29423 +f 28864//27606 28861//27603 30685//29427 30688//29430 +f 28865//27607 28864//27606 30688//29430 30689//29431 +f 30690//29432 30691//29433 30689//29431 30688//29430 +f 30687//29429 30690//29432 30688//29430 30685//29427 +f 28868//27610 28865//27607 30689//29431 30692//29434 +f 28869//27611 28868//27610 30692//29434 30693//29435 +f 30694//29436 30695//29437 30693//29435 30692//29434 +f 30691//29433 30694//29436 30692//29434 30689//29431 +f 28872//27614 28869//27611 30693//29435 30696//29438 +f 28873//27615 28872//27614 30696//29438 30697//29439 +f 30698//29440 30699//29441 30697//29439 30696//29438 +f 30695//29437 30698//29440 30696//29438 30693//29435 +f 28876//27618 28873//27615 30697//29439 30700//29442 +f 28877//27619 28876//27618 30700//29442 30701//29443 +f 30702//29444 30703//29445 30701//29443 30700//29442 +f 30699//29441 30702//29444 30700//29442 30697//29439 +f 28880//27622 28877//27619 30701//29443 30704//29446 +f 28881//27623 28880//27622 30704//29446 30705//29447 +f 30706//29448 30707//29449 30705//29447 30704//29446 +f 30703//29445 30706//29448 30704//29446 30701//29443 +f 28884//27626 28881//27623 30705//29447 30708//29450 +f 28885//27627 28884//27626 30708//29450 30709//29451 +f 30710//29452 30711//29453 30709//29451 30708//29450 +f 30707//29449 30710//29452 30708//29450 30705//29447 +f 28888//27630 28885//27627 30709//29451 30712//29454 +f 28889//27631 28888//27630 30712//29454 30713//29455 +f 30714//29456 30715//29457 30713//29455 30712//29454 +f 30711//29453 30714//29456 30712//29454 30709//29451 +f 28892//27634 28889//27631 30713//29455 30716//29458 +f 28893//27635 28892//27634 30716//29458 30717//29459 +f 30718//29460 30719//29461 30717//29459 30716//29458 +f 30715//29457 30718//29460 30716//29458 30713//29455 +f 28896//27638 28893//27635 30717//29459 30720//29462 +f 28897//27639 28896//27638 30720//29462 30721//29463 +f 30722//29464 30723//29465 30721//29463 30720//29462 +f 30719//29461 30722//29464 30720//29462 30717//29459 +f 28900//27642 28897//27639 30721//29463 30724//29466 +f 28901//27643 28900//27642 30724//29466 30725//29467 +f 30726//29468 30727//29469 30725//29467 30724//29466 +f 30723//29465 30726//29468 30724//29466 30721//29463 +f 28904//27646 28901//27643 30725//29467 30728//29470 +f 28905//27647 28904//27646 30728//29470 30729//29471 +f 30730//29472 30731//29473 30729//29471 30728//29470 +f 30727//29469 30730//29472 30728//29470 30725//29467 +f 28907//27649 28905//27647 30729//29471 30732//29474 +f 24464//23206 28907//27649 30732//29474 26307//25049 +f 30733//29475 26309//25051 26307//25049 30732//29474 +f 30731//29473 30733//29475 30732//29474 30729//29471 +f 30734//29476 26313//25055 26312//25054 30735//29477 +f 30736//29478 30734//29476 30735//29477 30737//29479 +f 30738//29480 30739//29481 30737//29479 30735//29477 +f 26318//25060 30738//29480 30735//29477 26312//25054 +f 30740//29482 30736//29478 30737//29479 30741//29483 +f 30742//29484 30740//29482 30741//29483 30743//29485 +f 30744//29486 30745//29487 30743//29485 30741//29483 +f 30739//29481 30744//29486 30741//29483 30737//29479 +f 30746//29488 30742//29484 30743//29485 30747//29489 +f 30748//29490 30746//29488 30747//29489 30749//29491 +f 30750//29492 30751//29493 30749//29491 30747//29489 +f 30745//29487 30750//29492 30747//29489 30743//29485 +f 30752//29494 30748//29490 30749//29491 30753//29495 +f 30754//29496 30752//29494 30753//29495 30755//29497 +f 30756//29498 30757//29499 30755//29497 30753//29495 +f 30751//29493 30756//29498 30753//29495 30749//29491 +f 30758//29500 30754//29496 30755//29497 30759//29501 +f 30760//29502 30758//29500 30759//29501 30761//29503 +f 30762//29504 30763//29505 30761//29503 30759//29501 +f 30757//29499 30762//29504 30759//29501 30755//29497 +f 30764//29506 30760//29502 30761//29503 30765//29507 +f 30766//29508 30764//29506 30765//29507 30767//29509 +f 30768//29510 30769//29511 30767//29509 30765//29507 +f 30763//29505 30768//29510 30765//29507 30761//29503 +f 30770//29512 30766//29508 30767//29509 30771//29513 +f 30772//29514 30770//29512 30771//29513 30773//29515 +f 30774//29516 30775//29517 30773//29515 30771//29513 +f 30769//29511 30774//29516 30771//29513 30767//29509 +f 30776//29518 30772//29514 30773//29515 30777//29519 +f 30778//29520 30776//29518 30777//29519 30779//29521 +f 30780//29522 30781//29523 30779//29521 30777//29519 +f 30775//29517 30780//29522 30777//29519 30773//29515 +f 30782//29524 30778//29520 30779//29521 30783//29525 +f 30784//29526 30782//29524 30783//29525 30785//29527 +f 30786//29528 30787//29529 30785//29527 30783//29525 +f 30781//29523 30786//29528 30783//29525 30779//29521 +f 30788//29530 30784//29526 30785//29527 30789//29531 +f 30790//29532 30788//29530 30789//29531 30791//29533 +f 30792//29534 30793//29535 30791//29533 30789//29531 +f 30787//29529 30792//29534 30789//29531 30785//29527 +f 30794//29536 30790//29532 30791//29533 30795//29537 +f 30796//29538 30794//29536 30795//29537 30797//29539 +f 30798//29540 30799//29541 30797//29539 30795//29537 +f 30793//29535 30798//29540 30795//29537 30791//29533 +f 30800//29542 30796//29538 30797//29539 30801//29543 +f 30802//29544 30800//29542 30801//29543 30803//29545 +f 30804//29546 30805//29547 30803//29545 30801//29543 +f 30799//29541 30804//29546 30801//29543 30797//29539 +f 30806//29548 30802//29544 30803//29545 30807//29549 +f 30808//29550 30806//29548 30807//29549 30809//29551 +f 30810//29552 30811//29553 30809//29551 30807//29549 +f 30805//29547 30810//29552 30807//29549 30803//29545 +f 30812//29554 30808//29550 30809//29551 30813//29555 +f 30814//29556 30812//29554 30813//29555 30815//29557 +f 30816//29558 30817//29559 30815//29557 30813//29555 +f 30811//29553 30816//29558 30813//29555 30809//29551 +f 30818//29560 30814//29556 30815//29557 30819//29561 +f 30820//29562 30818//29560 30819//29561 30821//29563 +f 30822//29564 30823//29565 30821//29563 30819//29561 +f 30817//29559 30822//29564 30819//29561 30815//29557 +f 30824//29566 30820//29562 30821//29563 30825//29567 +f 30826//29568 30824//29566 30825//29567 30827//29569 +f 30828//29570 30829//29571 30827//29569 30825//29567 +f 30823//29565 30828//29570 30825//29567 30821//29563 +f 30830//29572 30826//29568 30827//29569 30831//29573 +f 30832//29574 30830//29572 30831//29573 30833//29575 +f 30834//29576 30835//29577 30833//29575 30831//29573 +f 30829//29571 30834//29576 30831//29573 30827//29569 +f 30836//29578 30832//29574 30833//29575 30837//29579 +f 30838//29580 30836//29578 30837//29579 30839//29581 +f 30840//29582 30841//29583 30839//29581 30837//29579 +f 30835//29577 30840//29582 30837//29579 30833//29575 +f 30842//29584 30838//29580 30839//29581 30843//29585 +f 30844//29586 30842//29584 30843//29585 30845//29587 +f 30846//29588 30847//29589 30845//29587 30843//29585 +f 30841//29583 30846//29588 30843//29585 30839//29581 +f 30848//29590 30844//29586 30845//29587 30849//29591 +f 26429//25171 30848//29590 30849//29591 26430//25172 +f 30850//29592 26432//25174 26430//25172 30849//29591 +f 30847//29589 30850//29592 30849//29591 30845//29587 +f 30851//29593 30852//29594 30853//29595 30854//29596 +f 30855//29597 30851//29593 30854//29596 30856//29598 +f 26439//25181 26440//25182 30856//29598 30854//29596 +f 26441//25183 26439//25181 30854//29596 30853//29595 +f 30857//29599 30858//29600 30859//29601 30860//29602 +f 30861//29603 30857//29599 30860//29602 30862//29604 +f 30851//29593 30855//29597 30862//29604 30860//29602 +f 30852//29594 30851//29593 30860//29602 30859//29601 +f 30863//29605 30864//29606 30865//29607 30866//29608 +f 30867//29609 30863//29605 30866//29608 30868//29610 +f 30857//29599 30861//29603 30868//29610 30866//29608 +f 30858//29600 30857//29599 30866//29608 30865//29607 +f 30869//29611 30870//29612 30871//29613 30872//29614 +f 30873//29615 30869//29611 30872//29614 30874//29616 +f 30863//29605 30867//29609 30874//29616 30872//29614 +f 30864//29606 30863//29605 30872//29614 30871//29613 +f 30875//29617 30876//29618 30877//29619 30878//29620 +f 30879//29621 30875//29617 30878//29620 30880//29622 +f 30869//29611 30873//29615 30880//29622 30878//29620 +f 30870//29612 30869//29611 30878//29620 30877//29619 +f 30881//29623 30882//29624 30883//29625 30884//29626 +f 30885//29627 30881//29623 30884//29626 30886//29628 +f 30875//29617 30879//29621 30886//29628 30884//29626 +f 30876//29618 30875//29617 30884//29626 30883//29625 +f 30887//29629 30888//29630 30889//29631 30890//29632 +f 30891//29633 30887//29629 30890//29632 30892//29634 +f 30881//29623 30885//29627 30892//29634 30890//29632 +f 30882//29624 30881//29623 30890//29632 30889//29631 +f 30893//29635 30894//29636 30895//29637 30896//29638 +f 30897//29639 30893//29635 30896//29638 30898//29640 +f 30887//29629 30891//29633 30898//29640 30896//29638 +f 30888//29630 30887//29629 30896//29638 30895//29637 +f 30899//29641 30900//29642 30901//29643 30902//29644 +f 30903//29645 30899//29641 30902//29644 30904//29646 +f 30893//29635 30897//29639 30904//29646 30902//29644 +f 30894//29636 30893//29635 30902//29644 30901//29643 +f 30905//29647 30906//29648 30907//29649 30908//29650 +f 30909//29651 30905//29647 30908//29650 30910//29652 +f 30899//29641 30903//29645 30910//29652 30908//29650 +f 30900//29642 30899//29641 30908//29650 30907//29649 +f 30911//29653 30912//29654 30913//29655 30914//29656 +f 30915//29657 30911//29653 30914//29656 30916//29658 +f 30905//29647 30909//29651 30916//29658 30914//29656 +f 30906//29648 30905//29647 30914//29656 30913//29655 +f 30917//29659 30918//29660 30919//29661 30920//29662 +f 30921//29663 30917//29659 30920//29662 30922//29664 +f 30911//29653 30915//29657 30922//29664 30920//29662 +f 30912//29654 30911//29653 30920//29662 30919//29661 +f 30923//29665 30924//29666 30925//29667 30926//29668 +f 30927//29669 30923//29665 30926//29668 30928//29670 +f 30917//29659 30921//29663 30928//29670 30926//29668 +f 30918//29660 30917//29659 30926//29668 30925//29667 +f 30929//29671 30930//29672 30931//29673 30932//29674 +f 30933//29675 30929//29671 30932//29674 30934//29676 +f 30923//29665 30927//29669 30934//29676 30932//29674 +f 30924//29666 30923//29665 30932//29674 30931//29673 +f 30935//29677 30936//29678 30937//29679 30938//29680 +f 30939//29681 30935//29677 30938//29680 30940//29682 +f 30929//29671 30933//29675 30940//29682 30938//29680 +f 30930//29672 30929//29671 30938//29680 30937//29679 +f 30941//29683 30942//29684 30943//29685 30944//29686 +f 30945//29687 30941//29683 30944//29686 30946//29688 +f 30935//29677 30939//29681 30946//29688 30944//29686 +f 30936//29678 30935//29677 30944//29686 30943//29685 +f 30947//29689 30948//29690 30949//29691 30950//29692 +f 30951//29693 30947//29689 30950//29692 30952//29694 +f 30941//29683 30945//29687 30952//29694 30950//29692 +f 30942//29684 30941//29683 30950//29692 30949//29691 +f 30953//29695 30954//29696 30955//29697 30956//29698 +f 30957//29699 30953//29695 30956//29698 30958//29700 +f 30947//29689 30951//29693 30958//29700 30956//29698 +f 30948//29690 30947//29689 30956//29698 30955//29697 +f 30959//29701 30960//29702 30961//29703 30962//29704 +f 30963//29705 30959//29701 30962//29704 30964//29706 +f 30953//29695 30957//29699 30964//29706 30962//29704 +f 30954//29696 30953//29695 30962//29704 30961//29703 +f 26550//25292 26553//25295 30965//29707 30966//29708 +f 26554//25296 26550//25292 30966//29708 30967//29709 +f 30959//29701 30963//29705 30967//29709 30966//29708 +f 30960//29702 30959//29701 30966//29708 30965//29707 +f 30968//29710 30855//29597 30856//29598 30969//29711 +f 30970//29712 30968//29710 30969//29711 30971//29713 +f 26560//25302 26561//25303 30971//29713 30969//29711 +f 26440//25182 26560//25302 30969//29711 30856//29598 +f 30972//29714 30861//29603 30862//29604 30973//29715 +f 30974//29716 30972//29714 30973//29715 30975//29717 +f 30968//29710 30970//29712 30975//29717 30973//29715 +f 30855//29597 30968//29710 30973//29715 30862//29604 +f 30976//29718 30867//29609 30868//29610 30977//29719 +f 30978//29720 30976//29718 30977//29719 30979//29721 +f 30972//29714 30974//29716 30979//29721 30977//29719 +f 30861//29603 30972//29714 30977//29719 30868//29610 +f 30980//29722 30873//29615 30874//29616 30981//29723 +f 30982//29724 30980//29722 30981//29723 30983//29725 +f 30976//29718 30978//29720 30983//29725 30981//29723 +f 30867//29609 30976//29718 30981//29723 30874//29616 +f 30984//29726 30879//29621 30880//29622 30985//29727 +f 30986//29728 30984//29726 30985//29727 30987//29729 +f 30980//29722 30982//29724 30987//29729 30985//29727 +f 30873//29615 30980//29722 30985//29727 30880//29622 +f 30988//29730 30885//29627 30886//29628 30989//29731 +f 30990//29732 30988//29730 30989//29731 30991//29733 +f 30984//29726 30986//29728 30991//29733 30989//29731 +f 30879//29621 30984//29726 30989//29731 30886//29628 +f 30992//29734 30891//29633 30892//29634 30993//29735 +f 30994//29736 30992//29734 30993//29735 30995//29737 +f 30988//29730 30990//29732 30995//29737 30993//29735 +f 30885//29627 30988//29730 30993//29735 30892//29634 +f 30996//29738 30897//29639 30898//29640 30997//29739 +f 30998//29740 30996//29738 30997//29739 30999//29741 +f 30992//29734 30994//29736 30999//29741 30997//29739 +f 30891//29633 30992//29734 30997//29739 30898//29640 +f 31000//29742 30903//29645 30904//29646 31001//29743 +f 31002//29744 31000//29742 31001//29743 31003//29745 +f 30996//29738 30998//29740 31003//29745 31001//29743 +f 30897//29639 30996//29738 31001//29743 30904//29646 +f 31004//29746 30909//29651 30910//29652 31005//29747 +f 31006//29748 31004//29746 31005//29747 31007//29749 +f 31000//29742 31002//29744 31007//29749 31005//29747 +f 30903//29645 31000//29742 31005//29747 30910//29652 +f 31008//29750 30915//29657 30916//29658 31009//29751 +f 31010//29752 31008//29750 31009//29751 31011//29753 +f 31004//29746 31006//29748 31011//29753 31009//29751 +f 30909//29651 31004//29746 31009//29751 30916//29658 +f 31012//29754 30921//29663 30922//29664 31013//29755 +f 31014//29756 31012//29754 31013//29755 31015//29757 +f 31008//29750 31010//29752 31015//29757 31013//29755 +f 30915//29657 31008//29750 31013//29755 30922//29664 +f 31016//29758 30927//29669 30928//29670 31017//29759 +f 31018//29760 31016//29758 31017//29759 31019//29761 +f 31012//29754 31014//29756 31019//29761 31017//29759 +f 30921//29663 31012//29754 31017//29759 30928//29670 +f 31020//29762 30933//29675 30934//29676 31021//29763 +f 31022//29764 31020//29762 31021//29763 31023//29765 +f 31016//29758 31018//29760 31023//29765 31021//29763 +f 30927//29669 31016//29758 31021//29763 30934//29676 +f 31024//29766 30939//29681 30940//29682 31025//29767 +f 31026//29768 31024//29766 31025//29767 31027//29769 +f 31020//29762 31022//29764 31027//29769 31025//29767 +f 30933//29675 31020//29762 31025//29767 30940//29682 +f 31028//29770 30945//29687 30946//29688 31029//29771 +f 31030//29772 31028//29770 31029//29771 31031//29773 +f 31024//29766 31026//29768 31031//29773 31029//29771 +f 30939//29681 31024//29766 31029//29771 30946//29688 +f 31032//29774 30951//29693 30952//29694 31033//29775 +f 31034//29776 31032//29774 31033//29775 31035//29777 +f 31028//29770 31030//29772 31035//29777 31033//29775 +f 30945//29687 31028//29770 31033//29775 30952//29694 +f 31036//29778 30957//29699 30958//29700 31037//29779 +f 31038//29780 31036//29778 31037//29779 31039//29781 +f 31032//29774 31034//29776 31039//29781 31037//29779 +f 30951//29693 31032//29774 31037//29779 30958//29700 +f 31040//29782 30963//29705 30964//29706 31041//29783 +f 31042//29784 31040//29782 31041//29783 31043//29785 +f 31036//29778 31038//29780 31043//29785 31041//29783 +f 30957//29699 31036//29778 31041//29783 30964//29706 +f 26634//25376 26554//25296 30967//29709 31044//29786 +f 26636//25378 26634//25376 31044//29786 31045//29787 +f 31040//29782 31042//29784 31045//29787 31044//29786 +f 30963//29705 31040//29782 31044//29786 30967//29709 +f 31046//29788 30739//29481 30738//29480 31047//29789 +f 30852//29594 31046//29788 31047//29789 30853//29595 +f 26640//25382 26441//25183 30853//29595 31047//29789 +f 26318//25060 26640//25382 31047//29789 30738//29480 +f 31048//29790 30745//29487 30744//29486 31049//29791 +f 30858//29600 31048//29790 31049//29791 30859//29601 +f 31046//29788 30852//29594 30859//29601 31049//29791 +f 30739//29481 31046//29788 31049//29791 30744//29486 +f 31050//29792 30751//29493 30750//29492 31051//29793 +f 30864//29606 31050//29792 31051//29793 30865//29607 +f 31048//29790 30858//29600 30865//29607 31051//29793 +f 30745//29487 31048//29790 31051//29793 30750//29492 +f 31052//29794 30757//29499 30756//29498 31053//29795 +f 30870//29612 31052//29794 31053//29795 30871//29613 +f 31050//29792 30864//29606 30871//29613 31053//29795 +f 30751//29493 31050//29792 31053//29795 30756//29498 +f 31054//29796 30763//29505 30762//29504 31055//29797 +f 30876//29618 31054//29796 31055//29797 30877//29619 +f 31052//29794 30870//29612 30877//29619 31055//29797 +f 30757//29499 31052//29794 31055//29797 30762//29504 +f 31056//29798 30769//29511 30768//29510 31057//29799 +f 30882//29624 31056//29798 31057//29799 30883//29625 +f 31054//29796 30876//29618 30883//29625 31057//29799 +f 30763//29505 31054//29796 31057//29799 30768//29510 +f 31058//29800 30775//29517 30774//29516 31059//29801 +f 30888//29630 31058//29800 31059//29801 30889//29631 +f 31056//29798 30882//29624 30889//29631 31059//29801 +f 30769//29511 31056//29798 31059//29801 30774//29516 +f 31060//29802 30781//29523 30780//29522 31061//29803 +f 30894//29636 31060//29802 31061//29803 30895//29637 +f 31058//29800 30888//29630 30895//29637 31061//29803 +f 30775//29517 31058//29800 31061//29803 30780//29522 +f 31062//29804 30787//29529 30786//29528 31063//29805 +f 30900//29642 31062//29804 31063//29805 30901//29643 +f 31060//29802 30894//29636 30901//29643 31063//29805 +f 30781//29523 31060//29802 31063//29805 30786//29528 +f 31064//29806 30793//29535 30792//29534 31065//29807 +f 30906//29648 31064//29806 31065//29807 30907//29649 +f 31062//29804 30900//29642 30907//29649 31065//29807 +f 30787//29529 31062//29804 31065//29807 30792//29534 +f 31066//29808 30799//29541 30798//29540 31067//29809 +f 30912//29654 31066//29808 31067//29809 30913//29655 +f 31064//29806 30906//29648 30913//29655 31067//29809 +f 30793//29535 31064//29806 31067//29809 30798//29540 +f 31068//29810 30805//29547 30804//29546 31069//29811 +f 30918//29660 31068//29810 31069//29811 30919//29661 +f 31066//29808 30912//29654 30919//29661 31069//29811 +f 30799//29541 31066//29808 31069//29811 30804//29546 +f 31070//29812 30811//29553 30810//29552 31071//29813 +f 30924//29666 31070//29812 31071//29813 30925//29667 +f 31068//29810 30918//29660 30925//29667 31071//29813 +f 30805//29547 31068//29810 31071//29813 30810//29552 +f 31072//29814 30817//29559 30816//29558 31073//29815 +f 30930//29672 31072//29814 31073//29815 30931//29673 +f 31070//29812 30924//29666 30931//29673 31073//29815 +f 30811//29553 31070//29812 31073//29815 30816//29558 +f 31074//29816 30823//29565 30822//29564 31075//29817 +f 30936//29678 31074//29816 31075//29817 30937//29679 +f 31072//29814 30930//29672 30937//29679 31075//29817 +f 30817//29559 31072//29814 31075//29817 30822//29564 +f 31076//29818 30829//29571 30828//29570 31077//29819 +f 30942//29684 31076//29818 31077//29819 30943//29685 +f 31074//29816 30936//29678 30943//29685 31077//29819 +f 30823//29565 31074//29816 31077//29819 30828//29570 +f 31078//29820 30835//29577 30834//29576 31079//29821 +f 30948//29690 31078//29820 31079//29821 30949//29691 +f 31076//29818 30942//29684 30949//29691 31079//29821 +f 30829//29571 31076//29818 31079//29821 30834//29576 +f 31080//29822 30841//29583 30840//29582 31081//29823 +f 30954//29696 31080//29822 31081//29823 30955//29697 +f 31078//29820 30948//29690 30955//29697 31081//29823 +f 30835//29577 31078//29820 31081//29823 30840//29582 +f 31082//29824 30847//29589 30846//29588 31083//29825 +f 30960//29702 31082//29824 31083//29825 30961//29703 +f 31080//29822 30954//29696 30961//29703 31083//29825 +f 30841//29583 31080//29822 31083//29825 30846//29588 +f 26677//25419 26432//25174 30850//29592 31084//29826 +f 26553//25295 26677//25419 31084//29826 30965//29707 +f 31082//29824 30960//29702 30965//29707 31084//29826 +f 30847//29589 31082//29824 31084//29826 30850//29592 +f 31085//29827 30659//29401 30658//29400 31086//29828 +f 30736//29478 31085//29827 31086//29828 30734//29476 +f 26681//25423 26313//25055 30734//29476 31086//29828 +f 26233//24975 26681//25423 31086//29828 30658//29400 +f 31087//29829 30663//29405 30662//29404 31088//29830 +f 30742//29484 31087//29829 31088//29830 30740//29482 +f 31085//29827 30736//29478 30740//29482 31088//29830 +f 30659//29401 31085//29827 31088//29830 30662//29404 +f 31089//29831 30667//29409 30666//29408 31090//29832 +f 30748//29490 31089//29831 31090//29832 30746//29488 +f 31087//29829 30742//29484 30746//29488 31090//29832 +f 30663//29405 31087//29829 31090//29832 30666//29408 +f 31091//29833 30671//29413 30670//29412 31092//29834 +f 30754//29496 31091//29833 31092//29834 30752//29494 +f 31089//29831 30748//29490 30752//29494 31092//29834 +f 30667//29409 31089//29831 31092//29834 30670//29412 +f 31093//29835 30675//29417 30674//29416 31094//29836 +f 30760//29502 31093//29835 31094//29836 30758//29500 +f 31091//29833 30754//29496 30758//29500 31094//29836 +f 30671//29413 31091//29833 31094//29836 30674//29416 +f 31095//29837 30679//29421 30678//29420 31096//29838 +f 30766//29508 31095//29837 31096//29838 30764//29506 +f 31093//29835 30760//29502 30764//29506 31096//29838 +f 30675//29417 31093//29835 31096//29838 30678//29420 +f 31097//29839 30683//29425 30682//29424 31098//29840 +f 30772//29514 31097//29839 31098//29840 30770//29512 +f 31095//29837 30766//29508 30770//29512 31098//29840 +f 30679//29421 31095//29837 31098//29840 30682//29424 +f 31099//29841 30687//29429 30686//29428 31100//29842 +f 30778//29520 31099//29841 31100//29842 30776//29518 +f 31097//29839 30772//29514 30776//29518 31100//29842 +f 30683//29425 31097//29839 31100//29842 30686//29428 +f 31101//29843 30691//29433 30690//29432 31102//29844 +f 30784//29526 31101//29843 31102//29844 30782//29524 +f 31099//29841 30778//29520 30782//29524 31102//29844 +f 30687//29429 31099//29841 31102//29844 30690//29432 +f 31103//29845 30695//29437 30694//29436 31104//29846 +f 30790//29532 31103//29845 31104//29846 30788//29530 +f 31101//29843 30784//29526 30788//29530 31104//29846 +f 30691//29433 31101//29843 31104//29846 30694//29436 +f 31105//29847 30699//29441 30698//29440 31106//29848 +f 30796//29538 31105//29847 31106//29848 30794//29536 +f 31103//29845 30790//29532 30794//29536 31106//29848 +f 30695//29437 31103//29845 31106//29848 30698//29440 +f 31107//29849 30703//29445 30702//29444 31108//29850 +f 30802//29544 31107//29849 31108//29850 30800//29542 +f 31105//29847 30796//29538 30800//29542 31108//29850 +f 30699//29441 31105//29847 31108//29850 30702//29444 +f 31109//29851 30707//29449 30706//29448 31110//29852 +f 30808//29550 31109//29851 31110//29852 30806//29548 +f 31107//29849 30802//29544 30806//29548 31110//29852 +f 30703//29445 31107//29849 31110//29852 30706//29448 +f 31111//29853 30711//29453 30710//29452 31112//29854 +f 30814//29556 31111//29853 31112//29854 30812//29554 +f 31109//29851 30808//29550 30812//29554 31112//29854 +f 30707//29449 31109//29851 31112//29854 30710//29452 +f 31113//29855 30715//29457 30714//29456 31114//29856 +f 30820//29562 31113//29855 31114//29856 30818//29560 +f 31111//29853 30814//29556 30818//29560 31114//29856 +f 30711//29453 31111//29853 31114//29856 30714//29456 +f 31115//29857 30719//29461 30718//29460 31116//29858 +f 30826//29568 31115//29857 31116//29858 30824//29566 +f 31113//29855 30820//29562 30824//29566 31116//29858 +f 30715//29457 31113//29855 31116//29858 30718//29460 +f 31117//29859 30723//29465 30722//29464 31118//29860 +f 30832//29574 31117//29859 31118//29860 30830//29572 +f 31115//29857 30826//29568 30830//29572 31118//29860 +f 30719//29461 31115//29857 31118//29860 30722//29464 +f 31119//29861 30727//29469 30726//29468 31120//29862 +f 30838//29580 31119//29861 31120//29862 30836//29578 +f 31117//29859 30832//29574 30836//29578 31120//29862 +f 30723//29465 31117//29859 31120//29862 30726//29468 +f 31121//29863 30731//29473 30730//29472 31122//29864 +f 30844//29586 31121//29863 31122//29864 30842//29584 +f 31119//29861 30838//29580 30842//29584 31122//29864 +f 30727//29469 31119//29861 31122//29864 30730//29472 +f 26718//25460 26309//25051 30733//29475 31123//29865 +f 26429//25171 26718//25460 31123//29865 30848//29590 +f 31121//29863 30844//29586 30848//29590 31123//29865 +f 30731//29473 31121//29863 31123//29865 30733//29475 +f 27995//26737 27994//26736 31124//29866 29560//28302 +f 29560//28302 31124//29866 28912//27654 28914//27656 +f 28913//27655 28912//27654 31124//29866 31125//29867 +f 31125//29867 31124//29866 27994//26736 27955//26697 +f 27955//26697 27954//26696 31126//29868 31125//29867 +f 31125//29867 31126//29868 29543//28285 28913//27655 +f 29546//28288 29543//28285 31126//29868 31127//29869 +f 31127//29869 31126//29868 27954//26696 27915//26657 +f 27915//26657 27914//26656 31128//29870 31127//29869 +f 31127//29869 31128//29870 29547//28289 29546//28288 +f 29550//28292 29547//28289 31128//29870 31129//29871 +f 31129//29871 31128//29870 27914//26656 27874//26616 +f 31129//29871 27874//26616 27875//26617 31130//29872 +f 29550//28292 31129//29871 31130//29872 29551//28293 +f 31131//29873 29554//28296 29551//28293 31130//29872 +f 27834//26576 31131//29873 31130//29872 27875//26617 +f 31131//29873 27834//26576 27835//26577 31132//29874 +f 29554//28296 31131//29873 31132//29874 29555//28297 +f 31133//29875 29558//28300 29555//28297 31132//29874 +f 27794//26536 31133//29875 31132//29874 27835//26577 +f 31133//29875 27794//26536 27795//26537 31134//29876 +f 29558//28300 31133//29875 31134//29876 29561//28303 +f 28992//27734 28993//27735 29561//28303 31134//29876 +f 27754//26496 28992//27734 31134//29876 27795//26537 +f 27610//26352 27615//26357 31135//29877 28989//27731 +f 28989//27731 31135//29877 29568//28310 28986//27728 +f 29571//28313 29568//28310 31135//29877 31136//29878 +f 31136//29878 31135//29877 27615//26357 27616//26358 +f 27616//26358 27621//26363 31137//29879 31136//29878 +f 31136//29878 31137//29879 29572//28314 29571//28313 +f 29575//28317 29572//28314 31137//29879 31138//29880 +f 31138//29880 31137//29879 27621//26363 27622//26364 +f 27622//26364 27627//26369 31139//29881 31138//29880 +f 31138//29880 31139//29881 29576//28318 29575//28317 +f 29579//28321 29576//28318 31139//29881 31140//29882 +f 31140//29882 31139//29881 27627//26369 27628//26370 +f 31140//29882 27628//26370 27633//26375 31141//29883 +f 29579//28321 31140//29882 31141//29883 29580//28322 +f 31142//29884 29583//28325 29580//28322 31141//29883 +f 27635//26377 31142//29884 31141//29883 27633//26375 +f 31142//29884 27635//26377 27639//26381 31143//29885 +f 29583//28325 31142//29884 31143//29885 29584//28326 +f 31144//29886 29587//28329 29584//28326 31143//29885 +f 27641//26383 31144//29886 31143//29885 27639//26381 +f 31144//29886 27641//26383 27645//26387 31145//29887 +f 29587//28329 31144//29886 31145//29887 29588//28330 +f 28984//27726 28985//27727 29588//28330 31145//29887 +f 27647//26389 28984//27726 31145//29887 27645//26387 +f 30499//29241 30501//29243 31146//29888 31147//29889 +f 30500//29242 30499//29241 31147//29889 31148//29890 +f 31149//29891 31150//29892 31148//29890 31147//29889 +f 31151//29893 31149//29891 31147//29889 31146//29888 +f 30504//29246 30505//29247 31152//29894 31153//29895 +f 30501//29243 30504//29246 31153//29895 31146//29888 +f 31154//29896 31151//29893 31146//29888 31153//29895 +f 31155//29897 31154//29896 31153//29895 31152//29894 +f 30508//29250 30509//29251 31156//29898 31157//29899 +f 30505//29247 30508//29250 31157//29899 31152//29894 +f 31158//29900 31155//29897 31152//29894 31157//29899 +f 31159//29901 31158//29900 31157//29899 31156//29898 +f 30512//29254 30513//29255 31160//29902 31161//29903 +f 30509//29251 30512//29254 31161//29903 31156//29898 +f 31162//29904 31159//29901 31156//29898 31161//29903 +f 31163//29905 31162//29904 31161//29903 31160//29902 +f 30516//29258 30517//29259 31164//29906 31165//29907 +f 30513//29255 30516//29258 31165//29907 31160//29902 +f 31166//29908 31163//29905 31160//29902 31165//29907 +f 31167//29909 31166//29908 31165//29907 31164//29906 +f 30520//29262 30521//29263 31168//29910 31169//29911 +f 30517//29259 30520//29262 31169//29911 31164//29906 +f 31170//29912 31167//29909 31164//29906 31169//29911 +f 31171//29913 31170//29912 31169//29911 31168//29910 +f 30524//29266 30525//29267 31172//29914 31173//29915 +f 30521//29263 30524//29266 31173//29915 31168//29910 +f 31174//29916 31171//29913 31168//29910 31173//29915 +f 31175//29917 31174//29916 31173//29915 31172//29914 +f 30528//29270 30529//29271 31176//29918 31177//29919 +f 30525//29267 30528//29270 31177//29919 31172//29914 +f 31178//29920 31175//29917 31172//29914 31177//29919 +f 31179//29921 31178//29920 31177//29919 31176//29918 +f 30532//29274 30533//29275 31180//29922 31181//29923 +f 30529//29271 30532//29274 31181//29923 31176//29918 +f 31182//29924 31179//29921 31176//29918 31181//29923 +f 31183//29925 31182//29924 31181//29923 31180//29922 +f 30536//29278 30537//29279 31184//29926 31185//29927 +f 30533//29275 30536//29278 31185//29927 31180//29922 +f 31186//29928 31183//29925 31180//29922 31185//29927 +f 31187//29929 31186//29928 31185//29927 31184//29926 +f 30540//29282 30541//29283 31188//29930 31189//29931 +f 30537//29279 30540//29282 31189//29931 31184//29926 +f 31190//29932 31187//29929 31184//29926 31189//29931 +f 31191//29933 31190//29932 31189//29931 31188//29930 +f 30544//29286 30545//29287 31192//29934 31193//29935 +f 30541//29283 30544//29286 31193//29935 31188//29930 +f 31194//29936 31191//29933 31188//29930 31193//29935 +f 31195//29937 31194//29936 31193//29935 31192//29934 +f 30548//29290 30549//29291 31196//29938 31197//29939 +f 30545//29287 30548//29290 31197//29939 31192//29934 +f 31198//29940 31195//29937 31192//29934 31197//29939 +f 31199//29941 31198//29940 31197//29939 31196//29938 +f 30552//29294 30553//29295 31200//29942 31201//29943 +f 30549//29291 30552//29294 31201//29943 31196//29938 +f 31202//29944 31199//29941 31196//29938 31201//29943 +f 31203//29945 31202//29944 31201//29943 31200//29942 +f 30556//29298 30557//29299 31204//29946 31205//29947 +f 30553//29295 30556//29298 31205//29947 31200//29942 +f 31206//29948 31203//29945 31200//29942 31205//29947 +f 31207//29949 31206//29948 31205//29947 31204//29946 +f 30560//29302 30561//29303 31208//29950 31209//29951 +f 30557//29299 30560//29302 31209//29951 31204//29946 +f 31210//29952 31207//29949 31204//29946 31209//29951 +f 31211//29953 31210//29952 31209//29951 31208//29950 +f 30564//29306 30565//29307 31212//29954 31213//29955 +f 30561//29303 30564//29306 31213//29955 31208//29950 +f 31214//29956 31211//29953 31208//29950 31213//29955 +f 31215//29957 31214//29956 31213//29955 31212//29954 +f 30568//29310 30569//29311 31216//29958 31217//29959 +f 30565//29307 30568//29310 31217//29959 31212//29954 +f 31218//29960 31215//29957 31212//29954 31217//29959 +f 31219//29961 31218//29960 31217//29959 31216//29958 +f 30572//29314 30573//29315 31220//29962 31221//29963 +f 30569//29311 30572//29314 31221//29963 31216//29958 +f 31222//29964 31219//29961 31216//29958 31221//29963 +f 31223//29965 31222//29964 31221//29963 31220//29962 +f 30576//29318 30577//29319 31224//29966 31225//29967 +f 30573//29315 30576//29318 31225//29967 31220//29962 +f 31226//29968 31223//29965 31220//29962 31225//29967 +f 31227//29969 31226//29968 31225//29967 31224//29966 +f 30580//29322 30581//29323 31228//29970 31229//29971 +f 30577//29319 30580//29322 31229//29971 31224//29966 +f 31230//29972 31227//29969 31224//29966 31229//29971 +f 31231//29973 31230//29972 31229//29971 31228//29970 +f 30584//29326 30585//29327 31232//29974 31233//29975 +f 30581//29323 30584//29326 31233//29975 31228//29970 +f 31234//29976 31231//29973 31228//29970 31233//29975 +f 31235//29977 31234//29976 31233//29975 31232//29974 +f 30588//29330 30589//29331 31236//29978 31237//29979 +f 30585//29327 30588//29330 31237//29979 31232//29974 +f 31238//29980 31235//29977 31232//29974 31237//29979 +f 31239//29981 31238//29980 31237//29979 31236//29978 +f 30592//29334 30593//29335 31240//29982 31241//29983 +f 30589//29331 30592//29334 31241//29983 31236//29978 +f 31242//29984 31239//29981 31236//29978 31241//29983 +f 31243//29985 31242//29984 31241//29983 31240//29982 +f 30596//29338 30597//29339 31244//29986 31245//29987 +f 30593//29335 30596//29338 31245//29987 31240//29982 +f 31246//29988 31243//29985 31240//29982 31245//29987 +f 31247//29989 31246//29988 31245//29987 31244//29986 +f 30600//29342 30601//29343 31248//29990 31249//29991 +f 30597//29339 30600//29342 31249//29991 31244//29986 +f 31250//29992 31247//29989 31244//29986 31249//29991 +f 31251//29993 31250//29992 31249//29991 31248//29990 +f 30604//29346 30605//29347 31252//29994 31253//29995 +f 30601//29343 30604//29346 31253//29995 31248//29990 +f 31254//29996 31251//29993 31248//29990 31253//29995 +f 31255//29997 31254//29996 31253//29995 31252//29994 +f 30608//29350 30609//29351 31256//29998 31257//29999 +f 30605//29347 30608//29350 31257//29999 31252//29994 +f 31258//30000 31255//29997 31252//29994 31257//29999 +f 31259//30001 31258//30000 31257//29999 31256//29998 +f 30612//29354 30613//29355 31260//30002 31261//30003 +f 30609//29351 30612//29354 31261//30003 31256//29998 +f 31262//30004 31259//30001 31256//29998 31261//30003 +f 31263//30005 31262//30004 31261//30003 31260//30002 +f 30616//29358 30617//29359 31264//30006 31265//30007 +f 30613//29355 30616//29358 31265//30007 31260//30002 +f 31266//30008 31263//30005 31260//30002 31265//30007 +f 31267//30009 31266//30008 31265//30007 31264//30006 +f 30620//29362 30621//29363 31268//30010 31269//30011 +f 30617//29359 30620//29362 31269//30011 31264//30006 +f 31270//30012 31267//30009 31264//30006 31269//30011 +f 31271//30013 31270//30012 31269//30011 31268//30010 +f 30624//29366 30625//29367 31272//30014 31273//30015 +f 30621//29363 30624//29366 31273//30015 31268//30010 +f 31274//30016 31271//30013 31268//30010 31273//30015 +f 31275//30017 31274//30016 31273//30015 31272//30014 +f 30628//29370 30629//29371 31276//30018 31277//30019 +f 30625//29367 30628//29370 31277//30019 31272//30014 +f 31278//30020 31275//30017 31272//30014 31277//30019 +f 31279//30021 31278//30020 31277//30019 31276//30018 +f 30632//29374 30633//29375 31280//30022 31281//30023 +f 30629//29371 30632//29374 31281//30023 31276//30018 +f 31282//30024 31279//30021 31276//30018 31281//30023 +f 31283//30025 31282//30024 31281//30023 31280//30022 +f 30636//29378 30637//29379 31284//30026 31285//30027 +f 30633//29375 30636//29378 31285//30027 31280//30022 +f 31286//30028 31283//30025 31280//30022 31285//30027 +f 31287//30029 31286//30028 31285//30027 31284//30026 +f 30640//29382 30641//29383 31288//30030 31289//30031 +f 30637//29379 30640//29382 31289//30031 31284//30026 +f 31290//30032 31287//30029 31284//30026 31289//30031 +f 31291//30033 31290//30032 31289//30031 31288//30030 +f 30644//29386 30645//29387 31292//30034 31293//30035 +f 30641//29383 30644//29386 31293//30035 31288//30030 +f 31294//30036 31291//30033 31288//30030 31293//30035 +f 31295//30037 31294//30036 31293//30035 31292//30034 +f 30648//29390 30649//29391 31296//30038 31297//30039 +f 30645//29387 30648//29390 31297//30039 31292//30034 +f 31298//30040 31295//30037 31292//30034 31297//30039 +f 31299//30041 31298//30040 31297//30039 31296//30038 +f 30652//29394 30653//29395 31300//30042 31301//30043 +f 30649//29391 30652//29394 31301//30043 31296//30038 +f 31302//30044 31299//30041 31296//30038 31301//30043 +f 31303//30045 31302//30044 31301//30043 31300//30042 +f 30655//29397 30500//29242 31148//29890 31304//30046 +f 30653//29395 30655//29397 31304//30046 31300//30042 +f 31305//30047 31303//30045 31300//30042 31304//30046 +f 31150//29892 31305//30047 31304//30046 31148//29890 +f 27798//26540 27837//26579 31306//30048 28977//27719 +f 28977//27719 31306//30048 28970//27712 28972//27714 +f 28971//27713 28970//27712 31306//30048 31307//30049 +f 31307//30049 31306//30048 27837//26579 27836//26578 +f 27836//26578 27878//26620 31308//30050 31307//30049 +f 31307//30049 31308//30050 29596//28338 28971//27713 +f 29599//28341 29596//28338 31308//30050 31309//30051 +f 31309//30051 31308//30050 27878//26620 27877//26619 +f 31309//30051 27877//26619 27918//26660 31310//30052 +f 29599//28341 31309//30051 31310//30052 29600//28342 +f 31311//30053 28964//27706 29600//28342 31310//30052 +f 27917//26659 31311//30053 31310//30052 27918//26660 +f 31311//30053 27917//26659 27958//26700 31312//30054 +f 28964//27706 31311//30053 31312//30054 28962//27704 +f 28956//27698 28957//27699 28962//27704 31312//30054 +f 27957//26699 28956//27698 31312//30054 27958//26700 +f 28135//26877 28137//26879 29615//28357 31313//30055 +f 28136//26878 28135//26877 31313//30055 28223//26965 +f 31314//30056 28228//26970 28223//26965 31313//30055 +f 28142//26884 31314//30056 31313//30055 29615//28357 +f 31314//30056 28142//26884 28143//26885 31315//30057 +f 28228//26970 31314//30056 31315//30057 28229//26971 +f 31316//30058 28234//26976 28229//26971 31315//30057 +f 28145//26887 31316//30058 31315//30057 28143//26885 +f 31316//30058 28145//26887 28149//26891 31317//30059 +f 28234//26976 31316//30058 31317//30059 28235//26977 +f 31318//30060 28240//26982 28235//26977 31317//30059 +f 28151//26893 31318//30060 31317//30059 28149//26891 +f 31318//30060 28151//26893 28155//26897 31319//30061 +f 28240//26982 31318//30060 31319//30061 28241//26983 +f 28246//26988 28241//26983 31319//30061 31320//30062 +f 31320//30062 31319//30061 28155//26897 28156//26898 +f 28156//26898 28161//26903 31321//30063 31320//30062 +f 31320//30062 31321//30063 28247//26989 28246//26988 +f 28252//26994 28247//26989 31321//30063 31322//30064 +f 31322//30064 31321//30063 28161//26903 28162//26904 +f 28162//26904 28945//27687 31323//30065 31322//30064 +f 31322//30064 31323//30065 28253//26995 28252//26994 +f 28170//26912 28253//26995 31323//30065 28168//26910 +f 28168//26910 31323//30065 28945//27687 28165//26907 +f 31324//30066 31325//30067 31326//30068 31327//30069 +f 31328//30070 31324//30066 31327//30069 31329//30071 +f 31330//30072 31331//30073 31329//30071 31327//30069 +f 31332//30074 31330//30072 31327//30069 31326//30068 +f 31333//30075 31325//30067 31324//30066 31334//30076 +f 31335//30077 31333//30075 31334//30076 31336//30078 +f 31337//30079 31338//30080 31336//30078 31334//30076 +f 31328//30070 31337//30079 31334//30076 31324//30066 +f 31339//30081 31340//30082 31341//30083 31342//30084 +f 31342//30084 31341//30083 31343//30085 31344//30086 +f 31335//30077 31343//30085 31341//30083 31333//30075 +f 31333//30075 31341//30083 31340//30082 31325//30067 +f 31345//30087 31346//30088 31347//30089 31348//30090 +f 31349//30091 31345//30087 31348//30090 31350//30092 +f 31342//30084 31344//30086 31350//30092 31348//30090 +f 31339//30081 31342//30084 31348//30090 31347//30089 +f 31351//30093 31346//30088 31345//30087 31352//30094 +f 31353//30095 31351//30093 31352//30094 31354//30096 +f 31355//30097 31356//30098 31354//30096 31352//30094 +f 31349//30091 31355//30097 31352//30094 31345//30087 +f 31357//30099 31358//30100 31359//30101 31360//30102 +f 31360//30102 31359//30101 31361//30103 31362//30104 +f 31353//30095 31361//30103 31359//30101 31351//30093 +f 31351//30093 31359//30101 31358//30100 31346//30088 +f 31363//30105 31364//30106 31365//30107 31366//30108 +f 31367//30109 31363//30105 31366//30108 31368//30110 +f 31360//30102 31362//30104 31368//30110 31366//30108 +f 31357//30099 31360//30102 31366//30108 31365//30107 +f 31369//30111 31364//30106 31363//30105 31370//30112 +f 31371//30113 31369//30111 31370//30112 31372//30114 +f 31373//30115 31374//30116 31372//30114 31370//30112 +f 31367//30109 31373//30115 31370//30112 31363//30105 +f 31375//30117 31376//30118 31377//30119 31378//30120 +f 31378//30120 31377//30119 31379//30121 31380//30122 +f 31371//30113 31379//30121 31377//30119 31369//30111 +f 31369//30111 31377//30119 31376//30118 31364//30106 +f 31381//30123 31382//30124 31383//30125 31384//30126 +f 31385//30127 31381//30123 31384//30126 31386//30128 +f 31378//30120 31380//30122 31386//30128 31384//30126 +f 31375//30117 31378//30120 31384//30126 31383//30125 +f 31387//30129 31382//30124 31381//30123 31388//30130 +f 31389//30131 31387//30129 31388//30130 31390//30132 +f 31391//30133 31392//30134 31390//30132 31388//30130 +f 31385//30127 31391//30133 31388//30130 31381//30123 +f 31393//30135 31394//30136 31395//30137 31396//30138 +f 31396//30138 31395//30137 31397//30139 31398//30140 +f 31389//30131 31397//30139 31395//30137 31387//30129 +f 31387//30129 31395//30137 31394//30136 31382//30124 +f 31399//30141 31400//30142 31401//30143 31402//30144 +f 31403//30145 31399//30141 31402//30144 31404//30146 +f 31396//30138 31398//30140 31404//30146 31402//30144 +f 31393//30135 31396//30138 31402//30144 31401//30143 +f 31405//30147 31400//30142 31399//30141 31406//30148 +f 31407//30149 31405//30147 31406//30148 31408//30150 +f 31409//30151 31410//30152 31408//30150 31406//30148 +f 31403//30145 31409//30151 31406//30148 31399//30141 +f 31411//30153 31412//30154 31413//30155 31414//30156 +f 31414//30156 31413//30155 31415//30157 31416//30158 +f 31407//30149 31415//30157 31413//30155 31405//30147 +f 31405//30147 31413//30155 31412//30154 31400//30142 +f 31401//30143 31400//30142 31417//30159 31418//30160 +f 31393//30135 31401//30143 31418//30160 31419//30161 +f 31420//30162 31421//30163 31419//30161 31418//30160 +f 31422//30164 31420//30162 31418//30160 31417//30159 +f 31423//30165 31424//30166 31425//30167 31426//30168 +f 31427//30169 31423//30165 31426//30168 31428//30170 +f 31429//30171 31428//30170 31426//30168 31430//30172 +f 31430//30172 31426//30168 31425//30167 31431//30173 +f 31430//30172 31431//30173 31432//30174 31433//30175 +f 31429//30171 31430//30172 31433//30175 31434//30176 +f 31435//30177 31436//30178 31434//30176 31433//30175 +f 31437//30179 31435//30177 31433//30175 31432//30174 +f 31438//30180 31439//30181 31440//30182 31441//30183 +f 31441//30183 31440//30182 31442//30184 31443//30185 +f 31444//30186 31442//30184 31440//30182 31445//30187 +f 31445//30187 31440//30182 31439//30181 31446//30188 +f 31441//30183 31443//30185 31447//30189 31448//30190 +f 31438//30180 31441//30183 31448//30190 31449//30191 +f 31450//30192 31451//30193 31449//30191 31448//30190 +f 31452//30194 31450//30192 31448//30190 31447//30189 +f 31452//30194 31453//30195 31454//30196 31450//30192 +f 31450//30192 31454//30196 31455//30197 31451//30193 +f 31456//30198 31455//30197 31454//30196 31457//30199 +f 31457//30199 31454//30196 31453//30195 31458//30200 +f 31459//30201 31444//30186 31445//30187 31460//30202 +f 31459//30201 31460//30202 31376//30118 31375//30117 +f 31461//30203 31364//30106 31376//30118 31460//30202 +f 31461//30203 31460//30202 31445//30187 31446//30188 +f 31462//30204 31463//30205 31464//30206 31465//30207 +f 31357//30099 31465//30207 31464//30206 31358//30100 +f 31466//30208 31346//30088 31358//30100 31464//30206 +f 31467//30209 31466//30208 31464//30206 31463//30205 +f 31365//30107 31364//30106 31461//30203 31468//30210 +f 31365//30107 31468//30210 31465//30207 31357//30099 +f 31469//30211 31462//30204 31465//30207 31468//30210 +f 31446//30188 31469//30211 31468//30210 31461//30203 +f 31469//30211 31446//30188 31439//30181 31470//30212 +f 31462//30204 31469//30211 31470//30212 31471//30213 +f 31472//30214 31424//30166 31471//30213 31470//30212 +f 31438//30180 31472//30214 31470//30212 31439//30181 +f 31472//30214 31438//30180 31449//30191 31473//30215 +f 31424//30166 31472//30214 31473//30215 31425//30167 +f 31431//30173 31425//30167 31473//30215 31474//30216 +f 31451//30193 31474//30216 31473//30215 31449//30191 +f 31474//30216 31451//30193 31455//30197 31475//30217 +f 31431//30173 31474//30216 31475//30217 31432//30174 +f 31476//30218 31437//30179 31432//30174 31475//30217 +f 31456//30198 31476//30218 31475//30217 31455//30197 +f 31346//30088 31466//30208 31477//30219 31347//30089 +f 31347//30089 31477//30219 31478//30220 31339//30081 +f 31427//30169 31478//30220 31477//30219 31479//30221 +f 31479//30221 31477//30219 31466//30208 31467//30209 +f 31421//30163 31420//30162 31480//30222 31481//30223 +f 31481//30223 31480//30222 31447//30189 31443//30185 +f 31482//30224 31452//30194 31447//30189 31480//30222 +f 31422//30164 31482//30224 31480//30222 31420//30162 +f 31422//30164 31483//30225 31484//30226 31482//30224 +f 31482//30224 31484//30226 31453//30195 31452//30194 +f 31458//30200 31453//30195 31484//30226 31485//30227 +f 31485//30227 31484//30226 31483//30225 31486//30228 +f 31423//30165 31427//30169 31479//30221 31487//30229 +f 31424//30166 31423//30165 31487//30229 31471//30213 +f 31463//30205 31462//30204 31471//30213 31487//30229 +f 31467//30209 31463//30205 31487//30229 31479//30221 +f 31488//30230 31489//30231 31490//30232 31491//30233 +f 31491//30233 31490//30232 31442//30184 31444//30186 +f 31443//30185 31442//30184 31490//30232 31481//30223 +f 31481//30223 31490//30232 31489//30231 31421//30163 +f 31383//30125 31382//30124 31492//30234 31493//30235 +f 31383//30125 31493//30235 31459//30201 31375//30117 +f 31444//30186 31459//30201 31493//30235 31491//30233 +f 31488//30230 31491//30233 31493//30235 31492//30234 +f 31478//30220 31427//30169 31428//30170 31494//30236 +f 31339//30081 31478//30220 31494//30236 31340//30082 +f 31495//30237 31325//30067 31340//30082 31494//30236 +f 31495//30237 31494//30236 31428//30170 31429//30171 +f 31495//30237 31429//30171 31434//30176 31496//30238 +f 31495//30237 31496//30238 31326//30068 31325//30067 +f 31497//30239 31332//30074 31326//30068 31496//30238 +f 31436//30178 31497//30239 31496//30238 31434//30176 +f 31486//30228 31483//30225 31498//30240 31499//30241 +f 31499//30241 31498//30240 31412//30154 31411//30153 +f 31417//30159 31400//30142 31412//30154 31498//30240 +f 31417//30159 31498//30240 31483//30225 31422//30164 +f 31421//30163 31489//30231 31500//30242 31419//30161 +f 31419//30161 31500//30242 31394//30136 31393//30135 +f 31382//30124 31394//30136 31500//30242 31492//30234 +f 31492//30234 31500//30242 31489//30231 31488//30230 +f 31501//30243 31502//30244 31503//30245 31504//30246 +f 31332//30074 31501//30243 31504//30246 31330//30072 +f 31505//30247 31331//30073 31330//30072 31504//30246 +f 31506//30248 31505//30247 31504//30246 31503//30245 +f 31503//30245 31502//30244 31507//30249 31508//30250 +f 31506//30248 31503//30245 31508//30250 31509//30251 +f 31510//30252 31511//30253 31509//30251 31508//30250 +f 31512//30254 31510//30252 31508//30250 31507//30249 +f 31513//30255 31514//30256 31515//30257 31516//30258 +f 31516//30258 31515//30257 31507//30249 31502//30244 +f 31512//30254 31507//30249 31515//30257 31517//30259 +f 31517//30259 31515//30257 31514//30256 31518//30260 +f 31519//30261 31520//30262 31521//30263 31522//30264 +f 31513//30255 31519//30261 31522//30264 31514//30256 +f 31523//30265 31518//30260 31514//30256 31522//30264 +f 31524//30266 31523//30265 31522//30264 31521//30263 +f 31521//30263 31520//30262 31525//30267 31526//30268 +f 31524//30266 31521//30263 31526//30268 31527//30269 +f 31528//30270 31529//30271 31527//30269 31526//30268 +f 31530//30272 31528//30270 31526//30268 31525//30267 +f 31531//30273 31532//30274 31533//30275 31534//30276 +f 31534//30276 31533//30275 31525//30267 31520//30262 +f 31530//30272 31525//30267 31533//30275 31535//30277 +f 31535//30277 31533//30275 31532//30274 31536//30278 +f 31537//30279 31538//30280 31539//30281 31540//30282 +f 31531//30273 31537//30279 31540//30282 31532//30274 +f 31541//30283 31536//30278 31532//30274 31540//30282 +f 31542//30284 31541//30283 31540//30282 31539//30281 +f 31539//30281 31538//30280 31543//30285 31544//30286 +f 31542//30284 31539//30281 31544//30286 31545//30287 +f 31546//30288 31547//30289 31545//30287 31544//30286 +f 31548//30290 31546//30288 31544//30286 31543//30285 +f 31549//30291 31550//30292 31551//30293 31552//30294 +f 31552//30294 31551//30293 31543//30285 31538//30280 +f 31548//30290 31543//30285 31551//30293 31553//30295 +f 31553//30295 31551//30293 31550//30292 31554//30296 +f 31555//30297 31556//30298 31557//30299 31558//30300 +f 31549//30291 31555//30297 31558//30300 31550//30292 +f 31559//30301 31554//30296 31550//30292 31558//30300 +f 31560//30302 31559//30301 31558//30300 31557//30299 +f 31557//30299 31556//30298 31561//30303 31562//30304 +f 31560//30302 31557//30299 31562//30304 31563//30305 +f 31564//30306 31565//30307 31563//30305 31562//30304 +f 31566//30308 31564//30306 31562//30304 31561//30303 +f 31567//30309 31568//30310 31569//30311 31570//30312 +f 31570//30312 31569//30311 31561//30303 31556//30298 +f 31566//30308 31561//30303 31569//30311 31571//30313 +f 31571//30313 31569//30311 31568//30310 31572//30314 +f 31573//30315 31574//30316 31575//30317 31576//30318 +f 31567//30309 31573//30315 31576//30318 31568//30310 +f 31577//30319 31572//30314 31568//30310 31576//30318 +f 31578//30320 31577//30319 31576//30318 31575//30317 +f 31575//30317 31574//30316 31579//30321 31580//30322 +f 31578//30320 31575//30317 31580//30322 31581//30323 +f 31582//30324 31583//30325 31581//30323 31580//30322 +f 31584//30326 31582//30324 31580//30322 31579//30321 +f 31411//30153 31414//30156 31585//30327 31586//30328 +f 31586//30328 31585//30327 31579//30321 31574//30316 +f 31584//30326 31579//30321 31585//30327 31587//30329 +f 31587//30329 31585//30327 31414//30156 31416//30158 +f 31588//30330 31574//30316 31573//30315 31589//30331 +f 31590//30332 31588//30330 31589//30331 31591//30333 +f 31592//30334 31593//30335 31591//30333 31589//30331 +f 31567//30309 31592//30334 31589//30331 31573//30315 +f 31594//30336 31595//30337 31596//30338 31597//30339 +f 31594//30336 31597//30339 31598//30340 31599//30341 +f 31600//30342 31598//30340 31597//30339 31601//30343 +f 31602//30344 31601//30343 31597//30339 31596//30338 +f 31603//30345 31599//30341 31598//30340 31604//30346 +f 31437//30179 31603//30345 31604//30346 31435//30177 +f 31605//30347 31436//30178 31435//30177 31604//30346 +f 31600//30342 31605//30347 31604//30346 31598//30340 +f 31606//30348 31607//30349 31608//30350 31609//30351 +f 31609//30351 31608//30350 31610//30352 31611//30353 +f 31612//30354 31610//30352 31608//30350 31613//30355 +f 31613//30355 31608//30350 31607//30349 31614//30356 +f 31615//30357 31614//30356 31607//30349 31616//30358 +f 31617//30359 31615//30357 31616//30358 31618//30360 +f 31619//30361 31618//30360 31616//30358 31620//30362 +f 31620//30362 31616//30358 31607//30349 31606//30348 +f 31617//30359 31618//30360 31621//30363 31622//30364 +f 31622//30364 31621//30363 31457//30199 31458//30200 +f 31623//30365 31456//30198 31457//30199 31621//30363 +f 31623//30365 31621//30363 31618//30360 31619//30361 +f 31610//30352 31612//30354 31624//30366 31625//30367 +f 31610//30352 31625//30367 31626//30368 31611//30353 +f 31552//30294 31538//30280 31626//30368 31625//30367 +f 31552//30294 31625//30367 31624//30366 31549//30291 +f 31627//30369 31628//30370 31629//30371 31630//30372 +f 31631//30373 31630//30372 31629//30371 31632//30374 +f 31534//30276 31520//30262 31632//30374 31629//30371 +f 31531//30273 31534//30276 31629//30371 31628//30370 +f 31626//30368 31538//30280 31537//30279 31633//30375 +f 31611//30353 31626//30368 31633//30375 31634//30376 +f 31628//30370 31627//30369 31634//30376 31633//30375 +f 31628//30370 31633//30375 31537//30279 31531//30273 +f 31609//30351 31611//30353 31634//30376 31635//30377 +f 31606//30348 31609//30351 31635//30377 31636//30378 +f 31637//30379 31595//30337 31636//30378 31635//30377 +f 31627//30369 31637//30379 31635//30377 31634//30376 +f 31620//30362 31606//30348 31636//30378 31638//30380 +f 31619//30361 31620//30362 31638//30380 31639//30381 +f 31594//30336 31599//30341 31639//30381 31638//30380 +f 31595//30337 31594//30336 31638//30380 31636//30378 +f 31623//30365 31619//30361 31639//30381 31640//30382 +f 31456//30198 31623//30365 31640//30382 31476//30218 +f 31603//30345 31437//30179 31476//30218 31640//30382 +f 31599//30341 31603//30345 31640//30382 31639//30381 +f 31520//30262 31519//30261 31641//30383 31632//30374 +f 31632//30374 31641//30383 31642//30384 31631//30373 +f 31602//30344 31642//30384 31641//30383 31643//30385 +f 31643//30385 31641//30383 31519//30261 31513//30255 +f 31593//30335 31644//30386 31645//30387 31591//30333 +f 31590//30332 31591//30333 31645//30387 31646//30388 +f 31615//30357 31617//30359 31646//30388 31645//30387 +f 31615//30357 31645//30387 31644//30386 31614//30356 +f 31590//30332 31646//30388 31647//30389 31648//30390 +f 31648//30390 31647//30389 31485//30227 31486//30228 +f 31458//30200 31485//30227 31647//30389 31622//30364 +f 31622//30364 31647//30389 31646//30388 31617//30359 +f 31642//30384 31602//30344 31596//30338 31649//30391 +f 31631//30373 31642//30384 31649//30391 31630//30372 +f 31637//30379 31627//30369 31630//30372 31649//30391 +f 31595//30337 31637//30379 31649//30391 31596//30338 +f 31650//30392 31651//30393 31652//30394 31653//30395 +f 31653//30395 31652//30394 31644//30386 31593//30335 +f 31614//30356 31644//30386 31652//30394 31613//30355 +f 31613//30355 31652//30394 31651//30393 31612//30354 +f 31654//30396 31556//30298 31555//30297 31655//30397 +f 31650//30392 31654//30396 31655//30397 31651//30393 +f 31612//30354 31651//30393 31655//30397 31624//30366 +f 31624//30366 31655//30397 31555//30297 31549//30291 +f 31601//30343 31602//30344 31643//30385 31656//30398 +f 31601//30343 31656//30398 31657//30399 31600//30342 +f 31516//30258 31502//30244 31657//30399 31656//30398 +f 31513//30255 31516//30258 31656//30398 31643//30385 +f 31605//30347 31600//30342 31657//30399 31658//30400 +f 31436//30178 31605//30347 31658//30400 31497//30239 +f 31501//30243 31332//30074 31497//30239 31658//30400 +f 31501//30243 31658//30400 31657//30399 31502//30244 +f 31486//30228 31499//30241 31659//30401 31648//30390 +f 31648//30390 31659//30401 31588//30330 31590//30332 +f 31586//30328 31574//30316 31588//30330 31659//30401 +f 31586//30328 31659//30401 31499//30241 31411//30153 +f 31593//30335 31592//30334 31660//30402 31653//30395 +f 31653//30395 31660//30402 31654//30396 31650//30392 +f 31556//30298 31654//30396 31660//30402 31570//30312 +f 31570//30312 31660//30402 31592//30334 31567//30309 +f 29623//28365 29622//28364 31661//30403 31662//30404 +f 31511//30253 31662//30404 31661//30403 31509//30251 +f 31506//30248 31509//30251 31661//30403 31663//30405 +f 31663//30405 31661//30403 29622//28364 29624//28366 +f 29630//28372 29629//28371 31664//30406 31665//30407 +f 31665//30407 31664//30406 31510//30252 31512//30254 +f 31511//30253 31510//30252 31664//30406 31662//30404 +f 31662//30404 31664//30406 29629//28371 29623//28365 +f 29636//28378 29635//28377 31666//30408 31667//30409 +f 31518//30260 31667//30409 31666//30408 31517//30259 +f 31665//30407 31512//30254 31517//30259 31666//30408 +f 31665//30407 31666//30408 29635//28377 29630//28372 +f 29642//28384 29641//28383 31668//30410 31669//30411 +f 31669//30411 31668//30410 31523//30265 31524//30266 +f 31518//30260 31523//30265 31668//30410 31667//30409 +f 31667//30409 31668//30410 29641//28383 29636//28378 +f 31670//30412 29647//28389 29648//28390 31671//30413 +f 31529//30271 31670//30412 31671//30413 31527//30269 +f 31524//30266 31527//30269 31671//30413 31669//30411 +f 29642//28384 31669//30411 31671//30413 29648//28390 +f 29654//28396 29653//28395 31672//30414 31673//30415 +f 31673//30415 31672//30414 31528//30270 31530//30272 +f 31529//30271 31528//30270 31672//30414 31670//30412 +f 31670//30412 31672//30414 29653//28395 29647//28389 +f 29660//28402 29659//28401 31674//30416 31675//30417 +f 31536//30278 31675//30417 31674//30416 31535//30277 +f 31673//30415 31530//30272 31535//30277 31674//30416 +f 31673//30415 31674//30416 29659//28401 29654//28396 +f 29666//28408 29665//28407 31676//30418 31677//30419 +f 31677//30419 31676//30418 31541//30283 31542//30284 +f 31536//30278 31541//30283 31676//30418 31675//30417 +f 31675//30417 31676//30418 29665//28407 29660//28402 +f 31678//30420 29671//28413 29672//28414 31679//30421 +f 31547//30289 31678//30420 31679//30421 31545//30287 +f 31542//30284 31545//30287 31679//30421 31677//30419 +f 29666//28408 31677//30419 31679//30421 29672//28414 +f 29678//28420 29677//28419 31680//30422 31681//30423 +f 31681//30423 31680//30422 31546//30288 31548//30290 +f 31547//30289 31546//30288 31680//30422 31678//30420 +f 31678//30420 31680//30422 29677//28419 29671//28413 +f 31682//30424 29684//28426 29683//28425 31683//30425 +f 31554//30296 31682//30424 31683//30425 31553//30295 +f 31681//30423 31548//30290 31553//30295 31683//30425 +f 29678//28420 31681//30423 31683//30425 29683//28425 +f 29689//28431 29690//28432 31684//30426 31685//30427 +f 31685//30427 31684//30426 31559//30301 31560//30302 +f 31554//30296 31559//30301 31684//30426 31682//30424 +f 31682//30424 31684//30426 29690//28432 29684//28426 +f 31686//30428 29695//28437 29696//28438 31687//30429 +f 31565//30307 31686//30428 31687//30429 31563//30305 +f 31560//30302 31563//30305 31687//30429 31685//30427 +f 29689//28431 31685//30427 31687//30429 29696//28438 +f 29702//28444 29701//28443 31688//30430 31689//30431 +f 31566//30308 31689//30431 31688//30430 31564//30306 +f 31565//30307 31564//30306 31688//30430 31686//30428 +f 31686//30428 31688//30430 29701//28443 29695//28437 +f 31690//30432 29708//28450 29707//28449 31691//30433 +f 31572//30314 31690//30432 31691//30433 31571//30313 +f 31689//30431 31566//30308 31571//30313 31691//30433 +f 29702//28444 31689//30431 31691//30433 29707//28449 +f 29713//28455 29714//28456 31692//30434 31693//30435 +f 31693//30435 31692//30434 31577//30319 31578//30320 +f 31572//30314 31577//30319 31692//30434 31690//30432 +f 31690//30432 31692//30434 29714//28456 29708//28450 +f 31694//30436 29719//28461 29720//28462 31695//30437 +f 31583//30325 31694//30436 31695//30437 31581//30323 +f 31578//30320 31581//30323 31695//30437 31693//30435 +f 29713//28455 31693//30435 31695//30437 29720//28462 +f 29726//28468 29725//28467 31696//30438 31697//30439 +f 31584//30326 31697//30439 31696//30438 31582//30324 +f 31583//30325 31582//30324 31696//30438 31694//30436 +f 31694//30436 31696//30438 29725//28467 29719//28461 +f 31698//30440 29732//28474 29731//28473 31699//30441 +f 31416//30158 31698//30440 31699//30441 31587//30329 +f 31697//30439 31584//30326 31587//30329 31699//30441 +f 29726//28468 31697//30439 31699//30441 29731//28473 +f 29737//28479 29738//28480 31700//30442 31701//30443 +f 31701//30443 31700//30442 31415//30157 31407//30149 +f 31416//30158 31415//30157 31700//30442 31698//30440 +f 31698//30440 31700//30442 29738//28480 29732//28474 +f 31702//30444 29743//28485 29744//28486 31703//30445 +f 31410//30152 31702//30444 31703//30445 31408//30150 +f 31407//30149 31408//30150 31703//30445 31701//30443 +f 29737//28479 31701//30443 31703//30445 29744//28486 +f 29750//28492 29749//28491 31704//30446 31705//30447 +f 31705//30447 31704//30446 31409//30151 31403//30145 +f 31410//30152 31409//30151 31704//30446 31702//30444 +f 31702//30444 31704//30446 29749//28491 29743//28485 +f 31706//30448 29756//28498 29755//28497 31707//30449 +f 31398//30140 31706//30448 31707//30449 31404//30146 +f 31705//30447 31403//30145 31404//30146 31707//30449 +f 29750//28492 31705//30447 31707//30449 29755//28497 +f 29761//28503 29762//28504 31708//30450 31709//30451 +f 31709//30451 31708//30450 31397//30139 31389//30131 +f 31398//30140 31397//30139 31708//30450 31706//30448 +f 31706//30448 31708//30450 29762//28504 29756//28498 +f 31710//30452 29767//28509 29768//28510 31711//30453 +f 31392//30134 31710//30452 31711//30453 31390//30132 +f 31389//30131 31390//30132 31711//30453 31709//30451 +f 29761//28503 31709//30451 31711//30453 29768//28510 +f 29774//28516 29773//28515 31712//30454 31713//30455 +f 31713//30455 31712//30454 31391//30133 31385//30127 +f 31392//30134 31391//30133 31712//30454 31710//30452 +f 31710//30452 31712//30454 29773//28515 29767//28509 +f 29780//28522 29779//28521 31714//30456 31715//30457 +f 31380//30122 31715//30457 31714//30456 31386//30128 +f 31713//30455 31385//30127 31386//30128 31714//30456 +f 31713//30455 31714//30456 29779//28521 29774//28516 +f 29786//28528 29785//28527 31716//30458 31717//30459 +f 31717//30459 31716//30458 31379//30121 31371//30113 +f 31380//30122 31379//30121 31716//30458 31715//30457 +f 31715//30457 31716//30458 29785//28527 29780//28522 +f 31718//30460 29791//28533 29792//28534 31719//30461 +f 31374//30116 31718//30460 31719//30461 31372//30114 +f 31371//30113 31372//30114 31719//30461 31717//30459 +f 29786//28528 31717//30459 31719//30461 29792//28534 +f 29798//28540 29797//28539 31720//30462 31721//30463 +f 31721//30463 31720//30462 31373//30115 31367//30109 +f 31374//30116 31373//30115 31720//30462 31718//30460 +f 31718//30460 31720//30462 29797//28539 29791//28533 +f 29804//28546 29803//28545 31722//30464 31723//30465 +f 31362//30104 31723//30465 31722//30464 31368//30110 +f 31721//30463 31367//30109 31368//30110 31722//30464 +f 31721//30463 31722//30464 29803//28545 29798//28540 +f 29810//28552 29809//28551 31724//30466 31725//30467 +f 31725//30467 31724//30466 31361//30103 31353//30095 +f 31362//30104 31361//30103 31724//30466 31723//30465 +f 31723//30465 31724//30466 29809//28551 29804//28546 +f 29816//28558 29815//28557 31726//30468 31727//30469 +f 31356//30098 31727//30469 31726//30468 31354//30096 +f 31353//30095 31354//30096 31726//30468 31725//30467 +f 31725//30467 31726//30468 29815//28557 29810//28552 +f 29822//28564 29821//28563 31728//30470 31729//30471 +f 31729//30471 31728//30470 31355//30097 31349//30091 +f 31356//30098 31355//30097 31728//30470 31727//30469 +f 31727//30469 31728//30470 29821//28563 29816//28558 +f 29828//28570 29827//28569 31730//30472 31731//30473 +f 31344//30086 31731//30473 31730//30472 31350//30092 +f 31729//30471 31349//30091 31350//30092 31730//30472 +f 31729//30471 31730//30472 29827//28569 29822//28564 +f 29834//28576 29833//28575 31732//30474 31733//30475 +f 31733//30475 31732//30474 31343//30085 31335//30077 +f 31344//30086 31343//30085 31732//30474 31731//30473 +f 31731//30473 31732//30474 29833//28575 29828//28570 +f 29840//28582 29839//28581 31734//30476 31735//30477 +f 31338//30080 31735//30477 31734//30476 31336//30078 +f 31335//30077 31336//30078 31734//30476 31733//30475 +f 31733//30475 31734//30476 29839//28581 29834//28576 +f 29846//28588 29845//28587 31736//30478 31737//30479 +f 31737//30479 31736//30478 31337//30079 31328//30070 +f 31338//30080 31337//30079 31736//30478 31735//30477 +f 31735//30477 31736//30478 29845//28587 29840//28582 +f 29852//28594 29851//28593 31738//30480 31739//30481 +f 31331//30073 31739//30481 31738//30480 31329//30071 +f 31737//30479 31328//30070 31329//30071 31738//30480 +f 31737//30479 31738//30480 29851//28593 29846//28588 +f 29624//28366 29855//28597 31740//30482 31663//30405 +f 31663//30405 31740//30482 31505//30247 31506//30248 +f 31331//30073 31505//30247 31740//30482 31739//30481 +f 31739//30481 31740//30482 29855//28597 29852//28594 +f 31741//30483 31742//30483 31743//30483 31744//30483 +f 31745//30484 31741//30485 31744//30486 31746//30487 +f 31741//30485 31745//30484 31747//30488 31748//30489 +f 31742//30490 31741//30485 31748//30489 31749//30491 +f 31750//30492 31745//30484 31746//30487 31751//30493 +f 31752//30494 31750//30492 31751//30493 31753//30495 +f 31750//30492 31752//30494 31754//30496 31755//30497 +f 31745//30484 31750//30492 31755//30497 31747//30488 +f 31756//30498 31752//30494 31753//30495 31757//30499 +f 31758//30500 31756//30498 31757//30499 31759//30501 +f 31756//30498 31758//30500 31760//30502 31761//30503 +f 31752//30494 31756//30498 31761//30503 31754//30496 +f 31762//30504 31758//30500 31759//30501 31763//30505 +f 31764//30506 31762//30504 31763//30505 31765//30507 +f 31762//30504 31764//30506 31766//30508 31767//30509 +f 31758//30500 31762//30504 31767//30509 31760//30502 +f 31768//30510 31764//30506 31765//30507 31769//30511 +f 31770//30512 31768//30510 31769//30511 31771//30513 +f 31768//30510 31770//30512 31772//30514 31773//30515 +f 31764//30506 31768//30510 31773//30515 31766//30508 +f 31774//30516 31770//30512 31771//30513 31775//30517 +f 31776//30518 31774//30516 31775//30517 31777//30519 +f 31774//30516 31776//30518 31778//30520 31779//30521 +f 31770//30512 31774//30516 31779//30521 31772//30514 +f 31780//30522 31776//30518 31777//30519 31781//30523 +f 31782//30524 31780//30522 31781//30523 31783//30525 +f 31780//30522 31782//30524 31784//30526 31785//30527 +f 31776//30518 31780//30522 31785//30527 31778//30520 +f 31786//30528 31782//30524 31783//30525 31787//30529 +f 31788//30530 31786//30528 31787//30529 31789//30531 +f 31786//30528 31788//30530 31790//30532 31791//30533 +f 31782//30524 31786//30528 31791//30533 31784//30526 +f 31792//30534 31788//30530 31789//30531 31793//30535 +f 31794//30536 31792//30534 31793//30535 31795//30537 +f 31792//30534 31794//30536 31796//30538 31797//30539 +f 31788//30530 31792//30534 31797//30539 31790//30532 +f 31798//30540 31794//30536 31795//30537 31799//30541 +f 31800//30542 31798//30540 31799//30541 31801//30543 +f 31798//30540 31800//30542 31802//30544 31803//30545 +f 31794//30536 31798//30540 31803//30545 31796//30538 +f 31804//30546 31800//30542 31801//30543 31805//30547 +f 31806//30548 31804//30546 31805//30547 31807//30549 +f 31804//30546 31806//30548 31808//30550 31809//30551 +f 31800//30542 31804//30546 31809//30551 31802//30544 +f 31810//30552 31806//30548 31807//30549 31811//30553 +f 31812//30554 31810//30552 31811//30553 31813//30555 +f 31810//30552 31812//30554 31814//30556 31815//30557 +f 31806//30548 31810//30552 31815//30557 31808//30550 +f 31816//30558 31812//30554 31813//30555 31817//30559 +f 31818//30560 31816//30558 31817//30559 31819//30561 +f 31816//30558 31818//30560 31820//30562 31821//30563 +f 31812//30554 31816//30558 31821//30563 31814//30556 +f 31822//30564 31818//30560 31819//30561 31823//30565 +f 31824//30566 31822//30564 31823//30565 31825//30567 +f 31822//30564 31824//30566 31826//30568 31827//30569 +f 31818//30560 31822//30564 31827//30569 31820//30562 +f 31828//30570 31824//30566 31825//30567 31829//30571 +f 31830//30572 31828//30570 31829//30571 31831//30573 +f 31828//30570 31830//30572 31832//30574 31833//30575 +f 31824//30566 31828//30570 31833//30575 31826//30568 +f 31834//30576 31830//30572 31831//30573 31835//30577 +f 31836//30578 31834//30576 31835//30577 31837//30579 +f 31834//30576 31836//30578 31838//30580 31839//30581 +f 31830//30572 31834//30576 31839//30581 31832//30574 +f 31840//30582 31836//30578 31837//30579 31841//30583 +f 31842//30584 31840//30582 31841//30583 31843//30585 +f 31840//30582 31842//30584 31844//30586 31845//30587 +f 31836//30578 31840//30582 31845//30587 31838//30580 +f 31846//30588 31842//30584 31843//30585 31847//30589 +f 31848//30590 31846//30588 31847//30589 31849//30591 +f 31846//30588 31848//30590 31850//30592 31851//30593 +f 31842//30584 31846//30588 31851//30593 31844//30586 +f 31852//30594 31848//30590 31849//30591 31853//30595 +f 31854//30596 31852//30594 31853//30595 31855//30597 +f 31852//30594 31854//30596 31856//30598 31857//30599 +f 31848//30590 31852//30594 31857//30599 31850//30592 +f 31858//30600 31854//30596 31855//30597 31859//30601 +f 31860//30602 31858//30600 31859//30601 31861//30603 +f 31858//30600 31860//30602 31862//30604 31863//30605 +f 31854//30596 31858//30600 31863//30605 31856//30598 +f 31864//30606 31860//30602 31861//30603 31865//30607 +f 31866//30608 31864//30606 31865//30607 31867//30609 +f 31864//30606 31866//30608 31868//30610 31869//30611 +f 31860//30602 31864//30606 31869//30611 31862//30604 +f 31870//30612 31866//30608 31867//30609 31871//30613 +f 31872//30614 31870//30612 31871//30613 31873//30615 +f 31870//30612 31872//30614 31874//30616 31875//30617 +f 31866//30608 31870//30612 31875//30617 31868//30610 +f 31876//30618 31872//30614 31873//30615 31877//30619 +f 31878//30620 31876//30618 31877//30619 31879//30621 +f 31876//30618 31878//30620 31880//30622 31881//30623 +f 31872//30614 31876//30618 31881//30623 31874//30616 +f 31882//30624 31878//30620 31879//30621 31883//30625 +f 31884//30626 31882//30624 31883//30625 31885//30627 +f 31882//30624 31884//30626 31886//30628 31887//30629 +f 31878//30620 31882//30624 31887//30629 31880//30622 +f 31888//30630 31884//30626 31885//30627 31889//30631 +f 31890//30632 31888//30630 31889//30631 31891//30633 +f 31888//30630 31890//30632 31892//8129 31893//30634 +f 31884//30626 31888//30630 31893//30634 31886//30628 +f 31894//30635 31890//30632 31891//30633 31895//30636 +f 31896//30637 31894//30635 31895//30636 31897//30638 +f 31894//30635 31896//30637 31898//8121 31899//8125 +f 31890//30632 31894//30635 31899//8125 31892//8129 +f 31900//30639 31896//30637 31897//30638 31901//30640 +f 31902//30641 31900//30639 31901//30640 31903//30642 +f 31900//30639 31902//30641 31904//8113 31905//8117 +f 31896//30637 31900//30639 31905//8117 31898//8121 +f 31906//30643 31902//30641 31903//30642 31907//30644 +f 31908//30645 31906//30643 31907//30644 31909//30646 +f 31906//30643 31908//30645 31910//30647 31911//8109 +f 31902//30641 31906//30643 31911//8109 31904//8113 +f 31912//30648 31908//30645 31909//30646 31913//30649 +f 31914//30650 31912//30648 31913//30649 31915//30651 +f 31912//30648 31914//30650 31916//30652 31917//30653 +f 31908//30645 31912//30648 31917//30653 31910//30647 +f 31918//30654 31914//30650 31915//30651 31919//30655 +f 31920//30656 31918//30654 31919//30655 31921//30657 +f 31918//30654 31920//30656 31922//30658 31923//30659 +f 31914//30650 31918//30654 31923//30659 31916//30652 +f 31924//30660 31920//30656 31921//30657 31925//30661 +f 31926//30662 31924//30660 31925//30661 31927//30663 +f 31924//30660 31926//30662 31928//30664 31929//30665 +f 31920//30656 31924//30660 31929//30665 31922//30658 +f 31930//30666 31926//30662 31927//30663 31931//30667 +f 31742//30490 31930//30666 31931//30667 31743//30668 +f 31930//30666 31742//30490 31749//30491 31932//30669 +f 31926//30662 31930//30666 31932//30669 31928//30664 +f 31933//30670 31934//30671 31935//30672 31936//30673 +f 31937//30674 31933//30670 31936//30673 31938//30675 +f 31933//30670 31937//30674 31939//30676 31940//30677 +f 31934//30671 31933//30670 31940//30677 31941//30678 +f 31942//30679 31943//30680 31944//30681 31945//30682 +f 31934//30671 31942//30679 31945//30682 31935//30672 +f 31942//30679 31934//30671 31941//30678 31946//30683 +f 31943//30680 31942//30679 31946//30683 31947//30684 +f 31948//30685 31949//30686 31950//30687 31951//30688 +f 31943//30680 31948//30685 31951//30688 31944//30681 +f 31948//30685 31943//30680 31947//30684 31952//30689 +f 31949//30686 31948//30685 31952//30689 31953//30690 +f 31954//30691 31955//30692 31956//30693 31957//30694 +f 31949//30686 31954//30691 31957//30694 31950//30687 +f 31954//30691 31949//30686 31953//30690 31958//30695 +f 31955//30692 31954//30691 31958//30695 31959//30696 +f 31960//30697 31961//30698 31962//30699 31963//30700 +f 31955//30692 31960//30697 31963//30700 31956//30693 +f 31960//30697 31955//30692 31959//30696 31964//30701 +f 31961//30698 31960//30697 31964//30701 31965//30702 +f 31966//30703 31967//30704 31968//30705 31969//30706 +f 31961//30698 31966//30703 31969//30706 31962//30699 +f 31966//30703 31961//30698 31965//30702 31970//30707 +f 31967//30704 31966//30703 31970//30707 31971//30708 +f 31972//30709 31973//30710 31974//30711 31975//30712 +f 31967//30704 31972//30709 31975//30712 31968//30705 +f 31972//30709 31967//30704 31971//30708 31976//30713 +f 31973//30710 31972//30709 31976//30713 31977//30714 +f 31978//30715 31979//30716 31980//30717 31981//30718 +f 31973//30710 31978//30715 31981//30718 31974//30711 +f 31978//30715 31973//30710 31977//30714 31982//30719 +f 31979//30716 31978//30715 31982//30719 31983//30720 +f 31984//30721 31985//30722 31986//30723 31987//30724 +f 31979//30716 31984//30721 31987//30724 31980//30717 +f 31984//30721 31979//30716 31983//30720 31988//30725 +f 31985//30722 31984//30721 31988//30725 31989//30726 +f 31990//30727 31991//30728 31992//30729 31993//30730 +f 31985//30722 31990//30727 31993//30730 31986//30723 +f 31990//30727 31985//30722 31989//30726 31994//30731 +f 31991//30728 31990//30727 31994//30731 31995//30732 +f 31996//30733 31997//30734 31998//30735 31999//30736 +f 31991//30728 31996//30733 31999//30736 31992//30729 +f 31996//30733 31991//30728 31995//30732 32000//30737 +f 31997//30734 31996//30733 32000//30737 32001//30738 +f 32002//30739 32003//30740 32004//30741 32005//30742 +f 31997//30734 32002//30739 32005//30742 31998//30735 +f 32002//30739 31997//30734 32001//30738 32006//30743 +f 32003//30740 32002//30739 32006//30743 32007//30744 +f 32008//30745 32009//30746 32010//30747 32011//30748 +f 32003//30740 32008//30745 32011//30748 32004//30741 +f 32008//30745 32003//30740 32007//30744 32012//30749 +f 32009//30746 32008//30745 32012//30749 32013//30750 +f 32014//30751 32015//30752 32016//30753 32017//30754 +f 32009//30746 32014//30751 32017//30754 32010//30747 +f 32014//30751 32009//30746 32013//30750 32018//30755 +f 32015//30752 32014//30751 32018//30755 32019//30756 +f 32020//30757 32021//30758 32022//30759 32023//30760 +f 32015//30752 32020//30757 32023//30760 32016//30753 +f 32020//30757 32015//30752 32019//30756 32024//30761 +f 32021//30758 32020//30757 32024//30761 32025//30762 +f 32026//30763 32027//30764 32028//30765 32029//30766 +f 32021//30758 32026//30763 32029//30766 32022//30759 +f 32026//30763 32021//30758 32025//30762 32030//30767 +f 32027//30764 32026//30763 32030//30767 32031//30768 +f 32032//30769 32033//30770 32034//30771 32035//30772 +f 32027//30764 32032//30769 32035//30772 32028//30765 +f 32032//30769 32027//30764 32031//30768 32036//30773 +f 32033//30770 32032//30769 32036//30773 32037//30774 +f 32038//30775 32039//30776 32040//30777 32041//30778 +f 32033//30770 32038//30775 32041//30778 32034//30771 +f 32038//30775 32033//30770 32037//30774 32042//30779 +f 32039//30776 32038//30775 32042//30779 32043//30780 +f 32044//30781 32045//30782 32046//30783 32047//30784 +f 32039//30776 32044//30781 32047//30784 32040//30777 +f 32044//30781 32039//30776 32043//30780 32048//30785 +f 32045//30782 32044//30781 32048//30785 32049//30786 +f 32050//30787 32051//30788 32052//30789 32053//30790 +f 32045//30782 32050//30787 32053//30790 32046//30783 +f 32050//30787 32045//30782 32049//30786 32054//30791 +f 32051//30788 32050//30787 32054//30791 32055//30792 +f 32056//30793 32057//30794 32058//30795 32059//30796 +f 32051//30788 32056//30793 32059//30796 32052//30789 +f 32056//30793 32051//30788 32055//30792 32060//30797 +f 32057//30794 32056//30793 32060//30797 32061//30798 +f 32062//30799 32063//30800 32064//30801 32065//30802 +f 32057//30794 32062//30799 32065//30802 32058//30795 +f 32062//30799 32057//30794 32061//30798 32066//30803 +f 32063//30800 32062//30799 32066//30803 32067//30804 +f 32068//30805 32069//30806 32070//30807 32071//30808 +f 32063//30800 32068//30805 32071//30808 32064//30801 +f 32068//30805 32063//30800 32067//30804 32072//30809 +f 32069//30806 32068//30805 32072//30809 32073//30810 +f 32074//30811 32075//30812 32076//30813 32077//30814 +f 32069//30806 32074//30811 32077//30814 32070//30807 +f 32074//30811 32069//30806 32073//30810 32078//30815 +f 32075//30812 32074//30811 32078//30815 32079//30816 +f 32080//30817 32081//30818 32082//30819 32083//30820 +f 32075//30812 32080//30817 32083//30820 32076//30813 +f 32080//30817 32075//30812 32079//30816 32084//30821 +f 32081//30818 32080//30817 32084//30821 32085//30822 +f 32086//30823 32087//30824 32088//30825 32089//30826 +f 32081//30818 32086//30823 32089//30826 32082//30819 +f 32086//30823 32081//30818 32085//30822 32090//30827 +f 32087//30824 32086//30823 32090//30827 32091//30828 +f 32092//30829 32093//30830 32094//30831 32095//30832 +f 32087//30824 32092//30829 32095//30832 32088//30825 +f 32092//30829 32087//30824 32091//30828 32096//30833 +f 32093//30830 32092//30829 32096//30833 32097//30834 +f 32098//30835 32099//30836 32100//30837 32101//30838 +f 32093//30830 32098//30835 32101//30838 32094//30831 +f 32098//30835 32093//30830 32097//30834 32102//30839 +f 32099//30836 32098//30835 32102//30839 32103//30840 +f 32104//30841 32105//30842 32106//30843 32107//30844 +f 32099//30836 32104//30841 32107//30844 32100//30837 +f 32104//30841 32099//30836 32103//30840 32108//30845 +f 32105//30842 32104//30841 32108//30845 32109//30846 +f 32110//30847 32111//30848 32112//30849 32113//30850 +f 32105//30842 32110//30847 32113//30850 32106//30843 +f 32110//30847 32105//30842 32109//30846 32114//30851 +f 32111//30848 32110//30847 32114//30851 32115//30852 +f 32116//30853 32117//30854 32118//30855 32119//30856 +f 32111//30848 32116//30853 32119//30856 32112//30849 +f 32116//30853 32111//30848 32115//30852 32120//30857 +f 32117//30854 32116//30853 32120//30857 32121//30858 +f 32122//30859 31937//30674 31938//30675 32123//30860 +f 32117//30854 32122//30859 32123//30860 32118//30855 +f 32122//30859 32117//30854 32121//30858 32124//30861 +f 31937//30674 32122//30859 32124//30861 31939//30676 +f 32125//30862 31936//30673 31935//30672 32126//30863 +f 32127//30864 32125//30862 32126//30863 32128//30865 +f 32125//30862 32127//30864 32129//30866 32130//30867 +f 31936//30673 32125//30862 32130//30867 31938//30675 +f 32131//30868 31940//30677 31939//30676 32132//30869 +f 32133//30870 32131//30868 32132//30869 32134//30871 +f 32131//30868 32133//30870 32135//30872 32136//30873 +f 31940//30677 32131//30868 32136//30873 31941//30678 +f 32137//30874 31945//30682 31944//30681 32138//30875 +f 32139//30876 32137//30874 32138//30875 32140//30877 +f 32137//30874 32139//30876 32128//30865 32126//30863 +f 31945//30682 32137//30874 32126//30863 31935//30672 +f 32141//30878 31946//30683 31941//30678 32136//30873 +f 32142//30879 32141//30878 32136//30873 32135//30872 +f 32141//30878 32142//30879 32143//30880 32144//30881 +f 31946//30683 32141//30878 32144//30881 31947//30684 +f 32145//30882 31951//30688 31950//30687 32146//30883 +f 32147//30884 32145//30882 32146//30883 32148//30885 +f 32145//30882 32147//30884 32140//30877 32138//30875 +f 31951//30688 32145//30882 32138//30875 31944//30681 +f 32149//30886 31952//30689 31947//30684 32144//30881 +f 32150//30887 32149//30886 32144//30881 32143//30880 +f 32149//30886 32150//30887 32151//30888 32152//30889 +f 31952//30689 32149//30886 32152//30889 31953//30690 +f 32153//30890 31957//30694 31956//30693 32154//30891 +f 32155//30892 32153//30890 32154//30891 32156//30893 +f 32153//30890 32155//30892 32148//30885 32146//30883 +f 31957//30694 32153//30890 32146//30883 31950//30687 +f 32157//30894 31958//30695 31953//30690 32152//30889 +f 32158//30895 32157//30894 32152//30889 32151//30888 +f 32157//30894 32158//30895 32159//30896 32160//30897 +f 31958//30695 32157//30894 32160//30897 31959//30696 +f 32161//30898 31963//30700 31962//30699 32162//30899 +f 32163//30900 32161//30898 32162//30899 32164//30901 +f 32161//30898 32163//30900 32156//30893 32154//30891 +f 31963//30700 32161//30898 32154//30891 31956//30693 +f 32165//30902 31964//30701 31959//30696 32160//30897 +f 32166//30903 32165//30902 32160//30897 32159//30896 +f 32165//30902 32166//30903 32167//30904 32168//30905 +f 31964//30701 32165//30902 32168//30905 31965//30702 +f 32169//30906 31969//30706 31968//30705 32170//30907 +f 32171//30908 32169//30906 32170//30907 32172//30909 +f 32169//30906 32171//30908 32164//30901 32162//30899 +f 31969//30706 32169//30906 32162//30899 31962//30699 +f 32173//30910 31970//30707 31965//30702 32168//30905 +f 32174//30911 32173//30910 32168//30905 32167//30904 +f 32173//30910 32174//30911 32175//30912 32176//30913 +f 31970//30707 32173//30910 32176//30913 31971//30708 +f 32177//30914 31975//30712 31974//30711 32178//30915 +f 32179//30916 32177//30914 32178//30915 32180//30917 +f 32177//30914 32179//30916 32172//30909 32170//30907 +f 31975//30712 32177//30914 32170//30907 31968//30705 +f 32181//30918 31976//30713 31971//30708 32176//30913 +f 32182//30919 32181//30918 32176//30913 32175//30912 +f 32181//30918 32182//30919 32183//30920 32184//30921 +f 31976//30713 32181//30918 32184//30921 31977//30714 +f 32185//30922 31981//30718 31980//30717 32186//30923 +f 32187//30924 32185//30922 32186//30923 32188//30925 +f 32185//30922 32187//30924 32180//30917 32178//30915 +f 31981//30718 32185//30922 32178//30915 31974//30711 +f 32189//30926 31982//30719 31977//30714 32184//30921 +f 32190//30927 32189//30926 32184//30921 32183//30920 +f 32189//30926 32190//30927 32191//30928 32192//30929 +f 31982//30719 32189//30926 32192//30929 31983//30720 +f 32193//30930 31987//30724 31986//30723 32194//30931 +f 32195//30932 32193//30930 32194//30931 32196//30933 +f 32193//30930 32195//30932 32188//30925 32186//30923 +f 31987//30724 32193//30930 32186//30923 31980//30717 +f 32197//30934 31988//30725 31983//30720 32192//30929 +f 32198//30935 32197//30934 32192//30929 32191//30928 +f 32197//30934 32198//30935 32199//30936 32200//30937 +f 31988//30725 32197//30934 32200//30937 31989//30726 +f 32201//30938 31993//30730 31992//30729 32202//30939 +f 32203//30940 32201//30938 32202//30939 32204//30941 +f 32201//30938 32203//30940 32196//30933 32194//30931 +f 31993//30730 32201//30938 32194//30931 31986//30723 +f 32205//30942 31994//30731 31989//30726 32200//30937 +f 32206//30943 32205//30942 32200//30937 32199//30936 +f 32205//30942 32206//30943 32207//30944 32208//30945 +f 31994//30731 32205//30942 32208//30945 31995//30732 +f 32209//30946 31999//30736 31998//30735 32210//30947 +f 32211//30948 32209//30946 32210//30947 32212//30949 +f 32209//30946 32211//30948 32204//30941 32202//30939 +f 31999//30736 32209//30946 32202//30939 31992//30729 +f 32213//30950 32000//30737 31995//30732 32208//30945 +f 32214//30951 32213//30950 32208//30945 32207//30944 +f 32213//30950 32214//30951 32215//30952 32216//30953 +f 32000//30737 32213//30950 32216//30953 32001//30738 +f 32217//30954 32005//30742 32004//30741 32218//30955 +f 32219//30956 32217//30954 32218//30955 32220//30957 +f 32217//30954 32219//30956 32212//30949 32210//30947 +f 32005//30742 32217//30954 32210//30947 31998//30735 +f 32221//30958 32006//30743 32001//30738 32216//30953 +f 32222//30959 32221//30958 32216//30953 32215//30952 +f 32221//30958 32222//30959 32223//30960 32224//30961 +f 32006//30743 32221//30958 32224//30961 32007//30744 +f 32225//30962 32011//30748 32010//30747 32226//30963 +f 32227//30964 32225//30962 32226//30963 32228//30965 +f 32225//30962 32227//30964 32220//30957 32218//30955 +f 32011//30748 32225//30962 32218//30955 32004//30741 +f 32229//30966 32012//30749 32007//30744 32224//30961 +f 32230//30967 32229//30966 32224//30961 32223//30960 +f 32229//30966 32230//30967 32231//30968 32232//30969 +f 32012//30749 32229//30966 32232//30969 32013//30750 +f 32233//30970 32017//30754 32016//30753 32234//30971 +f 32235//30972 32233//30970 32234//30971 32236//30973 +f 32233//30970 32235//30972 32228//30965 32226//30963 +f 32017//30754 32233//30970 32226//30963 32010//30747 +f 32237//30974 32018//30755 32013//30750 32232//30969 +f 32238//30975 32237//30974 32232//30969 32231//30968 +f 32237//30974 32238//30975 32239//30976 32240//30977 +f 32018//30755 32237//30974 32240//30977 32019//30756 +f 32241//30978 32023//30760 32022//30759 32242//30979 +f 32243//30980 32241//30978 32242//30979 32244//30981 +f 32241//30978 32243//30980 32236//30973 32234//30971 +f 32023//30760 32241//30978 32234//30971 32016//30753 +f 32245//30982 32024//30761 32019//30756 32240//30977 +f 32246//30983 32245//30982 32240//30977 32239//30976 +f 32245//30982 32246//30983 32247//30984 32248//30985 +f 32024//30761 32245//30982 32248//30985 32025//30762 +f 32249//30986 32029//30766 32028//30765 32250//30987 +f 32251//30988 32249//30986 32250//30987 32252//30989 +f 32249//30986 32251//30988 32244//30981 32242//30979 +f 32029//30766 32249//30986 32242//30979 32022//30759 +f 32253//30990 32030//30767 32025//30762 32248//30985 +f 32254//30991 32253//30990 32248//30985 32247//30984 +f 32253//30990 32254//30991 32255//30992 32256//30993 +f 32030//30767 32253//30990 32256//30993 32031//30768 +f 32257//30994 32035//30772 32034//30771 32258//30995 +f 32259//30996 32257//30994 32258//30995 32260//30997 +f 32257//30994 32259//30996 32252//30989 32250//30987 +f 32035//30772 32257//30994 32250//30987 32028//30765 +f 32261//30998 32036//30773 32031//30768 32256//30993 +f 32262//30999 32261//30998 32256//30993 32255//30992 +f 32261//30998 32262//30999 32263//31000 32264//31001 +f 32036//30773 32261//30998 32264//31001 32037//30774 +f 32265//31002 32041//30778 32040//30777 32266//31003 +f 32267//31004 32265//31002 32266//31003 32268//31005 +f 32265//31002 32267//31004 32260//30997 32258//30995 +f 32041//30778 32265//31002 32258//30995 32034//30771 +f 32269//31006 32042//30779 32037//30774 32264//31001 +f 32270//31007 32269//31006 32264//31001 32263//31000 +f 32269//31006 32270//31007 32271//31008 32272//31009 +f 32042//30779 32269//31006 32272//31009 32043//30780 +f 32273//31010 32047//30784 32046//30783 32274//31011 +f 32275//31012 32273//31010 32274//31011 32276//31013 +f 32273//31010 32275//31012 32268//31005 32266//31003 +f 32047//30784 32273//31010 32266//31003 32040//30777 +f 32277//31014 32048//30785 32043//30780 32272//31009 +f 32278//31015 32277//31014 32272//31009 32271//31008 +f 32277//31014 32278//31015 32279//31016 32280//31017 +f 32048//30785 32277//31014 32280//31017 32049//30786 +f 32281//31018 32053//30790 32052//30789 32282//31019 +f 32283//31020 32281//31018 32282//31019 32284//31021 +f 32281//31018 32283//31020 32276//31013 32274//31011 +f 32053//30790 32281//31018 32274//31011 32046//30783 +f 32285//31022 32054//30791 32049//30786 32280//31017 +f 32286//31023 32285//31022 32280//31017 32279//31016 +f 32285//31022 32286//31023 32287//31024 32288//31025 +f 32054//30791 32285//31022 32288//31025 32055//30792 +f 32289//31026 32059//30796 32058//30795 32290//31027 +f 32291//31028 32289//31026 32290//31027 32292//31029 +f 32289//31026 32291//31028 32284//31021 32282//31019 +f 32059//30796 32289//31026 32282//31019 32052//30789 +f 32293//31030 32060//30797 32055//30792 32288//31025 +f 32294//31031 32293//31030 32288//31025 32287//31024 +f 32293//31030 32294//31031 32295//31032 32296//31033 +f 32060//30797 32293//31030 32296//31033 32061//30798 +f 32297//31034 32065//30802 32064//30801 32298//31035 +f 32299//31036 32297//31034 32298//31035 32300//31037 +f 32297//31034 32299//31036 32292//31029 32290//31027 +f 32065//30802 32297//31034 32290//31027 32058//30795 +f 32301//31038 32066//30803 32061//30798 32296//31033 +f 32302//31039 32301//31038 32296//31033 32295//31032 +f 32301//31038 32302//31039 32303//31040 32304//31041 +f 32066//30803 32301//31038 32304//31041 32067//30804 +f 32305//31042 32071//30808 32070//30807 32306//31043 +f 32307//31044 32305//31042 32306//31043 32308//31045 +f 32305//31042 32307//31044 32300//31037 32298//31035 +f 32071//30808 32305//31042 32298//31035 32064//30801 +f 32309//31046 32072//30809 32067//30804 32304//31041 +f 32310//31047 32309//31046 32304//31041 32303//31040 +f 32309//31046 32310//31047 32311//31048 32312//31049 +f 32072//30809 32309//31046 32312//31049 32073//30810 +f 32313//31050 32077//30814 32076//30813 32314//31051 +f 32315//31052 32313//31050 32314//31051 32316//31053 +f 32313//31050 32315//31052 32308//31045 32306//31043 +f 32077//30814 32313//31050 32306//31043 32070//30807 +f 32317//31054 32078//30815 32073//30810 32312//31049 +f 32318//31055 32317//31054 32312//31049 32311//31048 +f 32317//31054 32318//31055 32319//31056 32320//31057 +f 32078//30815 32317//31054 32320//31057 32079//30816 +f 32321//31058 32083//30820 32082//30819 32322//31059 +f 32323//31060 32321//31058 32322//31059 32324//31061 +f 32321//31058 32323//31060 32316//31053 32314//31051 +f 32083//30820 32321//31058 32314//31051 32076//30813 +f 32325//31062 32084//30821 32079//30816 32320//31057 +f 32326//31063 32325//31062 32320//31057 32319//31056 +f 32325//31062 32326//31063 32327//31064 32328//31065 +f 32084//30821 32325//31062 32328//31065 32085//30822 +f 32329//31066 32089//30826 32088//30825 32330//31067 +f 32331//31068 32329//31066 32330//31067 32332//31069 +f 32329//31066 32331//31068 32324//31061 32322//31059 +f 32089//30826 32329//31066 32322//31059 32082//30819 +f 32333//31070 32090//30827 32085//30822 32328//31065 +f 32334//31071 32333//31070 32328//31065 32327//31064 +f 32333//31070 32334//31071 32335//31072 32336//31073 +f 32090//30827 32333//31070 32336//31073 32091//30828 +f 32337//31074 32095//30832 32094//30831 32338//31075 +f 32339//31076 32337//31074 32338//31075 32340//31077 +f 32337//31074 32339//31076 32332//31069 32330//31067 +f 32095//30832 32337//31074 32330//31067 32088//30825 +f 32341//31078 32096//30833 32091//30828 32336//31073 +f 32342//31079 32341//31078 32336//31073 32335//31072 +f 32341//31078 32342//31079 32343//31080 32344//31081 +f 32096//30833 32341//31078 32344//31081 32097//30834 +f 32345//31082 32101//30838 32100//30837 32346//31083 +f 32347//31084 32345//31082 32346//31083 32348//31085 +f 32345//31082 32347//31084 32340//31077 32338//31075 +f 32101//30838 32345//31082 32338//31075 32094//30831 +f 32349//31086 32102//30839 32097//30834 32344//31081 +f 32350//31087 32349//31086 32344//31081 32343//31080 +f 32349//31086 32350//31087 32351//31088 32352//31089 +f 32102//30839 32349//31086 32352//31089 32103//30840 +f 32353//31090 32107//30844 32106//30843 32354//31091 +f 32355//31092 32353//31090 32354//31091 32356//31093 +f 32353//31090 32355//31092 32348//31085 32346//31083 +f 32107//30844 32353//31090 32346//31083 32100//30837 +f 32357//31094 32108//30845 32103//30840 32352//31089 +f 32358//31095 32357//31094 32352//31089 32351//31088 +f 32357//31094 32358//31095 32359//31096 32360//31097 +f 32108//30845 32357//31094 32360//31097 32109//30846 +f 32361//31098 32113//30850 32112//30849 32362//31099 +f 32363//31100 32361//31098 32362//31099 32364//31101 +f 32361//31098 32363//31100 32356//31093 32354//31091 +f 32113//30850 32361//31098 32354//31091 32106//30843 +f 32365//31102 32114//30851 32109//30846 32360//31097 +f 32366//31103 32365//31102 32360//31097 32359//31096 +f 32365//31102 32366//31103 32367//31104 32368//31105 +f 32114//30851 32365//31102 32368//31105 32115//30852 +f 32369//31106 32119//30856 32118//30855 32370//31107 +f 32371//31108 32369//31106 32370//31107 32372//31109 +f 32369//31106 32371//31108 32364//31101 32362//31099 +f 32119//30856 32369//31106 32362//31099 32112//30849 +f 32373//31110 32120//30857 32115//30852 32368//31105 +f 32374//31111 32373//31110 32368//31105 32367//31104 +f 32373//31110 32374//31111 32375//31112 32376//31113 +f 32120//30857 32373//31110 32376//31113 32121//30858 +f 32377//31114 32123//30860 31938//30675 32130//30867 +f 32378//31115 32377//31114 32130//30867 32129//30866 +f 32377//31114 32378//31115 32372//31109 32370//31107 +f 32123//30860 32377//31114 32370//31107 32118//30855 +f 32379//31116 32124//30861 32121//30858 32376//31113 +f 32380//31117 32379//31116 32376//31113 32375//31112 +f 32379//31116 32380//31117 32134//30871 32132//30869 +f 32124//30861 32379//31116 32132//30869 31939//30676 +f 32381//31118 32133//30870 32134//30871 32382//31119 +f 32383//31120 32381//31118 32382//31119 32384//31121 +f 32381//31118 32383//31120 32385//31122 32386//31123 +f 32133//30870 32381//31118 32386//31123 32135//30872 +f 32387//31124 32142//30879 32135//30872 32386//31123 +f 32388//31125 32387//31124 32386//31123 32385//31122 +f 32387//31124 32388//31125 32389//31126 32390//31127 +f 32142//30879 32387//31124 32390//31127 32143//30880 +f 32391//31128 32150//30887 32143//30880 32390//31127 +f 32392//31129 32391//31128 32390//31127 32389//31126 +f 32391//31128 32392//31129 32393//31130 32394//31131 +f 32150//30887 32391//31128 32394//31131 32151//30888 +f 32395//31132 32158//30895 32151//30888 32394//31131 +f 32396//31133 32395//31132 32394//31131 32393//31130 +f 32395//31132 32396//31133 32397//31134 32398//31135 +f 32158//30895 32395//31132 32398//31135 32159//30896 +f 32399//31136 32166//30903 32159//30896 32398//31135 +f 32400//31137 32399//31136 32398//31135 32397//31134 +f 32399//31136 32400//31137 32401//31138 32402//31139 +f 32166//30903 32399//31136 32402//31139 32167//30904 +f 32403//31140 32174//30911 32167//30904 32402//31139 +f 32404//31141 32403//31140 32402//31139 32401//31138 +f 32403//31140 32404//31141 32405//31142 32406//31143 +f 32174//30911 32403//31140 32406//31143 32175//30912 +f 32407//31144 32182//30919 32175//30912 32406//31143 +f 32408//31145 32407//31144 32406//31143 32405//31142 +f 32407//31144 32408//31145 32409//31146 32410//31147 +f 32182//30919 32407//31144 32410//31147 32183//30920 +f 32411//31148 32190//30927 32183//30920 32410//31147 +f 32412//31149 32411//31148 32410//31147 32409//31146 +f 32411//31148 32412//31149 32413//31150 32414//31151 +f 32190//30927 32411//31148 32414//31151 32191//30928 +f 32415//31152 32198//30935 32191//30928 32414//31151 +f 32416//31153 32415//31152 32414//31151 32413//31150 +f 32415//31152 32416//31153 32417//31154 32418//31155 +f 32198//30935 32415//31152 32418//31155 32199//30936 +f 32419//31156 32206//30943 32199//30936 32418//31155 +f 32420//31157 32419//31156 32418//31155 32417//31154 +f 32419//31156 32420//31157 32421//31158 32422//31159 +f 32206//30943 32419//31156 32422//31159 32207//30944 +f 32423//31160 32214//30951 32207//30944 32422//31159 +f 32424//31161 32423//31160 32422//31159 32421//31158 +f 32423//31160 32424//31161 32425//31162 32426//31163 +f 32214//30951 32423//31160 32426//31163 32215//30952 +f 32427//31164 32222//30959 32215//30952 32426//31163 +f 32428//31165 32427//31164 32426//31163 32425//31162 +f 32427//31164 32428//31165 32429//31166 32430//31167 +f 32222//30959 32427//31164 32430//31167 32223//30960 +f 32431//31168 32230//30967 32223//30960 32430//31167 +f 32432//31169 32431//31168 32430//31167 32429//31166 +f 32431//31168 32432//31169 32433//31170 32434//31171 +f 32230//30967 32431//31168 32434//31171 32231//30968 +f 32435//31172 32238//30975 32231//30968 32434//31171 +f 32436//31173 32435//31172 32434//31171 32433//31170 +f 32435//31172 32436//31173 32437//31174 32438//31175 +f 32238//30975 32435//31172 32438//31175 32239//30976 +f 32439//31176 32246//30983 32239//30976 32438//31175 +f 32440//31177 32439//31176 32438//31175 32437//31174 +f 32439//31176 32440//31177 32441//31178 32442//31179 +f 32246//30983 32439//31176 32442//31179 32247//30984 +f 32443//31180 32254//30991 32247//30984 32442//31179 +f 32444//31181 32443//31180 32442//31179 32441//31178 +f 32443//31180 32444//31181 32445//31182 32446//31183 +f 32254//30991 32443//31180 32446//31183 32255//30992 +f 32447//31184 32262//30999 32255//30992 32446//31183 +f 32448//31185 32447//31184 32446//31183 32445//31182 +f 32447//31184 32448//31185 32449//31186 32450//31187 +f 32262//30999 32447//31184 32450//31187 32263//31000 +f 32451//31188 32270//31007 32263//31000 32450//31187 +f 32452//31189 32451//31188 32450//31187 32449//31186 +f 32451//31188 32452//31189 32453//31190 32454//31191 +f 32270//31007 32451//31188 32454//31191 32271//31008 +f 32455//31192 32278//31015 32271//31008 32454//31191 +f 32456//31193 32455//31192 32454//31191 32453//31190 +f 32455//31192 32456//31193 32457//31194 32458//31195 +f 32278//31015 32455//31192 32458//31195 32279//31016 +f 32459//31196 32286//31023 32279//31016 32458//31195 +f 32460//31197 32459//31196 32458//31195 32457//31194 +f 32459//31196 32460//31197 32461//31198 32462//31199 +f 32286//31023 32459//31196 32462//31199 32287//31024 +f 32463//31200 32294//31031 32287//31024 32462//31199 +f 32464//31201 32463//31200 32462//31199 32461//31198 +f 32463//31200 32464//31201 32465//31202 32466//31203 +f 32294//31031 32463//31200 32466//31203 32295//31032 +f 32467//31204 32302//31039 32295//31032 32466//31203 +f 32468//31205 32467//31204 32466//31203 32465//31202 +f 32467//31204 32468//31205 32469//31206 32470//31207 +f 32302//31039 32467//31204 32470//31207 32303//31040 +f 32471//31208 32310//31047 32303//31040 32470//31207 +f 32472//31209 32471//31208 32470//31207 32469//31206 +f 32471//31208 32472//31209 32473//31210 32474//31211 +f 32310//31047 32471//31208 32474//31211 32311//31048 +f 32475//31212 32318//31055 32311//31048 32474//31211 +f 32476//31213 32475//31212 32474//31211 32473//31210 +f 32475//31212 32476//31213 32477//31214 32478//31215 +f 32318//31055 32475//31212 32478//31215 32319//31056 +f 32479//31216 32326//31063 32319//31056 32478//31215 +f 32480//31217 32479//31216 32478//31215 32477//31214 +f 32479//31216 32480//31217 32481//31218 32482//31219 +f 32326//31063 32479//31216 32482//31219 32327//31064 +f 32483//31220 32334//31071 32327//31064 32482//31219 +f 32484//31221 32483//31220 32482//31219 32481//31218 +f 32483//31220 32484//31221 32485//31222 32486//31223 +f 32334//31071 32483//31220 32486//31223 32335//31072 +f 32487//31224 32342//31079 32335//31072 32486//31223 +f 32488//31225 32487//31224 32486//31223 32485//31222 +f 32487//31224 32488//31225 32489//31226 32490//31227 +f 32342//31079 32487//31224 32490//31227 32343//31080 +f 32491//31228 32350//31087 32343//31080 32490//31227 +f 32492//31229 32491//31228 32490//31227 32489//31226 +f 32491//31228 32492//31229 32493//31230 32494//31231 +f 32350//31087 32491//31228 32494//31231 32351//31088 +f 32495//31232 32358//31095 32351//31088 32494//31231 +f 32496//31233 32495//31232 32494//31231 32493//31230 +f 32495//31232 32496//31233 32497//31234 32498//31235 +f 32358//31095 32495//31232 32498//31235 32359//31096 +f 32499//31236 32366//31103 32359//31096 32498//31235 +f 32500//31237 32499//31236 32498//31235 32497//31234 +f 32499//31236 32500//31237 32501//31238 32502//31239 +f 32366//31103 32499//31236 32502//31239 32367//31104 +f 32503//31240 32374//31111 32367//31104 32502//31239 +f 32504//31241 32503//31240 32502//31239 32501//31238 +f 32503//31240 32504//31241 32505//31242 32506//31243 +f 32374//31111 32503//31240 32506//31243 32375//31112 +f 32507//31244 32380//31117 32375//31112 32506//31243 +f 32508//31245 32507//31244 32506//31243 32505//31242 +f 32507//31244 32508//31245 32384//31121 32382//31119 +f 32380//31117 32507//31244 32382//31119 32134//30871 +f 32509//31246 31748//30489 31747//30488 32510//31247 +f 32383//31120 32509//31246 32510//31247 32385//31122 +f 32509//31246 32383//31120 32384//31121 32511//31248 +f 31748//30489 32509//31246 32511//31248 31749//30491 +f 32512//31249 31755//30497 31754//30496 32513//31250 +f 32388//31125 32512//31249 32513//31250 32389//31126 +f 32512//31249 32388//31125 32385//31122 32510//31247 +f 31755//30497 32512//31249 32510//31247 31747//30488 +f 32514//31251 31761//30503 31760//30502 32515//31252 +f 32392//31129 32514//31251 32515//31252 32393//31130 +f 32514//31251 32392//31129 32389//31126 32513//31250 +f 31761//30503 32514//31251 32513//31250 31754//30496 +f 32516//31253 31767//30509 31766//30508 32517//31254 +f 32396//31133 32516//31253 32517//31254 32397//31134 +f 32516//31253 32396//31133 32393//31130 32515//31252 +f 31767//30509 32516//31253 32515//31252 31760//30502 +f 32518//31255 31773//30515 31772//30514 32519//31256 +f 32400//31137 32518//31255 32519//31256 32401//31138 +f 32518//31255 32400//31137 32397//31134 32517//31254 +f 31773//30515 32518//31255 32517//31254 31766//30508 +f 32520//31257 31779//30521 31778//30520 32521//31258 +f 32404//31141 32520//31257 32521//31258 32405//31142 +f 32520//31257 32404//31141 32401//31138 32519//31256 +f 31779//30521 32520//31257 32519//31256 31772//30514 +f 32522//31259 31785//30527 31784//30526 32523//31260 +f 32408//31145 32522//31259 32523//31260 32409//31146 +f 32522//31259 32408//31145 32405//31142 32521//31258 +f 31785//30527 32522//31259 32521//31258 31778//30520 +f 32524//31261 31791//30533 31790//30532 32525//31262 +f 32412//31149 32524//31261 32525//31262 32413//31150 +f 32524//31261 32412//31149 32409//31146 32523//31260 +f 31791//30533 32524//31261 32523//31260 31784//30526 +f 32526//31263 31797//30539 31796//30538 32527//31264 +f 32416//31153 32526//31263 32527//31264 32417//31154 +f 32526//31263 32416//31153 32413//31150 32525//31262 +f 31797//30539 32526//31263 32525//31262 31790//30532 +f 32528//31265 31803//30545 31802//30544 32529//31266 +f 32420//31157 32528//31265 32529//31266 32421//31158 +f 32528//31265 32420//31157 32417//31154 32527//31264 +f 31803//30545 32528//31265 32527//31264 31796//30538 +f 32530//31267 31809//30551 31808//30550 32531//31268 +f 32424//31161 32530//31267 32531//31268 32425//31162 +f 32530//31267 32424//31161 32421//31158 32529//31266 +f 31809//30551 32530//31267 32529//31266 31802//30544 +f 32532//31269 31815//30557 31814//30556 32533//31270 +f 32428//31165 32532//31269 32533//31270 32429//31166 +f 32532//31269 32428//31165 32425//31162 32531//31268 +f 31815//30557 32532//31269 32531//31268 31808//30550 +f 32534//31271 31821//30563 31820//30562 32535//31272 +f 32432//31169 32534//31271 32535//31272 32433//31170 +f 32534//31271 32432//31169 32429//31166 32533//31270 +f 31821//30563 32534//31271 32533//31270 31814//30556 +f 32536//31273 31827//30569 31826//30568 32537//31274 +f 32436//31173 32536//31273 32537//31274 32437//31174 +f 32536//31273 32436//31173 32433//31170 32535//31272 +f 31827//30569 32536//31273 32535//31272 31820//30562 +f 32538//31275 31833//30575 31832//30574 32539//31276 +f 32440//31177 32538//31275 32539//31276 32441//31178 +f 32538//31275 32440//31177 32437//31174 32537//31274 +f 31833//30575 32538//31275 32537//31274 31826//30568 +f 32540//31277 31839//30581 31838//30580 32541//31278 +f 32444//31181 32540//31277 32541//31278 32445//31182 +f 32540//31277 32444//31181 32441//31178 32539//31276 +f 31839//30581 32540//31277 32539//31276 31832//30574 +f 32542//31279 31845//30587 31844//30586 32543//31280 +f 32448//31185 32542//31279 32543//31280 32449//31186 +f 32542//31279 32448//31185 32445//31182 32541//31278 +f 31845//30587 32542//31279 32541//31278 31838//30580 +f 32544//31281 31851//30593 31850//30592 32545//31282 +f 32452//31189 32544//31281 32545//31282 32453//31190 +f 32544//31281 32452//31189 32449//31186 32543//31280 +f 31851//30593 32544//31281 32543//31280 31844//30586 +f 32546//31283 31857//30599 31856//30598 32547//31284 +f 32456//31193 32546//31283 32547//31284 32457//31194 +f 32546//31283 32456//31193 32453//31190 32545//31282 +f 31857//30599 32546//31283 32545//31282 31850//30592 +f 32548//31285 31863//30605 31862//30604 32549//31286 +f 32460//31197 32548//31285 32549//31286 32461//31198 +f 32548//31285 32460//31197 32457//31194 32547//31284 +f 31863//30605 32548//31285 32547//31284 31856//30598 +f 32550//31287 31869//30611 31868//30610 32551//31288 +f 32464//31201 32550//31287 32551//31288 32465//31202 +f 32550//31287 32464//31201 32461//31198 32549//31286 +f 31869//30611 32550//31287 32549//31286 31862//30604 +f 32552//31289 31875//30617 31874//30616 32553//31290 +f 32468//31205 32552//31289 32553//31290 32469//31206 +f 32552//31289 32468//31205 32465//31202 32551//31288 +f 31875//30617 32552//31289 32551//31288 31868//30610 +f 32554//31291 31881//30623 31880//30622 32555//31292 +f 32472//31209 32554//31291 32555//31292 32473//31210 +f 32554//31291 32472//31209 32469//31206 32553//31290 +f 31881//30623 32554//31291 32553//31290 31874//30616 +f 32556//31293 31887//30629 31886//30628 32557//31294 +f 32476//31213 32556//31293 32557//31294 32477//31214 +f 32556//31293 32476//31213 32473//31210 32555//31292 +f 31887//30629 32556//31293 32555//31292 31880//30622 +f 32558//31295 31893//30634 31892//8129 32559//31296 +f 32480//31217 32558//31295 32559//31296 32481//31218 +f 32558//31295 32480//31217 32477//31214 32557//31294 +f 31893//30634 32558//31295 32557//31294 31886//30628 +f 32560//31297 31899//8125 31898//8121 32561//31298 +f 32484//31221 32560//31297 32561//31298 32485//31222 +f 32560//31297 32484//31221 32481//31218 32559//31296 +f 31899//8125 32560//31297 32559//31296 31892//8129 +f 32562//31299 31905//8117 31904//8113 32563//31300 +f 32488//31225 32562//31299 32563//31300 32489//31226 +f 32562//31299 32488//31225 32485//31222 32561//31298 +f 31905//8117 32562//31299 32561//31298 31898//8121 +f 32564//31301 31911//8109 31910//30647 32565//31302 +f 32492//31229 32564//31301 32565//31302 32493//31230 +f 32564//31301 32492//31229 32489//31226 32563//31300 +f 31911//8109 32564//31301 32563//31300 31904//8113 +f 32566//31303 31917//30653 31916//30652 32567//31304 +f 32496//31233 32566//31303 32567//31304 32497//31234 +f 32566//31303 32496//31233 32493//31230 32565//31302 +f 31917//30653 32566//31303 32565//31302 31910//30647 +f 32568//31305 31923//30659 31922//30658 32569//31306 +f 32500//31237 32568//31305 32569//31306 32501//31238 +f 32568//31305 32500//31237 32497//31234 32567//31304 +f 31923//30659 32568//31305 32567//31304 31916//30652 +f 32570//31307 31929//30665 31928//30664 32571//31308 +f 32504//31241 32570//31307 32571//31308 32505//31242 +f 32570//31307 32504//31241 32501//31238 32569//31306 +f 31929//30665 32570//31307 32569//31306 31922//30658 +f 32572//31309 31932//30669 31749//30491 32511//31248 +f 32508//31245 32572//31309 32511//31248 32384//31121 +f 32572//31309 32508//31245 32505//31242 32571//31308 +f 31932//30669 32572//31309 32571//31308 31928//30664 +f 32573//31310 32574//31311 31746//30487 31744//30486 +f 32575//31312 32573//31310 31744//30486 31743//30668 +f 32576//31313 32575//31312 31743//30668 31931//30667 +f 32577//31314 32576//31313 31931//30667 31927//30663 +f 32578//31315 32577//31314 31927//30663 31925//30661 +f 32579//31316 32578//31315 31925//30661 31921//30657 +f 32580//31317 32579//31316 31921//30657 31919//30655 +f 32581//31318 32580//31317 31919//30655 31915//30651 +f 32582//31319 32581//31318 31915//30651 31913//30649 +f 32583//31320 32582//31319 31913//30649 31909//30646 +f 32584//31321 32583//31320 31909//30646 31907//30644 +f 32585//31322 32584//31321 31907//30644 31903//30642 +f 32586//31323 32585//31322 31903//30642 31901//30640 +f 32587//31324 32586//31323 31901//30640 31897//30638 +f 32588//31325 32587//31324 31897//30638 31895//30636 +f 32589//31326 32588//31325 31895//30636 31891//30633 +f 32590//31327 32589//31326 31891//30633 31889//30631 +f 32591//31328 32590//31327 31889//30631 31885//30627 +f 32592//31329 32591//31328 31885//30627 31883//30625 +f 32593//31330 32592//31329 31883//30625 31879//30621 +f 32594//31331 32593//31330 31879//30621 31877//30619 +f 32595//31332 32594//31331 31877//30619 31873//30615 +f 32596//31333 32595//31332 31873//30615 31871//30613 +f 32597//31334 32596//31333 31871//30613 31867//30609 +f 32598//31335 32597//31334 31867//30609 31865//30607 +f 32599//31336 32598//31335 31865//30607 31861//30603 +f 32600//31337 32599//31336 31861//30603 31859//30601 +f 32601//31338 32600//31337 31859//30601 31855//30597 +f 32602//31339 32601//31338 31855//30597 31853//30595 +f 32603//31340 32602//31339 31853//30595 31849//30591 +f 32604//31341 32603//31340 31849//30591 31847//30589 +f 32605//31342 32604//31341 31847//30589 31843//30585 +f 32606//31343 32605//31342 31843//30585 31841//30583 +f 32607//31344 32606//31343 31841//30583 31837//30579 +f 32608//31345 32607//31344 31837//30579 31835//30577 +f 32609//31346 32608//31345 31835//30577 31831//30573 +f 32610//31347 32609//31346 31831//30573 31829//30571 +f 32611//31348 32610//31347 31829//30571 31825//30567 +f 32612//31349 32611//31348 31825//30567 31823//30565 +f 32613//31350 32612//31349 31823//30565 31819//30561 +f 32614//31351 32613//31350 31819//30561 31817//30559 +f 32615//31352 32614//31351 31817//30559 31813//30555 +f 32616//31353 32615//31352 31813//30555 31811//30553 +f 32617//31354 32616//31353 31811//30553 31807//30549 +f 32618//31355 32617//31354 31807//30549 31805//30547 +f 32619//31356 32618//31355 31805//30547 31801//30543 +f 32620//31357 32619//31356 31801//30543 31799//30541 +f 32621//31358 32620//31357 31799//30541 31795//30537 +f 32622//31359 32621//31358 31795//30537 31793//30535 +f 32623//31360 32622//31359 31793//30535 31789//30531 +f 32624//31361 32623//31360 31789//30531 31787//30529 +f 32625//31362 32624//31361 31787//30529 31783//30525 +f 32626//31363 32625//31362 31783//30525 31781//30523 +f 32627//31364 32626//31363 31781//30523 31777//30519 +f 32628//31365 32627//31364 31777//30519 31775//30517 +f 32629//31366 32628//31365 31775//30517 31771//30513 +f 32630//31367 32629//31366 31771//30513 31769//30511 +f 32631//31368 32630//31367 31769//30511 31765//30507 +f 32632//31369 32631//31368 31765//30507 31763//30505 +f 32633//31370 32632//31369 31763//30505 31759//30501 +f 32634//31371 32633//31370 31759//30501 31757//30499 +f 32635//31372 32634//31371 31757//30499 31753//30495 +f 32636//31373 32635//31372 31753//30495 31751//30493 +f 32574//31311 32636//31373 31751//30493 31746//30487 +f 32637//31374 32127//30864 32128//30865 32638//31375 +f 32639//31376 32637//31374 32638//31375 32640//31377 +f 32637//31374 32639//31376 32641//31378 32642//31379 +f 32127//30864 32637//31374 32642//31379 32129//30866 +f 32643//31380 32139//30876 32140//30877 32644//31381 +f 32645//31382 32643//31380 32644//31381 32646//31383 +f 32643//31380 32645//31382 32640//31377 32638//31375 +f 32139//30876 32643//31380 32638//31375 32128//30865 +f 32647//31384 32147//30884 32148//30885 32648//31385 +f 32649//31386 32647//31384 32648//31385 32650//31387 +f 32647//31384 32649//31386 32646//31383 32644//31381 +f 32147//30884 32647//31384 32644//31381 32140//30877 +f 32651//31388 32155//30892 32156//30893 32652//31389 +f 32653//31390 32651//31388 32652//31389 32654//31391 +f 32651//31388 32653//31390 32650//31387 32648//31385 +f 32155//30892 32651//31388 32648//31385 32148//30885 +f 32655//31392 32163//30900 32164//30901 32656//31393 +f 32657//31394 32655//31392 32656//31393 32658//31395 +f 32655//31392 32657//31394 32654//31391 32652//31389 +f 32163//30900 32655//31392 32652//31389 32156//30893 +f 32659//31396 32171//30908 32172//30909 32660//31397 +f 32661//31398 32659//31396 32660//31397 32662//31399 +f 32659//31396 32661//31398 32658//31395 32656//31393 +f 32171//30908 32659//31396 32656//31393 32164//30901 +f 32663//31400 32179//30916 32180//30917 32664//31401 +f 32665//31402 32663//31400 32664//31401 32666//31403 +f 32663//31400 32665//31402 32662//31399 32660//31397 +f 32179//30916 32663//31400 32660//31397 32172//30909 +f 32667//31404 32187//30924 32188//30925 32668//31405 +f 32669//31406 32667//31404 32668//31405 32670//31407 +f 32667//31404 32669//31406 32666//31403 32664//31401 +f 32187//30924 32667//31404 32664//31401 32180//30917 +f 32671//31408 32195//30932 32196//30933 32672//31409 +f 32673//31410 32671//31408 32672//31409 32674//31411 +f 32671//31408 32673//31410 32670//31407 32668//31405 +f 32195//30932 32671//31408 32668//31405 32188//30925 +f 32675//31412 32203//30940 32204//30941 32676//31413 +f 32677//31414 32675//31412 32676//31413 32678//31415 +f 32675//31412 32677//31414 32674//31411 32672//31409 +f 32203//30940 32675//31412 32672//31409 32196//30933 +f 32679//31416 32211//30948 32212//30949 32680//31417 +f 32681//31418 32679//31416 32680//31417 32682//31419 +f 32679//31416 32681//31418 32678//31415 32676//31413 +f 32211//30948 32679//31416 32676//31413 32204//30941 +f 32683//31420 32219//30956 32220//30957 32684//31421 +f 32685//31422 32683//31420 32684//31421 32686//31423 +f 32683//31420 32685//31422 32682//31419 32680//31417 +f 32219//30956 32683//31420 32680//31417 32212//30949 +f 32687//31424 32227//30964 32228//30965 32688//31425 +f 32689//31426 32687//31424 32688//31425 32690//31427 +f 32687//31424 32689//31426 32686//31423 32684//31421 +f 32227//30964 32687//31424 32684//31421 32220//30957 +f 32691//31428 32235//30972 32236//30973 32692//31429 +f 32693//31430 32691//31428 32692//31429 32694//31431 +f 32691//31428 32693//31430 32690//31427 32688//31425 +f 32235//30972 32691//31428 32688//31425 32228//30965 +f 32695//31432 32243//30980 32244//30981 32696//31433 +f 32697//31434 32695//31432 32696//31433 32698//31435 +f 32695//31432 32697//31434 32694//31431 32692//31429 +f 32243//30980 32695//31432 32692//31429 32236//30973 +f 32699//31436 32251//30988 32252//30989 32700//31437 +f 32701//31438 32699//31436 32700//31437 32702//31439 +f 32699//31436 32701//31438 32698//31435 32696//31433 +f 32251//30988 32699//31436 32696//31433 32244//30981 +f 32703//31440 32259//30996 32260//30997 32704//31441 +f 32705//31442 32703//31440 32704//31441 32706//31443 +f 32703//31440 32705//31442 32702//31439 32700//31437 +f 32259//30996 32703//31440 32700//31437 32252//30989 +f 32707//31444 32267//31004 32268//31005 32708//31445 +f 32709//31446 32707//31444 32708//31445 32710//31447 +f 32707//31444 32709//31446 32706//31443 32704//31441 +f 32267//31004 32707//31444 32704//31441 32260//30997 +f 32711//31448 32275//31012 32276//31013 32712//31449 +f 32713//31450 32711//31448 32712//31449 32714//31451 +f 32711//31448 32713//31450 32710//31447 32708//31445 +f 32275//31012 32711//31448 32708//31445 32268//31005 +f 32715//31452 32283//31020 32284//31021 32716//31453 +f 32717//31454 32715//31452 32716//31453 32718//31455 +f 32715//31452 32717//31454 32714//31451 32712//31449 +f 32283//31020 32715//31452 32712//31449 32276//31013 +f 32719//31456 32291//31028 32292//31029 32720//31457 +f 32721//31458 32719//31456 32720//31457 32722//31459 +f 32719//31456 32721//31458 32718//31455 32716//31453 +f 32291//31028 32719//31456 32716//31453 32284//31021 +f 32723//31460 32299//31036 32300//31037 32724//31461 +f 32725//31462 32723//31460 32724//31461 32726//31463 +f 32723//31460 32725//31462 32722//31459 32720//31457 +f 32299//31036 32723//31460 32720//31457 32292//31029 +f 32727//31464 32307//31044 32308//31045 32728//31465 +f 32729//31466 32727//31464 32728//31465 32730//31467 +f 32727//31464 32729//31466 32726//31463 32724//31461 +f 32307//31044 32727//31464 32724//31461 32300//31037 +f 32731//31468 32315//31052 32316//31053 32732//31469 +f 32733//31470 32731//31468 32732//31469 32734//31471 +f 32731//31468 32733//31470 32730//31467 32728//31465 +f 32315//31052 32731//31468 32728//31465 32308//31045 +f 32735//31472 32323//31060 32324//31061 32736//31473 +f 32737//31474 32735//31472 32736//31473 32738//31475 +f 32735//31472 32737//31474 32734//31471 32732//31469 +f 32323//31060 32735//31472 32732//31469 32316//31053 +f 32739//31476 32331//31068 32332//31069 32740//31477 +f 32741//31478 32739//31476 32740//31477 32742//31479 +f 32739//31476 32741//31478 32738//31475 32736//31473 +f 32331//31068 32739//31476 32736//31473 32324//31061 +f 32743//31480 32339//31076 32340//31077 32744//31481 +f 32745//31482 32743//31480 32744//31481 32746//31483 +f 32743//31480 32745//31482 32742//31479 32740//31477 +f 32339//31076 32743//31480 32740//31477 32332//31069 +f 32747//31484 32347//31084 32348//31085 32748//31485 +f 32749//31486 32747//31484 32748//31485 32750//31487 +f 32747//31484 32749//31486 32746//31483 32744//31481 +f 32347//31084 32747//31484 32744//31481 32340//31077 +f 32751//31488 32355//31092 32356//31093 32752//31489 +f 32753//31490 32751//31488 32752//31489 32754//31491 +f 32751//31488 32753//31490 32750//31487 32748//31485 +f 32355//31092 32751//31488 32748//31485 32348//31085 +f 32755//31492 32363//31100 32364//31101 32756//31493 +f 32757//31494 32755//31492 32756//31493 32758//31495 +f 32755//31492 32757//31494 32754//31491 32752//31489 +f 32363//31100 32755//31492 32752//31489 32356//31093 +f 32759//31496 32371//31108 32372//31109 32760//31497 +f 32761//31498 32759//31496 32760//31497 32762//31499 +f 32759//31496 32761//31498 32758//31495 32756//31493 +f 32371//31108 32759//31496 32756//31493 32364//31101 +f 32763//31500 32378//31115 32129//30866 32642//31379 +f 32764//31501 32763//31500 32642//31379 32641//31378 +f 32763//31500 32764//31501 32762//31499 32760//31497 +f 32378//31115 32763//31500 32760//31497 32372//31109 +f 32765//3570 32766//3570 32767//3570 32768//3570 +f 32769//3570 32765//3570 32768//3570 32770//3570 +f 32765//3570 32769//3570 32771//3570 32772//3570 +f 32766//3570 32765//3570 32772//3570 32773//3570 +f 32774//3570 32769//3570 32770//3570 32775//3570 +f 32776//3570 32774//3570 32775//3570 32777//3570 +f 32774//3570 32776//3570 32778//3570 32779//3570 +f 32769//3570 32774//3570 32779//3570 32771//3570 +f 32780//3570 32776//3570 32777//3570 32781//3570 +f 32782//3570 32780//3570 32781//3570 32783//3570 +f 32780//3570 32782//3570 32784//3570 32785//3570 +f 32776//3570 32780//3570 32785//3570 32778//3570 +f 32786//3570 32782//3570 32783//3570 32787//3570 +f 32788//3570 32786//3570 32787//3570 32789//3570 +f 32786//3570 32788//3570 32790//3570 32791//3570 +f 32782//3570 32786//3570 32791//3570 32784//3570 +f 32792//3570 32788//3570 32789//3570 32793//3570 +f 32794//3570 32792//3570 32793//3570 32795//3570 +f 32792//3570 32794//3570 32796//3570 32797//3570 +f 32788//3570 32792//3570 32797//3570 32790//3570 +f 32798//3570 32794//3570 32795//3570 32799//3570 +f 32800//3570 32798//3570 32799//3570 32801//3570 +f 32798//3570 32800//3570 32802//3570 32803//3570 +f 32794//3570 32798//3570 32803//3570 32796//3570 +f 32804//3570 32800//3570 32801//3570 32805//3570 +f 32806//3570 32804//3570 32805//3570 32807//3570 +f 32804//3570 32806//3570 32808//3570 32809//3570 +f 32800//3570 32804//3570 32809//3570 32802//3570 +f 32810//3570 32806//3570 32807//3570 32811//3570 +f 32812//3570 32810//3570 32811//3570 32813//3570 +f 32810//3570 32812//3570 32814//3570 32815//3570 +f 32806//3570 32810//3570 32815//3570 32808//3570 +f 32816//3570 32812//3570 32813//3570 32817//3570 +f 32818//3570 32816//3570 32817//3570 32819//3570 +f 32816//3570 32818//3570 32820//3570 32821//3570 +f 32812//3570 32816//3570 32821//3570 32814//3570 +f 32822//3570 32818//3570 32819//3570 32823//3570 +f 32824//3570 32822//3570 32823//3570 32825//3570 +f 32822//3570 32824//3570 32826//3570 32827//3570 +f 32818//3570 32822//3570 32827//3570 32820//3570 +f 32828//3570 32824//3570 32825//3570 32829//3570 +f 32830//3570 32828//3570 32829//3570 32831//3570 +f 32828//3570 32830//3570 32832//3570 32833//3570 +f 32824//3570 32828//3570 32833//3570 32826//3570 +f 32834//3570 32830//3570 32831//3570 32835//3570 +f 32836//3570 32834//3570 32835//3570 32837//3570 +f 32834//3570 32836//3570 32838//3570 32839//3570 +f 32830//3570 32834//3570 32839//3570 32832//3570 +f 32840//3570 32836//3570 32837//3570 32841//3570 +f 32842//3570 32840//3570 32841//3570 32843//3570 +f 32840//3570 32842//3570 32844//3570 32845//3570 +f 32836//3570 32840//3570 32845//3570 32838//3570 +f 32846//3570 32842//3570 32843//3570 32847//3570 +f 32848//3570 32846//3570 32847//3570 32849//3570 +f 32846//3570 32848//3570 32850//3570 32851//3570 +f 32842//3570 32846//3570 32851//3570 32844//3570 +f 32852//3570 32848//3570 32849//3570 32853//3570 +f 32854//3570 32852//3570 32853//3570 32855//3570 +f 32852//3570 32854//3570 32856//3570 32857//3570 +f 32848//3570 32852//3570 32857//3570 32850//3570 +f 32858//3570 32854//3570 32855//3570 32859//3570 +f 32860//3570 32858//3570 32859//3570 32861//3570 +f 32858//3570 32860//3570 32862//3570 32863//3570 +f 32854//3570 32858//3570 32863//3570 32856//3570 +f 32864//3570 32860//3570 32861//3570 32865//3570 +f 32866//3570 32864//3570 32865//3570 32867//3570 +f 32864//3570 32866//3570 32868//3570 32869//3570 +f 32860//3570 32864//3570 32869//3570 32862//3570 +f 32870//3570 32866//3570 32867//3570 32871//3570 +f 32872//3570 32870//3570 32871//3570 32873//3570 +f 32870//3570 32872//3570 32874//3570 32875//3570 +f 32866//3570 32870//3570 32875//3570 32868//3570 +f 32876//3570 32872//3570 32873//3570 32877//3570 +f 32878//3570 32876//3570 32877//3570 32879//3570 +f 32876//3570 32878//3570 32880//3570 32881//3570 +f 32872//3570 32876//3570 32881//3570 32874//3570 +f 32882//3570 32878//3570 32879//3570 32883//3570 +f 32884//3570 32882//3570 32883//3570 32885//3570 +f 32882//3570 32884//3570 32886//3570 32887//3570 +f 32878//3570 32882//3570 32887//3570 32880//3570 +f 32888//3570 32884//3570 32885//3570 32889//3570 +f 32890//3570 32888//3570 32889//3570 32891//3570 +f 32888//3570 32890//3570 32892//3570 32893//3570 +f 32884//3570 32888//3570 32893//3570 32886//3570 +f 32894//3570 32890//3570 32891//3570 32895//3570 +f 32896//3570 32894//3570 32895//3570 32897//3570 +f 32894//3570 32896//3570 32898//3570 32899//3570 +f 32890//3570 32894//3570 32899//3570 32892//3570 +f 32900//3570 32896//3570 32897//3570 32901//3570 +f 32902//3570 32900//3570 32901//3570 32903//3570 +f 32900//3570 32902//3570 32904//3570 32905//3570 +f 32896//3570 32900//3570 32905//3570 32898//3570 +f 32906//3570 32902//3570 32903//3570 32907//3570 +f 32908//3570 32906//3570 32907//3570 32909//3570 +f 32906//3570 32908//3570 32910//3570 32911//3570 +f 32902//3570 32906//3570 32911//3570 32904//3570 +f 32912//3570 32908//3570 32909//3570 32913//3570 +f 32914//3570 32912//3570 32913//3570 32915//3570 +f 32912//3570 32914//3570 32916//3570 32917//3570 +f 32908//3570 32912//3570 32917//3570 32910//3570 +f 32918//3570 32914//3570 32915//3570 32919//3570 +f 32920//3570 32918//3570 32919//3570 32921//3570 +f 32918//3570 32920//3570 32922//3570 32923//3570 +f 32914//3570 32918//3570 32923//3570 32916//3570 +f 32924//3570 32920//3570 32921//3570 32925//3570 +f 32926//3570 32924//3570 32925//3570 32927//3570 +f 32924//3570 32926//3570 32928//3570 32929//3570 +f 32920//3570 32924//3570 32929//3570 32922//3570 +f 32930//3570 32926//3570 32927//3570 32931//3570 +f 32932//3570 32930//3570 32931//3570 32933//3570 +f 32930//3570 32932//3570 32934//3570 32935//3570 +f 32926//3570 32930//3570 32935//3570 32928//3570 +f 32936//3570 32932//3570 32933//3570 32937//3570 +f 32938//3570 32936//3570 32937//3570 32939//3570 +f 32936//3570 32938//3570 32940//3570 32941//3570 +f 32932//3570 32936//3570 32941//3570 32934//3570 +f 32942//3570 32938//3570 32939//3570 32943//3570 +f 32944//3570 32942//3570 32943//3570 32945//3570 +f 32942//3570 32944//3570 32946//3570 32947//3570 +f 32938//3570 32942//3570 32947//3570 32940//3570 +f 32948//3570 32944//3570 32945//3570 32949//3570 +f 32950//3570 32948//3570 32949//3570 32951//3570 +f 32948//3570 32950//3570 32952//3570 32953//3570 +f 32944//3570 32948//3570 32953//3570 32946//3570 +f 32954//3570 32950//3570 32951//3570 32955//3570 +f 32766//3570 32954//3570 32955//3570 32767//3570 +f 32954//3570 32766//3570 32773//3570 32956//3570 +f 32950//3570 32954//3570 32956//3570 32952//3570 +f 32957//31502 32639//31376 32640//31377 32958//31503 +f 32768//31504 32957//31502 32958//31503 32770//31505 +f 32957//31502 32768//31504 32767//31506 32959//31507 +f 32639//31376 32957//31502 32959//31507 32641//31378 +f 32960//31508 32645//31382 32646//31383 32961//31509 +f 32775//31510 32960//31508 32961//31509 32777//31511 +f 32960//31508 32775//31510 32770//31505 32958//31503 +f 32645//31382 32960//31508 32958//31503 32640//31377 +f 32962//31512 32649//31386 32650//31387 32963//31513 +f 32781//31514 32962//31512 32963//31513 32783//31515 +f 32962//31512 32781//31514 32777//31511 32961//31509 +f 32649//31386 32962//31512 32961//31509 32646//31383 +f 32964//31516 32653//31390 32654//31391 32965//31517 +f 32787//31518 32964//31516 32965//31517 32789//31519 +f 32964//31516 32787//31518 32783//31515 32963//31513 +f 32653//31390 32964//31516 32963//31513 32650//31387 +f 32966//31520 32657//31394 32658//31395 32967//31521 +f 32793//31522 32966//31520 32967//31521 32795//31523 +f 32966//31520 32793//31522 32789//31519 32965//31517 +f 32657//31394 32966//31520 32965//31517 32654//31391 +f 32968//31524 32661//31398 32662//31399 32969//31525 +f 32799//31526 32968//31524 32969//31525 32801//31527 +f 32968//31524 32799//31526 32795//31523 32967//31521 +f 32661//31398 32968//31524 32967//31521 32658//31395 +f 32970//31528 32665//31402 32666//31403 32971//31529 +f 32805//31530 32970//31528 32971//31529 32807//31531 +f 32970//31528 32805//31530 32801//31527 32969//31525 +f 32665//31402 32970//31528 32969//31525 32662//31399 +f 32972//31532 32669//31406 32670//31407 32973//31533 +f 32811//31534 32972//31532 32973//31533 32813//31535 +f 32972//31532 32811//31534 32807//31531 32971//31529 +f 32669//31406 32972//31532 32971//31529 32666//31403 +f 32974//31536 32673//31410 32674//31411 32975//31537 +f 32817//31538 32974//31536 32975//31537 32819//31539 +f 32974//31536 32817//31538 32813//31535 32973//31533 +f 32673//31410 32974//31536 32973//31533 32670//31407 +f 32976//31540 32677//31414 32678//31415 32977//31541 +f 32823//31542 32976//31540 32977//31541 32825//31543 +f 32976//31540 32823//31542 32819//31539 32975//31537 +f 32677//31414 32976//31540 32975//31537 32674//31411 +f 32978//31544 32681//31418 32682//31419 32979//31545 +f 32829//31546 32978//31544 32979//31545 32831//31547 +f 32978//31544 32829//31546 32825//31543 32977//31541 +f 32681//31418 32978//31544 32977//31541 32678//31415 +f 32980//31548 32685//31422 32686//31423 32981//31549 +f 32835//31550 32980//31548 32981//31549 32837//31551 +f 32980//31548 32835//31550 32831//31547 32979//31545 +f 32685//31422 32980//31548 32979//31545 32682//31419 +f 32982//31552 32689//31426 32690//31427 32983//31553 +f 32841//31554 32982//31552 32983//31553 32843//31555 +f 32982//31552 32841//31554 32837//31551 32981//31549 +f 32689//31426 32982//31552 32981//31549 32686//31423 +f 32984//31556 32693//31430 32694//31431 32985//31557 +f 32847//31558 32984//31556 32985//31557 32849//31559 +f 32984//31556 32847//31558 32843//31555 32983//31553 +f 32693//31430 32984//31556 32983//31553 32690//31427 +f 32986//31560 32697//31434 32698//31435 32987//31561 +f 32853//31562 32986//31560 32987//31561 32855//31563 +f 32986//31560 32853//31562 32849//31559 32985//31557 +f 32697//31434 32986//31560 32985//31557 32694//31431 +f 32988//31564 32701//31438 32702//31439 32989//31565 +f 32859//31566 32988//31564 32989//31565 32861//31567 +f 32988//31564 32859//31566 32855//31563 32987//31561 +f 32701//31438 32988//31564 32987//31561 32698//31435 +f 32990//31568 32705//31442 32706//31443 32991//31569 +f 32865//31570 32990//31568 32991//31569 32867//31571 +f 32990//31568 32865//31570 32861//31567 32989//31565 +f 32705//31442 32990//31568 32989//31565 32702//31439 +f 32992//31572 32709//31446 32710//31447 32993//31573 +f 32871//31574 32992//31572 32993//31573 32873//31575 +f 32992//31572 32871//31574 32867//31571 32991//31569 +f 32709//31446 32992//31572 32991//31569 32706//31443 +f 32994//31576 32713//31450 32714//31451 32995//31577 +f 32877//31578 32994//31576 32995//31577 32879//31579 +f 32994//31576 32877//31578 32873//31575 32993//31573 +f 32713//31450 32994//31576 32993//31573 32710//31447 +f 32996//31580 32717//31454 32718//31455 32997//31581 +f 32883//31582 32996//31580 32997//31581 32998//31583 +f 32996//31580 32883//31582 32879//31579 32995//31577 +f 32717//31454 32996//31580 32995//31577 32714//31451 +f 32999//31584 32721//31458 32722//31459 33000//31585 +f 32889//31586 32999//31584 33000//31585 32891//31587 +f 32999//31584 32889//31586 32998//31583 32997//31581 +f 32721//31458 32999//31584 32997//31581 32718//31455 +f 33001//31588 32725//31462 32726//31463 33002//31589 +f 32895//31590 33001//31588 33002//31589 32897//31591 +f 33001//31588 32895//31590 32891//31587 33000//31585 +f 32725//31462 33001//31588 33000//31585 32722//31459 +f 33003//31592 32729//31466 32730//31467 33004//31593 +f 32901//31594 33003//31592 33004//31593 32903//31595 +f 33003//31592 32901//31594 32897//31591 33002//31589 +f 32729//31466 33003//31592 33002//31589 32726//31463 +f 33005//31596 32733//31470 32734//31471 33006//31597 +f 32907//31598 33005//31596 33006//31597 32909//31599 +f 33005//31596 32907//31598 32903//31595 33004//31593 +f 32733//31470 33005//31596 33004//31593 32730//31467 +f 33007//31600 32737//31474 32738//31475 33008//31601 +f 32913//31602 33007//31600 33008//31601 32915//31603 +f 33007//31600 32913//31602 32909//31599 33006//31597 +f 32737//31474 33007//31600 33006//31597 32734//31471 +f 33009//31604 32741//31478 32742//31479 33010//31605 +f 32919//31606 33009//31604 33010//31605 32921//31607 +f 33009//31604 32919//31606 32915//31603 33008//31601 +f 32741//31478 33009//31604 33008//31601 32738//31475 +f 33011//31608 32745//31482 32746//31483 33012//31609 +f 32925//31610 33011//31608 33012//31609 32927//31611 +f 33011//31608 32925//31610 32921//31607 33010//31605 +f 32745//31482 33011//31608 33010//31605 32742//31479 +f 33013//31612 32749//31486 32750//31487 33014//31613 +f 32931//31614 33013//31612 33014//31613 32933//31615 +f 33013//31612 32931//31614 32927//31611 33012//31609 +f 32749//31486 33013//31612 33012//31609 32746//31483 +f 33015//31616 32753//31490 32754//31491 33016//31617 +f 32937//31618 33015//31616 33016//31617 32939//31619 +f 33015//31616 32937//31618 32933//31615 33014//31613 +f 32753//31490 33015//31616 33014//31613 32750//31487 +f 33017//31620 32757//31494 32758//31495 33018//31621 +f 32943//31622 33017//31620 33018//31621 32945//31623 +f 33017//31620 32943//31622 32939//31619 33016//31617 +f 32757//31494 33017//31620 33016//31617 32754//31491 +f 33019//31624 32761//31498 32762//31499 33020//31625 +f 32949//31626 33019//31624 33020//31625 32951//31627 +f 33019//31624 32949//31626 32945//31623 33018//31621 +f 32761//31498 33019//31624 33018//31621 32758//31495 +f 33021//31628 32764//31501 32641//31378 32959//31507 +f 32955//31629 33021//31628 32959//31507 32767//31506 +f 33021//31628 32955//31629 32951//31627 33020//31625 +f 32764//31501 33021//31628 33020//31625 32762//31499 +f 33022//31630 33023//31631 32773//3570 32772//3570 +f 33024//31632 33022//31630 32772//3570 32771//3570 +f 33022//31630 33024//31632 33025//31633 33026//31634 +f 33023//31631 33022//31630 33026//31634 33027//31635 +f 33028//31636 33024//31632 32771//3570 32779//3570 +f 33029//31637 33028//31636 32779//3570 32778//3570 +f 33028//31636 33029//31637 33030//31638 33031//31639 +f 33024//31632 33028//31636 33031//31639 33025//31633 +f 33032//31640 33029//31637 32778//3570 32785//3570 +f 33033//31641 33032//31640 32785//3570 32784//3570 +f 33032//31640 33033//31641 33034//31642 33035//31643 +f 33029//31637 33032//31640 33035//31643 33030//31638 +f 33036//31644 33033//31641 32784//3570 32791//3570 +f 33037//31645 33036//31644 32791//3570 32790//3570 +f 33036//31644 33037//31645 33038//31646 33039//31647 +f 33033//31641 33036//31644 33039//31647 33034//31642 +f 33040//31648 33037//31645 32790//3570 32797//3570 +f 33041//31649 33040//31648 32797//3570 32796//3570 +f 33040//31648 33041//31649 33042//31650 33043//31651 +f 33037//31645 33040//31648 33043//31651 33038//31646 +f 33044//31652 33041//31649 32796//3570 32803//3570 +f 33045//31653 33044//31652 32803//3570 32802//3570 +f 33044//31652 33045//31653 33046//31654 33047//31655 +f 33041//31649 33044//31652 33047//31655 33042//31650 +f 33048//31656 33045//31653 32802//3570 32809//3570 +f 33049//31657 33048//31656 32809//3570 32808//3570 +f 33048//31656 33049//31657 33050//31658 33051//31659 +f 33045//31653 33048//31656 33051//31659 33046//31654 +f 33052//31660 33049//31657 32808//3570 32815//3570 +f 33053//31661 33052//31660 32815//3570 32814//3570 +f 33052//31660 33053//31661 33054//31662 33055//31663 +f 33049//31657 33052//31660 33055//31663 33050//31658 +f 33056//31664 33053//31661 32814//3570 32821//3570 +f 33057//31665 33056//31664 32821//3570 32820//3570 +f 33056//31664 33057//31665 33058//31666 33059//31667 +f 33053//31661 33056//31664 33059//31667 33054//31662 +f 33060//31668 33057//31665 32820//3570 32827//3570 +f 33061//31669 33060//31668 32827//3570 32826//3570 +f 33060//31668 33061//31669 33062//31670 33063//31671 +f 33057//31665 33060//31668 33063//31671 33058//31666 +f 33064//31672 33061//31669 32826//3570 32833//3570 +f 33065//31673 33064//31672 32833//3570 32832//3570 +f 33064//31672 33065//31673 33066//31674 33067//31675 +f 33061//31669 33064//31672 33067//31675 33062//31670 +f 33068//31676 33065//31673 32832//3570 32839//3570 +f 33069//31677 33068//31676 32839//3570 32838//3570 +f 33068//31676 33069//31677 33070//31678 33071//31679 +f 33065//31673 33068//31676 33071//31679 33066//31674 +f 33072//31680 33069//31677 32838//3570 32845//3570 +f 33073//31681 33072//31680 32845//3570 32844//3570 +f 33072//31680 33073//31681 33074//31682 33075//31683 +f 33069//31677 33072//31680 33075//31683 33070//31678 +f 33076//31684 33073//31681 32844//3570 32851//3570 +f 33077//31685 33076//31684 32851//3570 32850//3570 +f 33076//31684 33077//31685 33078//31686 33079//31687 +f 33073//31681 33076//31684 33079//31687 33074//31682 +f 33080//31688 33077//31685 32850//3570 32857//3570 +f 33081//31689 33080//31688 32857//3570 32856//3570 +f 33080//31688 33081//31689 33082//31690 33083//31691 +f 33077//31685 33080//31688 33083//31691 33078//31686 +f 33084//31692 33081//31689 32856//3570 32863//3570 +f 33085//31693 33084//31692 32863//3570 32862//3570 +f 33084//31692 33085//31693 33086//31694 33087//31695 +f 33081//31689 33084//31692 33087//31695 33082//31690 +f 33088//31696 33085//31693 32862//3570 32869//3570 +f 33089//31697 33088//31696 32869//3570 32868//3570 +f 33088//31696 33089//31697 33090//31698 33091//31699 +f 33085//31693 33088//31696 33091//31699 33086//31694 +f 33092//31700 33089//31697 32868//3570 32875//3570 +f 33093//31701 33092//31700 32875//3570 32874//3570 +f 33092//31700 33093//31701 33094//31702 33095//31703 +f 33089//31697 33092//31700 33095//31703 33090//31698 +f 33096//31704 33093//31701 32874//3570 32881//3570 +f 33097//31705 33096//31704 32881//3570 32880//3570 +f 33096//31704 33097//31705 33098//31706 33099//31707 +f 33093//31701 33096//31704 33099//31707 33094//31702 +f 33100//31708 33097//31705 32880//3570 32887//3570 +f 33101//31709 33100//31708 32887//3570 32886//3570 +f 33100//31708 33101//31709 33102//31710 33103//31711 +f 33097//31705 33100//31708 33103//31711 33098//31706 +f 33104//31712 33101//31709 32886//3570 32893//3570 +f 33105//31713 33104//31712 32893//3570 32892//3570 +f 33104//31712 33105//31713 33106//31714 33107//31715 +f 33101//31709 33104//31712 33107//31715 33102//31710 +f 33108//31716 33105//31713 32892//3570 32899//3570 +f 33109//31717 33108//31716 32899//3570 32898//3570 +f 33108//31716 33109//31717 33110//31718 33111//31719 +f 33105//31713 33108//31716 33111//31719 33106//31714 +f 33112//31720 33109//31717 32898//3570 32905//3570 +f 33113//31721 33112//31720 32905//3570 32904//3570 +f 33112//31720 33113//31721 33114//31722 33115//31723 +f 33109//31717 33112//31720 33115//31723 33110//31718 +f 33116//31724 33113//31721 32904//3570 32911//3570 +f 33117//31725 33116//31724 32911//3570 32910//3570 +f 33116//31724 33117//31725 33118//31726 33119//31727 +f 33113//31721 33116//31724 33119//31727 33114//31722 +f 33120//31728 33117//31725 32910//3570 32917//3570 +f 33121//31729 33120//31728 32917//3570 32916//3570 +f 33120//31728 33121//31729 33122//31730 33123//31731 +f 33117//31725 33120//31728 33123//31731 33118//31726 +f 33124//31732 33121//31729 32916//3570 32923//3570 +f 33125//31733 33124//31732 32923//3570 32922//3570 +f 33124//31732 33125//31733 33126//31734 33127//31735 +f 33121//31729 33124//31732 33127//31735 33122//31730 +f 33128//31736 33125//31733 32922//3570 32929//3570 +f 33129//31737 33128//31736 32929//3570 32928//3570 +f 33128//31736 33129//31737 33130//31738 33131//31739 +f 33125//31733 33128//31736 33131//31739 33126//31734 +f 33132//31740 33129//31737 32928//3570 32935//3570 +f 33133//31741 33132//31740 32935//3570 32934//3570 +f 33132//31740 33133//31741 33134//31742 33135//31743 +f 33129//31737 33132//31740 33135//31743 33130//31738 +f 33136//31744 33133//31741 32934//3570 32941//3570 +f 33137//31745 33136//31744 32941//3570 32940//3570 +f 33136//31744 33137//31745 33138//31746 33139//31747 +f 33133//31741 33136//31744 33139//31747 33134//31742 +f 33140//31748 33137//31745 32940//3570 32947//3570 +f 33141//31749 33140//31748 32947//3570 32946//3570 +f 33140//31748 33141//31749 33142//31750 33143//31751 +f 33137//31745 33140//31748 33143//31751 33138//31746 +f 33144//31752 33141//31749 32946//3570 32953//3570 +f 33145//31753 33144//31752 32953//3570 32952//3570 +f 33144//31752 33145//31753 33146//31754 33147//31755 +f 33141//31749 33144//31752 33147//31755 33142//31750 +f 33148//31756 33145//31753 32952//3570 32956//3570 +f 33023//31631 33148//31756 32956//3570 32773//3570 +f 33148//31756 33023//31631 33027//31635 33149//31757 +f 33145//31753 33148//31756 33149//31757 33146//31754 +f 33150//31758 33151//31759 33027//31635 33026//31634 +f 33152//31760 33150//31758 33026//31634 33025//31633 +f 33150//31758 33152//31760 33153//31761 33154//31762 +f 33151//31759 33150//31758 33154//31762 33155//31763 +f 33156//31764 33152//31760 33025//31633 33031//31639 +f 33157//31765 33156//31764 33031//31639 33030//31638 +f 33156//31764 33157//31765 33158//31766 33159//31767 +f 33152//31760 33156//31764 33159//31767 33153//31761 +f 33160//31768 33157//31765 33030//31638 33035//31643 +f 33161//31769 33160//31768 33035//31643 33034//31642 +f 33160//31768 33161//31769 33162//31770 33163//31771 +f 33157//31765 33160//31768 33163//31771 33158//31766 +f 33164//31772 33161//31769 33034//31642 33039//31647 +f 33165//31773 33164//31772 33039//31647 33038//31646 +f 33164//31772 33165//31773 33166//31774 33167//31775 +f 33161//31769 33164//31772 33167//31775 33162//31770 +f 33168//31776 33165//31773 33038//31646 33043//31651 +f 33169//31777 33168//31776 33043//31651 33042//31650 +f 33168//31776 33169//31777 33170//31778 33171//31779 +f 33165//31773 33168//31776 33171//31779 33166//31774 +f 33172//31780 33169//31777 33042//31650 33047//31655 +f 33173//31781 33172//31780 33047//31655 33046//31654 +f 33172//31780 33173//31781 33174//31782 33175//31783 +f 33169//31777 33172//31780 33175//31783 33170//31778 +f 33176//31784 33173//31781 33046//31654 33051//31659 +f 33177//31785 33176//31784 33051//31659 33050//31658 +f 33176//31784 33177//31785 33178//31786 33179//31787 +f 33173//31781 33176//31784 33179//31787 33174//31782 +f 33180//31788 33177//31785 33050//31658 33055//31663 +f 33181//31789 33180//31788 33055//31663 33054//31662 +f 33180//31788 33181//31789 33182//31790 33183//31791 +f 33177//31785 33180//31788 33183//31791 33178//31786 +f 33184//31792 33181//31789 33054//31662 33059//31667 +f 33185//31793 33184//31792 33059//31667 33058//31666 +f 33184//31792 33185//31793 33186//31794 33187//31795 +f 33181//31789 33184//31792 33187//31795 33182//31790 +f 33188//31796 33185//31793 33058//31666 33063//31671 +f 33189//31797 33188//31796 33063//31671 33062//31670 +f 33188//31796 33189//31797 33190//31798 33191//31799 +f 33185//31793 33188//31796 33191//31799 33186//31794 +f 33192//31800 33189//31797 33062//31670 33067//31675 +f 33193//31801 33192//31800 33067//31675 33066//31674 +f 33192//31800 33193//31801 33194//31802 33195//31803 +f 33189//31797 33192//31800 33195//31803 33190//31798 +f 33196//31804 33193//31801 33066//31674 33071//31679 +f 33197//31805 33196//31804 33071//31679 33070//31678 +f 33196//31804 33197//31805 33198//31806 33199//31807 +f 33193//31801 33196//31804 33199//31807 33194//31802 +f 33200//31808 33197//31805 33070//31678 33075//31683 +f 33201//31809 33200//31808 33075//31683 33074//31682 +f 33200//31808 33201//31809 33202//31810 33203//31811 +f 33197//31805 33200//31808 33203//31811 33198//31806 +f 33204//31812 33201//31809 33074//31682 33079//31687 +f 33205//31813 33204//31812 33079//31687 33078//31686 +f 33204//31812 33205//31813 33206//31814 33207//31815 +f 33201//31809 33204//31812 33207//31815 33202//31810 +f 33208//31816 33205//31813 33078//31686 33083//31691 +f 33209//31817 33208//31816 33083//31691 33082//31690 +f 33208//31816 33209//31817 33210//31818 33211//31819 +f 33205//31813 33208//31816 33211//31819 33206//31814 +f 33212//31820 33209//31817 33082//31690 33087//31695 +f 33213//31821 33212//31820 33087//31695 33086//31694 +f 33212//31820 33213//31821 33214//31822 33215//31823 +f 33209//31817 33212//31820 33215//31823 33210//31818 +f 33216//31824 33213//31821 33086//31694 33091//31699 +f 33217//31825 33216//31824 33091//31699 33090//31698 +f 33216//31824 33217//31825 33218//31826 33219//31827 +f 33213//31821 33216//31824 33219//31827 33214//31822 +f 33220//31828 33217//31825 33090//31698 33095//31703 +f 33221//31829 33220//31828 33095//31703 33094//31702 +f 33220//31828 33221//31829 33222//31830 33223//31831 +f 33217//31825 33220//31828 33223//31831 33218//31826 +f 33224//31832 33221//31829 33094//31702 33099//31707 +f 33225//31833 33224//31832 33099//31707 33098//31706 +f 33224//31832 33225//31833 33226//31834 33227//31835 +f 33221//31829 33224//31832 33227//31835 33222//31830 +f 33228//31836 33225//31833 33098//31706 33103//31711 +f 33229//31837 33228//31836 33103//31711 33102//31710 +f 33228//31836 33229//31837 33230//31838 33231//31839 +f 33225//31833 33228//31836 33231//31839 33226//31834 +f 33232//31840 33229//31837 33102//31710 33107//31715 +f 33233//31841 33232//31840 33107//31715 33106//31714 +f 33232//31840 33233//31841 33234//31842 33235//31843 +f 33229//31837 33232//31840 33235//31843 33230//31838 +f 33236//31844 33233//31841 33106//31714 33111//31719 +f 33237//31845 33236//31844 33111//31719 33110//31718 +f 33236//31844 33237//31845 33238//31846 33239//31847 +f 33233//31841 33236//31844 33239//31847 33234//31842 +f 33240//31848 33237//31845 33110//31718 33115//31723 +f 33241//31849 33240//31848 33115//31723 33114//31722 +f 33240//31848 33241//31849 33242//31850 33243//31851 +f 33237//31845 33240//31848 33243//31851 33238//31846 +f 33244//31852 33241//31849 33114//31722 33119//31727 +f 33245//31853 33244//31852 33119//31727 33118//31726 +f 33244//31852 33245//31853 33246//31854 33247//31855 +f 33241//31849 33244//31852 33247//31855 33242//31850 +f 33248//31856 33245//31853 33118//31726 33123//31731 +f 33249//31857 33248//31856 33123//31731 33122//31730 +f 33248//31856 33249//31857 33250//31858 33251//31859 +f 33245//31853 33248//31856 33251//31859 33246//31854 +f 33252//31860 33249//31857 33122//31730 33127//31735 +f 33253//31861 33252//31860 33127//31735 33126//31734 +f 33252//31860 33253//31861 33254//31862 33255//31863 +f 33249//31857 33252//31860 33255//31863 33250//31858 +f 33256//31864 33253//31861 33126//31734 33131//31739 +f 33257//31865 33256//31864 33131//31739 33130//31738 +f 33256//31864 33257//31865 33258//31866 33259//31867 +f 33253//31861 33256//31864 33259//31867 33254//31862 +f 33260//31868 33257//31865 33130//31738 33135//31743 +f 33261//31869 33260//31868 33135//31743 33134//31742 +f 33260//31868 33261//31869 33262//31870 33263//31871 +f 33257//31865 33260//31868 33263//31871 33258//31866 +f 33264//31872 33261//31869 33134//31742 33139//31747 +f 33265//31873 33264//31872 33139//31747 33138//31746 +f 33264//31872 33265//31873 33266//31874 33267//31875 +f 33261//31869 33264//31872 33267//31875 33262//31870 +f 33268//31876 33265//31873 33138//31746 33143//31751 +f 33269//31877 33268//31876 33143//31751 33142//31750 +f 33268//31876 33269//31877 33270//31878 33271//31879 +f 33265//31873 33268//31876 33271//31879 33266//31874 +f 33272//31880 33269//31877 33142//31750 33147//31755 +f 33273//31881 33272//31880 33147//31755 33146//31754 +f 33272//31880 33273//31881 33274//31882 33275//31883 +f 33269//31877 33272//31880 33275//31883 33270//31878 +f 33276//31884 33273//31881 33146//31754 33149//31757 +f 33151//31759 33276//31884 33149//31757 33027//31635 +f 33276//31884 33151//31759 33155//31763 33277//31885 +f 33273//31881 33276//31884 33277//31885 33274//31882 +f 33278//31886 33279//31887 33155//31763 33154//31762 +f 33280//31888 33278//31886 33154//31762 33153//31761 +f 33278//31886 33280//31888 33281//30488 33282//30489 +f 33279//31887 33278//31886 33282//30489 33283//30491 +f 33284//31889 33280//31888 33153//31761 33159//31767 +f 33285//31890 33284//31889 33159//31767 33158//31766 +f 33284//31889 33285//31890 33286//30496 33287//30497 +f 33280//31888 33284//31889 33287//30497 33281//30488 +f 33288//31891 33285//31890 33158//31766 33163//31771 +f 33289//31892 33288//31891 33163//31771 33162//31770 +f 33288//31891 33289//31892 33290//30502 33291//30503 +f 33285//31890 33288//31891 33291//30503 33286//30496 +f 33292//31893 33289//31892 33162//31770 33167//31775 +f 33293//31894 33292//31893 33167//31775 33166//31774 +f 33292//31893 33293//31894 33294//30508 33295//30509 +f 33289//31892 33292//31893 33295//30509 33290//30502 +f 33296//31895 33293//31894 33166//31774 33171//31779 +f 33297//31896 33296//31895 33171//31779 33170//31778 +f 33296//31895 33297//31896 33298//30514 33299//30515 +f 33293//31894 33296//31895 33299//30515 33294//30508 +f 33300//31897 33297//31896 33170//31778 33175//31783 +f 33301//31898 33300//31897 33175//31783 33174//31782 +f 33300//31897 33301//31898 33302//30520 33303//30521 +f 33297//31896 33300//31897 33303//30521 33298//30514 +f 33304//31899 33301//31898 33174//31782 33179//31787 +f 33305//31900 33304//31899 33179//31787 33178//31786 +f 33304//31899 33305//31900 33306//30526 33307//30527 +f 33301//31898 33304//31899 33307//30527 33302//30520 +f 33308//31901 33305//31900 33178//31786 33183//31791 +f 33309//31902 33308//31901 33183//31791 33182//31790 +f 33308//31901 33309//31902 33310//30532 33311//30533 +f 33305//31900 33308//31901 33311//30533 33306//30526 +f 33312//31903 33309//31902 33182//31790 33187//31795 +f 33313//31904 33312//31903 33187//31795 33186//31794 +f 33312//31903 33313//31904 33314//30538 33315//30539 +f 33309//31902 33312//31903 33315//30539 33310//30532 +f 33316//31905 33313//31904 33186//31794 33191//31799 +f 33317//31906 33316//31905 33191//31799 33190//31798 +f 33316//31905 33317//31906 33318//30544 33319//30545 +f 33313//31904 33316//31905 33319//30545 33314//30538 +f 33320//31907 33317//31906 33190//31798 33195//31803 +f 33321//31908 33320//31907 33195//31803 33194//31802 +f 33320//31907 33321//31908 33322//30550 33323//30551 +f 33317//31906 33320//31907 33323//30551 33318//30544 +f 33324//31909 33321//31908 33194//31802 33199//31807 +f 33325//31910 33324//31909 33199//31807 33198//31806 +f 33324//31909 33325//31910 33326//30556 33327//30557 +f 33321//31908 33324//31909 33327//30557 33322//30550 +f 33328//31911 33325//31910 33198//31806 33203//31811 +f 33329//31912 33328//31911 33203//31811 33202//31810 +f 33328//31911 33329//31912 33330//30562 33331//30563 +f 33325//31910 33328//31911 33331//30563 33326//30556 +f 33332//31913 33329//31912 33202//31810 33207//31815 +f 33333//31914 33332//31913 33207//31815 33206//31814 +f 33332//31913 33333//31914 33334//30568 33335//30569 +f 33329//31912 33332//31913 33335//30569 33330//30562 +f 33336//31915 33333//31914 33206//31814 33211//31819 +f 33337//31916 33336//31915 33211//31819 33210//31818 +f 33336//31915 33337//31916 33338//30574 33339//30575 +f 33333//31914 33336//31915 33339//30575 33334//30568 +f 33340//31917 33337//31916 33210//31818 33215//31823 +f 33341//31918 33340//31917 33215//31823 33214//31822 +f 33340//31917 33341//31918 33342//30580 33343//30581 +f 33337//31916 33340//31917 33343//30581 33338//30574 +f 33344//31919 33341//31918 33214//31822 33219//31827 +f 33345//31920 33344//31919 33219//31827 33218//31826 +f 33344//31919 33345//31920 33346//30586 33347//30587 +f 33341//31918 33344//31919 33347//30587 33342//30580 +f 33348//31921 33345//31920 33218//31826 33223//31831 +f 33349//31922 33348//31921 33223//31831 33222//31830 +f 33348//31921 33349//31922 33350//30592 33351//30593 +f 33345//31920 33348//31921 33351//30593 33346//30586 +f 33352//31923 33349//31922 33222//31830 33227//31835 +f 33353//31924 33352//31923 33227//31835 33226//31834 +f 33352//31923 33353//31924 33354//30598 33355//30599 +f 33349//31922 33352//31923 33355//30599 33350//30592 +f 33356//31925 33353//31924 33226//31834 33231//31839 +f 33357//31926 33356//31925 33231//31839 33230//31838 +f 33356//31925 33357//31926 33358//30604 33359//30605 +f 33353//31924 33356//31925 33359//30605 33354//30598 +f 33360//31927 33357//31926 33230//31838 33235//31843 +f 33361//31928 33360//31927 33235//31843 33234//31842 +f 33360//31927 33361//31928 33362//30610 33363//30611 +f 33357//31926 33360//31927 33363//30611 33358//30604 +f 33364//31929 33361//31928 33234//31842 33239//31847 +f 33365//31930 33364//31929 33239//31847 33238//31846 +f 33364//31929 33365//31930 33366//30616 33367//30617 +f 33361//31928 33364//31929 33367//30617 33362//30610 +f 33368//31931 33365//31930 33238//31846 33243//31851 +f 33369//31932 33368//31931 33243//31851 33242//31850 +f 33368//31931 33369//31932 33370//30622 33371//30623 +f 33365//31930 33368//31931 33371//30623 33366//30616 +f 33372//31933 33369//31932 33242//31850 33247//31855 +f 33373//31934 33372//31933 33247//31855 33246//31854 +f 33372//31933 33373//31934 33374//30628 33375//30629 +f 33369//31932 33372//31933 33375//30629 33370//30622 +f 33376//31935 33373//31934 33246//31854 33251//31859 +f 33377//31936 33376//31935 33251//31859 33250//31858 +f 33376//31935 33377//31936 33378//8129 33379//30634 +f 33373//31934 33376//31935 33379//30634 33374//30628 +f 33380//31937 33377//31936 33250//31858 33255//31863 +f 33381//31938 33380//31937 33255//31863 33254//31862 +f 33380//31937 33381//31938 33382//8121 33383//8125 +f 33377//31936 33380//31937 33383//8125 33378//8129 +f 33384//31939 33381//31938 33254//31862 33259//31867 +f 33385//31940 33384//31939 33259//31867 33258//31866 +f 33384//31939 33385//31940 33386//8113 33387//8117 +f 33381//31938 33384//31939 33387//8117 33382//8121 +f 33388//31941 33385//31940 33258//31866 33263//31871 +f 33389//31942 33388//31941 33263//31871 33262//31870 +f 33388//31941 33389//31942 33390//30647 33391//8109 +f 33385//31940 33388//31941 33391//8109 33386//8113 +f 33392//31943 33389//31942 33262//31870 33267//31875 +f 33393//31944 33392//31943 33267//31875 33266//31874 +f 33392//31943 33393//31944 33394//30652 33395//30653 +f 33389//31942 33392//31943 33395//30653 33390//30647 +f 33396//31945 33393//31944 33266//31874 33271//31879 +f 33397//31946 33396//31945 33271//31879 33270//31878 +f 33396//31945 33397//31946 33398//30658 33399//30659 +f 33393//31944 33396//31945 33399//30659 33394//30652 +f 33400//31947 33397//31946 33270//31878 33275//31883 +f 33401//31948 33400//31947 33275//31883 33274//31882 +f 33400//31947 33401//31948 33402//30664 33403//30665 +f 33397//31946 33400//31947 33403//30665 33398//30658 +f 33404//31949 33401//31948 33274//31882 33277//31885 +f 33279//31887 33404//31949 33277//31885 33155//31763 +f 33404//31949 33279//31887 33283//30491 33405//30669 +f 33401//31948 33404//31949 33405//30669 33402//30664 +f 33406//31950 33407//31951 33408//31952 33409//31953 +f 33410//31954 33406//31950 33409//31953 33411//31955 +f 33406//31950 33410//31954 33412//31956 33413//31957 +f 33407//31951 33406//31950 33413//31957 33414//31958 +f 33415//31959 33410//31954 33411//31955 33416//31960 +f 33417//31961 33415//31959 33416//31960 33418//31962 +f 33415//31959 33417//31961 33419//31963 33420//31964 +f 33410//31954 33415//31959 33420//31964 33412//31956 +f 33421//31965 33417//31961 33418//31962 33422//31966 +f 33423//31967 33421//31965 33422//31966 33424//31968 +f 33421//31965 33423//31967 33425//31969 33426//31970 +f 33417//31961 33421//31965 33426//31970 33419//31963 +f 33427//31971 33423//31967 33424//31968 33428//31972 +f 33429//31973 33427//31971 33428//31972 33430//31974 +f 33427//31971 33429//31973 33431//31975 33432//31976 +f 33423//31967 33427//31971 33432//31976 33425//31969 +f 33433//31977 33429//31973 33430//31974 33434//31978 +f 33435//31979 33433//31977 33434//31978 33436//31980 +f 33433//31977 33435//31979 33437//31981 33438//31982 +f 33429//31973 33433//31977 33438//31982 33431//31975 +f 33439//31983 33435//31979 33436//31980 33440//31984 +f 33441//31985 33439//31983 33440//31984 33442//31986 +f 33439//31983 33441//31985 33443//31987 33444//31988 +f 33435//31979 33439//31983 33444//31988 33437//31981 +f 33445//31989 33441//31985 33442//31986 33446//31990 +f 33447//31991 33445//31989 33446//31990 33448//31992 +f 33445//31989 33447//31991 33449//31993 33450//31994 +f 33441//31985 33445//31989 33450//31994 33443//31987 +f 33451//31995 33447//31991 33448//31992 33452//31996 +f 33453//31997 33451//31995 33452//31996 33454//31998 +f 33451//31995 33453//31997 33455//31999 33456//32000 +f 33447//31991 33451//31995 33456//32000 33449//31993 +f 33457//32001 33453//31997 33454//31998 33458//32002 +f 33459//32003 33457//32001 33458//32002 33460//32004 +f 33457//32001 33459//32003 33461//32005 33462//32006 +f 33453//31997 33457//32001 33462//32006 33455//31999 +f 33463//32007 33459//32003 33460//32004 33464//32008 +f 33465//32009 33463//32007 33464//32008 33466//32010 +f 33463//32007 33465//32009 33467//32011 33468//32012 +f 33459//32003 33463//32007 33468//32012 33461//32005 +f 33469//32013 33465//32009 33466//32010 33470//32014 +f 33471//32015 33469//32013 33470//32014 33472//32016 +f 33469//32013 33471//32015 33473//32017 33474//32018 +f 33465//32009 33469//32013 33474//32018 33467//32011 +f 33475//32019 33471//32015 33472//32016 33476//32020 +f 33477//32021 33475//32019 33476//32020 33478//32022 +f 33475//32019 33477//32021 33479//32023 33480//32024 +f 33471//32015 33475//32019 33480//32024 33473//32017 +f 33481//32025 33477//32021 33478//32022 33482//32026 +f 33483//32027 33481//32025 33482//32026 33484//32028 +f 33481//32025 33483//32027 33485//32029 33486//32030 +f 33477//32021 33481//32025 33486//32030 33479//32023 +f 33487//32031 33483//32027 33484//32028 33488//32032 +f 33489//32033 33487//32031 33488//32032 33490//32034 +f 33487//32031 33489//32033 33491//32035 33492//32036 +f 33483//32027 33487//32031 33492//32036 33485//32029 +f 33493//32037 33489//32033 33490//32034 33494//32038 +f 33495//32039 33493//32037 33494//32038 33496//32040 +f 33493//32037 33495//32039 33497//32041 33498//32042 +f 33489//32033 33493//32037 33498//32042 33491//32035 +f 33499//32043 33495//32039 33496//32040 33500//32044 +f 33501//32045 33499//32043 33500//32044 33502//32046 +f 33499//32043 33501//32045 33503//32047 33504//32048 +f 33495//32039 33499//32043 33504//32048 33497//32041 +f 33505//32049 33501//32045 33502//32046 33506//32050 +f 33507//32051 33505//32049 33506//32050 33508//32052 +f 33505//32049 33507//32051 33509//32053 33510//32054 +f 33501//32045 33505//32049 33510//32054 33503//32047 +f 33511//32055 33507//32051 33508//32052 33512//32056 +f 33513//32057 33511//32055 33512//32056 33514//32058 +f 33511//32055 33513//32057 33515//32059 33516//32060 +f 33507//32051 33511//32055 33516//32060 33509//32053 +f 33517//32061 33513//32057 33514//32058 33518//32062 +f 33519//32063 33517//32061 33518//32062 33520//32064 +f 33517//32061 33519//32063 33521//32065 33522//32066 +f 33513//32057 33517//32061 33522//32066 33515//32059 +f 33523//32067 33519//32063 33520//32064 33524//32068 +f 33525//32069 33523//32067 33524//32068 33526//32070 +f 33523//32067 33525//32069 33527//32071 33528//32072 +f 33519//32063 33523//32067 33528//32072 33521//32065 +f 33529//32073 33525//32069 33526//32070 33530//32074 +f 33531//32075 33529//32073 33530//32074 33532//32076 +f 33529//32073 33531//32075 33533//32077 33534//32078 +f 33525//32069 33529//32073 33534//32078 33527//32071 +f 33535//32079 33531//32075 33532//32076 33536//32080 +f 33537//32081 33535//32079 33536//32080 33538//32082 +f 33535//32079 33537//32081 33539//32083 33540//32084 +f 33531//32075 33535//32079 33540//32084 33533//32077 +f 33541//32085 33537//32081 33538//32082 33542//32086 +f 33543//32087 33541//32085 33542//32086 33544//32088 +f 33541//32085 33543//32087 33545//32089 33546//32090 +f 33537//32081 33541//32085 33546//32090 33539//32083 +f 33547//32091 33543//32087 33544//32088 33548//32092 +f 33549//32093 33547//32091 33548//32092 33550//32094 +f 33547//32091 33549//32093 33551//32095 33552//32096 +f 33543//32087 33547//32091 33552//32096 33545//32089 +f 33553//32097 33549//32093 33550//32094 33554//32098 +f 33555//32099 33553//32097 33554//32098 33556//32100 +f 33553//32097 33555//32099 33557//32101 33558//32102 +f 33549//32093 33553//32097 33558//32102 33551//32095 +f 33559//32103 33555//32099 33556//32100 33560//32104 +f 33561//32105 33559//32103 33560//32104 33562//32106 +f 33559//32103 33561//32105 33563//32107 33564//32108 +f 33555//32099 33559//32103 33564//32108 33557//32101 +f 33565//32109 33561//32105 33562//32106 33566//32110 +f 33567//32111 33565//32109 33566//32110 33568//32112 +f 33565//32109 33567//32111 33569//32113 33570//32114 +f 33561//32105 33565//32109 33570//32114 33563//32107 +f 33571//32115 33567//32111 33568//32112 33572//32116 +f 33573//32117 33571//32115 33572//32116 33574//32118 +f 33571//32115 33573//32117 33575//32119 33576//32120 +f 33567//32111 33571//32115 33576//32120 33569//32113 +f 33577//32121 33573//32117 33574//32118 33578//32122 +f 33579//32123 33577//32121 33578//32122 33580//32124 +f 33577//32121 33579//32123 33581//32125 33582//32126 +f 33573//32117 33577//32121 33582//32126 33575//32119 +f 33583//32127 33579//32123 33580//32124 33584//32128 +f 33585//32129 33583//32127 33584//32128 33586//32130 +f 33583//32127 33585//32129 33587//32131 33588//32132 +f 33579//32123 33583//32127 33588//32132 33581//32125 +f 33589//32133 33585//32129 33586//32130 33590//32134 +f 33591//32135 33589//32133 33590//32134 33592//32136 +f 33589//32133 33591//32135 33593//32137 33594//32138 +f 33585//32129 33589//32133 33594//32138 33587//32131 +f 33595//32139 33591//32135 33592//32136 33596//32140 +f 33407//31951 33595//32139 33596//32140 33408//31952 +f 33595//32139 33407//31951 33414//31958 33597//32141 +f 33591//32135 33595//32139 33597//32141 33593//32137 +f 33598//32142 33599//32143 33600//32144 33601//32145 +f 33602//32146 33598//32142 33601//32145 33603//32147 +f 33598//32142 33602//32146 33604//32148 33605//32149 +f 33599//32143 33598//32142 33605//32149 33606//32150 +f 33607//32151 33602//32146 33603//32147 33608//32152 +f 33609//32153 33607//32151 33608//32152 33610//32154 +f 33607//32151 33609//32153 33611//32155 33612//32156 +f 33602//32146 33607//32151 33612//32156 33604//32148 +f 33613//32157 33609//32153 33610//32154 33614//32158 +f 33615//32159 33613//32157 33614//32158 33616//32160 +f 33613//32157 33615//32159 33617//32161 33618//32162 +f 33609//32153 33613//32157 33618//32162 33611//32155 +f 33619//32163 33615//32159 33616//32160 33620//32164 +f 33621//32165 33619//32163 33620//32164 33622//32166 +f 33619//32163 33621//32165 33623//32167 33624//32168 +f 33615//32159 33619//32163 33624//32168 33617//32161 +f 33625//32169 33621//32165 33622//32166 33626//32170 +f 33627//32171 33625//32169 33626//32170 33628//32172 +f 33625//32169 33627//32171 33629//32173 33630//32174 +f 33621//32165 33625//32169 33630//32174 33623//32167 +f 33631//32175 33627//32171 33628//32172 33632//32176 +f 33633//32177 33631//32175 33632//32176 33634//32178 +f 33631//32175 33633//32177 33635//32179 33636//32180 +f 33627//32171 33631//32175 33636//32180 33629//32173 +f 33637//32181 33633//32177 33634//32178 33638//32182 +f 33639//32183 33637//32181 33638//32182 33640//32184 +f 33637//32181 33639//32183 33641//32185 33642//32186 +f 33633//32177 33637//32181 33642//32186 33635//32179 +f 33643//32187 33639//32183 33640//32184 33644//32188 +f 33645//32189 33643//32187 33644//32188 33646//32190 +f 33643//32187 33645//32189 33647//32191 33648//32192 +f 33639//32183 33643//32187 33648//32192 33641//32185 +f 33649//32193 33645//32189 33646//32190 33650//32194 +f 33651//32195 33649//32193 33650//32194 33652//32196 +f 33649//32193 33651//32195 33653//32197 33654//32198 +f 33645//32189 33649//32193 33654//32198 33647//32191 +f 33655//32199 33651//32195 33652//32196 33656//32200 +f 33657//32201 33655//32199 33656//32200 33658//32202 +f 33655//32199 33657//32201 33659//32203 33660//32204 +f 33651//32195 33655//32199 33660//32204 33653//32197 +f 33661//32205 33657//32201 33658//32202 33662//32206 +f 33663//32207 33661//32205 33662//32206 33664//32208 +f 33661//32205 33663//32207 33665//32209 33666//32210 +f 33657//32201 33661//32205 33666//32210 33659//32203 +f 33667//32211 33663//32207 33664//32208 33668//32212 +f 33669//32213 33667//32211 33668//32212 33670//32214 +f 33667//32211 33669//32213 33671//32215 33672//32216 +f 33663//32207 33667//32211 33672//32216 33665//32209 +f 33673//32217 33669//32213 33670//32214 33674//32218 +f 33675//32219 33673//32217 33674//32218 33676//32220 +f 33673//32217 33675//32219 33677//32221 33678//32222 +f 33669//32213 33673//32217 33678//32222 33671//32215 +f 33679//32223 33675//32219 33676//32220 33680//32224 +f 33681//32225 33679//32223 33680//32224 33682//32226 +f 33679//32223 33681//32225 33683//32227 33684//32228 +f 33675//32219 33679//32223 33684//32228 33677//32221 +f 33685//32229 33681//32225 33682//32226 33686//32230 +f 33687//32231 33685//32229 33686//32230 33688//32232 +f 33685//32229 33687//32231 33689//32233 33690//32234 +f 33681//32225 33685//32229 33690//32234 33683//32227 +f 33691//32235 33687//32231 33688//32232 33692//32236 +f 33693//32237 33691//32235 33692//32236 33694//32238 +f 33691//32235 33693//32237 33695//32239 33696//32240 +f 33687//32231 33691//32235 33696//32240 33689//32233 +f 33697//32241 33693//32237 33694//32238 33698//32242 +f 33699//32243 33697//32241 33698//32242 33700//32244 +f 33697//32241 33699//32243 33701//32245 33702//32246 +f 33693//32237 33697//32241 33702//32246 33695//32239 +f 33703//32247 33699//32243 33700//32244 33704//32248 +f 33705//32249 33703//32247 33704//32248 33706//32250 +f 33703//32247 33705//32249 33707//32251 33708//32252 +f 33699//32243 33703//32247 33708//32252 33701//32245 +f 33709//32253 33705//32249 33706//32250 33710//32254 +f 33711//32255 33709//32253 33710//32254 33712//32256 +f 33709//32253 33711//32255 33713//32257 33714//32258 +f 33705//32249 33709//32253 33714//32258 33707//32251 +f 33715//32259 33711//32255 33712//32256 33716//32260 +f 33717//32261 33715//32259 33716//32260 33718//32262 +f 33715//32259 33717//32261 33719//32263 33720//32264 +f 33711//32255 33715//32259 33720//32264 33713//32257 +f 33721//32265 33717//32261 33718//32262 33722//32266 +f 33723//32267 33721//32265 33722//32266 33724//32268 +f 33721//32265 33723//32267 33725//32269 33726//32270 +f 33717//32261 33721//32265 33726//32270 33719//32263 +f 33727//32271 33723//32267 33724//32268 33728//32272 +f 33729//32273 33727//32271 33728//32272 33730//32274 +f 33727//32271 33729//32273 33731//32275 33732//32276 +f 33723//32267 33727//32271 33732//32276 33725//32269 +f 33733//32277 33729//32273 33730//32274 33734//32278 +f 33735//32279 33733//32277 33734//32278 33736//32280 +f 33733//32277 33735//32279 33737//32281 33738//32282 +f 33729//32273 33733//32277 33738//32282 33731//32275 +f 33739//32283 33735//32279 33736//32280 33740//32284 +f 33741//32285 33739//32283 33740//32284 33742//32286 +f 33739//32283 33741//32285 33743//32287 33744//32288 +f 33735//32279 33739//32283 33744//32288 33737//32281 +f 33745//32289 33741//32285 33742//32286 33746//32290 +f 33747//32291 33745//32289 33746//32290 33748//32292 +f 33745//32289 33747//32291 33749//32293 33750//32294 +f 33741//32285 33745//32289 33750//32294 33743//32287 +f 33751//32295 33747//32291 33748//32292 33752//32296 +f 33753//32297 33751//32295 33752//32296 33754//32298 +f 33751//32295 33753//32297 33755//32299 33756//32300 +f 33747//32291 33751//32295 33756//32300 33749//32293 +f 33757//32301 33753//32297 33754//32298 33758//32302 +f 33759//32303 33757//32301 33758//32302 33760//32304 +f 33757//32301 33759//32303 33761//32305 33762//32306 +f 33753//32297 33757//32301 33762//32306 33755//32299 +f 33763//32307 33759//32303 33760//32304 33764//32308 +f 33765//32309 33763//32307 33764//32308 33766//32310 +f 33763//32307 33765//32309 33767//32311 33768//32312 +f 33759//32303 33763//32307 33768//32312 33761//32305 +f 33769//32313 33765//32309 33766//32310 33770//32314 +f 33771//32315 33769//32313 33770//32314 33772//32316 +f 33769//32313 33771//32315 33773//32317 33774//32318 +f 33765//32309 33769//32313 33774//32318 33767//32311 +f 33775//32319 33771//32315 33772//32316 33776//32320 +f 33777//32321 33775//32319 33776//32320 33778//32322 +f 33775//32319 33777//32321 33779//32323 33780//32324 +f 33771//32315 33775//32319 33780//32324 33773//32317 +f 33781//32325 33777//32321 33778//32322 33782//32326 +f 33783//32327 33781//32325 33782//32326 33784//32328 +f 33781//32325 33783//32327 33785//32329 33786//32330 +f 33777//32321 33781//32325 33786//32330 33779//32323 +f 33787//32331 33783//32327 33784//32328 33788//32332 +f 33599//32143 33787//32331 33788//32332 33600//32144 +f 33787//32331 33599//32143 33606//32150 33789//32333 +f 33783//32327 33787//32331 33789//32333 33785//32329 +f 33790//32334 33791//32335 33606//32150 33605//32149 +f 33792//32336 33790//32334 33605//32149 33604//32148 +f 33790//32334 33792//32336 33793//32337 33794//32338 +f 33791//32335 33790//32334 33794//32338 33795//32339 +f 33796//32340 33792//32336 33604//32148 33612//32156 +f 33797//32341 33796//32340 33612//32156 33611//32155 +f 33796//32340 33797//32341 33798//32342 33799//32343 +f 33792//32336 33796//32340 33799//32343 33793//32337 +f 33800//32344 33797//32341 33611//32155 33618//32162 +f 33801//32345 33800//32344 33618//32162 33617//32161 +f 33800//32344 33801//32345 33802//32346 33803//32347 +f 33797//32341 33800//32344 33803//32347 33798//32342 +f 33804//32348 33801//32345 33617//32161 33624//32168 +f 33805//32349 33804//32348 33624//32168 33623//32167 +f 33804//32348 33805//32349 33806//32350 33807//32351 +f 33801//32345 33804//32348 33807//32351 33802//32346 +f 33808//32352 33805//32349 33623//32167 33630//32174 +f 33809//32353 33808//32352 33630//32174 33629//32173 +f 33808//32352 33809//32353 33810//32354 33811//32355 +f 33805//32349 33808//32352 33811//32355 33806//32350 +f 33812//32356 33809//32353 33629//32173 33636//32180 +f 33813//32357 33812//32356 33636//32180 33635//32179 +f 33812//32356 33813//32357 33814//32358 33815//32359 +f 33809//32353 33812//32356 33815//32359 33810//32354 +f 33816//32360 33813//32357 33635//32179 33642//32186 +f 33817//32361 33816//32360 33642//32186 33641//32185 +f 33816//32360 33817//32361 33818//32362 33819//32363 +f 33813//32357 33816//32360 33819//32363 33814//32358 +f 33820//32364 33817//32361 33641//32185 33648//32192 +f 33821//32365 33820//32364 33648//32192 33647//32191 +f 33820//32364 33821//32365 33822//32366 33823//32367 +f 33817//32361 33820//32364 33823//32367 33818//32362 +f 33824//32368 33821//32365 33647//32191 33654//32198 +f 33825//32369 33824//32368 33654//32198 33653//32197 +f 33824//32368 33825//32369 33826//32370 33827//32371 +f 33821//32365 33824//32368 33827//32371 33822//32366 +f 33828//32372 33825//32369 33653//32197 33660//32204 +f 33829//32373 33828//32372 33660//32204 33659//32203 +f 33828//32372 33829//32373 33830//32374 33831//32375 +f 33825//32369 33828//32372 33831//32375 33826//32370 +f 33832//32376 33829//32373 33659//32203 33666//32210 +f 33833//32377 33832//32376 33666//32210 33665//32209 +f 33832//32376 33833//32377 33834//32378 33835//32379 +f 33829//32373 33832//32376 33835//32379 33830//32374 +f 33836//32380 33833//32377 33665//32209 33672//32216 +f 33837//32381 33836//32380 33672//32216 33671//32215 +f 33836//32380 33837//32381 33838//32382 33839//32383 +f 33833//32377 33836//32380 33839//32383 33834//32378 +f 33840//32384 33837//32381 33671//32215 33678//32222 +f 33841//32385 33840//32384 33678//32222 33677//32221 +f 33840//32384 33841//32385 33842//32386 33843//32387 +f 33837//32381 33840//32384 33843//32387 33838//32382 +f 33844//32388 33841//32385 33677//32221 33684//32228 +f 33845//32389 33844//32388 33684//32228 33683//32227 +f 33844//32388 33845//32389 33846//32390 33847//32391 +f 33841//32385 33844//32388 33847//32391 33842//32386 +f 33848//32392 33845//32389 33683//32227 33690//32234 +f 33849//32393 33848//32392 33690//32234 33689//32233 +f 33848//32392 33849//32393 33850//32394 33851//32395 +f 33845//32389 33848//32392 33851//32395 33846//32390 +f 33852//32396 33849//32393 33689//32233 33696//32240 +f 33853//32397 33852//32396 33696//32240 33695//32239 +f 33852//32396 33853//32397 33854//32398 33855//32399 +f 33849//32393 33852//32396 33855//32399 33850//32394 +f 33856//32400 33853//32397 33695//32239 33702//32246 +f 33857//32401 33856//32400 33702//32246 33701//32245 +f 33856//32400 33857//32401 33858//32402 33859//32403 +f 33853//32397 33856//32400 33859//32403 33854//32398 +f 33860//32404 33857//32401 33701//32245 33708//32252 +f 33861//32405 33860//32404 33708//32252 33707//32251 +f 33860//32404 33861//32405 33862//32406 33863//32407 +f 33857//32401 33860//32404 33863//32407 33858//32402 +f 33864//32408 33861//32405 33707//32251 33714//32258 +f 33865//32409 33864//32408 33714//32258 33713//32257 +f 33864//32408 33865//32409 33866//32410 33867//32411 +f 33861//32405 33864//32408 33867//32411 33862//32406 +f 33868//32412 33865//32409 33713//32257 33720//32264 +f 33869//32413 33868//32412 33720//32264 33719//32263 +f 33868//32412 33869//32413 33870//32414 33871//32415 +f 33865//32409 33868//32412 33871//32415 33866//32410 +f 33872//32416 33869//32413 33719//32263 33726//32270 +f 33873//32417 33872//32416 33726//32270 33725//32269 +f 33872//32416 33873//32417 33874//32418 33875//32419 +f 33869//32413 33872//32416 33875//32419 33870//32414 +f 33876//32420 33873//32417 33725//32269 33732//32276 +f 33877//32421 33876//32420 33732//32276 33731//32275 +f 33876//32420 33877//32421 33878//32422 33879//32423 +f 33873//32417 33876//32420 33879//32423 33874//32418 +f 33880//32424 33877//32421 33731//32275 33738//32282 +f 33881//32425 33880//32424 33738//32282 33737//32281 +f 33880//32424 33881//32425 33882//32426 33883//32427 +f 33877//32421 33880//32424 33883//32427 33878//32422 +f 33884//32428 33881//32425 33737//32281 33744//32288 +f 33885//32429 33884//32428 33744//32288 33743//32287 +f 33884//32428 33885//32429 33886//32430 33887//32431 +f 33881//32425 33884//32428 33887//32431 33882//32426 +f 33888//32432 33885//32429 33743//32287 33750//32294 +f 33889//32433 33888//32432 33750//32294 33749//32293 +f 33888//32432 33889//32433 33890//32434 33891//32435 +f 33885//32429 33888//32432 33891//32435 33886//32430 +f 33892//32436 33889//32433 33749//32293 33756//32300 +f 33893//32437 33892//32436 33756//32300 33755//32299 +f 33892//32436 33893//32437 33894//32438 33895//32439 +f 33889//32433 33892//32436 33895//32439 33890//32434 +f 33896//32440 33893//32437 33755//32299 33762//32306 +f 33897//32441 33896//32440 33762//32306 33761//32305 +f 33896//32440 33897//32441 33898//32442 33899//32443 +f 33893//32437 33896//32440 33899//32443 33894//32438 +f 33900//32444 33897//32441 33761//32305 33768//32312 +f 33901//32445 33900//32444 33768//32312 33767//32311 +f 33900//32444 33901//32445 33902//32446 33903//32447 +f 33897//32441 33900//32444 33903//32447 33898//32442 +f 33904//32448 33901//32445 33767//32311 33774//32318 +f 33905//32449 33904//32448 33774//32318 33773//32317 +f 33904//32448 33905//32449 33906//32450 33907//32451 +f 33901//32445 33904//32448 33907//32451 33902//32446 +f 33908//32452 33905//32449 33773//32317 33780//32324 +f 33909//32453 33908//32452 33780//32324 33779//32323 +f 33908//32452 33909//32453 33910//32454 33911//32455 +f 33905//32449 33908//32452 33911//32455 33906//32450 +f 33912//32456 33909//32453 33779//32323 33786//32330 +f 33913//32457 33912//32456 33786//32330 33785//32329 +f 33912//32456 33913//32457 33914//32458 33915//32459 +f 33909//32453 33912//32456 33915//32459 33910//32454 +f 33916//32460 33913//32457 33785//32329 33789//32333 +f 33791//32335 33916//32460 33789//32333 33606//32150 +f 33916//32460 33791//32335 33795//32339 33917//32461 +f 33913//32457 33916//32460 33917//32461 33914//32458 +f 33918//32462 33919//32463 33920//32464 33921//32465 +f 33922//32466 33918//32462 33921//32465 33923//32467 +f 33924//32468 33922//32466 33923//32467 33925//32469 +f 33926//32470 33924//32468 33925//32469 33927//32471 +f 33928//32472 33926//32470 33927//32471 33929//32473 +f 33930//32474 33928//32472 33929//32473 33931//32475 +f 33932//32476 33930//32474 33931//32475 33933//32477 +f 33934//32478 33932//32476 33933//32477 33935//32479 +f 33936//32480 33934//32478 33935//32479 33937//32481 +f 33938//32482 33936//32480 33937//32481 33939//32483 +f 33940//32484 33938//32482 33939//32483 33941//32485 +f 33942//32486 33940//32484 33941//32485 33943//32487 +f 33944//32488 33942//32486 33943//32487 33945//32489 +f 33946//32490 33944//32488 33945//32489 33947//32491 +f 33948//32492 33946//32490 33947//32491 33949//32493 +f 33950//32494 33948//32492 33949//32493 33951//32495 +f 33952//32496 33950//32494 33951//32495 33953//32497 +f 33954//32498 33952//32496 33953//32497 33955//32499 +f 33956//32500 33954//32498 33955//32499 33957//32501 +f 33958//32502 33956//32500 33957//32501 33959//32503 +f 33960//32504 33958//32502 33959//32503 33961//32505 +f 33962//32506 33960//32504 33961//32505 33963//32507 +f 33964//32508 33962//32506 33963//32507 33965//32509 +f 33966//32510 33964//32508 33965//32509 33967//32511 +f 33968//32512 33966//32510 33967//32511 33969//32513 +f 33970//32514 33968//32512 33969//32513 33971//32515 +f 33972//32516 33970//32514 33971//32515 33973//32517 +f 33974//32518 33972//32516 33973//32517 33975//32519 +f 33976//32520 33974//32518 33975//32519 33977//32521 +f 33978//32522 33976//32520 33977//32521 33979//32523 +f 33980//32524 33978//32522 33979//32523 33981//32525 +f 33982//32526 33980//32524 33981//32525 33983//32527 +f 33984//32528 33982//32526 33983//32527 33985//32529 +f 33986//32530 33984//32528 33985//32529 33987//32531 +f 33988//32532 33986//32530 33987//32531 33989//32533 +f 33990//32534 33988//32532 33989//32533 33991//32535 +f 33992//32536 33990//32534 33991//32535 33993//32537 +f 33994//32538 33992//32536 33993//32537 33995//32539 +f 33996//32540 33994//32538 33995//32539 33997//32541 +f 33998//32542 33996//32540 33997//32541 33999//32543 +f 34000//32544 33998//32542 33999//32543 34001//32545 +f 34002//32546 34000//32544 34001//32545 34003//32547 +f 34004//32548 34002//32546 34003//32547 34005//32549 +f 34006//32550 34004//32548 34005//32549 34007//32551 +f 34008//32552 34006//32550 34007//32551 34009//32553 +f 34010//32554 34008//32552 34009//32553 34011//32555 +f 34012//32556 34010//32554 34011//32555 34013//32557 +f 34014//32558 34012//32556 34013//32557 34015//32559 +f 34016//32560 34014//32558 34015//32559 34017//32561 +f 34018//32562 34016//32560 34017//32561 34019//32563 +f 34020//32564 34018//32562 34019//32563 34021//32565 +f 34022//32566 34020//32564 34021//32565 34023//32567 +f 34024//32568 34022//32566 34023//32567 34025//32569 +f 34026//32570 34024//32568 34025//32569 34027//32571 +f 34028//32572 34026//32570 34027//32571 34029//32573 +f 34030//32574 34028//32572 34029//32573 34031//32575 +f 34032//32576 34030//32574 34031//32575 34033//32577 +f 34034//32578 34032//32576 34033//32577 34035//32579 +f 34036//32580 34034//32578 34035//32579 34037//32581 +f 34038//32582 34036//32580 34037//32581 34039//32583 +f 34040//32584 34038//32582 34039//32583 34041//32585 +f 34042//32586 34040//32584 34041//32585 34043//32587 +f 34044//32588 34042//32586 34043//32587 34045//32589 +f 33919//32463 34044//32588 34045//32589 33920//32464 +f 34046//32590 33413//31957 33412//31956 34047//32591 +f 34048//32592 34046//32590 34047//32591 34049//32593 +f 34046//32590 34048//32592 34050//32594 34051//32595 +f 33413//31957 34046//32590 34051//32595 33414//31958 +f 34052//32596 33420//31964 33419//31963 34053//32597 +f 34054//32598 34052//32596 34053//32597 34055//32599 +f 34052//32596 34054//32598 34049//32593 34047//32591 +f 33420//31964 34052//32596 34047//32591 33412//31956 +f 34056//32600 33426//31970 33425//31969 34057//32601 +f 34058//32602 34056//32600 34057//32601 34059//32603 +f 34056//32600 34058//32602 34055//32599 34053//32597 +f 33426//31970 34056//32600 34053//32597 33419//31963 +f 34060//32604 33432//31976 33431//31975 34061//32605 +f 34062//32606 34060//32604 34061//32605 34063//32607 +f 34060//32604 34062//32606 34059//32603 34057//32601 +f 33432//31976 34060//32604 34057//32601 33425//31969 +f 34064//32608 33438//31982 33437//31981 34065//32609 +f 34066//32610 34064//32608 34065//32609 34067//32611 +f 34064//32608 34066//32610 34063//32607 34061//32605 +f 33438//31982 34064//32608 34061//32605 33431//31975 +f 34068//32612 33444//31988 33443//31987 34069//32613 +f 34070//32614 34068//32612 34069//32613 34071//32615 +f 34068//32612 34070//32614 34067//32611 34065//32609 +f 33444//31988 34068//32612 34065//32609 33437//31981 +f 34072//32616 33450//31994 33449//31993 34073//32617 +f 34074//32618 34072//32616 34073//32617 34075//32619 +f 34072//32616 34074//32618 34071//32615 34069//32613 +f 33450//31994 34072//32616 34069//32613 33443//31987 +f 34076//32620 33456//32000 33455//31999 34077//32621 +f 34078//32622 34076//32620 34077//32621 34079//32623 +f 34076//32620 34078//32622 34075//32619 34073//32617 +f 33456//32000 34076//32620 34073//32617 33449//31993 +f 34080//32624 33462//32006 33461//32005 34081//32625 +f 34082//32626 34080//32624 34081//32625 34083//32627 +f 34080//32624 34082//32626 34079//32623 34077//32621 +f 33462//32006 34080//32624 34077//32621 33455//31999 +f 34084//32628 33468//32012 33467//32011 34085//32629 +f 34086//32630 34084//32628 34085//32629 34087//32631 +f 34084//32628 34086//32630 34083//32627 34081//32625 +f 33468//32012 34084//32628 34081//32625 33461//32005 +f 34088//32632 33474//32018 33473//32017 34089//32633 +f 34090//32634 34088//32632 34089//32633 34091//32635 +f 34088//32632 34090//32634 34087//32631 34085//32629 +f 33474//32018 34088//32632 34085//32629 33467//32011 +f 34092//32636 33480//32024 33479//32023 34093//32637 +f 34094//32638 34092//32636 34093//32637 34095//32639 +f 34092//32636 34094//32638 34091//32635 34089//32633 +f 33480//32024 34092//32636 34089//32633 33473//32017 +f 34096//32640 33486//32030 33485//32029 34097//32641 +f 34098//32642 34096//32640 34097//32641 34099//32643 +f 34096//32640 34098//32642 34095//32639 34093//32637 +f 33486//32030 34096//32640 34093//32637 33479//32023 +f 34100//32644 33492//32036 33491//32035 34101//32645 +f 34102//32646 34100//32644 34101//32645 34103//32647 +f 34100//32644 34102//32646 34099//32643 34097//32641 +f 33492//32036 34100//32644 34097//32641 33485//32029 +f 34104//32648 33498//32042 33497//32041 34105//32649 +f 34106//32650 34104//32648 34105//32649 34107//32651 +f 34104//32648 34106//32650 34103//32647 34101//32645 +f 33498//32042 34104//32648 34101//32645 33491//32035 +f 34108//32652 33504//32048 33503//32047 34109//32653 +f 34110//32654 34108//32652 34109//32653 34111//32655 +f 34108//32652 34110//32654 34107//32651 34105//32649 +f 33504//32048 34108//32652 34105//32649 33497//32041 +f 34112//32656 33510//32054 33509//32053 34113//32657 +f 34114//32658 34112//32656 34113//32657 34115//32659 +f 34112//32656 34114//32658 34111//32655 34109//32653 +f 33510//32054 34112//32656 34109//32653 33503//32047 +f 34116//32660 33516//32060 33515//32059 34117//32661 +f 34118//32662 34116//32660 34117//32661 34119//32663 +f 34116//32660 34118//32662 34115//32659 34113//32657 +f 33516//32060 34116//32660 34113//32657 33509//32053 +f 34120//32664 33522//32066 33521//32065 34121//32665 +f 34122//32666 34120//32664 34121//32665 34123//32667 +f 34120//32664 34122//32666 34119//32663 34117//32661 +f 33522//32066 34120//32664 34117//32661 33515//32059 +f 34124//32668 33528//32072 33527//32071 34125//32669 +f 34126//32670 34124//32668 34125//32669 34127//32671 +f 34124//32668 34126//32670 34123//32667 34121//32665 +f 33528//32072 34124//32668 34121//32665 33521//32065 +f 34128//32672 33534//32078 33533//32077 34129//32673 +f 34130//32674 34128//32672 34129//32673 34131//32675 +f 34128//32672 34130//32674 34127//32671 34125//32669 +f 33534//32078 34128//32672 34125//32669 33527//32071 +f 34132//32676 33540//32084 33539//32083 34133//32677 +f 34134//32678 34132//32676 34133//32677 34135//32679 +f 34132//32676 34134//32678 34131//32675 34129//32673 +f 33540//32084 34132//32676 34129//32673 33533//32077 +f 34136//32680 33546//32090 33545//32089 34137//32681 +f 34138//32682 34136//32680 34137//32681 34139//32683 +f 34136//32680 34138//32682 34135//32679 34133//32677 +f 33546//32090 34136//32680 34133//32677 33539//32083 +f 34140//32684 33552//32096 33551//32095 34141//32685 +f 34142//32686 34140//32684 34141//32685 34143//32687 +f 34140//32684 34142//32686 34139//32683 34137//32681 +f 33552//32096 34140//32684 34137//32681 33545//32089 +f 34144//32688 33558//32102 33557//32101 34145//32689 +f 34146//32690 34144//32688 34145//32689 34147//32691 +f 34144//32688 34146//32690 34143//32687 34141//32685 +f 33558//32102 34144//32688 34141//32685 33551//32095 +f 34148//32692 33564//32108 33563//32107 34149//32693 +f 34150//32694 34148//32692 34149//32693 34151//32695 +f 34148//32692 34150//32694 34147//32691 34145//32689 +f 33564//32108 34148//32692 34145//32689 33557//32101 +f 34152//32696 33570//32114 33569//32113 34153//32697 +f 34154//32698 34152//32696 34153//32697 34155//32699 +f 34152//32696 34154//32698 34151//32695 34149//32693 +f 33570//32114 34152//32696 34149//32693 33563//32107 +f 34156//32700 33576//32120 33575//32119 34157//32701 +f 34158//32702 34156//32700 34157//32701 34159//32703 +f 34156//32700 34158//32702 34155//32699 34153//32697 +f 33576//32120 34156//32700 34153//32697 33569//32113 +f 34160//32704 33582//32126 33581//32125 34161//32705 +f 34162//32706 34160//32704 34161//32705 34163//32707 +f 34160//32704 34162//32706 34159//32703 34157//32701 +f 33582//32126 34160//32704 34157//32701 33575//32119 +f 34164//32708 33588//32132 33587//32131 34165//32709 +f 34166//32710 34164//32708 34165//32709 34167//32711 +f 34164//32708 34166//32710 34163//32707 34161//32705 +f 33588//32132 34164//32708 34161//32705 33581//32125 +f 34168//32712 33594//32138 33593//32137 34169//32713 +f 34170//32714 34168//32712 34169//32713 34171//32715 +f 34168//32712 34170//32714 34167//32711 34165//32709 +f 33594//32138 34168//32712 34165//32709 33587//32131 +f 34172//32716 33597//32141 33414//31958 34051//32595 +f 34173//32717 34172//32716 34051//32595 34050//32594 +f 34172//32716 34173//32717 34171//32715 34169//32713 +f 33597//32141 34172//32716 34169//32713 33593//32137 +f 34174//32718 34048//32592 34049//32593 34175//32719 +f 33601//32145 34174//32718 34175//32719 33603//32147 +f 34174//32718 33601//32145 33600//32144 34176//32720 +f 34048//32592 34174//32718 34176//32720 34050//32594 +f 34177//32721 34054//32598 34055//32599 34178//32722 +f 33608//32152 34177//32721 34178//32722 33610//32154 +f 34177//32721 33608//32152 33603//32147 34175//32719 +f 34054//32598 34177//32721 34175//32719 34049//32593 +f 34179//32723 34058//32602 34059//32603 34180//32724 +f 33614//32158 34179//32723 34180//32724 33616//32160 +f 34179//32723 33614//32158 33610//32154 34178//32722 +f 34058//32602 34179//32723 34178//32722 34055//32599 +f 34181//32725 34062//32606 34063//32607 34182//32726 +f 33620//32164 34181//32725 34182//32726 33622//32166 +f 34181//32725 33620//32164 33616//32160 34180//32724 +f 34062//32606 34181//32725 34180//32724 34059//32603 +f 34183//32727 34066//32610 34067//32611 34184//32728 +f 33626//32170 34183//32727 34184//32728 33628//32172 +f 34183//32727 33626//32170 33622//32166 34182//32726 +f 34066//32610 34183//32727 34182//32726 34063//32607 +f 34185//32729 34070//32614 34071//32615 34186//32730 +f 33632//32176 34185//32729 34186//32730 33634//32178 +f 34185//32729 33632//32176 33628//32172 34184//32728 +f 34070//32614 34185//32729 34184//32728 34067//32611 +f 34187//32731 34074//32618 34075//32619 34188//32732 +f 33638//32182 34187//32731 34188//32732 33640//32184 +f 34187//32731 33638//32182 33634//32178 34186//32730 +f 34074//32618 34187//32731 34186//32730 34071//32615 +f 34189//32733 34078//32622 34079//32623 34190//32734 +f 33644//32188 34189//32733 34190//32734 33646//32190 +f 34189//32733 33644//32188 33640//32184 34188//32732 +f 34078//32622 34189//32733 34188//32732 34075//32619 +f 34191//32735 34082//32626 34083//32627 34192//32736 +f 33650//32194 34191//32735 34192//32736 33652//32196 +f 34191//32735 33650//32194 33646//32190 34190//32734 +f 34082//32626 34191//32735 34190//32734 34079//32623 +f 34193//32737 34086//32630 34087//32631 34194//32738 +f 33656//32200 34193//32737 34194//32738 33658//32202 +f 34193//32737 33656//32200 33652//32196 34192//32736 +f 34086//32630 34193//32737 34192//32736 34083//32627 +f 34195//32739 34090//32634 34091//32635 34196//32740 +f 33662//32206 34195//32739 34196//32740 33664//32208 +f 34195//32739 33662//32206 33658//32202 34194//32738 +f 34090//32634 34195//32739 34194//32738 34087//32631 +f 34197//32741 34094//32638 34095//32639 34198//32742 +f 33668//32212 34197//32741 34198//32742 33670//32214 +f 34197//32741 33668//32212 33664//32208 34196//32740 +f 34094//32638 34197//32741 34196//32740 34091//32635 +f 34199//32743 34098//32642 34099//32643 34200//32744 +f 33674//32218 34199//32743 34200//32744 33676//32220 +f 34199//32743 33674//32218 33670//32214 34198//32742 +f 34098//32642 34199//32743 34198//32742 34095//32639 +f 34201//32745 34102//32646 34103//32647 34202//32746 +f 33680//32224 34201//32745 34202//32746 33682//32226 +f 34201//32745 33680//32224 33676//32220 34200//32744 +f 34102//32646 34201//32745 34200//32744 34099//32643 +f 34203//32747 34106//32650 34107//32651 34204//32748 +f 33686//32230 34203//32747 34204//32748 33688//32232 +f 34203//32747 33686//32230 33682//32226 34202//32746 +f 34106//32650 34203//32747 34202//32746 34103//32647 +f 34205//32749 34110//32654 34111//32655 34206//32750 +f 33692//32236 34205//32749 34206//32750 33694//32238 +f 34205//32749 33692//32236 33688//32232 34204//32748 +f 34110//32654 34205//32749 34204//32748 34107//32651 +f 34207//32751 34114//32658 34115//32659 34208//32752 +f 33698//32242 34207//32751 34208//32752 33700//32244 +f 34207//32751 33698//32242 33694//32238 34206//32750 +f 34114//32658 34207//32751 34206//32750 34111//32655 +f 34209//32753 34118//32662 34119//32663 34210//32754 +f 33704//32248 34209//32753 34210//32754 33706//32250 +f 34209//32753 33704//32248 33700//32244 34208//32752 +f 34118//32662 34209//32753 34208//32752 34115//32659 +f 34211//32755 34122//32666 34123//32667 34212//32756 +f 33710//32254 34211//32755 34212//32756 33712//32256 +f 34211//32755 33710//32254 33706//32250 34210//32754 +f 34122//32666 34211//32755 34210//32754 34119//32663 +f 34213//32757 34126//32670 34127//32671 34214//32758 +f 33716//32260 34213//32757 34214//32758 33718//32262 +f 34213//32757 33716//32260 33712//32256 34212//32756 +f 34126//32670 34213//32757 34212//32756 34123//32667 +f 34215//32759 34130//32674 34131//32675 34216//32760 +f 33722//32266 34215//32759 34216//32760 33724//32268 +f 34215//32759 33722//32266 33718//32262 34214//32758 +f 34130//32674 34215//32759 34214//32758 34127//32671 +f 34217//32761 34134//32678 34135//32679 34218//32762 +f 33728//32272 34217//32761 34218//32762 33730//32274 +f 34217//32761 33728//32272 33724//32268 34216//32760 +f 34134//32678 34217//32761 34216//32760 34131//32675 +f 34219//32763 34138//32682 34139//32683 34220//32764 +f 33734//32278 34219//32763 34220//32764 33736//32280 +f 34219//32763 33734//32278 33730//32274 34218//32762 +f 34138//32682 34219//32763 34218//32762 34135//32679 +f 34221//32765 34142//32686 34143//32687 34222//32766 +f 33740//32284 34221//32765 34222//32766 33742//32286 +f 34221//32765 33740//32284 33736//32280 34220//32764 +f 34142//32686 34221//32765 34220//32764 34139//32683 +f 34223//32767 34146//32690 34147//32691 34224//32768 +f 33746//32290 34223//32767 34224//32768 33748//32292 +f 34223//32767 33746//32290 33742//32286 34222//32766 +f 34146//32690 34223//32767 34222//32766 34143//32687 +f 34225//32769 34150//32694 34151//32695 34226//32770 +f 33752//32296 34225//32769 34226//32770 33754//32298 +f 34225//32769 33752//32296 33748//32292 34224//32768 +f 34150//32694 34225//32769 34224//32768 34147//32691 +f 34227//32771 34154//32698 34155//32699 34228//32772 +f 33758//32302 34227//32771 34228//32772 33760//32304 +f 34227//32771 33758//32302 33754//32298 34226//32770 +f 34154//32698 34227//32771 34226//32770 34151//32695 +f 34229//32773 34158//32702 34159//32703 34230//32774 +f 33764//32308 34229//32773 34230//32774 33766//32310 +f 34229//32773 33764//32308 33760//32304 34228//32772 +f 34158//32702 34229//32773 34228//32772 34155//32699 +f 34231//32775 34162//32706 34163//32707 34232//32776 +f 33770//32314 34231//32775 34232//32776 33772//32316 +f 34231//32775 33770//32314 33766//32310 34230//32774 +f 34162//32706 34231//32775 34230//32774 34159//32703 +f 34233//32777 34166//32710 34167//32711 34234//32778 +f 33776//32320 34233//32777 34234//32778 33778//32322 +f 34233//32777 33776//32320 33772//32316 34232//32776 +f 34166//32710 34233//32777 34232//32776 34163//32707 +f 34235//32779 34170//32714 34171//32715 34236//32780 +f 33782//32326 34235//32779 34236//32780 33784//32328 +f 34235//32779 33782//32326 33778//32322 34234//32778 +f 34170//32714 34235//32779 34234//32778 34167//32711 +f 34237//32781 34173//32717 34050//32594 34176//32720 +f 33788//32332 34237//32781 34176//32720 33600//32144 +f 34237//32781 33788//32332 33784//32328 34236//32780 +f 34173//32717 34237//32781 34236//32780 34171//32715 +f 34238//32782 34239//30489 34240//30488 34241//32783 +f 33409//31953 34238//32782 34241//32783 33411//31955 +f 34238//32782 33409//31953 33408//31952 34242//32784 +f 34239//30489 34238//32782 34242//32784 34243//30491 +f 34244//32785 34245//30497 34246//30496 34247//32786 +f 33416//31960 34244//32785 34247//32786 33418//31962 +f 34244//32785 33416//31960 33411//31955 34241//32783 +f 34245//30497 34244//32785 34241//32783 34240//30488 +f 34248//32787 34249//30503 34250//30502 34251//32788 +f 33422//31966 34248//32787 34251//32788 33424//31968 +f 34248//32787 33422//31966 33418//31962 34247//32786 +f 34249//30503 34248//32787 34247//32786 34246//30496 +f 34252//32789 34253//30509 34254//30508 34255//32790 +f 33428//31972 34252//32789 34255//32790 33430//31974 +f 34252//32789 33428//31972 33424//31968 34251//32788 +f 34253//30509 34252//32789 34251//32788 34250//30502 +f 34256//32791 34257//30515 34258//30514 34259//32792 +f 33434//31978 34256//32791 34259//32792 33436//31980 +f 34256//32791 33434//31978 33430//31974 34255//32790 +f 34257//30515 34256//32791 34255//32790 34254//30508 +f 34260//32793 34261//30521 34262//30520 34263//32794 +f 33440//31984 34260//32793 34263//32794 33442//31986 +f 34260//32793 33440//31984 33436//31980 34259//32792 +f 34261//30521 34260//32793 34259//32792 34258//30514 +f 34264//32795 34265//30527 34266//30526 34267//32796 +f 33446//31990 34264//32795 34267//32796 33448//31992 +f 34264//32795 33446//31990 33442//31986 34263//32794 +f 34265//30527 34264//32795 34263//32794 34262//30520 +f 34268//32797 34269//30533 34270//30532 34271//32798 +f 33452//31996 34268//32797 34271//32798 33454//31998 +f 34268//32797 33452//31996 33448//31992 34267//32796 +f 34269//30533 34268//32797 34267//32796 34266//30526 +f 34272//32799 34273//30539 34274//30538 34275//32800 +f 33458//32002 34272//32799 34275//32800 33460//32004 +f 34272//32799 33458//32002 33454//31998 34271//32798 +f 34273//30539 34272//32799 34271//32798 34270//30532 +f 34276//32801 34277//30545 34278//30544 34279//32802 +f 33464//32008 34276//32801 34279//32802 33466//32010 +f 34276//32801 33464//32008 33460//32004 34275//32800 +f 34277//30545 34276//32801 34275//32800 34274//30538 +f 34280//32803 34281//30551 34282//30550 34283//32804 +f 33470//32014 34280//32803 34283//32804 33472//32016 +f 34280//32803 33470//32014 33466//32010 34279//32802 +f 34281//30551 34280//32803 34279//32802 34278//30544 +f 34284//32805 34285//30557 34286//30556 34287//32806 +f 33476//32020 34284//32805 34287//32806 33478//32022 +f 34284//32805 33476//32020 33472//32016 34283//32804 +f 34285//30557 34284//32805 34283//32804 34282//30550 +f 34288//32807 34289//30563 34290//30562 34291//32808 +f 33482//32026 34288//32807 34291//32808 33484//32028 +f 34288//32807 33482//32026 33478//32022 34287//32806 +f 34289//30563 34288//32807 34287//32806 34286//30556 +f 34292//32809 34293//30569 34294//30568 34295//32810 +f 33488//32032 34292//32809 34295//32810 33490//32034 +f 34292//32809 33488//32032 33484//32028 34291//32808 +f 34293//30569 34292//32809 34291//32808 34290//30562 +f 34296//32811 34297//30575 34298//30574 34299//32812 +f 33494//32038 34296//32811 34299//32812 33496//32040 +f 34296//32811 33494//32038 33490//32034 34295//32810 +f 34297//30575 34296//32811 34295//32810 34294//30568 +f 34300//32813 34301//30581 34302//30580 34303//32814 +f 33500//32044 34300//32813 34303//32814 33502//32046 +f 34300//32813 33500//32044 33496//32040 34299//32812 +f 34301//30581 34300//32813 34299//32812 34298//30574 +f 34304//32815 34305//30587 34306//30586 34307//32816 +f 33506//32050 34304//32815 34307//32816 33508//32052 +f 34304//32815 33506//32050 33502//32046 34303//32814 +f 34305//30587 34304//32815 34303//32814 34302//30580 +f 34308//32817 34309//30593 34310//30592 34311//32818 +f 33512//32056 34308//32817 34311//32818 33514//32058 +f 34308//32817 33512//32056 33508//32052 34307//32816 +f 34309//30593 34308//32817 34307//32816 34306//30586 +f 34312//32819 34313//30599 34314//30598 34315//32820 +f 33518//32062 34312//32819 34315//32820 33520//32064 +f 34312//32819 33518//32062 33514//32058 34311//32818 +f 34313//30599 34312//32819 34311//32818 34310//30592 +f 34316//32821 34317//30605 34318//30604 34319//32822 +f 33524//32068 34316//32821 34319//32822 33526//32070 +f 34316//32821 33524//32068 33520//32064 34315//32820 +f 34317//30605 34316//32821 34315//32820 34314//30598 +f 34320//32823 34321//30611 34322//30610 34323//32824 +f 33530//32074 34320//32823 34323//32824 33532//32076 +f 34320//32823 33530//32074 33526//32070 34319//32822 +f 34321//30611 34320//32823 34319//32822 34318//30604 +f 34324//32825 34325//30617 34326//30616 34327//32826 +f 33536//32080 34324//32825 34327//32826 33538//32082 +f 34324//32825 33536//32080 33532//32076 34323//32824 +f 34325//30617 34324//32825 34323//32824 34322//30610 +f 34328//32827 34329//30623 34330//30622 34331//32828 +f 33542//32086 34328//32827 34331//32828 33544//32088 +f 34328//32827 33542//32086 33538//32082 34327//32826 +f 34329//30623 34328//32827 34327//32826 34326//30616 +f 34332//32829 34333//30629 34334//30628 34335//32830 +f 33548//32092 34332//32829 34335//32830 33550//32094 +f 34332//32829 33548//32092 33544//32088 34331//32828 +f 34333//30629 34332//32829 34331//32828 34330//30622 +f 34336//32831 34337//30634 34338//8129 34339//32832 +f 33554//32098 34336//32831 34339//32832 33556//32100 +f 34336//32831 33554//32098 33550//32094 34335//32830 +f 34337//30634 34336//32831 34335//32830 34334//30628 +f 34340//32833 34341//8125 34342//8121 34343//32834 +f 33560//32104 34340//32833 34343//32834 33562//32106 +f 34340//32833 33560//32104 33556//32100 34339//32832 +f 34341//8125 34340//32833 34339//32832 34338//8129 +f 34344//32835 34345//8117 34346//8113 34347//32836 +f 33566//32110 34344//32835 34347//32836 33568//32112 +f 34344//32835 33566//32110 33562//32106 34343//32834 +f 34345//8117 34344//32835 34343//32834 34342//8121 +f 34348//32837 34349//8109 34350//30647 34351//32838 +f 33572//32116 34348//32837 34351//32838 33574//32118 +f 34348//32837 33572//32116 33568//32112 34347//32836 +f 34349//8109 34348//32837 34347//32836 34346//8113 +f 34352//32839 34353//30653 34354//30652 34355//32840 +f 33578//32122 34352//32839 34355//32840 33580//32124 +f 34352//32839 33578//32122 33574//32118 34351//32838 +f 34353//30653 34352//32839 34351//32838 34350//30647 +f 34356//32841 34357//30659 34358//30658 34359//32842 +f 33584//32128 34356//32841 34359//32842 33586//32130 +f 34356//32841 33584//32128 33580//32124 34355//32840 +f 34357//30659 34356//32841 34355//32840 34354//30652 +f 34360//32843 34361//30665 34362//30664 34363//32844 +f 33590//32134 34360//32843 34363//32844 33592//32136 +f 34360//32843 33590//32134 33586//32130 34359//32842 +f 34361//30665 34360//32843 34359//32842 34358//30658 +f 34364//32845 34365//30669 34243//30491 34242//32784 +f 33596//32140 34364//32845 34242//32784 33408//31952 +f 34364//32845 33596//32140 33592//32136 34363//32844 +f 34365//30669 34364//32845 34363//32844 34362//30664 +f 34366//30489 33282//30489 33281//30488 34367//30488 +f 34239//30489 34366//30489 34367//30488 34240//30488 +f 34366//30489 34239//30489 34243//30491 34368//30491 +f 33282//30489 34366//30489 34368//30491 33283//30491 +f 34369//30497 33287//30497 33286//30496 34370//30496 +f 34245//30497 34369//30497 34370//30496 34246//30496 +f 34369//30497 34245//30497 34240//30488 34367//30488 +f 33287//30497 34369//30497 34367//30488 33281//30488 +f 34371//30503 33291//30503 33290//30502 34372//30502 +f 34249//30503 34371//30503 34372//30502 34250//30502 +f 34371//30503 34249//30503 34246//30496 34370//30496 +f 33291//30503 34371//30503 34370//30496 33286//30496 +f 34373//30509 33295//30509 33294//30508 34374//30508 +f 34253//30509 34373//30509 34374//30508 34254//30508 +f 34373//30509 34253//30509 34250//30502 34372//30502 +f 33295//30509 34373//30509 34372//30502 33290//30502 +f 34375//30515 33299//30515 33298//30514 34376//30514 +f 34257//30515 34375//30515 34376//30514 34258//30514 +f 34375//30515 34257//30515 34254//30508 34374//30508 +f 33299//30515 34375//30515 34374//30508 33294//30508 +f 34377//30521 33303//30521 33302//30520 34378//30520 +f 34261//30521 34377//30521 34378//30520 34262//30520 +f 34377//30521 34261//30521 34258//30514 34376//30514 +f 33303//30521 34377//30521 34376//30514 33298//30514 +f 34379//30527 33307//30527 33306//30526 34380//30526 +f 34265//30527 34379//30527 34380//30526 34266//30526 +f 34379//30527 34265//30527 34262//30520 34378//30520 +f 33307//30527 34379//30527 34378//30520 33302//30520 +f 34381//30533 33311//30533 33310//30532 34382//30532 +f 34269//30533 34381//30533 34382//30532 34270//30532 +f 34381//30533 34269//30533 34266//30526 34380//30526 +f 33311//30533 34381//30533 34380//30526 33306//30526 +f 34383//30539 33315//30539 33314//30538 34384//30538 +f 34273//30539 34383//30539 34384//30538 34274//30538 +f 34383//30539 34273//30539 34270//30532 34382//30532 +f 33315//30539 34383//30539 34382//30532 33310//30532 +f 34385//30545 33319//30545 33318//30544 34386//30544 +f 34277//30545 34385//30545 34386//30544 34278//30544 +f 34385//30545 34277//30545 34274//30538 34384//30538 +f 33319//30545 34385//30545 34384//30538 33314//30538 +f 34387//30551 33323//30551 33322//30550 34388//30550 +f 34281//30551 34387//30551 34388//30550 34282//30550 +f 34387//30551 34281//30551 34278//30544 34386//30544 +f 33323//30551 34387//30551 34386//30544 33318//30544 +f 34389//30557 33327//30557 33326//30556 34390//30556 +f 34285//30557 34389//30557 34390//30556 34286//30556 +f 34389//30557 34285//30557 34282//30550 34388//30550 +f 33327//30557 34389//30557 34388//30550 33322//30550 +f 34391//30563 33331//30563 33330//30562 34392//30562 +f 34289//30563 34391//30563 34392//30562 34290//30562 +f 34391//30563 34289//30563 34286//30556 34390//30556 +f 33331//30563 34391//30563 34390//30556 33326//30556 +f 34393//30569 33335//30569 33334//30568 34394//30568 +f 34293//30569 34393//30569 34394//30568 34294//30568 +f 34393//30569 34293//30569 34290//30562 34392//30562 +f 33335//30569 34393//30569 34392//30562 33330//30562 +f 34395//30575 33339//30575 33338//30574 34396//30574 +f 34297//30575 34395//30575 34396//30574 34298//30574 +f 34395//30575 34297//30575 34294//30568 34394//30568 +f 33339//30575 34395//30575 34394//30568 33334//30568 +f 34397//30581 33343//30581 33342//30580 34398//30580 +f 34301//30581 34397//30581 34398//30580 34302//30580 +f 34397//30581 34301//30581 34298//30574 34396//30574 +f 33343//30581 34397//30581 34396//30574 33338//30574 +f 34399//30587 33347//30587 33346//30586 34400//30586 +f 34305//30587 34399//30587 34400//30586 34306//30586 +f 34399//30587 34305//30587 34302//30580 34398//30580 +f 33347//30587 34399//30587 34398//30580 33342//30580 +f 34401//30593 33351//30593 33350//30592 34402//30592 +f 34309//30593 34401//30593 34402//30592 34310//30592 +f 34401//30593 34309//30593 34306//30586 34400//30586 +f 33351//30593 34401//30593 34400//30586 33346//30586 +f 34403//30599 33355//30599 33354//30598 34404//30598 +f 34313//30599 34403//30599 34404//30598 34314//30598 +f 34403//30599 34313//30599 34310//30592 34402//30592 +f 33355//30599 34403//30599 34402//30592 33350//30592 +f 34405//30605 33359//30605 33358//30604 34406//30604 +f 34317//30605 34405//30605 34406//30604 34318//30604 +f 34405//30605 34317//30605 34314//30598 34404//30598 +f 33359//30605 34405//30605 34404//30598 33354//30598 +f 34407//30611 33363//30611 33362//30610 34408//30610 +f 34321//30611 34407//30611 34408//30610 34322//30610 +f 34407//30611 34321//30611 34318//30604 34406//30604 +f 33363//30611 34407//30611 34406//30604 33358//30604 +f 34409//30617 33367//30617 33366//30616 34410//30616 +f 34325//30617 34409//30617 34410//30616 34326//30616 +f 34409//30617 34325//30617 34322//30610 34408//30610 +f 33367//30617 34409//30617 34408//30610 33362//30610 +f 34411//30623 33371//30623 33370//30622 34412//30622 +f 34329//30623 34411//30623 34412//30622 34330//30622 +f 34411//30623 34329//30623 34326//30616 34410//30616 +f 33371//30623 34411//30623 34410//30616 33366//30616 +f 34413//30629 33375//30629 33374//30628 34414//30628 +f 34333//30629 34413//30629 34414//30628 34334//30628 +f 34413//30629 34333//30629 34330//30622 34412//30622 +f 33375//30629 34413//30629 34412//30622 33370//30622 +f 34415//30634 33379//30634 33378//8129 34416//8129 +f 34337//30634 34415//30634 34416//8129 34338//8129 +f 34415//30634 34337//30634 34334//30628 34414//30628 +f 33379//30634 34415//30634 34414//30628 33374//30628 +f 34417//8125 33383//8125 33382//8121 34418//8121 +f 34341//8125 34417//8125 34418//8121 34342//8121 +f 34417//8125 34341//8125 34338//8129 34416//8129 +f 33383//8125 34417//8125 34416//8129 33378//8129 +f 34419//8117 33387//8117 33386//8113 34420//8113 +f 34345//8117 34419//8117 34420//8113 34346//8113 +f 34419//8117 34345//8117 34342//8121 34418//8121 +f 33387//8117 34419//8117 34418//8121 33382//8121 +f 34421//8109 33391//8109 33390//30647 34422//30647 +f 34349//8109 34421//8109 34422//30647 34350//30647 +f 34421//8109 34349//8109 34346//8113 34420//8113 +f 33391//8109 34421//8109 34420//8113 33386//8113 +f 34423//30653 33395//30653 33394//30652 34424//30652 +f 34353//30653 34423//30653 34424//30652 34354//30652 +f 34423//30653 34353//30653 34350//30647 34422//30647 +f 33395//30653 34423//30653 34422//30647 33390//30647 +f 34425//30659 33399//30659 33398//30658 34426//30658 +f 34357//30659 34425//30659 34426//30658 34358//30658 +f 34425//30659 34357//30659 34354//30652 34424//30652 +f 33399//30659 34425//30659 34424//30652 33394//30652 +f 34427//30665 33403//30665 33402//30664 34428//30664 +f 34361//30665 34427//30665 34428//30664 34362//30664 +f 34427//30665 34361//30665 34358//30658 34426//30658 +f 33403//30665 34427//30665 34426//30658 33398//30658 +f 34429//30669 33405//30669 33283//30491 34368//30491 +f 34365//30669 34429//30669 34368//30491 34243//30491 +f 34429//30669 34365//30669 34362//30664 34428//30664 +f 33405//30669 34429//30669 34428//30664 33402//30664 +f 34430//32846 33794//32338 33793//32337 34431//32847 +f 33921//32465 34430//32846 34431//32847 33923//32467 +f 34430//32846 33921//32465 33920//32464 34432//32848 +f 33794//32338 34430//32846 34432//32848 33795//32339 +f 34433//32849 33799//32343 33798//32342 34434//32850 +f 33925//32469 34433//32849 34434//32850 33927//32471 +f 34433//32849 33925//32469 33923//32467 34431//32847 +f 33799//32343 34433//32849 34431//32847 33793//32337 +f 34435//32851 33803//32347 33802//32346 34436//32852 +f 33929//32473 34435//32851 34436//32852 33931//32475 +f 34435//32851 33929//32473 33927//32471 34434//32850 +f 33803//32347 34435//32851 34434//32850 33798//32342 +f 34437//32853 33807//32351 33806//32350 34438//32854 +f 33933//32477 34437//32853 34438//32854 33935//32479 +f 34437//32853 33933//32477 33931//32475 34436//32852 +f 33807//32351 34437//32853 34436//32852 33802//32346 +f 34439//32855 33811//32355 33810//32354 34440//32856 +f 33937//32481 34439//32855 34440//32856 33939//32483 +f 34439//32855 33937//32481 33935//32479 34438//32854 +f 33811//32355 34439//32855 34438//32854 33806//32350 +f 34441//32857 33815//32359 33814//32358 34442//32858 +f 33941//32485 34441//32857 34442//32858 33943//32487 +f 34441//32857 33941//32485 33939//32483 34440//32856 +f 33815//32359 34441//32857 34440//32856 33810//32354 +f 34443//32859 33819//32363 33818//32362 34444//32860 +f 33945//32489 34443//32859 34444//32860 33947//32491 +f 34443//32859 33945//32489 33943//32487 34442//32858 +f 33819//32363 34443//32859 34442//32858 33814//32358 +f 34445//32861 33823//32367 33822//32366 34446//32862 +f 33949//32493 34445//32861 34446//32862 33951//32495 +f 34445//32861 33949//32493 33947//32491 34444//32860 +f 33823//32367 34445//32861 34444//32860 33818//32362 +f 34447//32863 33827//32371 33826//32370 34448//32864 +f 33953//32497 34447//32863 34448//32864 33955//32499 +f 34447//32863 33953//32497 33951//32495 34446//32862 +f 33827//32371 34447//32863 34446//32862 33822//32366 +f 34449//32865 33831//32375 33830//32374 34450//32866 +f 33957//32501 34449//32865 34450//32866 33959//32503 +f 34449//32865 33957//32501 33955//32499 34448//32864 +f 33831//32375 34449//32865 34448//32864 33826//32370 +f 34451//32867 33835//32379 33834//32378 34452//32868 +f 33961//32505 34451//32867 34452//32868 33963//32507 +f 34451//32867 33961//32505 33959//32503 34450//32866 +f 33835//32379 34451//32867 34450//32866 33830//32374 +f 34453//32869 33839//32383 33838//32382 34454//32870 +f 33965//32509 34453//32869 34454//32870 33967//32511 +f 34453//32869 33965//32509 33963//32507 34452//32868 +f 33839//32383 34453//32869 34452//32868 33834//32378 +f 34455//32871 33843//32387 33842//32386 34456//32872 +f 33969//32513 34455//32871 34456//32872 33971//32515 +f 34455//32871 33969//32513 33967//32511 34454//32870 +f 33843//32387 34455//32871 34454//32870 33838//32382 +f 34457//32873 33847//32391 33846//32390 34458//32874 +f 33973//32517 34457//32873 34458//32874 33975//32519 +f 34457//32873 33973//32517 33971//32515 34456//32872 +f 33847//32391 34457//32873 34456//32872 33842//32386 +f 34459//32875 33851//32395 33850//32394 34460//32876 +f 33977//32521 34459//32875 34460//32876 33979//32523 +f 34459//32875 33977//32521 33975//32519 34458//32874 +f 33851//32395 34459//32875 34458//32874 33846//32390 +f 34461//32877 33855//32399 33854//32398 34462//32878 +f 33981//32525 34461//32877 34462//32878 33983//32527 +f 34461//32877 33981//32525 33979//32523 34460//32876 +f 33855//32399 34461//32877 34460//32876 33850//32394 +f 34463//32879 33859//32403 33858//32402 34464//32880 +f 33985//32529 34463//32879 34464//32880 33987//32531 +f 34463//32879 33985//32529 33983//32527 34462//32878 +f 33859//32403 34463//32879 34462//32878 33854//32398 +f 34465//32881 33863//32407 33862//32406 34466//32882 +f 33989//32533 34465//32881 34466//32882 33991//32535 +f 34465//32881 33989//32533 33987//32531 34464//32880 +f 33863//32407 34465//32881 34464//32880 33858//32402 +f 34467//32883 33867//32411 33866//32410 34468//32884 +f 33993//32537 34467//32883 34468//32884 33995//32539 +f 34467//32883 33993//32537 33991//32535 34466//32882 +f 33867//32411 34467//32883 34466//32882 33862//32406 +f 34469//32885 33871//32415 33870//32414 34470//32886 +f 33997//32541 34469//32885 34470//32886 33999//32543 +f 34469//32885 33997//32541 33995//32539 34468//32884 +f 33871//32415 34469//32885 34468//32884 33866//32410 +f 34471//32887 33875//32419 33874//32418 34472//32888 +f 34001//32545 34471//32887 34472//32888 34003//32547 +f 34471//32887 34001//32545 33999//32543 34470//32886 +f 33875//32419 34471//32887 34470//32886 33870//32414 +f 34473//32889 33879//32423 33878//32422 34474//32890 +f 34005//32549 34473//32889 34474//32890 34007//32551 +f 34473//32889 34005//32549 34003//32547 34472//32888 +f 33879//32423 34473//32889 34472//32888 33874//32418 +f 34475//32891 33883//32427 33882//32426 34476//32892 +f 34009//32553 34475//32891 34476//32892 34011//32555 +f 34475//32891 34009//32553 34007//32551 34474//32890 +f 33883//32427 34475//32891 34474//32890 33878//32422 +f 34477//32893 33887//32431 33886//32430 34478//32894 +f 34013//32557 34477//32893 34478//32894 34015//32559 +f 34477//32893 34013//32557 34011//32555 34476//32892 +f 33887//32431 34477//32893 34476//32892 33882//32426 +f 34479//32895 33891//32435 33890//32434 34480//32896 +f 34017//32561 34479//32895 34480//32896 34019//32563 +f 34479//32895 34017//32561 34015//32559 34478//32894 +f 33891//32435 34479//32895 34478//32894 33886//32430 +f 34481//32897 33895//32439 33894//32438 34482//32898 +f 34021//32565 34481//32897 34482//32898 34023//32567 +f 34481//32897 34021//32565 34019//32563 34480//32896 +f 33895//32439 34481//32897 34480//32896 33890//32434 +f 34483//32899 33899//32443 33898//32442 34484//32900 +f 34025//32569 34483//32899 34484//32900 34027//32571 +f 34483//32899 34025//32569 34023//32567 34482//32898 +f 33899//32443 34483//32899 34482//32898 33894//32438 +f 34485//32901 33903//32447 33902//32446 34486//32902 +f 34029//32573 34485//32901 34486//32902 34031//32575 +f 34485//32901 34029//32573 34027//32571 34484//32900 +f 33903//32447 34485//32901 34484//32900 33898//32442 +f 34487//32903 33907//32451 33906//32450 34488//32904 +f 34033//32577 34487//32903 34488//32904 34035//32579 +f 34487//32903 34033//32577 34031//32575 34486//32902 +f 33907//32451 34487//32903 34486//32902 33902//32446 +f 34489//32905 33911//32455 33910//32454 34490//32906 +f 34037//32581 34489//32905 34490//32906 34039//32583 +f 34489//32905 34037//32581 34035//32579 34488//32904 +f 33911//32455 34489//32905 34488//32904 33906//32450 +f 34491//32907 33915//32459 33914//32458 34492//32908 +f 34041//32585 34491//32907 34492//32908 34043//32587 +f 34491//32907 34041//32585 34039//32583 34490//32906 +f 33915//32459 34491//32907 34490//32906 33910//32454 +f 34493//32909 33917//32461 33795//32339 34432//32848 +f 34045//32589 34493//32909 34432//32848 33920//32464 +f 34493//32909 34045//32589 34043//32587 34492//32908 +f 33917//32461 34493//32909 34492//32908 33914//32458 +f 33919//32463 33918//32462 34494//3570 +f 33918//32462 33922//32466 34494//3570 +f 33922//32466 33924//32468 34494//3570 +f 33924//32468 33926//32470 34494//3570 +f 33926//32470 33928//32472 34494//3570 +f 33928//32472 33930//32474 34494//3570 +f 33930//32474 33932//32476 34494//3570 +f 33932//32476 33934//32478 34494//3570 +f 33934//32478 33936//32480 34494//3570 +f 33936//32480 33938//32482 34494//3570 +f 33938//32482 33940//32484 34494//3570 +f 33940//32484 33942//32486 34494//3570 +f 33942//32486 33944//32488 34494//3570 +f 33944//32488 33946//32490 34494//3570 +f 33946//32490 33948//32492 34494//3570 +f 33948//32492 33950//32494 34494//3570 +f 33950//32494 33952//32496 34494//3570 +f 33952//32496 33954//32498 34494//3570 +f 33954//32498 33956//32500 34494//3570 +f 33956//32500 33958//32502 34494//3570 +f 33958//32502 33960//32504 34494//3570 +f 33960//32504 33962//32506 34494//3570 +f 33962//32506 33964//32508 34494//3570 +f 33964//32508 33966//32510 34494//3570 +f 33966//32510 33968//32512 34494//3570 +f 33968//32512 33970//32514 34494//3570 +f 33970//32514 33972//32516 34494//3570 +f 33972//32516 33974//32518 34494//3570 +f 33974//32518 33976//32520 34494//3570 +f 33976//32520 33978//32522 34494//3570 +f 33978//32522 33980//32524 34494//3570 +f 33980//32524 33982//32526 34494//3570 +f 33982//32526 33984//32528 34494//3570 +f 33984//32528 33986//32530 34494//3570 +f 33986//32530 33988//32532 34494//3570 +f 33988//32532 33990//32534 34494//3570 +f 33990//32534 33992//32536 34494//3570 +f 33992//32536 33994//32538 34494//3570 +f 33994//32538 33996//32540 34494//3570 +f 33996//32540 33998//32542 34494//3570 +f 33998//32542 34000//32544 34494//3570 +f 34000//32544 34002//32546 34494//3570 +f 34002//32546 34004//32548 34494//3570 +f 34004//32548 34006//32550 34494//3570 +f 34006//32550 34008//32552 34494//3570 +f 34008//32552 34010//32554 34494//3570 +f 34010//32554 34012//32556 34494//3570 +f 34012//32556 34014//32558 34494//3570 +f 34014//32558 34016//32560 34494//3570 +f 34016//32560 34018//32562 34494//3570 +f 34018//32562 34020//32564 34494//3570 +f 34020//32564 34022//32566 34494//3570 +f 34022//32566 34024//32568 34494//3570 +f 34024//32568 34026//32570 34494//3570 +f 34026//32570 34028//32572 34494//3570 +f 34028//32572 34030//32574 34494//3570 +f 34030//32574 34032//32576 34494//3570 +f 34032//32576 34034//32578 34494//3570 +f 34034//32578 34036//32580 34494//3570 +f 34036//32580 34038//32582 34494//3570 +f 34038//32582 34040//32584 34494//3570 +f 34040//32584 34042//32586 34494//3570 +f 34042//32586 34044//32588 34494//3570 +f 34044//32588 33919//32463 34494//3570 +f 32574//31311 32573//31310 34495//4220 34496//4220 +f 32573//31310 32575//31312 34497//4220 34495//4220 +f 32575//31312 32576//31313 34498//4220 34497//4220 +f 32576//31313 32577//31314 34499//4220 34498//4220 +f 32577//31314 32578//31315 34500//4220 34499//4220 +f 32578//31315 32579//31316 34501//4220 34500//4220 +f 32579//31316 32580//31317 34502//4220 34501//4220 +f 32580//31317 32581//31318 34503//4220 34502//4220 +f 32581//31318 32582//31319 34504//4220 34503//4220 +f 32582//31319 32583//31320 34505//4220 34504//4220 +f 32583//31320 32584//31321 34506//4220 34505//4220 +f 32584//31321 32585//31322 34507//4220 34506//4220 +f 32585//31322 32586//31323 34508//4220 34507//4220 +f 32586//31323 32587//31324 34509//4220 34508//4220 +f 32587//31324 32588//31325 34510//4220 34509//4220 +f 32588//31325 32589//31326 34511//4220 34510//4220 +f 32589//31326 32590//31327 34512//4220 34511//4220 +f 32590//31327 32591//31328 34513//4220 34512//4220 +f 32591//31328 32592//31329 34514//4220 34513//4220 +f 32592//31329 32593//31330 34515//4220 34514//4220 +f 32593//31330 32594//31331 34516//4220 34515//4220 +f 32594//31331 32595//31332 34517//4220 34516//4220 +f 32595//31332 32596//31333 34518//4220 34517//4220 +f 32596//31333 32597//31334 34519//4220 34518//4220 +f 32597//31334 32598//31335 34520//4220 34519//4220 +f 32598//31335 32599//31336 34521//4220 34520//4220 +f 32599//31336 32600//31337 34522//4220 34521//4220 +f 32600//31337 32601//31338 34523//4220 34522//4220 +f 32601//31338 32602//31339 34524//4220 34523//4220 +f 32602//31339 32603//31340 34525//4220 34524//4220 +f 32603//31340 32604//31341 34526//4220 34525//4220 +f 32604//31341 32605//31342 34527//4220 34526//4220 +f 32605//31342 32606//31343 34528//4220 34527//4220 +f 32606//31343 32607//31344 34529//4220 34528//4220 +f 32607//31344 32608//31345 34530//4220 34529//4220 +f 32608//31345 32609//31346 34531//4220 34530//4220 +f 32609//31346 32610//31347 34532//4220 34531//4220 +f 32610//31347 32611//31348 34533//4220 34532//4220 +f 32611//31348 32612//31349 34534//4220 34533//4220 +f 32612//31349 32613//31350 34535//4220 34534//4220 +f 32613//31350 32614//31351 34536//4220 34535//4220 +f 32614//31351 32615//31352 34537//4220 34536//4220 +f 32615//31352 32616//31353 34538//4220 34537//4220 +f 32616//31353 32617//31354 34539//4220 34538//4220 +f 32617//31354 32618//31355 34540//4220 34539//4220 +f 32618//31355 32619//31356 34541//4220 34540//4220 +f 32619//31356 32620//31357 34542//4220 34541//4220 +f 32620//31357 32621//31358 34543//4220 34542//4220 +f 32621//31358 32622//31359 34544//4220 34543//4220 +f 32622//31359 32623//31360 34545//4220 34544//4220 +f 32623//31360 32624//31361 34546//4220 34545//4220 +f 32624//31361 32625//31362 34547//4220 34546//4220 +f 32625//31362 32626//31363 34548//4220 34547//4220 +f 32626//31363 32627//31364 34549//4220 34548//4220 +f 32627//31364 32628//31365 34550//4220 34549//4220 +f 32628//31365 32629//31366 34551//4220 34550//4220 +f 32629//31366 32630//31367 34552//4220 34551//4220 +f 32630//31367 32631//31368 34553//4220 34552//4220 +f 32631//31368 32632//31369 34554//4220 34553//4220 +f 32632//31369 32633//31370 34555//4220 34554//4220 +f 32633//31370 32634//31371 34556//4220 34555//4220 +f 32634//31371 32635//31372 34557//4220 34556//4220 +f 32635//31372 32636//31373 34558//4220 34557//4220 +f 32636//31373 32574//31311 34496//4220 34558//4220 +f 34496//4220 34495//4220 34559//4220 34560//4220 +f 34495//4220 34497//4220 34561//4220 34559//4220 +f 34497//4220 34498//4220 34562//4220 34561//4220 +f 34498//4220 34499//4220 34563//4220 34562//4220 +f 34499//4220 34500//4220 34564//4220 34563//4220 +f 34500//4220 34501//4220 34565//4220 34564//4220 +f 34501//4220 34502//4220 34566//4220 34565//4220 +f 34502//4220 34503//4220 34567//4220 34566//4220 +f 34503//4220 34504//4220 34568//4220 34567//4220 +f 34504//4220 34505//4220 34569//4220 34568//4220 +f 34505//4220 34506//4220 34570//4220 34569//4220 +f 34506//4220 34507//4220 34571//4220 34570//4220 +f 34507//4220 34508//4220 34572//4220 34571//4220 +f 34508//4220 34509//4220 34573//4220 34572//4220 +f 34509//4220 34510//4220 34574//4220 34573//4220 +f 34510//4220 34511//4220 34575//4220 34574//4220 +f 34511//4220 34512//4220 34576//4220 34575//4220 +f 34512//4220 34513//4220 34577//4220 34576//4220 +f 34513//4220 34514//4220 34578//4220 34577//4220 +f 34514//4220 34515//4220 34579//4220 34578//4220 +f 34515//4220 34516//4220 34580//4220 34579//4220 +f 34516//4220 34517//4220 34581//4220 34580//4220 +f 34517//4220 34518//4220 34582//4220 34581//4220 +f 34518//4220 34519//4220 34583//4220 34582//4220 +f 34519//4220 34520//4220 34584//4220 34583//4220 +f 34520//4220 34521//4220 34585//4220 34584//4220 +f 34521//4220 34522//4220 34586//4220 34585//4220 +f 34522//4220 34523//4220 34587//4220 34586//4220 +f 34523//4220 34524//4220 34588//4220 34587//4220 +f 34524//4220 34525//4220 34589//4220 34588//4220 +f 34525//4220 34526//4220 34590//4220 34589//4220 +f 34526//4220 34527//4220 34591//4220 34590//4220 +f 34527//4220 34528//4220 34592//4220 34591//4220 +f 34528//4220 34529//4220 34593//4220 34592//4220 +f 34529//4220 34530//4220 34594//4220 34593//4220 +f 34530//4220 34531//4220 34595//4220 34594//4220 +f 34531//4220 34532//4220 34596//4220 34595//4220 +f 34532//4220 34533//4220 34597//4220 34596//4220 +f 34533//4220 34534//4220 34598//4220 34597//4220 +f 34534//4220 34535//4220 34599//4220 34598//4220 +f 34535//4220 34536//4220 34600//4220 34599//4220 +f 34536//4220 34537//4220 34601//4220 34600//4220 +f 34537//4220 34538//4220 34602//4220 34601//4220 +f 34538//4220 34539//4220 34603//4220 34602//4220 +f 34539//4220 34540//4220 34604//4220 34603//4220 +f 34540//4220 34541//4220 34605//4220 34604//4220 +f 34541//4220 34542//4220 34606//4220 34605//4220 +f 34542//4220 34543//4220 34607//4220 34606//4220 +f 34543//4220 34544//4220 34608//4220 34607//4220 +f 34544//4220 34545//4220 34609//4220 34608//4220 +f 34545//4220 34546//4220 34610//4220 34609//4220 +f 34546//4220 34547//4220 34611//4220 34610//4220 +f 34547//4220 34548//4220 34612//4220 34611//4220 +f 34548//4220 34549//4220 34613//4220 34612//4220 +f 34549//4220 34550//4220 34614//4220 34613//4220 +f 34550//4220 34551//4220 34615//4220 34614//4220 +f 34551//4220 34552//4220 34616//4220 34615//4220 +f 34552//4220 34553//4220 34617//4220 34616//4220 +f 34553//4220 34554//4220 34618//4220 34617//4220 +f 34554//4220 34555//4220 34619//4220 34618//4220 +f 34555//4220 34556//4220 34620//4220 34619//4220 +f 34556//4220 34557//4220 34621//4220 34620//4220 +f 34557//4220 34558//4220 34622//4220 34621//4220 +f 34558//4220 34496//4220 34560//4220 34622//4220 +f 34560//4220 34559//4220 34623//4220 +f 34559//4220 34561//4220 34623//4220 +f 34561//4220 34562//4220 34623//4220 +f 34562//4220 34563//4220 34623//4220 +f 34563//4220 34564//4220 34623//4220 +f 34564//4220 34565//4220 34623//4220 +f 34565//4220 34566//4220 34623//4220 +f 34566//4220 34567//4220 34623//4220 +f 34567//4220 34568//4220 34623//4220 +f 34568//4220 34569//4220 34623//4220 +f 34569//4220 34570//4220 34623//4220 +f 34570//4220 34571//4220 34623//4220 +f 34571//4220 34572//4220 34623//4220 +f 34572//4220 34573//4220 34623//4220 +f 34573//4220 34574//4220 34623//4220 +f 34574//4220 34575//4220 34623//4220 +f 34575//4220 34576//4220 34623//4220 +f 34576//4220 34577//4220 34623//4220 +f 34577//4220 34578//4220 34623//4220 +f 34578//4220 34579//4220 34623//4220 +f 34579//4220 34580//4220 34623//4220 +f 34580//4220 34581//4220 34623//4220 +f 34581//4220 34582//4220 34623//4220 +f 34582//4220 34583//4220 34623//4220 +f 34583//4220 34584//4220 34623//4220 +f 34584//4220 34585//4220 34623//4220 +f 34585//4220 34586//4220 34623//4220 +f 34586//4220 34587//4220 34623//4220 +f 34587//4220 34588//4220 34623//4220 +f 34588//4220 34589//4220 34623//4220 +f 34589//4220 34590//4220 34623//4220 +f 34590//4220 34591//4220 34623//4220 +f 34591//4220 34592//4220 34623//4220 +f 34592//4220 34593//4220 34623//4220 +f 34593//4220 34594//4220 34623//4220 +f 34594//4220 34595//4220 34623//4220 +f 34595//4220 34596//4220 34623//4220 +f 34596//4220 34597//4220 34623//4220 +f 34597//4220 34598//4220 34623//4220 +f 34598//4220 34599//4220 34623//4220 +f 34599//4220 34600//4220 34623//4220 +f 34600//4220 34601//4220 34623//4220 +f 34601//4220 34602//4220 34623//4220 +f 34602//4220 34603//4220 34623//4220 +f 34603//4220 34604//4220 34623//4220 +f 34604//4220 34605//4220 34623//4220 +f 34605//4220 34606//4220 34623//4220 +f 34606//4220 34607//4220 34623//4220 +f 34607//4220 34608//4220 34623//4220 +f 34608//4220 34609//4220 34623//4220 +f 34609//4220 34610//4220 34623//4220 +f 34610//4220 34611//4220 34623//4220 +f 34611//4220 34612//4220 34623//4220 +f 34612//4220 34613//4220 34623//4220 +f 34613//4220 34614//4220 34623//4220 +f 34614//4220 34615//4220 34623//4220 +f 34615//4220 34616//4220 34623//4220 +f 34616//4220 34617//4220 34623//4220 +f 34617//4220 34618//4220 34623//4220 +f 34618//4220 34619//4220 34623//4220 +f 34619//4220 34620//4220 34623//4220 +f 34620//4220 34621//4220 34623//4220 +f 34621//4220 34622//4220 34623//4220 +f 34622//4220 34560//4220 34623//4220 diff --git a/samples/dual_layer/D3D12/media/StaticMesh.hlsl b/samples/dual_layer/D3D12/media/StaticMesh.hlsl new file mode 100644 index 0000000..61c36ba --- /dev/null +++ b/samples/dual_layer/D3D12/media/StaticMesh.hlsl @@ -0,0 +1,35 @@ +cbuffer PerFrame : register(b0) +{ + row_major float4x4 MatView; + row_major float4x4 MatViewProj; +}; + +cbuffer PerObject : register(b1) +{ + row_major float4x4 MatWorld; +}; + +struct VSInput +{ + float4 Position : POSITION; +}; + +struct PSInput +{ + float4 Position : SV_Position; + float3 ViewPosition : VIEWPOSITION; +}; + +void VSMain(in VSInput In, out PSInput Out) +{ + Out.Position = mul(In.Position, MatWorld); + Out.ViewPosition = mul(Out.Position, (float3x3)MatView); + Out.Position = mul(Out.Position, MatViewProj); +} + +void PSMain(in PSInput In, out float4 Out : SV_Target) +{ + float3 Normal = -normalize(cross(ddx(In.ViewPosition), ddy(In.ViewPosition))); + Out = float4(1.0, 1.0, 0.0, 1.0); + Out = float4(Normal * 0.5 + 0.5, 1.0); +} \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/Camera.cpp b/samples/dual_layer/D3D12/src/Camera.cpp new file mode 100644 index 0000000..fee0fe3 --- /dev/null +++ b/samples/dual_layer/D3D12/src/Camera.cpp @@ -0,0 +1,55 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "Camera.h" + +Camera::Camera() +{ + InitProjectionMatrix(1280, 720); + + mPosition = { -5.0f, -5.0f, 3.0f }; + mViewVector = XMVector3Normalize({ -4.0f, -4.0f, -2.0f }); + UpdateViewMatrix(); +} + +void Camera::InitProjectionMatrix(uint32_t width, uint32_t height, float zNear, float zFar) +{ + mMatProj = XMMatrixPerspectiveFovRH(XMConvertToRadians(60.0f), (float)width / (float)height, zNear, zFar); + UpdateViewMatrix(); +} + +void Camera::MoveForward(float dt) +{ + mPosition += mViewVector * dt; + UpdateViewMatrix(); +} + +void Camera::MoveRight(float dt) +{ + mPosition += XMMatrixTranspose(mMatView).r[0] * dt; + UpdateViewMatrix(); +} + +void Camera::AdvanceAngles(float yaw, float pitch) +{ + XMMATRIX matBasisVecs = XMMatrixTranspose(mMatView); + + XMMATRIX matRot = XMMatrixRotationY(yaw);// *XMMatrixRotationX(pitch); + + mViewVector = XMVector3Rotate(mViewVector, XMQuaternionRotationAxis(matBasisVecs.r[1], yaw)); + mViewVector = XMVector3Rotate(mViewVector, XMQuaternionRotationAxis(matBasisVecs.r[0], pitch)); + UpdateViewMatrix(); +} + +void Camera::UpdateViewMatrix() +{ + mMatView = XMMatrixLookAtRH(mPosition, mPosition + mViewVector, { 0.0f, 0.0f, 1.0f }); + mMatViewProj = XMMatrixMultiply(mMatView, mMatProj); +} diff --git a/samples/dual_layer/D3D12/src/Camera.h b/samples/dual_layer/D3D12/src/Camera.h new file mode 100644 index 0000000..2cc373b --- /dev/null +++ b/samples/dual_layer/D3D12/src/Camera.h @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once + +#include +using namespace DirectX; + +class Camera +{ +public: + Camera(); + + union + { + struct + { + XMMATRIX mMatView; + XMMATRIX mMatViewProj; + }; + float PerFrameData[32]; + }; + XMMATRIX mMatProj; + + void InitProjectionMatrix(uint32_t width, uint32_t height, float zNear = 0.01f, float zFar = 10000.0f); + void MoveForward(float dt); + void MoveRight(float dt); + void AdvanceAngles(float yaw, float pitch); + + void UpdateViewMatrix(); + + XMVECTOR mPosition; + XMVECTOR mViewVector; +}; + diff --git a/samples/dual_layer/D3D12/src/D3D12Mesh.cpp b/samples/dual_layer/D3D12/src/D3D12Mesh.cpp new file mode 100644 index 0000000..e7f13d5 --- /dev/null +++ b/samples/dual_layer/D3D12/src/D3D12Mesh.cpp @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#define _SCL_SECURE_NO_WARNINGS +#include "D3D12Mesh.h" +#include "d3dx12.h" + +bool D3D12Mesh::InitializeFromMesh(ID3D12Device* device, Mesh& mesh) +{ + mNumIndices = (uint32_t)mesh.mIndices.size(); + + ID3D12Resource* vertexBuffer = nullptr; + ID3D12Resource* indexBuffer = nullptr; + + uint32_t vertexBufferSize = (uint32_t)mesh.mVertices.size() * sizeof(decltype(mesh.mVertices)::value_type); + uint32_t indexBufferSize = (uint32_t)mesh.mIndices.size() * sizeof(decltype(mesh.mIndices)::value_type); + + device->CreateCommittedResource(&CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), D3D12_HEAP_FLAG_NONE, &CD3DX12_RESOURCE_DESC::Buffer(vertexBufferSize), + D3D12_RESOURCE_STATE_GENERIC_READ, nullptr, IID_PPV_ARGS(&vertexBuffer)); + + device->CreateCommittedResource(&CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), D3D12_HEAP_FLAG_NONE, &CD3DX12_RESOURCE_DESC::Buffer(indexBufferSize), + D3D12_RESOURCE_STATE_GENERIC_READ, nullptr, IID_PPV_ARGS(&indexBuffer)); + + void* uploadPtr = nullptr; + vertexBuffer->Map(0, nullptr, &uploadPtr); + std::copy(mesh.mVertices.begin(), mesh.mVertices.end(), (decltype(mesh.mVertices)::value_type*)uploadPtr); + vertexBuffer->Unmap(0, nullptr); + + indexBuffer->Map(0, nullptr, &uploadPtr); + std::copy(mesh.mIndices.begin(), mesh.mIndices.end(), (decltype(mesh.mIndices)::value_type*)uploadPtr); + indexBuffer->Unmap(0, nullptr); + + mVertexBuffer.BufferLocation = vertexBuffer->GetGPUVirtualAddress(); + mVertexBuffer.SizeInBytes = vertexBufferSize; + mVertexBuffer.StrideInBytes = sizeof(decltype(mesh.mVertices)::value_type); + + mIndexBuffer.BufferLocation = indexBuffer->GetGPUVirtualAddress(); + mIndexBuffer.SizeInBytes = indexBufferSize; + mIndexBuffer.Format = DXGI_FORMAT_R32_UINT; + + return true; +} diff --git a/samples/dual_layer/D3D12/src/D3D12Mesh.h b/samples/dual_layer/D3D12/src/D3D12Mesh.h new file mode 100644 index 0000000..1629d61 --- /dev/null +++ b/samples/dual_layer/D3D12/src/D3D12Mesh.h @@ -0,0 +1,27 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include "Mesh.h" +#include +#include + +using namespace DirectX; + +class D3D12Mesh +{ +public: + bool InitializeFromMesh(ID3D12Device* device, Mesh& mesh); + uint32_t mNumIndices; + XMMATRIX mMatWorld; + D3D12_VERTEX_BUFFER_VIEW mVertexBuffer; + D3D12_INDEX_BUFFER_VIEW mIndexBuffer; +}; + diff --git a/samples/dual_layer/D3D12/src/DeviceManager12.cpp b/samples/dual_layer/D3D12/src/DeviceManager12.cpp new file mode 100644 index 0000000..85c99ff --- /dev/null +++ b/samples/dual_layer/D3D12/src/DeviceManager12.cpp @@ -0,0 +1,774 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "DeviceManager12.h" +#include +#include + +#pragma comment(lib, "dxgi.lib") +#pragma comment(lib, "d3d12.lib") + +#define WINDOW_CLASS_NAME L"NvDX12" + +#define WINDOW_STYLE_NORMAL (WS_OVERLAPPEDWINDOW | WS_VISIBLE) +#define WINDOW_STYLE_FULLSCREEN (WS_POPUP | WS_SYSMENU | WS_VISIBLE) + +#define V_RETURN(code) { hr = (code); if(FAILED(hr)) return hr; } +#define HR_RETURN(hr) if(FAILED(hr)) return hr; + +LRESULT CALLBACK WindowProc12(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + DeviceManager* pDM = (DeviceManager*)GetWindowLongPtr(hWnd, 0); + if(pDM) + return pDM->MsgProc(hWnd, uMsg, wParam, lParam); + else + return DefWindowProc(hWnd, uMsg, wParam, lParam); +} + +void SetResourceBarrier(ID3D12GraphicsCommandList* commandList, + ID3D12Resource* res, + D3D12_RESOURCE_STATES before, + D3D12_RESOURCE_STATES after) +{ + D3D12_RESOURCE_BARRIER desc = {}; + desc.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; + desc.Transition.pResource = res; + desc.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES; + desc.Transition.StateBefore = before; + desc.Transition.StateAfter = after; + desc.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE; + commandList->ResourceBarrier(1, &desc); +} + +void SetUavBarrier(ID3D12GraphicsCommandList* commandList, ID3D12Resource* res) +{ + D3D12_RESOURCE_BARRIER desc = {}; + desc.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV; + desc.Transition.pResource = res; + desc.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES; + desc.Transition.StateBefore = D3D12_RESOURCE_STATE_UNORDERED_ACCESS; + desc.Transition.StateAfter = D3D12_RESOURCE_STATE_UNORDERED_ACCESS; + desc.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE; + commandList->ResourceBarrier(1, &desc); +} + +HRESULT +DeviceManager::CreateWindowDeviceAndSwapChain(const DeviceCreationParameters& params, LPWSTR title) +{ + m_WindowTitle = title; + + HINSTANCE hInstance = GetModuleHandle(NULL); + WNDCLASSEX windowClass = { sizeof(WNDCLASSEX), CS_HREDRAW | CS_VREDRAW, WindowProc12, + 0L, sizeof(void*), hInstance, NULL, NULL, NULL, NULL, WINDOW_CLASS_NAME, NULL }; + + RegisterClassEx(&windowClass); + + UINT windowStyle = params.startFullscreen + ? WINDOW_STYLE_FULLSCREEN + : params.startMaximized + ? (WINDOW_STYLE_NORMAL | WS_MAXIMIZE) + : WINDOW_STYLE_NORMAL; + + RECT rect = { 0, 0, params.backBufferWidth, params.backBufferHeight }; + AdjustWindowRect(&rect, windowStyle, FALSE); + + m_hWnd = CreateWindowEx( + 0, + WINDOW_CLASS_NAME, + title, + windowStyle, + params.windowPosX, + params.windowPosY, + rect.right - rect.left, + rect.bottom - rect.top, + GetDesktopWindow(), + NULL, + hInstance, + NULL + ); + + if(!m_hWnd) + { +#ifdef DEBUG + DWORD errorCode = GetLastError(); + printf("CreateWindowEx error code = 0x%x\n", errorCode); +#endif + + MessageBox(NULL, L"Cannot create window", m_WindowTitle.c_str(), MB_OK | MB_ICONERROR); + return E_FAIL; + } + + SetWindowLongPtr(m_hWnd, 0, (LONG_PTR)this); + UpdateWindow(m_hWnd); + + HRESULT hr = E_FAIL; + + RECT clientRect; + GetClientRect(m_hWnd, &clientRect); + UINT width = clientRect.right - clientRect.left; + UINT height = clientRect.bottom - clientRect.top; + + ZeroMemory(&m_SwapChainDesc, sizeof(m_SwapChainDesc)); + m_SwapChainDesc.Width = width; + m_SwapChainDesc.Height = height; + m_SwapChainDesc.Format = params.swapChainFormat; + m_SwapChainDesc.SampleDesc.Count = params.swapChainSampleCount; + m_SwapChainDesc.SampleDesc.Quality = 0; + m_SwapChainDesc.BufferUsage = params.swapChainUsage; + m_SwapChainDesc.BufferCount = params.swapChainBufferCount; + m_SwapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; + m_SwapChainDesc.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; + + if(params.enableDebugRuntime) + { + ID3D12Debug* pDebug = NULL; + hr = D3D12GetDebugInterface(IID_PPV_ARGS(&pDebug)); + HR_RETURN(hr); + + pDebug->EnableDebugLayer(); + + pDebug->Release(); + } + + IDXGIFactory2* pDxgiFactory = NULL; + hr = CreateDXGIFactory2(params.enableDebugRuntime ? DXGI_CREATE_FACTORY_DEBUG : 0, IID_PPV_ARGS(&pDxgiFactory)); + HR_RETURN(hr); + + IDXGIAdapter* pAdapter = NULL; +#if 0 + UINT nAdapter = 0; + while(SUCCEEDED(pDxgiFactory->EnumAdapters(nAdapter, &pAdapter))) + { + DXGI_ADAPTER_DESC adapterDesc; + pAdapter->GetDesc(&adapterDesc); + OutputDebugStringW(adapterDesc.Description); + nAdapter++; + //break; + } +#endif + + hr = D3D12CreateDevice( + pAdapter, + params.featureLevel, + IID_PPV_ARGS(&m_Device12)); + HR_RETURN(hr); + + LUID deviceLuid = m_Device12->GetAdapterLuid(); + UINT nAdapter = 0; + while(SUCCEEDED(pDxgiFactory->EnumAdapters(nAdapter, &pAdapter))) + { + DXGI_ADAPTER_DESC adapterDesc; + pAdapter->GetDesc(&adapterDesc); + + if (deviceLuid.HighPart == adapterDesc.AdapterLuid.HighPart && + deviceLuid.LowPart == adapterDesc.AdapterLuid.LowPart) + { + m_DxgiAdapter = pAdapter; + break; + } + else + pAdapter->Release(); + } + + D3D12_COMMAND_QUEUE_DESC queueDesc; + ZeroMemory(&queueDesc, sizeof(queueDesc)); + queueDesc.Flags = D3D12_COMMAND_QUEUE_FLAG_NONE; + queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT; + queueDesc.NodeMask = 1; + hr = m_Device12->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(&m_DefaultQueue)); + HR_RETURN(hr); + + m_FullScreenDesc = {}; + m_FullScreenDesc.RefreshRate.Numerator = params.refreshRate; + m_FullScreenDesc.RefreshRate.Denominator = 1; + m_FullScreenDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE; + m_FullScreenDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; + m_FullScreenDesc.Windowed = !params.startFullscreen; + + IDXGISwapChain1* pSwapChain1 = NULL; + hr = pDxgiFactory->CreateSwapChainForHwnd(m_DefaultQueue, m_hWnd, &m_SwapChainDesc, &m_FullScreenDesc, NULL, &pSwapChain1); + HR_RETURN(hr); + + hr = pSwapChain1->QueryInterface(IID_PPV_ARGS(&m_SwapChain)); + pSwapChain1->Release(); + HR_RETURN(hr); + + + D3D12_DESCRIPTOR_HEAP_DESC heapDesc; + ZeroMemory(&heapDesc, sizeof(heapDesc)); + heapDesc.NumDescriptors = m_SwapChainDesc.BufferCount; + heapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV; + hr = m_Device12->CreateDescriptorHeap(&heapDesc, IID_PPV_ARGS(&m_DescHeapRTV)); + HR_RETURN(hr); + + V_RETURN( CreateRenderTargets() ); + + hr = m_Device12->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&m_FrameFence)); + HR_RETURN(hr); + + for(UINT bufferIndex = 0; bufferIndex < m_SwapChainDesc.BufferCount; bufferIndex++) + { + m_FrameFenceEvents.push_back( CreateEvent(NULL, false, true, NULL) ); + } + + DeviceCreated(); + BackBufferResized(); + + return S_OK; +} + +void +DeviceManager::Shutdown() +{ + for(auto fenceEvent : m_FrameFenceEvents) + { + WaitForSingleObject(fenceEvent, INFINITE); + CloseHandle(fenceEvent); + } + + m_FrameFenceEvents.clear(); + + if(m_SwapChain && GetWindowState() == kWindowFullscreen) + m_SwapChain->SetFullscreenState(false, NULL); + + DeviceDestroyed(); + + for(auto& buffer : m_SwapChainBuffers) + SAFE_RELEASE(buffer); + + SAFE_RELEASE(m_FrameFence); + + SAFE_RELEASE(m_DefaultCommandAllocator); + SAFE_RELEASE(m_PreRenderCommandList); + SAFE_RELEASE(m_PostRenderCommandList); + + SAFE_RELEASE(m_DescHeapRTV); + + SAFE_RELEASE(m_SwapChain); + SAFE_RELEASE(m_DefaultQueue); + SAFE_RELEASE(m_Device12); + + if(m_hWnd) + { + DestroyWindow(m_hWnd); + m_hWnd = NULL; + } +} + +HRESULT +DeviceManager::CreateRenderTargets() +{ + HRESULT hr; + + m_SwapChainBuffers.resize(m_SwapChainDesc.BufferCount); + m_SwapChainRTVs.resize(m_SwapChainDesc.BufferCount); + D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor = m_DescHeapRTV->GetCPUDescriptorHandleForHeapStart(); + + for(UINT n = 0; n < m_SwapChainDesc.BufferCount; n++) + { + V_RETURN( m_SwapChain->GetBuffer(n, IID_PPV_ARGS(&m_SwapChainBuffers[n])) ); + + m_Device12->CreateRenderTargetView(m_SwapChainBuffers[n], NULL, cpuDescriptor); + m_SwapChainRTVs[n] = cpuDescriptor; + + cpuDescriptor.ptr += m_Device12->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV); + } + + return S_OK; +} + +HRESULT DeviceManager::CreatePrePostRenderCommandLists() +{ + HRESULT hr; + + if (!m_DefaultCommandAllocator) + { + hr = m_Device12->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&m_DefaultCommandAllocator)); + HR_RETURN(hr); + } + + if (!m_PreRenderCommandList) + { + hr = m_Device12->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, m_DefaultCommandAllocator, NULL, IID_PPV_ARGS(&m_PreRenderCommandList)); + HR_RETURN(hr); + } + else + m_PreRenderCommandList->Reset(m_DefaultCommandAllocator, nullptr); + + SetResourceBarrier(m_PreRenderCommandList, m_SwapChainBuffers[m_BufferIndex], D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_RENDER_TARGET); + if(m_EnableRenderTargetClear) + { + m_PreRenderCommandList->ClearRenderTargetView(m_SwapChainRTVs[m_BufferIndex], m_RenderTargetClearColor, 0, NULL); + } + m_PreRenderCommandList->Close(); + + + if (!m_PostRenderCommandList) + { + hr = m_Device12->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, m_DefaultCommandAllocator, NULL, IID_PPV_ARGS(&m_PostRenderCommandList)); + HR_RETURN(hr); + } + else + m_PostRenderCommandList->Reset(m_DefaultCommandAllocator, nullptr); + + SetResourceBarrier(m_PostRenderCommandList, m_SwapChainBuffers[m_BufferIndex], D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT); + m_PostRenderCommandList->Close(); + + return S_OK; +} + +bool +DeviceManager::OneFrame(double fElapsedTimeSeconds) +{ + if(!m_SwapChain || GetWindowState() == kWindowMinimized) + return false; + + Animate(fElapsedTimeSeconds); + + TestDeviceRemoval(); + + DXGI_SWAP_CHAIN_DESC1 newSwapChainDesc; + DXGI_SWAP_CHAIN_FULLSCREEN_DESC newFullScreenDesc; + if(SUCCEEDED(m_SwapChain->GetDesc1(&newSwapChainDesc)) && SUCCEEDED(m_SwapChain->GetFullscreenDesc(&newFullScreenDesc))) + { + if(m_FullScreenDesc.Windowed != newFullScreenDesc.Windowed) + { + ReleaseRenderTargets(); + m_SwapChain->ResizeBuffers(newSwapChainDesc.BufferCount, newSwapChainDesc.Width, newSwapChainDesc.Height, newSwapChainDesc.Format, newSwapChainDesc.Flags); + CreateRenderTargets(); + } + + m_FullScreenDesc = newFullScreenDesc; + m_SwapChainDesc = newSwapChainDesc; + } + + m_BufferIndex = m_SwapChain->GetCurrentBackBufferIndex(); + CreatePrePostRenderCommandLists(); + + WaitForSingleObject(m_FrameFenceEvents[m_BufferIndex], INFINITE); + + m_DefaultQueue->ExecuteCommandLists(1, (ID3D12CommandList**)&m_PreRenderCommandList); + + TestDeviceRemoval(); + + // rendering back-to-front + for(auto it = m_vControllers.rbegin(); it != m_vControllers.rend(); it++) + { + if((*it)->IsEnabled()) + { + (*it)->Render(m_SwapChainRTVs[m_BufferIndex]); + } + } + + m_DefaultQueue->ExecuteCommandLists(1, (ID3D12CommandList**)&m_PostRenderCommandList); + + m_SwapChain->Present(m_SyncInterval, 0); + + TestDeviceRemoval(); + + m_FrameFence->SetEventOnCompletion(m_FrameCount, m_FrameFenceEvents[m_BufferIndex]); + m_DefaultQueue->Signal(m_FrameFence, m_FrameCount); + + m_FrameCount++; + return true; +} + +void +DeviceManager::MessageLoop() +{ + MSG msg = {0}; + + LARGE_INTEGER perfFreq, previousTime; + QueryPerformanceFrequency(&perfFreq); + QueryPerformanceCounter(&previousTime); + + while (WM_QUIT != msg.message) + { + if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + else + { + LARGE_INTEGER newTime; + QueryPerformanceCounter(&newTime); + + double elapsedSeconds = (m_FixedFrameInterval >= 0) + ? m_FixedFrameInterval + : (double)(newTime.QuadPart - previousTime.QuadPart) / (double)perfFreq.QuadPart; + + if(OneFrame(elapsedSeconds)) + { + Sleep(0); + } + else + { + // Release CPU resources when idle + Sleep(1); + } + + { + m_vFrameTimes.push_back(elapsedSeconds); + double timeSum = 0; + for(auto it = m_vFrameTimes.begin(); it != m_vFrameTimes.end(); it++) + timeSum += *it; + + if(timeSum > m_AverageTimeUpdateInterval) + { + m_AverageFrameTime = timeSum / (double)m_vFrameTimes.size(); + m_vFrameTimes.clear(); + + //char buf[256]; + //sprintf_s(buf, "Average FPS: %.2f\n", 1.f / m_AverageFrameTime); + //OutputDebugStringA(buf); + } + } + + previousTime = newTime; + } + } +} + +LRESULT +DeviceManager::MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + switch(uMsg) + { + case WM_DESTROY: + case WM_CLOSE: + PostQuitMessage(0); + return 0; + + case WM_SYSKEYDOWN: + if(wParam == VK_F4) + { + PostQuitMessage(0); + return 0; + } + break; + + case WM_ENTERSIZEMOVE: + m_InSizingModalLoop = true; + m_NewWindowSize.cx = m_SwapChainDesc.Width; + m_NewWindowSize.cy = m_SwapChainDesc.Height; + break; + + case WM_EXITSIZEMOVE: + m_InSizingModalLoop = false; + ResizeSwapChain(true); + break; + + case WM_SIZE: + // Ignore the WM_SIZE event if there is no device, + // or if the window has been minimized (size == 0), + // or if it has been restored to the previous size (this part is tested inside ResizeSwapChain) + if (m_Device12 && (lParam != 0)) + { + m_NewWindowSize.cx = LOWORD(lParam); + m_NewWindowSize.cy = HIWORD(lParam); + + if(!m_InSizingModalLoop) + ResizeSwapChain(true); + } + } + + if( uMsg >= WM_MOUSEFIRST && uMsg <= WM_MOUSELAST || + uMsg >= WM_KEYFIRST && uMsg <= WM_KEYLAST ) + { + // processing messages front-to-back + for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) + { + if((*it)->IsEnabled()) + { + // for kb/mouse messages, 0 means the message has been handled + if(0 == (*it)->MsgProc(hWnd, uMsg, wParam, lParam)) + return 0; + } + } + } + + return DefWindowProc(hWnd, uMsg, wParam, lParam); +} + +void +DeviceManager::ResizeSwapChain(bool releaseRenderTargets) +{ + if(m_NewWindowSize.cx == (LONG)m_SwapChainDesc.Width && + m_NewWindowSize.cy == (LONG)m_SwapChainDesc.Height) + return; + + m_SwapChainDesc.Width = m_NewWindowSize.cx; + m_SwapChainDesc.Height = m_NewWindowSize.cy; + + if (m_SwapChain) + { + if(releaseRenderTargets) + ReleaseRenderTargets(); + + // Resize the swap chain + m_SwapChain->ResizeBuffers(m_SwapChainDesc.BufferCount, m_SwapChainDesc.Width, + m_SwapChainDesc.Height, m_SwapChainDesc.Format, + m_SwapChainDesc.Flags); + + CreateRenderTargets(); + + // Notify the controllers + BackBufferResized(); + } +} + +void DeviceManager::ReleaseRenderTargets() +{ + if(m_FrameFenceEvents.size() == 0) + return; + + // Make sure that all frames have finished rendering + WaitForMultipleObjects(DWORD(m_FrameFenceEvents.size()), &m_FrameFenceEvents[0], true, INFINITE); + + // Set the events so that WaitForSingleObject in OneFrame will not hang later + for(auto e : m_FrameFenceEvents) + SetEvent(e); + + // Release the old buffers because ResizeBuffers requires that + for(auto& buffer : m_SwapChainBuffers) + SAFE_RELEASE(buffer); + + m_SwapChainBuffers.clear(); + m_SwapChainRTVs.clear(); +} + +void DeviceManager::TestDeviceRemoval() +{ + if(m_Device12 == NULL) + return; + + HRESULT hr = m_Device12->GetDeviceRemovedReason(); + + if(SUCCEEDED(hr)) + return; + + char buf[256]; + sprintf_s(buf, "D3D12 Device Removed! Error code = 0x%08x. Terminating the process.\n", hr); + OutputDebugStringA(buf); + + ExitProcess(1); +} + +void +DeviceManager::Animate(double fElapsedTimeSeconds) +{ + // front-to-back, but the order shouldn't matter + for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) + { + if((*it)->IsEnabled()) + { + (*it)->Animate(fElapsedTimeSeconds); + } + } +} + +void +DeviceManager::DeviceCreated() +{ + // creating resources front-to-back + for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) + { + (*it)->DeviceCreated(); + } +} + +void +DeviceManager::DeviceDestroyed() +{ + // releasing resources back-to-front + for(auto it = m_vControllers.rbegin(); it != m_vControllers.rend(); it++) + { + (*it)->DeviceDestroyed(); + } +} + +void +DeviceManager::BackBufferResized() +{ + if(m_SwapChain == NULL) + return; + + for(auto it = m_vControllers.begin(); it != m_vControllers.end(); it++) + { + (*it)->BackBufferResized(m_SwapChainDesc.Width, m_SwapChainDesc.Height, m_SwapChainDesc.SampleDesc.Count); + } +} + +HRESULT +DeviceManager::ChangeBackBufferFormat(DXGI_FORMAT format, UINT sampleCount) +{ + HRESULT hr = E_FAIL; + + if((format == DXGI_FORMAT_UNKNOWN || format == m_SwapChainDesc.Format) && + (sampleCount == 0 || sampleCount == m_SwapChainDesc.SampleDesc.Count)) + return S_FALSE; + + if(m_Device12) + { + bool fullscreen = (GetWindowState() == kWindowFullscreen); + if(fullscreen) + m_SwapChain->SetFullscreenState(false, NULL); + + IDXGISwapChain1* newSwapChain = NULL; + DXGI_SWAP_CHAIN_DESC1 newSwapChainDesc = m_SwapChainDesc; + + if(format != DXGI_FORMAT_UNKNOWN) + newSwapChainDesc.Format = format; + if(sampleCount != 0) + newSwapChainDesc.SampleDesc.Count = sampleCount; + + IDXGIAdapter* pDXGIAdapter = GetDXGIAdapter(); + + IDXGIFactory2* pDXGIFactory = NULL; + pDXGIAdapter->GetParent(IID_PPV_ARGS(&pDXGIFactory)); + + hr = pDXGIFactory->CreateSwapChainForHwnd(m_Device12, m_hWnd, &newSwapChainDesc, NULL, NULL, &newSwapChain); + + pDXGIFactory->Release(); + pDXGIAdapter->Release(); + + if (FAILED(hr)) + { + if(fullscreen) + m_SwapChain->SetFullscreenState(true, NULL); + + return hr; + } + + SAFE_RELEASE(m_SwapChain); + + newSwapChain->QueryInterface(IID_PPV_ARGS(&m_SwapChain)); + SAFE_RELEASE(newSwapChain); + + m_SwapChainDesc = newSwapChainDesc; + + if(fullscreen) + m_SwapChain->SetFullscreenState(true, NULL); + + CreateRenderTargets(); + BackBufferResized(); + } + + return S_OK; +} + +void +DeviceManager::AddControllerToFront(IVisualController* pController) +{ + m_vControllers.remove(pController); + m_vControllers.push_front(pController); +} + +void +DeviceManager::AddControllerToBack(IVisualController* pController) +{ + m_vControllers.remove(pController); + m_vControllers.push_back(pController); +} + +void +DeviceManager::RemoveController(IVisualController* pController) +{ + m_vControllers.remove(pController); +} + +HRESULT +DeviceManager::ResizeWindow(int width, int height) +{ + if(m_SwapChain == NULL) + return E_FAIL; + + RECT rect; + GetWindowRect(m_hWnd, &rect); + + ShowWindow(m_hWnd, SW_RESTORE); + + if(!MoveWindow(m_hWnd, rect.left, rect.top, width, height, true)) + return E_FAIL; + + // No need to call m_SwapChain->ResizeBackBuffer because MoveWindow will send WM_SIZE, which calls that function. + + return S_OK; +} + +HRESULT DeviceManager::SetFullScreenState(bool fullscreen) +{ + if(m_SwapChain == NULL) + return E_FAIL; + + return m_SwapChain->SetFullscreenState(fullscreen, NULL); +} + +HRESULT +DeviceManager::ToggleFullScreen() +{ + return SetFullScreenState(GetWindowState() != kWindowFullscreen); +} + +DeviceManager::WindowState +DeviceManager::GetWindowState() +{ + if(m_SwapChain && !m_FullScreenDesc.Windowed) + return kWindowFullscreen; + + if(m_hWnd == INVALID_HANDLE_VALUE) + return kWindowNone; + + if(IsZoomed(m_hWnd)) + return kWindowMaximized; + + if(IsIconic(m_hWnd)) + return kWindowMinimized; + + return kWindowNormal; +} + +HRESULT +DeviceManager::GetDisplayResolution(int& width, int& height) +{ + if(m_hWnd != INVALID_HANDLE_VALUE) + { + HMONITOR monitor = MonitorFromWindow(m_hWnd, MONITOR_DEFAULTTOPRIMARY); + MONITORINFO info; + info.cbSize = sizeof(MONITORINFO); + + if(GetMonitorInfo(monitor, &info)) + { + width = info.rcMonitor.right - info.rcMonitor.left; + height = info.rcMonitor.bottom - info.rcMonitor.top; + return S_OK; + } + } + + return E_FAIL; +} + +IDXGIAdapter* +DeviceManager::GetDXGIAdapter() +{ + if(m_DxgiAdapter) + m_DxgiAdapter->AddRef(); + + return m_DxgiAdapter; +} + +void DeviceManager::SetPrimaryRenderTargetClearColor(bool enableClear, const float * pColor) +{ + m_EnableRenderTargetClear = enableClear; + + if(pColor) + memcpy(m_RenderTargetClearColor, pColor, sizeof(float) * 4); +} diff --git a/samples/dual_layer/D3D12/src/DeviceManager12.h b/samples/dual_layer/D3D12/src/DeviceManager12.h new file mode 100644 index 0000000..595e60d --- /dev/null +++ b/samples/dual_layer/D3D12/src/DeviceManager12.h @@ -0,0 +1,198 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include +#include +#include +#include +#include + +#ifndef SAFE_RELEASE +#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } } +#endif + +struct DeviceCreationParameters +{ + bool startMaximized; + bool startFullscreen; + int windowPosX; + int windowPosY; + int backBufferWidth; + int backBufferHeight; + int refreshRate; + int swapChainBufferCount; + DXGI_FORMAT swapChainFormat; + DXGI_USAGE swapChainUsage; + int swapChainSampleCount; + D3D_DRIVER_TYPE driverType; + D3D_FEATURE_LEVEL featureLevel; + bool enableDebugRuntime; + + DeviceCreationParameters() + : startMaximized(false) + , startFullscreen(false) + , windowPosX(CW_USEDEFAULT) + , windowPosY(CW_USEDEFAULT) + , backBufferWidth(1280) + , backBufferHeight(720) + , refreshRate(0) + , swapChainBufferCount(2) + , swapChainFormat(DXGI_FORMAT_R8G8B8A8_UNORM) + , swapChainUsage(DXGI_USAGE_SHADER_INPUT | DXGI_USAGE_RENDER_TARGET_OUTPUT) + , swapChainSampleCount(1) + , driverType(D3D_DRIVER_TYPE_HARDWARE) + , featureLevel(D3D_FEATURE_LEVEL_11_0) + , enableDebugRuntime(false) + { } +}; + +typedef D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView; + +#pragma warning(push) +#pragma warning(disable: 4100) // unreferenced formal parameter +class IVisualController +{ +private: + bool m_Enabled; +public: + IVisualController() : m_Enabled(true) { } + + virtual LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { return 1; } + virtual void Render(RenderTargetView RTV) { } + virtual void Animate(double fElapsedTimeSeconds) { } + virtual HRESULT DeviceCreated() { return S_OK; } + virtual void DeviceDestroyed() { } + virtual void BackBufferResized(uint32_t width, uint32_t height, uint32_t sampleCount) { } + + virtual void EnableController() { m_Enabled = true; } + virtual void DisableController() { m_Enabled = false; } + virtual bool IsEnabled() { return m_Enabled; } +}; +#pragma warning(pop) + + +void SetResourceBarrier(ID3D12GraphicsCommandList* commandList, + ID3D12Resource* res, + D3D12_RESOURCE_STATES before, + D3D12_RESOURCE_STATES after); + +void SetUavBarrier(ID3D12GraphicsCommandList* commandList, ID3D12Resource* res); + +class DeviceManager +{ +public: + enum WindowState + { + kWindowNone, + kWindowNormal, + kWindowMinimized, + kWindowMaximized, + kWindowFullscreen + }; + +protected: + ID3D12Device* m_Device12; + ID3D12CommandQueue* m_DefaultQueue; + IDXGISwapChain3* m_SwapChain; + DXGI_SWAP_CHAIN_DESC1 m_SwapChainDesc; + DXGI_SWAP_CHAIN_FULLSCREEN_DESC m_FullScreenDesc; + ID3D12CommandAllocator* m_DefaultCommandAllocator; + ID3D12GraphicsCommandList* m_PreRenderCommandList; + ID3D12GraphicsCommandList* m_PostRenderCommandList; + ID3D12DescriptorHeap* m_DescHeapRTV; + IDXGIAdapter* m_DxgiAdapter; + HWND m_hWnd; + std::list m_vControllers; + std::wstring m_WindowTitle; + double m_FixedFrameInterval; + UINT m_SyncInterval; + std::list m_vFrameTimes; + double m_AverageFrameTime; + double m_AverageTimeUpdateInterval; + bool m_InSizingModalLoop; + SIZE m_NewWindowSize; + std::vector m_SwapChainBuffers; + std::vector m_SwapChainRTVs; + ID3D12Fence* m_FrameFence; + std::vector m_FrameFenceEvents; + int m_BufferIndex; + UINT64 m_FrameCount; + bool m_EnableRenderTargetClear; + float m_RenderTargetClearColor[4]; +private: + HRESULT CreateRenderTargets(); + HRESULT CreatePrePostRenderCommandLists(); + void ResizeSwapChain(bool releaseRenderTargets); + void ReleaseRenderTargets(); + void TestDeviceRemoval(); +public: + + DeviceManager() + : m_Device12(NULL) + , m_DefaultQueue(NULL) + , m_SwapChain(NULL) + , m_hWnd(NULL) + , m_WindowTitle(L"") + , m_FixedFrameInterval(-1) + , m_InSizingModalLoop(false) + , m_SyncInterval(0) + , m_AverageFrameTime(0) + , m_AverageTimeUpdateInterval(0.5) + , m_DefaultCommandAllocator(NULL) + , m_PreRenderCommandList(NULL) + , m_PostRenderCommandList(NULL) + , m_DescHeapRTV(NULL) + , m_DxgiAdapter(NULL) + , m_BufferIndex(0) + , m_FrameCount(1) + , m_FrameFence(NULL) + { } + + virtual ~DeviceManager() + { + Shutdown(); + } + + virtual HRESULT CreateWindowDeviceAndSwapChain(const DeviceCreationParameters& params, LPWSTR windowTitle); + virtual HRESULT ChangeBackBufferFormat(DXGI_FORMAT format, UINT sampleCount); + virtual HRESULT ResizeWindow(int width, int height); + virtual HRESULT SetFullScreenState(bool fullscreen); + virtual HRESULT ToggleFullScreen(); + + virtual void Shutdown(); + virtual void MessageLoop(); + virtual bool OneFrame(double fElapsedTimeSeconds); + virtual LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); + virtual void Animate(double fElapsedTimeSeconds); + virtual void DeviceCreated(); + virtual void DeviceDestroyed(); + virtual void BackBufferResized(); + + void AddControllerToFront(IVisualController* pController); + void AddControllerToBack(IVisualController* pController); + void RemoveController(IVisualController* pController); + + void SetFixedFrameInterval(double seconds) { m_FixedFrameInterval = seconds; } + void DisableFixedFrameInterval() { m_FixedFrameInterval = -1; } + + HWND GetHWND() { return m_hWnd; } + ID3D12Device* GetDevice() { return m_Device12; } + ID3D12CommandQueue* GetDefaultQueue() { return m_DefaultQueue; } + ID3D12Resource* GetCurrentBackBuffer() { return m_SwapChainBuffers[m_BufferIndex]; } + WindowState GetWindowState(); + bool GetVsyncEnabled() { return m_SyncInterval > 0; } + void SetVsyncEnabled(bool enabled) { m_SyncInterval = enabled ? 1 : 0; } + HRESULT GetDisplayResolution(int& width, int& height); + IDXGIAdapter* GetDXGIAdapter(); + double GetAverageFrameTime() { return m_AverageFrameTime; } + void SetAverageTimeUpdateInterval(double value) { m_AverageTimeUpdateInterval = value; } + void SetPrimaryRenderTargetClearColor(bool enableClear, const float* pColor); +}; diff --git a/samples/dual_layer/D3D12/src/GPUTimers.cpp b/samples/dual_layer/D3D12/src/GPUTimers.cpp new file mode 100644 index 0000000..7cb0eac --- /dev/null +++ b/samples/dual_layer/D3D12/src/GPUTimers.cpp @@ -0,0 +1,132 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "GPUTimers.h" +#include + +#ifndef SAFE_RELEASE +#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p)=NULL; } } +#endif + +#ifndef SAFE_D3D_CALL +#define SAFE_D3D_CALL(x) { if (x != S_OK) assert(0); } +#endif + +//-------------------------------------------------------------------------------- +void GPUTimers::Create(ID3D12Device* pD3DDevice, ID3D12CommandQueue* pQueue, UINT NumTimers) +{ + m_pQueue = pQueue; + m_Timers.resize(NumTimers); + + D3D12_QUERY_HEAP_DESC queryHeapDesc{}; + queryHeapDesc.Type = D3D12_QUERY_HEAP_TYPE_TIMESTAMP; + queryHeapDesc.Count = NumTimers * 2; + SAFE_D3D_CALL( pD3DDevice->CreateQueryHeap(&queryHeapDesc, IID_PPV_ARGS(&m_pQueryHeap)) ); + + D3D12_HEAP_PROPERTIES heapProperties{}; + heapProperties.Type = D3D12_HEAP_TYPE_READBACK; + heapProperties.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; + heapProperties.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; + heapProperties.CreationNodeMask = 0; + heapProperties.VisibleNodeMask = 0; + + D3D12_RESOURCE_DESC resourceDesc{}; + resourceDesc.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER; + resourceDesc.Alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT; + resourceDesc.Width = NumTimers * sizeof(UINT64) * 2; + resourceDesc.Height = 1; + resourceDesc.DepthOrArraySize = 1; + resourceDesc.MipLevels = 1; + resourceDesc.Format = DXGI_FORMAT_UNKNOWN; + resourceDesc.SampleDesc.Count = 1; + resourceDesc.SampleDesc.Quality = 0; + resourceDesc.Layout = D3D12_TEXTURE_LAYOUT_ROW_MAJOR; + resourceDesc.Flags = D3D12_RESOURCE_FLAG_NONE; + + SAFE_D3D_CALL( pD3DDevice->CreateCommittedResource(&heapProperties, D3D12_HEAP_FLAG_NONE, &resourceDesc, D3D12_RESOURCE_STATE_COPY_DEST, nullptr, IID_PPV_ARGS(&m_pQueryResults)) ); + + for (UINT i = 0; i < m_Timers.size(); ++i) + { + m_Timers[i].TimestampQueryInFlight = false; + } +} + +//-------------------------------------------------------------------------------- +void GPUTimers::Release() +{ + SAFE_RELEASE(m_pQueryHeap); + SAFE_RELEASE(m_pQueryResults); + m_Timers.clear(); +} + +//-------------------------------------------------------------------------------- +void GPUTimers::BeginFrame(ID3D12GraphicsCommandList* pCommandList) +{ + +} + +//-------------------------------------------------------------------------------- +void GPUTimers::EndFrame(ID3D12GraphicsCommandList* pCommandList) +{ + UINT64 timestampFrequency; + m_pQueue->GetTimestampFrequency(×tampFrequency); + + double InvFrequencyMS = 1000.0 / (double)timestampFrequency; + pCommandList->ResolveQueryData(m_pQueryHeap, D3D12_QUERY_TYPE_TIMESTAMP, 0, (UINT)m_Timers.size() * 2, m_pQueryResults, 0); + + UINT64* queryResults = nullptr; + m_pQueryResults->Map(0, nullptr, (void**)&queryResults); + + for (UINT i = 0; i < m_Timers.size(); ++i) + { + if (m_Timers[i].TimestampQueryInFlight) + { + UINT64 TimestampValueBegin = queryResults[i * 2]; + UINT64 TimestampValueEnd = queryResults[i * 2 + 1]; + m_Timers[i].TimestampQueryInFlight = false; + m_Timers[i].GPUTimeInMS = float(double(TimestampValueEnd - TimestampValueBegin) * InvFrequencyMS); + } + else + { + m_Timers[i].GPUTimeInMS = 0.f; + } + } + m_pQueryResults->Unmap(0, nullptr); +} + +//-------------------------------------------------------------------------------- +void GPUTimers::StartTimer(ID3D12GraphicsCommandList* pCommandList, UINT i) +{ + if (!m_Timers[i].TimestampQueryInFlight) + { + pCommandList->EndQuery(m_pQueryHeap, D3D12_QUERY_TYPE_TIMESTAMP, i * 2); + } +} + +//-------------------------------------------------------------------------------- +void GPUTimers::StopTimer(ID3D12GraphicsCommandList* pCommandList, UINT i) +{ + if (!m_Timers[i].TimestampQueryInFlight) + { + pCommandList->EndQuery(m_pQueryHeap, D3D12_QUERY_TYPE_TIMESTAMP, i * 2 + 1); + } + m_Timers[i].TimestampQueryInFlight = true; +} + +//-------------------------------------------------------------------------------- +float GPUTimers::GetGPUTimeInMS(UINT i) +{ + if (i < m_Timers.size()) + { + return m_Timers[i].GPUTimeInMS; + } + assert(0); + return 0.f; +} diff --git a/samples/dual_layer/D3D12/src/GPUTimers.h b/samples/dual_layer/D3D12/src/GPUTimers.h new file mode 100644 index 0000000..ead7b87 --- /dev/null +++ b/samples/dual_layer/D3D12/src/GPUTimers.h @@ -0,0 +1,68 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#pragma warning( disable : 4995 ) +#include +#include + +typedef int RenderTimeId; + +//-------------------------------------------------------------------------------- +struct GPUTimerState +{ + bool TimestampQueryInFlight; + float GPUTimeInMS; +}; + +//-------------------------------------------------------------------------------- +class GPUTimers +{ +public: + void Create(ID3D12Device* pD3DDevice, ID3D12CommandQueue* pQueue, UINT NumTimers); + void Release(); + + void BeginFrame(ID3D12GraphicsCommandList* pCommandList); + void EndFrame(ID3D12GraphicsCommandList* pCommandList); + + void StartTimer(ID3D12GraphicsCommandList* pCommandList, UINT Id); + void StopTimer(ID3D12GraphicsCommandList* pCommandList, UINT Id); + + float GetGPUTimeInMS(UINT Id); + +protected: + ID3D12QueryHeap* m_pQueryHeap; + ID3D12Resource* m_pQueryResults; + ID3D12CommandQueue* m_pQueue; + + std::vector m_Timers; +}; + +//-------------------------------------------------------------------------------- +class GPUTimer +{ +public: + GPUTimer(GPUTimers* pGPUTimers, ID3D12GraphicsCommandList* pDeviceContext, RenderTimeId Id) + : m_pGPUTimers(pGPUTimers) + , m_pDeviceContext(pDeviceContext) + , m_RenderTimeId(Id) + { + m_pGPUTimers->StartTimer(m_pDeviceContext, m_RenderTimeId); + } + ~GPUTimer() + { + m_pGPUTimers->StopTimer(m_pDeviceContext, m_RenderTimeId); + } + +private: + GPUTimers* m_pGPUTimers; + ID3D12GraphicsCommandList* m_pDeviceContext; + RenderTimeId m_RenderTimeId; +}; diff --git a/samples/dual_layer/D3D12/src/HBAOSample.cpp b/samples/dual_layer/D3D12/src/HBAOSample.cpp new file mode 100644 index 0000000..104725c --- /dev/null +++ b/samples/dual_layer/D3D12/src/HBAOSample.cpp @@ -0,0 +1,143 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "HBAOSample.h" +#include "imgui/imgui.h" +#include + +// Library link for HBAO+ +#ifdef _WIN64 +#pragma comment(lib, "GFSDK_SSAO_D3D12.win64.lib") +#else +#pragma comment(lib, "GFSDK_SSAO_D3D12.win32.lib") +#endif + +#pragma comment(lib, "D3dcompiler.lib") + +void HBAOSample::RenderUI() +{ + bool show_ssao_window = true; + bool show_test_window = false; + + // Show SSAO property window + if (show_ssao_window) + { + ImGui::SetNextWindowPos(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); + ImGui::SetNextWindowSize(ImVec2(400, 300), ImGuiSetCond_FirstUseEver); + ImGui::Begin("HBAO+", &show_ssao_window); + + GFSDK_SSAO_Version Version; + GFSDK_SSAO_Status Status; + Status = GFSDK_SSAO_GetVersion(&Version); + assert(Status == GFSDK_SSAO_OK); + + ImGui::Text("HBAO+ %d.%d.%d.%d", Version.Major, Version.Minor, Version.Branch, Version.Revision); + + ImGui::Text("AO: %.2f ms/frame", mFrameTimeMs); + + float radius = mAOParameters.Radius; + ImGui::DragFloat("Radius", &radius, 0.05f, 0.0f, 100.0f); + if (radius != mAOParameters.Radius) + { + mAOParameters.Radius = radius; + int stop = 0; + stop = stop; + } + ImGui::DragFloat("PowerExponent", &mAOParameters.PowerExponent, 0.05f, 1.f, 8.f); + ImGui::DragFloat("Bias", &mAOParameters.Bias, 0.001f, 0, 0.5f); + + ImGui::DragFloat("SmallScaleAO", &mAOParameters.SmallScaleAO, 0.01f, 0.f, 2.f); + ImGui::DragFloat("LargeScaleAO", &mAOParameters.LargeScaleAO, 0.01f, 0.f, 2.f); + + bool BlurEnabled = mAOParameters.Blur.Enable ? true : false; + ImGui::Checkbox("Blur.Enable", &BlurEnabled); + mAOParameters.Blur.Enable = BlurEnabled; + + ImGui::DragFloat("Blur.Sharpness", &mAOParameters.Blur.Sharpness, 0.f, 0.f, 32.0f); + + { + const char* listbox_items[] = { "GFSDK_SSAO_FP16_VIEW_DEPTHS", "GFSDK_SSAO_FP32_VIEW_DEPTHS" }; + int listbox_item_current = (int)mAOParameters.DepthStorage; + ImGui::ListBox("DepthStorage", &listbox_item_current, listbox_items, ARRAYSIZE(listbox_items), 2); + mAOParameters.DepthStorage = (GFSDK_SSAO_DepthStorage)(listbox_item_current); + } + + { + bool DoubleLayerEnabled = mAOParameters.EnableDualLayerAO ? true : false; + ImGui::Checkbox("DualLayerAO", &DoubleLayerEnabled); + mAOParameters.EnableDualLayerAO = DoubleLayerEnabled; + } + ImGui::End(); + } + + // Show the ImGui test window. Most of the sample code is in ImGui::ShowTestWindow() + if (show_test_window) + { + ImGui::SetNextWindowPos(ImVec2(650, 20), ImGuiSetCond_FirstUseEver); // Normally user code doesn't need/want to call it because positions are saved in .ini file anyway. Here we just want to make the demo initial state a bit more friendly! + ImGui::ShowTestWindow(&show_test_window); + } + + ImGui::Render(); + + auto& io = ImGui::GetIO(); + + static float oldMouseX = io.MousePos.x; + static float oldMouseY = io.MousePos.y; + + if (io.MouseClicked[0]) + { + oldMouseX = io.MousePos.x; + oldMouseY = io.MousePos.y; + } + + if (!io.WantCaptureMouse && io.MouseDown[0]) + { + float mouseDeltaX = io.MousePos.x - oldMouseX; + oldMouseX = io.MousePos.x; + float mouseDeltaY = io.MousePos.y - oldMouseY; + oldMouseY = io.MousePos.y; + + const float kRotationDelta = 0.001f; + mCamera.AdvanceAngles(-mouseDeltaX * kRotationDelta, -mouseDeltaY * kRotationDelta); + } + + const float kMoveDelta = 0.01f; + if (io.KeysDown['W'] || io.KeysDown[VK_UP]) + { + mCamera.MoveForward(kMoveDelta); + } + if (io.KeysDown['S'] || io.KeysDown[VK_DOWN]) + { + mCamera.MoveForward(-kMoveDelta); + } + + if (io.KeysDown['D'] || io.KeysDown[VK_RIGHT]) + { + mCamera.MoveRight(kMoveDelta); + } + if (io.KeysDown['A'] || io.KeysDown[VK_LEFT]) + { + mCamera.MoveRight(-kMoveDelta); + } +} + +void HBAOSample::InitializeHBAOParameters() +{ + mAOParameters = {}; + + mAOParameters.Radius = 2.f; + mAOParameters.Bias = 0.2f; + mAOParameters.PowerExponent = 2.f; + mAOParameters.Blur.Enable = true; + mAOParameters.Blur.Sharpness = 32.f; + mAOParameters.Blur.Radius = GFSDK_SSAO_BLUR_RADIUS_4; + mAOParameters.DepthStorage = GFSDK_SSAO_FP32_VIEW_DEPTHS; + mAOParameters.EnableDualLayerAO = true; +} \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/HBAOSample.h b/samples/dual_layer/D3D12/src/HBAOSample.h new file mode 100644 index 0000000..1371f56 --- /dev/null +++ b/samples/dual_layer/D3D12/src/HBAOSample.h @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include "Scene.h" +#include "Camera.h" +#include "GFSDK_SSAO.h" + +enum GPUTimeId +{ + GPU_TIME_AO, + NUM_GPU_TIMES +}; + +class HBAOSample +{ +public: + virtual void Initialize() {}; + virtual void Run() = 0; + virtual void RenderUI(); + +protected: + void InitializeHBAOParameters(); + + Scene mScene; + Camera mCamera; + uint32_t mWindowWidth = 1280; + uint32_t mWindowHeight = 720; + float mFrameTimeMs = 0.0f; + GFSDK_SSAO_Parameters mAOParameters; +}; \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/HBAOSampleD3D12.cpp b/samples/dual_layer/D3D12/src/HBAOSampleD3D12.cpp new file mode 100644 index 0000000..cf10894 --- /dev/null +++ b/samples/dual_layer/D3D12/src/HBAOSampleD3D12.cpp @@ -0,0 +1,278 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "HBAOSampleD3D12.h" +#include "DeviceManager12.h" +#include "d3dx12.h" +#include "imgui/imgui.h" +#include "imgui/imgui_impl_dx12.h" +#include "GPUTimers.h" + +static const uint32_t kNumAppDescriptors = 2; +static const uint32_t kNumImguiDescriptors = 2; +static const uint32_t kNumTotalAppDescriptors = kNumImguiDescriptors + kNumAppDescriptors; + +GPUTimers gGPUTimers; + +void HBAOSampleD3D12::Initialize() +{ + DeviceCreationParameters deviceParams{}; + deviceParams.backBufferWidth = mWindowWidth; + deviceParams.backBufferHeight = mWindowHeight; + deviceParams.driverType = D3D_DRIVER_TYPE_HARDWARE; +#if ENABLE_DEBUG_RUNTIME + deviceParams.enableDebugRuntime = true; +#else + deviceParams.enableDebugRuntime = false; +#endif + deviceParams.featureLevel = D3D_FEATURE_LEVEL_11_0; + deviceParams.refreshRate = 0; + deviceParams.startFullscreen = false; + deviceParams.startMaximized = false; + deviceParams.swapChainBufferCount = 2; + deviceParams.swapChainFormat = DXGI_FORMAT_R8G8B8A8_UNORM; + deviceParams.swapChainUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + deviceParams.windowPosX = 0; + deviceParams.windowPosY = 0; + + mDeviceManager.CreateWindowDeviceAndSwapChain(deviceParams, L"HBAO+ D3D12 Sample"); + + mDeviceManager.AddControllerToBack(this); + + mDevice = mDeviceManager.GetDevice(); + + InitializeHBAOPlus(); + InitializeRenderTargets(); + + mDevice->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&mCommandAllocator)); + + mCommandQueue = mDeviceManager.GetDefaultQueue(); + mDevice->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, mCommandAllocator.Get(), nullptr, IID_PPV_ARGS(&mCommandList)); + + mDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&mFence)); + + ImGui_ImplDX12_Init(mDeviceManager.GetHWND(), mDevice, mCommandQueue, mCommandList.Get(), mSSAODescriptorHeapCBVSRVUAV.Get(), kNumAppDescriptors); + + gGPUTimers.Create(mDevice, mCommandQueue, NUM_GPU_TIMES); + mScene.InitializeDefault(); + mSceneRenderer.InitializeWithScene(mDevice, mScene); +} + +void HBAOSampleD3D12::Render(RenderTargetView RTV) +{ + gGPUTimers.BeginFrame(mCommandList.Get()); + D3D12_VIEWPORT viewport{}; + viewport.TopLeftX = 0; + viewport.TopLeftY = 0; + viewport.Width = (float)mWindowWidth; + viewport.Height = (float)mWindowHeight; + viewport.MinDepth = 0.0f; + viewport.MaxDepth = 1.0f; + + D3D12_RECT scissorRect{}; + scissorRect.left = 0; + scissorRect.right = mWindowWidth; + scissorRect.top = 0; + scissorRect.bottom = mWindowHeight; + + mCommandList->RSSetScissorRects(1, &scissorRect); + mCommandList->RSSetViewports(1, &viewport); + float color[4] = { 0.0f, 0.0f, 0.0f, 1.0f }; + mCommandList->ClearRenderTargetView(RTV, color, 0, nullptr); + mCommandList->ClearDepthStencilView(mDepthStencilView[0], D3D12_CLEAR_FLAG_DEPTH, 1.0f, 0, 0, nullptr); + mCommandList->ClearDepthStencilView(mDepthStencilView[1], D3D12_CLEAR_FLAG_DEPTH, 1.0f, 0, 0, nullptr); + + // 1. Render background meshes to mDepthStencilView[0] + mCommandList->OMSetRenderTargets(1, &RTV, TRUE, &mDepthStencilView[0]); + mSceneRenderer.RenderLayer(mCommandList.Get(), 0, mCamera); + + // 2. Copy mDepthStencilView[0] to mDepthStencilView[1] + if (mAOParameters.EnableDualLayerAO) + { + mCommandList->CopyResource(mDepthStencil[1].Get(), mDepthStencil[0].Get()); + } + + // 3. Render foreground meshes to mDepthStencilView[0] + mSceneRenderer.RenderLayer(mCommandList.Get(), 1, mCamera); + + GFSDK_SSAO_InputData_D3D12 InputData = {}; + InputData.DepthData.DepthTextureType = GFSDK_SSAO_HARDWARE_DEPTHS; + + if (mAOParameters.EnableDualLayerAO) + { + CD3DX12_GPU_DESCRIPTOR_HANDLE DepthSrvGpuHandle(mSSAODescriptorHeapCBVSRVUAV->GetGPUDescriptorHandleForHeapStart()); + InputData.DepthData.FullResDepthTextureSRV.pResource = mDepthStencil[0].Get(); + InputData.DepthData.FullResDepthTextureSRV.GpuHandle = DepthSrvGpuHandle.ptr; + + DepthSrvGpuHandle.Offset(1, mDevice->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV)); + InputData.DepthData.FullResDepthTexture2ndLayerSRV.pResource = mDepthStencil[1].Get(); + InputData.DepthData.FullResDepthTexture2ndLayerSRV.GpuHandle = DepthSrvGpuHandle.ptr; + } + else + { + CD3DX12_GPU_DESCRIPTOR_HANDLE DepthSrvGpuHandle(mSSAODescriptorHeapCBVSRVUAV->GetGPUDescriptorHandleForHeapStart()); + InputData.DepthData.FullResDepthTextureSRV.pResource = mDepthStencil[0].Get(); + InputData.DepthData.FullResDepthTextureSRV.GpuHandle = DepthSrvGpuHandle.ptr; + } + + // DepthData + InputData.DepthData.ProjectionMatrix.Data = GFSDK_SSAO_Float4x4((const GFSDK_SSAO_FLOAT*)&mCamera.mMatProj); + InputData.DepthData.ProjectionMatrix.Layout = GFSDK_SSAO_ROW_MAJOR_ORDER; + InputData.DepthData.MetersToViewSpaceUnits = 1.0f; + InputData.NormalData.Enable = false; + + GFSDK_SSAO_RenderMask RenderMask = GFSDK_SSAO_RENDER_AO; + + // Set SSAO descriptor heap + { + ID3D12DescriptorHeap* descHeaps[] = { mSSAODescriptorHeapCBVSRVUAV.Get() }; + mCommandList->SetDescriptorHeaps(ARRAYSIZE(descHeaps), descHeaps); + } + + GFSDK_SSAO_Output_D3D12 Output; + GFSDK_SSAO_RenderTargetView_D3D12 rtv{}; + rtv.pResource = mDeviceManager.GetCurrentBackBuffer(); + rtv.CpuHandle = RTV.ptr; + + Output.pRenderTargetView = &rtv; + + { + GPUTimer timer(&gGPUTimers, mCommandList.Get(), GPU_TIME_AO); + GFSDK_SSAO_Status status = mSSAOContext->RenderAO(mCommandQueue, mCommandList.Get(), InputData, mAOParameters, Output, RenderMask); + assert(status == GFSDK_SSAO_OK); + } + ImGui_ImplDX12_NewFrame(); + RenderUI(); + gGPUTimers.EndFrame(mCommandList.Get()); + mCommandList->Close(); + + + ID3D12CommandList* commandLists[] = { mCommandList.Get() }; + mCommandQueue->ExecuteCommandLists(1, commandLists); + mCommandQueue->Signal(mFence.Get(), ++mFenceValue); + + while (mFence->GetCompletedValue() != mFenceValue) + { + __nop(); + } + + mFrameTimeMs = gGPUTimers.GetGPUTimeInMS(GPU_TIME_AO); + mCommandAllocator->Reset(); + mCommandList->Reset(mCommandAllocator.Get(), nullptr); +} + +void HBAOSampleD3D12::BackBufferResized(uint32_t width, uint32_t height, uint32_t sampleCount) +{ + mWindowWidth = width; + mWindowHeight = height; + + mCamera.InitProjectionMatrix(width, height); + + InitializeRenderTargets(); +} + +bool HBAOSampleD3D12::InitializeHBAOPlus() +{ + InitializeHBAOParameters(); + + const UINT NodeMask = 1; + + GFSDK_SSAO_CustomHeap CustomHeap; + CustomHeap.new_ = ::operator new; + CustomHeap.delete_ = ::operator delete; + + D3D12_DESCRIPTOR_HEAP_DESC descriptorHeapDesc{}; + descriptorHeapDesc.NumDescriptors = kNumTotalAppDescriptors + GFSDK_SSAO_NUM_DESCRIPTORS_CBV_SRV_UAV_HEAP_D3D12; + descriptorHeapDesc.NodeMask = NodeMask; + descriptorHeapDesc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE; + descriptorHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV; + + mDevice->CreateDescriptorHeap(&descriptorHeapDesc, IID_PPV_ARGS(&mSSAODescriptorHeapCBVSRVUAV)); + + SIZE_T t0 = mSSAODescriptorHeapCBVSRVUAV->GetCPUDescriptorHandleForHeapStart().ptr; + + descriptorHeapDesc.NumDescriptors = GFSDK_SSAO_NUM_DESCRIPTORS_RTV_HEAP_D3D12; + descriptorHeapDesc.NodeMask = NodeMask; + descriptorHeapDesc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_NONE; + descriptorHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV; + + mDevice->CreateDescriptorHeap(&descriptorHeapDesc, IID_PPV_ARGS(&mSSAODescriptorHeapRTV)); + + + GFSDK_SSAO_DescriptorHeaps_D3D12 DescriptorHeaps; + + DescriptorHeaps.CBV_SRV_UAV.pDescHeap = mSSAODescriptorHeapCBVSRVUAV.Get(); + DescriptorHeaps.CBV_SRV_UAV.BaseIndex = kNumTotalAppDescriptors; + DescriptorHeaps.CBV_SRV_UAV.NumDescriptors = GFSDK_SSAO_NUM_DESCRIPTORS_CBV_SRV_UAV_HEAP_D3D12; + + DescriptorHeaps.RTV.pDescHeap = mSSAODescriptorHeapRTV.Get(); + DescriptorHeaps.RTV.BaseIndex = 0; + DescriptorHeaps.RTV.NumDescriptors = GFSDK_SSAO_NUM_DESCRIPTORS_RTV_HEAP_D3D12; + + GFSDK_SSAO_Status status = GFSDK_SSAO_CreateContext_D3D12(mDevice, NodeMask, DescriptorHeaps, &mSSAOContext, &CustomHeap); + assert(status == GFSDK_SSAO_OK); + return true; +} + +bool HBAOSampleD3D12::InitializeRenderTargets() +{ + CD3DX12_RESOURCE_DESC depthResourceDesc = CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_TEXTURE2D, 0, mWindowWidth, mWindowHeight, 1, 1, DXGI_FORMAT_R32_TYPELESS, 1, 0, D3D12_TEXTURE_LAYOUT_UNKNOWN, D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL); + for (uint32_t i = 0; i < 2; ++i) + { + mDevice->CreateCommittedResource(&CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), D3D12_HEAP_FLAG_NONE, &depthResourceDesc, D3D12_RESOURCE_STATE_DEPTH_WRITE, &CD3DX12_CLEAR_VALUE(DXGI_FORMAT_D32_FLOAT, 1.0f, 0), IID_PPV_ARGS(&mDepthStencil[i])); + } + + D3D12_DESCRIPTOR_HEAP_DESC dsvDescriptorHeapDesc{}; + dsvDescriptorHeapDesc.NumDescriptors = 2; + dsvDescriptorHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_DSV; + dsvDescriptorHeapDesc.NodeMask = 0; + dsvDescriptorHeapDesc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_NONE; + + mDevice->CreateDescriptorHeap(&dsvDescriptorHeapDesc, IID_PPV_ARGS(&mDSVDescriptorHeap)); + + for (uint32_t i = 0; i < 2; ++i) + { + mDepthStencilView[i] = CD3DX12_CPU_DESCRIPTOR_HANDLE(mDSVDescriptorHeap->GetCPUDescriptorHandleForHeapStart(), i, mDevice->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_DSV)); + D3D12_DEPTH_STENCIL_VIEW_DESC dsvDesc{}; + dsvDesc.Format = DXGI_FORMAT_D32_FLOAT; + dsvDesc.Flags = D3D12_DSV_FLAG_NONE; + dsvDesc.ViewDimension = D3D12_DSV_DIMENSION_TEXTURE2D; + dsvDesc.Texture2D.MipSlice = 0; + + mDevice->CreateDepthStencilView(mDepthStencil[i].Get(), &dsvDesc, mDepthStencilView[i]); + + D3D12_SHADER_RESOURCE_VIEW_DESC depthSRVDesc = {}; + + depthSRVDesc.Format = DXGI_FORMAT_R32_FLOAT; + depthSRVDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; + + depthSRVDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; + depthSRVDesc.Texture2D.MipLevels = 1; + depthSRVDesc.Texture2D.MostDetailedMip = 0; // No MIP + depthSRVDesc.Texture2D.PlaneSlice = 0; + depthSRVDesc.Texture2D.ResourceMinLODClamp = 0.0f; + mDepthSRV[i] = CD3DX12_CPU_DESCRIPTOR_HANDLE(mSSAODescriptorHeapCBVSRVUAV->GetCPUDescriptorHandleForHeapStart(), i, mDevice->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV)); + mDevice->CreateShaderResourceView(mDepthStencil[i].Get(), &depthSRVDesc, mDepthSRV[i]); + } + + return true; +} + +void HBAOSampleD3D12::Run() +{ + mDeviceManager.MessageLoop(); +} + +extern LRESULT ImGui_ImplDX12_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); + +LRESULT HBAOSampleD3D12::MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + return ImGui_ImplDX12_WndProcHandler(hWnd, uMsg, wParam, lParam); +} diff --git a/samples/dual_layer/D3D12/src/HBAOSampleD3D12.h b/samples/dual_layer/D3D12/src/HBAOSampleD3D12.h new file mode 100644 index 0000000..ad1a164 --- /dev/null +++ b/samples/dual_layer/D3D12/src/HBAOSampleD3D12.h @@ -0,0 +1,55 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include +#include "DeviceManager12.h" +#include +#include +#include "SceneRenderer.h" + +#include + +using namespace Microsoft::WRL; + +class HBAOSampleD3D12 : public HBAOSample, public IVisualController +{ +public: + void Initialize() override; + void Run() override; + + void Render(RenderTargetView RTV) override; + void BackBufferResized(uint32_t width, uint32_t height, uint32_t sampleCount) override; + +private: + bool InitializeHBAOPlus(); + bool InitializeRenderTargets(); + LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) override; + + DeviceManager mDeviceManager; + ComPtr mCommandAllocator; + ComPtr mCommandList; + ComPtr mDepthStencil[2]; + ComPtr mNormalsGBuffer; + D3D12_CPU_DESCRIPTOR_HANDLE mDepthStencilView[2]; + D3D12_CPU_DESCRIPTOR_HANDLE mDepthSRV[2]; + ComPtr mDSVDescriptorHeap; + ID3D12Device* mDevice = nullptr; + + ID3D12CommandQueue* mCommandQueue; + ComPtr mFence; + uint64_t mFenceValue = 0; + + SceneRenderer mSceneRenderer; + + ComPtr mSSAODescriptorHeapCBVSRVUAV; + ComPtr mSSAODescriptorHeapRTV; + GFSDK_SSAO_InputData_D3D12 mSSAOInputData; + GFSDK_SSAO_Context_D3D12* mSSAOContext; +}; \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/Main.cpp b/samples/dual_layer/D3D12/src/Main.cpp new file mode 100644 index 0000000..9e05bdf --- /dev/null +++ b/samples/dual_layer/D3D12/src/Main.cpp @@ -0,0 +1,20 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include +#include "HBAOSampleD3D12.h" + +INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nShowCmd) +{ + HBAOSampleD3D12 hbaoSample; + hbaoSample.Initialize(); + hbaoSample.Run(); + return 0; +} \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/Mesh.cpp b/samples/dual_layer/D3D12/src/Mesh.cpp new file mode 100644 index 0000000..10ef2ba --- /dev/null +++ b/samples/dual_layer/D3D12/src/Mesh.cpp @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "Mesh.h" + +#define TINYOBJLOADER_IMPLEMENTATION +#include "tiny_obj_loader.h" + +#include + +std::shared_ptr Mesh::LoadFromFile(const std::string& filename) +{ + std::shared_ptr mesh = std::make_shared(); + std::ifstream inputFile(filename); + tinyobj::attrib_t attrib; + std::vector shapes; + std::vector materials; + std::string err; + + tinyobj::LoadObj(&attrib, &shapes, &materials, &err, &inputFile, nullptr, true); + + if (shapes.size() == 0) + { + MessageBoxW(NULL, L"Mesh::LoadFromFile failed", L"Error!", MB_ICONEXCLAMATION | MB_OK); + } + + tinyobj::shape_t& shape = shapes[0]; + + + for (auto& index : shape.mesh.indices) + { + mesh->mIndices.push_back((uint32_t)index.vertex_index); + } + + Vertex vertex{}; + for (uint32_t i = 0; i < attrib.vertices.size() / 3; ++i) + { + memcpy(vertex.Position, &attrib.vertices[i * 3], sizeof(float) * 3); + mesh->mVertices.push_back(vertex); + } + return mesh; +} \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/Mesh.h b/samples/dual_layer/D3D12/src/Mesh.h new file mode 100644 index 0000000..4023c04 --- /dev/null +++ b/samples/dual_layer/D3D12/src/Mesh.h @@ -0,0 +1,31 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once + +#include +#include +#include +#include + +class Mesh +{ +public: + struct Vertex + { + float Position[3]; + }; + + static std::shared_ptr LoadFromFile(const std::string& filename); + +//protected: + std::vector mVertices; + std::vector mIndices; +}; \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/MeshRenderer.cpp b/samples/dual_layer/D3D12/src/MeshRenderer.cpp new file mode 100644 index 0000000..45e3c33 --- /dev/null +++ b/samples/dual_layer/D3D12/src/MeshRenderer.cpp @@ -0,0 +1,90 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "MeshRenderer.h" +#include "d3dx12.h" +#include + +#include "D3D12Mesh.h" +#include + +void MeshRenderer::Initialize(ID3D12Device* device) +{ + CD3DX12_ROOT_PARAMETER rootParameters[2]; + rootParameters[0].InitAsConstants(32, 0, 0, D3D12_SHADER_VISIBILITY_VERTEX); // MatView and MatViewProj; + rootParameters[1].InitAsConstants(16, 1, 0, D3D12_SHADER_VISIBILITY_VERTEX); // MatWorld; + + D3D12_ROOT_SIGNATURE_DESC rootSignatureDesc{}; + rootSignatureDesc.NumParameters = ARRAYSIZE(rootParameters); + rootSignatureDesc.pParameters = rootParameters; + rootSignatureDesc.Flags = D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT; + rootSignatureDesc.NumStaticSamplers = 0; + rootSignatureDesc.pStaticSamplers = nullptr; + ID3DBlob* rootSignatureBlob = nullptr; + D3D12SerializeRootSignature(&rootSignatureDesc, D3D_ROOT_SIGNATURE_VERSION_1, &rootSignatureBlob, nullptr); + device->CreateRootSignature(0, rootSignatureBlob->GetBufferPointer(), rootSignatureBlob->GetBufferSize(), IID_PPV_ARGS(&mRootSignature)); + + D3D12_INPUT_ELEMENT_DESC inputLayout[] = + { + {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D12_APPEND_ALIGNED_ELEMENT, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0} + }; + D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {}; + + ID3D10Blob* vs = nullptr; + ID3D10Blob* ps = nullptr; + ID3D10Blob* errors = nullptr; + + D3DCompileFromFile(L"..\\Media\\StaticMesh.hlsl", nullptr, nullptr, "VSMain", "vs_5_1", 0, 0, &vs, &errors); + D3DCompileFromFile(L"..\\Media\\StaticMesh.hlsl", nullptr, nullptr, "PSMain", "ps_5_1", 0, 0, &ps, &errors); + + psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; + psoDesc.InputLayout.NumElements = ARRAYSIZE(inputLayout); + psoDesc.InputLayout.pInputElementDescs = inputLayout; + psoDesc.IBStripCutValue = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED; + psoDesc.pRootSignature = mRootSignature.Get(); + + psoDesc.VS.pShaderBytecode = vs->GetBufferPointer(); + psoDesc.VS.BytecodeLength = vs->GetBufferSize(); + psoDesc.PS.pShaderBytecode = ps->GetBufferPointer(); + psoDesc.PS.BytecodeLength = ps->GetBufferSize(); + + psoDesc.RasterizerState = CD3DX12_RASTERIZER_DESC(D3D12_DEFAULT); + psoDesc.RasterizerState.CullMode = D3D12_CULL_MODE_NONE; + psoDesc.BlendState = CD3DX12_BLEND_DESC(D3D12_DEFAULT); + psoDesc.DepthStencilState.DepthEnable = true; + psoDesc.DepthStencilState.DepthFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL; + psoDesc.DepthStencilState.DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; + psoDesc.DepthStencilState.StencilEnable = false; + psoDesc.SampleMask = UINT_MAX; + psoDesc.NumRenderTargets = 1; + psoDesc.RTVFormats[0] = DXGI_FORMAT_R8G8B8A8_UNORM; + psoDesc.DSVFormat = DXGI_FORMAT_D32_FLOAT; + psoDesc.SampleDesc.Count = 1; + + device->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&mPSO)); + mPSO->SetName(L"ViewerPSO"); +} + +void MeshRenderer::RenderMeshes(ID3D12GraphicsCommandList* commandList, const std::vector& meshes, const Camera& camera) +{ + commandList->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); + commandList->SetPipelineState(mPSO.Get()); + commandList->SetGraphicsRootSignature(mRootSignature.Get()); + commandList->SetGraphicsRoot32BitConstants(0, 16, &camera.mMatView, 0); + commandList->SetGraphicsRoot32BitConstants(0, 16, &camera.mMatViewProj, 16); + + for (const D3D12Mesh& mesh : meshes) + { + commandList->IASetIndexBuffer(&mesh.mIndexBuffer); + commandList->IASetVertexBuffers(0, 1, &mesh.mVertexBuffer); + commandList->SetGraphicsRoot32BitConstants(1, 16, &mesh.mMatWorld, 0); + commandList->DrawIndexedInstanced(mesh.mNumIndices, 1, 0, 0, 0); + } +} \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/MeshRenderer.h b/samples/dual_layer/D3D12/src/MeshRenderer.h new file mode 100644 index 0000000..dd5125a --- /dev/null +++ b/samples/dual_layer/D3D12/src/MeshRenderer.h @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include +#include +#include + +using namespace Microsoft::WRL; + +class Camera; +class D3D12Mesh; + +class MeshRenderer +{ +public: + void Initialize(ID3D12Device* device); + void RenderMeshes(ID3D12GraphicsCommandList* commandList, const std::vector& meshes, const Camera& camera); + +private: + ComPtr mPSO; + ComPtr mRootSignature; +}; \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/SSAO12_2015.vcxproj b/samples/dual_layer/D3D12/src/SSAO12_2015.vcxproj new file mode 100644 index 0000000..89e3f47 --- /dev/null +++ b/samples/dual_layer/D3D12/src/SSAO12_2015.vcxproj @@ -0,0 +1,240 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {CFEEDBA7-74CF-4AF1-9A14-0E890CE94DF8} + Win32Proj + hbaop_dx12 + 10.0.10586.0 + SampleApp_D3D12 + + + + Application + true + v140 + MultiByte + + + Application + true + v140 + MultiByte + + + Application + false + v140 + true + MultiByte + + + Application + false + v140 + true + MultiByte + + + + + + + + + + + + + + + + + + + true + $(ProjectDir)..\..\..\include;$(WindowsSDK_IncludePath);$(ProjectDir);$(VC_IncludePath);$(ProjectDir)..\external\imgui\examples\directx12_example;$(ProjectDir)..\external\imgui\ + $(ProjectDir)..\..\..\lib;$(WindowsSDK_LibraryPath_x86);$(VC_LibraryPath_x86) + ..\Bin\ + ..\Temp\$(ProjectName)\$(Platform)\$(Configuration)\ + $(ProjectName).debug.win32 + + + true + $(ProjectDir)..\..\..\include;$(WindowsSDK_IncludePath);$(ProjectDir);$(VC_IncludePath);$(ProjectDir)..\external\imgui\examples\directx12_example;$(ProjectDir)..\external\imgui\ + $(ProjectDir)..\..\..\lib;$(WindowsSDK_LibraryPath_x64);$(VC_LibraryPath_x64) + ..\Bin\ + ..\Temp\$(ProjectName)\$(Platform)\$(Configuration)\ + $(ProjectName).debug.win64 + + + false + $(ProjectDir)..\..\..\include;$(WindowsSDK_IncludePath);$(ProjectDir);$(VC_IncludePath);$(ProjectDir)..\external\imgui\examples\directx12_example;$(ProjectDir)..\external\imgui\ + $(ProjectDir)..\..\..\lib;$(WindowsSDK_LibraryPath_x86);$(VC_LibraryPath_x86) + ..\Bin\ + ..\Temp\$(ProjectName)\$(Platform)\$(Configuration)\ + $(ProjectName).win32 + + + false + $(ProjectDir)..\..\..\include;$(WindowsSDK_IncludePath);$(ProjectDir);$(VC_IncludePath);$(ProjectDir)..\external\imgui\examples\directx12_example;$(ProjectDir)..\external\imgui\ + $(ProjectDir)..\..\..\lib;$(WindowsSDK_LibraryPath_x64);$(VC_LibraryPath_x64) + ..\Bin\ + ..\Temp\$(ProjectName)\$(Platform)\$(Configuration)\ + $(ProjectName).win64 + + + + + + Level3 + Disabled + UNICODE=1;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebug + 4312 + ..\..\..\..\include;..\include;%(AdditionalIncludeDirectories) + + + Windows + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + ..\..\..\..\lib + + + copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D12.win32.dll ..\Bin +copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D12.win32.pdb ..\Bin + + + + + + + Level3 + Disabled + UNICODE=1;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebug + 4312 + ..\..\..\..\include;..\include;%(AdditionalIncludeDirectories) + + + Windows + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + ..\..\..\..\lib + + + copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D12.win64.dll ..\Bin +copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D12.win64.pdb ..\Bin + + + + + Level3 + + + MaxSpeed + true + true + UNICODE=1;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreaded + 4312 + ..\..\..\..\include;..\include;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + ..\..\..\..\lib + + + copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D12.win32.dll ..\Bin +copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D12.win32.pdb ..\Bin + + + + + Level3 + + + MaxSpeed + true + true + UNICODE=1;_CRT_NON_CONFORMING_SWPRINTFS;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreaded + 4312 + ..\..\..\..\include;..\include;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + ..\..\..\..\lib + + + copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D12.win64.dll ..\Bin +copy /Y ..\..\..\..\lib\GFSDK_SSAO_D3D12.win64.pdb ..\Bin + + + + + + \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/SSAO12_2015.vcxproj.filters b/samples/dual_layer/D3D12/src/SSAO12_2015.vcxproj.filters new file mode 100644 index 0000000..cd4883d --- /dev/null +++ b/samples/dual_layer/D3D12/src/SSAO12_2015.vcxproj.filters @@ -0,0 +1,117 @@ + + + + + {07e78478-15b9-460a-ae19-d5e122d6440a} + + + {463b2d13-addc-4ee4-9864-16ab1ce31461} + + + + + src + + + src + + + src + + + src + + + src + + + src + + + src\imgui + + + src\imgui + + + src\imgui + + + src\imgui + + + src + + + src + + + src + + + src + + + src + + + + + src + + + src + + + src + + + src + + + src + + + src + + + src\imgui + + + src\imgui + + + src\imgui + + + src\imgui + + + src\imgui + + + src\imgui + + + src\imgui + + + src + + + src + + + src + + + src + + + src + + + src + + + \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/Scene.cpp b/samples/dual_layer/D3D12/src/Scene.cpp new file mode 100644 index 0000000..a4e00c4 --- /dev/null +++ b/samples/dual_layer/D3D12/src/Scene.cpp @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "Scene.h" + + +bool Scene::InitializeDefault() +{ + std::shared_ptr actorMesh = Mesh::LoadFromFile("..\\Media\\Meshes\\shaderBall.obj"); + std::shared_ptr cubeMesh = Mesh::LoadFromFile("..\\Media\\Meshes\\cube.obj"); + + Node node; + node.mesh = actorMesh; + node.layer = 1; + + for (uint32_t i = 0; i < 4; ++i) + { + node.matWorld = XMMatrixTranslation((i % 2) * 16.0f - 8.0f, (i / 2) * 16.0f - 8.0f, 0.0f); + mNodes.push_back(node); + } + + node.mesh = cubeMesh; + node.matWorld = XMMatrixIdentity(); + node.layer = 0; + + mNodes.push_back(node); + + + return true; +} diff --git a/samples/dual_layer/D3D12/src/Scene.h b/samples/dual_layer/D3D12/src/Scene.h new file mode 100644 index 0000000..392f321 --- /dev/null +++ b/samples/dual_layer/D3D12/src/Scene.h @@ -0,0 +1,41 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include "Mesh.h" +#include +#include +using namespace DirectX; + +class Scene +{ +public: + struct Node + { + std::shared_ptr mesh; + XMMATRIX matWorld; + uint32_t layer; + }; + + enum class ESceneType + { + kShaderBall = 0, + kCustom + }; + using Nodes = std::vector; + + bool InitializeDefault(); + + const Nodes& GetNodes() const { return mNodes; } + +private: + Nodes mNodes; +}; + diff --git a/samples/dual_layer/D3D12/src/SceneRenderer.cpp b/samples/dual_layer/D3D12/src/SceneRenderer.cpp new file mode 100644 index 0000000..ad8732d --- /dev/null +++ b/samples/dual_layer/D3D12/src/SceneRenderer.cpp @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "SceneRenderer.h" +#include +#include + +bool SceneRenderer::InitializeWithScene(ID3D12Device* device, Scene& scene) +{ + mMeshRenderer.Initialize(device); + + for (auto& sceneNode : scene.GetNodes()) + { + if (sceneNode.layer < kLayersCount) + { + mMeshes[sceneNode.layer].emplace_back(); + + D3D12Mesh& mesh = mMeshes[sceneNode.layer].back(); + + mesh.InitializeFromMesh(device, *sceneNode.mesh); + mesh.mMatWorld = sceneNode.matWorld; + } + } + return true; +} + +void SceneRenderer::RenderLayer(ID3D12GraphicsCommandList* commandList, uint32_t layer, const Camera& camera) +{ + mMeshRenderer.RenderMeshes(commandList, mMeshes[layer], camera); +} \ No newline at end of file diff --git a/samples/dual_layer/D3D12/src/SceneRenderer.h b/samples/dual_layer/D3D12/src/SceneRenderer.h new file mode 100644 index 0000000..2bdd573 --- /dev/null +++ b/samples/dual_layer/D3D12/src/SceneRenderer.h @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2008-2018, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once +#include "D3D12Mesh.h" +#include "MeshRenderer.h" + +class Camera; +class Scene; + +class SceneRenderer +{ +public: + bool InitializeWithScene(ID3D12Device* device, Scene& scene); + void RenderLayer(ID3D12GraphicsCommandList* commandList, uint32_t layer, const Camera& camera); + static const uint32_t kLayersCount = 2; + +private: + std::vector mMeshes[kLayersCount]; + MeshRenderer mMeshRenderer; +}; + diff --git a/samples/dual_layer/D3D12/src/d3dx12.h b/samples/dual_layer/D3D12/src/d3dx12.h new file mode 100644 index 0000000..ba59dfc --- /dev/null +++ b/samples/dual_layer/D3D12/src/d3dx12.h @@ -0,0 +1,1508 @@ +////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) Microsoft Corporation. All Rights Reserved. +// +// File: d3dx12.h +// Content: D3DX12 utility library +// +////////////////////////////////////////////////////////////////////////////// + +#ifndef __D3DX12_H__ +#define __D3DX12_H__ + +#include "d3d12.h" + +#if defined( __cplusplus ) + +struct CD3DX12_DEFAULT {}; +extern const DECLSPEC_SELECTANY CD3DX12_DEFAULT D3D12_DEFAULT; + +//------------------------------------------------------------------------------------------------ +inline bool operator==( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r ) +{ + return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width && + l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth; +} + +//------------------------------------------------------------------------------------------------ +inline bool operator!=( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r ) +{ return !( l == r ); } + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RECT : public D3D12_RECT +{ + CD3DX12_RECT() + {} + explicit CD3DX12_RECT( const D3D12_RECT& o ) : + D3D12_RECT( o ) + {} + explicit CD3DX12_RECT( + LONG Left, + LONG Top, + LONG Right, + LONG Bottom ) + { + left = Left; + top = Top; + right = Right; + bottom = Bottom; + } + ~CD3DX12_RECT() {} + operator const D3D12_RECT&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_BOX : public D3D12_BOX +{ + CD3DX12_BOX() + {} + explicit CD3DX12_BOX( const D3D12_BOX& o ) : + D3D12_BOX( o ) + {} + explicit CD3DX12_BOX( + LONG Left, + LONG Right ) + { + left = Left; + top = 0; + front = 0; + right = Right; + bottom = 1; + back = 1; + } + explicit CD3DX12_BOX( + LONG Left, + LONG Top, + LONG Right, + LONG Bottom ) + { + left = Left; + top = Top; + front = 0; + right = Right; + bottom = Bottom; + back = 1; + } + explicit CD3DX12_BOX( + LONG Left, + LONG Top, + LONG Front, + LONG Right, + LONG Bottom, + LONG Back ) + { + left = Left; + top = Top; + front = Front; + right = Right; + bottom = Bottom; + back = Back; + } + ~CD3DX12_BOX() {} + operator const D3D12_BOX&() const { return *this; } +}; +inline bool operator==( const D3D12_BOX& l, const D3D12_BOX& r ) +{ + return l.left == r.left && l.top == r.top && l.front == r.front && + l.right == r.right && l.bottom == r.bottom && l.back == r.back; +} +inline bool operator!=( const D3D12_BOX& l, const D3D12_BOX& r ) +{ return !( l == r ); } + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_DEPTH_STENCIL_DESC : public D3D12_DEPTH_STENCIL_DESC +{ + CD3DX12_DEPTH_STENCIL_DESC() + {} + explicit CD3DX12_DEPTH_STENCIL_DESC( const D3D12_DEPTH_STENCIL_DESC& o ) : + D3D12_DEPTH_STENCIL_DESC( o ) + {} + explicit CD3DX12_DEPTH_STENCIL_DESC( CD3DX12_DEFAULT ) + { + DepthEnable = TRUE; + DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; + DepthFunc = D3D12_COMPARISON_FUNC_LESS; + StencilEnable = FALSE; + StencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK; + StencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK; + const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp = + { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS }; + FrontFace = defaultStencilOp; + BackFace = defaultStencilOp; + } + explicit CD3DX12_DEPTH_STENCIL_DESC( + BOOL depthEnable, + D3D12_DEPTH_WRITE_MASK depthWriteMask, + D3D12_COMPARISON_FUNC depthFunc, + BOOL stencilEnable, + UINT8 stencilReadMask, + UINT8 stencilWriteMask, + D3D12_STENCIL_OP frontStencilFailOp, + D3D12_STENCIL_OP frontStencilDepthFailOp, + D3D12_STENCIL_OP frontStencilPassOp, + D3D12_COMPARISON_FUNC frontStencilFunc, + D3D12_STENCIL_OP backStencilFailOp, + D3D12_STENCIL_OP backStencilDepthFailOp, + D3D12_STENCIL_OP backStencilPassOp, + D3D12_COMPARISON_FUNC backStencilFunc ) + { + DepthEnable = depthEnable; + DepthWriteMask = depthWriteMask; + DepthFunc = depthFunc; + StencilEnable = stencilEnable; + StencilReadMask = stencilReadMask; + StencilWriteMask = stencilWriteMask; + FrontFace.StencilFailOp = frontStencilFailOp; + FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; + FrontFace.StencilPassOp = frontStencilPassOp; + FrontFace.StencilFunc = frontStencilFunc; + BackFace.StencilFailOp = backStencilFailOp; + BackFace.StencilDepthFailOp = backStencilDepthFailOp; + BackFace.StencilPassOp = backStencilPassOp; + BackFace.StencilFunc = backStencilFunc; + } + ~CD3DX12_DEPTH_STENCIL_DESC() {} + operator const D3D12_DEPTH_STENCIL_DESC&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_BLEND_DESC : public D3D12_BLEND_DESC +{ + CD3DX12_BLEND_DESC() + {} + explicit CD3DX12_BLEND_DESC( const D3D12_BLEND_DESC& o ) : + D3D12_BLEND_DESC( o ) + {} + explicit CD3DX12_BLEND_DESC( CD3DX12_DEFAULT ) + { + AlphaToCoverageEnable = FALSE; + IndependentBlendEnable = FALSE; + const D3D12_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = + { + FALSE,FALSE, + D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, + D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, + D3D12_LOGIC_OP_NOOP, + D3D12_COLOR_WRITE_ENABLE_ALL, + }; + for (UINT i = 0; i < D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) + RenderTarget[ i ] = defaultRenderTargetBlendDesc; + } + ~CD3DX12_BLEND_DESC() {} + operator const D3D12_BLEND_DESC&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RASTERIZER_DESC : public D3D12_RASTERIZER_DESC +{ + CD3DX12_RASTERIZER_DESC() + {} + explicit CD3DX12_RASTERIZER_DESC( const D3D12_RASTERIZER_DESC& o ) : + D3D12_RASTERIZER_DESC( o ) + {} + explicit CD3DX12_RASTERIZER_DESC( CD3DX12_DEFAULT ) + { + FillMode = D3D12_FILL_MODE_SOLID; + CullMode = D3D12_CULL_MODE_BACK; + FrontCounterClockwise = FALSE; + DepthBias = D3D12_DEFAULT_DEPTH_BIAS; + DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; + SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; + DepthClipEnable = TRUE; + MultisampleEnable = FALSE; + AntialiasedLineEnable = FALSE; + ForcedSampleCount = 0; + ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; + } + explicit CD3DX12_RASTERIZER_DESC( + D3D12_FILL_MODE fillMode, + D3D12_CULL_MODE cullMode, + BOOL frontCounterClockwise, + INT depthBias, + FLOAT depthBiasClamp, + FLOAT slopeScaledDepthBias, + BOOL depthClipEnable, + BOOL multisampleEnable, + BOOL antialiasedLineEnable, + UINT forcedSampleCount, + D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) + { + FillMode = fillMode; + CullMode = cullMode; + FrontCounterClockwise = frontCounterClockwise; + DepthBias = depthBias; + DepthBiasClamp = depthBiasClamp; + SlopeScaledDepthBias = slopeScaledDepthBias; + DepthClipEnable = depthClipEnable; + MultisampleEnable = multisampleEnable; + AntialiasedLineEnable = antialiasedLineEnable; + ForcedSampleCount = forcedSampleCount; + ConservativeRaster = conservativeRaster; + } + ~CD3DX12_RASTERIZER_DESC() {} + operator const D3D12_RASTERIZER_DESC&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RESOURCE_ALLOCATION_INFO : public D3D12_RESOURCE_ALLOCATION_INFO +{ + CD3DX12_RESOURCE_ALLOCATION_INFO() + {} + explicit CD3DX12_RESOURCE_ALLOCATION_INFO( const D3D12_RESOURCE_ALLOCATION_INFO& o ) : + D3D12_RESOURCE_ALLOCATION_INFO( o ) + {} + CD3DX12_RESOURCE_ALLOCATION_INFO( + UINT64 size, + UINT64 alignment ) + { + SizeInBytes = size; + Alignment = alignment; + } + operator const D3D12_RESOURCE_ALLOCATION_INFO&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_HEAP_PROPERTIES : public D3D12_HEAP_PROPERTIES +{ + CD3DX12_HEAP_PROPERTIES() + {} + explicit CD3DX12_HEAP_PROPERTIES(const D3D12_HEAP_PROPERTIES &o) : + D3D12_HEAP_PROPERTIES(o) + {} + CD3DX12_HEAP_PROPERTIES( + D3D12_CPU_PAGE_PROPERTY cpuPageProperty, + D3D12_MEMORY_POOL memoryPoolPreference, + UINT creationNodeMask = 1, + UINT nodeMask = 1 ) + { + Type = D3D12_HEAP_TYPE_CUSTOM; + CPUPageProperty = cpuPageProperty; + MemoryPoolPreference = memoryPoolPreference; + CreationNodeMask = creationNodeMask; + VisibleNodeMask = nodeMask; + } + explicit CD3DX12_HEAP_PROPERTIES( + D3D12_HEAP_TYPE type, + UINT creationNodeMask = 1, + UINT nodeMask = 1 ) + { + Type = type; + CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; + MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; + CreationNodeMask = creationNodeMask; + VisibleNodeMask = nodeMask; + } + operator const D3D12_HEAP_PROPERTIES&() const { return *this; } + bool IsCPUAccessible() const + { + return Type == D3D12_HEAP_TYPE_UPLOAD || Type == D3D12_HEAP_TYPE_READBACK || (Type == D3D12_HEAP_TYPE_CUSTOM && + (CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE || CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_BACK)); + } +}; +inline bool operator==( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r ) +{ + return l.Type == r.Type && l.CPUPageProperty == r.CPUPageProperty && + l.MemoryPoolPreference == r.MemoryPoolPreference && + l.CreationNodeMask == r.CreationNodeMask && + l.VisibleNodeMask == r.VisibleNodeMask; +} +inline bool operator!=( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r ) +{ return !( l == r ); } + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_HEAP_DESC : public D3D12_HEAP_DESC +{ + CD3DX12_HEAP_DESC() + {} + explicit CD3DX12_HEAP_DESC(const D3D12_HEAP_DESC &o) : + D3D12_HEAP_DESC(o) + {} + CD3DX12_HEAP_DESC( + UINT64 size, + D3D12_HEAP_PROPERTIES properties, + UINT64 alignment = 0, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) + { + SizeInBytes = size; + Properties = properties; + Alignment = alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + UINT64 size, + D3D12_HEAP_TYPE type, + UINT64 alignment = 0, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) + { + SizeInBytes = size; + Properties = CD3DX12_HEAP_PROPERTIES( type ); + Alignment = alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + UINT64 size, + D3D12_CPU_PAGE_PROPERTY cpuPageProperty, + D3D12_MEMORY_POOL memoryPoolPreference, + UINT64 alignment = 0, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) + { + SizeInBytes = size; + Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference ); + Alignment = alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_HEAP_PROPERTIES properties, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) + { + SizeInBytes = resAllocInfo.SizeInBytes; + Properties = properties; + Alignment = resAllocInfo.Alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_HEAP_TYPE type, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) + { + SizeInBytes = resAllocInfo.SizeInBytes; + Properties = CD3DX12_HEAP_PROPERTIES( type ); + Alignment = resAllocInfo.Alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_CPU_PAGE_PROPERTY cpuPageProperty, + D3D12_MEMORY_POOL memoryPoolPreference, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) + { + SizeInBytes = resAllocInfo.SizeInBytes; + Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference ); + Alignment = resAllocInfo.Alignment; + Flags = flags; + } + operator const D3D12_HEAP_DESC&() const { return *this; } + bool IsCPUAccessible() const + { return static_cast< const CD3DX12_HEAP_PROPERTIES* >( &Properties )->IsCPUAccessible(); } +}; +inline bool operator==( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r ) +{ + return l.SizeInBytes == r.SizeInBytes && + l.Properties == r.Properties && + l.Alignment == r.Alignment && + l.Flags == r.Flags; +} +inline bool operator!=( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r ) +{ return !( l == r ); } + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_CLEAR_VALUE : public D3D12_CLEAR_VALUE +{ + CD3DX12_CLEAR_VALUE() + {} + explicit CD3DX12_CLEAR_VALUE(const D3D12_CLEAR_VALUE &o) : + D3D12_CLEAR_VALUE(o) + {} + CD3DX12_CLEAR_VALUE( + DXGI_FORMAT format, + const FLOAT color[4] ) + { + Format = format; + memcpy( Color, color, sizeof( Color ) ); + } + CD3DX12_CLEAR_VALUE( + DXGI_FORMAT format, + FLOAT depth, + UINT8 stencil ) + { + Format = format; + /* Use memcpy to preserve NAN values */ + memcpy( &DepthStencil.Depth, &depth, sizeof( depth ) ); + DepthStencil.Stencil = stencil; + } + operator const D3D12_CLEAR_VALUE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RANGE : public D3D12_RANGE +{ + CD3DX12_RANGE() + {} + explicit CD3DX12_RANGE(const D3D12_RANGE &o) : + D3D12_RANGE(o) + {} + CD3DX12_RANGE( + SIZE_T begin, + SIZE_T end ) + { + Begin = begin; + End = end; + } + operator const D3D12_RANGE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_TILED_RESOURCE_COORDINATE : public D3D12_TILED_RESOURCE_COORDINATE +{ + CD3DX12_TILED_RESOURCE_COORDINATE() + {} + explicit CD3DX12_TILED_RESOURCE_COORDINATE(const D3D12_TILED_RESOURCE_COORDINATE &o) : + D3D12_TILED_RESOURCE_COORDINATE(o) + {} + CD3DX12_TILED_RESOURCE_COORDINATE( + UINT x, + UINT y, + UINT z, + UINT subresource ) + { + X = x; + Y = y; + Z = z; + Subresource = subresource; + } + operator const D3D12_TILED_RESOURCE_COORDINATE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_TILE_REGION_SIZE : public D3D12_TILE_REGION_SIZE +{ + CD3DX12_TILE_REGION_SIZE() + {} + explicit CD3DX12_TILE_REGION_SIZE(const D3D12_TILE_REGION_SIZE &o) : + D3D12_TILE_REGION_SIZE(o) + {} + CD3DX12_TILE_REGION_SIZE( + UINT numTiles, + BOOL useBox, + UINT width, + UINT16 height, + UINT16 depth ) + { + NumTiles = numTiles; + UseBox = useBox; + Width = width; + Height = height; + Depth = depth; + } + operator const D3D12_TILE_REGION_SIZE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_SUBRESOURCE_TILING : public D3D12_SUBRESOURCE_TILING +{ + CD3DX12_SUBRESOURCE_TILING() + {} + explicit CD3DX12_SUBRESOURCE_TILING(const D3D12_SUBRESOURCE_TILING &o) : + D3D12_SUBRESOURCE_TILING(o) + {} + CD3DX12_SUBRESOURCE_TILING( + UINT widthInTiles, + UINT16 heightInTiles, + UINT16 depthInTiles, + UINT startTileIndexInOverallResource ) + { + WidthInTiles = widthInTiles; + HeightInTiles = heightInTiles; + DepthInTiles = depthInTiles; + StartTileIndexInOverallResource = startTileIndexInOverallResource; + } + operator const D3D12_SUBRESOURCE_TILING&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_TILE_SHAPE : public D3D12_TILE_SHAPE +{ + CD3DX12_TILE_SHAPE() + {} + explicit CD3DX12_TILE_SHAPE(const D3D12_TILE_SHAPE &o) : + D3D12_TILE_SHAPE(o) + {} + CD3DX12_TILE_SHAPE( + UINT widthInTexels, + UINT heightInTexels, + UINT depthInTexels ) + { + WidthInTexels = widthInTexels; + HeightInTexels = heightInTexels; + DepthInTexels = depthInTexels; + } + operator const D3D12_TILE_SHAPE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RESOURCE_BARRIER : public D3D12_RESOURCE_BARRIER +{ + CD3DX12_RESOURCE_BARRIER() + {} + explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) : + D3D12_RESOURCE_BARRIER(o) + {} + static inline CD3DX12_RESOURCE_BARRIER Transition( + _In_ ID3D12Resource* pResource, + D3D12_RESOURCE_STATES stateBefore, + D3D12_RESOURCE_STATES stateAfter, + UINT subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES, + D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) + { + CD3DX12_RESOURCE_BARRIER result; + ZeroMemory(&result, sizeof(result)); + D3D12_RESOURCE_BARRIER &barrier = result; + result.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; + result.Flags = flags; + barrier.Transition.pResource = pResource; + barrier.Transition.StateBefore = stateBefore; + barrier.Transition.StateAfter = stateAfter; + barrier.Transition.Subresource = subresource; + return result; + } + static inline CD3DX12_RESOURCE_BARRIER Aliasing( + _In_ ID3D12Resource* pResourceBefore, + _In_ ID3D12Resource* pResourceAfter) + { + CD3DX12_RESOURCE_BARRIER result; + ZeroMemory(&result, sizeof(result)); + D3D12_RESOURCE_BARRIER &barrier = result; + result.Type = D3D12_RESOURCE_BARRIER_TYPE_ALIASING; + barrier.Aliasing.pResourceBefore = pResourceBefore; + barrier.Aliasing.pResourceAfter = pResourceAfter; + return result; + } + static inline CD3DX12_RESOURCE_BARRIER UAV( + _In_ ID3D12Resource* pResource) + { + CD3DX12_RESOURCE_BARRIER result; + ZeroMemory(&result, sizeof(result)); + D3D12_RESOURCE_BARRIER &barrier = result; + result.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV; + barrier.UAV.pResource = pResource; + return result; + } + operator const D3D12_RESOURCE_BARRIER&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_PACKED_MIP_INFO : public D3D12_PACKED_MIP_INFO +{ + CD3DX12_PACKED_MIP_INFO() + {} + explicit CD3DX12_PACKED_MIP_INFO(const D3D12_PACKED_MIP_INFO &o) : + D3D12_PACKED_MIP_INFO(o) + {} + CD3DX12_PACKED_MIP_INFO( + UINT8 numStandardMips, + UINT8 numPackedMips, + UINT numTilesForPackedMips, + UINT startTileIndexInOverallResource ) + { + NumStandardMips = numStandardMips; + NumPackedMips = numPackedMips; + NumTilesForPackedMips = numTilesForPackedMips; + StartTileIndexInOverallResource = startTileIndexInOverallResource; + } + operator const D3D12_PACKED_MIP_INFO&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_SUBRESOURCE_FOOTPRINT : public D3D12_SUBRESOURCE_FOOTPRINT +{ + CD3DX12_SUBRESOURCE_FOOTPRINT() + {} + explicit CD3DX12_SUBRESOURCE_FOOTPRINT(const D3D12_SUBRESOURCE_FOOTPRINT &o) : + D3D12_SUBRESOURCE_FOOTPRINT(o) + {} + CD3DX12_SUBRESOURCE_FOOTPRINT( + DXGI_FORMAT format, + UINT width, + UINT height, + UINT depth, + UINT rowPitch ) + { + Format = format; + Width = width; + Height = height; + Depth = depth; + RowPitch = rowPitch; + } + explicit CD3DX12_SUBRESOURCE_FOOTPRINT( + const D3D12_RESOURCE_DESC& resDesc, + UINT rowPitch ) + { + Format = resDesc.Format; + Width = UINT( resDesc.Width ); + Height = resDesc.Height; + Depth = (resDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? resDesc.DepthOrArraySize : 1); + RowPitch = rowPitch; + } + operator const D3D12_SUBRESOURCE_FOOTPRINT&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_TEXTURE_COPY_LOCATION : public D3D12_TEXTURE_COPY_LOCATION +{ + CD3DX12_TEXTURE_COPY_LOCATION() + {} + explicit CD3DX12_TEXTURE_COPY_LOCATION(const D3D12_TEXTURE_COPY_LOCATION &o) : + D3D12_TEXTURE_COPY_LOCATION(o) + {} + CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes) { pResource = pRes; } + CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, D3D12_PLACED_SUBRESOURCE_FOOTPRINT const& Footprint) + { + pResource = pRes; + Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT; + PlacedFootprint = Footprint; + } + CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, UINT Sub) + { + pResource = pRes; + Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; + SubresourceIndex = Sub; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_DESCRIPTOR_RANGE : public D3D12_DESCRIPTOR_RANGE +{ + CD3DX12_DESCRIPTOR_RANGE() { } + explicit CD3DX12_DESCRIPTOR_RANGE(const D3D12_DESCRIPTOR_RANGE &o) : + D3D12_DESCRIPTOR_RANGE(o) + {} + CD3DX12_DESCRIPTOR_RANGE( + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + UINT offsetInDescriptorsFromTableStart = + D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) + { + Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); + } + + inline void Init( + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + UINT offsetInDescriptorsFromTableStart = + D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) + { + Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); + } + + static inline void Init( + _Out_ D3D12_DESCRIPTOR_RANGE &range, + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + UINT offsetInDescriptorsFromTableStart = + D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) + { + range.RangeType = rangeType; + range.NumDescriptors = numDescriptors; + range.BaseShaderRegister = baseShaderRegister; + range.RegisterSpace = registerSpace; + range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_DESCRIPTOR_TABLE : public D3D12_ROOT_DESCRIPTOR_TABLE +{ + CD3DX12_ROOT_DESCRIPTOR_TABLE() {} + explicit CD3DX12_ROOT_DESCRIPTOR_TABLE(const D3D12_ROOT_DESCRIPTOR_TABLE &o) : + D3D12_ROOT_DESCRIPTOR_TABLE(o) + {} + CD3DX12_ROOT_DESCRIPTOR_TABLE( + UINT numDescriptorRanges, + _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) + { + Init(numDescriptorRanges, _pDescriptorRanges); + } + + inline void Init( + UINT numDescriptorRanges, + _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) + { + Init(*this, numDescriptorRanges, _pDescriptorRanges); + } + + static inline void Init( + _Out_ D3D12_ROOT_DESCRIPTOR_TABLE &rootDescriptorTable, + UINT numDescriptorRanges, + _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) + { + rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; + rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_CONSTANTS : public D3D12_ROOT_CONSTANTS +{ + CD3DX12_ROOT_CONSTANTS() {} + explicit CD3DX12_ROOT_CONSTANTS(const D3D12_ROOT_CONSTANTS &o) : + D3D12_ROOT_CONSTANTS(o) + {} + CD3DX12_ROOT_CONSTANTS( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0) + { + Init(num32BitValues, shaderRegister, registerSpace); + } + + inline void Init( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0) + { + Init(*this, num32BitValues, shaderRegister, registerSpace); + } + + static inline void Init( + _Out_ D3D12_ROOT_CONSTANTS &rootConstants, + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0) + { + rootConstants.Num32BitValues = num32BitValues; + rootConstants.ShaderRegister = shaderRegister; + rootConstants.RegisterSpace = registerSpace; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_DESCRIPTOR : public D3D12_ROOT_DESCRIPTOR +{ + CD3DX12_ROOT_DESCRIPTOR() {} + explicit CD3DX12_ROOT_DESCRIPTOR(const D3D12_ROOT_DESCRIPTOR &o) : + D3D12_ROOT_DESCRIPTOR(o) + {} + CD3DX12_ROOT_DESCRIPTOR( + UINT shaderRegister, + UINT registerSpace = 0) + { + Init(shaderRegister, registerSpace); + } + + inline void Init( + UINT shaderRegister, + UINT registerSpace = 0) + { + Init(*this, shaderRegister, registerSpace); + } + + static inline void Init(_Out_ D3D12_ROOT_DESCRIPTOR &table, UINT shaderRegister, UINT registerSpace = 0) + { + table.ShaderRegister = shaderRegister; + table.RegisterSpace = registerSpace; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_PARAMETER : public D3D12_ROOT_PARAMETER +{ + CD3DX12_ROOT_PARAMETER() {} + explicit CD3DX12_ROOT_PARAMETER(const D3D12_ROOT_PARAMETER &o) : + D3D12_ROOT_PARAMETER(o) + {} + + static inline void InitAsDescriptorTable( + _Out_ D3D12_ROOT_PARAMETER &rootParam, + UINT numDescriptorRanges, + _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) + { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR_TABLE::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); + } + + static inline void InitAsConstants( + _Out_ D3D12_ROOT_PARAMETER &rootParam, + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) + { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); + } + + static inline void InitAsConstantBufferView( + _Out_ D3D12_ROOT_PARAMETER &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) + { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); + } + + static inline void InitAsShaderResourceView( + _Out_ D3D12_ROOT_PARAMETER &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) + { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); + } + + static inline void InitAsUnorderedAccessView( + _Out_ D3D12_ROOT_PARAMETER &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) + { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); + } + + inline void InitAsDescriptorTable( + UINT numDescriptorRanges, + _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) + { + InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); + } + + inline void InitAsConstants( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) + { + InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); + } + + inline void InitAsConstantBufferView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) + { + InitAsConstantBufferView(*this, shaderRegister, registerSpace, visibility); + } + + inline void InitAsShaderResourceView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) + { + InitAsShaderResourceView(*this, shaderRegister, registerSpace, visibility); + } + + inline void InitAsUnorderedAccessView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) + { + InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, visibility); + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_STATIC_SAMPLER_DESC : public D3D12_STATIC_SAMPLER_DESC +{ + CD3DX12_STATIC_SAMPLER_DESC() {} + explicit CD3DX12_STATIC_SAMPLER_DESC(const D3D12_STATIC_SAMPLER_DESC &o) : + D3D12_STATIC_SAMPLER_DESC(o) + {} + CD3DX12_STATIC_SAMPLER_DESC( + UINT shaderRegister, + D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, + D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + FLOAT mipLODBias = 0, + UINT maxAnisotropy = 16, + D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, + D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, + FLOAT minLOD = 0.f, + FLOAT maxLOD = D3D12_FLOAT32_MAX, + D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, + UINT registerSpace = 0) + { + Init( + shaderRegister, + filter, + addressU, + addressV, + addressW, + mipLODBias, + maxAnisotropy, + comparisonFunc, + borderColor, + minLOD, + maxLOD, + shaderVisibility, + registerSpace); + } + + static inline void Init( + _Out_ D3D12_STATIC_SAMPLER_DESC &samplerDesc, + UINT shaderRegister, + D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, + D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + FLOAT mipLODBias = 0, + UINT maxAnisotropy = 16, + D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, + D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, + FLOAT minLOD = 0.f, + FLOAT maxLOD = D3D12_FLOAT32_MAX, + D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, + UINT registerSpace = 0) + { + samplerDesc.ShaderRegister = shaderRegister; + samplerDesc.Filter = filter; + samplerDesc.AddressU = addressU; + samplerDesc.AddressV = addressV; + samplerDesc.AddressW = addressW; + samplerDesc.MipLODBias = mipLODBias; + samplerDesc.MaxAnisotropy = maxAnisotropy; + samplerDesc.ComparisonFunc = comparisonFunc; + samplerDesc.BorderColor = borderColor; + samplerDesc.MinLOD = minLOD; + samplerDesc.MaxLOD = maxLOD; + samplerDesc.ShaderVisibility = shaderVisibility; + samplerDesc.RegisterSpace = registerSpace; + } + inline void Init( + UINT shaderRegister, + D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, + D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + FLOAT mipLODBias = 0, + UINT maxAnisotropy = 16, + D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, + D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, + FLOAT minLOD = 0.f, + FLOAT maxLOD = D3D12_FLOAT32_MAX, + D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, + UINT registerSpace = 0) + { + Init( + *this, + shaderRegister, + filter, + addressU, + addressV, + addressW, + mipLODBias, + maxAnisotropy, + comparisonFunc, + borderColor, + minLOD, + maxLOD, + shaderVisibility, + registerSpace); + } + +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_SIGNATURE_DESC : public D3D12_ROOT_SIGNATURE_DESC +{ + CD3DX12_ROOT_SIGNATURE_DESC() {} + explicit CD3DX12_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) : + D3D12_ROOT_SIGNATURE_DESC(o) + {} + CD3DX12_ROOT_SIGNATURE_DESC( + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) + { + Init(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + CD3DX12_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) + { + Init(0, NULL, 0, NULL, D3D12_ROOT_SIGNATURE_FLAG_NONE); + } + + inline void Init( + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) + { + Init(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + + static inline void Init( + _Out_ D3D12_ROOT_SIGNATURE_DESC &desc, + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) + { + desc.NumParameters = numParameters; + desc.pParameters = _pParameters; + desc.NumStaticSamplers = numStaticSamplers; + desc.pStaticSamplers = _pStaticSamplers; + desc.Flags = flags; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_CPU_DESCRIPTOR_HANDLE : public D3D12_CPU_DESCRIPTOR_HANDLE +{ + CD3DX12_CPU_DESCRIPTOR_HANDLE() {} + explicit CD3DX12_CPU_DESCRIPTOR_HANDLE(const D3D12_CPU_DESCRIPTOR_HANDLE &o) : + D3D12_CPU_DESCRIPTOR_HANDLE(o) + {} + CD3DX12_CPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } + CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) + { + InitOffsetted(other, offsetScaledByIncrementSize); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) + { + InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) + { + ptr += offsetInDescriptors * descriptorIncrementSize; + return *this; + } + CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) + { + ptr += offsetScaledByIncrementSize; + return *this; + } + bool operator==(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) + { + return (ptr == other.ptr); + } + bool operator!=(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) + { + return (ptr != other.ptr); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE &operator=(const D3D12_CPU_DESCRIPTOR_HANDLE &other) + { + ptr = other.ptr; + return *this; + } + + inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) + { + InitOffsetted(*this, base, offsetScaledByIncrementSize); + } + + inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) + { + InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); + } + + static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) + { + handle.ptr = base.ptr + offsetScaledByIncrementSize; + } + + static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) + { + handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_GPU_DESCRIPTOR_HANDLE : public D3D12_GPU_DESCRIPTOR_HANDLE +{ + CD3DX12_GPU_DESCRIPTOR_HANDLE() {} + explicit CD3DX12_GPU_DESCRIPTOR_HANDLE(const D3D12_GPU_DESCRIPTOR_HANDLE &o) : + D3D12_GPU_DESCRIPTOR_HANDLE(o) + {} + CD3DX12_GPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } + CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) + { + InitOffsetted(other, offsetScaledByIncrementSize); + } + CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) + { + InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); + } + CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) + { + ptr += offsetInDescriptors * descriptorIncrementSize; + return *this; + } + CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) + { + ptr += offsetScaledByIncrementSize; + return *this; + } + inline bool operator==(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) + { + return (ptr == other.ptr); + } + inline bool operator!=(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) + { + return (ptr != other.ptr); + } + CD3DX12_GPU_DESCRIPTOR_HANDLE &operator=(const D3D12_GPU_DESCRIPTOR_HANDLE &other) + { + ptr = other.ptr; + return *this; + } + + inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) + { + InitOffsetted(*this, base, offsetScaledByIncrementSize); + } + + inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) + { + InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); + } + + static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) + { + handle.ptr = base.ptr + offsetScaledByIncrementSize; + } + + static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) + { + handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; + } +}; + +//------------------------------------------------------------------------------------------------ +inline UINT D3D12CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT PlaneSlice, UINT MipLevels, UINT ArraySize ) +{ + return MipSlice + ArraySlice * MipLevels + PlaneSlice * MipLevels * ArraySize; +} + +//------------------------------------------------------------------------------------------------ +template +inline void D3D12DecomposeSubresource( UINT Subresource, UINT MipLevels, UINT ArraySize, _Out_ T& MipSlice, _Out_ U& ArraySlice, _Out_ V& PlaneSlice ) +{ + MipSlice = static_cast(Subresource % MipLevels); + ArraySlice = static_cast((Subresource / MipLevels) % ArraySize); + PlaneSlice = static_cast(Subresource / (MipLevels * ArraySize)); +} + +//------------------------------------------------------------------------------------------------ +inline UINT8 D3D12GetFormatPlaneCount( + _In_ ID3D12Device* pDevice, + DXGI_FORMAT Format + ) +{ + D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = {Format}; + if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo)))) + { + return 0; + } + return formatInfo.PlaneCount; +} + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RESOURCE_DESC : public D3D12_RESOURCE_DESC +{ + CD3DX12_RESOURCE_DESC() + {} + explicit CD3DX12_RESOURCE_DESC( const D3D12_RESOURCE_DESC& o ) : + D3D12_RESOURCE_DESC( o ) + {} + CD3DX12_RESOURCE_DESC( + D3D12_RESOURCE_DIMENSION dimension, + UINT64 alignment, + UINT64 width, + UINT height, + UINT16 depthOrArraySize, + UINT16 mipLevels, + DXGI_FORMAT format, + UINT sampleCount, + UINT sampleQuality, + D3D12_TEXTURE_LAYOUT layout, + D3D12_RESOURCE_FLAGS flags ) + { + Dimension = dimension; + Alignment = alignment; + Width = width; + Height = height; + DepthOrArraySize = depthOrArraySize; + MipLevels = mipLevels; + Format = format; + SampleDesc.Count = sampleCount; + SampleDesc.Quality = sampleQuality; + Layout = layout; + Flags = flags; + } + static inline CD3DX12_RESOURCE_DESC Buffer( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE ) + { + return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes, + 1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags ); + } + static inline CD3DX12_RESOURCE_DESC Buffer( + UINT64 width, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + UINT64 alignment = 0 ) + { + return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1, + DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags ); + } + static inline CD3DX12_RESOURCE_DESC Tex1D( + DXGI_FORMAT format, + UINT64 width, + UINT16 arraySize = 1, + UINT16 mipLevels = 0, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, + UINT64 alignment = 0 ) + { + return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize, + mipLevels, format, 1, 0, layout, flags ); + } + static inline CD3DX12_RESOURCE_DESC Tex2D( + DXGI_FORMAT format, + UINT64 width, + UINT height, + UINT16 arraySize = 1, + UINT16 mipLevels = 0, + UINT sampleCount = 1, + UINT sampleQuality = 0, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, + UINT64 alignment = 0 ) + { + return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize, + mipLevels, format, sampleCount, sampleQuality, layout, flags ); + } + static inline CD3DX12_RESOURCE_DESC Tex3D( + DXGI_FORMAT format, + UINT64 width, + UINT height, + UINT16 depth, + UINT16 mipLevels = 0, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, + UINT64 alignment = 0 ) + { + return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth, + mipLevels, format, 1, 0, layout, flags ); + } + inline UINT16 Depth() const + { return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); } + inline UINT16 ArraySize() const + { return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); } + inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const + { return D3D12GetFormatPlaneCount(pDevice, Format); } + inline UINT Subresources(_In_ ID3D12Device* pDevice) const + { return MipLevels * ArraySize() * PlaneCount(pDevice); } + inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice) + { return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); } + operator const D3D12_RESOURCE_DESC&() const { return *this; } +}; +inline bool operator==( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r ) +{ + return l.Dimension == r.Dimension && + l.Alignment == r.Alignment && + l.Width == r.Width && + l.Height == r.Height && + l.DepthOrArraySize == r.DepthOrArraySize && + l.MipLevels == r.MipLevels && + l.Format == r.Format && + l.SampleDesc.Count == r.SampleDesc.Count && + l.SampleDesc.Quality == r.SampleDesc.Quality && + l.Layout == r.Layout && + l.Flags == r.Flags; +} +inline bool operator!=( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r ) +{ return !( l == r ); } + +//------------------------------------------------------------------------------------------------ +// Row-by-row memcpy +inline void MemcpySubresource( + _In_ const D3D12_MEMCPY_DEST* pDest, + _In_ const D3D12_SUBRESOURCE_DATA* pSrc, + SIZE_T RowSizeInBytes, + UINT NumRows, + UINT NumSlices) +{ + for (UINT z = 0; z < NumSlices; ++z) + { + BYTE* pDestSlice = reinterpret_cast(pDest->pData) + pDest->SlicePitch * z; + const BYTE* pSrcSlice = reinterpret_cast(pSrc->pData) + pSrc->SlicePitch * z; + for (UINT y = 0; y < NumRows; ++y) + { + memcpy(pDestSlice + pDest->RowPitch * y, + pSrcSlice + pSrc->RowPitch * y, + RowSizeInBytes); + } + } +} + +//------------------------------------------------------------------------------------------------ +// Returns required size of a buffer to be used for data upload +inline UINT64 GetRequiredIntermediateSize( + _In_ ID3D12Resource* pDestinationResource, + _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, + _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources) +{ + D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); + UINT64 RequiredSize = 0; + + ID3D12Device* pDevice; + pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); + pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize); + pDevice->Release(); + + return RequiredSize; +} + +//------------------------------------------------------------------------------------------------ +// All arrays must be populated (e.g. by calling GetCopyableFootprints) +inline UINT64 UpdateSubresources( + _In_ ID3D12GraphicsCommandList* pCmdList, + _In_ ID3D12Resource* pDestinationResource, + _In_ ID3D12Resource* pIntermediate, + _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, + _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, + UINT64 RequiredSize, + _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, + _In_reads_(NumSubresources) const UINT* pNumRows, + _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes, + _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) +{ + // Minor validation + D3D12_RESOURCE_DESC IntermediateDesc = pIntermediate->GetDesc(); + D3D12_RESOURCE_DESC DestinationDesc = pDestinationResource->GetDesc(); + if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER || + IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset || + RequiredSize > (SIZE_T)-1 || + (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && + (FirstSubresource != 0 || NumSubresources != 1))) + { + return 0; + } + + BYTE* pData; + HRESULT hr = pIntermediate->Map(0, NULL, reinterpret_cast(&pData)); + if (FAILED(hr)) + { + return 0; + } + + for (UINT i = 0; i < NumSubresources; ++i) + { + if (pRowSizesInBytes[i] > (SIZE_T)-1) return 0; + D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, pLayouts[i].Footprint.RowPitch * pNumRows[i] }; + MemcpySubresource(&DestData, &pSrcData[i], (SIZE_T)pRowSizesInBytes[i], pNumRows[i], pLayouts[i].Footprint.Depth); + } + pIntermediate->Unmap(0, NULL); + + if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) + { + CD3DX12_BOX SrcBox( UINT( pLayouts[0].Offset ), UINT( pLayouts[0].Offset + pLayouts[0].Footprint.Width ) ); + pCmdList->CopyBufferRegion( + pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width); + } + else + { + for (UINT i = 0; i < NumSubresources; ++i) + { + CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource); + CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]); + pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr); + } + } + return RequiredSize; +} + +//------------------------------------------------------------------------------------------------ +// Heap-allocating UpdateSubresources implementation +inline UINT64 UpdateSubresources( + _In_ ID3D12GraphicsCommandList* pCmdList, + _In_ ID3D12Resource* pDestinationResource, + _In_ ID3D12Resource* pIntermediate, + UINT64 IntermediateOffset, + _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, + _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, + _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData) +{ + UINT64 RequiredSize = 0; + UINT64 MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources; + if (MemToAlloc > SIZE_MAX) + { + return 0; + } + void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast(MemToAlloc)); + if (pMem == NULL) + { + return 0; + } + D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts = reinterpret_cast(pMem); + UINT64* pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources); + UINT* pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources); + + D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); + ID3D12Device* pDevice; + pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); + pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize); + pDevice->Release(); + + UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pSrcData); + HeapFree(GetProcessHeap(), 0, pMem); + return Result; +} + +//------------------------------------------------------------------------------------------------ +// Stack-allocating UpdateSubresources implementation +template +inline UINT64 UpdateSubresources( + _In_ ID3D12GraphicsCommandList* pCmdList, + _In_ ID3D12Resource* pDestinationResource, + _In_ ID3D12Resource* pIntermediate, + UINT64 IntermediateOffset, + _In_range_(0, MaxSubresources) UINT FirstSubresource, + _In_range_(1, MaxSubresources - FirstSubresource) UINT NumSubresources, + _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData) +{ + UINT64 RequiredSize = 0; + D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources]; + UINT NumRows[MaxSubresources]; + UINT64 RowSizesInBytes[MaxSubresources]; + + D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); + ID3D12Device* pDevice; + pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); + pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize); + pDevice->Release(); + + return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData); +} + +//------------------------------------------------------------------------------------------------ +inline bool D3D12IsLayoutOpaque( D3D12_TEXTURE_LAYOUT Layout ) +{ return Layout == D3D12_TEXTURE_LAYOUT_UNKNOWN || Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE; } + +//------------------------------------------------------------------------------------------------ +inline ID3D12CommandList * const * CommandListCast(ID3D12GraphicsCommandList * const * pp) +{ + // This cast is useful for passing strongly typed command list pointers into + // ExecuteCommandLists. + // This cast is valid as long as the const-ness is respected. D3D12 APIs do + // respect the const-ness of their arguments. + return reinterpret_cast(pp); +} + + +#endif // defined( __cplusplus ) + +#endif //__D3DX12_H__ + + + diff --git a/samples/dual_layer/D3D12/src/imgui/imconfig.h b/samples/dual_layer/D3D12/src/imgui/imconfig.h new file mode 100644 index 0000000..20f58b2 --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/imconfig.h @@ -0,0 +1,56 @@ +//----------------------------------------------------------------------------- +// USER IMPLEMENTATION +// This file contains compile-time options for ImGui. +// Other options (memory allocation overrides, callbacks, etc.) can be set at runtime via the ImGuiIO structure - ImGui::GetIO(). +//----------------------------------------------------------------------------- + +#pragma once + +//---- Define assertion handler. Defaults to calling assert(). +//#define IM_ASSERT(_EXPR) MyAssert(_EXPR) + +//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows. +//#define IMGUI_API __declspec( dllexport ) +//#define IMGUI_API __declspec( dllimport ) + +//---- Include imgui_user.inl at the end of imgui.cpp so you can include code that extends ImGui using its private data/functions. +//#define IMGUI_INCLUDE_IMGUI_USER_INL + +//---- Include imgui_user.h at the end of imgui.h +//#define IMGUI_INCLUDE_IMGUI_USER_H + +//---- Don't implement default handlers for Windows (so as not to link with OpenClipboard() and others Win32 functions) +//#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS +//#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS + +//---- Don't implement help and test window functionality (ShowUserGuide()/ShowStyleEditor()/ShowTestWindow() methods will be empty) +//#define IMGUI_DISABLE_TEST_WINDOWS + +//---- Don't define obsolete functions names +//#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS + +//---- Implement STB libraries in a namespace to avoid conflicts +//#define IMGUI_STB_NAMESPACE ImGuiStb + +//---- Define constructor and implicit cast operators to convert back<>forth from your math types and ImVec2/ImVec4. +/* +#define IM_VEC2_CLASS_EXTRA \ + ImVec2(const MyVec2& f) { x = f.x; y = f.y; } \ + operator MyVec2() const { return MyVec2(x,y); } + +#define IM_VEC4_CLASS_EXTRA \ + ImVec4(const MyVec4& f) { x = f.x; y = f.y; z = f.z; w = f.w; } \ + operator MyVec4() const { return MyVec4(x,y,z,w); } +*/ + +//---- Freely implement extra functions within the ImGui:: namespace. +//---- Declare helpers or widgets implemented in imgui_user.inl or elsewhere, so end-user doesn't need to include multiple files. +//---- e.g. you can create variants of the ImGui::Value() helper for your low-level math types, or your own widgets/helpers. +/* +namespace ImGui +{ + void Value(const char* prefix, const MyVec2& v, const char* float_format = NULL); + void Value(const char* prefix, const MyVec4& v, const char* float_format = NULL); +} +*/ + diff --git a/samples/dual_layer/D3D12/src/imgui/imgui.cpp b/samples/dual_layer/D3D12/src/imgui/imgui.cpp new file mode 100644 index 0000000..d9b0cf2 --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/imgui.cpp @@ -0,0 +1,8920 @@ +// ImGui library v1.44 +// Main code & documentation + +// See ImGui::ShowTestWindow() in imgui_demo.cpp for demo code. +// Read 'Programmer guide' below for notes on how to setup ImGui in your codebase. +// Get latest version at https://github.com/ocornut/imgui +// Releases change-log at https://github.com/ocornut/imgui/releases +// Developed by Omar Cornut and ImGui contributors. + +/* + + Index + - MISSION STATEMENT + - END-USER GUIDE + - PROGRAMMER GUIDE (read me!) + - API BREAKING CHANGES (read me when you update!) + - FREQUENTLY ASKED QUESTIONS (FAQ), TIPS + - How do I update to a newer version of ImGui? + - Can I have multiple widgets with the same label? Can I have widget without a label? (Yes) + - Why is my text output blurry? + - How can I load a different font than the default? + - How can I load multiple fonts? + - How can I display and input non-latin characters such as Chinese, Japanese, Korean, Cyrillic? + - ISSUES & TODO-LIST + - CODE + + + MISSION STATEMENT + ================= + + - easy to use to create code-driven and data-driven tools + - easy to use to create ad hoc short-lived tools and long-lived, more elaborate tools + - easy to hack and improve + - minimize screen real-estate usage + - minimize setup and maintenance + - minimize state storage on user side + - portable, minimize dependencies, run on target (consoles, phones, etc.) + - efficient runtime (NB- we do allocate when "growing" content - creating a window / opening a tree node for the first time, etc. - but a typical frame won't allocate anything) + - read about immediate-mode gui principles @ http://mollyrocket.com/861, http://mollyrocket.com/forums/index.html + + Designed for developers and content-creators, not the typical end-user! Some of the weaknesses includes: + - doesn't look fancy, doesn't animate + - limited layout features, intricate layouts are typically crafted in code + - occasionally uses statically sized buffers for string manipulations - won't crash, but some very long pieces of text may be clipped. functions like ImGui::TextUnformatted() don't have such restriction. + + + END-USER GUIDE + ============== + + - double-click title bar to collapse window + - click upper right corner to close a window, available when 'bool* p_opened' is passed to ImGui::Begin() + - click and drag on lower right corner to resize window + - click and drag on any empty space to move window + - double-click/double-tap on lower right corner grip to auto-fit to content + - TAB/SHIFT+TAB to cycle through keyboard editable fields + - use mouse wheel to scroll + - use CTRL+mouse wheel to zoom window contents (if IO.FontAllowScaling is true) + - CTRL+Click on a slider or drag box to input value as text + - text editor: + - Hold SHIFT or use mouse to select text. + - CTRL+Left/Right to word jump + - CTRL+Shift+Left/Right to select words + - CTRL+A our Double-Click to select all + - CTRL+X,CTRL+C,CTRL+V to use OS clipboard + - CTRL+Z,CTRL+Y to undo/redo + - ESCAPE to revert text to its original value + - You can apply arithmetic operators +,*,/ on numerical values. Use +- to subtract (because - would set a negative value!) + + + PROGRAMMER GUIDE + ================ + + - read the FAQ below this section! + - your code creates the UI, if your code doesn't run the UI is gone! == very dynamic UI, no construction/destructions steps, less data retention on your side, no state duplication, less sync, less bugs. + - call and read ImGui::ShowTestWindow() for demo code demonstrating most features. + - see examples/ folder for standalone sample applications. e.g. examples/opengl_example/ + - customization: PushStyleColor()/PushStyleVar() or the style editor to tweak the look of the interface (e.g. if you want a more compact UI or a different color scheme). + + - getting started: + - initialisation: call ImGui::GetIO() to retrieve the ImGuiIO structure and fill the 'Settings' data. + - every frame: + 1/ in your mainloop or right after you got your keyboard/mouse info, call ImGui::GetIO() and fill the 'Input' data, then call ImGui::NewFrame(). + 2/ use any ImGui function you want between NewFrame() and Render() + 3/ ImGui::Render() to render all the accumulated command-lists. it will call your RenderDrawListFn handler that you set in the IO structure. + - all rendering information are stored into command-lists until ImGui::Render() is called. + - ImGui never touches or know about your GPU state. the only function that knows about GPU is the RenderDrawListFn handler that you must provide. + - effectively it means you can create widgets at any time in your code, regardless of "update" vs "render" considerations. + - refer to the examples applications in the examples/ folder for instruction on how to setup your code. + - a typical application skeleton may be: + + // Application init + ImGuiIO& io = ImGui::GetIO(); + io.DisplaySize.x = 1920.0f; + io.DisplaySize.y = 1280.0f; + io.DeltaTime = 1.0f/60.0f; + io.IniFilename = "imgui.ini"; + // TODO: Fill others settings of the io structure + + // Load texture + unsigned char* pixels; + int width, height, bytes_per_pixels; + io.Fonts->GetTexDataAsRGBA32(pixels, &width, &height, &bytes_per_pixels); + // TODO: copy texture to graphics memory. + // TODO: store your texture pointer/identifier in 'io.Fonts->TexID' + + // Application main loop + while (true) + { + // 1) get low-level input + // e.g. on Win32, GetKeyboardState(), or poll your events, etc. + + // 2) TODO: fill all fields of IO structure and call NewFrame + ImGuiIO& io = ImGui::GetIO(); + io.MousePos = mouse_pos; + io.MouseDown[0] = mouse_button_0; + io.KeysDown[i] = ... + ImGui::NewFrame(); + + // 3) most of your application code here - you can use any of ImGui::* functions at any point in the frame + ImGui::Begin("My window"); + ImGui::Text("Hello, world."); + ImGui::End(); + GameUpdate(); + GameRender(); + + // 4) render & swap video buffers + ImGui::Render(); + // swap video buffer, etc. + } + + - after calling ImGui::NewFrame() you can read back 'io.WantCaptureMouse' and 'io.WantCaptureKeyboard' to tell if ImGui + wants to use your inputs. if it does you can discard/hide the inputs from the rest of your application. + + API BREAKING CHANGES + ==================== + + Occasionally introducing changes that are breaking the API. The breakage are generally minor and easy to fix. + Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code. + Also read releases logs https://github.com/ocornut/imgui/releases for more details. + + - 2015/08/05 (1.44) - split imgui.cpp into extra files: imgui_demo.cpp imgui_draw.cpp imgui_internal.h that you need to add to your project. + - 2015/07/18 (1.44) - fixed angles in ImDrawList::PathArcTo(), PathArcToFast() (introduced in 1.43) being off by an extra PI for no justifiable reason + - 2015/07/14 (1.43) - add new ImFontAtlas::AddFont() API. For the old AddFont***, moved the 'font_no' parameter of ImFontAtlas::AddFont** functions to the ImFontConfig structure. + you need to render your textured triangles with bilinear filtering to benefit from sub-pixel positioning of text. + - 2015/07/08 (1.43) - switched rendering data to use indexed rendering. this is saving a fair amount of CPU/GPU and enables us to get anti-aliasing for a marginal cost. + this necessary change will break your rendering function! the fix should be very easy. sorry for that :( + - if you are using a vanilla copy of one of the imgui_impl_XXXX.cpp provided in the example, you just need to update your copy and you can ignore the rest. + - the signature of the io.RenderDrawListsFn handler has changed! + ImGui_XXXX_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_count) + became: + ImGui_XXXX_RenderDrawLists(ImDrawData* draw_data). + argument 'cmd_lists' -> 'draw_data->CmdLists' + argument 'cmd_lists_count' -> 'draw_data->CmdListsCount' + ImDrawList 'commands' -> 'CmdBuffer' + ImDrawList 'vtx_buffer' -> 'VtxBuffer' + ImDrawList n/a -> 'IdxBuffer' (new) + ImDrawCmd 'vtx_count' -> 'ElemCount' + ImDrawCmd 'clip_rect' -> 'ClipRect' + ImDrawCmd 'user_callback' -> 'UserCallback' + ImDrawCmd 'texture_id' -> 'TextureId' + - each ImDrawList now contains both a vertex buffer and an index buffer. For each command, render ElemCount/3 triangles using indices from the index buffer. + - if you REALLY cannot render indexed primitives, you can call the draw_data->DeIndexAllBuffers() method to de-index the buffers. This is slow and a waste of CPU/GPU. Prefer using indexed rendering! + - refer to code in the examples/ folder or ask on the GitHub if you are unsure of how to upgrade. please upgrade! + - 2015/07/10 (1.43) - changed SameLine() parameters from int to float. + - 2015/07/02 (1.42) - renamed SetScrollPosHere() to SetScrollFromCursorPos(). Kept inline redirection function (will obsolete). + - 2015/07/02 (1.42) - renamed GetScrollPosY() to GetScrollY(). Necessary to reduce confusion along with other scrolling functions, because positions (e.g. cursor position) are not equivalent to scrolling amount. + - 2015/06/14 (1.41) - changed ImageButton() default bg_col parameter from (0,0,0,1) (black) to (0,0,0,0) (transparent) - makes a difference when texture have transparence + - 2015/06/14 (1.41) - changed Selectable() API from (label, selected, size) to (label, selected, flags, size). Size override should have been rarely be used. Sorry! + - 2015/05/31 (1.40) - renamed GetWindowCollapsed() to IsWindowCollapsed() for consistency. Kept inline redirection function (will obsolete). + - 2015/05/31 (1.40) - renamed IsRectClipped() to IsRectVisible() for consistency. Note that return value is opposite! Kept inline redirection function (will obsolete). + - 2015/05/27 (1.40) - removed the third 'repeat_if_held' parameter from Button() - sorry! it was rarely used and inconsistent. Use PushButtonRepeat(true) / PopButtonRepeat() to enable repeat on desired buttons. + - 2015/05/11 (1.40) - changed BeginPopup() API, takes a string identifier instead of a bool. ImGui needs to manage the open/closed state of popups. Call OpenPopup() to actually set the "opened" state of a popup. BeginPopup() returns true if the popup is opened. + - 2015/05/03 (1.40) - removed style.AutoFitPadding, using style.WindowPadding makes more sense (the default values were already the same). + - 2015/04/13 (1.38) - renamed IsClipped() to IsRectClipped(). Kept inline redirection function (will obsolete). + - 2015/04/09 (1.38) - renamed ImDrawList::AddArc() to ImDrawList::AddArcFast() for compatibility with future API + - 2015/04/03 (1.38) - removed ImGuiCol_CheckHovered, ImGuiCol_CheckActive, replaced with the more general ImGuiCol_FrameBgHovered, ImGuiCol_FrameBgActive. + - 2014/04/03 (1.38) - removed support for passing -FLT_MAX..+FLT_MAX as the range for a SliderFloat(). Use DragFloat() or Inputfloat() instead. + - 2015/03/17 (1.36) - renamed GetItemBoxMin()/GetItemBoxMax()/IsMouseHoveringBox() to GetItemRectMin()/GetItemRectMax()/IsMouseHoveringRect(). Kept inline redirection function (will obsolete). + - 2015/03/15 (1.36) - renamed style.TreeNodeSpacing to style.IndentSpacing, ImGuiStyleVar_TreeNodeSpacing to ImGuiStyleVar_IndentSpacing + - 2015/03/13 (1.36) - renamed GetWindowIsFocused() to IsWindowFocused(). Kept inline redirection function (will obsolete). + - 2015/03/08 (1.35) - renamed style.ScrollBarWidth to style.ScrollbarWidth + - 2015/02/27 (1.34) - renamed OpenNextNode(bool) to SetNextTreeNodeOpened(bool, ImGuiSetCond). Kept inline redirection function (will obsolete). + - 2015/02/27 (1.34) - renamed ImGuiSetCondition_*** to ImGuiSetCond_***, and _FirstUseThisSession becomes _Once. + - 2015/02/11 (1.32) - changed text input callback ImGuiTextEditCallback return type from void-->int. reserved for future use, return 0 for now. + - 2015/02/10 (1.32) - renamed GetItemWidth() to CalcItemWidth() to clarify its evolving behavior + - 2015/02/08 (1.31) - renamed GetTextLineSpacing() to GetTextLineHeightWithSpacing() + - 2015/02/01 (1.31) - removed IO.MemReallocFn (unused) + - 2015/01/19 (1.30) - renamed ImGuiStorage::GetIntPtr()/GetFloatPtr() to GetIntRef()/GetIntRef() because Ptr was conflicting with actual pointer storage functions. + - 2015/01/11 (1.30) - big font/image API change! now loads TTF file. allow for multiple fonts. no need for a PNG loader. + (1.30) - removed GetDefaultFontData(). uses io.Fonts->GetTextureData*() API to retrieve uncompressed pixels. + this sequence: + const void* png_data; + unsigned int png_size; + ImGui::GetDefaultFontData(NULL, NULL, &png_data, &png_size); + // + became: + unsigned char* pixels; + int width, height; + io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); + // + io.Fonts->TexID = (your_texture_identifier); + you now have much more flexibility to load multiple TTF fonts and manage the texture buffer for internal needs. + it is now recommended that you sample the font texture with bilinear interpolation. + (1.30) - added texture identifier in ImDrawCmd passed to your render function (we can now render images). make sure to set io.Fonts->TexID. + (1.30) - removed IO.PixelCenterOffset (unnecessary, can be handled in user projection matrix) + (1.30) - removed ImGui::IsItemFocused() in favor of ImGui::IsItemActive() which handles all widgets + - 2014/12/10 (1.18) - removed SetNewWindowDefaultPos() in favor of new generic API SetNextWindowPos(pos, ImGuiSetCondition_FirstUseEver) + - 2014/11/28 (1.17) - moved IO.Font*** options to inside the IO.Font-> structure (FontYOffset, FontTexUvForWhite, FontBaseScale, FontFallbackGlyph) + - 2014/11/26 (1.17) - reworked syntax of IMGUI_ONCE_UPON_A_FRAME helper macro to increase compiler compatibility + - 2014/11/07 (1.15) - renamed IsHovered() to IsItemHovered() + - 2014/10/02 (1.14) - renamed IMGUI_INCLUDE_IMGUI_USER_CPP to IMGUI_INCLUDE_IMGUI_USER_INL and imgui_user.cpp to imgui_user.inl (more IDE friendly) + - 2014/09/25 (1.13) - removed 'text_end' parameter from IO.SetClipboardTextFn (the string is now always zero-terminated for simplicity) + - 2014/09/24 (1.12) - renamed SetFontScale() to SetWindowFontScale() + - 2014/09/24 (1.12) - moved IM_MALLOC/IM_REALLOC/IM_FREE preprocessor defines to IO.MemAllocFn/IO.MemReallocFn/IO.MemFreeFn + - 2014/08/30 (1.09) - removed IO.FontHeight (now computed automatically) + - 2014/08/30 (1.09) - moved IMGUI_FONT_TEX_UV_FOR_WHITE preprocessor define to IO.FontTexUvForWhite + - 2014/08/28 (1.09) - changed the behavior of IO.PixelCenterOffset following various rendering fixes + + + FREQUENTLY ASKED QUESTIONS (FAQ), TIPS + ====================================== + + Q: How do I update to a newer version of ImGui? + A: Overwrite the following files: + imgui.cpp + imgui.h + imgui_demo.cpp + imgui_draw.cpp + imgui_internal.h + stb_rect_pack.h + stb_textedit.h + stb_truetype.h + Don't overwrite imconfig.h if you have modification to your copy. + Check the "API BREAKING CHANGES" sections for a list of occasional API breaking changes. If you have a problem with a function, search for its name + in the code, there will likely be a comment about it. Please report any issue to the GitHub page! + + Q: Can I have multiple widgets with the same label? Can I have widget without a label? (Yes) + A: Yes. A primer on the use of labels/IDs in ImGui.. + + - Elements that are not clickable, such as Text() items don't need an ID. + + - Interactive widgets require state to be carried over multiple frames (most typically ImGui often needs to remember what is the "active" widget). + to do so they need an unique ID. unique ID are typically derived from a string label, an integer index or a pointer. + + Button("OK"); // Label = "OK", ID = hash of "OK" + Button("Cancel"); // Label = "Cancel", ID = hash of "Cancel" + + - ID are uniquely scoped within windows, tree nodes, etc. so no conflict can happen if you have two buttons called "OK" in two different windows + or in two different locations of a tree. + + - if you have a same ID twice in the same location, you'll have a conflict: + + Button("OK"); + Button("OK"); // ID collision! Both buttons will be treated as the same. + + Fear not! this is easy to solve and there are many ways to solve it! + + - when passing a label you can optionally specify extra unique ID information within string itself. This helps solving the simpler collision cases. + use "##" to pass a complement to the ID that won't be visible to the end-user: + + Button("Play##0"); // Label = "Play", ID = hash of "Play##0" + Button("Play##1"); // Label = "Play", ID = hash of "Play##1" (different from above) + + - so if you want to hide the label but need an ID: + + Checkbox("##On", &b); // Label = "", ID = hash of "##On" + + - occasionally (rarely) you might want change a label while preserving a constant ID. This allows you to animate labels. + use "###" to pass a label that isn't part of ID: + + Button("Hello###ID"; // Label = "Hello", ID = hash of "ID" + Button("World###ID"; // Label = "World", ID = hash of "ID" (same as above) + + - use PushID() / PopID() to create scopes and avoid ID conflicts within the same Window. + this is the most convenient way of distinguish ID if you are iterating and creating many UI elements. + you can push a pointer, a string or an integer value. remember that ID are formed from the addition of everything in the ID stack! + + for (int i = 0; i < 100; i++) + { + PushID(i); + Button("Click"); // Label = "Click", ID = hash of integer + "label" (unique) + PopID(); + } + + for (int i = 0; i < 100; i++) + { + MyObject* obj = Objects[i]; + PushID(obj); + Button("Click"); // Label = "Click", ID = hash of pointer + "label" (unique) + PopID(); + } + + for (int i = 0; i < 100; i++) + { + MyObject* obj = Objects[i]; + PushID(obj->Name); + Button("Click"); // Label = "Click", ID = hash of string + "label" (unique) + PopID(); + } + + - more example showing that you can stack multiple prefixes into the ID stack: + + Button("Click"); // Label = "Click", ID = hash of "Click" + PushID("node"); + Button("Click"); // Label = "Click", ID = hash of "node" + "Click" + PushID(my_ptr); + Button("Click"); // Label = "Click", ID = hash of "node" + ptr + "Click" + PopID(); + PopID(); + + - tree nodes implicitly creates a scope for you by calling PushID(). + + Button("Click"); // Label = "Click", ID = hash of "Click" + if (TreeNode("node")) + { + Button("Click"); // Label = "Click", ID = hash of "node" + "Click" + TreePop(); + } + + - when working with trees, ID are used to preserve the opened/closed state of each tree node. + depending on your use cases you may want to use strings, indices or pointers as ID. + e.g. when displaying a single object that may change over time (1-1 relationship), using a static string as ID will preserve your node open/closed state when the targeted object change. + e.g. when displaying a list of objects, using indices or pointers as ID will preserve the node open/closed state differently. experiment and see what makes more sense! + + Q: Why is my text output blurry? + A: In your Render function, try translating your projection matrix by (0.5f,0.5f) or (0.375f,0.375f) + + Q: How can I load a different font than the default? (default is an embedded version of ProggyClean.ttf, rendered at size 13) + A: Use the font atlas to load the TTF file you want: + + io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels); + io.Fonts->GetTexDataAsRGBA32() or GetTexDataAsAlpha8() + + Q: How can I load multiple fonts? + A: Use the font atlas to pack them into a single texture: + + ImFont* font0 = io.Fonts->AddFontDefault(); + ImFont* font1 = io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels); + ImFont* font2 = io.Fonts->AddFontFromFileTTF("myfontfile2.ttf", size_in_pixels); + io.Fonts->GetTexDataAsRGBA32() or GetTexDataAsAlpha8() + // the first loaded font gets used by default + // use ImGui::PushFont()/ImGui::PopFont() to change the font at runtime + + // Options + ImFontConfig config; + config.OversampleH = 3; + config.OversampleV = 3; + config.GlyphExtraSpacing.x = 1.0f; + io.Fonts->LoadFromFileTTF("myfontfile.ttf", size_pixels, &config); + + // Combine multiple fonts into one + ImWchar ranges[] = { 0xf000, 0xf3ff, 0 }; + ImFontConfig config; + config.MergeMode = true; + io.Fonts->AddFontDefault(); + io.Fonts->LoadFromFileTTF("fontawesome-webfont.ttf", 16.0f, &config, ranges); + io.Fonts->LoadFromFileTTF("myfontfile.ttf", size_pixels, NULL, &config, io.Fonts->GetGlyphRangesJapanese()); + + Read extra_fonts/README.txt or ImFontAtlas class for more details. + + Q: How can I display and input non-latin characters such as Chinese, Japanese, Korean, Cyrillic? + A: When loading a font, pass custom Unicode ranges to specify the glyphs to load. ImGui will support UTF-8 encoding across the board. + Character input depends on you passing the right character code to io.AddInputCharacter(). The example applications do that. + + io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, io.Fonts->GetGlyphRangesJapanese()); // Load Japanese characters + io.Fonts->GetTexDataAsRGBA32() or GetTexDataAsAlpha8() + io.ImeWindowHandle = MY_HWND; // To input using Microsoft IME, give ImGui the hwnd of your application + + - tip: the construct 'IMGUI_ONCE_UPON_A_FRAME { ... }' will run the block of code only once a frame. You can use it to quickly add custom UI in the middle of a deep nested inner loop in your code. + - tip: you can create widgets without a Begin()/End() block, they will go in an implicit window called "Debug" + - tip: you can call Begin() multiple times with the same name during the same frame, it will keep appending to the same window. this is also useful to set yourself in the context of a window (to get/set other settings) + - tip: you can call Render() multiple times (e.g for VR renders). + - tip: call and read the ShowTestWindow() code for more example of how to use ImGui! + + + ISSUES & TODO-LIST + ================== + Issue numbers (#) refer to github issues. + The list below consist mostly of notes of things to do before they are requested/discussed by users (at that point it usually happens on the github) + + - window: autofit feedback loop when user relies on any dynamic layout (window width multiplier, column). maybe just clearly drop manual autofit? + - window: add a way for very transient windows (non-saved, temporary overlay over hundreds of objects) to "clean" up from the global window list. + - window: allow resizing of child windows (possibly given min/max for each axis?) + - window: background options for child windows, border option (disable rounding) + - window: resizing from any sides? + mouse cursor directives for app. + - window: get size/pos helpers given names (see discussion in #249) + - window: a collapsed window can be stuck behind the main menu bar? + - scrolling: add horizontal scroll +!- scrolling: allow immediately effective change of scroll if we haven't appended items yet + - widgets: display mode: widget-label, label-widget (aligned on column or using fixed size), label-newline-tab-widget etc. + - widgets: clean up widgets internal toward exposing everything. + - widgets: add a disabled/read-only mode (#211) + - main: considering adding EndFrame()/Init(). some constructs are awkward in the implementation because of the lack of them. + - main: IsItemHovered() make it more consistent for various type of widgets, widgets with multiple components, etc. also effectively IsHovered() region sometimes differs from hot region, e.g tree nodes + - main: IsItemHovered() info stored in a stack? so that 'if TreeNode() { Text; TreePop; } if IsHovered' return the hover state of the TreeNode? + - input text: add ImGuiInputTextFlags_EnterToApply? (off #218) + - input text multi-line: way to dynamically grow the buffer without forcing the user to initially allocate for worse case (follow up on #200) + - input text multi-line: line numbers? status bar? (follow up on #200) + - input number: optional range min/max for Input*() functions + - input number: holding [-]/[+] buttons could increase the step speed non-linearly (or user-controlled) + - input number: use mouse wheel to step up/down + - input number: applying arithmetics ops (+,-,*,/) messes up with text edit undo stack. + - text: proper alignment options + - layout: horizontal layout helper (#97) + - layout: more generic alignment state (left/right/centered) for single items? + - layout: clean up the InputFloatN/SliderFloatN/ColorEdit4 layout code. item width should include frame padding. + - columns: separator function or parameter that works within the column (currently Separator() bypass all columns) (#125) + - columns: declare column set (each column: fixed size, %, fill, distribute default size among fills) (#125) + - columns: columns header to act as button (~sort op) and allow resize/reorder (#125) + - columns: user specify columns size (#125) + - popup: border options. richer api like BeginChild() perhaps? (#197) + - combo: sparse combo boxes (via function call?) + - combo: contents should extends to fit label if combo widget is small + - combo/listbox: keyboard control. need InputText-like non-active focus + key handling. considering keybord for custom listbox (pr #203) + - listbox: multiple selection + - listbox: user may want to initial scroll to focus on the one selected value? + - listbox: keyboard navigation. + - listbox: scrolling should track modified selection. + - menus: local shortcuts, global shortcuts (#126) + - menus: icons + - menus: menubars: some sort of priority / effect of main menu-bar on desktop size? + - tabs + - separator: separator on the initial position of a window is not visible (cursorpos.y <= clippos.y) + - gauge: various forms of gauge/loading bars widgets + - color: add a better color picker (perhaps a popup). + - plot: plotlines should use the polygon-stroke facilities (currently issues with averaging normals) + - plot: make it easier for user to draw extra stuff into the graph (e.g: draw basis, highlight certain points, 2d plots, multiple plots) + - plot: "smooth" automatic scale over time, user give an input 0.0(full user scale) 1.0(full derived from value) + - plot: add a helper e.g. Plot(char* label, float value, float time_span=2.0f) that stores values and Plot them for you - probably another function name. and/or automatically allow to plot ANY displayed value (more reliance on stable ID) + - file selection widget -> build the tool in our codebase to improve model-dialog idioms + - slider: allow using the [-]/[+] buttons used by InputFloat()/InputInt() + - slider: initial absolute click is imprecise. change to relative movement slider (same as scrollbar). + - slider: add dragging-based widgets to edit values with mouse (on 2 axises), saving screen real-estate. + - slider: tint background based on value (e.g. v_min -> v_max, or use 0.0f either side of the sign) + - slider & drag: int data passing through a float + - drag float: up/down axis + - text edit: clean up the mess caused by converting UTF-8 <> wchar. the code is rather inefficient right now. + - text edit: centered text for slider as input text so it matches typical positioning. + - text edit: flag to disable live update of the user buffer. + - text edit: field resize behavior - field could stretch when being edited? hover tooltip shows more text? + - tree: add treenode/treepush int variants? because (void*) cast from int warns on some platforms/settings + - textwrapped: figure out better way to use TextWrapped() in an always auto-resize context (tooltip, etc.) (git issue #249) + - settings: write more decent code to allow saving/loading new fields + - settings: api for per-tool simple persistent data (bool,int,float,columns sizes,etc.) in .ini file + - style: store rounded corners in texture to use 1 quad per corner (filled and wireframe). so rounding have minor cost. + - style: colorbox not always square? + - text: simple markup language for color change? + - log: LogButtons() options for specifying depth and/or hiding depth slider + - log: have more control over the log scope (e.g. stop logging when leaving current tree node scope) + - log: be able to log anything (e.g. right-click on a window/tree-node, shows context menu? log into tty/file/clipboard) + - log: let user copy any window content to clipboard easily (CTRL+C on windows? while moving it? context menu?). code is commented because it fails with multiple Begin/End pairs. + - filters: set a current filter that tree node can automatically query to hide themselves + - filters: handle wildcards (with implicit leading/trailing *), regexps + - shortcuts: add a shortcut api, e.g. parse "&Save" and/or "Save (CTRL+S)", pass in to widgets or provide simple ways to use (button=activate, input=focus) +!- keyboard: tooltip & combo boxes are messing up / not honoring keyboard tabbing + - keyboard: full keyboard navigation and focus. + - focus: SetKeyboardFocusHere() on with >= 0 offset could be done on same frame (else latch and modulate on beginning of next frame) + - input: rework IO to be able to pass actual events to fix temporal aliasing issues. + - input: support track pad style scrolling & slider edit. + - memory: add a way to discard allocs of unused/transient windows. with the current architecture new windows (including popup, opened combos, listbox) perform at least 3 allocs. + - misc: mark printf compiler attributes on relevant functions + - misc: provide a way to compile out the entire implementation while providing a dummy API (e.g. #define IMGUI_DUMMY_IMPL) + - misc: double-clicking on title bar to minimize isn't consistent, perhaps move to single-click on left-most collapse icon? + - style editor: have a more global HSV setter (e.g. alter hue on all elements). consider replacing active/hovered by offset in HSV space? + - style editor: color child window height expressed in multiple of line height. + - optimization/render: merge command-lists with same clip-rect into one even if they aren't sequential? (as long as in-between clip rectangle don't overlap)? + - optimization: turn some the various stack vectors into statically-sized arrays + - optimization: better clipping for multi-component widgets +*/ + +#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include "imgui.h" +#define IMGUI_DEFINE_MATH_OPERATORS +#include "imgui_internal.h" + +#include // toupper, isprint +#include // sqrtf, fabsf, fmodf, powf, cosf, sinf, floorf, ceilf +#include // vsnprintf, sscanf, printf +#include // new (ptr) +#if defined(_MSC_VER) && _MSC_VER <= 1500 // MSVC 2008 or earlier +#include // intptr_t +#else +#include // intptr_t +#endif + +#ifdef _MSC_VER +#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) +#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen +#define snprintf _snprintf +#endif + +// Clang warnings with -Weverything +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wold-style-cast" // warning : use of old-style cast // yes, they are more terse. +#pragma clang diagnostic ignored "-Wfloat-equal" // warning : comparing floating point with == or != is unsafe // storing and comparing against same constants ok. +#pragma clang diagnostic ignored "-Wformat-nonliteral" // warning : format string is not a string literal // passing non-literal to vsnformat(). yes, user passing incorrect format strings can crash the code. +#pragma clang diagnostic ignored "-Wexit-time-destructors" // warning : declaration requires an exit-time destructor // exit-time destruction order is undefined. if MemFree() leads to users code that has been disabled before exit it might cause problems. ImGui coding style welcomes static/globals. +#pragma clang diagnostic ignored "-Wglobal-constructors" // warning : declaration requires a global destructor // similar to above, not sure what the exact difference it. +#pragma clang diagnostic ignored "-Wsign-conversion" // warning : implicit conversion changes signedness // +#pragma clang diagnostic ignored "-Wmissing-noreturn" // warning : function xx could be declared with attribute 'noreturn' warning // GetDefaultFontData() asserts which some implementation makes it never return. +#pragma clang diagnostic ignored "-Wdeprecated-declarations"// warning : 'xx' is deprecated: The POSIX name for this item.. // for strdup used in demo code (so user can copy & paste the code) +#pragma clang diagnostic ignored "-Wint-to-void-pointer-cast" // warning : cast to 'void *' from smaller integer type 'int' +#endif +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wunused-function" // warning: 'xxxx' defined but not used +#pragma GCC diagnostic ignored "-Wint-to-pointer-cast" // warning: cast to pointer from integer of different size +#endif + +//------------------------------------------------------------------------- +// Forward Declarations +//------------------------------------------------------------------------- + +static void LogRenderedText(const ImVec2& ref_pos, const char* text, const char* text_end = NULL); +static const char* FindTextDisplayEnd(const char* text, const char* text_end = NULL); + +static void PushMultiItemsWidths(int components, float w_full = 0.0f); +static float GetDraggedColumnOffset(int column_index); + +static bool IsKeyPressedMap(ImGuiKey key, bool repeat = true); + +static void SetCurrentFont(ImFont* font); +static void SetCurrentWindow(ImGuiWindow* window); +static void SetWindowScrollY(ImGuiWindow* window, float new_scroll_y); +static void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiSetCond cond); +static void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiSetCond cond); +static void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiSetCond cond); +static ImGuiWindow* FindWindowByName(const char* name); +static ImGuiWindow* FindHoveredWindow(ImVec2 pos, bool excluding_childs); +static ImGuiWindow* CreateNewWindow(const char* name, ImVec2 size, ImGuiWindowFlags flags); +static inline bool IsWindowContentHoverable(ImGuiWindow* window); +static void ClearSetNextWindowData(); +static void CheckStacksSize(ImGuiWindow* window, bool write); +static void Scrollbar(ImGuiWindow* window); +static bool CloseWindowButton(bool* p_opened); + +static void AddDrawListToRenderList(ImVector& out_render_list, ImDrawList* draw_list); +static void AddWindowToRenderList(ImVector& out_render_list, ImGuiWindow* window); +static void AddWindowToSortedBuffer(ImVector& out_sorted_windows, ImGuiWindow* window); + +static ImGuiIniData* FindWindowSettings(const char* name); +static ImGuiIniData* AddWindowSettings(const char* name); +static void LoadSettings(); +static void SaveSettings(); +static void MarkSettingsDirty(); + +static void PushClipRect(const ImRect& clip_rect, bool clipped_by_current = true); +static void PushColumnClipRect(int column_index = -1); +static void PopClipRect(); +static ImRect GetVisibleRect(); + +static bool BeginPopupEx(const char* str_id, ImGuiWindowFlags extra_flags); +static void CloseInactivePopups(); +static void ClosePopupToLevel(int remaining); +static void ClosePopup(ImGuiID id); +static bool IsPopupOpen(ImGuiID id); +static ImGuiWindow* GetFrontMostModalRootWindow(); +static ImVec2 FindBestPopupWindowPos(const ImVec2& base_pos, const ImVec2& size, ImGuiWindowFlags flags, int* last_dir, const ImRect& r_inner); + +static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data); +static int InputTextCalcTextLenAndLineCount(const char* text_begin, const char** out_text_end); +static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const ImWchar* text_end, const ImWchar** remaining = NULL, ImVec2* out_offset = NULL, bool stop_on_new_line = false); + +static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, const char* display_format, char* buf, int buf_size); +static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, int decimal_precision, char* buf, int buf_size); +static void DataTypeApplyOp(ImGuiDataType data_type, int op, void* value1, const void* value2); +static void DataTypeApplyOpFromText(const char* buf, const char* initial_value_buf, ImGuiDataType data_type, void* data_ptr, const char* scalar_format); + +//----------------------------------------------------------------------------- +// Platform dependent default implementations +//----------------------------------------------------------------------------- + +static const char* GetClipboardTextFn_DefaultImpl(); +static void SetClipboardTextFn_DefaultImpl(const char* text); +static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y); + +//----------------------------------------------------------------------------- +// Context +//----------------------------------------------------------------------------- + +// We access everything through this pointer (always assumed to be != NULL) +// You can swap the pointer to a different context by calling ImGui::SetInternalState() +static ImGuiState GImDefaultState; +ImGuiState* GImGui = &GImDefaultState; + +// Statically allocated default font atlas. This is merely a maneuver to keep ImFontAtlas definition at the bottom of the .h file (otherwise it'd be inside ImGuiIO) +// Also we wouldn't be able to new() one at this point, before users may define IO.MemAllocFn. +static ImFontAtlas GImDefaultFontAtlas; + +//----------------------------------------------------------------------------- +// User facing structures +//----------------------------------------------------------------------------- + +ImGuiStyle::ImGuiStyle() +{ + Alpha = 1.0f; // Global alpha applies to everything in ImGui + WindowPadding = ImVec2(8,8); // Padding within a window + WindowMinSize = ImVec2(32,32); // Minimum window size + WindowRounding = 9.0f; // Radius of window corners rounding. Set to 0.0f to have rectangular windows + WindowTitleAlign = ImGuiAlign_Left; // Alignment for title bar text + ChildWindowRounding = 0.0f; // Radius of child window corners rounding. Set to 0.0f to have rectangular windows + FramePadding = ImVec2(4,3); // Padding within a framed rectangle (used by most widgets) + FrameRounding = 0.0f; // Radius of frame corners rounding. Set to 0.0f to have rectangular frames (used by most widgets). + ItemSpacing = ImVec2(8,4); // Horizontal and vertical spacing between widgets/lines + ItemInnerSpacing = ImVec2(4,4); // Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label) + TouchExtraPadding = ImVec2(0,0); // Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! + WindowFillAlphaDefault = 0.70f; // Default alpha of window background, if not specified in ImGui::Begin() + IndentSpacing = 22.0f; // Horizontal spacing when e.g. entering a tree node + ColumnsMinSpacing = 6.0f; // Minimum horizontal spacing between two columns + ScrollbarWidth = 16.0f; // Width of the vertical scrollbar + ScrollbarRounding = 0.0f; // Radius of grab corners rounding for scrollbar + GrabMinSize = 10.0f; // Minimum width/height of a grab box for slider/scrollbar + GrabRounding = 0.0f; // Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. + DisplayWindowPadding = ImVec2(22,22); // Window positions are clamped to be visible within the display area by at least this amount. Only covers regular windows. + DisplaySafeAreaPadding = ImVec2(4,4); // If you cannot see the edge of your screen (e.g. on a TV) increase the safe area padding. Covers popups/tooltips as well regular windows. + AntiAliasedLines = true; // Enable anti-aliasing on lines/borders. Disable if you are really short on CPU/GPU. + AntiAliasedShapes = true; // Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.) + + Colors[ImGuiCol_Text] = ImVec4(0.90f, 0.90f, 0.90f, 1.00f); + Colors[ImGuiCol_TextDisabled] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f); + Colors[ImGuiCol_WindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 1.00f); + Colors[ImGuiCol_ChildWindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); + Colors[ImGuiCol_Border] = ImVec4(0.70f, 0.70f, 0.70f, 0.65f); + Colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); + Colors[ImGuiCol_FrameBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.30f); // Background of checkbox, radio button, plot, slider, text input + Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.90f, 0.80f, 0.80f, 0.40f); + Colors[ImGuiCol_FrameBgActive] = ImVec4(0.90f, 0.65f, 0.65f, 0.45f); + Colors[ImGuiCol_TitleBg] = ImVec4(0.50f, 0.50f, 1.00f, 0.45f); + Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.40f, 0.40f, 0.80f, 0.20f); + Colors[ImGuiCol_TitleBgActive] = ImVec4(0.50f, 0.50f, 1.00f, 0.55f); + Colors[ImGuiCol_MenuBarBg] = ImVec4(0.40f, 0.40f, 0.55f, 0.60f); + Colors[ImGuiCol_ScrollbarBg] = ImVec4(0.40f, 0.40f, 0.80f, 0.15f); + Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.40f, 0.40f, 0.80f, 0.30f); + Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.40f, 0.40f, 0.80f, 0.40f); + Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.80f, 0.50f, 0.50f, 0.40f); + Colors[ImGuiCol_ComboBg] = ImVec4(0.20f, 0.20f, 0.20f, 0.99f); + Colors[ImGuiCol_CheckMark] = ImVec4(0.90f, 0.90f, 0.90f, 0.50f); + Colors[ImGuiCol_SliderGrab] = ImVec4(1.00f, 1.00f, 1.00f, 0.30f); + Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.80f, 0.50f, 0.50f, 1.00f); + Colors[ImGuiCol_Button] = ImVec4(0.67f, 0.40f, 0.40f, 0.60f); + Colors[ImGuiCol_ButtonHovered] = ImVec4(0.67f, 0.40f, 0.40f, 1.00f); + Colors[ImGuiCol_ButtonActive] = ImVec4(0.80f, 0.50f, 0.50f, 1.00f); + Colors[ImGuiCol_Header] = ImVec4(0.40f, 0.40f, 0.90f, 0.45f); + Colors[ImGuiCol_HeaderHovered] = ImVec4(0.45f, 0.45f, 0.90f, 0.80f); + Colors[ImGuiCol_HeaderActive] = ImVec4(0.53f, 0.53f, 0.87f, 0.80f); + Colors[ImGuiCol_Column] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f); + Colors[ImGuiCol_ColumnHovered] = ImVec4(0.70f, 0.60f, 0.60f, 1.00f); + Colors[ImGuiCol_ColumnActive] = ImVec4(0.90f, 0.70f, 0.70f, 1.00f); + Colors[ImGuiCol_ResizeGrip] = ImVec4(1.00f, 1.00f, 1.00f, 0.30f); + Colors[ImGuiCol_ResizeGripHovered] = ImVec4(1.00f, 1.00f, 1.00f, 0.60f); + Colors[ImGuiCol_ResizeGripActive] = ImVec4(1.00f, 1.00f, 1.00f, 0.90f); + Colors[ImGuiCol_CloseButton] = ImVec4(0.50f, 0.50f, 0.90f, 0.50f); + Colors[ImGuiCol_CloseButtonHovered] = ImVec4(0.70f, 0.70f, 0.90f, 0.60f); + Colors[ImGuiCol_CloseButtonActive] = ImVec4(0.70f, 0.70f, 0.70f, 1.00f); + Colors[ImGuiCol_PlotLines] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f); + Colors[ImGuiCol_PlotLinesHovered] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); + Colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); + Colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f); + Colors[ImGuiCol_TextSelectedBg] = ImVec4(0.00f, 0.00f, 1.00f, 0.35f); + Colors[ImGuiCol_TooltipBg] = ImVec4(0.05f, 0.05f, 0.10f, 0.90f); + Colors[ImGuiCol_ModalWindowDarkening] = ImVec4(0.20f, 0.20f, 0.20f, 0.35f); +} + +ImGuiIO::ImGuiIO() +{ + // Most fields are initialized with zero + memset(this, 0, sizeof(*this)); + + DisplaySize = ImVec2(-1.0f, -1.0f); + DeltaTime = 1.0f/60.0f; + IniSavingRate = 5.0f; + IniFilename = "imgui.ini"; + LogFilename = "imgui_log.txt"; + Fonts = &GImDefaultFontAtlas; + FontGlobalScale = 1.0f; + MousePos = ImVec2(-1,-1); + MousePosPrev = ImVec2(-1,-1); + MouseDoubleClickTime = 0.30f; + MouseDoubleClickMaxDist = 6.0f; + MouseDragThreshold = 6.0f; + for (int i = 0; i < ImGuiKey_COUNT; i++) + KeyMap[i] = -1; + KeyRepeatDelay = 0.250f; + KeyRepeatRate = 0.050f; + UserData = NULL; + + // User functions + RenderDrawListsFn = NULL; + MemAllocFn = malloc; + MemFreeFn = free; + GetClipboardTextFn = GetClipboardTextFn_DefaultImpl; // Platform dependent default implementations + SetClipboardTextFn = SetClipboardTextFn_DefaultImpl; + ImeSetInputScreenPosFn = ImeSetInputScreenPosFn_DefaultImpl; +} + +// Pass in translated ASCII characters for text input. +// - with glfw you can get those from the callback set in glfwSetCharCallback() +// - on Windows you can get those using ToAscii+keyboard state, or via the WM_CHAR message +void ImGuiIO::AddInputCharacter(ImWchar c) +{ + const int n = ImStrlenW(InputCharacters); + if (n + 1 < IM_ARRAYSIZE(InputCharacters)) + { + InputCharacters[n] = c; + InputCharacters[n+1] = '\0'; + } +} + +void ImGuiIO::AddInputCharactersUTF8(const char* utf8_chars) +{ + // We can't pass more wchars than ImGuiIO::InputCharacters[] can hold so don't convert more + const int wchars_buf_len = sizeof(ImGuiIO::InputCharacters) / sizeof(ImWchar); + ImWchar wchars[wchars_buf_len]; + ImTextStrFromUtf8(wchars, wchars_buf_len, utf8_chars, NULL); + for (int i = 0; wchars[i] != 0 && i < wchars_buf_len; i++) + AddInputCharacter(wchars[i]); +} + +//----------------------------------------------------------------------------- +// HELPERS +//----------------------------------------------------------------------------- + +#define IM_INT_MIN (-2147483647-1) +#define IM_INT_MAX (2147483647) + +// Play it nice with Windows users. Notepad in 2015 still doesn't display text data with Unix-style \n. +#ifdef _MSC_VER +#define IM_NEWLINE "\r\n" +#else +#define IM_NEWLINE "\n" +#endif + +bool ImIsPointInTriangle(const ImVec2& p, const ImVec2& a, const ImVec2& b, const ImVec2& c) +{ + bool b1 = ((p.x - b.x) * (a.y - b.y) - (p.y - b.y) * (a.x - b.x)) < 0.0f; + bool b2 = ((p.x - c.x) * (b.y - c.y) - (p.y - c.y) * (b.x - c.x)) < 0.0f; + bool b3 = ((p.x - a.x) * (c.y - a.y) - (p.y - a.y) * (c.x - a.x)) < 0.0f; + return ((b1 == b2) && (b2 == b3)); +} + +int ImStricmp(const char* str1, const char* str2) +{ + int d; + while ((d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; } + return d; +} + +int ImStrnicmp(const char* str1, const char* str2, int count) +{ + int d = 0; + while (count > 0 && (d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; count--; } + return d; +} + +char* ImStrdup(const char *str) +{ + char *buff = (char*)ImGui::MemAlloc(strlen(str) + 1); + IM_ASSERT(buff); + strcpy(buff, str); + return buff; +} + +int ImStrlenW(const ImWchar* str) +{ + int n = 0; + while (*str++) n++; + return n; +} + +const ImWchar* ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin) // find beginning-of-line +{ + while (buf_mid_line > buf_begin && buf_mid_line[-1] != '\n') + buf_mid_line--; + return buf_mid_line; +} + +const char* ImStristr(const char* haystack, const char* needle, const char* needle_end) +{ + if (!needle_end) + needle_end = needle + strlen(needle); + + const char un0 = (char)toupper(*needle); + while (*haystack) + { + if (toupper(*haystack) == un0) + { + const char* b = needle + 1; + for (const char* a = haystack + 1; b < needle_end; a++, b++) + if (toupper(*a) != toupper(*b)) + break; + if (b == needle_end) + return haystack; + } + haystack++; + } + return NULL; +} + +int ImFormatString(char* buf, int buf_size, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + int w = vsnprintf(buf, buf_size, fmt, args); + va_end(args); + buf[buf_size-1] = 0; + return (w == -1) ? buf_size : w; +} + +int ImFormatStringV(char* buf, int buf_size, const char* fmt, va_list args) +{ + int w = vsnprintf(buf, buf_size, fmt, args); + buf[buf_size-1] = 0; + return (w == -1) ? buf_size : w; +} + +// Pass data_size==0 for zero-terminated string +// FIXME-OPT: Replace with e.g. FNV1a hash? CRC32 pretty much randomly access 1KB. Need to do proper measurements. +ImU32 ImHash(const void* data, int data_size, ImU32 seed = 0) +{ + static ImU32 crc32_lut[256] = { 0 }; + if (!crc32_lut[1]) + { + const ImU32 polynomial = 0xEDB88320; + for (ImU32 i = 0; i < 256; i++) + { + ImU32 crc = i; + for (ImU32 j = 0; j < 8; j++) + crc = (crc >> 1) ^ (ImU32(-int(crc & 1)) & polynomial); + crc32_lut[i] = crc; + } + } + + seed = ~seed; + ImU32 crc = seed; + const unsigned char* current = (const unsigned char*)data; + + if (data_size > 0) + { + // Known size + while (data_size--) + crc = (crc >> 8) ^ crc32_lut[(crc & 0xFF) ^ *current++]; + } + else + { + // Zero-terminated string + while (unsigned char c = *current++) + { + // We support a syntax of "label###id" where only "###id" is included in the hash, and only "label" gets displayed. + // Because this syntax is rarely used we are optimizing for the common case. + // - If we reach ### in the string we discard the hash so far and reset to the seed. + // - We don't do 'current += 2; continue;' after handling ### to keep the code smaller. + if (c == '#' && current[0] == '#' && current[1] == '#') + crc = seed; + + crc = (crc >> 8) ^ crc32_lut[(crc & 0xFF) ^ c]; + } + } + return ~crc; +} + +//----------------------------------------------------------------------------- +// ImText* helpers +//----------------------------------------------------------------------------- + +// Convert UTF-8 to 32-bits character, process single character input. +// Based on stb_from_utf8() from github.com/nothings/stb/ +// We handle UTF-8 decoding error by skipping forward. +int ImTextCharFromUtf8(unsigned int* out_char, const char* in_text, const char* in_text_end) +{ + unsigned int c = (unsigned int)-1; + const unsigned char* str = (const unsigned char*)in_text; + if (!(*str & 0x80)) + { + c = (unsigned int)(*str++); + *out_char = c; + return 1; + } + if ((*str & 0xe0) == 0xc0) + { + *out_char = 0; + if (in_text_end && in_text_end - (const char*)str < 2) return 0; + if (*str < 0xc2) return 0; + c = (unsigned int)((*str++ & 0x1f) << 6); + if ((*str & 0xc0) != 0x80) return 0; + c += (*str++ & 0x3f); + *out_char = c; + return 2; + } + if ((*str & 0xf0) == 0xe0) + { + *out_char = 0; + if (in_text_end && in_text_end - (const char*)str < 3) return 0; + if (*str == 0xe0 && (str[1] < 0xa0 || str[1] > 0xbf)) return 0; + if (*str == 0xed && str[1] > 0x9f) return 0; // str[1] < 0x80 is checked below + c = (unsigned int)((*str++ & 0x0f) << 12); + if ((*str & 0xc0) != 0x80) return 0; + c += (unsigned int)((*str++ & 0x3f) << 6); + if ((*str & 0xc0) != 0x80) return 0; + c += (*str++ & 0x3f); + *out_char = c; + return 3; + } + if ((*str & 0xf8) == 0xf0) + { + *out_char = 0; + if (in_text_end && in_text_end - (const char*)str < 4) return 0; + if (*str > 0xf4) return 0; + if (*str == 0xf0 && (str[1] < 0x90 || str[1] > 0xbf)) return 0; + if (*str == 0xf4 && str[1] > 0x8f) return 0; // str[1] < 0x80 is checked below + c = (unsigned int)((*str++ & 0x07) << 18); + if ((*str & 0xc0) != 0x80) return 0; + c += (unsigned int)((*str++ & 0x3f) << 12); + if ((*str & 0xc0) != 0x80) return 0; + c += (unsigned int)((*str++ & 0x3f) << 6); + if ((*str & 0xc0) != 0x80) return 0; + c += (*str++ & 0x3f); + // utf-8 encodings of values used in surrogate pairs are invalid + if ((c & 0xFFFFF800) == 0xD800) return 0; + *out_char = c; + return 4; + } + *out_char = 0; + return 0; +} + +int ImTextStrFromUtf8(ImWchar* buf, int buf_size, const char* in_text, const char* in_text_end, const char** in_text_remaining) +{ + ImWchar* buf_out = buf; + ImWchar* buf_end = buf + buf_size; + while (buf_out < buf_end-1 && (!in_text_end || in_text < in_text_end) && *in_text) + { + unsigned int c; + in_text += ImTextCharFromUtf8(&c, in_text, in_text_end); + if (c == 0) + break; + if (c < 0x10000) // FIXME: Losing characters that don't fit in 2 bytes + *buf_out++ = (ImWchar)c; + } + *buf_out = 0; + if (in_text_remaining) + *in_text_remaining = in_text; + return (int)(buf_out - buf); +} + +int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end) +{ + int char_count = 0; + while ((!in_text_end || in_text < in_text_end) && *in_text) + { + unsigned int c; + in_text += ImTextCharFromUtf8(&c, in_text, in_text_end); + if (c == 0) + break; + if (c < 0x10000) + char_count++; + } + return char_count; +} + +// Based on stb_to_utf8() from github.com/nothings/stb/ +static inline int ImTextCharToUtf8(char* buf, int buf_size, unsigned int c) +{ + if (c < 0x80) + { + buf[0] = (char)c; + return 1; + } + if (c < 0x800) + { + if (buf_size < 2) return 0; + buf[0] = (char)(0xc0 + (c >> 6)); + buf[1] = (char)(0x80 + (c & 0x3f)); + return 2; + } + if (c >= 0xdc00 && c < 0xe000) + { + return 0; + } + if (c >= 0xd800 && c < 0xdc00) + { + if (buf_size < 4) return 0; + buf[0] = (char)(0xf0 + (c >> 18)); + buf[1] = (char)(0x80 + ((c >> 12) & 0x3f)); + buf[2] = (char)(0x80 + ((c >> 6) & 0x3f)); + buf[3] = (char)(0x80 + ((c ) & 0x3f)); + return 4; + } + //else if (c < 0x10000) + { + if (buf_size < 3) return 0; + buf[0] = (char)(0xe0 + (c >> 12)); + buf[1] = (char)(0x80 + ((c>> 6) & 0x3f)); + buf[2] = (char)(0x80 + ((c ) & 0x3f)); + return 3; + } +} + +static inline int ImTextCountUtf8BytesFromChar(unsigned int c) +{ + if (c < 0x80) return 1; + if (c < 0x800) return 2; + if (c >= 0xdc00 && c < 0xe000) return 0; + if (c >= 0xd800 && c < 0xdc00) return 4; + return 3; +} + +int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, const ImWchar* in_text_end) +{ + char* buf_out = buf; + const char* buf_end = buf + buf_size; + while (buf_out < buf_end-1 && (!in_text_end || in_text < in_text_end) && *in_text) + { + unsigned int c = (unsigned int)(*in_text++); + if (c < 0x80) + *buf_out++ = (char)c; + else + buf_out += ImTextCharToUtf8(buf_out, (int)(buf_end-buf_out-1), c); + } + *buf_out = 0; + return (int)(buf_out - buf); +} + +int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* in_text_end) +{ + int bytes_count = 0; + while ((!in_text_end || in_text < in_text_end) && *in_text) + { + unsigned int c = (unsigned int)(*in_text++); + if (c < 0x80) + bytes_count++; + else + bytes_count += ImTextCountUtf8BytesFromChar(c); + } + return bytes_count; +} + +ImU32 ImGui::ColorConvertFloat4ToU32(const ImVec4& in) +{ + ImU32 out = ((ImU32)(ImSaturate(in.x)*255.f)); + out |= ((ImU32)(ImSaturate(in.y)*255.f) << 8); + out |= ((ImU32)(ImSaturate(in.z)*255.f) << 16); + out |= ((ImU32)(ImSaturate(in.w)*255.f) << 24); + return out; +} + +// Convert rgb floats ([0-1],[0-1],[0-1]) to hsv floats ([0-1],[0-1],[0-1]), from Foley & van Dam p592 +// Optimized http://lolengine.net/blog/2013/01/13/fast-rgb-to-hsv +void ImGui::ColorConvertRGBtoHSV(float r, float g, float b, float& out_h, float& out_s, float& out_v) +{ + float K = 0.f; + if (g < b) + { + const float tmp = g; g = b; b = tmp; + K = -1.f; + } + if (r < g) + { + const float tmp = r; r = g; g = tmp; + K = -2.f / 6.f - K; + } + + const float chroma = r - (g < b ? g : b); + out_h = fabsf(K + (g - b) / (6.f * chroma + 1e-20f)); + out_s = chroma / (r + 1e-20f); + out_v = r; +} + +// Convert hsv floats ([0-1],[0-1],[0-1]) to rgb floats ([0-1],[0-1],[0-1]), from Foley & van Dam p593 +// also http://en.wikipedia.org/wiki/HSL_and_HSV +void ImGui::ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b) +{ + if (s == 0.0f) + { + // gray + out_r = out_g = out_b = v; + return; + } + + h = fmodf(h, 1.0f) / (60.0f/360.0f); + int i = (int)h; + float f = h - (float)i; + float p = v * (1.0f - s); + float q = v * (1.0f - s * f); + float t = v * (1.0f - s * (1.0f - f)); + + switch (i) + { + case 0: out_r = v; out_g = t; out_b = p; break; + case 1: out_r = q; out_g = v; out_b = p; break; + case 2: out_r = p; out_g = v; out_b = t; break; + case 3: out_r = p; out_g = q; out_b = v; break; + case 4: out_r = t; out_g = p; out_b = v; break; + case 5: default: out_r = v; out_g = p; out_b = q; break; + } +} + +// Load file content into memory +// Memory allocated with ImGui::MemAlloc(), must be freed by user using ImGui::MemFree() +bool ImLoadFileToMemory(const char* filename, const char* file_open_mode, void** out_file_data, int* out_file_size, int padding_bytes) +{ + IM_ASSERT(filename && file_open_mode && out_file_data && out_file_size); + *out_file_data = NULL; + *out_file_size = 0; + + FILE* f; + if ((f = fopen(filename, file_open_mode)) == NULL) + return false; + + long file_size_signed; + if (fseek(f, 0, SEEK_END) || (file_size_signed = ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) + { + fclose(f); + return false; + } + + int file_size = (int)file_size_signed; + void* file_data = ImGui::MemAlloc(file_size + padding_bytes); + if (file_data == NULL) + { + fclose(f); + return false; + } + if (fread(file_data, 1, (size_t)file_size, f) != (size_t)file_size) + { + fclose(f); + ImGui::MemFree(file_data); + return false; + } + if (padding_bytes > 0) + memset((void *)(((char*)file_data) + file_size), 0, padding_bytes); + + fclose(f); + *out_file_data = file_data; + if (out_file_size) + *out_file_size = file_size; + + return true; +} + +//----------------------------------------------------------------------------- +// ImGuiStorage +//----------------------------------------------------------------------------- + +// Helper: Key->value storage +void ImGuiStorage::Clear() +{ + Data.clear(); +} + +// std::lower_bound but without the bullshit +static ImVector::iterator LowerBound(ImVector& data, ImU32 key) +{ + ImVector::iterator first = data.begin(); + ImVector::iterator last = data.end(); + int count = (int)(last - first); + while (count > 0) + { + int count2 = count / 2; + ImVector::iterator mid = first + count2; + if (mid->key < key) + { + first = ++mid; + count -= count2 + 1; + } + else + { + count = count2; + } + } + return first; +} + +int ImGuiStorage::GetInt(ImU32 key, int default_val) const +{ + ImVector::iterator it = LowerBound(const_cast&>(Data), key); + if (it == Data.end() || it->key != key) + return default_val; + return it->val_i; +} + +float ImGuiStorage::GetFloat(ImU32 key, float default_val) const +{ + ImVector::iterator it = LowerBound(const_cast&>(Data), key); + if (it == Data.end() || it->key != key) + return default_val; + return it->val_f; +} + +void* ImGuiStorage::GetVoidPtr(ImGuiID key) const +{ + ImVector::iterator it = LowerBound(const_cast&>(Data), key); + if (it == Data.end() || it->key != key) + return NULL; + return it->val_p; +} + +// References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer. +int* ImGuiStorage::GetIntRef(ImGuiID key, int default_val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + it = Data.insert(it, Pair(key, default_val)); + return &it->val_i; +} + +float* ImGuiStorage::GetFloatRef(ImGuiID key, float default_val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + it = Data.insert(it, Pair(key, default_val)); + return &it->val_f; +} + +void** ImGuiStorage::GetVoidPtrRef(ImGuiID key, void* default_val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + it = Data.insert(it, Pair(key, default_val)); + return &it->val_p; +} + +// FIXME-OPT: Need a way to reuse the result of lower_bound when doing GetInt()/SetInt() - not too bad because it only happens on explicit interaction (maximum one a frame) +void ImGuiStorage::SetInt(ImU32 key, int val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + { + Data.insert(it, Pair(key, val)); + return; + } + it->val_i = val; +} + +void ImGuiStorage::SetFloat(ImU32 key, float val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + { + Data.insert(it, Pair(key, val)); + return; + } + it->val_f = val; +} + +void ImGuiStorage::SetVoidPtr(ImU32 key, void* val) +{ + ImVector::iterator it = LowerBound(Data, key); + if (it == Data.end() || it->key != key) + { + Data.insert(it, Pair(key, val)); + return; + } + it->val_p = val; +} + +void ImGuiStorage::SetAllInt(int v) +{ + for (int i = 0; i < Data.Size; i++) + Data[i].val_i = v; +} + +//----------------------------------------------------------------------------- +// ImGuiTextFilter +//----------------------------------------------------------------------------- + +// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" +ImGuiTextFilter::ImGuiTextFilter(const char* default_filter) +{ + if (default_filter) + { + ImFormatString(InputBuf, IM_ARRAYSIZE(InputBuf), "%s", default_filter); + Build(); + } + else + { + InputBuf[0] = 0; + CountGrep = 0; + } +} + +void ImGuiTextFilter::Draw(const char* label, float width) +{ + if (width > 0.0f) + ImGui::PushItemWidth(width); + ImGui::InputText(label, InputBuf, IM_ARRAYSIZE(InputBuf)); + if (width > 0.0f) + ImGui::PopItemWidth(); + Build(); +} + +void ImGuiTextFilter::TextRange::split(char separator, ImVector& out) +{ + out.resize(0); + const char* wb = b; + const char* we = wb; + while (we < e) + { + if (*we == separator) + { + out.push_back(TextRange(wb, we)); + wb = we + 1; + } + we++; + } + if (wb != we) + out.push_back(TextRange(wb, we)); +} + +void ImGuiTextFilter::Build() +{ + Filters.resize(0); + TextRange input_range(InputBuf, InputBuf+strlen(InputBuf)); + input_range.split(',', Filters); + + CountGrep = 0; + for (int i = 0; i != Filters.Size; i++) + { + Filters[i].trim_blanks(); + if (Filters[i].empty()) + continue; + if (Filters[i].front() != '-') + CountGrep += 1; + } +} + +bool ImGuiTextFilter::PassFilter(const char* val) const +{ + if (Filters.empty()) + return true; + + if (val == NULL) + val = ""; + + for (int i = 0; i != Filters.Size; i++) + { + const TextRange& f = Filters[i]; + if (f.empty()) + continue; + if (f.front() == '-') + { + // Subtract + if (ImStristr(val, f.begin()+1, f.end()) != NULL) + return false; + } + else + { + // Grep + if (ImStristr(val, f.begin(), f.end()) != NULL) + return true; + } + } + + // Implicit * grep + if (CountGrep == 0) + return true; + + return false; +} + +//----------------------------------------------------------------------------- +// ImGuiTextBuffer +//----------------------------------------------------------------------------- + +// On some platform vsnprintf() takes va_list by reference and modifies it. +// va_copy is the 'correct' way to copy a va_list but Visual Studio prior to 2013 doesn't have it. +#ifndef va_copy +#define va_copy(dest, src) (dest = src) +#endif + +// Helper: Text buffer for logging/accumulating text +void ImGuiTextBuffer::appendv(const char* fmt, va_list args) +{ + va_list args_copy; + va_copy(args_copy, args); + + int len = vsnprintf(NULL, 0, fmt, args); // FIXME-OPT: could do a first pass write attempt, likely successful on first pass. + if (len <= 0) + return; + + const int write_off = Buf.Size; + const int needed_sz = write_off + len; + if (write_off + len >= Buf.Capacity) + { + int double_capacity = Buf.Capacity * 2; + Buf.reserve(needed_sz > double_capacity ? needed_sz : double_capacity); + } + + Buf.resize(needed_sz); + ImFormatStringV(&Buf[write_off] - 1, len+1, fmt, args_copy); +} + +void ImGuiTextBuffer::append(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + appendv(fmt, args); + va_end(args); +} + +//----------------------------------------------------------------------------- +// ImGuiSimpleColumns +//----------------------------------------------------------------------------- + +ImGuiSimpleColumns::ImGuiSimpleColumns() +{ + Count = 0; + Spacing = Width = NextWidth = 0.0f; + memset(Pos, 0, sizeof(Pos)); + memset(NextWidths, 0, sizeof(NextWidths)); +} + +void ImGuiSimpleColumns::Update(int count, float spacing, bool clear) +{ + IM_ASSERT(Count <= IM_ARRAYSIZE(Pos)); + Count = count; + Width = NextWidth = 0.0f; + Spacing = spacing; + if (clear) memset(NextWidths, 0, sizeof(NextWidths)); + for (int i = 0; i < Count; i++) + { + if (i > 0 && NextWidths[i] > 0.0f) + Width += Spacing; + Pos[i] = (float)(int)Width; + Width += NextWidths[i]; + NextWidths[i] = 0.0f; + } +} + +float ImGuiSimpleColumns::DeclColumns(float w0, float w1, float w2) // not using va_arg because they promote float to double +{ + NextWidth = 0.0f; + NextWidths[0] = ImMax(NextWidths[0], w0); + NextWidths[1] = ImMax(NextWidths[1], w1); + NextWidths[2] = ImMax(NextWidths[2], w2); + for (int i = 0; i < 3; i++) + NextWidth += NextWidths[i] + ((i > 0 && NextWidths[i] > 0.0f) ? Spacing : 0.0f); + return ImMax(Width, NextWidth); +} + +float ImGuiSimpleColumns::CalcExtraSpace(float avail_w) +{ + return ImMax(0.0f, avail_w - Width); +} + +//----------------------------------------------------------------------------- +// ImGuiWindow +//----------------------------------------------------------------------------- + +ImGuiWindow::ImGuiWindow(const char* name) +{ + Name = ImStrdup(name); + ID = ImHash(name, 0); + IDStack.push_back(ID); + MoveID = GetID("#MOVE"); + + Flags = 0; + PosFloat = Pos = ImVec2(0.0f, 0.0f); + Size = SizeFull = ImVec2(0.0f, 0.0f); + SizeContents = ImVec2(0.0f, 0.0f); + WindowPadding = ImVec2(0.0f, 0.0f); + ScrollY = 0.0f; + ScrollTargetRelY = FLT_MAX; + ScrollTargetCenterRatioY = 0.5f; + ScrollbarY = false; + Active = WasActive = false; + Accessed = false; + Collapsed = false; + SkipItems = false; + BeginCount = 0; + PopupID = 0; + AutoFitFramesX = AutoFitFramesY = -1; + AutoFitOnlyGrows = false; + AutoPosLastDirection = -1; + HiddenFrames = 0; + SetWindowPosAllowFlags = SetWindowSizeAllowFlags = SetWindowCollapsedAllowFlags = ImGuiSetCond_Always | ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing; + SetWindowPosCenterWanted = false; + + LastFrameDrawn = -1; + ItemWidthDefault = 0.0f; + FontWindowScale = 1.0f; + + DrawList = (ImDrawList*)ImGui::MemAlloc(sizeof(ImDrawList)); + new(DrawList) ImDrawList(); + DrawList->_OwnerName = Name; + RootWindow = NULL; + RootNonPopupWindow = NULL; + + FocusIdxAllCounter = FocusIdxTabCounter = -1; + FocusIdxAllRequestCurrent = FocusIdxTabRequestCurrent = IM_INT_MAX; + FocusIdxAllRequestNext = FocusIdxTabRequestNext = IM_INT_MAX; +} + +ImGuiWindow::~ImGuiWindow() +{ + DrawList->~ImDrawList(); + ImGui::MemFree(DrawList); + DrawList = NULL; + ImGui::MemFree(Name); + Name = NULL; +} + +ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end) +{ + ImGuiID seed = IDStack.back(); + ImGuiID id = ImHash(str, str_end ? (int)(str_end - str) : 0, seed); + ImGui::KeepAliveID(id); + return id; +} + +ImGuiID ImGuiWindow::GetID(const void* ptr) +{ + ImGuiID seed = IDStack.back(); + ImGuiID id = ImHash(&ptr, sizeof(void*), seed); + ImGui::KeepAliveID(id); + return id; +} + +//----------------------------------------------------------------------------- +// Internal API exposed in imgui_internal.h +//----------------------------------------------------------------------------- + +ImGuiWindow* ImGui::GetCurrentWindow() +{ + // If this ever crash it probably means that ImGui::NewFrame() has never been called (which is illegal). We should always have a CurrentWindow in the stack (there is an implicit "Debug" window) + ImGuiState& g = *GImGui; + g.CurrentWindow->Accessed = true; + return g.CurrentWindow; +} + +static void SetCurrentWindow(ImGuiWindow* window) +{ + ImGuiState& g = *GImGui; + g.CurrentWindow = window; + if (window) + g.FontSize = window->CalcFontSize(); +} + +ImGuiWindow* ImGui::GetParentWindow() +{ + ImGuiState& g = *GImGui; + IM_ASSERT(g.CurrentWindowStack.Size >= 2); + return g.CurrentWindowStack[g.CurrentWindowStack.Size - 2]; +} + +void ImGui::SetActiveID(ImGuiID id, ImGuiWindow* window = NULL) +{ + ImGuiState& g = *GImGui; + g.ActiveId = id; + g.ActiveIdIsFocusedOnly = false; + g.ActiveIdIsJustActivated = true; + g.ActiveIdWindow = window; +} + +void ImGui::KeepAliveID(ImGuiID id) +{ + ImGuiState& g = *GImGui; + if (g.ActiveId == id) + g.ActiveIdIsAlive = true; +} + +// Advance cursor given item size for layout. +void ImGui::ItemSize(const ImVec2& size, float text_offset_y) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + // Always align ourselves on pixel boundaries + ImGuiState& g = *GImGui; + const float line_height = ImMax(window->DC.CurrentLineHeight, size.y); + const float text_base_offset = ImMax(window->DC.CurrentLineTextBaseOffset, text_offset_y); + window->DC.CursorPosPrevLine = ImVec2(window->DC.CursorPos.x + size.x, window->DC.CursorPos.y); + window->DC.CursorPos = ImVec2((float)(int)(window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX), (float)(int)(window->DC.CursorPos.y + line_height + g.Style.ItemSpacing.y)); + window->DC.CursorMaxPos.x = ImMax(window->DC.CursorMaxPos.x, window->DC.CursorPosPrevLine.x); + window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, window->DC.CursorPos.y); + + //window->DrawList->AddCircle(window->DC.CursorMaxPos, 3.0f, 0xFF0000FF, 4); // Debug + + window->DC.PrevLineHeight = line_height; + window->DC.PrevLineTextBaseOffset = text_base_offset; + window->DC.CurrentLineHeight = window->DC.CurrentLineTextBaseOffset = 0.0f; +} + +void ImGui::ItemSize(const ImRect& bb, float text_offset_y) +{ + ItemSize(bb.GetSize(), text_offset_y); +} + +// Declare item bounding box for clipping and interaction. +// Note that the size can be different than the one provided to ItemSize(). Typically, widgets that spread over available surface +// declares their minimum size requirement to ItemSize() and then use a larger region for drawing/interaction, which is passed to ItemAdd(). +bool ImGui::ItemAdd(const ImRect& bb, const ImGuiID* id) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.LastItemID = id ? *id : 0; + window->DC.LastItemRect = bb; + if (IsClippedEx(bb, id, false)) + { + window->DC.LastItemHoveredAndUsable = window->DC.LastItemHoveredRect = false; + return false; + } + + // This is a sensible default, but widgets are free to override it after calling ItemAdd() + ImGuiState& g = *GImGui; + if (IsMouseHoveringRect(bb.Min, bb.Max)) + { + // Matching the behavior of IsHovered() but ignore if ActiveId==window->MoveID (we clicked on the window background) + // So that clicking on items with no active id such as Text() still returns true with IsItemHovered() + window->DC.LastItemHoveredRect = true; + window->DC.LastItemHoveredAndUsable = false; + if (g.HoveredRootWindow == window->RootWindow) + if (g.ActiveId == 0 || (id && g.ActiveId == *id) || g.ActiveIdIsFocusedOnly || (g.ActiveId == window->MoveID)) + if (IsWindowContentHoverable(window)) + window->DC.LastItemHoveredAndUsable = true; + } + else + { + window->DC.LastItemHoveredAndUsable = window->DC.LastItemHoveredRect = false; + } + + return true; +} + +bool ImGui::IsClippedEx(const ImRect& bb, const ImGuiID* id, bool clip_even_when_logged) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + if (!bb.Overlaps(window->ClipRect)) + { + if (!id || *id != GImGui->ActiveId) + if (clip_even_when_logged || !g.LogEnabled) + return true; + } + return false; +} + +bool ImGui::IsHovered(const ImRect& bb, ImGuiID id, bool flatten_childs) +{ + ImGuiState& g = *GImGui; + if (g.HoveredId == 0 || g.HoveredId == id) + { + ImGuiWindow* window = GetCurrentWindow(); + if (g.HoveredWindow == window || (flatten_childs && g.HoveredRootWindow == window->RootWindow)) + if ((g.ActiveId == 0 || g.ActiveId == id || g.ActiveIdIsFocusedOnly) && ImGui::IsMouseHoveringRect(bb.Min, bb.Max)) + if (IsWindowContentHoverable(g.HoveredRootWindow)) + return true; + } + return false; +} + +bool ImGui::FocusableItemRegister(ImGuiWindow* window, bool is_active, bool tab_stop) +{ + ImGuiState& g = *GImGui; + + const bool allow_keyboard_focus = window->DC.AllowKeyboardFocus; + window->FocusIdxAllCounter++; + if (allow_keyboard_focus) + window->FocusIdxTabCounter++; + + // Process keyboard input at this point: TAB, Shift-TAB switch focus + // We can always TAB out of a widget that doesn't allow tabbing in. + if (tab_stop && window->FocusIdxAllRequestNext == IM_INT_MAX && window->FocusIdxTabRequestNext == IM_INT_MAX && is_active && IsKeyPressedMap(ImGuiKey_Tab)) + { + // Modulo on index will be applied at the end of frame once we've got the total counter of items. + window->FocusIdxTabRequestNext = window->FocusIdxTabCounter + (g.IO.KeyShift ? (allow_keyboard_focus ? -1 : 0) : +1); + } + + if (window->FocusIdxAllCounter == window->FocusIdxAllRequestCurrent) + return true; + + if (allow_keyboard_focus) + if (window->FocusIdxTabCounter == window->FocusIdxTabRequestCurrent) + return true; + + return false; +} + +void ImGui::FocusableItemUnregister(ImGuiWindow* window) +{ + window->FocusIdxAllCounter--; + window->FocusIdxTabCounter--; +} + +ImVec2 ImGui::CalcItemSize(ImVec2 size, float default_x, float default_y) +{ + ImGuiState& g = *GImGui; + ImVec2 content_max; + if (size.x < 0.0f || size.y < 0.0f) + content_max = g.CurrentWindow->Pos + ImGui::GetContentRegionMax(); + if (size.x <= 0.0f) + size.x = (size.x == 0.0f) ? default_x : ImMax(content_max.x - g.CurrentWindow->DC.CursorPos.x, 4.0f) + size.x; + if (size.y <= 0.0f) + size.y = (size.y == 0.0f) ? default_y : ImMax(content_max.y - g.CurrentWindow->DC.CursorPos.y, 4.0f) + size.y; + return size; +} + +float ImGui::CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x) +{ + if (wrap_pos_x < 0.0f) + return 0.0f; + + ImGuiWindow* window = ImGui::GetCurrentWindow(); + if (wrap_pos_x == 0.0f) + wrap_pos_x = ImGui::GetContentRegionMax().x; + if (wrap_pos_x > 0.0f) + wrap_pos_x += window->Pos.x; // wrap_pos_x is provided is window local space + + const float wrap_width = wrap_pos_x > 0.0f ? ImMax(wrap_pos_x - pos.x, 0.00001f) : 0.0f; + return wrap_width; +} + +//----------------------------------------------------------------------------- + +void* ImGui::MemAlloc(size_t sz) +{ + GImGui->IO.MetricsAllocs++; + return GImGui->IO.MemAllocFn(sz); +} + +void ImGui::MemFree(void* ptr) +{ + if (ptr) GImGui->IO.MetricsAllocs--; + return GImGui->IO.MemFreeFn(ptr); +} + +const char* ImGui::GetVersion() +{ + return IMGUI_VERSION; +} + +// Internal state access - if you want to share ImGui state between modules (e.g. DLL) or allocate it yourself +// Note that we still point to some static data and members (such as GFontAtlas), so the state instance you end up using will point to the static data within its module +void* ImGui::GetInternalState() +{ + return GImGui; +} + +size_t ImGui::GetInternalStateSize() +{ + return sizeof(ImGuiState); +} + +void ImGui::SetInternalState(void* state, bool construct) +{ + if (construct) + new (state) ImGuiState(); + GImGui = (ImGuiState*)state; +} + +ImGuiIO& ImGui::GetIO() +{ + return GImGui->IO; +} + +ImGuiStyle& ImGui::GetStyle() +{ + return GImGui->Style; +} + +float ImGui::GetTime() +{ + return GImGui->Time; +} + +int ImGui::GetFrameCount() +{ + return GImGui->FrameCount; +} + +void ImGui::NewFrame() +{ + ImGuiState& g = *GImGui; + + // Check user data + IM_ASSERT(g.IO.DeltaTime >= 0.0f); + IM_ASSERT(g.IO.DisplaySize.x >= 0.0f && g.IO.DisplaySize.y >= 0.0f); + IM_ASSERT(g.IO.RenderDrawListsFn != NULL); // Must be implemented + IM_ASSERT(g.IO.Fonts->Fonts.Size > 0); // Font Atlas not created. Did you call io.Fonts->GetTexDataAsRGBA32 / GetTexDataAsAlpha8 ? + IM_ASSERT(g.IO.Fonts->Fonts[0]->IsLoaded()); // Font Atlas not created. Did you call io.Fonts->GetTexDataAsRGBA32 / GetTexDataAsAlpha8 ? + + if (!g.Initialized) + { + // Initialize on first frame + g.LogClipboard = (ImGuiTextBuffer*)ImGui::MemAlloc(sizeof(ImGuiTextBuffer)); + new(g.LogClipboard) ImGuiTextBuffer(); + + IM_ASSERT(g.Settings.empty()); + LoadSettings(); + g.Initialized = true; + } + + SetCurrentFont(g.IO.Fonts->Fonts[0]); + + g.Time += g.IO.DeltaTime; + g.FrameCount += 1; + g.Tooltip[0] = '\0'; + g.OverlayDrawList.Clear(); + g.OverlayDrawList.PushTextureID(g.IO.Fonts->TexID); + g.OverlayDrawList.PushClipRectFullScreen(); + g.OverlayDrawList.AddDrawCmd(); + + // Update inputs state + if (g.IO.MousePos.x < 0 && g.IO.MousePos.y < 0) + g.IO.MousePos = ImVec2(-9999.0f, -9999.0f); + if ((g.IO.MousePos.x < 0 && g.IO.MousePos.y < 0) || (g.IO.MousePosPrev.x < 0 && g.IO.MousePosPrev.y < 0)) // if mouse just appeared or disappeared (negative coordinate) we cancel out movement in MouseDelta + g.IO.MouseDelta = ImVec2(0.0f, 0.0f); + else + g.IO.MouseDelta = g.IO.MousePos - g.IO.MousePosPrev; + g.IO.MousePosPrev = g.IO.MousePos; + for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) + { + g.IO.MouseDownDurationPrev[i] = g.IO.MouseDownDuration[i]; + g.IO.MouseDownDuration[i] = g.IO.MouseDown[i] ? (g.IO.MouseDownDuration[i] < 0.0f ? 0.0f : g.IO.MouseDownDuration[i] + g.IO.DeltaTime) : -1.0f; + g.IO.MouseClicked[i] = g.IO.MouseDownDuration[i] == 0.0f; + g.IO.MouseReleased[i] = g.IO.MouseDownDurationPrev[i] >= 0.0f && !g.IO.MouseDown[i]; + g.IO.MouseDoubleClicked[i] = false; + if (g.IO.MouseClicked[i]) + { + if (g.Time - g.IO.MouseClickedTime[i] < g.IO.MouseDoubleClickTime) + { + if (ImLengthSqr(g.IO.MousePos - g.IO.MouseClickedPos[i]) < g.IO.MouseDoubleClickMaxDist * g.IO.MouseDoubleClickMaxDist) + g.IO.MouseDoubleClicked[i] = true; + g.IO.MouseClickedTime[i] = -FLT_MAX; // so the third click isn't turned into a double-click + } + else + { + g.IO.MouseClickedTime[i] = g.Time; + } + g.IO.MouseClickedPos[i] = g.IO.MousePos; + g.IO.MouseDragMaxDistanceSqr[i] = 0.0f; + } + else if (g.IO.MouseDown[i]) + { + g.IO.MouseDragMaxDistanceSqr[i] = ImMax(g.IO.MouseDragMaxDistanceSqr[i], ImLengthSqr(g.IO.MousePos - g.IO.MouseClickedPos[i])); + } + } + memcpy(g.IO.KeysDownDurationPrev, g.IO.KeysDownDuration, sizeof(g.IO.KeysDownDuration)); + for (int i = 0; i < IM_ARRAYSIZE(g.IO.KeysDown); i++) + g.IO.KeysDownDuration[i] = g.IO.KeysDown[i] ? (g.IO.KeysDownDuration[i] < 0.0f ? 0.0f : g.IO.KeysDownDuration[i] + g.IO.DeltaTime) : -1.0f; + + // Calculate frame-rate for the user, as a purely luxurious feature + g.FramerateSecPerFrameAccum += g.IO.DeltaTime - g.FramerateSecPerFrame[g.FramerateSecPerFrameIdx]; + g.FramerateSecPerFrame[g.FramerateSecPerFrameIdx] = g.IO.DeltaTime; + g.FramerateSecPerFrameIdx = (g.FramerateSecPerFrameIdx + 1) % IM_ARRAYSIZE(g.FramerateSecPerFrame); + g.IO.Framerate = 1.0f / (g.FramerateSecPerFrameAccum / (float)IM_ARRAYSIZE(g.FramerateSecPerFrame)); + + // Clear reference to active widget if the widget isn't alive anymore + g.HoveredIdPreviousFrame = g.HoveredId; + g.HoveredId = 0; + if (!g.ActiveIdIsAlive && g.ActiveIdPreviousFrame == g.ActiveId && g.ActiveId != 0) + SetActiveID(0); + g.ActiveIdPreviousFrame = g.ActiveId; + g.ActiveIdIsAlive = false; + g.ActiveIdIsJustActivated = false; + if (!g.ActiveId) + g.MovedWindow = NULL; + + // Delay saving settings so we don't spam disk too much + if (g.SettingsDirtyTimer > 0.0f) + { + g.SettingsDirtyTimer -= g.IO.DeltaTime; + if (g.SettingsDirtyTimer <= 0.0f) + SaveSettings(); + } + + // Find the window we are hovering. Child windows can extend beyond the limit of their parent so we need to derive HoveredRootWindow from HoveredWindow + g.HoveredWindow = FindHoveredWindow(g.IO.MousePos, false); + if (g.HoveredWindow && (g.HoveredWindow->Flags & ImGuiWindowFlags_ChildWindow)) + g.HoveredRootWindow = g.HoveredWindow->RootWindow; + else + g.HoveredRootWindow = FindHoveredWindow(g.IO.MousePos, true); + + if (ImGuiWindow* modal_window = GetFrontMostModalRootWindow()) + { + g.ModalWindowDarkeningRatio = ImMin(g.ModalWindowDarkeningRatio + g.IO.DeltaTime * 6.0f, 1.0f); + if (g.HoveredRootWindow != modal_window) + g.HoveredRootWindow = g.HoveredWindow = NULL; + } + else + { + g.ModalWindowDarkeningRatio = 0.0f; + } + + // Are we using inputs? Tell user so they can capture/discard the inputs away from the rest of their application. + // When clicking outside of a window we assume the click is owned by the application and won't request capture. + int mouse_earliest_button_down = -1; + bool mouse_any_down = false; + for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) + { + if (g.IO.MouseClicked[i]) + g.IO.MouseDownOwned[i] = (g.HoveredWindow != NULL) || (!g.OpenedPopupStack.empty()); + mouse_any_down |= g.IO.MouseDown[i]; + if (g.IO.MouseDown[i]) + if (mouse_earliest_button_down == -1 || g.IO.MouseClickedTime[mouse_earliest_button_down] > g.IO.MouseClickedTime[i]) + mouse_earliest_button_down = i; + } + bool mouse_owned_by_application = mouse_earliest_button_down != -1 && !g.IO.MouseDownOwned[mouse_earliest_button_down]; + g.IO.WantCaptureMouse = (!mouse_owned_by_application && g.HoveredWindow != NULL) || (!mouse_owned_by_application && mouse_any_down) || (g.ActiveId != 0) || (!g.OpenedPopupStack.empty()) || (g.CaptureMouseNextFrame); + g.IO.WantCaptureKeyboard = (g.ActiveId != 0) || (g.CaptureKeyboardNextFrame); + g.MouseCursor = ImGuiMouseCursor_Arrow; + g.CaptureMouseNextFrame = g.CaptureKeyboardNextFrame = false; + + // If mouse was first clicked outside of ImGui bounds we also cancel out hovering. + if (mouse_owned_by_application) + g.HoveredWindow = g.HoveredRootWindow = NULL; + + // Scale & Scrolling + if (g.HoveredWindow && g.IO.MouseWheel != 0.0f && !g.HoveredWindow->Collapsed) + { + ImGuiWindow* window = g.HoveredWindow; + if (g.IO.KeyCtrl) + { + if (g.IO.FontAllowUserScaling) + { + // Zoom / Scale window + float new_font_scale = ImClamp(window->FontWindowScale + g.IO.MouseWheel * 0.10f, 0.50f, 2.50f); + float scale = new_font_scale / window->FontWindowScale; + window->FontWindowScale = new_font_scale; + + const ImVec2 offset = window->Size * (1.0f - scale) * (g.IO.MousePos - window->Pos) / window->Size; + window->Pos += offset; + window->PosFloat += offset; + window->Size *= scale; + window->SizeFull *= scale; + } + } + else + { + // Scroll + if (!(window->Flags & ImGuiWindowFlags_NoScrollWithMouse)) + { + const int scroll_lines = (window->Flags & ImGuiWindowFlags_ComboBox) ? 3 : 5; + SetWindowScrollY(window, window->ScrollY - g.IO.MouseWheel * window->CalcFontSize() * scroll_lines); + } + } + } + + // Pressing TAB activate widget focus + // NB: Don't discard FocusedWindow if it isn't active, so that a window that go on/off programatically won't lose its keyboard focus. + if (g.ActiveId == 0 && g.FocusedWindow != NULL && g.FocusedWindow->Active && IsKeyPressedMap(ImGuiKey_Tab, false)) + g.FocusedWindow->FocusIdxTabRequestNext = 0; + + // Mark all windows as not visible + for (int i = 0; i != g.Windows.Size; i++) + { + ImGuiWindow* window = g.Windows[i]; + window->WasActive = window->Active; + window->Active = false; + window->Accessed = false; + } + + // No window should be open at the beginning of the frame. + // But in order to allow the user to call NewFrame() multiple times without calling Render(), we are doing an explicit clear. + g.CurrentWindowStack.resize(0); + g.CurrentPopupStack.resize(0); + CloseInactivePopups(); + + // Create implicit window - we will only render it if the user has added something to it. + ImGui::SetNextWindowSize(ImVec2(400,400), ImGuiSetCond_FirstUseEver); + ImGui::Begin("Debug"); +} + +// NB: behavior of ImGui after Shutdown() is not tested/guaranteed at the moment. This function is merely here to free heap allocations. +void ImGui::Shutdown() +{ + ImGuiState& g = *GImGui; + if (!g.Initialized) + return; + + SaveSettings(); + + for (int i = 0; i < g.Windows.Size; i++) + { + g.Windows[i]->~ImGuiWindow(); + ImGui::MemFree(g.Windows[i]); + } + g.Windows.clear(); + g.WindowsSortBuffer.clear(); + g.CurrentWindowStack.clear(); + g.FocusedWindow = NULL; + g.HoveredWindow = NULL; + g.HoveredRootWindow = NULL; + for (int i = 0; i < g.Settings.Size; i++) + ImGui::MemFree(g.Settings[i].Name); + g.Settings.clear(); + g.ColorModifiers.clear(); + g.StyleModifiers.clear(); + g.FontStack.clear(); + g.OpenedPopupStack.clear(); + g.CurrentPopupStack.clear(); + for (int i = 0; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) + g.RenderDrawLists[i].clear(); + g.OverlayDrawList.ClearFreeMemory(); + g.ColorEditModeStorage.Clear(); + if (g.PrivateClipboard) + { + ImGui::MemFree(g.PrivateClipboard); + g.PrivateClipboard = NULL; + } + g.InputTextState.Text.clear(); + g.InputTextState.InitialText.clear(); + g.InputTextState.TempTextBuffer.clear(); + + if (g.LogFile && g.LogFile != stdout) + { + fclose(g.LogFile); + g.LogFile = NULL; + } + if (g.LogClipboard) + { + g.LogClipboard->~ImGuiTextBuffer(); + ImGui::MemFree(g.LogClipboard); + } + + if (g.IO.Fonts) // Testing for NULL to allow user to NULLify in case of running Shutdown() on multiple contexts. Bit hacky. + g.IO.Fonts->Clear(); + + g.Initialized = false; +} + +static ImGuiIniData* FindWindowSettings(const char* name) +{ + ImGuiState& g = *GImGui; + ImGuiID id = ImHash(name, 0); + for (int i = 0; i != g.Settings.Size; i++) + { + ImGuiIniData* ini = &g.Settings[i]; + if (ini->ID == id) + return ini; + } + return NULL; +} + +static ImGuiIniData* AddWindowSettings(const char* name) +{ + GImGui->Settings.resize(GImGui->Settings.Size + 1); + ImGuiIniData* ini = &GImGui->Settings.back(); + ini->Name = ImStrdup(name); + ini->ID = ImHash(name, 0); + ini->Collapsed = false; + ini->Pos = ImVec2(FLT_MAX,FLT_MAX); + ini->Size = ImVec2(0,0); + return ini; +} + +// Zero-tolerance, poor-man .ini parsing +// FIXME: Write something less rubbish +static void LoadSettings() +{ + ImGuiState& g = *GImGui; + const char* filename = g.IO.IniFilename; + if (!filename) + return; + + char* file_data; + int file_size; + if (!ImLoadFileToMemory(filename, "rb", (void**)&file_data, &file_size, 1)) + return; + + ImGuiIniData* settings = NULL; + const char* buf_end = file_data + file_size; + for (const char* line_start = file_data; line_start < buf_end; ) + { + const char* line_end = line_start; + while (line_end < buf_end && *line_end != '\n' && *line_end != '\r') + line_end++; + + if (line_start[0] == '[' && line_end > line_start && line_end[-1] == ']') + { + char name[64]; + ImFormatString(name, IM_ARRAYSIZE(name), "%.*s", line_end-line_start-2, line_start+1); + settings = FindWindowSettings(name); + if (!settings) + settings = AddWindowSettings(name); + } + else if (settings) + { + float x, y; + int i; + if (sscanf(line_start, "Pos=%f,%f", &x, &y) == 2) + settings->Pos = ImVec2(x, y); + else if (sscanf(line_start, "Size=%f,%f", &x, &y) == 2) + settings->Size = ImMax(ImVec2(x, y), g.Style.WindowMinSize); + else if (sscanf(line_start, "Collapsed=%d", &i) == 1) + settings->Collapsed = (i != 0); + } + + line_start = line_end+1; + } + + ImGui::MemFree(file_data); +} + +static void SaveSettings() +{ + ImGuiState& g = *GImGui; + const char* filename = g.IO.IniFilename; + if (!filename) + return; + + // Gather data from windows that were active during this session + for (int i = 0; i != g.Windows.Size; i++) + { + ImGuiWindow* window = g.Windows[i]; + if (window->Flags & ImGuiWindowFlags_NoSavedSettings) + continue; + ImGuiIniData* settings = FindWindowSettings(window->Name); + settings->Pos = window->Pos; + settings->Size = window->SizeFull; + settings->Collapsed = window->Collapsed; + } + + // Write .ini file + // If a window wasn't opened in this session we preserve its settings + FILE* f = fopen(filename, "wt"); + if (!f) + return; + for (int i = 0; i != g.Settings.Size; i++) + { + const ImGuiIniData* settings = &g.Settings[i]; + if (settings->Pos.x == FLT_MAX) + continue; + const char* name = settings->Name; + if (const char* p = strstr(name, "###")) // Skip to the "###" marker if any. We don't skip past to match the behavior of GetID() + name = p; + fprintf(f, "[%s]\n", name); + fprintf(f, "Pos=%d,%d\n", (int)settings->Pos.x, (int)settings->Pos.y); + fprintf(f, "Size=%d,%d\n", (int)settings->Size.x, (int)settings->Size.y); + fprintf(f, "Collapsed=%d\n", settings->Collapsed); + fprintf(f, "\n"); + } + + fclose(f); +} + +static void MarkSettingsDirty() +{ + ImGuiState& g = *GImGui; + if (g.SettingsDirtyTimer <= 0.0f) + g.SettingsDirtyTimer = g.IO.IniSavingRate; +} + +// FIXME: Add a more explicit sort order in the window structure. +static int ChildWindowComparer(const void* lhs, const void* rhs) +{ + const ImGuiWindow* a = *(const ImGuiWindow**)lhs; + const ImGuiWindow* b = *(const ImGuiWindow**)rhs; + if (int d = (a->Flags & ImGuiWindowFlags_Popup) - (b->Flags & ImGuiWindowFlags_Popup)) + return d; + if (int d = (a->Flags & ImGuiWindowFlags_Tooltip) - (b->Flags & ImGuiWindowFlags_Tooltip)) + return d; + if (int d = (a->Flags & ImGuiWindowFlags_ComboBox) - (b->Flags & ImGuiWindowFlags_ComboBox)) + return d; + return 0; +} + +static void AddWindowToSortedBuffer(ImVector& out_sorted_windows, ImGuiWindow* window) +{ + out_sorted_windows.push_back(window); + if (window->Active) + { + int count = window->DC.ChildWindows.Size; + if (count > 1) + qsort(window->DC.ChildWindows.begin(), (size_t)count, sizeof(ImGuiWindow*), ChildWindowComparer); + for (int i = 0; i < count; i++) + { + ImGuiWindow* child = window->DC.ChildWindows[i]; + if (child->Active) + AddWindowToSortedBuffer(out_sorted_windows, child); + } + } +} + +static void AddDrawListToRenderList(ImVector& out_render_list, ImDrawList* draw_list) +{ + if (!draw_list->CmdBuffer.empty() && !draw_list->VtxBuffer.empty()) + { + if (draw_list->CmdBuffer.back().ElemCount == 0) + draw_list->CmdBuffer.pop_back(); + out_render_list.push_back(draw_list); + GImGui->IO.MetricsRenderVertices += draw_list->VtxBuffer.Size; + GImGui->IO.MetricsRenderIndices += draw_list->IdxBuffer.Size; + } +} + +static void AddWindowToRenderList(ImVector& out_render_list, ImGuiWindow* window) +{ + AddDrawListToRenderList(out_render_list, window->DrawList); + for (int i = 0; i < window->DC.ChildWindows.Size; i++) + { + ImGuiWindow* child = window->DC.ChildWindows[i]; + if (!child->Active) // clipped children may have been marked not active + continue; + if ((child->Flags & ImGuiWindowFlags_Popup) && child->HiddenFrames > 0) + continue; + AddWindowToRenderList(out_render_list, child); + } +} + +static void PushClipRect(const ImRect& clip_rect, bool clipped) +{ + ImGuiWindow* window = ImGui::GetCurrentWindow(); + + ImRect cr = clip_rect; + if (clipped) + { + // Clip our argument with the current clip rect + cr.Clip(window->ClipRect); + } + cr.Max.x = ImMax(cr.Min.x, cr.Max.x); + cr.Max.y = ImMax(cr.Min.y, cr.Max.y); + + IM_ASSERT(cr.Min.x <= cr.Max.x && cr.Min.y <= cr.Max.y); + window->ClipRect = cr; + window->DrawList->PushClipRect(ImVec4(cr.Min.x, cr.Min.y, cr.Max.x, cr.Max.y)); +} + +static void PopClipRect() +{ + ImGuiWindow* window = ImGui::GetCurrentWindow(); + window->DrawList->PopClipRect(); + window->ClipRect = window->DrawList->_ClipRectStack.back(); +} + +void ImGui::Render() +{ + ImGuiState& g = *GImGui; + IM_ASSERT(g.Initialized); // Forgot to call ImGui::NewFrame() + + const bool first_render_of_the_frame = (g.FrameCountRendered != g.FrameCount); + g.FrameCountRendered = g.FrameCount; + + if (first_render_of_the_frame) + { + // Hide implicit "Debug" window if it hasn't been used + IM_ASSERT(g.CurrentWindowStack.Size == 1); // Mismatched Begin/End + if (g.CurrentWindow && !g.CurrentWindow->Accessed) + g.CurrentWindow->Active = false; + ImGui::End(); + + // Click to focus window and start moving (after we're done with all our widgets) + if (!g.ActiveId) + g.MovedWindow = NULL; + if (g.ActiveId == 0 && g.HoveredId == 0 && g.IO.MouseClicked[0]) + { + if (!(g.FocusedWindow && !g.FocusedWindow->WasActive && g.FocusedWindow->Active)) // Unless we just made a popup appear + { + if (g.HoveredRootWindow != NULL) + { + g.MovedWindow = g.HoveredWindow; + SetActiveID(g.HoveredRootWindow->MoveID, g.HoveredRootWindow); + } + else if (g.FocusedWindow != NULL && GetFrontMostModalRootWindow() == NULL) + { + // Clicking on void disable focus + FocusWindow(NULL); + } + } + } + + // Sort the window list so that all child windows are after their parent + // We cannot do that on FocusWindow() because childs may not exist yet + g.WindowsSortBuffer.resize(0); + g.WindowsSortBuffer.reserve(g.Windows.Size); + for (int i = 0; i != g.Windows.Size; i++) + { + ImGuiWindow* window = g.Windows[i]; + if (window->Flags & ImGuiWindowFlags_ChildWindow) // if a child is active its parent will add it + if (window->Active) + continue; + AddWindowToSortedBuffer(g.WindowsSortBuffer, window); + } + IM_ASSERT(g.Windows.Size == g.WindowsSortBuffer.Size); // we done something wrong + g.Windows.swap(g.WindowsSortBuffer); + + // Clear Input data for next frame + g.IO.MouseWheel = 0.0f; + memset(g.IO.InputCharacters, 0, sizeof(g.IO.InputCharacters)); + } + + // Skip render altogether if alpha is 0.0 + // Note that vertex buffers have been created and are wasted, so it is best practice that you don't create windows in the first place, or respond to Begin() returning false. + if (g.Style.Alpha > 0.0f) + { + // Render tooltip + if (g.Tooltip[0]) + { + ImGui::BeginTooltip(); + ImGui::TextUnformatted(g.Tooltip); + ImGui::EndTooltip(); + } + + // Gather windows to render + g.IO.MetricsRenderVertices = g.IO.MetricsRenderIndices = g.IO.MetricsActiveWindows = 0; + for (int i = 0; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) + g.RenderDrawLists[i].resize(0); + for (int i = 0; i != g.Windows.Size; i++) + { + ImGuiWindow* window = g.Windows[i]; + if (window->Active && window->HiddenFrames <= 0 && (window->Flags & (ImGuiWindowFlags_ChildWindow)) == 0) + { + // FIXME: Generalize this with a proper layering system so e.g. user can draw in specific layers, below text, .. + g.IO.MetricsActiveWindows++; + if (window->Flags & ImGuiWindowFlags_Popup) + AddWindowToRenderList(g.RenderDrawLists[1], window); + else if (window->Flags & ImGuiWindowFlags_Tooltip) + AddWindowToRenderList(g.RenderDrawLists[2], window); + else + AddWindowToRenderList(g.RenderDrawLists[0], window); + } + } + + // Flatten layers + int n = g.RenderDrawLists[0].Size; + int flattened_size = n; + for (int i = 1; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) + flattened_size += g.RenderDrawLists[i].Size; + g.RenderDrawLists[0].resize(flattened_size); + for (int i = 1; i < IM_ARRAYSIZE(g.RenderDrawLists); i++) + { + ImVector& layer = g.RenderDrawLists[i]; + if (!layer.empty()) + { + memcpy(&g.RenderDrawLists[0][n], &layer[0], layer.Size * sizeof(ImDrawList*)); + n += layer.Size; + } + } + + if (g.IO.MouseDrawCursor) + { + const ImGuiMouseCursorData& cursor_data = g.MouseCursorData[g.MouseCursor]; + const ImVec2 pos = g.IO.MousePos - cursor_data.HotOffset; + const ImVec2 size = cursor_data.Size; + const ImTextureID tex_id = g.IO.Fonts->TexID; + g.OverlayDrawList.PushTextureID(tex_id); + g.OverlayDrawList.AddImage(tex_id, pos+ImVec2(1,0), pos+ImVec2(1,0) + size, cursor_data.TexUvMin[1], cursor_data.TexUvMax[1], 0x30000000); // Shadow + g.OverlayDrawList.AddImage(tex_id, pos+ImVec2(2,0), pos+ImVec2(2,0) + size, cursor_data.TexUvMin[1], cursor_data.TexUvMax[1], 0x30000000); // Shadow + g.OverlayDrawList.AddImage(tex_id, pos, pos + size, cursor_data.TexUvMin[1], cursor_data.TexUvMax[1], 0xFF000000); // Black border + g.OverlayDrawList.AddImage(tex_id, pos, pos + size, cursor_data.TexUvMin[0], cursor_data.TexUvMax[0], 0xFFFFFFFF); // White fill + g.OverlayDrawList.PopTextureID(); + } + if (!g.OverlayDrawList.VtxBuffer.empty()) + AddDrawListToRenderList(g.RenderDrawLists[0], &g.OverlayDrawList); + + // Render + if (!g.RenderDrawLists[0].empty()) + { + ImDrawData data; + data.CmdLists = &g.RenderDrawLists[0][0]; + data.CmdListsCount = g.RenderDrawLists[0].Size; + data.TotalVtxCount = g.IO.MetricsRenderVertices; + data.TotalIdxCount = g.IO.MetricsRenderIndices; + g.IO.RenderDrawListsFn(&data); + } + } +} + +// Find the optional ## from which we stop displaying text. +static const char* FindTextDisplayEnd(const char* text, const char* text_end) +{ + const char* text_display_end = text; + if (!text_end) + text_end = (const char*)-1; + + ImGuiState& g = *GImGui; + if (g.DisableHideTextAfterDoubleHash > 0) + { + while (text_display_end < text_end && *text_display_end != '\0') + text_display_end++; + } + else + { + while (text_display_end < text_end && *text_display_end != '\0' && (text_display_end[0] != '#' || text_display_end[1] != '#')) + text_display_end++; + } + return text_display_end; +} + +// Pass text data straight to log (without being displayed) +void ImGui::LogText(const char* fmt, ...) +{ + ImGuiState& g = *GImGui; + if (!g.LogEnabled) + return; + + va_list args; + va_start(args, fmt); + if (g.LogFile) + { + vfprintf(g.LogFile, fmt, args); + } + else + { + g.LogClipboard->appendv(fmt, args); + } + va_end(args); +} + +// Internal version that takes a position to decide on newline placement and pad items according to their depth. +// We split text into individual lines to add current tree level padding +static void LogRenderedText(const ImVec2& ref_pos, const char* text, const char* text_end) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = ImGui::GetCurrentWindow(); + + if (!text_end) + text_end = FindTextDisplayEnd(text, text_end); + + const bool log_new_line = ref_pos.y > window->DC.LogLinePosY+1; + window->DC.LogLinePosY = ref_pos.y; + + const char* text_remaining = text; + if (g.LogStartDepth > window->DC.TreeDepth) // Re-adjust padding if we have popped out of our starting depth + g.LogStartDepth = window->DC.TreeDepth; + const int tree_depth = (window->DC.TreeDepth - g.LogStartDepth); + for (;;) + { + // Split the string. Each new line (after a '\n') is followed by spacing corresponding to the current depth of our log entry. + const char* line_end = text_remaining; + while (line_end < text_end) + if (*line_end == '\n') + break; + else + line_end++; + if (line_end >= text_end) + line_end = NULL; + + const bool is_first_line = (text == text_remaining); + bool is_last_line = false; + if (line_end == NULL) + { + is_last_line = true; + line_end = text_end; + } + if (line_end != NULL && !(is_last_line && (line_end - text_remaining)==0)) + { + const int char_count = (int)(line_end - text_remaining); + if (log_new_line || !is_first_line) + ImGui::LogText(IM_NEWLINE "%*s%.*s", tree_depth*4, "", char_count, text_remaining); + else + ImGui::LogText(" %.*s", char_count, text_remaining); + } + + if (is_last_line) + break; + text_remaining = line_end + 1; + } +} + +// Internal ImGui functions to render text +// RenderText***() functions calls ImDrawList::AddText() calls ImBitmapFont::RenderText() +void ImGui::RenderText(ImVec2 pos, const char* text, const char* text_end, bool hide_text_after_hash) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + // Hide anything after a '##' string + const char* text_display_end; + if (hide_text_after_hash) + { + text_display_end = FindTextDisplayEnd(text, text_end); + } + else + { + if (!text_end) + text_end = text + strlen(text); // FIXME-OPT + text_display_end = text_end; + } + + const int text_len = (int)(text_display_end - text); + if (text_len > 0) + { + // Render + window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_display_end); + + // Log as text + if (g.LogEnabled) + LogRenderedText(pos, text, text_display_end); + } +} + +void ImGui::RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + if (!text_end) + text_end = text + strlen(text); // FIXME-OPT + + const int text_len = (int)(text_end - text); + if (text_len > 0) + { + window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_end, wrap_width); + if (g.LogEnabled) + LogRenderedText(pos, text, text_end); + } +} + +void ImGui::RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, ImGuiAlign align, const ImVec2* clip_min, const ImVec2* clip_max) +{ + // Hide anything after a '##' string + const char* text_display_end = FindTextDisplayEnd(text, text_end); + const int text_len = (int)(text_display_end - text); + if (text_len == 0) + return; + + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + // Perform CPU side clipping for single clipped element to avoid using scissor state + ImVec2 pos = pos_min; + const ImVec2 text_size = text_size_if_known ? *text_size_if_known : ImGui::CalcTextSize(text, text_display_end, false, 0.0f); + + if (!clip_max) clip_max = &pos_max; + bool need_clipping = (pos.x + text_size.x >= clip_max->x) || (pos.y + text_size.y >= clip_max->y); + if (!clip_min) clip_min = &pos_min; else need_clipping |= (pos.x < clip_min->x) || (pos.y < clip_min->y); + + // Align + if (align & ImGuiAlign_Center) pos.x = ImMax(pos.x, (pos.x + pos_max.x - text_size.x) * 0.5f); + else if (align & ImGuiAlign_Right) pos.x = ImMax(pos.x, pos_max.x - text_size.x); + if (align & ImGuiAlign_VCenter) pos.y = ImMax(pos.y, (pos.y + pos_max.y - text_size.y) * 0.5f); + + // Render + if (need_clipping) + { + ImVec4 fine_clip_rect(clip_min->x, clip_min->y, clip_max->x, clip_max->y); + window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_display_end, 0.0f, &fine_clip_rect); + } + else + { + window->DrawList->AddText(g.Font, g.FontSize, pos, window->Color(ImGuiCol_Text), text, text_display_end, 0.0f, NULL); + } + if (g.LogEnabled) + LogRenderedText(pos, text, text_display_end); +} + +// Render a rectangle shaped with optional rounding and borders +void ImGui::RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border, float rounding) +{ + ImGuiWindow* window = GetCurrentWindow(); + + window->DrawList->AddRectFilled(p_min, p_max, fill_col, rounding); + if (border && (window->Flags & ImGuiWindowFlags_ShowBorders)) + { + window->DrawList->AddRect(p_min+ImVec2(1,1), p_max, window->Color(ImGuiCol_BorderShadow), rounding); + window->DrawList->AddRect(p_min, p_max-ImVec2(1,1), window->Color(ImGuiCol_Border), rounding); + } +} + +// Render a triangle to denote expanded/collapsed state +void ImGui::RenderCollapseTriangle(ImVec2 p_min, bool opened, float scale, bool shadow) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + const float h = g.FontSize * 1.00f; + const float r = h * 0.40f * scale; + ImVec2 center = p_min + ImVec2(h*0.50f, h*0.50f*scale); + + ImVec2 a, b, c; + if (opened) + { + center.y -= r*0.25f; + a = center + ImVec2(0,1)*r; + b = center + ImVec2(-0.866f,-0.5f)*r; + c = center + ImVec2(0.866f,-0.5f)*r; + } + else + { + a = center + ImVec2(1,0)*r; + b = center + ImVec2(-0.500f,0.866f)*r; + c = center + ImVec2(-0.500f,-0.866f)*r; + } + + if (shadow && (window->Flags & ImGuiWindowFlags_ShowBorders) != 0) + window->DrawList->AddTriangleFilled(a+ImVec2(2,2), b+ImVec2(2,2), c+ImVec2(2,2), window->Color(ImGuiCol_BorderShadow)); + window->DrawList->AddTriangleFilled(a, b, c, window->Color(ImGuiCol_Text)); +} + +void ImGui::RenderCheckMark(ImVec2 pos, ImU32 col) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + ImVec2 a, b, c; + float start_x = (float)(int)(g.FontSize * 0.307f + 0.5f); + float rem_third = (float)(int)((g.FontSize - start_x) / 3.0f); + a.x = pos.x + 0.5f + start_x; + b.x = a.x + rem_third; + c.x = a.x + rem_third * 3.0f; + b.y = pos.y - 1.0f + (float)(int)(g.Font->Ascent * (g.FontSize / g.Font->FontSize) + 0.5f) + (float)(int)(g.Font->DisplayOffset.y); + a.y = b.y - rem_third; + c.y = b.y - rem_third * 2.0f; + + window->DrawList->PathLineTo(a); + window->DrawList->PathLineTo(b); + window->DrawList->PathLineTo(c); + window->DrawList->PathStroke(col, false); +} + +// Calculate text size. Text can be multi-line. Optionally ignore text after a ## marker. +// CalcTextSize("") should return ImVec2(0.0f, GImGui->FontSize) +ImVec2 ImGui::CalcTextSize(const char* text, const char* text_end, bool hide_text_after_double_hash, float wrap_width) +{ + ImGuiState& g = *GImGui; + + const char* text_display_end; + if (hide_text_after_double_hash) + text_display_end = FindTextDisplayEnd(text, text_end); // Hide anything after a '##' string + else + text_display_end = text_end; + + ImFont* font = g.Font; + const float font_size = g.FontSize; + ImVec2 text_size = font->CalcTextSizeA(font_size, FLT_MAX, wrap_width, text, text_display_end, NULL); + + // Cancel out character spacing for the last character of a line (it is baked into glyph->XAdvance field) + const float font_scale = font_size / font->FontSize; + const float character_spacing_x = 1.0f * font_scale; + if (text_size.x > 0.0f) + text_size.x -= character_spacing_x; + + return text_size; +} + +// Helper to calculate coarse clipping of large list of evenly sized items. +// NB: Prefer using the ImGuiListClipper higher-level helper if you can! +// If you are displaying thousands of items and you have a random access to the list, you can perform clipping yourself to save on CPU. +// { +// float item_height = ImGui::GetTextLineHeightWithSpacing(); +// int display_start, display_end; +// ImGui::CalcListClipping(count, item_height, &display_start, &display_end); // calculate how many to clip/display +// ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (display_start) * item_height); // advance cursor +// for (int i = display_start; i < display_end; i++) // display only visible items +// // TODO: display visible item +// ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (count - display_end) * item_height); // advance cursor +// } +void ImGui::CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + if (g.LogEnabled) + { + // If logging is active, do not perform any clipping + *out_items_display_start = 0; + *out_items_display_end = items_count; + return; + } + + const ImVec2 pos = window->DC.CursorPos; + int start = (int)((window->ClipRect.Min.y - pos.y) / items_height); + int end = (int)((window->ClipRect.Max.y - pos.y) / items_height); + start = ImClamp(start, 0, items_count); + end = ImClamp(end + 1, start, items_count); + *out_items_display_start = start; + *out_items_display_end = end; +} + +// Find window given position, search front-to-back +static ImGuiWindow* FindHoveredWindow(ImVec2 pos, bool excluding_childs) +{ + ImGuiState& g = *GImGui; + for (int i = g.Windows.Size-1; i >= 0; i--) + { + ImGuiWindow* window = g.Windows[i]; + if (!window->Active) + continue; + if (window->Flags & ImGuiWindowFlags_NoInputs) + continue; + if (excluding_childs && (window->Flags & ImGuiWindowFlags_ChildWindow) != 0) + continue; + + // Using the clipped AABB so a child window will typically be clipped by its parent. + ImRect bb(window->ClippedWindowRect.Min - g.Style.TouchExtraPadding, window->ClippedWindowRect.Max + g.Style.TouchExtraPadding); + if (bb.Contains(pos)) + return window; + } + return NULL; +} + +// Test if mouse cursor is hovering given rectangle +// NB- Rectangle is clipped by our current clip setting +// NB- Expand the rectangle to be generous on imprecise inputs systems (g.Style.TouchExtraPadding) +bool ImGui::IsMouseHoveringRect(const ImVec2& rect_min, const ImVec2& rect_max) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + // Clip + ImRect rect_clipped(rect_min, rect_max); + rect_clipped.Clip(window->ClipRect); + + // Expand for touch input + const ImRect rect_for_touch(rect_clipped.Min - g.Style.TouchExtraPadding, rect_clipped.Max + g.Style.TouchExtraPadding); + return rect_for_touch.Contains(g.IO.MousePos); +} + +bool ImGui::IsMouseHoveringWindow() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + return g.HoveredWindow == window; +} + +bool ImGui::IsMouseHoveringAnyWindow() +{ + ImGuiState& g = *GImGui; + return g.HoveredWindow != NULL; +} + +bool ImGui::IsPosHoveringAnyWindow(const ImVec2& pos) +{ + return FindHoveredWindow(pos, false) != NULL; +} + +static bool IsKeyPressedMap(ImGuiKey key, bool repeat) +{ + const int key_index = GImGui->IO.KeyMap[key]; + return ImGui::IsKeyPressed(key_index, repeat); +} + +int ImGui::GetKeyIndex(ImGuiKey key) +{ + IM_ASSERT(key >= 0 && key < ImGuiKey_COUNT); + return GImGui->IO.KeyMap[key]; +} + +bool ImGui::IsKeyDown(int key_index) +{ + if (key_index < 0) return false; + IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(GImGui->IO.KeysDown)); + return GImGui->IO.KeysDown[key_index]; +} + +bool ImGui::IsKeyPressed(int key_index, bool repeat) +{ + ImGuiState& g = *GImGui; + if (key_index < 0) return false; + IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(g.IO.KeysDown)); + const float t = g.IO.KeysDownDuration[key_index]; + if (t == 0.0f) + return true; + + if (repeat && t > g.IO.KeyRepeatDelay) + { + float delay = g.IO.KeyRepeatDelay, rate = g.IO.KeyRepeatRate; + if ((fmodf(t - delay, rate) > rate*0.5f) != (fmodf(t - delay - g.IO.DeltaTime, rate) > rate*0.5f)) + return true; + } + return false; +} + +bool ImGui::IsKeyReleased(int key_index) +{ + ImGuiState& g = *GImGui; + if (key_index < 0) return false; + IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(g.IO.KeysDown)); + if (g.IO.KeysDownDurationPrev[key_index] >= 0.0f && !g.IO.KeysDown[key_index]) + return true; + return false; +} + +bool ImGui::IsMouseDown(int button) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + return g.IO.MouseDown[button]; +} + +bool ImGui::IsMouseClicked(int button, bool repeat) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + const float t = g.IO.MouseDownDuration[button]; + if (t == 0.0f) + return true; + + if (repeat && t > g.IO.KeyRepeatDelay) + { + float delay = g.IO.KeyRepeatDelay, rate = g.IO.KeyRepeatRate; + if ((fmodf(t - delay, rate) > rate*0.5f) != (fmodf(t - delay - g.IO.DeltaTime, rate) > rate*0.5f)) + return true; + } + + return false; +} + +bool ImGui::IsMouseReleased(int button) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + return g.IO.MouseReleased[button]; +} + +bool ImGui::IsMouseDoubleClicked(int button) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + return g.IO.MouseDoubleClicked[button]; +} + +bool ImGui::IsMouseDragging(int button, float lock_threshold) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + if (!g.IO.MouseDown[button]) + return false; + if (lock_threshold < 0.0f) + lock_threshold = g.IO.MouseDragThreshold; + return g.IO.MouseDragMaxDistanceSqr[button] >= lock_threshold * lock_threshold; +} + +ImVec2 ImGui::GetMousePos() +{ + return GImGui->IO.MousePos; +} + +ImVec2 ImGui::GetMouseDragDelta(int button, float lock_threshold) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + if (lock_threshold < 0.0f) + lock_threshold = g.IO.MouseDragThreshold; + if (g.IO.MouseDown[button]) + if (g.IO.MouseDragMaxDistanceSqr[button] >= lock_threshold * lock_threshold) + return g.IO.MousePos - g.IO.MouseClickedPos[button]; // Assume we can only get active with left-mouse button (at the moment). + return ImVec2(0.0f, 0.0f); +} + +void ImGui::ResetMouseDragDelta(int button) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); + // NB: We don't need to reset g.IO.MouseDragMaxDistanceSqr + g.IO.MouseClickedPos[button] = g.IO.MousePos; +} + +ImGuiMouseCursor ImGui::GetMouseCursor() +{ + return GImGui->MouseCursor; +} + +void ImGui::SetMouseCursor(ImGuiMouseCursor cursor_type) +{ + GImGui->MouseCursor = cursor_type; +} + +void ImGui::CaptureKeyboardFromApp() +{ + GImGui->CaptureKeyboardNextFrame = true; +} + +void ImGui::CaptureMouseFromApp() +{ + GImGui->CaptureMouseNextFrame = true; +} + +bool ImGui::IsItemHovered() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.LastItemHoveredAndUsable; +} + +bool ImGui::IsItemHoveredRect() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.LastItemHoveredRect; +} + +bool ImGui::IsItemActive() +{ + ImGuiState& g = *GImGui; + if (g.ActiveId) + { + ImGuiWindow* window = GetCurrentWindow(); + return g.ActiveId == window->DC.LastItemID; + } + return false; +} + +bool ImGui::IsAnyItemHovered() +{ + return GImGui->HoveredId != 0 || GImGui->HoveredIdPreviousFrame != 0; +} + +bool ImGui::IsAnyItemActive() +{ + return GImGui->ActiveId != 0; +} + +bool ImGui::IsItemVisible() +{ + ImGuiWindow* window = GetCurrentWindow(); + ImRect r(window->ClipRect); + return r.Overlaps(window->DC.LastItemRect); +} + +ImVec2 ImGui::GetItemRectMin() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.LastItemRect.Min; +} + +ImVec2 ImGui::GetItemRectMax() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.LastItemRect.Max; +} + +ImVec2 ImGui::GetItemRectSize() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.LastItemRect.GetSize(); +} + +ImVec2 ImGui::CalcItemRectClosestPoint(const ImVec2& pos, bool on_edge, float outward) +{ + ImGuiWindow* window = GetCurrentWindow(); + ImRect rect = window->DC.LastItemRect; + rect.Expand(outward); + return rect.GetClosestPoint(pos, on_edge); +} + +// Tooltip is stored and turned into a BeginTooltip()/EndTooltip() sequence at the end of the frame. Each call override previous value. +void ImGui::SetTooltipV(const char* fmt, va_list args) +{ + ImGuiState& g = *GImGui; + ImFormatStringV(g.Tooltip, IM_ARRAYSIZE(g.Tooltip), fmt, args); +} + +void ImGui::SetTooltip(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + SetTooltipV(fmt, args); + va_end(args); +} + +static ImRect GetVisibleRect() +{ + ImGuiState& g = *GImGui; + if (g.IO.DisplayVisibleMin.x != g.IO.DisplayVisibleMax.x && g.IO.DisplayVisibleMin.y != g.IO.DisplayVisibleMax.y) + return ImRect(g.IO.DisplayVisibleMin, g.IO.DisplayVisibleMax); + return ImRect(0.0f, 0.0f, g.IO.DisplaySize.x, g.IO.DisplaySize.y); +} + +void ImGui::BeginTooltip() +{ + ImGuiState& g = *GImGui; + ImGuiWindowFlags flags = ImGuiWindowFlags_Tooltip|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_AlwaysAutoResize; + ImGui::Begin("##Tooltip", NULL, ImVec2(0,0), g.Style.Colors[ImGuiCol_TooltipBg].w, flags); +} + +void ImGui::EndTooltip() +{ + IM_ASSERT(GetCurrentWindow()->Flags & ImGuiWindowFlags_Tooltip); + ImGui::End(); +} + +static bool IsPopupOpen(ImGuiID id) +{ + ImGuiState& g = *GImGui; + const bool opened = g.OpenedPopupStack.Size > g.CurrentPopupStack.Size && g.OpenedPopupStack[g.CurrentPopupStack.Size].PopupID == id; + return opened; +} + +// One open popup per level of the popup hierarchy (NB: when assigning we reset the Window member of ImGuiPopupRef to NULL) +void ImGui::OpenPopup(const char* str_id) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + ImGuiID id = window->GetID(str_id); + int current_stack_size = g.CurrentPopupStack.Size; + ImGuiPopupRef popup_ref = ImGuiPopupRef(id, window, window->GetID("##menus")); // Tagged as new ref because constructor sets Window to NULL (we are passing the ParentWindow info here) + if (g.OpenedPopupStack.Size < current_stack_size + 1) + g.OpenedPopupStack.push_back(popup_ref); + else if (g.OpenedPopupStack[current_stack_size].PopupID != id) + { + g.OpenedPopupStack.resize(current_stack_size+1); + g.OpenedPopupStack[current_stack_size] = popup_ref; + } +} + +static void CloseInactivePopups() +{ + ImGuiState& g = *GImGui; + if (g.OpenedPopupStack.empty()) + return; + + // When popups are stacked, clicking on a lower level popups puts focus back to it and close popups above it. + // Don't close our own child popup windows + int n = 0; + if (g.FocusedWindow) + { + for (n = 0; n < g.OpenedPopupStack.Size; n++) + { + ImGuiPopupRef& popup = g.OpenedPopupStack[n]; + if (!popup.Window) + continue; + IM_ASSERT((popup.Window->Flags & ImGuiWindowFlags_Popup) != 0); + if (popup.Window->Flags & ImGuiWindowFlags_ChildWindow) + continue; + + bool has_focus = false; + for (int m = n; m < g.OpenedPopupStack.Size && !has_focus; m++) + has_focus = (g.OpenedPopupStack[m].Window && g.OpenedPopupStack[m].Window->RootWindow == g.FocusedWindow->RootWindow); + if (!has_focus) + break; + } + } + if (n < g.OpenedPopupStack.Size) // This test is not required but it allows to set a useful breakpoint on the line below + g.OpenedPopupStack.resize(n); +} + +static ImGuiWindow* GetFrontMostModalRootWindow() +{ + ImGuiState& g = *GImGui; + if (!g.OpenedPopupStack.empty()) + if (ImGuiWindow* front_most_popup = g.OpenedPopupStack.back().Window) + if (front_most_popup->Flags & ImGuiWindowFlags_Modal) + return front_most_popup; + return NULL; +} + +static void ClosePopupToLevel(int remaining) +{ + ImGuiState& g = *GImGui; + if (remaining > 0) + ImGui::FocusWindow(g.OpenedPopupStack[remaining-1].Window); + else + ImGui::FocusWindow(g.OpenedPopupStack[0].ParentWindow); + g.OpenedPopupStack.resize(remaining); +} + +static void ClosePopup(ImGuiID id) +{ + if (!IsPopupOpen(id)) + return; + ImGuiState& g = *GImGui; + ClosePopupToLevel(g.OpenedPopupStack.Size - 1); +} + +// Close the popup we have begin-ed into. +void ImGui::CloseCurrentPopup() +{ + ImGuiState& g = *GImGui; + int popup_idx = g.CurrentPopupStack.Size - 1; + if (popup_idx < 0 || popup_idx > g.OpenedPopupStack.Size || g.CurrentPopupStack[popup_idx].PopupID != g.OpenedPopupStack[popup_idx].PopupID) + return; + while (popup_idx > 0 && g.OpenedPopupStack[popup_idx].Window && (g.OpenedPopupStack[popup_idx].Window->Flags & ImGuiWindowFlags_ChildMenu)) + popup_idx--; + ClosePopupToLevel(popup_idx); +} + +static void ClearSetNextWindowData() +{ + ImGuiState& g = *GImGui; + g.SetNextWindowPosCond = g.SetNextWindowSizeCond = g.SetNextWindowCollapsedCond = g.SetNextWindowFocus = 0; +} + +static bool BeginPopupEx(const char* str_id, ImGuiWindowFlags extra_flags) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + const ImGuiID id = window->GetID(str_id); + if (!IsPopupOpen(id)) + { + ClearSetNextWindowData(); // We behave like Begin() and need to consume those values + return false; + } + + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); + ImGuiWindowFlags flags = extra_flags|ImGuiWindowFlags_Popup|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_AlwaysAutoResize; + + char name[32]; + if (flags & ImGuiWindowFlags_ChildMenu) + ImFormatString(name, 20, "##menu_%d", g.CurrentPopupStack.Size); // Recycle windows based on depth + else + ImFormatString(name, 20, "##popup_%08x", id); // Not recycling, so we can close/open during the same frame + float alpha = 1.0f; + + bool opened = ImGui::Begin(name, NULL, ImVec2(0.0f, 0.0f), alpha, flags); + if (!(window->Flags & ImGuiWindowFlags_ShowBorders)) + g.CurrentWindow->Flags &= ~ImGuiWindowFlags_ShowBorders; + if (!opened) // opened can be 'false' when the popup is completely clipped (e.g. zero size display) + ImGui::EndPopup(); + + return opened; +} + +bool ImGui::BeginPopup(const char* str_id) +{ + return BeginPopupEx(str_id, ImGuiWindowFlags_ShowBorders); +} + +bool ImGui::BeginPopupModal(const char* name, bool* p_opened, ImGuiWindowFlags extra_flags) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + const ImGuiID id = window->GetID(name); + if (!IsPopupOpen(id)) + { + ClearSetNextWindowData(); // We behave like Begin() and need to consume those values + return false; + } + + ImGuiWindowFlags flags = extra_flags|ImGuiWindowFlags_Popup|ImGuiWindowFlags_Modal|ImGuiWindowFlags_NoCollapse|ImGuiWindowFlags_NoSavedSettings; + bool opened = ImGui::Begin(name, p_opened, ImVec2(0.0f, 0.0f), -1.0f, flags); + if (!opened || (p_opened && !*p_opened)) // Opened can be 'false' when the popup is completely clipped (e.g. zero size display) + { + ImGui::EndPopup(); + if (opened) + ClosePopup(id); + return false; + } + + return opened; +} + +void ImGui::EndPopup() +{ + ImGuiWindow* window = GetCurrentWindow(); + IM_ASSERT(window->Flags & ImGuiWindowFlags_Popup); + IM_ASSERT(GImGui->CurrentPopupStack.Size > 0); + ImGui::End(); + if (!(window->Flags & ImGuiWindowFlags_Modal)) + ImGui::PopStyleVar(); +} + +bool ImGui::BeginPopupContextItem(const char* str_id, int mouse_button) +{ + if (ImGui::IsItemHovered() && ImGui::IsMouseClicked(mouse_button)) + ImGui::OpenPopup(str_id); + return ImGui::BeginPopup(str_id); +} + +bool ImGui::BeginPopupContextWindow(bool also_over_items, const char* str_id, int mouse_button) +{ + if (!str_id) str_id = "window_context_menu"; + if (ImGui::IsMouseHoveringWindow() && ImGui::IsMouseClicked(mouse_button)) + if (also_over_items || !ImGui::IsAnyItemHovered()) + ImGui::OpenPopup(str_id); + return ImGui::BeginPopup(str_id); +} + +bool ImGui::BeginPopupContextVoid(const char* str_id, int mouse_button) +{ + if (!str_id) str_id = "void_context_menu"; + if (!ImGui::IsMouseHoveringAnyWindow() && ImGui::IsMouseClicked(mouse_button)) + ImGui::OpenPopup(str_id); + return ImGui::BeginPopup(str_id); +} + +bool ImGui::BeginChild(const char* str_id, const ImVec2& size_arg, bool border, ImGuiWindowFlags extra_flags) +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGuiWindowFlags flags = ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_ChildWindow; + + const ImVec2 content_avail = ImGui::GetContentRegionAvail(); + ImVec2 size = size_arg; + if (size.x <= 0.0f) + { + if (size.x == 0.0f) + flags |= ImGuiWindowFlags_ChildWindowAutoFitX; + size.x = ImMax(content_avail.x, 4.0f) - fabsf(size.x); // Arbitrary minimum zero-ish child size of 4.0f (0.0f causing too much issues) + } + if (size.y <= 0.0f) + { + if (size.y == 0.0f) + flags |= ImGuiWindowFlags_ChildWindowAutoFitY; + size.y = ImMax(content_avail.y, 4.0f) - fabsf(size.y); + } + if (border) + flags |= ImGuiWindowFlags_ShowBorders; + flags |= extra_flags; + + char title[256]; + ImFormatString(title, IM_ARRAYSIZE(title), "%s.%s", window->Name, str_id); + + const float alpha = 1.0f; + bool ret = ImGui::Begin(title, NULL, size, alpha, flags); + + if (!(window->Flags & ImGuiWindowFlags_ShowBorders)) + GetCurrentWindow()->Flags &= ~ImGuiWindowFlags_ShowBorders; + + return ret; +} + +bool ImGui::BeginChild(ImGuiID id, const ImVec2& size, bool border, ImGuiWindowFlags extra_flags) +{ + char str_id[32]; + ImFormatString(str_id, IM_ARRAYSIZE(str_id), "child_%08x", id); + bool ret = ImGui::BeginChild(str_id, size, border, extra_flags); + return ret; +} + +void ImGui::EndChild() +{ + ImGuiWindow* window = GetCurrentWindow(); + + IM_ASSERT(window->Flags & ImGuiWindowFlags_ChildWindow); + if ((window->Flags & ImGuiWindowFlags_ComboBox) || window->BeginCount > 1) + { + ImGui::End(); + } + else + { + // When using auto-filling child window, we don't provide full width/height to ItemSize so that it doesn't feed back into automatic size-fitting. + ImGuiState& g = *GImGui; + ImVec2 sz = ImGui::GetWindowSize(); + if (window->Flags & ImGuiWindowFlags_ChildWindowAutoFitX) // Arbitrary minimum zeroish child size of 4.0f + sz.x = ImMax(4.0f, sz.x - g.Style.WindowPadding.x); + if (window->Flags & ImGuiWindowFlags_ChildWindowAutoFitY) + sz.y = ImMax(4.0f, sz.y - g.Style.WindowPadding.y); + + ImGui::End(); + + window = GetCurrentWindow(); + ImRect bb(window->DC.CursorPos, window->DC.CursorPos + sz); + ItemSize(sz); + ItemAdd(bb, NULL); + } +} + +// Helper to create a child window / scrolling region that looks like a normal widget frame. +bool ImGui::BeginChildFrame(ImGuiID id, const ImVec2& size) +{ + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + ImGui::PushStyleColor(ImGuiCol_ChildWindowBg, style.Colors[ImGuiCol_FrameBg]); + ImGui::PushStyleVar(ImGuiStyleVar_ChildWindowRounding, style.FrameRounding); + return ImGui::BeginChild(id, size); +} + +void ImGui::EndChildFrame() +{ + ImGui::EndChild(); + ImGui::PopStyleVar(); + ImGui::PopStyleColor(); +} + +// Save and compare stack sizes on Begin()/End() to detect usage errors +static void CheckStacksSize(ImGuiWindow* window, bool write) +{ + // NOT checking: DC.ItemWidth, DC.AllowKeyboardFocus, DC.ButtonRepeat, DC.TextWrapPos (per window) to allow user to conveniently push once and not pop (they are cleared on Begin) + ImGuiState& g = *GImGui; + int* p_backup = &window->DC.StackSizesBackup[0]; + { int current = window->IDStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopID() + { int current = window->DC.GroupStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot EndGroup() + { int current = g.CurrentPopupStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot EndPopup()/EndMenu() + { int current = g.ColorModifiers.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopStyleColor() + { int current = g.StyleModifiers.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopStyleVar() + { int current = g.FontStack.Size; if (write) *p_backup = current; else IM_ASSERT(*p_backup == current); p_backup++; } // User forgot PopFont() + IM_ASSERT(p_backup == window->DC.StackSizesBackup + IM_ARRAYSIZE(window->DC.StackSizesBackup)); +} + +static ImVec2 FindBestPopupWindowPos(const ImVec2& base_pos, const ImVec2& size, ImGuiWindowFlags flags, int* last_dir, const ImRect& r_inner) +{ + const ImGuiStyle& style = GImGui->Style; + + // Clamp into visible area while not overlapping the cursor + ImRect r_outer(GetVisibleRect()); + r_outer.Reduce(style.DisplaySafeAreaPadding); + ImVec2 base_pos_clamped = ImClamp(base_pos, r_outer.Min, r_outer.Max - size); + + for (int n = (*last_dir != -1) ? -1 : 0; n < 4; n++) // Right, down, up, left. Favor last used direction. + { + const int dir = (n == -1) ? *last_dir : n; + ImRect rect(dir == 0 ? r_inner.Max.x : r_outer.Min.x, dir == 1 ? r_inner.Max.y : r_outer.Min.y, dir == 3 ? r_inner.Min.x : r_outer.Max.x, dir == 2 ? r_inner.Min.y : r_outer.Max.y); + if (rect.GetWidth() < size.x || rect.GetHeight() < size.y) + continue; + *last_dir = dir; + return ImVec2(dir == 0 ? r_inner.Max.x : dir == 3 ? r_inner.Min.x - size.x : base_pos_clamped.x, dir == 1 ? r_inner.Max.y : dir == 2 ? r_inner.Min.y - size.y : base_pos_clamped.y); + } + + // Fallback + *last_dir = -1; + if (flags & ImGuiWindowFlags_Tooltip) // For tooltip we prefer avoiding the cursor at all cost even if it means that part of the tooltip won't be visible. + return base_pos + ImVec2(2,2); + + // Otherwise try to keep within display + ImVec2 pos = base_pos; + pos.x = ImMax(ImMin(pos.x + size.x, r_outer.Max.x) - size.x, r_outer.Min.x); + pos.y = ImMax(ImMin(pos.y + size.y, r_outer.Max.y) - size.y, r_outer.Min.y); + return pos; +} + +static ImGuiWindow* FindWindowByName(const char* name) +{ + // FIXME-OPT: Store sorted hashes -> pointers. + ImGuiState& g = *GImGui; + ImGuiID id = ImHash(name, 0); + for (int i = 0; i < g.Windows.Size; i++) + if (g.Windows[i]->ID == id) + return g.Windows[i]; + return NULL; +} + +static ImGuiWindow* CreateNewWindow(const char* name, ImVec2 size, ImGuiWindowFlags flags) +{ + ImGuiState& g = *GImGui; + + // Create window the first time + ImGuiWindow* window = (ImGuiWindow*)ImGui::MemAlloc(sizeof(ImGuiWindow)); + new(window) ImGuiWindow(name); + window->Flags = flags; + + if (flags & ImGuiWindowFlags_NoSavedSettings) + { + // User can disable loading and saving of settings. Tooltip and child windows also don't store settings. + window->Size = window->SizeFull = size; + } + else + { + // Retrieve settings from .ini file + // Use SetWindowPos() or SetNextWindowPos() with the appropriate condition flag to change the initial position of a window. + window->PosFloat = ImVec2(60, 60); + window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); + + ImGuiIniData* settings = FindWindowSettings(name); + if (!settings) + { + settings = AddWindowSettings(name); + } + else + { + window->SetWindowPosAllowFlags &= ~ImGuiSetCond_FirstUseEver; + window->SetWindowSizeAllowFlags &= ~ImGuiSetCond_FirstUseEver; + window->SetWindowCollapsedAllowFlags &= ~ImGuiSetCond_FirstUseEver; + } + + if (settings->Pos.x != FLT_MAX) + { + window->PosFloat = settings->Pos; + window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); + window->Collapsed = settings->Collapsed; + } + + if (ImLengthSqr(settings->Size) > 0.00001f && !(flags & ImGuiWindowFlags_NoResize)) + size = settings->Size; + window->Size = window->SizeFull = size; + } + + if ((flags & ImGuiWindowFlags_AlwaysAutoResize) != 0) + { + window->AutoFitFramesX = window->AutoFitFramesY = 2; + window->AutoFitOnlyGrows = false; + } + else + { + if (window->Size.x <= 0.0f) + window->AutoFitFramesX = 2; + if (window->Size.y <= 0.0f) + window->AutoFitFramesY = 2; + window->AutoFitOnlyGrows = (window->AutoFitFramesX > 0) || (window->AutoFitFramesY > 0); + } + + g.Windows.push_back(window); + return window; +} + +// Push a new ImGui window to add widgets to. +// - A default window called "Debug" is automatically stacked at the beginning of every frame so you can use widgets without explicitly calling a Begin/End pair. +// - Begin/End can be called multiple times during the frame with the same window name to append content. +// - 'size_on_first_use' for a regular window denote the initial size for first-time creation (no saved data) and isn't that useful. Use SetNextWindowSize() prior to calling Begin() for more flexible window manipulation. +// - The window name is used as a unique identifier to preserve window information across frames (and save rudimentary information to the .ini file). +// You can use the "##" or "###" markers to use the same label with different id, or same id with different label. See documentation at the top of this file. +// - Return false when window is collapsed, so you can early out in your code. You always need to call ImGui::End() even if false is returned. +// - Passing 'bool* p_opened' displays a Close button on the upper-right corner of the window, the pointed value will be set to false when the button is pressed. +// - Passing non-zero 'size' is roughly equivalent to calling SetNextWindowSize(size, ImGuiSetCond_FirstUseEver) prior to calling Begin(). +bool ImGui::Begin(const char* name, bool* p_opened, ImGuiWindowFlags flags) +{ + return ImGui::Begin(name, p_opened, ImVec2(0.f, 0.f), -1.0f, flags); +} + +bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_use, float bg_alpha, ImGuiWindowFlags flags) +{ + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + IM_ASSERT(g.Initialized); // Forgot to call ImGui::NewFrame() + IM_ASSERT(name != NULL); // Must pass a name + + if (flags & ImGuiWindowFlags_NoInputs) + flags |= ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize; + + // Find or create + bool window_is_new = false; + ImGuiWindow* window = FindWindowByName(name); + if (!window) + { + window = CreateNewWindow(name, size_on_first_use, flags); + window_is_new = true; + } + window->Flags = (ImGuiWindowFlags)flags; + + // Add to stack + ImGuiWindow* parent_window = !g.CurrentWindowStack.empty() ? g.CurrentWindowStack.back() : NULL; + g.CurrentWindowStack.push_back(window); + SetCurrentWindow(window); + CheckStacksSize(window, true); + IM_ASSERT(parent_window != NULL || !(flags & ImGuiWindowFlags_ChildWindow)); + + const int current_frame = ImGui::GetFrameCount(); + bool window_was_visible = (window->LastFrameDrawn == current_frame - 1); // Not using !WasActive because the implicit "Debug" window would always toggle off->on + if (flags & ImGuiWindowFlags_Popup) + { + ImGuiPopupRef& popup_ref = g.OpenedPopupStack[g.CurrentPopupStack.Size]; + window_was_visible &= (window->PopupID == popup_ref.PopupID); + window_was_visible &= (window == popup_ref.Window); + popup_ref.Window = window; + g.CurrentPopupStack.push_back(popup_ref); + window->PopupID = popup_ref.PopupID; + } + + // Process SetNextWindow***() calls + bool window_pos_set_by_api = false, window_size_set_by_api = false; + if (g.SetNextWindowPosCond) + { + const ImVec2 backup_cursor_pos = window->DC.CursorPos; // FIXME: not sure of the exact reason of this anymore :( need to look into that. + if (!window_was_visible) window->SetWindowPosAllowFlags |= ImGuiSetCond_Appearing; + window_pos_set_by_api = (window->SetWindowPosAllowFlags & g.SetNextWindowPosCond) != 0; + if (window_pos_set_by_api && ImLengthSqr(g.SetNextWindowPosVal - ImVec2(-FLT_MAX,-FLT_MAX)) < 0.001f) + { + window->SetWindowPosCenterWanted = true; // May be processed on the next frame if this is our first frame and we are measuring size + window->SetWindowPosAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); + } + else + { + ImGui::SetWindowPos(g.SetNextWindowPosVal, g.SetNextWindowPosCond); + } + window->DC.CursorPos = backup_cursor_pos; + g.SetNextWindowPosCond = 0; + } + if (g.SetNextWindowSizeCond) + { + if (!window_was_visible) window->SetWindowSizeAllowFlags |= ImGuiSetCond_Appearing; + window_size_set_by_api = (window->SetWindowSizeAllowFlags & g.SetNextWindowSizeCond) != 0; + ImGui::SetWindowSize(g.SetNextWindowSizeVal, g.SetNextWindowSizeCond); + g.SetNextWindowSizeCond = 0; + } + if (g.SetNextWindowCollapsedCond) + { + if (!window_was_visible) window->SetWindowCollapsedAllowFlags |= ImGuiSetCond_Appearing; + ImGui::SetWindowCollapsed(g.SetNextWindowCollapsedVal, g.SetNextWindowCollapsedCond); + g.SetNextWindowCollapsedCond = 0; + } + if (g.SetNextWindowFocus) + { + ImGui::SetWindowFocus(); + g.SetNextWindowFocus = false; + } + + // Update known root window (if we are a child window, otherwise window == window->RootWindow) + int root_idx, root_non_popup_idx; + for (root_idx = g.CurrentWindowStack.Size - 1; root_idx > 0; root_idx--) + if (!(g.CurrentWindowStack[root_idx]->Flags & ImGuiWindowFlags_ChildWindow)) + break; + for (root_non_popup_idx = root_idx; root_non_popup_idx > 0; root_non_popup_idx--) + if (!(g.CurrentWindowStack[root_non_popup_idx]->Flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup))) + break; + window->RootWindow = g.CurrentWindowStack[root_idx]; + window->RootNonPopupWindow = g.CurrentWindowStack[root_non_popup_idx]; // This is merely for displaying the TitleBgActive color. + + // Default alpha + if (bg_alpha < 0.0f) + bg_alpha = style.WindowFillAlphaDefault; + + // When reusing window again multiple times a frame, just append content (don't need to setup again) + const bool first_begin_of_the_frame = (window->LastFrameDrawn != current_frame); + if (first_begin_of_the_frame) + { + window->Active = true; + window->BeginCount = 0; + window->DrawList->Clear(); + window->ClipRect = ImVec4(-FLT_MAX,-FLT_MAX,+FLT_MAX,+FLT_MAX); + window->LastFrameDrawn = current_frame; + window->IDStack.resize(1); + + // Setup texture, outer clipping rectangle + window->DrawList->PushTextureID(g.Font->ContainerAtlas->TexID); + if ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & (ImGuiWindowFlags_ComboBox|ImGuiWindowFlags_Popup))) + PushClipRect(parent_window->ClipRect); + else + PushClipRect(GetVisibleRect()); + + // New windows appears in front + if (!window_was_visible) + { + window->AutoPosLastDirection = -1; + + if (!(flags & (ImGuiWindowFlags_ChildWindow|ImGuiWindowFlags_Tooltip)) || (flags & ImGuiWindowFlags_Popup)) + FocusWindow(window); + + // Popup first latch mouse position, will position itself when it appears next frame + if ((flags & ImGuiWindowFlags_Popup) != 0 && !window_pos_set_by_api) + window->PosFloat = g.IO.MousePos; + } + + // Collapse window by double-clicking on title bar + // At this point we don't have a clipping rectangle setup yet, so we can use the title bar area for hit detection and drawing + if (!(flags & ImGuiWindowFlags_NoTitleBar) && !(flags & ImGuiWindowFlags_NoCollapse)) + { + ImRect title_bar_rect = window->TitleBarRect(); + if (g.HoveredWindow == window && IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max) && g.IO.MouseDoubleClicked[0]) + { + window->Collapsed = !window->Collapsed; + if (!(flags & ImGuiWindowFlags_NoSavedSettings)) + MarkSettingsDirty(); + FocusWindow(window); + } + } + else + { + window->Collapsed = false; + } + + const bool window_appearing_after_being_hidden = (window->HiddenFrames == 1); + if (window->HiddenFrames > 0) + window->HiddenFrames--; + + // SIZE + + // Save contents size from last frame for auto-fitting + window->SizeContents = window_is_new ? ImVec2(0.0f, 0.0f) : window->DC.CursorMaxPos - window->Pos; + window->SizeContents.y += window->ScrollY; + + // Hide popup/tooltip window when first appearing while we measure size (because we recycle them) + if ((flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_Tooltip)) != 0 && !window_was_visible) + { + window->HiddenFrames = 1; + if (flags & ImGuiWindowFlags_AlwaysAutoResize) + { + if (!window_size_set_by_api) + window->Size = window->SizeFull = ImVec2(0.f, 0.f); + window->SizeContents = ImVec2(0.f, 0.f); + } + } + + // Lock window padding so that altering the ShowBorders flag for childs doesn't have side-effects. + window->WindowPadding = ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & (ImGuiWindowFlags_ShowBorders | ImGuiWindowFlags_ComboBox | ImGuiWindowFlags_Popup))) ? ImVec2(0,0) : style.WindowPadding; + + // Calculate auto-fit size + ImVec2 size_auto_fit; + if ((flags & ImGuiWindowFlags_Tooltip) != 0) + { + // Tooltip always resize. We keep the spacing symmetric on both axises for aesthetic purpose. + size_auto_fit = window->SizeContents + window->WindowPadding - ImVec2(0.0f, style.ItemSpacing.y); + } + else + { + size_auto_fit = ImClamp(window->SizeContents + window->WindowPadding, style.WindowMinSize, ImMax(style.WindowMinSize, g.IO.DisplaySize - window->WindowPadding)); + if (size_auto_fit.y < window->SizeContents.y && !(flags & ImGuiWindowFlags_NoScrollbar)) + size_auto_fit.x += style.ScrollbarWidth; + size_auto_fit.y = ImMax(size_auto_fit.y - style.ItemSpacing.y, 0.0f); + } + + // Handle automatic resize + if (window->Collapsed) + { + // We still process initial auto-fit on collapsed windows to get a window width, + // But otherwise we don't honor ImGuiWindowFlags_AlwaysAutoResize when collapsed. + if (window->AutoFitFramesX > 0) + window->SizeFull.x = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.x, size_auto_fit.x) : size_auto_fit.x; + if (window->AutoFitFramesY > 0) + window->SizeFull.y = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.y, size_auto_fit.y) : size_auto_fit.y; + window->Size = window->TitleBarRect().GetSize(); + } + else + { + if ((flags & ImGuiWindowFlags_AlwaysAutoResize) && !window_size_set_by_api) + { + window->SizeFull = size_auto_fit; + } + else if ((window->AutoFitFramesX > 0 || window->AutoFitFramesY > 0) && !window_size_set_by_api) + { + // Auto-fit only grows during the first few frames + if (window->AutoFitFramesX > 0) + window->SizeFull.x = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.x, size_auto_fit.x) : size_auto_fit.x; + if (window->AutoFitFramesY > 0) + window->SizeFull.y = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.y, size_auto_fit.y) : size_auto_fit.y; + if (!(flags & ImGuiWindowFlags_NoSavedSettings)) + MarkSettingsDirty(); + } + window->Size = window->SizeFull; + } + + // Minimum window size + if (!(flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_AlwaysAutoResize))) + { + window->SizeFull = ImMax(window->SizeFull, style.WindowMinSize); + if (!window->Collapsed) + window->Size = window->SizeFull; + } + + // POSITION + + // Position child window + if (flags & ImGuiWindowFlags_ChildWindow) + parent_window->DC.ChildWindows.push_back(window); + if ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Popup)) + { + window->Pos = window->PosFloat = parent_window->DC.CursorPos; + window->Size = window->SizeFull = size_on_first_use; // NB: argument name 'size_on_first_use' misleading here, it's really just 'size' as provided by user. + } + + bool window_pos_center = false; + window_pos_center |= (window->SetWindowPosCenterWanted && window->HiddenFrames == 0); + window_pos_center |= ((flags & ImGuiWindowFlags_Modal) && !window_pos_set_by_api && window_appearing_after_being_hidden); + if (window_pos_center) + { + // Center (any sort of window) + ImRect fullscreen_rect(GetVisibleRect()); + SetWindowPos(ImMax(style.DisplaySafeAreaPadding, fullscreen_rect.GetCenter() - window->SizeFull * 0.5f)); + } + else if (flags & ImGuiWindowFlags_ChildMenu) + { + IM_ASSERT(window_pos_set_by_api); + ImRect rect_to_avoid; + if (parent_window->DC.MenuBarAppending) + rect_to_avoid = ImRect(-FLT_MAX, parent_window->Pos.y + parent_window->TitleBarHeight(), FLT_MAX, parent_window->Pos.y + parent_window->TitleBarHeight() + parent_window->MenuBarHeight()); + else + rect_to_avoid = ImRect(parent_window->Pos.x + style.ItemSpacing.x, -FLT_MAX, parent_window->Pos.x + parent_window->Size.x - style.ItemSpacing.x - parent_window->ScrollbarWidth(), FLT_MAX); // We want some overlap to convey the relative depth of each popup (here hard-coded to 4) + window->PosFloat = FindBestPopupWindowPos(window->PosFloat, window->Size, flags, &window->AutoPosLastDirection, rect_to_avoid); + } + else if ((flags & ImGuiWindowFlags_Popup) != 0 && !window_pos_set_by_api && window_appearing_after_being_hidden) + { + ImRect rect_to_avoid(window->PosFloat.x - 1, window->PosFloat.y - 1, window->PosFloat.x + 1, window->PosFloat.y + 1); + window->PosFloat = FindBestPopupWindowPos(window->PosFloat, window->Size, flags, &window->AutoPosLastDirection, rect_to_avoid); + } + + // Position tooltip (always follows mouse) + if ((flags & ImGuiWindowFlags_Tooltip) != 0 && !window_pos_set_by_api) + { + ImRect rect_to_avoid(g.IO.MousePos.x - 16, g.IO.MousePos.y - 8, g.IO.MousePos.x + 24, g.IO.MousePos.y + 24); // FIXME: Completely hard-coded. Perhaps center on cursor hit-point instead? + window->PosFloat = FindBestPopupWindowPos(g.IO.MousePos, window->Size, flags, &window->AutoPosLastDirection, rect_to_avoid); + } + + // User moving window (at the beginning of the frame to avoid input lag or sheering). Only valid for root windows. + KeepAliveID(window->MoveID); + if (g.ActiveId == window->MoveID) + { + if (g.IO.MouseDown[0]) + { + if (!(flags & ImGuiWindowFlags_NoMove)) + { + window->PosFloat += g.IO.MouseDelta; + if (!(flags & ImGuiWindowFlags_NoSavedSettings)) + MarkSettingsDirty(); + } + IM_ASSERT(g.MovedWindow != NULL); + FocusWindow(g.MovedWindow); + } + else + { + SetActiveID(0); + g.MovedWindow = NULL; // Not strictly necessary but doing it for sanity. + } + } + + // Clamp position so it stays visible + if (!(flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Tooltip)) + { + if (!window_pos_set_by_api && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0 && g.IO.DisplaySize.x > 0.0f && g.IO.DisplaySize.y > 0.0f) // Ignore zero-sized display explicitly to avoid losing positions if a window manager reports zero-sized window when initializing or minimizing. + { + ImVec2 padding = ImMax(style.DisplayWindowPadding, style.DisplaySafeAreaPadding); + window->PosFloat = ImMax(window->PosFloat + window->Size, padding) - window->Size; + window->PosFloat = ImMin(window->PosFloat, g.IO.DisplaySize - padding); + } + } + window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); + + // Default item width. Make it proportional to window size if window manually resizes + if (window->Size.x > 0.0f && !(flags & ImGuiWindowFlags_Tooltip) && !(flags & ImGuiWindowFlags_AlwaysAutoResize)) + window->ItemWidthDefault = (float)(int)(window->Size.x * 0.65f); + else + window->ItemWidthDefault = (float)(int)(g.FontSize * 16.0f); + + // Prepare for focus requests + window->FocusIdxAllRequestCurrent = (window->FocusIdxAllRequestNext == IM_INT_MAX || window->FocusIdxAllCounter == -1) ? IM_INT_MAX : (window->FocusIdxAllRequestNext + (window->FocusIdxAllCounter+1)) % (window->FocusIdxAllCounter+1); + window->FocusIdxTabRequestCurrent = (window->FocusIdxTabRequestNext == IM_INT_MAX || window->FocusIdxTabCounter == -1) ? IM_INT_MAX : (window->FocusIdxTabRequestNext + (window->FocusIdxTabCounter+1)) % (window->FocusIdxTabCounter+1); + window->FocusIdxAllCounter = window->FocusIdxTabCounter = -1; + window->FocusIdxAllRequestNext = window->FocusIdxTabRequestNext = IM_INT_MAX; + + // Apply scrolling + if (window->ScrollTargetRelY < FLT_MAX) + { + float center_ratio_y = window->ScrollTargetCenterRatioY; + window->ScrollY = window->ScrollTargetRelY - ((1.0f - center_ratio_y) * window->TitleBarHeight()) - (center_ratio_y * window->SizeFull.y); + window->ScrollTargetRelY = FLT_MAX; + } + window->ScrollY = ImMax(window->ScrollY, 0.0f); + if (!window->Collapsed && !window->SkipItems) + window->ScrollY = ImMin(window->ScrollY, ImMax(0.0f, window->SizeContents.y - window->SizeFull.y)); + + // Modal window darkens what is behind them + if ((flags & ImGuiWindowFlags_Modal) != 0 && window == GetFrontMostModalRootWindow()) + { + ImRect fullscreen_rect = GetVisibleRect(); + window->DrawList->AddRectFilled(fullscreen_rect.Min, fullscreen_rect.Max, window->Color(ImGuiCol_ModalWindowDarkening, g.ModalWindowDarkeningRatio)); + } + + // Draw window + handle manual resize + ImRect title_bar_rect = window->TitleBarRect(); + const float window_rounding = (flags & ImGuiWindowFlags_ChildWindow) ? style.ChildWindowRounding : style.WindowRounding; + if (window->Collapsed) + { + // Draw title bar only + window->DrawList->AddRectFilled(title_bar_rect.GetTL(), title_bar_rect.GetBR(), window->Color(ImGuiCol_TitleBgCollapsed), window_rounding); + if (flags & ImGuiWindowFlags_ShowBorders) + { + window->DrawList->AddRect(title_bar_rect.GetTL()+ImVec2(1,1), title_bar_rect.GetBR()+ImVec2(1,1), window->Color(ImGuiCol_BorderShadow), window_rounding); + window->DrawList->AddRect(title_bar_rect.GetTL(), title_bar_rect.GetBR(), window->Color(ImGuiCol_Border), window_rounding); + } + } + else + { + ImU32 resize_col = 0; + const float resize_corner_size = ImMax(g.FontSize * 1.35f, window_rounding + 1.0f + g.FontSize * 0.2f); + if (!(flags & ImGuiWindowFlags_AlwaysAutoResize) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0 && !(flags & ImGuiWindowFlags_NoResize)) + { + // Manual resize + const ImVec2 br = window->Rect().GetBR(); + const ImRect resize_rect(br - ImVec2(resize_corner_size * 0.75f, resize_corner_size * 0.75f), br); + const ImGuiID resize_id = window->GetID("#RESIZE"); + bool hovered, held; + ButtonBehavior(resize_rect, resize_id, &hovered, &held, true, ImGuiButtonFlags_FlattenChilds); + resize_col = window->Color(held ? ImGuiCol_ResizeGripActive : hovered ? ImGuiCol_ResizeGripHovered : ImGuiCol_ResizeGrip); + + if (hovered || held) + g.MouseCursor = ImGuiMouseCursor_ResizeNWSE; + + if (g.HoveredWindow == window && held && g.IO.MouseDoubleClicked[0]) + { + // Manual auto-fit when double-clicking + window->SizeFull = size_auto_fit; + if (!(flags & ImGuiWindowFlags_NoSavedSettings)) + MarkSettingsDirty(); + SetActiveID(0); + } + else if (held) + { + window->SizeFull = ImMax(window->SizeFull + g.IO.MouseDelta, style.WindowMinSize); + if (!(flags & ImGuiWindowFlags_NoSavedSettings)) + MarkSettingsDirty(); + } + + window->Size = window->SizeFull; + title_bar_rect = window->TitleBarRect(); + } + + // Scrollbar + window->ScrollbarY = (window->SizeContents.y > window->Size.y + style.ItemSpacing.y) && !(flags & ImGuiWindowFlags_NoScrollbar); + + // Window background + if (bg_alpha > 0.0f) + { + if ((flags & ImGuiWindowFlags_ComboBox) != 0) + window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_ComboBg, bg_alpha), window_rounding); + else if ((flags & ImGuiWindowFlags_Tooltip) != 0) + window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_TooltipBg, bg_alpha), window_rounding); + else if ((flags & ImGuiWindowFlags_Popup) != 0) + window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_WindowBg, bg_alpha), window_rounding); + else if ((flags & ImGuiWindowFlags_ChildWindow) != 0) + window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size-ImVec2(window->ScrollbarWidth(),0.0f), window->Color(ImGuiCol_ChildWindowBg, bg_alpha), window_rounding, window->ScrollbarY ? (1|8) : (0xF)); + else + window->DrawList->AddRectFilled(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_WindowBg, bg_alpha), window_rounding); + } + + // Title bar + if (!(flags & ImGuiWindowFlags_NoTitleBar)) + window->DrawList->AddRectFilled(title_bar_rect.GetTL(), title_bar_rect.GetBR(), window->Color((g.FocusedWindow && window->RootNonPopupWindow == g.FocusedWindow->RootNonPopupWindow) ? ImGuiCol_TitleBgActive : ImGuiCol_TitleBg), window_rounding, 1|2); + + // Menu bar + if (flags & ImGuiWindowFlags_MenuBar) + { + ImRect menu_bar_rect = window->MenuBarRect(); + window->DrawList->AddRectFilled(menu_bar_rect.GetTL(), menu_bar_rect.GetBR(), window->Color(ImGuiCol_MenuBarBg), (flags & ImGuiWindowFlags_NoTitleBar) ? window_rounding : 0.0f, 1|2); + } + + // Borders + if (flags & ImGuiWindowFlags_ShowBorders) + { + window->DrawList->AddRect(window->Pos+ImVec2(1,1), window->Pos+window->Size+ImVec2(1,1), window->Color(ImGuiCol_BorderShadow), window_rounding); + window->DrawList->AddRect(window->Pos, window->Pos+window->Size, window->Color(ImGuiCol_Border), window_rounding); + if (!(flags & ImGuiWindowFlags_NoTitleBar)) + window->DrawList->AddLine(title_bar_rect.GetBL(), title_bar_rect.GetBR(), window->Color(ImGuiCol_Border)); + } + + // Scrollbar + if (window->ScrollbarY) + Scrollbar(window); + + // Render resize grip + // (after the input handling so we don't have a frame of latency) + if (!(flags & ImGuiWindowFlags_NoResize)) + { + const ImVec2 br = window->Rect().GetBR(); + window->DrawList->PathLineTo(br + ImVec2(-resize_corner_size, 0.0f)); + window->DrawList->PathLineTo(br + ImVec2(0.0f, -resize_corner_size)); + window->DrawList->PathArcToFast(ImVec2(br.x - window_rounding, br.y - window_rounding), window_rounding, 0, 3); + window->DrawList->PathFill(resize_col); + } + } + + // Setup drawing context + window->DC.ColumnsStartX = window->WindowPadding.x; + window->DC.ColumnsOffsetX = 0.0f; + window->DC.CursorStartPos = window->Pos + ImVec2(window->DC.ColumnsStartX + window->DC.ColumnsOffsetX, window->TitleBarHeight() + window->MenuBarHeight() + window->WindowPadding.y) - ImVec2(0.0f, window->ScrollY); + window->DC.CursorPos = window->DC.CursorStartPos; + window->DC.CursorPosPrevLine = window->DC.CursorPos; + window->DC.CursorMaxPos = window->DC.CursorStartPos; + window->DC.CurrentLineHeight = window->DC.PrevLineHeight = 0.0f; + window->DC.CurrentLineTextBaseOffset = window->DC.PrevLineTextBaseOffset = 0.0f; + window->DC.MenuBarAppending = false; + window->DC.MenuBarOffsetX = ImMax(window->DC.ColumnsStartX, style.ItemSpacing.x); + window->DC.LogLinePosY = window->DC.CursorPos.y - 9999.0f; + window->DC.ChildWindows.resize(0); + window->DC.LayoutType = ImGuiLayoutType_Vertical; + window->DC.ItemWidth = window->ItemWidthDefault; + window->DC.ItemWidthStack.resize(0); + window->DC.ButtonRepeat = false; + window->DC.ButtonRepeatStack.resize(0); + window->DC.AllowKeyboardFocus = true; + window->DC.AllowKeyboardFocusStack.resize(0); + window->DC.TextWrapPos = -1.0f; // disabled + window->DC.TextWrapPosStack.resize(0); + window->DC.ColorEditMode = ImGuiColorEditMode_UserSelect; + window->DC.ColumnsCurrent = 0; + window->DC.ColumnsCount = 1; + window->DC.ColumnsStartPos = window->DC.CursorPos; + window->DC.ColumnsCellMinY = window->DC.ColumnsCellMaxY = window->DC.ColumnsStartPos.y; + window->DC.TreeDepth = 0; + window->DC.StateStorage = &window->StateStorage; + window->DC.GroupStack.resize(0); + window->MenuColumns.Update(3, style.ItemSpacing.x, !window_was_visible); + + if (window->AutoFitFramesX > 0) + window->AutoFitFramesX--; + if (window->AutoFitFramesY > 0) + window->AutoFitFramesY--; + + // Title bar + if (!(flags & ImGuiWindowFlags_NoTitleBar)) + { + if (p_opened != NULL) + CloseWindowButton(p_opened); + + const ImVec2 text_size = CalcTextSize(name, NULL, true); + if (!(flags & ImGuiWindowFlags_NoCollapse)) + RenderCollapseTriangle(window->Pos + style.FramePadding, !window->Collapsed, 1.0f, true); + + ImVec2 text_min = window->Pos + style.FramePadding; + ImVec2 text_max = window->Pos + ImVec2(window->Size.x - style.FramePadding.x, style.FramePadding.y*2 + text_size.y); + ImVec2 clip_max = ImVec2(window->Pos.x + window->Size.x - (p_opened ? title_bar_rect.GetHeight() - 3 : style.FramePadding.x), text_max.y); // Match the size of CloseWindowButton() + bool pad_left = (flags & ImGuiWindowFlags_NoCollapse) == 0; + bool pad_right = (p_opened != NULL); + if (style.WindowTitleAlign & ImGuiAlign_Center) pad_right = pad_left; + if (pad_left) text_min.x += g.FontSize + style.ItemInnerSpacing.x; + if (pad_right) text_max.x -= g.FontSize + style.ItemInnerSpacing.x; + RenderTextClipped(text_min, text_max, name, NULL, &text_size, style.WindowTitleAlign, NULL, &clip_max); + } + + // Save clipped aabb so we can access it in constant-time in FindHoveredWindow() + window->ClippedWindowRect = window->Rect(); + window->ClippedWindowRect.Clip(window->ClipRect); + + // Pressing CTRL+C while holding on a window copy its content to the clipboard + // This works but 1. doesn't handle multiple Begin/End pairs, 2. recursing into another Begin/End pair - so we need to work that out and add better logging scope. + // Maybe we can support CTRL+C on every element? + /* + if (g.ActiveId == move_id) + if (g.IO.KeyCtrl && IsKeyPressedMap(ImGuiKey_C)) + ImGui::LogToClipboard(); + */ + } + window->BeginCount++; + + // Inner clipping rectangle + // We set this up after processing the resize grip so that our clip rectangle doesn't lag by a frame + // Note that if our window is collapsed we will end up with a null clipping rectangle which is the correct behavior. + const ImRect title_bar_rect = window->TitleBarRect(); + ImVec4 clip_rect(title_bar_rect.Min.x+0.5f+window->WindowPadding.x*0.5f, title_bar_rect.Max.y+window->MenuBarHeight()+0.5f, window->Rect().Max.x+0.5f-window->WindowPadding.x*0.5f, window->Rect().Max.y-1.5f); + if (window->ScrollbarY) + clip_rect.z -= style.ScrollbarWidth; + PushClipRect(clip_rect); + + // Clear 'accessed' flag last thing + if (first_begin_of_the_frame) + window->Accessed = false; + + // Child window can be out of sight and have "negative" clip windows. + // Mark them as collapsed so commands are skipped earlier (we can't manually collapse because they have no title bar). + if (flags & ImGuiWindowFlags_ChildWindow) + { + IM_ASSERT((flags & ImGuiWindowFlags_NoTitleBar) != 0); + window->Collapsed = parent_window && parent_window->Collapsed; + + if (!(flags & ImGuiWindowFlags_AlwaysAutoResize) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0) + window->Collapsed |= (window->ClipRect.Min.x >= window->ClipRect.Max.x || window->ClipRect.Min.y >= window->ClipRect.Max.y); + + // We also hide the window from rendering because we've already added its border to the command list. + // (we could perform the check earlier in the function but it is simpler at this point) + if (window->Collapsed) + window->Active = false; + } + if (style.Alpha <= 0.0f) + window->Active = false; + + // Return false if we don't intend to display anything to allow user to perform an early out optimization + window->SkipItems = (window->Collapsed || !window->Active) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0; + return !window->SkipItems; +} + +void ImGui::End() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + + ImGui::Columns(1, "#CloseColumns"); + PopClipRect(); // inner window clip rectangle + + // Stop logging + if (!(window->Flags & ImGuiWindowFlags_ChildWindow)) // FIXME: add more options for scope of logging + ImGui::LogFinish(); + + // Pop + // NB: we don't clear 'window->RootWindow'. The pointer is allowed to live until the next call to Begin(). + g.CurrentWindowStack.pop_back(); + if (window->Flags & ImGuiWindowFlags_Popup) + g.CurrentPopupStack.pop_back(); + CheckStacksSize(window, false); + SetCurrentWindow(g.CurrentWindowStack.empty() ? NULL : g.CurrentWindowStack.back()); +} + +// Vertical scrollbar +// The entire piece of code below is rather confusing because: +// - We handle absolute seeking (when first clicking outside the grab) and relative manipulation (afterward or when clicking inside the grab) +// - We store values as ratio and in a form that allows the window content to change while we are holding on a scrollbar +static void Scrollbar(ImGuiWindow* window) +{ + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID("#SCROLLY"); + + // Render background + ImRect bb(window->Rect().Max.x - style.ScrollbarWidth, window->Pos.y + window->TitleBarHeight()+1, window->Rect().Max.x, window->Rect().Max.y-1); + window->DrawList->AddRectFilled(bb.Min, bb.Max, window->Color(ImGuiCol_ScrollbarBg)); + bb.Expand(-3.0f); + const float scrollbar_height = bb.GetHeight(); + + // The grabable box size generally represent the amount visible (vs the total scrollable amount) + // But we maintain a minimum size in pixel to allow for the user to still aim inside. + const float grab_h_pixels = ImMin(ImMax(scrollbar_height * ImSaturate(window->Size.y / ImMax(window->SizeContents.y, window->Size.y)), style.GrabMinSize), scrollbar_height); + const float grab_h_norm = grab_h_pixels / scrollbar_height; + + // Handle input right away. None of the code of Begin() is relying on scrolling position before calling Scrollbar(). + bool held = false; + bool hovered = false; + const bool previously_held = (g.ActiveId == id); + ImGui::ButtonBehavior(bb, id, &hovered, &held, true); + + const float scroll_max = ImMax(1.0f, window->SizeContents.y - window->Size.y); + float scroll_ratio = ImSaturate(window->ScrollY / scroll_max); + float grab_y_norm = scroll_ratio * (scrollbar_height - grab_h_pixels) / scrollbar_height; + if (held) + { + const float clicked_y_norm = ImSaturate((g.IO.MousePos.y - bb.Min.y) / scrollbar_height); // Click position in scrollbar space (0.0f->1.0f) + g.HoveredId = id; + + bool seek_absolute = false; + if (!previously_held) + { + // On initial click calculate the distance between mouse and the center of the grab + if (clicked_y_norm >= grab_y_norm && clicked_y_norm <= grab_y_norm + grab_h_norm) + { + g.ScrollbarClickDeltaToGrabCenter = clicked_y_norm - grab_y_norm - grab_h_norm*0.5f; + } + else + { + seek_absolute = true; + g.ScrollbarClickDeltaToGrabCenter = 0; + } + } + + // Apply scroll + // It is ok to modify ScrollY here because we are being called in Begin() after the calculation of SizeContents and before setting up our starting position + const float scroll_y_norm = ImSaturate((clicked_y_norm - g.ScrollbarClickDeltaToGrabCenter - grab_h_norm*0.5f) / (1.0f - grab_h_norm)); + window->ScrollY = (float)(int)(0.5f + scroll_y_norm * (window->SizeContents.y - window->Size.y)); + + // Update values for rendering + scroll_ratio = ImSaturate(window->ScrollY / scroll_max); + grab_y_norm = scroll_ratio * (scrollbar_height - grab_h_pixels) / scrollbar_height; + + // Update distance to grab now that we have seeked and saturated + if (seek_absolute) + g.ScrollbarClickDeltaToGrabCenter = clicked_y_norm - grab_y_norm - grab_h_norm*0.5f; + } + + // Render + const ImU32 grab_col = window->Color(held ? ImGuiCol_ScrollbarGrabActive : hovered ? ImGuiCol_ScrollbarGrabHovered : ImGuiCol_ScrollbarGrab); + window->DrawList->AddRectFilled(ImVec2(bb.Min.x, ImLerp(bb.Min.y, bb.Max.y, grab_y_norm)), ImVec2(bb.Max.x, ImLerp(bb.Min.y, bb.Max.y, grab_y_norm) + grab_h_pixels), grab_col, style.ScrollbarRounding); +} + +// Moving window to front of display (which happens to be back of our sorted list) +void ImGui::FocusWindow(ImGuiWindow* window) +{ + ImGuiState& g = *GImGui; + + // Always mark the window we passed as focused. This is used for keyboard interactions such as tabbing. + g.FocusedWindow = window; + + // Passing NULL allow to disable keyboard focus + if (!window) + return; + + // And move its root window to the top of the pile + if (window->RootWindow) + window = window->RootWindow; + + // Steal focus on active widgets + if (window->Flags & ImGuiWindowFlags_Popup) // FIXME: This statement should be unnecessary. Need further testing before removing it.. + if (g.ActiveId != 0 && g.ActiveIdWindow && g.ActiveIdWindow->RootWindow != window) + ImGui::SetActiveID(0); + + if (g.Windows.back() == window) + return; + + for (int i = 0; i < g.Windows.Size; i++) + if (g.Windows[i] == window) + { + g.Windows.erase(g.Windows.begin() + i); + break; + } + g.Windows.push_back(window); +} + +void ImGui::PushItemWidth(float item_width) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ItemWidth = (item_width == 0.0f ? window->ItemWidthDefault : item_width); + window->DC.ItemWidthStack.push_back(window->DC.ItemWidth); +} + +static void PushMultiItemsWidths(int components, float w_full) +{ + ImGuiWindow* window = ImGui::GetCurrentWindow(); + const ImGuiStyle& style = GImGui->Style; + if (w_full <= 0.0f) + w_full = ImGui::CalcItemWidth(); + const float w_item_one = ImMax(1.0f, (float)(int)((w_full - (style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1)) / (float)components)); + const float w_item_last = ImMax(1.0f, (float)(int)(w_full - (w_item_one + style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1))); + window->DC.ItemWidthStack.push_back(w_item_last); + for (int i = 0; i < components-1; i++) + window->DC.ItemWidthStack.push_back(w_item_one); + window->DC.ItemWidth = window->DC.ItemWidthStack.back(); +} + +void ImGui::PopItemWidth() +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ItemWidthStack.pop_back(); + window->DC.ItemWidth = window->DC.ItemWidthStack.empty() ? window->ItemWidthDefault : window->DC.ItemWidthStack.back(); +} + +float ImGui::CalcItemWidth() +{ + ImGuiWindow* window = GetCurrentWindow(); + float w = window->DC.ItemWidth; + if (w < 0.0f) + { + // Align to a right-side limit. We include 1 frame padding in the calculation because this is how the width is always used (we add 2 frame padding to it), but we could move that responsibility to the widget as well. + ImGuiState& g = *GImGui; + float width_to_right_edge = ImGui::GetContentRegionAvail().x; + w = ImMax(1.0f, width_to_right_edge + w - g.Style.FramePadding.x * 2.0f); + } + w = (float)(int)w; + return w; +} + +static void SetCurrentFont(ImFont* font) +{ + ImGuiState& g = *GImGui; + IM_ASSERT(font && font->IsLoaded()); + IM_ASSERT(font->Scale > 0.0f); + g.Font = font; + g.FontBaseSize = g.IO.FontGlobalScale * g.Font->FontSize * g.Font->Scale; + g.FontSize = g.CurrentWindow ? g.CurrentWindow->CalcFontSize() : 0.0f; + g.FontTexUvWhitePixel = g.Font->ContainerAtlas->TexUvWhitePixel; +} + +void ImGui::PushFont(ImFont* font) +{ + ImGuiState& g = *GImGui; + if (!font) + font = g.IO.Fonts->Fonts[0]; + SetCurrentFont(font); + g.FontStack.push_back(font); + g.CurrentWindow->DrawList->PushTextureID(font->ContainerAtlas->TexID); +} + +void ImGui::PopFont() +{ + ImGuiState& g = *GImGui; + g.CurrentWindow->DrawList->PopTextureID(); + g.FontStack.pop_back(); + SetCurrentFont(g.FontStack.empty() ? g.IO.Fonts->Fonts[0] : g.FontStack.back()); +} + +void ImGui::PushAllowKeyboardFocus(bool allow_keyboard_focus) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.AllowKeyboardFocus = allow_keyboard_focus; + window->DC.AllowKeyboardFocusStack.push_back(allow_keyboard_focus); +} + +void ImGui::PopAllowKeyboardFocus() +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.AllowKeyboardFocusStack.pop_back(); + window->DC.AllowKeyboardFocus = window->DC.AllowKeyboardFocusStack.empty() ? true : window->DC.AllowKeyboardFocusStack.back(); +} + +void ImGui::PushButtonRepeat(bool repeat) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ButtonRepeat = repeat; + window->DC.ButtonRepeatStack.push_back(repeat); +} + +void ImGui::PopButtonRepeat() +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ButtonRepeatStack.pop_back(); + window->DC.ButtonRepeat = window->DC.ButtonRepeatStack.empty() ? false : window->DC.ButtonRepeatStack.back(); +} + +void ImGui::PushTextWrapPos(float wrap_pos_x) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.TextWrapPos = wrap_pos_x; + window->DC.TextWrapPosStack.push_back(wrap_pos_x); +} + +void ImGui::PopTextWrapPos() +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.TextWrapPosStack.pop_back(); + window->DC.TextWrapPos = window->DC.TextWrapPosStack.empty() ? -1.0f : window->DC.TextWrapPosStack.back(); +} + +void ImGui::PushStyleColor(ImGuiCol idx, const ImVec4& col) +{ + ImGuiState& g = *GImGui; + ImGuiColMod backup; + backup.Col = idx; + backup.PreviousValue = g.Style.Colors[idx]; + g.ColorModifiers.push_back(backup); + g.Style.Colors[idx] = col; +} + +void ImGui::PopStyleColor(int count) +{ + ImGuiState& g = *GImGui; + while (count > 0) + { + ImGuiColMod& backup = g.ColorModifiers.back(); + g.Style.Colors[backup.Col] = backup.PreviousValue; + g.ColorModifiers.pop_back(); + count--; + } +} + +static float* GetStyleVarFloatAddr(ImGuiStyleVar idx) +{ + ImGuiState& g = *GImGui; + switch (idx) + { + case ImGuiStyleVar_Alpha: return &g.Style.Alpha; + case ImGuiStyleVar_WindowRounding: return &g.Style.WindowRounding; + case ImGuiStyleVar_ChildWindowRounding: return &g.Style.ChildWindowRounding; + case ImGuiStyleVar_FrameRounding: return &g.Style.FrameRounding; + case ImGuiStyleVar_IndentSpacing: return &g.Style.IndentSpacing; + case ImGuiStyleVar_GrabMinSize: return &g.Style.GrabMinSize; + } + return NULL; +} + +static ImVec2* GetStyleVarVec2Addr(ImGuiStyleVar idx) +{ + ImGuiState& g = *GImGui; + switch (idx) + { + case ImGuiStyleVar_WindowPadding: return &g.Style.WindowPadding; + case ImGuiStyleVar_WindowMinSize: return &g.Style.WindowMinSize; + case ImGuiStyleVar_FramePadding: return &g.Style.FramePadding; + case ImGuiStyleVar_ItemSpacing: return &g.Style.ItemSpacing; + case ImGuiStyleVar_ItemInnerSpacing: return &g.Style.ItemInnerSpacing; + } + return NULL; +} + +void ImGui::PushStyleVar(ImGuiStyleVar idx, float val) +{ + ImGuiState& g = *GImGui; + float* pvar = GetStyleVarFloatAddr(idx); + IM_ASSERT(pvar != NULL); // Called function with wrong-type? Variable is not a float. + ImGuiStyleMod backup; + backup.Var = idx; + backup.PreviousValue = ImVec2(*pvar, 0.0f); + g.StyleModifiers.push_back(backup); + *pvar = val; +} + + +void ImGui::PushStyleVar(ImGuiStyleVar idx, const ImVec2& val) +{ + ImGuiState& g = *GImGui; + ImVec2* pvar = GetStyleVarVec2Addr(idx); + IM_ASSERT(pvar != NULL); // Called function with wrong-type? Variable is not a ImVec2. + ImGuiStyleMod backup; + backup.Var = idx; + backup.PreviousValue = *pvar; + g.StyleModifiers.push_back(backup); + *pvar = val; +} + +void ImGui::PopStyleVar(int count) +{ + ImGuiState& g = *GImGui; + while (count > 0) + { + ImGuiStyleMod& backup = g.StyleModifiers.back(); + if (float* pvar_f = GetStyleVarFloatAddr(backup.Var)) + *pvar_f = backup.PreviousValue.x; + else if (ImVec2* pvar_v = GetStyleVarVec2Addr(backup.Var)) + *pvar_v = backup.PreviousValue; + g.StyleModifiers.pop_back(); + count--; + } +} + +const char* ImGui::GetStyleColName(ImGuiCol idx) +{ + // Create switch-case from enum with regexp: ImGuiCol_{.*}, --> case ImGuiCol_\1: return "\1"; + switch (idx) + { + case ImGuiCol_Text: return "Text"; + case ImGuiCol_TextDisabled: return "TextDisabled"; + case ImGuiCol_WindowBg: return "WindowBg"; + case ImGuiCol_ChildWindowBg: return "ChildWindowBg"; + case ImGuiCol_Border: return "Border"; + case ImGuiCol_BorderShadow: return "BorderShadow"; + case ImGuiCol_FrameBg: return "FrameBg"; + case ImGuiCol_FrameBgHovered: return "FrameBgHovered"; + case ImGuiCol_FrameBgActive: return "FrameBgActive"; + case ImGuiCol_TitleBg: return "TitleBg"; + case ImGuiCol_TitleBgCollapsed: return "TitleBgCollapsed"; + case ImGuiCol_TitleBgActive: return "TitleBgActive"; + case ImGuiCol_MenuBarBg: return "MenuBarBg"; + case ImGuiCol_ScrollbarBg: return "ScrollbarBg"; + case ImGuiCol_ScrollbarGrab: return "ScrollbarGrab"; + case ImGuiCol_ScrollbarGrabHovered: return "ScrollbarGrabHovered"; + case ImGuiCol_ScrollbarGrabActive: return "ScrollbarGrabActive"; + case ImGuiCol_ComboBg: return "ComboBg"; + case ImGuiCol_CheckMark: return "CheckMark"; + case ImGuiCol_SliderGrab: return "SliderGrab"; + case ImGuiCol_SliderGrabActive: return "SliderGrabActive"; + case ImGuiCol_Button: return "Button"; + case ImGuiCol_ButtonHovered: return "ButtonHovered"; + case ImGuiCol_ButtonActive: return "ButtonActive"; + case ImGuiCol_Header: return "Header"; + case ImGuiCol_HeaderHovered: return "HeaderHovered"; + case ImGuiCol_HeaderActive: return "HeaderActive"; + case ImGuiCol_Column: return "Column"; + case ImGuiCol_ColumnHovered: return "ColumnHovered"; + case ImGuiCol_ColumnActive: return "ColumnActive"; + case ImGuiCol_ResizeGrip: return "ResizeGrip"; + case ImGuiCol_ResizeGripHovered: return "ResizeGripHovered"; + case ImGuiCol_ResizeGripActive: return "ResizeGripActive"; + case ImGuiCol_CloseButton: return "CloseButton"; + case ImGuiCol_CloseButtonHovered: return "CloseButtonHovered"; + case ImGuiCol_CloseButtonActive: return "CloseButtonActive"; + case ImGuiCol_PlotLines: return "PlotLines"; + case ImGuiCol_PlotLinesHovered: return "PlotLinesHovered"; + case ImGuiCol_PlotHistogram: return "PlotHistogram"; + case ImGuiCol_PlotHistogramHovered: return "PlotHistogramHovered"; + case ImGuiCol_TextSelectedBg: return "TextSelectedBg"; + case ImGuiCol_TooltipBg: return "TooltipBg"; + case ImGuiCol_ModalWindowDarkening: return "ModalWindowDarkening"; + } + IM_ASSERT(0); + return "Unknown"; +} + +bool ImGui::IsWindowHovered() +{ + ImGuiState& g = *GImGui; + return g.HoveredWindow == g.CurrentWindow; +} + +bool ImGui::IsWindowFocused() +{ + ImGuiState& g = *GImGui; + return g.FocusedWindow == g.CurrentWindow; +} + +bool ImGui::IsRootWindowFocused() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* root_window = g.CurrentWindow->RootWindow; + return g.FocusedWindow == root_window; +} + +bool ImGui::IsRootWindowOrAnyChildFocused() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* root_window = g.CurrentWindow->RootWindow; + return g.FocusedWindow && g.FocusedWindow->RootWindow == root_window; +} + +float ImGui::GetWindowWidth() +{ + ImGuiWindow* window = GImGui->CurrentWindow; + return window->Size.x; +} + +ImVec2 ImGui::GetWindowPos() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = g.CurrentWindow; + return window->Pos; +} + +static void SetWindowScrollY(ImGuiWindow* window, float new_scroll_y) +{ + window->DC.CursorMaxPos.y += window->ScrollY; + window->ScrollY = new_scroll_y; + window->DC.CursorMaxPos.y -= window->ScrollY; +} + +static void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiSetCond cond) +{ + // Test condition (NB: bit 0 is always true) and clear flags for next time + if (cond && (window->SetWindowPosAllowFlags & cond) == 0) + return; + window->SetWindowPosAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); + window->SetWindowPosCenterWanted = false; + + // Set + const ImVec2 old_pos = window->Pos; + window->PosFloat = pos; + window->Pos = ImVec2((float)(int)window->PosFloat.x, (float)(int)window->PosFloat.y); + window->DC.CursorPos += (window->Pos - old_pos); // As we happen to move the window while it is being appended to (which is a bad idea - will smear) let's at least offset the cursor + window->DC.CursorMaxPos += (window->Pos - old_pos); // And more importantly we need to adjust this so size calculation doesn't get affected. +} + +void ImGui::SetWindowPos(const ImVec2& pos, ImGuiSetCond cond) +{ + ImGuiWindow* window = GetCurrentWindow(); + SetWindowPos(window, pos, cond); +} + +void ImGui::SetWindowPos(const char* name, const ImVec2& pos, ImGuiSetCond cond) +{ + ImGuiWindow* window = FindWindowByName(name); + if (window) + SetWindowPos(window, pos, cond); +} + +ImVec2 ImGui::GetWindowSize() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->Size; +} + +static void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiSetCond cond) +{ + // Test condition (NB: bit 0 is always true) and clear flags for next time + if (cond && (window->SetWindowSizeAllowFlags & cond) == 0) + return; + window->SetWindowSizeAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); + + // Set + if (size.x > 0.0f) + { + window->AutoFitFramesX = 0; + window->SizeFull.x = size.x; + } + else + { + window->AutoFitFramesX = 2; + window->AutoFitOnlyGrows = false; + } + if (size.y > 0.0f) + { + window->AutoFitFramesY = 0; + window->SizeFull.y = size.y; + } + else + { + window->AutoFitFramesY = 2; + window->AutoFitOnlyGrows = false; + } +} + +void ImGui::SetWindowSize(const ImVec2& size, ImGuiSetCond cond) +{ + ImGuiWindow* window = GetCurrentWindow(); + SetWindowSize(window, size, cond); +} + +void ImGui::SetWindowSize(const char* name, const ImVec2& size, ImGuiSetCond cond) +{ + ImGuiWindow* window = FindWindowByName(name); + if (window) + SetWindowSize(window, size, cond); +} + +static void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiSetCond cond) +{ + // Test condition (NB: bit 0 is always true) and clear flags for next time + if (cond && (window->SetWindowCollapsedAllowFlags & cond) == 0) + return; + window->SetWindowCollapsedAllowFlags &= ~(ImGuiSetCond_Once | ImGuiSetCond_FirstUseEver | ImGuiSetCond_Appearing); + + // Set + window->Collapsed = collapsed; +} + +void ImGui::SetWindowCollapsed(bool collapsed, ImGuiSetCond cond) +{ + ImGuiWindow* window = GetCurrentWindow(); + SetWindowCollapsed(window, collapsed, cond); +} + +bool ImGui::IsWindowCollapsed() +{ + return GImGui->CurrentWindow->Collapsed; +} + +void ImGui::SetWindowCollapsed(const char* name, bool collapsed, ImGuiSetCond cond) +{ + ImGuiWindow* window = FindWindowByName(name); + if (window) + SetWindowCollapsed(window, collapsed, cond); +} + +void ImGui::SetWindowFocus() +{ + ImGuiWindow* window = GetCurrentWindow(); + FocusWindow(window); +} + +void ImGui::SetWindowFocus(const char* name) +{ + if (name) + { + ImGuiWindow* window = FindWindowByName(name); + if (window) + FocusWindow(window); + } + else + { + FocusWindow(NULL); + } +} + +void ImGui::SetNextWindowPos(const ImVec2& pos, ImGuiSetCond cond) +{ + ImGuiState& g = *GImGui; + g.SetNextWindowPosVal = pos; + g.SetNextWindowPosCond = cond ? cond : ImGuiSetCond_Always; +} + +void ImGui::SetNextWindowPosCenter(ImGuiSetCond cond) +{ + ImGuiState& g = *GImGui; + g.SetNextWindowPosVal = ImVec2(-FLT_MAX, -FLT_MAX); + g.SetNextWindowPosCond = cond ? cond : ImGuiSetCond_Always; +} + +void ImGui::SetNextWindowSize(const ImVec2& size, ImGuiSetCond cond) +{ + ImGuiState& g = *GImGui; + g.SetNextWindowSizeVal = size; + g.SetNextWindowSizeCond = cond ? cond : ImGuiSetCond_Always; +} + +void ImGui::SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond) +{ + ImGuiState& g = *GImGui; + g.SetNextWindowCollapsedVal = collapsed; + g.SetNextWindowCollapsedCond = cond ? cond : ImGuiSetCond_Always; +} + +void ImGui::SetNextWindowFocus() +{ + ImGuiState& g = *GImGui; + g.SetNextWindowFocus = true; +} + +// In window space (not screen space!) +ImVec2 ImGui::GetContentRegionMax() +{ + ImGuiWindow* window = GetCurrentWindow(); + ImVec2 mx = window->Size - window->WindowPadding; + if (window->DC.ColumnsCount != 1) + mx.x = ImGui::GetColumnOffset(window->DC.ColumnsCurrent + 1) - window->WindowPadding.x; + else + mx.x -= window->ScrollbarWidth(); + return mx; +} + +ImVec2 ImGui::GetContentRegionAvail() +{ + ImGuiWindow* window = GetCurrentWindow(); + return GetContentRegionMax() - (window->DC.CursorPos - window->Pos); +} + +// In window space (not screen space!) +ImVec2 ImGui::GetWindowContentRegionMin() +{ + ImGuiWindow* window = GetCurrentWindow(); + return ImVec2(0, window->TitleBarHeight() + window->MenuBarHeight()) + window->WindowPadding; +} + +ImVec2 ImGui::GetWindowContentRegionMax() +{ + ImGuiWindow* window = GetCurrentWindow(); + ImVec2 m = window->Size - window->WindowPadding; + m.x -= window->ScrollbarWidth(); + return m; +} + +float ImGui::GetTextLineHeight() +{ + ImGuiState& g = *GImGui; + return g.FontSize; +} + +float ImGui::GetTextLineHeightWithSpacing() +{ + ImGuiState& g = *GImGui; + return g.FontSize + g.Style.ItemSpacing.y; +} + +float ImGui::GetItemsLineHeightWithSpacing() +{ + ImGuiState& g = *GImGui; + return g.FontSize + g.Style.FramePadding.y * 2.0f + g.Style.ItemSpacing.y; +} + +ImDrawList* ImGui::GetWindowDrawList() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DrawList; +} + +ImFont* ImGui::GetWindowFont() +{ + ImGuiState& g = *GImGui; + return g.Font; +} + +float ImGui::GetWindowFontSize() +{ + ImGuiState& g = *GImGui; + return g.FontSize; +} + +void ImGui::SetWindowFontScale(float scale) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + window->FontWindowScale = scale; + g.FontSize = window->CalcFontSize(); +} + +// User generally sees positions in window coordinates. Internally we store CursorPos in absolute screen coordinates because it is more convenient. +// Conversion happens as we pass the value to user, but it makes our naming convention confusing because GetCursorPos() == (DC.CursorPos - window.Pos). May want to rename 'DC.CursorPos'. +ImVec2 ImGui::GetCursorPos() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.CursorPos - window->Pos; +} + +float ImGui::GetCursorPosX() +{ + return ImGui::GetCursorPos().x; +} + +float ImGui::GetCursorPosY() +{ + return ImGui::GetCursorPos().y; +} + +void ImGui::SetCursorPos(const ImVec2& pos) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.CursorPos = window->Pos + pos; + window->DC.CursorMaxPos = ImMax(window->DC.CursorMaxPos, window->DC.CursorPos); +} + +void ImGui::SetCursorPosX(float x) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.CursorPos.x = window->Pos.x + x; + window->DC.CursorMaxPos.x = ImMax(window->DC.CursorMaxPos.x, window->DC.CursorPos.x); +} + +void ImGui::SetCursorPosY(float y) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.CursorPos.y = window->Pos.y + y; + window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, window->DC.CursorPos.y); +} + +ImVec2 ImGui::GetCursorStartPos() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.CursorStartPos - window->Pos; +} + +ImVec2 ImGui::GetCursorScreenPos() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.CursorPos; +} + +void ImGui::SetCursorScreenPos(const ImVec2& screen_pos) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.CursorPos = screen_pos; +} + +float ImGui::GetScrollY() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->ScrollY; +} + +float ImGui::GetScrollMaxY() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->SizeContents.y - window->SizeFull.y; +} + +void ImGui::SetScrollY(float scroll_y) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->ScrollTargetRelY = scroll_y + window->TitleBarHeight(); // title bar height cancelled out when using ScrollTargetRelY + window->ScrollTargetCenterRatioY = 0.0f; +} + +void ImGui::SetScrollFromPosY(float pos_y, float center_y_ratio) +{ + // We store a target position so centering can occur on the next frame when we are guaranteed to have a known window size + ImGuiWindow* window = GetCurrentWindow(); + IM_ASSERT(center_y_ratio >= 0.0f && center_y_ratio <= 1.0f); + window->ScrollTargetRelY = (float)(int)(pos_y + window->ScrollY); + if (center_y_ratio <= 0.0f && window->ScrollTargetRelY <= window->WindowPadding.y) // Minor hack to make "scroll to top" take account of WindowPadding, else it would scroll to (WindowPadding.y - ItemSpacing.y) + window->ScrollTargetRelY = 0.0f; + window->ScrollTargetCenterRatioY = center_y_ratio; +} + +void ImGui::SetScrollHere(float center_y_ratio) +{ + ImGuiWindow* window = GetCurrentWindow(); + float target_y = window->DC.CursorPosPrevLine.y + (window->DC.PrevLineHeight * center_y_ratio) + (GImGui->Style.ItemSpacing.y * (center_y_ratio - 0.5f) * 2.0f); // Precisely aim above, in the middle or below the last line. + ImGui::SetScrollFromPosY(target_y - window->Pos.y, center_y_ratio); +} + +void ImGui::SetKeyboardFocusHere(int offset) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->FocusIdxAllRequestNext = window->FocusIdxAllCounter + 1 + offset; + window->FocusIdxTabRequestNext = IM_INT_MAX; +} + +void ImGui::SetStateStorage(ImGuiStorage* tree) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.StateStorage = tree ? tree : &window->StateStorage; +} + +ImGuiStorage* ImGui::GetStateStorage() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.StateStorage; +} + +void ImGui::TextV(const char* fmt, va_list args) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + const char* text_end = g.TempBuffer + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); + TextUnformatted(g.TempBuffer, text_end); +} + +void ImGui::Text(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + TextV(fmt, args); + va_end(args); +} + +void ImGui::TextColoredV(const ImVec4& col, const char* fmt, va_list args) +{ + ImGui::PushStyleColor(ImGuiCol_Text, col); + TextV(fmt, args); + ImGui::PopStyleColor(); +} + +void ImGui::TextColored(const ImVec4& col, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + TextColoredV(col, fmt, args); + va_end(args); +} + +void ImGui::TextDisabledV(const char* fmt, va_list args) +{ + ImGui::PushStyleColor(ImGuiCol_Text, GImGui->Style.Colors[ImGuiCol_TextDisabled]); + TextV(fmt, args); + ImGui::PopStyleColor(); +} + +void ImGui::TextDisabled(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + TextDisabledV(fmt, args); + va_end(args); +} + +void ImGui::TextWrappedV(const char* fmt, va_list args) +{ + ImGui::PushTextWrapPos(0.0f); + TextV(fmt, args); + ImGui::PopTextWrapPos(); +} + +void ImGui::TextWrapped(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + TextWrappedV(fmt, args); + va_end(args); +} + +void ImGui::TextUnformatted(const char* text, const char* text_end) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + IM_ASSERT(text != NULL); + const char* text_begin = text; + if (text_end == NULL) + text_end = text + strlen(text); // FIXME-OPT + + const float wrap_pos_x = window->DC.TextWrapPos; + const bool wrap_enabled = wrap_pos_x >= 0.0f; + if (text_end - text > 2000 && !wrap_enabled) + { + // Long text! + // Perform manual coarse clipping to optimize for long multi-line text + // From this point we will only compute the width of lines that are visible. Optimization only available when word-wrapping is disabled. + // We also don't vertically center the text within the line full height, which is unlikely to matter because we are likely the biggest and only item on the line. + const char* line = text; + const float line_height = ImGui::GetTextLineHeight(); + const ImVec2 text_pos = window->DC.CursorPos + ImVec2(0.0f, window->DC.CurrentLineTextBaseOffset); + const ImRect clip_rect = window->ClipRect; + ImVec2 text_size(0,0); + + if (text_pos.y <= clip_rect.Max.y) + { + ImVec2 pos = text_pos; + + // Lines to skip (can't skip when logging text) + if (!g.LogEnabled) + { + int lines_skippable = (int)((clip_rect.Min.y - text_pos.y) / line_height); + if (lines_skippable > 0) + { + int lines_skipped = 0; + while (line < text_end && lines_skipped < lines_skippable) + { + const char* line_end = strchr(line, '\n'); + line = line_end + 1; + lines_skipped++; + } + pos.y += lines_skipped * line_height; + } + } + + // Lines to render + if (line < text_end) + { + ImRect line_rect(pos, pos + ImVec2(ImGui::GetWindowWidth(), line_height)); + while (line < text_end) + { + const char* line_end = strchr(line, '\n'); + if (IsClippedEx(line_rect, NULL, false)) + break; + + const ImVec2 line_size = CalcTextSize(line, line_end, false); + text_size.x = ImMax(text_size.x, line_size.x); + RenderText(pos, line, line_end, false); + if (!line_end) + line_end = text_end; + line = line_end + 1; + line_rect.Min.y += line_height; + line_rect.Max.y += line_height; + pos.y += line_height; + } + + // Count remaining lines + int lines_skipped = 0; + while (line < text_end) + { + const char* line_end = strchr(line, '\n'); + if (!line_end) + line_end = text_end; + line = line_end + 1; + lines_skipped++; + } + pos.y += lines_skipped * line_height; + } + + text_size.y += (pos - text_pos).y; + } + + ImRect bb(text_pos, text_pos + text_size); + ItemSize(bb); + ItemAdd(bb, NULL); + } + else + { + const float wrap_width = wrap_enabled ? CalcWrapWidthForPos(window->DC.CursorPos, wrap_pos_x) : 0.0f; + const ImVec2 text_size = CalcTextSize(text_begin, text_end, false, wrap_width); + + // Account of baseline offset + ImVec2 text_pos = window->DC.CursorPos; + text_pos.y += window->DC.CurrentLineTextBaseOffset; + + ImRect bb(text_pos, text_pos + text_size); + ItemSize(bb.GetSize()); + if (!ItemAdd(bb, NULL)) + return; + + // Render (we don't hide text after ## in this end-user function) + RenderTextWrapped(bb.Min, text_begin, text_end, wrap_width); + } +} + +void ImGui::AlignFirstTextHeightToWidgets() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + // Declare a dummy item size to that upcoming items that are smaller will center-align on the newly expanded line height. + ImGuiState& g = *GImGui; + ItemSize(ImVec2(0, g.FontSize + g.Style.FramePadding.y*2), g.Style.FramePadding.y); + ImGui::SameLine(0, 0); +} + +// Add a label+text combo aligned to other label+value widgets +void ImGui::LabelTextV(const char* label, const char* fmt, va_list args) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const float w = ImGui::CalcItemWidth(); + + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImRect value_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w + style.FramePadding.x*2, label_size.y + style.FramePadding.y*2)); + const ImRect total_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w + style.FramePadding.x*2 + (label_size.x > 0.0f ? style.ItemInnerSpacing.x : 0.0f), style.FramePadding.y*2) + label_size); + ItemSize(total_bb, style.FramePadding.y); + if (!ItemAdd(total_bb, NULL)) + return; + + // Render + const char* value_text_begin = &g.TempBuffer[0]; + const char* value_text_end = value_text_begin + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); + RenderTextClipped(value_bb.Min, value_bb.Max, value_text_begin, value_text_end, NULL, ImGuiAlign_VCenter); + RenderText(ImVec2(value_bb.Max.x + style.ItemInnerSpacing.x, value_bb.Min.y + style.FramePadding.y), label); +} + +void ImGui::LabelText(const char* label, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + LabelTextV(label, fmt, args); + va_end(args); +} + +static inline bool IsWindowContentHoverable(ImGuiWindow* window) +{ + // An active popup disable hovering on other windows (apart from its own children) + ImGuiState& g = *GImGui; + if (ImGuiWindow* focused_window = g.FocusedWindow) + if (ImGuiWindow* focused_root_window = focused_window->RootWindow) + if ((focused_root_window->Flags & ImGuiWindowFlags_Popup) != 0 && focused_root_window->WasActive && focused_root_window != window->RootWindow) + return false; + + return true; +} + +bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, bool allow_key_modifiers, ImGuiButtonFlags flags) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + if (flags & ImGuiButtonFlags_Disabled) + { + if (out_hovered) *out_hovered = false; + if (out_held) *out_held = false; + if (g.ActiveId == id) SetActiveID(0); + return false; + } + + bool pressed = false; + const bool hovered = IsHovered(bb, id, (flags & ImGuiButtonFlags_FlattenChilds) != 0); + if (hovered) + { + g.HoveredId = id; + if (allow_key_modifiers || (!g.IO.KeyCtrl && !g.IO.KeyShift && !g.IO.KeyAlt)) + { + if (g.IO.MouseClicked[0]) + { + if (flags & ImGuiButtonFlags_PressedOnClick) + { + pressed = true; + SetActiveID(0); + } + else + { + SetActiveID(id, window); + } + FocusWindow(window); + } + else if (g.IO.MouseReleased[0] && (flags & ImGuiButtonFlags_PressedOnRelease)) + { + pressed = true; + SetActiveID(0); + } + else if ((flags & ImGuiButtonFlags_Repeat) && g.ActiveId == id && ImGui::IsMouseClicked(0, true)) + { + pressed = true; + } + } + } + + bool held = false; + if (g.ActiveId == id) + { + if (g.IO.MouseDown[0]) + { + held = true; + } + else + { + if (hovered) + pressed = true; + SetActiveID(0); + } + } + + if (out_hovered) *out_hovered = hovered; + if (out_held) *out_held = held; + + return pressed; +} + +bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags flags) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + + ImVec2 pos = window->DC.CursorPos; + if ((flags & ImGuiButtonFlags_AlignTextBaseLine) && style.FramePadding.y < window->DC.CurrentLineTextBaseOffset) + pos.y += window->DC.CurrentLineTextBaseOffset - style.FramePadding.y; + ImVec2 size = CalcItemSize(size_arg, label_size.x + style.FramePadding.x * 2.0f, label_size.y + style.FramePadding.y * 2.0f); + + const ImRect bb(pos, pos + size); + ItemSize(bb, style.FramePadding.y); + if (!ItemAdd(bb, &id)) + return false; + + if (window->DC.ButtonRepeat) flags |= ImGuiButtonFlags_Repeat; + bool hovered, held; + bool pressed = ButtonBehavior(bb, id, &hovered, &held, true, flags); + + // Render + const ImU32 col = window->Color((hovered && held) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); + RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding); + RenderTextClipped(bb.Min, bb.Max, label, NULL, &label_size, ImGuiAlign_Center | ImGuiAlign_VCenter); + + // Automatically close popups + //if (pressed && !(flags & ImGuiButtonFlags_DontClosePopups) && (window->Flags & ImGuiWindowFlags_Popup)) + // ImGui::CloseCurrentPopup(); + + return pressed; +} + +bool ImGui::Button(const char* label, const ImVec2& size_arg) +{ + return ButtonEx(label, size_arg, 0); +} + +// Small buttons fits within text without additional vertical spacing. +bool ImGui::SmallButton(const char* label) +{ + ImGuiState& g = *GImGui; + float backup_padding_y = g.Style.FramePadding.y; + g.Style.FramePadding.y = 0.0f; + bool pressed = ButtonEx(label, ImVec2(0,0), ImGuiButtonFlags_AlignTextBaseLine); + g.Style.FramePadding.y = backup_padding_y; + return pressed; +} + +// Tip: use ImGui::PushID()/PopID() to push indices or pointers in the ID stack. +// Then you can keep 'str_id' empty or the same for all your buttons (instead of creating a string based on a non-string id) +bool ImGui::InvisibleButton(const char* str_id, const ImVec2& size) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + const ImGuiID id = window->GetID(str_id); + const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); + ItemSize(bb); + if (!ItemAdd(bb, &id)) + return false; + + bool hovered, held; + bool pressed = ButtonBehavior(bb, id, &hovered, &held, true); + + return pressed; +} + +// Upper-right button to close a window. +static bool CloseWindowButton(bool* p_opened) +{ + ImGuiWindow* window = ImGui::GetCurrentWindow(); + + const ImGuiID id = window->GetID("#CLOSE"); + const float size = window->TitleBarHeight() - 4.0f; + const ImRect bb(window->Rect().GetTR() + ImVec2(-2.0f-size,2.0f), window->Rect().GetTR() + ImVec2(-2.0f,2.0f+size)); + + bool hovered, held; + bool pressed = ImGui::ButtonBehavior(bb, id, &hovered, &held, true); + + // Render + const ImU32 col = window->Color((held && hovered) ? ImGuiCol_CloseButtonActive : hovered ? ImGuiCol_CloseButtonHovered : ImGuiCol_CloseButton); + const ImVec2 center = bb.GetCenter(); + window->DrawList->AddCircleFilled(center, ImMax(2.0f,size*0.5f), col, 16); + + const float cross_extent = (size * 0.5f * 0.7071f) - 1.0f; + if (hovered) + { + window->DrawList->AddLine(center + ImVec2(+cross_extent,+cross_extent), center + ImVec2(-cross_extent,-cross_extent), window->Color(ImGuiCol_Text)); + window->DrawList->AddLine(center + ImVec2(+cross_extent,-cross_extent), center + ImVec2(-cross_extent,+cross_extent), window->Color(ImGuiCol_Text)); + } + + if (p_opened != NULL && pressed) + *p_opened = !*p_opened; + + return pressed; +} + +void ImGui::Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, const ImVec4& tint_col, const ImVec4& border_col) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); + if (border_col.w > 0.0f) + bb.Max += ImVec2(2,2); + ItemSize(bb); + if (!ItemAdd(bb, NULL)) + return; + + if (border_col.w > 0.0f) + { + window->DrawList->AddRect(bb.Min, bb.Max, window->Color(border_col), 0.0f); + window->DrawList->AddImage(user_texture_id, bb.Min+ImVec2(1,1), bb.Max-ImVec2(1,1), uv0, uv1, window->Color(tint_col)); + } + else + { + window->DrawList->AddImage(user_texture_id, bb.Min, bb.Max, uv0, uv1, window->Color(tint_col)); + } +} + +// frame_padding < 0: uses FramePadding from style (default) +// frame_padding = 0: no framing +// frame_padding > 0: set framing size +// The color used are the button colors. +bool ImGui::ImageButton(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, int frame_padding, const ImVec4& bg_col, const ImVec4& tint_col) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + + // Default to using texture ID as ID. User can still push string/integer prefixes. + // We could hash the size/uv to create a unique ID but that would prevent the user from animating UV. + ImGui::PushID((void *)user_texture_id); + const ImGuiID id = window->GetID("#image"); + ImGui::PopID(); + + const ImVec2 padding = (frame_padding >= 0) ? ImVec2((float)frame_padding, (float)frame_padding) : style.FramePadding; + const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size + padding*2); + const ImRect image_bb(window->DC.CursorPos + padding, window->DC.CursorPos + padding + size); + ItemSize(bb); + if (!ItemAdd(bb, &id)) + return false; + + bool hovered, held; + bool pressed = ButtonBehavior(bb, id, &hovered, &held, true); + + // Render + const ImU32 col = window->Color((hovered && held) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); + RenderFrame(bb.Min, bb.Max, col); + if (bg_col.w > 0.0f) + window->DrawList->AddRectFilled(image_bb.Min, image_bb.Max, window->Color(bg_col)); + window->DrawList->AddImage(user_texture_id, image_bb.Min, image_bb.Max, uv0, uv1, window->Color(tint_col)); + + return pressed; +} + +// Start logging ImGui output to TTY +void ImGui::LogToTTY(int max_depth) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + if (g.LogEnabled) + return; + + g.LogEnabled = true; + g.LogFile = stdout; + g.LogStartDepth = window->DC.TreeDepth; + if (max_depth >= 0) + g.LogAutoExpandMaxDepth = max_depth; +} + +// Start logging ImGui output to given file +void ImGui::LogToFile(int max_depth, const char* filename) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + if (g.LogEnabled) + return; + if (!filename) + { + filename = g.IO.LogFilename; + if (!filename) + return; + } + + g.LogFile = fopen(filename, "ab"); + if (!g.LogFile) + { + IM_ASSERT(g.LogFile != NULL); // Consider this an error + return; + } + g.LogEnabled = true; + g.LogStartDepth = window->DC.TreeDepth; + if (max_depth >= 0) + g.LogAutoExpandMaxDepth = max_depth; +} + +// Start logging ImGui output to clipboard +void ImGui::LogToClipboard(int max_depth) +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGuiState& g = *GImGui; + if (g.LogEnabled) + return; + + g.LogEnabled = true; + g.LogFile = NULL; + g.LogStartDepth = window->DC.TreeDepth; + if (max_depth >= 0) + g.LogAutoExpandMaxDepth = max_depth; +} + +void ImGui::LogFinish() +{ + ImGuiState& g = *GImGui; + if (!g.LogEnabled) + return; + + ImGui::LogText(IM_NEWLINE); + g.LogEnabled = false; + if (g.LogFile != NULL) + { + if (g.LogFile == stdout) + fflush(g.LogFile); + else + fclose(g.LogFile); + g.LogFile = NULL; + } + if (g.LogClipboard->size() > 1) + { + if (g.IO.SetClipboardTextFn) + g.IO.SetClipboardTextFn(g.LogClipboard->begin()); + g.LogClipboard->clear(); + } +} + +// Helper to display logging buttons +void ImGui::LogButtons() +{ + ImGuiState& g = *GImGui; + + ImGui::PushID("LogButtons"); + const bool log_to_tty = ImGui::Button("Log To TTY"); + ImGui::SameLine(); + const bool log_to_file = ImGui::Button("Log To File"); + ImGui::SameLine(); + const bool log_to_clipboard = ImGui::Button("Log To Clipboard"); + ImGui::SameLine(); + + ImGui::PushItemWidth(80.0f); + ImGui::PushAllowKeyboardFocus(false); + ImGui::SliderInt("Depth", &g.LogAutoExpandMaxDepth, 0, 9, NULL); + ImGui::PopAllowKeyboardFocus(); + ImGui::PopItemWidth(); + ImGui::PopID(); + + // Start logging at the end of the function so that the buttons don't appear in the log + if (log_to_tty) + LogToTTY(g.LogAutoExpandMaxDepth); + if (log_to_file) + LogToFile(g.LogAutoExpandMaxDepth, g.IO.LogFilename); + if (log_to_clipboard) + LogToClipboard(g.LogAutoExpandMaxDepth); +} + +bool ImGui::CollapsingHeader(const char* label, const char* str_id, bool display_frame, bool default_open) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + + IM_ASSERT(str_id != NULL || label != NULL); + if (str_id == NULL) + str_id = label; + if (label == NULL) + label = str_id; + const ImGuiID id = window->GetID(str_id); + + // We only write to the tree storage if the user clicks (or explicitely use SetNextTreeNode*** functions) + ImGuiStorage* storage = window->DC.StateStorage; + bool opened; + if (g.SetNextTreeNodeOpenedCond != 0) + { + if (g.SetNextTreeNodeOpenedCond & ImGuiSetCond_Always) + { + opened = g.SetNextTreeNodeOpenedVal; + storage->SetInt(id, opened); + } + else + { + // We treat ImGuiSetCondition_Once and ImGuiSetCondition_FirstUseEver the same because tree node state are not saved persistently. + const int stored_value = storage->GetInt(id, -1); + if (stored_value == -1) + { + opened = g.SetNextTreeNodeOpenedVal; + storage->SetInt(id, opened); + } + else + { + opened = stored_value != 0; + } + } + g.SetNextTreeNodeOpenedCond = 0; + } + else + { + opened = storage->GetInt(id, default_open) != 0; + } + + // Framed header expand a little outside the default padding + const ImVec2 window_padding = window->WindowPadding; + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImVec2 pos_min = window->DC.CursorPos; + const ImVec2 pos_max = window->Pos + GetContentRegionMax(); + ImRect bb = ImRect(pos_min, ImVec2(pos_max.x, pos_min.y + label_size.y)); + if (display_frame) + { + bb.Min.x -= (float)(int)(window_padding.x*0.5f) - 1; + bb.Max.x += (float)(int)(window_padding.x*0.5f) - 1; + bb.Max.y += style.FramePadding.y * 2; + } + + // FIXME: we don't provide our width so that it doesn't get feed back into AutoFit. Should manage that better so we can still hover without extending ContentsSize + const ImRect text_bb(bb.Min, bb.Min + ImVec2(g.FontSize + style.FramePadding.x*2*2,0) + label_size); + ItemSize(ImVec2(text_bb.GetSize().x, bb.GetSize().y), display_frame ? style.FramePadding.y : 0.0f); + + // When logging is enabled, if automatically expand tree nodes (but *NOT* collapsing headers.. seems like sensible behavior). + // NB- If we are above max depth we still allow manually opened nodes to be logged. + if (g.LogEnabled && !display_frame && window->DC.TreeDepth < g.LogAutoExpandMaxDepth) + opened = true; + + if (!ItemAdd(bb, &id)) + return opened; + + bool hovered, held; + bool pressed = ButtonBehavior(display_frame ? bb : text_bb, id, &hovered, &held, false); + if (pressed) + { + opened = !opened; + storage->SetInt(id, opened); + } + + // Render + const ImU32 col = window->Color((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); + if (display_frame) + { + // Framed type + RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding); + RenderCollapseTriangle(bb.Min + style.FramePadding, opened, 1.0f, true); + if (g.LogEnabled) + { + // NB: '##' is normally used to hide text (as a library-wide feature), so we need to specify the text range to make sure the ## aren't stripped out here. + const char log_prefix[] = "\n##"; + LogRenderedText(bb.Min + style.FramePadding, log_prefix, log_prefix+3); + } + RenderTextClipped(bb.Min + style.FramePadding + ImVec2(g.FontSize + style.FramePadding.x*2,0), bb.Max, label, NULL, &label_size); + if (g.LogEnabled) + { + const char log_suffix[] = "##"; + LogRenderedText(bb.Min + style.FramePadding, log_suffix, log_suffix+2); + } + } + else + { + // Unframed typed for tree nodes + if ((held && hovered) || hovered) + RenderFrame(bb.Min, bb.Max, col, false); + RenderCollapseTriangle(bb.Min + ImVec2(style.FramePadding.x, g.FontSize*0.15f), opened, 0.70f, false); + if (g.LogEnabled) + LogRenderedText(bb.Min, ">"); + RenderText(bb.Min + ImVec2(g.FontSize + style.FramePadding.x*2,0), label); + } + + return opened; +} + +void ImGui::Bullet() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const float line_height = g.FontSize; + const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(line_height, line_height)); + ItemSize(bb); + if (!ItemAdd(bb, NULL)) + return; + + // Render + const float bullet_size = line_height*0.15f; + window->DrawList->AddCircleFilled(bb.Min + ImVec2(style.FramePadding.x + line_height*0.5f, line_height*0.5f), bullet_size, window->Color(ImGuiCol_Text)); + + // Stay on same line + ImGui::SameLine(0, -1); +} + +// Text with a little bullet aligned to the typical tree node. +void ImGui::BulletTextV(const char* fmt, va_list args) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + + const char* text_begin = g.TempBuffer; + const char* text_end = text_begin + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); + const float line_height = g.FontSize; + const ImVec2 label_size = CalcTextSize(text_begin, text_end, true); + const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(line_height + (label_size.x > 0.0f ? (style.FramePadding.x*2) : 0.0f),0) + label_size); // Empty text doesn't add padding + ItemSize(bb); + if (!ItemAdd(bb, NULL)) + return; + + // Render + const float bullet_size = line_height*0.15f; + window->DrawList->AddCircleFilled(bb.Min + ImVec2(style.FramePadding.x + line_height*0.5f, line_height*0.5f), bullet_size, window->Color(ImGuiCol_Text)); + RenderText(bb.Min+ImVec2(g.FontSize + style.FramePadding.x*2,0), text_begin, text_end); +} + +void ImGui::BulletText(const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + BulletTextV(fmt, args); + va_end(args); +} + +// If returning 'true' the node is open and the user is responsible for calling TreePop +bool ImGui::TreeNodeV(const char* str_id, const char* fmt, va_list args) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); + if (!str_id || !str_id[0]) + str_id = fmt; + + ImGui::PushID(str_id); + const bool opened = ImGui::CollapsingHeader(g.TempBuffer, "", false); + ImGui::PopID(); + + if (opened) + ImGui::TreePush(str_id); + + return opened; +} + +bool ImGui::TreeNode(const char* str_id, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + bool s = TreeNodeV(str_id, fmt, args); + va_end(args); + return s; +} + +// If returning 'true' the node is open and the user is responsible for calling TreePop +bool ImGui::TreeNodeV(const void* ptr_id, const char* fmt, va_list args) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); + + if (!ptr_id) + ptr_id = fmt; + + ImGui::PushID(ptr_id); + const bool opened = ImGui::CollapsingHeader(g.TempBuffer, "", false); + ImGui::PopID(); + + if (opened) + ImGui::TreePush(ptr_id); + + return opened; +} + +bool ImGui::TreeNode(const void* ptr_id, const char* fmt, ...) +{ + va_list args; + va_start(args, fmt); + bool s = TreeNodeV(ptr_id, fmt, args); + va_end(args); + return s; +} + +bool ImGui::TreeNode(const char* str_label_id) +{ + return TreeNode(str_label_id, "%s", str_label_id); +} + +void ImGui::SetNextTreeNodeOpened(bool opened, ImGuiSetCond cond) +{ + ImGuiState& g = *GImGui; + g.SetNextTreeNodeOpenedVal = opened; + g.SetNextTreeNodeOpenedCond = cond ? cond : ImGuiSetCond_Always; +} + +void ImGui::PushID(const char* str_id) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->IDStack.push_back(window->GetID(str_id)); +} + +void ImGui::PushID(const char* str_id_begin, const char* str_id_end) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->IDStack.push_back(window->GetID(str_id_begin, str_id_end)); +} + +void ImGui::PushID(const void* ptr_id) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->IDStack.push_back(window->GetID(ptr_id)); +} + +void ImGui::PushID(int int_id) +{ + const void* ptr_id = (void*)(intptr_t)int_id; + ImGuiWindow* window = GetCurrentWindow(); + window->IDStack.push_back(window->GetID(ptr_id)); +} + +void ImGui::PopID() +{ + ImGuiWindow* window = GetCurrentWindow(); + window->IDStack.pop_back(); +} + +ImGuiID ImGui::GetID(const char* str_id) +{ + return GImGui->CurrentWindow->GetID(str_id); +} + +ImGuiID ImGui::GetID(const char* str_id_begin, const char* str_id_end) +{ + return GImGui->CurrentWindow->GetID(str_id_begin, str_id_end); +} + +ImGuiID ImGui::GetID(const void* ptr_id) +{ + return GImGui->CurrentWindow->GetID(ptr_id); +} + +static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, const char* display_format, char* buf, int buf_size) +{ + if (data_type == ImGuiDataType_Int) + ImFormatString(buf, buf_size, display_format, *(int*)data_ptr); + else if (data_type == ImGuiDataType_Float) + ImFormatString(buf, buf_size, display_format, *(float*)data_ptr); +} + +static inline void DataTypeFormatString(ImGuiDataType data_type, void* data_ptr, int decimal_precision, char* buf, int buf_size) +{ + if (data_type == ImGuiDataType_Int) + { + if (decimal_precision < 0) + ImFormatString(buf, buf_size, "%d", *(int*)data_ptr); + else + ImFormatString(buf, buf_size, "%.*d", decimal_precision, *(int*)data_ptr); + } + else if (data_type == ImGuiDataType_Float) + { + if (decimal_precision < 0) + ImFormatString(buf, buf_size, "%f", *(float*)data_ptr); // Ideally we'd have a minimum decimal precision of 1 to visually denote that it is a float, while hiding non-significant digits? + else + ImFormatString(buf, buf_size, "%.*f", decimal_precision, *(float*)data_ptr); + } +} + +static void DataTypeApplyOp(ImGuiDataType data_type, int op, void* value1, const void* value2)// Store into value1 +{ + if (data_type == ImGuiDataType_Int) + { + if (op == '+') + *(int*)value1 = *(int*)value1 + *(const int*)value2; + else if (op == '-') + *(int*)value1 = *(int*)value1 - *(const int*)value2; + } + else if (data_type == ImGuiDataType_Float) + { + if (op == '+') + *(float*)value1 = *(float*)value1 + *(const float*)value2; + else if (op == '-') + *(float*)value1 = *(float*)value1 - *(const float*)value2; + } +} + +// User can input math operators (e.g. +100) to edit a numerical values. +static void DataTypeApplyOpFromText(const char* buf, const char* initial_value_buf, ImGuiDataType data_type, void* data_ptr, const char* scalar_format) +{ + while (ImCharIsSpace(*buf)) + buf++; + + // We don't support '-' op because it would conflict with inputing negative value. + // Instead you can use +-100 to subtract from an existing value + char op = buf[0]; + if (op == '+' || op == '*' || op == '/') + { + buf++; + while (ImCharIsSpace(*buf)) + buf++; + } + else + { + op = 0; + } + if (!buf[0]) + return; + + if (data_type == ImGuiDataType_Int) + { + if (!scalar_format) + scalar_format = "%d"; + int* v = (int*)data_ptr; + int ref_v = *v; + if (op && sscanf(initial_value_buf, scalar_format, &ref_v) < 1) + return; + + // Store operand in a float so we can use fractional value for multipliers (*1.1), but constant always parsed as integer so we can fit big integers (e.g. 2000000003) past float precision + float op_v = 0.0f; + if (op == '+') { if (sscanf(buf, "%f", &op_v) == 1) *v = (int)(ref_v + op_v); } // Add (use "+-" to subtract) + else if (op == '*') { if (sscanf(buf, "%f", &op_v) == 1) *v = (int)(ref_v * op_v); } // Multiply + else if (op == '/') { if (sscanf(buf, "%f", &op_v) == 1 && op_v != 0.0f) *v = (int)(ref_v / op_v); }// Divide + else { if (sscanf(buf, scalar_format, &ref_v) == 1) *v = ref_v; } // Assign constant + } + else if (data_type == ImGuiDataType_Float) + { + if (!scalar_format) + scalar_format = "%f"; + float* v = (float*)data_ptr; + float ref_v = *v; + if (op && sscanf(initial_value_buf, scalar_format, &ref_v) < 1) + return; + float op_v = 0.0f; + if (sscanf(buf, scalar_format, &op_v) < 1) + return; + + if (op == '+') { *v = ref_v + op_v; } // Add (use "+-" to subtract) + else if (op == '*') { *v = ref_v * op_v; } // Multiply + else if (op == '/') { if (op_v != 0.0f) *v = ref_v / op_v; } // Divide + else { *v = op_v; } // Assign constant + } +} + +// Create text input in place of a slider (when CTRL+Clicking on slider) +bool ImGui::InputScalarAsWidgetReplacement(const ImRect& aabb, const char* label, ImGuiDataType data_type, void* data_ptr, ImGuiID id, int decimal_precision) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + // Our replacement widget will override the focus ID (registered previously to allow for a TAB focus to happen) + SetActiveID(g.ScalarAsInputTextId, window); + g.HoveredId = 0; + FocusableItemUnregister(window); + + char buf[32]; + DataTypeFormatString(data_type, data_ptr, decimal_precision, buf, IM_ARRAYSIZE(buf)); + bool value_changed = InputTextEx(label, buf, IM_ARRAYSIZE(buf), aabb.GetSize() - g.Style.FramePadding*2.0f, ImGuiInputTextFlags_CharsDecimal | ImGuiInputTextFlags_AutoSelectAll); + if (g.ScalarAsInputTextId == 0) + { + // First frame + IM_ASSERT(g.ActiveId == id); // InputText ID expected to match the Slider ID (else we'd need to store them both, which is also possible) + g.ScalarAsInputTextId = g.ActiveId; + g.HoveredId = id; + } + else if (g.ActiveId != g.ScalarAsInputTextId) + { + // Release + g.ScalarAsInputTextId = 0; + } + if (value_changed) + DataTypeApplyOpFromText(buf, GImGui->InputTextState.InitialText.begin(), data_type, data_ptr, NULL); + return value_changed; +} + +// Parse display precision back from the display format string +int ImGui::ParseFormatPrecision(const char* fmt, int default_precision) +{ + int precision = default_precision; + while ((fmt = strchr(fmt, '%')) != NULL) + { + fmt++; + if (fmt[0] == '%') { fmt++; continue; } // Ignore "%%" + while (*fmt >= '0' && *fmt <= '9') + fmt++; + if (*fmt == '.') + { + precision = atoi(fmt + 1); + if (precision < 0 || precision > 10) + precision = default_precision; + } + break; + } + return precision; +} + +float ImGui::RoundScalar(float value, int decimal_precision) +{ + // Round past decimal precision + // So when our value is 1.99999 with a precision of 0.001 we'll end up rounding to 2.0 + // FIXME: Investigate better rounding methods + static const float min_steps[10] = { 1.0f, 0.1f, 0.01f, 0.001f, 0.0001f, 0.00001f, 0.000001f, 0.0000001f, 0.00000001f, 0.000000001f }; + float min_step = (decimal_precision >= 0 && decimal_precision < 10) ? min_steps[decimal_precision] : powf(10.0f, (float)-decimal_precision); + bool negative = value < 0.0f; + value = fabsf(value); + float remainder = fmodf(value, min_step); + if (remainder <= min_step*0.5f) + value -= remainder; + else + value += (min_step - remainder); + return negative ? -value : value; +} + +bool ImGui::SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_min, float v_max, float power, int decimal_precision, bool horizontal) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + const ImGuiStyle& style = g.Style; + + // Draw frame + RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); + + const bool is_non_linear = fabsf(power - 1.0f) > 0.0001f; + + const float grab_padding = 2.0f; + const float slider_sz = horizontal ? (frame_bb.GetWidth() - grab_padding * 2.0f) : (frame_bb.GetHeight() - grab_padding * 2.0f); + float grab_sz; + if (decimal_precision > 0) + grab_sz = ImMin(style.GrabMinSize, slider_sz); + else + grab_sz = ImMin(ImMax(1.0f * (slider_sz / (v_max-v_min+1.0f)), style.GrabMinSize), slider_sz); // Integer sliders, if possible have the grab size represent 1 unit + const float slider_usable_sz = slider_sz - grab_sz; + const float slider_usable_pos_min = (horizontal ? frame_bb.Min.x : frame_bb.Min.y) + grab_padding + grab_sz*0.5f; + const float slider_usable_pos_max = (horizontal ? frame_bb.Max.x : frame_bb.Max.y) - grab_padding - grab_sz*0.5f; + + // For logarithmic sliders that cross over sign boundary we want the exponential increase to be symmetric around 0.0f + float linear_zero_pos = 0.0f; // 0.0->1.0f + if (v_min * v_max < 0.0f) + { + // Different sign + const float linear_dist_min_to_0 = powf(fabsf(0.0f - v_min), 1.0f/power); + const float linear_dist_max_to_0 = powf(fabsf(v_max - 0.0f), 1.0f/power); + linear_zero_pos = linear_dist_min_to_0 / (linear_dist_min_to_0+linear_dist_max_to_0); + } + else + { + // Same sign + linear_zero_pos = v_min < 0.0f ? 1.0f : 0.0f; + } + + // Process clicking on the slider + bool value_changed = false; + if (g.ActiveId == id) + { + if (g.IO.MouseDown[0]) + { + const float mouse_abs_pos = horizontal ? g.IO.MousePos.x : g.IO.MousePos.y; + float normalized_pos = ImClamp((mouse_abs_pos - slider_usable_pos_min) / slider_usable_sz, 0.0f, 1.0f); + if (!horizontal) + normalized_pos = 1.0f - normalized_pos; + + float new_value; + if (is_non_linear) + { + // Account for logarithmic scale on both sides of the zero + if (normalized_pos < linear_zero_pos) + { + // Negative: rescale to the negative range before powering + float a = 1.0f - (normalized_pos / linear_zero_pos); + a = powf(a, power); + new_value = ImLerp(ImMin(v_max,0.0f), v_min, a); + } + else + { + // Positive: rescale to the positive range before powering + float a; + if (fabsf(linear_zero_pos - 1.0f) > 1.e-6) + a = (normalized_pos - linear_zero_pos) / (1.0f - linear_zero_pos); + else + a = normalized_pos; + a = powf(a, power); + new_value = ImLerp(ImMax(v_min,0.0f), v_max, a); + } + } + else + { + // Linear slider + new_value = ImLerp(v_min, v_max, normalized_pos); + } + + // Round past decimal precision + new_value = RoundScalar(new_value, decimal_precision); + if (*v != new_value) + { + *v = new_value; + value_changed = true; + } + } + else + { + SetActiveID(0); + } + } + + // Calculate slider grab positioning + float grab_t; + if (is_non_linear) + { + float v_clamped = ImClamp(*v, v_min, v_max); + if (v_clamped < 0.0f) + { + const float f = 1.0f - (v_clamped - v_min) / (ImMin(0.0f,v_max) - v_min); + grab_t = (1.0f - powf(f, 1.0f/power)) * linear_zero_pos; + } + else + { + const float f = (v_clamped - ImMax(0.0f,v_min)) / (v_max - ImMax(0.0f,v_min)); + grab_t = linear_zero_pos + powf(f, 1.0f/power) * (1.0f - linear_zero_pos); + } + } + else + { + // Linear slider + grab_t = (ImClamp(*v, v_min, v_max) - v_min) / (v_max - v_min); + } + + // Draw + if (!horizontal) + grab_t = 1.0f - grab_t; + const float grab_pos = ImLerp(slider_usable_pos_min, slider_usable_pos_max, grab_t); + ImRect grab_bb; + if (horizontal) + grab_bb = ImRect(ImVec2(grab_pos - grab_sz*0.5f, frame_bb.Min.y + grab_padding), ImVec2(grab_pos + grab_sz*0.5f, frame_bb.Max.y - grab_padding)); + else + grab_bb = ImRect(ImVec2(frame_bb.Min.x + grab_padding, grab_pos - grab_sz*0.5f), ImVec2(frame_bb.Max.x - grab_padding, grab_pos + grab_sz*0.5f)); + window->DrawList->AddRectFilled(grab_bb.Min, grab_bb.Max, window->Color(g.ActiveId == id ? ImGuiCol_SliderGrabActive : ImGuiCol_SliderGrab), style.GrabRounding); + + return value_changed; +} + +// Use power!=1.0 for logarithmic sliders. +// Adjust display_format to decorate the value with a prefix or a suffix. +// "%.3f" 1.234 +// "%5.2f secs" 01.23 secs +// "Gold: %.0f" Gold: 1 +bool ImGui::SliderFloat(const char* label, float* v, float v_min, float v_max, const char* display_format, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const float w = ImGui::CalcItemWidth(); + + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); + const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + + // NB- we don't call ItemSize() yet because we may turn into a text edit box below + if (!ItemAdd(total_bb, &id)) + { + ItemSize(total_bb, style.FramePadding.y); + return false; + } + + const bool hovered = IsHovered(frame_bb, id); + if (hovered) + g.HoveredId = id; + + if (!display_format) + display_format = "%.3f"; + int decimal_precision = ParseFormatPrecision(display_format, 3); + + // Tabbing or CTRL-clicking on Slider turns it into an input box + bool start_text_input = false; + const bool tab_focus_requested = FocusableItemRegister(window, g.ActiveId == id); + if (tab_focus_requested || (hovered && g.IO.MouseClicked[0])) + { + SetActiveID(id, window); + FocusWindow(window); + + if (tab_focus_requested || g.IO.KeyCtrl) + { + start_text_input = true; + g.ScalarAsInputTextId = 0; + } + } + if (start_text_input || (g.ActiveId == id && g.ScalarAsInputTextId == id)) + return InputScalarAsWidgetReplacement(frame_bb, label, ImGuiDataType_Float, v, id, decimal_precision); + + ItemSize(total_bb, style.FramePadding.y); + + // Actual slider behavior + render grab + const bool value_changed = SliderBehavior(frame_bb, id, v, v_min, v_max, power, decimal_precision, true); + + // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. + char value_buf[64]; + const char* value_buf_end = value_buf + ImFormatString(value_buf, IM_ARRAYSIZE(value_buf), display_format, *v); + RenderTextClipped(frame_bb.Min, frame_bb.Max, value_buf, value_buf_end, NULL, ImGuiAlign_Center|ImGuiAlign_VCenter); + + if (label_size.x > 0.0f) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + return value_changed; +} + +bool ImGui::VSliderFloat(const char* label, const ImVec2& size, float* v, float v_min, float v_max, const char* display_format, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + size); + const ImRect bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + + ItemSize(bb, style.FramePadding.y); + if (!ItemAdd(frame_bb, &id)) + return false; + + const bool hovered = IsHovered(frame_bb, id); + if (hovered) + g.HoveredId = id; + + if (!display_format) + display_format = "%.3f"; + int decimal_precision = ParseFormatPrecision(display_format, 3); + + if (hovered && g.IO.MouseClicked[0]) + { + SetActiveID(id, window); + FocusWindow(window); + } + + // Actual slider behavior + render grab + bool value_changed = SliderBehavior(frame_bb, id, v, v_min, v_max, power, decimal_precision, false); + + // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. + // For the vertical slider we allow centered text to overlap the frame padding + char value_buf[64]; + char* value_buf_end = value_buf + ImFormatString(value_buf, IM_ARRAYSIZE(value_buf), display_format, *v); + RenderTextClipped(ImVec2(frame_bb.Min.x, frame_bb.Min.y + style.FramePadding.y), frame_bb.Max, value_buf, value_buf_end, NULL, ImGuiAlign_Center); + + if (label_size.x > 0.0f) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + return value_changed; +} + +bool ImGui::SliderAngle(const char* label, float* v_rad, float v_degrees_min, float v_degrees_max) +{ + float v_deg = (*v_rad) * 360.0f / (2*IM_PI); + bool value_changed = ImGui::SliderFloat(label, &v_deg, v_degrees_min, v_degrees_max, "%.0f deg", 1.0f); + *v_rad = v_deg * (2*IM_PI) / 360.0f; + return value_changed; +} + +bool ImGui::SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format) +{ + if (!display_format) + display_format = "%.0f"; + float v_f = (float)*v; + bool value_changed = ImGui::SliderFloat(label, &v_f, (float)v_min, (float)v_max, display_format, 1.0f); + *v = (int)v_f; + return value_changed; +} + +bool ImGui::VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* display_format) +{ + if (!display_format) + display_format = "%.0f"; + float v_f = (float)*v; + bool value_changed = ImGui::VSliderFloat(label, size, &v_f, (float)v_min, (float)v_max, display_format, 1.0f); + *v = (int)v_f; + return value_changed; +} + +// Add multiple sliders on 1 line for compact edition of multiple components +bool ImGui::SliderFloatN(const char* label, float* v, int components, float v_min, float v_max, const char* display_format, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::SliderFloat("##v", &v[i], v_min, v_max, display_format, power); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::SliderFloat2(const char* label, float v[2], float v_min, float v_max, const char* display_format, float power) +{ + return SliderFloatN(label, v, 2, v_min, v_max, display_format, power); +} + +bool ImGui::SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* display_format, float power) +{ + return SliderFloatN(label, v, 3, v_min, v_max, display_format, power); +} + +bool ImGui::SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* display_format, float power) +{ + return SliderFloatN(label, v, 4, v_min, v_max, display_format, power); +} + +bool ImGui::SliderIntN(const char* label, int* v, int components, int v_min, int v_max, const char* display_format) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::SliderInt("##v", &v[i], v_min, v_max, display_format); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* display_format) +{ + return SliderIntN(label, v, 2, v_min, v_max, display_format); +} + +bool ImGui::SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* display_format) +{ + return SliderIntN(label, v, 3, v_min, v_max, display_format); +} + +bool ImGui::SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* display_format) +{ + return SliderIntN(label, v, 4, v_min, v_max, display_format); +} + +bool ImGui::DragBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_speed, float v_min, float v_max, int decimal_precision, float power) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + const ImGuiStyle& style = g.Style; + + // Draw frame + const ImU32 frame_col = window->Color(g.ActiveId == id ? ImGuiCol_FrameBgActive : g.HoveredId == id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg); + RenderFrame(frame_bb.Min, frame_bb.Max, frame_col, true, style.FrameRounding); + + bool value_changed = false; + + // Process clicking on the drag + if (g.ActiveId == id) + { + if (g.IO.MouseDown[0]) + { + if (g.ActiveIdIsJustActivated) + { + // Lock current value on click + g.DragCurrentValue = *v; + g.DragLastMouseDelta = ImVec2(0.f, 0.f); + } + + const ImVec2 mouse_drag_delta = ImGui::GetMouseDragDelta(0, 1.0f); + if (fabsf(mouse_drag_delta.x - g.DragLastMouseDelta.x) > 0.0f) + { + float speed = v_speed; + if (speed == 0.0f && (v_max - v_min) != 0.0f && (v_max - v_min) < FLT_MAX) + speed = (v_max - v_min) * g.DragSpeedDefaultRatio; + if (g.IO.KeyShift && g.DragSpeedScaleFast >= 0.0f) + speed = speed * g.DragSpeedScaleFast; + if (g.IO.KeyAlt && g.DragSpeedScaleSlow >= 0.0f) + speed = speed * g.DragSpeedScaleSlow; + + float v_cur = g.DragCurrentValue; + float delta = (mouse_drag_delta.x - g.DragLastMouseDelta.x) * speed; + if (fabsf(power - 1.0f) > 0.001f) + { + // Logarithmic curve on both side of 0.0 + float v0_abs = v_cur >= 0.0f ? v_cur : -v_cur; + float v0_sign = v_cur >= 0.0f ? 1.0f : -1.0f; + float v1 = powf(v0_abs, 1.0f / power) + (delta * v0_sign); + float v1_abs = v1 >= 0.0f ? v1 : -v1; + float v1_sign = v1 >= 0.0f ? 1.0f : -1.0f; // Crossed sign line + v_cur = powf(v1_abs, power) * v0_sign * v1_sign; // Reapply sign + } + else + { + v_cur += delta; + } + g.DragLastMouseDelta.x = mouse_drag_delta.x; + + // Clamp + if (v_min < v_max) + v_cur = ImClamp(v_cur, v_min, v_max); + g.DragCurrentValue = v_cur; + + // Round to user desired precision, then apply + v_cur = RoundScalar(v_cur, decimal_precision); + if (*v != v_cur) + { + *v = v_cur; + value_changed = true; + } + } + } + else + { + SetActiveID(0); + } + } + + return value_changed; +} + +bool ImGui::DragFloat(const char* label, float* v, float v_speed, float v_min, float v_max, const char* display_format, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const float w = ImGui::CalcItemWidth(); + + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); + const ImRect inner_bb(frame_bb.Min + style.FramePadding, frame_bb.Max - style.FramePadding); + const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + + // NB- we don't call ItemSize() yet because we may turn into a text edit box below + if (!ItemAdd(total_bb, &id)) + { + ItemSize(total_bb, style.FramePadding.y); + return false; + } + + const bool hovered = IsHovered(frame_bb, id); + if (hovered) + g.HoveredId = id; + + if (!display_format) + display_format = "%.3f"; + int decimal_precision = ParseFormatPrecision(display_format, 3); + + // Tabbing or CTRL-clicking on Drag turns it into an input box + bool start_text_input = false; + const bool tab_focus_requested = FocusableItemRegister(window, g.ActiveId == id); + if (tab_focus_requested || (hovered && (g.IO.MouseClicked[0] | g.IO.MouseDoubleClicked[0]))) + { + SetActiveID(id, window); + FocusWindow(window); + + if (tab_focus_requested || g.IO.KeyCtrl || g.IO.MouseDoubleClicked[0]) + { + start_text_input = true; + g.ScalarAsInputTextId = 0; + } + } + if (start_text_input || (g.ActiveId == id && g.ScalarAsInputTextId == id)) + return InputScalarAsWidgetReplacement(frame_bb, label, ImGuiDataType_Float, v, id, decimal_precision); + + // Actual drag behavior + ItemSize(total_bb, style.FramePadding.y); + const bool value_changed = DragBehavior(frame_bb, id, v, v_speed, v_min, v_max, decimal_precision, power); + + // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. + char value_buf[64]; + const char* value_buf_end = value_buf + ImFormatString(value_buf, IM_ARRAYSIZE(value_buf), display_format, *v); + RenderTextClipped(frame_bb.Min, frame_bb.Max, value_buf, value_buf_end, NULL, ImGuiAlign_Center|ImGuiAlign_VCenter); + + if (label_size.x > 0.0f) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, inner_bb.Min.y), label); + + return value_changed; +} + +bool ImGui::DragFloatN(const char* label, float* v, int components, float v_speed, float v_min, float v_max, const char* display_format, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::DragFloat("##v", &v[i], v_speed, v_min, v_max, display_format, power); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::DragFloat2(const char* label, float v[2], float v_speed, float v_min, float v_max, const char* display_format, float power) +{ + return DragFloatN(label, v, 2, v_speed, v_min, v_max, display_format, power); +} + +bool ImGui::DragFloat3(const char* label, float v[3], float v_speed, float v_min, float v_max, const char* display_format, float power) +{ + return DragFloatN(label, v, 3, v_speed, v_min, v_max, display_format, power); +} + +bool ImGui::DragFloat4(const char* label, float v[4], float v_speed, float v_min, float v_max, const char* display_format, float power) +{ + return DragFloatN(label, v, 4, v_speed, v_min, v_max, display_format, power); +} + +bool ImGui::DragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, const char* display_format, const char* display_format_max, float power) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + ImGui::PushID(label); + ImGui::BeginGroup(); + PushMultiItemsWidths(2); + + bool value_changed = ImGui::DragFloat("##min", v_current_min, v_speed, (v_min >= v_max) ? -FLT_MAX : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format, power); + ImGui::PopItemWidth(); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + value_changed |= ImGui::DragFloat("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? FLT_MAX : v_max, display_format_max ? display_format_max : display_format, power); + ImGui::PopItemWidth(); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + ImGui::PopID(); + + return value_changed; +} + +// NB: v_speed is float to allow adjusting the drag speed with more precision +bool ImGui::DragInt(const char* label, int* v, float v_speed, int v_min, int v_max, const char* display_format) +{ + if (!display_format) + display_format = "%.0f"; + float v_f = (float)*v; + bool value_changed = ImGui::DragFloat(label, &v_f, v_speed, (float)v_min, (float)v_max, display_format); + *v = (int)v_f; + return value_changed; +} + +bool ImGui::DragIntN(const char* label, int* v, int components, float v_speed, int v_min, int v_max, const char* display_format) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::DragInt("##v", &v[i], v_speed, v_min, v_max, display_format); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::DragInt2(const char* label, int v[2], float v_speed, int v_min, int v_max, const char* display_format) +{ + return DragIntN(label, v, 2, v_speed, v_min, v_max, display_format); +} + +bool ImGui::DragInt3(const char* label, int v[3], float v_speed, int v_min, int v_max, const char* display_format) +{ + return DragIntN(label, v, 3, v_speed, v_min, v_max, display_format); +} + +bool ImGui::DragInt4(const char* label, int v[4], float v_speed, int v_min, int v_max, const char* display_format) +{ + return DragIntN(label, v, 4, v_speed, v_min, v_max, display_format); +} + +bool ImGui::DragIntRange2(const char* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, const char* display_format, const char* display_format_max) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + ImGui::PushID(label); + ImGui::BeginGroup(); + PushMultiItemsWidths(2); + + bool value_changed = ImGui::DragInt("##min", v_current_min, v_speed, (v_min >= v_max) ? IM_INT_MIN : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), display_format); + ImGui::PopItemWidth(); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + value_changed |= ImGui::DragInt("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? IM_INT_MAX : v_max, display_format_max ? display_format_max : display_format); + ImGui::PopItemWidth(); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + ImGui::PopID(); + + return value_changed; +} + +void ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + + const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + if (graph_size.x == 0.0f) + graph_size.x = ImGui::CalcItemWidth() + (style.FramePadding.x * 2); + if (graph_size.y == 0.0f) + graph_size.y = label_size.y + (style.FramePadding.y * 2); + + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(graph_size.x, graph_size.y)); + const ImRect inner_bb(frame_bb.Min + style.FramePadding, frame_bb.Max - style.FramePadding); + const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0)); + ItemSize(total_bb, style.FramePadding.y); + if (!ItemAdd(total_bb, NULL)) + return; + + // Determine scale from values if not specified + if (scale_min == FLT_MAX || scale_max == FLT_MAX) + { + float v_min = FLT_MAX; + float v_max = -FLT_MAX; + for (int i = 0; i < values_count; i++) + { + const float v = values_getter(data, i); + v_min = ImMin(v_min, v); + v_max = ImMax(v_max, v); + } + if (scale_min == FLT_MAX) + scale_min = v_min; + if (scale_max == FLT_MAX) + scale_max = v_max; + } + + RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); + + int res_w = ImMin((int)graph_size.x, values_count); + if (plot_type == ImGuiPlotType_Lines) + res_w -= 1; + + // Tooltip on hover + int v_hovered = -1; + if (IsHovered(inner_bb, 0)) + { + const float t = ImClamp((g.IO.MousePos.x - inner_bb.Min.x) / (inner_bb.Max.x - inner_bb.Min.x), 0.0f, 0.9999f); + const int v_idx = (int)(t * (values_count + ((plot_type == ImGuiPlotType_Lines) ? -1 : 0))); + IM_ASSERT(v_idx >= 0 && v_idx < values_count); + + const float v0 = values_getter(data, (v_idx + values_offset) % values_count); + const float v1 = values_getter(data, (v_idx + 1 + values_offset) % values_count); + if (plot_type == ImGuiPlotType_Lines) + ImGui::SetTooltip("%d: %8.4g\n%d: %8.4g", v_idx, v0, v_idx+1, v1); + else if (plot_type == ImGuiPlotType_Histogram) + ImGui::SetTooltip("%d: %8.4g", v_idx, v0); + v_hovered = v_idx; + } + + const float t_step = 1.0f / (float)res_w; + + float v0 = values_getter(data, (0 + values_offset) % values_count); + float t0 = 0.0f; + ImVec2 p0 = ImVec2( t0, 1.0f - ImSaturate((v0 - scale_min) / (scale_max - scale_min)) ); + + const ImU32 col_base = window->Color((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram); + const ImU32 col_hovered = window->Color((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered); + + for (int n = 0; n < res_w; n++) + { + const float t1 = t0 + t_step; + const int v_idx = (int)(t0 * values_count); + IM_ASSERT(v_idx >= 0 && v_idx < values_count); + const float v1 = values_getter(data, (v_idx + values_offset + 1) % values_count); + const ImVec2 p1 = ImVec2( t1, 1.0f - ImSaturate((v1 - scale_min) / (scale_max - scale_min)) ); + + // NB- Draw calls are merged together by the DrawList system. + if (plot_type == ImGuiPlotType_Lines) + window->DrawList->AddLine(ImLerp(inner_bb.Min, inner_bb.Max, p0), ImLerp(inner_bb.Min, inner_bb.Max, p1), v_hovered == v_idx ? col_hovered : col_base); + else if (plot_type == ImGuiPlotType_Histogram) + window->DrawList->AddRectFilled(ImLerp(inner_bb.Min, inner_bb.Max, p0), ImLerp(inner_bb.Min, inner_bb.Max, ImVec2(p1.x, 1.0f))+ImVec2(-1,0), v_hovered == v_idx ? col_hovered : col_base); + + t0 = t1; + p0 = p1; + } + + // Text overlay + if (overlay_text) + RenderTextClipped(ImVec2(frame_bb.Min.x, frame_bb.Min.y + style.FramePadding.y), frame_bb.Max, overlay_text, NULL, NULL, ImGuiAlign_Center); + + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, inner_bb.Min.y), label); +} + +struct ImGuiPlotArrayGetterData +{ + const float* Values; + int Stride; + + ImGuiPlotArrayGetterData(const float* values, int stride) { Values = values; Stride = stride; } +}; + +static float Plot_ArrayGetter(void* data, int idx) +{ + ImGuiPlotArrayGetterData* plot_data = (ImGuiPlotArrayGetterData*)data; + const float v = *(float*)(void*)((unsigned char*)plot_data->Values + (size_t)idx * plot_data->Stride); + return v; +} + +void ImGui::PlotLines(const char* label, const float* values, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) +{ + ImGuiPlotArrayGetterData data(values, stride); + PlotEx(ImGuiPlotType_Lines, label, &Plot_ArrayGetter, (void*)&data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); +} + +void ImGui::PlotLines(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) +{ + PlotEx(ImGuiPlotType_Lines, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); +} + +void ImGui::PlotHistogram(const char* label, const float* values, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) +{ + ImGuiPlotArrayGetterData data(values, stride); + PlotEx(ImGuiPlotType_Histogram, label, &Plot_ArrayGetter, (void*)&data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); +} + +void ImGui::PlotHistogram(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) +{ + PlotEx(ImGuiPlotType_Histogram, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); +} + +bool ImGui::Checkbox(const char* label, bool* v) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const ImVec2 label_size = CalcTextSize(label, NULL, true); + + const ImRect check_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(label_size.y + style.FramePadding.y*2, label_size.y + style.FramePadding.y*2)); + ItemSize(check_bb, style.FramePadding.y); + + ImRect total_bb = check_bb; + if (label_size.x > 0) + SameLine(0, style.ItemInnerSpacing.x); + const ImRect text_bb(window->DC.CursorPos + ImVec2(0,style.FramePadding.y), window->DC.CursorPos + ImVec2(0,style.FramePadding.y) + label_size); + if (label_size.x > 0) + { + ItemSize(ImVec2(text_bb.GetWidth(), check_bb.GetHeight()), style.FramePadding.y); + total_bb = ImRect(ImMin(check_bb.Min, text_bb.Min), ImMax(check_bb.Max, text_bb.Max)); + } + + if (!ItemAdd(total_bb, &id)) + return false; + + bool hovered, held; + bool pressed = ButtonBehavior(total_bb, id, &hovered, &held, true); + if (pressed) + *v = !(*v); + + RenderFrame(check_bb.Min, check_bb.Max, window->Color((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), true, style.FrameRounding); + if (*v) + { + const float check_sz = ImMin(check_bb.GetWidth(), check_bb.GetHeight()); + const float pad = ImMax(1.0f, (float)(int)(check_sz / 6.0f)); + window->DrawList->AddRectFilled(check_bb.Min+ImVec2(pad,pad), check_bb.Max-ImVec2(pad,pad), window->Color(ImGuiCol_CheckMark), style.FrameRounding); + } + + if (g.LogEnabled) + LogRenderedText(text_bb.GetTL(), *v ? "[x]" : "[ ]"); + RenderText(text_bb.GetTL(), label); + + return pressed; +} + +bool ImGui::CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value) +{ + bool v = (*flags & flags_value) ? true : false; + bool pressed = ImGui::Checkbox(label, &v); + if (v) + *flags |= flags_value; + else + *flags &= ~flags_value; + return pressed; +} + +bool ImGui::RadioButton(const char* label, bool active) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const ImVec2 label_size = CalcTextSize(label, NULL, true); + + const ImRect check_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(label_size.y + style.FramePadding.y*2-1, label_size.y + style.FramePadding.y*2-1)); + ItemSize(check_bb, style.FramePadding.y); + + ImRect total_bb = check_bb; + if (label_size.x > 0) + SameLine(0, style.ItemInnerSpacing.x); + const ImRect text_bb(window->DC.CursorPos + ImVec2(0, style.FramePadding.y), window->DC.CursorPos + ImVec2(0, style.FramePadding.y) + label_size); + if (label_size.x > 0) + { + ItemSize(ImVec2(text_bb.GetWidth(), check_bb.GetHeight()), style.FramePadding.y); + total_bb.Add(text_bb); + } + + if (!ItemAdd(total_bb, &id)) + return false; + + ImVec2 center = check_bb.GetCenter(); + center.x = (float)(int)center.x + 0.5f; + center.y = (float)(int)center.y + 0.5f; + const float radius = check_bb.GetHeight() * 0.5f; + + bool hovered, held; + bool pressed = ButtonBehavior(total_bb, id, &hovered, &held, true); + + window->DrawList->AddCircleFilled(center, radius, window->Color((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), 16); + if (active) + { + const float check_sz = ImMin(check_bb.GetWidth(), check_bb.GetHeight()); + const float pad = ImMax(1.0f, (float)(int)(check_sz / 6.0f)); + window->DrawList->AddCircleFilled(center, radius-pad, window->Color(ImGuiCol_CheckMark), 16); + } + + if (window->Flags & ImGuiWindowFlags_ShowBorders) + { + window->DrawList->AddCircle(center+ImVec2(1,1), radius, window->Color(ImGuiCol_BorderShadow), 16); + window->DrawList->AddCircle(center, radius, window->Color(ImGuiCol_Border), 16); + } + + if (g.LogEnabled) + LogRenderedText(text_bb.GetTL(), active ? "(x)" : "( )"); + RenderText(text_bb.GetTL(), label); + + return pressed; +} + +bool ImGui::RadioButton(const char* label, int* v, int v_button) +{ + const bool pressed = ImGui::RadioButton(label, *v == v_button); + if (pressed) + { + *v = v_button; + } + return pressed; +} + +static int InputTextCalcTextLenAndLineCount(const char* text_begin, const char** out_text_end) +{ + int line_count = 0; + const char* s = text_begin; + while (char c = *s++) // We are only matching for \n so we can ignore UTF-8 decoding + if (c == '\n') + line_count++; + s--; + if (s[0] != '\n' && s[0] != '\r') + line_count++; + *out_text_end = s; + return line_count; +} + +static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const ImWchar* text_end, const ImWchar** remaining, ImVec2* out_offset, bool stop_on_new_line) +{ + ImFont* font = GImGui->Font; + const float line_height = GImGui->FontSize; + const float scale = line_height / font->FontSize; + + ImVec2 text_size = ImVec2(0,0); + float line_width = 0.0f; + + const ImWchar* s = text_begin; + while (s < text_end) + { + unsigned int c = (unsigned int)(*s++); + if (c == '\n') + { + text_size.x = ImMax(text_size.x, line_width); + text_size.y += line_height; + line_width = 0.0f; + if (stop_on_new_line) + break; + continue; + } + if (c == '\r') + continue; + + const float char_width = font->GetCharAdvance((unsigned short)c) * scale; + line_width += char_width; + } + + if (text_size.x < line_width) + text_size.x = line_width; + + if (out_offset) + *out_offset = ImVec2(line_width, text_size.y + line_height); // offset allow for the possibility of sitting after a trailing \n + + if (line_width > 0 || text_size.y == 0.0f) // whereas size.y will ignore the trailing \n + text_size.y += line_height; + + if (remaining) + *remaining = s; + + return text_size; +} + +// Wrapper for stb_textedit.h to edit text (our wrapper is for: statically sized buffer, single-line, wchar characters. InputText converts between UTF-8 and wchar) +namespace ImGuiStb +{ + +static int STB_TEXTEDIT_STRINGLEN(const STB_TEXTEDIT_STRING* obj) { return obj->CurLenW; } +static ImWchar STB_TEXTEDIT_GETCHAR(const STB_TEXTEDIT_STRING* obj, int idx) { return obj->Text[idx]; } +static float STB_TEXTEDIT_GETWIDTH(STB_TEXTEDIT_STRING* obj, int line_start_idx, int char_idx) { ImWchar c = obj->Text[line_start_idx+char_idx]; if (c == '\n') return STB_TEXTEDIT_GETWIDTH_NEWLINE; return GImGui->Font->GetCharAdvance(c) * (GImGui->FontSize / GImGui->Font->FontSize); } +static int STB_TEXTEDIT_KEYTOTEXT(int key) { return key >= 0x10000 ? 0 : key; } +static ImWchar STB_TEXTEDIT_NEWLINE = '\n'; +static void STB_TEXTEDIT_LAYOUTROW(StbTexteditRow* r, STB_TEXTEDIT_STRING* obj, int line_start_idx) +{ + const ImWchar* text = obj->Text.Data; + const ImWchar* text_remaining = NULL; + const ImVec2 size = InputTextCalcTextSizeW(text + line_start_idx, text + obj->CurLenW, &text_remaining, NULL, true); + r->x0 = 0.0f; + r->x1 = size.x; + r->baseline_y_delta = size.y; + r->ymin = 0.0f; + r->ymax = size.y; + r->num_chars = (int)(text_remaining - (text + line_start_idx)); +} + +static bool is_separator(unsigned int c) { return c==',' || c==';' || c=='(' || c==')' || c=='{' || c=='}' || c=='[' || c==']' || c=='|'; } +#define STB_TEXTEDIT_IS_SPACE(CH) ( ImCharIsSpace((unsigned int)CH) || is_separator((unsigned int)CH) ) +static void STB_TEXTEDIT_DELETECHARS(STB_TEXTEDIT_STRING* obj, int pos, int n) +{ + ImWchar* dst = obj->Text.Data + pos; + + // We maintain our buffer length in both UTF-8 and wchar formats + obj->CurLenA -= ImTextCountUtf8BytesFromStr(dst, dst + n); + obj->CurLenW -= n; + + // Offset remaining text + const ImWchar* src = obj->Text.Data + pos + n; + while (ImWchar c = *src++) + *dst++ = c; + *dst = '\0'; +} + +static bool STB_TEXTEDIT_INSERTCHARS(STB_TEXTEDIT_STRING* obj, int pos, const ImWchar* new_text, int new_text_len) +{ + const int text_len = obj->CurLenW; + if (new_text_len + text_len + 1 > obj->Text.Size) + return false; + + const int new_text_len_utf8 = ImTextCountUtf8BytesFromStr(new_text, new_text + new_text_len); + if (new_text_len_utf8 + obj->CurLenA + 1 > obj->BufSizeA) + return false; + + ImWchar* text = obj->Text.Data; + if (pos != text_len) + memmove(text + pos + new_text_len, text + pos, (size_t)(text_len - pos) * sizeof(ImWchar)); + memcpy(text + pos, new_text, (size_t)new_text_len * sizeof(ImWchar)); + + obj->CurLenW += new_text_len; + obj->CurLenA += new_text_len_utf8; + obj->Text[obj->CurLenW] = '\0'; + + return true; +} + +// We don't use an enum so we can build even with conflicting symbols (if another user of stb_textedit.h leak their STB_TEXTEDIT_K_* symbols) +#define STB_TEXTEDIT_K_LEFT 0x10000 // keyboard input to move cursor left +#define STB_TEXTEDIT_K_RIGHT 0x10001 // keyboard input to move cursor right +#define STB_TEXTEDIT_K_UP 0x10002 // keyboard input to move cursor up +#define STB_TEXTEDIT_K_DOWN 0x10003 // keyboard input to move cursor down +#define STB_TEXTEDIT_K_LINESTART 0x10004 // keyboard input to move cursor to start of line +#define STB_TEXTEDIT_K_LINEEND 0x10005 // keyboard input to move cursor to end of line +#define STB_TEXTEDIT_K_TEXTSTART 0x10006 // keyboard input to move cursor to start of text +#define STB_TEXTEDIT_K_TEXTEND 0x10007 // keyboard input to move cursor to end of text +#define STB_TEXTEDIT_K_DELETE 0x10008 // keyboard input to delete selection or character under cursor +#define STB_TEXTEDIT_K_BACKSPACE 0x10009 // keyboard input to delete selection or character left of cursor +#define STB_TEXTEDIT_K_UNDO 0x1000A // keyboard input to perform undo +#define STB_TEXTEDIT_K_REDO 0x1000B // keyboard input to perform redo +#define STB_TEXTEDIT_K_WORDLEFT 0x1000C // keyboard input to move cursor left one word +#define STB_TEXTEDIT_K_WORDRIGHT 0x1000D // keyboard input to move cursor right one word +#define STB_TEXTEDIT_K_SHIFT 0x20000 + +#define STB_TEXTEDIT_IMPLEMENTATION +#include "stb_textedit.h" + +} + +void ImGuiTextEditState::OnKeyPressed(int key) +{ + stb_textedit_key(this, &StbState, key); + CursorFollow = true; + CursorAnimReset(); +} + +// Public API to manipulate UTF-8 text +// We expose UTF-8 to the user (unlike the STB_TEXTEDIT_* functions which are manipulating wchar) +void ImGuiTextEditCallbackData::DeleteChars(int pos, int bytes_count) +{ + char* dst = Buf + pos; + const char* src = Buf + pos + bytes_count; + while (char c = *src++) + *dst++ = c; + *dst = '\0'; + + BufDirty = true; + if (CursorPos + bytes_count >= pos) + CursorPos -= bytes_count; + else if (CursorPos >= pos) + CursorPos = pos; + SelectionStart = SelectionEnd = CursorPos; +} + +void ImGuiTextEditCallbackData::InsertChars(int pos, const char* new_text, const char* new_text_end) +{ + const int text_len = (int)strlen(Buf); + if (!new_text_end) + new_text_end = new_text + strlen(new_text); + const int new_text_len = (int)(new_text_end - new_text); + + if (new_text_len + text_len + 1 >= BufSize) + return; + + if (text_len != pos) + memmove(Buf + pos + new_text_len, Buf + pos, (size_t)(text_len - pos)); + memcpy(Buf + pos, new_text, (size_t)new_text_len * sizeof(char)); + Buf[text_len + new_text_len] = '\0'; + + BufDirty = true; + if (CursorPos >= pos) + CursorPos += new_text_len; + SelectionStart = SelectionEnd = CursorPos; +} + +// Return false to discard a character. +static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) +{ + unsigned int c = *p_char; + + if (c < 128 && c != ' ' && !isprint((int)(c & 0xFF))) + { + bool pass = false; + pass |= (c == '\n' && (flags & ImGuiInputTextFlags_Multiline)); + pass |= (c == '\t' && (flags & ImGuiInputTextFlags_AllowTabInput)); + if (!pass) + return false; + } + + if (c >= 0xE000 && c <= 0xF8FF) // Filter private Unicode range. I don't imagine anybody would want to input them. GLFW on OSX seems to send private characters for special keys like arrow keys. + return false; + + if (flags & (ImGuiInputTextFlags_CharsDecimal | ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase | ImGuiInputTextFlags_CharsNoBlank)) + { + if (flags & ImGuiInputTextFlags_CharsDecimal) + if (!(c >= '0' && c <= '9') && (c != '.') && (c != '-') && (c != '+') && (c != '*') && (c != '/')) + return false; + + if (flags & ImGuiInputTextFlags_CharsHexadecimal) + if (!(c >= '0' && c <= '9') && !(c >= 'a' && c <= 'f') && !(c >= 'A' && c <= 'F')) + return false; + + if (flags & ImGuiInputTextFlags_CharsUppercase) + if (c >= 'a' && c <= 'z') + *p_char = (c += (unsigned int)('A'-'a')); + + if (flags & ImGuiInputTextFlags_CharsNoBlank) + if (ImCharIsSpace(c)) + return false; + } + + if (flags & ImGuiInputTextFlags_CallbackCharFilter) + { + ImGuiTextEditCallbackData callback_data; + memset(&callback_data, 0, sizeof(ImGuiTextEditCallbackData)); + callback_data.EventFlag = ImGuiInputTextFlags_CallbackCharFilter; + callback_data.EventChar = (ImWchar)c; + callback_data.Flags = flags; + callback_data.UserData = user_data; + if (callback(&callback_data) != 0) + return false; + *p_char = callback_data.EventChar; + if (!callback_data.EventChar) + return false; + } + + return true; +} + +// Edit a string of text +bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2& size_arg, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + IM_ASSERT(!((flags & ImGuiInputTextFlags_CallbackHistory) && (flags & ImGuiInputTextFlags_Multiline))); // Can't use both together (they both use up/down keys) + IM_ASSERT(!((flags & ImGuiInputTextFlags_CallbackCompletion) && (flags & ImGuiInputTextFlags_AllowTabInput))); // Can't use both together (they both use tab key) + + ImGuiState& g = *GImGui; + const ImGuiIO& io = g.IO; + const ImGuiStyle& style = g.Style; + + const ImGuiID id = window->GetID(label); + const bool is_multiline = (flags & ImGuiInputTextFlags_Multiline) != 0; + + ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + ImVec2 size = CalcItemSize(size_arg, ImGui::CalcItemWidth(), is_multiline ? ImGui::GetTextLineHeight() * 8.0f : label_size.y); // Arbitrary default of 8 lines high for multi-line + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + size + style.FramePadding*2.0f); + const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? (style.ItemInnerSpacing.x + label_size.x) : 0.0f, 0.0f)); + + ImGuiWindow* draw_window = window; + if (is_multiline) + { + ImGui::BeginGroup(); + if (!ImGui::BeginChildFrame(id, frame_bb.GetSize())) + { + ImGui::EndChildFrame(); + ImGui::EndGroup(); + return false; + } + draw_window = GetCurrentWindow(); + draw_window->DC.CursorPos += style.FramePadding; + size.x -= draw_window->ScrollbarWidth(); + } + else + { + ItemSize(total_bb, style.FramePadding.y); + if (!ItemAdd(total_bb, &id)) + return false; + } + + // NB: we are only allowed to access 'edit_state' if we are the active widget. + ImGuiTextEditState& edit_state = g.InputTextState; + + const bool is_ctrl_down = io.KeyCtrl; + const bool is_shift_down = io.KeyShift; + const bool is_alt_down = io.KeyAlt; + const bool focus_requested = FocusableItemRegister(window, g.ActiveId == id, (flags & (ImGuiInputTextFlags_CallbackCompletion|ImGuiInputTextFlags_AllowTabInput)) == 0); // Using completion callback disable keyboard tabbing + const bool focus_requested_by_code = focus_requested && (window->FocusIdxAllCounter == window->FocusIdxAllRequestCurrent); + const bool focus_requested_by_tab = focus_requested && !focus_requested_by_code; + + const bool hovered = IsHovered(frame_bb, id); + if (hovered) + { + g.HoveredId = id; + g.MouseCursor = ImGuiMouseCursor_TextInput; + } + const bool user_clicked = hovered && io.MouseClicked[0]; + const bool user_scrolled = is_multiline && g.ActiveId == 0 && edit_state.Id == id && g.ActiveIdPreviousFrame == draw_window->GetID("#SCROLLY"); + + bool select_all = (g.ActiveId != id) && (flags & ImGuiInputTextFlags_AutoSelectAll) != 0; + if (focus_requested || user_clicked || user_scrolled) + { + if (g.ActiveId != id) + { + // Start edition + // Take a copy of the initial buffer value (both in original UTF-8 format and converted to wchar) + // From the moment we focused we are ignoring the content of 'buf' + edit_state.Text.resize(buf_size); // wchar count <= utf-8 count + edit_state.InitialText.resize(buf_size); // utf-8 + ImFormatString(edit_state.InitialText.Data, edit_state.InitialText.Size, "%s", buf); + const char* buf_end = NULL; + edit_state.CurLenW = ImTextStrFromUtf8(edit_state.Text.Data, edit_state.Text.Size, buf, NULL, &buf_end); + edit_state.CurLenA = (int)(buf_end - buf); // We can't get the result from ImFormatString() above because it is not UTF-8 aware. Here we'll cut off malformed UTF-8. + edit_state.InputCursorScreenPos = ImVec2(-1.f, -1.f); + edit_state.CursorAnimReset(); + + if (edit_state.Id != id) + { + edit_state.Id = id; + edit_state.ScrollX = 0.f; + stb_textedit_initialize_state(&edit_state.StbState, !is_multiline); + if (!is_multiline && focus_requested_by_code) + select_all = true; + } + else + { + // Recycle existing cursor/selection/undo stack but clamp position + // Note a single mouse click will override the cursor/position immediately by calling stb_textedit_click handler. + edit_state.StbState.cursor = ImMin(edit_state.StbState.cursor, edit_state.CurLenW); + edit_state.StbState.select_start = ImMin(edit_state.StbState.select_start, edit_state.CurLenW); + edit_state.StbState.select_end = ImMin(edit_state.StbState.select_end, edit_state.CurLenW); + } + if (flags & ImGuiInputTextFlags_AlwaysInsertMode) + edit_state.StbState.insert_mode = true; + if (!is_multiline && (focus_requested_by_tab || (user_clicked && is_ctrl_down))) + select_all = true; + } + SetActiveID(id, window); + FocusWindow(window); + } + else if (io.MouseClicked[0]) + { + // Release focus when we click outside + if (g.ActiveId == id) + SetActiveID(0); + } + + bool value_changed = false; + bool cancel_edit = false; + bool enter_pressed = false; + + if (g.ActiveId == id) + { + edit_state.BufSizeA = buf_size; + + // Although we are active we don't prevent mouse from hovering other elements unless we are interacting right now with the widget. + // Down the line we should have a cleaner concept of focused vs active in the library. + g.ActiveIdIsFocusedOnly = !io.MouseDown[0]; + + // Edit in progress + const float mouse_x = (g.IO.MousePos.x - frame_bb.Min.x - style.FramePadding.x) + edit_state.ScrollX; + const float mouse_y = (is_multiline ? (g.IO.MousePos.y - draw_window->DC.CursorPos.y - style.FramePadding.y) : (g.FontSize*0.5f)); + + if (select_all || (hovered && io.MouseDoubleClicked[0])) + { + edit_state.SelectAll(); + edit_state.SelectedAllMouseLock = true; + } + else if (io.MouseClicked[0] && !edit_state.SelectedAllMouseLock) + { + stb_textedit_click(&edit_state, &edit_state.StbState, mouse_x, mouse_y); + edit_state.CursorAnimReset(); + } + else if (io.MouseDown[0] && !edit_state.SelectedAllMouseLock) + { + stb_textedit_drag(&edit_state, &edit_state.StbState, mouse_x, mouse_y); + edit_state.CursorAnimReset(); + } + if (edit_state.SelectedAllMouseLock && !io.MouseDown[0]) + edit_state.SelectedAllMouseLock = false; + + if (g.IO.InputCharacters[0]) + { + // Process text input (before we check for Return because using some IME will effectively send a Return?) + for (int n = 0; n < IM_ARRAYSIZE(g.IO.InputCharacters) && g.IO.InputCharacters[n]; n++) + { + if (unsigned int c = (unsigned int)g.IO.InputCharacters[n]) + { + // Insert character if they pass filtering + if (!InputTextFilterCharacter(&c, flags, callback, user_data)) + continue; + edit_state.OnKeyPressed((int)c); + } + } + + // Consume characters + memset(g.IO.InputCharacters, 0, sizeof(g.IO.InputCharacters)); + } + + const int k_mask = (is_shift_down ? STB_TEXTEDIT_K_SHIFT : 0); + const bool is_ctrl_only = is_ctrl_down && !is_alt_down && !is_shift_down; + if (IsKeyPressedMap(ImGuiKey_LeftArrow)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_WORDLEFT | k_mask : STB_TEXTEDIT_K_LEFT | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_RightArrow)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_WORDRIGHT | k_mask : STB_TEXTEDIT_K_RIGHT | k_mask); } + else if (is_multiline && IsKeyPressedMap(ImGuiKey_UpArrow)) { if (is_ctrl_down) SetWindowScrollY(draw_window, draw_window->ScrollY - g.FontSize); else edit_state.OnKeyPressed(STB_TEXTEDIT_K_UP | k_mask); } + else if (is_multiline && IsKeyPressedMap(ImGuiKey_DownArrow)) { if (is_ctrl_down) SetWindowScrollY(draw_window, draw_window->ScrollY + g.FontSize); else edit_state.OnKeyPressed(STB_TEXTEDIT_K_DOWN| k_mask); } + else if (IsKeyPressedMap(ImGuiKey_Home)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_TEXTSTART | k_mask : STB_TEXTEDIT_K_LINESTART | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_End)) { edit_state.OnKeyPressed(is_ctrl_down ? STB_TEXTEDIT_K_TEXTEND | k_mask : STB_TEXTEDIT_K_LINEEND | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_Delete)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_DELETE | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_Backspace)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_BACKSPACE | k_mask); } + else if (IsKeyPressedMap(ImGuiKey_Enter)) + { + bool ctrl_enter_for_new_line = (flags & ImGuiInputTextFlags_CtrlEnterForNewLine) != 0; + if (!is_multiline || (ctrl_enter_for_new_line && !is_ctrl_down) || (!ctrl_enter_for_new_line && is_ctrl_down)) + { + SetActiveID(0); + enter_pressed = true; + } + else // New line + { + unsigned int c = '\n'; + if (InputTextFilterCharacter(&c, flags, callback, user_data)) + edit_state.OnKeyPressed((int)c); + } + } + else if ((flags & ImGuiInputTextFlags_AllowTabInput) && IsKeyPressedMap(ImGuiKey_Tab) && !is_ctrl_down && !is_shift_down && !is_alt_down) + { + unsigned int c = '\t'; + if (InputTextFilterCharacter(&c, flags, callback, user_data)) + edit_state.OnKeyPressed((int)c); + } + else if (IsKeyPressedMap(ImGuiKey_Escape)) { SetActiveID(0); cancel_edit = true; } + else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_Z)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_UNDO); edit_state.ClearSelection(); } + else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_Y)) { edit_state.OnKeyPressed(STB_TEXTEDIT_K_REDO); edit_state.ClearSelection(); } + else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_A)) { edit_state.SelectAll(); edit_state.CursorFollow = true; } + else if (is_ctrl_only && (IsKeyPressedMap(ImGuiKey_X) || IsKeyPressedMap(ImGuiKey_C)) && (!is_multiline || edit_state.HasSelection())) + { + // Cut, Copy + const bool cut = IsKeyPressedMap(ImGuiKey_X); + if (cut && !edit_state.HasSelection()) + edit_state.SelectAll(); + + if (g.IO.SetClipboardTextFn) + { + const int ib = edit_state.HasSelection() ? ImMin(edit_state.StbState.select_start, edit_state.StbState.select_end) : 0; + const int ie = edit_state.HasSelection() ? ImMax(edit_state.StbState.select_start, edit_state.StbState.select_end) : edit_state.CurLenW; + edit_state.TempTextBuffer.resize((ie-ib) * 4 + 1); + ImTextStrToUtf8(edit_state.TempTextBuffer.Data, edit_state.TempTextBuffer.Size, edit_state.Text.Data+ib, edit_state.Text.Data+ie); + g.IO.SetClipboardTextFn(edit_state.TempTextBuffer.Data); + } + + if (cut) + { + edit_state.CursorFollow = true; + stb_textedit_cut(&edit_state, &edit_state.StbState); + } + } + else if (is_ctrl_only && IsKeyPressedMap(ImGuiKey_V)) + { + // Paste + if (g.IO.GetClipboardTextFn) + { + if (const char* clipboard = g.IO.GetClipboardTextFn()) + { + // Remove new-line from pasted buffer + const int clipboard_len = (int)strlen(clipboard); + ImWchar* clipboard_filtered = (ImWchar*)ImGui::MemAlloc((clipboard_len+1) * sizeof(ImWchar)); + int clipboard_filtered_len = 0; + for (const char* s = clipboard; *s; ) + { + unsigned int c; + s += ImTextCharFromUtf8(&c, s, NULL); + if (c == 0) + break; + if (c >= 0x10000 || !InputTextFilterCharacter(&c, flags, callback, user_data)) + continue; + clipboard_filtered[clipboard_filtered_len++] = (ImWchar)c; + } + clipboard_filtered[clipboard_filtered_len] = 0; + if (clipboard_filtered_len > 0) // If everything was filtered, ignore the pasting operation + { + stb_textedit_paste(&edit_state, &edit_state.StbState, clipboard_filtered, clipboard_filtered_len); + edit_state.CursorFollow = true; + } + ImGui::MemFree(clipboard_filtered); + } + } + } + + if (cancel_edit) + { + // Restore initial value + ImFormatString(buf, buf_size, "%s", edit_state.InitialText.Data); + value_changed = true; + } + else + { + // Apply new value immediately - copy modified buffer back + // Note that as soon as we can focus into the input box, the in-widget value gets priority over any underlying modification of the input buffer + // FIXME: We actually always render 'buf' in RenderTextScrolledClipped + // FIXME-OPT: CPU waste to do this every time the widget is active, should mark dirty state from the stb_textedit callbacks + edit_state.TempTextBuffer.resize(edit_state.Text.Size * 4); + ImTextStrToUtf8(edit_state.TempTextBuffer.Data, edit_state.TempTextBuffer.Size, edit_state.Text.Data, NULL); + + // User callback + if ((flags & (ImGuiInputTextFlags_CallbackCompletion | ImGuiInputTextFlags_CallbackHistory | ImGuiInputTextFlags_CallbackAlways)) != 0) + { + IM_ASSERT(callback != NULL); + + // The reason we specify the usage semantic (Completion/History) is that Completion needs to disable keyboard TABBING at the moment. + ImGuiInputTextFlags event_flag = 0; + ImGuiKey event_key = ImGuiKey_COUNT; + if ((flags & ImGuiInputTextFlags_CallbackCompletion) != 0 && IsKeyPressedMap(ImGuiKey_Tab)) + { + event_flag = ImGuiInputTextFlags_CallbackCompletion; + event_key = ImGuiKey_Tab; + } + else if ((flags & ImGuiInputTextFlags_CallbackHistory) != 0 && IsKeyPressedMap(ImGuiKey_UpArrow)) + { + event_flag = ImGuiInputTextFlags_CallbackHistory; + event_key = ImGuiKey_UpArrow; + } + else if ((flags & ImGuiInputTextFlags_CallbackHistory) != 0 && IsKeyPressedMap(ImGuiKey_DownArrow)) + { + event_flag = ImGuiInputTextFlags_CallbackHistory; + event_key = ImGuiKey_DownArrow; + } + + if (event_key != ImGuiKey_COUNT || (flags & ImGuiInputTextFlags_CallbackAlways) != 0) + { + ImGuiTextEditCallbackData callback_data; + callback_data.EventFlag = event_flag; + callback_data.EventKey = event_key; + callback_data.Buf = edit_state.TempTextBuffer.Data; + callback_data.BufSize = edit_state.BufSizeA; + callback_data.BufDirty = false; + callback_data.Flags = flags; + callback_data.UserData = user_data; + + // We have to convert from position from wchar to UTF-8 positions + ImWchar* text = edit_state.Text.Data; + const int utf8_cursor_pos = callback_data.CursorPos = ImTextCountUtf8BytesFromStr(text, text + edit_state.StbState.cursor); + const int utf8_selection_start = callback_data.SelectionStart = ImTextCountUtf8BytesFromStr(text, text + edit_state.StbState.select_start); + const int utf8_selection_end = callback_data.SelectionEnd = ImTextCountUtf8BytesFromStr(text, text + edit_state.StbState.select_end); + + // Call user code + callback(&callback_data); + + // Read back what user may have modified + IM_ASSERT(callback_data.Buf == edit_state.TempTextBuffer.Data); // Invalid to modify those fields + IM_ASSERT(callback_data.BufSize == edit_state.BufSizeA); + IM_ASSERT(callback_data.Flags == flags); + if (callback_data.CursorPos != utf8_cursor_pos) edit_state.StbState.cursor = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.CursorPos); + if (callback_data.SelectionStart != utf8_selection_start) edit_state.StbState.select_start = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.SelectionStart); + if (callback_data.SelectionEnd != utf8_selection_end) edit_state.StbState.select_end = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.SelectionEnd); + if (callback_data.BufDirty) + { + edit_state.CurLenW = ImTextStrFromUtf8(text, edit_state.Text.Size, edit_state.TempTextBuffer.Data, NULL); + edit_state.CurLenA = (int)strlen(edit_state.TempTextBuffer.Data); + edit_state.CursorAnimReset(); + } + } + } + + if (strcmp(edit_state.TempTextBuffer.Data, buf) != 0) + { + ImFormatString(buf, buf_size, "%s", edit_state.TempTextBuffer.Data); + value_changed = true; + } + } + } + + if (!is_multiline) + RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); + + ImVec2 render_pos = is_multiline ? draw_window->DC.CursorPos : frame_bb.Min + style.FramePadding; + + ImVec4 clip_rect(frame_bb.Min.x, frame_bb.Min.y, frame_bb.Min.x + size.x + style.FramePadding.x*2.0f, frame_bb.Min.y + size.y + style.FramePadding.y*2.0f); + ImVec2 text_size(0.f, 0.f); + if (g.ActiveId == id || (edit_state.Id == id && is_multiline && g.ActiveId == draw_window->GetID("#SCROLLY"))) + { + edit_state.CursorAnim += g.IO.DeltaTime; + + // We need to: + // - Display the text (this can be more easily clipped) + // - Handle scrolling, highlight selection, display cursor (those all requires some form of 1d->2d cursor position calculation) + // - Measure text height (for scrollbar) + // We are attempting to do most of that in one main pass to minimize the computation cost (non-negligible for large amount of text) + 2nd pass for selection rendering (we could merge them by an extra refactoring effort) + const ImWchar* text_begin = edit_state.Text.Data; + const ImWchar* text_end = text_begin + edit_state.CurLenW; + ImVec2 cursor_offset, select_start_offset; + + { + // Count lines + find lines numbers of cursor and select_start + int matches_remaining = 0; + int matches_line_no[2] = { -1, -999 }; + const ImWchar* matches_ptr[2] = { NULL, NULL }; + matches_ptr[0] = text_begin + edit_state.StbState.cursor; matches_remaining++; + if (edit_state.StbState.select_start != edit_state.StbState.select_end) + { + matches_ptr[1] = text_begin + ImMin(edit_state.StbState.select_start, edit_state.StbState.select_end); + matches_line_no[1] = -1; + matches_remaining++; + } + matches_remaining += is_multiline ? 1 : 0; // So that we never exit the loop until all lines are counted. + + int line_count = 0; + for (const ImWchar* s = text_begin; s < text_end+1; s++) + if ((*s) == '\n' || s == text_end) + { + line_count++; + if (matches_line_no[0] == -1 && s >= matches_ptr[0]) { matches_line_no[0] = line_count; if (--matches_remaining <= 0) break; } + if (matches_line_no[1] == -1 && s >= matches_ptr[1]) { matches_line_no[1] = line_count; if (--matches_remaining <= 0) break; } + } + + // Calculate 2d position + IM_ASSERT(matches_line_no[0] != -1); + cursor_offset.x = InputTextCalcTextSizeW(ImStrbolW(matches_ptr[0], text_begin), matches_ptr[0]).x; + cursor_offset.y = matches_line_no[0] * g.FontSize; + if (matches_line_no[1] >= 0) + { + select_start_offset.x = InputTextCalcTextSizeW(ImStrbolW(matches_ptr[1], text_begin), matches_ptr[1]).x; + select_start_offset.y = matches_line_no[1] * g.FontSize; + } + + // Calculate text height + if (is_multiline) + text_size = ImVec2(size.x, line_count * g.FontSize); + } + + // Scroll + if (edit_state.CursorFollow) + { + // Horizontal scroll in chunks of quarter width + if (!(flags & ImGuiInputTextFlags_NoHorizontalScroll)) + { + const float scroll_increment_x = size.x * 0.25f; + if (cursor_offset.x < edit_state.ScrollX) + edit_state.ScrollX = ImMax(0.0f, cursor_offset.x - scroll_increment_x); + else if (cursor_offset.x - size.x >= edit_state.ScrollX) + edit_state.ScrollX = cursor_offset.x - size.x + scroll_increment_x; + } + else + { + edit_state.ScrollX = 0.0f; + } + + // Vertical scroll + if (is_multiline) + { + float scroll_y = draw_window->ScrollY; + if (cursor_offset.y - g.FontSize < scroll_y) + scroll_y = ImMax(0.0f, cursor_offset.y - g.FontSize); + else if (cursor_offset.y - size.y >= scroll_y) + scroll_y = cursor_offset.y - size.y; + draw_window->DC.CursorPos.y += (draw_window->ScrollY - scroll_y); // To avoid a frame of lag + draw_window->ScrollY = scroll_y; + render_pos.y = draw_window->DC.CursorPos.y; + } + } + edit_state.CursorFollow = false; + ImVec2 render_scroll = ImVec2(edit_state.ScrollX, 0.0f); + + // Draw selection + if (edit_state.StbState.select_start != edit_state.StbState.select_end) + { + const ImWchar* text_selected_begin = text_begin + ImMin(edit_state.StbState.select_start, edit_state.StbState.select_end); + const ImWchar* text_selected_end = text_begin + ImMax(edit_state.StbState.select_start, edit_state.StbState.select_end); + + float bg_offy_up = is_multiline ? 0.0f : -1.0f; // FIXME: those offsets should be part of the style? they don't play so well with multi-line selection. + float bg_offy_dn = is_multiline ? 0.0f : 2.0f; + ImU32 bg_color = draw_window->Color(ImGuiCol_TextSelectedBg); + ImVec2 rect_pos = render_pos + select_start_offset - render_scroll; + for (const ImWchar* p = text_selected_begin; p < text_selected_end; ) + { + if (rect_pos.y > clip_rect.w + g.FontSize) + break; + if (rect_pos.y < clip_rect.y) + { + while (p < text_selected_end) + if (*p++ == '\n') + break; + } + else + { + ImVec2 rect_size = InputTextCalcTextSizeW(p, text_selected_end, &p, NULL, true); + if (rect_size.x <= 0.0f) rect_size.x = (float)(int)(g.Font->GetCharAdvance((unsigned short)' ') * 0.50f); // So we can see selected empty lines + ImRect rect(rect_pos + ImVec2(0.0f, bg_offy_up - g.FontSize), rect_pos +ImVec2(rect_size.x, bg_offy_dn)); + rect.Clip(clip_rect); + if (rect.Overlaps(clip_rect)) + draw_window->DrawList->AddRectFilled(rect.Min, rect.Max, bg_color); + } + rect_pos.x = render_pos.x - render_scroll.x; + rect_pos.y += g.FontSize; + } + } + + draw_window->DrawList->AddText(g.Font, g.FontSize, render_pos - render_scroll, draw_window->Color(ImGuiCol_Text), buf, buf+edit_state.CurLenA, 0.0f, is_multiline ? NULL : &clip_rect); + + // Draw blinking cursor + ImVec2 cursor_screen_pos = render_pos + cursor_offset - render_scroll; + bool cursor_is_visible = (g.InputTextState.CursorAnim <= 0.0f) || fmodf(g.InputTextState.CursorAnim, 1.20f) <= 0.80f; + if (cursor_is_visible) + draw_window->DrawList->AddLine(cursor_screen_pos + ImVec2(0.0f,-g.FontSize+0.5f), cursor_screen_pos + ImVec2(0.0f,-1.5f), window->Color(ImGuiCol_Text)); + + // Notify OS of text input position for advanced IME + if (io.ImeSetInputScreenPosFn && ImLengthSqr(edit_state.InputCursorScreenPos - cursor_screen_pos) > 0.0001f) + io.ImeSetInputScreenPosFn((int)cursor_screen_pos.x - 1, (int)(cursor_screen_pos.y - g.FontSize)); // -1 x offset so that Windows IME can cover our cursor. Bit of an extra nicety. + + edit_state.InputCursorScreenPos = cursor_screen_pos; + } + else + { + // Render text only + const char* buf_end = NULL; + if (is_multiline) + text_size = ImVec2(size.x, InputTextCalcTextLenAndLineCount(buf, &buf_end) * g.FontSize); // We don't need width + draw_window->DrawList->AddText(g.Font, g.FontSize, render_pos, draw_window->Color(ImGuiCol_Text), buf, buf_end, 0.0f, is_multiline ? NULL : &clip_rect); + } + + if (is_multiline) + { + ImGui::Dummy(text_size + ImVec2(0.0f, g.FontSize)); // Always add room to scroll an extra line + ImGui::EndChildFrame(); + ImGui::EndGroup(); + } + + // Log as text + if (g.LogEnabled) + LogRenderedText(render_pos, buf, NULL); + + if (label_size.x > 0) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + if ((flags & ImGuiInputTextFlags_EnterReturnsTrue) != 0) + return enter_pressed; + else + return value_changed; +} + +bool ImGui::InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) +{ + IM_ASSERT(!(flags & ImGuiInputTextFlags_Multiline)); // call InputTextMultiline() + bool ret = InputTextEx(label, buf, (int)buf_size, ImVec2(0,0), flags, callback, user_data); + return ret; +} + +bool ImGui::InputTextMultiline(const char* label, char* buf, size_t buf_size, const ImVec2& size, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback, void* user_data) +{ + bool ret = InputTextEx(label, buf, (int)buf_size, size, flags | ImGuiInputTextFlags_Multiline, callback, user_data); + return ret; +} + +// NB: scalar_format here must be a simple "%xx" format string with no prefix/suffix (unlike the Drag/Slider functions "display_format" argument) +bool ImGui::InputScalarEx(const char* label, ImGuiDataType data_type, void* data_ptr, void* step_ptr, void* step_fast_ptr, const char* scalar_format, ImGuiInputTextFlags extra_flags) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const float w = ImGui::CalcItemWidth(); + const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); + + ImGui::BeginGroup(); + ImGui::PushID(label); + const ImVec2 button_sz = ImVec2(g.FontSize, g.FontSize) + style.FramePadding * 2; + if (step_ptr) + ImGui::PushItemWidth(ImMax(1.0f, w - (button_sz.x + style.ItemInnerSpacing.x)*2)); + + char buf[64]; + DataTypeFormatString(data_type, data_ptr, scalar_format, buf, IM_ARRAYSIZE(buf)); + + bool value_changed = false; + if (!(extra_flags & ImGuiInputTextFlags_CharsHexadecimal)) + extra_flags |= ImGuiInputTextFlags_CharsDecimal; + extra_flags |= ImGuiInputTextFlags_AutoSelectAll; + if (ImGui::InputText("", buf, IM_ARRAYSIZE(buf), extra_flags)) + { + DataTypeApplyOpFromText(buf, GImGui->InputTextState.InitialText.begin(), data_type, data_ptr, scalar_format); + value_changed = true; + } + + // Step buttons + if (step_ptr) + { + ImGui::PopItemWidth(); + ImGui::SameLine(0, style.ItemInnerSpacing.x); + if (ButtonEx("-", button_sz, ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups)) + { + DataTypeApplyOp(data_type, '-', data_ptr, g.IO.KeyCtrl && step_fast_ptr ? step_fast_ptr : step_ptr); + value_changed = true; + } + ImGui::SameLine(0, style.ItemInnerSpacing.x); + if (ButtonEx("+", button_sz, ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups)) + { + DataTypeApplyOp(data_type, '+', data_ptr, g.IO.KeyCtrl && step_fast_ptr ? step_fast_ptr : step_ptr); + value_changed = true; + } + } + ImGui::PopID(); + + if (label_size.x > 0) + { + ImGui::SameLine(0, style.ItemInnerSpacing.x); + RenderText(ImVec2(window->DC.CursorPos.x, window->DC.CursorPos.y + style.FramePadding.y), label); + ItemSize(label_size, style.FramePadding.y); + } + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::InputFloat(const char* label, float* v, float step, float step_fast, int decimal_precision, ImGuiInputTextFlags extra_flags) +{ + char display_format[16]; + if (decimal_precision < 0) + strcpy(display_format, "%f"); // Ideally we'd have a minimum decimal precision of 1 to visually denote that this is a float, while hiding non-significant digits? %f doesn't have a minimum of 1 + else + ImFormatString(display_format, 16, "%%%df", decimal_precision); + return InputScalarEx(label, ImGuiDataType_Float, (void*)v, (void*)(step>0.0f ? &step : NULL), (void*)(step_fast>0.0f ? &step_fast : NULL), display_format, extra_flags); +} + +bool ImGui::InputInt(const char* label, int* v, int step, int step_fast, ImGuiInputTextFlags extra_flags) +{ + // Hexadecimal input provided as a convenience but the flag name is awkward. Typically you'd use InputText() to parse your own data, if you want to handle prefixes. + const char* scalar_format = (extra_flags & ImGuiInputTextFlags_CharsHexadecimal) ? "%08X" : "%d"; + return InputScalarEx(label, ImGuiDataType_Int, (void*)v, (void*)(step>0.0f ? &step : NULL), (void*)(step_fast>0.0f ? &step_fast : NULL), scalar_format, extra_flags); +} + +bool ImGui::InputFloatN(const char* label, float* v, int components, int decimal_precision, ImGuiInputTextFlags extra_flags) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::InputFloat("##v", &v[i], 0, 0, decimal_precision, extra_flags); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.CurrentLineTextBaseOffset, g.Style.FramePadding.y); + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::InputFloat2(const char* label, float v[2], int decimal_precision, ImGuiInputTextFlags extra_flags) +{ + return InputFloatN(label, v, 2, decimal_precision, extra_flags); +} + +bool ImGui::InputFloat3(const char* label, float v[3], int decimal_precision, ImGuiInputTextFlags extra_flags) +{ + return InputFloatN(label, v, 3, decimal_precision, extra_flags); +} + +bool ImGui::InputFloat4(const char* label, float v[4], int decimal_precision, ImGuiInputTextFlags extra_flags) +{ + return InputFloatN(label, v, 4, decimal_precision, extra_flags); +} + +bool ImGui::InputIntN(const char* label, int* v, int components, ImGuiInputTextFlags extra_flags) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + bool value_changed = false; + ImGui::BeginGroup(); + ImGui::PushID(label); + PushMultiItemsWidths(components); + for (int i = 0; i < components; i++) + { + ImGui::PushID(i); + value_changed |= ImGui::InputInt("##v", &v[i], 0, 0, extra_flags); + ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); + ImGui::PopID(); + ImGui::PopItemWidth(); + } + ImGui::PopID(); + + window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.CurrentLineTextBaseOffset, g.Style.FramePadding.y); + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::EndGroup(); + + return value_changed; +} + +bool ImGui::InputInt2(const char* label, int v[2], ImGuiInputTextFlags extra_flags) +{ + return InputIntN(label, v, 2, extra_flags); +} + +bool ImGui::InputInt3(const char* label, int v[3], ImGuiInputTextFlags extra_flags) +{ + return InputIntN(label, v, 3, extra_flags); +} + +bool ImGui::InputInt4(const char* label, int v[4], ImGuiInputTextFlags extra_flags) +{ + return InputIntN(label, v, 4, extra_flags); +} + +static bool Items_ArrayGetter(void* data, int idx, const char** out_text) +{ + const char** items = (const char**)data; + if (out_text) + *out_text = items[idx]; + return true; +} + +static bool Items_SingleStringGetter(void* data, int idx, const char** out_text) +{ + // FIXME-OPT: we could pre-compute the indices to fasten this. But only 1 active combo means the waste is limited. + const char* items_separated_by_zeros = (const char*)data; + int items_count = 0; + const char* p = items_separated_by_zeros; + while (*p) + { + if (idx == items_count) + break; + p += strlen(p) + 1; + items_count++; + } + if (!*p) + return false; + if (out_text) + *out_text = p; + return true; +} + +// Combo box helper allowing to pass an array of strings. +bool ImGui::Combo(const char* label, int* current_item, const char** items, int items_count, int height_in_items) +{ + const bool value_changed = Combo(label, current_item, Items_ArrayGetter, (void*)items, items_count, height_in_items); + return value_changed; +} + +// Combo box helper allowing to pass all items in a single string. +bool ImGui::Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items) +{ + int items_count = 0; + const char* p = items_separated_by_zeros; // FIXME-OPT: Avoid computing this, or at least only when combo is open + while (*p) + { + p += strlen(p) + 1; + items_count++; + } + bool value_changed = Combo(label, current_item, Items_SingleStringGetter, (void*)items_separated_by_zeros, items_count, height_in_items); + return value_changed; +} + +// Combo box function. +bool ImGui::Combo(const char* label, int* current_item, bool (*items_getter)(void*, int, const char**), void* data, int items_count, int height_in_items) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const float w = ImGui::CalcItemWidth(); + + const ImVec2 label_size = CalcTextSize(label, NULL, true); + const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y) + style.FramePadding*2.0f); + const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + ItemSize(total_bb, style.FramePadding.y); + if (!ItemAdd(total_bb, &id)) + return false; + + const float arrow_size = (g.FontSize + style.FramePadding.x * 2.0f); + const bool hovered = IsHovered(frame_bb, id); + + const ImRect value_bb(frame_bb.Min, frame_bb.Max - ImVec2(arrow_size, 0.0f)); + RenderFrame(frame_bb.Min, frame_bb.Max, window->Color(ImGuiCol_FrameBg), true, style.FrameRounding); + RenderFrame(ImVec2(frame_bb.Max.x-arrow_size, frame_bb.Min.y), frame_bb.Max, window->Color(hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button), true, style.FrameRounding); // FIXME-ROUNDING + RenderCollapseTriangle(ImVec2(frame_bb.Max.x-arrow_size, frame_bb.Min.y) + style.FramePadding, true); + + if (*current_item >= 0 && *current_item < items_count) + { + const char* item_text; + if (items_getter(data, *current_item, &item_text)) + RenderTextClipped(frame_bb.Min + style.FramePadding, value_bb.Max, item_text, NULL, NULL); + } + + if (label_size.x > 0) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + bool menu_toggled = false; + if (hovered) + { + g.HoveredId = id; + if (g.IO.MouseClicked[0]) + { + SetActiveID(0); + if (IsPopupOpen(id)) + { + ClosePopup(id); + } + else + { + FocusWindow(window); + ImGui::OpenPopup(label); + menu_toggled = true; + } + } + } + + bool value_changed = false; + if (IsPopupOpen(id)) + { + // Size default to hold ~7 items + if (height_in_items < 0) + height_in_items = 7; + + float popup_height = (label_size.y + style.ItemSpacing.y) * ImMin(items_count, height_in_items) + (style.FramePadding.y * 3); + ImRect popup_rect(ImVec2(frame_bb.Min.x, frame_bb.Max.y), ImVec2(frame_bb.Max.x, frame_bb.Max.y + popup_height)); + popup_rect.Max.y = ImMin(popup_rect.Max.y, g.IO.DisplaySize.y - style.DisplaySafeAreaPadding.y); // Adhoc height limit for Combo. Ideally should be handled in Begin() along with other popups size, we want to have the possibility of moving the popup above as well. + ImGui::SetNextWindowPos(popup_rect.Min); + ImGui::SetNextWindowSize(popup_rect.GetSize()); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, style.FramePadding); + + const ImGuiWindowFlags flags = ImGuiWindowFlags_ComboBox | ((window->Flags & ImGuiWindowFlags_ShowBorders) ? ImGuiWindowFlags_ShowBorders : 0); + if (BeginPopupEx(label, flags)) + { + // Display items + ImGui::Spacing(); + for (int i = 0; i < items_count; i++) + { + ImGui::PushID((void*)(intptr_t)i); + const bool item_selected = (i == *current_item); + const char* item_text; + if (!items_getter(data, i, &item_text)) + item_text = "*Unknown item*"; + if (ImGui::Selectable(item_text, item_selected)) + { + SetActiveID(0); + value_changed = true; + *current_item = i; + } + if (item_selected && menu_toggled) + ImGui::SetScrollHere(); + ImGui::PopID(); + } + ImGui::EndPopup(); + } + ImGui::PopStyleVar(); + } + return value_changed; +} + +// Tip: pass an empty label (e.g. "##dummy") then you can use the space to draw other text or image. +// But you need to make sure the ID is unique, e.g. enclose calls in PushID/PopID. +bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags flags, const ImVec2& size_arg) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + + if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsCount > 1) + PopClipRect(); + + ImGuiID id = window->GetID(label); + ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + ImVec2 size(size_arg.x != 0.0f ? size_arg.x : label_size.x, size_arg.y != 0.0f ? size_arg.y : label_size.y); + ImVec2 pos = window->DC.CursorPos; + pos.y += window->DC.CurrentLineTextBaseOffset; + ImRect bb(pos, pos + size); + ItemSize(bb); + + // Fill horizontal space. + ImVec2 window_padding = window->WindowPadding; + float max_x = (flags & ImGuiSelectableFlags_SpanAllColumns) ? ImGui::GetWindowContentRegionMax().x : ImGui::GetContentRegionMax().x; + float w_draw = ImMax(label_size.x, window->Pos.x + max_x - window_padding.x - window->DC.CursorPos.x); + ImVec2 size_draw((size_arg.x != 0 && !(flags & ImGuiSelectableFlags_DrawFillAvailWidth)) ? size_arg.x : w_draw, size_arg.y != 0.0f ? size_arg.y : size.y); + ImRect bb_with_spacing(pos, pos + size_draw); + if (size_arg.x == 0.0f || (flags & ImGuiSelectableFlags_DrawFillAvailWidth)) + bb_with_spacing.Max.x += window_padding.x; + + // Selectables are tightly packed together, we extend the box to cover spacing between selectable. + float spacing_L = (float)(int)(style.ItemSpacing.x * 0.5f); + float spacing_U = (float)(int)(style.ItemSpacing.y * 0.5f); + float spacing_R = style.ItemSpacing.x - spacing_L; + float spacing_D = style.ItemSpacing.y - spacing_U; + bb_with_spacing.Min.x -= spacing_L; + bb_with_spacing.Min.y -= spacing_U; + bb_with_spacing.Max.x += spacing_R; + bb_with_spacing.Max.y += spacing_D; + if (!ItemAdd(bb_with_spacing, &id)) + { + if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsCount > 1) + PushColumnClipRect(); + return false; + } + + ImGuiButtonFlags button_flags = 0; + if (flags & ImGuiSelectableFlags_Menu) button_flags |= ImGuiButtonFlags_PressedOnClick; + if (flags & ImGuiSelectableFlags_MenuItem) button_flags |= ImGuiButtonFlags_PressedOnClick|ImGuiButtonFlags_PressedOnRelease; + if (flags & ImGuiSelectableFlags_Disabled) button_flags |= ImGuiButtonFlags_Disabled; + bool hovered, held; + bool pressed = ButtonBehavior(bb_with_spacing, id, &hovered, &held, true, button_flags); + if (flags & ImGuiSelectableFlags_Disabled) + selected = false; + + // Render + if (hovered || selected) + { + const ImU32 col = window->Color((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); + RenderFrame(bb_with_spacing.Min, bb_with_spacing.Max, col, false, 0.0f); + } + + if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.ColumnsCount > 1) + { + PushColumnClipRect(); + bb_with_spacing.Max.x -= (ImGui::GetContentRegionMax().x - max_x); + } + + if (flags & ImGuiSelectableFlags_Disabled) ImGui::PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]); + RenderTextClipped(bb.Min, bb_with_spacing.Max, label, NULL, &label_size); + if (flags & ImGuiSelectableFlags_Disabled) ImGui::PopStyleColor(); + + // Automatically close popups + if (pressed && !(flags & ImGuiSelectableFlags_DontClosePopups) && (window->Flags & ImGuiWindowFlags_Popup)) + ImGui::CloseCurrentPopup(); + return pressed; +} + +bool ImGui::Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags flags, const ImVec2& size_arg) +{ + if (ImGui::Selectable(label, *p_selected, flags, size_arg)) + { + *p_selected = !*p_selected; + return true; + } + return false; +} + +// Helper to calculate the size of a listbox and display a label on the right. +// Tip: To have a list filling the entire window width, PushItemWidth(-1) and pass an empty label "##empty" +bool ImGui::ListBoxHeader(const char* label, const ImVec2& size_arg) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + const ImGuiStyle& style = ImGui::GetStyle(); + const ImGuiID id = ImGui::GetID(label); + const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true); + + // Size default to hold ~7 items. Fractional number of items helps seeing that we can scroll down/up without looking at scrollbar. + ImVec2 size = CalcItemSize(size_arg, ImGui::CalcItemWidth() + style.FramePadding.x * 2.0f, ImGui::GetTextLineHeightWithSpacing() * 7.4f + style.ItemSpacing.y); + ImVec2 frame_size = ImVec2(size.x, ImMax(size.y, label_size.y)); + ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + frame_size); + ImRect bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); + window->DC.LastItemRect = bb; + + ImGui::BeginGroup(); + if (label_size.x > 0) + RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); + + ImGui::BeginChildFrame(id, frame_bb.GetSize()); + return true; +} + +bool ImGui::ListBoxHeader(const char* label, int items_count, int height_in_items) +{ + // Size default to hold ~7 items. Fractional number of items helps seeing that we can scroll down/up without looking at scrollbar. + // However we don't add +0.40f if items_count <= height_in_items. It is slightly dodgy, because it means a dynamic list of items will make the widget resize occasionally when it crosses that size. + // I am expecting that someone will come and complain about this behavior in a remote future, then we can advise on a better solution. + if (height_in_items < 0) + height_in_items = ImMin(items_count, 7); + float height_in_items_f = height_in_items < items_count ? (height_in_items + 0.40f) : (height_in_items + 0.00f); + + // We include ItemSpacing.y so that a list sized for the exact number of items doesn't make a scrollbar appears. We could also enforce that by passing a flag to BeginChild(). + ImVec2 size; + size.x = 0.0f; + size.y = ImGui::GetTextLineHeightWithSpacing() * height_in_items_f + ImGui::GetStyle().ItemSpacing.y; + return ImGui::ListBoxHeader(label, size); +} + +void ImGui::ListBoxFooter() +{ + ImGuiWindow* parent_window = GetParentWindow(); + const ImRect bb = parent_window->DC.LastItemRect; + const ImGuiStyle& style = ImGui::GetStyle(); + + ImGui::EndChildFrame(); + + // Redeclare item size so that it includes the label (we have stored the full size in LastItemRect) + // We call SameLine() to restore DC.CurrentLine* data + ImGui::SameLine(); + parent_window->DC.CursorPos = bb.Min; + ItemSize(bb, style.FramePadding.y); + ImGui::EndGroup(); +} + +bool ImGui::ListBox(const char* label, int* current_item, const char** items, int items_count, int height_items) +{ + const bool value_changed = ListBox(label, current_item, Items_ArrayGetter, (void*)items, items_count, height_items); + return value_changed; +} + +bool ImGui::ListBox(const char* label, int* current_item, bool (*items_getter)(void*, int, const char**), void* data, int items_count, int height_in_items) +{ + if (!ImGui::ListBoxHeader(label, items_count, height_in_items)) + return false; + + // Assume all items have even height (= 1 line of text). If you need items of different or variable sizes you can create a custom version of ListBox() in your code without using the clipper. + bool value_changed = false; + ImGuiListClipper clipper(items_count, ImGui::GetTextLineHeightWithSpacing()); + for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) + { + const bool item_selected = (i == *current_item); + const char* item_text; + if (!items_getter(data, i, &item_text)) + item_text = "*Unknown item*"; + + ImGui::PushID(i); + if (ImGui::Selectable(item_text, item_selected)) + { + *current_item = i; + value_changed = true; + } + ImGui::PopID(); + } + clipper.End(); + ImGui::ListBoxFooter(); + return value_changed; +} + +bool ImGui::MenuItem(const char* label, const char* shortcut, bool selected, bool enabled) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + ImVec2 pos = window->DC.CursorPos; + ImVec2 label_size = CalcTextSize(label, NULL, true); + ImVec2 shortcut_size = shortcut ? CalcTextSize(shortcut, NULL) : ImVec2(0.0f, 0.0f); + float w = window->MenuColumns.DeclColumns(label_size.x, shortcut_size.x, (float)(int)(g.FontSize * 1.20f)); // Feedback for next frame + float extra_w = ImMax(0.0f, ImGui::GetContentRegionAvail().x - w); + + bool pressed = ImGui::Selectable(label, false, ImGuiSelectableFlags_MenuItem | ImGuiSelectableFlags_DrawFillAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f)); + if (shortcut_size.x > 0.0f) + { + ImGui::PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]); + RenderText(pos + ImVec2(window->MenuColumns.Pos[1] + extra_w, 0.0f), shortcut, NULL, false); + ImGui::PopStyleColor(); + } + + if (selected) + RenderCheckMark(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.20f, 0.0f), window->Color(ImGuiCol_Text)); + + return pressed; +} + +bool ImGui::MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled) +{ + if (ImGui::MenuItem(label, shortcut, p_selected ? *p_selected : false, enabled)) + { + if (p_selected) + *p_selected = !*p_selected; + return true; + } + return false; +} + +bool ImGui::BeginMainMenuBar() +{ + ImGuiState& g = *GImGui; + ImGui::SetNextWindowPos(ImVec2(0.0f, 0.0f)); + ImGui::SetNextWindowSize(ImVec2(g.IO.DisplaySize.x, g.FontBaseSize + g.Style.FramePadding.y * 2.0f)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); + ImGui::PushStyleVar(ImGuiStyleVar_WindowMinSize, ImVec2(0,0)); + if (!ImGui::Begin("##MainMenuBar", NULL, ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_MenuBar) + || !ImGui::BeginMenuBar()) + { + ImGui::End(); + ImGui::PopStyleVar(2); + return false; + } + g.CurrentWindow->DC.MenuBarOffsetX += g.Style.DisplaySafeAreaPadding.x; + return true; +} + +void ImGui::EndMainMenuBar() +{ + ImGui::EndMenuBar(); + ImGui::End(); + ImGui::PopStyleVar(2); +} + +bool ImGui::BeginMenuBar() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + if (!(window->Flags & ImGuiWindowFlags_MenuBar)) + return false; + + IM_ASSERT(!window->DC.MenuBarAppending); + ImGui::BeginGroup(); // Save position + ImGui::PushID("##menubar"); + ImRect rect = window->MenuBarRect(); + PushClipRect(ImVec4(rect.Min.x+0.5f, rect.Min.y-0.5f, rect.Max.x+0.5f, rect.Max.y-1.5f), false); + window->DC.CursorPos = ImVec2(rect.Min.x + window->DC.MenuBarOffsetX, rect.Min.y);// + g.Style.FramePadding.y); + window->DC.LayoutType = ImGuiLayoutType_Horizontal; + window->DC.MenuBarAppending = true; + ImGui::AlignFirstTextHeightToWidgets(); + return true; +} + +void ImGui::EndMenuBar() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + IM_ASSERT(window->Flags & ImGuiWindowFlags_MenuBar); + IM_ASSERT(window->DC.MenuBarAppending); + PopClipRect(); + ImGui::PopID(); + window->DC.MenuBarOffsetX = window->DC.CursorPos.x - window->MenuBarRect().Min.x; + window->DC.GroupStack.back().AdvanceCursor = false; + ImGui::EndGroup(); + window->DC.LayoutType = ImGuiLayoutType_Vertical; + window->DC.MenuBarAppending = false; +} + +bool ImGui::BeginMenu(const char* label, bool enabled) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + + ImVec2 label_size = CalcTextSize(label, NULL, true); + ImGuiWindow* backed_focused_window = g.FocusedWindow; + + bool pressed; + bool opened = IsPopupOpen(id); + bool menuset_opened = !(window->Flags & ImGuiWindowFlags_Popup) && (g.OpenedPopupStack.Size > g.CurrentPopupStack.Size && g.OpenedPopupStack[g.CurrentPopupStack.Size].ParentMenuSet == window->GetID("##menus")); + if (menuset_opened) + g.FocusedWindow = window; + + ImVec2 popup_pos, pos = window->DC.CursorPos; + if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) + { + popup_pos = ImVec2(pos.x - window->WindowPadding.x, pos.y - style.FramePadding.y + window->MenuBarHeight()); + window->DC.CursorPos.x += (float)(int)(style.ItemSpacing.x * 0.5f); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, style.ItemSpacing * 2.0f); + float w = label_size.x; + pressed = ImGui::Selectable(label, opened, ImGuiSelectableFlags_Menu | ImGuiSelectableFlags_DontClosePopups | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f)); + ImGui::PopStyleVar(); + ImGui::SameLine(); + window->DC.CursorPos.x += (float)(int)(style.ItemSpacing.x * 0.5f); + } + else + { + popup_pos = ImVec2(pos.x, pos.y - style.WindowPadding.y); + float w = window->MenuColumns.DeclColumns(label_size.x, 0.0f, (float)(int)(g.FontSize * 1.20f)); // Feedback to next frame + float extra_w = ImMax(0.0f, ImGui::GetContentRegionAvail().x - w); + pressed = ImGui::Selectable(label, opened, ImGuiSelectableFlags_Menu | ImGuiSelectableFlags_DontClosePopups | ImGuiSelectableFlags_DrawFillAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f)); + if (!enabled) ImGui::PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]); + RenderCollapseTriangle(pos + ImVec2(window->MenuColumns.Pos[2] + extra_w + g.FontSize * 0.20f, 0.0f), false); + if (!enabled) ImGui::PopStyleColor(); + } + + bool hovered = enabled && IsHovered(window->DC.LastItemRect, id); + if (menuset_opened) + g.FocusedWindow = backed_focused_window; + + bool want_open = false, want_close = false; + if (window->Flags & (ImGuiWindowFlags_Popup|ImGuiWindowFlags_ChildMenu)) + { + // Implement http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown to avoid using timers so menus feel more reactive. + bool moving_within_opened_triangle = false; + if (g.HoveredWindow == window && g.OpenedPopupStack.Size > g.CurrentPopupStack.Size && g.OpenedPopupStack[g.CurrentPopupStack.Size].ParentWindow == window) + { + if (ImGuiWindow* next_window = g.OpenedPopupStack[g.CurrentPopupStack.Size].Window) + { + ImRect next_window_rect = next_window->Rect(); + ImVec2 ta = g.IO.MousePos - g.IO.MouseDelta; + ImVec2 tb = (window->Pos.x < next_window->Pos.x) ? next_window_rect.GetTL() : next_window_rect.GetTR(); + ImVec2 tc = (window->Pos.x < next_window->Pos.x) ? next_window_rect.GetBL() : next_window_rect.GetBR(); + float extra = ImClamp(fabsf(ta.x - tb.x) * 0.30f, 5.0f, 30.0f); // add a bit of extra slack. + ta.x += (window->Pos.x < next_window->Pos.x) ? -0.5f : +0.5f; // to avoid numerical issues + tb.y = ta.y + ImMax((tb.y - extra) - ta.y, -100.0f); // triangle is maximum 200 high to limit the slope and the bias toward large sub-menus + tc.y = ta.y + ImMin((tc.y + extra) - ta.y, +100.0f); + moving_within_opened_triangle = ImIsPointInTriangle(g.IO.MousePos, ta, tb, tc); + //window->DrawList->PushClipRectFullScreen(); window->DrawList->AddTriangleFilled(ta, tb, tc, moving_within_opened_triangle ? 0x80008000 : 0x80000080); window->DrawList->PopClipRect(); // Debug + } + } + + want_close = (opened && !hovered && g.HoveredWindow == window && g.HoveredIdPreviousFrame != 0 && g.HoveredIdPreviousFrame != id && !moving_within_opened_triangle); + want_open = (!opened && hovered && !moving_within_opened_triangle) || (!opened && hovered && pressed); + } + else if (opened && pressed && menuset_opened) // menu-bar: click open menu to close + { + want_close = true; + want_open = opened = false; + } + else if (pressed || (hovered && menuset_opened && !opened)) // menu-bar: first click to open, then hover to open others + want_open = true; + + if (want_close && IsPopupOpen(id)) + ClosePopupToLevel(GImGui->CurrentPopupStack.Size); + + if (!opened && want_open && g.OpenedPopupStack.Size > g.CurrentPopupStack.Size) + { + // Don't recycle same menu level in the same frame, first close the other menu and yield for a frame. + ImGui::OpenPopup(label); + return false; + } + + opened |= want_open; + if (want_open) + ImGui::OpenPopup(label); + + if (opened) + { + ImGui::SetNextWindowPos(popup_pos, ImGuiSetCond_Always); + ImGuiWindowFlags flags = ImGuiWindowFlags_ShowBorders | ((window->Flags & (ImGuiWindowFlags_Popup|ImGuiWindowFlags_ChildMenu)) ? ImGuiWindowFlags_ChildMenu|ImGuiWindowFlags_ChildWindow : ImGuiWindowFlags_ChildMenu); + opened = BeginPopupEx(label, flags); // opened can be 'false' when the popup is completely clipped (e.g. zero size display) + } + + return opened; +} + +void ImGui::EndMenu() +{ + ImGui::EndPopup(); +} + +// A little colored square. Return true when clicked. +bool ImGui::ColorButton(const ImVec4& col, bool small_height, bool outline_border) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID("#colorbutton"); + const float square_size = g.FontSize; + const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(square_size + style.FramePadding.y*2, square_size + (small_height ? 0 : style.FramePadding.y*2))); + ItemSize(bb, small_height ? 0.0f : style.FramePadding.y); + if (!ItemAdd(bb, &id)) + return false; + + bool hovered, held; + bool pressed = ButtonBehavior(bb, id, &hovered, &held, true); + RenderFrame(bb.Min, bb.Max, window->Color(col), outline_border, style.FrameRounding); + + if (hovered) + { + int ix = (int)(col.x * 255.0f + 0.5f); + int iy = (int)(col.y * 255.0f + 0.5f); + int iz = (int)(col.z * 255.0f + 0.5f); + int iw = (int)(col.w * 255.0f + 0.5f); + ImGui::SetTooltip("Color:\n(%.2f,%.2f,%.2f,%.2f)\n#%02X%02X%02X%02X", col.x, col.y, col.z, col.w, ix, iy, iz, iw); + } + + return pressed; +} + +bool ImGui::ColorEdit3(const char* label, float col[3]) +{ + float col4[4]; + col4[0] = col[0]; + col4[1] = col[1]; + col4[2] = col[2]; + col4[3] = 1.0f; + const bool value_changed = ImGui::ColorEdit4(label, col4, false); + col[0] = col4[0]; + col[1] = col4[1]; + col[2] = col4[2]; + return value_changed; +} + +// Edit colors components (each component in 0.0f..1.0f range +// Use CTRL-Click to input value and TAB to go to next item. +bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return false; + + ImGuiState& g = *GImGui; + const ImGuiStyle& style = g.Style; + const ImGuiID id = window->GetID(label); + const float w_full = ImGui::CalcItemWidth(); + const float square_sz = (g.FontSize + style.FramePadding.y * 2.0f); + + ImGuiColorEditMode edit_mode = window->DC.ColorEditMode; + if (edit_mode == ImGuiColorEditMode_UserSelect || edit_mode == ImGuiColorEditMode_UserSelectShowButton) + edit_mode = g.ColorEditModeStorage.GetInt(id, 0) % 3; + + float f[4] = { col[0], col[1], col[2], col[3] }; + + if (edit_mode == ImGuiColorEditMode_HSV) + ImGui::ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]); + + int i[4] = { (int)(f[0] * 255.0f + 0.5f), (int)(f[1] * 255.0f + 0.5f), (int)(f[2] * 255.0f + 0.5f), (int)(f[3] * 255.0f + 0.5f) }; + + int components = alpha ? 4 : 3; + bool value_changed = false; + + ImGui::BeginGroup(); + ImGui::PushID(label); + + const bool hsv = (edit_mode == 1); + switch (edit_mode) + { + case ImGuiColorEditMode_RGB: + case ImGuiColorEditMode_HSV: + { + // RGB/HSV 0..255 Sliders + const float w_items_all = w_full - (square_sz + style.ItemInnerSpacing.x); + const float w_item_one = ImMax(1.0f, (float)(int)((w_items_all - (style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1)) / (float)components)); + const float w_item_last = ImMax(1.0f, (float)(int)(w_items_all - (w_item_one + style.FramePadding.x*2.0f + style.ItemInnerSpacing.x) * (components-1))); + + const bool hide_prefix = (w_item_one <= CalcTextSize("M:999").x); + const char* ids[4] = { "##X", "##Y", "##Z", "##W" }; + const char* fmt_table[3][4] = + { + { "%3.0f", "%3.0f", "%3.0f", "%3.0f" }, + { "R:%3.0f", "G:%3.0f", "B:%3.0f", "A:%3.0f" }, + { "H:%3.0f", "S:%3.0f", "V:%3.0f", "A:%3.0f" } + }; + const char** fmt = hide_prefix ? fmt_table[0] : hsv ? fmt_table[2] : fmt_table[1]; + + ImGui::PushItemWidth(w_item_one); + for (int n = 0; n < components; n++) + { + if (n > 0) + ImGui::SameLine(0, style.ItemInnerSpacing.x); + if (n + 1 == components) + ImGui::PushItemWidth(w_item_last); + value_changed |= ImGui::DragInt(ids[n], &i[n], 1.0f, 0, 255, fmt[n]); + } + ImGui::PopItemWidth(); + ImGui::PopItemWidth(); + } + break; + case ImGuiColorEditMode_HEX: + { + // RGB Hexadecimal Input + const float w_slider_all = w_full - square_sz; + char buf[64]; + if (alpha) + ImFormatString(buf, IM_ARRAYSIZE(buf), "#%02X%02X%02X%02X", i[0], i[1], i[2], i[3]); + else + ImFormatString(buf, IM_ARRAYSIZE(buf), "#%02X%02X%02X", i[0], i[1], i[2]); + ImGui::PushItemWidth(w_slider_all - style.ItemInnerSpacing.x); + value_changed |= ImGui::InputText("##Text", buf, IM_ARRAYSIZE(buf), ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase); + ImGui::PopItemWidth(); + char* p = buf; + while (*p == '#' || ImCharIsSpace(*p)) + p++; + + // Treat at unsigned (%X is unsigned) + i[0] = i[1] = i[2] = i[3] = 0; + if (alpha) + sscanf(p, "%02X%02X%02X%02X", (unsigned int*)&i[0], (unsigned int*)&i[1], (unsigned int*)&i[2], (unsigned int*)&i[3]); + else + sscanf(p, "%02X%02X%02X", (unsigned int*)&i[0], (unsigned int*)&i[1], (unsigned int*)&i[2]); + } + break; + } + + ImGui::SameLine(0, style.ItemInnerSpacing.x); + + const ImVec4 col_display(col[0], col[1], col[2], 1.0f); + if (ImGui::ColorButton(col_display)) + g.ColorEditModeStorage.SetInt(id, (edit_mode + 1) % 3); // Don't set local copy of 'edit_mode' right away! + + if (window->DC.ColorEditMode == ImGuiColorEditMode_UserSelectShowButton) + { + ImGui::SameLine(0, style.ItemInnerSpacing.x); + const char* button_titles[3] = { "RGB", "HSV", "HEX" }; + if (ButtonEx(button_titles[edit_mode], ImVec2(0,0), ImGuiButtonFlags_DontClosePopups)) + g.ColorEditModeStorage.SetInt(id, (edit_mode + 1) % 3); // Don't set local copy of 'edit_mode' right away! + ImGui::SameLine(); + } + else + { + ImGui::SameLine(0, style.ItemInnerSpacing.x); + } + + ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + + // Convert back + for (int n = 0; n < 4; n++) + f[n] = i[n] / 255.0f; + if (edit_mode == 1) + ImGui::ColorConvertHSVtoRGB(f[0], f[1], f[2], f[0], f[1], f[2]); + + if (value_changed) + { + col[0] = f[0]; + col[1] = f[1]; + col[2] = f[2]; + if (alpha) + col[3] = f[3]; + } + + ImGui::PopID(); + ImGui::EndGroup(); + + return value_changed; +} + +void ImGui::ColorEditMode(ImGuiColorEditMode mode) +{ + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ColorEditMode = mode; +} + +// Horizontal separating line. +void ImGui::Separator() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + if (window->DC.ColumnsCount > 1) + PopClipRect(); + + float x1 = window->Pos.x; + float x2 = window->Pos.x + window->Size.x; + if (!window->DC.GroupStack.empty()) + x1 += window->DC.ColumnsStartX; + + const ImRect bb(ImVec2(x1, window->DC.CursorPos.y), ImVec2(x2, window->DC.CursorPos.y)); + ItemSize(ImVec2(0.0f, bb.GetSize().y)); // NB: we don't provide our width so that it doesn't get feed back into AutoFit + if (!ItemAdd(bb, NULL)) + { + if (window->DC.ColumnsCount > 1) + PushColumnClipRect(); + return; + } + + window->DrawList->AddLine(bb.Min, bb.Max, window->Color(ImGuiCol_Border)); + + ImGuiState& g = *GImGui; + if (g.LogEnabled) + ImGui::LogText(IM_NEWLINE "--------------------------------"); + + if (window->DC.ColumnsCount > 1) + { + PushColumnClipRect(); + window->DC.ColumnsCellMinY = window->DC.CursorPos.y; + } +} + +void ImGui::Spacing() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + ItemSize(ImVec2(0,0)); +} + +void ImGui::Dummy(const ImVec2& size) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + ItemSize(size); +} + +bool ImGui::IsRectVisible(const ImVec2& size) +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->ClipRect.Overlaps(ImRect(window->DC.CursorPos, window->DC.CursorPos + size)); +} + +void ImGui::BeginGroup() +{ + ImGuiWindow* window = GetCurrentWindow(); + + window->DC.GroupStack.resize(window->DC.GroupStack.Size + 1); + ImGuiGroupData& group_data = window->DC.GroupStack.back(); + group_data.BackupCursorPos = window->DC.CursorPos; + group_data.BackupCursorMaxPos = window->DC.CursorMaxPos; + group_data.BackupColumnsStartX = window->DC.ColumnsStartX; + group_data.BackupCurrentLineHeight = window->DC.CurrentLineHeight; + group_data.BackupCurrentLineTextBaseOffset = window->DC.CurrentLineTextBaseOffset; + group_data.BackupLogLinePosY = window->DC.LogLinePosY; + group_data.AdvanceCursor = true; + + window->DC.ColumnsStartX = window->DC.CursorPos.x - window->Pos.x; + window->DC.CursorMaxPos = window->DC.CursorPos; + window->DC.CurrentLineHeight = 0.0f; + window->DC.LogLinePosY = window->DC.CursorPos.y - 9999.0f; +} + +void ImGui::EndGroup() +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGuiStyle& style = ImGui::GetStyle(); + + IM_ASSERT(!window->DC.GroupStack.empty()); + + ImGuiGroupData& group_data = window->DC.GroupStack.back(); + + ImRect group_bb(group_data.BackupCursorPos, window->DC.CursorMaxPos); + group_bb.Max.y -= style.ItemSpacing.y; // Cancel out last vertical spacing because we are adding one ourselves. + group_bb.Max = ImMax(group_bb.Min, group_bb.Max); + + window->DC.CursorPos = group_data.BackupCursorPos; + window->DC.CursorMaxPos = ImMax(group_data.BackupCursorMaxPos, window->DC.CursorMaxPos); + window->DC.CurrentLineHeight = group_data.BackupCurrentLineHeight; + window->DC.CurrentLineTextBaseOffset = group_data.BackupCurrentLineTextBaseOffset; + window->DC.ColumnsStartX = group_data.BackupColumnsStartX; + window->DC.LogLinePosY = window->DC.CursorPos.y - 9999.0f; + + if (group_data.AdvanceCursor) + { + window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.PrevLineTextBaseOffset, group_data.BackupCurrentLineTextBaseOffset); // FIXME: Incorrect, we should grab the base offset from the *first line* of the group but it is hard to obtain now. + ItemSize(group_bb.GetSize(), group_data.BackupCurrentLineTextBaseOffset); + ItemAdd(group_bb, NULL); + } + + window->DC.GroupStack.pop_back(); + + //window->DrawList->AddRect(group_bb.Min, group_bb.Max, 0xFFFF00FF); // Debug +} + +// Gets back to previous line and continue with horizontal layout +// pos_x == 0 : follow on previous item +// pos_x != 0 : align to specified column +// spacing_w < 0 : use default spacing if column_x==0, no spacing if column_x!=0 +// spacing_w >= 0 : enforce spacing +void ImGui::SameLine(float pos_x, float spacing_w) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + float x, y; + if (pos_x != 0.0f) + { + if (spacing_w < 0.0f) spacing_w = 0.0f; + x = window->Pos.x + pos_x + spacing_w; + y = window->DC.CursorPosPrevLine.y; + } + else + { + if (spacing_w < 0.0f) spacing_w = g.Style.ItemSpacing.x; + x = window->DC.CursorPosPrevLine.x + spacing_w; + y = window->DC.CursorPosPrevLine.y; + } + window->DC.CurrentLineHeight = window->DC.PrevLineHeight; + window->DC.CurrentLineTextBaseOffset = window->DC.PrevLineTextBaseOffset; + window->DC.CursorPos = ImVec2(x, y); +} + +void ImGui::NextColumn() +{ + ImGuiWindow* window = GetCurrentWindow(); + if (window->SkipItems) + return; + + ImGuiState& g = *GImGui; + if (window->DC.ColumnsCount > 1) + { + ImGui::PopItemWidth(); + PopClipRect(); + + window->DC.ColumnsCellMaxY = ImMax(window->DC.ColumnsCellMaxY, window->DC.CursorPos.y); + if (++window->DC.ColumnsCurrent < window->DC.ColumnsCount) + { + window->DC.ColumnsOffsetX = ImGui::GetColumnOffset(window->DC.ColumnsCurrent) - window->DC.ColumnsStartX + g.Style.ItemSpacing.x; + window->DrawList->ChannelsSetCurrent(window->DC.ColumnsCurrent); + } + else + { + window->DC.ColumnsCurrent = 0; + window->DC.ColumnsOffsetX = 0.0f; + window->DC.ColumnsCellMinY = window->DC.ColumnsCellMaxY; + window->DrawList->ChannelsSetCurrent(0); + } + window->DC.CursorPos.x = (float)(int)(window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX); + window->DC.CursorPos.y = window->DC.ColumnsCellMinY; + window->DC.CurrentLineHeight = 0.0f; + window->DC.CurrentLineTextBaseOffset = 0.0f; + + PushColumnClipRect(); + ImGui::PushItemWidth(ImGui::GetColumnWidth() * 0.65f); // FIXME + } +} + +int ImGui::GetColumnIndex() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.ColumnsCurrent; +} + +int ImGui::GetColumnsCount() +{ + ImGuiWindow* window = GetCurrentWindow(); + return window->DC.ColumnsCount; +} + +static float GetDraggedColumnOffset(int column_index) +{ + // Active (dragged) column always follow mouse. The reason we need this is that dragging a column to the right edge of an auto-resizing + // window creates a feedback loop because we store normalized positions/ So while dragging we enforce absolute positioning + ImGuiState& g = *GImGui; + ImGuiWindow* window = ImGui::GetCurrentWindow(); + IM_ASSERT(column_index > 0); // We cannot drag column 0. If you get this assert you may have a conflict between the ID of your columns and another widgets. + IM_ASSERT(g.ActiveId == window->DC.ColumnsSetID + ImGuiID(column_index)); + + float x = g.IO.MousePos.x + g.ActiveClickDeltaToCenter.x - window->Pos.x; + x = ImClamp(x, ImGui::GetColumnOffset(column_index-1)+g.Style.ColumnsMinSpacing, ImGui::GetColumnOffset(column_index+1)-g.Style.ColumnsMinSpacing); + + return (float)(int)x; +} + +float ImGui::GetColumnOffset(int column_index) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + if (column_index < 0) + column_index = window->DC.ColumnsCurrent; + + if (g.ActiveId) + { + const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); + if (g.ActiveId == column_id) + return GetDraggedColumnOffset(column_index); + } + + // Read from cache + IM_ASSERT(column_index < window->DC.ColumnsOffsetsT.Size); + const float t = window->DC.ColumnsOffsetsT[column_index]; + + const float min_x = window->DC.ColumnsStartX; + const float max_x = window->Size.x - ((window->Flags & ImGuiWindowFlags_NoScrollbar) ? 0 : g.Style.ScrollbarWidth);// - window->WindowPadding().x; + const float x = min_x + t * (max_x - min_x); + return (float)(int)x; +} + +void ImGui::SetColumnOffset(int column_index, float offset) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + if (column_index < 0) + column_index = window->DC.ColumnsCurrent; + + IM_ASSERT(column_index < window->DC.ColumnsOffsetsT.Size); + const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); + + const float min_x = window->DC.ColumnsStartX; + const float max_x = window->Size.x - ((window->Flags & ImGuiWindowFlags_NoScrollbar) ? 0 : g.Style.ScrollbarWidth);// - window->WindowPadding().x; + const float t = (offset - min_x) / (max_x - min_x); + window->DC.StateStorage->SetFloat(column_id, t); + window->DC.ColumnsOffsetsT[column_index] = t; +} + +float ImGui::GetColumnWidth(int column_index) +{ + ImGuiWindow* window = GetCurrentWindow(); + if (column_index < 0) + column_index = window->DC.ColumnsCurrent; + + const float w = GetColumnOffset(column_index+1) - GetColumnOffset(column_index); + return w; +} + +static void PushColumnClipRect(int column_index) +{ + ImGuiWindow* window = ImGui::GetCurrentWindow(); + if (column_index < 0) + column_index = window->DC.ColumnsCurrent; + + const float x1 = window->Pos.x + ImGui::GetColumnOffset(column_index) - 1; + const float x2 = window->Pos.x + ImGui::GetColumnOffset(column_index+1) - 1; + PushClipRect(ImVec4(x1,-FLT_MAX,x2,+FLT_MAX)); +} + +void ImGui::Columns(int columns_count, const char* id, bool border) +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + + if (window->DC.ColumnsCount != 1) + { + if (window->DC.ColumnsCurrent != 0) + ItemSize(ImVec2(0,0)); // Advance to column 0 + ImGui::PopItemWidth(); + PopClipRect(); + window->DrawList->ChannelsMerge(window->DC.ColumnsCount); + + window->DC.ColumnsCellMaxY = ImMax(window->DC.ColumnsCellMaxY, window->DC.CursorPos.y); + window->DC.CursorPos.y = window->DC.ColumnsCellMaxY; + } + + // Draw columns borders and handle resize at the time of "closing" a columns set + if (window->DC.ColumnsCount != columns_count && window->DC.ColumnsCount != 1 && window->DC.ColumnsShowBorders && !window->SkipItems) + { + const float y1 = window->DC.ColumnsStartPos.y; + const float y2 = window->DC.CursorPos.y; + for (int i = 1; i < window->DC.ColumnsCount; i++) + { + float x = window->Pos.x + GetColumnOffset(i); + const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(i); + const ImRect column_rect(ImVec2(x-4,y1),ImVec2(x+4,y2)); + if (IsClippedEx(column_rect, &column_id, false)) + continue; + + bool hovered, held; + ButtonBehavior(column_rect, column_id, &hovered, &held, true); + if (hovered || held) + g.MouseCursor = ImGuiMouseCursor_ResizeEW; + + // Draw before resize so our items positioning are in sync with the line being drawn + const ImU32 col = window->Color(held ? ImGuiCol_ColumnActive : hovered ? ImGuiCol_ColumnHovered : ImGuiCol_Column); + const float xi = (float)(int)x; + window->DrawList->AddLine(ImVec2(xi, y1+1.0f), ImVec2(xi, y2), col); + + if (held) + { + if (g.ActiveIdIsJustActivated) + g.ActiveClickDeltaToCenter.x = x - g.IO.MousePos.x; + + x = GetDraggedColumnOffset(i); + SetColumnOffset(i, x); + } + } + } + + // Set state for first column + ImGui::PushID(0x11223344); // Differentiate column ID with an arbitrary/random prefix for cases where users name their columns set the same as another non-scope widget + window->DC.ColumnsSetID = window->GetID(id ? id : ""); + ImGui::PopID(); + window->DC.ColumnsCurrent = 0; + window->DC.ColumnsCount = columns_count; + window->DC.ColumnsShowBorders = border; + window->DC.ColumnsStartPos = window->DC.CursorPos; + window->DC.ColumnsCellMinY = window->DC.ColumnsCellMaxY = window->DC.CursorPos.y; + window->DC.ColumnsOffsetX = 0.0f; + window->DC.CursorPos.x = (float)(int)(window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX); + + if (window->DC.ColumnsCount != 1) + { + // Cache column offsets + window->DC.ColumnsOffsetsT.resize(columns_count + 1); + for (int column_index = 0; column_index < columns_count + 1; column_index++) + { + const ImGuiID column_id = window->DC.ColumnsSetID + ImGuiID(column_index); + KeepAliveID(column_id); + const float default_t = column_index / (float)window->DC.ColumnsCount; + const float t = window->DC.StateStorage->GetFloat(column_id, default_t); // Cheaply store our floating point value inside the integer (could store an union into the map?) + window->DC.ColumnsOffsetsT[column_index] = t; + } + window->DrawList->ChannelsSplit(window->DC.ColumnsCount); + PushColumnClipRect(); + ImGui::PushItemWidth(ImGui::GetColumnWidth() * 0.65f); + } + else + { + window->DC.ColumnsOffsetsT.resize(2); + window->DC.ColumnsOffsetsT[0] = 0.0f; + window->DC.ColumnsOffsetsT[1] = 1.0f; + } +} + +void ImGui::Indent() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ColumnsStartX += g.Style.IndentSpacing; + window->DC.CursorPos.x = window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX; +} + +void ImGui::Unindent() +{ + ImGuiState& g = *GImGui; + ImGuiWindow* window = GetCurrentWindow(); + window->DC.ColumnsStartX -= g.Style.IndentSpacing; + window->DC.CursorPos.x = window->Pos.x + window->DC.ColumnsStartX + window->DC.ColumnsOffsetX; +} + +void ImGui::TreePush(const char* str_id) +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGui::Indent(); + window->DC.TreeDepth++; + PushID(str_id ? str_id : "#TreePush"); +} + +void ImGui::TreePush(const void* ptr_id) +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGui::Indent(); + window->DC.TreeDepth++; + PushID(ptr_id ? ptr_id : (const void*)"#TreePush"); +} + +void ImGui::TreePop() +{ + ImGuiWindow* window = GetCurrentWindow(); + ImGui::Unindent(); + window->DC.TreeDepth--; + PopID(); +} + +void ImGui::Value(const char* prefix, bool b) +{ + ImGui::Text("%s: %s", prefix, (b ? "true" : "false")); +} + +void ImGui::Value(const char* prefix, int v) +{ + ImGui::Text("%s: %d", prefix, v); +} + +void ImGui::Value(const char* prefix, unsigned int v) +{ + ImGui::Text("%s: %d", prefix, v); +} + +void ImGui::Value(const char* prefix, float v, const char* float_format) +{ + if (float_format) + { + char fmt[64]; + ImFormatString(fmt, IM_ARRAYSIZE(fmt), "%%s: %s", float_format); + ImGui::Text(fmt, prefix, v); + } + else + { + ImGui::Text("%s: %.3f", prefix, v); + } +} + +void ImGui::Color(const char* prefix, const ImVec4& v) +{ + ImGui::Text("%s: (%.2f,%.2f,%.2f,%.2f)", prefix, v.x, v.y, v.z, v.w); + ImGui::SameLine(); + ImGui::ColorButton(v, true); +} + +void ImGui::Color(const char* prefix, unsigned int v) +{ + ImGui::Text("%s: %08X", prefix, v); + ImGui::SameLine(); + + ImVec4 col; + col.x = (float)((v >> 0) & 0xFF) / 255.0f; + col.y = (float)((v >> 8) & 0xFF) / 255.0f; + col.z = (float)((v >> 16) & 0xFF) / 255.0f; + col.w = (float)((v >> 24) & 0xFF) / 255.0f; + ImGui::ColorButton(col, true); +} + +//----------------------------------------------------------------------------- +// PLATFORM DEPENDANT HELPERS +//----------------------------------------------------------------------------- + +#if defined(_MSC_VER) && !defined(IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS) + +#ifndef _WINDOWS_ +#define WIN32_LEAN_AND_MEAN +#include +#endif +#pragma comment(lib, "user32") + +// Win32 API clipboard implementation +static const char* GetClipboardTextFn_DefaultImpl() +{ + static char* buf_local = NULL; + if (buf_local) + { + ImGui::MemFree(buf_local); + buf_local = NULL; + } + if (!OpenClipboard(NULL)) + return NULL; + HANDLE wbuf_handle = GetClipboardData(CF_UNICODETEXT); + if (wbuf_handle == NULL) + return NULL; + if (ImWchar* wbuf_global = (ImWchar*)GlobalLock(wbuf_handle)) + { + int buf_len = ImTextCountUtf8BytesFromStr(wbuf_global, NULL) + 1; + buf_local = (char*)ImGui::MemAlloc(buf_len * sizeof(char)); + ImTextStrToUtf8(buf_local, buf_len, wbuf_global, NULL); + } + GlobalUnlock(wbuf_handle); + CloseClipboard(); + return buf_local; +} + +// Win32 API clipboard implementation +static void SetClipboardTextFn_DefaultImpl(const char* text) +{ + if (!OpenClipboard(NULL)) + return; + + const int wbuf_length = ImTextCountCharsFromUtf8(text, NULL) + 1; + HGLOBAL wbuf_handle = GlobalAlloc(GMEM_MOVEABLE, (SIZE_T)wbuf_length * sizeof(ImWchar)); + if (wbuf_handle == NULL) + return; + ImWchar* wbuf_global = (ImWchar*)GlobalLock(wbuf_handle); + ImTextStrFromUtf8(wbuf_global, wbuf_length, text, NULL); + GlobalUnlock(wbuf_handle); + EmptyClipboard(); + SetClipboardData(CF_UNICODETEXT, wbuf_handle); + CloseClipboard(); +} + +#else + +// Local ImGui-only clipboard implementation, if user hasn't defined better clipboard handlers +static const char* GetClipboardTextFn_DefaultImpl() +{ + return GImGui->PrivateClipboard; +} + +// Local ImGui-only clipboard implementation, if user hasn't defined better clipboard handlers +static void SetClipboardTextFn_DefaultImpl(const char* text) +{ + ImGuiState& g = *GImGui; + if (g.PrivateClipboard) + { + ImGui::MemFree(g.PrivateClipboard); + g.PrivateClipboard = NULL; + } + const char* text_end = text + strlen(text); + g.PrivateClipboard = (char*)ImGui::MemAlloc((size_t)(text_end - text) + 1); + memcpy(g.PrivateClipboard, text, (size_t)(text_end - text)); + g.PrivateClipboard[(int)(text_end - text)] = 0; +} + +#endif + +#if defined(_MSC_VER) && !defined(IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS) + +#ifndef _WINDOWS_ +#define WIN32_LEAN_AND_MEAN +#include +#endif +#include +#pragma comment(lib, "imm32") + +static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y) +{ + // Notify OS Input Method Editor of text input position + if (HWND hwnd = (HWND)GImGui->IO.ImeWindowHandle) + if (HIMC himc = ImmGetContext(hwnd)) + { + COMPOSITIONFORM cf; + cf.ptCurrentPos.x = x; + cf.ptCurrentPos.y = y; + cf.dwStyle = CFS_FORCE_POSITION; + ImmSetCompositionWindow(himc, &cf); + } +} + +#else + +static void ImeSetInputScreenPosFn_DefaultImpl(int, int) {} + +#endif + +//----------------------------------------------------------------------------- +// HELP +//----------------------------------------------------------------------------- + +void ImGui::ShowMetricsWindow(bool* opened) +{ + if (ImGui::Begin("ImGui Metrics", opened)) + { + ImGui::Text("ImGui %s", ImGui::GetVersion()); + ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate); + ImGui::Text("%d vertices, %d triangles", ImGui::GetIO().MetricsRenderVertices, ImGui::GetIO().MetricsRenderIndices / 3); + ImGui::Text("%d allocations", ImGui::GetIO().MetricsAllocs); + static bool show_clip_rects = true; + ImGui::Checkbox("Show clipping rectangles when hovering ImDrawList", &show_clip_rects); + ImGui::Separator(); + + struct Funcs + { + static void NodeDrawList(ImDrawList* draw_list, const char* label) + { + bool node_opened = ImGui::TreeNode(draw_list, "%s: '%s' %d vtx, %d indices, %d cmds", label, draw_list->_OwnerName ? draw_list->_OwnerName : "", draw_list->VtxBuffer.Size, draw_list->IdxBuffer.Size, draw_list->CmdBuffer.Size); + if (draw_list == ImGui::GetWindowDrawList()) + { + ImGui::SameLine(); + ImGui::TextColored(ImColor(255,100,100), "CURRENTLY APPENDING"); // Can't display stats for active draw list! (we don't have the data double-buffered) + } + if (!node_opened) + return; + + int elem_offset = 0; + for (const ImDrawCmd* pcmd = draw_list->CmdBuffer.begin(); pcmd < draw_list->CmdBuffer.end(); elem_offset += pcmd->ElemCount, pcmd++) + { + if (pcmd->UserCallback) + ImGui::BulletText("Callback %p, user_data %p", pcmd->UserCallback, pcmd->UserCallbackData); + else + { + ImGui::BulletText("Draw %d indexed vtx, tex = %p, clip_rect = (%.0f,%.0f)..(%.0f,%.0f)", pcmd->ElemCount, pcmd->TextureId, pcmd->ClipRect.x, pcmd->ClipRect.y, pcmd->ClipRect.z, pcmd->ClipRect.w); + if (show_clip_rects && ImGui::IsItemHovered()) + { + ImRect clip_rect = pcmd->ClipRect; + ImRect vtxs_rect; + for (int i = elem_offset; i < elem_offset + (int)pcmd->ElemCount; i++) + vtxs_rect.Add(draw_list->VtxBuffer[draw_list->IdxBuffer[i]].pos); + GImGui->OverlayDrawList.PushClipRectFullScreen(); + clip_rect.Round(); GImGui->OverlayDrawList.AddRect(clip_rect.Min, clip_rect.Max, ImColor(255,255,0)); + vtxs_rect.Round(); GImGui->OverlayDrawList.AddRect(vtxs_rect.Min, vtxs_rect.Max, ImColor(255,0,255)); + GImGui->OverlayDrawList.PopClipRect(); + } + } + } + ImGui::TreePop(); + } + + static void NodeWindows(ImVector& windows, const char* label) + { + if (!ImGui::TreeNode(label, "%s (%d)", label, windows.Size)) + return; + for (int i = 0; i < windows.Size; i++) + Funcs::NodeWindow(windows[i], "Window"); + ImGui::TreePop(); + } + + static void NodeWindow(ImGuiWindow* window, const char* label) + { + if (!ImGui::TreeNode(window, "%s '%s', %d @ 0x%p", label, window->Name, window->Active || window->WasActive, window)) + return; + NodeDrawList(window->DrawList, "DrawList"); + if (window->RootWindow != window) NodeWindow(window->RootWindow, "RootWindow"); + if (window->DC.ChildWindows.Size > 0) NodeWindows(window->DC.ChildWindows, "ChildWindows"); + ImGui::BulletText("Storage: %d bytes", window->StateStorage.Data.Size * sizeof(ImGuiStorage::Pair)); + ImGui::TreePop(); + } + }; + + ImGuiState& g = *GImGui; // Access private state + g.DisableHideTextAfterDoubleHash++; // Not exposed (yet). Disable processing that hides text after '##' markers. + Funcs::NodeWindows(g.Windows, "Windows"); + if (ImGui::TreeNode("DrawList", "Active DrawLists (%d)", g.RenderDrawLists[0].Size)) + { + for (int i = 0; i < g.RenderDrawLists[0].Size; i++) + Funcs::NodeDrawList(g.RenderDrawLists[0][i], "DrawList"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Popups", "Opened Popups Stack (%d)", g.OpenedPopupStack.Size)) + { + for (int i = 0; i < g.OpenedPopupStack.Size; i++) + { + ImGuiWindow* window = g.OpenedPopupStack[i].Window; + ImGui::BulletText("PopupID: %08x, Window: '%s'%s%s", g.OpenedPopupStack[i].PopupID, window ? window->Name : "NULL", window && (window->Flags & ImGuiWindowFlags_ChildWindow) ? " ChildWindow" : "", window && (window->Flags & ImGuiWindowFlags_ChildMenu) ? " ChildMenu" : ""); + } + ImGui::TreePop(); + } + g.DisableHideTextAfterDoubleHash--; + } + ImGui::End(); +} + +//----------------------------------------------------------------------------- + +//---- Include imgui_user.inl at the end of imgui.cpp +//---- So you can include code that extends ImGui using its private data/functions. +#ifdef IMGUI_INCLUDE_IMGUI_USER_INL +#include "imgui_user.inl" +#endif + +//----------------------------------------------------------------------------- diff --git a/samples/dual_layer/D3D12/src/imgui/imgui.h b/samples/dual_layer/D3D12/src/imgui/imgui.h new file mode 100644 index 0000000..f958c85 --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/imgui.h @@ -0,0 +1,1250 @@ +// ImGui library v1.44 +// Headers + +// See imgui.cpp file for documentation. +// See ImGui::ShowTestWindow() in imgui_demo.cpp for demo code. +// Read 'Programmer guide' in .cpp for notes on how to setup ImGui in your codebase. +// Get latest version at https://github.com/ocornut/imgui + +#pragma once + +#if !defined(IMGUI_DISABLE_INCLUDE_IMCONFIG_H) || defined(IMGUI_INCLUDE_IMCONFIG_H) +#include "imconfig.h" // User-editable configuration file +#endif +#include // FLT_MAX +#include // va_list +#include // ptrdiff_t, NULL +#include // NULL, malloc, free, qsort, atoi +#include // memset, memmove, memcpy, strlen, strchr, strcpy, strcmp + +#define IMGUI_VERSION "1.44" + +// Define assertion handler. +#ifndef IM_ASSERT +#include +#define IM_ASSERT(_EXPR) assert(_EXPR) +#endif + +// Define attributes of all API symbols declarations, e.g. for DLL under Windows. +#ifndef IMGUI_API +#define IMGUI_API +#endif + +// Forward declarations +struct ImDrawCmd; +struct ImDrawList; +struct ImDrawData; +struct ImFont; +struct ImFontAtlas; +struct ImGuiIO; +struct ImGuiStorage; +struct ImGuiStyle; + +typedef unsigned int ImU32; +typedef unsigned short ImWchar; // character for keyboard input/display +typedef void* ImTextureID; // user data to refer to a texture (e.g. store your texture handle/id) +typedef ImU32 ImGuiID; // unique ID used by widgets (typically hashed from a stack of string) +typedef int ImGuiCol; // enum ImGuiCol_ +typedef int ImGuiStyleVar; // enum ImGuiStyleVar_ +typedef int ImGuiKey; // enum ImGuiKey_ +typedef int ImGuiAlign; // enum ImGuiAlign_ +typedef int ImGuiColorEditMode; // enum ImGuiColorEditMode_ +typedef int ImGuiMouseCursor; // enum ImGuiMouseCursor_ +typedef int ImGuiWindowFlags; // enum ImGuiWindowFlags_ +typedef int ImGuiSetCond; // enum ImGuiSetCond_ +typedef int ImGuiInputTextFlags; // enum ImGuiInputTextFlags_ +typedef int ImGuiSelectableFlags; // enum ImGuiSelectableFlags_ +struct ImGuiTextEditCallbackData; // for advanced uses of InputText() +typedef int (*ImGuiTextEditCallback)(ImGuiTextEditCallbackData *data); + +struct ImVec2 +{ + float x, y; + ImVec2() { x = y = 0.0f; } + ImVec2(float _x, float _y) { x = _x; y = _y; } + +#ifdef IM_VEC2_CLASS_EXTRA // Define constructor and implicit cast operators in imconfig.h to convert back<>forth from your math types and ImVec2. + IM_VEC2_CLASS_EXTRA +#endif +}; + +struct ImVec4 +{ + float x, y, z, w; + ImVec4() { x = y = z = w = 0.0f; } + ImVec4(float _x, float _y, float _z, float _w) { x = _x; y = _y; z = _z; w = _w; } + +#ifdef IM_VEC4_CLASS_EXTRA // Define constructor and implicit cast operators in imconfig.h to convert back<>forth from your math types and ImVec4. + IM_VEC4_CLASS_EXTRA +#endif +}; + +// Helpers at bottom of the file: +// - class ImVector<> // Lightweight std::vector like class. +// - IMGUI_ONCE_UPON_A_FRAME // Execute a block of code once per frame only (convenient for creating UI within deep-nested code that runs multiple times) +// - struct ImGuiTextFilter // Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" +// - struct ImGuiTextBuffer // Text buffer for logging/accumulating text +// - struct ImGuiStorage // Custom key value storage (if you need to alter open/close states manually) +// - struct ImGuiTextEditCallbackData // Shared state of ImGui::InputText() when using custom callbacks +// - struct ImGuiListClipper // Helper to manually clip large list of items. +// - struct ImColor // Helper functions to created packed 32-bit RGBA color values +// - struct ImDrawList // Draw command list +// - struct ImFontAtlas // Bake multiple fonts into a single texture, TTF font loader, bake glyphs into bitmap +// - struct ImFont // Single font + +// ImGui end-user API +// In a namespace so that user can add extra functions in a separate file (e.g. Value() helpers for your vector or common types) +namespace ImGui +{ + // Main + IMGUI_API ImGuiIO& GetIO(); + IMGUI_API ImGuiStyle& GetStyle(); + IMGUI_API void NewFrame(); + IMGUI_API void Render(); + IMGUI_API void Shutdown(); + IMGUI_API void ShowUserGuide(); // help block + IMGUI_API void ShowStyleEditor(ImGuiStyle* ref = NULL); // style editor block + IMGUI_API void ShowTestWindow(bool* opened = NULL); // test window, demonstrate ImGui features + IMGUI_API void ShowMetricsWindow(bool* opened = NULL); // metrics window for debugging imgui + + // Window + IMGUI_API bool Begin(const char* name = "Debug", bool* p_opened = NULL, ImGuiWindowFlags flags = 0); // see .cpp for details. return false when window is collapsed, so you can early out in your code. 'bool* p_opened' creates a widget on the upper-right to close the window (which sets your bool to false). + IMGUI_API bool Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_use, float bg_alpha = -1.0f, ImGuiWindowFlags flags = 0); // this is the older/longer API. call SetNextWindowSize() instead if you want to set a window size. For regular windows, 'size_on_first_use' only applies to the first time EVER the window is created and probably not what you want! maybe obsolete this API eventually. + IMGUI_API void End(); + IMGUI_API bool BeginChild(const char* str_id, const ImVec2& size = ImVec2(0,0), bool border = false, ImGuiWindowFlags extra_flags = 0); // begin a scrolling region. size==0.0f: use remaining window size, size<0.0f: use remaining window size minus abs(size). size>0.0f: fixed size. each axis can use a different mode, e.g. ImVec2(0,400). + IMGUI_API bool BeginChild(ImGuiID id, const ImVec2& size = ImVec2(0,0), bool border = false, ImGuiWindowFlags extra_flags = 0); // " + IMGUI_API void EndChild(); + IMGUI_API ImVec2 GetContentRegionMax(); // window or current column boundaries, in windows coordinates + IMGUI_API ImVec2 GetContentRegionAvail(); // == GetContentRegionMax() - GetCursorPos() + IMGUI_API ImVec2 GetWindowContentRegionMin(); // window boundaries, in windows coordinates + IMGUI_API ImVec2 GetWindowContentRegionMax(); + IMGUI_API ImDrawList* GetWindowDrawList(); // get rendering command-list if you want to append your own draw primitives + IMGUI_API ImFont* GetWindowFont(); + IMGUI_API float GetWindowFontSize(); // size (also height in pixels) of current font with current scale applied + IMGUI_API void SetWindowFontScale(float scale); // per-window font scale. Adjust IO.FontGlobalScale if you want to scale all windows + IMGUI_API ImVec2 GetWindowPos(); // get current window position in screen space (useful if you want to do your own drawing via the DrawList api) + IMGUI_API ImVec2 GetWindowSize(); // get current window size + IMGUI_API float GetWindowWidth(); + IMGUI_API bool IsWindowCollapsed(); + + IMGUI_API void SetNextWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0); // set next window position. call before Begin() + IMGUI_API void SetNextWindowPosCenter(ImGuiSetCond cond = 0); // set next window position to be centered on screen. call before Begin() + IMGUI_API void SetNextWindowSize(const ImVec2& size, ImGuiSetCond cond = 0); // set next window size. set to ImVec2(0,0) to force an auto-fit. call before Begin() + IMGUI_API void SetNextWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0); // set next window collapsed state. call before Begin() + IMGUI_API void SetNextWindowFocus(); // set next window to be focused / front-most. call before Begin() + IMGUI_API void SetWindowPos(const ImVec2& pos, ImGuiSetCond cond = 0); // set current window position - call within Begin()/End(). may incur tearing + IMGUI_API void SetWindowSize(const ImVec2& size, ImGuiSetCond cond = 0); // set current window size. set to ImVec2(0,0) to force an auto-fit. may incur tearing + IMGUI_API void SetWindowCollapsed(bool collapsed, ImGuiSetCond cond = 0); // set current window collapsed state + IMGUI_API void SetWindowFocus(); // set current window to be focused / front-most + IMGUI_API void SetWindowPos(const char* name, const ImVec2& pos, ImGuiSetCond cond = 0); // set named window position - call within Begin()/End(). may incur tearing + IMGUI_API void SetWindowSize(const char* name, const ImVec2& size, ImGuiSetCond cond = 0); // set named window size. set to ImVec2(0,0) to force an auto-fit. may incur tearing + IMGUI_API void SetWindowCollapsed(const char* name, bool collapsed, ImGuiSetCond cond = 0); // set named window collapsed state + IMGUI_API void SetWindowFocus(const char* name); // set named window to be focused / front-most. use NULL to remove focus. + + IMGUI_API float GetScrollY(); // get scrolling amount [0..GetScrollMaxY()] + IMGUI_API float GetScrollMaxY(); // get maximum scrolling amount == ContentSize.Y - WindowSize.Y + IMGUI_API void SetScrollY(float scroll_y); // set scrolling amount [0..GetScrollMaxY()] + IMGUI_API void SetScrollHere(float center_y_ratio = 0.5f); // adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. + IMGUI_API void SetScrollFromPosY(float pos_y, float center_y_ratio = 0.5f); // adjust scrolling amount to make given position valid. use GetCursorPos() or GetCursorStartPos()+offset to get valid positions. + IMGUI_API void SetKeyboardFocusHere(int offset = 0); // focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget + IMGUI_API void SetStateStorage(ImGuiStorage* tree); // replace tree state storage with our own (if you want to manipulate it yourself, typically clear subsection of it) + IMGUI_API ImGuiStorage* GetStateStorage(); + + // Parameters stacks (shared) + IMGUI_API void PushFont(ImFont* font); // use NULL as a shortcut to push default font + IMGUI_API void PopFont(); + IMGUI_API void PushStyleColor(ImGuiCol idx, const ImVec4& col); + IMGUI_API void PopStyleColor(int count = 1); + IMGUI_API void PushStyleVar(ImGuiStyleVar idx, float val); + IMGUI_API void PushStyleVar(ImGuiStyleVar idx, const ImVec2& val); + IMGUI_API void PopStyleVar(int count = 1); + + // Parameters stacks (current window) + IMGUI_API void PushItemWidth(float item_width); // width of items for the common item+label case, pixels. 0.0f = default to ~2/3 of windows width, >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -1.0f always align width to the right side) + IMGUI_API void PopItemWidth(); + IMGUI_API float CalcItemWidth(); // width of item given pushed settings and current cursor position + IMGUI_API void PushAllowKeyboardFocus(bool v); // allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets + IMGUI_API void PopAllowKeyboardFocus(); + IMGUI_API void PushTextWrapPos(float wrap_pos_x = 0.0f); // word-wrapping for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrap_pos_x' position in window local space + IMGUI_API void PopTextWrapPos(); + IMGUI_API void PushButtonRepeat(bool repeat); // in 'repeat' mode, Button*() functions return true multiple times as you hold them (uses io.KeyRepeatDelay/io.KeyRepeatRate for now) + IMGUI_API void PopButtonRepeat(); + + // Cursor / Layout + IMGUI_API void BeginGroup(); // once closing a group it is seen as a single item (so you can use IsItemHovered() on a group, SameLine() between groups, etc. + IMGUI_API void EndGroup(); + IMGUI_API void Separator(); // horizontal line + IMGUI_API void SameLine(float pos_x = 0.0f, float spacing_w = -1.0f); // call between widgets or groups to layout them horizontally + IMGUI_API void Spacing(); // add spacing + IMGUI_API void Dummy(const ImVec2& size); // add a dummy item of given size + IMGUI_API void Indent(); // move content position toward the right by style.IndentSpacing pixels + IMGUI_API void Unindent(); // move content position back to the left (cancel Indent) + IMGUI_API void Columns(int count = 1, const char* id = NULL, bool border=true); // setup number of columns. use an identifier to distinguish multiple column sets. close with Columns(1). + IMGUI_API void NextColumn(); // next column + IMGUI_API int GetColumnIndex(); // get current column index + IMGUI_API float GetColumnOffset(int column_index = -1); // get position of column line (in pixels, from the left side of the contents region). pass -1 to use current column, otherwise 0..GetcolumnsCount() inclusive. column 0 is usually 0.0f and not resizable unless you call this + IMGUI_API void SetColumnOffset(int column_index, float offset_x); // set position of column line (in pixels, from the left side of the contents region). pass -1 to use current column + IMGUI_API float GetColumnWidth(int column_index = -1); // column width (== GetColumnOffset(GetColumnIndex()+1) - GetColumnOffset(GetColumnOffset()) + IMGUI_API int GetColumnsCount(); // number of columns (what was passed to Columns()) + IMGUI_API ImVec2 GetCursorPos(); // cursor position is relative to window position + IMGUI_API float GetCursorPosX(); // " + IMGUI_API float GetCursorPosY(); // " + IMGUI_API void SetCursorPos(const ImVec2& pos); // " + IMGUI_API void SetCursorPosX(float x); // " + IMGUI_API void SetCursorPosY(float y); // " + IMGUI_API ImVec2 GetCursorStartPos(); // initial cursor position + IMGUI_API ImVec2 GetCursorScreenPos(); // cursor position in absolute screen coordinates [0..io.DisplaySize] + IMGUI_API void SetCursorScreenPos(const ImVec2& pos); // cursor position in absolute screen coordinates [0..io.DisplaySize] + IMGUI_API void AlignFirstTextHeightToWidgets(); // call once if the first item on the line is a Text() item and you want to vertically lower it to match subsequent (bigger) widgets + IMGUI_API float GetTextLineHeight(); // height of font == GetWindowFontSize() + IMGUI_API float GetTextLineHeightWithSpacing(); // distance (in pixels) between 2 consecutive lines of text == GetWindowFontSize() + GetStyle().ItemSpacing.y + IMGUI_API float GetItemsLineHeightWithSpacing(); // distance (in pixels) between 2 consecutive lines of standard height widgets == GetWindowFontSize() + GetStyle().FramePadding.y*2 + GetStyle().ItemSpacing.y + + // ID scopes + // If you are creating widgets in a loop you most likely want to push a unique identifier so ImGui can differentiate them. + // You can also use "##extra" within your widget name to distinguish them from each others. Read the FAQ for more details. + IMGUI_API void PushID(const char* str_id); // push identifier into the ID stack. IDs are hash of the *entire* stack! + IMGUI_API void PushID(const char* str_id_begin, const char* str_id_end); + IMGUI_API void PushID(const void* ptr_id); + IMGUI_API void PushID(int int_id); + IMGUI_API void PopID(); + IMGUI_API ImGuiID GetID(const char* str_id); // calculate unique ID (hash of whole ID stack + given parameter). useful if you want to query into ImGuiStorage yourself. otherwise rarely needed + IMGUI_API ImGuiID GetID(const char* str_id_begin, const char* str_id_end); + IMGUI_API ImGuiID GetID(const void* ptr_id); + + // Widgets + IMGUI_API void Text(const char* fmt, ...); + IMGUI_API void TextV(const char* fmt, va_list args); + IMGUI_API void TextColored(const ImVec4& col, const char* fmt, ...); // shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor(); + IMGUI_API void TextColoredV(const ImVec4& col, const char* fmt, va_list args); + IMGUI_API void TextDisabled(const char* fmt, ...); // shortcut for PushStyleColor(ImGuiCol_Text, style.Colors[ImGuiCol_TextDisabled]); Text(fmt, ...); PopStyleColor(); + IMGUI_API void TextDisabledV(const char* fmt, va_list args); + IMGUI_API void TextWrapped(const char* fmt, ...); // shortcut for PushTextWrapPos(0.0f); Text(fmt, ...); PopTextWrapPos();. Note that this won't work on an auto-resizing window if there's no other widgets to extend the window width, yoy may need to set a size using SetNextWindowSize(). + IMGUI_API void TextWrappedV(const char* fmt, va_list args); + IMGUI_API void TextUnformatted(const char* text, const char* text_end = NULL); // doesn't require null terminated string if 'text_end' is specified. no copy done to any bounded stack buffer, recommended for long chunks of text + IMGUI_API void LabelText(const char* label, const char* fmt, ...); // display text+label aligned the same way as value+label widgets + IMGUI_API void LabelTextV(const char* label, const char* fmt, va_list args); + IMGUI_API void Bullet(); + IMGUI_API void BulletText(const char* fmt, ...); + IMGUI_API void BulletTextV(const char* fmt, va_list args); + IMGUI_API bool Button(const char* label, const ImVec2& size = ImVec2(0,0)); + IMGUI_API bool SmallButton(const char* label); + IMGUI_API bool InvisibleButton(const char* str_id, const ImVec2& size); + IMGUI_API void Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0 = ImVec2(0,0), const ImVec2& uv1 = ImVec2(1,1), const ImVec4& tint_col = ImVec4(1,1,1,1), const ImVec4& border_col = ImVec4(0,0,0,0)); + IMGUI_API bool ImageButton(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0 = ImVec2(0,0), const ImVec2& uv1 = ImVec2(1,1), int frame_padding = -1, const ImVec4& bg_col = ImVec4(0,0,0,0), const ImVec4& tint_col = ImVec4(1,1,1,1)); // <0 frame_padding uses default frame padding settings. 0 for no padding + IMGUI_API bool CollapsingHeader(const char* label, const char* str_id = NULL, bool display_frame = true, bool default_open = false); + IMGUI_API bool Checkbox(const char* label, bool* v); + IMGUI_API bool CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value); + IMGUI_API bool RadioButton(const char* label, bool active); + IMGUI_API bool RadioButton(const char* label, int* v, int v_button); + IMGUI_API bool Combo(const char* label, int* current_item, const char** items, int items_count, int height_in_items = -1); + IMGUI_API bool Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items = -1); // separate items with \0, end item-list with \0\0 + IMGUI_API bool Combo(const char* label, int* current_item, bool (*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int height_in_items = -1); + IMGUI_API bool ColorButton(const ImVec4& col, bool small_height = false, bool outline_border = true); + IMGUI_API bool ColorEdit3(const char* label, float col[3]); + IMGUI_API bool ColorEdit4(const char* label, float col[4], bool show_alpha = true); + IMGUI_API void ColorEditMode(ImGuiColorEditMode mode); + IMGUI_API void PlotLines(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0), int stride = sizeof(float)); + IMGUI_API void PlotLines(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0)); + IMGUI_API void PlotHistogram(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0), int stride = sizeof(float)); + IMGUI_API void PlotHistogram(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0,0)); + + // Widgets: Drags (tip: ctrl+click on a drag box to input text) + IMGUI_API bool DragFloat(const char* label, float* v, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); // If v_min >= v_max we have no bound + IMGUI_API bool DragFloat2(const char* label, float v[2], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool DragFloat3(const char* label, float v[3], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool DragFloat4(const char* label, float v[4], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool DragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* display_format = "%.3f", const char* display_format_max = NULL, float power = 1.0f); + IMGUI_API bool DragInt(const char* label, int* v, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); // If v_min >= v_max we have no bound + IMGUI_API bool DragInt2(const char* label, int v[2], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); + IMGUI_API bool DragInt3(const char* label, int v[3], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); + IMGUI_API bool DragInt4(const char* label, int v[4], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f"); + IMGUI_API bool DragIntRange2(const char* label, int* v_current_min, int* v_current_max, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* display_format = "%.0f", const char* display_format_max = NULL); + + // Widgets: Input + IMGUI_API bool InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags = 0, ImGuiTextEditCallback callback = NULL, void* user_data = NULL); + IMGUI_API bool InputTextMultiline(const char* label, char* buf, size_t buf_size, const ImVec2& size = ImVec2(0,0), ImGuiInputTextFlags flags = 0, ImGuiTextEditCallback callback = NULL, void* user_data = NULL); + IMGUI_API bool InputFloat(const char* label, float* v, float step = 0.0f, float step_fast = 0.0f, int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputFloat2(const char* label, float v[2], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputFloat3(const char* label, float v[3], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputFloat4(const char* label, float v[4], int decimal_precision = -1, ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputInt(const char* label, int* v, int step = 1, int step_fast = 100, ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputInt2(const char* label, int v[2], ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputInt3(const char* label, int v[3], ImGuiInputTextFlags extra_flags = 0); + IMGUI_API bool InputInt4(const char* label, int v[4], ImGuiInputTextFlags extra_flags = 0); + + // Widgets: Sliders (tip: ctrl+click on a slider to input text) + IMGUI_API bool SliderFloat(const char* label, float* v, float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); // adjust display_format to decorate the value with a prefix or a suffix. Use power!=1.0 for logarithmic sliders + IMGUI_API bool SliderFloat2(const char* label, float v[2], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool SliderAngle(const char* label, float* v_rad, float v_degrees_min = -360.0f, float v_degrees_max = +360.0f); + IMGUI_API bool SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format = "%.0f"); + IMGUI_API bool SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* display_format = "%.0f"); + IMGUI_API bool SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* display_format = "%.0f"); + IMGUI_API bool SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* display_format = "%.0f"); + IMGUI_API bool VSliderFloat(const char* label, const ImVec2& size, float* v, float v_min, float v_max, const char* display_format = "%.3f", float power = 1.0f); + IMGUI_API bool VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* display_format = "%.0f"); + + // Widgets: Trees + IMGUI_API bool TreeNode(const char* str_label_id); // if returning 'true' the node is open and the user is responsible for calling TreePop + IMGUI_API bool TreeNode(const char* str_id, const char* fmt, ...); // " + IMGUI_API bool TreeNode(const void* ptr_id, const char* fmt, ...); // " + IMGUI_API bool TreeNodeV(const char* str_id, const char* fmt, va_list args); // " + IMGUI_API bool TreeNodeV(const void* ptr_id, const char* fmt, va_list args); // " + IMGUI_API void TreePush(const char* str_id = NULL); // already called by TreeNode(), but you can call Push/Pop yourself for layouting purpose + IMGUI_API void TreePush(const void* ptr_id = NULL); // " + IMGUI_API void TreePop(); + IMGUI_API void SetNextTreeNodeOpened(bool opened, ImGuiSetCond cond = 0); // set next tree node to be opened. + + // Widgets: Selectable / Lists + IMGUI_API bool Selectable(const char* label, bool selected = false, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0,0)); // size.x==0.0: use remaining width, size.x>0.0: specify width. size.y==0.0: use label height, size.y>0.0: specify height + IMGUI_API bool Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0,0)); + IMGUI_API bool ListBox(const char* label, int* current_item, const char** items, int items_count, int height_in_items = -1); + IMGUI_API bool ListBox(const char* label, int* current_item, bool (*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int height_in_items = -1); + IMGUI_API bool ListBoxHeader(const char* label, const ImVec2& size = ImVec2(0,0)); // use if you want to reimplement ListBox() will custom data or interactions. make sure to call ListBoxFooter() afterwards. + IMGUI_API bool ListBoxHeader(const char* label, int items_count, int height_in_items = -1); // " + IMGUI_API void ListBoxFooter(); // terminate the scrolling region + + // Widgets: Value() Helpers. Output single value in "name: value" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace) + IMGUI_API void Value(const char* prefix, bool b); + IMGUI_API void Value(const char* prefix, int v); + IMGUI_API void Value(const char* prefix, unsigned int v); + IMGUI_API void Value(const char* prefix, float v, const char* float_format = NULL); + IMGUI_API void Color(const char* prefix, const ImVec4& v); + IMGUI_API void Color(const char* prefix, unsigned int v); + + // Tooltip + IMGUI_API void SetTooltip(const char* fmt, ...); // set tooltip under mouse-cursor, typically use with ImGui::IsHovered(). last call wins + IMGUI_API void SetTooltipV(const char* fmt, va_list args); + IMGUI_API void BeginTooltip(); // use to create full-featured tooltip windows that aren't just text + IMGUI_API void EndTooltip(); + + // Menus + IMGUI_API bool BeginMainMenuBar(); // create and append to a full screen menu-bar. only call EndMainMenuBar() if this returns true! + IMGUI_API void EndMainMenuBar(); + IMGUI_API bool BeginMenuBar(); // append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set). only call EndMenuBar() if this returns true! + IMGUI_API void EndMenuBar(); + IMGUI_API bool BeginMenu(const char* label, bool enabled = true); // create a sub-menu entry. only call EndMenu() if this returns true! + IMGUI_API void EndMenu(); + IMGUI_API bool MenuItem(const char* label, const char* shortcut = NULL, bool selected = false, bool enabled = true); // return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment + IMGUI_API bool MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled = true); // return true when activated + toggle (*p_selected) if p_selected != NULL + + // Popup + IMGUI_API void OpenPopup(const char* str_id); // mark popup as open. popup identifiers are relative to the current ID-stack (so OpenPopup and BeginPopup needs to be at the same level). close childs popups if any. will close popup when user click outside, or activate a pressable item, or CloseCurrentPopup() is called within a BeginPopup()/EndPopup() block. + IMGUI_API bool BeginPopup(const char* str_id); // return true if popup if opened and start outputting to it. only call EndPopup() if BeginPopup() returned true! + IMGUI_API bool BeginPopupModal(const char* name, bool* p_opened = NULL, ImGuiWindowFlags extra_flags = 0); // modal dialog (can't close them by clicking outside) + IMGUI_API bool BeginPopupContextItem(const char* str_id, int mouse_button = 1); // helper to open and begin popup when clicked on last item + IMGUI_API bool BeginPopupContextWindow(bool also_over_items = true, const char* str_id = NULL, int mouse_button = 1); // helper to open and begin popup when clicked on current window + IMGUI_API bool BeginPopupContextVoid(const char* str_id = NULL, int mouse_button = 1); // helper to open and begin popup when clicked in void (no window) + IMGUI_API void EndPopup(); + IMGUI_API void CloseCurrentPopup(); // close the popup we have begin-ed into. clicking on a MenuItem or Selectable automatically close the current popup. + + // Logging: all text output from interface is redirected to tty/file/clipboard. Tree nodes are automatically opened. + IMGUI_API void LogToTTY(int max_depth = -1); // start logging to tty + IMGUI_API void LogToFile(int max_depth = -1, const char* filename = NULL); // start logging to file + IMGUI_API void LogToClipboard(int max_depth = -1); // start logging to OS clipboard + IMGUI_API void LogFinish(); // stop logging (close file, etc.) + IMGUI_API void LogButtons(); // helper to display buttons for logging to tty/file/clipboard + IMGUI_API void LogText(const char* fmt, ...); // pass text data straight to log (without being displayed) + + // Utilities + IMGUI_API bool IsItemHovered(); // was the last item hovered by mouse? + IMGUI_API bool IsItemHoveredRect(); // was the last item hovered by mouse? even if another item is active while we are hovering this + IMGUI_API bool IsItemActive(); // was the last item active? (e.g. button being held, text field being edited- items that don't interact will always return false) + IMGUI_API bool IsItemVisible(); + IMGUI_API bool IsAnyItemHovered(); + IMGUI_API bool IsAnyItemActive(); + IMGUI_API ImVec2 GetItemRectMin(); // get bounding rect of last item in screen space + IMGUI_API ImVec2 GetItemRectMax(); // " + IMGUI_API ImVec2 GetItemRectSize(); // " + IMGUI_API bool IsWindowHovered(); + IMGUI_API bool IsWindowFocused(); // is current window focused (differentiate child windows from each others) + IMGUI_API bool IsRootWindowFocused(); // is current root window focused (top parent window in case of child windows) + IMGUI_API bool IsRootWindowOrAnyChildFocused(); // is current root window or any of its child (including current window) focused + IMGUI_API bool IsRectVisible(const ImVec2& size); // test if rectangle of given size starting from cursor pos is visible (not clipped). to perform coarse clipping on user's side (as an optimization) + IMGUI_API bool IsPosHoveringAnyWindow(const ImVec2& pos); // is given position hovering any active imgui window + IMGUI_API float GetTime(); + IMGUI_API int GetFrameCount(); + IMGUI_API const char* GetStyleColName(ImGuiCol idx); + IMGUI_API ImVec2 CalcItemRectClosestPoint(const ImVec2& pos, bool on_edge = false, float outward = +0.0f); // utility to find the closest point the last item bounding rectangle edge. useful to visually link items + IMGUI_API ImVec2 CalcTextSize(const char* text, const char* text_end = NULL, bool hide_text_after_double_hash = false, float wrap_width = -1.0f); + IMGUI_API void CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end); // calculate coarse clipping for large list of evenly sized items. Prefer using the ImGuiListClipper higher-level helper if you can. + + IMGUI_API bool BeginChildFrame(ImGuiID id, const ImVec2& size); // helper to create a child window / scrolling region that looks like a normal widget frame + IMGUI_API void EndChildFrame(); + + IMGUI_API ImU32 ColorConvertFloat4ToU32(const ImVec4& in); + IMGUI_API void ColorConvertRGBtoHSV(float r, float g, float b, float& out_h, float& out_s, float& out_v); + IMGUI_API void ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b); + + // Inputs + IMGUI_API int GetKeyIndex(ImGuiKey key); // map ImGuiKey_* values into user's key index. == io.KeyMap[key] + IMGUI_API bool IsKeyDown(int key_index); // key_index into the keys_down[] array, imgui doesn't know the semantic of each entry, uses your own indices! + IMGUI_API bool IsKeyPressed(int key_index, bool repeat = true); // uses user's key indices as stored in the keys_down[] array. if repeat=true. uses io.KeyRepeatDelay / KeyRepeatRate + IMGUI_API bool IsKeyReleased(int key_index); // " + IMGUI_API bool IsMouseDown(int button); // is mouse button held + IMGUI_API bool IsMouseClicked(int button, bool repeat = false); // did mouse button clicked (went from !Down to Down) + IMGUI_API bool IsMouseDoubleClicked(int button); // did mouse button double-clicked. a double-click returns false in IsMouseClicked(). uses io.MouseDoubleClickTime. + IMGUI_API bool IsMouseReleased(int button); // did mouse button released (went from Down to !Down) + IMGUI_API bool IsMouseHoveringWindow(); // is mouse hovering current window ("window" in API names always refer to current window) + IMGUI_API bool IsMouseHoveringAnyWindow(); // is mouse hovering any active imgui window + IMGUI_API bool IsMouseHoveringRect(const ImVec2& rect_min, const ImVec2& rect_max);// is mouse hovering given bounding rect + IMGUI_API bool IsMouseDragging(int button = 0, float lock_threshold = -1.0f); // is mouse dragging. if lock_threshold < -1.0f uses io.MouseDraggingThreshold + IMGUI_API ImVec2 GetMousePos(); // shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls + IMGUI_API ImVec2 GetMouseDragDelta(int button = 0, float lock_threshold = -1.0f); // dragging amount since clicking, also see: GetItemActiveDragDelta(). if lock_threshold < -1.0f uses io.MouseDraggingThreshold + IMGUI_API void ResetMouseDragDelta(int button = 0); // + IMGUI_API ImGuiMouseCursor GetMouseCursor(); // get desired cursor type, reset in ImGui::NewFrame(), this updated during the frame. valid before Render(). If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you + IMGUI_API void SetMouseCursor(ImGuiMouseCursor type); // set desired cursor type + IMGUI_API void CaptureKeyboardFromApp(); // manually enforce imgui setting the io.WantCaptureKeyboard flag next frame (your application needs to handle it). e.g. capture keyboard when your widget is being hovered. + IMGUI_API void CaptureMouseFromApp(); // manually enforce imgui setting the io.WantCaptureMouse flag next frame (your application needs to handle it). + + // Helpers functions to access the MemAllocFn/MemFreeFn pointers in ImGui::GetIO() + IMGUI_API void* MemAlloc(size_t sz); + IMGUI_API void MemFree(void* ptr); + + // Internal state/context access - if you want to use multiple ImGui context, or share context between modules (e.g. DLL), or allocate the memory yourself + IMGUI_API const char* GetVersion(); + IMGUI_API void* GetInternalState(); + IMGUI_API size_t GetInternalStateSize(); + IMGUI_API void SetInternalState(void* state, bool construct = false); + + // Obsolete (will be removed) +#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS + static inline void OpenNextNode(bool open) { ImGui::SetNextTreeNodeOpened(open, 0); } // OBSOLETE 1.34+ + static inline bool GetWindowIsFocused() { return ImGui::IsWindowFocused(); } // OBSOLETE 1.36+ + static inline bool GetWindowCollapsed() { return ImGui::IsWindowCollapsed(); } // OBSOLETE 1.39+ + static inline ImVec2 GetItemBoxMin() { return GetItemRectMin(); } // OBSOLETE 1.36+ + static inline ImVec2 GetItemBoxMax() { return GetItemRectMax(); } // OBSOLETE 1.36+ + static inline bool IsClipped(const ImVec2& size) { return !IsRectVisible(size); } // OBSOLETE 1.38+ + static inline bool IsRectClipped(const ImVec2& size) { return !IsRectVisible(size); } // OBSOLETE 1.39+ + static inline bool IsMouseHoveringBox(const ImVec2& rect_min, const ImVec2& rect_max) { return IsMouseHoveringRect(rect_min, rect_max); } // OBSOLETE 1.36+ + static inline void SetScrollPosHere() { SetScrollHere(); } // OBSOLETE 1.42+ +#endif + +} // namespace ImGui + +// Flags for ImGui::Begin() +enum ImGuiWindowFlags_ +{ + // Default: 0 + ImGuiWindowFlags_NoTitleBar = 1 << 0, // Disable title-bar + ImGuiWindowFlags_NoResize = 1 << 1, // Disable user resizing with the lower-right grip + ImGuiWindowFlags_NoMove = 1 << 2, // Disable user moving the window + ImGuiWindowFlags_NoScrollbar = 1 << 3, // Disable scrollbar (window can still scroll with mouse or programatically) + ImGuiWindowFlags_NoScrollWithMouse = 1 << 4, // Disable user scrolling with mouse wheel + ImGuiWindowFlags_NoCollapse = 1 << 5, // Disable user collapsing window by double-clicking on it + ImGuiWindowFlags_AlwaysAutoResize = 1 << 6, // Resize every window to its content every frame + ImGuiWindowFlags_ShowBorders = 1 << 7, // Show borders around windows and items + ImGuiWindowFlags_NoSavedSettings = 1 << 8, // Never load/save settings in .ini file + ImGuiWindowFlags_NoInputs = 1 << 9, // Disable catching mouse or keyboard inputs + ImGuiWindowFlags_MenuBar = 1 << 10, // Has a menu-bar + // [Internal] + ImGuiWindowFlags_ChildWindow = 1 << 20, // Don't use! For internal use by BeginChild() + ImGuiWindowFlags_ChildWindowAutoFitX = 1 << 21, // Don't use! For internal use by BeginChild() + ImGuiWindowFlags_ChildWindowAutoFitY = 1 << 22, // Don't use! For internal use by BeginChild() + ImGuiWindowFlags_ComboBox = 1 << 23, // Don't use! For internal use by ComboBox() + ImGuiWindowFlags_Tooltip = 1 << 24, // Don't use! For internal use by BeginTooltip() + ImGuiWindowFlags_Popup = 1 << 25, // Don't use! For internal use by BeginPopup() + ImGuiWindowFlags_Modal = 1 << 26, // Don't use! For internal use by BeginPopupModal() + ImGuiWindowFlags_ChildMenu = 1 << 27 // Don't use! For internal use by BeginMenu() +}; + +// Flags for ImGui::InputText() +enum ImGuiInputTextFlags_ +{ + // Default: 0 + ImGuiInputTextFlags_CharsDecimal = 1 << 0, // Allow 0123456789.+-*/ + ImGuiInputTextFlags_CharsHexadecimal = 1 << 1, // Allow 0123456789ABCDEFabcdef + ImGuiInputTextFlags_CharsUppercase = 1 << 2, // Turn a..z into A..Z + ImGuiInputTextFlags_CharsNoBlank = 1 << 3, // Filter out spaces, tabs + ImGuiInputTextFlags_AutoSelectAll = 1 << 4, // Select entire text when first taking mouse focus + ImGuiInputTextFlags_EnterReturnsTrue = 1 << 5, // Return 'true' when Enter is pressed (as opposed to when the value was modified) + ImGuiInputTextFlags_CallbackCompletion = 1 << 6, // Call user function on pressing TAB (for completion handling) + ImGuiInputTextFlags_CallbackHistory = 1 << 7, // Call user function on pressing Up/Down arrows (for history handling) + ImGuiInputTextFlags_CallbackAlways = 1 << 8, // Call user function every time + ImGuiInputTextFlags_CallbackCharFilter = 1 << 9, // Call user function to filter character. Modify data->EventChar to replace/filter input, or return 1 to discard character. + ImGuiInputTextFlags_AllowTabInput = 1 << 10, // Pressing TAB input a '\t' character into the text field + ImGuiInputTextFlags_CtrlEnterForNewLine = 1 << 11, // In multi-line mode, allow exiting edition by pressing Enter. Ctrl+Enter to add new line (by default adds new lines with Enter). + ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12, // Disable following the cursor horizontally + ImGuiInputTextFlags_AlwaysInsertMode = 1 << 13, // Insert mode + // [Internal] + ImGuiInputTextFlags_Multiline = 1 << 20 // For internal use by InputTextMultiline() +}; + +// Flags for ImGui::Selectable() +enum ImGuiSelectableFlags_ +{ + // Default: 0 + ImGuiSelectableFlags_DontClosePopups = 1 << 0, // Clicking this don't close parent popup window + ImGuiSelectableFlags_SpanAllColumns = 1 << 1 // Selectable frame can span all columns (text will still fit in current column) +}; + +// User fill ImGuiIO.KeyMap[] array with indices into the ImGuiIO.KeysDown[512] array +enum ImGuiKey_ +{ + ImGuiKey_Tab, // for tabbing through fields + ImGuiKey_LeftArrow, // for text edit + ImGuiKey_RightArrow,// for text edit + ImGuiKey_UpArrow, // for text edit + ImGuiKey_DownArrow, // for text edit + ImGuiKey_PageUp, + ImGuiKey_PageDown, + ImGuiKey_Home, // for text edit + ImGuiKey_End, // for text edit + ImGuiKey_Delete, // for text edit + ImGuiKey_Backspace, // for text edit + ImGuiKey_Enter, // for text edit + ImGuiKey_Escape, // for text edit + ImGuiKey_A, // for text edit CTRL+A: select all + ImGuiKey_C, // for text edit CTRL+C: copy + ImGuiKey_V, // for text edit CTRL+V: paste + ImGuiKey_X, // for text edit CTRL+X: cut + ImGuiKey_Y, // for text edit CTRL+Y: redo + ImGuiKey_Z, // for text edit CTRL+Z: undo + ImGuiKey_COUNT +}; + +// Enumeration for PushStyleColor() / PopStyleColor() +enum ImGuiCol_ +{ + ImGuiCol_Text, + ImGuiCol_TextDisabled, + ImGuiCol_WindowBg, + ImGuiCol_ChildWindowBg, + ImGuiCol_Border, + ImGuiCol_BorderShadow, + ImGuiCol_FrameBg, // Background of checkbox, radio button, plot, slider, text input + ImGuiCol_FrameBgHovered, + ImGuiCol_FrameBgActive, + ImGuiCol_TitleBg, + ImGuiCol_TitleBgCollapsed, + ImGuiCol_TitleBgActive, + ImGuiCol_MenuBarBg, + ImGuiCol_ScrollbarBg, + ImGuiCol_ScrollbarGrab, + ImGuiCol_ScrollbarGrabHovered, + ImGuiCol_ScrollbarGrabActive, + ImGuiCol_ComboBg, + ImGuiCol_CheckMark, + ImGuiCol_SliderGrab, + ImGuiCol_SliderGrabActive, + ImGuiCol_Button, + ImGuiCol_ButtonHovered, + ImGuiCol_ButtonActive, + ImGuiCol_Header, + ImGuiCol_HeaderHovered, + ImGuiCol_HeaderActive, + ImGuiCol_Column, + ImGuiCol_ColumnHovered, + ImGuiCol_ColumnActive, + ImGuiCol_ResizeGrip, + ImGuiCol_ResizeGripHovered, + ImGuiCol_ResizeGripActive, + ImGuiCol_CloseButton, + ImGuiCol_CloseButtonHovered, + ImGuiCol_CloseButtonActive, + ImGuiCol_PlotLines, + ImGuiCol_PlotLinesHovered, + ImGuiCol_PlotHistogram, + ImGuiCol_PlotHistogramHovered, + ImGuiCol_TextSelectedBg, + ImGuiCol_TooltipBg, + ImGuiCol_ModalWindowDarkening, // darken entire screen when a modal window is active + ImGuiCol_COUNT +}; + +// Enumeration for PushStyleVar() / PopStyleVar() +// NB: the enum only refers to fields of ImGuiStyle() which makes sense to be pushed/poped in UI code. Feel free to add others. +enum ImGuiStyleVar_ +{ + ImGuiStyleVar_Alpha, // float + ImGuiStyleVar_WindowPadding, // ImVec2 + ImGuiStyleVar_WindowRounding, // float + ImGuiStyleVar_WindowMinSize, // ImVec2 + ImGuiStyleVar_ChildWindowRounding, // float + ImGuiStyleVar_FramePadding, // ImVec2 + ImGuiStyleVar_FrameRounding, // float + ImGuiStyleVar_ItemSpacing, // ImVec2 + ImGuiStyleVar_ItemInnerSpacing, // ImVec2 + ImGuiStyleVar_IndentSpacing, // float + ImGuiStyleVar_GrabMinSize // float +}; + +enum ImGuiAlign_ +{ + ImGuiAlign_Left = 1 << 0, + ImGuiAlign_Center = 1 << 1, + ImGuiAlign_Right = 1 << 2, + ImGuiAlign_Top = 1 << 3, + ImGuiAlign_VCenter = 1 << 4, + ImGuiAlign_Default = ImGuiAlign_Left | ImGuiAlign_Top +}; + +// Enumeration for ColorEditMode() +enum ImGuiColorEditMode_ +{ + ImGuiColorEditMode_UserSelect = -2, + ImGuiColorEditMode_UserSelectShowButton = -1, + ImGuiColorEditMode_RGB = 0, + ImGuiColorEditMode_HSV = 1, + ImGuiColorEditMode_HEX = 2 +}; + +// Enumeration for GetMouseCursor() +enum ImGuiMouseCursor_ +{ + ImGuiMouseCursor_Arrow = 0, + ImGuiMouseCursor_TextInput, // When hovering over InputText, etc. + ImGuiMouseCursor_Move, // Unused + ImGuiMouseCursor_ResizeNS, // Unused + ImGuiMouseCursor_ResizeEW, // When hovering over a column + ImGuiMouseCursor_ResizeNESW, // Unused + ImGuiMouseCursor_ResizeNWSE, // When hovering over the bottom-right corner of a window + ImGuiMouseCursor_Count_ +}; + +// Condition flags for ImGui::SetWindow***(), SetNextWindow***(), SetNextTreeNode***() functions +// All those functions treat 0 as a shortcut to ImGuiSetCond_Always +enum ImGuiSetCond_ +{ + ImGuiSetCond_Always = 1 << 0, // Set the variable + ImGuiSetCond_Once = 1 << 1, // Only set the variable on the first call per runtime session + ImGuiSetCond_FirstUseEver = 1 << 2, // Only set the variable if the window doesn't exist in the .ini file + ImGuiSetCond_Appearing = 1 << 3 // Only set the variable if the window is appearing after being inactive (or the first time) +}; + +struct ImGuiStyle +{ + float Alpha; // Global alpha applies to everything in ImGui + ImVec2 WindowPadding; // Padding within a window + ImVec2 WindowMinSize; // Minimum window size + float WindowRounding; // Radius of window corners rounding. Set to 0.0f to have rectangular windows + ImGuiAlign WindowTitleAlign; // Alignment for title bar text + float ChildWindowRounding; // Radius of child window corners rounding. Set to 0.0f to have rectangular windows + ImVec2 FramePadding; // Padding within a framed rectangle (used by most widgets) + float FrameRounding; // Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets). + ImVec2 ItemSpacing; // Horizontal and vertical spacing between widgets/lines + ImVec2 ItemInnerSpacing; // Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label) + ImVec2 TouchExtraPadding; // Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! + float WindowFillAlphaDefault; // Default alpha of window background, if not specified in ImGui::Begin() + float IndentSpacing; // Horizontal indentation when e.g. entering a tree node + float ColumnsMinSpacing; // Minimum horizontal spacing between two columns + float ScrollbarWidth; // Width of the vertical scrollbar + float ScrollbarRounding; // Radius of grab corners for scrollbar + float GrabMinSize; // Minimum width/height of a grab box for slider/scrollbar + float GrabRounding; // Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. + ImVec2 DisplayWindowPadding; // Window positions are clamped to be visible within the display area by at least this amount. Only covers regular windows. + ImVec2 DisplaySafeAreaPadding; // If you cannot see the edge of your screen (e.g. on a TV) increase the safe area padding. Covers popups/tooltips as well regular windows. + bool AntiAliasedLines; // Enable anti-aliasing on lines/borders. Disable if you are really tight on CPU/GPU. + bool AntiAliasedShapes; // Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.) + ImVec4 Colors[ImGuiCol_COUNT]; + + IMGUI_API ImGuiStyle(); +}; + +// This is where your app communicate with ImGui. Access via ImGui::GetIO(). +// Read 'Programmer guide' section in .cpp file for general usage. +struct ImGuiIO +{ + //------------------------------------------------------------------ + // Settings (fill once) // Default value: + //------------------------------------------------------------------ + + ImVec2 DisplaySize; // // Display size, in pixels. For clamping windows positions. + float DeltaTime; // = 1.0f/60.0f // Time elapsed since last frame, in seconds. + float IniSavingRate; // = 5.0f // Maximum time between saving positions/sizes to .ini file, in seconds. + const char* IniFilename; // = "imgui.ini" // Path to .ini file. NULL to disable .ini saving. + const char* LogFilename; // = "imgui_log.txt" // Path to .log file (default parameter to ImGui::LogToFile when no file is specified). + float MouseDoubleClickTime; // = 0.30f // Time for a double-click, in seconds. + float MouseDoubleClickMaxDist; // = 6.0f // Distance threshold to stay in to validate a double-click, in pixels. + float MouseDragThreshold; // = 6.0f // Distance threshold before considering we are dragging + int KeyMap[ImGuiKey_COUNT]; // // Map of indices into the KeysDown[512] entries array + float KeyRepeatDelay; // = 0.250f // When holding a key/button, time before it starts repeating, in seconds. (for actions where 'repeat' is active) + float KeyRepeatRate; // = 0.020f // When holding a key/button, rate at which it repeats, in seconds. + void* UserData; // = NULL // Store your own data for retrieval by callbacks. + + ImFontAtlas* Fonts; // // Load and assemble one or more fonts into a single tightly packed texture. Output to Fonts array. + float FontGlobalScale; // = 1.0f // Global scale all fonts + bool FontAllowUserScaling; // = false // Allow user scaling text of individual window with CTRL+Wheel. + ImVec2 DisplayVisibleMin; // (0.0f,0.0f) // If you use DisplaySize as a virtual space larger than your screen, set DisplayVisibleMin/Max to the visible area. + ImVec2 DisplayVisibleMax; // (0.0f,0.0f) // If the values are the same, we defaults to Min=(0.0f) and Max=DisplaySize + + //------------------------------------------------------------------ + // User Functions + //------------------------------------------------------------------ + + // REQUIRED: rendering function. + // See example code if you are unsure of how to implement this. + void (*RenderDrawListsFn)(ImDrawData* data); + + // Optional: access OS clipboard + // (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures) + const char* (*GetClipboardTextFn)(); + void (*SetClipboardTextFn)(const char* text); + + // Optional: override memory allocations. MemFreeFn() may be called with a NULL pointer. + // (default to posix malloc/free) + void* (*MemAllocFn)(size_t sz); + void (*MemFreeFn)(void* ptr); + + // Optional: notify OS Input Method Editor of the screen position of your cursor for text input position (e.g. when using Japanese/Chinese IME in Windows) + // (default to use native imm32 api on Windows) + void (*ImeSetInputScreenPosFn)(int x, int y); + void* ImeWindowHandle; // (Windows) Set this to your HWND to get automatic IME cursor positioning. + + //------------------------------------------------------------------ + // Input - Fill before calling NewFrame() + //------------------------------------------------------------------ + + ImVec2 MousePos; // Mouse position, in pixels (set to -1,-1 if no mouse / on another screen, etc.) + bool MouseDown[5]; // Mouse buttons: left, right, middle + extras. ImGui itself mostly only uses left button (BeginPopupContext** are using right button). Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. + float MouseWheel; // Mouse wheel: 1 unit scrolls about 5 lines text. + bool MouseDrawCursor; // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). + bool KeyCtrl; // Keyboard modifier pressed: Control + bool KeyShift; // Keyboard modifier pressed: Shift + bool KeyAlt; // Keyboard modifier pressed: Alt + bool KeysDown[512]; // Keyboard keys that are pressed (in whatever storage order you naturally have access to keyboard data) + ImWchar InputCharacters[16+1]; // List of characters input (translated by user from keypress+keyboard state). Fill using AddInputCharacter() helper. + + // Functions + IMGUI_API void AddInputCharacter(ImWchar c); // Helper to add a new character into InputCharacters[] + IMGUI_API void AddInputCharactersUTF8(const char* utf8_chars); // Helper to add new characters into InputCharacters[] from an UTF-8 string + + //------------------------------------------------------------------ + // Output - Retrieve after calling NewFrame(), you can use them to discard inputs or hide them from the rest of your application + //------------------------------------------------------------------ + + bool WantCaptureMouse; // Mouse is hovering a window or widget is active (= ImGui will use your mouse input) + bool WantCaptureKeyboard; // Widget is active (= ImGui will use your keyboard input) + float Framerate; // Framerate estimation, in frame per second. Rolling average estimation based on IO.DeltaTime over 120 frames + int MetricsAllocs; // Number of active memory allocations + int MetricsRenderVertices; // Vertices output during last call to Render() + int MetricsRenderIndices; // Indices output during last call to Render() = number of triangles * 3 + int MetricsActiveWindows; // Number of visible windows (exclude child windows) + + //------------------------------------------------------------------ + // [Internal] ImGui will maintain those fields for you + //------------------------------------------------------------------ + + ImVec2 MousePosPrev; // Previous mouse position + ImVec2 MouseDelta; // Mouse delta. Note that this is zero if either current or previous position are negative to allow mouse enabling/disabling. + bool MouseClicked[5]; // Mouse button went from !Down to Down + ImVec2 MouseClickedPos[5]; // Position at time of clicking + float MouseClickedTime[5]; // Time of last click (used to figure out double-click) + bool MouseDoubleClicked[5]; // Has mouse button been double-clicked? + bool MouseReleased[5]; // Mouse button went from Down to !Down + bool MouseDownOwned[5]; // Track if button was clicked inside a window. We don't request mouse capture from the application if click started outside ImGui bounds. + float MouseDownDuration[5]; // Duration the mouse button has been down (0.0f == just clicked) + float MouseDownDurationPrev[5]; // Previous time the mouse button has been down + float MouseDragMaxDistanceSqr[5]; // Squared maximum distance of how much mouse has traveled from the click point + float KeysDownDuration[512]; // Duration the keyboard key has been down (0.0f == just pressed) + float KeysDownDurationPrev[512]; // Previous duration the key has been down + + IMGUI_API ImGuiIO(); +}; + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +// Lightweight std::vector<> like class to avoid dragging dependencies (also: windows implementation of STL with debug enabled is absurdly slow, so let's bypass it so our code runs fast in debug). +// Our implementation does NOT call c++ constructors because we don't use them in ImGui. Don't use this class as a straight std::vector replacement in your code! +template +class ImVector +{ +public: + int Size; + int Capacity; + T* Data; + + typedef T value_type; + typedef value_type* iterator; + typedef const value_type* const_iterator; + + ImVector() { Size = Capacity = 0; Data = NULL; } + ~ImVector() { if (Data) ImGui::MemFree(Data); } + + inline bool empty() const { return Size == 0; } + inline int size() const { return Size; } + inline int capacity() const { return Capacity; } + + inline value_type& operator[](int i) { IM_ASSERT(i < Size); return Data[i]; } + inline const value_type& operator[](int i) const { IM_ASSERT(i < Size); return Data[i]; } + + inline void clear() { if (Data) { Size = Capacity = 0; ImGui::MemFree(Data); Data = NULL; } } + inline iterator begin() { return Data; } + inline const_iterator begin() const { return Data; } + inline iterator end() { return Data + Size; } + inline const_iterator end() const { return Data + Size; } + inline value_type& front() { IM_ASSERT(Size > 0); return Data[0]; } + inline const value_type& front() const { IM_ASSERT(Size > 0); return Data[0]; } + inline value_type& back() { IM_ASSERT(Size > 0); return Data[Size-1]; } + inline const value_type& back() const { IM_ASSERT(Size > 0); return Data[Size-1]; } + inline void swap(ImVector& rhs) { int rhs_size = rhs.Size; rhs.Size = Size; Size = rhs_size; int rhs_cap = rhs.Capacity; rhs.Capacity = Capacity; Capacity = rhs_cap; value_type* rhs_data = rhs.Data; rhs.Data = Data; Data = rhs_data; } + + inline int _grow_capacity(int new_size) { int new_capacity = Capacity ? (Capacity + Capacity/2) : 8; return new_capacity > new_size ? new_capacity : new_size; } + + inline void resize(int new_size) { if (new_size > Capacity) reserve(_grow_capacity(new_size)); Size = new_size; } + inline void reserve(int new_capacity) + { + if (new_capacity <= Capacity) return; + T* new_data = (value_type*)ImGui::MemAlloc((size_t)new_capacity * sizeof(value_type)); + memcpy(new_data, Data, (size_t)Size * sizeof(value_type)); + ImGui::MemFree(Data); + Data = new_data; + Capacity = new_capacity; + } + + inline void push_back(const value_type& v) { if (Size == Capacity) reserve(_grow_capacity(Size+1)); Data[Size++] = v; } + inline void pop_back() { IM_ASSERT(Size > 0); Size--; } + + inline iterator erase(const_iterator it) { IM_ASSERT(it >= begin() && it < end()); const ptrdiff_t off = it - begin(); memmove(Data + off, Data + off + 1, ((size_t)Size - (size_t)off - 1) * sizeof(value_type)); Size--; return Data + off; } + inline iterator insert(const_iterator it, const value_type& v) { IM_ASSERT(it >= begin() && it <= end()); const ptrdiff_t off = it - begin(); if (Size == Capacity) reserve(Capacity ? Capacity * 2 : 4); if (off < (int)Size) memmove(Data + off + 1, Data + off, ((size_t)Size - (size_t)off) * sizeof(value_type)); Data[off] = v; Size++; return Data + off; } +}; + +// Helper: execute a block of code once a frame only +// Convenient if you want to quickly create an UI within deep-nested code that runs multiple times every frame. +// Usage: +// IMGUI_ONCE_UPON_A_FRAME +// { +// // code block will be executed one per frame +// } +// Attention! the macro expands into 2 statement so make sure you don't use it within e.g. an if() statement without curly braces. +#define IMGUI_ONCE_UPON_A_FRAME static ImGuiOnceUponAFrame imgui_oaf##__LINE__; if (imgui_oaf##__LINE__) +struct ImGuiOnceUponAFrame +{ + ImGuiOnceUponAFrame() { RefFrame = -1; } + mutable int RefFrame; + operator bool() const { int current_frame = ImGui::GetFrameCount(); if (RefFrame == current_frame) return false; RefFrame = current_frame; return true; } +}; + +// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" +struct ImGuiTextFilter +{ + struct TextRange + { + const char* b; + const char* e; + + TextRange() { b = e = NULL; } + TextRange(const char* _b, const char* _e) { b = _b; e = _e; } + const char* begin() const { return b; } + const char* end() const { return e; } + bool empty() const { return b == e; } + char front() const { return *b; } + static bool isblank(char c) { return c == ' ' || c == '\t'; } + void trim_blanks() { while (b < e && isblank(*b)) b++; while (e > b && isblank(*(e-1))) e--; } + IMGUI_API void split(char separator, ImVector& out); + }; + + char InputBuf[256]; + ImVector Filters; + int CountGrep; + + ImGuiTextFilter(const char* default_filter = ""); + void Clear() { InputBuf[0] = 0; Build(); } + void Draw(const char* label = "Filter (inc,-exc)", float width = -1.0f); // Helper calling InputText+Build + bool PassFilter(const char* val) const; + bool IsActive() const { return !Filters.empty(); } + IMGUI_API void Build(); +}; + +// Helper: Text buffer for logging/accumulating text +struct ImGuiTextBuffer +{ + ImVector Buf; + + ImGuiTextBuffer() { Buf.push_back(0); } + const char* begin() const { return &Buf.front(); } + const char* end() const { return &Buf.back(); } // Buf is zero-terminated, so end() will point on the zero-terminator + int size() const { return Buf.Size-1; } + bool empty() { return size() >= 1; } + void clear() { Buf.clear(); Buf.push_back(0); } + IMGUI_API void append(const char* fmt, ...); + IMGUI_API void appendv(const char* fmt, va_list args); +}; + +// Helper: Key->value storage +// - Store collapse state for a tree (Int 0/1) +// - Store color edit options (Int using values in ImGuiColorEditMode enum). +// - Custom user storage for temporary values. +// Typically you don't have to worry about this since a storage is held within each Window. +// Declare your own storage if: +// - You want to manipulate the open/close state of a particular sub-tree in your interface (tree node uses Int 0/1 to store their state). +// - You want to store custom debug data easily without adding or editing structures in your code. +struct ImGuiStorage +{ + struct Pair + { + ImGuiID key; + union { int val_i; float val_f; void* val_p; }; + Pair(ImGuiID _key, int _val_i) { key = _key; val_i = _val_i; } + Pair(ImGuiID _key, float _val_f) { key = _key; val_f = _val_f; } + Pair(ImGuiID _key, void* _val_p) { key = _key; val_p = _val_p; } + }; + ImVector Data; + + // - Get***() functions find pair, never add/allocate. Pairs are sorted so a query is O(log N) + // - Set***() functions find pair, insertion on demand if missing. + // - Sorted insertion is costly but should amortize. A typical frame shouldn't need to insert any new pair. + IMGUI_API void Clear(); + IMGUI_API int GetInt(ImGuiID key, int default_val = 0) const; + IMGUI_API void SetInt(ImGuiID key, int val); + IMGUI_API float GetFloat(ImGuiID key, float default_val = 0.0f) const; + IMGUI_API void SetFloat(ImGuiID key, float val); + IMGUI_API void* GetVoidPtr(ImGuiID key) const; // default_val is NULL + IMGUI_API void SetVoidPtr(ImGuiID key, void* val); + + // - Get***Ref() functions finds pair, insert on demand if missing, return pointer. Useful if you intend to do Get+Set. + // - References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer. + // - A typical use case where this is convenient: + // float* pvar = ImGui::GetFloatRef(key); ImGui::SliderFloat("var", pvar, 0, 100.0f); some_var += *pvar; + // - You can also use this to quickly create temporary editable values during a session of using Edit&Continue, without restarting your application. + IMGUI_API int* GetIntRef(ImGuiID key, int default_val = 0); + IMGUI_API float* GetFloatRef(ImGuiID key, float default_val = 0); + IMGUI_API void** GetVoidPtrRef(ImGuiID key, void* default_val = NULL); + + // Use on your own storage if you know only integer are being stored (open/close all tree nodes) + IMGUI_API void SetAllInt(int val); +}; + +// Shared state of InputText(), passed to callback when a ImGuiInputTextFlags_Callback* flag is used. +struct ImGuiTextEditCallbackData +{ + ImGuiInputTextFlags EventFlag; // One of ImGuiInputTextFlags_Callback* // Read-only + ImGuiInputTextFlags Flags; // What user passed to InputText() // Read-only + void* UserData; // What user passed to InputText() // Read-only + + // CharFilter event: + ImWchar EventChar; // Character input // Read-write (replace character or set to zero) + + // Completion,History,Always events: + ImGuiKey EventKey; // Key pressed (Up/Down/TAB) // Read-only + char* Buf; // Current text // Read-write (pointed data only) + int BufSize; // // Read-only + bool BufDirty; // Set if you modify Buf directly // Write + int CursorPos; // // Read-write + int SelectionStart; // // Read-write (== to SelectionEnd when no selection) + int SelectionEnd; // // Read-write + + // NB: calling those function loses selection. + void DeleteChars(int pos, int bytes_count); + void InsertChars(int pos, const char* text, const char* text_end = NULL); + bool HasSelection() const { return SelectionStart != SelectionEnd; } +}; + +// ImColor() is just a helper that implicity converts to either ImU32 (packed 4x1 byte) or ImVec4 (4x1 float) +// None of the ImGui API are using ImColor directly but you can use it as a convenience to pass colors in either ImU32 or ImVec4 formats. +struct ImColor +{ + ImVec4 Value; + + ImColor(int r, int g, int b, int a = 255) { Value.x = (float)r / 255.0f; Value.y = (float)g / 255.0f; Value.z = (float)b / 255.0f; Value.w = (float)a / 255.0f; } + ImColor(float r, float g, float b, float a = 1.0f) { Value.x = r; Value.y = g; Value.z = b; Value.w = a; } + ImColor(const ImVec4& col) { Value = col; } + operator ImU32() const { return ImGui::ColorConvertFloat4ToU32(Value); } + operator ImVec4() const { return Value; } + + static ImColor HSV(float h, float s, float v, float a = 1.0f) { float r,g,b; ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b); return ImColor(r,g,b,a); } +}; + +// Helper: Manually clip large list of items. +// If you are displaying thousands of even spaced items and you have a random access to the list, you can perform clipping yourself to save on CPU. +// Usage: +// ImGuiListClipper clipper(count, ImGui::GetTextLineHeightWithSpacing()); +// for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) // display only visible items +// ImGui::Text("line number %d", i); +// clipper.End(); +struct ImGuiListClipper +{ + float ItemsHeight; + int ItemsCount, DisplayStart, DisplayEnd; + + ImGuiListClipper() { ItemsHeight = 0.0f; ItemsCount = DisplayStart = DisplayEnd = -1; } + ImGuiListClipper(int count, float height) { ItemsCount = -1; Begin(count, height); } + ~ImGuiListClipper() { IM_ASSERT(ItemsCount == -1); } // user forgot to call End() + + void Begin(int count, float height) // items_height: generally pass GetTextLineHeightWithSpacing() or GetItemsLineHeightWithSpacing() + { + IM_ASSERT(ItemsCount == -1); + ItemsCount = count; + ItemsHeight = height; + ImGui::CalcListClipping(ItemsCount, ItemsHeight, &DisplayStart, &DisplayEnd); // calculate how many to clip/display + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + DisplayStart * ItemsHeight); // advance cursor + } + void End() + { + IM_ASSERT(ItemsCount >= 0); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (ItemsCount - DisplayEnd) * ItemsHeight); // advance cursor + ItemsCount = -1; + } +}; + +//----------------------------------------------------------------------------- +// Draw List +// Hold a series of drawing commands. The user provides a renderer for ImDrawData which essentially contains an array of ImDrawList. +//----------------------------------------------------------------------------- + +// Draw callbacks for advanced uses. +// NB- You most likely do NOT need to use draw callbacks just to create your own widget or customized UI rendering (you can poke into the draw list for that) +// Draw callback are useful for example if you want to render a complex 3D scene inside a UI element. +// The expected behavior from your rendering loop is: +// if (cmd.UserCallback != NULL) +// cmd.UserCallback(parent_list, cmd); +// else +// RenderTriangles() +// It is up to you to decide if your rendering loop or the callback should be responsible for backup/restoring rendering state. +typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd); + +// Typically, 1 command = 1 gpu draw call (unless command is a callback) +struct ImDrawCmd +{ + unsigned int ElemCount; // Number of indices (multiple of 3) to be rendered as triangles. Vertices are stored in the callee ImDrawList's vtx_buffer[] array, indices in idx_buffer[]. + ImVec4 ClipRect; // Clipping rectangle (x1, y1, x2, y2) + ImTextureID TextureId; // User-provided texture ID. Set by user in ImfontAtlas::SetTexID() for fonts or passed to Image*() functions. Ignore if never using images or multiple fonts atlas. + ImDrawCallback UserCallback; // If != NULL, call the function instead of rendering the vertices. clip_rect and texture_id will be set normally. + void* UserCallbackData; // The draw callback code can access this. +}; + +// Vertex index +typedef unsigned short ImDrawIdx; + +// Vertex layout +#ifndef IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT +struct ImDrawVert +{ + ImVec2 pos; + ImVec2 uv; + ImU32 col; +}; +#else +// You can change the vertex format layout by defining IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT in imconfig.h +// The code expect ImVec2 pos (8 bytes), ImVec2 uv (8 bytes), ImU32 col (4 bytes), but you can re-order them or add other fields as needed to simplify integration in your engine. +// The type has to be described by the #define (you can either declare the struct or use a typedef) +IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT; +#endif + +// Draw channels are used by the Columns API to "split" the render list into different channels while building, so items of each column can be batched together. +struct ImDrawChannel +{ + ImVector CmdBuffer; + ImVector IdxBuffer; +}; + +// Draw command list +// This is the low-level list of polygons that ImGui functions are filling. At the end of the frame, all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering. +// At the moment, each ImGui window contains its own ImDrawList but they could potentially be merged in the future. +// If you want to add custom rendering within a window, you can use ImGui::GetWindowDrawList() to access the current draw list and add your own primitives. +// You can interleave normal ImGui:: calls and adding primitives to the current draw list. +// All positions are in screen coordinates (0,0=top-left, 1 pixel per unit). Primitives are always added to the list and not culled (culling is done at render time and at a higher-level by ImGui:: functions). +// Note that this only gives you access to rendering polygons. If your intent is to create custom widgets and the publicly exposed functions/data aren't sufficient, you can add code in imgui_user.inl +struct ImDrawList +{ + // This is what you have to render + ImVector CmdBuffer; // Commands. Typically 1 command = 1 gpu draw call. + ImVector IdxBuffer; // Index buffer. Each command consume ImDrawCmd::ElemCount of those + ImVector VtxBuffer; // Vertex buffer. + + // [Internal, used while building lists] + const char* _OwnerName; // Pointer to owner window's name (if any) for debugging + unsigned int _VtxCurrentIdx; // [Internal] == VtxBuffer.Size + ImDrawVert* _VtxWritePtr; // [Internal] point within VtxBuffer.Data after each add command (to avoid using the ImVector<> operators too much) + ImDrawIdx* _IdxWritePtr; // [Internal] point within IdxBuffer.Data after each add command (to avoid using the ImVector<> operators too much) + ImVector _ClipRectStack; // [Internal] + ImVector _TextureIdStack; // [Internal] + ImVector _Path; // [Internal] current path building + int _ChannelCurrent; // [Internal] current channel number (0) + ImVector _Channels; // [Internal] draw channels for columns API + + ImDrawList() { _OwnerName = NULL; Clear(); } + ~ImDrawList() { ClearFreeMemory(); } + IMGUI_API void Clear(); + IMGUI_API void ClearFreeMemory(); + IMGUI_API void PushClipRect(const ImVec4& clip_rect); // Scissoring. The values are x1, y1, x2, y2. + IMGUI_API void PushClipRectFullScreen(); + IMGUI_API void PopClipRect(); + IMGUI_API void PushTextureID(const ImTextureID& texture_id); + IMGUI_API void PopTextureID(); + + // Primitives + IMGUI_API void AddLine(const ImVec2& a, const ImVec2& b, ImU32 col, float thickness = 1.0f); + IMGUI_API void AddRect(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding = 0.0f, int rounding_corners = 0x0F); + IMGUI_API void AddRectFilled(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding = 0.0f, int rounding_corners = 0x0F); + IMGUI_API void AddRectFilledMultiColor(const ImVec2& a, const ImVec2& b, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left); + IMGUI_API void AddTriangleFilled(const ImVec2& a, const ImVec2& b, const ImVec2& c, ImU32 col); + IMGUI_API void AddCircle(const ImVec2& centre, float radius, ImU32 col, int num_segments = 12); + IMGUI_API void AddCircleFilled(const ImVec2& centre, float radius, ImU32 col, int num_segments = 12); + IMGUI_API void AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL); + IMGUI_API void AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL, float wrap_width = 0.0f, const ImVec4* cpu_fine_clip_rect = NULL); + IMGUI_API void AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv0, const ImVec2& uv1, ImU32 col = 0xFFFFFFFF); + IMGUI_API void AddPolyline(const ImVec2* points, const int num_points, ImU32 col, bool closed, float thickness, bool anti_aliased); + IMGUI_API void AddConvexPolyFilled(const ImVec2* points, const int num_points, ImU32 col, bool anti_aliased); + + // Stateful path API, add points then finish with PathFill() or PathStroke() + inline void PathClear() { _Path.resize(0); } + inline void PathLineTo(const ImVec2& p) { _Path.push_back(p); } + IMGUI_API void PathArcTo(const ImVec2& centre, float radius, float a_min, float a_max, int num_segments = 10); + IMGUI_API void PathArcToFast(const ImVec2& centre, float radius, int a_min_of_12, int a_max_of_12); + IMGUI_API void PathRect(const ImVec2& a, const ImVec2& b, float rounding = 0.0f, int rounding_corners = 0x0F); + inline void PathFill(ImU32 col) { AddConvexPolyFilled(_Path.Data, _Path.Size, col, true); PathClear(); } + inline void PathStroke(ImU32 col, bool closed, float thickness = 1.0f) { AddPolyline(_Path.Data, _Path.Size, col, closed, thickness, true); PathClear(); } + + // Advanced + IMGUI_API void AddCallback(ImDrawCallback callback, void* callback_data); // Your rendering function must check for 'UserCallback' in ImDrawCmd and call the function instead of rendering triangles. + IMGUI_API void AddDrawCmd(); // This is useful if you need to forcefully create a new draw call (to allow for dependent rendering / blending). Otherwise primitives are merged into the same draw-call as much as possible + IMGUI_API void ChannelsSplit(int channel_count); + IMGUI_API void ChannelsMerge(int channel_count); + IMGUI_API void ChannelsSetCurrent(int idx); + + // Internal helpers + // NB: all primitives needs to be reserved via PrimReserve() beforehand! + IMGUI_API void PrimReserve(int idx_count, int vtx_count); + IMGUI_API void PrimRect(const ImVec2& a, const ImVec2& b, ImU32 col); + IMGUI_API void PrimRectUV(const ImVec2& a, const ImVec2& b, const ImVec2& uv_a, const ImVec2& uv_b, ImU32 col); + inline void PrimVtx(const ImVec2& pos, const ImVec2& uv, ImU32 col) { PrimWriteIdx((ImDrawIdx)_VtxCurrentIdx); PrimWriteVtx(pos, uv, col); } + inline void PrimWriteVtx(const ImVec2& pos, const ImVec2& uv, ImU32 col){ _VtxWritePtr->pos = pos; _VtxWritePtr->uv = uv; _VtxWritePtr->col = col; _VtxWritePtr++; _VtxCurrentIdx++; } + inline void PrimWriteIdx(ImDrawIdx idx) { *_IdxWritePtr = idx; _IdxWritePtr++; } + IMGUI_API void UpdateClipRect(); + IMGUI_API void UpdateTextureID(); +}; + +// All draw data to render an ImGui frame +struct ImDrawData +{ + ImDrawList** CmdLists; + int CmdListsCount; + int TotalVtxCount; // For convenience, sum of all cmd_lists vtx_buffer.Size + int TotalIdxCount; // For convenience, sum of all cmd_lists idx_buffer.Size + + // Functions + void DeIndexAllBuffers(); // For backward compatibility: convert all buffers from indexed to de-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. Always prefer indexed rendering! +}; + +struct ImFontConfig +{ + void* FontData; // // TTF data + int FontDataSize; // // TTF data size + bool FontDataOwnedByAtlas; // true // TTF data ownership taken by the container ImFontAtlas (will delete memory itself). Set to true + int FontNo; // 0 // Index of font within TTF file + float SizePixels; // // Size in pixels for rasterizer + int OversampleH, OversampleV; // 3, 1 // Rasterize at higher quality for sub-pixel positioning. We don't use sub-pixel positions on the Y axis. + bool PixelSnapH; // false // Align every character to pixel boundary (if enabled, set OversampleH/V to 1) + ImVec2 GlyphExtraSpacing; // 0, 0 // Extra spacing (in pixels) between glyphs + const ImWchar* GlyphRanges; // // List of Unicode range (2 value per range, values are inclusive, zero-terminated list) + bool MergeMode; // false // Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). + bool MergeGlyphCenterV; // false // When merging (multiple ImFontInput for one ImFont), vertically center new glyphs instead of aligning their baseline + + // [Internal] + char Name[32]; // Name (strictly for debugging) + ImFont* DstFont; + + IMGUI_API ImFontConfig(); +}; + +// Load and rasterize multiple TTF fonts into a same texture. +// Sharing a texture for multiple fonts allows us to reduce the number of draw calls during rendering. +// We also add custom graphic data into the texture that serves for ImGui. +// 1. (Optional) Call AddFont*** functions. If you don't call any, the default font will be loaded for you. +// 2. Call GetTexDataAsAlpha8() or GetTexDataAsRGBA32() to build and retrieve pixels data. +// 3. Upload the pixels data into a texture within your graphics system. +// 4. Call SetTexID(my_tex_id); and pass the pointer/identifier to your texture. This value will be passed back to you during rendering to identify the texture. +// 5. Call ClearTexData() to free textures memory on the heap. +struct ImFontAtlas +{ + IMGUI_API ImFontAtlas(); + IMGUI_API ~ImFontAtlas(); + IMGUI_API ImFont* AddFont(const ImFontConfig* font_cfg); + IMGUI_API ImFont* AddFontDefault(const ImFontConfig* font_cfg = NULL); + IMGUI_API ImFont* AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); + IMGUI_API ImFont* AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // Transfer ownership of 'ttf_data' to ImFontAtlas, will be deleted after Build() + IMGUI_API ImFont* AddFontFromMemoryCompressedTTF(const void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // 'compressed_ttf_data' still owned by caller. Compress with binary_to_compressed_c.cpp + IMGUI_API ImFont* AddFontFromMemoryCompressedBase85TTF(const char* compressed_ttf_data_base85, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // 'compressed_ttf_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 paramaeter + IMGUI_API void ClearTexData(); // Clear the CPU-side texture data. Saves RAM once the texture has been copied to graphics memory. + IMGUI_API void ClearInputData(); // Clear the input TTF data (inc sizes, glyph ranges) + IMGUI_API void ClearFonts(); // Clear the ImGui-side font data (glyphs storage, UV coordinates) + IMGUI_API void Clear(); // Clear all + + // Retrieve texture data + // User is in charge of copying the pixels into graphics memory, then call SetTextureUserID() + // After loading the texture into your graphic system, store your texture handle in 'TexID' (ignore if you aren't using multiple fonts nor images) + // RGBA32 format is provided for convenience and high compatibility, but note that all RGB pixels are white, so 75% of the memory is wasted. + // Pitch = Width * BytesPerPixels + IMGUI_API void GetTexDataAsAlpha8(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel = NULL); // 1 byte per-pixel + IMGUI_API void GetTexDataAsRGBA32(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel = NULL); // 4 bytes-per-pixel + IMGUI_API void SetTexID(void* id) { TexID = id; } + + // Helpers to retrieve list of common Unicode ranges (2 value per range, values are inclusive, zero-terminated list) + // (Those functions could be static but aren't so most users don't have to refer to the ImFontAtlas:: name ever if in their code; just using io.Fonts->) + IMGUI_API const ImWchar* GetGlyphRangesDefault(); // Basic Latin, Extended Latin + IMGUI_API const ImWchar* GetGlyphRangesJapanese(); // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs + IMGUI_API const ImWchar* GetGlyphRangesChinese(); // Japanese + full set of about 21000 CJK Unified Ideographs + IMGUI_API const ImWchar* GetGlyphRangesCyrillic(); // Default + about 400 Cyrillic characters + + // Members + // (Access texture data via GetTexData*() calls which will setup a default font for you.) + void* TexID; // User data to refer to the texture once it has been uploaded to user's graphic systems. It ia passed back to you during rendering. + unsigned char* TexPixelsAlpha8; // 1 component per pixel, each component is unsigned 8-bit. Total size = TexWidth * TexHeight + unsigned int* TexPixelsRGBA32; // 4 component per pixel, each component is unsigned 8-bit. Total size = TexWidth * TexHeight * 4 + int TexWidth; + int TexHeight; + ImVec2 TexUvWhitePixel; // Texture coordinates to a white pixel (part of the TexExtraData block) + ImVector Fonts; + + // Private + ImVector ConfigData; // Internal data + IMGUI_API bool Build(); // Build pixels data. This is automatically for you by the GetTexData*** functions. + IMGUI_API void RenderCustomTexData(int pass, void* rects); +}; + +// Font runtime data and rendering +// ImFontAtlas automatically loads a default embedded font for you when you call GetTexDataAsAlpha8() or GetTexDataAsRGBA32(). +struct ImFont +{ + // Members: Settings + float FontSize; // // Height of characters, set during loading (don't change after loading) + float Scale; // = 1.0f // Base font scale, multiplied by the per-window font scale which you can adjust with SetFontScale() + ImVec2 DisplayOffset; // = (0.0f,0.0f) // Offset font rendering by xx pixels + ImWchar FallbackChar; // = '?' // Replacement glyph if one isn't found. Only set via SetFallbackChar() + ImFontConfig* ConfigData; // // Pointer within ImFontAtlas->ConfigData + int ConfigDataCount; // + + // Members: Runtime data + struct Glyph + { + ImWchar Codepoint; + float XAdvance; + float X0, Y0, X1, Y1; + float U0, V0, U1, V1; // Texture coordinates + }; + float Ascent, Descent; // Ascent: distance from top to bottom of e.g. 'A' [0..FontSize] + ImFontAtlas* ContainerAtlas; // What we has been loaded into + ImVector Glyphs; + const Glyph* FallbackGlyph; // == FindGlyph(FontFallbackChar) + float FallbackXAdvance; // + ImVector IndexXAdvance; // Sparse. Glyphs->XAdvance directly indexable (for CalcTextSize functions which are often bottleneck in large UI) + ImVector IndexLookup; // Sparse. Index glyphs by Unicode code-point + + // Methods + IMGUI_API ImFont(); + IMGUI_API ~ImFont(); + IMGUI_API void Clear(); + IMGUI_API void BuildLookupTable(); + IMGUI_API float GetCharAdvance(unsigned short c) const { return ((int)c < IndexXAdvance.Size) ? IndexXAdvance[(int)c] : FallbackXAdvance; } + IMGUI_API const Glyph* FindGlyph(unsigned short c) const; + IMGUI_API void SetFallbackChar(ImWchar c); + IMGUI_API bool IsLoaded() const { return ContainerAtlas != NULL; } + + // 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. + // 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. + IMGUI_API ImVec2 CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end = NULL, const char** remaining = NULL) const; // utf8 + IMGUI_API const char* CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const; + IMGUI_API void RenderText(float size, ImVec2 pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, ImDrawList* draw_list, float wrap_width = 0.0f, bool cpu_fine_clip = false) const; +}; + +//---- Include imgui_user.h at the end of imgui.h +//---- So you can include code that extends ImGui using any of the types declared above. +//---- (also convenient for user to only explicitly include vanilla imgui.h) +#ifdef IMGUI_INCLUDE_IMGUI_USER_H +#include "imgui_user.h" +#endif diff --git a/samples/dual_layer/D3D12/src/imgui/imgui_demo.cpp b/samples/dual_layer/D3D12/src/imgui/imgui_demo.cpp new file mode 100644 index 0000000..255c463 --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/imgui_demo.cpp @@ -0,0 +1,2048 @@ +// ImGui library v1.44 +// Demo code + +// Don't remove this file from your project! It is useful reference code that you can execute. +// You can call ImGui::ShowTestWindow() in your code to learn about various features of ImGui. +// Everything in this file will be stripped out by the linker if you don't call ImGui::ShowTestWindow(). + +#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include "imgui.h" +#include // toupper, isprint +#include // sqrtf, fabsf, fmodf, powf, cosf, sinf, floorf, ceilf +#include // vsnprintf, sscanf, printf + +#ifdef _MSC_VER +#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) +#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen +#define snprintf _snprintf +#endif +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wdeprecated-declarations" // warning : 'xx' is deprecated: The POSIX name for this item.. // for strdup used in demo code (so user can copy & paste the code) +#pragma clang diagnostic ignored "-Wint-to-void-pointer-cast" // warning : cast to 'void *' from smaller integer type 'int' +#endif +#ifdef __GNUC__ +#pragma GCC diagnostic ignored "-Wint-to-pointer-cast" // warning: cast to pointer from integer of different size +#endif + +// Play it nice with Windows users. Notepad in 2015 still doesn't display text data with Unix-style \n. +#ifdef _MSC_VER +#define IM_NEWLINE "\r\n" +#else +#define IM_NEWLINE "\n" +#endif + +#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR)/sizeof(*_ARR))) + +//----------------------------------------------------------------------------- +// DEMO CODE +//----------------------------------------------------------------------------- + +#ifndef IMGUI_DISABLE_TEST_WINDOWS + +static void ShowExampleAppConsole(bool* opened); +static void ShowExampleAppLayout(bool* opened); +static void ShowExampleAppLongText(bool* opened); +static void ShowExampleAppAutoResize(bool* opened); +static void ShowExampleAppFixedOverlay(bool* opened); +static void ShowExampleAppManipulatingWindowTitle(bool* opened); +static void ShowExampleAppCustomRendering(bool* opened); +static void ShowExampleAppMainMenuBar(); +static void ShowExampleMenuFile(); + +static void ShowHelpMarker(const char* desc) +{ + ImGui::TextDisabled("(?)"); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip(desc); +} + +void ImGui::ShowUserGuide() +{ + ImGui::BulletText("Double-click on title bar to collapse window."); + ImGui::BulletText("Click and drag on lower right corner to resize window."); + ImGui::BulletText("Click and drag on any empty space to move window."); + ImGui::BulletText("Mouse Wheel to scroll."); + if (ImGui::GetIO().FontAllowUserScaling) + ImGui::BulletText("CTRL+Mouse Wheel to zoom window contents."); + ImGui::BulletText("TAB/SHIFT+TAB to cycle through keyboard editable fields."); + ImGui::BulletText("CTRL+Click on a slider or drag box to input text."); + ImGui::BulletText( + "While editing text:\n" + "- Hold SHIFT or use mouse to select text\n" + "- CTRL+Left/Right to word jump\n" + "- CTRL+A or double-click to select all\n" + "- CTRL+X,CTRL+C,CTRL+V clipboard\n" + "- CTRL+Z,CTRL+Y undo/redo\n" + "- ESCAPE to revert\n" + "- You can apply arithmetic operators +,*,/ on numerical values.\n" + " Use +- to subtract.\n"); +} + +// Demonstrate most ImGui features (big function!) +void ImGui::ShowTestWindow(bool* opened) +{ + // Examples apps + static bool show_app_metrics = false; + static bool show_app_main_menu_bar = false; + static bool show_app_console = false; + static bool show_app_layout = false; + static bool show_app_long_text = false; + static bool show_app_auto_resize = false; + static bool show_app_fixed_overlay = false; + static bool show_app_custom_rendering = false; + static bool show_app_manipulating_window_title = false; + static bool show_app_about = false; + if (show_app_metrics) ImGui::ShowMetricsWindow(&show_app_metrics); + if (show_app_main_menu_bar) ShowExampleAppMainMenuBar(); + if (show_app_console) ShowExampleAppConsole(&show_app_console); + if (show_app_layout) ShowExampleAppLayout(&show_app_layout); + if (show_app_long_text) ShowExampleAppLongText(&show_app_long_text); + if (show_app_auto_resize) ShowExampleAppAutoResize(&show_app_auto_resize); + if (show_app_fixed_overlay) ShowExampleAppFixedOverlay(&show_app_fixed_overlay); + if (show_app_manipulating_window_title) ShowExampleAppManipulatingWindowTitle(&show_app_manipulating_window_title); + if (show_app_custom_rendering) ShowExampleAppCustomRendering(&show_app_custom_rendering); + if (show_app_about) + { + ImGui::Begin("About ImGui", &show_app_about, ImGuiWindowFlags_AlwaysAutoResize); + ImGui::Text("ImGui %s", ImGui::GetVersion()); + ImGui::Separator(); + ImGui::Text("By Omar Cornut and all github contributors."); + ImGui::Text("ImGui is licensed under the MIT License, see LICENSE for more information."); + ImGui::End(); + } + + static bool no_titlebar = false; + static bool no_border = true; + static bool no_resize = false; + static bool no_move = false; + static bool no_scrollbar = false; + static bool no_collapse = false; + static bool no_menu = false; + static float bg_alpha = 0.65f; + + // Demonstrate the various window flags. Typically you would just use the default. + ImGuiWindowFlags window_flags = 0; + if (no_titlebar) window_flags |= ImGuiWindowFlags_NoTitleBar; + if (!no_border) window_flags |= ImGuiWindowFlags_ShowBorders; + if (no_resize) window_flags |= ImGuiWindowFlags_NoResize; + if (no_move) window_flags |= ImGuiWindowFlags_NoMove; + if (no_scrollbar) window_flags |= ImGuiWindowFlags_NoScrollbar; + if (no_collapse) window_flags |= ImGuiWindowFlags_NoCollapse; + if (!no_menu) window_flags |= ImGuiWindowFlags_MenuBar; + if (!ImGui::Begin("ImGui Demo", opened, ImVec2(550,680), bg_alpha, window_flags)) + { + // Early out if the window is collapsed, as an optimization. + ImGui::End(); + return; + } + + //ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.65f); // 2/3 of the space for widget and 1/3 for labels + ImGui::PushItemWidth(-140); // Right align, keep 140 pixels for labels + + ImGui::Text("ImGui says hello."); + + // Menu + if (ImGui::BeginMenuBar()) + { + if (ImGui::BeginMenu("Menu")) + { + ShowExampleMenuFile(); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Examples")) + { + ImGui::MenuItem("Main menu bar", NULL, &show_app_main_menu_bar); + ImGui::MenuItem("Console", NULL, &show_app_console); + ImGui::MenuItem("Simple layout", NULL, &show_app_layout); + ImGui::MenuItem("Long text display", NULL, &show_app_long_text); + ImGui::MenuItem("Auto-resizing window", NULL, &show_app_auto_resize); + ImGui::MenuItem("Simple overlay", NULL, &show_app_fixed_overlay); + ImGui::MenuItem("Manipulating window title", NULL, &show_app_manipulating_window_title); + ImGui::MenuItem("Custom rendering", NULL, &show_app_custom_rendering); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Help")) + { + ImGui::MenuItem("Metrics", NULL, &show_app_metrics); + ImGui::MenuItem("About ImGui", NULL, &show_app_about); + ImGui::EndMenu(); + } + ImGui::EndMenuBar(); + } + + ImGui::Spacing(); + if (ImGui::CollapsingHeader("Help")) + { + ImGui::TextWrapped("This window is being created by the ShowTestWindow() function. Please refer to the code for programming reference.\n\nUser Guide:"); + ImGui::ShowUserGuide(); + } + + if (ImGui::CollapsingHeader("Window options")) + { + ImGui::Checkbox("no titlebar", &no_titlebar); ImGui::SameLine(150); + ImGui::Checkbox("no border", &no_border); ImGui::SameLine(300); + ImGui::Checkbox("no resize", &no_resize); + ImGui::Checkbox("no move", &no_move); ImGui::SameLine(150); + ImGui::Checkbox("no scrollbar", &no_scrollbar); ImGui::SameLine(300); + ImGui::Checkbox("no collapse", &no_collapse); + ImGui::Checkbox("no menu", &no_menu); + ImGui::SliderFloat("bg alpha", &bg_alpha, 0.0f, 1.0f); + + if (ImGui::TreeNode("Style")) + { + ImGui::ShowStyleEditor(); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Fonts", "Fonts (%d)", ImGui::GetIO().Fonts->Fonts.Size)) + { + ImGui::TextWrapped("Tip: Load fonts with io.Fonts->AddFontFromFileTTF()."); + ImFontAtlas* atlas = ImGui::GetIO().Fonts; + if (ImGui::TreeNode("Atlas texture")) + { + ImGui::Text("%dx%d pixels", atlas->TexWidth, atlas->TexHeight); + ImGui::Image(atlas->TexID, ImVec2((float)atlas->TexWidth, (float)atlas->TexHeight), ImVec2(0,0), ImVec2(1,1), ImColor(255,255,255,255), ImColor(255,255,255,128)); + ImGui::TreePop(); + } + ImGui::PushItemWidth(100); + for (int i = 0; i < atlas->Fonts.Size; i++) + { + ImFont* font = atlas->Fonts[i]; + ImGui::BulletText("Font %d: \'%s\', %.2f px, %d glyphs", i, font->ConfigData ? font->ConfigData[0].Name : "", font->FontSize, font->Glyphs.Size); + ImGui::TreePush((void*)i); + if (i > 0) { ImGui::SameLine(); if (ImGui::SmallButton("Set as default")) { atlas->Fonts[i] = atlas->Fonts[0]; atlas->Fonts[0] = font; } } + ImGui::PushFont(font); + ImGui::Text("The quick brown fox jumps over the lazy dog"); + ImGui::PopFont(); + if (ImGui::TreeNode("Details")) + { + ImGui::DragFloat("font scale", &font->Scale, 0.005f, 0.3f, 2.0f, "%.1f"); // scale only this font + ImGui::Text("Ascent: %f, Descent: %f, Height: %f", font->Ascent, font->Descent, font->Ascent - font->Descent); + ImGui::Text("Fallback character: '%c' (%d)", font->FallbackChar, font->FallbackChar); + for (int config_i = 0; config_i < font->ConfigDataCount; config_i++) + ImGui::BulletText("Input %d: \'%s\'", config_i, font->ConfigData[config_i].Name); + ImGui::TreePop(); + } + ImGui::TreePop(); + } + static float window_scale = 1.0f; + ImGui::DragFloat("this window scale", &window_scale, 0.005f, 0.3f, 2.0f, "%.1f"); // scale only this window + ImGui::DragFloat("global scale", &ImGui::GetIO().FontGlobalScale, 0.005f, 0.3f, 2.0f, "%.1f"); // scale everything + ImGui::PopItemWidth(); + ImGui::SetWindowFontScale(window_scale); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Logging")) + { + ImGui::TextWrapped("The logging API redirects all text output so you can easily capture the content of a window or a block. Tree nodes can be automatically expanded. You can also call ImGui::LogText() to output directly to the log without a visual output."); + ImGui::LogButtons(); + ImGui::TreePop(); + } + } + + if (ImGui::CollapsingHeader("Widgets")) + { + if (ImGui::TreeNode("Tree")) + { + for (int i = 0; i < 5; i++) + { + if (ImGui::TreeNode((void*)i, "Child %d", i)) + { + ImGui::Text("blah blah"); + ImGui::SameLine(); + if (ImGui::SmallButton("print")) + printf("Child %d pressed", i); + ImGui::TreePop(); + } + } + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Bullets")) + { + ImGui::BulletText("Bullet point 1"); + ImGui::BulletText("Bullet point 2\nOn multiple lines"); + ImGui::Bullet(); ImGui::Text("Bullet point 3 (two calls)"); + ImGui::Bullet(); ImGui::SmallButton("Button"); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Colored Text")) + { + // Using shortcut. You can use PushStyleColor()/PopStyleColor() for more flexibility. + ImGui::TextColored(ImVec4(1.0f,0.0f,1.0f,1.0f), "Pink"); + ImGui::TextColored(ImVec4(1.0f,1.0f,0.0f,1.0f), "Yellow"); + ImGui::TextDisabled("Disabled"); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Word Wrapping")) + { + // Using shortcut. You can use PushTextWrapPos()/PopTextWrapPos() for more flexibility. + ImGui::TextWrapped("This text should automatically wrap on the edge of the window. The current implementation for text wrapping follows simple rules suitable for English and possibly other languages."); + ImGui::Spacing(); + + static float wrap_width = 200.0f; + ImGui::SliderFloat("Wrap width", &wrap_width, -20, 600, "%.0f"); + + ImGui::Text("Test paragraph 1:"); + ImVec2 pos = ImGui::GetCursorScreenPos(); + ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(pos.x + wrap_width, pos.y), ImVec2(pos.x + wrap_width + 10, pos.y + ImGui::GetTextLineHeight()), 0xFFFF00FF); + ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + wrap_width); + ImGui::Text("lazy dog. This paragraph is made to fit within %.0f pixels. The quick brown fox jumps over the lazy dog.", wrap_width); + ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), 0xFF00FFFF); + ImGui::PopTextWrapPos(); + + ImGui::Text("Test paragraph 2:"); + pos = ImGui::GetCursorScreenPos(); + ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(pos.x + wrap_width, pos.y), ImVec2(pos.x + wrap_width + 10, pos.y + ImGui::GetTextLineHeight()), 0xFFFF00FF); + ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + wrap_width); + ImGui::Text("aaaaaaaa bbbbbbbb, cccccccc,dddddddd. eeeeeeee ffffffff. gggggggg!hhhhhhhh"); + ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), 0xFF00FFFF); + ImGui::PopTextWrapPos(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("UTF-8 Text")) + { + // UTF-8 test with Japanese characters + // (needs a suitable font, try Arial Unicode or M+ fonts http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html) + // Most compiler appears to support UTF-8 in source code (with Visual Studio you need to save your file as 'UTF-8 without signature') + // However for the sake for maximum portability here we are *not* including raw UTF-8 character in this source file, instead we encode the string with hexadecimal constants. + // In your own application be reasonable and use UTF-8 in source or retrieve the data from file system! + // Note that characters values are preserved even if the font cannot be displayed, so you can safely copy & paste garbled characters into another application. + ImGui::TextWrapped("CJK text will only appears if the font was loaded with the appropriate CJK character ranges. Call io.Font->LoadFromFileTTF() manually to load extra character ranges."); + ImGui::Text("Hiragana: \xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91\xe3\x81\x93 (kakikukeko)"); + ImGui::Text("Kanjis: \xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e (nihongo)"); + static char buf[32] = "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"; + ImGui::InputText("UTF-8 input", buf, IM_ARRAYSIZE(buf)); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Images")) + { + ImGui::TextWrapped("Below we are displaying the font texture (which is the only texture we have access to in this demo). Use the 'ImTextureID' type as storage to pass pointers or identifier to your own texture data. Hover the texture for a zoomed view!"); + ImVec2 tex_screen_pos = ImGui::GetCursorScreenPos(); + float tex_w = (float)ImGui::GetIO().Fonts->TexWidth; + float tex_h = (float)ImGui::GetIO().Fonts->TexHeight; + ImTextureID tex_id = ImGui::GetIO().Fonts->TexID; + ImGui::Text("%.0fx%.0f", tex_w, tex_h); + ImGui::Image(tex_id, ImVec2(tex_w, tex_h), ImVec2(0,0), ImVec2(1,1), ImColor(255,255,255,255), ImColor(255,255,255,128)); + if (ImGui::IsItemHovered()) + { + ImGui::BeginTooltip(); + float focus_sz = 32.0f; + float focus_x = ImGui::GetMousePos().x - tex_screen_pos.x - focus_sz * 0.5f; if (focus_x < 0.0f) focus_x = 0.0f; else if (focus_x > tex_w - focus_sz) focus_x = tex_w - focus_sz; + float focus_y = ImGui::GetMousePos().y - tex_screen_pos.y - focus_sz * 0.5f; if (focus_y < 0.0f) focus_y = 0.0f; else if (focus_y > tex_h - focus_sz) focus_y = tex_h - focus_sz; + ImGui::Text("Min: (%.2f, %.2f)", focus_x, focus_y); + ImGui::Text("Max: (%.2f, %.2f)", focus_x + focus_sz, focus_y + focus_sz); + ImVec2 uv0 = ImVec2((focus_x) / tex_w, (focus_y) / tex_h); + ImVec2 uv1 = ImVec2((focus_x + focus_sz) / tex_w, (focus_y + focus_sz) / tex_h); + ImGui::Image(tex_id, ImVec2(128,128), uv0, uv1, ImColor(255,255,255,255), ImColor(255,255,255,128)); + ImGui::EndTooltip(); + } + ImGui::TextWrapped("And now some textured buttons.."); + static int pressed_count = 0; + for (int i = 0; i < 8; i++) + { + if (i > 0) + ImGui::SameLine(); + ImGui::PushID(i); + int frame_padding = -1 + i; // -1 = uses default padding + if (ImGui::ImageButton(tex_id, ImVec2(32,32), ImVec2(0,0), ImVec2(32.0f/tex_w,32/tex_h), frame_padding, ImColor(0,0,0,255))) + pressed_count += 1; + ImGui::PopID(); + } + ImGui::Text("Pressed %d times.", pressed_count); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Selectables")) + { + if (ImGui::TreeNode("Basic")) + { + static bool selected[3] = { false, true, false }; + ImGui::Selectable("1. I am selectable", &selected[0]); + ImGui::Selectable("2. I am selectable", &selected[1]); + ImGui::Text("3. I am not selectable"); + ImGui::Selectable("4. I am selectable", &selected[2]); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Rendering more text into the same block")) + { + static bool selected[3] = { false, false, false }; + ImGui::Selectable("main.c", &selected[0]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); + ImGui::Selectable("Hello.cpp", &selected[1]); ImGui::SameLine(300); ImGui::Text("12,345 bytes"); + ImGui::Selectable("Hello.h", &selected[2]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); + ImGui::TreePop(); + } + if (ImGui::TreeNode("Grid")) + { + static bool selected[16] = { true, false, false, false, false, true, false, false, false, false, true, false, false, false, false, true }; + for (int i = 0; i < 16; i++) + { + ImGui::PushID(i); + if (ImGui::Selectable("Me", &selected[i], 0, ImVec2(50,50))) + { + int x = i % 4, y = i / 4; + if (x > 0) selected[i - 1] ^= 1; + if (x < 3) selected[i + 1] ^= 1; + if (y > 0) selected[i - 4] ^= 1; + if (y < 3) selected[i + 4] ^= 1; + } + if ((i % 4) < 3) ImGui::SameLine(); + ImGui::PopID(); + } + ImGui::TreePop(); + } + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Filtered Text Input")) + { + static char buf1[64] = ""; ImGui::InputText("default", buf1, 64); + static char buf2[64] = ""; ImGui::InputText("decimal", buf2, 64, ImGuiInputTextFlags_CharsDecimal); + static char buf3[64] = ""; ImGui::InputText("hexadecimal", buf3, 64, ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase); + static char buf4[64] = ""; ImGui::InputText("uppercase", buf4, 64, ImGuiInputTextFlags_CharsUppercase); + static char buf5[64] = ""; ImGui::InputText("no blank", buf5, 64, ImGuiInputTextFlags_CharsNoBlank); + struct TextFilters { static int FilterImGuiLetters(ImGuiTextEditCallbackData* data) { if (data->EventChar < 256 && strchr("imgui", (char)data->EventChar)) return 0; return 1; } }; + static char buf6[64] = ""; ImGui::InputText("\"imgui\" letters", buf6, 64, ImGuiInputTextFlags_CallbackCharFilter, TextFilters::FilterImGuiLetters); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Multi-line Text Input")) + { + static char text[1024*16] = "// F00F bug\nlabel:\n\tlock cmpxchg8b eax\n"; + ImGui::InputTextMultiline("##source", text, IM_ARRAYSIZE(text), ImVec2(-1.0f, ImGui::GetTextLineHeight() * 16), ImGuiInputTextFlags_AllowTabInput); + ImGui::TreePop(); + } + + static bool a=false; + if (ImGui::Button("Button")) { printf("Clicked\n"); a ^= 1; } + if (a) + { + ImGui::SameLine(); + ImGui::Text("Thanks for clicking me!"); + } + + static bool check = true; + ImGui::Checkbox("checkbox", &check); + + static int e = 0; + ImGui::RadioButton("radio a", &e, 0); ImGui::SameLine(); + ImGui::RadioButton("radio b", &e, 1); ImGui::SameLine(); + ImGui::RadioButton("radio c", &e, 2); + + // Color buttons, demonstrate using PushID() to add unique identifier in the ID stack, and changing style. + for (int i = 0; i < 7; i++) + { + if (i > 0) ImGui::SameLine(); + ImGui::PushID(i); + ImGui::PushStyleColor(ImGuiCol_Button, ImColor::HSV(i/7.0f, 0.6f, 0.6f)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImColor::HSV(i/7.0f, 0.7f, 0.7f)); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImColor::HSV(i/7.0f, 0.8f, 0.8f)); + ImGui::Button("Click"); + ImGui::PopStyleColor(3); + ImGui::PopID(); + } + + ImGui::Text("Hover over me"); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("I am a tooltip"); + + ImGui::SameLine(); + ImGui::Text("- or me"); + if (ImGui::IsItemHovered()) + { + ImGui::BeginTooltip(); + ImGui::Text("I am a fancy tooltip"); + static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f }; + ImGui::PlotLines("Curve", arr, IM_ARRAYSIZE(arr)); + ImGui::EndTooltip(); + } + + // Testing IMGUI_ONCE_UPON_A_FRAME macro + //for (int i = 0; i < 5; i++) + //{ + // IMGUI_ONCE_UPON_A_FRAME + // { + // ImGui::Text("This will be displayed only once."); + // } + //} + + ImGui::Separator(); + + ImGui::LabelText("label", "Value"); + + static int item = 1; + ImGui::Combo("combo", &item, "aaaa\0bbbb\0cccc\0dddd\0eeee\0\0"); // Combo using values packed in a single constant string (for really quick combo) + + const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGG", "HHHH", "IIII", "JJJJ", "KKKK" }; + static int item2 = -1; + ImGui::Combo("combo scroll", &item2, items, IM_ARRAYSIZE(items)); // Combo using proper array. You can also pass a callback to retrieve array value, no need to create/copy an array just for that. + + { + static char str0[128] = "Hello, world!"; + static int i0=123; + static float f0=0.001f; + ImGui::InputText("input text", str0, IM_ARRAYSIZE(str0)); + ImGui::SameLine(); ShowHelpMarker("Hold SHIFT or use mouse to select text.\n" "CTRL+Left/Right to word jump.\n" "CTRL+A or double-click to select all.\n" "CTRL+X,CTRL+C,CTRL+V clipboard.\n" "CTRL+Z,CTRL+Y undo/redo.\n" "ESCAPE to revert.\n"); + + ImGui::InputInt("input int", &i0); + ImGui::SameLine(); ShowHelpMarker("You can apply arithmetic operators +,*,/ on numerical values.\n e.g. [ 100 ], input \'*2\', result becomes [ 200 ]\nUse +- to subtract.\n"); + + ImGui::InputFloat("input float", &f0, 0.01f, 1.0f); + + static float vec4a[4] = { 0.10f, 0.20f, 0.30f, 0.44f }; + ImGui::InputFloat3("input float3", vec4a); + } + + { + static int i1=50, i2=42; + ImGui::DragInt("drag int", &i1, 1); + ImGui::SameLine(); ShowHelpMarker("Click and drag to edit value.\nHold SHIFT/ALT for faster/slower edit.\nDouble-click or CTRL+click to input value."); + + ImGui::DragInt("drag int 0..100", &i2, 1, 0, 100, "%.0f%%"); + + static float f1=1.00f, f2=0.0067f; + ImGui::DragFloat("drag float", &f1, 0.005f); + ImGui::DragFloat("drag small float", &f2, 0.0001f, 0.0f, 0.0f, "%.06f ns"); + } + + { + static int i1=0; + ImGui::SliderInt("slider int", &i1, -1, 3); + ImGui::SameLine(); ShowHelpMarker("CTRL+click to input value."); + + static float f1=0.123f, f2=0.0f; + ImGui::SliderFloat("slider float", &f1, 0.0f, 1.0f, "ratio = %.3f"); + ImGui::SliderFloat("slider log float", &f2, -10.0f, 10.0f, "%.4f", 3.0f); + static float angle = 0.0f; + ImGui::SliderAngle("slider angle", &angle); + } + + static float col1[3] = { 1.0f,0.0f,0.2f }; + static float col2[4] = { 0.4f,0.7f,0.0f,0.5f }; + ImGui::ColorEdit3("color 1", col1); + ImGui::SameLine(); ShowHelpMarker("Click on the colored square to change edit mode.\nCTRL+click on individual component to input value.\n"); + + ImGui::ColorEdit4("color 2", col2); + + const char* listbox_items[] = { "Apple", "Banana", "Cherry", "Kiwi", "Mango", "Orange", "Pineapple", "Strawberry", "Watermelon" }; + static int listbox_item_current = 1; + ImGui::ListBox("listbox\n(single select)", &listbox_item_current, listbox_items, IM_ARRAYSIZE(listbox_items), 4); + + //static int listbox_item_current2 = 2; + //ImGui::PushItemWidth(-1); + //ImGui::ListBox("##listbox2", &listbox_item_current2, listbox_items, IM_ARRAYSIZE(listbox_items), 4); + //ImGui::PopItemWidth(); + + if (ImGui::TreeNode("Range Widgets")) + { + ImGui::Unindent(); + + static float begin = 10, end = 90; + static int begin_i = 100, end_i = 1000; + ImGui::DragFloatRange2("range", &begin, &end, 0.25f, 0.0f, 100.0f, "Min: %.1f %%", "Max: %.1f %%"); + ImGui::DragIntRange2("range int (no bounds)", &begin_i, &end_i, 5, 0, 0, "Min: %.0f units", "Max: %.0f units"); + + ImGui::Indent(); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Multi-component Widgets")) + { + ImGui::Unindent(); + + static float vec4f[4] = { 0.10f, 0.20f, 0.30f, 0.44f }; + static int vec4i[4] = { 1, 5, 100, 255 }; + + ImGui::InputFloat2("input float2", vec4f); + ImGui::DragFloat2("drag float2", vec4f, 0.01f, 0.0f, 1.0f); + ImGui::SliderFloat2("slider float2", vec4f, 0.0f, 1.0f); + ImGui::DragInt2("drag int2", vec4i, 1, 0, 255); + ImGui::InputInt2("input int2", vec4i); + ImGui::SliderInt2("slider int2", vec4i, 0, 255); + ImGui::Spacing(); + + ImGui::InputFloat3("input float3", vec4f); + ImGui::DragFloat3("drag float3", vec4f, 0.01f, 0.0f, 1.0f); + ImGui::SliderFloat3("slider float3", vec4f, 0.0f, 1.0f); + ImGui::DragInt3("drag int3", vec4i, 1, 0, 255); + ImGui::InputInt3("input int3", vec4i); + ImGui::SliderInt3("slider int3", vec4i, 0, 255); + ImGui::Spacing(); + + ImGui::InputFloat4("input float4", vec4f); + ImGui::DragFloat4("drag float4", vec4f, 0.01f, 0.0f, 1.0f); + ImGui::SliderFloat4("slider float4", vec4f, 0.0f, 1.0f); + ImGui::InputInt4("input int4", vec4i); + ImGui::DragInt4("drag int4", vec4i, 1, 0, 255); + ImGui::SliderInt4("slider int4", vec4i, 0, 255); + + ImGui::Indent(); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Vertical Sliders")) + { + ImGui::Unindent(); + const float spacing = 4; + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(spacing, spacing)); + + static int int_value = 0; + ImGui::VSliderInt("##int", ImVec2(18,160), &int_value, 0, 5); + ImGui::SameLine(); + + static float values[7] = { 0.0f, 0.60f, 0.35f, 0.9f, 0.70f, 0.20f, 0.0f }; + ImGui::PushID("set1"); + for (int i = 0; i < 7; i++) + { + if (i > 0) ImGui::SameLine(); + ImGui::PushID(i); + ImGui::PushStyleColor(ImGuiCol_FrameBg, ImColor::HSV(i/7.0f, 0.5f, 0.5f)); + ImGui::PushStyleColor(ImGuiCol_FrameBgHovered, ImColor::HSV(i/7.0f, 0.6f, 0.5f)); + ImGui::PushStyleColor(ImGuiCol_FrameBgActive, ImColor::HSV(i/7.0f, 0.7f, 0.5f)); + ImGui::PushStyleColor(ImGuiCol_SliderGrab, ImColor::HSV(i/7.0f, 0.9f, 0.9f)); + ImGui::VSliderFloat("##v", ImVec2(18,160), &values[i], 0.0f, 1.0f, ""); + if (ImGui::IsItemActive() || ImGui::IsItemHovered()) + ImGui::SetTooltip("%.3f", values[i]); + ImGui::PopStyleColor(4); + ImGui::PopID(); + } + ImGui::PopID(); + + ImGui::SameLine(); + ImGui::PushID("set2"); + static float values2[4] = { 0.20f, 0.80f, 0.40f, 0.25f }; + const int rows = 3; + const ImVec2 small_slider_size(18, (160.0f-(rows-1)*spacing)/rows); + for (int nx = 0; nx < 4; nx++) + { + if (nx > 0) ImGui::SameLine(); + ImGui::BeginGroup(); + for (int ny = 0; ny < rows; ny++) + { + ImGui::PushID(nx*rows+ny); + ImGui::VSliderFloat("##v", small_slider_size, &values2[nx], 0.0f, 1.0f, ""); + if (ImGui::IsItemActive() || ImGui::IsItemHovered()) + ImGui::SetTooltip("%.3f", values2[nx]); + ImGui::PopID(); + } + ImGui::EndGroup(); + } + ImGui::PopID(); + + ImGui::SameLine(); + ImGui::PushID("set3"); + for (int i = 0; i < 4; i++) + { + if (i > 0) ImGui::SameLine(); + ImGui::PushID(i); + ImGui::PushStyleVar(ImGuiStyleVar_GrabMinSize, 40); + ImGui::VSliderFloat("##v", ImVec2(40,160), &values[i], 0.0f, 1.0f, "%.2f"); + ImGui::PopStyleVar(); + ImGui::PopID(); + } + ImGui::PopID(); + ImGui::PopStyleVar(); + + ImGui::Indent(); + ImGui::TreePop(); + } + } + + if (ImGui::CollapsingHeader("Graphs widgets")) + { + static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f }; + ImGui::PlotLines("Frame Times", arr, IM_ARRAYSIZE(arr)); + + static bool pause; + static ImVector values; if (values.empty()) { values.resize(90); memset(values.Data, 0, values.Size*sizeof(float)); } + static int values_offset = 0; + if (!pause) + { + static float refresh_time = ImGui::GetTime(); // Create dummy data at fixed 60 hz rate for the demo + for (; ImGui::GetTime() > refresh_time + 1.0f/60.0f; refresh_time += 1.0f/60.0f) + { + static float phase = 0.0f; + values[values_offset] = cosf(phase); + values_offset = (values_offset+1)%values.Size; + phase += 0.10f*values_offset; + } + } + ImGui::PlotLines("##Graph", values.Data, values.Size, values_offset, "avg 0.0", -1.0f, 1.0f, ImVec2(0,80)); + ImGui::SameLine(0, ImGui::GetStyle().ItemInnerSpacing.x); + ImGui::BeginGroup(); + ImGui::Text("Graph"); + ImGui::Checkbox("pause", &pause); + ImGui::EndGroup(); + ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0,80)); + } + + if (ImGui::CollapsingHeader("Layout")) + { + if (ImGui::TreeNode("Child regions")) + { + ImGui::Text("Without border"); + static int line = 50; + bool goto_line = ImGui::Button("Goto"); + ImGui::SameLine(); + ImGui::PushItemWidth(100); + goto_line |= ImGui::InputInt("##Line", &line, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue); + ImGui::PopItemWidth(); + ImGui::BeginChild("Sub1", ImVec2(ImGui::GetWindowWidth() * 0.5f,300)); + for (int i = 0; i < 100; i++) + { + ImGui::Text("%04d: scrollable region", i); + if (goto_line && line == i) + ImGui::SetScrollHere(); + } + if (goto_line && line >= 100) + ImGui::SetScrollHere(); + ImGui::EndChild(); + + ImGui::SameLine(); + + ImGui::PushStyleVar(ImGuiStyleVar_ChildWindowRounding, 5.0f); + ImGui::BeginChild("Sub2", ImVec2(0,300), true); + ImGui::Text("With border"); + ImGui::Columns(2); + for (int i = 0; i < 100; i++) + { + if (i == 50) + ImGui::NextColumn(); + char buf[32]; + sprintf(buf, "%08x", i*5731); + ImGui::Button(buf, ImVec2(-1.0f, 0.0f)); + } + ImGui::EndChild(); + ImGui::PopStyleVar(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Widgets Alignment")) + { + static float f = 0.0f; + ImGui::Text("Fixed: 100 pixels"); + ImGui::PushItemWidth(100); + ImGui::InputFloat("float##1", &f); + ImGui::PopItemWidth(); + + ImGui::Text("Proportional: 50%% of window width"); + ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.5f); + ImGui::InputFloat("float##2", &f); + ImGui::PopItemWidth(); + + ImGui::Text("Right-aligned: Leave 100 pixels for label"); + ImGui::PushItemWidth(-100); + ImGui::InputFloat("float##3", &f); + ImGui::PopItemWidth(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Basic Horizontal Layout")) + { + ImGui::TextWrapped("(Use ImGui::SameLine() to keep adding items to the right of the preceeding item)"); + + // Text + ImGui::Text("Two items: Hello"); ImGui::SameLine(); + ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); + + // Adjust spacing + ImGui::Text("More spacing: Hello"); ImGui::SameLine(0, 20); + ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); + + // Button + ImGui::AlignFirstTextHeightToWidgets(); + ImGui::Text("Normal buttons"); ImGui::SameLine(); + ImGui::Button("Banana"); ImGui::SameLine(); + ImGui::Button("Apple"); ImGui::SameLine(); + ImGui::Button("Corniflower"); + + // Button + ImGui::Text("Small buttons"); ImGui::SameLine(); + ImGui::SmallButton("Like this one"); ImGui::SameLine(); + ImGui::Text("can fit within a text block."); + + // Aligned to arbitrary position. Easy/cheap column. + ImGui::Text("Aligned"); + ImGui::SameLine(150); ImGui::Text("x=150"); + ImGui::SameLine(300); ImGui::Text("x=300"); + ImGui::Text("Aligned"); + ImGui::SameLine(150); ImGui::SmallButton("x=150"); + ImGui::SameLine(300); ImGui::SmallButton("x=300"); + + // Checkbox + static bool c1=false,c2=false,c3=false,c4=false; + ImGui::Checkbox("My", &c1); ImGui::SameLine(); + ImGui::Checkbox("Tailor", &c2); ImGui::SameLine(); + ImGui::Checkbox("Is", &c3); ImGui::SameLine(); + ImGui::Checkbox("Rich", &c4); + + // Various + static float f0=1.0f, f1=2.0f, f2=3.0f; + ImGui::PushItemWidth(80); + const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD" }; + static int item = -1; + ImGui::Combo("Combo", &item, items, IM_ARRAYSIZE(items)); ImGui::SameLine(); + ImGui::SliderFloat("X", &f0, 0.0f,5.0f); ImGui::SameLine(); + ImGui::SliderFloat("Y", &f1, 0.0f,5.0f); ImGui::SameLine(); + ImGui::SliderFloat("Z", &f2, 0.0f,5.0f); + ImGui::PopItemWidth(); + + ImGui::PushItemWidth(80); + ImGui::Text("Lists:"); + static int selection[4] = { 0, 1, 2, 3 }; + for (int i = 0; i < 4; i++) + { + if (i > 0) ImGui::SameLine(); + ImGui::PushID(i); + ImGui::ListBox("", &selection[i], items, IM_ARRAYSIZE(items)); + ImGui::PopID(); + //if (ImGui::IsItemHovered()) ImGui::SetTooltip("ListBox %d hovered", i); + } + ImGui::PopItemWidth(); + + // Dummy + ImVec2 sz(30,30); + ImGui::Button("A", sz); ImGui::SameLine(); + ImGui::Dummy(sz); ImGui::SameLine(); + ImGui::Button("B", sz); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Groups")) + { + ImGui::TextWrapped("(Using ImGui::BeginGroup()/EndGroup() to layout items)"); + ImGui::BeginGroup(); + { + ImGui::BeginGroup(); + ImGui::Button("AAA"); + ImGui::SameLine(); + ImGui::Button("BBB"); + ImGui::SameLine(); + ImGui::BeginGroup(); + ImGui::Button("CCC"); + ImGui::Button("DDD"); + ImGui::EndGroup(); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Group hovered"); + ImGui::SameLine(); + ImGui::Button("EEE"); + ImGui::EndGroup(); + } + // Capture the group size and create widgets using the same size + ImVec2 size = ImGui::GetItemRectSize(); + const float values[5] = { 0.5f, 0.20f, 0.80f, 0.60f, 0.25f }; + ImGui::PlotHistogram("##values", values, IM_ARRAYSIZE(values), 0, NULL, 0.0f, 1.0f, size); + + ImGui::Button("ACTION", ImVec2((size.x - ImGui::GetStyle().ItemSpacing.x)*0.5f,size.y)); + ImGui::SameLine(); + ImGui::Button("REACTION", ImVec2((size.x - ImGui::GetStyle().ItemSpacing.x)*0.5f,size.y)); + ImGui::EndGroup(); + ImGui::SameLine(); + + ImGui::Button("LEVERAGE\nBUZZWORD", size); + ImGui::SameLine(); + + ImGui::ListBoxHeader("List", size); + ImGui::Selectable("Selected", true); + ImGui::Selectable("Not Selected", false); + ImGui::ListBoxFooter(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Text Baseline Alignment")) + { + ImGui::TextWrapped("(This is testing the vertical alignment that occurs on text to keep it at the same baseline as widgets. Lines only composed of text or \"small\" widgets fit in less vertical spaces than lines with normal widgets)"); + + ImGui::Text("One\nTwo\nThree"); ImGui::SameLine(); + ImGui::Text("Hello\nWorld"); ImGui::SameLine(); + ImGui::Text("Banana"); + + ImGui::Text("Banana"); ImGui::SameLine(); + ImGui::Text("Hello\nWorld"); ImGui::SameLine(); + ImGui::Text("One\nTwo\nThree"); + + ImGui::Button("HOP"); ImGui::SameLine(); + ImGui::Text("Banana"); ImGui::SameLine(); + ImGui::Text("Hello\nWorld"); ImGui::SameLine(); + ImGui::Text("Banana"); + + ImGui::Button("HOP"); ImGui::SameLine(); + ImGui::Text("Hello\nWorld"); ImGui::SameLine(); + ImGui::Text("Banana"); + + ImGui::Button("TEST"); ImGui::SameLine(); + ImGui::Text("TEST"); ImGui::SameLine(); + ImGui::SmallButton("TEST"); + + ImGui::AlignFirstTextHeightToWidgets(); // If your line starts with text, call this to align it to upcoming widgets. + ImGui::Text("Text aligned to Widget"); ImGui::SameLine(); + ImGui::Button("Widget"); ImGui::SameLine(); + ImGui::Text("Widget"); ImGui::SameLine(); + ImGui::SmallButton("Widget"); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Scrolling")) + { + ImGui::TextWrapped("Use SetScrollHere() or SetScrollFromPosY() to scroll to a given position."); + static bool track = true; + static int track_line = 50, scroll_to_px = 200; + ImGui::Checkbox("Track", &track); + ImGui::SameLine(130); track |= ImGui::DragInt("##line", &track_line, 0.25f, 0, 9999, "Line %.0f"); + bool scroll_to = ImGui::Button("Scroll To"); + ImGui::SameLine(130); scroll_to |= ImGui::DragInt("##pos_y", &scroll_to_px, 1.00f, 0, 9999, "y = %.0f px"); + if (scroll_to) track = false; + + for (int i = 0; i < 5; i++) + { + if (i > 0) ImGui::SameLine(); + ImGui::BeginGroup(); + ImGui::Text("%s", i == 0 ? "Top" : i == 1 ? "25%" : i == 2 ? "Center" : i == 3 ? "75%" : "Bottom"); + ImGui::BeginChild(ImGui::GetID((void*)i), ImVec2(ImGui::GetWindowWidth() * 0.17f, 200.0f), true); + if (scroll_to) + ImGui::SetScrollFromPosY(ImGui::GetCursorStartPos().y + scroll_to_px, i * 0.25f); + for (int line = 0; line < 100; line++) + { + if (track && line == track_line) + { + ImGui::TextColored(ImColor(255,255,0), "Line %d", line); + ImGui::SetScrollHere(i * 0.25f); // 0.0f:top, 0.5f:center, 1.0f:bottom + } + else + { + ImGui::Text("Line %d", line); + } + } + ImGui::EndChild(); + ImGui::EndGroup(); + } + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Clipping")) + { + static ImVec2 size(100, 100), offset(50, 20); + ImGui::TextWrapped("On a per-widget basis we are occasionally clipping text CPU-side if it won't fit in its frame. Otherwise we are doing coarser clipping + passing a scissor rectangle to the renderer. The system is designed to try minimizing both execution and CPU/GPU rendering cost."); + ImGui::DragFloat2("size", (float*)&size, 0.5f, 0.0f, 200.0f, "%.0f"); + ImGui::DragFloat2("offset", (float*)&offset, 0.5f, -200, 200.0f, "%.0f"); + ImVec2 pos = ImGui::GetCursorScreenPos(); + ImVec4 clip_rect(pos.x, pos.y, pos.x+size.x, pos.y+size.y); + ImGui::GetWindowDrawList()->AddRectFilled(pos, ImVec2(pos.x+size.x,pos.y+size.y), ImColor(90,90,120,255)); + ImGui::GetWindowDrawList()->AddText(ImGui::GetWindowFont(), ImGui::GetWindowFontSize()*2.0f, ImVec2(pos.x+offset.x,pos.y+offset.y), ImColor(255,255,255,255), "Line 1 hello\nLine 2 clip me!", NULL, 0.0f, &clip_rect); + ImGui::Dummy(size); + ImGui::TreePop(); + } + } + + if (ImGui::CollapsingHeader("Popups & Modal windows")) + { + if (ImGui::TreeNode("Popups")) + { + ImGui::TextWrapped("When a popup is active, it inhibits interacting with windows that are behind the popup. Clicking outside the popup closes it."); + + static int selected_fish = -1; + const char* names[] = { "Bream", "Haddock", "Mackerel", "Pollock", "Tilefish" }; + static bool toggles[] = { true, false, false, false, false }; + + if (ImGui::Button("Select..")) + ImGui::OpenPopup("select"); + ImGui::SameLine(); + ImGui::Text(selected_fish == -1 ? "" : names[selected_fish]); + if (ImGui::BeginPopup("select")) + { + ImGui::Text("Aquarium"); + ImGui::Separator(); + for (int i = 0; i < IM_ARRAYSIZE(names); i++) + if (ImGui::Selectable(names[i])) + selected_fish = i; + ImGui::EndPopup(); + } + + if (ImGui::Button("Toggle..")) + ImGui::OpenPopup("toggle"); + if (ImGui::BeginPopup("toggle")) + { + for (int i = 0; i < IM_ARRAYSIZE(names); i++) + ImGui::MenuItem(names[i], "", &toggles[i]); + if (ImGui::BeginMenu("Sub-menu")) + { + ImGui::MenuItem("Click me"); + ImGui::EndMenu(); + } + + ImGui::Separator(); + ImGui::Text("Tooltip here"); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("I am a tooltip over a popup"); + + if (ImGui::Button("Stacked Popup")) + ImGui::OpenPopup("another popup"); + if (ImGui::BeginPopup("another popup")) + { + for (int i = 0; i < IM_ARRAYSIZE(names); i++) + ImGui::MenuItem(names[i], "", &toggles[i]); + if (ImGui::BeginMenu("Sub-menu")) + { + ImGui::MenuItem("Click me"); + ImGui::EndMenu(); + } + ImGui::EndPopup(); + } + ImGui::EndPopup(); + } + + if (ImGui::Button("Popup Menu..")) + ImGui::OpenPopup("popup from button"); + if (ImGui::BeginPopup("popup from button")) + { + ShowExampleMenuFile(); + ImGui::EndPopup(); + } + + ImGui::TextWrapped("Below we are testing adding menu items to a regular window. It's rather unusual but should work!"); + ImGui::Separator(); + ImGui::MenuItem("Menu item", "CTRL+M"); + if (ImGui::BeginMenu("Menu")) + { + ShowExampleMenuFile(); + ImGui::EndMenu(); + } + ImGui::Separator(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Context menus")) + { + static float value = 0.5f; + ImGui::Text("Value = %.3f (<-- right-click here)", value); + if (ImGui::BeginPopupContextItem("item context menu")) + { + if (ImGui::Selectable("Set to zero")) value = 0.0f; + if (ImGui::Selectable("Set to PI")) value = 3.1415f; + ImGui::EndPopup(); + } + + static ImVec4 color = ImColor(1.0f, 0.0f, 1.0f, 1.0f); + ImGui::ColorButton(color); + if (ImGui::BeginPopupContextItem("color context menu")) + { + ImGui::Text("Edit color"); + ImGui::ColorEdit3("##edit", (float*)&color); + if (ImGui::Button("Close")) + ImGui::CloseCurrentPopup(); + ImGui::EndPopup(); + } + ImGui::SameLine(); ImGui::Text("(<-- right-click here)"); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Modals")) + { + ImGui::TextWrapped("Modal windows are like popups but the user cannot close them by clicking outside the window."); + + if (ImGui::Button("Delete..")) + ImGui::OpenPopup("Delete?"); + if (ImGui::BeginPopupModal("Delete?", NULL, ImGuiWindowFlags_AlwaysAutoResize)) + { + ImGui::Text("All those beautiful files will be deleted.\nThis operation cannot be undone!\n\n"); + ImGui::Separator(); + + static bool dont_ask_me_next_time = false; + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0,0)); + ImGui::Checkbox("Don't ask me next time", &dont_ask_me_next_time); + ImGui::PopStyleVar(); + + if (ImGui::Button("OK", ImVec2(120,0))) { ImGui::CloseCurrentPopup(); } + ImGui::SameLine(); + if (ImGui::Button("Cancel", ImVec2(120,0))) { ImGui::CloseCurrentPopup(); } + ImGui::EndPopup(); + } + + if (ImGui::Button("Stacked modals..")) + ImGui::OpenPopup("Stacked 1"); + if (ImGui::BeginPopupModal("Stacked 1")) + { + ImGui::Text("Hello from Stacked The First"); + + if (ImGui::Button("Another one..")) + ImGui::OpenPopup("Stacked 2"); + if (ImGui::BeginPopupModal("Stacked 2")) + { + ImGui::Text("Hello from Stacked The Second"); + if (ImGui::Button("Close")) + ImGui::CloseCurrentPopup(); + ImGui::EndPopup(); + } + + if (ImGui::Button("Close")) + ImGui::CloseCurrentPopup(); + ImGui::EndPopup(); + } + + ImGui::TreePop(); + } + } + + if (ImGui::CollapsingHeader("Columns")) + { + // Basic columns + ImGui::Text("Basic:"); + ImGui::Columns(4, "mycolumns"); + ImGui::Separator(); + ImGui::Text("ID"); ImGui::NextColumn(); + ImGui::Text("Name"); ImGui::NextColumn(); + ImGui::Text("Path"); ImGui::NextColumn(); + ImGui::Text("Flags"); ImGui::NextColumn(); + ImGui::Separator(); + const char* names[3] = { "One", "Two", "Three" }; + const char* paths[3] = { "/path/one", "/path/two", "/path/three" }; + static int selected = -1; + for (int i = 0; i < 3; i++) + { + char label[32]; + sprintf(label, "%04d", i); + if (ImGui::Selectable(label, selected == i, ImGuiSelectableFlags_SpanAllColumns)) + selected = i; + ImGui::NextColumn(); + ImGui::Text(names[i]); ImGui::NextColumn(); + ImGui::Text(paths[i]); ImGui::NextColumn(); + ImGui::Text("...."); ImGui::NextColumn(); + } + ImGui::Columns(1); + + ImGui::Separator(); + ImGui::Spacing(); + + // Scrolling columns + /* + ImGui::Text("Scrolling:"); + ImGui::BeginChild("##header", ImVec2(0, ImGui::GetTextLineHeightWithSpacing()+ImGui::GetStyle().ItemSpacing.y)); + ImGui::Columns(3); + ImGui::Text("ID"); ImGui::NextColumn(); + ImGui::Text("Name"); ImGui::NextColumn(); + ImGui::Text("Path"); ImGui::NextColumn(); + ImGui::Columns(1); + ImGui::Separator(); + ImGui::EndChild(); + ImGui::BeginChild("##scrollingregion", ImVec2(0, 60)); + ImGui::Columns(3); + for (int i = 0; i < 10; i++) + { + ImGui::Text("%04d", i); ImGui::NextColumn(); + ImGui::Text("Foobar"); ImGui::NextColumn(); + ImGui::Text("/path/foobar/%04d/", i); ImGui::NextColumn(); + } + ImGui::Columns(1); + ImGui::EndChild(); + + ImGui::Separator(); + ImGui::Spacing(); + */ + + // Create multiple items in a same cell before switching to next column + ImGui::Text("Mixed items:"); + ImGui::Columns(3, "mixed"); + ImGui::Separator(); + + static int e = 0; + ImGui::Text("Hello"); + ImGui::Button("Banana"); + ImGui::RadioButton("radio a", &e, 0); + ImGui::NextColumn(); + + ImGui::Text("ImGui"); + ImGui::Button("Apple"); + ImGui::RadioButton("radio b", &e, 1); + static float foo = 1.0f; + ImGui::InputFloat("red", &foo, 0.05f, 0, 3); + ImGui::Text("An extra line here."); + ImGui::NextColumn(); + + ImGui::Text("Sailor"); + ImGui::Button("Corniflower"); + ImGui::RadioButton("radio c", &e, 2); + static float bar = 1.0f; + ImGui::InputFloat("blue", &bar, 0.05f, 0, 3); + ImGui::NextColumn(); + + if (ImGui::CollapsingHeader("Category A")) ImGui::Text("Blah blah blah"); ImGui::NextColumn(); + if (ImGui::CollapsingHeader("Category B")) ImGui::Text("Blah blah blah"); ImGui::NextColumn(); + if (ImGui::CollapsingHeader("Category C")) ImGui::Text("Blah blah blah"); ImGui::NextColumn(); + ImGui::Columns(1); + + ImGui::Separator(); + ImGui::Spacing(); + + // Tree items + ImGui::Text("Tree items:"); + ImGui::Columns(2, "tree items"); + ImGui::Separator(); + if (ImGui::TreeNode("Hello")) { ImGui::BulletText("Sailor"); ImGui::TreePop(); } ImGui::NextColumn(); + if (ImGui::TreeNode("Bonjour")) { ImGui::BulletText("Marin"); ImGui::TreePop(); } ImGui::NextColumn(); + ImGui::Columns(1); + + ImGui::Separator(); + ImGui::Spacing(); + + // Word-wrapping + ImGui::Text("Word-wrapping:"); + ImGui::Columns(2, "word-wrapping"); + ImGui::Separator(); + ImGui::TextWrapped("The quick brown fox jumps over the lazy dog."); + ImGui::Text("Hello Left"); + ImGui::NextColumn(); + ImGui::TextWrapped("The quick brown fox jumps over the lazy dog."); + ImGui::Text("Hello Right"); + ImGui::Columns(1); + + ImGui::Separator(); + ImGui::Spacing(); + + if (ImGui::TreeNode("Inside a tree..")) + { + if (ImGui::TreeNode("node 1 (with borders)")) + { + ImGui::Columns(4); + for (int i = 0; i < 8; i++) + { + ImGui::Text("%c%c%c", 'a'+i, 'a'+i, 'a'+i); + ImGui::NextColumn(); + } + ImGui::Columns(1); + ImGui::TreePop(); + } + if (ImGui::TreeNode("node 2 (without borders)")) + { + ImGui::Columns(4, NULL, false); + for (int i = 0; i < 8; i++) + { + ImGui::Text("%c%c%c", 'a'+i, 'a'+i, 'a'+i); + ImGui::NextColumn(); + } + ImGui::Columns(1); + ImGui::TreePop(); + } + ImGui::TreePop(); + } + } + + if (ImGui::CollapsingHeader("Filtering")) + { + static ImGuiTextFilter filter; + ImGui::Text("Filter usage:\n" + " \"\" display all lines\n" + " \"xxx\" display lines containing \"xxx\"\n" + " \"xxx,yyy\" display lines containing \"xxx\" or \"yyy\"\n" + " \"-xxx\" hide lines containing \"xxx\""); + filter.Draw(); + const char* lines[] = { "aaa1.c", "bbb1.c", "ccc1.c", "aaa2.cpp", "bbb2.cpp", "ccc2.cpp", "abc.h", "hello, world" }; + for (int i = 0; i < IM_ARRAYSIZE(lines); i++) + if (filter.PassFilter(lines[i])) + ImGui::BulletText("%s", lines[i]); + } + + if (ImGui::CollapsingHeader("Keyboard, Mouse & Focus")) + { + if (ImGui::TreeNode("Tabbing")) + { + ImGui::Text("Use TAB/SHIFT+TAB to cycle through keyboard editable fields."); + static char buf[32] = "dummy"; + ImGui::InputText("1", buf, IM_ARRAYSIZE(buf)); + ImGui::InputText("2", buf, IM_ARRAYSIZE(buf)); + ImGui::InputText("3", buf, IM_ARRAYSIZE(buf)); + ImGui::PushAllowKeyboardFocus(false); + ImGui::InputText("4 (tab skip)", buf, IM_ARRAYSIZE(buf)); + //ImGui::SameLine(); ShowHelperMarker("Use ImGui::PushAllowKeyboardFocus(bool)\nto disable tabbing through certain widgets."); + ImGui::PopAllowKeyboardFocus(); + ImGui::InputText("5", buf, IM_ARRAYSIZE(buf)); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Focus from code")) + { + bool focus_1 = ImGui::Button("Focus on 1"); ImGui::SameLine(); + bool focus_2 = ImGui::Button("Focus on 2"); ImGui::SameLine(); + bool focus_3 = ImGui::Button("Focus on 3"); + int has_focus = 0; + static char buf[128] = "click on a button to set focus"; + + if (focus_1) ImGui::SetKeyboardFocusHere(); + ImGui::InputText("1", buf, IM_ARRAYSIZE(buf)); + if (ImGui::IsItemActive()) has_focus = 1; + + if (focus_2) ImGui::SetKeyboardFocusHere(); + ImGui::InputText("2", buf, IM_ARRAYSIZE(buf)); + if (ImGui::IsItemActive()) has_focus = 2; + + ImGui::PushAllowKeyboardFocus(false); + if (focus_3) ImGui::SetKeyboardFocusHere(); + ImGui::InputText("3 (tab skip)", buf, IM_ARRAYSIZE(buf)); + if (ImGui::IsItemActive()) has_focus = 3; + ImGui::PopAllowKeyboardFocus(); + if (has_focus) + ImGui::Text("Item with focus: %d", has_focus); + else + ImGui::Text("Item with focus: "); + ImGui::TextWrapped("Cursor & selection are preserved when refocusing last used item in code."); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Dragging")) + { + ImGui::TextWrapped("You can use ImGui::GetItemActiveDragDelta() to query for the dragged amount on any widget."); + ImGui::Button("Drag Me"); + if (ImGui::IsItemActive()) + { + // Draw a line between the button and the mouse cursor + ImDrawList* draw_list = ImGui::GetWindowDrawList(); + draw_list->PushClipRectFullScreen(); + draw_list->AddLine(ImGui::CalcItemRectClosestPoint(ImGui::GetIO().MousePos, true, -2.0f), ImGui::GetIO().MousePos, ImColor(ImGui::GetStyle().Colors[ImGuiCol_Button]), 4.0f); + draw_list->PopClipRect(); + ImVec2 value_raw = ImGui::GetMouseDragDelta(0, 0.0f); + ImVec2 value_with_lock_threshold = ImGui::GetMouseDragDelta(0); + ImGui::SameLine(); ImGui::Text("Raw (%.1f, %.1f), WithLockThresold (%.1f, %.1f)", value_raw.x, value_raw.y, value_with_lock_threshold.x, value_with_lock_threshold.y); + } + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Keyboard & Mouse State")) + { + ImGuiIO& io = ImGui::GetIO(); + + ImGui::Text("MousePos: (%g, %g)", io.MousePos.x, io.MousePos.y); + ImGui::Text("Mouse down:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (io.MouseDownDuration[i] >= 0.0f) { ImGui::SameLine(); ImGui::Text("%d (%.02f secs)", i, io.MouseDownDuration[i]); } + ImGui::Text("Mouse clicked:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseClicked(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } + ImGui::Text("Mouse released:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseReleased(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } + ImGui::Text("MouseWheel: %.1f", io.MouseWheel); + + ImGui::Text("Keys down:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (io.KeysDownDuration[i] >= 0.0f) { ImGui::SameLine(); ImGui::Text("%d (%.02f secs)", i, io.KeysDownDuration[i]); } + ImGui::Text("Keys pressed:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (ImGui::IsKeyPressed(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } + ImGui::Text("Keys release:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (ImGui::IsKeyReleased(i)) { ImGui::SameLine(); ImGui::Text("%d", i); } + ImGui::Text("KeyMods: %s%s%s", io.KeyCtrl ? "CTRL " : "", io.KeyShift ? "SHIFT " : "", io.KeyAlt ? "ALT " : ""); + + ImGui::Text("WantCaptureMouse: %s", io.WantCaptureMouse ? "true" : "false"); + ImGui::Text("WantCaptureKeyboard: %s", io.WantCaptureKeyboard ? "true" : "false"); + + ImGui::Button("Hover me\nto enforce\ninputs capture"); + if (ImGui::IsItemHovered()) + ImGui::CaptureKeyboardFromApp(); + + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Mouse cursors")) + { + ImGui::TextWrapped("Your application can render a different mouse cursor based on what ImGui::GetMouseCursor() returns. You can also set io.MouseDrawCursor to ask ImGui to render the cursor for you in software."); + ImGui::Checkbox("io.MouseDrawCursor", &ImGui::GetIO().MouseDrawCursor); + ImGui::Text("Hover to see mouse cursors:"); + for (int i = 0; i < ImGuiMouseCursor_Count_; i++) + { + char label[32]; + sprintf(label, "Mouse cursor %d", i); + ImGui::Bullet(); ImGui::Selectable(label, false); + if (ImGui::IsItemHovered()) + ImGui::SetMouseCursor(i); + } + ImGui::TreePop(); + } + } + + ImGui::End(); +} + +void ImGui::ShowStyleEditor(ImGuiStyle* ref) +{ + ImGuiStyle& style = ImGui::GetStyle(); + + const ImGuiStyle def; // Default style + if (ImGui::Button("Revert Style")) + style = ref ? *ref : def; + if (ref) + { + ImGui::SameLine(); + if (ImGui::Button("Save Style")) + *ref = style; + } + + ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.55f); + + if (ImGui::TreeNode("Rendering")) + { + ImGui::Checkbox("Anti-aliased lines", &style.AntiAliasedLines); + ImGui::Checkbox("Anti-aliased shapes", &style.AntiAliasedShapes); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Sizes")) + { + ImGui::SliderFloat("Alpha", &style.Alpha, 0.20f, 1.0f, "%.2f"); // Not exposing zero here so user doesn't "lose" the UI. But application code could have a toggle to switch between zero and non-zero. + ImGui::SliderFloat2("WindowPadding", (float*)&style.WindowPadding, 0.0f, 20.0f, "%.0f"); + ImGui::SliderFloat("WindowRounding", &style.WindowRounding, 0.0f, 16.0f, "%.0f"); + ImGui::SliderFloat("ChildWindowRounding", &style.ChildWindowRounding, 0.0f, 16.0f, "%.0f"); + ImGui::SliderFloat2("FramePadding", (float*)&style.FramePadding, 0.0f, 20.0f, "%.0f"); + ImGui::SliderFloat("FrameRounding", &style.FrameRounding, 0.0f, 16.0f, "%.0f"); + ImGui::SliderFloat2("ItemSpacing", (float*)&style.ItemSpacing, 0.0f, 20.0f, "%.0f"); + ImGui::SliderFloat2("ItemInnerSpacing", (float*)&style.ItemInnerSpacing, 0.0f, 20.0f, "%.0f"); + ImGui::SliderFloat2("TouchExtraPadding", (float*)&style.TouchExtraPadding, 0.0f, 10.0f, "%.0f"); + ImGui::SliderFloat("IndentSpacing", &style.IndentSpacing, 0.0f, 30.0f, "%.0f"); + ImGui::SliderFloat("ScrollbarWidth", &style.ScrollbarWidth, 1.0f, 20.0f, "%.0f"); + ImGui::SliderFloat("ScrollbarRounding", &style.ScrollbarRounding, 0.0f, 16.0f, "%.0f"); + ImGui::SliderFloat("GrabMinSize", &style.GrabMinSize, 1.0f, 20.0f, "%.0f"); + ImGui::SliderFloat("GrabRounding", &style.GrabRounding, 0.0f, 16.0f, "%.0f"); + ImGui::TreePop(); + } + + if (ImGui::TreeNode("Colors")) + { + static int output_dest = 0; + static bool output_only_modified = false; + if (ImGui::Button("Output Colors")) + { + if (output_dest == 0) + ImGui::LogToClipboard(); + else + ImGui::LogToTTY(); + ImGui::LogText("ImGuiStyle& style = ImGui::GetStyle();" IM_NEWLINE); + for (int i = 0; i < ImGuiCol_COUNT; i++) + { + const ImVec4& col = style.Colors[i]; + const char* name = ImGui::GetStyleColName(i); + if (!output_only_modified || memcmp(&col, (ref ? &ref->Colors[i] : &def.Colors[i]), sizeof(ImVec4)) != 0) + ImGui::LogText("style.Colors[ImGuiCol_%s]%*s= ImVec4(%.2ff, %.2ff, %.2ff, %.2ff);" IM_NEWLINE, name, 22 - strlen(name), "", col.x, col.y, col.z, col.w); + } + ImGui::LogFinish(); + } + ImGui::SameLine(); ImGui::PushItemWidth(120); ImGui::Combo("##output_type", &output_dest, "To Clipboard\0To TTY"); ImGui::PopItemWidth(); + ImGui::SameLine(); ImGui::Checkbox("Only Modified Fields", &output_only_modified); + + static ImGuiColorEditMode edit_mode = ImGuiColorEditMode_RGB; + ImGui::RadioButton("RGB", &edit_mode, ImGuiColorEditMode_RGB); + ImGui::SameLine(); + ImGui::RadioButton("HSV", &edit_mode, ImGuiColorEditMode_HSV); + ImGui::SameLine(); + ImGui::RadioButton("HEX", &edit_mode, ImGuiColorEditMode_HEX); + //ImGui::Text("Tip: Click on colored square to change edit mode."); + + static ImGuiTextFilter filter; + filter.Draw("Filter colors", 200); + + ImGui::BeginChild("#colors", ImVec2(0, 300), true); + ImGui::PushItemWidth(-160); + ImGui::ColorEditMode(edit_mode); + for (int i = 0; i < ImGuiCol_COUNT; i++) + { + const char* name = ImGui::GetStyleColName(i); + if (!filter.PassFilter(name)) + continue; + ImGui::PushID(i); + ImGui::ColorEdit4(name, (float*)&style.Colors[i], true); + if (memcmp(&style.Colors[i], (ref ? &ref->Colors[i] : &def.Colors[i]), sizeof(ImVec4)) != 0) + { + ImGui::SameLine(); if (ImGui::Button("Revert")) style.Colors[i] = ref ? ref->Colors[i] : def.Colors[i]; + if (ref) { ImGui::SameLine(); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i]; } + } + ImGui::PopID(); + } + ImGui::PopItemWidth(); + ImGui::EndChild(); + + ImGui::TreePop(); + } + + ImGui::PopItemWidth(); +} + +static void ShowExampleAppMainMenuBar() +{ + if (ImGui::BeginMainMenuBar()) + { + if (ImGui::BeginMenu("File")) + { + ShowExampleMenuFile(); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Edit")) + { + if (ImGui::MenuItem("Undo", "CTRL+Z")) {} + if (ImGui::MenuItem("Redo", "CTRL+Y", false, false)) {} // Disabled item + ImGui::Separator(); + if (ImGui::MenuItem("Cut", "CTRL+X")) {} + if (ImGui::MenuItem("Copy", "CTRL+C")) {} + if (ImGui::MenuItem("Paste", "CTRL+V")) {} + ImGui::EndMenu(); + } + ImGui::EndMainMenuBar(); + } +} + +static void ShowExampleMenuFile() +{ + ImGui::MenuItem("(dummy menu)", NULL, false, false); + if (ImGui::MenuItem("New")) {} + if (ImGui::MenuItem("Open", "Ctrl+O")) {} + if (ImGui::BeginMenu("Open Recent")) + { + ImGui::MenuItem("fish_hat.c"); + ImGui::MenuItem("fish_hat.inl"); + ImGui::MenuItem("fish_hat.h"); + if (ImGui::BeginMenu("More..")) + { + ImGui::MenuItem("Hello"); + ImGui::MenuItem("Sailor"); + if (ImGui::BeginMenu("Recurse..")) + { + ShowExampleMenuFile(); + ImGui::EndMenu(); + } + ImGui::EndMenu(); + } + ImGui::EndMenu(); + } + if (ImGui::MenuItem("Save", "Ctrl+S")) {} + if (ImGui::MenuItem("Save As..")) {} + ImGui::Separator(); + if (ImGui::BeginMenu("Options")) + { + static bool enabled = true; + ImGui::MenuItem("Enabled", "", &enabled); + ImGui::BeginChild("child", ImVec2(0, 60), true); + for (int i = 0; i < 10; i++) + ImGui::Text("Scrolling Text %d", i); + ImGui::EndChild(); + static float f = 0.5f; + static int n = 0; + ImGui::SliderFloat("Value", &f, 0.0f, 1.0f); + ImGui::InputFloat("Input", &f, 0.1f); + ImGui::Combo("Combo", &n, "Yes\0No\0Maybe\0\0"); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Colors")) + { + for (int i = 0; i < ImGuiCol_COUNT; i++) + ImGui::MenuItem(ImGui::GetStyleColName((ImGuiCol)i)); + ImGui::EndMenu(); + } + if (ImGui::BeginMenu("Disabled", false)) // Disabled + { + IM_ASSERT(0); + } + if (ImGui::MenuItem("Checked", NULL, true)) {} + if (ImGui::MenuItem("Quit", "Alt+F4")) {} +} + +static void ShowExampleAppAutoResize(bool* opened) +{ + if (!ImGui::Begin("Example: Auto-resizing window", opened, ImGuiWindowFlags_AlwaysAutoResize)) + { + ImGui::End(); + return; + } + + static int lines = 10; + ImGui::Text("Window will resize every-frame to the size of its content.\nNote that you probably don't want to query the window size to\noutput your content because that would create a feedback loop."); + ImGui::SliderInt("Number of lines", &lines, 1, 20); + for (int i = 0; i < lines; i++) + ImGui::Text("%*sThis is line %d", i*4, "", i); // Pad with space to extend size horizontally + ImGui::End(); +} + +static void ShowExampleAppFixedOverlay(bool* opened) +{ + ImGui::SetNextWindowPos(ImVec2(10,10)); + if (!ImGui::Begin("Example: Fixed Overlay", opened, ImVec2(0,0), 0.3f, ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoSavedSettings)) + { + ImGui::End(); + return; + } + ImGui::Text("Simple overlay\non the top-left side of the screen."); + ImGui::Separator(); + ImGui::Text("Mouse Position: (%.1f,%.1f)", ImGui::GetIO().MousePos.x, ImGui::GetIO().MousePos.y); + ImGui::End(); +} + +static void ShowExampleAppManipulatingWindowTitle(bool* opened) +{ + (void)opened; + + // By default, Windows are uniquely identified by their title. + // You can use the "##" and "###" markers to manipulate the display/ID. Read FAQ at the top of this file! + + // Using "##" to display same title but have unique identifier. + ImGui::SetNextWindowPos(ImVec2(100,100), ImGuiSetCond_FirstUseEver); + ImGui::Begin("Same title as another window##1"); + ImGui::Text("This is window 1.\nMy title is the same as window 2, but my identifier is unique."); + ImGui::End(); + + ImGui::SetNextWindowPos(ImVec2(100,200), ImGuiSetCond_FirstUseEver); + ImGui::Begin("Same title as another window##2"); + ImGui::Text("This is window 2.\nMy title is the same as window 1, but my identifier is unique."); + ImGui::End(); + + // Using "###" to display a changing title but keep a static identifier "AnimatedTitle" + char buf[128]; + sprintf(buf, "Animated title %c %d###AnimatedTitle", "|/-\\"[(int)(ImGui::GetTime()/0.25f)&3], rand()); + ImGui::SetNextWindowPos(ImVec2(100,300), ImGuiSetCond_FirstUseEver); + ImGui::Begin(buf); + ImGui::Text("This window has a changing title."); + ImGui::End(); +} + +static void ShowExampleAppCustomRendering(bool* opened) +{ + ImGui::SetNextWindowSize(ImVec2(300,350), ImGuiSetCond_FirstUseEver); + if (!ImGui::Begin("Example: Custom rendering", opened)) + { + ImGui::End(); + return; + } + + // Tip: If you do a lot of custom rendering, you probably want to use your own geometrical types and benefit of overloaded operators, etc. + // Define IM_VEC2_CLASS_EXTRA in imconfig.h to create implicit conversions between your types and ImVec2/ImVec4. + // ImGui defines overloaded operators but they are internal to imgui.cpp and not exposed outside (to avoid messing with your types) + // In this example we aren't using the operators. + + static ImVector points; + static bool adding_line = false; + if (ImGui::Button("Clear")) points.clear(); + if (points.Size >= 2) { ImGui::SameLine(); if (ImGui::Button("Undo")) { points.pop_back(); points.pop_back(); } } + ImGui::Text("Left-click and drag to add lines"); + ImGui::Text("Right-click to undo"); + + ImDrawList* draw_list = ImGui::GetWindowDrawList(); + + // Here we are using InvisibleButton() as a convenience to 1) advance the cursor and 2) allows us to use IsItemHovered() + // However you can draw directly and poll mouse/keyboard by yourself. You can manipulate the cursor using GetCursorPos() and SetCursorPos(). + // If you only use the ImDrawList API, you can notify the owner window of its extends by using SetCursorPos(max). + ImVec2 canvas_pos = ImGui::GetCursorScreenPos(); // ImDrawList API uses screen coordinates! + ImVec2 canvas_size = ImGui::GetContentRegionAvail(); // Resize canvas to what's available + if (canvas_size.x < 50.0f) canvas_size.x = 50.0f; + if (canvas_size.y < 50.0f) canvas_size.y = 50.0f; + draw_list->AddRectFilledMultiColor(canvas_pos, ImVec2(canvas_pos.x + canvas_size.x, canvas_pos.y + canvas_size.y), ImColor(0,0,0), ImColor(255,0,0), ImColor(255,255,0), ImColor(0,255,0)); + draw_list->AddRect(canvas_pos, ImVec2(canvas_pos.x + canvas_size.x, canvas_pos.y + canvas_size.y), ImColor(255,255,255)); + bool adding_preview = false; + ImGui::InvisibleButton("canvas", canvas_size); + if (ImGui::IsItemHovered()) + { + ImVec2 mouse_pos_in_canvas = ImVec2(ImGui::GetIO().MousePos.x - canvas_pos.x, ImGui::GetIO().MousePos.y - canvas_pos.y); + if (!adding_line && ImGui::GetIO().MouseClicked[0]) + { + points.push_back(mouse_pos_in_canvas); + adding_line = true; + } + if (adding_line) + { + adding_preview = true; + points.push_back(mouse_pos_in_canvas); + if (!ImGui::GetIO().MouseDown[0]) + adding_line = adding_preview = false; + } + if (ImGui::GetIO().MouseClicked[1] && !points.empty()) + { + adding_line = false; + points.pop_back(); + points.pop_back(); + } + } + draw_list->PushClipRect(ImVec4(canvas_pos.x, canvas_pos.y, canvas_pos.x+canvas_size.x, canvas_pos.y+canvas_size.y)); // clip lines within the canvas (if we resize it, etc.) + for (int i = 0; i < points.Size - 1; i += 2) + draw_list->AddLine(ImVec2(canvas_pos.x + points[i].x, canvas_pos.y + points[i].y), ImVec2(canvas_pos.x + points[i+1].x, canvas_pos.y + points[i+1].y), 0xFF00FFFF); + draw_list->PopClipRect(); + if (adding_preview) + points.pop_back(); + ImGui::End(); +} + +// For the console example, here we are using a more C++ like approach of declaring a class to hold the data and the functions. +struct ExampleAppConsole +{ + char InputBuf[256]; + ImVector Items; + bool ScrollToBottom; + ImVector History; + int HistoryPos; // -1: new line, 0..History.Size-1 browsing history. + ImVector Commands; + + ExampleAppConsole() + { + ClearLog(); + HistoryPos = -1; + Commands.push_back("HELP"); + Commands.push_back("HISTORY"); + Commands.push_back("CLEAR"); + Commands.push_back("CLASSIFY"); // "classify" is here to provide an example of "C"+[tab] completing to "CL" and displaying matches. + } + ~ExampleAppConsole() + { + ClearLog(); + for (int i = 0; i < Items.Size; i++) + free(History[i]); + } + + void ClearLog() + { + for (int i = 0; i < Items.Size; i++) + free(Items[i]); + Items.clear(); + ScrollToBottom = true; + } + + void AddLog(const char* fmt, ...) + { + char buf[1024]; + va_list args; + va_start(args, fmt); + vsnprintf(buf, IM_ARRAYSIZE(buf), fmt, args); + buf[IM_ARRAYSIZE(buf)-1] = 0; + va_end(args); + Items.push_back(strdup(buf)); + ScrollToBottom = true; + } + + void Run(const char* title, bool* opened) + { + ImGui::SetNextWindowSize(ImVec2(520,600), ImGuiSetCond_FirstUseEver); + if (!ImGui::Begin(title, opened)) + { + ImGui::End(); + return; + } + + ImGui::TextWrapped("This example implements a console with basic coloring, completion and history. A more elaborate implementation may want to store entries along with extra data such as timestamp, emitter, etc."); + ImGui::TextWrapped("Enter 'HELP' for help, press TAB to use text completion."); + + // TODO: display items starting from the bottom + + if (ImGui::SmallButton("Add Dummy Text")) { AddLog("%d some text", Items.Size); AddLog("some more text"); AddLog("display very important message here!"); } ImGui::SameLine(); + if (ImGui::SmallButton("Add Dummy Error")) AddLog("[error] something went wrong"); ImGui::SameLine(); + if (ImGui::SmallButton("Clear")) ClearLog(); + //static float t = 0.0f; if (ImGui::GetTime() - t > 0.02f) { t = ImGui::GetTime(); AddLog("Spam %f", t); } + + ImGui::Separator(); + + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0,0)); + static ImGuiTextFilter filter; + filter.Draw("Filter (\"incl,-excl\") (\"error\")", 180); + ImGui::PopStyleVar(); + ImGui::Separator(); + + // Display every line as a separate entry so we can change their color or add custom widgets. If you only want raw text you can use ImGui::TextUnformatted(log.begin(), log.end()); + // NB- if you have thousands of entries this approach may be too inefficient. You can seek and display only the lines that are visible - CalcListClipping() is a helper to compute this information. + // If your items are of variable size you may want to implement code similar to what CalcListClipping() does. Or split your data into fixed height items to allow random-seeking into your list. + ImGui::BeginChild("ScrollingRegion", ImVec2(0,-ImGui::GetItemsLineHeightWithSpacing())); + if (ImGui::BeginPopupContextWindow()) + { + if (ImGui::Selectable("Clear")) ClearLog(); + ImGui::EndPopup(); + } + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(4,1)); // Tighten spacing + for (int i = 0; i < Items.Size; i++) + { + const char* item = Items[i]; + if (!filter.PassFilter(item)) + continue; + ImVec4 col = ImColor(255,255,255); // A better implementation may store a type per-item. For the sample let's just parse the text. + if (strstr(item, "[error]")) col = ImColor(255,100,100); + else if (strncmp(item, "# ", 2) == 0) col = ImColor(255,200,150); + ImGui::PushStyleColor(ImGuiCol_Text, col); + ImGui::TextUnformatted(item); + ImGui::PopStyleColor(); + } + if (ScrollToBottom) + ImGui::SetScrollHere(); + ScrollToBottom = false; + ImGui::PopStyleVar(); + ImGui::EndChild(); + ImGui::Separator(); + + // Command-line + if (ImGui::InputText("Input", InputBuf, IM_ARRAYSIZE(InputBuf), ImGuiInputTextFlags_EnterReturnsTrue|ImGuiInputTextFlags_CallbackCompletion|ImGuiInputTextFlags_CallbackHistory, &TextEditCallbackStub, (void*)this)) + { + char* input_end = InputBuf+strlen(InputBuf); + while (input_end > InputBuf && input_end[-1] == ' ') input_end--; *input_end = 0; + if (InputBuf[0]) + ExecCommand(InputBuf); + strcpy(InputBuf, ""); + } + + // Demonstrate keeping auto focus on the input box + if (ImGui::IsItemHovered() || (ImGui::IsRootWindowOrAnyChildFocused() && !ImGui::IsAnyItemActive() && !ImGui::IsMouseClicked(0))) + ImGui::SetKeyboardFocusHere(-1); // Auto focus + + ImGui::End(); + } + + static int Stricmp(const char* str1, const char* str2) { int d; while ((d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; } return d; } + static int Strnicmp(const char* str1, const char* str2, int count) { int d = 0; while (count > 0 && (d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; count--; } return d; } + + void ExecCommand(const char* command_line) + { + AddLog("# %s\n", command_line); + + // Insert into history. First find match and delete it so it can be pushed to the back. This isn't trying to be smart or optimal. + HistoryPos = -1; + for (int i = History.Size-1; i >= 0; i--) + if (Stricmp(History[i], command_line) == 0) + { + free(History[i]); + History.erase(History.begin() + i); + break; + } + History.push_back(strdup(command_line)); + + // Process command + if (Stricmp(command_line, "CLEAR") == 0) + { + ClearLog(); + } + else if (Stricmp(command_line, "HELP") == 0) + { + AddLog("Commands:"); + for (int i = 0; i < Commands.Size; i++) + AddLog("- %s", Commands[i]); + } + else if (Stricmp(command_line, "HISTORY") == 0) + { + for (int i = History.Size >= 10 ? History.Size - 10 : 0; i < History.Size; i++) + AddLog("%3d: %s\n", i, History[i]); + } + else + { + AddLog("Unknown command: '%s'\n", command_line); + } + } + + static int TextEditCallbackStub(ImGuiTextEditCallbackData* data) // In C++11 you are better off using lambdas for this sort of forwarding callbacks + { + ExampleAppConsole* console = (ExampleAppConsole*)data->UserData; + return console->TextEditCallback(data); + } + + int TextEditCallback(ImGuiTextEditCallbackData* data) + { + //AddLog("cursor: %d, selection: %d-%d", data->CursorPos, data->SelectionStart, data->SelectionEnd); + switch (data->EventFlag) + { + case ImGuiInputTextFlags_CallbackCompletion: + { + // Example of TEXT COMPLETION + + // Locate beginning of current word + const char* word_end = data->Buf + data->CursorPos; + const char* word_start = word_end; + while (word_start > data->Buf) + { + const char c = word_start[-1]; + if (c == ' ' || c == '\t' || c == ',' || c == ';') + break; + word_start--; + } + + // Build a list of candidates + ImVector candidates; + for (int i = 0; i < Commands.Size; i++) + if (Strnicmp(Commands[i], word_start, (int)(word_end-word_start)) == 0) + candidates.push_back(Commands[i]); + + if (candidates.Size == 0) + { + // No match + AddLog("No match for \"%.*s\"!\n", word_end-word_start, word_start); + } + else if (candidates.Size == 1) + { + // Single match. Delete the beginning of the word and replace it entirely so we've got nice casing + data->DeleteChars((int)(word_start-data->Buf), (int)(word_end-word_start)); + data->InsertChars(data->CursorPos, candidates[0]); + data->InsertChars(data->CursorPos, " "); + } + else + { + // Multiple matches. Complete as much as we can, so inputing "C" will complete to "CL" and display "CLEAR" and "CLASSIFY" + int match_len = (int)(word_end - word_start); + for (;;) + { + int c = 0; + bool all_candidates_matches = true; + for (int i = 0; i < candidates.Size && all_candidates_matches; i++) + if (i == 0) + c = toupper(candidates[i][match_len]); + else if (c != toupper(candidates[i][match_len])) + all_candidates_matches = false; + if (!all_candidates_matches) + break; + match_len++; + } + + if (match_len > 0) + { + data->DeleteChars((int)(word_start - data->Buf), (int)(word_end-word_start)); + data->InsertChars(data->CursorPos, candidates[0], candidates[0] + match_len); + } + + // List matches + AddLog("Possible matches:\n"); + for (int i = 0; i < candidates.Size; i++) + AddLog("- %s\n", candidates[i]); + } + + break; + } + case ImGuiInputTextFlags_CallbackHistory: + { + // Example of HISTORY + const int prev_history_pos = HistoryPos; + if (data->EventKey == ImGuiKey_UpArrow) + { + if (HistoryPos == -1) + HistoryPos = History.Size - 1; + else if (HistoryPos > 0) + HistoryPos--; + } + else if (data->EventKey == ImGuiKey_DownArrow) + { + if (HistoryPos != -1) + if (++HistoryPos >= History.Size) + HistoryPos = -1; + } + + // A better implementation would preserve the data on the current input line along with cursor position. + if (prev_history_pos != HistoryPos) + { + snprintf(data->Buf, data->BufSize, "%s", (HistoryPos >= 0) ? History[HistoryPos] : ""); + data->BufDirty = true; + data->CursorPos = data->SelectionStart = data->SelectionEnd = (int)strlen(data->Buf); + } + } + } + return 0; + } +}; + +static void ShowExampleAppConsole(bool* opened) +{ + static ExampleAppConsole console; + console.Run("Example: Console", opened); +} + +static void ShowExampleAppLayout(bool* opened) +{ + ImGui::SetNextWindowSize(ImVec2(500, 440), ImGuiSetCond_FirstUseEver); + if (ImGui::Begin("Example: Layout", opened, ImGuiWindowFlags_MenuBar)) + { + if (ImGui::BeginMenuBar()) + { + if (ImGui::BeginMenu("File")) + { + if (ImGui::MenuItem("Close")) *opened = false; + ImGui::EndMenu(); + } + ImGui::EndMenuBar(); + } + + // left + static int selected = 0; + ImGui::BeginChild("left pane", ImVec2(150, 0), true); + for (int i = 0; i < 100; i++) + { + char label[128]; + sprintf(label, "MyObject %d", i); + if (ImGui::Selectable(label, selected == i)) + selected = i; + } + ImGui::EndChild(); + ImGui::SameLine(); + + // right + ImGui::BeginGroup(); + ImGui::BeginChild("item view", ImVec2(0, -ImGui::GetItemsLineHeightWithSpacing())); // Leave room for 1 line below us + ImGui::Text("MyObject: %d", selected); + ImGui::Separator(); + ImGui::TextWrapped("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "); + ImGui::EndChild(); + ImGui::BeginChild("buttons"); + if (ImGui::Button("Revert")) {} + ImGui::SameLine(); + if (ImGui::Button("Save")) {} + ImGui::EndChild(); + ImGui::EndGroup(); + } + ImGui::End(); +} + +static void ShowExampleAppLongText(bool* opened) +{ + ImGui::SetNextWindowSize(ImVec2(520,600), ImGuiSetCond_FirstUseEver); + if (!ImGui::Begin("Example: Long text display", opened)) + { + ImGui::End(); + return; + } + + static int test_type = 0; + static ImGuiTextBuffer log; + static int lines = 0; + ImGui::Text("Printing unusually long amount of text."); + ImGui::Combo("Test type", &test_type, "Single call to TextUnformatted()\0Multiple calls to Text(), clipped manually\0Multiple calls to Text(), not clipped"); + ImGui::Text("Buffer contents: %d lines, %d bytes", lines, log.size()); + if (ImGui::Button("Clear")) { log.clear(); lines = 0; } + ImGui::SameLine(); + if (ImGui::Button("Add 1000 lines")) + { + for (int i = 0; i < 1000; i++) + log.append("%i The quick brown fox jumps over the lazy dog\n", lines+i); + lines += 1000; + } + ImGui::BeginChild("Log"); + switch (test_type) + { + case 0: + // Single call to TextUnformatted() with a big buffer + ImGui::TextUnformatted(log.begin(), log.end()); + break; + case 1: + // Multiple calls to Text(), manually coarsely clipped - demonstrate how to use the CalcListClipping() helper. + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0,0)); + int display_start, display_end; + ImGui::CalcListClipping(lines, ImGui::GetTextLineHeight(), &display_start, &display_end); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (display_start) * ImGui::GetTextLineHeight()); + for (int i = display_start; i < display_end; i++) + ImGui::Text("%i The quick brown fox jumps over the lazy dog\n", i); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + (lines - display_end) * ImGui::GetTextLineHeight()); + ImGui::PopStyleVar(); + break; + case 2: + // Multiple calls to Text(), not clipped (slow) + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0,0)); + for (int i = 0; i < lines; i++) + ImGui::Text("%i The quick brown fox jumps over the lazy dog\n", i); + ImGui::PopStyleVar(); + break; + } + ImGui::EndChild(); + ImGui::End(); +} + +// End of Demo code +#else + +void ImGui::ShowTestWindow(bool*) {} +void ImGui::ShowUserGuide(bool*) {} +void ImGui::ShowStyleEditor(bool*) {} + +#endif diff --git a/samples/dual_layer/D3D12/src/imgui/imgui_draw.cpp b/samples/dual_layer/D3D12/src/imgui/imgui_draw.cpp new file mode 100644 index 0000000..d4d8ccb --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/imgui_draw.cpp @@ -0,0 +1,2108 @@ +// ImGui library v1.44 +// Drawing and font code + +// Contains implementation for +// - ImDrawList +// - ImDrawData +// - ImFontAtlas +// - ImFont +// - Default font data + +#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) +#define _CRT_SECURE_NO_WARNINGS +#endif + +#include "imgui.h" +#define IMGUI_DEFINE_MATH_OPERATORS +#include "imgui_internal.h" + +#include // vsnprintf, sscanf, printf +#include // new (ptr) +#ifndef alloca +#if defined(_MSC_VER) || defined(__MINGW32__) +#include // alloca +#else +#include // alloca +#endif +#endif + +#ifdef _MSC_VER +#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) +#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen +#define snprintf _snprintf +#endif + +//------------------------------------------------------------------------- +// STB libraries implementation +//------------------------------------------------------------------------- + +//#define IMGUI_STB_NAMESPACE ImGuiStb +//#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION +//#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION + +#ifdef IMGUI_STB_NAMESPACE +namespace IMGUI_STB_NAMESPACE +{ +#endif + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-function" +#pragma clang diagnostic ignored "-Wmissing-prototypes" +#endif + +#define STBRP_ASSERT(x) IM_ASSERT(x) +#ifndef IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION +#define STBRP_STATIC +#define STB_RECT_PACK_IMPLEMENTATION +#endif +#include "stb_rect_pack.h" + +#define STBTT_malloc(x,u) ((void)(u), ImGui::MemAlloc(x)) +#define STBTT_free(x,u) ((void)(u), ImGui::MemFree(x)) +#define STBTT_assert(x) IM_ASSERT(x) +#ifndef IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION +#define STBTT_STATIC +#define STB_TRUETYPE_IMPLEMENTATION +#else +#define STBTT_DEF extern +#endif +#include "stb_truetype.h" + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +#ifdef IMGUI_STB_NAMESPACE +} // namespace ImGuiStb +using namespace IMGUI_STB_NAMESPACE; +#endif + +//----------------------------------------------------------------------------- +// ImDrawList +//----------------------------------------------------------------------------- + +static ImVec4 GNullClipRect(-9999.0f,-9999.0f, +9999.0f, +9999.0f); + +void ImDrawList::Clear() +{ + CmdBuffer.resize(0); + IdxBuffer.resize(0); + VtxBuffer.resize(0); + _VtxCurrentIdx = 0; + _VtxWritePtr = NULL; + _IdxWritePtr = NULL; + _ClipRectStack.resize(0); + _TextureIdStack.resize(0); + _Path.resize(0); + _ChannelCurrent = 0; + // NB: Do not clear channels so our allocations are re-used after the first frame. +} + +void ImDrawList::ClearFreeMemory() +{ + CmdBuffer.clear(); + IdxBuffer.clear(); + VtxBuffer.clear(); + _VtxCurrentIdx = 0; + _VtxWritePtr = NULL; + _IdxWritePtr = NULL; + _ClipRectStack.clear(); + _TextureIdStack.clear(); + _Path.clear(); + _ChannelCurrent = 0; + for (int i = 0; i < _Channels.Size; i++) + { + if (i == 0) memset(&_Channels[0], 0, sizeof(_Channels[0])); // channel 0 is a copy of CmdBuffer/IdxBuffer, don't destruct again + _Channels[i].CmdBuffer.clear(); + _Channels[i].IdxBuffer.clear(); + } + _Channels.clear(); +} + +void ImDrawList::AddDrawCmd() +{ + ImDrawCmd draw_cmd; + draw_cmd.ElemCount = 0; + draw_cmd.ClipRect = _ClipRectStack.Size ? _ClipRectStack.back() : GNullClipRect; + draw_cmd.TextureId = _TextureIdStack.Size ? _TextureIdStack.back() : NULL; + draw_cmd.UserCallback = NULL; + draw_cmd.UserCallbackData = NULL; + + IM_ASSERT(draw_cmd.ClipRect.x <= draw_cmd.ClipRect.z && draw_cmd.ClipRect.y <= draw_cmd.ClipRect.w); + CmdBuffer.push_back(draw_cmd); +} + +void ImDrawList::AddCallback(ImDrawCallback callback, void* callback_data) +{ + ImDrawCmd* current_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; + if (!current_cmd || current_cmd->ElemCount != 0 || current_cmd->UserCallback != NULL) + { + AddDrawCmd(); + current_cmd = &CmdBuffer.back(); + } + current_cmd->UserCallback = callback; + current_cmd->UserCallbackData = callback_data; + + // Force a new command after us (we function this way so that the most common calls AddLine, AddRect, etc. always have a command to add to without doing any check). + AddDrawCmd(); +} + +void ImDrawList::ChannelsSplit(int channel_count) +{ + IM_ASSERT(_ChannelCurrent == 0); + int old_channels_count = _Channels.Size; + if (old_channels_count < channel_count) + _Channels.resize(channel_count); + for (int i = 0; i < channel_count; i++) + if (i >= old_channels_count) + new(&_Channels[i]) ImDrawChannel(); + else + _Channels[i].CmdBuffer.resize(0), _Channels[i].IdxBuffer.resize(0); +} + +void ImDrawList::ChannelsMerge(int channel_count) +{ + // Note that we never use or rely on channels.Size because it is merely a buffer that we never shrink back to 0 to keep all sub-buffers ready for use. + // This is why this function takes 'channel_count' as a parameter of how many channels to merge (the user knows) + if (channel_count < 2) + return; + + ChannelsSetCurrent(0); + if (CmdBuffer.Size && CmdBuffer.back().ElemCount == 0) + CmdBuffer.pop_back(); + + int new_cmd_buffer_count = 0, new_idx_buffer_count = 0; + for (int i = 1; i < channel_count; i++) + { + ImDrawChannel& ch = _Channels[i]; + if (ch.CmdBuffer.Size && ch.CmdBuffer.back().ElemCount == 0) + ch.CmdBuffer.pop_back(); + new_cmd_buffer_count += ch.CmdBuffer.Size; + new_idx_buffer_count += ch.IdxBuffer.Size; + } + CmdBuffer.resize(CmdBuffer.Size + new_cmd_buffer_count); + IdxBuffer.resize(IdxBuffer.Size + new_idx_buffer_count); + + ImDrawCmd* cmd_write = CmdBuffer.Data + CmdBuffer.Size - new_cmd_buffer_count; + _IdxWritePtr = IdxBuffer.Data + IdxBuffer.Size - new_idx_buffer_count; + for (int i = 1; i < channel_count; i++) + { + ImDrawChannel& ch = _Channels[i]; + if (int sz = ch.CmdBuffer.Size) { memcpy(cmd_write, ch.CmdBuffer.Data, sz * sizeof(ImDrawCmd)); cmd_write += sz; } + if (int sz = ch.IdxBuffer.Size) { memcpy(_IdxWritePtr, ch.IdxBuffer.Data, sz * sizeof(ImDrawIdx)); _IdxWritePtr += sz; } + } + AddDrawCmd(); +} + +void ImDrawList::ChannelsSetCurrent(int idx) +{ + if (_ChannelCurrent == idx) return; + memcpy(&_Channels.Data[_ChannelCurrent].CmdBuffer, &CmdBuffer, sizeof(CmdBuffer)); + memcpy(&_Channels.Data[_ChannelCurrent].IdxBuffer, &IdxBuffer, sizeof(IdxBuffer)); + _ChannelCurrent = idx; + memcpy(&CmdBuffer, &_Channels.Data[_ChannelCurrent].CmdBuffer, sizeof(CmdBuffer)); + memcpy(&IdxBuffer, &_Channels.Data[_ChannelCurrent].IdxBuffer, sizeof(IdxBuffer)); + _IdxWritePtr = IdxBuffer.Data + IdxBuffer.Size; +} + +void ImDrawList::UpdateClipRect() +{ + ImDrawCmd* current_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; + if (!current_cmd || (current_cmd->ElemCount != 0) || current_cmd->UserCallback != NULL) + { + AddDrawCmd(); + } + else + { + ImVec4 current_clip_rect = _ClipRectStack.Size ? _ClipRectStack.back() : GNullClipRect; + if (CmdBuffer.Size >= 2 && ImLengthSqr(CmdBuffer.Data[CmdBuffer.Size-2].ClipRect - current_clip_rect) < 0.00001f) + CmdBuffer.pop_back(); + else + current_cmd->ClipRect = current_clip_rect; + } +} + +// Scissoring. The values in clip_rect are x1, y1, x2, y2. +void ImDrawList::PushClipRect(const ImVec4& clip_rect) +{ + _ClipRectStack.push_back(clip_rect); + UpdateClipRect(); +} + +void ImDrawList::PushClipRectFullScreen() +{ + PushClipRect(GNullClipRect); + + // This would be more correct but we're not supposed to access ImGuiState from here? + //ImGuiState& g = *GImGui; + //PushClipRect(GetVisibleRect()); +} + +void ImDrawList::PopClipRect() +{ + IM_ASSERT(_ClipRectStack.Size > 0); + _ClipRectStack.pop_back(); + UpdateClipRect(); +} + +void ImDrawList::UpdateTextureID() +{ + ImDrawCmd* current_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; + const ImTextureID texture_id = _TextureIdStack.Size ? _TextureIdStack.back() : NULL; + if (!current_cmd || (current_cmd->ElemCount != 0 && current_cmd->TextureId != texture_id) || current_cmd->UserCallback != NULL) + AddDrawCmd(); + else + current_cmd->TextureId = texture_id; +} + +void ImDrawList::PushTextureID(const ImTextureID& texture_id) +{ + _TextureIdStack.push_back(texture_id); + UpdateTextureID(); +} + +void ImDrawList::PopTextureID() +{ + IM_ASSERT(_TextureIdStack.Size > 0); + _TextureIdStack.pop_back(); + UpdateTextureID(); +} + +// NB: this can be called with negative count for removing primitives (as long as the result does not underflow) +void ImDrawList::PrimReserve(int idx_count, int vtx_count) +{ + ImDrawCmd& draw_cmd = CmdBuffer.Data[CmdBuffer.Size-1]; + draw_cmd.ElemCount += idx_count; + + int vtx_buffer_size = VtxBuffer.Size; + VtxBuffer.resize(vtx_buffer_size + vtx_count); + _VtxWritePtr = VtxBuffer.Data + vtx_buffer_size; + + int idx_buffer_size = IdxBuffer.Size; + IdxBuffer.resize(idx_buffer_size + idx_count); + _IdxWritePtr = IdxBuffer.Data + idx_buffer_size; +} + +void ImDrawList::PrimRect(const ImVec2& a, const ImVec2& c, ImU32 col) +{ + const ImVec2 uv = GImGui->FontTexUvWhitePixel; + const ImVec2 b(c.x, a.y); + const ImVec2 d(a.x, c.y); + _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+2); + _IdxWritePtr[3] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[4] = (ImDrawIdx)(_VtxCurrentIdx+2); _IdxWritePtr[5] = (ImDrawIdx)(_VtxCurrentIdx+3); + _VtxWritePtr[0].pos = a; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; + _VtxWritePtr[1].pos = b; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; + _VtxWritePtr[2].pos = c; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; + _VtxWritePtr[3].pos = d; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col; + _VtxWritePtr += 4; + _VtxCurrentIdx += 4; + _IdxWritePtr += 6; +} + +void ImDrawList::PrimRectUV(const ImVec2& a, const ImVec2& c, const ImVec2& uv_a, const ImVec2& uv_c, ImU32 col) +{ + const ImVec2 b(c.x, a.y); + const ImVec2 d(a.x, c.y); + const ImVec2 uv_b(uv_c.x, uv_a.y); + const ImVec2 uv_d(uv_a.x, uv_c.y); + _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+2); + _IdxWritePtr[3] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[4] = (ImDrawIdx)(_VtxCurrentIdx+2); _IdxWritePtr[5] = (ImDrawIdx)(_VtxCurrentIdx+3); + _VtxWritePtr[0].pos = a; _VtxWritePtr[0].uv = uv_a; _VtxWritePtr[0].col = col; + _VtxWritePtr[1].pos = b; _VtxWritePtr[1].uv = uv_b; _VtxWritePtr[1].col = col; + _VtxWritePtr[2].pos = c; _VtxWritePtr[2].uv = uv_c; _VtxWritePtr[2].col = col; + _VtxWritePtr[3].pos = d; _VtxWritePtr[3].uv = uv_d; _VtxWritePtr[3].col = col; + _VtxWritePtr += 4; + _VtxCurrentIdx += 4; + _IdxWritePtr += 6; +} + +// TODO: Thickness anti-aliased lines cap are missing their AA fringe. +void ImDrawList::AddPolyline(const ImVec2* points, const int points_count, ImU32 col, bool closed, float thickness, bool anti_aliased) +{ + if (points_count < 2) + return; + + const ImVec2 uv = GImGui->FontTexUvWhitePixel; + anti_aliased &= GImGui->Style.AntiAliasedLines; + //if (ImGui::GetIO().KeyCtrl) anti_aliased = false; + + int count = points_count; + if (!closed) + count = points_count-1; + + const bool thick_line = thickness > 1.0f; + if (anti_aliased) + { + // Anti-aliased stroke + const float AA_SIZE = 1.0f; + const ImU32 col_trans = col & 0x00ffffff; + + const int idx_count = thick_line ? count*18 : count*12; + const int vtx_count = thick_line ? points_count*4 : points_count*3; + PrimReserve(idx_count, vtx_count); + + // Temporary buffer + ImVec2* temp_normals = (ImVec2*)alloca(points_count * (thick_line ? 5 : 3) * sizeof(ImVec2)); + ImVec2* temp_points = temp_normals + points_count; + + for (int i1 = 0; i1 < count; i1++) + { + const int i2 = (i1+1) == points_count ? 0 : i1+1; + ImVec2 diff = points[i2] - points[i1]; + diff *= ImInvLength(diff, 1.0f); + temp_normals[i1].x = diff.y; + temp_normals[i1].y = -diff.x; + } + if (!closed) + temp_normals[points_count-1] = temp_normals[points_count-2]; + + if (!thick_line) + { + if (!closed) + { + temp_points[0] = points[0] + temp_normals[0] * AA_SIZE; + temp_points[1] = points[0] - temp_normals[0] * AA_SIZE; + temp_points[(points_count-1)*2+0] = points[points_count-1] + temp_normals[points_count-1] * AA_SIZE; + temp_points[(points_count-1)*2+1] = points[points_count-1] - temp_normals[points_count-1] * AA_SIZE; + } + + // FIXME-OPT: Merge the different loops, possibly remove the temporary buffer. + unsigned int idx1 = _VtxCurrentIdx; + for (int i1 = 0; i1 < count; i1++) + { + const int i2 = (i1+1) == points_count ? 0 : i1+1; + unsigned int idx2 = (i1+1) == points_count ? _VtxCurrentIdx : idx1+3; + + // Average normals + ImVec2 dm = (temp_normals[i1] + temp_normals[i2]) * 0.5f; + float dmr2 = dm.x*dm.x + dm.y*dm.y; + if (dmr2 > 0.000001f) + { + float scale = 1.0f / dmr2; + if (scale > 100.0f) scale = 100.0f; + dm *= scale; + } + dm *= AA_SIZE; + temp_points[i2*2+0] = points[i2] + dm; + temp_points[i2*2+1] = points[i2] - dm; + + // Add indexes + _IdxWritePtr[0] = (ImDrawIdx)(idx2+0); _IdxWritePtr[1] = (ImDrawIdx)(idx1+0); _IdxWritePtr[2] = (ImDrawIdx)(idx1+2); + _IdxWritePtr[3] = (ImDrawIdx)(idx1+2); _IdxWritePtr[4] = (ImDrawIdx)(idx2+2); _IdxWritePtr[5] = (ImDrawIdx)(idx2+0); + _IdxWritePtr[6] = (ImDrawIdx)(idx2+1); _IdxWritePtr[7] = (ImDrawIdx)(idx1+1); _IdxWritePtr[8] = (ImDrawIdx)(idx1+0); + _IdxWritePtr[9] = (ImDrawIdx)(idx1+0); _IdxWritePtr[10]= (ImDrawIdx)(idx2+0); _IdxWritePtr[11]= (ImDrawIdx)(idx2+1); + _IdxWritePtr += 12; + + idx1 = idx2; + } + + // Add vertexes + for (int i = 0; i < points_count; i++) + { + _VtxWritePtr[0].pos = points[i]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; + _VtxWritePtr[1].pos = temp_points[i*2+0]; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col_trans; + _VtxWritePtr[2].pos = temp_points[i*2+1]; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col_trans; + _VtxWritePtr += 3; + } + } + else + { + const float half_inner_thickness = (thickness - AA_SIZE) * 0.5f; + if (!closed) + { + temp_points[0] = points[0] + temp_normals[0] * (half_inner_thickness + AA_SIZE); + temp_points[1] = points[0] + temp_normals[0] * (half_inner_thickness); + temp_points[2] = points[0] - temp_normals[0] * (half_inner_thickness); + temp_points[3] = points[0] - temp_normals[0] * (half_inner_thickness + AA_SIZE); + temp_points[(points_count-1)*4+0] = points[points_count-1] + temp_normals[points_count-1] * (half_inner_thickness + AA_SIZE); + temp_points[(points_count-1)*4+1] = points[points_count-1] + temp_normals[points_count-1] * (half_inner_thickness); + temp_points[(points_count-1)*4+2] = points[points_count-1] - temp_normals[points_count-1] * (half_inner_thickness); + temp_points[(points_count-1)*4+3] = points[points_count-1] - temp_normals[points_count-1] * (half_inner_thickness + AA_SIZE); + } + + // FIXME-OPT: Merge the different loops, possibly remove the temporary buffer. + unsigned int idx1 = _VtxCurrentIdx; + for (int i1 = 0; i1 < count; i1++) + { + const int i2 = (i1+1) == points_count ? 0 : i1+1; + unsigned int idx2 = (i1+1) == points_count ? _VtxCurrentIdx : idx1+4; + + // Average normals + ImVec2 dm = (temp_normals[i1] + temp_normals[i2]) * 0.5f; + float dmr2 = dm.x*dm.x + dm.y*dm.y; + if (dmr2 > 0.000001f) + { + float scale = 1.0f / dmr2; + if (scale > 100.0f) scale = 100.0f; + dm *= scale; + } + ImVec2 dm_out = dm * (half_inner_thickness + AA_SIZE); + ImVec2 dm_in = dm * half_inner_thickness; + temp_points[i2*4+0] = points[i2] + dm_out; + temp_points[i2*4+1] = points[i2] + dm_in; + temp_points[i2*4+2] = points[i2] - dm_in; + temp_points[i2*4+3] = points[i2] - dm_out; + + // Add indexes + _IdxWritePtr[0] = (ImDrawIdx)(idx2+1); _IdxWritePtr[1] = (ImDrawIdx)(idx1+1); _IdxWritePtr[2] = (ImDrawIdx)(idx1+2); + _IdxWritePtr[3] = (ImDrawIdx)(idx1+2); _IdxWritePtr[4] = (ImDrawIdx)(idx2+2); _IdxWritePtr[5] = (ImDrawIdx)(idx2+1); + _IdxWritePtr[6] = (ImDrawIdx)(idx2+1); _IdxWritePtr[7] = (ImDrawIdx)(idx1+1); _IdxWritePtr[8] = (ImDrawIdx)(idx1+0); + _IdxWritePtr[9] = (ImDrawIdx)(idx1+0); _IdxWritePtr[10] = (ImDrawIdx)(idx2+0); _IdxWritePtr[11] = (ImDrawIdx)(idx2+1); + _IdxWritePtr[12] = (ImDrawIdx)(idx2+2); _IdxWritePtr[13] = (ImDrawIdx)(idx1+2); _IdxWritePtr[14] = (ImDrawIdx)(idx1+3); + _IdxWritePtr[15] = (ImDrawIdx)(idx1+3); _IdxWritePtr[16] = (ImDrawIdx)(idx2+3); _IdxWritePtr[17] = (ImDrawIdx)(idx2+2); + _IdxWritePtr += 18; + + idx1 = idx2; + } + + // Add vertexes + for (int i = 0; i < points_count; i++) + { + _VtxWritePtr[0].pos = temp_points[i*4+0]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col_trans; + _VtxWritePtr[1].pos = temp_points[i*4+1]; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; + _VtxWritePtr[2].pos = temp_points[i*4+2]; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; + _VtxWritePtr[3].pos = temp_points[i*4+3]; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col_trans; + _VtxWritePtr += 4; + } + } + _VtxCurrentIdx += (ImDrawIdx)vtx_count; + } + else + { + // Non Anti-aliased Stroke + const int idx_count = count*6; + const int vtx_count = count*4; // FIXME-OPT: Not sharing edges + PrimReserve(idx_count, vtx_count); + + for (int i1 = 0; i1 < count; i1++) + { + const int i2 = (i1+1) == points_count ? 0 : i1+1; + const ImVec2& p1 = points[i1]; + const ImVec2& p2 = points[i2]; + ImVec2 diff = p2 - p1; + diff *= ImInvLength(diff, 1.0f); + + const float dx = diff.x * (thickness * 0.5f); + const float dy = diff.y * (thickness * 0.5f); + _VtxWritePtr[0].pos.x = p1.x + dy; _VtxWritePtr[0].pos.y = p1.y - dx; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; + _VtxWritePtr[1].pos.x = p2.x + dy; _VtxWritePtr[1].pos.y = p2.y - dx; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; + _VtxWritePtr[2].pos.x = p2.x - dy; _VtxWritePtr[2].pos.y = p2.y + dx; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; + _VtxWritePtr[3].pos.x = p1.x - dy; _VtxWritePtr[3].pos.y = p1.y + dx; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col; + _VtxWritePtr += 4; + + _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+2); + _IdxWritePtr[3] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[4] = (ImDrawIdx)(_VtxCurrentIdx+2); _IdxWritePtr[5] = (ImDrawIdx)(_VtxCurrentIdx+3); + _IdxWritePtr += 6; + _VtxCurrentIdx += 4; + } + } +} + +void ImDrawList::AddConvexPolyFilled(const ImVec2* points, const int points_count, ImU32 col, bool anti_aliased) +{ + const ImVec2 uv = GImGui->FontTexUvWhitePixel; + anti_aliased &= GImGui->Style.AntiAliasedShapes; + //if (ImGui::GetIO().KeyCtrl) anti_aliased = false; + + if (anti_aliased) + { + // Anti-aliased Fill + const float AA_SIZE = 1.0f; + const ImU32 col_trans = col & 0x00ffffff; + const int idx_count = (points_count-2)*3 + points_count*6; + const int vtx_count = (points_count*2); + PrimReserve(idx_count, vtx_count); + + // Add indexes for fill + unsigned int vtx_inner_idx = _VtxCurrentIdx; + unsigned int vtx_outer_idx = _VtxCurrentIdx+1; + for (int i = 2; i < points_count; i++) + { + _IdxWritePtr[0] = (ImDrawIdx)(vtx_inner_idx); _IdxWritePtr[1] = (ImDrawIdx)(vtx_inner_idx+((i-1)<<1)); _IdxWritePtr[2] = (ImDrawIdx)(vtx_inner_idx+(i<<1)); + _IdxWritePtr += 3; + } + + // Compute normals + ImVec2* temp_normals = (ImVec2*)alloca(points_count * sizeof(ImVec2)); + for (int i0 = points_count-1, i1 = 0; i1 < points_count; i0 = i1++) + { + const ImVec2& p0 = points[i0]; + const ImVec2& p1 = points[i1]; + ImVec2 diff = p1 - p0; + diff *= ImInvLength(diff, 1.0f); + temp_normals[i0].x = diff.y; + temp_normals[i0].y = -diff.x; + } + + for (int i0 = points_count-1, i1 = 0; i1 < points_count; i0 = i1++) + { + // Average normals + const ImVec2& n0 = temp_normals[i0]; + const ImVec2& n1 = temp_normals[i1]; + ImVec2 dm = (n0 + n1) * 0.5f; + float dmr2 = dm.x*dm.x + dm.y*dm.y; + if (dmr2 > 0.000001f) + { + float scale = 1.0f / dmr2; + if (scale > 100.0f) scale = 100.0f; + dm *= scale; + } + dm *= AA_SIZE * 0.5f; + + // Add vertices + _VtxWritePtr[0].pos = (points[i1] - dm); _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; // Inner + _VtxWritePtr[1].pos = (points[i1] + dm); _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col_trans; // Outer + _VtxWritePtr += 2; + + // Add indexes for fringes + _IdxWritePtr[0] = (ImDrawIdx)(vtx_inner_idx+(i1<<1)); _IdxWritePtr[1] = (ImDrawIdx)(vtx_inner_idx+(i0<<1)); _IdxWritePtr[2] = (ImDrawIdx)(vtx_outer_idx+(i0<<1)); + _IdxWritePtr[3] = (ImDrawIdx)(vtx_outer_idx+(i0<<1)); _IdxWritePtr[4] = (ImDrawIdx)(vtx_outer_idx+(i1<<1)); _IdxWritePtr[5] = (ImDrawIdx)(vtx_inner_idx+(i1<<1)); + _IdxWritePtr += 6; + } + _VtxCurrentIdx += (ImDrawIdx)vtx_count; + } + else + { + // Non Anti-aliased Fill + const int idx_count = (points_count-2)*3; + const int vtx_count = points_count; + PrimReserve(idx_count, vtx_count); + for (int i = 0; i < vtx_count; i++) + { + _VtxWritePtr[0].pos = points[i]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; + _VtxWritePtr++; + } + for (int i = 2; i < points_count; i++) + { + _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+i-1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+i); + _IdxWritePtr += 3; + } + _VtxCurrentIdx += (ImDrawIdx)vtx_count; + } +} + +void ImDrawList::PathArcToFast(const ImVec2& centre, float radius, int amin, int amax) +{ + static ImVec2 circle_vtx[12]; + static bool circle_vtx_builds = false; + const int circle_vtx_count = IM_ARRAYSIZE(circle_vtx); + if (!circle_vtx_builds) + { + for (int i = 0; i < circle_vtx_count; i++) + { + const float a = ((float)i / (float)circle_vtx_count) * 2*IM_PI; + circle_vtx[i].x = cosf(a); + circle_vtx[i].y = sinf(a); + } + circle_vtx_builds = true; + } + + if (amin > amax) return; + if (radius == 0.0f) + { + _Path.push_back(centre); + } + else + { + _Path.reserve(_Path.Size + (amax - amin + 1)); + for (int a = amin; a <= amax; a++) + { + const ImVec2& c = circle_vtx[a % circle_vtx_count]; + _Path.push_back(ImVec2(centre.x + c.x * radius, centre.y + c.y * radius)); + } + } +} + +void ImDrawList::PathArcTo(const ImVec2& centre, float radius, float amin, float amax, int num_segments) +{ + if (radius == 0.0f) + _Path.push_back(centre); + _Path.reserve(_Path.Size + (num_segments + 1)); + for (int i = 0; i <= num_segments; i++) + { + const float a = amin + ((float)i / (float)num_segments) * (amax - amin); + _Path.push_back(ImVec2(centre.x + cosf(a) * radius, centre.y + sinf(a) * radius)); + } +} + +void ImDrawList::PathRect(const ImVec2& a, const ImVec2& b, float rounding, int rounding_corners) +{ + float r = rounding; + r = ImMin(r, fabsf(b.x-a.x) * ( ((rounding_corners&(1|2))==(1|2)) || ((rounding_corners&(4|8))==(4|8)) ? 0.5f : 1.0f ) - 1.0f); + r = ImMin(r, fabsf(b.y-a.y) * ( ((rounding_corners&(1|8))==(1|8)) || ((rounding_corners&(2|4))==(2|4)) ? 0.5f : 1.0f ) - 1.0f); + + if (r == 0.0f || rounding_corners == 0) + { + PathLineTo(a); + PathLineTo(ImVec2(b.x,a.y)); + PathLineTo(b); + PathLineTo(ImVec2(a.x,b.y)); + } + else + { + const float r0 = (rounding_corners & 1) ? r : 0.0f; + const float r1 = (rounding_corners & 2) ? r : 0.0f; + const float r2 = (rounding_corners & 4) ? r : 0.0f; + const float r3 = (rounding_corners & 8) ? r : 0.0f; + PathArcToFast(ImVec2(a.x+r0,a.y+r0), r0, 6, 9); + PathArcToFast(ImVec2(b.x-r1,a.y+r1), r1, 9, 12); + PathArcToFast(ImVec2(b.x-r2,b.y-r2), r2, 0, 3); + PathArcToFast(ImVec2(a.x+r3,b.y-r3), r3, 3, 6); + } +} + +void ImDrawList::AddLine(const ImVec2& a, const ImVec2& b, ImU32 col, float thickness) +{ + if ((col >> 24) == 0) + return; + PathLineTo(a + ImVec2(0.5f,0.5f)); + PathLineTo(b + ImVec2(0.5f,0.5f)); + PathStroke(col, false, thickness); +} + +void ImDrawList::AddRect(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding, int rounding_corners) +{ + if ((col >> 24) == 0) + return; + PathRect(a + ImVec2(0.5f,0.5f), b + ImVec2(0.5f,0.5f), rounding, rounding_corners); + PathStroke(col, true); +} + +void ImDrawList::AddRectFilled(const ImVec2& a, const ImVec2& b, ImU32 col, float rounding, int rounding_corners) +{ + if ((col >> 24) == 0) + return; + if (rounding > 0.0f) + { + PathRect(a, b, rounding, rounding_corners); + PathFill(col); + } + else + { + PrimReserve(6, 4); + PrimRect(a, b, col); + } +} + +void ImDrawList::AddRectFilledMultiColor(const ImVec2& a, const ImVec2& c, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left) +{ + if (((col_upr_left | col_upr_right | col_bot_right | col_bot_left) >> 24) == 0) + return; + + const ImVec2 uv = GImGui->FontTexUvWhitePixel; + PrimReserve(6, 4); + PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+1)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+2)); + PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+2)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+3)); + PrimWriteVtx(a, uv, col_upr_left); + PrimWriteVtx(ImVec2(c.x, a.y), uv, col_upr_right); + PrimWriteVtx(c, uv, col_bot_right); + PrimWriteVtx(ImVec2(a.x, c.y), uv, col_bot_left); +} + +void ImDrawList::AddTriangleFilled(const ImVec2& a, const ImVec2& b, const ImVec2& c, ImU32 col) +{ + if ((col >> 24) == 0) + return; + PathLineTo(a); + PathLineTo(b); + PathLineTo(c); + PathFill(col); +} + +void ImDrawList::AddCircle(const ImVec2& centre, float radius, ImU32 col, int num_segments) +{ + if ((col >> 24) == 0) + return; + + const float a_max = IM_PI*2.0f * ((float)num_segments - 1.0f) / (float)num_segments; + PathArcTo(centre, radius, 0.0f, a_max, num_segments); + PathStroke(col, true); +} + +void ImDrawList::AddCircleFilled(const ImVec2& centre, float radius, ImU32 col, int num_segments) +{ + if ((col >> 24) == 0) + return; + + const float a_max = IM_PI*2.0f * ((float)num_segments - 1.0f) / (float)num_segments; + PathArcTo(centre, radius, 0.0f, a_max, num_segments); + PathFill(col); +} + +void ImDrawList::AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end, float wrap_width, const ImVec4* cpu_fine_clip_rect) +{ + if ((col >> 24) == 0) + return; + + if (text_end == NULL) + text_end = text_begin + strlen(text_begin); + if (text_begin == text_end) + return; + + IM_ASSERT(font->ContainerAtlas->TexID == _TextureIdStack.back()); // Use high-level ImGui::PushFont() or low-level ImDrawList::PushTextureId() to change font. + + // reserve vertices for worse case + const int char_count = (int)(text_end - text_begin); + const int vtx_count_max = char_count * 4; + const int idx_count_max = char_count * 6; + const int vtx_begin = VtxBuffer.Size; + const int idx_begin = IdxBuffer.Size; + PrimReserve(idx_count_max, vtx_count_max); + + ImVec4 clip_rect = _ClipRectStack.back(); + if (cpu_fine_clip_rect) + { + clip_rect.x = ImMax(clip_rect.x, cpu_fine_clip_rect->x); + clip_rect.y = ImMax(clip_rect.y, cpu_fine_clip_rect->y); + clip_rect.z = ImMin(clip_rect.z, cpu_fine_clip_rect->z); + clip_rect.w = ImMin(clip_rect.w, cpu_fine_clip_rect->w); + } + font->RenderText(font_size, pos, col, clip_rect, text_begin, text_end, this, wrap_width, cpu_fine_clip_rect != NULL); + + // give back unused vertices + // FIXME-OPT + VtxBuffer.resize((int)(_VtxWritePtr - VtxBuffer.Data)); + IdxBuffer.resize((int)(_IdxWritePtr - IdxBuffer.Data)); + int vtx_unused = vtx_count_max - (VtxBuffer.Size - vtx_begin); + int idx_unused = idx_count_max - (IdxBuffer.Size - idx_begin); + CmdBuffer.back().ElemCount -= idx_unused; + _VtxWritePtr -= vtx_unused; + _IdxWritePtr -= idx_unused; + _VtxCurrentIdx = (ImDrawIdx)VtxBuffer.Size; +} + +// This is one of the few function breaking the encapsulation of ImDrawLst, but it is just so useful. +void ImDrawList::AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end) +{ + if ((col >> 24) == 0) + return; + AddText(ImGui::GetWindowFont(), ImGui::GetWindowFontSize(), pos, col, text_begin, text_end); +} + +void ImDrawList::AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv0, const ImVec2& uv1, ImU32 col) +{ + if ((col >> 24) == 0) + return; + + // FIXME-OPT: This is wasting draw calls. + const bool push_texture_id = _TextureIdStack.empty() || user_texture_id != _TextureIdStack.back(); + if (push_texture_id) + PushTextureID(user_texture_id); + + PrimReserve(6, 4); + PrimRectUV(a, b, uv0, uv1, col); + + if (push_texture_id) + PopTextureID(); +} + +//----------------------------------------------------------------------------- +// ImDrawData +//----------------------------------------------------------------------------- + +// For backward compatibility: convert all buffers from indexed to de-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. Always prefer indexed rendering! +void ImDrawData::DeIndexAllBuffers() +{ + ImVector new_vtx_buffer; + TotalVtxCount = TotalIdxCount = 0; + for (int i = 0; i < CmdListsCount; i++) + { + ImDrawList* cmd_list = CmdLists[i]; + if (cmd_list->IdxBuffer.empty()) + continue; + new_vtx_buffer.resize(cmd_list->IdxBuffer.Size); + for (int j = 0; j < cmd_list->IdxBuffer.Size; j++) + new_vtx_buffer[j] = cmd_list->VtxBuffer[cmd_list->IdxBuffer[j]]; + cmd_list->VtxBuffer.swap(new_vtx_buffer); + cmd_list->IdxBuffer.resize(0); + TotalVtxCount += cmd_list->VtxBuffer.Size; + } +} + +//----------------------------------------------------------------------------- +// ImFontAtlias +//----------------------------------------------------------------------------- + +ImFontConfig::ImFontConfig() +{ + FontData = NULL; + FontDataSize = 0; + FontDataOwnedByAtlas = true; + FontNo = 0; + SizePixels = 0.0f; + OversampleH = 3; + OversampleV = 1; + PixelSnapH = false; + GlyphExtraSpacing = ImVec2(0.0f, 0.0f); + GlyphRanges = NULL; + MergeMode = false; + MergeGlyphCenterV = false; + DstFont = NULL; + memset(Name, 0, sizeof(Name)); +} + +ImFontAtlas::ImFontAtlas() +{ + TexID = NULL; + TexPixelsAlpha8 = NULL; + TexPixelsRGBA32 = NULL; + TexWidth = TexHeight = 0; + TexUvWhitePixel = ImVec2(0, 0); +} + +ImFontAtlas::~ImFontAtlas() +{ + Clear(); +} + +void ImFontAtlas::ClearInputData() +{ + for (int i = 0; i < ConfigData.Size; i++) + if (ConfigData[i].FontData && ConfigData[i].FontDataOwnedByAtlas) + { + ImGui::MemFree(ConfigData[i].FontData); + ConfigData[i].FontData = NULL; + } + + // When clearing this we lose access to the font name and other information used to build the font. + for (int i = 0; i < Fonts.Size; i++) + if (Fonts[i]->ConfigData >= ConfigData.Data && Fonts[i]->ConfigData < ConfigData.Data + ConfigData.Size) + { + Fonts[i]->ConfigData = NULL; + Fonts[i]->ConfigDataCount = 0; + } + ConfigData.clear(); +} + +void ImFontAtlas::ClearTexData() +{ + if (TexPixelsAlpha8) + ImGui::MemFree(TexPixelsAlpha8); + if (TexPixelsRGBA32) + ImGui::MemFree(TexPixelsRGBA32); + TexPixelsAlpha8 = NULL; + TexPixelsRGBA32 = NULL; +} + +void ImFontAtlas::ClearFonts() +{ + for (int i = 0; i < Fonts.Size; i++) + { + Fonts[i]->~ImFont(); + ImGui::MemFree(Fonts[i]); + } + Fonts.clear(); +} + +void ImFontAtlas::Clear() +{ + ClearInputData(); + ClearTexData(); + ClearFonts(); +} + +void ImFontAtlas::GetTexDataAsAlpha8(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel) +{ + // Lazily build + if (TexPixelsAlpha8 == NULL) + { + if (ConfigData.empty()) + AddFontDefault(); + Build(); + } + + *out_pixels = TexPixelsAlpha8; + if (out_width) *out_width = TexWidth; + if (out_height) *out_height = TexHeight; + if (out_bytes_per_pixel) *out_bytes_per_pixel = 1; +} + +void ImFontAtlas::GetTexDataAsRGBA32(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel) +{ + // Lazily convert to RGBA32 format + // Although it is likely to be the most commonly used format, our font rendering is 8 bpp + if (!TexPixelsRGBA32) + { + unsigned char* pixels; + GetTexDataAsAlpha8(&pixels, NULL, NULL); + TexPixelsRGBA32 = (unsigned int*)ImGui::MemAlloc((size_t)(TexWidth * TexHeight * 4)); + const unsigned char* src = pixels; + unsigned int* dst = TexPixelsRGBA32; + for (int n = TexWidth * TexHeight; n > 0; n--) + *dst++ = ((unsigned int)(*src++) << 24) | 0x00FFFFFF; + } + + *out_pixels = (unsigned char*)TexPixelsRGBA32; + if (out_width) *out_width = TexWidth; + if (out_height) *out_height = TexHeight; + if (out_bytes_per_pixel) *out_bytes_per_pixel = 4; +} + +ImFont* ImFontAtlas::AddFont(const ImFontConfig* font_cfg) +{ + IM_ASSERT(font_cfg->FontData != NULL && font_cfg->FontDataSize > 0); + IM_ASSERT(font_cfg->SizePixels > 0.0f); + + // Create new font + if (!font_cfg->MergeMode) + { + ImFont* font = (ImFont*)ImGui::MemAlloc(sizeof(ImFont)); + new (font) ImFont(); + Fonts.push_back(font); + } + + ConfigData.push_back(*font_cfg); + ImFontConfig& new_font_cfg = ConfigData.back(); + new_font_cfg.DstFont = Fonts.back(); + if (!new_font_cfg.FontDataOwnedByAtlas) + { + new_font_cfg.FontData = ImGui::MemAlloc(new_font_cfg.FontDataSize); + new_font_cfg.FontDataOwnedByAtlas = true; + memcpy(new_font_cfg.FontData, font_cfg->FontData, (size_t)new_font_cfg.FontDataSize); + } + + // Invalidate texture + ClearTexData(); + return Fonts.back(); +} + +// Default font ttf is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder) +static unsigned int stb_decompress_length(unsigned char *input); +static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length); +static const char* GetDefaultCompressedFontDataTTFBase85(); +static unsigned int Decode85Byte(char c) { return c >= '\\' ? c-36 : c-35; } +static void Decode85(const unsigned char* src, unsigned int* dst) { for (; *src; src += 5) *dst++ = Decode85Byte(src[0]) + 85*(Decode85Byte(src[1]) + 85*(Decode85Byte(src[2]) + 85*(Decode85Byte(src[3]) + 85*Decode85Byte(src[4])))); } + +// Load embedded ProggyClean.ttf at size 13 +ImFont* ImFontAtlas::AddFontDefault(const ImFontConfig* font_cfg_template) +{ + ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); + if (!font_cfg_template) + { + font_cfg.OversampleH = font_cfg.OversampleV = 1; + font_cfg.PixelSnapH = true; + } + if (font_cfg.Name[0] == '\0') strcpy(font_cfg.Name, ""); + + const char* ttf_compressed_base85 = GetDefaultCompressedFontDataTTFBase85(); + ImFont* font = AddFontFromMemoryCompressedBase85TTF(ttf_compressed_base85, 13.0f, &font_cfg, GetGlyphRangesDefault()); + return font; +} + +ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) +{ + void* data = NULL; + int data_size = 0; + if (!ImLoadFileToMemory(filename, "rb", (void**)&data, &data_size, 0)) + { + IM_ASSERT(0); // Could not load file. + return NULL; + } + ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); + if (font_cfg.Name[0] == '\0') + { + const char* p; + for (p = filename + strlen(filename); p > filename && p[-1] != '/' && p[-1] != '\\'; p--) {} + snprintf(font_cfg.Name, IM_ARRAYSIZE(font_cfg.Name), "%s", p); + } + return AddFontFromMemoryTTF(data, data_size, size_pixels, &font_cfg, glyph_ranges); +} + +// Transfer ownership of 'ttf_data' to ImFontAtlas, will be deleted after Build() +ImFont* ImFontAtlas::AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) +{ + ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); + IM_ASSERT(font_cfg.FontData == NULL); + font_cfg.FontData = ttf_data; + font_cfg.FontDataSize = ttf_size; + font_cfg.SizePixels = size_pixels; + if (glyph_ranges) + font_cfg.GlyphRanges = glyph_ranges; + return AddFont(&font_cfg); +} + +ImFont* ImFontAtlas::AddFontFromMemoryCompressedTTF(const void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) +{ + const unsigned int buf_decompressed_size = stb_decompress_length((unsigned char*)compressed_ttf_data); + unsigned char* buf_decompressed_data = (unsigned char *)ImGui::MemAlloc(buf_decompressed_size); + stb_decompress(buf_decompressed_data, (unsigned char*)compressed_ttf_data, (unsigned int)compressed_ttf_size); + + ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); + IM_ASSERT(font_cfg.FontData == NULL); + font_cfg.FontDataOwnedByAtlas = true; + return AddFontFromMemoryTTF(buf_decompressed_data, (int)buf_decompressed_size, size_pixels, font_cfg_template, glyph_ranges); +} + +ImFont* ImFontAtlas::AddFontFromMemoryCompressedBase85TTF(const char* compressed_ttf_data_base85, float size_pixels, const ImFontConfig* font_cfg, const ImWchar* glyph_ranges) +{ + int compressed_ttf_size = (((int)strlen(compressed_ttf_data_base85) + 4) / 5) * 4; + void* compressed_ttf = ImGui::MemAlloc(compressed_ttf_size); + Decode85((const unsigned char*)compressed_ttf_data_base85, (unsigned int*)compressed_ttf); + ImFont* font = AddFontFromMemoryCompressedTTF(compressed_ttf, compressed_ttf_size, size_pixels, font_cfg, glyph_ranges); + ImGui::MemFree(compressed_ttf); + return font; +} + +bool ImFontAtlas::Build() +{ + IM_ASSERT(ConfigData.Size > 0); + + TexID = NULL; + TexWidth = TexHeight = 0; + TexUvWhitePixel = ImVec2(0, 0); + ClearTexData(); + + struct ImFontTempBuildData + { + stbtt_fontinfo FontInfo; + stbrp_rect* Rects; + stbtt_pack_range* Ranges; + int RangesCount; + }; + ImFontTempBuildData* tmp_array = (ImFontTempBuildData*)ImGui::MemAlloc((size_t)ConfigData.Size * sizeof(ImFontTempBuildData)); + + // Initialize font information early (so we can error without any cleanup) + count glyphs + int total_glyph_count = 0; + int total_glyph_range_count = 0; + for (int input_i = 0; input_i < ConfigData.Size; input_i++) + { + ImFontConfig& cfg = ConfigData[input_i]; + ImFontTempBuildData& tmp = tmp_array[input_i]; + + IM_ASSERT(cfg.DstFont && (!cfg.DstFont->IsLoaded() || cfg.DstFont->ContainerAtlas == this)); + const int font_offset = stbtt_GetFontOffsetForIndex((unsigned char*)cfg.FontData, cfg.FontNo); + IM_ASSERT(font_offset >= 0); + if (!stbtt_InitFont(&tmp.FontInfo, (unsigned char*)cfg.FontData, font_offset)) + return false; + + if (!cfg.GlyphRanges) + cfg.GlyphRanges = GetGlyphRangesDefault(); + for (const ImWchar* in_range = cfg.GlyphRanges; in_range[0] && in_range[1]; in_range += 2) + { + total_glyph_count += (in_range[1] - in_range[0]) + 1; + total_glyph_range_count++; + } + } + + // Start packing + TexWidth = (total_glyph_count > 1000) ? 1024 : 512; // Width doesn't actually matters. + TexHeight = 0; + const int max_tex_height = 1024*32; + stbtt_pack_context spc; + stbtt_PackBegin(&spc, NULL, TexWidth, max_tex_height, 0, 1, NULL); + + // Pack our extra data rectangles first, so it will be on the upper-left corner of our texture (UV will have small values). + ImVector extra_rects; + RenderCustomTexData(0, &extra_rects); + stbtt_PackSetOversampling(&spc, 1, 1); + stbrp_pack_rects((stbrp_context*)spc.pack_info, &extra_rects[0], extra_rects.Size); + for (int i = 0; i < extra_rects.Size; i++) + if (extra_rects[i].was_packed) + TexHeight = ImMax(TexHeight, extra_rects[i].y + extra_rects[i].h); + + // Allocate packing character data and flag packed characters buffer as non-packed (x0=y0=x1=y1=0) + int buf_packedchars_n = 0, buf_rects_n = 0, buf_ranges_n = 0; + stbtt_packedchar* buf_packedchars = (stbtt_packedchar*)ImGui::MemAlloc(total_glyph_count * sizeof(stbtt_packedchar)); + stbrp_rect* buf_rects = (stbrp_rect*)ImGui::MemAlloc(total_glyph_count * sizeof(stbrp_rect)); + stbtt_pack_range* buf_ranges = (stbtt_pack_range*)ImGui::MemAlloc(total_glyph_range_count * sizeof(stbtt_pack_range)); + memset(buf_packedchars, 0, total_glyph_count * sizeof(stbtt_packedchar)); + memset(buf_rects, 0, total_glyph_count * sizeof(stbrp_rect)); // Unnecessary but let's clear this for the sake of sanity. + memset(buf_ranges, 0, total_glyph_range_count * sizeof(stbtt_pack_range)); + + // First font pass: pack all glyphs (no rendering at this point, we are working with glyph sizes only) + for (int input_i = 0; input_i < ConfigData.Size; input_i++) + { + ImFontConfig& cfg = ConfigData[input_i]; + ImFontTempBuildData& tmp = tmp_array[input_i]; + + // Setup ranges + int glyph_count = 0; + int glyph_ranges_count = 0; + for (const ImWchar* in_range = cfg.GlyphRanges; in_range[0] && in_range[1]; in_range += 2) + { + glyph_count += (in_range[1] - in_range[0]) + 1; + glyph_ranges_count++; + } + tmp.Ranges = buf_ranges + buf_ranges_n; + tmp.RangesCount = glyph_ranges_count; + buf_ranges_n += glyph_ranges_count; + for (int i = 0; i < glyph_ranges_count; i++) + { + const ImWchar* in_range = &cfg.GlyphRanges[i * 2]; + stbtt_pack_range& range = tmp.Ranges[i]; + range.font_size = cfg.SizePixels; + range.first_unicode_codepoint_in_range = in_range[0]; + range.num_chars = (in_range[1] - in_range[0]) + 1; + range.chardata_for_range = buf_packedchars + buf_packedchars_n; + buf_packedchars_n += range.num_chars; + } + + // Pack + tmp.Rects = buf_rects + buf_rects_n; + buf_rects_n += glyph_count; + stbtt_PackSetOversampling(&spc, cfg.OversampleH, cfg.OversampleV); + int n = stbtt_PackFontRangesGatherRects(&spc, &tmp.FontInfo, tmp.Ranges, tmp.RangesCount, tmp.Rects); + stbrp_pack_rects((stbrp_context*)spc.pack_info, tmp.Rects, n); + + // Extend texture height + for (int i = 0; i < n; i++) + if (tmp.Rects[i].was_packed) + TexHeight = ImMax(TexHeight, tmp.Rects[i].y + tmp.Rects[i].h); + } + IM_ASSERT(buf_rects_n == total_glyph_count); + IM_ASSERT(buf_packedchars_n == total_glyph_count); + IM_ASSERT(buf_ranges_n == total_glyph_range_count); + + // Create texture + TexHeight = ImUpperPowerOfTwo(TexHeight); + TexPixelsAlpha8 = (unsigned char*)ImGui::MemAlloc(TexWidth * TexHeight); + memset(TexPixelsAlpha8, 0, TexWidth * TexHeight); + spc.pixels = TexPixelsAlpha8; + spc.height = TexHeight; + + // Second pass: render characters + for (int input_i = 0; input_i < ConfigData.Size; input_i++) + { + ImFontConfig& cfg = ConfigData[input_i]; + ImFontTempBuildData& tmp = tmp_array[input_i]; + stbtt_PackSetOversampling(&spc, cfg.OversampleH, cfg.OversampleV); + stbtt_PackFontRangesRenderIntoRects(&spc, &tmp.FontInfo, tmp.Ranges, tmp.RangesCount, tmp.Rects); + tmp.Rects = NULL; + } + + // End packing + stbtt_PackEnd(&spc); + ImGui::MemFree(buf_rects); + buf_rects = NULL; + + // Third pass: setup ImFont and glyphs for runtime + for (int input_i = 0; input_i < ConfigData.Size; input_i++) + { + ImFontConfig& cfg = ConfigData[input_i]; + ImFontTempBuildData& tmp = tmp_array[input_i]; + ImFont* dst_font = cfg.DstFont; + + float font_scale = stbtt_ScaleForPixelHeight(&tmp.FontInfo, cfg.SizePixels); + int unscaled_ascent, unscaled_descent, unscaled_line_gap; + stbtt_GetFontVMetrics(&tmp.FontInfo, &unscaled_ascent, &unscaled_descent, &unscaled_line_gap); + + float ascent = unscaled_ascent * font_scale; + float descent = unscaled_descent * font_scale; + if (!cfg.MergeMode) + { + dst_font->ContainerAtlas = this; + dst_font->ConfigData = &cfg; + dst_font->ConfigDataCount = 0; + dst_font->FontSize = cfg.SizePixels; + dst_font->Ascent = ascent; + dst_font->Descent = descent; + dst_font->Glyphs.resize(0); + } + dst_font->ConfigDataCount++; + float off_y = (cfg.MergeMode && cfg.MergeGlyphCenterV) ? (ascent - dst_font->Ascent) * 0.5f : 0.0f; + + dst_font->FallbackGlyph = NULL; // Always clear fallback so FindGlyph can return NULL. It will be set again in BuildLookupTable() + for (int i = 0; i < tmp.RangesCount; i++) + { + stbtt_pack_range& range = tmp.Ranges[i]; + for (int char_idx = 0; char_idx < range.num_chars; char_idx += 1) + { + const stbtt_packedchar& pc = range.chardata_for_range[char_idx]; + if (!pc.x0 && !pc.x1 && !pc.y0 && !pc.y1) + continue; + + const int codepoint = range.first_unicode_codepoint_in_range + char_idx; + if (cfg.MergeMode && dst_font->FindGlyph((unsigned short)codepoint)) + continue; + + stbtt_aligned_quad q; + float dummy_x = 0.0f, dummy_y = 0.0f; + stbtt_GetPackedQuad(range.chardata_for_range, TexWidth, TexHeight, char_idx, &dummy_x, &dummy_y, &q, 0); + + dst_font->Glyphs.resize(dst_font->Glyphs.Size + 1); + ImFont::Glyph& glyph = dst_font->Glyphs.back(); + glyph.Codepoint = (ImWchar)codepoint; + glyph.X0 = q.x0; glyph.Y0 = q.y0; glyph.X1 = q.x1; glyph.Y1 = q.y1; + glyph.U0 = q.s0; glyph.V0 = q.t0; glyph.U1 = q.s1; glyph.V1 = q.t1; + glyph.Y0 += (float)(int)(dst_font->Ascent + off_y + 0.5f); + glyph.Y1 += (float)(int)(dst_font->Ascent + off_y + 0.5f); + glyph.XAdvance = (pc.xadvance + cfg.GlyphExtraSpacing.x); // Bake spacing into XAdvance + if (cfg.PixelSnapH) + glyph.XAdvance = (float)(int)(glyph.XAdvance + 0.5f); + } + } + cfg.DstFont->BuildLookupTable(); + } + + // Cleanup temporaries + ImGui::MemFree(buf_packedchars); + ImGui::MemFree(buf_ranges); + ImGui::MemFree(tmp_array); + + // Render into our custom data block + RenderCustomTexData(1, &extra_rects); + + return true; +} + +void ImFontAtlas::RenderCustomTexData(int pass, void* p_rects) +{ + // . = white layer, X = black layer, others are blank + const int TEX_DATA_W = 90; + const int TEX_DATA_H = 27; + const char texture_data[TEX_DATA_W*TEX_DATA_H+1] = + { + "..- -XXXXXXX- X - X -XXXXXXX - XXXXXXX" + "..- -X.....X- X.X - X.X -X.....X - X.....X" + "--- -XXX.XXX- X...X - X...X -X....X - X....X" + "X - X.X - X.....X - X.....X -X...X - X...X" + "XX - X.X -X.......X- X.......X -X..X.X - X.X..X" + "X.X - X.X -XXXX.XXXX- XXXX.XXXX -X.X X.X - X.X X.X" + "X..X - X.X - X.X - X.X -XX X.X - X.X XX" + "X...X - X.X - X.X - XX X.X XX - X.X - X.X " + "X....X - X.X - X.X - X.X X.X X.X - X.X - X.X " + "X.....X - X.X - X.X - X..X X.X X..X - X.X - X.X " + "X......X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X XX-XX X.X " + "X.......X - X.X - X.X -X.....................X- X.X X.X-X.X X.X " + "X........X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X..X-X..X.X " + "X.........X -XXX.XXX- X.X - X..X X.X X..X - X...X-X...X " + "X..........X-X.....X- X.X - X.X X.X X.X - X....X-X....X " + "X......XXXXX-XXXXXXX- X.X - XX X.X XX - X.....X-X.....X " + "X...X..X --------- X.X - X.X - XXXXXXX-XXXXXXX " + "X..X X..X - -XXXX.XXXX- XXXX.XXXX ------------------------------------" + "X.X X..X - -X.......X- X.......X - XX XX - " + "XX X..X - - X.....X - X.....X - X.X X.X - " + " X..X - X...X - X...X - X..X X..X - " + " XX - X.X - X.X - X...XXXXXXXXXXXXX...X - " + "------------ - X - X -X.....................X- " + " ----------------------------------- X...XXXXXXXXXXXXX...X - " + " - X..X X..X - " + " - X.X X.X - " + " - XX XX - " + }; + + ImVector& rects = *(ImVector*)p_rects; + if (pass == 0) + { + stbrp_rect r; + memset(&r, 0, sizeof(r)); + r.w = (TEX_DATA_W*2)+1; + r.h = TEX_DATA_H+1; + rects.push_back(r); + } + else if (pass == 1) + { + // Copy pixels + const stbrp_rect& r = rects[0]; + for (int y = 0, n = 0; y < TEX_DATA_H; y++) + for (int x = 0; x < TEX_DATA_W; x++, n++) + { + const int offset0 = (int)(r.x + x) + (int)(r.y + y) * TexWidth; + const int offset1 = offset0 + 1 + TEX_DATA_W; + TexPixelsAlpha8[offset0] = texture_data[n] == '.' ? 0xFF : 0x00; + TexPixelsAlpha8[offset1] = texture_data[n] == 'X' ? 0xFF : 0x00; + } + const ImVec2 tex_uv_scale(1.0f / TexWidth, 1.0f / TexHeight); + TexUvWhitePixel = ImVec2((r.x + 0.5f) * tex_uv_scale.x, (r.y + 0.5f) * tex_uv_scale.y); + + const ImVec2 cursor_datas[ImGuiMouseCursor_Count_][3] = + { + // Pos ........ Size ......... Offset ...... + { ImVec2(0,3), ImVec2(12,19), ImVec2( 0, 0) }, // ImGuiMouseCursor_Arrow + { ImVec2(13,0), ImVec2(7,16), ImVec2( 4, 8) }, // ImGuiMouseCursor_TextInput + { ImVec2(31,0), ImVec2(23,23), ImVec2(11,11) }, // ImGuiMouseCursor_Move + { ImVec2(21,0), ImVec2( 9,23), ImVec2( 5,11) }, // ImGuiMouseCursor_ResizeNS + { ImVec2(55,18),ImVec2(23, 9), ImVec2(11, 5) }, // ImGuiMouseCursor_ResizeEW + { ImVec2(73,0), ImVec2(17,17), ImVec2( 9, 9) }, // ImGuiMouseCursor_ResizeNESW + { ImVec2(55,0), ImVec2(17,17), ImVec2( 9, 9) }, // ImGuiMouseCursor_ResizeNWSE + }; + + for (int type = 0; type < ImGuiMouseCursor_Count_; type++) + { + ImGuiMouseCursorData& cursor_data = GImGui->MouseCursorData[type]; + ImVec2 pos = cursor_datas[type][0] + ImVec2((float)r.x, (float)r.y); + const ImVec2 size = cursor_datas[type][1]; + cursor_data.Type = type; + cursor_data.Size = size; + cursor_data.HotOffset = cursor_datas[type][2]; + cursor_data.TexUvMin[0] = (pos) * tex_uv_scale; + cursor_data.TexUvMax[0] = (pos + size) * tex_uv_scale; + pos.x += TEX_DATA_W+1; + cursor_data.TexUvMin[1] = (pos) * tex_uv_scale; + cursor_data.TexUvMax[1] = (pos + size) * tex_uv_scale; + } + } +} + +// Retrieve list of range (2 int per range, values are inclusive) +const ImWchar* ImFontAtlas::GetGlyphRangesDefault() +{ + static const ImWchar ranges[] = + { + 0x0020, 0x00FF, // Basic Latin + Latin Supplement + 0, + }; + return &ranges[0]; +} + +const ImWchar* ImFontAtlas::GetGlyphRangesChinese() +{ + static const ImWchar ranges[] = + { + 0x0020, 0x00FF, // Basic Latin + Latin Supplement + 0x3000, 0x30FF, // Punctuations, Hiragana, Katakana + 0x31F0, 0x31FF, // Katakana Phonetic Extensions + 0xFF00, 0xFFEF, // Half-width characters + 0x4e00, 0x9FAF, // CJK Ideograms + 0, + }; + return &ranges[0]; +} + +const ImWchar* ImFontAtlas::GetGlyphRangesJapanese() +{ + // Store the 1946 ideograms code points as successive offsets from the initial unicode codepoint 0x4E00. Each offset has an implicit +1. + // This encoding helps us reduce the source code size. + static const short offsets_from_0x4E00[] = + { + -1,0,1,3,0,0,0,0,1,0,5,1,1,0,7,4,6,10,0,1,9,9,7,1,3,19,1,10,7,1,0,1,0,5,1,0,6,4,2,6,0,0,12,6,8,0,3,5,0,1,0,9,0,0,8,1,1,3,4,5,13,0,0,8,2,17, + 4,3,1,1,9,6,0,0,0,2,1,3,2,22,1,9,11,1,13,1,3,12,0,5,9,2,0,6,12,5,3,12,4,1,2,16,1,1,4,6,5,3,0,6,13,15,5,12,8,14,0,0,6,15,3,6,0,18,8,1,6,14,1, + 5,4,12,24,3,13,12,10,24,0,0,0,1,0,1,1,2,9,10,2,2,0,0,3,3,1,0,3,8,0,3,2,4,4,1,6,11,10,14,6,15,3,4,15,1,0,0,5,2,2,0,0,1,6,5,5,6,0,3,6,5,0,0,1,0, + 11,2,2,8,4,7,0,10,0,1,2,17,19,3,0,2,5,0,6,2,4,4,6,1,1,11,2,0,3,1,2,1,2,10,7,6,3,16,0,8,24,0,0,3,1,1,3,0,1,6,0,0,0,2,0,1,5,15,0,1,0,0,2,11,19, + 1,4,19,7,6,5,1,0,0,0,0,5,1,0,1,9,0,0,5,0,2,0,1,0,3,0,11,3,0,2,0,0,0,0,0,9,3,6,4,12,0,14,0,0,29,10,8,0,14,37,13,0,31,16,19,0,8,30,1,20,8,3,48, + 21,1,0,12,0,10,44,34,42,54,11,18,82,0,2,1,2,12,1,0,6,2,17,2,12,7,0,7,17,4,2,6,24,23,8,23,39,2,16,23,1,0,5,1,2,15,14,5,6,2,11,0,8,6,2,2,2,14, + 20,4,15,3,4,11,10,10,2,5,2,1,30,2,1,0,0,22,5,5,0,3,1,5,4,1,0,0,2,2,21,1,5,1,2,16,2,1,3,4,0,8,4,0,0,5,14,11,2,16,1,13,1,7,0,22,15,3,1,22,7,14, + 22,19,11,24,18,46,10,20,64,45,3,2,0,4,5,0,1,4,25,1,0,0,2,10,0,0,0,1,0,1,2,0,0,9,1,2,0,0,0,2,5,2,1,1,5,5,8,1,1,1,5,1,4,9,1,3,0,1,0,1,1,2,0,0, + 2,0,1,8,22,8,1,0,0,0,0,4,2,1,0,9,8,5,0,9,1,30,24,2,6,4,39,0,14,5,16,6,26,179,0,2,1,1,0,0,0,5,2,9,6,0,2,5,16,7,5,1,1,0,2,4,4,7,15,13,14,0,0, + 3,0,1,0,0,0,2,1,6,4,5,1,4,9,0,3,1,8,0,0,10,5,0,43,0,2,6,8,4,0,2,0,0,9,6,0,9,3,1,6,20,14,6,1,4,0,7,2,3,0,2,0,5,0,3,1,0,3,9,7,0,3,4,0,4,9,1,6,0, + 9,0,0,2,3,10,9,28,3,6,2,4,1,2,32,4,1,18,2,0,3,1,5,30,10,0,2,2,2,0,7,9,8,11,10,11,7,2,13,7,5,10,0,3,40,2,0,1,6,12,0,4,5,1,5,11,11,21,4,8,3,7, + 8,8,33,5,23,0,0,19,8,8,2,3,0,6,1,1,1,5,1,27,4,2,5,0,3,5,6,3,1,0,3,1,12,5,3,3,2,0,7,7,2,1,0,4,0,1,1,2,0,10,10,6,2,5,9,7,5,15,15,21,6,11,5,20, + 4,3,5,5,2,5,0,2,1,0,1,7,28,0,9,0,5,12,5,5,18,30,0,12,3,3,21,16,25,32,9,3,14,11,24,5,66,9,1,2,0,5,9,1,5,1,8,0,8,3,3,0,1,15,1,4,8,1,2,7,0,7,2, + 8,3,7,5,3,7,10,2,1,0,0,2,25,0,6,4,0,10,0,4,2,4,1,12,5,38,4,0,4,1,10,5,9,4,0,14,4,2,5,18,20,21,1,3,0,5,0,7,0,3,7,1,3,1,1,8,1,0,0,0,3,2,5,2,11, + 6,0,13,1,3,9,1,12,0,16,6,2,1,0,2,1,12,6,13,11,2,0,28,1,7,8,14,13,8,13,0,2,0,5,4,8,10,2,37,42,19,6,6,7,4,14,11,18,14,80,7,6,0,4,72,12,36,27, + 7,7,0,14,17,19,164,27,0,5,10,7,3,13,6,14,0,2,2,5,3,0,6,13,0,0,10,29,0,4,0,3,13,0,3,1,6,51,1,5,28,2,0,8,0,20,2,4,0,25,2,10,13,10,0,16,4,0,1,0, + 2,1,7,0,1,8,11,0,0,1,2,7,2,23,11,6,6,4,16,2,2,2,0,22,9,3,3,5,2,0,15,16,21,2,9,20,15,15,5,3,9,1,0,0,1,7,7,5,4,2,2,2,38,24,14,0,0,15,5,6,24,14, + 5,5,11,0,21,12,0,3,8,4,11,1,8,0,11,27,7,2,4,9,21,59,0,1,39,3,60,62,3,0,12,11,0,3,30,11,0,13,88,4,15,5,28,13,1,4,48,17,17,4,28,32,46,0,16,0, + 18,11,1,8,6,38,11,2,6,11,38,2,0,45,3,11,2,7,8,4,30,14,17,2,1,1,65,18,12,16,4,2,45,123,12,56,33,1,4,3,4,7,0,0,0,3,2,0,16,4,2,4,2,0,7,4,5,2,26, + 2,25,6,11,6,1,16,2,6,17,77,15,3,35,0,1,0,5,1,0,38,16,6,3,12,3,3,3,0,9,3,1,3,5,2,9,0,18,0,25,1,3,32,1,72,46,6,2,7,1,3,14,17,0,28,1,40,13,0,20, + 15,40,6,38,24,12,43,1,1,9,0,12,6,0,6,2,4,19,3,7,1,48,0,9,5,0,5,6,9,6,10,15,2,11,19,3,9,2,0,1,10,1,27,8,1,3,6,1,14,0,26,0,27,16,3,4,9,6,2,23, + 9,10,5,25,2,1,6,1,1,48,15,9,15,14,3,4,26,60,29,13,37,21,1,6,4,0,2,11,22,23,16,16,2,2,1,3,0,5,1,6,4,0,0,4,0,0,8,3,0,2,5,0,7,1,7,3,13,2,4,10, + 3,0,2,31,0,18,3,0,12,10,4,1,0,7,5,7,0,5,4,12,2,22,10,4,2,15,2,8,9,0,23,2,197,51,3,1,1,4,13,4,3,21,4,19,3,10,5,40,0,4,1,1,10,4,1,27,34,7,21, + 2,17,2,9,6,4,2,3,0,4,2,7,8,2,5,1,15,21,3,4,4,2,2,17,22,1,5,22,4,26,7,0,32,1,11,42,15,4,1,2,5,0,19,3,1,8,6,0,10,1,9,2,13,30,8,2,24,17,19,1,4, + 4,25,13,0,10,16,11,39,18,8,5,30,82,1,6,8,18,77,11,13,20,75,11,112,78,33,3,0,0,60,17,84,9,1,1,12,30,10,49,5,32,158,178,5,5,6,3,3,1,3,1,4,7,6, + 19,31,21,0,2,9,5,6,27,4,9,8,1,76,18,12,1,4,0,3,3,6,3,12,2,8,30,16,2,25,1,5,5,4,3,0,6,10,2,3,1,0,5,1,19,3,0,8,1,5,2,6,0,0,0,19,1,2,0,5,1,2,5, + 1,3,7,0,4,12,7,3,10,22,0,9,5,1,0,2,20,1,1,3,23,30,3,9,9,1,4,191,14,3,15,6,8,50,0,1,0,0,4,0,0,1,0,2,4,2,0,2,3,0,2,0,2,2,8,7,0,1,1,1,3,3,17,11, + 91,1,9,3,2,13,4,24,15,41,3,13,3,1,20,4,125,29,30,1,0,4,12,2,21,4,5,5,19,11,0,13,11,86,2,18,0,7,1,8,8,2,2,22,1,2,6,5,2,0,1,2,8,0,2,0,5,2,1,0, + 2,10,2,0,5,9,2,1,2,0,1,0,4,0,0,10,2,5,3,0,6,1,0,1,4,4,33,3,13,17,3,18,6,4,7,1,5,78,0,4,1,13,7,1,8,1,0,35,27,15,3,0,0,0,1,11,5,41,38,15,22,6, + 14,14,2,1,11,6,20,63,5,8,27,7,11,2,2,40,58,23,50,54,56,293,8,8,1,5,1,14,0,1,12,37,89,8,8,8,2,10,6,0,0,0,4,5,2,1,0,1,1,2,7,0,3,3,0,4,6,0,3,2, + 19,3,8,0,0,0,4,4,16,0,4,1,5,1,3,0,3,4,6,2,17,10,10,31,6,4,3,6,10,126,7,3,2,2,0,9,0,0,5,20,13,0,15,0,6,0,2,5,8,64,50,3,2,12,2,9,0,0,11,8,20, + 109,2,18,23,0,0,9,61,3,0,28,41,77,27,19,17,81,5,2,14,5,83,57,252,14,154,263,14,20,8,13,6,57,39,38, + }; + static int ranges_unpacked = false; + static ImWchar ranges[8 + IM_ARRAYSIZE(offsets_from_0x4E00)*2 + 1] = + { + 0x0020, 0x00FF, // Basic Latin + Latin Supplement + 0x3000, 0x30FF, // Punctuations, Hiragana, Katakana + 0x31F0, 0x31FF, // Katakana Phonetic Extensions + 0xFF00, 0xFFEF, // Half-width characters + }; + if (!ranges_unpacked) + { + // Unpack + int codepoint = 0x4e00; + ImWchar* dst = &ranges[8]; + for (int n = 0; n < IM_ARRAYSIZE(offsets_from_0x4E00); n++, dst += 2) + dst[0] = dst[1] = (ImWchar)(codepoint += (offsets_from_0x4E00[n] + 1)); + dst[0] = 0; + ranges_unpacked = true; + } + return &ranges[0]; +} + +const ImWchar* ImFontAtlas::GetGlyphRangesCyrillic() +{ + static const ImWchar ranges[] = + { + 0x0020, 0x00FF, // Basic Latin + Latin Supplement + 0x0400, 0x052F, // Cyrillic + Cyrillic Supplement + 0x2DE0, 0x2DFF, // Cyrillic Extended-A + 0xA640, 0xA69F, // Cyrillic Extended-B + 0, + }; + return &ranges[0]; +} + +//----------------------------------------------------------------------------- +// ImFont +//----------------------------------------------------------------------------- + +ImFont::ImFont() +{ + Scale = 1.0f; + FallbackChar = (ImWchar)'?'; + Clear(); +} + +ImFont::~ImFont() +{ + // Invalidate active font so that the user gets a clear crash instead of a dangling pointer. + // If you want to delete fonts you need to do it between Render() and NewFrame(). + // FIXME-CLEANUP + /* + ImGuiState& g = *GImGui; + if (g.Font == this) + g.Font = NULL; + */ + Clear(); +} + +void ImFont::Clear() +{ + FontSize = 0.0f; + DisplayOffset = ImVec2(0.0f, 1.0f); + ConfigData = NULL; + ConfigDataCount = 0; + Ascent = Descent = 0.0f; + ContainerAtlas = NULL; + Glyphs.clear(); + FallbackGlyph = NULL; + FallbackXAdvance = 0.0f; + IndexXAdvance.clear(); + IndexLookup.clear(); +} + +void ImFont::BuildLookupTable() +{ + int max_codepoint = 0; + for (int i = 0; i != Glyphs.Size; i++) + max_codepoint = ImMax(max_codepoint, (int)Glyphs[i].Codepoint); + + IndexXAdvance.clear(); + IndexXAdvance.resize(max_codepoint + 1); + IndexLookup.clear(); + IndexLookup.resize(max_codepoint + 1); + for (int i = 0; i < max_codepoint + 1; i++) + { + IndexXAdvance[i] = -1.0f; + IndexLookup[i] = -1; + } + for (int i = 0; i < Glyphs.Size; i++) + { + int codepoint = (int)Glyphs[i].Codepoint; + IndexXAdvance[codepoint] = Glyphs[i].XAdvance; + IndexLookup[codepoint] = i; + } + + // Create a glyph to handle TAB + // FIXME: Needs proper TAB handling but it needs to be contextualized (can arbitrary say that each string starts at "column 0" + if (FindGlyph((unsigned short)' ')) + { + if (Glyphs.back().Codepoint != '\t') // So we can call this function multiple times + Glyphs.resize(Glyphs.Size + 1); + ImFont::Glyph& tab_glyph = Glyphs.back(); + tab_glyph = *FindGlyph((unsigned short)' '); + tab_glyph.Codepoint = '\t'; + tab_glyph.XAdvance *= 4; + IndexXAdvance[(int)tab_glyph.Codepoint] = (float)tab_glyph.XAdvance; + IndexLookup[(int)tab_glyph.Codepoint] = (int)(Glyphs.Size-1); + } + + FallbackGlyph = NULL; + FallbackGlyph = FindGlyph(FallbackChar); + FallbackXAdvance = FallbackGlyph ? FallbackGlyph->XAdvance : 0.0f; + for (int i = 0; i < max_codepoint + 1; i++) + if (IndexXAdvance[i] < 0.0f) + IndexXAdvance[i] = FallbackXAdvance; +} + +void ImFont::SetFallbackChar(ImWchar c) +{ + FallbackChar = c; + BuildLookupTable(); +} + +const ImFont::Glyph* ImFont::FindGlyph(unsigned short c) const +{ + if (c < IndexLookup.Size) + { + const int i = IndexLookup[c]; + if (i != -1) + return &Glyphs[i]; + } + return FallbackGlyph; +} + +const char* ImFont::CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const +{ + // Simple word-wrapping for English, not full-featured. Please submit failing cases! + // FIXME: Much possible improvements (don't cut things like "word !", "word!!!" but cut within "word,,,,", more sensible support for punctuations, support for Unicode punctuations, etc.) + + // For references, possible wrap point marked with ^ + // "aaa bbb, ccc,ddd. eee fff. ggg!" + // ^ ^ ^ ^ ^__ ^ ^ + + // List of hardcoded separators: .,;!?'" + + // Skip extra blanks after a line returns (that includes not counting them in width computation) + // e.g. "Hello world" --> "Hello" "World" + + // Cut words that cannot possibly fit within one line. + // e.g.: "The tropical fish" with ~5 characters worth of width --> "The tr" "opical" "fish" + + float line_width = 0.0f; + float word_width = 0.0f; + float blank_width = 0.0f; + + const char* word_end = text; + const char* prev_word_end = NULL; + bool inside_word = true; + + const char* s = text; + while (s < text_end) + { + unsigned int c = (unsigned int)*s; + const char* next_s; + if (c < 0x80) + next_s = s + 1; + else + next_s = s + ImTextCharFromUtf8(&c, s, text_end); + if (c == 0) + break; + + if (c < 32) + { + if (c == '\n') + { + line_width = word_width = blank_width = 0.0f; + inside_word = true; + s = next_s; + continue; + } + if (c == '\r') + { + s = next_s; + continue; + } + } + + const float char_width = ((int)c < IndexXAdvance.Size) ? IndexXAdvance[(int)c] * scale : FallbackXAdvance; + if (ImCharIsSpace(c)) + { + if (inside_word) + { + line_width += blank_width; + blank_width = 0.0f; + } + blank_width += char_width; + inside_word = false; + } + else + { + word_width += char_width; + if (inside_word) + { + word_end = next_s; + } + else + { + prev_word_end = word_end; + line_width += word_width + blank_width; + word_width = blank_width = 0.0f; + } + + // Allow wrapping after punctuation. + inside_word = !(c == '.' || c == ',' || c == ';' || c == '!' || c == '?' || c == '\"'); + } + + // We ignore blank width at the end of the line (they can be skipped) + if (line_width + word_width >= wrap_width) + { + // Words that cannot possibly fit within an entire line will be cut anywhere. + if (word_width < wrap_width) + s = prev_word_end ? prev_word_end : word_end; + break; + } + + s = next_s; + } + + return s; +} + +ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end, const char** remaining) const +{ + if (!text_end) + text_end = text_begin + strlen(text_begin); // FIXME-OPT: Need to avoid this. + + const float line_height = size; + const float scale = size / FontSize; + + ImVec2 text_size = ImVec2(0,0); + float line_width = 0.0f; + + const bool word_wrap_enabled = (wrap_width > 0.0f); + const char* word_wrap_eol = NULL; + + const char* s = text_begin; + while (s < text_end) + { + if (word_wrap_enabled) + { + // Calculate how far we can render. Requires two passes on the string data but keeps the code simple and not intrusive for what's essentially an uncommon feature. + if (!word_wrap_eol) + { + word_wrap_eol = CalcWordWrapPositionA(scale, s, text_end, wrap_width - line_width); + if (word_wrap_eol == s) // Wrap_width is too small to fit anything. Force displaying 1 character to minimize the height discontinuity. + word_wrap_eol++; // +1 may not be a character start point in UTF-8 but it's ok because we use s >= word_wrap_eol below + } + + if (s >= word_wrap_eol) + { + if (text_size.x < line_width) + text_size.x = line_width; + text_size.y += line_height; + line_width = 0.0f; + word_wrap_eol = NULL; + + // Wrapping skips upcoming blanks + while (s < text_end) + { + const char c = *s; + if (ImCharIsSpace(c)) { s++; } else if (c == '\n') { s++; break; } else { break; } + } + continue; + } + } + + // Decode and advance source (handle unlikely UTF-8 decoding failure by skipping to the next byte) + const char* prev_s = s; + unsigned int c = (unsigned int)*s; + if (c < 0x80) + { + s += 1; + } + else + { + s += ImTextCharFromUtf8(&c, s, text_end); + if (c == 0) + break; + } + + if (c < 32) + { + if (c == '\n') + { + text_size.x = ImMax(text_size.x, line_width); + text_size.y += line_height; + line_width = 0.0f; + continue; + } + if (c == '\r') + continue; + } + + const float char_width = ((int)c < IndexXAdvance.Size ? IndexXAdvance[(int)c] : FallbackXAdvance) * scale; + if (line_width + char_width >= max_width) + { + s = prev_s; + break; + } + + line_width += char_width; + } + + if (text_size.x < line_width) + text_size.x = line_width; + + if (line_width > 0 || text_size.y == 0.0f) + text_size.y += line_height; + + if (remaining) + *remaining = s; + + return text_size; +} + +void ImFont::RenderText(float size, ImVec2 pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, ImDrawList* draw_list, float wrap_width, bool cpu_fine_clip) const +{ + if (!text_end) + text_end = text_begin + strlen(text_begin); + + // Align to be pixel perfect + pos.x = (float)(int)pos.x + DisplayOffset.x; + pos.y = (float)(int)pos.y + DisplayOffset.y; + float x = pos.x; + float y = pos.y; + if (y > clip_rect.w) + return; + + const float scale = size / FontSize; + const float line_height = FontSize * scale; + const bool word_wrap_enabled = (wrap_width > 0.0f); + const char* word_wrap_eol = NULL; + + ImDrawVert* vtx_write = draw_list->_VtxWritePtr; + ImDrawIdx* idx_write = draw_list->_IdxWritePtr; + unsigned int vtx_current_idx = draw_list->_VtxCurrentIdx; + + const char* s = text_begin; + if (!word_wrap_enabled && y + line_height < clip_rect.y) + while (s < text_end && *s != '\n') // Fast-forward to next line + s++; + while (s < text_end) + { + if (word_wrap_enabled) + { + // Calculate how far we can render. Requires two passes on the string data but keeps the code simple and not intrusive for what's essentially an uncommon feature. + if (!word_wrap_eol) + { + word_wrap_eol = CalcWordWrapPositionA(scale, s, text_end, wrap_width - (x - pos.x)); + if (word_wrap_eol == s) // Wrap_width is too small to fit anything. Force displaying 1 character to minimize the height discontinuity. + word_wrap_eol++; // +1 may not be a character start point in UTF-8 but it's ok because we use s >= word_wrap_eol below + } + + if (s >= word_wrap_eol) + { + x = pos.x; + y += line_height; + word_wrap_eol = NULL; + + // Wrapping skips upcoming blanks + while (s < text_end) + { + const char c = *s; + if (ImCharIsSpace(c)) { s++; } else if (c == '\n') { s++; break; } else { break; } + } + continue; + } + } + + // Decode and advance source (handle unlikely UTF-8 decoding failure by skipping to the next byte) + unsigned int c = (unsigned int)*s; + if (c < 0x80) + { + s += 1; + } + else + { + s += ImTextCharFromUtf8(&c, s, text_end); + if (c == 0) + break; + } + + if (c < 32) + { + if (c == '\n') + { + x = pos.x; + y += line_height; + + if (y > clip_rect.w) + break; + if (!word_wrap_enabled && y + line_height < clip_rect.y) + while (s < text_end && *s != '\n') // Fast-forward to next line + s++; + continue; + } + if (c == '\r') + continue; + } + + float char_width = 0.0f; + if (const Glyph* glyph = FindGlyph((unsigned short)c)) + { + char_width = glyph->XAdvance * scale; + + // Clipping on Y is more likely + if (c != ' ' && c != '\t') + { + // We don't do a second finer clipping test on the Y axis (todo: do some measurement see if it is worth it, probably not) + float y1 = (float)(y + glyph->Y0 * scale); + float y2 = (float)(y + glyph->Y1 * scale); + + float x1 = (float)(x + glyph->X0 * scale); + float x2 = (float)(x + glyph->X1 * scale); + if (x1 <= clip_rect.z && x2 >= clip_rect.x) + { + // Render a character + float u1 = glyph->U0; + float v1 = glyph->V0; + float u2 = glyph->U1; + float v2 = glyph->V1; + + // CPU side clipping used to fit text in their frame when the frame is too small. Only does clipping for axis aligned quads + if (cpu_fine_clip) + { + if (x1 < clip_rect.x) + { + u1 = u1 + (1.0f - (x2 - clip_rect.x) / (x2 - x1)) * (u2 - u1); + x1 = clip_rect.x; + } + if (y1 < clip_rect.y) + { + v1 = v1 + (1.0f - (y2 - clip_rect.y) / (y2 - y1)) * (v2 - v1); + y1 = clip_rect.y; + } + if (x2 > clip_rect.z) + { + u2 = u1 + ((clip_rect.z - x1) / (x2 - x1)) * (u2 - u1); + x2 = clip_rect.z; + } + if (y2 > clip_rect.w) + { + v2 = v1 + ((clip_rect.w - y1) / (y2 - y1)) * (v2 - v1); + y2 = clip_rect.w; + } + if (y1 >= y2) + { + x += char_width; + continue; + } + } + + // NB: we are not calling PrimRectUV() here because non-inlined causes too much overhead in a debug build. + // inlined: + { + idx_write[0] = (ImDrawIdx)(vtx_current_idx); idx_write[1] = (ImDrawIdx)(vtx_current_idx+1); idx_write[2] = (ImDrawIdx)(vtx_current_idx+2); + idx_write[3] = (ImDrawIdx)(vtx_current_idx); idx_write[4] = (ImDrawIdx)(vtx_current_idx+2); idx_write[5] = (ImDrawIdx)(vtx_current_idx+3); + vtx_write[0].pos.x = x1; vtx_write[0].pos.y = y1; vtx_write[0].col = col; vtx_write[0].uv.x = u1; vtx_write[0].uv.y = v1; + vtx_write[1].pos.x = x2; vtx_write[1].pos.y = y1; vtx_write[1].col = col; vtx_write[1].uv.x = u2; vtx_write[1].uv.y = v1; + vtx_write[2].pos.x = x2; vtx_write[2].pos.y = y2; vtx_write[2].col = col; vtx_write[2].uv.x = u2; vtx_write[2].uv.y = v2; + vtx_write[3].pos.x = x1; vtx_write[3].pos.y = y2; vtx_write[3].col = col; vtx_write[3].uv.x = u1; vtx_write[3].uv.y = v2; + vtx_write += 4; + vtx_current_idx += 4; + idx_write += 6; + } + } + } + } + + x += char_width; + } + + draw_list->_VtxWritePtr = vtx_write; + draw_list->_VtxCurrentIdx = vtx_current_idx; + draw_list->_IdxWritePtr = idx_write; +} + +//----------------------------------------------------------------------------- +// DEFAULT FONT DATA +//----------------------------------------------------------------------------- +// Compressed with stb_compress() then converted to a C array. +// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file. +// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h +//----------------------------------------------------------------------------- + +static unsigned int stb_decompress_length(unsigned char *input) +{ + return (input[8] << 24) + (input[9] << 16) + (input[10] << 8) + input[11]; +} + +static unsigned char *stb__barrier, *stb__barrier2, *stb__barrier3, *stb__barrier4; +static unsigned char *stb__dout; +static void stb__match(unsigned char *data, unsigned int length) +{ + // INVERSE of memmove... write each byte before copying the next... + IM_ASSERT (stb__dout + length <= stb__barrier); + if (stb__dout + length > stb__barrier) { stb__dout += length; return; } + if (data < stb__barrier4) { stb__dout = stb__barrier+1; return; } + while (length--) *stb__dout++ = *data++; +} + +static void stb__lit(unsigned char *data, unsigned int length) +{ + IM_ASSERT (stb__dout + length <= stb__barrier); + if (stb__dout + length > stb__barrier) { stb__dout += length; return; } + if (data < stb__barrier2) { stb__dout = stb__barrier+1; return; } + memcpy(stb__dout, data, length); + stb__dout += length; +} + +#define stb__in2(x) ((i[x] << 8) + i[(x)+1]) +#define stb__in3(x) ((i[x] << 16) + stb__in2((x)+1)) +#define stb__in4(x) ((i[x] << 24) + stb__in3((x)+1)) + +static unsigned char *stb_decompress_token(unsigned char *i) +{ + if (*i >= 0x20) { // use fewer if's for cases that expand small + if (*i >= 0x80) stb__match(stb__dout-i[1]-1, i[0] - 0x80 + 1), i += 2; + else if (*i >= 0x40) stb__match(stb__dout-(stb__in2(0) - 0x4000 + 1), i[2]+1), i += 3; + else /* *i >= 0x20 */ stb__lit(i+1, i[0] - 0x20 + 1), i += 1 + (i[0] - 0x20 + 1); + } else { // more ifs for cases that expand large, since overhead is amortized + if (*i >= 0x18) stb__match(stb__dout-(stb__in3(0) - 0x180000 + 1), i[3]+1), i += 4; + else if (*i >= 0x10) stb__match(stb__dout-(stb__in3(0) - 0x100000 + 1), stb__in2(3)+1), i += 5; + else if (*i >= 0x08) stb__lit(i+2, stb__in2(0) - 0x0800 + 1), i += 2 + (stb__in2(0) - 0x0800 + 1); + else if (*i == 0x07) stb__lit(i+3, stb__in2(1) + 1), i += 3 + (stb__in2(1) + 1); + else if (*i == 0x06) stb__match(stb__dout-(stb__in3(1)+1), i[4]+1), i += 5; + else if (*i == 0x04) stb__match(stb__dout-(stb__in3(1)+1), stb__in2(4)+1), i += 6; + } + return i; +} + +static unsigned int stb_adler32(unsigned int adler32, unsigned char *buffer, unsigned int buflen) +{ + const unsigned long ADLER_MOD = 65521; + unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16; + unsigned long blocklen, i; + + blocklen = buflen % 5552; + while (buflen) { + for (i=0; i + 7 < blocklen; i += 8) { + s1 += buffer[0], s2 += s1; + s1 += buffer[1], s2 += s1; + s1 += buffer[2], s2 += s1; + s1 += buffer[3], s2 += s1; + s1 += buffer[4], s2 += s1; + s1 += buffer[5], s2 += s1; + s1 += buffer[6], s2 += s1; + s1 += buffer[7], s2 += s1; + + buffer += 8; + } + + for (; i < blocklen; ++i) + s1 += *buffer++, s2 += s1; + + s1 %= ADLER_MOD, s2 %= ADLER_MOD; + buflen -= blocklen; + blocklen = 5552; + } + return (unsigned int)(s2 << 16) + (unsigned int)s1; +} + +static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length) +{ + unsigned int olen; + if (stb__in4(0) != 0x57bC0000) return 0; + if (stb__in4(4) != 0) return 0; // error! stream is > 4GB + olen = stb_decompress_length(i); + stb__barrier2 = i; + stb__barrier3 = i+length; + stb__barrier = output + olen; + stb__barrier4 = output; + i += 16; + + stb__dout = output; + for (;;) { + unsigned char *old_i = i; + i = stb_decompress_token(i); + if (i == old_i) { + if (*i == 0x05 && i[1] == 0xfa) { + IM_ASSERT(stb__dout == output + olen); + if (stb__dout != output + olen) return 0; + if (stb_adler32(1, output, olen) != (unsigned int) stb__in4(2)) + return 0; + return olen; + } else { + IM_ASSERT(0); /* NOTREACHED */ + return 0; + } + } + IM_ASSERT(stb__dout <= output + olen); + if (stb__dout > output + olen) + return 0; + } +} + +//----------------------------------------------------------------------------- +// ProggyClean.ttf +// Copyright (c) 2004, 2005 Tristan Grimmer +// MIT license (see License.txt in http://www.upperbounds.net/download/ProggyClean.ttf.zip) +// Download and more information at http://upperbounds.net +//----------------------------------------------------------------------------- +// File: 'ProggyClean.ttf' (41208 bytes) +// Exported using binary_to_compressed_c.cpp +//----------------------------------------------------------------------------- +static const char proggy_clean_ttf_compressed_data_base85[11980+1] = + "7])#######hV0qs'/###[),##/l:$#Q6>##5[n42>c-TH`->>#/e>11NNV=Bv(*:.F?uu#(gRU.o0XGH`$vhLG1hxt9?W`#,5LsCp#-i>.r$<$6pD>Lb';9Crc6tgXmKVeU2cD4Eo3R/" + "2*>]b(MC;$jPfY.;h^`IWM9Qo#t'X#(v#Y9w0#1D$CIf;W'#pWUPXOuxXuU(H9M(1=Ke$$'5F%)]0^#0X@U.a$FBjVQTSDgEKnIS7EM9>ZY9w0#L;>>#Mx&4Mvt//L[MkA#W@lK.N'[0#7RL_&#w+F%HtG9M#XL`N&.,GM4Pg;--VsM.M0rJfLH2eTM`*oJMHRC`N" + "kfimM2J,W-jXS:)r0wK#@Fge$U>`w'N7G#$#fB#$E^$#:9:hk+eOe--6x)F7*E%?76%^GMHePW-Z5l'&GiF#$956:rS?dA#fiK:)Yr+`�j@'DbG&#^$PG.Ll+DNa&VZ>1i%h1S9u5o@YaaW$e+bROPOpxTO7Stwi1::iB1q)C_=dV26J;2,]7op$]uQr@_V7$q^%lQwtuHY]=DX,n3L#0PHDO4f9>dC@O>HBuKPpP*E,N+b3L#lpR/MrTEH.IAQk.a>D[.e;mc." + "x]Ip.PH^'/aqUO/$1WxLoW0[iLAw=4h(9.`G" + "CRUxHPeR`5Mjol(dUWxZa(>STrPkrJiWx`5U7F#.g*jrohGg`cg:lSTvEY/EV_7H4Q9[Z%cnv;JQYZ5q.l7Zeas:HOIZOB?Ggv:[7MI2k).'2($5FNP&EQ(,)" + "U]W]+fh18.vsai00);D3@4ku5P?DP8aJt+;qUM]=+b'8@;mViBKx0DE[-auGl8:PJ&Dj+M6OC]O^((##]`0i)drT;-7X`=-H3[igUnPG-NZlo.#k@h#=Ork$m>a>$-?Tm$UV(?#P6YY#" + "'/###xe7q.73rI3*pP/$1>s9)W,JrM7SN]'/4C#v$U`0#V.[0>xQsH$fEmPMgY2u7Kh(G%siIfLSoS+MK2eTM$=5,M8p`A.;_R%#u[K#$x4AG8.kK/HSB==-'Ie/QTtG?-.*^N-4B/ZM" + "_3YlQC7(p7q)&](`6_c)$/*JL(L-^(]$wIM`dPtOdGA,U3:w2M-0+WomX2u7lqM2iEumMTcsF?-aT=Z-97UEnXglEn1K-bnEO`gu" + "Ft(c%=;Am_Qs@jLooI&NX;]0#j4#F14;gl8-GQpgwhrq8'=l_f-b49'UOqkLu7-##oDY2L(te+Mch&gLYtJ,MEtJfLh'x'M=$CS-ZZ%P]8bZ>#S?YY#%Q&q'3^Fw&?D)UDNrocM3A76/" + "/oL?#h7gl85[qW/NDOk%16ij;+:1a'iNIdb-ou8.P*w,v5#EI$TWS>Pot-R*H'-SEpA:g)f+O$%%`kA#G=8RMmG1&O`>to8bC]T&$,n.LoO>29sp3dt-52U%VM#q7'DHpg+#Z9%H[Ket`e;)f#Km8&+DC$I46>#Kr]]u-[=99tts1.qb#q72g1WJO81q+eN'03'eM>&1XxY-caEnO" + "j%2n8)),?ILR5^.Ibn<-X-Mq7[a82Lq:F&#ce+S9wsCK*x`569E8ew'He]h:sI[2LM$[guka3ZRd6:t%IG:;$%YiJ:Nq=?eAw;/:nnDq0(CYcMpG)qLN4$##&J-XTt,%OVU4)S1+R-#dg0/Nn?Ku1^0f$B*P:Rowwm-`0PKjYDDM'3]d39VZHEl4,.j']Pk-M.h^&:0FACm$maq-&sgw0t7/6(^xtk%" + "LuH88Fj-ekm>GA#_>568x6(OFRl-IZp`&b,_P'$MhLbxfc$mj`,O;&%W2m`Zh:/)Uetw:aJ%]K9h:TcF]u_-Sj9,VK3M.*'&0D[Ca]J9gp8,kAW]" + "%(?A%R$f<->Zts'^kn=-^@c4%-pY6qI%J%1IGxfLU9CP8cbPlXv);C=b),<2mOvP8up,UVf3839acAWAW-W?#ao/^#%KYo8fRULNd2.>%m]UK:n%r$'sw]J;5pAoO_#2mO3n,'=H5(et" + "Hg*`+RLgv>=4U8guD$I%D:W>-r5V*%j*W:Kvej.Lp$'?;++O'>()jLR-^u68PHm8ZFWe+ej8h:9r6L*0//c&iH&R8pRbA#Kjm%upV1g:" + "a_#Ur7FuA#(tRh#.Y5K+@?3<-8m0$PEn;J:rh6?I6uG<-`wMU'ircp0LaE_OtlMb&1#6T.#FDKu#1Lw%u%+GM+X'e?YLfjM[VO0MbuFp7;>Q&#WIo)0@F%q7c#4XAXN-U&VBpqB>0ie&jhZ[?iLR@@_AvA-iQC(=ksRZRVp7`.=+NpBC%rh&3]R:8XDmE5^V8O(x<-+k?'(^](H.aREZSi,#1:[IXaZFOm<-ui#qUq2$##Ri;u75OK#(RtaW-K-F`S+cF]uN`-KMQ%rP/Xri.LRcB##=YL3BgM/3M" + "D?@f&1'BW-)Ju#bmmWCMkk&#TR`C,5d>g)F;t,4:@_l8G/5h4vUd%&%950:VXD'QdWoY-F$BtUwmfe$YqL'8(PWX(" + "P?^@Po3$##`MSs?DWBZ/S>+4%>fX,VWv/w'KD`LP5IbH;rTV>n3cEK8U#bX]l-/V+^lj3;vlMb&[5YQ8#pekX9JP3XUC72L,,?+Ni&co7ApnO*5NK,((W-i:$,kp'UDAO(G0Sq7MVjJs" + "bIu)'Z,*[>br5fX^:FPAWr-m2KgLQ_nN6'8uTGT5g)uLv:873UpTLgH+#FgpH'_o1780Ph8KmxQJ8#H72L4@768@Tm&Q" + "h4CB/5OvmA&,Q&QbUoi$a_%3M01H)4x7I^&KQVgtFnV+;[Pc>[m4k//,]1?#`VY[Jr*3&&slRfLiVZJ:]?=K3Sw=[$=uRB?3xk48@aege0jT6'N#(q%.O=?2S]u*(m<-" + "V8J'(1)G][68hW$5'q[GC&5j`TE?m'esFGNRM)j,ffZ?-qx8;->g4t*:CIP/[Qap7/9'#(1sao7w-.qNUdkJ)tCF&#B^;xGvn2r9FEPFFFcL@.iFNkTve$m%#QvQS8U@)2Z+3K:AKM5i" + "sZ88+dKQ)W6>J%CL`.d*(B`-n8D9oK-XV1q['-5k'cAZ69e;D_?$ZPP&s^+7])$*$#@QYi9,5P r+$%CE=68>K8r0=dSC%%(@p7" + ".m7jilQ02'0-VWAgTlGW'b)Tq7VT9q^*^$$.:&N@@" + "$&)WHtPm*5_rO0&e%K&#-30j(E4#'Zb.o/(Tpm$>K'f@[PvFl,hfINTNU6u'0pao7%XUp9]5.>%h`8_=VYbxuel.NTSsJfLacFu3B'lQSu/m6-Oqem8T+oE--$0a/k]uj9EwsG>%veR*" + "hv^BFpQj:K'#SJ,sB-'#](j.Lg92rTw-*n%@/;39rrJF,l#qV%OrtBeC6/,;qB3ebNW[?,Hqj2L.1NP&GjUR=1D8QaS3Up&@*9wP?+lo7b?@%'k4`p0Z$22%K3+iCZj?XJN4Nm&+YF]u" + "@-W$U%VEQ/,,>>#)D#%8cY#YZ?=,`Wdxu/ae&#" + "w6)R89tI#6@s'(6Bf7a&?S=^ZI_kS&ai`&=tE72L_D,;^R)7[$so8lKN%5/$(vdfq7+ebA#" + "u1p]ovUKW&Y%q]'>$1@-[xfn$7ZTp7mM,G,Ko7a&Gu%G[RMxJs[0MM%wci.LFDK)(%:_i2B5CsR8&9Z&#=mPEnm0f`<&c)QL5uJ#%u%lJj+D-r;BoFDoS97h5g)E#o:&S4weDF,9^Hoe`h*L+_a*NrLW-1pG_&2UdB8" + "6e%B/:=>)N4xeW.*wft-;$'58-ESqr#U`'6AQ]m&6/`Z>#S?YY#Vc;r7U2&326d=w&H####?TZ`*4?&.MK?LP8Vxg>$[QXc%QJv92.(Db*B)gb*BM9dM*hJMAo*c&#" + "b0v=Pjer]$gG&JXDf->'StvU7505l9$AFvgYRI^&<^b68?j#q9QX4SM'RO#&sL1IM.rJfLUAj221]d##DW=m83u5;'bYx,*Sl0hL(W;;$doB&O/TQ:(Z^xBdLjLV#*8U_72Lh+2Q8Cj0i:6hp&$C/:p(HK>T8Y[gHQ4`4)'$Ab(Nof%V'8hL&#SfD07&6D@M.*J:;$-rv29'M]8qMv-tLp,'886iaC=Hb*YJoKJ,(j%K=H`K.v9HggqBIiZu'QvBT.#=)0ukruV&.)3=(^1`o*Pj4<-#MJ+gLq9-##@HuZPN0]u:h7.T..G:;$/Usj(T7`Q8tT72LnYl<-qx8;-HV7Q-&Xdx%1a,hC=0u+HlsV>nuIQL-5" + "_>@kXQtMacfD.m-VAb8;IReM3$wf0''hra*so568'Ip&vRs849'MRYSp%:t:h5qSgwpEr$B>Q,;s(C#$)`svQuF$##-D,##,g68@2[T;.XSdN9Qe)rpt._K-#5wF)sP'##p#C0c%-Gb%" + "hd+<-j'Ai*x&&HMkT]C'OSl##5RG[JXaHN;d'uA#x._U;.`PU@(Z3dt4r152@:v,'R.Sj'w#0<-;kPI)FfJ&#AYJ&#//)>-k=m=*XnK$>=)72L]0I%>.G690a:$##<,);?;72#?x9+d;" + "^V'9;jY@;)br#q^YQpx:X#Te$Z^'=-=bGhLf:D6&bNwZ9-ZD#n^9HhLMr5G;']d&6'wYmTFmLq9wI>P(9mI[>kC-ekLC/R&CH+s'B;K-M6$EB%is00:" + "+A4[7xks.LrNk0&E)wILYF@2L'0Nb$+pv<(2.768/FrY&h$^3i&@+G%JT'<-,v`3;_)I9M^AE]CN?Cl2AZg+%4iTpT3$U4O]GKx'm9)b@p7YsvK3w^YR-" + "CdQ*:Ir<($u&)#(&?L9Rg3H)4fiEp^iI9O8KnTj,]H?D*r7'M;PwZ9K0E^k&-cpI;.p/6_vwoFMV<->#%Xi.LxVnrU(4&8/P+:hLSKj$#U%]49t'I:rgMi'FL@a:0Y-uA[39',(vbma*" + "hU%<-SRF`Tt:542R_VV$p@[p8DV[A,?1839FWdFTi1O*H&#(AL8[_P%.M>v^-))qOT*F5Cq0`Ye%+$B6i:7@0IXSsDiWP,##P`%/L-" + "S(qw%sf/@%#B6;/U7K]uZbi^Oc^2n%t<)'mEVE''n`WnJra$^TKvX5B>;_aSEK',(hwa0:i4G?.Bci.(X[?b*($,=-n<.Q%`(X=?+@Am*Js0&=3bh8K]mL69=Lb,OcZV/);TTm8VI;?%OtJ<(b4mq7M6:u?KRdFl*:xP?Yb.5)%w_I?7uk5JC+FS(m#i'k.'a0i)9<7b'fs'59hq$*5Uhv##pi^8+hIEBF`nvo`;'l0.^S1<-wUK2/Coh58KKhLj" + "M=SO*rfO`+qC`W-On.=AJ56>>i2@2LH6A:&5q`?9I3@@'04&p2/LVa*T-4<-i3;M9UvZd+N7>b*eIwg:CC)c<>nO&#$(>.Z-I&J(Q0Hd5Q%7Co-b`-cP)hI;*_F]u`Rb[.j8_Q/<&>uu+VsH$sM9TA%?)(vmJ80),P7E>)tjD%2L=-t#fK[%`v=Q8WlA2);Sa" + ">gXm8YB`1d@K#n]76-a$U,mF%Ul:#/'xoFM9QX-$.QN'>" + "[%$Z$uF6pA6Ki2O5:8w*vP1<-1`[G,)-m#>0`P&#eb#.3i)rtB61(o'$?X3B2Qft^ae_5tKL9MUe9b*sLEQ95C&`=G?@Mj=wh*'3E>=-<)Gt*Iw)'QG:`@I" + "wOf7&]1i'S01B+Ev/Nac#9S;=;YQpg_6U`*kVY39xK,[/6Aj7:'1Bm-_1EYfa1+o&o4hp7KN_Q(OlIo@S%;jVdn0'1h19w,WQhLI)3S#f$2(eb,jr*b;3Vw]*7NH%$c4Vs,eD9>XW8?N]o+(*pgC%/72LV-uW%iewS8W6m2rtCpo'RS1R84=@paTKt)>=%&1[)*vp'u+x,VrwN;&]kuO9JDbg=pO$J*.jVe;u'm0dr9l,<*wMK*Oe=g8lV_KEBFkO'oU]^=[-792#ok,)" + "i]lR8qQ2oA8wcRCZ^7w/Njh;?.stX?Q1>S1q4Bn$)K1<-rGdO'$Wr.Lc.CG)$/*JL4tNR/,SVO3,aUw'DJN:)Ss;wGn9A32ijw%FL+Z0Fn.U9;reSq)bmI32U==5ALuG&#Vf1398/pVo" + "1*c-(aY168o<`JsSbk-,1N;$>0:OUas(3:8Z972LSfF8eb=c-;>SPw7.6hn3m`9^Xkn(r.qS[0;T%&Qc=+STRxX'q1BNk3&*eu2;&8q$&x>Q#Q7^Tf+6<(d%ZVmj2bDi%.3L2n+4W'$P" + "iDDG)g,r%+?,$@?uou5tSe2aN_AQU*'IAO" + "URQ##V^Fv-XFbGM7Fl(N<3DhLGF%q.1rC$#:T__&Pi68%0xi_&[qFJ(77j_&JWoF.V735&T,[R*:xFR*K5>>#`bW-?4Ne_&6Ne_&6Ne_&n`kr-#GJcM6X;uM6X;uM(.a..^2TkL%oR(#" + ";u.T%fAr%4tJ8&><1=GHZ_+m9/#H1F^R#SC#*N=BA9(D?v[UiFY>>^8p,KKF.W]L29uLkLlu/+4T" + "w$)F./^n3+rlo+DB;5sIYGNk+i1t-69Jg--0pao7Sm#K)pdHW&;LuDNH@H>#/X-TI(;P>#,Gc>#0Su>#4`1?#8lC?#xL$#B.`$#F:r$#JF.%#NR@%#R_R%#Vke%#Zww%#_-4^Rh%Sflr-k'MS.o?.5/sWel/wpEM0%3'/1)K^f1-d>G21&v(35>V`39V7A4=onx4" + "A1OY5EI0;6Ibgr6M$HS7Q<)58C5w,;WoA*#[%T*#`1g*#d=#+#hI5+#lUG+#pbY+#tnl+#x$),#&1;,#*=M,#.I`,#2Ur,#6b.-#;w[H#iQtA#m^0B#qjBB#uvTB##-hB#'9$C#+E6C#" + "/QHC#3^ZC#7jmC#;v)D#?,)4kMYD4lVu`4m`:&5niUA5@(A5BA1]PBB:xlBCC=2CDLXMCEUtiCf&0g2'tN?PGT4CPGT4CPGT4CPGT4CPGT4CPGT4CPGT4CP" + "GT4CPGT4CPGT4CPGT4CPGT4CPGT4CP-qekC`.9kEg^+F$kwViFJTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5o,^<-28ZI'O?;xp" + "O?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xp;7q-#lLYI:xvD=#"; + +static const char* GetDefaultCompressedFontDataTTFBase85() +{ + return proggy_clean_ttf_compressed_data_base85; +} diff --git a/samples/dual_layer/D3D12/src/imgui/imgui_impl_dx12.cpp b/samples/dual_layer/D3D12/src/imgui/imgui_impl_dx12.cpp new file mode 100644 index 0000000..69fb80a --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/imgui_impl_dx12.cpp @@ -0,0 +1,826 @@ +// ImGui Win32 + DirectX11 binding +// https://github.com/ocornut/imgui + +#include "imgui/imgui.h" +#include "imgui_impl_dx12.h" + +// DirectX +#include +#include + +#include +#define DIRECTINPUT_VERSION 0x0800 +#include + +#define ALIGNED_SIZE(size, align) ((size + (align - 1)) & ~(align - 1)) + +// Data +static INT64 g_Time = 0; +static INT64 g_TicksPerSecond = 0; + +static HWND g_hWnd = 0; +static ID3D12Device* g_pd3dDevice = NULL; +static ID3D12GraphicsCommandList* g_pd3dCmdList = NULL; +static ID3D12CommandQueue* g_pd3dCmdQueue = NULL; +static ID3D12Resource* g_pFontTextureUploadHeap = NULL; + +enum DescHeapHandleLayout +{ + eVertexCB = 0, + eFontTexture = 1, +}; + +struct GpuFence +{ + ID3D12Fence* pFence = NULL; + HANDLE hFenceEvent = 0; + UINT64 FenceValue = 0; + + void Init() + { + if (FAILED(g_pd3dDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&pFence)))) return; + pFence->SetName(L"ImguiFence"); + FenceValue = 0; + hFenceEvent = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); + } + + void Release() + { + if (pFence) pFence->Release(); + pFence = NULL; + FenceValue = 0; + CloseHandle(hFenceEvent); + } + + void IncrFence() + { + FenceValue++; + } + + void WaitForFence() + { + // Schedule a Signal command in the queue. + if (FAILED(g_pd3dCmdQueue->Signal(pFence, FenceValue))) return; + + if (FAILED(pFence->SetEventOnCompletion(FenceValue, hFenceEvent))) return; + + WaitForSingleObjectEx(hFenceEvent, INFINITE, FALSE); + } +}; + +static GpuFence g_GpuFence; + +struct DescHeapInfo +{ + ID3D12DescriptorHeap* DescHeap; + UINT BaseOffset; + UINT IncrSize; + + D3D12_CPU_DESCRIPTOR_HANDLE GetCpuHandle(UINT Index) + { + D3D12_CPU_DESCRIPTOR_HANDLE CpuHandle = DescHeap->GetCPUDescriptorHandleForHeapStart(); + CpuHandle.ptr += IncrSize * (BaseOffset + Index); + return CpuHandle; + } + + D3D12_GPU_DESCRIPTOR_HANDLE GetGpuHandle(UINT Index) + { + D3D12_GPU_DESCRIPTOR_HANDLE GpuHandle = DescHeap->GetGPUDescriptorHandleForHeapStart(); + GpuHandle.ptr += IncrSize * (BaseOffset + Index); + return GpuHandle; + } +}; + +DescHeapInfo g_DescHeapCbvSrvUav; + +static ID3D12Resource* g_pVB = NULL; +static ID3D12Resource* g_pIB = NULL; +static D3D12_VERTEX_BUFFER_VIEW g_VBView = {}; +static D3D12_INDEX_BUFFER_VIEW g_IBView = {}; +static ID3D10Blob* g_pVertexShader = NULL; +static ID3D12Resource* g_pVertexConstantBuffer = NULL; +static ID3D10Blob* g_pPixelShader = NULL; +static ID3D12RootSignature* g_pRootSignature = NULL; +static ID3D12PipelineState* g_pPSO = NULL; +static ID3D12Resource* g_pFontTexture = NULL; +static D3D12_STATIC_SAMPLER_DESC g_FontSampler; +static D3D12_CPU_DESCRIPTOR_HANDLE g_cbCpuHandle; + +static int VERTEX_BUFFER_SIZE = 20000; // TODO: Make buffers smaller and grow dynamically as needed. +static int INDEX_BUFFER_SIZE = 40000; // TODO: Make buffers smaller and grow dynamically as needed. + +struct VERTEX_CONSTANT_BUFFER +{ + float mvp[4][4]; +}; + +// This is the main rendering function that you have to implement and provide to ImGui (via setting up 'RenderDrawListsFn' in the ImGuiIO structure) +// If text or lines are blurry when integrating ImGui in your engine: +// - in your Render function, try translating your projection matrix by (0.5f,0.5f) or (0.375f,0.375f) +static void ImGui_ImplDX12_RenderDrawLists(ImDrawData* draw_data) +{ + ImDrawVert* vtx_dst = NULL; + ImDrawIdx* idx_dst = NULL; + + // Copy and convert all vertices into a single contiguous buffer + if (g_pVB->Map(0, nullptr, reinterpret_cast(&vtx_dst)) != S_OK) + return; + if (g_pIB->Map(0, nullptr, reinterpret_cast(&idx_dst)) != S_OK) + return; + for (int n = 0; n < draw_data->CmdListsCount; n++) + { + const ImDrawList* cmd_list = draw_data->CmdLists[n]; + memcpy(vtx_dst, &cmd_list->VtxBuffer[0], cmd_list->VtxBuffer.size() * sizeof(ImDrawVert)); + memcpy(idx_dst, &cmd_list->IdxBuffer[0], cmd_list->IdxBuffer.size() * sizeof(ImDrawIdx)); + vtx_dst += cmd_list->VtxBuffer.size(); + idx_dst += cmd_list->IdxBuffer.size(); + } + g_pVB->Unmap(0, nullptr); + g_pIB->Unmap(0, nullptr); + + // Setup orthographic projection matrix into our constant buffer + { + VERTEX_CONSTANT_BUFFER* pConstantBuffer = NULL; + g_pVertexConstantBuffer->Map(0, nullptr, reinterpret_cast(&pConstantBuffer)); + + const float L = 0.0f; + const float R = ImGui::GetIO().DisplaySize.x; + const float B = ImGui::GetIO().DisplaySize.y; + const float T = 0.0f; + const float mvp[4][4] = + { + { 2.0f/(R-L), 0.0f, 0.0f, 0.0f}, + { 0.0f, 2.0f/(T-B), 0.0f, 0.0f,}, + { 0.0f, 0.0f, 0.5f, 0.0f }, + { (R+L)/(L-R), (T+B)/(B-T), 0.5f, 1.0f }, + }; + memcpy(&pConstantBuffer->mvp, mvp, sizeof(mvp)); + g_pVertexConstantBuffer->Unmap(0, nullptr); + } + + // Setup viewport + { + D3D12_VIEWPORT vp; + memset(&vp, 0, sizeof(D3D12_VIEWPORT)); + vp.Width = ImGui::GetIO().DisplaySize.x; + vp.Height = ImGui::GetIO().DisplaySize.y; + vp.MinDepth = 0.0f; + vp.MaxDepth = 1.0f; + vp.TopLeftX = 0; + vp.TopLeftY = 0; + g_pd3dCmdList->RSSetViewports(1, &vp); + } + + ID3D12DescriptorHeap* descHeaps[] = { g_DescHeapCbvSrvUav.DescHeap }; + g_pd3dCmdList->SetDescriptorHeaps(ARRAYSIZE(descHeaps), descHeaps); + + // Bind shader and vertex buffers + g_pd3dCmdList->SetGraphicsRootSignature(g_pRootSignature); + g_pd3dCmdList->SetPipelineState(g_pPSO); + g_pd3dCmdList->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); + g_pd3dCmdList->IASetVertexBuffers(0, 1, &g_VBView); + g_pd3dCmdList->IASetIndexBuffer(&g_IBView); + + g_pd3dCmdList->SetGraphicsRootConstantBufferView(0, g_pVertexConstantBuffer->GetGPUVirtualAddress()); + //g_pd3dCmdList->SetGraphicsRootDescriptorTable(0, g_DescHeapCbvSrvUav.GetGpuHandle(eCB)); + + // Setup render state + const float blendFactor[4] = { 0.f, 0.f, 0.f, 0.f }; + g_pd3dCmdList->OMSetBlendFactor(blendFactor); + + // Render command lists + int vtx_offset = 0; + int idx_offset = 0; + for (int n = 0; n < draw_data->CmdListsCount; n++) + { + const ImDrawList* cmd_list = draw_data->CmdLists[n]; + for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.size(); cmd_i++) + { + const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[cmd_i]; + if (pcmd->UserCallback) + { + pcmd->UserCallback(cmd_list, pcmd); + } + else + { + const D3D12_RECT r = { (LONG)pcmd->ClipRect.x, (LONG)pcmd->ClipRect.y, (LONG)pcmd->ClipRect.z, (LONG)pcmd->ClipRect.w }; + D3D12_GPU_DESCRIPTOR_HANDLE* FontTextureGpuHandle = (D3D12_GPU_DESCRIPTOR_HANDLE*)pcmd->TextureId; + g_pd3dCmdList->SetGraphicsRootDescriptorTable(1, *FontTextureGpuHandle); + g_pd3dCmdList->RSSetScissorRects(1, &r); + g_pd3dCmdList->DrawIndexedInstanced(pcmd->ElemCount, 1, idx_offset, vtx_offset, 0); + } + idx_offset += pcmd->ElemCount; + } + vtx_offset += cmd_list->VtxBuffer.size(); + } + + g_GpuFence.IncrFence(); +} + +LRESULT ImGui_ImplDX12_WndProcHandler(HWND, UINT msg, WPARAM wParam, LPARAM lParam) +{ + ImGuiIO& io = ImGui::GetIO(); + switch (msg) + { + case WM_LBUTTONDOWN: + io.MouseDown[0] = true; + return true; + case WM_LBUTTONUP: + io.MouseDown[0] = false; + return true; + case WM_RBUTTONDOWN: + io.MouseDown[1] = true; + return true; + case WM_RBUTTONUP: + io.MouseDown[1] = false; + return true; + case WM_MOUSEWHEEL: + io.MouseWheel += GET_WHEEL_DELTA_WPARAM(wParam) > 0 ? +1.0f : -1.0f; + return true; + case WM_MOUSEMOVE: + io.MousePos.x = (signed short)(lParam); + io.MousePos.y = (signed short)(lParam >> 16); + return true; + case WM_KEYDOWN: + if (wParam < 256) + io.KeysDown[wParam] = 1; + return true; + case WM_KEYUP: + if (wParam < 256) + io.KeysDown[wParam] = 0; + return true; + case WM_CHAR: + // You can also use ToAscii()+GetKeyboardState() to retrieve characters. + if (wParam > 0 && wParam < 0x10000) + io.AddInputCharacter((unsigned short)wParam); + return true; + } + return 0; +} + +static void SetResourceBarrier(ID3D12GraphicsCommandList* commandList, + ID3D12Resource* res, + D3D12_RESOURCE_STATES before, + D3D12_RESOURCE_STATES after) +{ + D3D12_RESOURCE_BARRIER desc = {}; + desc.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; + desc.Transition.pResource = res; + desc.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES; + desc.Transition.StateBefore = before; + desc.Transition.StateAfter = after; + desc.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE; + commandList->ResourceBarrier(1, &desc); +} + +static void ImGui_ImplDX12_CreateFontsTexture() +{ + ImGuiIO& io = ImGui::GetIO(); + + ImFont* font0 = io.Fonts->AddFontDefault(); + //io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18); + + // Build + unsigned char* pixels; + int width, height; + io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); + + // Create DX12 texture + { + D3D12_RESOURCE_DESC Desc = {}; + Desc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE2D; + Desc.Width = width; + Desc.Height = height; + Desc.MipLevels = 1; + Desc.DepthOrArraySize = 1; + Desc.SampleDesc.Count = 1; + Desc.SampleDesc.Quality = 0; + Desc.Flags = D3D12_RESOURCE_FLAG_NONE; + Desc.Layout = D3D12_TEXTURE_LAYOUT_UNKNOWN; + Desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; + Desc.Alignment = 0; + + D3D12_HEAP_PROPERTIES texHeapProp = { + D3D12_HEAP_TYPE_DEFAULT, + D3D12_CPU_PAGE_PROPERTY_UNKNOWN, + D3D12_MEMORY_POOL_UNKNOWN, + 1, 1 + }; + + if (g_pFontTexture) g_pFontTexture->Release(); + + if (g_pd3dDevice->CreateCommittedResource( + &texHeapProp, + D3D12_HEAP_FLAG_NONE, + &Desc, + D3D12_RESOURCE_STATE_GENERIC_READ, + nullptr, + IID_PPV_ARGS(&g_pFontTexture)) != S_OK) + { + assert(0); + return; + } + + g_pFontTexture->SetName(L"ImGuiFontTexture"); + + // Initialize texture + { + // Create the texture. + const UINT64 uploadBufferSize = GetRequiredIntermediateSize(g_pFontTexture, 0, 1); + + // Create the GPU upload buffer. + if (g_pd3dDevice->CreateCommittedResource( + &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), + D3D12_HEAP_FLAG_NONE, + &CD3DX12_RESOURCE_DESC::Buffer(uploadBufferSize), + D3D12_RESOURCE_STATE_GENERIC_READ, + nullptr, + IID_PPV_ARGS(&g_pFontTextureUploadHeap)) != S_OK) + { + assert(0); + return; + } + g_pFontTextureUploadHeap->SetName(L"Imgui_TextureUploadHeap"); + // Copy data to the intermediate upload heap and then schedule a copy + // from the upload heap to the Texture2D. + D3D12_SUBRESOURCE_DATA textureData = {}; + textureData.pData = pixels; + textureData.RowPitch = width * 4; + textureData.SlicePitch = textureData.RowPitch * height; + + SetResourceBarrier(g_pd3dCmdList, g_pFontTexture, D3D12_RESOURCE_STATE_GENERIC_READ, D3D12_RESOURCE_STATE_COPY_DEST); + + UpdateSubresources(g_pd3dCmdList, g_pFontTexture, g_pFontTextureUploadHeap, 0, 0, 1, &textureData); + + SetResourceBarrier(g_pd3dCmdList, g_pFontTexture, D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE); + } + + // SRV + D3D12_SHADER_RESOURCE_VIEW_DESC SRVDesc = {}; + SRVDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; + SRVDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; + SRVDesc.Texture2D.MipLevels = 1; + SRVDesc.Texture2D.MostDetailedMip = 0; // No MIP + SRVDesc.Texture2D.PlaneSlice = 0; + SRVDesc.Texture2D.ResourceMinLODClamp = 0.0f; + + D3D12_CPU_DESCRIPTOR_HANDLE CpuHandle = g_DescHeapCbvSrvUav.GetCpuHandle(eFontTexture); + g_pd3dDevice->CreateShaderResourceView(g_pFontTexture, &SRVDesc, CpuHandle); + + // Store our identifier + D3D12_GPU_DESCRIPTOR_HANDLE* pGpuHandle = new D3D12_GPU_DESCRIPTOR_HANDLE; + (*pGpuHandle) = g_DescHeapCbvSrvUav.GetGpuHandle(eFontTexture); + io.Fonts->TexID = (void *)pGpuHandle; + + //D3D12_SAMPLER_DESC samplerDesc; + //samplerDesc.Filter = D3D12_FILTER_MIN_MAG_MIP_LINEAR; + //samplerDesc.AddressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP; + //samplerDesc.AddressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP; + //samplerDesc.AddressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP; + //samplerDesc.MinLOD = -FLT_MAX; + //samplerDesc.MaxLOD = FLT_MAX; + //samplerDesc.MipLODBias = 0; + //samplerDesc.MaxAnisotropy = 0; + //samplerDesc.ComparisonFunc = D3D12_COMPARISON_FUNC_ALWAYS; + //mDev->CreateSampler(&samplerDesc, mDescHeapSampler->GetCPUDescriptorHandleForHeapStart()); + } + + // Cleanup (don't clear the input data if you want to append new fonts later) + io.Fonts->ClearInputData(); + io.Fonts->ClearTexData(); +} + +bool ImGui_ImplDX12_CreateDeviceObjects() +{ + if (!g_pd3dDevice) + return false; + if (g_pVB) + ImGui_ImplDX12_InvalidateDeviceObjects(); + + D3D12_HEAP_PROPERTIES uploadHeapProp = { + D3D12_HEAP_TYPE_UPLOAD, + D3D12_CPU_PAGE_PROPERTY_UNKNOWN, + D3D12_MEMORY_POOL_UNKNOWN, + 1, 1 + }; + + ID3D10Blob* pVertexShaderBlob = NULL; + ID3D10Blob* pPixelShaderBlob = NULL; + + // Create the vertex shader + { + static const char* vertexShader = + "cbuffer vertexBuffer : register(b0) \ + {\ + float4x4 ProjectionMatrix; \ + };\ + struct VS_INPUT\ + {\ + float2 pos : POSITION;\ + float2 uv : TEXCOORD0;\ + float4 col : COLOR0;\ + };\ + \ + struct PS_INPUT\ + {\ + float4 pos : SV_POSITION;\ + float4 col : COLOR0;\ + float2 uv : TEXCOORD0;\ + };\ + \ + PS_INPUT main(VS_INPUT input)\ + {\ + PS_INPUT output;\ + output.pos = mul( ProjectionMatrix, float4(input.pos.xy, 0.f, 1.f));\ + output.col = input.col;\ + output.uv = input.uv;\ + return output;\ + }"; + + D3DCompile(vertexShader, strlen(vertexShader), NULL, NULL, NULL, "main", "vs_5_0", 0, 0, &pVertexShaderBlob, NULL); + if (pVertexShaderBlob == NULL) // NB: Pass ID3D10Blob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! + { + assert(0); + return false; + } + + // Create the constant buffer + { + D3D12_RESOURCE_DESC cbResourceDesc = { + D3D12_RESOURCE_DIMENSION_BUFFER, + 0, + D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT, + 1, 1, 1, + DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, D3D12_RESOURCE_FLAG_NONE + }; + + if (g_pd3dDevice->CreateCommittedResource( + &uploadHeapProp, + D3D12_HEAP_FLAG_NONE, + &cbResourceDesc, + D3D12_RESOURCE_STATE_GENERIC_READ, + nullptr, + IID_PPV_ARGS(&g_pVertexConstantBuffer)) != S_OK) + { + assert(0); + return false; + } + + g_pVertexConstantBuffer->SetName(L"ImguiVertexCB"); + + D3D12_CONSTANT_BUFFER_VIEW_DESC cbvDesc = {}; + cbvDesc.BufferLocation = g_pVertexConstantBuffer->GetGPUVirtualAddress(); + cbvDesc.SizeInBytes = D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT; + + D3D12_CPU_DESCRIPTOR_HANDLE g_cbCpuHandle = g_DescHeapCbvSrvUav.GetCpuHandle(eVertexCB); + g_pd3dDevice->CreateConstantBufferView(&cbvDesc, g_cbCpuHandle); + } + } + + // Create the pixel shader + { + static const char* pixelShader = + "struct PS_INPUT\ + {\ + float4 pos : SV_POSITION;\ + float4 col : COLOR0;\ + float2 uv : TEXCOORD0;\ + };\ + sampler sampler0;\ + Texture2D texture0;\ + \ + float4 main(PS_INPUT input) : SV_Target\ + {\ + float4 out_col = input.col * texture0.Sample(sampler0, input.uv); \ + return out_col; \ + }"; + + D3DCompile(pixelShader, strlen(pixelShader), NULL, NULL, NULL, "main", "ps_5_0", 0, 0, &pPixelShaderBlob, NULL); + if (pPixelShaderBlob == NULL) // NB: Pass ID3D10Blob* pErrorBlob to D3DCompile() to get error showing in (const char*)pErrorBlob->GetBufferPointer(). Make sure to Release() the blob! + { + assert(0); + return false; + } + } + + // Create the blending setup + D3D12_BLEND_DESC localBlendState; + { + ZeroMemory(&localBlendState, sizeof(localBlendState)); + localBlendState.IndependentBlendEnable = false; + localBlendState.AlphaToCoverageEnable = false; + localBlendState.RenderTarget[0].BlendEnable = true; + localBlendState.RenderTarget[0].SrcBlend = D3D12_BLEND_SRC_ALPHA; + localBlendState.RenderTarget[0].DestBlend = D3D12_BLEND_INV_SRC_ALPHA; + localBlendState.RenderTarget[0].BlendOp = D3D12_BLEND_OP_ADD; + localBlendState.RenderTarget[0].SrcBlendAlpha = D3D12_BLEND_INV_SRC_ALPHA; + localBlendState.RenderTarget[0].DestBlendAlpha = D3D12_BLEND_ZERO; + localBlendState.RenderTarget[0].BlendOpAlpha = D3D12_BLEND_OP_ADD; + localBlendState.RenderTarget[0].RenderTargetWriteMask = D3D12_COLOR_WRITE_ENABLE_ALL; + } + + // Create the rasterizer state + D3D12_RASTERIZER_DESC localRasterizeState; + { + ZeroMemory(&localRasterizeState, sizeof(localRasterizeState)); + localRasterizeState.FillMode = D3D12_FILL_MODE_SOLID; + localRasterizeState.CullMode = D3D12_CULL_MODE_NONE; + //localRasterizeState.ScissorEnable = true; + localRasterizeState.DepthClipEnable = true; + } + + // Create the vertex buffer + { + UINT VBSizeInByte = VERTEX_BUFFER_SIZE * sizeof(ImDrawVert); + D3D12_RESOURCE_DESC vbResourceDesc = { + D3D12_RESOURCE_DIMENSION_BUFFER, + 0, + VBSizeInByte, 1, 1, 1, + DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, D3D12_RESOURCE_FLAG_NONE + }; + + if (FAILED(g_pd3dDevice->CreateCommittedResource( + &uploadHeapProp, + D3D12_HEAP_FLAG_NONE, + &vbResourceDesc, + D3D12_RESOURCE_STATE_GENERIC_READ, + nullptr, + IID_PPV_ARGS(&g_pVB)))) + { + assert(0); + return false; + } + + g_VBView.BufferLocation = g_pVB->GetGPUVirtualAddress(); + g_VBView.StrideInBytes = sizeof(ImDrawVert); + g_VBView.SizeInBytes = VBSizeInByte; + } + + // Create the index buffer + { + UINT IBSizeInByte = INDEX_BUFFER_SIZE * sizeof(ImDrawIdx);; + D3D12_RESOURCE_DESC ibResourceDesc = { + D3D12_RESOURCE_DIMENSION_BUFFER, + 0, + IBSizeInByte, 1, 1, 1, + DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, D3D12_RESOURCE_FLAG_NONE + }; + + if (FAILED(g_pd3dDevice->CreateCommittedResource( + &uploadHeapProp, + D3D12_HEAP_FLAG_NONE, + &ibResourceDesc, + D3D12_RESOURCE_STATE_GENERIC_READ, + nullptr, + IID_PPV_ARGS(&g_pIB)))) + { + assert(0); + return false; + } + + g_IBView.BufferLocation = g_pIB->GetGPUVirtualAddress(); + g_IBView.Format = DXGI_FORMAT_R16_UINT; + g_IBView.SizeInBytes = IBSizeInByte; + } + + D3D12_INPUT_ELEMENT_DESC localLayout[] = { + { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, + { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 8, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, + { "COLOR", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, 8 + 8, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }, + }; + + { +#if (1) + D3D12_DESCRIPTOR_RANGE range1[1]; + range1[0].RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_CBV; + range1[0].NumDescriptors = 1; + range1[0].BaseShaderRegister = 0; + range1[0].RegisterSpace = 0; + range1[0].OffsetInDescriptorsFromTableStart = 0; + + D3D12_DESCRIPTOR_RANGE range2[1]; + range2[0].RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV; + range2[0].NumDescriptors = 1; + range2[0].BaseShaderRegister = 0; + range2[0].RegisterSpace = 0; + range2[0].OffsetInDescriptorsFromTableStart = 0; + + D3D12_ROOT_PARAMETER rootParam[2]; + // Init as constants + rootParam[0].ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; + rootParam[0].Descriptor.RegisterSpace = 0; + rootParam[0].Descriptor.ShaderRegister = 0; + rootParam[0].ShaderVisibility = D3D12_SHADER_VISIBILITY_VERTEX; + + rootParam[1].ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; + rootParam[1].DescriptorTable.NumDescriptorRanges = 1; + rootParam[1].DescriptorTable.pDescriptorRanges = range2; + rootParam[1].ShaderVisibility = D3D12_SHADER_VISIBILITY_PIXEL; + + //rootParam[0].ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; + //rootParam[0].DescriptorTable.NumDescriptorRanges = 1; + //rootParam[0].DescriptorTable.pDescriptorRanges = range1; + //rootParam[0].ShaderVisibility = D3D12_SHADER_VISIBILITY_VERTEX; + + //rootParam[1].ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; + //rootParam[1].DescriptorTable.NumDescriptorRanges = 1; + //rootParam[1].DescriptorTable.pDescriptorRanges = range2; + //rootParam[1].ShaderVisibility = D3D12_SHADER_VISIBILITY_PIXEL; +#else + CD3DX12_DESCRIPTOR_RANGE descRange1[1]; + descRange1[0].Init(D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 1, 0); // b0 + CD3DX12_DESCRIPTOR_RANGE descRange2[1]; + descRange2[0].Init(D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 1, 0); // srv0 + + CD3DX12_ROOT_PARAMETER rootParam[2]; + rootParam[0].InitAsDescriptorTable(ARRAYSIZE(descRange1), descRange1, D3D12_SHADER_VISIBILITY_VERTEX); + rootParam[1].InitAsDescriptorTable(ARRAYSIZE(descRange2), descRange2, D3D12_SHADER_VISIBILITY_PIXEL); +#endif + + D3D12_STATIC_SAMPLER_DESC samplerDesc; + { + ZeroMemory(&samplerDesc, sizeof(samplerDesc)); + samplerDesc.Filter = D3D12_FILTER_MIN_MAG_MIP_LINEAR; + samplerDesc.AddressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP; + samplerDesc.AddressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP; + samplerDesc.AddressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP; + samplerDesc.MipLODBias = 0.f; + samplerDesc.ComparisonFunc = D3D12_COMPARISON_FUNC_ALWAYS; + samplerDesc.MinLOD = 0.f; + samplerDesc.MaxLOD = 0.f; + } + + ID3D10Blob *sig, *info; + D3D12_ROOT_SIGNATURE_DESC rootSigDesc = {}; + rootSigDesc.NumParameters = sizeof(rootParam)/sizeof(rootParam[0]); + rootSigDesc.pParameters = rootParam; + rootSigDesc.NumStaticSamplers = 1; + rootSigDesc.pStaticSamplers = &samplerDesc; + rootSigDesc.Flags = D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT; + + if (FAILED(D3D12SerializeRootSignature(&rootSigDesc, D3D_ROOT_SIGNATURE_VERSION_1, &sig, &info))) + { + assert(0); + return false; + } + + g_pd3dDevice->CreateRootSignature(0, sig->GetBufferPointer(), sig->GetBufferSize(), IID_PPV_ARGS(&g_pRootSignature)); + g_pRootSignature->SetName(L"ImguiRS"); + sig->Release(); + } + + D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {}; + psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; + psoDesc.InputLayout.NumElements = 3; + psoDesc.InputLayout.pInputElementDescs = localLayout; + psoDesc.IBStripCutValue = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED; + psoDesc.pRootSignature = g_pRootSignature; + psoDesc.VS.pShaderBytecode = pVertexShaderBlob->GetBufferPointer(); + psoDesc.VS.BytecodeLength = pVertexShaderBlob->GetBufferSize(); + psoDesc.PS.pShaderBytecode = pPixelShaderBlob->GetBufferPointer(); + psoDesc.PS.BytecodeLength = pPixelShaderBlob->GetBufferSize(); + psoDesc.RasterizerState = localRasterizeState; + psoDesc.BlendState = localBlendState; + psoDesc.DepthStencilState.DepthEnable = false; + psoDesc.DepthStencilState.DepthFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL; + psoDesc.DepthStencilState.DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; + psoDesc.DepthStencilState.StencilEnable = false; + psoDesc.SampleMask = UINT_MAX; + psoDesc.NumRenderTargets = 1; + psoDesc.RTVFormats[0] = DXGI_FORMAT_R8G8B8A8_UNORM; + psoDesc.DSVFormat = DXGI_FORMAT_UNKNOWN; + psoDesc.SampleDesc.Count = 1; + if (FAILED(g_pd3dDevice->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&g_pPSO)))) + { + assert(0); + return false; + } + g_pPSO->SetName(L"ImGuiPso"); + pVertexShaderBlob->Release(); + pPixelShaderBlob->Release(); + + ImGui_ImplDX12_CreateFontsTexture(); + + return true; +} + +void ImGui_ImplDX12_InvalidateDeviceObjects() +{ + if (!g_pd3dDevice) + return; + + if (g_pFontTexture) + { + g_pFontTexture->Release(); + g_pFontTexture = NULL; + D3D12_GPU_DESCRIPTOR_HANDLE* pGpuHandle = (D3D12_GPU_DESCRIPTOR_HANDLE*)ImGui::GetIO().Fonts->TexID; + delete pGpuHandle; + ImGui::GetIO().Fonts->TexID = 0; + } + + if (g_pIB) { g_pIB->Release(); g_pIB = NULL; } + if (g_pVB) { g_pVB->Release(); g_pVB = NULL; } + if (g_pVertexConstantBuffer) { g_pVertexConstantBuffer->Release(); g_pVertexConstantBuffer = NULL; } + if (g_pPSO) { g_pPSO->Release(); g_pPSO = NULL; } + if (g_pRootSignature) { g_pRootSignature->Release(); g_pRootSignature = NULL; } +} + +bool ImGui_ImplDX12_Init(void* hwnd, ID3D12Device* device, ID3D12CommandQueue* pCmdQueue, ID3D12GraphicsCommandList* pCmdList, ID3D12DescriptorHeap* descHeap, unsigned int descHeapBaseOffset) +{ + g_hWnd = (HWND)hwnd; + g_pd3dDevice = device; + g_pd3dCmdList = pCmdList; + g_pd3dCmdQueue = pCmdQueue; + + if (!descHeap) + return false; + + g_GpuFence.Init(); + + g_DescHeapCbvSrvUav.DescHeap = descHeap; + g_DescHeapCbvSrvUav.BaseOffset = descHeapBaseOffset; + g_DescHeapCbvSrvUav.IncrSize = g_pd3dDevice->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV); + + if (!QueryPerformanceFrequency((LARGE_INTEGER *)&g_TicksPerSecond)) + return false; + if (!QueryPerformanceCounter((LARGE_INTEGER *)&g_Time)) + return false; + + ImGuiIO& io = ImGui::GetIO(); + io.KeyMap[ImGuiKey_Tab] = VK_TAB; // Keyboard mapping. ImGui will use those indices to peek into the io.KeyDown[] array that we will update during the application lifetime. + io.KeyMap[ImGuiKey_LeftArrow] = VK_LEFT; + io.KeyMap[ImGuiKey_RightArrow] = VK_RIGHT; + io.KeyMap[ImGuiKey_UpArrow] = VK_UP; + io.KeyMap[ImGuiKey_DownArrow] = VK_DOWN; + io.KeyMap[ImGuiKey_PageUp] = VK_PRIOR; + io.KeyMap[ImGuiKey_PageDown] = VK_NEXT; + io.KeyMap[ImGuiKey_Home] = VK_HOME; + io.KeyMap[ImGuiKey_End] = VK_END; + io.KeyMap[ImGuiKey_Delete] = VK_DELETE; + io.KeyMap[ImGuiKey_Backspace] = VK_BACK; + io.KeyMap[ImGuiKey_Enter] = VK_RETURN; + io.KeyMap[ImGuiKey_Escape] = VK_ESCAPE; + io.KeyMap[ImGuiKey_A] = 'A'; + io.KeyMap[ImGuiKey_C] = 'C'; + io.KeyMap[ImGuiKey_V] = 'V'; + io.KeyMap[ImGuiKey_X] = 'X'; + io.KeyMap[ImGuiKey_Y] = 'Y'; + io.KeyMap[ImGuiKey_Z] = 'Z'; + + io.RenderDrawListsFn = ImGui_ImplDX12_RenderDrawLists; + io.ImeWindowHandle = g_hWnd; + + return true; +} + +void ImGui_ImplDX12_Shutdown() +{ + // Command list should be closed before this method + g_GpuFence.WaitForFence(); + g_GpuFence.Release(); + + if (g_pFontTextureUploadHeap) g_pFontTextureUploadHeap->Release(); + g_pFontTextureUploadHeap = NULL; + if (g_pFontTexture) g_pFontTexture->Release(); + g_pFontTexture = NULL; + + ImGui_ImplDX12_InvalidateDeviceObjects(); + ImGui::Shutdown(); + g_pd3dDevice = NULL; + g_pd3dCmdList = NULL; + g_hWnd = (HWND)0; +} + +void ImGui_ImplDX12_NewFrame() +{ + if (!g_pVB) + ImGui_ImplDX12_CreateDeviceObjects(); + + ImGuiIO& io = ImGui::GetIO(); + + // Setup display size (every frame to accommodate for window resizing) + RECT rect; + GetClientRect(g_hWnd, &rect); + io.DisplaySize = ImVec2((float)(rect.right - rect.left), (float)(rect.bottom - rect.top)); + + // Setup time step + INT64 current_time; + QueryPerformanceCounter((LARGE_INTEGER *)¤t_time); + io.DeltaTime = (float)(current_time - g_Time) / g_TicksPerSecond; + g_Time = current_time; + + // Read keyboard modifiers inputs + io.KeyCtrl = (GetKeyState(VK_CONTROL) & 0x8000) != 0; + io.KeyShift = (GetKeyState(VK_SHIFT) & 0x8000) != 0; + io.KeyAlt = (GetKeyState(VK_MENU) & 0x8000) != 0; + // io.KeysDown : filled by WM_KEYDOWN/WM_KEYUP events + // io.MousePos : filled by WM_MOUSEMOVE events + // io.MouseDown : filled by WM_*BUTTON* events + // io.MouseWheel : filled by WM_MOUSEWHEEL events + + // Hide OS mouse cursor if ImGui is drawing it + SetCursor(io.MouseDrawCursor ? NULL : LoadCursor(NULL, IDC_ARROW)); + + // Start the frame + ImGui::NewFrame(); +} diff --git a/samples/dual_layer/D3D12/src/imgui/imgui_impl_dx12.h b/samples/dual_layer/D3D12/src/imgui/imgui_impl_dx12.h new file mode 100644 index 0000000..0555607 --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/imgui_impl_dx12.h @@ -0,0 +1,23 @@ +// ImGui Win32 + DirectX12 binding +// https://github.com/ocornut/imgui + +struct ID3D12Device; +struct ID3D12DeviceContext; +struct ID3D12DescriptorHeap; +struct ID3D12GraphicsCommandList; +struct ID3D12CommandQueue; + +bool ImGui_ImplDX12_Init(void* hwnd, ID3D12Device* device, ID3D12CommandQueue* pCmdQueue, ID3D12GraphicsCommandList* pCmdList, ID3D12DescriptorHeap* descHeap, unsigned int descHeapBaseOffset); +void ImGui_ImplDX12_Shutdown(); +void ImGui_ImplDX12_NewFrame(); + +// Use if you want to reset your rendering device without losing ImGui state. +void ImGui_ImplDX12_InvalidateDeviceObjects(); +bool ImGui_ImplDX12_CreateDeviceObjects(); + +// Handler for Win32 messages, update mouse/keyboard data. +// You may or not need this for your implementation, but it can serve as reference for handling inputs. +// Commented out to avoid dragging dependencies on types. You can copy the extern declaration in your code. +/* +extern LRESULT ImGui_ImplDX12_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); +*/ diff --git a/samples/dual_layer/D3D12/src/imgui/imgui_internal.h b/samples/dual_layer/D3D12/src/imgui/imgui_internal.h new file mode 100644 index 0000000..dc5714f --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/imgui_internal.h @@ -0,0 +1,664 @@ +// ImGui library v1.44 +// Internals +// You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility! + +// Implement maths operators for ImVec2 (disabled by default to not collide with using IM_VEC2_CLASS_EXTRA along with your own math types+operators) +// #define IMGUI_DEFINE_MATH_OPERATORS + +#pragma once + +#include // FILE* +#include // sqrtf() + +//----------------------------------------------------------------------------- +// Forward Declarations +//----------------------------------------------------------------------------- + +struct ImRect; +struct ImGuiColMod; +struct ImGuiStyleMod; +struct ImGuiGroupData; +struct ImGuiSimpleColumns; +struct ImGuiDrawContext; +struct ImGuiTextEditState; +struct ImGuiIniData; +struct ImGuiMouseCursorData; +struct ImGuiPopupRef; +struct ImGuiState; +struct ImGuiWindow; + +typedef int ImGuiLayoutType; // enum ImGuiLayoutType_ +typedef int ImGuiButtonFlags; // enum ImGuiButtonFlags_ + +//------------------------------------------------------------------------- +// STB libraries +//------------------------------------------------------------------------- + +namespace ImGuiStb +{ + +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-function" +#pragma clang diagnostic ignored "-Wmissing-prototypes" +#endif + +#undef STB_TEXTEDIT_STRING +#undef STB_TEXTEDIT_CHARTYPE +#define STB_TEXTEDIT_STRING ImGuiTextEditState +#define STB_TEXTEDIT_CHARTYPE ImWchar +#define STB_TEXTEDIT_GETWIDTH_NEWLINE -1.0f +#include "stb_textedit.h" + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +} // namespace ImGuiStb + +//----------------------------------------------------------------------------- +// Context +//----------------------------------------------------------------------------- + +extern ImGuiState* GImGui; + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR)/sizeof(*_ARR))) +#define IM_PI 3.14159265358979323846f + +// Helpers: UTF-8 <> wchar +int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, const ImWchar* in_text_end); // return output UTF-8 bytes count +int ImTextCharFromUtf8(unsigned int* out_char, const char* in_text, const char* in_text_end); // return input UTF-8 bytes count +int ImTextStrFromUtf8(ImWchar* buf, int buf_size, const char* in_text, const char* in_text_end, const char** in_remaining = NULL); // return input UTF-8 bytes count +int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end); // return number of UTF-8 code-points (NOT bytes count) +int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* in_text_end); // return number of bytes to express string as UTF-8 code-points + +// Helpers: Misc +ImU32 ImHash(const void* data, int data_size, ImU32 seed); +bool ImLoadFileToMemory(const char* filename, const char* file_open_mode, void** out_file_data, int* out_file_size = NULL, int padding_bytes = 0); +bool ImIsPointInTriangle(const ImVec2& p, const ImVec2& a, const ImVec2& b, const ImVec2& c); +static inline bool ImCharIsSpace(int c) { return c == ' ' || c == '\t' || c == 0x3000; } +static inline int ImUpperPowerOfTwo(int v) { v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; v++; return v; } + +// Helpers: String +int ImStricmp(const char* str1, const char* str2); +int ImStrnicmp(const char* str1, const char* str2, int count); +char* ImStrdup(const char* str); +int ImStrlenW(const ImWchar* str); +const ImWchar* ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin); // Find beginning-of-line +const char* ImStristr(const char* haystack, const char* needle, const char* needle_end); +int ImFormatString(char* buf, int buf_size, const char* fmt, ...); +int ImFormatStringV(char* buf, int buf_size, const char* fmt, va_list args); + +// Helpers: Math +// We are keeping those not leaking to the user by default, in the case the user has implicit cast operators between ImVec2 and its own types (when IM_VEC2_CLASS_EXTRA is defined) +#ifdef IMGUI_DEFINE_MATH_OPERATORS +static inline ImVec2 operator*(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x*rhs, lhs.y*rhs); } +static inline ImVec2 operator/(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x/rhs, lhs.y/rhs); } +static inline ImVec2 operator+(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x+rhs.x, lhs.y+rhs.y); } +static inline ImVec2 operator-(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x-rhs.x, lhs.y-rhs.y); } +static inline ImVec2 operator*(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x*rhs.x, lhs.y*rhs.y); } +static inline ImVec2 operator/(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x/rhs.x, lhs.y/rhs.y); } +static inline ImVec2& operator+=(ImVec2& lhs, const ImVec2& rhs) { lhs.x += rhs.x; lhs.y += rhs.y; return lhs; } +static inline ImVec2& operator-=(ImVec2& lhs, const ImVec2& rhs) { lhs.x -= rhs.x; lhs.y -= rhs.y; return lhs; } +static inline ImVec2& operator*=(ImVec2& lhs, const float rhs) { lhs.x *= rhs; lhs.y *= rhs; return lhs; } +static inline ImVec2& operator/=(ImVec2& lhs, const float rhs) { lhs.x /= rhs; lhs.y /= rhs; return lhs; } +static inline ImVec4 operator-(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x-rhs.x, lhs.y-rhs.y, lhs.z-rhs.z, lhs.w-lhs.w); } +#endif + +static inline int ImMin(int lhs, int rhs) { return lhs < rhs ? lhs : rhs; } +static inline int ImMax(int lhs, int rhs) { return lhs >= rhs ? lhs : rhs; } +static inline float ImMin(float lhs, float rhs) { return lhs < rhs ? lhs : rhs; } +static inline float ImMax(float lhs, float rhs) { return lhs >= rhs ? lhs : rhs; } +static inline ImVec2 ImMin(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(ImMin(lhs.x,rhs.x), ImMin(lhs.y,rhs.y)); } +static inline ImVec2 ImMax(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(ImMax(lhs.x,rhs.x), ImMax(lhs.y,rhs.y)); } +static inline int ImClamp(int v, int mn, int mx) { return (v < mn) ? mn : (v > mx) ? mx : v; } +static inline float ImClamp(float v, float mn, float mx) { return (v < mn) ? mn : (v > mx) ? mx : v; } +static inline ImVec2 ImClamp(const ImVec2& f, const ImVec2& mn, ImVec2 mx) { return ImVec2(ImClamp(f.x,mn.x,mx.x), ImClamp(f.y,mn.y,mx.y)); } +static inline float ImSaturate(float f) { return (f < 0.0f) ? 0.0f : (f > 1.0f) ? 1.0f : f; } +static inline float ImLerp(float a, float b, float t) { return a + (b - a) * t; } +static inline ImVec2 ImLerp(const ImVec2& a, const ImVec2& b, const ImVec2& t) { return ImVec2(a.x + (b.x - a.x) * t.x, a.y + (b.y - a.y) * t.y); } +static inline float ImLengthSqr(const ImVec2& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y; } +static inline float ImLengthSqr(const ImVec4& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y + lhs.z*lhs.z + lhs.w*lhs.w; } +static inline float ImInvLength(const ImVec2& lhs, float fail_value) { float d = lhs.x*lhs.x + lhs.y*lhs.y; if (d > 0.0f) return 1.0f / sqrtf(d); return fail_value; } + +//----------------------------------------------------------------------------- +// Types +//----------------------------------------------------------------------------- + +enum ImGuiButtonFlags_ +{ + ImGuiButtonFlags_Repeat = 1 << 0, + ImGuiButtonFlags_PressedOnClick = 1 << 1, // return pressed on click only (default requires click+release) + ImGuiButtonFlags_PressedOnRelease = 1 << 2, // return pressed on release only (default requires click+release) + ImGuiButtonFlags_FlattenChilds = 1 << 3, + ImGuiButtonFlags_DontClosePopups = 1 << 4, + ImGuiButtonFlags_Disabled = 1 << 5, + ImGuiButtonFlags_AlignTextBaseLine = 1 << 6 +}; + +enum ImGuiSelectableFlagsPrivate_ +{ + // NB: need to be in sync with last value of ImGuiSelectableFlags_ + ImGuiSelectableFlags_Menu = 1 << 2, + ImGuiSelectableFlags_MenuItem = 1 << 3, + ImGuiSelectableFlags_Disabled = 1 << 4, + ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 5 +}; + +// FIXME: this is in development, not exposed/functional as a generic feature yet. +enum ImGuiLayoutType_ +{ + ImGuiLayoutType_Vertical, + ImGuiLayoutType_Horizontal +}; + +enum ImGuiPlotType +{ + ImGuiPlotType_Lines, + ImGuiPlotType_Histogram +}; + +enum ImGuiDataType +{ + ImGuiDataType_Int, + ImGuiDataType_Float +}; + +// 2D axis aligned bounding-box +// NB: we can't rely on ImVec2 math operators being available here +struct ImRect +{ + ImVec2 Min; // Upper-left + ImVec2 Max; // Lower-right + + ImRect() : Min(FLT_MAX,FLT_MAX), Max(-FLT_MAX,-FLT_MAX) {} + ImRect(const ImVec2& min, const ImVec2& max) : Min(min), Max(max) {} + ImRect(const ImVec4& v) : Min(v.x, v.y), Max(v.z, v.w) {} + ImRect(float x1, float y1, float x2, float y2) : Min(x1, y1), Max(x2, y2) {} + + ImVec2 GetCenter() const { return ImVec2((Min.x+Max.x)*0.5f, (Min.y+Max.y)*0.5f); } + ImVec2 GetSize() const { return ImVec2(Max.x-Min.x, Max.y-Min.y); } + float GetWidth() const { return Max.x-Min.x; } + float GetHeight() const { return Max.y-Min.y; } + ImVec2 GetTL() const { return Min; } + ImVec2 GetTR() const { return ImVec2(Max.x, Min.y); } + ImVec2 GetBL() const { return ImVec2(Min.x, Max.y); } + ImVec2 GetBR() const { return Max; } + bool Contains(const ImVec2& p) const { return p.x >= Min.x && p.y >= Min.y && p.x < Max.x && p.y < Max.y; } + bool Contains(const ImRect& r) const { return r.Min.x >= Min.x && r.Min.y >= Min.y && r.Max.x < Max.x && r.Max.y < Max.y; } + bool Overlaps(const ImRect& r) const { return r.Min.y < Max.y && r.Max.y > Min.y && r.Min.x < Max.x && r.Max.x > Min.x; } + void Add(const ImVec2& rhs) { if (Min.x > rhs.x) Min.x = rhs.x; if (Min.y > rhs.y) Min.y = rhs.y; if (Max.x < rhs.x) Max.x = rhs.x; if (Max.y < rhs.y) Max.y = rhs.y; } + void Add(const ImRect& rhs) { if (Min.x > rhs.Min.x) Min.x = rhs.Min.x; if (Min.y > rhs.Min.y) Min.y = rhs.Min.y; if (Max.x < rhs.Max.x) Max.x = rhs.Max.x; if (Max.y < rhs.Max.y) Max.y = rhs.Max.y; } + void Expand(const float amount) { Min.x -= amount; Min.y -= amount; Max.x += amount; Max.y += amount; } + void Expand(const ImVec2& amount) { Min.x -= amount.x; Min.y -= amount.y; Max.x += amount.x; Max.y += amount.y; } + void Reduce(const ImVec2& amount) { Min.x += amount.x; Min.y += amount.y; Max.x -= amount.x; Max.y -= amount.y; } + void Clip(const ImRect& clip) { if (Min.x < clip.Min.x) Min.x = clip.Min.x; if (Min.y < clip.Min.y) Min.y = clip.Min.y; if (Max.x > clip.Max.x) Max.x = clip.Max.x; if (Max.y > clip.Max.y) Max.y = clip.Max.y; } + void Round() { Min.x = (float)(int)Min.x; Min.y = (float)(int)Min.y; Max.x = (float)(int)Max.x; Max.y = (float)(int)Max.y; } + ImVec2 GetClosestPoint(ImVec2 p, bool on_edge) const + { + if (!on_edge && Contains(p)) + return p; + if (p.x > Max.x) p.x = Max.x; + else if (p.x < Min.x) p.x = Min.x; + if (p.y > Max.y) p.y = Max.y; + else if (p.y < Min.y) p.y = Min.y; + return p; + } +}; + +// Stacked color modifier, backup of modified data so we can restore it +struct ImGuiColMod +{ + ImGuiCol Col; + ImVec4 PreviousValue; +}; + +// Stacked style modifier, backup of modified data so we can restore it +struct ImGuiStyleMod +{ + ImGuiStyleVar Var; + ImVec2 PreviousValue; +}; + +// Stacked data for BeginGroup()/EndGroup() +struct ImGuiGroupData +{ + ImVec2 BackupCursorPos; + ImVec2 BackupCursorMaxPos; + float BackupColumnsStartX; + float BackupCurrentLineHeight; + float BackupCurrentLineTextBaseOffset; + float BackupLogLinePosY; + bool AdvanceCursor; +}; + +// Simple column measurement currently used for MenuItem() only. This is very short-sighted for now and not a generic helper. +struct ImGuiSimpleColumns +{ + int Count; + float Spacing; + float Width, NextWidth; + float Pos[8], NextWidths[8]; + + ImGuiSimpleColumns(); + void Update(int count, float spacing, bool clear); + float DeclColumns(float w0, float w1, float w2); + float CalcExtraSpace(float avail_w); +}; + +// Internal state of the currently focused/edited text input box +struct ImGuiTextEditState +{ + ImGuiID Id; // widget id owning the text state + ImVector Text; // edit buffer, we need to persist but can't guarantee the persistence of the user-provided buffer. so we copy into own buffer. + ImVector InitialText; // backup of end-user buffer at the time of focus (in UTF-8, unaltered) + ImVector TempTextBuffer; + int CurLenA, CurLenW; // we need to maintain our buffer length in both UTF-8 and wchar format. + int BufSizeA; // end-user buffer size + float ScrollX; + ImGuiStb::STB_TexteditState StbState; + float CursorAnim; + bool CursorFollow; + ImVec2 InputCursorScreenPos; // Cursor position in screen space to be used by IME callback. + bool SelectedAllMouseLock; + + ImGuiTextEditState() { memset(this, 0, sizeof(*this)); } + void CursorAnimReset() { CursorAnim = -0.30f; } // After a user-input the cursor stays on for a while without blinking + bool HasSelection() const { return StbState.select_start != StbState.select_end; } + void ClearSelection() { StbState.select_start = StbState.select_end = StbState.cursor; } + void SelectAll() { StbState.select_start = 0; StbState.select_end = CurLenW; StbState.cursor = StbState.select_end; StbState.has_preferred_x = false; } + void OnKeyPressed(int key); +}; + +// Data saved in imgui.ini file +struct ImGuiIniData +{ + char* Name; + ImGuiID ID; + ImVec2 Pos; + ImVec2 Size; + bool Collapsed; +}; + +// Mouse cursor data (used when io.MouseDrawCursor is set) +struct ImGuiMouseCursorData +{ + ImGuiMouseCursor Type; + ImVec2 HotOffset; + ImVec2 Size; + ImVec2 TexUvMin[2]; + ImVec2 TexUvMax[2]; +}; + +// Storage for current popup stack +struct ImGuiPopupRef +{ + ImGuiID PopupID; // Set on OpenPopup() + ImGuiWindow* Window; // Resolved on BeginPopup() - may stay unresolved if user never calls OpenPopup() + ImGuiWindow* ParentWindow; // Set on OpenPopup() + ImGuiID ParentMenuSet; // Set on OpenPopup() + + ImGuiPopupRef(ImGuiID id, ImGuiWindow* parent_window, ImGuiID parent_menu_set) { PopupID = id; Window = NULL; ParentWindow = parent_window; ParentMenuSet = parent_menu_set; } +}; + +// Main state for ImGui +struct ImGuiState +{ + bool Initialized; + ImGuiIO IO; + ImGuiStyle Style; + ImFont* Font; // (Shortcut) == FontStack.empty() ? IO.Font : FontStack.back() + float FontSize; // (Shortcut) == FontBaseSize * g.CurrentWindow->FontWindowScale == window->FontSize() + float FontBaseSize; // (Shortcut) == IO.FontGlobalScale * Font->Scale * Font->FontSize. Size of characters. + ImVec2 FontTexUvWhitePixel; // (Shortcut) == Font->TexUvForWhite + + float Time; + int FrameCount; + int FrameCountRendered; + ImVector Windows; + ImVector WindowsSortBuffer; + ImGuiWindow* CurrentWindow; // Being drawn into + ImVector CurrentWindowStack; + ImGuiWindow* FocusedWindow; // Will catch keyboard inputs + ImGuiWindow* HoveredWindow; // Will catch mouse inputs + ImGuiWindow* HoveredRootWindow; // Will catch mouse inputs (for focus/move only) + ImGuiID HoveredId; // Hovered widget + ImGuiID HoveredIdPreviousFrame; + ImGuiID ActiveId; // Active widget + ImGuiID ActiveIdPreviousFrame; + bool ActiveIdIsAlive; + bool ActiveIdIsJustActivated; // Set at the time of activation for one frame + bool ActiveIdIsFocusedOnly; // Set only by active widget. Denote focus but no active interaction + ImGuiWindow* ActiveIdWindow; + ImGuiWindow* MovedWindow; // Track the child window we clicked on to move a window. Pointer is only valid if ActiveID is the "#MOVE" identifier of a window. + ImVector Settings; // .ini Settings + float SettingsDirtyTimer; // Save .ini settinngs on disk when time reaches zero + int DisableHideTextAfterDoubleHash; + ImVector ColorModifiers; // Stack for PushStyleColor()/PopStyleColor() + ImVector StyleModifiers; // Stack for PushStyleVar()/PopStyleVar() + ImVector FontStack; // Stack for PushFont()/PopFont() + ImVector OpenedPopupStack; // Which popups are open (persistent) + ImVector CurrentPopupStack; // Which level of BeginPopup() we are in (reset every frame) + + // Storage for SetNexWindow** and SetNextTreeNode*** functions + ImVec2 SetNextWindowPosVal; + ImVec2 SetNextWindowSizeVal; + bool SetNextWindowCollapsedVal; + ImGuiSetCond SetNextWindowPosCond; + ImGuiSetCond SetNextWindowSizeCond; + ImGuiSetCond SetNextWindowCollapsedCond; + bool SetNextWindowFocus; + bool SetNextTreeNodeOpenedVal; + ImGuiSetCond SetNextTreeNodeOpenedCond; + + // Render + ImVector RenderDrawLists[3]; + float ModalWindowDarkeningRatio; + ImDrawList OverlayDrawList; // Optional software render of mouse cursors, if io.MouseDrawCursor is set + a few debug overlays + ImGuiMouseCursor MouseCursor; + ImGuiMouseCursorData MouseCursorData[ImGuiMouseCursor_Count_]; + + // Widget state + ImGuiTextEditState InputTextState; + ImGuiID ScalarAsInputTextId; // Temporary text input when CTRL+clicking on a slider, etc. + ImGuiStorage ColorEditModeStorage; // Store user selection of color edit mode + ImVec2 ActiveClickDeltaToCenter; + float DragCurrentValue; // Currently dragged value, always float, not rounded by end-user precision settings + ImVec2 DragLastMouseDelta; + float DragSpeedDefaultRatio; // If speed == 0.0f, uses (max-min) * DragSpeedDefaultRatio + float DragSpeedScaleSlow; + float DragSpeedScaleFast; + float ScrollbarClickDeltaToGrabCenter; // Distance between mouse and center of grab box, normalized in parent space + char Tooltip[1024]; + char* PrivateClipboard; // If no custom clipboard handler is defined + + // Logging + bool LogEnabled; + FILE* LogFile; // If != NULL log to stdout/ file + ImGuiTextBuffer* LogClipboard; // Else log to clipboard. This is pointer so our GImGui static constructor doesn't call heap allocators. + int LogStartDepth; + int LogAutoExpandMaxDepth; + + // Misc + float FramerateSecPerFrame[120]; // calculate estimate of framerate for user + int FramerateSecPerFrameIdx; + float FramerateSecPerFrameAccum; + bool CaptureMouseNextFrame; // explicit capture via CaptureInputs() sets those flags + bool CaptureKeyboardNextFrame; + char TempBuffer[1024*3+1]; // temporary text buffer + + ImGuiState() + { + Initialized = false; + Font = NULL; + FontSize = FontBaseSize = 0.0f; + FontTexUvWhitePixel = ImVec2(0.0f, 0.0f); + + Time = 0.0f; + FrameCount = 0; + FrameCountRendered = -1; + CurrentWindow = NULL; + FocusedWindow = NULL; + HoveredWindow = NULL; + HoveredRootWindow = NULL; + HoveredId = 0; + HoveredIdPreviousFrame = 0; + ActiveId = 0; + ActiveIdPreviousFrame = 0; + ActiveIdIsAlive = false; + ActiveIdIsJustActivated = false; + ActiveIdIsFocusedOnly = false; + ActiveIdWindow = NULL; + MovedWindow = NULL; + SettingsDirtyTimer = 0.0f; + DisableHideTextAfterDoubleHash = 0; + + SetNextWindowPosVal = ImVec2(0.0f, 0.0f); + SetNextWindowSizeVal = ImVec2(0.0f, 0.0f); + SetNextWindowCollapsedVal = false; + SetNextWindowPosCond = 0; + SetNextWindowSizeCond = 0; + SetNextWindowCollapsedCond = 0; + SetNextWindowFocus = false; + SetNextTreeNodeOpenedVal = false; + SetNextTreeNodeOpenedCond = 0; + + ScalarAsInputTextId = 0; + ActiveClickDeltaToCenter = ImVec2(0.0f, 0.0f); + DragCurrentValue = 0.0f; + DragLastMouseDelta = ImVec2(0.0f, 0.0f); + DragSpeedDefaultRatio = 0.01f; + DragSpeedScaleSlow = 0.01f; + DragSpeedScaleFast = 10.0f; + ScrollbarClickDeltaToGrabCenter = 0.0f; + memset(Tooltip, 0, sizeof(Tooltip)); + PrivateClipboard = NULL; + + ModalWindowDarkeningRatio = 0.0f; + OverlayDrawList._OwnerName = "##Overlay"; // Give it a name for debugging + MouseCursor = ImGuiMouseCursor_Arrow; + + LogEnabled = false; + LogFile = NULL; + LogClipboard = NULL; + LogStartDepth = 0; + LogAutoExpandMaxDepth = 2; + + memset(FramerateSecPerFrame, 0, sizeof(FramerateSecPerFrame)); + FramerateSecPerFrameIdx = 0; + FramerateSecPerFrameAccum = 0.0f; + CaptureMouseNextFrame = CaptureKeyboardNextFrame = false; + } +}; + +// Transient per-window data, reset at the beginning of the frame +// FIXME: That's theory, in practice the delimitation between ImGuiWindow and ImGuiDrawContext is quite tenuous and could be reconsidered. +struct ImGuiDrawContext +{ + ImVec2 CursorPos; + ImVec2 CursorPosPrevLine; + ImVec2 CursorStartPos; + ImVec2 CursorMaxPos; // Implicitly calculate the size of our contents, always extending. Saved into window->SizeContents at the end of the frame + float CurrentLineHeight; + float CurrentLineTextBaseOffset; + float PrevLineHeight; + float PrevLineTextBaseOffset; + float LogLinePosY; + int TreeDepth; + ImGuiID LastItemID; + ImRect LastItemRect; + bool LastItemHoveredAndUsable; + bool LastItemHoveredRect; + bool MenuBarAppending; + float MenuBarOffsetX; + ImVector ChildWindows; + ImGuiStorage* StateStorage; + ImGuiLayoutType LayoutType; + + // We store the current settings outside of the vectors to increase memory locality (reduce cache misses). The vectors are rarely modified. Also it allows us to not heap allocate for short-lived windows which are not using those settings. + bool ButtonRepeat; // == ButtonRepeatStack.back() [empty == false] + bool AllowKeyboardFocus; // == AllowKeyboardFocusStack.back() [empty == true] + float ItemWidth; // == ItemWidthStack.back(). 0.0: default, >0.0: width in pixels, <0.0: align xx pixels to the right of window + float TextWrapPos; // == TextWrapPosStack.back() [empty == -1.0f] + ImVector ButtonRepeatStack; + ImVector AllowKeyboardFocusStack; + ImVector ItemWidthStack; + ImVector TextWrapPosStack; + ImVectorGroupStack; + ImGuiColorEditMode ColorEditMode; + int StackSizesBackup[6]; // Store size of various stacks for asserting + + float ColumnsStartX; // Indentation / start position from left of window (increased by TreePush/TreePop, etc.) + float ColumnsOffsetX; // Offset to the current column (if ColumnsCurrent > 0). FIXME: This and the above should be a stack to allow use cases like Tree->Column->Tree. Need revamp columns API. + int ColumnsCurrent; + int ColumnsCount; + ImVec2 ColumnsStartPos; + float ColumnsCellMinY; + float ColumnsCellMaxY; + bool ColumnsShowBorders; + ImGuiID ColumnsSetID; + ImVector ColumnsOffsetsT; // Columns offset normalized 0.0 (far left) -> 1.0 (far right) + + ImGuiDrawContext() + { + CursorPos = CursorPosPrevLine = CursorStartPos = CursorMaxPos = ImVec2(0.0f, 0.0f); + CurrentLineHeight = PrevLineHeight = 0.0f; + CurrentLineTextBaseOffset = PrevLineTextBaseOffset = 0.0f; + LogLinePosY = -1.0f; + TreeDepth = 0; + LastItemID = 0; + LastItemRect = ImRect(0.0f,0.0f,0.0f,0.0f); + LastItemHoveredAndUsable = LastItemHoveredRect = false; + MenuBarAppending = false; + MenuBarOffsetX = 0.0f; + StateStorage = NULL; + LayoutType = ImGuiLayoutType_Vertical; + ItemWidth = 0.0f; + ButtonRepeat = false; + AllowKeyboardFocus = true; + TextWrapPos = -1.0f; + ColorEditMode = ImGuiColorEditMode_RGB; + memset(StackSizesBackup, 0, sizeof(StackSizesBackup)); + + ColumnsStartX = 0.0f; + ColumnsOffsetX = 0.0f; + ColumnsCurrent = 0; + ColumnsCount = 1; + ColumnsStartPos = ImVec2(0.0f, 0.0f); + ColumnsCellMinY = ColumnsCellMaxY = 0.0f; + ColumnsShowBorders = true; + ColumnsSetID = 0; + } +}; + +// Windows data +struct ImGuiWindow +{ + char* Name; + ImGuiID ID; + ImGuiWindowFlags Flags; + ImVec2 PosFloat; + ImVec2 Pos; // Position rounded-up to nearest pixel + ImVec2 Size; // Current size (==SizeFull or collapsed title bar size) + ImVec2 SizeFull; // Size when non collapsed + ImVec2 SizeContents; // Size of contents (== extents reach of the drawing cursor) from previous frame + ImVec2 WindowPadding; // Window padding at the time of begin. We need to lock it, in particular manipulation of the ShowBorder would have an effect + ImGuiID MoveID; // == window->GetID("#MOVE") + float ScrollY; + float ScrollTargetRelY; // target scroll position. stored as cursor position with scrolling canceled out, so the highest point is always 0.0f. (FLT_MAX for no change) + float ScrollTargetCenterRatioY; // 0.0f = scroll so that target position is at top, 0.5f = scroll so that target position is centered + bool ScrollbarY; + bool Active; // Set to true on Begin() + bool WasActive; + bool Accessed; // Set to true when any widget access the current window + bool Collapsed; // Set when collapsing window to become only title-bar + bool SkipItems; // == Visible && !Collapsed + int BeginCount; // Number of Begin() during the current frame (generally 0 or 1, 1+ if appending via multiple Begin/End pairs) + ImGuiID PopupID; // ID in the popup stack when this window is used as a popup/menu (because we use generic Name/ID for recycling) + int AutoFitFramesX, AutoFitFramesY; + bool AutoFitOnlyGrows; + int AutoPosLastDirection; + int HiddenFrames; + int SetWindowPosAllowFlags; // bit ImGuiSetCond_*** specify if SetWindowPos() call will succeed with this particular flag. + int SetWindowSizeAllowFlags; // bit ImGuiSetCond_*** specify if SetWindowSize() call will succeed with this particular flag. + int SetWindowCollapsedAllowFlags; // bit ImGuiSetCond_*** specify if SetWindowCollapsed() call will succeed with this particular flag. + bool SetWindowPosCenterWanted; + + ImGuiDrawContext DC; // Temporary per-window data, reset at the beginning of the frame + ImVector IDStack; // ID stack. ID are hashes seeded with the value at the top of the stack + ImRect ClipRect; // = DrawList->clip_rect_stack.back(). Scissoring / clipping rectangle. x1, y1, x2, y2. + ImRect ClippedWindowRect; // = ClipRect just after setup in Begin() + int LastFrameDrawn; + float ItemWidthDefault; + ImGuiSimpleColumns MenuColumns; // Simplified columns storage for menu items + ImGuiStorage StateStorage; + float FontWindowScale; // Scale multiplier per-window + ImDrawList* DrawList; + ImGuiWindow* RootWindow; + ImGuiWindow* RootNonPopupWindow; + + // Focus + int FocusIdxAllCounter; // Start at -1 and increase as assigned via FocusItemRegister() + int FocusIdxTabCounter; // (same, but only count widgets which you can Tab through) + int FocusIdxAllRequestCurrent; // Item being requested for focus + int FocusIdxTabRequestCurrent; // Tab-able item being requested for focus + int FocusIdxAllRequestNext; // Item being requested for focus, for next update (relies on layout to be stable between the frame pressing TAB and the next frame) + int FocusIdxTabRequestNext; // " + +public: + ImGuiWindow(const char* name); + ~ImGuiWindow(); + + ImGuiID GetID(const char* str, const char* str_end = NULL); + ImGuiID GetID(const void* ptr); + + ImRect Rect() const { return ImRect(Pos.x, Pos.y, Pos.x+Size.x, Pos.y+Size.y); } + float CalcFontSize() const { return GImGui->FontBaseSize * FontWindowScale; } + float TitleBarHeight() const { return (Flags & ImGuiWindowFlags_NoTitleBar) ? 0.0f : CalcFontSize() + GImGui->Style.FramePadding.y * 2.0f; } + ImRect TitleBarRect() const { return ImRect(Pos, ImVec2(Pos.x + SizeFull.x, Pos.y + TitleBarHeight())); } + float MenuBarHeight() const { return (Flags & ImGuiWindowFlags_MenuBar) ? CalcFontSize() + GImGui->Style.FramePadding.y * 2.0f : 0.0f; } + ImRect MenuBarRect() const { float y1 = Pos.y + TitleBarHeight(); return ImRect(Pos.x, y1, Pos.x + SizeFull.x, y1 + MenuBarHeight()); } + float ScrollbarWidth() const { return ScrollbarY ? GImGui->Style.ScrollbarWidth : 0.0f; } + ImU32 Color(ImGuiCol idx, float a=1.f) const { ImVec4 c = GImGui->Style.Colors[idx]; c.w *= GImGui->Style.Alpha * a; return ImGui::ColorConvertFloat4ToU32(c); } + ImU32 Color(const ImVec4& col) const { ImVec4 c = col; c.w *= GImGui->Style.Alpha; return ImGui::ColorConvertFloat4ToU32(c); } +}; + +//----------------------------------------------------------------------------- +// Internal API +// No guarantee of forward compatibility here. +//----------------------------------------------------------------------------- + +namespace ImGui +{ + IMGUI_API ImGuiWindow* GetCurrentWindow(); + IMGUI_API ImGuiWindow* GetParentWindow(); + IMGUI_API void FocusWindow(ImGuiWindow* window); + + IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow* window); + IMGUI_API void KeepAliveID(ImGuiID id); + + IMGUI_API void ItemSize(const ImVec2& size, float text_offset_y = 0.0f); + IMGUI_API void ItemSize(const ImRect& bb, float text_offset_y = 0.0f); + IMGUI_API bool ItemAdd(const ImRect& bb, const ImGuiID* id); + IMGUI_API bool IsClippedEx(const ImRect& bb, const ImGuiID* id, bool clip_even_when_logged); + IMGUI_API bool IsHovered(const ImRect& bb, ImGuiID id, bool flatten_childs = false); + IMGUI_API bool FocusableItemRegister(ImGuiWindow* window, bool is_active, bool tab_stop = true); // Return true if focus is requested + IMGUI_API void FocusableItemUnregister(ImGuiWindow* window); + IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_x, float default_y); + IMGUI_API float CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x); + + IMGUI_API void RenderText(ImVec2 pos, const char* text, const char* text_end = NULL, bool hide_text_after_hash = true); + IMGUI_API void RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width); + IMGUI_API void RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, ImGuiAlign align = ImGuiAlign_Default, const ImVec2* clip_min = NULL, const ImVec2* clip_max = NULL); + IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border = true, float rounding = 0.0f); + IMGUI_API void RenderCollapseTriangle(ImVec2 p_min, bool opened, float scale = 1.0f, bool shadow = false); + IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col); + + IMGUI_API bool ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, bool allow_key_modifiers, ImGuiButtonFlags flags = 0); + IMGUI_API bool ButtonEx(const char* label, const ImVec2& size_arg = ImVec2(0,0), ImGuiButtonFlags flags = 0); + + IMGUI_API bool SliderBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_min, float v_max, float power, int decimal_precision, bool horizontal); + IMGUI_API bool SliderFloatN(const char* label, float* v, int components, float v_min, float v_max, const char* display_format, float power); + IMGUI_API bool SliderIntN(const char* label, int* v, int components, int v_min, int v_max, const char* display_format); + + IMGUI_API bool DragBehavior(const ImRect& frame_bb, ImGuiID id, float* v, float v_speed, float v_min, float v_max, int decimal_precision, float power); + IMGUI_API bool DragFloatN(const char* label, float* v, int components, float v_speed, float v_min, float v_max, const char* display_format, float power); + IMGUI_API bool DragIntN(const char* label, int* v, int components, float v_speed, int v_min, int v_max, const char* display_format); + + IMGUI_API bool InputTextEx(const char* label, char* buf, int buf_size, const ImVec2& size_arg, ImGuiInputTextFlags flags, ImGuiTextEditCallback callback = NULL, void* user_data = NULL); + IMGUI_API bool InputFloatN(const char* label, float* v, int components, int decimal_precision, ImGuiInputTextFlags extra_flags); + IMGUI_API bool InputIntN(const char* label, int* v, int components, ImGuiInputTextFlags extra_flags); + IMGUI_API bool InputScalarEx(const char* label, ImGuiDataType data_type, void* data_ptr, void* step_ptr, void* step_fast_ptr, const char* scalar_format, ImGuiInputTextFlags extra_flags); + IMGUI_API bool InputScalarAsWidgetReplacement(const ImRect& aabb, const char* label, ImGuiDataType data_type, void* data_ptr, ImGuiID id, int decimal_precision); + + IMGUI_API void PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size); + + IMGUI_API int ParseFormatPrecision(const char* fmt, int default_value); + IMGUI_API float RoundScalar(float value, int decimal_precision); + +} // namespace ImGuiP + diff --git a/samples/dual_layer/D3D12/src/imgui/stb_rect_pack.h b/samples/dual_layer/D3D12/src/imgui/stb_rect_pack.h new file mode 100644 index 0000000..eb0ef2f --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/stb_rect_pack.h @@ -0,0 +1,547 @@ +// stb_rect_pack.h - v0.05 - public domain - rectangle packing +// Sean Barrett 2014 +// +// Useful for e.g. packing rectangular textures into an atlas. +// Does not do rotation. +// +// Not necessarily the awesomest packing method, but better than +// the totally naive one in stb_truetype (which is primarily what +// this is meant to replace). +// +// Has only had a few tests run, may have issues. +// +// More docs to come. +// +// No memory allocations; uses qsort() and assert() from stdlib. +// +// This library currently uses the Skyline Bottom-Left algorithm. +// +// Please note: better rectangle packers are welcome! Please +// implement them to the same API, but with a different init +// function. +// +// Version history: +// +// 0.05: added STBRP_ASSERT to allow replacing assert +// 0.04: fixed minor bug in STBRP_LARGE_RECTS support +// 0.01: initial release + +////////////////////////////////////////////////////////////////////////////// +// +// INCLUDE SECTION +// + +#ifndef STB_INCLUDE_STB_RECT_PACK_H +#define STB_INCLUDE_STB_RECT_PACK_H + +#define STB_RECT_PACK_VERSION 1 + +#ifdef STBRP_STATIC +#define STBRP_DEF static +#else +#define STBRP_DEF extern +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct stbrp_context stbrp_context; +typedef struct stbrp_node stbrp_node; +typedef struct stbrp_rect stbrp_rect; + +#ifdef STBRP_LARGE_RECTS +typedef int stbrp_coord; +#else +typedef unsigned short stbrp_coord; +#endif + +STBRP_DEF void stbrp_pack_rects (stbrp_context *context, stbrp_rect *rects, int num_rects); +// Assign packed locations to rectangles. The rectangles are of type +// 'stbrp_rect' defined below, stored in the array 'rects', and there +// are 'num_rects' many of them. +// +// Rectangles which are successfully packed have the 'was_packed' flag +// set to a non-zero value and 'x' and 'y' store the minimum location +// on each axis (i.e. bottom-left in cartesian coordinates, top-left +// if you imagine y increasing downwards). Rectangles which do not fit +// have the 'was_packed' flag set to 0. +// +// You should not try to access the 'rects' array from another thread +// while this function is running, as the function temporarily reorders +// the array while it executes. +// +// To pack into another rectangle, you need to call stbrp_init_target +// again. To continue packing into the same rectangle, you can call +// this function again. Calling this multiple times with multiple rect +// arrays will probably produce worse packing results than calling it +// a single time with the full rectangle array, but the option is +// available. + +struct stbrp_rect +{ + // reserved for your use: + int id; + + // input: + stbrp_coord w, h; + + // output: + stbrp_coord x, y; + int was_packed; // non-zero if valid packing + +}; // 16 bytes, nominally + + +STBRP_DEF void stbrp_init_target (stbrp_context *context, int width, int height, stbrp_node *nodes, int num_nodes); +// Initialize a rectangle packer to: +// pack a rectangle that is 'width' by 'height' in dimensions +// using temporary storage provided by the array 'nodes', which is 'num_nodes' long +// +// You must call this function every time you start packing into a new target. +// +// There is no "shutdown" function. The 'nodes' memory must stay valid for +// the following stbrp_pack_rects() call (or calls), but can be freed after +// the call (or calls) finish. +// +// Note: to guarantee best results, either: +// 1. make sure 'num_nodes' >= 'width' +// or 2. call stbrp_allow_out_of_mem() defined below with 'allow_out_of_mem = 1' +// +// If you don't do either of the above things, widths will be quantized to multiples +// of small integers to guarantee the algorithm doesn't run out of temporary storage. +// +// If you do #2, then the non-quantized algorithm will be used, but the algorithm +// may run out of temporary storage and be unable to pack some rectangles. + +STBRP_DEF void stbrp_setup_allow_out_of_mem (stbrp_context *context, int allow_out_of_mem); +// Optionally call this function after init but before doing any packing to +// change the handling of the out-of-temp-memory scenario, described above. +// If you call init again, this will be reset to the default (false). + + +STBRP_DEF void stbrp_setup_heuristic (stbrp_context *context, int heuristic); +// Optionally select which packing heuristic the library should use. Different +// heuristics will produce better/worse results for different data sets. +// If you call init again, this will be reset to the default. + +enum +{ + STBRP_HEURISTIC_Skyline_default=0, + STBRP_HEURISTIC_Skyline_BL_sortHeight = STBRP_HEURISTIC_Skyline_default, + STBRP_HEURISTIC_Skyline_BF_sortHeight +}; + + +////////////////////////////////////////////////////////////////////////////// +// +// the details of the following structures don't matter to you, but they must +// be visible so you can handle the memory allocations for them + +struct stbrp_node +{ + stbrp_coord x,y; + stbrp_node *next; +}; + +struct stbrp_context +{ + int width; + int height; + int align; + int init_mode; + int heuristic; + int num_nodes; + stbrp_node *active_head; + stbrp_node *free_head; + stbrp_node extra[2]; // we allocate two extra nodes so optimal user-node-count is 'width' not 'width+2' +}; + +#ifdef __cplusplus +} +#endif + +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// IMPLEMENTATION SECTION +// + +#ifdef STB_RECT_PACK_IMPLEMENTATION +#include + +#ifndef STBRP_ASSERT +#include +#define STBRP_ASSERT assert +#endif + +enum +{ + STBRP__INIT_skyline = 1 +}; + +STBRP_DEF void stbrp_setup_heuristic(stbrp_context *context, int heuristic) +{ + switch (context->init_mode) { + case STBRP__INIT_skyline: + STBRP_ASSERT(heuristic == STBRP_HEURISTIC_Skyline_BL_sortHeight || heuristic == STBRP_HEURISTIC_Skyline_BF_sortHeight); + context->heuristic = heuristic; + break; + default: + STBRP_ASSERT(0); + } +} + +STBRP_DEF void stbrp_setup_allow_out_of_mem(stbrp_context *context, int allow_out_of_mem) +{ + if (allow_out_of_mem) + // if it's ok to run out of memory, then don't bother aligning them; + // this gives better packing, but may fail due to OOM (even though + // the rectangles easily fit). @TODO a smarter approach would be to only + // quantize once we've hit OOM, then we could get rid of this parameter. + context->align = 1; + else { + // if it's not ok to run out of memory, then quantize the widths + // so that num_nodes is always enough nodes. + // + // I.e. num_nodes * align >= width + // align >= width / num_nodes + // align = ceil(width/num_nodes) + + context->align = (context->width + context->num_nodes-1) / context->num_nodes; + } +} + +STBRP_DEF void stbrp_init_target(stbrp_context *context, int width, int height, stbrp_node *nodes, int num_nodes) +{ + int i; +#ifndef STBRP_LARGE_RECTS + STBRP_ASSERT(width <= 0xffff && height <= 0xffff); +#endif + + for (i=0; i < num_nodes-1; ++i) + nodes[i].next = &nodes[i+1]; + nodes[i].next = NULL; + context->init_mode = STBRP__INIT_skyline; + context->heuristic = STBRP_HEURISTIC_Skyline_default; + context->free_head = &nodes[0]; + context->active_head = &context->extra[0]; + context->width = width; + context->height = height; + context->num_nodes = num_nodes; + stbrp_setup_allow_out_of_mem(context, 0); + + // node 0 is the full width, node 1 is the sentinel (lets us not store width explicitly) + context->extra[0].x = 0; + context->extra[0].y = 0; + context->extra[0].next = &context->extra[1]; + context->extra[1].x = (stbrp_coord) width; +#ifdef STBRP_LARGE_RECTS + context->extra[1].y = (1<<30); +#else + context->extra[1].y = 65535; +#endif + context->extra[1].next = NULL; +} + +// find minimum y position if it starts at x1 +static int stbrp__skyline_find_min_y(stbrp_context *c, stbrp_node *first, int x0, int width, int *pwaste) +{ + (void)c; + stbrp_node *node = first; + int x1 = x0 + width; + int min_y, visited_width, waste_area; + STBRP_ASSERT(first->x <= x0); + + #if 0 + // skip in case we're past the node + while (node->next->x <= x0) + ++node; + #else + STBRP_ASSERT(node->next->x > x0); // we ended up handling this in the caller for efficiency + #endif + + STBRP_ASSERT(node->x <= x0); + + min_y = 0; + waste_area = 0; + visited_width = 0; + while (node->x < x1) { + if (node->y > min_y) { + // raise min_y higher. + // we've accounted for all waste up to min_y, + // but we'll now add more waste for everything we've visted + waste_area += visited_width * (node->y - min_y); + min_y = node->y; + // the first time through, visited_width might be reduced + if (node->x < x0) + visited_width += node->next->x - x0; + else + visited_width += node->next->x - node->x; + } else { + // add waste area + int under_width = node->next->x - node->x; + if (under_width + visited_width > width) + under_width = width - visited_width; + waste_area += under_width * (min_y - node->y); + visited_width += under_width; + } + node = node->next; + } + + *pwaste = waste_area; + return min_y; +} + +typedef struct +{ + int x,y; + stbrp_node **prev_link; +} stbrp__findresult; + +static stbrp__findresult stbrp__skyline_find_best_pos(stbrp_context *c, int width, int height) +{ + int best_waste = (1<<30), best_x, best_y = (1 << 30); + stbrp__findresult fr; + stbrp_node **prev, *node, *tail, **best = NULL; + + // align to multiple of c->align + width = (width + c->align - 1); + width -= width % c->align; + STBRP_ASSERT(width % c->align == 0); + + node = c->active_head; + prev = &c->active_head; + while (node->x + width <= c->width) { + int y,waste; + y = stbrp__skyline_find_min_y(c, node, node->x, width, &waste); + if (c->heuristic == STBRP_HEURISTIC_Skyline_BL_sortHeight) { // actually just want to test BL + // bottom left + if (y < best_y) { + best_y = y; + best = prev; + } + } else { + // best-fit + if (y + height <= c->height) { + // can only use it if it first vertically + if (y < best_y || (y == best_y && waste < best_waste)) { + best_y = y; + best_waste = waste; + best = prev; + } + } + } + prev = &node->next; + node = node->next; + } + + best_x = (best == NULL) ? 0 : (*best)->x; + + // if doing best-fit (BF), we also have to try aligning right edge to each node position + // + // e.g, if fitting + // + // ____________________ + // |____________________| + // + // into + // + // | | + // | ____________| + // |____________| + // + // then right-aligned reduces waste, but bottom-left BL is always chooses left-aligned + // + // This makes BF take about 2x the time + + if (c->heuristic == STBRP_HEURISTIC_Skyline_BF_sortHeight) { + tail = c->active_head; + node = c->active_head; + prev = &c->active_head; + // find first node that's admissible + while (tail->x < width) + tail = tail->next; + while (tail) { + int xpos = tail->x - width; + int y,waste; + STBRP_ASSERT(xpos >= 0); + // find the left position that matches this + while (node->next->x <= xpos) { + prev = &node->next; + node = node->next; + } + STBRP_ASSERT(node->next->x > xpos && node->x <= xpos); + y = stbrp__skyline_find_min_y(c, node, xpos, width, &waste); + if (y + height < c->height) { + if (y <= best_y) { + if (y < best_y || waste < best_waste || (waste==best_waste && xpos < best_x)) { + best_x = xpos; + STBRP_ASSERT(y <= best_y); + best_y = y; + best_waste = waste; + best = prev; + } + } + } + tail = tail->next; + } + } + + fr.prev_link = best; + fr.x = best_x; + fr.y = best_y; + return fr; +} + +static stbrp__findresult stbrp__skyline_pack_rectangle(stbrp_context *context, int width, int height) +{ + // find best position according to heuristic + stbrp__findresult res = stbrp__skyline_find_best_pos(context, width, height); + stbrp_node *node, *cur; + + // bail if: + // 1. it failed + // 2. the best node doesn't fit (we don't always check this) + // 3. we're out of memory + if (res.prev_link == NULL || res.y + height > context->height || context->free_head == NULL) { + res.prev_link = NULL; + return res; + } + + // on success, create new node + node = context->free_head; + node->x = (stbrp_coord) res.x; + node->y = (stbrp_coord) (res.y + height); + + context->free_head = node->next; + + // insert the new node into the right starting point, and + // let 'cur' point to the remaining nodes needing to be + // stiched back in + + cur = *res.prev_link; + if (cur->x < res.x) { + // preserve the existing one, so start testing with the next one + stbrp_node *next = cur->next; + cur->next = node; + cur = next; + } else { + *res.prev_link = node; + } + + // from here, traverse cur and free the nodes, until we get to one + // that shouldn't be freed + while (cur->next && cur->next->x <= res.x + width) { + stbrp_node *next = cur->next; + // move the current node to the free list + cur->next = context->free_head; + context->free_head = cur; + cur = next; + } + + // stitch the list back in + node->next = cur; + + if (cur->x < res.x + width) + cur->x = (stbrp_coord) (res.x + width); + +#ifdef _DEBUG + cur = context->active_head; + while (cur->x < context->width) { + STBRP_ASSERT(cur->x < cur->next->x); + cur = cur->next; + } + STBRP_ASSERT(cur->next == NULL); + + { + stbrp_node *L1 = NULL, *L2 = NULL; + int count=0; + cur = context->active_head; + while (cur) { + L1 = cur; + cur = cur->next; + ++count; + } + cur = context->free_head; + while (cur) { + L2 = cur; + cur = cur->next; + ++count; + } + STBRP_ASSERT(count == context->num_nodes+2); + } +#endif + + return res; +} + +static int rect_height_compare(const void *a, const void *b) +{ + stbrp_rect *p = (stbrp_rect *) a; + stbrp_rect *q = (stbrp_rect *) b; + if (p->h > q->h) + return -1; + if (p->h < q->h) + return 1; + return (p->w > q->w) ? -1 : (p->w < q->w); +} + +static int rect_width_compare(const void *a, const void *b) +{ + stbrp_rect *p = (stbrp_rect *) a; + stbrp_rect *q = (stbrp_rect *) b; + if (p->w > q->w) + return -1; + if (p->w < q->w) + return 1; + return (p->h > q->h) ? -1 : (p->h < q->h); +} + +static int rect_original_order(const void *a, const void *b) +{ + stbrp_rect *p = (stbrp_rect *) a; + stbrp_rect *q = (stbrp_rect *) b; + return (p->was_packed < q->was_packed) ? -1 : (p->was_packed > q->was_packed); +} + +#ifdef STBRP_LARGE_RECTS +#define STBRP__MAXVAL 0xffffffff +#else +#define STBRP__MAXVAL 0xffff +#endif + +STBRP_DEF void stbrp_pack_rects(stbrp_context *context, stbrp_rect *rects, int num_rects) +{ + int i; + + // we use the 'was_packed' field internally to allow sorting/unsorting + for (i=0; i < num_rects; ++i) { + rects[i].was_packed = i; + #ifndef STBRP_LARGE_RECTS + STBRP_ASSERT(rects[i].w <= 0xffff && rects[i].h <= 0xffff); + #endif + } + + // sort according to heuristic + qsort(rects, num_rects, sizeof(rects[0]), rect_height_compare); + + for (i=0; i < num_rects; ++i) { + stbrp__findresult fr = stbrp__skyline_pack_rectangle(context, rects[i].w, rects[i].h); + if (fr.prev_link) { + rects[i].x = (stbrp_coord) fr.x; + rects[i].y = (stbrp_coord) fr.y; + } else { + rects[i].x = rects[i].y = STBRP__MAXVAL; + } + } + + // unsort + qsort(rects, num_rects, sizeof(rects[0]), rect_original_order); + + // set was_packed flags + for (i=0; i < num_rects; ++i) + rects[i].was_packed = !(rects[i].x == STBRP__MAXVAL && rects[i].y == STBRP__MAXVAL); +} +#endif diff --git a/samples/dual_layer/D3D12/src/imgui/stb_textedit.h b/samples/dual_layer/D3D12/src/imgui/stb_textedit.h new file mode 100644 index 0000000..3972c0f --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/stb_textedit.h @@ -0,0 +1,1261 @@ +// [ImGui] this is a slightly modified version of stb_truetype.h 1.4 +// [ImGui] we made a fix for using the END key on multi-line text edit, see https://github.com/ocornut/imgui/issues/275 + +// stb_textedit.h - v1.4 - public domain - Sean Barrett +// Development of this library was sponsored by RAD Game Tools +// +// This C header file implements the guts of a multi-line text-editing +// widget; you implement display, word-wrapping, and low-level string +// insertion/deletion, and stb_textedit will map user inputs into +// insertions & deletions, plus updates to the cursor position, +// selection state, and undo state. +// +// It is intended for use in games and other systems that need to build +// their own custom widgets and which do not have heavy text-editing +// requirements (this library is not recommended for use for editing large +// texts, as its performance does not scale and it has limited undo). +// +// Non-trivial behaviors are modelled after Windows text controls. +// +// +// LICENSE +// +// This software has been placed in the public domain by its author. +// Where that dedication is not recognized, you are granted a perpetual, +// irrevocable license to copy and modify this file as you see fit. +// +// +// DEPENDENCIES +// +// Uses the C runtime function 'memmove'. Uses no other functions. +// Performs no runtime allocations. +// +// +// VERSION HISTORY +// +// 1.4 (2014-08-17) fix signed/unsigned warnings +// 1.3 (2014-06-19) fix mouse clicking to round to nearest char boundary +// 1.2 (2014-05-27) fix some RAD types that had crept into the new code +// 1.1 (2013-12-15) move-by-word (requires STB_TEXTEDIT_IS_SPACE ) +// 1.0 (2012-07-26) improve documentation, initial public release +// 0.3 (2012-02-24) bugfixes, single-line mode; insert mode +// 0.2 (2011-11-28) fixes to undo/redo +// 0.1 (2010-07-08) initial version +// +// ADDITIONAL CONTRIBUTORS +// +// Ulf Winklemann: move-by-word in 1.1 +// Scott Graham: mouse selection bugfix in 1.3 +// +// USAGE +// +// This file behaves differently depending on what symbols you define +// before including it. +// +// +// Header-file mode: +// +// If you do not define STB_TEXTEDIT_IMPLEMENTATION before including this, +// it will operate in "header file" mode. In this mode, it declares a +// single public symbol, STB_TexteditState, which encapsulates the current +// state of a text widget (except for the string, which you will store +// separately). +// +// To compile in this mode, you must define STB_TEXTEDIT_CHARTYPE to a +// primitive type that defines a single character (e.g. char, wchar_t, etc). +// +// To save space or increase undo-ability, you can optionally define the +// following things that are used by the undo system: +// +// STB_TEXTEDIT_POSITIONTYPE small int type encoding a valid cursor position +// STB_TEXTEDIT_UNDOSTATECOUNT the number of undo states to allow +// STB_TEXTEDIT_UNDOCHARCOUNT the number of characters to store in the undo buffer +// +// If you don't define these, they are set to permissive types and +// moderate sizes. The undo system does no memory allocations, so +// it grows STB_TexteditState by the worst-case storage which is (in bytes): +// +// [4 + sizeof(STB_TEXTEDIT_POSITIONTYPE)] * STB_TEXTEDIT_UNDOSTATE_COUNT +// + sizeof(STB_TEXTEDIT_CHARTYPE) * STB_TEXTEDIT_UNDOCHAR_COUNT +// +// +// Implementation mode: +// +// If you define STB_TEXTEDIT_IMPLEMENTATION before including this, it +// will compile the implementation of the text edit widget, depending +// on a large number of symbols which must be defined before the include. +// +// The implementation is defined only as static functions. You will then +// need to provide your own APIs in the same file which will access the +// static functions. +// +// The basic concept is that you provide a "string" object which +// behaves like an array of characters. stb_textedit uses indices to +// refer to positions in the string, implicitly representing positions +// in the displayed textedit. This is true for both plain text and +// rich text; even with rich text stb_truetype interacts with your +// code as if there was an array of all the displayed characters. +// +// Symbols that must be the same in header-file and implementation mode: +// +// STB_TEXTEDIT_CHARTYPE the character type +// STB_TEXTEDIT_POSITIONTYPE small type that a valid cursor position +// STB_TEXTEDIT_UNDOSTATECOUNT the number of undo states to allow +// STB_TEXTEDIT_UNDOCHARCOUNT the number of characters to store in the undo buffer +// +// Symbols you must define for implementation mode: +// +// STB_TEXTEDIT_STRING the type of object representing a string being edited, +// typically this is a wrapper object with other data you need +// +// STB_TEXTEDIT_STRINGLEN(obj) the length of the string (ideally O(1)) +// STB_TEXTEDIT_LAYOUTROW(&r,obj,n) returns the results of laying out a line of characters +// starting from character #n (see discussion below) +// STB_TEXTEDIT_GETWIDTH(obj,n,i) returns the pixel delta from the xpos of the i'th character +// to the xpos of the i+1'th char for a line of characters +// starting at character #n (i.e. accounts for kerning +// with previous char) +// STB_TEXTEDIT_KEYTOTEXT(k) maps a keyboard input to an insertable character +// (return type is int, -1 means not valid to insert) +// STB_TEXTEDIT_GETCHAR(obj,i) returns the i'th character of obj, 0-based +// STB_TEXTEDIT_NEWLINE the character returned by _GETCHAR() we recognize +// as manually wordwrapping for end-of-line positioning +// +// STB_TEXTEDIT_DELETECHARS(obj,i,n) delete n characters starting at i +// STB_TEXTEDIT_INSERTCHARS(obj,i,c*,n) insert n characters at i (pointed to by STB_TEXTEDIT_CHARTYPE*) +// +// STB_TEXTEDIT_K_SHIFT a power of two that is or'd in to a keyboard input to represent the shift key +// +// STB_TEXTEDIT_K_LEFT keyboard input to move cursor left +// STB_TEXTEDIT_K_RIGHT keyboard input to move cursor right +// STB_TEXTEDIT_K_UP keyboard input to move cursor up +// STB_TEXTEDIT_K_DOWN keyboard input to move cursor down +// STB_TEXTEDIT_K_LINESTART keyboard input to move cursor to start of line // e.g. HOME +// STB_TEXTEDIT_K_LINEEND keyboard input to move cursor to end of line // e.g. END +// STB_TEXTEDIT_K_TEXTSTART keyboard input to move cursor to start of text // e.g. ctrl-HOME +// STB_TEXTEDIT_K_TEXTEND keyboard input to move cursor to end of text // e.g. ctrl-END +// STB_TEXTEDIT_K_DELETE keyboard input to delete selection or character under cursor +// STB_TEXTEDIT_K_BACKSPACE keyboard input to delete selection or character left of cursor +// STB_TEXTEDIT_K_UNDO keyboard input to perform undo +// STB_TEXTEDIT_K_REDO keyboard input to perform redo +// +// Optional: +// STB_TEXTEDIT_K_INSERT keyboard input to toggle insert mode +// STB_TEXTEDIT_IS_SPACE(ch) true if character is whitespace (e.g. 'isspace'), +// required for WORDLEFT/WORDRIGHT +// STB_TEXTEDIT_K_WORDLEFT keyboard input to move cursor left one word // e.g. ctrl-LEFT +// STB_TEXTEDIT_K_WORDRIGHT keyboard input to move cursor right one word // e.g. ctrl-RIGHT +// +// Todo: +// STB_TEXTEDIT_K_PGUP keyboard input to move cursor up a page +// STB_TEXTEDIT_K_PGDOWN keyboard input to move cursor down a page +// +// Keyboard input must be encoded as a single integer value; e.g. a character code +// and some bitflags that represent shift states. to simplify the interface, SHIFT must +// be a bitflag, so we can test the shifted state of cursor movements to allow selection, +// i.e. (STB_TEXTED_K_RIGHT|STB_TEXTEDIT_K_SHIFT) should be shifted right-arrow. +// +// You can encode other things, such as CONTROL or ALT, in additional bits, and +// then test for their presence in e.g. STB_TEXTEDIT_K_WORDLEFT. For example, +// my Windows implementations add an additional CONTROL bit, and an additional KEYDOWN +// bit. Then all of the STB_TEXTEDIT_K_ values bitwise-or in the KEYDOWN bit, +// and I pass both WM_KEYDOWN and WM_CHAR events to the "key" function in the +// API below. The control keys will only match WM_KEYDOWN events because of the +// keydown bit I add, and STB_TEXTEDIT_KEYTOTEXT only tests for the KEYDOWN +// bit so it only decodes WM_CHAR events. +// +// STB_TEXTEDIT_LAYOUTROW returns information about the shape of one displayed +// row of characters assuming they start on the i'th character--the width and +// the height and the number of characters consumed. This allows this library +// to traverse the entire layout incrementally. You need to compute word-wrapping +// here. +// +// Each textfield keeps its own insert mode state, which is not how normal +// applications work. To keep an app-wide insert mode, update/copy the +// "insert_mode" field of STB_TexteditState before/after calling API functions. +// +// API +// +// void stb_textedit_initialize_state(STB_TexteditState *state, int is_single_line) +// +// void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) +// void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) +// int stb_textedit_cut(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +// int stb_textedit_paste(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXTEDIT_CHARTYPE *text, int len) +// void stb_textedit_key(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int key) +// +// Each of these functions potentially updates the string and updates the +// state. +// +// initialize_state: +// set the textedit state to a known good default state when initially +// constructing the textedit. +// +// click: +// call this with the mouse x,y on a mouse down; it will update the cursor +// and reset the selection start/end to the cursor point. the x,y must +// be relative to the text widget, with (0,0) being the top left. +// +// drag: +// call this with the mouse x,y on a mouse drag/up; it will update the +// cursor and the selection end point +// +// cut: +// call this to delete the current selection; returns true if there was +// one. you should FIRST copy the current selection to the system paste buffer. +// (To copy, just copy the current selection out of the string yourself.) +// +// paste: +// call this to paste text at the current cursor point or over the current +// selection if there is one. +// +// key: +// call this for keyboard inputs sent to the textfield. you can use it +// for "key down" events or for "translated" key events. if you need to +// do both (as in Win32), or distinguish Unicode characters from control +// inputs, set a high bit to distinguish the two; then you can define the +// various definitions like STB_TEXTEDIT_K_LEFT have the is-key-event bit +// set, and make STB_TEXTEDIT_KEYTOCHAR check that the is-key-event bit is +// clear. +// +// When rendering, you can read the cursor position and selection state from +// the STB_TexteditState. +// +// +// Notes: +// +// This is designed to be usable in IMGUI, so it allows for the possibility of +// running in an IMGUI that has NOT cached the multi-line layout. For this +// reason, it provides an interface that is compatible with computing the +// layout incrementally--we try to make sure we make as few passes through +// as possible. (For example, to locate the mouse pointer in the text, we +// could define functions that return the X and Y positions of characters +// and binary search Y and then X, but if we're doing dynamic layout this +// will run the layout algorithm many times, so instead we manually search +// forward in one pass. Similar logic applies to e.g. up-arrow and +// down-arrow movement.) +// +// If it's run in a widget that *has* cached the layout, then this is less +// efficient, but it's not horrible on modern computers. But you wouldn't +// want to edit million-line files with it. + + +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//// +//// Header-file mode +//// +//// + +#ifndef INCLUDE_STB_TEXTEDIT_H +#define INCLUDE_STB_TEXTEDIT_H + +//////////////////////////////////////////////////////////////////////// +// +// STB_TexteditState +// +// Definition of STB_TexteditState which you should store +// per-textfield; it includes cursor position, selection state, +// and undo state. +// + +#ifndef STB_TEXTEDIT_UNDOSTATECOUNT +#define STB_TEXTEDIT_UNDOSTATECOUNT 99 +#endif +#ifndef STB_TEXTEDIT_UNDOCHARCOUNT +#define STB_TEXTEDIT_UNDOCHARCOUNT 999 +#endif +#ifndef STB_TEXTEDIT_CHARTYPE +#define STB_TEXTEDIT_CHARTYPE int +#endif +#ifndef STB_TEXTEDIT_POSITIONTYPE +#define STB_TEXTEDIT_POSITIONTYPE int +#endif + +typedef struct +{ + // private data + STB_TEXTEDIT_POSITIONTYPE where; + short insert_length; + short delete_length; + short char_storage; +} StbUndoRecord; + +typedef struct +{ + // private data + StbUndoRecord undo_rec [STB_TEXTEDIT_UNDOSTATECOUNT]; + STB_TEXTEDIT_CHARTYPE undo_char[STB_TEXTEDIT_UNDOCHARCOUNT]; + short undo_point, redo_point; + short undo_char_point, redo_char_point; +} StbUndoState; + +typedef struct +{ + ///////////////////// + // + // public data + // + + int cursor; + // position of the text cursor within the string + + int select_start; // selection start point + int select_end; + // selection start and end point in characters; if equal, no selection. + // note that start may be less than or greater than end (e.g. when + // dragging the mouse, start is where the initial click was, and you + // can drag in either direction) + + unsigned char insert_mode; + // each textfield keeps its own insert mode state. to keep an app-wide + // insert mode, copy this value in/out of the app state + + ///////////////////// + // + // private data + // + unsigned char cursor_at_end_of_line; // not implemented yet + unsigned char initialized; + unsigned char has_preferred_x; + unsigned char single_line; + unsigned char padding1, padding2, padding3; + float preferred_x; // this determines where the cursor up/down tries to seek to along x + StbUndoState undostate; +} STB_TexteditState; + + +//////////////////////////////////////////////////////////////////////// +// +// StbTexteditRow +// +// Result of layout query, used by stb_textedit to determine where +// the text in each row is. + +// result of layout query +typedef struct +{ + float x0,x1; // starting x location, end x location (allows for align=right, etc) + float baseline_y_delta; // position of baseline relative to previous row's baseline + float ymin,ymax; // height of row above and below baseline + int num_chars; +} StbTexteditRow; +#endif //INCLUDE_STB_TEXTEDIT_H + + +//////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////// +//// +//// Implementation mode +//// +//// + + +// implementation isn't include-guarded, since it might have indirectly +// included just the "header" portion +#ifdef STB_TEXTEDIT_IMPLEMENTATION + +#include // memmove + + +///////////////////////////////////////////////////////////////////////////// +// +// Mouse input handling +// + +// traverse the layout to locate the nearest character to a display position +static int stb_text_locate_coord(STB_TEXTEDIT_STRING *str, float x, float y) +{ + StbTexteditRow r; + int n = STB_TEXTEDIT_STRINGLEN(str); + float base_y = 0, prev_x; + int i=0, k; + + if (y < 0) + return 0; + + r.x0 = r.x1 = 0; + r.ymin = r.ymax = 0; + r.num_chars = 0; + + // search rows to find one that straddles 'y' + while (i < n) { + STB_TEXTEDIT_LAYOUTROW(&r, str, i); + if (r.num_chars <= 0) + return n; + + if (y < base_y + r.ymax) + break; + + i += r.num_chars; + base_y += r.baseline_y_delta; + } + + // below all text, return 'after' last character + if (i >= n) + return n; + + // check if it's before the beginning of the line + if (x < r.x0) + return i; + + // check if it's before the end of the line + if (x < r.x1) { + // search characters in row for one that straddles 'x' + k = i; + prev_x = r.x0; + for (i=0; i < r.num_chars; ++i) { + float w = STB_TEXTEDIT_GETWIDTH(str, k, i); + if (x < prev_x+w) { + if (x < prev_x+w/2) + return k+i; + else + return k+i+1; + } + prev_x += w; + } + // shouldn't happen, but if it does, fall through to end-of-line case + } + + // if the last character is a newline, return that. otherwise return 'after' the last character + if (STB_TEXTEDIT_GETCHAR(str, i+r.num_chars-1) == STB_TEXTEDIT_NEWLINE) + return i+r.num_chars-1; + else + return i+r.num_chars; +} + +// API click: on mouse down, move the cursor to the clicked location, and reset the selection +static void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) +{ + state->cursor = stb_text_locate_coord(str, x, y); + state->select_start = state->cursor; + state->select_end = state->cursor; + state->has_preferred_x = 0; +} + +// API drag: on mouse drag, move the cursor and selection endpoint to the clicked location +static void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) +{ + int p = stb_text_locate_coord(str, x, y); + state->cursor = state->select_end = p; +} + +///////////////////////////////////////////////////////////////////////////// +// +// Keyboard input handling +// + +// forward declarations +static void stb_text_undo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state); +static void stb_text_redo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state); +static void stb_text_makeundo_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int length); +static void stb_text_makeundo_insert(STB_TexteditState *state, int where, int length); +static void stb_text_makeundo_replace(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int old_length, int new_length); + +typedef struct +{ + float x,y; // position of n'th character + float height; // height of line + int first_char, length; // first char of row, and length + int prev_first; // first char of previous row +} StbFindState; + +// find the x/y location of a character, and remember info about the previous row in +// case we get a move-up event (for page up, we'll have to rescan) +static void stb_textedit_find_charpos(StbFindState *find, STB_TEXTEDIT_STRING *str, int n, int single_line) +{ + StbTexteditRow r; + int prev_start = 0; + int z = STB_TEXTEDIT_STRINGLEN(str); + int i=0, first; + + if (n == z) { + // if it's at the end, then find the last line -- simpler than trying to + // explicitly handle this case in the regular code + if (single_line) { + STB_TEXTEDIT_LAYOUTROW(&r, str, 0); + find->y = 0; + find->first_char = 0; + find->length = z; + find->height = r.ymax - r.ymin; + find->x = r.x1; + } else { + find->y = 0; + find->x = 0; + find->height = 1; + while (i < z) { + STB_TEXTEDIT_LAYOUTROW(&r, str, i); + prev_start = i; + i += r.num_chars; + } + find->first_char = i; + find->length = 0; + find->prev_first = prev_start; + } + return; + } + + // search rows to find the one that straddles character n + find->y = 0; + + for(;;) { + STB_TEXTEDIT_LAYOUTROW(&r, str, i); + if (n < i + r.num_chars) + break; + prev_start = i; + i += r.num_chars; + find->y += r.baseline_y_delta; + } + + find->first_char = first = i; + find->length = r.num_chars; + find->height = r.ymax - r.ymin; + find->prev_first = prev_start; + + // now scan to find xpos + find->x = r.x0; + i = 0; + for (i=0; first+i < n; ++i) + find->x += STB_TEXTEDIT_GETWIDTH(str, first, i); +} + +#define STB_TEXT_HAS_SELECTION(s) ((s)->select_start != (s)->select_end) + +// make the selection/cursor state valid if client altered the string +static void stb_textedit_clamp(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + int n = STB_TEXTEDIT_STRINGLEN(str); + if (STB_TEXT_HAS_SELECTION(state)) { + if (state->select_start > n) state->select_start = n; + if (state->select_end > n) state->select_end = n; + // if clamping forced them to be equal, move the cursor to match + if (state->select_start == state->select_end) + state->cursor = state->select_start; + } + if (state->cursor > n) state->cursor = n; +} + +// delete characters while updating undo +static void stb_textedit_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int len) +{ + stb_text_makeundo_delete(str, state, where, len); + STB_TEXTEDIT_DELETECHARS(str, where, len); + state->has_preferred_x = 0; +} + +// delete the section +static void stb_textedit_delete_selection(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + stb_textedit_clamp(str, state); + if (STB_TEXT_HAS_SELECTION(state)) { + if (state->select_start < state->select_end) { + stb_textedit_delete(str, state, state->select_start, state->select_end - state->select_start); + state->select_end = state->cursor = state->select_start; + } else { + stb_textedit_delete(str, state, state->select_end, state->select_start - state->select_end); + state->select_start = state->cursor = state->select_end; + } + state->has_preferred_x = 0; + } +} + +// canoncialize the selection so start <= end +static void stb_textedit_sortselection(STB_TexteditState *state) +{ + if (state->select_end < state->select_start) { + int temp = state->select_end; + state->select_end = state->select_start; + state->select_start = temp; + } +} + +// move cursor to first character of selection +static void stb_textedit_move_to_first(STB_TexteditState *state) +{ + if (STB_TEXT_HAS_SELECTION(state)) { + stb_textedit_sortselection(state); + state->cursor = state->select_start; + state->select_end = state->select_start; + state->has_preferred_x = 0; + } +} + +// move cursor to last character of selection +static void stb_textedit_move_to_last(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + if (STB_TEXT_HAS_SELECTION(state)) { + stb_textedit_sortselection(state); + stb_textedit_clamp(str, state); + state->cursor = state->select_end; + state->select_start = state->select_end; + state->has_preferred_x = 0; + } +} + +#ifdef STB_TEXTEDIT_IS_SPACE +static int is_word_boundary( STB_TEXTEDIT_STRING *_str, int _idx ) +{ + return _idx > 0 ? (STB_TEXTEDIT_IS_SPACE( STB_TEXTEDIT_GETCHAR(_str,_idx-1) ) && !STB_TEXTEDIT_IS_SPACE( STB_TEXTEDIT_GETCHAR(_str, _idx) ) ) : 1; +} + +static int stb_textedit_move_to_word_previous( STB_TEXTEDIT_STRING *_str, STB_TexteditState *_state ) +{ + int c = _state->cursor - 1; + while( c >= 0 && !is_word_boundary( _str, c ) ) + --c; + + if( c < 0 ) + c = 0; + + return c; +} + +static int stb_textedit_move_to_word_next( STB_TEXTEDIT_STRING *_str, STB_TexteditState *_state ) +{ + const int len = STB_TEXTEDIT_STRINGLEN(_str); + int c = _state->cursor+1; + while( c < len && !is_word_boundary( _str, c ) ) + ++c; + + if( c > len ) + c = len; + + return c; +} +#endif + +// update selection and cursor to match each other +static void stb_textedit_prep_selection_at_cursor(STB_TexteditState *state) +{ + if (!STB_TEXT_HAS_SELECTION(state)) + state->select_start = state->select_end = state->cursor; + else + state->cursor = state->select_end; +} + +// API cut: delete selection +static int stb_textedit_cut(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + if (STB_TEXT_HAS_SELECTION(state)) { + stb_textedit_delete_selection(str,state); // implicity clamps + state->has_preferred_x = 0; + return 1; + } + return 0; +} + +// API paste: replace existing selection with passed-in text +static int stb_textedit_paste(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXTEDIT_CHARTYPE const *ctext, int len) +{ + STB_TEXTEDIT_CHARTYPE *text = (STB_TEXTEDIT_CHARTYPE *) ctext; + // if there's a selection, the paste should delete it + stb_textedit_clamp(str, state); + stb_textedit_delete_selection(str,state); + // try to insert the characters + if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, text, len)) { + stb_text_makeundo_insert(state, state->cursor, len); + state->cursor += len; + state->has_preferred_x = 0; + return 1; + } + // remove the undo since we didn't actually insert the characters + if (state->undostate.undo_point) + --state->undostate.undo_point; + return 0; +} + +// API key: process a keyboard input +static void stb_textedit_key(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int key) +{ +retry: + switch (key) { + default: { + int c = STB_TEXTEDIT_KEYTOTEXT(key); + if (c > 0) { + STB_TEXTEDIT_CHARTYPE ch = (STB_TEXTEDIT_CHARTYPE) c; + + // can't add newline in single-line mode + if (c == '\n' && state->single_line) + break; + + if (state->insert_mode && !STB_TEXT_HAS_SELECTION(state) && state->cursor < STB_TEXTEDIT_STRINGLEN(str)) { + stb_text_makeundo_replace(str, state, state->cursor, 1, 1); + STB_TEXTEDIT_DELETECHARS(str, state->cursor, 1); + if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, &ch, 1)) { + ++state->cursor; + state->has_preferred_x = 0; + } + } else { + stb_textedit_delete_selection(str,state); // implicity clamps + if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, &ch, 1)) { + stb_text_makeundo_insert(state, state->cursor, 1); + ++state->cursor; + state->has_preferred_x = 0; + } + } + } + break; + } + +#ifdef STB_TEXTEDIT_K_INSERT + case STB_TEXTEDIT_K_INSERT: + state->insert_mode = !state->insert_mode; + break; +#endif + + case STB_TEXTEDIT_K_UNDO: + stb_text_undo(str, state); + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_REDO: + stb_text_redo(str, state); + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_LEFT: + // if currently there's a selection, move cursor to start of selection + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_first(state); + else + if (state->cursor > 0) + --state->cursor; + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_RIGHT: + // if currently there's a selection, move cursor to end of selection + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_last(str, state); + else + ++state->cursor; + stb_textedit_clamp(str, state); + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_LEFT | STB_TEXTEDIT_K_SHIFT: + stb_textedit_clamp(str, state); + stb_textedit_prep_selection_at_cursor(state); + // move selection left + if (state->select_end > 0) + --state->select_end; + state->cursor = state->select_end; + state->has_preferred_x = 0; + break; + +#ifdef STB_TEXTEDIT_IS_SPACE + case STB_TEXTEDIT_K_WORDLEFT: + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_first(state); + else { + state->cursor = stb_textedit_move_to_word_previous(str, state); + stb_textedit_clamp( str, state ); + } + break; + + case STB_TEXTEDIT_K_WORDRIGHT: + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_last(str, state); + else { + state->cursor = stb_textedit_move_to_word_next(str, state); + stb_textedit_clamp( str, state ); + } + break; + + case STB_TEXTEDIT_K_WORDLEFT | STB_TEXTEDIT_K_SHIFT: + if( !STB_TEXT_HAS_SELECTION( state ) ) + stb_textedit_prep_selection_at_cursor(state); + + state->cursor = stb_textedit_move_to_word_previous(str, state); + state->select_end = state->cursor; + + stb_textedit_clamp( str, state ); + break; + + case STB_TEXTEDIT_K_WORDRIGHT | STB_TEXTEDIT_K_SHIFT: + if( !STB_TEXT_HAS_SELECTION( state ) ) + stb_textedit_prep_selection_at_cursor(state); + + state->cursor = stb_textedit_move_to_word_next(str, state); + state->select_end = state->cursor; + + stb_textedit_clamp( str, state ); + break; +#endif + + case STB_TEXTEDIT_K_RIGHT | STB_TEXTEDIT_K_SHIFT: + stb_textedit_prep_selection_at_cursor(state); + // move selection right + ++state->select_end; + stb_textedit_clamp(str, state); + state->cursor = state->select_end; + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_DOWN: + case STB_TEXTEDIT_K_DOWN | STB_TEXTEDIT_K_SHIFT: { + StbFindState find; + StbTexteditRow row; + int i, sel = (key & STB_TEXTEDIT_K_SHIFT) != 0; + + if (state->single_line) { + // on windows, up&down in single-line behave like left&right + key = STB_TEXTEDIT_K_RIGHT | (key & STB_TEXTEDIT_K_SHIFT); + goto retry; + } + + if (sel) + stb_textedit_prep_selection_at_cursor(state); + else if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_last(str,state); + + // compute current position of cursor point + stb_textedit_clamp(str, state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + + // now find character position down a row + if (find.length) { + float goal_x = state->has_preferred_x ? state->preferred_x : find.x; + float x; + int start = find.first_char + find.length; + state->cursor = start; + STB_TEXTEDIT_LAYOUTROW(&row, str, state->cursor); + x = row.x0; + for (i=0; i < row.num_chars; ++i) { + float dx = STB_TEXTEDIT_GETWIDTH(str, start, i); + #ifdef STB_TEXTEDIT_GETWIDTH_NEWLINE + if (dx == STB_TEXTEDIT_GETWIDTH_NEWLINE) + break; + #endif + x += dx; + if (x > goal_x) + break; + ++state->cursor; + } + stb_textedit_clamp(str, state); + + state->has_preferred_x = 1; + state->preferred_x = goal_x; + + if (sel) + state->select_end = state->cursor; + } + break; + } + + case STB_TEXTEDIT_K_UP: + case STB_TEXTEDIT_K_UP | STB_TEXTEDIT_K_SHIFT: { + StbFindState find; + StbTexteditRow row; + int i, sel = (key & STB_TEXTEDIT_K_SHIFT) != 0; + + if (state->single_line) { + // on windows, up&down become left&right + key = STB_TEXTEDIT_K_LEFT | (key & STB_TEXTEDIT_K_SHIFT); + goto retry; + } + + if (sel) + stb_textedit_prep_selection_at_cursor(state); + else if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_move_to_first(state); + + // compute current position of cursor point + stb_textedit_clamp(str, state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + + // can only go up if there's a previous row + if (find.prev_first != find.first_char) { + // now find character position up a row + float goal_x = state->has_preferred_x ? state->preferred_x : find.x; + float x; + state->cursor = find.prev_first; + STB_TEXTEDIT_LAYOUTROW(&row, str, state->cursor); + x = row.x0; + for (i=0; i < row.num_chars; ++i) { + float dx = STB_TEXTEDIT_GETWIDTH(str, find.prev_first, i); + #ifdef STB_TEXTEDIT_GETWIDTH_NEWLINE + if (dx == STB_TEXTEDIT_GETWIDTH_NEWLINE) + break; + #endif + x += dx; + if (x > goal_x) + break; + ++state->cursor; + } + stb_textedit_clamp(str, state); + + state->has_preferred_x = 1; + state->preferred_x = goal_x; + + if (sel) + state->select_end = state->cursor; + } + break; + } + + case STB_TEXTEDIT_K_DELETE: + case STB_TEXTEDIT_K_DELETE | STB_TEXTEDIT_K_SHIFT: + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_delete_selection(str, state); + else { + int n = STB_TEXTEDIT_STRINGLEN(str); + if (state->cursor < n) + stb_textedit_delete(str, state, state->cursor, 1); + } + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_BACKSPACE: + case STB_TEXTEDIT_K_BACKSPACE | STB_TEXTEDIT_K_SHIFT: + if (STB_TEXT_HAS_SELECTION(state)) + stb_textedit_delete_selection(str, state); + else { + stb_textedit_clamp(str, state); + if (state->cursor > 0) { + stb_textedit_delete(str, state, state->cursor-1, 1); + --state->cursor; + } + } + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_TEXTSTART: + state->cursor = state->select_start = state->select_end = 0; + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_TEXTEND: + state->cursor = STB_TEXTEDIT_STRINGLEN(str); + state->select_start = state->select_end = 0; + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_TEXTSTART | STB_TEXTEDIT_K_SHIFT: + stb_textedit_prep_selection_at_cursor(state); + state->cursor = state->select_end = 0; + state->has_preferred_x = 0; + break; + + case STB_TEXTEDIT_K_TEXTEND | STB_TEXTEDIT_K_SHIFT: + stb_textedit_prep_selection_at_cursor(state); + state->cursor = state->select_end = STB_TEXTEDIT_STRINGLEN(str); + state->has_preferred_x = 0; + break; + + + case STB_TEXTEDIT_K_LINESTART: { + StbFindState find; + stb_textedit_clamp(str, state); + stb_textedit_move_to_first(state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + state->cursor = find.first_char; + state->has_preferred_x = 0; + break; + } + + case STB_TEXTEDIT_K_LINEEND: { + StbFindState find; + stb_textedit_clamp(str, state); + stb_textedit_move_to_first(state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + state->cursor = find.first_char + find.length; + if (find.length > 0 && STB_TEXTEDIT_GETCHAR(str, state->cursor-1) == STB_TEXTEDIT_NEWLINE) + state->cursor--; + state->has_preferred_x = 0; + break; + } + + case STB_TEXTEDIT_K_LINESTART | STB_TEXTEDIT_K_SHIFT: { + StbFindState find; + stb_textedit_clamp(str, state); + stb_textedit_prep_selection_at_cursor(state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + state->cursor = state->select_end = find.first_char; + state->has_preferred_x = 0; + break; + } + + case STB_TEXTEDIT_K_LINEEND | STB_TEXTEDIT_K_SHIFT: { + StbFindState find; + stb_textedit_clamp(str, state); + stb_textedit_prep_selection_at_cursor(state); + stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); + state->cursor = state->select_end = find.first_char + find.length; + if (find.length > 0 && STB_TEXTEDIT_GETCHAR(str, state->cursor-1) == STB_TEXTEDIT_NEWLINE) + state->cursor = state->select_end = state->cursor - 1; + state->has_preferred_x = 0; + break; + } + +// @TODO: +// STB_TEXTEDIT_K_PGUP - move cursor up a page +// STB_TEXTEDIT_K_PGDOWN - move cursor down a page + } +} + +///////////////////////////////////////////////////////////////////////////// +// +// Undo processing +// +// @OPTIMIZE: the undo/redo buffer should be circular + +static void stb_textedit_flush_redo(StbUndoState *state) +{ + state->redo_point = STB_TEXTEDIT_UNDOSTATECOUNT; + state->redo_char_point = STB_TEXTEDIT_UNDOCHARCOUNT; +} + +// discard the oldest entry in the undo list +static void stb_textedit_discard_undo(StbUndoState *state) +{ + if (state->undo_point > 0) { + // if the 0th undo state has characters, clean those up + if (state->undo_rec[0].char_storage >= 0) { + int n = state->undo_rec[0].insert_length, i; + // delete n characters from all other records + state->undo_char_point = state->undo_char_point - (short) n; // vsnet05 + memmove(state->undo_char, state->undo_char + n, (size_t) ((size_t)state->undo_char_point*sizeof(STB_TEXTEDIT_CHARTYPE))); + for (i=0; i < state->undo_point; ++i) + if (state->undo_rec[i].char_storage >= 0) + state->undo_rec[i].char_storage = state->undo_rec[i].char_storage - (short) n; // vsnet05 // @OPTIMIZE: get rid of char_storage and infer it + } + --state->undo_point; + memmove(state->undo_rec, state->undo_rec+1, (size_t) ((size_t)state->undo_point*sizeof(state->undo_rec[0]))); + } +} + +// discard the oldest entry in the redo list--it's bad if this +// ever happens, but because undo & redo have to store the actual +// characters in different cases, the redo character buffer can +// fill up even though the undo buffer didn't +static void stb_textedit_discard_redo(StbUndoState *state) +{ + int k = STB_TEXTEDIT_UNDOSTATECOUNT-1; + + if (state->redo_point <= k) { + // if the k'th undo state has characters, clean those up + if (state->undo_rec[k].char_storage >= 0) { + int n = state->undo_rec[k].insert_length, i; + // delete n characters from all other records + state->redo_char_point = state->redo_char_point + (short) n; // vsnet05 + memmove(state->undo_char + state->redo_char_point, state->undo_char + state->redo_char_point-n, (size_t) ((size_t)(STB_TEXTEDIT_UNDOSTATECOUNT - state->redo_char_point)*sizeof(STB_TEXTEDIT_CHARTYPE))); + for (i=state->redo_point; i < k; ++i) + if (state->undo_rec[i].char_storage >= 0) + state->undo_rec[i].char_storage = state->undo_rec[i].char_storage + (short) n; // vsnet05 + } + ++state->redo_point; + memmove(state->undo_rec + state->redo_point-1, state->undo_rec + state->redo_point, (size_t) ((size_t)(STB_TEXTEDIT_UNDOSTATECOUNT - state->redo_point)*sizeof(state->undo_rec[0]))); + } +} + +static StbUndoRecord *stb_text_create_undo_record(StbUndoState *state, int numchars) +{ + // any time we create a new undo record, we discard redo + stb_textedit_flush_redo(state); + + // if we have no free records, we have to make room, by sliding the + // existing records down + if (state->undo_point == STB_TEXTEDIT_UNDOSTATECOUNT) + stb_textedit_discard_undo(state); + + // if the characters to store won't possibly fit in the buffer, we can't undo + if (numchars > STB_TEXTEDIT_UNDOCHARCOUNT) { + state->undo_point = 0; + state->undo_char_point = 0; + return NULL; + } + + // if we don't have enough free characters in the buffer, we have to make room + while (state->undo_char_point + numchars > STB_TEXTEDIT_UNDOCHARCOUNT) + stb_textedit_discard_undo(state); + + return &state->undo_rec[state->undo_point++]; +} + +static STB_TEXTEDIT_CHARTYPE *stb_text_createundo(StbUndoState *state, int pos, int insert_len, int delete_len) +{ + StbUndoRecord *r = stb_text_create_undo_record(state, insert_len); + if (r == NULL) + return NULL; + + r->where = pos; + r->insert_length = (short) insert_len; + r->delete_length = (short) delete_len; + + if (insert_len == 0) { + r->char_storage = -1; + return NULL; + } else { + r->char_storage = state->undo_char_point; + state->undo_char_point = state->undo_char_point + (short) insert_len; + return &state->undo_char[r->char_storage]; + } +} + +static void stb_text_undo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + StbUndoState *s = &state->undostate; + StbUndoRecord u, *r; + if (s->undo_point == 0) + return; + + // we need to do two things: apply the undo record, and create a redo record + u = s->undo_rec[s->undo_point-1]; + r = &s->undo_rec[s->redo_point-1]; + r->char_storage = -1; + + r->insert_length = u.delete_length; + r->delete_length = u.insert_length; + r->where = u.where; + + if (u.delete_length) { + // if the undo record says to delete characters, then the redo record will + // need to re-insert the characters that get deleted, so we need to store + // them. + + // there are three cases: + // there's enough room to store the characters + // characters stored for *redoing* don't leave room for redo + // characters stored for *undoing* don't leave room for redo + // if the last is true, we have to bail + + if (s->undo_char_point + u.delete_length >= STB_TEXTEDIT_UNDOCHARCOUNT) { + // the undo records take up too much character space; there's no space to store the redo characters + r->insert_length = 0; + } else { + int i; + + // there's definitely room to store the characters eventually + while (s->undo_char_point + u.delete_length > s->redo_char_point) { + // there's currently not enough room, so discard a redo record + stb_textedit_discard_redo(s); + // should never happen: + if (s->redo_point == STB_TEXTEDIT_UNDOSTATECOUNT) + return; + } + r = &s->undo_rec[s->redo_point-1]; + + r->char_storage = s->redo_char_point - u.delete_length; + s->redo_char_point = s->redo_char_point - (short) u.delete_length; + + // now save the characters + for (i=0; i < u.delete_length; ++i) + s->undo_char[r->char_storage + i] = STB_TEXTEDIT_GETCHAR(str, u.where + i); + } + + // now we can carry out the deletion + STB_TEXTEDIT_DELETECHARS(str, u.where, u.delete_length); + } + + // check type of recorded action: + if (u.insert_length) { + // easy case: was a deletion, so we need to insert n characters + STB_TEXTEDIT_INSERTCHARS(str, u.where, &s->undo_char[u.char_storage], u.insert_length); + s->undo_char_point -= u.insert_length; + } + + state->cursor = u.where + u.insert_length; + + s->undo_point--; + s->redo_point--; +} + +static void stb_text_redo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) +{ + StbUndoState *s = &state->undostate; + StbUndoRecord *u, r; + if (s->redo_point == STB_TEXTEDIT_UNDOSTATECOUNT) + return; + + // we need to do two things: apply the redo record, and create an undo record + u = &s->undo_rec[s->undo_point]; + r = s->undo_rec[s->redo_point]; + + // we KNOW there must be room for the undo record, because the redo record + // was derived from an undo record + + u->delete_length = r.insert_length; + u->insert_length = r.delete_length; + u->where = r.where; + u->char_storage = -1; + + if (r.delete_length) { + // the redo record requires us to delete characters, so the undo record + // needs to store the characters + + if (s->undo_char_point + u->insert_length > s->redo_char_point) { + u->insert_length = 0; + u->delete_length = 0; + } else { + int i; + u->char_storage = s->undo_char_point; + s->undo_char_point = s->undo_char_point + u->insert_length; + + // now save the characters + for (i=0; i < u->insert_length; ++i) + s->undo_char[u->char_storage + i] = STB_TEXTEDIT_GETCHAR(str, u->where + i); + } + + STB_TEXTEDIT_DELETECHARS(str, r.where, r.delete_length); + } + + if (r.insert_length) { + // easy case: need to insert n characters + STB_TEXTEDIT_INSERTCHARS(str, r.where, &s->undo_char[r.char_storage], r.insert_length); + } + + state->cursor = r.where + r.insert_length; + + s->undo_point++; + s->redo_point++; +} + +static void stb_text_makeundo_insert(STB_TexteditState *state, int where, int length) +{ + stb_text_createundo(&state->undostate, where, 0, length); +} + +static void stb_text_makeundo_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int length) +{ + int i; + STB_TEXTEDIT_CHARTYPE *p = stb_text_createundo(&state->undostate, where, length, 0); + if (p) { + for (i=0; i < length; ++i) + p[i] = STB_TEXTEDIT_GETCHAR(str, where+i); + } +} + +static void stb_text_makeundo_replace(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int old_length, int new_length) +{ + int i; + STB_TEXTEDIT_CHARTYPE *p = stb_text_createundo(&state->undostate, where, old_length, new_length); + if (p) { + for (i=0; i < old_length; ++i) + p[i] = STB_TEXTEDIT_GETCHAR(str, where+i); + } +} + +// reset the state to default +static void stb_textedit_clear_state(STB_TexteditState *state, int is_single_line) +{ + state->undostate.undo_point = 0; + state->undostate.undo_char_point = 0; + state->undostate.redo_point = STB_TEXTEDIT_UNDOSTATECOUNT; + state->undostate.redo_char_point = STB_TEXTEDIT_UNDOCHARCOUNT; + state->select_end = state->select_start = 0; + state->cursor = 0; + state->has_preferred_x = 0; + state->preferred_x = 0; + state->cursor_at_end_of_line = 0; + state->initialized = 1; + state->single_line = (unsigned char) is_single_line; + state->insert_mode = 0; +} + +// API initialize +static void stb_textedit_initialize_state(STB_TexteditState *state, int is_single_line) +{ + stb_textedit_clear_state(state, is_single_line); +} +#endif//STB_TEXTEDIT_IMPLEMENTATION diff --git a/samples/dual_layer/D3D12/src/imgui/stb_truetype.h b/samples/dual_layer/D3D12/src/imgui/stb_truetype.h new file mode 100644 index 0000000..3eba786 --- /dev/null +++ b/samples/dual_layer/D3D12/src/imgui/stb_truetype.h @@ -0,0 +1,3221 @@ +// stb_truetype.h - v1.07 - public domain +// authored from 2009-2015 by Sean Barrett / RAD Game Tools +// +// This library processes TrueType files: +// parse files +// extract glyph metrics +// extract glyph shapes +// render glyphs to one-channel bitmaps with antialiasing (box filter) +// +// Todo: +// non-MS cmaps +// crashproof on bad data +// hinting? (no longer patented) +// cleartype-style AA? +// optimize: use simple memory allocator for intermediates +// optimize: build edge-list directly from curves +// optimize: rasterize directly from curves? +// +// ADDITIONAL CONTRIBUTORS +// +// Mikko Mononen: compound shape support, more cmap formats +// Tor Andersson: kerning, subpixel rendering +// +// Bug/warning reports/fixes: +// "Zer" on mollyrocket (with fix) +// Cass Everitt +// stoiko (Haemimont Games) +// Brian Hook +// Walter van Niftrik +// David Gow +// David Given +// Ivan-Assen Ivanov +// Anthony Pesch +// Johan Duparc +// Hou Qiming +// Fabian "ryg" Giesen +// Martins Mozeiko +// Cap Petschulat +// Omar Cornut +// github:aloucks +// Peter LaValle +// Giumo X. Clanjor +// +// Misc other: +// Ryan Gordon +// +// VERSION HISTORY +// +// 1.07 (2015-08-01) allow PackFontRanges to accept arrays of sparse codepoints; +// variant PackFontRanges to pack and render in separate phases; +// fix stbtt_GetFontOFfsetForIndex (never worked for non-0 input?); +// fixed an assert() bug in the new rasterizer +// replace assert() with STBTT_assert() in new rasterizer +// 1.06 (2015-07-14) performance improvements (~35% faster on x86 and x64 on test machine) +// also more precise AA rasterizer, except if shapes overlap +// remove need for STBTT_sort +// 1.05 (2015-04-15) fix misplaced definitions for STBTT_STATIC +// 1.04 (2015-04-15) typo in example +// 1.03 (2015-04-12) STBTT_STATIC, fix memory leak in new packing, various fixes +// +// Full history can be found at the end of this file. +// +// LICENSE +// +// This software is in the public domain. Where that dedication is not +// recognized, you are granted a perpetual, irrevocable license to copy, +// distribute, and modify this file as you see fit. +// +// USAGE +// +// Include this file in whatever places neeed to refer to it. In ONE C/C++ +// file, write: +// #define STB_TRUETYPE_IMPLEMENTATION +// before the #include of this file. This expands out the actual +// implementation into that C/C++ file. +// +// To make the implementation private to the file that generates the implementation, +// #define STBTT_STATIC +// +// Simple 3D API (don't ship this, but it's fine for tools and quick start) +// stbtt_BakeFontBitmap() -- bake a font to a bitmap for use as texture +// stbtt_GetBakedQuad() -- compute quad to draw for a given char +// +// Improved 3D API (more shippable): +// #include "stb_rect_pack.h" -- optional, but you really want it +// stbtt_PackBegin() +// stbtt_PackSetOversample() -- for improved quality on small fonts +// stbtt_PackFontRanges() -- pack and renders +// stbtt_PackEnd() +// stbtt_GetPackedQuad() +// +// "Load" a font file from a memory buffer (you have to keep the buffer loaded) +// stbtt_InitFont() +// stbtt_GetFontOffsetForIndex() -- use for TTC font collections +// +// Render a unicode codepoint to a bitmap +// stbtt_GetCodepointBitmap() -- allocates and returns a bitmap +// stbtt_MakeCodepointBitmap() -- renders into bitmap you provide +// stbtt_GetCodepointBitmapBox() -- how big the bitmap must be +// +// Character advance/positioning +// stbtt_GetCodepointHMetrics() +// stbtt_GetFontVMetrics() +// stbtt_GetCodepointKernAdvance() +// +// Starting with version 1.06, the rasterizer was replaced with a new, +// faster and generally-more-precise rasterizer. The new rasterizer more +// accurately measures pixel coverage for anti-aliasing, except in the case +// where multiple shapes overlap, in which case it overestimates the AA pixel +// coverage. Thus, anti-aliasing of intersecting shapes may look wrong. If +// this turns out to be a problem, you can re-enable the old rasterizer with +// #define STBTT_RASTERIZER_VERSION 1 +// which will incur about a 15% speed hit. +// +// ADDITIONAL DOCUMENTATION +// +// Immediately after this block comment are a series of sample programs. +// +// After the sample programs is the "header file" section. This section +// includes documentation for each API function. +// +// Some important concepts to understand to use this library: +// +// Codepoint +// Characters are defined by unicode codepoints, e.g. 65 is +// uppercase A, 231 is lowercase c with a cedilla, 0x7e30 is +// the hiragana for "ma". +// +// Glyph +// A visual character shape (every codepoint is rendered as +// some glyph) +// +// Glyph index +// A font-specific integer ID representing a glyph +// +// Baseline +// Glyph shapes are defined relative to a baseline, which is the +// bottom of uppercase characters. Characters extend both above +// and below the baseline. +// +// Current Point +// As you draw text to the screen, you keep track of a "current point" +// which is the origin of each character. The current point's vertical +// position is the baseline. Even "baked fonts" use this model. +// +// Vertical Font Metrics +// The vertical qualities of the font, used to vertically position +// and space the characters. See docs for stbtt_GetFontVMetrics. +// +// Font Size in Pixels or Points +// The preferred interface for specifying font sizes in stb_truetype +// is to specify how tall the font's vertical extent should be in pixels. +// If that sounds good enough, skip the next paragraph. +// +// Most font APIs instead use "points", which are a common typographic +// measurement for describing font size, defined as 72 points per inch. +// stb_truetype provides a point API for compatibility. However, true +// "per inch" conventions don't make much sense on computer displays +// since they different monitors have different number of pixels per +// inch. For example, Windows traditionally uses a convention that +// there are 96 pixels per inch, thus making 'inch' measurements have +// nothing to do with inches, and thus effectively defining a point to +// be 1.333 pixels. Additionally, the TrueType font data provides +// an explicit scale factor to scale a given font's glyphs to points, +// but the author has observed that this scale factor is often wrong +// for non-commercial fonts, thus making fonts scaled in points +// according to the TrueType spec incoherently sized in practice. +// +// ADVANCED USAGE +// +// Quality: +// +// - Use the functions with Subpixel at the end to allow your characters +// to have subpixel positioning. Since the font is anti-aliased, not +// hinted, this is very import for quality. (This is not possible with +// baked fonts.) +// +// - Kerning is now supported, and if you're supporting subpixel rendering +// then kerning is worth using to give your text a polished look. +// +// Performance: +// +// - Convert Unicode codepoints to glyph indexes and operate on the glyphs; +// if you don't do this, stb_truetype is forced to do the conversion on +// every call. +// +// - There are a lot of memory allocations. We should modify it to take +// a temp buffer and allocate from the temp buffer (without freeing), +// should help performance a lot. +// +// NOTES +// +// The system uses the raw data found in the .ttf file without changing it +// and without building auxiliary data structures. This is a bit inefficient +// on little-endian systems (the data is big-endian), but assuming you're +// caching the bitmaps or glyph shapes this shouldn't be a big deal. +// +// It appears to be very hard to programmatically determine what font a +// given file is in a general way. I provide an API for this, but I don't +// recommend it. +// +// +// SOURCE STATISTICS (based on v0.6c, 2050 LOC) +// +// Documentation & header file 520 LOC \___ 660 LOC documentation +// Sample code 140 LOC / +// Truetype parsing 620 LOC ---- 620 LOC TrueType +// Software rasterization 240 LOC \ . +// Curve tesselation 120 LOC \__ 550 LOC Bitmap creation +// Bitmap management 100 LOC / +// Baked bitmap interface 70 LOC / +// Font name matching & access 150 LOC ---- 150 +// C runtime library abstraction 60 LOC ---- 60 +// +// +// PERFORMANCE MEASUREMENTS FOR 1.06: +// +// 32-bit 64-bit +// Previous release: 8.83 s 7.68 s +// Pool allocations: 7.72 s 6.34 s +// Inline sort : 6.54 s 5.65 s +// New rasterizer : 5.63 s 5.00 s + +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +//// +//// SAMPLE PROGRAMS +//// +// +// Incomplete text-in-3d-api example, which draws quads properly aligned to be lossless +// +#if 0 +#define STB_TRUETYPE_IMPLEMENTATION // force following include to generate implementation +#include "stb_truetype.h" + +unsigned char ttf_buffer[1<<20]; +unsigned char temp_bitmap[512*512]; + +stbtt_bakedchar cdata[96]; // ASCII 32..126 is 95 glyphs +GLuint ftex; + +void my_stbtt_initfont(void) +{ + fread(ttf_buffer, 1, 1<<20, fopen("c:/windows/fonts/times.ttf", "rb")); + stbtt_BakeFontBitmap(ttf_buffer,0, 32.0, temp_bitmap,512,512, 32,96, cdata); // no guarantee this fits! + // can free ttf_buffer at this point + glGenTextures(1, &ftex); + glBindTexture(GL_TEXTURE_2D, ftex); + glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 512,512, 0, GL_ALPHA, GL_UNSIGNED_BYTE, temp_bitmap); + // can free temp_bitmap at this point + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); +} + +void my_stbtt_print(float x, float y, char *text) +{ + // assume orthographic projection with units = screen pixels, origin at top left + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, ftex); + glBegin(GL_QUADS); + while (*text) { + if (*text >= 32 && *text < 128) { + stbtt_aligned_quad q; + stbtt_GetBakedQuad(cdata, 512,512, *text-32, &x,&y,&q,1);//1=opengl & d3d10+,0=d3d9 + glTexCoord2f(q.s0,q.t1); glVertex2f(q.x0,q.y0); + glTexCoord2f(q.s1,q.t1); glVertex2f(q.x1,q.y0); + glTexCoord2f(q.s1,q.t0); glVertex2f(q.x1,q.y1); + glTexCoord2f(q.s0,q.t0); glVertex2f(q.x0,q.y1); + } + ++text; + } + glEnd(); +} +#endif +// +// +////////////////////////////////////////////////////////////////////////////// +// +// Complete program (this compiles): get a single bitmap, print as ASCII art +// +#if 0 +#include +#define STB_TRUETYPE_IMPLEMENTATION // force following include to generate implementation +#include "stb_truetype.h" + +char ttf_buffer[1<<25]; + +int main(int argc, char **argv) +{ + stbtt_fontinfo font; + unsigned char *bitmap; + int w,h,i,j,c = (argc > 1 ? atoi(argv[1]) : 'a'), s = (argc > 2 ? atoi(argv[2]) : 20); + + fread(ttf_buffer, 1, 1<<25, fopen(argc > 3 ? argv[3] : "c:/windows/fonts/arialbd.ttf", "rb")); + + stbtt_InitFont(&font, ttf_buffer, stbtt_GetFontOffsetForIndex(ttf_buffer,0)); + bitmap = stbtt_GetCodepointBitmap(&font, 0,stbtt_ScaleForPixelHeight(&font, s), c, &w, &h, 0,0); + + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) + putchar(" .:ioVM@"[bitmap[j*w+i]>>5]); + putchar('\n'); + } + return 0; +} +#endif +// +// Output: +// +// .ii. +// @@@@@@. +// V@Mio@@o +// :i. V@V +// :oM@@M +// :@@@MM@M +// @@o o@M +// :@@. M@M +// @@@o@@@@ +// :M@@V:@@. +// +////////////////////////////////////////////////////////////////////////////// +// +// Complete program: print "Hello World!" banner, with bugs +// +#if 0 +char buffer[24<<20]; +unsigned char screen[20][79]; + +int main(int arg, char **argv) +{ + stbtt_fontinfo font; + int i,j,ascent,baseline,ch=0; + float scale, xpos=2; // leave a little padding in case the character extends left + char *text = "Heljo World!"; // intentionally misspelled to show 'lj' brokenness + + fread(buffer, 1, 1000000, fopen("c:/windows/fonts/arialbd.ttf", "rb")); + stbtt_InitFont(&font, buffer, 0); + + scale = stbtt_ScaleForPixelHeight(&font, 15); + stbtt_GetFontVMetrics(&font, &ascent,0,0); + baseline = (int) (ascent*scale); + + while (text[ch]) { + int advance,lsb,x0,y0,x1,y1; + float x_shift = xpos - (float) floor(xpos); + stbtt_GetCodepointHMetrics(&font, text[ch], &advance, &lsb); + stbtt_GetCodepointBitmapBoxSubpixel(&font, text[ch], scale,scale,x_shift,0, &x0,&y0,&x1,&y1); + stbtt_MakeCodepointBitmapSubpixel(&font, &screen[baseline + y0][(int) xpos + x0], x1-x0,y1-y0, 79, scale,scale,x_shift,0, text[ch]); + // note that this stomps the old data, so where character boxes overlap (e.g. 'lj') it's wrong + // because this API is really for baking character bitmaps into textures. if you want to render + // a sequence of characters, you really need to render each bitmap to a temp buffer, then + // "alpha blend" that into the working buffer + xpos += (advance * scale); + if (text[ch+1]) + xpos += scale*stbtt_GetCodepointKernAdvance(&font, text[ch],text[ch+1]); + ++ch; + } + + for (j=0; j < 20; ++j) { + for (i=0; i < 78; ++i) + putchar(" .:ioVM@"[screen[j][i]>>5]); + putchar('\n'); + } + + return 0; +} +#endif + + +////////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// +//// +//// INTEGRATION WITH YOUR CODEBASE +//// +//// The following sections allow you to supply alternate definitions +//// of C library functions used by stb_truetype. + +#ifdef STB_TRUETYPE_IMPLEMENTATION + // #define your own (u)stbtt_int8/16/32 before including to override this + #ifndef stbtt_uint8 + typedef unsigned char stbtt_uint8; + typedef signed char stbtt_int8; + typedef unsigned short stbtt_uint16; + typedef signed short stbtt_int16; + typedef unsigned int stbtt_uint32; + typedef signed int stbtt_int32; + #endif + + typedef char stbtt__check_size32[sizeof(stbtt_int32)==4 ? 1 : -1]; + typedef char stbtt__check_size16[sizeof(stbtt_int16)==2 ? 1 : -1]; + + // #define your own STBTT_ifloor/STBTT_iceil() to avoid math.h + #ifndef STBTT_ifloor + #include + #define STBTT_ifloor(x) ((int) floor(x)) + #define STBTT_iceil(x) ((int) ceil(x)) + #endif + + #ifndef STBTT_sqrt + #include + #define STBTT_sqrt(x) sqrt(x) + #endif + + // #define your own functions "STBTT_malloc" / "STBTT_free" to avoid malloc.h + #ifndef STBTT_malloc + #include + #define STBTT_malloc(x,u) ((void)(u),malloc(x)) + #define STBTT_free(x,u) ((void)(u),free(x)) + #endif + + #ifndef STBTT_assert + #include + #define STBTT_assert(x) assert(x) + #endif + + #ifndef STBTT_strlen + #include + #define STBTT_strlen(x) strlen(x) + #endif + + #ifndef STBTT_memcpy + #include + #define STBTT_memcpy memcpy + #define STBTT_memset memset + #endif +#endif + +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +//// +//// INTERFACE +//// +//// + +#ifndef __STB_INCLUDE_STB_TRUETYPE_H__ +#define __STB_INCLUDE_STB_TRUETYPE_H__ + +#ifdef STBTT_STATIC +#define STBTT_DEF static +#else +#define STBTT_DEF extern +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// TEXTURE BAKING API +// +// If you use this API, you only have to call two functions ever. +// + +typedef struct +{ + unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap + float xoff,yoff,xadvance; +} stbtt_bakedchar; + +STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) + float pixel_height, // height of font in pixels + unsigned char *pixels, int pw, int ph, // bitmap to be filled in + int first_char, int num_chars, // characters to bake + stbtt_bakedchar *chardata); // you allocate this, it's num_chars long +// if return is positive, the first unused row of the bitmap +// if return is negative, returns the negative of the number of characters that fit +// if return is 0, no characters fit and no rows were used +// This uses a very crappy packing. + +typedef struct +{ + float x0,y0,s0,t0; // top-left + float x1,y1,s1,t1; // bottom-right +} stbtt_aligned_quad; + +STBTT_DEF void stbtt_GetBakedQuad(stbtt_bakedchar *chardata, int pw, int ph, // same data as above + int char_index, // character to display + float *xpos, float *ypos, // pointers to current position in screen pixel space + stbtt_aligned_quad *q, // output: quad to draw + int opengl_fillrule); // true if opengl fill rule; false if DX9 or earlier +// Call GetBakedQuad with char_index = 'character - first_char', and it +// creates the quad you need to draw and advances the current position. +// +// The coordinate system used assumes y increases downwards. +// +// Characters will extend both above and below the current position; +// see discussion of "BASELINE" above. +// +// It's inefficient; you might want to c&p it and optimize it. + + + +////////////////////////////////////////////////////////////////////////////// +// +// NEW TEXTURE BAKING API +// +// This provides options for packing multiple fonts into one atlas, not +// perfectly but better than nothing. + +typedef struct +{ + unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap + float xoff,yoff,xadvance; + float xoff2,yoff2; +} stbtt_packedchar; + +typedef struct stbtt_pack_context stbtt_pack_context; +typedef struct stbtt_fontinfo stbtt_fontinfo; +#ifndef STB_RECT_PACK_VERSION +typedef struct stbrp_rect stbrp_rect; +#endif + +STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, int width, int height, int stride_in_bytes, int padding, void *alloc_context); +// Initializes a packing context stored in the passed-in stbtt_pack_context. +// Future calls using this context will pack characters into the bitmap passed +// in here: a 1-channel bitmap that is weight x height. stride_in_bytes is +// the distance from one row to the next (or 0 to mean they are packed tightly +// together). "padding" is the amount of padding to leave between each +// character (normally you want '1' for bitmaps you'll use as textures with +// bilinear filtering). +// +// Returns 0 on failure, 1 on success. + +STBTT_DEF void stbtt_PackEnd (stbtt_pack_context *spc); +// Cleans up the packing context and frees all memory. + +#define STBTT_POINT_SIZE(x) (-(x)) + +STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, float font_size, + int first_unicode_char_in_range, int num_chars_in_range, stbtt_packedchar *chardata_for_range); +// Creates character bitmaps from the font_index'th font found in fontdata (use +// font_index=0 if you don't know what that is). It creates num_chars_in_range +// bitmaps for characters with unicode values starting at first_unicode_char_in_range +// and increasing. Data for how to render them is stored in chardata_for_range; +// pass these to stbtt_GetPackedQuad to get back renderable quads. +// +// font_size is the full height of the character from ascender to descender, +// as computed by stbtt_ScaleForPixelHeight. To use a point size as computed +// by stbtt_ScaleForMappingEmToPixels, wrap the point size in STBTT_POINT_SIZE() +// and pass that result as 'font_size': +// ..., 20 , ... // font max minus min y is 20 pixels tall +// ..., STBTT_POINT_SIZE(20), ... // 'M' is 20 pixels tall + +typedef struct +{ + float font_size; + int first_unicode_codepoint_in_range; // if non-zero, then the chars are continuous, and this is the first codepoint + int *array_of_unicode_codepoints; // if non-zero, then this is an array of unicode codepoints + int num_chars; + stbtt_packedchar *chardata_for_range; // output + unsigned char h_oversample, v_oversample; // don't set these, they're used internally +} stbtt_pack_range; + +STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, stbtt_pack_range *ranges, int num_ranges); +// Creates character bitmaps from multiple ranges of characters stored in +// ranges. This will usually create a better-packed bitmap than multiple +// calls to stbtt_PackFontRange. Note that you can call this multiple +// times within a single PackBegin/PackEnd. + +STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample); +// Oversampling a font increases the quality by allowing higher-quality subpixel +// positioning, and is especially valuable at smaller text sizes. +// +// This function sets the amount of oversampling for all following calls to +// stbtt_PackFontRange(s) or stbtt_PackFontRangesGatherRects for a given +// pack context. The default (no oversampling) is achieved by h_oversample=1 +// and v_oversample=1. The total number of pixels required is +// h_oversample*v_oversample larger than the default; for example, 2x2 +// oversampling requires 4x the storage of 1x1. For best results, render +// oversampled textures with bilinear filtering. Look at the readme in +// stb/tests/oversample for information about oversampled fonts +// +// To use with PackFontRangesGather etc., you must set it before calls +// call to PackFontRangesGatherRects. + +STBTT_DEF void stbtt_GetPackedQuad(stbtt_packedchar *chardata, int pw, int ph, // same data as above + int char_index, // character to display + float *xpos, float *ypos, // pointers to current position in screen pixel space + stbtt_aligned_quad *q, // output: quad to draw + int align_to_integer); + +STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); +STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, stbrp_rect *rects, int num_rects); +STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); +// Calling these functions in sequence is roughly equivalent to calling +// stbtt_PackFontRanges(). If you more control over the packing of multiple +// fonts, or if you want to pack custom data into a font texture, take a look +// at the source to of stbtt_PackFontRanges() and create a custom version +// using these functions, e.g. call GatherRects multiple times, +// building up a single array of rects, then call PackRects once, +// then call RenderIntoRects repeatedly. This may result in a +// better packing than calling PackFontRanges multiple times +// (or it may not). + +// this is an opaque structure that you shouldn't mess with which holds +// all the context needed from PackBegin to PackEnd. +struct stbtt_pack_context { + void *user_allocator_context; + void *pack_info; + int width; + int height; + int stride_in_bytes; + int padding; + unsigned int h_oversample, v_oversample; + unsigned char *pixels; + void *nodes; +}; + +////////////////////////////////////////////////////////////////////////////// +// +// FONT LOADING +// +// + +STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *data, int index); +// Each .ttf/.ttc file may have more than one font. Each font has a sequential +// index number starting from 0. Call this function to get the font offset for +// a given index; it returns -1 if the index is out of range. A regular .ttf +// file will only define one font and it always be at offset 0, so it will +// return '0' for index 0, and -1 for all other indices. You can just skip +// this step if you know it's that kind of font. + + +// The following structure is defined publically so you can declare one on +// the stack or as a global or etc, but you should treat it as opaque. +typedef struct stbtt_fontinfo +{ + void * userdata; + unsigned char * data; // pointer to .ttf file + int fontstart; // offset of start of font + + int numGlyphs; // number of glyphs, needed for range checking + + int loca,head,glyf,hhea,hmtx,kern; // table locations as offset from start of .ttf + int index_map; // a cmap mapping for our chosen character encoding + int indexToLocFormat; // format needed to map from glyph index to glyph +} stbtt_fontinfo; + +STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *data, int offset); +// Given an offset into the file that defines a font, this function builds +// the necessary cached info for the rest of the system. You must allocate +// the stbtt_fontinfo yourself, and stbtt_InitFont will fill it out. You don't +// need to do anything special to free it, because the contents are pure +// value data with no additional data structures. Returns 0 on failure. + + +////////////////////////////////////////////////////////////////////////////// +// +// CHARACTER TO GLYPH-INDEX CONVERSIOn + +STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint); +// If you're going to perform multiple operations on the same character +// and you want a speed-up, call this function with the character you're +// going to process, then use glyph-based functions instead of the +// codepoint-based functions. + + +////////////////////////////////////////////////////////////////////////////// +// +// CHARACTER PROPERTIES +// + +STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, float pixels); +// computes a scale factor to produce a font whose "height" is 'pixels' tall. +// Height is measured as the distance from the highest ascender to the lowest +// descender; in other words, it's equivalent to calling stbtt_GetFontVMetrics +// and computing: +// scale = pixels / (ascent - descent) +// so if you prefer to measure height by the ascent only, use a similar calculation. + +STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *info, float pixels); +// computes a scale factor to produce a font whose EM size is mapped to +// 'pixels' tall. This is probably what traditional APIs compute, but +// I'm not positive. + +STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *ascent, int *descent, int *lineGap); +// ascent is the coordinate above the baseline the font extends; descent +// is the coordinate below the baseline the font extends (i.e. it is typically negative) +// lineGap is the spacing between one row's descent and the next row's ascent... +// so you should advance the vertical position by "*ascent - *descent + *lineGap" +// these are expressed in unscaled coordinates, so you must multiply by +// the scale factor for a given size + +STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int *x0, int *y0, int *x1, int *y1); +// the bounding box around all possible characters + +STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint, int *advanceWidth, int *leftSideBearing); +// leftSideBearing is the offset from the current horizontal position to the left edge of the character +// advanceWidth is the offset from the current horizontal position to the next horizontal position +// these are expressed in unscaled coordinates + +STBTT_DEF int stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2); +// an additional amount to add to the 'advance' value between ch1 and ch2 + +STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1); +// Gets the bounding box of the visible part of the glyph, in unscaled coordinates + +STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int glyph_index, int *advanceWidth, int *leftSideBearing); +STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2); +STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1); +// as above, but takes one or more glyph indices for greater efficiency + + +////////////////////////////////////////////////////////////////////////////// +// +// GLYPH SHAPES (you probably don't need these, but they have to go before +// the bitmaps for C declaration-order reasons) +// + +#ifndef STBTT_vmove // you can predefine these to use different values (but why?) + enum { + STBTT_vmove=1, + STBTT_vline, + STBTT_vcurve + }; +#endif + +#ifndef stbtt_vertex // you can predefine this to use different values + // (we share this with other code at RAD) + #define stbtt_vertex_type short // can't use stbtt_int16 because that's not visible in the header file + typedef struct + { + stbtt_vertex_type x,y,cx,cy; + unsigned char type,padding; + } stbtt_vertex; +#endif + +STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_index); +// returns non-zero if nothing is drawn for this glyph + +STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codepoint, stbtt_vertex **vertices); +STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **vertices); +// returns # of vertices and fills *vertices with the pointer to them +// these are expressed in "unscaled" coordinates +// +// The shape is a series of countours. Each one starts with +// a STBTT_moveto, then consists of a series of mixed +// STBTT_lineto and STBTT_curveto segments. A lineto +// draws a line from previous endpoint to its x,y; a curveto +// draws a quadratic bezier from previous endpoint to +// its x,y, using cx,cy as the bezier control point. + +STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *vertices); +// frees the data allocated above + +////////////////////////////////////////////////////////////////////////////// +// +// BITMAP RENDERING +// + +STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata); +// frees the bitmap allocated below + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff); +// allocates a large-enough single-channel 8bpp bitmap and renders the +// specified character/glyph at the specified scale into it, with +// antialiasing. 0 is no coverage (transparent), 255 is fully covered (opaque). +// *width & *height are filled out with the width & height of the bitmap, +// which is stored left-to-right, top-to-bottom. +// +// xoff/yoff are the offset it pixel space from the glyph origin to the top-left of the bitmap + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff); +// the same as stbtt_GetCodepoitnBitmap, but you can specify a subpixel +// shift for the character + +STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint); +// the same as stbtt_GetCodepointBitmap, but you pass in storage for the bitmap +// in the form of 'output', with row spacing of 'out_stride' bytes. the bitmap +// is clipped to out_w/out_h bytes. Call stbtt_GetCodepointBitmapBox to get the +// width and height and positioning info for it first. + +STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint); +// same as stbtt_MakeCodepointBitmap, but you can specify a subpixel +// shift for the character + +STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1); +// get the bbox of the bitmap centered around the glyph origin; so the +// bitmap width is ix1-ix0, height is iy1-iy0, and location to place +// the bitmap top left is (leftSideBearing*scale,iy0). +// (Note that the bitmap uses y-increases-down, but the shape uses +// y-increases-up, so CodepointBitmapBox and CodepointBox are inverted.) + +STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1); +// same as stbtt_GetCodepointBitmapBox, but you can specify a subpixel +// shift for the character + +// the following functions are equivalent to the above functions, but operate +// on glyph indices instead of Unicode codepoints (for efficiency) +STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff); +STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int glyph, int *width, int *height, int *xoff, int *yoff); +STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int glyph); +STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int glyph); +STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1); +STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y,float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1); + + +// @TODO: don't expose this structure +typedef struct +{ + int w,h,stride; + unsigned char *pixels; +} stbtt__bitmap; + +STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, float flatness_in_pixels, stbtt_vertex *vertices, int num_verts, float scale_x, float scale_y, float shift_x, float shift_y, int x_off, int y_off, int invert, void *userdata); + +////////////////////////////////////////////////////////////////////////////// +// +// Finding the right font... +// +// You should really just solve this offline, keep your own tables +// of what font is what, and don't try to get it out of the .ttf file. +// That's because getting it out of the .ttf file is really hard, because +// the names in the file can appear in many possible encodings, in many +// possible languages, and e.g. if you need a case-insensitive comparison, +// the details of that depend on the encoding & language in a complex way +// (actually underspecified in truetype, but also gigantic). +// +// But you can use the provided functions in two possible ways: +// stbtt_FindMatchingFont() will use *case-sensitive* comparisons on +// unicode-encoded names to try to find the font you want; +// you can run this before calling stbtt_InitFont() +// +// stbtt_GetFontNameString() lets you get any of the various strings +// from the file yourself and do your own comparisons on them. +// You have to have called stbtt_InitFont() first. + + +STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *fontdata, const char *name, int flags); +// returns the offset (not index) of the font that matches, or -1 if none +// if you use STBTT_MACSTYLE_DONTCARE, use a font name like "Arial Bold". +// if you use any other flag, use a font name like "Arial"; this checks +// the 'macStyle' header field; i don't know if fonts set this consistently +#define STBTT_MACSTYLE_DONTCARE 0 +#define STBTT_MACSTYLE_BOLD 1 +#define STBTT_MACSTYLE_ITALIC 2 +#define STBTT_MACSTYLE_UNDERSCORE 4 +#define STBTT_MACSTYLE_NONE 8 // <= not same as 0, this makes us check the bitfield is 0 + +STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2); +// returns 1/0 whether the first string interpreted as utf8 is identical to +// the second string interpreted as big-endian utf16... useful for strings from next func + +STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font, int *length, int platformID, int encodingID, int languageID, int nameID); +// returns the string (which may be big-endian double byte, e.g. for unicode) +// and puts the length in bytes in *length. +// +// some of the values for the IDs are below; for more see the truetype spec: +// http://developer.apple.com/textfonts/TTRefMan/RM06/Chap6name.html +// http://www.microsoft.com/typography/otspec/name.htm + +enum { // platformID + STBTT_PLATFORM_ID_UNICODE =0, + STBTT_PLATFORM_ID_MAC =1, + STBTT_PLATFORM_ID_ISO =2, + STBTT_PLATFORM_ID_MICROSOFT =3 +}; + +enum { // encodingID for STBTT_PLATFORM_ID_UNICODE + STBTT_UNICODE_EID_UNICODE_1_0 =0, + STBTT_UNICODE_EID_UNICODE_1_1 =1, + STBTT_UNICODE_EID_ISO_10646 =2, + STBTT_UNICODE_EID_UNICODE_2_0_BMP=3, + STBTT_UNICODE_EID_UNICODE_2_0_FULL=4 +}; + +enum { // encodingID for STBTT_PLATFORM_ID_MICROSOFT + STBTT_MS_EID_SYMBOL =0, + STBTT_MS_EID_UNICODE_BMP =1, + STBTT_MS_EID_SHIFTJIS =2, + STBTT_MS_EID_UNICODE_FULL =10 +}; + +enum { // encodingID for STBTT_PLATFORM_ID_MAC; same as Script Manager codes + STBTT_MAC_EID_ROMAN =0, STBTT_MAC_EID_ARABIC =4, + STBTT_MAC_EID_JAPANESE =1, STBTT_MAC_EID_HEBREW =5, + STBTT_MAC_EID_CHINESE_TRAD =2, STBTT_MAC_EID_GREEK =6, + STBTT_MAC_EID_KOREAN =3, STBTT_MAC_EID_RUSSIAN =7 +}; + +enum { // languageID for STBTT_PLATFORM_ID_MICROSOFT; same as LCID... + // problematic because there are e.g. 16 english LCIDs and 16 arabic LCIDs + STBTT_MS_LANG_ENGLISH =0x0409, STBTT_MS_LANG_ITALIAN =0x0410, + STBTT_MS_LANG_CHINESE =0x0804, STBTT_MS_LANG_JAPANESE =0x0411, + STBTT_MS_LANG_DUTCH =0x0413, STBTT_MS_LANG_KOREAN =0x0412, + STBTT_MS_LANG_FRENCH =0x040c, STBTT_MS_LANG_RUSSIAN =0x0419, + STBTT_MS_LANG_GERMAN =0x0407, STBTT_MS_LANG_SPANISH =0x0409, + STBTT_MS_LANG_HEBREW =0x040d, STBTT_MS_LANG_SWEDISH =0x041D +}; + +enum { // languageID for STBTT_PLATFORM_ID_MAC + STBTT_MAC_LANG_ENGLISH =0 , STBTT_MAC_LANG_JAPANESE =11, + STBTT_MAC_LANG_ARABIC =12, STBTT_MAC_LANG_KOREAN =23, + STBTT_MAC_LANG_DUTCH =4 , STBTT_MAC_LANG_RUSSIAN =32, + STBTT_MAC_LANG_FRENCH =1 , STBTT_MAC_LANG_SPANISH =6 , + STBTT_MAC_LANG_GERMAN =2 , STBTT_MAC_LANG_SWEDISH =5 , + STBTT_MAC_LANG_HEBREW =10, STBTT_MAC_LANG_CHINESE_SIMPLIFIED =33, + STBTT_MAC_LANG_ITALIAN =3 , STBTT_MAC_LANG_CHINESE_TRAD =19 +}; + +#ifdef __cplusplus +} +#endif + +#endif // __STB_INCLUDE_STB_TRUETYPE_H__ + +/////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// +//// +//// IMPLEMENTATION +//// +//// + +#ifdef STB_TRUETYPE_IMPLEMENTATION + +#ifndef STBTT_MAX_OVERSAMPLE +#define STBTT_MAX_OVERSAMPLE 8 +#endif + +#if STBTT_MAX_OVERSAMPLE > 255 +#error "STBTT_MAX_OVERSAMPLE cannot be > 255" +#endif + +typedef int stbtt__test_oversample_pow2[(STBTT_MAX_OVERSAMPLE & (STBTT_MAX_OVERSAMPLE-1)) == 0 ? 1 : -1]; + +#ifndef STBTT_RASTERIZER_VERSION +#define STBTT_RASTERIZER_VERSION 2 +#endif + +////////////////////////////////////////////////////////////////////////// +// +// accessors to parse data from file +// + +// on platforms that don't allow misaligned reads, if we want to allow +// truetype fonts that aren't padded to alignment, define ALLOW_UNALIGNED_TRUETYPE + +#define ttBYTE(p) (* (stbtt_uint8 *) (p)) +#define ttCHAR(p) (* (stbtt_int8 *) (p)) +#define ttFixed(p) ttLONG(p) + +#if defined(STB_TRUETYPE_BIGENDIAN) && !defined(ALLOW_UNALIGNED_TRUETYPE) + + #define ttUSHORT(p) (* (stbtt_uint16 *) (p)) + #define ttSHORT(p) (* (stbtt_int16 *) (p)) + #define ttULONG(p) (* (stbtt_uint32 *) (p)) + #define ttLONG(p) (* (stbtt_int32 *) (p)) + +#else + + static stbtt_uint16 ttUSHORT(const stbtt_uint8 *p) { return p[0]*256 + p[1]; } + static stbtt_int16 ttSHORT(const stbtt_uint8 *p) { return p[0]*256 + p[1]; } + static stbtt_uint32 ttULONG(const stbtt_uint8 *p) { return (p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]; } + static stbtt_int32 ttLONG(const stbtt_uint8 *p) { return (p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]; } + +#endif + +#define stbtt_tag4(p,c0,c1,c2,c3) ((p)[0] == (c0) && (p)[1] == (c1) && (p)[2] == (c2) && (p)[3] == (c3)) +#define stbtt_tag(p,str) stbtt_tag4(p,str[0],str[1],str[2],str[3]) + +static int stbtt__isfont(const stbtt_uint8 *font) +{ + // check the version number + if (stbtt_tag4(font, '1',0,0,0)) return 1; // TrueType 1 + if (stbtt_tag(font, "typ1")) return 1; // TrueType with type 1 font -- we don't support this! + if (stbtt_tag(font, "OTTO")) return 1; // OpenType with CFF + if (stbtt_tag4(font, 0,1,0,0)) return 1; // OpenType 1.0 + return 0; +} + +// @OPTIMIZE: binary search +static stbtt_uint32 stbtt__find_table(stbtt_uint8 *data, stbtt_uint32 fontstart, const char *tag) +{ + stbtt_int32 num_tables = ttUSHORT(data+fontstart+4); + stbtt_uint32 tabledir = fontstart + 12; + stbtt_int32 i; + for (i=0; i < num_tables; ++i) { + stbtt_uint32 loc = tabledir + 16*i; + if (stbtt_tag(data+loc+0, tag)) + return ttULONG(data+loc+8); + } + return 0; +} + +STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *font_collection, int index) +{ + // if it's just a font, there's only one valid index + if (stbtt__isfont(font_collection)) + return index == 0 ? 0 : -1; + + // check if it's a TTC + if (stbtt_tag(font_collection, "ttcf")) { + // version 1? + if (ttULONG(font_collection+4) == 0x00010000 || ttULONG(font_collection+4) == 0x00020000) { + stbtt_int32 n = ttLONG(font_collection+8); + if (index >= n) + return -1; + return ttULONG(font_collection+12+index*4); + } + } + return -1; +} + +STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *data2, int fontstart) +{ + stbtt_uint8 *data = (stbtt_uint8 *) data2; + stbtt_uint32 cmap, t; + stbtt_int32 i,numTables; + + info->data = data; + info->fontstart = fontstart; + + cmap = stbtt__find_table(data, fontstart, "cmap"); // required + info->loca = stbtt__find_table(data, fontstart, "loca"); // required + info->head = stbtt__find_table(data, fontstart, "head"); // required + info->glyf = stbtt__find_table(data, fontstart, "glyf"); // required + info->hhea = stbtt__find_table(data, fontstart, "hhea"); // required + info->hmtx = stbtt__find_table(data, fontstart, "hmtx"); // required + info->kern = stbtt__find_table(data, fontstart, "kern"); // not required + if (!cmap || !info->loca || !info->head || !info->glyf || !info->hhea || !info->hmtx) + return 0; + + t = stbtt__find_table(data, fontstart, "maxp"); + if (t) + info->numGlyphs = ttUSHORT(data+t+4); + else + info->numGlyphs = 0xffff; + + // find a cmap encoding table we understand *now* to avoid searching + // later. (todo: could make this installable) + // the same regardless of glyph. + numTables = ttUSHORT(data + cmap + 2); + info->index_map = 0; + for (i=0; i < numTables; ++i) { + stbtt_uint32 encoding_record = cmap + 4 + 8 * i; + // find an encoding we understand: + switch(ttUSHORT(data+encoding_record)) { + case STBTT_PLATFORM_ID_MICROSOFT: + switch (ttUSHORT(data+encoding_record+2)) { + case STBTT_MS_EID_UNICODE_BMP: + case STBTT_MS_EID_UNICODE_FULL: + // MS/Unicode + info->index_map = cmap + ttULONG(data+encoding_record+4); + break; + } + break; + case STBTT_PLATFORM_ID_UNICODE: + // Mac/iOS has these + // all the encodingIDs are unicode, so we don't bother to check it + info->index_map = cmap + ttULONG(data+encoding_record+4); + break; + } + } + if (info->index_map == 0) + return 0; + + info->indexToLocFormat = ttUSHORT(data+info->head + 50); + return 1; +} + +STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint) +{ + stbtt_uint8 *data = info->data; + stbtt_uint32 index_map = info->index_map; + + stbtt_uint16 format = ttUSHORT(data + index_map + 0); + if (format == 0) { // apple byte encoding + stbtt_int32 bytes = ttUSHORT(data + index_map + 2); + if (unicode_codepoint < bytes-6) + return ttBYTE(data + index_map + 6 + unicode_codepoint); + return 0; + } else if (format == 6) { + stbtt_uint32 first = ttUSHORT(data + index_map + 6); + stbtt_uint32 count = ttUSHORT(data + index_map + 8); + if ((stbtt_uint32) unicode_codepoint >= first && (stbtt_uint32) unicode_codepoint < first+count) + return ttUSHORT(data + index_map + 10 + (unicode_codepoint - first)*2); + return 0; + } else if (format == 2) { + STBTT_assert(0); // @TODO: high-byte mapping for japanese/chinese/korean + return 0; + } else if (format == 4) { // standard mapping for windows fonts: binary search collection of ranges + stbtt_uint16 segcount = ttUSHORT(data+index_map+6) >> 1; + stbtt_uint16 searchRange = ttUSHORT(data+index_map+8) >> 1; + stbtt_uint16 entrySelector = ttUSHORT(data+index_map+10); + stbtt_uint16 rangeShift = ttUSHORT(data+index_map+12) >> 1; + + // do a binary search of the segments + stbtt_uint32 endCount = index_map + 14; + stbtt_uint32 search = endCount; + + if (unicode_codepoint > 0xffff) + return 0; + + // they lie from endCount .. endCount + segCount + // but searchRange is the nearest power of two, so... + if (unicode_codepoint >= ttUSHORT(data + search + rangeShift*2)) + search += rangeShift*2; + + // now decrement to bias correctly to find smallest + search -= 2; + while (entrySelector) { + stbtt_uint16 end; + searchRange >>= 1; + end = ttUSHORT(data + search + searchRange*2); + if (unicode_codepoint > end) + search += searchRange*2; + --entrySelector; + } + search += 2; + + { + stbtt_uint16 offset, start; + stbtt_uint16 item = (stbtt_uint16) ((search - endCount) >> 1); + + STBTT_assert(unicode_codepoint <= ttUSHORT(data + endCount + 2*item)); + start = ttUSHORT(data + index_map + 14 + segcount*2 + 2 + 2*item); + if (unicode_codepoint < start) + return 0; + + offset = ttUSHORT(data + index_map + 14 + segcount*6 + 2 + 2*item); + if (offset == 0) + return (stbtt_uint16) (unicode_codepoint + ttSHORT(data + index_map + 14 + segcount*4 + 2 + 2*item)); + + return ttUSHORT(data + offset + (unicode_codepoint-start)*2 + index_map + 14 + segcount*6 + 2 + 2*item); + } + } else if (format == 12 || format == 13) { + stbtt_uint32 ngroups = ttULONG(data+index_map+12); + stbtt_int32 low,high; + low = 0; high = (stbtt_int32)ngroups; + // Binary search the right group. + while (low < high) { + stbtt_int32 mid = low + ((high-low) >> 1); // rounds down, so low <= mid < high + stbtt_uint32 start_char = ttULONG(data+index_map+16+mid*12); + stbtt_uint32 end_char = ttULONG(data+index_map+16+mid*12+4); + if ((stbtt_uint32) unicode_codepoint < start_char) + high = mid; + else if ((stbtt_uint32) unicode_codepoint > end_char) + low = mid+1; + else { + stbtt_uint32 start_glyph = ttULONG(data+index_map+16+mid*12+8); + if (format == 12) + return start_glyph + unicode_codepoint-start_char; + else // format == 13 + return start_glyph; + } + } + return 0; // not found + } + // @TODO + STBTT_assert(0); + return 0; +} + +STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codepoint, stbtt_vertex **vertices) +{ + return stbtt_GetGlyphShape(info, stbtt_FindGlyphIndex(info, unicode_codepoint), vertices); +} + +static void stbtt_setvertex(stbtt_vertex *v, stbtt_uint8 type, stbtt_int32 x, stbtt_int32 y, stbtt_int32 cx, stbtt_int32 cy) +{ + v->type = type; + v->x = (stbtt_int16) x; + v->y = (stbtt_int16) y; + v->cx = (stbtt_int16) cx; + v->cy = (stbtt_int16) cy; +} + +static int stbtt__GetGlyfOffset(const stbtt_fontinfo *info, int glyph_index) +{ + int g1,g2; + + if (glyph_index >= info->numGlyphs) return -1; // glyph index out of range + if (info->indexToLocFormat >= 2) return -1; // unknown index->glyph map format + + if (info->indexToLocFormat == 0) { + g1 = info->glyf + ttUSHORT(info->data + info->loca + glyph_index * 2) * 2; + g2 = info->glyf + ttUSHORT(info->data + info->loca + glyph_index * 2 + 2) * 2; + } else { + g1 = info->glyf + ttULONG (info->data + info->loca + glyph_index * 4); + g2 = info->glyf + ttULONG (info->data + info->loca + glyph_index * 4 + 4); + } + + return g1==g2 ? -1 : g1; // if length is 0, return -1 +} + +STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1) +{ + int g = stbtt__GetGlyfOffset(info, glyph_index); + if (g < 0) return 0; + + if (x0) *x0 = ttSHORT(info->data + g + 2); + if (y0) *y0 = ttSHORT(info->data + g + 4); + if (x1) *x1 = ttSHORT(info->data + g + 6); + if (y1) *y1 = ttSHORT(info->data + g + 8); + return 1; +} + +STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1) +{ + return stbtt_GetGlyphBox(info, stbtt_FindGlyphIndex(info,codepoint), x0,y0,x1,y1); +} + +STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_index) +{ + stbtt_int16 numberOfContours; + int g = stbtt__GetGlyfOffset(info, glyph_index); + if (g < 0) return 1; + numberOfContours = ttSHORT(info->data + g); + return numberOfContours == 0; +} + +static int stbtt__close_shape(stbtt_vertex *vertices, int num_vertices, int was_off, int start_off, + stbtt_int32 sx, stbtt_int32 sy, stbtt_int32 scx, stbtt_int32 scy, stbtt_int32 cx, stbtt_int32 cy) +{ + if (start_off) { + if (was_off) + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, (cx+scx)>>1, (cy+scy)>>1, cx,cy); + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, sx,sy,scx,scy); + } else { + if (was_off) + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve,sx,sy,cx,cy); + else + stbtt_setvertex(&vertices[num_vertices++], STBTT_vline,sx,sy,0,0); + } + return num_vertices; +} + +STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **pvertices) +{ + stbtt_int16 numberOfContours; + stbtt_uint8 *endPtsOfContours; + stbtt_uint8 *data = info->data; + stbtt_vertex *vertices=0; + int num_vertices=0; + int g = stbtt__GetGlyfOffset(info, glyph_index); + + *pvertices = NULL; + + if (g < 0) return 0; + + numberOfContours = ttSHORT(data + g); + + if (numberOfContours > 0) { + stbtt_uint8 flags=0,flagcount; + stbtt_int32 ins, i,j=0,m,n, next_move, was_off=0, off, start_off=0; + stbtt_int32 x,y,cx,cy,sx,sy, scx,scy; + stbtt_uint8 *points; + endPtsOfContours = (data + g + 10); + ins = ttUSHORT(data + g + 10 + numberOfContours * 2); + points = data + g + 10 + numberOfContours * 2 + 2 + ins; + + n = 1+ttUSHORT(endPtsOfContours + numberOfContours*2-2); + + m = n + 2*numberOfContours; // a loose bound on how many vertices we might need + vertices = (stbtt_vertex *) STBTT_malloc(m * sizeof(vertices[0]), info->userdata); + if (vertices == 0) + return 0; + + next_move = 0; + flagcount=0; + + // in first pass, we load uninterpreted data into the allocated array + // above, shifted to the end of the array so we won't overwrite it when + // we create our final data starting from the front + + off = m - n; // starting offset for uninterpreted data, regardless of how m ends up being calculated + + // first load flags + + for (i=0; i < n; ++i) { + if (flagcount == 0) { + flags = *points++; + if (flags & 8) + flagcount = *points++; + } else + --flagcount; + vertices[off+i].type = flags; + } + + // now load x coordinates + x=0; + for (i=0; i < n; ++i) { + flags = vertices[off+i].type; + if (flags & 2) { + stbtt_int16 dx = *points++; + x += (flags & 16) ? dx : -dx; // ??? + } else { + if (!(flags & 16)) { + x = x + (stbtt_int16) (points[0]*256 + points[1]); + points += 2; + } + } + vertices[off+i].x = (stbtt_int16) x; + } + + // now load y coordinates + y=0; + for (i=0; i < n; ++i) { + flags = vertices[off+i].type; + if (flags & 4) { + stbtt_int16 dy = *points++; + y += (flags & 32) ? dy : -dy; // ??? + } else { + if (!(flags & 32)) { + y = y + (stbtt_int16) (points[0]*256 + points[1]); + points += 2; + } + } + vertices[off+i].y = (stbtt_int16) y; + } + + // now convert them to our format + num_vertices=0; + sx = sy = cx = cy = scx = scy = 0; + for (i=0; i < n; ++i) { + flags = vertices[off+i].type; + x = (stbtt_int16) vertices[off+i].x; + y = (stbtt_int16) vertices[off+i].y; + + if (next_move == i) { + if (i != 0) + num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); + + // now start the new one + start_off = !(flags & 1); + if (start_off) { + // if we start off with an off-curve point, then when we need to find a point on the curve + // where we can start, and we need to save some state for when we wraparound. + scx = x; + scy = y; + if (!(vertices[off+i+1].type & 1)) { + // next point is also a curve point, so interpolate an on-point curve + sx = (x + (stbtt_int32) vertices[off+i+1].x) >> 1; + sy = (y + (stbtt_int32) vertices[off+i+1].y) >> 1; + } else { + // otherwise just use the next point as our start point + sx = (stbtt_int32) vertices[off+i+1].x; + sy = (stbtt_int32) vertices[off+i+1].y; + ++i; // we're using point i+1 as the starting point, so skip it + } + } else { + sx = x; + sy = y; + } + stbtt_setvertex(&vertices[num_vertices++], STBTT_vmove,sx,sy,0,0); + was_off = 0; + next_move = 1 + ttUSHORT(endPtsOfContours+j*2); + ++j; + } else { + if (!(flags & 1)) { // if it's a curve + if (was_off) // two off-curve control points in a row means interpolate an on-curve midpoint + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, (cx+x)>>1, (cy+y)>>1, cx, cy); + cx = x; + cy = y; + was_off = 1; + } else { + if (was_off) + stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, x,y, cx, cy); + else + stbtt_setvertex(&vertices[num_vertices++], STBTT_vline, x,y,0,0); + was_off = 0; + } + } + } + num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); + } else if (numberOfContours == -1) { + // Compound shapes. + int more = 1; + stbtt_uint8 *comp = data + g + 10; + num_vertices = 0; + vertices = 0; + while (more) { + stbtt_uint16 flags, gidx; + int comp_num_verts = 0, i; + stbtt_vertex *comp_verts = 0, *tmp = 0; + float mtx[6] = {1,0,0,1,0,0}, m, n; + + flags = ttSHORT(comp); comp+=2; + gidx = ttSHORT(comp); comp+=2; + + if (flags & 2) { // XY values + if (flags & 1) { // shorts + mtx[4] = ttSHORT(comp); comp+=2; + mtx[5] = ttSHORT(comp); comp+=2; + } else { + mtx[4] = ttCHAR(comp); comp+=1; + mtx[5] = ttCHAR(comp); comp+=1; + } + } + else { + // @TODO handle matching point + STBTT_assert(0); + } + if (flags & (1<<3)) { // WE_HAVE_A_SCALE + mtx[0] = mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[1] = mtx[2] = 0; + } else if (flags & (1<<6)) { // WE_HAVE_AN_X_AND_YSCALE + mtx[0] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[1] = mtx[2] = 0; + mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; + } else if (flags & (1<<7)) { // WE_HAVE_A_TWO_BY_TWO + mtx[0] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[1] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[2] = ttSHORT(comp)/16384.0f; comp+=2; + mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; + } + + // Find transformation scales. + m = (float) STBTT_sqrt(mtx[0]*mtx[0] + mtx[1]*mtx[1]); + n = (float) STBTT_sqrt(mtx[2]*mtx[2] + mtx[3]*mtx[3]); + + // Get indexed glyph. + comp_num_verts = stbtt_GetGlyphShape(info, gidx, &comp_verts); + if (comp_num_verts > 0) { + // Transform vertices. + for (i = 0; i < comp_num_verts; ++i) { + stbtt_vertex* v = &comp_verts[i]; + stbtt_vertex_type x,y; + x=v->x; y=v->y; + v->x = (stbtt_vertex_type)(m * (mtx[0]*x + mtx[2]*y + mtx[4])); + v->y = (stbtt_vertex_type)(n * (mtx[1]*x + mtx[3]*y + mtx[5])); + x=v->cx; y=v->cy; + v->cx = (stbtt_vertex_type)(m * (mtx[0]*x + mtx[2]*y + mtx[4])); + v->cy = (stbtt_vertex_type)(n * (mtx[1]*x + mtx[3]*y + mtx[5])); + } + // Append vertices. + tmp = (stbtt_vertex*)STBTT_malloc((num_vertices+comp_num_verts)*sizeof(stbtt_vertex), info->userdata); + if (!tmp) { + if (vertices) STBTT_free(vertices, info->userdata); + if (comp_verts) STBTT_free(comp_verts, info->userdata); + return 0; + } + if (num_vertices > 0) STBTT_memcpy(tmp, vertices, num_vertices*sizeof(stbtt_vertex)); + STBTT_memcpy(tmp+num_vertices, comp_verts, comp_num_verts*sizeof(stbtt_vertex)); + if (vertices) STBTT_free(vertices, info->userdata); + vertices = tmp; + STBTT_free(comp_verts, info->userdata); + num_vertices += comp_num_verts; + } + // More components ? + more = flags & (1<<5); + } + } else if (numberOfContours < 0) { + // @TODO other compound variations? + STBTT_assert(0); + } else { + // numberOfCounters == 0, do nothing + } + + *pvertices = vertices; + return num_vertices; +} + +STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int glyph_index, int *advanceWidth, int *leftSideBearing) +{ + stbtt_uint16 numOfLongHorMetrics = ttUSHORT(info->data+info->hhea + 34); + if (glyph_index < numOfLongHorMetrics) { + if (advanceWidth) *advanceWidth = ttSHORT(info->data + info->hmtx + 4*glyph_index); + if (leftSideBearing) *leftSideBearing = ttSHORT(info->data + info->hmtx + 4*glyph_index + 2); + } else { + if (advanceWidth) *advanceWidth = ttSHORT(info->data + info->hmtx + 4*(numOfLongHorMetrics-1)); + if (leftSideBearing) *leftSideBearing = ttSHORT(info->data + info->hmtx + 4*numOfLongHorMetrics + 2*(glyph_index - numOfLongHorMetrics)); + } +} + +STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2) +{ + stbtt_uint8 *data = info->data + info->kern; + stbtt_uint32 needle, straw; + int l, r, m; + + // we only look at the first table. it must be 'horizontal' and format 0. + if (!info->kern) + return 0; + if (ttUSHORT(data+2) < 1) // number of tables, need at least 1 + return 0; + if (ttUSHORT(data+8) != 1) // horizontal flag must be set in format + return 0; + + l = 0; + r = ttUSHORT(data+10) - 1; + needle = glyph1 << 16 | glyph2; + while (l <= r) { + m = (l + r) >> 1; + straw = ttULONG(data+18+(m*6)); // note: unaligned read + if (needle < straw) + r = m - 1; + else if (needle > straw) + l = m + 1; + else + return ttSHORT(data+22+(m*6)); + } + return 0; +} + +STBTT_DEF int stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2) +{ + if (!info->kern) // if no kerning table, don't waste time looking up both codepoint->glyphs + return 0; + return stbtt_GetGlyphKernAdvance(info, stbtt_FindGlyphIndex(info,ch1), stbtt_FindGlyphIndex(info,ch2)); +} + +STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint, int *advanceWidth, int *leftSideBearing) +{ + stbtt_GetGlyphHMetrics(info, stbtt_FindGlyphIndex(info,codepoint), advanceWidth, leftSideBearing); +} + +STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *ascent, int *descent, int *lineGap) +{ + if (ascent ) *ascent = ttSHORT(info->data+info->hhea + 4); + if (descent) *descent = ttSHORT(info->data+info->hhea + 6); + if (lineGap) *lineGap = ttSHORT(info->data+info->hhea + 8); +} + +STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int *x0, int *y0, int *x1, int *y1) +{ + *x0 = ttSHORT(info->data + info->head + 36); + *y0 = ttSHORT(info->data + info->head + 38); + *x1 = ttSHORT(info->data + info->head + 40); + *y1 = ttSHORT(info->data + info->head + 42); +} + +STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, float height) +{ + int fheight = ttSHORT(info->data + info->hhea + 4) - ttSHORT(info->data + info->hhea + 6); + return (float) height / fheight; +} + +STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *info, float pixels) +{ + int unitsPerEm = ttUSHORT(info->data + info->head + 18); + return pixels / unitsPerEm; +} + +STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *v) +{ + STBTT_free(v, info->userdata); +} + +////////////////////////////////////////////////////////////////////////////// +// +// antialiasing software rasterizer +// + +STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y,float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + int x0,y0,x1,y1; + if (!stbtt_GetGlyphBox(font, glyph, &x0,&y0,&x1,&y1)) { + // e.g. space character + if (ix0) *ix0 = 0; + if (iy0) *iy0 = 0; + if (ix1) *ix1 = 0; + if (iy1) *iy1 = 0; + } else { + // move to integral bboxes (treating pixels as little squares, what pixels get touched)? + if (ix0) *ix0 = STBTT_ifloor( x0 * scale_x + shift_x); + if (iy0) *iy0 = STBTT_ifloor(-y1 * scale_y + shift_y); + if (ix1) *ix1 = STBTT_iceil ( x1 * scale_x + shift_x); + if (iy1) *iy1 = STBTT_iceil (-y0 * scale_y + shift_y); + } +} + +STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + stbtt_GetGlyphBitmapBoxSubpixel(font, glyph, scale_x, scale_y,0.0f,0.0f, ix0, iy0, ix1, iy1); +} + +STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + stbtt_GetGlyphBitmapBoxSubpixel(font, stbtt_FindGlyphIndex(font,codepoint), scale_x, scale_y,shift_x,shift_y, ix0,iy0,ix1,iy1); +} + +STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1) +{ + stbtt_GetCodepointBitmapBoxSubpixel(font, codepoint, scale_x, scale_y,0.0f,0.0f, ix0,iy0,ix1,iy1); +} + +////////////////////////////////////////////////////////////////////////////// +// +// Rasterizer + +typedef struct stbtt__hheap_chunk +{ + struct stbtt__hheap_chunk *next; +} stbtt__hheap_chunk; + +typedef struct stbtt__hheap +{ + struct stbtt__hheap_chunk *head; + void *first_free; + int num_remaining_in_head_chunk; +} stbtt__hheap; + +static void *stbtt__hheap_alloc(stbtt__hheap *hh, size_t size, void *userdata) +{ + if (hh->first_free) { + void *p = hh->first_free; + hh->first_free = * (void **) p; + return p; + } else { + if (hh->num_remaining_in_head_chunk == 0) { + int count = (size < 32 ? 2000 : size < 128 ? 800 : 100); + stbtt__hheap_chunk *c = (stbtt__hheap_chunk *) STBTT_malloc(sizeof(stbtt__hheap_chunk) + size * count, userdata); + if (c == NULL) + return NULL; + c->next = hh->head; + hh->head = c; + hh->num_remaining_in_head_chunk = count; + } + --hh->num_remaining_in_head_chunk; + return (char *) (hh->head) + size * hh->num_remaining_in_head_chunk; + } +} + +static void stbtt__hheap_free(stbtt__hheap *hh, void *p) +{ + *(void **) p = hh->first_free; + hh->first_free = p; +} + +static void stbtt__hheap_cleanup(stbtt__hheap *hh, void *userdata) +{ + stbtt__hheap_chunk *c = hh->head; + while (c) { + stbtt__hheap_chunk *n = c->next; + STBTT_free(c, userdata); + c = n; + } +} + +typedef struct stbtt__edge { + float x0,y0, x1,y1; + int invert; +} stbtt__edge; + + +typedef struct stbtt__active_edge +{ + struct stbtt__active_edge *next; + #if STBTT_RASTERIZER_VERSION==1 + int x,dx; + float ey; + int direction; + #elif STBTT_RASTERIZER_VERSION==2 + float fx,fdx,fdy; + float direction; + float sy; + float ey; + #else + #error "Unrecognized value of STBTT_RASTERIZER_VERSION" + #endif +} stbtt__active_edge; + +#if STBTT_RASTERIZER_VERSION == 1 +#define STBTT_FIXSHIFT 10 +#define STBTT_FIX (1 << STBTT_FIXSHIFT) +#define STBTT_FIXMASK (STBTT_FIX-1) + +static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, int off_x, float start_point, void *userdata) +{ + stbtt__active_edge *z = (stbtt__active_edge *) stbtt__hheap_alloc(hh, sizeof(*z), userdata); + float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); + if (!z) return z; + + // round dx down to avoid overshooting + if (dxdy < 0) + z->dx = -STBTT_ifloor(STBTT_FIX * -dxdy); + else + z->dx = STBTT_ifloor(STBTT_FIX * dxdy); + + z->x = STBTT_ifloor(STBTT_FIX * e->x0 + z->dx * (start_point - e->y0)); // use z->dx so when we offset later it's by the same amount + z->x -= off_x * STBTT_FIX; + + z->ey = e->y1; + z->next = 0; + z->direction = e->invert ? 1 : -1; + return z; +} +#elif STBTT_RASTERIZER_VERSION == 2 +static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, int off_x, float start_point, void *userdata) +{ + stbtt__active_edge *z = (stbtt__active_edge *) stbtt__hheap_alloc(hh, sizeof(*z), userdata); + float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); + //STBTT_assert(e->y0 <= start_point); + if (!z) return z; + z->fdx = dxdy; + z->fdy = (1/dxdy); + z->fx = e->x0 + dxdy * (start_point - e->y0); + z->fx -= off_x; + z->direction = e->invert ? 1.0f : -1.0f; + z->sy = e->y0; + z->ey = e->y1; + z->next = 0; + return z; +} +#else +#error "Unrecognized value of STBTT_RASTERIZER_VERSION" +#endif + +#if STBTT_RASTERIZER_VERSION == 1 +// note: this routine clips fills that extend off the edges... ideally this +// wouldn't happen, but it could happen if the truetype glyph bounding boxes +// are wrong, or if the user supplies a too-small bitmap +static void stbtt__fill_active_edges(unsigned char *scanline, int len, stbtt__active_edge *e, int max_weight) +{ + // non-zero winding fill + int x0=0, w=0; + + while (e) { + if (w == 0) { + // if we're currently at zero, we need to record the edge start point + x0 = e->x; w += e->direction; + } else { + int x1 = e->x; w += e->direction; + // if we went to zero, we need to draw + if (w == 0) { + int i = x0 >> STBTT_FIXSHIFT; + int j = x1 >> STBTT_FIXSHIFT; + + if (i < len && j >= 0) { + if (i == j) { + // x0,x1 are the same pixel, so compute combined coverage + scanline[i] = scanline[i] + (stbtt_uint8) ((x1 - x0) * max_weight >> STBTT_FIXSHIFT); + } else { + if (i >= 0) // add antialiasing for x0 + scanline[i] = scanline[i] + (stbtt_uint8) (((STBTT_FIX - (x0 & STBTT_FIXMASK)) * max_weight) >> STBTT_FIXSHIFT); + else + i = -1; // clip + + if (j < len) // add antialiasing for x1 + scanline[j] = scanline[j] + (stbtt_uint8) (((x1 & STBTT_FIXMASK) * max_weight) >> STBTT_FIXSHIFT); + else + j = len; // clip + + for (++i; i < j; ++i) // fill pixels between x0 and x1 + scanline[i] = scanline[i] + (stbtt_uint8) max_weight; + } + } + } + } + + e = e->next; + } +} + +static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e, int n, int vsubsample, int off_x, int off_y, void *userdata) +{ + stbtt__hheap hh = { 0 }; + stbtt__active_edge *active = NULL; + int y,j=0; + int max_weight = (255 / vsubsample); // weight per vertical scanline + int s; // vertical subsample index + unsigned char scanline_data[512], *scanline; + + if (result->w > 512) + scanline = (unsigned char *) STBTT_malloc(result->w, userdata); + else + scanline = scanline_data; + + y = off_y * vsubsample; + e[n].y0 = (off_y + result->h) * (float) vsubsample + 1; + + while (j < result->h) { + STBTT_memset(scanline, 0, result->w); + for (s=0; s < vsubsample; ++s) { + // find center of pixel for this scanline + float scan_y = y + 0.5f; + stbtt__active_edge **step = &active; + + // update all active edges; + // remove all active edges that terminate before the center of this scanline + while (*step) { + stbtt__active_edge * z = *step; + if (z->ey <= scan_y) { + *step = z->next; // delete from list + STBTT_assert(z->direction); + z->direction = 0; + stbtt__hheap_free(&hh, z); + } else { + z->x += z->dx; // advance to position for current scanline + step = &((*step)->next); // advance through list + } + } + + // resort the list if needed + for(;;) { + int changed=0; + step = &active; + while (*step && (*step)->next) { + if ((*step)->x > (*step)->next->x) { + stbtt__active_edge *t = *step; + stbtt__active_edge *q = t->next; + + t->next = q->next; + q->next = t; + *step = q; + changed = 1; + } + step = &(*step)->next; + } + if (!changed) break; + } + + // insert all edges that start before the center of this scanline -- omit ones that also end on this scanline + while (e->y0 <= scan_y) { + if (e->y1 > scan_y) { + stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y, userdata); + // find insertion point + if (active == NULL) + active = z; + else if (z->x < active->x) { + // insert at front + z->next = active; + active = z; + } else { + // find thing to insert AFTER + stbtt__active_edge *p = active; + while (p->next && p->next->x < z->x) + p = p->next; + // at this point, p->next->x is NOT < z->x + z->next = p->next; + p->next = z; + } + } + ++e; + } + + // now process all active edges in XOR fashion + if (active) + stbtt__fill_active_edges(scanline, result->w, active, max_weight); + + ++y; + } + STBTT_memcpy(result->pixels + j * result->stride, scanline, result->w); + ++j; + } + + stbtt__hheap_cleanup(&hh, userdata); + + if (scanline != scanline_data) + STBTT_free(scanline, userdata); +} + +#elif STBTT_RASTERIZER_VERSION == 2 + +// the edge passed in here does not cross the vertical line at x or the vertical line at x+1 +// (i.e. it has already been clipped to those) +static void stbtt__handle_clipped_edge(float *scanline, int x, stbtt__active_edge *e, float x0, float y0, float x1, float y1) +{ + if (y0 == y1) return; + STBTT_assert(y0 < y1); + STBTT_assert(e->sy <= e->ey); + if (y0 > e->ey) return; + if (y1 < e->sy) return; + if (y0 < e->sy) { + x0 += (x1-x0) * (e->sy - y0) / (y1-y0); + y0 = e->sy; + } + if (y1 > e->ey) { + x1 += (x1-x0) * (e->ey - y1) / (y1-y0); + y1 = e->ey; + } + + if (x0 == x) + STBTT_assert(x1 <= x+1); + else if (x0 == x+1) + STBTT_assert(x1 >= x); + else if (x0 <= x) + STBTT_assert(x1 <= x); + else if (x0 >= x+1) + STBTT_assert(x1 >= x+1); + else + STBTT_assert(x1 >= x && x1 <= x+1); + + if (x0 <= x && x1 <= x) + scanline[x] += e->direction * (y1-y0); + else if (x0 >= x+1 && x1 >= x+1) + ; + else { + STBTT_assert(x0 >= x && x0 <= x+1 && x1 >= x && x1 <= x+1); + scanline[x] += e->direction * (y1-y0) * (1-((x0-x)+(x1-x))/2); // coverage = 1 - average x position + } +} + +static void stbtt__fill_active_edges_new(float *scanline, float *scanline_fill, int len, stbtt__active_edge *e, float y_top) +{ + float y_bottom = y_top+1; + + while (e) { + // brute force every pixel + + // compute intersection points with top & bottom + STBTT_assert(e->ey >= y_top); + + if (e->fdx == 0) { + float x0 = e->fx; + if (x0 < len) { + if (x0 >= 0) { + stbtt__handle_clipped_edge(scanline,(int) x0,e, x0,y_top, x0,y_bottom); + stbtt__handle_clipped_edge(scanline_fill-1,(int) x0+1,e, x0,y_top, x0,y_bottom); + } else { + stbtt__handle_clipped_edge(scanline_fill-1,0,e, x0,y_top, x0,y_bottom); + } + } + } else { + float x0 = e->fx; + float dx = e->fdx; + float xb = x0 + dx; + float x_top, x_bottom; + float y0,y1; + float dy = e->fdy; + STBTT_assert(e->sy <= y_bottom && e->ey >= y_top); + + // compute endpoints of line segment clipped to this scanline (if the + // line segment starts on this scanline. x0 is the intersection of the + // line with y_top, but that may be off the line segment. + if (e->sy > y_top) { + x_top = x0 + dx * (e->sy - y_top); + y0 = e->sy; + } else { + x_top = x0; + y0 = y_top; + } + if (e->ey < y_bottom) { + x_bottom = x0 + dx * (e->ey - y_top); + y1 = e->ey; + } else { + x_bottom = xb; + y1 = y_bottom; + } + + if (x_top >= 0 && x_bottom >= 0 && x_top < len && x_bottom < len) { + // from here on, we don't have to range check x values + + if ((int) x_top == (int) x_bottom) { + float height; + // simple case, only spans one pixel + int x = (int) x_top; + height = y1 - y0; + STBTT_assert(x >= 0 && x < len); + scanline[x] += e->direction * (1-((x_top - x) + (x_bottom-x))/2) * height; + scanline_fill[x] += e->direction * height; // everything right of this pixel is filled + } else { + int x,x1,x2; + float y_crossing, step, sign, area; + // covers 2+ pixels + if (x_top > x_bottom) { + // flip scanline vertically; signed area is the same + float t; + y0 = y_bottom - (y0 - y_top); + y1 = y_bottom - (y1 - y_top); + t = y0, y0 = y1, y1 = t; + t = x_bottom, x_bottom = x_top, x_top = t; + dx = -dx; + dy = -dy; + t = x0, x0 = xb, xb = t; + } + + x1 = (int) x_top; + x2 = (int) x_bottom; + // compute intersection with y axis at x1+1 + y_crossing = (x1+1 - x0) * dy + y_top; + + sign = e->direction; + // area of the rectangle covered from y0..y_crossing + area = sign * (y_crossing-y0); + // area of the triangle (x_top,y0), (x+1,y0), (x+1,y_crossing) + scanline[x1] += area * (1-((x_top - x1)+(x1+1-x1))/2); + + step = sign * dy; + for (x = x1+1; x < x2; ++x) { + scanline[x] += area + step/2; + area += step; + } + y_crossing += dy * (x2 - (x1+1)); + + STBTT_assert(fabs(area) <= 1.01f); + + scanline[x2] += area + sign * (1-((x2-x2)+(x_bottom-x2))/2) * (y1-y_crossing); + + scanline_fill[x2] += sign * (y1-y0); + } + } else { + // if edge goes outside of box we're drawing, we require + // clipping logic. since this does not match the intended use + // of this library, we use a different, very slow brute + // force implementation + int x; + for (x=0; x < len; ++x) { + // cases: + // + // there can be up to two intersections with the pixel. any intersection + // with left or right edges can be handled by splitting into two (or three) + // regions. intersections with top & bottom do not necessitate case-wise logic. + // + // the old way of doing this found the intersections with the left & right edges, + // then used some simple logic to produce up to three segments in sorted order + // from top-to-bottom. however, this had a problem: if an x edge was epsilon + // across the x border, then the corresponding y position might not be distinct + // from the other y segment, and it might ignored as an empty segment. to avoid + // that, we need to explicitly produce segments based on x positions. + + // rename variables to clear pairs + float y0 = y_top; + float x1 = (float) (x); + float x2 = (float) (x+1); + float x3 = xb; + float y3 = y_bottom; + float y1,y2; + + // x = e->x + e->dx * (y-y_top) + // (y-y_top) = (x - e->x) / e->dx + // y = (x - e->x) / e->dx + y_top + y1 = (x - x0) / dx + y_top; + y2 = (x+1 - x0) / dx + y_top; + + if (x0 < x1 && x3 > x2) { // three segments descending down-right + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); + } else if (x3 < x1 && x0 > x2) { // three segments descending down-left + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); + } else if (x0 < x1 && x3 > x1) { // two segments across x, down-right + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); + } else if (x3 < x1 && x0 > x1) { // two segments across x, down-left + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); + stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); + } else if (x0 < x2 && x3 > x2) { // two segments across x+1, down-right + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); + } else if (x3 < x2 && x0 > x2) { // two segments across x+1, down-left + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); + stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); + } else { // one segment + stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x3,y3); + } + } + } + } + e = e->next; + } +} + +// directly AA rasterize edges w/o supersampling +static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e, int n, int vsubsample, int off_x, int off_y, void *userdata) +{ + (void)vsubsample; + stbtt__hheap hh = { 0 }; + stbtt__active_edge *active = NULL; + int y,j=0, i; + float scanline_data[129], *scanline, *scanline2; + + if (result->w > 64) + scanline = (float *) STBTT_malloc((result->w*2+1) * sizeof(float), userdata); + else + scanline = scanline_data; + + scanline2 = scanline + result->w; + + y = off_y; + e[n].y0 = (float) (off_y + result->h) + 1; + + while (j < result->h) { + // find center of pixel for this scanline + float scan_y_top = y + 0.0f; + float scan_y_bottom = y + 1.0f; + stbtt__active_edge **step = &active; + + STBTT_memset(scanline , 0, result->w*sizeof(scanline[0])); + STBTT_memset(scanline2, 0, (result->w+1)*sizeof(scanline[0])); + + // update all active edges; + // remove all active edges that terminate before the top of this scanline + while (*step) { + stbtt__active_edge * z = *step; + if (z->ey <= scan_y_top) { + *step = z->next; // delete from list + STBTT_assert(z->direction); + z->direction = 0; + stbtt__hheap_free(&hh, z); + } else { + step = &((*step)->next); // advance through list + } + } + + // insert all edges that start before the bottom of this scanline + while (e->y0 <= scan_y_bottom) { + stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y_top, userdata); + STBTT_assert(z->ey >= scan_y_top); + // insert at front + z->next = active; + active = z; + ++e; + } + + // now process all active edges + if (active) + stbtt__fill_active_edges_new(scanline, scanline2+1, result->w, active, scan_y_top); + + { + float sum = 0; + for (i=0; i < result->w; ++i) { + float k; + int m; + sum += scanline2[i]; + k = scanline[i] + sum; + k = (float) fabs(k)*255 + 0.5f; + m = (int) k; + if (m > 255) m = 255; + result->pixels[j*result->stride + i] = (unsigned char) m; + } + } + // advance all the edges + step = &active; + while (*step) { + stbtt__active_edge *z = *step; + z->fx += z->fdx; // advance to position for current scanline + step = &((*step)->next); // advance through list + } + + ++y; + ++j; + } + + stbtt__hheap_cleanup(&hh, userdata); + + if (scanline != scanline_data) + STBTT_free(scanline, userdata); +} +#else +#error "Unrecognized value of STBTT_RASTERIZER_VERSION" +#endif + +#define STBTT__COMPARE(a,b) ((a)->y0 < (b)->y0) + +static void stbtt__sort_edges_ins_sort(stbtt__edge *p, int n) +{ + int i,j; + for (i=1; i < n; ++i) { + stbtt__edge t = p[i], *a = &t; + j = i; + while (j > 0) { + stbtt__edge *b = &p[j-1]; + int c = STBTT__COMPARE(a,b); + if (!c) break; + p[j] = p[j-1]; + --j; + } + if (i != j) + p[j] = t; + } +} + +static void stbtt__sort_edges_quicksort(stbtt__edge *p, int n) +{ + /* threshhold for transitioning to insertion sort */ + while (n > 12) { + stbtt__edge t; + int c01,c12,c,m,i,j; + + /* compute median of three */ + m = n >> 1; + c01 = STBTT__COMPARE(&p[0],&p[m]); + c12 = STBTT__COMPARE(&p[m],&p[n-1]); + /* if 0 >= mid >= end, or 0 < mid < end, then use mid */ + if (c01 != c12) { + /* otherwise, we'll need to swap something else to middle */ + int z; + c = STBTT__COMPARE(&p[0],&p[n-1]); + /* 0>mid && midn => n; 0 0 */ + /* 0n: 0>n => 0; 0 n */ + z = (c == c12) ? 0 : n-1; + t = p[z]; + p[z] = p[m]; + p[m] = t; + } + /* now p[m] is the median-of-three */ + /* swap it to the beginning so it won't move around */ + t = p[0]; + p[0] = p[m]; + p[m] = t; + + /* partition loop */ + i=1; + j=n-1; + for(;;) { + /* handling of equality is crucial here */ + /* for sentinels & efficiency with duplicates */ + for (;;++i) { + if (!STBTT__COMPARE(&p[i], &p[0])) break; + } + for (;;--j) { + if (!STBTT__COMPARE(&p[0], &p[j])) break; + } + /* make sure we haven't crossed */ + if (i >= j) break; + t = p[i]; + p[i] = p[j]; + p[j] = t; + + ++i; + --j; + } + /* recurse on smaller side, iterate on larger */ + if (j < (n-i)) { + stbtt__sort_edges_quicksort(p,j); + p = p+i; + n = n-i; + } else { + stbtt__sort_edges_quicksort(p+i, n-i); + n = j; + } + } +} + +static void stbtt__sort_edges(stbtt__edge *p, int n) +{ + stbtt__sort_edges_quicksort(p, n); + stbtt__sort_edges_ins_sort(p, n); +} + +typedef struct +{ + float x,y; +} stbtt__point; + +static void stbtt__rasterize(stbtt__bitmap *result, stbtt__point *pts, int *wcount, int windings, float scale_x, float scale_y, float shift_x, float shift_y, int off_x, int off_y, int invert, void *userdata) +{ + float y_scale_inv = invert ? -scale_y : scale_y; + stbtt__edge *e; + int n,i,j,k,m; +#if STBTT_RASTERIZER_VERSION == 1 + int vsubsample = result->h < 8 ? 15 : 5; +#elif STBTT_RASTERIZER_VERSION == 2 + int vsubsample = 1; +#else + #error "Unrecognized value of STBTT_RASTERIZER_VERSION" +#endif + // vsubsample should divide 255 evenly; otherwise we won't reach full opacity + + // now we have to blow out the windings into explicit edge lists + n = 0; + for (i=0; i < windings; ++i) + n += wcount[i]; + + e = (stbtt__edge *) STBTT_malloc(sizeof(*e) * (n+1), userdata); // add an extra one as a sentinel + if (e == 0) return; + n = 0; + + m=0; + for (i=0; i < windings; ++i) { + stbtt__point *p = pts + m; + m += wcount[i]; + j = wcount[i]-1; + for (k=0; k < wcount[i]; j=k++) { + int a=k,b=j; + // skip the edge if horizontal + if (p[j].y == p[k].y) + continue; + // add edge from j to k to the list + e[n].invert = 0; + if (invert ? p[j].y > p[k].y : p[j].y < p[k].y) { + e[n].invert = 1; + a=j,b=k; + } + e[n].x0 = p[a].x * scale_x + shift_x; + e[n].y0 = (p[a].y * y_scale_inv + shift_y) * vsubsample; + e[n].x1 = p[b].x * scale_x + shift_x; + e[n].y1 = (p[b].y * y_scale_inv + shift_y) * vsubsample; + ++n; + } + } + + // now sort the edges by their highest point (should snap to integer, and then by x) + //STBTT_sort(e, n, sizeof(e[0]), stbtt__edge_compare); + stbtt__sort_edges(e, n); + + // now, traverse the scanlines and find the intersections on each scanline, use xor winding rule + stbtt__rasterize_sorted_edges(result, e, n, vsubsample, off_x, off_y, userdata); + + STBTT_free(e, userdata); +} + +static void stbtt__add_point(stbtt__point *points, int n, float x, float y) +{ + if (!points) return; // during first pass, it's unallocated + points[n].x = x; + points[n].y = y; +} + +// tesselate until threshhold p is happy... @TODO warped to compensate for non-linear stretching +static int stbtt__tesselate_curve(stbtt__point *points, int *num_points, float x0, float y0, float x1, float y1, float x2, float y2, float objspace_flatness_squared, int n) +{ + // midpoint + float mx = (x0 + 2*x1 + x2)/4; + float my = (y0 + 2*y1 + y2)/4; + // versus directly drawn line + float dx = (x0+x2)/2 - mx; + float dy = (y0+y2)/2 - my; + if (n > 16) // 65536 segments on one curve better be enough! + return 1; + if (dx*dx+dy*dy > objspace_flatness_squared) { // half-pixel error allowed... need to be smaller if AA + stbtt__tesselate_curve(points, num_points, x0,y0, (x0+x1)/2.0f,(y0+y1)/2.0f, mx,my, objspace_flatness_squared,n+1); + stbtt__tesselate_curve(points, num_points, mx,my, (x1+x2)/2.0f,(y1+y2)/2.0f, x2,y2, objspace_flatness_squared,n+1); + } else { + stbtt__add_point(points, *num_points,x2,y2); + *num_points = *num_points+1; + } + return 1; +} + +// returns number of contours +static stbtt__point *stbtt_FlattenCurves(stbtt_vertex *vertices, int num_verts, float objspace_flatness, int **contour_lengths, int *num_contours, void *userdata) +{ + stbtt__point *points=0; + int num_points=0; + + float objspace_flatness_squared = objspace_flatness * objspace_flatness; + int i,n=0,start=0, pass; + + // count how many "moves" there are to get the contour count + for (i=0; i < num_verts; ++i) + if (vertices[i].type == STBTT_vmove) + ++n; + + *num_contours = n; + if (n == 0) return 0; + + *contour_lengths = (int *) STBTT_malloc(sizeof(**contour_lengths) * n, userdata); + + if (*contour_lengths == 0) { + *num_contours = 0; + return 0; + } + + // make two passes through the points so we don't need to realloc + for (pass=0; pass < 2; ++pass) { + float x=0,y=0; + if (pass == 1) { + points = (stbtt__point *) STBTT_malloc(num_points * sizeof(points[0]), userdata); + if (points == NULL) goto error; + } + num_points = 0; + n= -1; + for (i=0; i < num_verts; ++i) { + switch (vertices[i].type) { + case STBTT_vmove: + // start the next contour + if (n >= 0) + (*contour_lengths)[n] = num_points - start; + ++n; + start = num_points; + + x = vertices[i].x, y = vertices[i].y; + stbtt__add_point(points, num_points++, x,y); + break; + case STBTT_vline: + x = vertices[i].x, y = vertices[i].y; + stbtt__add_point(points, num_points++, x, y); + break; + case STBTT_vcurve: + stbtt__tesselate_curve(points, &num_points, x,y, + vertices[i].cx, vertices[i].cy, + vertices[i].x, vertices[i].y, + objspace_flatness_squared, 0); + x = vertices[i].x, y = vertices[i].y; + break; + } + } + (*contour_lengths)[n] = num_points - start; + } + + return points; +error: + STBTT_free(points, userdata); + STBTT_free(*contour_lengths, userdata); + *contour_lengths = 0; + *num_contours = 0; + return NULL; +} + +STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, float flatness_in_pixels, stbtt_vertex *vertices, int num_verts, float scale_x, float scale_y, float shift_x, float shift_y, int x_off, int y_off, int invert, void *userdata) +{ + float scale = scale_x > scale_y ? scale_y : scale_x; + int winding_count, *winding_lengths; + stbtt__point *windings = stbtt_FlattenCurves(vertices, num_verts, flatness_in_pixels / scale, &winding_lengths, &winding_count, userdata); + if (windings) { + stbtt__rasterize(result, windings, winding_lengths, winding_count, scale_x, scale_y, shift_x, shift_y, x_off, y_off, invert, userdata); + STBTT_free(winding_lengths, userdata); + STBTT_free(windings, userdata); + } +} + +STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata) +{ + STBTT_free(bitmap, userdata); +} + +STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int glyph, int *width, int *height, int *xoff, int *yoff) +{ + int ix0,iy0,ix1,iy1; + stbtt__bitmap gbm; + stbtt_vertex *vertices; + int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); + + if (scale_x == 0) scale_x = scale_y; + if (scale_y == 0) { + if (scale_x == 0) return NULL; + scale_y = scale_x; + } + + stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,&ix1,&iy1); + + // now we get the size + gbm.w = (ix1 - ix0); + gbm.h = (iy1 - iy0); + gbm.pixels = NULL; // in case we error + + if (width ) *width = gbm.w; + if (height) *height = gbm.h; + if (xoff ) *xoff = ix0; + if (yoff ) *yoff = iy0; + + if (gbm.w && gbm.h) { + gbm.pixels = (unsigned char *) STBTT_malloc(gbm.w * gbm.h, info->userdata); + if (gbm.pixels) { + gbm.stride = gbm.w; + + stbtt_Rasterize(&gbm, 0.35f, vertices, num_verts, scale_x, scale_y, shift_x, shift_y, ix0, iy0, 1, info->userdata); + } + } + STBTT_free(vertices, info->userdata); + return gbm.pixels; +} + +STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff) +{ + return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y, 0.0f, 0.0f, glyph, width, height, xoff, yoff); +} + +STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int glyph) +{ + int ix0,iy0; + stbtt_vertex *vertices; + int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); + stbtt__bitmap gbm; + + stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,0,0); + gbm.pixels = output; + gbm.w = out_w; + gbm.h = out_h; + gbm.stride = out_stride; + + if (gbm.w && gbm.h) + stbtt_Rasterize(&gbm, 0.35f, vertices, num_verts, scale_x, scale_y, shift_x, shift_y, ix0,iy0, 1, info->userdata); + + STBTT_free(vertices, info->userdata); +} + +STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int glyph) +{ + stbtt_MakeGlyphBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, 0.0f,0.0f, glyph); +} + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff) +{ + return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y,shift_x,shift_y, stbtt_FindGlyphIndex(info,codepoint), width,height,xoff,yoff); +} + +STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint) +{ + stbtt_MakeGlyphBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, shift_x, shift_y, stbtt_FindGlyphIndex(info,codepoint)); +} + +STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff) +{ + return stbtt_GetCodepointBitmapSubpixel(info, scale_x, scale_y, 0.0f,0.0f, codepoint, width,height,xoff,yoff); +} + +STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint) +{ + stbtt_MakeCodepointBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, 0.0f,0.0f, codepoint); +} + +////////////////////////////////////////////////////////////////////////////// +// +// bitmap baking +// +// This is SUPER-CRAPPY packing to keep source code small + +STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) + float pixel_height, // height of font in pixels + unsigned char *pixels, int pw, int ph, // bitmap to be filled in + int first_char, int num_chars, // characters to bake + stbtt_bakedchar *chardata) +{ + float scale; + int x,y,bottom_y, i; + stbtt_fontinfo f; + if (!stbtt_InitFont(&f, data, offset)) + return -1; + STBTT_memset(pixels, 0, pw*ph); // background of 0 around pixels + x=y=1; + bottom_y = 1; + + scale = stbtt_ScaleForPixelHeight(&f, pixel_height); + + for (i=0; i < num_chars; ++i) { + int advance, lsb, x0,y0,x1,y1,gw,gh; + int g = stbtt_FindGlyphIndex(&f, first_char + i); + stbtt_GetGlyphHMetrics(&f, g, &advance, &lsb); + stbtt_GetGlyphBitmapBox(&f, g, scale,scale, &x0,&y0,&x1,&y1); + gw = x1-x0; + gh = y1-y0; + if (x + gw + 1 >= pw) + y = bottom_y, x = 1; // advance to next row + if (y + gh + 1 >= ph) // check if it fits vertically AFTER potentially moving to next row + return -i; + STBTT_assert(x+gw < pw); + STBTT_assert(y+gh < ph); + stbtt_MakeGlyphBitmap(&f, pixels+x+y*pw, gw,gh,pw, scale,scale, g); + chardata[i].x0 = (stbtt_int16) x; + chardata[i].y0 = (stbtt_int16) y; + chardata[i].x1 = (stbtt_int16) (x + gw); + chardata[i].y1 = (stbtt_int16) (y + gh); + chardata[i].xadvance = scale * advance; + chardata[i].xoff = (float) x0; + chardata[i].yoff = (float) y0; + x = x + gw + 1; + if (y+gh+1 > bottom_y) + bottom_y = y+gh+1; + } + return bottom_y; +} + +STBTT_DEF void stbtt_GetBakedQuad(stbtt_bakedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int opengl_fillrule) +{ + float d3d_bias = opengl_fillrule ? 0 : -0.5f; + float ipw = 1.0f / pw, iph = 1.0f / ph; + stbtt_bakedchar *b = chardata + char_index; + int round_x = STBTT_ifloor((*xpos + b->xoff) + 0.5f); + int round_y = STBTT_ifloor((*ypos + b->yoff) + 0.5f); + + q->x0 = round_x + d3d_bias; + q->y0 = round_y + d3d_bias; + q->x1 = round_x + b->x1 - b->x0 + d3d_bias; + q->y1 = round_y + b->y1 - b->y0 + d3d_bias; + + q->s0 = b->x0 * ipw; + q->t0 = b->y0 * iph; + q->s1 = b->x1 * ipw; + q->t1 = b->y1 * iph; + + *xpos += b->xadvance; +} + +////////////////////////////////////////////////////////////////////////////// +// +// rectangle packing replacement routines if you don't have stb_rect_pack.h +// + +#ifndef STB_RECT_PACK_VERSION +#ifdef _MSC_VER +#define STBTT__NOTUSED(v) (void)(v) +#else +#define STBTT__NOTUSED(v) (void)sizeof(v) +#endif + +typedef int stbrp_coord; + +//////////////////////////////////////////////////////////////////////////////////// +// // +// // +// COMPILER WARNING ?!?!? // +// // +// // +// if you get a compile warning due to these symbols being defined more than // +// once, move #include "stb_rect_pack.h" before #include "stb_truetype.h" // +// // +//////////////////////////////////////////////////////////////////////////////////// + +typedef struct +{ + int width,height; + int x,y,bottom_y; +} stbrp_context; + +typedef struct +{ + unsigned char x; +} stbrp_node; + +struct stbrp_rect +{ + stbrp_coord x,y; + int id,w,h,was_packed; +}; + +static void stbrp_init_target(stbrp_context *con, int pw, int ph, stbrp_node *nodes, int num_nodes) +{ + con->width = pw; + con->height = ph; + con->x = 0; + con->y = 0; + con->bottom_y = 0; + STBTT__NOTUSED(nodes); + STBTT__NOTUSED(num_nodes); +} + +static void stbrp_pack_rects(stbrp_context *con, stbrp_rect *rects, int num_rects) +{ + int i; + for (i=0; i < num_rects; ++i) { + if (con->x + rects[i].w > con->width) { + con->x = 0; + con->y = con->bottom_y; + } + if (con->y + rects[i].h > con->height) + break; + rects[i].x = con->x; + rects[i].y = con->y; + rects[i].was_packed = 1; + con->x += rects[i].w; + if (con->y + rects[i].h > con->bottom_y) + con->bottom_y = con->y + rects[i].h; + } + for ( ; i < num_rects; ++i) + rects[i].was_packed = 0; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// bitmap baking +// +// This is SUPER-AWESOME (tm Ryan Gordon) packing using stb_rect_pack.h. If +// stb_rect_pack.h isn't available, it uses the BakeFontBitmap strategy. + +STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, int pw, int ph, int stride_in_bytes, int padding, void *alloc_context) +{ + stbrp_context *context = (stbrp_context *) STBTT_malloc(sizeof(*context) ,alloc_context); + int num_nodes = pw - padding; + stbrp_node *nodes = (stbrp_node *) STBTT_malloc(sizeof(*nodes ) * num_nodes,alloc_context); + + if (context == NULL || nodes == NULL) { + if (context != NULL) STBTT_free(context, alloc_context); + if (nodes != NULL) STBTT_free(nodes , alloc_context); + return 0; + } + + spc->user_allocator_context = alloc_context; + spc->width = pw; + spc->height = ph; + spc->pixels = pixels; + spc->pack_info = context; + spc->nodes = nodes; + spc->padding = padding; + spc->stride_in_bytes = stride_in_bytes != 0 ? stride_in_bytes : pw; + spc->h_oversample = 1; + spc->v_oversample = 1; + + stbrp_init_target(context, pw-padding, ph-padding, nodes, num_nodes); + + if (pixels) + STBTT_memset(pixels, 0, pw*ph); // background of 0 around pixels + + return 1; +} + +STBTT_DEF void stbtt_PackEnd (stbtt_pack_context *spc) +{ + STBTT_free(spc->nodes , spc->user_allocator_context); + STBTT_free(spc->pack_info, spc->user_allocator_context); +} + +STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample) +{ + STBTT_assert(h_oversample <= STBTT_MAX_OVERSAMPLE); + STBTT_assert(v_oversample <= STBTT_MAX_OVERSAMPLE); + if (h_oversample <= STBTT_MAX_OVERSAMPLE) + spc->h_oversample = h_oversample; + if (v_oversample <= STBTT_MAX_OVERSAMPLE) + spc->v_oversample = v_oversample; +} + +#define STBTT__OVER_MASK (STBTT_MAX_OVERSAMPLE-1) + +static void stbtt__h_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width) +{ + unsigned char buffer[STBTT_MAX_OVERSAMPLE]; + int safe_w = w - kernel_width; + int j; + for (j=0; j < h; ++j) { + int i; + unsigned int total; + STBTT_memset(buffer, 0, kernel_width); + + total = 0; + + // make kernel_width a constant in common cases so compiler can optimize out the divide + switch (kernel_width) { + case 2: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 2); + } + break; + case 3: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 3); + } + break; + case 4: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 4); + } + break; + case 5: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / 5); + } + break; + default: + for (i=0; i <= safe_w; ++i) { + total += pixels[i] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; + pixels[i] = (unsigned char) (total / kernel_width); + } + break; + } + + for (; i < w; ++i) { + STBTT_assert(pixels[i] == 0); + total -= buffer[i & STBTT__OVER_MASK]; + pixels[i] = (unsigned char) (total / kernel_width); + } + + pixels += stride_in_bytes; + } +} + +static void stbtt__v_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width) +{ + unsigned char buffer[STBTT_MAX_OVERSAMPLE]; + int safe_h = h - kernel_width; + int j; + for (j=0; j < w; ++j) { + int i; + unsigned int total; + STBTT_memset(buffer, 0, kernel_width); + + total = 0; + + // make kernel_width a constant in common cases so compiler can optimize out the divide + switch (kernel_width) { + case 2: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 2); + } + break; + case 3: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 3); + } + break; + case 4: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 4); + } + break; + case 5: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / 5); + } + break; + default: + for (i=0; i <= safe_h; ++i) { + total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; + buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; + pixels[i*stride_in_bytes] = (unsigned char) (total / kernel_width); + } + break; + } + + for (; i < h; ++i) { + STBTT_assert(pixels[i*stride_in_bytes] == 0); + total -= buffer[i & STBTT__OVER_MASK]; + pixels[i*stride_in_bytes] = (unsigned char) (total / kernel_width); + } + + pixels += 1; + } +} + +static float stbtt__oversample_shift(int oversample) +{ + if (!oversample) + return 0.0f; + + // The prefilter is a box filter of width "oversample", + // which shifts phase by (oversample - 1)/2 pixels in + // oversampled space. We want to shift in the opposite + // direction to counter this. + return (float)-(oversample - 1) / (2.0f * (float)oversample); +} + +// rects array must be big enough to accommodate all characters in the given ranges +STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) +{ + int i,j,k; + + k=0; + for (i=0; i < num_ranges; ++i) { + float fh = ranges[i].font_size; + float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); + ranges[i].h_oversample = (unsigned char) spc->h_oversample; + ranges[i].v_oversample = (unsigned char) spc->v_oversample; + for (j=0; j < ranges[i].num_chars; ++j) { + int x0,y0,x1,y1; + int codepoint = ranges[i].first_unicode_codepoint_in_range ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; + int glyph = stbtt_FindGlyphIndex(info, codepoint); + stbtt_GetGlyphBitmapBoxSubpixel(info,glyph, + scale * spc->h_oversample, + scale * spc->v_oversample, + 0,0, + &x0,&y0,&x1,&y1); + rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1); + rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1); + ++k; + } + } + + return k; +} + +// rects array must be big enough to accommodate all characters in the given ranges +STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) +{ + int i,j,k, return_value = 1; + + // save current values + int old_h_over = spc->h_oversample; + int old_v_over = spc->v_oversample; + + k = 0; + for (i=0; i < num_ranges; ++i) { + float fh = ranges[i].font_size; + float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); + float recip_h,recip_v,sub_x,sub_y; + spc->h_oversample = ranges[i].h_oversample; + spc->v_oversample = ranges[i].v_oversample; + recip_h = 1.0f / spc->h_oversample; + recip_v = 1.0f / spc->v_oversample; + sub_x = stbtt__oversample_shift(spc->h_oversample); + sub_y = stbtt__oversample_shift(spc->v_oversample); + for (j=0; j < ranges[i].num_chars; ++j) { + stbrp_rect *r = &rects[k]; + if (r->was_packed) { + stbtt_packedchar *bc = &ranges[i].chardata_for_range[j]; + int advance, lsb, x0,y0,x1,y1; + int codepoint = ranges[i].first_unicode_codepoint_in_range ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; + int glyph = stbtt_FindGlyphIndex(info, codepoint); + stbrp_coord pad = (stbrp_coord) spc->padding; + + // pad on left and top + r->x += pad; + r->y += pad; + r->w -= pad; + r->h -= pad; + stbtt_GetGlyphHMetrics(info, glyph, &advance, &lsb); + stbtt_GetGlyphBitmapBox(info, glyph, + scale * spc->h_oversample, + scale * spc->v_oversample, + &x0,&y0,&x1,&y1); + stbtt_MakeGlyphBitmapSubpixel(info, + spc->pixels + r->x + r->y*spc->stride_in_bytes, + r->w - spc->h_oversample+1, + r->h - spc->v_oversample+1, + spc->stride_in_bytes, + scale * spc->h_oversample, + scale * spc->v_oversample, + 0,0, + glyph); + + if (spc->h_oversample > 1) + stbtt__h_prefilter(spc->pixels + r->x + r->y*spc->stride_in_bytes, + r->w, r->h, spc->stride_in_bytes, + spc->h_oversample); + + if (spc->v_oversample > 1) + stbtt__v_prefilter(spc->pixels + r->x + r->y*spc->stride_in_bytes, + r->w, r->h, spc->stride_in_bytes, + spc->v_oversample); + + bc->x0 = (stbtt_int16) r->x; + bc->y0 = (stbtt_int16) r->y; + bc->x1 = (stbtt_int16) (r->x + r->w); + bc->y1 = (stbtt_int16) (r->y + r->h); + bc->xadvance = scale * advance; + bc->xoff = (float) x0 * recip_h + sub_x; + bc->yoff = (float) y0 * recip_v + sub_y; + bc->xoff2 = (x0 + r->w) * recip_h + sub_x; + bc->yoff2 = (y0 + r->h) * recip_v + sub_y; + } else { + return_value = 0; // if any fail, report failure + } + + ++k; + } + } + + // restore original values + spc->h_oversample = old_h_over; + spc->v_oversample = old_v_over; + + return return_value; +} + +STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, stbrp_rect *rects, int num_rects) +{ + stbrp_pack_rects((stbrp_context *) spc->pack_info, rects, num_rects); +} + +STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, stbtt_pack_range *ranges, int num_ranges) +{ + stbtt_fontinfo info; + int i,j,n, return_value = 1; + //stbrp_context *context = (stbrp_context *) spc->pack_info; + stbrp_rect *rects; + + // flag all characters as NOT packed + for (i=0; i < num_ranges; ++i) + for (j=0; j < ranges[i].num_chars; ++j) + ranges[i].chardata_for_range[j].x0 = + ranges[i].chardata_for_range[j].y0 = + ranges[i].chardata_for_range[j].x1 = + ranges[i].chardata_for_range[j].y1 = 0; + + n = 0; + for (i=0; i < num_ranges; ++i) + n += ranges[i].num_chars; + + rects = (stbrp_rect *) STBTT_malloc(sizeof(*rects) * n, spc->user_allocator_context); + if (rects == NULL) + return 0; + + stbtt_InitFont(&info, fontdata, stbtt_GetFontOffsetForIndex(fontdata,font_index)); + + n = stbtt_PackFontRangesGatherRects(spc, &info, ranges, num_ranges, rects); + + stbtt_PackFontRangesPackRects(spc, rects, n); + + return_value = stbtt_PackFontRangesRenderIntoRects(spc, &info, ranges, num_ranges, rects); + + STBTT_free(rects, spc->user_allocator_context); + return return_value; +} + +STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, unsigned char *fontdata, int font_index, float font_size, + int first_unicode_codepoint_in_range, int num_chars_in_range, stbtt_packedchar *chardata_for_range) +{ + stbtt_pack_range range; + range.first_unicode_codepoint_in_range = first_unicode_codepoint_in_range; + range.array_of_unicode_codepoints = NULL; + range.num_chars = num_chars_in_range; + range.chardata_for_range = chardata_for_range; + range.font_size = font_size; + return stbtt_PackFontRanges(spc, fontdata, font_index, &range, 1); +} + +STBTT_DEF void stbtt_GetPackedQuad(stbtt_packedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int align_to_integer) +{ + float ipw = 1.0f / pw, iph = 1.0f / ph; + stbtt_packedchar *b = chardata + char_index; + + if (align_to_integer) { + float x = (float) STBTT_ifloor((*xpos + b->xoff) + 0.5f); + float y = (float) STBTT_ifloor((*ypos + b->yoff) + 0.5f); + q->x0 = x; + q->y0 = y; + q->x1 = x + b->xoff2 - b->xoff; + q->y1 = y + b->yoff2 - b->yoff; + } else { + q->x0 = *xpos + b->xoff; + q->y0 = *ypos + b->yoff; + q->x1 = *xpos + b->xoff2; + q->y1 = *ypos + b->yoff2; + } + + q->s0 = b->x0 * ipw; + q->t0 = b->y0 * iph; + q->s1 = b->x1 * ipw; + q->t1 = b->y1 * iph; + + *xpos += b->xadvance; +} + + +////////////////////////////////////////////////////////////////////////////// +// +// font name matching -- recommended not to use this +// + +// check if a utf8 string contains a prefix which is the utf16 string; if so return length of matching utf8 string +static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 *s1, stbtt_int32 len1, const stbtt_uint8 *s2, stbtt_int32 len2) +{ + stbtt_int32 i=0; + + // convert utf16 to utf8 and compare the results while converting + while (len2) { + stbtt_uint16 ch = s2[0]*256 + s2[1]; + if (ch < 0x80) { + if (i >= len1) return -1; + if (s1[i++] != ch) return -1; + } else if (ch < 0x800) { + if (i+1 >= len1) return -1; + if (s1[i++] != 0xc0 + (ch >> 6)) return -1; + if (s1[i++] != 0x80 + (ch & 0x3f)) return -1; + } else if (ch >= 0xd800 && ch < 0xdc00) { + stbtt_uint32 c; + stbtt_uint16 ch2 = s2[2]*256 + s2[3]; + if (i+3 >= len1) return -1; + c = ((ch - 0xd800) << 10) + (ch2 - 0xdc00) + 0x10000; + if (s1[i++] != 0xf0 + (c >> 18)) return -1; + if (s1[i++] != 0x80 + ((c >> 12) & 0x3f)) return -1; + if (s1[i++] != 0x80 + ((c >> 6) & 0x3f)) return -1; + if (s1[i++] != 0x80 + ((c ) & 0x3f)) return -1; + s2 += 2; // plus another 2 below + len2 -= 2; + } else if (ch >= 0xdc00 && ch < 0xe000) { + return -1; + } else { + if (i+2 >= len1) return -1; + if (s1[i++] != 0xe0 + (ch >> 12)) return -1; + if (s1[i++] != 0x80 + ((ch >> 6) & 0x3f)) return -1; + if (s1[i++] != 0x80 + ((ch ) & 0x3f)) return -1; + } + s2 += 2; + len2 -= 2; + } + return i; +} + +STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2) +{ + return len1 == stbtt__CompareUTF8toUTF16_bigendian_prefix((const stbtt_uint8*) s1, len1, (const stbtt_uint8*) s2, len2); +} + +// returns results in whatever encoding you request... but note that 2-byte encodings +// will be BIG-ENDIAN... use stbtt_CompareUTF8toUTF16_bigendian() to compare +STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font, int *length, int platformID, int encodingID, int languageID, int nameID) +{ + stbtt_int32 i,count,stringOffset; + stbtt_uint8 *fc = font->data; + stbtt_uint32 offset = font->fontstart; + stbtt_uint32 nm = stbtt__find_table(fc, offset, "name"); + if (!nm) return NULL; + + count = ttUSHORT(fc+nm+2); + stringOffset = nm + ttUSHORT(fc+nm+4); + for (i=0; i < count; ++i) { + stbtt_uint32 loc = nm + 6 + 12 * i; + if (platformID == ttUSHORT(fc+loc+0) && encodingID == ttUSHORT(fc+loc+2) + && languageID == ttUSHORT(fc+loc+4) && nameID == ttUSHORT(fc+loc+6)) { + *length = ttUSHORT(fc+loc+8); + return (const char *) (fc+stringOffset+ttUSHORT(fc+loc+10)); + } + } + return NULL; +} + +static int stbtt__matchpair(stbtt_uint8 *fc, stbtt_uint32 nm, stbtt_uint8 *name, stbtt_int32 nlen, stbtt_int32 target_id, stbtt_int32 next_id) +{ + stbtt_int32 i; + stbtt_int32 count = ttUSHORT(fc+nm+2); + stbtt_int32 stringOffset = nm + ttUSHORT(fc+nm+4); + + for (i=0; i < count; ++i) { + stbtt_uint32 loc = nm + 6 + 12 * i; + stbtt_int32 id = ttUSHORT(fc+loc+6); + if (id == target_id) { + // find the encoding + stbtt_int32 platform = ttUSHORT(fc+loc+0), encoding = ttUSHORT(fc+loc+2), language = ttUSHORT(fc+loc+4); + + // is this a Unicode encoding? + if (platform == 0 || (platform == 3 && encoding == 1) || (platform == 3 && encoding == 10)) { + stbtt_int32 slen = ttUSHORT(fc+loc+8); + stbtt_int32 off = ttUSHORT(fc+loc+10); + + // check if there's a prefix match + stbtt_int32 matchlen = stbtt__CompareUTF8toUTF16_bigendian_prefix(name, nlen, fc+stringOffset+off,slen); + if (matchlen >= 0) { + // check for target_id+1 immediately following, with same encoding & language + if (i+1 < count && ttUSHORT(fc+loc+12+6) == next_id && ttUSHORT(fc+loc+12) == platform && ttUSHORT(fc+loc+12+2) == encoding && ttUSHORT(fc+loc+12+4) == language) { + slen = ttUSHORT(fc+loc+12+8); + off = ttUSHORT(fc+loc+12+10); + if (slen == 0) { + if (matchlen == nlen) + return 1; + } else if (matchlen < nlen && name[matchlen] == ' ') { + ++matchlen; + if (stbtt_CompareUTF8toUTF16_bigendian((char*) (name+matchlen), nlen-matchlen, (char*)(fc+stringOffset+off),slen)) + return 1; + } + } else { + // if nothing immediately following + if (matchlen == nlen) + return 1; + } + } + } + + // @TODO handle other encodings + } + } + return 0; +} + +static int stbtt__matches(stbtt_uint8 *fc, stbtt_uint32 offset, stbtt_uint8 *name, stbtt_int32 flags) +{ + stbtt_int32 nlen = (stbtt_int32) STBTT_strlen((char *) name); + stbtt_uint32 nm,hd; + if (!stbtt__isfont(fc+offset)) return 0; + + // check italics/bold/underline flags in macStyle... + if (flags) { + hd = stbtt__find_table(fc, offset, "head"); + if ((ttUSHORT(fc+hd+44) & 7) != (flags & 7)) return 0; + } + + nm = stbtt__find_table(fc, offset, "name"); + if (!nm) return 0; + + if (flags) { + // if we checked the macStyle flags, then just check the family and ignore the subfamily + if (stbtt__matchpair(fc, nm, name, nlen, 16, -1)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 1, -1)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 3, -1)) return 1; + } else { + if (stbtt__matchpair(fc, nm, name, nlen, 16, 17)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 1, 2)) return 1; + if (stbtt__matchpair(fc, nm, name, nlen, 3, -1)) return 1; + } + + return 0; +} + +STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *font_collection, const char *name_utf8, stbtt_int32 flags) +{ + stbtt_int32 i; + for (i=0;;++i) { + stbtt_int32 off = stbtt_GetFontOffsetForIndex(font_collection, i); + if (off < 0) return off; + if (stbtt__matches((stbtt_uint8 *) font_collection, off, (stbtt_uint8*) name_utf8, flags)) + return off; + } +} + +#endif // STB_TRUETYPE_IMPLEMENTATION + + +// FULL VERSION HISTORY +// +// 1.07 (2015-08-01) allow PackFontRanges to accept arrays of sparse codepoints; +// allow PackFontRanges to pack and render in separate phases; +// fix stbtt_GetFontOFfsetForIndex (never worked for non-0 input?); +// fixed an assert() bug in the new rasterizer +// replace assert() with STBTT_assert() in new rasterizer +// 1.06 (2015-07-14) performance improvements (~35% faster on x86 and x64 on test machine) +// also more precise AA rasterizer, except if shapes overlap +// remove need for STBTT_sort +// 1.05 (2015-04-15) fix misplaced definitions for STBTT_STATIC +// 1.04 (2015-04-15) typo in example +// 1.03 (2015-04-12) STBTT_STATIC, fix memory leak in new packing, various fixes +// 1.02 (2014-12-10) fix various warnings & compile issues w/ stb_rect_pack, C++ +// 1.01 (2014-12-08) fix subpixel position when oversampling to exactly match +// non-oversampled; STBTT_POINT_SIZE for packed case only +// 1.00 (2014-12-06) add new PackBegin etc. API, w/ support for oversampling +// 0.99 (2014-09-18) fix multiple bugs with subpixel rendering (ryg) +// 0.9 (2014-08-07) support certain mac/iOS fonts without an MS platformID +// 0.8b (2014-07-07) fix a warning +// 0.8 (2014-05-25) fix a few more warnings +// 0.7 (2013-09-25) bugfix: subpixel glyph bug fixed in 0.5 had come back +// 0.6c (2012-07-24) improve documentation +// 0.6b (2012-07-20) fix a few more warnings +// 0.6 (2012-07-17) fix warnings; added stbtt_ScaleForMappingEmToPixels, +// stbtt_GetFontBoundingBox, stbtt_IsGlyphEmpty +// 0.5 (2011-12-09) bugfixes: +// subpixel glyph renderer computed wrong bounding box +// first vertex of shape can be off-curve (FreeSans) +// 0.4b (2011-12-03) fixed an error in the font baking example +// 0.4 (2011-12-01) kerning, subpixel rendering (tor) +// bugfixes for: +// codepoint-to-glyph conversion using table fmt=12 +// codepoint-to-glyph conversion using table fmt=4 +// stbtt_GetBakedQuad with non-square texture (Zer) +// updated Hello World! sample to use kerning and subpixel +// fixed some warnings +// 0.3 (2009-06-24) cmap fmt=12, compound shapes (MM) +// userdata, malloc-from-userdata, non-zero fill (stb) +// 0.2 (2009-03-11) Fix unsigned/signed char warnings +// 0.1 (2009-03-09) First public release +// diff --git a/samples/dual_layer/D3D12/src/tiny_obj_loader.h b/samples/dual_layer/D3D12/src/tiny_obj_loader.h new file mode 100644 index 0000000..c2b49b3 --- /dev/null +++ b/samples/dual_layer/D3D12/src/tiny_obj_loader.h @@ -0,0 +1,1578 @@ +/* +The MIT License (MIT) + +Copyright (c) 2012-2016 Syoyo Fujita and many contributors. + +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 +copies 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 copies 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. +*/ + +// +// version 1.0.0 : Change data structure. Change license from BSD to MIT. +// + +// +// Use this in *one* .cc +// #define TINYOBJLOADER_IMPLEMENTATION +// #include "tiny_obj_loader.h" +// + +#ifndef TINY_OBJ_LOADER_H_ +#define TINY_OBJ_LOADER_H_ + +#include +#include +#include + +namespace tinyobj { + +typedef struct { + std::string name; + + float ambient[3]; + float diffuse[3]; + float specular[3]; + float transmittance[3]; + float emission[3]; + float shininess; + float ior; // index of refraction + float dissolve; // 1 == opaque; 0 == fully transparent + // illumination model (see http://www.fileformat.info/format/material/) + int illum; + + int dummy; // Suppress padding warning. + + std::string ambient_texname; // map_Ka + std::string diffuse_texname; // map_Kd + std::string specular_texname; // map_Ks + std::string specular_highlight_texname; // map_Ns + std::string bump_texname; // map_bump, bump + std::string displacement_texname; // disp + std::string alpha_texname; // map_d + + // PBR extension + // http://exocortex.com/blog/extending_wavefront_mtl_to_support_pbr + float roughness; // [0, 1] default 0 + float metallic; // [0, 1] default 0 + float sheen; // [0, 1] default 0 + float clearcoat_thickness; // [0, 1] default 0 + float clearcoat_roughness; // [0, 1] default 0 + float anisotropy; // aniso. [0, 1] default 0 + float anisotropy_rotation; // anisor. [0, 1] default 0 + std::string roughness_texname; // map_Pr + std::string metallic_texname; // map_Pm + std::string sheen_texname; // map_Ps + std::string emissive_texname; // map_Ke + std::string normal_texname; // norm. For normal mapping. + + std::map unknown_parameter; +} material_t; + +typedef struct { + std::string name; + + std::vector intValues; + std::vector floatValues; + std::vector stringValues; +} tag_t; + +// Index struct to support differnt indices for vtx/normal/texcoord. +// -1 means not used. +typedef struct { + int vertex_index; + int normal_index; + int texcoord_index; +} index_t; + +typedef struct { + std::vector indices; + std::vector num_face_vertices; // The number of vertices per + // face. 3 = polygon, 4 = quad, + // ... Up to 255. + std::vector material_ids; // per-face material ID + std::vector tags; // SubD tag +} mesh_t; + +typedef struct { + std::string name; + mesh_t mesh; +} shape_t; + +// Vertex attributes +typedef struct { + std::vector vertices; // 'v' + std::vector normals; // 'vn' + std::vector texcoords; // 'vt' +} attrib_t; + +typedef struct callback_t_ { + // W is optional and set to 1 if there is no `w` item in `v` line + void (*vertex_cb)(void *user_data, float x, float y, float z, float w); + void (*normal_cb)(void *user_data, float x, float y, float z); + + // y and z are optional and set to 0 if there is no `y` and/or `z` item(s) in + // `vt` line. + void (*texcoord_cb)(void *user_data, float x, float y, float z); + + // called per 'f' line. num_indices is the number of face indices(e.g. 3 for + // triangle, 4 for quad) + // 0 will be passed for undefined index in index_t members. + void (*index_cb)(void *user_data, index_t *indices, int num_indices); + // `name` material name, `material_id` = the array index of material_t[]. -1 + // if + // a material not found in .mtl + void (*usemtl_cb)(void *user_data, const char *name, int material_id); + // `materials` = parsed material data. + void (*mtllib_cb)(void *user_data, const material_t *materials, + int num_materials); + // There may be multiple group names + void (*group_cb)(void *user_data, const char **names, int num_names); + void (*object_cb)(void *user_data, const char *name); + + callback_t_() + : vertex_cb(NULL), + normal_cb(NULL), + texcoord_cb(NULL), + index_cb(NULL), + usemtl_cb(NULL), + mtllib_cb(NULL), + group_cb(NULL), + object_cb(NULL) {} +} callback_t; + +class MaterialReader { + public: + MaterialReader() {} + virtual ~MaterialReader(); + + virtual bool operator()(const std::string &matId, + std::vector *materials, + std::map *matMap, + std::string *err) = 0; +}; + +class MaterialFileReader : public MaterialReader { + public: + explicit MaterialFileReader(const std::string &mtl_basepath) + : m_mtlBasePath(mtl_basepath) {} + virtual ~MaterialFileReader() {} + virtual bool operator()(const std::string &matId, + std::vector *materials, + std::map *matMap, std::string *err); + + private: + std::string m_mtlBasePath; +}; + +/// Loads .obj from a file. +/// 'attrib', 'shapes' and 'materials' will be filled with parsed shape data +/// 'shapes' will be filled with parsed shape data +/// Returns true when loading .obj become success. +/// Returns warning and error message into `err` +/// 'mtl_basepath' is optional, and used for base path for .mtl file. +/// 'triangulate' is optional, and used whether triangulate polygon face in .obj +/// or not. +bool LoadObj(attrib_t *attrib, std::vector *shapes, + std::vector *materials, std::string *err, + const char *filename, const char *mtl_basepath = NULL, + bool triangulate = true); + +/// Loads .obj from a file with custom user callback. +/// .mtl is loaded as usual and parsed material_t data will be passed to +/// `callback.mtllib_cb`. +/// Returns true when loading .obj/.mtl become success. +/// Returns warning and error message into `err` +/// See `examples/callback_api/` for how to use this function. +bool LoadObjWithCallback(std::istream &inStream, const callback_t &callback, + void *user_data = NULL, + MaterialReader *readMatFn = NULL, + std::string *err = NULL); + +/// Loads object from a std::istream, uses GetMtlIStreamFn to retrieve +/// std::istream for materials. +/// Returns true when loading .obj become success. +/// Returns warning and error message into `err` +bool LoadObj(attrib_t *attrib, std::vector *shapes, + std::vector *materials, std::string *err, + std::istream *inStream, MaterialReader *readMatFn, + bool triangulate = true); + +/// Loads materials into std::map +void LoadMtl(std::map *material_map, + std::vector *materials, std::istream *inStream); + +} // namespace tinyobj + +#ifdef TINYOBJLOADER_IMPLEMENTATION +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +namespace tinyobj { + +MaterialReader::~MaterialReader() {} + +#define TINYOBJ_SSCANF_BUFFER_SIZE (4096) + +struct vertex_index { + int v_idx, vt_idx, vn_idx; + vertex_index() : v_idx(-1), vt_idx(-1), vn_idx(-1) {} + explicit vertex_index(int idx) : v_idx(idx), vt_idx(idx), vn_idx(idx) {} + vertex_index(int vidx, int vtidx, int vnidx) + : v_idx(vidx), vt_idx(vtidx), vn_idx(vnidx) {} +}; + +struct tag_sizes { + tag_sizes() : num_ints(0), num_floats(0), num_strings(0) {} + int num_ints; + int num_floats; + int num_strings; +}; + +struct obj_shape { + std::vector v; + std::vector vn; + std::vector vt; +}; + +#define IS_SPACE(x) (((x) == ' ') || ((x) == '\t')) +#define IS_DIGIT(x) \ + (static_cast((x) - '0') < static_cast(10)) +#define IS_NEW_LINE(x) (((x) == '\r') || ((x) == '\n') || ((x) == '\0')) + +// Make index zero-base, and also support relative index. +static inline int fixIndex(int idx, int n) { + if (idx > 0) return idx - 1; + if (idx == 0) return 0; + return n + idx; // negative value = relative +} + +static inline std::string parseString(const char **token) { + std::string s; + (*token) += strspn((*token), " \t"); + size_t e = strcspn((*token), " \t\r"); + s = std::string((*token), &(*token)[e]); + (*token) += e; + return s; +} + +static inline int parseInt(const char **token) { + (*token) += strspn((*token), " \t"); + int i = atoi((*token)); + (*token) += strcspn((*token), " \t\r"); + return i; +} + +// Tries to parse a floating point number located at s. +// +// s_end should be a location in the string where reading should absolutely +// stop. For example at the end of the string, to prevent buffer overflows. +// +// Parses the following EBNF grammar: +// sign = "+" | "-" ; +// END = ? anything not in digit ? +// digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ; +// integer = [sign] , digit , {digit} ; +// decimal = integer , ["." , integer] ; +// float = ( decimal , END ) | ( decimal , ("E" | "e") , integer , END ) ; +// +// Valid strings are for example: +// -0 +3.1417e+2 -0.0E-3 1.0324 -1.41 11e2 +// +// If the parsing is a success, result is set to the parsed value and true +// is returned. +// +// The function is greedy and will parse until any of the following happens: +// - a non-conforming character is encountered. +// - s_end is reached. +// +// The following situations triggers a failure: +// - s >= s_end. +// - parse failure. +// +static bool tryParseDouble(const char *s, const char *s_end, double *result) { + if (s >= s_end) { + return false; + } + + double mantissa = 0.0; + // This exponent is base 2 rather than 10. + // However the exponent we parse is supposed to be one of ten, + // thus we must take care to convert the exponent/and or the + // mantissa to a * 2^E, where a is the mantissa and E is the + // exponent. + // To get the final double we will use ldexp, it requires the + // exponent to be in base 2. + int exponent = 0; + + // NOTE: THESE MUST BE DECLARED HERE SINCE WE ARE NOT ALLOWED + // TO JUMP OVER DEFINITIONS. + char sign = '+'; + char exp_sign = '+'; + char const *curr = s; + + // How many characters were read in a loop. + int read = 0; + // Tells whether a loop terminated due to reaching s_end. + bool end_not_reached = false; + + /* + BEGIN PARSING. + */ + + // Find out what sign we've got. + if (*curr == '+' || *curr == '-') { + sign = *curr; + curr++; + } else if (IS_DIGIT(*curr)) { /* Pass through. */ + } else { + goto fail; + } + + // Read the integer part. + end_not_reached = (curr != s_end); + while (end_not_reached && IS_DIGIT(*curr)) { + mantissa *= 10; + mantissa += static_cast(*curr - 0x30); + curr++; + read++; + end_not_reached = (curr != s_end); + } + + // We must make sure we actually got something. + if (read == 0) goto fail; + // We allow numbers of form "#", "###" etc. + if (!end_not_reached) goto assemble; + + // Read the decimal part. + if (*curr == '.') { + curr++; + read = 1; + end_not_reached = (curr != s_end); + while (end_not_reached && IS_DIGIT(*curr)) { + // NOTE: Don't use powf here, it will absolutely murder precision. + mantissa += static_cast(*curr - 0x30) * pow(10.0, -read); + read++; + curr++; + end_not_reached = (curr != s_end); + } + } else if (*curr == 'e' || *curr == 'E') { + } else { + goto assemble; + } + + if (!end_not_reached) goto assemble; + + // Read the exponent part. + if (*curr == 'e' || *curr == 'E') { + curr++; + // Figure out if a sign is present and if it is. + end_not_reached = (curr != s_end); + if (end_not_reached && (*curr == '+' || *curr == '-')) { + exp_sign = *curr; + curr++; + } else if (IS_DIGIT(*curr)) { /* Pass through. */ + } else { + // Empty E is not allowed. + goto fail; + } + + read = 0; + end_not_reached = (curr != s_end); + while (end_not_reached && IS_DIGIT(*curr)) { + exponent *= 10; + exponent += static_cast(*curr - 0x30); + curr++; + read++; + end_not_reached = (curr != s_end); + } + exponent *= (exp_sign == '+' ? 1 : -1); + if (read == 0) goto fail; + } + +assemble: + *result = + (sign == '+' ? 1 : -1) * ldexp(mantissa * pow(5.0, exponent), exponent); + return true; +fail: + return false; +} + +static inline float parseFloat(const char **token, double default_value = 0.0) { + (*token) += strspn((*token), " \t"); + const char *end = (*token) + strcspn((*token), " \t\r"); + double val = default_value; + tryParseDouble((*token), end, &val); + float f = static_cast(val); + (*token) = end; + return f; +} + +static inline void parseFloat2(float *x, float *y, const char **token) { + (*x) = parseFloat(token); + (*y) = parseFloat(token); +} + +static inline void parseFloat3(float *x, float *y, float *z, + const char **token) { + (*x) = parseFloat(token); + (*y) = parseFloat(token); + (*z) = parseFloat(token); +} + +static inline void parseV(float *x, float *y, float *z, float *w, + const char **token) { + (*x) = parseFloat(token); + (*y) = parseFloat(token); + (*z) = parseFloat(token); + (*w) = parseFloat(token, 1.0); +} + +static tag_sizes parseTagTriple(const char **token) { + tag_sizes ts; + + ts.num_ints = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return ts; + } + (*token)++; + + ts.num_floats = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return ts; + } + (*token)++; + + ts.num_strings = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r") + 1; + + return ts; +} + +// Parse triples with index offsets: i, i/j/k, i//k, i/j +static vertex_index parseTriple(const char **token, int vsize, int vnsize, + int vtsize) { + vertex_index vi(-1); + + vi.v_idx = fixIndex(atoi((*token)), vsize); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return vi; + } + (*token)++; + + // i//k + if ((*token)[0] == '/') { + (*token)++; + vi.vn_idx = fixIndex(atoi((*token)), vnsize); + (*token) += strcspn((*token), "/ \t\r"); + return vi; + } + + // i/j/k or i/j + vi.vt_idx = fixIndex(atoi((*token)), vtsize); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return vi; + } + + // i/j/k + (*token)++; // skip '/' + vi.vn_idx = fixIndex(atoi((*token)), vnsize); + (*token) += strcspn((*token), "/ \t\r"); + return vi; +} + +// Parse raw triples: i, i/j/k, i//k, i/j +static vertex_index parseRawTriple(const char **token) { + vertex_index vi(static_cast(0)); // 0 is an invalid index in OBJ + + vi.v_idx = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return vi; + } + (*token)++; + + // i//k + if ((*token)[0] == '/') { + (*token)++; + vi.vn_idx = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + return vi; + } + + // i/j/k or i/j + vi.vt_idx = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + if ((*token)[0] != '/') { + return vi; + } + + // i/j/k + (*token)++; // skip '/' + vi.vn_idx = atoi((*token)); + (*token) += strcspn((*token), "/ \t\r"); + return vi; +} + +static void InitMaterial(material_t *material) { + material->name = ""; + material->ambient_texname = ""; + material->diffuse_texname = ""; + material->specular_texname = ""; + material->specular_highlight_texname = ""; + material->bump_texname = ""; + material->displacement_texname = ""; + material->alpha_texname = ""; + for (int i = 0; i < 3; i++) { + material->ambient[i] = 0.f; + material->diffuse[i] = 0.f; + material->specular[i] = 0.f; + material->transmittance[i] = 0.f; + material->emission[i] = 0.f; + } + material->illum = 0; + material->dissolve = 1.f; + material->shininess = 1.f; + material->ior = 1.f; + + material->roughness = 0.f; + material->metallic = 0.f; + material->sheen = 0.f; + material->clearcoat_thickness = 0.f; + material->clearcoat_roughness = 0.f; + material->anisotropy_rotation = 0.f; + material->anisotropy = 0.f; + material->roughness_texname = ""; + material->metallic_texname = ""; + material->sheen_texname = ""; + material->emissive_texname = ""; + material->normal_texname = ""; + + material->unknown_parameter.clear(); +} + +static bool exportFaceGroupToShape( + shape_t *shape, const std::vector > &faceGroup, + const std::vector &tags, const int material_id, + const std::string &name, bool triangulate) { + if (faceGroup.empty()) { + return false; + } + + // Flatten vertices and indices + for (size_t i = 0; i < faceGroup.size(); i++) { + const std::vector &face = faceGroup[i]; + + vertex_index i0 = face[0]; + vertex_index i1(-1); + vertex_index i2 = face[1]; + + size_t npolys = face.size(); + + if (triangulate) { + // Polygon -> triangle fan conversion + for (size_t k = 2; k < npolys; k++) { + i1 = i2; + i2 = face[k]; + + index_t idx0, idx1, idx2; + idx0.vertex_index = i0.v_idx; + idx0.normal_index = i0.vn_idx; + idx0.texcoord_index = i0.vt_idx; + idx1.vertex_index = i1.v_idx; + idx1.normal_index = i1.vn_idx; + idx1.texcoord_index = i1.vt_idx; + idx2.vertex_index = i2.v_idx; + idx2.normal_index = i2.vn_idx; + idx2.texcoord_index = i2.vt_idx; + + shape->mesh.indices.push_back(idx0); + shape->mesh.indices.push_back(idx1); + shape->mesh.indices.push_back(idx2); + + shape->mesh.num_face_vertices.push_back(3); + shape->mesh.material_ids.push_back(material_id); + } + } else { + for (size_t k = 0; k < npolys; k++) { + index_t idx; + idx.vertex_index = face[k].v_idx; + idx.normal_index = face[k].vn_idx; + idx.texcoord_index = face[k].vt_idx; + shape->mesh.indices.push_back(idx); + } + + shape->mesh.num_face_vertices.push_back( + static_cast(npolys)); + shape->mesh.material_ids.push_back(material_id); // per face + } + } + + shape->name = name; + shape->mesh.tags = tags; + + return true; +} + +void LoadMtl(std::map *material_map, + std::vector *materials, std::istream *inStream) { + // Create a default material anyway. + material_t material; + InitMaterial(&material); + + size_t maxchars = 8192; // Alloc enough size. + std::vector buf(maxchars); // Alloc enough size. + while (inStream->peek() != -1) { + inStream->getline(&buf[0], static_cast(maxchars)); + + std::string linebuf(&buf[0]); + + // Trim trailing whitespace. + if (linebuf.size() > 0) { + linebuf = linebuf.substr(0, linebuf.find_last_not_of(" \t") + 1); + } + + // Trim newline '\r\n' or '\n' + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\n') + linebuf.erase(linebuf.size() - 1); + } + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\r') + linebuf.erase(linebuf.size() - 1); + } + + // Skip if empty line. + if (linebuf.empty()) { + continue; + } + + // Skip leading space. + const char *token = linebuf.c_str(); + token += strspn(token, " \t"); + + assert(token); + if (token[0] == '\0') continue; // empty line + + if (token[0] == '#') continue; // comment line + + // new mtl + if ((0 == strncmp(token, "newmtl", 6)) && IS_SPACE((token[6]))) { + // flush previous material. + if (!material.name.empty()) { + material_map->insert(std::pair( + material.name, static_cast(materials->size()))); + materials->push_back(material); + } + + // initial temporary material + InitMaterial(&material); + + // set new mtl name + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + material.name = namebuf; + continue; + } + + // ambient + if (token[0] == 'K' && token[1] == 'a' && IS_SPACE((token[2]))) { + token += 2; + float r, g, b; + parseFloat3(&r, &g, &b, &token); + material.ambient[0] = r; + material.ambient[1] = g; + material.ambient[2] = b; + continue; + } + + // diffuse + if (token[0] == 'K' && token[1] == 'd' && IS_SPACE((token[2]))) { + token += 2; + float r, g, b; + parseFloat3(&r, &g, &b, &token); + material.diffuse[0] = r; + material.diffuse[1] = g; + material.diffuse[2] = b; + continue; + } + + // specular + if (token[0] == 'K' && token[1] == 's' && IS_SPACE((token[2]))) { + token += 2; + float r, g, b; + parseFloat3(&r, &g, &b, &token); + material.specular[0] = r; + material.specular[1] = g; + material.specular[2] = b; + continue; + } + + // transmittance + if ((token[0] == 'K' && token[1] == 't' && IS_SPACE((token[2]))) || + (token[0] == 'T' && token[1] == 'f' && IS_SPACE((token[2])))) { + token += 2; + float r, g, b; + parseFloat3(&r, &g, &b, &token); + material.transmittance[0] = r; + material.transmittance[1] = g; + material.transmittance[2] = b; + continue; + } + + // ior(index of refraction) + if (token[0] == 'N' && token[1] == 'i' && IS_SPACE((token[2]))) { + token += 2; + material.ior = parseFloat(&token); + continue; + } + + // emission + if (token[0] == 'K' && token[1] == 'e' && IS_SPACE(token[2])) { + token += 2; + float r, g, b; + parseFloat3(&r, &g, &b, &token); + material.emission[0] = r; + material.emission[1] = g; + material.emission[2] = b; + continue; + } + + // shininess + if (token[0] == 'N' && token[1] == 's' && IS_SPACE(token[2])) { + token += 2; + material.shininess = parseFloat(&token); + continue; + } + + // illum model + if (0 == strncmp(token, "illum", 5) && IS_SPACE(token[5])) { + token += 6; + material.illum = parseInt(&token); + continue; + } + + // dissolve + if ((token[0] == 'd' && IS_SPACE(token[1]))) { + token += 1; + material.dissolve = parseFloat(&token); + continue; + } + if (token[0] == 'T' && token[1] == 'r' && IS_SPACE(token[2])) { + token += 2; + // Invert value of Tr(assume Tr is in range [0, 1]) + material.dissolve = 1.0f - parseFloat(&token); + continue; + } + + // PBR: roughness + if (token[0] == 'P' && token[1] == 'r' && IS_SPACE(token[2])) { + token += 2; + material.roughness = parseFloat(&token); + continue; + } + + // PBR: metallic + if (token[0] == 'P' && token[1] == 'm' && IS_SPACE(token[2])) { + token += 2; + material.metallic = parseFloat(&token); + continue; + } + + // PBR: sheen + if (token[0] == 'P' && token[1] == 's' && IS_SPACE(token[2])) { + token += 2; + material.sheen = parseFloat(&token); + continue; + } + + // PBR: clearcoat thickness + if (token[0] == 'P' && token[1] == 'c' && IS_SPACE(token[2])) { + token += 2; + material.clearcoat_thickness = parseFloat(&token); + continue; + } + + // PBR: clearcoat roughness + if ((0 == strncmp(token, "Pcr", 3)) && IS_SPACE(token[3])) { + token += 4; + material.clearcoat_roughness = parseFloat(&token); + continue; + } + + // PBR: anisotropy + if ((0 == strncmp(token, "aniso", 5)) && IS_SPACE(token[5])) { + token += 6; + material.anisotropy = parseFloat(&token); + continue; + } + + // PBR: anisotropy rotation + if ((0 == strncmp(token, "anisor", 6)) && IS_SPACE(token[6])) { + token += 7; + material.anisotropy_rotation = parseFloat(&token); + continue; + } + + // ambient texture + if ((0 == strncmp(token, "map_Ka", 6)) && IS_SPACE(token[6])) { + token += 7; + material.ambient_texname = token; + continue; + } + + // diffuse texture + if ((0 == strncmp(token, "map_Kd", 6)) && IS_SPACE(token[6])) { + token += 7; + material.diffuse_texname = token; + continue; + } + + // specular texture + if ((0 == strncmp(token, "map_Ks", 6)) && IS_SPACE(token[6])) { + token += 7; + material.specular_texname = token; + continue; + } + + // specular highlight texture + if ((0 == strncmp(token, "map_Ns", 6)) && IS_SPACE(token[6])) { + token += 7; + material.specular_highlight_texname = token; + continue; + } + + // bump texture + if ((0 == strncmp(token, "map_bump", 8)) && IS_SPACE(token[8])) { + token += 9; + material.bump_texname = token; + continue; + } + + // alpha texture + if ((0 == strncmp(token, "map_d", 5)) && IS_SPACE(token[5])) { + token += 6; + material.alpha_texname = token; + continue; + } + + // bump texture + if ((0 == strncmp(token, "bump", 4)) && IS_SPACE(token[4])) { + token += 5; + material.bump_texname = token; + continue; + } + + // displacement texture + if ((0 == strncmp(token, "disp", 4)) && IS_SPACE(token[4])) { + token += 5; + material.displacement_texname = token; + continue; + } + + // PBR: roughness texture + if ((0 == strncmp(token, "map_Pr", 6)) && IS_SPACE(token[6])) { + token += 7; + material.roughness_texname = token; + continue; + } + + // PBR: metallic texture + if ((0 == strncmp(token, "map_Pm", 6)) && IS_SPACE(token[6])) { + token += 7; + material.metallic_texname = token; + continue; + } + + // PBR: sheen texture + if ((0 == strncmp(token, "map_Ps", 6)) && IS_SPACE(token[6])) { + token += 7; + material.sheen_texname = token; + continue; + } + + // PBR: emissive texture + if ((0 == strncmp(token, "map_Ke", 6)) && IS_SPACE(token[6])) { + token += 7; + material.emissive_texname = token; + continue; + } + + // PBR: normal map texture + if ((0 == strncmp(token, "norm", 4)) && IS_SPACE(token[4])) { + token += 5; + material.normal_texname = token; + continue; + } + + // unknown parameter + const char *_space = strchr(token, ' '); + if (!_space) { + _space = strchr(token, '\t'); + } + if (_space) { + std::ptrdiff_t len = _space - token; + std::string key(token, static_cast(len)); + std::string value = _space + 1; + material.unknown_parameter.insert( + std::pair(key, value)); + } + } + // flush last material. + material_map->insert(std::pair( + material.name, static_cast(materials->size()))); + materials->push_back(material); +} + +bool MaterialFileReader::operator()(const std::string &matId, + std::vector *materials, + std::map *matMap, + std::string *err) { + std::string filepath; + + if (!m_mtlBasePath.empty()) { + filepath = std::string(m_mtlBasePath) + matId; + } else { + filepath = matId; + } + + std::ifstream matIStream(filepath.c_str()); + LoadMtl(matMap, materials, &matIStream); + if (!matIStream) { + std::stringstream ss; + ss << "WARN: Material file [ " << filepath + << " ] not found. Created a default material."; + if (err) { + (*err) += ss.str(); + } + } + return true; +} + +bool LoadObj(attrib_t *attrib, std::vector *shapes, + std::vector *materials, std::string *err, + const char *filename, const char *mtl_basepath, + bool trianglulate) { + attrib->vertices.clear(); + attrib->normals.clear(); + attrib->texcoords.clear(); + shapes->clear(); + + std::stringstream errss; + + std::ifstream ifs(filename); + if (!ifs) { + errss << "Cannot open file [" << filename << "]" << std::endl; + if (err) { + (*err) = errss.str(); + } + return false; + } + + std::string basePath; + if (mtl_basepath) { + basePath = mtl_basepath; + } + MaterialFileReader matFileReader(basePath); + + return LoadObj(attrib, shapes, materials, err, &ifs, &matFileReader, + trianglulate); +} + +bool LoadObj(attrib_t *attrib, std::vector *shapes, + std::vector *materials, std::string *err, + std::istream *inStream, MaterialReader *readMatFn, + bool triangulate) { + std::stringstream errss; + + std::vector v; + std::vector vn; + std::vector vt; + std::vector tags; + std::vector > faceGroup; + std::string name; + + // material + std::map material_map; + int material = -1; + + shape_t shape; + + while (inStream->peek() != -1) { + std::string linebuf; + std::getline((*inStream), linebuf); + + // Trim newline '\r\n' or '\n' + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\n') + linebuf.erase(linebuf.size() - 1); + } + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\r') + linebuf.erase(linebuf.size() - 1); + } + + // Skip if empty line. + if (linebuf.empty()) { + continue; + } + + // Skip leading space. + const char *token = linebuf.c_str(); + token += strspn(token, " \t"); + + assert(token); + if (token[0] == '\0') continue; // empty line + + if (token[0] == '#') continue; // comment line + + // vertex + if (token[0] == 'v' && IS_SPACE((token[1]))) { + token += 2; + float x, y, z; + parseFloat3(&x, &y, &z, &token); + v.push_back(x); + v.push_back(y); + v.push_back(z); + continue; + } + + // normal + if (token[0] == 'v' && token[1] == 'n' && IS_SPACE((token[2]))) { + token += 3; + float x, y, z; + parseFloat3(&x, &y, &z, &token); + vn.push_back(x); + vn.push_back(y); + vn.push_back(z); + continue; + } + + // texcoord + if (token[0] == 'v' && token[1] == 't' && IS_SPACE((token[2]))) { + token += 3; + float x, y; + parseFloat2(&x, &y, &token); + vt.push_back(x); + vt.push_back(y); + continue; + } + + // face + if (token[0] == 'f' && IS_SPACE((token[1]))) { + token += 2; + token += strspn(token, " \t"); + + std::vector face; + face.reserve(3); + + while (!IS_NEW_LINE(token[0])) { + vertex_index vi = parseTriple(&token, static_cast(v.size() / 3), + static_cast(vn.size() / 3), + static_cast(vt.size() / 2)); + face.push_back(vi); + size_t n = strspn(token, " \t\r"); + token += n; + } + + // replace with emplace_back + std::move on C++11 + faceGroup.push_back(std::vector()); + faceGroup[faceGroup.size() - 1].swap(face); + + continue; + } + + // use mtl + if ((0 == strncmp(token, "usemtl", 6)) && IS_SPACE((token[6]))) { + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + + int newMaterialId = -1; + if (material_map.find(namebuf) != material_map.end()) { + newMaterialId = material_map[namebuf]; + } else { + // { error!! material not found } + } + + if (newMaterialId != material) { + // Create per-face material + exportFaceGroupToShape(&shape, faceGroup, tags, material, name, + triangulate); + faceGroup.clear(); + material = newMaterialId; + } + + continue; + } + + // load mtl + if ((0 == strncmp(token, "mtllib", 6)) && IS_SPACE((token[6]))) { + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + + std::string err_mtl; + bool ok = (*readMatFn)(namebuf, materials, &material_map, &err_mtl); + if (err) { + (*err) += err_mtl; + } + + if (!ok) { + faceGroup.clear(); // for safety + return false; + } + + continue; + } + + // group name + if (token[0] == 'g' && IS_SPACE((token[1]))) { + // flush previous face group. + bool ret = exportFaceGroupToShape(&shape, faceGroup, tags, material, name, + triangulate); + if (ret) { + shapes->push_back(shape); + } + + shape = shape_t(); + + // material = -1; + faceGroup.clear(); + + std::vector names; + names.reserve(2); + + while (!IS_NEW_LINE(token[0])) { + std::string str = parseString(&token); + names.push_back(str); + token += strspn(token, " \t\r"); // skip tag + } + + assert(names.size() > 0); + + // names[0] must be 'g', so skip the 0th element. + if (names.size() > 1) { + name = names[1]; + } else { + name = ""; + } + + continue; + } + + // object name + if (token[0] == 'o' && IS_SPACE((token[1]))) { + // flush previous face group. + bool ret = exportFaceGroupToShape(&shape, faceGroup, tags, material, name, + triangulate); + if (ret) { + shapes->push_back(shape); + } + + // material = -1; + faceGroup.clear(); + shape = shape_t(); + + // @todo { multiple object name? } + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 2; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + name = std::string(namebuf); + + continue; + } + + if (token[0] == 't' && IS_SPACE(token[1])) { + tag_t tag; + + char namebuf[4096]; + token += 2; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + tag.name = std::string(namebuf); + + token += tag.name.size() + 1; + + tag_sizes ts = parseTagTriple(&token); + + tag.intValues.resize(static_cast(ts.num_ints)); + + for (size_t i = 0; i < static_cast(ts.num_ints); ++i) { + tag.intValues[i] = atoi(token); + token += strcspn(token, "/ \t\r") + 1; + } + + tag.floatValues.resize(static_cast(ts.num_floats)); + for (size_t i = 0; i < static_cast(ts.num_floats); ++i) { + tag.floatValues[i] = parseFloat(&token); + token += strcspn(token, "/ \t\r") + 1; + } + + tag.stringValues.resize(static_cast(ts.num_strings)); + for (size_t i = 0; i < static_cast(ts.num_strings); ++i) { + char stringValueBuffer[4096]; + +#ifdef _MSC_VER + sscanf_s(token, "%s", stringValueBuffer, + (unsigned)_countof(stringValueBuffer)); +#else + sscanf(token, "%s", stringValueBuffer); +#endif + tag.stringValues[i] = stringValueBuffer; + token += tag.stringValues[i].size() + 1; + } + + tags.push_back(tag); + } + + // Ignore unknown command. + } + + bool ret = exportFaceGroupToShape(&shape, faceGroup, tags, material, name, + triangulate); + if (ret) { + shapes->push_back(shape); + } + faceGroup.clear(); // for safety + + if (err) { + (*err) += errss.str(); + } + + attrib->vertices.swap(v); + attrib->normals.swap(vn); + attrib->texcoords.swap(vt); + + return true; +} + +bool LoadObjWithCallback(std::istream &inStream, const callback_t &callback, + void *user_data /*= NULL*/, + MaterialReader *readMatFn /*= NULL*/, + std::string *err /*= NULL*/) { + std::stringstream errss; + + // material + std::map material_map; + int material_id = -1; // -1 = invalid + + std::vector indices; + std::vector materials; + std::vector names; + names.reserve(2); + std::string name; + std::vector names_out; + + std::string linebuf; + while (inStream.peek() != -1) { + std::getline(inStream, linebuf); + + // Trim newline '\r\n' or '\n' + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\n') + linebuf.erase(linebuf.size() - 1); + } + if (linebuf.size() > 0) { + if (linebuf[linebuf.size() - 1] == '\r') + linebuf.erase(linebuf.size() - 1); + } + + // Skip if empty line. + if (linebuf.empty()) { + continue; + } + + // Skip leading space. + const char *token = linebuf.c_str(); + token += strspn(token, " \t"); + + assert(token); + if (token[0] == '\0') continue; // empty line + + if (token[0] == '#') continue; // comment line + + // vertex + if (token[0] == 'v' && IS_SPACE((token[1]))) { + token += 2; + float x, y, z, w; // w is optional. default = 1.0 + parseV(&x, &y, &z, &w, &token); + if (callback.vertex_cb) { + callback.vertex_cb(user_data, x, y, z, w); + } + continue; + } + + // normal + if (token[0] == 'v' && token[1] == 'n' && IS_SPACE((token[2]))) { + token += 3; + float x, y, z; + parseFloat3(&x, &y, &z, &token); + if (callback.normal_cb) { + callback.normal_cb(user_data, x, y, z); + } + continue; + } + + // texcoord + if (token[0] == 'v' && token[1] == 't' && IS_SPACE((token[2]))) { + token += 3; + float x, y, z; // y and z are optional. default = 0.0 + parseFloat3(&x, &y, &z, &token); + if (callback.texcoord_cb) { + callback.texcoord_cb(user_data, x, y, z); + } + continue; + } + + // face + if (token[0] == 'f' && IS_SPACE((token[1]))) { + token += 2; + token += strspn(token, " \t"); + + indices.clear(); + while (!IS_NEW_LINE(token[0])) { + vertex_index vi = parseRawTriple(&token); + + index_t idx; + idx.vertex_index = vi.v_idx; + idx.normal_index = vi.vn_idx; + idx.texcoord_index = vi.vt_idx; + + indices.push_back(idx); + size_t n = strspn(token, " \t\r"); + token += n; + } + + if (callback.index_cb && indices.size() > 0) { + callback.index_cb(user_data, &indices.at(0), + static_cast(indices.size())); + } + + continue; + } + + // use mtl + if ((0 == strncmp(token, "usemtl", 6)) && IS_SPACE((token[6]))) { + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, + static_cast(_countof(namebuf))); +#else + sscanf(token, "%s", namebuf); +#endif + + int newMaterialId = -1; + if (material_map.find(namebuf) != material_map.end()) { + newMaterialId = material_map[namebuf]; + } else { + // { error!! material not found } + } + + if (newMaterialId != material_id) { + material_id = newMaterialId; + } + + if (callback.usemtl_cb) { + callback.usemtl_cb(user_data, namebuf, material_id); + } + + continue; + } + + // load mtl + if ((0 == strncmp(token, "mtllib", 6)) && IS_SPACE((token[6]))) { + if (readMatFn) { + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 7; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + + std::string err_mtl; + materials.clear(); + bool ok = (*readMatFn)(namebuf, &materials, &material_map, &err_mtl); + if (err) { + (*err) += err_mtl; + } + + if (!ok) { + return false; + } + + if (callback.mtllib_cb) { + callback.mtllib_cb(user_data, &materials.at(0), + static_cast(materials.size())); + } + } + + continue; + } + + // group name + if (token[0] == 'g' && IS_SPACE((token[1]))) { + names.clear(); + + while (!IS_NEW_LINE(token[0])) { + std::string str = parseString(&token); + names.push_back(str); + token += strspn(token, " \t\r"); // skip tag + } + + assert(names.size() > 0); + + // names[0] must be 'g', so skip the 0th element. + if (names.size() > 1) { + name = names[1]; + } else { + name.clear(); + } + + if (callback.group_cb) { + if (names.size() > 1) { + // create const char* array. + names_out.resize(names.size() - 1); + for (size_t j = 0; j < names_out.size(); j++) { + names_out[j] = names[j + 1].c_str(); + } + callback.group_cb(user_data, &names_out.at(0), + static_cast(names_out.size())); + + } else { + callback.group_cb(user_data, NULL, 0); + } + } + + continue; + } + + // object name + if (token[0] == 'o' && IS_SPACE((token[1]))) { + // @todo { multiple object name? } + char namebuf[TINYOBJ_SSCANF_BUFFER_SIZE]; + token += 2; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + std::string object_name = std::string(namebuf); + + if (callback.object_cb) { + callback.object_cb(user_data, object_name.c_str()); + } + + continue; + } + +#if 0 // @todo + if (token[0] == 't' && IS_SPACE(token[1])) { + tag_t tag; + + char namebuf[4096]; + token += 2; +#ifdef _MSC_VER + sscanf_s(token, "%s", namebuf, (unsigned)_countof(namebuf)); +#else + sscanf(token, "%s", namebuf); +#endif + tag.name = std::string(namebuf); + + token += tag.name.size() + 1; + + tag_sizes ts = parseTagTriple(&token); + + tag.intValues.resize(static_cast(ts.num_ints)); + + for (size_t i = 0; i < static_cast(ts.num_ints); ++i) { + tag.intValues[i] = atoi(token); + token += strcspn(token, "/ \t\r") + 1; + } + + tag.floatValues.resize(static_cast(ts.num_floats)); + for (size_t i = 0; i < static_cast(ts.num_floats); ++i) { + tag.floatValues[i] = parseFloat(&token); + token += strcspn(token, "/ \t\r") + 1; + } + + tag.stringValues.resize(static_cast(ts.num_strings)); + for (size_t i = 0; i < static_cast(ts.num_strings); ++i) { + char stringValueBuffer[4096]; + +#ifdef _MSC_VER + sscanf_s(token, "%s", stringValueBuffer, + (unsigned)_countof(stringValueBuffer)); +#else + sscanf(token, "%s", stringValueBuffer); +#endif + tag.stringValues[i] = stringValueBuffer; + token += tag.stringValues[i].size() + 1; + } + + tags.push_back(tag); + } +#endif + + // Ignore unknown command. + } + + if (err) { + (*err) += errss.str(); + } + + return true; +} +} // namespace tinyobj + +#endif + +#endif // TINY_OBJ_LOADER_H_ -- cgit v1.2.3